commit 4fa376c2d4d8959817ddd406e0d724cc4f998392 Author: Roland Gruber Date: Mon Sep 15 16:22:54 2014 +0000 4.7.RC1 diff --git a/lam/.htaccess b/lam/.htaccess new file mode 100644 index 00000000..5f3414bc --- /dev/null +++ b/lam/.htaccess @@ -0,0 +1,11 @@ + + Options +FollowSymLinks + + Order allow,deny + Allow from all + + = 2.3> + Require all granted + + DirectoryIndex index.html + diff --git a/lam/COPYING b/lam/COPYING new file mode 100644 index 00000000..fb2e157e --- /dev/null +++ b/lam/COPYING @@ -0,0 +1,346 @@ +Most parts of LDAP Account Manager are licensed under the GNU GENERAL PUBLIC LICENSE. +See the copyright file for a detailed list of licenses. + +------------------------------------------------------------------------------------- + + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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. + + 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.) + +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. + + 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. + + 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 + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/lam/HISTORY b/lam/HISTORY new file mode 100644 index 00000000..4bfabb9c --- /dev/null +++ b/lam/HISTORY @@ -0,0 +1,786 @@ +29.09.2014 4.7 + - Nginx webserver support + - DHCP: support pooling of IP ranges (RFE 107) + - Personal: support pager attribute (hidden by default) + - renamed config/lam.conf_sample to lam.conf.sample and config.cfg_sample to config.cfg.sample + - LAM Pro: + -> Password dialog: preset alternate email address with backup email address (RFE 111) + + +12.06.2014 4.6 + - Unix groups: allow to disable membership management + - Extended LAM's internal password policies + - Lamdaemon: move home directory on server if changed + - Password policy check during typing + - LAM Pro: + -> Password self reset and user self registration support to set a header text + -> Sudo roles: support latest schema + -> Bind DLZ: automatic PTR management (disabled by default) and better formating of e.g. TTL values + + +18.03.2014 4.5 + - IMAP: allow dynamic admin user names by replacing wildcards with LDAP attributes + - Personal: allow to set fields read-only + - NIS mail aliases can be managed on user page + - Added option to server profile if referrals should be followed (fixes problems with Samba 4 and AD) + - Windows user/group: NIS support (msSFU30NisDomain, msSFU30Name) + - LAM Pro: + -> Allow to set single account types read-only + -> Support for organizationalRole entries + -> Separate IP restriction list for self service + -> Bind DLZ: support TXT/SRV records + -> Self Service: added language selection + -> Password self reset: support backup email address + -> Custom fields: support help texts + -> Support for Oracle databases (orclNetService) (RFE 104) + - fixed bugs: + -> PDF export for multiple entries does not work (163) + -> Personal: fixed photo upload if Imagick is not installed (161) + -> Use account filters for Unix membership management (165) + + +18.12.2013 4.4 + - PyKota support: users, groups, printers, billing codes + - Kolab shared folder support + - New tool "Multi edit" allows LDAP operations on a large number of entries (e.g. adding attributes) + - Allow to set a custom label for each account type + - Unix: switch also additional membership if primary group is changed (RFE 108) + - Windows: fixed user name handling, sAMAccountName now optional + - Apache 2.4 support (requires Apache "version" module) + - Added Turkish, Ukrainian and US English translation + - LAM Pro: + -> Bind DLZ support + -> Samba/Shadow: display password change date in self service + -> Custom fields: support custom label and icon, auto-completion + -> User self registration: support constant attribute values + -> Self service: allow to set custom field labels + - Fixed bugs: + -> Format of photo in Personal tab (158) + + +25.09.2013 4.3 + - Custom SSL CA certificates can be setup in LAM main configuration + - Unix user and group support for Samba 4 + - Samba 3 groups: support local members + - Kolab: support group accounts and allowed senders/receivers for users + - SSH public key: support file upload and self service enhancements (RFE 101) + - DHCP: support more options (RFE 99) + - LAM Pro: + -> PPolicy: check password history for password reuse + -> Custom fields: read-only fields for admin interface and file upload for binary data + -> Custom scripts: support user self registration + -> Password self reset: Samba 3 sync, identification with login attribute, Samba 4 support + - Fixed bugs: + -> Custom fields: auto-adding object classes via profile editor fixed + -> PHP 5.5 compatibility + -> Lamdaemon: do not show message if home directory to delete was not found (154) + + +18.06.2013 4.2.1 + - Fixed bugs: + -> Unix: suggested user name must be lower case + -> Quota: profile editor does not work in some cases + + +04.06.2013 4.2 + - Samba 4 support: users, groups, hosts + - Unix: allow to change format for suggested user name + - LAM Pro: + -> Zarafa support for Samba 4 + -> allow to hide buttons to create/delete entries for each account type + -> Password self reset: support new identification methods: user, email, user or email, employee number + -> Custom fields: support PDF, profiles and multi-value text fields + -> Personal: support password mail sending in file upload + + +19.03.2013 4.1 + - Updated EDU person module (RFE 3599128) + - Personal: allow management of user certificates (RFE 1753030) + - Unix: Support Samba Unix Id pool for automatic UID/GID generation + - DHCP: support separated dhcpServer and dhcpService entries + - LAM Pro: + -> Support Qmail groups + - Fixed bugs: + -> changed user and group size limits (3601649) + + +06.01.2013 4.0.1 + - support additional LDAP filters for account types + - allow to hide account types (that are required by other account types) + - fixed bugs: + -> missing directories config/pdf and config/profiles on fresh installations + + +17.12.2012 4.0 + - account profiles and PDF structures are now bound to server profile + - IMAP: support "/" as path separator (RFE 3575692) + - show server profile name on config pages (RFE 3579768) + - LAM Pro: + -> Custom fields for admin interface + -> MIT Kerberos support + -> Qmail user support + + +25.09.2012 3.9 + - Kolab 2.4 support + - Puppet support + - LAM Pro + -> support RFC2307bis automount entries + -> read-only fields in self service + - fixed bugs + -> Hidden tools are still shown on the "Tools" page (3546092) + + +19.07.2012 3.8 + - quick (un)lock for users + - allow to disable tools + - LAM Pro: + -> Custom fields module allows to manage custom LDAP attributes in Self Service + -> Self service now supports user self registration + -> Separate group of names module for users allows to manage memberships if Unix module is not used (RFE 3504429) + -> Named object module for groups (used for rfc2307bis schema) + -> Password change page allows account (un)locking + -> Allow to send password mails on user edit page + -> Custom scripts: supports manual scripts that can be run from account edit pages + -> Zarafa 7.1 support (proxy URL for servers) + - fixed bugs + -> Asterisk extensions with same name (3528288) + + +25.03.2012 3.7 + - Login: support bind user for login search + - Personal: added labeledURI and cosmetic changes, description is now multi-valued (RFE 3446363) + - Asterisk extensions: group extension entries by name and context + - File upload: + -> support custom scripts postCreate (LAM Pro) + -> PDF export + - New translation: Slovakian + - removed phpGroupWare support (project no longer exists) + - Use new password after self password change (RFE 3446350) + - LAM Pro: + -> Password self reset can send password confirmation and notification mails + -> Zarafa archiver support + -> Heimdal Kerberos support + - Fixed bugs: + -> DHCP: error message not displayed properly (3441975) + -> Profile loading not possible if required fields are not filled (3444948) + -> Tree view: unable to add object class (3446037) + -> Edit page: unable to move accounts to different OU + -> Self Service: support forced password changes (PPolicy) (3483907) + -> XSS security patch (3496624) + + +23.11.2011 3.6.1 + - LAM Pro: fixed password reset function + + +22.11.2011 3.6 + - support HTTP authentication for admin pages and self service + - new modules + -> authorizedServiceObject + -> FreeRadius + - LAM Pro + -> added password self reset feature + -> Zarafa 7 support + -> Zarafa support for dynamic groups, address lists and contacts + -> Unix: group of names can be managed on user edit page + - Fixed bugs: + -> Unix: check for upper-case characters in user name (3416180) + + +09.08.2011 3.5.0 + - New modules: + -> "General information": shows internal data about accounts (e.g. creation time) + -> "Quota": manage filesystem quota inside LDAP (Linux DiskQuota) (RFE 1811449) + - Personal: New attributes o, employeeNumber, initials + - Unix: Support to create home directories on multiple servers and also for existing users + - Server information shows data from cn=monitor + - Lots of small improvements + - LAM Pro: + -> Automount: allow to create automount maps + -> Password policy: allow to (un)lock accounts + - Fixed bugs: + -> Owner attribute is multi-valued (3300727) + +2011-04-25 3.4.0 + - IMAP mailboxes: + -> support to read user name from uid attribute + -> added quota management + - Personal: added additional options for account profiles + - Mail aliases: sort receipients (RFE 3170336) + - Asterisk: support all attributes (can be disabled in configuration) + - Samba 3/Shadow: allow to sync expiration date (RFE 3147751) + - LAM Pro: + -> support automount entries + -> Zarafa groups: allow combination with group of names + -> enhanced wildcards for custom scripts + -> Group of (unique) names: allow members to be optional + - Fixed bugs: + -> Renaming of default profile (3183920) + -> Profile editor: fixed problems with multi select + + +12.02.2011 3.3.0 + - additional usability enhancements + - new IMAP module ("Mailbox (imapAccess)") allows to create/delete user mailboxes + - LAM Pro: enhanced Zarafa to support users and groups for "Send as" (new configuration option) + - PDF export: higher resolution for logos + - reduced number of LDAP queries + - lamdaemon: support journaled quotas + - Fixed bugs: + -> ignore comment lines in shells file (3107124) + -> home directory creation on file upload + + +28.10.2010 3.2.0 + - large usability enhancements + - Shadow: allow to force password change when maximum password age is set + - DHCP: renamed module "Fixed IPs" to "Hosts", IP is now optional (3038797) + - PHP version 5.2.4 or higher required + - LAM Pro: + -> Zarafa support (user, group, server) + -> Password policy: allow to force password change (RFE 3026940) + -> Password reset page: mail subject, text and from address can be set in server profile + -> Self service: Asterisk (voicemail) password synchronisation + - Fixed bugs: + -> Email check did not include "+" (3033605) + -> Tab index on login page (3042622) + + +04.07.2010 3.1.1 + - LAM Pro: fix for user self service + + +25.06.2010 3.1.0 + - usability improvements + - Asterisk voicemail support + - new hosts module for user accounts to define valid login workstations (replaces inetOrgPerson schema hack) (2951116) + - PDF editor: descriptive fields + - lamdaemon: + -> sudo entry needs to be changed to ".../lamdaemon.pl *" + -> replaced PHP SSH2 with phpseclib + - LAM Pro + -> custom scripts: new options to hide executed commands and define if output is HTML or plain text + -> support sudo entry management (object class sudoRole) + - fixed bugs: + -> Asterisk password handling (patch 2979728) + -> Samba domain SID check (2994528) + -> language selection at login (2996335) + + +24.03.2010 3.0.0 + - support to remove extension from an existing account: shadowAccount, sambaSamAccount, eduPerson + - file upload: allow to select account modules for upload + - removed frames + - Unix: automatic user name generation from first and last name (2492675) + - LAM Pro: + -> support OpenLDAP password policies (ppolicy) + -> manage host IP addresses (ipHost) + - fixed bugs: + -> Multi-delete not working (2931458) + -> Samba: can/must change password needs to be read from domain policy (2919236) + -> DNs which include "#" are not editable/deletable (2931461) + -> fixed configure/Makefile + -> Asterisk input fields and authentication realm (patch 2971792) + + +16.12.2009 2.9.0 + - Asterisk support + - new tool: server information + - consolidated LAM documentation in new manual (docs/manual/index.html) + - DHCP: add host name to fixed IPs (RFE 2898948) + - LAM Pro: + -> enabled custom scripts for self service + -> support for nisObject object class + - fixed bugs: + -> unable to edit accounts with DNs that contain spaces next to a comma (2889473) + -> login method "LDAP search" has problems if LDAP server is down (2889414) + -> filter in account lists did not support non-ASCII letters + -> alias handling (2901248) + -> DHCP range check (2903267) + + +28.10.2009 2.8.0 + - ability to hide fields: inetOrgPerson, sambaSamAccount + - compatibility with PHP 5.3 + - one central button to change passwords on account pages + - removed support for Samba 2 accounts + - removed lamdaemonOld script + + +05.08.2009 2.7.0 + - LAM Pro: allow to execute custom scripts + - log client IP at login attempt + - added separate configuration option to enable/disable TLS encryption + - Samba 3: allow to disable LM hashes (on by default) (RFE 2657140) + - DHCP: added description field and reordered fixed IP input fields + - fixed bugs: + * added additional check for creating home directories (2798489) + * support memcache for session storage (2811505) + + +08.04.2009 2.6.0 + - support NIS netgroups + - support EDU person accounts (RFE 1413731) + - Personal: support departmentNumber attribute + - DHCP: allow file upload + - added config option to search LAM login users in LDAP (RFE 2494249) + - help messages are displayed as tooltips + - LAM Pro: + -> add businessCategory to self service (RFE 2494246) + -> allow to customize page headers and use custom CSS styles + + +21.01.2009 2.5.0 + - LAM Pro: + -> supports rfc2307bis schema for Unix groups (RFE 2111694) + -> added alias manangement (object classes alias + uidObject) (RFE 1912779) + - Shadow: module is now optional when creating new accounts + - Kolab: + -> account extension is now optional + -> can be used without Unix module + -> self service uses no extra LDAP suffix but uses global setting + - DHCP: + -> several bugfixes + -> added PDF support + -> support multiple Netbios name servers (RFE 2180179) + - Samba 3: + -> self service sets attribute "sambaPwdLastSet" on password change (LAM Pro) + -> password timestamps can be updated on password reset page (LAM Pro) + -> option to force password change on next login + -> profile options for time when the user can/must change the password + + +15.10.2008 2.4.0 + - added DHCP management (donated by Siedl networks GmbH) + - requires PHP 5.1.2 + - MHash dependendy replaced by Hash + - save last selected server profile from login page + - lamdaemon: allow to specify SSH port + - lamdaemon: added Syslog logging + - Unix: added profile options for lamdaemon + - LAM Pro: password reset page is able to unlock Samba accounts and sets shadowLastChange + - fixed bugs: + * problems with DN containing ( and ) (2059740) + * problem with gecos field in file upload (2103936) + + +30.04.2008 2.3.0 + - added Polish translation + - support phpGroupWare accounts + - password policies + - redesigned PDF editor + - show mail addresses as link in account list + - Unix: allow primary group members to be added as memberUid + - Kolab: support LAM Pro self service + - LAM Pro: new account type for groupOf(Unique)Names + - fixed bugs: + -> XHTML headers should be removed (1912736) + + +23.01.2008 2.2.0 + - account lists: + -> allow to switch sorting + -> added separate configuration page and store settings in cookies + -> list size can now be set individually for each account type on the list configuration page + -> new PDF buttons + - use suffix from account list as default for new accounts (patch 1823583) + - Security: passwords in configuration files are now saved as hash values + - improved design + - style fixes for Internet Explorer users + - Unix: allow to set host passwords (RFE 1754069) + - Unix: allow to generate random passwords for users + - Samba 3 groups: Samba part is now optional + - Personal: add object classes person and organizationalPerson for new accounts (RFE 1830033) + - new LDAP schema check on tests page + - LAM Pro: + -> added possibility for deskside support to reset passwords at account list page + -> access levels (read only, change passwords, write access) for server profiles + + +07.11.2007 2.1.0 + - tabular design for account pages + - show DN on account pages + - Samba 3: made Samba account optional + - Samba 3: manages now terminal server settings + - fixed bugs: + -> LAM Pro: UTF-8 characters are invalid displayed on configuration page (1788752) + -> LAM works again on PHP 5.1.x (1792447) + -> Quota: managing group quotas does not work (1811728) + -> Samba 3 domains: lockout users after bad logon attempts must allow 0 - 999 (1814578) + + +08.08.2007 2.0.0 + - new translations: Chinese (Simplified), Czech and Portuguese + - usability improvements + - LDAP accounts including child entries can now be moved + - group list can show primary members (RFE 1517679 and patch 1722460) + - more translated example texts (RFE 1702140) + - inetOrgPerson: now manages homePhone, roomNumber, businessCategory + - posixAccount: allow to create home directories in file upload (RFE 1665034) + - account lists: display buttons on top and bottom (RFE 1702136) + - fixed bugs: + -> OU editor: help images (1702132) + -> config editor: extra space (1702269) + -> fixed some inconsistent help entries (1694863) + -> user list: refreshing GID translation did not work (1719168) + -> allow uid as RDN attribute for inetOrgPerson (1740499) + -> PHP Warning: mcrypt_decrypt(): The IV parameter must be ... (1742543) + -> uid attribute no longer required for InetOrgPerson (1757215) + + +28.03.2007 1.3.0 + - improved design + - user list can now display jpegPhoto attributes + - lamdaemon: support for multiple servers + - LAM Pro: users may change their photos (jpegPhoto) + - fixed bugs: + -> ShadowAccount: PDF entry for expire date was wrong (1658868) + -> Samba groups: fixed help entry (patch 1664542) + -> Debian package did not include lamdaemonOld.pl (1660493) + -> NIS mail aliases: allow more characters in alias name (1674198) + -> fixed syntax errors in some .htaccess files + -> security fix: HTML special characters in LDAP data were not escaped + + Developers: + API changes: + - added listPrintTableCellContent() to class lamList + - added listPrintAdditionalOptions() to class lamList + - added preModifyActions() to class baseModule + - added postModifyActions() to class baseModule + - added preDeleteActions() to class baseModule + - added postDeleteActions() to class baseModule + + +24.01.2007 1.2.0 + - Samba 3: better handling of date values + - Samba 3: Handling of locked accounts (RFE 1609076) + - LAM Pro: modules can define configuration settings (Unix: password hashing) + - LAM Pro: management of groupOfNames and groupOfUniqueNames entries (RFE 875482) + - fixed bugs: + -> Lamdaemon test did not work on PHP 4 + -> InetOrgPerson: Problems with error messages (1628799) + + Developers: + API changes: + - removed get_configDescription() from module interface + - added functions to handle configuration settings for LAM Pro + + +01.11.2006 1.1.1 + - Lamdaemon: added test page (Tools -> Tests -> Lamdaemon test) + - LAM Pro: Samba passwords can now be synchronized with Unix password + - Shadow account: better management of expiration date + - fixed bugs: + -> Unix: password hashing problem (1562426) + -> Unix: No error message for wrong UID numbers in file upload + -> Filters in account lists get lost when sorting the table + + +20.09.2006 1.1.0 + - Lamdaemon now uses the SSH implementation from PECL which is much more stable + - Samba 2/3: "Use Unix password" now on by default (1517678) + + Developers: + API changes: + - removed $post parameters from module functions (delete_attributes(), + process_...(), display_html_...()). Use $_POST instead. + - process_...() functions: returned messages are no longer grouped + (e.g. return: array(array('INFO', 'headline', 'text'), array('INFO', 'headline2', 'text2'))) + + +10.08.2006 1.0.4 + - added Russian translation + - Samba 3: added policies for domain objects + - inetLocalMailRecipient: print warning if local address is already in use + + +05.07.2006 1.0.3 + - fixed bugs: + -> Kolab: fixed problem with message about missing password + -> Unix groups: fixed auto GID + -> Unix users/groups: fixed silent unlocking of passwords + -> Unix users/groups: removed invalid password option + -> Shadow: account expiration date was incorrect in some time zones + -> User list: fixed problems when deleting users and translated GIDs are activated (1503367) + + +24.05.2006 1.0.2 + - security enhancements: session timeout, logging, host restrictions + - handle LDAP attribute aliases correctly + - fixed bugs: + -> PDF creation bug when GID translation is activated (1477111) + -> allow "@" in passwords (1477878) + -> Samba 2/3: fixed NT hashes + -> fixed handling of multi-value attributes (e.g. in inetLocalMailRecipient) + + +12.04.2006 1.0.1 + - LAM can now be installed with "configure" and "make install" + - added workaround for misspelled object classes (e.g. sambaSAMAccount by smbldap-tools) + - Unix: merged password hash settings for Unix users and groups + - Samba 3: added Windows group to profile options + - security: LAM checks the session id and client IP + - fixed bugs: + -> Samba 3: hash values were wrong in some rare cases (1440021) + -> Samba 3: readded time zone selection for logon hours (1407761) + -> Unix: call of unknown function (1450464) + + +01.03.2006 1.0.0 + - new architecture with support for more account types + - new translations: Traditional Chinese, Dutch + - fixed bugs: + -> Samba groups: editing of special groups fixed + -> changed check for mail addresses (patch 1403922) + -> fixed JPG upload when MCrypt is enabled + -> fixed login problems for AD servers + -> improved sorting of account lists + -> fixed language setting in default configuration profile + -> fixed PHP5 warnings (getdate() and mktime()) + -> error messages in Samba domain module (1437425) + -> fixed expired passwords with shadowAccount module + -> added lamdaemon.pl compatibility and security patches by Tim Rice + + +08.02.2006 1.0.rc2 + - new translation: Dutch + - fixed bugs: + -> changed check for mail addresses (patch 1403922) + -> fixed JPG upload when MCrypt is enabled + -> fixed login problems for AD servers + + +09.01.2006 1.0.rc1 + - new architecture with support for more account types + - new translation: Traditional Chinese + - fixed bugs: + -> Samba groups: editing of special groups fixed + + +14.12.2005 0.5.3 + - accounts are now deleted with subentries + - big update for Italian translation + - inetOrgPerson: support jpegPhoto images + - less restrictive input checks + - fixed bugs: + -> fixed problems with case-insensitive DNs + -> file upload did not work when max_execution_time=0 (1367957) + -> posixGroup: fixed help entries + + +16.11.2005 0.5.2 + - New module for SSH public keys + - check file permissions on login page + - fixed bugs: + -> creation of home directories did not work + -> allow spaces in profile names (1333058) + -> fixed problem with magic_quotes_gpc in profile editor (1333069) + -> inetOrgPerson: deletion of postal address and fax number now works + + +19.10.2005 0.5.1 + - Samba 3: added support for account expiration + - fixed bugs: + -> automatic UID/GID assignment did not fully work + -> PDF: additional groups for Unix users + -> inetOrgPerson: fixed mobile number + -> Samba 2/3: passwords fixed for file uploads (1311561) + -> Samba 3: fixed logon hours (patch 1311915) + -> Samba 3: loading of domain setting from profile did not work + -> Quota: profile settings fixed + -> reduced memory usage + + +28.09.2005 0.5.0 + - Samba 2/3: added display name in account pages + - fixed bugs: + -> fixed error message when creating new accounts with shadowAccount + -> added missing help entries on main account page + -> Samba 2/3: fixed settings for password expiration, no password and deactivated account + -> changing of RDN caused problems in some cases + + +08.09.2005 0.5.rc3 + - INFO messages no longer prevent changing to subpages of a module + - fixed bugs: + -> buttons on account page are better sorted + -> account module: some problems solved when used for user accounts + -> nisMailAlias: fixed missing RDN possibility + -> fixed conflicts when accounts were built with other base modules + -> Samba 2/3: setting allowed workstations failed + -> magic_quotes_gpc = Off prevented editing of accounts + -> fixed help links on Samba and Unix pages + + +18.08.2005 0.5.rc2 + - allow user accounts based only on "account" module + - inetOrgPerson: allow setting a password if posixAccount is not active + - fixed bugs: + -> removed Blowfish encryption (bad performance) + -> Kolab now complains if no user password is set + + +08.08.2005 0.5.rc1 + - Kolab 2 support + - added manager and post office box for inetOrgPerson + - Samba 3: added support for logon hours + - Samba 3: added sambaSID as possible RDN attribute + - improved error handling in profile editor + - now quotas can be set on CSV upload + - new logo + - fixed bugs: + -> several fixes for PHP5 + -> fixes for PDF editor and output + -> password changing in tree view did not work + -> fixed changing of group memberships for users + + +28.07.2005 0.4.10 + - PHP5 compatibility added + + +30.06.2005 0.5.alpha2 + - added documentation about schemas + - PDF now uses UTF-8 fonts + - added possibility to create plain inetOrgPerson accounts + - fixed bugs: + -> set DN suffix and RDN on profile loading + -> several fixes for PDF editor + -> creating Samba hosts now works + + +11.05.2005 0.5.alpha1 + - new modular architecture + -> possibility to create Unix-only accounts + -> plugins for more objectClasses planned + -> enhanced PDF output + -> enhanced file upload + -> enhanced editor for account profiles + -> dynamic configuration options (based on modules) + - all pages in UTF-8 + - added developer documentation + - PHPDoc formated comments + - new plugin for managing MAC addresses (RFE 926017) + - new plugin for managing NIS mail aliases (RFE 1050036) + - new plugin for managing mail routing with inetLocalMailRecipient (RFE 1092137) + - schema browser + - tree view + + +09.03.2005 0.4.9 + - fixed bugs: + fixed error messages when moving an user account + fixed problem with special group SIDs + lamdaemon.pl security fix + + +26.01.2005 0.4.8 + - allow "%" at the beginning of Samba home/profile path (1107998) + - fixed bugs: + fixed IE fix ;-) + no more warnings for profiles with no additional groups set + + +19.12.2004 0.4.7 + - added "*.exe" to Samba logon script regex (1081715) + - fixed bugs: + fixed doctype of main frame + removed syntax check for LDAP suffixes + fixed IE bug at login + fixed encoding in HTTP header + passwords with "'" are now handled correctly at login (1081460) + fixed Samba flags if multiple hosts were created + updated .htaccess files to be compatible with newer Apache versions + + +26.05.2004 0.4.6 + - fixed bugs: + password hashes were not disabled correctly + street was copied to postal code on modify (938502) + underscore was not allowed for host names (934445) + deleting postal address or facsimile number failed (948616) + TLS error handling (958497) + smaller fixes on personal settings page + + +21.03.2004 0.4.5 + - added French translation + - fixed bugs: + StatusMessages with additional variables did not work + Samba hosts had unnecessary objectClass shadowAccount (910084) + Samba host passwords were still wrong + LAM had problems with non-standard spelled object classes (907636) + Perl scripts did not work if Perl is not installed in /usr/bin/perl (913554) + problems when cn!=uid (915041) + home directories were not deleted by lamdaemon.pl (913552) + + +29.02.2004 0.4.4 (stable) + - fixed bugs: + plain posix groups could not be used as Samba 3 primary group + if magic_quotes_gpc in php.ini is was set to "Off", several pages did not work + some smaller bugs in mass upload + Samba hash values for hosts were not correct + Unix passwords could be disabled but not reenabled + fixed problem with eval() in status.inc (894433) + + +08.02.2004 0.4.3 + - new login layout + - added Hungarian and Japanese translations + - fixed bugs: + Samba paswords were sometimes empty for new users (892272) + links in list views may not work with web servers other than Apache + + +21.01.2004 0.4.2 + - added config wizard + - MHash is only needed for PHP < 4.3 + - use Blowfish for encryption instead of MCrypt + + +29.12.2003 0.4.1 + + - better error handling at login + - support spaces in DNs + - PDF text for users + - create missing OUs recursivly + - fixed bugs: + SMD5 passwords were wrong + primaryGroupSID wrong if SID has no relation to Algorithmic RID Base + Samba 2 accounts could not be created + + +29.10.2003 0.4 (Beta1) + + - improved design + - improved documentation + - Fixed possible error which could delete entries if objectclass didn't fit + - Fixed many samba 3.0 related bugs, most related to SIDs + - edit group members directly + - support for several password hashes (CRYPT/SHA/SSHA/MD5/SMD5/PLAIN) + - PDF output for groups and hosts + + +31.08.2003 0.3 (Alpha 3) + + - Samba 3 support + - manage Samba 3 domains + - multiple configuration files + - PDF output + - better mass creation + + +04.07.2003 0.2 (Alpha 2) + + - support for multiple OUs + OU-Editor + - account creation via file upload + - profile editor + - experimental Samba 3 support + - fixed a lot of bugs + + +23.05.2003 0.1 (Alpha 1) + + Initial release diff --git a/lam/README b/lam/README new file mode 100644 index 00000000..790dff75 --- /dev/null +++ b/lam/README @@ -0,0 +1,35 @@ + +LAM - Readme +============ + + LDAP Account Manager (LAM) manages user, group and host accounts in an LDAP + directory. LAM runs on any webserver with PHP5 support and connects to your + LDAP server unencrypted or via SSL/TLS. + Currently LAM supports these account types: Samba 3/4, Unix, Kolab 2, + address book entries, NIS mail aliases and MAC addresses. There is a tree + viewer included to allow access to the raw LDAP attributes. You can use + templates for account creation and use multiple configuration profiles. + LAM is translated to Catalan, Chinese (Traditional + Simplified), Czech, + Dutch, English, French, German, Hungarian, Italian, Japanese, Polish, + Portuguese, Russian, Slovak, Spanish, Turkish and Ukrainian. + + https://www.ldap-account-manager.org/ + + Copyright (C) 2003 - 2014 Roland Gruber + + Installation and documentation: + Please see the LAM manual in docs/manual/index.html. + + Default password: + The default password to edit the configuration options is "lam". + + Download: + You can get the newest version at https://www.ldap-account-manager.org/. + + License: + LAM is published under the GNU General Public License. + The complete list of licenses can be found in the copyright file. + + + Have fun! + The LAM development team diff --git a/lam/VERSION b/lam/VERSION new file mode 100644 index 00000000..676e1a5c --- /dev/null +++ b/lam/VERSION @@ -0,0 +1 @@ +4.7.RC1 diff --git a/lam/config/.htaccess b/lam/config/.htaccess new file mode 100644 index 00000000..8334f2cd --- /dev/null +++ b/lam/config/.htaccess @@ -0,0 +1,9 @@ + + + Order allow,deny + Deny from all + + = 2.3> + Require all denied + + diff --git a/lam/config/config.cfg.sample b/lam/config/config.cfg.sample new file mode 100644 index 00000000..46be35bc --- /dev/null +++ b/lam/config/config.cfg.sample @@ -0,0 +1,12 @@ + +# password to add/delete/rename configuration profiles (default: lam) +password: {SSHA}D6AaX93kPmck9wAxNlq3GF93S7A= R7gkjQ== + +# default profile, without ".conf" +default: lam + +# log level +logLevel: 4 + +# log destination +logDestination: SYSLOG diff --git a/lam/config/lam.conf.sample b/lam/config/lam.conf.sample new file mode 100644 index 00000000..7ffed9ce --- /dev/null +++ b/lam/config/lam.conf.sample @@ -0,0 +1,76 @@ +# LDAP Account Manager configuration +# +# Please do not modify this file manually. The configuration can be done completely by the LAM GUI. +# +################################################################################################### + +# server address (e.g. ldap://localhost:389 or ldaps://localhost:636) +serverURL: ldap://localhost:389 + +# list of users who are allowed to use LDAP Account Manager +# names have to be seperated by semicolons +# e.g. admins: cn=admin,dc=yourdomain,dc=org;cn=root,dc=yourdomain,dc=org +admins: cn=Manager,dc=my-domain,dc=com + +# password to change these preferences via webfrontend (default: lam) +passwd: {SSHA}RjBruJcTxZEdcBjPQdRBkDaSQeY= iueleA== + +# suffix of tree view +# e.g. dc=yourdomain,dc=org +treesuffix: dc=yourdomain,dc=org + +# default language (a line from config/language) +defaultLanguage: en_GB.utf8:UTF-8:English (Great Britain) + +# Path to external Script +scriptPath: + +# Server of external Script +scriptServer: + +# Access rights for home directories +scriptRights: 750 + +# Number of minutes LAM caches LDAP searches. +cachetimeout: 5 + +# LDAP search limit. +searchLimit: 0 + +# Module settings + +modules: posixAccount_minUID: 10000 +modules: posixAccount_maxUID: 30000 +modules: posixAccount_minMachine: 50000 +modules: posixAccount_maxMachine: 60000 +modules: posixGroup_minGID: 10000 +modules: posixGroup_maxGID: 20000 +modules: posixGroup_pwdHash: SSHA +modules: posixAccount_pwdHash: SSHA + +# List of active account types. +activeTypes: user,group,host,smbDomain + + +types: suffix_user: ou=People,dc=my-domain,dc=com +types: attr_user: #uid;#givenName;#sn;#uidNumber;#gidNumber +types: modules_user: inetOrgPerson,posixAccount,shadowAccount,sambaSamAccount + +types: suffix_group: ou=group,dc=my-domain,dc=com +types: attr_group: #cn;#gidNumber;#memberUID;#description +types: modules_group: posixGroup,sambaGroupMapping + +types: suffix_host: ou=machines,dc=my-domain,dc=com +types: attr_host: #cn;#description;#uidNumber;#gidNumber +types: modules_host: account,posixAccount,sambaSamAccount + +types: suffix_smbDomain: dc=my-domain,dc=com +types: attr_smbDomain: sambaDomainName:Domain name;sambaSID:Domain SID +types: modules_smbDomain: sambaDomain + +# Password mail subject +lamProMailSubject: Your password was reset + +# Password mail text +lamProMailText: Dear @@givenName@@ @@sn@@,+::++::+your password was reset to: @@newPassword@@+::++::++::+Best regards+::++::+deskside support+::+ + diff --git a/lam/config/language b/lam/config/language new file mode 100644 index 00000000..27e5b030 --- /dev/null +++ b/lam/config/language @@ -0,0 +1,63 @@ +# LDAP Account Manager language configuration file +# +# Do not modify! + +# Each line consists of a ":"-seperated entry. The first part is the locale name, +# the second is the character encoding and the third the language name. + +# Catalan +ca_ES.utf8:UTF-8:Català (Catalunya) + +# Czech +cs_CZ.utf8:UTF-8:Čeština (Česko) + +# German +de_DE.utf8:UTF-8:Deutsch (Deutschland) + +# GB English +en_GB.utf8:UTF-8:English (Great Britain) + +# US English +en_US.utf8:UTF-8:English (USA) + +# Spanish +es_ES.utf8:UTF-8:Español (España) + +# French +fr_FR.utf8:UTF-8:Français (France) + +# Italian +it_IT.utf8:UTF-8:Italiano (Italia) + +# Hungarian +hu_HU.utf8:UTF-8:Magyar (Magyarország) + +# Dutch +nl_NL.utf8:UTF-8:Nederlands (Nederland) + +# Polish +pl_PL.utf8:UTF-8:Polski (Polska) + +# Portuguese +pt_BR.utf8:UTF-8:Português (Brasil) + +# Russian +ru_RU.utf8:UTF-8:Русский (Россия) + +# Slovakian +sk_SK.utf8:UTF-8:Slovenčina (Slovensko) + +# Turkish +tr_TR.utf8:UTF-8:Türkçe (Türkiye) + +# Ukrainian +uk_UA.utf8:UTF-8:Українська (Україна) + +# Japanese +ja_JP.utf8:UTF-8:日本語 (日本) + +# Chinese (Traditional) +zh_TW.utf8:UTF-8:繁體中文 (台灣) + +# Chinese (Simplified) +zh_CN.utf8:UTF-8:简体中文 (中国) diff --git a/lam/config/pdf/.htaccess b/lam/config/pdf/.htaccess new file mode 100644 index 00000000..6b7971c2 --- /dev/null +++ b/lam/config/pdf/.htaccess @@ -0,0 +1,4 @@ + + Order allow,deny + Deny from all + diff --git a/lam/config/profiles/.htaccess b/lam/config/profiles/.htaccess new file mode 100644 index 00000000..6b7971c2 --- /dev/null +++ b/lam/config/profiles/.htaccess @@ -0,0 +1,4 @@ + + Order allow,deny + Deny from all + diff --git a/lam/config/selfService/.htaccess b/lam/config/selfService/.htaccess new file mode 100644 index 00000000..6b7971c2 --- /dev/null +++ b/lam/config/selfService/.htaccess @@ -0,0 +1,4 @@ + + Order allow,deny + Deny from all + diff --git a/lam/config/selfService/default.user b/lam/config/selfService/default.user new file mode 100644 index 00000000..37d457bd --- /dev/null +++ b/lam/config/selfService/default.user @@ -0,0 +1,7 @@ +O:18:"selfServiceProfile":19:{s:9:"serverURL";s:9:"localhost";s:6:"useTLS";b:0;s:10:"LDAPSuffix";s:29:"ou=people,dc=my-domain,dc=com";s:8:"LDAPUser";s:0:"";s:12:"LDAPPassword";s:0:"";s:19:"useForAllOperations";b:0;s:15:"searchAttribute";s:3:"uid";s:18:"httpAuthentication";b:0;s:10:"pageHeader";s:0:"";s:13:"additionalCSS";s:0:"";s:12:"loginCaption";s:82:"

+ Welcome to LAM self service. Please enter your user name and password.

+";s:13:"passwordLabel";s:0:"";s:18:"loginAttributeText";s:9:"User name";s:20:"additionalLDAPFilter";s:0:"";s:12:"mainPageText";s:85:"

+ LAM self service

+

+ Here you can change your personal settings.

+";s:11:"inputFields";a:2:{i:0;a:2:{s:4:"name";s:13:"Personal data";s:6:"fields";a:8:{i:0;s:23:"inetOrgPerson_firstName";i:1;s:22:"inetOrgPerson_lastName";i:2;s:18:"inetOrgPerson_mail";i:3;s:29:"inetOrgPerson_telephoneNumber";i:4;s:20:"inetOrgPerson_mobile";i:5;s:23:"inetOrgPerson_faxNumber";i:6;s:20:"inetOrgPerson_street";i:7;s:27:"inetOrgPerson_postalAddress";}}i:1;a:2:{s:4:"name";s:8:"Password";s:6:"fields";a:1:{i:0;s:21:"posixAccount_password";}}}s:14:"readOnlyFields";N;s:13:"relabelFields";N;s:14:"moduleSettings";a:42:{s:21:"customScripts_scripts";a:1:{i:0;s:0:"";}s:26:"customScripts_containsHTML";a:1:{i:0;s:5:"false";}s:25:"customScripts_hideCommand";a:1:{i:0;s:5:"false";}s:21:"mitKerberos_kadminCmd";a:1:{i:0;s:64:"/usr/sbin/kadmin -k -t /etc/heimdal/apache.keytab -p admin/admin";}s:24:"selfRegistration_enabled";a:1:{i:0;s:5:"false";}s:26:"selfRegistration_labelText";a:1:{i:0;s:0:"";}s:24:"selfRegistration_adminDN";a:1:{i:0;s:0:"";}s:30:"selfRegistration_adminPassword";a:1:{i:0;s:0:"";}s:20:"selfRegistration_rdn";a:1:{i:0;s:3:"uid";}s:25:"selfRegistration_dnSuffix";a:1:{i:0;s:0:"";}s:30:"selfRegistration_objectClasses";a:1:{i:0;s:13:"inetOrgPerson";}s:27:"selfRegistration_attributes";a:2:{i:0;s:85:"optional::givenName::First name::/^[[:alnum:] ]+$/u::Please enter a valid first name.";i:1;s:76:"required::sn::Last name::/^[[:alnum:] ]+$/u::Please enter a valid last name.";}s:32:"selfRegistration_confirmMailFrom";a:1:{i:0;s:0:"";}s:35:"selfRegistration_confirmMailSubject";a:1:{i:0;s:29:"Account creation confirmation";}s:32:"selfRegistration_confirmMailHTML";a:1:{i:0;s:5:"false";}s:32:"selfRegistration_confirmMailText";a:3:{i:0;s:3:"Hi,";i:1;s:0:"";i:2;s:75:"please click on the following link to create your account: @@creationLink@@";}s:29:"asteriskAccount_AsteriskRealm";a:1:{i:0;s:0:"";}s:20:"posixAccount_pwdHash";a:1:{i:0;s:4:"SSHA";}s:19:"posixAccount_shells";a:6:{i:0;s:9:"/bin/bash";i:1;s:8:"/bin/csh";i:2;s:9:"/bin/dash";i:3;s:10:"/bin/false";i:4;s:8:"/bin/ksh";i:5;s:7:"/bin/sh";}s:13:"zarafa_schema";a:1:{i:0;s:4:"ldap";}s:20:"pykotaUser_jobSuffix";a:1:{i:0;s:0:"";}s:22:"customFields_fieldList";a:1:{i:0;s:8:"YTowOnt9";}s:25:"passwordSelfReset_enabled";a:1:{i:0;s:5:"false";}s:26:"passwordSelfReset_idMethod";a:1:{i:0;s:1:"2";}s:30:"passwordSelfReset_answerLength";a:1:{i:0;s:1:"3";}s:27:"passwordSelfReset_labelText";a:1:{i:0;s:0:"";}s:25:"passwordSelfReset_adminDN";a:1:{i:0;s:0:"";}s:31:"passwordSelfReset_adminPassword";a:1:{i:0;s:0:"";}s:27:"passwordSelfReset_questions";a:1:{i:0;s:0:"";}s:28:"passwordSelfReset_samba3Sync";a:1:{i:0;s:4:"true";}s:29:"passwordSelfReset_confirmMail";a:1:{i:0;s:5:"false";}s:33:"passwordSelfReset_confirmMailFrom";a:1:{i:0;s:0:"";}s:36:"passwordSelfReset_confirmMailSubject";a:1:{i:0;s:27:"Password reset confirmation";}s:33:"passwordSelfReset_confirmMailHTML";a:1:{i:0;s:5:"false";}s:33:"passwordSelfReset_confirmMailText";a:1:{i:0;s:44:"Please click here to continue: @@resetLink@@";}s:38:"passwordSelfReset_skipSecurityQuestion";a:1:{i:0;s:5:"false";}s:26:"passwordSelfReset_infoMail";a:1:{i:0;s:5:"false";}s:30:"passwordSelfReset_infoMailFrom";a:1:{i:0;s:0:"";}s:33:"passwordSelfReset_infoMailSubject";a:1:{i:0;s:27:"Password reset notification";}s:30:"passwordSelfReset_infoMailHTML";a:1:{i:0;s:5:"false";}s:30:"passwordSelfReset_infoMailText";a:1:{i:0;s:45:"Your password was changed to @@newPassword@@.";}s:25:"heimdalKerberos_kadminCmd";a:1:{i:0;s:98:"/usr/sbin/kadmin -K /etc/heimdal/apache.keytab -p admin/admin passwd -p @@password@@ @@principal@@";}}} \ No newline at end of file diff --git a/lam/config/templates/pdf/.htaccess b/lam/config/templates/pdf/.htaccess new file mode 100644 index 00000000..6b7971c2 --- /dev/null +++ b/lam/config/templates/pdf/.htaccess @@ -0,0 +1,4 @@ + + Order allow,deny + Deny from all + diff --git a/lam/config/templates/pdf/default.alias.xml b/lam/config/templates/pdf/default.alias.xml new file mode 100644 index 00000000..a7beba30 --- /dev/null +++ b/lam/config/templates/pdf/default.alias.xml @@ -0,0 +1,6 @@ + +
+ + +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/default.asteriskExt.xml b/lam/config/templates/pdf/default.asteriskExt.xml new file mode 100644 index 00000000..9b8a0d6f --- /dev/null +++ b/lam/config/templates/pdf/default.asteriskExt.xml @@ -0,0 +1,7 @@ + +
+ + + +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/default.automountType.xml b/lam/config/templates/pdf/default.automountType.xml new file mode 100644 index 00000000..99403acb --- /dev/null +++ b/lam/config/templates/pdf/default.automountType.xml @@ -0,0 +1,6 @@ + +
+ + +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/default.bind.xml b/lam/config/templates/pdf/default.bind.xml new file mode 100644 index 00000000..a103a9cd --- /dev/null +++ b/lam/config/templates/pdf/default.bind.xml @@ -0,0 +1,7 @@ + +
+ + + +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/default.dhcp.xml b/lam/config/templates/pdf/default.dhcp.xml new file mode 100644 index 00000000..2b8c67bd --- /dev/null +++ b/lam/config/templates/pdf/default.dhcp.xml @@ -0,0 +1,20 @@ + +
+ + + + + + + + + + + + + +
+
+ +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/default.gon.xml b/lam/config/templates/pdf/default.gon.xml new file mode 100644 index 00000000..c7a5bd70 --- /dev/null +++ b/lam/config/templates/pdf/default.gon.xml @@ -0,0 +1,8 @@ + +
+ + + + +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/default.group.xml b/lam/config/templates/pdf/default.group.xml new file mode 100644 index 00000000..a301e141 --- /dev/null +++ b/lam/config/templates/pdf/default.group.xml @@ -0,0 +1,8 @@ + +
+ + + + +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/default.host.xml b/lam/config/templates/pdf/default.host.xml new file mode 100644 index 00000000..4cc222b7 --- /dev/null +++ b/lam/config/templates/pdf/default.host.xml @@ -0,0 +1,9 @@ + +
+ + + + + +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/default.kolabSharedFolderType.xml b/lam/config/templates/pdf/default.kolabSharedFolderType.xml new file mode 100644 index 00000000..081ab8ac --- /dev/null +++ b/lam/config/templates/pdf/default.kolabSharedFolderType.xml @@ -0,0 +1,11 @@ + +
+ + + + + + + +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/default.mailAlias.xml b/lam/config/templates/pdf/default.mailAlias.xml new file mode 100644 index 00000000..5ee9cae6 --- /dev/null +++ b/lam/config/templates/pdf/default.mailAlias.xml @@ -0,0 +1,5 @@ + +
+ +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/default.netgroup.xml b/lam/config/templates/pdf/default.netgroup.xml new file mode 100644 index 00000000..4ae161b9 --- /dev/null +++ b/lam/config/templates/pdf/default.netgroup.xml @@ -0,0 +1,7 @@ + +
+ + + +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/default.nisObjectType.xml b/lam/config/templates/pdf/default.nisObjectType.xml new file mode 100644 index 00000000..26f20a5f --- /dev/null +++ b/lam/config/templates/pdf/default.nisObjectType.xml @@ -0,0 +1,7 @@ + +
+ + + +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/default.oracleContextType.xml b/lam/config/templates/pdf/default.oracleContextType.xml new file mode 100644 index 00000000..43c581c5 --- /dev/null +++ b/lam/config/templates/pdf/default.oracleContextType.xml @@ -0,0 +1,6 @@ + +
+ + +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/default.ppolicyType.xml b/lam/config/templates/pdf/default.ppolicyType.xml new file mode 100644 index 00000000..2f0c7ff4 --- /dev/null +++ b/lam/config/templates/pdf/default.ppolicyType.xml @@ -0,0 +1,18 @@ + +
+ + + + + + + + + + + + + + +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/default.pykotaBillingCodeType.xml b/lam/config/templates/pdf/default.pykotaBillingCodeType.xml new file mode 100644 index 00000000..3ef5c350 --- /dev/null +++ b/lam/config/templates/pdf/default.pykotaBillingCodeType.xml @@ -0,0 +1,7 @@ + +
+ + + +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/default.pykotaPrinterType.xml b/lam/config/templates/pdf/default.pykotaPrinterType.xml new file mode 100644 index 00000000..cc8d89a3 --- /dev/null +++ b/lam/config/templates/pdf/default.pykotaPrinterType.xml @@ -0,0 +1,11 @@ + +
+ + + + + + + +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/default.smbDomain.xml b/lam/config/templates/pdf/default.smbDomain.xml new file mode 100644 index 00000000..810d40ca --- /dev/null +++ b/lam/config/templates/pdf/default.smbDomain.xml @@ -0,0 +1,6 @@ + +
+ + +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/default.sudo.xml b/lam/config/templates/pdf/default.sudo.xml new file mode 100644 index 00000000..8745f37e --- /dev/null +++ b/lam/config/templates/pdf/default.sudo.xml @@ -0,0 +1,11 @@ + +
+ + + + + + + +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/default.user.xml b/lam/config/templates/pdf/default.user.xml new file mode 100644 index 00000000..a3e6faf3 --- /dev/null +++ b/lam/config/templates/pdf/default.user.xml @@ -0,0 +1,35 @@ + +
+ + + + + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + +
+
+ +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/default.zarafaAddressListType.xml b/lam/config/templates/pdf/default.zarafaAddressListType.xml new file mode 100644 index 00000000..37e1a336 --- /dev/null +++ b/lam/config/templates/pdf/default.zarafaAddressListType.xml @@ -0,0 +1,8 @@ + +
+ + + + +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/default.zarafaDynamicGroupType.xml b/lam/config/templates/pdf/default.zarafaDynamicGroupType.xml new file mode 100644 index 00000000..7ca6725d --- /dev/null +++ b/lam/config/templates/pdf/default.zarafaDynamicGroupType.xml @@ -0,0 +1,10 @@ + +
+ + + + + + +
+
\ No newline at end of file diff --git a/lam/config/templates/pdf/logos/.htaccess b/lam/config/templates/pdf/logos/.htaccess new file mode 100644 index 00000000..6b7971c2 --- /dev/null +++ b/lam/config/templates/pdf/logos/.htaccess @@ -0,0 +1,4 @@ + + Order allow,deny + Deny from all + diff --git a/lam/config/templates/pdf/logos/printLogo.jpg b/lam/config/templates/pdf/logos/printLogo.jpg new file mode 100644 index 00000000..d9709a57 Binary files /dev/null and b/lam/config/templates/pdf/logos/printLogo.jpg differ diff --git a/lam/config/templates/profiles/.htaccess b/lam/config/templates/profiles/.htaccess new file mode 100644 index 00000000..6b7971c2 --- /dev/null +++ b/lam/config/templates/profiles/.htaccess @@ -0,0 +1,4 @@ + + Order allow,deny + Deny from all + diff --git a/lam/config/templates/profiles/default.alias b/lam/config/templates/profiles/default.alias new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/lam/config/templates/profiles/default.alias @@ -0,0 +1 @@ + diff --git a/lam/config/templates/profiles/default.asteriskExt b/lam/config/templates/profiles/default.asteriskExt new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/lam/config/templates/profiles/default.asteriskExt @@ -0,0 +1 @@ + diff --git a/lam/config/templates/profiles/default.automountType b/lam/config/templates/profiles/default.automountType new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/lam/config/templates/profiles/default.automountType @@ -0,0 +1 @@ + diff --git a/lam/config/templates/profiles/default.bind b/lam/config/templates/profiles/default.bind new file mode 100644 index 00000000..39b62e62 --- /dev/null +++ b/lam/config/templates/profiles/default.bind @@ -0,0 +1,3 @@ +profname: default +ldap_suffix: - +ldap_rdn: cn diff --git a/lam/config/templates/profiles/default.dhcp b/lam/config/templates/profiles/default.dhcp new file mode 100644 index 00000000..e69de29b diff --git a/lam/config/templates/profiles/default.gon b/lam/config/templates/profiles/default.gon new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/lam/config/templates/profiles/default.gon @@ -0,0 +1 @@ + diff --git a/lam/config/templates/profiles/default.group b/lam/config/templates/profiles/default.group new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/lam/config/templates/profiles/default.group @@ -0,0 +1 @@ + diff --git a/lam/config/templates/profiles/default.host b/lam/config/templates/profiles/default.host new file mode 100644 index 00000000..e69de29b diff --git a/lam/config/templates/profiles/default.kolabSharedFolderType b/lam/config/templates/profiles/default.kolabSharedFolderType new file mode 100644 index 00000000..8d1c8b69 --- /dev/null +++ b/lam/config/templates/profiles/default.kolabSharedFolderType @@ -0,0 +1 @@ + diff --git a/lam/config/templates/profiles/default.mailAlias b/lam/config/templates/profiles/default.mailAlias new file mode 100644 index 00000000..8d1c8b69 --- /dev/null +++ b/lam/config/templates/profiles/default.mailAlias @@ -0,0 +1 @@ + diff --git a/lam/config/templates/profiles/default.netgroup b/lam/config/templates/profiles/default.netgroup new file mode 100644 index 00000000..8d1c8b69 --- /dev/null +++ b/lam/config/templates/profiles/default.netgroup @@ -0,0 +1 @@ + diff --git a/lam/config/templates/profiles/default.nisObjectType b/lam/config/templates/profiles/default.nisObjectType new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/lam/config/templates/profiles/default.nisObjectType @@ -0,0 +1 @@ + diff --git a/lam/config/templates/profiles/default.oracleContextType b/lam/config/templates/profiles/default.oracleContextType new file mode 100644 index 00000000..8d1c8b69 --- /dev/null +++ b/lam/config/templates/profiles/default.oracleContextType @@ -0,0 +1 @@ + diff --git a/lam/config/templates/profiles/default.ppolicyType b/lam/config/templates/profiles/default.ppolicyType new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/lam/config/templates/profiles/default.ppolicyType @@ -0,0 +1 @@ + diff --git a/lam/config/templates/profiles/default.pykotaBillingCodeType b/lam/config/templates/profiles/default.pykotaBillingCodeType new file mode 100644 index 00000000..39b62e62 --- /dev/null +++ b/lam/config/templates/profiles/default.pykotaBillingCodeType @@ -0,0 +1,3 @@ +profname: default +ldap_suffix: - +ldap_rdn: cn diff --git a/lam/config/templates/profiles/default.pykotaPrinterType b/lam/config/templates/profiles/default.pykotaPrinterType new file mode 100644 index 00000000..39b62e62 --- /dev/null +++ b/lam/config/templates/profiles/default.pykotaPrinterType @@ -0,0 +1,3 @@ +profname: default +ldap_suffix: - +ldap_rdn: cn diff --git a/lam/config/templates/profiles/default.smbDomain b/lam/config/templates/profiles/default.smbDomain new file mode 100644 index 00000000..8d1c8b69 --- /dev/null +++ b/lam/config/templates/profiles/default.smbDomain @@ -0,0 +1 @@ + diff --git a/lam/config/templates/profiles/default.sudo b/lam/config/templates/profiles/default.sudo new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/lam/config/templates/profiles/default.sudo @@ -0,0 +1 @@ + diff --git a/lam/config/templates/profiles/default.user b/lam/config/templates/profiles/default.user new file mode 100644 index 00000000..1679a6a8 --- /dev/null +++ b/lam/config/templates/profiles/default.user @@ -0,0 +1,19 @@ +shadowAccount_shadowWarning: 10 +shadowAccount_shadowInactive: 10 +shadowAccount_shadowMin: 1 +shadowAccount_shadowMax: 365 +sambaAccount_useunixpwd: true +sambaAccount_acctFlagsN: false +sambaAccount_acctFlagsX: true +sambaAccount_acctFlagsD: false +sambaAccount_homeDrive: U: +sambaSamAccount_useunixpwd: true +sambaSamAccount_sambaAcctFlagsN: false +sambaSamAccount_sambaAcctFlagsX: true +sambaSamAccount_sambaAcctFlagsD: false +sambaSamAccount_sambaHomeDrive: U: +sambaSamAccount_group: 513 +posixAccount_homeDirectory: /home/$user +posixAccount_loginShell: /bin/bash +asteriskAccount_AstAccountHost: dynamic +asteriskAccount_AstAccountContext: default diff --git a/lam/config/templates/profiles/default.zarafaAddressListType b/lam/config/templates/profiles/default.zarafaAddressListType new file mode 100644 index 00000000..8d1c8b69 --- /dev/null +++ b/lam/config/templates/profiles/default.zarafaAddressListType @@ -0,0 +1 @@ + diff --git a/lam/config/templates/profiles/default.zarafaDynamicGroupType b/lam/config/templates/profiles/default.zarafaDynamicGroupType new file mode 100644 index 00000000..8d1c8b69 --- /dev/null +++ b/lam/config/templates/profiles/default.zarafaDynamicGroupType @@ -0,0 +1 @@ + diff --git a/lam/copyright b/lam/copyright new file mode 100644 index 00000000..678c1956 --- /dev/null +++ b/lam/copyright @@ -0,0 +1,182 @@ +This software is copyright (c) 2003 - 2014 by Roland Gruber + +If you purchased a copy of LDAP Account Manager Pro then the following +files are licensed under the conditions which you accepted at purchase +time. + +* templates/lists/changePassword.php +* templates/selfService/* +* lib/modules/aliasEntry.inc +* lib/modules/automount.inc +* lib/modules/bindDLZ.inc +* lib/modules/customFields.inc +* lib/modules/customScripts.inc +* lib/modules/device.inc +* lib/modules/groupOfNames.inc +* lib/modules/groupOfNamesUser.inc +* lib/modules/groupOfUniqueNames.inc +* lib/modules/heimdalKerberos.inc +* lib/modules/ipHost.inc +* lib/modules/mitKerberos.inc +* lib/modules/mitKerberosStructural.inc +* lib/modules/namedObject.inc +* lib/modules/nisObject.inc +* lib/modules/passwordSelfReset.inc +* lib/modules/oracleService.inc +* lib/modules/organizationalRole*.inc +* lib/modules/ppolicy.inc +* lib/modules/ppolicyUser.inc +* lib/modules/qmailUser.inc +* lib/modules/rfc2307bisAutomount.inc +* lib/modules/rfc2307bisPosixGroup.inc +* lib/modules/selfRegistration.inc +* lib/modules/sudoRole.inc +* lib/modules/uidObject.inc +* lib/modules/zarafaAddressList.inc +* lib/modules/zarafaContact.inc +* lib/modules/zarafaDynamicGroup.inc +* lib/modules/zarafaGroup.inc +* lib/modules/zarafaServer.inc +* lib/modules/zarafaUser.inc +* lib/types/alias.inc +* lib/types/bind.inc +* lib/types/automountType.inc +* lib/types/gon.inc +* lib/types/nisObjectType.inc +* lib/types/oracleContextType.inc +* lib/types/ppolicyType.inc +* lib/types/sudo.inc +* lib/types/zarafaAddressListType.inc +* lib/types/zarafaDynamicGroupType.inc + + +All other files are licensed under the conditions below. + + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + +The complete license can be found in the file COPYING. + + +Some parts of this package have other, compatible licences. These are: + +A: + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software to use, copy, modify, distribute, sublicense, and/or sell + copies of the software, and to permit persons to whom the software is furnished + to do so. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. + + +B: + + Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream + Vera is a trademark of Bitstream, Inc. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of the fonts accompanying this license ("Fonts") and associated + documentation files (the "Font Software"), to reproduce and distribute + the Font Software, including without limitation the rights to use, + copy, merge, publish, distribute, and/or sell copies of the Font + Software, and to permit persons to whom the Font Software is furnished + to do so, subject to the following conditions: + + The above copyright and trademark notices and this permission notice + shall be included in all copies of one or more of the Font Software + typefaces. + + The Font Software may be modified, altered, or added to, and in + particular the designs of glyphs or characters in the Fonts may be + modified and additional glyphs or characters may be added to the + Fonts, only if the fonts are renamed to names not containing either + the words "Bitstream" or the word "Vera". + + This License becomes null and void to the extent applicable to Fonts + or Font Software that has been modified and is distributed under the + "Bitstream Vera" names. + + The Font Software may be sold as part of a larger software package but + no copy of one or more of the Font Software typefaces may be sold by + itself. + + THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT + OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL + BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR + OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, + OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT + SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. + + Except as contained in this notice, the names of Gnome, the Gnome + Foundation, and Bitstream Inc., shall not be used in advertising or + otherwise to promote the sale, use or other dealings in this Font + Software without prior written authorization from the Gnome Foundation + or Bitstream Inc., respectively. For further information, contact: + fonts at gnome dot org. + + +C: + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License (LGPL) as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + For more details on the GNU Lesser General Public License, + see http://www.gnu.org/copyleft/lesser.html + + +D: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Programs and licenses with other licenses and/or authors than the +main license and authors: + +lib/fpdf.php A 2008 Olivier Plathey +lib/font/Vera* B 2003 Bitstream, Inc. +templates/lib/*wz_tooltip.js C Walter Zorn +lib/3rdParty/phpseclib D Jim Wigginton +templates/lib/*jquery*.js D 2010 John Resig, Paul Bakaus, Fred Heusschen +templates/lib/*jquery-validationEngine-*.js D 2010 Cedric Dugas and Olivier Refalo +templates/lib/*jquery-fineuploader-*.js D 2010 Andrew Valums + + diff --git a/lam/docs/devel/FAQ.htm b/lam/docs/devel/FAQ.htm new file mode 100644 index 00000000..d5b344b5 --- /dev/null +++ b/lam/docs/devel/FAQ.htm @@ -0,0 +1,105 @@ + + + + Developer FAQ + + + + +
+

Developer FAQ
+

+
+
Q: +Where is the ldap/config object?
+
+A: The ldap object +is in $_SESSION['ldap'] +and the config object in $_SESSION['config'].
+
+
+
+

+
+
Q: +How can I make LDAP operations, where is the user name and password?
+
+A: LAM +automatically reconnects to the LDAP server on every page load. You can +use $_SESSION['ldap']->server() +which is the LDAP server handle.
+Be sure to include ldap.inc before (automatically included for account +modules).
+
+Example: ldap_search($_SESSION['ldap']->server(), $suffix, $filter, $attributes)
+
+
+
+Q: What is the LDAP suffix for +the different account types?
+
+A: Just call $_SESSION['config']->get_Suffix($scope) +where $scope is the account type (user,group, ...).
+Be sure to include ldap.inc before (automatically included for account +modules).
+
+Example: $suffix = $_SESSION['config']->get_Suffix('user')
+
+
+
+Q: How can I check if the user is +really logged in and not calling the scripts by hand?
+
+A: After the user +successfully logged in to LAM the variable $_SESSION['loggedIn'] +is set to true.
+
+
+
+Q: What is the command for these error/warning/info messages?

+
+A: Your script must +include status.inc (automatically included for account +modules) to display these messages.
+The command is StatusMessage(<type>, +<headline>, <text>[, <variables>]).
+
+Parameters:
+
    +
  • <type>: message +type ("ERROR", "WARN", "INFO")
  • +
  • <headline>: +headline for the message (may include format tags)
    +
  • +
  • <type>: text for +the message (may include format tags)
  • +
  • <variables>: +optional, array of variables to include in headline/text
    +The positions in headline/text must be marked with %s before.
  • +
+
+Format of special tags:
+
    +
  • {bold}text{endbold}: "text" is printed bold
  • +
  • {color=#123456}text{endcolor}: "text" is printed in +given color
  • +
  • {link=http://nodomain.org}text{endlink}: This will add a link to +http://nodomain.org which will be labeled "text"
    +
  • +
+
+
+
+
+
+ + diff --git a/lam/docs/devel/account_modules.htm b/lam/docs/devel/account_modules.htm new file mode 100644 index 00000000..3a468b35 --- /dev/null +++ b/lam/docs/devel/account_modules.htm @@ -0,0 +1,44 @@ + + + + + Account modules + + + +

Account modules
+

+
base module
+
+

+
The account modules control all the +functionality which is specific for LDAP accounts or parts of them. +E.g. they define the account detail pages where the user can edit +accounts, the profile editor sections and much more. They are the core +of LAM.
+
+All account modules are saved in lib/modules/.
+If your module needs any include files etc. please save it in lib/modules/<name of your module>.
+
+Please take a look at the module HowTo for +an example to write your own modules.
+The complete specification for the module interface can be found here.
+
+

Superclass

+All account modules should be +subclasses of the baseModule.
+This allows them to benefit from the meta data in the baseModule and +reduces very much the code since not the complete module interface has +to be implemented.
+
+
+

Module detection

+New modules can simply be copied to lib/modules. +LAM will check what files are inside the directory and provide the user +new modules automatically.
+There is no extra configuration file.
+
+
+
+
+ \ No newline at end of file diff --git a/lam/docs/devel/account_modules_lib.htm b/lam/docs/devel/account_modules_lib.htm new file mode 100644 index 00000000..fe8fc887 --- /dev/null +++ b/lam/docs/devel/account_modules_lib.htm @@ -0,0 +1,141 @@ + + + + + Account modules (modules.inc) + + + + +

Account modules (modules.inc)
+

+
+Modules.inc provides the +interface to all module specific functions. It includes a list of +account independent function and the accountContainer +class. This class represents an LDAP account.
+You should never call module functions directly, always use a function +in modules.inc.
+
+

Account independent functions:

+
+

General functions:

+getModuleAlias: This returns +the alias name of a module. It is used to label buttons or fieldsets.
+
+parseHtml: Converts the LAM +meta HTML code to real HTML code.
+
+
+

Functions for LAM configuration:

+is_base_module: When the given +module is a base module then +this returns true. Every +account type needs exactly one base +module.
+
+getModulesDependencies: Account +modules can specify dependencies to other modules. E.g. Samba accounts +always need a Unix part.
+
+check_module_depends/check_module_conflicts: +This function checks if all module dependencies are satisfied.
+
+getAvailableModules: Returns a +list of available modules. If you need a list of all active modules use +$_SESSION['config']->get_AccountModules().
+
+getConfigOptions: Returns a +list of all configuration options which were defined by the modules.
+
+getConfigDescriptions: Returns +a list of all configuration descriptions and titles for the fieldsets.
+
+checkConfigOptions: Checks if +the user filled in valid values for each option.
+
+
+

Account list functions:

+get_ldap_filter: Each account +list shows only entries which match a given LDAP search filter.
+
+
+

Profile/account pages:

+getRDNAttributes: This returns +a list of possible LDAP RDN +attributes. LAM needs this to build the DN for new accounts.
+
+getProfileOptions: Returns a +list of all profile options which were defined by the account modules.
+
+checkProfileOptions: Checks if +all module options are correct.
+
+
+

Help functions:

+getHelp: Returns a module help +entry.
+
+
+

PDF functions:

+getAvailablePDFFields: Returns +a list of possible PDF fields.
+
+
+

Upload functions:

+getUploadColumns: Returns a +list of possible upload columns and additional information like a +description, help entry and example value.
+
+buildUploadAccounts: Takes the +input of the CSV file and builds the LDAP accounts.
+
+doUploadPostActions: Manages +the execution of actions which need to be done after the accounts are +created.
+
+
+

Class accountContainer:

+This class represents a complete LDAP account. It manages all functions +which concern a specific LDAP entry.
+
+

Important variables:

+There are some class variables which can be of important use in the +account modules.
+
+module: List of account modules +(array('name' => 'object')).
+
+isNewAccount: This variable is true when the account is newly +created, false if loaded from +LDAP.
+
+

Function list:

+continue_main: This function is +called when an account page is displayed. It generates the HTML code +for the account pages.
+
+save_module_attributes: +Finds +differences between current and original account.
+
+load_account: Loads an LDAP +account.
+
+new_account: Creates a new +account.
+
+save_account: Saves an account +to LDAP.
+
+get_pdfEntries: Returns the PDF +values of an account.
+
+
+
+ + diff --git a/lam/docs/devel/account_pages.htm b/lam/docs/devel/account_pages.htm new file mode 100644 index 00000000..c7506423 --- /dev/null +++ b/lam/docs/devel/account_pages.htm @@ -0,0 +1,32 @@ + + + + + Account pages + + + + +

Account pages
+

+
+The account pages are the user interface to create/modify LDAP +accounts. It allows setting basic attributes like the LDAP suffix and +is responsible to show module specific pages.
+
+
+The main script for the account pages is located in templates/account/edit.php. It has +a very simple content. If the page is loaded for the first time it +creates a new accountContainer +inside the session and tells it to load/create an LDAP account. Then it +calles the continue_main() +function of the accountContainer +object which prints all HTML output.
+
+Managing of user input etc. is completly made by the accountContainer.
+
+ + diff --git a/lam/docs/devel/account_types.htm b/lam/docs/devel/account_types.htm new file mode 100644 index 00000000..2e836ae8 --- /dev/null +++ b/lam/docs/devel/account_types.htm @@ -0,0 +1,47 @@ + + + + + Account types + + + + +

Account types
+

+
base module
+
+

+
The account types define what kind of +accounts can be managed with LAM. If you want to create a new account +module which does not fit in the existing classes of users, groups and +hosts then you need your own account type.
+
+All account types are saved in lib/types/.
+
+Please take a look at the type HowTo for +an example to write your own types.
+The complete specification for the type interface can be found here.
+
+

Superclass

+All account types should be +subclasses of the baseType.
+This reduces very much the code since not the complete type interface +has +to be implemented.
+
+
+

Type detection

+New types can simply be copied to lib/types. +LAM will check what files are inside the directory and provide the user +new types automatically.
+There is no extra configuration file.
+
+
+
+
+ + diff --git a/lam/docs/devel/account_types_lib.htm b/lam/docs/devel/account_types_lib.htm new file mode 100644 index 00000000..b166af2c --- /dev/null +++ b/lam/docs/devel/account_types_lib.htm @@ -0,0 +1,43 @@ + + + + + Account types (types.inc) + + + + +

Account types (types.inc)
+

+
+Types.inc is the interface to +the account types. It provides information about the type alias names, +descriptions and other things.
+
+

Functions:

+
+

General functions:

+getAlias: This returns +the alias name of a type. It is used to label buttons or fieldsets.
+
+getDescription: Returns a +description for the account type.
+
+
+

Functions for list views:

+getListClassName: Here you can +specify your own class to handle the list view.  This is needed to +label the buttons in the list view.
+
+getDefaultListAttributes: +Returns the default setting for the displayed list attributes. It is +used as default for the LAM configuration.
+
+getListAttributeDescriptions: +Returns a hash array which contains predefined, translated descriptions +of LDAP attributes.
+
+
+ + diff --git a/lam/docs/devel/base_module.htm b/lam/docs/devel/base_module.htm new file mode 100644 index 00000000..5ecffacf --- /dev/null +++ b/lam/docs/devel/base_module.htm @@ -0,0 +1,65 @@ + + + + + Base module + + + +

Base module
+

+
base module
+
+

+
The baseModule +is the parent class of all account modules.
+It implements most functions of the module interface and provides +the possibility to use meta data +for the module functions.
+There are also some class variables which are useful for the child +classes.
+
+
+

Meta data

+The baseModule allows you to +not implement the module +interface directly but to provide meta +data which is interpreted by the baseModule.
+If you do not use certain functions of the interface the baseModule also provides dummy +functions. E.g. if your module needs no configuration option you can +just skip this function in your code and the baseModule will tell the +configuration part that there is no option.
+
+To define meta data you have +to implement the function get_metaData(). +This function must return a hash array with the meta options as array +keys.
+Please refer to the module +interface for details about the format of meta data.
+
+
+

Functions
+

+get_scope(): This function +returns the account type ("user", "group", ...) of the module.
+
+For a list of meta data +functions please refer to the module +interface.
+
+
+

Class variables

+$moduleSettings: This variable +contains the configuration settings of all modules.
+$base: This is the name of the +parent accountContainer +($_SESSION[$base]).
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/lam/docs/devel/base_type.htm b/lam/docs/devel/base_type.htm new file mode 100644 index 00000000..4a1198bf --- /dev/null +++ b/lam/docs/devel/base_type.htm @@ -0,0 +1,27 @@ + + + + + Base type + + + + +

Base type
+

+
base type
+
+

+
The baseType +is the parent class of all account types.
+It implements all functions of the type +interface.
+
+However, you surely want to override most of the functions in your +account type class.
+
+
+ + diff --git a/lam/docs/devel/config.htm b/lam/docs/devel/config.htm new file mode 100644 index 00000000..124bec70 --- /dev/null +++ b/lam/docs/devel/config.htm @@ -0,0 +1,62 @@ + + + + + config.inc + + + + +

config.inc

+
+
+This file includes all functions needed to manage configuration +profiles. It includes classes for the profiles itself and the master +configuration (default profile, master password, etc.).
+
+There are also two global functions for general use: setlanguage and metarefresh
+
+

Meta refresh

+The global function metaRefresh() +takes an URL as argument and prints all HTML code needed for a meta +refresh to this URL.
+
+

Language

+LAM uses gettext to translate +the HTML pages to the different languages. Therefore some preferences +need to be set on every page load. This is done by setlanguage().
+The function should be called directly after starting the session.
+
+The list of possible languages is stored in config/language. It includes the +locale name, the character encoding an the language name.
+All languages use UTF-8 as encoding because LDAP also stores values in +this format.
+
+

Configuration profiles

+Each configuration profile is saved in a single file in config/.
+
+There are two types of configuration options:
+
    +
  • Static options (LDAP server settings, etc.)
    +
  • +
  • Module options (UID/GID ranges)
    +
  • +
+All static options have a describing comment in the configuration file +to make it easier for the user to modify the values. The dynamic +options provided by the modules do not include a comment.
+
+

Master configuration file

+LAM stores the default configuartion profile and a master password in config/config.cfg.
+The master password is verified when the user wants to create/delete +configuration profiles.
+ + diff --git a/lam/docs/devel/config_files.htm b/lam/docs/devel/config_files.htm new file mode 100644 index 00000000..37bc6219 --- /dev/null +++ b/lam/docs/devel/config_files.htm @@ -0,0 +1,45 @@ + + + + + Configuration profiles + + + + +

Configuration profiles

+
+LAM allows the user to store the configuration settings in profiles. This makes it easy to +manage different LDAP servers. All profile files ae stored in config/ and are named <name>.conf.
+The master configuration file config/config.cfg only stores the +default profile and master password. It has the same file format as the +profiles.
+
+

File format

+LAM allows to store values and comments in the configuration files. +Only one type per line is allowed, it is not possible to mix comments +and values in the same line.
+
+

Settings
+

+<identifier>: <value>
+
+
The first word in the line is taken as identifier for the +setting. It must be followed by a ":" +and a space.
+The rest of the line is taken as the value for this setting.
+
+

Comments

+# Comment
+
+Comments always start with a "#" +as first character and end at the line end. LAM will ignore all lines +starting with a "#".
+ + diff --git a/lam/docs/devel/config_pages.htm b/lam/docs/devel/config_pages.htm new file mode 100644 index 00000000..813245b6 --- /dev/null +++ b/lam/docs/devel/config_pages.htm @@ -0,0 +1,78 @@ + + + + + LAM - Configuration pages + + + + +
+

Configuration pages

+
+
+
configuration
+
+

Configuration - Login (conflogin.php):

+This is the start page of the configuration editor. The user can select +a profile for editing or go to the profile management page.
+Each account profile is protected with a password which is stored in +the profile.
+The list of possible profiles is returned by getConfigProfiles() +in config.inc, the default profile is returned by an object of class CfgMain from +config.inc.
+
+
+

Configuration - Profile management (profmanage.php):

+Here the user can add and modify configuration profiles or change the +configuration master password.
+The configuration master password prevents unauthorised users from +changing the profiles. The password is saved in config/config.cfg and +managed via the CfgMain +class.
+
+
+

Configuration - Main page (confmain.php):

+This page presents all configuration settings for editing.
+Some of the settings are module independent (e.g. server settings, +language, ...) and displayed always.
+The others are set up by the account modules. Only settings of +currently selected modules are displayed.
+Users may also change the profile password on this page.
+
+
+

Configuration - Module selection (confmodules.php):
+

+On this page the user can select which account modules LAM should use.
+The list of possible modules is returned by getAvailableModules() +in modules.inc and checked for dependencies/conflicts with check_module_depends() +and check_module_conflicts().
+
+Each account type needs exactly one base +module +which is the base of a account by providing a structural object class.
+
+
+

Configuration - Save settings (confsave.php):
+

+This script checks the input and displays possible error messages or an +overview of the saved settings.
+The static settings are set and checked with an object of class Config from +config.inc.
+The account modules manage the input validation for their fields and +are also able to return error messages. This is done with checkConfigOptions() +from modules.inc.
+
+
+
+ + diff --git a/lam/docs/devel/images/favicon.ico b/lam/docs/devel/images/favicon.ico new file mode 100644 index 00000000..1134d0c2 Binary files /dev/null and b/lam/docs/devel/images/favicon.ico differ diff --git a/lam/docs/devel/images/lam_baseModule.png b/lam/docs/devel/images/lam_baseModule.png new file mode 100644 index 00000000..3ddeee0a Binary files /dev/null and b/lam/docs/devel/images/lam_baseModule.png differ diff --git a/lam/docs/devel/images/lam_baseType.png b/lam/docs/devel/images/lam_baseType.png new file mode 100644 index 00000000..25178a1e Binary files /dev/null and b/lam/docs/devel/images/lam_baseType.png differ diff --git a/lam/docs/devel/images/lam_config.png b/lam/docs/devel/images/lam_config.png new file mode 100644 index 00000000..3be05b25 Binary files /dev/null and b/lam/docs/devel/images/lam_config.png differ diff --git a/lam/docs/devel/images/lam_lists.png b/lam/docs/devel/images/lam_lists.png new file mode 100644 index 00000000..a942977e Binary files /dev/null and b/lam/docs/devel/images/lam_lists.png differ diff --git a/lam/docs/devel/images/lam_overview.png b/lam/docs/devel/images/lam_overview.png new file mode 100644 index 00000000..24b96625 Binary files /dev/null and b/lam/docs/devel/images/lam_overview.png differ diff --git a/lam/docs/devel/images/lam_pdfEditor.png b/lam/docs/devel/images/lam_pdfEditor.png new file mode 100644 index 00000000..d5cc3a58 Binary files /dev/null and b/lam/docs/devel/images/lam_pdfEditor.png differ diff --git a/lam/docs/devel/images/lam_profedit.png b/lam/docs/devel/images/lam_profedit.png new file mode 100644 index 00000000..d9418c7c Binary files /dev/null and b/lam/docs/devel/images/lam_profedit.png differ diff --git a/lam/docs/devel/images/lam_upload.png b/lam/docs/devel/images/lam_upload.png new file mode 100644 index 00000000..5c65dba5 Binary files /dev/null and b/lam/docs/devel/images/lam_upload.png differ diff --git a/lam/docs/devel/index.htm b/lam/docs/devel/index.htm new file mode 100644 index 00000000..7244fef0 --- /dev/null +++ b/lam/docs/devel/index.htm @@ -0,0 +1,131 @@ + +LAM development documentation + + + + + + +
+

LDAP Account Manager - Code overview

+These documents are supposed to give developers who want to modify LAM +an overview of the codebase. It focuses mainly on what is done to +generate the HTML output and the most important functions provided by +the library files.
+
+
+overview
+
+
+
+
+ + + + + + + + +
+

Web pages:

+ +
+

Libraries:

+ +
+

Configuration files:

+ +
+
+
+ + + + + + + +
+

Howtos

+ +
+

FAQ

+
+

Specifications

+ +
+

Upgrade notes

+
+
+ +
+
+
+ \ No newline at end of file diff --git a/lam/docs/devel/ldap.htm b/lam/docs/devel/ldap.htm new file mode 100644 index 00000000..33a72cf6 --- /dev/null +++ b/lam/docs/devel/ldap.htm @@ -0,0 +1,55 @@ + + + + + ldap.inc + + + + +

ldap.inc

+
+
+This library provides the access to the LDAP server and its content.
+The $_SESSION['ldap'] +object reconnects automatically to the LDAP server on every page load.
+
+
+

1. Server handle

+All PHP functions which access LDAP require a server handle as +parameter. This is managed by ldap.inc.
+You can access it with $_SESSION['ldap']->server.
+
+
+

2. Object classes

+Account modules may want to check if the current LDAP server supports +all required object classes.
+$_SESSION['ldap']->objectClasses +contains a list of object classes and their attributes which is +read from the LDAP server.
+
+
+

3. En-/Decryption

+For security reasons sensitive data like user passwords should be +encrypted before storing in session.
+$_SESSION['ldap']->encrypt(<string>) +encrypts a string and returns a binary object. This can be decrypted +with $_SESSION['ldap']->decrypt(<object>)
+
+Ldap.inc will take care for the crypotographic key.
+
+
+

4. Random values

+Ldap.inc contains a random integer value which is much more secure than +calling mt_rand(). The value +changes on every page load and is accessible in $_SESSION['ldap']->rand.
+If you need multiple values you can get a new value by calling $_SESSION['ldap']->new_rand().
+
+ + diff --git a/lam/docs/devel/lists.htm b/lam/docs/devel/lists.htm new file mode 100644 index 00000000..5ced52ce --- /dev/null +++ b/lam/docs/devel/lists.htm @@ -0,0 +1,95 @@ + + + + + LAM - Account lists + + + + +

Account lists

+
+
Account lists
+
+
+
+
+The account lists are all built after the same schema. They provide a +list of found accounts which can be restricted by LDAP filters and the +LDAP OU (Organizational Unit).
+
+The list of LDAP attributes and thus table columns is taken from the +configuration profile (get_...listAttributes() +in config.inc). Each account list has a separate list of attributes.
+Only these attributes are given the LDAP search as attribute parameter.
+There is also a predefined description list for the attributes in +lists.inc. The user may use other values by setting them in the +configuration profile.
+
+The number of accounts per page is limited by a list option. There will be links at the beginning and end of the +list if more accounts were found.
+
+Several common helper functions for sorting and some page elements +reside in lists.inc.
+
+

1. Getting accounts from LDAP

+Each account list has its own LDAP suffix which is saved in the +configuration profile. This is used as search base.
+The account modules provide an LDAP filter (get_ldap_filter() +in modules.inc) to get only accounts of a special type.
+
+This list can be further reduced if the user provides an additional +LDAP filter with the filter boxes or selects another LDAP OU with the +drop-down-box.
+
+

2. Caching LDAP accounts

+The lists usually do not ask the LDAP server for an account list every +time the user changes the page. The accounts are cached in the session.
+
+A new LDAP search is done if the user:
+
    +
  • changes to another account list or tool
  • +
  • adds/modifies an account
  • +
  • selects the "refresh" button
  • +
  • adds additional LDAP filters or changes the LDAP OU
    +
  • +
+
+It is not done if the user:
+
    +
  • changes the list pages if there are more accounts than what can +be shown
  • +
  • sorts the list
  • +
+
+

3. Adding/Editing accounts

+There are buttons at the end of the page to add/delete accounts. Adding +accounts is done by account/edit.php and deleting by delete.php.
+
+The user can use the link in each account row to modify (in +accounts/edit.php) the account. This can also be done by double +clicking the row if Java Script is enabled.
+
+
+

4. Export to PDF

+The user can generate PDF files for the accounts. This is done by the createModulePDF() +function from pdf.inc.
+
+
+

5. Special abilities of some lists

+

5.1. The user list

+If the attribute gidNumber is +shown as table column then there will be an additional checkbox to +translate the GID to the group name.
+This checkbox is hidden if gidNumber +is not part of the attribute list.
+
+

5.2. The group list

+If the attribute memberUID is shown as table column then all values of +this attribute are shown as links.
+These links redirect to userlink.php which tries to find the given user +and redirects to account/edit.php for account modifying.
+
+
+
+ \ No newline at end of file diff --git a/lam/docs/devel/login.htm b/lam/docs/devel/login.htm new file mode 100644 index 00000000..8211cc57 --- /dev/null +++ b/lam/docs/devel/login.htm @@ -0,0 +1,69 @@ + + + + + Login + + + + +

Login
+

+

+
+

+
The login +page is the first page the user sees when opening LAM. It manages LDAP +authentication and checks the environment of the user.
+
+
+

login.php

+The login page offers authentication, language selection and profile +selection. There are also some environment checks.
+
+

Authentication

+The list of possible users is loaded from the current active profile. +Only the RDN value is offered for selection by the user.
+When the user submits his password then a new Ldap object is created and LAM +tries to connect to the LDAP server.
+If the connection was successful the user is forwarded to the main +frame (main.php). The session variable $_SESSION['loggedIn'] +is set to true. This informs +the other PHP scripts that a valid user is connected (e.g. the user is +allowed to create account profiles).
+
+

Language selection

+The list of possible languages is read from config/language. The current active +profile defines the preselected language and the language of the login +page itself.
+
+

Profile selection
+

+The user can change the active configuration profile at login. A list +of possible profiles is retrieved by getConfigProfiles().
+If the profile is changed then the login replaces the config object in $_SESSION['config'] +by a new one. Then the main login page is loaded and uses the new +values.
+
+

Environment checks

+LAM checks if all needed PHP extensions are installed.
+
    +
  • LDAP: PHP needs LDAP +support
  • +
  • Gettext: needed for +translation
    +
  • +
+
+
+
+
+
+ + diff --git a/lam/docs/devel/mod_accountPages.htm b/lam/docs/devel/mod_accountPages.htm new file mode 100644 index 00000000..60145d6f --- /dev/null +++ b/lam/docs/devel/mod_accountPages.htm @@ -0,0 +1,376 @@ + +Module HowTo - Account pages + + + + +
+

Module HowTo - Account pages
+

+
+
+

+

1. Loading the LDAP attributes
+

+Every time the user selects an existing account to modify LAM will load +the complete LDAP entry of it. Your module then should select the +attributes which are useful for it.
+There are two variables in baseModule +which should be used to store the attributes. The $attributes variable stores the +current attributes including changes the user made. The $orig variable stores the attributes +as they were originally when the account was loaded. This allows you to +see what changes were made.
+
+The load_attributes() function +in your module gets the complete attribute list from LDAP.
+In most cases you will not need to implement this function because the +parent class baseModule loads attributes based on your meta data.
+
+Example:
+
+The ieee802Device uses an +object class and the 'macAddress' +attribute. Therefore we will save these two values.
+
+ + + + + + +
    /**
+    * This function loads all needed attributes into the +object.
+    *
+    * @param array $attr an array as it is retured from +ldap_get_attributes
+    */
+    function load_attributes($attr) {
+        +$this->attributes['objectClass'] = array();
+        +$this->attributes['macAddress'] = array();
+        $this->orig['objectClass'] = +array();
+        $this->orig['macAddress'] = +array();
+        if (isset($attr['objectClass'])) {
+            +$this->attributes['objectClass'] = $attr['objectClass'];
+            +$this->orig['objectClass'] = $attr['objectClass'];
+        }
+        if (isset($attr['macAddress'])) {
+            +$this->attributes['macAddress'] = $attr['macAddress'];
+            +$this->orig['macAddress'] = $attr['macAddress'];
+        }
+        return 0;
+    }
+
+
+
+

2. Page display

+Now that you have defined your subpages you will need one function for +each page to display it. The function must return meta HTML code as defined in the modules specification.
+This function is called display_html_<page +name>() where <page +name> is the name of your subpage.
+
+See also baseModule::addSimpleInputTextField() and +baseModule::addMultiValueInputTextField()/processMultiValueInputTextField() +if you only want to add some simple text fields.
+
+Example:
+
+The +ieee802Device +module has only one subpage called 'attributes'.
+
+The first half of the code displays the existing MAC addresses and the +second an input field for new values.
+The variable $this->attributes +contains the LDAP attributes which are useful for this module.
+
+ + + + + + +
    /**
+    * This function will create the meta HTML code to +show a page with all attributes.
+    *
+    * @return htmlElement HTML meta data
+    */
+    function display_html_attributes() {
        $return = new htmlTable();
+        $macCount = 0;
+        // list current MACs
+        if (isset($this->attributes['macAddress'])) {
+            $macCount = sizeof($this->attributes['macAddress']);
+            for ($i = 0; +$i < sizeof($this->attributes['macAddress']); $i++) {
+            +    $return->addElement(new htmlOutputText(_('MAC +address')));
+            +    $macInput = new htmlInputField('macAddress' . $i, +$this->attributes['macAddress'][$i]);
+                $macInput->setFieldSize(17);
+                $macInput->setFieldMaxLength(17);
+                $return->addElement($macInput);
+            +    $return->addElement(new htmlButton('delMAC' . $i, +'del.png', true));
+            +    $return->addElement(new htmlHelpLink('mac'), +true);
+            }
+        }
+        // input box for new MAC
+        $return->addElement(new htmlOutputText(_('New MAC address')));
+        $newMacInput = new htmlInputField('macAddress', '');
+        $newMacInput->setFieldSize(17);
+        $newMacInput->setFieldMaxLength(17);
+        $return->addElement($newMacInput);
+        $return->addElement(new htmlButton('addMAC', 'add.png', true));
+        $return->addElement(new htmlHelpLink('mac'));
+        $return->addElement(new htmlHiddenInput('mac_number', $macCount));
+        return $return;
+    }
+
+
+
+

3. Processing input data
+

+Every time the user clicks on a submit button while your page is +displayed LAM will call a function in your module.
+This function is called process_<page +name>() where <page +name> is the name of your subpage.
+
+If all input data is ok then return an empty array. If you return one or more error messages then the user will be +redirected to your page.
+
+Example:
+
+The +ieee802Device +module has only one subpage called 'attributes' +and therefore only process_attributes().
+
+The function checks the input fields and fills the LDAP attributes. If +all is ok it will enable the user to move to another module page.
+
+ + + + + + +
    /**
+    * Write variables into object and do some regex +checks
+    *
+    * @param array $post HTTP-POST values
+    */
+    function process_attributes($post) {
+        $errors = array();
+        +$this->attributes['macAddress'] = array();
+        // check old MACs
+        if (isset($post['mac_number'])) {
+            for ($i = 0; +$i < $post['mac_number']; $i++) {
+            +    if (isset($post['delMAC' . $i])) continue;
+            +    if (isset($post['macAddress' . $i]) && +($post['macAddress' . $i] != "")) {
+            +        // check if address has correct +format
+            +        if (!get_preg($post['macAddress' +. $i], 'macAddress')) {
+            +            $message = +$this->messages['mac'][0];
+            +            $message[] = +$post['macAddress' . $i];
+            +            $errors[] = $message;
+            +        }
+            +        +$this->attributes['macAddress'][] = $post['macAddress' . $i];
+            +    }
+            }
+        }
+        // check new MAC
+        if (isset($post['macAddress']) +&& ($post['macAddress'] != "")) {
+            // check if +address has correct format
+            if +(get_preg($post['macAddress'], 'macAddress')) {
+            +    $this->attributes['macAddress'][] = +$post['macAddress'];
+            }
+            else {
+            +        $message = +$this->messages['mac'][0];
+            +        $message[] = $post['macAddress'];
+            +        $errors[] = $message;
+            }
+        }
+        +$this->attributes['macAddress'] = +array_unique($this->attributes['macAddress']);
+        return $errors;
+    }
+
+
+
+

4. Defining that your module is ready for user input and LDAP +add/modify

+In most cases you will not need to implement these functions. The baseModule will return true for both functions.
+
+
+There are two functions which control the module status:

+
+The module_ready() function +has to +return true if the user may +move to your module page. If it is false +the user will be shown an error message that your module is not yet +ready. You can use this if your module depends on input data from other +modules (e.g. you need the user name from posixAccount first).
+
+The second function is +module_complete(). The user +cannot do the LDAP operation if one or more modules return false. This defines if all needed +input data for your module was entered.
+Use this function if you want to check that all required attributes are +set.
+
+Example:
+
+The sambaSamAccount +module needs the user's uidNumber +and gidNumber before it can +accept input and the account needs a sambaSID +before it can be saved.
+
+ + + + + + +
    /**
+    * This function is used to check if this module page +can be displayed.
+    * It returns false if a module depends on data from +other modules which was not yet entered.
+    *
+    * @return boolean true, if page can be displayed
+    */
+    function module_ready() {
+        if +($_SESSION[$this->base]->module['posixAccount']->attributes['gidNumber'][0]=='') +return false;
+        if +($_SESSION[$this->base]->module['posixAccount']->attributes['uidNumber'][0]=='') +return false;
+        if +($this->attributes['uid'][0]=='') return false;
+        return true;
+    }
+
+    /**
+    * This functions is used to check if all settings +for this module have been made.
+    *
+    * @return boolean true, if settings are complete
+    */
+    function module_complete() {
+        if (!$this->module_ready()) +return false;
+        if +($this->attributes['sambaSID'][0] == '') return false;
+        return true;
+    }
+
+
+
+
+

5. Saving the LDAP attributes
+

+In most cases you will not have to implement this option if you use $this->attributes and $this->orig to manage the LDAP +attributes. The baseModule +will generate the save comands for you.
+
+When all modules report that they are ready for LDAP add/modify and the +user clicks on the add/modify button your module will be asked what +changes have to be made.
+This is done in the function save_attributes().
+
+Example:
+
+The kolabUser module uses +this function to make sure that its object class is saved. Other +modules (e.g. quota) use it build the lamdaemon commands.
+
+ + + + + + +
    /**
+    * Returns a list of modifications which have to be +made to the LDAP account.
+    *
+    * @return array list of modifications
+    * <br>This function returns an array with 3 +entries:
+    * <br>array( DN1 ('add' => array($attr), +'remove' => array($attr), 'modify' => array($attr)), DN2 .... )
+    * <br>DN is the DN to change. It may be +possible to change several DNs (e.g. create a new user and add him to +some groups via attribute memberUid)
+    * <br>"add" are attributes which have to be +added to LDAP entry
+    * <br>"remove" are attributes which have to be +removed from LDAP entry
+    * <br>"modify" are attributes which have to +been modified in LDAP entry
+    */
+    function save_attributes() {
+        // add object class if needed
+        if +(!isset($this->attributes['objectClass']) || +!in_array('kolabInetOrgPerson', $this->attributes['objectClass'])) {
+            +$this->attributes['objectClass'][] = 'kolabInetOrgPerson';
+        }
+        return parent::save_attributes();
+    }
+
+
+
+ +

+
+
+ \ No newline at end of file diff --git a/lam/docs/devel/mod_basics.htm b/lam/docs/devel/mod_basics.htm new file mode 100644 index 00000000..4ded5f0b --- /dev/null +++ b/lam/docs/devel/mod_basics.htm @@ -0,0 +1,98 @@ + +Module HowTo - Basic concepts + + + + + +
+

Module HowTo - Basic concepts
+

+
+
+

+

1. Licensing

+LAM is licensed under the GNU +General Public License. This means your plugins need a compatible +license.
+LAM is distributed with a copy of the GPL license.
+
+

2. Naming and position in directory structure

+
+Module names are usually named after the object class they manage. +However, you can use any name you want, it should be short and +containing only a-z and 0-9. The module name is only shown in the +configuration dialog, on all other pages LAM will show a provided alias name.
+All account modules are stored in lib/modules. +The filename must end with .inc +and the file must have the same name as its inside class.
+
+Example: +Our example module will provide the class +ieee802Device, +therefore the file will be called lib/modules/ieee802Device.inc.
+
+
+

3. Defining the class

+All module classes have baseModule +as parent class. This provides common functionality and dummy functions +for all required class functions.
+
+Example:
+
+ + + + + + +
/**
+* Provides MAC addresses for hosts.
+*
+* @package modules
+*/
+class
ieee802Device + extends baseModule {
+
+}
+
+
+

4. Meta data

+The module interface inludes a lot of required and optional functions. +Many of these functions do not need to be implemented directly in the +module, you can define meta data +for them and the baseModule +will do the rest.
+Providing meta data is +optional, you can implement the required functions in your class, too.
+
+The baseModule reads the meta data by calling get_metaData() in your class.
+
+Example:
+
+ + + + + + +
    /**
+    * Returns meta data that is interpreted by parent +class
+    *
+    * @return array array with meta data
+    */
+    function get_metaData() {
+        $return = array();
+        // icon
+        $return['icon'] = 'user.png';
+    }
+
+
+You will see this functions several times in the next parts of this +HowTo.
+
+

+
+
+ \ No newline at end of file diff --git a/lam/docs/devel/mod_config.htm b/lam/docs/devel/mod_config.htm new file mode 100644 index 00000000..373af105 --- /dev/null +++ b/lam/docs/devel/mod_config.htm @@ -0,0 +1,145 @@ + +Module HowTo - Configuration options + + + + +

Module HowTo - Configuration options
+

+

+There might be situations where you want to give the user the +possibility to make general settings which are not useful to place on +the account detail pages or profile editor.
+Therefore LAM allows the modules to define their own configuration +options. E.g. the posixAccount +module uses this to define the ranges for the UIDs.
+LAM will display your configuration options only if the user also +selected your module.
+
+

+

1. Defining configuration options
+

+First you have to define what options you want to offer the user. LAM +will display all options in one fieldset for each module. Please notice +that there will be no separation on account types if you module is +suitable for different account types.
+
+The configuration options are specified with get_configOptions() +or meta['config_options'].
+
+Example:
+
+The posixGroup module offers several configuration options including the min/maximum values for GIDs.
+
+ + + + + + +
    /**
+    * Returns meta data that is interpreted by parent +class
+    *
+    * @return array array with meta data
+    */
+    function +get_metaData() {
+        $return = array();
+        // configuration options
+        $configContainer = new htmlTable();
+        $configContainer->addElement(new htmlSubTitle(_("Groups")), true);
+        $minGidInput = new +htmlTableExtendedInputField(_('Minimum GID number'), +'posixGroup_minGID', null, 'minMaxGID');
+        $minGidInput->setRequired(true);
+        $configContainer->addElement($minGidInput, true);
+        $maxGidInput = new +htmlTableExtendedInputField(_('Maximum GID number'), +'posixGroup_maxGID', null, 'minMaxGID');
+        $maxGidInput->setRequired(true);
+        $configContainer->addElement($maxGidInput, true);
+        $return['config_options']['group'] = $configContainer;
+        [...]
+
+
+The min/maximum GID numbers are defined with simple text boxes.

+

2. Checking user input

+Probably you also want to check if the input data is syntactically +correct.
+The baseModule already +provides different checks which can be activated with meta data. However you can also do +the checking in the module.
+Implementing the function check_configOptions() +in your module will allow you to do the checks yourself. Basic checks +can be defined with meta['config_checks'].
+
+Example:
+
+The posixGroup module only +needs to check if the GID numbers are correct. The password hash type +needs not to be checked as it is a selection.
+
+ + + + + + +
    /**
+    * Returns meta data that is interpreted by parent +class
+    *
+    * @return array array with meta data
+    */
+    function +get_metaData() {
+        $return = array();
+        // configuration checks
+        $return['config_checks']['group']['posixGroup_minGID'] = +array (
+            'type' => +'ext_preg',
+            'regex' => +'digit',
+            'required' +=> true,
+           + 'required_message' => $this->messages['gidNumber'][5],
+           + 'error_message' => $this->messages['gidNumber'][5]);
+        $return['config_checks']['group']['posixGroup_maxGID'] = +array (
+            'type' => +'ext_preg',
+            'regex' => +'digit',
+            'required' +=> true,
+           + 'required_message' => $this->messages['gidNumber'][6],
+           + 'error_message' => $this->messages['gidNumber'][6]);
+        $return['config_checks']['group']['cmpGID'] = array (
+            'type' => +'int_greater',
+            'cmp_name1' +=> 'posixGroup_maxGID',
+            'cmp_name2' +=> 'posixGroup_minGID',
+           + 'error_message' => $this->messages['gidNumber'][7]);
+        [...]
+
+
+The type "ext_preg" means that +the baseModule will use the get_preg() function in lib/account.inc for the syntax +check. This function already contains regular expressions for the most +common cases.
+To check if the minimum GID is smaller than the maximum GID we define a +check for the nonexistant option "cmpGID" and define it as optional. +This will do the comparison check.
+
+
+
+ \ No newline at end of file diff --git a/lam/docs/devel/mod_ext.htm b/lam/docs/devel/mod_ext.htm new file mode 100644 index 00000000..3df5c698 --- /dev/null +++ b/lam/docs/devel/mod_ext.htm @@ -0,0 +1,56 @@ + + + + Module HowTo - Defining required extensions + + + + +
+

Module HowTo - Defining required extensions
+

+

+Your account module might require special PHP extensions. LAM can check +this for you and display an error message at the login page.
+
+
+
You will need to implement the function getRequiredExtensions() or use meta['extensions'].
+
+Example:
+
+The posixAccount module needs +to generate password hashes. Therefore it needs the Hash extension.
+
+ + + + + + +
    /**
+    * Returns meta data that is interpreted by parent +class
+    *
+    * @return array array with meta data
+    */
+    function +get_metaData() {
+        $return = array();
+        // PHP extensions
+        $return["extensions"] = +array("hash");
+        [...]
+
+
+
+
+ +

+
+
+ + diff --git a/lam/docs/devel/mod_general.htm b/lam/docs/devel/mod_general.htm new file mode 100644 index 00000000..d2b57563 --- /dev/null +++ b/lam/docs/devel/mod_general.htm @@ -0,0 +1,321 @@ + +Module HowTo - General module options + + + + + + +
+

Module HowTo - General module options
+

+
+
+

+

1. Account types
+

+LAM provides multiple account types (e.g. users, groups, hosts).
+
A module can manage one or more account types.
+
+The types are specified with can_manage().
+
+Example:
+
+Our ieee802Device +module will be used only for host accounts.
+
+ + + + + + +
    /**
+    * Returns true if this module can manage accounts of the current type, otherwise false.
+    *
+    * @return boolean true if module fits
+    */
+    public function can_manage() {
+        return $this->get_scope() == 'host';
+    }
+
+
+
+

2. Base modules
+

+In LDAP every entry needs exactly one structural +object class. Therefore all modules which provide a structural object class are marked +as base module.
+
+This is done with is_base_module() +or meta['is_base'].
+
+Example:
+
+The inetOrgPerson +module manages the structural object class "inetOrgPerson" and +therefore is a base module.
+If your module is not a base module you can skip the meta data for +this, default is false.
+
+ + + + + + +
    /**
+    * Returns meta data that is interpreted by parent +class
+    *
+    * @return array array with meta data
+    */
+    function +get_metaData() {
+        $return = array();
+        // base module
+     +    $return["is_base"] = true;
+        return $return;
+    }
+
+
+
+

3. Alias name

+The module name is very limited, therefore every module has an alias name. This alias name has no limitations and +can be translated. It may contain special characters but make sure that +it does not contain HTML special characters like "<".
+The alias name can be the +same for all managed account types +or differ for each type.
+
+The alias name is specified +with get_alias() +or meta['alias'].
+
+Example:
+
+Our ieee802Device +module will get the alias MAC address.
+
+ + + + + + +
    /**
+    * Returns meta data that is interpreted by parent +class
+    *
+    * @return array array with meta data
+    */
+    function +get_metaData() {
+        $return = array();
+         // alias name
+     +    $return["alias"] = _("MAC address");
+        return $return;
+    }
+
+
+
+

4. Dependencies

+Modules can depend on eachother. This is useful if you need to access +attributes from other modules or the managed object classes of your +module are not structural.
+
+The dependencies are specified with get_dependencies() +or meta['dependencies'].
+
+Example:
+
+Our ieee802Device +module depends on the account module (because it is the only structural +module at this time).
+
+ + + + + + +
    /**
+    * Returns meta data that is interpreted by parent +class
+    *
+    * @return array array with meta data
+    */
+    function +get_metaData() {
+        $return = array();
+         // module dependencies
+     +    $return['dependencies'] = array('depends' => +array('account'), 'conflicts' => array());
+        return $return;
+    }
+
+
+
+

5. Messages

+There are many situations where you will display messages to the user. +The modules should define such messages at a common place to make it +easier to modify them without searching the complete file.
+The baseModule offers the $messages variable for this. It +should be filled by a function called load_Messages().
+The baseModule will +automatically check if you have implemented this function and call it +at construction time.
+
+Example:
+
+Now let our ieee802Device +module define a message.
+
+ + + + + + +
    /**
+    * This function fills the error message array with +messages
+    */
+    function load_Messages() {
+        $this->messages['mac'][0] = +array('ERROR', 'MAC address is invalid!');  // third array value +is set dynamically
+    }
+
+
+
+

6. Managed object classes
+

+

+You can tell LAM what object classes are managed by your module.
+LAM will then check the spelling of the objectClass attributes and +correct it automatically. This is useful if other applications (e.g. +smbldap-tools) also create accounts and the spelling is differnt.
+
+Example:
+
+The ieee802Device module +manages one object class.
+
+ + + + + + +
    /**
+    * Returns meta data that is interpreted by parent +class
+    *
+    * @return array array with meta data
+    */
+    function +get_metaData() {
+        $return = array();
+         // managed object classes
+     +    $return['objectClasses'] = array('ieee802Device');
+        return $return;
+    }
+
+
+
+

7. Known LDAP aliases
+

+LDAP attributes can have several names (e.g. "cn" and "commonName" are +the same). If you manage such attributes then tell LAM about the alias +names.
+LAM will then convert all alias names to the given attribute names +automatically.
+
+Example:
+
+The posixGroup module manages +the "cn" attribute. This attribute is also known under the alias +"commonName".
+This way the module will never see attributes called "commonName" +because LAM renames them as soon as the LDAP entry is loaded.
+
+ + + + + + +
    /**
+    * Returns meta data that is interpreted by parent +class
+    *
+    * @return array array with meta data
+    */
+    function +get_metaData() {
+        $return = array();
+        // LDAP aliases
+     +    $return['LDAPaliases'] = array('commonName' => +'cn');
+        return $return;
+    }
+
+
+
+ +

+
+
+

8. Icon
+

+You can specify a icon for you module. It will be displayed on the +account pages and other module specific places (e.g. file upload).
+The icons must be 32x32 pixels in size. The location is relative to the graphics directory.
+ +
+ +Example:
+ +
+ +The posixGroup module uses the "tux.png" from the graphics directory.
+ +
+ + + + + + + + +
    /**
+    * Returns meta data that is interpreted by parent +class
+    *
+    * @return array array with meta data
+    */
+    function +get_metaData() {
+        $return = array();
        // icon
+        $return['icon'] = 'tux.png';
+        return $return;
+    }
+
+ +
+ +
+ + +

+ + + + \ No newline at end of file diff --git a/lam/docs/devel/mod_help.htm b/lam/docs/devel/mod_help.htm new file mode 100644 index 00000000..cb0ce433 --- /dev/null +++ b/lam/docs/devel/mod_help.htm @@ -0,0 +1,89 @@ + + + + Module HowTo - Help entries + + + + +
+

Module HowTo - Help entries
+

+
+
+

+

1. Defining help entries
+

+Your module should provide help for all input fields and other +important things.
+The LAM help system defines an extra ID range for each module. So you +are free in defining your own IDs.
+
+The help entries are specified with get_help() +or meta['help'].
+
+Example:
+
+The ieee802Device +module needs help entries for the MAC address.
+
+ + + + + + +
    /**
+    * Returns meta data that is interpreted by parent +class
+    *
+    * @return array array with meta data
+    */
+    function +get_metaData() {
+        $return = array();
+    +     // help Entries
+     +    $return['help'] = array(
+     +        'mac' => array(
+     +            "Headline" +=> _("MAC address"),
+     +            "Text" => +_("This is the MAC address of the network card of the device (e.g. +00:01:02:DE:EF:18).")
+     +        ),
+     +        'macList' => array(
+     +            "Headline" +=> _("MAC address list"),
+     +            "Text" => +_("This is a comma separated list of MAC addresses.")
+     +        ));
+        return $return;
+    }
+
+
+
+ +

+
+
+ + diff --git a/lam/docs/devel/mod_index.htm b/lam/docs/devel/mod_index.htm new file mode 100644 index 00000000..fa10521d --- /dev/null +++ b/lam/docs/devel/mod_index.htm @@ -0,0 +1,58 @@ + +LAM module HowTo + + + + + +
+

Module HowTo

+
+
+
+

Basic functions

+
+
+
LAM can be easily extended to support +additional LDAP object classes and attributes.
+This document provides a step-by-step description to build an account +module. The ieee802Device +module which provides MAC addresses for hosts is used as example.
+
+

1. Basic concepts
+

+ +

2. General module options

+ +

3. Account pages

+ +

4. Help entries
+

+ +

5. PDF output
+

+ +

6. File upload

+
+

+

Advanced functions

+This part covers additional functionality of the modules which are only +needed by a minority of modules. The examples are taken from different +existing modules.
+
+

1. Account profiles

+ +

2. Configuration options

+ +

3. Advanced upload options

+ +

4. Defining the RDN

+ +

5. Defining required PHP extensions

+

6. Self service

+ +
+
+
+
+ \ No newline at end of file diff --git a/lam/docs/devel/mod_pdf.htm b/lam/docs/devel/mod_pdf.htm new file mode 100644 index 00000000..989e0b0b --- /dev/null +++ b/lam/docs/devel/mod_pdf.htm @@ -0,0 +1,100 @@ + +Module HowTo - PDF output + + + + + + +
+

Module HowTo - PDF output
+

+
+
+

+

1. Defining possible PDF values
+

+The first step to PDF output is defining what values your module +provides. This is needed for the PDF editor, otherwise the user will +not be able to select values from your module.
+
+The PDF values are specified with get_pdfFields() +or meta['PDF_fields'].
+
+Example:
+
+The ieee802Device +module has only one attribute and therefore one PDF value: the MAC +address.
+
+ + + + + + +
    /**
+    * Returns meta data that is interpreted by parent +class
+    *
+    * @return array array with meta data
+    */
+    function +get_metaData() {
+        $return = array();
+[...]
+        // available PDF fields
+     +    $return['PDF_fields'] = array(
+     +        'macAddress' => _('MAC address')
+     +    );
+        return $return;
+    }
+
+
+
+
+

2. Providing data to put into the PDF file
+

+When the user wants to create a PDF file the LDAP account is loaded and +you module is asked for data to put into the PDF file.
+
+This is done with get_pdfEntries(). Please also see baseModule::addSimplePDFField() for simple cases like below.
+
+Example:
+
+The ieee802Device +module will return the MAC address list of the account.
+
+ + + + + + +
    /**
+    * Returns a list of PDF entries
+    */
+    function get_pdfEntries() {
+        $return = array();
+        if +(sizeof($this->attributes['macAddress']) > 0) {
+            +$return['ieee802Device_macAddress'] = '<block><key>' . +_('MAC address list') . '</key><value>' . implode(', ', +$this->attributes['macAddress']) . '</value></block>';
+        }
+        return $return;
+    }
+
+
+
+
+
+ +

+
+
+ \ No newline at end of file diff --git a/lam/docs/devel/mod_profiles.htm b/lam/docs/devel/mod_profiles.htm new file mode 100644 index 00000000..a7ac2ca0 --- /dev/null +++ b/lam/docs/devel/mod_profiles.htm @@ -0,0 +1,170 @@ + +Module HowTo - Account profiles + + + +
+

Module HowTo - Account profiles
+

+

+Account profiles make it easy to set default values for new accounts +and even to reset an existing account to default values.
+Your module should provide the possibility to define default values for +all attributes which do not differ for each account.
+
+

+

1. Defining possible profile options
+

+The first step to account profiles is defining the attributes for which +the user can set default values. You will also have to define the type +(text, checkbox, ...) of the profile options.
+The profile editor then will display a fieldset for each module +containing its profile options.
+
+The profile options are specified with get_profileOptions() +or meta['profile_options'].
+
+Example:
+
+The inetOrgPerson +module has only two attributes which may be set to a default value: job +title and employee type.
+The other attributes are account specific and not useful as profile +options.
+
+ + + + + + +
    /**
+    * Returns meta data that is interpreted by parent +class
+    *
+    * @return array array with meta data
+    */
+    function +get_metaData() {
+        $return = array();
+        // profile elements
+        $return['profile_options'] = array(
+            new +htmlTableExtendedInputField(_('Job title'), 'inetOrgPerson_title', +null, 'title'),
+            new htmlTableExtendedInputField(_('Employee type'), 'inetOrgPerson_employeeType', null, 'employeeType')
+        );
+        [...]
+
+
+This defines two text boxes in the profile editor, one for the job +title and one for the employee type.
+Your profile options should also provide a help link because the description +of the input element might be not enough.
+
+
+

2. Checking user input

+Probably you also want to check if the input data is syntactically +correct.
+The baseModule already +provides different checks which can be activated with meta data. However you can also do +the checking in the module.
+Implementing the function check_profileOptions() +in your module will allow you to do the checks yourself. Basic checks +can be defined with meta['profile_checks'].
+
+Example:
+
+The inetOrgPerson module only +needs some regular expression checks on the input. This can be done by +the baseModule.
+
+ + + + + + +
    /**
+    * Returns meta data that is interpreted by parent +class
+    *
+    * @return array array with meta data
+    */
+    function +get_metaData() {
+        $return = array();
+        // profile checks
+        $return['profile_checks']['inetOrgPerson_title'] = array(
+            'type' => +'ext_preg',
+            'regex' => +'title',
+           + 'error_message' => $this->messages['title'][0]);
+        $return['profile_checks']['inetOrgPerson_employeeType'] = +array(
+            'type' => +'ext_preg',
+            'regex' => +'employeeType',
+           + 'error_message' => $this->messages['employeeType'][0]);
+        [...]
+
+
+The type "ext_preg" means that +the baseModule will use the get_preg() function in lib/account.inc for the syntax +check. This function already contains regular expressions for the most +common cases.
+
+
+

3. Loading an account profile

+When an account profile is loaded the modules have to check what values +they need for their internal data structures.
+The baseModule already +provides the possibility to store profile values directly as LDAP +attributes in $this->attributes. +This is done by defining profile-attribute mappings in meta['profile_mappings'].
+If you have other values than LDAP attributes or need some post +processing you can implement the function load_profile() in your module.
+
+Example:
+
+The inetLocalMailRecipient +module only +needs a static mapping. This can be done by +the baseModule.
+
+ + + + + + +
    /**
+    * Returns meta data that is interpreted by parent +class
+    *
+    * @return array array with meta data
+    */
+    function +get_metaData() {
+        $return = array();
+        // profile mappings
+        $return['profile_mappings'] = array(
+           + 'inetLocalMailRecipient_host' => 'mailHost'
+        );
+        [...]
+
+
+In this example the profile option "inetLocalMailRecipient_host" is +stored as LDAP attribute "mailHost".
+
+
+ +

+
+
+ \ No newline at end of file diff --git a/lam/docs/devel/mod_rdn.htm b/lam/docs/devel/mod_rdn.htm new file mode 100644 index 00000000..35861732 --- /dev/null +++ b/lam/docs/devel/mod_rdn.htm @@ -0,0 +1,60 @@ + + + + Module HowTo - Defining the RDN + + + + +
+

Module HowTo - Defining the RDN
+

+

+Every LDAP DN starts with a RDN (relative DN). This is the value of a +LDAP attribute. Users usually use "uid", groups use "cn".
+You can provide a list of suitable RDN attributes for your module and +give them a priority, too.
+
+
+
You will need to implement the function get_RDNAttributes() or use meta['RDN'].
+
+Example:
+
+The posixAccount module +offers to create accounts with DNs uid=foo,dc=.... and cn=foo,dc=...
+The uid attribute has a higher priority as it is the usual attribute +for Unix accounts.
+
+ + + + + + +
    /**
+    * Returns meta data that is interpreted by parent +class
+    *
+    * @return array array with meta data
+    */
+    function +get_metaData() {
+        $return = array();
+        // RDN attributes
+        $return["RDN"] = array("uid" +=> "normal", "cn" => "low");
+        [...]
+
+
+
+
+ +

+
+
+ + diff --git a/lam/docs/devel/mod_selfService.htm b/lam/docs/devel/mod_selfService.htm new file mode 100644 index 00000000..156567be --- /dev/null +++ b/lam/docs/devel/mod_selfService.htm @@ -0,0 +1,268 @@ + +Module HowTo - Self service + + + + + + +
+

Module HowTo - Self service
+

+

+Self service is a LAM Pro feature. It allows your users to manage their own data (e.g. telephone numbers).
+
+
+
First you need to implement the function getSelfServiceFields() or use meta['selfServiceFieldSettings']. Each field +has an ID and a descriptive name that will be displayed on the self +service page.
+Your input fields may also be defined as read-only in the self service +profile editor. If your fields supports read-only then use +canSelfServiceFieldBeReadOnly() or meta['selfServiceReadOnlyFields'].
+
+Example:
+
+The inetOrgPerson module +provides lots of possible input fields for the self service.
+
+ + + + + + +
    /**
+    * Returns meta data that is interpreted by parent +class
+    *
+    * @return array array with meta data
+    */
+    function +get_metaData() {
+        $return = array();
    +    $return['selfServiceFieldSettings'] = +array('firstName' => _('First name'), 'lastName' => _('Last +name'),
+            'mail' => +_('Email address'), 'telephoneNumber' => _('Telephone number'), +'mobile' => _('Mobile number'),
+            'faxNumber' +=> _('Fax number'), 'street' => _('Street'), 'postalAddress' +=> _('Postal address'), 'registeredAddress' => _('Registered +address'),
+            'postalCode' +=> _('Postal code'), 'postOfficeBox' => _('Post office box'), +'jpegPhoto' => _('Photo'),
+            'homePhone' +=> _('Home telephone number'), 'roomNumber' => _('Room number'), +'carLicense' => _('Car license'),
+            'location' +=> _('Location'), 'state' => _('State'), 'officeName' => +_('Office name'), 'businessCategory' => _('Business category'),
+           + 'departmentNumber' => _('Department'), 'initials' => +_('Initials'), 'title' => _('Job title'), 'labeledURI' => _('Web +site'),
+            'userCertificate' => _('User certificates'));
+        // possible self service read-only fields
+       + $return['selfServiceReadOnlyFields'] = array('firstName', +'lastName', 'mail', 'telephoneNumber', 'mobile', 'faxNumber', 'street',
+           + 'postalAddress', 'registeredAddress', 'postalCode', +'postOfficeBox', 'jpegPhoto', 'homePhone', 'roomNumber', 'carLicense',
+            'location', +'state', 'officeName', 'businessCategory', 'departmentNumber', +'initials', 'title', 'labeledURI', 'userCertificate');
+        [...]
+
+
+
+In very rare cases you need to specify self service search attributes. +These are used to identify the user inside LDAP. Common examples are +"uid" or "mail".
+
+Example:
+ +
+ +The inetOrgPerson module specifies several search attributes.
+ +
+ + + + + + + + +
    /**
+    * Returns meta data that is interpreted by parent +class
+    *
+    * @return array array with meta data
+    */
+    function +get_metaData() {
+        $return = array();
        // self service search attributes
+       + $return['selfServiceSearchAttributes'] = array('uid', 'mail', +'cn', 'surname', 'givenName', 'employeeNumber');
+        [...]
+
+ +
+ +
+ +The HTML code for the user page is generated with the function getSelfServiceOptions(). It returns one table row for each input field.
+Please note that some fields may be defined as read-only +($readOnlyFields). If $passwordChangeOnly is set then no input fields +other than the bind password should be displayed (you will not get any +attribute values).
+ + + +
+Example:
+ + +
+ + +The windowsUser module uses +the addSimpleSelfServiceTextField() function from baseModule to print +the text field. You may also build the table row yourself if the input +field is more complex.
+
+ + + + + + + + + + +
     /**
+     * Returns the meta HTML code for each input field.
+     * format: array(<field1> => array(<META HTML>), ...)
+     * It is not possible to display help links.
+     *
+     * @param array $fields list of active fields
+     * @param array $attributes attributes of LDAP account
+     * @param boolean $passwordChangeOnly indicates +that the user is only allowed to change his password and no LDAP +content is readable
+     * @param array $readOnlyFields list of read-only fields
+     * @return array list of meta HTML elements (field name => htmlTableRow)
+     */
+    function getSelfServiceOptions($fields, $attributes, $passwordChangeOnly, $readOnlyFields) {
+        $return = array();
+        if ($passwordChangeOnly) {
+            return +$return; // only password fields as long no LDAP content can be read
+        }
+        +$this->addSimpleSelfServiceTextField($return, +'physicalDeliveryOfficeName', _('Office name'), $fields, $attributes, +$readOnlyFields);
+        [...]
+
+ + +
+ + +
+Of course, the user input should also be validated before making any LDAP changes. This is done in checkSelfServiceOptions().
+The return value includes any error messages to display and also all LDAP operations.
+Please note that some fields may be defined as read-only +($readOnlyFields). If $passwordChangeOnly is set then no input fields +other than the bind +password should be displayed (you will not get any attribute values).
+ + + + +
+Example:
+ + + +
+The inetOrgPerson module has a field for the user's first name.
+
+ + + + + + + + + + +
    /**
+     * Checks if all input values are correct and returns the LDAP attributes which should be changed.
+     * <br>Return values:
+     * <br>messages: array of parameters to create status messages
+     * <br>add: array of attributes to add
+     * <br>del: array of attributes to remove
+     * <br>mod: array of attributes to modify
+     * <br>info: array of values with +informational value (e.g. to be used later by pre/postModify actions)
+     *
+     * Calling this method does not require the existence of an enclosing {@link accountContainer}.
+     *
+     * @param string $fields input fields
+     * @param array $attributes LDAP attributes
+     * @param boolean $passwordChangeOnly indicates +that the user is only allowed to change his password and no LDAP +content is readable
+     * @param array $readOnlyFields list of read-only fields
+     * @return array messages and attributes +(array('messages' => array(), 'add' => array('mail' => +array('test@test.com')), 'del' => array(), 'mod' => array(), +'info' => array()))
+     */
+    function checkSelfServiceOptions($fields, $attributes, $passwordChangeOnly, $readOnlyFields) {
+        $return = array('messages' => +array(), 'add' => array(), 'del' => array(), 'mod' => array(), +'info' => array());
+        if ($passwordChangeOnly) {
+            return $return; // skip processing if only a password change is done
+        }
+        $attributeNames = array(); // list of attributes which should be checked for modification
+        $attributesNew = $attributes;
+        // first name
+        if (in_array('firstName', $fields) && !in_array('firstName', $readOnlyFields)) {
+            $attributeNames[] = 'givenName';
+            if +(isset($_POST['inetOrgPerson_firstName']) && +($_POST['inetOrgPerson_firstName'] != '')) {
+            +    if (!get_preg($_POST['inetOrgPerson_firstName'], +'realname')) $return['messages'][] = $this->messages['givenName'][0];
+            +    else $attributesNew['givenName'][0] = +$_POST['inetOrgPerson_firstName'];
+            }
+            elseif +(isset($attributes['givenName'])) unset($attributesNew['givenName']);
+        }
+        [...]
+
+
+
+The self service also supports configuration settings for each module. See getSelfServiceSettings() or meta['selfServiceSettings'] to specify the options.
+You can validate the input with checkSelfServiceSettings().
+Self service configuration settings are displayed on a separate tab in the self service profile editor.
+
+ +

+
+
+ \ No newline at end of file diff --git a/lam/docs/devel/mod_upload.htm b/lam/docs/devel/mod_upload.htm new file mode 100644 index 00000000..403d8745 --- /dev/null +++ b/lam/docs/devel/mod_upload.htm @@ -0,0 +1,162 @@ + +Module HowTo - File upload + + + + + +
+

Module HowTo - File upload
+

+
+
+

+

1. Defining upload columns
+

+If you want to support account creation via file upload you have to +define columns in the CSV file.
+Each column has an non-translated identifier, a description, help entry +and several other values.
+
+The upload columns are specified with get_uploadColumns() +or meta['upload_columns'].
+
+Example:
+
+The ieee802Device +module has only one attribute and therefore one column: the MAC address.
+
+ + + + + + +
    /**
+    * Returns meta data that is interpreted by parent +class
+    *
+    * @return array array with meta data
+    */
+    function +get_metaData() {
+        $return = array();
+        // manages host accounts
+    +    $return["account_types"] = array("host");
+        // upload fields
+     +    $return['upload_columns'] = array(
+     +        array(
+     +            'name' => +'ieee802Device_mac',
+     +            'description' +=> _('MAC address'),
+     +            'help' => +'mac',
+     +            'example' +=> '00:01:02:DE:EF:18'
+     +        )
+      +   );
+        return $return;
+    }
+
+
+
+

2. Building the accounts
+

+When the user has uploaded the CSV file the modules have to transform +the input data to LDAP accounts.
+
+This is done with build_uploadAccounts(). +The function gets the input data and a list of LDAP accounts as +parameter.
+
+Example:
+
+The ieee802Device +module has only one LDAP attribute - 'macAddress' +- and the 'ieee802Device' +objectClass which is added to all accounts.
+
+ + + + + + +
    /**
+    * In this function the LDAP account is built up.
+    *
+    * @param array $rawAccounts list of hash arrays +(name => value) from user input
+    * @param array $partialAccounts list of hash arrays +(name => value) which are later added to LDAP
+    * @param array $ids list of IDs for column position +(e.g. "posixAccount_uid" => 5)
    * @param array $selectedModules list of selected account modules
+    * @return array list of error messages if any
+    */
+    function build_uploadAccounts($rawAccounts, +$ids, &$partialAccounts, $selectedModules) {
+        $messages = array();
+        for ($i = 0; $i < +sizeof($rawAccounts); $i++) {
+            // add object +class
+            if +(!in_array("ieee802Device", $partialAccounts[$i]['objectClass'])) +$partialAccounts[$i]['objectClass'][] = "ieee802Device";
+            // add MACs
+            if +($rawAccounts[$i][$ids['ieee802Device_mac']] != "") {
+            +    $macs = explode(',', +$rawAccounts[$i][$ids['ieee802Device_mac']]);
+            +    // check format
+            +    for ($m = 0; $m < sizeof($macs); $m++) {
+            +        if (get_preg($macs[$m], +'macAddress')) {
+            +            +$partialAccounts[$i]['macAddress'][] = $macs[$m];
+            +        }
+            +        else {
+            +            $errMsg = +$this->messages['mac'][1];
+            +            +array_push($errMsg, array($i));
+            +            $messages[] = +$errMsg;
+            +        }
+            +    }
+            }
+        }
+        return $messages;
+    }
+
+
+
+
+
+ +

+
+
+ \ No newline at end of file diff --git a/lam/docs/devel/mod_upload2.htm b/lam/docs/devel/mod_upload2.htm new file mode 100644 index 00000000..ab706437 --- /dev/null +++ b/lam/docs/devel/mod_upload2.htm @@ -0,0 +1,123 @@ + + + + Module HowTo - Advanced upload options + + + + +
+

Module HowTo - Advanced upload options
+

+

+The ieee802Device module only +needs the basic upload functions for its functionality.
+However there are more possibilities for the modules to control the +file upload.
+
+

+

1. Module order
+

+Your module might depend on the input values of another module. In this +case you probably want that your module is called as the second one.
+
+You can define dependencies to other modules with the function get_uploadPreDepends() or meta['upload_preDepends'].
+
+Example:
+
+The sambaGroupMapping module +needs the group name to set the default displayName. Therefore it depends +on the posixGroup module
+
+ + + + + + +
    /**
+    * Returns meta data that is interpreted by parent +class
+    *
+    * @return array array with meta data
+    */
+    function +get_metaData() {
+        $return = array();
+        // upload dependencies
+        $return['upload_preDepends'] = +array('posixGroup');
+        [...]
+
+
+
+

2. Upload post actions
+

+If your module does not only create an account but relates the account +with other existing LDAP entries you can do these modifications after +the account was created.
+This is useful for adding users to groups or setting quotas.
+
+You have to implement the function doUploadPostActions() +in your module. Since post actions are very special there is no meta data for this.
+
+Example:
+
+The posixAccount module +offers to put the user account in additional groups. This is done in +the post actions.
+
+ + + + + + +
    /**
+    * This function executes one post upload action.
+    *
+    * @param array $data array containing one account in +each element
+    * @param array $ids array(<column_name> => +<column number>)
+    * @param array $failed list of accounts which were +not created successfully
+    * @param array $temp variable to store temporary +data between two post actions
+    * @return array current status
+    * <br> array (
+    * <br>  'status' => 'finished' | +'inProgress'
+    * <br>  'progress' => 0..100
+    * <br>  'errors' => array (<array +of parameters for StatusMessage>)
+    * <br> )
+    */
+    function doUploadPostActions($data, $ids, +$failed, &$temp) {
+         [...]
+    }
+
+
+Please make sure that the actions in one call of doUploadPostActions() are not very +time consuming (only one LDAP operation). Your function will be called +repeatedly until you give back the status "finished".
+This allows LAM to avoid running longer than the maximum execution time +by sending meta refreshes to the browser.
+ +

+
+
+ + diff --git a/lam/docs/devel/other_libs.htm b/lam/docs/devel/other_libs.htm new file mode 100644 index 00000000..5c1ba4b6 --- /dev/null +++ b/lam/docs/devel/other_libs.htm @@ -0,0 +1,37 @@ + + + + + Other libraries + + + +

Other libraries
+

+
+

Lamdaemon (lamdaemon.pl)
+

+
+

Account lists (lists.inc)

+This file provides basic functions used by the account lists. They +cover major parts of the HTML output.
+There is also one list of LDAP attribute descriptions per account type. +They allow to have translated descriptions of the most common +attributes.
+
+

Status messages (status.inc)

+Status.inc provides the function StatusMessage() +which can be used to display error, warning and information messages.
+The function uses preg_replace() to convert the special tags to HTML +tags. The message variables are included with printf().
+
+The parameters of StatusMessage() +are described in the developer FAQ.
+
+

Schema browser

+The file schema.inc contains functions which are needed by +the schema browser.
+These functions were copied from phpLDAPadmin +(PLA).
+
+ \ No newline at end of file diff --git a/lam/docs/devel/ou-edit.htm b/lam/docs/devel/ou-edit.htm new file mode 100644 index 00000000..b4e02d2b --- /dev/null +++ b/lam/docs/devel/ou-edit.htm @@ -0,0 +1,32 @@ + + + + + OU editor + + + + +

OU editor
+

+
+
+This is a simple tool for creating and deleting organisational units +(OU) inside the LDAP tree.
+OUs can be managed for the LDAP suffixes of all account types.
+
+

1. Creating OUs
+

+The user +provides the name of the new OU which can include a-z, 0-9, "_", "-" +and " ".
+LAM will then create a new OU object under the selected LDAP suffix.
+
+

2. Deleting OUs

+If the user selects to delete an OU he will be asked if he is really +sure and then the OU is deleted.
+There is no recursive deletion.
+
+ + diff --git a/lam/docs/devel/pdf_editor.htm b/lam/docs/devel/pdf_editor.htm new file mode 100644 index 00000000..b4758e64 --- /dev/null +++ b/lam/docs/devel/pdf_editor.htm @@ -0,0 +1,108 @@ + + + + + PDF editor + + + + +

PDF editor
+

+

+
+
+

+
+
The PDF +editor allows the user to create templates for the PDF output.
+These templates are saved as files in config/pdf.
+
+

Pdfmain.php
+

+This is the start page of the PDF +editor. The user can select to add/modify/remove selected PDF +profiles.
+
+The list of existing PDF profiles is returned by getPDFStructureDefinitions() in pdfstruct.inc. It includes all +structure names without file extensions for a given account type.
+
+Depending on the selection of the user he is forwarded to pdfpage.php +or pdfdelete.php.
+
+

Pdfpage.php
+

+The user can edit the PDF structures on this page.
+
+The structure is loaded with loadPDFStructureDefinitions() +from pdfstruct.inc. If it +does not yet exist then the default structure is loaded.
+It is stored in $_SESSION['currentPDFStructure'] +(sections) and $_SESSION['currentPageDefinitions'] +(head line and logo).
+
+At the top of the page the head line and logo can be edited. The list +of available logos is retrieved with getAvailableLogos() +from pdfstruct.inc.
+
+The sections on the left side are displayed like they are defined in $_SESSION['currentPDFStructure']. +Each item has links to move or delete it. Section titles may be changed.
+
+The list of available PDF entries on the right side is retrieved from getAvailablePDFFields() in modules.inc.
+
+Near the bottom there the user can add a new section. The list of +available PDF entries is retrieved as above.
+
+When the user pushes one of the buttons or clicks on a link then there +are several actions:
+
    +
  • Abort button: The user is +redirected back to pdfmain.php.
    +
  • +
  • Save button: The +structure name is checked for correctness and the file is saved with savePDFStructureDefinitions() +from pdfstruct.inc.
  • +
  • Add section button: LAM +adds a static text or section to the structure.
  • +
  • Add entry button: Adds a +new entry to the selected section.
  • +
  • Change name button: +Changes the name of the section title or the section attribute.
  • +
  • Remove entry link: If the +entry is a section then all parts of this section are removed. +Otherwise a single entry is removed.
  • +
  • Move up/down links: The +entry or section is moved up or down.
  • +
+
+$_SESSION['currentPDFStructure'] +is an array that contains all XML tags of the PDF structure. If you +want to modify the structure always remember to put the opening and +closing tags at the right place.
+
+

Pdfdelete.php

+When the user selected to delete a structure in pdfmain.php he is redirected to +this page.
+
+LAM will ask once again if the user is sure to delete the structure. If +this is the case the structure will be deleted with deletePDFStructureDefinition() from pdfstruct.inc.
+
+
+
+
+
+
+ + diff --git a/lam/docs/devel/pdf_libs.htm b/lam/docs/devel/pdf_libs.htm new file mode 100644 index 00000000..20135493 --- /dev/null +++ b/lam/docs/devel/pdf_libs.htm @@ -0,0 +1,41 @@ + + + + + PDF (pdf.inc, pdfstruct.inc) + + + + +

PDF (pdf.inc, pdfstruct.inc)
+

+
+These files control the management of PDF structures and creation of +PDF files.
+
+
+

pdfstruct.inc

+This file includes all functions which are needed to manage the PDF +structures. You can load/save/delete structures, get a list of +available structures and logos.
+
+
+

pdf.inc

+The pdf.inc library is used to create a PDF file.
+
+createModulePDF() takes a list +of accountContainer objects +and a PDF structure as parameters. The function then creates a PDF +file, saves it to the tmp +folder and returns the file name.
+
+
+The lamPDF class extends the UFPDF class and adds the LAM +specific header and footer.
+It also defines the used font. Currently only Bitstream-Vera is +supported.
+
+ + diff --git a/lam/docs/devel/pdf_profiles.htm b/lam/docs/devel/pdf_profiles.htm new file mode 100644 index 00000000..8d9c4f9a --- /dev/null +++ b/lam/docs/devel/pdf_profiles.htm @@ -0,0 +1,100 @@ + + + + + PDF templates + + + + +

PDF templates
+

+
+Every PDF structure is saved as a single file in config/pdf. The +file extension is the account type (user, group, ...) plus ".xml" (e.g. +default.user.xml).
+
+

Format

+The root tag is <pdf> +with the attributes filename for the +logo and headline +for the title.
+
+There are two types of subentries in <pdf>:
+
    +
  • sections
  • +
  • text
    +
  • +
+

Sections:

+Sections are parts of the PDF file where data from the account profiles +(e.g. LDAP attributes) is shown. Each section has a title and a list of +entries.
+
+The title is defined with the name attribute +inside the section tag. If the title begins with a "_" then LAM +interprets it as entry. This means that LAM will insert the value part +of this entry here.
+
+Each section has a list of subentries which are defined with the <entry> tag. The have only one +attribute which is name and +contains the identifier of this entry.
+
+

Text:

+LAM allows to display a fixed text in the PDF which is defined with the +<text> tag. The text is +just written inside the tags.
+
+
+
+Example:
+
+<pdf type="user" filename="printLogo.jpg" headline="LDAP Account +Manager">
+    <text>This document includes your personal +account settings.</text>
+    <section name="Personal User Infos">
+        <entry +name="inetOrgPerson_givenName" />
+        <entry name="inetOrgPerson_sn" +/>
+        <entry +name="inetOrgPerson_street" />
+        <entry +name="inetOrgPerson_postalCode" />
+        <entry +name="inetOrgPerson_postalAddress" />
+        <entry +name="inetOrgPerson_mail" />
+        <entry +name="inetOrgPerson_telephoneNumber" />
+        <entry +name="inetOrgPerson_mobileTelephoneNumber" />
+        <entry +name="inetOrgPerson_facsimileTelephoneNumber" />
+    </section>
+    <section name="Unix User Settings">
+        <entry name="posixAccount_uid" +/>
+        <entry +name="posixAccount_userPassword" />
+        <entry +name="posixAccount_primaryGroup" />
+        <entry +name="posixAccount_additionalGroups" />
+        <entry +name="posixAccount_homeDirectory" />
+        <entry +name="posixAccount_loginShell" />
+    </section>
+</pdf>
+
+
+ + diff --git a/lam/docs/devel/profile_editor.htm b/lam/docs/devel/profile_editor.htm new file mode 100644 index 00000000..04395f00 --- /dev/null +++ b/lam/docs/devel/profile_editor.htm @@ -0,0 +1,72 @@ + + + + + Profile editor + + + +

Profile editor
+

+

+
+

+
The profile +editor allows the user to set default values for new accounts.
+These defaults are saved as files in config/profiles.
+
+

Profilemain.php
+

+This is the start page of the profile +editor. The user can select to add/modify/remove selected +account profiles.
+
+The list of existing account profiles is returned by getAccountProfiles() in modules.inc. It includes all +profile names without file extensions.
+
+

Profilepage.php
+

+This script is used to display the account profile to the user.
+
+The profile options include the LDAP OU suffix and options provided by +the account modules.
+
+The values for the OU selection are read with type->getSuffixList().
+
+The account modules provide +all other profile options. The profile editor displays a separate +fieldset for each module containing its options.
+The function print_option() +manages the display of the different option types (checkbox, select, +...). The type of each option is saved in $_SESSION['profile_types'].
+See the modules specification +for a complete list of supported types.
+
+The profiles have unique names under which they are saved. If a profile +with the same name already exists it will be overwritten.
+
+When the user selects to save the profile then +profilepage.php will check the input for correctness.
+First the values are converted to the correct type (checkbox -> +Boolean) by checking $_SESSION['profile_types']. +Then LAM will replace all "\'" with  "'" if magic_quotes_gpc is on. Now the +input data is checked for correctness by calling checkProfileOptions().
+The account modules return a +list of +error messages if one or more options are incorrect. If there are +errors they will be displayed, otherwise the profile is +saved by calling saveAccountProfile().
+
+

Profiledelete.php

+When the user selected to delete a profile in profilemain.php he is redirected to +this page.
+
+LAM will ask once again if the user is sure to delete the profile. If +this is the case the profile will be deleted with delAccountProfile() from profiles.inc.
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/lam/docs/devel/profile_files.htm b/lam/docs/devel/profile_files.htm new file mode 100644 index 00000000..41825e89 --- /dev/null +++ b/lam/docs/devel/profile_files.htm @@ -0,0 +1,37 @@ + + + + + Account profiles + + + + +

Account profiles

+
+Every account profile is saved as single file in config/profiles. The +file extension is the account type (user, group, ...).
+In contrast to the configuration profiles the account profiles are not +designed to be editable by hand. They do not allow to add comments and +have a simpler format.
+
+

Format

+There is one option per line which is formated: <identifier>: +<value>
+
+Identifier is the option's name, value is the rest of the line after +the first ": ".
+Some options are multi-valued, the sub-values are separated by "+::+".
+
+
+Examples:
+
+posixAccount_primaryGroup: group1
+posixAccount_additionalGroup: group3+::+group4+::+group5+::+group6
+
+ + diff --git a/lam/docs/devel/profiles.htm b/lam/docs/devel/profiles.htm new file mode 100644 index 00000000..42eac39b --- /dev/null +++ b/lam/docs/devel/profiles.htm @@ -0,0 +1,26 @@ + + + + + Account profiles + + + + +

profiles.inc

+
+This file includes all functions to manage account +profiles. You can read/store/list/delete profiles.
+
+Profile names may contain letters, numbers, "_" and "-". All functions +which have a profile name as parameter check this.
+Functions which modify the filesystem (saveAccountProfile, +delAccountProfile) also check if the user is logged in to LAM +for security reasons. This is done by reading $_SESSION['logedIn'].
+
+
+
+ + diff --git a/lam/docs/devel/samba_domains.htm b/lam/docs/devel/samba_domains.htm new file mode 100644 index 00000000..58cdc66e --- /dev/null +++ b/lam/docs/devel/samba_domains.htm @@ -0,0 +1,36 @@ + + + + + Samba 3 domains + + + + +

Samba 3 domains
+

+

+
+

+
The Samba +3 domain list is based on the other account lists. The +difference is that there are no filter boxes and the displayed +attributes are fixed (name, SID, DN).
+
+If the user selects to edit or create a domain he will be redirected to +domain.php which manages the +domain objects in LDAP.
+
+
+

domain.php

+This script manages domain objects. It allows the user to create +domains or to modify values.
+The domain name, SID and RIDbase cannot be changed by the user because +this could cause trouble on the clients.
+
+
+
+
+ + diff --git a/lam/docs/devel/style/layout.css b/lam/docs/devel/style/layout.css new file mode 100644 index 00000000..e08fcf36 --- /dev/null +++ b/lam/docs/devel/style/layout.css @@ -0,0 +1,57 @@ + /* +$Id$ + + This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + Copyright (C) 2004 - 2006 Roland Gruber + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more detaexils. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +*/ + +/* CSS layout for LAM development documentation */ + + + +h1,h2,h3,h4 { + color:#0c12b7; +} + +/* links */ +a { + color:blue; + text-decoration:none; +} + +a:visited { + color:blue; + text-decoration:none; +} + +a:hover { + color:red; + text-decoration:none; +} + +a:active { + color:red; + text-decoration:none; +} + + +/* module HowTo */ + +table.mod-code { + background-color:#fffde2; +} diff --git a/lam/docs/devel/tools.htm b/lam/docs/devel/tools.htm new file mode 100644 index 00000000..5bcf7a3e --- /dev/null +++ b/lam/docs/devel/tools.htm @@ -0,0 +1,109 @@ + + + + + + Tools + + + +

Tools
+

+ +LAM includes a "Tools" page which contains various tools like the +profile editor or the file upload. The content of this page is dynamic. +LAM includes all *.inc files in the directory lib/tools. Each found +class which implements the LAMtool interface is a candidate for this +page. The different tools are displayed and ordered based on their +security level and ordering preferences.
+
+Example:
+
+The profile editor implements the LAMtool interface.
+
+ + + + + + + + +
/**
+ * Profile editor
+ *
+ * @package tools
+ */
+class toolProfileEditor implements LAMTool {
+   
+    /**
+     * Returns the name of the tool.
+     *
+     * @return string name
+     */
+     function getName() {
+         return _("Profile editor");
+     }
+   
+    /**
+     * returns a description text for the tool.
+     *
+     * @return string description
+     */
+    function getDescription() {
+        return _("Here you can manage your account profiles.");
+    }
+   
+    /**
+     * Returns a link to the tool page (relative to templates/).
+     *
+     * @return string link
+     */
+    function getLink() {
+        return "profedit/profilemain.php";
+    }
+   
+    /**
+     * Returns if the tool requires write access to LDAP.
+     *
+     * @return boolean true if write access is needed
+     */
+    function getRequiresWriteAccess() {
+        return true;
+    }
+   
+    /**
+     * Returns if the tool requires password change rights.
+     *
+     * @return boolean true if password change rights are needed
+     */
+    function getRequiresPasswordChangeRights() {
+        return true;
+    }
+   
+    /**
+     * Returns the link to the tool image (relative to graphics/)
+     *
+     * @return string image URL
+     */
+    function getImageLink() {
+        return 'edit.png';
+    }
+   
+    /**
+     * Returns the prefered position of this tool on the tools page.
+     * The position may be between 0 and 1000. 0 is the top position.
+     *
+     * @return int prefered position
+     */
+    function getPosition() {
+        return 100;
+    }
+   
+}
+
+
+
+
+ + \ No newline at end of file diff --git a/lam/docs/devel/toolsHowTo.htm b/lam/docs/devel/toolsHowTo.htm new file mode 100644 index 00000000..ea686eb4 --- /dev/null +++ b/lam/docs/devel/toolsHowTo.htm @@ -0,0 +1,145 @@ + + + + + Tools HowTo + + + + + + + + + +

Tools HowTo
+

+ +

+
+ +

+
You can add your own tools easily. +Please follow the following steps to create a custom tool. Tools are +displayed in the tools menu in the upper right corner of LAM.
+
+

Create tool definition class

+All tools contain a definition class and a separate PHP page that displays the content itself.
+First, you need to create a new tool definition class in lib/tools. The file name does not need to follow any patterns but there must be a class included that implements the LAMTool interface.
+
+Example:
+
+
/**
+
 * Server information
+
 * 
+
 * @package tools
+
 */ 
+
class toolServerInformation implements LAMTool {
+
    
+
    /**
+
     * Returns the name of the tool.
+
     * 
+
     * @return string name
+
     */
+
     function getName() {
+
         return _("Server information");
+
     }
+
    
+
    /**
+
     * returns a description text for the tool.
+
     * 
+
     * @return string description
+
     */
+
    function getDescription() {
+
        return _("Information about the LDAP server.");
+
    }
+
    
+
    /**
+
     * Returns a link to the tool page (relative to templates/).
+
     * 
+
     * @return string link
+
     */
+
    function getLink() {
+
        return "serverInfo.php";
+
    }
+
    
+
    /** 
+
     * Returns if the tool requires write access to LDAP.
+
     * 
+
     * @return boolean true if write access is needed
+
     */
+
    function getRequiresWriteAccess() {
+
        return false;
+
    }
+
    
+
    /**
+
     * Returns if the tool requires password change rights.
+
     * 
+
     * @return boolean true if password change rights are needed
+
     */
+
    function getRequiresPasswordChangeRights() {
+
        return true;
+
    }
+
    
+
    /**
+
     * Returns the link to the tool image (relative to graphics/)
+
     *
+
     * @return string image URL
+
     */
+
    function getImageLink() {
+
        return 'tree_info.png';
+
    }
+
    
+
    /**
+
     * Returns the prefered position of this tool on the tools page.
+
     * The position may be between 0 and 1000. 0 is the top position.
+
     *
+
     * @return int prefered position
+
     */
+
    function getPosition() {
+
        return 600;
+
    }
+
    
+
    /**
+
     * Returns a list of sub tools or an empty array.
+
     * 
+
     * @return array list of subtools (LAMTool)
+
     */
+
    function getSubTools() {
+
        return array();
+
    }
+
    
+
    /**
+
     * Returns if the tool is visible in the menu.
+
     *
+
     * @return boolean visible
+
     */
+
    function isVisible() {
+
        return true;
+
    }
+
    
+
    /**
+
     * Returns if a tool may be hidden by configuration in the LAM server profile.
+
     * 
+
     * @return boolean hideable
+
     */
+
    function isHideable() {
+
        return true;
+
    }
+
    
+
}
+The functions are quite self-descriptive.
+LAM Pro provides multiple access levels. The functions getRequiresWriteAccess()/getRequiresPasswordChangeRights() can restrict the visibility of the tool.
+
+You will also need a logo for your tool. This can be any image in the folder graphics.
+
+Sometimes you may want to create a submenu to group multiple tools. This is possible by using the function getSubTools(). It returns a list of LAMSubTool objects.
+
+

Create the tool page

+Each tool definition provides the path to its tool page with the function getLink(). The tool page can be any PHP page inside the directory templates.
+
+This is all that you need to create your own tool for LAM. :)
+
+
+ + \ No newline at end of file diff --git a/lam/docs/devel/tree_schema.htm b/lam/docs/devel/tree_schema.htm new file mode 100644 index 00000000..a4cebc88 --- /dev/null +++ b/lam/docs/devel/tree_schema.htm @@ -0,0 +1,22 @@ + + + + + Tree view and schema browser + + + + +

Tree view and schema browser
+

+
+
+These parts are based on phpLDAPadmin.
+The two tools are located in templates/schema +and templates/tree.
+
+ + diff --git a/lam/docs/devel/type_basics.htm b/lam/docs/devel/type_basics.htm new file mode 100644 index 00000000..35b155c7 --- /dev/null +++ b/lam/docs/devel/type_basics.htm @@ -0,0 +1,71 @@ + + + + Type HowTo - Basic concepts + + + + +
+

Type HowTo - Basic concepts
+

+
+
+

+

1. Licensing

+LAM is licensed under the GNU +General Public License. This means your plugins need a compatible +license.
+LAM is distributed with a copy of the GPL license.
+
+
+

2. Naming and position in directory structure

+Type names are usually named after the group of accounts they manage. +However, you can use any name you want, it should be short and +containing only a-z and 0-9. The type name is only shown in the +configuration dialog, on all other pages LAM will show a provided alias name.
+All type modules are stored in lib/types. +The filename must end with .inc +and the file must have the same name as its inside class.
+
+Example: +Our example module will provide the class +smbDomain, +therefore the file will be called lib/types/smbDomain.inc.
+
+
+

3. Defining the class

+All type classes have baseType +as parent class. This provides common functionality and dummy functions +for all required class functions.
+
+Example:
+
+ + + + + + +
/**
+* The account type for Samba domains.
+*
+* @package types
+*/
+class
smbDomain extends baseType {
+
+}
+
+
+
+

+
+
+ + diff --git a/lam/docs/devel/type_css.htm b/lam/docs/devel/type_css.htm new file mode 100644 index 00000000..13233061 --- /dev/null +++ b/lam/docs/devel/type_css.htm @@ -0,0 +1,41 @@ + +Type HowTo - CSS file + + + + + +
+

Type HowTo - CSS file

+
+

+Every account type has its own style sheet where it can define colors +and fonts.
+
+
+

1. File name

+The CSS files are saved in style/. +Your file must be named 600_type_<your +type>.css.
+
+Example:
+
+The myType type has the +CSS file style/600_type_myType.css.
+
+
+

2. Contents

There are three colors that are defined for each type:
+
.<your type>-border { border-color:#af8800; }
+
.<your type>-bright { background-color:#fff3c8 !important; }
+
.<your type>-dark { background-color:#ffe27f !important; }
+Border is used for e.g. table borders, bright and dark are used as background colors for tables and fieldsets.
+
+
+Example:
+
.smbDomain-border { border-color:#1d993e; }
+
.smbDomain-bright { background-color:#c9ddd2 !important; }
+
.smbDomain-dark { background-color:#a8ddbf !important; }
+The colors for LAM's included types can be found in 500_layout.css.
+
+
+ \ No newline at end of file diff --git a/lam/docs/devel/type_general.htm b/lam/docs/devel/type_general.htm new file mode 100644 index 00000000..73f8774f --- /dev/null +++ b/lam/docs/devel/type_general.htm @@ -0,0 +1,91 @@ + + + + Type HowTo - General type options + + + + +
+

Type HowTo - General type options
+

+
+
+

+

1. Alias name

+The type name is very limited, therefore every type has an alias name. This alias name has no limitations and +can be translated. It may contain special characters but make sure that +it does not contain HTML special characters like "<".
+
+The alias name is specified +with getAlias().
+
+Example:
+
+Our smbDomain type will get +the alias "Samba domains".
+
+ + + + + + +
    /**
+    * Returns the alias name of this account type.
+    *
+    * @return string alias name
+    */
+    function + getAlias() {
+        return _("Samba domains");
+    }
+
+
+
+

2. Description
+

+Each type has a description so that the user knows what accounts he can +manage with that type. The description is displayed in the LAM +configuration editor.
+
+The description is specified with getDescription().
+
+Example:
+
+Our smbDomain type has the +description "Samba 3 domain entries".
+
+ + + + + + +
    /**
+    * Returns the description of this account type.
+    *
+    * @return string description
+    */
+    function + getDescription() {
+        return _("Samba 3 domain +entries");
+    }
+
+
+
+ +

+
+
+ + diff --git a/lam/docs/devel/type_icon.htm b/lam/docs/devel/type_icon.htm new file mode 100644 index 00000000..a614b4d0 --- /dev/null +++ b/lam/docs/devel/type_icon.htm @@ -0,0 +1,32 @@ + + + + Type HowTo - Icon + + + + +
+

Type HowTo - Icon

+
+

+You have to provide an icon for your account type. This icon is +displayed in the upper frame next to the link to your account list.
+The format of the image must be PNG +and the size should be between 20x20 +and 25x25 pixels.
+
+The file is stored in graphics/ +with the file name <your +type>.png.
+
+
+Example:
+
+The smbDomain type has the +icon graphics/smbDomain.png.
+
+
+ + diff --git a/lam/docs/devel/type_index.htm b/lam/docs/devel/type_index.htm new file mode 100644 index 00000000..293cf33b --- /dev/null +++ b/lam/docs/devel/type_index.htm @@ -0,0 +1,35 @@ + +LAM type HowTo + + + + + +
+

Type HowTo

+
+
If you write new account modules they +may not fit in the existing group of account types (user, group, host, +...). In this case you can easily create a new account type.
+This document provides a step-by-step description to build a type +module. The smbDomain +module which handles Samba domains is used as example.
+
+
+ +
+ \ No newline at end of file diff --git a/lam/docs/devel/type_list.htm b/lam/docs/devel/type_list.htm new file mode 100644 index 00000000..e3a861f0 --- /dev/null +++ b/lam/docs/devel/type_list.htm @@ -0,0 +1,182 @@ + + + + Type HowTo - Custom list view + + + + +
+

Type HowTo - Custom list view
+

+
+
+

+

1. Default list attributes
+

+Here you can specify what attributes are shown as default in the list +view.
+
+The default attributes are +specified +with getDefaultListAttributes().
+
+Example:
+
+Our smbDomain type will show +the attributes "#sambaDomainName;#sambaSID" by default.
+
+ + + + + + +
    /**
+    * Returns the default attribute list for this +account type.
+    *
+    * @return string attribute list
+    */
+    function getDefaultListAttributes() {
+        return +"#sambaDomainName;#sambaSID";
+    }
+
+
+
+

2. Pretranslated attribute descriptions
+

+You can provide translated descriptions for common attributes. This way +the user only specifies the attributes and LAM will show a description +for each language.
+
+The descriptions are specified with getListAttributeDescriptions().
+
+Example:
+
+Our smbDomain type has +descriptions for sambaSID and sambaDomainName.
+
+ + + + + + +
    /**
+    * Returns a list of attributes which have a +translated description.
+    * This is used for the head row in the list view.
+    *
+    * @return array list of descriptions
+    */
+    function getListAttributeDescriptions() {
+        return array(
+            "sambaSID" +=> _("Domain SID"),
+            +"sambaDomainName" => _("Domain name")
+            );
+    }
+
+
+
+
+

3. Specifying a custom list view

+The default list view has only very generic labels for the buttons and +navigation bar. So you should at least provide some new labels which +fit to your type.
+
+The class name of your list view is specified with getListClassName().
+
+Example:
+
+Our smbDomain type sets the +list view class to lamSmbDomainList. +The list class is defined in the same file as your type class +(smbDomain.inc in this case).
+The labels are set in the constructor. Do not forget to call the parent +constructor first.
+
+If you want to change more than just the labels, take a look at lib/lists.inc and lib/types/user.inc. When a list is +displayed then the showPage() +function is called. You can overwrite this function to display a +completly new list or just one of the other functions.
+
+ + + + + + +
/**
+* Returns the class name for the list object.
+*
+* @return string class name
+*/
+function getListClassName() +{
+    return "lamSmbDomainList";
+}
+
+
+/**
+ * Generates the list view.
+ *
+ * @package lists
+ * @author Roland Gruber
+ *
+ */
+class lamSmbDomainList +extends lamList {
+
+    /**
+     * Constructor
+     *
+     * @param string $type account type
+     * @return lamList list object
+     */
+    function lamSmbDomainList($type) {
+        parent::lamList($type);
+        $this->labels = array(
+            'nav' => +_("%s domain(s) found"),
+            +'error_noneFound' => _("No domains found!"),
+            'newEntry' +=> _("New domain"),
+            'deleteEntry' +=> _("Delete domain"),
+            'createPDF' +=> _("Create PDF for selected domain(s)"),
+            'createPDFAll' +=> _("Create PDF for all domains"));
+    }
+
+}
+
+
+
+
+
+ +

+
+
+ + diff --git a/lam/docs/devel/type_profile.htm b/lam/docs/devel/type_profile.htm new file mode 100644 index 00000000..333754fe --- /dev/null +++ b/lam/docs/devel/type_profile.htm @@ -0,0 +1,64 @@ + + + Type HowTo - Default profile + + + + + + + + + +
+

Type HowTo - Default profiles

+
+ +

Account profile +

+ +
+ +You have to provide a default profile for your account type. If you do +not want to specify default values then just provide an empty file.
+ +Save your profile as default.<your +type> in config/templates/profiles.
+ +
+ +
+ +Example:
+ +
+ +The smbDomain type has only +an empty default profile. It is saved as config/templates/profiles/default.smbDomain.
+ +
+ +
+ +
+ +

PDF structure
+

+ +Please provide a default PDF structure for your new account type. It is +named default.<your type>.xml +and stored in config/templates/pdf.
+ +
+ +
+ +Example:
+ +
+ +The smbDomain type has the +default PDF structure in config/templates/pdf/default.smbDomain.xml.
+ +
+ \ No newline at end of file diff --git a/lam/docs/devel/types-specification.htm b/lam/docs/devel/types-specification.htm new file mode 100644 index 00000000..e6f8658d --- /dev/null +++ b/lam/docs/devel/types-specification.htm @@ -0,0 +1,145 @@ + + + + + Type specification + + + + +

This document describes the type +interface for LDAP Account Manager

+
+Account types are used to manage a group of accounts by grouping one or +more account modules. Examples for account types are user, group, host +and smbDomain.
+
+

1. Location and naming of types
+

+All LAM types are placed in lib/types/ and are named "<class +name>.inc".
+E.g. if you create a new type and its class name is "myUser" then the +filename would be "myUser.inc".
+
+The class name of a type must contain only a-z, A-Z, 0-9, -, and _.
+All type classes should extend the baseType class.
+
+

2. Functions

+

2.1. getAlias
+

+
+ + + + + + +
function getAlias()
+
+
+Returns the alias name for +this type. E.g. the alias for smbDomain is "Samba domains".
+
+

2.2. getDescription
+

+
+ + + + + + +
function getDescription()
+
+
+Returns a description for the +account type. This should be a short sentence describing the account +type.
+
+

2.3. getListClassName
+

+
+ + + + + + +
function getListClassName()
+
+
+Here you can specify your own class to handle the list view. The class +must be a subclass of lamList.
+
+

2.4. getDefaultListAttributes
+

+
+ + + + + + +
function getDefaultListAttributes()
+
+
+Returns the default setting +for the displayed list attributes. It is used as default for config and +the syntax is equal to the config setting.
+
+

2.5. getListAttributeDescriptions
+

+
+ + + + + + +
function getListAttributeDescriptions()
+
+
+Returns a hash array which contains predefined, translated descriptions +of LDAP attributes.
+
+
+Example:

+
+return array(
+    "sambaSID" => _("Domain SID"),
+    "sambaDomainName" => _("Domain name")
+    );
+
+
+
+
+
+ + + diff --git a/lam/docs/devel/upgrade.htm b/lam/docs/devel/upgrade.htm new file mode 100644 index 00000000..009b7c98 --- /dev/null +++ b/lam/docs/devel/upgrade.htm @@ -0,0 +1,511 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + Upgrade notes + + + + + + + + +

Upgrade notes

+ +This is a list of API changes for all LAM releases. +
+ +
+ +

4.6 -> 4.7

Account types (e.g. user, group, host) may have config options now. See baseType::get_configOptions().
+
+

4.5 -> 4.6

+The valid account types for each module must now +be set in can_manage(). This function is abstract in base module. +Setting the account type via meta data is no longer supported.
+
+Example:
+
    public function can_manage() {
+
        return in_array($this->get_scope(), array('user', 'host'));
+
    }
+
+

4.2 -> 4.3

+Ldap::new_rand() was replaced by getRandomNumber() in lib/account.inc.
+Module interface:
+
    +
  • preModifySelfService/postModifySelfService: new parameter $newAccount. The user self registration now supports preCreate/postCreate events.
    +
  • +
+ +
+

4.1 -> 4.2

+New meta HTML classes: htmlEqualHeight, htmlAccordion
+New functions in baseModule to reduce code:
+
    +
  • addSimpleInputTextField() to add text fields to the edit page
  • +
  • addMultiValueInputTextField()/processMultiValueInputTextField() to add multi-value text fields to the edit page
  • +
  • addSimpleSelfServiceTextField()/checkSimpleSelfServiceTextField() adds and checks a text field in self service
  • +
  • addSimplePDFField() to create the PDF code for a simple text value
    +
  • +
+ +
+

4.0 -> 4.1

+CSS changes:
+
    +
  • type specific "td.{TYPE}nav-activepage" was replaced by common "td.activepage" in layout.css
  • +
  • renamed ".{TYPE}list-bright" to ".{TYPE}-bright" and ".{TYPE}list-dark" to ".{TYPE}-dark"
  • +
  • removed "table.{TYPE}list input", "table.{TYPE}list select", +"table.{TYPE}list button", "fieldset.{TYPE}edit input", +"fieldset.{TYPE}edit select", "fieldset.{TYPE}edit button"
  • +
  • removed "input.{TYPE}" and "select.{TYPE}"
  • +
  • removed "table.{TYPE}nav" and "table.{TYPE}nav input"
  • +
  • removed "table.{TYPE}list td,th"
  • +
  • new ".{TYPE}-border"
  • +
  • replaced "table.{TYPE}list" by ".{TYPE}-border" and "table.accountlist"
    +
  • +
  • replaced "fieldset.{TYPE}edit" by ".{TYPE}-border" and ".{TYPE}-bright"
  • +
  • moved type styles from 600_type_{TYPE}.css to 500_layout.css
    +
  • + +
+Updated jQuery and jQueryUI versions.
+
+

3.9 -> 4.0

+Module interface:
+
    +
  • new function: doUploadPreActions()
  • +
  • function doUploadPostActions() contains attributes by reference
    +
  • +
+List interface:
+
    +
  • new function: addExtraInputElementsToTopArea()
  • +
  • listShowOUSelection() now returns a htmlGroup
    +
  • +
+
+

3.8 -> 3.9

+Module interface:
+ +
    +
  • new function supportsAdminInterface(): Can be used to mark modules that only support the self service.
  • +
  • new function canSelfServiceFieldBeReadOnly(): Specifies if a certain self service field can be set in read-only mode.
  • +
  • getSelfServiceOptions(): new parameter $readOnlyFields that contains read-only fields
  • +
  • checkSelfServiceOptions(): new parameter $readOnlyFields that contains read-only fields
  • + +
+Meta HTML:
+
    +
  • Input fields support autocompletion
    +
  • +
+
+

3.7 -> 3.8
+

+Type interface:
+
    +
  • getTitleBarTitle()/getTitleBarSubtitle(): changed +parameter from attribute array to accountContainer object. +Additionally, the functions are now called on each page refresh.
    +
  • +
+
+

3.6 -> 3.7

+Module interface:
+
    +
  • postModifyActions(): Must return an array containing any messages to display
  • +
  • preModifyActions(): Changed return value from boolean to array of message arrays
  • +
  • passwordService interface: +new function supportsForcePasswordChange() and changed function +passwordChangeRequested() to support password change at next login
    +
  • +
  • getSelfServiceOptions()/checkSelfServiceOptions(): added parameter to specify if only password changes are allowed
  • +
  • handleAjaxRequest(): This new function allows AJAX requests to be answered by modules
  • +
  • getSelfServiceSettings(): New parameter $profile that contains the full self service profile object
    +
  • + + + + +
+ +
+

3.5.0 -> 3.6

+LAM now supports client-side validation (required + numeric fields). See htmlInputField::setValidationRule().
+
+

3.4.0 -> 3.5.0

+The old meta HTML code is no longer supported. Please use the new solution based on htmlElement (see lib/html.inc).
+
+

3.3.0 -> 3.4.0

+ + +Module interface:
+ +
    + +
  • save_attributes(): Can +now contain a return value 'info' => array() with values for +pre/postModify actions
  • +
  • checkSelfServiceOptions(): Can now contain a return value 'info' => array() with values for +pre/postModify actions
  • +
  • getSelfServiceOptions(): This function no longer supports the old meta HTML. Additionally, the module name must be specified for all help links.
    +
  • +
+ +
+ +

3.2.0 -> 3.3.0

+ +The cache class was removed. Please use local caching and the functions +searchLDAP... instead of get_cache().
+ +The return values for baseModule::pre/postDeleteActions() were changed +to an array of StatusMessage parameters. +
+ +CSS class TYPElist-sort removed without replacement.
+ +
+ +

3.1.0 -> 3.2.0

+ +Account types: The CSS classes +have changed. +
    + +
  • tr.TYPElist-over: removed without replacement
  • +
  • tr.TYPElist-checked: removed without replacement
  • +
  • tr.TYPElist: renamed to .TYPElist-bright
  • +
  • tr.TYPElist-head: renamed to .TYPElist-dark
  • +
  • th.TYPElist-sort: renamed to .TYPElist-sort
  • +
  • td.TYPEnav-text: removed without replacement
  • +
+ +
+ +
+ +

3.0.0 -> 3.1.0

+ +Module interface: There is a +new object-oriented library to +generate HTML for the account modules (e.g. used for +display_html_attributes()). This will allow additional functionality +like client side validation. Please see lib/html.inc or package +metaHTML in the phpdoc documentation.
+ +Attention: The getSelfServiceOptions() +function no longer supports the old meta HTML. The other functions will +support the old array-based meta HTML elements only until Q2/2011!
+ +
+ +The PDF editor now supports descriptive PDF +fields. You can use this by returning an associative array for the PDF +fields (e.g. array('macAddress' => _('MAC address'))) in get_pdfFields() or the meta data.
+ +The old format is still supported. LAM will continue to show the field +name as label in this case.
+ +
+ +
+ +

2.9.0 -> 3.0.0

+ +You can now integrate JavaScript libraries by simply putting the files +into templates/lib. All files with the name *.js are automatically +included on all pages.
+ +There is a new log level LOG_DEBUG available for logNewMessage(). +
+ +

Module interface:

+ +The function +build_uploadAccounts() +has a new parameter +$selectedModules.
+ +

Type interface:

+ +The new function supportsFileUpload() +specifies if file uploads are supported (default true).
+ +
+ +
+ +

2.8.0 -> 2.9.0

+ +Several functions of the cache +class were removed.
+ +
+ +
+ +

2.5.0 -> 2.6.0

+ +The class baseType +has two new member variables:
+ +
    + +
  • $LABEL_CREATE_ANOTHER_ACCOUNT
  • +
  • $LABEL_BACK_TO_ACCOUNT_LIST
  • +
+ +They can be used to show a more specific text when the user is asked to +create another account or return back to the account list.
+ +
+ +The meta HTML code now supports image buttons.
+ +
+ +
+ +

2.4.0 -> 2.5.0

+ +

Self service

+ +$selfServiceSettings in class baseModule is now an object of the +class selfServiceProfile. +This way all profile settings can be read. To access the module +settings use $this->selfServiceSettings->moduleSettings.
+ +
+ +
+ +

2.2.0 -> 2.3.0

+ +

Style changes

+ +If you have defined your own account types then you need to update your +CSS files (style/type_<type>.css).
+ +Please change "table.<type>list input,select" to +"table.<type>list input,select,button" and +"fieldset.<type>edit input" to "fieldset.<type>edit +input,select,button". "fieldset.<type>edit select" may be deleted +afterwards.
+ +
+ +
+ +

2.1.0 -> 2.2.0

+ +

Account lists

+ +Account lists now support to define tools. These are displayed as +linked images like the edit and delete links in the list.
+ +Overwrite lamList::getAdditionalTools() +to use this feature.
+ +
+ +The definition of account list options changed. The function lamList::getAdditionalTools() is no +longer available. Use these functions instead: lamList::listGetAllConfigOptions() +and lamList::listConfigurationChanged().
+ +All options are now saved in cookies for one year.
+ +
+ +

Base module

+ +The baseModule class has a new +protected option: $autoAddObjectClasses +You can set it to false if you do not want that your module's +object classes are added when creating or loading an account.
+ +
+ +Account modules can now have icons. See baseModule->getIcon().
+ +
+ +

Constructors

+ +LAM now uses the PHP5 syntax for constructors: __construct()
+
+
+

Extended security model

+ +Each server profile now defines an access level.
+ +
+ +Currently these are:
+ +
    + +
  • write access
  • +
  • password changes
  • +
  • read access
    +
  • +
+ + Please check your code and +prohibit any actions which do not fit the current access level.
+ +There are two new functions in security.inc: +checkIfWriteAccessIsAllowed() +and checkIfPasswordChangeIsAllowed()
+ +Only LAM Pro allows to change the access level from write access to a smaller level.
+ +
+ +
+ +

2.0.0 -> 2.1.0

+ +

Style changes

+ +
    + +
  • "fieldset.<type>edit fieldset" and +"fieldset.<type>edit fieldset fieldset" were removed.
  • +
  • "table.<type>list input" changed to "table.<type>list +input,select"
  • +
+ +

baseModule

+ +  The class variable $base +is no longer visible in child classes. Please use $this->getAccountContainer() to +access the accountContainer object.
+ +
+ +Several other class variables in accountContainer etc. are now private. +Use the new access methods.
+ +
+ +
+ +

1.3.0 -> 2.0.0

+ +LAM is now PHP5 only. Several variables are now private and need to be +accessed via functions.
+ +
+ +
+ +

1.2.0 -> 1.3.0

+ +

New lamList functions

+ +
    + +
  • listPrintTableCellContent(): +This function allows you to control how the LDAP attributes are +displayed in the table. This can be used to display links or binary +data.
  • +
  • listPrintAdditionalOptions(): +If you want to display additional conrols for a list please use this +function. The controls will be placed under the account table.
    +
  • +
+ +No more lamdaemon commands via delete_attributes() and +save_attributes() in account modules.
+ +Please use these new functions to call lamdaemon directly:
+ +
    + +
  • preModifyActions()
  • +
  • postModifyActions()
  • +
  • preDeleteActions()
  • +
  • postDeleteActions()
  • +
+ +
+ +

1.1.x -> 1.2.0

+ +

API changes

+ +
    + +
  • removed get_configDescription() from module interface
  • +
+ +
+ +

1.0.4 -> 1.1.0

+ +

API changes

+ +
    + +
  • removed $post parameters from module functions +(delete_attributes(), process_...(), display_html_...()). Use $_POST +instead.
  • +
  • process_...() +functions: returned messages are no longer grouped (e.g. return: +array(array('INFO', 'headline', 'text'), array('INFO', 'headline2', +'text2')))
  • +
+ +
+ +

1.0.0 -> 1.0.2

+ +

New module functions

+ +
    + +
  • getRequiredExtensions: Allows to define required PHP extensions
  • +
  • getManagedObjectClasses: Definition of managed object classes for +this module
  • +
  • getLDAPAliases: list of LDAP alias names which are replaced by LAM
  • +
  • getManagedAttributes: list of LDAP attributes which are managed +by this module
  • +
+ +The LDAP attributes are no longer loaded by reading the LDAP schema. If +your module does not implement the load_attributes() function then you +have to use getManagedAttributes() or the meta data to specify them.
+ +
+ +The class variable "triggered_messages" in baseModule was removed.
+ +
+ + \ No newline at end of file diff --git a/lam/docs/devel/upload.htm b/lam/docs/devel/upload.htm new file mode 100644 index 00000000..95be92be --- /dev/null +++ b/lam/docs/devel/upload.htm @@ -0,0 +1,103 @@ + + + + + File upload + + + + +

File upload
+

+
+
upload
+

+

Account selection (masscreate.php)
+

+This is the initial page of the file upload. The user selects the +account type for the new upload.
+
+
+

Attribute overview (masscreate.php)

+After the account selection LAM will display an overview of the +possible and required input columns.
+The DN attributes (DN suffix and RDN) are static and are always +displayed. The default suffix is read from config with getAccountSuffix() and the list of +RDN possibilities is taken from modules.inc - getRDNAttributes().
+The next attributes are read from modules.inc - getUploadColumns(). LAM will display +all attributes of one module in a separate fieldset. The getUploadColumns() function also +returns if an attribute is required and additional information like an +example value.
+
+After clicking the upload button the user will be forwarded to the +account building page.
+
+
+

Account building (massBuildAccounts.php)
+

+This part takes the submitted CSV file +and generates the LDAP accounts.
+
+The scripts separates the head row from the data rows in the CSV file. +The head array is used to find the position of the input values. The +data array contains one subarray for each account.
+
+After the data has been extracted there are some basic checks done, +e.g. checking required and unique columns. The modules provide the +necessary information for this.
+
+Then all data is given to the modules with buildUploadAccounts() in +modules.inc. They return a list of accounts which can be uploaded with ldap-add() and generate possible +error messages.
+
+If the accounts are built the script will give the user the possibility +to check the result with an LDIF-file +or to do the upload.
+
+
+

LDIF export (massBuildAccounts.php)
+

+LAM simply takes the built accounts and generates an LDIF-file from them. This is passed +to the user's browser.
+The LDIF-file will only +contain the accounts itself. If modules do additional tasks after the +upload (e.g. adding users to groups) this will not be covered.
+
+
+

Account creation (massDoUpload.php)
+

+This script finally uploads the LDAP accounts with ldap_add().
+
+The upload can last longer than the maximum execution time of PHP. +Therefore the script will check regulary how much time is left and +pause the upload. This is resumed with a meta refresh which loads the +script again.
+
+After all accounts were created in LDAP the modules may do additional +tasks. LAM will call doUploadPostActions() +and also provide a list of failed accounts which can be ignored. The +function is called as long the returned status is "inProgress". The script uses again +a +meta refresh to handle the maximum execution time.
+Typical post actions are setting quotas or adding an user to groups.
+
+A progress bar is shown for the LDAP adding and the module actions to +give the user a hint how long it will still take.
+
+
+ + diff --git a/lam/docs/manual-sources/howto.xml b/lam/docs/manual-sources/howto.xml new file mode 100644 index 00000000..950ce8e1 --- /dev/null +++ b/lam/docs/manual-sources/howto.xml @@ -0,0 +1,9824 @@ + + + + LDAP Account Manager - Manual + + + Overview + + LDAP Account Manager (LAM) manages user, group and host accounts in + an LDAP directory. LAM runs on any webserver with PHP5 support and + connects to your LDAP server unencrypted or via SSL/TLS. + + LAM supports Samba 3, Unix, Zarafa, Kolab 2/3, address book entries, + NIS mail aliases, MAC addresses and much more. There is a tree viewer + included to allow access to the raw LDAP attributes. You can use templates + for account creation and use multiple configuration profiles. + + https://www.ldap-account-manager.org/ + + Copyright (C) 2003 - 2014 Roland Gruber + <post@rolandgruber.de> + + Key features: + + + + managing user/group/host/domain entries + + + + account profiles + + + + account creation via file upload + + + + multiple configuration profiles + + + + LDAP browser + + + + schema browser + + + + OU editor + + + + PDF export for all accounts + + + + manage user/group Quota and create home directories + + + + Requirements: + + + + PHP5 (>= 5.2.4) + + + + Any standard LDAP server (e.g. OpenLDAP, Active Directory, Samba + 4, OpenDJ, 389 Directory Server, Apache DS, ...) + + + + A recent web browser that supports CSS2 and JavaScript, at + minimum: + + + + Firefox 3 + + + + Internet Explorer 8 (compatibility + mode turned off) + + + + Opera 10 + + + + + + The default password to edit the configuration options is + "lam". + + License: + + LAM is published under the GNU General Public License. The complete + list of licenses can be found in the copyright file. + + Default password: + + The default password for the LAM configuration is "lam". + + +Have fun! + The LAM development team + + + + Architecture + + There are basically two groups of users for LAM: + + + + LDAP administrators and support + staff: + + These people administer LDAP entries like user accounts, groups, + ... + + + + Users: + + This includes all people who need to manage their own data + inside the LDAP directory. E.g. these people edit their contact + information with LAM self service (LAM Pro). + + + + + + + + + + + + Therefore, LAM is split into two separate parts, LAM for admins and + for users. LAM for admins allows to manage various types of LDAP entries + (e.g. users, groups, hosts, ...). It also contains tools like batch + upload, account profiles, LDAP schema viewer and an LDAP browser. LAM for + users focuses on end users. It provides a self service for the users to + edit their personal data (e.g. contact information). The LAM administrator + is able to specify what data may be changed by the users. The design is + also adaptable to your corporate design. + + LAM for admins/users is accessible via HTTP(S) by all major web + browsers (Firefox, IE, Opera, ...). + + LAM runtime environment: + + LAM runs on PHP. Therefore, it is independant of CPU architecture + and operating system (OS). You can run LAM on any OS which supports + Apache, Nginx or other PHP compatible web servers. + + Home directory server: + + You can manage user home directories and their quotas inside LAM. + The home directories may reside on the server where LAM is installed or + any remote server. The commands for home directory management are secured + by SSH. LAM will use the user name and password of the logged in LAM + administrator for authentication. + + LDAP directory: + + LAM connects to your LDAP server via standard LDAP protocol. It also + supports encrypted connections with SSL and TLS. + + + + Installation + +
+ New installation + +
+ Requirements + + LAM has the following requirements to run: + + + + Apache/Nginx webserver (SSL recommended) with PHP module + (PHP 5 (>= 5.2.4) with ldap, gettext, xml, openssl and optional + mcrypt) + + + + Some LAM plugins may require additional PHP extensions (you + will get a note on the login page if something is missing) + + + + Perl (optional, needed only for lamdaemon) + + + + Any standard LDAP server (e.g. OpenLDAP, Active Directory, + Samba 4, OpenDJ, 389 Directory Server, Apache DS, ...) + + + + A recent web browser that supports CSS2 and JavaScript, at + minimum: + + + + Firefox 3 + + + + Internet Explorer 8 (compatibility mode turned + off) + + + + Opera 10 + + + + + + MCrypt will be used to store your LDAP password encrypted in the + session file. + + Please note that LAM does not ship with a selinux policy. Please + disable selinux or create your own policy. + + See LDAP schema fles for + information about used LDAP schema files. +
+ +
+ Prepackaged releases + + LAM is available as prepackaged version for various + platforms. + +
+ Debian + + + + + + + + + + + + LAM is part of the official Debian repository. New + releases are uploaded to unstable and will be available + automatically in testing and the stable releases. You can + run apt-get + install ldap-account-managerto install LAM + on your server. Additionally, you may download the latest + LAM Debian packages from the LAM + homepage or the Debian + package homepage.Installation of the latest packages on Debian + Squeeze + + Install php-fpdf 1.7.dfsg-1 from here: + + http://packages.debian.org/wheezy/all/php-fpdf/download + + + + Install the LAM package + + dpkg -i ldap-account-manager_*.deb + + If you get any messages about missing + dependencies run now: apt-get -f install + + + + Install the lamdaemon package (optional) + + dpkg -i + ldap-account-manager-lamdaemon_*.deb + + + + + + +
+ +
+ Suse/Fedora + + + + + + + + + + + + + + + + There are RPM packages available on the LAM + homepage. The packages can be installed with these + commands:rpm -e + ldap-account-manager + ldap-account-manager-lamdaemon (if an older + version is installed)rpm + -i <path to LAM package> + + + + +
+ +
+ Other RPM based distributions + + The RPM packages for Suse/Fedora are very generic and should + be installable on other RPM-based distributions, too. The Fedora + packages use apache:apache as file owner and the Suse ones use + wwwrun:www. +
+ +
+ FreeBSD + + + + + + + + + + + + LAM is part of the official FreeBSD ports tree. For + more details see these pages:FreeBSD-SVN: http://svnweb.freebsd.org/ports/head/sysutils/ldap-account-manager/FreshPorts: + http://www.freshports.org/sysutils/ldap-account-manager + + + + +
+
+ +
+ Installing the tar.bz2 + +
+ Extract the archive + + Please extract the archive with the following command: + + tar xjf ldap-account-manager-<version>.tar.bz2 +
+ +
+ Install the files + +
+ Manual copy + + Copy the files into the html-file scope of the web server. + For example /apache/htdocs. + + Then set the appropriate file permissions: + + + + lam/sess: write permission for apache/nginx user + + + + lam/tmp: write permission for apache/nginx user + + + + lam/config (with subdirectories): write permission for + apache/nginx user + + + + lam/lib: lamdaemon.pl must be set executable + + +
+ +
+ With configure script + + Instead of manually copying files you can also use the + included configure script to install LAM. Just run these commands + in the extracted directory: + + + + ./configure + + + + make install + + + + Options for "./configure": + + + + --with-httpd-user=USER USER is the name of your + Apache/Nginx user account (default httpd) + + + + --with-httpd-group=GROUP GROUP is the name of your + Apache/Nginx group (default httpd) + + + + --with-web-root=DIRECTORY DIRECTORY is the name where + LAM should be installed (default /usr/local/lam) + + +
+
+ +
+ Configuration files + + Copy config/config.cfg.sample to config/config.cfg and + config/lam.conf.sample to config/lam.conf. Open the index.html in + your web browser: + + + + Follow the link "LAM configuration" from the start page to + configure LAM. + + + + Select "Edit general settings" to setup global settings + and to change the master + configuration password (default is "lam"). + + + + Select "Edit server profiles" to setup your server + profiles. There should be the lam profile which you just copied + from the sample file. The default password is "lam". Now change + the settings to fit for your environment. + + +
+ +
+ Webserver configuration + + Please see the Apache or Nginx chapter. +
+
+ +
+ System configuration + +
+ PHP + + LAM runs with PHP5 (>= 5.2.4). Needed changes in your + php.ini: + + memory_limit = 64M + + For large installations (>10000 LDAP entries) you may need + to increase the memory limit to 256M. + + If you run PHP with activated Suhosin + extension please check your logs for alerts. E.g. LAM requires that + "suhosin.post.max_name_length" and + "suhosin.request.max_varname_length" are increased (e.g. to + 256). +
+ +
+ Locales for non-English translation + + If you want to use a translated version of LAM be sure to + install the needed locales. The following table shows the needed + locales for the different languages. + + + Locales + + + + + Language + + Locale + + + + Catalan + + ca_ES.utf8 + + + + Chinese (Simplified) + + zh_CN.utf8 + + + + Chinese (Traditional) + + zh_TW.utf8 + + + + Czech + + cs_CZ.utf8 + + + + Dutch + + nl_NL.utf8 + + + + English - Great Britain + + no extra locale needed + + + + English - USA + + en_US.utf8 + + + + French + + fr_FR.utf8 + + + + German + + de_DE.utf8 + + + + Hungarian + + hu_HU.utf8 + + + + Italian + + it_IT.utf8 + + + + Japanese + + ja_JP.utf8 + + + + Polish + + pl_PL.utf8 + + + + Portuguese + + pt_BR.utf8 + + + + Russian + + ru_RU.utf8 + + + + Slovak + + sk_SK.utf8 + + + + Spanish + + es_ES.utf8 + + + + Turkish + + tr_TR.utf8 + + + + Ukrainian + + uk_UA.utf8 + + + +
+ + You can get a list of all installed locales on your system by + executing: + + locale -a + + Debian users can add locales with "dpkg-reconfigure + locales". +
+
+
+ +
+ Upgrading LAM or migrate from LAM to LAM Pro + + Upgrading from LAM to LAM Pro is like installing a new LAM + version. Simply install the LAM Pro packages/tar.bz2 instead of the LAM + ones. + +
+ Install new version + + Backup configuration + files + + Configuration files need only to be backed up for .tar.bz2 + installations. DEB/RPM installations do not require this step. + + LAM stores all configuration files in the "config" folder. + Please backup the following files and copy them after the new version + is installed. + + + config/*.conf + + config/config.cfg + + config/pdf/*.xml + + config/profiles/* + + + LAM Pro only: + + + config/selfService/*.* + + + Uninstall current LAM (Pro) + version + + If you used the DEB/RPM installation packages then remove the + ldap-account-manager and ldap-account-manager-lamdaemon + packages. + + Otherwise, remove the folder where you installed LAM via + configure or by copying the files. + + Install new LAM (Pro) + version + + Please install the new LAM + (Pro) release. Skip the part about setting up LAM configuration + files. + + Restore configuration + files + + This step can be skipped if you installed the DEB/RPM + packages. + + Please restore your configuration files from the backup. Copy + all files from the backup folder to the config folder in your LAM Pro + installation. Do not simply replace the folder because the new LAM + (Pro) release might include additional files in this folder. Overwrite + any existing files with your backup files. + + Final steps + + Now open your webbrowser and point it to the LAM login page. All + your settings should be migrated. + + Please check also the version + specific instructions. They might include additional + actions. +
+ +
+ Version specific upgrade instructions + +
+ 4.5 -> 4.7 + + No special actions needed. +
+ +
+ 4.4 -> 4.5 + + LAM will no longer follow referrals by default. This is ok for + most installations. If you use LDAP referrals please activate + referral following for your server profile (tab General settings + -> Server settings -> Advanced options). + + The self service pages now have an own option for allowed IPs. + If your LAM installation uses IP restrictions please update the LAM + main configuration. + + Password self reset (LAM Pro) allows to set a backup email + address. You need to update the LDAP + schema if you want to use this feature. +
+ +
+ 4.3 -> 4.4 + + Apache configuration: LAM supports Apache 2.2 and 2.4. This + requires that your Apache server has enabled the "version" module. + For Debian and Fedora this is the default setup. The Suse RPM will + try to enable the version module during installation. + + Kolab: User accounts get the object class "mailrecipient" by + default. You can change this behaviour in the module settings + section of your LAM server profile. + + Windows: sAMAccountName is no longer set by default. Enable it + in server profile if needed. The possible domains for the user name + can also be set in server profile. +
+ +
+ 4.2.1 -> 4.3 + + LAM is no more shipped as tar.gz package but as tar.bz2 which + allows smaller file sizes. +
+ +
+ 4.1 -> 4.2/4.2.1 + + Zarafa users: The default attribute for mail aliases is now + "dn". If you use "uid" and did not change the server profile for a + long time please check your LAM server profile for this setting and + save it. +
+ +
+ 4.0 -> 4.1 + + Unix: The list of valid login + shells is no longer configured in "config/shells" but in the + server/self service profiles (Unix settings). LAM will use the + following shells by default: /bin/bash, /bin/csh, /bin/dash, + /bin/false, /bin/ksh, /bin/sh. + + Please update your server/self service profile if you would + like to change the list of valid login shells. +
+ +
+ 3.9 -> 4.0 + + The account profiles and PDF structures are now separated by + server profile. This means that if you edit e.g. an account profile + in server profile A then this change will not affect the account + profiles in server profile B. + + LAM will automatically migrate your existing files as soon as + the login page is loaded. + + Special install instructions: + + + + Debian: none, config files will be migrated when opening + LAM's login page + + + + Suse/Fedora RPM: + + + + Run "rpm -e ldap-account-manager + ldap-account-manager-lamdaemon" + + + + You may get warnings like "warning: + /var/lib/ldap-account-manager/config/profiles/default.user + saved as + /var/lib/ldap-account-manager/config/profiles/default.user.rpmsave" + + + + Please rename all files "*.rpmsave" and remove the + file extension ".rpmsave". E.g. "default.user.rpmsave" needs + to be renamed to "default.user". + + + + Install the LAM packages with "rpm -i". E.g. "rpm -i + ldap-account-manager-4.0-0.suse.1.noarch.rpm". + + + + Open LAM's login page in your browser to complete the + migration + + + + + + tar.gz: standard upgrade steps, config files will be + migrated when opening LAM's login page + + +
+ +
+ 3.7 -> 3.9 + + No changes. +
+ +
+ 3.6 -> 3.7 + + Asterisk extensions: The extension entries are now grouped by + extension name and account context. LAM will automatically assign + priorities and set same owners for all entries. +
+ +
+ 3.5.0 -> 3.6 + + Debian users: LAM 3.6 + requires to install FPDF 1.7. You can download the package here. + If you use Debian Stable (Squeeze) please use the package from + Testing (Wheezy). +
+ +
+ 3.4.0 -> 3.5.0 + + LAM Pro: The global + config/passwordMailTemplate.txt is no longer supported. You can + setup the mail settings now for each LAM server profile which + provides more flexibility. + + Suse/Fedora RPM + installations: LAM is now installed to + /usr/share/ldap-account-manager and + /var/lib/ldap-account-manager. + + Please note that configuration files are not migrated + automatically. Please move the files from /srv/www/htdocs/lam/config + (Suse) or /var/www/html/lam/config (Fedora) to + /var/lib/ldap-account-manager/config. +
+ +
+ 3.3.0 -> 3.4.0 + + No changes. +
+ +
+ 3.2.0 -> 3.3.0 + + If you use custom images for the PDF export then these images + need to be 5 times bigger than before (e.g. 250x250px instead of + 50x50px). This allows to use images with higher resolution. +
+ +
+ 3.1.0 -> 3.2.0 + + No changes. +
+ +
+ 3.0.0 -> 3.1.0 + + LAM supported to set a list of valid workstations on the + "Personal" page. This required to change the LDAP schema. Since + 3.1.0 this is replaced by the new "Hosts" module for users. + + Lamdaemon: The sudo entry needs to be changed to + ".../lamdaemon.pl *". +
+ +
+ 2.3.0 -> 3.0.0 + + No changes. +
+ +
+ 2.2.0 -> 2.3.0 + + LAM Pro: There is now a + separate account type for group of (unique) names. Please edit your + server profiles to activate the new account type. +
+ +
+ 1.1.0 -> 2.2.0 + + No changes. +
+
+
+ +
+ Uninstallation of LAM (Pro) + + If you used the prepackaged installation packages then remove the + ldap-account-manager and ldap-account-manager-lamdaemon packages. + + Otherwise, remove the folder where you installed LAM via configure + or by copying the files. +
+
+ + + Configuration + + After you installed LAM you + can configure it to fit your needs. The complete configuration can be done + inside the application. There is no need to edit configuration + files. + + Please point you browser to the location where you installed LAM. + E.g. for Debian/RPM this is http://yourServer/lam. If you installed LAM + via the tar.bz2 then this may vary. You should see the following + page: + + + + + + + + + + If you see an error message then you might need to install an + additional PHP extension. Please follow the instructions and reload the + page afterwards. + + Now you are ready to configure LAM. Click on the "LAM configuration" + link to proceed. + + + + + + + + + + Here you can change LAM's general settings, setup server profiles + for your LDAP server(s) and configure the self service (LAM Pro). You should start + with the general settings and then setup a server profile. + +
+ General settings + + After selecting "Edit general settings" you will need to enter the + master configuration password. + The default password for new installations is "lam". Now you can edit + the general settings. + +
+ Security settings + + Here you can set a time period after which inactive sessions are + automatically invalidated. The selected value represents minutes of + inactivity. + + You may also set a list of IP addresses which are allowed to + access LAM. The IPs can be specified as full IP (e.g. 123.123.123.123) + or with the "*" wildcard (e.g. 123.123.123.*). Users which try to + access LAM via an untrusted IP only get blank pages. There is a + separate field for LAM Pro self service. + + Session encryption will encrypt sensitive + data like passwords in your session files. This is only available when + PHP MCrypt is active. This + adds extra security but also costs performance. If you manage a large + directory you might want to disable this and take other actions to + secure your LAM server. + + + + + + + + + + SSL certificate + setup: + + By default, LAM uses the CA certificates that are preinstalled + on your system. This will work if you connect via SSL/TLS to an LDAP + server that uses a certificate signed by a well-known CA. In case you + use your own CA (e.g. company internal CA) you can import the CA + certificates here. + + Please note that this can affect other web applications on the + same server if they require different certificates. There seem to be + problems on Debian systems and you may also need to restart Apache. In + case of any problems please delete the uploaded certificates and use + the system setup. + + You can either upload a DER/PEM formatted certificate file or + import the certificates directly from an LDAP server that is available + with LDAP+SSL (ldaps://). LAM will automatically override system + certificates if at least one certificate is uploaded/imported. + + The whole certificate list can be downloaded in PEM format. You + can also delete single certificates from the list. + + Please note that you might need to restart your webserver if you + do any changes to this configuration. + + + + + + + + +
+ +
+ Password policy + + This allows you to specify a central password policy for LAM. + The policy is valid for all password fields inside LAM admin + (excluding tree view) and LAM self service. Configuration passwords do + not need to follow this policy. + + + + + + + + + + You can set the minimum password length and also the complexity + of the passwords. +
+ +
+ Logging + + LAM can log events (e.g. user logins). You can use system + logging (syslog for Unix, event viewer for Windows) or log to a + separate file. Please note that LAM may log sensitive data (e.g. + passwords) at log level "Debug". Production systems should be set to + "Warning" or "Error". + + The PHP error reporting is only for developers. By default LAM + does not show PHP notice messages in the web pages. You can select to + use the php.ini setting here or printing all errors and + notices. + + + + + + + + +
+ +
+ Additional options + + Email + format + + Some email servers are not standards compatible. If you receive + mails that look broken you can change the line endings for sent mails + here. Default is to use "\r\n". + + At the moment, this option is only available in LAM Pro as there + is no mail sending in the free version. See here for setting up your SMTP + server. + + + + + + + + +
+ +
+ Change master password + + If you would like to change the master configuration password + then enter a new password here. + + + + + + + + +
+
+ +
+ Server profiles + + The server profiles store information about your LDAP server (e.g. + host name) and what kind of accounts (e.g. users and groups) you would + like to manage. There is no limit on the number of server profiles. See + the typical scenarios about + how to structure your server profiles. + +
+ Manage server profiles + + Select "Manage server profiles" to open the profile management + page. + + + + + + + + + + Here you can create, rename and delete server profiles. The + passwords of your server + profiles can also be reset. + + You may also specify the default server profile. This is the + server profile which is preselected at the login page. It also + specifies the language of the login and configuration pages. + + + + + + + + + + You can create a new server profile by simply entering its name + and password. After you created a new profile you can go back to the + profile login and edit your new server profile. + + All operations on the profile management page require that you + authenticate yourself with the configuration master + password. +
+ +
+ Editing a server profile + + Please select you server profile and enter its password to edit + a server profile. + + + + + + + + + + Each server profile contains the following information: + + + + General settings: general + settings about your LDAP server (e.g. host name and security + settings) + + + + Account types: list of + account types (e.g. users and groups) that you would like to + manage and type specific settings (e.g. LDAP suffix) + + + + Modules: list of modules + which define what account aspects (e.g. Unix, Samba, Kolab) you + would like to manage + + + + Module settings: settings + which are specific for the selected account modules on the page + before + + + +
+ General settings + + Here you can specify the LDAP server and some security + settings. + + + + + + + + + + The server address of your LDAP server can be a DNS name or an + IP address. Use ldap:// for unencrypted LDAP connections or TLS + encrypted connections. LDAP+SSL (LDAPS) encrypted connections are + specified with ldaps://. The port value is optional. TLS cannot be + combined with ldaps://. + + LAM includes an LDAP browser which allows direct modification + of LDAP entries. If you would like to use it then enter the LDAP + suffix at "Tree suffix". + + The search limit is used to reduce the number of search + results which are returned by your LDAP server. + + The access level specifies if LAM should allow to modify LDAP + entries. This feature is only available in LAM Pro. LAM non-Pro + releases use write access. See this page for details on + the different access levels. + + By default LAM will not follow LDAP referrals. This is ok for + most installations. If you use LDAP referrals please activate the + referral option in advanced settings. + + + + + + + + + + LAM is translated to many different languages. Here you can + select the default language for this server profile. The language + setting may be overriden at the LAM login page. + + + + + + + + + + LAM can manage user home directories and quotas with an + external script. You can specify the home directory server and where + the script is located. The default rights for new home directories + can be set, too. + + + + + + + + + + LAM Pro users can send out changed passwords to their users. + Here you can specify the options for these mails. + + If you select "Allow alternate address" then password mails + can be sent to any address (e.g. a secondary address if the user + account is also bound to the mailbox). + + + + + + + + + + LAM supports two methods for login. The first one is to + specify a fixed list of LDAP DNs that are allowed to login. Please + enter one DN per line. + + The second one is to let LAM search for the DN in your + directory. E.g. if a user logs in with the user name "joe" then LAM + will do an LDAP search for this user name. When it finds a matching + DN then it will use this to authenticate the user. The wildcard + "%USER%" will be replaced by "joe" in this example. This way you can + provide login by user name, email address or other LDAP + attributes. + + Additionally, you can enable HTTP authentication when using + "LDAP search". This way the web server is responsible to + authenticate your users. LAM will use the given user name + password + for the LDAP login. You can also configure this to setup advanced + login restrictions (e.g. require group memberships for login). To + setup HTTP authentication in Apache please see this link + and an example for LDAP authentication here. + + Hint: LDAP search with group + membership check can be done with either HTTP authentication or LDAP + overlays like "memberOf" + or "Dynamic + lists". Dynamic lists allow to insert virtual attributes to + your user entries. These can then be used for the LDAP filter (e.g. + "(&(uid=%USER%)(memberof=cn=admins,ou=groups,dc=company,dc=com))"). + + + + + + + + + + You may also change the password of this server profile. + Please just enter the new password in both password fields. +
+ +
+ Account types + + LAM supports to manage various types of LDAP entries (e.g. + users, groups, DHCP entries, ...). On this page you can select which + types of entries you want to manage with LAM. + + + + + + + + + + The section at the top shows a list of possible types. You can + activate them by simply clicking on the plus sign next to it. + + Each account type has the following options: + + + + LDAP suffix: the LDAP + suffix where entries of this type should be managed + + + + List attributes: a list + of attributes which are shown in the account lists + + + + Additional LDAP filter: + LAM will automatically detect the right LDAP entries for each + account type. This can be used to further limit the number of + visible entries (e.g. if you want to manage only some specific + groups). You can use "@@LOGIN_DN@@" as wildcard (e.g. + "(owner=@@LOGIN_DN@@)"). It will be replaced by the DN of the + user who is logged in. + + + + Hidden: This is used to + hide account types that should not be displayed but are required + by other account types. E.g. you can hide the Samba domains + account type and still assign domains when you edit your + users. + + + + Read-only (LAM Pro only): + This allows to set a single account type to read-only mode. + Please note that this is a restriction on functional level (e.g. + group memberships can be changed on user page even if groups are + read-only) and is no replacement for setting up proper ACLs on + your LDAP server. + + + + Custom label: Here you + can set a custom label for the account types. Use this if the + standard label does not fit for you (e.g. enter "Servers" for + hosts). + + + + No new entries (LAM Pro + only): Use this if you want to prevent that new + accounts of this type are created by your users. The GUI will + hide buttons to create new entries and also disable file upload + for this type. + + + + Disallow delete (LAM Pro + only): Use this if you want to prevent that accounts + of this type are deleted by your users. + + + + + + + + + + + + On the next page you can specify in detail what extensions + should be enabled for each account type. +
+ +
+ Modules + + The modules specify the active extensions for each account + type. E.g. here you can setup if your user entries should be address + book entries only or also support Unix or Samba. + + + + + + + + + + Each account type needs a so called "base module". This is the + basement for all LDAP entries of this type. Usually, it provides the + structural object class for the LDAP entries. There must be exactly + one active base module for each account type. + + Furthermore, there may be any number of additional active + account modules. E.g. you may select "Personal" as base module and + Unix + Samba as additional modules. +
+ +
+ Module settings + + Depending on the activated account modules there may be + additional configuration options available. They can be found on the + "Module settings" tab. E.g. the Personal account module allows to + hide several input fields and the Unix module requires to specify + ranges for UID numbers. + + + + + + + + +
+
+ +
+ Typical scenarios + + This is a list of typical scenarios how your LDAP environment + may look like and how to structure the server profiles for it. + +
+ Simple: One LDAP directory managed by a small group of + admins + + This is the easiest and most common scenario. You want to + manage a single LDAP server and there is only one or a few admins. + In this case just create one server profile and you are done. The + admins may be either specified as a fixed list or by using an LDAP + search at login time. + + + + + + + + +
+ +
+ Advanced: One LDAP server which is managed by different admin + groups + + Large organisations may have one big LDAP directory for all + user/group accounts. But the users are managed by different groups + of admins (e.g. departments, locations, subsidiaries, ...). The + users are typically divided into organisational units in the LDAP + tree. Admins may only manage the users in their part of the + tree. + + + + + + + + + + In this situation it is recommended to create one server + profile for each admin group (e.g. department). Setup the LDAP + suffixes in the server profiles to point to the needed + organisational units. E.g. use + ou=people,ou=department1,dc=company,dc=com or + ou=department1,ou=people,dc=company,dc=com as LDAP suffix for users. + Do the same for groups, hosts, ... This way each admin group will + only see its own users. You may want to use LDAP search for the LAM + login in this scenario. This will prevent that you need to update a + server profile if the number of admins changes. + + Attention: LAM's feature to + automatically find free UIDs/GIDs for new users/groups will not work + in this case. LAM uses the user/group suffix to search for already + assigned UIDs/GIDs. As an alternative you can specify different + UID/GID ranges for each department. Then the UIDs/GIDs will stay + unique for the whole directory. +
+ +
+ Multiple LDAP servers + + You can manage as many LDAP servers with LAM as you wish. This + scenario is similar to the advanced scenario above. Just create one + server profile for each LDAP server. + + + + + + + + +
+ +
+ Single LDAP directory with lots of users (>10 000) + + LAM was tested to work with 10 000 users. If you have a lot + more users then you have basically two options. + + + + Divide your LDAP tree in organisational units: This is + usually the best performing option. Put your accounts in several + organisational units and setup LAM as in the advanced scenario + above. + + + + Increase memory limit: Increase the memory_limit parameter + in your php.ini. This will allow LAM to read more entries. But + this will slow down the response times of LAM. + + +
+
+
+
+ + + Managing entries in your LDAP directory + + This chapter will give you instructions how to manage the different + LDAP entries in your directory. + + Please note that not all account types are manageable with the free + LAM release. LAM Pro provides some more account types (e.g. group of + names, aliases, ...) and modules (e.g. Zarafa, custom scripts, ...) to + support additional LDAP object classes. All LAM Pro features are marked in + this manual. + + Basic page layout: + + After the login LAM will present you its main page. It consists of a + header part which is equal for all pages and the content area which covers + most the of the page. + + The header part includes the links to manage all account types (e.g. + users and groups) and open the tree view (LDAP browser). There is also the + logout link and a tools entry. + + When you login the you will see an account listing in the content + area. + + + + + + + + + + Here you can create, delete and modify accounts. Use the action + buttons at the left or double click on an entry to edit it. + + The suffix selection box allows you to list only the accounts which + are located in a subtree of your LDAP directory. + + + + + + + + + + You can change the number of shown entries per page with "Change + settings". Depending on the account type there may be additional settings. + E.g. the user list can convert group numbers to group names. + + When you select to edit an entry then LAM will show all its data on + a tabbed view. There is one tab for each functional part of the account. + You can set default values by loading an account profile. + + + + + + + + + +
+ Typical usage scenarios + + Here is a list of typical usage scenarios and what account types + and modules you need to configure. + + Address book entries: + + Account types: + + + + Users (Personal) + + + + Unix accounts: + + Account types: + + + + Users (Personal + Unix) + + + + Groups (Unix (posixGroup)) + + + + Suse users may need to use Group (Group of names + Unix + (rfc2307bisPosixGroup)) because of Suse's special LDAP schema. + + Samba 3 accounts: + + Account types: + + + + Users (Personal + User + Samba 3) + + + + Groups (Unix + Samba 3) + + + + Hosts (Account + Unix + Samba 3) + + + + Samba domains (Samba domain) + + + + Samba 4/Active Directory: + + Account types: + + + + Users (Windows) + + + + Groups (Windows) + + + + Hosts (Windows) + + + + Please note that must change the attributes that are shown in the + account lists. Otherwise, the account tables will show empty lines. See + the documentation for the Windows user/group/host modules. + + For Samba 4 with Zarafa use the following modules: + + + + Users (Windows + Zarafa (+ Zarafa contact)) + + + + Groups (Windows + Zarafa) + + + + Hosts (Windows + Zarafa) + + + + Zarafa dynamic groups (Zarafa dynamic group) + + + + Zarafa address lists (Zarafa address list) + + + + See also the Zarafa section for + additional settings (e.g. using Zarafa AD schema). + + Asterisk: + + Account types: + + + + Users (Personal + Asterisk) + + + + Asterisk extensions (Asterisk extension) + + + + Zarafa: + + Account types: + + + + Users (Personal + Unix + Zarafa (+ Zarafa contact)) + + + + Groups (Unix + Zarafa) + + + + Zarafa dynamic groups (Zarafa dynamic group) + + + + Zarafa address lists (Zarafa address list) + + + + Hosts (Device + Zarafa + IP Address) + + + + PyKota: + + Account types: + + + + Users (Personal + Unix + PyKota) + + + + Groups (Unix + PyKota) + + + + Printers (PyKota) + + + + Billing codes (PyKota) + + +
+ +
+ Users + + LAM manages various types of user accounts. This includes address + book entries, Unix, Samba, Zarafa and much more. + + + + + Account list settings: + + The user list includes two special options to change how your + users are displayed. + + + + + + + + + + Translate GID number to group name: By + default the user list can show the primary group IDs (GIDs) of your + users. There are often cases where it is more suitable to show the group + name instead. This can be done by activating this option. Please note + that LAM will execute more LDAP queries which may result in decreased + performance. + + + + + + + + + + Show account status: If you activate this + option then there will be an additional column displayed that shows if + the account is locked. You can see more details when moving the mouse + cursor over the lock icon. This function supports Unix, Samba and + PPolicy. + + + + + + + + + + + + + Quick account (un)locking: + + When you edit an user then LAM supports to quickly lock/unlock the + whole account. This includes Unix, Samba and PPolicy. LAM can also + remove group memberships if an account is locked. + + You will see the current status of all account parts in the title + area of the account. + + + + + + + + + + If you click on the lock icon then a dialog will be opened to + change these values. Depending on which parts are locked LAM will + provide options to lock/unlock account parts. + + + + + + + + + + + + + + + + + +
+ Personal + + This module is the most common basis for user accounts in LAM. + You can use it stand-alone to manage address book entries or in + combination with Unix, Samba or other modules. + + The Personal module provides support for managing various + personal data of your users including mail addresses and telephone + numbers. You can also add photos of your users (please install PHP + Imagick/ImageMagick for full file format support). If you do + not need to manage all attributes then you can deactivate them in your + server profile. + + Configuration + + Please activate the module "Personal (inetOrgPerson)" for + users. + + + + + + + + + + The module manages lots of fields. Probably, you will not need + all of them. You can hide fields in module settings. + + In advanced options you may also set fields to read-only (for + existing accounts) and define limits for photo files. + + + + + + + + + + + + + User management + + + + + + + + + + User certificates can be uploaded and downloaded. LAM will + automatically convert PEM to DER format. + + + + + + + + + + + LDAP attribute mappings + + + + + Attribute name + + Name inside LAM + + + + + + businessCategory + + Business category + + + + carLicense + + Car license + + + + cn/commonName + + Common name + + + + departmentNumber + + Department(s) + + + + description + + Description + + + + employeeNumber + + Employee number + + + + employeeType + + Employee type + + + + facsimileTelephoneNumber/fax + + Fax number + + + + givenName/gn + + First name + + + + homePhone + + Home telephone number + + + + initials + + Initials + + + + jpegPhoto + + Photo + + + + l + + Location + + + + mail/rfc822Mailbox + + Email address + + + + manager + + Manager + + + + mobile/mobileTelephoneNumber + + Mobile number + + + + organizationName/o + + Organisation + + + + physicalDeliveryOfficeName + + Office name + + + + postalAddress + + Postal address + + + + postalCode + + Postal code + + + + postOfficeBox + + Post office box + + + + registeredAddress + + Registered address + + + + roomNumber + + Room number + + + + sn/surname + + Last name + + + + st + + State + + + + street/streetAddress + + Street + + + + telephoneNumber + + Telephone number + + + + title + + Job title + + + + userCertificate + + User certificates + + + + uid/userid + + User name + + + + userPassword + + Password + + + +
+
+ +
+ Unix + + The Unix module manages Unix user accounts including group + memberships. + + There are several configuration options for this module: + + + + UID generator: LAM will suggest UID numbers for your + accounts. Please note that it may happen that there are duplicate + IDs assigned if users create accounts at the same time. Use an + overlay + like "Attribute Uniqueness" (example) if you have lots of + LAM admins creating accounts. + + + + Fixed range: LAM searches for free numbers within the + given limits. LAM always tries to use a free UID that is + greater than the existing UIDs to prevent collisions with + deleted accounts. + + + + Samba ID pool: This uses a special LDAP entry that + includes attributes that store a counter for the last used + UID/GID. Please note that this requires that you install the + Samba schema and create an LDAP entry of object class + "sambaUnixIdPool". + + + + + + Password hash type: If possible use CRYPT-SHA512 or SSHA to + protect your user's passwords. + + + + Login shells: List of valid login shells that can be + selected when editing an account. + + + + Hidden options: Some input fields can be hidden to simplify + the GUI if you do not need them. + + + + + + + + + + + + The user name is automatically filled as specified in the + configuration (default smiller for Steve Miller). Of course, the + suggested value can be changed any time. Common name is also filled + with first/last name by default. + + + + + + + + + + Group memberships can be changed when clicking on "Edit groups". + Here you can select the Unix groups and group of names + memberships. + + To enable "Group of names" please either add the groups module + "groupOfNames"/"groupOfUniqueNames" or add the account type "Group of + names". + + + + + + + + + + You can also create home directories for your users if you setup + lamdaemon. This allows you to + create the directories on the local or remote servers. + + It is also possible to check the status of the user's home + directories. If needed the directories can be created or removed at + any time. + + + + + + + + +
+ +
+ Group of names (LAM Pro) + + This module manages memberships in group of (unique) names. To + activate this feature please add the user module "Group of names + (groupOfNamesUser)" to your LAM server profile. + + Please note that this module cannot be used if the Unix module + is active. In this case group memberships may be managed with the Unix + module. + + + + + + + + + + The module automatically detects if groups are based on + "groupOfNames" or "groupOfUniqueNames" and sets the correct + attribute. + + + + + + + + +
+ +
+ Organizational roles (LAM Pro) + + LAM can manage role memberships in organizationalRole objects. To + activate this feature please add the user module "Roles + (organizationalRoleUser)" to your LAM server profile. + + + + + + + + + + Now, there will be a new tab "Roles" when you edit your user + accounts. Here you can select the role memberships. + + + + + + + + +
+ +
+ Shadow + + LAM supports the management of the LDAP substitution of + /etc/shadow. Here you can setup password policies for your Unix + accounts and also view the last password change of a user. + + + + + + + + +
+ +
+ Password self reset (LAM + Pro) + + LAM Pro allows your users to reset their passwords by answering + a security question. The reset link is displayed on the self service page. Additionally, + you can set question + answer in the admin interface. + + Please note that self service and LAM admin interface are + separated functionalities. You need to specify the list of possible + security questions in both self service profile(s) and server + profile(s). + + Schema installation + + Please install the LDAP schema as described here. + + Activate password self reset + module + + Please activate the password self reset module in your LAM Pro + server profile. + + + + + + + + + + Now select the tab "Module settings" and specify the list of + possible security questions. Only these questions will be selectable + when you later edit accounts. + + + + + + + + + + Edit users + + After everything is setup please login to LAM Pro and edit your + users. You will see a new tab called "Password self reset". Here you + can activate/remove the password self reset function for each user. + You can also change the security question and answer. + + If you set a backup email address then confirmation emails will + also be sent to this address. This is useful if the user password + grants access to the user's primary mailbox. So passwords can be + unlocked with an external email address. + + Hint: You can add the + passwordSelfReset object class to all your users with the multi edit tool. + + Samba 4 note: Due to a bug in + Samba 4 you need to add the extension, save, and then select a + question and set the answer. If you add the extension, set + question/answer and then save all together this will cause an LDAP + error and no changes will be saved. + + + + + + + + +
+ +
+ Hosts + + You can specify a list of valid host names where the user may + login. If you add the value "*" then the user may login to any host. + This can be further restricted by adding explicit deny entries which + are prefixed with "!" (e.g. "!hr_server"). + + Please note that your PAM settings need to support host + restrictions. This feature is enabled by setting pam_check_host_attr yes in your /etc/pam_ldap.conf. When it is enabled then the + account facility of pam_ldap will perform the checks and return an + error when no proper host attribute is present. Please note that users + without host attribute cannot login to such a configured + server. + + + + + + + + +
+ +
+ Samba 3 + + LAM supports full Samba 3 user management including logon hours + and terminal server options. + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ Windows (Samba 4) + + Please activate the account type "Users" in your LAM server + profile and then add the user module "Windows + (windowsUser)(*)". + + + + + + + + + + The default list attributes are for Unix and not suitable for + Windows (blank lines in account table). Please use + "#cn;#givenName;#sn;#mail" or select your own attributes to display in + the account list. + + + + + + + + + + On tab "Module settings" you can specify the possible Windows + domain names and if pre-Windows 2000 user names should be + managed. + + NIS support is deactivated by default. Enable it if + needed. + + + + + + + + + + Now you can manage your Windows users and e.g. assign groups. + You might want to set the default domain name in the profile editor. + + Attention: Password changes + require a secure connection via ldaps://. Check your LAM server + profile if password changes are refused by the server. + + + + + + + + + + + + + + + + +
+ +
+ Filesystem quota (lamdaemon) + + You can manage file system quotas with LAM. This requires to + setup lamdaemon. LAM connects to + your server via SSH and manages the disk filesystem quotas. The quotas + are stored directly on the filesystem. This is the default mechanism + to store quotas for most systems. + + Please add the module "Quota (quota)" for users to your LAM + server profile to enable this feature. + + If you store the quota information directly inside LDAP please + see the next section. + + + + + + + + +
+ +
+ Filesystem quota (LDAP) + + You can store your filesystem quotas directly in LDAP. See + Linux + DiskQuota for details since it requires quota tools that + support LDAP. You will need to install the quota LDAP schema to manage + the object class "systemQuotas". + + Please add the module "Quota (systemQuotas)" for users to your + LAM server profile to enable this feature. + + If you store the quota information on the filesystem please see + the previous section. + + + + + + + + +
+ +
+ Kolab + + This module supports to manage Kolab accounts with LAM. E.g. you + can set the user's mail quota and define invitation policies. + + Please add the Kolab user module in your LAM server profile to + activate Kolab support. + + + + + + + + + + Attention: LAM will add the object class "mailrecipient" by + default. This object class is available on 389 directory server but + may not be present on e.g. OpenLDAP. Please deactivate the following + setting (LAM server profile, module settings) if you do not use this + object class. + + + + + + + + + + Please enter an email address at the Personal page and set a + Unix password first. Both are required that Kolab accepts the + accounts. The email address ("Personal" page) must match your Kolab + domain, otherwise the account will not work. + + Attention: The mailbox server + cannot be changed after the account has been saved. Please make sure + that the value is correct. + + Kolab users should not be directly deleted with LAM. You can + mark an account for deletion which then is done by the Kolab server + itself. This makes sure that the mailbox etc. is also deleted. + + + + + + + + + + If you upgrade existing non-Kolab accounts please make sure that + the account has an Unix password. +
+ +
+ Asterisk + + LAM supports Asterisk accounts, too. See the Asterisk section for details. +
+ +
+ EDU person + + EDU person accounts are mainly used in university networks. You + can specify the principal name, nick names and much more. + + + + + + + + +
+ +
+ PyKota + + There are two LAM user modules depending if your user entries + should be built on object class "pykotaObject" or a different + structural object class (e.g. "inetOrgPerson"). For "pykotaObject" + please select "PyKota (pykotaUserStructural(*))" and "PyKota + (pykotaUser)" in all other cases. + + + + + + + + + + To display the job history please setup the job DN on tab + "Module settings": + + + + + + + + + + Now you can add the PyKota extension to your user accounts. Here + you can setup the printing options and add payments for this + user. + + For LAM Pro there are also self service fields to allow users + e.g. to view their current balance and job history. + + + + + + + + + + You may also view the payment and job history. + + + + + + + + + + + + + + + + +
+ +
+ Password policy (LAM Pro) + + OpenLDAP supports the ppolicy overlay + to manage password policies for LDAP entries. LAM Pro supports managing the policies and assigning them to + user accounts. + + Please add the account type "Password policies" to your LAM + server profile and activate the "Password policy" module for the user + type. + + + + + + + + + + You can assign any password policy which is found in the LDAP + suffix of the "Password policies" type. When you set the policy to + "default" then OpenLDAP will use the default policy as defined in your + slapd.conf file. + + Attention: Locking and + unlocking requires that you also activate the option "Lockout users" + in the assigned password policy. + Otherwise, it will have no effect. +
+ +
+ FreeRadius + + FreeRadius is a software that implements the RADIUS + authentication protocol. LAM allows you to mange several of the + FreeRadius attributes. + + To activate the FreeRadius plugin please activate the FreeRadius + user module in your server profile: + + + + + + + + + + You can disable unneeded fields on the tab "Module + settings": + + + + + + + + + + Now you will see the tab "FreeRadius" when editing users. The + extension can be (de)activated for each user. You can setup e.g. + realm, IP and expiration date. + + + + + + + + +
+ +
+ Heimdal Kerberos (LAM Pro) + + You can manage your Heimdal Kerberos accounts with LAM Pro. + Please add the user module "Kerberos (heimdalKerberos)" to activate + this feature. + + Setup password changing + + LAM Pro cannot generate the password hashes itself because + Heimdal uses a propietary format for them. Therefore, LAM Pro needs to + call e.g. kadmin to set the password. + + The wildcards @@password@@ and @@principal@@ are replaced with + password and principal name. Please use keytab authentication for this + command since it must run without any interaction. + + Example to create a keytab: ktutil -k /root/lam.keytab add -p + lam@LAM.LOCAL -e aes256-cts-hmac-sha1-96 -V 1 + + Security hint: Please secure your LAM Pro server since the new + passwords will be visible for a short term in the process list during + password change. + + + + + + + + + + User management + + You can specify the principal/user name, ticket lifetimes and + expiration dates. Additionally, you can set various account + options. + + + + + + + + +
+ +
+ MIT Kerberos (LAM Pro) + + You can manage your MIT Kerberos accounts with LAM Pro. Please + add the user module "Kerberos (mitKerberos)" to activate this feature. + If you want to manage entries based on the structural object class + "krbPrincipal" please use "Kerberos (mitKerberosStructural)" + instead. + + Setup password changing + + LAM Pro cannot generate the password hashes itself because MIT + uses a propietary format for them. Therefore, LAM Pro needs to call + kadmin/kadmin.local to set the password. + + LAM will add "-q 'cpw -pw PASSWORD PRINCIPAL'" to the command to + set the password. Please use keytab authentication for this command + since it must run without any interaction. + + Keytabs may be created with the "ktutil" application. + + Security hint: Please secure your LAM Pro server since the new + passwords will be visible for a short term in the process list during + password change. + + Example commands: + + + + /usr/sbin/kadmin -k -t /home/www-data/apache.keytab -p + realm/changepwd + + + + sudo /usr/sbin/kadmin.local + + + + + + + + + + + + User management + + You can specify the principal/user name, ticket lifetimes and + expiration dates. Additionally, you can set various account + options. + + + + + + + + +
+ +
+ Mail aliases + + This module allows to add/remove the user in mail alias + entries. + + Note: You need to activate the + mail alias type for this + module. + + To activate mail aliases for users please select the module + "Mail aliases (nisMailAliasUser)": + + + + + + + + + + On tab Module settings you can select if you want to set the + user name or email as recipient in alias entries. + + + + + + + + + + Now you will see the mail aliases tab when editing an + user. + + The red cross will only remove the user from the alias entry. If + you click the trash can button then the whole alias entry (which may + contain other users) will be deleted. + + + + + + + + + + You can add the user to existing alias entries or create + completly new ones. + + + + + + + + +
+ +
+ Qmail (LAM Pro) + + LAM Pro manages all qmail attributes for users. This includes + mail addresses, ID numbers and quota settings. + + Please note that the main mail address is managed on tab + "Personal" if this module is active. Otherwise, it will be on the + qmail tab. + + + + + + + + + + You can hide several qmail options if you do not want to manage + them with LAM. This can be done on the module settings tab of your LAM + server profile. + + + + + + + + +
+ +
+ Mail routing + + LAM supports to manage mail routing for user accounts. You can + specify a routing address, the mail server and a number of local + addresses to route. This feature can be activated by adding the "Mail + routing" module to the user account type in your server + profile. + + + + + + + + +
+ +
+ SSH keys + + You can manage your public keys for SSH in LAM if you installed + the LPK patch for + SSH. Activate the "SSH public key" module for users in the + server profile and you can add keys to your user entries. + + + + + + + + +
+ +
+ Authorized services + + You can setup PAM to check if a user is allowed to run a + specific service (e.g. sshd) by reading the LDAP attribute + "authorizedService". This way you can manage all allowed services via + LAM. + + + + To activate this PAM feature please setup your /etc/libnss-ldap.conf and set + "pam_check_service_attr" to "yes". + + + + Inside LAM you can now set the allowed services. You may also + setup default services in your account profiles. + + + + + + + + + + You can define a list of services in your LAM server profile + that is used for autocompletion. + + + + + + + + + + The autocompletion will show all values that contains the + entered text. To display the whole list you can press backspace in the + empty input field. Of course, you can also insert a service name that + is not in the list. + + + + + + + + +
+ +
+ IMAP mailboxes + + LAM may create and delete mailboxes on an IMAP server for your + user accounts. You will need an IMAP server that supports either SSL + or TLS for this feature. + + To activate the mailbox management module please add the + "Mailbox (imapAccess)" module for the type user in your LAM server + profile: + + + + + + + + + + Now configure the module on the tab "Module settings". Here you + can specify the IMAP server name, encryption options, the + authentication for the IMAP connection and the valid mail domains. LAM + can use either your LAM login password for the IMAP connection or + display a dialog where you need to enter the password. It is also + possible to store the admin password in your server profile. This is + not recommended for security reasons. + + The user name can either be a fixed name (e.g. "admin") or it + can be generated with LDAP attributes of the LAM admn user. E.g. $uid$ + will be transformed to "myUser" if you login with + "uid=myUser,ou=people,dc=example,dc=com". + + The mail domains specify for which accounts mailboxes may be + created/deleted. E.g. if you enter "lam-demo.org" then mailboxes can + be managed for "user@lam-demo.org" but not for "user@example.com". Use + "*" for any domain. + + You need to install the SSL certificate of the CA that signed + your server certificate. This is usually done by installing the + certificate in /etc/ssl/certs. Different Linux distributions may offer + different ways to do this. For Debian please copy the certificate in + "/usr/local/share/ca-certificates" and run "update-ca-certificates" as + root. + + It is not recommended to disable the validation of IMAP server + certificates. + + The prefix, user name attribute and path separator specifies how + your mailboxes are named (e.g. "user.myUser@localhost" or + "user/myUser"). Select the values depending on your IMAP server + settings. + + + + + + + + + + When you edit an user account then you will now see the tab + "Mailbox". Here you can create/delete the mailbox for this + user. + + + + + + + + +
+ +
+ Account + + This is a very simple module to manage accounts based on the + object class "account". Usually, this is used for host accounts only. + Please pay attention that users based on the "account" object class + cannot have contact information (e.g. telephone number) as with + "inetOrgPerson". + + You can enter a user/host name and a description for your + accounts. + + + + + + + + +
+
+ +
+ Groups + + + +
+ Unix + + This module is used to manage Unix group entries. This is the + default module to manage Unix groups and uses the nis.schema. Suse + users who use the rfc2307bis.schema need to use + LAM Pro. + + Configuration + + Please add the account type "Groups" and then select account + module "Unix (posixGroup)". + + + + + + + + + + GID generator: LAM will suggest GID numbers for your accounts. + Please note that it may happen that there are duplicate IDs assigned + if users create groups at the same time. Use an overlay + like "Attribute Uniqueness" (example) if you have lots of LAM + admins creating groups. + + + + Fixed range: LAM searches for free numbers within the given + limits. LAM always tries to use a free GID that is greater than + the existing GIDs to prevent collisions with deleted + groups. + + + + Samba ID pool: This uses a special LDAP entry that includes + attributes that store a counter for the last used UID/GID. Please + note that this requires that you install the Samba schema and + create an LDAP entry of object class "sambaUnixIdPool". + + + + Disable membership management: Disables group membership + management. This is useful if memberships are e.g. managed via + group of names. + + + + + + + + + + + + Group management: + + + + + + + + + + Group membership management: + + + + + + + + +
+ +
+ Unix groups with rfc2307bis schema (LAM Pro) + + Some applications (e.g. Suse Linux) use the rfc2307bis schema + for Unix accounts instead of the nis schema. In this case group + accounts are based on the object class groupOf(Unique)Names or namedObject. + The object class posixGroup is auxiliary in this case. + + LAM Pro supports these groups with a special account module: + rfc2307bisPosixGroup + + Use this module only if your system depends on the rfc2307bis + schema. The module can be selected in the LAM configuration. Instead + of using groupOfNames as basis for your groups you may also use + namedObject. + + + + + + + + + + + + + + +
+ +
+ Samba 3 + + LAM supports managing Samba 3 groups. You can set special group + types and also create Windows predefined groups like "Domain + admins". + + + + + + + + +
+ +
+ Windows (Samba 4) + + LAM can manage your Windows groups. Please enable the account + type "Groups" in your LAM server profile and then add the group module + "Windows (windowsGroup)(*)". + + + + + + + + + + The default list attributes are for Unix and not suitable for + Windows (blank lines in account table). Please use + "#cn;#member;#description" or select your own attributes to display in + the account list. + + + + + + + + + + NIS support is deactivated by default. Enable it if needed on + tab "Module settings". + + + + + + + + + + Now you can edit your groups inside LAM. You can manage the + group name, description and its type. Of course, you can also set the + group members. + + Group scopes: + + + + Global: Use this for groups with frequent changes. Global + groups are not replicated to other domains. + + + + Universal: Groups with universal scope are used to + consolidate groups that span domains. They are globally + replicated. + + + + Domain local: Groups with domain local scope can be used to + set permissions inside one domain. They are not replicated to + other domains. + + + + Group type: + + + + Security: Use this group type to control permissions. + + + + Distribution: These groups are only used for email + applications. They cannot be used to control permissions. + + + + + + + + + + +
+ +
+ Kolab + + Please activate the Kolab group module in your LAM server + profile to activate Kolab support. + + + + + + + + + + You can specify the email address and also set allowed sender + and recipient addresses. + + + + + + + + +
+ +
+ Quota + + You can manage file system quotas with LAM. This requires to + setup lamdaemon. File system quotas + are not stored inside LAM but managed directly on the specified + servers. + + + + + + + + +
+ +
+ PyKota + + There are two LAM group modules depending if your group entries + should be built on object class "pykotaObject" or a different + structural object class (e.g. "posixGroup"). For "pykotaObject" please + select "PyKota (pykotaGroupStructural(*))" and "PyKota (pykotaGroup)" + in all other cases. + + + + + + + + + + Now you can add the PyKota extension to your groups. + + + + + + + + +
+
+ +
+ Hosts + +
+ Account + + Please see the description here. +
+ +
+ Device (LAM Pro) + + The device object class allows to manage general information + about all sorts of devices (e.g. computers, network hardware, ...). + You can enter the serial number, location and a describing text. It is + also possible to specify the owner of the device. + + + + + + + + +
+ +
+ Samba 3 + + You can manage Samba 3 host entries by adding the Unix and Samba + 3 account modules. + + + + + + + + + + + + + + + + +
+ +
+ Windows (Samba 4) + + LAM can manage your Windows servers and workstations. Please + enable the account type "Hosts" in your LAM server profile and then + add the host module "Windows (windowsHost)(*)". + + + + + + + + + + The default list attributes are for Unix and not suitable for + Windows (blank lines in account table). Please use + "#cn;#description;#location" or select your own attributes to display + in the account list. + + + + + + + + + + Now you will see you computer accounts inside LAM. You can set + e.g. the server's description and location information. + + + + + + + + +
+ +
+ IP addresses (LAM Pro) + + You can manage the IP addresses of host accounts with the ipHost + module. It manages the following information: + + + + IP addresses (IPv4/IPv6) + + + + location of the host + + + + manager: the person who is responsible for the host + + + + You can activate this extension by adding the module ipHost to + the list of active host modules. + + + + + + + + +
+ +
+ MAC addresses + + Hosts can have an unlimited number of MAC addresses. To enable + this feature just add the "MAC address" module to the host account + type. + + + + + + + + +
+ +
+ Puppet + + LAM supports to manage your Puppet configuration. You can + edit all attributes like environment, classes, variables and parent + node. + + Configuration + + To activate this feature please edit your LAM server profile and + add the host module "Puppet (puppetClient)" on tab "Modules". This + will add the Puppet tab to your host pages. + + + + + + + + + + On tab "Module settings" in your LAM server profile you may also + setup some common environment names. LAM will use them to provide + autocompletion hints when editing the environment for a node. + + + + + + + + + + Editing nodes + + When you edit a host entry then you will see the tab "Puppet". + Here you can add/remove the Puppet extension and edit all + attributes. + + + + + + + + +
+
+ +
+ Samba 3 domains + + Samba 3 stores information about its domain settings inside LDAP. + This includes the domain name, its SID and some policies. You can manage + all these attributes with LAM. + + Please activate the account type "Samba domains" in your LAM + server profile. Please notice that Samba by default uses the LDAP root + for domain objects (e.g. dc=example,dc=com). + + + + + + + + + + This will add a new tab to LAM where you can manage domain + information. + + The domain name, SID and RID base can only be specified for new + domains and are not changeable via LAM at a later time. You may setup + several password policies for your Samba domains and also some RID + options that influence the creation of SIDs for + users/groups/hosts. + + + + + + + + +
+ +
+ Group of (unique) names (LAM Pro) + + These classes can be used to represent group relations. Since they + allow DNs as members you can also use them to represent nested + groups. + + Configuration: + + Activate the account type "Group of names" in your LAM server + profile to use these account modules. Alternatively, you can use the + account type "Groups". + + + + + + + + + + + + + + + + + + Then add the module "Group of names (groupOfNames)" or "Group of + unique names (groupOfUniqueNames)". + + + + + + + + + + On the module settings tab you set some options like the display + format for members/owners and if fields like description should not be + displayed. + + + + + + + + + + Group management: + + Group of (unique) names have four basic attributes: + + + + Name: a unique name for the group + + + + Description: optional description + + + + Owner: the account which owns this group (optional) + + + + Members: the members of the group (at least one is + required) + + + + You can add any accounts as members. This includes other groups + which leads to nested groups. + + + + + + + + +
+ +
+ Organizational roles (LAM Pro) + + This module manages roles via the organizationalRole object class. + There is also a user + module to manage memberships on the user edit page. + + Configuration: + + Activate the account type "Groups" in your LAM server profile to + use this account module. Alternatively, you can use the account type + "Group of names". + + + + + + + + + + + + + + + + + + Then add the module "Role (organizationalRole)". + + + + + + + + + + On the module settings tab you set some options like the display + format for members and if description should not be displayed. + + + + + + + + + + Role management: + + You can add any accounts as members. This includes other roles + which leads to nested roles (needs to be supported by LDAP client + applications). + + + + + + + + +
+ +
+ Asterisk + + LAM includes large support for Asterisk. You can add Asterisk + extensions (including voicemail) to your users and also manage Asterisk + extensions. + + The Asterisk support for users can be added by selecting the + Asterisk and Asterisk voicemail modules for users in your LAM server + profile. This will add the following tabs to your user accounts. + + + + + + + + + + The Asterisk module allows to edit a large amount of attributes. + Therefore, you can hide unused fields. Please edit you server profile + (Module settings) to do so. + + + + + + + + + + Of course, the voicemail part of Asterisk is also + supported. + + + + + + + + + + If you also want to manage Asterisk extensions then simply add the + account type "Asterisk extensions" and its module to your server + profile. + + LAM groups your Asterisk extension entries by extension name and + account context. If you edit an extension then you will see the Asterisk + entries as rules. LAM manages that all rule entries have the same owners + and assigns the priorities. + + + + + + + + +
+ +
+ Zarafa (LAM Pro) + + Zarafa is an OpenSource collaboration software. LAM Pro provides + support to manage Zarafa server entries, users and groups. It covers all + settings for these types including resource and quota settings. + + LAM Pro is an official Zarafa Certified Integration. + + + + + + + +
+ Configuration + + To enable Zarafa support in LAM Pro please activate the Zarafa + modules for the Users, Groups and Hosts account types in you server + profile: + + + + + + + + + + Attention: LAM Pro uses the + Zarafa OpenLDAP schema as default. This schema fits for OpenLDAP, + OpenDJ, Apache Directory server and other common LDAP servers. If you + run Samba 4 or Active Directory then you need to switch the schema to + "Active Directory" on the module settings tab: + + + + + + + + + + You can configure which parts of the Zarafa user options should + be enabled. E.g. if you do not want to manage quotas per user then you + can hide these options on the tab "Module settings". + + + + + "Send as" attribute: Here you + can specify how "Send as" privileges should be managed. LAM supports + "uid" and "dn". + + If you select "uid" the LAM will store user names in the + zarafaSendAsPrivilege attribute. This way you are restricted to + specify user accounts as "Send as" allowed. + + You can also set this option to "dn" and LAM will store DNs in + the zarafaSendAsPrivilege attribute. In this case you may specify + users and groups as "Send as" allowed. + + + + + Examples for your Zarafa ldap.cfg: + + "Send as" attribute: dn + + ldap_user_sendas_attribute_type = dn + + + + + "Send as" attribute: uid + + ldap_user_sendas_attribute_type = text + + ldap_user_sendas_relation_attribute = uid + + +Attention: If the Active Directory schema is used then LAM will always use dn and ignore this setting. + + + + + Features: Zarafa 7 allows to + enable IMAP/POP3 for each user. Please hide the option "Features" if + you use Zarafa 6.x. + + + + + + + + + +
+ Users + + This is an example of the user edit page with all possible + settings. This includes email settings, quotas and some options + (e.g. hide from address book). You can also set the resource type + and capacity for meeting rooms and equipment. The Zarafa extension + can be added and removed at any time for every user. + + Please note that the option "Features" requires Zarafa 7. + Please hide this option in the LAM server profile if you run Zarafa + 6.x. + + + + + + + + +
+ +
+ Contacts + + LAM Pro can manage your Zarafa contact entries. You can set + the email aliases and "send as" privileges. Additionally, accounts + may be hidden in the address book or disabled. + + Please note that you can either use the Zarafa user module or + Zarafa contact. LAM Pro will disable the other tab when enabling one + of them. + + + + + + + + +
+ +
+ Groups + + This is the edit page for groups. You can enter an email + address and additional aliases for your groups. It is also possible + to specify options (e.g. hide from address book). The extension can + be added/removed dynamically. + + Please note that the option "Send-as privileges" requires the + Zarafa 7.0.3 schema. Please hide this option in the LAM server + profile if you run Zarafa < 7.0.3. + + + + + + + + +
+ +
+ Servers + + The Zarafa extension for host accounts allows to set the + connection ports and file path. You can add/remove the extension at + any time. + + Setting the public store option is only possible for new host + entries. + + Please note that the proxy URL option requires the Zarafa 7.1 + schema. Please hide this option in your LAM server profile if you + use an older version. + + + + + + + + +
+ +
+ Address lists + + Zarafa allows to store address lists in LDAP. You need to + define a search base and LDAP filter for each address list. E.g. + entering "ou=people,dc=company,dc=com" as base and "uid=*" will + select all users that are stored in + "ou=people,dc=company,dc=com". + + You can also hide your lists from the address book or + temporarily disable them. + + + + + + + + +
+ +
+ Dynamic groups + + Zarafa allows to define dynamic groups in LDAP. You need to + define a search base and LDAP filter for each group. E.g. entering + "ou=people,dc=company,dc=com" as base and "uid=*" will select all + users that are stored in "ou=people,dc=company,dc=com". + + Dynamic groups may have an email address and multiple email + alias addresses. + + You can also hide your dynamic groups from the address book or + temporarily disable them. + + + + + + + + +
+
+
+ +
+ Kolab shared folders + + Please add the account type "Kolab shared folders" in your LAM + server profile and set the correct LDAP suffix. + + + + + + + + + + + + + + + + + + + + + Then add the "Kolab shared folder" module on tab "Modules". + + + + + + + + + + Now you can start to add shared folders inside LAM. + + + + + + + + +
+ +
+ DHCP + + You can mange your DHCP server with LAM. It supports to manage + subnets, fixed IP entries, IP ranges and DDNS. + + Configuration + + The DHCP management can be activated by adding the account type + DHCP to your server profile. Please also add the DHCP modules. + + LAM requires that you use an LDAP entry with the object class + "dhcpService" or "dhcpServer" as suffix for this account type. If the + "dhcpServer" entry points to a "dhcpService" entry via "dhcpServiceDN" + then you need to use the DN of the "dhcpService" entry as LDAP suffix + for DHCP. + + + + + Add account type: + + + + + + + + + + Set suffix: + + + + + + + + + + Add modules: + + + + + + + + + + Example server + entry: + + dn: + cn=server,ou=dhcp,dc=ldap-account-manager,dc=org + + objectclass: dhcpServer + + objectclass: dhcpOptions + + objectclass: top + + cn: server + + dhcpcomments: My DHCP server + + dhcpoption: domain-name + "ldap-account-manager.org" + + dhcpoption: domain-name-servers 192.168.1.1 + + dhcpoption: routers 192.168.1.1 + + dhcpoption: netbios-name-servers 192.168.1.1 + + dhcpoption: subnet-mask 255.255.255.0 + + dhcpoption: netbios-node-type 8 + + dhcpstatements: default-lease-time 3600 + + dhcpstatements: max-lease-time 7200 + + dhcpstatements: include "mykey" + + dhcpstatements: ddns-update-style interim + + dhcpstatements: update-static-leases true + + dhcpstatements: ignore client-updates + + + + + Example settings for + dhcpd.conf: + + ddns-update-style none; + + deny unknown-clients; + + ldap-server "server"; + + ldap-dhcp-server-cn "server"; + + ldap-port 389; + + ldap-username + "uid=dhcp,ou=people,dc=ldap-account-manager,dc=org"; + + ldap-password "{SSHA}XXXXXXXXXXXX"; + + ldap-base-dn + "ou=dhcp,dc=ldap-account-manager,dc=org"; + + ldap-method dynamic; + + ldap-debug-file + "/var/log/dhcp-ldap-startup.log"; + + + + + + + slapd.conf changes: + + include /etc/ldap/schema/dhcp.schema + + index dhcpHWAddress eq + + index dhcpClassData eq +Run slapindex to rebuild the index. + + + + You can manage the settings of your DHCP service/server + entry: + + + + + + + + + + You can easily create new subnet entries. + + + + + + + + + + It is also possible to specify a list of fixed IPs. + + + + + + + + + + IP ranges may be specified. + + If you use failover pools for your IP ranges please use the pool + options on the bottom. Here you can add DHCP pools (object class + "dhcpPool") and specify the failover peer. + + + + + + + + + + If you activated DDNS in the server entry then you may also + specify the DDNS settings for this subnet. + + + + + + + + +
+ +
+ Bind DLZ (LAM Pro) + + Bind DLZ is + an extension to the DNS server Bind that allows to store + DNS entries inside LDAP. Please install the Bind DLZ schema file on your + LDAP server. It is part of the DLZ patch. + + Configuration + + First, you need to add the Bind DNS account type and the Bind DLZ + module: + + + + + + + + + + Please set the LDAP suffix either to an existing DNS zone + (dlzZone) or an organizational unit that should include your DNS + zones. + + + + + + + + + + + + + + + + + + + + + Automatic PTR management + + LAM can automatically create/delete PTR entries for the entered + IPv4/6 records. You can enable this feature on the module settings + tab. + + PTR records will get the same TTL as IP records. Please note that + you need to have matching reverse zones (".in-addr.arpa"/".ip6.arpa") + under the same suffix as your other DNS entries. + + + + + + + + + + Zone management + + If you do not yet have a DNS zone then LAM can create one for you. + In list view switch the suffix to an organizational unit DN. Now you + will see a button "New zone". + + This will create the zone container entry and a default DNS entry + "@" for authoritative information. Now switch the suffix to your new + zone and start adding DNS entries. + + + + + + + + + + DNS entries + + LAM supports the following DNS record types: + + + + SOA: authoritative information + + + + NS: name servers + + + + A/AAAA: IP addresses + + + + PTR: reverse DNS entries + + + + CNAME: alias names + + + + MX: mail servers + + + + TXT: text records + + + + SRV: service entries + + + + + + + Authoritative (SOA) and name server (NS) + records + + Here you can manage general information about the zone like + timeouts and name servers. Please note that name servers must be + inserted in a special format (dot at the end). + + + + + + + + + + + + + IP addresses (A/AAAA) + + LAM will automatically set the correct type (A/AAAA) depending if + you enter an IPv4 or IPv6 address. + + + + + + + + + + + + + Reverse DNS entries + + Reverse DNS entries are important when you need to find the DNS + name that is associated with a given IP address. Reverse DNS entries are + stored in a separate DNS zone. + + + + + + + + + + + + + Alias names (CNAME) + + Sometimes a DNS entry should simply point to a different DNS entry + (e.g. for migrations). This can be done by adding an alias name. + + + + + + + + + + + + + Mail servers (MX) + + The mail server entries define where mails to a domain should be + delivered. The server with the lowest preference has the highest + priority. + + + + + + + + + + + + + Text records (TXT) + + Text records can be added to store a description or other data + (e.g. SPF information). + + + + + + + + + + + + + Services (SRV) + + Service records can be used to specify which servers provide + common services such as LDAP. Please note that the host name must be + _SERVICE._PROTOCOL (e.g. _ldap._tcp). + + + + + Priority: The priority of the target host, lower value means more + preferred. + + Weight: A relative weight for records with the same priority. E.g. + weights 20 and 80 for a service will result in 20% queries to the one + server and 80% to the other. + + Port: The port number that is used for your service. + + Server: DNS name where service can be reached (with dot at the + end). + + + + + + + + + + + + + File upload + + You can upload complete DNS zones via LAM's file upload. Here is + an example for a zone file and the corresponding CSV file. + + + Zone file + + + + + @ + + IN + + SOA + + ns1.example.com admin.ns1.example.com (1 360000 3600 + 3600000 370000) + + + + + + IN + + NS + + ns1.example.com. + + + + + + IN + + NS + + ns2.example.com. + + + + + + IN + + MX + + 10 mail1.example.com + + + + + + IN + + MX + + 20 mail2.example.com + + + + foo + + IN + + A + + 123.123.123.100 + + + + foo2 + + IN + + CNAME + + foo.example.com + + + + bar + + IN + + A + + 123.123.123.101 + + + + + + IN + + AAAA + + 1:2:3:4:5 + + + +
+ + Please check that you have an existing zone entry that can be used + for the file upload. See above to create a new zone. + + Hint: If you use the function above to create a new zone then + please skip the "@" entry in the CSV file below. LAM creates this entry + with sample data. + + In this example we assume that the following zone extry + exists: + + dn: dlzZoneName=example.com,ou=bind,dc=example,dc=com +dlzzonename: example.com +objectclass: dlzZone +objectclass: top + + + + Here is the corresponding CSV file: bindUpload.csv +
+ +
+ Aliases (LAM Pro) + + Some applications use the object class "alias" to link LDAP + entries to other parts of the LDAP tree. Activate the account type + "Aliases" in your LAM server profile to use this account type. + + Currently, only user accounts can be aliased with the "uidObject" + object class. + + + + + + + + + + + + + + + + +
+ +
+ Mail aliases + + You can manage mail aliases (e.g. for NIS) inside LAM. This can be + used to replace local /etc/aliases files with LDAP. + + Note: Use the mail alias user + module to manage mail aliases on user pages. + + All accounts of this type are based on the "nisMailAlias" object + class and may have "cn" and "rfc822MailMember" attributes. To activate + this type please add "Mail aliases" in your LAM server profile: + + + + + + + + + + You need to select the Mail aliases module on the next tab. + + + + + + + + + + The mail aliases will then appear as separate tab inside LAM. You + may then manage the aliases with their names and recipient + addresses. + + There are mail/user icons that allow to select a mail address/user + name from the existing users. + + + + + + + + +
+ +
+ NIS net groups + + LAM supports to define NIS netgroups. You can use them e.g. to + restrict SSH access to your machines. + + Add the NIS net group account type and its module to your server + profile. Then you can manage net groups in LAM. Net groups may contain + other net groups as child groups. You can either insert the host/user + names manually or print the search buttons next to the input fields to + find existing entries in your directory. + + + + + + + + +
+ +
+ NIS objects (LAM Pro) + + You can manage NIS objects with LAM Pro. This allows you define + network mount points in LDAP. + + Add the NIS objects type to your LAM configuration and then the + NIS objects module. This will add the NIS objects tab to LAM. + + + + + + + + +
+ +
+ Automount objects (LAM Pro) + + LAM Pro allows you to manage automount entries. Please activate + the account type "Automount objects" in your LAM Pro server + profile. + + + + + + + + + + Then add the correct automount module. Usually, this is "Automount + entry (automount)". If you use Suse Linux with RFC2307bis schema please + select "Automount entry (rfc2307bisAutomount)". + + + + + + + + + + This will add a new tab to LAM Pro's main screen which includes a + list of all automount entries. Here you can easily create new + entries. + + + + + + + + + + Please see the following external HowTos for more information on + automounting and LDAP: + + + + AutofsLDAP + + + + Automount + über LDAP (German) + + +
+ +
+ Oracle databases (LAM Pro) + + Oracle allows to manage connection data that is stored in + tnsnames.ora to be stored in an LDAP directory. + + Initial setup + + LDAP server setup: + + You will need to install the correct Oracle LDAP schema files on + your LDAP server. If you run no Oracle LDAP server then you can get them + (oidbase.schema, oidnet.schema, oidrdbms.schema, alias.schema) e.g. from + here. + + Next you need to create the root entry for Oracle. It should look + like this: + + dn: cn=OracleContext,dc=example,dc=com +objectclass: orclContext +cn: OracleContext + + You can create it with LAM's tree view. Please note that "cn" must + be set to "OracleContext". + + + + + LAM setup: + + Edit your LAM server profile and add the Oracle account + type: + + + + + + + + + + In case you manage a single Oracle context just enter the + cn=OracleContext entry as LDAP suffix. If you manage multiple Oracle + context entries then set the LDAP suffix to a parent entry of + them. + + + + + + + + + + Next, add the Oracle module: + + + + + + + + + + Now you can login to LAM and start to add database + entries. + + + Managing database entries + + Each database has a service name, the connection string and an + optional description. + + + + + + + + + + Database client setup for + LDAP + + You need to activate the LDAP adapter to make the database tools + reading LDAP. Edit network/admin/sqlnet.ora like this: + + NAMES.DIRECTORY_PATH= (TNSNAMES, LDAP) + + Then add a file called ldap.ora next to your sqlnet.ora and set + the LDAP server and DN suffix where cn=OracleContext is stored: + + DIRECTORY_SERVERS= (ldap.example.com:389:636) +DEFAULT_ADMIN_CONTEXT = "ou=ctx1,ou=oracle,o=test,c=de" +DIRECTORY_SERVER_TYPE = OID + + This will allow e.g. tnsping to get the connection data from + LDAP: + + [oracle@oracle bin]$ tnsping mydb + +TNS Ping Utility for Linux: Version 12.1.0.1.0 - Production on 09-FEB-2014 18:06:54 + +Copyright (c) 1997, 2013, Oracle. All rights reserved. + +Used parameter files: +/home/oracle/app/oracle/product/12.1.0/dbhome_1/network/admin/sqlnet.ora + +Used LDAP adapter to resolve the alias +Attempting to contact (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=mydb.example.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl))) +OK (10 msec) +
+ +
+ Password policies (LAM Pro) + + OpenLDAP supports the ppolicy overlay + to manage password policies for LDAP entries. This allows you to set + password policies which are independent from your applications. The + policies are managed internally by the LDAP server. + + You can manage these policies with LAM Pro with the account type + "Password policies". + + + + + + + + + + You will need to add the ppolicy schema to your OpenLDAP + configuration and activate the ppolicy overlay + module in slapd.conf to use this feature. +
+ +
+ PyKota printers + + Please add the account type "Printers (PyKota printers)" on tab + "Account types" in your server profile and setup the LDAP suffix where + printers are stored. + + + + + + + + + + + + + + + + + + Then add the PyKota printer module on tab "Account + modules". + + + + + + + + + + Next you can start managing printers inside LAM. Here you can + setup the costs for a print job. LAM will also show if the printer is + member of any printer groups. + + + + + + + + + + You can also setup printer groups. Just add some members to your + new group. + + + + + + + + +
+ +
+ PyKota billing codes + + Please add the account type "Billing codes" on tab "Account types" + in your server profile and setup the LDAP suffix where billing codes are + stored. + + + + + + + + + + + + + + + + + + Then add the PyKota billing code module on tab "Account + modules". + + + + + + + + + + Now login to LAM and you will see the billing code tab where you + can manage your entries. If jobs were printed with a billing code then + you will also see the balance and page count. + + + + + + + + +
+ +
+ Custom fields (LAM Pro) + + This module allows you to manage LDAP attributes that are not + covered by the other LAM modules (e.g. if you use custom LDAP schemas). + You can fully define how your input fields look like: + + + + Label + + + + LDAP attribute name + + + + Unique name for field + + + + Help text + + + + Read-only display + + + + Field type: text, password, text area, checkbox, radio + buttons, select list, file upload + + + + Validation via regular expression + + + + Error message if validation fails + + + + Limitations: + + Custom fields cannot manage + + + + structural object classes + + + + attributes that require validation rules across multiple + attributes or cannot be described by a simple regular + expression + + + + Activating the custom fields + module: + + You may specify custom fields for all of your account types. + Please enter tab "Modules" in your server profile. Now activate the + "Custom fields (customFields)" module for all needed account + types. + + + + + + + + + + Setting label and icon: + + You may set the label that is displayed e.g. on the tab when + editing an account. It is also possible to specify an icon (must be a + valid URL like "/images/icon.png" or "http://server/images/icon.png"). + The icon size should be 32x32 pixels. + + LAM will display a default icon and "Custom fields" as label if + you do not enter any values. + + You may also specify how LAM displays cutom fields when there are + multiple field groups. The default is accordion view where you can + switch field groups by clicking on the title. You may also deactivate + this mode. Then all field groups are displayed one below the + other. + + + + + + + + + + Defining groups: + + All input fields are devided into groups. A group may contain one + or more object classes and allows you to add/remove a certain set of + input fields. + + E.g. you may define two groups - "My application A" and "My + application B" - that manage different LDAP attributes and object + classes. This way you will be able to control both attribute sets + independently. + + To create a group please edit your server profile and switch to + tab "Module settings". You will see the section "Custom fields" which + allows you to add new groups. Now select your account type (e.g. Users) + and specify an alias for your group. This alias will be printed as group + header when you later edit an account in the admin interface. + + + + + + + + + + After you created your new group you can setup the managed object + classes. If you specify any object classes then you will later be able + to add/remove a complete set of attributes including their object + classes. + + Skipping the object classes field is only useful if you want to + manage some attributes that are not yet supported by LAM but there is + already a LAM module that manages the object class. + + + + + + + + + + The group may look like when you edit a user. + + + + + + + + + + + + + + + + + + Adding fields: + + Now you can add a new field that manages an LDAP attribute. Simply + fill the fields and press on "Add". + + Please note that the field name cannot be changed later. It is the + unique ID for this field. + + + + + + + + + + Examples for fields and their representation: + + Text field: + + Text fields allow to specify a validation + expression and error message. + + You can also enable auto-completion. In this case LAM will search + all accounts for the given attribute and provide auto-completion hints + when the user edits this field. This should only be used if there is a + limited number of different values for this attribute. + + + + + + + + + + Presentation: + + + + + + + + + + Password field: + + You can also manage custom password fields. LAM Pro will display + two fields where the user must enter the same password. You can hash the + password if needed. + + + + + + + + + + Presentation: + + + + + + + + + + Text area: + + This adds a multi-line field. The options are similar to text + fields. Additionally, you can set the size with the number of columns + and rows. + + Please note that the validation + expression should be set to multi-line. This is done by adding + "m" at the end. + + + + + + + + + + Presentation: + + + + + + + + + + Checkbox: + + Sometimes you may want to allow only yes/no values for your LDAP + attributes. This can be represented by a checkbox. You can specify the + values for checked and unchecked. The default value is set if the LDAP + attribute has no value. + + + + + + + + + + Presentation: + + + + + + + + + + Radio buttons: + + This displays a list of radio buttons where the user can select + one value. + + You can specify a mapping of LDAP attribute values and their + display (label) on the Self Service page. To add more mapping fields + please press "Add more mapping fields". + + + + + + + + + + Presentation: + + + + + + + + + + Select list: + + Select lists allow the user to select a value in a large list of + options. The definition of the possible values and their display is + similar to radio buttons. + + You can also allow multiple values. + + + + + + + + + + Presentation: + + + + + + + + + + + + + + + + + + Validation expressions: + + The validation expressions follow the standard of Perl regular + expressions. They start and end with a "/". The beginning of a + line is specified by "^" and the end by "$". + + Examples: + + /^[a-z0-9]+$/ allows small letters and numbers. The value must not + be empty ("+"). + + /^[a-z0-9]+$/i allows small and capital letters ("i" at the end + means ignore case) and numbers. The value must not be empty + ("+"). + + Special characters that must be escaped with "\": "\", ".", "(", + ")" + + E.g. /^[a-z0-9\.]$/i + + + + + File upload: + + This is used for binary data. You can restrict uploaded data to a + given file extension and set the maximum file size. + + + + + + + + + + Presentation: + + The uploaded data may also be downloaded via LAM. + + + + + + + + +
+ +
+ Custom scripts (LAM Pro) + + LAM Pro allows you to execute scripts whenever an account is + created, modified or deleted. This can be useful to automate processes + which needed manual work afterwards (e.g. sending your user a welcome + mail or register a mailbox). Additionally, you can specify manual scipts + that can be executed from within LAM Pro. + + To activate this feature please add the "Custom scripts" module to + all needed account types on the configuration pages. + + You can specify multiple scripts for each action type (e.g. + modify) and account type (e.g. user). The scripts need to be located on + the filesystem of your webserver and will be executed in its user + environment. E.g. if you webserver runs as user www-data with the group + www-data then the custom scripts will be run under this user with his + rights. The output of the scripts will be shown in LAM. + + You can specify the scripts on the LAM configuration pages. + + + + + + + + + + Syntax: + + Please enter one script per line. Each line has the following + format: <account type> <action> <script> + + E.g.: user preModify /usr/bin/myCustomScript -u $uid$ + + Account types: + + You can setup scripts for all available account types (e.g. user, + group, host, ...). Please see the help on the configuration page about + your current active account types. + + Actions: + + + Action types + + + + + Action name + + Description + + + + preCreate + + executed before creating a new account (cancels operation + if a script returns an exit code > 0, not available for file + upload) + + + + postCreate + + executed after creating a new account (does not run if preCreate or LDAP operations + fail) + + + + preModify + + executed before an account is modified (cancels operation + if a script returns an exit code > 0) + + + + postModify + + executed after an account was modified (does not run if preModify or LDAP operations + fail) + + + + preDelete + + executed before an account is modified (cancels operation + if a script returns an exit code > 0) + + + + postDelete + + executed after an account was modified (does not run if preDelete or LDAP operations + fail) + + + + manual + + can be run manually on account page + + + +
+ + Script: + + You can execute any script which is located on the filesystem of + your webserver. The path may be absolute or relative to the + PATH-variable of the environment of your webserver process. It is also + possible to add commandline arguments to your scripts. Additionally, LAM + will resolve wildcards to LDAP attributes. If your script includes an + wildcard in the format $ATTRIBUTE$ then LAM will replace it with the + attribute value of the current LDAP entry. The values of multi-value + attributes are separated by commas. E.g. if you create an account with + the attribute "uid" and value "steve" then LAM will resolve "$uid$" to + "steve". + + Please note that manual scripts can only use the current LDAP + attribute values of the account. Any modifications done that are not + saved will not be available. Manual scripts are also not available for + new accounts that are not yet saved to LDAP. + + You can switch LAM's logging to debug mode if you are unsure which + attributes with which values are available. + + The following special wildcards are available for automatical + scripts: + + + + $INFO.userPasswordClearText$: + cleartext password when Unix/Windows password is changed (e.g. + useful for external password synchronisation) for new/modified + accounts + + + + $INFO.userPasswordStatusChange$: provides + additional information if the Unix password locking status was + changed, possible values: locked, unlocked, unchanged + + + + $INFO.passwordSelfResetAnswerClearText$: + cleartext answer to security question + + + + $NEW.<attribute>$: the + value of a new attribute (e.g. $NEW.telephoneNumber$) for modified + accounts + + + + $DEL.<attribute>$: the + value of a deleted attribute (e.g. $DEL.telephoneNumber$) for + modified accounts + + + + $MOD.<attribute>$: the + new value of a modified attribute (e.g. $MOD.telephoneNumber$) for + modified accounts + + + + $ORIG.<attribute>$: the + original value of an attribute (e.g. $ORIG.telephoneNumber$) for + modified accounts + + + + Output may contain HTML: If your + scripts generate HTML output then activate this option. + + Hide command in messages: You may + want to prevent that your users see the executed commands. In this case + activating this option will only show the command output but not the + command itself. + + + + You can see a preview of the commands which will be automatically + executed on the "Custom scripts" tab. Here you can also run the manual + scripts. + + + + + + + + +
+ +
+ Sudo roles (LAM Pro) + + You can manage your sudo roles in LDAP if you have installed the + sudo-ldap package or compiled sudo with LDAP + support. + + To activate sudo management in LAM Pro edit your server profile + and add the type "Sudo roles". + + + + + + + + + + + + + + + + + + Now you can create sudo commands. + + + + + + + + + + The sudo roles in LDAP work similar to those in /etc/sudoers. You + can specify who may run which commands as which user. It is also + possible to specify options like NOPASSWD. +
+ +
+ General information + + This module is available for all account types. It shows some + internal information about the LDAP entries like the creation time and + who modified the entry. + + If you use the "memberOf" overlay in OpenLDAP then this will also + show group memberships done by the overlay. + + + + + + + + +
+ +
+ Tree view (LDAP browser) + + The tree view provides a raw view on your LDAP directory. This + feature is for people who are experienced with LDAP and need special + functionality which the LAM account modules not provide. E.g. if you + want to add a special object class to an account or edit attributes + ignoring LAM's syntax checks. + + + + + + + + + + There are also some special functions available: + + Export: This allows you to export + entries to a file (e.g. LDIF or CSV format). + + Show internal attributes: Shows + internal attributes of the current entry. This includes information + about the creator and creation time of the entry. +
+
+ + + Tools + + + +
+ Profile editor + + The account profiles are templates for your accounts. Here you can + specify default values which can then be loaded when you create + accounts. You may also load a template for an existing account to reset + it to default values. When you create a new account then LAM will always + load the profile named "default". This + account profile can include default values for all your accounts. + + + + + + + + + + You can enter the LDAP suffix, RDN identifier and various other + attributes depending on account type and activated modules. + + + + + + + + + + Import/export: + + Profiles can be exported to and imported from other server + profiles. + + + + + + + + + + + + + + + + + + There is a special export target called "*Global templates". All + profiles exported here will be copied to all other server profiles + (incl. new ones). But existing profiles with the same name are not + overwritten. So a profile in global templates is treated as default + profile for all server profiles. + + Use this if you would like to setup default profiles that are + valid for all server profiles. + + + + + + + + +
+ +
+ File upload + + When you need to create lots of accounts then you can use LAM's + file upload to create them. LAM will read a CSV formatted file and + create the related LDAP entries. Please check the data in you CSV file + carefully. LAM will do less checks for the file upload than for single + account creation. + + At the first page please select the account type and what + extensions should be activated. + + + + + + + + + + The next page shows all available options for the file upload. You + will also find a sample CSV file which can be used as template for your + CSV file. All red options are required columns in the file. You need to + specify a value for each account. + + When you upload the CSV file then LAM first does some checks on + this file. This includes syntax checks and if all required data was + entered. No changes in the LDAP directory are done at this time. + + If the checks were successful then LAM will ask again if you want + to create the accounts. You will also have the chance to check the + upload by viewing the changes in LDIF format. + + + + + + + + +
+ +
+ Multi edit + + This tool allows you to modify a large list of LDAP entries in + batch mode. You can add new attributes/object classes, remove attributes + and set attributes to a specific value. + + At the beginning, you need to specify where the entries are stored + that should be changed. You can select an account suffix, the tree + suffix or enter your own DN by selecting "Other". + + Next, enter an additional LDAP filter to limit the entries that + should be changed. E.g. use "(objectclass=inetOrgPerson)" to filter for + users. You may also enter e.g. "(!(objectClass=passwordSelfReset))" to + match all accounts that do not yet have the password self reset + feature. + + + + + Now, it is time to define the changes that should be done. The + following operations are possible: + + + + Add: Adds an attribute value if not yet existing. Please do + not use for single-value attributes that already have a + value. + + + + Modify: Sets an attribute to the given value. If the attribute + does not yet exist then it is added. If the attribute has multiple + values then all other values are removed. + + + + Delete: Deletes the specified value from this attribute. If + you leave the value field blank then all attribute values are + removed. + + + + Please note that all actions are run as separate LDAP commands. + You cannot add an object class and a required attribute at the same + time. + + + + + + + + + + Dry run + + You should always start with a dry run. It will not do any changes + to your LDAP directory but print out all modifications that will be + done. You will also be able to download the changes in LDIF format to + use with ldapmodify. This is useful if you want to adjust some actions + manually. + + + + + + + + + + Apply changes + + This will run the actions against your LDAP directory. You will + see which accounts are edited in the progress area and also if any + errors occured. + + + + + + + + +
+ +
+ OU editor + + This is a simple editor to add/delete organisational units in your + LDAP tree. This way you can structure the accounts. + + + + + + + + +
+ +
+ PDF editor + + All accounts in LAM may be exported as PDF files. You can specify + the page structure and displayed information by editing the PDF + profiles. + + + + + + + + + + When you export accounts to PDF then each account will get its own + page inside the PDF. There is a headline on each page where you can show + a page title. You may also add a logo to each page. To add more logos + please use the logo management on the PDF editor main page. + + + + + + + + + + The main part is structured into sections of information. Each + section has a title. This can either be static text or the value of an + attribute. You may also insert a static text block as section. Sections + can be moved by using the arrows next to the section title. + + Each section can contain multiple fields which usually represent + LDAP attributes. You can simply add new fields by selecting the field + name and its position. Then use the arrows to move the field inside the + section. + + + + + Import/export: + + PDF structures can be exported to and imported from other server + profiles. + + + + + + + + + + + + + + + + + + There is a special export target called "*Global templates". All + PDF structures exported here will be copied to all other server profiles + (incl. new ones). But existing PDF structures with the same name are not + overwritten. So a PDF structure in global templates is treated as + default structure for all server profiles. + + Use this if you would like to setup default PDF structures that + are valid for all server profiles. + + + + + + + + + + Logo management: + + You can upload image files to put a custom logo on the PDF files. + The image file name must end with .png or .jpg and the size must not + exceed 2000x300px. + + + + + + + + +
+ +
+ Schema browser + + Here you browse the schema of your LDAP server. You can view what + object classes, attributes, syntaxes and matching rules are available. + This is useful if you need to check if a certain object class is + available. + + + + + + + + +
+ +
+ Server information + + This shows information and statistics about your LDAP server. This + includes the suffixes, used overlays, connection data and operation + statistics. You will need "cn=monitor" setup to see all details. Some + data may not be available depending on your LDAP server software. + + Please see the following links how to setup "cn=monitor": + + + + OpenLDAP + + + + 389 + server + + + + + + + + + + +
+ +
+ Tests + + This allows you to check if your LDAP schema is compatible with + LAM and to find possible problems. + +
+ Lamdaemon test + + LAM provides an external script to manage home directories and + quotas. You can test here if everything is setup correctly. + + If you get an error like "no tty present and no askpass program + specified" then the path to the lamdaemon.pl may be wrong. Please see + the lamdaemon installation + instructions for setup details. + + + + + + + + +
+ +
+ Schema test + + This will test if your LDAP schema supports all object classes + and attributes of the active LAM modules. If you get a message that + something is missing please check that you installed all required schemas. + + If you get error messages about object class violations then + this test can tell you what is missing. + + + + + + + + +
+
+
+ + + Access levels and password reset page (LAM Pro) + + You can define different access levels for each profile to allow or + disallow write access. The password reset page helps your deskside support + staff to reset user passwords. + +
+ Access levels + + There are three access levels: + + + + Write access (default) + + There are no restrictions. LAM admin users can manage account, + create profiles and set passwords. + + + + Change passwords + + Similar to "Read only" except that the password reset page is available. + + + + Read only + + No write access to the LDAP database is allowed. It is also + impossible to manage account and PDF profiles. + + Accounts may be viewed but no changes can be saved. + + + + The access level can be set on the server configuration + page: + + + + + + + + +
+ +
+ Password reset page + + This special page allows your deskside support staff to reset the + Unix and Samba passwords of your users. Account may also be (un)locked + If you set the access level to + "Change passwords" then LAM will not allow any changes to the LDAP + database except password changes via this page. The account pages will + be still available in read-only mode. + + You can open the password reset page by clicking on the key symbol + on each user account: + + + + + + + + There are three different options to set a new + password: + + + + set random password and display it on + screen + + This will set the user's password to a random value. The + password will be 11 characters long with a random combination of + letters, digits and ".-_". + + You may want to use this method to tell users their new + passwords via phone. + + + + set random password and mail it to + user + + If the user account has set the mail attribute then LAM can + send your user a mail with the new password. You can change the mail + template to fit your needs. Please configure your LAM server profile + to setup the sender address, subject and mail body. Please see email format option in case of broken + mails. See here for setting up your + SMTP server. + + Using this method will prevent that your support staff knows + the new password. + + + + set specific password + + Here you can specify your own password. + + + + + + + + + + + + LAM will display contact information about the user like the + user's name, email address and telephone number. This will help your + deskside support to easily contact your users. + + Options: + + Depending on the account there may be additional options + available. + + + + Sync Samba NT/LM password with Unix + password: If a user account has Samba passwords set then + LAM will offer to synchronize the passwords. + + + + Unlock Samba account: Locked + Samba accounts can be unlocked with the password change. + + + + Update Samba password + timestamps: This will set the timestamps when the + password was changed (sambaPwdLastSet). Only existing attributes are + updated. No new attributes are added. + + + + Sync Kerberos password with Unix + password: This will also update the Heimdal Kerberos + password. + + + + Sync Asterisk (voicemail) password with + Unix password: Changes also the Asterisk + passwords. + + + + Force password change: This + will force the user to change his password at next login. This + option supports Shadow, Samba 3 and PPolicy (automatically + detected). + + + + + + + Account (un)locking: + + Depending if the account includes a Unix/Samba extension and + PPolicy is activated the page will show options to (un)lock the account. + E.g. if the account is fully unlocked then there will be no unlocking + options printed. + + + + + + + + +
+
+ + + Self service (LAM Pro) + +
+ Preparations + +
+ OpenLDAP ACLs + + By default only a few administrative users have write access to + the LDAP database. Before your users may change their settings you + must allow them to change their LDAP data. + + Hint: The ACLs below are not required if you decide to run all + operations as the LDAP bind user (option "Use for all + operations"). + + This can be done by adding ACLs to your slapd.conf or + slapd.d/cn=config/olcDatabase={1}bdb.ldif which look similar to + these: + + access to + + attrs=userPassword + + by self write + + by anonymous auth + + by * none + + + + + access to + + + attrs=mail,sn,givenName,telephoneNumber,mobile,facsimileTelephoneNumber,street,postalAddress,postOfficeBox,postalCode,roomNumber,shadowLastChange + + by self write + + by * read + + If you do not want them to change all attributes then reduce the + list to fit your needs. Some modules may require additional LDAP + attributes. You can use the tree view to get the technical attribute + names e.g. by selecting an user account. + + Usually, the slapd.conf file is located in /etc/ldap or + /etc/openldap. +
+ +
+ Other LDAP servers + + There exist many LDAP implementations. If you do not use + OpenLDAP you need to write your own ACLs. Please check the manual of + your LDAP server for instructions. +
+
+ +
+ Creating a self service profile + + A self service profile defines what input fields your users see + and some other general settings like the login caption. + + When you go to the LAM configuration page you will see the self + service link at the bottom. This will lead you to the self service + configuration pages + + + + + + + + + + Now we need to create a new self service profile. Click on the + link to manage the self service profiles. + + + + + + + + + + Specify a name for the new profile and enter your master + configuration password (default is "lam") to save the profile. + + + + + + + + + + Now go back to the profile login and enter your master + configuration password to edit your new profile. +
+ +
+ Edit your new profile + +
+ Basic settings + + On top of the page you see the link to the user login page. Copy + this link address and give it to your users. + + Below the link you can specify several options. + + + + + + + + + + + General options + + + + + Server address + + The address of your LDAP server. For LDAP+SSL use + "ldaps://myserver" + + + + Activate TLS + + Activates TLS encryption. Please note that this cannot + be combined with LDAP+SSL ("ldaps://"). + + + + LDAP suffix + + The part of the LDAP tree where LAM should search for + users + + + + LDAP search attribute + + Here you can specify if your users can login with user + name + password, email + password or other attributes. + + + + LDAP user + password + + The DN and password which is used to search for users + in the LDAP database. It is sufficient if this DN has only + read rights. If you leave these fields empty LAM will try to + connect anonymously. + + + + Use for all operations + + By default LAM will use the credentials of the user + that logged in to self service for read/modify operations. If + you select this box then the connection user specified before + will be used instead. Please note that this can be a security + risk because the user requires write access to all users. You + need to make sure that your LAM server is well + protected. + + + + Additional LDAP filter + + Use this to enter an additional LDAP filter (e.g. + "(objectClass=passwordSelfReset)") to reduce the number of + accounts who may use self service. + + + + HTTP authentication + + You can enable HTTP authentication for your users. This + way the web server is responsible to authenticate your users. + LAM will use the given user name + password for the LDAP + login. To setup HTTP authentication in Apache please see this + link. + + + + Login attribute label + + This is the description for the LDAP search attribute. + Set it to something which your users are familiar + with. + + + + Password field label + + This text is placed as label for the password field on + the login page. LAM will use "Password" if you do not enter + any text. + + + + Login caption + + This text is displayed at the login page. You can input + HTML, too. + + + + Main page caption + + This text is displayed at self service main page where + your users change their data. You can input HTML, too. + + + + Page header + + This HTML code will be placed on top of all self + service pages. E.g. you can use this to place your custom + logo. Any HTML code is permitted. + + + + Additional CSS links + + Here you can specify additional CSS links to change the + layout of the self service pages. This is useful to adapt them + to your corporate design. Please enter one link per + line. + + + +
+
+ +
+ Page layout + + Here you can specify what input fields your users can see. It is + also possible to group several input fields. + + Please use the arrow signs to change the order of the + fields/groups. + + You may also set some fields as read-only for your users. This + can be done by clicking on the lock symbol. Read-only fields can be + used to show your users additional data on the self service page that + must not be changed by themselves (e.g. first/last name). + + Sometimes, you may want to set a custom label for an input + field. Click on the edit icon to set your own label text (Personal: + Department is relabeled as "Business unit" here). + + + + + + + + + + Possible input fields + + This is a list of input fields you may add to the self service + page. + + + Self service fields + + + + + Account + type + + Option + + Description + + + + + + + + Asterisk (voicemail) + + Sync Asterisk password with Unix password + + This is a hidden field. It will update the Asterisk + password each time the Unix password is changed. + + + + + + + + Kerberos + + Sync Kerberos password with Unix password + + This is a hidden field. It will update the Kerberos + password each time the Unix password is changed. + + + + + + + + Kolab + + Delegates + + Allows to manage delegate permissions + + + + Invitation policy + + Invitation policy management + + + + + + + + Password policy + + Last password change + + read-only + + + + + + + + Password self reset + + Question + + Security question selection + + + + Answer + + Security answer + + + + Backup email + + (External) backup email address that has no relation to + user password. + + + + + + + + Personal + + Business category + + + + + + Car license + + + + + + Department + + + + + + Description + + + + + + Email address + + + + + + Fax number + + + + + + First name + + + + + + Home telephone number + + + + + + Initials + + + + + + Job title + + + + + + Last name + + + + + + Location + + + + + + Mobile number + + + + + + Office name + + + + + + Organisational unit + + + + + + Photo + + Shows the user photo if set. The user may also remove + the photo or upload a new one. + + + + Postal address + + + + + + Postal code + + + + + + Post office box + + + + + + Registered address + + + + + + Room number + + + + + + State + + + + + + Street + + + + + + Telephone number + + + + + + User certificates + + Upload of user certificates in PEM or DER + format + + + + User name + + + + + + Web site + + + + + + + + + + Samba 3 + + Password + + Input field to set a new NT/LM password. The attribute + "sambaPwdLastSet" is updated if it existed before. + + + + Sync Samba LM password with Unix password + + This is a hidden field. It will update the Samba LM + password each time the Unix password is changed. + + + + Sync Samba NT password with Unix password + + This is a hidden field. It will update the Samba NT + password each time the Unix password is changed. + + + + Update attribute "sambaPwdLastSet" on password + change + + Updates the password timestamp when password is + synchronized with Unix. + + + + Last password change (read-only) + + Displays the date and time of the user's last password + change. + + + + + + + + Shadow + + Last password change (read-only) + + Displays the date and time of the user's last password + change (Unix). + + + + + + + + Windows + + Password + + Change the user's password + + + + Location + + + + + + Office name + + + + + + Postal code + + + + + + Post office box + + + + + + State + + + + + + Street + + + + + + Telephone number + + + + + + Web site + + + + + + + + + + Unix + + Common name + + + + + + Login shell + + + + + + Password + + This is also the source for several password + synchronization options. + + + + + + + + Zarafa + + "Send as" privileges + + Define user who may send mails as this user + + + + Email aliases + + Email aliases + + + + + + + + PyKota + + Balance (read-only) + + Current balance for printing + + + + Total paid (read-only) + + Total money paid + + + + Payment history + + History of user payments + + + + Job history + + History of printed jobs + + + +
+
+ +
+ Module settings + + This allows to configure some module specific options (e.g. + custom scripts or password hash type). + + + + + + + + +
+ +
+ Password self reset + + Schema installation + + Please install the LDAP schema as described here. + + Settings + + You can allow your users to reset their passwords themselves. + This will reduce your administrative costs for cases where users + forget their passwords. + + To enable this feature please activate the checkbox "Enable + password self reset link". + + Hint: Plese note that LAM Pro + uses security questions by default. Activate confirmation mails and + then deactivate security questions if you want to use only email + validation. + + + + + + + + + + You can now configure the minimum answer length for password + reset answers. This is checked when you allow you users to specify + their answers via the self service. Additionally, you can specify the + text of the password reset link (default: "Forgot password?"). The + link is displayed below the password field on the self service login + page. + + Next, please enter the DN and password of an LDAP entry that is + allowed to reset the passwords. This entry needs write access to the + attributes shadowLastChange, pwdAccountLockedTime and userPassword. It + also needs read access to uid, mail, passwordSelfResetQuestion and + passwordSelfResetAnswer. Please note that LAM Pro saves the password + on your server file system. Therefore, it is required to protect your + server against unauthorised access. + + Please also specify the list of password reset questions that + the user can choose. + + Please note that self service and LAM admin interface are + separated functionalities. You need to specify the list of possible + security questions in both self service profile(s) and server + profile(s). + + + + You can inform your users via mail about their password change. + The mail can include the new password by using the special wildcard + "@@newPassword@@". Additionally, you may want to insert other + wildcards that are replaced by the corresponding LDAP attributes. E.g. + "@@uid@@" will be replaced by the user name. Please see email format option in case of broken mails. + See here for setting up your SMTP + server. + + + + LAM Pro can send your users an email with a confirmation link to + validate their email address. Of course, this should only be used if + the email account is independent from the user password (e.g. at + external provider) or you use the backup email address feature. The + mail body must include the confirmation link by using the special + wildcard "@@resetLink@@". Additionally, you may want to insert other + wildcards that are replaced by the corresponding LDAP attributes. E.g. + "@@uid@@" will be replaced by the user name. + + There is also an option to skip the security question at all if + email verification is enabled. In this case the password can be reset + directly after clicking on the confirmation link. Please handle with + care since anybody with access to the user's mail account can reset + the password. + + Troubleshooting: + + If you get messages like "Unable to find user account." this can + have multiple reasons: + + + + security questions enabled but no security question and/or + answer set for this user + + + + user name + email combination does not exist + + + + no connection to LDAP server + + + + Turn on logging in LAM's main configuration settings. The exact + reason is logged on notice level. + + New fields for self service + page + + There are special fields that you may put on the self service + page for your users. These fields allow them to change the reset + question and its answer. It is also possible to set a backup email + address to reset passwords with an external email address. + + + + + + + + + + This is an example how can be presented to your users on the + self service page: + + + + + + + + + + Password reset link + + After activating the password self reset feature there will be a + new link on the self service login page. The text can be configured as + described above (default: "Forgot password?"). + + + + + + + + + + When a user clicks on the link then he will be asked for + identification with his user name and email address. + + + + + + + + + + LAM Pro will use this information to find the correct LDAP entry + of this user. It then displays the user's security question and input + fields for his new password. If the answer is correct then the new + password will be set. Additionally, pwdAccountLockedTime will be + removed and shadowLastChange updated to the current time if + existing. + + + + + + + + +
+ +
+ User self registration + + With LAM Pro your users can create their own accounts if you + like. LAM Pro will display an additional link on the self service + login page that allows you users to create a new account including + email validation (see here for + setting up your SMTP server). + + You enable this feature in your self service profile. Just + activate the checkbox "Enable self registration link". + + + + + + + + + + Options: + + Link text: This is the label for the link + to the self registration. If empty "Register new account" will be + used. + + Admin DN and password: Please enter the + LDAP DN and its password that should be used to create new users. This + DN also needs to be able to do LDAP searches by uid in the self + service part of your LDAP tree. + + Object classes: This is a list of object + classes that are used to build the new user accounts. Please enter one + object class in each line. + + Attributes: This is a list of additional + attributes that the user can enter. Please note that user name, + password and email address are mandatory anyway and need not be + specified. + + Each line represents one LDAP attribute. The settings are + separated by "::". The first setting specifies the field type. The + second setting is the LDAP attribute name. Depending on the field type + you can enter additional options: + + + + + + + + Description + + Type + + Attribute name + + First option + + Second option + + Third option + + + + An optional input field that is displayed on the + registration page. + + optional + + e.g. "givenName" + + Label that is displayed on page + + optional regular expression for validation (e.g. + "/^[0-9a-zA-Z]+$/") + + validation message if value does not match validation + expression + + + + A required input field that is displayed on the + registration page. Self registration cannot be done if such a + field is left empty by the user. + + required + + e.g. "sn" + + Label that is displayed on page + + optional regular expression for validation (e.g. + "/^[0-9a-zA-Z]+$/") + + validation message if value does not match validation + expression + + + + Constant attribute value, not visible for the user. Can + be used to set some initial values or data that must not be + edited by the user. + + constant + + e.g. "homeDirectory" + + attribute value, supports wirldcards to insert other + attribute values (e.g. "@@uid@@") + + + + + + + +
+ + For a syntax description of validation expressions see here. Validation is + optional, you can leave these options blank. + + Example: + + optional::givenName::First name::/^[[:alnum:] ]+$/u::Please + enter a valid first name. + + required::sn::Last name::/^[[:alnum:] ]+$/u::Please enter a + valid last name. + + constant::homeDirectory::/home/@@uid@@ + + If you use the object class "inetOrgPerson" and do not provide + the "cn" attribute then LAM will set it to the user name value. + + + + + Please note that only simple input boxes are supported for + account registration. The user may log in to self service when his + account was created to manage all his attributes. + + + + + User view: + + The user can register by clicking on a link on the self service + login page: + + + + + + + + + + Here he can insert the data that you specified in the self + service profile: + + + + + + + + + + LAM will then send him an email with a validation link that is + valid for 24 hours. When he clicks on this link then the account will + be created in the self service user suffix. The DN will look like + this: uid=<user name>,... + + Please see email format option in + case of broken mails. +
+ +
+ Custom fields (LAM Pro) + + This module allows you to manage LDAP attributes that are not + covered by the other LAM modules (e.g. if you use custom LDAP + schemas). You can fully define how your input fields look like: + + + + Label + + + + LDAP attribute name + + + + Unique name for field + + + + Help text + + + + Read-only display + + + + Field type: text, password, text area, checkbox, radio + buttons, select list, file upload + + + + Validation via regular expression + + + + Error message if validation fails + + + + To create custom fields for the Self Service please edit your + Self Service profile and switch to tab "Module settings". Here you can + add a new field. Simply fill the fields and press on "Add". + + Please note that the field name cannot be changed later. It is + the unique ID for this field. + + After you created your fields please press on "Sync fields with + page layout". Now you can switch to tab "Page layout" and add your new + fields like any other standard field. + + + + + + + + + + Examples for fields and their representation in Self + Service: + + Text field: + + Text fields allow to specify a validation + expression and error message. + + You can also enable auto-completion. In this case LAM will + search all accounts for the given attribute and provide + auto-completion hints when the user edits this field. This should only + be used if there is a limited number of different values for this + attribute. + + + + + + + + + + Presentation in Self Service: + + + + + + + + + + Password field: + + You can also manage custom password fields. LAM Pro will display + two fields where the user must enter the same password. You can hash + the password if needed. + + + + + + + + + + Presentation in Self Service: + + + + + + + + + + Text area: + + This adds a multi-line field. The options are similar to text + fields. Additionally, you can set the size with the number of columns + and rows. + + Please note that the validation + expression should be set to multi-line. This is done by adding + "m" at the end. + + + + + + + + + + Presentation in Self Service: + + + + + + + + + + Checkbox: + + Sometimes you may want to allow only yes/no values for your LDAP + attributes. This can be represented by a checkbox. You can specify the + values for checked and unchecked. The default value is set if the LDAP + attribute has no value. + + + + + + + + + + Presentation in Self Service: + + + + + + + + + + Radio buttons: + + This displays a list of radio buttons where the user can select + one value. + + You can specify a mapping of LDAP attribute values and their + display (label) on the Self Service page. To add more mapping fields + please press "Add more mapping fields". + + + + + + + + + + Presentation in Self Service: + + + + + + + + + + Select list: + + Select lists allow the user to select a value in a large list of + options. The definition of the possible values and their display is + similar to radio buttons. + + You can also allow multiple values. + + + + + + + + + + Presentation in Self Service: + + + + + + + + + + + + + + + + + + Validation expressions: + + The validation expressions follow the standard of Perl regular + expressions. They start and end with a "/". The beginning of a + line is specified by "^" and the end by "$". + + Examples: + + /^[a-z0-9]+$/ allows small letters and numbers. The value must + not be empty ("+"). + + /^[a-z0-9]+$/i allows small and capital letters ("i" at the end + means ignore case) and numbers. The value must not be empty + ("+"). + + Special characters that must be escaped with "\": "\", ".", "(", + ")" + + E.g. /^[a-z0-9\.]$/i + + + + + File upload: + + This is used for binary data. You can restrict uploaded data to + a given file extension and set the maximum file size. + + + + + + + + + + Presentation: + + The uploaded data may also be downloaded via LAM. + + + + + + + + +
+
+ +
+ Adapt the self service to your corporate design + + LAM Pro allows you to integrate customs CSS style definitions and + design the header of all self service pages. This way you can integrate + you own logo and use your company's colors. + +
+ Custom header + + The default LAM Pro header includes a logo and a horizontal + line. You can enter any HTML code here. It will be included in the + self services pages after the body tag. + + + + + + + + +
+ +
+ CSS files + + Usually, companies have regulations about their corporate design + and use common CSS files. This assures a common appearance of all + intranet pages (e.g. colors and fonts). To include additional CSS + files just use the following setting for this task. The additional CSS + links will be added after LAM Pro's default CSS link. This way you can + overwrite LAM Pro's style. + + + + + + + + +
+
+
+ + + LDAP schema files + + Here is a list of needed LDAP schema files for the different LAM + modules. For OpenLDAP we also provide a source where you can get the + files. + + + LDAP schema files + + + + + + + Account type + + Object class(es) + + Schema name + + Source + + Notes + + + + + + + + + + + + Unix accounts + + posixAccount, shadowAccount, hostObject, posixGroup + + nis.schema, rfc2307bis.schema, ldapns.schema + (hostObject) + + Part of OpenLDAP installation, part of libpam-ldap + (ldapns.schema) + + The rfc2307bis.schema is only supported by LAM Pro. Use the + nis.schema if you do not want to upgrade to LAM Pro. + + + + + + + + + + Address book entries + + inetOrgPerson + + inetorgperson.schema + + Part of OpenLDAP installation + + + + + + + + + + + + Samba 3 accounts + + sambaSamAccount, sambaGroupMapping, sambaDomain + + samba.schema + + Part of Samba tarball (examples/LDAP/samba.schema) + + + + + + + + + + + + Windows AD (Samba 4) + + user, group, computer + + + + Samba 4 built-in + + + + + + + + + + + + Kolab 2/3 users + + kolabUser + + kolab2/3.schema, rfc2739.schema + + Part of Kolab 2/3 installation + + + + + + + + + + + + Asterisk (extension) + + AsteriskSIPUser, AsteriskExtension + + asterisk.schema + + Part of Asterisk installation + + + + + + + + + + + + PyKota users, groups, printers and billing codes + + pykotaObject, pykotaAccount, pykotaAccountBalance, + pykotaGroup, pykotaPrinter, pykotaBilling + + pykota.schema + + Part of PyKota installation + + + + + + + + + + + + Mail routing + + inetLocalMailRecipient + + misc.schema + + Part of OpenLDAP installation + + + + + + + + + + + + Hosts + + hostObject, device + + ldapns.schema + + Part of libpam-ldap installation + + The device object class is only available in LAM + Pro. + + + + + + + + + + Authorized services + + authorizedServiceObject + + ldapns.schema + + Part of libpam-ldap installation + + + + + + + + + + + + Mail aliases + + nisMailAlias + + misc.schema + + Part of OpenLDAP installation + + + + + + + + + + + + Qmail user + + qmailUser + + qmail.schema + + Part of qmail_ldap + + LAM Pro only + + + + + + + + + + MAC addresses + + ieee802device + + nis.schema + + Part of OpenLDAP installation + + + + + + + + + + + + IP addresses + + ipHost + + nis.schema + + Part of OpenLDAP installation + + LAM Pro only + + + + + + + + + + Puppet + + puppetClient + + puppet.schema + + Puppet + on GitHub + + + + + + + + + + + + EDU person + + eduPerson + + eduperson.schema + + http://middleware.internet2.edu + + + + + + + + + + + + Simple Accounts + + account + + cosine.schema + + Part of OpenLDAP installation + + + + + + + + + + + + SSH public keys + + ldapPublicKey + + openssh-lpk.schema + + Included in patch from http://code.google.com/p/openssh-lpk/ + + + + + + + + + + + + Filesystem quotas + + systemQuotas + + quota.schema + + Linux + DiskQuota + + + + + + + + + + + + Group of (unique) names + + groupOfNames, groupOfUniqueNames + + core.schema + + Part of OpenLDAP installation + + LAM Pro only + + + + + + + + + + Groups + + organizationalRole + + core.schema + + Part of OpenLDAP installation + + LAM Pro only + + + + + + + + + + DHCP + + dhcpOptions, dhcpSubnet, dhcpServer + + dhcp.schema + + docs/schema/dhcp.schema + + The LDAP suffix should be set to your dhcpServer + entry. + + + + + + + + + + Bind DLZ DNS + + dlzZone, dlzHost, dlzSOARecord, dlzNSRecord, dlzARecord, + dlzMXRecord, dlzCNameRecord, dlzPTRRecord + + dlz.schema + + part of Bind + DLZ patch + + LAM Pro only + + + + + + + + + + Aliases + + alias, uidObject + + core.schema + + Part of OpenLDAP installation + + LAM Pro only + + + + + + + + + + NIS netgroups + + nisNetgroup + + nis.schema + + Part of OpenLDAP installation + + + + + + + + + + + + NIS objects + + nisObject + + nis.schema + + Part of OpenLDAP installation + + LAM Pro only + + + + + + + + + + Automount objects + + automount + + autofs.schema, rfc2307bis.schema + + Autofs LDAP + + LAM Pro only + + + + + + + + + + Oracle databases + + orclNetService + + oidbase.schema, oidnet.schema, oidrdbms.schema, + alias.schema + + Preinstalled on Oracle directory server, OpenLDAP schemas + can be downloaded e.g. here + + LAM Pro only + + + + + + + + + + Password policies + + pwdPolicy, device + + ppolicy.schema, core.schema + + Part of OpenLDAP installation + + LAM Pro only + + + + + + + + + + FreeRadius users + + radiusprofile + + openldap.schema + + Part of FreeRadius installation + + + + + + + + + + + + Heimdal Kerberos + + krb5KDCEntry + + hdb.schema + + Part of Heimdal Kerberos installation + + LAM Pro only + + + + + + + + + + MIT Kerberos + + krbPrincipal, krbPrincipalAux, krbTicketPolicyAux + + kerberos.schema + + Part of MIT Kerberos installation + + LAM Pro only + + + + + + + + + + Sudo roles + + sudoRole + + sudo.schema + + Part of sudo-ldap installation + + LAM Pro only + + + + + + + + + + Zarafa + + zarafa-user, zarafa-group, zarafa-server + + zarafa.schema + + Part of Zarafa installation + + LAM Pro only + + + + + + + + + + IMAP mailboxes + + - + + - + + - + + Does not require any schema. + + + +
+
+ + + Security + +
+ LAM configuration passwords + + LAM supports a two level authorization system for its + configuration. Therefore, there are two types of configuration + passwords: + + + + master configuration + password: needed to change general settings, + create/delete server profiles and self service profiles + + + + server profile password: used + to change the settings of a server profile (e.g. LDAP server and + account types to manage) + + + + The master configuration password can be used to reset a server + profile password. Each server profile has its own profile + password. + + Both password types are stored as hash values in the configuration + files for enhanced security. +
+ +
+ Use of SSL + + The data which is transfered between you and LAM is very + sensitive. Please always use SSL encrypted connections between LAM and + your browser to protect yourself against network sniffers. +
+ +
+ LDAP with SSL and TLS + + SSL will be used if you use ldaps://servername in your + configuration profile. TLS can be activated with the "Activate TLS" + option. + + If your LDAP server uses a SSL certificate of a well-know + certificate authority (CA) then you probably need no changes. If you use + a custom CA in your company then there are two ways to setup the CA + certificates. + +
+ Setup SSL certificates in LAM general settings + + This is much easier than system level setup and will only affect + LAM. There might be some cases where other web applications on the + same web server are influenced. + + See here for details. +
+ +
+ Setup SSL certificates on system level + + This will make the CA certificates available also to other + applications on your system (e.g. other web applications). + + You will need to setup ldap.conf to trust your server + certificate. Some installations use /etc/ldap.conf and some use + /etc/ldap/ldap.conf. It is a good idea to symlink /etc/ldap.conf to + /etc/ldap/ldap.conf. Specify the server CA certificate with the + following option: + + TLS_CACERT /etc/ldap/ca/myCA/cacert.pem + + This needs to be the public part of the signing certificate + authority. See "man ldap.conf" for additional options. + + + + + You may also need to specify the CA certificate in your Apache + configuration by using the option "LDAPTrustedGlobalCert": + + LDAPTrustedGlobalCert CA_BASE64 /etc/ldap/ca/myCA/cacert.pem +
+
+ +
+ Chrooted servers + + If your server is chrooted and you have no access to /dev/random + or /dev/urandom this can be a security risk. LAM stores your LDAP + password encrypted in the session. LAM uses rand() to generate the key + if /dev/random and /dev/urandom are not accessible. Therefore the key + can be easily guessed. An attaker needs read access to the session file + (e.g. by another Apache instance) to exploit this. +
+ +
+ Protection of your LDAP password and directory contents + + You have to install the MCrypt extension for PHP to enable + encryption. + + Your LDAP password is stored encrypted in the session file. The + key and IV to decrypt it are stored in two cookies. We use MCrypt/AES to + encrypt the password. All data that was read from LDAP and needs to be + stored in the session file is also encrypted. +
+ +
+ Apache configuration + +
+ Sensitive directories + + LAM includes several .htaccess files to protect your + configuration files and temporary data. Apache is often configured to + not use .htaccess files by default. Therefore, please check your + Apache configuration and change the override setting to: + + AllowOverride All + + If you are experienced in configuring Apache then you can also + copy the security settings from the .htaccess files to your main + Apache configuration. + + If possible, you should not rely on .htaccess files but also + move the config and sess directory to a place outside of your WWW + root. You can put a symbolic link in the LAM directory so that LAM + finds the configuration/session files. + + Security sensitive directories: + + config: Contains your LAM + configuration and account profiles + + + + LAM configuration passwords (SSHA hashed) + + + + default values for new accounts + + + + directory must be accessibly by Apache but needs not to be + accessible by the browser + + + + sess: PHP session files + + + + LAM admin password in clear text or MCrypt encrypted + + + + cached LDAP entries in clear text or MCrypt encrypted + + + + directory must be accessibly by Apache but needs not to be + accessible by the browser + + + + tmp: temporary files + + + + PDF documents which may also include passwords + + + + images of your users + + + + directory contents must be accessible by browser but + directory itself needs not to be browseable + + +
+ +
+ Use LDAP HTTP authentication for LAM + + With HTTP authentication Apache will be responsible to ask for + the user name and password. Both will then be forwarded to LAM which + will use it to access LDAP. This approach gives you more flexibility + to restrict the number of users that may access LAM (e.g. by requiring + group memberships). + + First of all you need to load additional Apache modules. These + are "mod_ldap" + and "mod_authnz_ldap". + + Next you can add a file called "lam_auth_ldap" to + /etc/apache/conf.d. This simple example restricts access to all URLs + beginning with "lam" to LDAP authentication. + + <location /lam> + AuthType Basic + AuthBasicProvider ldap + AuthName "LAM" + AuthLDAPURL "ldap://localhost:389/ou=People,dc=company,dc=com?uid" + Require valid-user +</location> + + You can also require that your users belong to a certain Unix + group in LDAP: + + <location /lam> + AuthType Basic + AuthBasicProvider ldap + AuthName "LAM" + AuthLDAPURL "ldap://localhost:389/ou=People,dc=company,dc=com?uid" + Require valid-user + # force membership of lam-admins + AuthLDAPGroupAttribute memberUid + AuthLDAPGroupAttributeIsDN off + Require ldap-group cn=lam-admins,ou=group,dc=company,dc=com +</location> + + Please see the Apache + documentation for more details. +
+ +
+ Self Service behind proxy in DMZ (LAM Pro) + + In some cases you might want to make the self service accessible + via the internet. Here is an Apache config to forward only the + required URLs via a proxy server (lamproxy.company.com) in your DMZ to + the internal LAM server (lam.company.com). + + + + + + + + This configuration allows your users to open + https://lamproxy.company.com which will then proxy the self service on + the internal server. + + <VirtualHost lamproxy.company.com:443> + ServerName lamproxy.company.com + ErrorLog /var/log/apache2/lam-proxy-error.log + CustomLog /var/log/apache2/lam-proxy-access.log combined + DocumentRoot /var/www/lam-proxy + <Proxy *> + Order deny,allow + Allow from all + </Proxy> + SSLProxyEngine on + SSLEngine on + SSLCertificateFile /etc/apache2/ssl/apache.pem + ProxyPreserveHost On + ProxyRequests off + loglevel info + + # redirect front page to self service login page + RewriteEngine on + RedirectMatch ^/$ /templates/selfService/selfServiceLogin.php?scope=user\&name=lam + + # proxy required URLs + ProxyPass /tmp https://lam.company.com/lam/tmp + ProxyPass /sess https://lam.company.com/lam/sess + ProxyPass /templates/lib https://lam.company.com/lam/templates/lib + ProxyPass /templates/selfService https://lam.company.com/lam/templates/selfService + ProxyPass /style https://lam.company.com/lam/style + ProxyPass /graphics https://lam.company.com/lam/graphics + + ProxyPassReverse /tmp https://lam.company.com/lam/tmp + ProxyPassReverse /sess https://lam.company.com/lam/sess + ProxyPassReverse /templates/lib https://lam.company.com/lam/templates/lib + ProxyPassReverse /templates/selfService https://lam.company.com/lam/templates/selfService + ProxyPassReverse /style https://lam.company.com/lam/style + ProxyPassReverse /graphics https://lam.company.com/lam/graphics +</VirtualHost> +
+
+ +
+ Nginx configuration + + There is no fully automatic setup of Nginx but LAM provides a + ready-to-use configuration file. + +
+ RPM based installations + + The RPM package has dependencies on Apache. Therefore, Nginx is + not officially supported with this installation mode. Use tar.bz2 if + you are unsure. + + However, the package also includes an Nginx configuration file. + Please include it in your server directive like this: + + server { + ... + + include /etc/ldap-account-manager/lam.nginx.conf; + + ... +} +
+ +
+ DEB based installations + + The LAM installation package ships with an Nginx configuration + file. Please include it in your server directive like this: + + server { + ... + + include /etc/ldap-account-manager/lam.nginx.conf; + + ... +} +
+ +
+ tar.bz2 based installations + + Please add the following configuration snippet to your server + directive. + + You will need to change the alias location + ("/usr/share/ldap-account-manager") and fastcgi_pass + ("/var/run/php5-fpm.sock") to match your installation. + + location /lam { + index index.html; + alias /usr/share/ldap-account-manager; + autoindex off; + + location ~ \.php$ { + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass unix:/var/run/php5-fpm.sock; + fastcgi_index index.php; + include fastcgi_params; + } + + location ~ /lam/(tmp/internal|sess|config|lib|help|locale) { + deny all; + return 403; + } + +} + +
+
+
+ + + Typical OpenLDAP settings + + Some basic hints to configure the OpenLDAP server: + + Size + limit: + + You will get a message like "LDAP sizelimit exceeded, not all + entries are shown." when you hit the LDAP search limit. + + OpenLDAP allows by default 500 return values per search, if you have + more users/groups/hosts please change this: + + slapd.conf: + + e.g. "sizelimit 10000" or "sizelimit -1" for unlimited return + values + + slapd.d: + + e.g. "olcSizeLimit: 10000" or "olcSizeLimit: -1" for unlimited + return values in /etc/ldap/slapd.d/cn=config.ldif + + + + + Unique + attributes: + + There are cases where you do not want that same attribute values + exist multiple times in your database. A good example are UID/GID + numbers. + + OpenLDAP provides the attribute + uniqueness overlay for this task. + + Example to force unique UID numbers: + + In + /etc/ldap/slapd.d/cn=config/cn=module{0}.ldif add + "olcModuleLoad: {3}unique" (replace "3" with the highest existing number + plus one). + + Now in /etc/ldap/slapd.d/cn=config/olcDatabase={1}bdb.ldif add e.g. + "olcUniqueURI: ldap:///?uidNumber?sub" + + + + + Indices: + + Indices will improve the performance when searching for entries in + the LDAP directory. The following indices are recommended: + + + index objectClass eq + + index default sub + + index uidNumber eq + + index gidNumber eq + + index memberUid eq + + index cn,sn,uid,displayName pres,sub,eq + + # Samba 3.x + + index sambaSID eq + + index sambaPrimaryGroupSID eq + + index sambaDomainName eq + + + + + Setup of email (SMTP) server + + LAM always uses a local SMTP email server on the machine where LAM + is installed. Therefore, there is no need to configure any SMTP settings + inside LAM itself. + + The local email server should be configured to forward all emails to + your company mail server (so-called smarthost). You can use any SMTP + software that ships with a Sendmail wrapper (e.g. Exim, Postfix, QMail or + Sendmail itself). + + + + + + + + + + + + + + + + Setup for home directory and quota management + + Lamdaemon.pl is used to modify quota and home directories on a + remote or local host via SSH (even if homedirs are located on + localhost). + + If you want wo use it you have to set up the following things to get + it to work: + +
+ LDAP Account Manager configuration + + + + Set the remote or local host in the configuration (e.g. + 127.0.0.1) + + + + Path to lamdaemon.pl, e.g. + /srv/www/htdocs/lam/lib/lamdaemon.pl If you installed a Debian or + RPM package then the script will be located at + /usr/share/ldap-account-manager/lib/lamdaemon.pl. + + + + Your LAM admin user must be a valid Unix account. It needs to + have the object class "posixAccount" and an attribute "uid". This + account must be accepted by the SSH daemon of your home directory + server. Do not create a second local account but change your system + to accept LDAP users. You can use LAM to add the Unix account part + to your admin user or create a new account. Please do not forget to + setup LDAP write access (ACLs) + if you create a new account. + + + + + + + + + + + + + + Note that the builtin admin/manager entries do not work for + lamdaemon. You need to login with a Unix account. + + + + + + + + + + OpenLDAP ACL location: + + The access rights for OpenLDAP are configured in + /etc/ldap/slapd.conf or + /etc/ldap/slapd.d/cn=config/olcDatabase={1}bdb.ldif. +
+ +
+ Setup sudo + + The perl script has to run as root. Therefore we need a wrapper, + sudo. Edit /etc/sudoers on host where homedirs or quotas should be used + and add the following line: + + $admin All= NOPASSWD: $path_to_lamdaemon * + + $admin is the admin user from + LAM (must be a valid Unix account) and + $path_to_lamdaemon is the path to + lamdaemon.pl. + + Example: + + myAdmin ALL= NOPASSWD: /srv/www/htdocs/lam/lib/lamdaemon.pl + * + + You might need to run the sudo command once manually to init sudo. + The command "sudo -l" will show all possible sudo commands of the + current user. + + Attention: Please do not use the + options "Defaults requiretty" and "Defaults env_reset" in /etc/sudoers. + Otherwise you might get errors like "you must have a tty to run sudo" or + "no tty present and no askpass program specified". +
+ +
+ Setup Perl + + We need an extra Perl module - Quota. To install it, run: + + + perl -MCPAN -e shell + + install Quota + + + If your Perl executable is not located in /usr/bin/perl you will + have to edit the path in the first line of lamdaemon.pl. If you have + problems compiling the Perl modules try installing a newer release of + your GCC compiler and the "make" application. + + Several Linux distributions already include a quota package for + Perl. +
+ +
+ Set up SSH + + Your SSH daemon must offer the password authentication method. To + activate it just use this configuration option in + /etc/ssh/sshd_config: + + PasswordAuthentication yes +
+ +
+ Troubleshooting + + If you have problems managing quotas and home directories then + these points might help: + + + + There is a test page for lamdaemon: Login to LAM and open + Tools -> Tests -> Lamdaemon test + + + + Check /var/log/auth.log or its equivalent on your system. This + file contains messages about all logins. If the ssh login failed + then you will find a description about the reason here. + + + + Set sshd in debug mode. In /etc/ssh/sshd_conf add these + lines: + + + SyslogFacility AUTH + + LogLevel DEBUG3 + + + Now check /var/log/syslog for messages from sshd. + + + + Error message "Your LAM admin user (...) + must be a valid Unix account to work with lamdaemon!": This + happens if you use the default LDAP admin/manager user to login to LAM. + Please see here and setup a Unix + account. +
+
+ + + Setup password self reset schema (LAM Pro) + +
+ New installation + + Please see here if you want to + upgrade an existing schema version. + + Schema installation + + Please install the schema that comes with LAM Pro. The schema + files are located in: + + + + tar.bz2: docs/schema + + + + DEB: /usr/share/doc/ldap-account-manager/docs/schema + + + + RPM: + /usr/share/doc/ldap-account-manager-{VERSION}/schema + + + + + + + OpenLDAP with slapd.conf + configuration + + For a configuration with slapd.conf-file copy + passwordSelfReset.schema to /etc/ldap/schema/ and add this line to + slapd.conf: + + include /etc/ldap/schema/passwordSelfReset.schema + + + + OpenLDAP with slapd.d + configuration + + For slapd.d configurations you need to upload the schema file + passwordSelfReset.ldif via ldapadd command: + + ldapadd -x -W -H ldap://localhost -D "cn=admin,o=test,c=de" -f + passwordSelfReset.ldif + + Please replace "localhost" with your LDAP server and + "cn=admin,o=test,c=de" with your LDAP admin user (usually starts with + cn=admin or cn=manager). + + + + + Samba 4 + + The schema files are passwordSelfReset-Samba4-attributes.ldif and + passwordSelfReset-Samba4-objectClass.ldif. + + First, you need to edit them and replace "DOMAIN_TOP_DN" with your + LDAP suffix (e.g. dc=samba4,dc=test). + + Then install the attribute and afterwards the object class schema + file: + + ldbmodify -H /var/lib/samba/private/sam.ldb passwordSelfReset-Samba4-attributes.ldif --option="dsdb:schema update allowed"=true + ldbmodify -H /var/lib/samba/private/sam.ldb passwordSelfReset-Samba4-objectClass.ldif --option="dsdb:schema update allowed"=true + + + + Windows + + The schema file is passwordSelfReset-Windows.ldif. + + First, you need to edit it and replace "DOMAIN_TOP_DN" with your + LDAP suffix (e.g. dc=windows,dc=test). + + Then install the schema file as administrator on a command + line: + + ldifde -v -i -f passwordSelfReset-Windows.ldif + + + + This allows to set a security question + answer for each + account. +
+ +
+ Schema update + + The schema files are located in: + + + + tar.bz2: docs/schema/updates + + + + DEB: + /usr/share/doc/ldap-account-manager/docs/schema/updates + + + + RPM: + /usr/share/doc/ldap-account-manager-{VERSION}/schema/updates + + + + + + + Schema versions: + + + + Initial version (LAM Pro 3.6) + + + + Added passwordSelfResetBackupMail (LAM Pro 4.5) + + + + + + + OpenLDAP with slapd.conf + configuration + + Install the schema file like a new install (skip + modification of slapd.conf file). + + + + + OpenLDAP with slapd.d + configuration + + The upgrade requires to stop the LDAP server. + + Steps: + + + + Stop OpenLDAP with e.g. "/etc/init.d/slapd stop" + + + + Delete the old schema file. It is located in e.g. + "/etc/ldap/slapd.d/cn=config/cn=schema" and called + "cn={XX}passwordselfreset.ldif" (XX can be any number) + + + + Start OpenLDAP with e.g. "/etc/init.d/slapd start" + + + + Install the schema file like a new install + + + + + + + Samba 4 + + Install the these update files by following the install + instructions in the file: + + + + samba4_version_1_to_2_attributes.ldif + + + + samba4_version_1_to_2_objectClass.ldif + + + + Please note that attributes file needs to be installed + first. + + + + + Windows + + Install the file "windows_version_1_to_2.ldif" by following the + install instructions in the file. +
+
+ + + Adapt LAM to your corporate design + + There are cases where you might want to change LAM's default + look'n'feel to better integrate it in your company network. Changes can be + done like this: + + Change colors, fonts and other parts with + custom CSS + + You can integrate custom CSS files in LAM. It is recommended to + write a separate CSS file instead of modifying LAM's default files. + + The CSS files are located in + + DEB/RPM: /usr/share/ldap-account-manager/style + tar.bz2: style + + + LAM will automatically integrate all CSS files in alphabetical + order. E.g. you can create a file called "900_myCompany.css" which will be + added as last file. + + Example: + + This will change the background color of all pages to turquoise. See + 500_layout.css for LAM's default settings. + + body { + background-color: #b6eeff; +} + + + You can use the same way to change fonts, sizes and more. + + E.g. this will reduce the default font size to 80%: + + body { + font-size: 80%; +} + +.ui-button-text-only { + font-size: 100%; +} + +.ui-button-text-icon-primary { + font-size: 100%; +} + + + Custom logo/* image in login box */ +td.loginLogo { + background-image: url(/logos/mylogo.png); +} + +/* image (24x24) in header line */ +a.lamLogo { + background-image: url(/logos/mylogo.png); +} + + Other images + + All images are located in + + DEB/RPM: /usr/share/ldap-account-manager/graphics + tar.bz2: graphics + + Please note that if you replace images then you need to reapply your + changes every time you upgrade LAM. + + Special changes with custom + JavaScript + + In rare cases it might not be sufficient to write custom CSS or + replace some image files. E.g. you might want to add custom content to all + pages. + + For these cases you can add a custom JavaScript file that contains + your code. + + The JavaScript files are located in + + DEB/RPM: /usr/share/ldap-account-manager/templates/lib + tar.bz2: templates/lib + + LAM will automatically integrate all .js files in alphabetical + order. E.g. you can create a file called "900_myCompany.js" which will be + added as last file. + + Self service + + See here for self + service customisations. + + + + Clustering LAM + + LAM is a web application based on PHP. Therefore, clustering is not + directly a part of the application. + + But here are some hints to run LAM in a clustered + environment. + + Application parts: + + LAM can be divided into three parts + + + + Software + + + + Configuration files + + + + Session files and temporary data + + + + Software: + + This is the simplest part. Just install LAM on each cluster node. + Please note that if you run LAM Pro you will need either one license for + each active cluster node or a company license. + + Configuration files: + + These files include the LAM server profiles, account profiles, PDF + structures, ... Usually, they do not change frequently and can be put on a + shared file system (e.g. NFS, AFS, ...). + + Please link "config" or "/var/lib/ldap-account-manager/config" to a + directory on your shared file system. + + Session data and temporary + files: + + These are critical because the files may change on every page load. + There are basically two options: + + + + load balancer with session stickiness: In this case your load + balancer will forward all requests of a user to the same cluster node. + In this case you can keep the files locally on your cluster nodes. If + you already have a load balancer then this is the simplest solution + and performs best. The disadvantage is that if a node fails then all + users connected to this node will loose their session and need to + relogin. + + + + shared file system: This should only be used if your load + balancer does not support session stickiness or you use a different + system to distribute request across the cluster. A shared file system + will decrease performance for all page loads. + + + + Session data and temporary files are located in "tmp" + "sess" or + "/var/lib/ldap-account-manager/tmp" + + "/var/lib/ldap-account-manager/sess". + + + + Troubleshooting + +
+ Functional issues + + Size limit + + You will get a message like "LDAP sizelimit exceeded, not all + entries are shown." when you hit the LDAP search limit. See the OpenLDAP settings to fix + this. + + + + + Invalid syntax errors: + + If you get any strange errors like "Invalid syntax" or "Invalid DN + syntax" please check if your LDAP schema matches LAM's + requirements. + + + + + Schema test: + + This can be done by running "Tools" -> "Tests" -> "Schema + test" inside LAM. + + If there are any object classes or attributes missing you will get + a notice. See LDAP schema files for a + list of used schemas. You may also want to deactive unused modules in + your LAM server profile (tab "Modules"). + + + + + + + + + + +LDAP Logging: + + If your schema is correct you can turn on LDAP logging to get more + detailed error messages from your LDAP server. + + + + + OpenLDAP logging: + + + + slapd.conf: In /etc/ldap/slapd.conf turn logging on with the + line "loglevel 256". + + + + slapd.d: In /etc/ldap/slapd.d/cn=config.ldif please change the + attribute "olcLogLevel" to "Stats". Please add a line "olcLogLevel: + Stats" if the attribute is missing. + + + + After changing the configuration please restart OpenLDAP. It + usually uses /var/log/syslog for log output. + + + + + PHP logging + + Sometimes it can help to enable PHP logging inside LAM. You can do + this in the logging area of LAM's + main configuration. Set the logging option to "all" and check if there + are any messages printed in your browser window. Please note that not + every notice message is an error but it may help to find the + problem. +
+ +
+ Performance issues + + LAM is tested to work with 10000 users with acceptable + performance. If you have a larger directory or slow hardware then here + are some points to increase performance. + + + + + The first step is to check if performance problems are caused by + the LAM web server or the LDAP server. Please check which machine + suffers from high system load (CPU/memory consumption). + + High network latency may also be a problem. For large + installations please make sure that LAM web server and LDAP server are + located in the same building/server room. + + If you run LAM on multiple nodes (DNS load balancing/hardware load + balancer) then also check the clustering + section. + +
+ LDAP server + + Use indices + + Depending on the queries it may help to add some more indices on + the LDAP server. Depending on your LDAP software it may already + suggest indices in its log files. See here for typical OpenLDAP indices. + + + + + Reduce query results by splitting LDAP + management into multiple server profiles + + If you manage a very large directory then it might already be + separated into multiple subtrees (e.g. by country, subsidiary, ...). + Do not use a single LAM server profile to manage your whole directory. + Use different server profiles for each separated LDAP subtree where + possible (e.g. one for German users and one for French ones). + + + + + Limit query results + + LAM allows to set an LDAP search + limit for each server profile. This will limit the number of + entries returned by your LDAP server. Use with caution because it can + cause problems (e.g. with automatic UID generation) when LAM is not + able to read all entries. + + + + + + + + +
+ +
+ LAM web server + + Install a PHP + accelerator + + There are tools like APC (free) or + Zend + Server (commercial) that provide caching of PHP pages to + improve performance. They will reduce the time for parsing the PHP + pages and IO load. + + This is a simply way to enhance performance since APC is part of + most Linux distributions. + + If you use APC then make sure that it uses enough memory (e.g. + "apc.shm_size=128M"). You can check the memory usage with the file + apc.php that is shipped with APC. + + + + + + + + + + + + + Disable session + encryption + + LAM encrypts sensitive data in your session files. You can disable it to reduce CPU + load. + + + + + + + + +
+
+
+
diff --git a/lam/docs/manual-sources/images/LDAPStructuresAdvanced.png b/lam/docs/manual-sources/images/LDAPStructuresAdvanced.png new file mode 100644 index 00000000..09d8b98a Binary files /dev/null and b/lam/docs/manual-sources/images/LDAPStructuresAdvanced.png differ diff --git a/lam/docs/manual-sources/images/LDAPStructuresMultiServer.png b/lam/docs/manual-sources/images/LDAPStructuresMultiServer.png new file mode 100644 index 00000000..098ca685 Binary files /dev/null and b/lam/docs/manual-sources/images/LDAPStructuresMultiServer.png differ diff --git a/lam/docs/manual-sources/images/LDAPStructuresSimple.png b/lam/docs/manual-sources/images/LDAPStructuresSimple.png new file mode 100644 index 00000000..24c8f45b Binary files /dev/null and b/lam/docs/manual-sources/images/LDAPStructuresSimple.png differ diff --git a/lam/docs/manual-sources/images/accessLevel.png b/lam/docs/manual-sources/images/accessLevel.png new file mode 100644 index 00000000..716f443c Binary files /dev/null and b/lam/docs/manual-sources/images/accessLevel.png differ diff --git a/lam/docs/manual-sources/images/accountRegistration1.png b/lam/docs/manual-sources/images/accountRegistration1.png new file mode 100644 index 00000000..80a7068a Binary files /dev/null and b/lam/docs/manual-sources/images/accountRegistration1.png differ diff --git a/lam/docs/manual-sources/images/accountRegistration2.png b/lam/docs/manual-sources/images/accountRegistration2.png new file mode 100644 index 00000000..d6c3216a Binary files /dev/null and b/lam/docs/manual-sources/images/accountRegistration2.png differ diff --git a/lam/docs/manual-sources/images/accountRegistration3.png b/lam/docs/manual-sources/images/accountRegistration3.png new file mode 100644 index 00000000..ab4e0f52 Binary files /dev/null and b/lam/docs/manual-sources/images/accountRegistration3.png differ diff --git a/lam/docs/manual-sources/images/alias.png b/lam/docs/manual-sources/images/alias.png new file mode 100644 index 00000000..cc6aac73 Binary files /dev/null and b/lam/docs/manual-sources/images/alias.png differ diff --git a/lam/docs/manual-sources/images/alias2.png b/lam/docs/manual-sources/images/alias2.png new file mode 100644 index 00000000..e0e1b3cb Binary files /dev/null and b/lam/docs/manual-sources/images/alias2.png differ diff --git a/lam/docs/manual-sources/images/apc.png b/lam/docs/manual-sources/images/apc.png new file mode 100644 index 00000000..cebf448b Binary files /dev/null and b/lam/docs/manual-sources/images/apc.png differ diff --git a/lam/docs/manual-sources/images/asterisk.png b/lam/docs/manual-sources/images/asterisk.png new file mode 100644 index 00000000..4a5da500 Binary files /dev/null and b/lam/docs/manual-sources/images/asterisk.png differ diff --git a/lam/docs/manual-sources/images/asteriskConfig.png b/lam/docs/manual-sources/images/asteriskConfig.png new file mode 100644 index 00000000..518f882d Binary files /dev/null and b/lam/docs/manual-sources/images/asteriskConfig.png differ diff --git a/lam/docs/manual-sources/images/asteriskExtension.png b/lam/docs/manual-sources/images/asteriskExtension.png new file mode 100644 index 00000000..a26c85ba Binary files /dev/null and b/lam/docs/manual-sources/images/asteriskExtension.png differ diff --git a/lam/docs/manual-sources/images/asteriskVoicemail.png b/lam/docs/manual-sources/images/asteriskVoicemail.png new file mode 100644 index 00000000..2cd76d0c Binary files /dev/null and b/lam/docs/manual-sources/images/asteriskVoicemail.png differ diff --git a/lam/docs/manual-sources/images/automount1.png b/lam/docs/manual-sources/images/automount1.png new file mode 100644 index 00000000..63686d6d Binary files /dev/null and b/lam/docs/manual-sources/images/automount1.png differ diff --git a/lam/docs/manual-sources/images/automount2.png b/lam/docs/manual-sources/images/automount2.png new file mode 100644 index 00000000..327e4ebd Binary files /dev/null and b/lam/docs/manual-sources/images/automount2.png differ diff --git a/lam/docs/manual-sources/images/automount3.png b/lam/docs/manual-sources/images/automount3.png new file mode 100644 index 00000000..590143ff Binary files /dev/null and b/lam/docs/manual-sources/images/automount3.png differ diff --git a/lam/docs/manual-sources/images/conf1.png b/lam/docs/manual-sources/images/conf1.png new file mode 100644 index 00000000..729b0aea Binary files /dev/null and b/lam/docs/manual-sources/images/conf1.png differ diff --git a/lam/docs/manual-sources/images/conf2.png b/lam/docs/manual-sources/images/conf2.png new file mode 100644 index 00000000..ddb3511b Binary files /dev/null and b/lam/docs/manual-sources/images/conf2.png differ diff --git a/lam/docs/manual-sources/images/conf3.png b/lam/docs/manual-sources/images/conf3.png new file mode 100644 index 00000000..00f35bef Binary files /dev/null and b/lam/docs/manual-sources/images/conf3.png differ diff --git a/lam/docs/manual-sources/images/conf4.png b/lam/docs/manual-sources/images/conf4.png new file mode 100644 index 00000000..ecc92b0e Binary files /dev/null and b/lam/docs/manual-sources/images/conf4.png differ diff --git a/lam/docs/manual-sources/images/conf5.png b/lam/docs/manual-sources/images/conf5.png new file mode 100644 index 00000000..9a7044e6 Binary files /dev/null and b/lam/docs/manual-sources/images/conf5.png differ diff --git a/lam/docs/manual-sources/images/conf6.png b/lam/docs/manual-sources/images/conf6.png new file mode 100644 index 00000000..9b0d7f43 Binary files /dev/null and b/lam/docs/manual-sources/images/conf6.png differ diff --git a/lam/docs/manual-sources/images/configCSS.png b/lam/docs/manual-sources/images/configCSS.png new file mode 100644 index 00000000..6652f0a5 Binary files /dev/null and b/lam/docs/manual-sources/images/configCSS.png differ diff --git a/lam/docs/manual-sources/images/configGeneral1.png b/lam/docs/manual-sources/images/configGeneral1.png new file mode 100644 index 00000000..121da807 Binary files /dev/null and b/lam/docs/manual-sources/images/configGeneral1.png differ diff --git a/lam/docs/manual-sources/images/configGeneral2.png b/lam/docs/manual-sources/images/configGeneral2.png new file mode 100644 index 00000000..c79ac2f5 Binary files /dev/null and b/lam/docs/manual-sources/images/configGeneral2.png differ diff --git a/lam/docs/manual-sources/images/configGeneral3.png b/lam/docs/manual-sources/images/configGeneral3.png new file mode 100644 index 00000000..31cb39a3 Binary files /dev/null and b/lam/docs/manual-sources/images/configGeneral3.png differ diff --git a/lam/docs/manual-sources/images/configGeneral4.png b/lam/docs/manual-sources/images/configGeneral4.png new file mode 100644 index 00000000..dae51824 Binary files /dev/null and b/lam/docs/manual-sources/images/configGeneral4.png differ diff --git a/lam/docs/manual-sources/images/configGeneral5.png b/lam/docs/manual-sources/images/configGeneral5.png new file mode 100644 index 00000000..762bd1cc Binary files /dev/null and b/lam/docs/manual-sources/images/configGeneral5.png differ diff --git a/lam/docs/manual-sources/images/configGeneral6.png b/lam/docs/manual-sources/images/configGeneral6.png new file mode 100644 index 00000000..65cc8b81 Binary files /dev/null and b/lam/docs/manual-sources/images/configGeneral6.png differ diff --git a/lam/docs/manual-sources/images/configModules1.png b/lam/docs/manual-sources/images/configModules1.png new file mode 100644 index 00000000..408434be Binary files /dev/null and b/lam/docs/manual-sources/images/configModules1.png differ diff --git a/lam/docs/manual-sources/images/configOverview.png b/lam/docs/manual-sources/images/configOverview.png new file mode 100644 index 00000000..93e61fad Binary files /dev/null and b/lam/docs/manual-sources/images/configOverview.png differ diff --git a/lam/docs/manual-sources/images/configPageHeader.png b/lam/docs/manual-sources/images/configPageHeader.png new file mode 100644 index 00000000..c14eb6aa Binary files /dev/null and b/lam/docs/manual-sources/images/configPageHeader.png differ diff --git a/lam/docs/manual-sources/images/configProfiles1.png b/lam/docs/manual-sources/images/configProfiles1.png new file mode 100644 index 00000000..02859d21 Binary files /dev/null and b/lam/docs/manual-sources/images/configProfiles1.png differ diff --git a/lam/docs/manual-sources/images/configProfiles2.png b/lam/docs/manual-sources/images/configProfiles2.png new file mode 100644 index 00000000..95c5cd7b Binary files /dev/null and b/lam/docs/manual-sources/images/configProfiles2.png differ diff --git a/lam/docs/manual-sources/images/configProfiles3.png b/lam/docs/manual-sources/images/configProfiles3.png new file mode 100644 index 00000000..f93bb1f8 Binary files /dev/null and b/lam/docs/manual-sources/images/configProfiles3.png differ diff --git a/lam/docs/manual-sources/images/configProfiles4.png b/lam/docs/manual-sources/images/configProfiles4.png new file mode 100644 index 00000000..a1adea61 Binary files /dev/null and b/lam/docs/manual-sources/images/configProfiles4.png differ diff --git a/lam/docs/manual-sources/images/configProfiles5.png b/lam/docs/manual-sources/images/configProfiles5.png new file mode 100644 index 00000000..2ba603f7 Binary files /dev/null and b/lam/docs/manual-sources/images/configProfiles5.png differ diff --git a/lam/docs/manual-sources/images/configProfiles6.png b/lam/docs/manual-sources/images/configProfiles6.png new file mode 100644 index 00000000..d15da017 Binary files /dev/null and b/lam/docs/manual-sources/images/configProfiles6.png differ diff --git a/lam/docs/manual-sources/images/configProfiles7.png b/lam/docs/manual-sources/images/configProfiles7.png new file mode 100644 index 00000000..e2bfff4f Binary files /dev/null and b/lam/docs/manual-sources/images/configProfiles7.png differ diff --git a/lam/docs/manual-sources/images/configProfiles8.png b/lam/docs/manual-sources/images/configProfiles8.png new file mode 100644 index 00000000..099db889 Binary files /dev/null and b/lam/docs/manual-sources/images/configProfiles8.png differ diff --git a/lam/docs/manual-sources/images/configProfiles9.png b/lam/docs/manual-sources/images/configProfiles9.png new file mode 100644 index 00000000..3d50903d Binary files /dev/null and b/lam/docs/manual-sources/images/configProfiles9.png differ diff --git a/lam/docs/manual-sources/images/configSettings1.png b/lam/docs/manual-sources/images/configSettings1.png new file mode 100644 index 00000000..0cc8e6ea Binary files /dev/null and b/lam/docs/manual-sources/images/configSettings1.png differ diff --git a/lam/docs/manual-sources/images/configTypes1.png b/lam/docs/manual-sources/images/configTypes1.png new file mode 100644 index 00000000..34828bbe Binary files /dev/null and b/lam/docs/manual-sources/images/configTypes1.png differ diff --git a/lam/docs/manual-sources/images/configTypes2.png b/lam/docs/manual-sources/images/configTypes2.png new file mode 100644 index 00000000..3e7bbb85 Binary files /dev/null and b/lam/docs/manual-sources/images/configTypes2.png differ diff --git a/lam/docs/manual-sources/images/customFields1.png b/lam/docs/manual-sources/images/customFields1.png new file mode 100644 index 00000000..d387c7f5 Binary files /dev/null and b/lam/docs/manual-sources/images/customFields1.png differ diff --git a/lam/docs/manual-sources/images/customFields10.png b/lam/docs/manual-sources/images/customFields10.png new file mode 100644 index 00000000..c8e77788 Binary files /dev/null and b/lam/docs/manual-sources/images/customFields10.png differ diff --git a/lam/docs/manual-sources/images/customFields11.png b/lam/docs/manual-sources/images/customFields11.png new file mode 100644 index 00000000..dcc851c9 Binary files /dev/null and b/lam/docs/manual-sources/images/customFields11.png differ diff --git a/lam/docs/manual-sources/images/customFields12.png b/lam/docs/manual-sources/images/customFields12.png new file mode 100644 index 00000000..72e5fd92 Binary files /dev/null and b/lam/docs/manual-sources/images/customFields12.png differ diff --git a/lam/docs/manual-sources/images/customFields13.png b/lam/docs/manual-sources/images/customFields13.png new file mode 100644 index 00000000..49815092 Binary files /dev/null and b/lam/docs/manual-sources/images/customFields13.png differ diff --git a/lam/docs/manual-sources/images/customFields14.png b/lam/docs/manual-sources/images/customFields14.png new file mode 100644 index 00000000..fc9561ae Binary files /dev/null and b/lam/docs/manual-sources/images/customFields14.png differ diff --git a/lam/docs/manual-sources/images/customFields15.png b/lam/docs/manual-sources/images/customFields15.png new file mode 100644 index 00000000..0d0fd370 Binary files /dev/null and b/lam/docs/manual-sources/images/customFields15.png differ diff --git a/lam/docs/manual-sources/images/customFields16.png b/lam/docs/manual-sources/images/customFields16.png new file mode 100644 index 00000000..e1a16e92 Binary files /dev/null and b/lam/docs/manual-sources/images/customFields16.png differ diff --git a/lam/docs/manual-sources/images/customFields17.png b/lam/docs/manual-sources/images/customFields17.png new file mode 100644 index 00000000..253e28ac Binary files /dev/null and b/lam/docs/manual-sources/images/customFields17.png differ diff --git a/lam/docs/manual-sources/images/customFields18.png b/lam/docs/manual-sources/images/customFields18.png new file mode 100644 index 00000000..857f6370 Binary files /dev/null and b/lam/docs/manual-sources/images/customFields18.png differ diff --git a/lam/docs/manual-sources/images/customFields19.png b/lam/docs/manual-sources/images/customFields19.png new file mode 100644 index 00000000..79f09a60 Binary files /dev/null and b/lam/docs/manual-sources/images/customFields19.png differ diff --git a/lam/docs/manual-sources/images/customFields2.png b/lam/docs/manual-sources/images/customFields2.png new file mode 100644 index 00000000..6fdc1754 Binary files /dev/null and b/lam/docs/manual-sources/images/customFields2.png differ diff --git a/lam/docs/manual-sources/images/customFields20.png b/lam/docs/manual-sources/images/customFields20.png new file mode 100644 index 00000000..d33f3cba Binary files /dev/null and b/lam/docs/manual-sources/images/customFields20.png differ diff --git a/lam/docs/manual-sources/images/customFields21.png b/lam/docs/manual-sources/images/customFields21.png new file mode 100644 index 00000000..96f387f0 Binary files /dev/null and b/lam/docs/manual-sources/images/customFields21.png differ diff --git a/lam/docs/manual-sources/images/customFields22.png b/lam/docs/manual-sources/images/customFields22.png new file mode 100644 index 00000000..7125bbdd Binary files /dev/null and b/lam/docs/manual-sources/images/customFields22.png differ diff --git a/lam/docs/manual-sources/images/customFields23.png b/lam/docs/manual-sources/images/customFields23.png new file mode 100644 index 00000000..48e734c1 Binary files /dev/null and b/lam/docs/manual-sources/images/customFields23.png differ diff --git a/lam/docs/manual-sources/images/customFields24.png b/lam/docs/manual-sources/images/customFields24.png new file mode 100644 index 00000000..d57de699 Binary files /dev/null and b/lam/docs/manual-sources/images/customFields24.png differ diff --git a/lam/docs/manual-sources/images/customFields25.png b/lam/docs/manual-sources/images/customFields25.png new file mode 100644 index 00000000..5e33d1f7 Binary files /dev/null and b/lam/docs/manual-sources/images/customFields25.png differ diff --git a/lam/docs/manual-sources/images/customFields3.png b/lam/docs/manual-sources/images/customFields3.png new file mode 100644 index 00000000..218c8360 Binary files /dev/null and b/lam/docs/manual-sources/images/customFields3.png differ diff --git a/lam/docs/manual-sources/images/customFields4.png b/lam/docs/manual-sources/images/customFields4.png new file mode 100644 index 00000000..2935f144 Binary files /dev/null and b/lam/docs/manual-sources/images/customFields4.png differ diff --git a/lam/docs/manual-sources/images/customFields5.png b/lam/docs/manual-sources/images/customFields5.png new file mode 100644 index 00000000..5e2b4457 Binary files /dev/null and b/lam/docs/manual-sources/images/customFields5.png differ diff --git a/lam/docs/manual-sources/images/customFields6.png b/lam/docs/manual-sources/images/customFields6.png new file mode 100644 index 00000000..ea4625e4 Binary files /dev/null and b/lam/docs/manual-sources/images/customFields6.png differ diff --git a/lam/docs/manual-sources/images/customFields7.png b/lam/docs/manual-sources/images/customFields7.png new file mode 100644 index 00000000..95fbe3ce Binary files /dev/null and b/lam/docs/manual-sources/images/customFields7.png differ diff --git a/lam/docs/manual-sources/images/customFields8.png b/lam/docs/manual-sources/images/customFields8.png new file mode 100644 index 00000000..41936eac Binary files /dev/null and b/lam/docs/manual-sources/images/customFields8.png differ diff --git a/lam/docs/manual-sources/images/customFields9.png b/lam/docs/manual-sources/images/customFields9.png new file mode 100644 index 00000000..6a5d819a Binary files /dev/null and b/lam/docs/manual-sources/images/customFields9.png differ diff --git a/lam/docs/manual-sources/images/customScripts.png b/lam/docs/manual-sources/images/customScripts.png new file mode 100644 index 00000000..d500e841 Binary files /dev/null and b/lam/docs/manual-sources/images/customScripts.png differ diff --git a/lam/docs/manual-sources/images/customScripts2.png b/lam/docs/manual-sources/images/customScripts2.png new file mode 100644 index 00000000..c0f05423 Binary files /dev/null and b/lam/docs/manual-sources/images/customScripts2.png differ diff --git a/lam/docs/manual-sources/images/ddns.png b/lam/docs/manual-sources/images/ddns.png new file mode 100644 index 00000000..64d65401 Binary files /dev/null and b/lam/docs/manual-sources/images/ddns.png differ diff --git a/lam/docs/manual-sources/images/debian.png b/lam/docs/manual-sources/images/debian.png new file mode 100644 index 00000000..411c9d96 Binary files /dev/null and b/lam/docs/manual-sources/images/debian.png differ diff --git a/lam/docs/manual-sources/images/device.png b/lam/docs/manual-sources/images/device.png new file mode 100644 index 00000000..1669c200 Binary files /dev/null and b/lam/docs/manual-sources/images/device.png differ diff --git a/lam/docs/manual-sources/images/dhcpConf1.png b/lam/docs/manual-sources/images/dhcpConf1.png new file mode 100644 index 00000000..ac065498 Binary files /dev/null and b/lam/docs/manual-sources/images/dhcpConf1.png differ diff --git a/lam/docs/manual-sources/images/dhcpConf2.png b/lam/docs/manual-sources/images/dhcpConf2.png new file mode 100644 index 00000000..dc47c315 Binary files /dev/null and b/lam/docs/manual-sources/images/dhcpConf2.png differ diff --git a/lam/docs/manual-sources/images/dhcpConf3.png b/lam/docs/manual-sources/images/dhcpConf3.png new file mode 100644 index 00000000..7111326e Binary files /dev/null and b/lam/docs/manual-sources/images/dhcpConf3.png differ diff --git a/lam/docs/manual-sources/images/dhcpMainSettings.png b/lam/docs/manual-sources/images/dhcpMainSettings.png new file mode 100644 index 00000000..e4f44c45 Binary files /dev/null and b/lam/docs/manual-sources/images/dhcpMainSettings.png differ diff --git a/lam/docs/manual-sources/images/dhcpSettings.png b/lam/docs/manual-sources/images/dhcpSettings.png new file mode 100644 index 00000000..c4ded2d6 Binary files /dev/null and b/lam/docs/manual-sources/images/dhcpSettings.png differ diff --git a/lam/docs/manual-sources/images/editView.png b/lam/docs/manual-sources/images/editView.png new file mode 100644 index 00000000..a765cac1 Binary files /dev/null and b/lam/docs/manual-sources/images/editView.png differ diff --git a/lam/docs/manual-sources/images/fedora.png b/lam/docs/manual-sources/images/fedora.png new file mode 100644 index 00000000..d1709788 Binary files /dev/null and b/lam/docs/manual-sources/images/fedora.png differ diff --git a/lam/docs/manual-sources/images/fileUpload1.png b/lam/docs/manual-sources/images/fileUpload1.png new file mode 100644 index 00000000..4f325bb7 Binary files /dev/null and b/lam/docs/manual-sources/images/fileUpload1.png differ diff --git a/lam/docs/manual-sources/images/fileUpload2.png b/lam/docs/manual-sources/images/fileUpload2.png new file mode 100644 index 00000000..b802442f Binary files /dev/null and b/lam/docs/manual-sources/images/fileUpload2.png differ diff --git a/lam/docs/manual-sources/images/fixedIP.png b/lam/docs/manual-sources/images/fixedIP.png new file mode 100644 index 00000000..97b6f35e Binary files /dev/null and b/lam/docs/manual-sources/images/fixedIP.png differ diff --git a/lam/docs/manual-sources/images/freebsd.png b/lam/docs/manual-sources/images/freebsd.png new file mode 100644 index 00000000..2fea6e00 Binary files /dev/null and b/lam/docs/manual-sources/images/freebsd.png differ diff --git a/lam/docs/manual-sources/images/groupOfNames1.png b/lam/docs/manual-sources/images/groupOfNames1.png new file mode 100644 index 00000000..32684b49 Binary files /dev/null and b/lam/docs/manual-sources/images/groupOfNames1.png differ diff --git a/lam/docs/manual-sources/images/groupOfNames2.png b/lam/docs/manual-sources/images/groupOfNames2.png new file mode 100644 index 00000000..fe9634fb Binary files /dev/null and b/lam/docs/manual-sources/images/groupOfNames2.png differ diff --git a/lam/docs/manual-sources/images/groupOfNames3.png b/lam/docs/manual-sources/images/groupOfNames3.png new file mode 100644 index 00000000..f9df268a Binary files /dev/null and b/lam/docs/manual-sources/images/groupOfNames3.png differ diff --git a/lam/docs/manual-sources/images/groupOfNames4.png b/lam/docs/manual-sources/images/groupOfNames4.png new file mode 100644 index 00000000..10686de1 Binary files /dev/null and b/lam/docs/manual-sources/images/groupOfNames4.png differ diff --git a/lam/docs/manual-sources/images/groupOfNames5.png b/lam/docs/manual-sources/images/groupOfNames5.png new file mode 100644 index 00000000..e9af49d2 Binary files /dev/null and b/lam/docs/manual-sources/images/groupOfNames5.png differ diff --git a/lam/docs/manual-sources/images/hostObject.png b/lam/docs/manual-sources/images/hostObject.png new file mode 100644 index 00000000..cf924f43 Binary files /dev/null and b/lam/docs/manual-sources/images/hostObject.png differ diff --git a/lam/docs/manual-sources/images/imapAccess1.png b/lam/docs/manual-sources/images/imapAccess1.png new file mode 100644 index 00000000..b2cd96b4 Binary files /dev/null and b/lam/docs/manual-sources/images/imapAccess1.png differ diff --git a/lam/docs/manual-sources/images/imapAccess2.png b/lam/docs/manual-sources/images/imapAccess2.png new file mode 100644 index 00000000..59ffd921 Binary files /dev/null and b/lam/docs/manual-sources/images/imapAccess2.png differ diff --git a/lam/docs/manual-sources/images/imapAccess3.png b/lam/docs/manual-sources/images/imapAccess3.png new file mode 100644 index 00000000..60ebcdc8 Binary files /dev/null and b/lam/docs/manual-sources/images/imapAccess3.png differ diff --git a/lam/docs/manual-sources/images/ipHost.png b/lam/docs/manual-sources/images/ipHost.png new file mode 100644 index 00000000..b983d43c Binary files /dev/null and b/lam/docs/manual-sources/images/ipHost.png differ diff --git a/lam/docs/manual-sources/images/lam_architecture.png b/lam/docs/manual-sources/images/lam_architecture.png new file mode 100644 index 00000000..accf60d9 Binary files /dev/null and b/lam/docs/manual-sources/images/lam_architecture.png differ diff --git a/lam/docs/manual-sources/images/lam_mail.png b/lam/docs/manual-sources/images/lam_mail.png new file mode 100644 index 00000000..4b979343 Binary files /dev/null and b/lam/docs/manual-sources/images/lam_mail.png differ diff --git a/lam/docs/manual-sources/images/lamdaemon.png b/lam/docs/manual-sources/images/lamdaemon.png new file mode 100644 index 00000000..39d9e7eb Binary files /dev/null and b/lam/docs/manual-sources/images/lamdaemon.png differ diff --git a/lam/docs/manual-sources/images/lamdaemon1.png b/lam/docs/manual-sources/images/lamdaemon1.png new file mode 100644 index 00000000..654302f8 Binary files /dev/null and b/lam/docs/manual-sources/images/lamdaemon1.png differ diff --git a/lam/docs/manual-sources/images/lamdaemonTest.png b/lam/docs/manual-sources/images/lamdaemonTest.png new file mode 100644 index 00000000..33a667bc Binary files /dev/null and b/lam/docs/manual-sources/images/lamdaemonTest.png differ diff --git a/lam/docs/manual-sources/images/ldapPublicKey.png b/lam/docs/manual-sources/images/ldapPublicKey.png new file mode 100644 index 00000000..b2b885e7 Binary files /dev/null and b/lam/docs/manual-sources/images/ldapPublicKey.png differ diff --git a/lam/docs/manual-sources/images/listConfig.png b/lam/docs/manual-sources/images/listConfig.png new file mode 100644 index 00000000..29ea92b5 Binary files /dev/null and b/lam/docs/manual-sources/images/listConfig.png differ diff --git a/lam/docs/manual-sources/images/login.png b/lam/docs/manual-sources/images/login.png new file mode 100644 index 00000000..bbf6fe44 Binary files /dev/null and b/lam/docs/manual-sources/images/login.png differ diff --git a/lam/docs/manual-sources/images/logo32.png b/lam/docs/manual-sources/images/logo32.png new file mode 100644 index 00000000..67d1fed3 Binary files /dev/null and b/lam/docs/manual-sources/images/logo32.png differ diff --git a/lam/docs/manual-sources/images/macAddress.png b/lam/docs/manual-sources/images/macAddress.png new file mode 100644 index 00000000..dd95d441 Binary files /dev/null and b/lam/docs/manual-sources/images/macAddress.png differ diff --git a/lam/docs/manual-sources/images/mailRouting.png b/lam/docs/manual-sources/images/mailRouting.png new file mode 100644 index 00000000..d146abdd Binary files /dev/null and b/lam/docs/manual-sources/images/mailRouting.png differ diff --git a/lam/docs/manual-sources/images/mainpage.png b/lam/docs/manual-sources/images/mainpage.png new file mode 100644 index 00000000..733ea8d0 Binary files /dev/null and b/lam/docs/manual-sources/images/mainpage.png differ diff --git a/lam/docs/manual-sources/images/mod_account.png b/lam/docs/manual-sources/images/mod_account.png new file mode 100644 index 00000000..87f4edbb Binary files /dev/null and b/lam/docs/manual-sources/images/mod_account.png differ diff --git a/lam/docs/manual-sources/images/mod_authorizedServices.png b/lam/docs/manual-sources/images/mod_authorizedServices.png new file mode 100644 index 00000000..69d3ccae Binary files /dev/null and b/lam/docs/manual-sources/images/mod_authorizedServices.png differ diff --git a/lam/docs/manual-sources/images/mod_authorizedServices2.png b/lam/docs/manual-sources/images/mod_authorizedServices2.png new file mode 100644 index 00000000..1b843530 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_authorizedServices2.png differ diff --git a/lam/docs/manual-sources/images/mod_authorizedServices3.png b/lam/docs/manual-sources/images/mod_authorizedServices3.png new file mode 100644 index 00000000..6cd6503b Binary files /dev/null and b/lam/docs/manual-sources/images/mod_authorizedServices3.png differ diff --git a/lam/docs/manual-sources/images/mod_bind1.png b/lam/docs/manual-sources/images/mod_bind1.png new file mode 100644 index 00000000..4e335f54 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_bind1.png differ diff --git a/lam/docs/manual-sources/images/mod_bind10.png b/lam/docs/manual-sources/images/mod_bind10.png new file mode 100644 index 00000000..9d18490d Binary files /dev/null and b/lam/docs/manual-sources/images/mod_bind10.png differ diff --git a/lam/docs/manual-sources/images/mod_bind11.png b/lam/docs/manual-sources/images/mod_bind11.png new file mode 100644 index 00000000..f5a4c5e7 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_bind11.png differ diff --git a/lam/docs/manual-sources/images/mod_bind12.png b/lam/docs/manual-sources/images/mod_bind12.png new file mode 100644 index 00000000..3f253dbc Binary files /dev/null and b/lam/docs/manual-sources/images/mod_bind12.png differ diff --git a/lam/docs/manual-sources/images/mod_bind2.png b/lam/docs/manual-sources/images/mod_bind2.png new file mode 100644 index 00000000..aac74e53 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_bind2.png differ diff --git a/lam/docs/manual-sources/images/mod_bind3.png b/lam/docs/manual-sources/images/mod_bind3.png new file mode 100644 index 00000000..a9cde6e2 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_bind3.png differ diff --git a/lam/docs/manual-sources/images/mod_bind4.png b/lam/docs/manual-sources/images/mod_bind4.png new file mode 100644 index 00000000..6ac165dc Binary files /dev/null and b/lam/docs/manual-sources/images/mod_bind4.png differ diff --git a/lam/docs/manual-sources/images/mod_bind5.png b/lam/docs/manual-sources/images/mod_bind5.png new file mode 100644 index 00000000..9a67ef96 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_bind5.png differ diff --git a/lam/docs/manual-sources/images/mod_bind6.png b/lam/docs/manual-sources/images/mod_bind6.png new file mode 100644 index 00000000..5debfc55 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_bind6.png differ diff --git a/lam/docs/manual-sources/images/mod_bind7.png b/lam/docs/manual-sources/images/mod_bind7.png new file mode 100644 index 00000000..527dd579 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_bind7.png differ diff --git a/lam/docs/manual-sources/images/mod_bind8.png b/lam/docs/manual-sources/images/mod_bind8.png new file mode 100644 index 00000000..010b459d Binary files /dev/null and b/lam/docs/manual-sources/images/mod_bind8.png differ diff --git a/lam/docs/manual-sources/images/mod_bind9.png b/lam/docs/manual-sources/images/mod_bind9.png new file mode 100644 index 00000000..a3847ff5 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_bind9.png differ diff --git a/lam/docs/manual-sources/images/mod_eduPerson.png b/lam/docs/manual-sources/images/mod_eduPerson.png new file mode 100644 index 00000000..4c769332 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_eduPerson.png differ diff --git a/lam/docs/manual-sources/images/mod_freeRadius1.png b/lam/docs/manual-sources/images/mod_freeRadius1.png new file mode 100644 index 00000000..9142e8ff Binary files /dev/null and b/lam/docs/manual-sources/images/mod_freeRadius1.png differ diff --git a/lam/docs/manual-sources/images/mod_freeRadius2.png b/lam/docs/manual-sources/images/mod_freeRadius2.png new file mode 100644 index 00000000..be4bdc45 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_freeRadius2.png differ diff --git a/lam/docs/manual-sources/images/mod_freeRadius3.png b/lam/docs/manual-sources/images/mod_freeRadius3.png new file mode 100644 index 00000000..d3fe92ee Binary files /dev/null and b/lam/docs/manual-sources/images/mod_freeRadius3.png differ diff --git a/lam/docs/manual-sources/images/mod_generalInformation.png b/lam/docs/manual-sources/images/mod_generalInformation.png new file mode 100644 index 00000000..f934312d Binary files /dev/null and b/lam/docs/manual-sources/images/mod_generalInformation.png differ diff --git a/lam/docs/manual-sources/images/mod_groupOfNamesUser.png b/lam/docs/manual-sources/images/mod_groupOfNamesUser.png new file mode 100644 index 00000000..b86579b0 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_groupOfNamesUser.png differ diff --git a/lam/docs/manual-sources/images/mod_groupOfNamesUser2.png b/lam/docs/manual-sources/images/mod_groupOfNamesUser2.png new file mode 100644 index 00000000..65d2994f Binary files /dev/null and b/lam/docs/manual-sources/images/mod_groupOfNamesUser2.png differ diff --git a/lam/docs/manual-sources/images/mod_kerberos1.png b/lam/docs/manual-sources/images/mod_kerberos1.png new file mode 100644 index 00000000..e32e6d95 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_kerberos1.png differ diff --git a/lam/docs/manual-sources/images/mod_kerberos2.png b/lam/docs/manual-sources/images/mod_kerberos2.png new file mode 100644 index 00000000..7b1d933a Binary files /dev/null and b/lam/docs/manual-sources/images/mod_kerberos2.png differ diff --git a/lam/docs/manual-sources/images/mod_kolab.png b/lam/docs/manual-sources/images/mod_kolab.png new file mode 100644 index 00000000..4fb1e490 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_kolab.png differ diff --git a/lam/docs/manual-sources/images/mod_kolab2.png b/lam/docs/manual-sources/images/mod_kolab2.png new file mode 100644 index 00000000..8b0a732a Binary files /dev/null and b/lam/docs/manual-sources/images/mod_kolab2.png differ diff --git a/lam/docs/manual-sources/images/mod_kolab3.png b/lam/docs/manual-sources/images/mod_kolab3.png new file mode 100644 index 00000000..867d1b4e Binary files /dev/null and b/lam/docs/manual-sources/images/mod_kolab3.png differ diff --git a/lam/docs/manual-sources/images/mod_kolab4.png b/lam/docs/manual-sources/images/mod_kolab4.png new file mode 100644 index 00000000..924abd05 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_kolab4.png differ diff --git a/lam/docs/manual-sources/images/mod_kolab5.png b/lam/docs/manual-sources/images/mod_kolab5.png new file mode 100644 index 00000000..55f1ecaa Binary files /dev/null and b/lam/docs/manual-sources/images/mod_kolab5.png differ diff --git a/lam/docs/manual-sources/images/mod_kolab6.png b/lam/docs/manual-sources/images/mod_kolab6.png new file mode 100644 index 00000000..0fc7a7ab Binary files /dev/null and b/lam/docs/manual-sources/images/mod_kolab6.png differ diff --git a/lam/docs/manual-sources/images/mod_kolab7.png b/lam/docs/manual-sources/images/mod_kolab7.png new file mode 100644 index 00000000..a0ceabb8 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_kolab7.png differ diff --git a/lam/docs/manual-sources/images/mod_kolab8.png b/lam/docs/manual-sources/images/mod_kolab8.png new file mode 100644 index 00000000..c5eab613 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_kolab8.png differ diff --git a/lam/docs/manual-sources/images/mod_kolab9.png b/lam/docs/manual-sources/images/mod_kolab9.png new file mode 100644 index 00000000..46b51a1f Binary files /dev/null and b/lam/docs/manual-sources/images/mod_kolab9.png differ diff --git a/lam/docs/manual-sources/images/mod_mitKerberos1.png b/lam/docs/manual-sources/images/mod_mitKerberos1.png new file mode 100644 index 00000000..49acdbe6 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_mitKerberos1.png differ diff --git a/lam/docs/manual-sources/images/mod_mitKerberos2.png b/lam/docs/manual-sources/images/mod_mitKerberos2.png new file mode 100644 index 00000000..6edb235a Binary files /dev/null and b/lam/docs/manual-sources/images/mod_mitKerberos2.png differ diff --git a/lam/docs/manual-sources/images/mod_oracle1.png b/lam/docs/manual-sources/images/mod_oracle1.png new file mode 100644 index 00000000..5ed9c151 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_oracle1.png differ diff --git a/lam/docs/manual-sources/images/mod_oracle2.png b/lam/docs/manual-sources/images/mod_oracle2.png new file mode 100644 index 00000000..94fa6480 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_oracle2.png differ diff --git a/lam/docs/manual-sources/images/mod_oracle3.png b/lam/docs/manual-sources/images/mod_oracle3.png new file mode 100644 index 00000000..954d54df Binary files /dev/null and b/lam/docs/manual-sources/images/mod_oracle3.png differ diff --git a/lam/docs/manual-sources/images/mod_oracle4.png b/lam/docs/manual-sources/images/mod_oracle4.png new file mode 100644 index 00000000..05b84fff Binary files /dev/null and b/lam/docs/manual-sources/images/mod_oracle4.png differ diff --git a/lam/docs/manual-sources/images/mod_organizationalRole1.png b/lam/docs/manual-sources/images/mod_organizationalRole1.png new file mode 100644 index 00000000..342fe185 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_organizationalRole1.png differ diff --git a/lam/docs/manual-sources/images/mod_organizationalRole2.png b/lam/docs/manual-sources/images/mod_organizationalRole2.png new file mode 100644 index 00000000..551b7ac0 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_organizationalRole2.png differ diff --git a/lam/docs/manual-sources/images/mod_organizationalRole3.png b/lam/docs/manual-sources/images/mod_organizationalRole3.png new file mode 100644 index 00000000..4bbbb67e Binary files /dev/null and b/lam/docs/manual-sources/images/mod_organizationalRole3.png differ diff --git a/lam/docs/manual-sources/images/mod_organizationalRole4.png b/lam/docs/manual-sources/images/mod_organizationalRole4.png new file mode 100644 index 00000000..0aa26d81 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_organizationalRole4.png differ diff --git a/lam/docs/manual-sources/images/mod_organizationalRole5.png b/lam/docs/manual-sources/images/mod_organizationalRole5.png new file mode 100644 index 00000000..34f71f3f Binary files /dev/null and b/lam/docs/manual-sources/images/mod_organizationalRole5.png differ diff --git a/lam/docs/manual-sources/images/mod_organizationalRoleUser1.png b/lam/docs/manual-sources/images/mod_organizationalRoleUser1.png new file mode 100644 index 00000000..33635137 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_organizationalRoleUser1.png differ diff --git a/lam/docs/manual-sources/images/mod_organizationalRoleUser2.png b/lam/docs/manual-sources/images/mod_organizationalRoleUser2.png new file mode 100644 index 00000000..9482888d Binary files /dev/null and b/lam/docs/manual-sources/images/mod_organizationalRoleUser2.png differ diff --git a/lam/docs/manual-sources/images/mod_personal.png b/lam/docs/manual-sources/images/mod_personal.png new file mode 100644 index 00000000..8f77b816 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_personal.png differ diff --git a/lam/docs/manual-sources/images/mod_personal2.png b/lam/docs/manual-sources/images/mod_personal2.png new file mode 100644 index 00000000..e3aaf4b9 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_personal2.png differ diff --git a/lam/docs/manual-sources/images/mod_personal3.png b/lam/docs/manual-sources/images/mod_personal3.png new file mode 100644 index 00000000..760e1c82 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_personal3.png differ diff --git a/lam/docs/manual-sources/images/mod_personal4.png b/lam/docs/manual-sources/images/mod_personal4.png new file mode 100644 index 00000000..51cfe53f Binary files /dev/null and b/lam/docs/manual-sources/images/mod_personal4.png differ diff --git a/lam/docs/manual-sources/images/mod_puppet1.png b/lam/docs/manual-sources/images/mod_puppet1.png new file mode 100644 index 00000000..a1415990 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_puppet1.png differ diff --git a/lam/docs/manual-sources/images/mod_puppet2.png b/lam/docs/manual-sources/images/mod_puppet2.png new file mode 100644 index 00000000..a77113fc Binary files /dev/null and b/lam/docs/manual-sources/images/mod_puppet2.png differ diff --git a/lam/docs/manual-sources/images/mod_puppet3.png b/lam/docs/manual-sources/images/mod_puppet3.png new file mode 100644 index 00000000..5176d07c Binary files /dev/null and b/lam/docs/manual-sources/images/mod_puppet3.png differ diff --git a/lam/docs/manual-sources/images/mod_pykotaCode1.png b/lam/docs/manual-sources/images/mod_pykotaCode1.png new file mode 100644 index 00000000..03fa75d4 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_pykotaCode1.png differ diff --git a/lam/docs/manual-sources/images/mod_pykotaCode2.png b/lam/docs/manual-sources/images/mod_pykotaCode2.png new file mode 100644 index 00000000..dfab75cb Binary files /dev/null and b/lam/docs/manual-sources/images/mod_pykotaCode2.png differ diff --git a/lam/docs/manual-sources/images/mod_pykotaCode3.png b/lam/docs/manual-sources/images/mod_pykotaCode3.png new file mode 100644 index 00000000..09fd916b Binary files /dev/null and b/lam/docs/manual-sources/images/mod_pykotaCode3.png differ diff --git a/lam/docs/manual-sources/images/mod_pykotaCode4.png b/lam/docs/manual-sources/images/mod_pykotaCode4.png new file mode 100644 index 00000000..f0844c2d Binary files /dev/null and b/lam/docs/manual-sources/images/mod_pykotaCode4.png differ diff --git a/lam/docs/manual-sources/images/mod_pykotaGroup1.png b/lam/docs/manual-sources/images/mod_pykotaGroup1.png new file mode 100644 index 00000000..06f9da6f Binary files /dev/null and b/lam/docs/manual-sources/images/mod_pykotaGroup1.png differ diff --git a/lam/docs/manual-sources/images/mod_pykotaGroup2.png b/lam/docs/manual-sources/images/mod_pykotaGroup2.png new file mode 100644 index 00000000..2155898d Binary files /dev/null and b/lam/docs/manual-sources/images/mod_pykotaGroup2.png differ diff --git a/lam/docs/manual-sources/images/mod_pykotaPrinter1.png b/lam/docs/manual-sources/images/mod_pykotaPrinter1.png new file mode 100644 index 00000000..61726766 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_pykotaPrinter1.png differ diff --git a/lam/docs/manual-sources/images/mod_pykotaPrinter2.png b/lam/docs/manual-sources/images/mod_pykotaPrinter2.png new file mode 100644 index 00000000..3fa84def Binary files /dev/null and b/lam/docs/manual-sources/images/mod_pykotaPrinter2.png differ diff --git a/lam/docs/manual-sources/images/mod_pykotaPrinter3.png b/lam/docs/manual-sources/images/mod_pykotaPrinter3.png new file mode 100644 index 00000000..1b02e8e4 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_pykotaPrinter3.png differ diff --git a/lam/docs/manual-sources/images/mod_pykotaPrinter4.png b/lam/docs/manual-sources/images/mod_pykotaPrinter4.png new file mode 100644 index 00000000..e3d08670 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_pykotaPrinter4.png differ diff --git a/lam/docs/manual-sources/images/mod_pykotaPrinter5.png b/lam/docs/manual-sources/images/mod_pykotaPrinter5.png new file mode 100644 index 00000000..790796ec Binary files /dev/null and b/lam/docs/manual-sources/images/mod_pykotaPrinter5.png differ diff --git a/lam/docs/manual-sources/images/mod_pykotaUser1.png b/lam/docs/manual-sources/images/mod_pykotaUser1.png new file mode 100644 index 00000000..3c9ea84b Binary files /dev/null and b/lam/docs/manual-sources/images/mod_pykotaUser1.png differ diff --git a/lam/docs/manual-sources/images/mod_pykotaUser2.png b/lam/docs/manual-sources/images/mod_pykotaUser2.png new file mode 100644 index 00000000..6d99f955 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_pykotaUser2.png differ diff --git a/lam/docs/manual-sources/images/mod_pykotaUser3.png b/lam/docs/manual-sources/images/mod_pykotaUser3.png new file mode 100644 index 00000000..90a3c383 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_pykotaUser3.png differ diff --git a/lam/docs/manual-sources/images/mod_pykotaUser4.png b/lam/docs/manual-sources/images/mod_pykotaUser4.png new file mode 100644 index 00000000..2b539163 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_pykotaUser4.png differ diff --git a/lam/docs/manual-sources/images/mod_pykotaUser5.png b/lam/docs/manual-sources/images/mod_pykotaUser5.png new file mode 100644 index 00000000..ce240ae9 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_pykotaUser5.png differ diff --git a/lam/docs/manual-sources/images/mod_qmail1.png b/lam/docs/manual-sources/images/mod_qmail1.png new file mode 100644 index 00000000..d16da642 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_qmail1.png differ diff --git a/lam/docs/manual-sources/images/mod_qmail2.png b/lam/docs/manual-sources/images/mod_qmail2.png new file mode 100644 index 00000000..2d9c2d85 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_qmail2.png differ diff --git a/lam/docs/manual-sources/images/mod_quotaGroup.png b/lam/docs/manual-sources/images/mod_quotaGroup.png new file mode 100644 index 00000000..3072cad4 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_quotaGroup.png differ diff --git a/lam/docs/manual-sources/images/mod_quotaUser.png b/lam/docs/manual-sources/images/mod_quotaUser.png new file mode 100644 index 00000000..73ebf97a Binary files /dev/null and b/lam/docs/manual-sources/images/mod_quotaUser.png differ diff --git a/lam/docs/manual-sources/images/mod_samba3User1.png b/lam/docs/manual-sources/images/mod_samba3User1.png new file mode 100644 index 00000000..01a62745 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_samba3User1.png differ diff --git a/lam/docs/manual-sources/images/mod_samba3User2.png b/lam/docs/manual-sources/images/mod_samba3User2.png new file mode 100644 index 00000000..db1d972c Binary files /dev/null and b/lam/docs/manual-sources/images/mod_samba3User2.png differ diff --git a/lam/docs/manual-sources/images/mod_samba3User3.png b/lam/docs/manual-sources/images/mod_samba3User3.png new file mode 100644 index 00000000..ab8e25f5 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_samba3User3.png differ diff --git a/lam/docs/manual-sources/images/mod_sambaGroup.png b/lam/docs/manual-sources/images/mod_sambaGroup.png new file mode 100644 index 00000000..320f0851 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_sambaGroup.png differ diff --git a/lam/docs/manual-sources/images/mod_sambaHost1.png b/lam/docs/manual-sources/images/mod_sambaHost1.png new file mode 100644 index 00000000..d5af4a8f Binary files /dev/null and b/lam/docs/manual-sources/images/mod_sambaHost1.png differ diff --git a/lam/docs/manual-sources/images/mod_sambaHost2.png b/lam/docs/manual-sources/images/mod_sambaHost2.png new file mode 100644 index 00000000..1b0c21b9 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_sambaHost2.png differ diff --git a/lam/docs/manual-sources/images/mod_shadow.png b/lam/docs/manual-sources/images/mod_shadow.png new file mode 100644 index 00000000..e89824c5 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_shadow.png differ diff --git a/lam/docs/manual-sources/images/mod_systemQuotas.png b/lam/docs/manual-sources/images/mod_systemQuotas.png new file mode 100644 index 00000000..61117964 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_systemQuotas.png differ diff --git a/lam/docs/manual-sources/images/mod_unixGroup.png b/lam/docs/manual-sources/images/mod_unixGroup.png new file mode 100644 index 00000000..ac3383ae Binary files /dev/null and b/lam/docs/manual-sources/images/mod_unixGroup.png differ diff --git a/lam/docs/manual-sources/images/mod_unixGroup2.png b/lam/docs/manual-sources/images/mod_unixGroup2.png new file mode 100644 index 00000000..31fafa19 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_unixGroup2.png differ diff --git a/lam/docs/manual-sources/images/mod_unixGroupConfig.png b/lam/docs/manual-sources/images/mod_unixGroupConfig.png new file mode 100644 index 00000000..389d7fe4 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_unixGroupConfig.png differ diff --git a/lam/docs/manual-sources/images/mod_unixGroupConfig1.png b/lam/docs/manual-sources/images/mod_unixGroupConfig1.png new file mode 100644 index 00000000..ba9f2d8a Binary files /dev/null and b/lam/docs/manual-sources/images/mod_unixGroupConfig1.png differ diff --git a/lam/docs/manual-sources/images/mod_unixGroupLAMPro.png b/lam/docs/manual-sources/images/mod_unixGroupLAMPro.png new file mode 100644 index 00000000..687a6dfd Binary files /dev/null and b/lam/docs/manual-sources/images/mod_unixGroupLAMPro.png differ diff --git a/lam/docs/manual-sources/images/mod_unixUser.png b/lam/docs/manual-sources/images/mod_unixUser.png new file mode 100644 index 00000000..dca14d74 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_unixUser.png differ diff --git a/lam/docs/manual-sources/images/mod_unixUserConfig.png b/lam/docs/manual-sources/images/mod_unixUserConfig.png new file mode 100644 index 00000000..3dd0c05c Binary files /dev/null and b/lam/docs/manual-sources/images/mod_unixUserConfig.png differ diff --git a/lam/docs/manual-sources/images/mod_unixUserGroups.png b/lam/docs/manual-sources/images/mod_unixUserGroups.png new file mode 100644 index 00000000..cd2a6ca6 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_unixUserGroups.png differ diff --git a/lam/docs/manual-sources/images/mod_unixUserHomedir.png b/lam/docs/manual-sources/images/mod_unixUserHomedir.png new file mode 100644 index 00000000..d2e6c91b Binary files /dev/null and b/lam/docs/manual-sources/images/mod_unixUserHomedir.png differ diff --git a/lam/docs/manual-sources/images/mod_windowsGroup1.png b/lam/docs/manual-sources/images/mod_windowsGroup1.png new file mode 100644 index 00000000..58da7dbc Binary files /dev/null and b/lam/docs/manual-sources/images/mod_windowsGroup1.png differ diff --git a/lam/docs/manual-sources/images/mod_windowsGroup2.png b/lam/docs/manual-sources/images/mod_windowsGroup2.png new file mode 100644 index 00000000..a99f4f21 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_windowsGroup2.png differ diff --git a/lam/docs/manual-sources/images/mod_windowsGroup3.png b/lam/docs/manual-sources/images/mod_windowsGroup3.png new file mode 100644 index 00000000..cb91ae02 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_windowsGroup3.png differ diff --git a/lam/docs/manual-sources/images/mod_windowsGroup4.png b/lam/docs/manual-sources/images/mod_windowsGroup4.png new file mode 100644 index 00000000..310188f8 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_windowsGroup4.png differ diff --git a/lam/docs/manual-sources/images/mod_windowsServer1.png b/lam/docs/manual-sources/images/mod_windowsServer1.png new file mode 100644 index 00000000..d44256a8 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_windowsServer1.png differ diff --git a/lam/docs/manual-sources/images/mod_windowsServer2.png b/lam/docs/manual-sources/images/mod_windowsServer2.png new file mode 100644 index 00000000..3203a949 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_windowsServer2.png differ diff --git a/lam/docs/manual-sources/images/mod_windowsServer3.png b/lam/docs/manual-sources/images/mod_windowsServer3.png new file mode 100644 index 00000000..acfdf732 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_windowsServer3.png differ diff --git a/lam/docs/manual-sources/images/mod_windowsUser1.png b/lam/docs/manual-sources/images/mod_windowsUser1.png new file mode 100644 index 00000000..ec47c77d Binary files /dev/null and b/lam/docs/manual-sources/images/mod_windowsUser1.png differ diff --git a/lam/docs/manual-sources/images/mod_windowsUser2.png b/lam/docs/manual-sources/images/mod_windowsUser2.png new file mode 100644 index 00000000..43d10859 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_windowsUser2.png differ diff --git a/lam/docs/manual-sources/images/mod_windowsUser3.png b/lam/docs/manual-sources/images/mod_windowsUser3.png new file mode 100644 index 00000000..6d17e707 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_windowsUser3.png differ diff --git a/lam/docs/manual-sources/images/mod_windowsUser4.png b/lam/docs/manual-sources/images/mod_windowsUser4.png new file mode 100644 index 00000000..c6e422f2 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_windowsUser4.png differ diff --git a/lam/docs/manual-sources/images/mod_windowsUser5.png b/lam/docs/manual-sources/images/mod_windowsUser5.png new file mode 100644 index 00000000..8077ed56 Binary files /dev/null and b/lam/docs/manual-sources/images/mod_windowsUser5.png differ diff --git a/lam/docs/manual-sources/images/multiEdit1.png b/lam/docs/manual-sources/images/multiEdit1.png new file mode 100644 index 00000000..b2c90132 Binary files /dev/null and b/lam/docs/manual-sources/images/multiEdit1.png differ diff --git a/lam/docs/manual-sources/images/multiEdit2.png b/lam/docs/manual-sources/images/multiEdit2.png new file mode 100644 index 00000000..195b5104 Binary files /dev/null and b/lam/docs/manual-sources/images/multiEdit2.png differ diff --git a/lam/docs/manual-sources/images/multiEdit3.png b/lam/docs/manual-sources/images/multiEdit3.png new file mode 100644 index 00000000..362903ba Binary files /dev/null and b/lam/docs/manual-sources/images/multiEdit3.png differ diff --git a/lam/docs/manual-sources/images/nisMailAlias1.png b/lam/docs/manual-sources/images/nisMailAlias1.png new file mode 100644 index 00000000..f0ed1112 Binary files /dev/null and b/lam/docs/manual-sources/images/nisMailAlias1.png differ diff --git a/lam/docs/manual-sources/images/nisMailAlias2.png b/lam/docs/manual-sources/images/nisMailAlias2.png new file mode 100644 index 00000000..50824fb2 Binary files /dev/null and b/lam/docs/manual-sources/images/nisMailAlias2.png differ diff --git a/lam/docs/manual-sources/images/nisMailAlias3.png b/lam/docs/manual-sources/images/nisMailAlias3.png new file mode 100644 index 00000000..9cf211cb Binary files /dev/null and b/lam/docs/manual-sources/images/nisMailAlias3.png differ diff --git a/lam/docs/manual-sources/images/nisMailAliasUser1.png b/lam/docs/manual-sources/images/nisMailAliasUser1.png new file mode 100644 index 00000000..13988475 Binary files /dev/null and b/lam/docs/manual-sources/images/nisMailAliasUser1.png differ diff --git a/lam/docs/manual-sources/images/nisMailAliasUser2.png b/lam/docs/manual-sources/images/nisMailAliasUser2.png new file mode 100644 index 00000000..4afdf953 Binary files /dev/null and b/lam/docs/manual-sources/images/nisMailAliasUser2.png differ diff --git a/lam/docs/manual-sources/images/nisMailAliasUser3.png b/lam/docs/manual-sources/images/nisMailAliasUser3.png new file mode 100644 index 00000000..d2396159 Binary files /dev/null and b/lam/docs/manual-sources/images/nisMailAliasUser3.png differ diff --git a/lam/docs/manual-sources/images/nisMailAliasUser4.png b/lam/docs/manual-sources/images/nisMailAliasUser4.png new file mode 100644 index 00000000..e880080f Binary files /dev/null and b/lam/docs/manual-sources/images/nisMailAliasUser4.png differ diff --git a/lam/docs/manual-sources/images/nisNetgroup.png b/lam/docs/manual-sources/images/nisNetgroup.png new file mode 100644 index 00000000..83b8dcf0 Binary files /dev/null and b/lam/docs/manual-sources/images/nisNetgroup.png differ diff --git a/lam/docs/manual-sources/images/nisObject.png b/lam/docs/manual-sources/images/nisObject.png new file mode 100644 index 00000000..c1f81038 Binary files /dev/null and b/lam/docs/manual-sources/images/nisObject.png differ diff --git a/lam/docs/manual-sources/images/ouEditor.png b/lam/docs/manual-sources/images/ouEditor.png new file mode 100644 index 00000000..fbeca6c4 Binary files /dev/null and b/lam/docs/manual-sources/images/ouEditor.png differ diff --git a/lam/docs/manual-sources/images/passwordReset1.png b/lam/docs/manual-sources/images/passwordReset1.png new file mode 100644 index 00000000..63cb1cf9 Binary files /dev/null and b/lam/docs/manual-sources/images/passwordReset1.png differ diff --git a/lam/docs/manual-sources/images/passwordReset2.png b/lam/docs/manual-sources/images/passwordReset2.png new file mode 100644 index 00000000..df7712ae Binary files /dev/null and b/lam/docs/manual-sources/images/passwordReset2.png differ diff --git a/lam/docs/manual-sources/images/passwordReset3.png b/lam/docs/manual-sources/images/passwordReset3.png new file mode 100644 index 00000000..4870120e Binary files /dev/null and b/lam/docs/manual-sources/images/passwordReset3.png differ diff --git a/lam/docs/manual-sources/images/passwordSelfReset1.png b/lam/docs/manual-sources/images/passwordSelfReset1.png new file mode 100644 index 00000000..9718f35b Binary files /dev/null and b/lam/docs/manual-sources/images/passwordSelfReset1.png differ diff --git a/lam/docs/manual-sources/images/passwordSelfReset2.png b/lam/docs/manual-sources/images/passwordSelfReset2.png new file mode 100644 index 00000000..3bcc9f5a Binary files /dev/null and b/lam/docs/manual-sources/images/passwordSelfReset2.png differ diff --git a/lam/docs/manual-sources/images/passwordSelfReset3.png b/lam/docs/manual-sources/images/passwordSelfReset3.png new file mode 100644 index 00000000..1b5adde3 Binary files /dev/null and b/lam/docs/manual-sources/images/passwordSelfReset3.png differ diff --git a/lam/docs/manual-sources/images/passwordSelfReset4.png b/lam/docs/manual-sources/images/passwordSelfReset4.png new file mode 100644 index 00000000..85d089db Binary files /dev/null and b/lam/docs/manual-sources/images/passwordSelfReset4.png differ diff --git a/lam/docs/manual-sources/images/passwordSelfReset5.png b/lam/docs/manual-sources/images/passwordSelfReset5.png new file mode 100644 index 00000000..1b03dfd6 Binary files /dev/null and b/lam/docs/manual-sources/images/passwordSelfReset5.png differ diff --git a/lam/docs/manual-sources/images/passwordSelfReset6.png b/lam/docs/manual-sources/images/passwordSelfReset6.png new file mode 100644 index 00000000..f9a8b191 Binary files /dev/null and b/lam/docs/manual-sources/images/passwordSelfReset6.png differ diff --git a/lam/docs/manual-sources/images/passwordSelfReset7.png b/lam/docs/manual-sources/images/passwordSelfReset7.png new file mode 100644 index 00000000..4b37a15b Binary files /dev/null and b/lam/docs/manual-sources/images/passwordSelfReset7.png differ diff --git a/lam/docs/manual-sources/images/passwordSelfReset8.png b/lam/docs/manual-sources/images/passwordSelfReset8.png new file mode 100644 index 00000000..8a521c11 Binary files /dev/null and b/lam/docs/manual-sources/images/passwordSelfReset8.png differ diff --git a/lam/docs/manual-sources/images/passwordSelfReset9.png b/lam/docs/manual-sources/images/passwordSelfReset9.png new file mode 100644 index 00000000..2f847661 Binary files /dev/null and b/lam/docs/manual-sources/images/passwordSelfReset9.png differ diff --git a/lam/docs/manual-sources/images/pdfEditor.png b/lam/docs/manual-sources/images/pdfEditor.png new file mode 100644 index 00000000..03b60527 Binary files /dev/null and b/lam/docs/manual-sources/images/pdfEditor.png differ diff --git a/lam/docs/manual-sources/images/pdfEditor2.png b/lam/docs/manual-sources/images/pdfEditor2.png new file mode 100644 index 00000000..1e52858d Binary files /dev/null and b/lam/docs/manual-sources/images/pdfEditor2.png differ diff --git a/lam/docs/manual-sources/images/pdfEditor3.png b/lam/docs/manual-sources/images/pdfEditor3.png new file mode 100644 index 00000000..0f264dca Binary files /dev/null and b/lam/docs/manual-sources/images/pdfEditor3.png differ diff --git a/lam/docs/manual-sources/images/pdfEditor4.png b/lam/docs/manual-sources/images/pdfEditor4.png new file mode 100644 index 00000000..acd0a7f2 Binary files /dev/null and b/lam/docs/manual-sources/images/pdfEditor4.png differ diff --git a/lam/docs/manual-sources/images/pdfEditor5.png b/lam/docs/manual-sources/images/pdfEditor5.png new file mode 100644 index 00000000..c6938065 Binary files /dev/null and b/lam/docs/manual-sources/images/pdfEditor5.png differ diff --git a/lam/docs/manual-sources/images/pdfEditor6.png b/lam/docs/manual-sources/images/pdfEditor6.png new file mode 100644 index 00000000..95bf94b8 Binary files /dev/null and b/lam/docs/manual-sources/images/pdfEditor6.png differ diff --git a/lam/docs/manual-sources/images/ppolicy.png b/lam/docs/manual-sources/images/ppolicy.png new file mode 100644 index 00000000..b9a5c9bf Binary files /dev/null and b/lam/docs/manual-sources/images/ppolicy.png differ diff --git a/lam/docs/manual-sources/images/ppolicyUser.png b/lam/docs/manual-sources/images/ppolicyUser.png new file mode 100644 index 00000000..e4da75bc Binary files /dev/null and b/lam/docs/manual-sources/images/ppolicyUser.png differ diff --git a/lam/docs/manual-sources/images/profileEditor.png b/lam/docs/manual-sources/images/profileEditor.png new file mode 100644 index 00000000..20e309b8 Binary files /dev/null and b/lam/docs/manual-sources/images/profileEditor.png differ diff --git a/lam/docs/manual-sources/images/profileEditor2.png b/lam/docs/manual-sources/images/profileEditor2.png new file mode 100644 index 00000000..059ccb30 Binary files /dev/null and b/lam/docs/manual-sources/images/profileEditor2.png differ diff --git a/lam/docs/manual-sources/images/profileEditor3.png b/lam/docs/manual-sources/images/profileEditor3.png new file mode 100644 index 00000000..de2f1e8e Binary files /dev/null and b/lam/docs/manual-sources/images/profileEditor3.png differ diff --git a/lam/docs/manual-sources/images/profileEditor4.png b/lam/docs/manual-sources/images/profileEditor4.png new file mode 100644 index 00000000..07593cad Binary files /dev/null and b/lam/docs/manual-sources/images/profileEditor4.png differ diff --git a/lam/docs/manual-sources/images/profileEditor5.png b/lam/docs/manual-sources/images/profileEditor5.png new file mode 100644 index 00000000..7c83ce5f Binary files /dev/null and b/lam/docs/manual-sources/images/profileEditor5.png differ diff --git a/lam/docs/manual-sources/images/ranges.png b/lam/docs/manual-sources/images/ranges.png new file mode 100644 index 00000000..2bc7c4da Binary files /dev/null and b/lam/docs/manual-sources/images/ranges.png differ diff --git a/lam/docs/manual-sources/images/rfc2307bis.png b/lam/docs/manual-sources/images/rfc2307bis.png new file mode 100644 index 00000000..9e3ab688 Binary files /dev/null and b/lam/docs/manual-sources/images/rfc2307bis.png differ diff --git a/lam/docs/manual-sources/images/sambaDomains1.png b/lam/docs/manual-sources/images/sambaDomains1.png new file mode 100644 index 00000000..dae0fc38 Binary files /dev/null and b/lam/docs/manual-sources/images/sambaDomains1.png differ diff --git a/lam/docs/manual-sources/images/sambaDomains2.png b/lam/docs/manual-sources/images/sambaDomains2.png new file mode 100644 index 00000000..f9022775 Binary files /dev/null and b/lam/docs/manual-sources/images/sambaDomains2.png differ diff --git a/lam/docs/manual-sources/images/schemaBrowser.png b/lam/docs/manual-sources/images/schemaBrowser.png new file mode 100644 index 00000000..a709e14f Binary files /dev/null and b/lam/docs/manual-sources/images/schemaBrowser.png differ diff --git a/lam/docs/manual-sources/images/schemaTest.png b/lam/docs/manual-sources/images/schemaTest.png new file mode 100644 index 00000000..9d520a01 Binary files /dev/null and b/lam/docs/manual-sources/images/schemaTest.png differ diff --git a/lam/docs/manual-sources/images/schema_alias.png b/lam/docs/manual-sources/images/schema_alias.png new file mode 100644 index 00000000..7eebfdce Binary files /dev/null and b/lam/docs/manual-sources/images/schema_alias.png differ diff --git a/lam/docs/manual-sources/images/schema_asterisk.png b/lam/docs/manual-sources/images/schema_asterisk.png new file mode 100644 index 00000000..343d24ba Binary files /dev/null and b/lam/docs/manual-sources/images/schema_asterisk.png differ diff --git a/lam/docs/manual-sources/images/schema_authorizedServices.png b/lam/docs/manual-sources/images/schema_authorizedServices.png new file mode 100644 index 00000000..ea221c06 Binary files /dev/null and b/lam/docs/manual-sources/images/schema_authorizedServices.png differ diff --git a/lam/docs/manual-sources/images/schema_bind.png b/lam/docs/manual-sources/images/schema_bind.png new file mode 100644 index 00000000..5acff48d Binary files /dev/null and b/lam/docs/manual-sources/images/schema_bind.png differ diff --git a/lam/docs/manual-sources/images/schema_dhcp.png b/lam/docs/manual-sources/images/schema_dhcp.png new file mode 100644 index 00000000..5acff48d Binary files /dev/null and b/lam/docs/manual-sources/images/schema_dhcp.png differ diff --git a/lam/docs/manual-sources/images/schema_eduPerson.png b/lam/docs/manual-sources/images/schema_eduPerson.png new file mode 100644 index 00000000..6728ac61 Binary files /dev/null and b/lam/docs/manual-sources/images/schema_eduPerson.png differ diff --git a/lam/docs/manual-sources/images/schema_freeRadius.png b/lam/docs/manual-sources/images/schema_freeRadius.png new file mode 100644 index 00000000..301d850c Binary files /dev/null and b/lam/docs/manual-sources/images/schema_freeRadius.png differ diff --git a/lam/docs/manual-sources/images/schema_group.png b/lam/docs/manual-sources/images/schema_group.png new file mode 100644 index 00000000..8f69e2b9 Binary files /dev/null and b/lam/docs/manual-sources/images/schema_group.png differ diff --git a/lam/docs/manual-sources/images/schema_groupOfNames.png b/lam/docs/manual-sources/images/schema_groupOfNames.png new file mode 100644 index 00000000..3e767c7c Binary files /dev/null and b/lam/docs/manual-sources/images/schema_groupOfNames.png differ diff --git a/lam/docs/manual-sources/images/schema_heimdal.png b/lam/docs/manual-sources/images/schema_heimdal.png new file mode 100644 index 00000000..fb504fd7 Binary files /dev/null and b/lam/docs/manual-sources/images/schema_heimdal.png differ diff --git a/lam/docs/manual-sources/images/schema_hostObject.png b/lam/docs/manual-sources/images/schema_hostObject.png new file mode 100644 index 00000000..33df4ef9 Binary files /dev/null and b/lam/docs/manual-sources/images/schema_hostObject.png differ diff --git a/lam/docs/manual-sources/images/schema_inetOrgPerson.png b/lam/docs/manual-sources/images/schema_inetOrgPerson.png new file mode 100644 index 00000000..e2a44eca Binary files /dev/null and b/lam/docs/manual-sources/images/schema_inetOrgPerson.png differ diff --git a/lam/docs/manual-sources/images/schema_ipHost.png b/lam/docs/manual-sources/images/schema_ipHost.png new file mode 100644 index 00000000..b1d69da5 Binary files /dev/null and b/lam/docs/manual-sources/images/schema_ipHost.png differ diff --git a/lam/docs/manual-sources/images/schema_kolab.png b/lam/docs/manual-sources/images/schema_kolab.png new file mode 100644 index 00000000..31b6f339 Binary files /dev/null and b/lam/docs/manual-sources/images/schema_kolab.png differ diff --git a/lam/docs/manual-sources/images/schema_mac.png b/lam/docs/manual-sources/images/schema_mac.png new file mode 100644 index 00000000..eb153a33 Binary files /dev/null and b/lam/docs/manual-sources/images/schema_mac.png differ diff --git a/lam/docs/manual-sources/images/schema_mailAlias.png b/lam/docs/manual-sources/images/schema_mailAlias.png new file mode 100644 index 00000000..6079a528 Binary files /dev/null and b/lam/docs/manual-sources/images/schema_mailAlias.png differ diff --git a/lam/docs/manual-sources/images/schema_mitKerberos.png b/lam/docs/manual-sources/images/schema_mitKerberos.png new file mode 100644 index 00000000..f45a7790 Binary files /dev/null and b/lam/docs/manual-sources/images/schema_mitKerberos.png differ diff --git a/lam/docs/manual-sources/images/schema_netgroup.png b/lam/docs/manual-sources/images/schema_netgroup.png new file mode 100644 index 00000000..8f69e2b9 Binary files /dev/null and b/lam/docs/manual-sources/images/schema_netgroup.png differ diff --git a/lam/docs/manual-sources/images/schema_nisObject.png b/lam/docs/manual-sources/images/schema_nisObject.png new file mode 100644 index 00000000..22e2fe12 Binary files /dev/null and b/lam/docs/manual-sources/images/schema_nisObject.png differ diff --git a/lam/docs/manual-sources/images/schema_oracle.png b/lam/docs/manual-sources/images/schema_oracle.png new file mode 100644 index 00000000..73608619 Binary files /dev/null and b/lam/docs/manual-sources/images/schema_oracle.png differ diff --git a/lam/docs/manual-sources/images/schema_ppolicy.png b/lam/docs/manual-sources/images/schema_ppolicy.png new file mode 100644 index 00000000..04a05c1c Binary files /dev/null and b/lam/docs/manual-sources/images/schema_ppolicy.png differ diff --git a/lam/docs/manual-sources/images/schema_puppet.png b/lam/docs/manual-sources/images/schema_puppet.png new file mode 100644 index 00000000..d44d55fa Binary files /dev/null and b/lam/docs/manual-sources/images/schema_puppet.png differ diff --git a/lam/docs/manual-sources/images/schema_pykota.png b/lam/docs/manual-sources/images/schema_pykota.png new file mode 100644 index 00000000..cc17b26b Binary files /dev/null and b/lam/docs/manual-sources/images/schema_pykota.png differ diff --git a/lam/docs/manual-sources/images/schema_quota.png b/lam/docs/manual-sources/images/schema_quota.png new file mode 100644 index 00000000..7e8d7017 Binary files /dev/null and b/lam/docs/manual-sources/images/schema_quota.png differ diff --git a/lam/docs/manual-sources/images/schema_samba.png b/lam/docs/manual-sources/images/schema_samba.png new file mode 100644 index 00000000..3d2e6885 Binary files /dev/null and b/lam/docs/manual-sources/images/schema_samba.png differ diff --git a/lam/docs/manual-sources/images/schema_ssh.png b/lam/docs/manual-sources/images/schema_ssh.png new file mode 100644 index 00000000..ccf8497e Binary files /dev/null and b/lam/docs/manual-sources/images/schema_ssh.png differ diff --git a/lam/docs/manual-sources/images/schema_sudo.png b/lam/docs/manual-sources/images/schema_sudo.png new file mode 100644 index 00000000..677306cb Binary files /dev/null and b/lam/docs/manual-sources/images/schema_sudo.png differ diff --git a/lam/docs/manual-sources/images/schema_unix.png b/lam/docs/manual-sources/images/schema_unix.png new file mode 100644 index 00000000..db2e8b7b Binary files /dev/null and b/lam/docs/manual-sources/images/schema_unix.png differ diff --git a/lam/docs/manual-sources/images/schema_user.png b/lam/docs/manual-sources/images/schema_user.png new file mode 100644 index 00000000..7be48fb8 Binary files /dev/null and b/lam/docs/manual-sources/images/schema_user.png differ diff --git a/lam/docs/manual-sources/images/schema_zarafa.png b/lam/docs/manual-sources/images/schema_zarafa.png new file mode 100644 index 00000000..2f737429 Binary files /dev/null and b/lam/docs/manual-sources/images/schema_zarafa.png differ diff --git a/lam/docs/manual-sources/images/selfServiceProxy.png b/lam/docs/manual-sources/images/selfServiceProxy.png new file mode 100644 index 00000000..dac3316a Binary files /dev/null and b/lam/docs/manual-sources/images/selfServiceProxy.png differ diff --git a/lam/docs/manual-sources/images/serverInfo.png b/lam/docs/manual-sources/images/serverInfo.png new file mode 100644 index 00000000..42bbf42a Binary files /dev/null and b/lam/docs/manual-sources/images/serverInfo.png differ diff --git a/lam/docs/manual-sources/images/sudoRole.png b/lam/docs/manual-sources/images/sudoRole.png new file mode 100644 index 00000000..1e1c33c1 Binary files /dev/null and b/lam/docs/manual-sources/images/sudoRole.png differ diff --git a/lam/docs/manual-sources/images/sudoRole1.png b/lam/docs/manual-sources/images/sudoRole1.png new file mode 100644 index 00000000..b11dcf41 Binary files /dev/null and b/lam/docs/manual-sources/images/sudoRole1.png differ diff --git a/lam/docs/manual-sources/images/sudoRole2.png b/lam/docs/manual-sources/images/sudoRole2.png new file mode 100644 index 00000000..4a54a44e Binary files /dev/null and b/lam/docs/manual-sources/images/sudoRole2.png differ diff --git a/lam/docs/manual-sources/images/suse.png b/lam/docs/manual-sources/images/suse.png new file mode 100644 index 00000000..4aedad86 Binary files /dev/null and b/lam/docs/manual-sources/images/suse.png differ diff --git a/lam/docs/manual-sources/images/tree1.png b/lam/docs/manual-sources/images/tree1.png new file mode 100644 index 00000000..ecb34d84 Binary files /dev/null and b/lam/docs/manual-sources/images/tree1.png differ diff --git a/lam/docs/manual-sources/images/userAccountStatus1.png b/lam/docs/manual-sources/images/userAccountStatus1.png new file mode 100644 index 00000000..7fbd2dca Binary files /dev/null and b/lam/docs/manual-sources/images/userAccountStatus1.png differ diff --git a/lam/docs/manual-sources/images/userAccountStatus2.png b/lam/docs/manual-sources/images/userAccountStatus2.png new file mode 100644 index 00000000..23d63dbc Binary files /dev/null and b/lam/docs/manual-sources/images/userAccountStatus2.png differ diff --git a/lam/docs/manual-sources/images/userAccountStatus3.png b/lam/docs/manual-sources/images/userAccountStatus3.png new file mode 100644 index 00000000..a5ced5eb Binary files /dev/null and b/lam/docs/manual-sources/images/userAccountStatus3.png differ diff --git a/lam/docs/manual-sources/images/userList.png b/lam/docs/manual-sources/images/userList.png new file mode 100644 index 00000000..de8f808b Binary files /dev/null and b/lam/docs/manual-sources/images/userList.png differ diff --git a/lam/docs/manual-sources/images/userListOptionAccountStatus.png b/lam/docs/manual-sources/images/userListOptionAccountStatus.png new file mode 100644 index 00000000..b9402d13 Binary files /dev/null and b/lam/docs/manual-sources/images/userListOptionAccountStatus.png differ diff --git a/lam/docs/manual-sources/images/userListOptionTransPrimary.png b/lam/docs/manual-sources/images/userListOptionTransPrimary.png new file mode 100644 index 00000000..685020fb Binary files /dev/null and b/lam/docs/manual-sources/images/userListOptionTransPrimary.png differ diff --git a/lam/docs/manual-sources/images/userListOptions.png b/lam/docs/manual-sources/images/userListOptions.png new file mode 100644 index 00000000..57f6eda7 Binary files /dev/null and b/lam/docs/manual-sources/images/userListOptions.png differ diff --git a/lam/docs/manual-sources/images/zarafa1.png b/lam/docs/manual-sources/images/zarafa1.png new file mode 100644 index 00000000..422be89c Binary files /dev/null and b/lam/docs/manual-sources/images/zarafa1.png differ diff --git a/lam/docs/manual-sources/images/zarafa2.png b/lam/docs/manual-sources/images/zarafa2.png new file mode 100644 index 00000000..1ad8e9ba Binary files /dev/null and b/lam/docs/manual-sources/images/zarafa2.png differ diff --git a/lam/docs/manual-sources/images/zarafa3.png b/lam/docs/manual-sources/images/zarafa3.png new file mode 100644 index 00000000..d6eef662 Binary files /dev/null and b/lam/docs/manual-sources/images/zarafa3.png differ diff --git a/lam/docs/manual-sources/images/zarafa4.png b/lam/docs/manual-sources/images/zarafa4.png new file mode 100644 index 00000000..8d5608a2 Binary files /dev/null and b/lam/docs/manual-sources/images/zarafa4.png differ diff --git a/lam/docs/manual-sources/images/zarafa5.png b/lam/docs/manual-sources/images/zarafa5.png new file mode 100644 index 00000000..37fdc72c Binary files /dev/null and b/lam/docs/manual-sources/images/zarafa5.png differ diff --git a/lam/docs/manual-sources/images/zarafa6.png b/lam/docs/manual-sources/images/zarafa6.png new file mode 100644 index 00000000..5c270766 Binary files /dev/null and b/lam/docs/manual-sources/images/zarafa6.png differ diff --git a/lam/docs/manual-sources/images/zarafa7.png b/lam/docs/manual-sources/images/zarafa7.png new file mode 100644 index 00000000..a63d76a7 Binary files /dev/null and b/lam/docs/manual-sources/images/zarafa7.png differ diff --git a/lam/docs/manual-sources/images/zarafa8.png b/lam/docs/manual-sources/images/zarafa8.png new file mode 100644 index 00000000..ee0695c0 Binary files /dev/null and b/lam/docs/manual-sources/images/zarafa8.png differ diff --git a/lam/docs/manual-sources/images/zarafa9.png b/lam/docs/manual-sources/images/zarafa9.png new file mode 100644 index 00000000..00206115 Binary files /dev/null and b/lam/docs/manual-sources/images/zarafa9.png differ diff --git a/lam/docs/manual-sources/images/zarafa_logo_integrations_certified_140px.png b/lam/docs/manual-sources/images/zarafa_logo_integrations_certified_140px.png new file mode 100644 index 00000000..bc226fd9 Binary files /dev/null and b/lam/docs/manual-sources/images/zarafa_logo_integrations_certified_140px.png differ diff --git a/lam/docs/manual-sources/make.sh b/lam/docs/manual-sources/make.sh new file mode 100755 index 00000000..acde4840 --- /dev/null +++ b/lam/docs/manual-sources/make.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# $Id$ +# +# Copyright (C) 2009 - 2014 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run to create the LAM manual. + +rm -rf ../manual +mkdir ../manual +xsltproc -o ../manual/ --stringparam html.stylesheet.type text/css --stringparam html.stylesheet style.css /usr/share/xml/docbook/stylesheet/nwalsh/html/chunk.xsl howto.xml +mkdir ../manual/images +cp images/*.png ../manual/images +mkdir ../manual/resources +cp resources/*.* ../manual/resources +cp style.css ../manual diff --git a/lam/docs/manual-sources/makeOther.sh b/lam/docs/manual-sources/makeOther.sh new file mode 100755 index 00000000..fac54513 --- /dev/null +++ b/lam/docs/manual-sources/makeOther.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# $Id: make.sh 5301 2014-03-10 18:46:28Z gruberroland $ +# +# Copyright (C) 2014 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run to create the LAM manual. + +dir=`pwd` + +rm -rf ../manual-onePage +mkdir ../manual-onePage +xsltproc -o ../manual-onePage/ --stringparam html.stylesheet.type text/css --stringparam html.stylesheet style.css /usr/share/xml/docbook/stylesheet/nwalsh/html/onechunk.xsl howto.xml +mkdir ../manual-onePage/images +cp images/*.png ../manual-onePage/images +mkdir ../manual-onePage/resources +cp resources/*.* ../manual-onePage/resources +cp style.css ../manual-onePage + +rm -rf ../manual-pdf +mkdir ../manual-pdf +xsltproc -o ../manual-pdf/out.fo --stringparam paper.type "A4" --stringparam generate.toc "book toc,title,table,figure" --stringparam "body.start.indent" "0pt" /usr/share/xml/docbook/stylesheet/nwalsh/fo/docbook.xsl howto.xml +mkdir ../manual-pdf/images +for img in `ls images/*.png`; do + convert -density 96 $img ../manual-pdf/$img +done +cp images/schema_*.png ../manual-pdf/images/ +mkdir ../manual-pdf/resources +cp resources/*.* ../manual-pdf/resources +cd ../manual-pdf +fop out.fo manual.pdf + + +cd $dir \ No newline at end of file diff --git a/lam/docs/manual-sources/resources/bindUpload.csv b/lam/docs/manual-sources/resources/bindUpload.csv new file mode 100644 index 00000000..98f149d1 --- /dev/null +++ b/lam/docs/manual-sources/resources/bindUpload.csv @@ -0,0 +1,5 @@ +"dn_suffix","dn_rdn","bindDLZ_dlzHostName","bindDLZ_a_ip","bindDLZ_a_ttl","bindDLZ_cname_name","bindDLZ_cname_ttl","bindDLZ_mx_server","bindDLZ_mx_preference","bindDLZ_mx_ttl","bindDLZ_ptr_host","bindDLZ_ptr_ttl","bindDLZ_soa_expire","bindDLZ_soa_refresh","bindDLZ_soa_minimum","bindDLZ_soa_retry","bindDLZ_soa_ttl","bindDLZ_soa_primaryNS","bindDLZ_soa_adminEmail","bindDLZ_soa_serial","bindDLZ_ns_server","bindDLZ_ns_ttl" +"dlzZoneName=example.com,ou=bind,dc=example,dc=com","dlzHostName","@",,,,,"mail1.example.com; mail2.example.com","10; 20",,,,"3600000","360000","370000","3600",,"ns1.example.com.","admin.ns1.example.com.","1","ns1.example.com.; ns2.example.com.", +"dlzZoneName=example.com,ou=bind,dc=example,dc=com","dlzHostName","foo","123.123.123.101",,,,,,,,,,,,,,,,,, +"dlzZoneName=example.com,ou=bind,dc=example,dc=com","dlzHostName","foo2",,,"foo.example.com",,,,,,,,,,,,,,,, +"dlzZoneName=example.com,ou=bind,dc=example,dc=com","dlzHostName","bar","123.123.123.101; 1:2:3:4:5",,,,,,,,,,,,,,,,,, diff --git a/lam/docs/manual-sources/style.css b/lam/docs/manual-sources/style.css new file mode 100755 index 00000000..f8ff4b51 --- /dev/null +++ b/lam/docs/manual-sources/style.css @@ -0,0 +1,110 @@ +/* +$Id$ + + This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + Copyright (C) 2009 Roland Gruber + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more detaexils. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +*/ + +/* CSS layout for LAM manual */ + + +body { + font-family:sans-serif; +} + +a { +color:#000080; +text-decoration:none; +} + +a:visited { +color:#000080; +text-decoration:none; +} + +a:hover { +color:red; +text-decoration:none; +} + +a:active { +color:red; +text-decoration:none; +} + +div.navheader table { + background-image: url(images/logo32.png); + background-repeat: no-repeat; + background-position: 10px center; +} + +div.navheader td { + font-weight:bold; + padding-left: 50px; + padding-right: 10px; +} + +div.navfooter td { + font-weight:bold; + padding-left: 10px; + padding-right: 10px; +} + +div.table table { + border-collapse:collapse; + border-width:2px; +} + +div.navheader hr { + margin-bottom:30px; +} + +div.navfooter hr { + margin-top:30px; +} + +div.mediaobject img { + margin-top:20px; + margin-bottom:20px; +} + +h1 { color:#253aa3; } +h2 { color:#000080; font-size:13pt; } + +div.nogrid table { + border-width:2px; + border-collapse:collapse; +} + +div.noborder table { + border-width:0px; + border-collapse:collapse; + border-style:none; + border-color:transparent; +} + +pre.programlisting { + padding: 10px; + border-style:solid; + border-color:#696a65; + border-width:1px; + border-radius:4px; + background-color:#f3f2f1; +} + + diff --git a/lam/docs/schema/dhcp.schema b/lam/docs/schema/dhcp.schema new file mode 100644 index 00000000..c5ed6c72 --- /dev/null +++ b/lam/docs/schema/dhcp.schema @@ -0,0 +1,462 @@ +attributetype ( 2.16.840.1.113719.1.203.4.1 + NAME 'dhcpPrimaryDN' + EQUALITY distinguishedNameMatch + DESC 'The DN of the dhcpServer which is the primary server for the configuration.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.2 + NAME 'dhcpSecondaryDN' + EQUALITY distinguishedNameMatch + DESC 'The DN of dhcpServer(s) which provide backup service for the configuration.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) + +attributetype ( 2.16.840.1.113719.1.203.4.3 + NAME 'dhcpStatements' + EQUALITY caseIgnoreIA5Match + DESC 'Flexible storage for specific data depending on what object this exists in. Like conditional statements, server parameters, etc. This allows the standard to evolve without needing to adjust the schema.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 2.16.840.1.113719.1.203.4.4 + NAME 'dhcpRange' + EQUALITY caseIgnoreIA5Match + DESC 'The starting & ending IP Addresses in the range (inclusive), separated by a hyphen; if the range only contains one address, then just the address can be specified with no hyphen. Each range is defined as a separate value.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 2.16.840.1.113719.1.203.4.5 + NAME 'dhcpPermitList' + EQUALITY caseIgnoreIA5Match + DESC 'This attribute contains the permit lists associated with a pool. Each permit list is defined as a separate value.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 2.16.840.1.113719.1.203.4.6 + NAME 'dhcpNetMask' + EQUALITY integerMatch + DESC 'The subnet mask length for the subnet. The mask can be easily computed from this length.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.7 + NAME 'dhcpOption' + EQUALITY caseIgnoreIA5Match + DESC 'Encoded option values to be sent to clients. Each value represents a single option and contains (OptionTag, Length, OptionValue) encoded in the format used by DHCP.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 2.16.840.1.113719.1.203.4.8 + NAME 'dhcpClassData' + EQUALITY caseIgnoreIA5Match + DESC 'Encoded text string or list of bytes expressed in hexadecimal, separated by colons. Clients match subclasses based on matching the class data with the results of match or spawn with statements in the class name declarations.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.9 + NAME 'dhcpOptionsDN' + EQUALITY distinguishedNameMatch + DESC 'The distinguished name(s) of the dhcpOption objects containing the configuration options provided by the server.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) + +attributetype ( 2.16.840.1.113719.1.203.4.10 + NAME 'dhcpHostDN' + EQUALITY distinguishedNameMatch + DESC 'the distinguished name(s) of the dhcpHost objects.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) + +attributetype ( 2.16.840.1.113719.1.203.4.11 + NAME 'dhcpPoolDN' + EQUALITY distinguishedNameMatch + DESC 'The distinguished name(s) of pools.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) + +attributetype ( 2.16.840.1.113719.1.203.4.12 + NAME 'dhcpGroupDN' + EQUALITY distinguishedNameMatch + DESC 'The distinguished name(s) of the groups.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) + +attributetype ( 2.16.840.1.113719.1.203.4.13 + NAME 'dhcpSubnetDN' + EQUALITY distinguishedNameMatch + DESC 'The distinguished name(s) of the subnets.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) + +attributetype ( 2.16.840.1.113719.1.203.4.14 + NAME 'dhcpLeaseDN' + EQUALITY distinguishedNameMatch + DESC 'The distinguished name of a client address.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE) + +attributetype ( 2.16.840.1.113719.1.203.4.15 + NAME 'dhcpLeasesDN' + DESC 'The distinguished name(s) client addresses.' + EQUALITY distinguishedNameMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) + +attributetype ( 2.16.840.1.113719.1.203.4.16 + NAME 'dhcpClassesDN' + EQUALITY distinguishedNameMatch + DESC 'The distinguished name(s) of a class(es) in a subclass.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) + +attributetype ( 2.16.840.1.113719.1.203.4.17 + NAME 'dhcpSubclassesDN' + EQUALITY distinguishedNameMatch + DESC 'The distinguished name(s) of subclass(es).' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) + +attributetype ( 2.16.840.1.113719.1.203.4.18 + NAME 'dhcpSharedNetworkDN' + EQUALITY distinguishedNameMatch + DESC 'The distinguished name(s) of sharedNetworks.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) + +attributetype ( 2.16.840.1.113719.1.203.4.19 + NAME 'dhcpServiceDN' + EQUALITY distinguishedNameMatch + DESC 'The DN of dhcpService object(s)which contain the configuration information. Each dhcpServer object has this attribute identifying the DHCP configuration(s) that the server is associated with.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) + +attributetype ( 2.16.840.1.113719.1.203.4.20 + NAME 'dhcpVersion' + DESC 'The version attribute of this object.' + EQUALITY caseIgnoreIA5Match + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.21 + NAME 'dhcpImplementation' + EQUALITY caseIgnoreIA5Match + DESC 'Description of the DHCP Server implementation e.g. DHCP Servers vendor.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.22 + NAME 'dhcpAddressState' + EQUALITY caseIgnoreIA5Match + DESC 'This stores information about the current binding-status of an address. For dynamic addresses managed by DHCP, the values should be restricted to the following: "FREE", "ACTIVE", "EXPIRED", "RELEASED", "RESET", "ABANDONED", "BACKUP". For other addresses, it SHOULD be one of the following: "UNKNOWN", "RESERVED" (an address that is managed by DHCP that is reserved for a specific client), "RESERVED-ACTIVE" (same as reserved, but address is currently in use), "ASSIGNED" (assigned manually or by some other mechanism), "UNASSIGNED", "NOTASSIGNABLE".' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.23 + NAME 'dhcpExpirationTime' + EQUALITY generalizedTimeMatch + DESC 'This is the time the current lease for an address expires.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.24 + NAME 'dhcpStartTimeOfState' + EQUALITY generalizedTimeMatch + DESC 'This is the time of the last state change for a leased address.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.25 + NAME 'dhcpLastTransactionTime' + EQUALITY generalizedTimeMatch + DESC 'This is the last time a valid DHCP packet was received from the client.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.26 + NAME 'dhcpBootpFlag' + EQUALITY booleanMatch + DESC 'This indicates whether the address was assigned via BOOTP.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.27 + NAME 'dhcpDomainName' + EQUALITY caseIgnoreIA5Match + DESC 'This is the name of the domain sent to the client by the server. It is essentially the same as the value for DHCP option 15 sent to the client, and represents only the domain - not the full FQDN. To obtain the full FQDN assigned to the client you must prepend the "dhcpAssignedHostName" to this value with a ".".' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.28 + NAME 'dhcpDnsStatus' + EQUALITY integerMatch + DESC 'This indicates the status of updating DNS resource records on behalf of the client by the DHCP server for this address. The value is a 16-bit bitmask.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.29 + NAME 'dhcpRequestedHostName' + EQUALITY caseIgnoreIA5Match + DESC 'This is the hostname that was requested by the client.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.30 + NAME 'dhcpAssignedHostName' + EQUALITY caseIgnoreIA5Match + DESC 'This is the actual hostname that was assigned to a client. It may not be the name that was requested by the client. The fully qualified domain name can be determined by appending the value of "dhcpDomainName" (with a dot separator) to this name.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.31 + NAME 'dhcpReservedForClient' + EQUALITY distinguishedNameMatch + DESC 'The distinguished name of a "dhcpClient" that an address is reserved for. This may not be the same as the "dhcpAssignedToClient" attribute if the address is being reassigned but the current lease has not yet expired.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.32 + NAME 'dhcpAssignedToClient' + EQUALITY distinguishedNameMatch + DESC 'This is the distinguished name of a "dhcpClient" that an address is currently assigned to. This attribute is only present in the class when the address is leased.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.33 + NAME 'dhcpRelayAgentInfo' + EQUALITY octetStringMatch + DESC 'If the client request was received via a relay agent, this contains information about the relay agent that was available from the DHCP request. This is a hex-encoded option value.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.34 + NAME 'dhcpHWAddress' + EQUALITY caseIgnoreIA5Match + DESC 'The clients hardware address that requested this IP address.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.35 + NAME 'dhcpHashBucketAssignment' + EQUALITY octetStringMatch + DESC 'HashBucketAssignment bit map for the DHCP Server, as defined in DHC Load Balancing Algorithm [RFC 3074].' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.36 + NAME 'dhcpDelayedServiceParameter' + EQUALITY integerMatch + DESC 'Delay in seconds corresponding to Delayed Service Parameter configuration, as defined in DHC Load Balancing Algorithm [RFC 3074]. ' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.37 + NAME 'dhcpMaxClientLeadTime' + EQUALITY integerMatch + DESC 'Maximum Client Lead Time configuration in seconds, as defined in DHCP Failover Protocol [FAILOVR]' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.38 + NAME 'dhcpFailOverEndpointState' + EQUALITY caseIgnoreIA5Match + DESC 'Server (Failover Endpoint) state, as defined in DHCP Failover Protocol [FAILOVR]' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.39 + NAME 'dhcpErrorLog' + EQUALITY caseIgnoreIA5Match + DESC 'Generic error log attribute that allows logging error conditions within a dhcpService or a dhcpSubnet, like no IP addresses available for lease.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.40 + NAME 'dhcpLocatorDN' + EQUALITY distinguishedNameMatch + DESC 'The DN of dhcpLocator object which contain the DNs of all DHCP configuration objects. There will be a single dhcpLocator object in the tree with links to all the DHCP objects in the tree' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) + +attributetype ( 2.16.840.1.113719.1.203.4.41 + NAME 'dhcpKeyAlgorithm' + EQUALITY caseIgnoreIA5Match + DESC 'Algorithm to generate TSIG Key' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.42 + NAME 'dhcpKeySecret' + EQUALITY octetStringMatch + DESC 'Secret to generate TSIG Key' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.43 + NAME 'dhcpDnsZoneServer' + EQUALITY caseIgnoreIA5Match + DESC 'Master server of the DNS Zone' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) + +attributetype ( 2.16.840.1.113719.1.203.4.44 + NAME 'dhcpKeyDN' + EQUALITY distinguishedNameMatch + DESC 'The DNs of TSIG Key to use in secure dynamic updates. In case of locator object, this will be list of TSIG keys. In case of DHCP Service, Shared Network, Subnet and DNS Zone, it will be a single key.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12) + +attributetype ( 2.16.840.1.113719.1.203.4.45 + NAME 'dhcpZoneDN' + EQUALITY distinguishedNameMatch + DESC 'The DNs of DNS Zone. In case of locator object, this will be list of DNS Zones in the tree. In case of DHCP Service, Shared Network and Subnet, it will be a single DNS Zone.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12) + +attributetype ( 2.16.840.1.113719.1.203.4.46 + NAME 'dhcpFailOverPrimaryServer' + EQUALITY caseIgnoreIA5Match + DESC 'IP address or DNS name of the server playing primary role in DHC Load Balancing and Fail over.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 2.16.840.1.113719.1.203.4.47 + NAME 'dhcpFailOverSecondaryServer' + EQUALITY caseIgnoreIA5Match + DESC 'IP address or DNS name of the server playing secondary role in DHC Load Balancing and Fail over.' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) + +attributetype ( 2.16.840.1.113719.1.203.4.48 + NAME 'dhcpFailOverPrimaryPort' + EQUALITY integerMatch + DESC 'Port on which primary server listens for connections from its fail over peer (secondary server)' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) + +attributetype ( 2.16.840.1.113719.1.203.4.49 + NAME 'dhcpFailOverSecondaryPort' + EQUALITY integerMatch + DESC 'Port on which secondary server listens for connections from its fail over peer (primary server)' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) + +attributetype ( 2.16.840.1.113719.1.203.4.50 + NAME 'dhcpFailOverResponseDelay' + EQUALITY integerMatch + DESC 'Maximum response time in seconds, before Server assumes that connection to fail over peer has failed' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) + +attributetype ( 2.16.840.1.113719.1.203.4.51 + NAME 'dhcpFailOverUnackedUpdates' + EQUALITY integerMatch + DESC 'Number of BNDUPD messages that server can send before it receives BNDACK from its fail over peer' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) + +attributetype ( 2.16.840.1.113719.1.203.4.52 + NAME 'dhcpFailOverSplit' + EQUALITY integerMatch + DESC 'Split between the primary and secondary servers for fail over purpose' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) + +attributetype ( 2.16.840.1.113719.1.203.4.53 + NAME 'dhcpFailOverLoadBalanceTime' + EQUALITY integerMatch + DESC 'Cutoff time in seconds, after which load balance is disabled' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) + +attributetype ( 2.16.840.1.113719.1.203.4.54 + NAME 'dhcpFailOverPeerDN' + EQUALITY distinguishedNameMatch + DESC 'The DNs of Fail over peers. In case of locator object, this will be list of fail over peers in the tree. In case of Subnet and pool, it will be a single Fail Over Peer' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) + +#List of all servers in the tree +attributetype ( 2.16.840.1.113719.1.203.4.55 + NAME 'dhcpServerDN' + EQUALITY distinguishedNameMatch + DESC 'List of all DHCP Servers in the tree. Used by dhcpLocatorObject' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) + +attributetype ( 2.16.840.1.113719.1.203.4.56 + NAME 'dhcpComments' + EQUALITY caseIgnoreIA5Match + DESC 'Generic attribute that allows coments within any DHCP object' + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) + +# Classes + +objectclass ( 2.16.840.1.113719.1.203.6.1 + NAME 'dhcpService' + DESC 'Service object that represents the actual DHCP Service configuration. This is a container object.' + SUP top + MUST (cn) + MAY ( dhcpPrimaryDN $ dhcpSecondaryDN $ dhcpServerDN $ dhcpSharedNetworkDN $ dhcpSubnetDN $ dhcpGroupDN $ dhcpHostDN $ dhcpClassesDN $ dhcpOptionsDN $ dhcpZoneDN $ dhcpKeyDN $ dhcpFailOverPeerDN $ dhcpStatements $dhcpComments $ dhcpOption) ) + +objectclass ( 2.16.840.1.113719.1.203.6.2 + NAME 'dhcpSharedNetwork' + DESC 'This stores configuration information for a shared network.' + SUP top + MUST cn + MAY ( dhcpSubnetDN $ dhcpPoolDN $ dhcpOptionsDN $ dhcpZoneDN $ dhcpStatements $dhcpComments $ dhcpOption) X-NDS_CONTAINMENT ('dhcpService' ) ) + +objectclass ( 2.16.840.1.113719.1.203.6.3 + NAME 'dhcpSubnet' + DESC 'This class defines a subnet. This is a container object.' + SUP top + MUST ( cn $ dhcpNetMask ) + MAY ( dhcpRange $ dhcpPoolDN $ dhcpGroupDN $ dhcpHostDN $ dhcpClassesDN $ dhcpLeasesDN $ dhcpOptionsDN $ dhcpZoneDN $ dhcpKeyDN $ dhcpFailOverPeerDN $ dhcpStatements $ dhcpComments $ dhcpOption ) X-NDS_CONTAINMENT ('dhcpService' 'dhcpSharedNetwork') ) + +objectclass ( 2.16.840.1.113719.1.203.6.4 + NAME 'dhcpPool' + DESC 'This stores configuration information about a pool.' + SUP top + MUST ( cn $ dhcpRange ) + MAY ( dhcpClassesDN $ dhcpPermitList $ dhcpLeasesDN $ dhcpOptionsDN $ dhcpZoneDN $dhcpKeyDN $ dhcpStatements $ dhcpComments $ dhcpOption ) + X-NDS_CONTAINMENT ('dhcpSubnet' 'dhcpSharedNetwork') ) + +objectclass ( 2.16.840.1.113719.1.203.6.5 + NAME 'dhcpGroup' + DESC 'Group object that lists host DNs and parameters. This is a container object.' + SUP top + MUST cn + MAY ( dhcpHostDN $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption ) + X-NDS_CONTAINMENT ('dhcpSubnet' 'dhcpService' ) ) + +objectclass ( 2.16.840.1.113719.1.203.6.6 + NAME 'dhcpHost' + DESC 'This represents information about a particular client' + SUP top + MUST cn + MAY (dhcpLeaseDN $ dhcpHWAddress $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption) + X-NDS_CONTAINMENT ('dhcpService' 'dhcpSubnet' 'dhcpGroup') ) + +objectclass ( 2.16.840.1.113719.1.203.6.7 + NAME 'dhcpClass' + DESC 'Represents information about a collection of related clients.' + SUP top + MUST cn + MAY (dhcpSubClassesDN $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption) + X-NDS_CONTAINMENT ('dhcpService' 'dhcpSubnet' ) ) + +objectclass ( 2.16.840.1.113719.1.203.6.8 + NAME 'dhcpSubClass' + DESC 'Represents information about a collection of related classes.' + SUP top + MUST cn + MAY (dhcpClassData $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption) X-NDS_CONTAINMENT 'dhcpClass' ) + +objectclass ( 2.16.840.1.113719.1.203.6.9 + NAME 'dhcpOptions' + DESC 'Represents information about a collection of options defined.' + SUP top AUXILIARY + MUST cn + MAY ( dhcpOption $ dhcpComments ) + X-NDS_CONTAINMENT ('dhcpService' 'dhcpSharedNetwork' 'dhcpSubnet' 'dhcpPool' 'dhcpGroup' 'dhcpHost' 'dhcpClass' ) ) + +objectclass ( 2.16.840.1.113719.1.203.6.10 + NAME 'dhcpLeases' + DESC 'This class represents an IP Address, which may or may not have been leased.' + SUP top + MUST ( cn $ dhcpAddressState ) + MAY ( dhcpExpirationTime $ dhcpStartTimeOfState $ dhcpLastTransactionTime $ dhcpBootpFlag $ dhcpDomainName $ dhcpDnsStatus $ dhcpRequestedHostName $ dhcpAssignedHostName $ dhcpReservedForClient $ dhcpAssignedToClient $ dhcpRelayAgentInfo $ dhcpHWAddress ) + X-NDS_CONTAINMENT ( 'dhcpService' 'dhcpSubnet' 'dhcpPool') ) + +objectclass ( 2.16.840.1.113719.1.203.6.11 + NAME 'dhcpLog' + DESC 'This is the object that holds past information about the IP address. The cn is the time/date stamp when the address was assigned or released, the address state at the time, if the address was assigned or released.' + SUP top + MUST ( cn ) + MAY ( dhcpAddressState $ dhcpExpirationTime $ dhcpStartTimeOfState $ dhcpLastTransactionTime $ dhcpBootpFlag $ dhcpDomainName $ dhcpDnsStatus $ dhcpRequestedHostName $ dhcpAssignedHostName $ dhcpReservedForClient $ dhcpAssignedToClient $ dhcpRelayAgentInfo $ dhcpHWAddress $ dhcpErrorLog) + X-NDS_CONTAINMENT ('dhcpLeases' 'dhcpPool' 'dhcpSubnet' 'dhcpSharedNetwork' 'dhcpService' ) ) + +objectclass ( 2.16.840.1.113719.1.203.6.12 + NAME 'dhcpServer' + DESC 'DHCP Server Object' + SUP top + MUST ( cn ) + MAY (dhcpServiceDN $ dhcpLocatorDN $ dhcpVersion $ dhcpImplementation $ dhcpHashBucketAssignment $ dhcpDelayedServiceParameter $ dhcpMaxClientLeadTime $ dhcpFailOverEndpointState $ dhcpStatements $ dhcpComments $ dhcpOption) + X-NDS_CONTAINMENT ('organization' 'organizationalunit' 'domain') ) + +objectclass ( 2.16.840.1.113719.1.203.6.13 + NAME 'dhcpTSigKey' + DESC 'TSIG key for secure dynamic updates' + SUP top + MUST (cn $ dhcpKeyAlgorithm $ dhcpKeySecret ) + MAY ( dhcpComments ) + X-NDS_CONTAINMENT ('dhcpService' 'dhcpSharedNetwork' 'dhcpSubnet') ) + +objectclass ( 2.16.840.1.113719.1.203.6.14 + NAME 'dhcpDnsZone' + DESC 'DNS Zone for updating leases' + SUP top + MUST (cn $ dhcpDnsZoneServer ) + MAY (dhcpKeyDN $ dhcpComments) + X-NDS_CONTAINMENT ('dhcpService' 'dhcpSharedNetwork' 'dhcpSubnet') ) + +objectclass ( 2.16.840.1.113719.1.203.6.15 + NAME 'dhcpFailOverPeer' + DESC 'This class defines the Fail over peer' + SUP top + MUST ( cn $ dhcpFailOverPrimaryServer $ dhcpFailOverSecondaryServer $ dhcpFailoverPrimaryPort $ dhcpFailOverSecondaryPort) MAY (dhcpFailOverResponseDelay $ dhcpFailOverUnackedUpdates $ dhcpMaxClientLeadTime $ dhcpFailOverSplit $ dhcpHashBucketAssignment $ dhcpFailOverLoadBalanceTime $ dhcpComments ) + X-NDS_CONTAINMENT ('dhcpService' 'dhcpSharedNetwork' 'dhcpSubnet') ) + +objectclass ( 2.16.840.1.113719.1.203.6.16 + NAME 'dhcpLocator' + DESC 'Locator object for DHCP configuration in the tree. There will be a single dhcpLocator object in the tree with links to all the DHCP objects in the tree' + SUP top + MUST ( cn ) + MAY ( dhcpServiceDN $dhcpServerDN $ dhcpSharedNetworkDN $ dhcpSubnetDN $ dhcpPoolDN $ dhcpGroupDN $ dhcpHostDN $ dhcpClassesDN $ dhcpKeyDN $ dhcpZoneDN $ dhcpFailOverPeerDN $ dhcpOption $ dhcpComments) + X-NDS_CONTAINMENT ('organization' 'organizationalunit' 'domain') ) + + diff --git a/lam/graphics/.htaccess b/lam/graphics/.htaccess new file mode 100644 index 00000000..5a928f6d --- /dev/null +++ b/lam/graphics/.htaccess @@ -0,0 +1 @@ +Options -Indexes diff --git a/lam/graphics/add.png b/lam/graphics/add.png new file mode 100644 index 00000000..fe07994c Binary files /dev/null and b/lam/graphics/add.png differ diff --git a/lam/graphics/asterisk.png b/lam/graphics/asterisk.png new file mode 100644 index 00000000..c0db9731 Binary files /dev/null and b/lam/graphics/asterisk.png differ diff --git a/lam/graphics/asteriskExt.png b/lam/graphics/asteriskExt.png new file mode 100644 index 00000000..343d24ba Binary files /dev/null and b/lam/graphics/asteriskExt.png differ diff --git a/lam/graphics/back.gif b/lam/graphics/back.gif new file mode 100644 index 00000000..4fb41501 Binary files /dev/null and b/lam/graphics/back.gif differ diff --git a/lam/graphics/bigPeople.png b/lam/graphics/bigPeople.png new file mode 100644 index 00000000..8f8b4605 Binary files /dev/null and b/lam/graphics/bigPeople.png differ diff --git a/lam/graphics/bigTools.png b/lam/graphics/bigTools.png new file mode 100644 index 00000000..11415643 Binary files /dev/null and b/lam/graphics/bigTools.png differ diff --git a/lam/graphics/catalog.png b/lam/graphics/catalog.png new file mode 100644 index 00000000..907d939a Binary files /dev/null and b/lam/graphics/catalog.png differ diff --git a/lam/graphics/clearFilter.png b/lam/graphics/clearFilter.png new file mode 100644 index 00000000..20a329bf Binary files /dev/null and b/lam/graphics/clearFilter.png differ diff --git a/lam/graphics/computer.png b/lam/graphics/computer.png new file mode 100644 index 00000000..6913e6da Binary files /dev/null and b/lam/graphics/computer.png differ diff --git a/lam/graphics/dc.png b/lam/graphics/dc.png new file mode 100644 index 00000000..2769a479 Binary files /dev/null and b/lam/graphics/dc.png differ diff --git a/lam/graphics/del.png b/lam/graphics/del.png new file mode 100644 index 00000000..75d5ddf4 Binary files /dev/null and b/lam/graphics/del.png differ diff --git a/lam/graphics/delete.gif b/lam/graphics/delete.gif new file mode 100644 index 00000000..82128aa4 Binary files /dev/null and b/lam/graphics/delete.gif differ diff --git a/lam/graphics/delete.png b/lam/graphics/delete.png new file mode 100644 index 00000000..6d0d29d7 Binary files /dev/null and b/lam/graphics/delete.png differ diff --git a/lam/graphics/device.png b/lam/graphics/device.png new file mode 100644 index 00000000..eb153a33 Binary files /dev/null and b/lam/graphics/device.png differ diff --git a/lam/graphics/dhcp.png b/lam/graphics/dhcp.png new file mode 100644 index 00000000..5acff48d Binary files /dev/null and b/lam/graphics/dhcp.png differ diff --git a/lam/graphics/dhcpBig.png b/lam/graphics/dhcpBig.png new file mode 100644 index 00000000..b6d267af Binary files /dev/null and b/lam/graphics/dhcpBig.png differ diff --git a/lam/graphics/document.png b/lam/graphics/document.png new file mode 100644 index 00000000..62ea2ee5 Binary files /dev/null and b/lam/graphics/document.png differ diff --git a/lam/graphics/door.png b/lam/graphics/door.png new file mode 100644 index 00000000..67209657 Binary files /dev/null and b/lam/graphics/door.png differ diff --git a/lam/graphics/down.gif b/lam/graphics/down.gif new file mode 100644 index 00000000..6fe8b89b Binary files /dev/null and b/lam/graphics/down.gif differ diff --git a/lam/graphics/dryRun.png b/lam/graphics/dryRun.png new file mode 100644 index 00000000..0d826bbf Binary files /dev/null and b/lam/graphics/dryRun.png differ diff --git a/lam/graphics/edit.png b/lam/graphics/edit.png new file mode 100644 index 00000000..fc9884bf Binary files /dev/null and b/lam/graphics/edit.png differ diff --git a/lam/graphics/editNo.png b/lam/graphics/editNo.png new file mode 100644 index 00000000..e6ca46c3 Binary files /dev/null and b/lam/graphics/editNo.png differ diff --git a/lam/graphics/eduPerson.png b/lam/graphics/eduPerson.png new file mode 100644 index 00000000..cb856423 Binary files /dev/null and b/lam/graphics/eduPerson.png differ diff --git a/lam/graphics/error.png b/lam/graphics/error.png new file mode 100644 index 00000000..74bea69e Binary files /dev/null and b/lam/graphics/error.png differ diff --git a/lam/graphics/exit.png b/lam/graphics/exit.png new file mode 100644 index 00000000..a77152b5 Binary files /dev/null and b/lam/graphics/exit.png differ diff --git a/lam/graphics/exitBig.png b/lam/graphics/exitBig.png new file mode 100644 index 00000000..74458879 Binary files /dev/null and b/lam/graphics/exitBig.png differ diff --git a/lam/graphics/export.png b/lam/graphics/export.png new file mode 100644 index 00000000..2c6648e8 Binary files /dev/null and b/lam/graphics/export.png differ diff --git a/lam/graphics/fail.png b/lam/graphics/fail.png new file mode 100644 index 00000000..e2db55f2 Binary files /dev/null and b/lam/graphics/fail.png differ diff --git a/lam/graphics/favicon.ico b/lam/graphics/favicon.ico new file mode 100644 index 00000000..1134d0c2 Binary files /dev/null and b/lam/graphics/favicon.ico differ diff --git a/lam/graphics/files.png b/lam/graphics/files.png new file mode 100644 index 00000000..76864d49 Binary files /dev/null and b/lam/graphics/files.png differ diff --git a/lam/graphics/filter.png b/lam/graphics/filter.png new file mode 100644 index 00000000..397e0789 Binary files /dev/null and b/lam/graphics/filter.png differ diff --git a/lam/graphics/find.png b/lam/graphics/find.png new file mode 100644 index 00000000..bee286ab Binary files /dev/null and b/lam/graphics/find.png differ diff --git a/lam/graphics/folder.png b/lam/graphics/folder.png new file mode 100644 index 00000000..60b09f50 Binary files /dev/null and b/lam/graphics/folder.png differ diff --git a/lam/graphics/forward.gif b/lam/graphics/forward.gif new file mode 100644 index 00000000..e2f8c3e1 Binary files /dev/null and b/lam/graphics/forward.gif differ diff --git a/lam/graphics/freeRadius.png b/lam/graphics/freeRadius.png new file mode 100644 index 00000000..53e5ef31 Binary files /dev/null and b/lam/graphics/freeRadius.png differ diff --git a/lam/graphics/gear.png b/lam/graphics/gear.png new file mode 100644 index 00000000..fc14700f Binary files /dev/null and b/lam/graphics/gear.png differ diff --git a/lam/graphics/go-first.png b/lam/graphics/go-first.png new file mode 100644 index 00000000..a720f5a3 Binary files /dev/null and b/lam/graphics/go-first.png differ diff --git a/lam/graphics/go-last.png b/lam/graphics/go-last.png new file mode 100644 index 00000000..4d3f0462 Binary files /dev/null and b/lam/graphics/go-last.png differ diff --git a/lam/graphics/go-next.png b/lam/graphics/go-next.png new file mode 100644 index 00000000..1fd92693 Binary files /dev/null and b/lam/graphics/go-next.png differ diff --git a/lam/graphics/go-previous.png b/lam/graphics/go-previous.png new file mode 100644 index 00000000..b4032142 Binary files /dev/null and b/lam/graphics/go-previous.png differ diff --git a/lam/graphics/go.png b/lam/graphics/go.png new file mode 100644 index 00000000..78dfcf83 Binary files /dev/null and b/lam/graphics/go.png differ diff --git a/lam/graphics/group.png b/lam/graphics/group.png new file mode 100644 index 00000000..8f69e2b9 Binary files /dev/null and b/lam/graphics/group.png differ diff --git a/lam/graphics/groupBig.png b/lam/graphics/groupBig.png new file mode 100644 index 00000000..a5cbf22d Binary files /dev/null and b/lam/graphics/groupBig.png differ diff --git a/lam/graphics/hard-drive.png b/lam/graphics/hard-drive.png new file mode 100644 index 00000000..7e8d7017 Binary files /dev/null and b/lam/graphics/hard-drive.png differ diff --git a/lam/graphics/hard-driveBig.png b/lam/graphics/hard-driveBig.png new file mode 100644 index 00000000..739f4cf2 Binary files /dev/null and b/lam/graphics/hard-driveBig.png differ diff --git a/lam/graphics/help.png b/lam/graphics/help.png new file mode 100644 index 00000000..4ed65a97 Binary files /dev/null and b/lam/graphics/help.png differ diff --git a/lam/graphics/host.png b/lam/graphics/host.png new file mode 100644 index 00000000..33df4ef9 Binary files /dev/null and b/lam/graphics/host.png differ diff --git a/lam/graphics/import.png b/lam/graphics/import.png new file mode 100644 index 00000000..7c57402f Binary files /dev/null and b/lam/graphics/import.png differ diff --git a/lam/graphics/info.png b/lam/graphics/info.png new file mode 100644 index 00000000..68733266 Binary files /dev/null and b/lam/graphics/info.png differ diff --git a/lam/graphics/ipRange.png b/lam/graphics/ipRange.png new file mode 100644 index 00000000..b882a4e3 Binary files /dev/null and b/lam/graphics/ipRange.png differ diff --git a/lam/graphics/key.png b/lam/graphics/key.png new file mode 100644 index 00000000..ccf8497e Binary files /dev/null and b/lam/graphics/key.png differ diff --git a/lam/graphics/keyBig.png b/lam/graphics/keyBig.png new file mode 100644 index 00000000..6deef5cb Binary files /dev/null and b/lam/graphics/keyBig.png differ diff --git a/lam/graphics/kolab.png b/lam/graphics/kolab.png new file mode 100644 index 00000000..fdac0919 Binary files /dev/null and b/lam/graphics/kolab.png differ diff --git a/lam/graphics/kolabSharedFolderType.png b/lam/graphics/kolabSharedFolderType.png new file mode 100644 index 00000000..8866c446 Binary files /dev/null and b/lam/graphics/kolabSharedFolderType.png differ diff --git a/lam/graphics/lam.png b/lam/graphics/lam.png new file mode 100644 index 00000000..309b4f37 Binary files /dev/null and b/lam/graphics/lam.png differ diff --git a/lam/graphics/lamdaemon.png b/lam/graphics/lamdaemon.png new file mode 100644 index 00000000..50f7c0ed Binary files /dev/null and b/lam/graphics/lamdaemon.png differ diff --git a/lam/graphics/lamdaemonSmall.png b/lam/graphics/lamdaemonSmall.png new file mode 100644 index 00000000..896498a8 Binary files /dev/null and b/lam/graphics/lamdaemonSmall.png differ diff --git a/lam/graphics/language.png b/lam/graphics/language.png new file mode 100644 index 00000000..96b4201a Binary files /dev/null and b/lam/graphics/language.png differ diff --git a/lam/graphics/ldap-server.png b/lam/graphics/ldap-server.png new file mode 100644 index 00000000..d40900d9 Binary files /dev/null and b/lam/graphics/ldap-server.png differ diff --git a/lam/graphics/light.png b/lam/graphics/light.png new file mode 100644 index 00000000..88598999 Binary files /dev/null and b/lam/graphics/light.png differ diff --git a/lam/graphics/loadProfile.png b/lam/graphics/loadProfile.png new file mode 100644 index 00000000..36e35b7d Binary files /dev/null and b/lam/graphics/loadProfile.png differ diff --git a/lam/graphics/locality.png b/lam/graphics/locality.png new file mode 100644 index 00000000..c80540b0 Binary files /dev/null and b/lam/graphics/locality.png differ diff --git a/lam/graphics/lock.png b/lam/graphics/lock.png new file mode 100644 index 00000000..04a05c1c Binary files /dev/null and b/lam/graphics/lock.png differ diff --git a/lam/graphics/logo24.png b/lam/graphics/logo24.png new file mode 100644 index 00000000..616437ba Binary files /dev/null and b/lam/graphics/logo24.png differ diff --git a/lam/graphics/logo32.png b/lam/graphics/logo32.png new file mode 100644 index 00000000..67d1fed3 Binary files /dev/null and b/lam/graphics/logo32.png differ diff --git a/lam/graphics/mail.png b/lam/graphics/mail.png new file mode 100644 index 00000000..bd77affe Binary files /dev/null and b/lam/graphics/mail.png differ diff --git a/lam/graphics/mailAlias.png b/lam/graphics/mailAlias.png new file mode 100644 index 00000000..6079a528 Binary files /dev/null and b/lam/graphics/mailAlias.png differ diff --git a/lam/graphics/mailBig.png b/lam/graphics/mailBig.png new file mode 100644 index 00000000..6d1832ee Binary files /dev/null and b/lam/graphics/mailBig.png differ diff --git a/lam/graphics/minus.png b/lam/graphics/minus.png new file mode 100644 index 00000000..6ff90668 Binary files /dev/null and b/lam/graphics/minus.png differ diff --git a/lam/graphics/modules.png b/lam/graphics/modules.png new file mode 100644 index 00000000..7de3f48b Binary files /dev/null and b/lam/graphics/modules.png differ diff --git a/lam/graphics/move.png b/lam/graphics/move.png new file mode 100644 index 00000000..897b68bc Binary files /dev/null and b/lam/graphics/move.png differ diff --git a/lam/graphics/moveBig.png b/lam/graphics/moveBig.png new file mode 100644 index 00000000..0eef1cef Binary files /dev/null and b/lam/graphics/moveBig.png differ diff --git a/lam/graphics/n.png b/lam/graphics/n.png new file mode 100644 index 00000000..a035c343 Binary files /dev/null and b/lam/graphics/n.png differ diff --git a/lam/graphics/netgroup.png b/lam/graphics/netgroup.png new file mode 100644 index 00000000..8f69e2b9 Binary files /dev/null and b/lam/graphics/netgroup.png differ diff --git a/lam/graphics/network-wired.png b/lam/graphics/network-wired.png new file mode 100644 index 00000000..c4f84505 Binary files /dev/null and b/lam/graphics/network-wired.png differ diff --git a/lam/graphics/network.png b/lam/graphics/network.png new file mode 100644 index 00000000..008b03fb Binary files /dev/null and b/lam/graphics/network.png differ diff --git a/lam/graphics/nt_machine.png b/lam/graphics/nt_machine.png new file mode 100644 index 00000000..4d3737a7 Binary files /dev/null and b/lam/graphics/nt_machine.png differ diff --git a/lam/graphics/nt_user.png b/lam/graphics/nt_user.png new file mode 100644 index 00000000..b69a641e Binary files /dev/null and b/lam/graphics/nt_user.png differ diff --git a/lam/graphics/o.png b/lam/graphics/o.png new file mode 100644 index 00000000..5acff48d Binary files /dev/null and b/lam/graphics/o.png differ diff --git a/lam/graphics/object.png b/lam/graphics/object.png new file mode 100644 index 00000000..7de3f48b Binary files /dev/null and b/lam/graphics/object.png differ diff --git a/lam/graphics/ou.png b/lam/graphics/ou.png new file mode 100644 index 00000000..60b09f50 Binary files /dev/null and b/lam/graphics/ou.png differ diff --git a/lam/graphics/partiallyLocked.png b/lam/graphics/partiallyLocked.png new file mode 100644 index 00000000..0414b21b Binary files /dev/null and b/lam/graphics/partiallyLocked.png differ diff --git a/lam/graphics/pass.png b/lam/graphics/pass.png new file mode 100644 index 00000000..ac479f25 Binary files /dev/null and b/lam/graphics/pass.png differ diff --git a/lam/graphics/pdf.png b/lam/graphics/pdf.png new file mode 100644 index 00000000..e8efdbfa Binary files /dev/null and b/lam/graphics/pdf.png differ diff --git a/lam/graphics/plus.png b/lam/graphics/plus.png new file mode 100644 index 00000000..f66b1a80 Binary files /dev/null and b/lam/graphics/plus.png differ diff --git a/lam/graphics/printer.png b/lam/graphics/printer.png new file mode 100644 index 00000000..cc17b26b Binary files /dev/null and b/lam/graphics/printer.png differ diff --git a/lam/graphics/printerBig.png b/lam/graphics/printerBig.png new file mode 100644 index 00000000..00961ed1 Binary files /dev/null and b/lam/graphics/printerBig.png differ diff --git a/lam/graphics/process.png b/lam/graphics/process.png new file mode 100644 index 00000000..a3244c58 Binary files /dev/null and b/lam/graphics/process.png differ diff --git a/lam/graphics/profiles.png b/lam/graphics/profiles.png new file mode 100644 index 00000000..e6f894d9 Binary files /dev/null and b/lam/graphics/profiles.png differ diff --git a/lam/graphics/puppet.png b/lam/graphics/puppet.png new file mode 100644 index 00000000..2c69f11b Binary files /dev/null and b/lam/graphics/puppet.png differ diff --git a/lam/graphics/pykotaBillingCodeType.png b/lam/graphics/pykotaBillingCodeType.png new file mode 100644 index 00000000..cc17b26b Binary files /dev/null and b/lam/graphics/pykotaBillingCodeType.png differ diff --git a/lam/graphics/pykotaPrinterType.png b/lam/graphics/pykotaPrinterType.png new file mode 100644 index 00000000..cc17b26b Binary files /dev/null and b/lam/graphics/pykotaPrinterType.png differ diff --git a/lam/graphics/refresh.png b/lam/graphics/refresh.png new file mode 100644 index 00000000..e0021413 Binary files /dev/null and b/lam/graphics/refresh.png differ diff --git a/lam/graphics/required.png b/lam/graphics/required.png new file mode 100644 index 00000000..2718ce4c Binary files /dev/null and b/lam/graphics/required.png differ diff --git a/lam/graphics/samba.png b/lam/graphics/samba.png new file mode 100644 index 00000000..a861ede1 Binary files /dev/null and b/lam/graphics/samba.png differ diff --git a/lam/graphics/save.png b/lam/graphics/save.png new file mode 100644 index 00000000..41b3f436 Binary files /dev/null and b/lam/graphics/save.png differ diff --git a/lam/graphics/saveBig.png b/lam/graphics/saveBig.png new file mode 100644 index 00000000..dd00abd1 Binary files /dev/null and b/lam/graphics/saveBig.png differ diff --git a/lam/graphics/schemaBrowser.png b/lam/graphics/schemaBrowser.png new file mode 100644 index 00000000..5acff48d Binary files /dev/null and b/lam/graphics/schemaBrowser.png differ diff --git a/lam/graphics/schemaTest.png b/lam/graphics/schemaTest.png new file mode 100644 index 00000000..457b2d28 Binary files /dev/null and b/lam/graphics/schemaTest.png differ diff --git a/lam/graphics/script.png b/lam/graphics/script.png new file mode 100644 index 00000000..50f7c0ed Binary files /dev/null and b/lam/graphics/script.png differ diff --git a/lam/graphics/security.png b/lam/graphics/security.png new file mode 100644 index 00000000..f6db9146 Binary files /dev/null and b/lam/graphics/security.png differ diff --git a/lam/graphics/select.png b/lam/graphics/select.png new file mode 100644 index 00000000..9bd9d2ef Binary files /dev/null and b/lam/graphics/select.png differ diff --git a/lam/graphics/selectDown.png b/lam/graphics/selectDown.png new file mode 100644 index 00000000..f3f2d782 Binary files /dev/null and b/lam/graphics/selectDown.png differ diff --git a/lam/graphics/server-settings.png b/lam/graphics/server-settings.png new file mode 100644 index 00000000..4d8f1a1e Binary files /dev/null and b/lam/graphics/server-settings.png differ diff --git a/lam/graphics/server-small.png b/lam/graphics/server-small.png new file mode 100644 index 00000000..3d1e0f6f Binary files /dev/null and b/lam/graphics/server-small.png differ diff --git a/lam/graphics/services.png b/lam/graphics/services.png new file mode 100644 index 00000000..56a5bd7f Binary files /dev/null and b/lam/graphics/services.png differ diff --git a/lam/graphics/smbDomain.png b/lam/graphics/smbDomain.png new file mode 100644 index 00000000..5acff48d Binary files /dev/null and b/lam/graphics/smbDomain.png differ diff --git a/lam/graphics/sort_asc.png b/lam/graphics/sort_asc.png new file mode 100644 index 00000000..f64da9a7 Binary files /dev/null and b/lam/graphics/sort_asc.png differ diff --git a/lam/graphics/sort_desc.png b/lam/graphics/sort_desc.png new file mode 100644 index 00000000..950926d8 Binary files /dev/null and b/lam/graphics/sort_desc.png differ diff --git a/lam/graphics/star.png b/lam/graphics/star.png new file mode 100644 index 00000000..458c7304 Binary files /dev/null and b/lam/graphics/star.png differ diff --git a/lam/graphics/tests.png b/lam/graphics/tests.png new file mode 100644 index 00000000..bee286ab Binary files /dev/null and b/lam/graphics/tests.png differ diff --git a/lam/graphics/tools-no.png b/lam/graphics/tools-no.png new file mode 100644 index 00000000..aef3e052 Binary files /dev/null and b/lam/graphics/tools-no.png differ diff --git a/lam/graphics/tools.png b/lam/graphics/tools.png new file mode 100644 index 00000000..95bd319c Binary files /dev/null and b/lam/graphics/tools.png differ diff --git a/lam/graphics/trash.png b/lam/graphics/trash.png new file mode 100644 index 00000000..4ad6a580 Binary files /dev/null and b/lam/graphics/trash.png differ diff --git a/lam/graphics/tree_info.png b/lam/graphics/tree_info.png new file mode 100644 index 00000000..0d826bbf Binary files /dev/null and b/lam/graphics/tree_info.png differ diff --git a/lam/graphics/tux.png b/lam/graphics/tux.png new file mode 100644 index 00000000..c0c562ed Binary files /dev/null and b/lam/graphics/tux.png differ diff --git a/lam/graphics/uid.png b/lam/graphics/uid.png new file mode 100644 index 00000000..7ffc948b Binary files /dev/null and b/lam/graphics/uid.png differ diff --git a/lam/graphics/undo.png b/lam/graphics/undo.png new file mode 100644 index 00000000..d2ed14ff Binary files /dev/null and b/lam/graphics/undo.png differ diff --git a/lam/graphics/uniquegroup.png b/lam/graphics/uniquegroup.png new file mode 100644 index 00000000..c86d4a13 Binary files /dev/null and b/lam/graphics/uniquegroup.png differ diff --git a/lam/graphics/unlocked.png b/lam/graphics/unlocked.png new file mode 100644 index 00000000..91891851 Binary files /dev/null and b/lam/graphics/unlocked.png differ diff --git a/lam/graphics/up.gif b/lam/graphics/up.gif new file mode 100644 index 00000000..bd8edea5 Binary files /dev/null and b/lam/graphics/up.gif differ diff --git a/lam/graphics/user.png b/lam/graphics/user.png new file mode 100644 index 00000000..83e5b318 Binary files /dev/null and b/lam/graphics/user.png differ diff --git a/lam/graphics/userDefault.png b/lam/graphics/userDefault.png new file mode 100644 index 00000000..194acfe2 Binary files /dev/null and b/lam/graphics/userDefault.png differ diff --git a/lam/graphics/warn.png b/lam/graphics/warn.png new file mode 100644 index 00000000..2f0c0fa9 Binary files /dev/null and b/lam/graphics/warn.png differ diff --git a/lam/help/.htaccess b/lam/help/.htaccess new file mode 100644 index 00000000..8334f2cd --- /dev/null +++ b/lam/help/.htaccess @@ -0,0 +1,9 @@ + + + Order allow,deny + Deny from all + + = 2.3> + Require all denied + + diff --git a/lam/help/help.inc b/lam/help/help.inc new file mode 100644 index 00000000..83cb7ab0 --- /dev/null +++ b/lam/help/help.inc @@ -0,0 +1,293 @@ +" . getTypeAlias($types[$i]) . ":
\n"; + $descriptions = getListAttributeDescriptions($types[$i]); + $attributes = array_keys($descriptions); + for ($a = 0; $a < sizeof($attributes); $a++) { + $entry206Example .= "#" . $attributes[$a] . ": " . $descriptions[$attributes[$a]]; + if ($a < (sizeof($attributes) - 1)) { + $entry206Example .= ", "; + } + } + $entry206Example .= "

"; +} + +$helpArray = array ( + // 200 - 299 + // configuration wizard + // configuration login + // config profile management + "200" => array ("Headline" => _("Login"), + "Text" => _("Please enter the configuration password. This is NOT your LDAP password. It is stored in your .conf-file. If this is the first time you log in, enter \"lam\".")), + "201" => array ("Headline" => _("Server address"), + "Text" => _("This is the server address of your LDAP server. Use ldap:// for unencrypted LDAP connections or TLS encrypted connections. LDAP+SSL (LDAPS) encrypted connections are specified with ldaps://. The port value is optional.") . + " " . _("TLS cannot be combined with ldaps://.") . + "

" . + _("Examples") . + ":

" . + _("ldap://localhost:389 connects to localhost using a standard LDAP connection on port 389") . + "
" . + _("ldaps://ldap.domain.com connects to ldap.domain.com using an encrypted LDAP connection.") . + "


" . + _("Note") . + ":

" . + _("When using ldaps:// or TLS be sure to use exactly the same IP/domain name as in your certificate!")), + "202" => array ("Headline" => _("LDAP suffix"), + "Text" => _("This is the suffix of the LDAP tree from where to search for LDAP entries. Only entries in this subtree will be displayed in the account list. When creating a new accont this will be the DN where it is saved.") . + "

". + _("Example"). + ":

". + _("ou=People,dc=yourcompany,dc=com will read and store all accounts in this subtree.")), + "203" => array ("Headline" => _("Tree suffix"), + "Text" => _("This is the suffix for the LDAP tree viewer.") . + "

". + _("Example"). + ":

". + _("dc=yourcompany,dc=com")), + "204" => array ("Headline" => _("SSL certificate"), + "Text" => _("This is only needed for TLS/SSL connections. By default, LAM will use the certificate authorities installed on your system. If you have a private CA in your company you can upload your CA certificates here and override the system certificates.")), + "205" => array ("Headline" => _("Follow referrals"), + "Text" => _("Specifies if LAM should automatically follow referrals. Activate if you use referrals in your LDAP directory.")), + "206" => array ("Headline" => _("List attributes"), + "Text" => _("This is the list of attributes to show in the account list. The entries can either be predefined values, \"#attribute\", or individual ones, \"attribute:description\". Several entries are separated by semicolons.") . + "


" . + _("Example") . ": #homeDirectory;#uid;#uidNumber;#gidNumber;mail:Mail address

" . + "" . _("Predefined values") . ":

" . $entry206Example), + "207" => array ("Headline" => _("Valid users"), + "Text" => _("This is a list of valid DN entries of all users that are allowed to login to LDAP Account Manager. Please enter one DN per line.") . + "

" . + _("Example") . + ":
cn=admin,dc=yourdomain,dc=org
cn=manager,dc=yourdomain,dc=org"), + "208" => array ("Headline" => _("Maximum list entries"), + "Text" => _("This is the number of rows to show in the account list. If more entries are found the list will be split into several pages.")), + "209" => array ("Headline" => _("Default language"), + "Text" => _("This defines the language of the login window and sets this language as the default language. Users can change the language at login.")), + "210" => array ("Headline" => _("Script path"), + "Text" => _("This is the absolute path to an external script for setting quotas and creating home directories.")), + "211" => array ("Headline" => _("Enforce language"), + "Text" => _("If enabled then the default language will be enforced and cannot be chosen by the user.")), + "212" => array ("Headline" => _("Change password"), + "Text" => _("If you want to change the current preferences password, please enter it here.")), + "214" => array ("Headline" => _("Cache timeout"), + "Text" => _("This is the time in minutes which LAM caches its LDAP searches. Shorter times will stress LDAP more but decrease the possibility that changes are not identified.")), + "215" => array ("Headline" => _("Access level"), + "Text" => _("You can specify if LAM allows full write access, password changes or only read access.")), + "217" => array ("Headline" => _("Account types and modules"), + "Text" => _("Here you can select which plugins you want to use for account management.") . "

" + . _("Account types define which sorts of LDAP entries (e.g. users and groups) should be managed. The account modules define which properties (e.g. Unix and Samba) can be edited.")), + "218" => array ("Headline" => _("Script servers"), + "Text" => _("This is a list of the servers where the lamdaemon scripts are stored. LDAP Account Manager will make a SSH connection to the servers with the user name and password provided at login. Multiple servers are separated by semicolons. You can append a descriptive name after a colon.") . "
" + . _("If your server runs on another port then add a comma and the port number after the server.") . "

" + . _("Example") . ": 127.0.0.1:LOCAL;192.168.0.2,12345:Servername;192.168.0.5"), + "219" => array ("Headline" => _("Rights for the home directory"), + "Text" => _("This defines the rights for the home directories which are created by lamdaemon.")), + "220" => array ("Headline" => _("Login method"), + "Text" => _("The number of users who may login to LAM is restricted. This can be either a fixed list of DNs or LAM can search LDAP to find a DN which matches the given user name.")), + "221" => array ("Headline" => _("LDAP search"), + "Text" => _("Please enter the LDAP suffix where LAM should start to search for users. The LDAP filter needs to match the given user name to exactly one DN. The value \"%USER%\" will be replaced by the user name from the login page.")), + "222" => array ("Headline" => _("LDAP search limit"), + "Text" => _("Here you can set a limit for LDAP searches. This will restrict the number of results for LDAP searches. Please use this if LAM's LDAP queries produce too much load.")), + "223" => array ("Headline" => _("HTTP authentication"), + "Text" => _("If enabled then LAM will use user and password that is provided by the web server via HTTP authentication.")), + "224" => array ("Headline" => _("Bind user and password"), + "Text" => _("Here you can specify the DN and password of the bind user that will be used for the LDAP search. This is required if your LDAP server does not allow anonymous access.")), + "230" => array ("Headline" => _("Profile management") . " - " . _("Add profile"), + "Text" => _("Please enter the name of the new profile and the password to change its settings. Profile names may contain letters, numbers and -/_.")), + "231" => array ("Headline" => _("Profile management") . " - " . _("Rename profile"), + "Text" => _("Please enter the new name of the profile. The name may contain letters, numbers and -/_.")), + "232" => array ("Headline" => _("Profile management") . " - " . _("Delete profile"), + "Text" => _("This will delete the selected profile.")), + "233" => array ("Headline" => _("Profile management") . " - " . _("Set profile password"), + "Text" => _("This changes the password of the selected profile.")), + "234" => array ("Headline" => _("Profile management") . " - " . _("Change default profile"), + "Text" => _("This changes the profile which is selected by default at login.")), + "235" => array ("Headline" => _("Change master password"), + "Text" => _("If you want to change your master configuration password, please enter it here.")), + "236" => array ("Headline" => _("Master password"), + "Text" => _("Please enter the master configuration password. This is NOT your LDAP password. It is stored in your config.cfg file. If this is the first time you log in, enter \"lam\".")), + "237" => array ("Headline" => _("Base module"), + "Text" => _("Every account type needs exactly one base module. This module provides a structural object class.")), + "238" => array ("Headline" => _("Session timeout"), + "Text" => _("This is the time (in minutes) of inactivity after which a user is automatically logged off.")), + "239" => array ("Headline" => _("Log level"), + "Text" => _("Please select your prefered log level. Messages with a lower level will not be logged.")), + "240" => array ("Headline" => _("Log destination"), + "Text" => _("Here you can select where LAM should save its log messages. System logging will go to Syslog on Unix systems and event log on Windows. You can also select an extra file.")), + "241" => array ("Headline" => _("Allowed hosts"), + "Text" => _("This is a list of IP addresses from hosts who may access LAM. You can use \"*\" as wildcard (e.g. 192.168.0.*).")), + "242" => array ("Headline" => _("Password policy"), + "Text" => _("Here you can specify minimum requirements for passwords. The character classes are: lowercase, uppercase, numeric and symbols.")), + "243" => array ("Headline" => _('Email format'), + "Text" => _('Please change this setting only if you experience problems in receiving emails from LAM. This defines the line ending of emails.')), + "244" => array ("Headline" => _('PHP error reporting'), + "Text" => _('Defines if the PHP error reporting setting from php.ini is used or the setting preferred by LAM ("E_ALL & ~E_NOTICE"). If you do not develop LAM modules please use the default. This will prevent displaying messages that are useful only for developers.')), + "245" => array ("Headline" => _('Encrypt session'), + "Text" => _('Encrypts sensitive data like passwords in your session. This requires the PHP MCrypt extension.')), + "246" => array ("Headline" => _('Number of rules that must match'), + "Text" => _('Specifies the number of above password rules that must be fulfilled.')), + "247" => array ("Headline" => _('Password must not contain user name'), + "Text" => _('Specifies if the password must not contain the user name.')), + "248" => array ("Headline" => _('Password must not contain part of user/first/last name'), + "Text" => _('Specifies if the password must not contain 3 or more characters of the user/first/last name.')), + "250" => array ("Headline" => _("Filter"), + "Text" => _("Here you can input simple filter expressions (e.g. 'value' or 'v*'). The filter is case-sensitive.")), + "260" => array ("Headline" => _("Additional LDAP filter"), + "Text" => _('Use this to enter an additional LDAP filter (e.g. "(cn!=admin)") to reduce the number of visible elements for this account type.') + . ' ' . _('You can use the wildcard @@LOGIN_DN@@ which will be substituted with the DN of the user who is currently logged in to LAM.') + . ' ' . _('By default LAM will show all accounts that match the selected account modules.')), + "261" => array ("Headline" => _("Hidden"), + "Text" => _('Hidden account types will not show up in LAM. This is useful if you want to display e.g. only groups but still need to manage their members.')), + "262" => array ("Headline" => _("No new entries"), + "Text" => _('If checked then the user will not be able to create new entries of this account type.')), + "263" => array ("Headline" => _("Disallow delete"), + "Text" => _('If checked then the user will not be able to delete entries of this account type.')), + "264" => array ("Headline" => _('Custom label'), + "Text" => _('Here you can overwrite the display name for this account type.')), + "265" => array ("Headline" => _('Read-only'), + "Text" => _('Sets this account type to read-only.')), + // 300 - 399 + // profile editor, file upload + "301" => array ("Headline" => _("RDN identifier"), + "Text" => _("This is the identifier for the relative DN value. It must be one of the given allowed LDAP attributes (e.g. user accounts usually use \"uid\" while groups use \"cn\").")), + "360" => array ("Headline" => _("Profile name"), + "Text" => _("Name under which the profile will be saved. If a profile with the same name exists, it will be overwritten.")), + "361" => array ("Headline" => _("DN suffix"), + "Text" => _("The account will be saved under this LDAP suffix.")), + "362" => array ("Headline" => _("Import profiles"), + "Text" => _("Here you can import account profiles from other server profiles (overwrite existing).")), + "363" => array ("Headline" => _("Export profile"), + "Text" => _("Here you can export account profiles to other server profiles (overwrite existing). You may also export a profile to the global templates. In this case it will always be copied to all server profiles that do not yet have a profile with this name.")), + // 400 - 499 + // account pages + "401" => array ("Headline" => _("Load profile"), + "Text" => _("Here you can load an account profile to set default settings for your account. The \"default\" profile is automatically loaded for new accounts.")), + "403" => array ("Headline" => _("Create PDF file"), + "Text" => _("Here you can select a PDF structure and export the account to a PDF file.")), + "404" => array ("Headline" => _("Password"), + "Text" => _("Please enter the password which you want to set for this account. You may also generate a random password (12 characters) which will be displayed on your screen.")), + "405" => array ("Headline" => _("PDF structure"), + "Text" => _("The PDF structure defines what information is exported as PDF file and how the pages are structured. You can manage the PDF structures in the PDF editor (under \"Tools\").")), + "406" => array ("Headline" => _("Force password change"), + "Text" => _("If you set this option then the user has to change his password at the next login.")), + "407" => array ("Headline" => _("Send via mail"), + "Text" => _("Sends the password to the user via mail. Please edit your LAM server profile to setup the mail settings.")), + "408" => array ("Headline" => _("Import PDF structures"), + "Text" => _("Here you can import PDF structures from other server profiles (overwrite existing).")), + "409" => array ("Headline" => _("Export PDF structure"), + "Text" => _("Here you can export PDF structures to other server profiles (overwrite existing). You may also export a structure to the global templates. In this case it will always be copied to all server profiles that do not yet have a structure with this name.")), + "410" => array ("Headline" => _("Alternate recipient"), + "Text" => _("Here you can enter an alternative mail address for the password. To use the user's primary email address please leave the field blank.")), + // 500 - 599 + // LAM Pro + "501" => array ("Headline" => _("LDAP suffix"), + "Text" => _("LAM will search for accounts in this part of the LDAP tree.")), + "502" => array ("Headline" => _("LDAP user and password"), + "Text" => _("LAM will use this LDAP DN and password to search for accounts. It is sufficient to specify an account with read rights. If nothing is inserted then LAM will try to connect anonymously.")), + "503" => array ("Headline" => _("LDAP search attribute"), + "Text" => _("This is needed to find the LDAP DNs of your user accounts. E.g. if you use \"uid\" and your user inputs \"miller\" then LAM will search for an account with uid=miller.")), + "504" => array ("Headline" => _("Login attribute label"), + "Text" => _("This text should shortly describe your selected LDAP search attribute (e.g. email or user name).")), + "505" => array ("Headline" => _("Login caption"), + "Text" => _("This text is displayed on top of the self service login page. You can also input HTML code here.")), + "506" => array ("Headline" => _("Main page caption"), + "Text" => _("This text is displayed on top of the self service main page. You can also input HTML code here.")), + "507" => array ("Headline" => _("Add new group"), + "Text" => _("Adds a new group element to the list of self service options. Use this to structure the input fields.")), + "508" => array ("Headline" => _("Add input field"), + "Text" => _("Adds a new self service option to the selected group element.")), + "509" => array ("Headline" => _("Page header"), + "Text" => _("This HTML code will be placed on top of all self service pages. E.g. you can use this to place your custom logo. Any HTML code is permitted.")), + "510" => array ("Headline" => _("Additional CSS links"), + "Text" => _("Here you can specify additional CSS links to change the layout of the self service pages. This is useful to adapt them to your corporate design. Please enter one link per line.")), + "511" => array ("Headline" => _("Password field label"), + "Text" => _('This text is placed as label for the password field on the login page. LAM will use "Password" if you do not enter any text.')), + "512" => array ("Headline" => _("Additional LDAP filter"), + "Text" => _('Use this to enter an additional LDAP filter (e.g. "(objectClass=passwordSelfReset)") to reduce the number of accounts who may use self service.')), + "513" => array ("Headline" => _('Use for all operations'), + "Text" => _('By default all modifications are done as the user that authenticated in self service. If active then LAM will use the connection user for all LDAP modifications and searches.')), + "520" => array ("Headline" => _("Generate random password"), + "Text" => _("This will set a random password and display it on the screen or send it to the user via mail. Please edit your LAM server profile to setup the mail settings.")), + "550" => array ("Headline" => _("From address"), + "Text" => _("This email address will be set as sender address of all password mails. If empty the system default (php.ini) will be used.")), + "551" => array ("Headline" => _("Subject"), + "Text" => _('The subject of all password mails.')), + "552" => array ("Headline" => _("Text"), + "Text" => _('The mail text of all password mails.') . + '

' . _('Format') . ':
    ' . + '
  • ' . _('You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. @@uid@@ for the user name).') . '
  • ' . + '
  • ' . _('The wildcard for the new password is @@newPassword@@.') . '
  • '), + "553" => array ("Headline" => _("HTML format"), + "Text" => _('Specifies if the mail should be sent as text or HTML.')), + "554" => array ("Headline" => _("Reply-to address"), + "Text" => _("This email address will be set as reply-to address of all password mails.")), + "555" => array ("Headline" => _("Allow alternate address"), + "Text" => _('Specifies if password mails may be sent to mail addresses other than the user\'s LDAP mail address.')), + // 600 - 699 + // OU-editor, domain page + "601" => array ("Headline" => _("OU-Editor") . " - " . _("New organisational unit"), + "Text" => _("This will create a new organisational unit under the selected one.")), + "602" => array ("Headline" => _("OU-Editor") . " - " . _("Delete organisational unit"), + "Text" => _("This will delete the selected organisational unit. The OU has to be empty.")), + // 700 - 799 + // multi edit tool + "700" => array ("Headline" => _('LDAP suffix'), + "Text" => _('Please select the suffix where changes should be done.')), + "701" => array ("Headline" => _('LDAP filter'), + "Text" => _('Use this to enter an additional LDAP filter (e.g. "(cn!=admin)") to reduce the number of entries to modify.')), + "702" => array ("Headline" => _('Operations'), + "Text" => _('Please specify which attributes should be changed. The modify operation will also add an value if the attribute does not yet exist. To delete all values of an attribute please leave the value field empty.')), +); + +/* This is a sample help entry. Just copy this line an modify the values between the [] brackets. + + "[HelpNumber]" => array ("Headline" => _("[Headline]"), "Text" => _("[Text]"), "SeeAlso" => array('link' => "[SeeAlso link]", 'text' => '[link text]')), + "999" => array ("Headline" => _("This is a sample entry"), "Text" => _("Sample text"), "SeeAlso" => array('link' => "http://www.ldap-account-manager.org/", 'text' => 'Project page')), + + + + Syntax: + ======= + + HelpNumber: numeric value + Headline: topic of help entry + Text: help text (ext = FALSE) + SeeAlso: URL to additional information (ext = FALSE, optional) + Link: relative URL to external help page (ext = TRUE) +*/ +?> diff --git a/lam/index.html b/lam/index.html new file mode 100644 index 00000000..2b2e4529 --- /dev/null +++ b/lam/index.html @@ -0,0 +1,10 @@ + + + + +LDAP Account Manager + + + + + \ No newline at end of file diff --git a/lam/lib/.htaccess b/lam/lib/.htaccess new file mode 100644 index 00000000..8334f2cd --- /dev/null +++ b/lam/lib/.htaccess @@ -0,0 +1,9 @@ + + + Order allow,deny + Deny from all + + = 2.3> + Require all denied + + diff --git a/lam/lib/3rdParty/phpseclib/Crypt/AES.php b/lam/lib/3rdParty/phpseclib/Crypt/AES.php new file mode 100644 index 00000000..cf8c050a --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/Crypt/AES.php @@ -0,0 +1,185 @@ + + * setKey('abcdefghijklmnop'); + * + * $size = 10 * 1024; + * $plaintext = ''; + * for ($i = 0; $i < $size; $i++) { + * $plaintext.= 'a'; + * } + * + * echo $aes->decrypt($aes->encrypt($plaintext)); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Crypt + * @package Crypt_AES + * @author Jim Wigginton + * @copyright MMVIII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Crypt_Rijndael + */ +if (!class_exists('Crypt_Rijndael')) { + include_once 'Rijndael.php'; +} + +/**#@+ + * @access public + * @see Crypt_AES::encrypt() + * @see Crypt_AES::decrypt() + */ +/** + * Encrypt / decrypt using the Counter mode. + * + * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 + */ +define('CRYPT_AES_MODE_CTR', CRYPT_MODE_CTR); +/** + * Encrypt / decrypt using the Electronic Code Book mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 + */ +define('CRYPT_AES_MODE_ECB', CRYPT_MODE_ECB); +/** + * Encrypt / decrypt using the Code Book Chaining mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 + */ +define('CRYPT_AES_MODE_CBC', CRYPT_MODE_CBC); +/** + * Encrypt / decrypt using the Cipher Feedback mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29 + */ +define('CRYPT_AES_MODE_CFB', CRYPT_MODE_CFB); +/** + * Encrypt / decrypt using the Cipher Feedback mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Output_feedback_.28OFB.29 + */ +define('CRYPT_AES_MODE_OFB', CRYPT_MODE_OFB); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_AES::Crypt_AES() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_AES_MODE_INTERNAL', CRYPT_MODE_INTERNAL); +/** + * Toggles the mcrypt implementation + */ +define('CRYPT_AES_MODE_MCRYPT', CRYPT_MODE_MCRYPT); +/**#@-*/ + +/** + * Pure-PHP implementation of AES. + * + * @package Crypt_AES + * @author Jim Wigginton + * @version 0.1.0 + * @access public + */ +class Crypt_AES extends Crypt_Rijndael +{ + /** + * The namespace used by the cipher for its constants. + * + * @see Crypt_Base::const_namespace + * @var String + * @access private + */ + var $const_namespace = 'AES'; + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. + * + * $mode could be: + * + * - CRYPT_AES_MODE_ECB + * + * - CRYPT_AES_MODE_CBC + * + * - CRYPT_AES_MODE_CTR + * + * - CRYPT_AES_MODE_CFB + * + * - CRYPT_AES_MODE_OFB + * + * If not explictly set, CRYPT_AES_MODE_CBC will be used. + * + * @see Crypt_Rijndael::Crypt_Rijndael() + * @see Crypt_Base::Crypt_Base() + * @param optional Integer $mode + * @access public + */ + function Crypt_AES($mode = CRYPT_AES_MODE_CBC) + { + parent::Crypt_Rijndael($mode); + } + + /** + * Dummy function + * + * Since Crypt_AES extends Crypt_Rijndael, this function is, technically, available, but it doesn't do anything. + * + * @see Crypt_Rijndael::setBlockLength() + * @access public + * @param Integer $length + */ + function setBlockLength($length) + { + return; + } +} diff --git a/lam/lib/3rdParty/phpseclib/Crypt/Base.php b/lam/lib/3rdParty/phpseclib/Crypt/Base.php new file mode 100644 index 00000000..f288e79c --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/Crypt/Base.php @@ -0,0 +1,1986 @@ + + * @author Hans-Juergen Petrich + * @copyright MMVII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @version 1.0.1 + * @link http://phpseclib.sourceforge.net + */ + +/**#@+ + * @access public + * @see Crypt_Base::encrypt() + * @see Crypt_Base::decrypt() + */ +/** + * Encrypt / decrypt using the Counter mode. + * + * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 + */ +define('CRYPT_MODE_CTR', -1); +/** + * Encrypt / decrypt using the Electronic Code Book mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 + */ +define('CRYPT_MODE_ECB', 1); +/** + * Encrypt / decrypt using the Code Book Chaining mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 + */ +define('CRYPT_MODE_CBC', 2); +/** + * Encrypt / decrypt using the Cipher Feedback mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29 + */ +define('CRYPT_MODE_CFB', 3); +/** + * Encrypt / decrypt using the Output Feedback mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Output_feedback_.28OFB.29 + */ +define('CRYPT_MODE_OFB', 4); +/** + * Encrypt / decrypt using streaming mode. + * + */ +define('CRYPT_MODE_STREAM', 5); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_Base::Crypt_Base() + */ +/** + * Base value for the internal implementation $engine switch + */ +define('CRYPT_MODE_INTERNAL', 1); +/** + * Base value for the mcrypt implementation $engine switch + */ +define('CRYPT_MODE_MCRYPT', 2); +/**#@-*/ + +/** + * Base Class for all Crypt_* cipher classes + * + * @package Crypt_Base + * @author Jim Wigginton + * @author Hans-Juergen Petrich + * @version 1.0.0 + * @access public + */ +class Crypt_Base +{ + /** + * The Encryption Mode + * + * @see Crypt_Base::Crypt_Base() + * @var Integer + * @access private + */ + var $mode; + + /** + * The Block Length of the block cipher + * + * @var Integer + * @access private + */ + var $block_size = 16; + + /** + * The Key + * + * @see Crypt_Base::setKey() + * @var String + * @access private + */ + var $key = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; + + /** + * The Initialization Vector + * + * @see Crypt_Base::setIV() + * @var String + * @access private + */ + var $iv; + + /** + * A "sliding" Initialization Vector + * + * @see Crypt_Base::enableContinuousBuffer() + * @see Crypt_Base::_clearBuffers() + * @var String + * @access private + */ + var $encryptIV; + + /** + * A "sliding" Initialization Vector + * + * @see Crypt_Base::enableContinuousBuffer() + * @see Crypt_Base::_clearBuffers() + * @var String + * @access private + */ + var $decryptIV; + + /** + * Continuous Buffer status + * + * @see Crypt_Base::enableContinuousBuffer() + * @var Boolean + * @access private + */ + var $continuousBuffer = false; + + /** + * Encryption buffer for CTR, OFB and CFB modes + * + * @see Crypt_Base::encrypt() + * @see Crypt_Base::_clearBuffers() + * @var Array + * @access private + */ + var $enbuffer; + + /** + * Decryption buffer for CTR, OFB and CFB modes + * + * @see Crypt_Base::decrypt() + * @see Crypt_Base::_clearBuffers() + * @var Array + * @access private + */ + var $debuffer; + + /** + * mcrypt resource for encryption + * + * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. + * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. + * + * @see Crypt_Base::encrypt() + * @var Resource + * @access private + */ + var $enmcrypt; + + /** + * mcrypt resource for decryption + * + * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. + * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. + * + * @see Crypt_Base::decrypt() + * @var Resource + * @access private + */ + var $demcrypt; + + /** + * Does the enmcrypt resource need to be (re)initialized? + * + * @see Crypt_Twofish::setKey() + * @see Crypt_Twofish::setIV() + * @var Boolean + * @access private + */ + var $enchanged = true; + + /** + * Does the demcrypt resource need to be (re)initialized? + * + * @see Crypt_Twofish::setKey() + * @see Crypt_Twofish::setIV() + * @var Boolean + * @access private + */ + var $dechanged = true; + + /** + * mcrypt resource for CFB mode + * + * mcrypt's CFB mode, in (and only in) buffered context, + * is broken, so phpseclib implements the CFB mode by it self, + * even when the mcrypt php extension is available. + * + * In order to do the CFB-mode work (fast) phpseclib + * use a separate ECB-mode mcrypt resource. + * + * @link http://phpseclib.sourceforge.net/cfb-demo.phps + * @see Crypt_Base::encrypt() + * @see Crypt_Base::decrypt() + * @see Crypt_Base::_setupMcrypt() + * @var Resource + * @access private + */ + var $ecb; + + /** + * Optimizing value while CFB-encrypting + * + * Only relevant if $continuousBuffer enabled + * and $engine == CRYPT_MODE_MCRYPT + * + * It's faster to re-init $enmcrypt if + * $buffer bytes > $cfb_init_len than + * using the $ecb resource furthermore. + * + * This value depends of the choosen cipher + * and the time it would be needed for it's + * initialization [by mcrypt_generic_init()] + * which, typically, depends on the complexity + * on its internaly Key-expanding algorithm. + * + * @see Crypt_Base::encrypt() + * @var Integer + * @access private + */ + var $cfb_init_len = 600; + + /** + * Does internal cipher state need to be (re)initialized? + * + * @see setKey() + * @see setIV() + * @see disableContinuousBuffer() + * @var Boolean + * @access private + */ + var $changed = true; + + /** + * Padding status + * + * @see Crypt_Base::enablePadding() + * @var Boolean + * @access private + */ + var $padding = true; + + /** + * Is the mode one that is paddable? + * + * @see Crypt_Base::Crypt_Base() + * @var Boolean + * @access private + */ + var $paddable = false; + + /** + * Holds which crypt engine internaly should be use, + * which will be determined automatically on __construct() + * + * Currently available $engines are: + * - CRYPT_MODE_MCRYPT (fast, php-extension: mcrypt, extension_loaded('mcrypt') required) + * - CRYPT_MODE_INTERNAL (slower, pure php-engine, no php-extension required) + * + * In the pipeline... maybe. But currently not available: + * - CRYPT_MODE_OPENSSL (very fast, php-extension: openssl, extension_loaded('openssl') required) + * + * If possible, CRYPT_MODE_MCRYPT will be used for each cipher. + * Otherwise CRYPT_MODE_INTERNAL + * + * @see Crypt_Base::encrypt() + * @see Crypt_Base::decrypt() + * @var Integer + * @access private + */ + var $engine; + + /** + * The mcrypt specific name of the cipher + * + * Only used if $engine == CRYPT_MODE_MCRYPT + * + * @link http://www.php.net/mcrypt_module_open + * @link http://www.php.net/mcrypt_list_algorithms + * @see Crypt_Base::_setupMcrypt() + * @var String + * @access private + */ + var $cipher_name_mcrypt; + + /** + * The default password key_size used by setPassword() + * + * @see Crypt_Base::setPassword() + * @var Integer + * @access private + */ + var $password_key_size = 32; + + /** + * The default salt used by setPassword() + * + * @see Crypt_Base::setPassword() + * @var String + * @access private + */ + var $password_default_salt = 'phpseclib/salt'; + + /** + * The namespace used by the cipher for its constants. + * + * ie: AES.php is using CRYPT_AES_MODE_* for its constants + * so $const_namespace is AES + * + * DES.php is using CRYPT_DES_MODE_* for its constants + * so $const_namespace is DES... and so on + * + * All CRYPT_<$const_namespace>_MODE_* are aliases of + * the generic CRYPT_MODE_* constants, so both could be used + * for each cipher. + * + * Example: + * $aes = new Crypt_AES(CRYPT_AES_MODE_CFB); // $aes will operate in cfb mode + * $aes = new Crypt_AES(CRYPT_MODE_CFB); // identical + * + * @see Crypt_Base::Crypt_Base() + * @var String + * @access private + */ + var $const_namespace; + + /** + * The name of the performance-optimized callback function + * + * Used by encrypt() / decrypt() + * only if $engine == CRYPT_MODE_INTERNAL + * + * @see Crypt_Base::encrypt() + * @see Crypt_Base::decrypt() + * @see Crypt_Base::_setupInlineCrypt() + * @see Crypt_Base::$use_inline_crypt + * @var Callback + * @access private + */ + var $inline_crypt; + + /** + * Holds whether performance-optimized $inline_crypt() can/should be used. + * + * @see Crypt_Base::encrypt() + * @see Crypt_Base::decrypt() + * @see Crypt_Base::inline_crypt + * @var mixed + * @access private + */ + var $use_inline_crypt; + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. + * + * $mode could be: + * + * - CRYPT_MODE_ECB + * + * - CRYPT_MODE_CBC + * + * - CRYPT_MODE_CTR + * + * - CRYPT_MODE_CFB + * + * - CRYPT_MODE_OFB + * + * (or the alias constants of the choosen cipher, for example for AES: CRYPT_AES_MODE_ECB or CRYPT_AES_MODE_CBC ...) + * + * If not explictly set, CRYPT_MODE_CBC will be used. + * + * @param optional Integer $mode + * @access public + */ + function Crypt_Base($mode = CRYPT_MODE_CBC) + { + $const_crypt_mode = 'CRYPT_' . $this->const_namespace . '_MODE'; + + // Determining the availibility of mcrypt support for the cipher + if (!defined($const_crypt_mode)) { + switch (true) { + case extension_loaded('mcrypt') && in_array($this->cipher_name_mcrypt, mcrypt_list_algorithms()): + define($const_crypt_mode, CRYPT_MODE_MCRYPT); + break; + default: + define($const_crypt_mode, CRYPT_MODE_INTERNAL); + } + } + + // Determining which internal $engine should be used. + // The fastes possible first. + switch (true) { + case empty($this->cipher_name_mcrypt): // The cipher module has no mcrypt-engine support at all so we force CRYPT_MODE_INTERNAL + $this->engine = CRYPT_MODE_INTERNAL; + break; + case constant($const_crypt_mode) == CRYPT_MODE_MCRYPT: + $this->engine = CRYPT_MODE_MCRYPT; + break; + default: + $this->engine = CRYPT_MODE_INTERNAL; + } + + // $mode dependent settings + switch ($mode) { + case CRYPT_MODE_ECB: + $this->paddable = true; + $this->mode = $mode; + break; + case CRYPT_MODE_CTR: + case CRYPT_MODE_CFB: + case CRYPT_MODE_OFB: + case CRYPT_MODE_STREAM: + $this->mode = $mode; + break; + case CRYPT_MODE_CBC: + default: + $this->paddable = true; + $this->mode = CRYPT_MODE_CBC; + } + + // Determining whether inline crypting can be used by the cipher + if ($this->use_inline_crypt !== false && function_exists('create_function')) { + $this->use_inline_crypt = true; + } + } + + /** + * Sets the initialization vector. (optional) + * + * SetIV is not required when CRYPT_MODE_ECB (or ie for AES: CRYPT_AES_MODE_ECB) is being used. If not explictly set, it'll be assumed + * to be all zero's. + * + * Note: Could, but not must, extend by the child Crypt_* class + * + * @access public + * @param String $iv + */ + function setIV($iv) + { + if ($this->mode == CRYPT_MODE_ECB) { + return; + } + + $this->iv = $iv; + $this->changed = true; + } + + /** + * Sets the key. + * + * The min/max length(s) of the key depends on the cipher which is used. + * If the key not fits the length(s) of the cipher it will paded with null bytes + * up to the closest valid key length. If the key is more than max length, + * we trim the excess bits. + * + * If the key is not explicitly set, it'll be assumed to be all null bytes. + * + * Note: Could, but not must, extend by the child Crypt_* class + * + * @access public + * @param String $key + */ + function setKey($key) + { + $this->key = $key; + $this->changed = true; + } + + /** + * Sets the password. + * + * Depending on what $method is set to, setPassword()'s (optional) parameters are as follows: + * {@link http://en.wikipedia.org/wiki/PBKDF2 pbkdf2}: + * $hash, $salt, $count, $dkLen + * + * Where $hash (default = sha1) currently supports the following hashes: see: Crypt/Hash.php + * + * Note: Could, but not must, extend by the child Crypt_* class + * + * @see Crypt/Hash.php + * @param String $password + * @param optional String $method + * @access public + */ + function setPassword($password, $method = 'pbkdf2') + { + $key = ''; + + switch ($method) { + default: // 'pbkdf2' + $func_args = func_get_args(); + + // Hash function + $hash = isset($func_args[2]) ? $func_args[2] : 'sha1'; + + // WPA and WPA2 use the SSID as the salt + $salt = isset($func_args[3]) ? $func_args[3] : $this->password_default_salt; + + // RFC2898#section-4.2 uses 1,000 iterations by default + // WPA and WPA2 use 4,096. + $count = isset($func_args[4]) ? $func_args[4] : 1000; + + // Keylength + $dkLen = isset($func_args[5]) ? $func_args[5] : $this->password_key_size; + + // Determining if php[>=5.5.0]'s hash_pbkdf2() function avail- and useable + switch (true) { + case !function_exists('hash_pbkdf2'): + case !function_exists('hash_algos'): + case !in_array($hash, hash_algos()): + if (!class_exists('Crypt_Hash')) { + include_once 'Crypt/Hash.php'; + } + $i = 1; + while (strlen($key) < $dkLen) { + $hmac = new Crypt_Hash(); + $hmac->setHash($hash); + $hmac->setKey($password); + $f = $u = $hmac->hash($salt . pack('N', $i++)); + for ($j = 2; $j <= $count; ++$j) { + $u = $hmac->hash($u); + $f^= $u; + } + $key.= $f; + } + $key = substr($key, 0, $dkLen); + break; + default: + $key = hash_pbkdf2($hash, $password, $salt, $count, $dkLen, true); + } + } + + $this->setKey($key); + } + + /** + * Encrypts a message. + * + * $plaintext will be padded with additional bytes such that it's length is a multiple of the block size. Other cipher + * implementations may or may not pad in the same manner. Other common approaches to padding and the reasons why it's + * necessary are discussed in the following + * URL: + * + * {@link http://www.di-mgt.com.au/cryptopad.html http://www.di-mgt.com.au/cryptopad.html} + * + * An alternative to padding is to, separately, send the length of the file. This is what SSH, in fact, does. + * strlen($plaintext) will still need to be a multiple of the block size, however, arbitrary values can be added to make it that + * length. + * + * Note: Could, but not must, extend by the child Crypt_* class + * + * @see Crypt_Base::decrypt() + * @access public + * @param String $plaintext + * @return String $cipertext + */ + function encrypt($plaintext) + { + if ($this->engine == CRYPT_MODE_MCRYPT) { + if ($this->changed) { + $this->_setupMcrypt(); + $this->changed = false; + } + if ($this->enchanged) { + mcrypt_generic_init($this->enmcrypt, $this->key, $this->encryptIV); + $this->enchanged = false; + } + + // re: {@link http://phpseclib.sourceforge.net/cfb-demo.phps} + // using mcrypt's default handing of CFB the above would output two different things. using phpseclib's + // rewritten CFB implementation the above outputs the same thing twice. + if ($this->mode == CRYPT_MODE_CFB && $this->continuousBuffer) { + $block_size = $this->block_size; + $iv = &$this->encryptIV; + $pos = &$this->enbuffer['pos']; + $len = strlen($plaintext); + $ciphertext = ''; + $i = 0; + if ($pos) { + $orig_pos = $pos; + $max = $block_size - $pos; + if ($len >= $max) { + $i = $max; + $len-= $max; + $pos = 0; + } else { + $i = $len; + $pos+= $len; + $len = 0; + } + $ciphertext = substr($iv, $orig_pos) ^ $plaintext; + $iv = substr_replace($iv, $ciphertext, $orig_pos, $i); + $this->enbuffer['enmcrypt_init'] = true; + } + if ($len >= $block_size) { + if ($this->enbuffer['enmcrypt_init'] === false || $len > $this->cfb_init_len) { + if ($this->enbuffer['enmcrypt_init'] === true) { + mcrypt_generic_init($this->enmcrypt, $this->key, $iv); + $this->enbuffer['enmcrypt_init'] = false; + } + $ciphertext.= mcrypt_generic($this->enmcrypt, substr($plaintext, $i, $len - $len % $block_size)); + $iv = substr($ciphertext, -$block_size); + $len%= $block_size; + } else { + while ($len >= $block_size) { + $iv = mcrypt_generic($this->ecb, $iv) ^ substr($plaintext, $i, $block_size); + $ciphertext.= $iv; + $len-= $block_size; + $i+= $block_size; + } + } + } + + if ($len) { + $iv = mcrypt_generic($this->ecb, $iv); + $block = $iv ^ substr($plaintext, -$len); + $iv = substr_replace($iv, $block, 0, $len); + $ciphertext.= $block; + $pos = $len; + } + + return $ciphertext; + } + + if ($this->paddable) { + $plaintext = $this->_pad($plaintext); + } + + $ciphertext = mcrypt_generic($this->enmcrypt, $plaintext); + + if (!$this->continuousBuffer) { + mcrypt_generic_init($this->enmcrypt, $this->key, $this->encryptIV); + } + + return $ciphertext; + } + + if ($this->changed) { + $this->_setup(); + $this->changed = false; + } + if ($this->use_inline_crypt) { + $inline = $this->inline_crypt; + return $inline('encrypt', $this, $plaintext); + } + if ($this->paddable) { + $plaintext = $this->_pad($plaintext); + } + + $buffer = &$this->enbuffer; + $block_size = $this->block_size; + $ciphertext = ''; + switch ($this->mode) { + case CRYPT_MODE_ECB: + for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { + $ciphertext.= $this->_encryptBlock(substr($plaintext, $i, $block_size)); + } + break; + case CRYPT_MODE_CBC: + $xor = $this->encryptIV; + for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { + $block = substr($plaintext, $i, $block_size); + $block = $this->_encryptBlock($block ^ $xor); + $xor = $block; + $ciphertext.= $block; + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + } + break; + case CRYPT_MODE_CTR: + $xor = $this->encryptIV; + if (strlen($buffer['encrypted'])) { + for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { + $block = substr($plaintext, $i, $block_size); + if (strlen($block) > strlen($buffer['encrypted'])) { + $buffer['encrypted'].= $this->_encryptBlock($this->_generateXor($xor, $block_size)); + } + $key = $this->_stringShift($buffer['encrypted'], $block_size); + $ciphertext.= $block ^ $key; + } + } else { + for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { + $block = substr($plaintext, $i, $block_size); + $key = $this->_encryptBlock($this->_generateXor($xor, $block_size)); + $ciphertext.= $block ^ $key; + } + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + if ($start = strlen($plaintext) % $block_size) { + $buffer['encrypted'] = substr($key, $start) . $buffer['encrypted']; + } + } + break; + case CRYPT_MODE_CFB: + // cfb loosely routines inspired by openssl's: + // {@link http://cvs.openssl.org/fileview?f=openssl/crypto/modes/cfb128.c&v=1.3.2.2.2.1} + if ($this->continuousBuffer) { + $iv = &$this->encryptIV; + $pos = &$buffer['pos']; + } else { + $iv = $this->encryptIV; + $pos = 0; + } + $len = strlen($plaintext); + $i = 0; + if ($pos) { + $orig_pos = $pos; + $max = $block_size - $pos; + if ($len >= $max) { + $i = $max; + $len-= $max; + $pos = 0; + } else { + $i = $len; + $pos+= $len; + $len = 0; + } + // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $blocksize + $ciphertext = substr($iv, $orig_pos) ^ $plaintext; + $iv = substr_replace($iv, $ciphertext, $orig_pos, $i); + } + while ($len >= $block_size) { + $iv = $this->_encryptBlock($iv) ^ substr($plaintext, $i, $block_size); + $ciphertext.= $iv; + $len-= $block_size; + $i+= $block_size; + } + if ($len) { + $iv = $this->_encryptBlock($iv); + $block = $iv ^ substr($plaintext, $i); + $iv = substr_replace($iv, $block, 0, $len); + $ciphertext.= $block; + $pos = $len; + } + break; + case CRYPT_MODE_OFB: + $xor = $this->encryptIV; + if (strlen($buffer['xor'])) { + for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { + $block = substr($plaintext, $i, $block_size); + if (strlen($block) > strlen($buffer['xor'])) { + $xor = $this->_encryptBlock($xor); + $buffer['xor'].= $xor; + } + $key = $this->_stringShift($buffer['xor'], $block_size); + $ciphertext.= $block ^ $key; + } + } else { + for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { + $xor = $this->_encryptBlock($xor); + $ciphertext.= substr($plaintext, $i, $block_size) ^ $xor; + } + $key = $xor; + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + if ($start = strlen($plaintext) % $block_size) { + $buffer['xor'] = substr($key, $start) . $buffer['xor']; + } + } + break; + case CRYPT_MODE_STREAM: + $ciphertext = $this->_encryptBlock($plaintext); + break; + } + + return $ciphertext; + } + + /** + * Decrypts a message. + * + * If strlen($ciphertext) is not a multiple of the block size, null bytes will be added to the end of the string until + * it is. + * + * Note: Could, but not must, extend by the child Crypt_* class + * + * @see Crypt_Base::encrypt() + * @access public + * @param String $ciphertext + * @return String $plaintext + */ + function decrypt($ciphertext) + { + if ($this->engine == CRYPT_MODE_MCRYPT) { + $block_size = $this->block_size; + if ($this->changed) { + $this->_setupMcrypt(); + $this->changed = false; + } + if ($this->dechanged) { + mcrypt_generic_init($this->demcrypt, $this->key, $this->decryptIV); + $this->dechanged = false; + } + + if ($this->mode == CRYPT_MODE_CFB && $this->continuousBuffer) { + $iv = &$this->decryptIV; + $pos = &$this->debuffer['pos']; + $len = strlen($ciphertext); + $plaintext = ''; + $i = 0; + if ($pos) { + $orig_pos = $pos; + $max = $block_size - $pos; + if ($len >= $max) { + $i = $max; + $len-= $max; + $pos = 0; + } else { + $i = $len; + $pos+= $len; + $len = 0; + } + // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $blocksize + $plaintext = substr($iv, $orig_pos) ^ $ciphertext; + $iv = substr_replace($iv, substr($ciphertext, 0, $i), $orig_pos, $i); + } + if ($len >= $block_size) { + $cb = substr($ciphertext, $i, $len - $len % $block_size); + $plaintext.= mcrypt_generic($this->ecb, $iv . $cb) ^ $cb; + $iv = substr($cb, -$block_size); + $len%= $block_size; + } + if ($len) { + $iv = mcrypt_generic($this->ecb, $iv); + $plaintext.= $iv ^ substr($ciphertext, -$len); + $iv = substr_replace($iv, substr($ciphertext, -$len), 0, $len); + $pos = $len; + } + + return $plaintext; + } + + if ($this->paddable) { + // we pad with chr(0) since that's what mcrypt_generic does. to quote from {@link http://www.php.net/function.mcrypt-generic}: + // "The data is padded with "\0" to make sure the length of the data is n * blocksize." + $ciphertext = str_pad($ciphertext, strlen($ciphertext) + ($block_size - strlen($ciphertext) % $block_size) % $block_size, chr(0)); + } + + $plaintext = mdecrypt_generic($this->demcrypt, $ciphertext); + + if (!$this->continuousBuffer) { + mcrypt_generic_init($this->demcrypt, $this->key, $this->decryptIV); + } + + return $this->paddable ? $this->_unpad($plaintext) : $plaintext; + } + + if ($this->changed) { + $this->_setup(); + $this->changed = false; + } + if ($this->use_inline_crypt) { + $inline = $this->inline_crypt; + return $inline('decrypt', $this, $ciphertext); + } + + $block_size = $this->block_size; + if ($this->paddable) { + // we pad with chr(0) since that's what mcrypt_generic does [...] + $ciphertext = str_pad($ciphertext, strlen($ciphertext) + ($block_size - strlen($ciphertext) % $block_size) % $block_size, chr(0)); + } + + $buffer = &$this->debuffer; + $plaintext = ''; + switch ($this->mode) { + case CRYPT_MODE_ECB: + for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { + $plaintext.= $this->_decryptBlock(substr($ciphertext, $i, $block_size)); + } + break; + case CRYPT_MODE_CBC: + $xor = $this->decryptIV; + for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { + $block = substr($ciphertext, $i, $block_size); + $plaintext.= $this->_decryptBlock($block) ^ $xor; + $xor = $block; + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + } + break; + case CRYPT_MODE_CTR: + $xor = $this->decryptIV; + if (strlen($buffer['ciphertext'])) { + for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { + $block = substr($ciphertext, $i, $block_size); + if (strlen($block) > strlen($buffer['ciphertext'])) { + $buffer['ciphertext'].= $this->_encryptBlock($this->_generateXor($xor, $block_size)); + } + $key = $this->_stringShift($buffer['ciphertext'], $block_size); + $plaintext.= $block ^ $key; + } + } else { + for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { + $block = substr($ciphertext, $i, $block_size); + $key = $this->_encryptBlock($this->_generateXor($xor, $block_size)); + $plaintext.= $block ^ $key; + } + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + if ($start = strlen($ciphertext) % $block_size) { + $buffer['ciphertext'] = substr($key, $start) . $buffer['ciphertext']; + } + } + break; + case CRYPT_MODE_CFB: + if ($this->continuousBuffer) { + $iv = &$this->decryptIV; + $pos = &$buffer['pos']; + } else { + $iv = $this->decryptIV; + $pos = 0; + } + $len = strlen($ciphertext); + $i = 0; + if ($pos) { + $orig_pos = $pos; + $max = $block_size - $pos; + if ($len >= $max) { + $i = $max; + $len-= $max; + $pos = 0; + } else { + $i = $len; + $pos+= $len; + $len = 0; + } + // ie. $i = min($max, $len), $len-= $i, $pos+= $i, $pos%= $blocksize + $plaintext = substr($iv, $orig_pos) ^ $ciphertext; + $iv = substr_replace($iv, substr($ciphertext, 0, $i), $orig_pos, $i); + } + while ($len >= $block_size) { + $iv = $this->_encryptBlock($iv); + $cb = substr($ciphertext, $i, $block_size); + $plaintext.= $iv ^ $cb; + $iv = $cb; + $len-= $block_size; + $i+= $block_size; + } + if ($len) { + $iv = $this->_encryptBlock($iv); + $plaintext.= $iv ^ substr($ciphertext, $i); + $iv = substr_replace($iv, substr($ciphertext, $i), 0, $len); + $pos = $len; + } + break; + case CRYPT_MODE_OFB: + $xor = $this->decryptIV; + if (strlen($buffer['xor'])) { + for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { + $block = substr($ciphertext, $i, $block_size); + if (strlen($block) > strlen($buffer['xor'])) { + $xor = $this->_encryptBlock($xor); + $buffer['xor'].= $xor; + } + $key = $this->_stringShift($buffer['xor'], $block_size); + $plaintext.= $block ^ $key; + } + } else { + for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { + $xor = $this->_encryptBlock($xor); + $plaintext.= substr($ciphertext, $i, $block_size) ^ $xor; + } + $key = $xor; + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + if ($start = strlen($ciphertext) % $block_size) { + $buffer['xor'] = substr($key, $start) . $buffer['xor']; + } + } + break; + case CRYPT_MODE_STREAM: + $plaintext = $this->_decryptBlock($ciphertext); + break; + } + return $this->paddable ? $this->_unpad($plaintext) : $plaintext; + } + + /** + * Pad "packets". + * + * Block ciphers working by encrypting between their specified [$this->]block_size at a time + * If you ever need to encrypt or decrypt something that isn't of the proper length, it becomes necessary to + * pad the input so that it is of the proper length. + * + * Padding is enabled by default. Sometimes, however, it is undesirable to pad strings. Such is the case in SSH, + * where "packets" are padded with random bytes before being encrypted. Unpad these packets and you risk stripping + * away characters that shouldn't be stripped away. (SSH knows how many bytes are added because the length is + * transmitted separately) + * + * @see Crypt_Base::disablePadding() + * @access public + */ + function enablePadding() + { + $this->padding = true; + } + + /** + * Do not pad packets. + * + * @see Crypt_Base::enablePadding() + * @access public + */ + function disablePadding() + { + $this->padding = false; + } + + /** + * Treat consecutive "packets" as if they are a continuous buffer. + * + * Say you have a 32-byte plaintext $plaintext. Using the default behavior, the two following code snippets + * will yield different outputs: + * + * + * echo $rijndael->encrypt(substr($plaintext, 0, 16)); + * echo $rijndael->encrypt(substr($plaintext, 16, 16)); + * + * + * echo $rijndael->encrypt($plaintext); + * + * + * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates + * another, as demonstrated with the following: + * + * + * $rijndael->encrypt(substr($plaintext, 0, 16)); + * echo $rijndael->decrypt($rijndael->encrypt(substr($plaintext, 16, 16))); + * + * + * echo $rijndael->decrypt($rijndael->encrypt(substr($plaintext, 16, 16))); + * + * + * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different + * outputs. The reason is due to the fact that the initialization vector's change after every encryption / + * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. + * + * Put another way, when the continuous buffer is enabled, the state of the Crypt_*() object changes after each + * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that + * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), + * however, they are also less intuitive and more likely to cause you problems. + * + * Note: Could, but not must, extend by the child Crypt_* class + * + * @see Crypt_Base::disableContinuousBuffer() + * @access public + */ + function enableContinuousBuffer() + { + if ($this->mode == CRYPT_MODE_ECB) { + return; + } + + $this->continuousBuffer = true; + } + + /** + * Treat consecutive packets as if they are a discontinuous buffer. + * + * The default behavior. + * + * Note: Could, but not must, extend by the child Crypt_* class + * + * @see Crypt_Base::enableContinuousBuffer() + * @access public + */ + function disableContinuousBuffer() + { + if ($this->mode == CRYPT_MODE_ECB) { + return; + } + if (!$this->continuousBuffer) { + return; + } + + $this->continuousBuffer = false; + $this->changed = true; + } + + /** + * Encrypts a block + * + * Note: Must extend by the child Crypt_* class + * + * @access private + * @param String $in + * @return String + */ + function _encryptBlock($in) + { + user_error((version_compare(PHP_VERSION, '5.0.0', '>=') ? __METHOD__ : __FUNCTION__) . '() must extend by class ' . get_class($this), E_USER_ERROR); + } + + /** + * Decrypts a block + * + * Note: Must extend by the child Crypt_* class + * + * @access private + * @param String $in + * @return String + */ + function _decryptBlock($in) + { + user_error((version_compare(PHP_VERSION, '5.0.0', '>=') ? __METHOD__ : __FUNCTION__) . '() must extend by class ' . get_class($this), E_USER_ERROR); + } + + /** + * Setup the key (expansion) + * + * Only used if $engine == CRYPT_MODE_INTERNAL + * + * Note: Must extend by the child Crypt_* class + * + * @see Crypt_Base::_setup() + * @access private + */ + function _setupKey() + { + user_error((version_compare(PHP_VERSION, '5.0.0', '>=') ? __METHOD__ : __FUNCTION__) . '() must extend by class ' . get_class($this), E_USER_ERROR); + } + + /** + * Setup the CRYPT_MODE_INTERNAL $engine + * + * (re)init, if necessary, the internal cipher $engine and flush all $buffers + * Used (only) if $engine == CRYPT_MODE_INTERNAL + * + * _setup() will be called each time if $changed === true + * typically this happens when using one or more of following public methods: + * + * - setKey() + * + * - setIV() + * + * - disableContinuousBuffer() + * + * - First run of encrypt() / decrypt() with no init-settings + * + * Internally: _setup() is called always before(!) en/decryption. + * + * Note: Could, but not must, extend by the child Crypt_* class + * + * @see setKey() + * @see setIV() + * @see disableContinuousBuffer() + * @access private + */ + function _setup() + { + $this->_clearBuffers(); + $this->_setupKey(); + + if ($this->use_inline_crypt) { + $this->_setupInlineCrypt(); + } + } + + /** + * Setup the CRYPT_MODE_MCRYPT $engine + * + * (re)init, if necessary, the (ext)mcrypt resources and flush all $buffers + * Used (only) if $engine = CRYPT_MODE_MCRYPT + * + * _setupMcrypt() will be called each time if $changed === true + * typically this happens when using one or more of following public methods: + * + * - setKey() + * + * - setIV() + * + * - disableContinuousBuffer() + * + * - First run of encrypt() / decrypt() + * + * + * Note: Could, but not must, extend by the child Crypt_* class + * + * @see setKey() + * @see setIV() + * @see disableContinuousBuffer() + * @access private + */ + function _setupMcrypt() + { + $this->_clearBuffers(); + $this->enchanged = $this->dechanged = true; + + if (!isset($this->enmcrypt)) { + static $mcrypt_modes = array( + CRYPT_MODE_CTR => 'ctr', + CRYPT_MODE_ECB => MCRYPT_MODE_ECB, + CRYPT_MODE_CBC => MCRYPT_MODE_CBC, + CRYPT_MODE_CFB => 'ncfb', + CRYPT_MODE_OFB => MCRYPT_MODE_NOFB, + CRYPT_MODE_STREAM => MCRYPT_MODE_STREAM, + ); + + $this->demcrypt = mcrypt_module_open($this->cipher_name_mcrypt, '', $mcrypt_modes[$this->mode], ''); + $this->enmcrypt = mcrypt_module_open($this->cipher_name_mcrypt, '', $mcrypt_modes[$this->mode], ''); + + // we need the $ecb mcrypt resource (only) in MODE_CFB with enableContinuousBuffer() + // to workaround mcrypt's broken ncfb implementation in buffered mode + // see: {@link http://phpseclib.sourceforge.net/cfb-demo.phps} + if ($this->mode == CRYPT_MODE_CFB) { + $this->ecb = mcrypt_module_open($this->cipher_name_mcrypt, '', MCRYPT_MODE_ECB, ''); + } + + } // else should mcrypt_generic_deinit be called? + + if ($this->mode == CRYPT_MODE_CFB) { + mcrypt_generic_init($this->ecb, $this->key, str_repeat("\0", $this->block_size)); + } + } + + /** + * Pads a string + * + * Pads a string using the RSA PKCS padding standards so that its length is a multiple of the blocksize. + * $this->block_size - (strlen($text) % $this->block_size) bytes are added, each of which is equal to + * chr($this->block_size - (strlen($text) % $this->block_size) + * + * If padding is disabled and $text is not a multiple of the blocksize, the string will be padded regardless + * and padding will, hence forth, be enabled. + * + * @see Crypt_Base::_unpad() + * @param String $text + * @access private + * @return String + */ + function _pad($text) + { + $length = strlen($text); + + if (!$this->padding) { + if ($length % $this->block_size == 0) { + return $text; + } else { + user_error("The plaintext's length ($length) is not a multiple of the block size ({$this->block_size})"); + $this->padding = true; + } + } + + $pad = $this->block_size - ($length % $this->block_size); + + return str_pad($text, $length + $pad, chr($pad)); + } + + /** + * Unpads a string. + * + * If padding is enabled and the reported padding length is invalid the encryption key will be assumed to be wrong + * and false will be returned. + * + * @see Crypt_Base::_pad() + * @param String $text + * @access private + * @return String + */ + function _unpad($text) + { + if (!$this->padding) { + return $text; + } + + $length = ord($text[strlen($text) - 1]); + + if (!$length || $length > $this->block_size) { + return false; + } + + return substr($text, 0, -$length); + } + + /** + * Clears internal buffers + * + * Clearing/resetting the internal buffers is done everytime + * after disableContinuousBuffer() or on cipher $engine (re)init + * ie after setKey() or setIV() + * + * Note: Could, but not must, extend by the child Crypt_* class + * + * @access public + */ + function _clearBuffers() + { + $this->enbuffer = array('encrypted' => '', 'xor' => '', 'pos' => 0, 'enmcrypt_init' => true); + $this->debuffer = array('ciphertext' => '', 'xor' => '', 'pos' => 0, 'demcrypt_init' => true); + + // mcrypt's handling of invalid's $iv: + // $this->encryptIV = $this->decryptIV = strlen($this->iv) == $this->block_size ? $this->iv : str_repeat("\0", $this->block_size); + $this->encryptIV = $this->decryptIV = str_pad(substr($this->iv, 0, $this->block_size), $this->block_size, "\0"); + } + + /** + * String Shift + * + * Inspired by array_shift + * + * @param String $string + * @param optional Integer $index + * @access private + * @return String + */ + function _stringShift(&$string, $index = 1) + { + $substr = substr($string, 0, $index); + $string = substr($string, $index); + return $substr; + } + + /** + * Generate CTR XOR encryption key + * + * Encrypt the output of this and XOR it against the ciphertext / plaintext to get the + * plaintext / ciphertext in CTR mode. + * + * @see Crypt_Base::decrypt() + * @see Crypt_Base::encrypt() + * @param String $iv + * @param Integer $length + * @access private + * @return String $xor + */ + function _generateXor(&$iv, $length) + { + $xor = ''; + $block_size = $this->block_size; + $num_blocks = floor(($length + ($block_size - 1)) / $block_size); + for ($i = 0; $i < $num_blocks; $i++) { + $xor.= $iv; + for ($j = 4; $j <= $block_size; $j+= 4) { + $temp = substr($iv, -$j, 4); + switch ($temp) { + case "\xFF\xFF\xFF\xFF": + $iv = substr_replace($iv, "\x00\x00\x00\x00", -$j, 4); + break; + case "\x7F\xFF\xFF\xFF": + $iv = substr_replace($iv, "\x80\x00\x00\x00", -$j, 4); + break 2; + default: + extract(unpack('Ncount', $temp)); + $iv = substr_replace($iv, pack('N', $count + 1), -$j, 4); + break 2; + } + } + } + + return $xor; + } + + /** + * Setup the performance-optimized function for de/encrypt() + * + * Stores the created (or existing) callback function-name + * in $this->inline_crypt + * + * Internally for phpseclib developers: + * + * _setupInlineCrypt() would be called only if: + * + * - $engine == CRYPT_MODE_INTERNAL and + * + * - $use_inline_crypt === true + * + * - each time on _setup(), after(!) _setupKey() + * + * + * This ensures that _setupInlineCrypt() has allways a + * full ready2go initializated internal cipher $engine state + * where, for example, the keys allready expanded, + * keys/block_size calculated and such. + * + * It is, each time if called, the responsibility of _setupInlineCrypt(): + * + * - to set $this->inline_crypt to a valid and fully working callback function + * as a (faster) replacement for encrypt() / decrypt() + * + * - NOT to create unlimited callback functions (for memory reasons!) + * no matter how often _setupInlineCrypt() would be called. At some + * point of amount they must be generic re-useable. + * + * - the code of _setupInlineCrypt() it self, + * and the generated callback code, + * must be, in following order: + * - 100% safe + * - 100% compatible to encrypt()/decrypt() + * - using only php5+ features/lang-constructs/php-extensions if + * compatibility (down to php4) or fallback is provided + * - readable/maintainable/understandable/commented and... not-cryptic-styled-code :-) + * - >= 10% faster than encrypt()/decrypt() [which is, by the way, + * the reason for the existence of _setupInlineCrypt() :-)] + * - memory-nice + * - short (as good as possible) + * + * Note: - _setupInlineCrypt() is using _createInlineCryptFunction() to create the full callback function code. + * - In case of using inline crypting, _setupInlineCrypt() must extend by the child Crypt_* class. + * - The following variable names are reserved: + * - $_* (all variable names prefixed with an underscore) + * - $self (object reference to it self. Do not use $this, but $self instead) + * - $in (the content of $in has to en/decrypt by the generated code) + * - The callback function should not use the 'return' statement, but en/decrypt'ing the content of $in only + * + * + * @see Crypt_Base::_setup() + * @see Crypt_Base::_createInlineCryptFunction() + * @see Crypt_Base::encrypt() + * @see Crypt_Base::decrypt() + * @access private + */ + function _setupInlineCrypt() + { + // If a Crypt_* class providing inline crypting it must extend _setupInlineCrypt() + + // If, for any reason, an extending Crypt_Base() Crypt_* class + // not using inline crypting then it must be ensured that: $this->use_inline_crypt = false + // ie in the class var declaration of $use_inline_crypt in general for the Crypt_* class, + // in the constructor at object instance-time + // or, if it's runtime-specific, at runtime + + $this->use_inline_crypt = false; + } + + /** + * Creates the performance-optimized function for en/decrypt() + * + * Internally for phpseclib developers: + * + * _createInlineCryptFunction(): + * + * - merge the $cipher_code [setup'ed by _setupInlineCrypt()] + * with the current [$this->]mode of operation code + * + * - create the $inline function, which called by encrypt() / decrypt() + * as its replacement to speed up the en/decryption operations. + * + * - return the name of the created $inline callback function + * + * - used to speed up en/decryption + * + * + * + * The main reason why can speed up things [up to 50%] this way are: + * + * - using variables more effective then regular. + * (ie no use of expensive arrays but integers $k_0, $k_1 ... + * or even, for example, the pure $key[] values hardcoded) + * + * - avoiding 1000's of function calls of ie _encryptBlock() + * but inlining the crypt operations. + * in the mode of operation for() loop. + * + * - full loop unroll the (sometimes key-dependent) rounds + * avoiding this way ++$i counters and runtime-if's etc... + * + * The basic code architectur of the generated $inline en/decrypt() + * lambda function, in pseudo php, is: + * + * + * +----------------------------------------------------------------------------------------------+ + * | callback $inline = create_function: | + * | lambda_function_0001_crypt_ECB($action, $text) | + * | { | + * | INSERT PHP CODE OF: | + * | $cipher_code['init_crypt']; // general init code. | + * | // ie: $sbox'es declarations used for | + * | // encrypt and decrypt'ing. | + * | | + * | switch ($action) { | + * | case 'encrypt': | + * | INSERT PHP CODE OF: | + * | $cipher_code['init_encrypt']; // encrypt sepcific init code. | + * | ie: specified $key or $box | + * | declarations for encrypt'ing. | + * | | + * | foreach ($ciphertext) { | + * | $in = $block_size of $ciphertext; | + * | | + * | INSERT PHP CODE OF: | + * | $cipher_code['encrypt_block']; // encrypt's (string) $in, which is always: | + * | // strlen($in) == $this->block_size | + * | // here comes the cipher algorithm in action | + * | // for encryption. | + * | // $cipher_code['encrypt_block'] has to | + * | // encrypt the content of the $in variable | + * | | + * | $plaintext .= $in; | + * | } | + * | return $plaintext; | + * | | + * | case 'decrypt': | + * | INSERT PHP CODE OF: | + * | $cipher_code['init_decrypt']; // decrypt sepcific init code | + * | ie: specified $key or $box | + * | declarations for decrypt'ing. | + * | foreach ($plaintext) { | + * | $in = $block_size of $plaintext; | + * | | + * | INSERT PHP CODE OF: | + * | $cipher_code['decrypt_block']; // decrypt's (string) $in, which is always | + * | // strlen($in) == $this->block_size | + * | // here comes the cipher algorithm in action | + * | // for decryption. | + * | // $cipher_code['decrypt_block'] has to | + * | // decrypt the content of the $in variable | + * | $ciphertext .= $in; | + * | } | + * | return $ciphertext; | + * | } | + * | } | + * +----------------------------------------------------------------------------------------------+ + * + * + * See also the Crypt_*::_setupInlineCrypt()'s for + * productive inline $cipher_code's how they works. + * + * Structure of: + * + * $cipher_code = array( + * 'init_crypt' => (string) '', // optional + * 'init_encrypt' => (string) '', // optional + * 'init_decrypt' => (string) '', // optional + * 'encrypt_block' => (string) '', // required + * 'decrypt_block' => (string) '' // required + * ); + * + * + * @see Crypt_Base::_setupInlineCrypt() + * @see Crypt_Base::encrypt() + * @see Crypt_Base::decrypt() + * @param Array $cipher_code + * @access private + * @return String (the name of the created callback function) + */ + function _createInlineCryptFunction($cipher_code) + { + $block_size = $this->block_size; + + // optional + $init_crypt = isset($cipher_code['init_crypt']) ? $cipher_code['init_crypt'] : ''; + $init_encrypt = isset($cipher_code['init_encrypt']) ? $cipher_code['init_encrypt'] : ''; + $init_decrypt = isset($cipher_code['init_decrypt']) ? $cipher_code['init_decrypt'] : ''; + // required + $encrypt_block = $cipher_code['encrypt_block']; + $decrypt_block = $cipher_code['decrypt_block']; + + // Generating mode of operation inline code, + // merged with the $cipher_code algorithm + // for encrypt- and decryption. + switch ($this->mode) { + case CRYPT_MODE_ECB: + $encrypt = $init_encrypt . ' + $_ciphertext = ""; + $_text = $self->_pad($_text); + $_plaintext_len = strlen($_text); + + for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { + $in = substr($_text, $_i, '.$block_size.'); + '.$encrypt_block.' + $_ciphertext.= $in; + } + + return $_ciphertext; + '; + + $decrypt = $init_decrypt . ' + $_plaintext = ""; + $_text = str_pad($_text, strlen($_text) + ('.$block_size.' - strlen($_text) % '.$block_size.') % '.$block_size.', chr(0)); + $_ciphertext_len = strlen($_text); + + for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { + $in = substr($_text, $_i, '.$block_size.'); + '.$decrypt_block.' + $_plaintext.= $in; + } + + return $self->_unpad($_plaintext); + '; + break; + case CRYPT_MODE_CTR: + $encrypt = $init_encrypt . ' + $_ciphertext = ""; + $_plaintext_len = strlen($_text); + $_xor = $self->encryptIV; + $_buffer = &$self->enbuffer; + + if (strlen($_buffer["encrypted"])) { + for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { + $_block = substr($_text, $_i, '.$block_size.'); + if (strlen($_block) > strlen($_buffer["encrypted"])) { + $in = $self->_generateXor($_xor, '.$block_size.'); + '.$encrypt_block.' + $_buffer["encrypted"].= $in; + } + $_key = $self->_stringShift($_buffer["encrypted"], '.$block_size.'); + $_ciphertext.= $_block ^ $_key; + } + } else { + for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { + $_block = substr($_text, $_i, '.$block_size.'); + $in = $self->_generateXor($_xor, '.$block_size.'); + '.$encrypt_block.' + $_key = $in; + $_ciphertext.= $_block ^ $_key; + } + } + if ($self->continuousBuffer) { + $self->encryptIV = $_xor; + if ($_start = $_plaintext_len % '.$block_size.') { + $_buffer["encrypted"] = substr($_key, $_start) . $_buffer["encrypted"]; + } + } + + return $_ciphertext; + '; + + $decrypt = $init_encrypt . ' + $_plaintext = ""; + $_ciphertext_len = strlen($_text); + $_xor = $self->decryptIV; + $_buffer = &$self->debuffer; + + if (strlen($_buffer["ciphertext"])) { + for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { + $_block = substr($_text, $_i, '.$block_size.'); + if (strlen($_block) > strlen($_buffer["ciphertext"])) { + $in = $self->_generateXor($_xor, '.$block_size.'); + '.$encrypt_block.' + $_buffer["ciphertext"].= $in; + } + $_key = $self->_stringShift($_buffer["ciphertext"], '.$block_size.'); + $_plaintext.= $_block ^ $_key; + } + } else { + for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { + $_block = substr($_text, $_i, '.$block_size.'); + $in = $self->_generateXor($_xor, '.$block_size.'); + '.$encrypt_block.' + $_key = $in; + $_plaintext.= $_block ^ $_key; + } + } + if ($self->continuousBuffer) { + $self->decryptIV = $_xor; + if ($_start = $_ciphertext_len % '.$block_size.') { + $_buffer["ciphertext"] = substr($_key, $_start) . $_buffer["ciphertext"]; + } + } + + return $_plaintext; + '; + break; + case CRYPT_MODE_CFB: + $encrypt = $init_encrypt . ' + $_ciphertext = ""; + $_buffer = &$self->enbuffer; + + if ($self->continuousBuffer) { + $_iv = &$self->encryptIV; + $_pos = &$_buffer["pos"]; + } else { + $_iv = $self->encryptIV; + $_pos = 0; + } + $_len = strlen($_text); + $_i = 0; + if ($_pos) { + $_orig_pos = $_pos; + $_max = '.$block_size.' - $_pos; + if ($_len >= $_max) { + $_i = $_max; + $_len-= $_max; + $_pos = 0; + } else { + $_i = $_len; + $_pos+= $_len; + $_len = 0; + } + $_ciphertext = substr($_iv, $_orig_pos) ^ $_text; + $_iv = substr_replace($_iv, $_ciphertext, $_orig_pos, $_i); + } + while ($_len >= '.$block_size.') { + $in = $_iv; + '.$encrypt_block.'; + $_iv = $in ^ substr($_text, $_i, '.$block_size.'); + $_ciphertext.= $_iv; + $_len-= '.$block_size.'; + $_i+= '.$block_size.'; + } + if ($_len) { + $in = $_iv; + '.$encrypt_block.' + $_iv = $in; + $_block = $_iv ^ substr($_text, $_i); + $_iv = substr_replace($_iv, $_block, 0, $_len); + $_ciphertext.= $_block; + $_pos = $_len; + } + return $_ciphertext; + '; + + $decrypt = $init_encrypt . ' + $_plaintext = ""; + $_buffer = &$self->debuffer; + + if ($self->continuousBuffer) { + $_iv = &$self->decryptIV; + $_pos = &$_buffer["pos"]; + } else { + $_iv = $self->decryptIV; + $_pos = 0; + } + $_len = strlen($_text); + $_i = 0; + if ($_pos) { + $_orig_pos = $_pos; + $_max = '.$block_size.' - $_pos; + if ($_len >= $_max) { + $_i = $_max; + $_len-= $_max; + $_pos = 0; + } else { + $_i = $_len; + $_pos+= $_len; + $_len = 0; + } + $_plaintext = substr($_iv, $_orig_pos) ^ $_text; + $_iv = substr_replace($_iv, substr($_text, 0, $_i), $_orig_pos, $_i); + } + while ($_len >= '.$block_size.') { + $in = $_iv; + '.$encrypt_block.' + $_iv = $in; + $cb = substr($_text, $_i, '.$block_size.'); + $_plaintext.= $_iv ^ $cb; + $_iv = $cb; + $_len-= '.$block_size.'; + $_i+= '.$block_size.'; + } + if ($_len) { + $in = $_iv; + '.$encrypt_block.' + $_iv = $in; + $_plaintext.= $_iv ^ substr($_text, $_i); + $_iv = substr_replace($_iv, substr($_text, $_i), 0, $_len); + $_pos = $_len; + } + + return $_plaintext; + '; + break; + case CRYPT_MODE_OFB: + $encrypt = $init_encrypt . ' + $_ciphertext = ""; + $_plaintext_len = strlen($_text); + $_xor = $self->encryptIV; + $_buffer = &$self->enbuffer; + + if (strlen($_buffer["xor"])) { + for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { + $_block = substr($_text, $_i, '.$block_size.'); + if (strlen($_block) > strlen($_buffer["xor"])) { + $in = $_xor; + '.$encrypt_block.' + $_xor = $in; + $_buffer["xor"].= $_xor; + } + $_key = $self->_stringShift($_buffer["xor"], '.$block_size.'); + $_ciphertext.= $_block ^ $_key; + } + } else { + for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { + $in = $_xor; + '.$encrypt_block.' + $_xor = $in; + $_ciphertext.= substr($_text, $_i, '.$block_size.') ^ $_xor; + } + $_key = $_xor; + } + if ($self->continuousBuffer) { + $self->encryptIV = $_xor; + if ($_start = $_plaintext_len % '.$block_size.') { + $_buffer["xor"] = substr($_key, $_start) . $_buffer["xor"]; + } + } + return $_ciphertext; + '; + + $decrypt = $init_encrypt . ' + $_plaintext = ""; + $_ciphertext_len = strlen($_text); + $_xor = $self->decryptIV; + $_buffer = &$self->debuffer; + + if (strlen($_buffer["xor"])) { + for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { + $_block = substr($_text, $_i, '.$block_size.'); + if (strlen($_block) > strlen($_buffer["xor"])) { + $in = $_xor; + '.$encrypt_block.' + $_xor = $in; + $_buffer["xor"].= $_xor; + } + $_key = $self->_stringShift($_buffer["xor"], '.$block_size.'); + $_plaintext.= $_block ^ $_key; + } + } else { + for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { + $in = $_xor; + '.$encrypt_block.' + $_xor = $in; + $_plaintext.= substr($_text, $_i, '.$block_size.') ^ $_xor; + } + $_key = $_xor; + } + if ($self->continuousBuffer) { + $self->decryptIV = $_xor; + if ($_start = $_ciphertext_len % '.$block_size.') { + $_buffer["xor"] = substr($_key, $_start) . $_buffer["xor"]; + } + } + return $_plaintext; + '; + break; + case CRYPT_MODE_STREAM: + $encrypt = $init_encrypt . ' + $_ciphertext = ""; + '.$encrypt_block.' + return $_ciphertext; + '; + $decrypt = $init_decrypt . ' + $_plaintext = ""; + '.$decrypt_block.' + return $_plaintext; + '; + break; + // case CRYPT_MODE_CBC: + default: + $encrypt = $init_encrypt . ' + $_ciphertext = ""; + $_text = $self->_pad($_text); + $_plaintext_len = strlen($_text); + + $in = $self->encryptIV; + + for ($_i = 0; $_i < $_plaintext_len; $_i+= '.$block_size.') { + $in = substr($_text, $_i, '.$block_size.') ^ $in; + '.$encrypt_block.' + $_ciphertext.= $in; + } + + if ($self->continuousBuffer) { + $self->encryptIV = $in; + } + + return $_ciphertext; + '; + + $decrypt = $init_decrypt . ' + $_plaintext = ""; + $_text = str_pad($_text, strlen($_text) + ('.$block_size.' - strlen($_text) % '.$block_size.') % '.$block_size.', chr(0)); + $_ciphertext_len = strlen($_text); + + $_iv = $self->decryptIV; + + for ($_i = 0; $_i < $_ciphertext_len; $_i+= '.$block_size.') { + $in = $_block = substr($_text, $_i, '.$block_size.'); + '.$decrypt_block.' + $_plaintext.= $in ^ $_iv; + $_iv = $_block; + } + + if ($self->continuousBuffer) { + $self->decryptIV = $_iv; + } + + return $self->_unpad($_plaintext); + '; + break; + } + + // Create the $inline function and return its name as string. Ready to run! + return create_function('$_action, &$self, $_text', $init_crypt . 'if ($_action == "encrypt") { ' . $encrypt . ' } else { ' . $decrypt . ' }'); + } + + /** + * Holds the lambda_functions table (classwide) + * + * Each name of the lambda function, created from + * _setupInlineCrypt() && _createInlineCryptFunction() + * is stored, classwide (!), here for reusing. + * + * The string-based index of $function is a classwide + * uniqe value representing, at least, the $mode of + * operation (or more... depends of the optimizing level) + * for which $mode the lambda function was created. + * + * @access private + * @return &Array + */ + function &_getLambdaFunctions() + { + static $functions = array(); + return $functions; + } +} diff --git a/lam/lib/3rdParty/phpseclib/Crypt/Blowfish.php b/lam/lib/3rdParty/phpseclib/Crypt/Blowfish.php new file mode 100644 index 00000000..dec28167 --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/Crypt/Blowfish.php @@ -0,0 +1,674 @@ + + * setKey('12345678901234567890123456789012'); + * + * $plaintext = str_repeat('a', 1024); + * + * echo $blowfish->decrypt($blowfish->encrypt($plaintext)); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Crypt + * @package Crypt_Blowfish + * @author Jim Wigginton + * @author Hans-Juergen Petrich + * @copyright MMVII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @version 1.0 + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Crypt_Base + * + * Base cipher class + */ +if (!class_exists('Crypt_Base')) { + include_once 'Base.php'; +} + +/**#@+ + * @access public + * @see Crypt_Blowfish::encrypt() + * @see Crypt_Blowfish::decrypt() + */ +/** + * Encrypt / decrypt using the Counter mode. + * + * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 + */ +define('CRYPT_BLOWFISH_MODE_CTR', CRYPT_MODE_CTR); +/** + * Encrypt / decrypt using the Electronic Code Book mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 + */ +define('CRYPT_BLOWFISH_MODE_ECB', CRYPT_MODE_ECB); +/** + * Encrypt / decrypt using the Code Book Chaining mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 + */ +define('CRYPT_BLOWFISH_MODE_CBC', CRYPT_MODE_CBC); +/** + * Encrypt / decrypt using the Cipher Feedback mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29 + */ +define('CRYPT_BLOWFISH_MODE_CFB', CRYPT_MODE_CFB); +/** + * Encrypt / decrypt using the Cipher Feedback mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Output_feedback_.28OFB.29 + */ +define('CRYPT_BLOWFISH_MODE_OFB', CRYPT_MODE_OFB); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_Blowfish::Crypt_Blowfish() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_BLOWFISH_MODE_INTERNAL', CRYPT_MODE_INTERNAL); +/** + * Toggles the mcrypt implementation + */ +define('CRYPT_BLOWFISH_MODE_MCRYPT', CRYPT_MODE_MCRYPT); +/**#@-*/ + +/** + * Pure-PHP implementation of Blowfish. + * + * @package Crypt_Blowfish + * @author Jim Wigginton + * @author Hans-Juergen Petrich + * @version 1.0 + * @access public + */ +class Crypt_Blowfish extends Crypt_Base +{ + /** + * Block Length of the cipher + * + * @see Crypt_Base::block_size + * @var Integer + * @access private + */ + var $block_size = 8; + + /** + * The default password key_size used by setPassword() + * + * @see Crypt_Base::password_key_size + * @see Crypt_Base::setPassword() + * @var Integer + * @access private + */ + var $password_key_size = 56; + + /** + * The namespace used by the cipher for its constants. + * + * @see Crypt_Base::const_namespace + * @var String + * @access private + */ + var $const_namespace = 'BLOWFISH'; + + /** + * The mcrypt specific name of the cipher + * + * @see Crypt_Base::cipher_name_mcrypt + * @var String + * @access private + */ + var $cipher_name_mcrypt = 'blowfish'; + + /** + * Optimizing value while CFB-encrypting + * + * @see Crypt_Base::cfb_init_len + * @var Integer + * @access private + */ + var $cfb_init_len = 500; + + /** + * The fixed subkeys boxes ($sbox0 - $sbox3) with 256 entries each + * + * S-Box 1 + * + * @access private + * @var array + */ + var $sbox0 = array ( + 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99, + 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16, 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e, + 0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee, 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, + 0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef, 0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e, + 0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60, 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, + 0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce, 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a, + 0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, 0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677, + 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193, 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, + 0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88, 0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239, + 0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, 0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0, + 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3, 0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98, + 0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88, 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe, + 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, 0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d, + 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b, 0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7, + 0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x04c006ba, 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463, + 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, 0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09, + 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3, 0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb, + 0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279, 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8, + 0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab, 0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82, + 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db, 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, + 0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0, 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b, + 0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8, + 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4, 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, + 0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7, 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c, + 0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, 0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1, + 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, 0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, + 0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477, 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf, + 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, 0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af, + 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa, 0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5, + 0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915, + 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915, + 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664, 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a + ); + + /** + * S-Box 1 + * + * @access private + * @var array + */ + var $sbox1 = array( + 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266, + 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1, 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, + 0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1, + 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, 0x09686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1, + 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737, 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8, + 0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff, 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd, + 0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701, 0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7, + 0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41, 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, + 0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf, 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af, + 0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, 0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87, + 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c, 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, + 0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16, 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd, + 0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b, 0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509, + 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, 0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, + 0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f, 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a, + 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, 0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960, + 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66, 0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28, + 0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802, 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84, + 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, 0x13cca830, 0xeb61bd96, 0x0334fe1e, 0xaa0363cf, + 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14, 0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e, + 0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50, 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7, + 0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8, 0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281, + 0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99, 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, + 0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128, 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73, + 0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, 0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0, + 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105, 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, + 0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3, 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285, + 0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00, 0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061, + 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, 0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e, + 0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc, + 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, 0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340, + 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20, 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7 + ); + + /** + * S-Box 2 + * + * @access private + * @var array + */ + var $sbox2 = array( + 0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, 0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068, + 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840, + 0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504, + 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, 0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb, + 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee, 0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6, + 0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42, 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b, + 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, 0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb, + 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527, 0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b, + 0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33, 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c, + 0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3, 0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc, + 0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17, 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, + 0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b, 0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115, + 0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, 0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728, + 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0, 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, + 0x0a476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37, 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d, + 0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804, 0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b, + 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, 0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb, + 0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d, 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c, + 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350, 0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9, + 0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a, 0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe, + 0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d, 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc, + 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, 0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61, + 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2, 0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9, + 0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2, 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c, + 0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e, 0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633, + 0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10, 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169, + 0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52, 0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027, + 0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, 0xf0177a28, 0xc0f586e0, 0x006058aa, 0x30dc7d62, + 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634, 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, + 0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc, + 0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c, + 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0 + ); + + /** + * S-Box 3 + * + * @access private + * @var array + */ + var $sbox3 = array( + 0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe, + 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b, 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, + 0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6, + 0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304, 0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22, + 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, 0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6, + 0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9, 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59, + 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, 0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51, + 0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28, 0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c, + 0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b, 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28, + 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, 0x15056dd4, 0x88f46dba, 0x03a16125, 0x0564f0bd, + 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a, 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319, + 0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb, 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f, + 0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991, 0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32, + 0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680, 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166, + 0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae, 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb, + 0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, 0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47, + 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370, 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, + 0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x0115af84, 0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048, + 0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8, 0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd, + 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, 0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, + 0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38, 0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f, + 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, 0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525, + 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1, 0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442, + 0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964, 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e, + 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, 0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d, + 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f, 0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299, + 0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02, 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc, + 0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614, 0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a, + 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6, 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, + 0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0, 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060, + 0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9, + 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f, 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6 + ); + + /** + * P-Array consists of 18 32-bit subkeys + * + * @var array $parray + * @access private + */ + var $parray = array( + 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, 0x299f31d0, + 0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c, + 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, 0x9216d5d9, 0x8979fb1b + ); + + /** + * The BCTX-working Array + * + * Holds the expanded key [p] and the key-depended s-boxes [sb] + * + * @var array $bctx + * @access private + */ + var $bctx; + + /** + * Holds the last used key + * + * @var Array + * @access private + */ + var $kl; + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. + * + * $mode could be: + * + * - CRYPT_BLOWFISH_MODE_ECB + * + * - CRYPT_BLOWFISH_MODE_CBC + * + * - CRYPT_BLOWFISH_MODE_CTR + * + * - CRYPT_BLOWFISH_MODE_CFB + * + * - CRYPT_BLOWFISH_MODE_OFB + * + * If not explictly set, CRYPT_BLOWFISH_MODE_CBC will be used. + * + * @see Crypt_Base::Crypt_Base() + * @param optional Integer $mode + * @access public + */ + function Crypt_Blowfish($mode = CRYPT_BLOWFISH_MODE_CBC) + { + parent::Crypt_Base($mode); + } + + /** + * Sets the key. + * + * Keys can be of any length. Blowfish, itself, requires the use of a key between 32 and max. 448-bits long. + * If the key is less than 32-bits we NOT fill the key to 32bit but let the key as it is to be compatible + * with mcrypt because mcrypt act this way with blowfish key's < 32 bits. + * + * If the key is more than 448-bits, we trim the excess bits. + * + * If the key is not explicitly set, or empty, it'll be assumed a 128 bits key to be all null bytes. + * + * @access public + * @see Crypt_Base::setKey() + * @param String $key + */ + function setKey($key) + { + $keylength = strlen($key); + + if (!$keylength) { + $key = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; + } elseif ($keylength > 56) { + $key = substr($key, 0, 56); + } + + parent::setKey($key); + } + + /** + * Setup the key (expansion) + * + * @see Crypt_Base::_setupKey() + * @access private + */ + function _setupKey() + { + if (isset($this->kl['key']) && $this->key === $this->kl['key']) { + // already expanded + return; + } + $this->kl = array('key' => $this->key); + + /* key-expanding p[] and S-Box building sb[] */ + $this->bctx = array( + 'p' => array(), + 'sb' => array( + $this->sbox0, + $this->sbox1, + $this->sbox2, + $this->sbox3 + ) + ); + + // unpack binary string in unsigned chars + $key = array_values(unpack('C*', $this->key)); + $keyl = count($key); + for ($j = 0, $i = 0; $i < 18; ++$i) { + // xor P1 with the first 32-bits of the key, xor P2 with the second 32-bits ... + for ($data = 0, $k = 0; $k < 4; ++$k) { + $data = ($data << 8) | $key[$j]; + if (++$j >= $keyl) { + $j = 0; + } + } + $this->bctx['p'][] = $this->parray[$i] ^ $data; + } + + // encrypt the zero-string, replace P1 and P2 with the encrypted data, + // encrypt P3 and P4 with the new P1 and P2, do it with all P-array and subkeys + $data = "\0\0\0\0\0\0\0\0"; + for ($i = 0; $i < 18; $i += 2) { + list($l, $r) = array_values(unpack('N*', $data = $this->_encryptBlock($data))); + $this->bctx['p'][$i ] = $l; + $this->bctx['p'][$i + 1] = $r; + } + for ($i = 0; $i < 4; ++$i) { + for ($j = 0; $j < 256; $j += 2) { + list($l, $r) = array_values(unpack('N*', $data = $this->_encryptBlock($data))); + $this->bctx['sb'][$i][$j ] = $l; + $this->bctx['sb'][$i][$j + 1] = $r; + } + } + } + + /** + * Encrypts a block + * + * @access private + * @param String $in + * @return String + */ + function _encryptBlock($in) + { + $p = $this->bctx["p"]; + // extract($this->bctx["sb"], EXTR_PREFIX_ALL, "sb"); // slower + $sb_0 = $this->bctx["sb"][0]; + $sb_1 = $this->bctx["sb"][1]; + $sb_2 = $this->bctx["sb"][2]; + $sb_3 = $this->bctx["sb"][3]; + + $in = unpack("N*", $in); + $l = $in[1]; + $r = $in[2]; + + for ($i = 0; $i < 16; $i+= 2) { + $l^= $p[$i]; + $r^= ($sb_0[$l >> 24 & 0xff] + + $sb_1[$l >> 16 & 0xff] ^ + $sb_2[$l >> 8 & 0xff]) + + $sb_3[$l & 0xff]; + + $r^= $p[$i + 1]; + $l^= ($sb_0[$r >> 24 & 0xff] + + $sb_1[$r >> 16 & 0xff] ^ + $sb_2[$r >> 8 & 0xff]) + + $sb_3[$r & 0xff]; + } + return pack("N*", $r ^ $p[17], $l ^ $p[16]); + } + + /** + * Decrypts a block + * + * @access private + * @param String $in + * @return String + */ + function _decryptBlock($in) + { + $p = $this->bctx["p"]; + $sb_0 = $this->bctx["sb"][0]; + $sb_1 = $this->bctx["sb"][1]; + $sb_2 = $this->bctx["sb"][2]; + $sb_3 = $this->bctx["sb"][3]; + + $in = unpack("N*", $in); + $l = $in[1]; + $r = $in[2]; + + for ($i = 17; $i > 2; $i-= 2) { + $l^= $p[$i]; + $r^= ($sb_0[$l >> 24 & 0xff] + + $sb_1[$l >> 16 & 0xff] ^ + $sb_2[$l >> 8 & 0xff]) + + $sb_3[$l & 0xff]; + + $r^= $p[$i - 1]; + $l^= ($sb_0[$r >> 24 & 0xff] + + $sb_1[$r >> 16 & 0xff] ^ + $sb_2[$r >> 8 & 0xff]) + + $sb_3[$r & 0xff]; + } + + return pack("N*", $r ^ $p[0], $l ^ $p[1]); + } + + /** + * Setup the performance-optimized function for de/encrypt() + * + * @see Crypt_Base::_setupInlineCrypt() + * @access private + */ + function _setupInlineCrypt() + { + $lambda_functions =& Crypt_Blowfish::_getLambdaFunctions(); + + // We create max. 10 hi-optimized code for memory reason. Means: For each $key one ultra fast inline-crypt function. + // After that, we'll still create very fast optimized code but not the hi-ultimative code, for each $mode one. + $gen_hi_opt_code = (bool)( count($lambda_functions) < 10); + + switch (true) { + case $gen_hi_opt_code: + $code_hash = md5(str_pad("Crypt_Blowfish, {$this->mode}, ", 32, "\0") . $this->key); + break; + default: + $code_hash = "Crypt_Blowfish, {$this->mode}"; + } + + if (!isset($lambda_functions[$code_hash])) { + switch (true) { + case $gen_hi_opt_code: + $p = $this->bctx['p']; + $init_crypt = ' + static $sb_0, $sb_1, $sb_2, $sb_3; + if (!$sb_0) { + $sb_0 = $self->bctx["sb"][0]; + $sb_1 = $self->bctx["sb"][1]; + $sb_2 = $self->bctx["sb"][2]; + $sb_3 = $self->bctx["sb"][3]; + } + '; + break; + default: + $p = array(); + for ($i = 0; $i < 18; ++$i) { + $p[] = '$p_' . $i; + } + $init_crypt = ' + list($sb_0, $sb_1, $sb_2, $sb_3) = $self->bctx["sb"]; + list(' . implode(',', $p) . ') = $self->bctx["p"]; + + '; + } + + // Generating encrypt code: + $encrypt_block = ' + $in = unpack("N*", $in); + $l = $in[1]; + $r = $in[2]; + '; + for ($i = 0; $i < 16; $i+= 2) { + $encrypt_block.= ' + $l^= ' . $p[$i] . '; + $r^= ($sb_0[$l >> 24 & 0xff] + + $sb_1[$l >> 16 & 0xff] ^ + $sb_2[$l >> 8 & 0xff]) + + $sb_3[$l & 0xff]; + + $r^= ' . $p[$i + 1] . '; + $l^= ($sb_0[$r >> 24 & 0xff] + + $sb_1[$r >> 16 & 0xff] ^ + $sb_2[$r >> 8 & 0xff]) + + $sb_3[$r & 0xff]; + '; + } + $encrypt_block.= ' + $in = pack("N*", + $r ^ ' . $p[17] . ', + $l ^ ' . $p[16] . ' + ); + '; + + // Generating decrypt code: + $decrypt_block = ' + $in = unpack("N*", $in); + $l = $in[1]; + $r = $in[2]; + '; + + for ($i = 17; $i > 2; $i-= 2) { + $decrypt_block.= ' + $l^= ' . $p[$i] . '; + $r^= ($sb_0[$l >> 24 & 0xff] + + $sb_1[$l >> 16 & 0xff] ^ + $sb_2[$l >> 8 & 0xff]) + + $sb_3[$l & 0xff]; + + $r^= ' . $p[$i - 1] . '; + $l^= ($sb_0[$r >> 24 & 0xff] + + $sb_1[$r >> 16 & 0xff] ^ + $sb_2[$r >> 8 & 0xff]) + + $sb_3[$r & 0xff]; + '; + } + + $decrypt_block.= ' + $in = pack("N*", + $r ^ ' . $p[0] . ', + $l ^ ' . $p[1] . ' + ); + '; + + $lambda_functions[$code_hash] = $this->_createInlineCryptFunction( + array( + 'init_crypt' => $init_crypt, + 'init_encrypt' => '', + 'init_decrypt' => '', + 'encrypt_block' => $encrypt_block, + 'decrypt_block' => $decrypt_block + ) + ); + } + $this->inline_crypt = $lambda_functions[$code_hash]; + } +} diff --git a/lam/lib/3rdParty/phpseclib/Crypt/DES.php b/lam/lib/3rdParty/phpseclib/Crypt/DES.php new file mode 100644 index 00000000..fcbf0199 --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/Crypt/DES.php @@ -0,0 +1,1535 @@ + + * setKey('abcdefgh'); + * + * $size = 10 * 1024; + * $plaintext = ''; + * for ($i = 0; $i < $size; $i++) { + * $plaintext.= 'a'; + * } + * + * echo $des->decrypt($des->encrypt($plaintext)); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Crypt + * @package Crypt_DES + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Crypt_Base + * + * Base cipher class + */ +if (!class_exists('Crypt_Base')) { + include_once 'Base.php'; +} + +/**#@+ + * @access private + * @see Crypt_DES::_setupKey() + * @see Crypt_DES::_processBlock() + */ +/** + * Contains $keys[CRYPT_DES_ENCRYPT] + */ +define('CRYPT_DES_ENCRYPT', 0); +/** + * Contains $keys[CRYPT_DES_DECRYPT] + */ +define('CRYPT_DES_DECRYPT', 1); +/**#@-*/ + +/**#@+ + * @access public + * @see Crypt_DES::encrypt() + * @see Crypt_DES::decrypt() + */ +/** + * Encrypt / decrypt using the Counter mode. + * + * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 + */ +define('CRYPT_DES_MODE_CTR', CRYPT_MODE_CTR); +/** + * Encrypt / decrypt using the Electronic Code Book mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 + */ +define('CRYPT_DES_MODE_ECB', CRYPT_MODE_ECB); +/** + * Encrypt / decrypt using the Code Book Chaining mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 + */ +define('CRYPT_DES_MODE_CBC', CRYPT_MODE_CBC); +/** + * Encrypt / decrypt using the Cipher Feedback mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29 + */ +define('CRYPT_DES_MODE_CFB', CRYPT_MODE_CFB); +/** + * Encrypt / decrypt using the Cipher Feedback mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Output_feedback_.28OFB.29 + */ +define('CRYPT_DES_MODE_OFB', CRYPT_MODE_OFB); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_DES::Crypt_DES() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_DES_MODE_INTERNAL', CRYPT_MODE_INTERNAL); +/** + * Toggles the mcrypt implementation + */ +define('CRYPT_DES_MODE_MCRYPT', CRYPT_MODE_MCRYPT); +/**#@-*/ + +/** + * Pure-PHP implementation of DES. + * + * @package Crypt_DES + * @author Jim Wigginton + * @version 0.1.0 + * @access public + */ +class Crypt_DES extends Crypt_Base +{ + /** + * Block Length of the cipher + * + * @see Crypt_Base::block_size + * @var Integer + * @access private + */ + var $block_size = 8; + + /** + * The Key + * + * @see Crypt_Base::key + * @see setKey() + * @var String + * @access private + */ + var $key = "\0\0\0\0\0\0\0\0"; + + /** + * The default password key_size used by setPassword() + * + * @see Crypt_Base::password_key_size + * @see Crypt_Base::setPassword() + * @var Integer + * @access private + */ + var $password_key_size = 8; + + /** + * The namespace used by the cipher for its constants. + * + * @see Crypt_Base::const_namespace + * @var String + * @access private + */ + var $const_namespace = 'DES'; + + /** + * The mcrypt specific name of the cipher + * + * @see Crypt_Base::cipher_name_mcrypt + * @var String + * @access private + */ + var $cipher_name_mcrypt = 'des'; + + /** + * Optimizing value while CFB-encrypting + * + * @see Crypt_Base::cfb_init_len + * @var Integer + * @access private + */ + var $cfb_init_len = 500; + + /** + * Switch for DES/3DES encryption + * + * Used only if $engine == CRYPT_DES_MODE_INTERNAL + * + * @see Crypt_DES::_setupKey() + * @see Crypt_DES::_processBlock() + * @var Integer + * @access private + */ + var $des_rounds = 1; + + /** + * max possible size of $key + * + * @see Crypt_DES::setKey() + * @var String + * @access private + */ + var $key_size_max = 8; + + /** + * The Key Schedule + * + * @see Crypt_DES::_setupKey() + * @var Array + * @access private + */ + var $keys; + + /** + * Shuffle table. + * + * For each byte value index, the entry holds an 8-byte string + * with each byte containing all bits in the same state as the + * corresponding bit in the index value. + * + * @see Crypt_DES::_processBlock() + * @see Crypt_DES::_setupKey() + * @var Array + * @access private + */ + var $shuffle = array( + "\x00\x00\x00\x00\x00\x00\x00\x00", "\x00\x00\x00\x00\x00\x00\x00\xFF", + "\x00\x00\x00\x00\x00\x00\xFF\x00", "\x00\x00\x00\x00\x00\x00\xFF\xFF", + "\x00\x00\x00\x00\x00\xFF\x00\x00", "\x00\x00\x00\x00\x00\xFF\x00\xFF", + "\x00\x00\x00\x00\x00\xFF\xFF\x00", "\x00\x00\x00\x00\x00\xFF\xFF\xFF", + "\x00\x00\x00\x00\xFF\x00\x00\x00", "\x00\x00\x00\x00\xFF\x00\x00\xFF", + "\x00\x00\x00\x00\xFF\x00\xFF\x00", "\x00\x00\x00\x00\xFF\x00\xFF\xFF", + "\x00\x00\x00\x00\xFF\xFF\x00\x00", "\x00\x00\x00\x00\xFF\xFF\x00\xFF", + "\x00\x00\x00\x00\xFF\xFF\xFF\x00", "\x00\x00\x00\x00\xFF\xFF\xFF\xFF", + "\x00\x00\x00\xFF\x00\x00\x00\x00", "\x00\x00\x00\xFF\x00\x00\x00\xFF", + "\x00\x00\x00\xFF\x00\x00\xFF\x00", "\x00\x00\x00\xFF\x00\x00\xFF\xFF", + "\x00\x00\x00\xFF\x00\xFF\x00\x00", "\x00\x00\x00\xFF\x00\xFF\x00\xFF", + "\x00\x00\x00\xFF\x00\xFF\xFF\x00", "\x00\x00\x00\xFF\x00\xFF\xFF\xFF", + "\x00\x00\x00\xFF\xFF\x00\x00\x00", "\x00\x00\x00\xFF\xFF\x00\x00\xFF", + "\x00\x00\x00\xFF\xFF\x00\xFF\x00", "\x00\x00\x00\xFF\xFF\x00\xFF\xFF", + "\x00\x00\x00\xFF\xFF\xFF\x00\x00", "\x00\x00\x00\xFF\xFF\xFF\x00\xFF", + "\x00\x00\x00\xFF\xFF\xFF\xFF\x00", "\x00\x00\x00\xFF\xFF\xFF\xFF\xFF", + "\x00\x00\xFF\x00\x00\x00\x00\x00", "\x00\x00\xFF\x00\x00\x00\x00\xFF", + "\x00\x00\xFF\x00\x00\x00\xFF\x00", "\x00\x00\xFF\x00\x00\x00\xFF\xFF", + "\x00\x00\xFF\x00\x00\xFF\x00\x00", "\x00\x00\xFF\x00\x00\xFF\x00\xFF", + "\x00\x00\xFF\x00\x00\xFF\xFF\x00", "\x00\x00\xFF\x00\x00\xFF\xFF\xFF", + "\x00\x00\xFF\x00\xFF\x00\x00\x00", "\x00\x00\xFF\x00\xFF\x00\x00\xFF", + "\x00\x00\xFF\x00\xFF\x00\xFF\x00", "\x00\x00\xFF\x00\xFF\x00\xFF\xFF", + "\x00\x00\xFF\x00\xFF\xFF\x00\x00", "\x00\x00\xFF\x00\xFF\xFF\x00\xFF", + "\x00\x00\xFF\x00\xFF\xFF\xFF\x00", "\x00\x00\xFF\x00\xFF\xFF\xFF\xFF", + "\x00\x00\xFF\xFF\x00\x00\x00\x00", "\x00\x00\xFF\xFF\x00\x00\x00\xFF", + "\x00\x00\xFF\xFF\x00\x00\xFF\x00", "\x00\x00\xFF\xFF\x00\x00\xFF\xFF", + "\x00\x00\xFF\xFF\x00\xFF\x00\x00", "\x00\x00\xFF\xFF\x00\xFF\x00\xFF", + "\x00\x00\xFF\xFF\x00\xFF\xFF\x00", "\x00\x00\xFF\xFF\x00\xFF\xFF\xFF", + "\x00\x00\xFF\xFF\xFF\x00\x00\x00", "\x00\x00\xFF\xFF\xFF\x00\x00\xFF", + "\x00\x00\xFF\xFF\xFF\x00\xFF\x00", "\x00\x00\xFF\xFF\xFF\x00\xFF\xFF", + "\x00\x00\xFF\xFF\xFF\xFF\x00\x00", "\x00\x00\xFF\xFF\xFF\xFF\x00\xFF", + "\x00\x00\xFF\xFF\xFF\xFF\xFF\x00", "\x00\x00\xFF\xFF\xFF\xFF\xFF\xFF", + "\x00\xFF\x00\x00\x00\x00\x00\x00", "\x00\xFF\x00\x00\x00\x00\x00\xFF", + "\x00\xFF\x00\x00\x00\x00\xFF\x00", "\x00\xFF\x00\x00\x00\x00\xFF\xFF", + "\x00\xFF\x00\x00\x00\xFF\x00\x00", "\x00\xFF\x00\x00\x00\xFF\x00\xFF", + "\x00\xFF\x00\x00\x00\xFF\xFF\x00", "\x00\xFF\x00\x00\x00\xFF\xFF\xFF", + "\x00\xFF\x00\x00\xFF\x00\x00\x00", "\x00\xFF\x00\x00\xFF\x00\x00\xFF", + "\x00\xFF\x00\x00\xFF\x00\xFF\x00", "\x00\xFF\x00\x00\xFF\x00\xFF\xFF", + "\x00\xFF\x00\x00\xFF\xFF\x00\x00", "\x00\xFF\x00\x00\xFF\xFF\x00\xFF", + "\x00\xFF\x00\x00\xFF\xFF\xFF\x00", "\x00\xFF\x00\x00\xFF\xFF\xFF\xFF", + "\x00\xFF\x00\xFF\x00\x00\x00\x00", "\x00\xFF\x00\xFF\x00\x00\x00\xFF", + "\x00\xFF\x00\xFF\x00\x00\xFF\x00", "\x00\xFF\x00\xFF\x00\x00\xFF\xFF", + "\x00\xFF\x00\xFF\x00\xFF\x00\x00", "\x00\xFF\x00\xFF\x00\xFF\x00\xFF", + "\x00\xFF\x00\xFF\x00\xFF\xFF\x00", "\x00\xFF\x00\xFF\x00\xFF\xFF\xFF", + "\x00\xFF\x00\xFF\xFF\x00\x00\x00", "\x00\xFF\x00\xFF\xFF\x00\x00\xFF", + "\x00\xFF\x00\xFF\xFF\x00\xFF\x00", "\x00\xFF\x00\xFF\xFF\x00\xFF\xFF", + "\x00\xFF\x00\xFF\xFF\xFF\x00\x00", "\x00\xFF\x00\xFF\xFF\xFF\x00\xFF", + "\x00\xFF\x00\xFF\xFF\xFF\xFF\x00", "\x00\xFF\x00\xFF\xFF\xFF\xFF\xFF", + "\x00\xFF\xFF\x00\x00\x00\x00\x00", "\x00\xFF\xFF\x00\x00\x00\x00\xFF", + "\x00\xFF\xFF\x00\x00\x00\xFF\x00", "\x00\xFF\xFF\x00\x00\x00\xFF\xFF", + "\x00\xFF\xFF\x00\x00\xFF\x00\x00", "\x00\xFF\xFF\x00\x00\xFF\x00\xFF", + "\x00\xFF\xFF\x00\x00\xFF\xFF\x00", "\x00\xFF\xFF\x00\x00\xFF\xFF\xFF", + "\x00\xFF\xFF\x00\xFF\x00\x00\x00", "\x00\xFF\xFF\x00\xFF\x00\x00\xFF", + "\x00\xFF\xFF\x00\xFF\x00\xFF\x00", "\x00\xFF\xFF\x00\xFF\x00\xFF\xFF", + "\x00\xFF\xFF\x00\xFF\xFF\x00\x00", "\x00\xFF\xFF\x00\xFF\xFF\x00\xFF", + "\x00\xFF\xFF\x00\xFF\xFF\xFF\x00", "\x00\xFF\xFF\x00\xFF\xFF\xFF\xFF", + "\x00\xFF\xFF\xFF\x00\x00\x00\x00", "\x00\xFF\xFF\xFF\x00\x00\x00\xFF", + "\x00\xFF\xFF\xFF\x00\x00\xFF\x00", "\x00\xFF\xFF\xFF\x00\x00\xFF\xFF", + "\x00\xFF\xFF\xFF\x00\xFF\x00\x00", "\x00\xFF\xFF\xFF\x00\xFF\x00\xFF", + "\x00\xFF\xFF\xFF\x00\xFF\xFF\x00", "\x00\xFF\xFF\xFF\x00\xFF\xFF\xFF", + "\x00\xFF\xFF\xFF\xFF\x00\x00\x00", "\x00\xFF\xFF\xFF\xFF\x00\x00\xFF", + "\x00\xFF\xFF\xFF\xFF\x00\xFF\x00", "\x00\xFF\xFF\xFF\xFF\x00\xFF\xFF", + "\x00\xFF\xFF\xFF\xFF\xFF\x00\x00", "\x00\xFF\xFF\xFF\xFF\xFF\x00\xFF", + "\x00\xFF\xFF\xFF\xFF\xFF\xFF\x00", "\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF", + "\xFF\x00\x00\x00\x00\x00\x00\x00", "\xFF\x00\x00\x00\x00\x00\x00\xFF", + "\xFF\x00\x00\x00\x00\x00\xFF\x00", "\xFF\x00\x00\x00\x00\x00\xFF\xFF", + "\xFF\x00\x00\x00\x00\xFF\x00\x00", "\xFF\x00\x00\x00\x00\xFF\x00\xFF", + "\xFF\x00\x00\x00\x00\xFF\xFF\x00", "\xFF\x00\x00\x00\x00\xFF\xFF\xFF", + "\xFF\x00\x00\x00\xFF\x00\x00\x00", "\xFF\x00\x00\x00\xFF\x00\x00\xFF", + "\xFF\x00\x00\x00\xFF\x00\xFF\x00", "\xFF\x00\x00\x00\xFF\x00\xFF\xFF", + "\xFF\x00\x00\x00\xFF\xFF\x00\x00", "\xFF\x00\x00\x00\xFF\xFF\x00\xFF", + "\xFF\x00\x00\x00\xFF\xFF\xFF\x00", "\xFF\x00\x00\x00\xFF\xFF\xFF\xFF", + "\xFF\x00\x00\xFF\x00\x00\x00\x00", "\xFF\x00\x00\xFF\x00\x00\x00\xFF", + "\xFF\x00\x00\xFF\x00\x00\xFF\x00", "\xFF\x00\x00\xFF\x00\x00\xFF\xFF", + "\xFF\x00\x00\xFF\x00\xFF\x00\x00", "\xFF\x00\x00\xFF\x00\xFF\x00\xFF", + "\xFF\x00\x00\xFF\x00\xFF\xFF\x00", "\xFF\x00\x00\xFF\x00\xFF\xFF\xFF", + "\xFF\x00\x00\xFF\xFF\x00\x00\x00", "\xFF\x00\x00\xFF\xFF\x00\x00\xFF", + "\xFF\x00\x00\xFF\xFF\x00\xFF\x00", "\xFF\x00\x00\xFF\xFF\x00\xFF\xFF", + "\xFF\x00\x00\xFF\xFF\xFF\x00\x00", "\xFF\x00\x00\xFF\xFF\xFF\x00\xFF", + "\xFF\x00\x00\xFF\xFF\xFF\xFF\x00", "\xFF\x00\x00\xFF\xFF\xFF\xFF\xFF", + "\xFF\x00\xFF\x00\x00\x00\x00\x00", "\xFF\x00\xFF\x00\x00\x00\x00\xFF", + "\xFF\x00\xFF\x00\x00\x00\xFF\x00", "\xFF\x00\xFF\x00\x00\x00\xFF\xFF", + "\xFF\x00\xFF\x00\x00\xFF\x00\x00", "\xFF\x00\xFF\x00\x00\xFF\x00\xFF", + "\xFF\x00\xFF\x00\x00\xFF\xFF\x00", "\xFF\x00\xFF\x00\x00\xFF\xFF\xFF", + "\xFF\x00\xFF\x00\xFF\x00\x00\x00", "\xFF\x00\xFF\x00\xFF\x00\x00\xFF", + "\xFF\x00\xFF\x00\xFF\x00\xFF\x00", "\xFF\x00\xFF\x00\xFF\x00\xFF\xFF", + "\xFF\x00\xFF\x00\xFF\xFF\x00\x00", "\xFF\x00\xFF\x00\xFF\xFF\x00\xFF", + "\xFF\x00\xFF\x00\xFF\xFF\xFF\x00", "\xFF\x00\xFF\x00\xFF\xFF\xFF\xFF", + "\xFF\x00\xFF\xFF\x00\x00\x00\x00", "\xFF\x00\xFF\xFF\x00\x00\x00\xFF", + "\xFF\x00\xFF\xFF\x00\x00\xFF\x00", "\xFF\x00\xFF\xFF\x00\x00\xFF\xFF", + "\xFF\x00\xFF\xFF\x00\xFF\x00\x00", "\xFF\x00\xFF\xFF\x00\xFF\x00\xFF", + "\xFF\x00\xFF\xFF\x00\xFF\xFF\x00", "\xFF\x00\xFF\xFF\x00\xFF\xFF\xFF", + "\xFF\x00\xFF\xFF\xFF\x00\x00\x00", "\xFF\x00\xFF\xFF\xFF\x00\x00\xFF", + "\xFF\x00\xFF\xFF\xFF\x00\xFF\x00", "\xFF\x00\xFF\xFF\xFF\x00\xFF\xFF", + "\xFF\x00\xFF\xFF\xFF\xFF\x00\x00", "\xFF\x00\xFF\xFF\xFF\xFF\x00\xFF", + "\xFF\x00\xFF\xFF\xFF\xFF\xFF\x00", "\xFF\x00\xFF\xFF\xFF\xFF\xFF\xFF", + "\xFF\xFF\x00\x00\x00\x00\x00\x00", "\xFF\xFF\x00\x00\x00\x00\x00\xFF", + "\xFF\xFF\x00\x00\x00\x00\xFF\x00", "\xFF\xFF\x00\x00\x00\x00\xFF\xFF", + "\xFF\xFF\x00\x00\x00\xFF\x00\x00", "\xFF\xFF\x00\x00\x00\xFF\x00\xFF", + "\xFF\xFF\x00\x00\x00\xFF\xFF\x00", "\xFF\xFF\x00\x00\x00\xFF\xFF\xFF", + "\xFF\xFF\x00\x00\xFF\x00\x00\x00", "\xFF\xFF\x00\x00\xFF\x00\x00\xFF", + "\xFF\xFF\x00\x00\xFF\x00\xFF\x00", "\xFF\xFF\x00\x00\xFF\x00\xFF\xFF", + "\xFF\xFF\x00\x00\xFF\xFF\x00\x00", "\xFF\xFF\x00\x00\xFF\xFF\x00\xFF", + "\xFF\xFF\x00\x00\xFF\xFF\xFF\x00", "\xFF\xFF\x00\x00\xFF\xFF\xFF\xFF", + "\xFF\xFF\x00\xFF\x00\x00\x00\x00", "\xFF\xFF\x00\xFF\x00\x00\x00\xFF", + "\xFF\xFF\x00\xFF\x00\x00\xFF\x00", "\xFF\xFF\x00\xFF\x00\x00\xFF\xFF", + "\xFF\xFF\x00\xFF\x00\xFF\x00\x00", "\xFF\xFF\x00\xFF\x00\xFF\x00\xFF", + "\xFF\xFF\x00\xFF\x00\xFF\xFF\x00", "\xFF\xFF\x00\xFF\x00\xFF\xFF\xFF", + "\xFF\xFF\x00\xFF\xFF\x00\x00\x00", "\xFF\xFF\x00\xFF\xFF\x00\x00\xFF", + "\xFF\xFF\x00\xFF\xFF\x00\xFF\x00", "\xFF\xFF\x00\xFF\xFF\x00\xFF\xFF", + "\xFF\xFF\x00\xFF\xFF\xFF\x00\x00", "\xFF\xFF\x00\xFF\xFF\xFF\x00\xFF", + "\xFF\xFF\x00\xFF\xFF\xFF\xFF\x00", "\xFF\xFF\x00\xFF\xFF\xFF\xFF\xFF", + "\xFF\xFF\xFF\x00\x00\x00\x00\x00", "\xFF\xFF\xFF\x00\x00\x00\x00\xFF", + "\xFF\xFF\xFF\x00\x00\x00\xFF\x00", "\xFF\xFF\xFF\x00\x00\x00\xFF\xFF", + "\xFF\xFF\xFF\x00\x00\xFF\x00\x00", "\xFF\xFF\xFF\x00\x00\xFF\x00\xFF", + "\xFF\xFF\xFF\x00\x00\xFF\xFF\x00", "\xFF\xFF\xFF\x00\x00\xFF\xFF\xFF", + "\xFF\xFF\xFF\x00\xFF\x00\x00\x00", "\xFF\xFF\xFF\x00\xFF\x00\x00\xFF", + "\xFF\xFF\xFF\x00\xFF\x00\xFF\x00", "\xFF\xFF\xFF\x00\xFF\x00\xFF\xFF", + "\xFF\xFF\xFF\x00\xFF\xFF\x00\x00", "\xFF\xFF\xFF\x00\xFF\xFF\x00\xFF", + "\xFF\xFF\xFF\x00\xFF\xFF\xFF\x00", "\xFF\xFF\xFF\x00\xFF\xFF\xFF\xFF", + "\xFF\xFF\xFF\xFF\x00\x00\x00\x00", "\xFF\xFF\xFF\xFF\x00\x00\x00\xFF", + "\xFF\xFF\xFF\xFF\x00\x00\xFF\x00", "\xFF\xFF\xFF\xFF\x00\x00\xFF\xFF", + "\xFF\xFF\xFF\xFF\x00\xFF\x00\x00", "\xFF\xFF\xFF\xFF\x00\xFF\x00\xFF", + "\xFF\xFF\xFF\xFF\x00\xFF\xFF\x00", "\xFF\xFF\xFF\xFF\x00\xFF\xFF\xFF", + "\xFF\xFF\xFF\xFF\xFF\x00\x00\x00", "\xFF\xFF\xFF\xFF\xFF\x00\x00\xFF", + "\xFF\xFF\xFF\xFF\xFF\x00\xFF\x00", "\xFF\xFF\xFF\xFF\xFF\x00\xFF\xFF", + "\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00", "\xFF\xFF\xFF\xFF\xFF\xFF\x00\xFF", + "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00", "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" + ); + + /** + * IP mapping helper table. + * + * Indexing this table with each source byte performs the initial bit permutation. + * + * @var Array + * @access private + */ + var $ipmap = array( + 0x00, 0x10, 0x01, 0x11, 0x20, 0x30, 0x21, 0x31, + 0x02, 0x12, 0x03, 0x13, 0x22, 0x32, 0x23, 0x33, + 0x40, 0x50, 0x41, 0x51, 0x60, 0x70, 0x61, 0x71, + 0x42, 0x52, 0x43, 0x53, 0x62, 0x72, 0x63, 0x73, + 0x04, 0x14, 0x05, 0x15, 0x24, 0x34, 0x25, 0x35, + 0x06, 0x16, 0x07, 0x17, 0x26, 0x36, 0x27, 0x37, + 0x44, 0x54, 0x45, 0x55, 0x64, 0x74, 0x65, 0x75, + 0x46, 0x56, 0x47, 0x57, 0x66, 0x76, 0x67, 0x77, + 0x80, 0x90, 0x81, 0x91, 0xA0, 0xB0, 0xA1, 0xB1, + 0x82, 0x92, 0x83, 0x93, 0xA2, 0xB2, 0xA3, 0xB3, + 0xC0, 0xD0, 0xC1, 0xD1, 0xE0, 0xF0, 0xE1, 0xF1, + 0xC2, 0xD2, 0xC3, 0xD3, 0xE2, 0xF2, 0xE3, 0xF3, + 0x84, 0x94, 0x85, 0x95, 0xA4, 0xB4, 0xA5, 0xB5, + 0x86, 0x96, 0x87, 0x97, 0xA6, 0xB6, 0xA7, 0xB7, + 0xC4, 0xD4, 0xC5, 0xD5, 0xE4, 0xF4, 0xE5, 0xF5, + 0xC6, 0xD6, 0xC7, 0xD7, 0xE6, 0xF6, 0xE7, 0xF7, + 0x08, 0x18, 0x09, 0x19, 0x28, 0x38, 0x29, 0x39, + 0x0A, 0x1A, 0x0B, 0x1B, 0x2A, 0x3A, 0x2B, 0x3B, + 0x48, 0x58, 0x49, 0x59, 0x68, 0x78, 0x69, 0x79, + 0x4A, 0x5A, 0x4B, 0x5B, 0x6A, 0x7A, 0x6B, 0x7B, + 0x0C, 0x1C, 0x0D, 0x1D, 0x2C, 0x3C, 0x2D, 0x3D, + 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, + 0x4C, 0x5C, 0x4D, 0x5D, 0x6C, 0x7C, 0x6D, 0x7D, + 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, + 0x88, 0x98, 0x89, 0x99, 0xA8, 0xB8, 0xA9, 0xB9, + 0x8A, 0x9A, 0x8B, 0x9B, 0xAA, 0xBA, 0xAB, 0xBB, + 0xC8, 0xD8, 0xC9, 0xD9, 0xE8, 0xF8, 0xE9, 0xF9, + 0xCA, 0xDA, 0xCB, 0xDB, 0xEA, 0xFA, 0xEB, 0xFB, + 0x8C, 0x9C, 0x8D, 0x9D, 0xAC, 0xBC, 0xAD, 0xBD, + 0x8E, 0x9E, 0x8F, 0x9F, 0xAE, 0xBE, 0xAF, 0xBF, + 0xCC, 0xDC, 0xCD, 0xDD, 0xEC, 0xFC, 0xED, 0xFD, + 0xCE, 0xDE, 0xCF, 0xDF, 0xEE, 0xFE, 0xEF, 0xFF + ); + + /** + * Inverse IP mapping helper table. + * Indexing this table with a byte value reverses the bit order. + * + * @var Array + * @access private + */ + var $invipmap = array( + 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0, + 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0, + 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8, + 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8, + 0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4, + 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4, + 0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC, + 0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC, + 0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2, + 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2, + 0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA, + 0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA, + 0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6, + 0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6, + 0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE, + 0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE, + 0x01, 0x81, 0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1, + 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1, + 0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9, + 0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9, + 0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5, + 0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5, + 0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED, + 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD, + 0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3, + 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3, + 0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB, + 0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB, + 0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7, + 0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7, + 0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF, + 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF + ); + + /** + * Pre-permuted S-box1 + * + * Each box ($sbox1-$sbox8) has been vectorized, then each value pre-permuted using the + * P table: concatenation can then be replaced by exclusive ORs. + * + * @var Array + * @access private + */ + var $sbox1 = array( + 0x00808200, 0x00000000, 0x00008000, 0x00808202, + 0x00808002, 0x00008202, 0x00000002, 0x00008000, + 0x00000200, 0x00808200, 0x00808202, 0x00000200, + 0x00800202, 0x00808002, 0x00800000, 0x00000002, + 0x00000202, 0x00800200, 0x00800200, 0x00008200, + 0x00008200, 0x00808000, 0x00808000, 0x00800202, + 0x00008002, 0x00800002, 0x00800002, 0x00008002, + 0x00000000, 0x00000202, 0x00008202, 0x00800000, + 0x00008000, 0x00808202, 0x00000002, 0x00808000, + 0x00808200, 0x00800000, 0x00800000, 0x00000200, + 0x00808002, 0x00008000, 0x00008200, 0x00800002, + 0x00000200, 0x00000002, 0x00800202, 0x00008202, + 0x00808202, 0x00008002, 0x00808000, 0x00800202, + 0x00800002, 0x00000202, 0x00008202, 0x00808200, + 0x00000202, 0x00800200, 0x00800200, 0x00000000, + 0x00008002, 0x00008200, 0x00000000, 0x00808002 + ); + + /** + * Pre-permuted S-box2 + * + * @var Array + * @access private + */ + var $sbox2 = array( + 0x40084010, 0x40004000, 0x00004000, 0x00084010, + 0x00080000, 0x00000010, 0x40080010, 0x40004010, + 0x40000010, 0x40084010, 0x40084000, 0x40000000, + 0x40004000, 0x00080000, 0x00000010, 0x40080010, + 0x00084000, 0x00080010, 0x40004010, 0x00000000, + 0x40000000, 0x00004000, 0x00084010, 0x40080000, + 0x00080010, 0x40000010, 0x00000000, 0x00084000, + 0x00004010, 0x40084000, 0x40080000, 0x00004010, + 0x00000000, 0x00084010, 0x40080010, 0x00080000, + 0x40004010, 0x40080000, 0x40084000, 0x00004000, + 0x40080000, 0x40004000, 0x00000010, 0x40084010, + 0x00084010, 0x00000010, 0x00004000, 0x40000000, + 0x00004010, 0x40084000, 0x00080000, 0x40000010, + 0x00080010, 0x40004010, 0x40000010, 0x00080010, + 0x00084000, 0x00000000, 0x40004000, 0x00004010, + 0x40000000, 0x40080010, 0x40084010, 0x00084000 + ); + + /** + * Pre-permuted S-box3 + * + * @var Array + * @access private + */ + var $sbox3 = array( + 0x00000104, 0x04010100, 0x00000000, 0x04010004, + 0x04000100, 0x00000000, 0x00010104, 0x04000100, + 0x00010004, 0x04000004, 0x04000004, 0x00010000, + 0x04010104, 0x00010004, 0x04010000, 0x00000104, + 0x04000000, 0x00000004, 0x04010100, 0x00000100, + 0x00010100, 0x04010000, 0x04010004, 0x00010104, + 0x04000104, 0x00010100, 0x00010000, 0x04000104, + 0x00000004, 0x04010104, 0x00000100, 0x04000000, + 0x04010100, 0x04000000, 0x00010004, 0x00000104, + 0x00010000, 0x04010100, 0x04000100, 0x00000000, + 0x00000100, 0x00010004, 0x04010104, 0x04000100, + 0x04000004, 0x00000100, 0x00000000, 0x04010004, + 0x04000104, 0x00010000, 0x04000000, 0x04010104, + 0x00000004, 0x00010104, 0x00010100, 0x04000004, + 0x04010000, 0x04000104, 0x00000104, 0x04010000, + 0x00010104, 0x00000004, 0x04010004, 0x00010100 + ); + + /** + * Pre-permuted S-box4 + * + * @var Array + * @access private + */ + var $sbox4 = array( + 0x80401000, 0x80001040, 0x80001040, 0x00000040, + 0x00401040, 0x80400040, 0x80400000, 0x80001000, + 0x00000000, 0x00401000, 0x00401000, 0x80401040, + 0x80000040, 0x00000000, 0x00400040, 0x80400000, + 0x80000000, 0x00001000, 0x00400000, 0x80401000, + 0x00000040, 0x00400000, 0x80001000, 0x00001040, + 0x80400040, 0x80000000, 0x00001040, 0x00400040, + 0x00001000, 0x00401040, 0x80401040, 0x80000040, + 0x00400040, 0x80400000, 0x00401000, 0x80401040, + 0x80000040, 0x00000000, 0x00000000, 0x00401000, + 0x00001040, 0x00400040, 0x80400040, 0x80000000, + 0x80401000, 0x80001040, 0x80001040, 0x00000040, + 0x80401040, 0x80000040, 0x80000000, 0x00001000, + 0x80400000, 0x80001000, 0x00401040, 0x80400040, + 0x80001000, 0x00001040, 0x00400000, 0x80401000, + 0x00000040, 0x00400000, 0x00001000, 0x00401040 + ); + + /** + * Pre-permuted S-box5 + * + * @var Array + * @access private + */ + var $sbox5 = array( + 0x00000080, 0x01040080, 0x01040000, 0x21000080, + 0x00040000, 0x00000080, 0x20000000, 0x01040000, + 0x20040080, 0x00040000, 0x01000080, 0x20040080, + 0x21000080, 0x21040000, 0x00040080, 0x20000000, + 0x01000000, 0x20040000, 0x20040000, 0x00000000, + 0x20000080, 0x21040080, 0x21040080, 0x01000080, + 0x21040000, 0x20000080, 0x00000000, 0x21000000, + 0x01040080, 0x01000000, 0x21000000, 0x00040080, + 0x00040000, 0x21000080, 0x00000080, 0x01000000, + 0x20000000, 0x01040000, 0x21000080, 0x20040080, + 0x01000080, 0x20000000, 0x21040000, 0x01040080, + 0x20040080, 0x00000080, 0x01000000, 0x21040000, + 0x21040080, 0x00040080, 0x21000000, 0x21040080, + 0x01040000, 0x00000000, 0x20040000, 0x21000000, + 0x00040080, 0x01000080, 0x20000080, 0x00040000, + 0x00000000, 0x20040000, 0x01040080, 0x20000080 + ); + + /** + * Pre-permuted S-box6 + * + * @var Array + * @access private + */ + var $sbox6 = array( + 0x10000008, 0x10200000, 0x00002000, 0x10202008, + 0x10200000, 0x00000008, 0x10202008, 0x00200000, + 0x10002000, 0x00202008, 0x00200000, 0x10000008, + 0x00200008, 0x10002000, 0x10000000, 0x00002008, + 0x00000000, 0x00200008, 0x10002008, 0x00002000, + 0x00202000, 0x10002008, 0x00000008, 0x10200008, + 0x10200008, 0x00000000, 0x00202008, 0x10202000, + 0x00002008, 0x00202000, 0x10202000, 0x10000000, + 0x10002000, 0x00000008, 0x10200008, 0x00202000, + 0x10202008, 0x00200000, 0x00002008, 0x10000008, + 0x00200000, 0x10002000, 0x10000000, 0x00002008, + 0x10000008, 0x10202008, 0x00202000, 0x10200000, + 0x00202008, 0x10202000, 0x00000000, 0x10200008, + 0x00000008, 0x00002000, 0x10200000, 0x00202008, + 0x00002000, 0x00200008, 0x10002008, 0x00000000, + 0x10202000, 0x10000000, 0x00200008, 0x10002008 + ); + + /** + * Pre-permuted S-box7 + * + * @var Array + * @access private + */ + var $sbox7 = array( + 0x00100000, 0x02100001, 0x02000401, 0x00000000, + 0x00000400, 0x02000401, 0x00100401, 0x02100400, + 0x02100401, 0x00100000, 0x00000000, 0x02000001, + 0x00000001, 0x02000000, 0x02100001, 0x00000401, + 0x02000400, 0x00100401, 0x00100001, 0x02000400, + 0x02000001, 0x02100000, 0x02100400, 0x00100001, + 0x02100000, 0x00000400, 0x00000401, 0x02100401, + 0x00100400, 0x00000001, 0x02000000, 0x00100400, + 0x02000000, 0x00100400, 0x00100000, 0x02000401, + 0x02000401, 0x02100001, 0x02100001, 0x00000001, + 0x00100001, 0x02000000, 0x02000400, 0x00100000, + 0x02100400, 0x00000401, 0x00100401, 0x02100400, + 0x00000401, 0x02000001, 0x02100401, 0x02100000, + 0x00100400, 0x00000000, 0x00000001, 0x02100401, + 0x00000000, 0x00100401, 0x02100000, 0x00000400, + 0x02000001, 0x02000400, 0x00000400, 0x00100001 + ); + + /** + * Pre-permuted S-box8 + * + * @var Array + * @access private + */ + var $sbox8 = array( + 0x08000820, 0x00000800, 0x00020000, 0x08020820, + 0x08000000, 0x08000820, 0x00000020, 0x08000000, + 0x00020020, 0x08020000, 0x08020820, 0x00020800, + 0x08020800, 0x00020820, 0x00000800, 0x00000020, + 0x08020000, 0x08000020, 0x08000800, 0x00000820, + 0x00020800, 0x00020020, 0x08020020, 0x08020800, + 0x00000820, 0x00000000, 0x00000000, 0x08020020, + 0x08000020, 0x08000800, 0x00020820, 0x00020000, + 0x00020820, 0x00020000, 0x08020800, 0x00000800, + 0x00000020, 0x08020020, 0x00000800, 0x00020820, + 0x08000800, 0x00000020, 0x08000020, 0x08020000, + 0x08020020, 0x08000000, 0x00020000, 0x08000820, + 0x00000000, 0x08020820, 0x00020020, 0x08000020, + 0x08020000, 0x08000800, 0x08000820, 0x00000000, + 0x08020820, 0x00020800, 0x00020800, 0x00000820, + 0x00000820, 0x00020020, 0x08000000, 0x08020800 + ); + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. + * + * $mode could be: + * + * - CRYPT_DES_MODE_ECB + * + * - CRYPT_DES_MODE_CBC + * + * - CRYPT_DES_MODE_CTR + * + * - CRYPT_DES_MODE_CFB + * + * - CRYPT_DES_MODE_OFB + * + * If not explictly set, CRYPT_DES_MODE_CBC will be used. + * + * @see Crypt_Base::Crypt_Base() + * @param optional Integer $mode + * @access public + */ + function Crypt_DES($mode = CRYPT_DES_MODE_CBC) + { + parent::Crypt_Base($mode); + } + + /** + * Sets the key. + * + * Keys can be of any length. DES, itself, uses 64-bit keys (eg. strlen($key) == 8), however, we + * only use the first eight, if $key has more then eight characters in it, and pad $key with the + * null byte if it is less then eight characters long. + * + * DES also requires that every eighth bit be a parity bit, however, we'll ignore that. + * + * If the key is not explicitly set, it'll be assumed to be all zero's. + * + * @see Crypt_Base::setKey() + * @access public + * @param String $key + */ + function setKey($key) + { + // We check/cut here only up to max length of the key. + // Key padding to the proper length will be done in _setupKey() + if (strlen($key) > $this->key_size_max) { + $key = substr($key, 0, $this->key_size_max); + } + + // Sets the key + parent::setKey($key); + } + + /** + * Encrypts a block + * + * @see Crypt_Base::_encryptBlock() + * @see Crypt_Base::encrypt() + * @see Crypt_DES::encrypt() + * @access private + * @param String $in + * @return String + */ + function _encryptBlock($in) + { + return $this->_processBlock($in, CRYPT_DES_ENCRYPT); + } + + /** + * Decrypts a block + * + * @see Crypt_Base::_decryptBlock() + * @see Crypt_Base::decrypt() + * @see Crypt_DES::decrypt() + * @access private + * @param String $in + * @return String + */ + function _decryptBlock($in) + { + return $this->_processBlock($in, CRYPT_DES_DECRYPT); + } + + /** + * Encrypts or decrypts a 64-bit block + * + * $mode should be either CRYPT_DES_ENCRYPT or CRYPT_DES_DECRYPT. See + * {@link http://en.wikipedia.org/wiki/Image:Feistel.png Feistel.png} to get a general + * idea of what this function does. + * + * @see Crypt_DES::_encryptBlock() + * @see Crypt_DES::_decryptBlock() + * @access private + * @param String $block + * @param Integer $mode + * @return String + */ + function _processBlock($block, $mode) + { + static $sbox1, $sbox2, $sbox3, $sbox4, $sbox5, $sbox6, $sbox7, $sbox8, $shuffleip, $shuffleinvip; + if (!$sbox1) { + $sbox1 = array_map("intval", $this->sbox1); + $sbox2 = array_map("intval", $this->sbox2); + $sbox3 = array_map("intval", $this->sbox3); + $sbox4 = array_map("intval", $this->sbox4); + $sbox5 = array_map("intval", $this->sbox5); + $sbox6 = array_map("intval", $this->sbox6); + $sbox7 = array_map("intval", $this->sbox7); + $sbox8 = array_map("intval", $this->sbox8); + /* Merge $shuffle with $[inv]ipmap */ + for ($i = 0; $i < 256; ++$i) { + $shuffleip[] = $this->shuffle[$this->ipmap[$i]]; + $shuffleinvip[] = $this->shuffle[$this->invipmap[$i]]; + } + } + + $keys = $this->keys[$mode]; + $ki = -1; + + // Do the initial IP permutation. + $t = unpack('Nl/Nr', $block); + list($l, $r) = array($t['l'], $t['r']); + $block = ($shuffleip[ $r & 0xFF] & "\x80\x80\x80\x80\x80\x80\x80\x80") | + ($shuffleip[($r >> 8) & 0xFF] & "\x40\x40\x40\x40\x40\x40\x40\x40") | + ($shuffleip[($r >> 16) & 0xFF] & "\x20\x20\x20\x20\x20\x20\x20\x20") | + ($shuffleip[($r >> 24) & 0xFF] & "\x10\x10\x10\x10\x10\x10\x10\x10") | + ($shuffleip[ $l & 0xFF] & "\x08\x08\x08\x08\x08\x08\x08\x08") | + ($shuffleip[($l >> 8) & 0xFF] & "\x04\x04\x04\x04\x04\x04\x04\x04") | + ($shuffleip[($l >> 16) & 0xFF] & "\x02\x02\x02\x02\x02\x02\x02\x02") | + ($shuffleip[($l >> 24) & 0xFF] & "\x01\x01\x01\x01\x01\x01\x01\x01"); + + // Extract L0 and R0. + $t = unpack('Nl/Nr', $block); + list($l, $r) = array($t['l'], $t['r']); + + for ($des_round = 0; $des_round < $this->des_rounds; ++$des_round) { + // Perform the 16 steps. + for ($i = 0; $i < 16; $i++) { + // start of "the Feistel (F) function" - see the following URL: + // http://en.wikipedia.org/wiki/Image:Data_Encryption_Standard_InfoBox_Diagram.png + // Merge key schedule. + $b1 = (($r >> 3) & 0x1FFFFFFF) ^ ($r << 29) ^ $keys[++$ki]; + $b2 = (($r >> 31) & 0x00000001) ^ ($r << 1) ^ $keys[++$ki]; + + // S-box indexing. + $t = $sbox1[($b1 >> 24) & 0x3F] ^ $sbox2[($b2 >> 24) & 0x3F] ^ + $sbox3[($b1 >> 16) & 0x3F] ^ $sbox4[($b2 >> 16) & 0x3F] ^ + $sbox5[($b1 >> 8) & 0x3F] ^ $sbox6[($b2 >> 8) & 0x3F] ^ + $sbox7[ $b1 & 0x3F] ^ $sbox8[ $b2 & 0x3F] ^ $l; + // end of "the Feistel (F) function" + + $l = $r; + $r = $t; + } + + // Last step should not permute L & R. + $t = $l; + $l = $r; + $r = $t; + } + + // Perform the inverse IP permutation. + return ($shuffleinvip[($r >> 24) & 0xFF] & "\x80\x80\x80\x80\x80\x80\x80\x80") | + ($shuffleinvip[($l >> 24) & 0xFF] & "\x40\x40\x40\x40\x40\x40\x40\x40") | + ($shuffleinvip[($r >> 16) & 0xFF] & "\x20\x20\x20\x20\x20\x20\x20\x20") | + ($shuffleinvip[($l >> 16) & 0xFF] & "\x10\x10\x10\x10\x10\x10\x10\x10") | + ($shuffleinvip[($r >> 8) & 0xFF] & "\x08\x08\x08\x08\x08\x08\x08\x08") | + ($shuffleinvip[($l >> 8) & 0xFF] & "\x04\x04\x04\x04\x04\x04\x04\x04") | + ($shuffleinvip[ $r & 0xFF] & "\x02\x02\x02\x02\x02\x02\x02\x02") | + ($shuffleinvip[ $l & 0xFF] & "\x01\x01\x01\x01\x01\x01\x01\x01"); + } + + /** + * Creates the key schedule + * + * @see Crypt_Base::_setupKey() + * @access private + */ + function _setupKey() + { + if (isset($this->kl['key']) && $this->key === $this->kl['key'] && $this->des_rounds === $this->kl['des_rounds']) { + // already expanded + return; + } + $this->kl = array('key' => $this->key, 'des_rounds' => $this->des_rounds); + + static $shifts = array( // number of key bits shifted per round + 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1 + ); + + static $pc1map = array( + 0x00, 0x00, 0x08, 0x08, 0x04, 0x04, 0x0C, 0x0C, + 0x02, 0x02, 0x0A, 0x0A, 0x06, 0x06, 0x0E, 0x0E, + 0x10, 0x10, 0x18, 0x18, 0x14, 0x14, 0x1C, 0x1C, + 0x12, 0x12, 0x1A, 0x1A, 0x16, 0x16, 0x1E, 0x1E, + 0x20, 0x20, 0x28, 0x28, 0x24, 0x24, 0x2C, 0x2C, + 0x22, 0x22, 0x2A, 0x2A, 0x26, 0x26, 0x2E, 0x2E, + 0x30, 0x30, 0x38, 0x38, 0x34, 0x34, 0x3C, 0x3C, + 0x32, 0x32, 0x3A, 0x3A, 0x36, 0x36, 0x3E, 0x3E, + 0x40, 0x40, 0x48, 0x48, 0x44, 0x44, 0x4C, 0x4C, + 0x42, 0x42, 0x4A, 0x4A, 0x46, 0x46, 0x4E, 0x4E, + 0x50, 0x50, 0x58, 0x58, 0x54, 0x54, 0x5C, 0x5C, + 0x52, 0x52, 0x5A, 0x5A, 0x56, 0x56, 0x5E, 0x5E, + 0x60, 0x60, 0x68, 0x68, 0x64, 0x64, 0x6C, 0x6C, + 0x62, 0x62, 0x6A, 0x6A, 0x66, 0x66, 0x6E, 0x6E, + 0x70, 0x70, 0x78, 0x78, 0x74, 0x74, 0x7C, 0x7C, + 0x72, 0x72, 0x7A, 0x7A, 0x76, 0x76, 0x7E, 0x7E, + 0x80, 0x80, 0x88, 0x88, 0x84, 0x84, 0x8C, 0x8C, + 0x82, 0x82, 0x8A, 0x8A, 0x86, 0x86, 0x8E, 0x8E, + 0x90, 0x90, 0x98, 0x98, 0x94, 0x94, 0x9C, 0x9C, + 0x92, 0x92, 0x9A, 0x9A, 0x96, 0x96, 0x9E, 0x9E, + 0xA0, 0xA0, 0xA8, 0xA8, 0xA4, 0xA4, 0xAC, 0xAC, + 0xA2, 0xA2, 0xAA, 0xAA, 0xA6, 0xA6, 0xAE, 0xAE, + 0xB0, 0xB0, 0xB8, 0xB8, 0xB4, 0xB4, 0xBC, 0xBC, + 0xB2, 0xB2, 0xBA, 0xBA, 0xB6, 0xB6, 0xBE, 0xBE, + 0xC0, 0xC0, 0xC8, 0xC8, 0xC4, 0xC4, 0xCC, 0xCC, + 0xC2, 0xC2, 0xCA, 0xCA, 0xC6, 0xC6, 0xCE, 0xCE, + 0xD0, 0xD0, 0xD8, 0xD8, 0xD4, 0xD4, 0xDC, 0xDC, + 0xD2, 0xD2, 0xDA, 0xDA, 0xD6, 0xD6, 0xDE, 0xDE, + 0xE0, 0xE0, 0xE8, 0xE8, 0xE4, 0xE4, 0xEC, 0xEC, + 0xE2, 0xE2, 0xEA, 0xEA, 0xE6, 0xE6, 0xEE, 0xEE, + 0xF0, 0xF0, 0xF8, 0xF8, 0xF4, 0xF4, 0xFC, 0xFC, + 0xF2, 0xF2, 0xFA, 0xFA, 0xF6, 0xF6, 0xFE, 0xFE + ); + + // Mapping tables for the PC-2 transformation. + static $pc2mapc1 = array( + 0x00000000, 0x00000400, 0x00200000, 0x00200400, + 0x00000001, 0x00000401, 0x00200001, 0x00200401, + 0x02000000, 0x02000400, 0x02200000, 0x02200400, + 0x02000001, 0x02000401, 0x02200001, 0x02200401 + ); + static $pc2mapc2 = array( + 0x00000000, 0x00000800, 0x08000000, 0x08000800, + 0x00010000, 0x00010800, 0x08010000, 0x08010800, + 0x00000000, 0x00000800, 0x08000000, 0x08000800, + 0x00010000, 0x00010800, 0x08010000, 0x08010800, + 0x00000100, 0x00000900, 0x08000100, 0x08000900, + 0x00010100, 0x00010900, 0x08010100, 0x08010900, + 0x00000100, 0x00000900, 0x08000100, 0x08000900, + 0x00010100, 0x00010900, 0x08010100, 0x08010900, + 0x00000010, 0x00000810, 0x08000010, 0x08000810, + 0x00010010, 0x00010810, 0x08010010, 0x08010810, + 0x00000010, 0x00000810, 0x08000010, 0x08000810, + 0x00010010, 0x00010810, 0x08010010, 0x08010810, + 0x00000110, 0x00000910, 0x08000110, 0x08000910, + 0x00010110, 0x00010910, 0x08010110, 0x08010910, + 0x00000110, 0x00000910, 0x08000110, 0x08000910, + 0x00010110, 0x00010910, 0x08010110, 0x08010910, + 0x00040000, 0x00040800, 0x08040000, 0x08040800, + 0x00050000, 0x00050800, 0x08050000, 0x08050800, + 0x00040000, 0x00040800, 0x08040000, 0x08040800, + 0x00050000, 0x00050800, 0x08050000, 0x08050800, + 0x00040100, 0x00040900, 0x08040100, 0x08040900, + 0x00050100, 0x00050900, 0x08050100, 0x08050900, + 0x00040100, 0x00040900, 0x08040100, 0x08040900, + 0x00050100, 0x00050900, 0x08050100, 0x08050900, + 0x00040010, 0x00040810, 0x08040010, 0x08040810, + 0x00050010, 0x00050810, 0x08050010, 0x08050810, + 0x00040010, 0x00040810, 0x08040010, 0x08040810, + 0x00050010, 0x00050810, 0x08050010, 0x08050810, + 0x00040110, 0x00040910, 0x08040110, 0x08040910, + 0x00050110, 0x00050910, 0x08050110, 0x08050910, + 0x00040110, 0x00040910, 0x08040110, 0x08040910, + 0x00050110, 0x00050910, 0x08050110, 0x08050910, + 0x01000000, 0x01000800, 0x09000000, 0x09000800, + 0x01010000, 0x01010800, 0x09010000, 0x09010800, + 0x01000000, 0x01000800, 0x09000000, 0x09000800, + 0x01010000, 0x01010800, 0x09010000, 0x09010800, + 0x01000100, 0x01000900, 0x09000100, 0x09000900, + 0x01010100, 0x01010900, 0x09010100, 0x09010900, + 0x01000100, 0x01000900, 0x09000100, 0x09000900, + 0x01010100, 0x01010900, 0x09010100, 0x09010900, + 0x01000010, 0x01000810, 0x09000010, 0x09000810, + 0x01010010, 0x01010810, 0x09010010, 0x09010810, + 0x01000010, 0x01000810, 0x09000010, 0x09000810, + 0x01010010, 0x01010810, 0x09010010, 0x09010810, + 0x01000110, 0x01000910, 0x09000110, 0x09000910, + 0x01010110, 0x01010910, 0x09010110, 0x09010910, + 0x01000110, 0x01000910, 0x09000110, 0x09000910, + 0x01010110, 0x01010910, 0x09010110, 0x09010910, + 0x01040000, 0x01040800, 0x09040000, 0x09040800, + 0x01050000, 0x01050800, 0x09050000, 0x09050800, + 0x01040000, 0x01040800, 0x09040000, 0x09040800, + 0x01050000, 0x01050800, 0x09050000, 0x09050800, + 0x01040100, 0x01040900, 0x09040100, 0x09040900, + 0x01050100, 0x01050900, 0x09050100, 0x09050900, + 0x01040100, 0x01040900, 0x09040100, 0x09040900, + 0x01050100, 0x01050900, 0x09050100, 0x09050900, + 0x01040010, 0x01040810, 0x09040010, 0x09040810, + 0x01050010, 0x01050810, 0x09050010, 0x09050810, + 0x01040010, 0x01040810, 0x09040010, 0x09040810, + 0x01050010, 0x01050810, 0x09050010, 0x09050810, + 0x01040110, 0x01040910, 0x09040110, 0x09040910, + 0x01050110, 0x01050910, 0x09050110, 0x09050910, + 0x01040110, 0x01040910, 0x09040110, 0x09040910, + 0x01050110, 0x01050910, 0x09050110, 0x09050910 + ); + static $pc2mapc3 = array( + 0x00000000, 0x00000004, 0x00001000, 0x00001004, + 0x00000000, 0x00000004, 0x00001000, 0x00001004, + 0x10000000, 0x10000004, 0x10001000, 0x10001004, + 0x10000000, 0x10000004, 0x10001000, 0x10001004, + 0x00000020, 0x00000024, 0x00001020, 0x00001024, + 0x00000020, 0x00000024, 0x00001020, 0x00001024, + 0x10000020, 0x10000024, 0x10001020, 0x10001024, + 0x10000020, 0x10000024, 0x10001020, 0x10001024, + 0x00080000, 0x00080004, 0x00081000, 0x00081004, + 0x00080000, 0x00080004, 0x00081000, 0x00081004, + 0x10080000, 0x10080004, 0x10081000, 0x10081004, + 0x10080000, 0x10080004, 0x10081000, 0x10081004, + 0x00080020, 0x00080024, 0x00081020, 0x00081024, + 0x00080020, 0x00080024, 0x00081020, 0x00081024, + 0x10080020, 0x10080024, 0x10081020, 0x10081024, + 0x10080020, 0x10080024, 0x10081020, 0x10081024, + 0x20000000, 0x20000004, 0x20001000, 0x20001004, + 0x20000000, 0x20000004, 0x20001000, 0x20001004, + 0x30000000, 0x30000004, 0x30001000, 0x30001004, + 0x30000000, 0x30000004, 0x30001000, 0x30001004, + 0x20000020, 0x20000024, 0x20001020, 0x20001024, + 0x20000020, 0x20000024, 0x20001020, 0x20001024, + 0x30000020, 0x30000024, 0x30001020, 0x30001024, + 0x30000020, 0x30000024, 0x30001020, 0x30001024, + 0x20080000, 0x20080004, 0x20081000, 0x20081004, + 0x20080000, 0x20080004, 0x20081000, 0x20081004, + 0x30080000, 0x30080004, 0x30081000, 0x30081004, + 0x30080000, 0x30080004, 0x30081000, 0x30081004, + 0x20080020, 0x20080024, 0x20081020, 0x20081024, + 0x20080020, 0x20080024, 0x20081020, 0x20081024, + 0x30080020, 0x30080024, 0x30081020, 0x30081024, + 0x30080020, 0x30080024, 0x30081020, 0x30081024, + 0x00000002, 0x00000006, 0x00001002, 0x00001006, + 0x00000002, 0x00000006, 0x00001002, 0x00001006, + 0x10000002, 0x10000006, 0x10001002, 0x10001006, + 0x10000002, 0x10000006, 0x10001002, 0x10001006, + 0x00000022, 0x00000026, 0x00001022, 0x00001026, + 0x00000022, 0x00000026, 0x00001022, 0x00001026, + 0x10000022, 0x10000026, 0x10001022, 0x10001026, + 0x10000022, 0x10000026, 0x10001022, 0x10001026, + 0x00080002, 0x00080006, 0x00081002, 0x00081006, + 0x00080002, 0x00080006, 0x00081002, 0x00081006, + 0x10080002, 0x10080006, 0x10081002, 0x10081006, + 0x10080002, 0x10080006, 0x10081002, 0x10081006, + 0x00080022, 0x00080026, 0x00081022, 0x00081026, + 0x00080022, 0x00080026, 0x00081022, 0x00081026, + 0x10080022, 0x10080026, 0x10081022, 0x10081026, + 0x10080022, 0x10080026, 0x10081022, 0x10081026, + 0x20000002, 0x20000006, 0x20001002, 0x20001006, + 0x20000002, 0x20000006, 0x20001002, 0x20001006, + 0x30000002, 0x30000006, 0x30001002, 0x30001006, + 0x30000002, 0x30000006, 0x30001002, 0x30001006, + 0x20000022, 0x20000026, 0x20001022, 0x20001026, + 0x20000022, 0x20000026, 0x20001022, 0x20001026, + 0x30000022, 0x30000026, 0x30001022, 0x30001026, + 0x30000022, 0x30000026, 0x30001022, 0x30001026, + 0x20080002, 0x20080006, 0x20081002, 0x20081006, + 0x20080002, 0x20080006, 0x20081002, 0x20081006, + 0x30080002, 0x30080006, 0x30081002, 0x30081006, + 0x30080002, 0x30080006, 0x30081002, 0x30081006, + 0x20080022, 0x20080026, 0x20081022, 0x20081026, + 0x20080022, 0x20080026, 0x20081022, 0x20081026, + 0x30080022, 0x30080026, 0x30081022, 0x30081026, + 0x30080022, 0x30080026, 0x30081022, 0x30081026 + ); + static $pc2mapc4 = array( + 0x00000000, 0x00100000, 0x00000008, 0x00100008, + 0x00000200, 0x00100200, 0x00000208, 0x00100208, + 0x00000000, 0x00100000, 0x00000008, 0x00100008, + 0x00000200, 0x00100200, 0x00000208, 0x00100208, + 0x04000000, 0x04100000, 0x04000008, 0x04100008, + 0x04000200, 0x04100200, 0x04000208, 0x04100208, + 0x04000000, 0x04100000, 0x04000008, 0x04100008, + 0x04000200, 0x04100200, 0x04000208, 0x04100208, + 0x00002000, 0x00102000, 0x00002008, 0x00102008, + 0x00002200, 0x00102200, 0x00002208, 0x00102208, + 0x00002000, 0x00102000, 0x00002008, 0x00102008, + 0x00002200, 0x00102200, 0x00002208, 0x00102208, + 0x04002000, 0x04102000, 0x04002008, 0x04102008, + 0x04002200, 0x04102200, 0x04002208, 0x04102208, + 0x04002000, 0x04102000, 0x04002008, 0x04102008, + 0x04002200, 0x04102200, 0x04002208, 0x04102208, + 0x00000000, 0x00100000, 0x00000008, 0x00100008, + 0x00000200, 0x00100200, 0x00000208, 0x00100208, + 0x00000000, 0x00100000, 0x00000008, 0x00100008, + 0x00000200, 0x00100200, 0x00000208, 0x00100208, + 0x04000000, 0x04100000, 0x04000008, 0x04100008, + 0x04000200, 0x04100200, 0x04000208, 0x04100208, + 0x04000000, 0x04100000, 0x04000008, 0x04100008, + 0x04000200, 0x04100200, 0x04000208, 0x04100208, + 0x00002000, 0x00102000, 0x00002008, 0x00102008, + 0x00002200, 0x00102200, 0x00002208, 0x00102208, + 0x00002000, 0x00102000, 0x00002008, 0x00102008, + 0x00002200, 0x00102200, 0x00002208, 0x00102208, + 0x04002000, 0x04102000, 0x04002008, 0x04102008, + 0x04002200, 0x04102200, 0x04002208, 0x04102208, + 0x04002000, 0x04102000, 0x04002008, 0x04102008, + 0x04002200, 0x04102200, 0x04002208, 0x04102208, + 0x00020000, 0x00120000, 0x00020008, 0x00120008, + 0x00020200, 0x00120200, 0x00020208, 0x00120208, + 0x00020000, 0x00120000, 0x00020008, 0x00120008, + 0x00020200, 0x00120200, 0x00020208, 0x00120208, + 0x04020000, 0x04120000, 0x04020008, 0x04120008, + 0x04020200, 0x04120200, 0x04020208, 0x04120208, + 0x04020000, 0x04120000, 0x04020008, 0x04120008, + 0x04020200, 0x04120200, 0x04020208, 0x04120208, + 0x00022000, 0x00122000, 0x00022008, 0x00122008, + 0x00022200, 0x00122200, 0x00022208, 0x00122208, + 0x00022000, 0x00122000, 0x00022008, 0x00122008, + 0x00022200, 0x00122200, 0x00022208, 0x00122208, + 0x04022000, 0x04122000, 0x04022008, 0x04122008, + 0x04022200, 0x04122200, 0x04022208, 0x04122208, + 0x04022000, 0x04122000, 0x04022008, 0x04122008, + 0x04022200, 0x04122200, 0x04022208, 0x04122208, + 0x00020000, 0x00120000, 0x00020008, 0x00120008, + 0x00020200, 0x00120200, 0x00020208, 0x00120208, + 0x00020000, 0x00120000, 0x00020008, 0x00120008, + 0x00020200, 0x00120200, 0x00020208, 0x00120208, + 0x04020000, 0x04120000, 0x04020008, 0x04120008, + 0x04020200, 0x04120200, 0x04020208, 0x04120208, + 0x04020000, 0x04120000, 0x04020008, 0x04120008, + 0x04020200, 0x04120200, 0x04020208, 0x04120208, + 0x00022000, 0x00122000, 0x00022008, 0x00122008, + 0x00022200, 0x00122200, 0x00022208, 0x00122208, + 0x00022000, 0x00122000, 0x00022008, 0x00122008, + 0x00022200, 0x00122200, 0x00022208, 0x00122208, + 0x04022000, 0x04122000, 0x04022008, 0x04122008, + 0x04022200, 0x04122200, 0x04022208, 0x04122208, + 0x04022000, 0x04122000, 0x04022008, 0x04122008, + 0x04022200, 0x04122200, 0x04022208, 0x04122208 + ); + static $pc2mapd1 = array( + 0x00000000, 0x00000001, 0x08000000, 0x08000001, + 0x00200000, 0x00200001, 0x08200000, 0x08200001, + 0x00000002, 0x00000003, 0x08000002, 0x08000003, + 0x00200002, 0x00200003, 0x08200002, 0x08200003 + ); + static $pc2mapd2 = array( + 0x00000000, 0x00100000, 0x00000800, 0x00100800, + 0x00000000, 0x00100000, 0x00000800, 0x00100800, + 0x04000000, 0x04100000, 0x04000800, 0x04100800, + 0x04000000, 0x04100000, 0x04000800, 0x04100800, + 0x00000004, 0x00100004, 0x00000804, 0x00100804, + 0x00000004, 0x00100004, 0x00000804, 0x00100804, + 0x04000004, 0x04100004, 0x04000804, 0x04100804, + 0x04000004, 0x04100004, 0x04000804, 0x04100804, + 0x00000000, 0x00100000, 0x00000800, 0x00100800, + 0x00000000, 0x00100000, 0x00000800, 0x00100800, + 0x04000000, 0x04100000, 0x04000800, 0x04100800, + 0x04000000, 0x04100000, 0x04000800, 0x04100800, + 0x00000004, 0x00100004, 0x00000804, 0x00100804, + 0x00000004, 0x00100004, 0x00000804, 0x00100804, + 0x04000004, 0x04100004, 0x04000804, 0x04100804, + 0x04000004, 0x04100004, 0x04000804, 0x04100804, + 0x00000200, 0x00100200, 0x00000A00, 0x00100A00, + 0x00000200, 0x00100200, 0x00000A00, 0x00100A00, + 0x04000200, 0x04100200, 0x04000A00, 0x04100A00, + 0x04000200, 0x04100200, 0x04000A00, 0x04100A00, + 0x00000204, 0x00100204, 0x00000A04, 0x00100A04, + 0x00000204, 0x00100204, 0x00000A04, 0x00100A04, + 0x04000204, 0x04100204, 0x04000A04, 0x04100A04, + 0x04000204, 0x04100204, 0x04000A04, 0x04100A04, + 0x00000200, 0x00100200, 0x00000A00, 0x00100A00, + 0x00000200, 0x00100200, 0x00000A00, 0x00100A00, + 0x04000200, 0x04100200, 0x04000A00, 0x04100A00, + 0x04000200, 0x04100200, 0x04000A00, 0x04100A00, + 0x00000204, 0x00100204, 0x00000A04, 0x00100A04, + 0x00000204, 0x00100204, 0x00000A04, 0x00100A04, + 0x04000204, 0x04100204, 0x04000A04, 0x04100A04, + 0x04000204, 0x04100204, 0x04000A04, 0x04100A04, + 0x00020000, 0x00120000, 0x00020800, 0x00120800, + 0x00020000, 0x00120000, 0x00020800, 0x00120800, + 0x04020000, 0x04120000, 0x04020800, 0x04120800, + 0x04020000, 0x04120000, 0x04020800, 0x04120800, + 0x00020004, 0x00120004, 0x00020804, 0x00120804, + 0x00020004, 0x00120004, 0x00020804, 0x00120804, + 0x04020004, 0x04120004, 0x04020804, 0x04120804, + 0x04020004, 0x04120004, 0x04020804, 0x04120804, + 0x00020000, 0x00120000, 0x00020800, 0x00120800, + 0x00020000, 0x00120000, 0x00020800, 0x00120800, + 0x04020000, 0x04120000, 0x04020800, 0x04120800, + 0x04020000, 0x04120000, 0x04020800, 0x04120800, + 0x00020004, 0x00120004, 0x00020804, 0x00120804, + 0x00020004, 0x00120004, 0x00020804, 0x00120804, + 0x04020004, 0x04120004, 0x04020804, 0x04120804, + 0x04020004, 0x04120004, 0x04020804, 0x04120804, + 0x00020200, 0x00120200, 0x00020A00, 0x00120A00, + 0x00020200, 0x00120200, 0x00020A00, 0x00120A00, + 0x04020200, 0x04120200, 0x04020A00, 0x04120A00, + 0x04020200, 0x04120200, 0x04020A00, 0x04120A00, + 0x00020204, 0x00120204, 0x00020A04, 0x00120A04, + 0x00020204, 0x00120204, 0x00020A04, 0x00120A04, + 0x04020204, 0x04120204, 0x04020A04, 0x04120A04, + 0x04020204, 0x04120204, 0x04020A04, 0x04120A04, + 0x00020200, 0x00120200, 0x00020A00, 0x00120A00, + 0x00020200, 0x00120200, 0x00020A00, 0x00120A00, + 0x04020200, 0x04120200, 0x04020A00, 0x04120A00, + 0x04020200, 0x04120200, 0x04020A00, 0x04120A00, + 0x00020204, 0x00120204, 0x00020A04, 0x00120A04, + 0x00020204, 0x00120204, 0x00020A04, 0x00120A04, + 0x04020204, 0x04120204, 0x04020A04, 0x04120A04, + 0x04020204, 0x04120204, 0x04020A04, 0x04120A04 + ); + static $pc2mapd3 = array( + 0x00000000, 0x00010000, 0x02000000, 0x02010000, + 0x00000020, 0x00010020, 0x02000020, 0x02010020, + 0x00040000, 0x00050000, 0x02040000, 0x02050000, + 0x00040020, 0x00050020, 0x02040020, 0x02050020, + 0x00002000, 0x00012000, 0x02002000, 0x02012000, + 0x00002020, 0x00012020, 0x02002020, 0x02012020, + 0x00042000, 0x00052000, 0x02042000, 0x02052000, + 0x00042020, 0x00052020, 0x02042020, 0x02052020, + 0x00000000, 0x00010000, 0x02000000, 0x02010000, + 0x00000020, 0x00010020, 0x02000020, 0x02010020, + 0x00040000, 0x00050000, 0x02040000, 0x02050000, + 0x00040020, 0x00050020, 0x02040020, 0x02050020, + 0x00002000, 0x00012000, 0x02002000, 0x02012000, + 0x00002020, 0x00012020, 0x02002020, 0x02012020, + 0x00042000, 0x00052000, 0x02042000, 0x02052000, + 0x00042020, 0x00052020, 0x02042020, 0x02052020, + 0x00000010, 0x00010010, 0x02000010, 0x02010010, + 0x00000030, 0x00010030, 0x02000030, 0x02010030, + 0x00040010, 0x00050010, 0x02040010, 0x02050010, + 0x00040030, 0x00050030, 0x02040030, 0x02050030, + 0x00002010, 0x00012010, 0x02002010, 0x02012010, + 0x00002030, 0x00012030, 0x02002030, 0x02012030, + 0x00042010, 0x00052010, 0x02042010, 0x02052010, + 0x00042030, 0x00052030, 0x02042030, 0x02052030, + 0x00000010, 0x00010010, 0x02000010, 0x02010010, + 0x00000030, 0x00010030, 0x02000030, 0x02010030, + 0x00040010, 0x00050010, 0x02040010, 0x02050010, + 0x00040030, 0x00050030, 0x02040030, 0x02050030, + 0x00002010, 0x00012010, 0x02002010, 0x02012010, + 0x00002030, 0x00012030, 0x02002030, 0x02012030, + 0x00042010, 0x00052010, 0x02042010, 0x02052010, + 0x00042030, 0x00052030, 0x02042030, 0x02052030, + 0x20000000, 0x20010000, 0x22000000, 0x22010000, + 0x20000020, 0x20010020, 0x22000020, 0x22010020, + 0x20040000, 0x20050000, 0x22040000, 0x22050000, + 0x20040020, 0x20050020, 0x22040020, 0x22050020, + 0x20002000, 0x20012000, 0x22002000, 0x22012000, + 0x20002020, 0x20012020, 0x22002020, 0x22012020, + 0x20042000, 0x20052000, 0x22042000, 0x22052000, + 0x20042020, 0x20052020, 0x22042020, 0x22052020, + 0x20000000, 0x20010000, 0x22000000, 0x22010000, + 0x20000020, 0x20010020, 0x22000020, 0x22010020, + 0x20040000, 0x20050000, 0x22040000, 0x22050000, + 0x20040020, 0x20050020, 0x22040020, 0x22050020, + 0x20002000, 0x20012000, 0x22002000, 0x22012000, + 0x20002020, 0x20012020, 0x22002020, 0x22012020, + 0x20042000, 0x20052000, 0x22042000, 0x22052000, + 0x20042020, 0x20052020, 0x22042020, 0x22052020, + 0x20000010, 0x20010010, 0x22000010, 0x22010010, + 0x20000030, 0x20010030, 0x22000030, 0x22010030, + 0x20040010, 0x20050010, 0x22040010, 0x22050010, + 0x20040030, 0x20050030, 0x22040030, 0x22050030, + 0x20002010, 0x20012010, 0x22002010, 0x22012010, + 0x20002030, 0x20012030, 0x22002030, 0x22012030, + 0x20042010, 0x20052010, 0x22042010, 0x22052010, + 0x20042030, 0x20052030, 0x22042030, 0x22052030, + 0x20000010, 0x20010010, 0x22000010, 0x22010010, + 0x20000030, 0x20010030, 0x22000030, 0x22010030, + 0x20040010, 0x20050010, 0x22040010, 0x22050010, + 0x20040030, 0x20050030, 0x22040030, 0x22050030, + 0x20002010, 0x20012010, 0x22002010, 0x22012010, + 0x20002030, 0x20012030, 0x22002030, 0x22012030, + 0x20042010, 0x20052010, 0x22042010, 0x22052010, + 0x20042030, 0x20052030, 0x22042030, 0x22052030 + ); + static $pc2mapd4 = array( + 0x00000000, 0x00000400, 0x01000000, 0x01000400, + 0x00000000, 0x00000400, 0x01000000, 0x01000400, + 0x00000100, 0x00000500, 0x01000100, 0x01000500, + 0x00000100, 0x00000500, 0x01000100, 0x01000500, + 0x10000000, 0x10000400, 0x11000000, 0x11000400, + 0x10000000, 0x10000400, 0x11000000, 0x11000400, + 0x10000100, 0x10000500, 0x11000100, 0x11000500, + 0x10000100, 0x10000500, 0x11000100, 0x11000500, + 0x00080000, 0x00080400, 0x01080000, 0x01080400, + 0x00080000, 0x00080400, 0x01080000, 0x01080400, + 0x00080100, 0x00080500, 0x01080100, 0x01080500, + 0x00080100, 0x00080500, 0x01080100, 0x01080500, + 0x10080000, 0x10080400, 0x11080000, 0x11080400, + 0x10080000, 0x10080400, 0x11080000, 0x11080400, + 0x10080100, 0x10080500, 0x11080100, 0x11080500, + 0x10080100, 0x10080500, 0x11080100, 0x11080500, + 0x00000008, 0x00000408, 0x01000008, 0x01000408, + 0x00000008, 0x00000408, 0x01000008, 0x01000408, + 0x00000108, 0x00000508, 0x01000108, 0x01000508, + 0x00000108, 0x00000508, 0x01000108, 0x01000508, + 0x10000008, 0x10000408, 0x11000008, 0x11000408, + 0x10000008, 0x10000408, 0x11000008, 0x11000408, + 0x10000108, 0x10000508, 0x11000108, 0x11000508, + 0x10000108, 0x10000508, 0x11000108, 0x11000508, + 0x00080008, 0x00080408, 0x01080008, 0x01080408, + 0x00080008, 0x00080408, 0x01080008, 0x01080408, + 0x00080108, 0x00080508, 0x01080108, 0x01080508, + 0x00080108, 0x00080508, 0x01080108, 0x01080508, + 0x10080008, 0x10080408, 0x11080008, 0x11080408, + 0x10080008, 0x10080408, 0x11080008, 0x11080408, + 0x10080108, 0x10080508, 0x11080108, 0x11080508, + 0x10080108, 0x10080508, 0x11080108, 0x11080508, + 0x00001000, 0x00001400, 0x01001000, 0x01001400, + 0x00001000, 0x00001400, 0x01001000, 0x01001400, + 0x00001100, 0x00001500, 0x01001100, 0x01001500, + 0x00001100, 0x00001500, 0x01001100, 0x01001500, + 0x10001000, 0x10001400, 0x11001000, 0x11001400, + 0x10001000, 0x10001400, 0x11001000, 0x11001400, + 0x10001100, 0x10001500, 0x11001100, 0x11001500, + 0x10001100, 0x10001500, 0x11001100, 0x11001500, + 0x00081000, 0x00081400, 0x01081000, 0x01081400, + 0x00081000, 0x00081400, 0x01081000, 0x01081400, + 0x00081100, 0x00081500, 0x01081100, 0x01081500, + 0x00081100, 0x00081500, 0x01081100, 0x01081500, + 0x10081000, 0x10081400, 0x11081000, 0x11081400, + 0x10081000, 0x10081400, 0x11081000, 0x11081400, + 0x10081100, 0x10081500, 0x11081100, 0x11081500, + 0x10081100, 0x10081500, 0x11081100, 0x11081500, + 0x00001008, 0x00001408, 0x01001008, 0x01001408, + 0x00001008, 0x00001408, 0x01001008, 0x01001408, + 0x00001108, 0x00001508, 0x01001108, 0x01001508, + 0x00001108, 0x00001508, 0x01001108, 0x01001508, + 0x10001008, 0x10001408, 0x11001008, 0x11001408, + 0x10001008, 0x10001408, 0x11001008, 0x11001408, + 0x10001108, 0x10001508, 0x11001108, 0x11001508, + 0x10001108, 0x10001508, 0x11001108, 0x11001508, + 0x00081008, 0x00081408, 0x01081008, 0x01081408, + 0x00081008, 0x00081408, 0x01081008, 0x01081408, + 0x00081108, 0x00081508, 0x01081108, 0x01081508, + 0x00081108, 0x00081508, 0x01081108, 0x01081508, + 0x10081008, 0x10081408, 0x11081008, 0x11081408, + 0x10081008, 0x10081408, 0x11081008, 0x11081408, + 0x10081108, 0x10081508, 0x11081108, 0x11081508, + 0x10081108, 0x10081508, 0x11081108, 0x11081508 + ); + + $keys = array(); + for ($des_round = 0; $des_round < $this->des_rounds; ++$des_round) { + // pad the key and remove extra characters as appropriate. + $key = str_pad(substr($this->key, $des_round * 8, 8), 8, "\0"); + + // Perform the PC/1 transformation and compute C and D. + $t = unpack('Nl/Nr', $key); + list($l, $r) = array($t['l'], $t['r']); + $key = ($this->shuffle[$pc1map[ $r & 0xFF]] & "\x80\x80\x80\x80\x80\x80\x80\x00") | + ($this->shuffle[$pc1map[($r >> 8) & 0xFF]] & "\x40\x40\x40\x40\x40\x40\x40\x00") | + ($this->shuffle[$pc1map[($r >> 16) & 0xFF]] & "\x20\x20\x20\x20\x20\x20\x20\x00") | + ($this->shuffle[$pc1map[($r >> 24) & 0xFF]] & "\x10\x10\x10\x10\x10\x10\x10\x00") | + ($this->shuffle[$pc1map[ $l & 0xFF]] & "\x08\x08\x08\x08\x08\x08\x08\x00") | + ($this->shuffle[$pc1map[($l >> 8) & 0xFF]] & "\x04\x04\x04\x04\x04\x04\x04\x00") | + ($this->shuffle[$pc1map[($l >> 16) & 0xFF]] & "\x02\x02\x02\x02\x02\x02\x02\x00") | + ($this->shuffle[$pc1map[($l >> 24) & 0xFF]] & "\x01\x01\x01\x01\x01\x01\x01\x00"); + $key = unpack('Nc/Nd', $key); + $c = ( $key['c'] >> 4) & 0x0FFFFFFF; + $d = (($key['d'] >> 4) & 0x0FFFFFF0) | ($key['c'] & 0x0F); + + $keys[$des_round] = array( + CRYPT_DES_ENCRYPT => array(), + CRYPT_DES_DECRYPT => array_fill(0, 32, 0) + ); + for ($i = 0, $ki = 31; $i < 16; ++$i, $ki-= 2) { + $c <<= $shifts[$i]; + $c = ($c | ($c >> 28)) & 0x0FFFFFFF; + $d <<= $shifts[$i]; + $d = ($d | ($d >> 28)) & 0x0FFFFFFF; + + // Perform the PC-2 transformation. + $cp = $pc2mapc1[ $c >> 24 ] | $pc2mapc2[($c >> 16) & 0xFF] | + $pc2mapc3[($c >> 8) & 0xFF] | $pc2mapc4[ $c & 0xFF]; + $dp = $pc2mapd1[ $d >> 24 ] | $pc2mapd2[($d >> 16) & 0xFF] | + $pc2mapd3[($d >> 8) & 0xFF] | $pc2mapd4[ $d & 0xFF]; + + // Reorder: odd bytes/even bytes. Push the result in key schedule. + $val1 = ( $cp & 0xFF000000) | (($cp << 8) & 0x00FF0000) | + (($dp >> 16) & 0x0000FF00) | (($dp >> 8) & 0x000000FF); + $val2 = (($cp << 8) & 0xFF000000) | (($cp << 16) & 0x00FF0000) | + (($dp >> 8) & 0x0000FF00) | ( $dp & 0x000000FF); + $keys[$des_round][CRYPT_DES_ENCRYPT][ ] = $val1; + $keys[$des_round][CRYPT_DES_DECRYPT][$ki - 1] = $val1; + $keys[$des_round][CRYPT_DES_ENCRYPT][ ] = $val2; + $keys[$des_round][CRYPT_DES_DECRYPT][$ki ] = $val2; + } + } + + switch ($this->des_rounds) { + case 3: // 3DES keys + $this->keys = array( + CRYPT_DES_ENCRYPT => array_merge( + $keys[0][CRYPT_DES_ENCRYPT], + $keys[1][CRYPT_DES_DECRYPT], + $keys[2][CRYPT_DES_ENCRYPT] + ), + CRYPT_DES_DECRYPT => array_merge( + $keys[2][CRYPT_DES_DECRYPT], + $keys[1][CRYPT_DES_ENCRYPT], + $keys[0][CRYPT_DES_DECRYPT] + ) + ); + break; + // case 1: // DES keys + default: + $this->keys = array( + CRYPT_DES_ENCRYPT => $keys[0][CRYPT_DES_ENCRYPT], + CRYPT_DES_DECRYPT => $keys[0][CRYPT_DES_DECRYPT] + ); + } + } + + /** + * Setup the performance-optimized function for de/encrypt() + * + * @see Crypt_Base::_setupInlineCrypt() + * @access private + */ + function _setupInlineCrypt() + { + $lambda_functions =& Crypt_DES::_getLambdaFunctions(); + + // Engine configuration for: + // - DES ($des_rounds == 1) or + // - 3DES ($des_rounds == 3) + $des_rounds = $this->des_rounds; + + // We create max. 10 hi-optimized code for memory reason. Means: For each $key one ultra fast inline-crypt function. + // After that, we'll still create very fast optimized code but not the hi-ultimative code, for each $mode one + $gen_hi_opt_code = (bool)( count($lambda_functions) < 10 ); + + // Generation of a uniqe hash for our generated code + switch (true) { + case $gen_hi_opt_code: + // For hi-optimized code, we create for each combination of + // $mode, $des_rounds and $this->key its own encrypt/decrypt function. + $code_hash = md5(str_pad("Crypt_DES, $des_rounds, {$this->mode}, ", 32, "\0") . $this->key); + break; + default: + // After max 10 hi-optimized functions, we create generic + // (still very fast.. but not ultra) functions for each $mode/$des_rounds + // Currently 2 * 5 generic functions will be then max. possible. + $code_hash = "Crypt_DES, $des_rounds, {$this->mode}"; + } + + // Is there a re-usable $lambda_functions in there? If not, we have to create it. + if (!isset($lambda_functions[$code_hash])) { + // Init code for both, encrypt and decrypt. + $init_crypt = 'static $sbox1, $sbox2, $sbox3, $sbox4, $sbox5, $sbox6, $sbox7, $sbox8, $shuffleip, $shuffleinvip; + if (!$sbox1) { + $sbox1 = array_map("intval", $self->sbox1); + $sbox2 = array_map("intval", $self->sbox2); + $sbox3 = array_map("intval", $self->sbox3); + $sbox4 = array_map("intval", $self->sbox4); + $sbox5 = array_map("intval", $self->sbox5); + $sbox6 = array_map("intval", $self->sbox6); + $sbox7 = array_map("intval", $self->sbox7); + $sbox8 = array_map("intval", $self->sbox8);' + /* Merge $shuffle with $[inv]ipmap */ . ' + for ($i = 0; $i < 256; ++$i) { + $shuffleip[] = $self->shuffle[$self->ipmap[$i]]; + $shuffleinvip[] = $self->shuffle[$self->invipmap[$i]]; + } + } + '; + + switch (true) { + case $gen_hi_opt_code: + // In Hi-optimized code mode, we use our [3]DES key schedule as hardcoded integers. + // No futher initialisation of the $keys schedule is necessary. + // That is the extra performance boost. + $k = array( + CRYPT_DES_ENCRYPT => $this->keys[CRYPT_DES_ENCRYPT], + CRYPT_DES_DECRYPT => $this->keys[CRYPT_DES_DECRYPT] + ); + $init_encrypt = ''; + $init_decrypt = ''; + break; + default: + // In generic optimized code mode, we have to use, as the best compromise [currently], + // our key schedule as $ke/$kd arrays. (with hardcoded indexes...) + $k = array( + CRYPT_DES_ENCRYPT => array(), + CRYPT_DES_DECRYPT => array() + ); + for ($i = 0, $c = count($this->keys[CRYPT_DES_ENCRYPT]); $i < $c; ++$i) { + $k[CRYPT_DES_ENCRYPT][$i] = '$ke[' . $i . ']'; + $k[CRYPT_DES_DECRYPT][$i] = '$kd[' . $i . ']'; + } + $init_encrypt = '$ke = $self->keys[CRYPT_DES_ENCRYPT];'; + $init_decrypt = '$kd = $self->keys[CRYPT_DES_DECRYPT];'; + break; + } + + // Creating code for en- and decryption. + $crypt_block = array(); + foreach (array(CRYPT_DES_ENCRYPT, CRYPT_DES_DECRYPT) as $c) { + + /* Do the initial IP permutation. */ + $crypt_block[$c] = ' + $in = unpack("N*", $in); + $l = $in[1]; + $r = $in[2]; + $in = unpack("N*", + ($shuffleip[ $r & 0xFF] & "\x80\x80\x80\x80\x80\x80\x80\x80") | + ($shuffleip[($r >> 8) & 0xFF] & "\x40\x40\x40\x40\x40\x40\x40\x40") | + ($shuffleip[($r >> 16) & 0xFF] & "\x20\x20\x20\x20\x20\x20\x20\x20") | + ($shuffleip[($r >> 24) & 0xFF] & "\x10\x10\x10\x10\x10\x10\x10\x10") | + ($shuffleip[ $l & 0xFF] & "\x08\x08\x08\x08\x08\x08\x08\x08") | + ($shuffleip[($l >> 8) & 0xFF] & "\x04\x04\x04\x04\x04\x04\x04\x04") | + ($shuffleip[($l >> 16) & 0xFF] & "\x02\x02\x02\x02\x02\x02\x02\x02") | + ($shuffleip[($l >> 24) & 0xFF] & "\x01\x01\x01\x01\x01\x01\x01\x01") + ); + ' . /* Extract L0 and R0 */ ' + $l = $in[1]; + $r = $in[2]; + '; + + $l = '$l'; + $r = '$r'; + + // Perform DES or 3DES. + for ($ki = -1, $des_round = 0; $des_round < $des_rounds; ++$des_round) { + // Perform the 16 steps. + for ($i = 0; $i < 16; ++$i) { + // start of "the Feistel (F) function" - see the following URL: + // http://en.wikipedia.org/wiki/Image:Data_Encryption_Standard_InfoBox_Diagram.png + // Merge key schedule. + $crypt_block[$c].= ' + $b1 = ((' . $r . ' >> 3) & 0x1FFFFFFF) ^ (' . $r . ' << 29) ^ ' . $k[$c][++$ki] . '; + $b2 = ((' . $r . ' >> 31) & 0x00000001) ^ (' . $r . ' << 1) ^ ' . $k[$c][++$ki] . ';' . + /* S-box indexing. */ + $l . ' = $sbox1[($b1 >> 24) & 0x3F] ^ $sbox2[($b2 >> 24) & 0x3F] ^ + $sbox3[($b1 >> 16) & 0x3F] ^ $sbox4[($b2 >> 16) & 0x3F] ^ + $sbox5[($b1 >> 8) & 0x3F] ^ $sbox6[($b2 >> 8) & 0x3F] ^ + $sbox7[ $b1 & 0x3F] ^ $sbox8[ $b2 & 0x3F] ^ ' . $l . '; + '; + // end of "the Feistel (F) function" + + // swap L & R + list($l, $r) = array($r, $l); + } + list($l, $r) = array($r, $l); + } + + // Perform the inverse IP permutation. + $crypt_block[$c].= '$in = + ($shuffleinvip[($l >> 24) & 0xFF] & "\x80\x80\x80\x80\x80\x80\x80\x80") | + ($shuffleinvip[($r >> 24) & 0xFF] & "\x40\x40\x40\x40\x40\x40\x40\x40") | + ($shuffleinvip[($l >> 16) & 0xFF] & "\x20\x20\x20\x20\x20\x20\x20\x20") | + ($shuffleinvip[($r >> 16) & 0xFF] & "\x10\x10\x10\x10\x10\x10\x10\x10") | + ($shuffleinvip[($l >> 8) & 0xFF] & "\x08\x08\x08\x08\x08\x08\x08\x08") | + ($shuffleinvip[($r >> 8) & 0xFF] & "\x04\x04\x04\x04\x04\x04\x04\x04") | + ($shuffleinvip[ $l & 0xFF] & "\x02\x02\x02\x02\x02\x02\x02\x02") | + ($shuffleinvip[ $r & 0xFF] & "\x01\x01\x01\x01\x01\x01\x01\x01"); + '; + } + + // Creates the inline-crypt function + $lambda_functions[$code_hash] = $this->_createInlineCryptFunction( + array( + 'init_crypt' => $init_crypt, + 'init_encrypt' => $init_encrypt, + 'init_decrypt' => $init_decrypt, + 'encrypt_block' => $crypt_block[CRYPT_DES_ENCRYPT], + 'decrypt_block' => $crypt_block[CRYPT_DES_DECRYPT] + ) + ); + } + + // Set the inline-crypt function as callback in: $this->inline_crypt + $this->inline_crypt = $lambda_functions[$code_hash]; + } +} diff --git a/lam/lib/3rdParty/phpseclib/Crypt/Hash.php b/lam/lib/3rdParty/phpseclib/Crypt/Hash.php new file mode 100644 index 00000000..b156169d --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/Crypt/Hash.php @@ -0,0 +1,845 @@ + + * setKey('abcdefg'); + * + * echo base64_encode($hash->hash('abcdefg')); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Crypt + * @package Crypt_Hash + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @link http://phpseclib.sourceforge.net + */ + +/**#@+ + * @access private + * @see Crypt_Hash::Crypt_Hash() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_HASH_MODE_INTERNAL', 1); +/** + * Toggles the mhash() implementation, which has been deprecated on PHP 5.3.0+. + */ +define('CRYPT_HASH_MODE_MHASH', 2); +/** + * Toggles the hash() implementation, which works on PHP 5.1.2+. + */ +define('CRYPT_HASH_MODE_HASH', 3); +/**#@-*/ + +/** + * Pure-PHP implementations of keyed-hash message authentication codes (HMACs) and various cryptographic hashing functions. + * + * @package Crypt_Hash + * @author Jim Wigginton + * @version 0.1.0 + * @access public + */ +class Crypt_Hash +{ + /** + * Hash Parameter + * + * @see Crypt_Hash::setHash() + * @var Integer + * @access private + */ + var $hashParam; + + /** + * Byte-length of compression blocks / key (Internal HMAC) + * + * @see Crypt_Hash::setAlgorithm() + * @var Integer + * @access private + */ + var $b; + + /** + * Byte-length of hash output (Internal HMAC) + * + * @see Crypt_Hash::setHash() + * @var Integer + * @access private + */ + var $l = false; + + /** + * Hash Algorithm + * + * @see Crypt_Hash::setHash() + * @var String + * @access private + */ + var $hash; + + /** + * Key + * + * @see Crypt_Hash::setKey() + * @var String + * @access private + */ + var $key = false; + + /** + * Outer XOR (Internal HMAC) + * + * @see Crypt_Hash::setKey() + * @var String + * @access private + */ + var $opad; + + /** + * Inner XOR (Internal HMAC) + * + * @see Crypt_Hash::setKey() + * @var String + * @access private + */ + var $ipad; + + /** + * Default Constructor. + * + * @param optional String $hash + * @return Crypt_Hash + * @access public + */ + function Crypt_Hash($hash = 'sha1') + { + if ( !defined('CRYPT_HASH_MODE') ) { + switch (true) { + case extension_loaded('hash'): + define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_HASH); + break; + case extension_loaded('mhash'): + define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_MHASH); + break; + default: + define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_INTERNAL); + } + } + + $this->setHash($hash); + } + + /** + * Sets the key for HMACs + * + * Keys can be of any length. + * + * @access public + * @param optional String $key + */ + function setKey($key = false) + { + $this->key = $key; + } + + /** + * Gets the hash function. + * + * As set by the constructor or by the setHash() method. + * + * @access public + * @return String + */ + function getHash() + { + return $this->hashParam; + } + + /** + * Sets the hash function. + * + * @access public + * @param String $hash + */ + function setHash($hash) + { + $this->hashParam = $hash = strtolower($hash); + switch ($hash) { + case 'md5-96': + case 'sha1-96': + $this->l = 12; // 96 / 8 = 12 + break; + case 'md2': + case 'md5': + $this->l = 16; + break; + case 'sha1': + $this->l = 20; + break; + case 'sha256': + $this->l = 32; + break; + case 'sha384': + $this->l = 48; + break; + case 'sha512': + $this->l = 64; + } + + switch ($hash) { + case 'md2': + $mode = CRYPT_HASH_MODE == CRYPT_HASH_MODE_HASH && in_array('md2', hash_algos()) ? + CRYPT_HASH_MODE_HASH : CRYPT_HASH_MODE_INTERNAL; + break; + case 'sha384': + case 'sha512': + $mode = CRYPT_HASH_MODE == CRYPT_HASH_MODE_MHASH ? CRYPT_HASH_MODE_INTERNAL : CRYPT_HASH_MODE; + break; + default: + $mode = CRYPT_HASH_MODE; + } + + switch ( $mode ) { + case CRYPT_HASH_MODE_MHASH: + switch ($hash) { + case 'md5': + case 'md5-96': + $this->hash = MHASH_MD5; + break; + case 'sha256': + $this->hash = MHASH_SHA256; + break; + case 'sha1': + case 'sha1-96': + default: + $this->hash = MHASH_SHA1; + } + return; + case CRYPT_HASH_MODE_HASH: + switch ($hash) { + case 'md5': + case 'md5-96': + $this->hash = 'md5'; + return; + case 'md2': + case 'sha256': + case 'sha384': + case 'sha512': + $this->hash = $hash; + return; + case 'sha1': + case 'sha1-96': + default: + $this->hash = 'sha1'; + } + return; + } + + switch ($hash) { + case 'md2': + $this->b = 16; + $this->hash = array($this, '_md2'); + break; + case 'md5': + case 'md5-96': + $this->b = 64; + $this->hash = array($this, '_md5'); + break; + case 'sha256': + $this->b = 64; + $this->hash = array($this, '_sha256'); + break; + case 'sha384': + case 'sha512': + $this->b = 128; + $this->hash = array($this, '_sha512'); + break; + case 'sha1': + case 'sha1-96': + default: + $this->b = 64; + $this->hash = array($this, '_sha1'); + } + + $this->ipad = str_repeat(chr(0x36), $this->b); + $this->opad = str_repeat(chr(0x5C), $this->b); + } + + /** + * Compute the HMAC. + * + * @access public + * @param String $text + * @return String + */ + function hash($text) + { + $mode = is_array($this->hash) ? CRYPT_HASH_MODE_INTERNAL : CRYPT_HASH_MODE; + + if (!empty($this->key) || is_string($this->key)) { + switch ( $mode ) { + case CRYPT_HASH_MODE_MHASH: + $output = mhash($this->hash, $text, $this->key); + break; + case CRYPT_HASH_MODE_HASH: + $output = hash_hmac($this->hash, $text, $this->key, true); + break; + case CRYPT_HASH_MODE_INTERNAL: + /* "Applications that use keys longer than B bytes will first hash the key using H and then use the + resultant L byte string as the actual key to HMAC." + + -- http://tools.ietf.org/html/rfc2104#section-2 */ + $key = strlen($this->key) > $this->b ? call_user_func($this->hash, $this->key) : $this->key; + + $key = str_pad($key, $this->b, chr(0)); // step 1 + $temp = $this->ipad ^ $key; // step 2 + $temp .= $text; // step 3 + $temp = call_user_func($this->hash, $temp); // step 4 + $output = $this->opad ^ $key; // step 5 + $output.= $temp; // step 6 + $output = call_user_func($this->hash, $output); // step 7 + } + } else { + switch ( $mode ) { + case CRYPT_HASH_MODE_MHASH: + $output = mhash($this->hash, $text); + break; + case CRYPT_HASH_MODE_HASH: + $output = hash($this->hash, $text, true); + break; + case CRYPT_HASH_MODE_INTERNAL: + $output = call_user_func($this->hash, $text); + } + } + + return substr($output, 0, $this->l); + } + + /** + * Returns the hash length (in bytes) + * + * @access public + * @return Integer + */ + function getLength() + { + return $this->l; + } + + /** + * Wrapper for MD5 + * + * @access private + * @param String $m + */ + function _md5($m) + { + return pack('H*', md5($m)); + } + + /** + * Wrapper for SHA1 + * + * @access private + * @param String $m + */ + function _sha1($m) + { + return pack('H*', sha1($m)); + } + + /** + * Pure-PHP implementation of MD2 + * + * See {@link http://tools.ietf.org/html/rfc1319 RFC1319}. + * + * @access private + * @param String $m + */ + function _md2($m) + { + static $s = array( + 41, 46, 67, 201, 162, 216, 124, 1, 61, 54, 84, 161, 236, 240, 6, + 19, 98, 167, 5, 243, 192, 199, 115, 140, 152, 147, 43, 217, 188, + 76, 130, 202, 30, 155, 87, 60, 253, 212, 224, 22, 103, 66, 111, 24, + 138, 23, 229, 18, 190, 78, 196, 214, 218, 158, 222, 73, 160, 251, + 245, 142, 187, 47, 238, 122, 169, 104, 121, 145, 21, 178, 7, 63, + 148, 194, 16, 137, 11, 34, 95, 33, 128, 127, 93, 154, 90, 144, 50, + 39, 53, 62, 204, 231, 191, 247, 151, 3, 255, 25, 48, 179, 72, 165, + 181, 209, 215, 94, 146, 42, 172, 86, 170, 198, 79, 184, 56, 210, + 150, 164, 125, 182, 118, 252, 107, 226, 156, 116, 4, 241, 69, 157, + 112, 89, 100, 113, 135, 32, 134, 91, 207, 101, 230, 45, 168, 2, 27, + 96, 37, 173, 174, 176, 185, 246, 28, 70, 97, 105, 52, 64, 126, 15, + 85, 71, 163, 35, 221, 81, 175, 58, 195, 92, 249, 206, 186, 197, + 234, 38, 44, 83, 13, 110, 133, 40, 132, 9, 211, 223, 205, 244, 65, + 129, 77, 82, 106, 220, 55, 200, 108, 193, 171, 250, 36, 225, 123, + 8, 12, 189, 177, 74, 120, 136, 149, 139, 227, 99, 232, 109, 233, + 203, 213, 254, 59, 0, 29, 57, 242, 239, 183, 14, 102, 88, 208, 228, + 166, 119, 114, 248, 235, 117, 75, 10, 49, 68, 80, 180, 143, 237, + 31, 26, 219, 153, 141, 51, 159, 17, 131, 20 + ); + + // Step 1. Append Padding Bytes + $pad = 16 - (strlen($m) & 0xF); + $m.= str_repeat(chr($pad), $pad); + + $length = strlen($m); + + // Step 2. Append Checksum + $c = str_repeat(chr(0), 16); + $l = chr(0); + for ($i = 0; $i < $length; $i+= 16) { + for ($j = 0; $j < 16; $j++) { + // RFC1319 incorrectly states that C[j] should be set to S[c xor L] + //$c[$j] = chr($s[ord($m[$i + $j] ^ $l)]); + // per , however, C[j] should be set to S[c xor L] xor C[j] + $c[$j] = chr($s[ord($m[$i + $j] ^ $l)] ^ ord($c[$j])); + $l = $c[$j]; + } + } + $m.= $c; + + $length+= 16; + + // Step 3. Initialize MD Buffer + $x = str_repeat(chr(0), 48); + + // Step 4. Process Message in 16-Byte Blocks + for ($i = 0; $i < $length; $i+= 16) { + for ($j = 0; $j < 16; $j++) { + $x[$j + 16] = $m[$i + $j]; + $x[$j + 32] = $x[$j + 16] ^ $x[$j]; + } + $t = chr(0); + for ($j = 0; $j < 18; $j++) { + for ($k = 0; $k < 48; $k++) { + $x[$k] = $t = $x[$k] ^ chr($s[ord($t)]); + //$t = $x[$k] = $x[$k] ^ chr($s[ord($t)]); + } + $t = chr(ord($t) + $j); + } + } + + // Step 5. Output + return substr($x, 0, 16); + } + + /** + * Pure-PHP implementation of SHA256 + * + * See {@link http://en.wikipedia.org/wiki/SHA_hash_functions#SHA-256_.28a_SHA-2_variant.29_pseudocode SHA-256 (a SHA-2 variant) pseudocode - Wikipedia}. + * + * @access private + * @param String $m + */ + function _sha256($m) + { + if (extension_loaded('suhosin')) { + return pack('H*', sha256($m)); + } + + // Initialize variables + $hash = array( + 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 + ); + // Initialize table of round constants + // (first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311) + static $k = array( + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 + ); + + // Pre-processing + $length = strlen($m); + // to round to nearest 56 mod 64, we'll add 64 - (length + (64 - 56)) % 64 + $m.= str_repeat(chr(0), 64 - (($length + 8) & 0x3F)); + $m[$length] = chr(0x80); + // we don't support hashing strings 512MB long + $m.= pack('N2', 0, $length << 3); + + // Process the message in successive 512-bit chunks + $chunks = str_split($m, 64); + foreach ($chunks as $chunk) { + $w = array(); + for ($i = 0; $i < 16; $i++) { + extract(unpack('Ntemp', $this->_string_shift($chunk, 4))); + $w[] = $temp; + } + + // Extend the sixteen 32-bit words into sixty-four 32-bit words + for ($i = 16; $i < 64; $i++) { + $s0 = $this->_rightRotate($w[$i - 15], 7) ^ + $this->_rightRotate($w[$i - 15], 18) ^ + $this->_rightShift( $w[$i - 15], 3); + $s1 = $this->_rightRotate($w[$i - 2], 17) ^ + $this->_rightRotate($w[$i - 2], 19) ^ + $this->_rightShift( $w[$i - 2], 10); + $w[$i] = $this->_add($w[$i - 16], $s0, $w[$i - 7], $s1); + + } + + // Initialize hash value for this chunk + list($a, $b, $c, $d, $e, $f, $g, $h) = $hash; + + // Main loop + for ($i = 0; $i < 64; $i++) { + $s0 = $this->_rightRotate($a, 2) ^ + $this->_rightRotate($a, 13) ^ + $this->_rightRotate($a, 22); + $maj = ($a & $b) ^ + ($a & $c) ^ + ($b & $c); + $t2 = $this->_add($s0, $maj); + + $s1 = $this->_rightRotate($e, 6) ^ + $this->_rightRotate($e, 11) ^ + $this->_rightRotate($e, 25); + $ch = ($e & $f) ^ + ($this->_not($e) & $g); + $t1 = $this->_add($h, $s1, $ch, $k[$i], $w[$i]); + + $h = $g; + $g = $f; + $f = $e; + $e = $this->_add($d, $t1); + $d = $c; + $c = $b; + $b = $a; + $a = $this->_add($t1, $t2); + } + + // Add this chunk's hash to result so far + $hash = array( + $this->_add($hash[0], $a), + $this->_add($hash[1], $b), + $this->_add($hash[2], $c), + $this->_add($hash[3], $d), + $this->_add($hash[4], $e), + $this->_add($hash[5], $f), + $this->_add($hash[6], $g), + $this->_add($hash[7], $h) + ); + } + + // Produce the final hash value (big-endian) + return pack('N8', $hash[0], $hash[1], $hash[2], $hash[3], $hash[4], $hash[5], $hash[6], $hash[7]); + } + + /** + * Pure-PHP implementation of SHA384 and SHA512 + * + * @access private + * @param String $m + */ + function _sha512($m) + { + if (!class_exists('Math_BigInteger')) { + include_once 'Math/BigInteger.php'; + } + + static $init384, $init512, $k; + + if (!isset($k)) { + // Initialize variables + $init384 = array( // initial values for SHA384 + 'cbbb9d5dc1059ed8', '629a292a367cd507', '9159015a3070dd17', '152fecd8f70e5939', + '67332667ffc00b31', '8eb44a8768581511', 'db0c2e0d64f98fa7', '47b5481dbefa4fa4' + ); + $init512 = array( // initial values for SHA512 + '6a09e667f3bcc908', 'bb67ae8584caa73b', '3c6ef372fe94f82b', 'a54ff53a5f1d36f1', + '510e527fade682d1', '9b05688c2b3e6c1f', '1f83d9abfb41bd6b', '5be0cd19137e2179' + ); + + for ($i = 0; $i < 8; $i++) { + $init384[$i] = new Math_BigInteger($init384[$i], 16); + $init384[$i]->setPrecision(64); + $init512[$i] = new Math_BigInteger($init512[$i], 16); + $init512[$i]->setPrecision(64); + } + + // Initialize table of round constants + // (first 64 bits of the fractional parts of the cube roots of the first 80 primes 2..409) + $k = array( + '428a2f98d728ae22', '7137449123ef65cd', 'b5c0fbcfec4d3b2f', 'e9b5dba58189dbbc', + '3956c25bf348b538', '59f111f1b605d019', '923f82a4af194f9b', 'ab1c5ed5da6d8118', + 'd807aa98a3030242', '12835b0145706fbe', '243185be4ee4b28c', '550c7dc3d5ffb4e2', + '72be5d74f27b896f', '80deb1fe3b1696b1', '9bdc06a725c71235', 'c19bf174cf692694', + 'e49b69c19ef14ad2', 'efbe4786384f25e3', '0fc19dc68b8cd5b5', '240ca1cc77ac9c65', + '2de92c6f592b0275', '4a7484aa6ea6e483', '5cb0a9dcbd41fbd4', '76f988da831153b5', + '983e5152ee66dfab', 'a831c66d2db43210', 'b00327c898fb213f', 'bf597fc7beef0ee4', + 'c6e00bf33da88fc2', 'd5a79147930aa725', '06ca6351e003826f', '142929670a0e6e70', + '27b70a8546d22ffc', '2e1b21385c26c926', '4d2c6dfc5ac42aed', '53380d139d95b3df', + '650a73548baf63de', '766a0abb3c77b2a8', '81c2c92e47edaee6', '92722c851482353b', + 'a2bfe8a14cf10364', 'a81a664bbc423001', 'c24b8b70d0f89791', 'c76c51a30654be30', + 'd192e819d6ef5218', 'd69906245565a910', 'f40e35855771202a', '106aa07032bbd1b8', + '19a4c116b8d2d0c8', '1e376c085141ab53', '2748774cdf8eeb99', '34b0bcb5e19b48a8', + '391c0cb3c5c95a63', '4ed8aa4ae3418acb', '5b9cca4f7763e373', '682e6ff3d6b2b8a3', + '748f82ee5defb2fc', '78a5636f43172f60', '84c87814a1f0ab72', '8cc702081a6439ec', + '90befffa23631e28', 'a4506cebde82bde9', 'bef9a3f7b2c67915', 'c67178f2e372532b', + 'ca273eceea26619c', 'd186b8c721c0c207', 'eada7dd6cde0eb1e', 'f57d4f7fee6ed178', + '06f067aa72176fba', '0a637dc5a2c898a6', '113f9804bef90dae', '1b710b35131c471b', + '28db77f523047d84', '32caab7b40c72493', '3c9ebe0a15c9bebc', '431d67c49c100d4c', + '4cc5d4becb3e42b6', '597f299cfc657e2a', '5fcb6fab3ad6faec', '6c44198c4a475817' + ); + + for ($i = 0; $i < 80; $i++) { + $k[$i] = new Math_BigInteger($k[$i], 16); + } + } + + $hash = $this->l == 48 ? $init384 : $init512; + + // Pre-processing + $length = strlen($m); + // to round to nearest 112 mod 128, we'll add 128 - (length + (128 - 112)) % 128 + $m.= str_repeat(chr(0), 128 - (($length + 16) & 0x7F)); + $m[$length] = chr(0x80); + // we don't support hashing strings 512MB long + $m.= pack('N4', 0, 0, 0, $length << 3); + + // Process the message in successive 1024-bit chunks + $chunks = str_split($m, 128); + foreach ($chunks as $chunk) { + $w = array(); + for ($i = 0; $i < 16; $i++) { + $temp = new Math_BigInteger($this->_string_shift($chunk, 8), 256); + $temp->setPrecision(64); + $w[] = $temp; + } + + // Extend the sixteen 32-bit words into eighty 32-bit words + for ($i = 16; $i < 80; $i++) { + $temp = array( + $w[$i - 15]->bitwise_rightRotate(1), + $w[$i - 15]->bitwise_rightRotate(8), + $w[$i - 15]->bitwise_rightShift(7) + ); + $s0 = $temp[0]->bitwise_xor($temp[1]); + $s0 = $s0->bitwise_xor($temp[2]); + $temp = array( + $w[$i - 2]->bitwise_rightRotate(19), + $w[$i - 2]->bitwise_rightRotate(61), + $w[$i - 2]->bitwise_rightShift(6) + ); + $s1 = $temp[0]->bitwise_xor($temp[1]); + $s1 = $s1->bitwise_xor($temp[2]); + $w[$i] = $w[$i - 16]->copy(); + $w[$i] = $w[$i]->add($s0); + $w[$i] = $w[$i]->add($w[$i - 7]); + $w[$i] = $w[$i]->add($s1); + } + + // Initialize hash value for this chunk + $a = $hash[0]->copy(); + $b = $hash[1]->copy(); + $c = $hash[2]->copy(); + $d = $hash[3]->copy(); + $e = $hash[4]->copy(); + $f = $hash[5]->copy(); + $g = $hash[6]->copy(); + $h = $hash[7]->copy(); + + // Main loop + for ($i = 0; $i < 80; $i++) { + $temp = array( + $a->bitwise_rightRotate(28), + $a->bitwise_rightRotate(34), + $a->bitwise_rightRotate(39) + ); + $s0 = $temp[0]->bitwise_xor($temp[1]); + $s0 = $s0->bitwise_xor($temp[2]); + $temp = array( + $a->bitwise_and($b), + $a->bitwise_and($c), + $b->bitwise_and($c) + ); + $maj = $temp[0]->bitwise_xor($temp[1]); + $maj = $maj->bitwise_xor($temp[2]); + $t2 = $s0->add($maj); + + $temp = array( + $e->bitwise_rightRotate(14), + $e->bitwise_rightRotate(18), + $e->bitwise_rightRotate(41) + ); + $s1 = $temp[0]->bitwise_xor($temp[1]); + $s1 = $s1->bitwise_xor($temp[2]); + $temp = array( + $e->bitwise_and($f), + $g->bitwise_and($e->bitwise_not()) + ); + $ch = $temp[0]->bitwise_xor($temp[1]); + $t1 = $h->add($s1); + $t1 = $t1->add($ch); + $t1 = $t1->add($k[$i]); + $t1 = $t1->add($w[$i]); + + $h = $g->copy(); + $g = $f->copy(); + $f = $e->copy(); + $e = $d->add($t1); + $d = $c->copy(); + $c = $b->copy(); + $b = $a->copy(); + $a = $t1->add($t2); + } + + // Add this chunk's hash to result so far + $hash = array( + $hash[0]->add($a), + $hash[1]->add($b), + $hash[2]->add($c), + $hash[3]->add($d), + $hash[4]->add($e), + $hash[5]->add($f), + $hash[6]->add($g), + $hash[7]->add($h) + ); + } + + // Produce the final hash value (big-endian) + // (Crypt_Hash::hash() trims the output for hashes but not for HMACs. as such, we trim the output here) + $temp = $hash[0]->toBytes() . $hash[1]->toBytes() . $hash[2]->toBytes() . $hash[3]->toBytes() . + $hash[4]->toBytes() . $hash[5]->toBytes(); + if ($this->l != 48) { + $temp.= $hash[6]->toBytes() . $hash[7]->toBytes(); + } + + return $temp; + } + + /** + * Right Rotate + * + * @access private + * @param Integer $int + * @param Integer $amt + * @see _sha256() + * @return Integer + */ + function _rightRotate($int, $amt) + { + $invamt = 32 - $amt; + $mask = (1 << $invamt) - 1; + return (($int << $invamt) & 0xFFFFFFFF) | (($int >> $amt) & $mask); + } + + /** + * Right Shift + * + * @access private + * @param Integer $int + * @param Integer $amt + * @see _sha256() + * @return Integer + */ + function _rightShift($int, $amt) + { + $mask = (1 << (32 - $amt)) - 1; + return ($int >> $amt) & $mask; + } + + /** + * Not + * + * @access private + * @param Integer $int + * @see _sha256() + * @return Integer + */ + function _not($int) + { + return ~$int & 0xFFFFFFFF; + } + + /** + * Add + * + * _sha256() adds multiple unsigned 32-bit integers. Since PHP doesn't support unsigned integers and since the + * possibility of overflow exists, care has to be taken. Math_BigInteger() could be used but this should be faster. + * + * @param Integer $... + * @return Integer + * @see _sha256() + * @access private + */ + function _add() + { + static $mod; + if (!isset($mod)) { + $mod = pow(2, 32); + } + + $result = 0; + $arguments = func_get_args(); + foreach ($arguments as $argument) { + $result+= $argument < 0 ? ($argument & 0x7FFFFFFF) + 0x80000000 : $argument; + } + + return fmod($result, $mod); + } + + /** + * String Shift + * + * Inspired by array_shift + * + * @param String $string + * @param optional Integer $index + * @return String + * @access private + */ + function _string_shift(&$string, $index = 1) + { + $substr = substr($string, 0, $index); + $string = substr($string, $index); + return $substr; + } +} diff --git a/lam/lib/3rdParty/phpseclib/Crypt/RC2.php b/lam/lib/3rdParty/phpseclib/Crypt/RC2.php new file mode 100644 index 00000000..3436c34b --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/Crypt/RC2.php @@ -0,0 +1,653 @@ + + * setKey('abcdefgh'); + * + * $plaintext = str_repeat('a', 1024); + * + * echo $rc2->decrypt($rc2->encrypt($plaintext)); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Crypt + * @package Crypt_RC2 + * @author Patrick Monnerat + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Crypt_Base + * + * Base cipher class + */ +if (!class_exists('Crypt_Base')) { + include_once 'Base.php'; +} + +/**#@+ + * @access public + * @see Crypt_RC2::encrypt() + * @see Crypt_RC2::decrypt() + */ +/** + * Encrypt / decrypt using the Counter mode. + * + * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 + */ +define('CRYPT_RC2_MODE_CTR', CRYPT_MODE_CTR); +/** + * Encrypt / decrypt using the Electronic Code Book mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 + */ +define('CRYPT_RC2_MODE_ECB', CRYPT_MODE_ECB); +/** + * Encrypt / decrypt using the Code Book Chaining mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 + */ +define('CRYPT_RC2_MODE_CBC', CRYPT_MODE_CBC); +/** + * Encrypt / decrypt using the Cipher Feedback mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29 + */ +define('CRYPT_RC2_MODE_CFB', CRYPT_MODE_CFB); +/** + * Encrypt / decrypt using the Cipher Feedback mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Output_feedback_.28OFB.29 + */ +define('CRYPT_RC2_MODE_OFB', CRYPT_MODE_OFB); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_RC2::Crypt_RC2() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_RC2_MODE_INTERNAL', CRYPT_MODE_INTERNAL); +/** + * Toggles the mcrypt implementation + */ +define('CRYPT_RC2_MODE_MCRYPT', CRYPT_MODE_MCRYPT); +/**#@-*/ + +/** + * Pure-PHP implementation of RC2. + * + * @package Crypt_RC2 + * @version 0.1.1 + * @access public + */ +class Crypt_RC2 extends Crypt_Base +{ + /** + * Block Length of the cipher + * + * @see Crypt_Base::block_size + * @var Integer + * @access private + */ + var $block_size = 8; + + /** + * The Key + * + * @see Crypt_Base::key + * @see setKey() + * @var String + * @access private + */ + var $key = "\0"; + + /** + * The default password key_size used by setPassword() + * + * @see Crypt_Base::password_key_size + * @see Crypt_Base::setPassword() + * @var Integer + * @access private + */ + var $password_key_size = 16; // = 128 bits + + /** + * The namespace used by the cipher for its constants. + * + * @see Crypt_Base::const_namespace + * @var String + * @access private + */ + var $const_namespace = 'RC2'; + + /** + * The mcrypt specific name of the cipher + * + * @see Crypt_Base::cipher_name_mcrypt + * @var String + * @access private + */ + var $cipher_name_mcrypt = 'rc2'; + + /** + * Optimizing value while CFB-encrypting + * + * @see Crypt_Base::cfb_init_len + * @var Integer + * @access private + */ + var $cfb_init_len = 500; + +/** + * The key length in bits. + * + * @see Crypt_RC2::setKeyLength() + * @see Crypt_RC2::setKey() + * @var Integer + * @access private + * @internal Should be in range [1..1024]. + * @internal Changing this value after setting the key has no effect. + */ + var $default_key_length = 1024; + + /** + * The Key Schedule + * + * @see Crypt_RC2::_setupKey() + * @var Array + * @access private + */ + var $keys; + + /** + * Key expansion randomization table. + * Twice the same 256-value sequence to save a modulus in key expansion. + * + * @see Crypt_RC2::setKey() + * @var Array + * @access private + */ + var $pitable = array( + 0xD9, 0x78, 0xF9, 0xC4, 0x19, 0xDD, 0xB5, 0xED, + 0x28, 0xE9, 0xFD, 0x79, 0x4A, 0xA0, 0xD8, 0x9D, + 0xC6, 0x7E, 0x37, 0x83, 0x2B, 0x76, 0x53, 0x8E, + 0x62, 0x4C, 0x64, 0x88, 0x44, 0x8B, 0xFB, 0xA2, + 0x17, 0x9A, 0x59, 0xF5, 0x87, 0xB3, 0x4F, 0x13, + 0x61, 0x45, 0x6D, 0x8D, 0x09, 0x81, 0x7D, 0x32, + 0xBD, 0x8F, 0x40, 0xEB, 0x86, 0xB7, 0x7B, 0x0B, + 0xF0, 0x95, 0x21, 0x22, 0x5C, 0x6B, 0x4E, 0x82, + 0x54, 0xD6, 0x65, 0x93, 0xCE, 0x60, 0xB2, 0x1C, + 0x73, 0x56, 0xC0, 0x14, 0xA7, 0x8C, 0xF1, 0xDC, + 0x12, 0x75, 0xCA, 0x1F, 0x3B, 0xBE, 0xE4, 0xD1, + 0x42, 0x3D, 0xD4, 0x30, 0xA3, 0x3C, 0xB6, 0x26, + 0x6F, 0xBF, 0x0E, 0xDA, 0x46, 0x69, 0x07, 0x57, + 0x27, 0xF2, 0x1D, 0x9B, 0xBC, 0x94, 0x43, 0x03, + 0xF8, 0x11, 0xC7, 0xF6, 0x90, 0xEF, 0x3E, 0xE7, + 0x06, 0xC3, 0xD5, 0x2F, 0xC8, 0x66, 0x1E, 0xD7, + 0x08, 0xE8, 0xEA, 0xDE, 0x80, 0x52, 0xEE, 0xF7, + 0x84, 0xAA, 0x72, 0xAC, 0x35, 0x4D, 0x6A, 0x2A, + 0x96, 0x1A, 0xD2, 0x71, 0x5A, 0x15, 0x49, 0x74, + 0x4B, 0x9F, 0xD0, 0x5E, 0x04, 0x18, 0xA4, 0xEC, + 0xC2, 0xE0, 0x41, 0x6E, 0x0F, 0x51, 0xCB, 0xCC, + 0x24, 0x91, 0xAF, 0x50, 0xA1, 0xF4, 0x70, 0x39, + 0x99, 0x7C, 0x3A, 0x85, 0x23, 0xB8, 0xB4, 0x7A, + 0xFC, 0x02, 0x36, 0x5B, 0x25, 0x55, 0x97, 0x31, + 0x2D, 0x5D, 0xFA, 0x98, 0xE3, 0x8A, 0x92, 0xAE, + 0x05, 0xDF, 0x29, 0x10, 0x67, 0x6C, 0xBA, 0xC9, + 0xD3, 0x00, 0xE6, 0xCF, 0xE1, 0x9E, 0xA8, 0x2C, + 0x63, 0x16, 0x01, 0x3F, 0x58, 0xE2, 0x89, 0xA9, + 0x0D, 0x38, 0x34, 0x1B, 0xAB, 0x33, 0xFF, 0xB0, + 0xBB, 0x48, 0x0C, 0x5F, 0xB9, 0xB1, 0xCD, 0x2E, + 0xC5, 0xF3, 0xDB, 0x47, 0xE5, 0xA5, 0x9C, 0x77, + 0x0A, 0xA6, 0x20, 0x68, 0xFE, 0x7F, 0xC1, 0xAD, + 0xD9, 0x78, 0xF9, 0xC4, 0x19, 0xDD, 0xB5, 0xED, + 0x28, 0xE9, 0xFD, 0x79, 0x4A, 0xA0, 0xD8, 0x9D, + 0xC6, 0x7E, 0x37, 0x83, 0x2B, 0x76, 0x53, 0x8E, + 0x62, 0x4C, 0x64, 0x88, 0x44, 0x8B, 0xFB, 0xA2, + 0x17, 0x9A, 0x59, 0xF5, 0x87, 0xB3, 0x4F, 0x13, + 0x61, 0x45, 0x6D, 0x8D, 0x09, 0x81, 0x7D, 0x32, + 0xBD, 0x8F, 0x40, 0xEB, 0x86, 0xB7, 0x7B, 0x0B, + 0xF0, 0x95, 0x21, 0x22, 0x5C, 0x6B, 0x4E, 0x82, + 0x54, 0xD6, 0x65, 0x93, 0xCE, 0x60, 0xB2, 0x1C, + 0x73, 0x56, 0xC0, 0x14, 0xA7, 0x8C, 0xF1, 0xDC, + 0x12, 0x75, 0xCA, 0x1F, 0x3B, 0xBE, 0xE4, 0xD1, + 0x42, 0x3D, 0xD4, 0x30, 0xA3, 0x3C, 0xB6, 0x26, + 0x6F, 0xBF, 0x0E, 0xDA, 0x46, 0x69, 0x07, 0x57, + 0x27, 0xF2, 0x1D, 0x9B, 0xBC, 0x94, 0x43, 0x03, + 0xF8, 0x11, 0xC7, 0xF6, 0x90, 0xEF, 0x3E, 0xE7, + 0x06, 0xC3, 0xD5, 0x2F, 0xC8, 0x66, 0x1E, 0xD7, + 0x08, 0xE8, 0xEA, 0xDE, 0x80, 0x52, 0xEE, 0xF7, + 0x84, 0xAA, 0x72, 0xAC, 0x35, 0x4D, 0x6A, 0x2A, + 0x96, 0x1A, 0xD2, 0x71, 0x5A, 0x15, 0x49, 0x74, + 0x4B, 0x9F, 0xD0, 0x5E, 0x04, 0x18, 0xA4, 0xEC, + 0xC2, 0xE0, 0x41, 0x6E, 0x0F, 0x51, 0xCB, 0xCC, + 0x24, 0x91, 0xAF, 0x50, 0xA1, 0xF4, 0x70, 0x39, + 0x99, 0x7C, 0x3A, 0x85, 0x23, 0xB8, 0xB4, 0x7A, + 0xFC, 0x02, 0x36, 0x5B, 0x25, 0x55, 0x97, 0x31, + 0x2D, 0x5D, 0xFA, 0x98, 0xE3, 0x8A, 0x92, 0xAE, + 0x05, 0xDF, 0x29, 0x10, 0x67, 0x6C, 0xBA, 0xC9, + 0xD3, 0x00, 0xE6, 0xCF, 0xE1, 0x9E, 0xA8, 0x2C, + 0x63, 0x16, 0x01, 0x3F, 0x58, 0xE2, 0x89, 0xA9, + 0x0D, 0x38, 0x34, 0x1B, 0xAB, 0x33, 0xFF, 0xB0, + 0xBB, 0x48, 0x0C, 0x5F, 0xB9, 0xB1, 0xCD, 0x2E, + 0xC5, 0xF3, 0xDB, 0x47, 0xE5, 0xA5, 0x9C, 0x77, + 0x0A, 0xA6, 0x20, 0x68, 0xFE, 0x7F, 0xC1, 0xAD + ); + + /** + * Inverse key expansion randomization table. + * + * @see Crypt_RC2::setKey() + * @var Array + * @access private + */ + var $invpitable = array( + 0xD1, 0xDA, 0xB9, 0x6F, 0x9C, 0xC8, 0x78, 0x66, + 0x80, 0x2C, 0xF8, 0x37, 0xEA, 0xE0, 0x62, 0xA4, + 0xCB, 0x71, 0x50, 0x27, 0x4B, 0x95, 0xD9, 0x20, + 0x9D, 0x04, 0x91, 0xE3, 0x47, 0x6A, 0x7E, 0x53, + 0xFA, 0x3A, 0x3B, 0xB4, 0xA8, 0xBC, 0x5F, 0x68, + 0x08, 0xCA, 0x8F, 0x14, 0xD7, 0xC0, 0xEF, 0x7B, + 0x5B, 0xBF, 0x2F, 0xE5, 0xE2, 0x8C, 0xBA, 0x12, + 0xE1, 0xAF, 0xB2, 0x54, 0x5D, 0x59, 0x76, 0xDB, + 0x32, 0xA2, 0x58, 0x6E, 0x1C, 0x29, 0x64, 0xF3, + 0xE9, 0x96, 0x0C, 0x98, 0x19, 0x8D, 0x3E, 0x26, + 0xAB, 0xA5, 0x85, 0x16, 0x40, 0xBD, 0x49, 0x67, + 0xDC, 0x22, 0x94, 0xBB, 0x3C, 0xC1, 0x9B, 0xEB, + 0x45, 0x28, 0x18, 0xD8, 0x1A, 0x42, 0x7D, 0xCC, + 0xFB, 0x65, 0x8E, 0x3D, 0xCD, 0x2A, 0xA3, 0x60, + 0xAE, 0x93, 0x8A, 0x48, 0x97, 0x51, 0x15, 0xF7, + 0x01, 0x0B, 0xB7, 0x36, 0xB1, 0x2E, 0x11, 0xFD, + 0x84, 0x2D, 0x3F, 0x13, 0x88, 0xB3, 0x34, 0x24, + 0x1B, 0xDE, 0xC5, 0x1D, 0x4D, 0x2B, 0x17, 0x31, + 0x74, 0xA9, 0xC6, 0x43, 0x6D, 0x39, 0x90, 0xBE, + 0xC3, 0xB0, 0x21, 0x6B, 0xF6, 0x0F, 0xD5, 0x99, + 0x0D, 0xAC, 0x1F, 0x5C, 0x9E, 0xF5, 0xF9, 0x4C, + 0xD6, 0xDF, 0x89, 0xE4, 0x8B, 0xFF, 0xC7, 0xAA, + 0xE7, 0xED, 0x46, 0x25, 0xB6, 0x06, 0x5E, 0x35, + 0xB5, 0xEC, 0xCE, 0xE8, 0x6C, 0x30, 0x55, 0x61, + 0x4A, 0xFE, 0xA0, 0x79, 0x03, 0xF0, 0x10, 0x72, + 0x7C, 0xCF, 0x52, 0xA6, 0xA7, 0xEE, 0x44, 0xD3, + 0x9A, 0x57, 0x92, 0xD0, 0x5A, 0x7A, 0x41, 0x7F, + 0x0E, 0x00, 0x63, 0xF2, 0x4F, 0x05, 0x83, 0xC9, + 0xA1, 0xD4, 0xDD, 0xC4, 0x56, 0xF4, 0xD2, 0x77, + 0x81, 0x09, 0x82, 0x33, 0x9F, 0x07, 0x86, 0x75, + 0x38, 0x4E, 0x69, 0xF1, 0xAD, 0x23, 0x73, 0x87, + 0x70, 0x02, 0xC2, 0x1E, 0xB8, 0x0A, 0xFC, 0xE6 + ); + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. + * + * $mode could be: + * + * - CRYPT_RC2_MODE_ECB + * + * - CRYPT_RC2_MODE_CBC + * + * - CRYPT_RC2_MODE_CTR + * + * - CRYPT_RC2_MODE_CFB + * + * - CRYPT_RC2_MODE_OFB + * + * If not explictly set, CRYPT_RC2_MODE_CBC will be used. + * + * @see Crypt_Base::Crypt_Base() + * @param optional Integer $mode + * @access public + */ + function Crypt_RC2($mode = CRYPT_RC2_MODE_CBC) + { + parent::Crypt_Base($mode); + $this->setKey(''); + } + + /** + * Sets the key length + * + * Valid key lengths are 1 to 1024. + * Calling this function after setting the key has no effect until the next + * Crypt_RC2::setKey() call. + * + * @access public + * @param Integer $length in bits + */ + function setKeyLength($length) + { + if ($length >= 1 && $length <= 1024) { + $this->default_key_length = $length; + } + } + + /** + * Sets the key. + * + * Keys can be of any length. RC2, itself, uses 1 to 1024 bit keys (eg. + * strlen($key) <= 128), however, we only use the first 128 bytes if $key + * has more then 128 bytes in it, and set $key to a single null byte if + * it is empty. + * + * If the key is not explicitly set, it'll be assumed to be a single + * null byte. + * + * @see Crypt_Base::setKey() + * @access public + * @param String $key + * @param Integer $t1 optional Effective key length in bits. + */ + function setKey($key, $t1 = 0) + { + if ($t1 <= 0) { + $t1 = $this->default_key_length; + } else if ($t1 > 1024) { + $t1 = 1024; + } + // Key byte count should be 1..128. + $key = strlen($key) ? substr($key, 0, 128): "\x00"; + $t = strlen($key); + + // The mcrypt RC2 implementation only supports effective key length + // of 1024 bits. It is however possible to handle effective key + // lengths in range 1..1024 by expanding the key and applying + // inverse pitable mapping to the first byte before submitting it + // to mcrypt. + + // Key expansion. + $l = array_values(unpack('C*', $key)); + $t8 = ($t1 + 7) >> 3; + $tm = 0xFF >> (8 * $t8 - $t1); + + // Expand key. + $pitable = $this->pitable; + for ($i = $t; $i < 128; $i++) { + $l[$i] = $pitable[$l[$i - 1] + $l[$i - $t]]; + } + $i = 128 - $t8; + $l[$i] = $pitable[$l[$i] & $tm]; + while ($i--) { + $l[$i] = $pitable[$l[$i + 1] ^ $l[$i + $t8]]; + } + + // Prepare the key for mcrypt. + $l[0] = $this->invpitable[$l[0]]; + array_unshift($l, 'C*'); + parent::setKey(call_user_func_array('pack', $l)); + } + + /** + * Encrypts a block + * + * @see Crypt_Base::_encryptBlock() + * @see Crypt_Base::encrypt() + * @access private + * @param String $in + * @return String + */ + function _encryptBlock($in) + { + list($r0, $r1, $r2, $r3) = array_values(unpack('v*', $in)); + $keys = $this->keys; + $limit = 20; + $actions = array($limit => 44, 44 => 64); + $j = 0; + + for (;;) { + // Mixing round. + $r0 = (($r0 + $keys[$j++] + ((($r1 ^ $r2) & $r3) ^ $r1)) & 0xFFFF) << 1; + $r0 |= $r0 >> 16; + $r1 = (($r1 + $keys[$j++] + ((($r2 ^ $r3) & $r0) ^ $r2)) & 0xFFFF) << 2; + $r1 |= $r1 >> 16; + $r2 = (($r2 + $keys[$j++] + ((($r3 ^ $r0) & $r1) ^ $r3)) & 0xFFFF) << 3; + $r2 |= $r2 >> 16; + $r3 = (($r3 + $keys[$j++] + ((($r0 ^ $r1) & $r2) ^ $r0)) & 0xFFFF) << 5; + $r3 |= $r3 >> 16; + + if ($j == $limit) { + if ($limit == 64) { + break; + } + + // Mashing round. + $r0 += $keys[$r3 & 0x3F]; + $r1 += $keys[$r0 & 0x3F]; + $r2 += $keys[$r1 & 0x3F]; + $r3 += $keys[$r2 & 0x3F]; + $limit = $actions[$limit]; + } + } + + return pack('vvvv', $r0, $r1, $r2, $r3); + } + + /** + * Decrypts a block + * + * @see Crypt_Base::_decryptBlock() + * @see Crypt_Base::decrypt() + * @access private + * @param String $in + * @return String + */ + function _decryptBlock($in) + { + list($r0, $r1, $r2, $r3) = array_values(unpack('v*', $in)); + $keys = $this->keys; + $limit = 44; + $actions = array($limit => 20, 20 => 0); + $j = 64; + + for (;;) { + // R-mixing round. + $r3 = ($r3 | ($r3 << 16)) >> 5; + $r3 = ($r3 - $keys[--$j] - ((($r0 ^ $r1) & $r2) ^ $r0)) & 0xFFFF; + $r2 = ($r2 | ($r2 << 16)) >> 3; + $r2 = ($r2 - $keys[--$j] - ((($r3 ^ $r0) & $r1) ^ $r3)) & 0xFFFF; + $r1 = ($r1 | ($r1 << 16)) >> 2; + $r1 = ($r1 - $keys[--$j] - ((($r2 ^ $r3) & $r0) ^ $r2)) & 0xFFFF; + $r0 = ($r0 | ($r0 << 16)) >> 1; + $r0 = ($r0 - $keys[--$j] - ((($r1 ^ $r2) & $r3) ^ $r1)) & 0xFFFF; + + if ($j == $limit) { + if (!$limit) { + break; + } + + // R-mashing round. + $r3 = ($r3 - $keys[$r2 & 0x3F]) & 0xFFFF; + $r2 = ($r2 - $keys[$r1 & 0x3F]) & 0xFFFF; + $r1 = ($r1 - $keys[$r0 & 0x3F]) & 0xFFFF; + $r0 = ($r0 - $keys[$r3 & 0x3F]) & 0xFFFF; + $limit = $actions[$limit]; + } + } + + return pack('vvvv', $r0, $r1, $r2, $r3); + } + + /** + * Creates the key schedule + * + * @see Crypt_Base::_setupKey() + * @access private + */ + function _setupKey() + { + // Key has already been expanded in Crypt_RC2::setKey(): + // Only the first value must be altered. + $l = unpack('Ca/Cb/v*', $this->key); + array_unshift($l, $this->pitable[$l['a']] | ($l['b'] << 8)); + unset($l['a']); + unset($l['b']); + $this->keys = $l; + } + + /** + * Setup the performance-optimized function for de/encrypt() + * + * @see Crypt_Base::_setupInlineCrypt() + * @access private + */ + function _setupInlineCrypt() + { + $lambda_functions = &Crypt_RC2::_getLambdaFunctions(); + + // The first 10 generated $lambda_functions will use the $keys hardcoded as integers + // for the mixing rounds, for better inline crypt performance [~20% faster]. + // But for memory reason we have to limit those ultra-optimized $lambda_functions to an amount of 10. + $keys = $this->keys; + if (count($lambda_functions) >= 10) { + foreach ($this->keys as $k => $v) { + $keys[$k] = '$keys[' . $k . ']'; + } + } + + $code_hash = md5(str_pad("Crypt_RC2, {$this->mode}, ", 32, "\0") . implode(',', $keys)); + + // Is there a re-usable $lambda_functions in there? + // If not, we have to create it. + if (!isset($lambda_functions[$code_hash])) { + // Init code for both, encrypt and decrypt. + $init_crypt = '$keys = $self->keys;'; + + // $in is the current 8 bytes block which has to be en/decrypt + $encrypt_block = $decrypt_block = ' + $in = unpack("v4", $in); + $r0 = $in[1]; + $r1 = $in[2]; + $r2 = $in[3]; + $r3 = $in[4]; + '; + + // Create code for encryption. + $limit = 20; + $actions = array($limit => 44, 44 => 64); + $j = 0; + + for (;;) { + // Mixing round. + $encrypt_block .= ' + $r0 = (($r0 + ' . $keys[$j++] . ' + + ((($r1 ^ $r2) & $r3) ^ $r1)) & 0xFFFF) << 1; + $r0 |= $r0 >> 16; + $r1 = (($r1 + ' . $keys[$j++] . ' + + ((($r2 ^ $r3) & $r0) ^ $r2)) & 0xFFFF) << 2; + $r1 |= $r1 >> 16; + $r2 = (($r2 + ' . $keys[$j++] . ' + + ((($r3 ^ $r0) & $r1) ^ $r3)) & 0xFFFF) << 3; + $r2 |= $r2 >> 16; + $r3 = (($r3 + ' . $keys[$j++] . ' + + ((($r0 ^ $r1) & $r2) ^ $r0)) & 0xFFFF) << 5; + $r3 |= $r3 >> 16;'; + + if ($j == $limit) { + if ($limit == 64) { + break; + } + + // Mashing round. + $encrypt_block .= ' + $r0 += $keys[$r3 & 0x3F]; + $r1 += $keys[$r0 & 0x3F]; + $r2 += $keys[$r1 & 0x3F]; + $r3 += $keys[$r2 & 0x3F];'; + $limit = $actions[$limit]; + } + } + + $encrypt_block .= '$in = pack("v4", $r0, $r1, $r2, $r3);'; + + // Create code for decryption. + $limit = 44; + $actions = array($limit => 20, 20 => 0); + $j = 64; + + for (;;) { + // R-mixing round. + $decrypt_block .= ' + $r3 = ($r3 | ($r3 << 16)) >> 5; + $r3 = ($r3 - ' . $keys[--$j] . ' - + ((($r0 ^ $r1) & $r2) ^ $r0)) & 0xFFFF; + $r2 = ($r2 | ($r2 << 16)) >> 3; + $r2 = ($r2 - ' . $keys[--$j] . ' - + ((($r3 ^ $r0) & $r1) ^ $r3)) & 0xFFFF; + $r1 = ($r1 | ($r1 << 16)) >> 2; + $r1 = ($r1 - ' . $keys[--$j] . ' - + ((($r2 ^ $r3) & $r0) ^ $r2)) & 0xFFFF; + $r0 = ($r0 | ($r0 << 16)) >> 1; + $r0 = ($r0 - ' . $keys[--$j] . ' - + ((($r1 ^ $r2) & $r3) ^ $r1)) & 0xFFFF;'; + + if ($j == $limit) { + if (!$limit) { + break; + } + + // R-mashing round. + $decrypt_block .= ' + $r3 = ($r3 - $keys[$r2 & 0x3F]) & 0xFFFF; + $r2 = ($r2 - $keys[$r1 & 0x3F]) & 0xFFFF; + $r1 = ($r1 - $keys[$r0 & 0x3F]) & 0xFFFF; + $r0 = ($r0 - $keys[$r3 & 0x3F]) & 0xFFFF;'; + $limit = $actions[$limit]; + } + } + + $decrypt_block .= '$in = pack("v4", $r0, $r1, $r2, $r3);'; + + // Creates the inline-crypt function + $lambda_functions[$code_hash] = $this->_createInlineCryptFunction( + array( + 'init_crypt' => $init_crypt, + 'encrypt_block' => $encrypt_block, + 'decrypt_block' => $decrypt_block + ) + ); + } + + // Set the inline-crypt function as callback in: $this->inline_crypt + $this->inline_crypt = $lambda_functions[$code_hash]; + } +} diff --git a/lam/lib/3rdParty/phpseclib/Crypt/RC4.php b/lam/lib/3rdParty/phpseclib/Crypt/RC4.php new file mode 100644 index 00000000..d062be25 --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/Crypt/RC4.php @@ -0,0 +1,333 @@ + + * setKey('abcdefgh'); + * + * $size = 10 * 1024; + * $plaintext = ''; + * for ($i = 0; $i < $size; $i++) { + * $plaintext.= 'a'; + * } + * + * echo $rc4->decrypt($rc4->encrypt($plaintext)); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Crypt + * @package Crypt_RC4 + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Crypt_Base + * + * Base cipher class + */ +if (!class_exists('Crypt_Base')) { + include_once 'Base.php'; +} + +/**#@+ + * @access private + * @see Crypt_RC4::Crypt_RC4() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_RC4_MODE_INTERNAL', CRYPT_MODE_INTERNAL); +/** + * Toggles the mcrypt implementation + */ +define('CRYPT_RC4_MODE_MCRYPT', CRYPT_MODE_MCRYPT); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_RC4::_crypt() + */ +define('CRYPT_RC4_ENCRYPT', 0); +define('CRYPT_RC4_DECRYPT', 1); +/**#@-*/ + +/** + * Pure-PHP implementation of RC4. + * + * @package Crypt_RC4 + * @author Jim Wigginton + * @version 0.1.0 + * @access public + */ +class Crypt_RC4 extends Crypt_Base +{ + /** + * Block Length of the cipher + * + * RC4 is a stream cipher + * so we the block_size to 0 + * + * @see Crypt_Base::block_size + * @var Integer + * @access private + */ + var $block_size = 0; + + /** + * The default password key_size used by setPassword() + * + * @see Crypt_Base::password_key_size + * @see Crypt_Base::setPassword() + * @var Integer + * @access private + */ + var $password_key_size = 128; // = 1024 bits + + /** + * The namespace used by the cipher for its constants. + * + * @see Crypt_Base::const_namespace + * @var String + * @access private + */ + var $const_namespace = 'RC4'; + + /** + * The mcrypt specific name of the cipher + * + * @see Crypt_Base::cipher_name_mcrypt + * @var String + * @access private + */ + var $cipher_name_mcrypt = 'arcfour'; + + /** + * Holds whether performance-optimized $inline_crypt() can/should be used. + * + * @see Crypt_Base::inline_crypt + * @var mixed + * @access private + */ + var $use_inline_crypt = false; // currently not available + + /** + * The Key + * + * @see Crypt_RC4::setKey() + * @var String + * @access private + */ + var $key = "\0"; + + /** + * The Key Stream for decryption and encryption + * + * @see Crypt_RC4::setKey() + * @var Array + * @access private + */ + var $stream; + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. + * + * @see Crypt_Base::Crypt_Base() + * @return Crypt_RC4 + * @access public + */ + function Crypt_RC4() + { + parent::Crypt_Base(CRYPT_MODE_STREAM); + } + + /** + * Dummy function. + * + * Some protocols, such as WEP, prepend an "initialization vector" to the key, effectively creating a new key [1]. + * If you need to use an initialization vector in this manner, feel free to prepend it to the key, yourself, before + * calling setKey(). + * + * [1] WEP's initialization vectors (IV's) are used in a somewhat insecure way. Since, in that protocol, + * the IV's are relatively easy to predict, an attack described by + * {@link http://www.drizzle.com/~aboba/IEEE/rc4_ksaproc.pdf Scott Fluhrer, Itsik Mantin, and Adi Shamir} + * can be used to quickly guess at the rest of the key. The following links elaborate: + * + * {@link http://www.rsa.com/rsalabs/node.asp?id=2009 http://www.rsa.com/rsalabs/node.asp?id=2009} + * {@link http://en.wikipedia.org/wiki/Related_key_attack http://en.wikipedia.org/wiki/Related_key_attack} + * + * @param String $iv + * @see Crypt_RC4::setKey() + * @access public + */ + function setIV($iv) + { + } + + /** + * Sets the key. + * + * Keys can be between 1 and 256 bytes long. If they are longer then 256 bytes, the first 256 bytes will + * be used. If no key is explicitly set, it'll be assumed to be a single null byte. + * + * @access public + * @see Crypt_Base::setKey() + * @param String $key + */ + function setKey($key) + { + parent::setKey(substr($key, 0, 256)); + } + + /** + * Encrypts a message. + * + * @see Crypt_Base::decrypt() + * @see Crypt_RC4::_crypt() + * @access public + * @param String $plaintext + * @return String $ciphertext + */ + function encrypt($plaintext) + { + if ($this->engine == CRYPT_MODE_MCRYPT) { + return parent::encrypt($plaintext); + } + return $this->_crypt($plaintext, CRYPT_RC4_ENCRYPT); + } + + /** + * Decrypts a message. + * + * $this->decrypt($this->encrypt($plaintext)) == $this->encrypt($this->encrypt($plaintext)). + * Atleast if the continuous buffer is disabled. + * + * @see Crypt_Base::encrypt() + * @see Crypt_RC4::_crypt() + * @access public + * @param String $ciphertext + * @return String $plaintext + */ + function decrypt($ciphertext) + { + if ($this->engine == CRYPT_MODE_MCRYPT) { + return parent::decrypt($ciphertext); + } + return $this->_crypt($ciphertext, CRYPT_RC4_DECRYPT); + } + + + /** + * Setup the key (expansion) + * + * @see Crypt_Base::_setupKey() + * @access private + */ + function _setupKey() + { + $key = $this->key; + $keyLength = strlen($key); + $keyStream = array(); + for ($i = 0; $i < 256; $i++) { + $keyStream[$i] = $i; + } + $j = 0; + for ($i = 0; $i < 256; $i++) { + $j = ($j + $keyStream[$i] + ord($key[$i % $keyLength])) & 255; + $temp = $keyStream[$i]; + $keyStream[$i] = $keyStream[$j]; + $keyStream[$j] = $temp; + } + + $this->stream = array(); + $this->stream[CRYPT_RC4_DECRYPT] = $this->stream[CRYPT_RC4_ENCRYPT] = array( + 0, // index $i + 0, // index $j + $keyStream + ); + } + + /** + * Encrypts or decrypts a message. + * + * @see Crypt_RC4::encrypt() + * @see Crypt_RC4::decrypt() + * @access private + * @param String $text + * @param Integer $mode + * @return String $text + */ + function _crypt($text, $mode) + { + if ($this->changed) { + $this->_setup(); + $this->changed = false; + } + + $stream = &$this->stream[$mode]; + if ($this->continuousBuffer) { + $i = &$stream[0]; + $j = &$stream[1]; + $keyStream = &$stream[2]; + } else { + $i = $stream[0]; + $j = $stream[1]; + $keyStream = $stream[2]; + } + + $len = strlen($text); + for ($k = 0; $k < $len; ++$k) { + $i = ($i + 1) & 255; + $ksi = $keyStream[$i]; + $j = ($j + $ksi) & 255; + $ksj = $keyStream[$j]; + + $keyStream[$i] = $ksj; + $keyStream[$j] = $ksi; + $text[$k] = chr(ord($text[$k]) ^ $keyStream[($ksj + $ksi) & 255]); + } + + return $text; + } +} diff --git a/lam/lib/3rdParty/phpseclib/Crypt/RSA.php b/lam/lib/3rdParty/phpseclib/Crypt/RSA.php new file mode 100644 index 00000000..feb887c7 --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/Crypt/RSA.php @@ -0,0 +1,2811 @@ + + * createKey()); + * + * $plaintext = 'terrafrost'; + * + * $rsa->loadKey($privatekey); + * $ciphertext = $rsa->encrypt($plaintext); + * + * $rsa->loadKey($publickey); + * echo $rsa->decrypt($ciphertext); + * ?> + * + * + * Here's an example of how to create signatures and verify signatures with this library: + * + * createKey()); + * + * $plaintext = 'terrafrost'; + * + * $rsa->loadKey($privatekey); + * $signature = $rsa->sign($plaintext); + * + * $rsa->loadKey($publickey); + * echo $rsa->verify($plaintext, $signature) ? 'verified' : 'unverified'; + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Crypt + * @package Crypt_RSA + * @author Jim Wigginton + * @copyright MMIX Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Crypt_Random + */ +// the class_exists() will only be called if the crypt_random_string function hasn't been defined and +// will trigger a call to __autoload() if you're wanting to auto-load classes +// call function_exists() a second time to stop the include_once from being called outside +// of the auto loader +if (!function_exists('crypt_random_string')) { + include_once 'Random.php'; +} + +/** + * Include Crypt_Hash + */ +if (!class_exists('Crypt_Hash')) { + include_once 'Hash.php'; +} + +/**#@+ + * @access public + * @see Crypt_RSA::encrypt() + * @see Crypt_RSA::decrypt() + */ +/** + * Use {@link http://en.wikipedia.org/wiki/Optimal_Asymmetric_Encryption_Padding Optimal Asymmetric Encryption Padding} + * (OAEP) for encryption / decryption. + * + * Uses sha1 by default. + * + * @see Crypt_RSA::setHash() + * @see Crypt_RSA::setMGFHash() + */ +define('CRYPT_RSA_ENCRYPTION_OAEP', 1); +/** + * Use PKCS#1 padding. + * + * Although CRYPT_RSA_ENCRYPTION_OAEP offers more security, including PKCS#1 padding is necessary for purposes of backwards + * compatability with protocols (like SSH-1) written before OAEP's introduction. + */ +define('CRYPT_RSA_ENCRYPTION_PKCS1', 2); +/**#@-*/ + +/**#@+ + * @access public + * @see Crypt_RSA::sign() + * @see Crypt_RSA::verify() + * @see Crypt_RSA::setHash() + */ +/** + * Use the Probabilistic Signature Scheme for signing + * + * Uses sha1 by default. + * + * @see Crypt_RSA::setSaltLength() + * @see Crypt_RSA::setMGFHash() + */ +define('CRYPT_RSA_SIGNATURE_PSS', 1); +/** + * Use the PKCS#1 scheme by default. + * + * Although CRYPT_RSA_SIGNATURE_PSS offers more security, including PKCS#1 signing is necessary for purposes of backwards + * compatability with protocols (like SSH-2) written before PSS's introduction. + */ +define('CRYPT_RSA_SIGNATURE_PKCS1', 2); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_RSA::createKey() + */ +/** + * ASN1 Integer + */ +define('CRYPT_RSA_ASN1_INTEGER', 2); +/** + * ASN1 Bit String + */ +define('CRYPT_RSA_ASN1_BITSTRING', 3); +/** + * ASN1 Sequence (with the constucted bit set) + */ +define('CRYPT_RSA_ASN1_SEQUENCE', 48); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_RSA::Crypt_RSA() + */ +/** + * To use the pure-PHP implementation + */ +define('CRYPT_RSA_MODE_INTERNAL', 1); +/** + * To use the OpenSSL library + * + * (if enabled; otherwise, the internal implementation will be used) + */ +define('CRYPT_RSA_MODE_OPENSSL', 2); +/**#@-*/ + +/** + * Default openSSL configuration file. + */ +define('CRYPT_RSA_OPENSSL_CONFIG', dirname(__FILE__) . '/../openssl.cnf'); + +/**#@+ + * @access public + * @see Crypt_RSA::createKey() + * @see Crypt_RSA::setPrivateKeyFormat() + */ +/** + * PKCS#1 formatted private key + * + * Used by OpenSSH + */ +define('CRYPT_RSA_PRIVATE_FORMAT_PKCS1', 0); +/** + * PuTTY formatted private key + */ +define('CRYPT_RSA_PRIVATE_FORMAT_PUTTY', 1); +/** + * XML formatted private key + */ +define('CRYPT_RSA_PRIVATE_FORMAT_XML', 2); +/**#@-*/ + +/**#@+ + * @access public + * @see Crypt_RSA::createKey() + * @see Crypt_RSA::setPublicKeyFormat() + */ +/** + * Raw public key + * + * An array containing two Math_BigInteger objects. + * + * The exponent can be indexed with any of the following: + * + * 0, e, exponent, publicExponent + * + * The modulus can be indexed with any of the following: + * + * 1, n, modulo, modulus + */ +define('CRYPT_RSA_PUBLIC_FORMAT_RAW', 3); +/** + * PKCS#1 formatted public key (raw) + * + * Used by File/X509.php + */ +define('CRYPT_RSA_PUBLIC_FORMAT_PKCS1_RAW', 4); +/** + * XML formatted public key + */ +define('CRYPT_RSA_PUBLIC_FORMAT_XML', 5); +/** + * OpenSSH formatted public key + * + * Place in $HOME/.ssh/authorized_keys + */ +define('CRYPT_RSA_PUBLIC_FORMAT_OPENSSH', 6); +/** + * PKCS#1 formatted public key (encapsulated) + * + * Used by PHP's openssl_public_encrypt() and openssl's rsautl (when -pubin is set) + */ +define('CRYPT_RSA_PUBLIC_FORMAT_PKCS1', 7); +/**#@-*/ + +/** + * Pure-PHP PKCS#1 compliant implementation of RSA. + * + * @package Crypt_RSA + * @author Jim Wigginton + * @version 0.1.0 + * @access public + */ +class Crypt_RSA +{ + /** + * Precomputed Zero + * + * @var Array + * @access private + */ + var $zero; + + /** + * Precomputed One + * + * @var Array + * @access private + */ + var $one; + + /** + * Private Key Format + * + * @var Integer + * @access private + */ + var $privateKeyFormat = CRYPT_RSA_PRIVATE_FORMAT_PKCS1; + + /** + * Public Key Format + * + * @var Integer + * @access public + */ + var $publicKeyFormat = CRYPT_RSA_PUBLIC_FORMAT_PKCS1; + + /** + * Modulus (ie. n) + * + * @var Math_BigInteger + * @access private + */ + var $modulus; + + /** + * Modulus length + * + * @var Math_BigInteger + * @access private + */ + var $k; + + /** + * Exponent (ie. e or d) + * + * @var Math_BigInteger + * @access private + */ + var $exponent; + + /** + * Primes for Chinese Remainder Theorem (ie. p and q) + * + * @var Array + * @access private + */ + var $primes; + + /** + * Exponents for Chinese Remainder Theorem (ie. dP and dQ) + * + * @var Array + * @access private + */ + var $exponents; + + /** + * Coefficients for Chinese Remainder Theorem (ie. qInv) + * + * @var Array + * @access private + */ + var $coefficients; + + /** + * Hash name + * + * @var String + * @access private + */ + var $hashName; + + /** + * Hash function + * + * @var Crypt_Hash + * @access private + */ + var $hash; + + /** + * Length of hash function output + * + * @var Integer + * @access private + */ + var $hLen; + + /** + * Length of salt + * + * @var Integer + * @access private + */ + var $sLen; + + /** + * Hash function for the Mask Generation Function + * + * @var Crypt_Hash + * @access private + */ + var $mgfHash; + + /** + * Length of MGF hash function output + * + * @var Integer + * @access private + */ + var $mgfHLen; + + /** + * Encryption mode + * + * @var Integer + * @access private + */ + var $encryptionMode = CRYPT_RSA_ENCRYPTION_OAEP; + + /** + * Signature mode + * + * @var Integer + * @access private + */ + var $signatureMode = CRYPT_RSA_SIGNATURE_PSS; + + /** + * Public Exponent + * + * @var Mixed + * @access private + */ + var $publicExponent = false; + + /** + * Password + * + * @var String + * @access private + */ + var $password = false; + + /** + * Components + * + * For use with parsing XML formatted keys. PHP's XML Parser functions use utilized - instead of PHP's DOM functions - + * because PHP's XML Parser functions work on PHP4 whereas PHP's DOM functions - although surperior - don't. + * + * @see Crypt_RSA::_start_element_handler() + * @var Array + * @access private + */ + var $components = array(); + + /** + * Current String + * + * For use with parsing XML formatted keys. + * + * @see Crypt_RSA::_character_handler() + * @see Crypt_RSA::_stop_element_handler() + * @var Mixed + * @access private + */ + var $current; + + /** + * OpenSSL configuration file name. + * + * Set to null to use system configuration file. + * @see Crypt_RSA::createKey() + * @var Mixed + * @Access public + */ + var $configFile; + + /** + * Public key comment field. + * + * @var String + * @access private + */ + var $comment = 'phpseclib-generated-key'; + + /** + * The constructor + * + * If you want to make use of the openssl extension, you'll need to set the mode manually, yourself. The reason + * Crypt_RSA doesn't do it is because OpenSSL doesn't fail gracefully. openssl_pkey_new(), in particular, requires + * openssl.cnf be present somewhere and, unfortunately, the only real way to find out is too late. + * + * @return Crypt_RSA + * @access public + */ + function Crypt_RSA() + { + if (!class_exists('Math_BigInteger')) { + include_once 'Math/BigInteger.php'; + } + + $this->configFile = CRYPT_RSA_OPENSSL_CONFIG; + + if ( !defined('CRYPT_RSA_MODE') ) { + // Math/BigInteger's openssl requirements are a little less stringent than Crypt/RSA's. in particular, + // Math/BigInteger doesn't require an openssl.cfg file whereas Crypt/RSA does. so if Math/BigInteger + // can't use OpenSSL it can be pretty trivially assumed, then, that Crypt/RSA can't either. + if ( defined('MATH_BIGINTEGER_OPENSSL_DISABLE') ) { + define('CRYPT_RSA_MODE', CRYPT_RSA_MODE_INTERNAL); + } + + switch ( !defined('CRYPT_RSA_MODE') ) { // ie. only run this if the above didn't set CRYPT_RSA_MODE already + case extension_loaded('openssl') && version_compare(PHP_VERSION, '4.2.0', '>=') && file_exists($this->configFile): + // some versions of XAMPP have mismatched versions of OpenSSL which causes it not to work + ob_start(); + phpinfo(); + $content = ob_get_contents(); + ob_end_clean(); + + preg_match_all('#OpenSSL (Header|Library) Version(.*)#im', $content, $matches); + + $versions = array(); + if (!empty($matches[1])) { + for ($i = 0; $i < count($matches[1]); $i++) { + $versions[$matches[1][$i]] = trim(str_replace('=>', '', strip_tags($matches[2][$i]))); + } + } + + // it doesn't appear that OpenSSL versions were reported upon until PHP 5.3+ + switch (true) { + case !isset($versions['Header']): + case !isset($versions['Library']): + case $versions['Header'] == $versions['Library']: + define('CRYPT_RSA_MODE', CRYPT_RSA_MODE_OPENSSL); + break; + default: + define('CRYPT_RSA_MODE', CRYPT_RSA_MODE_INTERNAL); + define('MATH_BIGINTEGER_OPENSSL_DISABLE', true); + } + break; + case true: + define('CRYPT_RSA_MODE', CRYPT_RSA_MODE_INTERNAL); + } + } + + $this->zero = new Math_BigInteger(); + $this->one = new Math_BigInteger(1); + + $this->hash = new Crypt_Hash('sha1'); + $this->hLen = $this->hash->getLength(); + $this->hashName = 'sha1'; + $this->mgfHash = new Crypt_Hash('sha1'); + $this->mgfHLen = $this->mgfHash->getLength(); + } + + /** + * Create public / private key pair + * + * Returns an array with the following three elements: + * - 'privatekey': The private key. + * - 'publickey': The public key. + * - 'partialkey': A partially computed key (if the execution time exceeded $timeout). + * Will need to be passed back to Crypt_RSA::createKey() as the third parameter for further processing. + * + * @access public + * @param optional Integer $bits + * @param optional Integer $timeout + * @param optional Math_BigInteger $p + */ + function createKey($bits = 1024, $timeout = false, $partial = array()) + { + if (!defined('CRYPT_RSA_EXPONENT')) { + // http://en.wikipedia.org/wiki/65537_%28number%29 + define('CRYPT_RSA_EXPONENT', '65537'); + } + // per , this number ought not result in primes smaller + // than 256 bits. as a consequence if the key you're trying to create is 1024 bits and you've set CRYPT_RSA_SMALLEST_PRIME + // to 384 bits then you're going to get a 384 bit prime and a 640 bit prime (384 + 1024 % 384). at least if + // CRYPT_RSA_MODE is set to CRYPT_RSA_MODE_INTERNAL. if CRYPT_RSA_MODE is set to CRYPT_RSA_MODE_OPENSSL then + // CRYPT_RSA_SMALLEST_PRIME is ignored (ie. multi-prime RSA support is more intended as a way to speed up RSA key + // generation when there's a chance neither gmp nor OpenSSL are installed) + if (!defined('CRYPT_RSA_SMALLEST_PRIME')) { + define('CRYPT_RSA_SMALLEST_PRIME', 4096); + } + + // OpenSSL uses 65537 as the exponent and requires RSA keys be 384 bits minimum + if ( CRYPT_RSA_MODE == CRYPT_RSA_MODE_OPENSSL && $bits >= 384 && CRYPT_RSA_EXPONENT == 65537) { + $config = array(); + if (isset($this->configFile)) { + $config['config'] = $this->configFile; + } + $rsa = openssl_pkey_new(array('private_key_bits' => $bits) + $config); + openssl_pkey_export($rsa, $privatekey, null, $config); + $publickey = openssl_pkey_get_details($rsa); + $publickey = $publickey['key']; + + $privatekey = call_user_func_array(array($this, '_convertPrivateKey'), array_values($this->_parseKey($privatekey, CRYPT_RSA_PRIVATE_FORMAT_PKCS1))); + $publickey = call_user_func_array(array($this, '_convertPublicKey'), array_values($this->_parseKey($publickey, CRYPT_RSA_PUBLIC_FORMAT_PKCS1))); + + // clear the buffer of error strings stemming from a minimalistic openssl.cnf + while (openssl_error_string() !== false); + + return array( + 'privatekey' => $privatekey, + 'publickey' => $publickey, + 'partialkey' => false + ); + } + + static $e; + if (!isset($e)) { + $e = new Math_BigInteger(CRYPT_RSA_EXPONENT); + } + + extract($this->_generateMinMax($bits)); + $absoluteMin = $min; + $temp = $bits >> 1; // divide by two to see how many bits P and Q would be + if ($temp > CRYPT_RSA_SMALLEST_PRIME) { + $num_primes = floor($bits / CRYPT_RSA_SMALLEST_PRIME); + $temp = CRYPT_RSA_SMALLEST_PRIME; + } else { + $num_primes = 2; + } + extract($this->_generateMinMax($temp + $bits % $temp)); + $finalMax = $max; + extract($this->_generateMinMax($temp)); + + $generator = new Math_BigInteger(); + + $n = $this->one->copy(); + if (!empty($partial)) { + extract(unserialize($partial)); + } else { + $exponents = $coefficients = $primes = array(); + $lcm = array( + 'top' => $this->one->copy(), + 'bottom' => false + ); + } + + $start = time(); + $i0 = count($primes) + 1; + + do { + for ($i = $i0; $i <= $num_primes; $i++) { + if ($timeout !== false) { + $timeout-= time() - $start; + $start = time(); + if ($timeout <= 0) { + return array( + 'privatekey' => '', + 'publickey' => '', + 'partialkey' => serialize(array( + 'primes' => $primes, + 'coefficients' => $coefficients, + 'lcm' => $lcm, + 'exponents' => $exponents + )) + ); + } + } + + if ($i == $num_primes) { + list($min, $temp) = $absoluteMin->divide($n); + if (!$temp->equals($this->zero)) { + $min = $min->add($this->one); // ie. ceil() + } + $primes[$i] = $generator->randomPrime($min, $finalMax, $timeout); + } else { + $primes[$i] = $generator->randomPrime($min, $max, $timeout); + } + + if ($primes[$i] === false) { // if we've reached the timeout + if (count($primes) > 1) { + $partialkey = ''; + } else { + array_pop($primes); + $partialkey = serialize(array( + 'primes' => $primes, + 'coefficients' => $coefficients, + 'lcm' => $lcm, + 'exponents' => $exponents + )); + } + + return array( + 'privatekey' => '', + 'publickey' => '', + 'partialkey' => $partialkey + ); + } + + // the first coefficient is calculated differently from the rest + // ie. instead of being $primes[1]->modInverse($primes[2]), it's $primes[2]->modInverse($primes[1]) + if ($i > 2) { + $coefficients[$i] = $n->modInverse($primes[$i]); + } + + $n = $n->multiply($primes[$i]); + + $temp = $primes[$i]->subtract($this->one); + + // textbook RSA implementations use Euler's totient function instead of the least common multiple. + // see http://en.wikipedia.org/wiki/Euler%27s_totient_function + $lcm['top'] = $lcm['top']->multiply($temp); + $lcm['bottom'] = $lcm['bottom'] === false ? $temp : $lcm['bottom']->gcd($temp); + + $exponents[$i] = $e->modInverse($temp); + } + + list($temp) = $lcm['top']->divide($lcm['bottom']); + $gcd = $temp->gcd($e); + $i0 = 1; + } while (!$gcd->equals($this->one)); + + $d = $e->modInverse($temp); + + $coefficients[2] = $primes[2]->modInverse($primes[1]); + + // from : + // RSAPrivateKey ::= SEQUENCE { + // version Version, + // modulus INTEGER, -- n + // publicExponent INTEGER, -- e + // privateExponent INTEGER, -- d + // prime1 INTEGER, -- p + // prime2 INTEGER, -- q + // exponent1 INTEGER, -- d mod (p-1) + // exponent2 INTEGER, -- d mod (q-1) + // coefficient INTEGER, -- (inverse of q) mod p + // otherPrimeInfos OtherPrimeInfos OPTIONAL + // } + + return array( + 'privatekey' => $this->_convertPrivateKey($n, $e, $d, $primes, $exponents, $coefficients), + 'publickey' => $this->_convertPublicKey($n, $e), + 'partialkey' => false + ); + } + + /** + * Convert a private key to the appropriate format. + * + * @access private + * @see setPrivateKeyFormat() + * @param String $RSAPrivateKey + * @return String + */ + function _convertPrivateKey($n, $e, $d, $primes, $exponents, $coefficients) + { + $num_primes = count($primes); + $raw = array( + 'version' => $num_primes == 2 ? chr(0) : chr(1), // two-prime vs. multi + 'modulus' => $n->toBytes(true), + 'publicExponent' => $e->toBytes(true), + 'privateExponent' => $d->toBytes(true), + 'prime1' => $primes[1]->toBytes(true), + 'prime2' => $primes[2]->toBytes(true), + 'exponent1' => $exponents[1]->toBytes(true), + 'exponent2' => $exponents[2]->toBytes(true), + 'coefficient' => $coefficients[2]->toBytes(true) + ); + + // if the format in question does not support multi-prime rsa and multi-prime rsa was used, + // call _convertPublicKey() instead. + switch ($this->privateKeyFormat) { + case CRYPT_RSA_PRIVATE_FORMAT_XML: + if ($num_primes != 2) { + return false; + } + return "\r\n" . + ' ' . base64_encode($raw['modulus']) . "\r\n" . + ' ' . base64_encode($raw['publicExponent']) . "\r\n" . + '

    ' . base64_encode($raw['prime1']) . "

    \r\n" . + ' ' . base64_encode($raw['prime2']) . "\r\n" . + ' ' . base64_encode($raw['exponent1']) . "\r\n" . + ' ' . base64_encode($raw['exponent2']) . "\r\n" . + ' ' . base64_encode($raw['coefficient']) . "\r\n" . + ' ' . base64_encode($raw['privateExponent']) . "\r\n" . + '
    '; + break; + case CRYPT_RSA_PRIVATE_FORMAT_PUTTY: + if ($num_primes != 2) { + return false; + } + $key = "PuTTY-User-Key-File-2: ssh-rsa\r\nEncryption: "; + $encryption = (!empty($this->password) || is_string($this->password)) ? 'aes256-cbc' : 'none'; + $key.= $encryption; + $key.= "\r\nComment: " . $this->comment . "\r\n"; + $public = pack('Na*Na*Na*', + strlen('ssh-rsa'), 'ssh-rsa', strlen($raw['publicExponent']), $raw['publicExponent'], strlen($raw['modulus']), $raw['modulus'] + ); + $source = pack('Na*Na*Na*Na*', + strlen('ssh-rsa'), 'ssh-rsa', strlen($encryption), $encryption, + strlen($this->comment), $this->comment, strlen($public), $public + ); + $public = base64_encode($public); + $key.= "Public-Lines: " . ((strlen($public) + 63) >> 6) . "\r\n"; + $key.= chunk_split($public, 64); + $private = pack('Na*Na*Na*Na*', + strlen($raw['privateExponent']), $raw['privateExponent'], strlen($raw['prime1']), $raw['prime1'], + strlen($raw['prime2']), $raw['prime2'], strlen($raw['coefficient']), $raw['coefficient'] + ); + if (empty($this->password) && !is_string($this->password)) { + $source.= pack('Na*', strlen($private), $private); + $hashkey = 'putty-private-key-file-mac-key'; + } else { + $private.= crypt_random_string(16 - (strlen($private) & 15)); + $source.= pack('Na*', strlen($private), $private); + if (!class_exists('Crypt_AES')) { + include_once 'Crypt/AES.php'; + } + $sequence = 0; + $symkey = ''; + while (strlen($symkey) < 32) { + $temp = pack('Na*', $sequence++, $this->password); + $symkey.= pack('H*', sha1($temp)); + } + $symkey = substr($symkey, 0, 32); + $crypto = new Crypt_AES(); + + $crypto->setKey($symkey); + $crypto->disablePadding(); + $private = $crypto->encrypt($private); + $hashkey = 'putty-private-key-file-mac-key' . $this->password; + } + + $private = base64_encode($private); + $key.= 'Private-Lines: ' . ((strlen($private) + 63) >> 6) . "\r\n"; + $key.= chunk_split($private, 64); + if (!class_exists('Crypt_Hash')) { + include_once 'Crypt/Hash.php'; + } + $hash = new Crypt_Hash('sha1'); + $hash->setKey(pack('H*', sha1($hashkey))); + $key.= 'Private-MAC: ' . bin2hex($hash->hash($source)) . "\r\n"; + + return $key; + default: // eg. CRYPT_RSA_PRIVATE_FORMAT_PKCS1 + $components = array(); + foreach ($raw as $name => $value) { + $components[$name] = pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($value)), $value); + } + + $RSAPrivateKey = implode('', $components); + + if ($num_primes > 2) { + $OtherPrimeInfos = ''; + for ($i = 3; $i <= $num_primes; $i++) { + // OtherPrimeInfos ::= SEQUENCE SIZE(1..MAX) OF OtherPrimeInfo + // + // OtherPrimeInfo ::= SEQUENCE { + // prime INTEGER, -- ri + // exponent INTEGER, -- di + // coefficient INTEGER -- ti + // } + $OtherPrimeInfo = pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($primes[$i]->toBytes(true))), $primes[$i]->toBytes(true)); + $OtherPrimeInfo.= pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($exponents[$i]->toBytes(true))), $exponents[$i]->toBytes(true)); + $OtherPrimeInfo.= pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($coefficients[$i]->toBytes(true))), $coefficients[$i]->toBytes(true)); + $OtherPrimeInfos.= pack('Ca*a*', CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($OtherPrimeInfo)), $OtherPrimeInfo); + } + $RSAPrivateKey.= pack('Ca*a*', CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($OtherPrimeInfos)), $OtherPrimeInfos); + } + + $RSAPrivateKey = pack('Ca*a*', CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($RSAPrivateKey)), $RSAPrivateKey); + + if (!empty($this->password) || is_string($this->password)) { + $iv = crypt_random_string(8); + $symkey = pack('H*', md5($this->password . $iv)); // symkey is short for symmetric key + $symkey.= substr(pack('H*', md5($symkey . $this->password . $iv)), 0, 8); + if (!class_exists('Crypt_TripleDES')) { + include_once 'Crypt/TripleDES.php'; + } + $des = new Crypt_TripleDES(); + $des->setKey($symkey); + $des->setIV($iv); + $iv = strtoupper(bin2hex($iv)); + $RSAPrivateKey = "-----BEGIN RSA PRIVATE KEY-----\r\n" . + "Proc-Type: 4,ENCRYPTED\r\n" . + "DEK-Info: DES-EDE3-CBC,$iv\r\n" . + "\r\n" . + chunk_split(base64_encode($des->encrypt($RSAPrivateKey)), 64) . + '-----END RSA PRIVATE KEY-----'; + } else { + $RSAPrivateKey = "-----BEGIN RSA PRIVATE KEY-----\r\n" . + chunk_split(base64_encode($RSAPrivateKey), 64) . + '-----END RSA PRIVATE KEY-----'; + } + + return $RSAPrivateKey; + } + } + + /** + * Convert a public key to the appropriate format + * + * @access private + * @see setPublicKeyFormat() + * @param String $RSAPrivateKey + * @return String + */ + function _convertPublicKey($n, $e) + { + $modulus = $n->toBytes(true); + $publicExponent = $e->toBytes(true); + + switch ($this->publicKeyFormat) { + case CRYPT_RSA_PUBLIC_FORMAT_RAW: + return array('e' => $e->copy(), 'n' => $n->copy()); + case CRYPT_RSA_PUBLIC_FORMAT_XML: + return "\r\n" . + ' ' . base64_encode($modulus) . "\r\n" . + ' ' . base64_encode($publicExponent) . "\r\n" . + ''; + break; + case CRYPT_RSA_PUBLIC_FORMAT_OPENSSH: + // from : + // string "ssh-rsa" + // mpint e + // mpint n + $RSAPublicKey = pack('Na*Na*Na*', strlen('ssh-rsa'), 'ssh-rsa', strlen($publicExponent), $publicExponent, strlen($modulus), $modulus); + $RSAPublicKey = 'ssh-rsa ' . base64_encode($RSAPublicKey) . ' ' . $this->comment; + + return $RSAPublicKey; + default: // eg. CRYPT_RSA_PUBLIC_FORMAT_PKCS1_RAW or CRYPT_RSA_PUBLIC_FORMAT_PKCS1 + // from : + // RSAPublicKey ::= SEQUENCE { + // modulus INTEGER, -- n + // publicExponent INTEGER -- e + // } + $components = array( + 'modulus' => pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($modulus)), $modulus), + 'publicExponent' => pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($publicExponent)), $publicExponent) + ); + + $RSAPublicKey = pack('Ca*a*a*', + CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($components['modulus']) + strlen($components['publicExponent'])), + $components['modulus'], $components['publicExponent'] + ); + + if ($this->publicKeyFormat == CRYPT_RSA_PUBLIC_FORMAT_PKCS1) { + // sequence(oid(1.2.840.113549.1.1.1), null)) = rsaEncryption. + $rsaOID = pack('H*', '300d06092a864886f70d0101010500'); // hex version of MA0GCSqGSIb3DQEBAQUA + $RSAPublicKey = chr(0) . $RSAPublicKey; + $RSAPublicKey = chr(3) . $this->_encodeLength(strlen($RSAPublicKey)) . $RSAPublicKey; + + $RSAPublicKey = pack('Ca*a*', + CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($rsaOID . $RSAPublicKey)), $rsaOID . $RSAPublicKey + ); + } + + $RSAPublicKey = "-----BEGIN PUBLIC KEY-----\r\n" . + chunk_split(base64_encode($RSAPublicKey), 64) . + '-----END PUBLIC KEY-----'; + + return $RSAPublicKey; + } + } + + /** + * Break a public or private key down into its constituant components + * + * @access private + * @see _convertPublicKey() + * @see _convertPrivateKey() + * @param String $key + * @param Integer $type + * @return Array + */ + function _parseKey($key, $type) + { + if ($type != CRYPT_RSA_PUBLIC_FORMAT_RAW && !is_string($key)) { + return false; + } + + switch ($type) { + case CRYPT_RSA_PUBLIC_FORMAT_RAW: + if (!is_array($key)) { + return false; + } + $components = array(); + switch (true) { + case isset($key['e']): + $components['publicExponent'] = $key['e']->copy(); + break; + case isset($key['exponent']): + $components['publicExponent'] = $key['exponent']->copy(); + break; + case isset($key['publicExponent']): + $components['publicExponent'] = $key['publicExponent']->copy(); + break; + case isset($key[0]): + $components['publicExponent'] = $key[0]->copy(); + } + switch (true) { + case isset($key['n']): + $components['modulus'] = $key['n']->copy(); + break; + case isset($key['modulo']): + $components['modulus'] = $key['modulo']->copy(); + break; + case isset($key['modulus']): + $components['modulus'] = $key['modulus']->copy(); + break; + case isset($key[1]): + $components['modulus'] = $key[1]->copy(); + } + return isset($components['modulus']) && isset($components['publicExponent']) ? $components : false; + case CRYPT_RSA_PRIVATE_FORMAT_PKCS1: + case CRYPT_RSA_PUBLIC_FORMAT_PKCS1: + /* Although PKCS#1 proposes a format that public and private keys can use, encrypting them is + "outside the scope" of PKCS#1. PKCS#1 then refers you to PKCS#12 and PKCS#15 if you're wanting to + protect private keys, however, that's not what OpenSSL* does. OpenSSL protects private keys by adding + two new "fields" to the key - DEK-Info and Proc-Type. These fields are discussed here: + + http://tools.ietf.org/html/rfc1421#section-4.6.1.1 + http://tools.ietf.org/html/rfc1421#section-4.6.1.3 + + DES-EDE3-CBC as an algorithm, however, is not discussed anywhere, near as I can tell. + DES-CBC and DES-EDE are discussed in RFC1423, however, DES-EDE3-CBC isn't, nor is its key derivation + function. As is, the definitive authority on this encoding scheme isn't the IETF but rather OpenSSL's + own implementation. ie. the implementation *is* the standard and any bugs that may exist in that + implementation are part of the standard, as well. + + * OpenSSL is the de facto standard. It's utilized by OpenSSH and other projects */ + if (preg_match('#DEK-Info: (.+),(.+)#', $key, $matches)) { + $iv = pack('H*', trim($matches[2])); + $symkey = pack('H*', md5($this->password . substr($iv, 0, 8))); // symkey is short for symmetric key + $symkey.= pack('H*', md5($symkey . $this->password . substr($iv, 0, 8))); + // remove the Proc-Type / DEK-Info sections as they're no longer needed + $key = preg_replace('#^(?:Proc-Type|DEK-Info): .*#m', '', $key); + $ciphertext = $this->_extractBER($key); + if ($ciphertext === false) { + $ciphertext = $key; + } + switch ($matches[1]) { + case 'AES-256-CBC': + if (!class_exists('Crypt_AES')) { + include_once 'Crypt/AES.php'; + } + $crypto = new Crypt_AES(); + break; + case 'AES-128-CBC': + if (!class_exists('Crypt_AES')) { + include_once 'Crypt/AES.php'; + } + $symkey = substr($symkey, 0, 16); + $crypto = new Crypt_AES(); + break; + case 'DES-EDE3-CFB': + if (!class_exists('Crypt_TripleDES')) { + include_once 'Crypt/TripleDES.php'; + } + $crypto = new Crypt_TripleDES(CRYPT_DES_MODE_CFB); + break; + case 'DES-EDE3-CBC': + if (!class_exists('Crypt_TripleDES')) { + include_once 'Crypt/TripleDES.php'; + } + $symkey = substr($symkey, 0, 24); + $crypto = new Crypt_TripleDES(); + break; + case 'DES-CBC': + if (!class_exists('Crypt_DES')) { + include_once 'Crypt/DES.php'; + } + $crypto = new Crypt_DES(); + break; + default: + return false; + } + $crypto->setKey($symkey); + $crypto->setIV($iv); + $decoded = $crypto->decrypt($ciphertext); + } else { + $decoded = $this->_extractBER($key); + } + + if ($decoded !== false) { + $key = $decoded; + } + + $components = array(); + + if (ord($this->_string_shift($key)) != CRYPT_RSA_ASN1_SEQUENCE) { + return false; + } + if ($this->_decodeLength($key) != strlen($key)) { + return false; + } + + $tag = ord($this->_string_shift($key)); + /* intended for keys for which OpenSSL's asn1parse returns the following: + + 0:d=0 hl=4 l= 631 cons: SEQUENCE + 4:d=1 hl=2 l= 1 prim: INTEGER :00 + 7:d=1 hl=2 l= 13 cons: SEQUENCE + 9:d=2 hl=2 l= 9 prim: OBJECT :rsaEncryption + 20:d=2 hl=2 l= 0 prim: NULL + 22:d=1 hl=4 l= 609 prim: OCTET STRING */ + + if ($tag == CRYPT_RSA_ASN1_INTEGER && substr($key, 0, 3) == "\x01\x00\x30") { + $this->_string_shift($key, 3); + $tag = CRYPT_RSA_ASN1_SEQUENCE; + } + + if ($tag == CRYPT_RSA_ASN1_SEQUENCE) { + /* intended for keys for which OpenSSL's asn1parse returns the following: + + 0:d=0 hl=4 l= 290 cons: SEQUENCE + 4:d=1 hl=2 l= 13 cons: SEQUENCE + 6:d=2 hl=2 l= 9 prim: OBJECT :rsaEncryption + 17:d=2 hl=2 l= 0 prim: NULL + 19:d=1 hl=4 l= 271 prim: BIT STRING */ + $this->_string_shift($key, $this->_decodeLength($key)); + $tag = ord($this->_string_shift($key)); // skip over the BIT STRING / OCTET STRING tag + $this->_decodeLength($key); // skip over the BIT STRING / OCTET STRING length + // "The initial octet shall encode, as an unsigned binary integer wtih bit 1 as the least significant bit, the number of + // unused bits in the final subsequent octet. The number shall be in the range zero to seven." + // -- http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf (section 8.6.2.2) + if ($tag == CRYPT_RSA_ASN1_BITSTRING) { + $this->_string_shift($key); + } + if (ord($this->_string_shift($key)) != CRYPT_RSA_ASN1_SEQUENCE) { + return false; + } + if ($this->_decodeLength($key) != strlen($key)) { + return false; + } + $tag = ord($this->_string_shift($key)); + } + if ($tag != CRYPT_RSA_ASN1_INTEGER) { + return false; + } + + $length = $this->_decodeLength($key); + $temp = $this->_string_shift($key, $length); + if (strlen($temp) != 1 || ord($temp) > 2) { + $components['modulus'] = new Math_BigInteger($temp, 256); + $this->_string_shift($key); // skip over CRYPT_RSA_ASN1_INTEGER + $length = $this->_decodeLength($key); + $components[$type == CRYPT_RSA_PUBLIC_FORMAT_PKCS1 ? 'publicExponent' : 'privateExponent'] = new Math_BigInteger($this->_string_shift($key, $length), 256); + + return $components; + } + if (ord($this->_string_shift($key)) != CRYPT_RSA_ASN1_INTEGER) { + return false; + } + $length = $this->_decodeLength($key); + $components['modulus'] = new Math_BigInteger($this->_string_shift($key, $length), 256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['publicExponent'] = new Math_BigInteger($this->_string_shift($key, $length), 256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['privateExponent'] = new Math_BigInteger($this->_string_shift($key, $length), 256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['primes'] = array(1 => new Math_BigInteger($this->_string_shift($key, $length), 256)); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['primes'][] = new Math_BigInteger($this->_string_shift($key, $length), 256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['exponents'] = array(1 => new Math_BigInteger($this->_string_shift($key, $length), 256)); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['exponents'][] = new Math_BigInteger($this->_string_shift($key, $length), 256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['coefficients'] = array(2 => new Math_BigInteger($this->_string_shift($key, $length), 256)); + + if (!empty($key)) { + if (ord($this->_string_shift($key)) != CRYPT_RSA_ASN1_SEQUENCE) { + return false; + } + $this->_decodeLength($key); + while (!empty($key)) { + if (ord($this->_string_shift($key)) != CRYPT_RSA_ASN1_SEQUENCE) { + return false; + } + $this->_decodeLength($key); + $key = substr($key, 1); + $length = $this->_decodeLength($key); + $components['primes'][] = new Math_BigInteger($this->_string_shift($key, $length), 256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['exponents'][] = new Math_BigInteger($this->_string_shift($key, $length), 256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['coefficients'][] = new Math_BigInteger($this->_string_shift($key, $length), 256); + } + } + + return $components; + case CRYPT_RSA_PUBLIC_FORMAT_OPENSSH: + $parts = explode(' ', $key, 3); + + $key = isset($parts[1]) ? base64_decode($parts[1]) : false; + if ($key === false) { + return false; + } + + $comment = isset($parts[2]) ? $parts[2] : false; + + $cleanup = substr($key, 0, 11) == "\0\0\0\7ssh-rsa"; + + if (strlen($key) <= 4) { + return false; + } + extract(unpack('Nlength', $this->_string_shift($key, 4))); + $publicExponent = new Math_BigInteger($this->_string_shift($key, $length), -256); + if (strlen($key) <= 4) { + return false; + } + extract(unpack('Nlength', $this->_string_shift($key, 4))); + $modulus = new Math_BigInteger($this->_string_shift($key, $length), -256); + + if ($cleanup && strlen($key)) { + if (strlen($key) <= 4) { + return false; + } + extract(unpack('Nlength', $this->_string_shift($key, 4))); + $realModulus = new Math_BigInteger($this->_string_shift($key, $length), -256); + return strlen($key) ? false : array( + 'modulus' => $realModulus, + 'publicExponent' => $modulus, + 'comment' => $comment + ); + } else { + return strlen($key) ? false : array( + 'modulus' => $modulus, + 'publicExponent' => $publicExponent, + 'comment' => $comment + ); + } + // http://www.w3.org/TR/xmldsig-core/#sec-RSAKeyValue + // http://en.wikipedia.org/wiki/XML_Signature + case CRYPT_RSA_PRIVATE_FORMAT_XML: + case CRYPT_RSA_PUBLIC_FORMAT_XML: + $this->components = array(); + + $xml = xml_parser_create('UTF-8'); + xml_set_object($xml, $this); + xml_set_element_handler($xml, '_start_element_handler', '_stop_element_handler'); + xml_set_character_data_handler($xml, '_data_handler'); + // add to account for "dangling" tags like ... that are sometimes added + if (!xml_parse($xml, '' . $key . '')) { + return false; + } + + return isset($this->components['modulus']) && isset($this->components['publicExponent']) ? $this->components : false; + // from PuTTY's SSHPUBK.C + case CRYPT_RSA_PRIVATE_FORMAT_PUTTY: + $components = array(); + $key = preg_split('#\r\n|\r|\n#', $key); + $type = trim(preg_replace('#PuTTY-User-Key-File-2: (.+)#', '$1', $key[0])); + if ($type != 'ssh-rsa') { + return false; + } + $encryption = trim(preg_replace('#Encryption: (.+)#', '$1', $key[1])); + $comment = trim(preg_replace('#Comment: (.+)#', '$1', $key[2])); + + $publicLength = trim(preg_replace('#Public-Lines: (\d+)#', '$1', $key[3])); + $public = base64_decode(implode('', array_map('trim', array_slice($key, 4, $publicLength)))); + $public = substr($public, 11); + extract(unpack('Nlength', $this->_string_shift($public, 4))); + $components['publicExponent'] = new Math_BigInteger($this->_string_shift($public, $length), -256); + extract(unpack('Nlength', $this->_string_shift($public, 4))); + $components['modulus'] = new Math_BigInteger($this->_string_shift($public, $length), -256); + + $privateLength = trim(preg_replace('#Private-Lines: (\d+)#', '$1', $key[$publicLength + 4])); + $private = base64_decode(implode('', array_map('trim', array_slice($key, $publicLength + 5, $privateLength)))); + + switch ($encryption) { + case 'aes256-cbc': + if (!class_exists('Crypt_AES')) { + include_once 'Crypt/AES.php'; + } + $symkey = ''; + $sequence = 0; + while (strlen($symkey) < 32) { + $temp = pack('Na*', $sequence++, $this->password); + $symkey.= pack('H*', sha1($temp)); + } + $symkey = substr($symkey, 0, 32); + $crypto = new Crypt_AES(); + } + + if ($encryption != 'none') { + $crypto->setKey($symkey); + $crypto->disablePadding(); + $private = $crypto->decrypt($private); + if ($private === false) { + return false; + } + } + + extract(unpack('Nlength', $this->_string_shift($private, 4))); + if (strlen($private) < $length) { + return false; + } + $components['privateExponent'] = new Math_BigInteger($this->_string_shift($private, $length), -256); + extract(unpack('Nlength', $this->_string_shift($private, 4))); + if (strlen($private) < $length) { + return false; + } + $components['primes'] = array(1 => new Math_BigInteger($this->_string_shift($private, $length), -256)); + extract(unpack('Nlength', $this->_string_shift($private, 4))); + if (strlen($private) < $length) { + return false; + } + $components['primes'][] = new Math_BigInteger($this->_string_shift($private, $length), -256); + + $temp = $components['primes'][1]->subtract($this->one); + $components['exponents'] = array(1 => $components['publicExponent']->modInverse($temp)); + $temp = $components['primes'][2]->subtract($this->one); + $components['exponents'][] = $components['publicExponent']->modInverse($temp); + + extract(unpack('Nlength', $this->_string_shift($private, 4))); + if (strlen($private) < $length) { + return false; + } + $components['coefficients'] = array(2 => new Math_BigInteger($this->_string_shift($private, $length), -256)); + + return $components; + } + } + + /** + * Returns the key size + * + * More specifically, this returns the size of the modulo in bits. + * + * @access public + * @return Integer + */ + function getSize() + { + return !isset($this->modulus) ? 0 : strlen($this->modulus->toBits()); + } + + /** + * Start Element Handler + * + * Called by xml_set_element_handler() + * + * @access private + * @param Resource $parser + * @param String $name + * @param Array $attribs + */ + function _start_element_handler($parser, $name, $attribs) + { + //$name = strtoupper($name); + switch ($name) { + case 'MODULUS': + $this->current = &$this->components['modulus']; + break; + case 'EXPONENT': + $this->current = &$this->components['publicExponent']; + break; + case 'P': + $this->current = &$this->components['primes'][1]; + break; + case 'Q': + $this->current = &$this->components['primes'][2]; + break; + case 'DP': + $this->current = &$this->components['exponents'][1]; + break; + case 'DQ': + $this->current = &$this->components['exponents'][2]; + break; + case 'INVERSEQ': + $this->current = &$this->components['coefficients'][2]; + break; + case 'D': + $this->current = &$this->components['privateExponent']; + } + $this->current = ''; + } + + /** + * Stop Element Handler + * + * Called by xml_set_element_handler() + * + * @access private + * @param Resource $parser + * @param String $name + */ + function _stop_element_handler($parser, $name) + { + if (isset($this->current)) { + $this->current = new Math_BigInteger(base64_decode($this->current), 256); + unset($this->current); + } + } + + /** + * Data Handler + * + * Called by xml_set_character_data_handler() + * + * @access private + * @param Resource $parser + * @param String $data + */ + function _data_handler($parser, $data) + { + if (!isset($this->current) || is_object($this->current)) { + return; + } + $this->current.= trim($data); + } + + /** + * Loads a public or private key + * + * Returns true on success and false on failure (ie. an incorrect password was provided or the key was malformed) + * + * @access public + * @param String $key + * @param Integer $type optional + */ + function loadKey($key, $type = false) + { + if (is_object($key) && strtolower(get_class($key)) == 'crypt_rsa') { + $this->privateKeyFormat = $key->privateKeyFormat; + $this->publicKeyFormat = $key->publicKeyFormat; + $this->k = $key->k; + $this->hLen = $key->hLen; + $this->sLen = $key->sLen; + $this->mgfHLen = $key->mgfHLen; + $this->encryptionMode = $key->encryptionMode; + $this->signatureMode = $key->signatureMode; + $this->password = $key->password; + $this->configFile = $key->configFile; + $this->comment = $key->comment; + + if (is_object($key->hash)) { + $this->hash = new Crypt_Hash($key->hash->getHash()); + } + if (is_object($key->mgfHash)) { + $this->mgfHash = new Crypt_Hash($key->mgfHash->getHash()); + } + + if (is_object($key->modulus)) { + $this->modulus = $key->modulus->copy(); + } + if (is_object($key->exponent)) { + $this->exponent = $key->exponent->copy(); + } + if (is_object($key->publicExponent)) { + $this->publicExponent = $key->publicExponent->copy(); + } + + $this->primes = array(); + $this->exponents = array(); + $this->coefficients = array(); + + foreach ($this->primes as $prime) { + $this->primes[] = $prime->copy(); + } + foreach ($this->exponents as $exponent) { + $this->exponents[] = $exponent->copy(); + } + foreach ($this->coefficients as $coefficient) { + $this->coefficients[] = $coefficient->copy(); + } + + return true; + } + + if ($type === false) { + $types = array( + CRYPT_RSA_PUBLIC_FORMAT_RAW, + CRYPT_RSA_PRIVATE_FORMAT_PKCS1, + CRYPT_RSA_PRIVATE_FORMAT_XML, + CRYPT_RSA_PRIVATE_FORMAT_PUTTY, + CRYPT_RSA_PUBLIC_FORMAT_OPENSSH + ); + foreach ($types as $type) { + $components = $this->_parseKey($key, $type); + if ($components !== false) { + break; + } + } + + } else { + $components = $this->_parseKey($key, $type); + } + + if ($components === false) { + return false; + } + + if (isset($components['comment']) && $components['comment'] !== false) { + $this->comment = $components['comment']; + } + $this->modulus = $components['modulus']; + $this->k = strlen($this->modulus->toBytes()); + $this->exponent = isset($components['privateExponent']) ? $components['privateExponent'] : $components['publicExponent']; + if (isset($components['primes'])) { + $this->primes = $components['primes']; + $this->exponents = $components['exponents']; + $this->coefficients = $components['coefficients']; + $this->publicExponent = $components['publicExponent']; + } else { + $this->primes = array(); + $this->exponents = array(); + $this->coefficients = array(); + $this->publicExponent = false; + } + + return true; + } + + /** + * Sets the password + * + * Private keys can be encrypted with a password. To unset the password, pass in the empty string or false. + * Or rather, pass in $password such that empty($password) && !is_string($password) is true. + * + * @see createKey() + * @see loadKey() + * @access public + * @param String $password + */ + function setPassword($password = false) + { + $this->password = $password; + } + + /** + * Defines the public key + * + * Some private key formats define the public exponent and some don't. Those that don't define it are problematic when + * used in certain contexts. For example, in SSH-2, RSA authentication works by sending the public key along with a + * message signed by the private key to the server. The SSH-2 server looks the public key up in an index of public keys + * and if it's present then proceeds to verify the signature. Problem is, if your private key doesn't include the public + * exponent this won't work unless you manually add the public exponent. + * + * Do note that when a new key is loaded the index will be cleared. + * + * Returns true on success, false on failure + * + * @see getPublicKey() + * @access public + * @param String $key optional + * @param Integer $type optional + * @return Boolean + */ + function setPublicKey($key = false, $type = false) + { + // if a public key has already been loaded return false + if (!empty($this->publicExponent)) { + return false; + } + + if ($key === false && !empty($this->modulus)) { + $this->publicExponent = $this->exponent; + return true; + } + + if ($type === false) { + $types = array( + CRYPT_RSA_PUBLIC_FORMAT_RAW, + CRYPT_RSA_PUBLIC_FORMAT_PKCS1, + CRYPT_RSA_PUBLIC_FORMAT_XML, + CRYPT_RSA_PUBLIC_FORMAT_OPENSSH + ); + foreach ($types as $type) { + $components = $this->_parseKey($key, $type); + if ($components !== false) { + break; + } + } + } else { + $components = $this->_parseKey($key, $type); + } + + if ($components === false) { + return false; + } + + if (empty($this->modulus) || !$this->modulus->equals($components['modulus'])) { + $this->modulus = $components['modulus']; + $this->exponent = $this->publicExponent = $components['publicExponent']; + return true; + } + + $this->publicExponent = $components['publicExponent']; + + return true; + } + + /** + * Returns the public key + * + * The public key is only returned under two circumstances - if the private key had the public key embedded within it + * or if the public key was set via setPublicKey(). If the currently loaded key is supposed to be the public key this + * function won't return it since this library, for the most part, doesn't distinguish between public and private keys. + * + * @see getPublicKey() + * @access public + * @param String $key + * @param Integer $type optional + */ + function getPublicKey($type = CRYPT_RSA_PUBLIC_FORMAT_PKCS1) + { + if (empty($this->modulus) || empty($this->publicExponent)) { + return false; + } + + $oldFormat = $this->publicKeyFormat; + $this->publicKeyFormat = $type; + $temp = $this->_convertPublicKey($this->modulus, $this->publicExponent); + $this->publicKeyFormat = $oldFormat; + return $temp; + } + + /** + * Returns the private key + * + * The private key is only returned if the currently loaded key contains the constituent prime numbers. + * + * @see getPublicKey() + * @access public + * @param String $key + * @param Integer $type optional + */ + function getPrivateKey($type = CRYPT_RSA_PUBLIC_FORMAT_PKCS1) + { + if (empty($this->primes)) { + return false; + } + + $oldFormat = $this->privateKeyFormat; + $this->privateKeyFormat = $type; + $temp = $this->_convertPrivateKey($this->modulus, $this->publicExponent, $this->exponent, $this->primes, $this->exponents, $this->coefficients); + $this->privateKeyFormat = $oldFormat; + return $temp; + } + + /** + * Returns a minimalistic private key + * + * Returns the private key without the prime number constituants. Structurally identical to a public key that + * hasn't been set as the public key + * + * @see getPrivateKey() + * @access private + * @param String $key + * @param Integer $type optional + */ + function _getPrivatePublicKey($mode = CRYPT_RSA_PUBLIC_FORMAT_PKCS1) + { + if (empty($this->modulus) || empty($this->exponent)) { + return false; + } + + $oldFormat = $this->publicKeyFormat; + $this->publicKeyFormat = $mode; + $temp = $this->_convertPublicKey($this->modulus, $this->exponent); + $this->publicKeyFormat = $oldFormat; + return $temp; + } + + /** + * __toString() magic method + * + * @access public + */ + function __toString() + { + $key = $this->getPrivateKey($this->privateKeyFormat); + if ($key !== false) { + return $key; + } + $key = $this->_getPrivatePublicKey($this->publicKeyFormat); + return $key !== false ? $key : ''; + } + + /** + * __clone() magic method + * + * @access public + */ + function __clone() + { + $key = new Crypt_RSA(); + $key->loadKey($this); + return $key; + } + + /** + * Generates the smallest and largest numbers requiring $bits bits + * + * @access private + * @param Integer $bits + * @return Array + */ + function _generateMinMax($bits) + { + $bytes = $bits >> 3; + $min = str_repeat(chr(0), $bytes); + $max = str_repeat(chr(0xFF), $bytes); + $msb = $bits & 7; + if ($msb) { + $min = chr(1 << ($msb - 1)) . $min; + $max = chr((1 << $msb) - 1) . $max; + } else { + $min[0] = chr(0x80); + } + + return array( + 'min' => new Math_BigInteger($min, 256), + 'max' => new Math_BigInteger($max, 256) + ); + } + + /** + * DER-decode the length + * + * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4. See + * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 paragraph 8.1.3} for more information. + * + * @access private + * @param String $string + * @return Integer + */ + function _decodeLength(&$string) + { + $length = ord($this->_string_shift($string)); + if ( $length & 0x80 ) { // definite length, long form + $length&= 0x7F; + $temp = $this->_string_shift($string, $length); + list(, $length) = unpack('N', substr(str_pad($temp, 4, chr(0), STR_PAD_LEFT), -4)); + } + return $length; + } + + /** + * DER-encode the length + * + * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4. See + * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 paragraph 8.1.3} for more information. + * + * @access private + * @param Integer $length + * @return String + */ + function _encodeLength($length) + { + if ($length <= 0x7F) { + return chr($length); + } + + $temp = ltrim(pack('N', $length), chr(0)); + return pack('Ca*', 0x80 | strlen($temp), $temp); + } + + /** + * String Shift + * + * Inspired by array_shift + * + * @param String $string + * @param optional Integer $index + * @return String + * @access private + */ + function _string_shift(&$string, $index = 1) + { + $substr = substr($string, 0, $index); + $string = substr($string, $index); + return $substr; + } + + /** + * Determines the private key format + * + * @see createKey() + * @access public + * @param Integer $format + */ + function setPrivateKeyFormat($format) + { + $this->privateKeyFormat = $format; + } + + /** + * Determines the public key format + * + * @see createKey() + * @access public + * @param Integer $format + */ + function setPublicKeyFormat($format) + { + $this->publicKeyFormat = $format; + } + + /** + * Determines which hashing function should be used + * + * Used with signature production / verification and (if the encryption mode is CRYPT_RSA_ENCRYPTION_OAEP) encryption and + * decryption. If $hash isn't supported, sha1 is used. + * + * @access public + * @param String $hash + */ + function setHash($hash) + { + // Crypt_Hash supports algorithms that PKCS#1 doesn't support. md5-96 and sha1-96, for example. + switch ($hash) { + case 'md2': + case 'md5': + case 'sha1': + case 'sha256': + case 'sha384': + case 'sha512': + $this->hash = new Crypt_Hash($hash); + $this->hashName = $hash; + break; + default: + $this->hash = new Crypt_Hash('sha1'); + $this->hashName = 'sha1'; + } + $this->hLen = $this->hash->getLength(); + } + + /** + * Determines which hashing function should be used for the mask generation function + * + * The mask generation function is used by CRYPT_RSA_ENCRYPTION_OAEP and CRYPT_RSA_SIGNATURE_PSS and although it's + * best if Hash and MGFHash are set to the same thing this is not a requirement. + * + * @access public + * @param String $hash + */ + function setMGFHash($hash) + { + // Crypt_Hash supports algorithms that PKCS#1 doesn't support. md5-96 and sha1-96, for example. + switch ($hash) { + case 'md2': + case 'md5': + case 'sha1': + case 'sha256': + case 'sha384': + case 'sha512': + $this->mgfHash = new Crypt_Hash($hash); + break; + default: + $this->mgfHash = new Crypt_Hash('sha1'); + } + $this->mgfHLen = $this->mgfHash->getLength(); + } + + /** + * Determines the salt length + * + * To quote from {@link http://tools.ietf.org/html/rfc3447#page-38 RFC3447#page-38}: + * + * Typical salt lengths in octets are hLen (the length of the output + * of the hash function Hash) and 0. + * + * @access public + * @param Integer $format + */ + function setSaltLength($sLen) + { + $this->sLen = $sLen; + } + + /** + * Integer-to-Octet-String primitive + * + * See {@link http://tools.ietf.org/html/rfc3447#section-4.1 RFC3447#section-4.1}. + * + * @access private + * @param Math_BigInteger $x + * @param Integer $xLen + * @return String + */ + function _i2osp($x, $xLen) + { + $x = $x->toBytes(); + if (strlen($x) > $xLen) { + user_error('Integer too large'); + return false; + } + return str_pad($x, $xLen, chr(0), STR_PAD_LEFT); + } + + /** + * Octet-String-to-Integer primitive + * + * See {@link http://tools.ietf.org/html/rfc3447#section-4.2 RFC3447#section-4.2}. + * + * @access private + * @param String $x + * @return Math_BigInteger + */ + function _os2ip($x) + { + return new Math_BigInteger($x, 256); + } + + /** + * Exponentiate with or without Chinese Remainder Theorem + * + * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.1 RFC3447#section-5.1.2}. + * + * @access private + * @param Math_BigInteger $x + * @return Math_BigInteger + */ + function _exponentiate($x) + { + if (empty($this->primes) || empty($this->coefficients) || empty($this->exponents)) { + return $x->modPow($this->exponent, $this->modulus); + } + + $num_primes = count($this->primes); + + if (defined('CRYPT_RSA_DISABLE_BLINDING')) { + $m_i = array( + 1 => $x->modPow($this->exponents[1], $this->primes[1]), + 2 => $x->modPow($this->exponents[2], $this->primes[2]) + ); + $h = $m_i[1]->subtract($m_i[2]); + $h = $h->multiply($this->coefficients[2]); + list(, $h) = $h->divide($this->primes[1]); + $m = $m_i[2]->add($h->multiply($this->primes[2])); + + $r = $this->primes[1]; + for ($i = 3; $i <= $num_primes; $i++) { + $m_i = $x->modPow($this->exponents[$i], $this->primes[$i]); + + $r = $r->multiply($this->primes[$i - 1]); + + $h = $m_i->subtract($m); + $h = $h->multiply($this->coefficients[$i]); + list(, $h) = $h->divide($this->primes[$i]); + + $m = $m->add($r->multiply($h)); + } + } else { + $smallest = $this->primes[1]; + for ($i = 2; $i <= $num_primes; $i++) { + if ($smallest->compare($this->primes[$i]) > 0) { + $smallest = $this->primes[$i]; + } + } + + $one = new Math_BigInteger(1); + + $r = $one->random($one, $smallest->subtract($one)); + + $m_i = array( + 1 => $this->_blind($x, $r, 1), + 2 => $this->_blind($x, $r, 2) + ); + $h = $m_i[1]->subtract($m_i[2]); + $h = $h->multiply($this->coefficients[2]); + list(, $h) = $h->divide($this->primes[1]); + $m = $m_i[2]->add($h->multiply($this->primes[2])); + + $r = $this->primes[1]; + for ($i = 3; $i <= $num_primes; $i++) { + $m_i = $this->_blind($x, $r, $i); + + $r = $r->multiply($this->primes[$i - 1]); + + $h = $m_i->subtract($m); + $h = $h->multiply($this->coefficients[$i]); + list(, $h) = $h->divide($this->primes[$i]); + + $m = $m->add($r->multiply($h)); + } + } + + return $m; + } + + /** + * Performs RSA Blinding + * + * Protects against timing attacks by employing RSA Blinding. + * Returns $x->modPow($this->exponents[$i], $this->primes[$i]) + * + * @access private + * @param Math_BigInteger $x + * @param Math_BigInteger $r + * @param Integer $i + * @return Math_BigInteger + */ + function _blind($x, $r, $i) + { + $x = $x->multiply($r->modPow($this->publicExponent, $this->primes[$i])); + $x = $x->modPow($this->exponents[$i], $this->primes[$i]); + + $r = $r->modInverse($this->primes[$i]); + $x = $x->multiply($r); + list(, $x) = $x->divide($this->primes[$i]); + + return $x; + } + + /** + * Performs blinded RSA equality testing + * + * Protects against a particular type of timing attack described. + * + * See {@link http://codahale.com/a-lesson-in-timing-attacks/ A Lesson In Timing Attacks (or, Don't use MessageDigest.isEquals)} + * + * Thanks for the heads up singpolyma! + * + * @access private + * @param String $x + * @param String $y + * @return Boolean + */ + function _equals($x, $y) + { + if (strlen($x) != strlen($y)) { + return false; + } + + $result = 0; + for ($i = 0; $i < strlen($x); $i++) { + $result |= ord($x[$i]) ^ ord($y[$i]); + } + + return $result == 0; + } + + /** + * RSAEP + * + * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.1 RFC3447#section-5.1.1}. + * + * @access private + * @param Math_BigInteger $m + * @return Math_BigInteger + */ + function _rsaep($m) + { + if ($m->compare($this->zero) < 0 || $m->compare($this->modulus) > 0) { + user_error('Message representative out of range'); + return false; + } + return $this->_exponentiate($m); + } + + /** + * RSADP + * + * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.2 RFC3447#section-5.1.2}. + * + * @access private + * @param Math_BigInteger $c + * @return Math_BigInteger + */ + function _rsadp($c) + { + if ($c->compare($this->zero) < 0 || $c->compare($this->modulus) > 0) { + user_error('Ciphertext representative out of range'); + return false; + } + return $this->_exponentiate($c); + } + + /** + * RSASP1 + * + * See {@link http://tools.ietf.org/html/rfc3447#section-5.2.1 RFC3447#section-5.2.1}. + * + * @access private + * @param Math_BigInteger $m + * @return Math_BigInteger + */ + function _rsasp1($m) + { + if ($m->compare($this->zero) < 0 || $m->compare($this->modulus) > 0) { + user_error('Message representative out of range'); + return false; + } + return $this->_exponentiate($m); + } + + /** + * RSAVP1 + * + * See {@link http://tools.ietf.org/html/rfc3447#section-5.2.2 RFC3447#section-5.2.2}. + * + * @access private + * @param Math_BigInteger $s + * @return Math_BigInteger + */ + function _rsavp1($s) + { + if ($s->compare($this->zero) < 0 || $s->compare($this->modulus) > 0) { + user_error('Signature representative out of range'); + return false; + } + return $this->_exponentiate($s); + } + + /** + * MGF1 + * + * See {@link http://tools.ietf.org/html/rfc3447#appendix-B.2.1 RFC3447#appendix-B.2.1}. + * + * @access private + * @param String $mgfSeed + * @param Integer $mgfLen + * @return String + */ + function _mgf1($mgfSeed, $maskLen) + { + // if $maskLen would yield strings larger than 4GB, PKCS#1 suggests a "Mask too long" error be output. + + $t = ''; + $count = ceil($maskLen / $this->mgfHLen); + for ($i = 0; $i < $count; $i++) { + $c = pack('N', $i); + $t.= $this->mgfHash->hash($mgfSeed . $c); + } + + return substr($t, 0, $maskLen); + } + + /** + * RSAES-OAEP-ENCRYPT + * + * See {@link http://tools.ietf.org/html/rfc3447#section-7.1.1 RFC3447#section-7.1.1} and + * {http://en.wikipedia.org/wiki/Optimal_Asymmetric_Encryption_Padding OAES}. + * + * @access private + * @param String $m + * @param String $l + * @return String + */ + function _rsaes_oaep_encrypt($m, $l = '') + { + $mLen = strlen($m); + + // Length checking + + // if $l is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error + // be output. + + if ($mLen > $this->k - 2 * $this->hLen - 2) { + user_error('Message too long'); + return false; + } + + // EME-OAEP encoding + + $lHash = $this->hash->hash($l); + $ps = str_repeat(chr(0), $this->k - $mLen - 2 * $this->hLen - 2); + $db = $lHash . $ps . chr(1) . $m; + $seed = crypt_random_string($this->hLen); + $dbMask = $this->_mgf1($seed, $this->k - $this->hLen - 1); + $maskedDB = $db ^ $dbMask; + $seedMask = $this->_mgf1($maskedDB, $this->hLen); + $maskedSeed = $seed ^ $seedMask; + $em = chr(0) . $maskedSeed . $maskedDB; + + // RSA encryption + + $m = $this->_os2ip($em); + $c = $this->_rsaep($m); + $c = $this->_i2osp($c, $this->k); + + // Output the ciphertext C + + return $c; + } + + /** + * RSAES-OAEP-DECRYPT + * + * See {@link http://tools.ietf.org/html/rfc3447#section-7.1.2 RFC3447#section-7.1.2}. The fact that the error + * messages aren't distinguishable from one another hinders debugging, but, to quote from RFC3447#section-7.1.2: + * + * Note. Care must be taken to ensure that an opponent cannot + * distinguish the different error conditions in Step 3.g, whether by + * error message or timing, or, more generally, learn partial + * information about the encoded message EM. Otherwise an opponent may + * be able to obtain useful information about the decryption of the + * ciphertext C, leading to a chosen-ciphertext attack such as the one + * observed by Manger [36]. + * + * As for $l... to quote from {@link http://tools.ietf.org/html/rfc3447#page-17 RFC3447#page-17}: + * + * Both the encryption and the decryption operations of RSAES-OAEP take + * the value of a label L as input. In this version of PKCS #1, L is + * the empty string; other uses of the label are outside the scope of + * this document. + * + * @access private + * @param String $c + * @param String $l + * @return String + */ + function _rsaes_oaep_decrypt($c, $l = '') + { + // Length checking + + // if $l is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error + // be output. + + if (strlen($c) != $this->k || $this->k < 2 * $this->hLen + 2) { + user_error('Decryption error'); + return false; + } + + // RSA decryption + + $c = $this->_os2ip($c); + $m = $this->_rsadp($c); + if ($m === false) { + user_error('Decryption error'); + return false; + } + $em = $this->_i2osp($m, $this->k); + + // EME-OAEP decoding + + $lHash = $this->hash->hash($l); + $y = ord($em[0]); + $maskedSeed = substr($em, 1, $this->hLen); + $maskedDB = substr($em, $this->hLen + 1); + $seedMask = $this->_mgf1($maskedDB, $this->hLen); + $seed = $maskedSeed ^ $seedMask; + $dbMask = $this->_mgf1($seed, $this->k - $this->hLen - 1); + $db = $maskedDB ^ $dbMask; + $lHash2 = substr($db, 0, $this->hLen); + $m = substr($db, $this->hLen); + if ($lHash != $lHash2) { + user_error('Decryption error'); + return false; + } + $m = ltrim($m, chr(0)); + if (ord($m[0]) != 1) { + user_error('Decryption error'); + return false; + } + + // Output the message M + + return substr($m, 1); + } + + /** + * RSAES-PKCS1-V1_5-ENCRYPT + * + * See {@link http://tools.ietf.org/html/rfc3447#section-7.2.1 RFC3447#section-7.2.1}. + * + * @access private + * @param String $m + * @return String + */ + function _rsaes_pkcs1_v1_5_encrypt($m) + { + $mLen = strlen($m); + + // Length checking + + if ($mLen > $this->k - 11) { + user_error('Message too long'); + return false; + } + + // EME-PKCS1-v1_5 encoding + + $psLen = $this->k - $mLen - 3; + $ps = ''; + while (strlen($ps) != $psLen) { + $temp = crypt_random_string($psLen - strlen($ps)); + $temp = str_replace("\x00", '', $temp); + $ps.= $temp; + } + $type = 2; + // see the comments of _rsaes_pkcs1_v1_5_decrypt() to understand why this is being done + if (defined('CRYPT_RSA_PKCS15_COMPAT') && (!isset($this->publicExponent) || $this->exponent !== $this->publicExponent)) { + $type = 1; + // "The padding string PS shall consist of k-3-||D|| octets. ... for block type 01, they shall have value FF" + $ps = str_repeat("\xFF", $psLen); + } + $em = chr(0) . chr($type) . $ps . chr(0) . $m; + + // RSA encryption + $m = $this->_os2ip($em); + $c = $this->_rsaep($m); + $c = $this->_i2osp($c, $this->k); + + // Output the ciphertext C + + return $c; + } + + /** + * RSAES-PKCS1-V1_5-DECRYPT + * + * See {@link http://tools.ietf.org/html/rfc3447#section-7.2.2 RFC3447#section-7.2.2}. + * + * For compatability purposes, this function departs slightly from the description given in RFC3447. + * The reason being that RFC2313#section-8.1 (PKCS#1 v1.5) states that ciphertext's encrypted by the + * private key should have the second byte set to either 0 or 1 and that ciphertext's encrypted by the + * public key should have the second byte set to 2. In RFC3447 (PKCS#1 v2.1), the second byte is supposed + * to be 2 regardless of which key is used. For compatability purposes, we'll just check to make sure the + * second byte is 2 or less. If it is, we'll accept the decrypted string as valid. + * + * As a consequence of this, a private key encrypted ciphertext produced with Crypt_RSA may not decrypt + * with a strictly PKCS#1 v1.5 compliant RSA implementation. Public key encrypted ciphertext's should but + * not private key encrypted ciphertext's. + * + * @access private + * @param String $c + * @return String + */ + function _rsaes_pkcs1_v1_5_decrypt($c) + { + // Length checking + + if (strlen($c) != $this->k) { // or if k < 11 + user_error('Decryption error'); + return false; + } + + // RSA decryption + + $c = $this->_os2ip($c); + $m = $this->_rsadp($c); + + if ($m === false) { + user_error('Decryption error'); + return false; + } + $em = $this->_i2osp($m, $this->k); + + // EME-PKCS1-v1_5 decoding + + if (ord($em[0]) != 0 || ord($em[1]) > 2) { + user_error('Decryption error'); + return false; + } + + $ps = substr($em, 2, strpos($em, chr(0), 2) - 2); + $m = substr($em, strlen($ps) + 3); + + if (strlen($ps) < 8) { + user_error('Decryption error'); + return false; + } + + // Output M + + return $m; + } + + /** + * EMSA-PSS-ENCODE + * + * See {@link http://tools.ietf.org/html/rfc3447#section-9.1.1 RFC3447#section-9.1.1}. + * + * @access private + * @param String $m + * @param Integer $emBits + */ + function _emsa_pss_encode($m, $emBits) + { + // if $m is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error + // be output. + + $emLen = ($emBits + 1) >> 3; // ie. ceil($emBits / 8) + $sLen = $this->sLen == false ? $this->hLen : $this->sLen; + + $mHash = $this->hash->hash($m); + if ($emLen < $this->hLen + $sLen + 2) { + user_error('Encoding error'); + return false; + } + + $salt = crypt_random_string($sLen); + $m2 = "\0\0\0\0\0\0\0\0" . $mHash . $salt; + $h = $this->hash->hash($m2); + $ps = str_repeat(chr(0), $emLen - $sLen - $this->hLen - 2); + $db = $ps . chr(1) . $salt; + $dbMask = $this->_mgf1($h, $emLen - $this->hLen - 1); + $maskedDB = $db ^ $dbMask; + $maskedDB[0] = ~chr(0xFF << ($emBits & 7)) & $maskedDB[0]; + $em = $maskedDB . $h . chr(0xBC); + + return $em; + } + + /** + * EMSA-PSS-VERIFY + * + * See {@link http://tools.ietf.org/html/rfc3447#section-9.1.2 RFC3447#section-9.1.2}. + * + * @access private + * @param String $m + * @param String $em + * @param Integer $emBits + * @return String + */ + function _emsa_pss_verify($m, $em, $emBits) + { + // if $m is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error + // be output. + + $emLen = ($emBits + 1) >> 3; // ie. ceil($emBits / 8); + $sLen = $this->sLen == false ? $this->hLen : $this->sLen; + + $mHash = $this->hash->hash($m); + if ($emLen < $this->hLen + $sLen + 2) { + return false; + } + + if ($em[strlen($em) - 1] != chr(0xBC)) { + return false; + } + + $maskedDB = substr($em, 0, -$this->hLen - 1); + $h = substr($em, -$this->hLen - 1, $this->hLen); + $temp = chr(0xFF << ($emBits & 7)); + if ((~$maskedDB[0] & $temp) != $temp) { + return false; + } + $dbMask = $this->_mgf1($h, $emLen - $this->hLen - 1); + $db = $maskedDB ^ $dbMask; + $db[0] = ~chr(0xFF << ($emBits & 7)) & $db[0]; + $temp = $emLen - $this->hLen - $sLen - 2; + if (substr($db, 0, $temp) != str_repeat(chr(0), $temp) || ord($db[$temp]) != 1) { + return false; + } + $salt = substr($db, $temp + 1); // should be $sLen long + $m2 = "\0\0\0\0\0\0\0\0" . $mHash . $salt; + $h2 = $this->hash->hash($m2); + return $this->_equals($h, $h2); + } + + /** + * RSASSA-PSS-SIGN + * + * See {@link http://tools.ietf.org/html/rfc3447#section-8.1.1 RFC3447#section-8.1.1}. + * + * @access private + * @param String $m + * @return String + */ + function _rsassa_pss_sign($m) + { + // EMSA-PSS encoding + + $em = $this->_emsa_pss_encode($m, 8 * $this->k - 1); + + // RSA signature + + $m = $this->_os2ip($em); + $s = $this->_rsasp1($m); + $s = $this->_i2osp($s, $this->k); + + // Output the signature S + + return $s; + } + + /** + * RSASSA-PSS-VERIFY + * + * See {@link http://tools.ietf.org/html/rfc3447#section-8.1.2 RFC3447#section-8.1.2}. + * + * @access private + * @param String $m + * @param String $s + * @return String + */ + function _rsassa_pss_verify($m, $s) + { + // Length checking + + if (strlen($s) != $this->k) { + user_error('Invalid signature'); + return false; + } + + // RSA verification + + $modBits = 8 * $this->k; + + $s2 = $this->_os2ip($s); + $m2 = $this->_rsavp1($s2); + if ($m2 === false) { + user_error('Invalid signature'); + return false; + } + $em = $this->_i2osp($m2, $modBits >> 3); + if ($em === false) { + user_error('Invalid signature'); + return false; + } + + // EMSA-PSS verification + + return $this->_emsa_pss_verify($m, $em, $modBits - 1); + } + + /** + * EMSA-PKCS1-V1_5-ENCODE + * + * See {@link http://tools.ietf.org/html/rfc3447#section-9.2 RFC3447#section-9.2}. + * + * @access private + * @param String $m + * @param Integer $emLen + * @return String + */ + function _emsa_pkcs1_v1_5_encode($m, $emLen) + { + $h = $this->hash->hash($m); + if ($h === false) { + return false; + } + + // see http://tools.ietf.org/html/rfc3447#page-43 + switch ($this->hashName) { + case 'md2': + $t = pack('H*', '3020300c06082a864886f70d020205000410'); + break; + case 'md5': + $t = pack('H*', '3020300c06082a864886f70d020505000410'); + break; + case 'sha1': + $t = pack('H*', '3021300906052b0e03021a05000414'); + break; + case 'sha256': + $t = pack('H*', '3031300d060960864801650304020105000420'); + break; + case 'sha384': + $t = pack('H*', '3041300d060960864801650304020205000430'); + break; + case 'sha512': + $t = pack('H*', '3051300d060960864801650304020305000440'); + } + $t.= $h; + $tLen = strlen($t); + + if ($emLen < $tLen + 11) { + user_error('Intended encoded message length too short'); + return false; + } + + $ps = str_repeat(chr(0xFF), $emLen - $tLen - 3); + + $em = "\0\1$ps\0$t"; + + return $em; + } + + /** + * RSASSA-PKCS1-V1_5-SIGN + * + * See {@link http://tools.ietf.org/html/rfc3447#section-8.2.1 RFC3447#section-8.2.1}. + * + * @access private + * @param String $m + * @return String + */ + function _rsassa_pkcs1_v1_5_sign($m) + { + // EMSA-PKCS1-v1_5 encoding + + $em = $this->_emsa_pkcs1_v1_5_encode($m, $this->k); + if ($em === false) { + user_error('RSA modulus too short'); + return false; + } + + // RSA signature + + $m = $this->_os2ip($em); + $s = $this->_rsasp1($m); + $s = $this->_i2osp($s, $this->k); + + // Output the signature S + + return $s; + } + + /** + * RSASSA-PKCS1-V1_5-VERIFY + * + * See {@link http://tools.ietf.org/html/rfc3447#section-8.2.2 RFC3447#section-8.2.2}. + * + * @access private + * @param String $m + * @return String + */ + function _rsassa_pkcs1_v1_5_verify($m, $s) + { + // Length checking + + if (strlen($s) != $this->k) { + user_error('Invalid signature'); + return false; + } + + // RSA verification + + $s = $this->_os2ip($s); + $m2 = $this->_rsavp1($s); + if ($m2 === false) { + user_error('Invalid signature'); + return false; + } + $em = $this->_i2osp($m2, $this->k); + if ($em === false) { + user_error('Invalid signature'); + return false; + } + + // EMSA-PKCS1-v1_5 encoding + + $em2 = $this->_emsa_pkcs1_v1_5_encode($m, $this->k); + if ($em2 === false) { + user_error('RSA modulus too short'); + return false; + } + + // Compare + return $this->_equals($em, $em2); + } + + /** + * Set Encryption Mode + * + * Valid values include CRYPT_RSA_ENCRYPTION_OAEP and CRYPT_RSA_ENCRYPTION_PKCS1. + * + * @access public + * @param Integer $mode + */ + function setEncryptionMode($mode) + { + $this->encryptionMode = $mode; + } + + /** + * Set Signature Mode + * + * Valid values include CRYPT_RSA_SIGNATURE_PSS and CRYPT_RSA_SIGNATURE_PKCS1 + * + * @access public + * @param Integer $mode + */ + function setSignatureMode($mode) + { + $this->signatureMode = $mode; + } + + /** + * Set public key comment. + * + * @access public + * @param String $comment + */ + function setComment($comment) + { + $this->comment = $comment; + } + + /** + * Get public key comment. + * + * @access public + * @return String + */ + function getComment() + { + return $this->comment; + } + + /** + * Encryption + * + * Both CRYPT_RSA_ENCRYPTION_OAEP and CRYPT_RSA_ENCRYPTION_PKCS1 both place limits on how long $plaintext can be. + * If $plaintext exceeds those limits it will be broken up so that it does and the resultant ciphertext's will + * be concatenated together. + * + * @see decrypt() + * @access public + * @param String $plaintext + * @return String + */ + function encrypt($plaintext) + { + switch ($this->encryptionMode) { + case CRYPT_RSA_ENCRYPTION_PKCS1: + $length = $this->k - 11; + if ($length <= 0) { + return false; + } + + $plaintext = str_split($plaintext, $length); + $ciphertext = ''; + foreach ($plaintext as $m) { + $ciphertext.= $this->_rsaes_pkcs1_v1_5_encrypt($m); + } + return $ciphertext; + //case CRYPT_RSA_ENCRYPTION_OAEP: + default: + $length = $this->k - 2 * $this->hLen - 2; + if ($length <= 0) { + return false; + } + + $plaintext = str_split($plaintext, $length); + $ciphertext = ''; + foreach ($plaintext as $m) { + $ciphertext.= $this->_rsaes_oaep_encrypt($m); + } + return $ciphertext; + } + } + + /** + * Decryption + * + * @see encrypt() + * @access public + * @param String $plaintext + * @return String + */ + function decrypt($ciphertext) + { + if ($this->k <= 0) { + return false; + } + + $ciphertext = str_split($ciphertext, $this->k); + $ciphertext[count($ciphertext) - 1] = str_pad($ciphertext[count($ciphertext) - 1], $this->k, chr(0), STR_PAD_LEFT); + + $plaintext = ''; + + switch ($this->encryptionMode) { + case CRYPT_RSA_ENCRYPTION_PKCS1: + $decrypt = '_rsaes_pkcs1_v1_5_decrypt'; + break; + //case CRYPT_RSA_ENCRYPTION_OAEP: + default: + $decrypt = '_rsaes_oaep_decrypt'; + } + + foreach ($ciphertext as $c) { + $temp = $this->$decrypt($c); + if ($temp === false) { + return false; + } + $plaintext.= $temp; + } + + return $plaintext; + } + + /** + * Create a signature + * + * @see verify() + * @access public + * @param String $message + * @return String + */ + function sign($message) + { + if (empty($this->modulus) || empty($this->exponent)) { + return false; + } + + switch ($this->signatureMode) { + case CRYPT_RSA_SIGNATURE_PKCS1: + return $this->_rsassa_pkcs1_v1_5_sign($message); + //case CRYPT_RSA_SIGNATURE_PSS: + default: + return $this->_rsassa_pss_sign($message); + } + } + + /** + * Verifies a signature + * + * @see sign() + * @access public + * @param String $message + * @param String $signature + * @return Boolean + */ + function verify($message, $signature) + { + if (empty($this->modulus) || empty($this->exponent)) { + return false; + } + + switch ($this->signatureMode) { + case CRYPT_RSA_SIGNATURE_PKCS1: + return $this->_rsassa_pkcs1_v1_5_verify($message, $signature); + //case CRYPT_RSA_SIGNATURE_PSS: + default: + return $this->_rsassa_pss_verify($message, $signature); + } + } + + /** + * Extract raw BER from Base64 encoding + * + * @access private + * @param String $str + * @return String + */ + function _extractBER($str) + { + /* X.509 certs are assumed to be base64 encoded but sometimes they'll have additional things in them + * above and beyond the ceritificate. + * ie. some may have the following preceding the -----BEGIN CERTIFICATE----- line: + * + * Bag Attributes + * localKeyID: 01 00 00 00 + * subject=/O=organization/OU=org unit/CN=common name + * issuer=/O=organization/CN=common name + */ + $temp = preg_replace('#.*?^-+[^-]+-+#ms', '', $str, 1); + // remove the -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- stuff + $temp = preg_replace('#-+[^-]+-+#', '', $temp); + // remove new lines + $temp = str_replace(array("\r", "\n", ' '), '', $temp); + $temp = preg_match('#^[a-zA-Z\d/+]*={0,2}$#', $temp) ? base64_decode($temp) : false; + return $temp != false ? $temp : $str; + } +} diff --git a/lam/lib/3rdParty/phpseclib/Crypt/Random.php b/lam/lib/3rdParty/phpseclib/Crypt/Random.php new file mode 100644 index 00000000..977ec797 --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/Crypt/Random.php @@ -0,0 +1,246 @@ + + * + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Crypt + * @package Crypt_Random + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @link http://phpseclib.sourceforge.net + */ + +/** + * "Is Windows" test + * + * @access private + */ +define('CRYPT_RANDOM_IS_WINDOWS', strtoupper(substr(PHP_OS, 0, 3)) === 'WIN'); + +/** + * Generate a random string. + * + * Although microoptimizations are generally discouraged as they impair readability this function is ripe with + * microoptimizations because this function has the potential of being called a huge number of times. + * eg. for RSA key generation. + * + * @param Integer $length + * @return String + * @access public + */ +function crypt_random_string($length) +{ + if (CRYPT_RANDOM_IS_WINDOWS) { + // method 1. prior to PHP 5.3 this would call rand() on windows hence the function_exists('class_alias') call. + // ie. class_alias is a function that was introduced in PHP 5.3 + if (function_exists('mcrypt_create_iv') && function_exists('class_alias')) { + return mcrypt_create_iv($length); + } + // method 2. openssl_random_pseudo_bytes was introduced in PHP 5.3.0 but prior to PHP 5.3.4 there was, + // to quote , "possible blocking behavior". as of 5.3.4 + // openssl_random_pseudo_bytes and mcrypt_create_iv do the exact same thing on Windows. ie. they both + // call php_win32_get_random_bytes(): + // + // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/ext/openssl/openssl.c#L5008 + // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/ext/mcrypt/mcrypt.c#L1392 + // + // php_win32_get_random_bytes() is defined thusly: + // + // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/win32/winutil.c#L80 + // + // we're calling it, all the same, in the off chance that the mcrypt extension is not available + if (function_exists('openssl_random_pseudo_bytes') && version_compare(PHP_VERSION, '5.3.4', '>=')) { + return openssl_random_pseudo_bytes($length); + } + } else { + // method 1. the fastest + if (function_exists('openssl_random_pseudo_bytes')) { + return openssl_random_pseudo_bytes($length); + } + // method 2 + static $fp = true; + if ($fp === true) { + // warning's will be output unles the error suppression operator is used. errors such as + // "open_basedir restriction in effect", "Permission denied", "No such file or directory", etc. + $fp = @fopen('/dev/urandom', 'rb'); + } + if ($fp !== true && $fp !== false) { // surprisingly faster than !is_bool() or is_resource() + return fread($fp, $length); + } + // method 3. pretty much does the same thing as method 2 per the following url: + // https://github.com/php/php-src/blob/7014a0eb6d1611151a286c0ff4f2238f92c120d6/ext/mcrypt/mcrypt.c#L1391 + // surprisingly slower than method 2. maybe that's because mcrypt_create_iv does a bunch of error checking that we're + // not doing. regardless, this'll only be called if this PHP script couldn't open /dev/urandom due to open_basedir + // restrictions or some such + if (function_exists('mcrypt_create_iv')) { + return mcrypt_create_iv($length, MCRYPT_DEV_URANDOM); + } + } + // at this point we have no choice but to use a pure-PHP CSPRNG + + // cascade entropy across multiple PHP instances by fixing the session and collecting all + // environmental variables, including the previous session data and the current session + // data. + // + // mt_rand seeds itself by looking at the PID and the time, both of which are (relatively) + // easy to guess at. linux uses mouse clicks, keyboard timings, etc, as entropy sources, but + // PHP isn't low level to be able to use those as sources and on a web server there's not likely + // going to be a ton of keyboard or mouse action. web servers do have one thing that we can use + // however. a ton of people visiting the website. obviously you don't want to base your seeding + // soley on parameters a potential attacker sends but (1) not everything in $_SERVER is controlled + // by the user and (2) this isn't just looking at the data sent by the current user - it's based + // on the data sent by all users. one user requests the page and a hash of their info is saved. + // another user visits the page and the serialization of their data is utilized along with the + // server envirnment stuff and a hash of the previous http request data (which itself utilizes + // a hash of the session data before that). certainly an attacker should be assumed to have + // full control over his own http requests. he, however, is not going to have control over + // everyone's http requests. + static $crypto = false, $v; + if ($crypto === false) { + // save old session data + $old_session_id = session_id(); + $old_use_cookies = ini_get('session.use_cookies'); + $old_session_cache_limiter = session_cache_limiter(); + $_OLD_SESSION = isset($_SESSION) ? $_SESSION : false; + if ($old_session_id != '') { + session_write_close(); + } + + session_id(1); + ini_set('session.use_cookies', 0); + session_cache_limiter(''); + session_start(); + + $v = $seed = $_SESSION['seed'] = pack('H*', sha1( + serialize($_SERVER) . + serialize($_POST) . + serialize($_GET) . + serialize($_COOKIE) . + serialize($GLOBALS) . + serialize($_SESSION) . + serialize($_OLD_SESSION) + )); + if (!isset($_SESSION['count'])) { + $_SESSION['count'] = 0; + } + $_SESSION['count']++; + + session_write_close(); + + // restore old session data + if ($old_session_id != '') { + session_id($old_session_id); + session_start(); + ini_set('session.use_cookies', $old_use_cookies); + session_cache_limiter($old_session_cache_limiter); + } else { + if ($_OLD_SESSION !== false) { + $_SESSION = $_OLD_SESSION; + unset($_OLD_SESSION); + } else { + unset($_SESSION); + } + } + + // in SSH2 a shared secret and an exchange hash are generated through the key exchange process. + // the IV client to server is the hash of that "nonce" with the letter A and for the encryption key it's the letter C. + // if the hash doesn't produce enough a key or an IV that's long enough concat successive hashes of the + // original hash and the current hash. we'll be emulating that. for more info see the following URL: + // + // http://tools.ietf.org/html/rfc4253#section-7.2 + // + // see the is_string($crypto) part for an example of how to expand the keys + $key = pack('H*', sha1($seed . 'A')); + $iv = pack('H*', sha1($seed . 'C')); + + // ciphers are used as per the nist.gov link below. also, see this link: + // + // http://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator#Designs_based_on_cryptographic_primitives + switch (true) { + case class_exists('Crypt_AES'): + $crypto = new Crypt_AES(CRYPT_AES_MODE_CTR); + break; + case class_exists('Crypt_TripleDES'): + $crypto = new Crypt_TripleDES(CRYPT_DES_MODE_CTR); + break; + case class_exists('Crypt_DES'): + $crypto = new Crypt_DES(CRYPT_DES_MODE_CTR); + break; + case class_exists('Crypt_RC4'): + $crypto = new Crypt_RC4(); + break; + default: + $crypto = $seed; + return crypt_random_string($length); + } + + $crypto->setKey($key); + $crypto->setIV($iv); + $crypto->enableContinuousBuffer(); + } + + if (is_string($crypto)) { + // the following is based off of ANSI X9.31: + // + // http://csrc.nist.gov/groups/STM/cavp/documents/rng/931rngext.pdf + // + // OpenSSL uses that same standard for it's random numbers: + // + // http://www.opensource.apple.com/source/OpenSSL/OpenSSL-38/openssl/fips-1.0/rand/fips_rand.c + // (do a search for "ANS X9.31 A.2.4") + // + // ANSI X9.31 recommends ciphers be used and phpseclib does use them if they're available (see + // later on in the code) but if they're not we'll use sha1 + $result = ''; + while (strlen($result) < $length) { // each loop adds 20 bytes + // microtime() isn't packed as "densely" as it could be but then neither is that the idea. + // the idea is simply to ensure that each "block" has a unique element to it. + $i = pack('H*', sha1(microtime())); + $r = pack('H*', sha1($i ^ $v)); + $v = pack('H*', sha1($r ^ $i)); + $result.= $r; + } + return substr($result, 0, $length); + } + + //return $crypto->encrypt(str_repeat("\0", $length)); + + $result = ''; + while (strlen($result) < $length) { + $i = $crypto->encrypt(microtime()); + $r = $crypto->encrypt($i ^ $v); + $v = $crypto->encrypt($r ^ $i); + $result.= $r; + } + return substr($result, 0, $length); +} diff --git a/lam/lib/3rdParty/phpseclib/Crypt/Rijndael.php b/lam/lib/3rdParty/phpseclib/Crypt/Rijndael.php new file mode 100644 index 00000000..42531516 --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/Crypt/Rijndael.php @@ -0,0 +1,1371 @@ + + * setKey('abcdefghijklmnop'); + * + * $size = 10 * 1024; + * $plaintext = ''; + * for ($i = 0; $i < $size; $i++) { + * $plaintext.= 'a'; + * } + * + * echo $rijndael->decrypt($rijndael->encrypt($plaintext)); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Crypt + * @package Crypt_Rijndael + * @author Jim Wigginton + * @copyright MMVIII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Crypt_Base + * + * Base cipher class + */ +if (!class_exists('Crypt_Base')) { + include_once 'Base.php'; +} + +/**#@+ + * @access public + * @see Crypt_Rijndael::encrypt() + * @see Crypt_Rijndael::decrypt() + */ +/** + * Encrypt / decrypt using the Counter mode. + * + * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 + */ +define('CRYPT_RIJNDAEL_MODE_CTR', CRYPT_MODE_CTR); +/** + * Encrypt / decrypt using the Electronic Code Book mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 + */ +define('CRYPT_RIJNDAEL_MODE_ECB', CRYPT_MODE_ECB); +/** + * Encrypt / decrypt using the Code Book Chaining mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 + */ +define('CRYPT_RIJNDAEL_MODE_CBC', CRYPT_MODE_CBC); +/** + * Encrypt / decrypt using the Cipher Feedback mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29 + */ +define('CRYPT_RIJNDAEL_MODE_CFB', CRYPT_MODE_CFB); +/** + * Encrypt / decrypt using the Cipher Feedback mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Output_feedback_.28OFB.29 + */ +define('CRYPT_RIJNDAEL_MODE_OFB', CRYPT_MODE_OFB); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_Rijndael::Crypt_Rijndael() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_RIJNDAEL_MODE_INTERNAL', CRYPT_MODE_INTERNAL); +/** + * Toggles the mcrypt implementation + */ +define('CRYPT_RIJNDAEL_MODE_MCRYPT', CRYPT_MODE_MCRYPT); +/**#@-*/ + +/** + * Pure-PHP implementation of Rijndael. + * + * @package Crypt_Rijndael + * @author Jim Wigginton + * @version 0.1.0 + * @access public + */ +class Crypt_Rijndael extends Crypt_Base +{ + /** + * The default password key_size used by setPassword() + * + * @see Crypt_Base::password_key_size + * @see Crypt_Base::setPassword() + * @var Integer + * @access private + */ + var $password_key_size = 16; + + /** + * The namespace used by the cipher for its constants. + * + * @see Crypt_Base::const_namespace + * @var String + * @access private + */ + var $const_namespace = 'RIJNDAEL'; + + /** + * The mcrypt specific name of the cipher + * + * Mcrypt is useable for 128/192/256-bit $block_size/$key_size. For 160/224 not. + * Crypt_Rijndael determines automatically whether mcrypt is useable + * or not for the current $block_size/$key_size. + * In case of, $cipher_name_mcrypt will be set dynamicaly at run time accordingly. + * + * @see Crypt_Base::cipher_name_mcrypt + * @see Crypt_Base::engine + * @see _setupEngine() + * @var String + * @access private + */ + var $cipher_name_mcrypt = 'rijndael-128'; + + /** + * The default salt used by setPassword() + * + * @see Crypt_Base::password_default_salt + * @see Crypt_Base::setPassword() + * @var String + * @access private + */ + var $password_default_salt = 'phpseclib'; + + /** + * Has the key length explicitly been set or should it be derived from the key, itself? + * + * @see setKeyLength() + * @var Boolean + * @access private + */ + var $explicit_key_length = false; + + /** + * The Key Schedule + * + * @see _setup() + * @var Array + * @access private + */ + var $w; + + /** + * The Inverse Key Schedule + * + * @see _setup() + * @var Array + * @access private + */ + var $dw; + + /** + * The Block Length divided by 32 + * + * @see setBlockLength() + * @var Integer + * @access private + * @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4. Exists in conjunction with $block_size + * because the encryption / decryption / key schedule creation requires this number and not $block_size. We could + * derive this from $block_size or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu + * of that, we'll just precompute it once. + * + */ + var $Nb = 4; + + /** + * The Key Length + * + * @see setKeyLength() + * @var Integer + * @access private + * @internal The max value is 256 / 8 = 32, the min value is 128 / 8 = 16. Exists in conjunction with $Nk + * because the encryption / decryption / key schedule creation requires this number and not $key_size. We could + * derive this from $key_size or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu + * of that, we'll just precompute it once. + */ + var $key_size = 16; + + /** + * The Key Length divided by 32 + * + * @see setKeyLength() + * @var Integer + * @access private + * @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4 + */ + var $Nk = 4; + + /** + * The Number of Rounds + * + * @var Integer + * @access private + * @internal The max value is 14, the min value is 10. + */ + var $Nr; + + /** + * Shift offsets + * + * @var Array + * @access private + */ + var $c; + + /** + * Holds the last used key- and block_size information + * + * @var Array + * @access private + */ + var $kl; + + /** + * Precomputed mixColumns table + * + * According to (section 5.2.1), + * precomputed tables can be used in the mixColumns phase. in that example, they're assigned t0...t3, so + * those are the names we'll use. + * + * @see Crypt_Rijndael:_encryptBlock() + * @see Crypt_Rijndael:_decryptBlock() + * @var Array + * @access private + */ + var $t0 = array( + 0xC66363A5, 0xF87C7C84, 0xEE777799, 0xF67B7B8D, 0xFFF2F20D, 0xD66B6BBD, 0xDE6F6FB1, 0x91C5C554, + 0x60303050, 0x02010103, 0xCE6767A9, 0x562B2B7D, 0xE7FEFE19, 0xB5D7D762, 0x4DABABE6, 0xEC76769A, + 0x8FCACA45, 0x1F82829D, 0x89C9C940, 0xFA7D7D87, 0xEFFAFA15, 0xB25959EB, 0x8E4747C9, 0xFBF0F00B, + 0x41ADADEC, 0xB3D4D467, 0x5FA2A2FD, 0x45AFAFEA, 0x239C9CBF, 0x53A4A4F7, 0xE4727296, 0x9BC0C05B, + 0x75B7B7C2, 0xE1FDFD1C, 0x3D9393AE, 0x4C26266A, 0x6C36365A, 0x7E3F3F41, 0xF5F7F702, 0x83CCCC4F, + 0x6834345C, 0x51A5A5F4, 0xD1E5E534, 0xF9F1F108, 0xE2717193, 0xABD8D873, 0x62313153, 0x2A15153F, + 0x0804040C, 0x95C7C752, 0x46232365, 0x9DC3C35E, 0x30181828, 0x379696A1, 0x0A05050F, 0x2F9A9AB5, + 0x0E070709, 0x24121236, 0x1B80809B, 0xDFE2E23D, 0xCDEBEB26, 0x4E272769, 0x7FB2B2CD, 0xEA75759F, + 0x1209091B, 0x1D83839E, 0x582C2C74, 0x341A1A2E, 0x361B1B2D, 0xDC6E6EB2, 0xB45A5AEE, 0x5BA0A0FB, + 0xA45252F6, 0x763B3B4D, 0xB7D6D661, 0x7DB3B3CE, 0x5229297B, 0xDDE3E33E, 0x5E2F2F71, 0x13848497, + 0xA65353F5, 0xB9D1D168, 0x00000000, 0xC1EDED2C, 0x40202060, 0xE3FCFC1F, 0x79B1B1C8, 0xB65B5BED, + 0xD46A6ABE, 0x8DCBCB46, 0x67BEBED9, 0x7239394B, 0x944A4ADE, 0x984C4CD4, 0xB05858E8, 0x85CFCF4A, + 0xBBD0D06B, 0xC5EFEF2A, 0x4FAAAAE5, 0xEDFBFB16, 0x864343C5, 0x9A4D4DD7, 0x66333355, 0x11858594, + 0x8A4545CF, 0xE9F9F910, 0x04020206, 0xFE7F7F81, 0xA05050F0, 0x783C3C44, 0x259F9FBA, 0x4BA8A8E3, + 0xA25151F3, 0x5DA3A3FE, 0x804040C0, 0x058F8F8A, 0x3F9292AD, 0x219D9DBC, 0x70383848, 0xF1F5F504, + 0x63BCBCDF, 0x77B6B6C1, 0xAFDADA75, 0x42212163, 0x20101030, 0xE5FFFF1A, 0xFDF3F30E, 0xBFD2D26D, + 0x81CDCD4C, 0x180C0C14, 0x26131335, 0xC3ECEC2F, 0xBE5F5FE1, 0x359797A2, 0x884444CC, 0x2E171739, + 0x93C4C457, 0x55A7A7F2, 0xFC7E7E82, 0x7A3D3D47, 0xC86464AC, 0xBA5D5DE7, 0x3219192B, 0xE6737395, + 0xC06060A0, 0x19818198, 0x9E4F4FD1, 0xA3DCDC7F, 0x44222266, 0x542A2A7E, 0x3B9090AB, 0x0B888883, + 0x8C4646CA, 0xC7EEEE29, 0x6BB8B8D3, 0x2814143C, 0xA7DEDE79, 0xBC5E5EE2, 0x160B0B1D, 0xADDBDB76, + 0xDBE0E03B, 0x64323256, 0x743A3A4E, 0x140A0A1E, 0x924949DB, 0x0C06060A, 0x4824246C, 0xB85C5CE4, + 0x9FC2C25D, 0xBDD3D36E, 0x43ACACEF, 0xC46262A6, 0x399191A8, 0x319595A4, 0xD3E4E437, 0xF279798B, + 0xD5E7E732, 0x8BC8C843, 0x6E373759, 0xDA6D6DB7, 0x018D8D8C, 0xB1D5D564, 0x9C4E4ED2, 0x49A9A9E0, + 0xD86C6CB4, 0xAC5656FA, 0xF3F4F407, 0xCFEAEA25, 0xCA6565AF, 0xF47A7A8E, 0x47AEAEE9, 0x10080818, + 0x6FBABAD5, 0xF0787888, 0x4A25256F, 0x5C2E2E72, 0x381C1C24, 0x57A6A6F1, 0x73B4B4C7, 0x97C6C651, + 0xCBE8E823, 0xA1DDDD7C, 0xE874749C, 0x3E1F1F21, 0x964B4BDD, 0x61BDBDDC, 0x0D8B8B86, 0x0F8A8A85, + 0xE0707090, 0x7C3E3E42, 0x71B5B5C4, 0xCC6666AA, 0x904848D8, 0x06030305, 0xF7F6F601, 0x1C0E0E12, + 0xC26161A3, 0x6A35355F, 0xAE5757F9, 0x69B9B9D0, 0x17868691, 0x99C1C158, 0x3A1D1D27, 0x279E9EB9, + 0xD9E1E138, 0xEBF8F813, 0x2B9898B3, 0x22111133, 0xD26969BB, 0xA9D9D970, 0x078E8E89, 0x339494A7, + 0x2D9B9BB6, 0x3C1E1E22, 0x15878792, 0xC9E9E920, 0x87CECE49, 0xAA5555FF, 0x50282878, 0xA5DFDF7A, + 0x038C8C8F, 0x59A1A1F8, 0x09898980, 0x1A0D0D17, 0x65BFBFDA, 0xD7E6E631, 0x844242C6, 0xD06868B8, + 0x824141C3, 0x299999B0, 0x5A2D2D77, 0x1E0F0F11, 0x7BB0B0CB, 0xA85454FC, 0x6DBBBBD6, 0x2C16163A + ); + + /** + * Precomputed mixColumns table + * + * @see Crypt_Rijndael:_encryptBlock() + * @see Crypt_Rijndael:_decryptBlock() + * @var Array + * @access private + */ + var $t1 = array( + 0xA5C66363, 0x84F87C7C, 0x99EE7777, 0x8DF67B7B, 0x0DFFF2F2, 0xBDD66B6B, 0xB1DE6F6F, 0x5491C5C5, + 0x50603030, 0x03020101, 0xA9CE6767, 0x7D562B2B, 0x19E7FEFE, 0x62B5D7D7, 0xE64DABAB, 0x9AEC7676, + 0x458FCACA, 0x9D1F8282, 0x4089C9C9, 0x87FA7D7D, 0x15EFFAFA, 0xEBB25959, 0xC98E4747, 0x0BFBF0F0, + 0xEC41ADAD, 0x67B3D4D4, 0xFD5FA2A2, 0xEA45AFAF, 0xBF239C9C, 0xF753A4A4, 0x96E47272, 0x5B9BC0C0, + 0xC275B7B7, 0x1CE1FDFD, 0xAE3D9393, 0x6A4C2626, 0x5A6C3636, 0x417E3F3F, 0x02F5F7F7, 0x4F83CCCC, + 0x5C683434, 0xF451A5A5, 0x34D1E5E5, 0x08F9F1F1, 0x93E27171, 0x73ABD8D8, 0x53623131, 0x3F2A1515, + 0x0C080404, 0x5295C7C7, 0x65462323, 0x5E9DC3C3, 0x28301818, 0xA1379696, 0x0F0A0505, 0xB52F9A9A, + 0x090E0707, 0x36241212, 0x9B1B8080, 0x3DDFE2E2, 0x26CDEBEB, 0x694E2727, 0xCD7FB2B2, 0x9FEA7575, + 0x1B120909, 0x9E1D8383, 0x74582C2C, 0x2E341A1A, 0x2D361B1B, 0xB2DC6E6E, 0xEEB45A5A, 0xFB5BA0A0, + 0xF6A45252, 0x4D763B3B, 0x61B7D6D6, 0xCE7DB3B3, 0x7B522929, 0x3EDDE3E3, 0x715E2F2F, 0x97138484, + 0xF5A65353, 0x68B9D1D1, 0x00000000, 0x2CC1EDED, 0x60402020, 0x1FE3FCFC, 0xC879B1B1, 0xEDB65B5B, + 0xBED46A6A, 0x468DCBCB, 0xD967BEBE, 0x4B723939, 0xDE944A4A, 0xD4984C4C, 0xE8B05858, 0x4A85CFCF, + 0x6BBBD0D0, 0x2AC5EFEF, 0xE54FAAAA, 0x16EDFBFB, 0xC5864343, 0xD79A4D4D, 0x55663333, 0x94118585, + 0xCF8A4545, 0x10E9F9F9, 0x06040202, 0x81FE7F7F, 0xF0A05050, 0x44783C3C, 0xBA259F9F, 0xE34BA8A8, + 0xF3A25151, 0xFE5DA3A3, 0xC0804040, 0x8A058F8F, 0xAD3F9292, 0xBC219D9D, 0x48703838, 0x04F1F5F5, + 0xDF63BCBC, 0xC177B6B6, 0x75AFDADA, 0x63422121, 0x30201010, 0x1AE5FFFF, 0x0EFDF3F3, 0x6DBFD2D2, + 0x4C81CDCD, 0x14180C0C, 0x35261313, 0x2FC3ECEC, 0xE1BE5F5F, 0xA2359797, 0xCC884444, 0x392E1717, + 0x5793C4C4, 0xF255A7A7, 0x82FC7E7E, 0x477A3D3D, 0xACC86464, 0xE7BA5D5D, 0x2B321919, 0x95E67373, + 0xA0C06060, 0x98198181, 0xD19E4F4F, 0x7FA3DCDC, 0x66442222, 0x7E542A2A, 0xAB3B9090, 0x830B8888, + 0xCA8C4646, 0x29C7EEEE, 0xD36BB8B8, 0x3C281414, 0x79A7DEDE, 0xE2BC5E5E, 0x1D160B0B, 0x76ADDBDB, + 0x3BDBE0E0, 0x56643232, 0x4E743A3A, 0x1E140A0A, 0xDB924949, 0x0A0C0606, 0x6C482424, 0xE4B85C5C, + 0x5D9FC2C2, 0x6EBDD3D3, 0xEF43ACAC, 0xA6C46262, 0xA8399191, 0xA4319595, 0x37D3E4E4, 0x8BF27979, + 0x32D5E7E7, 0x438BC8C8, 0x596E3737, 0xB7DA6D6D, 0x8C018D8D, 0x64B1D5D5, 0xD29C4E4E, 0xE049A9A9, + 0xB4D86C6C, 0xFAAC5656, 0x07F3F4F4, 0x25CFEAEA, 0xAFCA6565, 0x8EF47A7A, 0xE947AEAE, 0x18100808, + 0xD56FBABA, 0x88F07878, 0x6F4A2525, 0x725C2E2E, 0x24381C1C, 0xF157A6A6, 0xC773B4B4, 0x5197C6C6, + 0x23CBE8E8, 0x7CA1DDDD, 0x9CE87474, 0x213E1F1F, 0xDD964B4B, 0xDC61BDBD, 0x860D8B8B, 0x850F8A8A, + 0x90E07070, 0x427C3E3E, 0xC471B5B5, 0xAACC6666, 0xD8904848, 0x05060303, 0x01F7F6F6, 0x121C0E0E, + 0xA3C26161, 0x5F6A3535, 0xF9AE5757, 0xD069B9B9, 0x91178686, 0x5899C1C1, 0x273A1D1D, 0xB9279E9E, + 0x38D9E1E1, 0x13EBF8F8, 0xB32B9898, 0x33221111, 0xBBD26969, 0x70A9D9D9, 0x89078E8E, 0xA7339494, + 0xB62D9B9B, 0x223C1E1E, 0x92158787, 0x20C9E9E9, 0x4987CECE, 0xFFAA5555, 0x78502828, 0x7AA5DFDF, + 0x8F038C8C, 0xF859A1A1, 0x80098989, 0x171A0D0D, 0xDA65BFBF, 0x31D7E6E6, 0xC6844242, 0xB8D06868, + 0xC3824141, 0xB0299999, 0x775A2D2D, 0x111E0F0F, 0xCB7BB0B0, 0xFCA85454, 0xD66DBBBB, 0x3A2C1616 + ); + + /** + * Precomputed mixColumns table + * + * @see Crypt_Rijndael:_encryptBlock() + * @see Crypt_Rijndael:_decryptBlock() + * @var Array + * @access private + */ + var $t2 = array( + 0x63A5C663, 0x7C84F87C, 0x7799EE77, 0x7B8DF67B, 0xF20DFFF2, 0x6BBDD66B, 0x6FB1DE6F, 0xC55491C5, + 0x30506030, 0x01030201, 0x67A9CE67, 0x2B7D562B, 0xFE19E7FE, 0xD762B5D7, 0xABE64DAB, 0x769AEC76, + 0xCA458FCA, 0x829D1F82, 0xC94089C9, 0x7D87FA7D, 0xFA15EFFA, 0x59EBB259, 0x47C98E47, 0xF00BFBF0, + 0xADEC41AD, 0xD467B3D4, 0xA2FD5FA2, 0xAFEA45AF, 0x9CBF239C, 0xA4F753A4, 0x7296E472, 0xC05B9BC0, + 0xB7C275B7, 0xFD1CE1FD, 0x93AE3D93, 0x266A4C26, 0x365A6C36, 0x3F417E3F, 0xF702F5F7, 0xCC4F83CC, + 0x345C6834, 0xA5F451A5, 0xE534D1E5, 0xF108F9F1, 0x7193E271, 0xD873ABD8, 0x31536231, 0x153F2A15, + 0x040C0804, 0xC75295C7, 0x23654623, 0xC35E9DC3, 0x18283018, 0x96A13796, 0x050F0A05, 0x9AB52F9A, + 0x07090E07, 0x12362412, 0x809B1B80, 0xE23DDFE2, 0xEB26CDEB, 0x27694E27, 0xB2CD7FB2, 0x759FEA75, + 0x091B1209, 0x839E1D83, 0x2C74582C, 0x1A2E341A, 0x1B2D361B, 0x6EB2DC6E, 0x5AEEB45A, 0xA0FB5BA0, + 0x52F6A452, 0x3B4D763B, 0xD661B7D6, 0xB3CE7DB3, 0x297B5229, 0xE33EDDE3, 0x2F715E2F, 0x84971384, + 0x53F5A653, 0xD168B9D1, 0x00000000, 0xED2CC1ED, 0x20604020, 0xFC1FE3FC, 0xB1C879B1, 0x5BEDB65B, + 0x6ABED46A, 0xCB468DCB, 0xBED967BE, 0x394B7239, 0x4ADE944A, 0x4CD4984C, 0x58E8B058, 0xCF4A85CF, + 0xD06BBBD0, 0xEF2AC5EF, 0xAAE54FAA, 0xFB16EDFB, 0x43C58643, 0x4DD79A4D, 0x33556633, 0x85941185, + 0x45CF8A45, 0xF910E9F9, 0x02060402, 0x7F81FE7F, 0x50F0A050, 0x3C44783C, 0x9FBA259F, 0xA8E34BA8, + 0x51F3A251, 0xA3FE5DA3, 0x40C08040, 0x8F8A058F, 0x92AD3F92, 0x9DBC219D, 0x38487038, 0xF504F1F5, + 0xBCDF63BC, 0xB6C177B6, 0xDA75AFDA, 0x21634221, 0x10302010, 0xFF1AE5FF, 0xF30EFDF3, 0xD26DBFD2, + 0xCD4C81CD, 0x0C14180C, 0x13352613, 0xEC2FC3EC, 0x5FE1BE5F, 0x97A23597, 0x44CC8844, 0x17392E17, + 0xC45793C4, 0xA7F255A7, 0x7E82FC7E, 0x3D477A3D, 0x64ACC864, 0x5DE7BA5D, 0x192B3219, 0x7395E673, + 0x60A0C060, 0x81981981, 0x4FD19E4F, 0xDC7FA3DC, 0x22664422, 0x2A7E542A, 0x90AB3B90, 0x88830B88, + 0x46CA8C46, 0xEE29C7EE, 0xB8D36BB8, 0x143C2814, 0xDE79A7DE, 0x5EE2BC5E, 0x0B1D160B, 0xDB76ADDB, + 0xE03BDBE0, 0x32566432, 0x3A4E743A, 0x0A1E140A, 0x49DB9249, 0x060A0C06, 0x246C4824, 0x5CE4B85C, + 0xC25D9FC2, 0xD36EBDD3, 0xACEF43AC, 0x62A6C462, 0x91A83991, 0x95A43195, 0xE437D3E4, 0x798BF279, + 0xE732D5E7, 0xC8438BC8, 0x37596E37, 0x6DB7DA6D, 0x8D8C018D, 0xD564B1D5, 0x4ED29C4E, 0xA9E049A9, + 0x6CB4D86C, 0x56FAAC56, 0xF407F3F4, 0xEA25CFEA, 0x65AFCA65, 0x7A8EF47A, 0xAEE947AE, 0x08181008, + 0xBAD56FBA, 0x7888F078, 0x256F4A25, 0x2E725C2E, 0x1C24381C, 0xA6F157A6, 0xB4C773B4, 0xC65197C6, + 0xE823CBE8, 0xDD7CA1DD, 0x749CE874, 0x1F213E1F, 0x4BDD964B, 0xBDDC61BD, 0x8B860D8B, 0x8A850F8A, + 0x7090E070, 0x3E427C3E, 0xB5C471B5, 0x66AACC66, 0x48D89048, 0x03050603, 0xF601F7F6, 0x0E121C0E, + 0x61A3C261, 0x355F6A35, 0x57F9AE57, 0xB9D069B9, 0x86911786, 0xC15899C1, 0x1D273A1D, 0x9EB9279E, + 0xE138D9E1, 0xF813EBF8, 0x98B32B98, 0x11332211, 0x69BBD269, 0xD970A9D9, 0x8E89078E, 0x94A73394, + 0x9BB62D9B, 0x1E223C1E, 0x87921587, 0xE920C9E9, 0xCE4987CE, 0x55FFAA55, 0x28785028, 0xDF7AA5DF, + 0x8C8F038C, 0xA1F859A1, 0x89800989, 0x0D171A0D, 0xBFDA65BF, 0xE631D7E6, 0x42C68442, 0x68B8D068, + 0x41C38241, 0x99B02999, 0x2D775A2D, 0x0F111E0F, 0xB0CB7BB0, 0x54FCA854, 0xBBD66DBB, 0x163A2C16 + ); + + /** + * Precomputed mixColumns table + * + * @see Crypt_Rijndael:_encryptBlock() + * @see Crypt_Rijndael:_decryptBlock() + * @var Array + * @access private + */ + var $t3 = array( + 0x6363A5C6, 0x7C7C84F8, 0x777799EE, 0x7B7B8DF6, 0xF2F20DFF, 0x6B6BBDD6, 0x6F6FB1DE, 0xC5C55491, + 0x30305060, 0x01010302, 0x6767A9CE, 0x2B2B7D56, 0xFEFE19E7, 0xD7D762B5, 0xABABE64D, 0x76769AEC, + 0xCACA458F, 0x82829D1F, 0xC9C94089, 0x7D7D87FA, 0xFAFA15EF, 0x5959EBB2, 0x4747C98E, 0xF0F00BFB, + 0xADADEC41, 0xD4D467B3, 0xA2A2FD5F, 0xAFAFEA45, 0x9C9CBF23, 0xA4A4F753, 0x727296E4, 0xC0C05B9B, + 0xB7B7C275, 0xFDFD1CE1, 0x9393AE3D, 0x26266A4C, 0x36365A6C, 0x3F3F417E, 0xF7F702F5, 0xCCCC4F83, + 0x34345C68, 0xA5A5F451, 0xE5E534D1, 0xF1F108F9, 0x717193E2, 0xD8D873AB, 0x31315362, 0x15153F2A, + 0x04040C08, 0xC7C75295, 0x23236546, 0xC3C35E9D, 0x18182830, 0x9696A137, 0x05050F0A, 0x9A9AB52F, + 0x0707090E, 0x12123624, 0x80809B1B, 0xE2E23DDF, 0xEBEB26CD, 0x2727694E, 0xB2B2CD7F, 0x75759FEA, + 0x09091B12, 0x83839E1D, 0x2C2C7458, 0x1A1A2E34, 0x1B1B2D36, 0x6E6EB2DC, 0x5A5AEEB4, 0xA0A0FB5B, + 0x5252F6A4, 0x3B3B4D76, 0xD6D661B7, 0xB3B3CE7D, 0x29297B52, 0xE3E33EDD, 0x2F2F715E, 0x84849713, + 0x5353F5A6, 0xD1D168B9, 0x00000000, 0xEDED2CC1, 0x20206040, 0xFCFC1FE3, 0xB1B1C879, 0x5B5BEDB6, + 0x6A6ABED4, 0xCBCB468D, 0xBEBED967, 0x39394B72, 0x4A4ADE94, 0x4C4CD498, 0x5858E8B0, 0xCFCF4A85, + 0xD0D06BBB, 0xEFEF2AC5, 0xAAAAE54F, 0xFBFB16ED, 0x4343C586, 0x4D4DD79A, 0x33335566, 0x85859411, + 0x4545CF8A, 0xF9F910E9, 0x02020604, 0x7F7F81FE, 0x5050F0A0, 0x3C3C4478, 0x9F9FBA25, 0xA8A8E34B, + 0x5151F3A2, 0xA3A3FE5D, 0x4040C080, 0x8F8F8A05, 0x9292AD3F, 0x9D9DBC21, 0x38384870, 0xF5F504F1, + 0xBCBCDF63, 0xB6B6C177, 0xDADA75AF, 0x21216342, 0x10103020, 0xFFFF1AE5, 0xF3F30EFD, 0xD2D26DBF, + 0xCDCD4C81, 0x0C0C1418, 0x13133526, 0xECEC2FC3, 0x5F5FE1BE, 0x9797A235, 0x4444CC88, 0x1717392E, + 0xC4C45793, 0xA7A7F255, 0x7E7E82FC, 0x3D3D477A, 0x6464ACC8, 0x5D5DE7BA, 0x19192B32, 0x737395E6, + 0x6060A0C0, 0x81819819, 0x4F4FD19E, 0xDCDC7FA3, 0x22226644, 0x2A2A7E54, 0x9090AB3B, 0x8888830B, + 0x4646CA8C, 0xEEEE29C7, 0xB8B8D36B, 0x14143C28, 0xDEDE79A7, 0x5E5EE2BC, 0x0B0B1D16, 0xDBDB76AD, + 0xE0E03BDB, 0x32325664, 0x3A3A4E74, 0x0A0A1E14, 0x4949DB92, 0x06060A0C, 0x24246C48, 0x5C5CE4B8, + 0xC2C25D9F, 0xD3D36EBD, 0xACACEF43, 0x6262A6C4, 0x9191A839, 0x9595A431, 0xE4E437D3, 0x79798BF2, + 0xE7E732D5, 0xC8C8438B, 0x3737596E, 0x6D6DB7DA, 0x8D8D8C01, 0xD5D564B1, 0x4E4ED29C, 0xA9A9E049, + 0x6C6CB4D8, 0x5656FAAC, 0xF4F407F3, 0xEAEA25CF, 0x6565AFCA, 0x7A7A8EF4, 0xAEAEE947, 0x08081810, + 0xBABAD56F, 0x787888F0, 0x25256F4A, 0x2E2E725C, 0x1C1C2438, 0xA6A6F157, 0xB4B4C773, 0xC6C65197, + 0xE8E823CB, 0xDDDD7CA1, 0x74749CE8, 0x1F1F213E, 0x4B4BDD96, 0xBDBDDC61, 0x8B8B860D, 0x8A8A850F, + 0x707090E0, 0x3E3E427C, 0xB5B5C471, 0x6666AACC, 0x4848D890, 0x03030506, 0xF6F601F7, 0x0E0E121C, + 0x6161A3C2, 0x35355F6A, 0x5757F9AE, 0xB9B9D069, 0x86869117, 0xC1C15899, 0x1D1D273A, 0x9E9EB927, + 0xE1E138D9, 0xF8F813EB, 0x9898B32B, 0x11113322, 0x6969BBD2, 0xD9D970A9, 0x8E8E8907, 0x9494A733, + 0x9B9BB62D, 0x1E1E223C, 0x87879215, 0xE9E920C9, 0xCECE4987, 0x5555FFAA, 0x28287850, 0xDFDF7AA5, + 0x8C8C8F03, 0xA1A1F859, 0x89898009, 0x0D0D171A, 0xBFBFDA65, 0xE6E631D7, 0x4242C684, 0x6868B8D0, + 0x4141C382, 0x9999B029, 0x2D2D775A, 0x0F0F111E, 0xB0B0CB7B, 0x5454FCA8, 0xBBBBD66D, 0x16163A2C + ); + + /** + * Precomputed invMixColumns table + * + * @see Crypt_Rijndael:_encryptBlock() + * @see Crypt_Rijndael:_decryptBlock() + * @var Array + * @access private + */ + var $dt0 = array( + 0x51F4A750, 0x7E416553, 0x1A17A4C3, 0x3A275E96, 0x3BAB6BCB, 0x1F9D45F1, 0xACFA58AB, 0x4BE30393, + 0x2030FA55, 0xAD766DF6, 0x88CC7691, 0xF5024C25, 0x4FE5D7FC, 0xC52ACBD7, 0x26354480, 0xB562A38F, + 0xDEB15A49, 0x25BA1B67, 0x45EA0E98, 0x5DFEC0E1, 0xC32F7502, 0x814CF012, 0x8D4697A3, 0x6BD3F9C6, + 0x038F5FE7, 0x15929C95, 0xBF6D7AEB, 0x955259DA, 0xD4BE832D, 0x587421D3, 0x49E06929, 0x8EC9C844, + 0x75C2896A, 0xF48E7978, 0x99583E6B, 0x27B971DD, 0xBEE14FB6, 0xF088AD17, 0xC920AC66, 0x7DCE3AB4, + 0x63DF4A18, 0xE51A3182, 0x97513360, 0x62537F45, 0xB16477E0, 0xBB6BAE84, 0xFE81A01C, 0xF9082B94, + 0x70486858, 0x8F45FD19, 0x94DE6C87, 0x527BF8B7, 0xAB73D323, 0x724B02E2, 0xE31F8F57, 0x6655AB2A, + 0xB2EB2807, 0x2FB5C203, 0x86C57B9A, 0xD33708A5, 0x302887F2, 0x23BFA5B2, 0x02036ABA, 0xED16825C, + 0x8ACF1C2B, 0xA779B492, 0xF307F2F0, 0x4E69E2A1, 0x65DAF4CD, 0x0605BED5, 0xD134621F, 0xC4A6FE8A, + 0x342E539D, 0xA2F355A0, 0x058AE132, 0xA4F6EB75, 0x0B83EC39, 0x4060EFAA, 0x5E719F06, 0xBD6E1051, + 0x3E218AF9, 0x96DD063D, 0xDD3E05AE, 0x4DE6BD46, 0x91548DB5, 0x71C45D05, 0x0406D46F, 0x605015FF, + 0x1998FB24, 0xD6BDE997, 0x894043CC, 0x67D99E77, 0xB0E842BD, 0x07898B88, 0xE7195B38, 0x79C8EEDB, + 0xA17C0A47, 0x7C420FE9, 0xF8841EC9, 0x00000000, 0x09808683, 0x322BED48, 0x1E1170AC, 0x6C5A724E, + 0xFD0EFFFB, 0x0F853856, 0x3DAED51E, 0x362D3927, 0x0A0FD964, 0x685CA621, 0x9B5B54D1, 0x24362E3A, + 0x0C0A67B1, 0x9357E70F, 0xB4EE96D2, 0x1B9B919E, 0x80C0C54F, 0x61DC20A2, 0x5A774B69, 0x1C121A16, + 0xE293BA0A, 0xC0A02AE5, 0x3C22E043, 0x121B171D, 0x0E090D0B, 0xF28BC7AD, 0x2DB6A8B9, 0x141EA9C8, + 0x57F11985, 0xAF75074C, 0xEE99DDBB, 0xA37F60FD, 0xF701269F, 0x5C72F5BC, 0x44663BC5, 0x5BFB7E34, + 0x8B432976, 0xCB23C6DC, 0xB6EDFC68, 0xB8E4F163, 0xD731DCCA, 0x42638510, 0x13972240, 0x84C61120, + 0x854A247D, 0xD2BB3DF8, 0xAEF93211, 0xC729A16D, 0x1D9E2F4B, 0xDCB230F3, 0x0D8652EC, 0x77C1E3D0, + 0x2BB3166C, 0xA970B999, 0x119448FA, 0x47E96422, 0xA8FC8CC4, 0xA0F03F1A, 0x567D2CD8, 0x223390EF, + 0x87494EC7, 0xD938D1C1, 0x8CCAA2FE, 0x98D40B36, 0xA6F581CF, 0xA57ADE28, 0xDAB78E26, 0x3FADBFA4, + 0x2C3A9DE4, 0x5078920D, 0x6A5FCC9B, 0x547E4662, 0xF68D13C2, 0x90D8B8E8, 0x2E39F75E, 0x82C3AFF5, + 0x9F5D80BE, 0x69D0937C, 0x6FD52DA9, 0xCF2512B3, 0xC8AC993B, 0x10187DA7, 0xE89C636E, 0xDB3BBB7B, + 0xCD267809, 0x6E5918F4, 0xEC9AB701, 0x834F9AA8, 0xE6956E65, 0xAAFFE67E, 0x21BCCF08, 0xEF15E8E6, + 0xBAE79BD9, 0x4A6F36CE, 0xEA9F09D4, 0x29B07CD6, 0x31A4B2AF, 0x2A3F2331, 0xC6A59430, 0x35A266C0, + 0x744EBC37, 0xFC82CAA6, 0xE090D0B0, 0x33A7D815, 0xF104984A, 0x41ECDAF7, 0x7FCD500E, 0x1791F62F, + 0x764DD68D, 0x43EFB04D, 0xCCAA4D54, 0xE49604DF, 0x9ED1B5E3, 0x4C6A881B, 0xC12C1FB8, 0x4665517F, + 0x9D5EEA04, 0x018C355D, 0xFA877473, 0xFB0B412E, 0xB3671D5A, 0x92DBD252, 0xE9105633, 0x6DD64713, + 0x9AD7618C, 0x37A10C7A, 0x59F8148E, 0xEB133C89, 0xCEA927EE, 0xB761C935, 0xE11CE5ED, 0x7A47B13C, + 0x9CD2DF59, 0x55F2733F, 0x1814CE79, 0x73C737BF, 0x53F7CDEA, 0x5FFDAA5B, 0xDF3D6F14, 0x7844DB86, + 0xCAAFF381, 0xB968C43E, 0x3824342C, 0xC2A3405F, 0x161DC372, 0xBCE2250C, 0x283C498B, 0xFF0D9541, + 0x39A80171, 0x080CB3DE, 0xD8B4E49C, 0x6456C190, 0x7BCB8461, 0xD532B670, 0x486C5C74, 0xD0B85742 + ); + + /** + * Precomputed invMixColumns table + * + * @see Crypt_Rijndael:_encryptBlock() + * @see Crypt_Rijndael:_decryptBlock() + * @var Array + * @access private + */ + var $dt1 = array( + 0x5051F4A7, 0x537E4165, 0xC31A17A4, 0x963A275E, 0xCB3BAB6B, 0xF11F9D45, 0xABACFA58, 0x934BE303, + 0x552030FA, 0xF6AD766D, 0x9188CC76, 0x25F5024C, 0xFC4FE5D7, 0xD7C52ACB, 0x80263544, 0x8FB562A3, + 0x49DEB15A, 0x6725BA1B, 0x9845EA0E, 0xE15DFEC0, 0x02C32F75, 0x12814CF0, 0xA38D4697, 0xC66BD3F9, + 0xE7038F5F, 0x9515929C, 0xEBBF6D7A, 0xDA955259, 0x2DD4BE83, 0xD3587421, 0x2949E069, 0x448EC9C8, + 0x6A75C289, 0x78F48E79, 0x6B99583E, 0xDD27B971, 0xB6BEE14F, 0x17F088AD, 0x66C920AC, 0xB47DCE3A, + 0x1863DF4A, 0x82E51A31, 0x60975133, 0x4562537F, 0xE0B16477, 0x84BB6BAE, 0x1CFE81A0, 0x94F9082B, + 0x58704868, 0x198F45FD, 0x8794DE6C, 0xB7527BF8, 0x23AB73D3, 0xE2724B02, 0x57E31F8F, 0x2A6655AB, + 0x07B2EB28, 0x032FB5C2, 0x9A86C57B, 0xA5D33708, 0xF2302887, 0xB223BFA5, 0xBA02036A, 0x5CED1682, + 0x2B8ACF1C, 0x92A779B4, 0xF0F307F2, 0xA14E69E2, 0xCD65DAF4, 0xD50605BE, 0x1FD13462, 0x8AC4A6FE, + 0x9D342E53, 0xA0A2F355, 0x32058AE1, 0x75A4F6EB, 0x390B83EC, 0xAA4060EF, 0x065E719F, 0x51BD6E10, + 0xF93E218A, 0x3D96DD06, 0xAEDD3E05, 0x464DE6BD, 0xB591548D, 0x0571C45D, 0x6F0406D4, 0xFF605015, + 0x241998FB, 0x97D6BDE9, 0xCC894043, 0x7767D99E, 0xBDB0E842, 0x8807898B, 0x38E7195B, 0xDB79C8EE, + 0x47A17C0A, 0xE97C420F, 0xC9F8841E, 0x00000000, 0x83098086, 0x48322BED, 0xAC1E1170, 0x4E6C5A72, + 0xFBFD0EFF, 0x560F8538, 0x1E3DAED5, 0x27362D39, 0x640A0FD9, 0x21685CA6, 0xD19B5B54, 0x3A24362E, + 0xB10C0A67, 0x0F9357E7, 0xD2B4EE96, 0x9E1B9B91, 0x4F80C0C5, 0xA261DC20, 0x695A774B, 0x161C121A, + 0x0AE293BA, 0xE5C0A02A, 0x433C22E0, 0x1D121B17, 0x0B0E090D, 0xADF28BC7, 0xB92DB6A8, 0xC8141EA9, + 0x8557F119, 0x4CAF7507, 0xBBEE99DD, 0xFDA37F60, 0x9FF70126, 0xBC5C72F5, 0xC544663B, 0x345BFB7E, + 0x768B4329, 0xDCCB23C6, 0x68B6EDFC, 0x63B8E4F1, 0xCAD731DC, 0x10426385, 0x40139722, 0x2084C611, + 0x7D854A24, 0xF8D2BB3D, 0x11AEF932, 0x6DC729A1, 0x4B1D9E2F, 0xF3DCB230, 0xEC0D8652, 0xD077C1E3, + 0x6C2BB316, 0x99A970B9, 0xFA119448, 0x2247E964, 0xC4A8FC8C, 0x1AA0F03F, 0xD8567D2C, 0xEF223390, + 0xC787494E, 0xC1D938D1, 0xFE8CCAA2, 0x3698D40B, 0xCFA6F581, 0x28A57ADE, 0x26DAB78E, 0xA43FADBF, + 0xE42C3A9D, 0x0D507892, 0x9B6A5FCC, 0x62547E46, 0xC2F68D13, 0xE890D8B8, 0x5E2E39F7, 0xF582C3AF, + 0xBE9F5D80, 0x7C69D093, 0xA96FD52D, 0xB3CF2512, 0x3BC8AC99, 0xA710187D, 0x6EE89C63, 0x7BDB3BBB, + 0x09CD2678, 0xF46E5918, 0x01EC9AB7, 0xA8834F9A, 0x65E6956E, 0x7EAAFFE6, 0x0821BCCF, 0xE6EF15E8, + 0xD9BAE79B, 0xCE4A6F36, 0xD4EA9F09, 0xD629B07C, 0xAF31A4B2, 0x312A3F23, 0x30C6A594, 0xC035A266, + 0x37744EBC, 0xA6FC82CA, 0xB0E090D0, 0x1533A7D8, 0x4AF10498, 0xF741ECDA, 0x0E7FCD50, 0x2F1791F6, + 0x8D764DD6, 0x4D43EFB0, 0x54CCAA4D, 0xDFE49604, 0xE39ED1B5, 0x1B4C6A88, 0xB8C12C1F, 0x7F466551, + 0x049D5EEA, 0x5D018C35, 0x73FA8774, 0x2EFB0B41, 0x5AB3671D, 0x5292DBD2, 0x33E91056, 0x136DD647, + 0x8C9AD761, 0x7A37A10C, 0x8E59F814, 0x89EB133C, 0xEECEA927, 0x35B761C9, 0xEDE11CE5, 0x3C7A47B1, + 0x599CD2DF, 0x3F55F273, 0x791814CE, 0xBF73C737, 0xEA53F7CD, 0x5B5FFDAA, 0x14DF3D6F, 0x867844DB, + 0x81CAAFF3, 0x3EB968C4, 0x2C382434, 0x5FC2A340, 0x72161DC3, 0x0CBCE225, 0x8B283C49, 0x41FF0D95, + 0x7139A801, 0xDE080CB3, 0x9CD8B4E4, 0x906456C1, 0x617BCB84, 0x70D532B6, 0x74486C5C, 0x42D0B857 + ); + + /** + * Precomputed invMixColumns table + * + * @see Crypt_Rijndael:_encryptBlock() + * @see Crypt_Rijndael:_decryptBlock() + * @var Array + * @access private + */ + var $dt2 = array( + 0xA75051F4, 0x65537E41, 0xA4C31A17, 0x5E963A27, 0x6BCB3BAB, 0x45F11F9D, 0x58ABACFA, 0x03934BE3, + 0xFA552030, 0x6DF6AD76, 0x769188CC, 0x4C25F502, 0xD7FC4FE5, 0xCBD7C52A, 0x44802635, 0xA38FB562, + 0x5A49DEB1, 0x1B6725BA, 0x0E9845EA, 0xC0E15DFE, 0x7502C32F, 0xF012814C, 0x97A38D46, 0xF9C66BD3, + 0x5FE7038F, 0x9C951592, 0x7AEBBF6D, 0x59DA9552, 0x832DD4BE, 0x21D35874, 0x692949E0, 0xC8448EC9, + 0x896A75C2, 0x7978F48E, 0x3E6B9958, 0x71DD27B9, 0x4FB6BEE1, 0xAD17F088, 0xAC66C920, 0x3AB47DCE, + 0x4A1863DF, 0x3182E51A, 0x33609751, 0x7F456253, 0x77E0B164, 0xAE84BB6B, 0xA01CFE81, 0x2B94F908, + 0x68587048, 0xFD198F45, 0x6C8794DE, 0xF8B7527B, 0xD323AB73, 0x02E2724B, 0x8F57E31F, 0xAB2A6655, + 0x2807B2EB, 0xC2032FB5, 0x7B9A86C5, 0x08A5D337, 0x87F23028, 0xA5B223BF, 0x6ABA0203, 0x825CED16, + 0x1C2B8ACF, 0xB492A779, 0xF2F0F307, 0xE2A14E69, 0xF4CD65DA, 0xBED50605, 0x621FD134, 0xFE8AC4A6, + 0x539D342E, 0x55A0A2F3, 0xE132058A, 0xEB75A4F6, 0xEC390B83, 0xEFAA4060, 0x9F065E71, 0x1051BD6E, + 0x8AF93E21, 0x063D96DD, 0x05AEDD3E, 0xBD464DE6, 0x8DB59154, 0x5D0571C4, 0xD46F0406, 0x15FF6050, + 0xFB241998, 0xE997D6BD, 0x43CC8940, 0x9E7767D9, 0x42BDB0E8, 0x8B880789, 0x5B38E719, 0xEEDB79C8, + 0x0A47A17C, 0x0FE97C42, 0x1EC9F884, 0x00000000, 0x86830980, 0xED48322B, 0x70AC1E11, 0x724E6C5A, + 0xFFFBFD0E, 0x38560F85, 0xD51E3DAE, 0x3927362D, 0xD9640A0F, 0xA621685C, 0x54D19B5B, 0x2E3A2436, + 0x67B10C0A, 0xE70F9357, 0x96D2B4EE, 0x919E1B9B, 0xC54F80C0, 0x20A261DC, 0x4B695A77, 0x1A161C12, + 0xBA0AE293, 0x2AE5C0A0, 0xE0433C22, 0x171D121B, 0x0D0B0E09, 0xC7ADF28B, 0xA8B92DB6, 0xA9C8141E, + 0x198557F1, 0x074CAF75, 0xDDBBEE99, 0x60FDA37F, 0x269FF701, 0xF5BC5C72, 0x3BC54466, 0x7E345BFB, + 0x29768B43, 0xC6DCCB23, 0xFC68B6ED, 0xF163B8E4, 0xDCCAD731, 0x85104263, 0x22401397, 0x112084C6, + 0x247D854A, 0x3DF8D2BB, 0x3211AEF9, 0xA16DC729, 0x2F4B1D9E, 0x30F3DCB2, 0x52EC0D86, 0xE3D077C1, + 0x166C2BB3, 0xB999A970, 0x48FA1194, 0x642247E9, 0x8CC4A8FC, 0x3F1AA0F0, 0x2CD8567D, 0x90EF2233, + 0x4EC78749, 0xD1C1D938, 0xA2FE8CCA, 0x0B3698D4, 0x81CFA6F5, 0xDE28A57A, 0x8E26DAB7, 0xBFA43FAD, + 0x9DE42C3A, 0x920D5078, 0xCC9B6A5F, 0x4662547E, 0x13C2F68D, 0xB8E890D8, 0xF75E2E39, 0xAFF582C3, + 0x80BE9F5D, 0x937C69D0, 0x2DA96FD5, 0x12B3CF25, 0x993BC8AC, 0x7DA71018, 0x636EE89C, 0xBB7BDB3B, + 0x7809CD26, 0x18F46E59, 0xB701EC9A, 0x9AA8834F, 0x6E65E695, 0xE67EAAFF, 0xCF0821BC, 0xE8E6EF15, + 0x9BD9BAE7, 0x36CE4A6F, 0x09D4EA9F, 0x7CD629B0, 0xB2AF31A4, 0x23312A3F, 0x9430C6A5, 0x66C035A2, + 0xBC37744E, 0xCAA6FC82, 0xD0B0E090, 0xD81533A7, 0x984AF104, 0xDAF741EC, 0x500E7FCD, 0xF62F1791, + 0xD68D764D, 0xB04D43EF, 0x4D54CCAA, 0x04DFE496, 0xB5E39ED1, 0x881B4C6A, 0x1FB8C12C, 0x517F4665, + 0xEA049D5E, 0x355D018C, 0x7473FA87, 0x412EFB0B, 0x1D5AB367, 0xD25292DB, 0x5633E910, 0x47136DD6, + 0x618C9AD7, 0x0C7A37A1, 0x148E59F8, 0x3C89EB13, 0x27EECEA9, 0xC935B761, 0xE5EDE11C, 0xB13C7A47, + 0xDF599CD2, 0x733F55F2, 0xCE791814, 0x37BF73C7, 0xCDEA53F7, 0xAA5B5FFD, 0x6F14DF3D, 0xDB867844, + 0xF381CAAF, 0xC43EB968, 0x342C3824, 0x405FC2A3, 0xC372161D, 0x250CBCE2, 0x498B283C, 0x9541FF0D, + 0x017139A8, 0xB3DE080C, 0xE49CD8B4, 0xC1906456, 0x84617BCB, 0xB670D532, 0x5C74486C, 0x5742D0B8 + ); + + /** + * Precomputed invMixColumns table + * + * @see Crypt_Rijndael:_encryptBlock() + * @see Crypt_Rijndael:_decryptBlock() + * @var Array + * @access private + */ + var $dt3 = array( + 0xF4A75051, 0x4165537E, 0x17A4C31A, 0x275E963A, 0xAB6BCB3B, 0x9D45F11F, 0xFA58ABAC, 0xE303934B, + 0x30FA5520, 0x766DF6AD, 0xCC769188, 0x024C25F5, 0xE5D7FC4F, 0x2ACBD7C5, 0x35448026, 0x62A38FB5, + 0xB15A49DE, 0xBA1B6725, 0xEA0E9845, 0xFEC0E15D, 0x2F7502C3, 0x4CF01281, 0x4697A38D, 0xD3F9C66B, + 0x8F5FE703, 0x929C9515, 0x6D7AEBBF, 0x5259DA95, 0xBE832DD4, 0x7421D358, 0xE0692949, 0xC9C8448E, + 0xC2896A75, 0x8E7978F4, 0x583E6B99, 0xB971DD27, 0xE14FB6BE, 0x88AD17F0, 0x20AC66C9, 0xCE3AB47D, + 0xDF4A1863, 0x1A3182E5, 0x51336097, 0x537F4562, 0x6477E0B1, 0x6BAE84BB, 0x81A01CFE, 0x082B94F9, + 0x48685870, 0x45FD198F, 0xDE6C8794, 0x7BF8B752, 0x73D323AB, 0x4B02E272, 0x1F8F57E3, 0x55AB2A66, + 0xEB2807B2, 0xB5C2032F, 0xC57B9A86, 0x3708A5D3, 0x2887F230, 0xBFA5B223, 0x036ABA02, 0x16825CED, + 0xCF1C2B8A, 0x79B492A7, 0x07F2F0F3, 0x69E2A14E, 0xDAF4CD65, 0x05BED506, 0x34621FD1, 0xA6FE8AC4, + 0x2E539D34, 0xF355A0A2, 0x8AE13205, 0xF6EB75A4, 0x83EC390B, 0x60EFAA40, 0x719F065E, 0x6E1051BD, + 0x218AF93E, 0xDD063D96, 0x3E05AEDD, 0xE6BD464D, 0x548DB591, 0xC45D0571, 0x06D46F04, 0x5015FF60, + 0x98FB2419, 0xBDE997D6, 0x4043CC89, 0xD99E7767, 0xE842BDB0, 0x898B8807, 0x195B38E7, 0xC8EEDB79, + 0x7C0A47A1, 0x420FE97C, 0x841EC9F8, 0x00000000, 0x80868309, 0x2BED4832, 0x1170AC1E, 0x5A724E6C, + 0x0EFFFBFD, 0x8538560F, 0xAED51E3D, 0x2D392736, 0x0FD9640A, 0x5CA62168, 0x5B54D19B, 0x362E3A24, + 0x0A67B10C, 0x57E70F93, 0xEE96D2B4, 0x9B919E1B, 0xC0C54F80, 0xDC20A261, 0x774B695A, 0x121A161C, + 0x93BA0AE2, 0xA02AE5C0, 0x22E0433C, 0x1B171D12, 0x090D0B0E, 0x8BC7ADF2, 0xB6A8B92D, 0x1EA9C814, + 0xF1198557, 0x75074CAF, 0x99DDBBEE, 0x7F60FDA3, 0x01269FF7, 0x72F5BC5C, 0x663BC544, 0xFB7E345B, + 0x4329768B, 0x23C6DCCB, 0xEDFC68B6, 0xE4F163B8, 0x31DCCAD7, 0x63851042, 0x97224013, 0xC6112084, + 0x4A247D85, 0xBB3DF8D2, 0xF93211AE, 0x29A16DC7, 0x9E2F4B1D, 0xB230F3DC, 0x8652EC0D, 0xC1E3D077, + 0xB3166C2B, 0x70B999A9, 0x9448FA11, 0xE9642247, 0xFC8CC4A8, 0xF03F1AA0, 0x7D2CD856, 0x3390EF22, + 0x494EC787, 0x38D1C1D9, 0xCAA2FE8C, 0xD40B3698, 0xF581CFA6, 0x7ADE28A5, 0xB78E26DA, 0xADBFA43F, + 0x3A9DE42C, 0x78920D50, 0x5FCC9B6A, 0x7E466254, 0x8D13C2F6, 0xD8B8E890, 0x39F75E2E, 0xC3AFF582, + 0x5D80BE9F, 0xD0937C69, 0xD52DA96F, 0x2512B3CF, 0xAC993BC8, 0x187DA710, 0x9C636EE8, 0x3BBB7BDB, + 0x267809CD, 0x5918F46E, 0x9AB701EC, 0x4F9AA883, 0x956E65E6, 0xFFE67EAA, 0xBCCF0821, 0x15E8E6EF, + 0xE79BD9BA, 0x6F36CE4A, 0x9F09D4EA, 0xB07CD629, 0xA4B2AF31, 0x3F23312A, 0xA59430C6, 0xA266C035, + 0x4EBC3774, 0x82CAA6FC, 0x90D0B0E0, 0xA7D81533, 0x04984AF1, 0xECDAF741, 0xCD500E7F, 0x91F62F17, + 0x4DD68D76, 0xEFB04D43, 0xAA4D54CC, 0x9604DFE4, 0xD1B5E39E, 0x6A881B4C, 0x2C1FB8C1, 0x65517F46, + 0x5EEA049D, 0x8C355D01, 0x877473FA, 0x0B412EFB, 0x671D5AB3, 0xDBD25292, 0x105633E9, 0xD647136D, + 0xD7618C9A, 0xA10C7A37, 0xF8148E59, 0x133C89EB, 0xA927EECE, 0x61C935B7, 0x1CE5EDE1, 0x47B13C7A, + 0xD2DF599C, 0xF2733F55, 0x14CE7918, 0xC737BF73, 0xF7CDEA53, 0xFDAA5B5F, 0x3D6F14DF, 0x44DB8678, + 0xAFF381CA, 0x68C43EB9, 0x24342C38, 0xA3405FC2, 0x1DC37216, 0xE2250CBC, 0x3C498B28, 0x0D9541FF, + 0xA8017139, 0x0CB3DE08, 0xB4E49CD8, 0x56C19064, 0xCB84617B, 0x32B670D5, 0x6C5C7448, 0xB85742D0 + ); + + /** + * The SubByte S-Box + * + * @see Crypt_Rijndael::_encryptBlock() + * @var Array + * @access private + */ + var $sbox = array( + 0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76, + 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0, + 0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15, + 0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x75, + 0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x84, + 0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xCF, + 0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA8, + 0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD2, + 0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x73, + 0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xDB, + 0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x79, + 0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x08, + 0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8A, + 0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E, + 0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF, + 0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16 + ); + + /** + * The inverse SubByte S-Box + * + * @see Crypt_Rijndael::_decryptBlock() + * @var Array + * @access private + */ + var $isbox = array( + 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB, + 0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB, + 0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E, + 0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x25, + 0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x92, + 0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x84, + 0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x06, + 0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6B, + 0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x73, + 0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6E, + 0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1B, + 0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4, + 0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F, + 0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF, + 0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61, + 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D + ); + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. + * + * $mode could be: + * + * - CRYPT_RIJNDAEL_MODE_ECB + * + * - CRYPT_RIJNDAEL_MODE_CBC + * + * - CRYPT_RIJNDAEL_MODE_CTR + * + * - CRYPT_RIJNDAEL_MODE_CFB + * + * - CRYPT_RIJNDAEL_MODE_OFB + * + * If not explictly set, CRYPT_RIJNDAEL_MODE_CBC will be used. + * + * @see Crypt_Base::Crypt_Base() + * @param optional Integer $mode + * @access public + */ + function Crypt_Rijndael($mode = CRYPT_RIJNDAEL_MODE_CBC) + { + parent::Crypt_Base($mode); + } + + /** + * Sets the key. + * + * Keys can be of any length. Rijndael, itself, requires the use of a key that's between 128-bits and 256-bits long and + * whose length is a multiple of 32. If the key is less than 256-bits and the key length isn't set, we round the length + * up to the closest valid key length, padding $key with null bytes. If the key is more than 256-bits, we trim the + * excess bits. + * + * If the key is not explicitly set, it'll be assumed to be all null bytes. + * + * Note: 160/224-bit keys must explicitly set by setKeyLength(), otherwise they will be round/pad up to 192/256 bits. + * + * @see Crypt_Base:setKey() + * @see setKeyLength() + * @access public + * @param String $key + */ + function setKey($key) + { + parent::setKey($key); + + if (!$this->explicit_key_length) { + $length = strlen($key); + switch (true) { + case $length <= 16: + $this->key_size = 16; + break; + case $length <= 24: + $this->key_size = 24; + break; + default: + $this->key_size = 32; + } + $this->_setupEngine(); + } + } + + /** + * Sets the key length + * + * Valid key lengths are 128, 160, 192, 224, and 256. If the length is less than 128, it will be rounded up to + * 128. If the length is greater than 128 and invalid, it will be rounded down to the closest valid amount. + * + * Note: phpseclib extends Rijndael (and AES) for using 160- and 224-bit keys but they are officially not defined + * and the most (if not all) implementations are not able using 160/224-bit keys but round/pad them up to + * 192/256 bits as, for example, mcrypt will do. + * + * That said, if you want be compatible with other Rijndael and AES implementations, + * you should not setKeyLength(160) or setKeyLength(224). + * + * Additional: In case of 160- and 224-bit keys, phpseclib will/can, for that reason, not use + * the mcrypt php extention, even if available. + * This results then in slower encryption. + * + * @access public + * @param Integer $length + */ + function setKeyLength($length) + { + switch (true) { + case $length == 160: + $this->key_size = 20; + break; + case $length == 224: + $this->key_size = 28; + break; + case $length <= 128: + $this->key_size = 16; + break; + case $length <= 192: + $this->key_size = 24; + break; + default: + $this->key_size = 32; + } + + $this->explicit_key_length = true; + $this->changed = true; + $this->_setupEngine(); + } + + /** + * Sets the block length + * + * Valid block lengths are 128, 160, 192, 224, and 256. If the length is less than 128, it will be rounded up to + * 128. If the length is greater than 128 and invalid, it will be rounded down to the closest valid amount. + * + * @access public + * @param Integer $length + */ + function setBlockLength($length) + { + $length >>= 5; + if ($length > 8) { + $length = 8; + } else if ($length < 4) { + $length = 4; + } + $this->Nb = $length; + $this->block_size = $length << 2; + $this->changed = true; + $this->_setupEngine(); + } + + /** + * Setup the fastest possible $engine + * + * Determines if the mcrypt (MODE_MCRYPT) $engine available + * and usable for the current $block_size and $key_size. + * + * If not, the slower MODE_INTERNAL $engine will be set. + * + * @see setKey() + * @see setKeyLength() + * @see setBlockLength() + * @access private + */ + function _setupEngine() + { + if (constant('CRYPT_' . $this->const_namespace . '_MODE') == CRYPT_MODE_INTERNAL) { + // No mcrypt support at all for rijndael + return; + } + + // The required mcrypt module name for the current $block_size of rijndael + $cipher_name_mcrypt = 'rijndael-' . ($this->block_size << 3); + + // Determining the availibility/usability of $cipher_name_mcrypt + switch (true) { + case $this->key_size % 8: // mcrypt is not usable for 160/224-bit keys, only for 128/192/256-bit keys + case !in_array($cipher_name_mcrypt, mcrypt_list_algorithms()): // $cipher_name_mcrypt is not available for the current $block_size + $engine = CRYPT_MODE_INTERNAL; + break; + default: + $engine = CRYPT_MODE_MCRYPT; + } + + if ($this->engine == $engine && $this->cipher_name_mcrypt == $cipher_name_mcrypt) { + // allready set, so we not unnecessary close $this->enmcrypt/demcrypt/ecb + return; + } + + // Set the $engine + $this->engine = $engine; + $this->cipher_name_mcrypt = $cipher_name_mcrypt; + + if ($this->enmcrypt) { + // Closing the current mcrypt resource(s). _mcryptSetup() will, if needed, + // (re)open them with the module named in $this->cipher_name_mcrypt + mcrypt_module_close($this->enmcrypt); + mcrypt_module_close($this->demcrypt); + $this->enmcrypt = null; + $this->demcrypt = null; + + if ($this->ecb) { + mcrypt_module_close($this->ecb); + $this->ecb = null; + } + } + } + + /** + * Setup the CRYPT_MODE_MCRYPT $engine + * + * @see Crypt_Base::_setupMcrypt() + * @access private + */ + function _setupMcrypt() + { + $this->key = str_pad(substr($this->key, 0, $this->key_size), $this->key_size, "\0"); + parent::_setupMcrypt(); + } + + /** + * Encrypts a block + * + * @access private + * @param String $in + * @return String + */ + function _encryptBlock($in) + { + static $t0, $t1, $t2, $t3, $sbox; + if (!$t0) { + for ($i = 0; $i < 256; ++$i) { + $t0[] = (int)$this->t0[$i]; + $t1[] = (int)$this->t1[$i]; + $t2[] = (int)$this->t2[$i]; + $t3[] = (int)$this->t3[$i]; + $sbox[] = (int)$this->sbox[$i]; + } + } + + $state = array(); + $words = unpack('N*', $in); + + $c = $this->c; + $w = $this->w; + $Nb = $this->Nb; + $Nr = $this->Nr; + + // addRoundKey + $i = -1; + foreach ($words as $word) { + $state[] = $word ^ $w[0][++$i]; + } + + // fips-197.pdf#page=19, "Figure 5. Pseudo Code for the Cipher", states that this loop has four components - + // subBytes, shiftRows, mixColumns, and addRoundKey. fips-197.pdf#page=30, "Implementation Suggestions Regarding + // Various Platforms" suggests that performs enhanced implementations are described in Rijndael-ammended.pdf. + // Rijndael-ammended.pdf#page=20, "Implementation aspects / 32-bit processor", discusses such an optimization. + // Unfortunately, the description given there is not quite correct. Per aes.spec.v316.pdf#page=19 [1], + // equation (7.4.7) is supposed to use addition instead of subtraction, so we'll do that here, as well. + + // [1] http://fp.gladman.plus.com/cryptography_technology/rijndael/aes.spec.v316.pdf + $temp = array(); + for ($round = 1; $round < $Nr; ++$round) { + $i = 0; // $c[0] == 0 + $j = $c[1]; + $k = $c[2]; + $l = $c[3]; + + while ($i < $Nb) { + $temp[$i] = $t0[$state[$i] >> 24 & 0x000000FF] ^ + $t1[$state[$j] >> 16 & 0x000000FF] ^ + $t2[$state[$k] >> 8 & 0x000000FF] ^ + $t3[$state[$l] & 0x000000FF] ^ + $w[$round][$i]; + ++$i; + $j = ($j + 1) % $Nb; + $k = ($k + 1) % $Nb; + $l = ($l + 1) % $Nb; + } + $state = $temp; + } + + // subWord + for ($i = 0; $i < $Nb; ++$i) { + $state[$i] = $sbox[$state[$i] & 0x000000FF] | + ($sbox[$state[$i] >> 8 & 0x000000FF] << 8) | + ($sbox[$state[$i] >> 16 & 0x000000FF] << 16) | + ($sbox[$state[$i] >> 24 & 0x000000FF] << 24); + } + + // shiftRows + addRoundKey + $i = 0; // $c[0] == 0 + $j = $c[1]; + $k = $c[2]; + $l = $c[3]; + while ($i < $Nb) { + $temp[$i] = ($state[$i] & 0xFF000000) ^ + ($state[$j] & 0x00FF0000) ^ + ($state[$k] & 0x0000FF00) ^ + ($state[$l] & 0x000000FF) ^ + $w[$Nr][$i]; + ++$i; + $j = ($j + 1) % $Nb; + $k = ($k + 1) % $Nb; + $l = ($l + 1) % $Nb; + } + + switch ($Nb) { + case 8: + return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6], $temp[7]); + case 7: + return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6]); + case 6: + return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5]); + case 5: + return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4]); + default: + return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3]); + } + } + + /** + * Decrypts a block + * + * @access private + * @param String $in + * @return String + */ + function _decryptBlock($in) + { + static $dt0, $dt1, $dt2, $dt3, $isbox; + if (!$dt0) { + for ($i = 0; $i < 256; ++$i) { + $dt0[] = (int)$this->dt0[$i]; + $dt1[] = (int)$this->dt1[$i]; + $dt2[] = (int)$this->dt2[$i]; + $dt3[] = (int)$this->dt3[$i]; + $isbox[] = (int)$this->isbox[$i]; + } + } + + $state = array(); + $words = unpack('N*', $in); + + $c = $this->c; + $dw = $this->dw; + $Nb = $this->Nb; + $Nr = $this->Nr; + + // addRoundKey + $i = -1; + foreach ($words as $word) { + $state[] = $word ^ $dw[$Nr][++$i]; + } + + $temp = array(); + for ($round = $Nr - 1; $round > 0; --$round) { + $i = 0; // $c[0] == 0 + $j = $Nb - $c[1]; + $k = $Nb - $c[2]; + $l = $Nb - $c[3]; + + while ($i < $Nb) { + $temp[$i] = $dt0[$state[$i] >> 24 & 0x000000FF] ^ + $dt1[$state[$j] >> 16 & 0x000000FF] ^ + $dt2[$state[$k] >> 8 & 0x000000FF] ^ + $dt3[$state[$l] & 0x000000FF] ^ + $dw[$round][$i]; + ++$i; + $j = ($j + 1) % $Nb; + $k = ($k + 1) % $Nb; + $l = ($l + 1) % $Nb; + } + $state = $temp; + } + + // invShiftRows + invSubWord + addRoundKey + $i = 0; // $c[0] == 0 + $j = $Nb - $c[1]; + $k = $Nb - $c[2]; + $l = $Nb - $c[3]; + + while ($i < $Nb) { + $word = ($state[$i] & 0xFF000000) | + ($state[$j] & 0x00FF0000) | + ($state[$k] & 0x0000FF00) | + ($state[$l] & 0x000000FF); + + $temp[$i] = $dw[0][$i] ^ ($isbox[$word & 0x000000FF] | + ($isbox[$word >> 8 & 0x000000FF] << 8) | + ($isbox[$word >> 16 & 0x000000FF] << 16) | + ($isbox[$word >> 24 & 0x000000FF] << 24)); + ++$i; + $j = ($j + 1) % $Nb; + $k = ($k + 1) % $Nb; + $l = ($l + 1) % $Nb; + } + + switch ($Nb) { + case 8: + return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6], $temp[7]); + case 7: + return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5], $temp[6]); + case 6: + return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4], $temp[5]); + case 5: + return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3], $temp[4]); + default: + return pack('N*', $temp[0], $temp[1], $temp[2], $temp[3]); + } + } + + /** + * Setup the key (expansion) + * + * @see Crypt_Base::_setupKey() + * @access private + */ + function _setupKey() + { + // Each number in $rcon is equal to the previous number multiplied by two in Rijndael's finite field. + // See http://en.wikipedia.org/wiki/Finite_field_arithmetic#Multiplicative_inverse + static $rcon = array(0, + 0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, + 0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000, + 0x6C000000, 0xD8000000, 0xAB000000, 0x4D000000, 0x9A000000, + 0x2F000000, 0x5E000000, 0xBC000000, 0x63000000, 0xC6000000, + 0x97000000, 0x35000000, 0x6A000000, 0xD4000000, 0xB3000000, + 0x7D000000, 0xFA000000, 0xEF000000, 0xC5000000, 0x91000000 + ); + + $this->key = str_pad(substr($this->key, 0, $this->key_size), $this->key_size, "\0"); + + if (isset($this->kl['key']) && $this->key === $this->kl['key'] && $this->key_size === $this->kl['key_size'] && $this->block_size === $this->kl['block_size']) { + // already expanded + return; + } + $this->kl = array('key' => $this->key, 'key_size' => $this->key_size, 'block_size' => $this->block_size); + + $this->Nk = $this->key_size >> 2; + // see Rijndael-ammended.pdf#page=44 + $this->Nr = max($this->Nk, $this->Nb) + 6; + + // shift offsets for Nb = 5, 7 are defined in Rijndael-ammended.pdf#page=44, + // "Table 8: Shift offsets in Shiftrow for the alternative block lengths" + // shift offsets for Nb = 4, 6, 8 are defined in Rijndael-ammended.pdf#page=14, + // "Table 2: Shift offsets for different block lengths" + switch ($this->Nb) { + case 4: + case 5: + case 6: + $this->c = array(0, 1, 2, 3); + break; + case 7: + $this->c = array(0, 1, 2, 4); + break; + case 8: + $this->c = array(0, 1, 3, 4); + } + + $w = array_values(unpack('N*words', $this->key)); + + $length = $this->Nb * ($this->Nr + 1); + for ($i = $this->Nk; $i < $length; $i++) { + $temp = $w[$i - 1]; + if ($i % $this->Nk == 0) { + // according to , "the size of an integer is platform-dependent". + // on a 32-bit machine, it's 32-bits, and on a 64-bit machine, it's 64-bits. on a 32-bit machine, + // 0xFFFFFFFF << 8 == 0xFFFFFF00, but on a 64-bit machine, it equals 0xFFFFFFFF00. as such, doing 'and' + // with 0xFFFFFFFF (or 0xFFFFFF00) on a 32-bit machine is unnecessary, but on a 64-bit machine, it is. + $temp = (($temp << 8) & 0xFFFFFF00) | (($temp >> 24) & 0x000000FF); // rotWord + $temp = $this->_subWord($temp) ^ $rcon[$i / $this->Nk]; + } else if ($this->Nk > 6 && $i % $this->Nk == 4) { + $temp = $this->_subWord($temp); + } + $w[$i] = $w[$i - $this->Nk] ^ $temp; + } + + // convert the key schedule from a vector of $Nb * ($Nr + 1) length to a matrix with $Nr + 1 rows and $Nb columns + // and generate the inverse key schedule. more specifically, + // according to (section 5.3.3), + // "The key expansion for the Inverse Cipher is defined as follows: + // 1. Apply the Key Expansion. + // 2. Apply InvMixColumn to all Round Keys except the first and the last one." + // also, see fips-197.pdf#page=27, "5.3.5 Equivalent Inverse Cipher" + $temp = $this->w = $this->dw = array(); + for ($i = $row = $col = 0; $i < $length; $i++, $col++) { + if ($col == $this->Nb) { + if ($row == 0) { + $this->dw[0] = $this->w[0]; + } else { + // subWord + invMixColumn + invSubWord = invMixColumn + $j = 0; + while ($j < $this->Nb) { + $dw = $this->_subWord($this->w[$row][$j]); + $temp[$j] = $this->dt0[$dw >> 24 & 0x000000FF] ^ + $this->dt1[$dw >> 16 & 0x000000FF] ^ + $this->dt2[$dw >> 8 & 0x000000FF] ^ + $this->dt3[$dw & 0x000000FF]; + $j++; + } + $this->dw[$row] = $temp; + } + + $col = 0; + $row++; + } + $this->w[$row][$col] = $w[$i]; + } + + $this->dw[$row] = $this->w[$row]; + + // In case of $this->use_inline_crypt === true we have to use 1-dim key arrays (both ascending) + if ($this->use_inline_crypt) { + $this->dw = array_reverse($this->dw); + $w = array_pop($this->w); + $dw = array_pop($this->dw); + foreach ($this->w as $r => $wr) { + foreach ($wr as $c => $wc) { + $w[] = $wc; + $dw[] = $this->dw[$r][$c]; + } + } + $this->w = $w; + $this->dw = $dw; + } + } + + /** + * Performs S-Box substitutions + * + * @access private + * @param Integer $word + */ + function _subWord($word) + { + $sbox = $this->sbox; + + return $sbox[$word & 0x000000FF] | + ($sbox[$word >> 8 & 0x000000FF] << 8) | + ($sbox[$word >> 16 & 0x000000FF] << 16) | + ($sbox[$word >> 24 & 0x000000FF] << 24); + } + + /** + * Setup the performance-optimized function for de/encrypt() + * + * @see Crypt_Base::_setupInlineCrypt() + * @access private + */ + function _setupInlineCrypt() + { + // Note: _setupInlineCrypt() will be called only if $this->changed === true + // So here we are'nt under the same heavy timing-stress as we are in _de/encryptBlock() or de/encrypt(). + // However...the here generated function- $code, stored as php callback in $this->inline_crypt, must work as fast as even possible. + + $lambda_functions =& Crypt_Rijndael::_getLambdaFunctions(); + + // The first 10 generated $lambda_functions will use the key-words hardcoded for better performance. + // For memory reason we limit those ultra-optimized functions. + // After that, we use pure (extracted) integer vars for the key-words which is faster than accessing them via array. + if (count($lambda_functions) < 10) { + $w = $this->w; + $dw = $this->dw; + $init_encrypt = ''; + $init_decrypt = ''; + } else { + for ($i = 0, $cw = count($this->w); $i < $cw; ++$i) { + $w[] = '$w[' . $i . ']'; + $dw[] = '$dw[' . $i . ']'; + } + $init_encrypt = '$w = $self->w;'; + $init_decrypt = '$dw = $self->dw;'; + } + + $code_hash = md5(str_pad("Crypt_Rijndael, {$this->mode}, {$this->block_size}, ", 32, "\0") . implode(',', $w)); + + if (!isset($lambda_functions[$code_hash])) { + $Nr = $this->Nr; + $Nb = $this->Nb; + $c = $this->c; + + // Generating encrypt code: + $init_encrypt.= ' + static $t0, $t1, $t2, $t3, $sbox; + if (!$t0) { + for ($i = 0; $i < 256; ++$i) { + $t0[$i] = (int)$self->t0[$i]; + $t1[$i] = (int)$self->t1[$i]; + $t2[$i] = (int)$self->t2[$i]; + $t3[$i] = (int)$self->t3[$i]; + $sbox[$i] = (int)$self->sbox[$i]; + } + } + '; + + $s = 'e'; + $e = 's'; + $wc = $Nb - 1; + + // Preround: addRoundKey + $encrypt_block = '$in = unpack("N*", $in);'."\n"; + for ($i = 0; $i < $Nb; ++$i) { + $encrypt_block .= '$s'.$i.' = $in['.($i + 1).'] ^ '.$w[++$wc].";\n"; + } + + // Mainrounds: shiftRows + subWord + mixColumns + addRoundKey + for ($round = 1; $round < $Nr; ++$round) { + list($s, $e) = array($e, $s); + for ($i = 0; $i < $Nb; ++$i) { + $encrypt_block.= + '$'.$e.$i.' = + $t0[($'.$s.$i .' >> 24) & 0xff] ^ + $t1[($'.$s.(($i + $c[1]) % $Nb).' >> 16) & 0xff] ^ + $t2[($'.$s.(($i + $c[2]) % $Nb).' >> 8) & 0xff] ^ + $t3[ $'.$s.(($i + $c[3]) % $Nb).' & 0xff] ^ + '.$w[++$wc].";\n"; + } + } + + // Finalround: subWord + shiftRows + addRoundKey + for ($i = 0; $i < $Nb; ++$i) { + $encrypt_block.= + '$'.$e.$i.' = + $sbox[ $'.$e.$i.' & 0xff] | + ($sbox[($'.$e.$i.' >> 8) & 0xff] << 8) | + ($sbox[($'.$e.$i.' >> 16) & 0xff] << 16) | + ($sbox[($'.$e.$i.' >> 24) & 0xff] << 24);'."\n"; + } + $encrypt_block .= '$in = pack("N*"'."\n"; + for ($i = 0; $i < $Nb; ++$i) { + $encrypt_block.= ', + ($'.$e.$i .' & 0xFF000000) ^ + ($'.$e.(($i + $c[1]) % $Nb).' & 0x00FF0000) ^ + ($'.$e.(($i + $c[2]) % $Nb).' & 0x0000FF00) ^ + ($'.$e.(($i + $c[3]) % $Nb).' & 0x000000FF) ^ + '.$w[$i]."\n"; + } + $encrypt_block .= ');'; + + // Generating decrypt code: + $init_decrypt.= ' + static $dt0, $dt1, $dt2, $dt3, $isbox; + if (!$dt0) { + for ($i = 0; $i < 256; ++$i) { + $dt0[$i] = (int)$self->dt0[$i]; + $dt1[$i] = (int)$self->dt1[$i]; + $dt2[$i] = (int)$self->dt2[$i]; + $dt3[$i] = (int)$self->dt3[$i]; + $isbox[$i] = (int)$self->isbox[$i]; + } + } + '; + + $s = 'e'; + $e = 's'; + $wc = $Nb - 1; + + // Preround: addRoundKey + $decrypt_block = '$in = unpack("N*", $in);'."\n"; + for ($i = 0; $i < $Nb; ++$i) { + $decrypt_block .= '$s'.$i.' = $in['.($i + 1).'] ^ '.$dw[++$wc].';'."\n"; + } + + // Mainrounds: shiftRows + subWord + mixColumns + addRoundKey + for ($round = 1; $round < $Nr; ++$round) { + list($s, $e) = array($e, $s); + for ($i = 0; $i < $Nb; ++$i) { + $decrypt_block.= + '$'.$e.$i.' = + $dt0[($'.$s.$i .' >> 24) & 0xff] ^ + $dt1[($'.$s.(($Nb + $i - $c[1]) % $Nb).' >> 16) & 0xff] ^ + $dt2[($'.$s.(($Nb + $i - $c[2]) % $Nb).' >> 8) & 0xff] ^ + $dt3[ $'.$s.(($Nb + $i - $c[3]) % $Nb).' & 0xff] ^ + '.$dw[++$wc].";\n"; + } + } + + // Finalround: subWord + shiftRows + addRoundKey + for ($i = 0; $i < $Nb; ++$i) { + $decrypt_block.= + '$'.$e.$i.' = + $isbox[ $'.$e.$i.' & 0xff] | + ($isbox[($'.$e.$i.' >> 8) & 0xff] << 8) | + ($isbox[($'.$e.$i.' >> 16) & 0xff] << 16) | + ($isbox[($'.$e.$i.' >> 24) & 0xff] << 24);'."\n"; + } + $decrypt_block .= '$in = pack("N*"'."\n"; + for ($i = 0; $i < $Nb; ++$i) { + $decrypt_block.= ', + ($'.$e.$i. ' & 0xFF000000) ^ + ($'.$e.(($Nb + $i - $c[1]) % $Nb).' & 0x00FF0000) ^ + ($'.$e.(($Nb + $i - $c[2]) % $Nb).' & 0x0000FF00) ^ + ($'.$e.(($Nb + $i - $c[3]) % $Nb).' & 0x000000FF) ^ + '.$dw[$i]."\n"; + } + $decrypt_block .= ');'; + + $lambda_functions[$code_hash] = $this->_createInlineCryptFunction( + array( + 'init_crypt' => '', + 'init_encrypt' => $init_encrypt, + 'init_decrypt' => $init_decrypt, + 'encrypt_block' => $encrypt_block, + 'decrypt_block' => $decrypt_block + ) + ); + } + $this->inline_crypt = $lambda_functions[$code_hash]; + } +} diff --git a/lam/lib/3rdParty/phpseclib/Crypt/TripleDES.php b/lam/lib/3rdParty/phpseclib/Crypt/TripleDES.php new file mode 100644 index 00000000..21318209 --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/Crypt/TripleDES.php @@ -0,0 +1,419 @@ + + * setKey('abcdefghijklmnopqrstuvwx'); + * + * $size = 10 * 1024; + * $plaintext = ''; + * for ($i = 0; $i < $size; $i++) { + * $plaintext.= 'a'; + * } + * + * echo $des->decrypt($des->encrypt($plaintext)); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Crypt + * @package Crypt_TripleDES + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Crypt_DES + */ +if (!class_exists('Crypt_DES')) { + include_once 'DES.php'; +} + +/** + * Encrypt / decrypt using inner chaining + * + * Inner chaining is used by SSH-1 and is generally considered to be less secure then outer chaining (CRYPT_DES_MODE_CBC3). + */ +define('CRYPT_DES_MODE_3CBC', -2); + +/** + * Encrypt / decrypt using outer chaining + * + * Outer chaining is used by SSH-2 and when the mode is set to CRYPT_DES_MODE_CBC. + */ +define('CRYPT_DES_MODE_CBC3', CRYPT_DES_MODE_CBC); + +/** + * Pure-PHP implementation of Triple DES. + * + * @package Crypt_TripleDES + * @author Jim Wigginton + * @version 0.1.0 + * @access public + */ +class Crypt_TripleDES extends Crypt_DES +{ + /** + * The default password key_size used by setPassword() + * + * @see Crypt_DES::password_key_size + * @see Crypt_Base::password_key_size + * @see Crypt_Base::setPassword() + * @var Integer + * @access private + */ + var $password_key_size = 24; + + /** + * The default salt used by setPassword() + * + * @see Crypt_Base::password_default_salt + * @see Crypt_Base::setPassword() + * @var String + * @access private + */ + var $password_default_salt = 'phpseclib'; + + /** + * The namespace used by the cipher for its constants. + * + * @see Crypt_DES::const_namespace + * @see Crypt_Base::const_namespace + * @var String + * @access private + */ + var $const_namespace = 'DES'; + + /** + * The mcrypt specific name of the cipher + * + * @see Crypt_DES::cipher_name_mcrypt + * @see Crypt_Base::cipher_name_mcrypt + * @var String + * @access private + */ + var $cipher_name_mcrypt = 'tripledes'; + + /** + * Optimizing value while CFB-encrypting + * + * @see Crypt_Base::cfb_init_len + * @var Integer + * @access private + */ + var $cfb_init_len = 750; + + /** + * max possible size of $key + * + * @see Crypt_TripleDES::setKey() + * @see Crypt_DES::setKey() + * @var String + * @access private + */ + var $key_size_max = 24; + + /** + * Internal flag whether using CRYPT_DES_MODE_3CBC or not + * + * @var Boolean + * @access private + */ + var $mode_3cbc; + + /** + * The Crypt_DES objects + * + * Used only if $mode_3cbc === true + * + * @var Array + * @access private + */ + var $des; + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. + * + * $mode could be: + * + * - CRYPT_DES_MODE_ECB + * + * - CRYPT_DES_MODE_CBC + * + * - CRYPT_DES_MODE_CTR + * + * - CRYPT_DES_MODE_CFB + * + * - CRYPT_DES_MODE_OFB + * + * - CRYPT_DES_MODE_3CBC + * + * If not explictly set, CRYPT_DES_MODE_CBC will be used. + * + * @see Crypt_DES::Crypt_DES() + * @see Crypt_Base::Crypt_Base() + * @param optional Integer $mode + * @access public + */ + function Crypt_TripleDES($mode = CRYPT_DES_MODE_CBC) + { + switch ($mode) { + // In case of CRYPT_DES_MODE_3CBC, we init as CRYPT_DES_MODE_CBC + // and additional flag us internally as 3CBC + case CRYPT_DES_MODE_3CBC: + parent::Crypt_DES(CRYPT_DES_MODE_CBC); + $this->mode_3cbc = true; + + // This three $des'es will do the 3CBC work (if $key > 64bits) + $this->des = array( + new Crypt_DES(CRYPT_DES_MODE_CBC), + new Crypt_DES(CRYPT_DES_MODE_CBC), + new Crypt_DES(CRYPT_DES_MODE_CBC), + ); + + // we're going to be doing the padding, ourselves, so disable it in the Crypt_DES objects + $this->des[0]->disablePadding(); + $this->des[1]->disablePadding(); + $this->des[2]->disablePadding(); + break; + // If not 3CBC, we init as usual + default: + parent::Crypt_DES($mode); + } + } + + /** + * Sets the initialization vector. (optional) + * + * SetIV is not required when CRYPT_DES_MODE_ECB is being used. If not explictly set, it'll be assumed + * to be all zero's. + * + * @see Crypt_Base::setIV() + * @access public + * @param String $iv + */ + function setIV($iv) + { + parent::setIV($iv); + if ($this->mode_3cbc) { + $this->des[0]->setIV($iv); + $this->des[1]->setIV($iv); + $this->des[2]->setIV($iv); + } + } + + /** + * Sets the key. + * + * Keys can be of any length. Triple DES, itself, can use 128-bit (eg. strlen($key) == 16) or + * 192-bit (eg. strlen($key) == 24) keys. This function pads and truncates $key as appropriate. + * + * DES also requires that every eighth bit be a parity bit, however, we'll ignore that. + * + * If the key is not explicitly set, it'll be assumed to be all null bytes. + * + * @access public + * @see Crypt_DES::setKey() + * @see Crypt_Base::setKey() + * @param String $key + */ + function setKey($key) + { + $length = strlen($key); + if ($length > 8) { + $key = str_pad(substr($key, 0, 24), 24, chr(0)); + // if $key is between 64 and 128-bits, use the first 64-bits as the last, per this: + // http://php.net/function.mcrypt-encrypt#47973 + //$key = $length <= 16 ? substr_replace($key, substr($key, 0, 8), 16) : substr($key, 0, 24); + } else { + $key = str_pad($key, 8, chr(0)); + } + parent::setKey($key); + + // And in case of CRYPT_DES_MODE_3CBC: + // if key <= 64bits we not need the 3 $des to work, + // because we will then act as regular DES-CBC with just a <= 64bit key. + // So only if the key > 64bits (> 8 bytes) we will call setKey() for the 3 $des. + if ($this->mode_3cbc && $length > 8) { + $this->des[0]->setKey(substr($key, 0, 8)); + $this->des[1]->setKey(substr($key, 8, 8)); + $this->des[2]->setKey(substr($key, 16, 8)); + } + } + + /** + * Encrypts a message. + * + * @see Crypt_Base::encrypt() + * @access public + * @param String $plaintext + * @return String $cipertext + */ + function encrypt($plaintext) + { + // parent::en/decrypt() is able to do all the work for all modes and keylengths, + // except for: CRYPT_DES_MODE_3CBC (inner chaining CBC) with a key > 64bits + + // if the key is smaller then 8, do what we'd normally do + if ($this->mode_3cbc && strlen($this->key) > 8) { + return $this->des[2]->encrypt( + $this->des[1]->decrypt( + $this->des[0]->encrypt($this->_pad($plaintext)))); + } + + return parent::encrypt($plaintext); + } + + /** + * Decrypts a message. + * + * @see Crypt_Base::decrypt() + * @access public + * @param String $ciphertext + * @return String $plaintext + */ + function decrypt($ciphertext) + { + if ($this->mode_3cbc && strlen($this->key) > 8) { + return $this->_unpad($this->des[0]->decrypt( + $this->des[1]->encrypt( + $this->des[2]->decrypt(str_pad($ciphertext, (strlen($ciphertext) + 7) & 0xFFFFFFF8, "\0"))))); + } + + return parent::decrypt($ciphertext); + } + + /** + * Treat consecutive "packets" as if they are a continuous buffer. + * + * Say you have a 16-byte plaintext $plaintext. Using the default behavior, the two following code snippets + * will yield different outputs: + * + * + * echo $des->encrypt(substr($plaintext, 0, 8)); + * echo $des->encrypt(substr($plaintext, 8, 8)); + * + * + * echo $des->encrypt($plaintext); + * + * + * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates + * another, as demonstrated with the following: + * + * + * $des->encrypt(substr($plaintext, 0, 8)); + * echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8))); + * + * + * echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8))); + * + * + * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different + * outputs. The reason is due to the fact that the initialization vector's change after every encryption / + * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. + * + * Put another way, when the continuous buffer is enabled, the state of the Crypt_DES() object changes after each + * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that + * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), + * however, they are also less intuitive and more likely to cause you problems. + * + * @see Crypt_Base::enableContinuousBuffer() + * @see Crypt_TripleDES::disableContinuousBuffer() + * @access public + */ + function enableContinuousBuffer() + { + parent::enableContinuousBuffer(); + if ($this->mode_3cbc) { + $this->des[0]->enableContinuousBuffer(); + $this->des[1]->enableContinuousBuffer(); + $this->des[2]->enableContinuousBuffer(); + } + } + + /** + * Treat consecutive packets as if they are a discontinuous buffer. + * + * The default behavior. + * + * @see Crypt_Base::disableContinuousBuffer() + * @see Crypt_TripleDES::enableContinuousBuffer() + * @access public + */ + function disableContinuousBuffer() + { + parent::disableContinuousBuffer(); + if ($this->mode_3cbc) { + $this->des[0]->disableContinuousBuffer(); + $this->des[1]->disableContinuousBuffer(); + $this->des[2]->disableContinuousBuffer(); + } + } + + /** + * Creates the key schedule + * + * @see Crypt_DES::_setupKey() + * @see Crypt_Base::_setupKey() + * @access private + */ + function _setupKey() + { + switch (true) { + // if $key <= 64bits we configure our internal pure-php cipher engine + // to act as regular [1]DES, not as 3DES. mcrypt.so::tripledes does the same. + case strlen($this->key) <= 8: + $this->des_rounds = 1; + break; + + // otherwise, if $key > 64bits, we configure our engine to work as 3DES. + default: + $this->des_rounds = 3; + + // (only) if 3CBC is used we have, of course, to setup the $des[0-2] keys also separately. + if ($this->mode_3cbc) { + $this->des[0]->_setupKey(); + $this->des[1]->_setupKey(); + $this->des[2]->_setupKey(); + + // because $des[0-2] will, now, do all the work we can return here + // not need unnecessary stress parent::_setupKey() with our, now unused, $key. + return; + } + } + // setup our key + parent::_setupKey(); + } +} diff --git a/lam/lib/3rdParty/phpseclib/Crypt/Twofish.php b/lam/lib/3rdParty/phpseclib/Crypt/Twofish.php new file mode 100644 index 00000000..cf950832 --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/Crypt/Twofish.php @@ -0,0 +1,921 @@ + + * setKey('12345678901234567890123456789012'); + * + * $plaintext = str_repeat('a', 1024); + * + * echo $twofish->decrypt($twofish->encrypt($plaintext)); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Crypt + * @package Crypt_Twofish + * @author Jim Wigginton + * @author Hans-Juergen Petrich + * @copyright MMVII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @version 1.0 + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Crypt_Base + * + * Base cipher class + */ +if (!class_exists('Crypt_Base')) { + include_once 'Base.php'; +} + +/**#@+ + * @access public + * @see Crypt_Twofish::encrypt() + * @see Crypt_Twofish::decrypt() + */ +/** + * Encrypt / decrypt using the Counter mode. + * + * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 + */ +define('CRYPT_TWOFISH_MODE_CTR', CRYPT_MODE_CTR); +/** + * Encrypt / decrypt using the Electronic Code Book mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 + */ +define('CRYPT_TWOFISH_MODE_ECB', CRYPT_MODE_ECB); +/** + * Encrypt / decrypt using the Code Book Chaining mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 + */ +define('CRYPT_TWOFISH_MODE_CBC', CRYPT_MODE_CBC); +/** + * Encrypt / decrypt using the Cipher Feedback mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher_feedback_.28CFB.29 + */ +define('CRYPT_TWOFISH_MODE_CFB', CRYPT_MODE_CFB); +/** + * Encrypt / decrypt using the Cipher Feedback mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Output_feedback_.28OFB.29 + */ +define('CRYPT_TWOFISH_MODE_OFB', CRYPT_MODE_OFB); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_Twofish::Crypt_Twofish() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_TWOFISH_MODE_INTERNAL', CRYPT_MODE_INTERNAL); +/** + * Toggles the mcrypt implementation + */ +define('CRYPT_TWOFISH_MODE_MCRYPT', CRYPT_MODE_MCRYPT); +/**#@-*/ + +/** + * Pure-PHP implementation of Twofish. + * + * @package Crypt_Twofish + * @author Jim Wigginton + * @author Hans-Juergen Petrich + * @version 1.0 + * @access public + */ +class Crypt_Twofish extends Crypt_Base +{ + /** + * The namespace used by the cipher for its constants. + * + * @see Crypt_Base::const_namespace + * @var String + * @access private + */ + var $const_namespace = 'TWOFISH'; + + /** + * The mcrypt specific name of the cipher + * + * @see Crypt_Base::cipher_name_mcrypt + * @var String + * @access private + */ + var $cipher_name_mcrypt = 'twofish'; + + /** + * Optimizing value while CFB-encrypting + * + * @see Crypt_Base::cfb_init_len + * @var Integer + * @access private + */ + var $cfb_init_len = 800; + + /** + * Q-Table + * + * @var Array + * @access private + */ + var $q0 = array ( + 0xA9, 0x67, 0xB3, 0xE8, 0x04, 0xFD, 0xA3, 0x76, + 0x9A, 0x92, 0x80, 0x78, 0xE4, 0xDD, 0xD1, 0x38, + 0x0D, 0xC6, 0x35, 0x98, 0x18, 0xF7, 0xEC, 0x6C, + 0x43, 0x75, 0x37, 0x26, 0xFA, 0x13, 0x94, 0x48, + 0xF2, 0xD0, 0x8B, 0x30, 0x84, 0x54, 0xDF, 0x23, + 0x19, 0x5B, 0x3D, 0x59, 0xF3, 0xAE, 0xA2, 0x82, + 0x63, 0x01, 0x83, 0x2E, 0xD9, 0x51, 0x9B, 0x7C, + 0xA6, 0xEB, 0xA5, 0xBE, 0x16, 0x0C, 0xE3, 0x61, + 0xC0, 0x8C, 0x3A, 0xF5, 0x73, 0x2C, 0x25, 0x0B, + 0xBB, 0x4E, 0x89, 0x6B, 0x53, 0x6A, 0xB4, 0xF1, + 0xE1, 0xE6, 0xBD, 0x45, 0xE2, 0xF4, 0xB6, 0x66, + 0xCC, 0x95, 0x03, 0x56, 0xD4, 0x1C, 0x1E, 0xD7, + 0xFB, 0xC3, 0x8E, 0xB5, 0xE9, 0xCF, 0xBF, 0xBA, + 0xEA, 0x77, 0x39, 0xAF, 0x33, 0xC9, 0x62, 0x71, + 0x81, 0x79, 0x09, 0xAD, 0x24, 0xCD, 0xF9, 0xD8, + 0xE5, 0xC5, 0xB9, 0x4D, 0x44, 0x08, 0x86, 0xE7, + 0xA1, 0x1D, 0xAA, 0xED, 0x06, 0x70, 0xB2, 0xD2, + 0x41, 0x7B, 0xA0, 0x11, 0x31, 0xC2, 0x27, 0x90, + 0x20, 0xF6, 0x60, 0xFF, 0x96, 0x5C, 0xB1, 0xAB, + 0x9E, 0x9C, 0x52, 0x1B, 0x5F, 0x93, 0x0A, 0xEF, + 0x91, 0x85, 0x49, 0xEE, 0x2D, 0x4F, 0x8F, 0x3B, + 0x47, 0x87, 0x6D, 0x46, 0xD6, 0x3E, 0x69, 0x64, + 0x2A, 0xCE, 0xCB, 0x2F, 0xFC, 0x97, 0x05, 0x7A, + 0xAC, 0x7F, 0xD5, 0x1A, 0x4B, 0x0E, 0xA7, 0x5A, + 0x28, 0x14, 0x3F, 0x29, 0x88, 0x3C, 0x4C, 0x02, + 0xB8, 0xDA, 0xB0, 0x17, 0x55, 0x1F, 0x8A, 0x7D, + 0x57, 0xC7, 0x8D, 0x74, 0xB7, 0xC4, 0x9F, 0x72, + 0x7E, 0x15, 0x22, 0x12, 0x58, 0x07, 0x99, 0x34, + 0x6E, 0x50, 0xDE, 0x68, 0x65, 0xBC, 0xDB, 0xF8, + 0xC8, 0xA8, 0x2B, 0x40, 0xDC, 0xFE, 0x32, 0xA4, + 0xCA, 0x10, 0x21, 0xF0, 0xD3, 0x5D, 0x0F, 0x00, + 0x6F, 0x9D, 0x36, 0x42, 0x4A, 0x5E, 0xC1, 0xE0 + ); + + /** + * Q-Table + * + * @var Array + * @access private + */ + var $q1 = array ( + 0x75, 0xF3, 0xC6, 0xF4, 0xDB, 0x7B, 0xFB, 0xC8, + 0x4A, 0xD3, 0xE6, 0x6B, 0x45, 0x7D, 0xE8, 0x4B, + 0xD6, 0x32, 0xD8, 0xFD, 0x37, 0x71, 0xF1, 0xE1, + 0x30, 0x0F, 0xF8, 0x1B, 0x87, 0xFA, 0x06, 0x3F, + 0x5E, 0xBA, 0xAE, 0x5B, 0x8A, 0x00, 0xBC, 0x9D, + 0x6D, 0xC1, 0xB1, 0x0E, 0x80, 0x5D, 0xD2, 0xD5, + 0xA0, 0x84, 0x07, 0x14, 0xB5, 0x90, 0x2C, 0xA3, + 0xB2, 0x73, 0x4C, 0x54, 0x92, 0x74, 0x36, 0x51, + 0x38, 0xB0, 0xBD, 0x5A, 0xFC, 0x60, 0x62, 0x96, + 0x6C, 0x42, 0xF7, 0x10, 0x7C, 0x28, 0x27, 0x8C, + 0x13, 0x95, 0x9C, 0xC7, 0x24, 0x46, 0x3B, 0x70, + 0xCA, 0xE3, 0x85, 0xCB, 0x11, 0xD0, 0x93, 0xB8, + 0xA6, 0x83, 0x20, 0xFF, 0x9F, 0x77, 0xC3, 0xCC, + 0x03, 0x6F, 0x08, 0xBF, 0x40, 0xE7, 0x2B, 0xE2, + 0x79, 0x0C, 0xAA, 0x82, 0x41, 0x3A, 0xEA, 0xB9, + 0xE4, 0x9A, 0xA4, 0x97, 0x7E, 0xDA, 0x7A, 0x17, + 0x66, 0x94, 0xA1, 0x1D, 0x3D, 0xF0, 0xDE, 0xB3, + 0x0B, 0x72, 0xA7, 0x1C, 0xEF, 0xD1, 0x53, 0x3E, + 0x8F, 0x33, 0x26, 0x5F, 0xEC, 0x76, 0x2A, 0x49, + 0x81, 0x88, 0xEE, 0x21, 0xC4, 0x1A, 0xEB, 0xD9, + 0xC5, 0x39, 0x99, 0xCD, 0xAD, 0x31, 0x8B, 0x01, + 0x18, 0x23, 0xDD, 0x1F, 0x4E, 0x2D, 0xF9, 0x48, + 0x4F, 0xF2, 0x65, 0x8E, 0x78, 0x5C, 0x58, 0x19, + 0x8D, 0xE5, 0x98, 0x57, 0x67, 0x7F, 0x05, 0x64, + 0xAF, 0x63, 0xB6, 0xFE, 0xF5, 0xB7, 0x3C, 0xA5, + 0xCE, 0xE9, 0x68, 0x44, 0xE0, 0x4D, 0x43, 0x69, + 0x29, 0x2E, 0xAC, 0x15, 0x59, 0xA8, 0x0A, 0x9E, + 0x6E, 0x47, 0xDF, 0x34, 0x35, 0x6A, 0xCF, 0xDC, + 0x22, 0xC9, 0xC0, 0x9B, 0x89, 0xD4, 0xED, 0xAB, + 0x12, 0xA2, 0x0D, 0x52, 0xBB, 0x02, 0x2F, 0xA9, + 0xD7, 0x61, 0x1E, 0xB4, 0x50, 0x04, 0xF6, 0xC2, + 0x16, 0x25, 0x86, 0x56, 0x55, 0x09, 0xBE, 0x91 + ); + + /** + * M-Table + * + * @var Array + * @access private + */ + var $m0 = array ( + 0xBCBC3275, 0xECEC21F3, 0x202043C6, 0xB3B3C9F4, 0xDADA03DB, 0x02028B7B, 0xE2E22BFB, 0x9E9EFAC8, + 0xC9C9EC4A, 0xD4D409D3, 0x18186BE6, 0x1E1E9F6B, 0x98980E45, 0xB2B2387D, 0xA6A6D2E8, 0x2626B74B, + 0x3C3C57D6, 0x93938A32, 0x8282EED8, 0x525298FD, 0x7B7BD437, 0xBBBB3771, 0x5B5B97F1, 0x474783E1, + 0x24243C30, 0x5151E20F, 0xBABAC6F8, 0x4A4AF31B, 0xBFBF4887, 0x0D0D70FA, 0xB0B0B306, 0x7575DE3F, + 0xD2D2FD5E, 0x7D7D20BA, 0x666631AE, 0x3A3AA35B, 0x59591C8A, 0x00000000, 0xCDCD93BC, 0x1A1AE09D, + 0xAEAE2C6D, 0x7F7FABC1, 0x2B2BC7B1, 0xBEBEB90E, 0xE0E0A080, 0x8A8A105D, 0x3B3B52D2, 0x6464BAD5, + 0xD8D888A0, 0xE7E7A584, 0x5F5FE807, 0x1B1B1114, 0x2C2CC2B5, 0xFCFCB490, 0x3131272C, 0x808065A3, + 0x73732AB2, 0x0C0C8173, 0x79795F4C, 0x6B6B4154, 0x4B4B0292, 0x53536974, 0x94948F36, 0x83831F51, + 0x2A2A3638, 0xC4C49CB0, 0x2222C8BD, 0xD5D5F85A, 0xBDBDC3FC, 0x48487860, 0xFFFFCE62, 0x4C4C0796, + 0x4141776C, 0xC7C7E642, 0xEBEB24F7, 0x1C1C1410, 0x5D5D637C, 0x36362228, 0x6767C027, 0xE9E9AF8C, + 0x4444F913, 0x1414EA95, 0xF5F5BB9C, 0xCFCF18C7, 0x3F3F2D24, 0xC0C0E346, 0x7272DB3B, 0x54546C70, + 0x29294CCA, 0xF0F035E3, 0x0808FE85, 0xC6C617CB, 0xF3F34F11, 0x8C8CE4D0, 0xA4A45993, 0xCACA96B8, + 0x68683BA6, 0xB8B84D83, 0x38382820, 0xE5E52EFF, 0xADAD569F, 0x0B0B8477, 0xC8C81DC3, 0x9999FFCC, + 0x5858ED03, 0x19199A6F, 0x0E0E0A08, 0x95957EBF, 0x70705040, 0xF7F730E7, 0x6E6ECF2B, 0x1F1F6EE2, + 0xB5B53D79, 0x09090F0C, 0x616134AA, 0x57571682, 0x9F9F0B41, 0x9D9D803A, 0x111164EA, 0x2525CDB9, + 0xAFAFDDE4, 0x4545089A, 0xDFDF8DA4, 0xA3A35C97, 0xEAEAD57E, 0x353558DA, 0xEDEDD07A, 0x4343FC17, + 0xF8F8CB66, 0xFBFBB194, 0x3737D3A1, 0xFAFA401D, 0xC2C2683D, 0xB4B4CCF0, 0x32325DDE, 0x9C9C71B3, + 0x5656E70B, 0xE3E3DA72, 0x878760A7, 0x15151B1C, 0xF9F93AEF, 0x6363BFD1, 0x3434A953, 0x9A9A853E, + 0xB1B1428F, 0x7C7CD133, 0x88889B26, 0x3D3DA65F, 0xA1A1D7EC, 0xE4E4DF76, 0x8181942A, 0x91910149, + 0x0F0FFB81, 0xEEEEAA88, 0x161661EE, 0xD7D77321, 0x9797F5C4, 0xA5A5A81A, 0xFEFE3FEB, 0x6D6DB5D9, + 0x7878AEC5, 0xC5C56D39, 0x1D1DE599, 0x7676A4CD, 0x3E3EDCAD, 0xCBCB6731, 0xB6B6478B, 0xEFEF5B01, + 0x12121E18, 0x6060C523, 0x6A6AB0DD, 0x4D4DF61F, 0xCECEE94E, 0xDEDE7C2D, 0x55559DF9, 0x7E7E5A48, + 0x2121B24F, 0x03037AF2, 0xA0A02665, 0x5E5E198E, 0x5A5A6678, 0x65654B5C, 0x62624E58, 0xFDFD4519, + 0x0606F48D, 0x404086E5, 0xF2F2BE98, 0x3333AC57, 0x17179067, 0x05058E7F, 0xE8E85E05, 0x4F4F7D64, + 0x89896AAF, 0x10109563, 0x74742FB6, 0x0A0A75FE, 0x5C5C92F5, 0x9B9B74B7, 0x2D2D333C, 0x3030D6A5, + 0x2E2E49CE, 0x494989E9, 0x46467268, 0x77775544, 0xA8A8D8E0, 0x9696044D, 0x2828BD43, 0xA9A92969, + 0xD9D97929, 0x8686912E, 0xD1D187AC, 0xF4F44A15, 0x8D8D1559, 0xD6D682A8, 0xB9B9BC0A, 0x42420D9E, + 0xF6F6C16E, 0x2F2FB847, 0xDDDD06DF, 0x23233934, 0xCCCC6235, 0xF1F1C46A, 0xC1C112CF, 0x8585EBDC, + 0x8F8F9E22, 0x7171A1C9, 0x9090F0C0, 0xAAAA539B, 0x0101F189, 0x8B8BE1D4, 0x4E4E8CED, 0x8E8E6FAB, + 0xABABA212, 0x6F6F3EA2, 0xE6E6540D, 0xDBDBF252, 0x92927BBB, 0xB7B7B602, 0x6969CA2F, 0x3939D9A9, + 0xD3D30CD7, 0xA7A72361, 0xA2A2AD1E, 0xC3C399B4, 0x6C6C4450, 0x07070504, 0x04047FF6, 0x272746C2, + 0xACACA716, 0xD0D07625, 0x50501386, 0xDCDCF756, 0x84841A55, 0xE1E15109, 0x7A7A25BE, 0x1313EF91 + ); + + /** + * M-Table + * + * @var Array + * @access private + */ + var $m1 = array ( + 0xA9D93939, 0x67901717, 0xB3719C9C, 0xE8D2A6A6, 0x04050707, 0xFD985252, 0xA3658080, 0x76DFE4E4, + 0x9A084545, 0x92024B4B, 0x80A0E0E0, 0x78665A5A, 0xE4DDAFAF, 0xDDB06A6A, 0xD1BF6363, 0x38362A2A, + 0x0D54E6E6, 0xC6432020, 0x3562CCCC, 0x98BEF2F2, 0x181E1212, 0xF724EBEB, 0xECD7A1A1, 0x6C774141, + 0x43BD2828, 0x7532BCBC, 0x37D47B7B, 0x269B8888, 0xFA700D0D, 0x13F94444, 0x94B1FBFB, 0x485A7E7E, + 0xF27A0303, 0xD0E48C8C, 0x8B47B6B6, 0x303C2424, 0x84A5E7E7, 0x54416B6B, 0xDF06DDDD, 0x23C56060, + 0x1945FDFD, 0x5BA33A3A, 0x3D68C2C2, 0x59158D8D, 0xF321ECEC, 0xAE316666, 0xA23E6F6F, 0x82165757, + 0x63951010, 0x015BEFEF, 0x834DB8B8, 0x2E918686, 0xD9B56D6D, 0x511F8383, 0x9B53AAAA, 0x7C635D5D, + 0xA63B6868, 0xEB3FFEFE, 0xA5D63030, 0xBE257A7A, 0x16A7ACAC, 0x0C0F0909, 0xE335F0F0, 0x6123A7A7, + 0xC0F09090, 0x8CAFE9E9, 0x3A809D9D, 0xF5925C5C, 0x73810C0C, 0x2C273131, 0x2576D0D0, 0x0BE75656, + 0xBB7B9292, 0x4EE9CECE, 0x89F10101, 0x6B9F1E1E, 0x53A93434, 0x6AC4F1F1, 0xB499C3C3, 0xF1975B5B, + 0xE1834747, 0xE66B1818, 0xBDC82222, 0x450E9898, 0xE26E1F1F, 0xF4C9B3B3, 0xB62F7474, 0x66CBF8F8, + 0xCCFF9999, 0x95EA1414, 0x03ED5858, 0x56F7DCDC, 0xD4E18B8B, 0x1C1B1515, 0x1EADA2A2, 0xD70CD3D3, + 0xFB2BE2E2, 0xC31DC8C8, 0x8E195E5E, 0xB5C22C2C, 0xE9894949, 0xCF12C1C1, 0xBF7E9595, 0xBA207D7D, + 0xEA641111, 0x77840B0B, 0x396DC5C5, 0xAF6A8989, 0x33D17C7C, 0xC9A17171, 0x62CEFFFF, 0x7137BBBB, + 0x81FB0F0F, 0x793DB5B5, 0x0951E1E1, 0xADDC3E3E, 0x242D3F3F, 0xCDA47676, 0xF99D5555, 0xD8EE8282, + 0xE5864040, 0xC5AE7878, 0xB9CD2525, 0x4D049696, 0x44557777, 0x080A0E0E, 0x86135050, 0xE730F7F7, + 0xA1D33737, 0x1D40FAFA, 0xAA346161, 0xED8C4E4E, 0x06B3B0B0, 0x706C5454, 0xB22A7373, 0xD2523B3B, + 0x410B9F9F, 0x7B8B0202, 0xA088D8D8, 0x114FF3F3, 0x3167CBCB, 0xC2462727, 0x27C06767, 0x90B4FCFC, + 0x20283838, 0xF67F0404, 0x60784848, 0xFF2EE5E5, 0x96074C4C, 0x5C4B6565, 0xB1C72B2B, 0xAB6F8E8E, + 0x9E0D4242, 0x9CBBF5F5, 0x52F2DBDB, 0x1BF34A4A, 0x5FA63D3D, 0x9359A4A4, 0x0ABCB9B9, 0xEF3AF9F9, + 0x91EF1313, 0x85FE0808, 0x49019191, 0xEE611616, 0x2D7CDEDE, 0x4FB22121, 0x8F42B1B1, 0x3BDB7272, + 0x47B82F2F, 0x8748BFBF, 0x6D2CAEAE, 0x46E3C0C0, 0xD6573C3C, 0x3E859A9A, 0x6929A9A9, 0x647D4F4F, + 0x2A948181, 0xCE492E2E, 0xCB17C6C6, 0x2FCA6969, 0xFCC3BDBD, 0x975CA3A3, 0x055EE8E8, 0x7AD0EDED, + 0xAC87D1D1, 0x7F8E0505, 0xD5BA6464, 0x1AA8A5A5, 0x4BB72626, 0x0EB9BEBE, 0xA7608787, 0x5AF8D5D5, + 0x28223636, 0x14111B1B, 0x3FDE7575, 0x2979D9D9, 0x88AAEEEE, 0x3C332D2D, 0x4C5F7979, 0x02B6B7B7, + 0xB896CACA, 0xDA583535, 0xB09CC4C4, 0x17FC4343, 0x551A8484, 0x1FF64D4D, 0x8A1C5959, 0x7D38B2B2, + 0x57AC3333, 0xC718CFCF, 0x8DF40606, 0x74695353, 0xB7749B9B, 0xC4F59797, 0x9F56ADAD, 0x72DAE3E3, + 0x7ED5EAEA, 0x154AF4F4, 0x229E8F8F, 0x12A2ABAB, 0x584E6262, 0x07E85F5F, 0x99E51D1D, 0x34392323, + 0x6EC1F6F6, 0x50446C6C, 0xDE5D3232, 0x68724646, 0x6526A0A0, 0xBC93CDCD, 0xDB03DADA, 0xF8C6BABA, + 0xC8FA9E9E, 0xA882D6D6, 0x2BCF6E6E, 0x40507070, 0xDCEB8585, 0xFE750A0A, 0x328A9393, 0xA48DDFDF, + 0xCA4C2929, 0x10141C1C, 0x2173D7D7, 0xF0CCB4B4, 0xD309D4D4, 0x5D108A8A, 0x0FE25151, 0x00000000, + 0x6F9A1919, 0x9DE01A1A, 0x368F9494, 0x42E6C7C7, 0x4AECC9C9, 0x5EFDD2D2, 0xC1AB7F7F, 0xE0D8A8A8 + ); + + /** + * M-Table + * + * @var Array + * @access private + */ + var $m2 = array ( + 0xBC75BC32, 0xECF3EC21, 0x20C62043, 0xB3F4B3C9, 0xDADBDA03, 0x027B028B, 0xE2FBE22B, 0x9EC89EFA, + 0xC94AC9EC, 0xD4D3D409, 0x18E6186B, 0x1E6B1E9F, 0x9845980E, 0xB27DB238, 0xA6E8A6D2, 0x264B26B7, + 0x3CD63C57, 0x9332938A, 0x82D882EE, 0x52FD5298, 0x7B377BD4, 0xBB71BB37, 0x5BF15B97, 0x47E14783, + 0x2430243C, 0x510F51E2, 0xBAF8BAC6, 0x4A1B4AF3, 0xBF87BF48, 0x0DFA0D70, 0xB006B0B3, 0x753F75DE, + 0xD25ED2FD, 0x7DBA7D20, 0x66AE6631, 0x3A5B3AA3, 0x598A591C, 0x00000000, 0xCDBCCD93, 0x1A9D1AE0, + 0xAE6DAE2C, 0x7FC17FAB, 0x2BB12BC7, 0xBE0EBEB9, 0xE080E0A0, 0x8A5D8A10, 0x3BD23B52, 0x64D564BA, + 0xD8A0D888, 0xE784E7A5, 0x5F075FE8, 0x1B141B11, 0x2CB52CC2, 0xFC90FCB4, 0x312C3127, 0x80A38065, + 0x73B2732A, 0x0C730C81, 0x794C795F, 0x6B546B41, 0x4B924B02, 0x53745369, 0x9436948F, 0x8351831F, + 0x2A382A36, 0xC4B0C49C, 0x22BD22C8, 0xD55AD5F8, 0xBDFCBDC3, 0x48604878, 0xFF62FFCE, 0x4C964C07, + 0x416C4177, 0xC742C7E6, 0xEBF7EB24, 0x1C101C14, 0x5D7C5D63, 0x36283622, 0x672767C0, 0xE98CE9AF, + 0x441344F9, 0x149514EA, 0xF59CF5BB, 0xCFC7CF18, 0x3F243F2D, 0xC046C0E3, 0x723B72DB, 0x5470546C, + 0x29CA294C, 0xF0E3F035, 0x088508FE, 0xC6CBC617, 0xF311F34F, 0x8CD08CE4, 0xA493A459, 0xCAB8CA96, + 0x68A6683B, 0xB883B84D, 0x38203828, 0xE5FFE52E, 0xAD9FAD56, 0x0B770B84, 0xC8C3C81D, 0x99CC99FF, + 0x580358ED, 0x196F199A, 0x0E080E0A, 0x95BF957E, 0x70407050, 0xF7E7F730, 0x6E2B6ECF, 0x1FE21F6E, + 0xB579B53D, 0x090C090F, 0x61AA6134, 0x57825716, 0x9F419F0B, 0x9D3A9D80, 0x11EA1164, 0x25B925CD, + 0xAFE4AFDD, 0x459A4508, 0xDFA4DF8D, 0xA397A35C, 0xEA7EEAD5, 0x35DA3558, 0xED7AEDD0, 0x431743FC, + 0xF866F8CB, 0xFB94FBB1, 0x37A137D3, 0xFA1DFA40, 0xC23DC268, 0xB4F0B4CC, 0x32DE325D, 0x9CB39C71, + 0x560B56E7, 0xE372E3DA, 0x87A78760, 0x151C151B, 0xF9EFF93A, 0x63D163BF, 0x345334A9, 0x9A3E9A85, + 0xB18FB142, 0x7C337CD1, 0x8826889B, 0x3D5F3DA6, 0xA1ECA1D7, 0xE476E4DF, 0x812A8194, 0x91499101, + 0x0F810FFB, 0xEE88EEAA, 0x16EE1661, 0xD721D773, 0x97C497F5, 0xA51AA5A8, 0xFEEBFE3F, 0x6DD96DB5, + 0x78C578AE, 0xC539C56D, 0x1D991DE5, 0x76CD76A4, 0x3EAD3EDC, 0xCB31CB67, 0xB68BB647, 0xEF01EF5B, + 0x1218121E, 0x602360C5, 0x6ADD6AB0, 0x4D1F4DF6, 0xCE4ECEE9, 0xDE2DDE7C, 0x55F9559D, 0x7E487E5A, + 0x214F21B2, 0x03F2037A, 0xA065A026, 0x5E8E5E19, 0x5A785A66, 0x655C654B, 0x6258624E, 0xFD19FD45, + 0x068D06F4, 0x40E54086, 0xF298F2BE, 0x335733AC, 0x17671790, 0x057F058E, 0xE805E85E, 0x4F644F7D, + 0x89AF896A, 0x10631095, 0x74B6742F, 0x0AFE0A75, 0x5CF55C92, 0x9BB79B74, 0x2D3C2D33, 0x30A530D6, + 0x2ECE2E49, 0x49E94989, 0x46684672, 0x77447755, 0xA8E0A8D8, 0x964D9604, 0x284328BD, 0xA969A929, + 0xD929D979, 0x862E8691, 0xD1ACD187, 0xF415F44A, 0x8D598D15, 0xD6A8D682, 0xB90AB9BC, 0x429E420D, + 0xF66EF6C1, 0x2F472FB8, 0xDDDFDD06, 0x23342339, 0xCC35CC62, 0xF16AF1C4, 0xC1CFC112, 0x85DC85EB, + 0x8F228F9E, 0x71C971A1, 0x90C090F0, 0xAA9BAA53, 0x018901F1, 0x8BD48BE1, 0x4EED4E8C, 0x8EAB8E6F, + 0xAB12ABA2, 0x6FA26F3E, 0xE60DE654, 0xDB52DBF2, 0x92BB927B, 0xB702B7B6, 0x692F69CA, 0x39A939D9, + 0xD3D7D30C, 0xA761A723, 0xA21EA2AD, 0xC3B4C399, 0x6C506C44, 0x07040705, 0x04F6047F, 0x27C22746, + 0xAC16ACA7, 0xD025D076, 0x50865013, 0xDC56DCF7, 0x8455841A, 0xE109E151, 0x7ABE7A25, 0x139113EF + ); + + /** + * M-Table + * + * @var Array + * @access private + */ + var $m3 = array ( + 0xD939A9D9, 0x90176790, 0x719CB371, 0xD2A6E8D2, 0x05070405, 0x9852FD98, 0x6580A365, 0xDFE476DF, + 0x08459A08, 0x024B9202, 0xA0E080A0, 0x665A7866, 0xDDAFE4DD, 0xB06ADDB0, 0xBF63D1BF, 0x362A3836, + 0x54E60D54, 0x4320C643, 0x62CC3562, 0xBEF298BE, 0x1E12181E, 0x24EBF724, 0xD7A1ECD7, 0x77416C77, + 0xBD2843BD, 0x32BC7532, 0xD47B37D4, 0x9B88269B, 0x700DFA70, 0xF94413F9, 0xB1FB94B1, 0x5A7E485A, + 0x7A03F27A, 0xE48CD0E4, 0x47B68B47, 0x3C24303C, 0xA5E784A5, 0x416B5441, 0x06DDDF06, 0xC56023C5, + 0x45FD1945, 0xA33A5BA3, 0x68C23D68, 0x158D5915, 0x21ECF321, 0x3166AE31, 0x3E6FA23E, 0x16578216, + 0x95106395, 0x5BEF015B, 0x4DB8834D, 0x91862E91, 0xB56DD9B5, 0x1F83511F, 0x53AA9B53, 0x635D7C63, + 0x3B68A63B, 0x3FFEEB3F, 0xD630A5D6, 0x257ABE25, 0xA7AC16A7, 0x0F090C0F, 0x35F0E335, 0x23A76123, + 0xF090C0F0, 0xAFE98CAF, 0x809D3A80, 0x925CF592, 0x810C7381, 0x27312C27, 0x76D02576, 0xE7560BE7, + 0x7B92BB7B, 0xE9CE4EE9, 0xF10189F1, 0x9F1E6B9F, 0xA93453A9, 0xC4F16AC4, 0x99C3B499, 0x975BF197, + 0x8347E183, 0x6B18E66B, 0xC822BDC8, 0x0E98450E, 0x6E1FE26E, 0xC9B3F4C9, 0x2F74B62F, 0xCBF866CB, + 0xFF99CCFF, 0xEA1495EA, 0xED5803ED, 0xF7DC56F7, 0xE18BD4E1, 0x1B151C1B, 0xADA21EAD, 0x0CD3D70C, + 0x2BE2FB2B, 0x1DC8C31D, 0x195E8E19, 0xC22CB5C2, 0x8949E989, 0x12C1CF12, 0x7E95BF7E, 0x207DBA20, + 0x6411EA64, 0x840B7784, 0x6DC5396D, 0x6A89AF6A, 0xD17C33D1, 0xA171C9A1, 0xCEFF62CE, 0x37BB7137, + 0xFB0F81FB, 0x3DB5793D, 0x51E10951, 0xDC3EADDC, 0x2D3F242D, 0xA476CDA4, 0x9D55F99D, 0xEE82D8EE, + 0x8640E586, 0xAE78C5AE, 0xCD25B9CD, 0x04964D04, 0x55774455, 0x0A0E080A, 0x13508613, 0x30F7E730, + 0xD337A1D3, 0x40FA1D40, 0x3461AA34, 0x8C4EED8C, 0xB3B006B3, 0x6C54706C, 0x2A73B22A, 0x523BD252, + 0x0B9F410B, 0x8B027B8B, 0x88D8A088, 0x4FF3114F, 0x67CB3167, 0x4627C246, 0xC06727C0, 0xB4FC90B4, + 0x28382028, 0x7F04F67F, 0x78486078, 0x2EE5FF2E, 0x074C9607, 0x4B655C4B, 0xC72BB1C7, 0x6F8EAB6F, + 0x0D429E0D, 0xBBF59CBB, 0xF2DB52F2, 0xF34A1BF3, 0xA63D5FA6, 0x59A49359, 0xBCB90ABC, 0x3AF9EF3A, + 0xEF1391EF, 0xFE0885FE, 0x01914901, 0x6116EE61, 0x7CDE2D7C, 0xB2214FB2, 0x42B18F42, 0xDB723BDB, + 0xB82F47B8, 0x48BF8748, 0x2CAE6D2C, 0xE3C046E3, 0x573CD657, 0x859A3E85, 0x29A96929, 0x7D4F647D, + 0x94812A94, 0x492ECE49, 0x17C6CB17, 0xCA692FCA, 0xC3BDFCC3, 0x5CA3975C, 0x5EE8055E, 0xD0ED7AD0, + 0x87D1AC87, 0x8E057F8E, 0xBA64D5BA, 0xA8A51AA8, 0xB7264BB7, 0xB9BE0EB9, 0x6087A760, 0xF8D55AF8, + 0x22362822, 0x111B1411, 0xDE753FDE, 0x79D92979, 0xAAEE88AA, 0x332D3C33, 0x5F794C5F, 0xB6B702B6, + 0x96CAB896, 0x5835DA58, 0x9CC4B09C, 0xFC4317FC, 0x1A84551A, 0xF64D1FF6, 0x1C598A1C, 0x38B27D38, + 0xAC3357AC, 0x18CFC718, 0xF4068DF4, 0x69537469, 0x749BB774, 0xF597C4F5, 0x56AD9F56, 0xDAE372DA, + 0xD5EA7ED5, 0x4AF4154A, 0x9E8F229E, 0xA2AB12A2, 0x4E62584E, 0xE85F07E8, 0xE51D99E5, 0x39233439, + 0xC1F66EC1, 0x446C5044, 0x5D32DE5D, 0x72466872, 0x26A06526, 0x93CDBC93, 0x03DADB03, 0xC6BAF8C6, + 0xFA9EC8FA, 0x82D6A882, 0xCF6E2BCF, 0x50704050, 0xEB85DCEB, 0x750AFE75, 0x8A93328A, 0x8DDFA48D, + 0x4C29CA4C, 0x141C1014, 0x73D72173, 0xCCB4F0CC, 0x09D4D309, 0x108A5D10, 0xE2510FE2, 0x00000000, + 0x9A196F9A, 0xE01A9DE0, 0x8F94368F, 0xE6C742E6, 0xECC94AEC, 0xFDD25EFD, 0xAB7FC1AB, 0xD8A8E0D8 + ); + + /** + * The Key Schedule Array + * + * @var Array + * @access private + */ + var $K = array(); + + /** + * The Key depended S-Table 0 + * + * @var Array + * @access private + */ + var $S0 = array(); + + /** + * The Key depended S-Table 1 + * + * @var Array + * @access private + */ + var $S1 = array(); + + /** + * The Key depended S-Table 2 + * + * @var Array + * @access private + */ + var $S2 = array(); + + /** + * The Key depended S-Table 3 + * + * @var Array + * @access private + */ + var $S3 = array(); + + /** + * Holds the last used key + * + * @var Array + * @access private + */ + var $kl; + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. + * + * $mode could be: + * + * - CRYPT_TWOFISH_MODE_ECB + * + * - CRYPT_TWOFISH_MODE_CBC + * + * - CRYPT_TWOFISH_MODE_CTR + * + * - CRYPT_TWOFISH_MODE_CFB + * + * - CRYPT_TWOFISH_MODE_OFB + * + * If not explictly set, CRYPT_TWOFISH_MODE_CBC will be used. + * + * @see Crypt_Base::Crypt_Base() + * @param optional Integer $mode + * @access public + */ + function Crypt_Twofish($mode = CRYPT_TWOFISH_MODE_CBC) + { + parent::Crypt_Base($mode); + } + + /** + * Sets the key. + * + * Keys can be of any length. Twofish, itself, requires the use of a key that's 128, 192 or 256-bits long. + * If the key is less than 256-bits we round the length up to the closest valid key length, + * padding $key with null bytes. If the key is more than 256-bits, we trim the excess bits. + * + * If the key is not explicitly set, it'll be assumed a 128 bits key to be all null bytes. + * + * @access public + * @see Crypt_Base::setKey() + * @param String $key + */ + function setKey($key) + { + $keylength = strlen($key); + switch (true) { + case $keylength <= 16: + $key = str_pad($key, 16, "\0"); + break; + case $keylength <= 24: + $key = str_pad($key, 24, "\0"); + break; + case $keylength < 32: + $key = str_pad($key, 32, "\0"); + break; + case $keylength > 32: + $key = substr($key, 0, 32); + } + parent::setKey($key); + } + + /** + * Setup the key (expansion) + * + * @see Crypt_Base::_setupKey() + * @access private + */ + function _setupKey() + { + if (isset($this->kl['key']) && $this->key === $this->kl['key']) { + // already expanded + return; + } + $this->kl = array('key' => $this->key); + + /* Key expanding and generating the key-depended s-boxes */ + $le_longs = unpack('V*', $this->key); + $key = unpack('C*', $this->key); + $m0 = $this->m0; + $m1 = $this->m1; + $m2 = $this->m2; + $m3 = $this->m3; + $q0 = $this->q0; + $q1 = $this->q1; + + $K = $S0 = $S1 = $S2 = $S3 = array(); + + switch (strlen($this->key)) { + case 16: + list ($s7, $s6, $s5, $s4) = $this->_mdsrem($le_longs[1], $le_longs[2]); + list ($s3, $s2, $s1, $s0) = $this->_mdsrem($le_longs[3], $le_longs[4]); + for ($i = 0, $j = 1; $i < 40; $i+= 2,$j+= 2) { + $A = $m0[$q0[$q0[$i] ^ $key[ 9]] ^ $key[1]] ^ + $m1[$q0[$q1[$i] ^ $key[10]] ^ $key[2]] ^ + $m2[$q1[$q0[$i] ^ $key[11]] ^ $key[3]] ^ + $m3[$q1[$q1[$i] ^ $key[12]] ^ $key[4]]; + $B = $m0[$q0[$q0[$j] ^ $key[13]] ^ $key[5]] ^ + $m1[$q0[$q1[$j] ^ $key[14]] ^ $key[6]] ^ + $m2[$q1[$q0[$j] ^ $key[15]] ^ $key[7]] ^ + $m3[$q1[$q1[$j] ^ $key[16]] ^ $key[8]]; + $B = ($B << 8) | ($B >> 24 & 0xff); + $K[] = $A+= $B; + $K[] = (($A+= $B) << 9 | $A >> 23 & 0x1ff); + } + for ($i = 0; $i < 256; ++$i) { + $S0[$i] = $m0[$q0[$q0[$i] ^ $s4] ^ $s0]; + $S1[$i] = $m1[$q0[$q1[$i] ^ $s5] ^ $s1]; + $S2[$i] = $m2[$q1[$q0[$i] ^ $s6] ^ $s2]; + $S3[$i] = $m3[$q1[$q1[$i] ^ $s7] ^ $s3]; + } + break; + case 24: + list ($sb, $sa, $s9, $s8) = $this->_mdsrem($le_longs[1], $le_longs[2]); + list ($s7, $s6, $s5, $s4) = $this->_mdsrem($le_longs[3], $le_longs[4]); + list ($s3, $s2, $s1, $s0) = $this->_mdsrem($le_longs[5], $le_longs[6]); + for ($i = 0, $j = 1; $i < 40; $i+= 2, $j+= 2) { + $A = $m0[$q0[$q0[$q1[$i] ^ $key[17]] ^ $key[ 9]] ^ $key[1]] ^ + $m1[$q0[$q1[$q1[$i] ^ $key[18]] ^ $key[10]] ^ $key[2]] ^ + $m2[$q1[$q0[$q0[$i] ^ $key[19]] ^ $key[11]] ^ $key[3]] ^ + $m3[$q1[$q1[$q0[$i] ^ $key[20]] ^ $key[12]] ^ $key[4]]; + $B = $m0[$q0[$q0[$q1[$j] ^ $key[21]] ^ $key[13]] ^ $key[5]] ^ + $m1[$q0[$q1[$q1[$j] ^ $key[22]] ^ $key[14]] ^ $key[6]] ^ + $m2[$q1[$q0[$q0[$j] ^ $key[23]] ^ $key[15]] ^ $key[7]] ^ + $m3[$q1[$q1[$q0[$j] ^ $key[24]] ^ $key[16]] ^ $key[8]]; + $B = ($B << 8) | ($B >> 24 & 0xff); + $K[] = $A+= $B; + $K[] = (($A+= $B) << 9 | $A >> 23 & 0x1ff); + } + for ($i = 0; $i < 256; ++$i) { + $S0[$i] = $m0[$q0[$q0[$q1[$i] ^ $s8] ^ $s4] ^ $s0]; + $S1[$i] = $m1[$q0[$q1[$q1[$i] ^ $s9] ^ $s5] ^ $s1]; + $S2[$i] = $m2[$q1[$q0[$q0[$i] ^ $sa] ^ $s6] ^ $s2]; + $S3[$i] = $m3[$q1[$q1[$q0[$i] ^ $sb] ^ $s7] ^ $s3]; + } + break; + default: // 32 + list ($sf, $se, $sd, $sc) = $this->_mdsrem($le_longs[1], $le_longs[2]); + list ($sb, $sa, $s9, $s8) = $this->_mdsrem($le_longs[3], $le_longs[4]); + list ($s7, $s6, $s5, $s4) = $this->_mdsrem($le_longs[5], $le_longs[6]); + list ($s3, $s2, $s1, $s0) = $this->_mdsrem($le_longs[7], $le_longs[8]); + for ($i = 0, $j = 1; $i < 40; $i+= 2, $j+= 2) { + $A = $m0[$q0[$q0[$q1[$q1[$i] ^ $key[25]] ^ $key[17]] ^ $key[ 9]] ^ $key[1]] ^ + $m1[$q0[$q1[$q1[$q0[$i] ^ $key[26]] ^ $key[18]] ^ $key[10]] ^ $key[2]] ^ + $m2[$q1[$q0[$q0[$q0[$i] ^ $key[27]] ^ $key[19]] ^ $key[11]] ^ $key[3]] ^ + $m3[$q1[$q1[$q0[$q1[$i] ^ $key[28]] ^ $key[20]] ^ $key[12]] ^ $key[4]]; + $B = $m0[$q0[$q0[$q1[$q1[$j] ^ $key[29]] ^ $key[21]] ^ $key[13]] ^ $key[5]] ^ + $m1[$q0[$q1[$q1[$q0[$j] ^ $key[30]] ^ $key[22]] ^ $key[14]] ^ $key[6]] ^ + $m2[$q1[$q0[$q0[$q0[$j] ^ $key[31]] ^ $key[23]] ^ $key[15]] ^ $key[7]] ^ + $m3[$q1[$q1[$q0[$q1[$j] ^ $key[32]] ^ $key[24]] ^ $key[16]] ^ $key[8]]; + $B = ($B << 8) | ($B >> 24 & 0xff); + $K[] = $A+= $B; + $K[] = (($A+= $B) << 9 | $A >> 23 & 0x1ff); + } + for ($i = 0; $i < 256; ++$i) { + $S0[$i] = $m0[$q0[$q0[$q1[$q1[$i] ^ $sc] ^ $s8] ^ $s4] ^ $s0]; + $S1[$i] = $m1[$q0[$q1[$q1[$q0[$i] ^ $sd] ^ $s9] ^ $s5] ^ $s1]; + $S2[$i] = $m2[$q1[$q0[$q0[$q0[$i] ^ $se] ^ $sa] ^ $s6] ^ $s2]; + $S3[$i] = $m3[$q1[$q1[$q0[$q1[$i] ^ $sf] ^ $sb] ^ $s7] ^ $s3]; + } + } + + $this->K = $K; + $this->S0 = $S0; + $this->S1 = $S1; + $this->S2 = $S2; + $this->S3 = $S3; + } + + /** + * _mdsrem function using by the twofish cipher algorithm + * + * @access private + * @param String $A + * @param String $B + * @return Array + */ + function _mdsrem($A, $B) + { + // No gain by unrolling this loop. + for ($i = 0; $i < 8; ++$i) { + // Get most significant coefficient. + $t = 0xff & ($B >> 24); + + // Shift the others up. + $B = ($B << 8) | (0xff & ($A >> 24)); + $A<<= 8; + + $u = $t << 1; + + // Subtract the modular polynomial on overflow. + if ($t & 0x80) { + $u^= 0x14d; + } + + // Remove t * (a * x^2 + 1). + $B ^= $t ^ ($u << 16); + + // Form u = a*t + t/a = t*(a + 1/a). + $u^= 0x7fffffff & ($t >> 1); + + // Add the modular polynomial on underflow. + if ($t & 0x01) $u^= 0xa6 ; + + // Remove t * (a + 1/a) * (x^3 + x). + $B^= ($u << 24) | ($u << 8); + } + + return array( + 0xff & $B >> 24, + 0xff & $B >> 16, + 0xff & $B >> 8, + 0xff & $B); + } + + /** + * Encrypts a block + * + * @access private + * @param String $in + * @return String + */ + function _encryptBlock($in) + { + $S0 = $this->S0; + $S1 = $this->S1; + $S2 = $this->S2; + $S3 = $this->S3; + $K = $this->K; + + $in = unpack("V4", $in); + $R0 = $K[0] ^ $in[1]; + $R1 = $K[1] ^ $in[2]; + $R2 = $K[2] ^ $in[3]; + $R3 = $K[3] ^ $in[4]; + + $ki = 7; + while ($ki < 39) { + $t0 = $S0[ $R0 & 0xff] ^ + $S1[($R0 >> 8) & 0xff] ^ + $S2[($R0 >> 16) & 0xff] ^ + $S3[($R0 >> 24) & 0xff]; + $t1 = $S0[($R1 >> 24) & 0xff] ^ + $S1[ $R1 & 0xff] ^ + $S2[($R1 >> 8) & 0xff] ^ + $S3[($R1 >> 16) & 0xff]; + $R2^= $t0 + $t1 + $K[++$ki]; + $R2 = ($R2 >> 1 & 0x7fffffff) | ($R2 << 31); + $R3 = ((($R3 >> 31) & 1) | ($R3 << 1)) ^ ($t0 + ($t1 << 1) + $K[++$ki]); + + $t0 = $S0[ $R2 & 0xff] ^ + $S1[($R2 >> 8) & 0xff] ^ + $S2[($R2 >> 16) & 0xff] ^ + $S3[($R2 >> 24) & 0xff]; + $t1 = $S0[($R3 >> 24) & 0xff] ^ + $S1[ $R3 & 0xff] ^ + $S2[($R3 >> 8) & 0xff] ^ + $S3[($R3 >> 16) & 0xff]; + $R0^= ($t0 + $t1 + $K[++$ki]); + $R0 = ($R0 >> 1 & 0x7fffffff) | ($R0 << 31); + $R1 = ((($R1 >> 31) & 1) | ($R1 << 1)) ^ ($t0 + ($t1 << 1) + $K[++$ki]); + } + + return pack("V4", $K[4] ^ $R2, + $K[5] ^ $R3, + $K[6] ^ $R0, + $K[7] ^ $R1); + } + + /** + * Decrypts a block + * + * @access private + * @param String $in + * @return String + */ + function _decryptBlock($in) + { + $S0 = $this->S0; + $S1 = $this->S1; + $S2 = $this->S2; + $S3 = $this->S3; + $K = $this->K; + + $in = unpack("V4", $in); + $R0 = $K[4] ^ $in[1]; + $R1 = $K[5] ^ $in[2]; + $R2 = $K[6] ^ $in[3]; + $R3 = $K[7] ^ $in[4]; + + $ki = 40; + while ($ki > 8) { + $t0 = $S0[$R0 & 0xff] ^ + $S1[$R0 >> 8 & 0xff] ^ + $S2[$R0 >> 16 & 0xff] ^ + $S3[$R0 >> 24 & 0xff]; + $t1 = $S0[$R1 >> 24 & 0xff] ^ + $S1[$R1 & 0xff] ^ + $S2[$R1 >> 8 & 0xff] ^ + $S3[$R1 >> 16 & 0xff]; + $R3^= $t0 + ($t1 << 1) + $K[--$ki]; + $R3 = $R3 >> 1 & 0x7fffffff | $R3 << 31; + $R2 = ($R2 >> 31 & 0x1 | $R2 << 1) ^ ($t0 + $t1 + $K[--$ki]); + + $t0 = $S0[$R2 & 0xff] ^ + $S1[$R2 >> 8 & 0xff] ^ + $S2[$R2 >> 16 & 0xff] ^ + $S3[$R2 >> 24 & 0xff]; + $t1 = $S0[$R3 >> 24 & 0xff] ^ + $S1[$R3 & 0xff] ^ + $S2[$R3 >> 8 & 0xff] ^ + $S3[$R3 >> 16 & 0xff]; + $R1^= $t0 + ($t1 << 1) + $K[--$ki]; + $R1 = $R1 >> 1 & 0x7fffffff | $R1 << 31; + $R0 = ($R0 >> 31 & 0x1 | $R0 << 1) ^ ($t0 + $t1 + $K[--$ki]); + } + + return pack("V4", $K[0] ^ $R2, + $K[1] ^ $R3, + $K[2] ^ $R0, + $K[3] ^ $R1); + } + + /** + * Setup the performance-optimized function for de/encrypt() + * + * @see Crypt_Base::_setupInlineCrypt() + * @access private + */ + function _setupInlineCrypt() + { + $lambda_functions =& Crypt_Twofish::_getLambdaFunctions(); + + // Max. 10 Ultra-Hi-optimized inline-crypt functions. After that, we'll (still) create very fast code, but not the ultimate fast one. + $gen_hi_opt_code = (bool)( count($lambda_functions) < 10 ); + + switch (true) { + case $gen_hi_opt_code: + $code_hash = md5(str_pad("Crypt_Twofish, {$this->mode}, ", 32, "\0") . $this->key); + break; + default: + $code_hash = "Crypt_Twofish, {$this->mode}"; + } + + if (!isset($lambda_functions[$code_hash])) { + switch (true) { + case $gen_hi_opt_code: + $K = $this->K; + + $init_crypt = ' + static $S0, $S1, $S2, $S3; + if (!$S0) { + for ($i = 0; $i < 256; ++$i) { + $S0[] = (int)$self->S0[$i]; + $S1[] = (int)$self->S1[$i]; + $S2[] = (int)$self->S2[$i]; + $S3[] = (int)$self->S3[$i]; + } + } + '; + break; + default: + $K = array(); + for ($i = 0; $i < 40; ++$i) { + $K[] = '$K_' . $i; + } + + $init_crypt = ' + $S0 = $self->S0; + $S1 = $self->S1; + $S2 = $self->S2; + $S3 = $self->S3; + list(' . implode(',', $K) . ') = $self->K; + '; + } + + // Generating encrypt code: + $encrypt_block = ' + $in = unpack("V4", $in); + $R0 = '.$K[0].' ^ $in[1]; + $R1 = '.$K[1].' ^ $in[2]; + $R2 = '.$K[2].' ^ $in[3]; + $R3 = '.$K[3].' ^ $in[4]; + '; + for ($ki = 7, $i = 0; $i < 8; ++$i) { + $encrypt_block.= ' + $t0 = $S0[ $R0 & 0xff] ^ + $S1[($R0 >> 8) & 0xff] ^ + $S2[($R0 >> 16) & 0xff] ^ + $S3[($R0 >> 24) & 0xff]; + $t1 = $S0[($R1 >> 24) & 0xff] ^ + $S1[ $R1 & 0xff] ^ + $S2[($R1 >> 8) & 0xff] ^ + $S3[($R1 >> 16) & 0xff]; + $R2^= ($t0 + $t1 + '.$K[++$ki].'); + $R2 = ($R2 >> 1 & 0x7fffffff) | ($R2 << 31); + $R3 = ((($R3 >> 31) & 1) | ($R3 << 1)) ^ ($t0 + ($t1 << 1) + '.$K[++$ki].'); + + $t0 = $S0[ $R2 & 0xff] ^ + $S1[($R2 >> 8) & 0xff] ^ + $S2[($R2 >> 16) & 0xff] ^ + $S3[($R2 >> 24) & 0xff]; + $t1 = $S0[($R3 >> 24) & 0xff] ^ + $S1[ $R3 & 0xff] ^ + $S2[($R3 >> 8) & 0xff] ^ + $S3[($R3 >> 16) & 0xff]; + $R0^= ($t0 + $t1 + '.$K[++$ki].'); + $R0 = ($R0 >> 1 & 0x7fffffff) | ($R0 << 31); + $R1 = ((($R1 >> 31) & 1) | ($R1 << 1)) ^ ($t0 + ($t1 << 1) + '.$K[++$ki].'); + '; + } + $encrypt_block.= ' + $in = pack("V4", '.$K[4].' ^ $R2, + '.$K[5].' ^ $R3, + '.$K[6].' ^ $R0, + '.$K[7].' ^ $R1); + '; + + // Generating decrypt code: + $decrypt_block = ' + $in = unpack("V4", $in); + $R0 = '.$K[4].' ^ $in[1]; + $R1 = '.$K[5].' ^ $in[2]; + $R2 = '.$K[6].' ^ $in[3]; + $R3 = '.$K[7].' ^ $in[4]; + '; + for ($ki = 40, $i = 0; $i < 8; ++$i) { + $decrypt_block.= ' + $t0 = $S0[$R0 & 0xff] ^ + $S1[$R0 >> 8 & 0xff] ^ + $S2[$R0 >> 16 & 0xff] ^ + $S3[$R0 >> 24 & 0xff]; + $t1 = $S0[$R1 >> 24 & 0xff] ^ + $S1[$R1 & 0xff] ^ + $S2[$R1 >> 8 & 0xff] ^ + $S3[$R1 >> 16 & 0xff]; + $R3^= $t0 + ($t1 << 1) + '.$K[--$ki].'; + $R3 = $R3 >> 1 & 0x7fffffff | $R3 << 31; + $R2 = ($R2 >> 31 & 0x1 | $R2 << 1) ^ ($t0 + $t1 + '.$K[--$ki].'); + + $t0 = $S0[$R2 & 0xff] ^ + $S1[$R2 >> 8 & 0xff] ^ + $S2[$R2 >> 16 & 0xff] ^ + $S3[$R2 >> 24 & 0xff]; + $t1 = $S0[$R3 >> 24 & 0xff] ^ + $S1[$R3 & 0xff] ^ + $S2[$R3 >> 8 & 0xff] ^ + $S3[$R3 >> 16 & 0xff]; + $R1^= $t0 + ($t1 << 1) + '.$K[--$ki].'; + $R1 = $R1 >> 1 & 0x7fffffff | $R1 << 31; + $R0 = ($R0 >> 31 & 0x1 | $R0 << 1) ^ ($t0 + $t1 + '.$K[--$ki].'); + '; + } + $decrypt_block.= ' + $in = pack("V4", '.$K[0].' ^ $R2, + '.$K[1].' ^ $R3, + '.$K[2].' ^ $R0, + '.$K[3].' ^ $R1); + '; + + $lambda_functions[$code_hash] = $this->_createInlineCryptFunction( + array( + 'init_crypt' => $init_crypt, + 'init_encrypt' => '', + 'init_decrypt' => '', + 'encrypt_block' => $encrypt_block, + 'decrypt_block' => $decrypt_block + ) + ); + } + $this->inline_crypt = $lambda_functions[$code_hash]; + } +} diff --git a/lam/lib/3rdParty/phpseclib/File/ANSI.php b/lam/lib/3rdParty/phpseclib/File/ANSI.php new file mode 100644 index 00000000..b8ea91aa --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/File/ANSI.php @@ -0,0 +1,560 @@ + + * @copyright MMXII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @link http://phpseclib.sourceforge.net + */ + +/** + * Pure-PHP ANSI Decoder + * + * @package File_ANSI + * @author Jim Wigginton + * @version 0.3.0 + * @access public + */ +class File_ANSI +{ + /** + * Max Width + * + * @var Integer + * @access private + */ + var $max_x; + + /** + * Max Height + * + * @var Integer + * @access private + */ + var $max_y; + + /** + * Max History + * + * @var Integer + * @access private + */ + var $max_history; + + /** + * History + * + * @var Array + * @access private + */ + var $history; + + /** + * History Attributes + * + * @var Array + * @access private + */ + var $history_attrs; + + /** + * Current Column + * + * @var Integer + * @access private + */ + var $x; + + /** + * Current Row + * + * @var Integer + * @access private + */ + var $y; + + /** + * Old Column + * + * @var Integer + * @access private + */ + var $old_x; + + /** + * Old Row + * + * @var Integer + * @access private + */ + var $old_y; + + /** + * An empty attribute row + * + * @var Array + * @access private + */ + var $attr_row; + + /** + * The current screen text + * + * @var Array + * @access private + */ + var $screen; + + /** + * The current screen attributes + * + * @var Array + * @access private + */ + var $attrs; + + /** + * The current foreground color + * + * @var String + * @access private + */ + var $foreground; + + /** + * The current background color + * + * @var String + * @access private + */ + var $background; + + /** + * Bold flag + * + * @var Boolean + * @access private + */ + var $bold; + + /** + * Underline flag + * + * @var Boolean + * @access private + */ + var $underline; + + /** + * Blink flag + * + * @var Boolean + * @access private + */ + var $blink; + + /** + * Reverse flag + * + * @var Boolean + * @access private + */ + var $reverse; + + /** + * Color flag + * + * @var Boolean + * @access private + */ + var $color; + + /** + * Current ANSI code + * + * @var String + * @access private + */ + var $ansi; + + /** + * Default Constructor. + * + * @return File_ANSI + * @access public + */ + function File_ANSI() + { + $this->setHistory(200); + $this->setDimensions(80, 24); + } + + /** + * Set terminal width and height + * + * Resets the screen as well + * + * @param Integer $x + * @param Integer $y + * @access public + */ + function setDimensions($x, $y) + { + $this->max_x = $x - 1; + $this->max_y = $y - 1; + $this->x = $this->y = 0; + $this->history = $this->history_attrs = array(); + $this->attr_row = array_fill(0, $this->max_x + 1, ''); + $this->screen = array_fill(0, $this->max_y + 1, ''); + $this->attrs = array_fill(0, $this->max_y + 1, $this->attr_row); + $this->foreground = 'white'; + $this->background = 'black'; + $this->bold = false; + $this->underline = false; + $this->blink = false; + $this->reverse = false; + $this->color = false; + + $this->ansi = ''; + } + + /** + * Set the number of lines that should be logged past the terminal height + * + * @param Integer $x + * @param Integer $y + * @access public + */ + function setHistory($history) + { + $this->max_history = $history; + } + + /** + * Load a string + * + * @param String $source + * @access public + */ + function loadString($source) + { + $this->setDimensions($this->max_x + 1, $this->max_y + 1); + $this->appendString($source); + } + + /** + * Appdend a string + * + * @param String $source + * @access public + */ + function appendString($source) + { + for ($i = 0; $i < strlen($source); $i++) { + if (strlen($this->ansi)) { + $this->ansi.= $source[$i]; + $chr = ord($source[$i]); + // http://en.wikipedia.org/wiki/ANSI_escape_code#Sequence_elements + // single character CSI's not currently supported + switch (true) { + case $this->ansi == "\x1B=": + $this->ansi = ''; + continue 2; + case strlen($this->ansi) == 2 && $chr >= 64 && $chr <= 95 && $chr != ord('['): + case strlen($this->ansi) > 2 && $chr >= 64 && $chr <= 126: + break; + default: + continue 2; + } + // http://ascii-table.com/ansi-escape-sequences-vt-100.php + switch ($this->ansi) { + case "\x1B[H": // Move cursor to upper left corner + $this->old_x = $this->x; + $this->old_y = $this->y; + $this->x = $this->y = 0; + break; + case "\x1B[J": // Clear screen from cursor down + $this->history = array_merge($this->history, array_slice(array_splice($this->screen, $this->y + 1), 0, $this->old_y)); + $this->screen = array_merge($this->screen, array_fill($this->y, $this->max_y, '')); + + $this->history_attrs = array_merge($this->history_attrs, array_slice(array_splice($this->attrs, $this->y + 1), 0, $this->old_y)); + $this->attrs = array_merge($this->attrs, array_fill($this->y, $this->max_y, $this->attr_row)); + + if (count($this->history) == $this->max_history) { + array_shift($this->history); + array_shift($this->history_attrs); + } + case "\x1B[K": // Clear screen from cursor right + $this->screen[$this->y] = substr($this->screen[$this->y], 0, $this->x); + + array_splice($this->attrs[$this->y], $this->x + 1); + break; + case "\x1B[2K": // Clear entire line + $this->screen[$this->y] = str_repeat(' ', $this->x); + $this->attrs[$this->y] = $this->attr_row; + break; + case "\x1B[?1h": // set cursor key to application + case "\x1B[?25h": // show the cursor + break; + case "\x1BE": // Move to next line + $this->_newLine(); + $this->x = 0; + break; + default: + switch (true) { + case preg_match('#\x1B\[(\d+);(\d+)H#', $this->ansi, $match): // Move cursor to screen location v,h + $this->old_x = $this->x; + $this->old_y = $this->y; + $this->x = $match[2] - 1; + $this->y = $match[1] - 1; + break; + case preg_match('#\x1B\[(\d+)C#', $this->ansi, $match): // Move cursor right n lines + $this->old_x = $this->x; + $x = $match[1] - 1; + break; + case preg_match('#\x1B\[(\d+);(\d+)r#', $this->ansi, $match): // Set top and bottom lines of a window + break; + case preg_match('#\x1B\[(\d*(?:;\d*)*)m#', $this->ansi, $match): // character attributes + $mods = explode(';', $match[1]); + foreach ($mods as $mod) { + switch ($mod) { + case 0: // Turn off character attributes + $this->attrs[$this->y][$this->x] = ''; + + if ($this->bold) $this->attrs[$this->y][$this->x].= ''; + if ($this->underline) $this->attrs[$this->y][$this->x].= ''; + if ($this->blink) $this->attrs[$this->y][$this->x].= ''; + if ($this->color) $this->attrs[$this->y][$this->x].= ''; + + if ($this->reverse) { + $temp = $this->background; + $this->background = $this->foreground; + $this->foreground = $temp; + } + + $this->bold = $this->underline = $this->blink = $this->color = $this->reverse = false; + break; + case 1: // Turn bold mode on + if (!$this->bold) { + $this->attrs[$this->y][$this->x] = ''; + $this->bold = true; + } + break; + case 4: // Turn underline mode on + if (!$this->underline) { + $this->attrs[$this->y][$this->x] = ''; + $this->underline = true; + } + break; + case 5: // Turn blinking mode on + if (!$this->blink) { + $this->attrs[$this->y][$this->x] = ''; + $this->blink = true; + } + break; + case 7: // Turn reverse video on + $this->reverse = !$this->reverse; + $temp = $this->background; + $this->background = $this->foreground; + $this->foreground = $temp; + $this->attrs[$this->y][$this->x] = ''; + if ($this->color) { + $this->attrs[$this->y][$this->x] = '' . $this->attrs[$this->y][$this->x]; + } + $this->color = true; + break; + default: // set colors + //$front = $this->reverse ? &$this->background : &$this->foreground; + $front = &$this->{ $this->reverse ? 'background' : 'foreground' }; + //$back = $this->reverse ? &$this->foreground : &$this->background; + $back = &$this->{ $this->reverse ? 'foreground' : 'background' }; + switch ($mod) { + case 30: $front = 'black'; break; + case 31: $front = 'red'; break; + case 32: $front = 'green'; break; + case 33: $front = 'yellow'; break; + case 34: $front = 'blue'; break; + case 35: $front = 'magenta'; break; + case 36: $front = 'cyan'; break; + case 37: $front = 'white'; break; + + case 40: $back = 'black'; break; + case 41: $back = 'red'; break; + case 42: $back = 'green'; break; + case 43: $back = 'yellow'; break; + case 44: $back = 'blue'; break; + case 45: $back = 'magenta'; break; + case 46: $back = 'cyan'; break; + case 47: $back = 'white'; break; + + default: + user_error('Unsupported attribute: ' . $mod); + $this->ansi = ''; + break 2; + } + + unset($temp); + $this->attrs[$this->y][$this->x] = ''; + if ($this->color) { + $this->attrs[$this->y][$this->x] = '' . $this->attrs[$this->y][$this->x]; + } + $this->color = true; + } + } + break; + default: + user_error("{$this->ansi} unsupported\r\n"); + } + } + $this->ansi = ''; + continue; + } + + switch ($source[$i]) { + case "\r": + $this->x = 0; + break; + case "\n": + $this->_newLine(); + break; + case "\x0F": // shift + break; + case "\x1B": // start ANSI escape code + $this->ansi.= "\x1B"; + break; + default: + $this->screen[$this->y] = substr_replace( + $this->screen[$this->y], + $source[$i], + $this->x, + 1 + ); + + if ($this->x > $this->max_x) { + $this->x = 0; + $this->y++; + } else { + $this->x++; + } + } + } + } + + /** + * Add a new line + * + * Also update the $this->screen and $this->history buffers + * + * @access private + */ + function _newLine() + { + //if ($this->y < $this->max_y) { + // $this->y++; + //} + + while ($this->y >= $this->max_y) { + $this->history = array_merge($this->history, array(array_shift($this->screen))); + $this->screen[] = ''; + + $this->history_attrs = array_merge($this->history_attrs, array(array_shift($this->attrs))); + $this->attrs[] = $this->attr_row; + + if (count($this->history) >= $this->max_history) { + array_shift($this->history); + array_shift($this->history_attrs); + } + + $this->y--; + } + $this->y++; + } + + /** + * Returns the current screen without preformating + * + * @access private + * @return String + */ + function _getScreen() + { + $output = ''; + for ($i = 0; $i <= $this->max_y; $i++) { + for ($j = 0; $j <= $this->max_x + 1; $j++) { + if (isset($this->attrs[$i][$j])) { + $output.= $this->attrs[$i][$j]; + } + if (isset($this->screen[$i][$j])) { + $output.= htmlspecialchars($this->screen[$i][$j]); + } + } + $output.= "\r\n"; + } + return rtrim($output); + } + + /** + * Returns the current screen + * + * @access public + * @return String + */ + function getScreen() + { + return '
    ' . $this->_getScreen() . '
    '; + } + + /** + * Returns the current screen and the x previous lines + * + * @access public + * @return String + */ + function getHistory() + { + $scrollback = ''; + for ($i = 0; $i < count($this->history); $i++) { + for ($j = 0; $j <= $this->max_x + 1; $j++) { + if (isset($this->history_attrs[$i][$j])) { + $scrollback.= $this->history_attrs[$i][$j]; + } + if (isset($this->history[$i][$j])) { + $scrollback.= htmlspecialchars($this->history[$i][$j]); + } + } + $scrollback.= "\r\n"; + } + $scrollback.= $this->_getScreen(); + + return '
    ' . $scrollback . '
    '; + } +} diff --git a/lam/lib/3rdParty/phpseclib/File/ASN1.php b/lam/lib/3rdParty/phpseclib/File/ASN1.php new file mode 100644 index 00000000..029ee679 --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/File/ASN1.php @@ -0,0 +1,1319 @@ + + * @copyright MMXII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @link http://phpseclib.sourceforge.net + */ + +/**#@+ + * Tag Classes + * + * @access private + * @link http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#page=12 + */ +define('FILE_ASN1_CLASS_UNIVERSAL', 0); +define('FILE_ASN1_CLASS_APPLICATION', 1); +define('FILE_ASN1_CLASS_CONTEXT_SPECIFIC', 2); +define('FILE_ASN1_CLASS_PRIVATE', 3); +/**#@-*/ + +/**#@+ + * Tag Classes + * + * @access private + * @link http://www.obj-sys.com/asn1tutorial/node124.html + */ +define('FILE_ASN1_TYPE_BOOLEAN', 1); +define('FILE_ASN1_TYPE_INTEGER', 2); +define('FILE_ASN1_TYPE_BIT_STRING', 3); +define('FILE_ASN1_TYPE_OCTET_STRING', 4); +define('FILE_ASN1_TYPE_NULL', 5); +define('FILE_ASN1_TYPE_OBJECT_IDENTIFIER', 6); +//define('FILE_ASN1_TYPE_OBJECT_DESCRIPTOR', 7); +//define('FILE_ASN1_TYPE_INSTANCE_OF', 8); // EXTERNAL +define('FILE_ASN1_TYPE_REAL', 9); +define('FILE_ASN1_TYPE_ENUMERATED', 10); +//define('FILE_ASN1_TYPE_EMBEDDED', 11); +define('FILE_ASN1_TYPE_UTF8_STRING', 12); +//define('FILE_ASN1_TYPE_RELATIVE_OID', 13); +define('FILE_ASN1_TYPE_SEQUENCE', 16); // SEQUENCE OF +define('FILE_ASN1_TYPE_SET', 17); // SET OF +/**#@-*/ +/**#@+ + * More Tag Classes + * + * @access private + * @link http://www.obj-sys.com/asn1tutorial/node10.html + */ +define('FILE_ASN1_TYPE_NUMERIC_STRING', 18); +define('FILE_ASN1_TYPE_PRINTABLE_STRING', 19); +define('FILE_ASN1_TYPE_TELETEX_STRING', 20); // T61String +define('FILE_ASN1_TYPE_VIDEOTEX_STRING', 21); +define('FILE_ASN1_TYPE_IA5_STRING', 22); +define('FILE_ASN1_TYPE_UTC_TIME', 23); +define('FILE_ASN1_TYPE_GENERALIZED_TIME', 24); +define('FILE_ASN1_TYPE_GRAPHIC_STRING', 25); +define('FILE_ASN1_TYPE_VISIBLE_STRING', 26); // ISO646String +define('FILE_ASN1_TYPE_GENERAL_STRING', 27); +define('FILE_ASN1_TYPE_UNIVERSAL_STRING', 28); +//define('FILE_ASN1_TYPE_CHARACTER_STRING', 29); +define('FILE_ASN1_TYPE_BMP_STRING', 30); +/**#@-*/ + +/**#@+ + * Tag Aliases + * + * These tags are kinda place holders for other tags. + * + * @access private + */ +define('FILE_ASN1_TYPE_CHOICE', -1); +define('FILE_ASN1_TYPE_ANY', -2); +/**#@-*/ + +/** + * ASN.1 Element + * + * Bypass normal encoding rules in File_ASN1::encodeDER() + * + * @package File_ASN1 + * @author Jim Wigginton + * @version 0.3.0 + * @access public + */ +class File_ASN1_Element +{ + /** + * Raw element value + * + * @var String + * @access private + */ + var $element; + + /** + * Constructor + * + * @param String $encoded + * @return File_ASN1_Element + * @access public + */ + function File_ASN1_Element($encoded) + { + $this->element = $encoded; + } +} + +/** + * Pure-PHP ASN.1 Parser + * + * @package File_ASN1 + * @author Jim Wigginton + * @version 0.3.0 + * @access public + */ +class File_ASN1 +{ + /** + * ASN.1 object identifier + * + * @var Array + * @access private + * @link http://en.wikipedia.org/wiki/Object_identifier + */ + var $oids = array(); + + /** + * Default date format + * + * @var String + * @access private + * @link http://php.net/class.datetime + */ + var $format = 'D, d M y H:i:s O'; + + /** + * Default date format + * + * @var Array + * @access private + * @see File_ASN1::setTimeFormat() + * @see File_ASN1::asn1map() + * @link http://php.net/class.datetime + */ + var $encoded; + + /** + * Filters + * + * If the mapping type is FILE_ASN1_TYPE_ANY what do we actually encode it as? + * + * @var Array + * @access private + * @see File_ASN1::_encode_der() + */ + var $filters; + + /** + * Type mapping table for the ANY type. + * + * Structured or unknown types are mapped to a FILE_ASN1_Element. + * Unambiguous types get the direct mapping (int/real/bool). + * Others are mapped as a choice, with an extra indexing level. + * + * @var Array + * @access public + */ + var $ANYmap = array( + FILE_ASN1_TYPE_BOOLEAN => true, + FILE_ASN1_TYPE_INTEGER => true, + FILE_ASN1_TYPE_BIT_STRING => 'bitString', + FILE_ASN1_TYPE_OCTET_STRING => 'octetString', + FILE_ASN1_TYPE_NULL => 'null', + FILE_ASN1_TYPE_OBJECT_IDENTIFIER => 'objectIdentifier', + FILE_ASN1_TYPE_REAL => true, + FILE_ASN1_TYPE_ENUMERATED => 'enumerated', + FILE_ASN1_TYPE_UTF8_STRING => 'utf8String', + FILE_ASN1_TYPE_NUMERIC_STRING => 'numericString', + FILE_ASN1_TYPE_PRINTABLE_STRING => 'printableString', + FILE_ASN1_TYPE_TELETEX_STRING => 'teletexString', + FILE_ASN1_TYPE_VIDEOTEX_STRING => 'videotexString', + FILE_ASN1_TYPE_IA5_STRING => 'ia5String', + FILE_ASN1_TYPE_UTC_TIME => 'utcTime', + FILE_ASN1_TYPE_GENERALIZED_TIME => 'generalTime', + FILE_ASN1_TYPE_GRAPHIC_STRING => 'graphicString', + FILE_ASN1_TYPE_VISIBLE_STRING => 'visibleString', + FILE_ASN1_TYPE_GENERAL_STRING => 'generalString', + FILE_ASN1_TYPE_UNIVERSAL_STRING => 'universalString', + //FILE_ASN1_TYPE_CHARACTER_STRING => 'characterString', + FILE_ASN1_TYPE_BMP_STRING => 'bmpString' + ); + + /** + * String type to character size mapping table. + * + * Non-convertable types are absent from this table. + * size == 0 indicates variable length encoding. + * + * @var Array + * @access public + */ + var $stringTypeSize = array( + FILE_ASN1_TYPE_UTF8_STRING => 0, + FILE_ASN1_TYPE_BMP_STRING => 2, + FILE_ASN1_TYPE_UNIVERSAL_STRING => 4, + FILE_ASN1_TYPE_PRINTABLE_STRING => 1, + FILE_ASN1_TYPE_TELETEX_STRING => 1, + FILE_ASN1_TYPE_IA5_STRING => 1, + FILE_ASN1_TYPE_VISIBLE_STRING => 1, + ); + + /** + * Default Constructor. + * + * @access public + */ + function File_ASN1() + { + static $static_init = null; + if (!$static_init) { + $static_init = true; + if (!class_exists('Math_BigInteger')) { + include_once 'Math/BigInteger.php'; + } + } + } + + /** + * Parse BER-encoding + * + * Serves a similar purpose to openssl's asn1parse + * + * @param String $encoded + * @return Array + * @access public + */ + function decodeBER($encoded) + { + if (is_object($encoded) && strtolower(get_class($encoded)) == 'file_asn1_element') { + $encoded = $encoded->element; + } + + $this->encoded = $encoded; + return $this->_decode_ber($encoded); + } + + /** + * Parse BER-encoding (Helper function) + * + * Sometimes we want to get the BER encoding of a particular tag. $start lets us do that without having to reencode. + * $encoded is passed by reference for the recursive calls done for FILE_ASN1_TYPE_BIT_STRING and + * FILE_ASN1_TYPE_OCTET_STRING. In those cases, the indefinite length is used. + * + * @param String $encoded + * @param Integer $start + * @return Array + * @access private + */ + function _decode_ber(&$encoded, $start = 0) + { + $decoded = array(); + + while ( strlen($encoded) ) { + $current = array('start' => $start); + + $type = ord($this->_string_shift($encoded)); + $start++; + + $constructed = ($type >> 5) & 1; + + $tag = $type & 0x1F; + if ($tag == 0x1F) { + $tag = 0; + // process septets (since the eighth bit is ignored, it's not an octet) + do { + $loop = ord($encoded[0]) >> 7; + $tag <<= 7; + $tag |= ord($this->_string_shift($encoded)) & 0x7F; + $start++; + } while ( $loop ); + } + + // Length, as discussed in paragraph 8.1.3 of X.690-0207.pdf#page=13 + $length = ord($this->_string_shift($encoded)); + $start++; + if ( $length == 0x80 ) { // indefinite length + // "[A sender shall] use the indefinite form (see 8.1.3.6) if the encoding is constructed and is not all + // immediately available." -- paragraph 8.1.3.2.c + //if ( !$constructed ) { + // return false; + //} + $length = strlen($encoded); + } elseif ( $length & 0x80 ) { // definite length, long form + // technically, the long form of the length can be represented by up to 126 octets (bytes), but we'll only + // support it up to four. + $length&= 0x7F; + $temp = $this->_string_shift($encoded, $length); + // tags of indefinite length don't really have a header length; this length includes the tag + $current+= array('headerlength' => $length + 2); + $start+= $length; + extract(unpack('Nlength', substr(str_pad($temp, 4, chr(0), STR_PAD_LEFT), -4))); + } else { + $current+= array('headerlength' => 2); + } + + // End-of-content, see paragraphs 8.1.1.3, 8.1.3.2, 8.1.3.6, 8.1.5, and (for an example) 8.6.4.2 + if (!$type && !$length) { + return $decoded; + } + $content = $this->_string_shift($encoded, $length); + + /* Class is UNIVERSAL, APPLICATION, PRIVATE, or CONTEXT-SPECIFIC. The UNIVERSAL class is restricted to the ASN.1 + built-in types. It defines an application-independent data type that must be distinguishable from all other + data types. The other three classes are user defined. The APPLICATION class distinguishes data types that + have a wide, scattered use within a particular presentation context. PRIVATE distinguishes data types within + a particular organization or country. CONTEXT-SPECIFIC distinguishes members of a sequence or set, the + alternatives of a CHOICE, or universally tagged set members. Only the class number appears in braces for this + data type; the term CONTEXT-SPECIFIC does not appear. + + -- http://www.obj-sys.com/asn1tutorial/node12.html */ + $class = ($type >> 6) & 3; + switch ($class) { + case FILE_ASN1_CLASS_APPLICATION: + case FILE_ASN1_CLASS_PRIVATE: + case FILE_ASN1_CLASS_CONTEXT_SPECIFIC: + $decoded[] = array( + 'type' => $class, + 'constant' => $tag, + 'content' => $constructed ? $this->_decode_ber($content, $start) : $content, + 'length' => $length + $start - $current['start'] + ) + $current; + $start+= $length; + continue 2; + } + + $current+= array('type' => $tag); + + // decode UNIVERSAL tags + switch ($tag) { + case FILE_ASN1_TYPE_BOOLEAN: + // "The contents octets shall consist of a single octet." -- paragraph 8.2.1 + //if (strlen($content) != 1) { + // return false; + //} + $current['content'] = (bool) ord($content[0]); + break; + case FILE_ASN1_TYPE_INTEGER: + case FILE_ASN1_TYPE_ENUMERATED: + $current['content'] = new Math_BigInteger($content, -256); + break; + case FILE_ASN1_TYPE_REAL: // not currently supported + return false; + case FILE_ASN1_TYPE_BIT_STRING: + // The initial octet shall encode, as an unsigned binary integer with bit 1 as the least significant bit, + // the number of unused bits in the final subsequent octet. The number shall be in the range zero to + // seven. + if (!$constructed) { + $current['content'] = $content; + } else { + $temp = $this->_decode_ber($content, $start); + $length-= strlen($content); + $last = count($temp) - 1; + for ($i = 0; $i < $last; $i++) { + // all subtags should be bit strings + //if ($temp[$i]['type'] != FILE_ASN1_TYPE_BIT_STRING) { + // return false; + //} + $current['content'].= substr($temp[$i]['content'], 1); + } + // all subtags should be bit strings + //if ($temp[$last]['type'] != FILE_ASN1_TYPE_BIT_STRING) { + // return false; + //} + $current['content'] = $temp[$last]['content'][0] . $current['content'] . substr($temp[$i]['content'], 1); + } + break; + case FILE_ASN1_TYPE_OCTET_STRING: + if (!$constructed) { + $current['content'] = $content; + } else { + $temp = $this->_decode_ber($content, $start); + $length-= strlen($content); + for ($i = 0, $size = count($temp); $i < $size; $i++) { + // all subtags should be octet strings + //if ($temp[$i]['type'] != FILE_ASN1_TYPE_OCTET_STRING) { + // return false; + //} + $current['content'].= $temp[$i]['content']; + } + // $length = + } + break; + case FILE_ASN1_TYPE_NULL: + // "The contents octets shall not contain any octets." -- paragraph 8.8.2 + //if (strlen($content)) { + // return false; + //} + break; + case FILE_ASN1_TYPE_SEQUENCE: + case FILE_ASN1_TYPE_SET: + $current['content'] = $this->_decode_ber($content, $start); + break; + case FILE_ASN1_TYPE_OBJECT_IDENTIFIER: + $temp = ord($this->_string_shift($content)); + $current['content'] = sprintf('%d.%d', floor($temp / 40), $temp % 40); + $valuen = 0; + // process septets + while (strlen($content)) { + $temp = ord($this->_string_shift($content)); + $valuen <<= 7; + $valuen |= $temp & 0x7F; + if (~$temp & 0x80) { + $current['content'].= ".$valuen"; + $valuen = 0; + } + } + // the eighth bit of the last byte should not be 1 + //if ($temp >> 7) { + // return false; + //} + break; + /* Each character string type shall be encoded as if it had been declared: + [UNIVERSAL x] IMPLICIT OCTET STRING + + -- X.690-0207.pdf#page=23 (paragraph 8.21.3) + + Per that, we're not going to do any validation. If there are any illegal characters in the string, + we don't really care */ + case FILE_ASN1_TYPE_NUMERIC_STRING: + // 0,1,2,3,4,5,6,7,8,9, and space + case FILE_ASN1_TYPE_PRINTABLE_STRING: + // Upper and lower case letters, digits, space, apostrophe, left/right parenthesis, plus sign, comma, + // hyphen, full stop, solidus, colon, equal sign, question mark + case FILE_ASN1_TYPE_TELETEX_STRING: + // The Teletex character set in CCITT's T61, space, and delete + // see http://en.wikipedia.org/wiki/Teletex#Character_sets + case FILE_ASN1_TYPE_VIDEOTEX_STRING: + // The Videotex character set in CCITT's T.100 and T.101, space, and delete + case FILE_ASN1_TYPE_VISIBLE_STRING: + // Printing character sets of international ASCII, and space + case FILE_ASN1_TYPE_IA5_STRING: + // International Alphabet 5 (International ASCII) + case FILE_ASN1_TYPE_GRAPHIC_STRING: + // All registered G sets, and space + case FILE_ASN1_TYPE_GENERAL_STRING: + // All registered C and G sets, space and delete + case FILE_ASN1_TYPE_UTF8_STRING: + // ???? + case FILE_ASN1_TYPE_BMP_STRING: + $current['content'] = $content; + break; + case FILE_ASN1_TYPE_UTC_TIME: + case FILE_ASN1_TYPE_GENERALIZED_TIME: + $current['content'] = $this->_decodeTime($content, $tag); + default: + + } + + $start+= $length; + $decoded[] = $current + array('length' => $start - $current['start']); + } + + return $decoded; + } + + /** + * ASN.1 Decode + * + * Provides an ASN.1 semantic mapping ($mapping) from a parsed BER-encoding to a human readable format. + * + * "Special" mappings may be applied on a per tag-name basis via $special. + * + * @param Array $decoded + * @param Array $mapping + * @param Array $special + * @return Array + * @access public + */ + function asn1map($decoded, $mapping, $special = array()) + { + if (isset($mapping['explicit'])) { + $decoded = $decoded['content'][0]; + } + + switch (true) { + case $mapping['type'] == FILE_ASN1_TYPE_ANY: + $intype = $decoded['type']; + if (isset($decoded['constant']) || !isset($this->ANYmap[$intype]) || ($this->encoded[$decoded['start']] & 0x20)) { + return new File_ASN1_Element(substr($this->encoded, $decoded['start'], $decoded['length'])); + } + $inmap = $this->ANYmap[$intype]; + if (is_string($inmap)) { + return array($inmap => $this->asn1map($decoded, array('type' => $intype) + $mapping, $special)); + } + break; + case $mapping['type'] == FILE_ASN1_TYPE_CHOICE: + foreach ($mapping['children'] as $key => $option) { + switch (true) { + case isset($option['constant']) && $option['constant'] == $decoded['constant']: + case !isset($option['constant']) && $option['type'] == $decoded['type']: + $value = $this->asn1map($decoded, $option, $special); + break; + case !isset($option['constant']) && $option['type'] == FILE_ASN1_TYPE_CHOICE: + $v = $this->asn1map($decoded, $option, $special); + if (isset($v)) { + $value = $v; + } + } + if (isset($value)) { + if (isset($special[$key])) { + $value = call_user_func($special[$key], $value); + } + return array($key => $value); + } + } + return null; + case isset($mapping['implicit']): + case isset($mapping['explicit']): + case $decoded['type'] == $mapping['type']: + break; + default: + return null; + } + + if (isset($mapping['implicit'])) { + $decoded['type'] = $mapping['type']; + } + + switch ($decoded['type']) { + case FILE_ASN1_TYPE_SEQUENCE: + $map = array(); + + // ignore the min and max + if (isset($mapping['min']) && isset($mapping['max'])) { + $child = $mapping['children']; + foreach ($decoded['content'] as $content) { + if (($map[] = $this->asn1map($content, $child, $special)) === null) { + return null; + } + } + + return $map; + } + + $n = count($decoded['content']); + $i = 0; + + foreach ($mapping['children'] as $key => $child) { + $maymatch = $i < $n; // Match only existing input. + if ($maymatch) { + $temp = $decoded['content'][$i]; + + if ($child['type'] != FILE_ASN1_TYPE_CHOICE) { + // Get the mapping and input class & constant. + $childClass = $tempClass = FILE_ASN1_CLASS_UNIVERSAL; + $constant = null; + if (isset($temp['constant'])) { + $tempClass = isset($temp['class']) ? $temp['class'] : FILE_ASN1_CLASS_CONTEXT_SPECIFIC; + } + if (isset($child['class'])) { + $childClass = $child['class']; + $constant = $child['cast']; + } elseif (isset($child['constant'])) { + $childClass = FILE_ASN1_CLASS_CONTEXT_SPECIFIC; + $constant = $child['constant']; + } + + if (isset($constant) && isset($temp['constant'])) { + // Can only match if constants and class match. + $maymatch = $constant == $temp['constant'] && $childClass == $tempClass; + } else { + // Can only match if no constant expected and type matches or is generic. + $maymatch = !isset($child['constant']) && array_search($child['type'], array($temp['type'], FILE_ASN1_TYPE_ANY, FILE_ASN1_TYPE_CHOICE)) !== false; + } + } + } + + if ($maymatch) { + // Attempt submapping. + $candidate = $this->asn1map($temp, $child, $special); + $maymatch = $candidate !== null; + } + + if ($maymatch) { + // Got the match: use it. + if (isset($special[$key])) { + $candidate = call_user_func($special[$key], $candidate); + } + $map[$key] = $candidate; + $i++; + } elseif (isset($child['default'])) { + $map[$key] = $child['default']; // Use default. + } elseif (!isset($child['optional'])) { + return null; // Syntax error. + } + } + + // Fail mapping if all input items have not been consumed. + return $i < $n? null: $map; + + // the main diff between sets and sequences is the encapsulation of the foreach in another for loop + case FILE_ASN1_TYPE_SET: + $map = array(); + + // ignore the min and max + if (isset($mapping['min']) && isset($mapping['max'])) { + $child = $mapping['children']; + foreach ($decoded['content'] as $content) { + if (($map[] = $this->asn1map($content, $child, $special)) === null) { + return null; + } + } + + return $map; + } + + for ($i = 0; $i < count($decoded['content']); $i++) { + $temp = $decoded['content'][$i]; + $tempClass = FILE_ASN1_CLASS_UNIVERSAL; + if (isset($temp['constant'])) { + $tempClass = isset($temp['class']) ? $temp['class'] : FILE_ASN1_CLASS_CONTEXT_SPECIFIC; + } + + foreach ($mapping['children'] as $key => $child) { + if (isset($map[$key])) { + continue; + } + $maymatch = true; + if ($child['type'] != FILE_ASN1_TYPE_CHOICE) { + $childClass = FILE_ASN1_CLASS_UNIVERSAL; + $constant = null; + if (isset($child['class'])) { + $childClass = $child['class']; + $constant = $child['cast']; + } elseif (isset($child['constant'])) { + $childClass = FILE_ASN1_CLASS_CONTEXT_SPECIFIC; + $constant = $child['constant']; + } + + if (isset($constant) && isset($temp['constant'])) { + // Can only match if constants and class match. + $maymatch = $constant == $temp['constant'] && $childClass == $tempClass; + } else { + // Can only match if no constant expected and type matches or is generic. + $maymatch = !isset($child['constant']) && array_search($child['type'], array($temp['type'], FILE_ASN1_TYPE_ANY, FILE_ASN1_TYPE_CHOICE)) !== false; + } + } + + if ($maymatch) { + // Attempt submapping. + $candidate = $this->asn1map($temp, $child, $special); + $maymatch = $candidate !== null; + } + + if (!$maymatch) { + break; + } + + // Got the match: use it. + if (isset($special[$key])) { + $candidate = call_user_func($special[$key], $candidate); + } + $map[$key] = $candidate; + break; + } + } + + foreach ($mapping['children'] as $key => $child) { + if (!isset($map[$key])) { + if (isset($child['default'])) { + $map[$key] = $child['default']; + } elseif (!isset($child['optional'])) { + return null; + } + } + } + return $map; + case FILE_ASN1_TYPE_OBJECT_IDENTIFIER: + return isset($this->oids[$decoded['content']]) ? $this->oids[$decoded['content']] : $decoded['content']; + case FILE_ASN1_TYPE_UTC_TIME: + case FILE_ASN1_TYPE_GENERALIZED_TIME: + if (isset($mapping['implicit'])) { + $decoded['content'] = $this->_decodeTime($decoded['content'], $decoded['type']); + } + return @date($this->format, $decoded['content']); + case FILE_ASN1_TYPE_BIT_STRING: + if (isset($mapping['mapping'])) { + $offset = ord($decoded['content'][0]); + $size = (strlen($decoded['content']) - 1) * 8 - $offset; + /* + From X.680-0207.pdf#page=46 (21.7): + + "When a "NamedBitList" is used in defining a bitstring type ASN.1 encoding rules are free to add (or remove) + arbitrarily any trailing 0 bits to (or from) values that are being encoded or decoded. Application designers should + therefore ensure that different semantics are not associated with such values which differ only in the number of trailing + 0 bits." + */ + $bits = count($mapping['mapping']) == $size ? array() : array_fill(0, count($mapping['mapping']) - $size, false); + for ($i = strlen($decoded['content']) - 1; $i > 0; $i--) { + $current = ord($decoded['content'][$i]); + for ($j = $offset; $j < 8; $j++) { + $bits[] = (bool) ($current & (1 << $j)); + } + $offset = 0; + } + $values = array(); + $map = array_reverse($mapping['mapping']); + foreach ($map as $i => $value) { + if ($bits[$i]) { + $values[] = $value; + } + } + return $values; + } + case FILE_ASN1_TYPE_OCTET_STRING: + return base64_encode($decoded['content']); + case FILE_ASN1_TYPE_NULL: + return ''; + case FILE_ASN1_TYPE_BOOLEAN: + return $decoded['content']; + case FILE_ASN1_TYPE_NUMERIC_STRING: + case FILE_ASN1_TYPE_PRINTABLE_STRING: + case FILE_ASN1_TYPE_TELETEX_STRING: + case FILE_ASN1_TYPE_VIDEOTEX_STRING: + case FILE_ASN1_TYPE_IA5_STRING: + case FILE_ASN1_TYPE_GRAPHIC_STRING: + case FILE_ASN1_TYPE_VISIBLE_STRING: + case FILE_ASN1_TYPE_GENERAL_STRING: + case FILE_ASN1_TYPE_UNIVERSAL_STRING: + case FILE_ASN1_TYPE_UTF8_STRING: + case FILE_ASN1_TYPE_BMP_STRING: + return $decoded['content']; + case FILE_ASN1_TYPE_INTEGER: + case FILE_ASN1_TYPE_ENUMERATED: + $temp = $decoded['content']; + if (isset($mapping['implicit'])) { + $temp = new Math_BigInteger($decoded['content'], -256); + } + if (isset($mapping['mapping'])) { + $temp = (int) $temp->toString(); + return isset($mapping['mapping'][$temp]) ? + $mapping['mapping'][$temp] : + false; + } + return $temp; + } + } + + /** + * ASN.1 Encode + * + * DER-encodes an ASN.1 semantic mapping ($mapping). Some libraries would probably call this function + * an ASN.1 compiler. + * + * "Special" mappings can be applied via $special. + * + * @param String $source + * @param String $mapping + * @param Integer $idx + * @return String + * @access public + */ + function encodeDER($source, $mapping, $special = array()) + { + $this->location = array(); + return $this->_encode_der($source, $mapping, null, $special); + } + + /** + * ASN.1 Encode (Helper function) + * + * @param String $source + * @param Array $mapping + * @param Integer $idx + * @param Array $special + * @return String + * @access private + */ + /** + * ASN.1 Encode (Helper function) + * + * @param String $source + * @param String $mapping + * @param Integer $idx + * @return String + * @access private + */ + function _encode_der($source, $mapping, $idx = null, $special = array()) + { + if (is_object($source) && strtolower(get_class($source)) == 'file_asn1_element') { + return $source->element; + } + + // do not encode (implicitly optional) fields with value set to default + if (isset($mapping['default']) && $source === $mapping['default']) { + return ''; + } + + if (isset($idx)) { + if (isset($special[$idx])) { + $source = call_user_func($special[$idx], $source); + } + $this->location[] = $idx; + } + + $tag = $mapping['type']; + + switch ($tag) { + case FILE_ASN1_TYPE_SET: // Children order is not important, thus process in sequence. + case FILE_ASN1_TYPE_SEQUENCE: + $tag|= 0x20; // set the constructed bit + $value = ''; + + // ignore the min and max + if (isset($mapping['min']) && isset($mapping['max'])) { + $child = $mapping['children']; + + foreach ($source as $content) { + $temp = $this->_encode_der($content, $child, null, $special); + if ($temp === false) { + return false; + } + $value.= $temp; + } + break; + } + + foreach ($mapping['children'] as $key => $child) { + if (!isset($source[$key])) { + if (!isset($child['optional'])) { + return false; + } + continue; + } + + $temp = $this->_encode_der($source[$key], $child, $key, $special); + if ($temp === false) { + return false; + } + + // An empty child encoding means it has been optimized out. + // Else we should have at least one tag byte. + if ($temp === '') { + continue; + } + + // if isset($child['constant']) is true then isset($child['optional']) should be true as well + if (isset($child['constant'])) { + /* + From X.680-0207.pdf#page=58 (30.6): + + "The tagging construction specifies explicit tagging if any of the following holds: + ... + c) the "Tag Type" alternative is used and the value of "TagDefault" for the module is IMPLICIT TAGS or + AUTOMATIC TAGS, but the type defined by "Type" is an untagged choice type, an untagged open type, or + an untagged "DummyReference" (see ITU-T Rec. X.683 | ISO/IEC 8824-4, 8.3)." + */ + if (isset($child['explicit']) || $child['type'] == FILE_ASN1_TYPE_CHOICE) { + $subtag = chr((FILE_ASN1_CLASS_CONTEXT_SPECIFIC << 6) | 0x20 | $child['constant']); + $temp = $subtag . $this->_encodeLength(strlen($temp)) . $temp; + } else { + $subtag = chr((FILE_ASN1_CLASS_CONTEXT_SPECIFIC << 6) | (ord($temp[0]) & 0x20) | $child['constant']); + $temp = $subtag . substr($temp, 1); + } + } + $value.= $temp; + } + break; + case FILE_ASN1_TYPE_CHOICE: + $temp = false; + + foreach ($mapping['children'] as $key => $child) { + if (!isset($source[$key])) { + continue; + } + + $temp = $this->_encode_der($source[$key], $child, $key, $special); + if ($temp === false) { + return false; + } + + // An empty child encoding means it has been optimized out. + // Else we should have at least one tag byte. + if ($temp === '') { + continue; + } + + $tag = ord($temp[0]); + + // if isset($child['constant']) is true then isset($child['optional']) should be true as well + if (isset($child['constant'])) { + if (isset($child['explicit']) || $child['type'] == FILE_ASN1_TYPE_CHOICE) { + $subtag = chr((FILE_ASN1_CLASS_CONTEXT_SPECIFIC << 6) | 0x20 | $child['constant']); + $temp = $subtag . $this->_encodeLength(strlen($temp)) . $temp; + } else { + $subtag = chr((FILE_ASN1_CLASS_CONTEXT_SPECIFIC << 6) | (ord($temp[0]) & 0x20) | $child['constant']); + $temp = $subtag . substr($temp, 1); + } + } + } + + if (isset($idx)) { + array_pop($this->location); + } + + if ($temp && isset($mapping['cast'])) { + $temp[0] = chr(($mapping['class'] << 6) | ($tag & 0x20) | $mapping['cast']); + } + + return $temp; + case FILE_ASN1_TYPE_INTEGER: + case FILE_ASN1_TYPE_ENUMERATED: + if (!isset($mapping['mapping'])) { + $value = $source->toBytes(true); + } else { + $value = array_search($source, $mapping['mapping']); + if ($value === false) { + return false; + } + $value = new Math_BigInteger($value); + $value = $value->toBytes(true); + } + if (!strlen($value)) { + $value = chr(0); + } + break; + case FILE_ASN1_TYPE_UTC_TIME: + case FILE_ASN1_TYPE_GENERALIZED_TIME: + $format = $mapping['type'] == FILE_ASN1_TYPE_UTC_TIME ? 'y' : 'Y'; + $format.= 'mdHis'; + $value = @gmdate($format, strtotime($source)) . 'Z'; + break; + case FILE_ASN1_TYPE_BIT_STRING: + if (isset($mapping['mapping'])) { + $bits = array_fill(0, count($mapping['mapping']), 0); + $size = 0; + for ($i = 0; $i < count($mapping['mapping']); $i++) { + if (in_array($mapping['mapping'][$i], $source)) { + $bits[$i] = 1; + $size = $i; + } + } + + $offset = 8 - (($size + 1) & 7); + $offset = $offset !== 8 ? $offset : 0; + + $value = chr($offset); + + for ($i = $size + 1; $i < count($mapping['mapping']); $i++) { + unset($bits[$i]); + } + + $bits = implode('', array_pad($bits, $size + $offset + 1, 0)); + $bytes = explode(' ', rtrim(chunk_split($bits, 8, ' '))); + foreach ($bytes as $byte) { + $value.= chr(bindec($byte)); + } + + break; + } + case FILE_ASN1_TYPE_OCTET_STRING: + /* The initial octet shall encode, as an unsigned binary integer with bit 1 as the least significant bit, + the number of unused bits in the final subsequent octet. The number shall be in the range zero to seven. + + -- http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#page=16 */ + $value = base64_decode($source); + break; + case FILE_ASN1_TYPE_OBJECT_IDENTIFIER: + $oid = preg_match('#(?:\d+\.)+#', $source) ? $source : array_search($source, $this->oids); + if ($oid === false) { + user_error('Invalid OID'); + return false; + } + $value = ''; + $parts = explode('.', $oid); + $value = chr(40 * $parts[0] + $parts[1]); + for ($i = 2; $i < count($parts); $i++) { + $temp = ''; + if (!$parts[$i]) { + $temp = "\0"; + } else { + while ($parts[$i]) { + $temp = chr(0x80 | ($parts[$i] & 0x7F)) . $temp; + $parts[$i] >>= 7; + } + $temp[strlen($temp) - 1] = $temp[strlen($temp) - 1] & chr(0x7F); + } + $value.= $temp; + } + break; + case FILE_ASN1_TYPE_ANY: + $loc = $this->location; + if (isset($idx)) { + array_pop($this->location); + } + + switch (true) { + case !isset($source): + return $this->_encode_der(null, array('type' => FILE_ASN1_TYPE_NULL) + $mapping, null, $special); + case is_int($source): + case is_object($source) && strtolower(get_class($source)) == 'math_biginteger': + return $this->_encode_der($source, array('type' => FILE_ASN1_TYPE_INTEGER) + $mapping, null, $special); + case is_float($source): + return $this->_encode_der($source, array('type' => FILE_ASN1_TYPE_REAL) + $mapping, null, $special); + case is_bool($source): + return $this->_encode_der($source, array('type' => FILE_ASN1_TYPE_BOOLEAN) + $mapping, null, $special); + case is_array($source) && count($source) == 1: + $typename = implode('', array_keys($source)); + $outtype = array_search($typename, $this->ANYmap, true); + if ($outtype !== false) { + return $this->_encode_der($source[$typename], array('type' => $outtype) + $mapping, null, $special); + } + } + + $filters = $this->filters; + foreach ($loc as $part) { + if (!isset($filters[$part])) { + $filters = false; + break; + } + $filters = $filters[$part]; + } + if ($filters === false) { + user_error('No filters defined for ' . implode('/', $loc)); + return false; + } + return $this->_encode_der($source, $filters + $mapping, null, $special); + case FILE_ASN1_TYPE_NULL: + $value = ''; + break; + case FILE_ASN1_TYPE_NUMERIC_STRING: + case FILE_ASN1_TYPE_TELETEX_STRING: + case FILE_ASN1_TYPE_PRINTABLE_STRING: + case FILE_ASN1_TYPE_UNIVERSAL_STRING: + case FILE_ASN1_TYPE_UTF8_STRING: + case FILE_ASN1_TYPE_BMP_STRING: + case FILE_ASN1_TYPE_IA5_STRING: + case FILE_ASN1_TYPE_VISIBLE_STRING: + case FILE_ASN1_TYPE_VIDEOTEX_STRING: + case FILE_ASN1_TYPE_GRAPHIC_STRING: + case FILE_ASN1_TYPE_GENERAL_STRING: + $value = $source; + break; + case FILE_ASN1_TYPE_BOOLEAN: + $value = $source ? "\xFF" : "\x00"; + break; + default: + user_error('Mapping provides no type definition for ' . implode('/', $this->location)); + return false; + } + + if (isset($idx)) { + array_pop($this->location); + } + + if (isset($mapping['cast'])) { + $tag = ($mapping['class'] << 6) | ($tag & 0x20) | $mapping['cast']; + } + + return chr($tag) . $this->_encodeLength(strlen($value)) . $value; + } + + /** + * DER-encode the length + * + * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4. See + * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 paragraph 8.1.3} for more information. + * + * @access private + * @param Integer $length + * @return String + */ + function _encodeLength($length) + { + if ($length <= 0x7F) { + return chr($length); + } + + $temp = ltrim(pack('N', $length), chr(0)); + return pack('Ca*', 0x80 | strlen($temp), $temp); + } + + /** + * BER-decode the time + * + * Called by _decode_ber() and in the case of implicit tags asn1map(). + * + * @access private + * @param String $content + * @param Integer $tag + * @return String + */ + function _decodeTime($content, $tag) + { + /* UTCTime: + http://tools.ietf.org/html/rfc5280#section-4.1.2.5.1 + http://www.obj-sys.com/asn1tutorial/node15.html + + GeneralizedTime: + http://tools.ietf.org/html/rfc5280#section-4.1.2.5.2 + http://www.obj-sys.com/asn1tutorial/node14.html */ + + $pattern = $tag == FILE_ASN1_TYPE_UTC_TIME ? + '#(..)(..)(..)(..)(..)(..)(.*)#' : + '#(....)(..)(..)(..)(..)(..).*([Z+-].*)$#'; + + preg_match($pattern, $content, $matches); + + list(, $year, $month, $day, $hour, $minute, $second, $timezone) = $matches; + + if ($tag == FILE_ASN1_TYPE_UTC_TIME) { + $year = $year >= 50 ? "19$year" : "20$year"; + } + + if ($timezone == 'Z') { + $mktime = 'gmmktime'; + $timezone = 0; + } elseif (preg_match('#([+-])(\d\d)(\d\d)#', $timezone, $matches)) { + $mktime = 'gmmktime'; + $timezone = 60 * $matches[3] + 3600 * $matches[2]; + if ($matches[1] == '-') { + $timezone = -$timezone; + } + } else { + $mktime = 'mktime'; + $timezone = 0; + } + + return @$mktime($hour, $minute, $second, $month, $day, $year) + $timezone; + } + + /** + * Set the time format + * + * Sets the time / date format for asn1map(). + * + * @access public + * @param String $format + */ + function setTimeFormat($format) + { + $this->format = $format; + } + + /** + * Load OIDs + * + * Load the relevant OIDs for a particular ASN.1 semantic mapping. + * + * @access public + * @param Array $oids + */ + function loadOIDs($oids) + { + $this->oids = $oids; + } + + /** + * Load filters + * + * See File_X509, etc, for an example. + * + * @access public + * @param Array $filters + */ + function loadFilters($filters) + { + $this->filters = $filters; + } + + /** + * String Shift + * + * Inspired by array_shift + * + * @param String $string + * @param optional Integer $index + * @return String + * @access private + */ + function _string_shift(&$string, $index = 1) + { + $substr = substr($string, 0, $index); + $string = substr($string, $index); + return $substr; + } + + /** + * String type conversion + * + * This is a lazy conversion, dealing only with character size. + * No real conversion table is used. + * + * @param String $in + * @param optional Integer $from + * @param optional Integer $to + * @return String + * @access public + */ + function convert($in, $from = FILE_ASN1_TYPE_UTF8_STRING, $to = FILE_ASN1_TYPE_UTF8_STRING) + { + if (!isset($this->stringTypeSize[$from]) || !isset($this->stringTypeSize[$to])) { + return false; + } + $insize = $this->stringTypeSize[$from]; + $outsize = $this->stringTypeSize[$to]; + $inlength = strlen($in); + $out = ''; + + for ($i = 0; $i < $inlength;) { + if ($inlength - $i < $insize) { + return false; + } + + // Get an input character as a 32-bit value. + $c = ord($in[$i++]); + switch (true) { + case $insize == 4: + $c = ($c << 8) | ord($in[$i++]); + $c = ($c << 8) | ord($in[$i++]); + case $insize == 2: + $c = ($c << 8) | ord($in[$i++]); + case $insize == 1: + break; + case ($c & 0x80) == 0x00: + break; + case ($c & 0x40) == 0x00: + return false; + default: + $bit = 6; + do { + if ($bit > 25 || $i >= $inlength || (ord($in[$i]) & 0xC0) != 0x80) { + return false; + } + $c = ($c << 6) | (ord($in[$i++]) & 0x3F); + $bit += 5; + $mask = 1 << $bit; + } while ($c & $bit); + $c &= $mask - 1; + break; + } + + // Convert and append the character to output string. + $v = ''; + switch (true) { + case $outsize == 4: + $v .= chr($c & 0xFF); + $c >>= 8; + $v .= chr($c & 0xFF); + $c >>= 8; + case $outsize == 2: + $v .= chr($c & 0xFF); + $c >>= 8; + case $outsize == 1: + $v .= chr($c & 0xFF); + $c >>= 8; + if ($c) { + return false; + } + break; + case ($c & 0x80000000) != 0: + return false; + case $c >= 0x04000000: + $v .= chr(0x80 | ($c & 0x3F)); + $c = ($c >> 6) | 0x04000000; + case $c >= 0x00200000: + $v .= chr(0x80 | ($c & 0x3F)); + $c = ($c >> 6) | 0x00200000; + case $c >= 0x00010000: + $v .= chr(0x80 | ($c & 0x3F)); + $c = ($c >> 6) | 0x00010000; + case $c >= 0x00000800: + $v .= chr(0x80 | ($c & 0x3F)); + $c = ($c >> 6) | 0x00000800; + case $c >= 0x00000080: + $v .= chr(0x80 | ($c & 0x3F)); + $c = ($c >> 6) | 0x000000C0; + default: + $v .= chr($c); + break; + } + $out .= strrev($v); + } + return $out; + } +} diff --git a/lam/lib/3rdParty/phpseclib/File/X509.php b/lam/lib/3rdParty/phpseclib/File/X509.php new file mode 100644 index 00000000..9dc8b391 --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/File/X509.php @@ -0,0 +1,4433 @@ + + * @copyright MMXII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include File_ASN1 + */ +if (!class_exists('File_ASN1')) { + include_once 'ASN1.php'; +} + +/** + * Flag to only accept signatures signed by certificate authorities + * + * Not really used anymore but retained all the same to suppress E_NOTICEs from old installs + * + * @access public + */ +define('FILE_X509_VALIDATE_SIGNATURE_BY_CA', 1); + +/**#@+ + * @access public + * @see File_X509::getDN() + */ +/** + * Return internal array representation + */ +define('FILE_X509_DN_ARRAY', 0); +/** + * Return string + */ +define('FILE_X509_DN_STRING', 1); +/** + * Return ASN.1 name string + */ +define('FILE_X509_DN_ASN1', 2); +/** + * Return OpenSSL compatible array + */ +define('FILE_X509_DN_OPENSSL', 3); +/** + * Return canonical ASN.1 RDNs string + */ +define('FILE_X509_DN_CANON', 4); +/** + * Return name hash for file indexing + */ +define('FILE_X509_DN_HASH', 5); +/**#@-*/ + +/**#@+ + * @access public + * @see File_X509::saveX509() + * @see File_X509::saveCSR() + * @see File_X509::saveCRL() + */ +/** + * Save as PEM + * + * ie. a base64-encoded PEM with a header and a footer + */ +define('FILE_X509_FORMAT_PEM', 0); +/** + * Save as DER + */ +define('FILE_X509_FORMAT_DER', 1); +/** + * Save as a SPKAC + * + * Only works on CSRs. Not currently supported. + */ +define('FILE_X509_FORMAT_SPKAC', 2); +/**#@-*/ + +/** + * Attribute value disposition. + * If disposition is >= 0, this is the index of the target value. + */ +define('FILE_X509_ATTR_ALL', -1); // All attribute values (array). +define('FILE_X509_ATTR_APPEND', -2); // Add a value. +define('FILE_X509_ATTR_REPLACE', -3); // Clear first, then add a value. + +/** + * Pure-PHP X.509 Parser + * + * @package File_X509 + * @author Jim Wigginton + * @version 0.3.1 + * @access public + */ +class File_X509 +{ + /** + * ASN.1 syntax for X.509 certificates + * + * @var Array + * @access private + */ + var $Certificate; + + /**#@+ + * ASN.1 syntax for various extensions + * + * @access private + */ + var $DirectoryString; + var $PKCS9String; + var $AttributeValue; + var $Extensions; + var $KeyUsage; + var $ExtKeyUsageSyntax; + var $BasicConstraints; + var $KeyIdentifier; + var $CRLDistributionPoints; + var $AuthorityKeyIdentifier; + var $CertificatePolicies; + var $AuthorityInfoAccessSyntax; + var $SubjectAltName; + var $PrivateKeyUsagePeriod; + var $IssuerAltName; + var $PolicyMappings; + var $NameConstraints; + + var $CPSuri; + var $UserNotice; + + var $netscape_cert_type; + var $netscape_comment; + var $netscape_ca_policy_url; + + var $Name; + var $RelativeDistinguishedName; + var $CRLNumber; + var $CRLReason; + var $IssuingDistributionPoint; + var $InvalidityDate; + var $CertificateIssuer; + var $HoldInstructionCode; + var $SignedPublicKeyAndChallenge; + /**#@-*/ + + /** + * ASN.1 syntax for Certificate Signing Requests (RFC2986) + * + * @var Array + * @access private + */ + var $CertificationRequest; + + /** + * ASN.1 syntax for Certificate Revocation Lists (RFC5280) + * + * @var Array + * @access private + */ + var $CertificateList; + + /** + * Distinguished Name + * + * @var Array + * @access private + */ + var $dn; + + /** + * Public key + * + * @var String + * @access private + */ + var $publicKey; + + /** + * Private key + * + * @var String + * @access private + */ + var $privateKey; + + /** + * Object identifiers for X.509 certificates + * + * @var Array + * @access private + * @link http://en.wikipedia.org/wiki/Object_identifier + */ + var $oids; + + /** + * The certificate authorities + * + * @var Array + * @access private + */ + var $CAs; + + /** + * The currently loaded certificate + * + * @var Array + * @access private + */ + var $currentCert; + + /** + * The signature subject + * + * There's no guarantee File_X509 is going to reencode an X.509 cert in the same way it was originally + * encoded so we take save the portion of the original cert that the signature would have made for. + * + * @var String + * @access private + */ + var $signatureSubject; + + /** + * Certificate Start Date + * + * @var String + * @access private + */ + var $startDate; + + /** + * Certificate End Date + * + * @var String + * @access private + */ + var $endDate; + + /** + * Serial Number + * + * @var String + * @access private + */ + var $serialNumber; + + /** + * Key Identifier + * + * See {@link http://tools.ietf.org/html/rfc5280#section-4.2.1.1 RFC5280#section-4.2.1.1} and + * {@link http://tools.ietf.org/html/rfc5280#section-4.2.1.2 RFC5280#section-4.2.1.2}. + * + * @var String + * @access private + */ + var $currentKeyIdentifier; + + /** + * CA Flag + * + * @var Boolean + * @access private + */ + var $caFlag = false; + + /** + * Default Constructor. + * + * @return File_X509 + * @access public + */ + function File_X509() + { + if (!class_exists('Math_BigInteger')) { + include_once 'Math/BigInteger.php'; + } + + // Explicitly Tagged Module, 1988 Syntax + // http://tools.ietf.org/html/rfc5280#appendix-A.1 + + $this->DirectoryString = array( + 'type' => FILE_ASN1_TYPE_CHOICE, + 'children' => array( + 'teletexString' => array('type' => FILE_ASN1_TYPE_TELETEX_STRING), + 'printableString' => array('type' => FILE_ASN1_TYPE_PRINTABLE_STRING), + 'universalString' => array('type' => FILE_ASN1_TYPE_UNIVERSAL_STRING), + 'utf8String' => array('type' => FILE_ASN1_TYPE_UTF8_STRING), + 'bmpString' => array('type' => FILE_ASN1_TYPE_BMP_STRING) + ) + ); + + $this->PKCS9String = array( + 'type' => FILE_ASN1_TYPE_CHOICE, + 'children' => array( + 'ia5String' => array('type' => FILE_ASN1_TYPE_IA5_STRING), + 'directoryString' => $this->DirectoryString + ) + ); + + $this->AttributeValue = array('type' => FILE_ASN1_TYPE_ANY); + + $AttributeType = array('type' => FILE_ASN1_TYPE_OBJECT_IDENTIFIER); + + $AttributeTypeAndValue = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'type' => $AttributeType, + 'value'=> $this->AttributeValue + ) + ); + + /* + In practice, RDNs containing multiple name-value pairs (called "multivalued RDNs") are rare, + but they can be useful at times when either there is no unique attribute in the entry or you + want to ensure that the entry's DN contains some useful identifying information. + + - https://www.opends.org/wiki/page/DefinitionRelativeDistinguishedName + */ + $this->RelativeDistinguishedName = array( + 'type' => FILE_ASN1_TYPE_SET, + 'min' => 1, + 'max' => -1, + 'children' => $AttributeTypeAndValue + ); + + // http://tools.ietf.org/html/rfc5280#section-4.1.2.4 + $RDNSequence = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + // RDNSequence does not define a min or a max, which means it doesn't have one + 'min' => 0, + 'max' => -1, + 'children' => $this->RelativeDistinguishedName + ); + + $this->Name = array( + 'type' => FILE_ASN1_TYPE_CHOICE, + 'children' => array( + 'rdnSequence' => $RDNSequence + ) + ); + + // http://tools.ietf.org/html/rfc5280#section-4.1.1.2 + $AlgorithmIdentifier = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'algorithm' => array('type' => FILE_ASN1_TYPE_OBJECT_IDENTIFIER), + 'parameters' => array( + 'type' => FILE_ASN1_TYPE_ANY, + 'optional' => true + ) + ) + ); + + /* + A certificate using system MUST reject the certificate if it encounters + a critical extension it does not recognize; however, a non-critical + extension may be ignored if it is not recognized. + + http://tools.ietf.org/html/rfc5280#section-4.2 + */ + $Extension = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'extnId' => array('type' => FILE_ASN1_TYPE_OBJECT_IDENTIFIER), + 'critical' => array( + 'type' => FILE_ASN1_TYPE_BOOLEAN, + 'optional' => true, + 'default' => false + ), + 'extnValue' => array('type' => FILE_ASN1_TYPE_OCTET_STRING) + ) + ); + + $this->Extensions = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + // technically, it's MAX, but we'll assume anything < 0 is MAX + 'max' => -1, + // if 'children' isn't an array then 'min' and 'max' must be defined + 'children' => $Extension + ); + + $SubjectPublicKeyInfo = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'algorithm' => $AlgorithmIdentifier, + 'subjectPublicKey' => array('type' => FILE_ASN1_TYPE_BIT_STRING) + ) + ); + + $UniqueIdentifier = array('type' => FILE_ASN1_TYPE_BIT_STRING); + + $Time = array( + 'type' => FILE_ASN1_TYPE_CHOICE, + 'children' => array( + 'utcTime' => array('type' => FILE_ASN1_TYPE_UTC_TIME), + 'generalTime' => array('type' => FILE_ASN1_TYPE_GENERALIZED_TIME) + ) + ); + + // http://tools.ietf.org/html/rfc5280#section-4.1.2.5 + $Validity = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'notBefore' => $Time, + 'notAfter' => $Time + ) + ); + + $CertificateSerialNumber = array('type' => FILE_ASN1_TYPE_INTEGER); + + $Version = array( + 'type' => FILE_ASN1_TYPE_INTEGER, + 'mapping' => array('v1', 'v2', 'v3') + ); + + // assert($TBSCertificate['children']['signature'] == $Certificate['children']['signatureAlgorithm']) + $TBSCertificate = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + // technically, default implies optional, but we'll define it as being optional, none-the-less, just to + // reenforce that fact + 'version' => array( + 'constant' => 0, + 'optional' => true, + 'explicit' => true, + 'default' => 'v1' + ) + $Version, + 'serialNumber' => $CertificateSerialNumber, + 'signature' => $AlgorithmIdentifier, + 'issuer' => $this->Name, + 'validity' => $Validity, + 'subject' => $this->Name, + 'subjectPublicKeyInfo' => $SubjectPublicKeyInfo, + // implicit means that the T in the TLV structure is to be rewritten, regardless of the type + 'issuerUniqueID' => array( + 'constant' => 1, + 'optional' => true, + 'implicit' => true + ) + $UniqueIdentifier, + 'subjectUniqueID' => array( + 'constant' => 2, + 'optional' => true, + 'implicit' => true + ) + $UniqueIdentifier, + // doesn't use the EXPLICIT keyword but if + // it's not IMPLICIT, it's EXPLICIT + 'extensions' => array( + 'constant' => 3, + 'optional' => true, + 'explicit' => true + ) + $this->Extensions + ) + ); + + $this->Certificate = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'tbsCertificate' => $TBSCertificate, + 'signatureAlgorithm' => $AlgorithmIdentifier, + 'signature' => array('type' => FILE_ASN1_TYPE_BIT_STRING) + ) + ); + + $this->KeyUsage = array( + 'type' => FILE_ASN1_TYPE_BIT_STRING, + 'mapping' => array( + 'digitalSignature', + 'nonRepudiation', + 'keyEncipherment', + 'dataEncipherment', + 'keyAgreement', + 'keyCertSign', + 'cRLSign', + 'encipherOnly', + 'decipherOnly' + ) + ); + + $this->BasicConstraints = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'cA' => array( + 'type' => FILE_ASN1_TYPE_BOOLEAN, + 'optional' => true, + 'default' => false + ), + 'pathLenConstraint' => array( + 'type' => FILE_ASN1_TYPE_INTEGER, + 'optional' => true + ) + ) + ); + + $this->KeyIdentifier = array('type' => FILE_ASN1_TYPE_OCTET_STRING); + + $OrganizationalUnitNames = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + 'max' => 4, // ub-organizational-units + 'children' => array('type' => FILE_ASN1_TYPE_PRINTABLE_STRING) + ); + + $PersonalName = array( + 'type' => FILE_ASN1_TYPE_SET, + 'children' => array( + 'surname' => array( + 'type' => FILE_ASN1_TYPE_PRINTABLE_STRING, + 'constant' => 0, + 'optional' => true, + 'implicit' => true + ), + 'given-name' => array( + 'type' => FILE_ASN1_TYPE_PRINTABLE_STRING, + 'constant' => 1, + 'optional' => true, + 'implicit' => true + ), + 'initials' => array( + 'type' => FILE_ASN1_TYPE_PRINTABLE_STRING, + 'constant' => 2, + 'optional' => true, + 'implicit' => true + ), + 'generation-qualifier' => array( + 'type' => FILE_ASN1_TYPE_PRINTABLE_STRING, + 'constant' => 3, + 'optional' => true, + 'implicit' => true + ) + ) + ); + + $NumericUserIdentifier = array('type' => FILE_ASN1_TYPE_NUMERIC_STRING); + + $OrganizationName = array('type' => FILE_ASN1_TYPE_PRINTABLE_STRING); + + $PrivateDomainName = array( + 'type' => FILE_ASN1_TYPE_CHOICE, + 'children' => array( + 'numeric' => array('type' => FILE_ASN1_TYPE_NUMERIC_STRING), + 'printable' => array('type' => FILE_ASN1_TYPE_PRINTABLE_STRING) + ) + ); + + $TerminalIdentifier = array('type' => FILE_ASN1_TYPE_PRINTABLE_STRING); + + $NetworkAddress = array('type' => FILE_ASN1_TYPE_NUMERIC_STRING); + + $AdministrationDomainName = array( + 'type' => FILE_ASN1_TYPE_CHOICE, + // if class isn't present it's assumed to be FILE_ASN1_CLASS_UNIVERSAL or + // (if constant is present) FILE_ASN1_CLASS_CONTEXT_SPECIFIC + 'class' => FILE_ASN1_CLASS_APPLICATION, + 'cast' => 2, + 'children' => array( + 'numeric' => array('type' => FILE_ASN1_TYPE_NUMERIC_STRING), + 'printable' => array('type' => FILE_ASN1_TYPE_PRINTABLE_STRING) + ) + ); + + $CountryName = array( + 'type' => FILE_ASN1_TYPE_CHOICE, + // if class isn't present it's assumed to be FILE_ASN1_CLASS_UNIVERSAL or + // (if constant is present) FILE_ASN1_CLASS_CONTEXT_SPECIFIC + 'class' => FILE_ASN1_CLASS_APPLICATION, + 'cast' => 1, + 'children' => array( + 'x121-dcc-code' => array('type' => FILE_ASN1_TYPE_NUMERIC_STRING), + 'iso-3166-alpha2-code' => array('type' => FILE_ASN1_TYPE_PRINTABLE_STRING) + ) + ); + + $AnotherName = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'type-id' => array('type' => FILE_ASN1_TYPE_OBJECT_IDENTIFIER), + 'value' => array( + 'type' => FILE_ASN1_TYPE_ANY, + 'constant' => 0, + 'optional' => true, + 'explicit' => true + ) + ) + ); + + $ExtensionAttribute = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'extension-attribute-type' => array( + 'type' => FILE_ASN1_TYPE_PRINTABLE_STRING, + 'constant' => 0, + 'optional' => true, + 'implicit' => true + ), + 'extension-attribute-value' => array( + 'type' => FILE_ASN1_TYPE_ANY, + 'constant' => 1, + 'optional' => true, + 'explicit' => true + ) + ) + ); + + $ExtensionAttributes = array( + 'type' => FILE_ASN1_TYPE_SET, + 'min' => 1, + 'max' => 256, // ub-extension-attributes + 'children' => $ExtensionAttribute + ); + + $BuiltInDomainDefinedAttribute = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'type' => array('type' => FILE_ASN1_TYPE_PRINTABLE_STRING), + 'value' => array('type' => FILE_ASN1_TYPE_PRINTABLE_STRING) + ) + ); + + $BuiltInDomainDefinedAttributes = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + 'max' => 4, // ub-domain-defined-attributes + 'children' => $BuiltInDomainDefinedAttribute + ); + + $BuiltInStandardAttributes = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'country-name' => array('optional' => true) + $CountryName, + 'administration-domain-name' => array('optional' => true) + $AdministrationDomainName, + 'network-address' => array( + 'constant' => 0, + 'optional' => true, + 'implicit' => true + ) + $NetworkAddress, + 'terminal-identifier' => array( + 'constant' => 1, + 'optional' => true, + 'implicit' => true + ) + $TerminalIdentifier, + 'private-domain-name' => array( + 'constant' => 2, + 'optional' => true, + 'explicit' => true + ) + $PrivateDomainName, + 'organization-name' => array( + 'constant' => 3, + 'optional' => true, + 'implicit' => true + ) + $OrganizationName, + 'numeric-user-identifier' => array( + 'constant' => 4, + 'optional' => true, + 'implicit' => true + ) + $NumericUserIdentifier, + 'personal-name' => array( + 'constant' => 5, + 'optional' => true, + 'implicit' => true + ) + $PersonalName, + 'organizational-unit-names' => array( + 'constant' => 6, + 'optional' => true, + 'implicit' => true + ) + $OrganizationalUnitNames + ) + ); + + $ORAddress = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'built-in-standard-attributes' => $BuiltInStandardAttributes, + 'built-in-domain-defined-attributes' => array('optional' => true) + $BuiltInDomainDefinedAttributes, + 'extension-attributes' => array('optional' => true) + $ExtensionAttributes + ) + ); + + $EDIPartyName = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'nameAssigner' => array( + 'constant' => 0, + 'optional' => true, + 'implicit' => true + ) + $this->DirectoryString, + // partyName is technically required but File_ASN1 doesn't currently support non-optional constants and + // setting it to optional gets the job done in any event. + 'partyName' => array( + 'constant' => 1, + 'optional' => true, + 'implicit' => true + ) + $this->DirectoryString + ) + ); + + $GeneralName = array( + 'type' => FILE_ASN1_TYPE_CHOICE, + 'children' => array( + 'otherName' => array( + 'constant' => 0, + 'optional' => true, + 'implicit' => true + ) + $AnotherName, + 'rfc822Name' => array( + 'type' => FILE_ASN1_TYPE_IA5_STRING, + 'constant' => 1, + 'optional' => true, + 'implicit' => true + ), + 'dNSName' => array( + 'type' => FILE_ASN1_TYPE_IA5_STRING, + 'constant' => 2, + 'optional' => true, + 'implicit' => true + ), + 'x400Address' => array( + 'constant' => 3, + 'optional' => true, + 'implicit' => true + ) + $ORAddress, + 'directoryName' => array( + 'constant' => 4, + 'optional' => true, + 'explicit' => true + ) + $this->Name, + 'ediPartyName' => array( + 'constant' => 5, + 'optional' => true, + 'implicit' => true + ) + $EDIPartyName, + 'uniformResourceIdentifier' => array( + 'type' => FILE_ASN1_TYPE_IA5_STRING, + 'constant' => 6, + 'optional' => true, + 'implicit' => true + ), + 'iPAddress' => array( + 'type' => FILE_ASN1_TYPE_OCTET_STRING, + 'constant' => 7, + 'optional' => true, + 'implicit' => true + ), + 'registeredID' => array( + 'type' => FILE_ASN1_TYPE_OBJECT_IDENTIFIER, + 'constant' => 8, + 'optional' => true, + 'implicit' => true + ) + ) + ); + + $GeneralNames = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + 'max' => -1, + 'children' => $GeneralName + ); + + $this->IssuerAltName = $GeneralNames; + + $ReasonFlags = array( + 'type' => FILE_ASN1_TYPE_BIT_STRING, + 'mapping' => array( + 'unused', + 'keyCompromise', + 'cACompromise', + 'affiliationChanged', + 'superseded', + 'cessationOfOperation', + 'certificateHold', + 'privilegeWithdrawn', + 'aACompromise' + ) + ); + + $DistributionPointName = array( + 'type' => FILE_ASN1_TYPE_CHOICE, + 'children' => array( + 'fullName' => array( + 'constant' => 0, + 'optional' => true, + 'implicit' => true + ) + $GeneralNames, + 'nameRelativeToCRLIssuer' => array( + 'constant' => 1, + 'optional' => true, + 'implicit' => true + ) + $this->RelativeDistinguishedName + ) + ); + + $DistributionPoint = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'distributionPoint' => array( + 'constant' => 0, + 'optional' => true, + 'explicit' => true + ) + $DistributionPointName, + 'reasons' => array( + 'constant' => 1, + 'optional' => true, + 'implicit' => true + ) + $ReasonFlags, + 'cRLIssuer' => array( + 'constant' => 2, + 'optional' => true, + 'implicit' => true + ) + $GeneralNames + ) + ); + + $this->CRLDistributionPoints = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + 'max' => -1, + 'children' => $DistributionPoint + ); + + $this->AuthorityKeyIdentifier = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'keyIdentifier' => array( + 'constant' => 0, + 'optional' => true, + 'implicit' => true + ) + $this->KeyIdentifier, + 'authorityCertIssuer' => array( + 'constant' => 1, + 'optional' => true, + 'implicit' => true + ) + $GeneralNames, + 'authorityCertSerialNumber' => array( + 'constant' => 2, + 'optional' => true, + 'implicit' => true + ) + $CertificateSerialNumber + ) + ); + + $PolicyQualifierId = array('type' => FILE_ASN1_TYPE_OBJECT_IDENTIFIER); + + $PolicyQualifierInfo = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'policyQualifierId' => $PolicyQualifierId, + 'qualifier' => array('type' => FILE_ASN1_TYPE_ANY) + ) + ); + + $CertPolicyId = array('type' => FILE_ASN1_TYPE_OBJECT_IDENTIFIER); + + $PolicyInformation = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'policyIdentifier' => $CertPolicyId, + 'policyQualifiers' => array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 0, + 'max' => -1, + 'optional' => true, + 'children' => $PolicyQualifierInfo + ) + ) + ); + + $this->CertificatePolicies = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + 'max' => -1, + 'children' => $PolicyInformation + ); + + $this->PolicyMappings = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + 'max' => -1, + 'children' => array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'issuerDomainPolicy' => $CertPolicyId, + 'subjectDomainPolicy' => $CertPolicyId + ) + ) + ); + + $KeyPurposeId = array('type' => FILE_ASN1_TYPE_OBJECT_IDENTIFIER); + + $this->ExtKeyUsageSyntax = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + 'max' => -1, + 'children' => $KeyPurposeId + ); + + $AccessDescription = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'accessMethod' => array('type' => FILE_ASN1_TYPE_OBJECT_IDENTIFIER), + 'accessLocation' => $GeneralName + ) + ); + + $this->AuthorityInfoAccessSyntax = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + 'max' => -1, + 'children' => $AccessDescription + ); + + $this->SubjectAltName = $GeneralNames; + + $this->PrivateKeyUsagePeriod = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'notBefore' => array( + 'constant' => 0, + 'optional' => true, + 'implicit' => true, + 'type' => FILE_ASN1_TYPE_GENERALIZED_TIME), + 'notAfter' => array( + 'constant' => 1, + 'optional' => true, + 'implicit' => true, + 'type' => FILE_ASN1_TYPE_GENERALIZED_TIME) + ) + ); + + $BaseDistance = array('type' => FILE_ASN1_TYPE_INTEGER); + + $GeneralSubtree = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'base' => $GeneralName, + 'minimum' => array( + 'constant' => 0, + 'optional' => true, + 'implicit' => true, + 'default' => new Math_BigInteger(0) + ) + $BaseDistance, + 'maximum' => array( + 'constant' => 1, + 'optional' => true, + 'implicit' => true, + ) + $BaseDistance + ) + ); + + $GeneralSubtrees = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + 'max' => -1, + 'children' => $GeneralSubtree + ); + + $this->NameConstraints = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'permittedSubtrees' => array( + 'constant' => 0, + 'optional' => true, + 'implicit' => true + ) + $GeneralSubtrees, + 'excludedSubtrees' => array( + 'constant' => 1, + 'optional' => true, + 'implicit' => true + ) + $GeneralSubtrees + ) + ); + + $this->CPSuri = array('type' => FILE_ASN1_TYPE_IA5_STRING); + + $DisplayText = array( + 'type' => FILE_ASN1_TYPE_CHOICE, + 'children' => array( + 'ia5String' => array('type' => FILE_ASN1_TYPE_IA5_STRING), + 'visibleString' => array('type' => FILE_ASN1_TYPE_VISIBLE_STRING), + 'bmpString' => array('type' => FILE_ASN1_TYPE_BMP_STRING), + 'utf8String' => array('type' => FILE_ASN1_TYPE_UTF8_STRING) + ) + ); + + $NoticeReference = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'organization' => $DisplayText, + 'noticeNumbers' => array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'min' => 1, + 'max' => 200, + 'children' => array('type' => FILE_ASN1_TYPE_INTEGER) + ) + ) + ); + + $this->UserNotice = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'noticeRef' => array( + 'optional' => true, + 'implicit' => true + ) + $NoticeReference, + 'explicitText' => array( + 'optional' => true, + 'implicit' => true + ) + $DisplayText + ) + ); + + // mapping is from + $this->netscape_cert_type = array( + 'type' => FILE_ASN1_TYPE_BIT_STRING, + 'mapping' => array( + 'SSLClient', + 'SSLServer', + 'Email', + 'ObjectSigning', + 'Reserved', + 'SSLCA', + 'EmailCA', + 'ObjectSigningCA' + ) + ); + + $this->netscape_comment = array('type' => FILE_ASN1_TYPE_IA5_STRING); + $this->netscape_ca_policy_url = array('type' => FILE_ASN1_TYPE_IA5_STRING); + + // attribute is used in RFC2986 but we're using the RFC5280 definition + + $Attribute = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'type' => $AttributeType, + 'value'=> array( + 'type' => FILE_ASN1_TYPE_SET, + 'min' => 1, + 'max' => -1, + 'children' => $this->AttributeValue + ) + ) + ); + + // adapted from + + $Attributes = array( + 'type' => FILE_ASN1_TYPE_SET, + 'min' => 1, + 'max' => -1, + 'children' => $Attribute + ); + + $CertificationRequestInfo = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'version' => array( + 'type' => FILE_ASN1_TYPE_INTEGER, + 'mapping' => array('v1') + ), + 'subject' => $this->Name, + 'subjectPKInfo' => $SubjectPublicKeyInfo, + 'attributes' => array( + 'constant' => 0, + 'optional' => true, + 'implicit' => true + ) + $Attributes, + ) + ); + + $this->CertificationRequest = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'certificationRequestInfo' => $CertificationRequestInfo, + 'signatureAlgorithm' => $AlgorithmIdentifier, + 'signature' => array('type' => FILE_ASN1_TYPE_BIT_STRING) + ) + ); + + $RevokedCertificate = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'userCertificate' => $CertificateSerialNumber, + 'revocationDate' => $Time, + 'crlEntryExtensions' => array( + 'optional' => true + ) + $this->Extensions + ) + ); + + $TBSCertList = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'version' => array( + 'optional' => true, + 'default' => 'v1' + ) + $Version, + 'signature' => $AlgorithmIdentifier, + 'issuer' => $this->Name, + 'thisUpdate' => $Time, + 'nextUpdate' => array( + 'optional' => true + ) + $Time, + 'revokedCertificates' => array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'optional' => true, + 'min' => 0, + 'max' => -1, + 'children' => $RevokedCertificate + ), + 'crlExtensions' => array( + 'constant' => 0, + 'optional' => true, + 'explicit' => true + ) + $this->Extensions + ) + ); + + $this->CertificateList = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'tbsCertList' => $TBSCertList, + 'signatureAlgorithm' => $AlgorithmIdentifier, + 'signature' => array('type' => FILE_ASN1_TYPE_BIT_STRING) + ) + ); + + $this->CRLNumber = array('type' => FILE_ASN1_TYPE_INTEGER); + + $this->CRLReason = array('type' => FILE_ASN1_TYPE_ENUMERATED, + 'mapping' => array( + 'unspecified', + 'keyCompromise', + 'cACompromise', + 'affiliationChanged', + 'superseded', + 'cessationOfOperation', + 'certificateHold', + // Value 7 is not used. + 8 => 'removeFromCRL', + 'privilegeWithdrawn', + 'aACompromise' + ) + ); + + $this->IssuingDistributionPoint = array('type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'distributionPoint' => array( + 'constant' => 0, + 'optional' => true, + 'explicit' => true + ) + $DistributionPointName, + 'onlyContainsUserCerts' => array( + 'type' => FILE_ASN1_TYPE_BOOLEAN, + 'constant' => 1, + 'optional' => true, + 'default' => false, + 'implicit' => true + ), + 'onlyContainsCACerts' => array( + 'type' => FILE_ASN1_TYPE_BOOLEAN, + 'constant' => 2, + 'optional' => true, + 'default' => false, + 'implicit' => true + ), + 'onlySomeReasons' => array( + 'constant' => 3, + 'optional' => true, + 'implicit' => true + ) + $ReasonFlags, + 'indirectCRL' => array( + 'type' => FILE_ASN1_TYPE_BOOLEAN, + 'constant' => 4, + 'optional' => true, + 'default' => false, + 'implicit' => true + ), + 'onlyContainsAttributeCerts' => array( + 'type' => FILE_ASN1_TYPE_BOOLEAN, + 'constant' => 5, + 'optional' => true, + 'default' => false, + 'implicit' => true + ) + ) + ); + + $this->InvalidityDate = array('type' => FILE_ASN1_TYPE_GENERALIZED_TIME); + + $this->CertificateIssuer = $GeneralNames; + + $this->HoldInstructionCode = array('type' => FILE_ASN1_TYPE_OBJECT_IDENTIFIER); + + $PublicKeyAndChallenge = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'spki' => $SubjectPublicKeyInfo, + 'challenge' => array('type' => FILE_ASN1_TYPE_IA5_STRING) + ) + ); + + $this->SignedPublicKeyAndChallenge = array( + 'type' => FILE_ASN1_TYPE_SEQUENCE, + 'children' => array( + 'publicKeyAndChallenge' => $PublicKeyAndChallenge, + 'signatureAlgorithm' => $AlgorithmIdentifier, + 'signature' => array('type' => FILE_ASN1_TYPE_BIT_STRING) + ) + ); + + // OIDs from RFC5280 and those RFCs mentioned in RFC5280#section-4.1.1.2 + $this->oids = array( + '1.3.6.1.5.5.7' => 'id-pkix', + '1.3.6.1.5.5.7.1' => 'id-pe', + '1.3.6.1.5.5.7.2' => 'id-qt', + '1.3.6.1.5.5.7.3' => 'id-kp', + '1.3.6.1.5.5.7.48' => 'id-ad', + '1.3.6.1.5.5.7.2.1' => 'id-qt-cps', + '1.3.6.1.5.5.7.2.2' => 'id-qt-unotice', + '1.3.6.1.5.5.7.48.1' =>'id-ad-ocsp', + '1.3.6.1.5.5.7.48.2' => 'id-ad-caIssuers', + '1.3.6.1.5.5.7.48.3' => 'id-ad-timeStamping', + '1.3.6.1.5.5.7.48.5' => 'id-ad-caRepository', + '2.5.4' => 'id-at', + '2.5.4.41' => 'id-at-name', + '2.5.4.4' => 'id-at-surname', + '2.5.4.42' => 'id-at-givenName', + '2.5.4.43' => 'id-at-initials', + '2.5.4.44' => 'id-at-generationQualifier', + '2.5.4.3' => 'id-at-commonName', + '2.5.4.7' => 'id-at-localityName', + '2.5.4.8' => 'id-at-stateOrProvinceName', + '2.5.4.10' => 'id-at-organizationName', + '2.5.4.11' => 'id-at-organizationalUnitName', + '2.5.4.12' => 'id-at-title', + '2.5.4.13' => 'id-at-description', + '2.5.4.46' => 'id-at-dnQualifier', + '2.5.4.6' => 'id-at-countryName', + '2.5.4.5' => 'id-at-serialNumber', + '2.5.4.65' => 'id-at-pseudonym', + '2.5.4.17' => 'id-at-postalCode', + '2.5.4.9' => 'id-at-streetAddress', + '2.5.4.45' => 'id-at-uniqueIdentifier', + '2.5.4.72' => 'id-at-role', + + '0.9.2342.19200300.100.1.25' => 'id-domainComponent', + '1.2.840.113549.1.9' => 'pkcs-9', + '1.2.840.113549.1.9.1' => 'pkcs-9-at-emailAddress', + '2.5.29' => 'id-ce', + '2.5.29.35' => 'id-ce-authorityKeyIdentifier', + '2.5.29.14' => 'id-ce-subjectKeyIdentifier', + '2.5.29.15' => 'id-ce-keyUsage', + '2.5.29.16' => 'id-ce-privateKeyUsagePeriod', + '2.5.29.32' => 'id-ce-certificatePolicies', + '2.5.29.32.0' => 'anyPolicy', + + '2.5.29.33' => 'id-ce-policyMappings', + '2.5.29.17' => 'id-ce-subjectAltName', + '2.5.29.18' => 'id-ce-issuerAltName', + '2.5.29.9' => 'id-ce-subjectDirectoryAttributes', + '2.5.29.19' => 'id-ce-basicConstraints', + '2.5.29.30' => 'id-ce-nameConstraints', + '2.5.29.36' => 'id-ce-policyConstraints', + '2.5.29.31' => 'id-ce-cRLDistributionPoints', + '2.5.29.37' => 'id-ce-extKeyUsage', + '2.5.29.37.0' => 'anyExtendedKeyUsage', + '1.3.6.1.5.5.7.3.1' => 'id-kp-serverAuth', + '1.3.6.1.5.5.7.3.2' => 'id-kp-clientAuth', + '1.3.6.1.5.5.7.3.3' => 'id-kp-codeSigning', + '1.3.6.1.5.5.7.3.4' => 'id-kp-emailProtection', + '1.3.6.1.5.5.7.3.8' => 'id-kp-timeStamping', + '1.3.6.1.5.5.7.3.9' => 'id-kp-OCSPSigning', + '2.5.29.54' => 'id-ce-inhibitAnyPolicy', + '2.5.29.46' => 'id-ce-freshestCRL', + '1.3.6.1.5.5.7.1.1' => 'id-pe-authorityInfoAccess', + '1.3.6.1.5.5.7.1.11' => 'id-pe-subjectInfoAccess', + '2.5.29.20' => 'id-ce-cRLNumber', + '2.5.29.28' => 'id-ce-issuingDistributionPoint', + '2.5.29.27' => 'id-ce-deltaCRLIndicator', + '2.5.29.21' => 'id-ce-cRLReasons', + '2.5.29.29' => 'id-ce-certificateIssuer', + '2.5.29.23' => 'id-ce-holdInstructionCode', + '1.2.840.10040.2' => 'holdInstruction', + '1.2.840.10040.2.1' => 'id-holdinstruction-none', + '1.2.840.10040.2.2' => 'id-holdinstruction-callissuer', + '1.2.840.10040.2.3' => 'id-holdinstruction-reject', + '2.5.29.24' => 'id-ce-invalidityDate', + + '1.2.840.113549.2.2' => 'md2', + '1.2.840.113549.2.5' => 'md5', + '1.3.14.3.2.26' => 'id-sha1', + '1.2.840.10040.4.1' => 'id-dsa', + '1.2.840.10040.4.3' => 'id-dsa-with-sha1', + '1.2.840.113549.1.1' => 'pkcs-1', + '1.2.840.113549.1.1.1' => 'rsaEncryption', + '1.2.840.113549.1.1.2' => 'md2WithRSAEncryption', + '1.2.840.113549.1.1.4' => 'md5WithRSAEncryption', + '1.2.840.113549.1.1.5' => 'sha1WithRSAEncryption', + '1.2.840.10046.2.1' => 'dhpublicnumber', + '2.16.840.1.101.2.1.1.22' => 'id-keyExchangeAlgorithm', + '1.2.840.10045' => 'ansi-X9-62', + '1.2.840.10045.4' => 'id-ecSigType', + '1.2.840.10045.4.1' => 'ecdsa-with-SHA1', + '1.2.840.10045.1' => 'id-fieldType', + '1.2.840.10045.1.1' => 'prime-field', + '1.2.840.10045.1.2' => 'characteristic-two-field', + '1.2.840.10045.1.2.3' => 'id-characteristic-two-basis', + '1.2.840.10045.1.2.3.1' => 'gnBasis', + '1.2.840.10045.1.2.3.2' => 'tpBasis', + '1.2.840.10045.1.2.3.3' => 'ppBasis', + '1.2.840.10045.2' => 'id-publicKeyType', + '1.2.840.10045.2.1' => 'id-ecPublicKey', + '1.2.840.10045.3' => 'ellipticCurve', + '1.2.840.10045.3.0' => 'c-TwoCurve', + '1.2.840.10045.3.0.1' => 'c2pnb163v1', + '1.2.840.10045.3.0.2' => 'c2pnb163v2', + '1.2.840.10045.3.0.3' => 'c2pnb163v3', + '1.2.840.10045.3.0.4' => 'c2pnb176w1', + '1.2.840.10045.3.0.5' => 'c2pnb191v1', + '1.2.840.10045.3.0.6' => 'c2pnb191v2', + '1.2.840.10045.3.0.7' => 'c2pnb191v3', + '1.2.840.10045.3.0.8' => 'c2pnb191v4', + '1.2.840.10045.3.0.9' => 'c2pnb191v5', + '1.2.840.10045.3.0.10' => 'c2pnb208w1', + '1.2.840.10045.3.0.11' => 'c2pnb239v1', + '1.2.840.10045.3.0.12' => 'c2pnb239v2', + '1.2.840.10045.3.0.13' => 'c2pnb239v3', + '1.2.840.10045.3.0.14' => 'c2pnb239v4', + '1.2.840.10045.3.0.15' => 'c2pnb239v5', + '1.2.840.10045.3.0.16' => 'c2pnb272w1', + '1.2.840.10045.3.0.17' => 'c2pnb304w1', + '1.2.840.10045.3.0.18' => 'c2pnb359v1', + '1.2.840.10045.3.0.19' => 'c2pnb368w1', + '1.2.840.10045.3.0.20' => 'c2pnb431r1', + '1.2.840.10045.3.1' => 'primeCurve', + '1.2.840.10045.3.1.1' => 'prime192v1', + '1.2.840.10045.3.1.2' => 'prime192v2', + '1.2.840.10045.3.1.3' => 'prime192v3', + '1.2.840.10045.3.1.4' => 'prime239v1', + '1.2.840.10045.3.1.5' => 'prime239v2', + '1.2.840.10045.3.1.6' => 'prime239v3', + '1.2.840.10045.3.1.7' => 'prime256v1', + '1.2.840.113549.1.1.7' => 'id-RSAES-OAEP', + '1.2.840.113549.1.1.9' => 'id-pSpecified', + '1.2.840.113549.1.1.10' => 'id-RSASSA-PSS', + '1.2.840.113549.1.1.8' => 'id-mgf1', + '1.2.840.113549.1.1.14' => 'sha224WithRSAEncryption', + '1.2.840.113549.1.1.11' => 'sha256WithRSAEncryption', + '1.2.840.113549.1.1.12' => 'sha384WithRSAEncryption', + '1.2.840.113549.1.1.13' => 'sha512WithRSAEncryption', + '2.16.840.1.101.3.4.2.4' => 'id-sha224', + '2.16.840.1.101.3.4.2.1' => 'id-sha256', + '2.16.840.1.101.3.4.2.2' => 'id-sha384', + '2.16.840.1.101.3.4.2.3' => 'id-sha512', + '1.2.643.2.2.4' => 'id-GostR3411-94-with-GostR3410-94', + '1.2.643.2.2.3' => 'id-GostR3411-94-with-GostR3410-2001', + '1.2.643.2.2.20' => 'id-GostR3410-2001', + '1.2.643.2.2.19' => 'id-GostR3410-94', + // Netscape Object Identifiers from "Netscape Certificate Extensions" + '2.16.840.1.113730' => 'netscape', + '2.16.840.1.113730.1' => 'netscape-cert-extension', + '2.16.840.1.113730.1.1' => 'netscape-cert-type', + '2.16.840.1.113730.1.13' => 'netscape-comment', + '2.16.840.1.113730.1.8' => 'netscape-ca-policy-url', + // the following are X.509 extensions not supported by phpseclib + '1.3.6.1.5.5.7.1.12' => 'id-pe-logotype', + '1.2.840.113533.7.65.0' => 'entrustVersInfo', + '2.16.840.1.113733.1.6.9' => 'verisignPrivate', + // for Certificate Signing Requests + // see http://tools.ietf.org/html/rfc2985 + '1.2.840.113549.1.9.2' => 'pkcs-9-at-unstructuredName', // PKCS #9 unstructured name + '1.2.840.113549.1.9.7' => 'pkcs-9-at-challengePassword', // Challenge password for certificate revocations + '1.2.840.113549.1.9.14' => 'pkcs-9-at-extensionRequest' // Certificate extension request + ); + } + + /** + * Load X.509 certificate + * + * Returns an associative array describing the X.509 cert or a false if the cert failed to load + * + * @param String $cert + * @access public + * @return Mixed + */ + function loadX509($cert) + { + if (is_array($cert) && isset($cert['tbsCertificate'])) { + unset($this->currentCert); + unset($this->currentKeyIdentifier); + $this->dn = $cert['tbsCertificate']['subject']; + if (!isset($this->dn)) { + return false; + } + $this->currentCert = $cert; + + $currentKeyIdentifier = $this->getExtension('id-ce-subjectKeyIdentifier'); + $this->currentKeyIdentifier = is_string($currentKeyIdentifier) ? $currentKeyIdentifier : null; + + unset($this->signatureSubject); + + return $cert; + } + + $asn1 = new File_ASN1(); + + $cert = $this->_extractBER($cert); + + if ($cert === false) { + $this->currentCert = false; + return false; + } + + $asn1->loadOIDs($this->oids); + $decoded = $asn1->decodeBER($cert); + + if (!empty($decoded)) { + $x509 = $asn1->asn1map($decoded[0], $this->Certificate); + } + if (!isset($x509) || $x509 === false) { + $this->currentCert = false; + return false; + } + + $this->signatureSubject = substr($cert, $decoded[0]['content'][0]['start'], $decoded[0]['content'][0]['length']); + + $this->_mapInExtensions($x509, 'tbsCertificate/extensions', $asn1); + + $key = &$x509['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey']; + $key = $this->_reformatKey($x509['tbsCertificate']['subjectPublicKeyInfo']['algorithm']['algorithm'], $key); + + $this->currentCert = $x509; + $this->dn = $x509['tbsCertificate']['subject']; + + $currentKeyIdentifier = $this->getExtension('id-ce-subjectKeyIdentifier'); + $this->currentKeyIdentifier = is_string($currentKeyIdentifier) ? $currentKeyIdentifier : null; + + return $x509; + } + + /** + * Save X.509 certificate + * + * @param Array $cert + * @param Integer $format optional + * @access public + * @return String + */ + function saveX509($cert, $format = FILE_X509_FORMAT_PEM) + { + if (!is_array($cert) || !isset($cert['tbsCertificate'])) { + return false; + } + + switch (true) { + // "case !$a: case !$b: break; default: whatever();" is the same thing as "if ($a && $b) whatever()" + case !($algorithm = $this->_subArray($cert, 'tbsCertificate/subjectPublicKeyInfo/algorithm/algorithm')): + case is_object($cert['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey']): + break; + default: + switch ($algorithm) { + case 'rsaEncryption': + $cert['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey'] + = base64_encode("\0" . base64_decode(preg_replace('#-.+-|[\r\n]#', '', $cert['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey']))); + } + } + + $asn1 = new File_ASN1(); + $asn1->loadOIDs($this->oids); + + $filters = array(); + $type_utf8_string = array('type' => FILE_ASN1_TYPE_UTF8_STRING); + $filters['tbsCertificate']['signature']['parameters'] = $type_utf8_string; + $filters['tbsCertificate']['signature']['issuer']['rdnSequence']['value'] = $type_utf8_string; + $filters['tbsCertificate']['issuer']['rdnSequence']['value'] = $type_utf8_string; + $filters['tbsCertificate']['subject']['rdnSequence']['value'] = $type_utf8_string; + $filters['tbsCertificate']['subjectPublicKeyInfo']['algorithm']['parameters'] = $type_utf8_string; + $filters['signatureAlgorithm']['parameters'] = $type_utf8_string; + $filters['authorityCertIssuer']['directoryName']['rdnSequence']['value'] = $type_utf8_string; + //$filters['policyQualifiers']['qualifier'] = $type_utf8_string; + $filters['distributionPoint']['fullName']['directoryName']['rdnSequence']['value'] = $type_utf8_string; + $filters['directoryName']['rdnSequence']['value'] = $type_utf8_string; + + /* in the case of policyQualifiers/qualifier, the type has to be FILE_ASN1_TYPE_IA5_STRING. + FILE_ASN1_TYPE_PRINTABLE_STRING will cause OpenSSL's X.509 parser to spit out random + characters. + */ + $filters['policyQualifiers']['qualifier'] + = array('type' => FILE_ASN1_TYPE_IA5_STRING); + + $asn1->loadFilters($filters); + + $this->_mapOutExtensions($cert, 'tbsCertificate/extensions', $asn1); + + $cert = $asn1->encodeDER($cert, $this->Certificate); + + switch ($format) { + case FILE_X509_FORMAT_DER: + return $cert; + // case FILE_X509_FORMAT_PEM: + default: + return "-----BEGIN CERTIFICATE-----\r\n" . chunk_split(base64_encode($cert), 64) . '-----END CERTIFICATE-----'; + } + } + + /** + * Map extension values from octet string to extension-specific internal + * format. + * + * @param Array ref $root + * @param String $path + * @param Object $asn1 + * @access private + */ + function _mapInExtensions(&$root, $path, $asn1) + { + $extensions = &$this->_subArray($root, $path); + + if (is_array($extensions)) { + for ($i = 0; $i < count($extensions); $i++) { + $id = $extensions[$i]['extnId']; + $value = &$extensions[$i]['extnValue']; + $value = base64_decode($value); + $decoded = $asn1->decodeBER($value); + /* [extnValue] contains the DER encoding of an ASN.1 value + corresponding to the extension type identified by extnID */ + $map = $this->_getMapping($id); + if (!is_bool($map)) { + $mapped = $asn1->asn1map($decoded[0], $map, array('iPAddress' => array($this, '_decodeIP'))); + $value = $mapped === false ? $decoded[0] : $mapped; + + if ($id == 'id-ce-certificatePolicies') { + for ($j = 0; $j < count($value); $j++) { + if (!isset($value[$j]['policyQualifiers'])) { + continue; + } + for ($k = 0; $k < count($value[$j]['policyQualifiers']); $k++) { + $subid = $value[$j]['policyQualifiers'][$k]['policyQualifierId']; + $map = $this->_getMapping($subid); + $subvalue = &$value[$j]['policyQualifiers'][$k]['qualifier']; + if ($map !== false) { + $decoded = $asn1->decodeBER($subvalue); + $mapped = $asn1->asn1map($decoded[0], $map); + $subvalue = $mapped === false ? $decoded[0] : $mapped; + } + } + } + } + } elseif ($map) { + $value = base64_encode($value); + } + } + } + } + + /** + * Map extension values from extension-specific internal format to + * octet string. + * + * @param Array ref $root + * @param String $path + * @param Object $asn1 + * @access private + */ + function _mapOutExtensions(&$root, $path, $asn1) + { + $extensions = &$this->_subArray($root, $path); + + if (is_array($extensions)) { + $size = count($extensions); + for ($i = 0; $i < $size; $i++) { + $id = $extensions[$i]['extnId']; + $value = &$extensions[$i]['extnValue']; + + switch ($id) { + case 'id-ce-certificatePolicies': + for ($j = 0; $j < count($value); $j++) { + if (!isset($value[$j]['policyQualifiers'])) { + continue; + } + for ($k = 0; $k < count($value[$j]['policyQualifiers']); $k++) { + $subid = $value[$j]['policyQualifiers'][$k]['policyQualifierId']; + $map = $this->_getMapping($subid); + $subvalue = &$value[$j]['policyQualifiers'][$k]['qualifier']; + if ($map !== false) { + // by default File_ASN1 will try to render qualifier as a FILE_ASN1_TYPE_IA5_STRING since it's + // actual type is FILE_ASN1_TYPE_ANY + $subvalue = new File_ASN1_Element($asn1->encodeDER($subvalue, $map)); + } + } + } + break; + case 'id-ce-authorityKeyIdentifier': // use 00 as the serial number instead of an empty string + if (isset($value['authorityCertSerialNumber'])) { + if ($value['authorityCertSerialNumber']->toBytes() == '') { + $temp = chr((FILE_ASN1_CLASS_CONTEXT_SPECIFIC << 6) | 2) . "\1\0"; + $value['authorityCertSerialNumber'] = new File_ASN1_Element($temp); + } + } + } + + /* [extnValue] contains the DER encoding of an ASN.1 value + corresponding to the extension type identified by extnID */ + $map = $this->_getMapping($id); + if (is_bool($map)) { + if (!$map) { + user_error($id . ' is not a currently supported extension'); + unset($extensions[$i]); + } + } else { + $temp = $asn1->encodeDER($value, $map, array('iPAddress' => array($this, '_encodeIP'))); + $value = base64_encode($temp); + } + } + } + } + + /** + * Map attribute values from ANY type to attribute-specific internal + * format. + * + * @param Array ref $root + * @param String $path + * @param Object $asn1 + * @access private + */ + function _mapInAttributes(&$root, $path, $asn1) + { + $attributes = &$this->_subArray($root, $path); + + if (is_array($attributes)) { + for ($i = 0; $i < count($attributes); $i++) { + $id = $attributes[$i]['type']; + /* $value contains the DER encoding of an ASN.1 value + corresponding to the attribute type identified by type */ + $map = $this->_getMapping($id); + if (is_array($attributes[$i]['value'])) { + $values = &$attributes[$i]['value']; + for ($j = 0; $j < count($values); $j++) { + $value = $asn1->encodeDER($values[$j], $this->AttributeValue); + $decoded = $asn1->decodeBER($value); + if (!is_bool($map)) { + $mapped = $asn1->asn1map($decoded[0], $map); + if ($mapped !== false) { + $values[$j] = $mapped; + } + if ($id == 'pkcs-9-at-extensionRequest') { + $this->_mapInExtensions($values, $j, $asn1); + } + } elseif ($map) { + $values[$j] = base64_encode($value); + } + } + } + } + } + } + + /** + * Map attribute values from attribute-specific internal format to + * ANY type. + * + * @param Array ref $root + * @param String $path + * @param Object $asn1 + * @access private + */ + function _mapOutAttributes(&$root, $path, $asn1) + { + $attributes = &$this->_subArray($root, $path); + + if (is_array($attributes)) { + $size = count($attributes); + for ($i = 0; $i < $size; $i++) { + /* [value] contains the DER encoding of an ASN.1 value + corresponding to the attribute type identified by type */ + $id = $attributes[$i]['type']; + $map = $this->_getMapping($id); + if ($map === false) { + user_error($id . ' is not a currently supported attribute', E_USER_NOTICE); + unset($attributes[$i]); + } elseif (is_array($attributes[$i]['value'])) { + $values = &$attributes[$i]['value']; + for ($j = 0; $j < count($values); $j++) { + switch ($id) { + case 'pkcs-9-at-extensionRequest': + $this->_mapOutExtensions($values, $j, $asn1); + break; + } + + if (!is_bool($map)) { + $temp = $asn1->encodeDER($values[$j], $map); + $decoded = $asn1->decodeBER($temp); + $values[$j] = $asn1->asn1map($decoded[0], $this->AttributeValue); + } + } + } + } + } + } + + /** + * Associate an extension ID to an extension mapping + * + * @param String $extnId + * @access private + * @return Mixed + */ + function _getMapping($extnId) + { + if (!is_string($extnId)) { // eg. if it's a File_ASN1_Element object + return true; + } + + switch ($extnId) { + case 'id-ce-keyUsage': + return $this->KeyUsage; + case 'id-ce-basicConstraints': + return $this->BasicConstraints; + case 'id-ce-subjectKeyIdentifier': + return $this->KeyIdentifier; + case 'id-ce-cRLDistributionPoints': + return $this->CRLDistributionPoints; + case 'id-ce-authorityKeyIdentifier': + return $this->AuthorityKeyIdentifier; + case 'id-ce-certificatePolicies': + return $this->CertificatePolicies; + case 'id-ce-extKeyUsage': + return $this->ExtKeyUsageSyntax; + case 'id-pe-authorityInfoAccess': + return $this->AuthorityInfoAccessSyntax; + case 'id-ce-subjectAltName': + return $this->SubjectAltName; + case 'id-ce-privateKeyUsagePeriod': + return $this->PrivateKeyUsagePeriod; + case 'id-ce-issuerAltName': + return $this->IssuerAltName; + case 'id-ce-policyMappings': + return $this->PolicyMappings; + case 'id-ce-nameConstraints': + return $this->NameConstraints; + + case 'netscape-cert-type': + return $this->netscape_cert_type; + case 'netscape-comment': + return $this->netscape_comment; + case 'netscape-ca-policy-url': + return $this->netscape_ca_policy_url; + + // since id-qt-cps isn't a constructed type it will have already been decoded as a string by the time it gets + // back around to asn1map() and we don't want it decoded again. + //case 'id-qt-cps': + // return $this->CPSuri; + case 'id-qt-unotice': + return $this->UserNotice; + + // the following OIDs are unsupported but we don't want them to give notices when calling saveX509(). + case 'id-pe-logotype': // http://www.ietf.org/rfc/rfc3709.txt + case 'entrustVersInfo': + // http://support.microsoft.com/kb/287547 + case '1.3.6.1.4.1.311.20.2': // szOID_ENROLL_CERTTYPE_EXTENSION + case '1.3.6.1.4.1.311.21.1': // szOID_CERTSRV_CA_VERSION + // "SET Secure Electronic Transaction Specification" + // http://www.maithean.com/docs/set_bk3.pdf + case '2.23.42.7.0': // id-set-hashedRootKey + return true; + + // CSR attributes + case 'pkcs-9-at-unstructuredName': + return $this->PKCS9String; + case 'pkcs-9-at-challengePassword': + return $this->DirectoryString; + case 'pkcs-9-at-extensionRequest': + return $this->Extensions; + + // CRL extensions. + case 'id-ce-cRLNumber': + return $this->CRLNumber; + case 'id-ce-deltaCRLIndicator': + return $this->CRLNumber; + case 'id-ce-issuingDistributionPoint': + return $this->IssuingDistributionPoint; + case 'id-ce-freshestCRL': + return $this->CRLDistributionPoints; + case 'id-ce-cRLReasons': + return $this->CRLReason; + case 'id-ce-invalidityDate': + return $this->InvalidityDate; + case 'id-ce-certificateIssuer': + return $this->CertificateIssuer; + case 'id-ce-holdInstructionCode': + return $this->HoldInstructionCode; + } + + return false; + } + + /** + * Load an X.509 certificate as a certificate authority + * + * @param String $cert + * @access public + * @return Boolean + */ + function loadCA($cert) + { + $olddn = $this->dn; + $oldcert = $this->currentCert; + $oldsigsubj = $this->signatureSubject; + $oldkeyid = $this->currentKeyIdentifier; + + $cert = $this->loadX509($cert); + if (!$cert) { + $this->dn = $olddn; + $this->currentCert = $oldcert; + $this->signatureSubject = $oldsigsubj; + $this->currentKeyIdentifier = $oldkeyid; + + return false; + } + + /* From RFC5280 "PKIX Certificate and CRL Profile": + + If the keyUsage extension is present, then the subject public key + MUST NOT be used to verify signatures on certificates or CRLs unless + the corresponding keyCertSign or cRLSign bit is set. */ + //$keyUsage = $this->getExtension('id-ce-keyUsage'); + //if ($keyUsage && !in_array('keyCertSign', $keyUsage)) { + // return false; + //} + + /* From RFC5280 "PKIX Certificate and CRL Profile": + + The cA boolean indicates whether the certified public key may be used + to verify certificate signatures. If the cA boolean is not asserted, + then the keyCertSign bit in the key usage extension MUST NOT be + asserted. If the basic constraints extension is not present in a + version 3 certificate, or the extension is present but the cA boolean + is not asserted, then the certified public key MUST NOT be used to + verify certificate signatures. */ + //$basicConstraints = $this->getExtension('id-ce-basicConstraints'); + //if (!$basicConstraints || !$basicConstraints['cA']) { + // return false; + //} + + $this->CAs[] = $cert; + + $this->dn = $olddn; + $this->currentCert = $oldcert; + $this->signatureSubject = $oldsigsubj; + + return true; + } + + /** + * Validate an X.509 certificate against a URL + * + * From RFC2818 "HTTP over TLS": + * + * Matching is performed using the matching rules specified by + * [RFC2459]. If more than one identity of a given type is present in + * the certificate (e.g., more than one dNSName name, a match in any one + * of the set is considered acceptable.) Names may contain the wildcard + * character * which is considered to match any single domain name + * component or component fragment. E.g., *.a.com matches foo.a.com but + * not bar.foo.a.com. f*.com matches foo.com but not bar.com. + * + * @param String $url + * @access public + * @return Boolean + */ + function validateURL($url) + { + if (!is_array($this->currentCert) || !isset($this->currentCert['tbsCertificate'])) { + return false; + } + + $components = parse_url($url); + if (!isset($components['host'])) { + return false; + } + + if ($names = $this->getExtension('id-ce-subjectAltName')) { + foreach ($names as $key => $value) { + $value = str_replace(array('.', '*'), array('\.', '[^.]*'), $value); + switch ($key) { + case 'dNSName': + /* From RFC2818 "HTTP over TLS": + + If a subjectAltName extension of type dNSName is present, that MUST + be used as the identity. Otherwise, the (most specific) Common Name + field in the Subject field of the certificate MUST be used. Although + the use of the Common Name is existing practice, it is deprecated and + Certification Authorities are encouraged to use the dNSName instead. */ + if (preg_match('#^' . $value . '$#', $components['host'])) { + return true; + } + break; + case 'iPAddress': + /* From RFC2818 "HTTP over TLS": + + In some cases, the URI is specified as an IP address rather than a + hostname. In this case, the iPAddress subjectAltName must be present + in the certificate and must exactly match the IP in the URI. */ + if (preg_match('#(?:\d{1-3}\.){4}#', $components['host'] . '.') && preg_match('#^' . $value . '$#', $components['host'])) { + return true; + } + } + } + return false; + } + + if ($value = $this->getDNProp('id-at-commonName')) { + $value = str_replace(array('.', '*'), array('\.', '[^.]*'), $value[0]); + return preg_match('#^' . $value . '$#', $components['host']); + } + + return false; + } + + /** + * Validate a date + * + * If $date isn't defined it is assumed to be the current date. + * + * @param Integer $date optional + * @access public + */ + function validateDate($date = null) + { + if (!is_array($this->currentCert) || !isset($this->currentCert['tbsCertificate'])) { + return false; + } + + if (!isset($date)) { + $date = time(); + } + + $notBefore = $this->currentCert['tbsCertificate']['validity']['notBefore']; + $notBefore = isset($notBefore['generalTime']) ? $notBefore['generalTime'] : $notBefore['utcTime']; + + $notAfter = $this->currentCert['tbsCertificate']['validity']['notAfter']; + $notAfter = isset($notAfter['generalTime']) ? $notAfter['generalTime'] : $notAfter['utcTime']; + + switch (true) { + case $date < @strtotime($notBefore): + case $date > @strtotime($notAfter): + return false; + } + + return true; + } + + /** + * Validate a signature + * + * Works on X.509 certs, CSR's and CRL's. + * Returns true if the signature is verified, false if it is not correct or null on error + * + * By default returns false for self-signed certs. Call validateSignature(false) to make this support + * self-signed. + * + * The behavior of this function is inspired by {@link http://php.net/openssl-verify openssl_verify}. + * + * @param Boolean $caonly optional + * @access public + * @return Mixed + */ + function validateSignature($caonly = true) + { + if (!is_array($this->currentCert) || !isset($this->signatureSubject)) { + return null; + } + + /* TODO: + "emailAddress attribute values are not case-sensitive (e.g., "subscriber@example.com" is the same as "SUBSCRIBER@EXAMPLE.COM")." + -- http://tools.ietf.org/html/rfc5280#section-4.1.2.6 + + implement pathLenConstraint in the id-ce-basicConstraints extension */ + + switch (true) { + case isset($this->currentCert['tbsCertificate']): + // self-signed cert + if ($this->currentCert['tbsCertificate']['issuer'] === $this->currentCert['tbsCertificate']['subject']) { + $authorityKey = $this->getExtension('id-ce-authorityKeyIdentifier'); + $subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier'); + switch (true) { + case !is_array($authorityKey): + case is_array($authorityKey) && isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID: + $signingCert = $this->currentCert; // working cert + } + } + + if (!empty($this->CAs)) { + for ($i = 0; $i < count($this->CAs); $i++) { + // even if the cert is a self-signed one we still want to see if it's a CA; + // if not, we'll conditionally return an error + $ca = $this->CAs[$i]; + if ($this->currentCert['tbsCertificate']['issuer'] === $ca['tbsCertificate']['subject']) { + $authorityKey = $this->getExtension('id-ce-authorityKeyIdentifier'); + $subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier', $ca); + switch (true) { + case !is_array($authorityKey): + case is_array($authorityKey) && isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID: + $signingCert = $ca; // working cert + break 2; + } + } + } + if (count($this->CAs) == $i && $caonly) { + return false; + } + } elseif (!isset($signingCert) || $caonly) { + return false; + } + return $this->_validateSignature( + $signingCert['tbsCertificate']['subjectPublicKeyInfo']['algorithm']['algorithm'], + $signingCert['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey'], + $this->currentCert['signatureAlgorithm']['algorithm'], + substr(base64_decode($this->currentCert['signature']), 1), + $this->signatureSubject + ); + case isset($this->currentCert['certificationRequestInfo']): + return $this->_validateSignature( + $this->currentCert['certificationRequestInfo']['subjectPKInfo']['algorithm']['algorithm'], + $this->currentCert['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey'], + $this->currentCert['signatureAlgorithm']['algorithm'], + substr(base64_decode($this->currentCert['signature']), 1), + $this->signatureSubject + ); + case isset($this->currentCert['publicKeyAndChallenge']): + return $this->_validateSignature( + $this->currentCert['publicKeyAndChallenge']['spki']['algorithm']['algorithm'], + $this->currentCert['publicKeyAndChallenge']['spki']['subjectPublicKey'], + $this->currentCert['signatureAlgorithm']['algorithm'], + substr(base64_decode($this->currentCert['signature']), 1), + $this->signatureSubject + ); + case isset($this->currentCert['tbsCertList']): + if (!empty($this->CAs)) { + for ($i = 0; $i < count($this->CAs); $i++) { + $ca = $this->CAs[$i]; + if ($this->currentCert['tbsCertList']['issuer'] === $ca['tbsCertificate']['subject']) { + $authorityKey = $this->getExtension('id-ce-authorityKeyIdentifier'); + $subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier', $ca); + switch (true) { + case !is_array($authorityKey): + case is_array($authorityKey) && isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID: + $signingCert = $ca; // working cert + break 2; + } + } + } + } + if (!isset($signingCert)) { + return false; + } + return $this->_validateSignature( + $signingCert['tbsCertificate']['subjectPublicKeyInfo']['algorithm']['algorithm'], + $signingCert['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey'], + $this->currentCert['signatureAlgorithm']['algorithm'], + substr(base64_decode($this->currentCert['signature']), 1), + $this->signatureSubject + ); + default: + return false; + } + } + + /** + * Validates a signature + * + * Returns true if the signature is verified, false if it is not correct or null on error + * + * @param String $publicKeyAlgorithm + * @param String $publicKey + * @param String $signatureAlgorithm + * @param String $signature + * @param String $signatureSubject + * @access private + * @return Integer + */ + function _validateSignature($publicKeyAlgorithm, $publicKey, $signatureAlgorithm, $signature, $signatureSubject) + { + switch ($publicKeyAlgorithm) { + case 'rsaEncryption': + if (!class_exists('Crypt_RSA')) { + include_once 'Crypt/RSA.php'; + } + $rsa = new Crypt_RSA(); + $rsa->loadKey($publicKey); + + switch ($signatureAlgorithm) { + case 'md2WithRSAEncryption': + case 'md5WithRSAEncryption': + case 'sha1WithRSAEncryption': + case 'sha224WithRSAEncryption': + case 'sha256WithRSAEncryption': + case 'sha384WithRSAEncryption': + case 'sha512WithRSAEncryption': + $rsa->setHash(preg_replace('#WithRSAEncryption$#', '', $signatureAlgorithm)); + $rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1); + if (!@$rsa->verify($signatureSubject, $signature)) { + return false; + } + break; + default: + return null; + } + break; + default: + return null; + } + + return true; + } + + /** + * Reformat public keys + * + * Reformats a public key to a format supported by phpseclib (if applicable) + * + * @param String $algorithm + * @param String $key + * @access private + * @return String + */ + function _reformatKey($algorithm, $key) + { + switch ($algorithm) { + case 'rsaEncryption': + return + "-----BEGIN PUBLIC KEY-----\r\n" . + // subjectPublicKey is stored as a bit string in X.509 certs. the first byte of a bit string represents how many bits + // in the last byte should be ignored. the following only supports non-zero stuff but as none of the X.509 certs Firefox + // uses as a cert authority actually use a non-zero bit I think it's safe to assume that none do. + chunk_split(base64_encode(substr(base64_decode($key), 1)), 64) . + '-----END PUBLIC KEY-----'; + default: + return $key; + } + } + + /** + * Decodes an IP address + * + * Takes in a base64 encoded "blob" and returns a human readable IP address + * + * @param String $ip + * @access private + * @return String + */ + function _decodeIP($ip) + { + $ip = base64_decode($ip); + list(, $ip) = unpack('N', $ip); + return long2ip($ip); + } + + /** + * Encodes an IP address + * + * Takes a human readable IP address into a base64-encoded "blob" + * + * @param String $ip + * @access private + * @return String + */ + function _encodeIP($ip) + { + return base64_encode(pack('N', ip2long($ip))); + } + + /** + * "Normalizes" a Distinguished Name property + * + * @param String $propName + * @access private + * @return Mixed + */ + function _translateDNProp($propName) + { + switch (strtolower($propName)) { + case 'id-at-countryname': + case 'countryname': + case 'c': + return 'id-at-countryName'; + case 'id-at-organizationname': + case 'organizationname': + case 'o': + return 'id-at-organizationName'; + case 'id-at-dnqualifier': + case 'dnqualifier': + return 'id-at-dnQualifier'; + case 'id-at-commonname': + case 'commonname': + case 'cn': + return 'id-at-commonName'; + case 'id-at-stateorprovincename': + case 'stateorprovincename': + case 'state': + case 'province': + case 'provincename': + case 'st': + return 'id-at-stateOrProvinceName'; + case 'id-at-localityname': + case 'localityname': + case 'l': + return 'id-at-localityName'; + case 'id-emailaddress': + case 'emailaddress': + return 'pkcs-9-at-emailAddress'; + case 'id-at-serialnumber': + case 'serialnumber': + return 'id-at-serialNumber'; + case 'id-at-postalcode': + case 'postalcode': + return 'id-at-postalCode'; + case 'id-at-streetaddress': + case 'streetaddress': + return 'id-at-streetAddress'; + case 'id-at-name': + case 'name': + return 'id-at-name'; + case 'id-at-givenname': + case 'givenname': + return 'id-at-givenName'; + case 'id-at-surname': + case 'surname': + case 'sn': + return 'id-at-surname'; + case 'id-at-initials': + case 'initials': + return 'id-at-initials'; + case 'id-at-generationqualifier': + case 'generationqualifier': + return 'id-at-generationQualifier'; + case 'id-at-organizationalunitname': + case 'organizationalunitname': + case 'ou': + return 'id-at-organizationalUnitName'; + case 'id-at-pseudonym': + case 'pseudonym': + return 'id-at-pseudonym'; + case 'id-at-title': + case 'title': + return 'id-at-title'; + case 'id-at-description': + case 'description': + return 'id-at-description'; + case 'id-at-role': + case 'role': + return 'id-at-role'; + case 'id-at-uniqueidentifier': + case 'uniqueidentifier': + case 'x500uniqueidentifier': + return 'id-at-uniqueIdentifier'; + default: + return false; + } + } + + /** + * Set a Distinguished Name property + * + * @param String $propName + * @param Mixed $propValue + * @param String $type optional + * @access public + * @return Boolean + */ + function setDNProp($propName, $propValue, $type = 'utf8String') + { + if (empty($this->dn)) { + $this->dn = array('rdnSequence' => array()); + } + + if (($propName = $this->_translateDNProp($propName)) === false) { + return false; + } + + foreach ((array) $propValue as $v) { + if (!is_array($v) && isset($type)) { + $v = array($type => $v); + } + $this->dn['rdnSequence'][] = array( + array( + 'type' => $propName, + 'value'=> $v + ) + ); + } + + return true; + } + + /** + * Remove Distinguished Name properties + * + * @param String $propName + * @access public + */ + function removeDNProp($propName) + { + if (empty($this->dn)) { + return; + } + + if (($propName = $this->_translateDNProp($propName)) === false) { + return; + } + + $dn = &$this->dn['rdnSequence']; + $size = count($dn); + for ($i = 0; $i < $size; $i++) { + if ($dn[$i][0]['type'] == $propName) { + unset($dn[$i]); + } + } + + $dn = array_values($dn); + } + + /** + * Get Distinguished Name properties + * + * @param String $propName + * @param Array $dn optional + * @param Boolean $withType optional + * @return Mixed + * @access public + */ + function getDNProp($propName, $dn = null, $withType = false) + { + if (!isset($dn)) { + $dn = $this->dn; + } + + if (empty($dn)) { + return false; + } + + if (($propName = $this->_translateDNProp($propName)) === false) { + return false; + } + + $dn = $dn['rdnSequence']; + $result = array(); + $asn1 = new File_ASN1(); + for ($i = 0; $i < count($dn); $i++) { + if ($dn[$i][0]['type'] == $propName) { + $v = $dn[$i][0]['value']; + if (!$withType && is_array($v)) { + foreach ($v as $type => $s) { + $type = array_search($type, $asn1->ANYmap, true); + if ($type !== false && isset($asn1->stringTypeSize[$type])) { + $s = $asn1->convert($s, $type); + if ($s !== false) { + $v = $s; + break; + } + } + } + if (is_array($v)) { + $v = array_pop($v); // Always strip data type. + } + } + $result[] = $v; + } + } + + return $result; + } + + /** + * Set a Distinguished Name + * + * @param Mixed $dn + * @param Boolean $merge optional + * @param String $type optional + * @access public + * @return Boolean + */ + function setDN($dn, $merge = false, $type = 'utf8String') + { + if (!$merge) { + $this->dn = null; + } + + if (is_array($dn)) { + if (isset($dn['rdnSequence'])) { + $this->dn = $dn; // No merge here. + return true; + } + + // handles stuff generated by openssl_x509_parse() + foreach ($dn as $prop => $value) { + if (!$this->setDNProp($prop, $value, $type)) { + return false; + } + } + return true; + } + + // handles everything else + $results = preg_split('#((?:^|, *|/)(?:C=|O=|OU=|CN=|L=|ST=|SN=|postalCode=|streetAddress=|emailAddress=|serialNumber=|organizationalUnitName=|title=|description=|role=|x500UniqueIdentifier=))#', $dn, -1, PREG_SPLIT_DELIM_CAPTURE); + for ($i = 1; $i < count($results); $i+=2) { + $prop = trim($results[$i], ', =/'); + $value = $results[$i + 1]; + if (!$this->setDNProp($prop, $value, $type)) { + return false; + } + } + + return true; + } + + /** + * Get the Distinguished Name for a certificates subject + * + * @param Mixed $format optional + * @param Array $dn optional + * @access public + * @return Boolean + */ + function getDN($format = FILE_X509_DN_ARRAY, $dn = null) + { + if (!isset($dn)) { + $dn = isset($this->currentCert['tbsCertList']) ? $this->currentCert['tbsCertList']['issuer'] : $this->dn; + } + + switch ((int) $format) { + case FILE_X509_DN_ARRAY: + return $dn; + case FILE_X509_DN_ASN1: + $asn1 = new File_ASN1(); + $asn1->loadOIDs($this->oids); + $filters = array(); + $filters['rdnSequence']['value'] = array('type' => FILE_ASN1_TYPE_UTF8_STRING); + $asn1->loadFilters($filters); + return $asn1->encodeDER($dn, $this->Name); + case FILE_X509_DN_OPENSSL: + $dn = $this->getDN(FILE_X509_DN_STRING, $dn); + if ($dn === false) { + return false; + } + $attrs = preg_split('#((?:^|, *|/)[a-z][a-z0-9]*=)#i', $dn, -1, PREG_SPLIT_DELIM_CAPTURE); + $dn = array(); + for ($i = 1; $i < count($attrs); $i += 2) { + $prop = trim($attrs[$i], ', =/'); + $value = $attrs[$i + 1]; + if (!isset($dn[$prop])) { + $dn[$prop] = $value; + } else { + $dn[$prop] = array_merge((array) $dn[$prop], array($value)); + } + } + return $dn; + case FILE_X509_DN_CANON: + // No SEQUENCE around RDNs and all string values normalized as + // trimmed lowercase UTF-8 with all spacing as one blank. + $asn1 = new File_ASN1(); + $asn1->loadOIDs($this->oids); + $filters = array(); + $filters['value'] = array('type' => FILE_ASN1_TYPE_UTF8_STRING); + $asn1->loadFilters($filters); + $result = ''; + foreach ($dn['rdnSequence'] as $rdn) { + foreach ($rdn as &$attr) { + if (is_array($attr['value'])) { + foreach ($attr['value'] as $type => $v) { + $type = array_search($type, $asn1->ANYmap, true); + if ($type !== false && isset($asn1->stringTypeSize[$type])) { + $v = $asn1->convert($v, $type); + if ($v !== false) { + $v = preg_replace('/\s+/', ' ', $v); + $attr['value'] = strtolower(trim($v)); + break; + } + } + } + } + } + $result .= $asn1->encodeDER($rdn, $this->RelativeDistinguishedName); + } + return $result; + case FILE_X509_DN_HASH: + $dn = $this->getDN(FILE_X509_DN_CANON, $dn); + if (!class_exists('Crypt_Hash')) { + include_once 'Crypt/Hash.php'; + } + $hash = new Crypt_Hash('sha1'); + $hash = $hash->hash($dn); + extract(unpack('Vhash', $hash)); + return strtolower(bin2hex(pack('N', $hash))); + } + + // Defaut is to return a string. + $start = true; + $output = ''; + $asn1 = new File_ASN1(); + foreach ($dn['rdnSequence'] as $field) { + $prop = $field[0]['type']; + $value = $field[0]['value']; + + $delim = ', '; + switch ($prop) { + case 'id-at-countryName': + $desc = 'C='; + break; + case 'id-at-stateOrProvinceName': + $desc = 'ST='; + break; + case 'id-at-organizationName': + $desc = 'O='; + break; + case 'id-at-organizationalUnitName': + $desc = 'OU='; + break; + case 'id-at-commonName': + $desc = 'CN='; + break; + case 'id-at-localityName': + $desc = 'L='; + break; + case 'id-at-surname': + $desc = 'SN='; + break; + case 'id-at-uniqueIdentifier': + $delim = '/'; + $desc = 'x500UniqueIdentifier='; + break; + default: + $delim = '/'; + $desc = preg_replace('#.+-([^-]+)$#', '$1', $prop) . '='; + } + + if (!$start) { + $output.= $delim; + } + if (is_array($value)) { + foreach ($value as $type => $v) { + $type = array_search($type, $asn1->ANYmap, true); + if ($type !== false && isset($asn1->stringTypeSize[$type])) { + $v = $asn1->convert($v, $type); + if ($v !== false) { + $value = $v; + break; + } + } + } + if (is_array($value)) { + $value = array_pop($value); // Always strip data type. + } + } + $output.= $desc . $value; + $start = false; + } + + return $output; + } + + /** + * Get the Distinguished Name for a certificate/crl issuer + * + * @param Integer $format optional + * @access public + * @return Mixed + */ + function getIssuerDN($format = FILE_X509_DN_ARRAY) + { + switch (true) { + case !isset($this->currentCert) || !is_array($this->currentCert): + break; + case isset($this->currentCert['tbsCertificate']): + return $this->getDN($format, $this->currentCert['tbsCertificate']['issuer']); + case isset($this->currentCert['tbsCertList']): + return $this->getDN($format, $this->currentCert['tbsCertList']['issuer']); + } + + return false; + } + + /** + * Get the Distinguished Name for a certificate/csr subject + * Alias of getDN() + * + * @param Integer $format optional + * @access public + * @return Mixed + */ + function getSubjectDN($format = FILE_X509_DN_ARRAY) + { + switch (true) { + case !empty($this->dn): + return $this->getDN($format); + case !isset($this->currentCert) || !is_array($this->currentCert): + break; + case isset($this->currentCert['tbsCertificate']): + return $this->getDN($format, $this->currentCert['tbsCertificate']['subject']); + case isset($this->currentCert['certificationRequestInfo']): + return $this->getDN($format, $this->currentCert['certificationRequestInfo']['subject']); + } + + return false; + } + + /** + * Get an individual Distinguished Name property for a certificate/crl issuer + * + * @param String $propName + * @param Boolean $withType optional + * @access public + * @return Mixed + */ + function getIssuerDNProp($propName, $withType = false) + { + switch (true) { + case !isset($this->currentCert) || !is_array($this->currentCert): + break; + case isset($this->currentCert['tbsCertificate']): + return $this->getDNProp($propName, $this->currentCert['tbsCertificate']['issuer'], $withType); + case isset($this->currentCert['tbsCertList']): + return $this->getDNProp($propName, $this->currentCert['tbsCertList']['issuer'], $withType); + } + + return false; + } + + /** + * Get an individual Distinguished Name property for a certificate/csr subject + * + * @param String $propName + * @param Boolean $withType optional + * @access public + * @return Mixed + */ + function getSubjectDNProp($propName, $withType = false) + { + switch (true) { + case !empty($this->dn): + return $this->getDNProp($propName, null, $withType); + case !isset($this->currentCert) || !is_array($this->currentCert): + break; + case isset($this->currentCert['tbsCertificate']): + return $this->getDNProp($propName, $this->currentCert['tbsCertificate']['subject'], $withType); + case isset($this->currentCert['certificationRequestInfo']): + return $this->getDNProp($propName, $this->currentCert['certificationRequestInfo']['subject'], $withType); + } + + return false; + } + + /** + * Get the certificate chain for the current cert + * + * @access public + * @return Mixed + */ + function getChain() + { + $chain = array($this->currentCert); + + if (!is_array($this->currentCert) || !isset($this->currentCert['tbsCertificate'])) { + return false; + } + if (empty($this->CAs)) { + return $chain; + } + while (true) { + $currentCert = $chain[count($chain) - 1]; + for ($i = 0; $i < count($this->CAs); $i++) { + $ca = $this->CAs[$i]; + if ($currentCert['tbsCertificate']['issuer'] === $ca['tbsCertificate']['subject']) { + $authorityKey = $this->getExtension('id-ce-authorityKeyIdentifier', $currentCert); + $subjectKeyID = $this->getExtension('id-ce-subjectKeyIdentifier', $ca); + switch (true) { + case !is_array($authorityKey): + case is_array($authorityKey) && isset($authorityKey['keyIdentifier']) && $authorityKey['keyIdentifier'] === $subjectKeyID: + if ($currentCert === $ca) { + break 3; + } + $chain[] = $ca; + break 2; + } + } + } + if ($i == count($this->CAs)) { + break; + } + } + foreach ($chain as $key=>$value) { + $chain[$key] = new File_X509(); + $chain[$key]->loadX509($value); + } + return $chain; + } + + /** + * Set public key + * + * Key needs to be a Crypt_RSA object + * + * @param Object $key + * @access public + * @return Boolean + */ + function setPublicKey($key) + { + $key->setPublicKey(); + $this->publicKey = $key; + } + + /** + * Set private key + * + * Key needs to be a Crypt_RSA object + * + * @param Object $key + * @access public + */ + function setPrivateKey($key) + { + $this->privateKey = $key; + } + + /** + * Gets the public key + * + * Returns a Crypt_RSA object or a false. + * + * @access public + * @return Mixed + */ + function getPublicKey() + { + if (isset($this->publicKey)) { + return $this->publicKey; + } + + if (isset($this->currentCert) && is_array($this->currentCert)) { + foreach (array('tbsCertificate/subjectPublicKeyInfo', 'certificationRequestInfo/subjectPKInfo') as $path) { + $keyinfo = $this->_subArray($this->currentCert, $path); + if (!empty($keyinfo)) { + break; + } + } + } + if (empty($keyinfo)) { + return false; + } + + $key = $keyinfo['subjectPublicKey']; + + switch ($keyinfo['algorithm']['algorithm']) { + case 'rsaEncryption': + if (!class_exists('Crypt_RSA')) { + include_once 'Crypt/RSA.php'; + } + $publicKey = new Crypt_RSA(); + $publicKey->loadKey($key); + $publicKey->setPublicKey(); + break; + default: + return false; + } + + return $publicKey; + } + + /** + * Load a Certificate Signing Request + * + * @param String $csr + * @access public + * @return Mixed + */ + function loadCSR($csr) + { + if (is_array($csr) && isset($csr['certificationRequestInfo'])) { + unset($this->currentCert); + unset($this->currentKeyIdentifier); + unset($this->signatureSubject); + $this->dn = $csr['certificationRequestInfo']['subject']; + if (!isset($this->dn)) { + return false; + } + + $this->currentCert = $csr; + return $csr; + } + + // see http://tools.ietf.org/html/rfc2986 + + $asn1 = new File_ASN1(); + + $csr = $this->_extractBER($csr); + $orig = $csr; + + if ($csr === false) { + $this->currentCert = false; + return false; + } + + $asn1->loadOIDs($this->oids); + $decoded = $asn1->decodeBER($csr); + + if (empty($decoded)) { + $this->currentCert = false; + return false; + } + + $csr = $asn1->asn1map($decoded[0], $this->CertificationRequest); + if (!isset($csr) || $csr === false) { + $this->currentCert = false; + return false; + } + + $this->dn = $csr['certificationRequestInfo']['subject']; + $this->_mapInAttributes($csr, 'certificationRequestInfo/attributes', $asn1); + + $this->signatureSubject = substr($orig, $decoded[0]['content'][0]['start'], $decoded[0]['content'][0]['length']); + + $algorithm = &$csr['certificationRequestInfo']['subjectPKInfo']['algorithm']['algorithm']; + $key = &$csr['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey']; + $key = $this->_reformatKey($algorithm, $key); + + switch ($algorithm) { + case 'rsaEncryption': + if (!class_exists('Crypt_RSA')) { + include_once 'Crypt/RSA.php'; + } + $this->publicKey = new Crypt_RSA(); + $this->publicKey->loadKey($key); + $this->publicKey->setPublicKey(); + break; + default: + $this->publicKey = null; + } + + $this->currentKeyIdentifier = null; + $this->currentCert = $csr; + + return $csr; + } + + /** + * Save CSR request + * + * @param Array $csr + * @param Integer $format optional + * @access public + * @return String + */ + function saveCSR($csr, $format = FILE_X509_FORMAT_PEM) + { + if (!is_array($csr) || !isset($csr['certificationRequestInfo'])) { + return false; + } + + switch (true) { + case !($algorithm = $this->_subArray($csr, 'certificationRequestInfo/subjectPKInfo/algorithm/algorithm')): + case is_object($csr['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey']); + break; + default: + switch ($algorithm) { + case 'rsaEncryption': + $csr['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey'] + = base64_encode("\0" . base64_decode(preg_replace('#-.+-|[\r\n]#', '', $csr['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey']))); + } + } + + $asn1 = new File_ASN1(); + + $asn1->loadOIDs($this->oids); + + $filters = array(); + $filters['certificationRequestInfo']['subject']['rdnSequence']['value'] + = array('type' => FILE_ASN1_TYPE_UTF8_STRING); + + $asn1->loadFilters($filters); + + $this->_mapOutAttributes($csr, 'certificationRequestInfo/attributes', $asn1); + $csr = $asn1->encodeDER($csr, $this->CertificationRequest); + + switch ($format) { + case FILE_X509_FORMAT_DER: + return $csr; + // case FILE_X509_FORMAT_PEM: + default: + return "-----BEGIN CERTIFICATE REQUEST-----\r\n" . chunk_split(base64_encode($csr), 64) . '-----END CERTIFICATE REQUEST-----'; + } + } + + /** + * Load a SPKAC CSR + * + * SPKAC's are produced by the HTML5 keygen element: + * + * https://developer.mozilla.org/en-US/docs/HTML/Element/keygen + * + * @param String $csr + * @access public + * @return Mixed + */ + function loadSPKAC($spkac) + { + if (is_array($spkac) && isset($spkac['publicKeyAndChallenge'])) { + unset($this->currentCert); + unset($this->currentKeyIdentifier); + unset($this->signatureSubject); + $this->currentCert = $spkac; + return $spkac; + } + + // see http://www.w3.org/html/wg/drafts/html/master/forms.html#signedpublickeyandchallenge + + $asn1 = new File_ASN1(); + + $temp = preg_replace('#(?:^[^=]+=)|[\r\n\\\]#', '', $spkac); + $temp = preg_match('#^[a-zA-Z\d/+]*={0,2}$#', $temp) ? base64_decode($temp) : false; + if ($temp != false) { + $spkac = $temp; + } + $orig = $spkac; + + if ($spkac === false) { + $this->currentCert = false; + return false; + } + + $asn1->loadOIDs($this->oids); + $decoded = $asn1->decodeBER($spkac); + + if (empty($decoded)) { + $this->currentCert = false; + return false; + } + + $spkac = $asn1->asn1map($decoded[0], $this->SignedPublicKeyAndChallenge); + + if (!isset($spkac) || $spkac === false) { + $this->currentCert = false; + return false; + } + + $this->signatureSubject = substr($orig, $decoded[0]['content'][0]['start'], $decoded[0]['content'][0]['length']); + + $algorithm = &$spkac['publicKeyAndChallenge']['spki']['algorithm']['algorithm']; + $key = &$spkac['publicKeyAndChallenge']['spki']['subjectPublicKey']; + $key = $this->_reformatKey($algorithm, $key); + + switch ($algorithm) { + case 'rsaEncryption': + if (!class_exists('Crypt_RSA')) { + include_once 'Crypt/RSA.php'; + } + $this->publicKey = new Crypt_RSA(); + $this->publicKey->loadKey($key); + $this->publicKey->setPublicKey(); + break; + default: + $this->publicKey = null; + } + + $this->currentKeyIdentifier = null; + $this->currentCert = $spkac; + + return $spkac; + } + + /** + * Load a Certificate Revocation List + * + * @param String $crl + * @access public + * @return Mixed + */ + function loadCRL($crl) + { + if (is_array($crl) && isset($crl['tbsCertList'])) { + $this->currentCert = $crl; + unset($this->signatureSubject); + return $crl; + } + + $asn1 = new File_ASN1(); + + $crl = $this->_extractBER($crl); + $orig = $crl; + + if ($crl === false) { + $this->currentCert = false; + return false; + } + + $asn1->loadOIDs($this->oids); + $decoded = $asn1->decodeBER($crl); + + if (empty($decoded)) { + $this->currentCert = false; + return false; + } + + $crl = $asn1->asn1map($decoded[0], $this->CertificateList); + if (!isset($crl) || $crl === false) { + $this->currentCert = false; + return false; + } + + $this->signatureSubject = substr($orig, $decoded[0]['content'][0]['start'], $decoded[0]['content'][0]['length']); + + $this->_mapInExtensions($crl, 'tbsCertList/crlExtensions', $asn1); + $rclist = &$this->_subArray($crl, 'tbsCertList/revokedCertificates'); + if (is_array($rclist)) { + foreach ($rclist as $i => $extension) { + $this->_mapInExtensions($rclist, "$i/crlEntryExtensions", $asn1); + } + } + + $this->currentKeyIdentifier = null; + $this->currentCert = $crl; + + return $crl; + } + + /** + * Save Certificate Revocation List. + * + * @param Array $crl + * @param Integer $format optional + * @access public + * @return String + */ + function saveCRL($crl, $format = FILE_X509_FORMAT_PEM) + { + if (!is_array($crl) || !isset($crl['tbsCertList'])) { + return false; + } + + $asn1 = new File_ASN1(); + + $asn1->loadOIDs($this->oids); + + $filters = array(); + $filters['tbsCertList']['issuer']['rdnSequence']['value'] + = array('type' => FILE_ASN1_TYPE_UTF8_STRING); + $filters['tbsCertList']['signature']['parameters'] + = array('type' => FILE_ASN1_TYPE_UTF8_STRING); + $filters['signatureAlgorithm']['parameters'] + = array('type' => FILE_ASN1_TYPE_UTF8_STRING); + + if (empty($crl['tbsCertList']['signature']['parameters'])) { + $filters['tbsCertList']['signature']['parameters'] + = array('type' => FILE_ASN1_TYPE_NULL); + } + + if (empty($crl['signatureAlgorithm']['parameters'])) { + $filters['signatureAlgorithm']['parameters'] + = array('type' => FILE_ASN1_TYPE_NULL); + } + + $asn1->loadFilters($filters); + + $this->_mapOutExtensions($crl, 'tbsCertList/crlExtensions', $asn1); + $rclist = &$this->_subArray($crl, 'tbsCertList/revokedCertificates'); + if (is_array($rclist)) { + foreach ($rclist as $i => $extension) { + $this->_mapOutExtensions($rclist, "$i/crlEntryExtensions", $asn1); + } + } + + $crl = $asn1->encodeDER($crl, $this->CertificateList); + + switch ($format) { + case FILE_X509_FORMAT_DER: + return $crl; + // case FILE_X509_FORMAT_PEM: + default: + return "-----BEGIN X509 CRL-----\r\n" . chunk_split(base64_encode($crl), 64) . '-----END X509 CRL-----'; + } + } + + /** + * Sign an X.509 certificate + * + * $issuer's private key needs to be loaded. + * $subject can be either an existing X.509 cert (if you want to resign it), + * a CSR or something with the DN and public key explicitly set. + * + * @param File_X509 $issuer + * @param File_X509 $subject + * @param String $signatureAlgorithm optional + * @access public + * @return Mixed + */ + function sign($issuer, $subject, $signatureAlgorithm = 'sha1WithRSAEncryption') + { + if (!is_object($issuer->privateKey) || empty($issuer->dn)) { + return false; + } + + if (isset($subject->publicKey) && !($subjectPublicKey = $subject->_formatSubjectPublicKey())) { + return false; + } + + $currentCert = isset($this->currentCert) ? $this->currentCert : null; + $signatureSubject = isset($this->signatureSubject) ? $this->signatureSubject: null; + + if (isset($subject->currentCert) && is_array($subject->currentCert) && isset($subject->currentCert['tbsCertificate'])) { + $this->currentCert = $subject->currentCert; + $this->currentCert['tbsCertificate']['signature']['algorithm'] = $signatureAlgorithm; + $this->currentCert['signatureAlgorithm']['algorithm'] = $signatureAlgorithm; + + if (!empty($this->startDate)) { + $this->currentCert['tbsCertificate']['validity']['notBefore']['generalTime'] = $this->startDate; + unset($this->currentCert['tbsCertificate']['validity']['notBefore']['utcTime']); + } + if (!empty($this->endDate)) { + $this->currentCert['tbsCertificate']['validity']['notAfter']['generalTime'] = $this->endDate; + unset($this->currentCert['tbsCertificate']['validity']['notAfter']['utcTime']); + } + if (!empty($this->serialNumber)) { + $this->currentCert['tbsCertificate']['serialNumber'] = $this->serialNumber; + } + if (!empty($subject->dn)) { + $this->currentCert['tbsCertificate']['subject'] = $subject->dn; + } + if (!empty($subject->publicKey)) { + $this->currentCert['tbsCertificate']['subjectPublicKeyInfo'] = $subjectPublicKey; + } + $this->removeExtension('id-ce-authorityKeyIdentifier'); + if (isset($subject->domains)) { + $this->removeExtension('id-ce-subjectAltName'); + } + } else if (isset($subject->currentCert) && is_array($subject->currentCert) && isset($subject->currentCert['tbsCertList'])) { + return false; + } else { + if (!isset($subject->publicKey)) { + return false; + } + + $startDate = !empty($this->startDate) ? $this->startDate : @date('D, d M y H:i:s O'); + $endDate = !empty($this->endDate) ? $this->endDate : @date('D, d M y H:i:s O', strtotime('+1 year')); + $serialNumber = !empty($this->serialNumber) ? $this->serialNumber : new Math_BigInteger(); + + $this->currentCert = array( + 'tbsCertificate' => + array( + 'version' => 'v3', + 'serialNumber' => $serialNumber, // $this->setserialNumber() + 'signature' => array('algorithm' => $signatureAlgorithm), + 'issuer' => false, // this is going to be overwritten later + 'validity' => array( + 'notBefore' => array('generalTime' => $startDate), // $this->setStartDate() + 'notAfter' => array('generalTime' => $endDate) // $this->setEndDate() + ), + 'subject' => $subject->dn, + 'subjectPublicKeyInfo' => $subjectPublicKey + ), + 'signatureAlgorithm' => array('algorithm' => $signatureAlgorithm), + 'signature' => false // this is going to be overwritten later + ); + + // Copy extensions from CSR. + $csrexts = $subject->getAttribute('pkcs-9-at-extensionRequest', 0); + + if (!empty($csrexts)) { + $this->currentCert['tbsCertificate']['extensions'] = $csrexts; + } + } + + $this->currentCert['tbsCertificate']['issuer'] = $issuer->dn; + + if (isset($issuer->currentKeyIdentifier)) { + $this->setExtension('id-ce-authorityKeyIdentifier', array( + //'authorityCertIssuer' => array( + // array( + // 'directoryName' => $issuer->dn + // ) + //), + 'keyIdentifier' => $issuer->currentKeyIdentifier + ) + ); + //$extensions = &$this->currentCert['tbsCertificate']['extensions']; + //if (isset($issuer->serialNumber)) { + // $extensions[count($extensions) - 1]['authorityCertSerialNumber'] = $issuer->serialNumber; + //} + //unset($extensions); + } + + if (isset($subject->currentKeyIdentifier)) { + $this->setExtension('id-ce-subjectKeyIdentifier', $subject->currentKeyIdentifier); + } + + $altName = array(); + + if (isset($subject->domains) && count($subject->domains) > 1) { + $altName = array_map(array('File_X509', '_dnsName'), $subject->domains); + } + + if (isset($subject->ipAddresses) && count($subject->ipAddresses)) { + // should an IP address appear as the CN if no domain name is specified? idk + //$ips = count($subject->domains) ? $subject->ipAddresses : array_slice($subject->ipAddresses, 1); + $ipAddresses = array(); + foreach ($subject->ipAddresses as $ipAddress) { + $encoded = $subject->_ipAddress($ipAddress); + if ($encoded !== false) { + $ipAddresses[] = $encoded; + } + } + if (count($ipAddresses)) { + $altName = array_merge($altName, $ipAddresses); + } + } + + if (!empty($altName)) { + $this->setExtension('id-ce-subjectAltName', $altName); + } + + if ($this->caFlag) { + $keyUsage = $this->getExtension('id-ce-keyUsage'); + if (!$keyUsage) { + $keyUsage = array(); + } + + $this->setExtension('id-ce-keyUsage', + array_values(array_unique(array_merge($keyUsage, array('cRLSign', 'keyCertSign')))) + ); + + $basicConstraints = $this->getExtension('id-ce-basicConstraints'); + if (!$basicConstraints) { + $basicConstraints = array(); + } + + $this->setExtension('id-ce-basicConstraints', + array_unique(array_merge(array('cA' => true), $basicConstraints)), true); + + if (!isset($subject->currentKeyIdentifier)) { + $this->setExtension('id-ce-subjectKeyIdentifier', base64_encode($this->computeKeyIdentifier($this->currentCert)), false, false); + } + } + + // resync $this->signatureSubject + // save $tbsCertificate in case there are any File_ASN1_Element objects in it + $tbsCertificate = $this->currentCert['tbsCertificate']; + $this->loadX509($this->saveX509($this->currentCert)); + + $result = $this->_sign($issuer->privateKey, $signatureAlgorithm); + $result['tbsCertificate'] = $tbsCertificate; + + $this->currentCert = $currentCert; + $this->signatureSubject = $signatureSubject; + + return $result; + } + + /** + * Sign a CSR + * + * @access public + * @return Mixed + */ + function signCSR($signatureAlgorithm = 'sha1WithRSAEncryption') + { + if (!is_object($this->privateKey) || empty($this->dn)) { + return false; + } + + $origPublicKey = $this->publicKey; + $class = get_class($this->privateKey); + $this->publicKey = new $class(); + $this->publicKey->loadKey($this->privateKey->getPublicKey()); + $this->publicKey->setPublicKey(); + if (!($publicKey = $this->_formatSubjectPublicKey())) { + return false; + } + $this->publicKey = $origPublicKey; + + $currentCert = isset($this->currentCert) ? $this->currentCert : null; + $signatureSubject = isset($this->signatureSubject) ? $this->signatureSubject: null; + + if (isset($this->currentCert) && is_array($this->currentCert) && isset($this->currentCert['certificationRequestInfo'])) { + $this->currentCert['signatureAlgorithm']['algorithm'] = $signatureAlgorithm; + if (!empty($this->dn)) { + $this->currentCert['certificationRequestInfo']['subject'] = $this->dn; + } + $this->currentCert['certificationRequestInfo']['subjectPKInfo'] = $publicKey; + } else { + $this->currentCert = array( + 'certificationRequestInfo' => + array( + 'version' => 'v1', + 'subject' => $this->dn, + 'subjectPKInfo' => $publicKey + ), + 'signatureAlgorithm' => array('algorithm' => $signatureAlgorithm), + 'signature' => false // this is going to be overwritten later + ); + } + + // resync $this->signatureSubject + // save $certificationRequestInfo in case there are any File_ASN1_Element objects in it + $certificationRequestInfo = $this->currentCert['certificationRequestInfo']; + $this->loadCSR($this->saveCSR($this->currentCert)); + + $result = $this->_sign($this->privateKey, $signatureAlgorithm); + $result['certificationRequestInfo'] = $certificationRequestInfo; + + $this->currentCert = $currentCert; + $this->signatureSubject = $signatureSubject; + + return $result; + } + + /** + * Sign a CRL + * + * $issuer's private key needs to be loaded. + * + * @param File_X509 $issuer + * @param File_X509 $crl + * @param String $signatureAlgorithm optional + * @access public + * @return Mixed + */ + function signCRL($issuer, $crl, $signatureAlgorithm = 'sha1WithRSAEncryption') + { + if (!is_object($issuer->privateKey) || empty($issuer->dn)) { + return false; + } + + $currentCert = isset($this->currentCert) ? $this->currentCert : null; + $signatureSubject = isset($this->signatureSubject) ? $this->signatureSubject : null; + $thisUpdate = !empty($this->startDate) ? $this->startDate : @date('D, d M y H:i:s O'); + + if (isset($crl->currentCert) && is_array($crl->currentCert) && isset($crl->currentCert['tbsCertList'])) { + $this->currentCert = $crl->currentCert; + $this->currentCert['tbsCertList']['signature']['algorithm'] = $signatureAlgorithm; + $this->currentCert['signatureAlgorithm']['algorithm'] = $signatureAlgorithm; + } else { + $this->currentCert = array( + 'tbsCertList' => + array( + 'version' => 'v2', + 'signature' => array('algorithm' => $signatureAlgorithm), + 'issuer' => false, // this is going to be overwritten later + 'thisUpdate' => array('generalTime' => $thisUpdate) // $this->setStartDate() + ), + 'signatureAlgorithm' => array('algorithm' => $signatureAlgorithm), + 'signature' => false // this is going to be overwritten later + ); + } + + $tbsCertList = &$this->currentCert['tbsCertList']; + $tbsCertList['issuer'] = $issuer->dn; + $tbsCertList['thisUpdate'] = array('generalTime' => $thisUpdate); + + if (!empty($this->endDate)) { + $tbsCertList['nextUpdate'] = array('generalTime' => $this->endDate); // $this->setEndDate() + } else { + unset($tbsCertList['nextUpdate']); + } + + if (!empty($this->serialNumber)) { + $crlNumber = $this->serialNumber; + } else { + $crlNumber = $this->getExtension('id-ce-cRLNumber'); + $crlNumber = $crlNumber !== false ? $crlNumber->add(new Math_BigInteger(1)) : null; + } + + $this->removeExtension('id-ce-authorityKeyIdentifier'); + $this->removeExtension('id-ce-issuerAltName'); + + // Be sure version >= v2 if some extension found. + $version = isset($tbsCertList['version']) ? $tbsCertList['version'] : 0; + if (!$version) { + if (!empty($tbsCertList['crlExtensions'])) { + $version = 1; // v2. + } elseif (!empty($tbsCertList['revokedCertificates'])) { + foreach ($tbsCertList['revokedCertificates'] as $cert) { + if (!empty($cert['crlEntryExtensions'])) { + $version = 1; // v2. + } + } + } + + if ($version) { + $tbsCertList['version'] = $version; + } + } + + // Store additional extensions. + if (!empty($tbsCertList['version'])) { // At least v2. + if (!empty($crlNumber)) { + $this->setExtension('id-ce-cRLNumber', $crlNumber); + } + + if (isset($issuer->currentKeyIdentifier)) { + $this->setExtension('id-ce-authorityKeyIdentifier', array( + //'authorityCertIssuer' => array( + // array( + // 'directoryName' => $issuer->dn + // ) + //), + 'keyIdentifier' => $issuer->currentKeyIdentifier + ) + ); + //$extensions = &$tbsCertList['crlExtensions']; + //if (isset($issuer->serialNumber)) { + // $extensions[count($extensions) - 1]['authorityCertSerialNumber'] = $issuer->serialNumber; + //} + //unset($extensions); + } + + $issuerAltName = $this->getExtension('id-ce-subjectAltName', $issuer->currentCert); + + if ($issuerAltName !== false) { + $this->setExtension('id-ce-issuerAltName', $issuerAltName); + } + } + + if (empty($tbsCertList['revokedCertificates'])) { + unset($tbsCertList['revokedCertificates']); + } + + unset($tbsCertList); + + // resync $this->signatureSubject + // save $tbsCertList in case there are any File_ASN1_Element objects in it + $tbsCertList = $this->currentCert['tbsCertList']; + $this->loadCRL($this->saveCRL($this->currentCert)); + + $result = $this->_sign($issuer->privateKey, $signatureAlgorithm); + $result['tbsCertList'] = $tbsCertList; + + $this->currentCert = $currentCert; + $this->signatureSubject = $signatureSubject; + + return $result; + } + + /** + * X.509 certificate signing helper function. + * + * @param Object $key + * @param File_X509 $subject + * @param String $signatureAlgorithm + * @access public + * @return Mixed + */ + function _sign($key, $signatureAlgorithm) + { + switch (strtolower(get_class($key))) { + case 'crypt_rsa': + switch ($signatureAlgorithm) { + case 'md2WithRSAEncryption': + case 'md5WithRSAEncryption': + case 'sha1WithRSAEncryption': + case 'sha224WithRSAEncryption': + case 'sha256WithRSAEncryption': + case 'sha384WithRSAEncryption': + case 'sha512WithRSAEncryption': + $key->setHash(preg_replace('#WithRSAEncryption$#', '', $signatureAlgorithm)); + $key->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1); + + $this->currentCert['signature'] = base64_encode("\0" . $key->sign($this->signatureSubject)); + return $this->currentCert; + } + default: + return false; + } + } + + /** + * Set certificate start date + * + * @param String $date + * @access public + */ + function setStartDate($date) + { + $this->startDate = @date('D, d M y H:i:s O', @strtotime($date)); + } + + /** + * Set certificate end date + * + * @param String $date + * @access public + */ + function setEndDate($date) + { + /* + To indicate that a certificate has no well-defined expiration date, + the notAfter SHOULD be assigned the GeneralizedTime value of + 99991231235959Z. + + -- http://tools.ietf.org/html/rfc5280#section-4.1.2.5 + */ + if (strtolower($date) == 'lifetime') { + $temp = '99991231235959Z'; + $asn1 = new File_ASN1(); + $temp = chr(FILE_ASN1_TYPE_GENERALIZED_TIME) . $asn1->_encodeLength(strlen($temp)) . $temp; + $this->endDate = new File_ASN1_Element($temp); + } else { + $this->endDate = @date('D, d M y H:i:s O', @strtotime($date)); + } + } + + /** + * Set Serial Number + * + * @param String $serial + * @param $base optional + * @access public + */ + function setSerialNumber($serial, $base = -256) + { + $this->serialNumber = new Math_BigInteger($serial, $base); + } + + /** + * Turns the certificate into a certificate authority + * + * @access public + */ + function makeCA() + { + $this->caFlag = true; + } + + /** + * Get a reference to a subarray + * + * @param array $root + * @param String $path absolute path with / as component separator + * @param Boolean $create optional + * @access private + * @return array item ref or false + */ + function &_subArray(&$root, $path, $create = false) + { + $false = false; + + if (!is_array($root)) { + return $false; + } + + foreach (explode('/', $path) as $i) { + if (!is_array($root)) { + return $false; + } + + if (!isset($root[$i])) { + if (!$create) { + return $false; + } + + $root[$i] = array(); + } + + $root = &$root[$i]; + } + + return $root; + } + + /** + * Get a reference to an extension subarray + * + * @param array $root + * @param String $path optional absolute path with / as component separator + * @param Boolean $create optional + * @access private + * @return array ref or false + */ + function &_extensions(&$root, $path = null, $create = false) + { + if (!isset($root)) { + $root = $this->currentCert; + } + + switch (true) { + case !empty($path): + case !is_array($root): + break; + case isset($root['tbsCertificate']): + $path = 'tbsCertificate/extensions'; + break; + case isset($root['tbsCertList']): + $path = 'tbsCertList/crlExtensions'; + break; + case isset($root['certificationRequestInfo']): + $pth = 'certificationRequestInfo/attributes'; + $attributes = &$this->_subArray($root, $pth, $create); + + if (is_array($attributes)) { + foreach ($attributes as $key => $value) { + if ($value['type'] == 'pkcs-9-at-extensionRequest') { + $path = "$pth/$key/value/0"; + break 2; + } + } + if ($create) { + $key = count($attributes); + $attributes[] = array('type' => 'pkcs-9-at-extensionRequest', 'value' => array()); + $path = "$pth/$key/value/0"; + } + } + break; + } + + $extensions = &$this->_subArray($root, $path, $create); + + if (!is_array($extensions)) { + $false = false; + return $false; + } + + return $extensions; + } + + /** + * Remove an Extension + * + * @param String $id + * @param String $path optional + * @access private + * @return Boolean + */ + function _removeExtension($id, $path = null) + { + $extensions = &$this->_extensions($this->currentCert, $path); + + if (!is_array($extensions)) { + return false; + } + + $result = false; + foreach ($extensions as $key => $value) { + if ($value['extnId'] == $id) { + unset($extensions[$key]); + $result = true; + } + } + + $extensions = array_values($extensions); + return $result; + } + + /** + * Get an Extension + * + * Returns the extension if it exists and false if not + * + * @param String $id + * @param Array $cert optional + * @param String $path optional + * @access private + * @return Mixed + */ + function _getExtension($id, $cert = null, $path = null) + { + $extensions = $this->_extensions($cert, $path); + + if (!is_array($extensions)) { + return false; + } + + foreach ($extensions as $key => $value) { + if ($value['extnId'] == $id) { + return $value['extnValue']; + } + } + + return false; + } + + /** + * Returns a list of all extensions in use + * + * @param array $cert optional + * @param String $path optional + * @access private + * @return Array + */ + function _getExtensions($cert = null, $path = null) + { + $exts = $this->_extensions($cert, $path); + $extensions = array(); + + if (is_array($exts)) { + foreach ($exts as $extension) { + $extensions[] = $extension['extnId']; + } + } + + return $extensions; + } + + /** + * Set an Extension + * + * @param String $id + * @param Mixed $value + * @param Boolean $critical optional + * @param Boolean $replace optional + * @param String $path optional + * @access private + * @return Boolean + */ + function _setExtension($id, $value, $critical = false, $replace = true, $path = null) + { + $extensions = &$this->_extensions($this->currentCert, $path, true); + + if (!is_array($extensions)) { + return false; + } + + $newext = array('extnId' => $id, 'critical' => $critical, 'extnValue' => $value); + + foreach ($extensions as $key => $value) { + if ($value['extnId'] == $id) { + if (!$replace) { + return false; + } + + $extensions[$key] = $newext; + return true; + } + } + + $extensions[] = $newext; + return true; + } + + /** + * Remove a certificate, CSR or CRL Extension + * + * @param String $id + * @access public + * @return Boolean + */ + function removeExtension($id) + { + return $this->_removeExtension($id); + } + + /** + * Get a certificate, CSR or CRL Extension + * + * Returns the extension if it exists and false if not + * + * @param String $id + * @param Array $cert optional + * @access public + * @return Mixed + */ + function getExtension($id, $cert = null) + { + return $this->_getExtension($id, $cert); + } + + /** + * Returns a list of all extensions in use in certificate, CSR or CRL + * + * @param array $cert optional + * @access public + * @return Array + */ + function getExtensions($cert = null) + { + return $this->_getExtensions($cert); + } + + /** + * Set a certificate, CSR or CRL Extension + * + * @param String $id + * @param Mixed $value + * @param Boolean $critical optional + * @param Boolean $replace optional + * @access public + * @return Boolean + */ + function setExtension($id, $value, $critical = false, $replace = true) + { + return $this->_setExtension($id, $value, $critical, $replace); + } + + /** + * Remove a CSR attribute. + * + * @param String $id + * @param Integer $disposition optional + * @access public + * @return Boolean + */ + function removeAttribute($id, $disposition = FILE_X509_ATTR_ALL) + { + $attributes = &$this->_subArray($this->currentCert, 'certificationRequestInfo/attributes'); + + if (!is_array($attributes)) { + return false; + } + + $result = false; + foreach ($attributes as $key => $attribute) { + if ($attribute['type'] == $id) { + $n = count($attribute['value']); + switch (true) { + case $disposition == FILE_X509_ATTR_APPEND: + case $disposition == FILE_X509_ATTR_REPLACE: + return false; + case $disposition >= $n: + $disposition -= $n; + break; + case $disposition == FILE_X509_ATTR_ALL: + case $n == 1: + unset($attributes[$key]); + $result = true; + break; + default: + unset($attributes[$key]['value'][$disposition]); + $attributes[$key]['value'] = array_values($attributes[$key]['value']); + $result = true; + break; + } + if ($result && $disposition != FILE_X509_ATTR_ALL) { + break; + } + } + } + + $attributes = array_values($attributes); + return $result; + } + + /** + * Get a CSR attribute + * + * Returns the attribute if it exists and false if not + * + * @param String $id + * @param Integer $disposition optional + * @param Array $csr optional + * @access public + * @return Mixed + */ + function getAttribute($id, $disposition = FILE_X509_ATTR_ALL, $csr = null) + { + if (empty($csr)) { + $csr = $this->currentCert; + } + + $attributes = $this->_subArray($csr, 'certificationRequestInfo/attributes'); + + if (!is_array($attributes)) { + return false; + } + + foreach ($attributes as $key => $attribute) { + if ($attribute['type'] == $id) { + $n = count($attribute['value']); + switch (true) { + case $disposition == FILE_X509_ATTR_APPEND: + case $disposition == FILE_X509_ATTR_REPLACE: + return false; + case $disposition == FILE_X509_ATTR_ALL: + return $attribute['value']; + case $disposition >= $n: + $disposition -= $n; + break; + default: + return $attribute['value'][$disposition]; + } + } + } + + return false; + } + + /** + * Returns a list of all CSR attributes in use + * + * @param array $csr optional + * @access public + * @return Array + */ + function getAttributes($csr = null) + { + if (empty($csr)) { + $csr = $this->currentCert; + } + + $attributes = $this->_subArray($csr, 'certificationRequestInfo/attributes'); + $attrs = array(); + + if (is_array($attributes)) { + foreach ($attributes as $attribute) { + $attrs[] = $attribute['type']; + } + } + + return $attrs; + } + + /** + * Set a CSR attribute + * + * @param String $id + * @param Mixed $value + * @param Boolean $disposition optional + * @access public + * @return Boolean + */ + function setAttribute($id, $value, $disposition = FILE_X509_ATTR_ALL) + { + $attributes = &$this->_subArray($this->currentCert, 'certificationRequestInfo/attributes', true); + + if (!is_array($attributes)) { + return false; + } + + switch ($disposition) { + case FILE_X509_ATTR_REPLACE: + $disposition = FILE_X509_ATTR_APPEND; + case FILE_X509_ATTR_ALL: + $this->removeAttribute($id); + break; + } + + foreach ($attributes as $key => $attribute) { + if ($attribute['type'] == $id) { + $n = count($attribute['value']); + switch (true) { + case $disposition == FILE_X509_ATTR_APPEND: + $last = $key; + break; + case $disposition >= $n; + $disposition -= $n; + break; + default: + $attributes[$key]['value'][$disposition] = $value; + return true; + } + } + } + + switch (true) { + case $disposition >= 0: + return false; + case isset($last): + $attributes[$last]['value'][] = $value; + break; + default: + $attributes[] = array('type' => $id, 'value' => $disposition == FILE_X509_ATTR_ALL ? $value: array($value)); + break; + } + + return true; + } + + /** + * Sets the subject key identifier + * + * This is used by the id-ce-authorityKeyIdentifier and the id-ce-subjectKeyIdentifier extensions. + * + * @param String $value + * @access public + */ + function setKeyIdentifier($value) + { + if (empty($value)) { + unset($this->currentKeyIdentifier); + } else { + $this->currentKeyIdentifier = base64_encode($value); + } + } + + /** + * Compute a public key identifier. + * + * Although key identifiers may be set to any unique value, this function + * computes key identifiers from public key according to the two + * recommended methods (4.2.1.2 RFC 3280). + * Highly polymorphic: try to accept all possible forms of key: + * - Key object + * - File_X509 object with public or private key defined + * - Certificate or CSR array + * - File_ASN1_Element object + * - PEM or DER string + * + * @param Mixed $key optional + * @param Integer $method optional + * @access public + * @return String binary key identifier + */ + function computeKeyIdentifier($key = null, $method = 1) + { + if (is_null($key)) { + $key = $this; + } + + switch (true) { + case is_string($key): + break; + case is_array($key) && isset($key['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey']): + return $this->computeKeyIdentifier($key['tbsCertificate']['subjectPublicKeyInfo']['subjectPublicKey'], $method); + case is_array($key) && isset($key['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey']): + return $this->computeKeyIdentifier($key['certificationRequestInfo']['subjectPKInfo']['subjectPublicKey'], $method); + case !is_object($key): + return false; + case strtolower(get_class($key)) == 'file_asn1_element': + // Assume the element is a bitstring-packed key. + $asn1 = new File_ASN1(); + $decoded = $asn1->decodeBER($key->element); + if (empty($decoded)) { + return false; + } + $raw = $asn1->asn1map($decoded[0], array('type' => FILE_ASN1_TYPE_BIT_STRING)); + if (empty($raw)) { + return false; + } + $raw = base64_decode($raw); + // If the key is private, compute identifier from its corresponding public key. + if (!class_exists('Crypt_RSA')) { + include_once 'Crypt/RSA.php'; + } + $key = new Crypt_RSA(); + if (!$key->loadKey($raw)) { + return false; // Not an unencrypted RSA key. + } + if ($key->getPrivateKey() !== false) { // If private. + return $this->computeKeyIdentifier($key, $method); + } + $key = $raw; // Is a public key. + break; + case strtolower(get_class($key)) == 'file_x509': + if (isset($key->publicKey)) { + return $this->computeKeyIdentifier($key->publicKey, $method); + } + if (isset($key->privateKey)) { + return $this->computeKeyIdentifier($key->privateKey, $method); + } + if (isset($key->currentCert['tbsCertificate']) || isset($key->currentCert['certificationRequestInfo'])) { + return $this->computeKeyIdentifier($key->currentCert, $method); + } + return false; + default: // Should be a key object (i.e.: Crypt_RSA). + $key = $key->getPublicKey(CRYPT_RSA_PUBLIC_FORMAT_PKCS1_RAW); + break; + } + + // If in PEM format, convert to binary. + $key = $this->_extractBER($key); + + // Now we have the key string: compute its sha-1 sum. + if (!class_exists('Crypt_Hash')) { + include_once 'Crypt/Hash.php'; + } + $hash = new Crypt_Hash('sha1'); + $hash = $hash->hash($key); + + if ($method == 2) { + $hash = substr($hash, -8); + $hash[0] = chr((ord($hash[0]) & 0x0F) | 0x40); + } + + return $hash; + } + + /** + * Format a public key as appropriate + * + * @access private + * @return Array + */ + function _formatSubjectPublicKey() + { + if (!isset($this->publicKey) || !is_object($this->publicKey)) { + return false; + } + + switch (strtolower(get_class($this->publicKey))) { + case 'crypt_rsa': + // the following two return statements do the same thing. i dunno.. i just prefer the later for some reason. + // the former is a good example of how to do fuzzing on the public key + //return new File_ASN1_Element(base64_decode(preg_replace('#-.+-|[\r\n]#', '', $this->publicKey->getPublicKey()))); + return array( + 'algorithm' => array('algorithm' => 'rsaEncryption'), + 'subjectPublicKey' => $this->publicKey->getPublicKey(CRYPT_RSA_PUBLIC_FORMAT_PKCS1_RAW) + ); + default: + return false; + } + } + + /** + * Set the domain name's which the cert is to be valid for + * + * @access public + * @return Array + */ + function setDomain() + { + $this->domains = func_get_args(); + $this->removeDNProp('id-at-commonName'); + $this->setDNProp('id-at-commonName', $this->domains[0]); + } + + /** + * Set the IP Addresses's which the cert is to be valid for + * + * @access public + * @param String $ipAddress optional + */ + function setIPAddress() + { + $this->ipAddresses = func_get_args(); + /* + if (!isset($this->domains)) { + $this->removeDNProp('id-at-commonName'); + $this->setDNProp('id-at-commonName', $this->ipAddresses[0]); + } + */ + } + + /** + * Helper function to build domain array + * + * @access private + * @param String $domain + * @return Array + */ + function _dnsName($domain) + { + return array('dNSName' => $domain); + } + + /** + * Helper function to build IP Address array + * + * (IPv6 is not currently supported) + * + * @access private + * @param String $address + * @return Array + */ + function _iPAddress($address) + { + return array('iPAddress' => $address); + } + + /** + * Get the index of a revoked certificate. + * + * @param array $rclist + * @param String $serial + * @param Boolean $create optional + * @access private + * @return Integer or false + */ + function _revokedCertificate(&$rclist, $serial, $create = false) + { + $serial = new Math_BigInteger($serial); + + foreach ($rclist as $i => $rc) { + if (!($serial->compare($rc['userCertificate']))) { + return $i; + } + } + + if (!$create) { + return false; + } + + $i = count($rclist); + $rclist[] = array('userCertificate' => $serial, + 'revocationDate' => array('generalTime' => @date('D, d M y H:i:s O'))); + return $i; + } + + /** + * Revoke a certificate. + * + * @param String $serial + * @param String $date optional + * @access public + * @return Boolean + */ + function revoke($serial, $date = null) + { + if (isset($this->currentCert['tbsCertList'])) { + if (is_array($rclist = &$this->_subArray($this->currentCert, 'tbsCertList/revokedCertificates', true))) { + if ($this->_revokedCertificate($rclist, $serial) === false) { // If not yet revoked + if (($i = $this->_revokedCertificate($rclist, $serial, true)) !== false) { + + if (!empty($date)) { + $rclist[$i]['revocationDate'] = array('generalTime' => $date); + } + + return true; + } + } + } + } + + return false; + } + + /** + * Unrevoke a certificate. + * + * @param String $serial + * @access public + * @return Boolean + */ + function unrevoke($serial) + { + if (is_array($rclist = &$this->_subArray($this->currentCert, 'tbsCertList/revokedCertificates'))) { + if (($i = $this->_revokedCertificate($rclist, $serial)) !== false) { + unset($rclist[$i]); + $rclist = array_values($rclist); + return true; + } + } + + return false; + } + + /** + * Get a revoked certificate. + * + * @param String $serial + * @access public + * @return Mixed + */ + function getRevoked($serial) + { + if (is_array($rclist = $this->_subArray($this->currentCert, 'tbsCertList/revokedCertificates'))) { + if (($i = $this->_revokedCertificate($rclist, $serial)) !== false) { + return $rclist[$i]; + } + } + + return false; + } + + /** + * List revoked certificates + * + * @param array $crl optional + * @access public + * @return array + */ + function listRevoked($crl = null) + { + if (!isset($crl)) { + $crl = $this->currentCert; + } + + if (!isset($crl['tbsCertList'])) { + return false; + } + + $result = array(); + + if (is_array($rclist = $this->_subArray($crl, 'tbsCertList/revokedCertificates'))) { + foreach ($rclist as $rc) { + $result[] = $rc['userCertificate']->toString(); + } + } + + return $result; + } + + /** + * Remove a Revoked Certificate Extension + * + * @param String $serial + * @param String $id + * @access public + * @return Boolean + */ + function removeRevokedCertificateExtension($serial, $id) + { + if (is_array($rclist = &$this->_subArray($this->currentCert, 'tbsCertList/revokedCertificates'))) { + if (($i = $this->_revokedCertificate($rclist, $serial)) !== false) { + return $this->_removeExtension($id, "tbsCertList/revokedCertificates/$i/crlEntryExtensions"); + } + } + + return false; + } + + /** + * Get a Revoked Certificate Extension + * + * Returns the extension if it exists and false if not + * + * @param String $serial + * @param String $id + * @param Array $crl optional + * @access public + * @return Mixed + */ + function getRevokedCertificateExtension($serial, $id, $crl = null) + { + if (!isset($crl)) { + $crl = $this->currentCert; + } + + if (is_array($rclist = $this->_subArray($crl, 'tbsCertList/revokedCertificates'))) { + if (($i = $this->_revokedCertificate($rclist, $serial)) !== false) { + return $this->_getExtension($id, $crl, "tbsCertList/revokedCertificates/$i/crlEntryExtensions"); + } + } + + return false; + } + + /** + * Returns a list of all extensions in use for a given revoked certificate + * + * @param String $serial + * @param array $crl optional + * @access public + * @return Array + */ + function getRevokedCertificateExtensions($serial, $crl = null) + { + if (!isset($crl)) { + $crl = $this->currentCert; + } + + if (is_array($rclist = $this->_subArray($crl, 'tbsCertList/revokedCertificates'))) { + if (($i = $this->_revokedCertificate($rclist, $serial)) !== false) { + return $this->_getExtensions($crl, "tbsCertList/revokedCertificates/$i/crlEntryExtensions"); + } + } + + return false; + } + + /** + * Set a Revoked Certificate Extension + * + * @param String $serial + * @param String $id + * @param Mixed $value + * @param Boolean $critical optional + * @param Boolean $replace optional + * @access public + * @return Boolean + */ + function setRevokedCertificateExtension($serial, $id, $value, $critical = false, $replace = true) + { + if (isset($this->currentCert['tbsCertList'])) { + if (is_array($rclist = &$this->_subArray($this->currentCert, 'tbsCertList/revokedCertificates', true))) { + if (($i = $this->_revokedCertificate($rclist, $serial, true)) !== false) { + return $this->_setExtension($id, $value, $critical, $replace, "tbsCertList/revokedCertificates/$i/crlEntryExtensions"); + } + } + } + + return false; + } + + /** + * Extract raw BER from Base64 encoding + * + * @access private + * @param String $str + * @return String + */ + function _extractBER($str) + { + /* X.509 certs are assumed to be base64 encoded but sometimes they'll have additional things in them + * above and beyond the ceritificate. + * ie. some may have the following preceding the -----BEGIN CERTIFICATE----- line: + * + * Bag Attributes + * localKeyID: 01 00 00 00 + * subject=/O=organization/OU=org unit/CN=common name + * issuer=/O=organization/CN=common name + */ + $temp = preg_replace('#.*?^-+[^-]+-+#ms', '', $str, 1); + // remove the -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- stuff + $temp = preg_replace('#-+[^-]+-+#', '', $temp); + // remove new lines + $temp = str_replace(array("\r", "\n", ' '), '', $temp); + $temp = preg_match('#^[a-zA-Z\d/+]*={0,2}$#', $temp) ? base64_decode($temp) : false; + return $temp != false ? $temp : $str; + } +} diff --git a/lam/lib/3rdParty/phpseclib/Math/BigInteger.php b/lam/lib/3rdParty/phpseclib/Math/BigInteger.php new file mode 100644 index 00000000..1b4ea675 --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/Math/BigInteger.php @@ -0,0 +1,3706 @@ +> and << cannot be used, nor can the modulo operator %, + * which only supports integers. Although this fact will slow this library down, the fact that such a high + * base is being used should more than compensate. + * + * When PHP version 6 is officially released, we'll be able to use 64-bit integers. This should, once again, + * allow bitwise operators, and will increase the maximum possible base to 2**31 (or 2**62 for addition / + * subtraction). + * + * Numbers are stored in {@link http://en.wikipedia.org/wiki/Endianness little endian} format. ie. + * (new Math_BigInteger(pow(2, 26)))->value = array(0, 1) + * + * Useful resources are as follows: + * + * - {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf Handbook of Applied Cryptography (HAC)} + * - {@link http://math.libtomcrypt.com/files/tommath.pdf Multi-Precision Math (MPM)} + * - Java's BigInteger classes. See /j2se/src/share/classes/java/math in jdk-1_5_0-src-jrl.zip + * + * Here's an example of how to use this library: + * + * add($b); + * + * echo $c->toString(); // outputs 5 + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Math + * @package Math_BigInteger + * @author Jim Wigginton + * @copyright MMVI Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @link http://pear.php.net/package/Math_BigInteger + */ + +/**#@+ + * Reduction constants + * + * @access private + * @see Math_BigInteger::_reduce() + */ +/** + * @see Math_BigInteger::_montgomery() + * @see Math_BigInteger::_prepMontgomery() + */ +define('MATH_BIGINTEGER_MONTGOMERY', 0); +/** + * @see Math_BigInteger::_barrett() + */ +define('MATH_BIGINTEGER_BARRETT', 1); +/** + * @see Math_BigInteger::_mod2() + */ +define('MATH_BIGINTEGER_POWEROF2', 2); +/** + * @see Math_BigInteger::_remainder() + */ +define('MATH_BIGINTEGER_CLASSIC', 3); +/** + * @see Math_BigInteger::__clone() + */ +define('MATH_BIGINTEGER_NONE', 4); +/**#@-*/ + +/**#@+ + * Array constants + * + * Rather than create a thousands and thousands of new Math_BigInteger objects in repeated function calls to add() and + * multiply() or whatever, we'll just work directly on arrays, taking them in as parameters and returning them. + * + * @access private + */ +/** + * $result[MATH_BIGINTEGER_VALUE] contains the value. + */ +define('MATH_BIGINTEGER_VALUE', 0); +/** + * $result[MATH_BIGINTEGER_SIGN] contains the sign. + */ +define('MATH_BIGINTEGER_SIGN', 1); +/**#@-*/ + +/**#@+ + * @access private + * @see Math_BigInteger::_montgomery() + * @see Math_BigInteger::_barrett() + */ +/** + * Cache constants + * + * $cache[MATH_BIGINTEGER_VARIABLE] tells us whether or not the cached data is still valid. + */ +define('MATH_BIGINTEGER_VARIABLE', 0); +/** + * $cache[MATH_BIGINTEGER_DATA] contains the cached data. + */ +define('MATH_BIGINTEGER_DATA', 1); +/**#@-*/ + +/**#@+ + * Mode constants. + * + * @access private + * @see Math_BigInteger::Math_BigInteger() + */ +/** + * To use the pure-PHP implementation + */ +define('MATH_BIGINTEGER_MODE_INTERNAL', 1); +/** + * To use the BCMath library + * + * (if enabled; otherwise, the internal implementation will be used) + */ +define('MATH_BIGINTEGER_MODE_BCMATH', 2); +/** + * To use the GMP library + * + * (if present; otherwise, either the BCMath or the internal implementation will be used) + */ +define('MATH_BIGINTEGER_MODE_GMP', 3); +/**#@-*/ + +/** + * Karatsuba Cutoff + * + * At what point do we switch between Karatsuba multiplication and schoolbook long multiplication? + * + * @access private + */ +define('MATH_BIGINTEGER_KARATSUBA_CUTOFF', 25); + +/** + * Pure-PHP arbitrary precision integer arithmetic library. Supports base-2, base-10, base-16, and base-256 + * numbers. + * + * @package Math_BigInteger + * @author Jim Wigginton + * @version 1.0.0RC4 + * @access public + */ +class Math_BigInteger +{ + /** + * Holds the BigInteger's value. + * + * @var Array + * @access private + */ + var $value; + + /** + * Holds the BigInteger's magnitude. + * + * @var Boolean + * @access private + */ + var $is_negative = false; + + /** + * Random number generator function + * + * @see setRandomGenerator() + * @access private + */ + var $generator = 'mt_rand'; + + /** + * Precision + * + * @see setPrecision() + * @access private + */ + var $precision = -1; + + /** + * Precision Bitmask + * + * @see setPrecision() + * @access private + */ + var $bitmask = false; + + /** + * Mode independent value used for serialization. + * + * If the bcmath or gmp extensions are installed $this->value will be a non-serializable resource, hence the need for + * a variable that'll be serializable regardless of whether or not extensions are being used. Unlike $this->value, + * however, $this->hex is only calculated when $this->__sleep() is called. + * + * @see __sleep() + * @see __wakeup() + * @var String + * @access private + */ + var $hex; + + /** + * Converts base-2, base-10, base-16, and binary strings (base-256) to BigIntegers. + * + * If the second parameter - $base - is negative, then it will be assumed that the number's are encoded using + * two's compliment. The sole exception to this is -10, which is treated the same as 10 is. + * + * Here's an example: + * + * <?php + * include('Math/BigInteger.php'); + * + * $a = new Math_BigInteger('0x32', 16); // 50 in base-16 + * + * echo $a->toString(); // outputs 50 + * ?> + * + * + * @param optional $x base-10 number or base-$base number if $base set. + * @param optional integer $base + * @return Math_BigInteger + * @access public + */ + function Math_BigInteger($x = 0, $base = 10) + { + if ( !defined('MATH_BIGINTEGER_MODE') ) { + switch (true) { + case extension_loaded('gmp'): + define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_GMP); + break; + case extension_loaded('bcmath'): + define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_BCMATH); + break; + default: + define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_INTERNAL); + } + } + + if (function_exists('openssl_public_encrypt') && !defined('MATH_BIGINTEGER_OPENSSL_DISABLE') && !defined('MATH_BIGINTEGER_OPENSSL_ENABLED')) { + // some versions of XAMPP have mismatched versions of OpenSSL which causes it not to work + ob_start(); + phpinfo(); + $content = ob_get_contents(); + ob_end_clean(); + + preg_match_all('#OpenSSL (Header|Library) Version(.*)#im', $content, $matches); + + $versions = array(); + if (!empty($matches[1])) { + for ($i = 0; $i < count($matches[1]); $i++) { + $versions[$matches[1][$i]] = trim(str_replace('=>', '', strip_tags($matches[2][$i]))); + } + } + + // it doesn't appear that OpenSSL versions were reported upon until PHP 5.3+ + switch (true) { + case !isset($versions['Header']): + case !isset($versions['Library']): + case $versions['Header'] == $versions['Library']: + define('MATH_BIGINTEGER_OPENSSL_ENABLED', true); + break; + default: + define('MATH_BIGINTEGER_OPENSSL_DISABLE', true); + } + } + + if (!defined('PHP_INT_SIZE')) { + define('PHP_INT_SIZE', 4); + } + + if (!defined('MATH_BIGINTEGER_BASE') && MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_INTERNAL) { + switch (PHP_INT_SIZE) { + case 8: // use 64-bit integers if int size is 8 bytes + define('MATH_BIGINTEGER_BASE', 31); + define('MATH_BIGINTEGER_BASE_FULL', 0x80000000); + define('MATH_BIGINTEGER_MAX_DIGIT', 0x7FFFFFFF); + define('MATH_BIGINTEGER_MSB', 0x40000000); + // 10**9 is the closest we can get to 2**31 without passing it + define('MATH_BIGINTEGER_MAX10', 1000000000); + define('MATH_BIGINTEGER_MAX10_LEN', 9); + // the largest digit that may be used in addition / subtraction + define('MATH_BIGINTEGER_MAX_DIGIT2', pow(2, 62)); + break; + //case 4: // use 64-bit floats if int size is 4 bytes + default: + define('MATH_BIGINTEGER_BASE', 26); + define('MATH_BIGINTEGER_BASE_FULL', 0x4000000); + define('MATH_BIGINTEGER_MAX_DIGIT', 0x3FFFFFF); + define('MATH_BIGINTEGER_MSB', 0x2000000); + // 10**7 is the closest to 2**26 without passing it + define('MATH_BIGINTEGER_MAX10', 10000000); + define('MATH_BIGINTEGER_MAX10_LEN', 7); + // the largest digit that may be used in addition / subtraction + // we do pow(2, 52) instead of using 4503599627370496 directly because some + // PHP installations will truncate 4503599627370496. + define('MATH_BIGINTEGER_MAX_DIGIT2', pow(2, 52)); + } + } + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + if (is_resource($x) && get_resource_type($x) == 'GMP integer') { + $this->value = $x; + return; + } + $this->value = gmp_init(0); + break; + case MATH_BIGINTEGER_MODE_BCMATH: + $this->value = '0'; + break; + default: + $this->value = array(); + } + + // '0' counts as empty() but when the base is 256 '0' is equal to ord('0') or 48 + // '0' is the only value like this per http://php.net/empty + if (empty($x) && (abs($base) != 256 || $x !== '0')) { + return; + } + + switch ($base) { + case -256: + if (ord($x[0]) & 0x80) { + $x = ~$x; + $this->is_negative = true; + } + case 256: + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $sign = $this->is_negative ? '-' : ''; + $this->value = gmp_init($sign . '0x' . bin2hex($x)); + break; + case MATH_BIGINTEGER_MODE_BCMATH: + // round $len to the nearest 4 (thanks, DavidMJ!) + $len = (strlen($x) + 3) & 0xFFFFFFFC; + + $x = str_pad($x, $len, chr(0), STR_PAD_LEFT); + + for ($i = 0; $i < $len; $i+= 4) { + $this->value = bcmul($this->value, '4294967296', 0); // 4294967296 == 2**32 + $this->value = bcadd($this->value, 0x1000000 * ord($x[$i]) + ((ord($x[$i + 1]) << 16) | (ord($x[$i + 2]) << 8) | ord($x[$i + 3])), 0); + } + + if ($this->is_negative) { + $this->value = '-' . $this->value; + } + + break; + // converts a base-2**8 (big endian / msb) number to base-2**26 (little endian / lsb) + default: + while (strlen($x)) { + $this->value[] = $this->_bytes2int($this->_base256_rshift($x, MATH_BIGINTEGER_BASE)); + } + } + + if ($this->is_negative) { + if (MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_INTERNAL) { + $this->is_negative = false; + } + $temp = $this->add(new Math_BigInteger('-1')); + $this->value = $temp->value; + } + break; + case 16: + case -16: + if ($base > 0 && $x[0] == '-') { + $this->is_negative = true; + $x = substr($x, 1); + } + + $x = preg_replace('#^(?:0x)?([A-Fa-f0-9]*).*#', '$1', $x); + + $is_negative = false; + if ($base < 0 && hexdec($x[0]) >= 8) { + $this->is_negative = $is_negative = true; + $x = bin2hex(~pack('H*', $x)); + } + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = $this->is_negative ? '-0x' . $x : '0x' . $x; + $this->value = gmp_init($temp); + $this->is_negative = false; + break; + case MATH_BIGINTEGER_MODE_BCMATH: + $x = ( strlen($x) & 1 ) ? '0' . $x : $x; + $temp = new Math_BigInteger(pack('H*', $x), 256); + $this->value = $this->is_negative ? '-' . $temp->value : $temp->value; + $this->is_negative = false; + break; + default: + $x = ( strlen($x) & 1 ) ? '0' . $x : $x; + $temp = new Math_BigInteger(pack('H*', $x), 256); + $this->value = $temp->value; + } + + if ($is_negative) { + $temp = $this->add(new Math_BigInteger('-1')); + $this->value = $temp->value; + } + break; + case 10: + case -10: + // (?value = gmp_init($x); + break; + case MATH_BIGINTEGER_MODE_BCMATH: + // explicitly casting $x to a string is necessary, here, since doing $x[0] on -1 yields different + // results then doing it on '-1' does (modInverse does $x[0]) + $this->value = $x === '-' ? '0' : (string) $x; + break; + default: + $temp = new Math_BigInteger(); + + $multiplier = new Math_BigInteger(); + $multiplier->value = array(MATH_BIGINTEGER_MAX10); + + if ($x[0] == '-') { + $this->is_negative = true; + $x = substr($x, 1); + } + + $x = str_pad($x, strlen($x) + ((MATH_BIGINTEGER_MAX10_LEN - 1) * strlen($x)) % MATH_BIGINTEGER_MAX10_LEN, 0, STR_PAD_LEFT); + while (strlen($x)) { + $temp = $temp->multiply($multiplier); + $temp = $temp->add(new Math_BigInteger($this->_int2bytes(substr($x, 0, MATH_BIGINTEGER_MAX10_LEN)), 256)); + $x = substr($x, MATH_BIGINTEGER_MAX10_LEN); + } + + $this->value = $temp->value; + } + break; + case 2: // base-2 support originally implemented by Lluis Pamies - thanks! + case -2: + if ($base > 0 && $x[0] == '-') { + $this->is_negative = true; + $x = substr($x, 1); + } + + $x = preg_replace('#^([01]*).*#', '$1', $x); + $x = str_pad($x, strlen($x) + (3 * strlen($x)) % 4, 0, STR_PAD_LEFT); + + $str = '0x'; + while (strlen($x)) { + $part = substr($x, 0, 4); + $str.= dechex(bindec($part)); + $x = substr($x, 4); + } + + if ($this->is_negative) { + $str = '-' . $str; + } + + $temp = new Math_BigInteger($str, 8 * $base); // ie. either -16 or +16 + $this->value = $temp->value; + $this->is_negative = $temp->is_negative; + + break; + default: + // base not supported, so we'll let $this == 0 + } + } + + /** + * Converts a BigInteger to a byte string (eg. base-256). + * + * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're + * saved as two's compliment. + * + * Here's an example: + * + * toBytes(); // outputs chr(65) + * ?> + * + * + * @param Boolean $twos_compliment + * @return String + * @access public + * @internal Converts a base-2**26 number to base-2**8 + */ + function toBytes($twos_compliment = false) + { + if ($twos_compliment) { + $comparison = $this->compare(new Math_BigInteger()); + if ($comparison == 0) { + return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : ''; + } + + $temp = $comparison < 0 ? $this->add(new Math_BigInteger(1)) : $this->copy(); + $bytes = $temp->toBytes(); + + if (empty($bytes)) { // eg. if the number we're trying to convert is -1 + $bytes = chr(0); + } + + if (ord($bytes[0]) & 0x80) { + $bytes = chr(0) . $bytes; + } + + return $comparison < 0 ? ~$bytes : $bytes; + } + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + if (gmp_cmp($this->value, gmp_init(0)) == 0) { + return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : ''; + } + + $temp = gmp_strval(gmp_abs($this->value), 16); + $temp = ( strlen($temp) & 1 ) ? '0' . $temp : $temp; + $temp = pack('H*', $temp); + + return $this->precision > 0 ? + substr(str_pad($temp, $this->precision >> 3, chr(0), STR_PAD_LEFT), -($this->precision >> 3)) : + ltrim($temp, chr(0)); + case MATH_BIGINTEGER_MODE_BCMATH: + if ($this->value === '0') { + return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : ''; + } + + $value = ''; + $current = $this->value; + + if ($current[0] == '-') { + $current = substr($current, 1); + } + + while (bccomp($current, '0', 0) > 0) { + $temp = bcmod($current, '16777216'); + $value = chr($temp >> 16) . chr($temp >> 8) . chr($temp) . $value; + $current = bcdiv($current, '16777216', 0); + } + + return $this->precision > 0 ? + substr(str_pad($value, $this->precision >> 3, chr(0), STR_PAD_LEFT), -($this->precision >> 3)) : + ltrim($value, chr(0)); + } + + if (!count($this->value)) { + return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : ''; + } + $result = $this->_int2bytes($this->value[count($this->value) - 1]); + + $temp = $this->copy(); + + for ($i = count($temp->value) - 2; $i >= 0; --$i) { + $temp->_base256_lshift($result, MATH_BIGINTEGER_BASE); + $result = $result | str_pad($temp->_int2bytes($temp->value[$i]), strlen($result), chr(0), STR_PAD_LEFT); + } + + return $this->precision > 0 ? + str_pad(substr($result, -(($this->precision + 7) >> 3)), ($this->precision + 7) >> 3, chr(0), STR_PAD_LEFT) : + $result; + } + + /** + * Converts a BigInteger to a hex string (eg. base-16)). + * + * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're + * saved as two's compliment. + * + * Here's an example: + * + * toHex(); // outputs '41' + * ?> + * + * + * @param Boolean $twos_compliment + * @return String + * @access public + * @internal Converts a base-2**26 number to base-2**8 + */ + function toHex($twos_compliment = false) + { + return bin2hex($this->toBytes($twos_compliment)); + } + + /** + * Converts a BigInteger to a bit string (eg. base-2). + * + * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're + * saved as two's compliment. + * + * Here's an example: + * + * toBits(); // outputs '1000001' + * ?> + * + * + * @param Boolean $twos_compliment + * @return String + * @access public + * @internal Converts a base-2**26 number to base-2**2 + */ + function toBits($twos_compliment = false) + { + $hex = $this->toHex($twos_compliment); + $bits = ''; + for ($i = strlen($hex) - 8, $start = strlen($hex) & 7; $i >= $start; $i-=8) { + $bits = str_pad(decbin(hexdec(substr($hex, $i, 8))), 32, '0', STR_PAD_LEFT) . $bits; + } + if ($start) { // hexdec('') == 0 + $bits = str_pad(decbin(hexdec(substr($hex, 0, $start))), 8, '0', STR_PAD_LEFT) . $bits; + } + $result = $this->precision > 0 ? substr($bits, -$this->precision) : ltrim($bits, '0'); + + if ($twos_compliment && $this->compare(new Math_BigInteger()) > 0 && $this->precision <= 0) { + return '0' . $result; + } + + return $result; + } + + /** + * Converts a BigInteger to a base-10 number. + * + * Here's an example: + * + * toString(); // outputs 50 + * ?> + * + * + * @return String + * @access public + * @internal Converts a base-2**26 number to base-10**7 (which is pretty much base-10) + */ + function toString() + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + return gmp_strval($this->value); + case MATH_BIGINTEGER_MODE_BCMATH: + if ($this->value === '0') { + return '0'; + } + + return ltrim($this->value, '0'); + } + + if (!count($this->value)) { + return '0'; + } + + $temp = $this->copy(); + $temp->is_negative = false; + + $divisor = new Math_BigInteger(); + $divisor->value = array(MATH_BIGINTEGER_MAX10); + $result = ''; + while (count($temp->value)) { + list($temp, $mod) = $temp->divide($divisor); + $result = str_pad(isset($mod->value[0]) ? $mod->value[0] : '', MATH_BIGINTEGER_MAX10_LEN, '0', STR_PAD_LEFT) . $result; + } + $result = ltrim($result, '0'); + if (empty($result)) { + $result = '0'; + } + + if ($this->is_negative) { + $result = '-' . $result; + } + + return $result; + } + + /** + * Copy an object + * + * PHP5 passes objects by reference while PHP4 passes by value. As such, we need a function to guarantee + * that all objects are passed by value, when appropriate. More information can be found here: + * + * {@link http://php.net/language.oop5.basic#51624} + * + * @access public + * @see __clone() + * @return Math_BigInteger + */ + function copy() + { + $temp = new Math_BigInteger(); + $temp->value = $this->value; + $temp->is_negative = $this->is_negative; + $temp->generator = $this->generator; + $temp->precision = $this->precision; + $temp->bitmask = $this->bitmask; + return $temp; + } + + /** + * __toString() magic method + * + * Will be called, automatically, if you're supporting just PHP5. If you're supporting PHP4, you'll need to call + * toString(). + * + * @access public + * @internal Implemented per a suggestion by Techie-Michael - thanks! + */ + function __toString() + { + return $this->toString(); + } + + /** + * __clone() magic method + * + * Although you can call Math_BigInteger::__toString() directly in PHP5, you cannot call Math_BigInteger::__clone() + * directly in PHP5. You can in PHP4 since it's not a magic method, but in PHP5, you have to call it by using the PHP5 + * only syntax of $y = clone $x. As such, if you're trying to write an application that works on both PHP4 and PHP5, + * call Math_BigInteger::copy(), instead. + * + * @access public + * @see copy() + * @return Math_BigInteger + */ + function __clone() + { + return $this->copy(); + } + + /** + * __sleep() magic method + * + * Will be called, automatically, when serialize() is called on a Math_BigInteger object. + * + * @see __wakeup() + * @access public + */ + function __sleep() + { + $this->hex = $this->toHex(true); + $vars = array('hex'); + if ($this->generator != 'mt_rand') { + $vars[] = 'generator'; + } + if ($this->precision > 0) { + $vars[] = 'precision'; + } + return $vars; + + } + + /** + * __wakeup() magic method + * + * Will be called, automatically, when unserialize() is called on a Math_BigInteger object. + * + * @see __sleep() + * @access public + */ + function __wakeup() + { + $temp = new Math_BigInteger($this->hex, -16); + $this->value = $temp->value; + $this->is_negative = $temp->is_negative; + $this->setRandomGenerator($this->generator); + if ($this->precision > 0) { + // recalculate $this->bitmask + $this->setPrecision($this->precision); + } + } + + /** + * Adds two BigIntegers. + * + * Here's an example: + * + * add($b); + * + * echo $c->toString(); // outputs 30 + * ?> + * + * + * @param Math_BigInteger $y + * @return Math_BigInteger + * @access public + * @internal Performs base-2**52 addition + */ + function add($y) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_add($this->value, $y->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $temp = new Math_BigInteger(); + $temp->value = bcadd($this->value, $y->value, 0); + + return $this->_normalize($temp); + } + + $temp = $this->_add($this->value, $this->is_negative, $y->value, $y->is_negative); + + $result = new Math_BigInteger(); + $result->value = $temp[MATH_BIGINTEGER_VALUE]; + $result->is_negative = $temp[MATH_BIGINTEGER_SIGN]; + + return $this->_normalize($result); + } + + /** + * Performs addition. + * + * @param Array $x_value + * @param Boolean $x_negative + * @param Array $y_value + * @param Boolean $y_negative + * @return Array + * @access private + */ + function _add($x_value, $x_negative, $y_value, $y_negative) + { + $x_size = count($x_value); + $y_size = count($y_value); + + if ($x_size == 0) { + return array( + MATH_BIGINTEGER_VALUE => $y_value, + MATH_BIGINTEGER_SIGN => $y_negative + ); + } else if ($y_size == 0) { + return array( + MATH_BIGINTEGER_VALUE => $x_value, + MATH_BIGINTEGER_SIGN => $x_negative + ); + } + + // subtract, if appropriate + if ( $x_negative != $y_negative ) { + if ( $x_value == $y_value ) { + return array( + MATH_BIGINTEGER_VALUE => array(), + MATH_BIGINTEGER_SIGN => false + ); + } + + $temp = $this->_subtract($x_value, false, $y_value, false); + $temp[MATH_BIGINTEGER_SIGN] = $this->_compare($x_value, false, $y_value, false) > 0 ? + $x_negative : $y_negative; + + return $temp; + } + + if ($x_size < $y_size) { + $size = $x_size; + $value = $y_value; + } else { + $size = $y_size; + $value = $x_value; + } + + $value[] = 0; // just in case the carry adds an extra digit + + $carry = 0; + for ($i = 0, $j = 1; $j < $size; $i+=2, $j+=2) { + $sum = $x_value[$j] * MATH_BIGINTEGER_BASE_FULL + $x_value[$i] + $y_value[$j] * MATH_BIGINTEGER_BASE_FULL + $y_value[$i] + $carry; + $carry = $sum >= MATH_BIGINTEGER_MAX_DIGIT2; // eg. floor($sum / 2**52); only possible values (in any base) are 0 and 1 + $sum = $carry ? $sum - MATH_BIGINTEGER_MAX_DIGIT2 : $sum; + + $temp = (int) ($sum / MATH_BIGINTEGER_BASE_FULL); + + $value[$i] = (int) ($sum - MATH_BIGINTEGER_BASE_FULL * $temp); // eg. a faster alternative to fmod($sum, 0x4000000) + $value[$j] = $temp; + } + + if ($j == $size) { // ie. if $y_size is odd + $sum = $x_value[$i] + $y_value[$i] + $carry; + $carry = $sum >= MATH_BIGINTEGER_BASE_FULL; + $value[$i] = $carry ? $sum - MATH_BIGINTEGER_BASE_FULL : $sum; + ++$i; // ie. let $i = $j since we've just done $value[$i] + } + + if ($carry) { + for (; $value[$i] == MATH_BIGINTEGER_MAX_DIGIT; ++$i) { + $value[$i] = 0; + } + ++$value[$i]; + } + + return array( + MATH_BIGINTEGER_VALUE => $this->_trim($value), + MATH_BIGINTEGER_SIGN => $x_negative + ); + } + + /** + * Subtracts two BigIntegers. + * + * Here's an example: + * + * subtract($b); + * + * echo $c->toString(); // outputs -10 + * ?> + * + * + * @param Math_BigInteger $y + * @return Math_BigInteger + * @access public + * @internal Performs base-2**52 subtraction + */ + function subtract($y) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_sub($this->value, $y->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $temp = new Math_BigInteger(); + $temp->value = bcsub($this->value, $y->value, 0); + + return $this->_normalize($temp); + } + + $temp = $this->_subtract($this->value, $this->is_negative, $y->value, $y->is_negative); + + $result = new Math_BigInteger(); + $result->value = $temp[MATH_BIGINTEGER_VALUE]; + $result->is_negative = $temp[MATH_BIGINTEGER_SIGN]; + + return $this->_normalize($result); + } + + /** + * Performs subtraction. + * + * @param Array $x_value + * @param Boolean $x_negative + * @param Array $y_value + * @param Boolean $y_negative + * @return Array + * @access private + */ + function _subtract($x_value, $x_negative, $y_value, $y_negative) + { + $x_size = count($x_value); + $y_size = count($y_value); + + if ($x_size == 0) { + return array( + MATH_BIGINTEGER_VALUE => $y_value, + MATH_BIGINTEGER_SIGN => !$y_negative + ); + } else if ($y_size == 0) { + return array( + MATH_BIGINTEGER_VALUE => $x_value, + MATH_BIGINTEGER_SIGN => $x_negative + ); + } + + // add, if appropriate (ie. -$x - +$y or +$x - -$y) + if ( $x_negative != $y_negative ) { + $temp = $this->_add($x_value, false, $y_value, false); + $temp[MATH_BIGINTEGER_SIGN] = $x_negative; + + return $temp; + } + + $diff = $this->_compare($x_value, $x_negative, $y_value, $y_negative); + + if ( !$diff ) { + return array( + MATH_BIGINTEGER_VALUE => array(), + MATH_BIGINTEGER_SIGN => false + ); + } + + // switch $x and $y around, if appropriate. + if ( (!$x_negative && $diff < 0) || ($x_negative && $diff > 0) ) { + $temp = $x_value; + $x_value = $y_value; + $y_value = $temp; + + $x_negative = !$x_negative; + + $x_size = count($x_value); + $y_size = count($y_value); + } + + // at this point, $x_value should be at least as big as - if not bigger than - $y_value + + $carry = 0; + for ($i = 0, $j = 1; $j < $y_size; $i+=2, $j+=2) { + $sum = $x_value[$j] * MATH_BIGINTEGER_BASE_FULL + $x_value[$i] - $y_value[$j] * MATH_BIGINTEGER_BASE_FULL - $y_value[$i] - $carry; + $carry = $sum < 0; // eg. floor($sum / 2**52); only possible values (in any base) are 0 and 1 + $sum = $carry ? $sum + MATH_BIGINTEGER_MAX_DIGIT2 : $sum; + + $temp = (int) ($sum / MATH_BIGINTEGER_BASE_FULL); + + $x_value[$i] = (int) ($sum - MATH_BIGINTEGER_BASE_FULL * $temp); + $x_value[$j] = $temp; + } + + if ($j == $y_size) { // ie. if $y_size is odd + $sum = $x_value[$i] - $y_value[$i] - $carry; + $carry = $sum < 0; + $x_value[$i] = $carry ? $sum + MATH_BIGINTEGER_BASE_FULL : $sum; + ++$i; + } + + if ($carry) { + for (; !$x_value[$i]; ++$i) { + $x_value[$i] = MATH_BIGINTEGER_MAX_DIGIT; + } + --$x_value[$i]; + } + + return array( + MATH_BIGINTEGER_VALUE => $this->_trim($x_value), + MATH_BIGINTEGER_SIGN => $x_negative + ); + } + + /** + * Multiplies two BigIntegers + * + * Here's an example: + * + * multiply($b); + * + * echo $c->toString(); // outputs 200 + * ?> + * + * + * @param Math_BigInteger $x + * @return Math_BigInteger + * @access public + */ + function multiply($x) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_mul($this->value, $x->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $temp = new Math_BigInteger(); + $temp->value = bcmul($this->value, $x->value, 0); + + return $this->_normalize($temp); + } + + $temp = $this->_multiply($this->value, $this->is_negative, $x->value, $x->is_negative); + + $product = new Math_BigInteger(); + $product->value = $temp[MATH_BIGINTEGER_VALUE]; + $product->is_negative = $temp[MATH_BIGINTEGER_SIGN]; + + return $this->_normalize($product); + } + + /** + * Performs multiplication. + * + * @param Array $x_value + * @param Boolean $x_negative + * @param Array $y_value + * @param Boolean $y_negative + * @return Array + * @access private + */ + function _multiply($x_value, $x_negative, $y_value, $y_negative) + { + //if ( $x_value == $y_value ) { + // return array( + // MATH_BIGINTEGER_VALUE => $this->_square($x_value), + // MATH_BIGINTEGER_SIGN => $x_sign != $y_value + // ); + //} + + $x_length = count($x_value); + $y_length = count($y_value); + + if ( !$x_length || !$y_length ) { // a 0 is being multiplied + return array( + MATH_BIGINTEGER_VALUE => array(), + MATH_BIGINTEGER_SIGN => false + ); + } + + return array( + MATH_BIGINTEGER_VALUE => min($x_length, $y_length) < 2 * MATH_BIGINTEGER_KARATSUBA_CUTOFF ? + $this->_trim($this->_regularMultiply($x_value, $y_value)) : + $this->_trim($this->_karatsuba($x_value, $y_value)), + MATH_BIGINTEGER_SIGN => $x_negative != $y_negative + ); + } + + /** + * Performs long multiplication on two BigIntegers + * + * Modeled after 'multiply' in MutableBigInteger.java. + * + * @param Array $x_value + * @param Array $y_value + * @return Array + * @access private + */ + function _regularMultiply($x_value, $y_value) + { + $x_length = count($x_value); + $y_length = count($y_value); + + if ( !$x_length || !$y_length ) { // a 0 is being multiplied + return array(); + } + + if ( $x_length < $y_length ) { + $temp = $x_value; + $x_value = $y_value; + $y_value = $temp; + + $x_length = count($x_value); + $y_length = count($y_value); + } + + $product_value = $this->_array_repeat(0, $x_length + $y_length); + + // the following for loop could be removed if the for loop following it + // (the one with nested for loops) initially set $i to 0, but + // doing so would also make the result in one set of unnecessary adds, + // since on the outermost loops first pass, $product->value[$k] is going + // to always be 0 + + $carry = 0; + + for ($j = 0; $j < $x_length; ++$j) { // ie. $i = 0 + $temp = $x_value[$j] * $y_value[0] + $carry; // $product_value[$k] == 0 + $carry = (int) ($temp / MATH_BIGINTEGER_BASE_FULL); + $product_value[$j] = (int) ($temp - MATH_BIGINTEGER_BASE_FULL * $carry); + } + + $product_value[$j] = $carry; + + // the above for loop is what the previous comment was talking about. the + // following for loop is the "one with nested for loops" + for ($i = 1; $i < $y_length; ++$i) { + $carry = 0; + + for ($j = 0, $k = $i; $j < $x_length; ++$j, ++$k) { + $temp = $product_value[$k] + $x_value[$j] * $y_value[$i] + $carry; + $carry = (int) ($temp / MATH_BIGINTEGER_BASE_FULL); + $product_value[$k] = (int) ($temp - MATH_BIGINTEGER_BASE_FULL * $carry); + } + + $product_value[$k] = $carry; + } + + return $product_value; + } + + /** + * Performs Karatsuba multiplication on two BigIntegers + * + * See {@link http://en.wikipedia.org/wiki/Karatsuba_algorithm Karatsuba algorithm} and + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=120 MPM 5.2.3}. + * + * @param Array $x_value + * @param Array $y_value + * @return Array + * @access private + */ + function _karatsuba($x_value, $y_value) + { + $m = min(count($x_value) >> 1, count($y_value) >> 1); + + if ($m < MATH_BIGINTEGER_KARATSUBA_CUTOFF) { + return $this->_regularMultiply($x_value, $y_value); + } + + $x1 = array_slice($x_value, $m); + $x0 = array_slice($x_value, 0, $m); + $y1 = array_slice($y_value, $m); + $y0 = array_slice($y_value, 0, $m); + + $z2 = $this->_karatsuba($x1, $y1); + $z0 = $this->_karatsuba($x0, $y0); + + $z1 = $this->_add($x1, false, $x0, false); + $temp = $this->_add($y1, false, $y0, false); + $z1 = $this->_karatsuba($z1[MATH_BIGINTEGER_VALUE], $temp[MATH_BIGINTEGER_VALUE]); + $temp = $this->_add($z2, false, $z0, false); + $z1 = $this->_subtract($z1, false, $temp[MATH_BIGINTEGER_VALUE], false); + + $z2 = array_merge(array_fill(0, 2 * $m, 0), $z2); + $z1[MATH_BIGINTEGER_VALUE] = array_merge(array_fill(0, $m, 0), $z1[MATH_BIGINTEGER_VALUE]); + + $xy = $this->_add($z2, false, $z1[MATH_BIGINTEGER_VALUE], $z1[MATH_BIGINTEGER_SIGN]); + $xy = $this->_add($xy[MATH_BIGINTEGER_VALUE], $xy[MATH_BIGINTEGER_SIGN], $z0, false); + + return $xy[MATH_BIGINTEGER_VALUE]; + } + + /** + * Performs squaring + * + * @param Array $x + * @return Array + * @access private + */ + function _square($x = false) + { + return count($x) < 2 * MATH_BIGINTEGER_KARATSUBA_CUTOFF ? + $this->_trim($this->_baseSquare($x)) : + $this->_trim($this->_karatsubaSquare($x)); + } + + /** + * Performs traditional squaring on two BigIntegers + * + * Squaring can be done faster than multiplying a number by itself can be. See + * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=7 HAC 14.2.4} / + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=141 MPM 5.3} for more information. + * + * @param Array $value + * @return Array + * @access private + */ + function _baseSquare($value) + { + if ( empty($value) ) { + return array(); + } + $square_value = $this->_array_repeat(0, 2 * count($value)); + + for ($i = 0, $max_index = count($value) - 1; $i <= $max_index; ++$i) { + $i2 = $i << 1; + + $temp = $square_value[$i2] + $value[$i] * $value[$i]; + $carry = (int) ($temp / MATH_BIGINTEGER_BASE_FULL); + $square_value[$i2] = (int) ($temp - MATH_BIGINTEGER_BASE_FULL * $carry); + + // note how we start from $i+1 instead of 0 as we do in multiplication. + for ($j = $i + 1, $k = $i2 + 1; $j <= $max_index; ++$j, ++$k) { + $temp = $square_value[$k] + 2 * $value[$j] * $value[$i] + $carry; + $carry = (int) ($temp / MATH_BIGINTEGER_BASE_FULL); + $square_value[$k] = (int) ($temp - MATH_BIGINTEGER_BASE_FULL * $carry); + } + + // the following line can yield values larger 2**15. at this point, PHP should switch + // over to floats. + $square_value[$i + $max_index + 1] = $carry; + } + + return $square_value; + } + + /** + * Performs Karatsuba "squaring" on two BigIntegers + * + * See {@link http://en.wikipedia.org/wiki/Karatsuba_algorithm Karatsuba algorithm} and + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=151 MPM 5.3.4}. + * + * @param Array $value + * @return Array + * @access private + */ + function _karatsubaSquare($value) + { + $m = count($value) >> 1; + + if ($m < MATH_BIGINTEGER_KARATSUBA_CUTOFF) { + return $this->_baseSquare($value); + } + + $x1 = array_slice($value, $m); + $x0 = array_slice($value, 0, $m); + + $z2 = $this->_karatsubaSquare($x1); + $z0 = $this->_karatsubaSquare($x0); + + $z1 = $this->_add($x1, false, $x0, false); + $z1 = $this->_karatsubaSquare($z1[MATH_BIGINTEGER_VALUE]); + $temp = $this->_add($z2, false, $z0, false); + $z1 = $this->_subtract($z1, false, $temp[MATH_BIGINTEGER_VALUE], false); + + $z2 = array_merge(array_fill(0, 2 * $m, 0), $z2); + $z1[MATH_BIGINTEGER_VALUE] = array_merge(array_fill(0, $m, 0), $z1[MATH_BIGINTEGER_VALUE]); + + $xx = $this->_add($z2, false, $z1[MATH_BIGINTEGER_VALUE], $z1[MATH_BIGINTEGER_SIGN]); + $xx = $this->_add($xx[MATH_BIGINTEGER_VALUE], $xx[MATH_BIGINTEGER_SIGN], $z0, false); + + return $xx[MATH_BIGINTEGER_VALUE]; + } + + /** + * Divides two BigIntegers. + * + * Returns an array whose first element contains the quotient and whose second element contains the + * "common residue". If the remainder would be positive, the "common residue" and the remainder are the + * same. If the remainder would be negative, the "common residue" is equal to the sum of the remainder + * and the divisor (basically, the "common residue" is the first positive modulo). + * + * Here's an example: + * + * divide($b); + * + * echo $quotient->toString(); // outputs 0 + * echo "\r\n"; + * echo $remainder->toString(); // outputs 10 + * ?> + * + * + * @param Math_BigInteger $y + * @return Array + * @access public + * @internal This function is based off of {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=9 HAC 14.20}. + */ + function divide($y) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $quotient = new Math_BigInteger(); + $remainder = new Math_BigInteger(); + + list($quotient->value, $remainder->value) = gmp_div_qr($this->value, $y->value); + + if (gmp_sign($remainder->value) < 0) { + $remainder->value = gmp_add($remainder->value, gmp_abs($y->value)); + } + + return array($this->_normalize($quotient), $this->_normalize($remainder)); + case MATH_BIGINTEGER_MODE_BCMATH: + $quotient = new Math_BigInteger(); + $remainder = new Math_BigInteger(); + + $quotient->value = bcdiv($this->value, $y->value, 0); + $remainder->value = bcmod($this->value, $y->value); + + if ($remainder->value[0] == '-') { + $remainder->value = bcadd($remainder->value, $y->value[0] == '-' ? substr($y->value, 1) : $y->value, 0); + } + + return array($this->_normalize($quotient), $this->_normalize($remainder)); + } + + if (count($y->value) == 1) { + list($q, $r) = $this->_divide_digit($this->value, $y->value[0]); + $quotient = new Math_BigInteger(); + $remainder = new Math_BigInteger(); + $quotient->value = $q; + $remainder->value = array($r); + $quotient->is_negative = $this->is_negative != $y->is_negative; + return array($this->_normalize($quotient), $this->_normalize($remainder)); + } + + static $zero; + if ( !isset($zero) ) { + $zero = new Math_BigInteger(); + } + + $x = $this->copy(); + $y = $y->copy(); + + $x_sign = $x->is_negative; + $y_sign = $y->is_negative; + + $x->is_negative = $y->is_negative = false; + + $diff = $x->compare($y); + + if ( !$diff ) { + $temp = new Math_BigInteger(); + $temp->value = array(1); + $temp->is_negative = $x_sign != $y_sign; + return array($this->_normalize($temp), $this->_normalize(new Math_BigInteger())); + } + + if ( $diff < 0 ) { + // if $x is negative, "add" $y. + if ( $x_sign ) { + $x = $y->subtract($x); + } + return array($this->_normalize(new Math_BigInteger()), $this->_normalize($x)); + } + + // normalize $x and $y as described in HAC 14.23 / 14.24 + $msb = $y->value[count($y->value) - 1]; + for ($shift = 0; !($msb & MATH_BIGINTEGER_MSB); ++$shift) { + $msb <<= 1; + } + $x->_lshift($shift); + $y->_lshift($shift); + $y_value = &$y->value; + + $x_max = count($x->value) - 1; + $y_max = count($y->value) - 1; + + $quotient = new Math_BigInteger(); + $quotient_value = &$quotient->value; + $quotient_value = $this->_array_repeat(0, $x_max - $y_max + 1); + + static $temp, $lhs, $rhs; + if (!isset($temp)) { + $temp = new Math_BigInteger(); + $lhs = new Math_BigInteger(); + $rhs = new Math_BigInteger(); + } + $temp_value = &$temp->value; + $rhs_value = &$rhs->value; + + // $temp = $y << ($x_max - $y_max-1) in base 2**26 + $temp_value = array_merge($this->_array_repeat(0, $x_max - $y_max), $y_value); + + while ( $x->compare($temp) >= 0 ) { + // calculate the "common residue" + ++$quotient_value[$x_max - $y_max]; + $x = $x->subtract($temp); + $x_max = count($x->value) - 1; + } + + for ($i = $x_max; $i >= $y_max + 1; --$i) { + $x_value = &$x->value; + $x_window = array( + isset($x_value[$i]) ? $x_value[$i] : 0, + isset($x_value[$i - 1]) ? $x_value[$i - 1] : 0, + isset($x_value[$i - 2]) ? $x_value[$i - 2] : 0 + ); + $y_window = array( + $y_value[$y_max], + ( $y_max > 0 ) ? $y_value[$y_max - 1] : 0 + ); + + $q_index = $i - $y_max - 1; + if ($x_window[0] == $y_window[0]) { + $quotient_value[$q_index] = MATH_BIGINTEGER_MAX_DIGIT; + } else { + $quotient_value[$q_index] = (int) ( + ($x_window[0] * MATH_BIGINTEGER_BASE_FULL + $x_window[1]) + / + $y_window[0] + ); + } + + $temp_value = array($y_window[1], $y_window[0]); + + $lhs->value = array($quotient_value[$q_index]); + $lhs = $lhs->multiply($temp); + + $rhs_value = array($x_window[2], $x_window[1], $x_window[0]); + + while ( $lhs->compare($rhs) > 0 ) { + --$quotient_value[$q_index]; + + $lhs->value = array($quotient_value[$q_index]); + $lhs = $lhs->multiply($temp); + } + + $adjust = $this->_array_repeat(0, $q_index); + $temp_value = array($quotient_value[$q_index]); + $temp = $temp->multiply($y); + $temp_value = &$temp->value; + $temp_value = array_merge($adjust, $temp_value); + + $x = $x->subtract($temp); + + if ($x->compare($zero) < 0) { + $temp_value = array_merge($adjust, $y_value); + $x = $x->add($temp); + + --$quotient_value[$q_index]; + } + + $x_max = count($x_value) - 1; + } + + // unnormalize the remainder + $x->_rshift($shift); + + $quotient->is_negative = $x_sign != $y_sign; + + // calculate the "common residue", if appropriate + if ( $x_sign ) { + $y->_rshift($shift); + $x = $y->subtract($x); + } + + return array($this->_normalize($quotient), $this->_normalize($x)); + } + + /** + * Divides a BigInteger by a regular integer + * + * abc / x = a00 / x + b0 / x + c / x + * + * @param Array $dividend + * @param Array $divisor + * @return Array + * @access private + */ + function _divide_digit($dividend, $divisor) + { + $carry = 0; + $result = array(); + + for ($i = count($dividend) - 1; $i >= 0; --$i) { + $temp = MATH_BIGINTEGER_BASE_FULL * $carry + $dividend[$i]; + $result[$i] = (int) ($temp / $divisor); + $carry = (int) ($temp - $divisor * $result[$i]); + } + + return array($result, $carry); + } + + /** + * Performs modular exponentiation. + * + * Here's an example: + * + * modPow($b, $c); + * + * echo $c->toString(); // outputs 10 + * ?> + * + * + * @param Math_BigInteger $e + * @param Math_BigInteger $n + * @return Math_BigInteger + * @access public + * @internal The most naive approach to modular exponentiation has very unreasonable requirements, and + * and although the approach involving repeated squaring does vastly better, it, too, is impractical + * for our purposes. The reason being that division - by far the most complicated and time-consuming + * of the basic operations (eg. +,-,*,/) - occurs multiple times within it. + * + * Modular reductions resolve this issue. Although an individual modular reduction takes more time + * then an individual division, when performed in succession (with the same modulo), they're a lot faster. + * + * The two most commonly used modular reductions are Barrett and Montgomery reduction. Montgomery reduction, + * although faster, only works when the gcd of the modulo and of the base being used is 1. In RSA, when the + * base is a power of two, the modulo - a product of two primes - is always going to have a gcd of 1 (because + * the product of two odd numbers is odd), but what about when RSA isn't used? + * + * In contrast, Barrett reduction has no such constraint. As such, some bigint implementations perform a + * Barrett reduction after every operation in the modpow function. Others perform Barrett reductions when the + * modulo is even and Montgomery reductions when the modulo is odd. BigInteger.java's modPow method, however, + * uses a trick involving the Chinese Remainder Theorem to factor the even modulo into two numbers - one odd and + * the other, a power of two - and recombine them, later. This is the method that this modPow function uses. + * {@link http://islab.oregonstate.edu/papers/j34monex.pdf Montgomery Reduction with Even Modulus} elaborates. + */ + function modPow($e, $n) + { + $n = $this->bitmask !== false && $this->bitmask->compare($n) < 0 ? $this->bitmask : $n->abs(); + + if ($e->compare(new Math_BigInteger()) < 0) { + $e = $e->abs(); + + $temp = $this->modInverse($n); + if ($temp === false) { + return false; + } + + return $this->_normalize($temp->modPow($e, $n)); + } + + if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_GMP ) { + $temp = new Math_BigInteger(); + $temp->value = gmp_powm($this->value, $e->value, $n->value); + + return $this->_normalize($temp); + } + + if ($this->compare(new Math_BigInteger()) < 0 || $this->compare($n) > 0) { + list(, $temp) = $this->divide($n); + return $temp->modPow($e, $n); + } + + if (defined('MATH_BIGINTEGER_OPENSSL_ENABLED')) { + $components = array( + 'modulus' => $n->toBytes(true), + 'publicExponent' => $e->toBytes(true) + ); + + $components = array( + 'modulus' => pack('Ca*a*', 2, $this->_encodeASN1Length(strlen($components['modulus'])), $components['modulus']), + 'publicExponent' => pack('Ca*a*', 2, $this->_encodeASN1Length(strlen($components['publicExponent'])), $components['publicExponent']) + ); + + $RSAPublicKey = pack('Ca*a*a*', + 48, $this->_encodeASN1Length(strlen($components['modulus']) + strlen($components['publicExponent'])), + $components['modulus'], $components['publicExponent'] + ); + + $rsaOID = pack('H*', '300d06092a864886f70d0101010500'); // hex version of MA0GCSqGSIb3DQEBAQUA + $RSAPublicKey = chr(0) . $RSAPublicKey; + $RSAPublicKey = chr(3) . $this->_encodeASN1Length(strlen($RSAPublicKey)) . $RSAPublicKey; + + $encapsulated = pack('Ca*a*', + 48, $this->_encodeASN1Length(strlen($rsaOID . $RSAPublicKey)), $rsaOID . $RSAPublicKey + ); + + $RSAPublicKey = "-----BEGIN PUBLIC KEY-----\r\n" . + chunk_split(base64_encode($encapsulated)) . + '-----END PUBLIC KEY-----'; + + $plaintext = str_pad($this->toBytes(), strlen($n->toBytes(true)) - 1, "\0", STR_PAD_LEFT); + + if (openssl_public_encrypt($plaintext, $result, $RSAPublicKey, OPENSSL_NO_PADDING)) { + return new Math_BigInteger($result, 256); + } + } + + if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_BCMATH ) { + $temp = new Math_BigInteger(); + $temp->value = bcpowmod($this->value, $e->value, $n->value, 0); + + return $this->_normalize($temp); + } + + if ( empty($e->value) ) { + $temp = new Math_BigInteger(); + $temp->value = array(1); + return $this->_normalize($temp); + } + + if ( $e->value == array(1) ) { + list(, $temp) = $this->divide($n); + return $this->_normalize($temp); + } + + if ( $e->value == array(2) ) { + $temp = new Math_BigInteger(); + $temp->value = $this->_square($this->value); + list(, $temp) = $temp->divide($n); + return $this->_normalize($temp); + } + + return $this->_normalize($this->_slidingWindow($e, $n, MATH_BIGINTEGER_BARRETT)); + + // is the modulo odd? + if ( $n->value[0] & 1 ) { + return $this->_normalize($this->_slidingWindow($e, $n, MATH_BIGINTEGER_MONTGOMERY)); + } + // if it's not, it's even + + // find the lowest set bit (eg. the max pow of 2 that divides $n) + for ($i = 0; $i < count($n->value); ++$i) { + if ( $n->value[$i] ) { + $temp = decbin($n->value[$i]); + $j = strlen($temp) - strrpos($temp, '1') - 1; + $j+= 26 * $i; + break; + } + } + // at this point, 2^$j * $n/(2^$j) == $n + + $mod1 = $n->copy(); + $mod1->_rshift($j); + $mod2 = new Math_BigInteger(); + $mod2->value = array(1); + $mod2->_lshift($j); + + $part1 = ( $mod1->value != array(1) ) ? $this->_slidingWindow($e, $mod1, MATH_BIGINTEGER_MONTGOMERY) : new Math_BigInteger(); + $part2 = $this->_slidingWindow($e, $mod2, MATH_BIGINTEGER_POWEROF2); + + $y1 = $mod2->modInverse($mod1); + $y2 = $mod1->modInverse($mod2); + + $result = $part1->multiply($mod2); + $result = $result->multiply($y1); + + $temp = $part2->multiply($mod1); + $temp = $temp->multiply($y2); + + $result = $result->add($temp); + list(, $result) = $result->divide($n); + + return $this->_normalize($result); + } + + /** + * Performs modular exponentiation. + * + * Alias for Math_BigInteger::modPow() + * + * @param Math_BigInteger $e + * @param Math_BigInteger $n + * @return Math_BigInteger + * @access public + */ + function powMod($e, $n) + { + return $this->modPow($e, $n); + } + + /** + * Sliding Window k-ary Modular Exponentiation + * + * Based on {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=27 HAC 14.85} / + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=210 MPM 7.7}. In a departure from those algorithims, + * however, this function performs a modular reduction after every multiplication and squaring operation. + * As such, this function has the same preconditions that the reductions being used do. + * + * @param Math_BigInteger $e + * @param Math_BigInteger $n + * @param Integer $mode + * @return Math_BigInteger + * @access private + */ + function _slidingWindow($e, $n, $mode) + { + static $window_ranges = array(7, 25, 81, 241, 673, 1793); // from BigInteger.java's oddModPow function + //static $window_ranges = array(0, 7, 36, 140, 450, 1303, 3529); // from MPM 7.3.1 + + $e_value = $e->value; + $e_length = count($e_value) - 1; + $e_bits = decbin($e_value[$e_length]); + for ($i = $e_length - 1; $i >= 0; --$i) { + $e_bits.= str_pad(decbin($e_value[$i]), MATH_BIGINTEGER_BASE, '0', STR_PAD_LEFT); + } + + $e_length = strlen($e_bits); + + // calculate the appropriate window size. + // $window_size == 3 if $window_ranges is between 25 and 81, for example. + for ($i = 0, $window_size = 1; $e_length > $window_ranges[$i] && $i < count($window_ranges); ++$window_size, ++$i); + + $n_value = $n->value; + + // precompute $this^0 through $this^$window_size + $powers = array(); + $powers[1] = $this->_prepareReduce($this->value, $n_value, $mode); + $powers[2] = $this->_squareReduce($powers[1], $n_value, $mode); + + // we do every other number since substr($e_bits, $i, $j+1) (see below) is supposed to end + // in a 1. ie. it's supposed to be odd. + $temp = 1 << ($window_size - 1); + for ($i = 1; $i < $temp; ++$i) { + $i2 = $i << 1; + $powers[$i2 + 1] = $this->_multiplyReduce($powers[$i2 - 1], $powers[2], $n_value, $mode); + } + + $result = array(1); + $result = $this->_prepareReduce($result, $n_value, $mode); + + for ($i = 0; $i < $e_length; ) { + if ( !$e_bits[$i] ) { + $result = $this->_squareReduce($result, $n_value, $mode); + ++$i; + } else { + for ($j = $window_size - 1; $j > 0; --$j) { + if ( !empty($e_bits[$i + $j]) ) { + break; + } + } + + for ($k = 0; $k <= $j; ++$k) {// eg. the length of substr($e_bits, $i, $j+1) + $result = $this->_squareReduce($result, $n_value, $mode); + } + + $result = $this->_multiplyReduce($result, $powers[bindec(substr($e_bits, $i, $j + 1))], $n_value, $mode); + + $i+=$j + 1; + } + } + + $temp = new Math_BigInteger(); + $temp->value = $this->_reduce($result, $n_value, $mode); + + return $temp; + } + + /** + * Modular reduction + * + * For most $modes this will return the remainder. + * + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $n + * @param Integer $mode + * @return Array + */ + function _reduce($x, $n, $mode) + { + switch ($mode) { + case MATH_BIGINTEGER_MONTGOMERY: + return $this->_montgomery($x, $n); + case MATH_BIGINTEGER_BARRETT: + return $this->_barrett($x, $n); + case MATH_BIGINTEGER_POWEROF2: + $lhs = new Math_BigInteger(); + $lhs->value = $x; + $rhs = new Math_BigInteger(); + $rhs->value = $n; + return $x->_mod2($n); + case MATH_BIGINTEGER_CLASSIC: + $lhs = new Math_BigInteger(); + $lhs->value = $x; + $rhs = new Math_BigInteger(); + $rhs->value = $n; + list(, $temp) = $lhs->divide($rhs); + return $temp->value; + case MATH_BIGINTEGER_NONE: + return $x; + default: + // an invalid $mode was provided + } + } + + /** + * Modular reduction preperation + * + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $n + * @param Integer $mode + * @return Array + */ + function _prepareReduce($x, $n, $mode) + { + if ($mode == MATH_BIGINTEGER_MONTGOMERY) { + return $this->_prepMontgomery($x, $n); + } + return $this->_reduce($x, $n, $mode); + } + + /** + * Modular multiply + * + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $y + * @param Array $n + * @param Integer $mode + * @return Array + */ + function _multiplyReduce($x, $y, $n, $mode) + { + if ($mode == MATH_BIGINTEGER_MONTGOMERY) { + return $this->_montgomeryMultiply($x, $y, $n); + } + $temp = $this->_multiply($x, false, $y, false); + return $this->_reduce($temp[MATH_BIGINTEGER_VALUE], $n, $mode); + } + + /** + * Modular square + * + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $n + * @param Integer $mode + * @return Array + */ + function _squareReduce($x, $n, $mode) + { + if ($mode == MATH_BIGINTEGER_MONTGOMERY) { + return $this->_montgomeryMultiply($x, $x, $n); + } + return $this->_reduce($this->_square($x), $n, $mode); + } + + /** + * Modulos for Powers of Two + * + * Calculates $x%$n, where $n = 2**$e, for some $e. Since this is basically the same as doing $x & ($n-1), + * we'll just use this function as a wrapper for doing that. + * + * @see _slidingWindow() + * @access private + * @param Math_BigInteger + * @return Math_BigInteger + */ + function _mod2($n) + { + $temp = new Math_BigInteger(); + $temp->value = array(1); + return $this->bitwise_and($n->subtract($temp)); + } + + /** + * Barrett Modular Reduction + * + * See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=14 HAC 14.3.3} / + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=165 MPM 6.2.5} for more information. Modified slightly, + * so as not to require negative numbers (initially, this script didn't support negative numbers). + * + * Employs "folding", as described at + * {@link http://www.cosic.esat.kuleuven.be/publications/thesis-149.pdf#page=66 thesis-149.pdf#page=66}. To quote from + * it, "the idea [behind folding] is to find a value x' such that x (mod m) = x' (mod m), with x' being smaller than x." + * + * Unfortunately, the "Barrett Reduction with Folding" algorithm described in thesis-149.pdf is not, as written, all that + * usable on account of (1) its not using reasonable radix points as discussed in + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=162 MPM 6.2.2} and (2) the fact that, even with reasonable + * radix points, it only works when there are an even number of digits in the denominator. The reason for (2) is that + * (x >> 1) + (x >> 1) != x / 2 + x / 2. If x is even, they're the same, but if x is odd, they're not. See the in-line + * comments for details. + * + * @see _slidingWindow() + * @access private + * @param Array $n + * @param Array $m + * @return Array + */ + function _barrett($n, $m) + { + static $cache = array( + MATH_BIGINTEGER_VARIABLE => array(), + MATH_BIGINTEGER_DATA => array() + ); + + $m_length = count($m); + + // if ($this->_compare($n, $this->_square($m)) >= 0) { + if (count($n) > 2 * $m_length) { + $lhs = new Math_BigInteger(); + $rhs = new Math_BigInteger(); + $lhs->value = $n; + $rhs->value = $m; + list(, $temp) = $lhs->divide($rhs); + return $temp->value; + } + + // if (m.length >> 1) + 2 <= m.length then m is too small and n can't be reduced + if ($m_length < 5) { + return $this->_regularBarrett($n, $m); + } + + // n = 2 * m.length + + if ( ($key = array_search($m, $cache[MATH_BIGINTEGER_VARIABLE])) === false ) { + $key = count($cache[MATH_BIGINTEGER_VARIABLE]); + $cache[MATH_BIGINTEGER_VARIABLE][] = $m; + + $lhs = new Math_BigInteger(); + $lhs_value = &$lhs->value; + $lhs_value = $this->_array_repeat(0, $m_length + ($m_length >> 1)); + $lhs_value[] = 1; + $rhs = new Math_BigInteger(); + $rhs->value = $m; + + list($u, $m1) = $lhs->divide($rhs); + $u = $u->value; + $m1 = $m1->value; + + $cache[MATH_BIGINTEGER_DATA][] = array( + 'u' => $u, // m.length >> 1 (technically (m.length >> 1) + 1) + 'm1'=> $m1 // m.length + ); + } else { + extract($cache[MATH_BIGINTEGER_DATA][$key]); + } + + $cutoff = $m_length + ($m_length >> 1); + $lsd = array_slice($n, 0, $cutoff); // m.length + (m.length >> 1) + $msd = array_slice($n, $cutoff); // m.length >> 1 + $lsd = $this->_trim($lsd); + $temp = $this->_multiply($msd, false, $m1, false); + $n = $this->_add($lsd, false, $temp[MATH_BIGINTEGER_VALUE], false); // m.length + (m.length >> 1) + 1 + + if ($m_length & 1) { + return $this->_regularBarrett($n[MATH_BIGINTEGER_VALUE], $m); + } + + // (m.length + (m.length >> 1) + 1) - (m.length - 1) == (m.length >> 1) + 2 + $temp = array_slice($n[MATH_BIGINTEGER_VALUE], $m_length - 1); + // if even: ((m.length >> 1) + 2) + (m.length >> 1) == m.length + 2 + // if odd: ((m.length >> 1) + 2) + (m.length >> 1) == (m.length - 1) + 2 == m.length + 1 + $temp = $this->_multiply($temp, false, $u, false); + // if even: (m.length + 2) - ((m.length >> 1) + 1) = m.length - (m.length >> 1) + 1 + // if odd: (m.length + 1) - ((m.length >> 1) + 1) = m.length - (m.length >> 1) + $temp = array_slice($temp[MATH_BIGINTEGER_VALUE], ($m_length >> 1) + 1); + // if even: (m.length - (m.length >> 1) + 1) + m.length = 2 * m.length - (m.length >> 1) + 1 + // if odd: (m.length - (m.length >> 1)) + m.length = 2 * m.length - (m.length >> 1) + $temp = $this->_multiply($temp, false, $m, false); + + // at this point, if m had an odd number of digits, we'd be subtracting a 2 * m.length - (m.length >> 1) digit + // number from a m.length + (m.length >> 1) + 1 digit number. ie. there'd be an extra digit and the while loop + // following this comment would loop a lot (hence our calling _regularBarrett() in that situation). + + $result = $this->_subtract($n[MATH_BIGINTEGER_VALUE], false, $temp[MATH_BIGINTEGER_VALUE], false); + + while ($this->_compare($result[MATH_BIGINTEGER_VALUE], $result[MATH_BIGINTEGER_SIGN], $m, false) >= 0) { + $result = $this->_subtract($result[MATH_BIGINTEGER_VALUE], $result[MATH_BIGINTEGER_SIGN], $m, false); + } + + return $result[MATH_BIGINTEGER_VALUE]; + } + + /** + * (Regular) Barrett Modular Reduction + * + * For numbers with more than four digits Math_BigInteger::_barrett() is faster. The difference between that and this + * is that this function does not fold the denominator into a smaller form. + * + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $n + * @return Array + */ + function _regularBarrett($x, $n) + { + static $cache = array( + MATH_BIGINTEGER_VARIABLE => array(), + MATH_BIGINTEGER_DATA => array() + ); + + $n_length = count($n); + + if (count($x) > 2 * $n_length) { + $lhs = new Math_BigInteger(); + $rhs = new Math_BigInteger(); + $lhs->value = $x; + $rhs->value = $n; + list(, $temp) = $lhs->divide($rhs); + return $temp->value; + } + + if ( ($key = array_search($n, $cache[MATH_BIGINTEGER_VARIABLE])) === false ) { + $key = count($cache[MATH_BIGINTEGER_VARIABLE]); + $cache[MATH_BIGINTEGER_VARIABLE][] = $n; + $lhs = new Math_BigInteger(); + $lhs_value = &$lhs->value; + $lhs_value = $this->_array_repeat(0, 2 * $n_length); + $lhs_value[] = 1; + $rhs = new Math_BigInteger(); + $rhs->value = $n; + list($temp, ) = $lhs->divide($rhs); // m.length + $cache[MATH_BIGINTEGER_DATA][] = $temp->value; + } + + // 2 * m.length - (m.length - 1) = m.length + 1 + $temp = array_slice($x, $n_length - 1); + // (m.length + 1) + m.length = 2 * m.length + 1 + $temp = $this->_multiply($temp, false, $cache[MATH_BIGINTEGER_DATA][$key], false); + // (2 * m.length + 1) - (m.length - 1) = m.length + 2 + $temp = array_slice($temp[MATH_BIGINTEGER_VALUE], $n_length + 1); + + // m.length + 1 + $result = array_slice($x, 0, $n_length + 1); + // m.length + 1 + $temp = $this->_multiplyLower($temp, false, $n, false, $n_length + 1); + // $temp == array_slice($temp->_multiply($temp, false, $n, false)->value, 0, $n_length + 1) + + if ($this->_compare($result, false, $temp[MATH_BIGINTEGER_VALUE], $temp[MATH_BIGINTEGER_SIGN]) < 0) { + $corrector_value = $this->_array_repeat(0, $n_length + 1); + $corrector_value[] = 1; + $result = $this->_add($result, false, $corrector_value, false); + $result = $result[MATH_BIGINTEGER_VALUE]; + } + + // at this point, we're subtracting a number with m.length + 1 digits from another number with m.length + 1 digits + $result = $this->_subtract($result, false, $temp[MATH_BIGINTEGER_VALUE], $temp[MATH_BIGINTEGER_SIGN]); + while ($this->_compare($result[MATH_BIGINTEGER_VALUE], $result[MATH_BIGINTEGER_SIGN], $n, false) > 0) { + $result = $this->_subtract($result[MATH_BIGINTEGER_VALUE], $result[MATH_BIGINTEGER_SIGN], $n, false); + } + + return $result[MATH_BIGINTEGER_VALUE]; + } + + /** + * Performs long multiplication up to $stop digits + * + * If you're going to be doing array_slice($product->value, 0, $stop), some cycles can be saved. + * + * @see _regularBarrett() + * @param Array $x_value + * @param Boolean $x_negative + * @param Array $y_value + * @param Boolean $y_negative + * @param Integer $stop + * @return Array + * @access private + */ + function _multiplyLower($x_value, $x_negative, $y_value, $y_negative, $stop) + { + $x_length = count($x_value); + $y_length = count($y_value); + + if ( !$x_length || !$y_length ) { // a 0 is being multiplied + return array( + MATH_BIGINTEGER_VALUE => array(), + MATH_BIGINTEGER_SIGN => false + ); + } + + if ( $x_length < $y_length ) { + $temp = $x_value; + $x_value = $y_value; + $y_value = $temp; + + $x_length = count($x_value); + $y_length = count($y_value); + } + + $product_value = $this->_array_repeat(0, $x_length + $y_length); + + // the following for loop could be removed if the for loop following it + // (the one with nested for loops) initially set $i to 0, but + // doing so would also make the result in one set of unnecessary adds, + // since on the outermost loops first pass, $product->value[$k] is going + // to always be 0 + + $carry = 0; + + for ($j = 0; $j < $x_length; ++$j) { // ie. $i = 0, $k = $i + $temp = $x_value[$j] * $y_value[0] + $carry; // $product_value[$k] == 0 + $carry = (int) ($temp / MATH_BIGINTEGER_BASE_FULL); + $product_value[$j] = (int) ($temp - MATH_BIGINTEGER_BASE_FULL * $carry); + } + + if ($j < $stop) { + $product_value[$j] = $carry; + } + + // the above for loop is what the previous comment was talking about. the + // following for loop is the "one with nested for loops" + + for ($i = 1; $i < $y_length; ++$i) { + $carry = 0; + + for ($j = 0, $k = $i; $j < $x_length && $k < $stop; ++$j, ++$k) { + $temp = $product_value[$k] + $x_value[$j] * $y_value[$i] + $carry; + $carry = (int) ($temp / MATH_BIGINTEGER_BASE_FULL); + $product_value[$k] = (int) ($temp - MATH_BIGINTEGER_BASE_FULL * $carry); + } + + if ($k < $stop) { + $product_value[$k] = $carry; + } + } + + return array( + MATH_BIGINTEGER_VALUE => $this->_trim($product_value), + MATH_BIGINTEGER_SIGN => $x_negative != $y_negative + ); + } + + /** + * Montgomery Modular Reduction + * + * ($x->_prepMontgomery($n))->_montgomery($n) yields $x % $n. + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=170 MPM 6.3} provides insights on how this can be + * improved upon (basically, by using the comba method). gcd($n, 2) must be equal to one for this function + * to work correctly. + * + * @see _prepMontgomery() + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $n + * @return Array + */ + function _montgomery($x, $n) + { + static $cache = array( + MATH_BIGINTEGER_VARIABLE => array(), + MATH_BIGINTEGER_DATA => array() + ); + + if ( ($key = array_search($n, $cache[MATH_BIGINTEGER_VARIABLE])) === false ) { + $key = count($cache[MATH_BIGINTEGER_VARIABLE]); + $cache[MATH_BIGINTEGER_VARIABLE][] = $x; + $cache[MATH_BIGINTEGER_DATA][] = $this->_modInverse67108864($n); + } + + $k = count($n); + + $result = array(MATH_BIGINTEGER_VALUE => $x); + + for ($i = 0; $i < $k; ++$i) { + $temp = $result[MATH_BIGINTEGER_VALUE][$i] * $cache[MATH_BIGINTEGER_DATA][$key]; + $temp = (int) ($temp - MATH_BIGINTEGER_BASE_FULL * ((int) ($temp / MATH_BIGINTEGER_BASE_FULL))); + $temp = $this->_regularMultiply(array($temp), $n); + $temp = array_merge($this->_array_repeat(0, $i), $temp); + $result = $this->_add($result[MATH_BIGINTEGER_VALUE], false, $temp, false); + } + + $result[MATH_BIGINTEGER_VALUE] = array_slice($result[MATH_BIGINTEGER_VALUE], $k); + + if ($this->_compare($result, false, $n, false) >= 0) { + $result = $this->_subtract($result[MATH_BIGINTEGER_VALUE], false, $n, false); + } + + return $result[MATH_BIGINTEGER_VALUE]; + } + + /** + * Montgomery Multiply + * + * Interleaves the montgomery reduction and long multiplication algorithms together as described in + * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=13 HAC 14.36} + * + * @see _prepMontgomery() + * @see _montgomery() + * @access private + * @param Array $x + * @param Array $y + * @param Array $m + * @return Array + */ + function _montgomeryMultiply($x, $y, $m) + { + $temp = $this->_multiply($x, false, $y, false); + return $this->_montgomery($temp[MATH_BIGINTEGER_VALUE], $m); + + static $cache = array( + MATH_BIGINTEGER_VARIABLE => array(), + MATH_BIGINTEGER_DATA => array() + ); + + if ( ($key = array_search($m, $cache[MATH_BIGINTEGER_VARIABLE])) === false ) { + $key = count($cache[MATH_BIGINTEGER_VARIABLE]); + $cache[MATH_BIGINTEGER_VARIABLE][] = $m; + $cache[MATH_BIGINTEGER_DATA][] = $this->_modInverse67108864($m); + } + + $n = max(count($x), count($y), count($m)); + $x = array_pad($x, $n, 0); + $y = array_pad($y, $n, 0); + $m = array_pad($m, $n, 0); + $a = array(MATH_BIGINTEGER_VALUE => $this->_array_repeat(0, $n + 1)); + for ($i = 0; $i < $n; ++$i) { + $temp = $a[MATH_BIGINTEGER_VALUE][0] + $x[$i] * $y[0]; + $temp = (int) ($temp - MATH_BIGINTEGER_BASE_FULL * ((int) ($temp / MATH_BIGINTEGER_BASE_FULL))); + $temp = $temp * $cache[MATH_BIGINTEGER_DATA][$key]; + $temp = (int) ($temp - MATH_BIGINTEGER_BASE_FULL * ((int) ($temp / MATH_BIGINTEGER_BASE_FULL))); + $temp = $this->_add($this->_regularMultiply(array($x[$i]), $y), false, $this->_regularMultiply(array($temp), $m), false); + $a = $this->_add($a[MATH_BIGINTEGER_VALUE], false, $temp[MATH_BIGINTEGER_VALUE], false); + $a[MATH_BIGINTEGER_VALUE] = array_slice($a[MATH_BIGINTEGER_VALUE], 1); + } + if ($this->_compare($a[MATH_BIGINTEGER_VALUE], false, $m, false) >= 0) { + $a = $this->_subtract($a[MATH_BIGINTEGER_VALUE], false, $m, false); + } + return $a[MATH_BIGINTEGER_VALUE]; + } + + /** + * Prepare a number for use in Montgomery Modular Reductions + * + * @see _montgomery() + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $n + * @return Array + */ + function _prepMontgomery($x, $n) + { + $lhs = new Math_BigInteger(); + $lhs->value = array_merge($this->_array_repeat(0, count($n)), $x); + $rhs = new Math_BigInteger(); + $rhs->value = $n; + + list(, $temp) = $lhs->divide($rhs); + return $temp->value; + } + + /** + * Modular Inverse of a number mod 2**26 (eg. 67108864) + * + * Based off of the bnpInvDigit function implemented and justified in the following URL: + * + * {@link http://www-cs-students.stanford.edu/~tjw/jsbn/jsbn.js} + * + * The following URL provides more info: + * + * {@link http://groups.google.com/group/sci.crypt/msg/7a137205c1be7d85} + * + * As for why we do all the bitmasking... strange things can happen when converting from floats to ints. For + * instance, on some computers, var_dump((int) -4294967297) yields int(-1) and on others, it yields + * int(-2147483648). To avoid problems stemming from this, we use bitmasks to guarantee that ints aren't + * auto-converted to floats. The outermost bitmask is present because without it, there's no guarantee that + * the "residue" returned would be the so-called "common residue". We use fmod, in the last step, because the + * maximum possible $x is 26 bits and the maximum $result is 16 bits. Thus, we have to be able to handle up to + * 40 bits, which only 64-bit floating points will support. + * + * Thanks to Pedro Gimeno Fortea for input! + * + * @see _montgomery() + * @access private + * @param Array $x + * @return Integer + */ + function _modInverse67108864($x) // 2**26 == 67,108,864 + { + $x = -$x[0]; + $result = $x & 0x3; // x**-1 mod 2**2 + $result = ($result * (2 - $x * $result)) & 0xF; // x**-1 mod 2**4 + $result = ($result * (2 - ($x & 0xFF) * $result)) & 0xFF; // x**-1 mod 2**8 + $result = ($result * ((2 - ($x & 0xFFFF) * $result) & 0xFFFF)) & 0xFFFF; // x**-1 mod 2**16 + $result = fmod($result * (2 - fmod($x * $result, MATH_BIGINTEGER_BASE_FULL)), MATH_BIGINTEGER_BASE_FULL); // x**-1 mod 2**26 + return $result & MATH_BIGINTEGER_MAX_DIGIT; + } + + /** + * Calculates modular inverses. + * + * Say you have (30 mod 17 * x mod 17) mod 17 == 1. x can be found using modular inverses. + * + * Here's an example: + * + * modInverse($b); + * echo $c->toString(); // outputs 4 + * + * echo "\r\n"; + * + * $d = $a->multiply($c); + * list(, $d) = $d->divide($b); + * echo $d; // outputs 1 (as per the definition of modular inverse) + * ?> + * + * + * @param Math_BigInteger $n + * @return mixed false, if no modular inverse exists, Math_BigInteger, otherwise. + * @access public + * @internal See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=21 HAC 14.64} for more information. + */ + function modInverse($n) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_invert($this->value, $n->value); + + return ( $temp->value === false ) ? false : $this->_normalize($temp); + } + + static $zero, $one; + if (!isset($zero)) { + $zero = new Math_BigInteger(); + $one = new Math_BigInteger(1); + } + + // $x mod -$n == $x mod $n. + $n = $n->abs(); + + if ($this->compare($zero) < 0) { + $temp = $this->abs(); + $temp = $temp->modInverse($n); + return $this->_normalize($n->subtract($temp)); + } + + extract($this->extendedGCD($n)); + + if (!$gcd->equals($one)) { + return false; + } + + $x = $x->compare($zero) < 0 ? $x->add($n) : $x; + + return $this->compare($zero) < 0 ? $this->_normalize($n->subtract($x)) : $this->_normalize($x); + } + + /** + * Calculates the greatest common divisor and Bezout's identity. + * + * Say you have 693 and 609. The GCD is 21. Bezout's identity states that there exist integers x and y such that + * 693*x + 609*y == 21. In point of fact, there are actually an infinite number of x and y combinations and which + * combination is returned is dependant upon which mode is in use. See + * {@link http://en.wikipedia.org/wiki/B%C3%A9zout%27s_identity Bezout's identity - Wikipedia} for more information. + * + * Here's an example: + * + * extendedGCD($b)); + * + * echo $gcd->toString() . "\r\n"; // outputs 21 + * echo $a->toString() * $x->toString() + $b->toString() * $y->toString(); // outputs 21 + * ?> + * + * + * @param Math_BigInteger $n + * @return Math_BigInteger + * @access public + * @internal Calculates the GCD using the binary xGCD algorithim described in + * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=19 HAC 14.61}. As the text above 14.61 notes, + * the more traditional algorithim requires "relatively costly multiple-precision divisions". + */ + function extendedGCD($n) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + extract(gmp_gcdext($this->value, $n->value)); + + return array( + 'gcd' => $this->_normalize(new Math_BigInteger($g)), + 'x' => $this->_normalize(new Math_BigInteger($s)), + 'y' => $this->_normalize(new Math_BigInteger($t)) + ); + case MATH_BIGINTEGER_MODE_BCMATH: + // it might be faster to use the binary xGCD algorithim here, as well, but (1) that algorithim works + // best when the base is a power of 2 and (2) i don't think it'd make much difference, anyway. as is, + // the basic extended euclidean algorithim is what we're using. + + $u = $this->value; + $v = $n->value; + + $a = '1'; + $b = '0'; + $c = '0'; + $d = '1'; + + while (bccomp($v, '0', 0) != 0) { + $q = bcdiv($u, $v, 0); + + $temp = $u; + $u = $v; + $v = bcsub($temp, bcmul($v, $q, 0), 0); + + $temp = $a; + $a = $c; + $c = bcsub($temp, bcmul($a, $q, 0), 0); + + $temp = $b; + $b = $d; + $d = bcsub($temp, bcmul($b, $q, 0), 0); + } + + return array( + 'gcd' => $this->_normalize(new Math_BigInteger($u)), + 'x' => $this->_normalize(new Math_BigInteger($a)), + 'y' => $this->_normalize(new Math_BigInteger($b)) + ); + } + + $y = $n->copy(); + $x = $this->copy(); + $g = new Math_BigInteger(); + $g->value = array(1); + + while ( !(($x->value[0] & 1)|| ($y->value[0] & 1)) ) { + $x->_rshift(1); + $y->_rshift(1); + $g->_lshift(1); + } + + $u = $x->copy(); + $v = $y->copy(); + + $a = new Math_BigInteger(); + $b = new Math_BigInteger(); + $c = new Math_BigInteger(); + $d = new Math_BigInteger(); + + $a->value = $d->value = $g->value = array(1); + $b->value = $c->value = array(); + + while ( !empty($u->value) ) { + while ( !($u->value[0] & 1) ) { + $u->_rshift(1); + if ( (!empty($a->value) && ($a->value[0] & 1)) || (!empty($b->value) && ($b->value[0] & 1)) ) { + $a = $a->add($y); + $b = $b->subtract($x); + } + $a->_rshift(1); + $b->_rshift(1); + } + + while ( !($v->value[0] & 1) ) { + $v->_rshift(1); + if ( (!empty($d->value) && ($d->value[0] & 1)) || (!empty($c->value) && ($c->value[0] & 1)) ) { + $c = $c->add($y); + $d = $d->subtract($x); + } + $c->_rshift(1); + $d->_rshift(1); + } + + if ($u->compare($v) >= 0) { + $u = $u->subtract($v); + $a = $a->subtract($c); + $b = $b->subtract($d); + } else { + $v = $v->subtract($u); + $c = $c->subtract($a); + $d = $d->subtract($b); + } + } + + return array( + 'gcd' => $this->_normalize($g->multiply($v)), + 'x' => $this->_normalize($c), + 'y' => $this->_normalize($d) + ); + } + + /** + * Calculates the greatest common divisor + * + * Say you have 693 and 609. The GCD is 21. + * + * Here's an example: + * + * extendedGCD($b); + * + * echo $gcd->toString() . "\r\n"; // outputs 21 + * ?> + * + * + * @param Math_BigInteger $n + * @return Math_BigInteger + * @access public + */ + function gcd($n) + { + extract($this->extendedGCD($n)); + return $gcd; + } + + /** + * Absolute value. + * + * @return Math_BigInteger + * @access public + */ + function abs() + { + $temp = new Math_BigInteger(); + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp->value = gmp_abs($this->value); + break; + case MATH_BIGINTEGER_MODE_BCMATH: + $temp->value = (bccomp($this->value, '0', 0) < 0) ? substr($this->value, 1) : $this->value; + break; + default: + $temp->value = $this->value; + } + + return $temp; + } + + /** + * Compares two numbers. + * + * Although one might think !$x->compare($y) means $x != $y, it, in fact, means the opposite. The reason for this is + * demonstrated thusly: + * + * $x > $y: $x->compare($y) > 0 + * $x < $y: $x->compare($y) < 0 + * $x == $y: $x->compare($y) == 0 + * + * Note how the same comparison operator is used. If you want to test for equality, use $x->equals($y). + * + * @param Math_BigInteger $y + * @return Integer < 0 if $this is less than $y; > 0 if $this is greater than $y, and 0 if they are equal. + * @access public + * @see equals() + * @internal Could return $this->subtract($x), but that's not as fast as what we do do. + */ + function compare($y) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + return gmp_cmp($this->value, $y->value); + case MATH_BIGINTEGER_MODE_BCMATH: + return bccomp($this->value, $y->value, 0); + } + + return $this->_compare($this->value, $this->is_negative, $y->value, $y->is_negative); + } + + /** + * Compares two numbers. + * + * @param Array $x_value + * @param Boolean $x_negative + * @param Array $y_value + * @param Boolean $y_negative + * @return Integer + * @see compare() + * @access private + */ + function _compare($x_value, $x_negative, $y_value, $y_negative) + { + if ( $x_negative != $y_negative ) { + return ( !$x_negative && $y_negative ) ? 1 : -1; + } + + $result = $x_negative ? -1 : 1; + + if ( count($x_value) != count($y_value) ) { + return ( count($x_value) > count($y_value) ) ? $result : -$result; + } + $size = max(count($x_value), count($y_value)); + + $x_value = array_pad($x_value, $size, 0); + $y_value = array_pad($y_value, $size, 0); + + for ($i = count($x_value) - 1; $i >= 0; --$i) { + if ($x_value[$i] != $y_value[$i]) { + return ( $x_value[$i] > $y_value[$i] ) ? $result : -$result; + } + } + + return 0; + } + + /** + * Tests the equality of two numbers. + * + * If you need to see if one number is greater than or less than another number, use Math_BigInteger::compare() + * + * @param Math_BigInteger $x + * @return Boolean + * @access public + * @see compare() + */ + function equals($x) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + return gmp_cmp($this->value, $x->value) == 0; + default: + return $this->value === $x->value && $this->is_negative == $x->is_negative; + } + } + + /** + * Set Precision + * + * Some bitwise operations give different results depending on the precision being used. Examples include left + * shift, not, and rotates. + * + * @param Integer $bits + * @access public + */ + function setPrecision($bits) + { + $this->precision = $bits; + if ( MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_BCMATH ) { + $this->bitmask = new Math_BigInteger(chr((1 << ($bits & 0x7)) - 1) . str_repeat(chr(0xFF), $bits >> 3), 256); + } else { + $this->bitmask = new Math_BigInteger(bcpow('2', $bits, 0)); + } + + $temp = $this->_normalize($this); + $this->value = $temp->value; + } + + /** + * Logical And + * + * @param Math_BigInteger $x + * @access public + * @internal Implemented per a request by Lluis Pamies i Juarez + * @return Math_BigInteger + */ + function bitwise_and($x) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_and($this->value, $x->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $left = $this->toBytes(); + $right = $x->toBytes(); + + $length = max(strlen($left), strlen($right)); + + $left = str_pad($left, $length, chr(0), STR_PAD_LEFT); + $right = str_pad($right, $length, chr(0), STR_PAD_LEFT); + + return $this->_normalize(new Math_BigInteger($left & $right, 256)); + } + + $result = $this->copy(); + + $length = min(count($x->value), count($this->value)); + + $result->value = array_slice($result->value, 0, $length); + + for ($i = 0; $i < $length; ++$i) { + $result->value[$i]&= $x->value[$i]; + } + + return $this->_normalize($result); + } + + /** + * Logical Or + * + * @param Math_BigInteger $x + * @access public + * @internal Implemented per a request by Lluis Pamies i Juarez + * @return Math_BigInteger + */ + function bitwise_or($x) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_or($this->value, $x->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $left = $this->toBytes(); + $right = $x->toBytes(); + + $length = max(strlen($left), strlen($right)); + + $left = str_pad($left, $length, chr(0), STR_PAD_LEFT); + $right = str_pad($right, $length, chr(0), STR_PAD_LEFT); + + return $this->_normalize(new Math_BigInteger($left | $right, 256)); + } + + $length = max(count($this->value), count($x->value)); + $result = $this->copy(); + $result->value = array_pad($result->value, $length, 0); + $x->value = array_pad($x->value, $length, 0); + + for ($i = 0; $i < $length; ++$i) { + $result->value[$i]|= $x->value[$i]; + } + + return $this->_normalize($result); + } + + /** + * Logical Exclusive-Or + * + * @param Math_BigInteger $x + * @access public + * @internal Implemented per a request by Lluis Pamies i Juarez + * @return Math_BigInteger + */ + function bitwise_xor($x) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_xor($this->value, $x->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $left = $this->toBytes(); + $right = $x->toBytes(); + + $length = max(strlen($left), strlen($right)); + + $left = str_pad($left, $length, chr(0), STR_PAD_LEFT); + $right = str_pad($right, $length, chr(0), STR_PAD_LEFT); + + return $this->_normalize(new Math_BigInteger($left ^ $right, 256)); + } + + $length = max(count($this->value), count($x->value)); + $result = $this->copy(); + $result->value = array_pad($result->value, $length, 0); + $x->value = array_pad($x->value, $length, 0); + + for ($i = 0; $i < $length; ++$i) { + $result->value[$i]^= $x->value[$i]; + } + + return $this->_normalize($result); + } + + /** + * Logical Not + * + * @access public + * @internal Implemented per a request by Lluis Pamies i Juarez + * @return Math_BigInteger + */ + function bitwise_not() + { + // calculuate "not" without regard to $this->precision + // (will always result in a smaller number. ie. ~1 isn't 1111 1110 - it's 0) + $temp = $this->toBytes(); + $pre_msb = decbin(ord($temp[0])); + $temp = ~$temp; + $msb = decbin(ord($temp[0])); + if (strlen($msb) == 8) { + $msb = substr($msb, strpos($msb, '0')); + } + $temp[0] = chr(bindec($msb)); + + // see if we need to add extra leading 1's + $current_bits = strlen($pre_msb) + 8 * strlen($temp) - 8; + $new_bits = $this->precision - $current_bits; + if ($new_bits <= 0) { + return $this->_normalize(new Math_BigInteger($temp, 256)); + } + + // generate as many leading 1's as we need to. + $leading_ones = chr((1 << ($new_bits & 0x7)) - 1) . str_repeat(chr(0xFF), $new_bits >> 3); + $this->_base256_lshift($leading_ones, $current_bits); + + $temp = str_pad($temp, ceil($this->bits / 8), chr(0), STR_PAD_LEFT); + + return $this->_normalize(new Math_BigInteger($leading_ones | $temp, 256)); + } + + /** + * Logical Right Shift + * + * Shifts BigInteger's by $shift bits, effectively dividing by 2**$shift. + * + * @param Integer $shift + * @return Math_BigInteger + * @access public + * @internal The only version that yields any speed increases is the internal version. + */ + function bitwise_rightShift($shift) + { + $temp = new Math_BigInteger(); + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + static $two; + + if (!isset($two)) { + $two = gmp_init('2'); + } + + $temp->value = gmp_div_q($this->value, gmp_pow($two, $shift)); + + break; + case MATH_BIGINTEGER_MODE_BCMATH: + $temp->value = bcdiv($this->value, bcpow('2', $shift, 0), 0); + + break; + default: // could just replace _lshift with this, but then all _lshift() calls would need to be rewritten + // and I don't want to do that... + $temp->value = $this->value; + $temp->_rshift($shift); + } + + return $this->_normalize($temp); + } + + /** + * Logical Left Shift + * + * Shifts BigInteger's by $shift bits, effectively multiplying by 2**$shift. + * + * @param Integer $shift + * @return Math_BigInteger + * @access public + * @internal The only version that yields any speed increases is the internal version. + */ + function bitwise_leftShift($shift) + { + $temp = new Math_BigInteger(); + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + static $two; + + if (!isset($two)) { + $two = gmp_init('2'); + } + + $temp->value = gmp_mul($this->value, gmp_pow($two, $shift)); + + break; + case MATH_BIGINTEGER_MODE_BCMATH: + $temp->value = bcmul($this->value, bcpow('2', $shift, 0), 0); + + break; + default: // could just replace _rshift with this, but then all _lshift() calls would need to be rewritten + // and I don't want to do that... + $temp->value = $this->value; + $temp->_lshift($shift); + } + + return $this->_normalize($temp); + } + + /** + * Logical Left Rotate + * + * Instead of the top x bits being dropped they're appended to the shifted bit string. + * + * @param Integer $shift + * @return Math_BigInteger + * @access public + */ + function bitwise_leftRotate($shift) + { + $bits = $this->toBytes(); + + if ($this->precision > 0) { + $precision = $this->precision; + if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_BCMATH ) { + $mask = $this->bitmask->subtract(new Math_BigInteger(1)); + $mask = $mask->toBytes(); + } else { + $mask = $this->bitmask->toBytes(); + } + } else { + $temp = ord($bits[0]); + for ($i = 0; $temp >> $i; ++$i); + $precision = 8 * strlen($bits) - 8 + $i; + $mask = chr((1 << ($precision & 0x7)) - 1) . str_repeat(chr(0xFF), $precision >> 3); + } + + if ($shift < 0) { + $shift+= $precision; + } + $shift%= $precision; + + if (!$shift) { + return $this->copy(); + } + + $left = $this->bitwise_leftShift($shift); + $left = $left->bitwise_and(new Math_BigInteger($mask, 256)); + $right = $this->bitwise_rightShift($precision - $shift); + $result = MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_BCMATH ? $left->bitwise_or($right) : $left->add($right); + return $this->_normalize($result); + } + + /** + * Logical Right Rotate + * + * Instead of the bottom x bits being dropped they're prepended to the shifted bit string. + * + * @param Integer $shift + * @return Math_BigInteger + * @access public + */ + function bitwise_rightRotate($shift) + { + return $this->bitwise_leftRotate(-$shift); + } + + /** + * Set random number generator function + * + * This function is deprecated. + * + * @param String $generator + * @access public + */ + function setRandomGenerator($generator) + { + } + + /** + * Generates a random BigInteger + * + * Byte length is equal to $length. Uses crypt_random if it's loaded and mt_rand if it's not. + * + * @param Integer $length + * @return Math_BigInteger + * @access private + */ + function _random_number_helper($size) + { + $crypt_random = function_exists('crypt_random_string') || (!class_exists('Crypt_Random') && function_exists('crypt_random_string')); + if ($crypt_random) { + $random = crypt_random_string($size); + } else { + $random = ''; + + if ($size & 1) { + $random.= chr(mt_rand(0, 255)); + } + + $blocks = $size >> 1; + for ($i = 0; $i < $blocks; ++$i) { + // mt_rand(-2147483648, 0x7FFFFFFF) always produces -2147483648 on some systems + $random.= pack('n', mt_rand(0, 0xFFFF)); + } + } + + return new Math_BigInteger($random, 256); + } + + /** + * Generate a random number + * + * @param optional Integer $min + * @param optional Integer $max + * @return Math_BigInteger + * @access public + */ + function random($min = false, $max = false) + { + if ($min === false) { + $min = new Math_BigInteger(0); + } + + if ($max === false) { + $max = new Math_BigInteger(0x7FFFFFFF); + } + + $compare = $max->compare($min); + + if (!$compare) { + return $this->_normalize($min); + } else if ($compare < 0) { + // if $min is bigger then $max, swap $min and $max + $temp = $max; + $max = $min; + $min = $temp; + } + + static $one; + if (!isset($one)) { + $one = new Math_BigInteger(1); + } + + $max = $max->subtract($min->subtract($one)); + $size = strlen(ltrim($max->toBytes(), chr(0))); + + /* + doing $random % $max doesn't work because some numbers will be more likely to occur than others. + eg. if $max is 140 and $random's max is 255 then that'd mean both $random = 5 and $random = 145 + would produce 5 whereas the only value of random that could produce 139 would be 139. ie. + not all numbers would be equally likely. some would be more likely than others. + + creating a whole new random number until you find one that is within the range doesn't work + because, for sufficiently small ranges, the likelihood that you'd get a number within that range + would be pretty small. eg. with $random's max being 255 and if your $max being 1 the probability + would be pretty high that $random would be greater than $max. + + phpseclib works around this using the technique described here: + + http://crypto.stackexchange.com/questions/5708/creating-a-small-number-from-a-cryptographically-secure-random-string + */ + $random_max = new Math_BigInteger(chr(1) . str_repeat("\0", $size), 256); + $random = $this->_random_number_helper($size); + + list($max_multiple) = $random_max->divide($max); + $max_multiple = $max_multiple->multiply($max); + + while ($random->compare($max_multiple) >= 0) { + $random = $random->subtract($max_multiple); + $random_max = $random_max->subtract($max_multiple); + $random = $random->bitwise_leftShift(8); + $random = $random->add($this->_random_number_helper(1)); + $random_max = $random_max->bitwise_leftShift(8); + list($max_multiple) = $random_max->divide($max); + $max_multiple = $max_multiple->multiply($max); + } + list(, $random) = $random->divide($max); + + return $this->_normalize($random->add($min)); + } + + /** + * Generate a random prime number. + * + * If there's not a prime within the given range, false will be returned. If more than $timeout seconds have elapsed, + * give up and return false. + * + * @param optional Integer $min + * @param optional Integer $max + * @param optional Integer $timeout + * @return Math_BigInteger + * @access public + * @internal See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap4.pdf#page=15 HAC 4.44}. + */ + function randomPrime($min = false, $max = false, $timeout = false) + { + if ($min === false) { + $min = new Math_BigInteger(0); + } + + if ($max === false) { + $max = new Math_BigInteger(0x7FFFFFFF); + } + + $compare = $max->compare($min); + + if (!$compare) { + return $min->isPrime() ? $min : false; + } else if ($compare < 0) { + // if $min is bigger then $max, swap $min and $max + $temp = $max; + $max = $min; + $min = $temp; + } + + static $one, $two; + if (!isset($one)) { + $one = new Math_BigInteger(1); + $two = new Math_BigInteger(2); + } + + $start = time(); + + $x = $this->random($min, $max); + + // gmp_nextprime() requires PHP 5 >= 5.2.0 per . + if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_GMP && function_exists('gmp_nextprime') ) { + $p = new Math_BigInteger(); + $p->value = gmp_nextprime($x->value); + + if ($p->compare($max) <= 0) { + return $p; + } + + if (!$min->equals($x)) { + $x = $x->subtract($one); + } + + return $x->randomPrime($min, $x); + } + + if ($x->equals($two)) { + return $x; + } + + $x->_make_odd(); + if ($x->compare($max) > 0) { + // if $x > $max then $max is even and if $min == $max then no prime number exists between the specified range + if ($min->equals($max)) { + return false; + } + $x = $min->copy(); + $x->_make_odd(); + } + + $initial_x = $x->copy(); + + while (true) { + if ($timeout !== false && time() - $start > $timeout) { + return false; + } + + if ($x->isPrime()) { + return $x; + } + + $x = $x->add($two); + + if ($x->compare($max) > 0) { + $x = $min->copy(); + if ($x->equals($two)) { + return $x; + } + $x->_make_odd(); + } + + if ($x->equals($initial_x)) { + return false; + } + } + } + + /** + * Make the current number odd + * + * If the current number is odd it'll be unchanged. If it's even, one will be added to it. + * + * @see randomPrime() + * @access private + */ + function _make_odd() + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + gmp_setbit($this->value, 0); + break; + case MATH_BIGINTEGER_MODE_BCMATH: + if ($this->value[strlen($this->value) - 1] % 2 == 0) { + $this->value = bcadd($this->value, '1'); + } + break; + default: + $this->value[0] |= 1; + } + } + + /** + * Checks a numer to see if it's prime + * + * Assuming the $t parameter is not set, this function has an error rate of 2**-80. The main motivation for the + * $t parameter is distributability. Math_BigInteger::randomPrime() can be distributed accross multiple pageloads + * on a website instead of just one. + * + * @param optional Integer $t + * @return Boolean + * @access public + * @internal Uses the + * {@link http://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test Miller-Rabin primality test}. See + * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap4.pdf#page=8 HAC 4.24}. + */ + function isPrime($t = false) + { + $length = strlen($this->toBytes()); + + if (!$t) { + // see HAC 4.49 "Note (controlling the error probability)" + // @codingStandardsIgnoreStart + if ($length >= 163) { $t = 2; } // floor(1300 / 8) + else if ($length >= 106) { $t = 3; } // floor( 850 / 8) + else if ($length >= 81 ) { $t = 4; } // floor( 650 / 8) + else if ($length >= 68 ) { $t = 5; } // floor( 550 / 8) + else if ($length >= 56 ) { $t = 6; } // floor( 450 / 8) + else if ($length >= 50 ) { $t = 7; } // floor( 400 / 8) + else if ($length >= 43 ) { $t = 8; } // floor( 350 / 8) + else if ($length >= 37 ) { $t = 9; } // floor( 300 / 8) + else if ($length >= 31 ) { $t = 12; } // floor( 250 / 8) + else if ($length >= 25 ) { $t = 15; } // floor( 200 / 8) + else if ($length >= 18 ) { $t = 18; } // floor( 150 / 8) + else { $t = 27; } + // @codingStandardsIgnoreEnd + } + + // ie. gmp_testbit($this, 0) + // ie. isEven() or !isOdd() + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + return gmp_prob_prime($this->value, $t) != 0; + case MATH_BIGINTEGER_MODE_BCMATH: + if ($this->value === '2') { + return true; + } + if ($this->value[strlen($this->value) - 1] % 2 == 0) { + return false; + } + break; + default: + if ($this->value == array(2)) { + return true; + } + if (~$this->value[0] & 1) { + return false; + } + } + + static $primes, $zero, $one, $two; + + if (!isset($primes)) { + $primes = array( + 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, + 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, + 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, + 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, + 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, + 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, + 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, + 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, + 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, + 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, + 953, 967, 971, 977, 983, 991, 997 + ); + + if ( MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_INTERNAL ) { + for ($i = 0; $i < count($primes); ++$i) { + $primes[$i] = new Math_BigInteger($primes[$i]); + } + } + + $zero = new Math_BigInteger(); + $one = new Math_BigInteger(1); + $two = new Math_BigInteger(2); + } + + if ($this->equals($one)) { + return false; + } + + // see HAC 4.4.1 "Random search for probable primes" + if ( MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_INTERNAL ) { + foreach ($primes as $prime) { + list(, $r) = $this->divide($prime); + if ($r->equals($zero)) { + return $this->equals($prime); + } + } + } else { + $value = $this->value; + foreach ($primes as $prime) { + list(, $r) = $this->_divide_digit($value, $prime); + if (!$r) { + return count($value) == 1 && $value[0] == $prime; + } + } + } + + $n = $this->copy(); + $n_1 = $n->subtract($one); + $n_2 = $n->subtract($two); + + $r = $n_1->copy(); + $r_value = $r->value; + // ie. $s = gmp_scan1($n, 0) and $r = gmp_div_q($n, gmp_pow(gmp_init('2'), $s)); + if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_BCMATH ) { + $s = 0; + // if $n was 1, $r would be 0 and this would be an infinite loop, hence our $this->equals($one) check earlier + while ($r->value[strlen($r->value) - 1] % 2 == 0) { + $r->value = bcdiv($r->value, '2', 0); + ++$s; + } + } else { + for ($i = 0, $r_length = count($r_value); $i < $r_length; ++$i) { + $temp = ~$r_value[$i] & 0xFFFFFF; + for ($j = 1; ($temp >> $j) & 1; ++$j); + if ($j != 25) { + break; + } + } + $s = 26 * $i + $j - 1; + $r->_rshift($s); + } + + for ($i = 0; $i < $t; ++$i) { + $a = $this->random($two, $n_2); + $y = $a->modPow($r, $n); + + if (!$y->equals($one) && !$y->equals($n_1)) { + for ($j = 1; $j < $s && !$y->equals($n_1); ++$j) { + $y = $y->modPow($two, $n); + if ($y->equals($one)) { + return false; + } + } + + if (!$y->equals($n_1)) { + return false; + } + } + } + return true; + } + + /** + * Logical Left Shift + * + * Shifts BigInteger's by $shift bits. + * + * @param Integer $shift + * @access private + */ + function _lshift($shift) + { + if ( $shift == 0 ) { + return; + } + + $num_digits = (int) ($shift / MATH_BIGINTEGER_BASE); + $shift %= MATH_BIGINTEGER_BASE; + $shift = 1 << $shift; + + $carry = 0; + + for ($i = 0; $i < count($this->value); ++$i) { + $temp = $this->value[$i] * $shift + $carry; + $carry = (int) ($temp / MATH_BIGINTEGER_BASE_FULL); + $this->value[$i] = (int) ($temp - $carry * MATH_BIGINTEGER_BASE_FULL); + } + + if ( $carry ) { + $this->value[] = $carry; + } + + while ($num_digits--) { + array_unshift($this->value, 0); + } + } + + /** + * Logical Right Shift + * + * Shifts BigInteger's by $shift bits. + * + * @param Integer $shift + * @access private + */ + function _rshift($shift) + { + if ($shift == 0) { + return; + } + + $num_digits = (int) ($shift / MATH_BIGINTEGER_BASE); + $shift %= MATH_BIGINTEGER_BASE; + $carry_shift = MATH_BIGINTEGER_BASE - $shift; + $carry_mask = (1 << $shift) - 1; + + if ( $num_digits ) { + $this->value = array_slice($this->value, $num_digits); + } + + $carry = 0; + + for ($i = count($this->value) - 1; $i >= 0; --$i) { + $temp = $this->value[$i] >> $shift | $carry; + $carry = ($this->value[$i] & $carry_mask) << $carry_shift; + $this->value[$i] = $temp; + } + + $this->value = $this->_trim($this->value); + } + + /** + * Normalize + * + * Removes leading zeros and truncates (if necessary) to maintain the appropriate precision + * + * @param Math_BigInteger + * @return Math_BigInteger + * @see _trim() + * @access private + */ + function _normalize($result) + { + $result->precision = $this->precision; + $result->bitmask = $this->bitmask; + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + if (!empty($result->bitmask->value)) { + $result->value = gmp_and($result->value, $result->bitmask->value); + } + + return $result; + case MATH_BIGINTEGER_MODE_BCMATH: + if (!empty($result->bitmask->value)) { + $result->value = bcmod($result->value, $result->bitmask->value); + } + + return $result; + } + + $value = &$result->value; + + if ( !count($value) ) { + return $result; + } + + $value = $this->_trim($value); + + if (!empty($result->bitmask->value)) { + $length = min(count($value), count($this->bitmask->value)); + $value = array_slice($value, 0, $length); + + for ($i = 0; $i < $length; ++$i) { + $value[$i] = $value[$i] & $this->bitmask->value[$i]; + } + } + + return $result; + } + + /** + * Trim + * + * Removes leading zeros + * + * @param Array $value + * @return Math_BigInteger + * @access private + */ + function _trim($value) + { + for ($i = count($value) - 1; $i >= 0; --$i) { + if ( $value[$i] ) { + break; + } + unset($value[$i]); + } + + return $value; + } + + /** + * Array Repeat + * + * @param $input Array + * @param $multiplier mixed + * @return Array + * @access private + */ + function _array_repeat($input, $multiplier) + { + return ($multiplier) ? array_fill(0, $multiplier, $input) : array(); + } + + /** + * Logical Left Shift + * + * Shifts binary strings $shift bits, essentially multiplying by 2**$shift. + * + * @param $x String + * @param $shift Integer + * @return String + * @access private + */ + function _base256_lshift(&$x, $shift) + { + if ($shift == 0) { + return; + } + + $num_bytes = $shift >> 3; // eg. floor($shift/8) + $shift &= 7; // eg. $shift % 8 + + $carry = 0; + for ($i = strlen($x) - 1; $i >= 0; --$i) { + $temp = ord($x[$i]) << $shift | $carry; + $x[$i] = chr($temp); + $carry = $temp >> 8; + } + $carry = ($carry != 0) ? chr($carry) : ''; + $x = $carry . $x . str_repeat(chr(0), $num_bytes); + } + + /** + * Logical Right Shift + * + * Shifts binary strings $shift bits, essentially dividing by 2**$shift and returning the remainder. + * + * @param $x String + * @param $shift Integer + * @return String + * @access private + */ + function _base256_rshift(&$x, $shift) + { + if ($shift == 0) { + $x = ltrim($x, chr(0)); + return ''; + } + + $num_bytes = $shift >> 3; // eg. floor($shift/8) + $shift &= 7; // eg. $shift % 8 + + $remainder = ''; + if ($num_bytes) { + $start = $num_bytes > strlen($x) ? -strlen($x) : -$num_bytes; + $remainder = substr($x, $start); + $x = substr($x, 0, -$num_bytes); + } + + $carry = 0; + $carry_shift = 8 - $shift; + for ($i = 0; $i < strlen($x); ++$i) { + $temp = (ord($x[$i]) >> $shift) | $carry; + $carry = (ord($x[$i]) << $carry_shift) & 0xFF; + $x[$i] = chr($temp); + } + $x = ltrim($x, chr(0)); + + $remainder = chr($carry >> $carry_shift) . $remainder; + + return ltrim($remainder, chr(0)); + } + + // one quirk about how the following functions are implemented is that PHP defines N to be an unsigned long + // at 32-bits, while java's longs are 64-bits. + + /** + * Converts 32-bit integers to bytes. + * + * @param Integer $x + * @return String + * @access private + */ + function _int2bytes($x) + { + return ltrim(pack('N', $x), chr(0)); + } + + /** + * Converts bytes to 32-bit integers + * + * @param String $x + * @return Integer + * @access private + */ + function _bytes2int($x) + { + $temp = unpack('Nint', str_pad($x, 4, chr(0), STR_PAD_LEFT)); + return $temp['int']; + } + + /** + * DER-encode an integer + * + * The ability to DER-encode integers is needed to create RSA public keys for use with OpenSSL + * + * @see modPow() + * @access private + * @param Integer $length + * @return String + */ + function _encodeASN1Length($length) + { + if ($length <= 0x7F) { + return chr($length); + } + + $temp = ltrim(pack('N', $length), chr(0)); + return pack('Ca*', 0x80 | strlen($temp), $temp); + } +} diff --git a/lam/lib/3rdParty/phpseclib/Net/SCP.php b/lam/lib/3rdParty/phpseclib/Net/SCP.php new file mode 100644 index 00000000..cab91d7e --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/Net/SCP.php @@ -0,0 +1,362 @@ + + * login('username', 'password')) { + * exit('bad login'); + * } + + * $scp = new Net_SCP($ssh); + * $scp->put('abcd', str_repeat('x', 1024*1024)); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Net + * @package Net_SCP + * @author Jim Wigginton + * @copyright MMX Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @link http://phpseclib.sourceforge.net + */ + +/**#@+ + * @access public + * @see Net_SCP::put() + */ +/** + * Reads data from a local file. + */ +define('NET_SCP_LOCAL_FILE', 1); +/** + * Reads data from a string. + */ +define('NET_SCP_STRING', 2); +/**#@-*/ + +/**#@+ + * @access private + * @see Net_SCP::_send() + * @see Net_SCP::_receive() + */ +/** + * SSH1 is being used. + */ +define('NET_SCP_SSH1', 1); +/** + * SSH2 is being used. + */ +define('NET_SCP_SSH2', 2); +/**#@-*/ + +/** + * Pure-PHP implementations of SCP. + * + * @package Net_SCP + * @author Jim Wigginton + * @version 0.1.0 + * @access public + */ +class Net_SCP +{ + /** + * SSH Object + * + * @var Object + * @access private + */ + var $ssh; + + /** + * Packet Size + * + * @var Integer + * @access private + */ + var $packet_size; + + /** + * Mode + * + * @var Integer + * @access private + */ + var $mode; + + /** + * Default Constructor. + * + * Connects to an SSH server + * + * @param String $host + * @param optional Integer $port + * @param optional Integer $timeout + * @return Net_SCP + * @access public + */ + function Net_SCP($ssh) + { + if (!is_object($ssh)) { + return; + } + + switch (strtolower(get_class($ssh))) { + case'net_ssh2': + $this->mode = NET_SCP_SSH2; + break; + case 'net_ssh1': + $this->packet_size = 50000; + $this->mode = NET_SCP_SSH1; + break; + default: + return; + } + + $this->ssh = $ssh; + } + + /** + * Uploads a file to the SCP server. + * + * By default, Net_SCP::put() does not read from the local filesystem. $data is dumped directly into $remote_file. + * So, for example, if you set $data to 'filename.ext' and then do Net_SCP::get(), you will get a file, twelve bytes + * long, containing 'filename.ext' as its contents. + * + * Setting $mode to NET_SCP_LOCAL_FILE will change the above behavior. With NET_SCP_LOCAL_FILE, $remote_file will + * contain as many bytes as filename.ext does on your local filesystem. If your filename.ext is 1MB then that is how + * large $remote_file will be, as well. + * + * Currently, only binary mode is supported. As such, if the line endings need to be adjusted, you will need to take + * care of that, yourself. + * + * @param String $remote_file + * @param String $data + * @param optional Integer $mode + * @param optional Callable $callback + * @return Boolean + * @access public + */ + function put($remote_file, $data, $mode = NET_SCP_STRING, $callback = null) + { + if (!isset($this->ssh)) { + return false; + } + + if (!$this->ssh->exec('scp -t ' . $remote_file, false)) { // -t = to + return false; + } + + $temp = $this->_receive(); + if ($temp !== chr(0)) { + return false; + } + + if ($this->mode == NET_SCP_SSH2) { + $this->packet_size = $this->ssh->packet_size_client_to_server[NET_SSH2_CHANNEL_EXEC] - 4; + } + + $remote_file = basename($remote_file); + + if ($mode == NET_SCP_STRING) { + $size = strlen($data); + } else { + if (!is_file($data)) { + user_error("$data is not a valid file", E_USER_NOTICE); + return false; + } + + $fp = @fopen($data, 'rb'); + if (!$fp) { + fclose($fp); + return false; + } + $size = filesize($data); + } + + $this->_send('C0644 ' . $size . ' ' . $remote_file . "\n"); + + $temp = $this->_receive(); + if ($temp !== chr(0)) { + return false; + } + + $sent = 0; + while ($sent < $size) { + $temp = $mode & NET_SCP_STRING ? substr($data, $sent, $this->packet_size) : fread($fp, $this->packet_size); + $this->_send($temp); + $sent+= strlen($temp); + + if (is_callable($callback)) { + $callback($sent); + } + } + $this->_close(); + + if ($mode != NET_SCP_STRING) { + fclose($fp); + } + + return true; + } + + /** + * Downloads a file from the SCP server. + * + * Returns a string containing the contents of $remote_file if $local_file is left undefined or a boolean false if + * the operation was unsuccessful. If $local_file is defined, returns true or false depending on the success of the + * operation + * + * @param String $remote_file + * @param optional String $local_file + * @return Mixed + * @access public + */ + function get($remote_file, $local_file = false) + { + if (!isset($this->ssh)) { + return false; + } + + if (!$this->ssh->exec('scp -f ' . $remote_file, false)) { // -f = from + return false; + } + + $this->_send("\0"); + + if (!preg_match('#(?[^ ]+) (?\d+) (?.+)#', rtrim($this->_receive()), $info)) { + return false; + } + + $this->_send("\0"); + + $size = 0; + + if ($local_file !== false) { + $fp = @fopen($local_file, 'wb'); + if (!$fp) { + return false; + } + } + + $content = ''; + while ($size < $info['size']) { + $data = $this->_receive(); + // SCP usually seems to split stuff out into 16k chunks + $size+= strlen($data); + + if ($local_file === false) { + $content.= $data; + } else { + fputs($fp, $data); + } + } + + $this->_close(); + + if ($local_file !== false) { + fclose($fp); + return true; + } + + return $content; + } + + /** + * Sends a packet to an SSH server + * + * @param String $data + * @access private + */ + function _send($data) + { + switch ($this->mode) { + case NET_SCP_SSH2: + $this->ssh->_send_channel_packet(NET_SSH2_CHANNEL_EXEC, $data); + break; + case NET_SCP_SSH1: + $data = pack('CNa*', NET_SSH1_CMSG_STDIN_DATA, strlen($data), $data); + $this->ssh->_send_binary_packet($data); + } + } + + /** + * Receives a packet from an SSH server + * + * @return String + * @access private + */ + function _receive() + { + switch ($this->mode) { + case NET_SCP_SSH2: + return $this->ssh->_get_channel_packet(NET_SSH2_CHANNEL_EXEC, true); + case NET_SCP_SSH1: + if (!$this->ssh->bitmap) { + return false; + } + while (true) { + $response = $this->ssh->_get_binary_packet(); + switch ($response[NET_SSH1_RESPONSE_TYPE]) { + case NET_SSH1_SMSG_STDOUT_DATA: + extract(unpack('Nlength', $response[NET_SSH1_RESPONSE_DATA])); + return $this->ssh->_string_shift($response[NET_SSH1_RESPONSE_DATA], $length); + case NET_SSH1_SMSG_STDERR_DATA: + break; + case NET_SSH1_SMSG_EXITSTATUS: + $this->ssh->_send_binary_packet(chr(NET_SSH1_CMSG_EXIT_CONFIRMATION)); + fclose($this->ssh->fsock); + $this->ssh->bitmap = 0; + return false; + default: + user_error('Unknown packet received', E_USER_NOTICE); + return false; + } + } + } + } + + /** + * Closes the connection to an SSH server + * + * @access private + */ + function _close() + { + switch ($this->mode) { + case NET_SCP_SSH2: + $this->ssh->_close_channel(NET_SSH2_CHANNEL_EXEC, true); + break; + case NET_SCP_SSH1: + $this->ssh->disconnect(); + } + } +} diff --git a/lam/lib/3rdParty/phpseclib/Net/SFTP.php b/lam/lib/3rdParty/phpseclib/Net/SFTP.php new file mode 100644 index 00000000..68d944f9 --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/Net/SFTP.php @@ -0,0 +1,2226 @@ + + * login('username', 'password')) { + * exit('Login Failed'); + * } + * + * echo $sftp->pwd() . "\r\n"; + * $sftp->put('filename.ext', 'hello, world!'); + * print_r($sftp->nlist()); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Net + * @package Net_SFTP + * @author Jim Wigginton + * @copyright MMIX Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Net_SSH2 + */ +if (!class_exists('Net_SSH2')) { + include_once 'SSH2.php'; +} + +/**#@+ + * @access public + * @see Net_SFTP::getLog() + */ +/** + * Returns the message numbers + */ +define('NET_SFTP_LOG_SIMPLE', NET_SSH2_LOG_SIMPLE); +/** + * Returns the message content + */ +define('NET_SFTP_LOG_COMPLEX', NET_SSH2_LOG_COMPLEX); +/** + * Outputs the message content in real-time. + */ +define('NET_SFTP_LOG_REALTIME', 3); +/**#@-*/ + +/** + * SFTP channel constant + * + * Net_SSH2::exec() uses 0 and Net_SSH2::read() / Net_SSH2::write() use 1. + * + * @see Net_SSH2::_send_channel_packet() + * @see Net_SSH2::_get_channel_packet() + * @access private + */ +define('NET_SFTP_CHANNEL', 0x100); + +/**#@+ + * @access public + * @see Net_SFTP::put() + */ +/** + * Reads data from a local file. + */ +define('NET_SFTP_LOCAL_FILE', 1); +/** + * Reads data from a string. + */ +// this value isn't really used anymore but i'm keeping it reserved for historical reasons +define('NET_SFTP_STRING', 2); +/** + * Resumes an upload + */ +define('NET_SFTP_RESUME', 4); +/** + * Append a local file to an already existing remote file + */ +define('NET_SFTP_RESUME_START', 8); +/**#@-*/ + +/** + * Pure-PHP implementations of SFTP. + * + * @package Net_SFTP + * @author Jim Wigginton + * @version 0.1.0 + * @access public + */ +class Net_SFTP extends Net_SSH2 +{ + /** + * Packet Types + * + * @see Net_SFTP::Net_SFTP() + * @var Array + * @access private + */ + var $packet_types = array(); + + /** + * Status Codes + * + * @see Net_SFTP::Net_SFTP() + * @var Array + * @access private + */ + var $status_codes = array(); + + /** + * The Request ID + * + * The request ID exists in the off chance that a packet is sent out-of-order. Of course, this library doesn't support + * concurrent actions, so it's somewhat academic, here. + * + * @var Integer + * @see Net_SFTP::_send_sftp_packet() + * @access private + */ + var $request_id = false; + + /** + * The Packet Type + * + * The request ID exists in the off chance that a packet is sent out-of-order. Of course, this library doesn't support + * concurrent actions, so it's somewhat academic, here. + * + * @var Integer + * @see Net_SFTP::_get_sftp_packet() + * @access private + */ + var $packet_type = -1; + + /** + * Packet Buffer + * + * @var String + * @see Net_SFTP::_get_sftp_packet() + * @access private + */ + var $packet_buffer = ''; + + /** + * Extensions supported by the server + * + * @var Array + * @see Net_SFTP::_initChannel() + * @access private + */ + var $extensions = array(); + + /** + * Server SFTP version + * + * @var Integer + * @see Net_SFTP::_initChannel() + * @access private + */ + var $version; + + /** + * Current working directory + * + * @var String + * @see Net_SFTP::_realpath() + * @see Net_SFTP::chdir() + * @access private + */ + var $pwd = false; + + /** + * Packet Type Log + * + * @see Net_SFTP::getLog() + * @var Array + * @access private + */ + var $packet_type_log = array(); + + /** + * Packet Log + * + * @see Net_SFTP::getLog() + * @var Array + * @access private + */ + var $packet_log = array(); + + /** + * Error information + * + * @see Net_SFTP::getSFTPErrors() + * @see Net_SFTP::getLastSFTPError() + * @var String + * @access private + */ + var $sftp_errors = array(); + + /** + * Directory Cache + * + * Rather than always having to open a directory and close it immediately there after to see if a file is a directory or + * rather than always + * + * @see Net_SFTP::_save_dir() + * @see Net_SFTP::_remove_dir() + * @see Net_SFTP::_is_dir() + * @var Array + * @access private + */ + var $dirs = array(); + + /** + * Max SFTP Packet Size + * + * @see Net_SFTP::Net_SFTP() + * @see Net_SFTP::get() + * @var Array + * @access private + */ + var $max_sftp_packet; + + /** + * Default Constructor. + * + * Connects to an SFTP server + * + * @param String $host + * @param optional Integer $port + * @param optional Integer $timeout + * @return Net_SFTP + * @access public + */ + function Net_SFTP($host, $port = 22, $timeout = 10) + { + parent::Net_SSH2($host, $port, $timeout); + + $this->max_sftp_packet = 1 << 15; + + $this->packet_types = array( + 1 => 'NET_SFTP_INIT', + 2 => 'NET_SFTP_VERSION', + /* the format of SSH_FXP_OPEN changed between SFTPv4 and SFTPv5+: + SFTPv5+: http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.1.1 + pre-SFTPv5 : http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-6.3 */ + 3 => 'NET_SFTP_OPEN', + 4 => 'NET_SFTP_CLOSE', + 5 => 'NET_SFTP_READ', + 6 => 'NET_SFTP_WRITE', + 7 => 'NET_SFTP_LSTAT', + 9 => 'NET_SFTP_SETSTAT', + 11 => 'NET_SFTP_OPENDIR', + 12 => 'NET_SFTP_READDIR', + 13 => 'NET_SFTP_REMOVE', + 14 => 'NET_SFTP_MKDIR', + 15 => 'NET_SFTP_RMDIR', + 16 => 'NET_SFTP_REALPATH', + 17 => 'NET_SFTP_STAT', + /* the format of SSH_FXP_RENAME changed between SFTPv4 and SFTPv5+: + SFTPv5+: http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.3 + pre-SFTPv5 : http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-6.5 */ + 18 => 'NET_SFTP_RENAME', + + 101=> 'NET_SFTP_STATUS', + 102=> 'NET_SFTP_HANDLE', + /* the format of SSH_FXP_NAME changed between SFTPv3 and SFTPv4+: + SFTPv4+: http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-9.4 + pre-SFTPv4 : http://tools.ietf.org/html/draft-ietf-secsh-filexfer-02#section-7 */ + 103=> 'NET_SFTP_DATA', + 104=> 'NET_SFTP_NAME', + 105=> 'NET_SFTP_ATTRS', + + 200=> 'NET_SFTP_EXTENDED' + ); + $this->status_codes = array( + 0 => 'NET_SFTP_STATUS_OK', + 1 => 'NET_SFTP_STATUS_EOF', + 2 => 'NET_SFTP_STATUS_NO_SUCH_FILE', + 3 => 'NET_SFTP_STATUS_PERMISSION_DENIED', + 4 => 'NET_SFTP_STATUS_FAILURE', + 5 => 'NET_SFTP_STATUS_BAD_MESSAGE', + 6 => 'NET_SFTP_STATUS_NO_CONNECTION', + 7 => 'NET_SFTP_STATUS_CONNECTION_LOST', + 8 => 'NET_SFTP_STATUS_OP_UNSUPPORTED', + 9 => 'NET_SFTP_STATUS_INVALID_HANDLE', + 10 => 'NET_SFTP_STATUS_NO_SUCH_PATH', + 11 => 'NET_SFTP_STATUS_FILE_ALREADY_EXISTS', + 12 => 'NET_SFTP_STATUS_WRITE_PROTECT', + 13 => 'NET_SFTP_STATUS_NO_MEDIA', + 14 => 'NET_SFTP_STATUS_NO_SPACE_ON_FILESYSTEM', + 15 => 'NET_SFTP_STATUS_QUOTA_EXCEEDED', + 16 => 'NET_SFTP_STATUS_UNKNOWN_PRINCIPAL', + 17 => 'NET_SFTP_STATUS_LOCK_CONFLICT', + 18 => 'NET_SFTP_STATUS_DIR_NOT_EMPTY', + 19 => 'NET_SFTP_STATUS_NOT_A_DIRECTORY', + 20 => 'NET_SFTP_STATUS_INVALID_FILENAME', + 21 => 'NET_SFTP_STATUS_LINK_LOOP', + 22 => 'NET_SFTP_STATUS_CANNOT_DELETE', + 23 => 'NET_SFTP_STATUS_INVALID_PARAMETER', + 24 => 'NET_SFTP_STATUS_FILE_IS_A_DIRECTORY', + 25 => 'NET_SFTP_STATUS_BYTE_RANGE_LOCK_CONFLICT', + 26 => 'NET_SFTP_STATUS_BYTE_RANGE_LOCK_REFUSED', + 27 => 'NET_SFTP_STATUS_DELETE_PENDING', + 28 => 'NET_SFTP_STATUS_FILE_CORRUPT', + 29 => 'NET_SFTP_STATUS_OWNER_INVALID', + 30 => 'NET_SFTP_STATUS_GROUP_INVALID', + 31 => 'NET_SFTP_STATUS_NO_MATCHING_BYTE_RANGE_LOCK' + ); + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-7.1 + // the order, in this case, matters quite a lot - see Net_SFTP::_parseAttributes() to understand why + $this->attributes = array( + 0x00000001 => 'NET_SFTP_ATTR_SIZE', + 0x00000002 => 'NET_SFTP_ATTR_UIDGID', // defined in SFTPv3, removed in SFTPv4+ + 0x00000004 => 'NET_SFTP_ATTR_PERMISSIONS', + 0x00000008 => 'NET_SFTP_ATTR_ACCESSTIME', + // 0x80000000 will yield a floating point on 32-bit systems and converting floating points to integers + // yields inconsistent behavior depending on how php is compiled. so we left shift -1 (which, in + // two's compliment, consists of all 1 bits) by 31. on 64-bit systems this'll yield 0xFFFFFFFF80000000. + // that's not a problem, however, and 'anded' and a 32-bit number, as all the leading 1 bits are ignored. + -1 << 31 => 'NET_SFTP_ATTR_EXTENDED' + ); + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-6.3 + // the flag definitions change somewhat in SFTPv5+. if SFTPv5+ support is added to this library, maybe name + // the array for that $this->open5_flags and similarily alter the constant names. + $this->open_flags = array( + 0x00000001 => 'NET_SFTP_OPEN_READ', + 0x00000002 => 'NET_SFTP_OPEN_WRITE', + 0x00000004 => 'NET_SFTP_OPEN_APPEND', + 0x00000008 => 'NET_SFTP_OPEN_CREATE', + 0x00000010 => 'NET_SFTP_OPEN_TRUNCATE', + 0x00000020 => 'NET_SFTP_OPEN_EXCL' + ); + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-5.2 + // see Net_SFTP::_parseLongname() for an explanation + $this->file_types = array( + 1 => 'NET_SFTP_TYPE_REGULAR', + 2 => 'NET_SFTP_TYPE_DIRECTORY', + 3 => 'NET_SFTP_TYPE_SYMLINK', + 4 => 'NET_SFTP_TYPE_SPECIAL', + 5 => 'NET_SFTP_TYPE_UNKNOWN', + // the followin types were first defined for use in SFTPv5+ + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-05#section-5.2 + 6 => 'NET_SFTP_TYPE_SOCKET', + 7 => 'NET_SFTP_TYPE_CHAR_DEVICE', + 8 => 'NET_SFTP_TYPE_BLOCK_DEVICE', + 9 => 'NET_SFTP_TYPE_FIFO' + ); + $this->_define_array( + $this->packet_types, + $this->status_codes, + $this->attributes, + $this->open_flags, + $this->file_types + ); + + if (!defined('NET_SFTP_QUEUE_SIZE')) { + define('NET_SFTP_QUEUE_SIZE', 50); + } + } + + /** + * Login + * + * @param String $username + * @param optional String $password + * @return Boolean + * @access public + */ + function login($username) + { + $args = func_get_args(); + if (!call_user_func_array(array(&$this, '_login'), $args)) { + return false; + } + + $this->window_size_server_to_client[NET_SFTP_CHANNEL] = $this->window_size; + + $packet = pack('CNa*N3', + NET_SSH2_MSG_CHANNEL_OPEN, strlen('session'), 'session', NET_SFTP_CHANNEL, $this->window_size, 0x4000); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $this->channel_status[NET_SFTP_CHANNEL] = NET_SSH2_MSG_CHANNEL_OPEN; + + $response = $this->_get_channel_packet(NET_SFTP_CHANNEL); + if ($response === false) { + return false; + } + + $packet = pack('CNNa*CNa*', + NET_SSH2_MSG_CHANNEL_REQUEST, $this->server_channels[NET_SFTP_CHANNEL], strlen('subsystem'), 'subsystem', 1, strlen('sftp'), 'sftp'); + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $this->channel_status[NET_SFTP_CHANNEL] = NET_SSH2_MSG_CHANNEL_REQUEST; + + $response = $this->_get_channel_packet(NET_SFTP_CHANNEL); + if ($response === false) { + // from PuTTY's psftp.exe + $command = "test -x /usr/lib/sftp-server && exec /usr/lib/sftp-server\n" . + "test -x /usr/local/lib/sftp-server && exec /usr/local/lib/sftp-server\n" . + "exec sftp-server"; + // we don't do $this->exec($command, false) because exec() operates on a different channel and plus the SSH_MSG_CHANNEL_OPEN that exec() does + // is redundant + $packet = pack('CNNa*CNa*', + NET_SSH2_MSG_CHANNEL_REQUEST, $this->server_channels[NET_SFTP_CHANNEL], strlen('exec'), 'exec', 1, strlen($command), $command); + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $this->channel_status[NET_SFTP_CHANNEL] = NET_SSH2_MSG_CHANNEL_REQUEST; + + $response = $this->_get_channel_packet(NET_SFTP_CHANNEL); + if ($response === false) { + return false; + } + } + + $this->channel_status[NET_SFTP_CHANNEL] = NET_SSH2_MSG_CHANNEL_DATA; + + if (!$this->_send_sftp_packet(NET_SFTP_INIT, "\0\0\0\3")) { + return false; + } + + $response = $this->_get_sftp_packet(); + if ($this->packet_type != NET_SFTP_VERSION) { + user_error('Expected SSH_FXP_VERSION'); + return false; + } + + extract(unpack('Nversion', $this->_string_shift($response, 4))); + $this->version = $version; + while (!empty($response)) { + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $key = $this->_string_shift($response, $length); + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $value = $this->_string_shift($response, $length); + $this->extensions[$key] = $value; + } + + /* + SFTPv4+ defines a 'newline' extension. SFTPv3 seems to have unofficial support for it via 'newline@vandyke.com', + however, I'm not sure what 'newline@vandyke.com' is supposed to do (the fact that it's unofficial means that it's + not in the official SFTPv3 specs) and 'newline@vandyke.com' / 'newline' are likely not drop-in substitutes for + one another due to the fact that 'newline' comes with a SSH_FXF_TEXT bitmask whereas it seems unlikely that + 'newline@vandyke.com' would. + */ + /* + if (isset($this->extensions['newline@vandyke.com'])) { + $this->extensions['newline'] = $this->extensions['newline@vandyke.com']; + unset($this->extensions['newline@vandyke.com']); + } + */ + + $this->request_id = 1; + + /* + A Note on SFTPv4/5/6 support: + states the following: + + "If the client wishes to interoperate with servers that support noncontiguous version + numbers it SHOULD send '3'" + + Given that the server only sends its version number after the client has already done so, the above + seems to be suggesting that v3 should be the default version. This makes sense given that v3 is the + most popular. + + states the following; + + "If the server did not send the "versions" extension, or the version-from-list was not included, the + server MAY send a status response describing the failure, but MUST then close the channel without + processing any further requests." + + So what do you do if you have a client whose initial SSH_FXP_INIT packet says it implements v3 and + a server whose initial SSH_FXP_VERSION reply says it implements v4 and only v4? If it only implements + v4, the "versions" extension is likely not going to have been sent so version re-negotiation as discussed + in draft-ietf-secsh-filexfer-13 would be quite impossible. As such, what Net_SFTP would do is close the + channel and reopen it with a new and updated SSH_FXP_INIT packet. + */ + switch ($this->version) { + case 2: + case 3: + break; + default: + return false; + } + + $this->pwd = $this->_realpath('.'); + + $this->_save_dir($this->pwd); + + return true; + } + + /** + * Returns the current directory name + * + * @return Mixed + * @access public + */ + function pwd() + { + return $this->pwd; + } + + /** + * Logs errors + * + * @param String $response + * @param optional Integer $status + * @access public + */ + function _logError($response, $status = -1) + { + if ($status == -1) { + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + } + + $error = $this->status_codes[$status]; + + if ($this->version > 2) { + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $this->sftp_errors[] = $error . ': ' . $this->_string_shift($response, $length); + } else { + $this->sftp_errors[] = $error; + } + } + + /** + * Canonicalize the Server-Side Path Name + * + * SFTP doesn't provide a mechanism by which the current working directory can be changed, so we'll emulate it. Returns + * the absolute (canonicalized) path. + * + * @see Net_SFTP::chdir() + * @param String $path + * @return Mixed + * @access private + */ + function _realpath($path) + { + if ($this->pwd === false) { + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.9 + if (!$this->_send_sftp_packet(NET_SFTP_REALPATH, pack('Na*', strlen($path), $path))) { + return false; + } + + $response = $this->_get_sftp_packet(); + switch ($this->packet_type) { + case NET_SFTP_NAME: + // although SSH_FXP_NAME is implemented differently in SFTPv3 than it is in SFTPv4+, the following + // should work on all SFTP versions since the only part of the SSH_FXP_NAME packet the following looks + // at is the first part and that part is defined the same in SFTP versions 3 through 6. + $this->_string_shift($response, 4); // skip over the count - it should be 1, anyway + extract(unpack('Nlength', $this->_string_shift($response, 4))); + return $this->_string_shift($response, $length); + case NET_SFTP_STATUS: + $this->_logError($response); + return false; + default: + user_error('Expected SSH_FXP_NAME or SSH_FXP_STATUS'); + return false; + } + } + + if ($path[0] != '/') { + $path = $this->pwd . '/' . $path; + } + + $path = explode('/', $path); + $new = array(); + foreach ($path as $dir) { + if (!strlen($dir)) { + continue; + } + switch ($dir) { + case '..': + array_pop($new); + case '.': + break; + default: + $new[] = $dir; + } + } + + return '/' . implode('/', $new); + } + + /** + * Changes the current directory + * + * @param String $dir + * @return Boolean + * @access public + */ + function chdir($dir) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + // assume current dir if $dir is empty + if ($dir === '') { + $dir = './'; + // suffix a slash if needed + } elseif ($dir[strlen($dir) - 1] != '/') { + $dir.= '/'; + } + + $dir = $this->_realpath($dir); + + // confirm that $dir is, in fact, a valid directory + if ($this->_is_dir($dir)) { + $this->pwd = $dir; + return true; + } + + // we could do a stat on the alleged $dir to see if it's a directory but that doesn't tell us + // the currently logged in user has the appropriate permissions or not. maybe you could see if + // the file's uid / gid match the currently logged in user's uid / gid but how there's no easy + // way to get those with SFTP + + if (!$this->_send_sftp_packet(NET_SFTP_OPENDIR, pack('Na*', strlen($dir), $dir))) { + return false; + } + + // see Net_SFTP::nlist() for a more thorough explanation of the following + $response = $this->_get_sftp_packet(); + switch ($this->packet_type) { + case NET_SFTP_HANDLE: + $handle = substr($response, 4); + break; + case NET_SFTP_STATUS: + $this->_logError($response); + return false; + default: + user_error('Expected SSH_FXP_HANDLE or SSH_FXP_STATUS'); + return false; + } + + if (!$this->_close_handle($handle)) { + return false; + } + + $this->_save_dir($dir); + + $this->pwd = $dir; + return true; + } + + /** + * Returns a list of files in the given directory + * + * @param optional String $dir + * @return Mixed + * @access public + */ + function nlist($dir = '.') + { + return $this->_list($dir, false); + } + + /** + * Returns a detailed list of files in the given directory + * + * @param optional String $dir + * @return Mixed + * @access public + */ + function rawlist($dir = '.') + { + return $this->_list($dir, true); + } + + /** + * Reads a list, be it detailed or not, of files in the given directory + * + * $realpath exists because, in the case of the recursive deletes and recursive chmod's $realpath has already + * been calculated. + * + * @param String $dir + * @param optional Boolean $raw + * @param optional Boolean $realpath + * @return Mixed + * @access private + */ + function _list($dir, $raw = true, $realpath = true) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $dir = $this->_realpath($dir . '/'); + if ($dir === false) { + return false; + } + + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.1.2 + if (!$this->_send_sftp_packet(NET_SFTP_OPENDIR, pack('Na*', strlen($dir), $dir))) { + return false; + } + + $response = $this->_get_sftp_packet(); + switch ($this->packet_type) { + case NET_SFTP_HANDLE: + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-9.2 + // since 'handle' is the last field in the SSH_FXP_HANDLE packet, we'll just remove the first four bytes that + // represent the length of the string and leave it at that + $handle = substr($response, 4); + break; + case NET_SFTP_STATUS: + // presumably SSH_FX_NO_SUCH_FILE or SSH_FX_PERMISSION_DENIED + $this->_logError($response); + return false; + default: + user_error('Expected SSH_FXP_HANDLE or SSH_FXP_STATUS'); + return false; + } + + $this->_save_dir($dir); + + $contents = array(); + while (true) { + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.2.2 + // why multiple SSH_FXP_READDIR packets would be sent when the response to a single one can span arbitrarily many + // SSH_MSG_CHANNEL_DATA messages is not known to me. + if (!$this->_send_sftp_packet(NET_SFTP_READDIR, pack('Na*', strlen($handle), $handle))) { + return false; + } + + $response = $this->_get_sftp_packet(); + switch ($this->packet_type) { + case NET_SFTP_NAME: + extract(unpack('Ncount', $this->_string_shift($response, 4))); + for ($i = 0; $i < $count; $i++) { + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $shortname = $this->_string_shift($response, $length); + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $longname = $this->_string_shift($response, $length); + $attributes = $this->_parseAttributes($response); + if (!isset($attributes['type'])) { + $fileType = $this->_parseLongname($longname); + if ($fileType) { + $attributes['type'] = $fileType; + } + } + if (!$raw) { + $contents[] = $shortname; + } else { + $contents[$shortname] = $attributes; + } + + if (isset($attributes['type']) && $attributes['type'] == NET_SFTP_TYPE_DIRECTORY && ($shortname != '.' && $shortname != '..')) { + $this->_save_dir($dir . '/' . $shortname); + } + // SFTPv6 has an optional boolean end-of-list field, but we'll ignore that, since the + // final SSH_FXP_STATUS packet should tell us that, already. + } + break; + case NET_SFTP_STATUS: + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + if ($status != NET_SFTP_STATUS_EOF) { + $this->_logError($response, $status); + return false; + } + break 2; + default: + user_error('Expected SSH_FXP_NAME or SSH_FXP_STATUS'); + return false; + } + } + + if (!$this->_close_handle($handle)) { + return false; + } + + return $contents; + } + + /** + * Returns the file size, in bytes, or false, on failure + * + * Files larger than 4GB will show up as being exactly 4GB. + * + * @param String $filename + * @return Mixed + * @access public + */ + function size($filename) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $filename = $this->_realpath($filename); + if ($filename === false) { + return false; + } + + return $this->_size($filename); + } + + /** + * Save directories to cache + * + * @param String $dir + * @access private + */ + function _save_dir($dir) + { + // preg_replace('#^/|/(?=/)|/$#', '', $dir) == str_replace('//', '/', trim($dir, '/')) + $dirs = explode('/', preg_replace('#^/|/(?=/)|/$#', '', $dir)); + + $temp = &$this->dirs; + foreach ($dirs as $dir) { + if (!isset($temp[$dir])) { + $temp[$dir] = array(); + } + $temp = &$temp[$dir]; + } + } + + /** + * Remove directories from cache + * + * @param String $dir + * @access private + */ + function _remove_dir($dir) + { + $dirs = explode('/', preg_replace('#^/|/(?=/)|/$#', '', $dir)); + + $temp = &$this->dirs; + foreach ($dirs as $dir) { + if ($dir == end($dirs)) { + unset($temp[$dir]); + return true; + } + if (!isset($temp[$dir])) { + return false; + } + $temp = &$temp[$dir]; + } + } + + /** + * Checks cache for directory + * + * Mainly used by chdir, which is, in turn, also used for determining whether or not an individual + * file is a directory or not by stat() and lstat() + * + * @param String $dir + * @access private + */ + function _is_dir($dir) + { + $dirs = explode('/', preg_replace('#^/|/(?=/)|/$#', '', $dir)); + + $temp = &$this->dirs; + foreach ($dirs as $dir) { + if (!isset($temp[$dir])) { + return false; + } + $temp = &$temp[$dir]; + } + return true; + } + + /** + * Returns general information about a file. + * + * Returns an array on success and false otherwise. + * + * @param String $filename + * @return Mixed + * @access public + */ + function stat($filename) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $filename = $this->_realpath($filename); + if ($filename === false) { + return false; + } + + $stat = $this->_stat($filename, NET_SFTP_STAT); + if ($stat === false) { + return false; + } + if (isset($stat['type'])) { + return $stat; + } + + $pwd = $this->pwd; + $stat['type'] = $this->chdir($filename) ? + NET_SFTP_TYPE_DIRECTORY : + NET_SFTP_TYPE_REGULAR; + $this->pwd = $pwd; + + return $stat; + } + + /** + * Returns general information about a file or symbolic link. + * + * Returns an array on success and false otherwise. + * + * @param String $filename + * @return Mixed + * @access public + */ + function lstat($filename) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $filename = $this->_realpath($filename); + if ($filename === false) { + return false; + } + + $lstat = $this->_stat($filename, NET_SFTP_LSTAT); + if ($lstat === false) { + return false; + } + if (isset($lstat['type'])) { + return $lstat; + } + + $stat = $this->_stat($filename, NET_SFTP_STAT); + + if ($lstat != $stat) { + return array_merge($lstat, array('type' => NET_SFTP_TYPE_SYMLINK)); + } + + $pwd = $this->pwd; + $lstat['type'] = $this->chdir($filename) ? + NET_SFTP_TYPE_DIRECTORY : + NET_SFTP_TYPE_REGULAR; + $this->pwd = $pwd; + + return $lstat; + } + + /** + * Returns general information about a file or symbolic link + * + * Determines information without calling Net_SFTP::_realpath(). + * The second parameter can be either NET_SFTP_STAT or NET_SFTP_LSTAT. + * + * @param String $filename + * @param Integer $type + * @return Mixed + * @access private + */ + function _stat($filename, $type) + { + // SFTPv4+ adds an additional 32-bit integer field - flags - to the following: + $packet = pack('Na*', strlen($filename), $filename); + if (!$this->_send_sftp_packet($type, $packet)) { + return false; + } + + $response = $this->_get_sftp_packet(); + switch ($this->packet_type) { + case NET_SFTP_ATTRS: + return $this->_parseAttributes($response); + case NET_SFTP_STATUS: + $this->_logError($response); + return false; + } + + user_error('Expected SSH_FXP_ATTRS or SSH_FXP_STATUS'); + return false; + } + + /** + * Returns the file size, in bytes, or false, on failure + * + * Determines the size without calling Net_SFTP::_realpath() + * + * @param String $filename + * @return Mixed + * @access private + */ + function _size($filename) + { + $result = $this->_stat($filename, NET_SFTP_STAT); + if ($result === false) { + return false; + } + return isset($result['size']) ? $result['size'] : -1; + } + + /** + * Truncates a file to a given length + * + * @param String $filename + * @param Integer $new_size + * @return Boolean + * @access public + */ + function truncate($filename, $new_size) + { + $attr = pack('N3', NET_SFTP_ATTR_SIZE, $new_size / 4294967296, $new_size); // 4294967296 == 0x100000000 == 1<<32 + + return $this->_setstat($filename, $attr, false); + } + + /** + * Sets access and modification time of file. + * + * If the file does not exist, it will be created. + * + * @param String $filename + * @param optional Integer $time + * @param optional Integer $atime + * @return Boolean + * @access public + */ + function touch($filename, $time = null, $atime = null) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $filename = $this->_realpath($filename); + if ($filename === false) { + return false; + } + + if (!isset($time)) { + $time = time(); + } + if (!isset($atime)) { + $atime = $time; + } + + $flags = NET_SFTP_OPEN_WRITE | NET_SFTP_OPEN_CREATE | NET_SFTP_OPEN_EXCL; + $attr = pack('N3', NET_SFTP_ATTR_ACCESSTIME, $time, $atime); + $packet = pack('Na*Na*', strlen($filename), $filename, $flags, $attr); + if (!$this->_send_sftp_packet(NET_SFTP_OPEN, $packet)) { + return false; + } + + $response = $this->_get_sftp_packet(); + switch ($this->packet_type) { + case NET_SFTP_HANDLE: + return $this->_close_handle(substr($response, 4)); + case NET_SFTP_STATUS: + $this->_logError($response); + break; + default: + user_error('Expected SSH_FXP_HANDLE or SSH_FXP_STATUS'); + return false; + } + + return $this->_setstat($filename, $attr, false); + } + + /** + * Changes file or directory owner + * + * Returns true on success or false on error. + * + * @param String $filename + * @param Integer $uid + * @param optional Boolean $recursive + * @return Boolean + * @access public + */ + function chown($filename, $uid, $recursive = false) + { + // quoting from , + // "if the owner or group is specified as -1, then that ID is not changed" + $attr = pack('N3', NET_SFTP_ATTR_UIDGID, $uid, -1); + + return $this->_setstat($filename, $attr, $recursive); + } + + /** + * Changes file or directory group + * + * Returns true on success or false on error. + * + * @param String $filename + * @param Integer $gid + * @param optional Boolean $recursive + * @return Boolean + * @access public + */ + function chgrp($filename, $gid, $recursive = false) + { + $attr = pack('N3', NET_SFTP_ATTR_UIDGID, -1, $gid); + + return $this->_setstat($filename, $attr, $recursive); + } + + /** + * Set permissions on a file. + * + * Returns the new file permissions on success or false on error. + * If $recursive is true than this just returns true or false. + * + * @param Integer $mode + * @param String $filename + * @param optional Boolean $recursive + * @return Mixed + * @access public + */ + function chmod($mode, $filename, $recursive = false) + { + if (is_string($mode) && is_int($filename)) { + $temp = $mode; + $mode = $filename; + $filename = $temp; + } + + $attr = pack('N2', NET_SFTP_ATTR_PERMISSIONS, $mode & 07777); + if (!$this->_setstat($filename, $attr, $recursive)) { + return false; + } + if ($recursive) { + return true; + } + + // rather than return what the permissions *should* be, we'll return what they actually are. this will also + // tell us if the file actually exists. + // incidentally, SFTPv4+ adds an additional 32-bit integer field - flags - to the following: + $packet = pack('Na*', strlen($filename), $filename); + if (!$this->_send_sftp_packet(NET_SFTP_STAT, $packet)) { + return false; + } + + $response = $this->_get_sftp_packet(); + switch ($this->packet_type) { + case NET_SFTP_ATTRS: + $attrs = $this->_parseAttributes($response); + return $attrs['permissions']; + case NET_SFTP_STATUS: + $this->_logError($response); + return false; + } + + user_error('Expected SSH_FXP_ATTRS or SSH_FXP_STATUS'); + return false; + } + + /** + * Sets information about a file + * + * @param String $filename + * @param String $attr + * @param Boolean $recursive + * @return Boolean + * @access private + */ + function _setstat($filename, $attr, $recursive) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $filename = $this->_realpath($filename); + if ($filename === false) { + return false; + } + + if ($recursive) { + $i = 0; + $result = $this->_setstat_recursive($filename, $attr, $i); + $this->_read_put_responses($i); + return $result; + } + + // SFTPv4+ has an additional byte field - type - that would need to be sent, as well. setting it to + // SSH_FILEXFER_TYPE_UNKNOWN might work. if not, we'd have to do an SSH_FXP_STAT before doing an SSH_FXP_SETSTAT. + if (!$this->_send_sftp_packet(NET_SFTP_SETSTAT, pack('Na*a*', strlen($filename), $filename, $attr))) { + return false; + } + + /* + "Because some systems must use separate system calls to set various attributes, it is possible that a failure + response will be returned, but yet some of the attributes may be have been successfully modified. If possible, + servers SHOULD avoid this situation; however, clients MUST be aware that this is possible." + + -- http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.6 + */ + $response = $this->_get_sftp_packet(); + if ($this->packet_type != NET_SFTP_STATUS) { + user_error('Expected SSH_FXP_STATUS'); + return false; + } + + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + if ($status != NET_SFTP_STATUS_OK) { + $this->_logError($response, $status); + return false; + } + + return true; + } + + /** + * Recursively sets information on directories on the SFTP server + * + * Minimizes directory lookups and SSH_FXP_STATUS requests for speed. + * + * @param String $path + * @param String $attr + * @param Integer $i + * @return Boolean + * @access private + */ + function _setstat_recursive($path, $attr, &$i) + { + if (!$this->_read_put_responses($i)) { + return false; + } + $i = 0; + $entries = $this->_list($path, true, false); + + if ($entries === false) { + return $this->_setstat($path, $attr, false); + } + + // normally $entries would have at least . and .. but it might not if the directories + // permissions didn't allow reading + if (empty($entries)) { + return false; + } + + foreach ($entries as $filename=>$props) { + if ($filename == '.' || $filename == '..') { + continue; + } + + if (!isset($props['type'])) { + return false; + } + + $temp = $path . '/' . $filename; + if ($props['type'] == NET_SFTP_TYPE_DIRECTORY) { + if (!$this->_setstat_recursive($temp, $attr, $i)) { + return false; + } + } else { + if (!$this->_send_sftp_packet(NET_SFTP_SETSTAT, pack('Na*a*', strlen($temp), $temp, $attr))) { + return false; + } + + $i++; + + if ($i >= NET_SFTP_QUEUE_SIZE) { + if (!$this->_read_put_responses($i)) { + return false; + } + $i = 0; + } + } + } + + if (!$this->_send_sftp_packet(NET_SFTP_SETSTAT, pack('Na*a*', strlen($path), $path, $attr))) { + return false; + } + + $i++; + + if ($i >= NET_SFTP_QUEUE_SIZE) { + if (!$this->_read_put_responses($i)) { + return false; + } + $i = 0; + } + + return true; + } + + /** + * Creates a directory. + * + * @param String $dir + * @return Boolean + * @access public + */ + function mkdir($dir, $mode = -1, $recursive = false) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $dir = $this->_realpath($dir); + // by not providing any permissions, hopefully the server will use the logged in users umask - their + // default permissions. + $attr = $mode == -1 ? "\0\0\0\0" : pack('N2', NET_SFTP_ATTR_PERMISSIONS, $mode & 07777); + + if ($recursive) { + $dirs = explode('/', preg_replace('#/(?=/)|/$#', '', $dir)); + if (empty($dirs[0])) { + array_shift($dirs); + $dirs[0] = '/' . $dirs[0]; + } + for ($i = 0; $i < count($dirs); $i++) { + $temp = array_slice($dirs, 0, $i + 1); + $temp = implode('/', $temp); + $result = $this->_mkdir_helper($temp, $attr); + } + return $result; + } + + return $this->_mkdir_helper($dir, $attr); + } + + /** + * Helper function for directory creation + * + * @param String $dir + * @return Boolean + * @access private + */ + function _mkdir_helper($dir, $attr) + { + if (!$this->_send_sftp_packet(NET_SFTP_MKDIR, pack('Na*a*', strlen($dir), $dir, $attr))) { + return false; + } + + $response = $this->_get_sftp_packet(); + if ($this->packet_type != NET_SFTP_STATUS) { + user_error('Expected SSH_FXP_STATUS'); + return false; + } + + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + if ($status != NET_SFTP_STATUS_OK) { + $this->_logError($response, $status); + return false; + } + + $this->_save_dir($dir); + + return true; + } + + /** + * Removes a directory. + * + * @param String $dir + * @return Boolean + * @access public + */ + function rmdir($dir) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $dir = $this->_realpath($dir); + if ($dir === false) { + return false; + } + + if (!$this->_send_sftp_packet(NET_SFTP_RMDIR, pack('Na*', strlen($dir), $dir))) { + return false; + } + + $response = $this->_get_sftp_packet(); + if ($this->packet_type != NET_SFTP_STATUS) { + user_error('Expected SSH_FXP_STATUS'); + return false; + } + + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + if ($status != NET_SFTP_STATUS_OK) { + // presumably SSH_FX_NO_SUCH_FILE or SSH_FX_PERMISSION_DENIED? + $this->_logError($response, $status); + return false; + } + + $this->_remove_dir($dir); + + return true; + } + + /** + * Uploads a file to the SFTP server. + * + * By default, Net_SFTP::put() does not read from the local filesystem. $data is dumped directly into $remote_file. + * So, for example, if you set $data to 'filename.ext' and then do Net_SFTP::get(), you will get a file, twelve bytes + * long, containing 'filename.ext' as its contents. + * + * Setting $mode to NET_SFTP_LOCAL_FILE will change the above behavior. With NET_SFTP_LOCAL_FILE, $remote_file will + * contain as many bytes as filename.ext does on your local filesystem. If your filename.ext is 1MB then that is how + * large $remote_file will be, as well. + * + * Currently, only binary mode is supported. As such, if the line endings need to be adjusted, you will need to take + * care of that, yourself. + * + * $mode can take an additional two parameters - NET_SFTP_RESUME and NET_SFTP_RESUME_START. These are bitwise AND'd with + * $mode. So if you want to resume upload of a 300mb file on the local file system you'd set $mode to the following: + * + * NET_SFTP_LOCAL_FILE | NET_SFTP_RESUME + * + * If you wanted to simply append the full contents of a local file to the full contents of a remote file you'd replace + * NET_SFTP_RESUME with NET_SFTP_RESUME_START. + * + * If $mode & (NET_SFTP_RESUME | NET_SFTP_RESUME_START) then NET_SFTP_RESUME_START will be assumed. + * + * $start and $local_start give you more fine grained control over this process and take precident over NET_SFTP_RESUME + * when they're non-negative. ie. $start could let you write at the end of a file (like NET_SFTP_RESUME) or in the middle + * of one. $local_start could let you start your reading from the end of a file (like NET_SFTP_RESUME_START) or in the + * middle of one. + * + * Setting $local_start to > 0 or $mode | NET_SFTP_RESUME_START doesn't do anything unless $mode | NET_SFTP_LOCAL_FILE. + * + * @param String $remote_file + * @param String $data + * @param optional Integer $mode + * @param optional Integer $start + * @param optional Integer $local_start + * @return Boolean + * @access public + * @internal ASCII mode for SFTPv4/5/6 can be supported by adding a new function - Net_SFTP::setMode(). + */ + function put($remote_file, $data, $mode = NET_SFTP_STRING, $start = -1, $local_start = -1) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $remote_file = $this->_realpath($remote_file); + if ($remote_file === false) { + return false; + } + + $flags = NET_SFTP_OPEN_WRITE | NET_SFTP_OPEN_CREATE; + // according to the SFTP specs, NET_SFTP_OPEN_APPEND should "force all writes to append data at the end of the file." + // in practice, it doesn't seem to do that. + //$flags|= ($mode & NET_SFTP_RESUME) ? NET_SFTP_OPEN_APPEND : NET_SFTP_OPEN_TRUNCATE; + + if ($start >= 0) { + $offset = $start; + } elseif ($mode & NET_SFTP_RESUME) { + // if NET_SFTP_OPEN_APPEND worked as it should _size() wouldn't need to be called + $size = $this->_size($remote_file); + $offset = $size !== false ? $size : 0; + } else { + $offset = 0; + $flags|= NET_SFTP_OPEN_TRUNCATE; + } + + $packet = pack('Na*N2', strlen($remote_file), $remote_file, $flags, 0); + if (!$this->_send_sftp_packet(NET_SFTP_OPEN, $packet)) { + return false; + } + + $response = $this->_get_sftp_packet(); + switch ($this->packet_type) { + case NET_SFTP_HANDLE: + $handle = substr($response, 4); + break; + case NET_SFTP_STATUS: + $this->_logError($response); + return false; + default: + user_error('Expected SSH_FXP_HANDLE or SSH_FXP_STATUS'); + return false; + } + + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.2.3 + if ($mode & NET_SFTP_LOCAL_FILE) { + if (!is_file($data)) { + user_error("$data is not a valid file"); + return false; + } + $fp = @fopen($data, 'rb'); + if (!$fp) { + return false; + } + $size = filesize($data); + + if ($local_start >= 0) { + fseek($fp, $local_start); + } elseif ($mode & NET_SFTP_RESUME_START) { + // do nothing + } else { + fseek($fp, $offset); + } + } else { + $size = strlen($data); + } + + $sent = 0; + $size = $size < 0 ? ($size & 0x7FFFFFFF) + 0x80000000 : $size; + + $sftp_packet_size = 4096; // PuTTY uses 4096 + // make the SFTP packet be exactly 4096 bytes by including the bytes in the NET_SFTP_WRITE packets "header" + $sftp_packet_size-= strlen($handle) + 25; + $i = 0; + while ($sent < $size) { + $temp = $mode & NET_SFTP_LOCAL_FILE ? fread($fp, $sftp_packet_size) : substr($data, $sent, $sftp_packet_size); + $subtemp = $offset + $sent; + $packet = pack('Na*N3a*', strlen($handle), $handle, $subtemp / 4294967296, $subtemp, strlen($temp), $temp); + if (!$this->_send_sftp_packet(NET_SFTP_WRITE, $packet)) { + fclose($fp); + return false; + } + $sent+= strlen($temp); + + $i++; + + if ($i == NET_SFTP_QUEUE_SIZE) { + if (!$this->_read_put_responses($i)) { + $i = 0; + break; + } + $i = 0; + } + } + + if (!$this->_read_put_responses($i)) { + if ($mode & NET_SFTP_LOCAL_FILE) { + fclose($fp); + } + $this->_close_handle($handle); + return false; + } + + if ($mode & NET_SFTP_LOCAL_FILE) { + fclose($fp); + } + + return $this->_close_handle($handle); + } + + /** + * Reads multiple successive SSH_FXP_WRITE responses + * + * Sending an SSH_FXP_WRITE packet and immediately reading its response isn't as efficient as blindly sending out $i + * SSH_FXP_WRITEs, in succession, and then reading $i responses. + * + * @param Integer $i + * @return Boolean + * @access private + */ + function _read_put_responses($i) + { + while ($i--) { + $response = $this->_get_sftp_packet(); + if ($this->packet_type != NET_SFTP_STATUS) { + user_error('Expected SSH_FXP_STATUS'); + return false; + } + + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + if ($status != NET_SFTP_STATUS_OK) { + $this->_logError($response, $status); + break; + } + } + + return $i < 0; + } + + /** + * Close handle + * + * @param String $handle + * @return Boolean + * @access private + */ + function _close_handle($handle) + { + if (!$this->_send_sftp_packet(NET_SFTP_CLOSE, pack('Na*', strlen($handle), $handle))) { + return false; + } + + // "The client MUST release all resources associated with the handle regardless of the status." + // -- http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.1.3 + $response = $this->_get_sftp_packet(); + if ($this->packet_type != NET_SFTP_STATUS) { + user_error('Expected SSH_FXP_STATUS'); + return false; + } + + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + if ($status != NET_SFTP_STATUS_OK) { + $this->_logError($response, $status); + return false; + } + + return true; + } + + /** + * Downloads a file from the SFTP server. + * + * Returns a string containing the contents of $remote_file if $local_file is left undefined or a boolean false if + * the operation was unsuccessful. If $local_file is defined, returns true or false depending on the success of the + * operation. + * + * $offset and $length can be used to download files in chunks. + * + * @param String $remote_file + * @param optional String $local_file + * @param optional Integer $offset + * @param optional Integer $length + * @return Mixed + * @access public + */ + function get($remote_file, $local_file = false, $offset = 0, $length = -1) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $remote_file = $this->_realpath($remote_file); + if ($remote_file === false) { + return false; + } + + $packet = pack('Na*N2', strlen($remote_file), $remote_file, NET_SFTP_OPEN_READ, 0); + if (!$this->_send_sftp_packet(NET_SFTP_OPEN, $packet)) { + return false; + } + + $response = $this->_get_sftp_packet(); + switch ($this->packet_type) { + case NET_SFTP_HANDLE: + $handle = substr($response, 4); + break; + case NET_SFTP_STATUS: // presumably SSH_FX_NO_SUCH_FILE or SSH_FX_PERMISSION_DENIED + $this->_logError($response); + return false; + default: + user_error('Expected SSH_FXP_HANDLE or SSH_FXP_STATUS'); + return false; + } + + if ($local_file !== false) { + $fp = fopen($local_file, 'wb'); + if (!$fp) { + return false; + } + } else { + $content = ''; + } + + $start = $offset; + $size = $this->max_sftp_packet < $length || $length < 0 ? $this->max_sftp_packet : $length; + while (true) { + $packet = pack('Na*N3', strlen($handle), $handle, $offset / 4294967296, $offset, $size); + if (!$this->_send_sftp_packet(NET_SFTP_READ, $packet)) { + if ($local_file !== false) { + fclose($fp); + } + return false; + } + + $response = $this->_get_sftp_packet(); + switch ($this->packet_type) { + case NET_SFTP_DATA: + $temp = substr($response, 4); + $offset+= strlen($temp); + if ($local_file === false) { + $content.= $temp; + } else { + fputs($fp, $temp); + } + break; + case NET_SFTP_STATUS: + // could, in theory, return false if !strlen($content) but we'll hold off for the time being + $this->_logError($response); + break 2; + default: + user_error('Expected SSH_FXP_DATA or SSH_FXP_STATUS'); + if ($local_file !== false) { + fclose($fp); + } + return false; + } + + if ($length > 0 && $length <= $offset - $start) { + break; + } + } + + if ($length > 0 && $length <= $offset - $start) { + if ($local_file === false) { + $content = substr($content, 0, $length); + } else { + ftruncate($fp, $length); + } + } + + if ($local_file !== false) { + fclose($fp); + } + + if (!$this->_close_handle($handle)) { + return false; + } + + // if $content isn't set that means a file was written to + return isset($content) ? $content : true; + } + + /** + * Deletes a file on the SFTP server. + * + * @param String $path + * @param Boolean $recursive + * @return Boolean + * @access public + */ + function delete($path, $recursive = true) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $path = $this->_realpath($path); + if ($path === false) { + return false; + } + + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.3 + if (!$this->_send_sftp_packet(NET_SFTP_REMOVE, pack('Na*', strlen($path), $path))) { + return false; + } + + $response = $this->_get_sftp_packet(); + if ($this->packet_type != NET_SFTP_STATUS) { + user_error('Expected SSH_FXP_STATUS'); + return false; + } + + // if $status isn't SSH_FX_OK it's probably SSH_FX_NO_SUCH_FILE or SSH_FX_PERMISSION_DENIED + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + if ($status != NET_SFTP_STATUS_OK) { + $this->_logError($response, $status); + if (!$recursive) { + return false; + } + $i = 0; + $result = $this->_delete_recursive($path, $i); + $this->_read_put_responses($i); + return $result; + } + + return true; + } + + /** + * Recursively deletes directories on the SFTP server + * + * Minimizes directory lookups and SSH_FXP_STATUS requests for speed. + * + * @param String $path + * @param Integer $i + * @return Boolean + * @access private + */ + function _delete_recursive($path, &$i) + { + if (!$this->_read_put_responses($i)) { + return false; + } + $i = 0; + $entries = $this->_list($path, true, false); + + // normally $entries would have at least . and .. but it might not if the directories + // permissions didn't allow reading + if (empty($entries)) { + return false; + } + + foreach ($entries as $filename=>$props) { + if ($filename == '.' || $filename == '..') { + continue; + } + + if (!isset($props['type'])) { + return false; + } + + $temp = $path . '/' . $filename; + if ($props['type'] == NET_SFTP_TYPE_DIRECTORY) { + if (!$this->_delete_recursive($temp, $i)) { + return false; + } + } else { + if (!$this->_send_sftp_packet(NET_SFTP_REMOVE, pack('Na*', strlen($temp), $temp))) { + return false; + } + + $i++; + + if ($i >= NET_SFTP_QUEUE_SIZE) { + if (!$this->_read_put_responses($i)) { + return false; + } + $i = 0; + } + } + } + + if (!$this->_send_sftp_packet(NET_SFTP_RMDIR, pack('Na*', strlen($path), $path))) { + return false; + } + $this->_remove_dir($path); + + $i++; + + if ($i >= NET_SFTP_QUEUE_SIZE) { + if (!$this->_read_put_responses($i)) { + return false; + } + $i = 0; + } + + return true; + } + + /** + * Renames a file or a directory on the SFTP server + * + * @param String $oldname + * @param String $newname + * @return Boolean + * @access public + */ + function rename($oldname, $newname) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + $oldname = $this->_realpath($oldname); + $newname = $this->_realpath($newname); + if ($oldname === false || $newname === false) { + return false; + } + + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.3 + $packet = pack('Na*Na*', strlen($oldname), $oldname, strlen($newname), $newname); + if (!$this->_send_sftp_packet(NET_SFTP_RENAME, $packet)) { + return false; + } + + $response = $this->_get_sftp_packet(); + if ($this->packet_type != NET_SFTP_STATUS) { + user_error('Expected SSH_FXP_STATUS'); + return false; + } + + // if $status isn't SSH_FX_OK it's probably SSH_FX_NO_SUCH_FILE or SSH_FX_PERMISSION_DENIED + extract(unpack('Nstatus', $this->_string_shift($response, 4))); + if ($status != NET_SFTP_STATUS_OK) { + $this->_logError($response, $status); + return false; + } + + return true; + } + + /** + * Parse Attributes + * + * See '7. File Attributes' of draft-ietf-secsh-filexfer-13 for more info. + * + * @param String $response + * @return Array + * @access private + */ + function _parseAttributes(&$response) + { + $attr = array(); + extract(unpack('Nflags', $this->_string_shift($response, 4))); + // SFTPv4+ have a type field (a byte) that follows the above flag field + foreach ($this->attributes as $key => $value) { + switch ($flags & $key) { + case NET_SFTP_ATTR_SIZE: // 0x00000001 + // size is represented by a 64-bit integer, so we perhaps ought to be doing the following: + // $attr['size'] = new Math_BigInteger($this->_string_shift($response, 8), 256); + // of course, you shouldn't be using Net_SFTP to transfer files that are in excess of 4GB + // (0xFFFFFFFF bytes), anyway. as such, we'll just represent all file sizes that are bigger than + // 4GB as being 4GB. + extract(unpack('Nupper/Nsize', $this->_string_shift($response, 8))); + $attr['size'] = $upper ? 4294967296 * $upper : 0; + $attr['size']+= $size < 0 ? ($size & 0x7FFFFFFF) + 0x80000000 : $size; + break; + case NET_SFTP_ATTR_UIDGID: // 0x00000002 (SFTPv3 only) + $attr+= unpack('Nuid/Ngid', $this->_string_shift($response, 8)); + break; + case NET_SFTP_ATTR_PERMISSIONS: // 0x00000004 + $attr+= unpack('Npermissions', $this->_string_shift($response, 4)); + // mode == permissions; permissions was the original array key and is retained for bc purposes. + // mode was added because that's the more industry standard terminology + $attr+= array('mode' => $attr['permissions']); + $fileType = $this->_parseMode($attr['permissions']); + if ($fileType !== false) { + $attr+= array('type' => $fileType); + } + break; + case NET_SFTP_ATTR_ACCESSTIME: // 0x00000008 + $attr+= unpack('Natime/Nmtime', $this->_string_shift($response, 8)); + break; + case NET_SFTP_ATTR_EXTENDED: // 0x80000000 + extract(unpack('Ncount', $this->_string_shift($response, 4))); + for ($i = 0; $i < $count; $i++) { + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $key = $this->_string_shift($response, $length); + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $attr[$key] = $this->_string_shift($response, $length); + } + } + } + return $attr; + } + + /** + * Attempt to identify the file type + * + * Quoting the SFTP RFC, "Implementations MUST NOT send bits that are not defined" but they seem to anyway + * + * @param Integer $mode + * @return Integer + * @access private + */ + function _parseMode($mode) + { + // values come from http://lxr.free-electrons.com/source/include/uapi/linux/stat.h#L12 + // see, also, http://linux.die.net/man/2/stat + switch ($mode & 0170000) {// ie. 1111 0000 0000 0000 + case 0000000: // no file type specified - figure out the file type using alternative means + return false; + case 0040000: + return NET_SFTP_TYPE_DIRECTORY; + case 0100000: + return NET_SFTP_TYPE_REGULAR; + case 0120000: + return NET_SFTP_TYPE_SYMLINK; + // new types introduced in SFTPv5+ + // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-05#section-5.2 + case 0010000: // named pipe (fifo) + return NET_SFTP_TYPE_FIFO; + case 0020000: // character special + return NET_SFTP_TYPE_CHAR_DEVICE; + case 0060000: // block special + return NET_SFTP_BLOCK_DEVICE; + case 0140000: // socket + return NET_SFTP_TYPE_SOCKET; + case 0160000: // whiteout + // "SPECIAL should be used for files that are of + // a known type which cannot be expressed in the protocol" + return NET_SFTP_TYPE_SPECIAL; + default: + return NET_SFTP_TYPE_UNKNOWN; + } + } + + /** + * Parse Longname + * + * SFTPv3 doesn't provide any easy way of identifying a file type. You could try to open + * a file as a directory and see if an error is returned or you could try to parse the + * SFTPv3-specific longname field of the SSH_FXP_NAME packet. That's what this function does. + * The result is returned using the + * {@link http://tools.ietf.org/html/draft-ietf-secsh-filexfer-04#section-5.2 SFTPv4 type constants}. + * + * If the longname is in an unrecognized format bool(false) is returned. + * + * @param String $longname + * @return Mixed + * @access private + */ + function _parseLongname($longname) + { + // http://en.wikipedia.org/wiki/Unix_file_types + // http://en.wikipedia.org/wiki/Filesystem_permissions#Notation_of_traditional_Unix_permissions + if (preg_match('#^[^/]([r-][w-][xstST-]){3}#', $longname)) { + switch ($longname[0]) { + case '-': + return NET_SFTP_TYPE_REGULAR; + case 'd': + return NET_SFTP_TYPE_DIRECTORY; + case 'l': + return NET_SFTP_TYPE_SYMLINK; + default: + return NET_SFTP_TYPE_SPECIAL; + } + } + + return false; + } + + /** + * Sends SFTP Packets + * + * See '6. General Packet Format' of draft-ietf-secsh-filexfer-13 for more info. + * + * @param Integer $type + * @param String $data + * @see Net_SFTP::_get_sftp_packet() + * @see Net_SSH2::_send_channel_packet() + * @return Boolean + * @access private + */ + function _send_sftp_packet($type, $data) + { + $packet = $this->request_id !== false ? + pack('NCNa*', strlen($data) + 5, $type, $this->request_id, $data) : + pack('NCa*', strlen($data) + 1, $type, $data); + + $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838 + $result = $this->_send_channel_packet(NET_SFTP_CHANNEL, $packet); + $stop = strtok(microtime(), ' ') + strtok(''); + + if (defined('NET_SFTP_LOGGING')) { + $packet_type = '-> ' . $this->packet_types[$type] . + ' (' . round($stop - $start, 4) . 's)'; + if (NET_SFTP_LOGGING == NET_SFTP_LOG_REALTIME) { + echo "
    \r\n" . $this->_format_log(array($data), array($packet_type)) . "\r\n
    \r\n"; + flush(); + ob_flush(); + } else { + $this->packet_type_log[] = $packet_type; + if (NET_SFTP_LOGGING == NET_SFTP_LOG_COMPLEX) { + $this->packet_log[] = $data; + } + } + } + + return $result; + } + + /** + * Receives SFTP Packets + * + * See '6. General Packet Format' of draft-ietf-secsh-filexfer-13 for more info. + * + * Incidentally, the number of SSH_MSG_CHANNEL_DATA messages has no bearing on the number of SFTP packets present. + * There can be one SSH_MSG_CHANNEL_DATA messages containing two SFTP packets or there can be two SSH_MSG_CHANNEL_DATA + * messages containing one SFTP packet. + * + * @see Net_SFTP::_send_sftp_packet() + * @return String + * @access private + */ + function _get_sftp_packet() + { + $this->curTimeout = false; + + $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838 + + // SFTP packet length + while (strlen($this->packet_buffer) < 4) { + $temp = $this->_get_channel_packet(NET_SFTP_CHANNEL); + if (is_bool($temp)) { + $this->packet_type = false; + $this->packet_buffer = ''; + return false; + } + $this->packet_buffer.= $temp; + } + extract(unpack('Nlength', $this->_string_shift($this->packet_buffer, 4))); + $tempLength = $length; + $tempLength-= strlen($this->packet_buffer); + + // SFTP packet type and data payload + while ($tempLength > 0) { + $temp = $this->_get_channel_packet(NET_SFTP_CHANNEL); + if (is_bool($temp)) { + $this->packet_type = false; + $this->packet_buffer = ''; + return false; + } + $this->packet_buffer.= $temp; + $tempLength-= strlen($temp); + } + + $stop = strtok(microtime(), ' ') + strtok(''); + + $this->packet_type = ord($this->_string_shift($this->packet_buffer)); + + if ($this->request_id !== false) { + $this->_string_shift($this->packet_buffer, 4); // remove the request id + $length-= 5; // account for the request id and the packet type + } else { + $length-= 1; // account for the packet type + } + + $packet = $this->_string_shift($this->packet_buffer, $length); + + if (defined('NET_SFTP_LOGGING')) { + $packet_type = '<- ' . $this->packet_types[$this->packet_type] . + ' (' . round($stop - $start, 4) . 's)'; + if (NET_SFTP_LOGGING == NET_SFTP_LOG_REALTIME) { + echo "
    \r\n" . $this->_format_log(array($packet), array($packet_type)) . "\r\n
    \r\n"; + flush(); + ob_flush(); + } else { + $this->packet_type_log[] = $packet_type; + if (NET_SFTP_LOGGING == NET_SFTP_LOG_COMPLEX) { + $this->packet_log[] = $packet; + } + } + } + + return $packet; + } + + /** + * Returns a log of the packets that have been sent and received. + * + * Returns a string if NET_SFTP_LOGGING == NET_SFTP_LOG_COMPLEX, an array if NET_SFTP_LOGGING == NET_SFTP_LOG_SIMPLE and false if !defined('NET_SFTP_LOGGING') + * + * @access public + * @return String or Array + */ + function getSFTPLog() + { + if (!defined('NET_SFTP_LOGGING')) { + return false; + } + + switch (NET_SFTP_LOGGING) { + case NET_SFTP_LOG_COMPLEX: + return $this->_format_log($this->packet_log, $this->packet_type_log); + break; + //case NET_SFTP_LOG_SIMPLE: + default: + return $this->packet_type_log; + } + } + + /** + * Returns all errors + * + * @return String + * @access public + */ + function getSFTPErrors() + { + return $this->sftp_errors; + } + + /** + * Returns the last error + * + * @return String + * @access public + */ + function getLastSFTPError() + { + return count($this->sftp_errors) ? $this->sftp_errors[count($this->sftp_errors) - 1] : ''; + } + + /** + * Get supported SFTP versions + * + * @return Array + * @access public + */ + function getSupportedVersions() + { + $temp = array('version' => $this->version); + if (isset($this->extensions['versions'])) { + $temp['extensions'] = $this->extensions['versions']; + } + return $temp; + } + + /** + * Disconnect + * + * @param Integer $reason + * @return Boolean + * @access private + */ + function _disconnect($reason) + { + $this->pwd = false; + parent::_disconnect($reason); + } +} diff --git a/lam/lib/3rdParty/phpseclib/Net/SFTP/Stream.php b/lam/lib/3rdParty/phpseclib/Net/SFTP/Stream.php new file mode 100644 index 00000000..f9005a55 --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/Net/SFTP/Stream.php @@ -0,0 +1,775 @@ + + * @copyright MMXIII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @link http://phpseclib.sourceforge.net + */ + +/** + * SFTP Stream Wrapper + * + * @package Net_SFTP_Stream + * @author Jim Wigginton + * @version 0.3.2 + * @access public + */ +class Net_SFTP_Stream +{ + /** + * SFTP instances + * + * Rather than re-create the connection we re-use instances if possible + * + * @var Array + * @access static + */ + static $instances; + + /** + * SFTP instance + * + * @var Object + * @access private + */ + var $sftp; + + /** + * Path + * + * @var String + * @access private + */ + var $path; + + /** + * Mode + * + * @var String + * @access private + */ + var $mode; + + /** + * Position + * + * @var Integer + * @access private + */ + var $pos; + + /** + * Size + * + * @var Integer + * @access private + */ + var $size; + + /** + * Directory entries + * + * @var Array + * @access private + */ + var $entries; + + /** + * EOF flag + * + * @var Boolean + * @access private + */ + var $eof; + + /** + * Context resource + * + * Technically this needs to be publically accessible so PHP can set it directly + * + * @var Resource + * @access public + */ + var $context; + + /** + * Notification callback function + * + * @var Callable + * @access public + */ + var $notification; + + /** + * The Constructor + * + * @access public + */ + function Net_SFTP_Stream() + { + if (defined('NET_SFTP_STREAM_LOGGING')) { + echo "__construct()\r\n"; + } + + if (!class_exists('Net_SFTP')) { + include_once 'Net/SFTP.php'; + } + } + + /** + * Path Parser + * + * Extract a path from a URI and actually connect to an SSH server if appropriate + * + * If "notification" is set as a context parameter the message code for successful login is + * NET_SSH2_MSG_USERAUTH_SUCCESS. For a failed login it's NET_SSH2_MSG_USERAUTH_FAILURE. + * + * @param String $path + * @return String + * @access private + */ + function _parse_path($path) + { + extract(parse_url($path) + array('port' => 22)); + + if (!isset($host)) { + return false; + } + + if (isset($this->context)) { + $context = stream_context_get_params($this->context); + if (isset($context['notification'])) { + $this->notification = $context['notification']; + } + } + + if ($host[0] == '$') { + $host = substr($host, 1); + global $$host; + if (!is_object($$host) || get_class($$host) != 'Net_SFTP') { + return false; + } + $this->sftp = $$host; + } else { + if (isset($this->context)) { + $context = stream_context_get_options($this->context); + } + if (isset($context['sftp']['session'])) { + $sftp = $context['sftp']['session']; + } + if (isset($context['sftp']['sftp'])) { + $sftp = $context['sftp']['sftp']; + } + if (isset($sftp) && is_object($sftp) && get_class($sftp) == 'Net_SFTP') { + $this->sftp = $sftp; + return $path; + } + if (isset($context['sftp']['username'])) { + $user = $context['sftp']['username']; + } + if (isset($context['sftp']['password'])) { + $pass = $context['sftp']['password']; + } + if (isset($context['sftp']['privkey']) && is_object($context['sftp']['privkey']) && get_Class($context['sftp']['privkey']) == 'Crypt_RSA') { + $pass = $context['sftp']['privkey']; + } + + if (!isset($user) || !isset($pass)) { + return false; + } + + // casting $pass to a string is necessary in the event that it's a Crypt_RSA object + if (isset(self::$instances[$host][$port][$user][(string) $pass])) { + $this->sftp = self::$instances[$host][$port][$user][(string) $pass]; + } else { + $this->sftp = new Net_SFTP($host, $port); + if (isset($this->notification) && is_callable($this->notification)) { + /* if !is_callable($this->notification) we could do this: + + user_error('fopen(): failed to call user notifier', E_USER_WARNING); + + the ftp wrapper gives errors like that when the notifier isn't callable. + i've opted not to do that, however, since the ftp wrapper gives the line + on which the fopen occurred as the line number - not the line that the + user_error is on. + */ + call_user_func($this->notification, STREAM_NOTIFY_CONNECT, STREAM_NOTIFY_SEVERITY_INFO, '', 0, 0, 0); + call_user_func($this->notification, STREAM_NOTIFY_AUTH_REQUIRED, STREAM_NOTIFY_SEVERITY_INFO, '', 0, 0, 0); + if (!$this->sftp->login($user, $pass)) { + call_user_func($this->notification, STREAM_NOTIFY_AUTH_RESULT, STREAM_NOTIFY_SEVERITY_ERR, 'Login Failure', NET_SSH2_MSG_USERAUTH_FAILURE, 0, 0); + return false; + } + call_user_func($this->notification, STREAM_NOTIFY_AUTH_RESULT, STREAM_NOTIFY_SEVERITY_INFO, 'Login Success', NET_SSH2_MSG_USERAUTH_SUCCESS, 0, 0); + } else { + if (!$this->sftp->login($user, $pass)) { + return false; + } + } + self::$instances[$host][$port][$user][(string) $pass] = $this->sftp; + } + } + + return $path; + } + + /** + * Opens file or URL + * + * @param String $path + * @param String $mode + * @param Integer $options + * @param String $opened_path + * @return Boolean + * @access public + */ + function _stream_open($path, $mode, $options, &$opened_path) + { + $path = $this->_parse_path($path); + + if ($path === false) { + return false; + } + $this->path = $path; + + $this->size = $this->sftp->size($path); + $this->mode = preg_replace('#[bt]$#', '', $mode); + $this->eof = false; + + if ($this->size === false) { + if ($this->mode[0] == 'r') { + return false; + } + } else { + switch ($this->mode[0]) { + case 'x': + return false; + case 'w': + case 'c': + $this->sftp->truncate($path, 0); + } + } + + $this->pos = $this->mode[0] != 'a' ? 0 : $this->size; + + return true; + } + + /** + * Read from stream + * + * @param Integer $count + * @return Mixed + * @access public + */ + function _stream_read($count) + { + switch ($this->mode) { + case 'w': + case 'a': + case 'x': + case 'c': + return false; + } + + // commented out because some files - eg. /dev/urandom - will say their size is 0 when in fact it's kinda infinite + //if ($this->pos >= $this->size) { + // $this->eof = true; + // return false; + //} + + $result = $this->sftp->get($this->path, false, $this->pos, $count); + if (isset($this->notification) && is_callable($this->notification)) { + if ($result === false) { + call_user_func($this->notification, STREAM_NOTIFY_FAILURE, STREAM_NOTIFY_SEVERITY_ERR, $this->sftp->getLastSFTPError(), NET_SFTP_OPEN, 0, 0); + return 0; + } + // seems that PHP calls stream_read in 8k chunks + call_user_func($this->notification, STREAM_NOTIFY_PROGRESS, STREAM_NOTIFY_SEVERITY_INFO, '', 0, strlen($result), $this->size); + } + + if (empty($result)) { // ie. false or empty string + $this->eof = true; + return false; + } + $this->pos+= strlen($result); + + return $result; + } + + /** + * Write to stream + * + * @param String $data + * @return Mixed + * @access public + */ + function _stream_write($data) + { + switch ($this->mode) { + case 'r': + return false; + } + + $result = $this->sftp->put($this->path, $data, NET_SFTP_STRING, $this->pos); + if (isset($this->notification) && is_callable($this->notification)) { + if (!$result) { + call_user_func($this->notification, STREAM_NOTIFY_FAILURE, STREAM_NOTIFY_SEVERITY_ERR, $this->sftp->getLastSFTPError(), NET_SFTP_OPEN, 0, 0); + return 0; + } + // seems that PHP splits up strings into 8k blocks before calling stream_write + call_user_func($this->notification, STREAM_NOTIFY_PROGRESS, STREAM_NOTIFY_SEVERITY_INFO, '', 0, strlen($data), strlen($data)); + } + + if ($result === false) { + return false; + } + $this->pos+= strlen($data); + if ($this->pos > $this->size) { + $this->size = $this->pos; + } + $this->eof = false; + return strlen($data); + } + + /** + * Retrieve the current position of a stream + * + * @return Integer + * @access public + */ + function _stream_tell() + { + return $this->pos; + } + + /** + * Tests for end-of-file on a file pointer + * + * In my testing there are four classes functions that normally effect the pointer: + * fseek, fputs / fwrite, fgets / fread and ftruncate. + * + * Only fgets / fread, however, results in feof() returning true. do fputs($fp, 'aaa') on a blank file and feof() + * will return false. do fread($fp, 1) and feof() will then return true. do fseek($fp, 10) on ablank file and feof() + * will return false. do fread($fp, 1) and feof() will then return true. + * + * @return Boolean + * @access public + */ + function _stream_eof() + { + return $this->eof; + } + + /** + * Seeks to specific location in a stream + * + * @param Integer $offset + * @param Integer $whence + * @return Boolean + * @access public + */ + function _stream_seek($offset, $whence) + { + switch ($whence) { + case SEEK_SET: + if ($offset >= $this->size || $offset < 0) { + return false; + } + break; + case SEEK_CUR: + $offset+= $this->pos; + break; + case SEEK_END: + $offset+= $this->size; + } + + $this->pos = $offset; + $this->eof = false; + return true; + } + + /** + * Change stream options + * + * @param String $path + * @param Integer $option + * @param Mixed $var + * @return Boolean + * @access public + */ + function _stream_metadata($path, $option, $var) + { + $path = $this->_parse_path($path); + if ($path === false) { + return false; + } + + // stream_metadata was introduced in PHP 5.4.0 but as of 5.4.11 the constants haven't been defined + // see http://www.php.net/streamwrapper.stream-metadata and https://bugs.php.net/64246 + // and https://github.com/php/php-src/blob/master/main/php_streams.h#L592 + switch ($option) { + case 1: // PHP_STREAM_META_TOUCH + return $this->sftp->touch($path, $var[0], $var[1]); + case 2: // PHP_STREAM_OWNER_NAME + case 3: // PHP_STREAM_GROUP_NAME + return false; + case 4: // PHP_STREAM_META_OWNER + return $this->sftp->chown($path, $var); + case 5: // PHP_STREAM_META_GROUP + return $this->sftp->chgrp($path, $var); + case 6: // PHP_STREAM_META_ACCESS + return $this->sftp->chmod($path, $var) !== false; + } + } + + /** + * Retrieve the underlaying resource + * + * @param Integer $cast_as + * @return Resource + * @access public + */ + function _stream_cast($cast_as) + { + return $this->sftp->fsock; + } + + /** + * Advisory file locking + * + * @param Integer $operation + * @return Boolean + * @access public + */ + function _stream_lock($operation) + { + return false; + } + + /** + * Renames a file or directory + * + * Attempts to rename oldname to newname, moving it between directories if necessary. + * If newname exists, it will be overwritten. This is a departure from what Net_SFTP + * does. + * + * @param String $path_from + * @param String $path_to + * @return Boolean + * @access public + */ + function _rename($path_from, $path_to) + { + $path1 = parse_url($path_from); + $path2 = parse_url($path_to); + unset($path1['path'], $path2['path']); + if ($path1 != $path2) { + return false; + } + + $path_from = $this->_parse_path($path_from); + $path_to = parse_url($path_to); + if ($path_from == false) { + return false; + } + + $path_to = $path_to['path']; // the $component part of parse_url() was added in PHP 5.1.2 + // "It is an error if there already exists a file with the name specified by newpath." + // -- http://tools.ietf.org/html/draft-ietf-secsh-filexfer-02#section-6.5 + if (!$this->sftp->rename($path_from, $path_to)) { + if ($this->sftp->stat($path_to)) { + return $this->sftp->delete($path_to, true) && $this->sftp->rename($path_from, $path_to); + } + return false; + } + + return true; + } + + /** + * Open directory handle + * + * The only $options is "whether or not to enforce safe_mode (0x04)". Since safe mode was deprecated in 5.3 and + * removed in 5.4 I'm just going to ignore it + * + * @param String $path + * @param Integer $options + * @return Boolean + * @access public + */ + function _dir_opendir($path, $options) + { + $path = $this->_parse_path($path); + if ($path === false) { + return false; + } + $this->pos = 0; + $this->entries = $this->sftp->nlist($path); + return $this->entries !== false; + } + + /** + * Read entry from directory handle + * + * @return Mixed + * @access public + */ + function _dir_readdir() + { + if (isset($this->entries[$this->pos])) { + return $this->entries[$this->pos++]; + } + return false; + } + + /** + * Rewind directory handle + * + * @return Boolean + * @access public + */ + function _dir_rewinddir() + { + $this->pos = 0; + return true; + } + + /** + * Close directory handle + * + * @return Boolean + * @access public + */ + function _dir_closedir() + { + return true; + } + + /** + * Create a directory + * + * Only valid $options is STREAM_MKDIR_RECURSIVE + * + * @param String $path + * @param Integer $mode + * @param Integer $options + * @return Boolean + * @access public + */ + function _mkdir($path, $mode, $options) + { + $path = $this->_parse_path($path); + if ($path === false) { + return false; + } + + return $this->sftp->mkdir($path, $mode, $options & STREAM_MKDIR_RECURSIVE); + } + + /** + * Removes a directory + * + * Only valid $options is STREAM_MKDIR_RECURSIVE per , however, + * does not have a $recursive parameter as mkdir() does so I don't know how + * STREAM_MKDIR_RECURSIVE is supposed to be set. Also, when I try it out with rmdir() I get 8 as + * $options. What does 8 correspond to? + * + * @param String $path + * @param Integer $mode + * @param Integer $options + * @return Boolean + * @access public + */ + function _rmdir($path, $options) + { + $path = $this->_parse_path($path); + if ($path === false) { + return false; + } + + return $this->sftp->rmdir($path); + } + + /** + * Flushes the output + * + * See . Always returns true because Net_SFTP doesn't cache stuff before writing + * + * @return Boolean + * @access public + */ + function _stream_flush() + { + return true; + } + + /** + * Retrieve information about a file resource + * + * @return Mixed + * @access public + */ + function _stream_stat() + { + $results = $this->sftp->stat($this->path); + if ($results === false) { + return false; + } + return $results; + } + + /** + * Delete a file + * + * @param String $path + * @return Boolean + * @access public + */ + function _unlink($path) + { + $path = $this->_parse_path($path); + if ($path === false) { + return false; + } + + return $this->sftp->delete($path, false); + } + + /** + * Retrieve information about a file + * + * Ignores the STREAM_URL_STAT_QUIET flag because the entirety of Net_SFTP_Stream is quiet by default + * might be worthwhile to reconstruct bits 12-16 (ie. the file type) if mode doesn't have them but we'll + * cross that bridge when and if it's reached + * + * @param String $path + * @param Integer $flags + * @return Mixed + * @access public + */ + function _url_stat($path, $flags) + { + $path = $this->_parse_path($path); + if ($path === false) { + return false; + } + + $results = $flags & STREAM_URL_STAT_LINK ? $this->sftp->lstat($path) : $this->sftp->stat($path); + if ($results === false) { + return false; + } + + return $results; + } + + /** + * Truncate stream + * + * @param Integer $new_size + * @return Boolean + * @access public + */ + function _stream_truncate($new_size) + { + if (!$this->sftp->truncate($this->path, $new_size)) { + return false; + } + + $this->eof = false; + $this->size = $new_size; + + return true; + } + + /** + * Change stream options + * + * STREAM_OPTION_WRITE_BUFFER isn't supported for the same reason stream_flush isn't. + * The other two aren't supported because of limitations in Net_SFTP. + * + * @param Integer $option + * @param Integer $arg1 + * @param Integer $arg2 + * @return Boolean + * @access public + */ + function _stream_set_option($option, $arg1, $arg2) + { + return false; + } + + /** + * Close an resource + * + * @access public + */ + function _stream_close() + { + } + + /** + * __call Magic Method + * + * When you're utilizing an SFTP stream you're not calling the methods in this class directly - PHP is calling them for you. + * Which kinda begs the question... what methods is PHP calling and what parameters is it passing to them? This function + * lets you figure that out. + * + * If NET_SFTP_STREAM_LOGGING is defined all calls will be output on the screen and then (regardless of whether or not + * NET_SFTP_STREAM_LOGGING is enabled) the parameters will be passed through to the appropriate method. + * + * @param String + * @param Array + * @return Mixed + * @access public + */ + function __call($name, $arguments) + { + if (defined('NET_SFTP_STREAM_LOGGING')) { + echo $name . '('; + $last = count($arguments) - 1; + foreach ($arguments as $i => $argument) { + var_export($argument); + if ($i != $last) { + echo ','; + } + } + echo ")\r\n"; + } + $name = '_' . $name; + if (!method_exists($this, $name)) { + return false; + } + return call_user_func_array(array($this, $name), $arguments); + } +} + +if (function_exists('stream_wrapper_register')) { + stream_wrapper_register('sftp', 'Net_SFTP_Stream'); +} diff --git a/lam/lib/3rdParty/phpseclib/Net/SSH1.php b/lam/lib/3rdParty/phpseclib/Net/SSH1.php new file mode 100644 index 00000000..0a6aa908 --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/Net/SSH1.php @@ -0,0 +1,1582 @@ + + * login('username', 'password')) { + * exit('Login Failed'); + * } + * + * echo $ssh->exec('ls -la'); + * ?> + * + * + * Here's another short example: + * + * login('username', 'password')) { + * exit('Login Failed'); + * } + * + * echo $ssh->read('username@username:~$'); + * $ssh->write("ls -la\n"); + * echo $ssh->read('username@username:~$'); + * ?> + * + * + * More information on the SSHv1 specification can be found by reading + * {@link http://www.snailbook.com/docs/protocol-1.5.txt protocol-1.5.txt}. + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Net + * @package Net_SSH1 + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @link http://phpseclib.sourceforge.net + */ + +/**#@+ + * Encryption Methods + * + * @see Net_SSH1::getSupportedCiphers() + * @access public + */ +/** + * No encryption + * + * Not supported. + */ +define('NET_SSH1_CIPHER_NONE', 0); +/** + * IDEA in CFB mode + * + * Not supported. + */ +define('NET_SSH1_CIPHER_IDEA', 1); +/** + * DES in CBC mode + */ +define('NET_SSH1_CIPHER_DES', 2); +/** + * Triple-DES in CBC mode + * + * All implementations are required to support this + */ +define('NET_SSH1_CIPHER_3DES', 3); +/** + * TRI's Simple Stream encryption CBC + * + * Not supported nor is it defined in the official SSH1 specs. OpenSSH, however, does define it (see cipher.h), + * although it doesn't use it (see cipher.c) + */ +define('NET_SSH1_CIPHER_BROKEN_TSS', 4); +/** + * RC4 + * + * Not supported. + * + * @internal According to the SSH1 specs: + * + * "The first 16 bytes of the session key are used as the key for + * the server to client direction. The remaining 16 bytes are used + * as the key for the client to server direction. This gives + * independent 128-bit keys for each direction." + * + * This library currently only supports encryption when the same key is being used for both directions. This is + * because there's only one $crypto object. Two could be added ($encrypt and $decrypt, perhaps). + */ +define('NET_SSH1_CIPHER_RC4', 5); +/** + * Blowfish + * + * Not supported nor is it defined in the official SSH1 specs. OpenSSH, however, defines it (see cipher.h) and + * uses it (see cipher.c) + */ +define('NET_SSH1_CIPHER_BLOWFISH', 6); +/**#@-*/ + +/**#@+ + * Authentication Methods + * + * @see Net_SSH1::getSupportedAuthentications() + * @access public + */ +/** + * .rhosts or /etc/hosts.equiv + */ +define('NET_SSH1_AUTH_RHOSTS', 1); +/** + * pure RSA authentication + */ +define('NET_SSH1_AUTH_RSA', 2); +/** + * password authentication + * + * This is the only method that is supported by this library. + */ +define('NET_SSH1_AUTH_PASSWORD', 3); +/** + * .rhosts with RSA host authentication + */ +define('NET_SSH1_AUTH_RHOSTS_RSA', 4); +/**#@-*/ + +/**#@+ + * Terminal Modes + * + * @link http://3sp.com/content/developer/maverick-net/docs/Maverick.SSH.PseudoTerminalModesMembers.html + * @access private + */ +define('NET_SSH1_TTY_OP_END', 0); +/**#@-*/ + +/** + * The Response Type + * + * @see Net_SSH1::_get_binary_packet() + * @access private + */ +define('NET_SSH1_RESPONSE_TYPE', 1); + +/** + * The Response Data + * + * @see Net_SSH1::_get_binary_packet() + * @access private + */ +define('NET_SSH1_RESPONSE_DATA', 2); + +/**#@+ + * Execution Bitmap Masks + * + * @see Net_SSH1::bitmap + * @access private + */ +define('NET_SSH1_MASK_CONSTRUCTOR', 0x00000001); +define('NET_SSH1_MASK_LOGIN', 0x00000002); +define('NET_SSH1_MASK_SHELL', 0x00000004); +/**#@-*/ + +/**#@+ + * @access public + * @see Net_SSH1::getLog() + */ +/** + * Returns the message numbers + */ +define('NET_SSH1_LOG_SIMPLE', 1); +/** + * Returns the message content + */ +define('NET_SSH1_LOG_COMPLEX', 2); +/** + * Outputs the content real-time + */ +define('NET_SSH1_LOG_REALTIME', 3); +/** + * Dumps the content real-time to a file + */ +define('NET_SSH1_LOG_REALTIME_FILE', 4); +/**#@-*/ + +/**#@+ + * @access public + * @see Net_SSH1::read() + */ +/** + * Returns when a string matching $expect exactly is found + */ +define('NET_SSH1_READ_SIMPLE', 1); +/** + * Returns when a string matching the regular expression $expect is found + */ +define('NET_SSH1_READ_REGEX', 2); +/**#@-*/ + +/** + * Pure-PHP implementation of SSHv1. + * + * @package Net_SSH1 + * @author Jim Wigginton + * @version 0.1.0 + * @access public + */ +class Net_SSH1 +{ + /** + * The SSH identifier + * + * @var String + * @access private + */ + var $identifier = 'SSH-1.5-phpseclib'; + + /** + * The Socket Object + * + * @var Object + * @access private + */ + var $fsock; + + /** + * The cryptography object + * + * @var Object + * @access private + */ + var $crypto = false; + + /** + * Execution Bitmap + * + * The bits that are set represent functions that have been called already. This is used to determine + * if a requisite function has been successfully executed. If not, an error should be thrown. + * + * @var Integer + * @access private + */ + var $bitmap = 0; + + /** + * The Server Key Public Exponent + * + * Logged for debug purposes + * + * @see Net_SSH1::getServerKeyPublicExponent() + * @var String + * @access private + */ + var $server_key_public_exponent; + + /** + * The Server Key Public Modulus + * + * Logged for debug purposes + * + * @see Net_SSH1::getServerKeyPublicModulus() + * @var String + * @access private + */ + var $server_key_public_modulus; + + /** + * The Host Key Public Exponent + * + * Logged for debug purposes + * + * @see Net_SSH1::getHostKeyPublicExponent() + * @var String + * @access private + */ + var $host_key_public_exponent; + + /** + * The Host Key Public Modulus + * + * Logged for debug purposes + * + * @see Net_SSH1::getHostKeyPublicModulus() + * @var String + * @access private + */ + var $host_key_public_modulus; + + /** + * Supported Ciphers + * + * Logged for debug purposes + * + * @see Net_SSH1::getSupportedCiphers() + * @var Array + * @access private + */ + var $supported_ciphers = array( + NET_SSH1_CIPHER_NONE => 'No encryption', + NET_SSH1_CIPHER_IDEA => 'IDEA in CFB mode', + NET_SSH1_CIPHER_DES => 'DES in CBC mode', + NET_SSH1_CIPHER_3DES => 'Triple-DES in CBC mode', + NET_SSH1_CIPHER_BROKEN_TSS => 'TRI\'s Simple Stream encryption CBC', + NET_SSH1_CIPHER_RC4 => 'RC4', + NET_SSH1_CIPHER_BLOWFISH => 'Blowfish' + ); + + /** + * Supported Authentications + * + * Logged for debug purposes + * + * @see Net_SSH1::getSupportedAuthentications() + * @var Array + * @access private + */ + var $supported_authentications = array( + NET_SSH1_AUTH_RHOSTS => '.rhosts or /etc/hosts.equiv', + NET_SSH1_AUTH_RSA => 'pure RSA authentication', + NET_SSH1_AUTH_PASSWORD => 'password authentication', + NET_SSH1_AUTH_RHOSTS_RSA => '.rhosts with RSA host authentication' + ); + + /** + * Server Identification + * + * @see Net_SSH1::getServerIdentification() + * @var String + * @access private + */ + var $server_identification = ''; + + /** + * Protocol Flags + * + * @see Net_SSH1::Net_SSH1() + * @var Array + * @access private + */ + var $protocol_flags = array(); + + /** + * Protocol Flag Log + * + * @see Net_SSH1::getLog() + * @var Array + * @access private + */ + var $protocol_flag_log = array(); + + /** + * Message Log + * + * @see Net_SSH1::getLog() + * @var Array + * @access private + */ + var $message_log = array(); + + /** + * Real-time log file pointer + * + * @see Net_SSH1::_append_log() + * @var Resource + * @access private + */ + var $realtime_log_file; + + /** + * Real-time log file size + * + * @see Net_SSH1::_append_log() + * @var Integer + * @access private + */ + var $realtime_log_size; + + /** + * Real-time log file wrap boolean + * + * @see Net_SSH1::_append_log() + * @var Boolean + * @access private + */ + var $realtime_log_wrap; + + /** + * Interactive Buffer + * + * @see Net_SSH1::read() + * @var Array + * @access private + */ + var $interactiveBuffer = ''; + + /** + * Timeout + * + * @see Net_SSH1::setTimeout() + * @access private + */ + var $timeout; + + /** + * Current Timeout + * + * @see Net_SSH1::_get_channel_packet() + * @access private + */ + var $curTimeout; + + /** + * Log Boundary + * + * @see Net_SSH1::_format_log + * @access private + */ + var $log_boundary = ':'; + + /** + * Log Long Width + * + * @see Net_SSH1::_format_log + * @access private + */ + var $log_long_width = 65; + + /** + * Log Short Width + * + * @see Net_SSH1::_format_log + * @access private + */ + var $log_short_width = 16; + + /** + * Default Constructor. + * + * Connects to an SSHv1 server + * + * @param String $host + * @param optional Integer $port + * @param optional Integer $timeout + * @param optional Integer $cipher + * @return Net_SSH1 + * @access public + */ + function Net_SSH1($host, $port = 22, $timeout = 10, $cipher = NET_SSH1_CIPHER_3DES) + { + if (!class_exists('Math_BigInteger')) { + include_once 'Math/BigInteger.php'; + } + + // Include Crypt_Random + // the class_exists() will only be called if the crypt_random_string function hasn't been defined and + // will trigger a call to __autoload() if you're wanting to auto-load classes + // call function_exists() a second time to stop the include_once from being called outside + // of the auto loader + if (!function_exists('crypt_random_string') && !class_exists('Crypt_Random') && !function_exists('crypt_random_string')) { + include_once 'Crypt/Random.php'; + } + + $this->protocol_flags = array( + 1 => 'NET_SSH1_MSG_DISCONNECT', + 2 => 'NET_SSH1_SMSG_PUBLIC_KEY', + 3 => 'NET_SSH1_CMSG_SESSION_KEY', + 4 => 'NET_SSH1_CMSG_USER', + 9 => 'NET_SSH1_CMSG_AUTH_PASSWORD', + 10 => 'NET_SSH1_CMSG_REQUEST_PTY', + 12 => 'NET_SSH1_CMSG_EXEC_SHELL', + 13 => 'NET_SSH1_CMSG_EXEC_CMD', + 14 => 'NET_SSH1_SMSG_SUCCESS', + 15 => 'NET_SSH1_SMSG_FAILURE', + 16 => 'NET_SSH1_CMSG_STDIN_DATA', + 17 => 'NET_SSH1_SMSG_STDOUT_DATA', + 18 => 'NET_SSH1_SMSG_STDERR_DATA', + 19 => 'NET_SSH1_CMSG_EOF', + 20 => 'NET_SSH1_SMSG_EXITSTATUS', + 33 => 'NET_SSH1_CMSG_EXIT_CONFIRMATION' + ); + + $this->_define_array($this->protocol_flags); + + $this->fsock = @fsockopen($host, $port, $errno, $errstr, $timeout); + if (!$this->fsock) { + user_error(rtrim("Cannot connect to $host. Error $errno. $errstr")); + return; + } + + $this->server_identification = $init_line = fgets($this->fsock, 255); + + if (defined('NET_SSH1_LOGGING')) { + $this->_append_log('<-', $this->server_identification); + $this->_append_log('->', $this->identifier . "\r\n"); + } + + if (!preg_match('#SSH-([0-9\.]+)-(.+)#', $init_line, $parts)) { + user_error('Can only connect to SSH servers'); + return; + } + if ($parts[1][0] != 1) { + user_error("Cannot connect to SSH $parts[1] servers"); + return; + } + + fputs($this->fsock, $this->identifier."\r\n"); + + $response = $this->_get_binary_packet(); + if ($response[NET_SSH1_RESPONSE_TYPE] != NET_SSH1_SMSG_PUBLIC_KEY) { + user_error('Expected SSH_SMSG_PUBLIC_KEY'); + return; + } + + $anti_spoofing_cookie = $this->_string_shift($response[NET_SSH1_RESPONSE_DATA], 8); + + $this->_string_shift($response[NET_SSH1_RESPONSE_DATA], 4); + + $temp = unpack('nlen', $this->_string_shift($response[NET_SSH1_RESPONSE_DATA], 2)); + $server_key_public_exponent = new Math_BigInteger($this->_string_shift($response[NET_SSH1_RESPONSE_DATA], ceil($temp['len'] / 8)), 256); + $this->server_key_public_exponent = $server_key_public_exponent; + + $temp = unpack('nlen', $this->_string_shift($response[NET_SSH1_RESPONSE_DATA], 2)); + $server_key_public_modulus = new Math_BigInteger($this->_string_shift($response[NET_SSH1_RESPONSE_DATA], ceil($temp['len'] / 8)), 256); + $this->server_key_public_modulus = $server_key_public_modulus; + + $this->_string_shift($response[NET_SSH1_RESPONSE_DATA], 4); + + $temp = unpack('nlen', $this->_string_shift($response[NET_SSH1_RESPONSE_DATA], 2)); + $host_key_public_exponent = new Math_BigInteger($this->_string_shift($response[NET_SSH1_RESPONSE_DATA], ceil($temp['len'] / 8)), 256); + $this->host_key_public_exponent = $host_key_public_exponent; + + $temp = unpack('nlen', $this->_string_shift($response[NET_SSH1_RESPONSE_DATA], 2)); + $host_key_public_modulus = new Math_BigInteger($this->_string_shift($response[NET_SSH1_RESPONSE_DATA], ceil($temp['len'] / 8)), 256); + $this->host_key_public_modulus = $host_key_public_modulus; + + $this->_string_shift($response[NET_SSH1_RESPONSE_DATA], 4); + + // get a list of the supported ciphers + extract(unpack('Nsupported_ciphers_mask', $this->_string_shift($response[NET_SSH1_RESPONSE_DATA], 4))); + foreach ($this->supported_ciphers as $mask=>$name) { + if (($supported_ciphers_mask & (1 << $mask)) == 0) { + unset($this->supported_ciphers[$mask]); + } + } + + // get a list of the supported authentications + extract(unpack('Nsupported_authentications_mask', $this->_string_shift($response[NET_SSH1_RESPONSE_DATA], 4))); + foreach ($this->supported_authentications as $mask=>$name) { + if (($supported_authentications_mask & (1 << $mask)) == 0) { + unset($this->supported_authentications[$mask]); + } + } + + $session_id = pack('H*', md5($host_key_public_modulus->toBytes() . $server_key_public_modulus->toBytes() . $anti_spoofing_cookie)); + + $session_key = crypt_random_string(32); + $double_encrypted_session_key = $session_key ^ str_pad($session_id, 32, chr(0)); + + if ($server_key_public_modulus->compare($host_key_public_modulus) < 0) { + $double_encrypted_session_key = $this->_rsa_crypt( + $double_encrypted_session_key, + array( + $server_key_public_exponent, + $server_key_public_modulus + ) + ); + $double_encrypted_session_key = $this->_rsa_crypt( + $double_encrypted_session_key, + array( + $host_key_public_exponent, + $host_key_public_modulus + ) + ); + } else { + $double_encrypted_session_key = $this->_rsa_crypt( + $double_encrypted_session_key, + array( + $host_key_public_exponent, + $host_key_public_modulus + ) + ); + $double_encrypted_session_key = $this->_rsa_crypt( + $double_encrypted_session_key, + array( + $server_key_public_exponent, + $server_key_public_modulus + ) + ); + } + + $cipher = isset($this->supported_ciphers[$cipher]) ? $cipher : NET_SSH1_CIPHER_3DES; + $data = pack('C2a*na*N', NET_SSH1_CMSG_SESSION_KEY, $cipher, $anti_spoofing_cookie, 8 * strlen($double_encrypted_session_key), $double_encrypted_session_key, 0); + + if (!$this->_send_binary_packet($data)) { + user_error('Error sending SSH_CMSG_SESSION_KEY'); + return; + } + + switch ($cipher) { + //case NET_SSH1_CIPHER_NONE: + // $this->crypto = new Crypt_Null(); + // break; + case NET_SSH1_CIPHER_DES: + if (!class_exists('Crypt_DES')) { + include_once 'Crypt/DES.php'; + } + $this->crypto = new Crypt_DES(); + $this->crypto->disablePadding(); + $this->crypto->enableContinuousBuffer(); + $this->crypto->setKey(substr($session_key, 0, 8)); + break; + case NET_SSH1_CIPHER_3DES: + if (!class_exists('Crypt_TripleDES')) { + include_once 'Crypt/TripleDES.php'; + } + $this->crypto = new Crypt_TripleDES(CRYPT_DES_MODE_3CBC); + $this->crypto->disablePadding(); + $this->crypto->enableContinuousBuffer(); + $this->crypto->setKey(substr($session_key, 0, 24)); + break; + //case NET_SSH1_CIPHER_RC4: + // if (!class_exists('Crypt_RC4')) { + // include_once('Crypt/RC4.php'); + // } + // $this->crypto = new Crypt_RC4(); + // $this->crypto->enableContinuousBuffer(); + // $this->crypto->setKey(substr($session_key, 0, 16)); + // break; + } + + $response = $this->_get_binary_packet(); + + if ($response[NET_SSH1_RESPONSE_TYPE] != NET_SSH1_SMSG_SUCCESS) { + user_error('Expected SSH_SMSG_SUCCESS'); + return; + } + + $this->bitmap = NET_SSH1_MASK_CONSTRUCTOR; + } + + /** + * Login + * + * @param String $username + * @param optional String $password + * @return Boolean + * @access public + */ + function login($username, $password = '') + { + if (!($this->bitmap & NET_SSH1_MASK_CONSTRUCTOR)) { + return false; + } + + $data = pack('CNa*', NET_SSH1_CMSG_USER, strlen($username), $username); + + if (!$this->_send_binary_packet($data)) { + user_error('Error sending SSH_CMSG_USER'); + return false; + } + + $response = $this->_get_binary_packet(); + + if ($response === true) { + return false; + } + if ($response[NET_SSH1_RESPONSE_TYPE] == NET_SSH1_SMSG_SUCCESS) { + $this->bitmap |= NET_SSH1_MASK_LOGIN; + return true; + } else if ($response[NET_SSH1_RESPONSE_TYPE] != NET_SSH1_SMSG_FAILURE) { + user_error('Expected SSH_SMSG_SUCCESS or SSH_SMSG_FAILURE'); + return false; + } + + $data = pack('CNa*', NET_SSH1_CMSG_AUTH_PASSWORD, strlen($password), $password); + + if (!$this->_send_binary_packet($data)) { + user_error('Error sending SSH_CMSG_AUTH_PASSWORD'); + return false; + } + + // remove the username and password from the last logged packet + if (defined('NET_SSH1_LOGGING') && NET_SSH1_LOGGING == NET_SSH1_LOG_COMPLEX) { + $data = pack('CNa*', NET_SSH1_CMSG_AUTH_PASSWORD, strlen('password'), 'password'); + $this->message_log[count($this->message_log) - 1] = $data; + } + + $response = $this->_get_binary_packet(); + + if ($response === true) { + return false; + } + if ($response[NET_SSH1_RESPONSE_TYPE] == NET_SSH1_SMSG_SUCCESS) { + $this->bitmap |= NET_SSH1_MASK_LOGIN; + return true; + } else if ($response[NET_SSH1_RESPONSE_TYPE] == NET_SSH1_SMSG_FAILURE) { + return false; + } else { + user_error('Expected SSH_SMSG_SUCCESS or SSH_SMSG_FAILURE'); + return false; + } + } + + /** + * Set Timeout + * + * $ssh->exec('ping 127.0.0.1'); on a Linux host will never return and will run indefinitely. setTimeout() makes it so it'll timeout. + * Setting $timeout to false or 0 will mean there is no timeout. + * + * @param Mixed $timeout + */ + function setTimeout($timeout) + { + $this->timeout = $this->curTimeout = $timeout; + } + + /** + * Executes a command on a non-interactive shell, returns the output, and quits. + * + * An SSH1 server will close the connection after a command has been executed on a non-interactive shell. SSH2 + * servers don't, however, this isn't an SSH2 client. The way this works, on the server, is by initiating a + * shell with the -s option, as discussed in the following links: + * + * {@link http://www.faqs.org/docs/bashman/bashref_65.html http://www.faqs.org/docs/bashman/bashref_65.html} + * {@link http://www.faqs.org/docs/bashman/bashref_62.html http://www.faqs.org/docs/bashman/bashref_62.html} + * + * To execute further commands, a new Net_SSH1 object will need to be created. + * + * Returns false on failure and the output, otherwise. + * + * @see Net_SSH1::interactiveRead() + * @see Net_SSH1::interactiveWrite() + * @param String $cmd + * @return mixed + * @access public + */ + function exec($cmd, $block = true) + { + if (!($this->bitmap & NET_SSH1_MASK_LOGIN)) { + user_error('Operation disallowed prior to login()'); + return false; + } + + $data = pack('CNa*', NET_SSH1_CMSG_EXEC_CMD, strlen($cmd), $cmd); + + if (!$this->_send_binary_packet($data)) { + user_error('Error sending SSH_CMSG_EXEC_CMD'); + return false; + } + + if (!$block) { + return true; + } + + $output = ''; + $response = $this->_get_binary_packet(); + + if ($response !== false) { + do { + $output.= substr($response[NET_SSH1_RESPONSE_DATA], 4); + $response = $this->_get_binary_packet(); + } while (is_array($response) && $response[NET_SSH1_RESPONSE_TYPE] != NET_SSH1_SMSG_EXITSTATUS); + } + + $data = pack('C', NET_SSH1_CMSG_EXIT_CONFIRMATION); + + // i don't think it's really all that important if this packet gets sent or not. + $this->_send_binary_packet($data); + + fclose($this->fsock); + + // reset the execution bitmap - a new Net_SSH1 object needs to be created. + $this->bitmap = 0; + + return $output; + } + + /** + * Creates an interactive shell + * + * @see Net_SSH1::interactiveRead() + * @see Net_SSH1::interactiveWrite() + * @return Boolean + * @access private + */ + function _initShell() + { + // connect using the sample parameters in protocol-1.5.txt. + // according to wikipedia.org's entry on text terminals, "the fundamental type of application running on a text + // terminal is a command line interpreter or shell". thus, opening a terminal session to run the shell. + $data = pack('CNa*N4C', NET_SSH1_CMSG_REQUEST_PTY, strlen('vt100'), 'vt100', 24, 80, 0, 0, NET_SSH1_TTY_OP_END); + + if (!$this->_send_binary_packet($data)) { + user_error('Error sending SSH_CMSG_REQUEST_PTY'); + return false; + } + + $response = $this->_get_binary_packet(); + + if ($response === true) { + return false; + } + if ($response[NET_SSH1_RESPONSE_TYPE] != NET_SSH1_SMSG_SUCCESS) { + user_error('Expected SSH_SMSG_SUCCESS'); + return false; + } + + $data = pack('C', NET_SSH1_CMSG_EXEC_SHELL); + + if (!$this->_send_binary_packet($data)) { + user_error('Error sending SSH_CMSG_EXEC_SHELL'); + return false; + } + + $this->bitmap |= NET_SSH1_MASK_SHELL; + + //stream_set_blocking($this->fsock, 0); + + return true; + } + + /** + * Inputs a command into an interactive shell. + * + * @see Net_SSH1::interactiveWrite() + * @param String $cmd + * @return Boolean + * @access public + */ + function write($cmd) + { + return $this->interactiveWrite($cmd); + } + + /** + * Returns the output of an interactive shell when there's a match for $expect + * + * $expect can take the form of a string literal or, if $mode == NET_SSH1_READ_REGEX, + * a regular expression. + * + * @see Net_SSH1::write() + * @param String $expect + * @param Integer $mode + * @return Boolean + * @access public + */ + function read($expect, $mode = NET_SSH1_READ_SIMPLE) + { + if (!($this->bitmap & NET_SSH1_MASK_LOGIN)) { + user_error('Operation disallowed prior to login()'); + return false; + } + + if (!($this->bitmap & NET_SSH1_MASK_SHELL) && !$this->_initShell()) { + user_error('Unable to initiate an interactive shell session'); + return false; + } + + $match = $expect; + while (true) { + if ($mode == NET_SSH1_READ_REGEX) { + preg_match($expect, $this->interactiveBuffer, $matches); + $match = isset($matches[0]) ? $matches[0] : ''; + } + $pos = strlen($match) ? strpos($this->interactiveBuffer, $match) : false; + if ($pos !== false) { + return $this->_string_shift($this->interactiveBuffer, $pos + strlen($match)); + } + $response = $this->_get_binary_packet(); + + if ($response === true) { + return $this->_string_shift($this->interactiveBuffer, strlen($this->interactiveBuffer)); + } + $this->interactiveBuffer.= substr($response[NET_SSH1_RESPONSE_DATA], 4); + } + } + + /** + * Inputs a command into an interactive shell. + * + * @see Net_SSH1::interactiveRead() + * @param String $cmd + * @return Boolean + * @access public + */ + function interactiveWrite($cmd) + { + if (!($this->bitmap & NET_SSH1_MASK_LOGIN)) { + user_error('Operation disallowed prior to login()'); + return false; + } + + if (!($this->bitmap & NET_SSH1_MASK_SHELL) && !$this->_initShell()) { + user_error('Unable to initiate an interactive shell session'); + return false; + } + + $data = pack('CNa*', NET_SSH1_CMSG_STDIN_DATA, strlen($cmd), $cmd); + + if (!$this->_send_binary_packet($data)) { + user_error('Error sending SSH_CMSG_STDIN'); + return false; + } + + return true; + } + + /** + * Returns the output of an interactive shell when no more output is available. + * + * Requires PHP 4.3.0 or later due to the use of the stream_select() function. If you see stuff like + * "^[[00m", you're seeing ANSI escape codes. According to + * {@link http://support.microsoft.com/kb/101875 How to Enable ANSI.SYS in a Command Window}, "Windows NT + * does not support ANSI escape sequences in Win32 Console applications", so if you're a Windows user, + * there's not going to be much recourse. + * + * @see Net_SSH1::interactiveRead() + * @return String + * @access public + */ + function interactiveRead() + { + if (!($this->bitmap & NET_SSH1_MASK_LOGIN)) { + user_error('Operation disallowed prior to login()'); + return false; + } + + if (!($this->bitmap & NET_SSH1_MASK_SHELL) && !$this->_initShell()) { + user_error('Unable to initiate an interactive shell session'); + return false; + } + + $read = array($this->fsock); + $write = $except = null; + if (stream_select($read, $write, $except, 0)) { + $response = $this->_get_binary_packet(); + return substr($response[NET_SSH1_RESPONSE_DATA], 4); + } else { + return ''; + } + } + + /** + * Disconnect + * + * @access public + */ + function disconnect() + { + $this->_disconnect(); + } + + /** + * Destructor. + * + * Will be called, automatically, if you're supporting just PHP5. If you're supporting PHP4, you'll need to call + * disconnect(). + * + * @access public + */ + function __destruct() + { + $this->_disconnect(); + } + + /** + * Disconnect + * + * @param String $msg + * @access private + */ + function _disconnect($msg = 'Client Quit') + { + if ($this->bitmap) { + $data = pack('C', NET_SSH1_CMSG_EOF); + $this->_send_binary_packet($data); + /* + $response = $this->_get_binary_packet(); + if ($response === true) { + $response = array(NET_SSH1_RESPONSE_TYPE => -1); + } + switch ($response[NET_SSH1_RESPONSE_TYPE]) { + case NET_SSH1_SMSG_EXITSTATUS: + $data = pack('C', NET_SSH1_CMSG_EXIT_CONFIRMATION); + break; + default: + $data = pack('CNa*', NET_SSH1_MSG_DISCONNECT, strlen($msg), $msg); + } + */ + $data = pack('CNa*', NET_SSH1_MSG_DISCONNECT, strlen($msg), $msg); + + $this->_send_binary_packet($data); + fclose($this->fsock); + $this->bitmap = 0; + } + } + + /** + * Gets Binary Packets + * + * See 'The Binary Packet Protocol' of protocol-1.5.txt for more info. + * + * Also, this function could be improved upon by adding detection for the following exploit: + * http://www.securiteam.com/securitynews/5LP042K3FY.html + * + * @see Net_SSH1::_send_binary_packet() + * @return Array + * @access private + */ + function _get_binary_packet() + { + if (feof($this->fsock)) { + //user_error('connection closed prematurely'); + return false; + } + + if ($this->curTimeout) { + $read = array($this->fsock); + $write = $except = null; + + $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838 + $sec = floor($this->curTimeout); + $usec = 1000000 * ($this->curTimeout - $sec); + // on windows this returns a "Warning: Invalid CRT parameters detected" error + if (!@stream_select($read, $write, $except, $sec, $usec) && !count($read)) { + //$this->_disconnect('Timeout'); + return true; + } + $elapsed = strtok(microtime(), ' ') + strtok('') - $start; + $this->curTimeout-= $elapsed; + } + + $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838 + $temp = unpack('Nlength', fread($this->fsock, 4)); + + $padding_length = 8 - ($temp['length'] & 7); + $length = $temp['length'] + $padding_length; + + while ($length > 0) { + $temp = fread($this->fsock, $length); + $raw.= $temp; + $length-= strlen($temp); + } + $stop = strtok(microtime(), ' ') + strtok(''); + + if (strlen($raw) && $this->crypto !== false) { + $raw = $this->crypto->decrypt($raw); + } + + $padding = substr($raw, 0, $padding_length); + $type = $raw[$padding_length]; + $data = substr($raw, $padding_length + 1, -4); + + $temp = unpack('Ncrc', substr($raw, -4)); + + //if ( $temp['crc'] != $this->_crc($padding . $type . $data) ) { + // user_error('Bad CRC in packet from server'); + // return false; + //} + + $type = ord($type); + + if (defined('NET_SSH1_LOGGING')) { + $temp = isset($this->protocol_flags[$type]) ? $this->protocol_flags[$type] : 'UNKNOWN'; + $temp = '<- ' . $temp . + ' (' . round($stop - $start, 4) . 's)'; + $this->_append_log($temp, $data); + } + + return array( + NET_SSH1_RESPONSE_TYPE => $type, + NET_SSH1_RESPONSE_DATA => $data + ); + } + + /** + * Sends Binary Packets + * + * Returns true on success, false on failure. + * + * @see Net_SSH1::_get_binary_packet() + * @param String $data + * @return Boolean + * @access private + */ + function _send_binary_packet($data) + { + if (feof($this->fsock)) { + //user_error('connection closed prematurely'); + return false; + } + + $length = strlen($data) + 4; + + $padding = crypt_random_string(8 - ($length & 7)); + + $orig = $data; + $data = $padding . $data; + $data.= pack('N', $this->_crc($data)); + + if ($this->crypto !== false) { + $data = $this->crypto->encrypt($data); + } + + $packet = pack('Na*', $length, $data); + + $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838 + $result = strlen($packet) == fputs($this->fsock, $packet); + $stop = strtok(microtime(), ' ') + strtok(''); + + if (defined('NET_SSH1_LOGGING')) { + $temp = isset($this->protocol_flags[ord($orig[0])]) ? $this->protocol_flags[ord($orig[0])] : 'UNKNOWN'; + $temp = '-> ' . $temp . + ' (' . round($stop - $start, 4) . 's)'; + $this->_append_log($temp, $orig); + } + + return $result; + } + + /** + * Cyclic Redundancy Check (CRC) + * + * PHP's crc32 function is implemented slightly differently than the one that SSH v1 uses, so + * we've reimplemented it. A more detailed discussion of the differences can be found after + * $crc_lookup_table's initialization. + * + * @see Net_SSH1::_get_binary_packet() + * @see Net_SSH1::_send_binary_packet() + * @param String $data + * @return Integer + * @access private + */ + function _crc($data) + { + static $crc_lookup_table = array( + 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, + 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, + 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, + 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, + 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, + 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, + 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, + 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, + 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, + 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, + 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, + 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, + 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, + 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, + 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, + 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, + 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, + 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, + 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, + 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, + 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, + 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, + 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, + 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, + 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, + 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, + 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, + 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, + 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, + 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, + 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, + 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, + 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, + 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, + 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, + 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, + 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, + 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, + 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, + 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, + 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, + 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, + 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, + 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, + 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, + 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, + 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, + 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, + 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, + 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, + 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, + 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, + 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, + 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, + 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, + 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, + 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, + 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, + 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, + 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, + 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, + 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, + 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, + 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D + ); + + // For this function to yield the same output as PHP's crc32 function, $crc would have to be + // set to 0xFFFFFFFF, initially - not 0x00000000 as it currently is. + $crc = 0x00000000; + $length = strlen($data); + + for ($i=0;$i<$length;$i++) { + // We AND $crc >> 8 with 0x00FFFFFF because we want the eight newly added bits to all + // be zero. PHP, unfortunately, doesn't always do this. 0x80000000 >> 8, as an example, + // yields 0xFF800000 - not 0x00800000. The following link elaborates: + // http://www.php.net/manual/en/language.operators.bitwise.php#57281 + $crc = (($crc >> 8) & 0x00FFFFFF) ^ $crc_lookup_table[($crc & 0xFF) ^ ord($data[$i])]; + } + + // In addition to having to set $crc to 0xFFFFFFFF, initially, the return value must be XOR'd with + // 0xFFFFFFFF for this function to return the same thing that PHP's crc32 function would. + return $crc; + } + + /** + * String Shift + * + * Inspired by array_shift + * + * @param String $string + * @param optional Integer $index + * @return String + * @access private + */ + function _string_shift(&$string, $index = 1) + { + $substr = substr($string, 0, $index); + $string = substr($string, $index); + return $substr; + } + + /** + * RSA Encrypt + * + * Returns mod(pow($m, $e), $n), where $n should be the product of two (large) primes $p and $q and where $e + * should be a number with the property that gcd($e, ($p - 1) * ($q - 1)) == 1. Could just make anything that + * calls this call modexp, instead, but I think this makes things clearer, maybe... + * + * @see Net_SSH1::Net_SSH1() + * @param Math_BigInteger $m + * @param Array $key + * @return Math_BigInteger + * @access private + */ + function _rsa_crypt($m, $key) + { + /* + if (!class_exists('Crypt_RSA')) { + include_once 'Crypt/RSA.php'; + } + + $rsa = new Crypt_RSA(); + $rsa->loadKey($key, CRYPT_RSA_PUBLIC_FORMAT_RAW); + $rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1); + return $rsa->encrypt($m); + */ + + // To quote from protocol-1.5.txt: + // The most significant byte (which is only partial as the value must be + // less than the public modulus, which is never a power of two) is zero. + // + // The next byte contains the value 2 (which stands for public-key + // encrypted data in the PKCS standard [PKCS#1]). Then, there are non- + // zero random bytes to fill any unused space, a zero byte, and the data + // to be encrypted in the least significant bytes, the last byte of the + // data in the least significant byte. + + // Presumably the part of PKCS#1 they're refering to is "Section 7.2.1 Encryption Operation", + // under "7.2 RSAES-PKCS1-v1.5" and "7 Encryption schemes" of the following URL: + // ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1.pdf + $modulus = $key[1]->toBytes(); + $length = strlen($modulus) - strlen($m) - 3; + $random = ''; + while (strlen($random) != $length) { + $block = crypt_random_string($length - strlen($random)); + $block = str_replace("\x00", '', $block); + $random.= $block; + } + $temp = chr(0) . chr(2) . $random . chr(0) . $m; + + $m = new Math_BigInteger($temp, 256); + $m = $m->modPow($key[0], $key[1]); + + return $m->toBytes(); + } + + /** + * Define Array + * + * Takes any number of arrays whose indices are integers and whose values are strings and defines a bunch of + * named constants from it, using the value as the name of the constant and the index as the value of the constant. + * If any of the constants that would be defined already exists, none of the constants will be defined. + * + * @param Array $array + * @access private + */ + function _define_array() + { + $args = func_get_args(); + foreach ($args as $arg) { + foreach ($arg as $key=>$value) { + if (!defined($value)) { + define($value, $key); + } else { + break 2; + } + } + } + } + + /** + * Returns a log of the packets that have been sent and received. + * + * Returns a string if NET_SSH1_LOGGING == NET_SSH1_LOG_COMPLEX, an array if NET_SSH1_LOGGING == NET_SSH1_LOG_SIMPLE and false if !defined('NET_SSH1_LOGGING') + * + * @access public + * @return String or Array + */ + function getLog() + { + if (!defined('NET_SSH1_LOGGING')) { + return false; + } + + switch (NET_SSH1_LOGGING) { + case NET_SSH1_LOG_SIMPLE: + return $this->message_number_log; + break; + case NET_SSH1_LOG_COMPLEX: + return $this->_format_log($this->message_log, $this->protocol_flags_log); + break; + default: + return false; + } + } + + /** + * Formats a log for printing + * + * @param Array $message_log + * @param Array $message_number_log + * @access private + * @return String + */ + function _format_log($message_log, $message_number_log) + { + $output = ''; + for ($i = 0; $i < count($message_log); $i++) { + $output.= $message_number_log[$i] . "\r\n"; + $current_log = $message_log[$i]; + $j = 0; + do { + if (strlen($current_log)) { + $output.= str_pad(dechex($j), 7, '0', STR_PAD_LEFT) . '0 '; + } + $fragment = $this->_string_shift($current_log, $this->log_short_width); + $hex = substr(preg_replace_callback('#.#s', array($this, '_format_log_helper'), $fragment), strlen($this->log_boundary)); + // replace non ASCII printable characters with dots + // http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters + // also replace < with a . since < messes up the output on web browsers + $raw = preg_replace('#[^\x20-\x7E]|<#', '.', $fragment); + $output.= str_pad($hex, $this->log_long_width - $this->log_short_width, ' ') . $raw . "\r\n"; + $j++; + } while (strlen($current_log)); + $output.= "\r\n"; + } + + return $output; + } + + /** + * Helper function for _format_log + * + * For use with preg_replace_callback() + * + * @param Array $matches + * @access private + * @return String + */ + function _format_log_helper($matches) + { + return $this->log_boundary . str_pad(dechex(ord($matches[0])), 2, '0', STR_PAD_LEFT); + } + + /** + * Return the server key public exponent + * + * Returns, by default, the base-10 representation. If $raw_output is set to true, returns, instead, + * the raw bytes. This behavior is similar to PHP's md5() function. + * + * @param optional Boolean $raw_output + * @return String + * @access public + */ + function getServerKeyPublicExponent($raw_output = false) + { + return $raw_output ? $this->server_key_public_exponent->toBytes() : $this->server_key_public_exponent->toString(); + } + + /** + * Return the server key public modulus + * + * Returns, by default, the base-10 representation. If $raw_output is set to true, returns, instead, + * the raw bytes. This behavior is similar to PHP's md5() function. + * + * @param optional Boolean $raw_output + * @return String + * @access public + */ + function getServerKeyPublicModulus($raw_output = false) + { + return $raw_output ? $this->server_key_public_modulus->toBytes() : $this->server_key_public_modulus->toString(); + } + + /** + * Return the host key public exponent + * + * Returns, by default, the base-10 representation. If $raw_output is set to true, returns, instead, + * the raw bytes. This behavior is similar to PHP's md5() function. + * + * @param optional Boolean $raw_output + * @return String + * @access public + */ + function getHostKeyPublicExponent($raw_output = false) + { + return $raw_output ? $this->host_key_public_exponent->toBytes() : $this->host_key_public_exponent->toString(); + } + + /** + * Return the host key public modulus + * + * Returns, by default, the base-10 representation. If $raw_output is set to true, returns, instead, + * the raw bytes. This behavior is similar to PHP's md5() function. + * + * @param optional Boolean $raw_output + * @return String + * @access public + */ + function getHostKeyPublicModulus($raw_output = false) + { + return $raw_output ? $this->host_key_public_modulus->toBytes() : $this->host_key_public_modulus->toString(); + } + + /** + * Return a list of ciphers supported by SSH1 server. + * + * Just because a cipher is supported by an SSH1 server doesn't mean it's supported by this library. If $raw_output + * is set to true, returns, instead, an array of constants. ie. instead of array('Triple-DES in CBC mode'), you'll + * get array(NET_SSH1_CIPHER_3DES). + * + * @param optional Boolean $raw_output + * @return Array + * @access public + */ + function getSupportedCiphers($raw_output = false) + { + return $raw_output ? array_keys($this->supported_ciphers) : array_values($this->supported_ciphers); + } + + /** + * Return a list of authentications supported by SSH1 server. + * + * Just because a cipher is supported by an SSH1 server doesn't mean it's supported by this library. If $raw_output + * is set to true, returns, instead, an array of constants. ie. instead of array('password authentication'), you'll + * get array(NET_SSH1_AUTH_PASSWORD). + * + * @param optional Boolean $raw_output + * @return Array + * @access public + */ + function getSupportedAuthentications($raw_output = false) + { + return $raw_output ? array_keys($this->supported_authentications) : array_values($this->supported_authentications); + } + + /** + * Return the server identification. + * + * @return String + * @access public + */ + function getServerIdentification() + { + return rtrim($this->server_identification); + } + + /** + * Logs data packets + * + * Makes sure that only the last 1MB worth of packets will be logged + * + * @param String $data + * @access private + */ + function _append_log($protocol_flags, $message) + { + switch (NET_SSH1_LOGGING) { + // useful for benchmarks + case NET_SSH1_LOG_SIMPLE: + $this->protocol_flags_log[] = $protocol_flags; + break; + // the most useful log for SSH1 + case NET_SSH1_LOG_COMPLEX: + $this->protocol_flags_log[] = $protocol_flags; + $this->_string_shift($message); + $this->log_size+= strlen($message); + $this->message_log[] = $message; + while ($this->log_size > NET_SSH1_LOG_MAX_SIZE) { + $this->log_size-= strlen(array_shift($this->message_log)); + array_shift($this->protocol_flags_log); + } + break; + // dump the output out realtime; packets may be interspersed with non packets, + // passwords won't be filtered out and select other packets may not be correctly + // identified + case NET_SSH1_LOG_REALTIME: + echo "
    \r\n" . $this->_format_log(array($message), array($protocol_flags)) . "\r\n
    \r\n"; + @flush(); + @ob_flush(); + break; + // basically the same thing as NET_SSH1_LOG_REALTIME with the caveat that NET_SSH1_LOG_REALTIME_FILE + // needs to be defined and that the resultant log file will be capped out at NET_SSH1_LOG_MAX_SIZE. + // the earliest part of the log file is denoted by the first <<< START >>> and is not going to necessarily + // at the beginning of the file + case NET_SSH1_LOG_REALTIME_FILE: + if (!isset($this->realtime_log_file)) { + // PHP doesn't seem to like using constants in fopen() + $filename = NET_SSH1_LOG_REALTIME_FILE; + $fp = fopen($filename, 'w'); + $this->realtime_log_file = $fp; + } + if (!is_resource($this->realtime_log_file)) { + break; + } + $entry = $this->_format_log(array($message), array($protocol_flags)); + if ($this->realtime_log_wrap) { + $temp = "<<< START >>>\r\n"; + $entry.= $temp; + fseek($this->realtime_log_file, ftell($this->realtime_log_file) - strlen($temp)); + } + $this->realtime_log_size+= strlen($entry); + if ($this->realtime_log_size > NET_SSH1_LOG_MAX_SIZE) { + fseek($this->realtime_log_file, 0); + $this->realtime_log_size = strlen($entry); + $this->realtime_log_wrap = true; + } + fputs($this->realtime_log_file, $entry); + } + } +} diff --git a/lam/lib/3rdParty/phpseclib/Net/SSH2.php b/lam/lib/3rdParty/phpseclib/Net/SSH2.php new file mode 100644 index 00000000..2fddb68a --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/Net/SSH2.php @@ -0,0 +1,3686 @@ + + * login('username', 'password')) { + * exit('Login Failed'); + * } + * + * echo $ssh->exec('pwd'); + * echo $ssh->exec('ls -la'); + * ?> + * + * + * + * setPassword('whatever'); + * $key->loadKey(file_get_contents('privatekey')); + * + * $ssh = new Net_SSH2('www.domain.tld'); + * if (!$ssh->login('username', $key)) { + * exit('Login Failed'); + * } + * + * echo $ssh->read('username@username:~$'); + * $ssh->write("ls -la\n"); + * echo $ssh->read('username@username:~$'); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category Net + * @package Net_SSH2 + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @link http://phpseclib.sourceforge.net + */ + +/**#@+ + * Execution Bitmap Masks + * + * @see Net_SSH2::bitmap + * @access private + */ +define('NET_SSH2_MASK_CONSTRUCTOR', 0x00000001); +define('NET_SSH2_MASK_LOGIN_REQ', 0x00000002); +define('NET_SSH2_MASK_LOGIN', 0x00000004); +define('NET_SSH2_MASK_SHELL', 0x00000008); +define('NET_SSH2_MASK_WINDOW_ADJUST', 0X00000010); +/**#@-*/ + +/**#@+ + * Channel constants + * + * RFC4254 refers not to client and server channels but rather to sender and recipient channels. we don't refer + * to them in that way because RFC4254 toggles the meaning. the client sends a SSH_MSG_CHANNEL_OPEN message with + * a sender channel and the server sends a SSH_MSG_CHANNEL_OPEN_CONFIRMATION in response, with a sender and a + * recepient channel. at first glance, you might conclude that SSH_MSG_CHANNEL_OPEN_CONFIRMATION's sender channel + * would be the same thing as SSH_MSG_CHANNEL_OPEN's sender channel, but it's not, per this snipet: + * The 'recipient channel' is the channel number given in the original + * open request, and 'sender channel' is the channel number allocated by + * the other side. + * + * @see Net_SSH2::_send_channel_packet() + * @see Net_SSH2::_get_channel_packet() + * @access private + */ +define('NET_SSH2_CHANNEL_EXEC', 0); // PuTTy uses 0x100 +define('NET_SSH2_CHANNEL_SHELL', 1); +define('NET_SSH2_CHANNEL_SUBSYSTEM', 2); +/**#@-*/ + +/**#@+ + * @access public + * @see Net_SSH2::getLog() + */ +/** + * Returns the message numbers + */ +define('NET_SSH2_LOG_SIMPLE', 1); +/** + * Returns the message content + */ +define('NET_SSH2_LOG_COMPLEX', 2); +/** + * Outputs the content real-time + */ +define('NET_SSH2_LOG_REALTIME', 3); +/** + * Dumps the content real-time to a file + */ +define('NET_SSH2_LOG_REALTIME_FILE', 4); +/**#@-*/ + +/**#@+ + * @access public + * @see Net_SSH2::read() + */ +/** + * Returns when a string matching $expect exactly is found + */ +define('NET_SSH2_READ_SIMPLE', 1); +/** + * Returns when a string matching the regular expression $expect is found + */ +define('NET_SSH2_READ_REGEX', 2); +/** + * Make sure that the log never gets larger than this + */ +define('NET_SSH2_LOG_MAX_SIZE', 1024 * 1024); +/**#@-*/ + +/** + * Pure-PHP implementation of SSHv2. + * + * @package Net_SSH2 + * @author Jim Wigginton + * @version 0.1.0 + * @access public + */ +class Net_SSH2 +{ + /** + * The SSH identifier + * + * @var String + * @access private + */ + var $identifier; + + /** + * The Socket Object + * + * @var Object + * @access private + */ + var $fsock; + + /** + * Execution Bitmap + * + * The bits that are set represent functions that have been called already. This is used to determine + * if a requisite function has been successfully executed. If not, an error should be thrown. + * + * @var Integer + * @access private + */ + var $bitmap = 0; + + /** + * Error information + * + * @see Net_SSH2::getErrors() + * @see Net_SSH2::getLastError() + * @var String + * @access private + */ + var $errors = array(); + + /** + * Server Identifier + * + * @see Net_SSH2::getServerIdentification() + * @var String + * @access private + */ + var $server_identifier = ''; + + /** + * Key Exchange Algorithms + * + * @see Net_SSH2::getKexAlgorithims() + * @var Array + * @access private + */ + var $kex_algorithms; + + /** + * Server Host Key Algorithms + * + * @see Net_SSH2::getServerHostKeyAlgorithms() + * @var Array + * @access private + */ + var $server_host_key_algorithms; + + /** + * Encryption Algorithms: Client to Server + * + * @see Net_SSH2::getEncryptionAlgorithmsClient2Server() + * @var Array + * @access private + */ + var $encryption_algorithms_client_to_server; + + /** + * Encryption Algorithms: Server to Client + * + * @see Net_SSH2::getEncryptionAlgorithmsServer2Client() + * @var Array + * @access private + */ + var $encryption_algorithms_server_to_client; + + /** + * MAC Algorithms: Client to Server + * + * @see Net_SSH2::getMACAlgorithmsClient2Server() + * @var Array + * @access private + */ + var $mac_algorithms_client_to_server; + + /** + * MAC Algorithms: Server to Client + * + * @see Net_SSH2::getMACAlgorithmsServer2Client() + * @var Array + * @access private + */ + var $mac_algorithms_server_to_client; + + /** + * Compression Algorithms: Client to Server + * + * @see Net_SSH2::getCompressionAlgorithmsClient2Server() + * @var Array + * @access private + */ + var $compression_algorithms_client_to_server; + + /** + * Compression Algorithms: Server to Client + * + * @see Net_SSH2::getCompressionAlgorithmsServer2Client() + * @var Array + * @access private + */ + var $compression_algorithms_server_to_client; + + /** + * Languages: Server to Client + * + * @see Net_SSH2::getLanguagesServer2Client() + * @var Array + * @access private + */ + var $languages_server_to_client; + + /** + * Languages: Client to Server + * + * @see Net_SSH2::getLanguagesClient2Server() + * @var Array + * @access private + */ + var $languages_client_to_server; + + /** + * Block Size for Server to Client Encryption + * + * "Note that the length of the concatenation of 'packet_length', + * 'padding_length', 'payload', and 'random padding' MUST be a multiple + * of the cipher block size or 8, whichever is larger. This constraint + * MUST be enforced, even when using stream ciphers." + * + * -- http://tools.ietf.org/html/rfc4253#section-6 + * + * @see Net_SSH2::Net_SSH2() + * @see Net_SSH2::_send_binary_packet() + * @var Integer + * @access private + */ + var $encrypt_block_size = 8; + + /** + * Block Size for Client to Server Encryption + * + * @see Net_SSH2::Net_SSH2() + * @see Net_SSH2::_get_binary_packet() + * @var Integer + * @access private + */ + var $decrypt_block_size = 8; + + /** + * Server to Client Encryption Object + * + * @see Net_SSH2::_get_binary_packet() + * @var Object + * @access private + */ + var $decrypt = false; + + /** + * Client to Server Encryption Object + * + * @see Net_SSH2::_send_binary_packet() + * @var Object + * @access private + */ + var $encrypt = false; + + /** + * Client to Server HMAC Object + * + * @see Net_SSH2::_send_binary_packet() + * @var Object + * @access private + */ + var $hmac_create = false; + + /** + * Server to Client HMAC Object + * + * @see Net_SSH2::_get_binary_packet() + * @var Object + * @access private + */ + var $hmac_check = false; + + /** + * Size of server to client HMAC + * + * We need to know how big the HMAC will be for the server to client direction so that we know how many bytes to read. + * For the client to server side, the HMAC object will make the HMAC as long as it needs to be. All we need to do is + * append it. + * + * @see Net_SSH2::_get_binary_packet() + * @var Integer + * @access private + */ + var $hmac_size = false; + + /** + * Server Public Host Key + * + * @see Net_SSH2::getServerPublicHostKey() + * @var String + * @access private + */ + var $server_public_host_key; + + /** + * Session identifer + * + * "The exchange hash H from the first key exchange is additionally + * used as the session identifier, which is a unique identifier for + * this connection." + * + * -- http://tools.ietf.org/html/rfc4253#section-7.2 + * + * @see Net_SSH2::_key_exchange() + * @var String + * @access private + */ + var $session_id = false; + + /** + * Exchange hash + * + * The current exchange hash + * + * @see Net_SSH2::_key_exchange() + * @var String + * @access private + */ + var $exchange_hash = false; + + /** + * Message Numbers + * + * @see Net_SSH2::Net_SSH2() + * @var Array + * @access private + */ + var $message_numbers = array(); + + /** + * Disconnection Message 'reason codes' defined in RFC4253 + * + * @see Net_SSH2::Net_SSH2() + * @var Array + * @access private + */ + var $disconnect_reasons = array(); + + /** + * SSH_MSG_CHANNEL_OPEN_FAILURE 'reason codes', defined in RFC4254 + * + * @see Net_SSH2::Net_SSH2() + * @var Array + * @access private + */ + var $channel_open_failure_reasons = array(); + + /** + * Terminal Modes + * + * @link http://tools.ietf.org/html/rfc4254#section-8 + * @see Net_SSH2::Net_SSH2() + * @var Array + * @access private + */ + var $terminal_modes = array(); + + /** + * SSH_MSG_CHANNEL_EXTENDED_DATA's data_type_codes + * + * @link http://tools.ietf.org/html/rfc4254#section-5.2 + * @see Net_SSH2::Net_SSH2() + * @var Array + * @access private + */ + var $channel_extended_data_type_codes = array(); + + /** + * Send Sequence Number + * + * See 'Section 6.4. Data Integrity' of rfc4253 for more info. + * + * @see Net_SSH2::_send_binary_packet() + * @var Integer + * @access private + */ + var $send_seq_no = 0; + + /** + * Get Sequence Number + * + * See 'Section 6.4. Data Integrity' of rfc4253 for more info. + * + * @see Net_SSH2::_get_binary_packet() + * @var Integer + * @access private + */ + var $get_seq_no = 0; + + /** + * Server Channels + * + * Maps client channels to server channels + * + * @see Net_SSH2::_get_channel_packet() + * @see Net_SSH2::exec() + * @var Array + * @access private + */ + var $server_channels = array(); + + /** + * Channel Buffers + * + * If a client requests a packet from one channel but receives two packets from another those packets should + * be placed in a buffer + * + * @see Net_SSH2::_get_channel_packet() + * @see Net_SSH2::exec() + * @var Array + * @access private + */ + var $channel_buffers = array(); + + /** + * Channel Status + * + * Contains the type of the last sent message + * + * @see Net_SSH2::_get_channel_packet() + * @var Array + * @access private + */ + var $channel_status = array(); + + /** + * Packet Size + * + * Maximum packet size indexed by channel + * + * @see Net_SSH2::_send_channel_packet() + * @var Array + * @access private + */ + var $packet_size_client_to_server = array(); + + /** + * Message Number Log + * + * @see Net_SSH2::getLog() + * @var Array + * @access private + */ + var $message_number_log = array(); + + /** + * Message Log + * + * @see Net_SSH2::getLog() + * @var Array + * @access private + */ + var $message_log = array(); + + /** + * The Window Size + * + * Bytes the other party can send before it must wait for the window to be adjusted (0x7FFFFFFF = 2GB) + * + * @var Integer + * @see Net_SSH2::_send_channel_packet() + * @see Net_SSH2::exec() + * @access private + */ + var $window_size = 0x7FFFFFFF; + + /** + * Window size, server to client + * + * Window size indexed by channel + * + * @see Net_SSH2::_send_channel_packet() + * @var Array + * @access private + */ + var $window_size_server_to_client = array(); + + /** + * Window size, client to server + * + * Window size indexed by channel + * + * @see Net_SSH2::_get_channel_packet() + * @var Array + * @access private + */ + var $window_size_client_to_server = array(); + + /** + * Server signature + * + * Verified against $this->session_id + * + * @see Net_SSH2::getServerPublicHostKey() + * @var String + * @access private + */ + var $signature = ''; + + /** + * Server signature format + * + * ssh-rsa or ssh-dss. + * + * @see Net_SSH2::getServerPublicHostKey() + * @var String + * @access private + */ + var $signature_format = ''; + + /** + * Interactive Buffer + * + * @see Net_SSH2::read() + * @var Array + * @access private + */ + var $interactiveBuffer = ''; + + /** + * Current log size + * + * Should never exceed NET_SSH2_LOG_MAX_SIZE + * + * @see Net_SSH2::_send_binary_packet() + * @see Net_SSH2::_get_binary_packet() + * @var Integer + * @access private + */ + var $log_size; + + /** + * Timeout + * + * @see Net_SSH2::setTimeout() + * @access private + */ + var $timeout; + + /** + * Current Timeout + * + * @see Net_SSH2::_get_channel_packet() + * @access private + */ + var $curTimeout; + + /** + * Real-time log file pointer + * + * @see Net_SSH2::_append_log() + * @var Resource + * @access private + */ + var $realtime_log_file; + + /** + * Real-time log file size + * + * @see Net_SSH2::_append_log() + * @var Integer + * @access private + */ + var $realtime_log_size; + + /** + * Has the signature been validated? + * + * @see Net_SSH2::getServerPublicHostKey() + * @var Boolean + * @access private + */ + var $signature_validated = false; + + /** + * Real-time log file wrap boolean + * + * @see Net_SSH2::_append_log() + * @access private + */ + var $realtime_log_wrap; + + /** + * Flag to suppress stderr from output + * + * @see Net_SSH2::enableQuietMode() + * @access private + */ + var $quiet_mode = false; + + /** + * Time of first network activity + * + * @access private + */ + var $last_packet; + + /** + * Exit status returned from ssh if any + * + * @var Integer + * @access private + */ + var $exit_status; + + /** + * Flag to request a PTY when using exec() + * + * @see Net_SSH2::enablePTY() + * @access private + */ + var $request_pty = false; + + /** + * Flag set while exec() is running when using enablePTY() + * + * @access private + */ + var $in_request_pty_exec = false; + + /** + * Flag set after startSubsystem() is called + * + * @access private + */ + var $in_subsystem; + + /** + * Contents of stdError + * + * @access private + */ + var $stdErrorLog; + + /** + * The Last Interactive Response + * + * @see Net_SSH2::_keyboard_interactive_process() + * @access private + */ + var $last_interactive_response = ''; + + /** + * Keyboard Interactive Request / Responses + * + * @see Net_SSH2::_keyboard_interactive_process() + * @access private + */ + var $keyboard_requests_responses = array(); + + /** + * Banner Message + * + * Quoting from the RFC, "in some jurisdictions, sending a warning message before + * authentication may be relevant for getting legal protection." + * + * @see Net_SSH2::_filter() + * @see Net_SSH2::getBannerMessage() + * @access private + */ + var $banner_message = ''; + + /** + * Did read() timeout or return normally? + * + * @see Net_SSH2::isTimeout + * @access private + */ + var $is_timeout = false; + + /** + * Log Boundary + * + * @see Net_SSH2::_format_log + * @access private + */ + var $log_boundary = ':'; + + /** + * Log Long Width + * + * @see Net_SSH2::_format_log + * @access private + */ + var $log_long_width = 65; + + /** + * Log Short Width + * + * @see Net_SSH2::_format_log + * @access private + */ + var $log_short_width = 16; + + /** + * Default Constructor. + * + * Connects to an SSHv2 server + * + * @param String $host + * @param optional Integer $port + * @param optional Integer $timeout + * @return Net_SSH2 + * @access public + */ + function Net_SSH2($host, $port = 22, $timeout = 10) + { + // Include Math_BigInteger + // Used to do Diffie-Hellman key exchange and DSA/RSA signature verification. + if (!class_exists('Math_BigInteger')) { + include_once 'Math/BigInteger.php'; + } + + if (!function_exists('crypt_random_string')) { + include_once 'Crypt/Random.php'; + } + + if (!class_exists('Crypt_Hash')) { + include_once 'Crypt/Hash.php'; + } + + $this->last_packet = strtok(microtime(), ' ') + strtok(''); // == microtime(true) in PHP5 + $this->message_numbers = array( + 1 => 'NET_SSH2_MSG_DISCONNECT', + 2 => 'NET_SSH2_MSG_IGNORE', + 3 => 'NET_SSH2_MSG_UNIMPLEMENTED', + 4 => 'NET_SSH2_MSG_DEBUG', + 5 => 'NET_SSH2_MSG_SERVICE_REQUEST', + 6 => 'NET_SSH2_MSG_SERVICE_ACCEPT', + 20 => 'NET_SSH2_MSG_KEXINIT', + 21 => 'NET_SSH2_MSG_NEWKEYS', + 30 => 'NET_SSH2_MSG_KEXDH_INIT', + 31 => 'NET_SSH2_MSG_KEXDH_REPLY', + 50 => 'NET_SSH2_MSG_USERAUTH_REQUEST', + 51 => 'NET_SSH2_MSG_USERAUTH_FAILURE', + 52 => 'NET_SSH2_MSG_USERAUTH_SUCCESS', + 53 => 'NET_SSH2_MSG_USERAUTH_BANNER', + + 80 => 'NET_SSH2_MSG_GLOBAL_REQUEST', + 81 => 'NET_SSH2_MSG_REQUEST_SUCCESS', + 82 => 'NET_SSH2_MSG_REQUEST_FAILURE', + 90 => 'NET_SSH2_MSG_CHANNEL_OPEN', + 91 => 'NET_SSH2_MSG_CHANNEL_OPEN_CONFIRMATION', + 92 => 'NET_SSH2_MSG_CHANNEL_OPEN_FAILURE', + 93 => 'NET_SSH2_MSG_CHANNEL_WINDOW_ADJUST', + 94 => 'NET_SSH2_MSG_CHANNEL_DATA', + 95 => 'NET_SSH2_MSG_CHANNEL_EXTENDED_DATA', + 96 => 'NET_SSH2_MSG_CHANNEL_EOF', + 97 => 'NET_SSH2_MSG_CHANNEL_CLOSE', + 98 => 'NET_SSH2_MSG_CHANNEL_REQUEST', + 99 => 'NET_SSH2_MSG_CHANNEL_SUCCESS', + 100 => 'NET_SSH2_MSG_CHANNEL_FAILURE' + ); + $this->disconnect_reasons = array( + 1 => 'NET_SSH2_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT', + 2 => 'NET_SSH2_DISCONNECT_PROTOCOL_ERROR', + 3 => 'NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED', + 4 => 'NET_SSH2_DISCONNECT_RESERVED', + 5 => 'NET_SSH2_DISCONNECT_MAC_ERROR', + 6 => 'NET_SSH2_DISCONNECT_COMPRESSION_ERROR', + 7 => 'NET_SSH2_DISCONNECT_SERVICE_NOT_AVAILABLE', + 8 => 'NET_SSH2_DISCONNECT_PROTOCOL_VERSION_NOT_SUPPORTED', + 9 => 'NET_SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE', + 10 => 'NET_SSH2_DISCONNECT_CONNECTION_LOST', + 11 => 'NET_SSH2_DISCONNECT_BY_APPLICATION', + 12 => 'NET_SSH2_DISCONNECT_TOO_MANY_CONNECTIONS', + 13 => 'NET_SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER', + 14 => 'NET_SSH2_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE', + 15 => 'NET_SSH2_DISCONNECT_ILLEGAL_USER_NAME' + ); + $this->channel_open_failure_reasons = array( + 1 => 'NET_SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED' + ); + $this->terminal_modes = array( + 0 => 'NET_SSH2_TTY_OP_END' + ); + $this->channel_extended_data_type_codes = array( + 1 => 'NET_SSH2_EXTENDED_DATA_STDERR' + ); + + $this->_define_array( + $this->message_numbers, + $this->disconnect_reasons, + $this->channel_open_failure_reasons, + $this->terminal_modes, + $this->channel_extended_data_type_codes, + array(60 => 'NET_SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ'), + array(60 => 'NET_SSH2_MSG_USERAUTH_PK_OK'), + array(60 => 'NET_SSH2_MSG_USERAUTH_INFO_REQUEST', + 61 => 'NET_SSH2_MSG_USERAUTH_INFO_RESPONSE') + ); + + $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838 + $this->fsock = @fsockopen($host, $port, $errno, $errstr, $timeout); + if (!$this->fsock) { + user_error(rtrim("Cannot connect to $host. Error $errno. $errstr")); + return; + } + $elapsed = strtok(microtime(), ' ') + strtok('') - $start; + + $timeout-= $elapsed; + + if ($timeout <= 0) { + user_error(rtrim("Cannot connect to $host. Timeout error")); + return; + } + + $read = array($this->fsock); + $write = $except = null; + + $sec = floor($timeout); + $usec = 1000000 * ($timeout - $sec); + + // on windows this returns a "Warning: Invalid CRT parameters detected" error + // the !count() is done as a workaround for + if (!@stream_select($read, $write, $except, $sec, $usec) && !count($read)) { + user_error(rtrim("Cannot connect to $host. Banner timeout")); + return; + } + + /* According to the SSH2 specs, + + "The server MAY send other lines of data before sending the version + string. Each line SHOULD be terminated by a Carriage Return and Line + Feed. Such lines MUST NOT begin with "SSH-", and SHOULD be encoded + in ISO-10646 UTF-8 [RFC3629] (language is not specified). Clients + MUST be able to process such lines." */ + $temp = ''; + $extra = ''; + while (!feof($this->fsock) && !preg_match('#^SSH-(\d\.\d+)#', $temp, $matches)) { + if (substr($temp, -2) == "\r\n") { + $extra.= $temp; + $temp = ''; + } + $temp.= fgets($this->fsock, 255); + } + + if (feof($this->fsock)) { + user_error('Connection closed by server'); + return false; + } + + $this->identifier = $this->_generate_identifier(); + + if (defined('NET_SSH2_LOGGING')) { + $this->_append_log('<-', $extra . $temp); + $this->_append_log('->', $this->identifier . "\r\n"); + } + + $this->server_identifier = trim($temp, "\r\n"); + if (strlen($extra)) { + $this->errors[] = utf8_decode($extra); + } + + if ($matches[1] != '1.99' && $matches[1] != '2.0') { + user_error("Cannot connect to SSH $matches[1] servers"); + return; + } + + fputs($this->fsock, $this->identifier . "\r\n"); + + $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return; + } + + if (ord($response[0]) != NET_SSH2_MSG_KEXINIT) { + user_error('Expected SSH_MSG_KEXINIT'); + return; + } + + if (!$this->_key_exchange($response)) { + return; + } + + $this->bitmap = NET_SSH2_MASK_CONSTRUCTOR; + } + + /** + * Generates the SSH identifier + * + * You should overwrite this method in your own class if you want to use another identifier + * + * @access protected + * @return String + */ + function _generate_identifier() + { + $identifier = 'SSH-2.0-phpseclib_0.3'; + + $ext = array(); + if (extension_loaded('mcrypt')) { + $ext[] = 'mcrypt'; + } + + if (extension_loaded('gmp')) { + $ext[] = 'gmp'; + } elseif (extension_loaded('bcmath')) { + $ext[] = 'bcmath'; + } + + if (!empty($ext)) { + $identifier .= ' (' . implode(', ', $ext) . ')'; + } + + return $identifier; + } + + /** + * Key Exchange + * + * @param String $kexinit_payload_server + * @access private + */ + function _key_exchange($kexinit_payload_server) + { + static $kex_algorithms = array( + 'diffie-hellman-group1-sha1', // REQUIRED + 'diffie-hellman-group14-sha1' // REQUIRED + ); + + static $server_host_key_algorithms = array( + 'ssh-rsa', // RECOMMENDED sign Raw RSA Key + 'ssh-dss' // REQUIRED sign Raw DSS Key + ); + + static $encryption_algorithms = false; + if ($encryption_algorithms === false) { + $encryption_algorithms = array( + // from : + 'arcfour256', + 'arcfour128', + + 'arcfour', // OPTIONAL the ARCFOUR stream cipher with a 128-bit key + + // CTR modes from : + 'aes128-ctr', // RECOMMENDED AES (Rijndael) in SDCTR mode, with 128-bit key + 'aes192-ctr', // RECOMMENDED AES with 192-bit key + 'aes256-ctr', // RECOMMENDED AES with 256-bit key + + 'twofish128-ctr', // OPTIONAL Twofish in SDCTR mode, with 128-bit key + 'twofish192-ctr', // OPTIONAL Twofish with 192-bit key + 'twofish256-ctr', // OPTIONAL Twofish with 256-bit key + + 'aes128-cbc', // RECOMMENDED AES with a 128-bit key + 'aes192-cbc', // OPTIONAL AES with a 192-bit key + 'aes256-cbc', // OPTIONAL AES in CBC mode, with a 256-bit key + + 'twofish128-cbc', // OPTIONAL Twofish with a 128-bit key + 'twofish192-cbc', // OPTIONAL Twofish with a 192-bit key + 'twofish256-cbc', + 'twofish-cbc', // OPTIONAL alias for "twofish256-cbc" + // (this is being retained for historical reasons) + + 'blowfish-ctr', // OPTIONAL Blowfish in SDCTR mode + + 'blowfish-cbc', // OPTIONAL Blowfish in CBC mode + + '3des-ctr', // RECOMMENDED Three-key 3DES in SDCTR mode + + '3des-cbc', // REQUIRED three-key 3DES in CBC mode + 'none' // OPTIONAL no encryption; NOT RECOMMENDED + ); + + if (!$this->_is_includable('Crypt/RC4.php')) { + $encryption_algorithms = array_diff( + $encryption_algorithms, + array('arcfour256', 'arcfour128', 'arcfour') + ); + } + if (!$this->_is_includable('Crypt/Rijndael.php')) { + $encryption_algorithms = array_diff( + $encryption_algorithms, + array('aes128-ctr', 'aes192-ctr', 'aes256-ctr', 'aes128-cbc', 'aes192-cbc', 'aes256-cbc') + ); + } + if (!$this->_is_includable('Crypt/Twofish.php')) { + $encryption_algorithms = array_diff( + $encryption_algorithms, + array('twofish128-ctr', 'twofish192-ctr', 'twofish256-ctr', 'twofish128-cbc', 'twofish192-cbc', 'twofish256-cbc', 'twofish-cbc') + ); + } + if (!$this->_is_includable('Crypt/Blowfish.php')) { + $encryption_algorithms = array_diff( + $encryption_algorithms, + array('blowfish-ctr', 'blowfish-cbc') + ); + } + if (!$this->_is_includable('Crypt/TripleDES.php')) { + $encryption_algorithms = array_diff( + $encryption_algorithms, + array('3des-ctr', '3des-cbc') + ); + } + $encryption_algorithms = array_values($encryption_algorithms); + } + + static $mac_algorithms = array( + 'hmac-sha1-96', // RECOMMENDED first 96 bits of HMAC-SHA1 (digest length = 12, key length = 20) + 'hmac-sha1', // REQUIRED HMAC-SHA1 (digest length = key length = 20) + 'hmac-md5-96', // OPTIONAL first 96 bits of HMAC-MD5 (digest length = 12, key length = 16) + 'hmac-md5', // OPTIONAL HMAC-MD5 (digest length = key length = 16) + 'none' // OPTIONAL no MAC; NOT RECOMMENDED + ); + + static $compression_algorithms = array( + 'none' // REQUIRED no compression + //'zlib' // OPTIONAL ZLIB (LZ77) compression + ); + + // some SSH servers have buggy implementations of some of the above algorithms + switch ($this->server_identifier) { + case 'SSH-2.0-SSHD': + $mac_algorithms = array_values(array_diff( + $mac_algorithms, + array('hmac-sha1-96', 'hmac-md5-96') + )); + } + + static $str_kex_algorithms, $str_server_host_key_algorithms, + $encryption_algorithms_server_to_client, $mac_algorithms_server_to_client, $compression_algorithms_server_to_client, + $encryption_algorithms_client_to_server, $mac_algorithms_client_to_server, $compression_algorithms_client_to_server; + + if (empty($str_kex_algorithms)) { + $str_kex_algorithms = implode(',', $kex_algorithms); + $str_server_host_key_algorithms = implode(',', $server_host_key_algorithms); + $encryption_algorithms_server_to_client = $encryption_algorithms_client_to_server = implode(',', $encryption_algorithms); + $mac_algorithms_server_to_client = $mac_algorithms_client_to_server = implode(',', $mac_algorithms); + $compression_algorithms_server_to_client = $compression_algorithms_client_to_server = implode(',', $compression_algorithms); + } + + $client_cookie = crypt_random_string(16); + + $response = $kexinit_payload_server; + $this->_string_shift($response, 1); // skip past the message number (it should be SSH_MSG_KEXINIT) + $server_cookie = $this->_string_shift($response, 16); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->kex_algorithms = explode(',', $this->_string_shift($response, $temp['length'])); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->server_host_key_algorithms = explode(',', $this->_string_shift($response, $temp['length'])); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->encryption_algorithms_client_to_server = explode(',', $this->_string_shift($response, $temp['length'])); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->encryption_algorithms_server_to_client = explode(',', $this->_string_shift($response, $temp['length'])); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->mac_algorithms_client_to_server = explode(',', $this->_string_shift($response, $temp['length'])); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->mac_algorithms_server_to_client = explode(',', $this->_string_shift($response, $temp['length'])); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->compression_algorithms_client_to_server = explode(',', $this->_string_shift($response, $temp['length'])); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->compression_algorithms_server_to_client = explode(',', $this->_string_shift($response, $temp['length'])); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->languages_client_to_server = explode(',', $this->_string_shift($response, $temp['length'])); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->languages_server_to_client = explode(',', $this->_string_shift($response, $temp['length'])); + + extract(unpack('Cfirst_kex_packet_follows', $this->_string_shift($response, 1))); + $first_kex_packet_follows = $first_kex_packet_follows != 0; + + // the sending of SSH2_MSG_KEXINIT could go in one of two places. this is the second place. + $kexinit_payload_client = pack('Ca*Na*Na*Na*Na*Na*Na*Na*Na*Na*Na*CN', + NET_SSH2_MSG_KEXINIT, $client_cookie, strlen($str_kex_algorithms), $str_kex_algorithms, + strlen($str_server_host_key_algorithms), $str_server_host_key_algorithms, strlen($encryption_algorithms_client_to_server), + $encryption_algorithms_client_to_server, strlen($encryption_algorithms_server_to_client), $encryption_algorithms_server_to_client, + strlen($mac_algorithms_client_to_server), $mac_algorithms_client_to_server, strlen($mac_algorithms_server_to_client), + $mac_algorithms_server_to_client, strlen($compression_algorithms_client_to_server), $compression_algorithms_client_to_server, + strlen($compression_algorithms_server_to_client), $compression_algorithms_server_to_client, 0, '', 0, '', + 0, 0 + ); + + if (!$this->_send_binary_packet($kexinit_payload_client)) { + return false; + } + // here ends the second place. + + // we need to decide upon the symmetric encryption algorithms before we do the diffie-hellman key exchange + for ($i = 0; $i < count($encryption_algorithms) && !in_array($encryption_algorithms[$i], $this->encryption_algorithms_server_to_client); $i++); + if ($i == count($encryption_algorithms)) { + user_error('No compatible server to client encryption algorithms found'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + + // we don't initialize any crypto-objects, yet - we do that, later. for now, we need the lengths to make the + // diffie-hellman key exchange as fast as possible + $decrypt = $encryption_algorithms[$i]; + switch ($decrypt) { + case '3des-cbc': + case '3des-ctr': + $decryptKeyLength = 24; // eg. 192 / 8 + break; + case 'aes256-cbc': + case 'aes256-ctr': + case 'twofish-cbc': + case 'twofish256-cbc': + case 'twofish256-ctr': + $decryptKeyLength = 32; // eg. 256 / 8 + break; + case 'aes192-cbc': + case 'aes192-ctr': + case 'twofish192-cbc': + case 'twofish192-ctr': + $decryptKeyLength = 24; // eg. 192 / 8 + break; + case 'aes128-cbc': + case 'aes128-ctr': + case 'twofish128-cbc': + case 'twofish128-ctr': + case 'blowfish-cbc': + case 'blowfish-ctr': + $decryptKeyLength = 16; // eg. 128 / 8 + break; + case 'arcfour': + case 'arcfour128': + $decryptKeyLength = 16; // eg. 128 / 8 + break; + case 'arcfour256': + $decryptKeyLength = 32; // eg. 128 / 8 + break; + case 'none'; + $decryptKeyLength = 0; + } + + for ($i = 0; $i < count($encryption_algorithms) && !in_array($encryption_algorithms[$i], $this->encryption_algorithms_client_to_server); $i++); + if ($i == count($encryption_algorithms)) { + user_error('No compatible client to server encryption algorithms found'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + + $encrypt = $encryption_algorithms[$i]; + switch ($encrypt) { + case '3des-cbc': + case '3des-ctr': + $encryptKeyLength = 24; + break; + case 'aes256-cbc': + case 'aes256-ctr': + case 'twofish-cbc': + case 'twofish256-cbc': + case 'twofish256-ctr': + $encryptKeyLength = 32; + break; + case 'aes192-cbc': + case 'aes192-ctr': + case 'twofish192-cbc': + case 'twofish192-ctr': + $encryptKeyLength = 24; + break; + case 'aes128-cbc': + case 'aes128-ctr': + case 'twofish128-cbc': + case 'twofish128-ctr': + case 'blowfish-cbc': + case 'blowfish-ctr': + $encryptKeyLength = 16; + break; + case 'arcfour': + case 'arcfour128': + $encryptKeyLength = 16; + break; + case 'arcfour256': + $encryptKeyLength = 32; + break; + case 'none'; + $encryptKeyLength = 0; + } + + $keyLength = $decryptKeyLength > $encryptKeyLength ? $decryptKeyLength : $encryptKeyLength; + + // through diffie-hellman key exchange a symmetric key is obtained + for ($i = 0; $i < count($kex_algorithms) && !in_array($kex_algorithms[$i], $this->kex_algorithms); $i++); + if ($i == count($kex_algorithms)) { + user_error('No compatible key exchange algorithms found'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + + switch ($kex_algorithms[$i]) { + // see http://tools.ietf.org/html/rfc2409#section-6.2 and + // http://tools.ietf.org/html/rfc2412, appendex E + case 'diffie-hellman-group1-sha1': + $prime = 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74' . + '020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F1437' . + '4FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED' . + 'EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF'; + break; + // see http://tools.ietf.org/html/rfc3526#section-3 + case 'diffie-hellman-group14-sha1': + $prime = 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74' . + '020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F1437' . + '4FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED' . + 'EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF05' . + '98DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB' . + '9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B' . + 'E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF695581718' . + '3995497CEA956AE515D2261898FA051015728E5A8AACAA68FFFFFFFFFFFFFFFF'; + break; + } + + // For both diffie-hellman-group1-sha1 and diffie-hellman-group14-sha1 + // the generator field element is 2 (decimal) and the hash function is sha1. + $g = new Math_BigInteger(2); + $prime = new Math_BigInteger($prime, 16); + $kexHash = new Crypt_Hash('sha1'); + //$q = $p->bitwise_rightShift(1); + + /* To increase the speed of the key exchange, both client and server may + reduce the size of their private exponents. It should be at least + twice as long as the key material that is generated from the shared + secret. For more details, see the paper by van Oorschot and Wiener + [VAN-OORSCHOT]. + + -- http://tools.ietf.org/html/rfc4419#section-6.2 */ + $one = new Math_BigInteger(1); + $keyLength = min($keyLength, $kexHash->getLength()); + $max = $one->bitwise_leftShift(16 * $keyLength); // 2 * 8 * $keyLength + $max = $max->subtract($one); + + $x = $one->random($one, $max); + $e = $g->modPow($x, $prime); + + $eBytes = $e->toBytes(true); + $data = pack('CNa*', NET_SSH2_MSG_KEXDH_INIT, strlen($eBytes), $eBytes); + + if (!$this->_send_binary_packet($data)) { + user_error('Connection closed by server'); + return false; + } + + $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + extract(unpack('Ctype', $this->_string_shift($response, 1))); + + if ($type != NET_SSH2_MSG_KEXDH_REPLY) { + user_error('Expected SSH_MSG_KEXDH_REPLY'); + return false; + } + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->server_public_host_key = $server_public_host_key = $this->_string_shift($response, $temp['length']); + + $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4)); + $public_key_format = $this->_string_shift($server_public_host_key, $temp['length']); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $fBytes = $this->_string_shift($response, $temp['length']); + $f = new Math_BigInteger($fBytes, -256); + + $temp = unpack('Nlength', $this->_string_shift($response, 4)); + $this->signature = $this->_string_shift($response, $temp['length']); + + $temp = unpack('Nlength', $this->_string_shift($this->signature, 4)); + $this->signature_format = $this->_string_shift($this->signature, $temp['length']); + + $key = $f->modPow($x, $prime); + $keyBytes = $key->toBytes(true); + + $this->exchange_hash = pack('Na*Na*Na*Na*Na*Na*Na*Na*', + strlen($this->identifier), $this->identifier, strlen($this->server_identifier), $this->server_identifier, + strlen($kexinit_payload_client), $kexinit_payload_client, strlen($kexinit_payload_server), + $kexinit_payload_server, strlen($this->server_public_host_key), $this->server_public_host_key, strlen($eBytes), + $eBytes, strlen($fBytes), $fBytes, strlen($keyBytes), $keyBytes + ); + + $this->exchange_hash = $kexHash->hash($this->exchange_hash); + + if ($this->session_id === false) { + $this->session_id = $this->exchange_hash; + } + + for ($i = 0; $i < count($server_host_key_algorithms) && !in_array($server_host_key_algorithms[$i], $this->server_host_key_algorithms); $i++); + if ($i == count($server_host_key_algorithms)) { + user_error('No compatible server host key algorithms found'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + + if ($public_key_format != $server_host_key_algorithms[$i] || $this->signature_format != $server_host_key_algorithms[$i]) { + user_error('Server Host Key Algorithm Mismatch'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + + $packet = pack('C', + NET_SSH2_MSG_NEWKEYS + ); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $response = $this->_get_binary_packet(); + + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + + extract(unpack('Ctype', $this->_string_shift($response, 1))); + + if ($type != NET_SSH2_MSG_NEWKEYS) { + user_error('Expected SSH_MSG_NEWKEYS'); + return false; + } + + switch ($encrypt) { + case '3des-cbc': + if (!class_exists('Crypt_TripleDES')) { + include_once 'Crypt/TripleDES.php'; + } + $this->encrypt = new Crypt_TripleDES(); + // $this->encrypt_block_size = 64 / 8 == the default + break; + case '3des-ctr': + if (!class_exists('Crypt_TripleDES')) { + include_once 'Crypt/TripleDES.php'; + } + $this->encrypt = new Crypt_TripleDES(CRYPT_DES_MODE_CTR); + // $this->encrypt_block_size = 64 / 8 == the default + break; + case 'aes256-cbc': + case 'aes192-cbc': + case 'aes128-cbc': + if (!class_exists('Crypt_Rijndael')) { + include_once 'Crypt/Rijndael.php'; + } + $this->encrypt = new Crypt_Rijndael(); + $this->encrypt_block_size = 16; // eg. 128 / 8 + break; + case 'aes256-ctr': + case 'aes192-ctr': + case 'aes128-ctr': + if (!class_exists('Crypt_Rijndael')) { + include_once 'Crypt/Rijndael.php'; + } + $this->encrypt = new Crypt_Rijndael(CRYPT_RIJNDAEL_MODE_CTR); + $this->encrypt_block_size = 16; // eg. 128 / 8 + break; + case 'blowfish-cbc': + if (!class_exists('Crypt_Blowfish')) { + include_once 'Crypt/Blowfish.php'; + } + $this->encrypt = new Crypt_Blowfish(); + $this->encrypt_block_size = 8; + break; + case 'blowfish-ctr': + if (!class_exists('Crypt_Blowfish')) { + include_once 'Crypt/Blowfish.php'; + } + $this->encrypt = new Crypt_Blowfish(CRYPT_BLOWFISH_MODE_CTR); + $this->encrypt_block_size = 8; + break; + case 'twofish128-cbc': + case 'twofish192-cbc': + case 'twofish256-cbc': + case 'twofish-cbc': + if (!class_exists('Crypt_Twofish')) { + include_once 'Crypt/Twofish.php'; + } + $this->encrypt = new Crypt_Twofish(); + $this->encrypt_block_size = 16; + break; + case 'twofish128-ctr': + case 'twofish192-ctr': + case 'twofish256-ctr': + if (!class_exists('Crypt_Twofish')) { + include_once 'Crypt/Twofish.php'; + } + $this->encrypt = new Crypt_Twofish(CRYPT_TWOFISH_MODE_CTR); + $this->encrypt_block_size = 16; + break; + case 'arcfour': + case 'arcfour128': + case 'arcfour256': + if (!class_exists('Crypt_RC4')) { + include_once 'Crypt/RC4.php'; + } + $this->encrypt = new Crypt_RC4(); + break; + case 'none'; + //$this->encrypt = new Crypt_Null(); + } + + switch ($decrypt) { + case '3des-cbc': + if (!class_exists('Crypt_TripleDES')) { + include_once 'Crypt/TripleDES.php'; + } + $this->decrypt = new Crypt_TripleDES(); + break; + case '3des-ctr': + if (!class_exists('Crypt_TripleDES')) { + include_once 'Crypt/TripleDES.php'; + } + $this->decrypt = new Crypt_TripleDES(CRYPT_DES_MODE_CTR); + break; + case 'aes256-cbc': + case 'aes192-cbc': + case 'aes128-cbc': + if (!class_exists('Crypt_Rijndael')) { + include_once 'Crypt/Rijndael.php'; + } + $this->decrypt = new Crypt_Rijndael(); + $this->decrypt_block_size = 16; + break; + case 'aes256-ctr': + case 'aes192-ctr': + case 'aes128-ctr': + if (!class_exists('Crypt_Rijndael')) { + include_once 'Crypt/Rijndael.php'; + } + $this->decrypt = new Crypt_Rijndael(CRYPT_RIJNDAEL_MODE_CTR); + $this->decrypt_block_size = 16; + break; + case 'blowfish-cbc': + if (!class_exists('Crypt_Blowfish')) { + include_once 'Crypt/Blowfish.php'; + } + $this->decrypt = new Crypt_Blowfish(); + $this->decrypt_block_size = 8; + break; + case 'blowfish-ctr': + if (!class_exists('Crypt_Blowfish')) { + include_once 'Crypt/Blowfish.php'; + } + $this->decrypt = new Crypt_Blowfish(CRYPT_BLOWFISH_MODE_CTR); + $this->decrypt_block_size = 8; + break; + case 'twofish128-cbc': + case 'twofish192-cbc': + case 'twofish256-cbc': + case 'twofish-cbc': + if (!class_exists('Crypt_Twofish')) { + include_once 'Crypt/Twofish.php'; + } + $this->decrypt = new Crypt_Twofish(); + $this->decrypt_block_size = 16; + break; + case 'twofish128-ctr': + case 'twofish192-ctr': + case 'twofish256-ctr': + if (!class_exists('Crypt_Twofish')) { + include_once 'Crypt/Twofish.php'; + } + $this->decrypt = new Crypt_Twofish(CRYPT_TWOFISH_MODE_CTR); + $this->decrypt_block_size = 16; + break; + case 'arcfour': + case 'arcfour128': + case 'arcfour256': + if (!class_exists('Crypt_RC4')) { + include_once 'Crypt/RC4.php'; + } + $this->decrypt = new Crypt_RC4(); + break; + case 'none'; + //$this->decrypt = new Crypt_Null(); + } + + $keyBytes = pack('Na*', strlen($keyBytes), $keyBytes); + + if ($this->encrypt) { + $this->encrypt->enableContinuousBuffer(); + $this->encrypt->disablePadding(); + + $iv = $kexHash->hash($keyBytes . $this->exchange_hash . 'A' . $this->session_id); + while ($this->encrypt_block_size > strlen($iv)) { + $iv.= $kexHash->hash($keyBytes . $this->exchange_hash . $iv); + } + $this->encrypt->setIV(substr($iv, 0, $this->encrypt_block_size)); + + $key = $kexHash->hash($keyBytes . $this->exchange_hash . 'C' . $this->session_id); + while ($encryptKeyLength > strlen($key)) { + $key.= $kexHash->hash($keyBytes . $this->exchange_hash . $key); + } + $this->encrypt->setKey(substr($key, 0, $encryptKeyLength)); + } + + if ($this->decrypt) { + $this->decrypt->enableContinuousBuffer(); + $this->decrypt->disablePadding(); + + $iv = $kexHash->hash($keyBytes . $this->exchange_hash . 'B' . $this->session_id); + while ($this->decrypt_block_size > strlen($iv)) { + $iv.= $kexHash->hash($keyBytes . $this->exchange_hash . $iv); + } + $this->decrypt->setIV(substr($iv, 0, $this->decrypt_block_size)); + + $key = $kexHash->hash($keyBytes . $this->exchange_hash . 'D' . $this->session_id); + while ($decryptKeyLength > strlen($key)) { + $key.= $kexHash->hash($keyBytes . $this->exchange_hash . $key); + } + $this->decrypt->setKey(substr($key, 0, $decryptKeyLength)); + } + + /* The "arcfour128" algorithm is the RC4 cipher, as described in + [SCHNEIER], using a 128-bit key. The first 1536 bytes of keystream + generated by the cipher MUST be discarded, and the first byte of the + first encrypted packet MUST be encrypted using the 1537th byte of + keystream. + + -- http://tools.ietf.org/html/rfc4345#section-4 */ + if ($encrypt == 'arcfour128' || $encrypt == 'arcfour256') { + $this->encrypt->encrypt(str_repeat("\0", 1536)); + } + if ($decrypt == 'arcfour128' || $decrypt == 'arcfour256') { + $this->decrypt->decrypt(str_repeat("\0", 1536)); + } + + for ($i = 0; $i < count($mac_algorithms) && !in_array($mac_algorithms[$i], $this->mac_algorithms_client_to_server); $i++); + if ($i == count($mac_algorithms)) { + user_error('No compatible client to server message authentication algorithms found'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + + $createKeyLength = 0; // ie. $mac_algorithms[$i] == 'none' + switch ($mac_algorithms[$i]) { + case 'hmac-sha1': + $this->hmac_create = new Crypt_Hash('sha1'); + $createKeyLength = 20; + break; + case 'hmac-sha1-96': + $this->hmac_create = new Crypt_Hash('sha1-96'); + $createKeyLength = 20; + break; + case 'hmac-md5': + $this->hmac_create = new Crypt_Hash('md5'); + $createKeyLength = 16; + break; + case 'hmac-md5-96': + $this->hmac_create = new Crypt_Hash('md5-96'); + $createKeyLength = 16; + } + + for ($i = 0; $i < count($mac_algorithms) && !in_array($mac_algorithms[$i], $this->mac_algorithms_server_to_client); $i++); + if ($i == count($mac_algorithms)) { + user_error('No compatible server to client message authentication algorithms found'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + + $checkKeyLength = 0; + $this->hmac_size = 0; + switch ($mac_algorithms[$i]) { + case 'hmac-sha1': + $this->hmac_check = new Crypt_Hash('sha1'); + $checkKeyLength = 20; + $this->hmac_size = 20; + break; + case 'hmac-sha1-96': + $this->hmac_check = new Crypt_Hash('sha1-96'); + $checkKeyLength = 20; + $this->hmac_size = 12; + break; + case 'hmac-md5': + $this->hmac_check = new Crypt_Hash('md5'); + $checkKeyLength = 16; + $this->hmac_size = 16; + break; + case 'hmac-md5-96': + $this->hmac_check = new Crypt_Hash('md5-96'); + $checkKeyLength = 16; + $this->hmac_size = 12; + } + + $key = $kexHash->hash($keyBytes . $this->exchange_hash . 'E' . $this->session_id); + while ($createKeyLength > strlen($key)) { + $key.= $kexHash->hash($keyBytes . $this->exchange_hash . $key); + } + $this->hmac_create->setKey(substr($key, 0, $createKeyLength)); + + $key = $kexHash->hash($keyBytes . $this->exchange_hash . 'F' . $this->session_id); + while ($checkKeyLength > strlen($key)) { + $key.= $kexHash->hash($keyBytes . $this->exchange_hash . $key); + } + $this->hmac_check->setKey(substr($key, 0, $checkKeyLength)); + + for ($i = 0; $i < count($compression_algorithms) && !in_array($compression_algorithms[$i], $this->compression_algorithms_server_to_client); $i++); + if ($i == count($compression_algorithms)) { + user_error('No compatible server to client compression algorithms found'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + $this->decompress = $compression_algorithms[$i] == 'zlib'; + + for ($i = 0; $i < count($compression_algorithms) && !in_array($compression_algorithms[$i], $this->compression_algorithms_client_to_server); $i++); + if ($i == count($compression_algorithms)) { + user_error('No compatible client to server compression algorithms found'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + $this->compress = $compression_algorithms[$i] == 'zlib'; + + return true; + } + + /** + * Login + * + * The $password parameter can be a plaintext password, a Crypt_RSA object or an array + * + * @param String $username + * @param Mixed $password + * @param Mixed $... + * @return Boolean + * @see _login + * @access public + */ + function login($username) + { + $args = func_get_args(); + return call_user_func_array(array(&$this, '_login'), $args); + } + + /** + * Login Helper + * + * @param String $username + * @param Mixed $password + * @param Mixed $... + * @return Boolean + * @see _login_helper + * @access private + */ + function _login($username) + { + $args = array_slice(func_get_args(), 1); + if (empty($args)) { + return $this->_login_helper($username); + } + + foreach ($args as $arg) { + if ($this->_login_helper($username, $arg)) { + return true; + } + } + return false; + } + + /** + * Login Helper + * + * @param String $username + * @param optional String $password + * @return Boolean + * @access private + * @internal It might be worthwhile, at some point, to protect against {@link http://tools.ietf.org/html/rfc4251#section-9.3.9 traffic analysis} + * by sending dummy SSH_MSG_IGNORE messages. + */ + function _login_helper($username, $password = null) + { + if (!($this->bitmap & NET_SSH2_MASK_CONSTRUCTOR)) { + return false; + } + + if (!($this->bitmap & NET_SSH2_MASK_LOGIN_REQ)) { + $packet = pack('CNa*', + NET_SSH2_MSG_SERVICE_REQUEST, strlen('ssh-userauth'), 'ssh-userauth' + ); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + + extract(unpack('Ctype', $this->_string_shift($response, 1))); + + if ($type != NET_SSH2_MSG_SERVICE_ACCEPT) { + user_error('Expected SSH_MSG_SERVICE_ACCEPT'); + return false; + } + $this->bitmap |= NET_SSH2_MASK_LOGIN_REQ; + } + + if (strlen($this->last_interactive_response)) { + return !is_string($password) && !is_array($password) ? false : $this->_keyboard_interactive_process($password); + } + + // although PHP5's get_class() preserves the case, PHP4's does not + if (is_object($password)) { + switch (strtolower(get_class($password))) { + case 'crypt_rsa': + return $this->_privatekey_login($username, $password); + case 'system_ssh_agent': + return $this->_ssh_agent_login($username, $password); + } + } + + if (is_array($password)) { + if ($this->_keyboard_interactive_login($username, $password)) { + $this->bitmap |= NET_SSH2_MASK_LOGIN; + return true; + } + return false; + } + + if (!isset($password)) { + $packet = pack('CNa*Na*Na*', + NET_SSH2_MSG_USERAUTH_REQUEST, strlen($username), $username, strlen('ssh-connection'), 'ssh-connection', + strlen('none'), 'none' + ); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + + extract(unpack('Ctype', $this->_string_shift($response, 1))); + + switch ($type) { + case NET_SSH2_MSG_USERAUTH_SUCCESS: + $this->bitmap |= NET_SSH2_MASK_LOGIN; + return true; + //case NET_SSH2_MSG_USERAUTH_FAILURE: + default: + return false; + } + } + + $packet = pack('CNa*Na*Na*CNa*', + NET_SSH2_MSG_USERAUTH_REQUEST, strlen($username), $username, strlen('ssh-connection'), 'ssh-connection', + strlen('password'), 'password', 0, strlen($password), $password + ); + + // remove the username and password from the logged packet + if (!defined('NET_SSH2_LOGGING')) { + $logged = null; + } else { + $logged = pack('CNa*Na*Na*CNa*', + NET_SSH2_MSG_USERAUTH_REQUEST, strlen('username'), 'username', strlen('ssh-connection'), 'ssh-connection', + strlen('password'), 'password', 0, strlen('password'), 'password' + ); + } + + if (!$this->_send_binary_packet($packet, $logged)) { + return false; + } + + $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + + extract(unpack('Ctype', $this->_string_shift($response, 1))); + + switch ($type) { + case NET_SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ: // in theory, the password can be changed + if (defined('NET_SSH2_LOGGING')) { + $this->message_number_log[count($this->message_number_log) - 1] = 'NET_SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ'; + } + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $this->errors[] = 'SSH_MSG_USERAUTH_PASSWD_CHANGEREQ: ' . utf8_decode($this->_string_shift($response, $length)); + return $this->_disconnect(NET_SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER); + case NET_SSH2_MSG_USERAUTH_FAILURE: + // can we use keyboard-interactive authentication? if not then either the login is bad or the server employees + // multi-factor authentication + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $auth_methods = explode(',', $this->_string_shift($response, $length)); + extract(unpack('Cpartial_success', $this->_string_shift($response, 1))); + $partial_success = $partial_success != 0; + + if (!$partial_success && in_array('keyboard-interactive', $auth_methods)) { + if ($this->_keyboard_interactive_login($username, $password)) { + $this->bitmap |= NET_SSH2_MASK_LOGIN; + return true; + } + return false; + } + return false; + case NET_SSH2_MSG_USERAUTH_SUCCESS: + $this->bitmap |= NET_SSH2_MASK_LOGIN; + return true; + } + + return false; + } + + /** + * Login via keyboard-interactive authentication + * + * See {@link http://tools.ietf.org/html/rfc4256 RFC4256} for details. This is not a full-featured keyboard-interactive authenticator. + * + * @param String $username + * @param String $password + * @return Boolean + * @access private + */ + function _keyboard_interactive_login($username, $password) + { + $packet = pack('CNa*Na*Na*Na*Na*', + NET_SSH2_MSG_USERAUTH_REQUEST, strlen($username), $username, strlen('ssh-connection'), 'ssh-connection', + strlen('keyboard-interactive'), 'keyboard-interactive', 0, '', 0, '' + ); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + return $this->_keyboard_interactive_process($password); + } + + /** + * Handle the keyboard-interactive requests / responses. + * + * @param String $responses... + * @return Boolean + * @access private + */ + function _keyboard_interactive_process() + { + $responses = func_get_args(); + + if (strlen($this->last_interactive_response)) { + $response = $this->last_interactive_response; + } else { + $orig = $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + } + + extract(unpack('Ctype', $this->_string_shift($response, 1))); + + switch ($type) { + case NET_SSH2_MSG_USERAUTH_INFO_REQUEST: + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $this->_string_shift($response, $length); // name; may be empty + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $this->_string_shift($response, $length); // instruction; may be empty + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $this->_string_shift($response, $length); // language tag; may be empty + extract(unpack('Nnum_prompts', $this->_string_shift($response, 4))); + + for ($i = 0; $i < count($responses); $i++) { + if (is_array($responses[$i])) { + foreach ($responses[$i] as $key => $value) { + $this->keyboard_requests_responses[$key] = $value; + } + unset($responses[$i]); + } + } + $responses = array_values($responses); + + if (isset($this->keyboard_requests_responses)) { + for ($i = 0; $i < $num_prompts; $i++) { + extract(unpack('Nlength', $this->_string_shift($response, 4))); + // prompt - ie. "Password: "; must not be empty + $prompt = $this->_string_shift($response, $length); + //$echo = $this->_string_shift($response) != chr(0); + foreach ($this->keyboard_requests_responses as $key => $value) { + if (substr($prompt, 0, strlen($key)) == $key) { + $responses[] = $value; + break; + } + } + } + } + + // see http://tools.ietf.org/html/rfc4256#section-3.2 + if (strlen($this->last_interactive_response)) { + $this->last_interactive_response = ''; + } else if (defined('NET_SSH2_LOGGING')) { + $this->message_number_log[count($this->message_number_log) - 1] = str_replace( + 'UNKNOWN', + 'NET_SSH2_MSG_USERAUTH_INFO_REQUEST', + $this->message_number_log[count($this->message_number_log) - 1] + ); + } + + if (!count($responses) && $num_prompts) { + $this->last_interactive_response = $orig; + $this->bitmap |= NET_SSH_MASK_LOGIN_INTERACTIVE; + return false; + } + + /* + After obtaining the requested information from the user, the client + MUST respond with an SSH_MSG_USERAUTH_INFO_RESPONSE message. + */ + // see http://tools.ietf.org/html/rfc4256#section-3.4 + $packet = $logged = pack('CN', NET_SSH2_MSG_USERAUTH_INFO_RESPONSE, count($responses)); + for ($i = 0; $i < count($responses); $i++) { + $packet.= pack('Na*', strlen($responses[$i]), $responses[$i]); + $logged.= pack('Na*', strlen('dummy-answer'), 'dummy-answer'); + } + + if (!$this->_send_binary_packet($packet, $logged)) { + return false; + } + + if (defined('NET_SSH2_LOGGING') && NET_SSH2_LOGGING == NET_SSH2_LOG_COMPLEX) { + $this->message_number_log[count($this->message_number_log) - 1] = str_replace( + 'UNKNOWN', + 'NET_SSH2_MSG_USERAUTH_INFO_RESPONSE', + $this->message_number_log[count($this->message_number_log) - 1] + ); + } + + /* + After receiving the response, the server MUST send either an + SSH_MSG_USERAUTH_SUCCESS, SSH_MSG_USERAUTH_FAILURE, or another + SSH_MSG_USERAUTH_INFO_REQUEST message. + */ + // maybe phpseclib should force close the connection after x request / responses? unless something like that is done + // there could be an infinite loop of request / responses. + return $this->_keyboard_interactive_process(); + case NET_SSH2_MSG_USERAUTH_SUCCESS: + return true; + case NET_SSH2_MSG_USERAUTH_FAILURE: + return false; + } + + return false; + } + + /** + * Login with an ssh-agent provided key + * + * @param String $username + * @param System_SSH_Agent $agent + * @return Boolean + * @access private + */ + function _ssh_agent_login($username, $agent) + { + $keys = $agent->requestIdentities(); + foreach ($keys as $key) { + if ($this->_privatekey_login($username, $key)) { + return true; + } + } + + return false; + } + + /** + * Login with an RSA private key + * + * @param String $username + * @param Crypt_RSA $password + * @return Boolean + * @access private + * @internal It might be worthwhile, at some point, to protect against {@link http://tools.ietf.org/html/rfc4251#section-9.3.9 traffic analysis} + * by sending dummy SSH_MSG_IGNORE messages. + */ + function _privatekey_login($username, $privatekey) + { + // see http://tools.ietf.org/html/rfc4253#page-15 + $publickey = $privatekey->getPublicKey(CRYPT_RSA_PUBLIC_FORMAT_RAW); + if ($publickey === false) { + return false; + } + + $publickey = array( + 'e' => $publickey['e']->toBytes(true), + 'n' => $publickey['n']->toBytes(true) + ); + $publickey = pack('Na*Na*Na*', + strlen('ssh-rsa'), 'ssh-rsa', strlen($publickey['e']), $publickey['e'], strlen($publickey['n']), $publickey['n'] + ); + + $part1 = pack('CNa*Na*Na*', + NET_SSH2_MSG_USERAUTH_REQUEST, strlen($username), $username, strlen('ssh-connection'), 'ssh-connection', + strlen('publickey'), 'publickey' + ); + $part2 = pack('Na*Na*', strlen('ssh-rsa'), 'ssh-rsa', strlen($publickey), $publickey); + + $packet = $part1 . chr(0) . $part2; + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + + extract(unpack('Ctype', $this->_string_shift($response, 1))); + + switch ($type) { + case NET_SSH2_MSG_USERAUTH_FAILURE: + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $this->errors[] = 'SSH_MSG_USERAUTH_FAILURE: ' . $this->_string_shift($response, $length); + return false; + case NET_SSH2_MSG_USERAUTH_PK_OK: + // we'll just take it on faith that the public key blob and the public key algorithm name are as + // they should be + if (defined('NET_SSH2_LOGGING') && NET_SSH2_LOGGING == NET_SSH2_LOG_COMPLEX) { + $this->message_number_log[count($this->message_number_log) - 1] = str_replace( + 'UNKNOWN', + 'NET_SSH2_MSG_USERAUTH_PK_OK', + $this->message_number_log[count($this->message_number_log) - 1] + ); + } + } + + $packet = $part1 . chr(1) . $part2; + $privatekey->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1); + $signature = $privatekey->sign(pack('Na*a*', strlen($this->session_id), $this->session_id, $packet)); + $signature = pack('Na*Na*', strlen('ssh-rsa'), 'ssh-rsa', strlen($signature), $signature); + $packet.= pack('Na*', strlen($signature), $signature); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + + extract(unpack('Ctype', $this->_string_shift($response, 1))); + + switch ($type) { + case NET_SSH2_MSG_USERAUTH_FAILURE: + // either the login is bad or the server employs multi-factor authentication + return false; + case NET_SSH2_MSG_USERAUTH_SUCCESS: + $this->bitmap |= NET_SSH2_MASK_LOGIN; + return true; + } + + return false; + } + + /** + * Set Timeout + * + * $ssh->exec('ping 127.0.0.1'); on a Linux host will never return and will run indefinitely. setTimeout() makes it so it'll timeout. + * Setting $timeout to false or 0 will mean there is no timeout. + * + * @param Mixed $timeout + * @access public + */ + function setTimeout($timeout) + { + $this->timeout = $this->curTimeout = $timeout; + } + + /** + * Get the output from stdError + * + * @access public + */ + function getStdError() + { + return $this->stdErrorLog; + } + + /** + * Execute Command + * + * If $block is set to false then Net_SSH2::_get_channel_packet(NET_SSH2_CHANNEL_EXEC) will need to be called manually. + * In all likelihood, this is not a feature you want to be taking advantage of. + * + * @param String $command + * @param optional Boolean $block + * @return String + * @access public + */ + function exec($command, $callback = null) + { + $this->curTimeout = $this->timeout; + $this->is_timeout = false; + $this->stdErrorLog = ''; + + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + return false; + } + + // RFC4254 defines the (client) window size as "bytes the other party can send before it must wait for the window to + // be adjusted". 0x7FFFFFFF is, at 2GB, the max size. technically, it should probably be decremented, but, + // honestly, if you're transfering more than 2GB, you probably shouldn't be using phpseclib, anyway. + // see http://tools.ietf.org/html/rfc4254#section-5.2 for more info + $this->window_size_server_to_client[NET_SSH2_CHANNEL_EXEC] = 0x7FFFFFFF; + // 0x8000 is the maximum max packet size, per http://tools.ietf.org/html/rfc4253#section-6.1, although since PuTTy + // uses 0x4000, that's what will be used here, as well. + $packet_size = 0x4000; + + $packet = pack('CNa*N3', + NET_SSH2_MSG_CHANNEL_OPEN, strlen('session'), 'session', NET_SSH2_CHANNEL_EXEC, $this->window_size_server_to_client[NET_SSH2_CHANNEL_EXEC], $packet_size); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $this->channel_status[NET_SSH2_CHANNEL_EXEC] = NET_SSH2_MSG_CHANNEL_OPEN; + + $response = $this->_get_channel_packet(NET_SSH2_CHANNEL_EXEC); + if ($response === false) { + return false; + } + + if ($this->request_pty === true) { + $terminal_modes = pack('C', NET_SSH2_TTY_OP_END); + $packet = pack('CNNa*CNa*N5a*', + NET_SSH2_MSG_CHANNEL_REQUEST, $this->server_channels[NET_SSH2_CHANNEL_EXEC], strlen('pty-req'), 'pty-req', 1, strlen('vt100'), 'vt100', + 80, 24, 0, 0, strlen($terminal_modes), $terminal_modes); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + + list(, $type) = unpack('C', $this->_string_shift($response, 1)); + + switch ($type) { + case NET_SSH2_MSG_CHANNEL_SUCCESS: + break; + case NET_SSH2_MSG_CHANNEL_FAILURE: + default: + user_error('Unable to request pseudo-terminal'); + return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); + } + $this->in_request_pty_exec = true; + } + + // sending a pty-req SSH_MSG_CHANNEL_REQUEST message is unnecessary and, in fact, in most cases, slows things + // down. the one place where it might be desirable is if you're doing something like Net_SSH2::exec('ping localhost &'). + // with a pty-req SSH_MSG_CHANNEL_REQUEST, exec() will return immediately and the ping process will then + // then immediately terminate. without such a request exec() will loop indefinitely. the ping process won't end but + // neither will your script. + + // although, in theory, the size of SSH_MSG_CHANNEL_REQUEST could exceed the maximum packet size established by + // SSH_MSG_CHANNEL_OPEN_CONFIRMATION, RFC4254#section-5.1 states that the "maximum packet size" refers to the + // "maximum size of an individual data packet". ie. SSH_MSG_CHANNEL_DATA. RFC4254#section-5.2 corroborates. + $packet = pack('CNNa*CNa*', + NET_SSH2_MSG_CHANNEL_REQUEST, $this->server_channels[NET_SSH2_CHANNEL_EXEC], strlen('exec'), 'exec', 1, strlen($command), $command); + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $this->channel_status[NET_SSH2_CHANNEL_EXEC] = NET_SSH2_MSG_CHANNEL_REQUEST; + + $response = $this->_get_channel_packet(NET_SSH2_CHANNEL_EXEC); + if ($response === false) { + return false; + } + + $this->channel_status[NET_SSH2_CHANNEL_EXEC] = NET_SSH2_MSG_CHANNEL_DATA; + + if ($callback === false || $this->in_request_pty_exec) { + return true; + } + + $output = ''; + while (true) { + $temp = $this->_get_channel_packet(NET_SSH2_CHANNEL_EXEC); + switch (true) { + case $temp === true: + return is_callable($callback) ? true : $output; + case $temp === false: + return false; + default: + if (is_callable($callback)) { + $callback($temp); + } else { + $output.= $temp; + } + } + } + } + + /** + * Creates an interactive shell + * + * @see Net_SSH2::read() + * @see Net_SSH2::write() + * @return Boolean + * @access private + */ + function _initShell() + { + if ($this->in_request_pty_exec === true) { + return true; + } + + $this->window_size_server_to_client[NET_SSH2_CHANNEL_SHELL] = 0x7FFFFFFF; + $packet_size = 0x4000; + + $packet = pack('CNa*N3', + NET_SSH2_MSG_CHANNEL_OPEN, strlen('session'), 'session', NET_SSH2_CHANNEL_SHELL, $this->window_size_server_to_client[NET_SSH2_CHANNEL_SHELL], $packet_size); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $this->channel_status[NET_SSH2_CHANNEL_SHELL] = NET_SSH2_MSG_CHANNEL_OPEN; + + $response = $this->_get_channel_packet(NET_SSH2_CHANNEL_SHELL); + if ($response === false) { + return false; + } + + $terminal_modes = pack('C', NET_SSH2_TTY_OP_END); + $packet = pack('CNNa*CNa*N5a*', + NET_SSH2_MSG_CHANNEL_REQUEST, $this->server_channels[NET_SSH2_CHANNEL_SHELL], strlen('pty-req'), 'pty-req', 1, strlen('vt100'), 'vt100', + 80, 24, 0, 0, strlen($terminal_modes), $terminal_modes); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + + list(, $type) = unpack('C', $this->_string_shift($response, 1)); + + switch ($type) { + case NET_SSH2_MSG_CHANNEL_SUCCESS: + // if a pty can't be opened maybe commands can still be executed + case NET_SSH2_MSG_CHANNEL_FAILURE: + break; + default: + user_error('Unable to request pseudo-terminal'); + return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); + } + + $packet = pack('CNNa*C', + NET_SSH2_MSG_CHANNEL_REQUEST, $this->server_channels[NET_SSH2_CHANNEL_SHELL], strlen('shell'), 'shell', 1); + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $this->channel_status[NET_SSH2_CHANNEL_SHELL] = NET_SSH2_MSG_CHANNEL_REQUEST; + + $response = $this->_get_channel_packet(NET_SSH2_CHANNEL_SHELL); + if ($response === false) { + return false; + } + + $this->channel_status[NET_SSH2_CHANNEL_SHELL] = NET_SSH2_MSG_CHANNEL_DATA; + + $this->bitmap |= NET_SSH2_MASK_SHELL; + + return true; + } + + /** + * Return the channel to be used with read() / write() + * + * @see Net_SSH2::read() + * @see Net_SSH2::write() + * @return Integer + * @access public + */ + function _get_interactive_channel() + { + switch (true) { + case $this->in_subsystem: + return NET_SSH2_CHANNEL_SUBSYSTEM; + case $this->in_request_pty_exec: + return NET_SSH2_CHANNEL_EXEC; + default: + return NET_SSH2_CHANNEL_SHELL; + } + } + + /** + * Returns the output of an interactive shell + * + * Returns when there's a match for $expect, which can take the form of a string literal or, + * if $mode == NET_SSH2_READ_REGEX, a regular expression. + * + * @see Net_SSH2::write() + * @param String $expect + * @param Integer $mode + * @return String + * @access public + */ + function read($expect = '', $mode = NET_SSH2_READ_SIMPLE) + { + $this->curTimeout = $this->timeout; + $this->is_timeout = false; + + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + user_error('Operation disallowed prior to login()'); + return false; + } + + if (!($this->bitmap & NET_SSH2_MASK_SHELL) && !$this->_initShell()) { + user_error('Unable to initiate an interactive shell session'); + return false; + } + + $channel = $this->_get_interactive_channel(); + + $match = $expect; + while (true) { + if ($mode == NET_SSH2_READ_REGEX) { + preg_match($expect, $this->interactiveBuffer, $matches); + $match = isset($matches[0]) ? $matches[0] : ''; + } + $pos = strlen($match) ? strpos($this->interactiveBuffer, $match) : false; + if ($pos !== false) { + return $this->_string_shift($this->interactiveBuffer, $pos + strlen($match)); + } + $response = $this->_get_channel_packet($channel); + if (is_bool($response)) { + $this->in_request_pty_exec = false; + return $response ? $this->_string_shift($this->interactiveBuffer, strlen($this->interactiveBuffer)) : false; + } + + $this->interactiveBuffer.= $response; + } + } + + /** + * Inputs a command into an interactive shell. + * + * @see Net_SSH2::read() + * @param String $cmd + * @return Boolean + * @access public + */ + function write($cmd) + { + if (!($this->bitmap & NET_SSH2_MASK_LOGIN)) { + user_error('Operation disallowed prior to login()'); + return false; + } + + if (!($this->bitmap & NET_SSH2_MASK_SHELL) && !$this->_initShell()) { + user_error('Unable to initiate an interactive shell session'); + return false; + } + + return $this->_send_channel_packet($this->_get_interactive_channel(), $cmd); + } + + /** + * Start a subsystem. + * + * Right now only one subsystem at a time is supported. To support multiple subsystem's stopSubsystem() could accept + * a string that contained the name of the subsystem, but at that point, only one subsystem of each type could be opened. + * To support multiple subsystem's of the same name maybe it'd be best if startSubsystem() generated a new channel id and + * returns that and then that that was passed into stopSubsystem() but that'll be saved for a future date and implemented + * if there's sufficient demand for such a feature. + * + * @see Net_SSH2::stopSubsystem() + * @param String $subsystem + * @return Boolean + * @access public + */ + function startSubsystem($subsystem) + { + $this->window_size_server_to_client[NET_SSH2_CHANNEL_SUBSYSTEM] = $this->window_size; + + $packet = pack('CNa*N3', + NET_SSH2_MSG_CHANNEL_OPEN, strlen('session'), 'session', NET_SSH2_CHANNEL_SUBSYSTEM, $this->window_size, 0x4000); + + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $this->channel_status[NET_SSH2_CHANNEL_SUBSYSTEM] = NET_SSH2_MSG_CHANNEL_OPEN; + + $response = $this->_get_channel_packet(NET_SSH2_CHANNEL_SUBSYSTEM); + if ($response === false) { + return false; + } + + $packet = pack('CNNa*CNa*', + NET_SSH2_MSG_CHANNEL_REQUEST, $this->server_channels[NET_SSH2_CHANNEL_SUBSYSTEM], strlen('subsystem'), 'subsystem', 1, strlen($subsystem), $subsystem); + if (!$this->_send_binary_packet($packet)) { + return false; + } + + $this->channel_status[NET_SSH2_CHANNEL_SUBSYSTEM] = NET_SSH2_MSG_CHANNEL_REQUEST; + + $response = $this->_get_channel_packet(NET_SSH2_CHANNEL_SUBSYSTEM); + + if ($response === false) { + return false; + } + + $this->channel_status[NET_SSH2_CHANNEL_SUBSYSTEM] = NET_SSH2_MSG_CHANNEL_DATA; + + $this->bitmap |= NET_SSH2_MASK_SHELL; + $this->in_subsystem = true; + + return true; + } + + /** + * Stops a subsystem. + * + * @see Net_SSH2::startSubsystem() + * @return Boolean + * @access public + */ + function stopSubsystem() + { + $this->in_subsystem = false; + $this->_close_channel(NET_SSH2_CHANNEL_SUBSYSTEM); + return true; + } + + /** + * Closes a channel + * + * If read() timed out you might want to just close the channel and have it auto-restart on the next read() call + * + * @access public + */ + function reset() + { + $this->_close_channel($this->_get_interactive_channel()); + } + + /** + * Is timeout? + * + * Did exec() or read() return because they timed out or because they encountered the end? + * + * @access public + */ + function isTimeout() + { + return $this->is_timeout; + } + + /** + * Disconnect + * + * @access public + */ + function disconnect() + { + $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); + if (isset($this->realtime_log_file) && is_resource($this->realtime_log_file)) { + fclose($this->realtime_log_file); + } + } + + /** + * Destructor. + * + * Will be called, automatically, if you're supporting just PHP5. If you're supporting PHP4, you'll need to call + * disconnect(). + * + * @access public + */ + function __destruct() + { + $this->disconnect(); + } + + /** + * Is the connection still active? + * + * @access public + */ + function isConnected() + { + return $this->bitmap & NET_SSH2_MASK_LOGIN; + } + + /** + * Gets Binary Packets + * + * See '6. Binary Packet Protocol' of rfc4253 for more info. + * + * @see Net_SSH2::_send_binary_packet() + * @return String + * @access private + */ + function _get_binary_packet() + { + if (!is_resource($this->fsock) || feof($this->fsock)) { + user_error('Connection closed prematurely'); + $this->bitmap = 0; + return false; + } + + $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838 + $raw = fread($this->fsock, $this->decrypt_block_size); + + if (!strlen($raw)) { + return ''; + } + + if ($this->decrypt !== false) { + $raw = $this->decrypt->decrypt($raw); + } + if ($raw === false) { + user_error('Unable to decrypt content'); + return false; + } + + extract(unpack('Npacket_length/Cpadding_length', $this->_string_shift($raw, 5))); + + $remaining_length = $packet_length + 4 - $this->decrypt_block_size; + + // quoting , + // "implementations SHOULD check that the packet length is reasonable" + // PuTTY uses 0x9000 as the actual max packet size and so to shall we + if ($remaining_length < -$this->decrypt_block_size || $remaining_length > 0x9000 || $remaining_length % $this->decrypt_block_size != 0) { + user_error('Invalid size'); + return false; + } + + $buffer = ''; + while ($remaining_length > 0) { + $temp = fread($this->fsock, $remaining_length); + $buffer.= $temp; + $remaining_length-= strlen($temp); + } + $stop = strtok(microtime(), ' ') + strtok(''); + if (strlen($buffer)) { + $raw.= $this->decrypt !== false ? $this->decrypt->decrypt($buffer) : $buffer; + } + + $payload = $this->_string_shift($raw, $packet_length - $padding_length - 1); + $padding = $this->_string_shift($raw, $padding_length); // should leave $raw empty + + if ($this->hmac_check !== false) { + $hmac = fread($this->fsock, $this->hmac_size); + if ($hmac != $this->hmac_check->hash(pack('NNCa*', $this->get_seq_no, $packet_length, $padding_length, $payload . $padding))) { + user_error('Invalid HMAC'); + return false; + } + } + + //if ($this->decompress) { + // $payload = gzinflate(substr($payload, 2)); + //} + + $this->get_seq_no++; + + if (defined('NET_SSH2_LOGGING')) { + $current = strtok(microtime(), ' ') + strtok(''); + $message_number = isset($this->message_numbers[ord($payload[0])]) ? $this->message_numbers[ord($payload[0])] : 'UNKNOWN (' . ord($payload[0]) . ')'; + $message_number = '<- ' . $message_number . + ' (since last: ' . round($current - $this->last_packet, 4) . ', network: ' . round($stop - $start, 4) . 's)'; + $this->_append_log($message_number, $payload); + $this->last_packet = $current; + } + + return $this->_filter($payload); + } + + /** + * Filter Binary Packets + * + * Because some binary packets need to be ignored... + * + * @see Net_SSH2::_get_binary_packet() + * @return String + * @access private + */ + function _filter($payload) + { + switch (ord($payload[0])) { + case NET_SSH2_MSG_DISCONNECT: + $this->_string_shift($payload, 1); + extract(unpack('Nreason_code/Nlength', $this->_string_shift($payload, 8))); + $this->errors[] = 'SSH_MSG_DISCONNECT: ' . $this->disconnect_reasons[$reason_code] . "\r\n" . utf8_decode($this->_string_shift($payload, $length)); + $this->bitmap = 0; + return false; + case NET_SSH2_MSG_IGNORE: + $payload = $this->_get_binary_packet(); + break; + case NET_SSH2_MSG_DEBUG: + $this->_string_shift($payload, 2); + extract(unpack('Nlength', $this->_string_shift($payload, 4))); + $this->errors[] = 'SSH_MSG_DEBUG: ' . utf8_decode($this->_string_shift($payload, $length)); + $payload = $this->_get_binary_packet(); + break; + case NET_SSH2_MSG_UNIMPLEMENTED: + return false; + case NET_SSH2_MSG_KEXINIT: + if ($this->session_id !== false) { + if (!$this->_key_exchange($payload)) { + $this->bitmap = 0; + return false; + } + $payload = $this->_get_binary_packet(); + } + } + + // see http://tools.ietf.org/html/rfc4252#section-5.4; only called when the encryption has been activated and when we haven't already logged in + if (($this->bitmap & NET_SSH2_MASK_CONSTRUCTOR) && !($this->bitmap & NET_SSH2_MASK_LOGIN) && ord($payload[0]) == NET_SSH2_MSG_USERAUTH_BANNER) { + $this->_string_shift($payload, 1); + extract(unpack('Nlength', $this->_string_shift($payload, 4))); + $this->banner_message = utf8_decode($this->_string_shift($payload, $length)); + $payload = $this->_get_binary_packet(); + } + + // only called when we've already logged in + if (($this->bitmap & NET_SSH2_MASK_CONSTRUCTOR) && ($this->bitmap & NET_SSH2_MASK_LOGIN)) { + switch (ord($payload[0])) { + case NET_SSH2_MSG_GLOBAL_REQUEST: // see http://tools.ietf.org/html/rfc4254#section-4 + $this->_string_shift($payload, 1); + extract(unpack('Nlength', $this->_string_shift($payload))); + $this->errors[] = 'SSH_MSG_GLOBAL_REQUEST: ' . utf8_decode($this->_string_shift($payload, $length)); + + if (!$this->_send_binary_packet(pack('C', NET_SSH2_MSG_REQUEST_FAILURE))) { + return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); + } + + $payload = $this->_get_binary_packet(); + break; + case NET_SSH2_MSG_CHANNEL_OPEN: // see http://tools.ietf.org/html/rfc4254#section-5.1 + $this->_string_shift($payload, 1); + extract(unpack('Nlength', $this->_string_shift($payload, 4))); + $this->errors[] = 'SSH_MSG_CHANNEL_OPEN: ' . utf8_decode($this->_string_shift($payload, $length)); + + $this->_string_shift($payload, 4); // skip over client channel + extract(unpack('Nserver_channel', $this->_string_shift($payload, 4))); + + $packet = pack('CN3a*Na*', + NET_SSH2_MSG_REQUEST_FAILURE, $server_channel, NET_SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED, 0, '', 0, ''); + + if (!$this->_send_binary_packet($packet)) { + return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); + } + + $payload = $this->_get_binary_packet(); + break; + case NET_SSH2_MSG_CHANNEL_WINDOW_ADJUST: + $this->_string_shift($payload, 1); + extract(unpack('Nchannel', $this->_string_shift($payload, 4))); + extract(unpack('Nwindow_size', $this->_string_shift($payload, 4))); + $this->window_size_client_to_server[$channel]+= $window_size; + + $payload = ($this->bitmap & NET_SSH2_MASK_WINDOW_ADJUST) ? true : $this->_get_binary_packet(); + } + } + + return $payload; + } + + /** + * Enable Quiet Mode + * + * Suppress stderr from output + * + * @access public + */ + function enableQuietMode() + { + $this->quiet_mode = true; + } + + /** + * Disable Quiet Mode + * + * Show stderr in output + * + * @access public + */ + function disableQuietMode() + { + $this->quiet_mode = false; + } + + /** + * Enable request-pty when using exec() + * + * @access public + */ + function enablePTY() + { + $this->request_pty = true; + } + + /** + * Disable request-pty when using exec() + * + * @access public + */ + function disablePTY() + { + $this->request_pty = false; + } + + /** + * Gets channel data + * + * Returns the data as a string if it's available and false if not. + * + * @param $client_channel + * @return Mixed + * @access private + */ + function _get_channel_packet($client_channel, $skip_extended = false) + { + if (!empty($this->channel_buffers[$client_channel])) { + return array_shift($this->channel_buffers[$client_channel]); + } + + while (true) { + if ($this->curTimeout) { + if ($this->curTimeout < 0) { + $this->is_timeout = true; + return true; + } + + $read = array($this->fsock); + $write = $except = null; + + $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838 + $sec = floor($this->curTimeout); + $usec = 1000000 * ($this->curTimeout - $sec); + // on windows this returns a "Warning: Invalid CRT parameters detected" error + if (!@stream_select($read, $write, $except, $sec, $usec) && !count($read)) { + $this->is_timeout = true; + return true; + } + $elapsed = strtok(microtime(), ' ') + strtok('') - $start; + $this->curTimeout-= $elapsed; + } + + $response = $this->_get_binary_packet(); + if ($response === false) { + user_error('Connection closed by server'); + return false; + } + if ($client_channel == -1 && $response === true) { + return true; + } + if (!strlen($response)) { + return ''; + } + + extract(unpack('Ctype/Nchannel', $this->_string_shift($response, 5))); + + $this->window_size_server_to_client[$channel]-= strlen($response) + 4; + + // resize the window, if appropriate + if ($this->window_size_server_to_client[$channel] < 0) { + $packet = pack('CNN', NET_SSH2_MSG_CHANNEL_WINDOW_ADJUST, $this->server_channels[$channel], $this->window_size); + if (!$this->_send_binary_packet($packet)) { + return false; + } + $this->window_size_server_to_client[$channel]+= $this->window_size; + } + + switch ($this->channel_status[$channel]) { + case NET_SSH2_MSG_CHANNEL_OPEN: + switch ($type) { + case NET_SSH2_MSG_CHANNEL_OPEN_CONFIRMATION: + extract(unpack('Nserver_channel', $this->_string_shift($response, 4))); + $this->server_channels[$channel] = $server_channel; + extract(unpack('Nwindow_size', $this->_string_shift($response, 4))); + $this->window_size_client_to_server[$channel] = $window_size; + $temp = unpack('Npacket_size_client_to_server', $this->_string_shift($response, 4)); + $this->packet_size_client_to_server[$channel] = $temp['packet_size_client_to_server']; + return $client_channel == $channel ? true : $this->_get_channel_packet($client_channel, $skip_extended); + //case NET_SSH2_MSG_CHANNEL_OPEN_FAILURE: + default: + user_error('Unable to open channel'); + return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); + } + break; + case NET_SSH2_MSG_CHANNEL_REQUEST: + switch ($type) { + case NET_SSH2_MSG_CHANNEL_SUCCESS: + return true; + case NET_SSH2_MSG_CHANNEL_FAILURE: + return false; + default: + user_error('Unable to fulfill channel request'); + return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); + } + case NET_SSH2_MSG_CHANNEL_CLOSE: + return $type == NET_SSH2_MSG_CHANNEL_CLOSE ? true : $this->_get_channel_packet($client_channel, $skip_extended); + } + + // ie. $this->channel_status[$channel] == NET_SSH2_MSG_CHANNEL_DATA + + switch ($type) { + case NET_SSH2_MSG_CHANNEL_DATA: + /* + if ($channel == NET_SSH2_CHANNEL_EXEC) { + // SCP requires null packets, such as this, be sent. further, in the case of the ssh.com SSH server + // this actually seems to make things twice as fast. more to the point, the message right after + // SSH_MSG_CHANNEL_DATA (usually SSH_MSG_IGNORE) won't block for as long as it would have otherwise. + // in OpenSSH it slows things down but only by a couple thousandths of a second. + $this->_send_channel_packet($channel, chr(0)); + } + */ + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $data = $this->_string_shift($response, $length); + if ($client_channel == $channel) { + return $data; + } + if (!isset($this->channel_buffers[$channel])) { + $this->channel_buffers[$channel] = array(); + } + $this->channel_buffers[$channel][] = $data; + break; + case NET_SSH2_MSG_CHANNEL_EXTENDED_DATA: + /* + if ($client_channel == NET_SSH2_CHANNEL_EXEC) { + $this->_send_channel_packet($client_channel, chr(0)); + } + */ + // currently, there's only one possible value for $data_type_code: NET_SSH2_EXTENDED_DATA_STDERR + extract(unpack('Ndata_type_code/Nlength', $this->_string_shift($response, 8))); + $data = $this->_string_shift($response, $length); + $this->stdErrorLog .= $data; + if ($skip_extended || $this->quiet_mode) { + break; + } + if ($client_channel == $channel) { + return $data; + } + if (!isset($this->channel_buffers[$channel])) { + $this->channel_buffers[$channel] = array(); + } + $this->channel_buffers[$channel][] = $data; + break; + case NET_SSH2_MSG_CHANNEL_REQUEST: + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $value = $this->_string_shift($response, $length); + switch ($value) { + case 'exit-signal': + $this->_string_shift($response, 1); + extract(unpack('Nlength', $this->_string_shift($response, 4))); + $this->errors[] = 'SSH_MSG_CHANNEL_REQUEST (exit-signal): ' . $this->_string_shift($response, $length); + $this->_string_shift($response, 1); + extract(unpack('Nlength', $this->_string_shift($response, 4))); + if ($length) { + $this->errors[count($this->errors)].= "\r\n" . $this->_string_shift($response, $length); + } + + $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_EOF, $this->server_channels[$client_channel])); + $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_CLOSE, $this->server_channels[$channel])); + + $this->channel_status[$channel] = NET_SSH2_MSG_CHANNEL_EOF; + + break; + case 'exit-status': + extract(unpack('Cfalse/Nexit_status', $this->_string_shift($response, 5))); + $this->exit_status = $exit_status; + + // "The client MAY ignore these messages." + // -- http://tools.ietf.org/html/rfc4254#section-6.10 + + break; + default: + // "Some systems may not implement signals, in which case they SHOULD ignore this message." + // -- http://tools.ietf.org/html/rfc4254#section-6.9 + break; + } + break; + case NET_SSH2_MSG_CHANNEL_CLOSE: + $this->curTimeout = 0; + + if ($this->bitmap & NET_SSH2_MASK_SHELL) { + $this->bitmap&= ~NET_SSH2_MASK_SHELL; + } + if ($this->channel_status[$channel] != NET_SSH2_MSG_CHANNEL_EOF) { + $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_CLOSE, $this->server_channels[$channel])); + } + + $this->channel_status[$channel] = NET_SSH2_MSG_CHANNEL_CLOSE; + return true; + case NET_SSH2_MSG_CHANNEL_EOF: + break; + default: + user_error('Error reading channel data'); + return $this->_disconnect(NET_SSH2_DISCONNECT_BY_APPLICATION); + } + } + } + + /** + * Sends Binary Packets + * + * See '6. Binary Packet Protocol' of rfc4253 for more info. + * + * @param String $data + * @param optional String $logged + * @see Net_SSH2::_get_binary_packet() + * @return Boolean + * @access private + */ + function _send_binary_packet($data, $logged = null) + { + if (!is_resource($this->fsock) || feof($this->fsock)) { + user_error('Connection closed prematurely'); + $this->bitmap = 0; + return false; + } + + //if ($this->compress) { + // // the -4 removes the checksum: + // // http://php.net/function.gzcompress#57710 + // $data = substr(gzcompress($data), 0, -4); + //} + + // 4 (packet length) + 1 (padding length) + 4 (minimal padding amount) == 9 + $packet_length = strlen($data) + 9; + // round up to the nearest $this->encrypt_block_size + $packet_length+= (($this->encrypt_block_size - 1) * $packet_length) % $this->encrypt_block_size; + // subtracting strlen($data) is obvious - subtracting 5 is necessary because of packet_length and padding_length + $padding_length = $packet_length - strlen($data) - 5; + $padding = crypt_random_string($padding_length); + + // we subtract 4 from packet_length because the packet_length field isn't supposed to include itself + $packet = pack('NCa*', $packet_length - 4, $padding_length, $data . $padding); + + $hmac = $this->hmac_create !== false ? $this->hmac_create->hash(pack('Na*', $this->send_seq_no, $packet)) : ''; + $this->send_seq_no++; + + if ($this->encrypt !== false) { + $packet = $this->encrypt->encrypt($packet); + } + + $packet.= $hmac; + + $start = strtok(microtime(), ' ') + strtok(''); // http://php.net/microtime#61838 + $result = strlen($packet) == fputs($this->fsock, $packet); + $stop = strtok(microtime(), ' ') + strtok(''); + + if (defined('NET_SSH2_LOGGING')) { + $current = strtok(microtime(), ' ') + strtok(''); + $message_number = isset($this->message_numbers[ord($data[0])]) ? $this->message_numbers[ord($data[0])] : 'UNKNOWN (' . ord($data[0]) . ')'; + $message_number = '-> ' . $message_number . + ' (since last: ' . round($current - $this->last_packet, 4) . ', network: ' . round($stop - $start, 4) . 's)'; + $this->_append_log($message_number, isset($logged) ? $logged : $data); + $this->last_packet = $current; + } + + return $result; + } + + /** + * Logs data packets + * + * Makes sure that only the last 1MB worth of packets will be logged + * + * @param String $data + * @access private + */ + function _append_log($message_number, $message) + { + // remove the byte identifying the message type from all but the first two messages (ie. the identification strings) + if (strlen($message_number) > 2) { + $this->_string_shift($message); + } + + switch (NET_SSH2_LOGGING) { + // useful for benchmarks + case NET_SSH2_LOG_SIMPLE: + $this->message_number_log[] = $message_number; + break; + // the most useful log for SSH2 + case NET_SSH2_LOG_COMPLEX: + $this->message_number_log[] = $message_number; + $this->log_size+= strlen($message); + $this->message_log[] = $message; + while ($this->log_size > NET_SSH2_LOG_MAX_SIZE) { + $this->log_size-= strlen(array_shift($this->message_log)); + array_shift($this->message_number_log); + } + break; + // dump the output out realtime; packets may be interspersed with non packets, + // passwords won't be filtered out and select other packets may not be correctly + // identified + case NET_SSH2_LOG_REALTIME: + switch (PHP_SAPI) { + case 'cli': + $start = $stop = "\r\n"; + break; + default: + $start = '
    ';
    +                        $stop = '
    '; + } + echo $start . $this->_format_log(array($message), array($message_number)) . $stop; + @flush(); + @ob_flush(); + break; + // basically the same thing as NET_SSH2_LOG_REALTIME with the caveat that NET_SSH2_LOG_REALTIME_FILE + // needs to be defined and that the resultant log file will be capped out at NET_SSH2_LOG_MAX_SIZE. + // the earliest part of the log file is denoted by the first <<< START >>> and is not going to necessarily + // at the beginning of the file + case NET_SSH2_LOG_REALTIME_FILE: + if (!isset($this->realtime_log_file)) { + // PHP doesn't seem to like using constants in fopen() + $filename = NET_SSH2_LOG_REALTIME_FILENAME; + $fp = fopen($filename, 'w'); + $this->realtime_log_file = $fp; + } + if (!is_resource($this->realtime_log_file)) { + break; + } + $entry = $this->_format_log(array($message), array($message_number)); + if ($this->realtime_log_wrap) { + $temp = "<<< START >>>\r\n"; + $entry.= $temp; + fseek($this->realtime_log_file, ftell($this->realtime_log_file) - strlen($temp)); + } + $this->realtime_log_size+= strlen($entry); + if ($this->realtime_log_size > NET_SSH2_LOG_MAX_SIZE) { + fseek($this->realtime_log_file, 0); + $this->realtime_log_size = strlen($entry); + $this->realtime_log_wrap = true; + } + fputs($this->realtime_log_file, $entry); + } + } + + /** + * Sends channel data + * + * Spans multiple SSH_MSG_CHANNEL_DATAs if appropriate + * + * @param Integer $client_channel + * @param String $data + * @return Boolean + * @access private + */ + function _send_channel_packet($client_channel, $data) + { + /* The maximum amount of data allowed is determined by the maximum + packet size for the channel, and the current window size, whichever + is smaller. + + -- http://tools.ietf.org/html/rfc4254#section-5.2 */ + $max_size = min( + $this->packet_size_client_to_server[$client_channel], + $this->window_size_client_to_server[$client_channel] + ) - 4; + while (strlen($data) > $max_size) { + if (!$this->window_size_client_to_server[$client_channel]) { + $this->bitmap^= NET_SSH2_MASK_WINDOW_ADJUST; + // using an invalid channel will let the buffers be built up for the valid channels + $output = $this->_get_channel_packet(-1); + $this->bitmap^= NET_SSH2_MASK_WINDOW_ADJUST; + $max_size = min( + $this->packet_size_client_to_server[$client_channel], + $this->window_size_client_to_server[$client_channel] + ) - 4; + } + + $packet = pack('CN2a*', + NET_SSH2_MSG_CHANNEL_DATA, + $this->server_channels[$client_channel], + $max_size, + $this->_string_shift($data, $max_size) + ); + + $this->window_size_client_to_server[$client_channel]-= $max_size + 4; + + if (!$this->_send_binary_packet($packet)) { + return false; + } + } + + if (strlen($data) >= $this->window_size_client_to_server[$client_channel] - 4) { + $this->bitmap^= NET_SSH2_MASK_WINDOW_ADJUST; + $this->_get_channel_packet(-1); + $this->bitmap^= NET_SSH2_MASK_WINDOW_ADJUST; + } + + $this->window_size_client_to_server[$client_channel]-= strlen($data) + 4; + + return $this->_send_binary_packet(pack('CN2a*', + NET_SSH2_MSG_CHANNEL_DATA, + $this->server_channels[$client_channel], + strlen($data), + $data)); + } + + /** + * Closes and flushes a channel + * + * Net_SSH2 doesn't properly close most channels. For exec() channels are normally closed by the server + * and for SFTP channels are presumably closed when the client disconnects. This functions is intended + * for SCP more than anything. + * + * @param Integer $client_channel + * @param Boolean $want_reply + * @return Boolean + * @access private + */ + function _close_channel($client_channel, $want_reply = false) + { + // see http://tools.ietf.org/html/rfc4254#section-5.3 + + $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_EOF, $this->server_channels[$client_channel])); + + if (!$want_reply) { + $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_CLOSE, $this->server_channels[$client_channel])); + } + + $this->channel_status[$client_channel] = NET_SSH2_MSG_CHANNEL_CLOSE; + + $this->curTimeout = 0; + + while (!is_bool($this->_get_channel_packet($client_channel))); + + if ($want_reply) { + $this->_send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_CLOSE, $this->server_channels[$client_channel])); + } + + if ($this->bitmap & NET_SSH2_MASK_SHELL) { + $this->bitmap&= ~NET_SSH2_MASK_SHELL; + } + } + + /** + * Disconnect + * + * @param Integer $reason + * @return Boolean + * @access private + */ + function _disconnect($reason) + { + if ($this->bitmap) { + $data = pack('CNNa*Na*', NET_SSH2_MSG_DISCONNECT, $reason, 0, '', 0, ''); + $this->_send_binary_packet($data); + $this->bitmap = 0; + fclose($this->fsock); + return false; + } + } + + /** + * String Shift + * + * Inspired by array_shift + * + * @param String $string + * @param optional Integer $index + * @return String + * @access private + */ + function _string_shift(&$string, $index = 1) + { + $substr = substr($string, 0, $index); + $string = substr($string, $index); + return $substr; + } + + /** + * Define Array + * + * Takes any number of arrays whose indices are integers and whose values are strings and defines a bunch of + * named constants from it, using the value as the name of the constant and the index as the value of the constant. + * If any of the constants that would be defined already exists, none of the constants will be defined. + * + * @param Array $array + * @access private + */ + function _define_array() + { + $args = func_get_args(); + foreach ($args as $arg) { + foreach ($arg as $key=>$value) { + if (!defined($value)) { + define($value, $key); + } else { + break 2; + } + } + } + } + + /** + * Returns a log of the packets that have been sent and received. + * + * Returns a string if NET_SSH2_LOGGING == NET_SSH2_LOG_COMPLEX, an array if NET_SSH2_LOGGING == NET_SSH2_LOG_SIMPLE and false if !defined('NET_SSH2_LOGGING') + * + * @access public + * @return String or Array + */ + function getLog() + { + if (!defined('NET_SSH2_LOGGING')) { + return false; + } + + switch (NET_SSH2_LOGGING) { + case NET_SSH2_LOG_SIMPLE: + return $this->message_number_log; + break; + case NET_SSH2_LOG_COMPLEX: + return $this->_format_log($this->message_log, $this->message_number_log); + break; + default: + return false; + } + } + + /** + * Formats a log for printing + * + * @param Array $message_log + * @param Array $message_number_log + * @access private + * @return String + */ + function _format_log($message_log, $message_number_log) + { + $output = ''; + for ($i = 0; $i < count($message_log); $i++) { + $output.= $message_number_log[$i] . "\r\n"; + $current_log = $message_log[$i]; + $j = 0; + do { + if (strlen($current_log)) { + $output.= str_pad(dechex($j), 7, '0', STR_PAD_LEFT) . '0 '; + } + $fragment = $this->_string_shift($current_log, $this->log_short_width); + $hex = substr(preg_replace_callback('#.#s', array($this, '_format_log_helper'), $fragment), strlen($this->log_boundary)); + // replace non ASCII printable characters with dots + // http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters + // also replace < with a . since < messes up the output on web browsers + $raw = preg_replace('#[^\x20-\x7E]|<#', '.', $fragment); + $output.= str_pad($hex, $this->log_long_width - $this->log_short_width, ' ') . $raw . "\r\n"; + $j++; + } while (strlen($current_log)); + $output.= "\r\n"; + } + + return $output; + } + + /** + * Helper function for _format_log + * + * For use with preg_replace_callback() + * + * @param Array $matches + * @access private + * @return String + */ + function _format_log_helper($matches) + { + return $this->log_boundary . str_pad(dechex(ord($matches[0])), 2, '0', STR_PAD_LEFT); + } + + /** + * Returns all errors + * + * @return String + * @access public + */ + function getErrors() + { + return $this->errors; + } + + /** + * Returns the last error + * + * @return String + * @access public + */ + function getLastError() + { + return $this->errors[count($this->errors) - 1]; + } + + /** + * Return the server identification. + * + * @return String + * @access public + */ + function getServerIdentification() + { + return $this->server_identifier; + } + + /** + * Return a list of the key exchange algorithms the server supports. + * + * @return Array + * @access public + */ + function getKexAlgorithms() + { + return $this->kex_algorithms; + } + + /** + * Return a list of the host key (public key) algorithms the server supports. + * + * @return Array + * @access public + */ + function getServerHostKeyAlgorithms() + { + return $this->server_host_key_algorithms; + } + + /** + * Return a list of the (symmetric key) encryption algorithms the server supports, when receiving stuff from the client. + * + * @return Array + * @access public + */ + function getEncryptionAlgorithmsClient2Server() + { + return $this->encryption_algorithms_client_to_server; + } + + /** + * Return a list of the (symmetric key) encryption algorithms the server supports, when sending stuff to the client. + * + * @return Array + * @access public + */ + function getEncryptionAlgorithmsServer2Client() + { + return $this->encryption_algorithms_server_to_client; + } + + /** + * Return a list of the MAC algorithms the server supports, when receiving stuff from the client. + * + * @return Array + * @access public + */ + function getMACAlgorithmsClient2Server() + { + return $this->mac_algorithms_client_to_server; + } + + /** + * Return a list of the MAC algorithms the server supports, when sending stuff to the client. + * + * @return Array + * @access public + */ + function getMACAlgorithmsServer2Client() + { + return $this->mac_algorithms_server_to_client; + } + + /** + * Return a list of the compression algorithms the server supports, when receiving stuff from the client. + * + * @return Array + * @access public + */ + function getCompressionAlgorithmsClient2Server() + { + return $this->compression_algorithms_client_to_server; + } + + /** + * Return a list of the compression algorithms the server supports, when sending stuff to the client. + * + * @return Array + * @access public + */ + function getCompressionAlgorithmsServer2Client() + { + return $this->compression_algorithms_server_to_client; + } + + /** + * Return a list of the languages the server supports, when sending stuff to the client. + * + * @return Array + * @access public + */ + function getLanguagesServer2Client() + { + return $this->languages_server_to_client; + } + + /** + * Return a list of the languages the server supports, when receiving stuff from the client. + * + * @return Array + * @access public + */ + function getLanguagesClient2Server() + { + return $this->languages_client_to_server; + } + + /** + * Returns the banner message. + * + * Quoting from the RFC, "in some jurisdictions, sending a warning message before + * authentication may be relevant for getting legal protection." + * + * @return String + * @access public + */ + function getBannerMessage() + { + return $this->banner_message; + } + + /** + * Returns the server public host key. + * + * Caching this the first time you connect to a server and checking the result on subsequent connections + * is recommended. Returns false if the server signature is not signed correctly with the public host key. + * + * @return Mixed + * @access public + */ + function getServerPublicHostKey() + { + $signature = $this->signature; + $server_public_host_key = $this->server_public_host_key; + + extract(unpack('Nlength', $this->_string_shift($server_public_host_key, 4))); + $this->_string_shift($server_public_host_key, $length); + + if ($this->signature_validated) { + return $this->bitmap ? + $this->signature_format . ' ' . base64_encode($this->server_public_host_key) : + false; + } + + $this->signature_validated = true; + + switch ($this->signature_format) { + case 'ssh-dss': + $zero = new Math_BigInteger(); + + $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4)); + $p = new Math_BigInteger($this->_string_shift($server_public_host_key, $temp['length']), -256); + + $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4)); + $q = new Math_BigInteger($this->_string_shift($server_public_host_key, $temp['length']), -256); + + $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4)); + $g = new Math_BigInteger($this->_string_shift($server_public_host_key, $temp['length']), -256); + + $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4)); + $y = new Math_BigInteger($this->_string_shift($server_public_host_key, $temp['length']), -256); + + /* The value for 'dss_signature_blob' is encoded as a string containing + r, followed by s (which are 160-bit integers, without lengths or + padding, unsigned, and in network byte order). */ + $temp = unpack('Nlength', $this->_string_shift($signature, 4)); + if ($temp['length'] != 40) { + user_error('Invalid signature'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + + $r = new Math_BigInteger($this->_string_shift($signature, 20), 256); + $s = new Math_BigInteger($this->_string_shift($signature, 20), 256); + + switch (true) { + case $r->equals($zero): + case $r->compare($q) >= 0: + case $s->equals($zero): + case $s->compare($q) >= 0: + user_error('Invalid signature'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + + $w = $s->modInverse($q); + + $u1 = $w->multiply(new Math_BigInteger(sha1($this->exchange_hash), 16)); + list(, $u1) = $u1->divide($q); + + $u2 = $w->multiply($r); + list(, $u2) = $u2->divide($q); + + $g = $g->modPow($u1, $p); + $y = $y->modPow($u2, $p); + + $v = $g->multiply($y); + list(, $v) = $v->divide($p); + list(, $v) = $v->divide($q); + + if (!$v->equals($r)) { + user_error('Bad server signature'); + return $this->_disconnect(NET_SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE); + } + + break; + case 'ssh-rsa': + $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4)); + $e = new Math_BigInteger($this->_string_shift($server_public_host_key, $temp['length']), -256); + + $temp = unpack('Nlength', $this->_string_shift($server_public_host_key, 4)); + $n = new Math_BigInteger($this->_string_shift($server_public_host_key, $temp['length']), -256); + $nLength = $temp['length']; + + /* + $temp = unpack('Nlength', $this->_string_shift($signature, 4)); + $signature = $this->_string_shift($signature, $temp['length']); + + if (!class_exists('Crypt_RSA')) { + include_once 'Crypt/RSA.php'; + } + + $rsa = new Crypt_RSA(); + $rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1); + $rsa->loadKey(array('e' => $e, 'n' => $n), CRYPT_RSA_PUBLIC_FORMAT_RAW); + if (!$rsa->verify($this->exchange_hash, $signature)) { + user_error('Bad server signature'); + return $this->_disconnect(NET_SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE); + } + */ + + $temp = unpack('Nlength', $this->_string_shift($signature, 4)); + $s = new Math_BigInteger($this->_string_shift($signature, $temp['length']), 256); + + // validate an RSA signature per "8.2 RSASSA-PKCS1-v1_5", "5.2.2 RSAVP1", and "9.1 EMSA-PSS" in the + // following URL: + // ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1.pdf + + // also, see SSHRSA.c (rsa2_verifysig) in PuTTy's source. + + if ($s->compare(new Math_BigInteger()) < 0 || $s->compare($n->subtract(new Math_BigInteger(1))) > 0) { + user_error('Invalid signature'); + return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED); + } + + $s = $s->modPow($e, $n); + $s = $s->toBytes(); + + $h = pack('N4H*', 0x00302130, 0x0906052B, 0x0E03021A, 0x05000414, sha1($this->exchange_hash)); + $h = chr(0x01) . str_repeat(chr(0xFF), $nLength - 3 - strlen($h)) . $h; + + if ($s != $h) { + user_error('Bad server signature'); + return $this->_disconnect(NET_SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE); + } + break; + default: + user_error('Unsupported signature format'); + return $this->_disconnect(NET_SSH2_DISCONNECT_HOST_KEY_NOT_VERIFIABLE); + } + + return $this->signature_format . ' ' . base64_encode($this->server_public_host_key); + } + + /** + * Returns the exit status of an SSH command or false. + * + * @return Integer or false + * @access public + */ + function getExitStatus() + { + if (is_null($this->exit_status)) { + return false; + } + return $this->exit_status; + } + + /** + * Is a path includable? + * + * @return Boolean + * @access private + */ + function _is_includable($suffix) + { + // stream_resolve_include_path was introduced in PHP 5.3.2 + if (function_exists('stream_resolve_include_path')) { + return stream_resolve_include_path($suffix) !== false; + } + + $paths = PATH_SEPARATOR == ':' ? + preg_split('#(? + * login('username', $agent)) { + * exit('Login Failed'); + * } + * + * echo $ssh->exec('pwd'); + * echo $ssh->exec('ls -la'); + * ?> + * + * + * LICENSE: Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @category System + * @package System_SSH_Agent + * @author Jim Wigginton + * @copyright MMXIV Jim Wigginton + * @license http://www.opensource.org/licenses/mit-license.html MIT License + * @link http://phpseclib.sourceforge.net + * @internal See http://api.libssh.org/rfc/PROTOCOL.agent + */ + +/**#@+ + * Message numbers + * + * @access private + */ +// to request SSH1 keys you have to use SSH_AGENTC_REQUEST_RSA_IDENTITIES (1) +define('SYSTEM_SSH_AGENTC_REQUEST_IDENTITIES', 11); +// this is the SSH2 response; the SSH1 response is SSH_AGENT_RSA_IDENTITIES_ANSWER (2). +define('SYSTEM_SSH_AGENT_IDENTITIES_ANSWER', 12); +define('SYSTEM_SSH_AGENT_FAILURE', 5); +// the SSH1 request is SSH_AGENTC_RSA_CHALLENGE (3) +define('SYSTEM_SSH_AGENTC_SIGN_REQUEST', 13); +// the SSH1 response is SSH_AGENT_RSA_RESPONSE (4) +define('SYSTEM_SSH_AGENT_SIGN_RESPONSE', 14); +/**#@-*/ + +/** + * Pure-PHP ssh-agent client identity object + * + * Instantiation should only be performed by System_SSH_Agent class. + * This could be thought of as implementing an interface that Crypt_RSA + * implements. ie. maybe a Net_SSH_Auth_PublicKey interface or something. + * The methods in this interface would be getPublicKey, setSignatureMode + * and sign since those are the methods phpseclib looks for to perform + * public key authentication. + * + * @package System_SSH_Agent + * @author Jim Wigginton + * @version 0.1.0 + * @access internal + */ +class System_SSH_Agent_Identity +{ + /** + * Key Object + * + * @var Crypt_RSA + * @access private + * @see System_SSH_Agent_Identity::getPublicKey() + */ + var $key; + + /** + * Key Blob + * + * @var String + * @access private + * @see System_SSH_Agent_Identity::sign() + */ + var $key_blob; + + /** + * Socket Resource + * + * @var Resource + * @access private + * @see System_SSH_Agent_Identity::sign() + */ + var $fsock; + + /** + * Default Constructor. + * + * @param Resource $fsock + * @return System_SSH_Agent_Identity + * @access private + */ + function System_SSH_Agent_Identity($fsock) + { + $this->fsock = $fsock; + } + + /** + * Set Public Key + * + * Called by System_SSH_Agent::requestIdentities() + * + * @param Crypt_RSA $key + * @access private + */ + function setPublicKey($key) + { + $this->key = $key; + $this->key->setPublicKey(); + } + + /** + * Set Public Key + * + * Called by System_SSH_Agent::requestIdentities(). The key blob could be extracted from $this->key + * but this saves a small amount of computation. + * + * @param String $key_blob + * @access private + */ + function setPublicKeyBlob($key_blob) + { + $this->key_blob = $key_blob; + } + + /** + * Get Public Key + * + * Wrapper for $this->key->getPublicKey() + * + * @param Integer $format optional + * @return Mixed + * @access public + */ + function getPublicKey($format = null) + { + return !isset($format) ? $this->key->getPublicKey() : $this->key->getPublicKey($format); + } + + /** + * Set Signature Mode + * + * Doesn't do anything as ssh-agent doesn't let you pick and choose the signature mode. ie. + * ssh-agent's only supported mode is CRYPT_RSA_SIGNATURE_PKCS1 + * + * @param Integer $mode + * @access public + */ + function setSignatureMode($mode) + { + } + + /** + * Create a signature + * + * See "2.6.2 Protocol 2 private key signature request" + * + * @param String $message + * @return String + * @access public + */ + function sign($message) + { + // the last parameter (currently 0) is for flags and ssh-agent only defines one flag (for ssh-dss): SSH_AGENT_OLD_SIGNATURE + $packet = pack('CNa*Na*N', SYSTEM_SSH_AGENTC_SIGN_REQUEST, strlen($this->key_blob), $this->key_blob, strlen($message), $message, 0); + $packet = pack('Na*', strlen($packet), $packet); + if (strlen($packet) != fputs($this->fsock, $packet)) { + user_error('Connection closed during signing'); + } + + $length = current(unpack('N', fread($this->fsock, 4))); + $type = ord(fread($this->fsock, 1)); + if ($type != SYSTEM_SSH_AGENT_SIGN_RESPONSE) { + user_error('Unable to retreive signature'); + } + + $signature_blob = fread($this->fsock, $length - 1); + // the only other signature format defined - ssh-dss - is the same length as ssh-rsa + // the + 12 is for the other various SSH added length fields + return substr($signature_blob, strlen('ssh-rsa') + 12); + } +} + +/** + * Pure-PHP ssh-agent client identity factory + * + * requestIdentities() method pumps out System_SSH_Agent_Identity objects + * + * @package System_SSH_Agent + * @author Jim Wigginton + * @version 0.1.0 + * @access internal + */ +class System_SSH_Agent +{ + /** + * Socket Resource + * + * @var Resource + * @access private + */ + var $fsock; + + /** + * Default Constructor + * + * @return System_SSH_Agent + * @access public + */ + function System_SSH_Agent() + { + switch (true) { + case isset($_SERVER['SSH_AUTH_SOCK']): + $address = $_SERVER['SSH_AUTH_SOCK']; + break; + case isset($_ENV['SSH_AUTH_SOCK']): + $address = $_ENV['SSH_AUTH_SOCK']; + break; + default: + user_error('SSH_AUTH_SOCK not found'); + return false; + } + + $this->fsock = fsockopen('unix://' . $address, 0, $errno, $errstr); + if (!$this->fsock) { + user_error("Unable to connect to ssh-agent (Error $errno: $errstr)"); + } + } + + /** + * Request Identities + * + * See "2.5.2 Requesting a list of protocol 2 keys" + * Returns an array containing zero or more System_SSH_Agent_Identity objects + * + * @return Array + * @access public + */ + function requestIdentities() + { + if (!$this->fsock) { + return array(); + } + + $packet = pack('NC', 1, SYSTEM_SSH_AGENTC_REQUEST_IDENTITIES); + if (strlen($packet) != fputs($this->fsock, $packet)) { + user_error('Connection closed while requesting identities'); + } + + $length = current(unpack('N', fread($this->fsock, 4))); + $type = ord(fread($this->fsock, 1)); + if ($type != SYSTEM_SSH_AGENT_IDENTITIES_ANSWER) { + user_error('Unable to request identities'); + } + + $identities = array(); + $keyCount = current(unpack('N', fread($this->fsock, 4))); + for ($i = 0; $i < $keyCount; $i++) { + $length = current(unpack('N', fread($this->fsock, 4))); + $key_blob = fread($this->fsock, $length); + $length = current(unpack('N', fread($this->fsock, 4))); + $key_comment = fread($this->fsock, $length); + $length = current(unpack('N', substr($key_blob, 0, 4))); + $key_type = substr($key_blob, 4, $length); + switch ($key_type) { + case 'ssh-rsa': + if (!class_exists('Crypt_RSA')) { + include_once 'Crypt/RSA.php'; + } + $key = new Crypt_RSA(); + $key->loadKey('ssh-rsa ' . base64_encode($key_blob) . ' ' . $key_comment); + break; + case 'ssh-dss': + // not currently supported + break; + } + // resources are passed by reference by default + if (isset($key)) { + $identity = new System_SSH_Agent_Identity($this->fsock); + $identity->setPublicKey($key); + $identity->setPublicKeyBlob($key_blob); + $identities[] = $identity; + unset($key); + } + } + + return $identities; + } +} diff --git a/lam/lib/3rdParty/phpseclib/openssl.cnf b/lam/lib/3rdParty/phpseclib/openssl.cnf new file mode 100644 index 00000000..58a1261b --- /dev/null +++ b/lam/lib/3rdParty/phpseclib/openssl.cnf @@ -0,0 +1,6 @@ +# minimalist openssl.cnf file for use with phpseclib + +HOME = . +RANDFILE = $ENV::HOME/.rnd + +[ v3_ca ] diff --git a/lam/lib/account.inc b/lam/lib/account.inc new file mode 100644 index 00000000..3d1df2a3 --- /dev/null +++ b/lam/lib/account.inc @@ -0,0 +1,1233 @@ +lmhash($password); +} + +/** +* Generates the NT hash of a password. +* +* @param string password original password +* @return string password hash +*/ +function ntPassword($password) { + // Needed to calculate Samba passwords + include_once("createntlm.inc"); + // get hash + $hash = new smbHash(); + return $hash->nthash($password); +} + + + + +/** +* Returns the hash value of a plain text password. +* @see getSupportedHashTypes() +* +* @param string $password the password string +* @param boolean $enabled marks the hash as enabled/disabled (e.g. by prefixing "!") +* @param string $hashType password hash type (CRYPT, CRYPT-SHA512, SHA, SSHA, MD5, SMD5, PLAIN) +* @return string the password hash +*/ +function pwd_hash($password, $enabled = true, $hashType = 'SSHA') { + // check for empty password + if (! $password || ($password == "")) { + return ""; + } + $hash = ""; + switch ($hashType) { + case 'CRYPT': + $hash = "{CRYPT}" . crypt($password); + break; + case 'CRYPT-SHA512': + $hash = "{CRYPT}" . crypt($password, '$6$' . generateSalt(16)); + break; + case 'MD5': + $hash = "{MD5}" . base64_encode(convertHex2bin(md5($password))); + break; + case 'SMD5': + $salt = generateSalt(4); + $hash = "{SMD5}" . base64_encode(convertHex2bin(md5($password . $salt)) . $salt); + break; + case 'SHA': + $hash = "{SHA}" . base64_encode(convertHex2bin(sha1($password))); + break; + case 'PLAIN': + $hash = $password; + break; + case 'SSHA': + default: // use SSHA if the setting is invalid + $salt = generateSalt(4); + $hash = "{SSHA}" . base64_encode(convertHex2bin(sha1($password . $salt)) . $salt); + break; + } + // enable/disable password + if (! $enabled) return pwd_disable($hash); + else return $hash; +} + +/** + * Returns the list of supported hash types (e.g. SSHA). + * + * @return array hash types + */ +function getSupportedHashTypes() { + if (version_compare(phpversion(), '5.3.2') < 0) { + // CRYPT-SHA512 requires PHP 5.3.2 or higher + return array('CRYPT', 'SHA', 'SSHA', 'MD5', 'SMD5', 'PLAIN'); + } + return array('CRYPT', 'CRYPT-SHA512', 'SHA', 'SSHA', 'MD5', 'SMD5', 'PLAIN'); +} + +/** +* Calculates a password salt of the given legth. +* +* @param int $len salt length +* @return String the salt string +* +*/ +function generateSalt($len) { + $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890./'; + $salt = ''; + for ($i = 0; $i < $len; $i++) { + $pos= getRandomNumber() % strlen($chars); + $salt .= $chars{$pos}; + } + return $salt; +} + +/** +* Marks an password hash as enabled and returns the new hash string +* +* @param string $hash hash value to enable +* @return string enabled password hash +*/ +function pwd_enable($hash) { + // check if password is disabled (old wrong LAM method) + if ((substr($hash, 0, 2) == "!{") || ((substr($hash, 0, 2) == "*{"))) { + return substr($hash, 1, strlen($hash)); + } + // check for "!" or "*" at beginning of password hash + else { + if (substr($hash, 0, 1) == "{") { + $pos = strpos($hash, "}"); + if ((substr($hash, $pos + 1, 1) == "!") || (substr($hash, $pos + 1, 1) == "*")) { + // enable hash + return substr($hash, 0, $pos + 1) . substr($hash, $pos + 2, strlen($hash)); + } + else return $hash; // not disabled + } + else return $hash; // password is plain text + } +} + +/** +* Marks an password hash as disabled and returns the new hash string +* +* @param string $hash hash value to disable +* @return string disabled hash value +*/ +function pwd_disable($hash) { + // check if password is disabled (old wrong LAM method) + if ((substr($hash, 0, 2) == "!{") || ((substr($hash, 0, 2) == "*{"))) { + return $hash; + } + // check for "!" or "*" at beginning of password hash + else { + if (substr($hash, 0, 1) == "{") { + $pos = strpos($hash, "}"); + if ((substr($hash, $pos + 1, 1) == "!") || (substr($hash, $pos + 1, 1) == "*")) { + // hash already disabled + return $hash; + } + else return substr($hash, 0, $pos + 1) . "!" . substr($hash, $pos + 1, strlen($hash)); // not disabled + } + else return $hash; // password is plain text + } +} + +/** + * Checks if a Unix password can be locked. + * This checks if the password is not plain text but e.g. contains {SSHA}. + * + * @param String $password password value + * @return boolean can be locked + */ +function pwd_is_lockable($password) { + if (($password == null) || (strlen($password) < 5)) { + return false; + } + return ((substr($password, 0, 1) == "{") || (substr($password, 1, 1) == "{")) && (strpos($password, "}") > 3); +} + +/** +* Checks if a password hash is enabled/disabled +* +* @param string $hash password hash to check +* @return boolean true if the password is marked as enabled +*/ +function pwd_is_enabled($hash) { + // disabled passwords have a "!" or "*" at the beginning (old wrong LAM method) + if ((substr($hash, 0, 2) == "!{") || ((substr($hash, 0, 2) == "*{"))) return false; + if (substr($hash, 0, 1) == "{") { + $pos = strrpos($hash, "}"); + // check if hash starts with "!" or "*" + if ((substr($hash, $pos + 1, 1) == "!") || (substr($hash, $pos + 1, 1) == "*")) return false; + else return true; + } + else return true; +} + +/** + * Generates a random password with 12 digits. + * + * @return String password + */ +function generateRandomPassword() { + $list = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-_'; + $password = ''; + $length = $_SESSION['cfgMain']->passwordMinLength; + if ($length < 12) { + $length = 12; + } + $isOk = false; + for ($x = 0; $x < 10000; $x++) { + $password = ''; + for ($i = 0; $i < $length; $i++) { + $rand = getRandomNumber() % 65; + $password .= $list[$rand]; + } + if (checkPasswordStrength($password, null, null) === true) { + break; + } + } + return $password; +} + +/** + * Checks if the given password mathes the crypto hash. + * + * @param String type hash type (must be one of getSupportedHashTypes()) + * @param unknown_type $hash password hash value + * @param unknown_type $password plain text password to check + * @see getSupportedHashTypes() + */ +function checkPasswordHash($type, $hash, $password) { + switch ($type) { + case 'SSHA': + $bin = base64_decode($hash); + $salt = substr($bin, 20); + $pwdHash = base64_encode(convertHex2bin(sha1($password . $salt)) . $salt); + return (strcmp($hash, $pwdHash) == 0); + break; + case 'SHA': + return (strcmp($hash, base64_encode(convertHex2bin(sha1($password)))) == 0); + break; + case 'SMD5': + $bin = base64_decode($hash); + $salt = substr($bin, 16); + $pwdHash = base64_encode(convertHex2bin(md5($password . $salt)) . $salt); + return (strcmp($hash, $pwdHash) == 0); + break; + case 'MD5': + return (strcmp($hash, base64_encode(convertHex2bin(md5($password)))) == 0); + break; + case 'CRYPT': + $parts = explode('$', $hash); + if (sizeof($parts) == 4) { + $version = $parts[1]; + $salt = $parts[2]; + $pwdHash = crypt($password, '$' . $version . '$' . $salt); + return (strcmp($hash, $pwdHash) == 0); + } + elseif (sizeof($parts) == 5) { + $version = $parts[1]; + $rounds = $parts[2]; + $salt = $parts[3]; + $pwdHash = crypt($password, '$' . $version . '$' . $rounds . '$' . $salt); + return (strcmp($hash, $pwdHash) == 0); + } + return false; + break; + default: + return false; + } + return false; +} + +/** +* Returns an array with all Samba 3 domain entries under the given suffix +* +* @param handle LDAP handle (if null then $_SESSION['ldap']->server() is used) +* @param String $suffix LDAP suffix to search (if null then $_SESSION['config']->get_Suffix('smbDomain') is used) +* @return array list of samba3domain objects +*/ +function search_domains($server = null, $suffix = null) { + if ($suffix == null) { + $suffix = $_SESSION['config']->get_Suffix('smbDomain'); + } + $ret = array(); + $attr = array("DN", "sambaDomainName", "sambaSID", "sambaNextRid", "sambaNextGroupRid", + "sambaNextUserRid", "sambaAlgorithmicRidBase", 'sambaMinPwdAge', 'sambaMaxPwdAge'); + if ($server == null) { + $server = $_SESSION['ldap']->server(); + } + $units = searchLDAPByAttribute(null, null, 'sambaDomain', $attr, array('smbDomain')); + // extract attributes + for ($i = 0; $i < sizeof($units); $i++) { + $ret[$i] = new samba3domain(); + $ret[$i]->dn = $units[$i]['dn']; + $ret[$i]->name = $units[$i]['sambadomainname'][0]; + $ret[$i]->SID = $units[$i]['sambasid'][0]; + if (isset($units[$i]['sambanextrid'][0])) $ret[$i]->nextRID = $units[$i]['sambanextrid'][0]; + if (isset($units[$i]['sambanextgrouprid'][0])) $ret[$i]->nextGroupRID = $units[$i]['sambanextgrouprid'][0]; + if (isset($units[$i]['sambanextuserrid'][0])) $ret[$i]->nextUserRID = $units[$i]['sambanextuserrid'][0]; + if (isset($units[$i]['sambaalgorithmicridbase'][0])) $ret[$i]->RIDbase = $units[$i]['sambaalgorithmicridbase'][0]; + if (isset($units[$i]['sambaminpwdage'][0])) $ret[$i]->minPwdAge = $units[$i]['sambaminpwdage'][0]; + if (isset($units[$i]['sambamaxpwdage'][0])) $ret[$i]->maxPwdAge = $units[$i]['sambamaxpwdage'][0]; + } + return $ret; +} + +/** +* Represents a Samba 3 domain entry +* +* @package modules +*/ +class samba3domain { + + /** DN */ + public $dn; + + /** Domain name */ + public $name; + + /** Domain SID */ + public $SID; + + /** Next RID */ + public $nextRID; + + /** Next user RID */ + public $nextUserRID; + + /** Next group RID */ + public $nextGroupRID; + + /** RID base to calculate RIDs, default 1000 */ + public $RIDbase = 1000; + + /** seconds after the password can be changed */ + public $minPwdAge; + + /** seconds after the password must be changed */ + public $maxPwdAge; +} + +/** +* Checks if a given value matches the selected regular expression. +* +* @param string $argument value to check +* @param string $regexp pattern name +* @return boolean true if matches, otherwise false +*/ +function get_preg($argument, $regexp) { + /* Bug in php preg_match doesn't work correct with utf8 */ + $language = $_SESSION['language']; + $language2 = explode ('.', $language); + setlocale(LC_ALL, $language2[0]); + // workaround for buggy PHP with Turkish + if (($language == 'tr_TR.utf8') && (version_compare(phpversion(), '5.5') < 0)) { + setlocale(LC_CTYPE, 'en_GB'); + } + // First we check "positive" cases + $pregexpr = ''; + switch ($regexp) { + case 'password': + $pregexpr = '/^([[:alnum:]\\^\\ \\|\\#\\*\\,\\.\\;\\:\\_\\+\\!\\%\\&\\/\\?\\{\\(\\)\\}\\[\\]\\$§°@=-])*$/u'; + break; + case 'groupname': // all letters, numbers, space and ._- are allowed characters + case 'username': + case 'hostname': + $pregexpr = '/^([[:alnum:]%#@\\.\\ \\_\\$-])+$/u'; + break; + case 'krbUserName': + $pregexpr = '/^([[:alnum:]#@\\/\\.\\ \\_\\$-])+$/u'; + break; + case 'hostObject': + $pregexpr = '/^[!]?([[:alnum:]@\\.\\ \\_\\$\\*-])+$/u'; + break; + case 'usernameList': // comma separated list of user names + case 'groupnameList': // comma separated list of group names + $pregexpr = '/^([[:alnum:]%#@\\.\\ \\_-])+(,([[:alnum:]%#@\\.\\ \\_-])+)*$/u'; + break; + case 'realname': // Allow all but \, <, >, =, $, ? + case 'cn': + $pregexpr = '/^[^\\\<>=\\$\\?]+(\\$)?$/'; + break; + case "telephone": // Allow letters, numbers, space, brackets, /-+. + $pregexpr = '/^(\\+)*([0-9a-zA-Z\\.\\ \\(\\)\\/-])*$/'; + break; + case "email": + $pregexpr = '/^([0-9a-zA-Z\'!~#+*%\\$\\/\\._-])+[@]([0-9a-zA-Z-])+([.]([0-9a-zA-Z-])+)*$/'; + break; + case "emailWithName": + $pregexpr = '/^([[:alnum:] \'!~#+*%\\$\\(\\)_-])+ <([0-9a-zA-Z\'!~#+*%\\$\\/\\._-])+[@]([0-9a-zA-Z-])+([.]([0-9a-zA-Z-])+)*>$/u'; + break; + case "mailLocalAddress": + $pregexpr = '/^([0-9a-zA-Z+\\/\\._-])+([@]([0-9a-zA-Z-])+([.]([0-9a-zA-Z-])+)*)?$/'; + break; + case 'kolabEmailPrefix': + $pregexpr = '/^([-])?([0-9a-zA-Z+\\/\\._-])*([@]([0-9a-zA-Z\\.-])*)?$/'; + break; + case "postalAddress": // Allow all but \, <, >, =, ? + $pregexpr = '/^[^\\\<>=\\?]*$/'; + break; + case "postalCode": // Allow all but \, <, >, =, ? + case "street": + case "title": + case "employeeType": + case "businessCategory": + $pregexpr = '/^[^\\\<>=\\$\\?]*$/'; + break; + case "homeDirectory": // Homapath, /path/...... + case "filePath": + $pregexpr = '/^([\/]([[:alnum:]@\\$\\.\\ \\_-])+)+(\/)?$/u'; + break; + case "digit": // Normal number + $pregexpr = '/^[[:digit:]]*$/'; + break; + case "float": // float value + $pregexpr = '/^[[:digit:]]+(\\.[[:digit:]]+)?$/'; + break; + case "UNC": // UNC Path, e.g. \\server\share\folder\... + $pregexpr = '/^((([\\\][\\\])|(%))([a-zA-Z0-9%\\.-])+)([\\\]([[:alnum:]%\\.\\$\\ \\_-])+)+$/u'; + break; + case "logonscript": // path to login-script. normal unix file + $pregexpr = '/^(([\/\\\])*([[:alnum:]%\\.\\ \\$\\_-])+([\/\\\]([[:alnum:]%\\.\\ \\$\\_-])+)*((\\.bat)|(\\.cmd)|(\\.exe)|(\\.vbs)))*$/u'; + break; + case "workstations": // comma separated list with windows-hosts + $pregexpr = '/^(([a-zA-Z0-9\\.\\_-])+(,[a-zA-Z0-9\\.\\_-])*)*$/'; + break; + case "domainname": // Windows Domainname + $pregexpr = '/^([A-Za-z0-9\\.\\_-])+$/'; + break; + case "unixhost": // Unix hosts + $pregexpr = '/^([a-z0-9,\\.\\*_-])*$/'; + break; + case 'digit2': // Same as digit but also -1 + $pregexpr = '/^(([-][1])|([[:digit:]]*))$/'; + break; + case 'gecos': + $pregexpr = '/^[[:alnum:] \\._-]+([,][[:alnum:] \\._-]+)*$/u'; + break; + case 'macAddress': + $pregexpr = '/^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$/'; + break; + case 'date': // 31-12-2012 + $pregexpr = '/^((0?[1-9])|([1-2][0-9])|30|31)\\-((0?[1-9])|(1[0-2]))\\-[1-3][0-9][0-9][0-9]$/'; + break; + case 'date2': + $pregexpr = '/^((0[1-9])|([1-2][0-9])|30|31)\\.((0[1-9])|(1[0-2]))\\.[1-3][0-9][0-9][0-9]$/'; + break; + case 'sambaLogonHours': + $pregexpr = '/^[0-9a-fA-F]{42}$/'; + break; + case 'DNSname': + $pregexpr = '/^[0-9a-zA-Z_-]+(\\.[0-9a-zA-Z_-]+)*$/'; + break; + case 'nis_alias': + $pregexpr = '/^([[:alnum:]@\\.\\ \\_-])+$/u'; + break; + case 'nis_recipient': + $pregexpr = '/^([[:alnum:]+@\\.\\ \\_-])+$/u'; + break; + case 'country': // Allow all letters and space + $pregexpr = '/^[[:alpha:]]([[:alpha:] ])+$/u'; + break; + case 'dn': // LDAP DN + $pregexpr = '/^([^=,]+=[^=,]+)(,([^=,]+=[^=,]+))*$/'; + break; + case 'domainSID': // Samba domain SID + $pregexpr = "/^S\\-[0-9]\\-[0-9]\\-[0-9]{2,2}\\-[0-9]+\\-[0-9]+\\-[0-9]+$/"; + break; + case 'ip': // IP address + $pregexpr = '/^[0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}$/'; + break; + case 'ip6': // IPv6 address (only basic check) + $pregexpr = '/^[0-9a-f:]+$/i'; + break; + case 'ascii': // ASCII + $pregexpr = '/^[' . chr(1) . '-' . chr(128) . ']*$/'; + break; + case 'objectClass': + $pregexpr = '/^[[:alnum:]_]+$/'; + break; + } + if ($pregexpr!='') + if (preg_match($pregexpr, $argument)) { + /* Bug in php preg_match doesn't work correct with utf8 */ + setlocale(LC_ALL, $language); + // workaround for buggy PHP with Turkish + if (($language == 'tr_TR.utf8') && (version_compare(phpversion(), '5.5') < 0)) { + setlocale(LC_CTYPE, 'en_GB'); + } + return true; + } + // Now we check "negative" cases, characters which are not allowed + $pregexpr = ''; + switch ($regexp) { + case "!lower": + $pregexpr = '/[[:lower:]]/'; + break; + case "!upper": + $pregexpr = '/[[:upper:]]/'; + break; + case "!digit": + $pregexpr = '/[[:digit:]]/'; + break; + } + if ($pregexpr!='') + if (!preg_match($pregexpr, $argument)) { + /* Bug in php preg_match doesn't work correct with utf8 */ + setlocale(LC_ALL, $language); + // workaround for buggy PHP with Turkish + if (($language == 'tr_TR.utf8') && (version_compare(phpversion(), '5.5') < 0)) { + setlocale(LC_CTYPE, 'en_GB'); + } + return true; + } + /* Bug in php preg_match doesn't work correct with utf8 */ + setlocale(LC_ALL, $language); + // workaround for buggy PHP with Turkish + if (($language == 'tr_TR.utf8') && (version_compare(phpversion(), '5.5') < 0)) { + setlocale(LC_CTYPE, 'en_GB'); + } + return false; +} + +/** + * Escapes any special characters in an LDAP DN. + * + * @param String $dn DN + * @return String escaped DN + */ +function escapeDN($dn) { + $dn = preg_replace('/[ ]*,[ ]*/', ',', $dn); + return str_replace( + array(')', '(', ' ', '*'), + array('\\29', '\\28', '\\20', '\\2a'), + $dn + ); +} + +/** + * This will search the given LDAP suffix for all entries which have the given attribute. + * + * @param String $name attribute name (may be null) + * @param String $value attribute value + * @param String $objectClass object class (may be null) + * @param array $attributes list of attributes to return + * @param array $scopes account types + * @return array list of found entries + */ +function searchLDAPByAttribute($name, $value, $objectClass, $attributes, $scopes) { + $return = array(); + // build filter + $filter = ''; + $filterParts = array(); + if ($name != null) { + $filterParts[] = '(' . $name . '=' . $value . ')'; + } + if ($objectClass != null) { + $filterParts[] = '(objectClass=' . $objectClass . ')'; + } + if (sizeof($filterParts) == 1) { + $filter = $filterParts[0]; + } + elseif (sizeof($filterParts) > 1) { + $filter = '(& ' . implode(' ', $filterParts) . ')'; + } + $activeTypes = $_SESSION['config']->get_ActiveTypes(); + for ($s = 0; $s < sizeof($scopes); $s++) { + if (!in_array($scopes[$s], $activeTypes)) { + continue; // skip non-active account types + } + // search LDAP + $sr = @ldap_search($_SESSION['ldap']->server(), escapeDN($_SESSION['config']->get_Suffix($scopes[$s])), + $filter, $attributes, 0, $_SESSION['config']->get_searchLimit(), 0, LDAP_DEREF_NEVER); + if (ldap_errno($_SESSION['ldap']->server()) == 4) { + logNewMessage(LOG_WARNING, 'LDAP size limit exeeded. Please increase the limit on your server.'); + } + if ($sr) { + $entries = ldap_get_entries($_SESSION['ldap']->server(), $sr); + if ($entries) { + cleanLDAPResult($entries); + $return = array_merge($return, $entries); + } + @ldap_free_result($sr); + } + } + return $return; +} + +/** + * This will search the given LDAP suffix for all entries which match the given filter. + * + * @param String $filter + * @param array $attributes list of attributes to return + * @param array $scopes account types + * @param boolean $attrsOnly get only attributes but no values (default: false) + * @return array list of found entries + */ +function searchLDAPByFilter($filter, $attributes, $scopes, $attrsOnly = false) { + $return = array(); + $readAttributesOnly = 0; + if ($attrsOnly) { + $readAttributesOnly = 1; + } + for ($s = 0; $s < sizeof($scopes); $s++) { + // search LDAP + $sr = @ldap_search($_SESSION['ldap']->server(), escapeDN($_SESSION['config']->get_Suffix($scopes[$s])), + $filter, $attributes, $readAttributesOnly, $_SESSION['config']->get_searchLimit(), 0, LDAP_DEREF_NEVER); + if (ldap_errno($_SESSION['ldap']->server()) == 4) { + logNewMessage(LOG_WARNING, 'LDAP size limit exeeded. Please increase the limit on your server.'); + } + if ($sr) { + $entries = ldap_get_entries($_SESSION['ldap']->server(), $sr); + if ($entries) { + cleanLDAPResult($entries); + $return = array_merge($return, $entries); + } + @ldap_free_result($sr); + } + } + return $return; +} + +/** + * Runs an LDAP search. + * + * @param String $suffix LDAP suffix + * @param String $filter filter + * @param array $attributes list of attributes to return + * @return array list of found entries + */ +function searchLDAP($suffix, $filter, $attributes) { + $return = array(); + $sr = @ldap_search($_SESSION['ldap']->server(), escapeDN($suffix), $filter, $attributes, + 0, $_SESSION['config']->get_searchLimit(), 0, LDAP_DEREF_NEVER); + if (ldap_errno($_SESSION['ldap']->server()) == 4) { + logNewMessage(LOG_WARNING, 'LDAP size limit exeeded. Please increase the limit on your server.'); + } + if ($sr) { + $entries = ldap_get_entries($_SESSION['ldap']->server(), $sr); + if ($entries) { + cleanLDAPResult($entries); + @ldap_free_result($sr); + return $entries; + } + } + return $return; +} + +/** + * Returns the given DN. + * + * @param String $dn DN + * @param array $attributes list of attributes to fetch + * @param handle $handle LDAP handle (optional for admin interface pages) + * @return array attributes or null if not found + */ +function ldapGetDN($dn, $attributes = array('dn'), $handle = null) { + if ($handle == null) { + $handle = $_SESSION['ldap']->server(); + } + $return = null; + $sr = @ldap_read($handle, escapeDN($dn), 'objectClass=*', $attributes); + if ($sr) { + $entries = ldap_get_entries($_SESSION['ldap']->server(), $sr); + if ($entries) { + cleanLDAPResult($entries); + $return = $entries[0]; + } + @ldap_free_result($sr); + } + return $return; +} + +/** + * Returns the parameters for a StatusMessage of the last LDAP search. + * + * @return array parameters for StatusMessage or null if all was ok + */ +function getLastLDAPError() { + $errorNumber = ldap_errno($_SESSION["ldap"]->server()); + switch ($errorNumber) { + // all ok + case 0: + return null; + break; + // size limit exceeded + case 4: + $error = array("WARN", _("LDAP sizelimit exceeded, not all entries are shown.")); + if ($_SESSION['config']->get_searchLimit() == 0) { + // server limit exceeded + $error[] = _("See the manual for instructions to solve this problem."); + } + return $error; + break; + // other errors + default: + return array("ERROR", _("LDAP search failed! Please check your preferences."), ldap_error($_SESSION["ldap"]->server())); + break; + } +} + +/** + * Cleans the result of an LDAP search. + * This will remove all 'count' entries and also all numeric array keys. + * + * @param array $entries LDAP entries in format $entries[entry number][attribute name][attribute values] + */ +function cleanLDAPResult(&$entries) { + if (isset($entries['count'])) { + unset($entries['count']); + } + // iterate over all results + $count = sizeof($entries); + for ($e = 0; $e < $count; $e++) { + // remove 'count' entries and numerical entries + for ($i = 0; $i < $entries[$e]['count']; $i++) { + if (isset($entries[$e][$i])) { + unset($entries[$e][$i]); + } + } + unset($entries[$e]['count']); + $attrNames = array_keys($entries[$e]); + $attrCount = sizeof($attrNames); + for ($i = 0; $i < $attrCount; $i++) { + if (is_array($entries[$e][$attrNames[$i]])) { + unset($entries[$e][$attrNames[$i]]['count']); + } + } + } +} + +/** + * Transforms a DN into a more user friendly format. + * E.g. "dc=company,dc=de" is transformed to "company > de". + * + * @param String $dn DN + * @return String transformed DN + */ +function getAbstractDN($dn) { + if ($dn == '') { + return ''; + } + $parts = explode(',', $dn); + for ($i = 0; $i < sizeof($parts); $i++) { + $subparts = explode('=', $parts[$i]); + if (sizeof($subparts) == 2) { + $parts[$i] = $subparts[1]; + } + } + return implode(' > ', $parts); +} + +/** +* Helper function to sort DNs. +* +* @param string $a first argument to compare +* @param string $b second argument to compare +* @return integer 0 if equal, 1 if $a is greater, -1 if $b is greater +*/ +function compareDN(&$a, &$b) { + // split DNs + $array_a = explode(",", strtolower($a)); + $array_b = explode(",", strtolower($b)); + $len_a = sizeof($array_a); + $len_b = sizeof($array_b); + // check how many parts to compare + $len = min($len_a, $len_b); + // compare from last part on + for ($i = 0; $i < $len; $i++) { + // get parts to compare + $part_a = $array_a[$len_a - $i - 1]; + $part_a = explode('=', $part_a); + $part_a = $part_a[1]; + $part_b = $array_b[$len_b - $i - 1]; + $part_b = explode('=', $part_b); + $part_b = $part_b[1]; + // compare parts + if ($part_a == $part_b) { // part is identical + if ($i == ($len - 1)) { + if ($len_a > $len_b) return 1; + elseif ($len_a < $len_b) return -1; + else return 0; // DNs are identical + } + } + else { + return strnatcasecmp($part_a, $part_b); + } + } + return -1; +} + +/** + * Formats an LDAP time string (e.g. from createTimestamp). + * + * @param String $time LDAP time value + * @return String formated time + */ +function formatLDAPTimestamp($time) { + return substr($time, 6, 2) . '.' . substr($time, 4, 2) . '.' . substr($time, 0, 4) . + ' ' . substr($time, 8, 2) . ':' . substr($time, 10, 2) . ':' . substr($time, 12, 2) . ' GMT'; +} + +/** + * Simple function to obfuscate strings. + * + * @param String $text text to obfuscate + */ +function obfuscateText($text) { + if (($text == null) || ($text == '')) { + return $text; + } + return str_rot13(base64_encode('LAM_OBFUSCATE:'.$text)); +} + +/** + * Simple function to deobfuscate strings. + * + * @param String $text text to deobfuscate + */ +function deobfuscateText($text) { + if (($text == null) || ($text == '')) { + return $text; + } + return str_replace('LAM_OBFUSCATE:', '', base64_decode(str_rot13($text))); +} + +/** + * Checks if the given text is obfuscated. + * + * @param String $text text to check + * @return boolean obfuscated or not + */ +function isObfuscatedText($text) { + if (($text == null) || ($text == '')) { + return false; + } + $deob = base64_decode(str_rot13($text)); + if (strpos($deob, 'LAM_OBFUSCATE:') === 0) { + return true; + } + else { + return false; + } +} + +/** + * Extracts the RDN attribute name from a given DN. + * + * @param String $dn DN + * @return String RDN attribute name + */ +function extractRDNAttribute($dn) { + if ($dn == null) return null; + $parts = explode("=", substr($dn, 0, strpos($dn, ','))); + return $parts[0]; +} + +/** + * Extracts the RDN attribute value from a given DN. + * + * @param String $dn DN + * @return String RDN attribute value + */ +function extractRDNValue($dn) { + if ($dn == null) return null; + $parts = explode("=", substr($dn, 0, strpos($dn, ','))); + return $parts[1]; +} + +/** + * Extracts the DN suffix from a given DN. + * E.g. ou=people,dc=test,dc=com will result in dc=test,dc=com. + * + * @param String $dn DN + * @return String DN suffix + */ +function extractDNSuffix($dn) { + if ($dn == null) return null; + return substr($dn, strpos($dn, ',')+1); +} + +/** + * Sends the password mail. + * + * @param String $pwd new password + * @param array $user LDAP attributes of user + * @param String $recipient recipient address (optional, $user['mail'][0] used by default) + * @return array list of arrays that can be used to create status messages + */ +function sendPasswordMail($pwd, $user, $recipient = null) { + $user = array_change_key_case($user, CASE_LOWER); + // read mail data + $mailTo = $user['mail'][0]; + if (!empty($recipient)) { + $mailTo = $recipient; + } + if (empty($mailTo)) { + logNewMessage(LOG_ERR, 'Unable to send password mail, no TO address set.'); + return array( + array('ERROR', _('Unable to send mail!')) + ); + } + $mailFrom = $_SESSION['config']->getLamProMailFrom(); + $mailReplyTo = $_SESSION['config']->getLamProMailReplyTo(); + $mailSubject = $_SESSION['config']->getLamProMailSubject(); + $mailText = $_SESSION['config']->getLamProMailText(); + $mailIsHTML = $_SESSION['config']->getLamProMailIsHTML(); + $subject = $mailSubject; + $body = $mailText; + $body = str_replace('@@newPassword@@', $pwd, $body); + $results = array(); + $found = preg_match('/\@\@[^\@]+\@\@/', $body, $results); + while ($found == 1) { + $attr = str_replace('@', '', $results[0]); + $value = ''; + if (isset($user[strtolower($attr)][0])) { + if (is_array($user[strtolower($attr)])) { + $value = $user[strtolower($attr)][0]; + } + else { + $value = $user[strtolower($attr)]; + } + } + $body = str_replace('@@' . $attr . '@@', $value, $body); + $found = preg_match('/\@\@[^\@]+\@\@/', $body, $results); + } + $headerLines = createEMailHeaders($mailFrom, ($mailIsHTML == 'true'), $mailReplyTo); + $success = sendEMail($mailTo, $subject, $body, $headerLines); + if ($success) { + logNewMessage(LOG_DEBUG, 'Sent password mail to ' . $mailTo); + return array( + array('INFO', sprintf(_('Mail successfully sent to %s.'), htmlspecialchars($mailTo))) + ); + } + else { + logNewMessage(LOG_ERR, 'Unable to send password mail to ' . htmlspecialchars($mailTo)); + return array( + array('ERROR', _('Unable to send mail!')) + ); + } +} + +/** + * Generates the email header text for the given parameters. + * + * @param String $from FROM address + * @param boolean $isHTML mail is formatted as HTML or plain text + * @param String $replyTo reply-to address (optional) + */ +function createEMailHeaders($from, $isHTML, $replyTo = null) { + $headerLines = "X-Mailer: LDAP Account Manager\r\n"; + if (!empty($from)) { + if (preg_match('/^(.*)<(.*)>$/', $from, $matchesFrom)) { + $from = base64EncodeForEMail($matchesFrom[1]) . ' <' . $matchesFrom[2] . '>'; + } + $headerLines .= 'From: ' . $from . "\r\n"; + } + if (!empty($replyTo)) { + if (preg_match('/^(.*)<(.*)>$/', $replyTo, $matchesReplyTo)) { + $replyTo = base64EncodeForEMail($matchesReplyTo[1]) . ' <' . $matchesReplyTo[2] . '>'; + } + $headerLines .= 'Reply-To: ' . $replyTo . "\r\n"; + } + $headerLines .= "MIME-Version: 1.0\r\n"; + if ($isHTML) { + $headerLines .= "Content-type: text/html; charset=UTF-8\r\n"; + } + else { + $headerLines .= "Content-type: text/plain; charset=UTF-8\r\n"; + } + return $headerLines; +} + +/** + * Returns a base64 encoded string of the given values in a fomat that is used in emails. + * + * @param String $value value to encode + * @return String base64 encoded value + */ +function base64EncodeForEMail($value) { + return '=?UTF-8?B?' . base64_encode($value) . '?='; +} + +/** + * Sends out an email. + * + * @param String $to TO address + * @param String $subject email subject + * @param String $text mail body (with \r\n EOL) + * @param String $headers header lines (with \r\n EOL) + */ +function sendEMail($to, $subject, $text, $headers) { + if (!empty($_SESSION['cfgMain']->mailEOL) && ($_SESSION['cfgMain']->mailEOL === 'unix')) { + $text = str_replace("\r\n", "\n", $text); + $headers = str_replace("\r\n", "\n", $headers); + } + logNewMessage(LOG_WARNING, $text); + return mail($to, base64EncodeForEMail($subject), $text, $headers); +} + +/** + * Caches module objects. + * This improves performance if the same module does not need to be created multiple times (calling get_metaData() each time). + * + * @author Roland Gruber + */ +class moduleCache { + + /** module cache ("name:scope" => module) */ + private static $cache = array(); + + /** + * Returns a new/cached module with the given name and scope. + * + * @param String $name module name + * @param String $scope module scope (e.g. user) + */ + public static function getModule($name, $scope) { + if (isset(moduleCache::$cache[$name . ':' . $scope])) { + return moduleCache::$cache[$name . ':' . $scope]; + } + else { + moduleCache::$cache[$name . ':' . $scope] = new $name($scope); + return moduleCache::$cache[$name . ':' . $scope]; + } + } + +} + +/** + * Returns a random number. + * + * @return int random number + */ +function getRandomNumber() { + if (function_exists('openssl_random_pseudo_bytes')) { + return abs(hexdec(bin2hex(openssl_random_pseudo_bytes(5)))); + } + return abs(mt_rand()); +} + +/** + * Connects to the LDAP server and extracts the certificates. + * + * @param String $server server name + * @param String $port server port + * @return mixed false on error and certificate if extracted successfully + */ +function getLDAPSSLCertificate($server, $port) { + $stream = @stream_context_create(array("ssl" => array("capture_peer_cert_chain" => true))); + if (!$stream) { + return false; + } + $client = @stream_socket_client('ssl://' . $server . ':' . $port, $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $stream); + if (!$client) { + return false; + } + $context = stream_context_get_params($client); + if (!isset($context['options']['ssl']['peer_certificate_chain'])) { + return false; + } + $finalPEM = ''; + for ($i = 0; $i < sizeof($context['options']['ssl']['peer_certificate_chain']); $i++) { + $cert = $context['options']['ssl']['peer_certificate_chain'][$i]; + $pemData = null; + $pemResult = @openssl_x509_export($cert, $pemData); + if ($pemResult) { + $finalPEM .= $pemData; + } + else { + return false; + } + } + return $finalPEM; +} + +/** + * Returns the extended LDAP error message if any. + * + * @param handle $server LDAP server handle + * @return String error message + */ +function getExtendedLDAPErrorMessage($server) { + $ldapMsg = null; + ldap_get_option($server, LDAP_OPT_ERROR_STRING, $ldapMsg); + if (empty($ldapMsg)) { + return null; + } + return $ldapMsg; +} + +/** + * Returns the default error message to display on the web page. + * HTML special characters are already escaped. + * + * @param handle $server LDAP server handle + * @return String error message + */ +function getDefaultLDAPErrorString($server) { + $extError = htmlspecialchars(getExtendedLDAPErrorMessage($server)); + // Active Directory message translations + if ((strpos($extError, 'DSID-031A120C') !== false) && (strpos($extError, '5003') !== false)) { + $extError = _('Your password does not meet the password strength qualifications. Please retry with another one.') . '

    ' . $extError; + } + $message = _('LDAP error, server says:') . ' ' . ldap_error($server); + if (!empty($extError)) { + $message .= ' - ' . $extError; + } + return $message; +} + +/** + * Returns the URL under which the page was loaded. + * This includes any GET parameters set. + * + * @return String URL + */ +function getCallingURL() { + $url = null; + if (!empty($_SERVER['HTTP_HOST']) && !empty($_SERVER['REQUEST_URI'])) { + $proto = 'http://'; + if (!empty($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] != 'off')) { + $proto = 'https://'; + } + $url = $proto . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; + } + elseif (!empty($_SERVER['HTTP_REFERER'])) { + $url = $_SERVER['HTTP_REFERER']; + } + logNewMessage(LOG_DEBUG, 'Calling URL detected as ' . $url); + return $url; +} + +?> diff --git a/lam/lib/baseModule.inc b/lam/lib/baseModule.inc new file mode 100644 index 00000000..e797acde --- /dev/null +++ b/lam/lib/baseModule.inc @@ -0,0 +1,1766 @@ + +*
    +* Location and naming of modules
    +* All LAM modules are placed in lib/modules/ and are named ".inc". +* E.g. if you create a new module and its class name is "qmail" then the filename would be "qmail.inc". +* The class name of a module must contain only a-z, A-Z, 0-9, -, and _.
    +*
    +* You can avoid to override many functions by using {@link get_metaData()}.
    +*
    +* All module classes should extend the baseModule class. +* +* @package modules +* @author Roland Gruber +*/ +abstract class baseModule { + + /** includes all meta data provided by the sub class */ + protected $meta; + + /** the account type of this module (user, group, host) */ + private $scope; + + /** configuration settings of all modules */ + protected $moduleSettings; + + /** self service profile with settings of all modules */ + protected $selfServiceSettings; + + /** name of parent accountContainer ($_SESSION[$base]) */ + private $base; + + /** contains all ldap attributes which should be written */ + protected $attributes; + + /** contains all ldap attributes which are loaded from ldap */ + protected $orig; + + /** contains all error messages of a module */ + protected $messages; + + /** if true, managed object classes are added when an account is created or loaded (default: true) */ + protected $autoAddObjectClasses = true; + + /** + * Creates a new base module class + * + * @param string $scope the account type (user, group, host) + */ + public function __construct($scope) { + $this->scope = $scope; + // load configuration + if ($this->can_manage() || ($scope == 'none')) { + if (isset($_SESSION['config'])) $this->moduleSettings = $_SESSION['config']->get_moduleSettings(); + if (isset($_SESSION['selfServiceProfile'])) $this->selfServiceSettings = $_SESSION['selfServiceProfile']; + // initialize module + $this->load_Messages(); + $this->meta = $this->get_metaData(); + } + } + + /** + * This function fills the $messages variable with output messages from this module. + * + * Calling this method requires the existence of an enclosing {@link accountContainer}. + */ + protected function load_Messages() { + } + + /** + * Initializes the module after it became part of an {@link accountContainer} + * + * Calling this method requires the existence of an enclosing {@link accountContainer}. + * + * @param string $base the name of the {@link accountContainer} object ($_SESSION[$base]) + */ + public function init($base) { + $this->base = $base; + $this->attributes = array(); + $this->orig = array(); + // add object classes if needed + $this->attributes['objectClass'] = array(); + $this->orig['objectClass'] = array(); + if ($this->autoAddObjectClasses === true) { + $objectClasses = $this->getManagedObjectClasses(); + for ($i = 0; $i < sizeof($objectClasses); $i++) { + if (!in_array($objectClasses[$i], $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = $objectClasses[$i]; + } + } + } + } + + + /** + * This function loads the LDAP attributes when an account should be loaded. + * + * Calling this method requires the existence of an enclosing {@link accountContainer}.
    + *
    + * By default this method loads the object classes and accounts which are specified in {@link getManagedObjectClasses()} + * and {@link getManagedAttributes()}. + * + * @param array $attributes array like the array returned by get_ldap_attributes(dn of account) but without count indices + */ + public function load_attributes($attributes) { + $this->attributes = array(); + $this->attributes = array(); + // load object classes + if (isset($attributes['objectClass'])) { + $this->attributes['objectClass'] = $attributes['objectClass']; + $this->orig['objectClass'] = $attributes['objectClass']; + } + else { + $this->attributes['objectClass'] = array(); + $this->orig['objectClass'] = array(); + } + // add object classes if needed + if ($this->autoAddObjectClasses === true) { + $objectClasses = $this->getManagedObjectClasses(); + for ($i = 0; $i < sizeof($objectClasses); $i++) { + if (!in_array($objectClasses[$i], $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = $objectClasses[$i]; + } + } + } + // load attributes + $attributeNames = $this->getManagedAttributes(); + for ($i = 0; $i < sizeof($attributeNames); $i++) { + if (isset($attributes[$attributeNames[$i]])) { + $this->attributes[$attributeNames[$i]] = $attributes[$attributeNames[$i]]; + $this->orig[$attributeNames[$i]] = $attributes[$attributeNames[$i]]; + } + } + } + + /** + * This function provides meta data which is interpreted by baseModule. + * Only subclasses will return real data.
    + *
    + * The aim of the meta data is to reduce the number + * of functions in the subclasses. All major data is centralized in one place.
    + *
    + * The returned array contains a list of key-value pairs for the different functions.
    + *
      + * + *
    • {@link is_base_module()}
      + *
      + * Key: is_base
      + * Value: boolean
      + *
      + * Example: "is_base" => true + *

      + *
    • + * + *
    • {@link get_ldap_filter()}
      + *
      + * Key: ldap_filter
      + * Value: array of filters
      + *
      + * Example: "ldap_filter" => array('or' => 'objectClass=posixAccount', 'and' => '(!(uid=*$))') + *

      + *
    • + * + *
    • {@link getManagedObjectClasses()}
      + *
      + * Key: objectClasses
      + * Value: array of object classes
      + *
      + * Example: "objectClasses" => array('posixAccount') + *

      + *
    • + * + *
    • {@link getLDAPAliases()}
      + *
      + * Key: LDAPaliases
      + * Value: array of aliases
      + *
      + * Example: "LDAPaliases" => array('commonName' => 'cn') + *

      + *
    • + * + *
    • {@link get_RDNAttributes()}
      + *
      + * Key: RDN
      + * Value: array of RDNs
      + *
      + * Example: "RDN" => array('uid' => 'normal', 'cn' => 'low') + *

      + *
    • + * + *
    • {@link get_dependencies()}
      + *
      + * Key: dependencies
      + * Value: array of dependencies
      + *
      + * Example: "dependencies" => array("depends" => array("posixAccount", array("qmail", "sendmail")), "conflicts" => array("exim")) + *

      + *
    • + * + *
    • {@link get_profileOptions()}
      + *
      + * Key: profile_options
      + * Value: array of profile options
      + *
      + * The syntax for the value array is the same as for the return value of get_profileOptions(). + *

      + *
    • + * + *
    • {@link check_profileOptions()}
      + *
      + * Key: profile_checks
      + * Value: array of checks (array("optionName" => array()))
      + *
      + * The "optionName" keys of the value array are the names of the option identifiers.
      + * Each array element is an array itself containing these values: + *
        + *
      • type: determines how to check input
        + * Possible values: + *
          + *
        • regex: check with regular expression from regex variable, case sensitive
        • + *
        • regex_i: check with regular expression from regex variable, case insensitive
        • + *
        • int_greater: integer value of cmp_name1 must be greater than the integer value from the option cmp_name2
        • + *
        • int_greaterOrEqual: integer value of cmp_name1 must be greater or equal than the integer value from the option cmp_name2
        • + *
        + *
      • + *
      • error_message: message that is displayed if input value was syntactically incorrect
        + * error_message is an array to build StatusMessages (message type, message head, message text, additional variables) + *
      • regex: regular expression string (only if type is regex/regex_i)
      • + *
      • cmp_name1: name of first input variable that is used for comparison (only if type is int_greater/int_greaterOrEqual)
      • + *
      • cmp_name2: name of second input variable that is used for comparison (only if type is int_greater/int_greaterOrEqual)
      • + *
      • required: true or false, if this input field must be filled set to true (optional) + *
      • required_message: message that is displayed if no input value was given (only if required == true)
        + * required_message is an array to build StatusMessages (message type, message head, message text, additional variables) + *
      • + *
      + *

      + *
    • + * + *
    • {@link load_profile()}
      + *
      + * Key: profile_mappings
      + * Value: array('profile_identifier1' => 'LDAP_attribute1', 'profile_identifier2' => 'LDAP_attribute2')
      + *
      + * The mapped values are stored directly in $this->attributes. + *
      + * Example: "profile_mappings" => array('inetOrgPerson_title' => 'title') + *

      + *
    • + * + *
    • {@link get_configOptions()}
      + *
      + * Key: config_options
      + * Value: array('user' => array, 'host' => array, 'all' => array)
      + *
      + * The values from 'all' are always returned, the other values only if they are inside the $scopes array.
      + * The syntax for sub arrays is the same as for the return value of {@link get_configOptions()}. + *

      + *
    • + * + *
    • {@link check_configOptions()}
      + *
      + * Key: config_checks
      + * Value: array('user' => array, 'host' => 'array', 'all' => array)
      + *
      + * The values from 'all' are always used for checking, the other values only if they are inside the $scopes array. + * The syntax for sub arrays is the same as for {@link check_configOptions()}. + *

      + *
    • + * + *
    • {@link get_uploadColumns()}
      + *
      + * Key: upload_columns
      + * Value: array
      + *
      + * The syntax for array is the same as for the return value of {@link get_uploadColumns()}. + *

      + *
    • + * + *
    • {@link get_uploadPreDepends()}
      + *
      + * Key: upload_preDepends
      + * Value: array
      + *
      + * The syntax for array is the same as for the return value of {@link get_uploadPreDepends()}. + *

      + *
    • + * + *
    • {@link getRequiredExtensions()}
      + *
      + * Key: extensions
      + * Value: array of extension names
      + *
      + * Example: "extensions" => array('hash') + *

      + *
    • + * + *
    • {@link get_help()}
      + *
      + * Key: help
      + * Value: hashtable of help entries
      + *
      + * The hashtable is an array which maps help IDs to help entries.
      + *
      + * Example: 'help' => array('myEntry' => array('Headline' => 'This is the head line', 'Text' => 'Help content')) + *

      + *
    • + * + *
    • {@link getSelfServiceSearchAttributes()}
      + *
      + * Key: selfServiceSearchAttributes
      + * Value: array of attribute names
      + *
      + * Example: "selfServiceSearchAttributes" => array('uid') + *

      + *
    • + * + *
    • {@link getSelfServiceFields()}
      + *
      + * Key: selfServiceFieldSettings
      + * Value: array of self service fields
      + *
      + * Example: "selfServiceFieldSettings" => array('pwd' => 'Password') + *

      + *
    • + * + *
    + * Example: return array("is_base" => true); + * + * @return array meta data + */ + public function get_metaData() { + return array(); + } + + /** + * Returns the account type of this module (user, group, host) + * + * @return string account type + */ + public function get_scope() { + return $this->scope; + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}. + * + * @return boolean true if module fits + * + * @see baseModule::get_metaData() + */ + public abstract function can_manage(); + + /** + * Returns true if your module is a base module and otherwise false. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * Every account type needs exactly one base module. A base module manages a structural object class. + * E.g. the inetOrgPerson module is a base module since its object class is structural. + * + * @return boolean true if base module (defaults to false if no meta data is provided) + * + * @see baseModule::get_metaData() + */ + public function is_base_module() { + if (isset($this->meta['is_base']) && ($this->meta['is_base'] == true)) return true; + else return false; + } + + /** + * Returns an LDAP filter for the account lists + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * Returns an array('or' => '...', 'and' => '...') that is used to build the LDAP filter. Usually, this is used to filter object classes. + * All "or" filter parts of the base modules are combined with OR and then combined with the "and" parts.
    + * The resulting LDAP filter will look like this: (&(|(OR1)(OR2)(OR3))(AND1)(AND2)(AND3))
    + *
    + * Example: return array('or' => '(objectClass=posixAccount)', 'and' => '(!(uid=*$))') + * + * @return string LDAP filter + * + * @see baseModule::get_metaData() + */ + public function get_ldap_filter() { + if (isset($this->meta['ldap_filter'])) return $this->meta['ldap_filter']; + else return ""; + } + + /** + * Returns an alias name for the module. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * This function returns a more descriptive string than the class name. Alias names are used for the buttons on the account pages and the module selection in the configuration wizard.
    + * Please take care that your alias name is not too long. It may contain any character but should not include parts that may be interpreted by the browser (e.g. '<' or '>'). + * If you use different aliases dependent on the account type please make sure that there is a general alias for unknown types. + * + * @return string alias name + * + * @see baseModule::get_metaData() + */ + public function get_alias() { + if (isset($this->meta['alias'])) return $this->meta['alias']; + else return get_class($this); + } + + /** + * Returns a hash array containing a list of possible LDAP attributes that can be used to form the RDN (Relative Distinguished Name). + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * The returned elements have this form: => + *
    is the name of the LDAP attribute + *
    defines the priority of the attribute (can be "low", "normal", "high")
    + *
    + * Example: return array('uid' => 'normal', 'cn' => 'low') + * + * @return array list of attributes + * + * @see baseModule::get_metaData() + */ + public function get_RDNAttributes() { + if (isset($this->meta['RDN'])) return $this->meta['RDN']; + else return array(); + } + + /** + * This function returns a list with all depending and conflicting modules. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * The return value is an array with two sub arrays, "depends" and "conflicts". + * All values of the conflict array are string values with module names. All values of the depends + * array are either string values with module names or arrays which include only string values with + * module names.
    + * If an element of the depends array is itself an array, this means that your module + * depends on one of these modules.
    + *
    + * Example: return array("depends" => array("posixAccount", array("qmail", "sendmail")), "conflicts" => array("exim")) + * + * @return array list of dependencies and conflicts + * + * @see baseModule::get_metaData() + */ + public function get_dependencies() { + if (isset($this->meta['dependencies'])) return $this->meta['dependencies']; + else return array('depends' => array(), 'conflicts' => array()); + } + + /** + * This function defines what attributes will be used in the account profiles and their appearance in the profile editor. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * The return value is an object implementing htmlElement.
    + * The field name are used as keywords to load + * and save profiles. We recommend to use the module name as prefix for them + * (e.g. posixAccount_homeDirectory) to avoid naming conflicts. + * + * @return htmlElement meta HTML object + * + * @see baseModule::get_metaData() + * @see htmlElement + */ + public function get_profileOptions() { + if (isset($this->meta['profile_options'])) return $this->meta['profile_options']; + else return array(); + } + + /** + * Checks input values of account profiles. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * $options is an hash array (option name => value) that contains the user input. + * The option values are all arrays containing one or more elements.
    + * If the input data is invalid the return value is an array that contains arrays + * to build StatusMessages (message type, message head, message text). If no errors occured + * the function returns an empty array. + * + * @param array $options a hash array (name => value) containing the user input + * @return array list of error messages (array(type, title, text)) to generate StatusMessages, if any + * + * @see baseModule::get_metaData() + */ + public function check_profileOptions($options) { + $messages = array(); + if (isset($this->meta['profile_checks'])) { + $identifiers = array_keys($this->meta['profile_checks']); + for ($i = 0; $i < sizeof($identifiers); $i++) { + // empty input + if (!isset($options[$identifiers[$i]][0]) || ($options[$identifiers[$i]][0] == '')) { + // check if option is required + if (isset($this->meta['profile_checks'][$identifiers[$i]]['required']) && $this->meta['profile_checks'][$identifiers[$i]]['required']) { + $messages[] = $this->meta['profile_checks'][$identifiers[$i]]['required_message']; + } + continue; + } + switch ($this->meta['profile_checks'][$identifiers[$i]]['type']) { + // check by regular expression (from account.inc) + case "ext_preg": + // ignore empty fileds + if ($options[$identifiers[$i]][0] == '') continue; + if (! get_preg($options[$identifiers[$i]][0], $this->meta['profile_checks'][$identifiers[$i]]['regex'])) { + $messages[] = $this->meta['profile_checks'][$identifiers[$i]]['error_message']; + } + break; + // check by regular expression (case insensitive) + case 'regex_i': + // ignore empty fileds + if ($options[$identifiers[$i]][0] == '') continue; + if (! preg_match('/' . $this->meta['profile_checks'][$identifiers[$i]]['regex'] . '/i', $options[$identifiers[$i]][0])) { + $messages[] = $this->meta['profile_checks'][$identifiers[$i]]['error_message']; + } + break; + // check by regular expression (case sensitive) + case 'regex': + // ignore empty fileds + if ($options[$identifiers[$i]][0] == '') continue; + if (! preg_match('/' . $this->meta['profile_checks'][$identifiers[$i]]['regex'] . '/', $options[$identifiers[$i]][0])) { + $messages[] = $this->meta['profile_checks'][$identifiers[$i]]['error_message']; + } + break; + // check by integer comparison (greater) + case 'int_greater': + // ignore if both fields are empty + if (($options[$this->meta['profile_checks'][$identifiers[$i]]['cmp_name1']][0] == '') && ($options[$this->meta['profile_checks'][$identifiers[$i]]['cmp_name2']][0] == '')) continue; + // print error message if only one field is empty + if (($options[$this->meta['profile_checks'][$identifiers[$i]]['cmp_name1']][0] == '') || ($options[$this->meta['profile_checks'][$identifiers[$i]]['cmp_name2']][0] == '')) { + $messages[] = $this->meta['profile_checks'][$identifiers[$i]]['error_message']; + continue; + } + // compare + if (!(intval($options[$this->meta['profile_checks'][$identifiers[$i]]['cmp_name1']][0]) > intval($options[$this->meta['profile_checks'][$identifiers[$i]]['cmp_name2']][0]))) { + $messages[] = $this->meta['profile_checks'][$identifiers[$i]]['error_message']; + } + break; + // check by integer comparison (greater or equal) + case 'int_greaterOrEqual': + // ignore if both fields are empty + if (($options[$this->meta['profile_checks'][$identifiers[$i]]['cmp_name1']][0] == '') && ($options[$this->meta['profile_checks'][$identifiers[$i]]['cmp_name2']][0] == '')) continue; + // print error message if only one field is empty + if (($options[$this->meta['profile_checks'][$identifiers[$i]]['cmp_name1']][0] == '') || ($options[$this->meta['profile_checks'][$identifiers[$i]]['cmp_name2']][0] == '')) { + $messages[] = $this->meta['profile_checks'][$identifiers[$i]]['error_message']; + continue; + } + // compare + if (!(intval($options[$this->meta['profile_checks'][$identifiers[$i]]['cmp_name1']][0]) >= intval($options[$this->meta['profile_checks'][$identifiers[$i]]['cmp_name2']][0]))) { + $messages[] = $this->meta['profile_checks'][$identifiers[$i]]['error_message']; + } + break; + // print error message for invalid types + default: + StatusMessage("ERROR", "Unsupported type!", $this->meta['profile_checks'][$identifiers[$i]]['type']); + break; + } + } + } + return $messages; + } + + /** + * This function loads the values from an account profile to the module's internal data structures. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}. + * + * @param array $profile hash array with profile values (identifier => value) + * + * @see baseModule::get_metaData() + */ + public function load_profile($profile) { + if (isset($this->meta['profile_mappings'])) { + $identifiers = array_keys($this->meta['profile_mappings']); + for ($i = 0; $i < sizeof($identifiers); $i++) { + if (isset($profile[$identifiers[$i]])) { + $this->attributes[$this->meta['profile_mappings'][$identifiers[$i]]] = $profile[$identifiers[$i]]; + } + } + } + } + + /** + * Returns a list of configuration options. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * The field names are used as keywords to load and save settings. + * We recommend to use the module name as prefix for them (e.g. posixAccount_homeDirectory) to avoid naming conflicts. + * + * @param array $scopes account types (user, group, host) + * @param array $allScopes list of all active account modules and their scopes (module => array(scopes)) + * @return mixed htmlElement or array of htmlElement + * + * @see baseModule::get_metaData() + * @see htmlElement + */ + public function get_configOptions($scopes, $allScopes) { + $return = array(); + for ($i = 0; $i < sizeof($scopes); $i++) { + if (isset($this->meta['config_options'][$scopes[$i]])) { + if (is_array($this->meta['config_options'][$scopes[$i]])) { + $return = array_merge($return, $this->meta['config_options'][$scopes[$i]]); + } + elseif (isset($return[0]) && ($return[0] instanceof htmlTable) && ($this->meta['config_options'][$scopes[$i]] instanceof htmlTable)) { + $return[0]->mergeTableElements($this->meta['config_options'][$scopes[$i]]); + } + else { + $return[] = $this->meta['config_options'][$scopes[$i]]; + } + } + } + if (isset($this->meta['config_options']['all'])) { + if (is_array($this->meta['config_options']['all'])) { + $return = array_merge($return, $this->meta['config_options']['all']); + } + elseif (isset($return[0]) && ($return[0] instanceof htmlTable) && ($this->meta['config_options']['all'] instanceof htmlTable)) { + $return[0]->mergeTableElements($this->meta['config_options']['all']); + } + else { + $return[] = $this->meta['config_options']['all']; + } + } + return $return; + } + + /** + * Checks input values of module settings. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * If the input data is invalid the return value is an array that contains subarrays to build StatusMessages ('message type', 'message head', 'message text'). + *
    If no errors occured the function returns an empty array. + * + * @param array $scopes list of account types which are used + * @param array $options hash array (option name => value) that contains the input. The option values are all arrays containing one or more elements. + * @return array list of error messages + * + * @see baseModule::get_metaData() + */ + public function check_configOptions($scopes, &$options) { + $messages = array(); + $scopes[] = 'all'; // add checks that are independent of scope + for ($s = 0; $s < sizeof($scopes); $s++) { + if (isset($this->meta['config_checks'][$scopes[$s]]) && is_array($this->meta['config_checks'][$scopes[$s]])) { + $identifiers = array_keys($this->meta['config_checks'][$scopes[$s]]); + for ($i = 0; $i < sizeof($identifiers); $i++) { + // check if option is required + if (isset($this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['required']) && ($options[$identifiers[$i]][0] == '')) { + $messages[] = $this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['required_message']; + } + switch ($this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['type']) { + // check by regular expression (from account.inc) + case "ext_preg": + // ignore empty fileds + if ($options[$identifiers[$i]][0] == '') continue; + if (! get_preg($options[$identifiers[$i]][0], $this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['regex'])) { + $messages[] = $this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['error_message']; + } + break; + // check by regular expression (case insensitive) + case "regex_i": + // ignore empty fileds + if ($options[$identifiers[$i]][0] == '') continue; + if (! preg_match('/' . $this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['regex'] . '/i', $options[$identifiers[$i]][0])) { + $messages[] = $this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['error_message']; + } + break; + // check by regular expression (case sensitive) + case "regex": + // ignore empty fileds + if ($options[$identifiers[$i]][0] == '') continue; + if (! preg_match('/' . $this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['regex'] . '/', $options[$identifiers[$i]][0])) { + $messages[] = $this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['error_message']; + } + break; + // check by integer comparison (greater) + case "int_greater": + // ignore if both fields are empty + if (($options[$this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['cmp_name1']][0] == '') && ($options[$this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['cmp_name2']][0] == '')) continue; + // print error message if only one field is empty + if (($options[$this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['cmp_name1']][0] == '') || ($options[$this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['cmp_name2']][0] == '')) { + $messages[] = $this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['error_message']; + continue; + } + // compare + if (!(intval($options[$this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['cmp_name1']][0]) > intval($options[$this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['cmp_name2']][0]))) { + $messages[] = $this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['error_message']; + } + break; + // check by integer comparison (greater or equal) + case "int_greaterOrEqual": + // ignore if both fields are empty + if (($options[$this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['cmp_name1']][0] == '') && ($options[$this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['cmp_name2']][0] == '')) continue; + // print error message if only one field is empty + if (($options[$this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['cmp_name1']][0] == '') || ($options[$this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['cmp_name2']][0] == '')) { + $messages[] = $this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['error_message']; + continue; + } + // compare + if (!(intval($options[$this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['cmp_name1']][0]) >= intval($options[$this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['cmp_name2']][0]))) { + $messages[] = $this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['error_message']; + } + break; + // print error message on undefined type + default: + StatusMessage("ERROR", "Unsupported type!", $this->meta['config_checks'][$scopes[$s]][$identifiers[$i]]['type']); + break; + } + } + } + } + return $messages; + } + + /** + * Returns a hashtable with all entries that may be printed out in the PDF. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * This method must be overwritten in case that there are non static values + * to be returned. The $this->meta['PDF_fields'] array may be used for static content.
    + *
    + * Format of returned hashtable:
    + *
    + * This function uses XML formatted commands to define the PDF output. Each part in the PDF + * document is surrounded by "" and "".
    + * Inside the tags there are different ways to format the output: + *
      + *
    • simple line with attribute name and value: attribute nameattribute value
    • + *
    • table: attribute namevaluevaluevaluevalue
    • + *
    + * Special commands: + *
      + *
    • Alignment in : You can specify the alignment in tags with align=(L|R|C) (e.g. )
    • + *
    • Cell width: allows an attribute "width" to set the cell width (e.g. or ).
    • + *
    • Line breaks: Line breaks can be specified by adding a <
      > tag. The new line will start at the left border of the PDF document.
    • + *
    + *
    + * Examples:
    + *
    + * Simple name+value lines:

    + * In most cases you will just want to display a single line per attribute with its name and value.
    + *
    + * 'myAttribute' => 'AttrName12345'
    + *
    + * This will give the following PDF output:
    + *
    + * Attribute name: 12345
    + *
    + *
    + * Multiline values:

    + * Sometimes you have multivalued attributes where it is not applicable to write all values in one line but + * where you want to list your values one below the other or show a table. This can be done by using the tag.
    + *
    + * This example only uses one column but you can just use more tags per tag to display more columns.
    + *
    + * 'myAttribute' => 'AttrName123456789' + * + * @return array PDF entries + * + * @see baseModule::get_metaData() + */ + public function get_pdfFields() { + return ((isset($this->meta['PDF_fields'])) ? $this->meta['PDF_fields'] : array()); + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + public function get_pdfEntries() { + return array(); + } + + /** + * Adds a simple PDF entry to the given array. + * + * @param array $result result array (entry will be added here) + * @param String $name ID + * @param String $label label name + * @param String $attrName attribute name (default: =$name) + * @param String $delimiter delimiter if multiple attribute values exist (default: ", ") + */ + protected function addSimplePDFField(&$result, $name, $label, $attrName = null, $delimiter = ', ') { + if ($attrName == null) { + $attrName = $name; + } + $value = ''; + if (isset($this->attributes[$attrName]) && (sizeof($this->attributes[$attrName]) > 0)) { + natcasesort($this->attributes[$attrName]); + $value = implode($delimiter, $this->attributes[$attrName]); + // TODO workarounds for PDF parser, remove when migrated to other PDF library + $value = str_replace("\r\n", " ", $value); + $value = str_replace("\n", " ", $value); + $value = str_replace("\r", " ", $value); + // TODO workaround for UFPDF, remove when migrated to other PDF library + $value = trim($value); + } + $result[get_class($this) . '_' . $name] = array('' . $label . '' . $value . ''); + } + + /** + * Returns an array containing all input columns for the file upload. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * This funtion returns an array which contains subarrays which represent an upload column. + * Syntax of column arrays: + *
    + *
    array( + *
    string: name, // fixed non-translated name which is used as column name (should be of format: _) + *
    string: description, // short descriptive name + *
    string: help, // help ID + *
    string: example, // example value + *
    string: values, // possible input values (optional) + *
    string: default, // default value (optional) + *
    boolean: required // true, if user must set a value for this column + *
    boolean: unique // true if all values of this column must be different values (optional, default: "false") + *
    ) + * + * @param array $selectedModules list of selected account modules + * @return array column list + * + * @see baseModule::get_metaData() + */ + public function get_uploadColumns($selectedModules) { + if (isset($this->meta['upload_columns'])) return $this->meta['upload_columns']; + else return array(); + } + + /** + * Returns a list of module names which must be processed in building the account befor this module. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * The named modules may not be active, LAM will check this automatically. + * + * @return array list of module names + * + * @see baseModule::get_metaData() + */ + public function get_uploadPreDepends() { + if (isset($this->meta['upload_preDepends'])) return $this->meta['upload_preDepends']; + else return array(); + } + + /** + * In this function the LDAP accounts are built. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * Returns an array which contains subarrays to generate StatusMessages if any errors occured. + * + * @param array $rawAccounts the user input data, contains one subarray for each account. + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + public function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + // must be implemented in sub modules + return array(); + } + + /** + * Maps simple upload fields directly to LDAP attribute values. + * + * @param array $rawAccounts the user input data, contains one subarray for each account. + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param String $position current position in CSV + * @param String $colName column name + * @param String $attrName LDAP attribute name + * @param String $regexID for get_preg() (e.g. 'ascii') + * @param array $message error message to add if regex does not match + * @param array $errors list of error messages if any + */ + protected function mapSimpleUploadField(&$rawAccounts, &$ids, &$partialAccounts, $position, $colName, $attrName, $regex = null, &$message = array(), &$errors = array()) { + if (!isset($ids[$colName])) { + return; + } + if (!empty($rawAccounts[$position][$ids[$colName]])) { + if (!empty($regex) && !get_preg($rawAccounts[$position][$ids[$colName]], $regex)) { + $errMsg = $message; + array_push($errMsg, array($position)); + $errors[] = $errMsg; + } + $partialAccounts[$position][$attrName] = $rawAccounts[$position][$ids[$colName]]; + } + } + + /** + * This function returns the help entry array for a specific help id. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * The result is an hashtable with the following keys:
    + *
      + *
    • Headline (required)
      + * The headline of this help entry. Can consist of any alpha-numeric characters. No HTML/CSS elements are allowed.
    • + *
    • Text (required)
      + * The text of the help entry which may contain any alpha-numeric characters.
    • + *
    • SeeAlso (optional)
      + * A reference to anonther related web site. It must be an array containing a field called "text" with the link text + * that should be displayed and a field called "link" which is the link target.
    • + *
    + *
    + * Example:
    + *
    + * array('Headline' => 'This is the head line', 'Text' => 'Help content', 'SeeAlso' => array('text' => 'LAM homepage', 'link' => 'http://www.ldap-account-manager.org/')) + * + * @param string $id The id string for the help entry needed. + * @return array The desired help entry. + * + * @see baseModule::get_metaData() + */ + public function get_help($id) { + if(isset($this->meta['help'][$id])) { + return $this->meta['help'][$id]; + } + elseif(isset($this->meta['help'][$this->scope][$id])) { + return $this->meta['help'][$this->scope][$id]; + } + else { + return false; + } + } + + /** + * This function is used to check if this module page can be displayed. + * + * Calling this method requires the existence of an enclosing {@link accountContainer}.
    + *
    + * Your module might depend on input of other modules. This function determines if the user + * can change to your module page or not. The return value is true if your module accepts + * input, otherwise false.
    + * This method's return value defaults to true. + * + * @return boolean true, if page can be displayed + */ + public function module_ready() { + return true; + } + + /** + * This function is used to check if all settings for this module have been made. + * + * Calling this method requires the existence of an enclosing {@link accountContainer}.
    + *
    + * This function tells LAM if it can create/modify the LDAP account. If your module needs any + * additional input then set this to false. The user will be notified that your module needs + * more input.
    + * This method's return value defaults to true. + * + * @return boolean true, if settings are complete + */ + public function module_complete() { + return true; + } + + /** + * Controls if the module button the account page is visible and activated. + * + * Calling this method requires the existence of an enclosing {@link accountContainer}.
    + *
    + * Possible return values: + *
      + *
    • enabled: button is visible and active
    • + *
    • disabled: button is visible and deactivated (greyed)
    • + *
    • hidden: no button will be shown
    • + *
    + * + * @return string status ("enabled", "disabled", "hidden") + */ + public function getButtonStatus() { + return "enabled"; + } + + /** + * Runs any actions that need to be done before an LDAP entry is created. + * + * @param array $attributes LDAP attributes of this entry (attributes are provided as reference, handle modifications of $attributes with care) + * @return array array which contains status messages. Each entry is an array containing the status message parameters. + */ + public function doUploadPreActions($attributes) { + return array(); + } + + /** + * This function is responsible to do additional tasks after the account has been created in LDAP (e.g. modifying group memberships, adding Quota etc..). + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * This function is called as long as the returned status is 'finished'. Please make sure + * that one function call lasts no longer than 3-4 seconds. Otherwise the upload may fail + * because the time limit is exceeded. You should not make more than one LDAP operation in + * each call. + * + * @param array $data array containing one account in each element + * @param array $ids maps the column names to keys for the sub arrays (array( => )) + * @param array $failed list of account numbers which could not be successfully uploaded to LDAP + * @param array $temp variable to store temporary data between two post actions + * @param array $accounts list of LDAP entries + * @return array current status + *
    array ( + *
    'status' => 'finished' | 'inProgress' // defines if all operations are complete + *
    'progress' => 0..100 // the progress of the operations in percent + *
    'errors' => array // list of arrays which are used to generate StatusMessages + *
    ) + */ + public function doUploadPostActions(&$data, $ids, $failed, &$temp, &$accounts) { + return array( + 'status' => 'finished', + 'progress' => 100, + 'errors' => array() + ); + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * Calling this method requires the existence of an enclosing {@link accountContainer}.
    + *
    + * + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It is possible to change several DNs (e.g. create a new user and add him + * to some groups via attribute memberUid)
    + *
    "add" are attributes which have to be added to the LDAP entry + *
    "remove" are attributes which have to be removed from the LDAP entry + *
    "modify" are attributes which have to be modified in the LDAP entry + *
    "notchanged" are attributes which stay unchanged + *
    "info" values with informational value (e.g. to be used later by pre/postModify actions) + *
    + *
    This builds the required comands from $this-attributes and $this->orig. + * + * @return array list of modifications + */ + public function save_attributes() { + return $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig); + } + + /** + * Allows the module to run commands before the LDAP entry is changed or created. + * + * Calling this method requires the existence of an enclosing {@link accountContainer}.
    + *
    + * The modification is aborted if an error message is returned. + * + * @param boolean $newAccount new account + * @param array $attributes LDAP attributes of this entry (added/modified attributes are provided as reference, handle modifications of $attributes with care) + * @return array array which contains status messages. Each entry is an array containing the status message parameters. + */ + public function preModifyActions($newAccount, $attributes) { + return array(); + } + + /** + * Allows the module to run commands after the LDAP entry is changed or created. + * + * Calling this method requires the existence of an enclosing {@link accountContainer}. + * + * @param boolean $newAccount new account + * @param array $attributes LDAP attributes of this entry + * @return array array which contains status messages. Each entry is an array containing the status message parameters. + */ + public function postModifyActions($newAccount, $attributes) { + return array(); + } + + /** + * Allows the module to run commands before the LDAP entry is deleted. + * + * Calling this method requires the existence of an enclosing {@link accountContainer}.
    + * + * @return array Array which contains status messages. Each entry is an array containing the status message parameters. + */ + public function preDeleteActions() { + return array(); + } + + /** + * Allows the module to run commands after the LDAP entry is deleted. + * + * Calling this method requires the existence of an enclosing {@link accountContainer}. + * + * @return array Array which contains status messages. Each entry is an array containing the status message parameters. + */ + public function postDeleteActions() { + return array(); + } + + /** + * This function returns an array with the same syntax as save_attributes(). + * + * Calling this method requires the existence of an enclosing {@link accountContainer}.
    + *
    + * It allows additional LDAP changes when an account is deleted. + * + * @return List of LDAP operations, same as for save_attributes() + */ + public function delete_attributes() { + return 0; + } + + /** + * This function creates meta HTML code which will be displayed when an account should be deleted. + * + * Calling this method requires the existence of an enclosing {@link accountContainer}.
    + *
    + * This can be used to interact with the user, e.g. should the home directory be deleted? The output + * of all modules is displayed on a single page. + * + * @return htmlElement meta HTML object + * @see htmlElement + */ + public function display_html_delete() { + return 0; + } + + /** + * This function processes user input. + * + * Calling this method requires the existence of an enclosing {@link accountContainer}.
    + *
    + * It checks the user input and saves changes in the module's data structures.
    + *
    + * Example: return array(array('ERROR', 'Invalid input!', 'This is not allowed here.')); + * + * @return array Array which contains status messages. Each entry is an array containing the status message parameters. + */ + public abstract function process_attributes(); + + /** + * This function creates meta HTML code to display the module page. + * + * Calling this method requires the existence of an enclosing {@link accountContainer}. + * + * @return htmlElement meta HTML object + * + * @see htmlElement + */ + public abstract function display_html_attributes(); + + /** + * Adds a simple text input field to the given htmlTable. + * The field name will be the same as the attribute name. There must also be a help entry with the attribute name as ID. + * A new line will also be added after this entry so multiple calls will show the fields one below the other. + * + * @param htmlTable $container parent container + * @param String $attrName attribute name + * @param String $label label name + * @param boolean $required this is a required field (default false) + * @param integer $length field length + * @param boolean $isTextArea show as text area (default false) + * @param array $autoCompleteValues values for auto-completion + * @param boolean $readOnly this field is read-only + * @return mixed reference to htmlTableExtendedInputField/htmlTableExtendedInputTextarea + */ + protected function &addSimpleInputTextField(&$container, $attrName, $label, $required = false, $length = null, $isTextArea = false, $autoCompleteValues = null, $readOnly = false) { + $value = ''; + if (isset($this->attributes[$attrName][0])) { + $value = $this->attributes[$attrName][0]; + } + if ($isTextArea) { + $cols = 30; + if ($length != null) { + $cols = $length; + } + $input = new htmlTableExtendedInputTextarea($attrName, $value, $cols, 3, $label, $attrName); + } + else { + $input = new htmlTableExtendedInputField($label, $attrName, $value, $attrName); + if ($length != null) { + $input->setFieldSize($length); + } + if (!empty($autoCompleteValues)) { + $input->enableAutocompletion($autoCompleteValues); + } + } + $input->setRequired($required); + $container->addElement($input, true); + return $input; + } + + /** + * Adds a text input field that may contain multiple values to the given htmlTable. + * The field name will be the same as the attribute name plus a counting number (e.g. street_0). + * The last field will be followed by a button to add a new value. This is named add_{attribute name} (e.g. add_street). + * There must be a help entry with the attribute name as ID. + * A new line will also be added after this entry so multiple calls will show the fields one below the other. + * + * @param htmlTable $container parent container + * @param String $attrName attribute name + * @param String $label label name + * @param boolean $required this is a required field (default false) + * @param integer $length field length + * @param boolean $isTextArea show as text area (default false) + * @param array $autoCompleteValues values for auto-completion + * @param integer $fieldSize field size + * @param array $htmlIDs reference to array where to add the generated HTML IDs of the input fields + */ + protected function addMultiValueInputTextField(&$container, $attrName, $label, $required = false, $length = null, $isTextArea = false, + $autoCompleteValues = null, $fieldSize = null, &$htmlIDs = null) { + $values = array(); + if (isset($this->attributes[$attrName][0])) { + $values = $this->attributes[$attrName]; + } + if (sizeof($values) == 0) { + $values[] = ''; + } + natcasesort($values); + $values = array_values($values); + if ($label !== null) { + $labelTextOut = new htmlOutputText($label); + $labelTextOut->alignment = htmlElement::ALIGN_TOP; + $container->addElement($labelTextOut); + } + $subContainer = new htmlTable(); + $subContainer->alignment = htmlElement::ALIGN_TOP; + for ($i = 0; $i < sizeof($values); $i++) { + if (!$isTextArea) { + $input = new htmlInputField($attrName . '_' . $i, $values[$i]); + if (!empty($length)) { + $input->setFieldMaxLength($length); + } + if (!empty($fieldSize)) { + $input->setFieldSize($fieldSize); + } + if (!empty($autoCompleteValues)) { + $input->enableAutocompletion($autoCompleteValues); + } + $subContainer->addElement($input); + } + else { + $cols = 30; + if ($length != null) { + $cols = $length; + } + $subContainer->addElement(new htmlInputTextarea($attrName . '_' . $i, $values[$i], $cols, 3)); + } + if (!empty($htmlIDs)) { + $htmlIDs[] = $attrName . '_' . $i; + } + if (!empty($values[$i])) { + $subContainer->addElement(new htmlButton('del_' . $attrName . '_' . $i, 'del.png', true)); + } + if ($i == 0) { + $subContainer->addElement(new htmlButton('add_' . $attrName, 'add.png', true)); + } + $subContainer->addNewLine(); + } + $container->addElement($subContainer); + $help = new htmlHelpLink($attrName); + $help->alignment = htmlElement::ALIGN_TOP; + $container->addElement($help, true); + } + + /** + * Validates a multi-value text field. + * The input fields must be created with function addMultiValueInputTextField(). + * If validation is used then there must exist a message named [{attribute name}][0] (e.g. $this->messages['street'][0]). + * + * @param String $attrName attribute name + * @param array $errors errors array where to put validation errors + * @param String $validationID validation ID for function get_preg() (default: null, null means no validation) + */ + protected function processMultiValueInputTextField($attrName, &$errors, $validationID = null) { + $counter = 0; + while (isset($_POST[$attrName . '_' . $counter])) { + $this->attributes[$attrName][$counter] = trim($_POST[$attrName . '_' . $counter]); + if (($this->attributes[$attrName][$counter] == '') || isset($_POST['del_' . $attrName . '_' . $counter])) { + unset($this->attributes[$attrName][$counter]); + } + elseif (($validationID != null) && ($this->attributes[$attrName][$counter] != '') && !get_preg($this->attributes[$attrName][$counter], $validationID)) { + $msg = $this->messages[$attrName][0]; + if (sizeof($msg) < 3) { + $msg[] = htmlspecialchars($this->attributes[$attrName][$counter]); + } + $errors[] = $msg; + } + $counter++; + } + if (isset($_POST['add_' . $attrName])) { + $this->attributes[$attrName][] = ''; + } + $this->attributes[$attrName] = array_values(array_unique($this->attributes[$attrName])); + } + + /** + * Adds a simple text input field for the self service. + * The field name will be the same as the class name plus "_" plus attribute name (e.g. posixAccount_cn). + * + * @param array $container array that is used as return value for getSelfServiceOptions() + * @param String $name attribute name (== field name) + * @param String $label label to display in front of input field + * @param array $fields list of active fields + * @param array $attributes attributes of LDAP account + * @param array $readOnlyFields list of read-only fields + * @param boolean $required field is required + * @param boolean $isTextArea display as text area + */ + protected function addSimpleSelfServiceTextField(&$container, $name, $label, &$fields, &$attributes, &$readOnlyFields, $required = false, $isTextArea = false) { + $value = ''; + if (isset($attributes[$name][0])) { + $value = $attributes[$name][0]; + } + if (!$isTextArea && !in_array($name, $readOnlyFields)) { + $field = new htmlInputField(get_class($this) . '_' . $name, $value); + $field->setRequired($required); + } + elseif ($isTextArea && !in_array($name, $readOnlyFields)) { + $field = new htmlInputTextarea(get_class($this) . '_' . $name, $value, 30, 3); + } + else { + if (!$isTextArea) { + $field = new htmlOutputText($value); + } + else { + $value = htmlspecialchars($value); + $value = str_replace("\n", '
    ', $value); + $field = new htmlOutputText($value, false); + } + } + $container[$name] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel($name, $label)), $field + )); + } + + /** + * Checks the input value of a self service text field. + * The field name must be the same as the class name plus "_" plus attribute name (e.g. posixAccount_cn). + * If validation is used then there must exist a message named [{attribute name}][0] (e.g. $this->messages['street'][0]). + * + * @param array $container return value of checkSelfServiceOptions() + * @param String $name attribute name + * @param array $attributes LDAP attributes + * @param string $fields input fields + * @param array $readOnlyFields list of read-only fields + * @param String $validationID validation ID for get_preg() + */ + protected function checkSimpleSelfServiceTextField(&$container, $name, &$attributes, $fields, &$readOnlyFields, $validationID = null) { + if (in_array($name, $fields) && !in_array($name, $readOnlyFields)) { + $fieldName = get_class($this) . '_' . $name; + if (isset($_POST[$fieldName]) && ($_POST[$fieldName] != '')) { + if (($validationID != null) && !get_preg($_POST[$fieldName], $validationID)) { + $container['messages'][] = $this->messages[$name][0]; + } + else { + if (isset($attributes[$name])) { + $container['mod'][$name] = array($_POST[$fieldName]); + } + else { + $container['add'][$name] = array($_POST[$fieldName]); + } + } + } + elseif (isset($attributes[$name])) { + $container['del'][$name] = $attributes[$name]; + } + } + } + + /** + * Returns a list of managed object classes for this module. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * This is used to fix spelling errors in LDAP-Entries (e.g. if "posixACCOUNT" is read instead of "posixAccount" from LDAP).
    + *
    + * Example: return array('posixAccount') + * + * @return array list of object classes + * + * @see baseModule::get_metaData() + */ + public function getManagedObjectClasses() { + if (isset($this->meta['objectClasses']) && is_array($this->meta['objectClasses'])) return $this->meta['objectClasses']; + else return array(); + } + + /** + * Returns a list of aliases for LDAP attributes. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * All alias attributes will be renamed to the given attribute names. + * + * @return array list of aliases like array("alias name" => "attribute name") + * + * @see baseModule::get_metaData() + */ + public function getLDAPAliases() { + if (isset($this->meta['LDAPaliases']) && is_array($this->meta['LDAPaliases'])) return $this->meta['LDAPaliases']; + else return array(); + } + + /** + * Returns a list of LDAP attributes which are managed by this module. + * All attribute names will be renamed to match the given spelling. + * + * @return array list of attributes + * + * @see baseModule::get_metaData() + */ + public function getManagedAttributes() { + if (isset($this->meta['attributes']) && is_array($this->meta['attributes'])) return $this->meta['attributes']; + else return array(); + } + + /** + * This function returns a list of PHP extensions (e.g. hash) which are needed by this module. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}. + * + * @return array extensions + * + * @see baseModule::get_metaData() + */ + public function getRequiredExtensions() { + if (isset($this->meta['extensions']) && is_array($this->meta['extensions'])) return $this->meta['extensions']; + else return array(); + } + + /** + * This function returns a list of possible LDAP attributes (e.g. uid, cn, ...) which can be used to search for LDAP objects. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}. + * + * @return array attributes + * + * @see baseModule::get_metaData() + */ + public function getSelfServiceSearchAttributes() { + if (isset($this->meta['selfServiceSearchAttributes']) && is_array($this->meta['selfServiceSearchAttributes'])) return $this->meta['selfServiceSearchAttributes']; + else return array(); + } + + /** + * Returns a list of possible input fields and their descriptions. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * Format: array( => ) + * + * @return array fields + * + * @see baseModule::get_metaData() + */ + public function getSelfServiceFields() { + if (isset($this->meta['selfServiceFieldSettings']) && is_array($this->meta['selfServiceFieldSettings'])) return $this->meta['selfServiceFieldSettings']; + else return array(); + } + + /** + * Returns if a given self service field can be set in read-only mode. + * + * @param String $fieldID field identifier + * @param selfServiceProfile $profile currently edited profile + * @return boolean may be set read-only + */ + public function canSelfServiceFieldBeReadOnly($fieldID, $profile) { + if (isset($this->meta['selfServiceReadOnlyFields']) && is_array($this->meta['selfServiceReadOnlyFields'])) { + return in_array($fieldID, $this->meta['selfServiceReadOnlyFields']); + } + return false; + } + + /** + * Returns if a self service field can be relabeled. + * + * @param String $fieldID field ID + * @param selfServiceProfile $profile currently edited profile + * @return boolean may be relabeled + */ + public function canSelfServiceFieldBeRelabeled($fieldID, $profile) { + if (isset($this->meta['selfServiceNoRelabelFields']) && is_array($this->meta['selfServiceNoRelabelFields'])) { + return !in_array($fieldID, $this->meta['selfServiceNoRelabelFields']); + } + return true; + } + + /** + * Returns the field label. This can be either the given default label or an override value from profile. + * + * @param String $fieldID field ID + * @param String $defaultLabel default label text + * @return String label + */ + protected function getSelfServiceLabel($fieldID, $defaultLabel) { + if (!$this->canSelfServiceFieldBeRelabeled($fieldID, $this->selfServiceSettings)) { + return $defaultLabel; + } + $key = get_class($this) . '_' . $fieldID; + return empty($this->selfServiceSettings->relabelFields[$key]) ? $defaultLabel : $this->selfServiceSettings->relabelFields[$key]; + } + + /** + * Returns the meta HTML code for each input field. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * It is not possible to display help links. + * + * @param array $fields list of active fields + * @param array $attributes attributes of LDAP account + * @param boolean $passwordChangeOnly indicates that the user is only allowed to change his password and no LDAP content is readable + * @param array $readOnlyFields list of read-only fields + * @return array list of meta HTML elements (field name => htmlTableRow) + * + * @see htmlElement + */ + public function getSelfServiceOptions($fields, $attributes, $passwordChangeOnly, $readOnlyFields) { + // this function must be overwritten by subclasses. + return array(); + } + + /** + * Checks if all input values are correct and returns the LDAP attributes which should be changed. + *
    Return values: + *
    messages: array of parameters to create status messages + *
    add: array of attributes to add + *
    del: array of attributes to remove + *
    mod: array of attributes to modify + *
    info: array of values with informational value (e.g. to be used later by pre/postModify actions) + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}. + * + * @param string $fields input fields + * @param array $attributes LDAP attributes + * @param boolean $passwordChangeOnly indicates that the user is only allowed to change his password and no LDAP content is readable + * @param array $readOnlyFields list of read-only fields + * @return array messages and attributes (array('messages' => array(), 'add' => array('mail' => array('test@test.com')), 'del' => array(), 'mod' => array(), 'info' => array())) + */ + public function checkSelfServiceOptions($fields, $attributes, $passwordChangeOnly, $readOnlyFields) { + $return = array('messages' => array(), 'add' => array(), 'del' => array(), 'mod' => array(), 'info' => array()); + return $return; + } + + /** + * Returns a list of self service configuration settings. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * The name attributes are used as keywords to load + * and save settings. We recommend to use the module name as prefix for them + * (e.g. posixAccount_homeDirectory) to avoid naming conflicts. + * + * @param selfServiceProfile $profile currently edited profile + * @return htmlElement meta HTML object + * + * @see baseModule::get_metaData() + * @see htmlElement + */ + public function getSelfServiceSettings($profile) { + if (isset($this->meta['selfServiceSettings'])) { + return $this->meta['selfServiceSettings']; + } + else { + return array(); + } + } + + /** + * Checks if the self service settings are valid. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * If the input data is invalid the return value is an array that contains arrays + * to build StatusMessages (message type, message head, message text). If no errors + * occured the function returns an empty array. + * + * @param array $options hash array (option name => value) that contains the input. The option values are all arrays containing one or more elements. + * @param selfServiceProfile $profile self service profile + * @return array error messages + */ + public function checkSelfServiceSettings(&$options, &$profile) { + // needs to be implemented by the subclasses, if needed + return array(); + } + + /** + * Allows the module to run commands before the LDAP entry is changed or created. + * + * An error message should be printed if the function returns false. + * + * @param boolean $newAccount is new account or existing one + * @param array $attributes LDAP attributes of this entry + * @return boolean true, if no problems occured + */ + public function preModifySelfService($newAccount, $attributes) { + return true; + } + + /** + * Allows the module to run commands after the LDAP entry is changed or created. + * + * @param boolean $newAccount is new account or existing one + * @param array $attributes LDAP attributes of this entry + * @return boolean true, if no problems occured + */ + public function postModifySelfService($newAccount, $attributes) { + return true; + } + + /** + * This allows modules to create a link to a module specific page + * for the self service. + * The link is shown on the login page of the self service. You + * can use this to provide e.g. a page to reset passwords. + * + * @param array $settings self service settings + * @return String link text (null if no special page used) + */ + public function getLinkToSpecialSelfServicePage($settings) { + return null; + } + + /** + * This function creates meta HTML code to display the module specific page + * for the self service. + * + * @param selfServiceProfile $profile self service settings + * @return htmlElement meta HTML object + * + * @see htmlElement + */ + public function displaySpecialSelfServicePage($profile) { + return null; + } + + /** + * Returns the {@link accountContainer} object. + * + * @return accountContainer accountContainer object + * + * @see accountContainer + */ + protected function getAccountContainer() { + if (isset($this->base) && isset($_SESSION[$this->base])) { + return $_SESSION[$this->base]; + } + else { + return null; + } + } + + /** + * Returns the LDAP attributes which are managed in this module. + * + * @return array attributes + */ + public function getAttributes() { + return $this->attributes; + } + + /** + * Returns the LDAP attributes which are managed in this module (with unchanged values). + * + * @return array attributes + */ + public function getOriginalAttributes() { + return $this->orig; + } + + /** + * Returns the path to the module icon. + * The path must be releative to graphics (e.g. key.png) or an URL (/icons/icon.png or http://server/icon.png). + * You can also set $this->meta['icon']. The preferred size is 32x32px. + * + * @return unknown + * + * @see baseModule::get_metaData() + */ + public function getIcon() { + if (isset($this->meta['icon'])) { + return $this->meta['icon']; + } + return null; + } + + /** + * Manages AJAX requests. + * This function may be called with or without an account container. + */ + public function handleAjaxRequest() { + // modules that use AJAX need to implement this function + } + + /** + * Specifies if this module supports the LAM admin interface. + * The LAM admin interface are the pages that allow to manage e.g. users and groups. + * In contrast there is also the LAM self service interface. Most modules support + * the admin interface. + * + * @return boolean support admin interface + */ + public function supportsAdminInterface() { + return true; + } + + + + // helper functions + + /** + * Returns if the given configuration option is set. + * This function returns false if the configuration options cannot be read. + * + * @param String $optionName name of the option + * @param boolean $default default value if config option is not set at all (default: false) + * @return boolean true if option is set + */ + protected function isBooleanConfigOptionSet($optionName, $default = false) { + // abort if configuration is not available + if (!isset($this->moduleSettings) || !is_array($this->moduleSettings) || !isset($this->moduleSettings[$optionName][0])) { + return $default; + } + return ($this->moduleSettings[$optionName][0] == 'true'); + } + +} + + +?> \ No newline at end of file diff --git a/lam/lib/baseType.inc b/lam/lib/baseType.inc new file mode 100644 index 00000000..c0b10f5a --- /dev/null +++ b/lam/lib/baseType.inc @@ -0,0 +1,218 @@ +LABEL_CREATE_ANOTHER_ACCOUNT = _('Create another account'); + $this->LABEL_BACK_TO_ACCOUNT_LIST = _('Back to account list'); + } + + /** + * Returns the alias name of this account type. + * This function must be overwritten by the child classes. + * + * @return string alias name + */ + public function getAlias() { + return "baseType"; + } + + /** + * Returns the description of this account type. + * This function must be overwritten by the child classes. + * + * @return string description + */ + public function getDescription() { + return "base type"; + } + + /** + * Returns the class name for the list object. + * + * @return string class name + */ + public function getListClassName() { + return "lamList"; + } + + /** + * Returns the default attribute list for this account type. + * This function must be overwritten by the child classes. + * + * @return string attribute list + */ + public function getDefaultListAttributes() { + return "dn:DN,objectClass:Object classes"; + } + + /** + * Returns a list of attributes which have a translated description. + * This is used for the head row in the list view. + * + * @return array list of descriptions + */ + public function getListAttributeDescriptions() { + return array(); + } + + /** + * Returns if entries of this type may be created via file upload. + * + * @return boolean true, if file upload is supported + */ + public function supportsFileUpload() { + return true; + } + + /** + * Returns the the title text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarTitle($container) { + if ($container->dn_orig == null) { + return null; + } + return htmlspecialchars(getAbstractDN($container->dn_orig)); + } + + /** + * Returns the the title text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarSubtitle($container) { + return null; + } + + /** + * Returns a list of LDAP suffixes for this type. + * + * @return array sorted list of possible suffixes for this type. + */ + public function getSuffixList() { + if (isset($_SESSION["config"])) { + $suffix = $_SESSION["config"]->get_Suffix(get_class($this)); + $connection = $_SESSION["ldap"]->server(); + } + else { + $suffix = $_SESSION['selfServiceProfile']->LDAPSuffix; + $connection = $_SESSION['ldapHandle']; + } + $ret = array(); + $filter = "(|(objectClass=organizationalunit)(objectClass=country)(objectClass=organization)(objectClass=krbRealmContainer)(objectClass=container))"; + $sr = @ldap_search($connection, escapeDN($suffix),$filter , array('dn', 'objectClass'), 0, 0, 0, LDAP_DEREF_NEVER); + if ($sr) { + $units = ldap_get_entries($connection, $sr); + cleanLDAPResult($units); + // extract Dns + $count = sizeof($units); + for ($i = 0; $i < $count; $i++) { + if (in_array('container', $units[$i]['objectclass'])) { + // Active Directory fix, hide system containers + if (preg_match('/.*cn=system,dc=.+/i', $units[$i]['dn']) || preg_match('/.*CN=program data,dc=.+/i', $units[$i]['dn'])) { + continue; + } + } + $ret[] = $units[$i]['dn']; + } + } + // add root suffix if needed + $found = false; + for ($i = 0; $i < sizeof($ret); $i++) { // search suffix case-intensitive + if (strtolower($suffix) == strtolower($ret[$i])) { + $found = true; + break; + } + } + if (!$found) { + $ret[] = $suffix; + } + usort($ret, 'compareDN'); + return $ret; + } + + /** + * This function is called after the edit page is processed and before the page content is generated. + * This can be used to run custom handlers after each page processing. + * + * @param accountContainer $container account container + */ + public function runEditPagePostAction(&$container) { + + } + + /** + * Returns a list of configuration options. + * + * The field names are used as keywords to load and save settings. + * We recommend to use the type name as prefix for them (e.g. user_someSetting) to avoid naming conflicts. + * + * @return mixed htmlElement or array of htmlElement + * + * @see htmlElement + */ + public function get_configOptions() { + return null; + } + + /** + * Checks input values of config settings. + *
    + * If the input data is invalid the return value is an array that contains subarrays to build StatusMessages ('message type', 'message head', 'message text'). + *
    If no errors occured the function returns an empty array. + * + * @param array $options hash array (option name => value) that contains the input. The option values are all arrays containing one or more elements. + * @return array list of error messages + */ + public function check_configOptions(&$options) { + return array(); + } + +} + +?> \ No newline at end of file diff --git a/lam/lib/checkEnvironment.inc b/lam/lib/checkEnvironment.inc new file mode 100644 index 00000000..1b4012af --- /dev/null +++ b/lam/lib/checkEnvironment.inc @@ -0,0 +1,141 @@ += 5.2.4 +if (version_compare(phpversion(), '5.2.4') < 0) { + echo "\n\n"; + echo "\n\n"; + echo "\n"; + echo "\n \n"; + echo "\n"; + echo "\n"; + echo "LDAP Account Manager\n"; + echo "\n"; + StatusMessage("ERROR", "LAM needs a PHP 5 version which is greater or equal than 5.2.4.", "Please upgrade your PHP installation. The found version is " . phpversion()); + echo "

    "; + echo ""; + exit(); +} + +// check environment +$criticalErrors = array(); +// check if PHP has session support +if (! function_exists('session_start')) { + $criticalErrors[] = array("ERROR", "Your PHP has no session support!", "Please install the session extension for PHP."); +} +// check if PHP has SPL support +if (! function_exists('class_implements')) { + $criticalErrors[] = array("ERROR", "Your PHP has no SPL support!", "Please install the SPL extension for PHP."); +} +// check if PHP has LDAP support +if (! function_exists('ldap_search')) { + $criticalErrors[] = array("ERROR", "Your PHP has no LDAP support!", "Please install the LDAP extension for PHP."); +} +// check if PHP has gettext support +if (! function_exists('gettext') || !function_exists('_')) { + $criticalErrors[] = array("ERROR", "Your PHP has no gettext support!", "Please install gettext for PHP."); +} +// check if PHP has openssl support +if (! function_exists('openssl_x509_parse')) { + $criticalErrors[] = array("ERROR", "Your PHP has no openssl support!", "Please install openssl for PHP."); +} +// check if PHP has XML support +if (! function_exists('utf8_decode')) { + $criticalErrors[] = array("ERROR", "Your PHP has no XML support!", "Please install the XML extension for PHP."); +} +// check if PHP has GD support +if (! function_exists('getimagesize')) { + $criticalErrors[] = array("ERROR", "Your PHP has no GD support!", "Please install the GD extension for PHP."); +} +// check if PHP has JSON support +if (! function_exists('json_encode')) { + $criticalErrors[] = array("ERROR", "Your PHP has no JSON support!", "Please install the JSON extension for PHP."); +} +// check file permissions +$writableDirs = array('sess', 'tmp'); +for ($i = 0; $i < sizeof($writableDirs); $i++) { + $path = realpath('../') . "/" . $writableDirs[$i]; + if (!is_writable($path)) { + $criticalErrors[] = array("ERROR", 'The directory %s is not writable for the web server. Please change your file permissions.', '', array($path)); + } +} +// check session auto start +if (ini_get("session.auto_start") == "1") { + $criticalErrors[] = array("ERROR", "Please deactivate session.auto_start in your php.ini. LAM will not work if it is activated."); +} +// check memory limit +$memLimit = ini_get('memory_limit'); +if (isset($memLimit) && ($memLimit != '') && (substr(strtoupper($memLimit), strlen($memLimit) - 1) == 'M')) { + if (intval(substr($memLimit, 0, strlen($memLimit) - 1)) < 128) { + $criticalErrors[] = array("ERROR", "Please increase the \"memory_limit\" parameter in your php.ini to at least \"128M\".", + "Your current memory limit is $memLimit."); + } +} +// check PCRE regex system +if (!@preg_match('/^\p{L}+$/u', "abc")) { + $criticalErrors[] = array("ERROR", "Your PCRE library has no complete Unicode support. Please upgrade libpcre or compile with \"--enable-unicode-properties\"."); +} +// check ZIP support for PDF files in file upload +if (!extension_loaded('zip')) { + $criticalErrors[] = array("ERROR", "Your PHP has no ZIP support.", "Please install the ZIP extension for PHP."); +} +// check for main config +$mainConfig = new LAMCfgMain(); +if (!$mainConfig->isConfigFileExisting()) { + $criticalErrors[] = array("ERROR", "The main config file (config.cfg) does not exist.", "Please see the manual for installation instructions."); +} +// stop login if critical errors occured +if (sizeof($criticalErrors) > 0) { + echo "\n\n"; + echo "\n\n"; + echo "\n"; + echo "\n \n"; + echo "\n"; + echo "\n"; + echo "LDAP Account Manager\n"; + echo "\n"; + for ($i = 0; $i < sizeof($criticalErrors); $i++) { + call_user_func_array("StatusMessage", $criticalErrors[$i]); + echo "

    "; + } + echo ""; + exit(); +} + + +?> \ No newline at end of file diff --git a/lam/lib/config.inc b/lam/lib/config.inc new file mode 100644 index 00000000..3e9570f6 --- /dev/null +++ b/lam/lib/config.inc @@ -0,0 +1,1958 @@ +getSSLCaCertPath(); + if ($sslCaPath != null) { + putenv('LDAPTLS_CACERT=' . $sslCaPath); + putenv('TLS_CACERT=' . $sslCaPath); + } + } +} + +/** +* Sets language settings for automatic translation +*/ +function setlanguage() { + $code = 'en_GB.utf8'; + $encoding = 'UTF-8'; + if (!isset($_SESSION['language'])) { + $_SESSION['language'] = "en_GB.utf8"; + } + $possibleLanguages = getLanguages(); + foreach ($possibleLanguages as $lang) { + if ($lang->code == $_SESSION['language']) { + $code = $lang->code; + $encoding = $lang->encoding; + break; + } + } + putenv("LANG=" . $code); // e.g. LANG=de_DE + setlocale(LC_ALL, $code); // set LC_ALL + // workaround for buggy PHP with Turkish + if (($code == 'tr_TR.utf8') && (version_compare(phpversion(), '5.5') < 0)) { + setlocale(LC_CTYPE, 'en_GB'); + } + $locdir = substr(__FILE__, 0, strlen(__FILE__) - 15) . "/locale"; // set path to translations + bindtextdomain("messages", $locdir); + bind_textdomain_codeset("messages", $encoding); + textdomain("messages"); + header("Content-type: text/html; charset=" . $encoding, true); +} + +/** + * Checks whether a specific flag in the rights string is set. + * + * @param $right read,write or execute + * @param $target owner,group or other + * @param $chmod the chmod rights + * + * @return true, if the chmod $right for $target were set + */ +function checkChmod($right, $target, $chmod) { + $right_arr=array("read","write","execute"); + $target_arr=array("owner","group","other"); + + // Check, if $right and $target has right parameters + if (!in_array($right, $right_arr) ||!in_array($target, $target_arr)) { + return false; + } + + $chmod_num = -1; + // owner: + if ($target == "owner") $chmod_num = 0; + if ($target == "group") $chmod_num = 1; + if ($target == "other") $chmod_num = 2; + + // Cut the number from the chmod: + $chmod_num = $chmod{$chmod_num}; + + // Now check, if the chmod_num can be right with the $right + // What numbers allow "read" + $read = array(4,5,6,7); + // What numbers allow "write" + $write = array(2,3,6,7); + // What numbers allow "execute" + $execute = array(1,3,5,7); + if (($right == "read") && in_array($chmod_num, $read)) return true; + elseif (($right == "write") && in_array($chmod_num, $write)) return true; + elseif (($right == "execute") && in_array($chmod_num, $execute)) return true; + else return false; +} + +/** +* Returns an array of string with all available configuration profiles (without .conf) +* +* @return array profile names +*/ +function getConfigProfiles() { + $dir = dir(substr(__FILE__, 0, strlen(__FILE__) - 15) . "/config"); + $ret = array(); + $pos = 0; + while ($entry = $dir->read()){ + $ext = substr($entry, strlen($entry)-5, 5); + $name = substr($entry, 0, strlen($entry)-5); + // check if extension is right, add to profile list + if ($ext == ".conf") { + $ret[$pos] = $name; + $pos ++; + } + } + sort($ret); + return $ret; +} + +/** + * Deletes the given server profile. + * + * @param String $name profile name + * @return String null if success or error message if failed + */ +function deleteConfigProfile($name) { + if (!preg_match("/^[a-z0-9_-]+$/i", $name)) { + return _("Unable to delete profile!"); + } + $dir = substr(__FILE__, 0, strlen(__FILE__) - 15) . "/config/"; + // delete account profiles and PDF structures + $subDirs = array($dir . 'pdf/' . $name . '/logos', $dir . 'pdf/' . $name, $dir . 'profiles/' . $name); + for ($i = 0; $i < sizeof($subDirs); $i++) { + if (is_dir($subDirs[$i])) { + $dirHandle = @opendir($subDirs[$i]); + while (false !== ($path = readdir($dirHandle))) { + if ($path != '.' && $path != '..') { + if (!@unlink($subDirs[$i] . '/' . $path)) { + logNewMessage(LOG_ERR, 'Unable to delete ' . $subDirs[$i] . '/' . $path); + return _("Unable to delete profile!"); + } + } + } + @closedir($dirHandle); + if (!@rmdir($subDirs[$i])) { + logNewMessage(LOG_ERR, 'Unable to delete ' . $subDirs[$i]); + return _("Unable to delete profile!"); + } + } + } + // delete config file + $confFile = $dir . $_POST['delfilename'] . ".conf"; + if (!@unlink($confFile)) { + logNewMessage(LOG_ERR, 'Unable to delete ' . $confFile); + return _("Unable to delete profile!"); + } +} + +/** +* Returns the version number of this LAM installation. +* Format: .. +*
    Major/minor version are always numbers, patch level may contain letters for inofficial releases only (e.g. 0.5.alpha1). +* +* @return string version number +*/ +function LAMVersion() { + $file = substr(__FILE__, 0, strlen(__FILE__) - 15) . "/VERSION"; + if (is_readable($file)) { + $handle = fopen($file, "r"); + if (!feof($handle)) { + return trim(fgets($handle, 20)); + } + } + // file was not readable + return '0.0.unknown'; +} + +/** + * Extracts config options from HTTP POST data. + * + * @param array $confTypes array (option name => type (e.g. multiselect)) + * @return array list of config options (name => array(values)) + */ +function extractConfigOptionsFromPOST($confTypes) { + $options = array(); + foreach ($confTypes as $element => $type) { + // text fields + if ($type == "text") { + $options[$element] = array($_POST[$element]); + } + // text fields + elseif ($type == "text_obfuscated") { + $options[$element] = array(obfuscateText($_POST[$element])); + } + // hidden fields + elseif ($type == "hidden") { + $options[$element] = array($_POST[$element]); + } + // checkboxes + elseif ($type == "checkbox") { + if (isset($_POST[$element]) && ($_POST[$element] == "on")) $options[$element] = array('true'); + else $options[$element] = array('false'); + } + // dropdownbox + elseif ($type == "select") { + $options[$element] = array($_POST[$element]); + } + // multiselect + elseif ($type == "multiselect") { + $options[$element] = $_POST[$element]; // value is already an array + } + // textarea + elseif ($type == "textarea") { + $options[$element] = explode("\r\n", $_POST[$element]); + } + } + return $options; +} + + +/** +* Prints a meta refresh page +* +* @param string $page the URL of the target page +*/ +function metaRefresh($page) { + if (isset($_SESSION['header'])) { + echo $_SESSION['header']; + } + else { + echo ''; + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + // print link if refresh does not work + echo "

    \n"; + echo "" . _("Click here if you are not directed to the next page.") . "\n"; + echo "

    \n"; + echo "\n"; + echo "\n"; +} + +/** + * Checks if the given account type is hidden. + * + * @param String $type account type (e.g. user) + * @return boolean is hidden + */ +function isAccountTypeHidden($type) { + $typeSettings = $_SESSION['config']->get_typeSettings(); + return isset($typeSettings['hidden_' . $type]) && ($typeSettings['hidden_' . $type] == true); +} + +/** + * Returns a list of all supported languages. + * + * @return array languages + */ +function getLanguages() { + $languages = array(); + // loading available languages from language.conf file + $languagefile = dirname(__FILE__) . "/../config/language"; + if(is_file($languagefile) == true) { + $file = fopen($languagefile, "r"); + while(!feof($file)) { + $line = fgets($file, 1024); + if($line == "" || $line == "\n" || $line[0] == "#") continue; // ignore comment and empty lines + $value = explode(":", $line); + $languages[] = new LAMLanguage($value[0], $value[1], $value[2]); + } + fclose($file); + } + return $languages; +} + +/** + * Represents a supported language. + * + * @package configuration + */ +class LAMLanguage { + /** language code (e.g. en_GB.utf8) */ + public $code; + /** character encoding (e.g. UTF-8) */ + public $encoding; + /** description for GUI */ + public $description; + + /** + * Constructor + * + * @param String $code language code (e.g. en_GB.utf8) + * @param String $encoding character encoding (e.g. UTF-8) + * @param String $description description for GUI + */ + public function __construct($code, $encoding, $description) { + $this->code = $code; + $this->encoding = $encoding; + $this->description = $description; + } + +} + +/** +* This class manages .conf files. +* +* @package configuration +*/ +class LAMConfig { + + /* access levels */ + const ACCESS_ALL = 100; + const ACCESS_PASSWORD_CHANGE = 20; + const ACCESS_READ_ONLY = 0; + + /* return codes for saving configuration file */ + const SAVE_OK = 0; + const SAVE_FAIL = 1; + + /* login method: predefined list or LDAP search */ + const LOGIN_LIST = 'list'; + const LOGIN_SEARCH = 'search'; + + /** line separator */ + const LINE_SEPARATOR = '+::+'; + + /** Server address (e.g. ldap://127.0.0.1:389) */ + private $ServerURL; + + /** enables/disables TLS encryption */ + private $useTLS; + + /** automatically follow referrals */ + private $followReferrals = 'false'; + + /** Array of string: users with admin rights */ + private $Admins; + + /** Password to edit preferences */ + private $Passwd; + + /** LDAP suffix for tree view */ + private $treesuffix; + + /** Default language */ + private $defaultLanguage; + + /** module settings */ + private $moduleSettings = array(); + + /** type settings */ + private $typeSettings = array(); + + /** tool settings */ + private $toolSettings = array(); + + /** + * Path to external lamdaemon script on server where it is executed + * + * This is used for managing quota and home directories. + * optional setting, may not be defined + */ + private $scriptPath; + + /** + * The rights for the home directory + */ + private $scriptRights = '750'; + + /** + * Servers where lamdaemon script is executed + * + * This is used for managing quota and home directories. + * optional setting, may not be defined + */ + private $scriptServer; + + /** LDAP cache timeout */ + private $cachetimeout; + + /** LDAP search limit */ + private $searchLimit = 0; + + /** Active account types */ + private $activeTypes = "user,group,host,smbDomain"; + + /** Name of configuration file */ + private $file; + + /** access level */ + private $accessLevel = LAMconfig::ACCESS_ALL; + + /** login method */ + private $loginMethod = LAMconfig::LOGIN_LIST; + + /** search suffix for login */ + private $loginSearchSuffix = 'dc=yourdomain,dc=org'; + + /** search filter for login */ + private $loginSearchFilter = 'uid=%USER%'; + + /** bind user for login search */ + private $loginSearchDN = ''; + + /** bind password for login search */ + private $loginSearchPassword = ''; + + /** specifies if HTTP authentication should be used */ + private $httpAuthentication = 'false'; + + /** email address for sender of password reset mails */ + private $lamProMailFrom = ''; + + /** reply-to email address for password reset mails */ + private $lamProMailReplyTo = ''; + + /** subject for password reset mails */ + private $lamProMailSubject = ''; + + /** treat password reset mail body as HTML */ + private $lamProMailIsHTML = 'false'; + + /** allow sending mails to an alternative address */ + private $lamProMailAllowAlternateAddress = 'true'; + + /** mail body for password reset mails */ + private $lamProMailText = ''; + + /** List of all settings in config file */ + private $settings = array("ServerURL", "useTLS", "followReferrals", "Passwd", "Admins", "treesuffix", + "defaultLanguage", "scriptPath", "scriptServer", "scriptRights", "cachetimeout", + "modules", "activeTypes", "types", "tools", "accessLevel", 'loginMethod', 'loginSearchSuffix', + 'loginSearchFilter', 'searchLimit', 'lamProMailFrom', 'lamProMailReplyTo', 'lamProMailSubject', + 'lamProMailText', 'lamProMailIsHTML', 'lamProMailAllowAlternateAddress', 'httpAuthentication', 'loginSearchDN', + 'loginSearchPassword'); + + + /** + * Loads preferences from config file + * + * @param String $file file name without ".conf" (e.g. lam) + */ + function __construct($file) { + if (empty($file) || !preg_match("/^[a-z0-9_-]+$/i", $file)) { + logNewMessage(LOG_ERR, 'Invalid config file name: ' . $file); + die(); + } + // load first profile if none is given + if (!is_string($file)) { + $profiles = getConfigProfiles(); + $file = $profiles[0]; + } + $this->file = $file; + $this->reload(); + } + + /** + * Reloads preferences from config file + * + * @return boolean true if file was readable + */ + private function reload() { + $conffile = $this->getPath(); + if (is_file($conffile) == True) { + $file = @fopen($conffile, "r"); + if (!$file) return false; // abort if file is not readable + while (!feof($file)) { + $line = fgets($file, 100000); + $line = trim($line); // remove spaces at the beginning and end + if (($line == "")||($line[0] == "#")) continue; // ignore comments and empty lines + // search keywords + for ($i = 0; $i < sizeof($this->settings); $i++) { + $keyword = $this->settings[$i]; + $keylen = strlen($keyword); + if (strtolower(substr($line, 0, $keylen + 2)) == strtolower($keyword . ": ")) { + // module settings + if (strtolower(substr($line, 0, $keylen + 2)) == "modules: ") { + $option = substr($line, $keylen + 2, strlen($line) - $keylen - 2); + $pos = strpos($option, ":"); + $this->moduleSettings[substr($option, 0, $pos)] = explode(LAMConfig::LINE_SEPARATOR, substr($option, $pos + 2)); + } + // type settings + elseif (strtolower(substr($line, 0, $keylen + 2)) == "types: ") { + $option = substr($line, $keylen + 2, strlen($line) - $keylen - 2); + $pos = strpos($option, ":"); + $this->typeSettings[substr($option, 0, $pos)] = substr($option, $pos + 2); + } + // tool settings + elseif (strtolower(substr($line, 0, $keylen + 2)) == "tools: ") { + $option = substr($line, $keylen + 2, strlen($line) - $keylen - 2); + $pos = strpos($option, ":"); + $this->toolSettings[substr($option, 0, $pos)] = substr($option, $pos + 2); + } + // general settings + else { + $this->$keyword = substr($line, $keylen + 2, strlen($line) - $keylen - 2); + } + break; + } + elseif (strtolower($line) == strtolower($keyword . ":")) { + // set empty options + $this->$keyword = ''; + } + } + } + fclose($file); + } + // check types + $allTypes = getTypes(); + $activeTypes = $this->get_ActiveTypes(); + for ($i = 0; $i < sizeof($activeTypes); $i++) { + if (!in_array($activeTypes[$i], $allTypes)) { + unset($activeTypes[$i]); + } + } + $activeTypes = array_values($activeTypes); + $this->set_ActiveTypes($activeTypes); + // check modules + $scopes = $this->get_ActiveTypes(); + for ($s = 0; $s < sizeof($scopes); $s++) { + $scope = $scopes[$s]; + $moduleVar = "modules_" . $scope; + if (isset($this->typeSettings[$moduleVar])){ + $modules = explode(",", $this->typeSettings[$moduleVar]); + $available = getAvailableModules($scope); + // only return available modules + $ret = array(); + for ($i = 0; $i < sizeof($modules); $i++) { + if (in_array($modules[$i], $available)) $ret[] = $modules[$i]; + } + $this->typeSettings[$moduleVar] = implode(",", $ret); + } + } + return true; + } + + /** Saves preferences to config file */ + public function save() { + $conffile = $this->getPath(); + if (is_file($conffile) == True) { + $file = fopen($conffile, "r"); + $file_array = array(); + // read config file + while (!feof($file)) { + array_push($file_array, fgets($file, 1024)); + } + fclose($file); + // generate new configuration file + $saved = array(); // includes all settings which have been saved + $mod_saved = array(); // includes all module settings which have been saved + for ($i = 0; $i < sizeof($file_array); $i++) { + $line = trim($file_array[$i]); + if (($line == "")||($line[0] == "#")) continue; // ignore comments and empty lines + // search for keywords + for ($k = 0; $k < sizeof($this->settings); $k++) { + $keyword = $this->settings[$k]; + $keylen = strlen($keyword); + if (strtolower(substr($line, 0, $keylen + 1)) == strtolower($keyword . ":")) { + // module settings + if (strtolower(substr($line, 0, $keylen + 2)) == "modules: ") { + $option = substr($line, $keylen + 2, strlen($line) - $keylen - 2); + $pos = strpos($option, ":"); + $name = substr($option, 0, $pos); + if (!isset($this->moduleSettings[$name])) continue; + $file_array[$i] = "modules: " . $name . ": " . implode(LAMConfig::LINE_SEPARATOR, $this->moduleSettings[$name]) . "\n"; + $mod_saved[] = $name; // mark keyword as saved + } + // type settings + elseif (strtolower(substr($line, 0, $keylen + 2)) == "types: ") { + $option = substr($line, $keylen + 2, strlen($line) - $keylen - 2); + $pos = strpos($option, ":"); + $name = substr($option, 0, $pos); + if (!isset($this->typeSettings[$name])) continue; + $file_array[$i] = "types: " . $name . ": " . $this->typeSettings[$name] . "\n"; + $mod_saved[] = $name; // mark keyword as saved + } + // tool settings + elseif (strtolower(substr($line, 0, $keylen + 2)) == "tools: ") { + $option = substr($line, $keylen + 2, strlen($line) - $keylen - 2); + $pos = strpos($option, ":"); + $name = substr($option, 0, $pos); + if (!isset($this->toolSettings[$name])) continue; + $file_array[$i] = "tools: " . $name . ": " . $this->toolSettings[$name] . "\n"; + $mod_saved[] = $name; // mark keyword as saved + } + // general settings + else { + $file_array[$i] = $keyword . ": " . $this->$keyword . "\n"; + $saved[] = $keyword; // mark keyword as saved + } + break; + } + } + } + // check if we have to add new entries (e.g. if user upgraded LAM and has an old config file) + if (!in_array("ServerURL", $saved)) array_push($file_array, "\n\n# server address (e.g. ldap://localhost:389 or ldaps://localhost:636)\n" . "serverURL: " . $this->ServerURL . "\n"); + if (!in_array("useTLS", $saved)) array_push($file_array, "\n\n# enable TLS encryption\n" . "useTLS: " . $this->useTLS . "\n"); + if (!in_array("followReferrals", $saved)) array_push($file_array, "\n\n# follow referrals\n" . "followReferrals: " . $this->followReferrals . "\n"); + if (!in_array("Passwd", $saved)) array_push($file_array, "\n\n# password to change these preferences via webfrontend\n" . "passwd: " . $this->Passwd . "\n"); + if (!in_array("Admins", $saved)) array_push($file_array, "\n\n# list of users who are allowed to use LDAP Account Manager\n" . + "# names have to be seperated by semicolons\n" . + "# e.g. admins: cn=admin,dc=yourdomain,dc=org;cn=root,dc=yourdomain,dc=org\n" . "admins: " . $this->Admins . "\n"); + if (!in_array("treesuffix", $saved)) array_push($file_array, "\n\n# suffix of tree view\n" . + "# e.g. dc=yourdomain,dc=org\n" . "treesuffix: " . $this->treesuffix . "\n"); + if (!in_array("defaultLanguage", $saved)) array_push($file_array, "\n\n# default language (a line from config/language)\n" . "defaultLanguage: " . $this->defaultLanguage . "\n"); + if (!in_array("scriptPath", $saved)) array_push($file_array, "\n\n# Path to external Script\n" . "scriptPath: " . $this->scriptPath . "\n"); + if (!in_array("scriptServer", $saved)) array_push($file_array, "\n\n# Servers of external script\n" . "scriptServer: " . $this->scriptServer . "\n"); + if (!in_array("scriptRights", $saved)) array_push($file_array, "\n\n# Access rights for home directories\n" . "scriptRights: " . $this->scriptRights . "\n"); + if (!in_array("cachetimeout", $saved)) array_push($file_array, "\n\n# Number of minutes LAM caches LDAP searches.\n" . "cacheTimeout: " . $this->cachetimeout . "\n"); + if (!in_array("searchLimit", $saved)) array_push($file_array, "\n\n# LDAP search limit.\n" . "searchLimit: " . $this->searchLimit . "\n"); + if (!in_array("activeTypes", $saved)) array_push($file_array, "\n\n# List of active account types.\n" . "activeTypes: " . $this->activeTypes . "\n"); + if (!in_array("accessLevel", $saved)) array_push($file_array, "\n\n# Access level for this profile.\n" . "accessLevel: " . $this->accessLevel . "\n"); + if (!in_array("loginMethod", $saved)) array_push($file_array, "\n\n# Login method.\n" . "loginMethod: " . $this->loginMethod . "\n"); + if (!in_array("loginSearchSuffix", $saved)) array_push($file_array, "\n\n# Search suffix for LAM login.\n" . "loginSearchSuffix: " . $this->loginSearchSuffix . "\n"); + if (!in_array("loginSearchFilter", $saved)) array_push($file_array, "\n\n# Search filter for LAM login.\n" . "loginSearchFilter: " . $this->loginSearchFilter . "\n"); + if (!in_array("loginSearchDN", $saved)) array_push($file_array, "\n\n# Bind DN for login search.\n" . "loginSearchDN: " . $this->loginSearchDN . "\n"); + if (!in_array("loginSearchPassword", $saved)) array_push($file_array, "\n\n# Bind password for login search.\n" . "loginSearchPassword: " . $this->loginSearchPassword . "\n"); + if (!in_array("httpAuthentication", $saved)) array_push($file_array, "\n\n# HTTP authentication for LAM login.\n" . "httpAuthentication: " . $this->httpAuthentication . "\n"); + if (!in_array("lamProMailFrom", $saved)) array_push($file_array, "\n\n# Password mail from\n" . "lamProMailFrom: " . $this->lamProMailFrom . "\n"); + if (!in_array("lamProMailReplyTo", $saved)) array_push($file_array, "\n\n# Password mail reply-to\n" . "lamProMailReplyTo: " . $this->lamProMailReplyTo . "\n"); + if (!in_array("lamProMailSubject", $saved)) array_push($file_array, "\n\n# Password mail subject\n" . "lamProMailSubject: " . $this->lamProMailSubject . "\n"); + if (!in_array("lamProMailIsHTML", $saved)) array_push($file_array, "\n\n# Password mail is HTML\n" . "lamProMailIsHTML: " . $this->lamProMailIsHTML . "\n"); + if (!in_array("lamProMailAllowAlternateAddress", $saved)) array_push($file_array, "\n\n# Allow alternate address\n" . "lamProMailAllowAlternateAddress: " . $this->lamProMailAllowAlternateAddress . "\n"); + if (!in_array("lamProMailText", $saved)) array_push($file_array, "\n\n# Password mail text\n" . "lamProMailText: " . $this->lamProMailText . "\n"); + // check if all module settings were added + $m_settings = array_keys($this->moduleSettings); + for ($i = 0; $i < sizeof($m_settings); $i++) { + if (!in_array($m_settings[$i], $mod_saved)) { + array_push($file_array, "modules: " . $m_settings[$i] . ": " . implode(LAMConfig::LINE_SEPARATOR, $this->moduleSettings[$m_settings[$i]]) . "\n"); + } + } + // check if all type settings were added + $t_settings = array_keys($this->typeSettings); + for ($i = 0; $i < sizeof($t_settings); $i++) { + if (!in_array($t_settings[$i], $mod_saved)) { + array_push($file_array, "types: " . $t_settings[$i] . ": " . $this->typeSettings[$t_settings[$i]] . "\n"); + } + } + // check if all tool settings were added + $tool_settings = array_keys($this->toolSettings); + for ($i = 0; $i < sizeof($tool_settings); $i++) { + if (!in_array($tool_settings[$i], $mod_saved)) { + array_push($file_array, "tools: " . $tool_settings[$i] . ": " . $this->toolSettings[$tool_settings[$i]] . "\n"); + } + } + $file = @fopen($conffile, "w"); + $saveResult = LAMConfig::SAVE_OK; + if ($file) { + for ($i = 0; $i < sizeof($file_array); $i++) fputs($file, $file_array[$i]); + fclose($file); + @chmod($conffile, 0600); + } + else { + $saveResult = LAMConfig::SAVE_FAIL; + } + return $saveResult; + } + } + + /** + * Returns the name of the config file + * + * @return String name + */ + public function getName() { + return $this->file; + } + + /** + * Returns if the file can be written on the filesystem. + * + * @return boolean true if file is writable + */ + public function isWritable() { + return is_writeable($this->getPath()); + } + + /** + * Returns the path to the config file. + * + * @return string path on filesystem + */ + public function getPath() { + return substr(__FILE__, 0, strlen(__FILE__) - 15) . "/config/" . $this->file . ".conf"; + } + + // functions to read/write preferences + + /** + * Returns the server address as string + * + * @return string server address + */ + public function get_ServerURL() { + return $this->ServerURL; + } + + /** + * Sets the server address + * + * @param string $value new server address + * @return boolean true if $value has correct format + */ + public function set_ServerURL($value) { + if (is_string($value)) $this->ServerURL = $value; + else return false; + return true; + } + + /** + * Returns if TLS is activated. + * + * @return String yes or no + */ + public function getUseTLS() { + return $this->useTLS; + } + + /** + * Sets if TLS is activated. + * + * @param String $useTLS yes or no + * @return boolean true if $useTLS has correct format + */ + public function setUseTLS($useTLS) { + if (($useTLS == "yes") || ($useTLS == "no")) { + $this->useTLS = $useTLS; + return true; + } + return false; + } + + /** + * Returns if referrals should be followed. + * + * @return String true or false + */ + public function getFollowReferrals() { + return $this->followReferrals; + } + + /** + * Sets if referrals should be followed. + * + * @param String $followReferrals true or false + */ + public function setFollowReferrals($followReferrals) { + $this->followReferrals = $followReferrals; + } + + /** + * Returns an array of string with all admin names + * + * @return array the admin names + */ + public function get_Admins() { + return explode(";", $this->Admins); + } + + /** + * Returns all admin users seperated by semicolons + * + * @return string the admin string + */ + public function get_Adminstring() { + return $this->Admins; + } + + /** + * Sets the admin string + * + * @param string $value new admin string that contains all admin users seperated by semicolons + * @return boolean true if $value has correct format + */ + public function set_Adminstring($value) { + if (is_string($value) && + preg_match("/^[^;]+(;[^;]+)*$/", $value)) { + $this->Admins = $value; + } + else return false; + return true; + } + + /** + * Checks if the given password matches. + * + * @param String $password + * @return boolean true, if matches + */ + public function check_Passwd($password) { + if (substr($this->Passwd, 0, 6) == "{SSHA}") { + // check hashed password + $value = substr($this->Passwd, 6); + $parts = explode(" ", $value); + $salt = base64_decode($parts[1]); + return ($this->hashPassword($password, $salt) === $this->Passwd); + } + else { + // old nonhashed password + return ($password === $this->Passwd); + } + } + + /** + * Sets the preferences wizard password + * + * @param string $value new password + * @return boolean true if $value has correct format + */ + public function set_Passwd($value) { + if (is_string($value)) { + mt_srand((microtime() * 1000000)); + $rand = getRandomNumber(); + $salt0 = substr(pack("h*", md5($rand)), 0, 8); + $salt = substr(pack("H*", sha1($salt0 . $value)), 0, 4); + $this->Passwd = $this->hashPassword($value, $salt); + return true; + } + else { + return false; + } + } + + /** + * Returns the hashed password. + * + * @param String $password password + * @param String $salt salt + * @return String hash value + */ + private function hashPassword($password, $salt) { + return "{SSHA}" . base64_encode(convertHex2bin(sha1($password . $salt))) . " " . base64_encode($salt); + } + + /** + * Returns the LDAP suffix for the given account type + * + * @param string $scope account type + * @return string the LDAP suffix + */ + public function get_Suffix($scope) { + if ($scope == "tree") { + return $this->treesuffix; + } + else { + return $this->typeSettings['suffix_' . $scope]; + } + } + + /** + * Sets the LDAP suffix where accounts are saved + * + * @param string $scope account type + * @param string $value new LDAP suffix + * @return boolean true if $value has correct format + */ + public function set_Suffix($scope, $value) { + if (!$value) $value = ""; + elseif (!is_string($value)) { + return false; + } + if ($scope == "tree") { + $this->treesuffix = $value; + } + else { + $this->typeSettings['suffix_' . $scope] = $value; + } + return true; + } + + /** + * Returns the list of attributes to show in user list + * + * @param string $scope account type + * @return string the attribute list + */ + public function get_listAttributes($scope) { + return $this->typeSettings['attr_' . $scope]; + } + + /** + * Sets the list of attributes to show in user list + * + * @param string $value new attribute string + * @param string $scope account type + * @return boolean true if $value has correct format + */ + public function set_listAttributes($value, $scope) { + if (is_string($value) && preg_match("/^((#[^:;]+)|([^:;]*:[^:;]+))(;((#[^:;]+)|([^:;]*:[^:;]+)))*$/", $value)) { + $this->typeSettings['attr_' . $scope] = $value; + return true; + } + else { + return false; + } + } + + /** + * Returns the default language string + * + * @return string default language + */ + public function get_defaultLanguage() { + return $this->defaultLanguage; + } + + /** + * Sets the default language string + * + * @param string $value new default language + * @return boolean true if $value has correct format + */ + public function set_defaultLanguage($value) { + if (is_string($value)) $this->defaultLanguage = $value; + else return false; + return true; + } + + /** + * Returns the path to the external script + * + * @return string script path + */ + public function get_scriptPath() { + return $this->scriptPath; + } + + /** + * Sets the path to the external script + * + * @param string $value new script path + * @return boolean true if $value has correct format + */ + public function set_scriptPath($value) { + if (!$value) $this->scriptPath = ""; // optional parameter + elseif (is_string($value) && preg_match("/^\\/([a-z0-9_-])+(\\/([a-z0-9_\\.-])+)+$/i", $value)) $this->scriptPath = $value; + else return false; + return true; + } + + /** + * Returns the servers of the external script as a Array + * + * @return string script servers + */ + public function get_scriptServers() { + return $this->scriptServer; + } + + /** + * Sets the servers of the external script + * + * @param string $value new script servers + * @return boolean true if $value has correct format + */ + public function set_scriptServers($value) { + if (!$value) { + $this->scriptServer = ""; // optional parameter + return true; + } + // Explode the value to an array + $array_string = explode(";", $value); + if (count($array_string) > 0) { + // Check all IPs in the exploded Array + $valid_ips = array(); + foreach($array_string as $arr_value) { + // Explode name and IP, if a name exists + if (preg_match("/:/", $arr_value)) { + $arr_value_explode = explode(":", $arr_value); + $ip = $arr_value_explode[1]; + $servername = $arr_value_explode[0]; + } + else { + $ip = $arr_value; + $servername = ""; + } + if (isset($ip) && is_string($ip) && preg_match("/^[a-z0-9-]+(\\.[a-z0-9-]+)*(,[0-9]+)?$/i", $ip)) { + // Check if the IP has a server name + if (!empty($servername)) { + $valid_ips[] = $servername.":".$ip; + } + else { + $valid_ips[] = $ip; + } + } + else { + // wrong format + return false; + } + } + // Check that the array is not empty + if ($array_string > 0) { + $this->scriptServer = implode(";", $valid_ips); + return true; + } + else { + // The array is empty, there was no valid IP + return false; + } + } + else { + return false; + } + } + + /** + * Returns the chmod value for new home directories. + * + * @return string rights + */ + public function get_scriptRights() { + if (!isset($this->scriptRights)) return '755'; + return $this->scriptRights; + } + + /** + * Sets the rights for the home directory. + * + * @param string $chmod the rights + * @return boolean true if values has correct format + */ + public function set_scriptRights($chmod) { + // check if the chmod is correct: + if ($chmod > 0 && $chmod <=777) { + $this->scriptRights=$chmod; + return true; + } + else { + return false; + } + } + + /** + * Returns the LDAP cache timeout in minutes + * + * @return integer cache time + */ + public function get_cacheTimeout() { + if (isset($this->cachetimeout)) return $this->cachetimeout; + else return 5; + } + + /** + * Returns the LDAP cache timeout in seconds + * + * @return integer cache time + */ + public function get_cacheTimeoutSec() { + return $this->cachetimeout * 60; + } + + /** + * Sets the LDAP cache timeout in minutes (0,1,2,5,10,15) + * + * @param integer $value new cache timeout + * @return boolean true if $value has correct format + */ + public function set_cacheTimeout($value) { + if (is_numeric($value) && ($value > -1)) { + $this->cachetimeout = $value; + } + else return false; + return true; + } + + /** + * Returns the LDAP search limit. + * + * @return integer search limit + */ + public function get_searchLimit() { + return $this->searchLimit; + } + + /** + * Sets the LDAP search limit. + * + * @param integer $value new search limit + * @return boolean true if $value has correct format + */ + public function set_searchLimit($value) { + if (is_numeric($value) && ($value > -1)) { + $this->searchLimit = $value; + } + else return false; + return true; + } + + /** + * Returns an array of all selected account modules + * + * @param string $scope account type + * @return array user modules + */ + public function get_AccountModules($scope) { + if (isset($this->typeSettings["modules_" . $scope])) { + $modulesTmp = explode(",", $this->typeSettings["modules_" . $scope]); + $modules = array(); + foreach ($modulesTmp as $mod) { + if (trim($mod) != '') { + $modules[] = $mod; + } + } + return $modules; + } + else { + return array(); + } + } + + /** + * Sets the selected account modules + * + * @param array $modules array with module names (not aliases!) + * @param string $scope account type + * @return boolean true if $modules has correct format + */ + public function set_AccountModules($modules, $scope) { + if (! is_array($modules)) return false; + // check module names + $available = getAvailableModules($scope); + for ($i = 0; $i < sizeof($modules); $i++) { + if (! in_array($modules[$i], $available)) return false; + } + // check depends/conflicts + if (check_module_conflicts($modules, getModulesDependencies($scope)) != false) return false; + if (check_module_depends($modules, getModulesDependencies($scope)) != false) return false; + $this->typeSettings["modules_" . $scope] = implode(",", $modules); + return true; + } + + /** + * Sets the settings for the account modules. + * + * @param array $settings list of module setting array(name => value) + * @return boolean true if $settings has correct format + */ + public function set_moduleSettings($settings) { + if (!is_array($settings)) return false; + $this->moduleSettings = $settings; + return true; + } + + /** + * Returns a list of saved module settings + * + * @return array list of settings: array(name => value) + */ + public function get_moduleSettings() { + return $this->moduleSettings; + } + + /** + * Returns a list of active account types. + * + * @return array list of types + */ + public function get_ActiveTypes() { + if (($this->activeTypes == '') || !isset($this->activeTypes)) return array(); + else return explode(",", $this->activeTypes); + } + + /** + * Sets the list of active types. + * + * @param array list of types + */ + public function set_ActiveTypes($types) { + $this->activeTypes = implode(",", $types); + } + + /** + * Sets the settings for the account types. + * + * @param array $settings list of type setting array(name => value) + * @return boolean true if $settings has correct format + */ + public function set_typeSettings($settings) { + if (!is_array($settings)) return false; + $this->typeSettings = $settings; + return true; + } + + /** + * Returns a list of saved type settings + * + * @return array list of settings: array(name => value) + */ + public function get_typeSettings() { + return $this->typeSettings; + } + + /** + * Returns the tool settings. + * + * @return array $toolSettings tool settings + */ + public function getToolSettings() { + return $this->toolSettings; + } + + /** + * Sets the tool settings. + * + * @param array $toolSettings tool settings + * @return boolean true if ok + */ + public function setToolSettings($toolSettings) { + if (!is_array($toolSettings)) return false; + $this->toolSettings = $toolSettings; + return true; + } + + /** + * Returns the access level for this profile. + * + * @return int level + */ + public function getAccessLevel() { + return $this->accessLevel; + } + + /** + * Sets the access level for this profile. + * + * @param int $level level + */ + public function setAccessLevel($level) { + $this->accessLevel = $level; + } + + /** + * Returns the login method. + * + * @return String login method + * @see LAMconfig::LOGIN_LIST + * @see LAMconfig::LOGIN_SEARCH + */ + public function getLoginMethod() { + return $this->loginMethod; + } + + /** + * Sets the login method. + * + * @param String $loginMethod + */ + public function setLoginMethod($loginMethod) { + $this->loginMethod = $loginMethod; + } + + /** + * Returns the login search filter. + * + * @return String search filter + */ + public function getLoginSearchFilter() { + return $this->loginSearchFilter; + } + + /** + * Sets the login search filter. + * + * @param String $loginSearchFilter search filter + */ + public function setLoginSearchFilter($loginSearchFilter) { + $this->loginSearchFilter = $loginSearchFilter; + } + + /** + * Returns the login search suffix. + * + * @return String suffix + */ + public function getLoginSearchSuffix() { + return $this->loginSearchSuffix; + } + + /** + * Sets the login search suffix. + * + * @param String $loginSearchSuffix suffix + */ + public function setLoginSearchSuffix($loginSearchSuffix) { + $this->loginSearchSuffix = $loginSearchSuffix; + } + + /** + * Sets the DN for the login search bind user. + * + * @param String $loginSearchDN DN + * @return boolean true if DN is valid + */ + public function setLoginSearchDN($loginSearchDN) { + $this->loginSearchDN = $loginSearchDN; + if (($loginSearchDN == '') || get_preg($loginSearchDN, 'dn')) { + return true; + } + return false; + } + + /** + * Returns the DN for the login search bind user. + * + * @return String DN + */ + public function getLoginSearchDN() { + return $this->loginSearchDN; + } + + /** + * Sets the password for the login search bind user. + * + * @param String $loginSearchPassword password + */ + public function setLoginSearchPassword($loginSearchPassword) { + $this->loginSearchPassword = $loginSearchPassword; + } + + /** + * Returns the password for the login search bind user. + * + * @return String password + */ + public function getLoginSearchPassword() { + return $this->loginSearchPassword; + } + + /** + * Returns if HTTP authentication should be used. + * + * @return String $httpAuthentication use HTTP authentication ('true' or 'false') + */ + public function getHttpAuthentication() { + return $this->httpAuthentication; + } + + /** + * Specifies if HTTP authentication should be used. + * + * @param String $httpAuthentication use HTTP authentication ('true' or 'false') + */ + public function setHttpAuthentication($httpAuthentication) { + $this->httpAuthentication = $httpAuthentication; + } + + /** + * Returns the sender address for password reset mails. + * + * @return String mail address + */ + public function getLamProMailFrom() { + return $this->lamProMailFrom; + } + + /** + * Sets the sender address for password reset mails. + * + * @param String $lamProMailFrom mail address + * @return boolean true if address is valid + */ + public function setLamProMailFrom($lamProMailFrom) { + $this->lamProMailFrom = $lamProMailFrom; + if (($lamProMailFrom != '') && !get_preg($lamProMailFrom, 'email') && !get_preg($lamProMailFrom, 'emailWithName')) { + return false; + } + return true; + } + + /** + * Returns the reply-to address for password reset mails. + * + * @return String mail address + */ + public function getLamProMailReplyTo() { + return $this->lamProMailReplyTo; + } + + /** + * Sets the reply-to address for password reset mails. + * + * @param String $lamProMailReplyTo mail address + * @return boolean true if address is valid + */ + public function setLamProMailReplyTo($lamProMailReplyTo) { + $this->lamProMailReplyTo = $lamProMailReplyTo; + if (($lamProMailReplyTo != '') && !get_preg($lamProMailReplyTo, 'email') && !get_preg($lamProMailReplyTo, 'emailWithName')) { + return false; + } + return true; + } + + /** + * Returns the subject for password reset mails. + * + * @return String subject + */ + public function getLamProMailSubject() { + return $this->lamProMailSubject; + } + + /** + * Sets the subject for password reset mails. + * + * @param String $lamProMailSubject subject + */ + public function setLamProMailSubject($lamProMailSubject) { + $this->lamProMailSubject = $lamProMailSubject; + } + + /** + * Returns if the password reset mail content should be treated as HTML. + * + * @return boolean HTML or text + */ + public function getLamProMailIsHTML() { + return $this->lamProMailIsHTML; + } + + /** + * Sets if the password reset mail content should be treated as HTML. + * + * @param boolean $lamProMailIsHTML true if HTML + */ + public function setLamProMailIsHTML($lamProMailIsHTML) { + $this->lamProMailIsHTML = $lamProMailIsHTML; + } + + /** + * Returns if sending to an alternate address is allowed. + * + * @return boolean alternate address allowed + */ + public function getLamProMailAllowAlternateAddress() { + return $this->lamProMailAllowAlternateAddress; + } + + /** + * Sets if sending to an alternate address is allowed. + * + * @param boolean $lamProMailAllowAlternateAddress alternate address allowed + */ + public function setLamProMailAllowAlternateAddress($lamProMailAllowAlternateAddress) { + $this->lamProMailAllowAlternateAddress = $lamProMailAllowAlternateAddress; + } + + /** + * Returns the mail body for password reset mails. + * + * @return String body + */ + public function getLamProMailText() { + return implode("\r\n", explode(LAMConfig::LINE_SEPARATOR, $this->lamProMailText)); + } + + /** + * Sets the mail body for password reset mails. + * + * @param String $lamProMailText body + */ + public function setLamProMailText($lamProMailText) { + $this->lamProMailText = implode(LAMConfig::LINE_SEPARATOR, explode("\r\n", $lamProMailText)); + } + +} + + +/** +* This class manages config.cfg. +* +* @package configuration +*/ +class LAMCfgMain { + + /** PHP error reporting setting as E_ALL & ~E_NOTICE */ + const ERROR_REPORTING_DEFAULT = 'default'; + /** PHP error reporting setting from php.ini */ + const ERROR_REPORTING_SYSTEM = 'system'; + /** PHP error reporting setting as E_ALL | E_STRICT */ + const ERROR_REPORTING_ALL = 'all'; + + /** Default profile */ + public $default; + + /** Password to change config.cfg */ + private $password; + + /** Time of inactivity before session times out (minutes) */ + public $sessionTimeout; + + /** log level */ + public $logLevel; + + /** log destination ("SYSLOG":syslog, "/...":file, "NONE":none) */ + public $logDestination; + + /** list of hosts which may access LAM */ + public $allowedHosts; + + /** list of hosts which may access LAM Pro self service */ + public $allowedHostsSelfService; + + /** session encryption */ + public $encryptSession; + + /** minimum length for passwords */ + public $passwordMinLength = 0; + + /** minimum uppercase characters */ + public $passwordMinUpper = 0; + + /** minimum lowercase characters */ + public $passwordMinLower = 0; + + /** minimum numeric characters */ + public $passwordMinNumeric = 0; + + /** minimum symbol characters */ + public $passwordMinSymbol = 0; + + /** minimum character classes (upper, lower, numeric, symbols) */ + public $passwordMinClasses = 0; + + /** number of password rules that must match (-1 = all) */ + public $checkedRulesCount = -1; + + /** password may contain the user name */ + public $passwordMustNotContainUser = 'false'; + + /** password may contain more than 2 characters of user/first/last name */ + public $passwordMustNotContain3Chars = 'false'; + + /** path to config file */ + private $conffile; + + /** uploaded SSL certificate that is stored to disk on save() */ + private $uploadedSSLCaCert = null; + + /** SSL certificate should be deleted on save() */ + private $delSSLCaCert = false; + + /** EOL for emails (default/unix) */ + public $mailEOL = 'default'; + + /** error reporting */ + public $errorReporting = self::ERROR_REPORTING_DEFAULT; + + /** list of data fields to save in config file */ + private $settings = array("password", "default", "sessionTimeout", + "logLevel", "logDestination", "allowedHosts", "passwordMinLength", + "passwordMinUpper", "passwordMinLower", "passwordMinNumeric", + "passwordMinClasses", "passwordMinSymbol", 'checkedRulesCount', + 'passwordMustNotContainUser', 'passwordMustNotContain3Chars', + "mailEOL", 'errorReporting', 'encryptSession', 'allowedHostsSelfService'); + + /** + * Loads preferences from config file + */ + function __construct() { + $this->conffile = substr(__FILE__, 0, strlen(__FILE__) - 15) . "/config/config.cfg"; + // set default values + $this->sessionTimeout = 30; + $this->logLevel = LOG_NOTICE; + $this->logDestination = "SYSLOG"; + $this->allowedHosts = ""; + $this->allowedHostsSelfService = ''; + $this->encryptSession = 'true'; + $this->reload(); + } + + /** + * Reloads preferences from config file config.cfg + * + * @return boolean true if file was readable + */ + private function reload() { + if (is_file($this->conffile) == True) { + $file = @fopen($this->conffile, "r"); + if (!$file) return false; // abort if file is not readable + while (!feof($file)) { + $line = fgets($file, 1024); + $line = trim($line); // remove spaces at the beginning and end + if (($line == "")||($line[0] == "#")) continue; // ignore comments + // search keywords + for ($i = 0; $i < sizeof($this->settings); $i++) { + $keyword = $this->settings[$i]; + $keylen = strlen($keyword); + if (strtolower(substr($line, 0, $keylen + 2)) == strtolower($keyword . ": ")) { + $this->$keyword = substr($line, $keylen + 2, strlen($line) - $keylen - 2); + break; + } + } + } + fclose($file); + } + return true; + } + + /** + * Saves preferences to config file config.cfg + */ + public function save() { + if (is_file($this->conffile) == True) { + $file = fopen($this->conffile, "r"); + $file_array = array(); + // read config file + while (!feof($file)) { + array_push($file_array, fgets($file, 1024)); + } + fclose($file); + // generate new configuration file + $saved = array(); + for ($i = 0; $i < sizeof($file_array); $i++) { + $line = trim($file_array[$i]); + if (($line == "")||($line[0] == "#")) continue; // ignore comments and empty lines + // search keywords + for ($k = 0; $k < sizeof($this->settings); $k++) { + $keyword = $this->settings[$k]; + $keylen = strlen($keyword); + if (strtolower(substr($line, 0, $keylen + 1)) == strtolower($keyword . ":")) { + $file_array[$i] = $keyword . ": " . $this->$keyword . "\n"; + $saved[] = $keyword; // mark keyword as saved + break; + } + } + } + } + // check if we have to add new entries (e.g. if user upgraded LAM and has an old config file) + if (!in_array("password", $saved)) array_push($file_array, "\n\n# password to add/delete/rename configuration profiles\n" . "password: " . $this->password); + if (!in_array("default", $saved)) array_push($file_array, "\n\n# default profile, without \".conf\"\n" . "default: " . $this->default); + if (!in_array("sessionTimeout", $saved)) array_push($file_array, "\n\n# session timeout in minutes\n" . "sessionTimeout: " . $this->sessionTimeout); + if (!in_array("logLevel", $saved)) array_push($file_array, "\n\n# log level\n" . "logLevel: " . $this->logLevel); + if (!in_array("logDestination", $saved)) array_push($file_array, "\n\n# log destination\n" . "logDestination: " . $this->logDestination); + if (!in_array("allowedHosts", $saved)) array_push($file_array, "\n\n# list of hosts which may access LAM\n" . "allowedHosts: " . $this->allowedHosts); + if (!in_array("allowedHostsSelfService", $saved)) array_push($file_array, "\n\n# list of hosts which may access LAM Pro self service\n" . "allowedHostsSelfService: " . $this->allowedHostsSelfService); + if (!in_array("encryptSession", $saved)) array_push($file_array, "\n\n# encrypt session data\n" . "encryptSession: " . $this->encryptSession); + if (!in_array("passwordMinLength", $saved)) array_push($file_array, "\n\n# Password: minimum password length\n" . "passwordMinLength: " . $this->passwordMinLength); + if (!in_array("passwordMinUpper", $saved)) array_push($file_array, "\n\n# Password: minimum uppercase characters\n" . "passwordMinUpper: " . $this->passwordMinUpper); + if (!in_array("passwordMinLower", $saved)) array_push($file_array, "\n\n# Password: minimum lowercase characters\n" . "passwordMinLower: " . $this->passwordMinLower); + if (!in_array("passwordMinNumeric", $saved)) array_push($file_array, "\n\n# Password: minimum numeric characters\n" . "passwordMinNumeric: " . $this->passwordMinNumeric); + if (!in_array("passwordMinSymbol", $saved)) array_push($file_array, "\n\n# Password: minimum symbolic characters\n" . "passwordMinSymbol: " . $this->passwordMinSymbol); + if (!in_array("passwordMinClasses", $saved)) array_push($file_array, "\n\n# Password: minimum character classes (0-4)\n" . "passwordMinClasses: " . $this->passwordMinClasses); + if (!in_array("checkedRulesCount", $saved)) array_push($file_array, "\n\n# Password: checked rules\n" . "checkedRulesCount: " . $this->checkedRulesCount); + if (!in_array("passwordMustNotContain3Chars", $saved)) array_push($file_array, "\n\n# Password: must not contain part of user name\n" . "passwordMustNotContain3Chars: " . $this->passwordMustNotContain3Chars); + if (!in_array("passwordMustNotContainUser", $saved)) array_push($file_array, "\n\n# Password: must not contain user name\n" . "passwordMustNotContainUser: " . $this->passwordMustNotContainUser); + if (!in_array("mailEOL", $saved)) array_push($file_array, "\n\n# Email format (default/unix)\n" . "mailEOL: " . $this->mailEOL); + if (!in_array("errorReporting", $saved)) array_push($file_array, "\n\n# PHP error reporting (default/system)\n" . "errorReporting: " . $this->errorReporting); + $file = @fopen($this->conffile, "w"); + if ($file) { + for ($i = 0; $i < sizeof($file_array); $i++) fputs($file, $file_array[$i]); + fclose($file); + } + else { + StatusMessage("ERROR", "", _("Cannot open config file!") . " (" . $this->conffile . ")"); + } + // store SSL certificate + if ($this->uploadedSSLCaCert != null) { + $sslPath = $this->getInternalSSLCaCertFileName(); + $file = @fopen($sslPath, "w"); + if ($file) { + fputs($file, $this->uploadedSSLCaCert); + fclose($file); + @chmod($sslPath, 0600); + } + else { + StatusMessage("ERROR", _("Cannot write certificate file. Please check the permissions of config/serverCerts.pem.")); + } + } + // delete SSL certificate + if ($this->delSSLCaCert === true) { + $sslPath = $this->getInternalSSLCaCertFileName(); + $result = @unlink($sslPath); + if (!$result) { + StatusMessage("ERROR", _("Cannot write certificate file. Please check the permissions of config/serverCerts.pem.")); + } + } + } + + /** + * Sets a new config password. + * + * @param String $password new password + */ + public function setPassword($password) { + mt_srand((microtime() * 1000000)); + $rand = getRandomNumber(); + $salt0 = substr(pack("h*", md5($rand)), 0, 8); + $salt = substr(pack("H*", sha1($salt0 . $password)), 0, 4); + $this->password = $this->hashPassword($password, $salt); + } + + /** + * Checks if the given password matches. + * + * @param String $password password + * @return boolean true, if password matches + */ + public function checkPassword($password) { + if (substr($this->password, 0, 6) == "{SSHA}") { + // check hashed password + $value = substr($this->password, 6); + $parts = explode(" ", $value); + $salt = base64_decode($parts[1]); + return ($this->hashPassword($password, $salt) === $this->password); + } + else { + // old nonhashed password + return ($password === $this->password); + } + } + + /** + * Returns the hashed password. + * + * @param String $password password + * @param String $salt salt + * @return String hash value + */ + private function hashPassword($password, $salt) { + return "{SSHA}" . base64_encode(convertHex2bin(sha1($password . $salt))) . " " . base64_encode($salt); + } + + /** + * Returns if the configuration file is writable. + * + * @return boolean writable + */ + public function isWritable() { + return is_writeable($this->conffile); + } + + /** + * Returns if the configuration file is existing. + * + * @return boolean exists + */ + public function isConfigFileExisting() { + return file_exists($this->conffile); + } + + /** + * Returns the path to the SSL CA certificate file that overrides the system certificates. + * + * @return String path to certificate file or null if certificate is not overridden + */ + public function getSSLCaCertPath() { + $path = $this->getInternalSSLCaCertFileName(); + if (file_exists($path)) { + return $path; + } + return null; + } + + /** + * Returns the file name that will be used internally to store the CA file. + * + * @return String file name + */ + private function getInternalSSLCaCertFileName() { + return dirname(__FILE__) . '/../config/serverCerts.pem'; + } + + /** + * Uploads a new SSL CA cert. + * + * @param String $cert file content in DER/PEM format + * @return mixed TRUE if format is correct, error message if file is not accepted + */ + public function uploadSSLCaCert($cert) { + if (strpos($cert, '-----BEGIN CERTIFICATE-----') === false) { + $pem = @chunk_split(@base64_encode($cert), 64, "\n"); + $cert = "-----BEGIN CERTIFICATE-----\n" . $pem . "-----END CERTIFICATE-----\n"; + } + else { + // remove any junk before first "-----BEGIN CERTIFICATE-----" + $pos = strpos($cert, '-----BEGIN CERTIFICATE-----'); + $cert = substr($cert, $pos); + } + $pemData = @openssl_x509_parse($cert); + if ($pemData === false) { + return _('Please provide a file in DER or PEM format.'); + } + $existingCerts = $this->getSSLCaCertificateContent(); + if (!empty($existingCerts)) { + // merge with existing certificates + $existingList = $this->splitSSLCaCertificateContent($existingCerts); + $newList = $this->splitSSLCaCertificateContent($cert); + $this->uploadedSSLCaCert = implode("\n", array_unique(array_merge($existingList, $newList))); + } + else { + $this->uploadedSSLCaCert = $cert; + } + $this->delSSLCaCert = false; + return true; + } + + /** + * Returns the name of a temporary file in tmp that contains the SSL certificate. + * The file contains either the stored data in serverCerts or the uploaded data. + * + * @return String file name or null if no certificate was set + */ + public function getSSLCaCertTempFileName() { + if ($this->delSSLCaCert) { + return null; + } + // get certificate data + $content = $this->getSSLCaCertificateContent(); + if ($content == null) { + return null; + } + // write to temp file + $fileName = time() . getRandomNumber() . '.pem'; + $path = dirname(__FILE__) . '/../tmp/' . $fileName; + $handle = @fopen($path, "wb"); + @chmod($path, 0600); + if ($handle) { + $content = fputs($handle, $content); + fclose($handle); + } + else { + return null; + } + return $fileName; + } + + /** + * Marks a single or all SSL CA certificate files for deletion. + * The changes take effect on save(). + * + * @param int $index certificate index, null deletes all certificates (default: null) + */ + public function deleteSSLCaCert($index = null) { + if ($index == null) { + // delete all + $this->delSSLCaCert = true; + return; + } + $content = $this->getSSLCaCertificateContent(); + $list = $this->splitSSLCaCertificateContent($content); + unset($list[$index]); + if (sizeof($list) < 1) { + $this->delSSLCaCert = true; + $this->uploadedSSLCaCert = null; + } + else { + $this->uploadedSSLCaCert = implode("\n", $list); + } + } + + /** + * Returns a list of all CA certificates. + * + * @return array list of certificates as output of openssl_x509_parse() + */ + public function getSSLCaCertificates() { + if ($this->delSSLCaCert) { + return array(); + } + $content = $this->getSSLCaCertificateContent(); + if (empty($content)) { + return array(); + } + $list = $this->splitSSLCaCertificateContent($content); + for ($i = 0; $i < sizeof($list); $i++) { + $list[$i] = @openssl_x509_parse($list[$i]); + } + return $list; + } + + /** + * Returns the content of the certificate file or uploaded data. + * + * @return String null or certificate content + */ + private function getSSLCaCertificateContent() { + $content = null; + if ($this->delSSLCaCert) { + return null; + } + if ($this->uploadedSSLCaCert != null) { + $content = $this->uploadedSSLCaCert; + } + elseif ($this->getSSLCaCertPath() != null) { + $path = $this->getSSLCaCertPath(); + $handle = @fopen($path, "r"); + if ($handle) { + $content = fread($handle, 10000000); + fclose($handle); + } + } + return $content; + } + + /** + * Splits the certificate content into single PEM data chunks. + * + * @param String $content PEM file content + * @return array one element for each certificate chunk + */ + private function splitSSLCaCertificateContent($content) { + if (empty($content)) { + return array(); + } + $content = str_replace("\n\n", "\n", $content); + if (empty($content)) { + return array(); + } + if (!(strpos($content, '-----BEGIN CERTIFICATE-----') === 0)) { + return array(); + } + $lines = explode("\n", $content); + $list = array(); + $pos = -1; + foreach ($lines as $line) { + if (strpos($line, '-----BEGIN CERTIFICATE-----') === 0) { + $pos++; + } + if (!isset($list[$pos])) { + $list[$pos] = ''; + } + $list[$pos] .= $line . "\n"; + } + return $list; + } + +} + +?> diff --git a/lam/lib/createntlm.inc b/lam/lib/createntlm.inc new file mode 100644 index 00000000..502579b8 --- /dev/null +++ b/lam/lib/createntlm.inc @@ -0,0 +1,376 @@ +permute($key, $this->perm1, 56); + + $c = array(); + $d = array(); + for ($i = 0; $i < 28; $i++) { + $c[$i] = $pk1[$i]; + $d[$i] = $pk1[28 + $i]; + } + + for ($i = 0; $i < 16; $i++) { + $c = $this->lshift($this->sc[$i], $c); + $d = $this->lshift($this->sc[$i], $d); + + $cd = $c; + for ($k = 0; $k < sizeof($d); $k++) $cd[] = $d[$k]; + $ki[$i] = $this->permute($cd, $this->perm2, 48); + } + + $pd1 = $this->permute($in, $this->perm3, 64); + + $l = array(); + $r = array(); + for ($i = 0; $i < 32; $i++) { + $l[$i] = $pd1[$i]; + $r[$i] = $pd1[32 + $i]; + } + + for ($i = 0; $i < 16; $i++) { + $er = $this->permute($r, $this->perm4, 48); + if ($forw) $erk = $this->mxor($er, $ki[$i]); + else $erk = $this->mxor($er, $ki[15 - $i]); + + for ($j = 0; $j < 8; $j++) { + for ($k = 0; $k < 6; $k++) { + $b[$j][$k] = $erk[($j * 6) + $k]; + } + } + for ($j = 0; $j < 8; $j++) { + $m = array(); + $n = array(); + $m = ($b[$j][0] << 1) | $b[$j][5]; + $n = ($b[$j][1] << 3) | ($b[$j][2] << 2) | ($b[$j][3] << 1) | $b[$j][4]; + + for ($k = 0; $k < 4; $k++) { + $b[$j][$k]=($this->sbox[$j][$m][$n] & (1 << (3-$k)))?1:0; + } + } + + for ($j = 0; $j < 8; $j++) { + for ($k = 0; $k < 4; $k++) { + $cb[($j * 4) + $k] = $b[$j][$k]; + } + } + $pcb = $this->permute($cb, $this->perm5, 32); + $r2 = $this->mxor($l, $pcb); + for ($k = 0; $k < 32; $k++) $l[$k] = $r[$k]; + for ($k = 0; $k < 32; $k++) $r[$k] = $r2[$k]; + } + $rl = $r; + for ($i = 0; $i < sizeof($l); $i++) $rl[] = $l[$i]; + return $this->permute($rl, $this->perm6, 64); + } + + /** + * str_to_key + * + * @param string $str + * @return string key + */ + private function str_to_key($str) { + $key[0] = $this->unsigned_shift_r($str[0], 1); + $key[1] = (($str[0]&0x01)<<6) | $this->unsigned_shift_r($str[1], 2); + $key[2] = (($str[1]&0x03)<<5) | $this->unsigned_shift_r($str[2], 3); + $key[3] = (($str[2]&0x07)<<4) | $this->unsigned_shift_r($str[3], 4); + $key[4] = (($str[3]&0x0F)<<3) | $this->unsigned_shift_r($str[4], 5); + $key[5] = (($str[4]&0x1F)<<2) | $this->unsigned_shift_r($str[5], 6); + $key[6] = (($str[5]&0x3F)<<1) | $this->unsigned_shift_r($str[6], 7); + $key[7] = $str[6]&0x7F; + for ($i = 0; $i < 8; $i++) { + $key[$i] = ($key[$i] << 1); + } + return $key; + } + + /** + * smb_hash + * + * @param unknown_type $in + * @param unknown_type $key + * @param unknown_type $forw + * @return unknown + */ + private function smb_hash($in, $key, $forw){ + $key2 = $this->str_to_key($key); + + for ($i = 0; $i < 64; $i++) { + $inb[$i] = ($in[$i/8] & (1<<(7-($i%8)))) ? 1:0; + $keyb[$i] = ($key2[$i/8] & (1<<(7-($i%8)))) ? 1:0; + $outb[$i] = 0; + } + $outb = $this->dohash($inb, $keyb, $forw); + for ($i = 0; $i < 8; $i++) { + $out[$i] = 0; + } + for ($i = 0; $i < 65; $i++) { + if ( $outb[$i] ) { + $out[$i/8] |= (1<<(7-($i%8))); + } + } + return $out; + } + + /** + * E_P16 + * + * @param unknown_type $in + * @return unknown + */ + private function E_P16($in) { + $p14 = array_values(unpack("C*",$in)); + $sp8 = array(0x4b, 0x47, 0x53, 0x21, 0x40, 0x23, 0x24, 0x25); + $p14_1 = array(); + $p14_2 = array(); + for ($i = 0; $i < 7; $i++) { + $p14_1[$i] = $p14[$i]; + $p14_2[$i] = $p14[$i + 7]; + } + $p16_1 = $this->smb_hash($sp8, $p14_1, true); + $p16_2 = $this->smb_hash($sp8, $p14_2, true); + $p16 = $p16_1; + for ($i = 0; $i < sizeof($p16_2); $i++) { + $p16[] = $p16_2[$i]; + } + return $p16; + } + + /** + * Calculates the LM hash of a given password. + * + * @param string $password password + * @return string hash value + */ + public function lmhash($password = "") { + $password = strtoupper($password); + $password = substr($password,0,14); + $password = str_pad($password, 14, chr(0)); + $p16 = $this->E_P16($password); + for ($i = 0; $i < sizeof($p16); $i++) { + $p16[$i] = sprintf("%02X", $p16[$i]); + } + return join("", $p16); + } + + /** + * Calculates the NT hash of a given password. + * + * @param string $password password + * @return string hash value + */ + public function nthash($password = "") { + return strtoupper(hash('md4', iconv("UTF-8","UTF-16LE",$password))); + } + + /** + * Unsigned shift operation for 32bit values. + * + * PHP 4 only supports signed shifts by default. + */ + private function unsigned_shift_r($a, $b) { + $z = 0x80000000; + if ($z & $a) { + $a = ($a >> 1); + $a &= (~$z); + $a |= 0x40000000; + $a = ($a >> ($b - 1)); + } + else { + $a = ($a >> $b); + } + return $a; + } + +} + +?> diff --git a/lam/lib/font/Vera.ttf b/lam/lib/font/Vera.ttf new file mode 100644 index 00000000..58cd6b5e Binary files /dev/null and b/lam/lib/font/Vera.ttf differ diff --git a/lam/lib/font/VeraBI.ttf b/lam/lib/font/VeraBI.ttf new file mode 100644 index 00000000..b55eee39 Binary files /dev/null and b/lam/lib/font/VeraBI.ttf differ diff --git a/lam/lib/font/VeraBd.ttf b/lam/lib/font/VeraBd.ttf new file mode 100644 index 00000000..51d6111d Binary files /dev/null and b/lam/lib/font/VeraBd.ttf differ diff --git a/lam/lib/font/VeraIt.ttf b/lam/lib/font/VeraIt.ttf new file mode 100644 index 00000000..cc23c9ef Binary files /dev/null and b/lam/lib/font/VeraIt.ttf differ diff --git a/lam/lib/font/vera.ctg.z b/lam/lib/font/vera.ctg.z new file mode 100644 index 00000000..904f8fae Binary files /dev/null and b/lam/lib/font/vera.ctg.z differ diff --git a/lam/lib/font/vera.php b/lam/lib/font/vera.php new file mode 100644 index 00000000..d588af2c --- /dev/null +++ b/lam/lib/font/vera.php @@ -0,0 +1,59 @@ +928,'Descent'=>-236,'CapHeight'=>928,'Flags'=>32,'FontBBox'=>'[-183 -236 1287 928]','ItalicAngle'=>0,'StemV'=>70,'MissingWidth'=>600); +$up=-104; +$ut=70; +$cw=array( + 270=>600, 32=>318, 33=>401, 34=>460, 35=>838, 36=>636, 37=>950, 38=>780, 39=>275, 40=>390, 41=>390, 42=>500, 43=>838, 44=>318, 45=>361, 46=>318, + 47=>337, 48=>636, 49=>636, 50=>636, 51=>636, 52=>636, 53=>636, 54=>636, 55=>636, 56=>636, 57=>636, 58=>337, 59=>337, 60=>838, 61=>838, 62=>838, + 63=>531, 64=>1000, 65=>684, 66=>686, 67=>698, 68=>770, 69=>632, 70=>575, 71=>775, 72=>752, 73=>295, 74=>295, 75=>656, 76=>557, 77=>863, 78=>748, + 79=>787, 80=>603, 81=>787, 82=>695, 83=>635, 84=>611, 85=>732, 86=>684, 87=>989, 88=>685, 89=>611, 90=>685, 91=>390, 92=>337, 93=>390, 94=>838, + 95=>500, 96=>500, 97=>613, 98=>635, 99=>550, 100=>635, 101=>615, 102=>352, 103=>635, 104=>634, 105=>278, 106=>278, 107=>579, 108=>278, 109=>974, 110=>634, + 111=>612, 112=>635, 113=>635, 114=>411, 115=>521, 116=>392, 117=>634, 118=>592, 119=>818, 120=>592, 121=>592, 122=>525, 123=>636, 124=>337, 125=>636, 126=>838, + 8364=>636, 8218=>318, 402=>636, 8222=>518, 8230=>1000, 8224=>500, 8225=>500, 710=>500, 8240=>1342, 352=>635, 8249=>400, 338=>1070, 381=>685, 8216=>318, 8217=>318, 8220=>518, + 8221=>518, 8226=>590, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>521, 8250=>400, 339=>1023, 382=>525, 376=>611, 160=>636, 161=>401, 162=>636, 163=>636, 164=>636, + 165=>636, 166=>337, 167=>500, 168=>500, 169=>1000, 170=>471, 171=>612, 172=>838, 173=>361, 174=>1000, 175=>500, 176=>500, 177=>838, 178=>401, 179=>401, 180=>500, + 181=>636, 182=>636, 183=>318, 184=>500, 185=>401, 186=>471, 187=>612, 188=>969, 189=>969, 190=>969, 191=>531, 192=>684, 193=>684, 194=>684, 195=>684, 196=>684, + 197=>684, 198=>974, 199=>698, 200=>632, 201=>632, 202=>632, 203=>632, 204=>295, 205=>295, 206=>295, 207=>295, 208=>775, 209=>748, 210=>787, 211=>787, 212=>787, + 213=>787, 214=>787, 215=>838, 216=>787, 217=>732, 218=>732, 219=>732, 220=>732, 221=>611, 222=>605, 223=>630, 224=>613, 225=>613, 226=>613, 227=>613, 228=>613, + 229=>613, 230=>982, 231=>550, 232=>615, 233=>615, 234=>615, 235=>615, 236=>278, 237=>278, 238=>278, 239=>278, 240=>612, 241=>634, 242=>612, 243=>612, 244=>612, + 245=>612, 246=>612, 247=>838, 248=>612, 249=>634, 250=>634, 251=>634, 252=>634, 253=>592, 254=>635, 255=>592, 8800=>838, 8734=>833, 8804=>838, 8805=>838, 8706=>517, + 8721=>674, 8719=>757, 960=>589, 8747=>521, 937=>764, 8730=>637, 8776=>838, 8710=>669, 9674=>494, 8725=>167, 64257=>630, 64258=>630, 305=>278, 728=>500, 729=>500, 730=>500, + 733=>500, 731=>500, 711=>500, 321=>562, 322=>284, 8722=>838, 286=>775, 287=>635, 304=>295, 350=>635, 351=>521, 262=>698, 263=>550, 268=>698, 269=>550, 273=>635, + 8729=>318); +$enc=''; +$diff=''; +$file='vera.z'; +$ctg='vera.ctg.z'; +$originalsize=65932; +?> diff --git a/lam/lib/font/vera.z b/lam/lib/font/vera.z new file mode 100644 index 00000000..dc32a237 Binary files /dev/null and b/lam/lib/font/vera.z differ diff --git a/lam/lib/font/verab.ctg.z b/lam/lib/font/verab.ctg.z new file mode 100644 index 00000000..904f8fae Binary files /dev/null and b/lam/lib/font/verab.ctg.z differ diff --git a/lam/lib/font/verab.php b/lam/lib/font/verab.php new file mode 100644 index 00000000..68ceedaf --- /dev/null +++ b/lam/lib/font/verab.php @@ -0,0 +1,59 @@ +928,'Descent'=>-236,'CapHeight'=>928,'Flags'=>32,'FontBBox'=>'[-199 -236 1417 928]','ItalicAngle'=>0,'StemV'=>120,'MissingWidth'=>600); +$up=-111; +$ut=126; +$cw=array( + 270=>600, 32=>348, 33=>456, 34=>521, 35=>838, 36=>696, 37=>1002, 38=>872, 39=>306, 40=>457, 41=>457, 42=>523, 43=>838, 44=>380, 45=>415, 46=>380, + 47=>365, 48=>696, 49=>696, 50=>696, 51=>696, 52=>696, 53=>696, 54=>696, 55=>696, 56=>696, 57=>696, 58=>400, 59=>400, 60=>838, 61=>838, 62=>838, + 63=>580, 64=>1000, 65=>774, 66=>762, 67=>734, 68=>830, 69=>683, 70=>683, 71=>821, 72=>837, 73=>372, 74=>372, 75=>775, 76=>637, 77=>995, 78=>837, + 79=>850, 80=>733, 81=>850, 82=>770, 83=>720, 84=>682, 85=>812, 86=>774, 87=>1103, 88=>771, 89=>724, 90=>725, 91=>457, 92=>365, 93=>457, 94=>838, + 95=>500, 96=>500, 97=>675, 98=>716, 99=>593, 100=>716, 101=>678, 102=>435, 103=>716, 104=>712, 105=>343, 106=>343, 107=>665, 108=>343, 109=>1042, 110=>712, + 111=>687, 112=>716, 113=>716, 114=>493, 115=>595, 116=>478, 117=>712, 118=>652, 119=>924, 120=>645, 121=>652, 122=>582, 123=>712, 124=>365, 125=>712, 126=>838, + 8364=>696, 8218=>380, 402=>696, 8222=>657, 8230=>1000, 8224=>500, 8225=>500, 710=>500, 8240=>1440, 352=>720, 8249=>412, 338=>1167, 381=>725, 8216=>380, 8217=>380, 8220=>657, + 8221=>657, 8226=>639, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>595, 8250=>412, 339=>1094, 382=>582, 376=>724, 160=>696, 161=>456, 162=>696, 163=>696, 164=>636, + 165=>696, 166=>365, 167=>500, 168=>500, 169=>1000, 170=>564, 171=>646, 172=>838, 173=>415, 174=>1000, 175=>500, 176=>500, 177=>838, 178=>438, 179=>438, 180=>500, + 181=>736, 182=>636, 183=>380, 184=>500, 185=>438, 186=>564, 187=>646, 188=>1035, 189=>1035, 190=>1035, 191=>580, 192=>774, 193=>774, 194=>774, 195=>774, 196=>774, + 197=>774, 198=>1085, 199=>734, 200=>683, 201=>683, 202=>683, 203=>683, 204=>372, 205=>372, 206=>372, 207=>372, 208=>838, 209=>837, 210=>850, 211=>850, 212=>850, + 213=>850, 214=>850, 215=>838, 216=>850, 217=>812, 218=>812, 219=>812, 220=>812, 221=>724, 222=>738, 223=>719, 224=>675, 225=>675, 226=>675, 227=>675, 228=>675, + 229=>675, 230=>1048, 231=>593, 232=>678, 233=>678, 234=>678, 235=>678, 236=>343, 237=>343, 238=>343, 239=>343, 240=>687, 241=>712, 242=>687, 243=>687, 244=>687, + 245=>687, 246=>687, 247=>838, 248=>687, 249=>712, 250=>712, 251=>712, 252=>712, 253=>652, 254=>716, 255=>652, 8800=>838, 8734=>833, 8804=>838, 8805=>838, 8706=>544, + 8721=>718, 8719=>787, 960=>644, 8747=>610, 937=>769, 8730=>667, 8776=>838, 8710=>697, 9674=>494, 8725=>167, 64257=>741, 64258=>741, 305=>343, 728=>500, 729=>500, 730=>500, + 733=>500, 731=>500, 711=>500, 321=>642, 322=>371, 8722=>838, 286=>821, 287=>716, 304=>372, 350=>720, 351=>595, 262=>734, 263=>593, 268=>734, 269=>593, 273=>716, + 8729=>380); +$enc=''; +$diff=''; +$file='verab.z'; +$ctg='verab.ctg.z'; +$originalsize=58716; +?> diff --git a/lam/lib/font/verab.z b/lam/lib/font/verab.z new file mode 100644 index 00000000..f5fa4d0a Binary files /dev/null and b/lam/lib/font/verab.z differ diff --git a/lam/lib/font/verabi.ctg.z b/lam/lib/font/verabi.ctg.z new file mode 100644 index 00000000..904f8fae Binary files /dev/null and b/lam/lib/font/verabi.ctg.z differ diff --git a/lam/lib/font/verabi.php b/lam/lib/font/verabi.php new file mode 100644 index 00000000..c447f5a2 --- /dev/null +++ b/lam/lib/font/verabi.php @@ -0,0 +1,59 @@ +928,'Descent'=>-236,'CapHeight'=>928,'Flags'=>96,'FontBBox'=>'[-278 -236 1401 928]','ItalicAngle'=>-11,'StemV'=>120,'MissingWidth'=>600); +$up=-111; +$ut=126; +$cw=array( + 270=>600, 32=>348, 33=>456, 34=>521, 35=>696, 36=>696, 37=>1002, 38=>872, 39=>306, 40=>457, 41=>457, 42=>523, 43=>838, 44=>380, 45=>415, 46=>380, + 47=>365, 48=>696, 49=>696, 50=>696, 51=>696, 52=>696, 53=>696, 54=>696, 55=>696, 56=>696, 57=>696, 58=>400, 59=>400, 60=>838, 61=>838, 62=>838, + 63=>580, 64=>1000, 65=>774, 66=>762, 67=>734, 68=>830, 69=>683, 70=>683, 71=>821, 72=>837, 73=>372, 74=>372, 75=>775, 76=>637, 77=>995, 78=>837, + 79=>850, 80=>733, 81=>850, 82=>770, 83=>720, 84=>682, 85=>812, 86=>774, 87=>1103, 88=>771, 89=>724, 90=>725, 91=>457, 92=>365, 93=>457, 94=>838, + 95=>500, 96=>500, 97=>675, 98=>716, 99=>593, 100=>716, 101=>678, 102=>435, 103=>716, 104=>712, 105=>343, 106=>343, 107=>665, 108=>343, 109=>1042, 110=>712, + 111=>687, 112=>716, 113=>716, 114=>493, 115=>595, 116=>478, 117=>712, 118=>652, 119=>924, 120=>645, 121=>652, 122=>582, 123=>712, 124=>365, 125=>712, 126=>838, + 8364=>696, 8218=>380, 402=>696, 8222=>644, 8230=>1000, 8224=>500, 8225=>500, 710=>500, 8240=>1454, 352=>720, 8249=>412, 338=>1167, 381=>725, 8216=>380, 8217=>380, 8220=>644, + 8221=>644, 8226=>639, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>595, 8250=>412, 339=>1094, 382=>582, 376=>724, 160=>696, 161=>456, 162=>696, 163=>696, 164=>636, + 165=>696, 166=>365, 167=>500, 168=>500, 169=>1000, 170=>564, 171=>650, 172=>838, 173=>415, 174=>1000, 175=>500, 176=>500, 177=>838, 178=>438, 179=>438, 180=>500, + 181=>736, 182=>636, 183=>380, 184=>500, 185=>438, 186=>564, 187=>650, 188=>1065, 189=>1065, 190=>1065, 191=>580, 192=>774, 193=>774, 194=>774, 195=>774, 196=>774, + 197=>774, 198=>1085, 199=>734, 200=>683, 201=>683, 202=>683, 203=>683, 204=>372, 205=>372, 206=>372, 207=>372, 208=>845, 209=>837, 210=>850, 211=>850, 212=>850, + 213=>850, 214=>850, 215=>838, 216=>850, 217=>812, 218=>812, 219=>812, 220=>812, 221=>724, 222=>742, 223=>719, 224=>675, 225=>675, 226=>675, 227=>675, 228=>675, + 229=>675, 230=>1048, 231=>593, 232=>678, 233=>678, 234=>678, 235=>678, 236=>343, 237=>343, 238=>343, 239=>343, 240=>687, 241=>712, 242=>687, 243=>687, 244=>687, + 245=>687, 246=>687, 247=>838, 248=>687, 249=>712, 250=>712, 251=>712, 252=>712, 253=>652, 254=>716, 255=>652, 8800=>838, 8734=>833, 8804=>838, 8805=>838, 8706=>544, + 8721=>718, 8719=>787, 960=>644, 8747=>610, 937=>769, 8730=>667, 8776=>838, 8710=>697, 9674=>494, 8725=>167, 64257=>787, 64258=>787, 305=>343, 728=>500, 729=>500, 730=>500, + 733=>500, 731=>500, 711=>500, 321=>660, 322=>375, 8722=>838, 286=>821, 287=>716, 304=>372, 350=>720, 351=>595, 262=>734, 263=>593, 268=>734, 269=>593, 273=>716, + 8729=>380); +$enc=''; +$diff=''; +$file='verabi.z'; +$ctg='verabi.ctg.z'; +$originalsize=63208; +?> diff --git a/lam/lib/font/verabi.z b/lam/lib/font/verabi.z new file mode 100644 index 00000000..2ee4581d Binary files /dev/null and b/lam/lib/font/verabi.z differ diff --git a/lam/lib/font/verai.ctg.z b/lam/lib/font/verai.ctg.z new file mode 100644 index 00000000..904f8fae Binary files /dev/null and b/lam/lib/font/verai.ctg.z differ diff --git a/lam/lib/font/verai.php b/lam/lib/font/verai.php new file mode 100644 index 00000000..48988598 --- /dev/null +++ b/lam/lib/font/verai.php @@ -0,0 +1,59 @@ +928,'Descent'=>-236,'CapHeight'=>928,'Flags'=>96,'FontBBox'=>'[-262 -236 1259 928]','ItalicAngle'=>-11,'StemV'=>70,'MissingWidth'=>600); +$up=-104; +$ut=70; +$cw=array( + 270=>600, 32=>318, 33=>401, 34=>460, 35=>838, 36=>636, 37=>950, 38=>780, 39=>275, 40=>390, 41=>390, 42=>500, 43=>838, 44=>318, 45=>361, 46=>318, + 47=>337, 48=>636, 49=>636, 50=>636, 51=>636, 52=>636, 53=>636, 54=>636, 55=>636, 56=>636, 57=>636, 58=>337, 59=>337, 60=>838, 61=>838, 62=>838, + 63=>531, 64=>1000, 65=>684, 66=>686, 67=>698, 68=>770, 69=>632, 70=>575, 71=>775, 72=>752, 73=>295, 74=>295, 75=>656, 76=>557, 77=>863, 78=>748, + 79=>787, 80=>603, 81=>787, 82=>695, 83=>635, 84=>611, 85=>732, 86=>684, 87=>989, 88=>685, 89=>611, 90=>685, 91=>390, 92=>337, 93=>390, 94=>838, + 95=>500, 96=>500, 97=>613, 98=>635, 99=>550, 100=>635, 101=>615, 102=>352, 103=>635, 104=>634, 105=>278, 106=>278, 107=>579, 108=>278, 109=>974, 110=>634, + 111=>612, 112=>635, 113=>635, 114=>411, 115=>521, 116=>392, 117=>634, 118=>592, 119=>818, 120=>592, 121=>592, 122=>525, 123=>636, 124=>337, 125=>636, 126=>838, + 8364=>636, 8218=>318, 402=>636, 8222=>518, 8230=>1000, 8224=>500, 8225=>500, 710=>500, 8240=>1350, 352=>635, 8249=>400, 338=>1070, 381=>685, 8216=>318, 8217=>318, 8220=>518, + 8221=>518, 8226=>590, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>521, 8250=>400, 339=>1028, 382=>525, 376=>611, 160=>636, 161=>401, 162=>636, 163=>636, 164=>636, + 165=>636, 166=>337, 167=>500, 168=>500, 169=>1000, 170=>471, 171=>617, 172=>838, 173=>361, 174=>1000, 175=>500, 176=>500, 177=>838, 178=>401, 179=>401, 180=>500, + 181=>636, 182=>636, 183=>318, 184=>500, 185=>401, 186=>471, 187=>617, 188=>969, 189=>969, 190=>969, 191=>531, 192=>684, 193=>684, 194=>684, 195=>684, 196=>684, + 197=>684, 198=>974, 199=>698, 200=>632, 201=>632, 202=>632, 203=>632, 204=>295, 205=>295, 206=>295, 207=>295, 208=>775, 209=>748, 210=>787, 211=>787, 212=>787, + 213=>787, 214=>787, 215=>838, 216=>787, 217=>732, 218=>732, 219=>732, 220=>732, 221=>611, 222=>608, 223=>630, 224=>613, 225=>613, 226=>613, 227=>613, 228=>613, + 229=>613, 230=>995, 231=>550, 232=>615, 233=>615, 234=>615, 235=>615, 236=>278, 237=>278, 238=>278, 239=>278, 240=>612, 241=>634, 242=>612, 243=>612, 244=>612, + 245=>612, 246=>612, 247=>838, 248=>612, 249=>634, 250=>634, 251=>634, 252=>634, 253=>592, 254=>635, 255=>592, 8800=>838, 8734=>833, 8804=>838, 8805=>838, 8706=>517, + 8721=>674, 8719=>757, 960=>589, 8747=>521, 937=>764, 8730=>637, 8776=>838, 8710=>669, 9674=>494, 8725=>167, 64257=>646, 64258=>646, 305=>278, 728=>500, 729=>500, 730=>500, + 733=>500, 731=>500, 711=>500, 321=>562, 322=>287, 8722=>838, 286=>775, 287=>635, 304=>295, 350=>635, 351=>521, 262=>698, 263=>550, 268=>698, 269=>550, 273=>635, + 8729=>318); +$enc=''; +$diff=''; +$file='verai.z'; +$ctg='verai.ctg.z'; +$originalsize=63684; +?> diff --git a/lam/lib/font/verai.z b/lam/lib/font/verai.z new file mode 100644 index 00000000..b1721970 Binary files /dev/null and b/lam/lib/font/verai.z differ diff --git a/lam/lib/fpdf.php b/lam/lib/fpdf.php new file mode 100644 index 00000000..308406ba --- /dev/null +++ b/lam/lib/fpdf.php @@ -0,0 +1,1804 @@ +_dochecks(); + // Initialization of properties + $this->page = 0; + $this->n = 2; + $this->buffer = ''; + $this->pages = array(); + $this->PageSizes = array(); + $this->state = 0; + $this->fonts = array(); + $this->FontFiles = array(); + $this->diffs = array(); + $this->images = array(); + $this->links = array(); + $this->InHeader = false; + $this->InFooter = false; + $this->lasth = 0; + $this->FontFamily = ''; + $this->FontStyle = ''; + $this->FontSizePt = 12; + $this->underline = false; + $this->DrawColor = '0 G'; + $this->FillColor = '0 g'; + $this->TextColor = '0 g'; + $this->ColorFlag = false; + $this->ws = 0; + // Font path + if(defined('FPDF_FONTPATH')) + { + $this->fontpath = FPDF_FONTPATH; + if(substr($this->fontpath,-1)!='/' && substr($this->fontpath,-1)!='\\') + $this->fontpath .= '/'; + } + elseif(is_dir(dirname(__FILE__).'/font')) + $this->fontpath = dirname(__FILE__).'/font/'; + else + $this->fontpath = ''; + // Core fonts + $this->CoreFonts = array('courier', 'helvetica', 'times', 'symbol', 'zapfdingbats'); + // Scale factor + if($unit=='pt') + $this->k = 1; + elseif($unit=='mm') + $this->k = 72/25.4; + elseif($unit=='cm') + $this->k = 72/2.54; + elseif($unit=='in') + $this->k = 72; + else + $this->Error('Incorrect unit: '.$unit); + // Page sizes + $this->StdPageSizes = array('a3'=>array(841.89,1190.55), 'a4'=>array(595.28,841.89), 'a5'=>array(420.94,595.28), + 'letter'=>array(612,792), 'legal'=>array(612,1008)); + $size = $this->_getpagesize($size); + $this->DefPageSize = $size; + $this->CurPageSize = $size; + // Page orientation + $orientation = strtolower($orientation); + if($orientation=='p' || $orientation=='portrait') + { + $this->DefOrientation = 'P'; + $this->w = $size[0]; + $this->h = $size[1]; + } + elseif($orientation=='l' || $orientation=='landscape') + { + $this->DefOrientation = 'L'; + $this->w = $size[1]; + $this->h = $size[0]; + } + else + $this->Error('Incorrect orientation: '.$orientation); + $this->CurOrientation = $this->DefOrientation; + $this->wPt = $this->w*$this->k; + $this->hPt = $this->h*$this->k; + // Page margins (1 cm) + $margin = 28.35/$this->k; + $this->SetMargins($margin,$margin); + // Interior cell margin (1 mm) + $this->cMargin = $margin/10; + // Line width (0.2 mm) + $this->LineWidth = .567/$this->k; + // Automatic page break + $this->SetAutoPageBreak(true,2*$margin); + // Default display mode + $this->SetDisplayMode('default'); + // Enable compression + $this->SetCompression(true); + // Set default PDF version number + $this->PDFVersion = '1.3'; +} + +function SetMargins($left, $top, $right=null) +{ + // Set left, top and right margins + $this->lMargin = $left; + $this->tMargin = $top; + if($right===null) + $right = $left; + $this->rMargin = $right; +} + +function SetLeftMargin($margin) +{ + // Set left margin + $this->lMargin = $margin; + if($this->page>0 && $this->x<$margin) + $this->x = $margin; +} + +function SetTopMargin($margin) +{ + // Set top margin + $this->tMargin = $margin; +} + +function SetRightMargin($margin) +{ + // Set right margin + $this->rMargin = $margin; +} + +function SetAutoPageBreak($auto, $margin=0) +{ + // Set auto page break mode and triggering margin + $this->AutoPageBreak = $auto; + $this->bMargin = $margin; + $this->PageBreakTrigger = $this->h-$margin; +} + +function SetDisplayMode($zoom, $layout='default') +{ + // Set display mode in viewer + if($zoom=='fullpage' || $zoom=='fullwidth' || $zoom=='real' || $zoom=='default' || !is_string($zoom)) + $this->ZoomMode = $zoom; + else + $this->Error('Incorrect zoom display mode: '.$zoom); + if($layout=='single' || $layout=='continuous' || $layout=='two' || $layout=='default') + $this->LayoutMode = $layout; + else + $this->Error('Incorrect layout display mode: '.$layout); +} + +function SetCompression($compress) +{ + // Set page compression + if(function_exists('gzcompress')) + $this->compress = $compress; + else + $this->compress = false; +} + +function SetTitle($title, $isUTF8=false) +{ + // Title of document + if($isUTF8) + $title = $this->_UTF8toUTF16($title); + $this->title = $title; +} + +function SetSubject($subject, $isUTF8=false) +{ + // Subject of document + if($isUTF8) + $subject = $this->_UTF8toUTF16($subject); + $this->subject = $subject; +} + +function SetAuthor($author, $isUTF8=false) +{ + // Author of document + if($isUTF8) + $author = $this->_UTF8toUTF16($author); + $this->author = $author; +} + +function SetKeywords($keywords, $isUTF8=false) +{ + // Keywords of document + if($isUTF8) + $keywords = $this->_UTF8toUTF16($keywords); + $this->keywords = $keywords; +} + +function SetCreator($creator, $isUTF8=false) +{ + // Creator of document + if($isUTF8) + $creator = $this->_UTF8toUTF16($creator); + $this->creator = $creator; +} + +function AliasNbPages($alias='{nb}') +{ + // Define an alias for total number of pages + $this->AliasNbPages = $alias; +} + +function Error($msg) +{ + // Fatal error + die('FPDF error: '.$msg); +} + +function Open() +{ + // Begin document + $this->state = 1; +} + +function Close() +{ + // Terminate document + if($this->state==3) + return; + if($this->page==0) + $this->AddPage(); + // Page footer + $this->InFooter = true; + $this->Footer(); + $this->InFooter = false; + // Close page + $this->_endpage(); + // Close document + $this->_enddoc(); +} + +function AddPage($orientation='', $size='') +{ + // Start a new page + if($this->state==0) + $this->Open(); + $family = $this->FontFamily; + $style = $this->FontStyle.($this->underline ? 'U' : ''); + $fontsize = $this->FontSizePt; + $lw = $this->LineWidth; + $dc = $this->DrawColor; + $fc = $this->FillColor; + $tc = $this->TextColor; + $cf = $this->ColorFlag; + if($this->page>0) + { + // Page footer + $this->InFooter = true; + $this->Footer(); + $this->InFooter = false; + // Close page + $this->_endpage(); + } + // Start new page + $this->_beginpage($orientation,$size); + // Set line cap style to square + $this->_out('2 J'); + // Set line width + $this->LineWidth = $lw; + $this->_out(sprintf('%.2F w',$lw*$this->k)); + // Set font + if($family) + $this->SetFont($family,$style,$fontsize); + // Set colors + $this->DrawColor = $dc; + if($dc!='0 G') + $this->_out($dc); + $this->FillColor = $fc; + if($fc!='0 g') + $this->_out($fc); + $this->TextColor = $tc; + $this->ColorFlag = $cf; + // Page header + $this->InHeader = true; + $this->Header(); + $this->InHeader = false; + // Restore line width + if($this->LineWidth!=$lw) + { + $this->LineWidth = $lw; + $this->_out(sprintf('%.2F w',$lw*$this->k)); + } + // Restore font + if($family) + $this->SetFont($family,$style,$fontsize); + // Restore colors + if($this->DrawColor!=$dc) + { + $this->DrawColor = $dc; + $this->_out($dc); + } + if($this->FillColor!=$fc) + { + $this->FillColor = $fc; + $this->_out($fc); + } + $this->TextColor = $tc; + $this->ColorFlag = $cf; +} + +function Header() +{ + // To be implemented in your own inherited class +} + +function Footer() +{ + // To be implemented in your own inherited class +} + +function PageNo() +{ + // Get current page number + return $this->page; +} + +function SetDrawColor($r, $g=null, $b=null) +{ + // Set color for all stroking operations + if(($r==0 && $g==0 && $b==0) || $g===null) + $this->DrawColor = sprintf('%.3F G',$r/255); + else + $this->DrawColor = sprintf('%.3F %.3F %.3F RG',$r/255,$g/255,$b/255); + if($this->page>0) + $this->_out($this->DrawColor); +} + +function SetFillColor($r, $g=null, $b=null) +{ + // Set color for all filling operations + if(($r==0 && $g==0 && $b==0) || $g===null) + $this->FillColor = sprintf('%.3F g',$r/255); + else + $this->FillColor = sprintf('%.3F %.3F %.3F rg',$r/255,$g/255,$b/255); + $this->ColorFlag = ($this->FillColor!=$this->TextColor); + if($this->page>0) + $this->_out($this->FillColor); +} + +function SetTextColor($r, $g=null, $b=null) +{ + // Set color for text + if(($r==0 && $g==0 && $b==0) || $g===null) + $this->TextColor = sprintf('%.3F g',$r/255); + else + $this->TextColor = sprintf('%.3F %.3F %.3F rg',$r/255,$g/255,$b/255); + $this->ColorFlag = ($this->FillColor!=$this->TextColor); +} + +function GetStringWidth($s) +{ + // Get width of a string in the current font + $s = (string)$s; + $cw = &$this->CurrentFont['cw']; + $w = 0; + $l = strlen($s); + for($i=0;$i<$l;$i++) + $w += $cw[$s[$i]]; + return $w*$this->FontSize/1000; +} + +function SetLineWidth($width) +{ + // Set line width + $this->LineWidth = $width; + if($this->page>0) + $this->_out(sprintf('%.2F w',$width*$this->k)); +} + +function Line($x1, $y1, $x2, $y2) +{ + // Draw a line + $this->_out(sprintf('%.2F %.2F m %.2F %.2F l S',$x1*$this->k,($this->h-$y1)*$this->k,$x2*$this->k,($this->h-$y2)*$this->k)); +} + +function Rect($x, $y, $w, $h, $style='') +{ + // Draw a rectangle + if($style=='F') + $op = 'f'; + elseif($style=='FD' || $style=='DF') + $op = 'B'; + else + $op = 'S'; + $this->_out(sprintf('%.2F %.2F %.2F %.2F re %s',$x*$this->k,($this->h-$y)*$this->k,$w*$this->k,-$h*$this->k,$op)); +} + +function AddFont($family, $style='', $file='') +{ + // Add a TrueType, OpenType or Type1 font + $family = strtolower($family); + if($file=='') + $file = str_replace(' ','',$family).strtolower($style).'.php'; + $style = strtoupper($style); + if($style=='IB') + $style = 'BI'; + $fontkey = $family.$style; + if(isset($this->fonts[$fontkey])) + return; + $info = $this->_loadfont($file); + $info['i'] = count($this->fonts)+1; + if(!empty($info['diff'])) + { + // Search existing encodings + $n = array_search($info['diff'],$this->diffs); + if(!$n) + { + $n = count($this->diffs)+1; + $this->diffs[$n] = $info['diff']; + } + $info['diffn'] = $n; + } + if(!empty($info['file'])) + { + // Embedded font + if($info['type']=='TrueType') + $this->FontFiles[$info['file']] = array('length1'=>$info['originalsize']); + else + $this->FontFiles[$info['file']] = array('length1'=>$info['size1'], 'length2'=>$info['size2']); + } + $this->fonts[$fontkey] = $info; +} + +function SetFont($family, $style='', $size=0) +{ + // Select a font; size given in points + if($family=='') + $family = $this->FontFamily; + else + $family = strtolower($family); + $style = strtoupper($style); + if(strpos($style,'U')!==false) + { + $this->underline = true; + $style = str_replace('U','',$style); + } + else + $this->underline = false; + if($style=='IB') + $style = 'BI'; + if($size==0) + $size = $this->FontSizePt; + // Test if font is already selected + if($this->FontFamily==$family && $this->FontStyle==$style && $this->FontSizePt==$size) + return; + // Test if font is already loaded + $fontkey = $family.$style; + if(!isset($this->fonts[$fontkey])) + { + // Test if one of the core fonts + if($family=='arial') + $family = 'helvetica'; + if(in_array($family,$this->CoreFonts)) + { + if($family=='symbol' || $family=='zapfdingbats') + $style = ''; + $fontkey = $family.$style; + if(!isset($this->fonts[$fontkey])) + $this->AddFont($family,$style); + } + else + $this->Error('Undefined font: '.$family.' '.$style); + } + // Select it + $this->FontFamily = $family; + $this->FontStyle = $style; + $this->FontSizePt = $size; + $this->FontSize = $size/$this->k; + $this->CurrentFont = &$this->fonts[$fontkey]; + if($this->page>0) + $this->_out(sprintf('BT /F%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt)); +} + +function SetFontSize($size) +{ + // Set font size in points + if($this->FontSizePt==$size) + return; + $this->FontSizePt = $size; + $this->FontSize = $size/$this->k; + if($this->page>0) + $this->_out(sprintf('BT /F%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt)); +} + +function AddLink() +{ + // Create a new internal link + $n = count($this->links)+1; + $this->links[$n] = array(0, 0); + return $n; +} + +function SetLink($link, $y=0, $page=-1) +{ + // Set destination of internal link + if($y==-1) + $y = $this->y; + if($page==-1) + $page = $this->page; + $this->links[$link] = array($page, $y); +} + +function Link($x, $y, $w, $h, $link) +{ + // Put a link on the page + $this->PageLinks[$this->page][] = array($x*$this->k, $this->hPt-$y*$this->k, $w*$this->k, $h*$this->k, $link); +} + +function Text($x, $y, $txt) +{ + // Output a string + $s = sprintf('BT %.2F %.2F Td (%s) Tj ET',$x*$this->k,($this->h-$y)*$this->k,$this->_escape($txt)); + if($this->underline && $txt!='') + $s .= ' '.$this->_dounderline($x,$y,$txt); + if($this->ColorFlag) + $s = 'q '.$this->TextColor.' '.$s.' Q'; + $this->_out($s); +} + +function AcceptPageBreak() +{ + // Accept automatic page break or not + return $this->AutoPageBreak; +} + +function Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link='') +{ + // Output a cell + $k = $this->k; + if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak()) + { + // Automatic page break + $x = $this->x; + $ws = $this->ws; + if($ws>0) + { + $this->ws = 0; + $this->_out('0 Tw'); + } + $this->AddPage($this->CurOrientation,$this->CurPageSize); + $this->x = $x; + if($ws>0) + { + $this->ws = $ws; + $this->_out(sprintf('%.3F Tw',$ws*$k)); + } + } + if($w==0) + $w = $this->w-$this->rMargin-$this->x; + $s = ''; + if($fill || $border==1) + { + if($fill) + $op = ($border==1) ? 'B' : 'f'; + else + $op = 'S'; + $s = sprintf('%.2F %.2F %.2F %.2F re %s ',$this->x*$k,($this->h-$this->y)*$k,$w*$k,-$h*$k,$op); + } + if(is_string($border)) + { + $x = $this->x; + $y = $this->y; + if(strpos($border,'L')!==false) + $s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,$x*$k,($this->h-($y+$h))*$k); + if(strpos($border,'T')!==false) + $s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-$y)*$k); + if(strpos($border,'R')!==false) + $s .= sprintf('%.2F %.2F m %.2F %.2F l S ',($x+$w)*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-($y+$h))*$k); + if(strpos($border,'B')!==false) + $s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-($y+$h))*$k,($x+$w)*$k,($this->h-($y+$h))*$k); + } + if($txt!=='') + { + if($align=='R') + $dx = $w-$this->cMargin-$this->GetStringWidth($txt); + elseif($align=='C') + $dx = ($w-$this->GetStringWidth($txt))/2; + else + $dx = $this->cMargin; + if($this->ColorFlag) + $s .= 'q '.$this->TextColor.' '; + $txt2 = str_replace(')','\\)',str_replace('(','\\(',str_replace('\\','\\\\',$txt))); + $s .= sprintf('BT %.2F %.2F Td (%s) Tj ET',($this->x+$dx)*$k,($this->h-($this->y+.5*$h+.3*$this->FontSize))*$k,$txt2); + if($this->underline) + $s .= ' '.$this->_dounderline($this->x+$dx,$this->y+.5*$h+.3*$this->FontSize,$txt); + if($this->ColorFlag) + $s .= ' Q'; + if($link) + $this->Link($this->x+$dx,$this->y+.5*$h-.5*$this->FontSize,$this->GetStringWidth($txt),$this->FontSize,$link); + } + if($s) + $this->_out($s); + $this->lasth = $h; + if($ln>0) + { + // Go to next line + $this->y += $h; + if($ln==1) + $this->x = $this->lMargin; + } + else + $this->x += $w; +} + +function MultiCell($w, $h, $txt, $border=0, $align='J', $fill=false) +{ + // Output text with automatic or explicit line breaks + $cw = &$this->CurrentFont['cw']; + if($w==0) + $w = $this->w-$this->rMargin-$this->x; + $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize; + $s = str_replace("\r",'',$txt); + $nb = strlen($s); + if($nb>0 && $s[$nb-1]=="\n") + $nb--; + $b = 0; + if($border) + { + if($border==1) + { + $border = 'LTRB'; + $b = 'LRT'; + $b2 = 'LR'; + } + else + { + $b2 = ''; + if(strpos($border,'L')!==false) + $b2 .= 'L'; + if(strpos($border,'R')!==false) + $b2 .= 'R'; + $b = (strpos($border,'T')!==false) ? $b2.'T' : $b2; + } + } + $sep = -1; + $i = 0; + $j = 0; + $l = 0; + $ns = 0; + $nl = 1; + while($i<$nb) + { + // Get next character + $c = $s[$i]; + if($c=="\n") + { + // Explicit line break + if($this->ws>0) + { + $this->ws = 0; + $this->_out('0 Tw'); + } + $this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill); + $i++; + $sep = -1; + $j = $i; + $l = 0; + $ns = 0; + $nl++; + if($border && $nl==2) + $b = $b2; + continue; + } + if($c==' ') + { + $sep = $i; + $ls = $l; + $ns++; + } + $l += $cw[$c]; + if($l>$wmax) + { + // Automatic line break + if($sep==-1) + { + if($i==$j) + $i++; + if($this->ws>0) + { + $this->ws = 0; + $this->_out('0 Tw'); + } + $this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill); + } + else + { + if($align=='J') + { + $this->ws = ($ns>1) ? ($wmax-$ls)/1000*$this->FontSize/($ns-1) : 0; + $this->_out(sprintf('%.3F Tw',$this->ws*$this->k)); + } + $this->Cell($w,$h,substr($s,$j,$sep-$j),$b,2,$align,$fill); + $i = $sep+1; + } + $sep = -1; + $j = $i; + $l = 0; + $ns = 0; + $nl++; + if($border && $nl==2) + $b = $b2; + } + else + $i++; + } + // Last chunk + if($this->ws>0) + { + $this->ws = 0; + $this->_out('0 Tw'); + } + if($border && strpos($border,'B')!==false) + $b .= 'B'; + $this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill); + $this->x = $this->lMargin; +} + +function Write($h, $txt, $link='') +{ + // Output text in flowing mode + $cw = &$this->CurrentFont['cw']; + $w = $this->w-$this->rMargin-$this->x; + $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize; + $s = str_replace("\r",'',$txt); + $nb = strlen($s); + $sep = -1; + $i = 0; + $j = 0; + $l = 0; + $nl = 1; + while($i<$nb) + { + // Get next character + $c = $s[$i]; + if($c=="\n") + { + // Explicit line break + $this->Cell($w,$h,substr($s,$j,$i-$j),0,2,'',0,$link); + $i++; + $sep = -1; + $j = $i; + $l = 0; + if($nl==1) + { + $this->x = $this->lMargin; + $w = $this->w-$this->rMargin-$this->x; + $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize; + } + $nl++; + continue; + } + if($c==' ') + $sep = $i; + $l += $cw[$c]; + if($l>$wmax) + { + // Automatic line break + if($sep==-1) + { + if($this->x>$this->lMargin) + { + // Move to next line + $this->x = $this->lMargin; + $this->y += $h; + $w = $this->w-$this->rMargin-$this->x; + $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize; + $i++; + $nl++; + continue; + } + if($i==$j) + $i++; + $this->Cell($w,$h,substr($s,$j,$i-$j),0,2,'',0,$link); + } + else + { + $this->Cell($w,$h,substr($s,$j,$sep-$j),0,2,'',0,$link); + $i = $sep+1; + } + $sep = -1; + $j = $i; + $l = 0; + if($nl==1) + { + $this->x = $this->lMargin; + $w = $this->w-$this->rMargin-$this->x; + $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize; + } + $nl++; + } + else + $i++; + } + // Last chunk + if($i!=$j) + $this->Cell($l/1000*$this->FontSize,$h,substr($s,$j),0,0,'',0,$link); +} + +function Ln($h=null) +{ + // Line feed; default value is last cell height + $this->x = $this->lMargin; + if($h===null) + $this->y += $this->lasth; + else + $this->y += $h; +} + +function Image($file, $x=null, $y=null, $w=0, $h=0, $type='', $link='') +{ + // Put an image on the page + if(!isset($this->images[$file])) + { + // First use of this image, get info + if($type=='') + { + $pos = strrpos($file,'.'); + if(!$pos) + $this->Error('Image file has no extension and no type was specified: '.$file); + $type = substr($file,$pos+1); + } + $type = strtolower($type); + if($type=='jpeg') + $type = 'jpg'; + $mtd = '_parse'.$type; + if(!method_exists($this,$mtd)) + $this->Error('Unsupported image type: '.$type); + $info = $this->$mtd($file); + $info['i'] = count($this->images)+1; + $this->images[$file] = $info; + } + else + $info = $this->images[$file]; + + // Automatic width and height calculation if needed + if($w==0 && $h==0) + { + // Put image at 96 dpi + $w = -96; + $h = -96; + } + if($w<0) + $w = -$info['w']*72/$w/$this->k; + if($h<0) + $h = -$info['h']*72/$h/$this->k; + if($w==0) + $w = $h*$info['w']/$info['h']; + if($h==0) + $h = $w*$info['h']/$info['w']; + + // Flowing mode + if($y===null) + { + if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak()) + { + // Automatic page break + $x2 = $this->x; + $this->AddPage($this->CurOrientation,$this->CurPageSize); + $this->x = $x2; + } + $y = $this->y; + $this->y += $h; + } + + if($x===null) + $x = $this->x; + $this->_out(sprintf('q %.2F 0 0 %.2F %.2F %.2F cm /I%d Do Q',$w*$this->k,$h*$this->k,$x*$this->k,($this->h-($y+$h))*$this->k,$info['i'])); + if($link) + $this->Link($x,$y,$w,$h,$link); +} + +function GetX() +{ + // Get x position + return $this->x; +} + +function SetX($x) +{ + // Set x position + if($x>=0) + $this->x = $x; + else + $this->x = $this->w+$x; +} + +function GetY() +{ + // Get y position + return $this->y; +} + +function SetY($y) +{ + // Set y position and reset x + $this->x = $this->lMargin; + if($y>=0) + $this->y = $y; + else + $this->y = $this->h+$y; +} + +function SetXY($x, $y) +{ + // Set x and y positions + $this->SetY($y); + $this->SetX($x); +} + +function Output($name='', $dest='') +{ + // Output PDF to some destination + if($this->state<3) + $this->Close(); + $dest = strtoupper($dest); + if($dest=='') + { + if($name=='') + { + $name = 'doc.pdf'; + $dest = 'I'; + } + else + $dest = 'F'; + } + switch($dest) + { + case 'I': + // Send to standard output + $this->_checkoutput(); + if(PHP_SAPI!='cli') + { + // We send to a browser + header('Content-Type: application/pdf'); + header('Content-Disposition: inline; filename="'.$name.'"'); + header('Cache-Control: private, max-age=0, must-revalidate'); + header('Pragma: public'); + } + echo $this->buffer; + break; + case 'D': + // Download file + $this->_checkoutput(); + header('Content-Type: application/x-download'); + header('Content-Disposition: attachment; filename="'.$name.'"'); + header('Cache-Control: private, max-age=0, must-revalidate'); + header('Pragma: public'); + echo $this->buffer; + break; + case 'F': + // Save to local file + $f = fopen($name,'wb'); + if(!$f) + $this->Error('Unable to create output file: '.$name); + fwrite($f,$this->buffer,strlen($this->buffer)); + fclose($f); + break; + case 'S': + // Return as a string + return $this->buffer; + default: + $this->Error('Incorrect output destination: '.$dest); + } + return ''; +} + +/******************************************************************************* +* * +* Protected methods * +* * +*******************************************************************************/ +function _dochecks() +{ + // Check availability of %F + if(sprintf('%.1F',1.0)!='1.0') + $this->Error('This version of PHP is not supported'); + // Check mbstring overloading + if(ini_get('mbstring.func_overload') & 2) + $this->Error('mbstring overloading must be disabled'); + // Ensure runtime magic quotes are disabled + if(get_magic_quotes_runtime()) + @set_magic_quotes_runtime(0); +} + +function _checkoutput() +{ + if(PHP_SAPI!='cli') + { + if(headers_sent($file,$line)) + $this->Error("Some data has already been output, can't send PDF file (output started at $file:$line)"); + } + if(ob_get_length()) + { + // The output buffer is not empty + if(preg_match('/^(\xEF\xBB\xBF)?\s*$/',ob_get_contents())) + { + // It contains only a UTF-8 BOM and/or whitespace, let's clean it + ob_clean(); + } + else + $this->Error("Some data has already been output, can't send PDF file"); + } +} + +function _getpagesize($size) +{ + if(is_string($size)) + { + $size = strtolower($size); + if(!isset($this->StdPageSizes[$size])) + $this->Error('Unknown page size: '.$size); + $a = $this->StdPageSizes[$size]; + return array($a[0]/$this->k, $a[1]/$this->k); + } + else + { + if($size[0]>$size[1]) + return array($size[1], $size[0]); + else + return $size; + } +} + +function _beginpage($orientation, $size) +{ + $this->page++; + $this->pages[$this->page] = ''; + $this->state = 2; + $this->x = $this->lMargin; + $this->y = $this->tMargin; + $this->FontFamily = ''; + // Check page size and orientation + if($orientation=='') + $orientation = $this->DefOrientation; + else + $orientation = strtoupper($orientation[0]); + if($size=='') + $size = $this->DefPageSize; + else + $size = $this->_getpagesize($size); + if($orientation!=$this->CurOrientation || $size[0]!=$this->CurPageSize[0] || $size[1]!=$this->CurPageSize[1]) + { + // New size or orientation + if($orientation=='P') + { + $this->w = $size[0]; + $this->h = $size[1]; + } + else + { + $this->w = $size[1]; + $this->h = $size[0]; + } + $this->wPt = $this->w*$this->k; + $this->hPt = $this->h*$this->k; + $this->PageBreakTrigger = $this->h-$this->bMargin; + $this->CurOrientation = $orientation; + $this->CurPageSize = $size; + } + if($orientation!=$this->DefOrientation || $size[0]!=$this->DefPageSize[0] || $size[1]!=$this->DefPageSize[1]) + $this->PageSizes[$this->page] = array($this->wPt, $this->hPt); +} + +function _endpage() +{ + $this->state = 1; +} + +function _loadfont($font) +{ + // Load a font definition file from the font directory + include($this->fontpath.$font); + $a = get_defined_vars(); + if(!isset($a['name'])) + $this->Error('Could not include font definition file'); + return $a; +} + +function _escape($s) +{ + // Escape special characters in strings + $s = str_replace('\\','\\\\',$s); + $s = str_replace('(','\\(',$s); + $s = str_replace(')','\\)',$s); + $s = str_replace("\r",'\\r',$s); + return $s; +} + +function _textstring($s) +{ + // Format a text string + return '('.$this->_escape($s).')'; +} + +function _UTF8toUTF16($s) +{ + // Convert UTF-8 to UTF-16BE with BOM + $res = "\xFE\xFF"; + $nb = strlen($s); + $i = 0; + while($i<$nb) + { + $c1 = ord($s[$i++]); + if($c1>=224) + { + // 3-byte character + $c2 = ord($s[$i++]); + $c3 = ord($s[$i++]); + $res .= chr((($c1 & 0x0F)<<4) + (($c2 & 0x3C)>>2)); + $res .= chr((($c2 & 0x03)<<6) + ($c3 & 0x3F)); + } + elseif($c1>=192) + { + // 2-byte character + $c2 = ord($s[$i++]); + $res .= chr(($c1 & 0x1C)>>2); + $res .= chr((($c1 & 0x03)<<6) + ($c2 & 0x3F)); + } + else + { + // Single-byte character + $res .= "\0".chr($c1); + } + } + return $res; +} + +function _dounderline($x, $y, $txt) +{ + // Underline text + $up = $this->CurrentFont['up']; + $ut = $this->CurrentFont['ut']; + $w = $this->GetStringWidth($txt)+$this->ws*substr_count($txt,' '); + return sprintf('%.2F %.2F %.2F %.2F re f',$x*$this->k,($this->h-($y-$up/1000*$this->FontSize))*$this->k,$w*$this->k,-$ut/1000*$this->FontSizePt); +} + +function _parsejpg($file) +{ + // Extract info from a JPEG file + $a = getimagesize($file); + if(!$a) + $this->Error('Missing or incorrect image file: '.$file); + if($a[2]!=2) + $this->Error('Not a JPEG file: '.$file); + if(!isset($a['channels']) || $a['channels']==3) + $colspace = 'DeviceRGB'; + elseif($a['channels']==4) + $colspace = 'DeviceCMYK'; + else + $colspace = 'DeviceGray'; + $bpc = isset($a['bits']) ? $a['bits'] : 8; + $data = file_get_contents($file); + return array('w'=>$a[0], 'h'=>$a[1], 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'DCTDecode', 'data'=>$data); +} + +function _parsepng($file) +{ + // Extract info from a PNG file + $f = fopen($file,'rb'); + if(!$f) + $this->Error('Can\'t open image file: '.$file); + $info = $this->_parsepngstream($f,$file); + fclose($f); + return $info; +} + +function _parsepngstream($f, $file) +{ + // Check signature + if($this->_readstream($f,8)!=chr(137).'PNG'.chr(13).chr(10).chr(26).chr(10)) + $this->Error('Not a PNG file: '.$file); + + // Read header chunk + $this->_readstream($f,4); + if($this->_readstream($f,4)!='IHDR') + $this->Error('Incorrect PNG file: '.$file); + $w = $this->_readint($f); + $h = $this->_readint($f); + $bpc = ord($this->_readstream($f,1)); + if($bpc>8) + $this->Error('16-bit depth not supported: '.$file); + $ct = ord($this->_readstream($f,1)); + if($ct==0 || $ct==4) + $colspace = 'DeviceGray'; + elseif($ct==2 || $ct==6) + $colspace = 'DeviceRGB'; + elseif($ct==3) + $colspace = 'Indexed'; + else + $this->Error('Unknown color type: '.$file); + if(ord($this->_readstream($f,1))!=0) + $this->Error('Unknown compression method: '.$file); + if(ord($this->_readstream($f,1))!=0) + $this->Error('Unknown filter method: '.$file); + if(ord($this->_readstream($f,1))!=0) + $this->Error('Interlacing not supported: '.$file); + $this->_readstream($f,4); + $dp = '/Predictor 15 /Colors '.($colspace=='DeviceRGB' ? 3 : 1).' /BitsPerComponent '.$bpc.' /Columns '.$w; + + // Scan chunks looking for palette, transparency and image data + $pal = ''; + $trns = ''; + $data = ''; + do + { + $n = $this->_readint($f); + $type = $this->_readstream($f,4); + if($type=='PLTE') + { + // Read palette + $pal = $this->_readstream($f,$n); + $this->_readstream($f,4); + } + elseif($type=='tRNS') + { + // Read transparency info + $t = $this->_readstream($f,$n); + if($ct==0) + $trns = array(ord(substr($t,1,1))); + elseif($ct==2) + $trns = array(ord(substr($t,1,1)), ord(substr($t,3,1)), ord(substr($t,5,1))); + else + { + $pos = strpos($t,chr(0)); + if($pos!==false) + $trns = array($pos); + } + $this->_readstream($f,4); + } + elseif($type=='IDAT') + { + // Read image data block + $data .= $this->_readstream($f,$n); + $this->_readstream($f,4); + } + elseif($type=='IEND') + break; + else + $this->_readstream($f,$n+4); + } + while($n); + + if($colspace=='Indexed' && empty($pal)) + $this->Error('Missing palette in '.$file); + $info = array('w'=>$w, 'h'=>$h, 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'FlateDecode', 'dp'=>$dp, 'pal'=>$pal, 'trns'=>$trns); + if($ct>=4) + { + // Extract alpha channel + if(!function_exists('gzuncompress')) + $this->Error('Zlib not available, can\'t handle alpha channel: '.$file); + $data = gzuncompress($data); + $color = ''; + $alpha = ''; + if($ct==4) + { + // Gray image + $len = 2*$w; + for($i=0;$i<$h;$i++) + { + $pos = (1+$len)*$i; + $color .= $data[$pos]; + $alpha .= $data[$pos]; + $line = substr($data,$pos+1,$len); + $color .= preg_replace('/(.)./s','$1',$line); + $alpha .= preg_replace('/.(.)/s','$1',$line); + } + } + else + { + // RGB image + $len = 4*$w; + for($i=0;$i<$h;$i++) + { + $pos = (1+$len)*$i; + $color .= $data[$pos]; + $alpha .= $data[$pos]; + $line = substr($data,$pos+1,$len); + $color .= preg_replace('/(.{3})./s','$1',$line); + $alpha .= preg_replace('/.{3}(.)/s','$1',$line); + } + } + unset($data); + $data = gzcompress($color); + $info['smask'] = gzcompress($alpha); + if($this->PDFVersion<'1.4') + $this->PDFVersion = '1.4'; + } + $info['data'] = $data; + return $info; +} + +function _readstream($f, $n) +{ + // Read n bytes from stream + $res = ''; + while($n>0 && !feof($f)) + { + $s = fread($f,$n); + if($s===false) + $this->Error('Error while reading stream'); + $n -= strlen($s); + $res .= $s; + } + if($n>0) + $this->Error('Unexpected end of stream'); + return $res; +} + +function _readint($f) +{ + // Read a 4-byte integer from stream + $a = unpack('Ni',$this->_readstream($f,4)); + return $a['i']; +} + +function _parsegif($file) +{ + // Extract info from a GIF file (via PNG conversion) + if(!function_exists('imagepng')) + $this->Error('GD extension is required for GIF support'); + if(!function_exists('imagecreatefromgif')) + $this->Error('GD has no GIF read support'); + $im = imagecreatefromgif($file); + if(!$im) + $this->Error('Missing or incorrect image file: '.$file); + imageinterlace($im,0); + $f = @fopen('php://temp','rb+'); + if($f) + { + // Perform conversion in memory + ob_start(); + imagepng($im); + $data = ob_get_clean(); + imagedestroy($im); + fwrite($f,$data); + rewind($f); + $info = $this->_parsepngstream($f,$file); + fclose($f); + } + else + { + // Use temporary file + $tmp = tempnam('.','gif'); + if(!$tmp) + $this->Error('Unable to create a temporary file'); + if(!imagepng($im,$tmp)) + $this->Error('Error while saving to temporary file'); + imagedestroy($im); + $info = $this->_parsepng($tmp); + unlink($tmp); + } + return $info; +} + +function _newobj() +{ + // Begin a new object + $this->n++; + $this->offsets[$this->n] = strlen($this->buffer); + $this->_out($this->n.' 0 obj'); +} + +function _putstream($s) +{ + $this->_out('stream'); + $this->_out($s); + $this->_out('endstream'); +} + +function _out($s) +{ + // Add a line to the document + if($this->state==2) + $this->pages[$this->page] .= $s."\n"; + else + $this->buffer .= $s."\n"; +} + +function _putpages() +{ + $nb = $this->page; + if(!empty($this->AliasNbPages)) + { + // Replace number of pages + for($n=1;$n<=$nb;$n++) + $this->pages[$n] = str_replace($this->AliasNbPages,$nb,$this->pages[$n]); + } + if($this->DefOrientation=='P') + { + $wPt = $this->DefPageSize[0]*$this->k; + $hPt = $this->DefPageSize[1]*$this->k; + } + else + { + $wPt = $this->DefPageSize[1]*$this->k; + $hPt = $this->DefPageSize[0]*$this->k; + } + $filter = ($this->compress) ? '/Filter /FlateDecode ' : ''; + for($n=1;$n<=$nb;$n++) + { + // Page + $this->_newobj(); + $this->_out('<_out('/Parent 1 0 R'); + if(isset($this->PageSizes[$n])) + $this->_out(sprintf('/MediaBox [0 0 %.2F %.2F]',$this->PageSizes[$n][0],$this->PageSizes[$n][1])); + $this->_out('/Resources 2 0 R'); + if(isset($this->PageLinks[$n])) + { + // Links + $annots = '/Annots ['; + foreach($this->PageLinks[$n] as $pl) + { + $rect = sprintf('%.2F %.2F %.2F %.2F',$pl[0],$pl[1],$pl[0]+$pl[2],$pl[1]-$pl[3]); + $annots .= '<_textstring($pl[4]).'>>>>'; + else + { + $l = $this->links[$pl[4]]; + $h = isset($this->PageSizes[$l[0]]) ? $this->PageSizes[$l[0]][1] : $hPt; + $annots .= sprintf('/Dest [%d 0 R /XYZ 0 %.2F null]>>',1+2*$l[0],$h-$l[1]*$this->k); + } + } + $this->_out($annots.']'); + } + if($this->PDFVersion>'1.3') + $this->_out('/Group <>'); + $this->_out('/Contents '.($this->n+1).' 0 R>>'); + $this->_out('endobj'); + // Page content + $p = ($this->compress) ? gzcompress($this->pages[$n]) : $this->pages[$n]; + $this->_newobj(); + $this->_out('<<'.$filter.'/Length '.strlen($p).'>>'); + $this->_putstream($p); + $this->_out('endobj'); + } + // Pages root + $this->offsets[1] = strlen($this->buffer); + $this->_out('1 0 obj'); + $this->_out('<_out($kids.']'); + $this->_out('/Count '.$nb); + $this->_out(sprintf('/MediaBox [0 0 %.2F %.2F]',$wPt,$hPt)); + $this->_out('>>'); + $this->_out('endobj'); +} + +function _putfonts() +{ + $nf = $this->n; + foreach($this->diffs as $diff) + { + // Encodings + $this->_newobj(); + $this->_out('<>'); + $this->_out('endobj'); + } + foreach($this->FontFiles as $file=>$info) + { + // Font file embedding + $this->_newobj(); + $this->FontFiles[$file]['n'] = $this->n; + $font = file_get_contents($this->fontpath.$file,true); + if(!$font) + $this->Error('Font file not found: '.$file); + $compressed = (substr($file,-2)=='.z'); + if(!$compressed && isset($info['length2'])) + $font = substr($font,6,$info['length1']).substr($font,6+$info['length1']+6,$info['length2']); + $this->_out('<_out('/Filter /FlateDecode'); + $this->_out('/Length1 '.$info['length1']); + if(isset($info['length2'])) + $this->_out('/Length2 '.$info['length2'].' /Length3 0'); + $this->_out('>>'); + $this->_putstream($font); + $this->_out('endobj'); + } + foreach($this->fonts as $k=>$font) + { + // Font objects + $this->fonts[$k]['n'] = $this->n+1; + $type = $font['type']; + $name = $font['name']; + if($type=='Core') + { + // Core font + $this->_newobj(); + $this->_out('<_out('/BaseFont /'.$name); + $this->_out('/Subtype /Type1'); + if($name!='Symbol' && $name!='ZapfDingbats') + $this->_out('/Encoding /WinAnsiEncoding'); + $this->_out('>>'); + $this->_out('endobj'); + } + elseif($type=='Type1' || $type=='TrueType') + { + // Additional Type1 or TrueType/OpenType font + $this->_newobj(); + $this->_out('<_out('/BaseFont /'.$name); + $this->_out('/Subtype /'.$type); + $this->_out('/FirstChar 32 /LastChar 255'); + $this->_out('/Widths '.($this->n+1).' 0 R'); + $this->_out('/FontDescriptor '.($this->n+2).' 0 R'); + if(isset($font['diffn'])) + $this->_out('/Encoding '.($nf+$font['diffn']).' 0 R'); + else + $this->_out('/Encoding /WinAnsiEncoding'); + $this->_out('>>'); + $this->_out('endobj'); + // Widths + $this->_newobj(); + $cw = &$font['cw']; + $s = '['; + for($i=32;$i<=255;$i++) + $s .= $cw[chr($i)].' '; + $this->_out($s.']'); + $this->_out('endobj'); + // Descriptor + $this->_newobj(); + $s = '<$v) + $s .= ' /'.$k.' '.$v; + if(!empty($font['file'])) + $s .= ' /FontFile'.($type=='Type1' ? '' : '2').' '.$this->FontFiles[$font['file']]['n'].' 0 R'; + $this->_out($s.'>>'); + $this->_out('endobj'); + } + else + { + // Allow for additional types + $mtd = '_put'.strtolower($type); + if(!method_exists($this,$mtd)) + $this->Error('Unsupported font type: '.$type); + $this->$mtd($font); + } + } +} + +function _putimages() +{ + foreach(array_keys($this->images) as $file) + { + $this->_putimage($this->images[$file]); + unset($this->images[$file]['data']); + unset($this->images[$file]['smask']); + } +} + +function _putimage(&$info) +{ + $this->_newobj(); + $info['n'] = $this->n; + $this->_out('<_out('/Subtype /Image'); + $this->_out('/Width '.$info['w']); + $this->_out('/Height '.$info['h']); + if($info['cs']=='Indexed') + $this->_out('/ColorSpace [/Indexed /DeviceRGB '.(strlen($info['pal'])/3-1).' '.($this->n+1).' 0 R]'); + else + { + $this->_out('/ColorSpace /'.$info['cs']); + if($info['cs']=='DeviceCMYK') + $this->_out('/Decode [1 0 1 0 1 0 1 0]'); + } + $this->_out('/BitsPerComponent '.$info['bpc']); + if(isset($info['f'])) + $this->_out('/Filter /'.$info['f']); + if(isset($info['dp'])) + $this->_out('/DecodeParms <<'.$info['dp'].'>>'); + if(isset($info['trns']) && is_array($info['trns'])) + { + $trns = ''; + for($i=0;$i_out('/Mask ['.$trns.']'); + } + if(isset($info['smask'])) + $this->_out('/SMask '.($this->n+1).' 0 R'); + $this->_out('/Length '.strlen($info['data']).'>>'); + $this->_putstream($info['data']); + $this->_out('endobj'); + // Soft mask + if(isset($info['smask'])) + { + $dp = '/Predictor 15 /Colors 1 /BitsPerComponent 8 /Columns '.$info['w']; + $smask = array('w'=>$info['w'], 'h'=>$info['h'], 'cs'=>'DeviceGray', 'bpc'=>8, 'f'=>$info['f'], 'dp'=>$dp, 'data'=>$info['smask']); + $this->_putimage($smask); + } + // Palette + if($info['cs']=='Indexed') + { + $filter = ($this->compress) ? '/Filter /FlateDecode ' : ''; + $pal = ($this->compress) ? gzcompress($info['pal']) : $info['pal']; + $this->_newobj(); + $this->_out('<<'.$filter.'/Length '.strlen($pal).'>>'); + $this->_putstream($pal); + $this->_out('endobj'); + } +} + +function _putxobjectdict() +{ + foreach($this->images as $image) + $this->_out('/I'.$image['i'].' '.$image['n'].' 0 R'); +} + +function _putresourcedict() +{ + $this->_out('/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]'); + $this->_out('/Font <<'); + foreach($this->fonts as $font) + $this->_out('/F'.$font['i'].' '.$font['n'].' 0 R'); + $this->_out('>>'); + $this->_out('/XObject <<'); + $this->_putxobjectdict(); + $this->_out('>>'); +} + +function _putresources() +{ + $this->_putfonts(); + $this->_putimages(); + // Resource dictionary + $this->offsets[2] = strlen($this->buffer); + $this->_out('2 0 obj'); + $this->_out('<<'); + $this->_putresourcedict(); + $this->_out('>>'); + $this->_out('endobj'); +} + +function _putinfo() +{ + $this->_out('/Producer '.$this->_textstring('FPDF '.FPDF_VERSION)); + if(!empty($this->title)) + $this->_out('/Title '.$this->_textstring($this->title)); + if(!empty($this->subject)) + $this->_out('/Subject '.$this->_textstring($this->subject)); + if(!empty($this->author)) + $this->_out('/Author '.$this->_textstring($this->author)); + if(!empty($this->keywords)) + $this->_out('/Keywords '.$this->_textstring($this->keywords)); + if(!empty($this->creator)) + $this->_out('/Creator '.$this->_textstring($this->creator)); + $this->_out('/CreationDate '.$this->_textstring('D:'.@date('YmdHis'))); +} + +function _putcatalog() +{ + $this->_out('/Type /Catalog'); + $this->_out('/Pages 1 0 R'); + if($this->ZoomMode=='fullpage') + $this->_out('/OpenAction [3 0 R /Fit]'); + elseif($this->ZoomMode=='fullwidth') + $this->_out('/OpenAction [3 0 R /FitH null]'); + elseif($this->ZoomMode=='real') + $this->_out('/OpenAction [3 0 R /XYZ null null 1]'); + elseif(!is_string($this->ZoomMode)) + $this->_out('/OpenAction [3 0 R /XYZ null null '.sprintf('%.2F',$this->ZoomMode/100).']'); + if($this->LayoutMode=='single') + $this->_out('/PageLayout /SinglePage'); + elseif($this->LayoutMode=='continuous') + $this->_out('/PageLayout /OneColumn'); + elseif($this->LayoutMode=='two') + $this->_out('/PageLayout /TwoColumnLeft'); +} + +function _putheader() +{ + $this->_out('%PDF-'.$this->PDFVersion); +} + +function _puttrailer() +{ + $this->_out('/Size '.($this->n+1)); + $this->_out('/Root '.$this->n.' 0 R'); + $this->_out('/Info '.($this->n-1).' 0 R'); +} + +function _enddoc() +{ + $this->_putheader(); + $this->_putpages(); + $this->_putresources(); + // Info + $this->_newobj(); + $this->_out('<<'); + $this->_putinfo(); + $this->_out('>>'); + $this->_out('endobj'); + // Catalog + $this->_newobj(); + $this->_out('<<'); + $this->_putcatalog(); + $this->_out('>>'); + $this->_out('endobj'); + // Cross-ref + $o = strlen($this->buffer); + $this->_out('xref'); + $this->_out('0 '.($this->n+1)); + $this->_out('0000000000 65535 f '); + for($i=1;$i<=$this->n;$i++) + $this->_out(sprintf('%010d 00000 n ',$this->offsets[$i])); + // Trailer + $this->_out('trailer'); + $this->_out('<<'); + $this->_puttrailer(); + $this->_out('>>'); + $this->_out('startxref'); + $this->_out($o); + $this->_out('%%EOF'); + $this->state = 3; +} +// End of class +} + +// Handle special IE contype request +if(isset($_SERVER['HTTP_USER_AGENT']) && $_SERVER['HTTP_USER_AGENT']=='contype') +{ + header('Content-Type: application/pdf'); + exit; +} + +?> diff --git a/lam/lib/html.inc b/lam/lib/html.inc new file mode 100644 index 00000000..12f0eebd --- /dev/null +++ b/lam/lib/html.inc @@ -0,0 +1,3211 @@ + value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + abstract function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope); + + /** + * Returns the HTML attributes for the alignment. + * + * @return String alignment HTML attributes (e.g. align="right" valign="top") + */ + public function getAlignmentString() { + $align = ''; + if ($this->alignment !== null) { + switch ($this->alignment) { + case htmlElement::ALIGN_BOTTOM: + $align = 'valign="bottom"'; + break; + case htmlElement::ALIGN_TOP: + $align = 'valign="top"'; + break; + case htmlElement::ALIGN_LEFT: + $align = 'align="left"'; + break; + case htmlElement::ALIGN_RIGHT: + $align = 'align="right"'; + break; + case htmlElement::ALIGN_CENTER: + $align = 'align="center"'; + break; + } + } + return $align; + } + + /** + * Returns the HTML attribute for the colspan. + * + * @return String colspan HTML attribute (e.g. colspan=3) + */ + public function getColspanString() { + if ($this->colspan == null) { + return ''; + } + else return 'colspan="' . $this->colspan . '"'; + } + + /** + * Returns the HTML attribute for the rowspan. + * + * @return String rowspan HTML attribute (e.g. rowspan=3) + */ + public function getRowspanString() { + if ($this->rowspan == null) { + return ''; + } + else return 'rowspan="' . $this->rowspan . '"'; + } + + /** + * Adds CSS classes to this element. + * + * @param array $classes CSS class names + */ + public function setCSSClasses($classes) { + $this->cssClasses = $classes; + } + + /** + * Adds CSS classes to the surrounding table cell for this element. + * + * @param array $classes CSS class names + */ + public function setTableCellCSSClasses($classes) { + $this->tableCellCssClasses = $classes; + } + + /** + * Returns the CSS classes of the surrounding table cell for this element. + * + * @return array CSS classes + */ + public function getTableCellCSSClasses() { + return $this->tableCellCssClasses; + } + +} + +/** + * Structures elements using a table. + * + * @package metaHTML + */ +class htmlTable extends htmlElement { + + /** table footer */ + const footer = "\n"; + /** new line */ + const newLine = "\n"; + + /** list of subelements */ + private $elements = array(); + /** specifies if currently a row is open */ + private $rowOpen = false; + /** table width */ + private $width = null; + /** HTML ID */ + private $id = null; + + /** + * Constructor + * + * @param String $width table width (e.g. 100%) + * @see htmlElement + */ + function __construct($width = null, $id = null) { + $this->width = $width; + $this->id = $id; + } + + /** + * Adds an element to the table. The element may be a htmlElement object or a simple String. + * + * @param mixed $element htmlElement object or a simple String + * @param boolean $newLine adds a new line after the element (optional, default false) + * @param boolean $isTableHeadElement specifies if this is a head or body element (default: body) + */ + public function addElement($element, $newLine = false, $isTableHeadElement = false) { + // add row element + if ($element instanceof htmlTableRow) { + // check if a row needs to be closed + if ($this->rowOpen) { + $this->elements[] = "\n"; + $this->rowOpen = false; + } + $this->elements[] = $element; + } + // add cell element + elseif ($element instanceof htmlElement) { + // check if a row needs to be opened + if (!$this->rowOpen) { + $this->elements[] = "\n"; + $this->rowOpen = true; + } + // check if alignment option was given + $align = $element->getAlignmentString(); + $colspan = $element->getColspanString(); + $rowspan = $element->getRowspanString(); + $css = ''; + if (sizeof($element->getTableCellCSSClasses()) > 0) { + $css = 'class="' . implode(' ', $element->getTableCellCSSClasses()) . '"'; + } + $tagName = 'td'; + if ($isTableHeadElement) { + $tagName = 'th'; + } + $this->elements[] = "<$tagName $align $colspan $rowspan $css>\n"; + $this->elements[] = $element; + $this->elements[] = "\n"; + if ($newLine) { + $this->addNewLine(); + } + } + else { + StatusMessage('ERROR', 'Invalid element', print_r($element, true)); + } + } + + /** + * Adds another line to the table. + */ + public function addNewLine() { + if (!$this->rowOpen) { + $this->elements[] = "\n"; + } + else { + $this->elements[] = htmlTable::newLine; + } + } + + /** + * Adds an htmlSpacer with the given width. + * + * @param String $width width (e.g. 10px) + */ + public function addSpace($width) { + $this->addElement(new htmlSpacer($width, null)); + } + + /** + * Adds an htmlSpacer with the given height and ends the row. + * + * @param String $height height (e.g. 10px) + */ + public function addVerticalSpace($height) { + $this->addElement(new htmlSpacer(null, $height), true); + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + public function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + $return = array(); + $width = ''; + if ($this->width != null) { + $width = ' width="' . htmlspecialchars($this->width) . '"'; + } + $id = ''; + if (!empty($this->id)) { + $id = ' id="' . $this->id . '"'; + } + $classAttr = ''; + if (sizeof($this->cssClasses) > 0) { + $classAttr = ' class="' . implode(' ', $this->cssClasses) . '"'; + } + echo "\n"; + // print all contained elements + for ($i = 0; $i < sizeof($this->elements); $i++) { + // print htmlElement objects + if ($this->elements[$i] instanceof htmlElement) { + $fields = $this->elements[$i]->generateHTML($module, $input, $values, $restricted, $tabindex, $scope); + $return = array_merge($return, $fields); + } + // print simple Strings + else { + if ($i != (sizeof($this->elements) - 1) || !($this->elements[$i] == htmlTable::newLine) ) { + echo $this->elements[$i]; + } + } + } + if ($this->rowOpen) { + echo "\n"; + } + echo htmlTable::footer; + return $return; + } + + /** + * Merges the content of another htmlTable object into this table. + * + * @param $table table to get elements + */ + public function mergeTableElements($table) { + if (is_null($table) || !($table instanceof htmlTable)) { + return; + } + // remove obsolete new lines at the end + if ($table->elements[sizeof($table->elements) - 1] == htmlTable::newLine) { + unset($table->elements[sizeof($table->elements) - 1]); + } + // close last row of other table if needed + if ($table->rowOpen) { + $table->elements[] = "\n"; + } + // close last own row if needed + if ($this->rowOpen) { + if ($this->elements[sizeof($this->elements) - 1] == htmlTable::newLine) { + unset($this->elements[sizeof($this->elements) - 1]); + } + else { + $this->elements[] = "\n"; + } + $this->rowOpen = false; + } + $this->elements = array_merge($this->elements, $table->elements); + } + +} + +/** + * A row inside a htmlTable. + * + * @see htmlTable + * @package metaHTML + */ +class htmlTableRow extends htmlElement { + + /** table cells */ + private $cells; + + /** + * Constructor + * + * @param array $cells list of htmlElements + * @see htmlElement + */ + function __construct($cells) { + $this->cells = $cells; + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + $types = array(); + $classAttr = ''; + if (sizeof($this->cssClasses) > 0) { + $classAttr = ' class="' . implode(' ', $this->cssClasses) . '"'; + } + echo "\n"; + for ($i = 0; $i < sizeof($this->cells); $i++) { + // check if alignment option was given + $align = $this->cells[$i]->getAlignmentString(); + $colspan = $this->cells[$i]->getColspanString(); + $rowspan = $this->cells[$i]->getRowspanString(); + echo "\n"; + $types = array_merge($types, $this->cells[$i]->generateHTML($module, $input, $values, $restricted, $tabindex, $scope)); + echo "\n"; + } + echo ""; + return $types; + } + +} + +/** + * A standard input field. + * + * @package metaHTML + */ +class htmlInputField extends htmlElement { + + /** unique field name */ + protected $fieldName; + /** field value */ + protected $fieldValue; + /** field size (default 30) */ + protected $fieldSize = 30; + /** field max length (default 255) */ + protected $fieldMaxLength = 255; + /** on keypress event */ + protected $onKeyPress = null; + /** password field */ + protected $isPassword = false; + /** check password strength */ + protected $checkPasswordStrength = false; + /** enabled or disabled */ + protected $isEnabled = true; + /** indicates that the value should be saved in obfuscated form */ + protected $obfuscate = false; + /** indicates that this field should not automatically be saved in the self service or server profile */ + protected $transient = false; + /** required field */ + protected $required = false; + /** validation rule */ + protected $validationRule = null; + /** enable autocomplete */ + protected $autocomplete = false; + /** multiple values in one field */ + protected $autocompleteMultiValue = false; + /** separator expression for multiple values in one field */ + protected $autocompleteMultiValueSeparatorExp = null; + /** separator for multiple values in one field */ + protected $autocompleteMultiValueSeparator = null; + /** autocompletion suggestions */ + protected $autocompleteValues = array(); + /** autocomplete start at this input length */ + protected $autocompleteMinLength = 1; + /** show calendar */ + protected $showCalendar = false; + /** calendar format */ + protected $calendarFormat = ''; + /** title attribute */ + protected $title = null; + /** field ID that needs to have same value (e.g. password field) */ + protected $sameValueFieldID = null; + + /** + * Constructor + * + * @param String $fieldName unique field name + * @param String $fieldValue value of input field (optional) + * @param String $fieldSize input field length (default 30) + */ + function __construct($fieldName, $fieldValue = null, $fieldSize = null) { + if (isObfuscatedText($fieldValue)) { + $fieldValue = deobfuscateText($fieldValue); + } + $this->fieldName = htmlspecialchars($fieldName); + $this->fieldValue = htmlspecialchars($fieldValue); + if ($fieldSize != null) { + $this->fieldSize = $fieldSize; + } + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + $this->cssClasses[] = 'ui-corner-all'; + if (isset($values[$this->fieldName])) { + if (isObfuscatedText($values[$this->fieldName][0])) { + $this->fieldValue = deobfuscateText($values[$this->fieldName][0]); + } + else { + $this->fieldValue = $values[$this->fieldName][0]; + } + } + $validators = array(); + if ($this->required) { + $validators[] = 'required'; + } + if ($this->validationRule != null) { + $validators[] = 'custom[' . $this->validationRule . ']'; + } + // print input field + $class = ''; + if (sizeof($validators) > 0) { + $class = ' class="validate[' . implode(',', $validators) . '] ' . implode(' ', $this->cssClasses) . '"'; + } + else { + $class = ' class="' . implode(' ', $this->cssClasses) . '"'; + } + $name = ' name="' . $this->fieldName . '"'; + $id = ' id="' . $this->fieldName . '"'; + $value = ''; + if ($this->fieldValue != null) { + $value = ' value="' . $this->fieldValue . '"'; + } + $maxLength = ''; + if ($this->fieldMaxLength != null) { + $maxLength = ' maxlength="' . $this->fieldMaxLength . '"'; + } + $size = ''; + if ($this->fieldSize != null) { + $size = ' size="' . $this->fieldSize . '"'; + } + $fieldTabIndex = ' tabindex="' . $tabindex . '"'; + $tabindex++; + $inputType = 'text'; + if ($this->isPassword) { + $inputType = 'password'; + } + $disabled = ''; + if (!$this->isEnabled) { + $disabled = ' disabled'; + } + $onKeyPress = ''; + if ($this->onKeyPress != null) { + $onKeyPress = ' onkeypress="' . $this->onKeyPress . '"'; + } + $title = ''; + if (!empty($this->title)) { + $title = ' title="' . $this->title . '"'; + } + echo ''; + // autocompletion + if ($this->autocomplete) { + echo " + '; + } + // check value against reference field + if ($this->sameValueFieldID != null) { + echo ' + '; + } + if ($this->checkPasswordStrength) { + $ajaxPath = "../templates/misc/ajax.php"; + if (is_file("../../templates/misc/ajax.php")) { + $ajaxPath = "../../templates/misc/ajax.php"; + } + elseif (is_file("../../../templates/misc/ajax.php")) { + $ajaxPath = "../../../templates/misc/ajax.php"; + } + echo ' + '; + } + if ($this->transient) { + return array(); + } + if ($this->obfuscate) { + return array($this->fieldName => 'text_obfuscated'); + } + else { + return array($this->fieldName => 'text'); + } + } + + /** + * Sets the maximum field length. + * + * @param int $fieldMaxLength length + */ + public function setFieldMaxLength($fieldMaxLength) { + $this->fieldMaxLength = $fieldMaxLength; + } + + /** + * Sets the field size (default is 30). + * + * @param int $fieldSize size + */ + public function setFieldSize($fieldSize) { + $this->fieldSize = $fieldSize; + } + + /** + * Specifies if this is a password field. + * + * @param boolean $isPassword password field + * @param boolean $checkStrength check if matches password policy (default: false) + */ + public function setIsPassword($isPassword, $checkStrength = false) { + $this->isPassword = $isPassword; + $this->checkPasswordStrength = $checkStrength; + } + + /** + * Specifies if this component is enabled and accepts user modification. + * + * @param boolean $isEnabled enabled if true + */ + public function setIsEnabled($isEnabled) { + $this->isEnabled = $isEnabled; + } + + /** + * Specifies if the value should be saved in obfuscated form (e.g. self service profile). + * + * @param boolean $obfuscate obfuscate value + */ + public function setObfuscate($obfuscate) { + $this->obfuscate = $obfuscate; + } + + /** + * Specifies that the value should not be automatically saved when used in self service or server profile (default: false). + * + * @param boolean $transient transient field + */ + public function setTransient($transient) { + $this->transient = $transient; + } + + /** + * Specifies if the input field is required. + * + * @param boolean $required required + */ + public function setRequired($required) { + $this->required = $required; + } + + /** + * Specifies the validation rule (e.g. htmlElement::VALIDATE_NUMERIC) for this field. + * This rule is checked on client side when the input field looses focus. + * + * @param boolean $rule rule name + */ + public function setValidationRule($rule) { + $this->validationRule = $rule; + } + + /** + * Enables autocompletion for this input field. + * + * @param array $values list of values to suggest + * @param int $minLength autocompletion starts after this number of caracters entered (default 1; 0 means immediate start) + * @param boolean $multiValue allow multiple autocompletion values in the same fields (default: false) + * @param String $multiSeparator separator expression if multiple autocompletion values are allowed (default ",\s*") + * @param String $multiSeparator separator for two values (default ", ") + */ + public function enableAutocompletion($values, $minLength = 1, $multiValue = false, $multiSeparatorExp = ',\s*', $multiSeparator = ', ') { + for ($i = 0; $i < sizeof($values); $i++) { + $values[$i] = '"' . htmlspecialchars(str_replace(array('"', "\r", "\n"), array('', '', ''), $values[$i])) . '"'; + } + $this->autocomplete = true; + $this->autocompleteValues = $values; + $this->autocompleteMinLength = $minLength; + $this->autocompleteMultiValue = $multiValue; + $this->autocompleteMultiValueSeparatorExp = $multiSeparatorExp; + $this->autocompleteMultiValueSeparator = $multiSeparator; + } + + /** + * Sets the JavaScript for the onKeyPress event. + * + * @param String $onKeyPress JavaScript code + */ + public function setOnKeyPress($onKeyPress) { + $this->onKeyPress = $onKeyPress; + } + + /** + * Shows a calendar when the field is selected. + * + * @param String $format calendar format (e.g. yyyy-mm-dd) + */ + public function showCalendar($format) { + $this->showCalendar = true; + $this->calendarFormat = $format; + } + + /** + * Sets the title for the input field. + * + * @param String $title title value + */ + public function setTitle($title) { + $this->title = htmlspecialchars($title); + } + + /** + * Specifies the ID of a second field that must have the same value as this field. + * This field is marked red if different or green if equal. + * + * @param String $sameValueFieldID ID of reference field + */ + public function setSameValueFieldID($sameValueFieldID) { + $this->sameValueFieldID = $sameValueFieldID; + } + +} + +/** + * An extended input field that combines label, input field and help. + * + * @package metaHTML + */ +class htmlTableExtendedInputField extends htmlInputField { + + /** Descriptive label */ + private $label; + /** help ID */ + private $helpID; + + /** + * Constructor + * + * @param String $label descriptive label + * @param String $fieldName unique field name + * @param String $fieldValue value of input field (optional) + * @param String $helpID help ID (optional) + */ + function __construct($label, $fieldName, $fieldValue = null, $helpID = null) { + parent::__construct($fieldName, $fieldValue); + $this->label = htmlspecialchars($label); + $this->helpID = $helpID; + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + // print label text + echo '
    '; + echo $this->label; + if ($this->required) { + $graphicsPath = "../../graphics"; + if (is_dir("../graphics")) $graphicsPath = "../graphics"; + echo 'required'; + } + echo '
    '; + echo "\n\n\n"; + // print input field + $return = parent::generateHTML($module, $input, $values, $restricted, $tabindex, $scope); + // print help link + if ($this->helpID != null) { + echo "\n\n\n"; + $helpLink = new htmlHelpLink($this->helpID); + $helpLink->generateHTML($module, $input, $values, $restricted, $tabindex, $scope); + } + return $return; + } + +} + +/** + * Renders a help link. + * + * @package metaHTML + */ +class htmlHelpLink extends htmlElement { + + /** help ID */ + private $helpID; + /** module name if it should be forced */ + private $module; + /** account type if it should be forced */ + private $scope; + + /** + * Constructor + * + * @param String $helpID help ID + * @param String $module module name (optional, only if value from generateHTML() should be overwritten) + * @param String $scope account type (e.g. user) (optional, only if value from generateHTML() should be overwritten) + */ + function __construct($helpID, $module = null, $scope = null) { + $this->helpID = $helpID; + $this->module = $module; + $this->scope = $scope; + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + // overwrite module and scope if needed + if ($this->module != null) { + $module = $this->module; + } + if ($this->scope != null) { + $scope = $this->scope; + } + // print link + $helpEntry = getHelp($module, $this->helpID, $scope); + printHelpLink($helpEntry, $this->helpID, $module, $scope); + return array(); + } + +} + +/** + * Simple button. + * + * @package metaHTML + */ +class htmlButton extends htmlElement { + + /** button name */ + protected $name; + /** button text or image */ + protected $value; + /** image button or text button */ + protected $isImageButton; + /** title */ + private $title = null; + /** enabled or disabled */ + private $isEnabled = true; + /** icon class (CSS) for buttons with icon + text */ + private $iconClass = null; + /** onclick event */ + private $onClick = null; + /** button type (default: "submit" if no onClick and "button" with onClick) */ + private $type = null; + + /** + * Constructor. + * + * @param String $name button name + * @param String $value button text or image (16x16px, relative to graphics folder) + * @param String $isImageButton image or text button (default text) + */ + function __construct($name, $value, $isImageButton = false) { + $this->name = htmlspecialchars($name); + $this->value = htmlspecialchars($value); + $this->isImageButton = $isImageButton; + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + if ($restricted) { + // no buttons in restricted mode + logNewMessage(LOG_ERR, 'Meta HTML: Requested button in restricted mode.'); + return array(); + } + $fieldTabIndex = ' tabindex="' . $tabindex . '"'; + $tabindex++; + $style = ''; + $classList = $this->cssClasses; + $class = ''; + $title = ''; + $name = ' name="' . $this->name . '"'; + // image button + if ($this->isImageButton) { + $classList[] = 'smallImageButton'; + $classList[] = 'align-middle'; + $style = ' style="background-image: url(../../graphics/' . $this->value . '); background-color: transparent;"'; + } + // text button + elseif ($this->iconClass == null) { + $classList[] = 'smallPadding'; + } + if (sizeof($classList) > 0) { + $class = ' class="' . implode(' ', $classList) . '"'; + } + if ($this->title != null) { + $title = ' title="' . $this->title . '"'; + } + $disabled = ''; + if (!$this->isEnabled) { + $disabled = ' disabled'; + } + if ($this->type == null) { + $type = ' type="submit"'; + } + else { + $type = ' type="' . $this->type . '"'; + } + $onClick = ''; + if ($this->onClick != null) { + if ($this->type == null) { + $type = ' type="button"'; + } + $onClick = ' onclick="' . $this->onClick . '"'; + } + $id = ' id="btn_' . preg_replace('/[^a-zA-Z0-9_-]/', '', $this->name) . '"'; + if ($this->isImageButton) { + echo ''; + } + else { + echo '' . $this->value . ''; + // text buttons get JQuery style + $icon = ''; + if ($this->iconClass != null) { + $icon = '{ icons: { primary: \'' . $this->iconClass . '\' } }'; + } + echo ''; + } + return array($this->name => 'submit'); + } + + /** + * Sets the button title (tooltip). + * + * @param String $title title + */ + public function setTitle($title) { + $this->title = htmlspecialchars($title); + } + + /** + * Specifies if this component is enabled and accepts user modification. + * + * @param boolean $isEnabled enabled if true + */ + public function setIsEnabled($isEnabled) { + $this->isEnabled = $isEnabled; + } + + /** + * Sets an additional icon for a text button. + * The icon class is a CSS class that specifies the icon image (e.g. "deleteButton" in layout.css). + * + * @param String $iconClass icon class + */ + public function setIconClass($iconClass) { + $this->iconClass = htmlspecialchars($iconClass); + } + + /** + * Sets the onclick event code. + * This makes this button a simple button that does not submit a form. + * + * @param String $onClick JS code + */ + public function setOnClick($onClick) { + $this->onClick = $onClick; + } + + /** + * Allows to override the default button type ("submit" if no onClick and "button" with onClick). + */ + public function setType($type) { + $this->type = $type; + } + +} + +/** + * Prints a button for the account pages. + * + * @package metaHTML + */ +class htmlAccountPageButton extends htmlButton { + + /** + * Constructor + * + * @param String $targetModule module name which renders next page + * @param String $targetPage name of next page + * @param String $identifier identifier for button + * @param String $value button text or image (16x16px, relative to graphics folder) + * @param String $isImageButton image or text button (default text) + */ + function __construct($targetModule, $targetPage, $identifier, $value, $isImageButton = false, $title = null) { + $this->name = htmlspecialchars('form_subpage_' . $targetModule . '_' . $targetPage . '_' . $identifier); + $this->value = $value; + $this->isImageButton = $isImageButton; + if ($title != null) { + $this->setTitle($title); + } + } + +} + +/** + * Represents a select box. + * + * @package metaHTML + */ +class htmlSelect extends htmlElement { + + /** name of select field */ + private $name; + /** size */ + private $size; + /** allows multi-selection */ + private $multiSelect = false; + /** elements */ + private $elements; + /** selected elements */ + private $selectedElements = array(); + /** descriptive elements */ + private $hasDescriptiveElements = false; + /** contains optgroups */ + private $containsOptgroups = false; + /** sorting enabled */ + private $sortElements = true; + /** right to left text direction */ + private $rightToLeftTextDirection = false; + /** enabled or disabled */ + private $isEnabled = true; + /** width of input element */ + private $width = ''; + /** transform select boxes with one element to text */ + private $transformSingleSelect = true; + /** onchange event */ + private $onchangeEvent = null; + /** indicates that this field should not automatically be saved in the self service or server profile */ + private $transient = false; + /** list of enclosing table rows to hide when checked */ + protected $tableRowsToHide = array(); + /** list of enclosing table rows to show when checked */ + protected $tableRowsToShow = array(); + + /** + * Constructor. + * + *
    Examples: + *
    + *
    $select = new htmlSelect('myName', array('value1', 'value2'), array('value1')); + *
    + *
    $select = new htmlSelect('myName', array('label1' => 'value1', 'label2' => 'value2'), array('value1')); + *
    $select->setHasDescriptiveElements(true); + *
    + *
    $select = new htmlSelect('myName', array('optgroupLabel' => array('value1', 'value2')), array('value1')); + *
    $select->setHasDescriptiveElements(true); + *
    $select->setContainsOptgroups(true); + * + * @param String $name element name + * @param array $elements list of elements array(label => value) or array(value1, value2) or array('optgroup' => array(...)) + * @param array $selectedElements list of selected elements (optional, default none) + * @param int $size size (optional, default = 1) + */ + function __construct($name, $elements, $selectedElements = array(), $size = 1) { + $this->name = htmlspecialchars($name); + $this->elements = $elements; + if ($selectedElements != null) { + $this->selectedElements = $selectedElements; + } + $this->size = htmlspecialchars($size); + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + $this->cssClasses[] = 'ui-corner-all'; + if (isset($values[$this->name])) { + $this->selectedElements = $values[$this->name]; + } + $multi = ''; + $name = ' name="' . $this->name . '" id="' . $this->name . '"'; + if ($this->multiSelect) { + $multi = ' multiple'; + $name = ' name="' . $this->name . '[]" id="' . $this->name . '"'; + } + $size = ' size="' . $this->size . '"'; + $class = ''; + $classList = $this->cssClasses; + if ($this->rightToLeftTextDirection) { + $classList[] = 'rightToLeftText'; + } + $class = ' class="' . implode(' ', $classList) . '"'; + $disabled = ''; + if (!$this->isEnabled) { + $disabled = ' disabled'; + } + $style = ''; + if ($this->width != '') { + $style = ' style="width: ' . $this->width . '"'; + } + $onchange = ''; + if ($this->onchangeEvent != null) { + $onchange = $this->onchangeEvent; + } + if (($this->tableRowsToHide != null) || ($this->tableRowsToShow != null)) { + $this->printCodeForShowHideTableRows($onchange); + } + if ($onchange != '') { + $onchange = ' onchange="' . $onchange . '"'; + } + // hide select boxes that contain less than 2 elements + if ((sizeof($this->elements) < 2) && !$this->multiSelect && $this->transformSingleSelect) { + echo ''; + if ($this->hasDescriptiveElements) { + $keys = array_keys($this->elements); + echo $keys[0]; + } + else { + echo $this->elements[0]; + } + echo ' '; + } + elseif (sizeof($this->elements) == 0) { + echo ''; + } + if ($this->transient) { + return array(); + } + if ($this->multiSelect) { + return array($this->name => 'multiselect'); + } + else { + return array($this->name => 'select'); + } + } + + /** + * Prints the HTML code of the option tags. + * + * @param array $elements list of options + */ + private function printOptionsHTML($elements) { + // sorting + if ($this->sortElements) { + if ($this->hasDescriptiveElements) { + $labels = array_keys($elements); + natcasesort($labels); + $newElements = array(); + foreach ($labels as $label) { + $newElements[$label] = $elements[$label]; + } + $elements = $newElements; + } + else { + natcasesort($elements); + } + } + foreach ($elements as $key => $value) { + $selected = ''; + if ($this->hasDescriptiveElements) { + if (in_array($value, $this->selectedElements)) { + $selected = ' selected'; + } + echo "\n"; + } + else { + if (in_array($value, $this->selectedElements)) { + $selected = ' selected'; + } + echo "" . htmlspecialchars($value) . "\n"; + } + } + } + + /** + * Specifies if the elements are just a simple list or an assoziative array (default: simple list). + * + * @param boolean $hasDescriptiveElements activates descriptive elements + */ + public function setHasDescriptiveElements($hasDescriptiveElements) { + $this->hasDescriptiveElements = $hasDescriptiveElements; + } + + /** + * Specifies if the elements are divided into optgroups. + * + * @param boolean $containsOptgroups activates optgroups + */ + public function setContainsOptgroups($containsOptgroups) { + $this->containsOptgroups = $containsOptgroups; + } + + /** + * Specifies if multi-selection is enabled (default: disabled). + * + * @param boolean $multiSelect allows multi-selection + */ + public function setMultiSelect($multiSelect) { + $this->multiSelect = $multiSelect; + } + + /** + * Specifies if the elemets should be sorted (default: sort). + * + * @param boolean $sortElements sort elements + */ + public function setSortElements($sortElements) { + $this->sortElements = $sortElements; + } + + /** + * Specifies if the text direction should be set to right to left. + * + * @param boolean $rightToLeftTextDirection if true use right to left direction + */ + public function setRightToLeftTextDirection($rightToLeftTextDirection) { + $this->rightToLeftTextDirection = $rightToLeftTextDirection; + } + + /** + * Specifies if this component is enabled and accepts user modification. + * + * @param boolean $isEnabled enabled if true + */ + public function setIsEnabled($isEnabled) { + $this->isEnabled = $isEnabled; + } + + /** + * Specifies the width of this selection box. + * + * @param String $width width (e.g. 20em) + */ + public function setWidth($width) { + $this->width = htmlspecialchars($width); + } + + /** + * Specifies if select boxes that contain only a single element should be transformed to a simple text field. + * + * @param boolean $transformSingleSelect transform single options to text + */ + public function setTransformSingleSelect($transformSingleSelect) { + $this->transformSingleSelect = $transformSingleSelect; + } + + /** + * Sets the JavaScript code for the onchange event. + * + * @param String $onchangeEvent onchange event code (e.g. myfunction();) + */ + public function setOnchangeEvent($onchangeEvent) { + $this->onchangeEvent = htmlspecialchars($onchangeEvent); + } + + /** + * Specifies that the value should not be automatically saved when used in self service or server profile (default: false). + * + * @param boolean $transient transient field + */ + public function setTransient($transient) { + $this->transient = $transient; + } + + /** + * This will hide the given table rows when the select is changed to the specified value. + * The given IDs can be of any e.g. input element. Starting from this element + * the first parent "" element will be used to show/hide. + *
    + *
    + *
    Example: + *
    Using "mycheckbox" will use this "tr" to hide/show. + *
    + *
    Example for $tableRowsToHide: + *
    array('yes' => array('option1', 'option2'), 'no' => array('option3')) + * + * @param array $tableRowsToHide array of select value => array of IDs of child elements to hide + */ + public function setTableRowsToHide($tableRowsToHide) { + $this->tableRowsToHide = $tableRowsToHide; + } + + /** + * This will show the given table rows when the select is changed to the specified value. + * The given IDs can be of any e.g. input element. Starting from this element + * the first parent "" element will be used to show/hide. + *
    + *
    + *
    Example: + *
    Using "mycheckbox" will use this "tr" to hide/show. + *
    + *
    Example for $tableRowsToShow: + *
    array('yes' => array('option1', 'option2'), 'no' => array('option3')) + * + * @param array $tableRowsToShow array of select value => array of IDs of child elements to show + */ + public function setTableRowsToShow($tableRowsToShow) { + $this->tableRowsToShow = $tableRowsToShow; + } + + /** + * Creates the JavaScript code to hide/show table rows based on the select value. + * + * @param String $onChange onChange code + */ + private function printCodeForShowHideTableRows(&$onChange) { + if ((sizeof($this->tableRowsToHide) == 0) && (sizeof($this->tableRowsToShow) == 0)) { + return; + } + $values = array(); + if (!empty($this->tableRowsToHide)) { + $values = array_merge($values, array_keys($this->tableRowsToHide)); + } + if (!empty($this->tableRowsToShow)) { + $values = array_merge($values, array_keys($this->tableRowsToShow)); + } + // build Java script to show/hide depending fields + foreach ($values as $val) { + // build onChange listener + $onChange .= 'if (jQuery(\'#' . $this->name . '\').val() == \'' . $val . '\') {'; + if (isset($this->tableRowsToShow[$val])) { + for ($i = 0; $i < sizeof($this->tableRowsToShow[$val]); $i++) { + $onChange .= 'jQuery(\'#' . $this->tableRowsToShow[$val][$i] . '\').closest(\'tr\').removeClass(\'hidden\');'; + } + } + if (isset($this->tableRowsToHide[$val])) { + for ($i = 0; $i < sizeof($this->tableRowsToHide[$val]); $i++) { + $onChange .= 'jQuery(\'#' . $this->tableRowsToHide[$val][$i] . '\').closest(\'tr\').addClass(\'hidden\');'; + } + } + $onChange .= '};'; + } + // build script to set initial state + $script = ''; + echo $script; + } + +} + +/** + * Select with label and help link. + * + * @package metaHTML + */ +class htmlTableExtendedSelect extends htmlSelect { + + /** descriptive label */ + private $label; + /** help ID */ + private $helpID; + + /** + * Constructor. + * + * @param String $name element name + * @param array $elements list of elememts + * @param array $selectedElements list of selected elements + * @param String $label descriptive label + * @param String $helpID help ID (optional, default none) + * @param int $size size (optional, default = 1) + */ + function __construct($name, $elements, $selectedElements, $label, $helpID = null, $size = 1) { + parent::__construct($name, $elements, $selectedElements, $size); + $this->label = htmlspecialchars($label); + $this->helpID = $helpID; + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + echo '
    '; + echo $this->label; + echo '
    '; + echo "\n\n\n"; + $return = parent::generateHTML($module, $input, $values, $restricted, $tabindex, $scope); + // print help link + if ($this->helpID != null) { + echo "\n\n\n"; + $helpLink = new htmlHelpLink($this->helpID); + $helpLink->generateHTML($module, $input, $values, $restricted, $tabindex, $scope); + } + return $return; + } + +} + +/** + * Represents a radio selection. + * + * @package metaHTML + */ +class htmlRadio extends htmlElement { + + /** name of select field */ + private $name; + /** elements */ + private $elements; + /** selected element */ + private $selectedElement = null; + /** enabled or disabled */ + private $isEnabled = true; + /** on change code */ + private $onchangeEvent = null; + + /** + * Constructor. + * + *
    Examples: + *
    + *
    $radio = new htmlRadio('myName', array('label1' => 'value1', 'label2' => 'value2'), array('value1')); + * + * @param String $name element name + * @param array $elements list of elements array(label => value) + * @param String $selectedElement value of selected element (optional, default none) + */ + function __construct($name, $elements, $selectedElement = null) { + $this->name = htmlspecialchars($name); + $this->elements = $elements; + if ($selectedElement != null) { + $this->selectedElement = $selectedElement; + } + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + if (isset($values[$this->name][0])) { + $this->selectedElement = $values[$this->name][0]; + } + $name = ' name="' . $this->name . '"'; + $disabled = ''; + if (!$this->isEnabled) { + $disabled = ' disabled'; + } + $onchange = ''; + if ($this->onchangeEvent != null) { + $onchange = ' onchange="' . $this->onchangeEvent . '"'; + } + // print radio list + $counter = 0; + foreach ($this->elements as $label => $value) { + $onClick = 'onClick=" + jQuery(\'input[name=' . $this->name . ']\').prop(\'checked\', false); + jQuery(\'#' . $this->name . $counter . '\').prop(\'checked\', true); + jQuery(\'#' . $this->name . $counter . '\').trigger(\'change\'); + "'; + if ($this->isEnabled === false) { + $onClick = ''; + } + echo '
    '; + $selected = ''; + if ($value == $this->selectedElement) { + $selected = ' checked'; + } + echo ' ' . $label; + echo '
    '; + $tabindex++; + $counter++; + } + return array($this->name => 'select'); + } + + /** + * Specifies if this component is enabled and accepts user modification. + * + * @param boolean $isEnabled enabled if true + */ + public function setIsEnabled($isEnabled) { + $this->isEnabled = $isEnabled; + } + + /** + * Sets the JavaScript code for the onchange event. + * + * @param String $onchangeEvent onchange event code (e.g. myfunction();) + */ + public function setOnchangeEvent($onchangeEvent) { + $this->onchangeEvent = htmlspecialchars($onchangeEvent); + } + +} + +/** + * Radio list with descriptive label and help link. + * + * @package metaHTML + */ +class htmlTableExtendedRadio extends htmlRadio { + + /** descriptive label */ + private $label; + /** help ID */ + private $helpID; + + /** + * Constructor. + * + * @param String $label descriptive label + * @param String $name element name + * @param array $elements list of elements array(label => value) + * @param String $selectedElement value of selected element (optional, default none) + * @param String $helpID help ID + */ + function __construct($label, $name, $elements, $selectedElement = null, $helpID = null) { + parent::__construct($name, $elements, $selectedElement); + $this->label = htmlspecialchars($label); + $this->helpID = $helpID; + $this->alignment = htmlElement::ALIGN_TOP; + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + if ($this->label != null) { + echo '
    '; + echo $this->label; + echo '
    '; + echo "\n\n\n"; + } + $return = parent::generateHTML($module, $input, $values, $restricted, $tabindex, $scope); + // print help link + if ($this->helpID != null) { + echo "\n\n\n"; + $helpLink = new htmlHelpLink($this->helpID); + $helpLink->generateHTML($module, $input, $values, $restricted, $tabindex, $scope); + } + return $return; + } + +} + +/** + * Prints the text and escapes contained HTML code by default. + * + * @package metaHTML + */ +class htmlOutputText extends htmlElement { + + /** the text to print */ + private $string; + /** specifies if HTML code should be escaped */ + private $escapeHTML; + /** bold text */ + private $isBold = false; + /** mark as required */ + private $markAsRequired = false; + /** no wrap */ + private $noWrap = false; + + /** + * Constructor. + * + * @param String $string output text + * @param boolean $escapeHTML escape HTML code (default yes) + * @param boolean $markAsRequired mark text like a required field + */ + function __construct($string, $escapeHTML = true, $markAsRequired = false) { + $this->string = $string; + $this->escapeHTML = $escapeHTML; + $this->markAsRequired = $markAsRequired; + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + if ($this->noWrap) { + echo "
    "; + } + if ($this->isBold) { + echo ""; + } + if ($this->escapeHTML) { + echo htmlspecialchars($this->string); + } + else { + echo $this->string; + } + if ($this->markAsRequired) { + $graphicsPath = "../../graphics"; + if (is_dir("../graphics")) $graphicsPath = "../graphics"; + echo 'required'; + } + if ($this->isBold) { + echo ""; + } + if ($this->noWrap) { + echo "
    "; + } + return array(); + } + + /** + * Specifies if the whole text should be printed in bold. + * + * @param boolean $isBold bold text + */ + public function setIsBold($isBold) { + $this->isBold = $isBold; + } + + /** + * Adds a marker that indicates a required field. + * + * @param boolean $markAsRequired add marker + */ + public function setMarkAsRequired($markAsRequired) { + $this->markAsRequired = $markAsRequired; + } + + /** + * Specifies if word wrap is allowed for this text. + * + * @param boolean $noWrap no wrapping if set to true (default false) + */ + public function setNoWrap($noWrap) { + $this->noWrap = $noWrap; + } + +} + +/** + * Prints the HTML code for a checkbox. + * + * @package metaHTML + */ +class htmlInputCheckbox extends htmlElement { + + /** unique name of input element */ + protected $name; + /** value */ + protected $checked; + /** enabled or disabled */ + protected $isEnabled = true; + /** list of enclosing table rows to hide when checked */ + protected $tableRowsToHide = array(); + /** list of enclosing table rows to show when checked */ + protected $tableRowsToShow = array(); + /** indicates that this field should not automatically be saved in the self service or server profile */ + private $transient = false; + /** list of input elements to enable when checked */ + protected $elementsToEnable = array(); + /** list of input elements to disable when checked */ + protected $elementsToDisable = array(); + + + /** + * Constructor. + * + * @param String $name unique name + * @param boolean $checked checked + */ + function __construct($name, $checked) { + $this->name = htmlspecialchars($name); + $this->checked = $checked; + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + if (isset($values[$this->name])) { + if ($values[$this->name][0] == 'true') { + $this->checked = true; + } + else { + $this->checked = false; + } + } + $checked = ''; + if ($this->checked) { + $checked = ' checked'; + } + $tabindexValue = ' tabindex="' . $tabindex . '"'; + $tabindex++; + $disabled = ''; + if (!$this->isEnabled) { + $disabled = ' disabled'; + } + // build Java script to show/hide depending fields + $onChange = ''; + $script = ''; + if ((sizeof($this->tableRowsToShow) > 0) || (sizeof($this->tableRowsToHide) > 0)) { + // build onChange listener + $onChange .= 'if (jQuery(\'#' . $this->name . ':checked\').val() !== undefined) {'; + for ($i = 0; $i < sizeof($this->tableRowsToShow); $i++) { + $onChange .= 'jQuery(\'#' . $this->tableRowsToShow[$i] . '\').closest(\'tr\').removeClass(\'hidden\');'; + } + for ($i = 0; $i < sizeof($this->tableRowsToHide); $i++) { + $onChange .= 'jQuery(\'#' . $this->tableRowsToHide[$i] . '\').closest(\'tr\').addClass(\'hidden\');'; + } + $onChange .= '}'; + $onChange .= 'else {'; + for ($i = 0; $i < sizeof($this->tableRowsToShow); $i++) { + $onChange .= 'jQuery(\'#' . $this->tableRowsToShow[$i] . '\').closest(\'tr\').addClass(\'hidden\');'; + } + for ($i = 0; $i < sizeof($this->tableRowsToHide); $i++) { + $onChange .= 'jQuery(\'#' . $this->tableRowsToHide[$i] . '\').closest(\'tr\').removeClass(\'hidden\');'; + } + $onChange .= '};'; + // build script to set initial state + $script = ''; + } + // build Java script to enable/disable elements + if ((sizeof($this->elementsToEnable) > 0) || (sizeof($this->elementsToDisable) > 0)) { + // build onChange listener + $onChange .= 'if (jQuery(\'#' . $this->name . ':checked\').val() !== undefined) {'; + for ($i = 0; $i < sizeof($this->elementsToEnable); $i++) { + $onChange .= 'jQuery(\'#' . $this->elementsToEnable[$i] . '\').prop(\'disabled\', false);'; + } + for ($i = 0; $i < sizeof($this->elementsToDisable); $i++) { + $onChange .= 'jQuery(\'#' . $this->elementsToDisable[$i] . '\').prop(\'disabled\', true);'; + } + $onChange .= '}'; + $onChange .= 'else {'; + for ($i = 0; $i < sizeof($this->elementsToEnable); $i++) { + $onChange .= 'jQuery(\'#' . $this->elementsToEnable[$i] . '\').prop(\'disabled\', true);'; + } + for ($i = 0; $i < sizeof($this->elementsToDisable); $i++) { + $onChange .= 'jQuery(\'#' . $this->elementsToDisable[$i] . '\').prop(\'disabled\', false);'; + } + $onChange .= '};'; + // build script to set initial state + $script = ''; + } + if (!empty($onChange)) { + $onChange = ' onChange="' . $onChange . '"'; + } + echo ''; + echo $script; + if ($this->transient) { + return array(); + } + return array($this->name => 'checkbox'); + } + + /** + * Specifies if this component is enabled and accepts user modification. + * + * @param boolean $isEnabled enabled if true + */ + public function setIsEnabled($isEnabled) { + $this->isEnabled = $isEnabled; + } + + /** + * This will hide the given table rows when the checkbox is checked. + * The given IDs can be of any e.g. input element. Starting from this element + * the first parent "" element will be used to show/hide. + *
    + *
    + *
    Example: + *
    Using "mycheckbox" will use this "tr" to hide/show. + * + * @param array $tableRowsToHide IDs of child elements to hide + */ + public function setTableRowsToHide($tableRowsToHide) { + $this->tableRowsToHide = $tableRowsToHide; + } + + /** + * This will show the given table rows when the checkbox is checked. + * The given IDs can be of any e.g. input element. Starting from this element + * the first parent "" element will be used to show/hide. + *
    + *
    + *
    Example: + *
    Using "mycheckbox" will use this "tr" to hide/show. + * + * @param array $tableRowsToShow IDs of child elements to show + */ + public function setTableRowsToShow($tableRowsToShow) { + $this->tableRowsToShow = $tableRowsToShow; + } + + /** + * Specifies that the value should not be automatically saved when used in self service or server profile (default: false). + * + * @param boolean $transient transient field + */ + public function setTransient($transient) { + $this->transient = $transient; + } + + /** + * This will disable the given input elements when the checkbox is checked. + * The given IDs can be of any input element (e.g. select, checkbox, ...). + * + * @param array $elements IDs of elements to disable + */ + public function setElementsToDisable($elements) { + $this->elementsToDisable = $elements; + } + + /** + * This will enable the given input elements when the checkbox is checked. + * The given IDs can be of any input element (e.g. select, checkbox, ...). + * + * @param array $elements IDs of elements to enable + */ + public function setElementsToEnable($elements) { + $this->elementsToEnable = $elements; + } + +} + +/** + * Checkbox with descriptive label and help link. + * + * @package metaHTML + */ +class htmlTableExtendedInputCheckbox extends htmlInputCheckbox { + + /** descriptive label */ + private $label; + /** help ID */ + private $helpID; + /** specifies if label is printed before the checkbox */ + private $labelFirst; + + /** + * Constructor. + * + * @param String $name unique name + * @param boolean $checked checked + * @param String $label descriptive label + * @param String $helpID help ID + * @param boolean $labelFirst specifies if the label is at the beginning or at the end (optional, default beginning) + */ + function __construct($name, $checked, $label, $helpID = null, $labelFirst = true) { + parent::__construct($name, $checked); + $this->label = htmlspecialchars($label); + $this->helpID = $helpID; + $this->labelFirst = $labelFirst; + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + $onClick = 'onClick="jQuery(\'#' . $this->name . '\').prop(\'checked\',!jQuery(\'#' . $this->name . '\').prop(\'checked\')); jQuery(\'#' . $this->name . '\').change();"'; + if ($this->labelFirst) { + echo '
    '; + echo $this->label; + echo '
    '; + echo "\n\n\n"; + $return = parent::generateHTML($module, $input, $values, $restricted, $tabindex, $scope); + } + else { + $return = parent::generateHTML($module, $input, $values, $restricted, $tabindex, $scope); + echo "\n\n\n"; + echo '
    '; + echo $this->label; + echo '
    '; + } + // print help link + if ($this->helpID != null) { + echo "\n\n\n"; + $helpLink = new htmlHelpLink($this->helpID); + $helpLink->generateHTML($module, $input, $values, $restricted, $tabindex, $scope); + } + return $return; + } + +} + +/** + * Prints the HTML code for a file upload field. + * + * @package metaHTML + */ +class htmlInputFileUpload extends htmlElement { + + /** unique name of input element */ + private $name; + /** enabled or disabled */ + private $isEnabled = true; + + /** + * Constructor. + * + * @param String $name unique name + */ + function __construct($name) { + $this->name = htmlspecialchars($name); + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + $tabindexValue = ' tabindex="' . $tabindex . '"'; + $tabindex++; + $disabled = ''; + if (!$this->isEnabled) { + $disabled = ' disabled'; + } + echo ''; + return array($this->name => 'file'); + } + + /** + * Specifies if this component is enabled and accepts user modification. + * + * @param boolean $isEnabled enabled if true + */ + public function setIsEnabled($isEnabled) { + $this->isEnabled = $isEnabled; + } + +} + +/** + * File upload with descriptive label and help link. + * + * @package metaHTML + */ +class htmlTableExtendedInputFileUpload extends htmlInputFileUpload { + + /** descriptive label */ + private $label; + /** help ID */ + private $helpID; + + /** + * Constructor. + * + * @param String $name unique name + * @param String $label descriptive label + * @param String $helpID help ID + */ + function __construct($name, $label, $helpID = null) { + parent::__construct($name); + $this->label = htmlspecialchars($label); + $this->helpID = $helpID; + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + echo '
    '; + echo $this->label; + echo '
    '; + echo "\n\n\n"; + $return = parent::generateHTML($module, $input, $values, $restricted, $tabindex, $scope); + // print help link + if ($this->helpID != null) { + echo "\n\n\n"; + $helpLink = new htmlHelpLink($this->helpID); + $helpLink->generateHTML($module, $input, $values, $restricted, $tabindex, $scope); + } + return $return; + } + +} + +/** + * Prints the HTML code for a textarea. + * + * @package metaHTML + */ +class htmlInputTextarea extends htmlElement { + + /** unique name of input element */ + private $name; + /** value */ + private $value; + /** column count */ + private $colCount; + /** row count */ + private $rowCount; + /** enabled or disabled */ + private $isEnabled = true; + /** specifies if LAM should display this field whith a WYSIWYG editor */ + private $richEdit = false; + + /** + * Constructor. + * + * @param String $name unique name + * @param String $value value + * @param int $colCount number of characters per line + * @param int $rowCount number of rows + */ + function __construct($name, $value, $colCount, $rowCount) { + $this->name = htmlspecialchars($name); + $this->value = htmlspecialchars($value); + $this->colCount = htmlspecialchars($colCount); + $this->rowCount = htmlspecialchars($rowCount); + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + $this->cssClasses[] = 'ui-corner-all'; + if (isset($values[$this->name])) { + $this->value = implode("\r\n", $values[$this->name]); + } + $colCount = ' cols="' . $this->colCount . '"'; + $rowCount = ' rows="' . $this->rowCount . '"'; + $tabindexValue = ' tabindex="' . $tabindex . '"'; + $tabindex++; + $disabled = ''; + if (!$this->isEnabled) { + $disabled = ' disabled'; + } + $classList = $this->cssClasses; + $classes = ''; + if ($this->richEdit) { + $classList[] = 'ckeditor'; + } + $classes = ' class="' . implode(' ', $classList) . '"'; + echo ''; + return array($this->name => 'textarea'); + } + + /** + * Specifies if this component is enabled and accepts user modification. + * + * @param boolean $isEnabled enabled if true + */ + public function setIsEnabled($isEnabled) { + $this->isEnabled = $isEnabled; + } + + /** + * Specifies if the textarea should be displayed whith a WYSIWYG editor. + *
    This requires that the page which displays the textarea also includes the ckeditor JS. + *
    Rich editing is disabled by default. + * + * @param boolean $richEdit rich edit or standard + */ + public function setIsRichEdit($richEdit) { + $this->richEdit = $richEdit; + } + +} + +/** + * Text area with label and help link. + * + * @package metaHTML + */ +class htmlTableExtendedInputTextarea extends htmlInputTextarea { + + /** descriptive label */ + private $label; + /** help ID */ + private $helpID; + /** required field */ + private $required = false; + + /** + * Constructor. + * + * @param String $name unique name + * @param String $value value + * @param int $colCount number of characters per line + * @param int $rowCount number of rows + * @param String $label descriptive label + * @param String $helpID help ID + */ + function __construct($name, $value, $colCount, $rowCount, $label, $helpID = null) { + parent::__construct($name, $value, $colCount, $rowCount); + $this->label = htmlspecialchars($label); + $this->helpID = $helpID; + $this->alignment = htmlElement::ALIGN_TOP; + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + echo '
    '; + echo $this->label; + if ($this->required) { + $graphicsPath = "../../graphics"; + if (is_dir("../graphics")) $graphicsPath = "../graphics"; + echo 'required'; + } + echo '
    '; + echo "\n\n\n"; + $return = parent::generateHTML($module, $input, $values, $restricted, $tabindex, $scope); + // print help link + if ($this->helpID != null) { + echo "\n\n\n"; + $helpLink = new htmlHelpLink($this->helpID); + $helpLink->generateHTML($module, $input, $values, $restricted, $tabindex, $scope); + } + return $return; + } + + /** + * Specifies if this input field must be filled. + * + * @param boolean $required required or not + */ + public function setRequired($required) { + $this->required = $required; + } + +} + +/** + * Prints the HTML code for an image. + * + * @package metaHTML + */ +class htmlImage extends htmlElement { + + /** path to image */ + private $path; + /** width */ + private $width; + /** height */ + private $height; + /** alt text */ + private $alt; + + /** + * Constructor. + * + * @param String $path image location + * @param int $width image width (optional, default original size) + * @param int $height image height (optional, default original size) + * @param String $alt alt text (optional) + */ + function __construct($path, $width = null, $height = null, $alt = ' ') { + $this->path = htmlspecialchars($path); + $this->width = $width; + $this->height = $height; + $this->alt = htmlspecialchars($alt); + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + $path = ' src="' . $this->path . '"'; + $width = ''; + if ($this->width != null) { + $width = ' width="' . $this->width . '"'; + } + $height = ''; + if ($this->height != null) { + $height = ' height="' . $this->height . '"'; + } + $alt = ' alt="' . $this->alt . '"'; + echo '\n"; + return array(); + } + +} + +/** + * Adds an empty space with given width and height. + * + * @package metaHTML + */ +class htmlSpacer extends htmlElement { + + /** width of spacer in px */ + private $width; + /** height of spacer in px */ + private $height; + + /** + * Constructor. + * + * @param String $width width (e.g. 10px) + * @param String $height height (e.g. 10px) + */ + function __construct($width, $height) { + $this->width = htmlspecialchars($width); + $this->height = htmlspecialchars($height); + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + $width = ''; + if ($this->width != null) { + $width = 'width: ' . $this->width . ';'; + } + $height = ''; + if ($this->height != null) { + $height = 'height: ' . $this->height . ';'; + } + echo "
    \n"; + return array(); + } + +} + +/** + * Prints a status message (e.g. error message). + * + * @package metaHTML + */ +class htmlStatusMessage extends htmlElement { + + /** message type (e.g. ERROR) */ + private $type; + /** message title */ + private $title; + /** message text */ + private $text; + /** message parameters */ + private $params; + + /** + * Constructor. + * + * @param String $type message type (e.g. ERROR) + * @param String $title message title + * @param String $text message (optional) + * @param array $params additional message parameters + */ + function __construct($type, $title, $text = null, $params = null) { + $this->type = $type; + $this->title = $title; + $this->text = $text; + $this->params = $params; + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + StatusMessage($this->type, $this->title, $this->text, $this->params); + return array(); + } + +} + +/** + * Generates a fieldset. + * + * @package metaHTML + */ +class htmlFieldset extends htmlElement { + + /** fieldset content */ + private $content; + /** descriptive label */ + private $label = null; + /** label image */ + private $labelImage = null; + + /** + * Constructor. + * + * @param htmlElement $content content to display inside fieldset + * @param String $label label + * @param String $labelImage image to put before label + */ + function __construct($content, $label = null, $labelImage = null) { + $this->content = $content; + $this->label = htmlspecialchars($label); + $this->labelImage = htmlspecialchars($labelImage); + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + $class = 'ui-corner-all'; + if ($scope != null) { + $class .= ' ' . $scope . '-border ' . $scope . '-bright'; + } + echo "
    \n"; + // generate legend + if (($this->label != null) || ($this->labelImage != null)) { + echo ""; + if ($this->labelImage != null) { + echo "labelImage . "\" alt=\"\"> "; + } + if ($this->label != null) { + echo $this->label; + } + echo "\n"; + } + $return = $this->content->generateHTML($module, $input, $values, $restricted, $tabindex, $scope); + echo "
    \n"; + return $return; + } + +} + +/** + * Generates a title line. This is used for page titles. + * + * @package metaHTML + */ +class htmlTitle extends htmlElement { + + /** descriptive label */ + private $label = null; + + /** + * Constructor. + * + * @param String $label label + */ + function __construct($label) { + $this->label = htmlspecialchars($label); + // the title should not end at a table cell + $this->colspan = 100; + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + echo "
    \n"; + echo "

    \n"; + echo $this->label; + echo "

    \n"; + echo "
    \n"; + return array(); + } + +} + +/** + * Generates a subtitle line. This is used to group multiple fields. + * + * @package metaHTML + */ +class htmlSubTitle extends htmlElement { + + /** descriptive label */ + private $label = null; + /** optional image */ + private $image = null; + /** optional ID for this element (e.g. to use for JavaScript) */ + private $id = null; + + /** + * Constructor. + * + * @param String $label label + * @param String $image optional image + * @param String $id optional ID for this element (e.g. to use for JavaScript) + */ + function __construct($label, $image = null, $id = null) { + $this->label = htmlspecialchars($label); + $this->image = htmlspecialchars($image); + $this->id = htmlspecialchars($id); + // the title should not end at a table cell + $this->colspan = 100; + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + $idValue = ''; + if ($this->id != null) { + $idValue = ' id="' . $this->id . '"'; + } + echo "
    \n"; + echo "

    \n"; + if ($this->image != null) { + echo '' . $this->label . ' '; + } + echo $this->label; + echo "

    \n"; + echo "
    \n"; + return array(); + } + +} + +/** + * Generates a hidden input field. + * + * @package metaHTML + */ +class htmlHiddenInput extends htmlElement { + + /** field name */ + private $name = null; + /** field value */ + private $value = null; + + /** + * Constructor. + * + * @param String $name input name + * @param String $value input value + */ + function __construct($name, $value) { + $this->name = htmlspecialchars($name); + $this->value = htmlspecialchars($value); + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + echo ''; + return array($this->name => 'hidden'); + } + +} + +/** + * Generates a link. + * The link can include an optional image in front of the link text. + * + * @package metaHTML + */ +class htmlLink extends htmlElement { + + /** link text */ + private $text = null; + /** link target */ + private $target = null; + /** optional image */ + private $image = null; + /** title */ + private $title = null; + /** target window */ + private $targetWindow = null; + /** onClick event */ + private $onClick = null; + /** show as button */ + private $showAsButton = false; + + /** + * Constructor. + * + * @param String $text label + * @param String $target target URL + * @param String $image URL of optional image + * @param boolean $showAsButton shows this like as a button + */ + function __construct($text, $target, $image = null, $showAsButton = false) { + $this->text = htmlspecialchars($text); + $this->target = htmlspecialchars($target); + $this->image = htmlspecialchars($image); + $this->showAsButton = $showAsButton; + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + $image = ''; + if ($this->image != null) { + $image = '' . $this->text . ' '; + } + $title = ''; + if ($this->title != null) { + $title = ' title="' . $this->title . '"'; + } + $targetWindow = ''; + if ($this->targetWindow != null) { + $targetWindow = ' target="' . $this->targetWindow . '"'; + } + $onClick = ''; + if ($this->onClick != null) { + $onClick = ' onclick="' . $this->onClick . '"'; + } + $idAttr = ''; + if ($this->showAsButton) { + $id = 'a_' . preg_replace('/[^a-zA-Z0-9_]+/', '_', $this->target); + $idAttr = ' id="' . $id . '"'; + } + $classAttr = ''; + if (sizeof($this->cssClasses) > 0) { + $classAttr = ' class="' . implode(' ', $this->cssClasses) . '"'; + } + echo '' . $image . $this->text . ''; + if ($this->showAsButton) { + echo ''; + } + return array(); + } + + /** + * Sets the link title. + * + * @param String $title title + */ + public function setTitle($title) { + $this->title = htmlspecialchars($title); + } + + /** + * Sets the target window (e.g. _blank). + * + * @param String $window target window (e.g. _blank) + */ + public function setTargetWindow($window) { + $this->targetWindow = htmlspecialchars($window); + } + + /** + * Sets the onClick event. + * + * @param String $event JavaScript code + */ + public function setOnClick($event) { + $this->onClick = htmlspecialchars($event); + } + +} + +/** + * Groups multiple htmlElements. + * This is useful if multiple elements should be included in a single table cell. + * The HTML code of the subelements is printed in the order they were added. No additional code is added. + * + * @package metaHTML + */ +class htmlGroup extends htmlElement { + + /** link text */ + private $subelements = array(); + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + $return = array(); + for ($i = 0; $i < sizeof($this->subelements); $i++) { + $return = array_merge($return, $this->subelements[$i]->generateHTML($module, $input, $values, $restricted, $tabindex, $scope)); + } + return $return; + } + + /** + * Adds a subelement. + * + * @param htmlElement $sub subelement + */ + public function addElement($sub) { + $this->subelements[] = $sub; + } + +} + +/** + * Prints a horizontal line. + * + * @package metaHTML + */ +class htmlHorizontalLine extends htmlElement { + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + $return = array(); + echo "
    "; + return $return; + } + +} + +/** + * Creates a simple DIV element. + * + * @package metaHTML + */ +class htmlDiv extends htmlElement { + + /** unique ID */ + private $id = null; + /** htmlElement that generates inner content */ + private $content = null; + + /** + * Constructor. + * + * @param String $id unique ID + * @param htmlElement $content inner content + * @param array $classes CSS classes + */ + function __construct($id, $content) { + $this->id = htmlspecialchars($id); + $this->content = $content; + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + $return = array(); + $idValue = ''; + if ($this->id != null) { + $idValue = ' id="' . $this->id . '"'; + } + $classesValue = ''; + if (($this->cssClasses != null) && (sizeof($this->cssClasses) > 0)) { + $classesValue = ' class="' . implode(' ', $this->cssClasses) . '"'; + } + echo ''; + if ($this->content != null) { + $return = $this->content->generateHTML($module, $input, $values, $restricted, $tabindex, $scope); + } + echo ''; + return $return; + } +} + +/** + * Creates a JavaScript element. + * + * @package metaHTML + */ +class htmlJavaScript extends htmlElement { + + /** htmlElement that generates inner content */ + private $content = null; + + /** + * Constructor. + * + * @param String $content script + */ + function __construct($content) { + $this->content = $content; + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + $return = array(); + echo ''; + return $return; + } + +} + +/** + * Sets all given elements to the same width. + * + * @package metaHTML + */ +class htmlEqualWidth extends htmlElement { + + /** list of element IDs */ + private $elements = array(); + + /** + * Constructor. + * + * @param array $elements list of element IDs + */ + function __construct($elements) { + foreach ($elements as $element) { + $this->elements[] = htmlspecialchars($element); + } + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + if (sizeof($this->elements) == 0) { + return array(); + } + $return = array(); + $listContent = "'#" . $this->elements[0] . "'"; + for ($i = 1; $i < sizeof($this->elements); $i++) { + $listContent .= ", '#" . $this->elements[$i] . "'"; + } + echo ''; + return $return; + } + +} + +/** + * Sets all given elements to the same height. + * + * @package metaHTML + */ +class htmlEqualHeight extends htmlElement { + + /** list of element IDs */ + private $elements = array(); + + /** + * Constructor. + * + * @param array $elements list of element IDs + */ + function __construct($elements) { + foreach ($elements as $element) { + $this->elements[] = htmlspecialchars($element); + } + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + if (sizeof($this->elements) == 0) { + return array(); + } + $return = array(); + $listContent = "'#" . $this->elements[0] . "'"; + for ($i = 1; $i < sizeof($this->elements); $i++) { + $listContent .= ", '#" . $this->elements[$i] . "'"; + } + echo ''; + return $return; + } + +} + +/** + * Creates a list of elements that can be sorted by the user via drag'n'drop. + * + * @package metaHTML + */ +class htmlSortableList extends htmlElement { + + /** list of elements */ + private $elements = array(); + /** HTML ID */ + private $id = ''; + /** element width */ + private $elementWidth = ''; + /** on update event */ + private $onUpdate = null; + + /** + * Constructor. + * + * @param array $elements list of element IDs (HTML special chars must be escaped already) + * @param String HTML ID + * @param String $elementWidth width of elements (default 250px) + */ + function __construct($elements, $id, $elementWidth='250px') { + $this->elements = $elements; + $this->id = htmlspecialchars($id); + $this->elementWidth = $elementWidth; + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + if (sizeof($this->elements) == 0) { + return array(); + } + $return = array(); + echo '
      '; + foreach ($this->elements as $element) { + echo '
    • '; + echo $element; + echo '
    • '; + } + echo '
    '; + $onUpdate = ''; + if ($this->onUpdate != null) { + $onUpdate = '{ + update: function(event, ui) {' . $this->onUpdate . '}, + start: function(event, ui) { + var posOrig = ui.item.index(); + ui.item.data(\'posOrig\', posOrig); + } + }'; + } + $scriptContent = ' + jQuery(function() { + $("#' . $this->id . '").sortable(' . $onUpdate . '); + $("#' . $this->id . '").disableSelection(); + });'; + $script = new htmlJavaScript($scriptContent); + $script->generateHTML($module, $input, $values, $restricted, $tabindex, $scope); + return $return; + } + + /** + * Sets the JS code that is executed when the element order was changed. + * The code can access the variables event and ui. See JQueryUI docs for details. + * ui.item.data('posOrig') will contain the original position of the moved element. + * + * @param String $onUpdate JS code + */ + public function setOnUpdate($onUpdate) { + $this->onUpdate = $onUpdate; + } + +} + +/** + * Creates a list of content elements in accordion style. + * HTML special characters must be escaped before providing to htmlAccordion. + */ +class htmlAccordion extends htmlElement { + + private $id = null; + private $elements = null; + private $openInitial = '1'; + private $collapsible = false; + + /** + * Constructor. + * + * @param String $id HTML ID + * @param array $elements list of content elements array('title' => htmlElement) + * @param String $openInitial index of element that is initially opened (default: 0), set to 'false' to close all + * @param boolean $collapsible specifies if all elements may be closed at the same time (default: false, true if $openInitial is false) + */ + function __construct($id, $elements, $openInitial = '0', $collapsible = false) { + $this->id = $id; + $this->elements = $elements; + $this->openInitial = $openInitial; + if (($openInitial === 'false') || ($openInitial === false)) { + $this->collapsible = true; + } + else { + $this->collapsible = $collapsible; + } + } + + /** + * Prints the HTML code for this element. + * + * @param string $module Name of account module + * @param array $input List of meta-HTML elements + * @param array $values List of values which override the defaults in $input (name => value) + * @param boolean $restricted If true then no buttons will be displayed + * @param integer $tabindex Start value of tabulator index for input fields + * @param string $scope Account type + * @return array List of input field names and their type (name => type) + */ + function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { + $result = array(); + $collapsible = 'false'; + if ($this->collapsible) { + $collapsible = 'true'; + } + $active = 'false'; + if ($this->openInitial !== false) { + $active = $this->openInitial; + } + echo '
    '; + foreach ($this->elements as $label => $content) { + echo '

    ' . $label . '

    '; + echo '
    '; + $result = array_merge($result, $content->generateHTML($module, $input, $values, $restricted, $tabindex, $scope)); + echo '
    '; + } + echo '
    '; + $script = 'jQuery(function() { + $( "#' . $this->id . '" ).accordion({ + collapsible: ' . $collapsible . ', + active: ' . $active . ' + }); + });'; + $js = new htmlJavaScript($script); + $js->generateHTML($module, $input, $values, $restricted, $tabindex, $scope); + return $result; + } + + +} + +?> diff --git a/lam/lib/lamPDF.inc b/lam/lib/lamPDF.inc new file mode 100644 index 00000000..ef1cd841 --- /dev/null +++ b/lam/lib/lamPDF.inc @@ -0,0 +1,130 @@ + => array(, , , ) + */ + private $fontList = array( + 'BitstreamVeraSans-Roman' => array('vera.php', 'verab.php', 'verabi.php', 'verai.php') + ); + + /** + * Creates a new lamPDF object. + * + * @param array $page_definitions page settings + * @param String $fontName font name + */ + function __construct($page_definitions = array(),$fontName) { + $this->fontName = $fontName; + if (!defined('FPDF_FONTPATH')) { + define('FPDF_FONTPATH', dirname(__FILE__) . '/font/'); + } + // Call constructor of superclass + $this->FPDF('P','mm','A4'); + + $this->page_definitions = $page_definitions; + + // Open PDF file and write some basic information + $this->Open(); + $this->AddFont($this->fontName, '', $this->fontList[$this->fontName][0]); + $this->AddFont($this->fontName, 'B', $this->fontList[$this->fontName][1]); + $this->AddFont($this->fontName, 'I', $this->fontList[$this->fontName][2]); + $this->AddFont($this->fontName, 'BI', $this->fontList[$this->fontName][3]); + $this->setFont($this->fontName,"",12); + $this->setTitle($this->page_definitions['headline']); + $this->setCreator("LDAP Account Manager"); + $this->setMargins('10.0','10.0','10.0'); + $this->setAutoPageBreak(true,'20.0'); + } + + /** + * Creates the PDF page header. + */ + function header() { + if($this->page_definitions['filename'] != 'none') { + $imageFile = substr(__FILE__,0,strlen(__FILE__)- 14) . "config/pdf/" . $_SESSION['config']->getName() . "/logos/" . $this->page_definitions['filename']; + $imgProperties = getimagesize($imageFile); + $this->Image($imageFile,10,15,($imgProperties[0] / $this->k) / 5, ($imgProperties[1] / $this->k) / 5,0,"JPG"); + } + $this->SetY(23); + $this->SetFont($this->fontName,"B",18); + $this->Cell(170,5,$this->page_definitions['headline'],0,1,"R",0); + $this->Ln(3); + $this->SetLineWidth(0.4); + $this->Line(10,38,200,38); + $this->Line(10,40,200,40); + $this->SetY(50); + //set folding marks + if (isset($this->page_definitions['foldingmarks']) && ($this->page_definitions['foldingmarks'] == 'standard')) { + $this->SetLineWidth(0.2); + $foldingMarks = array(97, 202); + foreach ($foldingMarks as $mark) { + $this->Line(0, $mark, 5, $mark); + } + } + } + + /** + * Creates the PDF page footer. + */ + function footer() { + $this->SetLineWidth(0.4); + $this->Line(10,280,200,280); + $this->Line(10,282,200,282); + $this->SetY(286); + $this->SetFont($this->fontName,"",7); + $this->Cell(0,5,_("This document was automatically created by LDAP Account Manager") . ' (' . date('Y-m-d H:i:s T') . ')',0,0,"C",0); + } +} + +?> \ No newline at end of file diff --git a/lam/lib/lamdaemon.inc b/lam/lib/lamdaemon.inc new file mode 100644 index 00000000..597ca218 --- /dev/null +++ b/lam/lib/lamdaemon.inc @@ -0,0 +1,86 @@ +decrypt_login(); + $serverNameParts = explode(",", $server); + if (sizeof($serverNameParts) > 1) { + $handle = new Net_SSH2($serverNameParts[0], $serverNameParts[1]); + } + else { + $handle = new Net_SSH2($server); + } + if ($handle) { + $sr = @ldap_read($_SESSION['ldap']->server(), $credentials[0], "objectClass=posixAccount", array('uid'), 0, 0, 0, LDAP_DEREF_NEVER); + if (!$sr) { + $return = array("ERROR," . _("Your LAM admin user must be a valid Unix account to work with lamdaemon!") . ","); + return $return; + } + $entry = @ldap_get_entries($_SESSION['ldap']->server(), $sr); + if (!isset($entry[0]['uid'][0])) { + $return = array("ERROR," . _("Your LAM admin user must be a valid Unix account to work with lamdaemon!") . ","); + return $return; + } + $userName = $entry[0]['uid'][0]; + if ($handle->login($userName, $credentials[1])) { + $output = $handle->exec("sudo " . $_SESSION['config']->get_scriptPath() . ' ' . escapeshellarg($command)); + $return = array($output); + return $return; + } + else { + $return = array("ERROR," . _('Unable to connect to remote server!') . "," . $server); + return $return; + } + } + else { + $return = array("ERROR," . _('Unable to connect to remote server!') . "," . $server); + return $return; + } +} + +?> diff --git a/lam/lib/lamdaemon.pl b/lam/lib/lamdaemon.pl new file mode 100755 index 00000000..1de22b9b --- /dev/null +++ b/lam/lib/lamdaemon.pl @@ -0,0 +1,497 @@ +#! /usr/bin/perl + +# $Id$ +# +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) +# Copyright (C) 2003 - 2006 Tilo Lutz +# Copyright (C) 2006 - 2014 Roland Gruber +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# +# LDAP Account Manager daemon to create and delete homedirecotries and quotas + +use Sys::Syslog; + +# Defines the protocol version of the lamdaemon script. +# This will only be changed when additional commands are added etc. +my $LAMDAEMON_PROTOCOL_VERSION = 4; + +my $SPLIT_DELIMITER = "###x##y##x###"; + +# set a known path +my $path = ""; +if (-d "/sbin") { + if ($path eq "") { $path = "/sbin"; } + else { $path = "$path:/sbin"; } +} +if (-d "/usr/sbin") { + if ($path eq "") { $path = "/usr/sbin"; } + else { $path = "$path:/usr/sbin"; } +} +if (-l "/bin") { + if ($path eq "") { $path = "/usr/bin"; } + else { $path = "$path:/usr/bin"; } +} +else { + if ($path eq "") { $path = "/bin:/usr/bin"; } + else { $path = "$path:/bin:/usr/bin"; } +} +if (-d "/opt/sbin") { $path = "$path:/opt/sbin"; } +if (-d "/opt/bin") { $path = "$path:/opt/bin"; } +$ENV{"PATH"} = $path; + +# get hostname +$hostname = `hostname`; +chop($hostname); + +#use strict; # Use strict for security reasons + +@quota_grp; +@quota_usr; # Filesystems with enabled userquotas + # vals = DN, PAssword, user, home, (add|rem), + # quota, (set|get),(u|g), (mountpoint,blocksoft,blockhard,filesoft,filehard)+ + # chown options +$|=1; # Disable buffering + +sub get_fs { # Load mountpoints from mtab if enabled quotas + Quota::setmntent(); + my $i=0; + my @args; + while (my @temp = Quota::getmntent()) { + $args[$i][0] = $temp[0]; + $args[$i][1] = $temp[1]; + $args[$i][2] = $temp[2]; + $args[$i][3] = $temp[3]; + $i++; + } + Quota::endmntent(); + my $j=0; my $k=0; $i=0; + while ($args[$i][0]) { + if ( $args[$i][3] =~ m/usr[j]?quota/ ) { + $quota_usr[$j][0] = $args[$i][0]; + $quota_usr[$j][1] = $args[$i][1]; + $quota_usr[$j][2] = $args[$i][2]; + $quota_usr[$j][3] = $args[$i][3]; + $j++; + } + if ( $args[$i][3] =~ m/grp[j]?quota/ ) { + $quota_grp[$k][0] = $args[$i][0]; + $quota_grp[$k][1] = $args[$i][1]; + $quota_grp[$k][2] = $args[$i][2]; + $quota_grp[$k][3] = $args[$i][3]; + $k++; + } + $i++; + } + } + +# ***************** Check values + +# check if script runs as root +if ($< != 0 ) { + print "ERROR,Lamdaemon ($hostname),Not called as root (user id " . $< . ").\n"; + logMessage(LOG_ERR, "Not called as root (user id " . $< . ")."); + exit 1; +} + +# Drop root privileges +($<, $>) = ($>, $<); +my $input = $ARGV[0]; +$return = ""; +@vals = split ($SPLIT_DELIMITER, $input); +# Get user information +if (($vals[3] eq 'user') || ($vals[1] eq 'home')) { @user = getpwnam($vals[0]); } +else { @user = getgrnam($vals[0]); } +if ($vals[1] eq '') { + # empty line, nothing to do +} +elsif (($vals[1] eq 'test')) { + # run tests + runTest(); +} +elsif ($vals[1] eq 'home') { + manageHomedirs(); +} +elsif ($vals[1] eq 'directory') { + manageDirectories(); +} +elsif ($vals[1] eq 'quota') { + manageQuotas(); +} +else { + $return = "ERROR,Lamdaemon ($hostname),Unknown command $vals[1]."; + logMessage(LOG_ERR, "Unknown command $vals[1]."); +} +print "$return\n"; + +# +# Runs tests to check the environment +# +sub runTest { + # protocol version check + if ($vals[2] eq 'version') { + if ($vals[3] eq $LAMDAEMON_PROTOCOL_VERSION) { + $return = "INFO,Version check ok"; + } + else { + $return = "ERROR,Version check failed. Please upgrade the lamdaemon script to the same version as your main LAM installation."; + } + } + # basic test + elsif ($vals[2] eq 'basic') { + $return = "INFO,Basic test ok"; + } + # quota test + elsif ($vals[2] eq 'quota') { + require Quota; + $return = "INFO,Quota test ok"; + } + # NSS LDAP + elsif ($vals[2] eq 'nss') { + $userName = $vals[3]; + # check if the user exists in /etc/passwd + system("grep", "-q", "^" . $userName . ":", "/etc/passwd"); + if ( $? == 0 ) { + $error = "User $userName is a local user (/etc/passwd) but should be LDAP only."; + $return = "ERROR,$error"; + logMessage(LOG_ERR, $error); + } + else { + # check if home directory is readable + @user = getpwnam($userName); + if ($user[7] eq '') { + $return = "ERROR,Unable to determine home directory of user $userName. Please check that NSS LDAP is correctly configured."; + logMessage(LOG_ERR, "Unable to determine home directory of user $userName. Please check that NSS LDAP is correctly configured."); + } + else { + $return = "INFO,NSS test ok"; + } + } + } + else { + $return = "ERROR,Unknown test: $vals[2]"; + } +} + +# +# Handles all homedir related commands +# +sub manageHomedirs { + if ($vals[2] eq 'add') { + createHomedir(); + } + elsif ($vals[2] eq 'rem') { + removeHomedir(); + } + elsif ($vals[2] eq 'move') { + moveHomedir(); + } + elsif ($vals[2] eq 'check') { + checkHomedir(); + } + else { + # Show error if undefined command is used + $return = "ERROR,Lamdaemon ($hostname),Unknown home command $vals[2]."; + logMessage(LOG_ERR, "Unknown command $vals[2]"); + } +} + +# +# Creates the home directory of the user +# +sub createHomedir { + my $homedir = $vals[3]; + if ($homedir eq '') { + $return = "ERROR,Lamdaemon ($hostname),No home directory specified."; + logMessage(LOG_ERR, "No home directory specified to create."); + return; + } + my $path = $homedir; + # split homedir to set all directories below the last dir. to 0755 + $path =~ s,/(?:[^/]*)$,,; + ($<, $>) = ($>, $<); # Get root privileges + if (! -e $path) { + system 'mkdir', '-m', '0755', '-p', $path; # Create paths to homedir + } + if (! -e $homedir) { + system 'mkdir', '-m', $vals[4], $homedir; # Create homedir itself + system ("(cd /etc/skel && tar cf - .) | (cd $homedir && tar xmf -)"); # Copy /etc/sekl into homedir + system 'chown', '-hR', "$vals[5]:$vals[6]" , $homedir; # Change owner to new user + if (-e '/usr/sbin/useradd.local') { + system '/usr/sbin/useradd.local', $vals[0]; # run useradd-script + system 'chmod', '-R', $vals[4], $homedir; # Edit chmod rights + } + system 'chmod', $vals[4], $homedir; # Edit chmod rights + $return = "INFO,Lamdaemon ($hostname),Home directory created (" . $homedir . ")."; + logMessage(LOG_INFO, "Home directory created (" . $homedir . ")"); + } + else { + $return = "ERROR,Lamdaemon ($hostname),Home directory already exists (" . $homedir . ")."; + logMessage(LOG_ERR, "Home directory already exists (" . $homedir . ")"); + } + ($<, $>) = ($>, $<); # Give up root previleges +} + +# +# Removes the home directory of the user +# +sub removeHomedir { + if ($vals[3] eq '') { + $return = "ERROR,Lamdaemon ($hostname),No home directory specified to delete."; + logMessage(LOG_ERR, "No home directory specified to delete."); + return; + } + ($<, $>) = ($>, $<); # Get root previliges + if (-d $vals[3] && $vals[3] ne '/') { + if ((stat($vals[3]))[4] eq $vals[4]) { + system 'rm', '-R', $vals[3]; # delete home directory + if (-e '/usr/sbin/userdel.local') { + system '/usr/sbin/userdel.local', $vals[0]; + } + $return = "Ok"; + logMessage(LOG_INFO, "Home directory removed (" . $vals[3] . ")"); + } + else { + $return = "ERROR,Lamdaemon ($hostname),Home directory not owned by $vals[4]."; + logMessage(LOG_ERR, "Home directory owned by wrong user (" . $vals[4] . ")"); + } + } + else { + $return = "Ok"; + logMessage(LOG_INFO, "The directory " . $vals[3] . " which should be deleted was not found (skipped)."); + } + ($<, $>) = ($>, $<); # Give up root previleges +} + +# +# Moves the home directory of the user +# +sub moveHomedir { + my $homedir = $vals[3]; + my $owner = $vals[4]; + my $homedirNew = $vals[5]; + if ($homedir eq '') { + $return = "ERROR,Lamdaemon ($hostname),No home directory specified to move."; + logMessage(LOG_ERR, "No home directory specified to move."); + return; + } + if (-d $homedirNew) { + $return = "ERROR,Lamdaemon ($hostname),Directory $homedirNew already exists."; + logMessage(LOG_ERR, "Directory $homedirNew already exists."); + return; + } + ($<, $>) = ($>, $<); # Get root previliges + if (-d $homedir && $homedir ne '/') { + if ((stat($homedir))[4] eq $owner) { + system 'mv', $homedir, $homedirNew; # move home directory + $return = "Ok"; + logMessage(LOG_INFO, "Home directory moved ($homedir - $homedirNew)"); + } + else { + $return = "ERROR,Lamdaemon ($hostname),Home directory not owned by $owner."; + logMessage(LOG_ERR, "Home directory owned by wrong user (" . $owner . ")"); + } + } + else { + $return = "Ok"; + logMessage(LOG_INFO, "The directory " . $homedir . " which should be moved was not found (skipped)."); + } + ($<, $>) = ($>, $<); # Give up root previleges +} + +# +# Checks if the home directory of the user already exists. +# +sub checkHomedir { + my $homedir = $vals[3]; + if ($homedir eq '') { + $return = "ERROR,Lamdaemon ($hostname),No home directory specified to check."; + logMessage(LOG_ERR, "No home directory specified to check."); + return; + } + if (-d $homedir) { + $return = "ok"; + } + else { + $return = "missing"; + } +} + +# +# Handles all directory related commands +# +sub manageDirectories { + if ($vals[2] eq 'add') { + createDirectory(); + } + else { + # Show error if undefined command is used + $return = "ERROR,Lamdaemon ($hostname),Unknown home command $vals[2]."; + logMessage(LOG_ERR, "Unknown command $vals[2]"); + } +} + +# +# Creates a directory of the user +# +sub createDirectory { + my $homedir = $vals[3]; + if ($homedir eq '') { + $return = "ERROR,Lamdaemon ($hostname),No directory specified."; + logMessage(LOG_ERR, "No directory specified to create."); + return; + } + my $path = $homedir; + # split homedir to set all directories below the last dir. to 0755 + $path =~ s,/(?:[^/]*)$,,; + ($<, $>) = ($>, $<); # Get root privileges + if (! -e $path) { + system 'mkdir', '-m', '0755', '-p', $path; # Create paths to homedir + } + if (! -e $homedir) { + system 'mkdir', '-m', $vals[4], $homedir; # Create homedir itself + system 'chown', '-hR', "$vals[5]:$vals[6]" , $homedir; # Change owner to new user + system 'chmod', $vals[4], $homedir; # Edit chmod rights + $return = "INFO,Lamdaemon ($hostname),Directory created (" . $homedir . ")."; + logMessage(LOG_INFO, "Directory created (" . $homedir . ")"); + } + else { + $return = "ERROR,Lamdaemon ($hostname),Directory already exists (" . $homedir . ")."; + logMessage(LOG_ERR, "Directory already exists (" . $homedir . ")"); + } + ($<, $>) = ($>, $<); # Give up root previleges +} + +# +# Handles all quota related commands +# +sub manageQuotas { + require Quota; # Needed to get and set quotas + get_fs(); # Load list of devices with enabled quotas + # Store quota information in array + @quota_temp1 = split (':', $vals[4]); + $group=0; + $i=0; + foreach my $quota_element (@quota_temp1) { + if (length ($quota_element) >= 2) { + @temp = split (',', $quota_element); + $j=0; + foreach my $temp_element (@temp) { + $quota[$i][$j] = $temp_element; + $j++; + } + $i++; + } + } + if ($vals[3] eq 'user') { $group=false; } + else { + $group=1; + @quota_usr = @quota_grp; + } + if ($vals[2] eq 'rem') { + remQuotas(); + } + elsif ($vals[2] eq 'set') { + setQuotas(); + } + elsif ($vals[2] eq 'get') { + getQuotas(); + } + else { + $return = "ERROR,Lamdaemon ($hostname),Unknown quota command $vals[2]."; + logMessage(LOG_ERR, "Unknown command $vals[2]."); + } +} + +# +# Removes the quotas of a user or group +# +sub remQuotas { + $i=0; + ($<, $>) = ($>, $<); # Get root privileges + while ($quota_usr[$i][0]) { + $dev = Quota::getqcarg($quota_usr[$i][1]); + $return = Quota::setqlim($dev,$user[2],0,0,0,0,1,$group); + $i++; + } + ($<, $>) = ($>, $<); # Give up root previleges +} + +# +# Sets the quota values +# +sub setQuotas { + $i=0; + ($<, $>) = ($>, $<); # Get root privileges + while ($quota[$i][0]) { + $dev = Quota::getqcarg($quota[$i][0]); + last if ($dev eq ''); + $return = Quota::setqlim($dev,$user[2],$quota[$i][1],$quota[$i][2],$quota[$i][3],$quota[$i][4],1,$group); + if ($return == -1) { + $return = "ERROR,Lamdaemon ($hostname),Unable to set quota!"; + logMessage(LOG_ERR, "Unable to set quota for $user[0] on " . $quota[$i][0] . "."); + } + else { + logMessage(LOG_INFO, "Set quota for $user[0]."); + } + $i++; + } + ($<, $>) = ($>, $<); # Give up root previleges +} + +# +# Reads the quota values +# +sub getQuotas { + $i=0; + ($<, $>) = ($>, $<); # Get root privileges + while ($quota_usr[$i][0]) { + if ($vals[0]ne'+') { + $dev = Quota::getqcarg($quota_usr[$i][1]); + @temp = Quota::query($dev,$user[2],$group); + if ($temp[0]ne'') { + if ($temp == -1) { + $return = "ERROR,Lamdaemon ($hostname),Unable to read quota!"; + logMessage(LOG_ERR, "Unable to read quota for $user[0]."); + } + else { + $return = "QUOTA_ENTRY $quota_usr[$i][1],$temp[0],$temp[1],$temp[2],$temp[3],$temp[4],$temp[5],$temp[6],$temp[7]:$return"; + } + } + else { $return = "QUOTA_ENTRY $quota_usr[$i][1],0,0,0,0,0,0,0,0:$return"; } + } + else { $return = "QUOTA_ENTRY $quota_usr[$i][1],0,0,0,0,0,0,0,0:$return"; } + $i++; + } + ($<, $>) = ($>, $<); # Give up root previleges +} + +# +# Logs a message to the syslog. +# +# Parameters: level message +# +# level: error level +# message: message text +# +sub logMessage { + my $level = $_[0]; + my $message = $_[1]; + openlog('LAM - lamdaemon','','user'); + syslog($level, $message); + closelog; +} + diff --git a/lam/lib/ldap.inc b/lam/lib/ldap.inc new file mode 100644 index 00000000..b145d425 --- /dev/null +++ b/lam/lib/ldap.inc @@ -0,0 +1,282 @@ +conf = $config; + } + else { + return false; + } + return true; + } + + /** + * Connects to the server using the given username and password + * + * @param string $user user name + * @param string $passwd password + * @param boolean $allowAnonymous specifies if anonymous binds are allowed + * @return mixed if connect succeeds the server handle is returned, else false + */ + function connect($user, $passwd, $allowAnonymous=false) { + // close any prior connection + @$this->close(); + // do not allow anonymous bind + if (!$allowAnonymous && ((!$user)||($user == "")||(!$passwd))) { + return false; + } + // save password und username encrypted + $this->encrypt_login($user, $passwd); + $this->server = @ldap_connect($this->conf->get_ServerURL()); + if ($this->server) { + // use LDAPv3 + ldap_set_option($this->server, LDAP_OPT_PROTOCOL_VERSION, 3); + // referral following + $followReferrals = ($this->conf->getFollowReferrals() === 'true') ? 1 : 0; + ldap_set_option($this->server,LDAP_OPT_REFERRALS, $followReferrals); + // start TLS if specified + $useTLS = $this->conf->getUseTLS(); + if (isset($useTLS) && ($useTLS == "yes")) { + @ldap_start_tls($this->server); + if (ldap_errno($this->server) != 0) { + logNewMessage(LOG_ERR, 'Unable to start TLS encryption. Please check if your server certificate is valid and if the LDAP server supports TLS at all.'); + return ldap_errno($this->server); + } + } + $bind = @ldap_bind($this->server, $user, $passwd); + if ($bind) { + $return = ldap_errno($this->server); + $this->is_connected = true; + // return success number + return $return; + } + // return error number + else return ldap_errno($this->server); + } + else return false; + } + + /** Closes connection to server */ + function close() { + if ($this->server != null) { + @ldap_close($this->server); + } + } + + /** + * Returns the LDAP connection handle + * + * @return object connection handle + */ + function server() { + if (!$this->is_connected) { + $data = $this->decrypt_login(); + $this->connect($data[0], $data[1]); + $this->is_connected = true; + } + return $this->server; + } + + /** Closes connection to LDAP server before serialization */ + function __sleep() { + $this->close(); + // define which attributes to save + return array("conf", "username", "password"); + } + + /** Reconnects to LDAP server when deserialized */ + function __wakeup() { + $this->is_connected = false; + // delete PDF files and images which are older than 15 min + $tmpDir = dirname(__FILE__) . '/../tmp/'; + $time = time(); + $dir = @opendir($tmpDir); + $file = @readdir($dir); + while ($file) { + $path = $tmpDir . $file; + if (($file != '.') && ($file != '..') && ($file != '.htaccess') && !is_dir($path)) { + if ($time - filemtime($path) > 900) { + @unlink($path); + } + } + $file = @readdir($dir); + } + @closedir($dir); + // clean internal files that are older than 24 hours + $tmpDir = dirname(__FILE__) . '/../tmp/internal/'; + $time = time(); + $dir = @opendir($tmpDir); + $file = @readdir($dir); + while ($file) { + if ((substr($file, -4) == '.tmp')) { + $path = $tmpDir . $file; + if ($time - filemtime($path) > (3600 * 24)) { + @unlink($path); + } + } + $file = @readdir($dir); + } + @closedir($dir); + } + + /** + * Encrypts a string + * + * @param string $data string to encrypt + * @param string $prefix prefix for cookie names + * @return object encrypted string + */ + public static function encrypt($data, $prefix='') { + // use MCrypt if available + if (function_exists('mcrypt_create_iv')) { + // MCrypt may have been enabled in a running session + if (!isset($_COOKIE[$prefix . "IV"]) || ($_COOKIE[$prefix . "IV"] == '')) return $data; + if ($_COOKIE[$prefix . "IV"] == "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") { + return $data; + } + // read key and iv from cookie + $iv = base64_decode($_COOKIE[$prefix . "IV"]); + $key = base64_decode($_COOKIE[$prefix . "Key"]); + // encrypt string + return mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, base64_encode($data), MCRYPT_MODE_ECB, $iv); + } + // otherwise do not encrypt + else { + return $data; + } + } + + /** + * Decrypts a string + * + * @param object $data string to decrypt + * @param string $prefix prefix for cookie names + * @return string decrypted string + */ + public static function decrypt($data, $prefix='') { + // use MCrypt if available + if (function_exists('mcrypt_create_iv')) { + // MCrypt may have been enabled in a running session + if (!isset($_COOKIE[$prefix . "IV"]) || ($_COOKIE[$prefix . "IV"] == '')) return $data; + if ($_COOKIE[$prefix . "IV"] == "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") { + return $data; + } + // read key and iv from cookie + $iv = base64_decode($_COOKIE[$prefix . "IV"]); + $key = base64_decode($_COOKIE[$prefix . "Key"]); + // decrypt string + $ret = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $data, MCRYPT_MODE_ECB, $iv); + $ret = base64_decode(str_replace(chr(00), "", $ret)); + return $ret; + } + // otherwise do not decrypt + else { + return $data; + } + } + + /** + * Encrypts username and password + * + * @param string $username LDAP user name + * @param string $password LDAP password + */ + function encrypt_login($username, $password) { + // encrypt username and password + $this->username = base64_encode($this->encrypt($username)); + $this->password = base64_encode($this->encrypt($password)); + } + + /** + * Decrypts username and password + * + * @return array array(user name, password) + */ + function decrypt_login() { + // decrypt username and password + $username = $this->decrypt(base64_decode($this->username)); + $password = $this->decrypt(base64_decode($this->password)); + $ret = array($username, $password); + return $ret; + } + + /** Closes connection to LDAP server and deletes encrypted username/password */ + function destroy() { + $this->close(); + $this->username="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; + $this->password="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; + } + + +} + +?> diff --git a/lam/lib/lists.inc b/lam/lib/lists.inc new file mode 100644 index 00000000..ac5002e8 --- /dev/null +++ b/lam/lib/lists.inc @@ -0,0 +1,1340 @@ + sorted index) */ + protected $sortMapping; + + /** list of filters (attribute name => filter input) */ + protected $filters = array(); + + /** list of possible LDAP suffixes(organizational units) */ + protected $possibleSuffixes; + + /** list of account specific labels */ + protected $labels; + + /** configuration options */ + private $configOptions; + + /** tabindex for GUI elements */ + protected $tabindex = 1; + + /** ID for list size config option */ + const LIST_SIZE_OPTION_NAME = "L_SIZE"; + + /** prefix for virtual (non-LDAP) attributes */ + const VIRTUAL_ATTRIBUTE_PREFIX = 'lam_virtual_'; + + /** + * Constructor + * + * @param string $type account type + * @return lamList list object + */ + public function __construct($type) { + $this->type = $type; + $this->labels = array( + 'nav' => _("Object count: %s"), + 'error_noneFound' => _("No objects found!"), + 'newEntry' => _("New object"), + 'deleteEntry' => _("Delete selected objects")); + $this->configOptions = $this->listGetAllConfigOptions(); + $this->listReadOptionsFromCookie(); + } + + /** + * Reads the list options from the cookie value. + */ + private function listReadOptionsFromCookie() { + if (sizeof($this->configOptions) > 0) { + if (isset($_COOKIE["ListOptions_" . $this->type])) { + $cookieValue = $_COOKIE["ListOptions_" . $this->type]; + $valueParts = explode(";", $cookieValue); + $values = array(); + for ($i = 0; $i < sizeof($valueParts); $i++) { + $key_value = explode('=', $valueParts[$i]); + if (sizeof($key_value) == 2) { + $values[$key_value[0]] = $key_value[1]; + } + } + for ($i = 0; $i < sizeof($this->configOptions); $i++) { + if (isset($values[$this->configOptions[$i]->getID()])) { + $this->configOptions[$i]->setValue($values[$this->configOptions[$i]->getID()]); + } + } + // notify subclasses + $this->listConfigurationChanged(); + } + } + } + + /** + * Prints the HTML code to display the list view. + */ + public function showPage() { + $this->tabindex = 1; + // do POST actions + $postFragment = $this->listDoPost(); + // get some parameters + $this->listGetParams(); + // print HTML head + $this->listPrintHeader(); + // print messages when redirected from other pages + $this->listPrintRedirectMessages(); + // refresh data if needed + if ($this->refresh) { + $this->listBuildFilter(); + $this->listRefreshData(); + } + // sort rows by sort column + if (isset($this->entries)) { + $this->listCreateSortMapping($this->entries); + } + // insert HTML fragment from listDoPost + echo $postFragment; + // config dialog + $this->listPrintConfigurationPage(); + // show form + echo "
    "; + echo "
    \n"; + echo ("
    type . "&norefresh=true\" method=\"post\">\n"); + // draw account list if accounts were found + if (sizeof($this->entries) > 0) { + // buttons + $this->listPrintButtons(false); + echo ("
    \n"); + // navigation bar + $this->listDrawNavigationBar(sizeof($this->entries)); + echo ("
    \n"); + echo "
    "; + // account table head + $this->listPrintTableHeader(); + // account table body + $this->listPrintTableBody($this->entries); + echo "
    "; + } + else { + // buttons + $this->listPrintButtons(true); + echo ("
    \n"); + // navigation bar + $this->listDrawNavigationBar(sizeof($this->entries)); + echo ("
    \n"); + // account table head + $this->listPrintTableHeader(); + echo "
    \n"; + } + $this->listPrintFooter(); + } + + /** + * Builds the regular expressions from the filter values. + */ + protected function listBuildFilter() { + if (isset($_GET['accountEditBack'])) { + return; + } + $filter = array(); + $this->filters = array(); + if (!isset($_POST['clear_filter'])) { + // build filter array + for ($i = 0; $i < sizeof($this->attrArray); $i++) { + $foundFilter = null; + if (isset($_GET["filter" . strtolower($this->attrArray[$i])])) { + $foundFilter = $_GET["filter" . strtolower($this->attrArray[$i])]; + } + if (isset($_POST["filter" . strtolower($this->attrArray[$i])])) { + $foundFilter = $_POST["filter" . strtolower($this->attrArray[$i])]; + } + if (isset($foundFilter) && ($foundFilter != '')) { + if (preg_match('/^([\p{L}\p{N} _\\*\\$\\.@-])+$/iu', $foundFilter)) { // \p{L} matches any Unicode letter + $this->filters[strtolower($this->attrArray[$i])] = $foundFilter; + } + else { + StatusMessage('ERROR', _('Please enter a valid filter. Only letters, numbers and " _*$.@-" are allowed.'), htmlspecialchars($foundFilter)); + } + } + } + } + } + + /** + * Determines the sort mapping and stores it in $this->sortMapping. + * The sort mapping is used to display the right rows when the account table is created. + * + * @param array $info the account list + */ + protected function listCreateSortMapping(&$info) { + if (!is_array($this->attrArray)) return; + if (!is_string($this->sortColumn)) return; + $toSort = array(); + $col = $this->sortColumn; + $size = sizeof($info); + if ($this->sortColumn != 'dn') { + for ($i = 0; $i < $size; $i++) { + // sort by first attribute with name $sort + $toSort[] = &$info[$i][$col][0]; + } + } + else { + for ($i = 0; $i < $size; $i++) { + $toSort[] = &$info[$i][$col]; + } + } + natcasesort($toSort); + $sortResult = array(); + if ($this->sortDirection == 1) { + foreach ($toSort as $orig => $val) { + $sortResult[] = $orig; + } + } + else { + $counter = sizeof($toSort); + foreach ($toSort as $orig => $val) { + $counter--; + $sortResult[$counter] = $orig; + } + } + $this->sortMapping = &$sortResult; + } + + /** + * Draws a navigation bar to switch between pages + * + * @param integer $count number of account entries + */ + protected function listDrawNavigationBar($count) { + $filter = $this->getFilterAsTextForURL(); + echo("\n"); + echo("\n"); + echo(""); + + if ($count > $this->maxPageEntries) { + echo(""; + } + echo "
    "); + printf($this->labels['nav'], $count); + echo(""); + if ($this->page != 1) { + echo("type . "&norefresh=true&page=1" . + "&sort=" . $this->sortColumn . "&sortdirection=" . $this->sortDirection . $filter . "\">" . + "\"\"\n"); + } + if ($this->page > 10) { + echo("type . "&norefresh=true&page=" . ($this->page - 10) . + "&sort=" . $this->sortColumn . "&sortdirection=" . $this->sortDirection . $filter . "\">" . + "\"\"\n"); + } + for ($i = $this->page - 6; $i < ($this->page + 5); $i++) { + if ($i >= ($count / $this->maxPageEntries)) { + break; + } + elseif ($i < 0) { + continue; + } + if ($i == $this->page - 1) { + echo ' ' . ($i + 1) . ' '; + } + else { + echo " type . "&norefresh=true&page=" . ($i + 1) . + "&sort=" . $this->sortColumn . "&sortdirection=" . $this->sortDirection . $filter . "\">" . ($i + 1) . "\n"; + } + } + if ($this->page < (($count / $this->maxPageEntries) - 10)) { + echo("type . "&norefresh=true&page=" . ($this->page + 10) . + "&sort=" . $this->sortColumn . "&sortdirection=" . $this->sortDirection . $filter . "\">" . + "\"\"\n"); + } + if ($this->page < ($count / $this->maxPageEntries)) { + echo("type . "&norefresh=true&page=" . ceil(($count / $this->maxPageEntries)) . + "&sort=" . $this->sortColumn . "&sortdirection=" . $this->sortDirection . $filter . "\">" . + "\"\"\n"); + } + echo "
    \n"; + } + + /** + * Returns the filter as text to be used as URL parameter. + * + * @return String filter text + */ + protected function getFilterAsTextForURL() { + $text = ''; + foreach ($this->filters as $attr => $filter) { + $text .= "&filter" . strtolower($attr) . '=' . $filter; + } + return $text; + } + + /** + * Prints the attribute and filter row at the account table head + */ + protected function listPrintTableHeader() { + $filter = $this->getFilterAsTextForURL(); + // print table header + echo "type . "-border collapse accountlist ui-corner-all\" width=\"100%\">\n"; + echo "type . "-dark\">\n"; + echo "\n"; + echo "\n"; + // table header + for ($k = 0; $k < sizeof($this->descArray); $k++) { + if (strtolower($this->attrArray[$k]) == $this->sortColumn) { + $sortImage = "sort_asc.png"; + if ($this->sortDirection < 0) { + $sortImage = "sort_desc.png"; + } + echo "\n"; + } + else echo "\n"; + } + echo "\n"; + + // print filter row + echo "type . "-bright\">\n"; + echo "\n"; + echo "\n"; + // print input boxes for filters + for ($k = 0; $k < sizeof ($this->descArray); $k++) { + echo "\n"; + } + echo "\n"; + } + + /** + * Returns if the given attribute can be filtered. + * If filtering is not possible then no filter box will be displayed. + * By default all attributes can be filtered. + * + * @param String $attr attribute name + * @return boolean filtering possible + */ + protected function canBeFiltered($attr) { + return true; + } + + /** + * Prints the entry list + * + * @param array $info entries + */ + protected function listPrintTableBody(&$info) { + echo "\n"; + // calculate which rows to show + $table_begin = ($this->page - 1) * $this->maxPageEntries; + if (($this->page * $this->maxPageEntries) > sizeof($info)) $table_end = sizeof($info); + else $table_end = ($this->page * $this->maxPageEntries); + // get sort mapping + $sortMapping = &$this->sortMapping; + if (empty($sortMapping)) { + $sortMapping = array(); + $infoSize = sizeof($info); + for ($i = 0; $i < $infoSize; $i++) { + $sortMapping[$i] = $i; + } + } + // print account list + for ($i = $table_begin; $i < $table_end; $i++) { + $index = $sortMapping[$i]; + $rowID = base64_encode($info[$index]['dn']); + if ((($i - $table_begin) % 2) == 1) { + $classes = ' ' . $this->type . '-bright'; + } + else { + $classes = ' ' . $this->type . '-dark'; + } + echo("type . "&DN=" . rawurlencode($info[$index]['dn']) . "'\">\n"); + echo " \n"; + $this->listPrintToolLinks($info[$index], $rowID); + for ($k = 0; $k < sizeof($this->attrArray); $k++) { + echo ("\n"); + } + echo("\n"); + } + // display select all link + $colspan = sizeof($this->attrArray) + 1; + echo "type . "-bright\">\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \"select " . + "" . _("Select all") . "type . "&". + "sort=" . strtolower($this->attrArray[$k]) . $filter . "&norefresh=y" . "\">" . $this->descArray[$k] . + " \"sorttype . "&". + "sort=" . strtolower($this->attrArray[$k]) . $filter . "&norefresh=y" . "\">" . $this->descArray[$k] . "
    "; + printHelpLink(getHelp('', '250'), '250'); + echo ""; + $filterGroup = new htmlGroup(); + $filterButton = new htmlButton('apply_filter', 'filter.png', true); + $filterButton->setTitle(_("Filter")); + $filterGroup->addElement($filterButton); + if (sizeof($this->filters) > 0) { + $filterGroup->addElement(new htmlSpacer('1px', null)); + $clearFilterButton = new htmlButton('clear_filter', 'clearFilter.png', true); + $clearFilterButton->setTitle(_('Clear filter')); + $filterGroup->addElement($clearFilterButton); + } + parseHtml(null, $filterGroup, array(), false, $this->tabindex, $this->type); + echo ""; + if ($this->canBeFiltered($this->attrArray[$k])) { + $value = ""; + if (!isset($_POST['clear_filter'])) { + if (isset($this->filters[strtolower($this->attrArray[$k])])) { + $value = $this->filters[strtolower($this->attrArray[$k])]; + } + } + $filterInput = new htmlInputField('filter' . strtolower($this->attrArray[$k]), $value); + $filterInput->setCSSClasses(array($this->type . '-dark')); + $filterInput->setFieldSize('15'); + $filterInput->setOnKeyPress("SubmitForm('apply_filter', event);"); + parseHtml(null, $filterInput, array(), false, $this->tabindex, $this->type); + } + echo "
    "); + $attrName = strtolower($this->attrArray[$k]); + $this->listPrintTableCellContent($info[$index], $attrName); + echo ("
    \"select " . + "" . _("Select all") . "
    \n"; + } + + /** + * Prints the tool image links (e.g. edit and delete) for each account. + * + * @param array $account LDAP attributes + * @param String $id account ID + */ + private function listPrintToolLinks($account, $id) { + $toolCount = 0; + $group = new htmlGroup(); + // edit link + $editLink = new htmlLink('', "../account/edit.php?type=" . $this->type . "&DN='" . rawurlencode($account['dn']) . "'", '../../graphics/edit.png'); + $editLink->setTitle(_("Edit")); + $group->addElement($editLink); + $toolCount++; + // delete link + if (checkIfWriteAccessIsAllowed($this->type) && checkIfDeleteEntriesIsAllowed($this->type)) { + $deleteLink = new htmlLink('', "deletelink.php?type=" . $this->type . "&DN='" . rawurlencode($account['dn']) . "'", '../../graphics/delete.png'); + $deleteLink->setTitle(_("Delete")); + $group->addElement($deleteLink); + $toolCount++; + } + // PDF button + $pdfButton = new htmlButton("createPDF_" . $id, 'pdf.png', true); + $pdfButton->setTitle(_('Create PDF file')); + $group->addElement($pdfButton); + $toolCount++; + // additional tools + $tools = $this->getAdditionalTools(); + for ($i = 0; $i < sizeof($tools); $i++) { + $toolLink = new htmlLink('', $tools[$i]->getLinkTarget() . "?type=" . $this->type . "&DN='" . rawurlencode($account['dn']) . "'", '../../graphics/' . $tools[$i]->getImage()); + $toolLink->setTitle($tools[$i]->getName()); + $group->addElement($toolLink); + $toolCount++; + } + $width = ($toolCount * 20) + 20; + echo ""; + parseHtml(null, $group, array(), false, $this->tabindex, $this->type); + echo "\n"; + } + + /** + * Prints the content of a cell in the account list for a given LDAP entry and attribute. + * + * @param array $entry LDAP attributes + * @param string $attribute attribute name + */ + protected function listPrintTableCellContent(&$entry, &$attribute) { + // print all attribute entries seperated by "; " + if (isset($entry[$attribute]) && sizeof($entry[$attribute]) > 0) { + if (is_array($entry[$attribute])) { + // sort array + sort($entry[$attribute]); + echo htmlspecialchars(implode("; ", $entry[$attribute]), ENT_QUOTES, "UTF-8"); + } + else { + echo htmlspecialchars($entry[$attribute], ENT_QUOTES, "UTF-8"); + } + } + } + + /** + * Manages all POST actions (e.g. button pressed) for the account lists. + * + * @return String HTML fragment to insert into beginning of account list + */ + protected function listDoPost() { + // check if button was pressed and if we have to add/delete an account or call file upload + if (isset($_POST['new']) || isset($_POST['del']) || isset($_POST['fileUpload'])){ + if (!checkIfWriteAccessIsAllowed($this->type)) { + die(); + } + // add new account + if (isset($_POST['new']) && checkIfNewEntriesAreAllowed($this->type)){ + metaRefresh("../account/edit.php?type=" . $this->type . "&suffix=" . $this->suffix); + exit; + } + // delete account(s) + elseif (isset($_POST['del']) && checkIfDeleteEntriesIsAllowed($this->type)){ + // search for checkboxes + $accounts = array_keys($_POST, "on"); + // build DN list + $_SESSION['delete_dn'] = array(); + for ($i = 0; $i < sizeof($accounts); $i++) { + $_SESSION['delete_dn'][] = base64_decode($accounts[$i]); + } + if (sizeof($accounts) > 0) { + metaRefresh("../delete.php?type=" . $this->type); + exit; + } + } + // file upload + elseif (isset($_POST['fileUpload']) && checkIfNewEntriesAreAllowed($this->type)){ + metaRefresh("../masscreate.php?type=" . $this->type); + exit; + } + } + // PDF button + foreach ($_POST as $key => $value) { + if (strpos($key, 'createPDF_') > -1) { + $parts = explode("_", $key); + if (sizeof($parts) == 2) { + $this->showPDFPage($parts[1]); + exit; + } + } + } + // PDF creation Ok + if (isset($_POST['createPDFok'])) { + $pdfStruct = $_POST['pdf_structure']; + $option = $_POST['createFor']; + $filename = ''; + // create for clicked account + if ($option == 'DN') { + $_SESSION["accountPDF"] = new accountContainer($this->type, "accountPDF"); + $_SESSION["accountPDF"]->load_account(base64_decode($_POST['clickedAccount'])); + $filename = createModulePDF(array($_SESSION["accountPDF"]),$pdfStruct); + unset($_SESSION["accountPDF"]); + } + // create for all selected accounts + elseif ($option == 'SELECTED') { + // search for checkboxes + $accounts = array_keys($_POST, "on"); + $list = array(); + // load accounts from LDAP + for ($i = 0; $i < sizeof($accounts); $i++) { + $_SESSION["accountPDF-$i"] = new accountContainer($this->type, "accountPDF-$i"); + $_SESSION["accountPDF-$i"]->load_account(base64_decode($accounts[$i])); + $list[$i] = $_SESSION["accountPDF-$i"]; + } + if (sizeof($list) > 0) { + $filename = createModulePDF($list,$pdfStruct); + for ($i = 0; $i < sizeof($accounts); $i++) { + unset($_SESSION["accountPDF-$i"]); + } + } + } + // create for all accounts + elseif ($option == 'ALL') { + $list = array(); + $entriesCount = sizeof($this->entries); + for ($i = 0; $i < $entriesCount; $i++) { + $_SESSION["accountPDF-$i"] = new accountContainer($this->type, "accountPDF-$i"); + $_SESSION["accountPDF-$i"]->load_account($this->entries[$i]['dn']); + $list[$i] = $_SESSION["accountPDF-$i"]; + } + if (sizeof($list) > 0) { + $filename = createModulePDF($list,$pdfStruct); + for ($i = 0; $i < $entriesCount; $i++) { + // clean session + unset($_SESSION["accountPDF-$i"]); + } + } + } + elseif ($option == 'SESSION') { + $filename = createModulePDF(array($_SESSION[$_POST['PDFSessionID']]),$pdfStruct); + unset($_SESSION[$_POST['PDFSessionID']]); + } + if ($filename != '') { + return ""; + } + } + // check if back from configuration page + if (sizeof($this->configOptions) > 0) { + if (isset($_POST['saveConfigOptions'])) { + $cookieValue = ''; + for ($i = 0; $i < sizeof($this->configOptions); $i++) { + $this->configOptions[$i]->fillFromPostData(); + $cookieValue .= $this->configOptions[$i]->getID() . "=" . $this->configOptions[$i]->getValue() . ';'; + } + // save options as cookie for one year + setcookie("ListOptions_" . $this->type, $cookieValue, time()+60*60*24*365, "/"); + // notify subclasses + $this->listConfigurationChanged(); + } + } + return ''; + } + + /** + * Shows the page where the user may select the PDF options. + * + * @param String $id account ID + */ + private function showPDFPage($id) { + $sessionObject = null; + $PDFSessionID = null; + if (($id == null) && isset($_GET['PDFSessionID'])) { + $PDFSessionID = $_GET['PDFSessionID']; + $sessionObject = $_SESSION[$PDFSessionID]; + } + // search for checkboxes + $selAccounts = array_keys($_POST, "on"); + if (!in_array($id, $selAccounts)) { + $selAccounts[] = $id; + } + // get possible PDF structures + $pdf_structures = getPDFStructureDefinitions($this->type); + + $this->listPrintHeader(); + + echo "
    type . "-bright\">"; + echo "
    \n"; + $refresh = '&norefresh=true'; + if (isset($_GET['refresh']) && ($_GET['refresh'] == 'true')) { + $refresh = '&refresh=true'; + } + echo "type . $refresh . "\" method=\"post\">\n"; + + $container = new htmlTable(); + $container->addElement(new htmlSubTitle(_('Create PDF file')), true); + + $container->addElement(new htmlTableExtendedSelect('pdf_structure', $pdf_structures, array('default'), _('PDF structure'), '405'), true); + + $container->addElement(new htmlSpacer(null, '5px'), true); + $container->addElement(new htmlOutputText(_('Create for'))); + // check if account object is already in session + if ($sessionObject != null) { + $container->addElement(new htmlOutputText($sessionObject->finalDN)); + $container->addElement(new htmlHiddenInput('createFor', 'SESSION')); + $container->addElement(new htmlHiddenInput('PDFSessionID', $PDFSessionID), true); + } + else { + $radioOptions = array( + getAbstractDN(base64_decode($id)) => 'DN', + sprintf(_('All selected accounts (%s)'), sizeof($selAccounts)) => 'SELECTED', + sprintf(_('All accounts (%s)'), sizeof($this->entries)) => 'ALL' + ); + $container->addElement(new htmlRadio('createFor', $radioOptions, 'DN'), true); + } + + $container->addElement(new htmlSpacer(null, '10px'), true); + $buttonContainer = new htmlTable(); + $buttonContainer->colspan = 3; + $buttonContainer->addElement(new htmlButton('createPDFok', _('Ok'))); + $buttonContainer->addElement(new htmlButton('createPDFCancel', _('Cancel'))); + $container->addElement($buttonContainer, true); + // hidden inputs for selected accounts + for ($i = 0; $i < sizeof($selAccounts); $i++) { + $container->addElement(new htmlHiddenInput($selAccounts[$i], 'on')); + } + $container->addElement(new htmlHiddenInput('clickedAccount', $id)); + + parseHtml(null, $container, array(), false, $this->tabindex, $this->type); + + $this->listPrintFooter(); + } + + /** + * Prints a combobox with possible sub-DNs. + * + * @return htmlGroup OU selection (may be empty) + */ + protected function listShowOUSelection() { + $group = new htmlGroup(); + if (sizeof($this->possibleSuffixes) > 1) { + $suffixList = array(); + for ($i = 0; $i < sizeof($this->possibleSuffixes); $i++) { + $suffixList[getAbstractDN($this->possibleSuffixes[$i])] = $this->possibleSuffixes[$i]; + } + $suffixSelect = new htmlSelect('suffix', $suffixList, array($this->suffix)); + $suffixSelect->setOnchangeEvent("listOUchanged('" . $this->type . "', this)"); + $suffixSelect->setRightToLeftTextDirection(true); + $suffixSelect->setSortElements(false); + $suffixSelect->setHasDescriptiveElements(true); + $group->addElement($suffixSelect); + $group->addElement(new htmlSpacer('5px', null)); + } + return $group; + } + + /** + * Prints the create and delete buttons. + * + * @param boolean $createOnly true if only the create button should be displayed + * @param int $tabindex HTML tabindex counter + */ + protected function listPrintButtons($createOnly) { + $table = new htmlTable('100%'); + $left = new htmlGroup(); + // button part + $left->alignment = htmlElement::ALIGN_LEFT; + if (checkIfWriteAccessIsAllowed($this->type)) { + // add button + if (checkIfNewEntriesAreAllowed($this->type)) { + $newButton = new htmlButton('new', $this->labels['newEntry']); + $newButton->setIconClass('createButton'); + $left->addElement($newButton); + } + // delete button + if (!$createOnly && checkIfDeleteEntriesIsAllowed($this->type)) { + $left->addElement(new htmlSpacer('1px', null)); + $delButton = new htmlButton('del', $this->labels['deleteEntry']); + $delButton->setIconClass('deleteButton'); + $left->addElement($delButton); + } + $type = new $this->type(); + $toolSettings = $_SESSION['config']->getToolSettings(); + if ($type->supportsFileUpload() && checkIfNewEntriesAreAllowed($this->type) + && !(isset($toolSettings['tool_hide_toolFileUpload']) && ($toolSettings['tool_hide_toolFileUpload'] == 'true'))) { + $left->addElement(new htmlSpacer('20px', null)); + $uploadButton = new htmlButton('fileUpload', _('File upload')); + $uploadButton->setIconClass('upButton'); + $left->addElement($uploadButton); + } + } + + // OU selection and settings + $right = new htmlGroup(); + $right->alignment = htmlElement::ALIGN_RIGHT; + $right->addElement($this->listShowOUSelection()); + $refreshButton = new htmlButton('refresh', 'refresh.png', true); + $refreshButton->setTitle(_("Refresh")); + $right->addElement($refreshButton); + $right->addElement(new htmlSpacer('1px', null)); + $settingsLink = new htmlLink('', '#', '../../graphics/tools.png'); + $settingsLink->setOnClick('listShowSettingsDialog(\'' . _('Change list settings') . '\', \'' . _('Ok') . '\', \'' . _('Cancel') . '\');'); + $settingsLink->setTitle(_('Change settings')); + $right->addElement($settingsLink); + + $this->addExtraInputElementsToTopArea($left, $right); + $table->addElement($left); + $table->addElement($right); + parseHtml(null, $table, array(), false, $this->tabindex, $this->type); + } + + /** + * Can be used by subclasses to add e.g. additional buttons to the top area. + * + * @param htmlGroup $left left part + * @param htmlGroup $right right part + */ + protected function addExtraInputElementsToTopArea(&$left, &$right) { + // only used by subclasses + } + + /** + * Prints the HTML header. + */ + protected function listPrintHeader() { + include '../main_header.php'; + } + + /** + * Prints the HTML footer. + */ + protected function listPrintFooter() { + ?> +
    + + description) + * + * @return array attribute list + */ + protected function listGetAttributeDescriptionList() { + $ret = array(); + $attr_string = $_SESSION["config"]->get_listAttributes($this->type); + $temp_array = explode(";", $attr_string); + $hash_table = getListAttributeDescriptions($this->type); + $hash_table = array_change_key_case($hash_table, CASE_LOWER); + // generate column attributes and descriptions + for ($i = 0; $i < sizeof($temp_array); $i++) { + // if value is predifined, look up description in hash_table + if (substr($temp_array[$i],0,1) == "#") { + $attr = strtolower(substr($temp_array[$i],1)); + if (isset($hash_table[$attr])) { + $ret[$attr] = $hash_table[$attr]; + } + else { + $ret[$attr] = $attr; + } + } + // if not predefined, the attribute is seperated by a ":" from description + else { + $attr = explode(":", $temp_array[$i]); + if (isset($attr[1])) { + $ret[$attr[0]] = $attr[1]; + } + else { + $ret[$attr[0]] = $attr[0]; + } + } + } + return $ret; + } + + /** + * Sets some internal parameters. + */ + protected function listGetParams() { + if (isset($_GET['accountEditBack'])) { + $this->refresh = true; + return; + } + // check if only PDF should be shown + if (isset($_GET['printPDF'])) { + $this->showPDFPage(null); + exit(); + } + // get current page + if (isset($_GET["page"])) $this->page = $_GET["page"]; + else $this->page = 1; + // generate attribute-description table + $temp_array = $this->listGetAttributeDescriptionList(); + $this->attrArray = array_keys($temp_array); // list of LDAP attributes to show + $this->descArray = array_values($temp_array); // list of descriptions for the attributes + // get sorting column + if (isset($_GET["sort"])) { + if ($_GET["sort"] == $this->sortColumn) { + $this->sortDirection = -$this->sortDirection; + } + else { + $this->sortColumn = $_GET["sort"]; + $this->sortDirection = 1; + } + } + else { + $this->sortColumn = strtolower($this->attrArray[0]); + $this->sortDirection = 1; + } + // get sort order + if (isset($_GET['sortdirection'])) { + $this->sortDirection = $_GET['sortdirection']; + } + // check search suffix + if (isset($_POST['suffix'])) $this->suffix = $_POST['suffix']; // new suffix selected via combobox + elseif (isset($_GET['suffix'])) $this->suffix = $_GET['suffix']; // new suffix selected via combobox + elseif (!$this->suffix) $this->suffix = $_SESSION["config"]->get_Suffix($this->type); // default suffix + // check if LDAP data should be refreshed + $this->refresh = true; + if (isset($_GET['norefresh'])) $this->refresh = false; + if (isset($_POST['refresh']) || isset($_POST['apply_filter']) || isset($_POST['clear_filter'])) { + $this->refresh = true; + } + } + + /** + * Rereads the entries from LDAP. + */ + protected function listRefreshData() { + // check suffix + if (!$this->suffix) { + $this->suffix = $_SESSION["config"]->get_Suffix($this->type); // default suffix + } + // configure search filter + $module_filter = get_ldap_filter($this->type); // basic filter is provided by modules + $filter = "(&" . $module_filter . $this->buildLDAPAttributeFilter() . ")"; + $attrs = $this->attrArray; + // remove virtual attributes from list + for ($i = 0; $i < sizeof($attrs); $i++) { + if (strpos($attrs[$i], self::VIRTUAL_ATTRIBUTE_PREFIX) === 0) { + unset($attrs[$i]); + } + } + $attrs = array_values($attrs); + // include additional attributes + $additionalAttrs = $this->getAdditionalLDAPAttributesToRead(); + for ($i = 0; $i < sizeof($additionalAttrs); $i++) { + if (!in_array_ignore_case($additionalAttrs[$i], $attrs)) { + $attrs[] = $additionalAttrs[$i]; + } + } + $this->entries = searchLDAP($this->suffix, $filter, $attrs); + $lastError = getLastLDAPError(); + if ($lastError != null) { + call_user_func_array('StatusMessage', $lastError); + } + // generate list of possible suffixes + $typeObj = new $this->type(); + $this->possibleSuffixes = $typeObj->getSuffixList(); + } + + /** + * Builds the LDAP filter based on the filter entries in the GUI. + * + * @return String LDAP filter + */ + protected function buildLDAPAttributeFilter() { + $text = ''; + foreach ($this->filters as $attr => $filter) { + $text .= '(' . $attr . '=' . $filter . ')'; + } + return $text; + } + + /** + * Forces a refresh of the LDAP data. + * Function must be called before $this->refresh option is checked to load new LDAP data (e.g. in listGetParams). + */ + protected function forceRefresh() { + $this->refresh = true; + if (isset($_GET['norefresh'])) { + unset($_GET['norefresh']); + } + } + + /** + * Returns a list of additional LDAP attributes that should be read. + * This can be used to show additional data even if the user selected other attributes to show in the list. + * + * @return array additional attribute names + */ + protected function getAdditionalLDAPAttributesToRead() { + return array(); + } + + /** + * Returns a list of lamListTool objects to display next to the edit/delete buttons. + * + * @return lamListTool[] tools + */ + protected function getAdditionalTools() { + return array(); + } + + /** + * Returns a list of possible configuration options. + * + * @return array list of lamListOption objects + */ + protected function listGetAllConfigOptions() { + $listSizeOption = new lamSelectListOption(_("Maximum list entries"), array(10, 20, 30, 50, 75, 100, 500, 1000), self::LIST_SIZE_OPTION_NAME); + $listSizeOption->setHelpID('208'); + $listSizeOption->setValue($this->maxPageEntries); + return array($listSizeOption); + } + + /** + * Prints the list configuration page. + */ + protected function listPrintConfigurationPage() { + echo "
    \n"; + echo "
    type . "&norefresh=true\" method=\"post\">\n"; + echo '
    '; + + $configContainer = new htmlTable(); + for ($i = 0; $i < sizeof($this->configOptions); $i++) { + $configContainer->mergeTableElements($this->configOptions[$i]->getMetaHTML()); + } + $configContainer->addElement(new htmlHiddenInput('saveConfigOptions', 'ok')); + + parseHtml('', $configContainer, array(), false, $this->tabindex, $this->type); + + echo "
    \n"; + echo '
    '; + echo "
    \n"; + } + + /** + * Returns the configuration option with the given ID. + * + * @param String $ID ID + */ + protected function listGetConfigOptionByID($ID) { + for ($i = 0; $i < sizeof($this->configOptions); $i++) { + if ($this->configOptions[$i]->getID() === $ID) { + return $this->configOptions[$i]; + } + } + return null; + } + + /** + * Called when the configuration options changed. + */ + protected function listConfigurationChanged() { + $sizeOption = $this->listGetConfigOptionByID(self::LIST_SIZE_OPTION_NAME); + if ($sizeOption->getValue() != null) { + $this->maxPageEntries = $sizeOption->getValue(); + } + return; + } + + /** + * Prints messages when another page (e.g. delete/upload) redirects to the list view. + */ + protected function listPrintRedirectMessages() { + if (isset($_GET['deleteAllOk'])) { + StatusMessage('INFO', _('Deletion was successful.')); + } + elseif (isset($_GET['uploadAllOk'])) { + StatusMessage('INFO', _("Upload has finished")); + if (isset($_SESSION['mass_pdf']['file'])) { + StatusMessage('INFO', sprintf(_('You can download your PDF files {link=%s}{color=#d2131a}here{endcolor}{endlink}.'), '../' . $_SESSION['mass_pdf']['file'])); + } + } + if (isset($_SESSION['listRedirectMessages'])) { + for ($i = 0; $i < sizeof($_SESSION['listRedirectMessages']); $i++) { + call_user_func_array('StatusMessage', $_SESSION['listRedirectMessages'][$i]); + } + unset($_SESSION['listRedirectMessages']); + } + } + +} + +/** + * Represents a tool which can be included in the account lists. + * + * @package lists + * @author Roland Gruber + */ +class lamListTool { + + /** tool name */ + private $name; + /** tool image */ + private $image; + /** link target */ + private $target; + + /** + * Constructor + * + * @param String $name tool name + * @param String $image image file + * @param String $target target page + * @return lamListTool tool object + */ + public function __construct($name, $image, $target) { + $this->name = $name; + $this->image = $image; + $this->target = $target; + } + + /** + * Returns the name of the tool image. + * The image is returned without path (e.g. mytool.png). All images must reside in the graphics folder. + * + * @return String image name + */ + public function getImage() { + return $this->image; + } + + /** + * Returns the tool name. + * This is used for the tool tip. + * + * @return String name + */ + public function getName() { + return $this->name; + } + + /** + * Returns the PHP file (relative to 'templates/lists') which will be the target for this tool. + * The target page will be opened with two GET parameters: DN and type (e.g. user) + * + * @return String page file (e.g. 'mytool.php') + */ + public function getLinkTarget() { + return $this->target; + } + +} + +/** + * Represents a list configuration option. + * + * @package lists + * @author Roland Gruber + */ +abstract class lamListOption { + + /** unique ID */ + private $ID; + /** option value */ + private $value; + + /** + * Creates a new config option. + * + * @param String $ID unique ID + * @return lamConfigOption config option + */ + public function __construct($ID) { + $this->ID = $ID; + } + + /** + * Returns the option ID. + * + * @return String ID + */ + public function getID() { + return $this->ID; + } + + /** + * Fills the config option from POST data. + * + * @return array list of StatusMessages (array(, , )) + */ + public abstract function fillFromPostData(); + + /** + * Returns the option value. The value must not contain "=" and ";". + * + * @return String value + */ + public function getValue() { + return $this->value; + } + + /** + * Sets the config option value. The value must not contain "=" and ";". + * + * @param String $value + */ + public function setValue($value) { + if ((strpos($value, '=') > -1) || (strpos($value, ';') > -1)) { + user_error("Invalid value for list option: " . $value, E_ERROR); + } + $this->value = $value; + } + + /** + * Returns the meta HTML data to display this option. + * + * @return htmlTable meta HTML + */ + public abstract function getMetaHTML(); + +} + +/** + * Boolean option for list configuration. + * + * @package lists + * @author Roland Gruber + */ +class lamBooleanListOption extends lamListOption { + + /** option name */ + private $name; + + /** + * Creates a new boolean option. + * + * @param String $name name to show on config page + * @param String $ID unique ID + * @return lamBooleanListOption config option + */ + public function __construct($name, $ID) { + parent::__construct($ID); + $this->name = $name; + } + + /** + * Returns if this option is selected. + * + * @return boolean true, if selected + */ + public function isSelected() { + return ($this->getValue() === "1"); + } + + /** + * Fills the config option from POST data. + * + * @return array list of StatusMessages (array(, , )) + */ + public function fillFromPostData() { + if (isset($_POST[$this->getID()])) { + $this->setValue("1"); + } + else { + $this->setValue("0"); + } + } + + /** + * Returns the meta HTML data to display this option. + * + * @return htmlTable meta HTML + */ + public function getMetaHTML() { + $return = new htmlTable(); + $return->addElement(new htmlTableExtendedInputCheckbox($this->getID(), $this->isSelected(), $this->name)); + return $return; + } + +} + +/** + * Boolean option for list configuration. + * + * @package lists + * @author Roland Gruber + */ +class lamSelectListOption extends lamListOption { + + /** option name */ + private $name; + /** possible select options */ + private $options; + /** help ID */ + private $helpID; + + /** + * Creates a new selection list option. + * + * @param String $name name to show on config page + * @param array $options list of possible values + * @param String $ID unique ID + * @return lamBooleanListOption config option + */ + public function __construct($name, $options, $ID) { + parent::__construct($ID); + $this->name = $name; + $this->options = $options; + } + + /** + * Sets the help ID. + * + * @param Strign $id help ID + */ + public function setHelpID($id) { + $this->helpID = $id; + } + + /** + * Fills the config option from POST data. + * + * @return array list of StatusMessages (array(, , )) + */ + public function fillFromPostData() { + if (isset($_POST[$this->getID()])) { + $this->setValue($_POST[$this->getID()]); + } + else { + $this->setValue(null); + } + } + + /** + * Returns the meta HTML data to display this option. + * + * @return htmlTable meta HTML + */ + public function getMetaHTML() { + $return = new htmlTable(); + $return->addElement(new htmlTableExtendedSelect($this->getID(), $this->options, array($this->getValue()), $this->name, $this->helpID)); + return $return; + } + +} + +?> \ No newline at end of file diff --git a/lam/lib/modules.inc b/lam/lib/modules.inc new file mode 100644 index 00000000..0070dc5f --- /dev/null +++ b/lam/lib/modules.inc @@ -0,0 +1,2148 @@ +read()) +if ((substr($entry, strlen($entry) - 4, 4) == '.inc') && is_file($modulesINC_dirname . '/'.$entry)) { + include_once($modulesINC_dirname . '/'.$entry); +} + +/** +* Returns the alias name of a module +* +* @param string $name the module name +* @param string $scope the account type ("user", "group", "host") +* @return string alias name +*/ +function getModuleAlias($name, $scope) { + $module = moduleCache::getModule($name, $scope); + return $module->get_alias(); +} + +/** +* Returns true if the module is a base module +* +* @param string $name the module name +* @param string $scope the account type ("user", "group", "host") +* @return boolean true if base module +*/ +function is_base_module($name, $scope) { + $module = moduleCache::getModule($name, $scope); + return $module->is_base_module(); +} + +/** +* Returns the LDAP filter used by the account lists +* +* @param string $scope the account type ("user", "group", "host") +* @return string LDAP filter +*/ +function get_ldap_filter($scope) { + $mods = $_SESSION['config']->get_AccountModules($scope); + $filters = array(); + $orFilter = ''; + for ($i = 0; $i < sizeof($mods); $i++) { + $module = moduleCache::getModule($mods[$i], $scope); + $modinfo = $module->get_ldap_filter(); + if (isset($modinfo['or'])) $filters['or'][] = $modinfo['or']; + if (isset($modinfo['and'])) $filters['and'][] = $modinfo['and']; + } + // build OR filter + if (sizeof($filters['or']) == 1) { + $orFilter = $filters['or'][0]; + } + elseif (sizeof($filters['or']) > 1) { + $orFilter = "(|" . implode("", $filters['or']) . ")"; + } + // add built OR filter to AND filters + if ($orFilter != '') $filters['and'][] = $orFilter; + // add type filter + $typeSettings = $_SESSION['config']->get_typeSettings(); + if (isset($typeSettings['filter_' . $scope]) && ($typeSettings['filter_' . $scope] != '')) { + if (strpos($typeSettings['filter_' . $scope], '(') === 0) { + $filters['and'][] = $typeSettings['filter_' . $scope]; + } + else { + $filters['and'][] = '(' . $typeSettings['filter_' . $scope] . ')'; + } + } + // collapse AND filters + $finalFilter = ''; + if (sizeof($filters['and']) < 2) { + $finalFilter = $filters['and'][0]; + } + else { + $finalFilter = "(&" . implode("", $filters['and']) . ")"; + } + $loginData = $_SESSION['ldap']->decrypt_login(); + $finalFilter = str_replace('@@LOGIN_DN@@', $loginData[0], $finalFilter); + return $finalFilter; +} + +/** +* Returns a list of LDAP attributes which can be used to form the RDN. +* +* The list is already sorted by the priority given by the nodules. +* +* @param string $scope account type (user, group, host) +* @param array $selectedModules return only RDN attributes of these modules +* @return array list of LDAP attributes +*/ +function getRDNAttributes($scope, $selectedModules=null) { + $mods = $_SESSION['config']->get_AccountModules($scope); + if ($selectedModules != null) { + $mods = $selectedModules; + } + $return = array(); + $attrs_low = array(); + $attrs_normal = array(); + $attrs_high = array(); + for ($i = 0; $i < sizeof($mods); $i++) { + // get list of attributes + $module = moduleCache::getModule($mods[$i], $scope); + $attrs = $module->get_RDNAttributes(); + $keys = array_keys($attrs); + // sort attributes + for ($k = 0; $k < sizeof($keys); $k++) { + switch ($attrs[$keys[$k]]) { + case "low": + $attrs_low[] = $keys[$k]; + break; + case "normal": + $attrs_normal[] = $keys[$k]; + break; + case "high": + $attrs_high[] = $keys[$k]; + break; + default: + $attrs_low[] = $keys[$k]; + break; + } + } + } + // merge arrays + $return = array_values(array_unique($attrs_high)); + for ($i = 0; $i < sizeof($attrs_normal); $i++) { + if (!in_array($attrs_normal[$i], $return)) $return[] = $attrs_normal[$i]; + } + for ($i = 0; $i < sizeof($attrs_low); $i++) { + if (!in_array($attrs_low[$i], $return)) $return[] = $attrs_low[$i]; + } + return $return; +} + +/** +* Returns a hash array (module name => dependencies) of all module dependencies +* +* "dependencies" contains an array with two sub arrays: depends, conflicts +*
    The elements of "depends" are either module names or an array of module names (OR-case). +*
    The elements of conflicts are module names. +* +* @param string $scope the account type (user, group, host) +* @return array dependencies +*/ +function getModulesDependencies($scope) { + $mods = getAvailableModules($scope); + for ($i = 0; $i < sizeof($mods); $i++) { + $module = moduleCache::getModule($mods[$i], $scope); + $return[$mods[$i]] = $module->get_dependencies(); + } + return $return; +} + + +/** +* Checks if there are missing dependencies between modules. +* +* @param array $selected selected module names +* @param array $deps module dependencies +* @return mixed false if no misssing dependency was found, +* otherwise an array of array(selected module, depending module) if missing dependencies were found +*/ +function check_module_depends($selected, $deps) { + $ret = array(); + for ($m = 0; $m < sizeof($selected); $m++) { // check selected modules + for ($i = 0; $i < sizeof($deps[$selected[$m]]['depends']); $i++) { // check dependencies of module + // check if we have OR-combined modules + if (is_array($deps[$selected[$m]]['depends'][$i])) { + // one of the elements is needed + $found = false; + $depends = $deps[$selected[$m]]['depends'][$i]; + for ($d = 0; $d < sizeof($depends); $d++) { + if (in_array($depends[$d], $selected)) { + $found = true; + break; + } + } + if (! $found) { + // missing dependency, add to return value + $ret[] = array($selected[$m], implode(" || ", $depends)); + } + } + else { + // single dependency + if (! in_array($deps[$selected[$m]]['depends'][$i], $selected)) { + // missing dependency, add to return value + $ret[] = array($selected[$m], $deps[$selected[$m]]['depends'][$i]); + } + } + } + } + if (sizeof($ret) > 0) return $ret; + else return false; +} + +/** +* Checks if there are conflicts between modules +* +* @param array $selected selected module names +* @param array $deps module dependencies +* @return boolean false if no conflict was found, +* otherwise an array of array(selected module, conflicting module) if conflicts were found +*/ +function check_module_conflicts($selected, $deps) { + $ret = array(); + for ($m = 0; $m < sizeof($selected); $m++) { + for ($i = 0; $i < sizeof($deps[$selected[$m]]['conflicts']); $i++) { + if (in_array($deps[$selected[$m]]['conflicts'][$i], $selected)) { + $ret[] = array($selected[$m], $deps[$selected[$m]]['conflicts'][$i]); + } + } + } + if (sizeof($ret) > 0) return $ret; + else return false; +} + +/** +* Returns an array with all available user module names +* +* @param string $scope account type (user, group, host) +* @param boolean $mustSupportAdminInterface module must support LAM admin interface (default: false) +* @return array list of possible modules +*/ +function getAvailableModules($scope, $mustSupportAdminInterface = false) { + $dirname = substr(__FILE__, 0, strlen(__FILE__) - 12) . "/modules"; + $dir = dir($dirname); + $return = array(); + // get module names. + while ($entry = $dir->read()) + if ((substr($entry, strlen($entry) - 4, 4) == '.inc') && is_file($dirname . '/'.$entry)) { + $entry = substr($entry, 0, strpos($entry, '.')); + $temp = moduleCache::getModule($entry, $scope); + if ($mustSupportAdminInterface && !$temp->supportsAdminInterface()) { + continue; + } + if ($temp->can_manage()) { + $return[] = $entry; + } + } + return $return; +} + +/** +* Returns the elements for the profile page. +* +* @param string $scope account type (user, group, host) +* @return array profile elements +*/ +function getProfileOptions($scope) { + $mods = $_SESSION['config']->get_AccountModules($scope); + $return = array(); + for ($i = 0; $i < sizeof($mods); $i++) { + $module = moduleCache::getModule($mods[$i], $scope); + $return[$mods[$i]] = $module->get_profileOptions(); + } + return $return; +} + +/** +* Checks if the profile options are valid +* +* @param string $scope account type (user, group, host) +* @param array $options hash array containing all options (name => array(...)) +* @return array list of error messages +*/ +function checkProfileOptions($scope, $options) { + $mods = $_SESSION['config']->get_AccountModules($scope); + $return = array(); + for ($i = 0; $i < sizeof($mods); $i++) { + $module = moduleCache::getModule($mods[$i], $scope); + $temp = $module->check_profileOptions($options); + $return = array_merge($return, $temp); + } + return $return; +} + +/** +* Returns a hash array (module name => elements) of all module options for the configuration page. +* +* @param array $scopes hash array (module name => array(account types)) +* @return array configuration options +*/ +function getConfigOptions($scopes) { + $return = array(); + $modules = array_keys($scopes); + for ($i = 0; $i < sizeof($modules); $i++) { + $m = moduleCache::getModule($modules[$i], 'none'); + $return[$modules[$i]] = $m->get_configOptions($scopes[$modules[$i]], $scopes); + } + return $return; +} + +/** +* Checks if the configuration options are valid +* +* @param array $scopes hash array (module name => array(account types)) +* @param array $options hash array containing all options (name => array(...)) +* @return array list of error messages +*/ +function checkConfigOptions($scopes, &$options) { + $return = array(); + $modules = array_keys($scopes); + for ($i = 0; $i < sizeof($modules); $i++) { + $m = moduleCache::getModule($modules[$i], 'none'); + $errors = $m->check_configOptions($scopes[$modules[$i]], $options); + if (isset($errors) && is_array($errors)) { + $return = array_merge($return, $errors); + } + } + return $return; +} + +/** +* Returns a help entry from an account module. +* +* @param string $module module name +* @param string $helpID help identifier +* @param string $scope account type +* @return array help entry +*/ +function getHelp($module,$helpID,$scope='') { + global $helpArray; + if (!isset($module) || ($module == '') || ($module == 'main')) { + $helpPath = "../help/help.inc"; + if (is_file("../../help/help.inc")) $helpPath = "../../help/help.inc"; + if (!isset($helpArray)) { + include_once($helpPath); + } + return $helpArray[$helpID]; + } + if (empty($scope)) { + $scope = 'none'; + } + $moduleObject = moduleCache::getModule($module, $scope); + return $moduleObject->get_help($helpID); +} + +/** +* Returns a list of available PDF entries. +* +* @param string $scope account type (user, group, host) +* @return array PDF entries (field ID => field label) +*/ +function getAvailablePDFFields($scope) { + $mods = $_SESSION['config']->get_AccountModules($scope); + $return = array(); + for ($i = 0; $i < sizeof($mods); $i++) { + $module = moduleCache::getModule($mods[$i], $scope); + $fields = $module->get_pdfFields(); + $return[$mods[$i]] = array(); + if (is_array($fields)) { + foreach ($fields as $fieldID => $fieldLabel) { + if (is_integer($fieldID)) { + // support old PDF field list which did not contain a label + $return[$mods[$i]][$fieldLabel] = $fieldLabel; + } + else { + $return[$mods[$i]][$fieldID] = $fieldLabel; + } + } + } + } + $return['main'] = array('dn' => _('DN')); + return $return; +} + +/** +* Returns an array containing all input columns for the file upload. +* +* Syntax: +*
    array( +*
    string: name, // fixed non-translated name which is used as column name (should be of format: _) +*
    string: description, // short descriptive name +*
    string: help, // help ID +*
    string: example, // example value +*
    boolean: required // true, if user must set a value for this column +*
    ) +* +* @param string $scope account type +* @param array $selectedModules selected account modules +* @return array column list +*/ +function getUploadColumns($scope, $selectedModules) { + $return = array(); + for ($i = 0; $i < sizeof($selectedModules); $i++) { + $module = moduleCache::getModule($selectedModules[$i], $scope); + $return[$selectedModules[$i]] = $module->get_uploadColumns($selectedModules); + } + return $return; +} + +/** +* This function builds the LDAP accounts for the file upload. +* +* If there are problems status messages will be printed automatically. +* +* @param string $scope account type +* @param array $data array containing one account in each element +* @param array $ids array( => ) +* @param array $selectedModules selected account modules +* @return mixed array including accounts or false if there were errors +*/ +function buildUploadAccounts($scope, $data, $ids, $selectedModules) { + // build module order + $unOrdered = $selectedModules; + $ordered = array(); + $predepends = array(); + // get dependencies + for ($i = 0; $i < sizeof($unOrdered); $i++) { + $mod = moduleCache::getModule($unOrdered[$i], $scope); + $predepends[$unOrdered[$i]] = $mod->get_uploadPreDepends(); + } + // first all modules without predepends can be ordered + for ($i = 0; $i < sizeof($unOrdered); $i++) { + if (sizeof($predepends[$unOrdered[$i]]) == 0) { + $ordered[] = $unOrdered[$i]; + unset($unOrdered[$i]); + $unOrdered = array_values($unOrdered); + $i--; + } + } + $unOrdered = array_values($unOrdered); // fix indexes + // now add all modules with fulfilled dependencies until all are in order + while (sizeof($unOrdered) > 0) { + $newRound = false; + for ($i = 0; $i < sizeof($unOrdered); $i++) { + $deps = $predepends[$unOrdered[$i]]; + $depends = false; + for ($d = 0; $d < sizeof($deps); $d++) { + if (in_array($deps[$d], $unOrdered)) { + $depends = true; + break; + } + } + if (!$depends) { // add to order if dependencies are fulfilled + $ordered[] = $unOrdered[$i]; + unset($unOrdered[$i]); + $unOrdered = array_values($unOrdered); + $newRound = true; + break; + } + } + if ($newRound) continue; + // this point should never be reached, LAM was unable to find a correct module order + StatusMessage("ERROR", "Internal Error: Unable to find correct module order.", ""); + return false; + } + // give raw data to modules + $errors = array(); + $partialAccounts = array(); + for ($i = 0; $i < sizeof($data); $i++) $partialAccounts[$i]['objectClass'] = array(); + for ($i = 0; $i < sizeof($ordered); $i++) { + $module = new $ordered[$i]($scope); + $errors = $module->build_uploadAccounts($data, $ids, $partialAccounts, $selectedModules); + if (sizeof($errors) > 0) { + array_unshift($errors, array("INFO", _("Displayed account numbers start at \"0\". Add 2 to get the row in your spreadsheet."), "")); + $errors[] = array("ERROR", _("Upload was stopped after errors in %s module!"), "", array($module->get_alias())); + break; + } + } + if (sizeof($errors) > 0) { + for ($i = 0; (($i < sizeof($errors)) || ($i > 49)); $i++) call_user_func_array("StatusMessage", $errors[$i]); + return false; + } + else return $partialAccounts; +} + +/** + * Runs any actions that need to be done before an LDAP entry is created. + * + * @param String $scope account type + * @param array $selectedModules list of selected account modules + * @param array $attributes LDAP attributes of this entry (attributes are provided as reference, handle modifications of $attributes with care) + * @return array array which contains status messages. Each entry is an array containing the status message parameters. + */ +function doUploadPreActions($scope, $selectedModules, $attributes) { + $messages = array(); + for ($i = 0; $i < sizeof($selectedModules); $i++) { + $activeModule = $selectedModules[$i]; + $module = moduleCache::getModule($activeModule, $scope); + $messages = array_merge($messages, $module->doUploadPreActions($attributes)); + } + return $messages; +} + +/** +* This function executes one post upload action. +* +* @param string $scope account type +* @param array $data array containing one account in each element +* @param array $ids array( => ) +* @param array $failed list of accounts which were not created successfully +* @param array $selectedModules list of selected account modules +* @param array $accounts list of LDAP entries +* @return array current status +*
    array ( +*
    'status' => 'finished' | 'inProgress' +*
    'module' => +*
    'progress' => 0..100 +*
    'errors' => array () +*
    ) +*/ +function doUploadPostActions($scope, &$data, $ids, $failed, $selectedModules, &$accounts) { + // check if function is called the first time + if (! isset($_SESSION['mass_postActions']['remainingModules'])) { + // make list of remaining modules + $moduleList = $selectedModules; + $_SESSION['mass_postActions']['remainingModules'] = $moduleList; + } + $activeModule = $_SESSION['mass_postActions']['remainingModules'][0]; + // initialize temporary variable + if (!isset($_SESSION['mass_postActions'][$activeModule])) { + $_SESSION['mass_postActions'][$activeModule] = array(); + } + // let first module do one post action + $module = moduleCache::getModule($activeModule, $scope); + $return = $module->doUploadPostActions($data, $ids, $failed, $_SESSION['mass_postActions'][$activeModule], $accounts); + // remove active module from list if already finished + if ($return['status'] == 'finished') { + unset($_SESSION['mass_postActions']['remainingModules'][0]); + $_SESSION['mass_postActions']['remainingModules'] = array_values($_SESSION['mass_postActions']['remainingModules']); + } + // update status and return back to upload page + $return['module'] = $activeModule; + if (sizeof($_SESSION['mass_postActions']['remainingModules']) > 0) { + $return['status'] = 'inProgress'; + } + else { + $return['status'] = 'finished'; + } + return $return; +} + +/** +* Returns true if the module is a base module +* +* @return array required extensions +*/ +function getRequiredExtensions() { + $extList = array(); + $scopes = $_SESSION['config']->get_ActiveTypes(); + for ($i = 0; $i < sizeof($scopes); $i++) { + $mods = $_SESSION['config']->get_AccountModules($scopes[$i]); + for ($m = 0; $m < sizeof($mods); $m++) { + $module = moduleCache::getModule($mods[$m], $scopes[$i]); + $ext = $module->getRequiredExtensions(); + for ($e = 0; $e < sizeof($ext); $e++) { + if (!in_array($ext[$e], $extList)) $extList[] = $ext[$e]; + } + } + } + return $extList; +} + +/** +* Takes a list of meta-HTML elements and prints the equivalent HTML output. +* +* The modules are not allowed to display HTML code directly but return +* meta HTML code. This allows to have a common design for all module pages. +* +* @param string $module Name of account module +* @param mixed $input htmlElement or array of htmlElement elements +* @param array $values List of values which override the defaults in $input (name => value) +* @param boolean $restricted If true then no buttons will be displayed +* @param integer $tabindex Start value of tabulator index for input fields +* @param string $scope Account type +* @return array List of input field names and their type (name => type) +*/ +function parseHtml($module, $input, $values, $restricted, &$tabindex, $scope) { + if ($input instanceof htmlElement) { + return $input->generateHTML($module, $input, $values, $restricted, $tabindex, $scope); + } + if (is_array($input) && (sizeof($input) > 0)) { + $return = array(); + for ($i = 0; $i < sizeof($input); $i++) { + $return = array_merge($return, $input[$i]->generateHTML($module, $input, $values, $restricted, $tabindex, $scope)); + } + return $return; + } + return array(); +} + +/** + * Helper function to sort descriptive options in parseHTML(). + * It compares the second entries of two arrays. + * + * @param array $a first array + * @param array $b second array + * @return integer compare result + */ +function lamCompareDescriptiveOptions(&$a, &$b) { + // check parameters + if (!is_array($a) || !isset($a[1]) || !is_array($b) || !isset($b[1])) { + return 0; + } + return strnatcasecmp($a[1], $b[1]); +} + +/** + * Prints a LAM help link. + * + * @param array $entry help entry + * @param String $number help number + * @param String $module module name + * @param String $scope account scope + */ +function printHelpLink($entry, $number, $module='', $scope='') { + $helpPath = "../"; + if (is_file("./help.php")) $helpPath = ""; + $title = $entry['Headline']; + $message = $entry['Text']; + if (isset($entry['attr'])) { + $message .= '


    ' . _('Technical name') . ': ' . $entry['attr'] . ''; + } + // replace special characters + $message = htmlspecialchars($message); + $title = htmlspecialchars($title); + echo ""; + echo "\"""; + echo ""; +} + + +/** +* This class includes all modules and attributes of an account. +* +* @package modules +*/ +class accountContainer { + + /** + * Constructor + * + * @param string $type account type + * @param string $base key in $_SESSION where this object is saved + */ + function __construct($type, $base) { + /* Set the type of account. Valid + * types are: user, group, host + */ + // Check input variable + + if (!is_string($type)) trigger_error('Argument of accountContainer must be string.', E_USER_ERROR); + if (!is_string($base)) trigger_error('Argument of accountContainer must be string.', E_USER_ERROR); + $this->type = $type; + $this->base = $base; + // Set startpage + $this->current_page=0; + $this->subpage='attributes'; + $this->isNewAccount = false; + return 0; + } + + /** + * Array of all used attributes + * Syntax is attribute => array ( objectClass => MUST or MAY, ...) + */ + public $attributes; + + /** + * This variale stores the account type. + * Currently "user", "group" and "host" are supported. + */ + private $type; + + /** This is an array with all module objects */ + private $module; + + /** DN suffix of the account */ + public $dnSuffix; + + /** DN of account when it was loaded */ + public $dn_orig; + + /** RDN attribute of this account */ + public $rdn; + + /** DN of saved account */ + public $finalDN; + + /** original LDAP attributes when account was loaded from LDAP */ + public $attributes_orig; + + /** Module order */ + private $order; + + /** Name of accountContainer variable in session */ + private $base; + + /** This variable stores the page number of the currently displayed page */ + private $current_page = 0; + + /** This variable is set to the pagename of a subpage if it should be displayed */ + private $subpage; + + /** True if this is a newly created account */ + public $isNewAccount; + + /** name of last loaded account profile */ + private $lastLoadedProfile = ''; + + /** cache for existing OUs */ + private $cachedOUs = null; + + /** main title in title bar */ + private $titleBarTitle = null; + /** subtitle in title bar */ + private $titleBarSubtitle = null; + /** send password via mail */ + private $sendPasswordViaMail = null; + /** send password via mail to this alternate address */ + private $sendPasswordViaMailAlternateAddress = null; + + /** + * Returns the account module with the given class name + * + * @param string $name class name (e.g. posixAccount) + * @return baseModule account module + */ + function getAccountModule($name) { + if (isset($this->module[$name])) { + return $this->module[$name]; + } + else { + return null; + } + } + + /** + * Returns the included account modules. + * + * @return array modules + */ + function getAccountModules() { + return $this->module; + } + + /** + * Returns the accout type of this object (e.g. user, group, host). + * + * @return string account type + */ + function get_type() { + return $this->type; + } + + /** + * This function is called when the user clicks on any button on the account pages. + * It prints the HTML code of each account page. + */ + function continue_main() { + $oldPage = $this->current_page; + $oldSubpage = $this->subpage; + $post = $_POST; + $result = array(); + $stopProcessing = false; // when set to true, no module options are displayed + $errorsOccured = false; + $typeObject = new $this->type(); + $profileLoaded = $this->loadProfileIfRequested(); + if ($this->subpage=='') $this->subpage='attributes'; + if (isset($_POST['accountContainerReset'])) { + $result = $this->load_account($this->dn_orig); + } + elseif (!$profileLoaded) { + // change dn suffix + if (isset($_GET['suffix']) && ($_GET['suffix'] != '') && ($this->dnSuffix == null)) { + $this->dnSuffix = $_GET['suffix']; + } + if (isset($_POST['accountContainerSuffix']) && ($_POST['accountContainerSuffix'] != '')) { + $this->dnSuffix = $_POST['accountContainerSuffix']; + } + // change RDN + if (isset($_POST['accountContainerRDN'])) { + $this->rdn = $_POST['accountContainerRDN']; + } + // create another account + if (isset($_POST['accountContainerCreateAgain'])) { + // open fresh account page + unset($_SESSION[$this->base]); + metaRefresh("edit.php?type=" . $this->type . "&suffix=" . $this->dnSuffix); + exit(); + } + // reedit account + if (isset($_POST['accountContainerBackToEdit'])) { + // open fresh account page + unset($_SESSION[$this->base]); + metaRefresh("edit.php?type=" . $this->type . "&DN=" . urlencode($this->finalDN)); + exit(); + } + // back to account list + if (isset($_POST['accountContainerBackToList'])) { + // Return to account list + unset($_SESSION[$this->base]); + metaRefresh("../lists/list.php?type=" . $this->type . '&accountEditBack=true'); + exit; + } + // create PDF file + if (isset($_POST['accountContainerCreatePDF'])) { + metaRefresh('../lists/list.php?printPDF=1&type=' . $this->type . "&refresh=true&PDFSessionID=" . $this->base); + exit; + } + // module actions + if ((sizeof($_POST) > 0) && checkIfWriteAccessIsAllowed($this->type)) { + $result = call_user_func(array(&$this->module[$this->order[$this->current_page]], 'process_'.$this->subpage)); + if (is_array($result)) { // messages were returned, check for errors + for ($i = 0; $i < sizeof($result); $i++) { + if ($result[$i][0] == 'ERROR') { + $errorsOccured = true; + break; + } + } + } + $this->sortModules(); + } + // run type post actions + $typeObject->runEditPagePostAction($this); + // save account + if (!$errorsOccured && isset($_POST['accountContainerSaveAccount'])) { + // check if all modules are complete + $modules = array_keys($this->module); + $incompleteModules = array(); + foreach ($modules as $module) { + if (!$this->module[$module]->module_complete()) { + $incompleteModules[] = $this->module[$module]->get_alias(); + } + } + if (sizeof($incompleteModules) > 0) { + $result[] = array('INFO', _('Some required information is missing'), + sprintf(_('Please set up all required attributes on page: %s'), implode(", ", $incompleteModules))); + } + else { + // save account + $saveMessages = $this->save_account(); + $saveOk = true; + for ($i = 0; $i < sizeof($saveMessages); $i++) { + if ($saveMessages[$i][0] == 'ERROR') { + $saveOk = false; + } + } + if (!$saveOk) { + $result = $saveMessages; + $stopProcessing = true; + } + else { + $this->printSuccessPage($saveMessages); + return; + } + } + } + } + // change to next page + if (is_array($result)) { // messages were returned, check for errors + for ($i = 0; $i < sizeof($result); $i++) { + if ($result[$i][0] == 'ERROR') { + $errorsOccured = true; + break; + } + } + } + if (!$errorsOccured) { + // go to subpage of current module + $postKeys = array_keys($_POST); + for ($p = 0; $p < sizeof($postKeys); $p++) { + if (is_string($postKeys[$p]) && (strpos($postKeys[$p], 'form_subpage_' . $this->order[$this->current_page]) === 0)) { + $temp = substr($postKeys[$p], strlen($this->order[$this->current_page]) + 14); + $temp = explode('_', $temp); + if (sizeof($temp) == 2) { + $this->subpage = $temp[0]; + } + } + } + for ($i=0; $iorder); $i++ ) { + if (isset($_POST['form_main_'.$this->order[$i]])) { + if ($this->module[$this->order[$i]]->module_ready()) { + $this->current_page = $i; + $this->subpage='attributes'; + } + else { + StatusMessage('ERROR', _('The module %s is not yet ready.'), + _('Please enter the account information on the other pages first.'), + array($this->module[$this->order[$i]]->get_alias())); + } + } + } + } + // update titles + $this->titleBarTitle = $typeObject->getTitleBarTitle($this); + $this->titleBarSubtitle = $typeObject->getTitleBarSubtitle($this); + // prints a module content page + $this->printModuleContent($result, $stopProcessing); + if (!$errorsOccured && ($oldPage == $this->current_page) && ($oldSubpage == $this->subpage) + && isset($_POST['scrollPositionTop']) && isset($_POST['scrollPositionLeft'])) { + // scroll to last position + echo ''; + } + $this->printPageFooter(); + } + + /** + * Prints the content part provided by the current module. + * + * @param array $result list of messages + * @param boolean $stopProcessing true if page should end after displaying the messages + */ + private function printModuleContent($result, $stopProcessing) { + $tabindex = 1; + $this->printPageHeader(); + $this->printPasswordPromt(); + // display error messages + if (is_array($result)) { + for ($i=0; $i
    '; + echo "type."-bright\" border=0 width=\"100%\" style=\"border-collapse: collapse;\">\n"; + if (checkIfWriteAccessIsAllowed($this->type)) { + echo "type."-bright\">\n"; + } + echo "type."-bright\" valign=\"top\">\n"; + // Display rest of html-page + echo "
    \n"; + $this->printCommonControls($tabindex); + echo "
    "; + // print title bar + echo '
    '; + echo ''; + echo ''; + echo ''; + echo '
    '; + echo $this->titleBarTitle; + echo '
    '; + $group = new htmlGroup(); + // suffix + $group->addElement(new htmlOutputText(_('Suffix'))); + $group->addElement(new htmlSpacer('2px', null)); + $suffixList = array(); + foreach ($this->getOUs() as $suffix) { + $suffixList[getAbstractDN($suffix)] = $suffix; + } + if (!($this->dnSuffix == '') && !in_array($this->dnSuffix, $this->getOUs())) { + $suffixList[getAbstractDN($this->dnSuffix)] = $this->dnSuffix; + } + $selectedSuffix = array($this->dnSuffix); + $suffixSelect = new htmlSelect('accountContainerSuffix', $suffixList, $selectedSuffix); + $suffixSelect->setHasDescriptiveElements(true); + $suffixSelect->setRightToLeftTextDirection(true); + $group->addElement($suffixSelect); + $group->addElement(new htmlSpacer('10px', null)); + // RDN selection + $group->addElement(new htmlOutputText(_('RDN identifier'))); + $group->addElement(new htmlSpacer('2px', null)); + $rdnlist = getRDNAttributes($this->type); + $group->addElement(new htmlSelect('accountContainerRDN', $rdnlist, array($this->rdn))); + $group->addElement(new htmlHelpLink('301')); + parseHtml(null, $group, array(), true, $tabindex, $this->type); + echo '
    '; + if ($this->titleBarSubtitle != null) { + echo '
    '; + echo $this->titleBarSubtitle; + echo '
    '; + } + echo '
    '; + echo '
    '; + // tab menu + $this->printModuleTabs(); + echo "
    \n"; + // content area + // display html-code from modules + $return = call_user_func(array($this->module[$this->order[$this->current_page]], 'display_html_'.$this->subpage)); + $y = 5000; + parseHtml($this->order[$this->current_page], $return, array(), false, $y, $this->type); + echo "
    \n"; + echo "
    \n"; + echo "
    \n"; + } + + /** + * Prints the input fields of the central password service. + */ + private function printPasswordPromt() { + echo "
    \n"; + echo '
    '; + $printContainer = false; + $container = new htmlTable(); + // password fields + $container->addElement(new htmlOutputText(_('Password'))); + $pwdInput1 = new htmlInputField('newPassword1'); + $pwdInput1->setIsPassword(true, true); + $container->addElement($pwdInput1); + $container->addElement(new htmlHelpLink('404'), true); + $container->addElement(new htmlOutputText(_('Repeat password'))); + $pwdInput2 = new htmlInputField('newPassword2'); + $pwdInput2->setIsPassword(true); + $pwdInput2->setSameValueFieldID('newPassword1'); + $container->addElement($pwdInput2, true); + // print force password change option + $forceChangeSupported = false; + foreach ($this->module as $name => $module) { + if (($module instanceof passwordService) && $module->supportsForcePasswordChange()) { + $forceChangeSupported = true; + break; + } + } + if ($forceChangeSupported) { + $container->addElement(new htmlTableExtendedInputCheckbox('lamForcePasswordChange', false, _('Force password change'))); + $container->addElement(new htmlHelpLink('406'), true); + } + if (isLAMProVersion() && (isset($this->attributes_orig['mail'][0]) || $this->anyModuleManagesMail())) { + $pwdMailCheckbox = new htmlTableExtendedInputCheckbox('lamPasswordChangeSendMail', false, _('Send via mail')); + $pwdMailCheckbox->setTableRowsToShow(array('lamPasswordChangeSendMailAddress')); + $container->addElement($pwdMailCheckbox); + $container->addElement(new htmlHelpLink('407'), true); + if (($_SESSION['config']->getLamProMailAllowAlternateAddress() != 'false')) { + $alternateMail = ''; + $pwdResetModule = $this->getAccountModule('passwordSelfReset'); + if (!empty($pwdResetModule)) { + $backupMail = $pwdResetModule->getBackupEmail(); + if (!empty($backupMail)) { + $alternateMail = $pwdResetModule->getBackupEmail(); + } + } + $container->addElement(new htmlTableExtendedInputField(_('Alternate recipient'), 'lamPasswordChangeSendMailAddress', $alternateMail, '410')); + } + } + $container->addElement(new htmlSpacer(null, '10px'), true); + // password modules + $moduleContainer = new htmlTable(); + foreach ($this->module as $name => $module) { + if (($module instanceof passwordService) && $module->managesPasswordAttributes()) { + $printContainer = true; + $buttonImage = $module->getIcon(); + if ($buttonImage != null) { + if (!(strpos($buttonImage, 'http') === 0) && !(strpos($buttonImage, '/') === 0)) { + $buttonImage = '../../graphics/' . $buttonImage; + } + $moduleContainer->addElement(new htmlImage($buttonImage, null, null, getModuleAlias($name, $this->type))); + } + $moduleContainer->addElement(new htmlTableExtendedInputCheckbox('password_cb_' . $name, true, getModuleAlias($name, $this->type), null, false)); + $moduleContainer->addElement(new htmlSpacer('10px', null)); + } + } + $moduleContainer->colspan = 5; + $container->addElement($moduleContainer, true); + // generate HTML + $tabindex = 2000; + if ($printContainer) { + parseHtml(null, $container, array(), false, $tabindex, $this->type); + } + echo "
    \n"; + } + + /** + * Sets the new password in all selected account modules. + * + * @param array $input input parameters + */ + public function setNewPassword($input) { + $password1 = $input['password1']; + $password2 = $input['password2']; + $random = $input['random']; + $modules = $input['modules']; + for ($m = 0; $m < sizeof($modules); $m++) { + $modules[$m] = str_replace('password_cb_', '', $modules[$m]); + } + $return = array( + 'messages' => '', + 'errorsOccured' => 'false' + ); + if ($random == 'true') { + $password1 = generateRandomPassword(); + $return['messages'] .= StatusMessage('INFO', _('The password was set to:') . ' ' . htmlspecialchars($password1), '', array(), true); + } + else { + // check if passwords match + if ($password1 != $password2) { + $return['messages'] .= StatusMessage('ERROR', _('Passwords are different!'), '', array(), true); + $return['errorsOccured'] = 'true'; + } + // check passsword stregth + $pwdPolicyResult = checkPasswordStrength($password1, null, null); + if ($pwdPolicyResult !== true) { + $return['messages'] .= StatusMessage('ERROR', $pwdPolicyResult, '', array(), true); + $return['errorsOccured'] = 'true'; + } + } + $forcePasswordChange = false; + if (isset($input['forcePasswordChange']) && ($input['forcePasswordChange'] == 'true')) { + $forcePasswordChange = true; + } + $sendMail = false; + if (isset($input['sendMail']) && ($input['sendMail'] == 'true')) { + $sendMail = true; + } + $return['forcePasswordChange'] = $forcePasswordChange; + if ($return['errorsOccured'] == 'false') { + // set new password + foreach ($this->module as $name => $module) { + if ($module instanceof passwordService) { + $messages = $module->passwordChangeRequested($password1, $modules, $forcePasswordChange); + for ($m = 0; $m < sizeof($messages); $m++) { + if ($messages[$m][0] == 'ERROR') { + $return['errorsOccured'] = 'true'; + } + if (sizeof($messages[$m]) == 2) { + $return['messages'] .= StatusMessage($messages[$m][0], $messages[$m][1], '', array(), true); + } + elseif (sizeof($messages[$m]) == 3) { + $return['messages'] .= StatusMessage($messages[$m][0], $messages[$m][1], $messages[$m][2], array(), true); + } + elseif (sizeof($messages[$m]) == 4) { + $return['messages'] .= StatusMessage($messages[$m][0], $messages[$m][1], $messages[$m][2], $messages[$m][3], true); + } + } + } + } + } + if (isLAMProVersion() && $sendMail) { + $this->sendPasswordViaMail = $password1; + if (($_SESSION['config']->getLamProMailAllowAlternateAddress() != 'false') && !empty($input['sendMailAlternateAddress'])) { + if (!get_preg($input['sendMailAlternateAddress'], 'email')) { + $return['messages'] .= StatusMessage('ERROR', _('Alternate recipient'), _('Please enter a valid email address!'), array(), true); + $return['errorsOccured'] = 'true'; + } + $this->sendPasswordViaMailAlternateAddress = $input['sendMailAlternateAddress']; + } + } + if ($return['errorsOccured'] == 'false') { + $return['messages'] .= StatusMessage('INFO', _('The new password will be stored in the directory after you save this account.'), '', array(), true); + } + return $return; + } + + /** + * Returns if any module manages the mail attribute. + * + * @return boolean mail is managed + */ + private function anyModuleManagesMail() { + foreach ($this->module as $mod) { + if (in_array('mail', $mod->getManagedAttributes())) { + return true; + } + } + return false; + } + + /** + * Prints common controls like the save button and the ou selection. + * + * @param int $tabindex tabindex for GUI elements + */ + private function printCommonControls(&$tabindex) { + $table = new htmlTable('100%'); + $leftButtonGroup = new htmlGroup(); + $leftButtonGroup->alignment = htmlElement::ALIGN_LEFT; + // save button + $saveButton = new htmlButton('accountContainerSaveAccount', _('Save')); + $saveButton->setIconClass('saveButton'); + $leftButtonGroup->addElement($saveButton); + $leftButtonGroup->addElement(new htmlSpacer('1px', null)); + // reset button + if (!$this->isNewAccount) { + $resetButton = new htmlButton('accountContainerReset', _('Reset changes')); + $resetButton->setIconClass('undoButton'); + $leftButtonGroup->addElement($resetButton); + } + // set password button + if ($this->showSetPasswordButton()) { + $leftButtonGroup->addElement(new htmlSpacer('15px', null)); + $passwordButton = new htmlButton('accountContainerPassword', _('Set password')); + $passwordButton->setIconClass('passwordButton'); + $passwordButton->setOnClick('passwordShowChangeDialog(\'' . _('Set password') . '\', \'' . _('Ok') . '\', \'' + . _('Cancel') . '\', \'' . _('Set random password') . '\', \'../misc/ajax.php?function=passwordChange\');'); + $leftButtonGroup->addElement($passwordButton); + } + $table->addElement($leftButtonGroup); + + $rightGroup = new htmlGroup(); + $rightGroup->alignment = htmlElement::ALIGN_RIGHT; + // profile selection + $profilelist = getAccountProfiles($this->type); + if (sizeof($profilelist) > 0) { + $rightGroup->addElement(new htmlSelect('accountContainerSelectLoadProfile', $profilelist, array($this->lastLoadedProfile))); + $profileButton = new htmlButton('accountContainerLoadProfile', _('Load profile')); + $profileButton->setIconClass('loadProfileButton'); + if (!$this->isNewAccount) { + $profileButton->setType('submit'); + $profileButton->setOnClick('confirmOrStopProcessing(\'' . _('This may overwrite existing values with profile data. Continue?') . '\', event);'); + } + $rightGroup->addElement($profileButton); + $rightGroup->addElement(new htmlSpacer('1px', null)); + $rightGroup->addElement(new htmlHelpLink('401')); + } + $table->addElement($rightGroup); + + parseHtml(null, $table, array(), false, $tabindex, $this->type); + ?> + + module as $name => $module) { + if (($module instanceof passwordService) && $module->managesPasswordAttributes()) { + return true; + } + } + return false; + } + + /** + * Prints the header of the account pages. + */ + private function printPageHeader() { + include '../main_header.php'; + echo ''; + echo "
    \n"; + } + + /** + * Prints the footer of the account pages. + */ + private function printPageFooter() { + echo "
    \n"; + include '../main_footer.php'; + } + + /** + * Prints the HTML code to notify the user about the successful saving. + * + * @param array $messages array which contains status messages. Each entry is an array containing the status message parameters. + */ + private function printSuccessPage($messages) { + $this->printPageHeader(); + // Show success message + if ($this->dn_orig == '') { + $text = _("Account was created successfully."); + } + else { + $text = _("Account was modified successfully."); + } + echo "
    type."-bright smallPaddingContent\">"; + + $container = new htmlTable(); + // show messages + for ($i = 0; $i < sizeof($messages); $i++) { + if (sizeof($messages[$i]) == 2) { + $message = new htmlStatusMessage($messages[$i][0], $messages[$i][1]); + $message->colspan = 10; + $container->addElement($message, true); + } + else { + $message = new htmlStatusMessage($messages[$i][0], $messages[$i][1], $messages[$i][2]); + $message->colspan = 10; + $container->addElement($message, true); + } + } + $message = new htmlStatusMessage('INFO', _('LDAP operation successful.'), $text); + $message->colspan = 10; + $container->addElement($message, true); + $container->addElement(new htmlSpacer(null, '20px'), true); + + $type = new $this->type(); + $buttonGroup = new htmlGroup(); + if (checkIfNewEntriesAreAllowed($this->type)) { + $createButton = new htmlButton('accountContainerCreateAgain', $type->LABEL_CREATE_ANOTHER_ACCOUNT); + $createButton->setIconClass('createButton'); + $buttonGroup->addElement($createButton); + $buttonGroup->addElement(new htmlSpacer('10px', null)); + } + $pdfButton = new htmlButton('accountContainerCreatePDF', _('Create PDF file')); + $pdfButton->setIconClass('pdfButton'); + $buttonGroup->addElement($pdfButton); + $buttonGroup->addElement(new htmlSpacer('10px', null)); + $backToListButton = new htmlButton('accountContainerBackToList', $type->LABEL_BACK_TO_ACCOUNT_LIST); + $backToListButton->setIconClass('backButton'); + $buttonGroup->addElement($backToListButton); + $buttonGroup->addElement(new htmlSpacer('10px', null)); + $backToEditButton = new htmlButton('accountContainerBackToEdit', _('Edit again')); + $backToEditButton->setIconClass('editButton'); + $buttonGroup->addElement($backToEditButton); + $container->addElement($buttonGroup, true); + + $tabindex = 1; + parseHtml(null, $container, array(), false, $tabindex, $this->type); + + echo "
    \n"; + $this->printPageFooter(); + } + + /** + * Checks if the user requested to load a profile. + * + * @return boolean true, if profile was loaded + */ + private function loadProfileIfRequested() { + if (isset($_POST['accountContainerLoadProfile']) && isset($_POST['accountContainerSelectLoadProfile'])) { + $profile = loadAccountProfile($_POST['accountContainerSelectLoadProfile'], $this->type); + $this->lastLoadedProfile = $_POST['accountContainerSelectLoadProfile']; + // pass profile to each module + $modules = array_keys($this->module); + foreach ($modules as $module) $this->module[$module]->load_profile($profile); + if (isset($profile['ldap_rdn'][0])) { + if (in_array($profile['ldap_rdn'][0], getRDNAttributes($this->type))) { + $this->rdn = $profile['ldap_rdn'][0]; + } + } + if (isset($profile['ldap_suffix'][0]) && ($profile['ldap_suffix'][0] != '-')) { + $this->dnSuffix = $profile['ldap_suffix'][0]; + } + return true; + } + return false; + } + + /** + * Prints the HTML code of the module tabs. + */ + private function printModuleTabs() { + // $x is used to count up tabindex + $x=1; + echo '
      '; + // Loop for each module + for ($i=0; $iorder); $i++ ) { + $buttonStatus = $this->module[$this->order[$i]]->getButtonStatus(); + // skip hidden buttons + if ($buttonStatus == 'hidden') continue; + $buttonImage = $this->module[$this->order[$i]]->getIcon(); + $activatedClass = ''; + if ($this->order[$this->current_page] == $this->order[$i]) { + $activatedClass = ' ui-tabs-selected ui-state-active ' . $this->type . '-bright'; + } + // print button + echo '
    • '; + $buttonStyle = 'background-color:transparent;;border:0px solid;'; + echo "\n"; + echo "
    • \n"; + $x++; + } + echo '
    '; + } + + /** + * This function checks which LDAP attributes have changed while the account was edited. + * + * @param array $attributes list of current LDAP attributes + * @param array $orig list of old attributes when account was loaded + * @return array an array which can be passed to $this->saveAccount() + */ + function save_module_attributes($attributes, $orig) { + $return = array(); + $toadd = array(); + $tomodify = array(); + $torem = array(); + $notchanged = array(); + // get list of all attributes + $attr_names = array_keys($attributes); + $orig_names = array_keys($orig); + // find deleted attributes (in $orig but no longer in $attributes) + foreach ($orig_names as $i => $value) { + if (!isset($attributes[$value])) { + $torem[$value] = $orig[$value]; + } + } + // find changed attributes + foreach ($attr_names as $i => $name) { + // find deleted attributes + if (isset($orig[$name]) && is_array($orig[$name])) { + foreach ($orig[$name] as $j => $value) { + if (is_array($attributes[$name])) { + if (!in_array($value, $attributes[$name])) { + if ($value != '') $torem[$name][] = $value; + } + } + else if ($value != '') $torem[$name][] = $value; + } + } + // find new attributes + if (isset($attributes[$name]) && is_array($attributes[$name])) { + foreach ($attributes[$name] as $j => $value) { + if (isset($orig[$name]) && is_array($orig[$name])) { + if (!in_array($value, $orig[$name])) + if ($value != '') { + $toadd[$name][] = $value; + } + } + else if ($value != '') $toadd[$name][] = $value; + } + } + // find unchanged attributes + if (isset($orig[$name]) && is_array($orig[$name]) && is_array($attributes[$name])) { + foreach ($attributes[$name] as $j => $value) { + if (($value != '') && in_array($value, $orig[$name])) { + $notchanged[$name][] = $value; + } + } + } + } + // create modify with add and remove + $attributes2 = array_keys($toadd); + for ($i=0; $i 0) && (count($torem[$attributes2[$i]]) > 0)) { + // found attribute which should be modified + $tomodify[$attributes2[$i]] = $toadd[$attributes2[$i]]; + // merge unchanged values + if (isset($notchanged[$attributes2[$i]])) { + $tomodify[$attributes2[$i]] = array_merge($tomodify[$attributes2[$i]], $notchanged[$attributes2[$i]]); + unset($notchanged[$attributes2[$i]]); + } + // remove old add and remove commands + unset($toadd[$attributes2[$i]]); + unset($torem[$attributes2[$i]]); + } + } + if (count($toadd)!=0) $return[$this->dn_orig]['add'] = $toadd; + if (count($torem)!=0) $return[$this->dn_orig]['remove'] = $torem; + if (count($tomodify)!=0) $return[$this->dn_orig]['modify'] = $tomodify; + if (count($notchanged)!=0) $return[$this->dn_orig]['notchanged'] = $notchanged; + return $return; + } + + /** + * Loads an LDAP account with the given DN. + * + * @param string $dn the DN of the account + * @param array $infoAttributes list of additional informational attributes that are added to the LDAP attributes + * E.g. this is used to inject the clear text password in the file upload. Informational attribute names must start with "INFO.". + * @return array error messages + */ + function load_account($dn, $infoAttributes = array()) { + logNewMessage(LOG_DEBUG, "Edit account " . $dn); + $this->module = array(); + $modules = $_SESSION['config']->get_AccountModules($this->type); + $search = substr($dn, 0, strpos($dn, ',')); + $searchAttrs = array('*', '+', 'creatorsName', 'createTimestamp', 'modifiersName', + 'modifyTimestamp', 'hasSubordinates', 'pwdChangedTime'); + $result = @ldap_read($_SESSION['ldap']->server(), escapeDN($dn), escapeDN($search), $searchAttrs, 0, 0, 0, LDAP_DEREF_NEVER); + if (!$result) { + return array(array("ERROR", _("Unable to load LDAP entry:") . " " . htmlspecialchars($dn), getDefaultLDAPErrorString($_SESSION['ldap']->server()))); + } + $entry = @ldap_first_entry($_SESSION['ldap']->server(), $result); + if (!$entry) { + return array(array("ERROR", _("Unable to load LDAP entry:") . " " . htmlspecialchars($dn), getDefaultLDAPErrorString($_SESSION['ldap']->server()))); + } + $this->dnSuffix = extractDNSuffix($dn); + $this->dn_orig = $dn; + // extract RDN + $this->rdn = extractRDNAttribute($dn); + $attr = ldap_get_attributes($_SESSION['ldap']->server(), $entry); + $attr = array($attr); + cleanLDAPResult($attr); + $attr = $attr[0]; + // fix spelling errors + $attr = $this->fixLDAPAttributes($attr, $modules); + // get binary attributes + $binaryAttr = array('jpegPhoto'); + for ($i = 0; $i < sizeof($binaryAttr); $i++) { + if (isset($attr[$binaryAttr[$i]][0])) { + $binData = ldap_get_values_len($_SESSION['ldap']->server(), $entry, $binaryAttr[$i]); + unset($binData['count']); + $attr[$binaryAttr[$i]] = $binData; + } + } + // add informational attributes + $attr = array_merge($attr, $infoAttributes); + // save original attributes + $this->attributes_orig = $attr; + + foreach ($modules as $module) { + if (!isset($this->module[$module])) { + $this->module[$module] = new $module($this->type); + $this->module[$module]->init($this->base); + } + $this->module[$module]->load_attributes($attr); + } + + // sort module buttons + $this->sortModules(); + // get titles + $typeObject = new $this->type(); + $this->titleBarTitle = $typeObject->getTitleBarTitle($this); + $this->titleBarSubtitle = $typeObject->getTitleBarSubtitle($this); + return array(); + } + + /** + * Fixes spelling errors in the attribute names. + * + * @param array $attributes LDAP attributes + * @param array $modules list of active modules + * @return array fixed attributes + */ + function fixLDAPAttributes($attributes, $modules) { + if (!is_array($attributes)) return $attributes; + $keys = array_keys($attributes); + // get correct object class names, aliases and attributes + $objectClasses = array(); + $aliases = array(); + $ldapAttributesTemp = array(); + foreach ($modules as $module) { + $moduleObj = moduleCache::getModule($module, $this->type); + $objectClasses = array_merge($objectClasses, $moduleObj->getManagedObjectClasses()); + $aliases = array_merge($aliases, $moduleObj->getLDAPAliases()); + $ldapAttributesTemp = array_merge($ldapAttributesTemp, $moduleObj->getManagedAttributes()); + } + // build lower case attribute names + $ldapAttributes = array(); + for ($i = 0; $i < sizeof($ldapAttributesTemp); $i++) { + $ldapAttributes[strtolower($ldapAttributesTemp[$i])] = $ldapAttributesTemp[$i]; + unset($ldapAttributes[$i]); + } + $ldapAttributesKeys = array_keys($ldapAttributes); + // convert alias names to lower case (for easier comparison) + $aliasKeys = array_keys($aliases); + for ($i = 0; $i < sizeof($aliasKeys); $i++) { + if ($aliasKeys[$i] != strtolower($aliasKeys[$i])) { + $aliases[strtolower($aliasKeys[$i])] = $aliases[$aliasKeys[$i]]; + unset($aliases[$aliasKeys[$i]]); + $aliasKeys[$i] = strtolower($aliasKeys[$i]); + } + } + // fix object classes and attributes + for ($i = 0; $i < sizeof($keys); $i++) { + // check object classes + if (strtolower($keys[$i]) == 'objectclass') { + // fix object class attribute + if ($keys[$i] != 'objectClass') { + $temp = $attributes[$keys[$i]]; + unset($attributes[$keys[$i]]); + $attributes['objectClass'] = $temp; + } + // fix object classes + for ($attrClass = 0; $attrClass < sizeof($attributes['objectClass']); $attrClass++) { + for ($modClass = 0; $modClass < sizeof($objectClasses); $modClass++) { + if (strtolower($attributes['objectClass'][$attrClass]) == strtolower($objectClasses[$modClass])) { + if ($attributes['objectClass'][$attrClass] != $objectClasses[$modClass]) { + unset($attributes['objectClass'][$attrClass]); + $attributes['objectClass'][] = $objectClasses[$modClass]; + } + break; + } + } + } + } + else { + // fix aliases + if (in_array(strtolower($keys[$i]), $aliasKeys)) { + $attributes[$aliases[strtolower($keys[$i])]] = $attributes[$keys[$i]]; + unset($attributes[$keys[$i]]); + } + // fix attribute names + elseif (in_array(strtolower($keys[$i]), $ldapAttributesKeys)) { + if ($keys[$i] != $ldapAttributes[strtolower($keys[$i])]) { + $attributes[$ldapAttributes[strtolower($keys[$i])]] = $attributes[$keys[$i]]; + unset($attributes[$keys[$i]]); + } + } + } + } + return $attributes; + } + + /** + * This function will prepare the object for a new account. + */ + function new_account() { + logNewMessage(LOG_DEBUG, "New account with type " . $this->type); + $this->isNewAccount = true; + $this->lastLoadedProfile = 'default'; + $modules = $_SESSION['config']->get_AccountModules($this->type); + foreach ($modules as $module) { + $this->module[$module] = new $module($this->type); + $this->module[$module]->init($this->base); + } + // sort module buttons + $this->sortModules(); + $profile = loadAccountProfile('default', $this->type); + // pass profile to each module + $modules = array_keys($this->module); + foreach ($modules as $module) $this->module[$module]->load_profile($profile); + if (isset($profile['ldap_rdn'][0])) { + if (in_array($profile['ldap_rdn'][0], getRDNAttributes($this->type))) { + $this->rdn = $profile['ldap_rdn'][0]; + } + } + if (isset($profile['ldap_suffix'][0]) && ($profile['ldap_suffix'][0] != '-')) { + $this->dnSuffix = $profile['ldap_suffix'][0]; + } + // get titles + $typeObject = new $this->type(); + $this->titleBarTitle = $typeObject->getTitleBarTitle($this); + $this->titleBarSubtitle = $typeObject->getTitleBarSubtitle($this); + return 0; + } + + /** + * This function will save an account to the LDAP database. + * + * @return array list of status messages + */ + function save_account() { + if (!checkIfWriteAccessIsAllowed($this->type)) { + die(); + } + $this->finalDN = $this->dn_orig; + $errors = array(); + $ldapUser = $_SESSION['ldap']->decrypt_login(); + $ldapUser = $ldapUser[0]; + $module = array_keys ($this->module); + $attributes = array(); + // load attributes + foreach ($module as $singlemodule) { + // load changes + $temp = $this->module[$singlemodule]->save_attributes(); + if (!is_array($temp)) $temp = array(); + // merge changes + $DNs = array_keys($temp); + if (is_array($temp)) $attributes = array_merge_recursive($temp, $attributes); + for ($i=0; $idn_orig]['modify'][$this->rdn][0])) { + $this->finalDN = $this->rdn . '=' . $attributes[$this->dn_orig]['modify'][$this->rdn][0] . ',' . $this->dnSuffix; + if ($this->dn_orig != $this->finalDN) { + $attributes[$this->finalDN] = $attributes[$this->dn_orig]; + unset($attributes[$this->dn_orig]); + } + } + elseif (isset($attributes[$this->dn_orig]['add'][$this->rdn][0])) { + $this->finalDN = $this->rdn . '=' . $attributes[$this->dn_orig]['add'][$this->rdn][0] . ',' . $this->dnSuffix; + if ($this->dn_orig != $this->finalDN) { + $attributes[$this->finalDN] = $attributes[$this->dn_orig]; + unset($attributes[$this->dn_orig]); + } + } + elseif (isset($attributes[$this->dn_orig]['remove'][$this->rdn][0]) && isset($attributes[$this->dn_orig]['notchanged'][$this->rdn][0])) { + $this->finalDN = $this->rdn . '=' . $attributes[$this->dn_orig]['notchanged'][$this->rdn][0] . ',' . $this->dnSuffix; + if ($this->dn_orig != $this->finalDN) { + $attributes[$this->finalDN] = $attributes[$this->dn_orig]; + unset($attributes[$this->dn_orig]); + } + } + elseif (!$this->isNewAccount && (($this->dnSuffix != extractDNSuffix($this->dn_orig)) || ($this->rdn != extractRDNAttribute($this->dn_orig)))) { + $this->finalDN = $this->rdn . '=' . $attributes[$this->dn_orig]['notchanged'][$this->rdn][0] . ',' . $this->dnSuffix; + $attributes[$this->finalDN] = $attributes[$this->dn_orig]; + unset($attributes[$this->dn_orig]); + } + // remove pwdAccountLockedTime attribute change if also userPassword is changed (PPolicy will remove this attribute itself) + if (isset($attributes[$this->finalDN]['modify']['userPassword']) || isset($attributes[$this->finalDN]['remove']['userPassword'])) { + if (isset($attributes[$this->finalDN]['modify']['pwdAccountLockedTime'])) { + unset($attributes[$this->finalDN]['modify']['pwdAccountLockedTime']); + } + if (isset($attributes[$this->finalDN]['remove']['pwdAccountLockedTime'])) { + unset($attributes[$this->finalDN]['remove']['pwdAccountLockedTime']); + } + } + // pre modify actions + $prePostModifyAttributes = array(); + if (isset($attributes[$this->finalDN]) && is_array($attributes[$this->finalDN])) { + if (isset($attributes[$this->finalDN]['notchanged'])) { + $prePostModifyAttributes = array_merge($prePostModifyAttributes, $attributes[$this->finalDN]['notchanged']); + } + if (isset($attributes[$this->finalDN]['modify'])) { + foreach ($attributes[$this->finalDN]['modify'] as $key => $value) { + $prePostModifyAttributes[$key] = &$attributes[$this->finalDN]['modify'][$key]; + } + foreach ($attributes[$this->finalDN]['modify'] as $key => $value) { + $prePostModifyAttributes['MOD.' . $key] = $value; + } + } + if (isset($attributes[$this->finalDN]['add'])) { + foreach ($attributes[$this->finalDN]['add'] as $key => $value) { + $prePostModifyAttributes[$key] = &$attributes[$this->finalDN]['add'][$key]; + } + foreach ($attributes[$this->finalDN]['add'] as $key => $value) { + $prePostModifyAttributes['NEW.' . $key] = $value; + } + } + if (isset($attributes[$this->finalDN]['remove'])) { + foreach ($attributes[$this->finalDN]['remove'] as $key => $value) { + $prePostModifyAttributes['DEL.' . $key] = $value; + } + } + if (isset($attributes[$this->finalDN]['info'])) { + foreach ($attributes[$this->finalDN]['info'] as $key => $value) { + $prePostModifyAttributes['INFO.' . $key] = $value; + } + } + } + if (!$this->isNewAccount) { + foreach ($this->attributes_orig as $key => $value) { + $prePostModifyAttributes['ORIG.' . $key] = $value; + } + $prePostModifyAttributes['ORIG.dn'][0] = $this->dn_orig; + } + $prePostModifyAttributes['dn'][0] = $this->finalDN; + if (!$this->isNewAccount && ($this->finalDN != $this->dn_orig)) { + $prePostModifyAttributes['MOD.dn'][0] = $this->finalDN; + } + logNewMessage(LOG_DEBUG, 'Edit page pre/postModify attributes: ' . print_r($prePostModifyAttributes, true)); + $preModifyOk = true; + foreach ($module as $singlemodule) { + $preModifyMessages = $this->module[$singlemodule]->preModifyActions($this->isNewAccount, $prePostModifyAttributes); + $errors = array_merge($errors, $preModifyMessages); + for ($i = 0; $i < sizeof($preModifyMessages); $i++) { + if ($preModifyMessages[$i][0] == 'ERROR') { + $preModifyOk = false; + break; + } + } + } + if (!$preModifyOk) { + $errors[] = array('ERROR', _('The operation was stopped because of the above errors.')); + return $errors; + } + // Set to true if an real error has happened + $stopprocessing = false; + if (strtolower($this->finalDN) != strtolower($this->dn_orig)) { + // move existing DN + if ($this->dn_orig!='') { + $removeOldRDN = false; + if (isset($attributes[$this->finalDN]['modify'])) { + $attributes[$this->finalDN]['modify'] = array_change_key_case($attributes[$this->finalDN]['modify'], CASE_LOWER); + } + $rdnAttr = strtolower(extractRDNAttribute($this->finalDN)); + if (isset($attributes[$this->finalDN]['modify'][$rdnAttr]) + && (sizeof($attributes[$this->finalDN]['modify'][$rdnAttr]) == 1) + && ($attributes[$this->finalDN]['modify'][$rdnAttr][0] == extractRDNValue($this->finalDN))) { + // remove old RDN if attribute is single valued + $removeOldRDN = true; + unset($attributes[$this->finalDN]['modify'][extractRDNAttribute($this->finalDN)]); + } + if (isset($attributes[$this->finalDN]['notchanged'][$rdnAttr]) + && !(isset($attributes[$this->finalDN]['add'][$rdnAttr]) || isset($attributes[$this->finalDN]['modify'][$rdnAttr]) || isset($attributes[$this->finalDN]['remove'][$rdnAttr]))) { + // fix for AD which requires to remove RDN even if not changed + $removeOldRDN = true; + } + logNewMessage(LOG_DEBUG, 'Rename ' . $this->dn_orig . ' to ' . $this->finalDN); + $success = ldap_rename($_SESSION['ldap']->server(), $this->dn_orig, $this->getRDN($this->finalDN), $this->getParentDN($this->finalDN), $removeOldRDN); + if ($success) { + logNewMessage(LOG_NOTICE, '[' . $ldapUser .'] Renamed DN ' . $this->dn_orig . " to " . $this->finalDN); + // do not add attribute value as new one if added via rename operation + if (!empty($attributes[$this->finalDN]['add'][$rdnAttr]) && in_array(extractRDNValue($this->finalDN), $attributes[$this->finalDN]['add'][$rdnAttr])) { + $attributes[$this->finalDN]['add'][$rdnAttr] = array_delete(array(extractRDNValue($this->finalDN)), $attributes[$this->finalDN]['add'][$rdnAttr]); + if (empty($attributes[$this->finalDN]['add'][$rdnAttr])) { + unset($attributes[$this->finalDN]['add'][$rdnAttr]); + } + } + } + else { + logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to rename DN: ' . $this->dn_orig . ' (' . ldap_error($_SESSION['ldap']->server()) . '). ' + . getExtendedLDAPErrorMessage($_SESSION['ldap']->server())); + $errors[] = array('ERROR', sprintf(_('Was unable to rename DN: %s.'), $this->dn_orig), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + $stopprocessing = true; + } + } + // create complete new dn + else { + $attr = array(); + if (isset($attributes[$this->finalDN]['add']) && is_array($attributes[$this->finalDN]['add'])) { + $attr = array_merge_recursive($attr, $attributes[$this->finalDN]['add']); + } + if (isset($attributes[$this->finalDN]['notchanged']) && is_array($attributes[$this->finalDN]['notchanged'])) { + $attr = array_merge_recursive($attr, $attributes[$this->finalDN]['notchanged']); + } + if (isset($attributes[$this->finalDN]['modify']) && is_array($attributes[$this->finalDN]['modify'])) { + $attr = array_merge_recursive($attr, $attributes[$this->finalDN]['modify']); + } + $success = @ldap_add($_SESSION['ldap']->server(), $this->finalDN, $attr); + if (!$success) { + logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to create DN: ' . $this->finalDN . ' (' . ldap_error($_SESSION['ldap']->server()) . '). ' + . getExtendedLDAPErrorMessage($_SESSION['ldap']->server())); + $errors[] = array('ERROR', sprintf(_('Was unable to create DN: %s.'), $this->finalDN), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + $stopprocessing = true; + } + else { + logNewMessage(LOG_NOTICE, '[' . $ldapUser .'] Created DN: ' . $this->finalDN); + } + unset($attributes[$this->finalDN]); + } + } + $DNs = array_keys($attributes); + for ($i=0; $iserver(), $DNs[$i], $attributes[$DNs[$i]]['modify']); + if (!$success) { + logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to modify attributes of DN: ' . $DNs[$i] . ' (' . ldap_error($_SESSION['ldap']->server()) . '). ' + . getExtendedLDAPErrorMessage($_SESSION['ldap']->server())); + $errors[] = array('ERROR', sprintf(_('Was unable to modify attributes of DN: %s.'), $DNs[$i]), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + $stopprocessing = true; + } + else { + logNewMessage(LOG_NOTICE, '[' . $ldapUser .'] Modified DN: ' . $DNs[$i]); + // check if the password of the currently logged in user was changed + $lamAdmin = $_SESSION['ldap']->decrypt_login(); + if ((strtolower($DNs[$i]) == strtolower($lamAdmin[0])) && isset($attributes[$DNs[$i]]['info']['userPasswordClearText'][0])) { + $_SESSION['ldap']->encrypt_login($DNs[$i], $attributes[$DNs[$i]]['info']['userPasswordClearText'][0]); + } + } + } + // add attributes + if (!empty($attributes[$DNs[$i]]['add']) && !$stopprocessing) { + $success = @ldap_mod_add($_SESSION['ldap']->server(), $DNs[$i], $attributes[$DNs[$i]]['add']); + if (!$success) { + logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to add attributes to DN: ' . $DNs[$i] . ' (' . ldap_error($_SESSION['ldap']->server()) . '). ' + . getExtendedLDAPErrorMessage($_SESSION['ldap']->server())); + $errors[] = array('ERROR', sprintf(_('Was unable to add attributes to DN: %s.'), $DNs[$i]), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + $stopprocessing = true; + } + else { + logNewMessage(LOG_NOTICE, '[' . $ldapUser .'] Modified DN: ' . $DNs[$i]); + } + } + // remove attributes + if (!empty($attributes[$DNs[$i]]['remove']) && !$stopprocessing) { + $success = @ldap_mod_del($_SESSION['ldap']->server(), $DNs[$i], $attributes[$DNs[$i]]['remove']); + if (!$success) { + logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to delete attributes from DN: ' . $DNs[$i] . ' (' . ldap_error($_SESSION['ldap']->server()) . '). ' + . getExtendedLDAPErrorMessage($_SESSION['ldap']->server())); + $errors[] = array('ERROR', sprintf(_('Was unable to remove attributes from DN: %s.'), $DNs[$i]), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + $stopprocessing = true; + } + else { + logNewMessage(LOG_NOTICE, '[' . $ldapUser .'] Modified DN: ' . $DNs[$i]); + } + } + } + } + // send password mail + if (!$stopprocessing && isLAMProVersion() && ($this->sendPasswordViaMail != null)) { + $mailMessages = sendPasswordMail($this->sendPasswordViaMail, $prePostModifyAttributes, $this->sendPasswordViaMailAlternateAddress); + if (sizeof($mailMessages) > 0) { + $errors = array_merge($errors, $mailMessages); + } + $this->sendPasswordViaMail = null; + $this->sendPasswordViaMailAlternateAddress = null; + } + if (!$stopprocessing) { + // post modify actions + foreach ($module as $singlemodule) { + $postMessages = $this->module[$singlemodule]->postModifyActions($this->isNewAccount, $prePostModifyAttributes); + $errors = array_merge($errors, $postMessages); + } + } + return $errors; + } + + /** + * Returns a list of possible PDF entries for this account. + * + * @return list of PDF entries (array( => )) + */ + function get_pdfEntries() { + $return = array(); + while(($current = current($this->module)) != null) { + $return = array_merge($return,$current->get_pdfEntries()); + next($this->module); + } + $dn = $this->dn_orig; + if (isset($this->finalDN)) { + $dn = $this->finalDN; + } + $return = array_merge($return,array('main_dn' => array('' . _('DN') . '' . $dn . ''))); + return $return; + } + + /** + * Sorts the module buttons for the account page. + */ + function sortModules() { + $order = array(); + $modules = array_keys($this->module); + $depModules = array(); + if (isset($this->order)) { + $currentPage = $this->order[$this->current_page]; + } + for ($i = 0; $i < sizeof($modules); $i++) { + // insert waiting modules + for ($w = 0; $w < sizeof($depModules); $w++) { + $dependencies = $this->module[$depModules[$w]]->get_dependencies($this->type); + $dependencies = $dependencies['depends']; + $everything_found = true; + for ($d = 0; $d < sizeof($dependencies); $d++) { + if (!in_array($dependencies[$d], $order)) { + $everything_found = false; + break; + } + } + // inser after depending module + if ($everything_found) { + $order[] = $depModules[$w]; + unset($depModules[$w]); + $depModules = array_values($depModules); + $w--; + } + } + // check next module + $dependencies = $this->module[$modules[$i]]->get_dependencies($this->type); + if (is_array($dependencies['depends'])) { + $everything_found = true; + $dependencies = $dependencies['depends']; + for ($d = 0; $d < sizeof($dependencies); $d++) { + if (!in_array($dependencies[$d], $order)) { + $everything_found = false; + break; + } + } + // remove module if dependencies are not satisfied + if (!$everything_found) { + $depModules[] = $modules[$i]; + unset($modules[$i]); + $modules = array_values($modules); + $i--; + } + else { + $order[] = $modules[$i]; + } + } + else { + $order[] = $modules[$i]; + } + } + // add modules which could not be sorted (e.g. because of cyclic dependencies) + if (sizeof($depModules) > 0) { + for ($i = 0; $i < sizeof($depModules); $i++) $order[] = $depModules[$i]; + } + // move disabled modules to end + $activeModules = array(); + $passiveModules = array(); + for ($i = 0; $i < sizeof($order); $i++) { + if ($this->module[$order[$i]]->getButtonStatus() == 'enabled') { + $activeModules[] = $order[$i]; + } + else { + $passiveModules[] = $order[$i]; + } + } + $this->order = array_merge($activeModules, $passiveModules); + // check if ordering changed and current page number must be updated + if (isset($currentPage) && ($currentPage != $this->order[$this->current_page])) { + $this->current_page = array_search($currentPage, $this->order); + } + } + + /** + * Returns the RDN part of a given DN. + * + * @param String $dn DN + * @return String RDN + */ + function getRDN($dn) { + if (($dn == "") || ($dn == null)) return ""; + $rdn = substr($dn, 0, strpos($dn, ",")); + return $rdn; + } + + /** + * Returns the parent DN of a given DN. + * + * @param String $dn DN + * @return String DN + */ + function getParentDN($dn) { + if (($dn == "") || ($dn == null)) return ""; + $parent = substr($dn, strpos($dn, ",") + 1); + return $parent; + } + + /** + * Returns a list of OUs that exist for this account type. + * + * @return array OU list + */ + public function getOUs() { + if ($this->cachedOUs != null) { + return $this->cachedOUs; + } + $typeObj = new $this->type(); + $this->cachedOUs = $typeObj->getSuffixList(); + return $this->cachedOUs; + } + + /** + * Encrypts sensitive data before storing in session. + * + * @return array list of attributes which are serialized + */ + function __sleep() { + // encrypt data + $this->attributes = $_SESSION['ldap']->encrypt(serialize($this->attributes)); + $this->attributes_orig = $_SESSION['ldap']->encrypt(serialize($this->attributes_orig)); + $this->module = $_SESSION['ldap']->encrypt(serialize($this->module)); + // save all attributes + return array_keys(get_object_vars($this)); + } + + /** + * Decrypts sensitive data after accountContainer was loaded from session. + */ + function __wakeup() { + // decrypt data + $this->attributes = unserialize($_SESSION['ldap']->decrypt($this->attributes)); + $this->attributes_orig = unserialize($_SESSION['ldap']->decrypt($this->attributes_orig)); + $this->module = unserialize($_SESSION['ldap']->decrypt($this->module)); + } + +} + +/** + * This interface needs to be implemented by all account modules which manage passwords. + * It allows LAM to provide central password changes. + * + * @package modules + */ +interface passwordService { + + /** + * This method specifies if a module manages password attributes. The module alias will + * then appear as option in the GUI. + *
    If the module only wants to get notified about password changes then return false. + * + * @return boolean true if this module manages password attributes + */ + public function managesPasswordAttributes(); + + /** + * Specifies if this module supports to force that a user must change his password on next login. + * + * @return boolean force password change supported + */ + public function supportsForcePasswordChange(); + + /** + * This function is called whenever the password should be changed. Account modules + * must change their password attributes only if the modules list contains their module name. + * + * @param String $password new password + * @param array $modules list of modules for which the password should be changed + * @param boolean $forcePasswordChange force the user to change his password at next login + * @return array list of error messages if any as parameter array for StatusMessage + * e.g. return arrray(array('ERROR', 'Password change failed.')) + */ + public function passwordChangeRequested($password, $modules, $forcePasswordChange); + +} + +?> diff --git a/lam/lib/modules/account.inc b/lam/lib/modules/account.inc new file mode 100644 index 00000000..477a33c7 --- /dev/null +++ b/lam/lib/modules/account.inc @@ -0,0 +1,303 @@ +get_scope(), array("host", "user")); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + if (isset($_SESSION['loggedIn']) && ($_SESSION['loggedIn'] === true)) { + $modules = $_SESSION['config']->get_AccountModules($this->get_scope()); + } + $return = array(); + // icon + $return['icon'] = 'uid.png'; + // alias name + $return["alias"] = _('Account'); + // this is a base module + $return["is_base"] = true; + // LDAP filter + $return["ldap_filter"] = array('or' => "(objectClass=account)"); + // RDN attribute + $return["RDN"] = array("uid" => "low"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('account'); + // LDAP aliases + $return['LDAPaliases'] = array('userid' => 'uid'); + // managed attributes + $return['attributes'] = array('uid', 'description'); + // available PDF fields + $return['PDF_fields'] = array( + 'description' => _('Description') + ); + if (isset($_SESSION['loggedIn']) && ($_SESSION['loggedIn'] === true) && !in_array('posixAccount', $modules)) { + $return['PDF_fields']['uid'] = _('User name'); + } + // help Entries + $return['help'] = array ( + 'host' => array( + 'uid' => array( + "Headline" => _("Host name"), 'attr' => 'uid', + "Text" => _("Host name of the host which should be created. Valid characters are: a-z,A-Z,0-9, .-_$. Host names are always ending with $. If last character is not $ it will be added. If host name is already used host name will be expanded with a number. The next free number will be used.") + ), + 'description' => array ( + "Headline" => _("Description"), 'attr' => 'description', + "Text" => _("Host description. If left empty host name will be used.") + ) + ), + 'user' => array( + 'uid' => array( + "Headline" => _("User name"), 'attr' => 'uid', + "Text" => _("User name of the user who should be created. Valid characters are: a-z,A-Z,0-9, @.-_.") + ), + 'description' => array ( + "Headline" => _("Description"), 'attr' => 'description', + "Text" => _("User description. If left empty user name will be used.") + ) + ) + ); + // upload columns + $return['upload_columns'][] = array( + 'name' => 'account_description', + 'description' => _('Description'), + 'help' => 'description', + 'example' => '' + ); + return $return; + } + + /** + * This function fills the message array. + */ + function load_Messages() { + $this->messages['uid'][0] = array('ERROR', _('User name'), _('User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['uid'][1] = array('ERROR', _('Account %s:') . ' posixAccount_userName', _('User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['uid'][2] = array('WARN', _('User name'), _('You are using capital letters. This can cause problems because Windows is not case-sensitive.')); + $this->messages['uid'][3] = array('ERROR', _('User name'), _('User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + } + + /** + * This functions returns true if all needed settings are done. + * + * @return boolean true if LDAP operation can be done + */ + function module_complete() { + $modules = $_SESSION['config']->get_AccountModules($this->get_scope()); + if (!in_array('posixAccount', $modules) && $this->attributes['uid'][0] == '') return false; + return true; + } + + /** + * Controls if the module button the account page is visible and activated. + * + * @return string status ("enabled", "disabled", "hidden") + */ + function getButtonStatus() { + if (!$this->getAccountContainer()->isNewAccount) { + // check if account is based on our object class + $objectClasses = $this->getAccountContainer()->attributes_orig['objectClass']; + if (is_array($objectClasses) && !in_array('account', $objectClasses)) { + return "disabled"; + } + } + return "enabled"; + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + function save_attributes() { + // skip saving if account is based on another structural object class + if (!$this->getAccountContainer()->isNewAccount && !in_array('account', $this->getAccountContainer()->attributes_orig['objectClass'])) { + return array(); + } + // Get easy attributes + $return = $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig); + // Return attributes + return $return; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + $errors = array(); + // Load attributes + $this->attributes['description'][0] = $_POST['description']; + // user name if no posixAccount + $modules = $_SESSION['config']->get_AccountModules($this->get_scope()); + if (!in_array('posixAccount', $modules)) { + $this->attributes['uid'][0] = $_POST['uid']; + if (!get_preg($this->attributes['uid'][0], '!upper')) $errors[] = $this->messages['uid'][2]; + if (!get_preg($this->attributes['uid'][0], 'username')) $errors[] = $this->messages['uid'][3]; + } + return $errors; + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $container = new htmlTable(); + // user name if no posixAccount + $modules = $_SESSION['config']->get_AccountModules($this->get_scope()); + if (!in_array('posixAccount', $modules)) { + $title = _('User name'); + if ($this->get_scope()=='host') { + $title = _('Host name'); + } + $uidInput = $this->addSimpleInputTextField($container, 'uid', $title, true); + $uidInput->setFieldMaxLength(100); + } + // description + $this->addSimpleInputTextField($container, 'description', _('Description')); + return $container; + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'description', _('Description')); + $this->addSimplePDFField($return, 'uid', _('User name')); + return $return; + } + + /** + * Returns an array containing all input columns for the file upload. + * + * Syntax: + *
    array( + *
    string: name, // fixed non-translated name which is used as column name (should be of format: _) + *
    string: description, // short descriptive name + *
    string: help, // help ID + *
    string: example, // example value + *
    boolean: required // true, if user must set a value for this column + *
    ) + * + * @param array $selectedModules list of selected account modules + * @return array column list + */ + function get_uploadColumns($selectedModules) { + $return = parent::get_uploadColumns($selectedModules); + if (!in_array('posixAccount', $selectedModules)) { + $return[] = array( + 'name' => 'account_uid', + 'description' => _('User name'), + 'help' => 'uid', + 'required' => true + ); + } + return $return; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array("account", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "account"; + // description + if ($rawAccounts[$i][$ids['account_description']] && ($rawAccounts[$i][$ids['account_description']] != '')) { + $partialAccounts[$i]['description'] = $rawAccounts[$i][$ids['account_description']]; + } + elseif (isset($ids['account_uid']) && isset($rawAccounts[$i][$ids['account_uid']])) { + $partialAccounts[$i]['description'] = $rawAccounts[$i][$ids['account_uid']]; + } + elseif (isset($partialAccounts[$i]['uid'])) { + $partialAccounts[$i]['description'] = $partialAccounts[$i]['uid']; + } + if (!in_array('posixAccount', $selectedModules)) { + // user name + if (get_preg($rawAccounts[$i][$ids['account_uid']], 'username')) { + $partialAccounts[$i]['uid'] = $rawAccounts[$i][$ids['account_uid']]; + } + else { + $errMsg = $this->messages['uid'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + } + } + return $messages; + } + +} + +?> diff --git a/lam/lib/modules/asteriskAccount.inc b/lam/lib/modules/asteriskAccount.inc new file mode 100644 index 00000000..68c0f866 --- /dev/null +++ b/lam/lib/modules/asteriskAccount.inc @@ -0,0 +1,1306 @@ +autoAddObjectClasses = false; + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('user')); + } + + /** + * Returns meta data that is interpreted by parent class. + * + * @return array array with meta data + */ + function get_metaData() { + $return = array(); + $return["is_base"] = false; + // alias name + $return["alias"] = _("Asterisk"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('AsteriskSIPUser'); + // managed attributes + $return['attributes'] = array('AstAccountCallerID', 'AstAccountHost', + 'AstAccountRealmedPassword', 'AstAccountContext', 'AstAccountType', + 'AstAccountUserAgent', 'AstAccountAMAFlags', 'AstAccountCallGroup', + 'AstAccountDTMFMode', 'AstAccountFromUser', 'AstAccountFromDomain', + 'AstAccountFullContact', 'AstAccountInsecure', 'AstAccountMailbox', + 'AstAccountNAT', 'AstAccountDeny', 'AstAccountPermit', + 'AstAccountPickupGroup', 'AstAccountPort', 'AstAccountQualify', + 'AstAccountRestrictCID', 'AstAccountRTPTimeout', 'AstAccountRTPHoldTimeout', + 'AstAccountDisallowedCodec', 'AstAccountAllowedCodec', 'AstAccountMusicOnHold', + 'AstAccountExpirationTimestamp', 'AstAccountRegistrationContext', + 'AstAccountRegistrationExten', 'AstAccountCanCallForward', 'AstAccountIPAddress', + 'AstAccountDefaultUser', 'AstAccountRegistrationServer', 'AstAccountLastQualifyMilliseconds', + ); + // icon + $return['icon'] = 'asterisk.png'; + // self service + $return['selfServiceFieldSettings'] = array( + 'syncAsteriskPassword' => _('Sync Asterisk password with Unix password'), + ); + // self service: fields that cannot be relabeled + $return['selfServiceNoRelabelFields'] = array('syncAsteriskPassword'); + // help + $return['help'] = array( + 'AstAccountCallerID' => array( + "Headline" => _("Caller ID"), 'attr' => 'AstAccountCallerID', + "Text" => _("This is the ID of the user in the Asterisk database. It may contain digits and letters (e.g. user1 or 200134).") + ), + 'AstAccountHost' => array( + "Headline" => _("Host"), 'attr' => 'AstAccountHost', + "Text" => _("This is the machine id (e.g. IP address or host name) from which the user can call/receive calls.") + ), + 'AstAccountContext' => array( + "Headline" => _("Account context"), 'attr' => 'AstAccountContext', + "Text" => _("The account context stores information about the dial plan.") + ), + 'AstAccountRealmedPassword' => array( + "Headline" => _("Password"), 'attr' => 'AstAccountRealmedPassword', + "Text" => _("Please enter the password which you want to set for this account.") + ), + 'AstAccountType' => array( + "Headline" => _("Account type"), 'attr' => 'AstAccountType', + "Text" => _("Please enter the account's type (e.g. \"friend\").") + ), + 'AsteriskRealm' => array( + "Headline" => _("Asterisk realm"), + "Text" => _("Authentication realm for Asterisk server (default: asterisk). This value set in sip.conf (option: \"realm\").") + ), + 'AstAccountUserAgent' => array( + "Headline" => _("User agent"), 'attr' => 'AstAccountUserAgent', + "Text" => _("SIP user agent identification.") + ), + 'AstAccountAMAFlags' => array( + "Headline" => _("AMA flags"), 'attr' => 'AstAccountAMAFlags', + "Text" => _("Asterisk AMA (Automated Message Accounting) flags.") + ), + 'AstAccountCallGroup' => array( + "Headline" => _("Call groups"), 'attr' => 'AstAccountCallGroup', + "Text" => _("The user's call groups.") + ), + 'AstAccountDTMFMode' => array( + "Headline" => _("DTMF mode"), 'attr' => 'AstAccountDTMFMode', + "Text" => _("DTMF mode for SIP client configuration.") + ), + 'AstAccountFromUser' => array( + "Headline" => _("From user"), 'attr' => 'AstAccountFromUser', + "Text" => _("From user setting for this account.") + ), + 'AstAccountFromDomain' => array( + "Headline" => _("From domain"), 'attr' => 'AstAccountFromDomain', + "Text" => _("From domain setting for this account.") + ), + 'AstAccountFullContact' => array( + "Headline" => _("Full contact"), 'attr' => 'AstAccountFullContact', + "Text" => _("SIP URI for a realtime peer.") + ), + 'AstAccountInsecure' => array( + "Headline" => _("Insecure"), 'attr' => 'AstAccountInsecure', + "Text" => _("This is typically used to allow incoming calls (e.g. from FWD) while having a type=friend entry defined with username and password.") + ), + 'AstAccountMailbox' => array( + "Headline" => _("Mailbox"), 'attr' => 'AstAccountMailbox', + "Text" => _("Defines the mailbox to check for message waiting indication (MWI) for this peer.") + ), + 'AstAccountNAT' => array( + "Headline" => _("NAT"), 'attr' => 'AstAccountNAT', + "Text" => _("NAT setting for this account.") + ), + 'AstAccountDeny' => array( + "Headline" => _("Deny"), 'attr' => 'AstAccountDeny', + "Text" => _("Used to limit SIP traffic to and from this peer to a certain IP or network.") + ), + 'AstAccountPermit' => array( + "Headline" => _("Permit"), 'attr' => 'AstAccountPermit', + "Text" => _("Used to limit SIP traffic to and from this peer to a certain IP or network.") + ), + 'AstAccountPickupGroup' => array( + "Headline" => _("Pickup group"), 'attr' => 'AstAccountPickupGroup', + "Text" => _("Specifies the user's pickup group.") + ), + 'AstAccountPort' => array( + "Headline" => _("Port"), 'attr' => 'AstAccountPort', + "Text" => _("Port number.") + ), + 'AstAccountQualify' => array( + "Headline" => _("Qualify"), 'attr' => 'AstAccountQualify', + "Text" => _("Used to regularly check that a device is still online.") + ), + 'AstAccountRestrictCID' => array( + "Headline" => _("Restrict caller ID"), 'attr' => 'AstAccountRestrictCID', + "Text" => _("Use this to hide the caller ID.") + ), + 'AstAccountRTPTimeout' => array( + "Headline" => _("RTP timeout"), 'attr' => 'AstAccountRTPTimeout', + "Text" => _("Used to automatically hangup the call if no RTP traffic is received.") + ), + 'AstAccountRTPHoldTimeout' => array( + "Headline" => _("RTP hold timeout"), 'attr' => 'AstAccountRTPHoldTimeout', + "Text" => _("Maximum number of seconds of inactivity before terminating a call on hold.") + ), + 'AstAccountDisallowedCodec' => array( + "Headline" => _("Disallowed codec"), 'attr' => 'AstAccountDisallowedCodec', + "Text" => _("List of disallowed codecs.") + ), + 'AstAccountAllowedCodec' => array( + "Headline" => _("Allowed codec"), 'attr' => 'AstAccountAllowedCodec', + "Text" => _("List of allowed codecs.") + ), + 'AstAccountMusicOnHold' => array( + "Headline" => _("Music on hold"), 'attr' => 'AstAccountMusicOnHold', + "Text" => _("Music to play on hold.") + ), + 'AstAccountExpirationTimestamp' => array( + "Headline" => _("Expiration timestamp"), 'attr' => 'AstAccountExpirationTimestamp', + "Text" => _("Expiration timestamp (\"regseconds\" option).") + ), + 'AstAccountRegistrationContext' => array( + "Headline" => _("Registration context"), 'attr' => 'AstAccountRegistrationContext', + "Text" => _("If registration context is specified, Asterisk will dynamically create and destroy a NoOp priority 1 extension for a given peer who registers or unregisters with Asterisk.") + ), + 'AstAccountRegistrationExten' => array( + "Headline" => _("Registration extension"), 'attr' => 'AstAccountRegistrationExten', + "Text" => _("Used for registration context.") + ), + 'AstAccountCanCallForward' => array( + "Headline" => _("Can call forward"), 'attr' => 'AstAccountCanCallForward', + "Text" => _("Specifies if the user can call forward.") + ), + 'AstAccountIPAddress' => array( + "Headline" => _("IP address"), 'attr' => 'AstAccountIPAddress', + "Text" => _("IP address of the peer. Valid only for realtime peers.") + ), + 'AstAccountDefaultUser' => array( + "Headline" => _("Default user"), 'attr' => 'AstAccountDefaultUser', + "Text" => _("Authentication user for outbound proxies.") + ), + 'AstAccountRegistrationServer' => array( + "Headline" => _("Registration server"), 'attr' => 'AstAccountRegistrationServer', + "Text" => _("IP address or domain name of the registration server.") + ), + 'AstAccountLastQualifyMilliseconds' => array( + "Headline" => _("Last qualify milliseconds"), 'attr' => 'AstAccountLastQualifyMilliseconds', + "Text" => _("The number of milliseconds for the last qualify.") + ), + 'hiddenOptions' => array( + "Headline" => _("Hidden options"), + "Text" => _("The selected options will not be managed inside LAM. You can use this to reduce the number of displayed input fields.") + ), + ); + // self service options + $selfServiceContainer = new htmlTable(); + $selfServiceContainer->addElement(new htmlTableExtendedInputField(_('Asterisk realm'), 'asteriskAccount_AsteriskRealm', null)); + $selfServiceContainer->addElement(new htmlHelpLink('AsteriskRealm', get_class($this))); + $return['selfServiceSettings'] = $selfServiceContainer; + // profile options + $profileContainer = new htmlTable(); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Host'), 'asteriskAccount_AstAccountHost', null, 'AstAccountHost'), true); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Account context'), 'asteriskAccount_AstAccountContext', null, 'AstAccountContext'), true); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Account type'), 'asteriskAccount_AstAccountType', null, 'AstAccountType'), true); + $return['profile_options'] = $profileContainer; + // profile mappings + $return['profile_mappings'] = array( + 'asteriskAccount_AstAccountHost' => 'AstAccountHost', + 'asteriskAccount_AstAccountContext' => 'AstAccountContext', + 'asteriskAccount_AstAccountType' => 'AstAccountType', + ); + // available PDF fields + $return['PDF_fields'] = array( + 'AstAccountCallerID' => _('Caller ID'), + 'AstAccountContext' => _('Account context'), + 'AstAccountHost' => _('Host'), + 'AstAccountType' => _('Account type'), + 'AstAccountUserAgent' => _('User agent'), + 'AstAccountAMAFlags' => _('AMA flags'), + 'AstAccountCallGroup' => _('Call groups'), + 'AstAccountDTMFMode' => _('DTFM flags'), + 'AstAccountFromUser' => _('From user'), + 'AstAccountFromDomain' => _('From domain'), + 'AstAccountFullContact'=> _('Full contact'), + 'AstAccountInsecure' => _('Insecure'), + 'AstAccountMailbox' => _('Mailbox'), + 'AstAccountNAT' => _('NAT'), + 'AstAccountDeny' => _('Deny'), + 'AstAccountPermit' => _('Permit'), + 'AstAccountPickupGroup' => _('Pickup group'), + 'AstAccountPort' => _('Port'), + 'AstAccountQualify' => _('Qualify'), + 'AstAccountRestrictCID' => _('Restrict caller ID'), + 'AstAccountRTPTimeout' => _('RTP timeout'), + 'AstAccountRTPHoldTimeout' => _('RTP hold timeout'), + 'AstAccountDisallowedCodec' => _('Disallowed codec'), + 'AstAccountAllowedCodec' => _('Allowed codec'), + 'AstAccountMusicOnHold' => _('Music on hold'), + 'AstAccountExpirationTimestamp' => _('Expiration timestamp'), + 'AstAccountRegistrationContext' => _('Registration context'), + 'AstAccountRegistrationExten' => _('Registration extension'), + 'AstAccountCanCallForward' => _('Can call forward'), + 'AstAccountIPAddress' => _('IP address'), + 'AstAccountDefaultUser' => _('Default user'), + 'AstAccountRegistrationServer' => _('Registration server'), + 'AstAccountLastQualifyMilliseconds' => _('Last qualify milliseconds'), + ); + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'asteriskAccount_AstAccountCallerID', + 'description' => _('Caller ID'), + 'help' => 'AstAccountCallerID', + 'example' => '12345', + 'required' => true + ), + array( + 'name' => 'asteriskAccount_AstAccountContext', + 'description' => _('Account context'), + 'help' => 'AstAccountContext', + 'example' => 'default', + 'required' => true + ), + array( + 'name' => 'asteriskAccount_AstAccountHost', + 'description' => _('Host'), + 'help' => 'AstAccountHost', + 'example' => 'dynamic', + 'default' => 'dynamic', + ), + array( + 'name' => 'asteriskAccount_AstAccountRealmedPassword', + 'description' => _('Password'), + 'help' => 'AstAccountRealmedPassword', + 'example' => _('secret'), + ), + array( + 'name' => 'asteriskAccount_AstAccountType', + 'description' => _('Account type'), + 'help' => 'AstAccountType', + 'example' => 'friend', + 'required' => true + ), + ); + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountUserAgent')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountUserAgent', + 'description' => _('User agent'), + 'help' => 'AstAccountUserAgent', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountAMAFlags')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountAMAFlags', + 'description' => _('AMA flags'), + 'help' => 'AstAccountAMAFlags', + 'example' => 'billing', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountCallGroup')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountCallGroup', + 'description' => _('Call groups'), + 'help' => 'AstAccountCallGroup', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountDTMFMode')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountDTMFMode', + 'description' => _('DTFM flags'), + 'help' => 'AstAccountDTMFMode', + 'example' => 'auto', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountFromUser')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountFromUser', + 'description' => _('From user'), + 'help' => 'AstAccountFromUser', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountFromDomain')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountFromDomain', + 'description' => _('From domain'), + 'help' => 'AstAccountFromDomain', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountFullContact')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountFullContact', + 'description' => _('Full contact'), + 'help' => 'AstAccountFullContact', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountInsecure')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountInsecure', + 'description' => _('Insecure'), + 'help' => 'AstAccountInsecure', + 'example' => 'invite', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountMailbox')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountMailbox', + 'description' => _('Mailbox'), + 'help' => 'AstAccountMailbox', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountNAT')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountNAT', + 'description' => _('NAT'), + 'help' => 'AstAccountNAT', + 'example' => 'never', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountDeny')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountDeny', + 'description' => _('Deny'), + 'help' => 'AstAccountDeny', + ); + } + + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountPermit')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountPermit', + 'description' => _('Permit'), + 'help' => 'AstAccountPermit', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountPickupGroup')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountPickupGroup', + 'description' => _('Pickup group'), + 'help' => 'AstAccountPickupGroup', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountPort')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountPort', + 'description' => _('Port'), + 'help' => 'AstAccountPort', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountQualify')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountQualify', + 'description' => _('Qualify'), + 'help' => 'AstAccountQualify', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountRestrictCID')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountRestrictCID', + 'description' => _('Restrict caller ID'), + 'help' => 'AstAccountRestrictCID', + ); + } + + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountRTPTimeout')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountRTPTimeout', + 'description' => _('RTP timeout'), + 'help' => 'AstAccountRTPTimeout', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountRTPHoldTimeout')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountRTPHoldTimeout', + 'description' => _('RTP hold timeout'), + 'help' => 'AstAccountRTPHoldTimeout', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountDisallowedCodec')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountDisallowedCodec', + 'description' => _('Disallowed codec'), + 'help' => 'AstAccountDisallowedCodec', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountAllowedCodec')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountAllowedCodec', + 'description' => _('Allowed codec'), + 'help' => 'AstAccountAllowedCodec', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountMusicOnHold')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountMusicOnHold', + 'description' => _('Music on hold'), + 'help' => 'AstAccountMusicOnHold', + ); + } + + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountExpirationTimestamp')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountExpirationTimestamp', + 'description' => _('Expiration timestamp'), + 'help' => 'AstAccountExpirationTimestamp', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountRegistrationContext')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountRegistrationContext', + 'description' => _('Registration context'), + 'help' => 'AstAccountRegistrationContext', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountRegistrationExten')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountRegistrationExten', + 'description' => _('Registration extension'), + 'help' => 'AstAccountRegistrationExten', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountCanCallForward')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountCanCallForward', + 'description' => _('Can call forward'), + 'help' => 'AstAccountCanCallForward', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountIPAddress')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountIPAddress', + 'description' => _('IP address'), + 'help' => 'AstAccountIPAddress', + ); + } + + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountDefaultUser')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountDefaultUser', + 'description' => _('Default user'), + 'help' => 'AstAccountDefaultUser', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountRegistrationServer')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountRegistrationServer', + 'description' => _('Registration server'), + 'help' => 'AstAccountRegistrationServer', + ); + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountLastQualifyMilliseconds')) { + $return['upload_columns'][] = array( + 'name' => 'asteriskAccount_AstAccountLastQualifyMilliseconds', + 'description' => _('Last qualify milliseconds'), + 'help' => 'AstAccountLastQualifyMilliseconds', + ); + } + return $return; + } + + /** + * This function fills the error message array with messages + */ + function load_Messages() { + $this->messages['AstAccountCallerID'][0] = array('ERROR', _('Please enter a caller ID.')); + $this->messages['AstAccountCallerID'][1] = array('ERROR', _('The caller ID format is invalid.')); + $this->messages['AstAccountCallerID'][2] = array('ERROR', _('There is already another user with this caller ID.')); + $this->messages['AstAccountCallerID'][3] = array('ERROR', _('Account %s:') . ' asteriskAccount_AstAccountCallerID', _('The caller ID format is invalid.')); + $this->messages['AstAccountContext'][0] = array('ERROR', _('Please enter the extension context.')); + $this->messages['AstAccountContext'][1] = array('ERROR', _('The extension context is invalid.')); + $this->messages['AstAccountContext'][2] = array('ERROR', _('Account %s:') . ' asteriskAccount_AstAccountContext', _('The extension context is invalid.')); + $this->messages['AstAccountHost'][0] = array('ERROR', _('Please enter the host name.')); + $this->messages['AstAccountHost'][1] = array('ERROR', _('The host name is invalid.')); + $this->messages['AstAccountHost'][2] = array('ERROR', _('Account %s:') . ' asteriskAccount_AstAccountHost', _('The host name is invalid.')); + $this->messages['AstAccountType'][0] = array('ERROR', _('Please enter the account type.')); + $this->messages['AstAccountType'][1] = array('ERROR', _('The account type is invalid.')); + $this->messages['AstAccountType'][2] = array('ERROR', _('Account %s:') . ' asteriskAccount_AstAccountType', _('The account type is invalid.')); + $this->messages['AstAccountFromUser'][0] = array('ERROR', _('Please enter a valid from user.')); + $this->messages['AstAccountFromUser'][1] = array('ERROR', _('Account %s:') . ' asteriskAccount_AstAccountFromUser', _('Please enter a valid from user.')); + $this->messages['AstAccountFromDomain'][0] = array('ERROR', _('Please enter a valid from domain.')); + $this->messages['AstAccountFromDomain'][1] = array('ERROR', _('Account %s:') . ' asteriskAccount_AstAccountFromDomain', _('Please enter a valid from domain.')); + $this->messages['AstAccountPort'][0] = array('ERROR', _('Please enter a valid port number.')); + $this->messages['AstAccountPort'][1] = array('ERROR', _('Account %s:') . ' asteriskAccount_AstAccountPort', _('Please enter a valid port number.')); + $this->messages['AstAccountIPAddress'][0] = array('ERROR', _('The IP address is invalid.')); + $this->messages['AstAccountIPAddress'][1] = array('ERROR', _('Account %s:') . ' asteriskAccount_AstAccountIPAddress', _('The IP address is invalid.')); + $this->messages['AstAccountDefaultUser'][0] = array('ERROR', _('Please enter a valid default user.')); + $this->messages['AstAccountDefaultUser'][1] = array('ERROR', _('Account %s:') . ' asteriskAccount_AstAccountDefaultUser', _('Please enter a valid default user.')); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $return = new htmlTable(); + if (in_array('AsteriskSIPUser', $this->attributes['objectClass'])) { + // caller ID + $this->addSimpleInputTextField($return, 'AstAccountCallerID', _("Caller ID"), true); + // host + $this->addSimpleInputTextField($return, 'AstAccountHost', _("Host"), true); + // context + $this->addSimpleInputTextField($return, 'AstAccountContext', _("Account context"), true); + // account type + $this->addSimpleInputTextField($return, 'AstAccountType', _("Account type"), true); + // user agent + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountUserAgent')) { + $this->addSimpleInputTextField($return, 'AstAccountUserAgent', _("User agent")); + } + // AMA flags + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountAMAFlags')) { + $AstAccountAMAFlagsOptions = array('-', 'default', 'omit', 'billing', 'documentation'); + $AstAccountAMAFlags = array(); + if (isset($this->attributes['AstAccountAMAFlags'][0])) { + $AstAccountAMAFlags[] = $this->attributes['AstAccountAMAFlags'][0]; + if (($this->attributes['AstAccountAMAFlags'][0] != '') && !in_array($this->attributes['AstAccountAMAFlags'][0], $AstAccountAMAFlagsOptions)) { + $AstAccountAMAFlagsOptions[] = $this->attributes['AstAccountAMAFlags'][0]; + } + } + $AstAccountAMAFlagsInput = new htmlTableExtendedSelect('AstAccountAMAFlags', $AstAccountAMAFlagsOptions, $AstAccountAMAFlags, _("AMA flags"), 'AstAccountAMAFlags'); + $return->addElement($AstAccountAMAFlagsInput, true); + } + // call groups + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountCallGroup')) { + $this->addSimpleInputTextField($return, 'AstAccountCallGroup', _("Call groups")); + } + // DTMF flags + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountDTMFMode')) { + $AstAccountDTMFModeOptions = array('-', 'inband', 'rfc2833', 'info', 'auto'); + $AstAccountDTMFMode = array(); + if (isset($this->attributes['AstAccountDTMFMode'][0])) { + $AstAccountDTMFMode[] = $this->attributes['AstAccountDTMFMode'][0]; + if (($this->attributes['AstAccountDTMFMode'][0] != '') && !in_array($this->attributes['AstAccountDTMFMode'][0], $AstAccountDTMFModeOptions)) { + $AstAccountDTMFModeOptions[] = $this->attributes['AstAccountDTMFMode'][0]; + } + } + $AstAccountDTMFModeInput = new htmlTableExtendedSelect('AstAccountDTMFMode', $AstAccountDTMFModeOptions, $AstAccountDTMFMode, _("DTFM flags"), 'AstAccountDTMFMode'); + $return->addElement($AstAccountDTMFModeInput, true); + } + // from user + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountFromUser')) { + $this->addSimpleInputTextField($return, 'AstAccountFromUser', _("From user")); + } + // from domain + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountFromDomain')) { + $this->addSimpleInputTextField($return, 'AstAccountFromDomain', _("From domain")); + } + // full contact + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountFullContact')) { + $this->addSimpleInputTextField($return, 'AstAccountFullContact', _("Full contact")); + } + // insecure + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountInsecure')) { + $AstAccountInsecureOptions = array('-', 'port', 'invite', 'port,invite'); + $AstAccountInsecure = array(); + if (isset($this->attributes['AstAccountInsecure'][0])) { + $AstAccountInsecure[] = $this->attributes['AstAccountInsecure'][0]; + if (($this->attributes['AstAccountInsecure'][0] != '') && !in_array($this->attributes['AstAccountInsecure'][0], $AstAccountInsecureOptions)) { + $AstAccountInsecureOptions[] = $this->attributes['AstAccountInsecure'][0]; + } + } + $AstAccountInsecureInput = new htmlTableExtendedSelect('AstAccountInsecure', $AstAccountInsecureOptions, $AstAccountInsecure, _("Insecure"), 'AstAccountInsecure'); + $return->addElement($AstAccountInsecureInput, true); + } + // mailbox + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountMailbox')) { + $this->addSimpleInputTextField($return, 'AstAccountMailbox', _("Mailbox")); + } + // NAT + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountNAT')) { + $AstAccountNATOptions = array('-', 'yes', 'no', 'never', 'route'); + $AstAccountNAT = array(); + if (isset($this->attributes['AstAccountNAT'][0])) { + $AstAccountNAT[] = $this->attributes['AstAccountNAT'][0]; + if (($this->attributes['AstAccountNAT'][0] != '') && !in_array($this->attributes['AstAccountNAT'][0], $AstAccountNATOptions)) { + $AstAccountNATOptions[] = $this->attributes['AstAccountNAT'][0]; + } + } + $AstAccountNATInput = new htmlTableExtendedSelect('AstAccountNAT', $AstAccountNATOptions, $AstAccountNAT, _("NAT"), 'AstAccountNAT'); + $return->addElement($AstAccountNATInput, true); + } + // deny + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountDeny')) { + $this->addSimpleInputTextField($return, 'AstAccountDeny', _("Deny")); + } + // permit + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountPermit')) { + $this->addSimpleInputTextField($return, 'AstAccountPermit', _("Permit")); + } + // pickup group + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountPickupGroup')) { + $this->addSimpleInputTextField($return, 'AstAccountPickupGroup', _("Pickup group")); + } + // port + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountPort')) { + $AstAccountPort = $this->addSimpleInputTextField($return, 'AstAccountPort', _("Port")); + $AstAccountPort->setValidationRule(htmlElement::VALIDATE_NUMERIC); + } + // qualify + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountQualify')) { + $this->addSimpleInputTextField($return, 'AstAccountQualify', _("Qualify")); + } + // restrict caller ID + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountRestrictCID')) { + $this->addSimpleInputTextField($return, 'AstAccountRestrictCID', _("Restrict caller ID")); + } + // RTP timeout + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountRTPTimeout')) { + $AstAccountRTPTimeout = $this->addSimpleInputTextField($return, 'AstAccountRTPTimeout', _("RTP timeout")); + $AstAccountRTPTimeout->setValidationRule(htmlElement::VALIDATE_NUMERIC); + } + // RTP hold timeout + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountRTPHoldTimeout')) { + $AstAccountRTPHoldTimeoutInput = $this->addSimpleInputTextField($return, 'AstAccountRTPHoldTimeout', _("RTP hold timeout")); + $AstAccountRTPHoldTimeoutInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + } + // disallowed codec + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountDisallowedCodec')) { + $this->addSimpleInputTextField($return, 'AstAccountDisallowedCodec', _("Disallowed codec")); + } + // allowed codec + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountAllowedCodec')) { + $this->addSimpleInputTextField($return, 'AstAccountAllowedCodec', _("Allowed codec")); + } + // music on hold + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountMusicOnHold')) { + $this->addSimpleInputTextField($return, 'AstAccountMusicOnHold', _("Music on hold")); + } + // expiration timestamp + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountExpirationTimestamp')) { + $this->addSimpleInputTextField($return, 'AstAccountExpirationTimestamp', _("Expiration timestamp")); + } + // registration context + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountRegistrationContext')) { + $this->addSimpleInputTextField($return, 'AstAccountRegistrationContext', _("Registration context")); + } + // registration extension + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountRegistrationExten')) { + $this->addSimpleInputTextField($return, 'AstAccountRegistrationExten', _("Registration extension")); + } + // can call forward + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountCanCallForward')) { + $AstAccountCanCallForwardOptions = array('-', 'yes', 'no'); + $AstAccountCanCallForward = array(); + if (isset($this->attributes['AstAccountCanCallForward'][0])) { + $AstAccountCanCallForward[] = $this->attributes['AstAccountCanCallForward'][0]; + if (($this->attributes['AstAccountCanCallForward'][0] != '') && !in_array($this->attributes['AstAccountCanCallForward'][0], $AstAccountCanCallForwardOptions)) { + $AstAccountCanCallForwardOptions[] = $this->attributes['AstAccountCanCallForward'][0]; + } + } + $AstAccountCanCallForwardInput = new htmlTableExtendedSelect('AstAccountCanCallForward', $AstAccountCanCallForwardOptions, $AstAccountCanCallForward, _("Can call forward"), 'AstAccountCanCallForward'); + $return->addElement($AstAccountCanCallForwardInput, true); + } + // IP address + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountIPAddress')) { + $this->addSimpleInputTextField($return, 'AstAccountIPAddress', _("IP address")); + } + // default user + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountDefaultUser')) { + $this->addSimpleInputTextField($return, 'AstAccountDefaultUser', _("Default user")); + } + // registration server + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountRegistrationServer')) { + $this->addSimpleInputTextField($return, 'AstAccountRegistrationServer', _("Registration server")); + } + // last qualify milliseconds + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountLastQualifyMilliseconds')) { + $this->addSimpleInputTextField($return, 'AstAccountLastQualifyMilliseconds', _("Last qualify milliseconds")); + } + } + else { + $return->addElement(new htmlButton('addObjectClass', _('Add Asterisk account'))); + } + return $return; + } + + /** + * Write variables into object and do some regex checks + */ + function process_attributes() { + if (isset($_POST['addObjectClass'])) { + $this->attributes['objectClass'][] = 'AsteriskSIPUser'; + return array(); + } + if (!in_array('AsteriskSIPUser', $this->attributes['objectClass'])) { + return array(); + } + $errors = array(); + $this->attributes['AstAccountCallerID'] = array(); + $this->attributes['AstAccountHost'] = array(); + $this->attributes['AstAccountContext'] = array(); + $this->attributes['AstAccountType'] = array(); + if (isset($_POST['AstAccountCallerID'])) { + $this->attributes['AstAccountCallerID'][0] = $_POST['AstAccountCallerID']; + // check if caller ID is empty + if($this->attributes['AstAccountCallerID'][0] == '') { + $errors[] = $this->messages['AstAccountCallerID'][0]; + } + // check format + else if (!get_preg($this->attributes['AstAccountCallerID'][0], 'username')) { + $errors[] = $this->messages['AstAccountCallerID'][1]; + } + // check for duplicate caller ID + else if (!isset($this->orig['AstAccountCallerID'][0]) || (($this->orig['AstAccountCallerID'][0] != $this->attributes['AstAccountCallerID'][0]))) { + $entries = searchLDAPByAttribute('AstAccountCallerID', $this->attributes['AstAccountCallerID'][0], 'AsteriskSIPUser', array('dn'), array('user')); + if (sizeof($entries) > 0) { + $errors[] = $this->messages['AstAccountCallerID'][2]; + } + } + } + if (isset($_POST['AstAccountHost'])) { + $this->attributes['AstAccountHost'][0] = $_POST['AstAccountHost']; + if($this->attributes['AstAccountHost'][0] == '') { + $errors[] = $this->messages['AstAccountHost'][0]; + } + elseif (!get_preg($this->attributes['AstAccountHost'][0], 'hostname')) { + $errors[] = $this->messages['AstAccountHost'][1]; + } + } + if (isset($_POST['AstAccountContext'])) { + $this->attributes['AstAccountContext'][0] = $_POST['AstAccountContext']; + if($this->attributes['AstAccountContext'][0] == '') { + $errors[] = $this->messages['AstAccountContext'][0]; + } + elseif (!get_preg($this->attributes['AstAccountContext'][0], 'username')) { + $errors[] = $this->messages['AstAccountContext'][1]; + } + } + if (isset($_POST['AstAccountType'])) { + $this->attributes['AstAccountType'][0] = $_POST['AstAccountType']; + if($this->attributes['AstAccountType'][0] == '') { + $errors[] = $this->messages['AstAccountType'][0]; + } + elseif (!get_preg($this->attributes['AstAccountType'][0], 'username')) { + $errors[] = $this->messages['AstAccountType'][1]; + } + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountUserAgent')) { + $this->attributes['AstAccountUserAgent'][0] = $_POST['AstAccountUserAgent']; + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountAMAFlags')) { + if (($_POST['AstAccountAMAFlags'] == '-') && isset($this->attributes['AstAccountAMAFlags'][0])) { + unset($this->attributes['AstAccountAMAFlags'][0]); + } + else { + $this->attributes['AstAccountAMAFlags'][0] = $_POST['AstAccountAMAFlags']; + } + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountCallGroup')) { + $this->attributes['AstAccountCallGroup'][0] = $_POST['AstAccountCallGroup']; + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountDTMFMode')) { + if (($_POST['AstAccountDTMFMode'] == '-') && isset($this->attributes['AstAccountDTMFMode'][0])) { + unset($this->attributes['AstAccountDTMFMode'][0]); + } + else { + $this->attributes['AstAccountDTMFMode'][0] = $_POST['AstAccountDTMFMode']; + } + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountFromUser')) { + $this->attributes['AstAccountFromUser'][0] = $_POST['AstAccountFromUser']; + if (($_POST['AstAccountFromUser'] != '') && !get_preg($_POST['AstAccountFromUser'], 'username')) { + $errors[] = $this->messages['AstAccountFromUser'][0]; + } + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountFromDomain')) { + $this->attributes['AstAccountFromDomain'][0] = $_POST['AstAccountFromDomain']; + if (($_POST['AstAccountFromDomain'] != '') && !get_preg($_POST['AstAccountFromDomain'], 'domainname')) { + $errors[] = $this->messages['AstAccountFromDomain'][0]; + } + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountFullContact')) { + $this->attributes['AstAccountFullContact'][0] = $_POST['AstAccountFullContact']; + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountInsecure')) { + if (($_POST['AstAccountInsecure'] == '-') && isset($this->attributes['AstAccountInsecure'][0])) { + unset($this->attributes['AstAccountInsecure'][0]); + } + else { + $this->attributes['AstAccountInsecure'][0] = $_POST['AstAccountInsecure']; + } + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountMailbox')) { + $this->attributes['AstAccountMailbox'][0] = $_POST['AstAccountMailbox']; + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountNAT')) { + if (($_POST['AstAccountNAT'] == '-') && isset($this->attributes['AstAccountNAT'][0])) { + unset($this->attributes['AstAccountNAT'][0]); + } + else { + $this->attributes['AstAccountNAT'][0] = $_POST['AstAccountNAT']; + } + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountDeny')) { + $this->attributes['AstAccountDeny'][0] = $_POST['AstAccountDeny']; + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountPermit')) { + $this->attributes['AstAccountPermit'][0] = $_POST['AstAccountPermit']; + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountPickupGroup')) { + $this->attributes['AstAccountPickupGroup'][0] = $_POST['AstAccountPickupGroup']; + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountPort')) { + $this->attributes['AstAccountPort'][0] = $_POST['AstAccountPort']; + if (($_POST['AstAccountPort'] != '') && !get_preg($_POST['AstAccountPort'], 'digit')) { + $errors[] = $this->messages['AstAccountPort'][0]; + } + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountQualify')) { + $this->attributes['AstAccountQualify'][0] = $_POST['AstAccountQualify']; + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountRestrictCID')) { + $this->attributes['AstAccountRestrictCID'][0] = $_POST['AstAccountRestrictCID']; + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountRTPTimeout')) { + $this->attributes['AstAccountRTPTimeout'][0] = $_POST['AstAccountRTPTimeout']; + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountRTPHoldTimeout')) { + $this->attributes['AstAccountRTPHoldTimeout'][0] = $_POST['AstAccountRTPHoldTimeout']; + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountDisallowedCodec')) { + $this->attributes['AstAccountDisallowedCodec'][0] = $_POST['AstAccountDisallowedCodec']; + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountAllowedCodec')) { + $this->attributes['AstAccountAllowedCodec'][0] = $_POST['AstAccountAllowedCodec']; + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountMusicOnHold')) { + $this->attributes['AstAccountMusicOnHold'][0] = $_POST['AstAccountMusicOnHold']; + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountExpirationTimestamp')) { + $this->attributes['AstAccountExpirationTimestamp'][0] = $_POST['AstAccountExpirationTimestamp']; + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountRegistrationContext')) { + $this->attributes['AstAccountRegistrationContext'][0] = $_POST['AstAccountRegistrationContext']; + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountRegistrationExten')) { + $this->attributes['AstAccountRegistrationExten'][0] = $_POST['AstAccountRegistrationExten']; + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountCanCallForward')) { + if (($_POST['AstAccountCanCallForward'] == '-') && isset($this->attributes['AstAccountCanCallForward'][0])) { + unset($this->attributes['AstAccountCanCallForward'][0]); + } + else { + $this->attributes['AstAccountCanCallForward'][0] = $_POST['AstAccountCanCallForward']; + } + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountIPAddress')) { + $this->attributes['AstAccountIPAddress'][0] = $_POST['AstAccountIPAddress']; + if (($_POST['AstAccountIPAddress'] != '') && !get_preg($_POST['AstAccountIPAddress'], 'ip')) { + $errors[] = $this->messages['AstAccountIPAddress'][0]; + } + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountDefaultUser')) { + $this->attributes['AstAccountDefaultUser'][0] = $_POST['AstAccountDefaultUser']; + if (($_POST['AstAccountDefaultUser'] != '') && !get_preg($_POST['AstAccountDefaultUser'], 'username')) { + $errors[] = $this->messages['AstAccountDefaultUser'][0]; + } + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountRegistrationServer')) { + $this->attributes['AstAccountRegistrationServer'][0] = $_POST['AstAccountRegistrationServer']; + } + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountLastQualifyMilliseconds')) { + $this->attributes['AstAccountLastQualifyMilliseconds'][0] = $_POST['AstAccountLastQualifyMilliseconds']; + } + return $errors; + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + function save_attributes() { + if (!in_array('AsteriskSIPUser', $this->attributes['objectClass'])) { + return array(); + } + return $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig); + } + + /** + * Returns a list of PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'AstAccountCallerID', _('Caller ID')); + $this->addSimplePDFField($return, 'AstAccountContext', _('Account context')); + $this->addSimplePDFField($return, 'AstAccountHost', _('Host')); + $this->addSimplePDFField($return, 'AstAccountType', _('Account type')); + $this->addSimplePDFField($return, 'AstAccountUserAgent', _('User agent')); + $this->addSimplePDFField($return, 'AstAccountAMAFlags', _('AMA flags')); + $this->addSimplePDFField($return, 'AstAccountCallGroup', _('Call groups')); + $this->addSimplePDFField($return, 'AstAccountDTMFMode', _('DTMF mode')); + $this->addSimplePDFField($return, 'AstAccountFromUser', _('From user')); + $this->addSimplePDFField($return, 'AstAccountFromDomain', _('From domain')); + $this->addSimplePDFField($return, 'AstAccountFullContact', _('Full contact')); + $this->addSimplePDFField($return, 'AstAccountInsecure', _('Insecure')); + $this->addSimplePDFField($return, 'AstAccountMailbox', _('Mailbox')); + $this->addSimplePDFField($return, 'AstAccountNAT', _('NAT')); + $this->addSimplePDFField($return, 'AstAccountDeny', _('Deny')); + $this->addSimplePDFField($return, 'AstAccountPermit', _('Permit')); + $this->addSimplePDFField($return, 'AstAccountPickupGroup', _('Pickup group')); + $this->addSimplePDFField($return, 'AstAccountPort', _('Port')); + $this->addSimplePDFField($return, 'AstAccountQualify', _('Qualify')); + $this->addSimplePDFField($return, 'AstAccountRestrictCID', _('Restrict caller ID')); + $this->addSimplePDFField($return, 'AstAccountRTPTimeout', _('RTP timeout')); + $this->addSimplePDFField($return, 'AstAccountRTPHoldTimeout', _('RTP hold timeout')); + $this->addSimplePDFField($return, 'AstAccountDisallowedCodec', _('Disallowed codec')); + $this->addSimplePDFField($return, 'AstAccountAllowedCodec', _('Allowed codec')); + $this->addSimplePDFField($return, 'AstAccountMusicOnHold', _('Music on hold')); + $this->addSimplePDFField($return, 'AstAccountExpirationTimestamp', _('Expiration timestamp')); + $this->addSimplePDFField($return, 'AstAccountRegistrationContext', _('Registration context')); + $this->addSimplePDFField($return, 'AstAccountRegistrationExten', _('Registration extension')); + $this->addSimplePDFField($return, 'AstAccountCanCallForward', _('Can call forward')); + $this->addSimplePDFField($return, 'AstAccountIPAddress', _('IP address')); + $this->addSimplePDFField($return, 'AstAccountDefaultUser', _('Default user')); + $this->addSimplePDFField($return, 'AstAccountRegistrationServer', _('Registration server')); + $this->addSimplePDFField($return, 'AstAccountLastQualifyMilliseconds', _('Last qualify milliseconds')); + return $return; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array("AsteriskSIPUser", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "AsteriskSIPUser"; + // add account caller id + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountCallerID', 'AstAccountCallerID', + 'username', $this->messages['AstAccountCallerID'][3], $messages); + // add host + if (empty($rawAccounts[$i][$ids['asteriskAccount_AstAccountHost']])) { + // default value + $partialAccounts[$i]['AstAccountHost'] = 'dynamic'; + } + else { + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountHost', 'AstAccountHost', + 'realname', $this->messages['AstAccountHost'][2], $messages); + } + //add context + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountContext', 'AstAccountContext', + 'realname', $this->messages['AstAccountContext'][2], $messages); + //add account type + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountType', 'AstAccountType', + 'username', $this->messages['AstAccountType'][2], $messages); + //add password + if ($rawAccounts[$i][$ids['asteriskAccount_AstAccountRealmedPassword']] != "") { + $attributes = array('AstAccountCallerID' => array($partialAccounts[$i]['AstAccountCallerID'])); // fake attribute list for password building + $pwdString = asteriskAccount::buildPasswordString($attributes, $this->moduleSettings, $rawAccounts[$i][$ids['asteriskAccount_AstAccountRealmedPassword']]); + $partialAccounts[$i]['AstAccountRealmedPassword'] = $pwdString; + } + + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountUserAgent', 'AstAccountUserAgent'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountAMAFlags', 'AstAccountAMAFlags'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountCallGroup', 'AstAccountCallGroup'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountDTMFMode', 'AstAccountDTMFMode'); + + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountFromUser', 'AstAccountFromUser', + 'username', $this->messages['AstAccountFromUser'][1], $messages); + + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountFromDomain', 'AstAccountFromDomain', + 'domainname', $this->messages['AstAccountFromDomain'][1], $messages); + + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountFullContact', 'AstAccountFullContact'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountInsecure', 'AstAccountInsecure'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountMailbox', 'AstAccountMailbox'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountNAT', 'AstAccountNAT'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountDeny', 'AstAccountDeny'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountPermit', 'AstAccountPermit'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountPickupGroup', 'AstAccountPickupGroup'); + + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountPort', 'AstAccountPort', + 'digit', $this->messages['AstAccountPort'][1], $messages); + + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountQualify', 'AstAccountQualify'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountRestrictCID', 'AstAccountRestrictCID'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountRTPTimeout', 'AstAccountRTPTimeout'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountRTPHoldTimeout', 'AstAccountRTPHoldTimeout'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountDisallowedCodec', 'AstAccountDisallowedCodec'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountAllowedCodec', 'AstAccountAllowedCodec'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountMusicOnHold', 'AstAccountMusicOnHold'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountExpirationTimestamp', 'AstAccountExpirationTimestamp'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountRegistrationContext', 'AstAccountRegistrationContext'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountRegistrationExten', 'AstAccountRegistrationExten'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountCanCallForward', 'AstAccountCanCallForward'); + + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountIPAddress', 'AstAccountIPAddress', + 'ip', $this->messages['AstAccountIPAddress'][1], $messages); + + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountDefaultUser', 'AstAccountDefaultUser', + 'username', $this->messages['AstAccountDefaultUser'][1], $messages); + + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountRegistrationServer', 'AstAccountRegistrationServer'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountLastQualifyMilliseconds', 'AstAccountLastQualifyMilliseconds'); + } + return $messages; + } + + + + /** + * This method specifies if a module manages password attributes. + * @see passwordService::managesPasswordAttributes + * + * @return boolean true if this module manages password attributes + */ + public function managesPasswordAttributes() { + if (!in_array('AsteriskSIPUser', $this->attributes['objectClass'])) { + return false; + } + return true; + } + + /** + * Specifies if this module supports to force that a user must change his password on next login. + * + * @return boolean force password change supported + */ + public function supportsForcePasswordChange() { + return false; + } + + /** + * This function is called whenever the password should be changed. Account modules + * must change their password attributes only if the modules list contains their module name. + * + * @param String $password new password + * @param $modules list of modules for which the password should be changed + * @param boolean $forcePasswordChange force the user to change his password at next login + * @return array list of error messages if any as parameter array for StatusMessage + * e.g. return arrray(array('ERROR', 'Password change failed.')) + * @see passwordService::passwordChangeRequested + */ + public function passwordChangeRequested($password, $modules, $forcePasswordChange) { + if (!in_array(get_class($this), $modules)) { + return array(); + } + $this->attributes['AstAccountRealmedPassword'][0] = asteriskAccount::buildPasswordString($this->attributes, $this->moduleSettings, $password); + return array(); + } + + /** + * Builds the password string for the password attribute. + * + * @param array $attributes LDAP attributes + * @param array $moduleSettings module configuration settings + * @param String $password password + * @return String value for password attribute + */ + public static function buildPasswordString(&$attributes, &$moduleSettings, $password) { + $astRealm = asteriskAccount::ASTERISK_DEFAULT_REALM; + $asteriskRealmFromProfile = $moduleSettings['asteriskAccount_AsteriskRealm'][0]; + if ($asteriskRealmFromProfile != ""){ + $astRealm = $asteriskRealmFromProfile; + } + return asteriskAccount::hashPassword($attributes['AstAccountCallerID'][0] . ":" . $astRealm . ":" . $password); + } + + /** + * Hashes a password value to Asterisk format. + * + * @param String $password password + * @return String hash + */ + private static function hashPassword($password) { + return "{MD5}" . md5($password); + } + + /** + * Checks if all input values are correct and returns the LDAP attributes which should be changed. + *
    Return values: + *
    messages: array of parameters to create status messages + *
    add: array of attributes to add + *
    del: array of attributes to remove + *
    mod: array of attributes to modify + *
    info: array of values with informational value (e.g. to be used later by pre/postModify actions) + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}. + * + * @param string $fields input fields + * @param array $attributes LDAP attributes + * @param boolean $passwordChangeOnly indicates that the user is only allowed to change his password and no LDAP content is readable + * @param array $readOnlyFields list of read-only fields + * @return array messages and attributes (array('messages' => array(), 'add' => array('mail' => array('test@test.com')), 'del' => array(), 'mod' => array(), 'info' => array())) + */ + function checkSelfServiceOptions($fields, $attributes, $passwordChangeOnly, $readOnlyFields) { + $return = array('messages' => array(), 'add' => array(), 'del' => array(), 'mod' => array(), 'info' => array()); + if (!isset($attributes['objectClass']) || !in_array_ignore_case('AsteriskSIPUser', $attributes['objectClass'])) { + return $return; + } + if (isset($_POST['posixAccount_password']) && ($_POST['posixAccount_password'] != '')) { + if ($_POST['posixAccount_password'] != $_POST['posixAccount_password2']) { + return $return; + } + else { + if (!get_preg($_POST['posixAccount_password'], 'password')) { + return $return; + } + else { + // sync password + if (in_array('syncAsteriskPassword', $fields)) { + $return['mod']['AstAccountRealmedPassword'][0] = asteriskAccount::buildPasswordString($attributes, $this->selfServiceSettings->moduleSettings, $_POST['posixAccount_password']); + } + } + } + } + return $return; + } + + /** + * Returns a list of configuration options. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * The field names are used as keywords to load and save settings. + * We recommend to use the module name as prefix for them (e.g. posixAccount_homeDirectory) to avoid naming conflicts. + * + * @param array $scopes account types (user, group, host) + * @param array $allScopes list of all active account modules and their scopes (module => array(scopes)) + * @return mixed htmlElement or array of htmlElement + * + * @see htmlElement + */ + public function get_configOptions($scopes, $allScopes) { + $return = parent::get_configOptions($scopes, $allScopes); + // config options + $configContainer = new htmlTable(); + $configRealmTable = new htmlTable(); + $configRealmTable->addElement(new htmlTableExtendedInputField(_('Asterisk realm'), 'asteriskAccount_AsteriskRealm', null, 'AsteriskRealm')); + $configContainer->addElement($configRealmTable, true); + $configContainer->addElement(new htmlSpacer(null, '10px'), true); + $configHiddenHead = new htmlTable(); + $configHiddenHead->addElement(new htmlOutputText(_('Hidden options'))); + $configHiddenHead->addElement(new htmlHelpLink('hiddenOptions')); + $configContainerOptions = new htmlTable(); + $configContainer->addElement($configHiddenHead, true); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountUserAgent', false, _('User agent'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountAMAFlags', false, _('AMA flags'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountCallGroup', false, _('Call groups'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountDTMFMode', false, _('DTFM flags'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountFromUser', false, _('From user'), null, false)); + $configContainerOptions->addNewLine(); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountFromDomain', false, _('From domain'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountFullContact', false, _('Full contact'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountInsecure', false, _('Insecure'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountMailbox', false, _('Mailbox'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountNAT', false, _('NAT'), null, false)); + $configContainerOptions->addNewLine(); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountDeny', false, _('Deny'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountPermit', false, _('Permit'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountPickupGroup', false, _('Pickup group'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountPort', false, _('Port'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountQualify', false, _('Qualify'), null, false)); + $configContainerOptions->addNewLine(); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountRestrictCID', false, _('Restrict caller ID'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountRTPTimeout', false, _('RTP timeout'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountRTPHoldTimeout', false, _('RTP hold timeout'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountDisallowedCodec', false, _('Disallowed codec'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountAllowedCodec', false, _('Allowed codec'), null, false)); + $configContainerOptions->addNewLine(); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountMusicOnHold', false, _('Music on hold'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountExpirationTimestamp', false, _('Expiration timestamp'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountRegistrationContext', false, _('Registration context'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountRegistrationExten', false, _('Registration extension'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountCanCallForward', false, _('Can call forward'), null, false)); + $configContainerOptions->addNewLine(); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountIPAddress', false, _('IP address'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountDefaultUser', false, _('Default user'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountRegistrationServer', false, _('Registration server'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountLastQualifyMilliseconds', false, _('Last qualify milliseconds'), null, false)); + $configContainerOptions->addNewLine(); + $configContainer->addElement($configContainerOptions, true); + $return[] = $configContainer; + return $return; + } + +} + +?> diff --git a/lam/lib/modules/asteriskExtension.inc b/lam/lib/modules/asteriskExtension.inc new file mode 100644 index 00000000..8196e925 --- /dev/null +++ b/lam/lib/modules/asteriskExtension.inc @@ -0,0 +1,1010 @@ +get_scope(), array('asteriskExt')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + */ + function get_metaData() { + $return = array(); + $return["is_base"] = true; + // RDN attribute + $return["RDN"] = array("cn" => "normal"); + // LDAP filter + $return["ldap_filter"] = array('or' => "(objectClass=AsteriskExtension)"); + // alias name + $return["alias"] = _("Asterisk extension"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('AsteriskExtension', 'groupOfNames'); + // managed attributes + $return['attributes'] = array('cn', 'member', 'AstExtension', 'AstPriority', + 'AstApplication', 'AstApplicationData', 'AstContext'); + //ldap aliases + $return['LDAPaliases'] = array('commonName' => 'cn'); + // icon + $return['icon'] = 'asterisk.png'; + // help + $return['help'] = array( + 'AstApplicationData' => array( + "Headline" => _("Application data"), 'attr' => 'AstApplicationData', + "Text" => _("This defines what application Asterisk has to start for this user (e.g. SIP/user1).") + ), + 'AstContext' => array( + "Headline" => _("Account context"), 'attr' => 'AstContext', + "Text" => _("The account context stores information about the dial plan.") + ), + 'AstExtension' => array( + "Headline" => _("Extension name"), 'attr' => 'AstExtension', + "Text" => _("The name of the extension (e.g. voicemail or sip).") + ), + 'AstPriority' => array( + "Headline" => _("Priority"), 'attr' => 'AstPriority', + "Text" => _("The priority is a sequence number used to order the execution of commands. Commands are executed beginning with the lowest sequence number.") + ), + 'AstApplication' => array( + "Headline" => _("Application"), 'attr' => 'AstApplication', + "Text" => _("The name of a command to execute. The available commands may be listed at the Asterisk command line by executing \"core show applications\".") + ), + 'member' => array( + "Headline" => _("Extension owners"), 'attr' => 'member', + "Text" => _("DNs of the extension owners") + ), + 'cn' => array( + "Headline" => _("Common name"), 'attr' => 'cn', + "Text" => _("Common name of the Asterisk extension.") + ), + 'ownerOptions' => array( + "Headline" => _("Options"), + "Text" => _("These options change the list of potential extension owners below. You can select to show Asterisk accounts or all users. It is also possible to search the tree suffix if you have users which are not in the standard user suffix.") + ), + ); + + // profile options + $profileContainer = new htmlTable(); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Account context'), 'AsteriskExtension_AstContext', null, 'AstContext'), true); + $return['profile_options'] = $profileContainer; + $return['profile_mappings'] = array( + 'AsteriskExtension_AstContext' => 'AstContext', + ); + // available PDF fields + $return['PDF_fields'] = array( + 'AstContext' => _('Account context'), + 'AstExtension' => _('Extension name'), + 'owners' => _('Extension owners'), + 'rules' => _('Rules'), + ); + + $return['upload_columns'] = array( + array( + 'name' => 'asteriskExtension_AstExtension', + 'description' => _('Extension name'), + 'help' => 'AstExtension', + 'example' => '500', + 'required' => true + ), + array( + 'name' => 'asteriskExtension_AstContext', + 'description' => _('Account context'), + 'help' => 'AstContext', + 'example' => _('test'), + 'required' => true, + ), + array( + 'name' => 'asteriskExtension_owner', + 'description' => _('Extension owners'), + 'help' => 'member', + 'example' => 'uid=user1,o=test;uid=user2,o=test', + ), + array( + 'name' => 'asteriskExtension_AstApplication', + 'description' => _('Application'), + 'help' => 'AstApplication', + 'example' => 'Playback', + 'required' => true + ), + array( + 'name' => 'asteriskExtension_AstApplicationData', + 'description' => _('Application data'), + 'help' => 'AstApplicationData', + 'example' => _('test-start'), + ), + + ); + return $return; + } + + /** + * This function fills the error message array with messages + */ + function load_Messages() { + $this->messages['cn'][0] = array('ERROR', _('Please enter a common name.')); + $this->messages['AstApplication'][0] = array('ERROR', _('Please enter the application.')); + $this->messages['AstApplicationData'][0] = array('ERROR', _('Please enter the application data.')); + $this->messages['AstContext'][0] = array('ERROR', _('Please enter the account context.')); + $this->messages['AstExtension'][0] = array('ERROR', _('Please enter the extension name.')); + $this->messages['AstExtension'][1] = array('ERROR', _('Extension with this name already exists.')); + $this->messages['AstPriority'][0] = array('ERROR', _('Please enter the priority.')); + $this->messages['AstExtensionAstPriority'][0] = array('ERROR', _('This pair of extension name and priority already exists.')); + $this->messages['member'][0] = array('ERROR', _('Please add at least one extension owner.')); + + } + + /** + * This function will create the meta HTML code to show a page with all attributes. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $return = new htmlTable(); + + $extName = ''; + if (isset($this->attributes['AstExtension'][0])) { + $extName = $this->attributes['AstExtension'][0]; + } + if (isset($this->extensionRows[0]['astextension'][0])) { + $extName = $this->extensionRows[0]['astextension'][0]; + } + //This procedure LOAD all data from LDAP and then print to a page + $this->render_extensions_by_priority($extName, $return); + + // owners + //Set default owner as logged in user if no other owner is set + if ( !$this->isExtensionOwnerSet()) { + $this->setDefaultExtensionOwner(); + } + + $this->render_exten_owners_set_controls($return); + + return $return; + } + + /** + * This function prints management elements to manipulate owners of an extension. + * + * @param htmlTable container + */ + function render_exten_owners_set_controls($renderContainer) { + $renderContainer->addElement(new htmlSpacer(null, '10px'), true); + $ownersLabel = new htmlOutputText(_("Extension owners")); + $ownersLabel->setMarkAsRequired(true); + $renderContainer->addElement($ownersLabel); + $renderContainer->addElement(new htmlAccountPageButton(get_class($this), 'user', 'open', _('Change'))); + $renderContainer->addElement(new htmlHelpLink('member')); + $renderContainer->addNewLine(); + $renderContainer->addElement(new htmlOutputText('')); + $ownerList = new htmlTable(); + if ((!isset($this->extensionOwners) || sizeof($this->extensionOwners) == 0) && isset($this->extensionRows[0]['member'])) { + $this->extensionOwners = $this->extensionRows[0]['member']; + } + if (isset($this->extensionOwners)) { + for ($i = 0; $i < sizeof($this->extensionOwners); $i++) { + $ownerList->addElement(new htmlOutputText(getAbstractDN($this->extensionOwners[$i])), true); + } + } + $renderContainer->addElement($ownerList); + } + + /** + * Loads all related extension entries. + * + * @param String $extension extension name + */ + function load_extension_parts($extension) { + if (!isset($this->extensionRows[0]['astcontext'][0])) { + $entries = searchLDAP($this->getAccountContainer()->dnSuffix, '(&(objectClass=AsteriskExtension)(AstExtension=' . $extension . '))', array('cn', 'AstContext', 'AstPriority', + 'AstApplication', 'AstApplicationData', 'AstExtension', 'member', 'ObjectClass')); + + $entries = $this->array_sort($entries, 'astpriority'); + $this->extensionRowsOrig = $entries; + $this->extensionRows = $entries; + if(isset($this->extensionRows[0]['member'])){ + $this->extensionOwners = $this->extensionRows[0]['member']; + } + } else { + $entries = $this->extensionRows; + } + return $entries; + } + + /** + * Generates the meta HTML for the rules. + * + * @param String $extension extension name + * @param htmlTable $renderContainer container + */ + function render_extensions_by_priority($extension, $renderContainer) { + if (!isset($extension) || $extension == "") { + $extension = ""; + } + + $entries = $this->load_extension_parts($extension); + + if ($this->getAccountContainer()->isNewAccount) { + $suggestedExtName = $this->generateNextExtensionName(); + $extNameInput = new htmlTableExtendedInputField(_("Extension name"), 'AstExtension', $suggestedExtName, 'AstExtension'); + $extNameInput->setRequired(true); + $renderContainer->addElement($extNameInput, true); + } else { + $extNameInput = new htmlTableExtendedInputField(_("Extension name"), 'AstExtension', $extension, 'AstExtension'); + $extNameInput->setRequired(true); + $renderContainer->addElement($extNameInput, true); + } + + $accountContext = ''; + if (isset($entries[0]['astcontext'][0])) { + //LOAD context from already entities that already exists + $accountContext = $entries[0]['astcontext'][0]; + } elseif (isset($this->attributes['AstContext'][0])) { + //LOAD context from attributes, this is treak to deal with profile + $accountContext = $this->attributes['AstContext'][0]; + } + $accountContextInput = new htmlTableExtendedInputField(_("Account context"), 'AstContext', $accountContext, 'AstContext'); + $accountContextInput->setRequired(true); + $renderContainer->addElement($accountContextInput, true); + + + $renderContainer->addElement(new htmlSubTitle(_('Rules'))); + $renderContainer->addElement(new htmlSpacer(null, '20px'), true); + + for ($i = 0; $i < sizeof($entries); $i++) { + $this->render_extension($entries[$i], $i, $renderContainer); + $renderContainer->addElement(new htmlButton("delete_rule_" . $i, _('Delete rule')), false); + + $upDownButtons = new htmlTable(); + if ($i > 0) { + $upDownButtons->addElement(new htmlButton('rule_up_button_' . $i, 'up.gif', true), false); + } + if (($i < sizeof($entries) - 1) && + ((sizeof($entries) > 1) || ($this->addRuleFlag) )) { + $upDownButtons->addElement(new htmlButton('rule_down_button_' . $i, 'down.gif', true)); + } + $renderContainer->addElement($upDownButtons, true); + + $renderContainer->addElement(new htmlSpacer(null, '30px'), true); + } + + $displayEntrNum = sizeof($entries); + + if ($this->addRuleFlag || sizeof($entries) == 0) { + + $this->render_extension(null, sizeof($entries), $renderContainer); + + if ($this->addRuleFlag) { + $upDownButtons = new htmlTable(); + $renderContainer->addElement(new htmlButton("delete_rule_" . $i, _('Delete rule')), false); + $upDownButtons->addElement(new htmlButton('rule_up_button_' . $i, 'up.gif', true), false); + $renderContainer->addElement($upDownButtons, true); + } + + $displayEntrNum++; + $this->addRuleFlag = false; + } + $hidenInput = new htmlHiddenInput("extension_rows", $displayEntrNum); //the size of found rows plus 1 for new one; + $renderContainer->addElement($hidenInput, true); + + $renderContainer->addElement(new htmlButton("add_rule", _('Add another rule')), true); + } + + /** + * Generates the meta HTML for a single rule. + * + * @param array $extensLine attributes of rule + * @param int $placeInList rule position + * @param htmlTable $renderContainer container + */ + function render_extension($extensLine, $placeInList, $renderContainer) { + // application + $application = ''; + if (isset($extensLine['astapplication'][0])) { + $application = $extensLine['astapplication'][0]; + } + $applicationInput = new htmlTableExtendedInputField(_("Application"), "AstApplication_" . $placeInList, $application, 'AstApplication'); + $applicationInput->setRequired(true); + $renderContainer->addElement($applicationInput, true); + // application data + $applicationData = ''; + if (isset($extensLine['astapplicationdata'][0])) { + $applicationData = $extensLine['astapplicationdata'][0]; + } + $renderContainer->addElement(new htmlTableExtendedInputField(_("Application data"), "AstApplicationData_" . $placeInList, $applicationData, 'AstApplicationData'), true); + //delimeter + $renderContainer->addElement(new htmlSpacer(null, '5px'), true); + } + + /** + * Sorts an array of arrays by the given key. + * + * @param array $array array + * @param String $on key + * @param String $order order (SORT_ASC or SORT_DESC) + */ + function array_sort($array, $on, $order='SORT_ASC') { + $new_array = array(); + $sortable_array = array(); + + if (count($array) > 0) { + foreach ($array as $k => $v) { + if (is_array($v)) { + foreach ($v as $k2 => $v2) { + if ($k2 == $on) { + $sortable_array[$k] = $v2; + } + } + } else { + $sortable_array[$k] = $v; + } + } + + switch ($order) { + case 'SORT_ASC': + asort($sortable_array); + break; + case 'SORT_DESC': + arsort($sortable_array); + break; + } + + foreach ($sortable_array as $k => $v) { + $new_array[] = $array[$k]; + } + } + return $new_array; + } + + /** + * Displays a list of possible owners of this extension. + * + * @return htmlElement HTML meta data + */ + function display_html_user() { + $return = new htmlTable(); + // load list with all potential owners + $searchScope = 'user'; + if ($this->searchOwnersInTreeSuffix) { + $searchScope = 'tree'; + } + $searchClass = 'inetOrgPerson'; + if ($this->filterOwnerForAsteriskAccounts) { + $searchClass = 'AsteriskSIPUser'; + } + $entries = searchLDAPByAttribute(null, null, $searchClass, array('dn'), array($searchScope)); + $users_dn = array(); + for ($i = 0; $i < sizeof($entries); $i++) { + $dn = $entries[$i]['dn']; + if (isset($dn) && (!isset($this->extensionOwners) || !in_array($dn, $this->extensionOwners))) { + $users_dn[getAbstractDN($dn)] = $dn; + } + } + if (isset($this->extensionOwners)) { + $memberList = $this->extensionOwners; + } else { + $memberList = array(); + } + $members = array(); + for ($i = 0; $i < sizeof($memberList); $i++) { + $members[getAbstractDN($memberList[$i])] = $memberList[$i]; + } + // options + $return->addElement(new htmlTableExtendedInputCheckbox('filterAsteriskUsers', $this->filterOwnerForAsteriskAccounts, _('Show only Asterisk accounts'), 'ownerOptions', false)); + $refreshButton = new htmlButton('changeFilter', _('Refresh')); + $refreshButton->rowspan = 2; + $return->addElement($refreshButton, true); + $return->addElement(new htmlTableExtendedInputCheckbox('useTreeSuffix', $this->searchOwnersInTreeSuffix, _('Search tree suffix for users'), 'ownerOptions', false), true); + $return->addElement(new htmlSpacer(null, '10px'), true); + // owners + $ownerContent = new htmlTable(); + $ownerContent->addElement(new htmlOutputText(_("Selected users"))); + $ownerContent->addElement(new htmlOutputText("")); + $ownerContent->addElement(new htmlOutputText(_("Available users"))); + $ownerContent->addNewLine(); + $selectedList = new htmlSelect('removeusers', $members, null, 15); + $selectedList->setHasDescriptiveElements(true); + $selectedList->setMultiSelect(true); + $selectedList->setRightToLeftTextDirection(true); + $ownerContent->addElement($selectedList); + $ownerButtons = new htmlTable(); + $ownerButtons->addElement(new htmlButton('addusers_button', 'back.gif', true), true); + $ownerButtons->addElement(new htmlButton('removeusers_button', 'forward.gif', true)); + $ownerContent->addElement($ownerButtons); + $availableList = new htmlSelect('addusers', $users_dn, null, 15); + $availableList->setTransformSingleSelect(false); + $availableList->setHasDescriptiveElements(true); + $availableList->setMultiSelect(true); + $availableList->setRightToLeftTextDirection(true); + $ownerContent->addElement($availableList); + $ownerContent->colspan = 4; + $return->addElement(new htmlSubTitle(_("Extension owners")), true); + $return->addElement($ownerContent, true); + // back button + $backButton = new htmlAccountPageButton(get_class($this), 'attributes', 'back', _('Ok')); + $backButton->colspan = 3; + $return->addElement($backButton); + return $return; + } + + /** + * Processes user input of the user selection page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_user() { + if (isset($_POST['changeFilter'])) { + // update filter value + if (isset($_POST['filterAsteriskUsers'])) { + $this->filterOwnerForAsteriskAccounts = ($_POST['filterAsteriskUsers'] == 'on'); + } else { + $this->filterOwnerForAsteriskAccounts = false; + } + // update search suffix + if (isset($_POST['useTreeSuffix'])) { + $this->searchOwnersInTreeSuffix = ($_POST['useTreeSuffix'] == 'on'); + } else { + $this->searchOwnersInTreeSuffix = false; + } + } + if (!isset($this->extensionOwners)) + $this->extensionOwners = array(); + if (isset($_POST['addusers']) && isset($_POST['addusers_button'])) { // Add users to list + // Add new user + $this->extensionOwners = @array_merge($this->extensionOwners, $_POST['addusers']); + } elseif (isset($_POST['removeusers']) && isset($_POST['removeusers_button'])) { // remove users from list + $this->extensionOwners = array_delete($_POST['removeusers'], $this->extensionOwners); + } + $this->attributes['member'] = $this->extensionOwners; + + return array(); + } + + /** + * Returns if the extension was moved to another OU. + * + * @return boolean true if moved + */ + function isMoveToNewSuffix(){ + $orig_suffix = extractDNSuffix($this->getAccountContainer()->dn_orig); + if (strcmp($orig_suffix, $this->getAccountContainer()->dnSuffix) != 0 && !$this->getAccountContainer()->isNewAccount){ + return true; + } + return false; + } + + + + /** + * Returns true if at least one owner is set and false otherwise + * + * @return boolean true if one or more owners + */ + function isExtensionOwnerSet(){ + if ( sizeof($this->extensionOwners) > 0 ) { + return true; + } + return false; + } + + /** + * Writes variables into object and does some regex checks. + * + * @return array error messages + */ + function process_attributes() { + $errors = array(); + $extensionName = array(); + + if (!isset($_POST['generate_extension_name'])) { + + //perform normal set of operations + if (isset($_POST['AstExtension']) && $_POST['AstExtension'] != '') { + $this->attributes['AstExtension'][0] = $_POST['AstExtension']; + $extensionName[0] = $_POST['AstExtension']; + } else { + $errors[] = $this->messages['AstExtension'][0]; + } + $extensionContext = array(); + if (isset($_POST['AstContext'])) { + $this->attributes['AstContext'][0] = $_POST['AstContext']; + $extensionContext[0] = $_POST['AstContext']; + if ($extensionContext[0] == '') { + $errors[] = $this->messages['AstContext'][0]; + } + } + + if ($this->getAccountContainer()->isNewAccount && isset($extensionName[0])) { + $isPresented = $this->isThisExtensionPresented($extensionName[0]); + if ($isPresented) { + $errors[] = $this->messages['AstExtension'][1]; + } + } + + if (isset($_POST['add_rule'])) { + $this->addRuleFlag = true; + } + //process fileds that are individual for each row + $extrow_errors = $this->processExtensionRows($extensionName, $extensionContext); + + if (isset($extrow_errors) && count($extrow_errors) > 0) { + + $errors = array_merge($errors, $extrow_errors); + } + } else { + //find new free extension name + $this->extensionRows[0]['astextension'][0] = $this->generateNextExtensionName(); + } + + return $errors; + } + + /** + * Processes the rule data. + * + * @param String $extensionName extension name + * @param String $extensionContext extension context + * @return array error messages + */ + function processExtensionRows($extensionName, $extensionContext) { + $errors = array(); + if (isset($_POST['extension_rows']) && get_preg($_POST['extension_rows'], 'digit')) { + + $extensionPriorityCntr = 1; + $this->extensionRows = array(); + for ($entryCounter = 0; $entryCounter < $_POST['extension_rows']; $entryCounter++) { + $extRow = array(); + if (!isset($_POST['delete_rule_' . $entryCounter])) { + + $singleExtAddErrors = $this->processSingleExtension($extRow,$extensionName, $extensionContext, $entryCounter,$extensionPriorityCntr); + $errors = $errors + $singleExtAddErrors; + + if ((isset($extRow['astapplication'][0]) && $extRow['astapplication'][0] != "") || + (isset($extRow['astapplicationdata'][0]) && $extRow['astapplicationdata'][0] != "") + ) { + $this->extensionRows[$extensionPriorityCntr - 1] = $extRow; + $extensionPriorityCntr++; + } + } + } + + //trow error banner if last row unporpertly filled (for now the only reason for that is unfilled AstApplication filed) + if (isset($_POST['AstApplicationData_' . ($_POST['extension_rows'] - 1)]) && $_POST['AstApplicationData_' . ($_POST['extension_rows'] - 1)] != "" && + ($_POST['AstApplication_' . ($_POST['extension_rows'] - 1)] == "" || !isset($_POST['AstApplication_' . ($_POST['extension_rows'] - 1)]))) { + $errors[] = $this->messages['AstApplication'][0]; + } + + //process priority change on rule + $this->processPriorityChange(); + + //finally sort extensions by priority + $this->extensionRows = $this->array_sort($this->extensionRows, 'astpriority'); + } + + return $errors; + } + + /** + * Set extension owner as current logged in user. + */ + function setDefaultExtensionOwner(){ + $login = $this->getDefaultExtensionOwner(); + $this->extensionOwners[0] = $login; + $this->attributes['member'] = array($login); + } + + /** + * Returns the default extension owner. + * + * @return String owner + */ + function getDefaultExtensionOwner(){ + $credentials = $_SESSION['ldap']->decrypt_login(); + $login = $credentials[0]; + return $login; + } + + /** + * Fills the fileds of a single extension row. + * In Asterisk it would only be an extension name,a priority,an application, but LDAP spicific + * add to processing context field. + * + * @param array $extRow - hash array to store single extension properties; + * @param String $extensionName extension name + * @param String $extensionContext extension context + * @param int $entryCounter - counter to distinguish single extensuion properties from $_POST + * @param int $extensionPriorityCntr - it is the variable where actual number of extension rules wuld be aggregated + */ + function processSingleExtension(&$extRow,$extensionName, $extensionContext ,$entryCounter,$extensionPriorityCntr) { + $errors = array(); + if (isset($extensionContext[0])) { + $extRow['astcontext'][0] = $extensionContext[0]; + } + if (isset($extensionName[0])) { + $extRow['astextension'][0] = $extensionName[0]; + } + + $extRow["objectclass"][0] = "top"; + $extRow["objectclass"][1] = "groupOfNames"; + $extRow["objectclass"][2] = "AsteriskExtension"; + + $extRow['astapplication'][0] = $_POST['AstApplication_' . $entryCounter]; + if (!isset($_POST['AstApplication_' . $entryCounter]) || $_POST['AstApplication_' . $entryCounter] == '') { + if ($entryCounter < ($_POST['extension_rows'] - 1)) { + $errors[] = $this->messages['AstApplication'][0]; + } + } + + $extRow['astpriority'][0] = $extensionPriorityCntr; + + $extRow['cn'][0] = $extRow['astextension'][0] . "-" . $extRow['astpriority'][0]; + + if (isset($_POST['AstApplicationData_' . $entryCounter]) && $_POST['AstApplicationData_' . $entryCounter] != "") { + $extRow['astapplicationdata'][0] = $_POST['AstApplicationData_' . $entryCounter]; + } + + //Fille the member filed + $extRow['member'] = $this->extensionOwners; + if (!isset($extRow['member']) || count($extRow['member']) == 0) { + if (!isset($_POST['form_subpage_' . get_class($this) . '_user_open'])) { + $errors[] = $this->messages['member'][0]; + } + } + return $errors; + } + + /** + * Reorders the rules if the user clicked on a move button. + */ + function processPriorityChange() { + for ($entryCounter = 0; $entryCounter < sizeof($this->extensionRows); $entryCounter++) { + if (isset($_POST["rule_up_button_" . $entryCounter])) { + + $this->extensionRows[$entryCounter]['astpriority'][0]--; + $this->extensionRows[$entryCounter - 1]['astpriority'][0]++; + } else if (isset($_POST["rule_down_button_" . $entryCounter])) { + $this->extensionRows[$entryCounter]['astpriority'][0]++; + $this->extensionRows[$entryCounter + 1]['astpriority'][0]--; + } + } + } + + /** + * Search by extension name and retun true if fields with this extension name exists + * and false otherwise. + * Equal extension names are allowed in different OUs. + * + * @param String $extension extension name + * @return boolean true if there are entries with this extension name. + */ + function isThisExtensionPresented($extension) { + $searchClass = "AsteriskExtension"; + $searchScope = 'asteriskExt'; + + $entries = searchLDAPByAttribute("AstExtension", $extension, $searchClass, array('dn'), array($searchScope)); + + $exists = false; + for ($i = 0; $i < sizeof($entries); $i++) { + $dn = extractDNSuffix($entries[$i]['dn']); + if ($dn == $this->getAccountContainer()->dnSuffix) { + $exists = true; + break; + } + } + return $exists; + } + + /** + * This function searches in the base subtree and finds all extensions names within. + * The generation algorithm is the naive one, so only work when extension is numbers. + * All extension name is sorted and new extension name will be greates on + 1. + * + * @return String suggested extension name + */ + function generateNextExtensionName() { + $searchClass = "AsteriskExtension"; + $searchScope = 'asteriskExt'; + + $suggeted_extension = ''; //default empty value + if( isset($this->extensionRows[0]['astextension'][0]) ){ + $suggeted_extension = $this->extensionRows[0]['astextension'][0]; + }else{ + $entries = searchLDAPByAttribute(null, null, $searchClass, array('astextension'), array($searchScope)); + $entries = $this->array_sort($entries, 'astextension'); + + if (isset($entries[sizeof($entries) - 1]['astextension'][0])) { + $greater_ext_name = $entries[sizeof($entries) - 1]['astextension'][0]; + } else { + $greater_ext_name = 0; + } + if(is_numeric($greater_ext_name)){ + $suggeted_extension = $greater_ext_name + 1; + }else{ + $ptn = "/(?P[A-Za-z0-9]+)_(?P\\d+)/"; + if(preg_match_all($ptn, $greater_ext_name, $matches, PREG_PATTERN_ORDER)){ + $next_digit = $matches['digit'][0] + 1; + $suggeted_extension = $matches['name'][0] . '_' . $next_digit; + }else{ + $suggeted_extension = $greater_ext_name . '_1'; + } + } + } + + return $suggeted_extension; + } + + /** + * Returns a list of PDF entries + */ + function get_pdfEntries() { + $a = $this->attributes; + $o = $this->orig; + $return = array(); + $extName = ''; + if (isset($this->attributes['AstExtension'][0])) { + $extName = $this->attributes['AstExtension'][0]; + } + if (isset($this->extensionRows[0]['astextension'][0])) { + $extName = $this->extensionRows[0]['astextension'][0]; + } + // global values + $this->addSimplePDFField($return, 'AstContext', _('Account context')); + $this->addSimplePDFField($return, 'AstExtension', _('Extension name')); + $this->addSimplePDFField($return, 'owners', _('Extension owners'), 'member', '; '); + // rules + $entries = $this->load_extension_parts($extName); + $rulePDF = array(); + $rulePDF[] = ' '; + $rulePDF[] = ' '; + $rulePDF[] = ' '; + $rulePDF[] = '' . + '' . _('Name') . '' . + '' . _('Application') . '' . + '' . _('Application data') . '' . + '' . _('Priority') . '' . + ''; + for ($i = 0; $i < sizeof($entries); $i++) { + $appdata = ' '; + if (isset($entries[$i]['astapplicationdata'][0])) { + $appdata = $entries[$i]['astapplicationdata'][0]; + } + $rulePDF[] = '' . + '' . $entries[$i]['cn'][0] . '' . + '' . $entries[$i]['astapplication'][0] . '' . + '' . $appdata . '' . + '' . $entries[$i]['astpriority'][0] . ''; + } + $return[get_class($this) . '_rules'] = $rulePDF; + return $return; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + //hash to strore extension_name => priority. For new extensoin priority will be 1 + $extensionNamePriorityMap = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array("AsteriskExtension", $partialAccounts[$i]['objectClass'])) + $partialAccounts[$i]['objectClass'][] = "AsteriskExtension"; + if (!in_array("groupOfNames", $partialAccounts[$i]['objectClass'])) + $partialAccounts[$i]['objectClass'][] = "groupOfNames"; + // attributes + $partialAccounts[$i]['AstExtension'] = $rawAccounts[$i][$ids['asteriskExtension_AstExtension']]; + + $extensionName = $partialAccounts[$i]['AstExtension']; + $astPriorityTmp = 0; + if(isset ($extensionNamePriorityMap[$extensionName])){ + $astPriorityTmp = $extensionNamePriorityMap[$extensionName] + 1; + $extensionNamePriorityMap[$extensionName] = $astPriorityTmp; + }else{ + $astPriorityTmp = 1; + $extensionNamePriorityMap[$extensionName] = $astPriorityTmp; + } + $partialAccounts[$i]['AstPriority'] = $astPriorityTmp; + + $partialAccounts[$i]['cn'] = $extensionName . '-' . $astPriorityTmp; + + if (isset($rawAccounts[$i][$ids['asteriskExtension_owner']]) && $rawAccounts[$i][$ids['asteriskExtension_owner']] != '' ) { + $partialAccounts[$i]['member'] = explode(';', $rawAccounts[$i][$ids['asteriskExtension_owner']]); + } else { + $partialAccounts[$i]['member'] = $this->getDefaultExtensionOwner(); + } + + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskExtension_AstApplication', 'AstApplication'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskExtension_AstApplicationData', 'AstApplicationData'); + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskExtension_AstContext', 'AstContext'); + } + + return $messages; + } + + /** + * Get list of all applications for given extension and move it into new suffix. + * + * @param array $rowOrig attributes of original extension + * @return array list of error messages + */ + function moveExtentionToNewSuffix($rowOrig) { + if ($this->isMoveToNewSuffix()) { + $orig_suffix = extractDNSuffix($this->getAccountContainer()->dn_orig); + $oldDN = "cn=" . $rowOrig["cn"][0] . "," . extractDNSuffix($this->getAccountContainer()->dn_orig); + $newRDN = "cn=" . $rowOrig["cn"][0]; + $is_rename_success = false; + $is_rename_success = @ldap_rename($_SESSION['ldap']->server(), $oldDN, $newRDN, $this->getAccountContainer()->dnSuffix, true); + if (!$is_rename_success) { + $errors[] = array('ERROR', sprintf(_('Was unable to rename DN: %s.'), $this->getAccountContainer()->dn_orig), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + logNewMessage(LOG_ERR, 'Unable to rename ' . $oldDN . ' to ' . $newRDN . ',' . $this->getAccountContainer()->dnSuffix); + } + } + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * Calling this method requires the existence of an enclosing {@link accountContainer}.
    + *
    + * + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It is possible to change several DNs (e.g. create a new user and add him + * to some groups via attribute memberUid)
    + *
    "add" are attributes which have to be added to the LDAP entry + *
    "remove" are attributes which have to be removed from the LDAP entry + *
    "modify" are attributes which have to be modified in the LDAP entry + *
    "notchanged" are attributes which stay unchanged + *
    "info" values with informational value (e.g. to be used later by pre/postModify actions) + *
    + *
    This builds the required comands from $this-attributes and $this->orig. + * + * @return array list of modifications + */ + function save_attributes() { + $errors = array(); + $this->extensionRows = $this->array_sort($this->extensionRows, 'astpriority'); + + //Modify existent config roes if necessary + for ($rowCounter = 0; $rowCounter < count($this->extensionRowsOrig); $rowCounter++) { + $rowOrig = $this->extensionRowsOrig[$rowCounter]; + unset($rowOrig['dn']); + if ($rowCounter < count($this->extensionRows)) { + $row = $this->extensionRows[$rowCounter]; + + if (count($diffVals = array_diff_key($rowOrig, $row)) != 0) { + ldap_mod_del($_SESSION['ldap']->server(), "cn=" . $row["cn"][0] . "," . $this->getAccountContainer()->dnSuffix, $diffVals); + } + if (count($diffVals = array_diff_key($row, $rowOrig)) != 0) { + ldap_mod_add($_SESSION['ldap']->server(), "cn=" . $row["cn"][0] . "," . $this->getAccountContainer()->dnSuffix, $diffVals); + } + $diffValsSerialysed = array_diff(array_map("serialize", array_intersect_key($row, $rowOrig)), array_map("serialize", $rowOrig)); + + //if new suffix jast move old rows to the new suffix and go on + $this->moveExtentionToNewSuffix($rowOrig); + + if (count($diffValsSerialysed) != 0) { + $diffVals = array_map("unserialize", $diffValsSerialysed); + if($row["cn"][0] == $rowOrig["cn"][0]){ + ldap_mod_replace($_SESSION['ldap']->server(), "cn=" . $row["cn"][0] . "," . $this->getAccountContainer()->dnSuffix, $diffVals); + }else{ + $origDN = "cn=" . $rowOrig["cn"][0] . "," . $this->getAccountContainer()->dnSuffix; + $newRDN = "cn=" . $row["cn"][0]; + + ldap_rename($_SESSION['ldap']->server(), $origDN, $newRDN, $this->getAccountContainer()->dnSuffix, true); + ldap_mod_replace($_SESSION['ldap']->server(), $newRDN . "," . $this->getAccountContainer()->dnSuffix, $diffVals); + } + } + } else { + ldap_delete($_SESSION['ldap']->server(), "cn=" . $rowOrig["cn"][0] . "," . extractDNSuffix($this->getAccountContainer()->dn_orig)); + } + } + //Add new config rows + for ($rowCounter = count($this->extensionRowsOrig); $rowCounter < count($this->extensionRows); $rowCounter++) { + $row = $this->extensionRows[$rowCounter]; + ldap_add($_SESSION['ldap']->server(), "cn=" . $row["cn"][0] . "," . $this->getAccountContainer()->dnSuffix, $row); + } + + //a trick for Edit again to work + $this->getAccountContainer()->dn_orig = "cn=" . $this->extensionRows[0]['cn'][0] . "," . $this->getAccountContainer()->dnSuffix; + $this->getAccountContainer()->finalDN = "cn=" . $this->extensionRows[0]['cn'][0] . "," . $this->getAccountContainer()->dnSuffix; + + $retun_obj = $this->getAccountContainer()->save_module_attributes($this->orig, $this->orig); + + return $retun_obj; + } + + /** + * Runs ufter main deltete procedure was done and do postmorten for other parts of extension + * wtith priority > 1. + * + * @return array error messages + */ + function postDeleteActions() { + + $extension = $this->attributes['AstExtension'][0]; + $searchClass = "AsteriskExtension"; + $searchScope = 'asteriskExt'; + $entries = searchLDAPByAttribute("AstExtension", $extension, $searchClass, array('cn', 'AstContext', 'AstPriority', + 'AstApplication', 'AstApplicationData', 'AstExtension', 'member', 'ObjectClass', 'dn'), array($searchScope)); + $entries = $this->array_sort($entries, 'astpriority'); + + for ($rowCounter = 0; $rowCounter < count($entries); $rowCounter++) { + $rowOrig = $entries[$rowCounter]; + if ($rowOrig["astpriority"][0] > 1) { + ldap_delete($_SESSION['ldap']->server(), $rowOrig['dn']); + } + } + return array(); + } + +} + +?> diff --git a/lam/lib/modules/asteriskVoicemail.inc b/lam/lib/modules/asteriskVoicemail.inc new file mode 100644 index 00000000..cfb51f10 --- /dev/null +++ b/lam/lib/modules/asteriskVoicemail.inc @@ -0,0 +1,544 @@ +autoAddObjectClasses = false; + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('user')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + */ + function get_metaData() { + $return = array(); + $return["is_base"] = false; + // alias name + $return["alias"] = _("Asterisk voicemail"); + // module dependencies + $return['dependencies'] = array('depends' => array('inetOrgPerson'), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('AsteriskVoiceMail'); + // managed attributes + $return['attributes'] = array('AstContext', 'AstVoicemailMailbox', + 'AstVoicemailPassword', 'AstVoicemailFullname', 'AstVoicemailEmail', + 'AstVoicemailPager', 'AstVoicemailOptions', 'AstVoicemailContext'); + // icon + $return['icon'] = 'asterisk.png'; + // self service + $return['selfServiceFieldSettings'] = array( + 'syncAsteriskVoicemailPassword' => _('Sync Asterisk password with Unix password'), + ); + // self service: fields that cannot be relabeled + $return['selfServiceNoRelabelFields'] = array('syncAsteriskVoicemailPassword'); + // help + $return['help'] = array( + 'AstContext' => array( + "Headline" => _("Account context"), 'attr' => 'AstContext', + "Text" => _("The account context stores information about the dial plan.") + ), + 'AstVoicemailMailbox' => array( + "Headline" => _("Mailbox"), 'attr' => 'AstVoicemailMailbox', + "Text" => _("Voicemail mailbox for this account.") + ), + 'AstVoicemailPassword' => array( + "Headline" => _("Password"), 'attr' => 'AstVoicemailPassword', + "Text" => _("Password for voicemail mailbox.") + ), + 'AstVoicemailFullname' => array( + "Headline" => _("Full name"), 'attr' => 'AstVoicemailFullname', + "Text" => _("Full name for Asterisk voicemail mailbox.") + ), + 'AstVoicemailEmail' => array( + "Headline" => _("Email address"), 'attr' => 'AstVoicemailEmail', + "Text" => _("Email address for this voicemail account.") + ), + 'AstVoicemailPager' => array( + "Headline" => _("Pager"), 'attr' => 'AstVoicemailPager', + "Text" => _("Pager number for Asterisk voicemail.") + ), + 'AstVoicemailOptions' => array( + "Headline" => _("Options"), 'attr' => 'AstVoicemailOptions', + "Text" => _("Options for Asterisk voicemail account (e.g. sendvoicemail=yes).") + ), + 'AstVoicemailContext' => array( + "Headline" => _("Voicemail context"), 'attr' => 'AstVoicemailContext', + "Text" => _("Asterisk voicemail context.") + ), + ); + // profile options + $profileContainer = new htmlTable(); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Options'), 'asteriskVoicemail_AstVoicemailOptions', null, 'AstVoicemailOptions'), true); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Voicemail context'), 'asteriskVoicemail_AstVoicemailContext', null, 'AstVoicemailContext'), true); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Account context'), 'asteriskVoicemail_AstContext', null, 'AstContext'), true); + $return['profile_options'] = $profileContainer; + // profile mappings + $return['profile_mappings'] = array( + 'asteriskVoicemail_AstContext' => 'AstContext', + 'asteriskVoicemail_AstVoicemailContext' => 'AstVoicemailContext', + 'asteriskVoicemail_AstVoicemailOptions' => 'AstVoicemailOptions' + ); + // available PDF fields + $return['PDF_fields'] = array( + 'AstContext' => _('Account context'), + 'AstVoicemailMailbox' => _('Mailbox'), + 'AstVoicemailFullname' => _('Full name'), + 'AstVoicemailEmail' => _('Email address'), + 'AstVoicemailPager' => _('Pager'), + 'AstVoicemailOptions' => _('Options'), + 'AstVoicemailContext' => _('Voicemail context') + ); + // upload dependencies + $return['upload_preDepends'] = array('posixAccount', 'inetOrgPerson'); + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'asteriskVoicemail_AstContext', + 'description' => _('Account context'), + 'help' => 'AstContext', + 'example' => 'default', + 'required' => true + ), + array( + 'name' => 'asteriskVoicemail_AstVoicemailMailbox', + 'description' => _('Mailbox'), + 'help' => 'AstVoicemailMailbox', + 'example' => '12345', + 'required' => true + ), + array( + 'name' => 'asteriskVoicemail_AstVoicemailPassword', + 'description' => _('Password'), + 'help' => 'AstVoicemailPassword', + 'example' => _('secret'), + 'required' => true + ), + array( + 'name' => 'asteriskVoicemail_AstVoicemailFullname', + 'description' => _('Full name'), + 'help' => 'AstVoicemailFullname', + 'example' => _('Steve Miller') + ), + array( + 'name' => 'asteriskVoicemail_AstVoicemailEmail', + 'description' => _('Email address'), + 'help' => 'AstVoicemailEmail', + 'example' => _('user@company.com') + ), + array( + 'name' => 'asteriskVoicemail_AstVoicemailPager', + 'description' => _('Pager'), + 'help' => 'AstVoicemailPager', + 'example' => _('123-123-1234') + ), + array( + 'name' => 'asteriskVoicemail_AstVoicemailOptions', + 'description' => _('Options'), + 'help' => 'AstVoicemailOptions', + 'example' => 'sendvoicemail=yes' + ), + array( + 'name' => 'asteriskVoicemail_AstVoicemailContext', + 'description' => _('Voicemail context'), + 'help' => 'AstVoicemailContext', + 'example' => 'default' + ) + ); + return $return; + } + + /** + * This function fills the error message array with messages + */ + function load_Messages() { + //messages for voicemail + $this->messages['AstVoicemailMailbox'][0] = array('ERROR', _('Please enter a mailbox.')); + $this->messages['AstVoicemailMailbox'][1] = array('ERROR', _('The mailbox format is invalid.')); + $this->messages['AstVoicemailMailbox'][2] = array('ERROR', _('There is already another user with this mailbox name.')); + $this->messages['AstVoicemailMailbox'][3] = array('ERROR', _('Account %s:') . ' asteriskVoicemail_AstVoicemailMailbox', _('The mailbox format is invalid.')); + + $this->messages['AstContext'][0] = array('ERROR', _('Please enter the account context.')); + $this->messages['AstContext'][1] = array('ERROR', _('The account context is invalid.')); + $this->messages['AstContext'][2] = array('ERROR', _('Account %s:') . ' asteriskVoicemail_AstContext', _('The account context is invalid.')); + + $this->messages['AstVoicemailFullname'][0] = array('ERROR', _('The full name is invalid.')); + $this->messages['AstVoicemailFullname'][1] = array('ERROR', _('Account %s:') . ' asteriskVoicemail_AstVoicemailFullname', _('The full name is invalid.')); + $this->messages['AstVoicemailEmail'][0] = array('ERROR', _('The email address is invalid.')); + $this->messages['AstVoicemailEmail'][1] = array('ERROR', _('Account %s:') . ' asteriskVoicemail_AstVoicemailEmail', _('The email address is invalid.')); + $this->messages['AstVoicemailPager'][0] = array('ERROR', _('The pager number has bad format.')); + $this->messages['AstVoicemailPager'][1] = array('ERROR', _('Account %s:') . ' asteriskVoicemail_AstVoicemailPager', _('The pager number has bad format.')); + $this->messages['AstVoicemailOptions'][0] = array('ERROR', _('The options have bad format.')); + $this->messages['AstVoicemailOptions'][1] = array('ERROR', _('Account %s:') . ' asteriskVoicemail_AstVoicemailOptions', _('The options have bad format.')); + $this->messages['AstVoicemailContext'][0] = array('ERROR', _('The voicemail context name is invalid.')); + $this->messages['AstVoicemailContext'][1] = array('ERROR', _('Account %s:') . ' asteriskVoicemail_AstVoicemailContext', _('The voicemail context name is invalid.')); + $this->messages['AstVoicemailPassword'][0] = array('INFO', _('Please set the voicemail password with "Set password" before saving.')); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $return = new htmlTable(); + if (in_array('AsteriskVoiceMail', $this->attributes['objectClass'])) { + if (!isset($this->attributes['AstVoicemailPassword'])) { + $message = new htmlStatusMessage($this->messages['AstVoicemailPassword'][0][0], $this->messages['AstVoicemailPassword'][0][1]); + $message->colspan = 3; + $return->addElement($message, true); + } + // mailbox + $this->addSimpleInputTextField($return, 'AstVoicemailMailbox', _("Mailbox"), true); + // account context + $this->addSimpleInputTextField($return, 'AstContext', _("Account context"), true); + + $return->addElement(new htmlSpacer(null, '10px'), true); + + // full name + $this->addSimpleInputTextField($return, 'AstVoicemailFullname', _("Full name")); + // email + $this->addSimpleInputTextField($return, 'AstVoicemailEmail', _("Email address")); + // pager + $this->addSimpleInputTextField($return, 'AstVoicemailPager', _("Pager")); + // options + $this->addSimpleInputTextField($return, 'AstVoicemailOptions', _("Options")); + // voicemail context + $this->addSimpleInputTextField($return, 'AstVoicemailContext', _("Voicemail context")); + // remove button + $return->addElement(new htmlSpacer(null, '10px'), true); + $remButton = new htmlButton('remVoicemailObjectClass', _('Remove Asterisk voicemail extension')); + $remButton->colspan = 2; + $return->addElement($remButton); + } + else { + // add button + $return->addElement(new htmlButton('addVoicemailObjectClass', _('Add Asterisk voicemail extension'))); + } + return $return; + } + + /** + * Write variables into object and do some regex checks + */ + function process_attributes() { + if (isset($_POST['addVoicemailObjectClass'])) { + $this->attributes['objectClass'][] = 'AsteriskVoiceMail'; + return array(); + } + // remove extension + elseif (isset($_POST['remVoicemailObjectClass'])) { + $this->attributes['objectClass'] = array_delete(array('AsteriskVoiceMail'), $this->attributes['objectClass']); + $attrKeys = array_keys($this->attributes); + for ($k = 0; $k < sizeof($attrKeys); $k++) { + if (strpos($attrKeys[$k], 'AstVoicemail') > -1) { + unset($this->attributes[$attrKeys[$k]]); + } + } + if (isset($this->attributes['AstContext'])) { + unset($this->attributes['AstContext']); + } + return array(); + } + $errors = array(); + if (!in_array('AsteriskVoiceMail', $this->attributes['objectClass'])) { + return array(); + } + $this->attributes['AstVoicemailMailbox'] = array(); + $this->attributes['AstVoicemailFullname'] = array(); + $this->attributes['AstVoicemailEmail'] = array(); + $this->attributes['AstVoicemailPager'] = array(); + $this->attributes['AstVoicemailOptions'] = array(); + $this->attributes['AstVoicemailContext'] = array(); + + if (isset($_POST['AstContext'])) { + $this->attributes['AstContext'][0] = $_POST['AstContext']; + if($this->attributes['AstContext'][0] == '') { + $errors[] = $this->messages['AstContext'][0]; + } + elseif (!get_preg($this->attributes['AstContext'][0], 'realname')) { + $errors[] = $this->messages['AstContext'][1]; + } + } + if (isset($_POST['AstVoicemailMailbox'])) { + $this->attributes['AstVoicemailMailbox'][0] = $_POST['AstVoicemailMailbox']; + // check if caller ID is empty + if($this->attributes['AstVoicemailMailbox'][0] == '') { + $errors[] = $this->messages['AstVoicemailMailbox'][0]; + } + // check format + else if (!get_preg($this->attributes['AstVoicemailMailbox'][0], 'username')) { + $errors[] = $this->messages['AstVoicemailMailbox'][1]; + } + // check for duplicate Voicemail ID + else if (!isset($this->orig['AstVoicemailMailbox'][0]) || (($this->orig['AstVoicemailMailbox'][0] != $this->attributes['AstVoicemailMailbox'][0]))) { + $entries = searchLDAPByAttribute('AstVoicemailMailbox', $this->attributes['AstVoicemailMailbox'][0], 'AstVoicemailMailbox', array('dn'), array('user')); + if (sizeof($entries) > 0) { + $errors[] = $this->messages['AstVoicemailMailbox'][2]; + } + } + } + if (isset($_POST['AstVoicemailFullname'])) { + $this->attributes['AstVoicemailFullname'][0] = $_POST['AstVoicemailFullname']; + if($this->attributes['AstVoicemailFullname'][0] != '' && !get_preg($this->attributes['AstVoicemailFullname'][0], 'realname')) { + $errors[] = $this->messages['AstVoicemailFullname'][0]; + } + } + if (isset($_POST['AstVoicemailEmail'])) { + $this->attributes['AstVoicemailEmail'][0] = $_POST['AstVoicemailEmail']; + if($this->attributes['AstVoicemailEmail'][0] != '' && !get_preg($this->attributes['AstVoicemailEmail'][0], 'email')) { + $errors[] = $this->messages['AstVoicemailEmail'][0]; + } + } + if (isset($_POST['AstVoicemailPager'])) { + $this->attributes['AstVoicemailPager'][0] = $_POST['AstVoicemailPager']; + if($this->attributes['AstVoicemailPager'][0] != '' && !get_preg($this->attributes['AstVoicemailPager'][0], 'telephone')) { + $errors[] = $this->messages['AstVoicemailPager'][0]; + } + } + if (isset($_POST['AstVoicemailOptions'])) { + $this->attributes['AstVoicemailOptions'][0] = $_POST['AstVoicemailOptions']; + } + if (isset($_POST['AstVoicemailContext'])) { + $this->attributes['AstVoicemailContext'][0] = $_POST['AstVoicemailContext']; + if($this->attributes['AstVoicemailContext'][0] != '' && !get_preg($this->attributes['AstVoicemailContext'][0], 'realname')) { + $errors[] = $this->messages['AstVoicemailContext'][0]; + } + } + return $errors; + } + + /** + * Returns a list of PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'AstVoicemailMailbox', _('Mailbox')); + $this->addSimplePDFField($return, 'AstContext', _('Account context')); + $this->addSimplePDFField($return, 'AstVoicemailFullname', _('Full name')); + $this->addSimplePDFField($return, 'AstVoicemailContext', _('Voicemail context')); + $this->addSimplePDFField($return, 'AstVoicemailPager', _('Pager')); + $this->addSimplePDFField($return, 'AstVoicemailEmail', _('Email address')); + $this->addSimplePDFField($return, 'AstVoicemailOptions', _('Options')); + return $return; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array("AsteriskVoiceMail", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "AsteriskVoiceMail"; + + //add context + if (empty($rawAccounts[$i][$ids['asteriskVoicemail_AstContext']])) { + // default value + $partialAccounts[$i]['AstContext'] = 'default'; + } + else { + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskVoicemail_AstContext', 'AstContext', + 'realname', $this->messages['AstContext'][2], $messages); + } + + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskVoicemail_AstVoicemailMailbox', 'AstVoicemailMailbox', + 'realname', $this->messages['AstVoicemailMailbox'][3], $messages); + + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskVoicemail_AstVoicemailEmail', 'AstVoicemailEmail', + 'email', $this->messages['AstVoicemailEmail'][1], $messages); + + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskVoicemail_AstVoicemailPager', 'AstVoicemailPager', + 'telephone', $this->messages['AstVoicemailPager'][1], $messages); + + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskVoicemail_AstVoicemailOptions', 'AstVoicemailOptions'); + + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskVoicemail_AstVoicemailFullname', 'AstVoicemailFullname', + 'realname', $this->messages['AstVoicemailFullname'][1], $messages); + + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskVoicemail_AstVoicemailContext', 'AstVoicemailContext', + 'realname', $this->messages['AstVoicemailContext'][1], $messages); + + $partialAccounts[$i]['AstVoicemailPassword'] = $rawAccounts[$i][$ids['asteriskVoicemail_AstVoicemailPassword']]; + } + return $messages; + } + + /** + * This functions returns true if all needed settings are done. + * + * @return boolean true if LDAP operation can be done + */ + function module_complete() { + if (in_array('AsteriskVoiceMail', $this->attributes['objectClass'])) { + if(!isset($this->attributes['AstVoicemailPassword'][0]) || $this->attributes['AstVoicemailPassword'][0] == "" ) { + return false; + } + } + return true; + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + function save_attributes() { + if (!in_array('AsteriskVoiceMail', $this->attributes['objectClass']) && !in_array('AsteriskVoiceMail', $this->orig['objectClass'])) { + // skip saving if the extension was not added/modified + return array(); + } + return $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig); + } + + /** + * This method specifies if a module manages password attributes. + * @see passwordService::managesPasswordAttributes + * + * @return boolean true if this module manages password attributes + */ + public function managesPasswordAttributes() { + if (!in_array('AsteriskVoiceMail', $this->attributes['objectClass'])) { + return false; + } + return true; + } + + /** + * Specifies if this module supports to force that a user must change his password on next login. + * + * @return boolean force password change supported + */ + public function supportsForcePasswordChange() { + return false; + } + + /** + * This function is called whenever the password should be changed. Account modules + * must change their password attributes only if the modules list contains their module name. + * + * @param String $password new password + * @param $modules list of modules for which the password should be changed + * @param boolean $forcePasswordChange force the user to change his password at next login + * @return array list of error messages if any as parameter array for StatusMessage + * e.g. return arrray(array('ERROR', 'Password change failed.')) + * @see passwordService::passwordChangeRequested + */ + public function passwordChangeRequested($password, $modules, $forcePasswordChange) { + if (!in_array(get_class($this), $modules)) { + return array(); + } + $this->attributes['AstVoicemailPassword'][0] = $password; + return array(); + } + + /** + * Checks if all input values are correct and returns the LDAP attributes which should be changed. + *
    Return values: + *
    messages: array of parameters to create status messages + *
    add: array of attributes to add + *
    del: array of attributes to remove + *
    mod: array of attributes to modify + *
    info: array of values with informational value (e.g. to be used later by pre/postModify actions) + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}. + * + * @param string $fields input fields + * @param array $attributes LDAP attributes + * @param boolean $passwordChangeOnly indicates that the user is only allowed to change his password and no LDAP content is readable + * @param array $readOnlyFields list of read-only fields + * @return array messages and attributes (array('messages' => array(), 'add' => array('mail' => array('test@test.com')), 'del' => array(), 'mod' => array(), 'info' => array())) + */ + function checkSelfServiceOptions($fields, $attributes, $passwordChangeOnly, $readOnlyFields) { + $return = array('messages' => array(), 'add' => array(), 'del' => array(), 'mod' => array(), 'info' => array()); + if (!isset($attributes['objectClass']) || !in_array_ignore_case('AsteriskVoiceMail', $attributes['objectClass'])) { + return $return; + } + if (isset($_POST['posixAccount_password']) && ($_POST['posixAccount_password'] != '')) { + if ($_POST['posixAccount_password'] != $_POST['posixAccount_password2']) { + return $return; + } + else { + if (!get_preg($_POST['posixAccount_password'], 'password')) { + return $return; + } + else { + // sync password + if (in_array('syncAsteriskVoicemailPassword', $fields)) { + $return['mod']['AstVoicemailPassword'][0] = $_POST['posixAccount_password']; + } + } + } + } + return $return; + } + +} + +?> diff --git a/lam/lib/modules/authorizedServiceObject.inc b/lam/lib/modules/authorizedServiceObject.inc new file mode 100644 index 00000000..10b2a251 --- /dev/null +++ b/lam/lib/modules/authorizedServiceObject.inc @@ -0,0 +1,275 @@ +autoAddObjectClasses = false; + } + + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('user')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'services.png'; + // alias name + $return["alias"] = _("Authorized Services"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('authorizedServiceObject'); + // managed attributes + $return['attributes'] = array('authorizedService'); + // help Entries + $return['help'] = array ( + 'authorizedService' => array ( + "Headline" => _("Authorized Services"), 'attr' => 'authorizedService', + "Text" => _("Service name (e.g. sshd, imap, ftp). Enter one service per entry."). ' '. _("Use * for all services.") + ), + 'authorizedServices' => array ( + "Headline" => _("Authorized Services"), 'attr' => 'authorizedService', + "Text" => _("Comma separated list of services (e.g. sshd, imap, ftp)."). ' '. _("Use * for all services.") + ), + 'autoAdd' => array( + "Headline" => _("Automatically add this extension"), + "Text" => _("This will enable the extension automatically if this profile is loaded.") + ), + 'predefinedServices' => array( + "Headline" => _("Predefined services"), + "Text" => _("These services will show up as hint if you enter a new service.") + ) + ); + // config options + $configContainer = new htmlTable(); + $configContainer->addElement(new htmlTableExtendedInputTextarea('authorizedServiceObject_services', "sshd\r\nimap", 30, 5, _('Predefined services'), 'predefinedServices')); + $return['config_options']['all'] = $configContainer; + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'authorizedService', + 'description' => _('Authorized Services'), + 'help' => 'authorizedServices', + 'example' => 'sshd, imap' + ) + ); + // available PDF fields + $return['PDF_fields'] = array( + 'authorizedService' => _('Authorized Services') + ); + // profile options + $profileContainer = new htmlTable(); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Authorized Services'), 'authorizedServiceObject_services', null, 'authorizedServices'), true); + $profileContainer->addElement(new htmlTableExtendedInputCheckbox('authorizedServiceObject_addExt', false, _('Automatically add this extension'), 'autoAdd')); + $return['profile_options'] = $profileContainer; + // profile checks + $return['profile_checks']['authorizedServiceObject_services'] = array('type' => 'ext_preg', 'regex' => 'ascii', + 'error_message' => $this->messages['authorizedService'][0]); + return $return; + } + + /** + * This function fills the error message array with messages + */ + function load_Messages() { + $this->messages['authorizedService'][0] = array('ERROR', _('Authorized services are invalid.')); // third array value is set dynamically + $this->messages['authorizedService'][1] = array('ERROR', _('Account %s:') . ' authorizedService', _('Please enter a valid list of service names.')); + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + function save_attributes() { + if (!in_array('authorizedServiceObject', $this->attributes['objectClass']) && !in_array('authorizedServiceObject', $this->orig['objectClass'])) { + // skip saving if the extension was not added/modified + return array(); + } + return parent::save_attributes(); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + if (isset($_POST['form_subpage_authorizedServiceObject_attributes_addObjectClass'])) { + $this->attributes['objectClass'][] = 'authorizedServiceObject'; + } + $return = new htmlTable(); + if (in_array('authorizedServiceObject', $this->attributes['objectClass'])) { + $autocompleteValues = array(); + if (isset($this->moduleSettings['authorizedServiceObject_services'])) { + $autocompleteValues = $this->moduleSettings['authorizedServiceObject_services']; + } + $this->addMultiValueInputTextField($return, 'authorizedService', _('Authorized Services'), false, null, false, $autocompleteValues); + $return->addElement(new htmlSpacer(null, '10px'),true); + $remButton = new htmlAccountPageButton('authorizedServiceObject', 'attributes', 'remObjectClass', _('Remove Authorized Service extension')); + $remButton->colspan = 4; + $return->addElement($remButton); + } + else { + $return->addElement(new htmlAccountPageButton('authorizedServiceObject', 'attributes', 'addObjectClass', _('Add Authorized Service extension'))); + } + + + return $return; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + if (isset($_POST['form_subpage_authorizedServiceObject_attributes_remObjectClass'])) { + $this->attributes['objectClass'] = array_delete(array('authorizedServiceObject'), $this->attributes['objectClass']); + if (isset($this->attributes['authorizedService'])) unset($this->attributes['authorizedService']); + return array(); + } + if (!in_array('authorizedServiceObject', $this->attributes['objectClass'])) { + return array(); + } + + $errors = array(); + $this->processMultiValueInputTextField('authorizedService', $errors, 'ascii'); + return $errors; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array("authorizedServiceObject", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "authorizedServiceObject"; + // add ASs + if ($rawAccounts[$i][$ids['authorizedService']] != "") { + $services = explode(', ', $rawAccounts[$i][$ids['authorizedService']]); + for ($m = 0; $m < sizeof($services); $m++) { + if (get_preg($services[$m], 'ascii')) { + $partialAccounts[$i]['authorizedService'][] = $services[$m]; + } + else { + $errMsg = $this->messages['authorizedService'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + } + } + } + return $messages; + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $return = array(); + if (in_array('authorizedServiceObject', $this->attributes['objectClass'])) { + $this->addSimplePDFField($return, 'authorizedService', _('Authorized Services')); + } + return $return; + } + + /** + * Loads the values of an account profile into internal variables. + * + * @param array $profile hash array with profile values (identifier => value) + */ + function load_profile($profile) { + // profile mappings in meta data + parent::load_profile($profile); + // add extension + if (isset($profile['authorizedServiceObject_addExt'][0]) && ($profile['authorizedServiceObject_addExt'][0] == "true")) { + if (!in_array('authorizedServiceObject', $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = 'authorizedServiceObject'; + } + } + // add ASs + if (isset ($profile['authorizedServiceObject_services'][0]) && ($profile['authorizedServiceObject_services'][0] != "")) { + $services = explode(',', $profile['authorizedServiceObject_services'][0]); + for ($m = 0; $m < sizeof($services); $m++) { + if (get_preg($services[$m], 'ascii')) { + $this->attributes['authorizedService'][] = trim($services[$m]); + } + } + } + } + +} + +?> diff --git a/lam/lib/modules/ddns.inc b/lam/lib/modules/ddns.inc new file mode 100644 index 00000000..1b79a0a2 --- /dev/null +++ b/lam/lib/modules/ddns.inc @@ -0,0 +1,681 @@ +get_scope(), array('dhcp')); + } + + /** + * Returns meta data that is interpreted by parent class. + * + * @return array array with meta data + */ + public function get_metaData() { + $return = array(); + // alias name + $return["alias"] = _("DDNS"); + // this is a base module + $return["is_base"] = false; + // icon + $return['icon'] = 'dhcpBig.png'; + // RDN attribute + $return["RDN"] = array("cn" => "high"); + // LDAP filter + $return["ldap_filter"] = array(); + // module dependencies + $return['dependencies'] = array('depends' => array('dhcp_settings'), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array(); + // managed attributes + $return['attributes'] = array('dhcpOption', 'dhcpStatements'); + // help Entries + $return['help'] = array( + 'active' => array( + "Headline" => _("Activate DynDNS"), + "Text" => _("Should DDNS (Dynamic DNS) be activated?") + ), + 'fixed_ips' => array( + "Headline" => _("Fix IP addresses"), + "Text" => _("Should fix IP addresses be added to the DNS server?") + ), + 'client_insert' => array( + "Headline" => _("Disable client updates"), + "Text" => _("Disables the client to update DNS entries.") + ), + 'keypath' => array( + "Headline" => _("Path to key for DNS updates"), + "Text" => _("The key enables the DHCP server to perform DNS updates." . + " " . "The key is generated with \"genDDNSkey\".") + ), + 'dns' => array( + "Headline" => _("IP address of the DNS server"), + "Text" => _("Please enter the IP address of your DNS server.") + ), + 'zone' => array( + "Headline" => _("Zone name"), + "Text" => _("Zone name for the DNS server (e.g. company.local).") + ), + 'zone_reverse' => array( + "Headline" => _("Reverse zone name"), + "Text" => ("Name of the reverse zone of the DNS server (e.g. 0.168.192.in-addr.arpa).") + ), + ); + // available PDF fields + $return['PDF_fields'] = array( + 'DNSserver' => _('IP address of the DNS server'), + 'zone' => _('Zone name'), + 'reverseZone' => _('Reverse zone name'), + ); + // upload fields + if (isset($_SESSION['loggedIn']) && $this->check_if_ddns_is_enable()) { + $return['upload_columns'] = array( + array( + 'name' => 'ddns_DNSserver', + 'description' => _('IP address of the DNS server'), + 'help' => 'dns', + 'example' => '123.123.123.123', + 'required' => true + ), + array( + 'name' => 'ddns_zone', + 'description' => _('Zone name'), + 'help' => 'zone', + 'example' => 'company.local', + 'required' => true + ), + array( + 'name' => 'ddns_reverseZone', + 'description' => _('Reverse zone name'), + 'help' => 'zone_reverse', + 'example' => '0.168.192.in-addr.arpa', + 'required' => true + ), + ); + } + return $return; + } + + /** + * This function fills the message array. + */ + public function load_Messages() { + $this->messages['key_path'][0] = array('ERROR', 'Please enter the path to the key.', ''); + $this->messages['key_path'][1] = array('ERROR', 'The key path contains invalid characters.', ''); + $this->messages['ip'][0] = array('ERROR', 'The IP address of the DNS server is invalid.'); + $this->messages['ip'][1] = array('ERROR', _('Account %s:') . ' ddns_DNSserver', 'The IP address of the DNS server is invalid.'); + $this->messages['zone'][0] = array('ERROR', 'Please enter a zone name.'); + $this->messages['zone_reverse'][0] = array('ERROR', 'Please enter the reverse zone.'); + } + + /** + * This functions returns true if all needed settings are done. + * + * @return boolean true if LDAP operation can be done + */ + public function module_complete() { + $this->attributes = &$this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes; + $this->orig = &$this->getAccountContainer()->getAccountModule('dhcp_settings')->orig; + if ($this->getAccountContainer()->dn_orig==$_SESSION['config']->get_suffix('dhcp')) { + // check if DHCP main settings and valid DHCP entry + if (!in_array_ignore_case('dhcpService', $this->attributes['objectClass']) && !in_array_ignore_case('dhcpServer', $this->attributes['objectClass'])) { + return false; + } + } + else { + if (!$this->check_if_ddns_is_enable()) { + return true; + } + // Account settings + $ip = $this->getDNSServer(); + if (!empty($ip) && !check_ip($ip)) return false; + + $zones = $this->getZoneNames(); + if (sizeof($zones) < 2) { + return false; + } + } + + return true; + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + public function save_attributes() { + // done by dhcp_server object + } + + /** + * This function check if ddns is enable. + */ + private function check_if_ddns_is_enable() { + if (!in_array('dhcp', $_SESSION['config']->get_ActiveTypes())) { + return false; + } + $ldap = $_SESSION['ldap']->server(); + $dn = $_SESSION['config']->get_suffix('dhcp'); + + $search = @ldap_read($ldap,$dn,"dhcpStatements=ddns-update-style interim", array('dn'), 0, 0, 0, LDAP_DEREF_NEVER); + if ($search) { + $info = @ldap_get_entries($ldap,$search); + if ($info) { + cleanLDAPResult($info); + if (sizeof($info) > 0) { + return true; + } + } + else { + return false; + } + } + return false; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + public function process_attributes() { + $errors = array(); + + // Main Settings and Account have to different processes. + if ($this->getAccountContainer()->dn_orig==$_SESSION['config']->get_suffix('dhcp')) { + // main settings: + $errors = $this->process_attributes_mainSettings(); + } + else { + // account + if (!$this->check_if_ddns_is_enable()) { + return array(); + } + + $errors = $this->process_attributes_account(); + } + + return $errors; + } + + /** + * Process for mainsettings + */ + public function process_attributes_mainSettings() { + if (!in_array_ignore_case('dhcpService', $this->attributes['objectClass']) && !in_array_ignore_case('dhcpServer', $this->attributes['objectClass'])) { + return array(); + } + $errors = array(); + + // Is DDNS active? + $active = $_POST['active']; + + // Insert fixed IPs into DNS? + $insert_fixed = $_POST['insert_fixed']; + + // Client can contribute which is registered into DNS + $client_insert = $_POST['client_insert']; + + // The path to the key: + $key_path = trim($_POST['key_path']); + + $this->setDynDNSActivated(($active == 'on')); + + $this->setFixIPs(($insert_fixed == 'on')); + + $this->setIgnoreClientUpdates(($client_insert == 'on')); + + $this->setUpdateKey($key_path); + if (!empty($key_path)) { + if (str_replace("\"","",$_POST['key_path']) != $key_path) { + $errors[] = $this->messages['key_path'][1]; + } + } + + return $errors; + } + + /** + * Process for account + */ + public function process_attributes_account() { + $errors = array(); + + $ip = trim($_POST['ip']); + $zone = trim($_POST['zone']); + $zone_reverse = trim($_POST['zone_reverse']); + + // ip correct??? + if (!empty($ip)) { + if (!check_ip($ip)) { + $errors[] = $this->messages['ip'][0]; + } + } + + for ($i = 0; $i < sizeof($this->attributes['dhcpStatements']); $i++) { + if (substr($this->attributes['dhcpStatements'][$i], 0, 5) == 'zone ') { + unset($this->attributes['dhcpStatements'][$i]); + $this->attributes['dhcpStatements'] = array_values($this->attributes['dhcpStatements']); + $i--; + } + } + + // Zone inserted? + if (!empty($zone)) { + if (!empty($ip)) { + $this->attributes['dhcpStatements'][] = "zone {$zone}. { primary {$ip}; key DHCP_UPDATER; }"; + } + else { + $this->attributes['dhcpStatements'][] = "zone {$zone}. { key DHCP_UPDATER; }"; + } + } + else { + if (!empty($ip)) { + $errors[] = $this->messages['zone'][0]; + } + } + + // Zone reverse inserted? + if (!empty($zone_reverse)) { + if (!empty($ip)) { + $this->attributes['dhcpStatements'][] = "zone {$zone_reverse}. { primary {$ip}; key DHCP_UPDATER; }"; + } + else { + $this->attributes['dhcpStatements'][] = "zone {$zone_reverse}. { key DHCP_UPDATER; }"; + } + } + else { + if (!empty($ip)) { + $errors[] = $this->messages['zone_reverse'][0]; + } + } + return $errors; + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + public function display_html_attributes() { + $this->attributes = &$this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes; + $this->orig = &$this->getAccountContainer()->getAccountModule('dhcp_settings')->orig; + $return = new htmlTable(); + // check if DHCP main settings and valid DHCP entry + if ($_SESSION['config']->get_suffix('dhcp') == $this->getAccountContainer()->dn_orig) { + if (!in_array_ignore_case('dhcpService', $this->attributes['objectClass']) && !in_array_ignore_case('dhcpServer', $this->attributes['objectClass'])) { + $return->addElement(new htmlStatusMessage('ERROR', _('Please set your LDAP suffix to an LDAP entry with object class "dhcpService" or "dhcpServer".'))); + return $return; + } + } + if ($this->getAccountContainer()->dn_orig == $_SESSION['config']->get_suffix('dhcp')) { + // DHCP main settings + $return->addElement(new htmlTableExtendedInputCheckbox('active', $this->isDynDNSActivated(), _('Activate DynDNS'), 'active'), true); + $return->addElement(new htmlTableExtendedInputCheckbox('insert_fixed', $this->addFixIPs(), _('Add fix IP addresses to DNS'), 'fixed_ips'), true); + $return->addElement(new htmlTableExtendedInputCheckbox('client_insert', $this->isIgnoreClientUpdates(), _('Disable client updates'), 'client_insert'), true); + $keyInput = new htmlTableExtendedInputField(_('Path to key for DNS updates'), 'key_path', $this->getUpdateKey(), 'keypath'); + $return->addElement($keyInput); + } + else { + // Account edit + if (!$this->check_if_ddns_is_enable()) { + $return->addElement(new htmlOutputText(_("DDNS ist not activated. You can activate it in the DHCP settings (DDNS)."))); + } + else { + // DNS server + $serverInput = new htmlTableExtendedInputField(_('IP address of the DNS server'), 'ip', $this->getDNSServer(), 'dns'); + $return->addElement($serverInput, true); + + $zones = $this->getZoneNames(); + $zone = ''; + $revzone = ''; + if (isset($zones[0])) { + $zone = $zones[0]; + } + if (isset($zones[1])) { + $revzone = $zones[1]; + } + // zone name + $zoneInput = new htmlTableExtendedInputField(_('Zone name'), 'zone', $zone, 'zone'); + $return->addElement($zoneInput, true); + // reverse zone name + $revZoneInput = new htmlTableExtendedInputField(_('Reverse zone name'), 'zone_reverse', $revzone, 'zone_reverse'); + $return->addElement($revZoneInput); + } + } + + return $return; + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + public function get_pdfEntries() { + // attributes are taken from DHCP server object + $this->attributes = &$this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes; + $this->orig = &$this->getAccountContainer()->getAccountModule('dhcp_settings')->orig; + $zones = $this->getZoneNames(); + $zone = ''; + $revzone = ''; + if (isset($zones[0])) { + $zone = $zones[0]; + } + if (isset($zones[1])) { + $revzone = $zones[1]; + } + return array( + get_class($this) . '_DNSserver' => array('' . _('IP address of the DNS server') . '' . $this->getDNSServer() . ''), + get_class($this) . '_zone' => array('' . _('Zone name') . '' . $zone . ''), + get_class($this) . '_reverseZone' => array('' . _('Reverse zone name') . '' . $revzone . ''), + ); + } + + /** + * Returns the IP of the DNS server. + * + * @return String IP address + */ + private function getDNSServer() { + $return = null; + if (isset($this->attributes['dhcpStatements'][0])) { + for ($i = 0; $i < sizeof($this->attributes['dhcpStatements']); $i++) { + if (substr($this->attributes['dhcpStatements'][$i], 0, 5) == 'zone ') { + if (strpos($this->attributes['dhcpStatements'][$i], ' primary ') === false) { + continue; + } + $parts = explode(". { primary ", $this->attributes['dhcpStatements'][$i]); + $temp = array_pop($parts); + $temp = explode(";", $temp); + return array_shift($temp); + } + } + } + return $return; + } + + /** + * Returns the zone names. + * + * @return array zone names array(zone, reverse zone) + */ + private function getZoneNames() { + $return = array(); + $zone = ''; + $revZone = ''; + if (is_array($this->attributes['dhcpStatements'])) { + for ($i = 0; $i < sizeof($this->attributes['dhcpStatements']); $i++) { + if (substr($this->attributes['dhcpStatements'][$i], 0, 5) == 'zone ') { + $parts = explode(" ",substr($this->attributes['dhcpStatements'][$i],5)); + $value = substr(array_shift($parts),0,-1); + if (strpos($value, 'in-addr.arpa') === false) { + $zone = $value; + } + else { + $revZone = $value; + } + } + } + } + $return[0] = $zone; + $return[1] = $revZone; + return $return; + } + + /** + * Returns if DDNS is activated. + * + * @return boolean activated + */ + private function isDynDNSActivated() { + $return = false; + if (is_array($this->attributes['dhcpStatements'])) { + for ($i = 0; $i < sizeof($this->attributes['dhcpStatements']); $i++) { + if ($this->attributes['dhcpStatements'][$i] == 'ddns-update-style interim') { + $return = true; + break; + } + } + } + return $return; + } + + /** + * Sets if DDNS is activated. + * + * @param boolean $activated activated + */ + private function setDynDNSActivated($activated) { + if (is_array($this->attributes['dhcpStatements'])) { + for ($i = 0; $i < sizeof($this->attributes['dhcpStatements']); $i++) { + if (substr($this->attributes['dhcpStatements'][$i], 0, 18) == 'ddns-update-style ') { + unset($this->attributes['dhcpStatements'][$i]); + $this->attributes['dhcpStatements'] = array_values($this->attributes['dhcpStatements']); + } + } + } + if ($activated) { + $this->attributes['dhcpStatements'][] = 'ddns-update-style interim'; + } + else { + $this->attributes['dhcpStatements'][] = 'ddns-update-style none'; + } + } + + /** + * Returns if fixed IPs are added to DDNS. + * + * @return boolean add fixed IPs + */ + private function addFixIPs() { + $return = false; + if (is_array($this->attributes['dhcpStatements'])) { + for ($i = 0; $i < sizeof($this->attributes['dhcpStatements']); $i++) { + if ($this->attributes['dhcpStatements'][$i] == 'update-static-leases true') { + $return = true; + break; + } + } + } + return $return; + } + + /** + * Sets if client updates are ignored. + * + * @param boolean $add add fixed IPs + */ + private function setFixIPs($add) { + if (is_array($this->attributes['dhcpStatements'])) { + for ($i = 0; $i < sizeof($this->attributes['dhcpStatements']); $i++) { + if (substr($this->attributes['dhcpStatements'][$i], 0, 21) == 'update-static-leases ') { + unset($this->attributes['dhcpStatements'][$i]); + $this->attributes['dhcpStatements'] = array_values($this->attributes['dhcpStatements']); + } + } + } + if ($add) { + $this->attributes['dhcpStatements'][] = 'update-static-leases true'; + } + } + + /** + * Returns if client updates are ignored. + * + * @return boolean ignore client updates + */ + private function isIgnoreClientUpdates() { + $return = false; + if (is_array($this->attributes['dhcpStatements'])) { + for ($i = 0; $i < sizeof($this->attributes['dhcpStatements']); $i++) { + if (preg_replace('/[ ]+/', ' ', $this->attributes['dhcpStatements'][$i]) == 'ignore client-updates') { + $return = true; + break; + } + } + } + return $return; + } + + /** + * Sets if client updates are ignored. + * + * @param boolean $ignore ignore client updates + */ + private function setIgnoreClientUpdates($ignore) { + if (is_array($this->attributes['dhcpStatements'])) { + for ($i = 0; $i < sizeof($this->attributes['dhcpStatements']); $i++) { + if (preg_replace('/[ ]+/', ' ', $this->attributes['dhcpStatements'][$i]) == 'ignore client-updates') { + if ($ignore) { + return; // option already set, no change + } + unset($this->attributes['dhcpStatements'][$i]); + $this->attributes['dhcpStatements'] = array_values($this->attributes['dhcpStatements']); + } + } + } + if ($ignore) { + $this->attributes['dhcpStatements'][] = 'ignore client-updates'; + } + } + + /** + * Returns the key for DNS updates. + * + * @return String key + */ + private function getUpdateKey() { + $return = null; + if (is_array($this->attributes['dhcpStatements'])) { + for ($i = 0; $i < sizeof($this->attributes['dhcpStatements']); $i++) { + if (substr($this->attributes['dhcpStatements'][$i], 0, 8) == 'include ') { + $return = substr($this->attributes['dhcpStatements'][$i],9, strlen($this->attributes['dhcpStatements'][$i]) - 10); + break; + } + } + } + return $return; + } + + /** + * Sets the key for DNS updates. + * + * @param String $key key + */ + private function setUpdateKey($key) { + if (!is_array($this->attributes['dhcpStatements'])) { + $this->attributes['dhcpStatements'] = array(); + } + for ($i = 0; $i < sizeof($this->attributes['dhcpStatements']); $i++) { + if (substr($this->attributes['dhcpStatements'][$i], 0, 8) == 'include ') { + unset($this->attributes['dhcpStatements'][$i]); + $this->attributes['dhcpStatements'] = array_values($this->attributes['dhcpStatements']); + } + } + if (($key != null) && ($key != '')) { + $this->attributes['dhcpStatements'][] = 'include "' . $key . '"'; + } + } + + /** + * This function loads the LDAP attributes when an account should be loaded. + * + * Calling this method requires the existence of an enclosing {@link accountContainer}.
    + *
    + * By default this method loads the object classes and accounts which are specified in {@link getManagedObjectClasses()} + * and {@link getManagedAttributes()}. + * + * @param array $attributes array like the array returned by get_ldap_attributes(dn of account) but without count indices + */ + public function load_attributes($attributes) { + // load nothing, attributes are saved in "dhcp_settings" module + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + if (!$this->check_if_ddns_is_enable()) { + return $messages; + } + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // principal name + if (!check_ip($rawAccounts[$i][$ids['ddns_DNSserver']])) { + $error = $this->messages['ip'][1]; + array_push($error, $i); + $messages[] = $error; + } + else { + $partialAccounts[$i]['dhcpStatements'][] = "zone {$rawAccounts[$i][$ids['ddns_zone']]}. { primary {$rawAccounts[$i][$ids['ddns_DNSserver']]}; key DHCP_UPDATER; }"; + $partialAccounts[$i]['dhcpStatements'][] = "zone {$rawAccounts[$i][$ids['ddns_reverseZone']]}. { primary {$rawAccounts[$i][$ids['ddns_DNSserver']]}; key DHCP_UPDATER; }"; + } + } + return $messages; + } + +} + +?> diff --git a/lam/lib/modules/dhcp_settings.inc b/lam/lib/modules/dhcp_settings.inc new file mode 100644 index 00000000..f65ffbce --- /dev/null +++ b/lam/lib/modules/dhcp_settings.inc @@ -0,0 +1,1013 @@ + 255 || ($i==3 && (!$subnet && $part[$i]<1)) || ($i==3 && (!$subnet && $part[$i]<0))) { + return false; + } + } + } + } + return true; + } +} + +/** +* Manages DHCP entries. +* +* @package modules +*/ +class dhcp_settings extends baseModule { + + /** all netbios node types */ + private $all_netbios_node_types; + /** unknown-client options */ + private $allowDenyOptions; + /** LDAP attributes */ + public $attributes; + + /** + * Creates a new dhcp_settings object. + * + * @param string $scope account type + */ + function __construct($scope) { + // list of node types + $this->all_netbios_node_types = array( + "1" => _("B-Node (0x01)"), + "2" => _("P-Node (0x02)"), + "4" => _("M-Node (0x04)"), + "8" => _("H-Node (0x08)") + ); + $this->allowDenyOptions = array( + '-' => '', + 'allow' => _("Allow"), + 'deny' => _("Deny"), + ); + // call parent constructor + parent::__construct($scope); + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('dhcp')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + */ + public function get_metaData() { + $return = array(); + // alias name + $return["alias"] = _("DHCP settings"); + // this is a base module + $return["is_base"] = true; + // icon + $return['icon'] = 'dhcpBig.png'; + // RDN attribute + $return["RDN"] = array("cn" => "high"); + // LDAP filter + $return["ldap_filter"] = array(); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('top', 'dhcpOptions', 'dhcpSubnet'); + // managed attributes + $return['attributes'] = array('cn', 'dhcpOption', 'dhcpComments', 'dhcpNetMask', 'dhcpStatements'); + // help Entries + $return['help'] = array( + 'domainname' => array( + "Headline" => _("Domain name"), + "Text" => _("The domain name of the subnet.") + ), + 'subnet' => array( + "Headline" => _("Subnet"), 'attr' => 'cn', + "Text" => _("The name of the subnet. Example: 192.168.10.0") + ), + 'leasetime' => array( + "Headline" => _("Lease time"), + "Text" => _("The lease time specifies after how many seconds the client should request a new IP address.") + ), + 'max_leasetime' => array( + "Headline" => _("Maximum lease time"), + "Text" => _("The maximum lease time specifies after how many seconds the client must request a new IP address.") + ), + 'dns' => array( + "Headline" => _("DNS (Domain Name System)"), + "Text" => _("The IP addresses of the DNS servers. Multiple addresses are separated by \",\". Example: 192.168.0.10, 192.168.0.11") + ), + 'gateway' => array( + "Headline" => _("Default gateway"), + "Text" => _("Packets are sent to the default gateway if the receiver does not reside in the same network. The default gateway routes them to the target network.") + ), + 'netbios' => array( + "Headline" => _("Netbios name servers"), + "Text" => _("The IP addresses of the Netbios name servers (e.g. \"123.123.123.123, 123.123.123.124\").") + ), + 'netbios_type' => array( + "Headline" => _("Netbios node type"), + "Text" => _("B-Node (0x01): Broadcast.
    The client tries to find other workstations via broadcasting +(works only inside the same collision domain, viz. the same subnet).

    + +P-Node (0x02): Point-To-Point
    +The client contacts a Netbios name server (NBNS) from Microsoft Windows Name Service (WINS) for name resolution.

    + +M-Node (0x04): Mixed
    +The node tries broadcasting first. If that fails then it tries WINS.

    + +H-Node (0x08): Hybrid
    +The node tries WINS first. If that fails it tries broadcasting.

    + +By default, the nodes are configured as H-Nodes which fits for small networks. In large networks Point-to-Point (0x02) should be used.") + ), + 'subnetmask' => array( + "Headline" => _("Subnet mask"), + "Text" => _("The subnet mask of the network.") + ), + 'netmask' => array( + "Headline" => _("Net mask"), 'attr' => 'dhcpNetMask', + "Text" => _("The net mask is derived from the subnet mask. LAM will calculate it automatically.") + ), + 'description' => array( + "Headline" => _("Description"), 'attr' => 'dhcpComments', + "Text" => _("Here you can enter a description for this DHCP entry.") + ), + 'unknownClients' => array( + "Headline" => _("Unknown clients"), 'attr' => 'dhcpStatements', + "Text" => _("Specifies if unknown clients are allowed.") + ), + ); + // available PDF fields + $return['PDF_fields'] = array( + 'subnet' => _('Subnet'), + 'domainName' => _('Domain name'), + 'leaseTime' => _('Lease time'), + 'maxLeaseTime' => _('Maximum lease time'), + 'DNSserver' => _('DNS'), + 'gateway' => _('Default gateway'), + 'netbiosServer' => _('Netbios name servers'), + 'netbiosType' => _('Netbios node type'), + 'subnetMask' => _('Subnet mask'), + 'netMask' => _('Net mask'), + 'description' => _('Description'), + 'unknownClients' => _('Unknown clients'), + ); + // profile elements + $profileContainer = new htmlTable(); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Subnet'), 'cn', null, 'subnet'), true); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Domain name'), 'domainname', null, 'domainname'), true); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Lease time'), 'lease_time', null, 'leasetime'), true); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Maximum lease time'), 'max_lease_time', null, 'max_leasetime'), true); + $profileContainer->addElement(new htmlTableExtendedInputField(_('DNS'), 'dns', null, 'dns'), true); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Default gateway'), 'routers', null, 'gateway'), true); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Netbios name servers'), 'netbios', null, 'netbios'), true); + $nodeList = array_flip($this->all_netbios_node_types); + $profileNodeSelect = new htmlTableExtendedSelect('netbios_node_type', $nodeList, null, _('Netbios node type'), 'netbios_type'); + $profileNodeSelect->setHasDescriptiveElements(true); + $profileContainer->addElement($profileNodeSelect, true); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Subnet mask'), 'subnet', null, 'subnetmask'), true); + $return['profile_options'] = $profileContainer; + // upload fields + $uploadAllowDenyOption = $this->allowDenyOptions; + unset($uploadAllowDenyOption['-']); + $uploadAllowDenyOption = implode(', ', $uploadAllowDenyOption); + $return['upload_columns'] = array( + array( + 'name' => 'dhcp_settings_subnet', + 'description' => _('Subnet'), + 'help' => 'subnet', + 'example' => '192.168.10.0', + 'required' => true, + 'unique' => 'true' + ), + array( + 'name' => 'dhcp_settings_domainName', + 'description' => _('Domain name'), + 'help' => 'domainname', + 'example' => 'mydomain.com', + ), + array( + 'name' => 'dhcp_settings_leaseTime', + 'description' => _('Lease time'), + 'help' => 'leasetime', + 'example' => '86400', + ), + array( + 'name' => 'dhcp_settings_maxLeaseTime', + 'description' => _('Maximum lease time'), + 'help' => 'max_leasetime', + 'example' => '172800', + ), + array( + 'name' => 'dhcp_settings_DNSserver', + 'description' => _('DNS'), + 'help' => 'dns', + 'example' => '192.168.10.250', + ), + array( + 'name' => 'dhcp_settings_gateway', + 'description' => _('Default gateway'), + 'help' => 'gateway', + 'example' => '192.168.10.251', + ), + array( + 'name' => 'dhcp_settings_netbiosServer', + 'description' => _('Netbios name servers'), + 'help' => 'netbios', + 'example' => '192.168.10.252, 192.168.10.253', + ), + array( + 'name' => 'dhcp_settings_netbiosType', + 'description' => _('Netbios node type'), + 'help' => 'netbios_type', + 'example' => 'M', + 'default' => 'H', + 'values' => 'B, H, M, P' + ), + array( + 'name' => 'dhcp_settings_unknownClients', + 'description' => _('Unknown clients'), + 'help' => 'unknownClients', + 'values' => $uploadAllowDenyOption + ), + array( + 'name' => 'dhcp_settings_subnetMask', + 'description' => _('Subnet mask'), + 'help' => 'subnetmask', + 'required' => true, + 'example' => '255.255.255.0', + ), + array( + 'name' => 'dhcp_settings_description', + 'description' => _('Description'), + 'help' => 'description', + ), + ); + return $return; + } + + /** + * This function fills the message array. + */ + public function load_Messages() { + $this->messages['cn'][0] = array('ERROR', _('No subnet entered.')); + $this->messages['cn'][1] = array('ERROR', _('The subnet is already in use.')); + $this->messages['cn'][2] = array('ERROR', _('The subnet is invalid.')); + $this->messages['cn'][3] = array('ERROR', _('Account %s:') . ' dhcp_settings_subnet', _('The subnet is invalid.')); + $this->messages['dns'][0] = array('ERROR', _('You entered one or more invalid DNS servers.')); + $this->messages['dns'][1] = array('ERROR', _('Account %s:') . ' dhcp_settings_DNSserver', _('You entered one or more invalid DNS servers.')); + $this->messages['lease_time'][0] = array('ERROR', _('The lease time is invalid.')); + $this->messages['lease_time'][1] = array('ERROR', _('Account %s:') . ' dhcp_settings_leaseTime', _('The lease time is invalid.')); + $this->messages['routers'][0] = array('ERROR', _('The default gateway is invalid.')); + $this->messages['routers'][1] = array('ERROR', _('Account %s:') . ' dhcp_settings_gateway', _('The default gateway is invalid.')); + $this->messages['netbios'][0] = array('ERROR', _('The Netbios server is invalid.')); + $this->messages['netbios'][1] = array('ERROR', _('Account %s:') . ' dhcp_settings_netbiosServer', _('The Netbios server is invalid.')); + $this->messages['netbios_node_type'][1] = array('ERROR', _('Account %s:') . ' dhcp_settings_netbiosType', _('The entered Netbios node type does not exist.')); + $this->messages['unknownClients'][0] = array('ERROR', _('Account %s:') . ' dhcp_settings_unknownClients', _('Please enter a valid option.')); + $this->messages['max_lease_time'][0] = array('ERROR', _('The maximum lease time is invalid.')); + $this->messages['max_lease_time'][1] = array('ERROR', _('Account %s:') . ' dhcp_settings_maxLeaseTime', _('The maximum lease time is invalid.')); + $this->messages['subnet'][0] = array('ERROR', _('The subnet mask is invalid.')); + $this->messages['subnet'][1] = array('ERROR', _('Account %s:') . ' dhcp_settings_subnetMask', _('The subnet mask is invalid.')); + $this->messages['ranges_reload'][0] = array('INFO', _('The DHCP ranges were changed to fit for the new subnet.')); + $this->messages['ips_reload'][0] = array('INFO', 'The fixed IP addresses were changed to fit for the new subnet.'); + $this->messages['domainname'][2] = array('ERROR', _('The domain name includes invalid characters. Valid characters are A-Z, a-z, 0-9, ".", "_","-".')); + $this->messages['domainname'][5] = array('ERROR', _('Account %s:') . ' dhcp_settings_domainName', _('The domain name includes invalid characters. Valid characters are A-Z, a-z, 0-9, ".", "_","-".')); + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + public function save_attributes() { + // remove dhcpSubnet object class if only the DHCP settings were changed + if ($this->getAccountContainer()->dn_orig == $_SESSION['config']->get_suffix('dhcp')) { + if (!in_array_ignore_case("dhcpSubnet", $this->orig['objectClass']) && in_array_ignore_case("dhcpSubnet", $this->attributes['objectClass'])) { + $this->attributes['objectClass'] = array_delete(array("dhcpSubnet"), $this->attributes['objectClass']); + } + } + $return = parent::save_attributes(); + return $return; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + public function process_attributes() { + // check if DHCP main settings and valid DHCP entry + if ($_SESSION['config']->get_suffix('dhcp') == $this->getAccountContainer()->dn_orig) { + if (!in_array_ignore_case('dhcpService', $this->attributes['objectClass']) && !in_array_ignore_case('dhcpServer', $this->attributes['objectClass'])) { + return array(); + } + } + $errors = array(); + + // Check if cn is not empty + if ($_SESSION['config']->get_suffix('dhcp') != $this->getAccountContainer()->dn_orig) { + if (!empty($_POST['cn'])) $_POST['cn'] = trim($_POST['cn']); + $this->attributes['cn'][0] = $_POST['cn']; + if (empty($_POST['cn'])) { + $errors[] = $this->messages['cn'][0]; + } + // Check, if cn is not already use: + elseif ((sizeof(searchLDAPByAttribute('cn', $_POST['cn'], 'dhcpOptions', array('cn'), array('dhcp'))) > 0) && $this->orig['cn']['0']!=$_POST['cn']) { + $errors[] = $this->messages['cn'][1]; + } + elseif (!check_ip($_POST['cn'],true)) { + $errors[] = $this->messages['cn'][2]; + } + elseif (strrpos($_POST['cn'], '.0') != (strlen($_POST['cn']) - 2)) { + $errors[] = $this->messages['cn'][2]; + } + else { + // if the cn was edit, reload the Ranges: + if ($this->getAccountContainer()->getAccountModule('range')->reload_ranges()) + $errors[] = $this->messages['ranges_reload'][0]; + // if the cn was edit, reload the ips: + if ($this->getAccountContainer()->getAccountModule('fixed_ip')->reload_ips()) + $errors[] = $this->messages['ips_reload'][0]; + } + $this->setUnknownClients($_POST['unknownClients']); + } + + // Check domainname: + if (!empty($_POST['domainname'])) $_POST['domainname'] = trim($_POST['domainname']); + if (!empty($_POST['domainname'])) { + if (!preg_match("/^[A-Za-z0-9\\._-]*$/", $_POST['domainname'])) { + $errors[] = $this->messages['domainname'][2]; + } + } + $this->setDHCPOption('domain-name', '"' . $_POST['domainname'] . '"'); + + // Check DNS + if (!empty($_POST['dns'])) { + $_POST['dns'] = trim($_POST['dns']); + $ex = explode(",", $_POST['dns']); + $dns = ""; + $is_first=true; + $invalid = false; + foreach($ex AS $string) { + if ($is_first) { + $dns .= $string; + $is_first=false; + } + else { + $dns .= ",$string"; + } + + if (!check_ip($string)) { + $invalid = true; + } + } + if ($invalid) { + $errors[] = $this->messages['dns'][0]; + } + } + $this->setDHCPOption('domain-name-servers', $_POST['dns']); + + // Lease Time + if (!empty($_POST['lease_time'])) { + $_POST['lease_time'] = trim($_POST['lease_time']); + } + $this->setDefaultLeaseTime($_POST['lease_time']); + if (!is_numeric($_POST['lease_time']) && !empty($_POST['lease_time'])) { + $errors[] = $this->messages['lease_time'][0]; + } + + // Max lease Time + if (!empty($_POST['max_lease_time'])) { + $_POST['max_lease_time'] = trim($_POST['max_lease_time']); + } + $this->setMaxLeaseTime($_POST['max_lease_time']); + if (!is_numeric($_POST['max_lease_time']) && !empty($_POST['max_lease_time'])) { + $errors[] = $this->messages['max_lease_time'][0]; + } + + // Default Gateway + if (!empty($_POST['routers'])) { + $_POST['routers'] = trim($_POST['routers']); + if (!check_ip($_POST['routers'])) { + $errors[] = $this->messages['routers'][0]; + } + } + $this->setDHCPOption('routers', $_POST['routers']); + + // Netbios + if (!empty($_POST['netbios'])) $_POST['netbios'] = trim($_POST['netbios']); + $netbiosServers = explode(', ', $_POST['netbios']); + $netbiosServersOk = true; + for ($i = 0; $i < sizeof($netbiosServers); $i++) { + if (!check_ip($netbiosServers[$i]) && !get_preg($netbiosServers[$i], 'DNSname')) { + $netbiosServersOk = false; + break; + } + } + if (!$netbiosServersOk && !empty($_POST['netbios'])) { + $errors[] = $this->messages['netbios'][0]; + } + $this->setDHCPOption('netbios-name-servers', $_POST['netbios']); + + $this->setDHCPOption('netbios-node-type', $_POST['netbios_node_type']); + + if ($this->getAccountContainer()->dn_orig!=$_SESSION['config']->get_suffix('dhcp')) { + // Check subnet + $_POST['subnet'] = trim($_POST['subnet']); + if (!$this->checkSubnetMask($_POST['subnet'])) { + $errors[] = $this->messages['subnet'][0]; + } + $this->setDHCPOption('subnet-mask', $_POST['subnet']); + + // calculate netmask from subnet: + if (!empty($_POST['subnet'])) { + $this->attributes['dhcpNetMask'][0] = $this->calculateNetMask($_POST['subnet']); + } + } + $this->attributes['dhcpComments'][0] = $_POST['description']; + + return $errors; + } + + /** + * Checks if the subnet mask is valid. + * + * @param String $mask subnet mask + * @return boolean correct or incorrect + */ + private function checkSubnetMask($mask) { + // check basic format + if (!check_ip($mask, true)) { + return false; + } + // check if bit order is 11...00... + $parts = explode('.', $mask); + $bits = ''; + for ($i = 0; $i < sizeof($parts); $i++) { + $bits .= decbin($parts[$i]); + } + return preg_match('/^1*0*$/', $bits); + } + + /** + * Calculates the net mask from the subnet. + * + * @param String $subnet subnet + * @return integer netmask + */ + private function calculateNetMask($subnet) { + $ex = explode(".", $subnet); + $num = 0; + foreach($ex AS $mask) { + $binary = decbin($mask); + $num += substr_count($binary, 1); + } + return $num; + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + public function display_html_attributes() { + $return = new htmlTable(); + // check if DHCP main settings and valid DHCP entry + if ($_SESSION['config']->get_suffix('dhcp') == $this->getAccountContainer()->dn_orig) { + if (!in_array_ignore_case('dhcpService', $this->attributes['objectClass']) && !in_array_ignore_case('dhcpServer', $this->attributes['objectClass'])) { + $return->addElement(new htmlStatusMessage('ERROR', _('Please set your LDAP suffix to an LDAP entry with object class "dhcpService" or "dhcpServer".'))); + return $return; + } + } + // Subnet name + if ($_SESSION['config']->get_suffix('dhcp') != $this->getAccountContainer()->dn_orig) { + $cn = ''; + if (isset($this->attributes['cn'][0])) { + $cn = $this->attributes['cn'][0]; + } + $subnetInput = new htmlTableExtendedInputField(_('Subnet'), 'cn', $cn, 'subnet'); + $subnetInput->setRequired(true); + $return->addElement($subnetInput); + $return->addElement(new htmlOutputText(_('Example') . ": 192.168.10.0"), true); + } + // domain name + $return->addElement(new htmlTableExtendedInputField(_('Domain name'), 'domainname', $this->getDHCPOption('domain-name'), 'domainname'), true); + // lease Time + $leasetimeInput = new htmlTableExtendedInputField(_('Lease time'), 'lease_time', $this->getDefaultLeaseTime(), 'leasetime'); + $leasetimeInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($leasetimeInput, true); + // max lease time + $max_leasetimeInput = new htmlTableExtendedInputField(_('Maximum lease time'), 'max_lease_time', $this->getMaxLeaseTime(), 'max_leasetime'); + $max_leasetimeInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($max_leasetimeInput, true); + // DNS + $return->addElement(new htmlTableExtendedInputField(_('DNS'), 'dns', $this->getDHCPOption('domain-name-servers'), 'dns'), true); + // gateway + $return->addElement(new htmlTableExtendedInputField(_('Default gateway'), 'routers', $this->getDHCPOption('routers'), 'gateway'), true); + // netbios name servers + $return->addElement(new htmlTableExtendedInputField(_('Netbios name servers'), 'netbios', $this->getDHCPOption('netbios-name-servers'), 'netbios'), true); + // netbios node type + $nodeType = $this->getDHCPOption('netbios-node-type'); + if ($nodeType == '') { + $nodeType = 8; + } + $nodeOptions = array(); + foreach ($this->all_netbios_node_types as $key => $value) { + $nodeOptions[$value] = $key; + } + $nodeSelect = new htmlTableExtendedSelect('netbios_node_type', $nodeOptions, array($nodeType), _('Netbios node type'), 'netbios_type'); + $nodeSelect->setHasDescriptiveElements(true); + $return->addElement($nodeSelect, true); + + if ($this->getAccountContainer()->dn_orig!=$_SESSION['config']->get_suffix('dhcp')) { + // unknown clients + $unknownClients = $this->getUnknownClients(); + if (empty($unknownClients)) { + $unknownClients = '-'; + } + $unknownClientsOptions = array_flip($this->allowDenyOptions); + $unknownClientsSelect = new htmlTableExtendedSelect('unknownClients', $unknownClientsOptions, array($unknownClients), _('Unknown clients'), 'unknownClients'); + $unknownClientsSelect->setHasDescriptiveElements(true); + $return->addElement($unknownClientsSelect, true); + // subnetmask + $subnetMaskInput = new htmlTableExtendedInputField(_('Subnet mask'), 'subnet', $this->getDHCPOption('subnet-mask'), 'subnetmask'); + $subnetMaskInput->setRequired(true); + $return->addElement($subnetMaskInput, true); + // netmask + $return->addElement(new htmlOutputText(_('Net mask'))); + $return->addElement(new htmlOutputText($this->attributes['dhcpNetMask'][0])); + $return->addElement(new htmlHelpLink('netmask'), true); + } + + // description + $description = ''; + if (isset($this->attributes['dhcpComments'][0])) { + $description = $this->attributes['dhcpComments'][0]; + } + $return->addElement(new htmlTableExtendedInputField(_('Description'), 'description', $description, 'description'), true); + return $return; + } + + /** + * Loads the values of an account profile into internal variables. + * + * @param array $profile hash array with profile values (identifier => value) + */ + function load_profile($profile) { + // profile mappings in meta data + parent::load_profile($profile); + $this->attributes['cn'][0] = $profile['cn'][0]; + + $this->setDefaultLeaseTime($profile['lease_time'][0]); + $this->setMaxLeaseTime($profile['max_lease_time'][0]); + + $this->setDHCPOption('domain-name', $profile['domainname'][0]); + $this->setDHCPOption('domain-name-servers', $profile['dns'][0]); + $this->setDHCPOption('routers', $profile['routers'][0]); + $this->setDHCPOption('netbios-name-servers', $profile['netbios'][0]); + $this->setDHCPOption('netbios-node-type', $profile['netbios_node_type'][0]); + + if ($this->getAccountContainer()->dn_orig!=$_SESSION['config']->get_suffix('dhcp')) { + $this->setDHCPOption('subnet-mask', $profile['subnet'][0]); + + // calc the netmask: + $ex=explode(".", $profile['subnet'][0]); + $num = 0; + foreach($ex AS $mask) { + $binary = decbin($mask); + $num += substr_count($binary, 1); + } + $this->attributes['dhcpNetMask'][0] = $num; + } + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $nodeType = $this->getDHCPOption('netbios-node-type'); + $nodeTypeValue = ''; + if (isset($this->all_netbios_node_types[$nodeType])) { + $nodeTypeValue = $this->all_netbios_node_types[$nodeType]; + } + $unknownClients = ''; + $unknownClientsVal = $this->getUnknownClients(); + if (!empty($unknownClientsVal)) { + $unknownClients = $this->allowDenyOptions[$unknownClientsVal]; + } + $return = array( + get_class($this) . '_domainName' => array('' . _('Domain name') . '' . $this->getDHCPOption('domain-name') . ''), + get_class($this) . '_leaseTime' => array('' . _('Lease time') . '' . $this->getDefaultLeaseTime() . ''), + get_class($this) . '_maxLeaseTime' => array('' . _('Maximum lease time') . '' . $this->getMaxLeaseTime() . ''), + get_class($this) . '_DNSserver' => array('' . _('DNS') . '' . $this->getDHCPOption('domain-name-servers') . ''), + get_class($this) . '_gateway' => array('' . _('Default gateway') . '' . $this->getDHCPOption('routers') . ''), + get_class($this) . '_netbiosServer' => array('' . _('Netbios name servers') . '' . $this->getDHCPOption('netbios-name-servers') . ''), + get_class($this) . '_netbiosType' => array('' . _('Netbios node type') . '' . $nodeTypeValue . ''), + get_class($this) . '_subnetMask' => array('' . _('Subnet mask') . '' . $this->getDHCPOption('subnet-mask') . ''), + get_class($this) . '_unknownClients' => array('' . _('Unknown clients') . '' . $unknownClients . ''), + ); + $this->addSimplePDFField($return, 'description', _('Description'), 'dhcpComments'); + $this->addSimplePDFField($return, 'subnet', _('Subnet'), 'cn'); + $this->addSimplePDFField($return, 'netMask', _('Net mask'), 'dhcpNetMask'); + return $return; + } + + /** + * Returns a DHCP option. + * + * @param String $name option name + * @return String value + */ + public function getDHCPOption($name) { + $return = null; + if (is_array($this->attributes['dhcpOption'])) { + for ($i = 0; $i < sizeof($this->attributes['dhcpOption']); $i++) { + $val = $this->attributes['dhcpOption'][$i]; + if (substr($val, 0, strlen($name) + 1) == ($name . ' ')) { + $return = substr($val, strlen($name) + 1); + $return = str_replace('"', '', $return); + break; + } + } + } + return $return; + } + + /** + * Sets a DHCP option. + * + * @param String $name option name + * @param String $value option value + */ + private function setDHCPOption($name, $value) { + if (!is_array($this->attributes['dhcpOption'])) { + $this->attributes['dhcpOption'] = array(); + } + for ($i = 0; $i < sizeof($this->attributes['dhcpOption']); $i++) { + if (substr($this->attributes['dhcpOption'][$i], 0, strlen($name) + 1) == ($name . ' ')) { + unset($this->attributes['dhcpOption'][$i]); + $this->attributes['dhcpOption'] = array_values($this->attributes['dhcpOption']); + } + } + if (($value != null) && ($value != '')) { + $this->attributes['dhcpOption'][] = $name . ' ' . $value; + } + } + + /** + * Returns the default lease time. + * + * @return String time + */ + private function getDefaultLeaseTime() { + $return = null; + if (is_array($this->attributes['dhcpStatements'])) { + for ($i = 0; $i < sizeof($this->attributes['dhcpStatements']); $i++) { + if (substr($this->attributes['dhcpStatements'][$i], 0, 19) == 'default-lease-time ') { + $return = substr($this->attributes['dhcpStatements'][$i],19); + break; + } + } + } + return $return; + } + + /** + * Sets the default lease time. + * + * @param String $time time + */ + private function setDefaultLeaseTime($time) { + if (!is_array($this->attributes['dhcpStatements'])) { + $this->attributes['dhcpStatements'] = array(); + } + for ($i = 0; $i < sizeof($this->attributes['dhcpStatements']); $i++) { + if (substr($this->attributes['dhcpStatements'][$i], 0, 19) == 'default-lease-time ') { + unset($this->attributes['dhcpStatements'][$i]); + $this->attributes['dhcpStatements'] = array_values($this->attributes['dhcpStatements']); + } + } + if (($time != null) && ($time != '')) { + $this->attributes['dhcpStatements'][] = 'default-lease-time ' . $time; + } + } + + /** + * Returns the unknown clients option. + * + * @return String unknown clients value + */ + private function getUnknownClients() { + $return = null; + if (is_array($this->attributes['dhcpStatements'])) { + for ($i = 0; $i < sizeof($this->attributes['dhcpStatements']); $i++) { + $val = $this->attributes['dhcpStatements'][$i]; + if (strpos($val, 'unknown-clients') === (strlen($val) - strlen('unknown-clients'))) { + $return = substr($val,0, (strlen($val) - strlen('unknown-clients') - 1)); + break; + } + } + } + return $return; + } + + /** + * Sets the unknown clients option. + * + * @param String $option allow/deny + */ + private function setUnknownClients($option) { + if (!is_array($this->attributes['dhcpStatements'])) { + $this->attributes['dhcpStatements'] = array(); + } + for ($i = 0; $i < sizeof($this->attributes['dhcpStatements']); $i++) { + $val = $this->attributes['dhcpStatements'][$i]; + if (strpos($val, 'unknown-clients') === (strlen($val) - strlen('unknown-clients'))) { + unset($this->attributes['dhcpStatements'][$i]); + $this->attributes['dhcpStatements'] = array_values($this->attributes['dhcpStatements']); + } + } + if (!empty($option) && ($option != '-')) { + $this->attributes['dhcpStatements'][] = $option . ' unknown-clients'; + } + } + + /** + * Returns the maximum lease time. + * + * @return String time + */ + private function getMaxLeaseTime() { + $return = null; + if (is_array($this->attributes['dhcpStatements'])) { + for ($i = 0; $i < sizeof($this->attributes['dhcpStatements']); $i++) { + if (substr($this->attributes['dhcpStatements'][$i], 0, 15) == 'max-lease-time ') { + $return = substr($this->attributes['dhcpStatements'][$i],15); + break; + } + } + } + return $return; + } + + /** + * Sets the maximum lease time. + * + * @param String $time time + */ + private function setMaxLeaseTime($time) { + if (!is_array($this->attributes['dhcpStatements'])) { + $this->attributes['dhcpStatements'] = array(); + } + for ($i = 0; $i < sizeof($this->attributes['dhcpStatements']); $i++) { + if (substr($this->attributes['dhcpStatements'][$i], 0, 15) == 'max-lease-time ') { + unset($this->attributes['dhcpStatements'][$i]); + $this->attributes['dhcpStatements'] = array_values($this->attributes['dhcpStatements']); + } + } + if (($time != null) && ($time != '')) { + $this->attributes['dhcpStatements'][] = 'max-lease-time ' . $time; + } + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array("dhcpOptions", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "dhcpOptions"; + if (!in_array("dhcpSubnet", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "dhcpSubnet"; + // subnet + if (check_ip($rawAccounts[$i][$ids['dhcp_settings_subnet']],true)) { + $partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['dhcp_settings_subnet']]; + } + else { + $error = $this->messages['cn'][3]; + array_push($error, $i); + $messages[] = $error; + } + // domain name + if ($rawAccounts[$i][$ids['dhcp_settings_domainName']] != "") { + if (preg_match("/^[A-Za-z0-9\\._-]*$/", $rawAccounts[$i][$ids['dhcp_settings_domainName']])) { + $partialAccounts[$i]['dhcpOption'][] = "domain-name \"".$rawAccounts[$i][$ids['dhcp_settings_domainName']]."\""; + } + else { + $error = $this->messages['domainname'][5]; + array_push($error, $i); + $messages[] = $error; + } + } + // lease time + if ($rawAccounts[$i][$ids['dhcp_settings_leaseTime']] != '') { + if (is_numeric($rawAccounts[$i][$ids['dhcp_settings_leaseTime']])) { + $partialAccounts[$i]['dhcpStatements'][] = 'default-lease-time ' . $rawAccounts[$i][$ids['dhcp_settings_leaseTime']]; + } + else { + $error = $this->messages['lease_time'][1]; + array_push($error, $i); + $messages[] = $error; + } + } + // max lease time + if ($rawAccounts[$i][$ids['dhcp_settings_maxLeaseTime']] != '') { + if (is_numeric($rawAccounts[$i][$ids['dhcp_settings_maxLeaseTime']])) { + $partialAccounts[$i]['dhcpStatements'][] = 'max-lease-time ' . $rawAccounts[$i][$ids['dhcp_settings_maxLeaseTime']]; + } + else { + $error = $this->messages['max_lease_time'][1]; + array_push($error, $i); + $messages[] = $error; + } + } + // DNS + if ($rawAccounts[$i][$ids['dhcp_settings_DNSserver']] != '') { + $ex = explode(",", $rawAccounts[$i][$ids['dhcp_settings_DNSserver']]); + $invalid = false; + foreach($ex AS $string) { + if (!check_ip($string)) { + $invalid = true; + } + } + if (!$invalid) { + $partialAccounts[$i]['dhcpOption'][] = 'domain-name-servers ' . $rawAccounts[$i][$ids['dhcp_settings_DNSserver']]; + } + else { + $error = $this->messages['dns'][1]; + array_push($error, $i); + $messages[] = $error; + } + } + // gateway + if ($rawAccounts[$i][$ids['dhcp_settings_gateway']] != '') { + if (check_ip($rawAccounts[$i][$ids['dhcp_settings_gateway']])) { + $partialAccounts[$i]['dhcpOption'][] = "routers ".$rawAccounts[$i][$ids['dhcp_settings_gateway']]; + } + else { + $error = $this->messages['routers'][1]; + array_push($error, $i); + $messages[] = $error; + } + } + // netbios name servers + if ($rawAccounts[$i][$ids['dhcp_settings_netbiosServer']] != '') { + $ex = explode(",", $rawAccounts[$i][$ids['dhcp_settings_netbiosServer']]); + $invalid = false; + foreach($ex AS $string) { + if (!check_ip($string) && !get_preg($string, 'DNSname')) { + $invalid = true; + } + } + if (!$invalid) { + $partialAccounts[$i]['dhcpOption'][] = "netbios-name-servers " . $rawAccounts[$i][$ids['dhcp_settings_netbiosServer']]; + } + else { + $error = $this->messages['netbios'][1]; + array_push($error, $i); + $messages[] = $error; + } + } + // node type + if ($rawAccounts[$i][$ids['dhcp_settings_netbiosType']] != '') { + if (in_array($rawAccounts[$i][$ids['dhcp_settings_netbiosType']], array('B', 'P', 'M', 'H'))) { + if ($rawAccounts[$i][$ids['dhcp_settings_netbiosType']] == 'B') { + $partialAccounts[$i]['dhcpOption'][] = "netbios-node-type 1"; + } + elseif ($rawAccounts[$i][$ids['dhcp_settings_netbiosType']] == 'P') { + $partialAccounts[$i]['dhcpOption'][] = "netbios-node-type 2"; + } + elseif ($rawAccounts[$i][$ids['dhcp_settings_netbiosType']] == 'M') { + $partialAccounts[$i]['dhcpOption'][] = "netbios-node-type 4"; + } + elseif ($rawAccounts[$i][$ids['dhcp_settings_netbiosType']] == 'H') { + $partialAccounts[$i]['dhcpOption'][] = "netbios-node-type 8"; + } + } + else { + $error = $this->messages['netbios_node_type'][1]; + array_push($error, $i); + $messages[] = $error; + } + } + else { + $partialAccounts[$i]['dhcpOption'][] = "netbios-node-type 8"; // default H + } + // unknown clients + if (!empty($rawAccounts[$i][$ids['dhcp_settings_unknownClients']])) { + $unknownClients = $rawAccounts[$i][$ids['dhcp_settings_unknownClients']]; + if (in_array($unknownClients, $this->allowDenyOptions)) { + $allowDenyOptions = array_flip($this->allowDenyOptions); + $partialAccounts[$i]['dhcpStatements'][] = $allowDenyOptions[$unknownClients] . ' unknown-clients'; + } + else { + $error = $this->messages['unknownClients'][0]; + array_push($error, $i); + $messages[] = $error; + } + } + // subnet mask + if (check_ip($rawAccounts[$i][$ids['dhcp_settings_subnetMask']],true)) { + $partialAccounts[$i]['dhcpOption'][] = "subnet-mask ".$rawAccounts[$i][$ids['dhcp_settings_subnetMask']]; + } + else { + $error = $this->messages['subnet'][1]; + array_push($error, $i); + $messages[] = $error; + } + // net mask + $mask = $this->calculateNetMask($rawAccounts[$i][$ids['dhcp_settings_subnetMask']]); + $partialAccounts[$i]['dhcpNetMask'][0] = $mask; + // description + if (isset($rawAccounts[$i][$ids['dhcp_settings_description']]) && ($rawAccounts[$i][$ids['dhcp_settings_description']] != '')) { + $partialAccounts[$i]['dhcpComments'][0] = $rawAccounts[$i][$ids['dhcp_settings_description']]; + } + } + return $messages; + } + + +} + +?> diff --git a/lam/lib/modules/eduPerson.inc b/lam/lib/modules/eduPerson.inc new file mode 100644 index 00000000..120bf3ea --- /dev/null +++ b/lam/lib/modules/eduPerson.inc @@ -0,0 +1,597 @@ +autoAddObjectClasses = false; + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('user')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'eduPerson.png'; + // alias name + $return["alias"] = _("EDU person"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('eduPerson'); + // managed attributes + $return['attributes'] = array('eduPersonAffiliation', 'eduPersonNickname', + 'eduPersonOrgDN', 'eduPersonOrgUnitDN', + 'eduPersonPrimaryAffiliation', 'eduPersonPrincipalName', + 'eduPersonEntitlement', 'eduPersonPrimaryOrgUnitDN', + 'eduPersonScopedAffiliation', 'eduPersonAssurance'); + // RDN attribute + $return["RDN"] = array('eduPersonPrincipalName' => 'low'); + // help Entries + $return['help'] = array( + 'primaryAffiliation' => array( + "Headline" => _("Primary affiliation"), 'attr' => 'eduPersonPrimaryAffiliation', + "Text" => _("Specifies the person's primary relationship to the institution in broad categories such as student, faculty, staff, alum, etc.") + ), + 'scopedAffiliation' => array( + "Headline" => _("Scoped affiliations"), 'attr' => 'eduPersonScopedAffiliation', + "Text" => _("Specifies the person's affiliation within a particular security domain in broad categories such as student, faculty, staff, alum, etc.") + ), + 'scopedAffiliationUpload' => array( + "Headline" => _("Scoped affiliations"), 'attr' => 'eduPersonScopedAffiliation', + "Text" => _("Specifies the person's affiliation within a particular security domain in broad categories such as student, faculty, staff, alum, etc.") . " " . + _('Multiple values are separated by comma.') + ), + 'eduPersonNickname' => array( + "Headline" => _("Nick names"), 'attr' => 'eduPersonNickname', + "Text" => _("This is a list of nick names for this user.") + ), + 'affiliation' => array( + "Headline" => _("Affiliations"), 'attr' => 'eduPersonAffiliation', + "Text" => _("Specifies the person's relationships to the institution in broad categories such as student, faculty, staff, alum, etc.") + ), + 'affiliationUpload' => array( + "Headline" => _("Affiliations"), 'attr' => 'eduPersonAffiliation', + "Text" => _("Specifies the person's relationships to the institution in broad categories such as student, faculty, staff, alum, etc.") . " " . + _('Multiple values are separated by comma.') + ), + 'eduPersonPrincipalName' => array( + "Headline" => _("Principal name"), 'attr' => 'eduPersonPrincipalName', + "Text" => _("The \"NetID\" of the person for the purposes of inter-institutional authentication. It should be represented in the form \"user@scope\" where scope defines a local security domain.") + ), + 'eduPersonEntitlement' => array( + "Headline" => _("Entitlements"), 'attr' => 'eduPersonEntitlement', + "Text" => _("URI (either URN or URL) that indicates a set of rights to specific resources.") + ), + 'entitlementUpload' => array( + "Headline" => _("Entitlements"), 'attr' => 'eduPersonEntitlement', + "Text" => _("URI (either URN or URL) that indicates a set of rights to specific resources.") . " " . _('Multiple values are separated by comma.') + ), + 'eduPersonOrgDN' => array( + "Headline" => _("Organisation"), 'attr' => 'eduPersonOrgDN', + "Text" => _("The DN of the directory entry representing the institution with which the person is associated.") + ), + 'eduPersonPrimaryOrgUnitDN' => array( + "Headline" => _("Primary organisational unit"), 'attr' => 'eduPersonPrimaryOrgUnitDN', + "Text" => _("The DN of the directory entry representing the person's primary organisational unit.") + ), + 'eduPersonOrgUnitDN' => array( + "Headline" => _("Organisational units"), 'attr' => 'eduPersonOrgUnitDN', + "Text" => _("The DNs of the directory entries representing the person's organisational units.") + ), + 'orgUnitDNUpload' => array( + "Headline" => _("Organisational units"), 'attr' => 'eduPersonOrgUnitDN', + "Text" => _("The DNs of the directory entries representing the person's organisational units.") . ' ' . _('Multiple values are separated by comma.') + ), + 'eduPersonAssurance' => array( + "Headline" => _('Assurance profiles'), 'attr' => 'eduPersonAssurance', + "Text" => _('Assurance profiles are the set of standards that are met by an identity assertion.') + ), + 'eduPersonAssuranceUpload' => array( + "Headline" => _('Assurance profiles'), 'attr' => 'eduPersonAssurance', + "Text" => _('Assurance profiles are the set of standards that are met by an identity assertion.') . " " . _('Multiple values are separated by comma.') + ), + 'autoAdd' => array( + "Headline" => _("Automatically add this extension"), + "Text" => _("This will enable the extension automatically if this profile is loaded.") + )); + // profile options + $profileContainer = new htmlTable(); + $profileContainer->addElement(new htmlTableExtendedInputCheckbox('eduPerson_addExt', false, _('Automatically add this extension'), 'autoAdd')); + $return['profile_options'] = $profileContainer; + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'eduPerson_principalName', + 'description' => _('Principal name'), + 'help' => 'eduPersonPrincipalName', + 'example' => _('user@company.com'), + 'unique' => 'true' + ), + array( + 'name' => 'eduPerson_primaryAffiliation', + 'description' => _('Primary affiliation'), + 'help' => 'primaryAffiliation', + 'example' => 'student', + 'values' => implode(", ", $this->affiliationTypes) + ), + array( + 'name' => 'eduPerson_scopedAffiliation', + 'description' => _('Scoped affiliations'), + 'help' => 'scopedAffiliationUpload', + 'example' => 'student@domain, student@domain2' + ), + array( + 'name' => 'eduPerson_affiliation', + 'description' => _('Affiliations'), + 'help' => 'affiliationUpload', + 'example' => 'student, employee', + 'values' => implode(", ", $this->affiliationTypes) + ), + array( + 'name' => 'eduPerson_nickname', + 'description' => _('Nick names'), + 'help' => 'eduPersonNickname', + 'example' => _('Steve, Stevo') + ), + array( + 'name' => 'eduPerson_entitlement', + 'description' => _('Entitlements'), + 'help' => 'entitlementUpload', + 'example' => 'http://xstor.com/contracts/HEd123' + ), + array( + 'name' => 'eduPerson_orgDN', + 'description' => _('Organisation'), + 'help' => 'eduPersonOrgDN', + 'example' => _('ou=accounts,dc=yourdomain,dc=org') + ), + array( + 'name' => 'eduPerson_primaryOrgUnitDN', + 'description' => _('Primary organisational unit'), + 'help' => 'eduPersonPrimaryOrgUnitDN', + 'example' => _('ou=accounts,dc=yourdomain,dc=org') + ), + array( + 'name' => 'eduPerson_orgUnitDN', + 'description' => _('Organisational units'), + 'help' => 'orgUnitDNUpload', + 'example' => _('ou=accounts,dc=yourdomain,dc=org') + ), + array( + 'name' => 'eduPerson_assurance', + 'description' => _('Assurance profiles'), + 'help' => 'eduPersonAssuranceUpload', + 'example' => 'urn:mace:incommon:IAQ:sample, http://idm.example.org/LOA#sample' + ), + ); + // available PDF fields + $return['PDF_fields'] = array( + 'affiliation' => _('Affiliations'), + 'nickname' => _('Nick names'), + 'orgDN' => _('Organisation'), + 'orgUnitDN' => _('Organisational units'), + 'primaryAffiliation' => _('Primary affiliation'), + 'principalName' => _('Principal name'), + 'entitlement' => _('Entitlements'), + 'primaryOrgUnitDN' => _('Primary organisational unit'), + 'scopedAffiliation' => _('Scoped affiliations'), + 'eduPersonAssurance' => _('Assurance profiles'), + ); + return $return; + } + + /** + * This function fills the error message array with messages + */ + function load_Messages() { + $this->messages['eduPersonPrincipalName'][0] = array('ERROR', _('Principal name is invalid!')); + $this->messages['eduPersonPrincipalName'][1] = array('ERROR', _('Account %s:') . ' eduPerson_principalName', _('Principal name is invalid!')); + $this->messages['eduPersonOrgDN'][0] = array('ERROR', _('Please enter a valid DN in the field:') . ' ' . _("Organisation")); + $this->messages['eduPersonOrgDN'][1] = array('ERROR', _('Account %s:') . ' eduPerson_orgDN', _('This is not a valid DN!')); + $this->messages['eduPersonPrimaryOrgUnitDN'][0] = array('ERROR', _('Please enter a valid DN in the field:') . ' ' . _("Primary organisational unit")); + $this->messages['eduPersonPrimaryOrgUnitDN'][1] = array('ERROR', _('Account %s:') . ' eduPerson_primaryOrgUnitDN', _('This is not a valid DN!')); + $this->messages['eduPersonOrgUnitDN'][0] = array('ERROR', _('Organisational units contains an invalid entry.')); + $this->messages['eduPersonOrgUnitDN'][1] = array('ERROR', _('Account %s:') . ' eduPerson_orgUnitDN', _('This is not a valid list of DNs!')); + $this->messages['primaryAffiliation'][0] = array('ERROR', _('Account %s:') . ' eduPerson_primaryAffiliation', _('Please enter a valid primary affiliation.')); + $this->messages['scopedAffiliation'][0] = array('ERROR', _('Account %s:') . ' eduPerson_scopedAffiliation', _('Please enter a valid scoped affiliation.')); + $this->messages['affiliation'][0] = array('ERROR', _('Account %s:') . ' eduPerson_affiliation', _('Please enter a valid list of affiliations.')); + } + + /** + * This functions return true if all needed settings are done. + * + * @return boolean true, if all is ok + */ + function module_complete() { + if (($this->getAccountContainer()->rdn == 'eduPersonPrincipalName') && !isset($this->attributes['eduPersonPrincipalName'][0])) { + return false; + } + return true; + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $return = new htmlTable(); + if (in_array('eduPerson', $this->attributes['objectClass'])) { + // principal name + $this->addSimpleInputTextField($return, 'eduPersonPrincipalName', _('Principal name')); + // primary affiliation + $primaryAffiliation = array(); + if (isset($this->attributes['eduPersonPrimaryAffiliation'][0])) { + $primaryAffiliation = array($this->attributes['eduPersonPrimaryAffiliation'][0]); + } + $return->addElement(new htmlTableExtendedSelect('primaryAffiliation', $this->affiliationTypes, $primaryAffiliation, _('Primary affiliation'), 'primaryAffiliation'), true); + // scoped affiliations + $scopedAffiliationLabel = new htmlOutputText(_('Scoped affiliations')); + $scopedAffiliationLabel->alignment = htmlElement::ALIGN_TOP; + $return->addElement($scopedAffiliationLabel); + $scopedAffiliations = new htmlTable(); + if (isset($this->attributes['eduPersonScopedAffiliation'][0])) { + for ($i = 0; $i < sizeof($this->attributes['eduPersonScopedAffiliation']); $i++) { + $parts = explode('@', $this->attributes['eduPersonScopedAffiliation'][$i]); + $scopedAffiliationPrefix = array($parts[0]); + $scopedAffiliation = substr($this->attributes['eduPersonScopedAffiliation'][$i], strlen($parts[0]) + 1); + $scopedAffiliationContainer = new htmlGroup(); + $scopedAffiliationContainer->addElement(new htmlSelect('scopedAffiliationPrefix' . $i, $this->affiliationTypes, $scopedAffiliationPrefix)); + $scopedAffiliationContainer->addElement(new htmlOutputText('@')); + $scopedAffiliationContainer->addElement(new htmlInputField('scopedAffiliation' . $i, $scopedAffiliation)); + $scopedAffiliationContainer->addElement(new htmlButton('deleduPersonScopedAffiliation' . $i, 'del.png', true)); + if ($i == (sizeof($this->attributes['eduPersonScopedAffiliation']) - 1)) { + $scopedAffiliationContainer->addElement(new htmlButton('addeduPersonScopedAffiliation', 'add.png', true)); + } + $scopedAffiliations->addElement($scopedAffiliationContainer, true); + } + } + else { + $scopedAffiliationContainer = new htmlGroup(); + $scopedAffiliationContainer->addElement(new htmlOutputText('-')); + $scopedAffiliationContainer->addElement(new htmlSpacer('10px', null)); + $scopedAffiliationContainer->addElement(new htmlButton('addeduPersonScopedAffiliation', 'add.png', true)); + $scopedAffiliations->addElement($scopedAffiliationContainer); + } + $return->addElement($scopedAffiliations); + $scopedAffiliationHelp = new htmlHelpLink('scopedAffiliation'); + $scopedAffiliationHelp->alignment = htmlElement::ALIGN_TOP; + $return->addElement($scopedAffiliationHelp, true); + // affiliations + $affiliations = new htmlTable(); + if (isset($this->attributes['eduPersonAffiliation'][0])) { + for ($i = 0; $i < sizeof($this->attributes['eduPersonAffiliation']); $i++) { + $affiliations->addElement(new htmlSelect('affiliation' . $i, $this->affiliationTypes, array($this->attributes['eduPersonAffiliation'][$i]))); + $affiliationButton = new htmlButton('delAffiliation' . $i, 'del.png', true); + $affiliations->addElement($affiliationButton, true); + } + } + else { + $affiliations->addElement(new htmlOutputText('-'), true); + } + $affiliationLabel = new htmlOutputText(_('Affiliations')); + $affiliationLabel->alignment = htmlElement::ALIGN_TOP; + $return->addElement($affiliationLabel); + $return->addElement($affiliations); + $affiliationHelp = new htmlHelpLink('affiliation'); + $affiliationHelp->alignment = htmlElement::ALIGN_TOP; + $return->addElement($affiliationHelp, true); + $return->addElement(new htmlOutputText('')); + $newAffiliationContainer = new htmlTable(); + $newAffiliationContainer->addElement(new htmlSelect('affiliation', $this->affiliationTypes)); + $newAffiliationContainer->addElement(new htmlButton('newAffiliation', 'add.png', true)); + $return->addElement($newAffiliationContainer); + $return->addElement(new htmlOutputText(''), true); + // nick names + $this->addMultiValueInputTextField($return, 'eduPersonNickname', _('Nick names')); + // entitlements + $this->addMultiValueInputTextField($return, 'eduPersonEntitlement', _('Entitlements')); + // org DN + $this->addSimpleInputTextField($return, 'eduPersonOrgDN', _('Organisation')); + // primary OU DN + $this->addSimpleInputTextField($return, 'eduPersonPrimaryOrgUnitDN', _('Primary organisational unit')); + // OUs + $this->addMultiValueInputTextField($return, 'eduPersonOrgUnitDN', _('Organisational units')); + // assurance profiles + $this->addMultiValueInputTextField($return, 'eduPersonAssurance', _('Assurance profiles')); + // remove button + $return->addElement(new htmlSpacer(null, '10px'), true); + $addButton = new htmlButton('remObjectClass', _('Remove EDU person extension')); + $addButton->colspan = 3; + $return->addElement($addButton); + } + else { + $return->addElement(new htmlButton('addObjectClass', _('Add EDU person extension'))); + } + return $return; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + if (isset($_POST['addObjectClass'])) { + $this->attributes['objectClass'][] = 'eduPerson'; + return array(); + } + elseif (isset($_POST['remObjectClass'])) { + $this->attributes['objectClass'] = array_delete(array('eduPerson'), $this->attributes['objectClass']); + for ($i = 0; $i < sizeof($this->meta['attributes']); $i++) { + if (isset($this->attributes[$this->meta['attributes'][$i]])) { + unset($this->attributes[$this->meta['attributes'][$i]]); + } + } + return array(); + } + if (!in_array('eduPerson', $this->attributes['objectClass'])) { + return array(); + } + $errors = array(); + // primary affiliation + $this->attributes['eduPersonPrimaryAffiliation'][0] = $_POST['primaryAffiliation']; + // scoped affiliations + $scopedAffiliationCounter = 0; + while (isset($_POST['scopedAffiliation' . $scopedAffiliationCounter])) { + $this->attributes['eduPersonScopedAffiliation'][$scopedAffiliationCounter] = $_POST['scopedAffiliationPrefix' . $scopedAffiliationCounter] . '@' . $_POST['scopedAffiliation' . $scopedAffiliationCounter]; + if (($_POST['scopedAffiliation' . $scopedAffiliationCounter] == '') || isset($_POST['deleduPersonScopedAffiliation' . $scopedAffiliationCounter])) { + unset($this->attributes['eduPersonScopedAffiliation'][$scopedAffiliationCounter]); + } + $scopedAffiliationCounter++; + } + if (isset($_POST['addeduPersonScopedAffiliation'])) { + $this->attributes['eduPersonScopedAffiliation'][] = ''; + } + $this->attributes['eduPersonScopedAffiliation'] = array_values(array_unique($this->attributes['eduPersonScopedAffiliation'])); + // principal name + $this->attributes['eduPersonPrincipalName'][0] = $_POST['eduPersonPrincipalName']; + if ($_POST['eduPersonPrincipalName'] != '') { + if (!preg_match('/^[0-9a-z_\\.@-]+$/i', $_POST['eduPersonPrincipalName'])) { + $errors[] = $this->messages['eduPersonPrincipalName'][0]; + } + } + // affiliations + $this->attributes['eduPersonAffiliation'] = array(); + $i = 0; + while (isset($_POST['affiliation' . $i])) { + if (!isset($_POST['delAffiliation' . $i]) && ($_POST['affiliation' . $i] != '')) { + $this->attributes['eduPersonAffiliation'][] = $_POST['affiliation' . $i]; + } + $i++; + } + if (isset($_POST['newAffiliation']) && ($_POST['affiliation'] != '')) { + $this->attributes['eduPersonAffiliation'][] = $_POST['affiliation']; + } + $this->attributes['eduPersonAffiliation'] = array_unique($this->attributes['eduPersonAffiliation']); + // nick names + $this->processMultiValueInputTextField('eduPersonNickname', $errors); + // entitlements + $this->processMultiValueInputTextField('eduPersonEntitlement', $errors); + // org DN + $this->attributes['eduPersonOrgDN'][0] = $_POST['eduPersonOrgDN']; + if ($_POST['eduPersonOrgDN'] != '') { + if (!get_preg($_POST['eduPersonOrgDN'], 'dn')) { + $errors[] = $this->messages['eduPersonOrgDN'][0]; + } + } + // primary OU + $this->attributes['eduPersonPrimaryOrgUnitDN'][0] = $_POST['eduPersonPrimaryOrgUnitDN']; + if ($_POST['eduPersonPrimaryOrgUnitDN'] != '') { + if (!get_preg($_POST['eduPersonPrimaryOrgUnitDN'], 'dn')) { + $errors[] = $this->messages['eduPersonPrimaryOrgUnitDN'][0]; + } + } + // OUs + $this->processMultiValueInputTextField('eduPersonOrgUnitDN', $errors, 'dn'); + // assurance profiles + $this->processMultiValueInputTextField('eduPersonAssurance', $errors); + return $errors; + } + + /** + * Loads the values of an account profile into internal variables. + * + * @param array $profile hash array with profile values (identifier => value) + */ + function load_profile($profile) { + parent::load_profile($profile); + // add extension + if (isset($profile['eduPerson_addExt'][0]) && ($profile['eduPerson_addExt'][0] == "true")) { + if (!in_array('eduPerson', $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = 'eduPerson'; + } + } + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array("eduPerson", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "eduPerson"; + // principal name + if ($rawAccounts[$i][$ids['eduPerson_principalName']] != "") { + if (!preg_match('/^[0-9a-z_\\.@-]+$/i', $rawAccounts[$i][$ids['eduPerson_principalName']])) { + $error = $this->messages['eduPersonPrincipalName'][1]; + array_push($error, $i); + $messages[] = $error; + } + else { + $partialAccounts[$i]['eduPersonPrincipalName'] = $rawAccounts[$i][$ids['eduPerson_principalName']]; + } + } + // primary affiliation + if ($rawAccounts[$i][$ids['eduPerson_primaryAffiliation']] != "") { + if (!in_array($rawAccounts[$i][$ids['eduPerson_primaryAffiliation']], $this->affiliationTypes)) { + $error = $this->messages['primaryAffiliation'][0]; + array_push($error, $i); + $messages[] = $error; + } + else { + $partialAccounts[$i]['eduPersonPrimaryAffiliation'] = $rawAccounts[$i][$ids['eduPerson_primaryAffiliation']]; + } + } + // scoped affiliations + if ($rawAccounts[$i][$ids['eduPerson_scopedAffiliation']] != "") { + $parts = explode(', ', $rawAccounts[$i][$ids['eduPerson_scopedAffiliation']]); + for ($a = 0; $a < sizeof($parts); $a++) { + $subparts = explode('@', $parts[$a]); + if (!in_array($subparts[0], $this->affiliationTypes)) { + $error = $this->messages['scopedAffiliation'][0]; + array_push($error, $i); + $messages[] = $error; + } + else { + $partialAccounts[$i]['eduPersonScopedAffiliation'] = $parts; + } + } + } + // affiliations + if ($rawAccounts[$i][$ids['eduPerson_affiliation']] != "") { + $parts = explode(', ', $rawAccounts[$i][$ids['eduPerson_affiliation']]); + $valid = true; + for ($a = 0; $a < sizeof($parts); $a++) { + if (!in_array($parts[$a], $this->affiliationTypes)) { + $valid = false; + $error = $this->messages['affiliation'][0]; + array_push($error, $i); + $messages[] = $error; + break; + } + } + if ($valid) { + $partialAccounts[$i]['eduPersonAffiliation'] = $parts; + } + } + // nick names + if ($rawAccounts[$i][$ids['eduPerson_nickname']] != "") { + $parts = explode(', ', $rawAccounts[$i][$ids['eduPerson_nickname']]); + $partialAccounts[$i]['eduPersonNickname'] = $parts; + } + // entitlements + if ($rawAccounts[$i][$ids['eduPerson_entitlement']] != "") { + $parts = explode(', ', $rawAccounts[$i][$ids['eduPerson_entitlement']]); + $partialAccounts[$i]['eduPersonEntitlement'] = $parts; + } + // organisation + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'eduPerson_orgDN', 'eduPersonOrgDN', + 'dn', $this->messages['eduPersonOrgDN'][1], $messages); + // primary OU + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'eduPerson_primaryOrgUnitDN', 'eduPersonPrimaryOrgUnitDN', + 'dn', $this->messages['eduPersonPrimaryOrgUnitDN'][1], $messages); + // OUs + if ($rawAccounts[$i][$ids['eduPerson_orgUnitDN']] != "") { + $parts = explode(', ', $rawAccounts[$i][$ids['eduPerson_orgUnitDN']]); + $valid = true; + for ($a = 0; $a < sizeof($parts); $a++) { + if (!get_preg($parts[$a], 'dn')) { + $valid = false; + $error = $this->messages['eduPersonOrgUnitDN'][1]; + array_push($error, $i); + $messages[] = $error; + break; + } + } + if ($valid) { + $partialAccounts[$i]['eduPersonOrgUnitDN'] = $parts; + } + } + // assurance profiles + if ($rawAccounts[$i][$ids['eduPerson_assurance']] != "") { + $parts = explode(', ', $rawAccounts[$i][$ids['eduPerson_assurance']]); + $partialAccounts[$i]['eduPersonAssurance'] = $parts; + } + } + return $messages; + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'primaryAffiliation', _('Primary affiliation'), 'eduPersonPrimaryAffiliation'); + $this->addSimplePDFField($return, 'scopedAffiliation', _('Scoped affiliations'), 'eduPersonScopedAffiliation'); + $this->addSimplePDFField($return, 'principalName', _('Principal name'), 'eduPersonPrincipalName'); + $this->addSimplePDFField($return, 'nickname', _('Nick names'), 'eduPersonNickname'); + $this->addSimplePDFField($return, 'affiliation', _('Affiliations'), 'eduPersonAffiliation'); + $this->addSimplePDFField($return, 'entitlement', _('Entitlements'), 'eduPersonEntitlement'); + $this->addSimplePDFField($return, 'orgDN', _('Organisation'), 'eduPersonOrgDN'); + $this->addSimplePDFField($return, 'primaryOrgUnitDN', _('Primary organisational unit'), 'eduPersonPrimaryOrgUnitDN'); + $this->addSimplePDFField($return, 'orgUnitDN', _('Organisational units'), 'eduPersonOrgUnitDN'); + $this->addSimplePDFField($return, 'eduPersonAssurance', _('Assurance profiles'), 'eduPersonAssurance'); + return $return; + } + +} + + +?> diff --git a/lam/lib/modules/fixed_ip.inc b/lam/lib/modules/fixed_ip.inc new file mode 100644 index 00000000..dad8ce86 --- /dev/null +++ b/lam/lib/modules/fixed_ip.inc @@ -0,0 +1,861 @@ + ..., 'iphostnumber' => ..., 'macaddress' => ...)) */ + private $hostCache = null; + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('dhcp')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + public function get_metaData() { + $return = array(); + // alias name + $return["alias"] = _("Hosts"); + // this is a base module + $return["is_base"] = false; + // icon + $return['icon'] = 'computer.png'; + // RDN attribute + $return["RDN"] = array("cn" => "high"); + // LDAP filter + $return["ldap_filter"] = array(); + // module dependencies + $return['dependencies'] = array('depends' => array('dhcp_settings'), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array(); + // managed attributes + $return['attributes'] = array('dhcpOption'); + // help Entries + $return['help'] = array( + 'pc' => array( + "Headline" => _("PC name"), 'attr' => 'dhcpOption, host-name', + "Text" => _("The name of the PC.") + ), + 'mac' => array( + "Headline" => _("MAC address"), 'attr' => 'dhcpHWAddress', + "Text" => _("The MAC address of the PC. Example: 11:22:33:44:55:aa") + ), + 'ip' => array( + "Headline" => _("IP address"), 'attr' => 'dhcpStatements, fixed-address', + "Text" => _("The IP address of the PC.") + ), + 'description' => array( + "Headline" => _("Description"), 'attr' => 'dhcpComments', + "Text" => _("Optional description for the PC.") + ), + 'active' => array( + "Headline" => _("Active"), 'attr' => 'dhcpStatements, booting', + "Text" => _("Inactive hosts will not be able to get an address from the DHCP server.") + ), + ); + // available PDF fields + $return['PDF_fields'] = array('IPlist' => _('IP list')); + return $return; + } + + /** + * This function fills the error message array with messages. + */ + public function load_Messages() { + $this->messages['errors'][0] = array('ERROR', _('One or more errors occured. The invalid fields are marked.'), ''); + } + + /** + * Controls if the module button the account page is visible and activated. + * + * @return string status ("enabled", "disabled", "hidden") + */ + public function getButtonStatus() { + if ($this->getAccountContainer()->dn_orig!=$_SESSION['config']->get_suffix('dhcp')) { + return "enabled"; + } + else { + return "hidden"; + } + } + + /** + * + * Checked, if ips are overlapd. + * + * @param ip + * + * @return false, if overlapd, else true. + * + **/ + public function overlapd_ip($ip) { + if (in_array($ip, $this->overlapd)) { + return false; + } + + $this->overlapd[] = $ip; + return true; + } + + /** + * + * Reset the overlapd_range() function + * + **/ + public function reset_overlapd_ip() { + $this->overlapd = array(); + } + + /** + * + * Check, if a mac address is invalid + * @param mac adress + * + * @return true, if mac is invalid + **/ + public function check_mac($mac) { + $ex = explode(":", $mac); + $invalid = false; + if (count($ex)!=6) { + $invalid = true; + } + + foreach($ex AS $value) { + if (!preg_match("/[0-9a-fA-F][0-9a-fA-F]/", $value) || strlen($value)!="2") { + $invalid = true; + } + } + return $invalid; + } + + /** + * + * Adapt the fixed ip with the subnet. + * + * @return true, if ip were edit. + * + **/ + public function reload_ips() { + $ip_edit = false; // IPs were edited? + // Only run it, when ranges already exists: + if(is_array($this->fixed_ip)) { + $ex_subnet = explode(".", $this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes['cn'][0]); + foreach ($this->fixed_ip AS $id=>$arr) { + if (!empty($this->fixed_ip[$id]['ip']) && !range::check_subnet_range($this->fixed_ip[$id]['ip'], + $this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes['cn'][0], + $this->getAccountContainer()->getAccountModule('dhcp_settings')->getDHCPOption('subnet-mask'))) { + // Range anpassen: + $ex = explode(".", $this->fixed_ip[$id]['ip']); + $tmp = $this->fixed_ip[$id]['ip']; + $this->fixed_ip[$id]['ip'] = $ex_subnet['0'].".".$ex_subnet['1'].".".$ex_subnet['2'].".".$ex['3']; + if ($tmp!=$this->fixed_ip[$id]['ip']) + $ip_edit = true; + } + } + } + return $ip_edit; + } + + /** + * This function loads all needed LDAP attributes. + * + * @param array $attr list of attributes + */ + function load_attributes($attr) { + if ($this->getAccountContainer()->dn_orig!=$_SESSION['config']->get_suffix('dhcp')) { + $attributes = array('cn', 'dhcphwaddress', 'dhcpstatements', 'dhcpcomments'); + $entries = searchLDAP($this->getAccountContainer()->dn_orig, '(objectClass=dhcpHost)', $attributes); + for ($i = 0; $i < sizeof($entries); $i++) { + $dhcphwaddress = explode(" ", $entries[$i]['dhcphwaddress'][0]); + $dhcphwaddress = array_pop($dhcphwaddress); + $dhcpstatements = array(); + if (isset($entries[$i]['dhcpstatements'][0])) { + $dhcpstatements = $entries[$i]['dhcpstatements']; + } + $this->fixed_ip[$i]['cn'] = $entries[$i]['cn'][0]; + $this->fixed_ip[$i]['mac'] = $dhcphwaddress; + $this->fixed_ip[$i]['ip'] = self::extractIP($dhcpstatements); + $this->fixed_ip[$i]['active'] = self::isActive($dhcpstatements); + $this->fixed_ip[$i]['dhcpstatements'] = $dhcpstatements; + $description = ''; + if (isset($entries[$i]['dhcpcomments'][0])) { + $description = $entries[$i]['dhcpcomments'][0]; + } + $this->fixed_ip[$i]['description'] = $description; + + $this->orig_ips[$i]['cn'] = $entries[$i]['cn'][0]; + $this->orig_ips[$i]['mac'] = $dhcphwaddress; + $this->orig_ips[$i]['ip'] = self::extractIP($dhcpstatements); + $this->orig_ips[$i]['active'] = self::isActive($dhcpstatements); + $this->orig_ips[$i]['dhcpstatements'] = $dhcpstatements; + $this->orig_ips[$i]['description'] = $description; + } + $this->orderByIP(); + } + } + + /** + * Orders the host entries by IP address. + */ + private function orderByIP() { + // sort by IP + $order = array(); + foreach ($this->fixed_ip as $key => $value) { + $order[$key] = ''; + if (!empty($value['dhcpstatements'])) { + $order[$key] = fixed_ip::extractIP($value['dhcpstatements']); + } + } + natcasesort($order); + $newVal = array(); + foreach ($order as $index => $sortval) { + $newVal[] = $this->fixed_ip[$index]; + } + $this->fixed_ip = $newVal; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + public function process_attributes() { + $errors = array(); + if ($this->getAccountContainer()->dn_orig!=$_SESSION['config']->get_suffix('dhcp')) { + $this->processed = true; + + $this->reset_overlapd_ip(); + + if ($this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes['cn'][0]!="") { + + $error = false; // errors by process_attributes()? + $pcs = array(); + foreach($this->fixed_ip AS $id=>$arr) { + + // Check if ip is to drop + if (isset($_POST['drop_ip_'.$id])) { + // Drop ip: + unset($this->fixed_ip[$id]); + continue; + } + + // MAC address + $_POST['mac_'.$id] = strtolower(trim($_POST['mac_'.$id])); + + $invalid = $this->check_mac($_POST['mac_'.$id]); + if ($invalid) { + $error = true; + } + $this->fixed_ip[$id]['mac'] = $_POST['mac_'.$id]; + + // description + if (!get_preg($_POST['description_'.$id], 'ascii')) { + $error = true; + } + $this->fixed_ip[$id]['description'] = $_POST['description_'.$id]; + + // active + $this->fixed_ip[$id]['active'] = (isset($_POST['active_' . $id]) && ($_POST['active_' . $id] == 'on')); + + // Ip address + if (!empty($_POST['ip_'.$id])) { + $_POST['ip_'.$id] = trim($_POST['ip_'.$id]); + } + if (!empty($_POST['ip_'.$id]) && !(check_ip($_POST['ip_'.$id]))) { + $error = true; + $this->fixed_ip[$id]['ip'] = $_POST['ip_'.$id]; + } + elseif (!empty($_POST['ip_'.$id]) && !$this->overlapd_ip($_POST['ip_'.$id])) { + $error = true; + $this->fixed_ip[$id]['ip'] = $_POST['ip_'.$id]; + } + else { + $this->fixed_ip[$id]['ip'] = $_POST['ip_'.$id]; + } + + // Is ip correct with subnet: + if (!empty($_POST['ip_'.$id]) && check_ip($_POST['ip_'.$id]) && !range::check_subnet_range($_POST['ip_'.$id], + $this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes['cn'][0], + $this->getAccountContainer()->getAccountModule('dhcp_settings')->getDHCPOption('subnet-mask'))) { + $error = true; + } + + // cn: + if (!empty($_POST['pc_'.$id])) $_POST['pc_'.$id] = trim($_POST['pc_'.$id]); + if (!empty($_POST['pc_'.$id])) { + + // Already use? + if (in_array($_POST['pc_'.$id], $pcs) ) { + $error = true; + } + else { + $pcs[] = $_POST['pc_'.$id]; + } + } + else { + $error = true; + } + if (strlen($_POST['pc_'.$id])>30) { + $error = true; + } + if (!preg_match("/^[A-Za-z0-9\\._-]*$/",$_POST['pc_'.$id])) { + $error = true; + } + $this->fixed_ip[$id]['cn'] = $_POST['pc_'.$id]; + } + if ($error) { + $errors[] = $this->messages['errors'][0]; + } + } + + // Add new IP + if (isset($_POST['add_ip']) || ($_POST['pc_add'] != '') || ($_POST['mac_add'] != '')) { + // Add IP: + $active = (isset($_POST['active_add']) && ($_POST['active_add'] == 'on')); + $dhcpstatements = array(); + $this->setActive($dhcpstatements, $active); + $this->setIP($dhcpstatements, $_POST['ip_add']); + $this->fixed_ip[] = array( + 'cn' => $_POST['pc_add'], + 'mac' => $_POST['mac_add'], + 'description' => $_POST['description_add'], + 'ip' => $_POST['ip_add'], + 'dhcpstatements' => $dhcpstatements, + 'active' => $active, + ); + $this->orderByIP(); + } + } + + return $errors; + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + public function display_html_attributes() { + $return = new htmlTable(); + if ($this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes['cn'][0]=="") { + $return->addElement(new htmlStatusMessage('ERROR', _("Please fill out the DHCP settings first.")), true); + return $return; + } + else { + $this->initCache(); + // auto-completion for host names + $autoNames = array(); + if (!empty($this->hostCache) && (sizeof($this->hostCache) < 200)) { + foreach ($this->hostCache as $index => $attrs) { + if (!empty($attrs['cn'][0])) { + $autoNames[] = $attrs['cn'][0]; + } + } + $autoNames = array_values(array_unique($autoNames)); + } + // caption + $ipContainer = new htmlTable(); + $ipContainer->addElement(new htmlOutputText(_('IP address'))); + $ipContainer->addElement(new htmlHelpLink('ip')); + $return->addElement($ipContainer); + $pcContainer = new htmlTable(); + $pcContainer->addElement(new htmlOutputText(_('PC name'), true, true)); + $pcContainer->addElement(new htmlHelpLink('pc')); + $return->addElement($pcContainer); + $macContainer = new htmlTable(); + $macContainer->addElement(new htmlOutputText(_('MAC address'), true, true)); + $macContainer->addElement(new htmlHelpLink('mac')); + $return->addElement($macContainer); + $commentContainer = new htmlTable(); + $commentContainer->addElement(new htmlOutputText(_('Description'), true)); + $commentContainer->addElement(new htmlHelpLink('description')); + $return->addElement($commentContainer); + $activeContainer = new htmlTable(); + $activeContainer->colspan = 2; + $activeContainer->addElement(new htmlOutputText(_('Active'))); + $activeContainer->addElement(new htmlHelpLink('active')); + $return->addElement($activeContainer, true); + // Reset oberlaped ips + $this->reset_overlapd_ip(); + + // If $ranges is not a array, then create one: + if (!is_array($this->fixed_ip)) { + $this->fixed_ip = array(); + } + $pcs = array(); + foreach($this->fixed_ip AS $id=>$arr) { + // pc name + $pcError = ""; + if (!$this->processed) { + $pcError = ""; + } + elseif (strlen($this->fixed_ip[$id]['cn'])>20) { + $pcError = _("The PC name may not be longer than 20 characters."); + } + elseif (strlen($this->fixed_ip[$id]['cn'])<2) { + $pcError = _("The PC name needs to be at least 2 characters long."); + } + elseif (in_array($this->fixed_ip[$id]['cn'], $pcs) ) { + $pcError = _("This PC name already exists."); + } + elseif (isset($_POST['pc_'.$id]) && !preg_match("/^[A-Za-z0-9\\._-]*$/", $_POST['pc_'.$id])) { + $pcError = _("The PC name may only contain A-Z, a-z and 0-9."); + } + $pcs[] = $this->fixed_ip[$id]['cn']; + + // MAC address + $macError = ""; + if (!$this->processed) { + $macError = ""; + } + elseif ($this->check_mac($this->fixed_ip[$id]['mac'])) { + $macError = _("Invalid MAC address."); + } + + // descripton + $descriptionError = ""; + if (!$this->processed) { + $descriptionError = ""; + } + elseif (!get_preg($this->fixed_ip[$id]['description'], 'ascii')) { + $descriptionError = _("Invalid description."); + } + + // fixed ip + $ipError = ""; + if (!$this->processed || ($this->fixed_ip[$id]['ip'] == '')) { + $ipError = ""; + } + elseif (!check_ip($this->fixed_ip[$id]['ip'])) { + $ipError = _("The IP address is invalid."); + } + elseif (!range::check_subnet_range($this->fixed_ip[$id]['ip'], + $this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes['cn'][0], + $this->getAccountContainer()->getAccountModule('dhcp_settings')->getDHCPOption('subnet-mask'))) { + $ipError = _("The IP address does not match the subnet."); + } + elseif (!$this->overlapd_ip($this->fixed_ip[$id]['ip'])) { + $ipError = _("The IP address is already in use."); + } + $error = ''; + if ($pcError != '') { + $error .= ' ' . $pcError; + } + if ($macError != '') { + $error .= ' ' . $macError; + } + if ($ipError != '') { + $error .= ' ' . $ipError; + } + if ($descriptionError != '') { + $error .= ' ' . $descriptionError; + } + $return->addElement(new htmlInputField('ip_'.$id, $this->fixed_ip[$id]['ip'], 20)); + $pcInput = new htmlInputField('pc_'.$id, $this->fixed_ip[$id]['cn'], 20); + if (!empty($autoNames)) { + $pcInput->enableAutocompletion($autoNames); + } + $return->addElement($pcInput); + $return->addElement(new htmlInputField('mac_'.$id, $this->fixed_ip[$id]['mac'], 20)); + $return->addElement(new htmlInputField('description_'.$id, $this->fixed_ip[$id]['description'], 20)); + $return->addElement(new htmlInputCheckbox('active_'.$id, $this->fixed_ip[$id]['active'])); + $return->addElement(new htmlButton('drop_ip_'.$id, 'del.png', true)); + $return->addElement(new htmlOutputText($error), true); + } + $return->addElement(new htmlSpacer(null, '10px'), true); + // add host + $return->addElement(new htmlInputField('ip_add', '', 20)); + $newPCInput = new htmlInputField('pc_add', '', 20); + if (!empty($autoNames)) { + $newPCInput->enableAutocompletion($autoNames); + } + $return->addElement($newPCInput); + $return->addElement(new htmlInputField('mac_add', '', 20)); + $return->addElement(new htmlInputField('description_add', '', 20)); + $return->addElement(new htmlInputCheckbox('active_add', true)); + $return->addElement(new htmlButton('add_ip', 'add.png', true), true); + + // add existing host entry + if (!empty($this->hostCache)) { + $return->addVerticalSpace('20px'); + $addHostButton = new htmlAccountPageButton(get_class($this), 'addHost', 'add', _('Add existing host')); + $addHostButton->setIconClass('createButton'); + $return->addElement($addHostButton , true); + } + } + return $return; + } + + /** + * Returns the HTML meta data for the add host page. + * + * @return htmlElement HTML meta data + */ + public function display_html_addHost() { + $return = new htmlTable(); + $this->initCache(); + $hostNames = array(); + $spacer = '####'; + foreach ($this->hostCache as $host) { + if (!empty($host['cn'][0])) { + $val = $host['cn'][0]; + if (!empty($host['iphostnumber'][0])) { + $val .= $spacer . $host['iphostnumber'][0]; + } + else { + $val .= $spacer; + } + if (!empty($host['macaddress'][0])) { + $val .= $spacer . $host['macaddress'][0]; + } + else { + $val .= $spacer; + } + $hostNames[$host['cn'][0]] = $val; + } + } + $select = new htmlTableExtendedSelect('host', $hostNames, array(), _('Host')); + $select->setHasDescriptiveElements(true); + $return->addElement($select, true); + $return->addVerticalSpace('20px'); + $buttonContainer = new htmlTable(); + $buttonContainer->colspan = 3; + $buttonContainer->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'addHost', _('Add'))); + $buttonContainer->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'cancel', _('Cancel'))); + $return->addElement($buttonContainer, true); + return $return; + } + + /** + * Processes user input of the add host page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + public function process_addHost() { + $errors = array(); + if (isset($_POST['form_subpage_fixed_ip_attributes_addHost'])) { + $val = explode('####', $_POST['host']); + $dhcpstatements = array(); + $this->setActive($dhcpstatements, true); + $this->setIP($dhcpstatements, $val[1]); + $this->fixed_ip[] = array( + 'cn' => $val[0], + 'mac' => $val[2], + 'description' => '', + 'ip' => $val[1], + 'dhcpstatements' => $dhcpstatements, + 'active' => true, + ); + $this->orderByIP(); + } + return $errors; + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + public function save_attributes() { + + } + + /** + * This function is overwritten because the fixed IPs are set after the ldap_add command. + * + * @see baseModule::postModifyActions() + * + * @param boolean $newAccount + * @param array $attributes LDAP attributes of this entry + * @return array array which contains status messages. Each entry is an array containing the status message parameters. + */ + public function postModifyActions($newAccount, $attributes) { + if ($this->getAccountContainer()->dn_orig!=$_SESSION['config']->get_suffix('dhcp')) { + $ldapSuffix = ',cn=' . $this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes['cn'][0] . ',' . $_SESSION['config']->get_suffix('dhcp'); + $add = array(); + $mod = array(); // DN => array(attr => values) + $delete = array(); + // Which dns are to delete and to add + foreach($this->orig_ips AS $id => $arr) { + // Exist cn still? + $in_arr = false; + foreach($this->fixed_ip AS $idB => $arr) { + if ($this->orig_ips[$id]['cn'] == $this->fixed_ip[$idB]['cn']) { + $in_arr = true; + // check if IP changed + if($this->orig_ips[$id]['ip'] != $this->fixed_ip[$idB]['ip']) { + $this->setIP($this->fixed_ip[$idB]['dhcpstatements'], $this->fixed_ip[$idB]['ip']); + $mod['cn=' . $this->orig_ips[$id]['cn'] . $ldapSuffix]['dhcpstatements'] = $this->fixed_ip[$idB]['dhcpstatements']; + } + // check if active changed + if($this->orig_ips[$id]['active'] != $this->fixed_ip[$idB]['active']) { + $this->setActive($this->fixed_ip[$idB]['dhcpstatements'], $this->fixed_ip[$idB]['active']); + $mod['cn=' . $this->orig_ips[$id]['cn'] . $ldapSuffix]['dhcpstatements'] = $this->fixed_ip[$idB]['dhcpstatements']; + } + // check if MAC changed + if($this->orig_ips[$id]['mac'] != $this->fixed_ip[$idB]['mac']) { + $mod['cn=' . $this->orig_ips[$id]['cn'] . $ldapSuffix]['dhcpHWAddress'] = array('ethernet ' . $this->fixed_ip[$idB]['mac']); + } + // check if description changed + if($this->orig_ips[$id]['description'] != $this->fixed_ip[$idB]['description']) { + $mod['cn=' . $this->orig_ips[$id]['cn'] . $ldapSuffix]['dhcpComments'][] = $this->fixed_ip[$idB]['description']; + } + break; + } + } + if (!$in_arr) { + $delete[] = $this->orig_ips[$id]['cn']; + } + } + + if (!is_array($this->fixed_ip)) { + $this->fixed_ip = array(); + } + // Which entrys are new: + foreach($this->fixed_ip AS $id => $arr) { + $in_arr = false; + foreach($this->orig_ips AS $idB => $arr) { + if ($this->orig_ips[$idB]['cn'] == $this->fixed_ip[$id]['cn']) { + $in_arr = true; + } + } + if (!$in_arr) { + $add[] = $this->fixed_ip[$id]; + } + } + + foreach($delete AS $cn) { + ldap_delete($_SESSION['ldap']->server(), 'cn=' . $cn . $ldapSuffix); + } + + foreach($add AS $id => $arr) { + $attr = array(); + $attr['cn'] = $add[$id]['cn']; + $attr['objectClass'][0] = 'top'; + $attr['objectClass'][1] = 'dhcpHost'; + $attr['dhcpHWAddress'] = 'ethernet ' . $add[$id]['mac']; + if ($add[$id]['ip'] != '') { + $attr['dhcpStatements'][] = 'fixed-address ' . $add[$id]['ip']; + } + if ($add[$id]['active'] === false) { + $attr['dhcpStatements'][] = 'deny booting'; + } + $attr['dhcpOption'] = 'host-name "' . $add[$id]['cn'] . '"'; + if (!empty($arr['description'])) { + $attr['dhcpComments'][] = $arr['description']; + } + if ($attr['cn'] != "") { + ldap_add($_SESSION['ldap']->server(), 'cn=' . $add[$id]['cn'] . $ldapSuffix, $attr); + } + } + // entries to modify + foreach ($mod as $dn => $attrs) { + ldap_modify($_SESSION['ldap']->server(), $dn, $attrs); + } + } + return array(); + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $return = array(); + if (is_array($this->fixed_ip) && (sizeof($this->fixed_ip) > 0)) { + $return[get_class($this) . '_IPlist'] = array( + '' . + '' . _('PC name') . "" . + "" . _('IP address') . "" . + "" . _('MAC address') . '' . + "" . _('Active') . '' . + "" . _('Description') . '' . + ''); + for ($i = 0; $i < sizeof($this->fixed_ip); $i++) { + $name = $this->fixed_ip[$i]['cn']; + $mac = $this->fixed_ip[$i]['mac']; + $ip = $this->fixed_ip[$i]['ip']; + $active = _('yes'); + if (!$this->fixed_ip[$i]['active']) { + $active = _('no'); + } + $description = $this->fixed_ip[$i]['description']; + $return[get_class($this) . '_IPlist'][] = '' . + '' . $name . "" . + "" . $ip . " " . + "" . $mac . ''. + "" . $active . ''. + "" . $description . ' '. + ''; + } + } + return $return; + } + + /** + * Extracts the IP from a list of DHCP statements. + * + * @param array $dhcpStatements values of dhcpStatements attribute + */ + public static function extractIP($dhcpStatements) { + $return = null; + if (is_array($dhcpStatements)) { + for ($i = 0; $i < sizeof($dhcpStatements); $i++) { + if (strpos($dhcpStatements[$i], 'fixed-address ') === 0) { + $return = substr($dhcpStatements[$i], strlen('fixed-address') + 1); + break; + } + } + } + return $return; + } + + /** + * Sets the IP in a list of DHCP statements. + * + * @param array $dhcpStatements values of dhcpStatements attribute + * @param String $ip new IP + */ + private function setIP(&$dhcpStatements, $ip) { + for ($i = 0; $i < sizeof($dhcpStatements); $i++) { + if (strpos($dhcpStatements[$i], 'fixed-address ') === 0) { + unset($dhcpStatements[$i]); + $dhcpStatements = array_values($dhcpStatements); + } + } + if (!empty($ip)) { + $dhcpStatements[] = 'fixed-address ' . $ip; + } + } + + /** + * Returns if this host is active. + * + * @param array $dhcpStatements values of dhcpStatements attribute + */ + public static function isActive($dhcpStatements) { + if (is_array($dhcpStatements)) { + for ($i = 0; $i < sizeof($dhcpStatements); $i++) { + if (strpos($dhcpStatements[$i], ' booting') === (strlen($dhcpStatements[$i]) - strlen(' booting'))) { + $val = substr($dhcpStatements[$i], 0, (strlen($dhcpStatements[$i]) - strlen(' booting'))); + if ($val == 'deny') { + return false; + } + break; + } + } + } + return true; + } + + /** + * Sets if this host is active. + * + * @param array $dhcpStatements values of dhcpStatements attribute + * @param boolean $active is active + */ + private function setActive(&$dhcpStatements, $active) { + for ($i = 0; $i < sizeof($dhcpStatements); $i++) { + if (strpos($dhcpStatements[$i], ' booting') !== false) { + unset($dhcpStatements[$i]); + $dhcpStatements = array_values($dhcpStatements); + } + } + if ($active) { + $dhcpStatements[] = 'allow booting'; + } + else { + $dhcpStatements[] = 'deny booting'; + } + } + + /** + * Loads cached host data from LDAP. + */ + private function initCache() { + if ($this->hostCache != null) { + return; + } + $attrs = array('cn', 'iphostnumber', 'macaddress'); + $this->hostCache = array(); + $result = searchLDAPByAttribute('cn', '*', null, $attrs, array('host')); + foreach ($result as $attributes) { + $this->hostCache[] = $attributes; + } + } + +} + +?> diff --git a/lam/lib/modules/freeRadius.inc b/lam/lib/modules/freeRadius.inc new file mode 100644 index 00000000..25bb79db --- /dev/null +++ b/lam/lib/modules/freeRadius.inc @@ -0,0 +1,610 @@ + 'Jan', '02' => 'Feb', '03' => 'Mar', '04' => 'Apr', '05' => 'May', + '06' => 'Jun', '07' => 'Jul', '08' => 'Aug', '09' => 'Sep', '10' => 'Oct', '11' => 'Nov', '12' => 'Dec' + ); + + + /** + * Creates a new freeRadius object. + * + * @param string $scope account type (user, group, host) + */ + function __construct($scope) { + parent::__construct($scope); + $this->autoAddObjectClasses = false; + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('user')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'freeRadius.png'; + // alias name + $return["alias"] = _("FreeRadius"); + // module dependencies + $return['dependencies'] = array('depends' => array(array('posixAccount', 'inetOrgPerson')), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('radiusprofile'); + // managed attributes + $return['attributes'] = array('radiusFramedIPAddress', 'radiusFramedIPNetmask', 'radiusRealm', 'radiusGroupName', 'radiusExpiration', 'radiusIdleTimeout'); + // help Entries + $return['help'] = array( + 'radiusFramedIPAddress' => array( + "Headline" => _("IP address"), 'attr' => 'radiusFramedIPAddress', + "Text" => _("This is the IP address for the user (e.g. 123.123.123.123).") + ), + 'radiusFramedIPNetmask' => array( + "Headline" => _("Net mask"), 'attr' => 'radiusFramedIPNetmask', + "Text" => _("The net mask for the IP address.") + ), + 'radiusRealm' => array( + "Headline" => _("Realm"), 'attr' => 'radiusRealm', + "Text" => _("The Radius realm of this account.") + ), + 'radiusGroupName' => array( + "Headline" => _("Group names"), 'attr' => 'radiusGroupName', + "Text" => _("The group names for this account.") + ), + 'radiusGroupNameList' => array( + "Headline" => _("Group names"), 'attr' => 'radiusGroupName', + "Text" => _("The group names for this account.") . ' ' . _("Multiple values are separated by semicolon.") + ), + 'radiusExpiration' => array( + "Headline" => _("Expiration date"), 'attr' => 'radiusExpiration', + "Text" => _("The account will be locked after this date.") + ), + 'radiusIdleTimeout' => array( + "Headline" => _("Idle timeout"), 'attr' => 'radiusIdleTimeout', + "Text" => _("Specifies the maximum number of seconds that a connection can be idle before the session is terminated.") + ), + 'hiddenOptions' => array( + "Headline" => _("Hidden options"), + "Text" => _("The selected options will not be managed inside LAM. You can use this to reduce the number of displayed input fields.") + )); + // configuration settings + $configContainer = new htmlTable(); + $configContainerHead = new htmlTable(); + $configContainerHead->addElement(new htmlOutputText(_('Hidden options'))); + $configContainerHead->addElement(new htmlHelpLink('hiddenOptions')); + $configContainerOptions = new htmlTable(); + $configContainer->addElement($configContainerHead, true); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('freeRadius_hideRadiusFramedIPAddress', false, _('IP address'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('freeRadius_hideRadiusFramedIPNetmask', false, _('Net mask'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('freeRadius_hideRadiusRealm', false, _('Realm'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('freeRadius_hideRadiusGroupName', false, _('Group names'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('freeRadius_hideRadiusExpiration', false, _('Expiration date'), null, false)); + $configContainerOptions->addNewLine(); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('freeRadius_hideRadiusIdleTimeout', false, _('Idle timeout'), null, false)); + $configContainer->addElement($configContainerOptions, true); + $return['config_options']['all'] = $configContainer; + // profile settings + $profileElements = array(); + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusFramedIPNetmask')) { + $profileElements[] = new htmlTableExtendedInputField(_('Net mask'), 'freeRadius_radiusFramedIPNetmask', null, 'radiusFramedIPNetmask'); + $return['profile_checks']['freeRadius_radiusFramedIPNetmask'] = array( + 'type' => 'ext_preg', + 'regex' => 'ip', + 'error_message' => $this->messages['radiusFramedIPNetmask'][0]); + $return['profile_mappings']['freeRadius_radiusFramedIPNetmask'] = 'radiusFramedIPNetmask'; + } + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusRealm')) { + $profileElements[] = new htmlTableExtendedInputField(_('Realm'), 'freeRadius_radiusRealm', null, 'radiusRealm'); + $return['profile_checks']['freeRadius_radiusRealm'] = array( + 'type' => 'ext_preg', + 'regex' => 'DNSname', + 'error_message' => $this->messages['radiusRealm'][0]); + $return['profile_mappings']['freeRadius_radiusRealm'] = 'radiusRealm'; + } + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusGroupName')) { + $profileElements[] = new htmlTableExtendedInputField(_('Group names'), 'freeRadius_radiusGroupName', null, 'radiusGroupNameList'); + } + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusIdleTimeout')) { + $profileElements[] = new htmlTableExtendedInputField(_('Idle timeout'), 'freeRadius_radiusIdleTimeout', null, 'radiusIdleTimeout'); + $return['profile_checks']['freeRadius_radiusIdleTimeout'] = array( + 'type' => 'ext_preg', + 'regex' => 'digit', + 'error_message' => $this->messages['radiusIdleTimeout'][0]); + $return['profile_mappings']['freeRadius_radiusIdleTimeout'] = 'radiusIdleTimeout'; + } + if (sizeof($profileElements) > 0) { + $profileContainer = new htmlTable(); + for ($i = 0; $i < sizeof($profileElements); $i++) { + $profileContainer->addElement($profileElements[$i]); + $profileContainer->addNewLine(); + } + $return['profile_options'] = $profileContainer; + } + // upload fields + $return['upload_columns'] = array(); + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusRealm')) { + $return['upload_columns'][] = array( + 'name' => 'freeRadius_radiusRealm', + 'description' => _('Realm'), + 'help' => 'radiusRealm', + 'example' => _('company.com') + ); + } + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusGroupName')) { + $return['upload_columns'][] = array( + 'name' => 'freeRadius_radiusGroupName', + 'description' => _('Group names'), + 'help' => 'radiusGroupNameList', + 'example' => _('group01;group02') + ); + } + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusFramedIPAddress')) { + $return['upload_columns'][] = array( + 'name' => 'freeRadius_radiusFramedIPAddress', + 'description' => _('IP address'), + 'help' => 'radiusFramedIPAddress', + 'example' => '123.123.123.123', + ); + } + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusFramedIPNetmask')) { + $return['upload_columns'][] = array( + 'name' => 'freeRadius_radiusFramedIPNetmask', + 'description' => _('Net mask'), + 'help' => 'radiusFramedIPNetmask', + 'example' => '255.255.255.0' + ); + } + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusExpiration')) { + $return['upload_columns'][] = array( + 'name' => 'freeRadius_radiusExpiration', + 'description' => _('Expiration date'), + 'help' => 'radiusExpiration', + 'example' => '17.07.2017 00:00' + ); + } + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusIdleTimeout')) { + $return['upload_columns'][] = array( + 'name' => 'freeRadius_radiusIdleTimeout', + 'description' => _('Idle timeout'), + 'help' => 'radiusIdleTimeout', + 'example' => '3600' + ); + } + // available PDF fields + $return['PDF_fields'] = array(); + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusFramedIPAddress')) { + $return['PDF_fields']['radiusFramedIPAddress'] = _('IP address'); + } + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusFramedIPNetmask')) { + $return['PDF_fields']['radiusFramedIPNetmask'] = _('Net mask'); + } + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusRealm')) { + $return['PDF_fields']['radiusRealm'] = _('Realm'); + } + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusGroupName')) { + $return['PDF_fields']['radiusGroupName'] = _('Group names'); + } + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusExpiration')) { + $return['PDF_fields']['radiusExpiration'] = _('Expiration date'); + } + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusIdleTimeout')) { + $return['PDF_fields']['radiusIdleTimeout'] = _('Idle timeout'); + } + return $return; + } + + /** + * This function fills the error message array with messages + */ + function load_Messages() { + $this->messages['radiusFramedIPAddress'][0] = array('ERROR', _('The IP address is invalid.')); + $this->messages['radiusFramedIPAddress'][1] = array('ERROR', _('Account %s:') . ' freeRadius_radiusFramedIPAddress', _('The IP address is invalid.')); + $this->messages['radiusFramedIPNetmask'][0] = array('ERROR', _('The net mask is invalid.')); + $this->messages['radiusFramedIPNetmask'][1] = array('ERROR', _('Account %s:') . ' freeRadius_radiusFramedIPNetmask', _('The net mask is invalid.')); + $this->messages['radiusRealm'][0] = array('ERROR', _('Please enter a valid realm.')); + $this->messages['radiusRealm'][1] = array('ERROR', _('Account %s:') . ' freeRadius_radiusRealm', _('Please enter a valid realm.')); + $this->messages['radiusGroupName'][0] = array('ERROR', _('Please enter a valid list of group names.')); + $this->messages['radiusGroupName'][1] = array('ERROR', _('Account %s:') . ' freeRadius_radiusGroupName', _('Please enter a valid list of group names.')); + $this->messages['radiusExpiration'][0] = array('ERROR', _('The expiration date must be in format DD.MM.YYYY HH:MM.')); + $this->messages['radiusExpiration'][1] = array('ERROR', _('Account %s:') . ' freeRadius_radiusExpiration', _('The expiration date must be in format DD.MM.YYYY HH:MM.')); + $this->messages['radiusIdleTimeout'][0] = array('ERROR', _('Please enter a numeric value for the idle timeout.')); + $this->messages['radiusIdleTimeout'][1] = array('ERROR', _('Account %s:') . ' freeRadius_radiusIdleTimeout', _('Please enter a numeric value for the idle timeout.')); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $return = new htmlTable(); + if (in_array('radiusprofile', $this->attributes['objectClass'])) { + // realm + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusRealm')) { + $this->addSimpleInputTextField($return, 'radiusRealm', _('Realm')); + } + // group names + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusGroupName')) { + $this->addMultiValueInputTextField($return, 'radiusGroupName', _('Group names')); + } + // IP address + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusFramedIPAddress')) { + $this->addSimpleInputTextField($return, 'radiusFramedIPAddress', _('IP address')); + } + // net mask + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusFramedIPNetmask')) { + $this->addSimpleInputTextField($return, 'radiusFramedIPNetmask', _('Net mask')); + } + // idle timeout + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusIdleTimeout')) { + $radiusIdleTimeoutInput = $this->addSimpleInputTextField($return, 'radiusIdleTimeout', _('Idle timeout')); + $radiusIdleTimeoutInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + } + // expiration date + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusExpiration')) { + $radiusExpiration = '  -'; + if (isset($this->attributes['radiusExpiration'][0])) { + $radiusExpiration = $this->formatExpirationDate($this->attributes['radiusExpiration'][0]); + } + $return->addElement(new htmlOutputText('Expiration date')); + $radiusExpirationList = new htmlGroup(); + $radiusExpirationList->addElement(new htmlOutputText($radiusExpiration . '     ', false)); + $radiusExpirationList->addElement(new htmlAccountPageButton(get_class($this), 'expiration', 'change', _('Change'))); + $return->addElement($radiusExpirationList); + $return->addElement(new htmlHelpLink('radiusExpiration'), true); + } + // button to remove extension + $return->addElement(new htmlSpacer(null, '10px'), true); + $remButton = new htmlButton('remObjectClass', _('Remove FreeRadius extension')); + $remButton->colspan = 3; + $return->addElement($remButton); + } + else { + $return->addElement(new htmlButton('addObjectClass', _('Add FreeRadius extension'))); + } + return $return; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + if (isset($_POST['addObjectClass'])) { + $this->attributes['objectClass'][] = 'radiusprofile'; + return array(); + } + elseif (isset($_POST['remObjectClass'])) { + $this->attributes['objectClass'] = array_delete(array('radiusprofile'), $this->attributes['objectClass']); + for ($i = 0; $i < sizeof($this->meta['attributes']); $i++) { + if (isset($this->attributes[$this->meta['attributes'][$i]])) { + unset($this->attributes[$this->meta['attributes'][$i]]); + } + } + return array(); + } + // skip processing if extension is not active + if (!in_array('radiusprofile', $this->attributes['objectClass'])) { + return array(); + } + $errors = array(); + // IP address + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusFramedIPAddress')) { + $this->attributes['radiusFramedIPAddress'][0] = $_POST['radiusFramedIPAddress']; + if (($_POST['radiusFramedIPAddress'] != '') && !get_preg($_POST['radiusFramedIPAddress'], 'ip')) { + $errors[] = $this->messages['radiusFramedIPAddress'][0]; + } + } + // net mask + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusFramedIPNetmask')) { + $this->attributes['radiusFramedIPNetmask'][0] = $_POST['radiusFramedIPNetmask']; + if (($_POST['radiusFramedIPNetmask'] != '') && !get_preg($_POST['radiusFramedIPNetmask'], 'ip')) { + $errors[] = $this->messages['radiusFramedIPNetmask'][0]; + } + } + // realm + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusRealm')) { + $this->attributes['radiusRealm'][0] = $_POST['radiusRealm']; + if (($_POST['radiusRealm'] != '') && !get_preg($_POST['radiusRealm'], 'DNSname')) { + $errors[] = $this->messages['radiusRealm'][0]; + } + } + // group names + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusGroupName')) { + $this->processMultiValueInputTextField('radiusGroupName', $errors, 'groupname'); + } + // idle timeout + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusIdleTimeout')) { + $this->attributes['radiusIdleTimeout'][0] = $_POST['radiusIdleTimeout']; + if (($_POST['radiusIdleTimeout'] != '') && !get_preg($_POST['radiusIdleTimeout'], 'digit')) { + $errors[] = $this->messages['radiusIdleTimeout'][0]; + } + } + return $errors; + } + + /** + * This function will create the meta HTML code to show a page to change the expiration date. + * + * @return htmlElement meta HTML code + */ + function display_html_expiration() { + $return = new htmlTable(); + $attr = 'radiusExpiration'; + $text = _('Expiration date'); + $help = "radiusExpiration"; + $date = getdate(time() + 3600*24*365); + $year = $date['year']; + $month = str_pad($date['mon'], 2, '0', STR_PAD_LEFT); + $month = freeRadius::$monthList[$month]; + $day = $date['mday']; + $hour = '00'; + $minute = '00'; + if (isset($this->attributes[$attr][0]) && ($this->attributes[$attr][0] != '')) { + $parts = explode(' ', $this->attributes[$attr][0]); + $year = $parts[2]; + $month = $parts[1]; + $day = $parts[0]; + if (isset($parts[3])) { + $timeParts = explode(':', $parts[3]); + $hour = $timeParts[0]; + $minute = $timeParts[1]; + } + } + for ( $i=0; $i<=59; $i++ ) { + $minuteList[] = str_pad($i, 2, '0', STR_PAD_LEFT); + } + for ( $i=0; $i<=23; $i++ ) { + $hourList[] = str_pad($i, 2, '0', STR_PAD_LEFT); + } + for ( $i=1; $i<=31; $i++ ) { + $dayList[] = str_pad($i, 2, '0', STR_PAD_LEFT); + } + for ( $i=2003; $i<=2050; $i++ ) $yearList[] = $i; + $return->addElement(new htmlOutputText($text)); + $return->addElement(new htmlSelect('expire_day', $dayList, array($day))); + $monthSelect = new htmlSelect('expire_mon', freeRadius::$monthList, array($month)); + $monthSelect->setHasDescriptiveElements(true); + $return->addElement($monthSelect); + $return->addElement(new htmlSelect('expire_yea', $yearList, array($year))); + $return->addElement(new htmlSpacer('10px', null)); + $return->addElement(new htmlSelect('expire_hour', $hourList, array($hour))); + $return->addElement(new htmlSelect('expire_minute', $minuteList, array($minute))); + $return->addElement(new htmlHelpLink($help), true); + $return->addElement(new htmlSpacer(null, '10px'), true); + $buttons = new htmlTable(); + $buttons->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'change' . $attr, _('Change'))); + if (isset($this->attributes[$attr][0])) { + $buttons->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'del' . $attr, _('Remove'))); + } + $buttons->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'back' . $attr, _('Cancel'))); + $buttons->colspan = 6; + $return->addElement($buttons); + return $return; + } + + /** + * Processes user input of the time selection page. + * + * @return array list of info/error messages + */ + function process_expiration() { + $return = array(); + // find button name + $buttonName = ''; + $postKeys = array_keys($_POST); + for ($i = 0; $i < sizeof($postKeys); $i++) { + if (strpos($postKeys[$i], 'form_subpage_freeRadius_attributes_') !== false) { + $buttonName = $postKeys[$i]; + } + } + if (($buttonName == '') || (strpos($buttonName, '_back') !== false)) return array(); + // get attribute name + $attr = ''; + if (strpos($buttonName, 'radiusExpiration') !== false) { + $attr = 'radiusExpiration'; + } + if ($attr == '') return array(); + // determine action + if (strpos($buttonName, '_change') !== false) { + // set new expiration date + $this->attributes[$attr][0] = $_POST['expire_day'] . ' ' . $_POST['expire_mon'] . ' ' . $_POST['expire_yea'] . ' ' . $_POST['expire_hour'] . ':' . $_POST['expire_minute']; + } + elseif (strpos($buttonName, '_del') !== false) { + // remove attribute value + unset($this->attributes[$attr]); + } + return $return; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $errors = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array("radiusprofile", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "radiusprofile"; + // IP address + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'freeRadius_radiusFramedIPAddress', 'radiusFramedIPAddress', + 'ip', $this->messages['radiusFramedIPAddress'][1], $errors); + // net mask + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'freeRadius_radiusFramedIPNetmask', 'radiusFramedIPNetmask', + 'ip', $this->messages['radiusFramedIPNetmask'][1], $errors); + // realm + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'freeRadius_radiusRealm', 'radiusRealm', + 'DNSname', $this->messages['radiusRealm'][1], $errors); + // group names + if ($rawAccounts[$i][$ids['freeRadius_radiusGroupName']] != "") { + $groupList = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['freeRadius_radiusGroupName']]); + $partialAccounts[$i]['radiusGroupName'] = $groupList; + for ($x = 0; $x < sizeof($groupList); $x++) { + if (!get_preg($groupList[$x], 'groupname')) { + $errMsg = $this->messages['radiusGroupName'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + break; + } + } + } + // expiration date + if ($rawAccounts[$i][$ids['freeRadius_radiusExpiration']] != "") { + if (preg_match('/^[0-9]{1,2}.[0-9]{1,2}.[0-9]{4} [0-9]{1,2}:[0-9]{1,2}$/', $rawAccounts[$i][$ids['freeRadius_radiusExpiration']])) { + $dateParts = explode(' ', $rawAccounts[$i][$ids['freeRadius_radiusExpiration']]); + $dateParts1 = explode('.', $dateParts[0]); + $radiusExpiration = str_pad($dateParts1[0], 2, '0', STR_PAD_LEFT) . ' ' . freeRadius::$monthList[str_pad($dateParts1[1], 2, '0', STR_PAD_LEFT)] . ' ' . $dateParts1[2]; + $dateParts2 = explode(':', $dateParts[1]); + $radiusExpiration .= ' ' . str_pad($dateParts2[0], 2, '0', STR_PAD_LEFT) . ':' . str_pad($dateParts2[1], 2, '0', STR_PAD_LEFT); + $partialAccounts[$i]['radiusExpiration'] = $radiusExpiration; + } + else { + $errMsg = $this->messages['radiusExpiration'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + // idle timeout + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'freeRadius_radiusIdleTimeout', 'radiusIdleTimeout', + 'digit', $this->messages['radiusIdleTimeout'][1], $errors); + } + return $errors; + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'radiusFramedIPAddress', _('IP address')); + $this->addSimplePDFField($return, 'radiusFramedIPNetmask', _('Net mask')); + $this->addSimplePDFField($return, 'radiusRealm', _('Realm')); + $this->addSimplePDFField($return, 'radiusGroupName', _('Group names')); + $this->addSimplePDFField($return, 'radiusIdleTimeout', _('Idle timeout')); + if (isset($this->attributes['radiusExpiration'][0])) { + $return[get_class($this) . '_radiusExpiration'][0] = '' . _('Expiration date') . '' . $this->formatExpirationDate($this->attributes['radiusExpiration'][0]) . ''; + } + return $return; + } + + /** + * Checks input values of account profiles. + * + * @param array $options a hash array (name => value) containing the options + * @return array list of error messages (array(type, title, text)) to generate StatusMessages, if any + */ + function check_profileOptions($options) { + $messages = parent::check_profileOptions($options); + // group names + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusGroupName')) { + if (isset($options['freeRadius_radiusGroupName'][0]) && ($options['freeRadius_radiusGroupName'][0] != '')) { + $list = preg_split('/;[ ]*/', $options['freeRadius_radiusGroupName'][0]); + for ($i = 0; $i < sizeof($list); $i++) { + if (!get_preg($list[$i], 'groupname')) { + $messages[] = $this->messages['radiusGroupName'][0]; + break; + } + } + } + } + return $messages; + } + + /** + * Loads the values of an account profile into internal variables. + * + * @param array $profile hash array with profile values (identifier => value) + */ + function load_profile($profile) { + // profile mappings in meta data + parent::load_profile($profile); + if (!$this->isBooleanConfigOptionSet('freeRadius_hideRadiusGroupName')) { + // group names + if (isset($profile['freeRadius_radiusGroupName'][0]) && $profile['freeRadius_radiusGroupName'][0] != '') { + $this->attributes['radiusGroupName'] = preg_split('/;[ ]*/', $profile['freeRadius_radiusGroupName'][0]); + } + } + } + + /** + * Formats the expiration date attribute. + * + * @param String $date date value + */ + private function formatExpirationDate($date) { + if (is_null($date) || ($date == '')) { + return $date; + } + foreach (freeRadius::$monthList as $replace => $search) { + $date = str_replace($search, $replace, $date); + } + $dateParts = explode(' ', $date); + $date = $dateParts[0] . '.' . $dateParts[1] . '.' . $dateParts[2]; + if (isset($dateParts[3])) { + $date .= ' ' . $dateParts[3]; + } + return $date; + } + +} + + +?> diff --git a/lam/lib/modules/generalInformation.inc b/lam/lib/modules/generalInformation.inc new file mode 100644 index 00000000..f8220456 --- /dev/null +++ b/lam/lib/modules/generalInformation.inc @@ -0,0 +1,135 @@ +get_scope(), getTypes()); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + public function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'info.png'; + // alias name + $return["alias"] = _("General information"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed attributes + $return['attributes'] = array('creatorsName', 'createTimestamp', 'modifiersName', + 'modifyTimestamp', 'hasSubordinates', 'memberOf', 'pwdChangedTime'); + return $return; + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + public function display_html_attributes() { + $return = new htmlTable(); + // creation info + if (isset($this->attributes['creatorsName'][0])) { + $return->addElement(new htmlOutputText(_('Created by'))); + $return->addElement(new htmlOutputText(getAbstractDN($this->attributes['creatorsName'][0])), true); + } + if (isset($this->attributes['createTimestamp'][0])) { + $return->addElement(new htmlOutputText(_('Creation time'))); + $return->addElement(new htmlOutputText(formatLDAPTimestamp($this->attributes['createTimestamp'][0])), true); + } + if (isset($this->attributes['creatorsName'][0]) || isset($this->attributes['createTimestamp'][0])) { + $return->addElement(new htmlSpacer(null, '5px'), true); + } + // modification info + if (isset($this->attributes['modifiersName'][0])) { + $return->addElement(new htmlOutputText(_('Modified by'))); + $return->addElement(new htmlOutputText(getAbstractDN($this->attributes['modifiersName'][0])), true); + } + if (isset($this->attributes['modifyTimestamp'][0])) { + $return->addElement(new htmlOutputText(_('Modification time'))); + $return->addElement(new htmlOutputText(formatLDAPTimestamp($this->attributes['modifyTimestamp'][0])), true); + } + if (isset($this->attributes['modifiersName'][0]) || isset($this->attributes['modifyTimestamp'][0])) { + $return->addElement(new htmlSpacer(null, '5px'), true); + } + // children + if (isset($this->attributes['hasSubordinates'][0])) { + $hasChilds = _('no'); + if ($this->attributes['hasSubordinates'][0] == 'TRUE') { + $hasChilds = _('yes'); + } + $return->addElement(new htmlOutputText(_('Has subentries'))); + $return->addElement(new htmlOutputText($hasChilds), true); + $return->addElement(new htmlSpacer(null, '5px'), true); + } + // group memberships + if (isset($this->attributes['memberOf'][0])) { + $groupLabel = new htmlOutputText(_('Groups')); + $groupLabel->alignment = htmlElement::ALIGN_TOP; + $return->addElement($groupLabel); + $groups = new htmlTable(); + for ($i = 0; $i < sizeof($this->attributes['memberOf']); $i++) { + $groups->addElement(new htmlOutputText(getAbstractDN($this->attributes['memberOf'][$i])), true); + } + $return->addElement($groups); + } + return $return; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + public function process_attributes() { + return array(); + } + +} + + +?> diff --git a/lam/lib/modules/hostObject.inc b/lam/lib/modules/hostObject.inc new file mode 100644 index 00000000..e6cd87e1 --- /dev/null +++ b/lam/lib/modules/hostObject.inc @@ -0,0 +1,240 @@ +autoAddObjectClasses = false; + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('user')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'computer.png'; + // alias name + $return["alias"] = _("Hosts"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('hostObject'); + // managed attributes + $return['attributes'] = array('host'); + // help Entries + $return['help'] = array( + 'host' => array( + "Headline" => _("Hosts"), 'attr' => 'host', + "Text" => _("Here you can specify the list of host names where this account has login privileges. The wildcard \"*\" represents all hosts. You may also use \"!\" in front of a host name to deny access to a host.") + ), + 'autoAdd' => array( + "Headline" => _("Automatically add this extension"), + "Text" => _("This will enable the extension automatically if this profile is loaded.") + ) + ); + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'hostObject_hosts', + 'description' => _('Host list'), + 'help' => 'host', + 'example' => _('pc01,pc02') + ) + ); + // available PDF fields + $return['PDF_fields'] = array( + 'hosts' => _('Host list') + ); + $profileContainer = new htmlTable(); + $profileContainer->addElement(new htmlTableExtendedInputCheckbox('hostObject_addExt', false, _('Automatically add this extension'), 'autoAdd')); + $return['profile_options'] = $profileContainer; + return $return; + } + + /** + * This function fills the error message array with messages + */ + function load_Messages() { + $this->messages['host'][0] = array('ERROR', 'Please enter a valid host name.'); // third array value is set dynamically + $this->messages['host'][1] = array('ERROR', _('Account %s:') . ' hostObject_host', _('Please enter a valid list of host names.')); + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + function save_attributes() { + if (!in_array('hostObject', $this->attributes['objectClass']) && !in_array('hostObject', $this->orig['objectClass'])) { + // skip saving if the extension was not added/modified + return array(); + } + return parent::save_attributes(); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + if (isset($_POST['addObjectClass'])) { + $this->attributes['objectClass'][] = 'hostObject'; + } + $return = new htmlTable(); + if (in_array('hostObject', $this->attributes['objectClass'])) { + $this->addMultiValueInputTextField($return, 'host', _('Host')); + $return->addElement(new htmlSpacer(null, '10px'), true); + $remButton = new htmlButton('remObjectClass', _('Remove host extension')); + $remButton->colspan = 4; + $return->addElement($remButton); + } + else { + $return->addElement(new htmlButton('addObjectClass', _('Add host extension'))); + } + return $return; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + if (isset($_POST['remObjectClass'])) { + $this->attributes['objectClass'] = array_delete(array('hostObject'), $this->attributes['objectClass']); + if (isset($this->attributes['host'])) unset($this->attributes['host']); + return array(); + } + if (!in_array('hostObject', $this->attributes['objectClass'])) { + return array(); + } + $errors = array(); + $this->processMultiValueInputTextField('host', $errors, 'hostObject'); + return $errors; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array("hostObject", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "hostObject"; + // add hosts + if ($rawAccounts[$i][$ids['hostObject_hosts']] != "") { + $hosts = explode(',', $rawAccounts[$i][$ids['hostObject_hosts']]); + // check format + for ($a = 0; $a < sizeof($hosts); $a++) { + if (get_preg($hosts[$a], 'hostObject')) { + $partialAccounts[$i]['host'][] = $hosts[$a]; + } + else { + $errMsg = $this->messages['host'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + } + } + } + return $messages; + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'hosts', _('Host list'), 'host'); + return $return; + } + + /** + * Loads the values of an account profile into internal variables. + * + * @param array $profile hash array with profile values (identifier => value) + */ + function load_profile($profile) { + // profile mappings in meta data + parent::load_profile($profile); + // add extension + if (isset($profile['hostObject_addExt'][0]) && ($profile['hostObject_addExt'][0] == "true")) { + if (!in_array('hostObject', $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = 'hostObject'; + } + } + } + +} + + +?> diff --git a/lam/lib/modules/ieee802device.inc b/lam/lib/modules/ieee802device.inc new file mode 100644 index 00000000..3c6c78e0 --- /dev/null +++ b/lam/lib/modules/ieee802device.inc @@ -0,0 +1,169 @@ +get_scope(), array('host')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'network-wired.png'; + // alias name + $return["alias"] = _("MAC address"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('ieee802Device'); + // managed attributes + $return['attributes'] = array('macAddress'); + // help Entries + $return['help'] = array( + 'macAddress' => array( + "Headline" => _("MAC address"), 'attr' => 'macAddress', + "Text" => _("This is the MAC address of the network card of the device (e.g. 00:01:02:DE:EF:18).") + ), + 'macList' => array( + "Headline" => _("MAC address list"), 'attr' => 'macAddress', + "Text" => _("This is a comma separated list of MAC addresses.") + )); + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'ieee802Device_mac', + 'description' => _('MAC address'), + 'help' => 'macList', + 'example' => '00:01:02:DE:EF:18' + ) + ); + // available PDF fields + $return['PDF_fields'] = array( + 'macAddress' => _('MAC addresses') + ); + return $return; + } + + /** + * This function fills the error message array with messages + */ + function load_Messages() { + $this->messages['macAddress'][0] = array('ERROR', 'MAC address is invalid!'); // third array value is set dynamically + $this->messages['macAddress'][1] = array('ERROR', _('Account %s:') . ' ieee802Device_mac', 'MAC address is invalid!'); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $return = new htmlTable(); + $this->addMultiValueInputTextField($return, 'macAddress', _('MAC address'), false, 17); + return $return; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + $errors = array(); + $this->processMultiValueInputTextField('macAddress', $errors, 'macAddress'); + return $errors; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array("ieee802Device", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "ieee802Device"; + // add MACs + if ($rawAccounts[$i][$ids['ieee802Device_mac']] != "") { + $macs = explode(',', $rawAccounts[$i][$ids['ieee802Device_mac']]); + // check format + for ($m = 0; $m < sizeof($macs); $m++) { + if (get_preg($macs[$m], 'macAddress')) { + $partialAccounts[$i]['macAddress'][] = $macs[$m]; + } + else { + $errMsg = $this->messages['macAddress'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + } + } + } + return $messages; + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'macAddress', _('MAC addresses')); + return $return; + } + +} + + +?> diff --git a/lam/lib/modules/imapAccess.inc b/lam/lib/modules/imapAccess.inc new file mode 100644 index 00000000..afdfc5d3 --- /dev/null +++ b/lam/lib/modules/imapAccess.inc @@ -0,0 +1,663 @@ +get_scope(), array('user')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // alias name + $return["alias"] = _("Mailbox"); + // module dependencies + $return['dependencies'] = array('depends' => array('inetOrgPerson'), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array(); + // managed attributes + $return['attributes'] = array(); + // PHP extensions + $return['extensions'] = array('imap'); + // icon + $return['icon'] = 'mailBig.png'; + // help + $return['help'] = array( + 'ImapServerAddress' => array( + "Headline" => _("Server address"), + "Text" => _("Address of IMAP server (e.g. mail.example.org).")), + 'ImapServerEncryptionProtocol' => array( + "Headline" => _("Encryption protocol"), + "Text" => _("Encryption protocol for connecting to IMAP server. LAM requires an encrypted connection.")), + 'ImapValidateServerCert' => array( + "Headline" => _("Validate server certificate"), + "Text" => _("This option allows you to disable the certificate check of your IMAP server certificate. Disabling the certificate check is not recommended.")), + 'ImapAdmin' => array( + "Headline" => _("IMAP admin user"), + "Text" => _("The login name of your IMAP user who has rights to create/delete mailboxes.") . ' ' . _('Use wildcards like $uid$ for LDAP attributes of the current LAM admin user.')), + 'ImapAdminPasswordSelect' => array( + "Headline" => _("IMAP password input"), + "Text" => _("Choose the way how to provide the IMAP admin password. You can use the same password as for the LAM login or LAM will ask you for a password when it is required.") + . ' ' . _('Storing the password in your server profile is also possible but not recommended.') + ), + 'ImapAdminPassword_Sess' => array( + "Headline" => _("Password of IMAP admin user"), + "Text" => _("The password of your IMAP admin user. The login name for the IMAP admin user is stored in the LAM server profile.")), + 'ImapUserPrefix' => array( + "Headline" => _("Prefix for mailboxes"), + "Text" => _("Some IMAP servers store mailboxes with a prefix (e.g. \"user\" for Cyrus which results in \"user.username\").")), + 'ImapMailDomain' => array( + "Headline" => _("Mail domains"), + "Text" => _("Please enter a comma separated list of domain names (e.g. \"company.com,example.com\"). LAM will only manage mailboxes from these domains.")), + 'ImapUserNameAttr' => array( + "Headline" => _("User name attribute"), + "Text" => _("Please choose the attribute to get the IMAP user name. The default is \"mail\" but you can also use \"uid\".")), + 'MailAddress' => array( + "Headline" => _("Mailbox"), + "Text" => _("This mailbox will be created/deleted.")), + 'ImapUserQuotaLimit' => array( + "Headline" => _("Quota"), + "Text" => _("Please enter the quota limit of this mailbox in kilobytes.")), + 'pathSeparator' => array( + "Headline" => _("Path separator"), + "Text" => _("This is the separator for the mailbox path. Usually, this is \".\" but e.g. Cyrus with \"unixhierarchysep\" will require \"/\".")), + ); + // configuration settings + $configContainer = new htmlTable(); + $configServer = new htmlTableExtendedInputField(_('Server address'), 'ImapAccess_ImapServerAddress', '', 'ImapServerAddress'); + $configServer->setRequired(true); + $configContainer->addElement($configServer, true); + $configContainer->addElement(new htmlTableExtendedSelect('ImapAccess_ImapServerEncriptionProtocol', array('TLS', 'SSL'), array('TLS'), _("Encryption protocol"), 'ImapServerEncryptionProtocol'), true); + $configCertValidate = new htmlTableExtendedSelect('ImapAccess_ImapValidateServerCert', array(_('Yes') => 'validate-cert', _('No') => 'novalidate-cert'), array('validate-cert'), _("Validate server certificate"), 'ImapValidateServerCert'); + $configCertValidate->setHasDescriptiveElements(true); + $configContainer->addElement($configCertValidate, true); + $configUser = new htmlTableExtendedInputField(_('IMAP admin user'), 'ImapAccess_ImapAdmin', '', 'ImapAdmin'); + $configUser->setRequired(true); + $configContainer->addElement($configUser, true); + $pwdSelectOptions = array( + _('LAM user password') => 'lam_user_pass', + _('Ask') => 'ask_pass', + _('Server profile') => 'config'); + $configPasswordType = new htmlTableExtendedSelect('ImapAccess_ImapAdminPasswordSelect', $pwdSelectOptions, array('ask_pass'), _("IMAP password input"), 'ImapAdminPasswordSelect'); + $configPasswordType->setHasDescriptiveElements(true); + $configPasswordType->setTableRowsToShow(array('config' => array('ImapAccess_ImapAdminPassword'))); + $configPasswordType->setTableRowsToHide(array('lam_user_pass' => array('ImapAccess_ImapAdminPassword'), 'ask_pass' => array('ImapAccess_ImapAdminPassword'))); + $configContainer->addElement($configPasswordType, true); + $adminPwdInput = new htmlTableExtendedInputField(_('Admin password'), 'ImapAccess_ImapAdminPassword', null, 'ImapAdminPasswordSelect'); + $adminPwdInput->setIsPassword(true); + $adminPwdInput->setObfuscate(true); + $configContainer->addElement($adminPwdInput, true); + $mailDomainsInput = new htmlTableExtendedInputField(_('Mail domains'), 'ImapAccess_ImapDomain', '', 'ImapMailDomain'); + $mailDomainsInput->setRequired(true); + $configContainer->addElement($mailDomainsInput, true); + $configContainer->addElement(new htmlTableExtendedInputField(_('Prefix for mailboxes'), 'ImapAccess_ImapUserPrefix', '', 'ImapUserPrefix'), true); + $configUserName = new htmlTableExtendedSelect('ImapAccess_UserNameAttribute', array('mail', 'uid'), array('mail'), _("User name attribute"), 'ImapUserNameAttr'); + $configContainer->addElement($configUserName, true); + $configPathSeparator = new htmlTableExtendedSelect('ImapAccess_pathSeparator', array('.', '/'), array('.'), _("Path separator"), 'pathSeparator'); + $configContainer->addElement($configPathSeparator, true); + $return['config_options']['all'] = $configContainer; + // configuration checks + $return['config_checks']['all']['ImapAccess_ImapServerAddress'] = array ( + 'type' => 'ext_preg', + 'regex' => 'DNSname', + 'required' => true, + 'required_message' => $this->messages['config'][0], + 'error_message' => $this->messages['config'][0]); + $return['config_checks']['all']['ImapAccess_ImapDomain'] = array ( + 'type' => 'regex_i', + 'regex' => '[\\*a-z0-9\\._-]+(,[a-z0-9\\._-]+)*', + 'required' => true, + 'required_message' => $this->messages['config'][1], + 'error_message' => $this->messages['config'][1]); + // profile options + $profileContainer = new htmlTable(); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Quota'), 'ImapAccess_QuotaLimit', null, 'ImapUserQuotaLimit'), true); + $return['profile_options'] = $profileContainer; + $return['profile_checks']['ImapAccess_QuotaLimit'] = array( + 'type' => 'ext_preg', + 'regex' => 'digit', + 'error_message' => $this->messages['managemailbox'][8]); + return $return; + } + + /** + * This function fills the error message array with messages + */ + function load_Messages() { + $this->messages['config'][0] = array('ERROR', _('Please enter a valid server name where the mailboxes reside.')); + $this->messages['config'][1] = array('ERROR', _('Please enter a correct list of valid mail domains.')); + $this->messages['config'][2] = array('ERROR', _('The IMAP admin password is empty.')); + $this->messages['managemailbox'][0] = array('ERROR', _('Unable to change ACL on IMAP server for mailbox deletion.')); + $this->messages['managemailbox'][1] = array('ERROR', _('Unable to delete mailbox from IMAP server.')); + $this->messages['managemailbox'][2] = array('ERROR', _('Unable to create mailbox on IMAP server.')); + $this->messages['managemailbox'][3] = array('ERROR', _('Unable to locate mailbox on IMAP.')); + $this->messages['managemailbox'][4] = array('ERROR', _('Your IMAP domains and email address domain do not match.')); + $this->messages['managemailbox'][5] = array('ERROR', _('Invalid password for IMAP admin or other problem occured.')); + $this->messages['managemailbox'][6] = array('WARN', _('Your LAM login password was not accepted by the IMAP server.')); + $this->messages['managemailbox'][7] = array('ERROR', _('Cannot update quota.')); + $this->messages['managemailbox'][8] = array('ERROR', _('Wrong quota format. Quota must be numeric.')); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return array HTML meta data + */ + function display_html_attributes() { + $return = new htmlTable(); + if (!checkIfWriteAccessIsAllowed($this->get_scope())) { + return $return; + } + $prefix = $this->getMailboxPrefix(); + + $email = ''; + $attrsPersonal = $this->getAccountContainer()->getAccountModule('inetOrgPerson')->getAttributes(); + $email = $attrsPersonal['mail'][0]; + + if ($email == '') { + $return->addElement(new htmlStatusMessage('INFO', _("Please enter an email address on this page: %s"), '', array($this->getAccountContainer()->getAccountModule('inetOrgPerson')->get_alias()))); + return $return; + } + $email_domain = substr(strstr($email, '@'), 1); + // extract user name from email address + if (!isset($this->moduleSettings['ImapAccess_UserNameAttribute'][0]) || $this->moduleSettings['ImapAccess_UserNameAttribute'][0] == 'mail') { + $email_parts = explode('@', $email, 2); + $email_username = array_shift($email_parts); + } + // extract user name from Unix user name (might be in inetOrgPerson or posixAccount module) + else { + if ($this->getAccountContainer()->getAccountModule('posixAccount') != null) { + $attrsUnix = $this->getAccountContainer()->getAccountModule('posixAccount')->getAttributes(); + $email_username = $attrsUnix['uid'][0]; + } + else { + $email_username = $attrsPersonal['uid'][0]; + } + } + $imap_admin_password = $this->getAdminPassword(); // check for password for fall back mechanism + if (!isset($_SESSION['imapAdmPass']) && !isset($imap_admin_password)) { + return $this->display_html_password(); + } + + $return->addElement(new htmlOutputText(_('Email address'))); + $return->addElement(new htmlOutputText($email), true); + + $imap_server_address = $this->getServerAddress(); + $imap_admin_user = $this->getAdminUser(); + $imap_admin_password = $this->getAdminPassword(); + $mbox = @imap_open("{" . $imap_server_address . "}", $imap_admin_user, $imap_admin_password, OP_HALFOPEN, 1); + if (!$mbox) { + return $this->display_html_password(); + } + + $return->addElement(new htmlOutputText(_('Mailbox'))); + $return->addElement(new htmlOutputText($prefix . $this->getSep() . $email_username)); + $return->addElement(new htmlHelpLink('MailAddress'), true); + $return->addElement(new htmlSpacer(null, '10px'), true); + + $is_mailbox_exist = false; //default is false + $list = imap_list($mbox, "{" . $imap_server_address . "}", $prefix . $this->getSep() . $email_username); + if (is_array($list) && sizeof($list) == 1) { + $this->renderQuotasForMailbox($return, $mbox, $prefix . $this->getSep() . $email_username); + $mailboxMessage = new htmlOutputText(_("Mailbox already exists on IMAP server.")); + $mailboxMessage->colspan = 3; + $return->addElement($mailboxMessage, true); + $return->addElement(new htmlSpacer(null, '10px'), true); + $return->addElement(new htmlButton('deleteMailbox', _('Delete mailbox'))); + } + else { + $mailboxMessage = new htmlOutputText(_("Mailbox does not exist on IMAP server.")); + $mailboxMessage->colspan = 3; + $return->addElement($mailboxMessage, true); + $return->addElement(new htmlSpacer(null, '10px'), true); + $createButton = new htmlButton('createMailbox', _('Create mailbox')); + $message = ''; + if ($this->isWrongDomain($email_domain)) { + $createButton->setIsEnabled(false); + $message = '<< ' . $this->messages['managemailbox'][4][1]; + } + $return->addElement($createButton); + $return->addElement(new htmlOutputText($message)); + } + imap_close($mbox); + return $return; + } + + /** + * Returns the HTML meta data for the password page. + * + * @return array HTML meta data + */ + function display_html_password() { + $return = new htmlTable(); + if($this->moduleSettings['ImapAccess_ImapAdminPasswordSelect'][0] == "lam_user_pass"){ + $message = $this->messages['managemailbox'][6]; + $messageElement = new htmlStatusMessage($message[0], $message[1]); + $messageElement->colspan = 3; + $return->addElement($messageElement); + $return->addElement(new htmlSpacer(null, '10px'), true); + } + $passwordInput = new htmlTableExtendedInputField(_("Password of IMAP admin user"), 'ImapAdminPassword', '', 'ImapAdminPassword_Sess'); + $passwordInput->setIsPassword(true); + $passwordInput->setRequired(true); + $return->addElement($passwordInput, true); + $return->addElement(new htmlSpacer(null, '10px'), true); + $return->addElement(new htmlButton('enterPasswordButton', _('Ok'))); + return $return; + } + + /** + * Display the mailbox quota. + * + * @param htmlTable $htmlTable structure that contained information to be displayed + * @param stream $mbox stream to open IMAP session + * @param String $username user name to connect to IMAP server + * @return htmlTable table with added information about user quotas or controls to add quota + */ + function renderQuotasForMailbox($htmlTable, $mbox, $username) { + if (($this->profileQuotaLimit != null) && ($this->profileQuotaLimit != '')) { + @imap_set_quota($mbox, $username, $this->profileQuotaLimit); + $this->profileQuotaLimit = null; + } + $quota_values = @imap_get_quota($mbox, $username); + imap_errors(); + if (is_array($quota_values) && (sizeof($quota_values) > 0)) { + if (isset($quota_values['STORAGE']) && is_array($quota_values['STORAGE'])) { + $quotaLimit = $quota_values['STORAGE']['limit']; + $htmlTable->addElement(new htmlOutputText(_("Current usage (kB)"))); + $htmlTable->addElement(new htmlOutputText($quota_values['STORAGE']['usage']), true); + $quotaLimitInput = new htmlTableExtendedInputField(_("Quota limit (kB)"), 'ImapUserQuotaLimit', $quotaLimit, 'ImapUserQuotaLimit'); + $htmlTable->addElement($quotaLimitInput, false); + $htmlTable->addElement(new htmlSpacer('10px', null), false); + $htmlTable->addElement(new htmlButton('updateQuota', _('Update quota')), true); + $htmlTable->addElement(new htmlSpacer(null, '10px'), true); + } + } + else { + $quotaLimit = ""; + $quotaLimitInput = new htmlTableExtendedInputField(_("Quota limit (kB)"), 'ImapUserQuotaLimit', $quotaLimit, 'ImapUserQuotaLimit'); + $htmlTable->addElement($quotaLimitInput, false); + $htmlTable->addElement(new htmlSpacer('10px', null), false); + $htmlTable->addElement(new htmlButton('updateQuota', _('Update quota')), true); + $htmlTable->addElement(new htmlSpacer(null, '10px'), true); + } + return $htmlTable; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + $errors = array(); + if (!checkIfWriteAccessIsAllowed($this->get_scope())) { + return $errors; + } + $prefix = $this->getMailboxPrefix(); + + $imap_server_address = $this->getServerAddress(); + $imap_admin_user = $this->getAdminUser(); + + if (isset($_POST['ImapAdminPassword']) && isset($_POST['enterPasswordButton'])) { + $errors = $this->doLogin(); + } + + $imap_admin_password = $this->getAdminPassword(); + $mbox = 0;//default state is false + if ($imap_admin_password) { + $mbox = @imap_open("{" . $imap_server_address . "}", $imap_admin_user, $imap_admin_password, OP_HALFOPEN, 1); + } + if ($mbox) { + $attrsPersonal = $this->getAccountContainer()->getAccountModule('inetOrgPerson')->getAttributes(); + $email = $attrsPersonal['mail'][0]; + $email_domain = substr(strstr($email, '@'), 1); + // extract user name from email address + if (!isset($this->moduleSettings['ImapAccess_UserNameAttribute'][0]) || $this->moduleSettings['ImapAccess_UserNameAttribute'][0] == 'mail') { + $email_parts = explode('@', $email, 2); + $email_username = array_shift($email_parts); + } + // extract user name from Unix user name (might be in inetOrgPerson or posixAccount module) + else { + if ($this->getAccountContainer()->getAccountModule('posixAccount') != null) { + $attrsUnix = $this->getAccountContainer()->getAccountModule('posixAccount')->getAttributes(); + $email_username = $attrsUnix['uid'][0]; + } + else { + $email_username = $attrsPersonal['uid'][0]; + } + } + + if (isset($_POST['deleteMailbox'])) { + if ($this->isWrongDomain($email_domain)) { + $errors[] = $this->messages['managemailbox'][4]; + } + else { + if (!imap_setacl($mbox, $prefix . $this->getSep() . $email_username, $imap_admin_user, "c")) { + $errors[] = $this->messages['managemailbox'][0]; + } + + $delete_mailbox_arg = "{" . $imap_server_address . "}" . $prefix . $this->getSep() . $email_username; + if (!@imap_deletemailbox($mbox, $delete_mailbox_arg)) { + $errors[] = $this->messages['managemailbox'][1]; + } + } + } + + if (isset($_POST['createMailbox'])) { + if ($this->isWrongDomain($email_domain)) { + $errors[] = $this->messages['managemailbox'][4]; + } + else { + $create_mailbox_arg = "{" . $imap_server_address . "}" . $prefix . $this->getSep() . $email_username; + if (imap_createmailbox($mbox, imap_utf7_encode($create_mailbox_arg))) { + $list = imap_list($mbox, "{" . $imap_server_address . "}", $prefix . $this->getSep() . $email_username); + if (is_array($list) && sizeof($list) == 1) { + + } + else { + $errors[] = $this->messages['managemailbox'][3]; + } + } + else { + $errors[] = $this->messages['managemailbox'][2]; + } + } + } + if (isset($_POST['updateQuota'])) { + if ($this->isWrongDomain($email_domain)) { + $errors[] = $this->messages['managemailbox'][4]; + } + else { + if (!isset($_POST['ImapUserQuotaLimit']) || ($_POST['ImapUserQuotaLimit'] == '')) { +/* deactivated because -1 is not accepted, no possibility to remove quota + * if (!imap_set_quota($mbox, $prefix . $this->getSep() . $email_username, -1)) { + $message = $this->messages['managemailbox'][7]; + $message[] = imap_last_error(); + $errors[] = $message; + }*/ + } + elseif (isset($_POST['ImapUserQuotaLimit']) && ($_POST['ImapUserQuotaLimit'] != '') && get_preg($_POST['ImapUserQuotaLimit'], 'digit')){ + if (!imap_set_quota($mbox, $prefix . $this->getSep() . $email_username, $_POST['ImapUserQuotaLimit'])) { + $message = $this->messages['managemailbox'][7]; + $message[] = imap_last_error(); + $errors[] = $message; + } + } + else { + $errors[] = $this->messages['managemailbox'][8]; + } + } + } + imap_close($mbox); + } + // Return error-messages + return $errors; + } + + /** + * Loads the values of an account profile into internal variables. + * + * @param array $profile hash array with profile values (identifier => value) + */ + function load_profile($profile) { + // profile mappings in meta data + parent::load_profile($profile); + if (isset($profile['ImapAccess_QuotaLimit'][0]) && $profile['ImapAccess_QuotaLimit'][0] != '') { + $this->profileQuotaLimit = $profile['ImapAccess_QuotaLimit'][0]; + } + } + + /** + * Checks input values of module settings. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * If the input data is invalid the return value is an array that contains subarrays to build StatusMessages ('message type', 'message head', 'message text'). + *
    If no errors occured the function returns an empty array. + * + * @param array $scopes list of account types which are used + * @param array $options hash array (option name => value) that contains the input. The option values are all arrays containing one or more elements. + * @return array list of error messages + * + * @see baseModule::get_metaData() + */ + public function check_configOptions($scopes, &$options) { + $errors = parent::check_configOptions($scopes, $options); + if ($options['ImapAccess_ImapAdminPasswordSelect'][0] == 'config') { + if (empty($options['ImapAccess_ImapAdminPassword'][0])) { + $errors[] = $this->messages['config'][2]; + } + } + return $errors; + } + + /** + * Returns the user name of the IMAP admin. + * + * @return String admin user name + */ + private function getAdminUser() { + if (isset($_SESSION['imapAdmUser'])) { + return $_SESSION['imapAdmUser']; + } + $user = $this->moduleSettings['ImapAccess_ImapAdmin'][0]; + // check if user name contains any wildcards that need to be replaced with LDAP attribute values + $matches = array(); + preg_match_all('/\\$[a-z0-9_-]+\\$/i', $this->moduleSettings['ImapAccess_ImapAdmin'][0], $matches); + if (sizeof($matches) > 0) { + // find wildcards + $attrNames = array(); + foreach ($matches as $match) { + foreach ($match as $attr) { + $attrNames[] = substr($attr, 1, -1); + } + } + $attrNames = array_values(array_unique($attrNames)); + $attrNames = array_change_key_case($attrNames, CASE_LOWER); + // read LAM login user data + $data = $_SESSION['ldap']->decrypt_login(); + $dn = $data[0]; + $sr = @ldap_read($_SESSION['ldap']->server(), $dn, '(objectclass=*)', $attrNames); + if ($sr) { + $info = @ldap_get_entries($_SESSION['ldap']->server(), $sr); + if ($info) { + cleanLDAPResult($info); + $info = $info[0]; + } + } + // replace wildcards + foreach ($attrNames as $attr) { + if (empty($info[$attr])) { + continue; + } + $user = preg_replace('/\\$' . $attr . '\\$/i', $info[$attr][0], $user); + } + } + logNewMessage(LOG_DEBUG, 'IMAP admin user: ' . $user); + $_SESSION['imapAdmUser'] = $user; + return $user; + } + + /** + * Returns the admin password. + * + * @return String password + */ + private function getAdminPassword() { + //perform admin password + $imap_admin_password = null; //default value is null, it can be changed during the work + if (isset($_SESSION['imapAdmPass'])) { + $imap_admin_password = $_SESSION['ldap']->decrypt($_SESSION['imapAdmPass']); + } + elseif (isset($this->moduleSettings['ImapAccess_ImapAdminPasswordSelect'][0]) && ($this->moduleSettings['ImapAccess_ImapAdminPasswordSelect'][0] == "lam_user_pass")) { + $credentials = $_SESSION['ldap']->decrypt_login(); + $imap_admin_password = $credentials[1]; + } + elseif (!empty($this->moduleSettings['ImapAccess_ImapAdminPasswordSelect'][0]) && ($this->moduleSettings['ImapAccess_ImapAdminPasswordSelect'][0] == "config") + && !empty($this->moduleSettings['ImapAccess_ImapAdminPassword'][0])) { + $imap_admin_password = deobfuscateText($this->moduleSettings['ImapAccess_ImapAdminPassword'][0]); + } + return $imap_admin_password; + } + + /** + * Checks the password given by user and save it as session parameter. + * + * @return array list of error messages + */ + function doLogin() { + $errors = array(); + $imap_server_address = $this->getServerAddress(); + $imap_admin_user = $this->getAdminUser(); + if (isset($_POST['ImapAdminPassword']) && $_POST['ImapAdminPassword'] != "") { + $imap_admin_password = $_POST['ImapAdminPassword']; + $mbox = @imap_open("{" . $imap_server_address . "}", $imap_admin_user, $imap_admin_password, OP_HALFOPEN, 1); + if ($mbox) { + $_SESSION['imapAdmPass'] = $_SESSION['ldap']->encrypt($_POST['ImapAdminPassword']); + @imap_close($mbox); + } + else { + $error = $this->messages['managemailbox'][5]; + $error[] = imap_last_error(); + $errors[] = $error; + } + } + return $errors; + } + + /** + * This function returns the IMAP server address including encryption options. + * + * @return String server address + */ + function getServerAddress() { + $imap_encryption_protocol = $this->moduleSettings['ImapAccess_ImapServerEncriptionProtocol'][0]; + if (strrpos($this->moduleSettings['ImapAccess_ImapServerAddress'][0], ":")) { + $imap_port_number = substr(strstr($this->moduleSettings['ImapAccess_ImapServerAddress'][0], ':'), 1); + $imap_server_name = array_shift(explode(':', $this->moduleSettings['ImapAccess_ImapServerAddress'][0], 2)); + } + else { + $imap_server_name = $this->moduleSettings['ImapAccess_ImapServerAddress'][0]; + if (strcmp($imap_encryption_protocol, "TLS") == 0) { + $imap_port_number = 143; + } + else { + $imap_port_number = 993; + } + } + if (isset($this->moduleSettings['ImapAccess_ImapValidateServerCert'][0]) && ($this->moduleSettings['ImapAccess_ImapValidateServerCert'][0] == 'novalidate-cert')) { + $validate_opt = "novalidate-cert"; + } + else { + $validate_opt = "validate-cert"; + } + $imap_server_address = $imap_server_name . ":" . $imap_port_number . "/" . $imap_encryption_protocol . "/" . $validate_opt; + return $imap_server_address; + } + + /** + * This function returns the prefix for mailboxes. + * If no prefix was given during configuration then "user" will be used (default for Cyrus). + * + * @return String prefix + */ + function getMailboxPrefix() { + if (!isset($this->moduleSettings['ImapAccess_ImapUserPrefix'][0]) || ($this->moduleSettings['ImapAccess_ImapUserPrefix'][0] == '')) { + return "user"; + } + else { + return $this->moduleSettings['ImapAccess_ImapUserPrefix'][0]; + } + } + + /** + * This function checks if the domain of the mailbox is not in the list of domains listed in the configuration. + * If it is in the list then it returns false, otherwise returns true. If the list of domains is not set then it returns true. + * + * @param String $email_domain email domain + * @return boolean true if domains match + */ + function isWrongDomain($email_domain) { + if (isset($this->moduleSettings['ImapAccess_ImapDomain'][0])) { + $domain_list_string = $this->moduleSettings['ImapAccess_ImapDomain'][0]; + if ($domain_list_string == '*') { + return false; + } + $domains_array = explode(",", $domain_list_string); + if ((sizeof($domains_array) == 0) || in_array($email_domain, $domains_array)) { + return false; + } + } + else { + return false; + } + return true; + } + + /** + * Returns the path separator. + * + * @return String separator char + */ + private function getSep() { + if (isset($this->moduleSettings['ImapAccess_pathSeparator'][0])) { + return $this->moduleSettings['ImapAccess_pathSeparator'][0]; + } + return '.'; // default + } + +} + +?> diff --git a/lam/lib/modules/inetLocalMailRecipient.inc b/lam/lib/modules/inetLocalMailRecipient.inc new file mode 100644 index 00000000..6a9f1af3 --- /dev/null +++ b/lam/lib/modules/inetLocalMailRecipient.inc @@ -0,0 +1,301 @@ +get_scope(), array('user')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'mailBig.png'; + // alias name + $return["alias"] = _("Mail routing"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('inetLocalMailRecipient'); + // managed attributes + $return['attributes'] = array('mailLocalAddress', 'mailHost', 'mailRoutingAddress'); + // help Entries + $return['help'] = array( + 'mailRoutingAddress' => array( + "Headline" => _("Routing address"), 'attr' => 'mailRoutingAddress', + "Text" => _("This is the target email address for the user's mails.") + ), + 'localAdr' => array( + "Headline" => _("Local address"), 'attr' => 'mailLocalAddress', + "Text" => _("This is one of the users public email addresses.") + ), + 'localAdrList' => array( + "Headline" => _("Local address list"), 'attr' => 'mailLocalAddress', + "Text" => _("This is a comma separated list of the users public email addresses.") + ), + 'mailHost' => array( + "Headline" => _("Mail server"), 'attr' => 'mailHost', + "Text" => _("This is the mail server for the user.") + )); + // profile options + $profileContainer = new htmlTable(); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Mail server'), 'inetLocalMailRecipient_host', null, 'mailHost')); + $return['profile_options'] = $profileContainer; + // profile checks + $return['profile_checks']['inetLocalMailRecipient_host'] = array( + 'type' => 'ext_preg', + 'regex' => 'DNSname', + 'error_message' => $this->messages['mailHost'][0]); + // profile mappings + $return['profile_mappings'] = array( + 'inetLocalMailRecipient_host' => 'mailHost' + ); + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'inetLocalMailRecipient_routingAdr', + 'description' => _('Routing address'), + 'help' => 'mailRoutingAddress', + 'example' => _('smiller@otherdomain.org') + ), + array( + 'name' => 'inetLocalMailRecipient_localAdr', + 'description' => _('Local address list'), + 'help' => 'localAdrList', + 'example' => _('smiller@yourdomain.org') + ), + array( + 'name' => 'inetLocalMailRecipient_server', + 'description' => _('Mail server'), + 'help' => 'mailHost', + 'example' => _('mail.yourdomain.org') + ) + ); + // available PDF fields + $return['PDF_fields'] = array( + 'routingAdr' => _('Routing address'), + 'localAdr' => _('Local address list'), + 'host' => _('Mail server') + ); + return $return; + } + + /** + * This function fills the error message array with messages + */ + function load_Messages() { + $this->messages['mailRoutingAddress'][0] = array('ERROR', 'Routing address is invalid!'); // third array value is set dynamically + $this->messages['mailRoutingAddress'][1] = array('ERROR', _('Account %s:') . ' inetLocalMailRecipient_routingAdr', 'Routing address is invalid!'); + $this->messages['localAdr'][0] = array('ERROR', 'Local address is invalid!'); // third array value is set dynamically + $this->messages['localAdr'][1] = array('ERROR', _('Account %s:') . ' inetLocalMailRecipient_localAdr', 'Local address is invalid!'); + $this->messages['mailHost'][0] = array('ERROR', 'Mail server is invalid!'); // third array value is set dynamically + $this->messages['mailHost'][1] = array('ERROR', _('Account %s:') . ' inetLocalMailRecipient_server', 'Mail server is invalid!'); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $return = new htmlTable(); + // mail routing address + $this->addSimpleInputTextField($return, 'mailRoutingAddress', _('Routing address')); + // mail server + $this->addSimpleInputTextField($return, 'mailHost', _('Mail server')); + // list current local addresses + $localAdresses = array(); + if (isset($this->attributes['mailLocalAddress'])) $localAdresses = $this->attributes['mailLocalAddress']; + for ($i = 0; $i < sizeof($localAdresses); $i++) { + if ($i == 0) { + $return->addElement(new htmlOutputText(_('Local address'))); + } + else { + $return->addElement(new htmlOutputText('')); + } + $return->addElement(new htmlInputField('localAdr' . $i, $localAdresses[$i])); + $return->addElement(new htmlButton('delAdr' . $i, 'del.png', true)); + if ($i == 0) { + $return->addElement(new htmlHelpLink('localAdr')); + } + $return->addNewLine(); + } + // input box for new local addresses + $return->addElement(new htmlOutputText(_('New local address'))); + $return->addElement(new htmlInputField('localAdr', '')); + $return->addElement(new htmlButton('addAdr', 'add.png', true)); + $return->addElement(new htmlHelpLink('localAdr')); + $return->addElement(new htmlHiddenInput('adr_number', sizeof($localAdresses))); + return $return; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + $errors = array(); + $this->attributes['mailRoutingAddress'] = array(); + $this->attributes['mailLocalAddress'] = array(); + $this->attributes['mailHost'] = array(); + // check routing address + if (isset($_POST['mailRoutingAddress']) && ($_POST['mailRoutingAddress'] != "")) { + // check if address has correct format + if (get_preg($_POST['mailRoutingAddress'], 'email')) { + $this->attributes['mailRoutingAddress'][0] = $_POST['mailRoutingAddress']; + } + else { + $message = $this->messages['mailRoutingAddress'][0]; + $message[] = $_POST['mailRoutingAddress']; + $errors[] = $message; + } + } + // check mail server + if (isset($_POST['mailHost']) && ($_POST['mailHost'] != "")) { + // check if address has correct format + if (get_preg($_POST['mailHost'], 'DNSname')) { + $this->attributes['mailHost'][0] = $_POST['mailHost']; + } + else { + $message = $this->messages['mailHost'][0]; + $message[] = $_POST['mailHost']; + $errors[] = $message; + } + } + // check old local addresses + if (isset($_POST['adr_number'])) { + for ($i = 0; $i < $_POST['adr_number']; $i++) { + if (isset($_POST['delAdr' . $i])) continue; + if (isset($_POST['localAdr' . $i]) && ($_POST['localAdr' . $i] != "")) { + // check if address has correct format + if (!get_preg($_POST['localAdr' . $i], 'mailLocalAddress')) { + $message = $this->messages['localAdr'][0]; + $message[] = $_POST['localAdr' . $i]; + $errors[] = $message; + } + $this->attributes['mailLocalAddress'][] = $_POST['localAdr' . $i]; + } + } + } + // check new local address + if (isset($_POST['localAdr']) && ($_POST['localAdr'] != "")) { + // check if address has correct format + if (get_preg($_POST['localAdr'], 'mailLocalAddress')) { + // check if new address is not already in database + $data = searchLDAPByAttribute('mailLocalAddress', $_POST['localAdr'], 'inetLocalMailRecipient', array('dn'), array('user')); + if (sizeof($data) > 0) { + $errors[] = array('WARN', _('This mail address is already in use:') . " " . $_POST['localAdr'], $data[0]['dn']); + } + $this->attributes['mailLocalAddress'][] = $_POST['localAdr']; + } + else { + $message = $this->messages['localAdr'][0]; + $message[] = $_POST['localAdr']; + $errors[] = $message; + } + } + $this->attributes['mailLocalAddress'] = array_unique($this->attributes['mailLocalAddress']); + return $errors; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array("inetLocalMailRecipient", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "inetLocalMailRecipient"; + // add local addresses + if ($rawAccounts[$i][$ids['inetLocalMailRecipient_localAdr']] != "") { + $adrs = explode(',', $rawAccounts[$i][$ids['inetLocalMailRecipient_localAdr']]); + // check format + for ($a = 0; $a < sizeof($adrs); $a++) { + if (get_preg($adrs[$a], 'mailLocalAddress')) { + $partialAccounts[$i]['mailLocalAddress'][] = $adrs[$a]; + } + else { + $errMsg = $this->messages['localAdr'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + } + } + // add routing address + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'inetLocalMailRecipient_routingAdr', 'mailRoutingAddress', + 'email', $this->messages['mailRoutingAddress'][1], $messages); + // add mail server + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'inetLocalMailRecipient_server', 'mailHost', + 'DNSname', $this->messages['mailHost'][1], $messages); + } + return $messages; + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'routingAdr', _('Routing address'), 'mailRoutingAddress'); + $this->addSimplePDFField($return, 'localAdr', _('Local address list'), 'mailLocalAddress'); + $this->addSimplePDFField($return, 'host', _('Mail server'), 'mailHost'); + return $return; + } + +} + + +?> diff --git a/lam/lib/modules/inetOrgPerson.inc b/lam/lib/modules/inetOrgPerson.inc new file mode 100644 index 00000000..74d5f3e9 --- /dev/null +++ b/lam/lib/modules/inetOrgPerson.inc @@ -0,0 +1,3726 @@ +messages['givenName'][0] = array('ERROR', _('First name'), _('First name contains invalid characters!')); + $this->messages['givenName'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_firstName', _('First name contains invalid characters!')); + $this->messages['lastname'][0] = array('ERROR', _('Last name'), _('Last name contains invalid characters or is empty!')); + $this->messages['lastname'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_lastName', _('Last name contains invalid characters or is empty!')); + $this->messages['telephoneNumber'][0] = array('ERROR', _('Telephone number'), _('Please enter a valid telephone number!')); + $this->messages['telephoneNumber'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_telephone', _('Please enter a valid telephone number!')); + $this->messages['homePhone'][0] = array('ERROR', _('Home telephone number'), _('Please enter a valid telephone number!')); + $this->messages['homePhone'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_homePhone', _('Please enter a valid telephone number!')); + $this->messages['mobile'][0] = array('ERROR', _('Mobile number'), _('Please enter a valid mobile number!')); + $this->messages['mobileTelephone'][1] = array('ERROR', _('Account %s:') . " inetOrgPerson_mobile", _('Please enter a valid mobile number!')); + $this->messages['facsimileTelephoneNumber'][0] = array('ERROR', _('Fax number'), _('Please enter a valid fax number!')); + $this->messages['facsimileNumber'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_fax', _('Please enter a valid fax number!')); + $this->messages['pager'][0] = array('ERROR', _('Pager'), _('Please enter a valid telephone number!')); + $this->messages['pager'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_pager', _('Please enter a valid telephone number!')); + $this->messages['mail'][0] = array('ERROR', _('Email address'), _('Please enter a valid email address!')); + $this->messages['mail'][1] = array('WARN', _('Email address'), _('Email "%s" already in use.')); + $this->messages['email'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_email', _('Please enter a valid email address!')); + $this->messages['street'][0] = array('ERROR', _('Street'), _('Please enter a valid street name!')); + $this->messages['street'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_street', _('Please enter a valid street name!')); + $this->messages['postalAddress'][0] = array('ERROR', _('Postal address'), _('Please enter a valid postal address!')); + $this->messages['postalAddress'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_address', _('Please enter a valid postal address!')); + $this->messages['registeredAddress'][0] = array('ERROR', _('Registered address'), _('Please enter a valid registered address.')); + $this->messages['registeredAddress'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_registeredAddress', _('Please enter a valid registered address.')); + $this->messages['postalCode'][0] = array('ERROR', _('Postal code'), _('Please enter a valid postal code!')); + $this->messages['postalCode'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_postalCode', _('Please enter a valid postal code!')); + $this->messages['title'][0] = array('ERROR', _('Job title'), _('Please enter a valid job title!')); + $this->messages['title'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_title', _('Please enter a valid job title!')); + $this->messages['employeeType'][0] = array('ERROR', _('Employee type'), _('Please enter a valid employee type!')); + $this->messages['employeeType'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_type', _('Please enter a valid employee type!')); + $this->messages['cn'][0] = array('ERROR', _('Common name'), _('Please enter a valid common name!')); + $this->messages['cn'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_cn', _('Please enter a valid common name!')); + $this->messages['uid'][0] = array('ERROR', _('User name'), _('User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['uid'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_userName', _('User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['uid'][3] = array('ERROR', _('Account %s:') . ' inetOrgPerson_userName', _('User name already exists!')); + $this->messages['manager'][0] = array('ERROR', _('Account %s:') . ' inetOrgPerson_manager', _('This is not a valid DN!')); + $this->messages['file'][0] = array('ERROR', _('No file selected.')); + $this->messages['file'][1] = array('ERROR', _('Please upload a .jpg/.jpeg file.')); + $this->messages['file'][2] = array('ERROR', _('Unable to process this file.')); + $this->messages['file'][3] = array('ERROR', _('File is too large. Maximum allowed size is %s kB.')); + $this->messages['businessCategory'][0] = array('ERROR', _('Business category'), _('Please enter a valid business category!')); + $this->messages['businessCategory'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_businessCategory', _('Please enter a valid business category!')); + $this->messages['userPassword'][0] = array('ERROR', _('Account %s:') . ' posixAccount_password', _('Password contains invalid characters. Valid characters are:') . ' a-z, A-Z, 0-9 and #*,.;:_-+!%&/|?{[()]}=@$ §°!'); + $this->messages['sendPasswordMail'][0] = array('ERROR', _('Account %s:') . ' inetOrgPerson_sendPasswordMail', _('This value can only be "true" or "false".')); + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('user')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'uid.png'; + // alias name + $return["alias"] = _('Personal'); + // this is a base module + $return["is_base"] = true; + // RDN attribute + $return["RDN"] = array("cn" => "normal", 'uid' => 'low'); + // LDAP filter + $return["ldap_filter"] = array('or' => "(objectClass=inetOrgPerson)"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('inetOrgPerson'); + // LDAP aliases + $return['LDAPaliases'] = array('commonName' => 'cn', 'surname' => 'sn', 'streetAddress' => 'street', + 'fax' => 'facsimileTelephoneNumber', 'gn' => 'givenName', 'userid' => 'uid', 'rfc822Mailbox' => 'mail', + 'mobileTelephoneNumber' => 'mobile', 'organizationName' => 'o', 'organizationalUnitName' => 'ou'); + // managed attributes + $return['attributes'] = array('uid', 'employeeType', 'givenName', 'jpegPhoto', 'mail', 'manager', 'mobile', + 'title', 'telephoneNumber', 'facsimileTelephoneNumber', 'street', 'postOfficeBox', 'postalCode', 'postalAddress', + 'sn', 'userPassword', 'description', 'homePhone', 'pager', 'roomNumber', 'businessCategory', 'l', 'st', + 'physicalDeliveryOfficeName', 'carLicense', 'departmentNumber', 'o', 'employeeNumber', 'initials', + 'registeredAddress', 'labeledURI', 'ou', 'userCertificate;binary'); + if (!$this->isUnixActive()) { + $return['attributes'][] = 'cn'; + } + // self service search attributes + $return['selfServiceSearchAttributes'] = array('uid', 'mail', 'cn', 'surname', 'givenName', 'employeeNumber'); + // self service field settings + $return['selfServiceFieldSettings'] = array('firstName' => _('First name'), 'lastName' => _('Last name'), + 'mail' => _('Email address'), 'telephoneNumber' => _('Telephone number'), 'mobile' => _('Mobile number'), + 'faxNumber' => _('Fax number'), 'street' => _('Street'), 'postalAddress' => _('Postal address'), 'registeredAddress' => _('Registered address'), + 'postalCode' => _('Postal code'), 'postOfficeBox' => _('Post office box'), 'jpegPhoto' => _('Photo'), + 'homePhone' => _('Home telephone number'), 'pager' => _('Pager'), 'roomNumber' => _('Room number'), 'carLicense' => _('Car license'), + 'location' => _('Location'), 'state' => _('State'), 'officeName' => _('Office name'), 'businessCategory' => _('Business category'), + 'departmentNumber' => _('Department'), 'initials' => _('Initials'), 'title' => _('Job title'), 'labeledURI' => _('Web site'), + 'userCertificate' => _('User certificates'), 'ou' => _('Organisational unit'), 'description' => _('Description'), 'uid' => _('User name')); + // possible self service read-only fields + $return['selfServiceReadOnlyFields'] = array('firstName', 'lastName', 'mail', 'telephoneNumber', 'mobile', 'faxNumber', 'pager', 'street', + 'postalAddress', 'registeredAddress', 'postalCode', 'postOfficeBox', 'jpegPhoto', 'homePhone', 'roomNumber', 'carLicense', + 'location', 'state', 'officeName', 'businessCategory', 'departmentNumber', 'initials', 'title', 'labeledURI', 'userCertificate', + 'ou', 'description', 'uid'); + // profile elements + $profileElements = array(); + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideInitials')) { + $profileElements[] = new htmlTableExtendedInputField(_('Initials'), 'inetOrgPerson_initials', null, 'initials'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideDescription')) { + $profileElements[] = new htmlTableExtendedInputField(_('Description'), 'inetOrgPerson_description', null, 'description'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideStreet')) { + $profileElements[] = new htmlTableExtendedInputField(_('Street'), 'inetOrgPerson_street', null, 'streetList'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostOfficeBox')) { + $profileElements[] = new htmlTableExtendedInputField(_('Post office box'), 'inetOrgPerson_postOfficeBox', null, 'postOfficeBoxList'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostalCode')) { + $profileElements[] = new htmlTableExtendedInputField(_('Postal code'), 'inetOrgPerson_postalCode', null, 'postalCodeList'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideLocation')) { + $profileElements[] = new htmlTableExtendedInputField(_('Location'), 'inetOrgPerson_l', null, 'lList'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideState')) { + $profileElements[] = new htmlTableExtendedInputField(_('State'), 'inetOrgPerson_st', null, 'stList'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostalAddress')) { + $profileElements[] = new htmlTableExtendedInputField(_('Postal address'), 'inetOrgPerson_postalAddress', null, 'postalAddress'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideRegisteredAddress')) { + $profileElements[] = new htmlTableExtendedInputField(_('Registered address'), 'inetOrgPerson_registeredAddress', null, 'registeredAddress'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideOfficeName')) { + $profileElements[] = new htmlTableExtendedInputField(_('Office name'), 'inetOrgPerson_physicalDeliveryOfficeName', null, 'physicalDeliveryOfficeName'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideRoomNumber')) { + $profileElements[] = new htmlTableExtendedInputField(_('Room number'), 'inetOrgPerson_roomNumber', null, 'roomNumber'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideTelephoneNumber')) { + $profileElements[] = new htmlTableExtendedInputField(_('Telephone number'), 'inetOrgPerson_telephoneNumber', null, 'telephoneNumberList'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideFaxNumber')) { + $profileElements[] = new htmlTableExtendedInputField(_('Fax number'), 'inetOrgPerson_facsimileTelephoneNumber', null, 'facsimileTelephoneNumberList'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEMailAddress')) { + $profileElements[] = new htmlTableExtendedInputField(_('Email address'), 'inetOrgPerson_mail', null, 'mailList'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideLabeledURI')) { + $profileElements[] = new htmlTableExtendedInputField(_('Web site'), 'inetOrgPerson_labeledURI', null, 'labeledURIList'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideDepartments')) { + $profileElements[] = new htmlTableExtendedInputField(_('Department'), 'inetOrgPerson_departmentNumber', null, 'departmentNumberList'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideOu')) { + $profileElements[] = new htmlTableExtendedInputField(_('Organisational unit'), 'inetOrgPerson_ou', null, 'ouList'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideO')) { + $profileElements[] = new htmlTableExtendedInputField(_('Organisation'), 'inetOrgPerson_o', null, 'oList'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideJobTitle')) { + $profileElements[] = new htmlTableExtendedInputField(_('Job title'), 'inetOrgPerson_title', null, 'title'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEmployeeType')) { + $profileElements[] = new htmlTableExtendedInputField(_('Employee type'), 'inetOrgPerson_employeeType', null, 'employeeType'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideBusinessCategory')) { + $profileElements[] = new htmlTableExtendedInputField(_('Business category'), 'inetOrgPerson_businessCategory', null, 'businessCategory'); + } + if (sizeof($profileElements) > 0) { + $profileContainer = new htmlTable(); + for ($i = 0; $i < sizeof($profileElements); $i++) { + $profileContainer->addElement($profileElements[$i]); + $profileContainer->addNewLine(); + } + $return['profile_options'] = $profileContainer; + } + // profile checks and mappings + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideInitials')) { + $return['profile_mappings']['inetOrgPerson_initials'] = 'initials'; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideDescription')) { + $return['profile_mappings']['inetOrgPerson_description'] = 'description'; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideJobTitle')) { + $return['profile_checks']['inetOrgPerson_title'] = array( + 'type' => 'ext_preg', + 'regex' => 'title', + 'error_message' => $this->messages['title'][0]); + $return['profile_mappings']['inetOrgPerson_title'] = 'title'; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEmployeeType')) { + $return['profile_checks']['inetOrgPerson_employeeType'] = array( + 'type' => 'ext_preg', + 'regex' => 'employeeType', + 'error_message' => $this->messages['employeeType'][0]); + $return['profile_mappings']['inetOrgPerson_employeeType'] = 'employeeType'; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideBusinessCategory')) { + $return['profile_checks']['inetOrgPerson_businessCategory'] = array( + 'type' => 'ext_preg', + 'regex' => 'businessCategory', + 'error_message' => $this->messages['businessCategory'][0]); + $return['profile_mappings']['inetOrgPerson_businessCategory'] = 'businessCategory'; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideStreet')) { + $return['profile_checks']['inetOrgPerson_street'] = array( + 'type' => 'ext_preg', + 'regex' => 'street', + 'error_message' => $this->messages['street'][0]); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostalCode')) { + $return['profile_checks']['inetOrgPerson_postalCode'] = array( + 'type' => 'ext_preg', + 'regex' => 'postalCode', + 'error_message' => $this->messages['postalCode'][0]); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostalAddress')) { + $return['profile_checks']['inetOrgPerson_postalAddress'] = array( + 'type' => 'ext_preg', + 'regex' => 'postalAddress', + 'error_message' => $this->messages['postalAddress'][0]); + $return['profile_mappings']['inetOrgPerson_postalAddress'] = 'postalAddress'; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideRegisteredAddress')) { + $return['profile_checks']['inetOrgPerson_registeredAddress'] = array( + 'type' => 'ext_preg', + 'regex' => 'postalAddress', + 'error_message' => $this->messages['registeredAddress'][0]); + $return['profile_mappings']['inetOrgPerson_registeredAddress'] = 'registeredAddress'; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideOfficeName')) { + $return['profile_mappings']['inetOrgPerson_physicalDeliveryOfficeName'] = 'physicalDeliveryOfficeName'; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideRoomNumber')) { + $return['profile_mappings']['inetOrgPerson_roomNumber'] = 'roomNumber'; + } + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'inetOrgPerson_firstName', + 'description' => _('First name'), + 'help' => 'givenName', + 'example' => _('Steve') + ), + array( + 'name' => 'inetOrgPerson_lastName', + 'description' => _('Last name'), + 'help' => 'sn', + 'example' => _('Miller'), + 'required' => true + ) + ); + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideInitials')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_initials', + 'description' => _('Initials'), + 'help' => 'initials', + 'example' => 'A.B.' + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideDescription')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_description', + 'description' => _('Description'), + 'help' => 'description', + 'example' => _('Temp, contract till December') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideJobTitle')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_title', + 'description' => _('Job title'), + 'help' => 'titleList', + 'example' => _('President') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEmployeeNumber')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_employeeNumber', + 'description' => _('Employee number'), + 'help' => 'employeeNumber', + 'example' => '123456' + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEmployeeType')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_type', + 'description' => _('Employee type'), + 'help' => 'employeeType', + 'example' => _('Temp') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideManager')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_manager', + 'description' => _('Manager'), + 'help' => 'managerList', + 'example' => _('uid=smiller,ou=People,dc=company,dc=com') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideBusinessCategory')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_businessCategory', + 'description' => _('Business category'), + 'help' => 'businessCategoryList', + 'example' => _('Administration') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideStreet')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_street', + 'description' => _('Street'), + 'help' => 'streetList', + 'example' => _('Mystreetname 42') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostalCode')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_postalCode', + 'description' => _('Postal code'), + 'help' => 'postalCodeList', + 'example' => _('GB-12345') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostalAddress')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_address', + 'description' => _('Postal address'), + 'help' => 'postalAddress', + 'example' => _('MyCity') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideRegisteredAddress')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_registeredAddress', + 'description' => _('Registered address'), + 'help' => 'registeredAddress', + 'example' => _('MyCity') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostOfficeBox')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_postOfficeBox', + 'description' => _('Post office box'), + 'help' => 'postOfficeBoxList', + 'example' => _('12345') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideTelephoneNumber')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_telephone', + 'description' => _('Telephone number'), + 'help' => 'telephoneNumberList', + 'example' => _('123-123-1234') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideHomeTelephoneNumber')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_homePhone', + 'description' => _('Home telephone number'), + 'help' => 'homePhoneList', + 'example' => _('123-124-1234') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideMobileNumber')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_mobile', + 'description' => _('Mobile number'), + 'help' => 'mobileTelephoneNumberList', + 'example' => _('123-123-1235') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideFaxNumber')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_fax', + 'description' => _('Fax number'), + 'help' => 'facsimileTelephoneNumberList', + 'example' => _('123-123-1236') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePager', true)) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_pager', + 'description' => _('Pager'), + 'help' => 'pagerList', + 'example' => _('123-123-1236') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEMailAddress')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_email', + 'description' => _('Email address'), + 'help' => 'mailList', + 'example' => _('user@company.com') + ); + if (isLAMProVersion()) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_sendPasswordMail', + 'description' => _('Send password via mail'), + 'help' => 'mailPassword', + 'values' => 'true, false', + 'default' => 'false', + 'example' => 'false' + ); + } + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideLabeledURI')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_labeledURI', + 'description' => _('Web site'), + 'help' => 'labeledURIList', + 'example' => _('http://www.company.com') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideRoomNumber')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_roomNumber', + 'description' => _('Room number'), + 'help' => 'roomNumber', + 'example' => 'A 2.24' + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideDepartments')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_departmentNumber', + 'description' => _('Department'), + 'help' => 'departmentNumberList', + 'example' => _('Administration') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideOu')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_ou', + 'description' => _('Organisational unit'), + 'help' => 'ouList', + 'example' => _('Administration') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideO')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_o', + 'description' => _('Organisation'), + 'help' => 'oList', + 'example' => _('YourCompany') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideLocation')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_l', + 'description' => _('Location'), + 'help' => 'lList', + 'example' => _('MyCity') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideState')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_st', + 'description' => _('State'), + 'help' => 'stList', + 'example' => _('New York') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideCarLicense')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_carLicense', + 'description' => _('Car license'), + 'help' => 'carLicense', + 'example' => _('yes') + ); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideOfficeName')) { + $return['upload_columns'][] = array( + 'name' => 'inetOrgPerson_physicalDeliveryOfficeName', + 'description' => _('Office name'), + 'help' => 'physicalDeliveryOfficeNameList', + 'example' => _('YourCompany') + ); + } + // available PDF fields + $return['PDF_fields'] = array( + 'givenName' => _('First name'), + 'sn' => _('Last name') + ); + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideDescription')) { + $return['PDF_fields']['description'] = _('Description'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideStreet')) { + $return['PDF_fields']['street'] = _('Street'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostOfficeBox')) { + $return['PDF_fields']['postOfficeBox'] = _('Post office box'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostalCode')) { + $return['PDF_fields']['postalCode'] = _('Postal code'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideLocation')) { + $return['PDF_fields']['location'] = _('Location'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideState')) { + $return['PDF_fields']['state'] = _('State'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostalAddress')) { + $return['PDF_fields']['postalAddress'] = _('Postal address'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideRegisteredAddress')) { + $return['PDF_fields']['registeredAddress'] = _('Registered address'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideOfficeName')) { + $return['PDF_fields']['officeName'] = _('Office name'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideRoomNumber')) { + $return['PDF_fields']['roomNumber'] = _('Room number'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideTelephoneNumber')) { + $return['PDF_fields']['telephoneNumber'] = _('Telephone number'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideHomeTelephoneNumber')) { + $return['PDF_fields']['homePhone'] = _('Home telephone number'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideMobileNumber')) { + $return['PDF_fields']['mobileTelephoneNumber'] = _('Mobile number'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideFaxNumber')) { + $return['PDF_fields']['facsimileTelephoneNumber'] = _('Fax number'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePager', true)) { + $return['PDF_fields']['pager'] = _('Pager'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEMailAddress')) { + $return['PDF_fields']['mail'] = _('Email address'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideLabeledURI')) { + $return['PDF_fields']['labeledURI'] = _('Web site'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideJobTitle')) { + $return['PDF_fields']['title'] = _('Job title'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideCarLicense')) { + $return['PDF_fields']['carLicense'] = _('Car license'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEmployeeType')) { + $return['PDF_fields']['employeeType'] = _('Employee type'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideBusinessCategory')) { + $return['PDF_fields']['businessCategory'] = _('Business category'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideDepartments')) { + $return['PDF_fields']['departmentNumber'] = _('Department'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideManager')) { + $return['PDF_fields']['manager'] = _('Manager'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideO')) { + $return['PDF_fields']['o'] = _('Organisation'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideOu')) { + $return['PDF_fields']['ou'] = _('Organisational unit'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEmployeeNumber')) { + $return['PDF_fields']['employeeNumber'] = _('Employee number'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideInitials')) { + $return['PDF_fields']['initials'] = _('Initials'); + } + + if (isset($_SESSION['loggedIn']) && ($_SESSION['loggedIn'] === true)) { + $modules = $_SESSION['config']->get_AccountModules($this->get_scope()); + if (!in_array('posixAccount', $modules)) { + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideUID')) { + $return['PDF_fields']['uid'] = _('User name'); + } + $return['PDF_fields']['cn'] = _('Common name'); + } + } + // help Entries + $return['help'] = array ( + 'description' => array ( + "Headline" => _("Description"), 'attr' => 'description', + "Text" => _("User description. If left empty sur- and give name will be used.") + ), + 'title' => array ( + "Headline" => _("Job title"), 'attr' => 'title', + "Text" => _("Job title of user: President, department manager, ...") + ), + 'titleList' => array ( + "Headline" => _("Job title"), 'attr' => 'title', + "Text" => _("Job title of user: President, department manager, ...") . ' ' . _("Multiple values are separated by semicolon.") + ), + 'givenName' => array ( + "Headline" => _("First name"), 'attr' => 'givenName', + "Text" => _("First name of user. Only letters, - and spaces are allowed.") + ), + 'sn' => array ( + "Headline" => _("Last name"), 'attr' => 'sn', + "Text" => _("Last name of user. Only letters, - and spaces are allowed.") + ), + 'employeeType' => array ( + "Headline" => _("Employee type"), 'attr' => 'employeeType', + "Text" => _("Employee type: Contractor, Employee, Intern, Temp, External, ...") + ), + 'manager' => array ( + "Headline" => _("Manager"), 'attr' => 'manager', + "Text" => _("This is the LDAP DN of the user's manager. Use this property to represent hierarchies in your company.") + ), + 'managerList' => array ( + "Headline" => _("Manager"), 'attr' => 'manager', + "Text" => _("This is the LDAP DN of the user's manager. Use this property to represent hierarchies in your company.") . ' ' . _("Multiple values are separated by semicolon.") + ), + 'street' => array ( + "Headline" => _("Street"), 'attr' => 'street', + "Text" => _("The street name of the user's address.") + ), + 'streetList' => array ( + "Headline" => _("Street"), 'attr' => 'street', + "Text" => _("The street name of the user's address.") . ' ' . _("Multiple values are separated by semicolon.") + ), + 'postOfficeBox' => array ( + "Headline" => _("Post office box"), 'attr' => 'postOfficeBox', + "Text" => _("The post office box of the user's address.") + ), + 'postOfficeBoxList' => array ( + "Headline" => _("Post office box"), 'attr' => 'postOfficeBox', + "Text" => _("The post office box of the user's address.") . ' ' . _("Multiple values are separated by semicolon.") + ), + 'postalCode' => array ( + "Headline" => _("Postal code"), 'attr' => 'postalCode', + "Text" => _("The postal code of the user's address.") + ), + 'postalCodeList' => array ( + "Headline" => _("Postal code"), 'attr' => 'postalCode', + "Text" => _("The postal code of the user's address.") . ' ' . _("Multiple values are separated by semicolon.") + ), + 'postalAddress' => array ( + "Headline" => _("Postal address"), 'attr' => 'postalAddress', + "Text" => _("Postal address, city") + ), + 'registeredAddress' => array ( + "Headline" => _("Registered address"), 'attr' => 'registeredAddress', + "Text" => _("Registered address, city") + ), + 'telephoneNumber' => array ( + "Headline" => _("Telephone number"), 'attr' => 'telephoneNumber', + "Text" => _("The user's telephone number.") + ), + 'telephoneNumberList' => array ( + "Headline" => _("Telephone number"), 'attr' => 'telephoneNumber', + "Text" => _("The user's telephone number.") . ' ' . _('Multiple values are separated by semicolon.') + ), + 'mobile' => array ( + "Headline" => _("Mobile number"), 'attr' => 'mobile', + "Text" => _("The user's mobile number.") + ), + 'mobileTelephoneNumberList' => array ( + "Headline" => _("Mobile number"), 'attr' => 'mobile', + "Text" => _("The user's mobile number.") . ' ' . _('Multiple values are separated by semicolon.') + ), + 'facsimileTelephoneNumber' => array ( + "Headline" => _("Fax number"), 'attr' => 'facsimileTelephoneNumber', + "Text" => _("The user's fax number.") + ), + 'facsimileTelephoneNumberList' => array ( + "Headline" => _("Fax number"), 'attr' => 'facsimileTelephoneNumber', + "Text" => _("The user's fax number.") . ' ' . _('Multiple values are separated by semicolon.') + ), + 'pager' => array ( + "Headline" => _('Pager'), 'attr' => 'pager', + "Text" => _("The user's pager number.") + ), + 'pagerList' => array ( + "Headline" => _('Pager'), 'attr' => 'pager', + "Text" => _("The user's pager number.") . ' ' . _('Multiple values are separated by semicolon.') + ), + 'mail' => array ( + "Headline" => _("Email address"), 'attr' => 'mail', + "Text" => _("The user's email address.") . ' ' . _('You can use "$user", "$firstname" and "$lastname" as wildcards for user name, first and last name.') + ), + 'mailList' => array ( + "Headline" => _("Email address"), 'attr' => 'mail', + "Text" => _("The user's email address.") . ' ' . _('Multiple values are separated by semicolon.') + . ' ' . _('You can use "$user", "$firstname" and "$lastname" as wildcards for user name, first and last name.') + ), + "mailPassword" => array ( + "Headline" => _("Send password via mail"), + "Text" => _("Sends the password to the user via mail. Please edit your LAM server profile to setup the mail settings.")), + 'labeledURI' => array( + "Headline" => _("Web site"), 'attr' => 'labeledURI', + "Text" => _("The user's web site (e.g. http://www.company.com).") + ), + 'labeledURIList' => array( + "Headline" => _("Web site"), 'attr' => 'labeledURI', + "Text" => _("The user's web site (e.g. http://www.company.com).") . ' ' . _('Multiple values are separated by semicolon.') + ), + 'cn' => array ( + "Headline" => _("Common name"), 'attr' => 'cn', + "Text" => _("This is the natural name of the user. If empty, the first and last name is used.") + ), + 'uid' => array( + "Headline" => _("User name"), 'attr' => 'uid', + "Text" => _("User name of the user who should be created. Valid characters are: a-z,A-Z,0-9, @.-_.") + ), + 'photoUpload' => array( + "Headline" => _("Add photo"), 'attr' => 'jpegPhoto', + "Text" => _("Please select an image file to upload. It must be in JPG format (.jpg/.jpeg).") + ), + 'homePhone' => array( + "Headline" => _("Home telephone number"), 'attr' => 'homePhone', + "Text" => _("The user's private telephone number.") + ), + 'homePhoneList' => array( + "Headline" => _("Home telephone number"), 'attr' => 'homePhone', + "Text" => _("The user's private telephone number.") . ' ' . _('Multiple values are separated by semicolon.') + ), + 'roomNumber' => array( + "Headline" => _("Room number"), 'attr' => 'roomNumber', + "Text" => _("The room number of the employee's office.") + ), + 'businessCategory' => array( + "Headline" => _("Business category"), 'attr' => 'businessCategory', + "Text" => _("Business category (e.g. Administration, IT-Services, Manangement, ...)") + ), + 'businessCategoryList' => array( + "Headline" => _("Business category"), 'attr' => 'businessCategory', + "Text" => _("Business category (e.g. Administration, IT-Services, Manangement, ...)") . '. ' . _("Multiple values are separated by semicolon.") + ), + 'l' => array( + "Headline" => _("Location"), 'attr' => 'l', + "Text" => _("This describes the location of the user.") + ), + 'lList' => array( + "Headline" => _("Location"), 'attr' => 'l', + "Text" => _("This describes the location of the user.") . ' ' . _("Multiple values are separated by semicolon.") + ), + 'st' => array( + "Headline" => _("State"), 'attr' => 'st', + "Text" => _("The state where the user resides or works.") + ), + 'stList' => array( + "Headline" => _("State"), 'attr' => 'st', + "Text" => _("The state where the user resides or works.") . ' ' . _("Multiple values are separated by semicolon.") + ), + 'carLicense' => array( + "Headline" => _("Car license"), 'attr' => 'carLicense', + "Text" => _("This can be used to specify if the user has a car license.") + ), + 'physicalDeliveryOfficeName' => array( + "Headline" => _("Office name"), 'attr' => 'physicalDeliveryOfficeName', + "Text" => _("The office name of the user (e.g. YourCompany, Human Resources).") + ), + 'physicalDeliveryOfficeNameList' => array( + "Headline" => _("Office name"), 'attr' => 'physicalDeliveryOfficeName', + "Text" => _("The office name of the user (e.g. YourCompany, Human Resources).") . ' ' . _("Multiple values are separated by semicolon.") + ), + 'departmentNumber' => array( + "Headline" => _("Department"), 'attr' => 'departmentNumber', + "Text" => _("Here you can enter the user's department.") + ), + 'departmentNumberList' => array( + "Headline" => _("Department"), 'attr' => 'departmentNumber', + "Text" => _("Here you can enter the user's department.") . ' ' . _("Multiple values are separated by semicolon.") + ), + 'hiddenOptions' => array( + "Headline" => _("Hidden options"), + "Text" => _("The selected options will not be managed inside LAM. You can use this to reduce the number of displayed input fields.") + ), + 'pwdHash' => array( + "Headline" => _("Password hash type"), + "Text" => _("LAM supports CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 and SMD5 to generate the hash value of passwords. SSHA and CRYPT are the most common but CRYPT does not support passwords greater than 8 letters. We do not recommend to use plain text passwords.") + ), + 'ou' => array( + "Headline" => _("Organisational unit"), 'attr' => 'ou', + "Text" => _("The user's organisational unit.") + ), + 'ouList' => array( + "Headline" => _("Organisational unit"), 'attr' => 'ou', + "Text" => _("The user's organisational unit.") . ' ' . _('Multiple values are separated by semicolon.') + ), + 'o' => array( + "Headline" => _("Organisation"), 'attr' => 'o', + "Text" => _("The user's organisation name.") + ), + 'oList' => array( + "Headline" => _("Organisation"), 'attr' => 'o', + "Text" => _("The user's organisation name.") . ' ' . _('Multiple values are separated by semicolon.') + ), + 'employeeNumber' => array( + "Headline" => _("Employee number"), 'attr' => 'employeeNumber', + "Text" => _("The user's unique employee number.") + ), + 'initials' => array( + "Headline" => _("Initials"), 'attr' => 'initials', + "Text" => _("The initials of the user's first names.") . ' ' . _('Multiple values are separated by semicolon.') + ), + 'userPassword' => array( + "Headline" => _("Password"), + "Text" => _("Please enter the password which you want to set for this account.") + ), + 'userCertificate' => array( + "Headline" => _('User certificates'), + "Text" => _('These are the user\'s certificates.') + ), + ); + return $return; + } + + /** + * This functions return true if all needed settings are done. + * + * @return boolean true, if all is ok + */ + function module_complete() { + if (!$this->getAccountContainer()->isNewAccount) { + // check if account is based on our object class + $objectClasses = $this->getAccountContainer()->attributes_orig['objectClass']; + if (is_array($objectClasses) && !in_array('inetOrgPerson', $objectClasses)) { + return true; + } + } + if (!isset($this->attributes['sn'][0]) || ($this->attributes['sn'][0] == '')) return false; + $modules = $_SESSION['config']->get_AccountModules($this->get_scope()); + if (!in_array('posixAccount', $modules)) { + if (($this->getAccountContainer()->rdn == 'uid') && !isset($this->attributes['uid'][0])) { + return false; + } + } + return true; + } + + /** + * Controls if the module button the account page is visible and activated. + * + * @return string status ("enabled", "disabled", "hidden") + */ + function getButtonStatus() { + if (!$this->getAccountContainer()->isNewAccount) { + // check if account is based on our object class + $objectClasses = $this->getAccountContainer()->attributes_orig['objectClass']; + if (is_array($objectClasses) && !in_array('inetOrgPerson', $objectClasses)) { + return "disabled"; + } + } + return "enabled"; + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + function save_attributes() { + // skip saving if account is based on another structural object class + if (!$this->getAccountContainer()->isNewAccount && !in_array('inetOrgPerson', $this->getAccountContainer()->attributes_orig['objectClass'])) { + return array(); + } + // replace $user in email + if (!empty($this->attributes['mail'][0])) { + $user = null; + if ($this->getAccountContainer()->getAccountModule('posixAccount') != null) { + $attrs = $this->getAccountContainer()->getAccountModule('posixAccount')->getAttributes(); + $user = $attrs['uid'][0]; + } + elseif (!empty($this->attributes['uid'][0])) { + $user = $this->attributes['uid'][0]; + } + if (!empty($user)) { + foreach ($this->attributes['mail'] as &$mail) { + $mail = str_replace('$user', $user, $mail); + } + } + } + $return = $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig); + // postalAddress, registeredAddress, facsimileTelephoneNumber and jpegPhoto need special removing + if (isset($return[$this->getAccountContainer()->dn_orig]['remove']['postalAddress'])) { + $return[$this->getAccountContainer()->dn_orig]['modify']['postalAddress'] = $this->attributes['postalAddress']; + unset($return[$this->getAccountContainer()->dn_orig]['remove']['postalAddress']); + } + if (isset($return[$this->getAccountContainer()->dn_orig]['remove']['registeredAddress'])) { + $return[$this->getAccountContainer()->dn_orig]['modify']['registeredAddress'] = $this->attributes['registeredAddress']; + unset($return[$this->getAccountContainer()->dn_orig]['remove']['registeredAddress']); + } + if (isset($return[$this->getAccountContainer()->dn_orig]['remove']['facsimileTelephoneNumber'])) { + $return[$this->getAccountContainer()->dn_orig]['modify']['facsimileTelephoneNumber'] = $this->attributes['facsimileTelephoneNumber']; + unset($return[$this->getAccountContainer()->dn_orig]['remove']['facsimileTelephoneNumber']); + } + if (isset($return[$this->getAccountContainer()->dn_orig]['add']['facsimileTelephoneNumber']) + && isset($this->orig['facsimileTelephoneNumber']) && (sizeof($this->orig['facsimileTelephoneNumber']) > 0)) { + $return[$this->getAccountContainer()->dn_orig]['modify']['facsimileTelephoneNumber'] = $this->attributes['facsimileTelephoneNumber']; + unset($return[$this->getAccountContainer()->dn_orig]['add']['facsimileTelephoneNumber']); + } + if (isset($return[$this->getAccountContainer()->dn_orig]['remove']['jpegPhoto'])) { + $return[$this->getAccountContainer()->dn_orig]['modify']['jpegPhoto'] = array(); + unset($return[$this->getAccountContainer()->dn_orig]['remove']['jpegPhoto']); + } + // add information about clear text password + if ($this->clearTextPassword != null) { + $return[$this->getAccountContainer()->dn_orig]['info']['userPasswordClearText'][0] = $this->clearTextPassword; + } + return $return; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + $errors = array(); + $replacements = array('$lastname' => 'sn', '$firstname' => 'givenName'); + // add parent object classes + if ($this->getAccountContainer()->isNewAccount) { + if (!in_array('organizationalPerson', $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = 'organizationalPerson'; + } + if (!in_array('person', $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = 'person'; + } + } + // load and check attributes + // description + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideDescription') && !$this->isAdminReadOnly('description')) { + $this->processMultiValueInputTextField('description', $errors); + } + // last name + if (!$this->isAdminReadOnly('sn')) { + $this->attributes['sn'][0] = trim($_POST['sn']); + if (!get_preg($this->attributes['sn'][0], 'realname')) $errors[] = $this->messages['lastname'][0]; + } + // first name + if (!$this->isAdminReadOnly('givenName')) { + $this->attributes['givenName'][0] = trim($_POST['givenName']); + if (($this->attributes['givenName'][0] != '') && !get_preg($this->attributes['givenName'][0], 'realname')) $errors[] = $this->messages['givenName'][0]; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideJobTitle') && !$this->isAdminReadOnly('title')) { + $this->processMultiValueInputTextField('title', $errors, 'title'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEMailAddress') && !$this->isAdminReadOnly('mail')) { + $this->processMultiValueInputTextField('mail', $errors, 'email'); + if (!empty($this->attributes['mail'])) { + foreach ($this->attributes['mail'] as &$mail) { + foreach ($replacements as $wildcard => $key) { + if (!empty($this->attributes[$key][0])) { + $mail = str_replace($wildcard, $this->attributes[$key][0], $mail); + } + } + if (empty($this->orig['mail']) || !in_array($mail, $this->orig['mail'])) { + if ($this->emailExists($mail)) { + $msg = $this->messages['mail'][1]; + $msg[] = array(htmlspecialchars($mail)); + $errors[] = $msg; + } + } + } + } + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideTelephoneNumber') && !$this->isAdminReadOnly('telephoneNumber')) { + $this->processMultiValueInputTextField('telephoneNumber', $errors, 'telephone'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideMobileNumber') && !$this->isAdminReadOnly('mobile')) { + $this->processMultiValueInputTextField('mobile', $errors, 'telephone'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideFaxNumber') && !$this->isAdminReadOnly('facsimileTelephoneNumber')) { + $this->processMultiValueInputTextField('facsimileTelephoneNumber', $errors, 'telephone'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePager', true) && !$this->isAdminReadOnly('pager')) { + $this->processMultiValueInputTextField('pager', $errors, 'telephone'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideHomeTelephoneNumber') && !$this->isAdminReadOnly('homePhone')) { + $this->processMultiValueInputTextField('homePhone', $errors, 'telephone'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideStreet') && !$this->isAdminReadOnly('street')) { + $this->processMultiValueInputTextField('street', $errors, 'street'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostOfficeBox') && !$this->isAdminReadOnly('postOfficeBox')) { + $this->processMultiValueInputTextField('postOfficeBox', $errors); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostalCode') && !$this->isAdminReadOnly('postalCode')) { + $this->processMultiValueInputTextField('postalCode', $errors, 'postalCode'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostalAddress') && !$this->isAdminReadOnly('postalAddress')) { + $addressCounter = 0; + while (isset($_POST['postalAddress' . $addressCounter])) { + $this->attributes['postalAddress'][$addressCounter] = implode('$', preg_split('/[\r][\n]/', $_POST['postalAddress' . $addressCounter])); + if (!get_preg($this->attributes['postalAddress'][$addressCounter], 'postalAddress')) $errors[] = $this->messages['postalAddress'][0]; + if ($this->attributes['postalAddress'][$addressCounter] == '') { + unset($this->attributes['postalAddress'][$addressCounter]); + } + $addressCounter++; + } + if (isset($_POST['addPostalAddress'])) { + $this->attributes['postalAddress'][] = ''; + } + $this->attributes['postalAddress'] = array_values($this->attributes['postalAddress']); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideLabeledURI') && !$this->isAdminReadOnly('labeledURI')) { + $this->processMultiValueInputTextField('labeledURI', $errors); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideRegisteredAddress') && !$this->isAdminReadOnly('registeredAddress')) { + $addressCounter = 0; + while (isset($_POST['registeredAddress' . $addressCounter])) { + $this->attributes['registeredAddress'][$addressCounter] = implode('$', preg_split('/[\r][\n]/', $_POST['registeredAddress' . $addressCounter])); + if (!get_preg($this->attributes['registeredAddress'][$addressCounter], 'postalAddress')) $errors[] = $this->messages['registeredAddress'][0]; + if ($this->attributes['registeredAddress'][$addressCounter] == '') { + unset($this->attributes['registeredAddress'][$addressCounter]); + } + $addressCounter++; + } + if (isset($_POST['addRegisteredAddress'])) { + $this->attributes['registeredAddress'][] = ''; + } + $this->attributes['registeredAddress'] = array_values($this->attributes['registeredAddress']); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEmployeeType') && !$this->isAdminReadOnly('employeeType')) { + $this->attributes['employeeType'][0] = $_POST['employeeType']; + if (!get_preg($this->attributes['employeeType'][0], 'employeeType')) $errors[] = $this->messages['employeeType'][0]; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideRoomNumber') && !$this->isAdminReadOnly('roomNumber')) { + $this->attributes['roomNumber'][0] = $_POST['roomNumber']; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideLocation') && !$this->isAdminReadOnly('l')) { + $this->processMultiValueInputTextField('l', $errors); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideState') && !$this->isAdminReadOnly('st')) { + $this->processMultiValueInputTextField('st', $errors); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideCarLicense') && !$this->isAdminReadOnly('carLicense')) { + $this->attributes['carLicense'][0] = $_POST['carLicense']; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideOfficeName') && !$this->isAdminReadOnly('physicalDeliveryOfficeName')) { + $this->processMultiValueInputTextField('physicalDeliveryOfficeName', $errors); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideBusinessCategory') && !$this->isAdminReadOnly('businessCategory')) { + $this->processMultiValueInputTextField('businessCategory', $errors, 'businessCategory'); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideDepartments') && !$this->isAdminReadOnly('departmentNumber')) { + $this->processMultiValueInputTextField('departmentNumber', $errors); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEmployeeNumber') && !$this->isAdminReadOnly('employeeNumber')) { + $this->attributes['employeeNumber'][0] = $_POST['employeeNumber']; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideOu') && !$this->isAdminReadOnly('ou')) { + $this->processMultiValueInputTextField('ou', $errors); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideO') && !$this->isAdminReadOnly('o')) { + $this->processMultiValueInputTextField('o', $errors); + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideInitials') && !$this->isAdminReadOnly('initials')) { + $this->attributes['initials'] = preg_split('/;[ ]*/', $_POST['initials']); + } + + if (!$this->isUnixActive()) { + // uid + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideUID') && !$this->isAdminReadOnly('uid')) { + if (isset($_POST['uid']) && ($_POST['uid'] != '')) { + if (!get_preg($_POST['uid'], 'username')) { + $errors[] = $this->messages['uid'][0]; + } + else { + $this->attributes['uid'][0] = $_POST['uid']; + } + } + elseif (isset($this->attributes['uid'][0])) { + unset($this->attributes['uid'][0]); + } + } + // cn + if (!$this->isAdminReadOnly('cn')) { + $this->processMultiValueInputTextField('cn', $errors, 'cn'); + if (empty($this->attributes['cn'][0])) { + if ($_POST['givenName'] != '') { + $this->attributes['cn'][0] = $_POST['givenName'] . " " . $_POST['sn']; + } + else { + $this->attributes['cn'][0] = $_POST['sn']; + } + } + } + if (!$this->isAdminReadOnly('userPassword')) { + if (isset($_POST['lockPassword'])) { + $this->attributes['userPassword'][0] = pwd_disable($this->attributes['userPassword'][0]); + } + if (isset($_POST['unlockPassword'])) { + $this->attributes['userPassword'][0] = pwd_enable($this->attributes['userPassword'][0]); + } + if (isset($_POST['removePassword'])) { + unset($this->attributes['userPassword']); + } + } + } + + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidejpegPhoto') && isset($_POST['delPhoto']) && !$this->isAdminReadOnly('jpegPhoto')) { + $this->attributes['jpegPhoto'] = array(); + } + // Return error-messages + return $errors; + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return array HTML meta data + */ + function display_html_attributes() { + $this->initCache(); + $equalWidthElements = array(); + $container = new htmlTable(); + $fieldContainer = new htmlTable(); + $container->addElement($fieldContainer); + // uid + if (!$this->isUnixActive() && !$this->isBooleanConfigOptionSet('inetOrgPerson_hideUID')) { + if ($this->isAdminReadOnly('uid')) { + $this->addSimpleReadOnlyField($fieldContainer, 'uid', _('User name')); + } + else { + $this->addSimpleInputTextField($fieldContainer, 'uid', _('User name')); + $equalWidthElements[] = 'uid'; + } + } + // first name + if ($this->isAdminReadOnly('givenName')) { + $this->addSimpleReadOnlyField($fieldContainer, 'givenName', _('First name')); + } + else { + $this->addSimpleInputTextField($fieldContainer, 'givenName', _('First name')); + $equalWidthElements[] = 'givenName'; + } + // last name + if ($this->isAdminReadOnly('sn')) { + $this->addSimpleReadOnlyField($fieldContainer, 'sn', _('Last name')); + } + else { + $this->addSimpleInputTextField($fieldContainer, 'sn', _('Last name'), true); + $equalWidthElements[] = 'sn'; + } + // initials + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideInitials')) { + if ($this->isAdminReadOnly('initials')) { + $this->addSimpleReadOnlyField($fieldContainer, 'initials', _('Initials')); + } + else { + $this->addSimpleInputTextField($fieldContainer, 'initials', _('Initials')); + $equalWidthElements[] = 'initials'; + } + } + // common name + if (!$this->isUnixActive()) { + if ($this->isAdminReadOnly('cn')) { + $this->addSimpleReadOnlyField($fieldContainer, 'cn', _('Common name')); + } + else { + $this->addMultiValueInputTextField($fieldContainer, 'cn', _('Common name'), true); + $equalWidthElements[] = 'cn'; + } + } + // description + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideDescription')) { + if ($this->isAdminReadOnly('description')) { + $this->addSimpleReadOnlyField($fieldContainer, 'description', _('Description')); + } + else { + $this->addMultiValueInputTextField($fieldContainer, 'description', _('Description'), false, null, false, null, null, $equalWidthElements); + } + } + + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideStreet') || !$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostOfficeBox') + || !$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostalCode') || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideLocation') + || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideState') || !$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostalAddress') + || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideOfficeName') || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideRoomNumber') + || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideRegisteredAddress')) { + $fieldContainer->addElement(new htmlSubTitle(_('Address')), true); + } + + // street + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideStreet')) { + if ($this->isAdminReadOnly('street')) { + $this->addSimpleReadOnlyField($fieldContainer, 'street', _('Street')); + } + else { + $this->addMultiValueInputTextField($fieldContainer, 'street', _('Street'), false, null, false, null, null, $equalWidthElements); + } + } + // post office box + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostOfficeBox')) { + if ($this->isAdminReadOnly('postOfficeBox')) { + $this->addSimpleReadOnlyField($fieldContainer, 'postOfficeBox', _('Post office box')); + } + else { + $this->addMultiValueInputTextField($fieldContainer, 'postOfficeBox', _('Post office box'), false, null, false, null, null, $equalWidthElements); + } + } + // postal code + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostalCode')) { + if ($this->isAdminReadOnly('postalCode')) { + $this->addSimpleReadOnlyField($fieldContainer, 'postalCode', _('Postal code')); + } + else { + $this->addMultiValueInputTextField($fieldContainer, 'postalCode', _('Postal code'), false, null, false, null, null, $equalWidthElements); + } + } + // location + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideLocation')) { + if ($this->isAdminReadOnly('l')) { + $this->addSimpleReadOnlyField($fieldContainer, 'l', _('Location')); + } + else { + $this->addMultiValueInputTextField($fieldContainer, 'l', _('Location'), false, null, false, null, null, $equalWidthElements); + } + } + // state + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideState')) { + if ($this->isAdminReadOnly('st')) { + $this->addSimpleReadOnlyField($fieldContainer, 'st', _('State')); + } + else { + $this->addMultiValueInputTextField($fieldContainer, 'st', _('State'), false, null, false, null, null, $equalWidthElements); + } + } + // postal address + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostalAddress')) { + $postalAddresses = array(); + if (isset($this->attributes['postalAddress'][0])) { + for ($i = 0; $i < sizeof($this->attributes['postalAddress']); $i++) { + $postalAddresses[] = implode("\r\n", explode('$', $this->attributes['postalAddress'][$i])); + } + } + if (sizeof($postalAddresses) == 0) { + $postalAddresses[] = ''; + } + $addressLabel = new htmlOutputText(_('Postal address')); + $addressLabel->alignment = htmlElement::ALIGN_TOP; + $fieldContainer->addElement($addressLabel); + $addressContainer = new htmlGroup(); + for ($i = 0; $i < sizeof($postalAddresses); $i++) { + if ($this->isAdminReadOnly('postalAddress')) { + $val = str_replace("\r\n", '
    ', htmlspecialchars($postalAddresses[$i])); + $addressContainer->addElement(new htmlOutputText($val, false)); + if ($i < (sizeof($postalAddresses) - 1)) { + $addressContainer->addElement(new htmlOutputText('
    ', false)); + } + } + else { + $addressContainer->addElement(new htmlInputTextarea('postalAddress' . $i, $postalAddresses[$i], 30, 3)); + $equalWidthElements[] = 'postalAddress' . $i; + if ($i < (sizeof($postalAddresses) - 1)) { + $addressContainer->addElement(new htmlOutputText('
    ', false)); + } + else { + $addressContainer->addElement(new htmlButton('addPostalAddress', 'add.png', true)); + } + } + } + $fieldContainer->addElement($addressContainer); + if ($this->isAdminReadOnly('postalAddress')) { + $fieldContainer->addNewLine(); + } + else { + $addressHelp = new htmlHelpLink('postalAddress'); + $addressHelp->alignment = htmlElement::ALIGN_TOP; + $fieldContainer->addElement($addressHelp, true); + } + } + // registered address + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideRegisteredAddress')) { + $registeredAddresses = array(); + if (isset($this->attributes['registeredAddress'][0])) { + for ($i = 0; $i < sizeof($this->attributes['registeredAddress']); $i++) { + $registeredAddresses[] = implode("\r\n", explode('$', $this->attributes['registeredAddress'][$i])); + } + } + if (sizeof($registeredAddresses) == 0) { + $registeredAddresses[] = ''; + } + $registeredAddressLabel = new htmlOutputText(_('Registered address')); + $registeredAddressLabel->alignment = htmlElement::ALIGN_TOP; + $fieldContainer->addElement($registeredAddressLabel); + $registeredAddressContainer = new htmlGroup(); + for ($i = 0; $i < sizeof($registeredAddresses); $i++) { + if ($this->isAdminReadOnly('registeredAddress')) { + $val = str_replace("\r\n", '
    ', htmlspecialchars($registeredAddresses[$i])); + $registeredAddressContainer->addElement(new htmlOutputText($val, false)); + if ($i < (sizeof($registeredAddresses) - 1)) { + $registeredAddressContainer->addElement(new htmlOutputText('
    ', false)); + } + } + else { + $registeredAddressContainer->addElement(new htmlInputTextarea('registeredAddress' . $i, $registeredAddresses[$i], 30, 3)); + $equalWidthElements[] = 'registeredAddress' . $i; + if ($i < (sizeof($registeredAddresses) - 1)) { + $registeredAddressContainer->addElement(new htmlOutputText('
    ', false)); + } + else { + $registeredAddressContainer->addElement(new htmlButton('addRegisteredAddress', 'add.png', true)); + } + } + } + $fieldContainer->addElement($registeredAddressContainer); + if ($this->isAdminReadOnly('registeredAddress')) { + $fieldContainer->addNewLine(); + } + else { + $registeredAddressHelp = new htmlHelpLink('registeredAddress'); + $registeredAddressHelp->alignment = htmlElement::ALIGN_TOP; + $fieldContainer->addElement($registeredAddressHelp, true); + } + } + // office name + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideOfficeName')) { + if ($this->isAdminReadOnly('physicalDeliveryOfficeName')) { + $this->addSimpleReadOnlyField($fieldContainer, 'physicalDeliveryOfficeName', _('Office name')); + } + else { + $this->addMultiValueInputTextField($fieldContainer, 'physicalDeliveryOfficeName', _('Office name'), false, null, false, null, null, $equalWidthElements); + } + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideRoomNumber')) { + if ($this->isAdminReadOnly('roomNumber')) { + $this->addSimpleReadOnlyField($fieldContainer, 'roomNumber', _('Room number')); + } + else { + $this->addSimpleInputTextField($fieldContainer, 'roomNumber', _('Room number')); + $equalWidthElements[] = 'roomNumber'; + } + } + + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideTelephoneNumber') || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideHomeTelephoneNumber') + || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideMobileNumber') || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideFaxNumber') + || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideEMailAddress') || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideLabeledURI')) { + $fieldContainer->addElement(new htmlSubTitle(_('Contact data')), true); + } + + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideTelephoneNumber')) { + if ($this->isAdminReadOnly('telephoneNumber')) { + $this->addSimpleReadOnlyField($fieldContainer, 'telephoneNumber', _('Telephone number')); + } + else { + $this->addMultiValueInputTextField($fieldContainer, 'telephoneNumber', _('Telephone number'), false, null, false, null, null, $equalWidthElements); + } + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideHomeTelephoneNumber')) { + if ($this->isAdminReadOnly('homePhone')) { + $this->addSimpleReadOnlyField($fieldContainer, 'homePhone', _('Home telephone number')); + } + else { + $this->addMultiValueInputTextField($fieldContainer, 'homePhone', _('Home telephone number'), false, null, false, null, null, $equalWidthElements); + } + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideMobileNumber')) { + if ($this->isAdminReadOnly('mobile')) { + $this->addSimpleReadOnlyField($fieldContainer, 'mobile', _('Mobile number')); + } + else { + $this->addMultiValueInputTextField($fieldContainer, 'mobile', _('Mobile number'), false, null, false, null, null, $equalWidthElements); + } + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideFaxNumber')) { + if ($this->isAdminReadOnly('facsimileTelephoneNumber')) { + $this->addSimpleReadOnlyField($fieldContainer, 'facsimileTelephoneNumber', _('Fax number')); + } + else { + $this->addMultiValueInputTextField($fieldContainer, 'facsimileTelephoneNumber', _('Fax number'), false, null, false, null, null, $equalWidthElements); + } + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePager', true)) { + if ($this->isAdminReadOnly('pager')) { + $this->addSimpleReadOnlyField($fieldContainer, 'pager', _('Pager')); + } + else { + $this->addMultiValueInputTextField($fieldContainer, 'pager', _('Pager'), false, null, false, null, null, $equalWidthElements); + } + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEMailAddress')) { + if ($this->isAdminReadOnly('mail')) { + $this->addSimpleReadOnlyField($fieldContainer, 'mail', _('Email address')); + } + else { + $this->addMultiValueInputTextField($fieldContainer, 'mail', _('Email address'), false, null, false, null, null, $equalWidthElements); + } + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideLabeledURI')) { + if ($this->isAdminReadOnly('labeledURI')) { + $this->addSimpleReadOnlyField($fieldContainer, 'labeledURI', _('Web site')); + } + else { + $this->addMultiValueInputTextField($fieldContainer, 'labeledURI', _('Web site'), false, null, false, null, null, $equalWidthElements); + } + } + + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideJobTitle') || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideCarLicense') + || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideEmployeeType') || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideBusinessCategory') + || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideDepartments') || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideManager') + || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideuserCertificate')) { + $fieldContainer->addElement(new htmlSubTitle(_('Work details')), true); + } + + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideJobTitle')) { + if ($this->isAdminReadOnly('title')) { + $this->addSimpleReadOnlyField($fieldContainer, 'title', _('Job title')); + } + else { + $this->addMultiValueInputTextField($fieldContainer, 'title', _('Job title'), false, null, false, null, null, $equalWidthElements); + } + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideCarLicense')) { + if ($this->isAdminReadOnly('carLicense')) { + $this->addSimpleReadOnlyField($fieldContainer, 'carLicense', _('Car license')); + } + else { + $this->addSimpleInputTextField($fieldContainer, 'carLicense', _('Car license')); + $equalWidthElements[] = 'carLicense'; + } + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEmployeeNumber')) { + if ($this->isAdminReadOnly('employeeNumber')) { + $this->addSimpleReadOnlyField($fieldContainer, 'employeeNumber', _('Employee number')); + } + else { + $this->addSimpleInputTextField($fieldContainer, 'employeeNumber', _('Employee number')); + $equalWidthElements[] = 'employeeNumber'; + } + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEmployeeType')) { + if ($this->isAdminReadOnly('employeeType')) { + $this->addSimpleReadOnlyField($fieldContainer, 'employeeType', _('Employee type')); + } + else { + $this->addSimpleInputTextField($fieldContainer, 'employeeType', _('Employee type'), false, null, false, $this->employeeTypeCache); + $equalWidthElements[] = 'employeeType'; + } + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideBusinessCategory')) { + if ($this->isAdminReadOnly('businessCategory')) { + $this->addSimpleReadOnlyField($fieldContainer, 'businessCategory', _('Business category')); + } + else { + $this->addMultiValueInputTextField($fieldContainer, 'businessCategory', _('Business category'), false, null, false, $this->businessCategoryCache, null, $equalWidthElements); + } + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideDepartments')) { + if ($this->isAdminReadOnly('departmentNumber')) { + $this->addSimpleReadOnlyField($fieldContainer, 'departmentNumber', _('Department')); + } + else { + $this->addMultiValueInputTextField($fieldContainer, 'departmentNumber', _('Department'), false, null, false, $this->departmentCache, null, $equalWidthElements); + } + } + // organisational unit + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideOu')) { + if ($this->isAdminReadOnly('ou')) { + $this->addSimpleReadOnlyField($fieldContainer, 'ou', _('Organisational unit')); + } + else { + $this->addMultiValueInputTextField($fieldContainer, 'ou', _('Organisational unit'), false, null, false, $this->ouCache, null, $equalWidthElements); + } + } + // organisation + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideO')) { + if ($this->isAdminReadOnly('o')) { + $this->addSimpleReadOnlyField($fieldContainer, 'o', _('Organisation')); + } + else { + $this->addMultiValueInputTextField($fieldContainer, 'o', _('Organisation'), false, null, false, $this->oCache, null, $equalWidthElements); + } + } + // user certificates + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideuserCertificate')) { + $fieldContainer->addElement(new htmlOutputText(_('User certificates'))); + $userCertificateGroup = new htmlGroup(); + $userCertificateCount = 0; + if (isset($this->attributes['userCertificate;binary'])) { + $userCertificateCount = sizeof($this->attributes['userCertificate;binary']); + } + $userCertificateGroup->addElement(new htmlOutputText($userCertificateCount)); + $userCertificateGroup->addElement(new htmlSpacer('10px', null)); + if (!$this->isAdminReadOnly('manager')) { + $userCertificateGroup->addElement(new htmlAccountPageButton(get_class($this), 'userCertificate', 'manage', _('Manage'))); + } + $fieldContainer->addElement($userCertificateGroup); + if ($this->isAdminReadOnly('manager')) { + $fieldContainer->addNewLine(); + } + else { + $fieldContainer->addElement(new htmlHelpLink('userCertificate'), true); + } + } + // manager + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideManager')) { + $fieldContainer->addElement(new htmlOutputText(_('Manager'))); + if ($this->isAdminReadOnly('manager')) { + $fieldContainer->addNewLine(); + } + else { + $fieldContainer->addElement(new htmlAccountPageButton(get_class($this), 'manager', 'change', _("Change"))); + $fieldContainer->addElement(new htmlHelpLink('manager'), true); + } + if (isset($this->attributes['manager'][0])) { + $managerList = array(); + for ($i = 0; $i < sizeof($this->attributes['manager']); $i++) { + $managerList[] = $this->attributes['manager'][$i]; + } + usort($managerList, 'compareDN'); + $managers = new htmlTable(); + $managers->alignment = htmlElement::ALIGN_RIGHT; + $managers->colspan = 3; + for ($i = 0; $i < sizeof($managerList); $i++) { + $manager = new htmlOutputText(getAbstractDN($managerList[$i])); + $manager->alignment = htmlElement::ALIGN_RIGHT; + $managers->addElement($manager, true); + } + $fieldContainer->addElement(new htmlOutputText('')); + $fieldContainer->addElement($managers, true); + } + } + // password buttons + if (!$this->isUnixActive() && checkIfWriteAccessIsAllowed($this->get_scope()) && isset($this->attributes['userPassword'][0]) && !$this->isAdminReadOnly('userPassword')) { + $fieldContainer->addElement(new htmlSubTitle(_('Password')), true); + $pwdContainer = new htmlTable(); + if (pwd_is_enabled($this->attributes['userPassword'][0])) { + $pwdContainer->addElement(new htmlButton('lockPassword', _('Lock password'))); + } + else { + $pwdContainer->addElement(new htmlButton('unlockPassword', _('Unlock password'))); + } + $pwdContainer->addElement(new htmlButton('removePassword', _('Remove password'))); + $pwdContainer->colspan = 2; + $fieldContainer->addElement($pwdContainer); + } + // photo + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidejpegPhoto')) { + $imageContainer = new htmlTable(); + $imageContainer->alignment = htmlElement::ALIGN_TOP; + $photoFile = '../../graphics/userDefault.png'; + $noPhoto = true; + if (isset($this->attributes['jpegPhoto'][0])) { + $jpeg_filename = 'jpg' . getRandomNumber() . '.jpg'; + $outjpeg = @fopen(dirname(__FILE__) . '/../../tmp/' . $jpeg_filename, "wb"); + fwrite($outjpeg, $this->attributes['jpegPhoto'][0]); + fclose ($outjpeg); + $photoFile = '../../tmp/' . $jpeg_filename; + $noPhoto = false; + } + $imageContainer->addElement(new htmlImage($photoFile), true); + if (!$this->isAdminReadOnly('jpegPhoto')) { + if ($noPhoto) { + $imageContainer->addElement(new htmlAccountPageButton(get_class($this), 'photo', 'open', _('Add photo'))); + } + else { + $imageContainer->addElement(new htmlButton('delPhoto', _('Delete photo'))); + } + } + $container->addElement(new htmlSpacer('50px', null)); + $container->addElement($imageContainer, false); + } + $container->addElement(new htmlEqualWidth($equalWidthElements)); + return $container; + } + + /** + * Sets a new photo. + */ + function process_photo() { + if (!isset($_POST['form_subpage_' . get_class($this) . '_attributes_submit'])) { + return array(); + } + $messages = array(); + if ($this->isAdminReadOnly('jpegPhoto')) { + return $messages; + } + if ($_FILES['photoFile'] && ($_FILES['photoFile']['size'] > 0)) { + $name = $_FILES['photoFile']['name']; + $extension = strtolower(substr($name, strpos($name, '.') + 1)); + if (!extension_loaded('imagick') && !($extension == 'jpg') && !($extension == 'jpeg')) { + $messages[] = $this->messages['file'][1]; + return $messages; + } + $handle = fopen($_FILES['photoFile']['tmp_name'], "r"); + $data = fread($handle, 10000000); + if (!empty($this->moduleSettings['inetOrgPerson_jpegPhoto_maxSize'][0]) && (strlen($data) > (1024 * $this->moduleSettings['inetOrgPerson_jpegPhoto_maxSize'][0]))) { + $errMsg = $this->messages['file'][3]; + $errMsg[] = null; + $errMsg[] = array($this->moduleSettings['inetOrgPerson_jpegPhoto_maxSize'][0]); + return array($errMsg); + } + fclose($handle); + if (extension_loaded('imagick')) { + // convert to JPG if imagick extension is available + $image = new Imagick(); + try { + $image->readImageBlob($data); + // resize if maximum values specified + if (!empty($this->moduleSettings['inetOrgPerson_jpegPhoto_maxWidth'][0]) || !empty($this->moduleSettings['inetOrgPerson_jpegPhoto_maxHeight'][0])) { + $maxWidth = empty($this->moduleSettings['inetOrgPerson_jpegPhoto_maxWidth'][0]) ? $image->getimagewidth() : $this->moduleSettings['inetOrgPerson_jpegPhoto_maxWidth'][0]; + $maxHeight = empty($this->moduleSettings['inetOrgPerson_jpegPhoto_maxHeight'][0]) ? $image->getimageheight() : $this->moduleSettings['inetOrgPerson_jpegPhoto_maxHeight'][0]; + $image->thumbnailimage($maxWidth, $maxHeight, true); + } + $image->setImageCompression(Imagick::COMPRESSION_JPEG); + $image->setImageFormat('jpeg'); + $data = $image->getimageblob(); + } + catch (Exception $e) { + $msg = $this->messages['file'][2]; + $msg[] = htmlspecialchars($e->getMessage()); + $messages[] = $msg; + return $messages; + } + } + $this->attributes['jpegPhoto'][0] = $data; + } + else { + $messages[] = $this->messages['file'][0]; + } + return $messages; + } + + /** + * Displays the photo upload page. + * + * @return array meta HTML code + */ + function display_html_photo() { + $container = new htmlTable(); + $label = _('Photo file (JPG format)'); + if (extension_loaded('imagick')) { + $label = _('Photo file'); + } + $container->addElement(new htmlTableExtendedInputFileUpload('photoFile', $label, 'photoUpload'), true); + $buttonContainer = new htmlTable(); + $buttonContainer->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'submit', _('Add photo'))); + $buttonContainer->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'back', _('Back'))); + $container->addElement($buttonContainer); + return $container; + } + + /** + * This function will create the meta HTML code to show a page to change the manager attribute. + * + * @return htmlElement HTML meta data + */ + function display_html_manager() { + $return = new htmlTable(); + if (!isset($this->attributes['manager'])) { + $this->attributes['manager'] = array(); + } + // show list of possible new managers + if (isset($_POST['form_subpage_' . get_class($this) . '_manager_select'])) { + $options = array(); + $filter = get_ldap_filter('user'); + $entries = searchLDAPByFilter('(|' . $filter . '(objectclass=organizationalRole))', array('dn'), array('user')); + for ($i = 0; $i < sizeof($entries); $i++) { + $entries[$i] = $entries[$i]['dn']; + } + // sort by DN + usort($entries, 'compareDN'); + for ($i = 0; $i < sizeof($entries); $i++) { + if (!isset($this->attributes['manager']) || !in_array($entries[$i], $this->attributes['manager'])) { + $options[getAbstractDN($entries[$i])] = $entries[$i]; + } + } + $size = 20; + if (sizeof($options) < 20) $size = sizeof($options); + $managerSelect = new htmlSelect('manager', $options, array(), $size); + $managerSelect->setHasDescriptiveElements(true); + $managerSelect->setMultiSelect(true); + $managerSelect->setRightToLeftTextDirection(true); + $managerSelect->setSortElements(false); + $managerSelect->setTransformSingleSelect(false); + $return->addElement($managerSelect, true); + $buttonTable = new htmlTable(); + $buttonTable->addElement(new htmlAccountPageButton(get_class($this), 'manager', 'addManagers', _('Add'))); + $buttonTable->addElement(new htmlAccountPageButton(get_class($this), 'manager', 'cancel', _('Cancel'))); + $return->addElement($buttonTable); + return $return; + } + // show existing managers + $managerTemp = array(); + if (isset($this->attributes['manager'])) { + $managerTemp = $this->attributes['manager']; + } + // sort by DN + usort($managerTemp, 'compareDN'); + $managers = array(); + for ($i = 0; $i < sizeof($managerTemp); $i++) { + $managers[getAbstractDN($managerTemp[$i])] = $managerTemp[$i]; + } + $size = 20; + if (sizeof($this->attributes['manager']) < 20) { + $size = sizeof($this->attributes['manager']); + } + if (sizeof($managers) > 0) { + $managerSelect = new htmlSelect('manager', $managers, array(), $size); + $managerSelect->setHasDescriptiveElements(true); + $managerSelect->setMultiSelect(true); + $managerSelect->setRightToLeftTextDirection(true); + $managerSelect->setSortElements(false); + $managerSelect->setTransformSingleSelect(false); + $return->addElement($managerSelect, true); + $removeButton = new htmlAccountPageButton(get_class($this), 'manager', 'remove', _('Remove selected entries')); + $removeButton->colspan = 3; + $return->addElement($removeButton, true); + $return->addElement(new htmlOutputText(' ', false), true); + } + $return->addElement(new htmlOutputText(' ', false), true); + $buttonTable = new htmlTable(); + $buttonTable->addElement(new htmlAccountPageButton(get_class($this), 'manager', 'select', _('Add entries'))); + $buttonTable->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'managerBack', _('Back'))); + $return->addElement($buttonTable); + return $return; + } + + /** + * Processes user input of the manager page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_manager() { + $return = array(); + if ($this->isAdminReadOnly('manager')) { + return $return; + } + if (isset($_POST['form_subpage_' . get_class($this) . '_manager_remove']) && isset($_POST['manager'])) { + $managers = array_flip($this->attributes['manager']); + for ($i = 0; $i < sizeof($_POST['manager']); $i++) { + if (isset($managers[$_POST['manager'][$i]])) { + unset($managers[$_POST['manager'][$i]]); + } + } + $this->attributes['manager'] = array_values(array_flip($managers)); + } + elseif (isset($_POST['form_subpage_' . get_class($this) . '_manager_addManagers']) && isset($_POST['manager'])) { + for ($i = 0; $i < sizeof($_POST['manager']); $i++) { + $this->attributes['manager'][] = $_POST['manager'][$i]; + $this->attributes['manager'] = array_unique($this->attributes['manager']); + } + } + return $return; + } + + /** + * Displays the certificate upload page. + * + * @return array meta HTML code + */ + function display_html_userCertificate() { + $container = new htmlTable(); + if (isset($this->attributes['userCertificate;binary'])) { + $table = new htmlTable(); + $table->colspan = 10; + for ($i = 0; $i < sizeof($this->attributes['userCertificate;binary']); $i++) { + $filename = 'userCertificate' . getRandomNumber() . '.der'; + $pathOut = dirname(__FILE__) . '/../../tmp/' . $filename; + $out = @fopen($pathOut, "wb"); + @chmod($pathOut, 0600); + fwrite($out, $this->attributes['userCertificate;binary'][$i]); + fclose ($out); + $path = '../../tmp/' . $filename; + $link = new htmlLink('', $path, '../../graphics/save.png'); + $link->setTargetWindow('_blank'); + $table->addElement($link); + $deleteButton = new htmlAccountPageButton(get_class($this), 'userCertificate', 'delete_' . $i, 'delete.png', true); + $deleteButton->setIconClass('deleteButton'); + $table->addElement($deleteButton); + if (function_exists('openssl_x509_parse')) { + $pem = @chunk_split(@base64_encode($this->attributes['userCertificate;binary'][$i]), 64, "\n"); + if (!empty($pem)) { + $pem = "-----BEGIN CERTIFICATE-----\n" . $pem . "-----END CERTIFICATE-----\n"; + $pemData = @openssl_x509_parse($pem); + $data = array(); + if (isset($pemData['serialNumber'])) { + $data[] = $pemData['serialNumber']; + } + if (isset($pemData['name'])) { + $data[] = $pemData['name']; + } + if (sizeof($data) > 0) { + $table->addElement(new htmlOutputText(implode(': ', $data))); + } + } + } + $table->addNewLine(); + } + $container->addElement($table, true); + $container->addElement(new htmlSpacer(null, '20px'), true); + } + $newGroup = new htmlGroup(); + $newGroup->addElement(new htmlOutputText(_('New user certificate'))); + $newGroup->addElement(new htmlSpacer('1px', null)); + $newGroup->addElement(new htmlInputFileUpload('userCertificateUpload')); + $newGroup->addElement(new htmlSpacer('1px', null)); + $uploadButton = new htmlAccountPageButton(get_class($this), 'userCertificate', 'submit', _('Upload')); + $uploadButton->setIconClass('upButton'); + $newGroup->addElement($uploadButton); + $container->addElement($newGroup, true); + $container->addElement(new htmlSpacer(null, '10px'), true); + $container->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'back', _('Back'))); + return $container; + } + + /** + * Sets a new certificate or deletes old ones. + * + * @return array list of info/error messages + */ + function process_userCertificate() { + $messages = array(); + if ($this->isAdminReadOnly('userCertificate')) { + return $messages; + } + if (isset($_POST['form_subpage_' . get_class($this) . '_userCertificate_submit'])) { + if ($_FILES['userCertificateUpload'] && ($_FILES['userCertificateUpload']['size'] > 0)) { + $handle = fopen($_FILES['userCertificateUpload']['tmp_name'], "r"); + $data = fread($handle, 10000000); + fclose($handle); + if (strpos($data, '-----BEGIN CERTIFICATE-----') === 0) { + $pemData = str_replace("\r", '', $data); + $pemData = explode("\n", $pemData); + array_shift($pemData); + $last = array_pop($pemData); + while (($last != '-----END CERTIFICATE-----') && sizeof($pemData) > 2) { + $last = array_pop($pemData); + } + $pemData = implode('', $pemData); + $data = base64_decode($pemData); + } + $this->attributes['userCertificate;binary'][] = $data; + } + else { + $messages[] = $this->messages['file'][0]; + } + } + elseif (isset($this->attributes['userCertificate;binary'])) { + for ($i = 0; $i < sizeof($this->attributes['userCertificate;binary']); $i++) { + if (isset($_POST['form_subpage_' . get_class($this) . '_userCertificate_delete_' . $i])) { + unset($this->attributes['userCertificate;binary'][$i]); + $this->attributes['userCertificate;binary'] = array_values($this->attributes['userCertificate;binary']); + break; + } + } + } + return $messages; + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'description', _('Description')); + $this->addSimplePDFField($return, 'title', _('Job title')); + $this->addSimplePDFField($return, 'givenName', _('First name')); + $this->addSimplePDFField($return, 'sn', _('Last name')); + $this->addSimplePDFField($return, 'manager', _('Manager')); + $this->addSimplePDFField($return, 'street', _('Street')); + $this->addSimplePDFField($return, 'postOfficeBox', _('Post office box')); + $this->addSimplePDFField($return, 'postalCode', _('Postal code')); + $this->addSimplePDFField($return, 'postalAddress', _('Postal address')); + $this->addSimplePDFField($return, 'registeredAddress', _('Registered address')); + $this->addSimplePDFField($return, 'telephoneNumber', _('Telephone number')); + $this->addSimplePDFField($return, 'homePhone', _('Home telephone number')); + $this->addSimplePDFField($return, 'mobileTelephoneNumber', _('Mobile number'), 'mobile'); + $this->addSimplePDFField($return, 'pager', _('Pager')); + $this->addSimplePDFField($return, 'mail', _('Email address')); + $this->addSimplePDFField($return, 'cn', _('Common name')); + $this->addSimplePDFField($return, 'facsimileTelephoneNumber', _('Fax number')); + $this->addSimplePDFField($return, 'roomNumber', _('Room number')); + $this->addSimplePDFField($return, 'businessCategory', _('Business category')); + $this->addSimplePDFField($return, 'uid', _('User name')); + $this->addSimplePDFField($return, 'carLicense', _('Car license')); + $this->addSimplePDFField($return, 'state', _('State'), 'st'); + $this->addSimplePDFField($return, 'officeName', _('Office name'), 'physicalDeliveryOfficeName'); + $this->addSimplePDFField($return, 'employeeType', _('Employee type')); + $this->addSimplePDFField($return, 'location', _('Location'), 'l'); + $this->addSimplePDFField($return, 'employeeNumber', _('Employee number')); + $this->addSimplePDFField($return, 'ou', _('Organisational unit')); + $this->addSimplePDFField($return, 'o', _('Organisation')); + $this->addSimplePDFField($return, 'initials', _('Initials')); + $this->addSimplePDFField($return, 'labeledURI', _('Web site')); + $this->addSimplePDFField($return, 'departmentNumber', _('Department')); + return $return; + } + + /** + * Loads the values of an account profile into internal variables. + * + * @param array $profile hash array with profile values (identifier => value) + */ + function load_profile($profile) { + // profile mappings in meta data + parent::load_profile($profile); + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideDepartments')) { + // departments + if (isset($profile['inetOrgPerson_departmentNumber'][0]) && $profile['inetOrgPerson_departmentNumber'][0] != '') { + $departments = explode(';', $profile['inetOrgPerson_departmentNumber'][0]); + // remove extra spaces and set attributes + $this->attributes['departmentNumber'] = array_map('trim', $departments); + } + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideOu') && isset($profile['inetOrgPerson_ou'][0])) { + $oList = preg_split('/;[ ]*/', $profile['inetOrgPerson_ou'][0]); + $this->attributes['ou'] = $oList; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideO') && isset($profile['inetOrgPerson_o'][0])) { + $oList = preg_split('/;[ ]*/', $profile['inetOrgPerson_o'][0]); + $this->attributes['o'] = $oList; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEMailAddress') && isset($profile['inetOrgPerson_mail'][0])) { + $mailList = preg_split('/;[ ]*/', $profile['inetOrgPerson_mail'][0]); + $this->attributes['mail'] = $mailList; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideLabeledURI') && isset($profile['inetOrgPerson_labeledURI'][0])) { + $labeledURIList = preg_split('/;[ ]*/', $profile['inetOrgPerson_labeledURI'][0]); + $this->attributes['labeledURI'] = $labeledURIList; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideTelephoneNumber') && isset($profile['inetOrgPerson_telephoneNumber'][0])) { + $telephoneNumberList = preg_split('/;[ ]*/', $profile['inetOrgPerson_telephoneNumber'][0]); + $this->attributes['telephoneNumber'] = $telephoneNumberList; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideFaxNumber') && isset($profile['inetOrgPerson_facsimileTelephoneNumber'][0])) { + $facsimileTelephoneNumberList = preg_split('/;[ ]*/', $profile['inetOrgPerson_facsimileTelephoneNumber'][0]); + $this->attributes['facsimileTelephoneNumber'] = $facsimileTelephoneNumberList; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideStreet') && isset($profile['inetOrgPerson_street'][0])) { + $list = preg_split('/;[ ]*/', $profile['inetOrgPerson_street'][0]); + $this->attributes['street'] = $list; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostOfficeBox') && isset($profile['inetOrgPerson_postOfficeBox'][0])) { + $list = preg_split('/;[ ]*/', $profile['inetOrgPerson_postOfficeBox'][0]); + $this->attributes['postOfficeBox'] = $list; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hidePostalCode') && isset($profile['inetOrgPerson_postalCode'][0])) { + $list = preg_split('/;[ ]*/', $profile['inetOrgPerson_postalCode'][0]); + $this->attributes['postalCode'] = $list; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideLocation') && isset($profile['inetOrgPerson_l'][0])) { + $list = preg_split('/;[ ]*/', $profile['inetOrgPerson_l'][0]); + $this->attributes['l'] = $list; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideState') && isset($profile['inetOrgPerson_st'][0])) { + $list = preg_split('/;[ ]*/', $profile['inetOrgPerson_st'][0]); + $this->attributes['st'] = $list; + } + } + + /** + * Checks input values of account profiles. + * + * @param array $options a hash array (name => value) containing the options + * @return array list of error messages (array(type, title, text)) to generate StatusMessages, if any + */ + function check_profileOptions($options) { + $messages = parent::check_profileOptions($options); + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideTelephoneNumber')) { + $telephoneNumberList = preg_split('/;[ ]*/', $options['inetOrgPerson_telephoneNumber'][0]); + for ($i = 0; $i < sizeof($telephoneNumberList); $i++) { + if (!get_preg($telephoneNumberList[$i], 'telephone')) { + $messages[] = $this->messages['telephoneNumber'][0]; + break; + } + } + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideFaxNumber')) { + $facsimileTelephoneNumberList = preg_split('/;[ ]*/', $options['inetOrgPerson_facsimileTelephoneNumber'][0]); + for ($i = 0; $i < sizeof($facsimileTelephoneNumberList); $i++) { + if (!get_preg($facsimileTelephoneNumberList[$i], 'telephone')) { + $messages[] = $this->messages['facsimileTelephoneNumber'][0]; + break; + } + } + } + return $messages; + } + + /** + * Returns an array containing all input columns for the file upload. + * + * Syntax: + *
    array( + *
    string: name, // fixed non-translated name which is used as column name (should be of format: _) + *
    string: description, // short descriptive name + *
    string: help, // help ID + *
    string: example, // example value + *
    boolean: required // true, if user must set a value for this column + *
    ) + * + * @param array $selectedModules list of selected account modules + * @return array column list + */ + function get_uploadColumns($selectedModules) { + $return = parent::get_uploadColumns($selectedModules); + // cn and uid for upload (only if posixAccount is not selected) + if (!in_array('posixAccount', $selectedModules)) { + $return[] = array( + 'name' => 'inetOrgPerson_cn', + 'description' => _('Common name'), + 'help' => 'cn', + 'example' => _('Steve Miller'), + 'default' => '{inetOrgPerson_firstName} {inetOrgPerson_lastName}' + ); + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideUID')) { + $return[] = array( + 'name' => 'inetOrgPerson_userName', + 'description' => _('User name'), + 'help' => 'uid', + 'example' => _('smiller'), + 'unique' => true, + 'required' => false + ); + } + $return[] = array( + 'name' => 'inetOrgPerson_userPassword', + 'description' => _('Password'), + 'help' => 'userPassword', + 'example' => _('secret'), + ); + } + return $return; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $errors = array(); + $replacements = array(); + // get list of existing users + $existingUsers = searchLDAPByAttribute('uid', '*', 'inetOrgPerson', array('uid'), array('user')); + for ($e = 0; $e < sizeof($existingUsers); $e++) { + $existingUsers[$e] = $existingUsers[$e]['uid'][0]; + } + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + if (!in_array("inetOrgPerson", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "inetOrgPerson"; + // last name + if (get_preg($rawAccounts[$i][$ids['inetOrgPerson_lastName']], 'realname')) { + $partialAccounts[$i]['sn'] = trim($rawAccounts[$i][$ids['inetOrgPerson_lastName']]); + $replacements['$lastname'] = $partialAccounts[$i]['sn']; + } + else { + $errMsg = $this->messages['lastname'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + // first name + if ($rawAccounts[$i][$ids['inetOrgPerson_firstName']] != "") { + if (get_preg($rawAccounts[$i][$ids['inetOrgPerson_firstName']], 'realname')) { + $partialAccounts[$i]['givenName'] = trim($rawAccounts[$i][$ids['inetOrgPerson_firstName']]); + $replacements['$firstname'] = $partialAccounts[$i]['givenName']; + } + else { + $errMsg = $this->messages['givenName'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + if (!in_array('posixAccount', $selectedModules)) { + // uid + if (isset($ids['inetOrgPerson_userName']) && !empty($rawAccounts[$i][$ids['inetOrgPerson_userName']])) { + if (in_array($rawAccounts[$i][$ids['inetOrgPerson_userName']], $existingUsers)) { + $errMsg = $this->messages['uid'][3]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + elseif (get_preg($rawAccounts[$i][$ids['inetOrgPerson_userName']], 'username')) { + $partialAccounts[$i]['uid'] = $rawAccounts[$i][$ids['inetOrgPerson_userName']]; + $replacements['$user'] = $partialAccounts[$i]['uid']; + } + else { + $errMsg = $this->messages['uid'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + } + // initials + if (isset($ids['inetOrgPerson_initials']) && ($rawAccounts[$i][$ids['inetOrgPerson_initials']] != "")) { + $partialAccounts[$i]['initials'] = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['inetOrgPerson_initials']]); + } + // description + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'inetOrgPerson_description', 'description'); + // title + if (isset($ids['inetOrgPerson_title']) && ($rawAccounts[$i][$ids['inetOrgPerson_title']] != "")) { + $titleList = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['inetOrgPerson_title']]); + $partialAccounts[$i]['title'] = $titleList; + for ($x = 0; $x < sizeof($titleList); $x++) { + if (!get_preg($titleList[$x], 'title')) { + $errMsg = $this->messages['title'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + break; + } + } + } + // employee number + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'inetOrgPerson_employeeNumber', 'employeeNumber'); + // employee type + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'inetOrgPerson_type', 'employeeType', + 'employeeType', $this->messages['employeeType'][1], $errors); + // business category + if (isset($ids['inetOrgPerson_businessCategory']) && ($rawAccounts[$i][$ids['inetOrgPerson_businessCategory']] != "")) { + $businessCategoryList = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['inetOrgPerson_businessCategory']]); + $partialAccounts[$i]['businessCategory'] = $businessCategoryList; + for ($x = 0; $x < sizeof($businessCategoryList); $x++) { + if (!get_preg($businessCategoryList[$x], 'businessCategory')) { + $errMsg = $this->messages['businessCategory'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + break; + } + } + } + // manager + if (isset($ids['inetOrgPerson_manager']) && ($rawAccounts[$i][$ids['inetOrgPerson_manager']] != "")) { + $managerList = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['inetOrgPerson_manager']]); + $partialAccounts[$i]['manager'] = $managerList; + for ($x = 0; $x < sizeof($managerList); $x++) { + if (!get_preg($managerList[$x], 'dn')) { + $errMsg = $this->messages['manager'][0]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + break; + } + } + } + // street + if (isset($ids['inetOrgPerson_street']) && ($rawAccounts[$i][$ids['inetOrgPerson_street']] != "")) { + $streetList = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['inetOrgPerson_street']]); + $partialAccounts[$i]['street'] = $streetList; + for ($x = 0; $x < sizeof($streetList); $x++) { + if (!get_preg($streetList[$x], 'street')) { + $errMsg = $this->messages['street'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + break; + } + } + } + // post office box + if (isset($ids['inetOrgPerson_postOfficeBox']) && ($rawAccounts[$i][$ids['inetOrgPerson_postOfficeBox']] != "")) { + $partialAccounts[$i]['postOfficeBox'] = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['inetOrgPerson_postOfficeBox']]); + } + // room number + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'inetOrgPerson_roomNumber', 'roomNumber'); + // departments + if (isset($ids['inetOrgPerson_departmentNumber']) && ($rawAccounts[$i][$ids['inetOrgPerson_departmentNumber']] != "")) { + $partialAccounts[$i]['departmentNumber'] = explode(';', $rawAccounts[$i][$ids['inetOrgPerson_departmentNumber']]); + // remove extra spaces + $partialAccounts[$i]['departmentNumber'] = array_map('trim', $partialAccounts[$i]['departmentNumber']); + } + // organisational unit + if (isset($ids['inetOrgPerson_ou']) && ($rawAccounts[$i][$ids['inetOrgPerson_ou']] != "")) { + $partialAccounts[$i]['ou'] = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['inetOrgPerson_ou']]); + } + // organisation + if (isset($ids['inetOrgPerson_o']) && ($rawAccounts[$i][$ids['inetOrgPerson_o']] != "")) { + $partialAccounts[$i]['o'] = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['inetOrgPerson_o']]); + } + // location + if (isset($ids['inetOrgPerson_l']) && ($rawAccounts[$i][$ids['inetOrgPerson_l']] != "")) { + $partialAccounts[$i]['l'] = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['inetOrgPerson_l']]); + } + // state + if (isset($ids['inetOrgPerson_st']) && ($rawAccounts[$i][$ids['inetOrgPerson_st']] != "")) { + $partialAccounts[$i]['st'] = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['inetOrgPerson_st']]); + } + // physicalDeliveryOfficeName + if (isset($ids['inetOrgPerson_physicalDeliveryOfficeName']) && ($rawAccounts[$i][$ids['inetOrgPerson_physicalDeliveryOfficeName']] != "")) { + $partialAccounts[$i]['physicalDeliveryOfficeName'] = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['inetOrgPerson_physicalDeliveryOfficeName']]); + } + // carLicense + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'inetOrgPerson_carLicense', 'carLicense'); + // postal code + if (isset($ids['inetOrgPerson_postalCode']) && ($rawAccounts[$i][$ids['inetOrgPerson_postalCode']] != "")) { + $postalCodeList = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['inetOrgPerson_postalCode']]); + $partialAccounts[$i]['postalCode'] = $postalCodeList; + for ($x = 0; $x < sizeof($postalCodeList); $x++) { + if (!get_preg($postalCodeList[$x], 'postalCode')) { + $errMsg = $this->messages['postalCode'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + break; + } + } + } + // postal address + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'inetOrgPerson_address', 'postalAddress', + 'postalAddress',$this->messages['postalAddress'][1] , $errors); + // registered address + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'inetOrgPerson_registeredAddress', 'registeredAddress', + 'postalAddress',$this->messages['registeredAddress'][1] , $errors); + // telephone + if (isset($ids['inetOrgPerson_telephone']) && ($rawAccounts[$i][$ids['inetOrgPerson_telephone']] != "")) { + $telephoneList = preg_split('/;[ ]*/', trim($rawAccounts[$i][$ids['inetOrgPerson_telephone']])); + $partialAccounts[$i]['telephoneNumber'] = $telephoneList; + for ($x = 0; $x < sizeof($telephoneList); $x++) { + if (!get_preg($telephoneList[$x], 'telephone')) { + $errMsg = $this->messages['telephoneNumber'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + break; + } + } + } + // home telephone + if (isset($ids['inetOrgPerson_homePhone']) && ($rawAccounts[$i][$ids['inetOrgPerson_homePhone']] != "")) { + $homePhoneList = preg_split('/;[ ]*/', trim($rawAccounts[$i][$ids['inetOrgPerson_homePhone']])); + $partialAccounts[$i]['homePhone'] = $homePhoneList; + for ($x = 0; $x < sizeof($homePhoneList); $x++) { + if (!get_preg($homePhoneList[$x], 'telephone')) { + $errMsg = $this->messages['homePhone'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + break; + } + } + } + // mobile + if (isset($ids['inetOrgPerson_mobile']) && ($rawAccounts[$i][$ids['inetOrgPerson_mobile']] != "")) { + $mobileList = preg_split('/;[ ]*/', trim($rawAccounts[$i][$ids['inetOrgPerson_mobile']])); + $partialAccounts[$i]['mobile'] = $mobileList; + for ($x = 0; $x < sizeof($mobileList); $x++) { + if (!get_preg($mobileList[$x], 'telephone')) { + $errMsg = $this->messages['mobileTelephone'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + break; + } + } + } + // facsimile + if (isset($ids['inetOrgPerson_fax']) && ($rawAccounts[$i][$ids['inetOrgPerson_fax']] != "")) { + $facsimileTelephoneNumberList = preg_split('/;[ ]*/', trim($rawAccounts[$i][$ids['inetOrgPerson_fax']])); + $partialAccounts[$i]['facsimileTelephoneNumber'] = $facsimileTelephoneNumberList; + for ($x = 0; $x < sizeof($facsimileTelephoneNumberList); $x++) { + if (!get_preg($facsimileTelephoneNumberList[$x], 'telephone')) { + $errMsg = $this->messages['facsimileNumber'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + break; + } + } + } + // pager + if (isset($ids['inetOrgPerson_pager']) && ($rawAccounts[$i][$ids['inetOrgPerson_pager']] != "")) { + $pagerList = preg_split('/;[ ]*/', trim($rawAccounts[$i][$ids['inetOrgPerson_pager']])); + $partialAccounts[$i]['pager'] = $pagerList; + for ($x = 0; $x < sizeof($pagerList); $x++) { + if (!get_preg($pagerList[$x], 'telephone')) { + $errMsg = $this->messages['pager'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + break; + } + } + } + // eMail + if (isset($ids['inetOrgPerson_email']) && ($rawAccounts[$i][$ids['inetOrgPerson_email']] != "")) { + foreach ($replacements as $wildcard => $value) { + $rawAccounts[$i][$ids['inetOrgPerson_email']] = str_replace($wildcard, $value, $rawAccounts[$i][$ids['inetOrgPerson_email']]); + } + $mailList = preg_split('/;[ ]*/', trim($rawAccounts[$i][$ids['inetOrgPerson_email']])); + $partialAccounts[$i]['mail'] = $mailList; + for ($x = 0; $x < sizeof($mailList); $x++) { + if (!get_preg($mailList[$x], 'email')) { + $errMsg = $this->messages['email'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + break; + } + } + } + if (isLAMProVersion() && isset($ids['inetOrgPerson_sendPasswordMail']) && ($rawAccounts[$i][$ids['inetOrgPerson_sendPasswordMail']] != "")) { + if (!in_array($rawAccounts[$i][$ids['inetOrgPerson_sendPasswordMail']], array('true', 'false'))) { + $errMsg = $this->messages['sendPasswordMail'][0]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + // labeledURI + if (isset($ids['inetOrgPerson_labeledURI']) && ($rawAccounts[$i][$ids['inetOrgPerson_labeledURI']] != "")) { + $partialAccounts[$i]['labeledURI'] = preg_split('/;[ ]*/', trim($rawAccounts[$i][$ids['inetOrgPerson_labeledURI']])); + } + if (!in_array('posixAccount', $selectedModules)) { + // cn + if ($rawAccounts[$i][$ids['inetOrgPerson_cn']] != "") { + if (get_preg($rawAccounts[$i][$ids['inetOrgPerson_cn']], 'cn')) { + $partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['inetOrgPerson_cn']]; + } + else { + $errMsg = $this->messages['cn'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + else { + if ($partialAccounts[$i]['givenName'] != "") { + $partialAccounts[$i]['cn'] = $partialAccounts[$i]['givenName'] . " " . $partialAccounts[$i]['sn']; + } + else { + $partialAccounts[$i]['cn'] = $partialAccounts[$i]['sn']; + } + } + // password + if (($rawAccounts[$i][$ids['inetOrgPerson_userPassword']] != "") && (get_preg($rawAccounts[$i][$ids['inetOrgPerson_userPassword']], 'password'))) { + $partialAccounts[$i]['userPassword'] = pwd_hash($rawAccounts[$i][$ids['inetOrgPerson_userPassword']], true, $this->moduleSettings['posixAccount_pwdHash'][0]); + $partialAccounts[$i]['INFO.userPasswordClearText'] = $rawAccounts[$i][$ids['inetOrgPerson_userPassword']]; // for custom scripts etc. + } + elseif ($rawAccounts[$i][$ids['inetOrgPerson_userPassword']] != "") { + $errMsg = $this->messages['userPassword'][0]; + $errMsg[2] = str_replace('%', '%%', $errMsg[2]); // double "%" because of later sprintf + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + } + return $errors; + } + + /** + * This function executes one post upload action. + * + * @param array $data array containing one account in each element + * @param array $ids array( => ) + * @param array $failed list of accounts which were not created successfully + * @param array $temp variable to store temporary data between two post actions + * @param array $accounts list of LDAP entries + * @return array current status + *
    array ( + *
    'status' => 'finished' | 'inProgress' + *
    'progress' => 0..100 + *
    'errors' => array () + *
    ) + */ + function doUploadPostActions(&$data, $ids, $failed, &$temp, &$accounts) { + if (!checkIfWriteAccessIsAllowed($this->get_scope())) { + die(); + } + // mail sending is LAM Pro only + if (!isLAMProVersion()) { + return array ( + 'status' => 'finished', + 'progress' => 100, + 'errors' => array() + ); + } + if (!isset($temp['counter'])) { + $temp['counter'] = 0; + } + $errors = array(); + if (!in_array($temp['counter'], $failed) && isset($ids['inetOrgPerson_email']) && ($data[$temp['counter']][$ids['inetOrgPerson_email']] != "")) { + if (isset($ids['inetOrgPerson_sendPasswordMail']) && ($data[$temp['counter']][$ids['inetOrgPerson_sendPasswordMail']] == "true") + && isset($accounts[$temp['counter']]['INFO.userPasswordClearText'])) { + $mailMessages = sendPasswordMail($accounts[$temp['counter']]['INFO.userPasswordClearText'], $accounts[$temp['counter']]); + for ($i = 0; $i < sizeof($mailMessages); $i++) { + if ($mailMessages[$i][0] == 'ERROR') { + $errors[] = $mailMessages[$i]; + } + } + } + } + $temp['counter']++; + if ($temp['counter'] < (sizeof($data) - 1)) { + return array ( + 'status' => 'inProgress', + 'progress' => ($temp['counter'] * 100) / sizeof($data), + 'errors' => $errors + ); + } + else { + return array ( + 'status' => 'finished', + 'progress' => 100, + 'errors' => $errors + ); + } + } + + /** + * Returns the meta HTML code for each input field. + * format: array( => array(), ...) + * It is not possible to display help links. + * + * @param array $fields list of active fields + * @param array $attributes attributes of LDAP account + * @param boolean $passwordChangeOnly indicates that the user is only allowed to change his password and no LDAP content is readable + * @param array $readOnlyFields list of read-only fields + * @return array list of meta HTML elements (field name => htmlTableRow) + */ + function getSelfServiceOptions($fields, $attributes, $passwordChangeOnly, $readOnlyFields) { + $return = array(); + if ($passwordChangeOnly) { + return $return; // no fields as long no LDAP content can be read + } + if (in_array('firstName', $fields)) { + $firstName = ''; + if (isset($attributes['givenName'][0])) $firstName = $attributes['givenName'][0]; + $firstNameField = new htmlInputField('inetOrgPerson_firstName', $firstName); + if (in_array('firstName', $readOnlyFields)) { + $firstNameField = new htmlOutputText($firstName); + } + $return['firstName'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('firstName', _('First name'))), $firstNameField + )); + } + if (in_array('lastName', $fields)) { + $lastName = ''; + if (isset($attributes['sn'][0])) $lastName = $attributes['sn'][0]; + $lastNameField = new htmlInputField('inetOrgPerson_lastName', $lastName); + if (in_array('lastName', $readOnlyFields)) { + $lastNameField = new htmlOutputText($lastName); + } + $return['lastName'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('lastName', _('Last name'))), $lastNameField + )); + } + if (in_array('mail', $fields)) { + $mail = ''; + if (isset($attributes['mail'][0])) $mail = $attributes['mail'][0]; + $mailField = new htmlInputField('inetOrgPerson_mail', $mail); + if (in_array('mail', $readOnlyFields)) { + $mailField = new htmlOutputText($mail); + } + $return['mail'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('mail', _('Email address'))), $mailField + )); + } + if (in_array('labeledURI', $fields)) { + $labeledURI = ''; + if (isset($attributes['labeledURI'][0])) $labeledURI = implode('; ', $attributes['labeledURI']); + $labeledURIField = new htmlInputField('inetOrgPerson_labeledURI', $labeledURI); + if (in_array('labeledURI', $readOnlyFields)) { + $labeledURIField = new htmlOutputText($labeledURI); + } + $return['labeledURI'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('labeledURI', _('Web site'))), $labeledURIField + )); + } + if (in_array('telephoneNumber', $fields)) { + $telephoneNumber = ''; + if (isset($attributes['telephoneNumber'][0])) $telephoneNumber = $attributes['telephoneNumber'][0]; + $telephoneNumberField = new htmlInputField('inetOrgPerson_telephoneNumber', $telephoneNumber); + if (in_array('telephoneNumber', $readOnlyFields)) { + $telephoneNumberField = new htmlOutputText($telephoneNumber); + } + $return['telephoneNumber'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('telephoneNumber', _('Telephone number'))), $telephoneNumberField + )); + } + if (in_array('homePhone', $fields)) { + $homePhone = ''; + if (isset($attributes['homePhone'][0])) $homePhone = $attributes['homePhone'][0]; + $homePhoneField = new htmlInputField('inetOrgPerson_homePhone', $homePhone); + if (in_array('homePhone', $readOnlyFields)) { + $homePhoneField = new htmlOutputText($homePhone); + } + $return['homePhone'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('homePhone', _('Home telephone number'))), $homePhoneField + )); + } + if (in_array('mobile', $fields)) { + $mobile = ''; + if (isset($attributes['mobile'][0])) $mobile = $attributes['mobile'][0]; + $mobileField = new htmlInputField('inetOrgPerson_mobile', $mobile); + if (in_array('mobile', $readOnlyFields)) { + $mobileField = new htmlOutputText($mobile); + } + $return['mobile'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('mobile', _('Mobile telephone number'))), $mobileField + )); + } + if (in_array('faxNumber', $fields)) { + $faxNumber = ''; + if (isset($attributes['facsimileTelephoneNumber'][0])) $faxNumber = $attributes['facsimileTelephoneNumber'][0]; + $faxNumberField = new htmlInputField('inetOrgPerson_faxNumber', $faxNumber); + if (in_array('faxNumber', $readOnlyFields)) { + $faxNumberField = new htmlOutputText($faxNumber); + } + $return['faxNumber'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('faxNumber', _('Fax number'))), $faxNumberField + )); + } + if (in_array('pager', $fields)) { + $pager = ''; + if (isset($attributes['pager'][0])) $pager = $attributes['pager'][0]; + $pagerField = new htmlInputField('inetOrgPerson_pager', $pager); + if (in_array('pager', $readOnlyFields)) { + $pagerField = new htmlOutputText($pager); + } + $return['pager'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('pager', _('Pager'))), $pagerField + )); + } + if (in_array('street', $fields)) { + $street = ''; + if (isset($attributes['street'][0])) $street = $attributes['street'][0]; + $streetField = new htmlInputField('inetOrgPerson_street', $street); + if (in_array('street', $readOnlyFields)) { + $streetField = new htmlOutputText($street); + } + $return['street'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('street', _('Street'))), $streetField + )); + } + if (in_array('postalAddress', $fields)) { + $postalAddress = ''; + if (isset($attributes['postalAddress'][0])) $postalAddress = $attributes['postalAddress'][0]; + $postalAddressField = new htmlInputField('inetOrgPerson_postalAddress', $postalAddress); + if (in_array('postalAddress', $readOnlyFields)) { + $postalAddressField = new htmlOutputText($postalAddress); + } + $return['postalAddress'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('postalAddress', _('Postal address'))), $postalAddressField + )); + } + if (in_array('registeredAddress', $fields)) { + $registeredAddress = ''; + if (isset($attributes['registeredAddress'][0])) $registeredAddress = $attributes['registeredAddress'][0]; + $registeredAddressField = new htmlInputField('inetOrgPerson_registeredAddress', $registeredAddress); + if (in_array('registeredAddress', $readOnlyFields)) { + $registeredAddressField = new htmlOutputText($registeredAddress); + } + $return['registeredAddress'] = new htmlTableRow(array( + new htmlOutputText(_('Registered address')), $registeredAddressField + )); + } + if (in_array('postalCode', $fields)) { + $postalCode = ''; + if (isset($attributes['postalCode'][0])) $postalCode = $attributes['postalCode'][0]; + $postalCodeField = new htmlInputField('inetOrgPerson_postalCode', $postalCode); + if (in_array('postalCode', $readOnlyFields)) { + $postalCodeField = new htmlOutputText($postalCode); + } + $return['postalCode'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('postalCode', _('Postal code'))), $postalCodeField + )); + } + if (in_array('postOfficeBox', $fields)) { + $postOfficeBox = ''; + if (isset($attributes['postOfficeBox'][0])) $postOfficeBox = $attributes['postOfficeBox'][0]; + $postOfficeBoxField = new htmlInputField('inetOrgPerson_postOfficeBox', $postOfficeBox); + if (in_array('postOfficeBox', $readOnlyFields)) { + $postOfficeBoxField = new htmlOutputText($postOfficeBox); + } + $return['postOfficeBox'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('postOfficeBox', _('Post office box'))), $postOfficeBoxField + )); + } + if (in_array('roomNumber', $fields)) { + $roomNumber = ''; + if (isset($attributes['roomNumber'][0])) $roomNumber = $attributes['roomNumber'][0]; + $roomNumberField = new htmlInputField('inetOrgPerson_roomNumber', $roomNumber); + if (in_array('roomNumber', $readOnlyFields)) { + $roomNumberField = new htmlOutputText($roomNumber); + } + $return['roomNumber'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('roomNumber', _('Room number'))), $roomNumberField + )); + } + if (in_array('location', $fields)) { + $l = ''; + if (isset($attributes['l'][0])) $l = $attributes['l'][0]; + $lField = new htmlInputField('inetOrgPerson_location', $l); + if (in_array('location', $readOnlyFields)) { + $lField = new htmlOutputText($l); + } + $return['location'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('location', _('Location'))), $lField + )); + } + if (in_array('state', $fields)) { + $st = ''; + if (isset($attributes['st'][0])) $st = $attributes['st'][0]; + $stField = new htmlInputField('inetOrgPerson_state', $st); + if (in_array('state', $readOnlyFields)) { + $stField = new htmlOutputText($st); + } + $return['state'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('state', _('State'))), $stField + )); + } + if (in_array('carLicense', $fields)) { + $carLicense = ''; + if (isset($attributes['carLicense'][0])) $carLicense = $attributes['carLicense'][0]; + $carLicenseField = new htmlInputField('inetOrgPerson_carLicense', $carLicense); + if (in_array('carLicense', $readOnlyFields)) { + $carLicenseField = new htmlOutputText($carLicense); + } + $return['carLicense'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('carLicense', _('Car license'))), $carLicenseField + )); + } + if (in_array('officeName', $fields)) { + $physicalDeliveryOfficeName = ''; + if (isset($attributes['physicalDeliveryOfficeName'][0])) $physicalDeliveryOfficeName = $attributes['physicalDeliveryOfficeName'][0]; + $physicalDeliveryOfficeNameField = new htmlInputField('inetOrgPerson_officeName', $physicalDeliveryOfficeName); + if (in_array('officeName', $readOnlyFields)) { + $physicalDeliveryOfficeNameField = new htmlOutputText($physicalDeliveryOfficeName); + } + $return['officeName'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('officeName', _('Office name'))), $physicalDeliveryOfficeNameField + )); + } + if (in_array('businessCategory', $fields)) { + $businessCategory = ''; + if (isset($attributes['businessCategory'][0])) $businessCategory = $attributes['businessCategory'][0]; + $businessCategoryField = new htmlInputField('inetOrgPerson_businessCategory', $businessCategory); + if (in_array('businessCategory', $readOnlyFields)) { + $businessCategoryField = new htmlOutputText($businessCategory); + } + $return['businessCategory'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('businessCategory', _('Business category'))), $businessCategoryField + )); + } + if (in_array('jpegPhoto', $fields)) { + if (isset($attributes['jpegPhoto'][0])) { + $jpeg_filename = 'jpegPhoto' . session_id() . '.jpg'; + $outjpeg = fopen(realpath('../../') . '/tmp/' . $jpeg_filename, "wb"); + fwrite($outjpeg, $attributes['jpegPhoto'][0]); + fclose ($outjpeg); + $photoFile = '../../tmp/' . $jpeg_filename; + $photoSub = new htmlTable(); + $photoSub->addElement(new htmlImage($photoFile), true); + if (!in_array('jpegPhoto', $readOnlyFields)) { + $photoSubSub = new htmlTable(); + $photoSubSub->addElement(new htmlTableExtendedInputCheckbox('removeReplacePhoto', false, _('Remove/replace photo'), null, false)); + $photoSubSub->addElement(new htmlInputFileUpload('replacePhotoFile')); + $photoSub->addElement($photoSubSub); + } + $photoRowCells = array(new htmlOutputText($this->getSelfServiceLabel('jpegPhoto', _('Photo'))), $photoSub); + $photoRow = new htmlTableRow($photoRowCells); + $return['jpegPhoto'] = $photoRow; + } + elseif (!in_array('jpegPhoto', $readOnlyFields)) { + $photoSub = new htmlTable(); + $photoSub->addElement(new htmlTableExtendedInputFileUpload('photoFile', _('Add photo'))); + $photoRowCells = array(new htmlOutputText($this->getSelfServiceLabel('jpegPhoto', _('Photo'))), $photoSub); + $photoRow = new htmlTableRow($photoRowCells); + $return['jpegPhoto'] = $photoRow; + } + } + if (in_array('departmentNumber', $fields)) { + $departmentNumber = ''; + if (isset($attributes['departmentNumber'][0])) $departmentNumber = implode('; ', $attributes['departmentNumber']); + $departmentNumberField = new htmlInputField('inetOrgPerson_departmentNumber', $departmentNumber); + if (in_array('departmentNumber', $readOnlyFields)) { + $departmentNumberField = new htmlOutputText($departmentNumber); + } + $return['departmentNumber'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('departmentNumber', _('Department'))), $departmentNumberField + )); + } + if (in_array('initials', $fields)) { + $initials = ''; + if (isset($attributes['initials'][0])) $initials = implode('; ', $attributes['initials']); + $initialsField = new htmlInputField('inetOrgPerson_initials', $initials); + if (in_array('initials', $readOnlyFields)) { + $initialsField = new htmlOutputText($initials); + } + $return['initials'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('initials', _('Initials'))), $initialsField + )); + } + if (in_array('title', $fields)) { + $title = ''; + if (isset($attributes['title'][0])) $title = $attributes['title'][0]; + $titleField = new htmlInputField('inetOrgPerson_title', $title); + if (in_array('title', $readOnlyFields)) { + $titleField = new htmlOutputText($title); + } + $return['title'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('title', _('Job title'))), $titleField + )); + } + if (in_array('userCertificate', $fields)) { + $userCertificates = array(); + if (isset($attributes['userCertificate'][0])) { + $userCertificates = $attributes['userCertificate']; + } + elseif (isset($attributes['userCertificate;binary'][0])) { + $userCertificates = $attributes['userCertificate;binary']; + } + $_SESSION[self::SESS_CERTIFICATES_LIST] = $userCertificates; + $certTable = new htmlTable(); + $certTable->addElement(new htmlDiv('userCertificateDiv', $this->getSelfServiceUserCertificates()), true); + // JavaScript functions + $certTable->addElement($this->getSelfServiceUserCertificatesJSBlock(), true); + // upload button + $uploadButtons = new htmlGroup(); + $uploadButtons->addElement(new htmlDiv('inetOrgPersonCertUploadId', new htmlOutputText('')), true); + $certUpload = new htmlJavaScript('inetOrgPersonUploadCert(\'inetOrgPersonCertUploadId\');'); + $uploadButtons->addElement($certUpload); + $certTable->addElement($uploadButtons, true); + // upload status + $uploadStatus = new htmlDiv('inetOrgPerson_upload_status_cert', new htmlOutputText('')); + $uploadStatus->setCSSClasses(array('qq-upload-list')); + $uploadStatus->colspan = 7; + $certTable->addElement($uploadStatus, true); + $certLabel = new htmlOutputText($this->getSelfServiceLabel('userCertificate', _('User certificates'))); + $certLabel->alignment = htmlElement::ALIGN_TOP; + $userCertificatesCells = array($certLabel, $certTable); + $userCertificatesRow = new htmlTableRow($userCertificatesCells); + $return['userCertificate'] = $userCertificatesRow; + } + // ou + if (in_array('ou', $fields)) { + $ou = ''; + if (isset($attributes['ou'][0])) $ou = $attributes['ou'][0]; + if (in_array('ou', $readOnlyFields)) { + $ouField = new htmlOutputText(getAbstractDN($ou)); + } + else { + $userObj = new user(); + $ouList = $userObj->getSuffixList(); + if (!empty($attributes['ou'][0]) && !in_array($attributes['ou'][0], $ouList)) { + $ouList[] = $attributes['ou'][0]; + usort($ouList, 'compareDN'); + } + $ouSelectionList = array('' => ''); + foreach ($ouList as $singleOU) { + $ouSelectionList[getAbstractDN($singleOU)] = $singleOU; + } + $ouSelectionListSelected = array(); + if (!empty($attributes['ou'][0])) { + $ouSelectionListSelected[] = $attributes['ou'][0]; + } + $ouField = new htmlSelect('inetOrgPerson_ou', $ouSelectionList, $ouSelectionListSelected); + $ouField->setHasDescriptiveElements(true); + $ouField->setRightToLeftTextDirection(true); + $ouField->setSortElements(false); + } + $return['ou'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('ou', _('Organisational unit'))), $ouField + )); + } + // description + if (in_array('description', $fields)) { + $description = ''; + if (isset($attributes['description'][0])) $description = $attributes['description'][0]; + $descriptionField = new htmlInputField('inetOrgPerson_description', $description); + if (in_array('description', $readOnlyFields)) { + $descriptionField = new htmlOutputText($description); + } + $return['description'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('description', _('Description'))), $descriptionField + )); + } + // uid + if (in_array('uid', $fields)) { + $uid = ''; + if (isset($attributes['uid'][0])) $uid = $attributes['uid'][0]; + $uidField = new htmlInputField('inetOrgPerson_uid', $uid); + if (in_array('uid', $readOnlyFields)) { + $uidField = new htmlOutputText($uid); + } + $return['uid'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('uid', _('User name'))), $uidField + )); + } + return $return; + } + + /** + * Returns the meta HTML code to display the certificate area. + * This also includes the file upload. + * + * @return htmlTable certificate content + */ + private function getSelfServiceUserCertificates() { + $userCertificates = $_SESSION[self::SESS_CERTIFICATES_LIST]; + $content = new htmlTable(); + if (sizeof($userCertificates) > 0) { + $certTable = new htmlTable(); + for ($i = 0; $i < sizeof($userCertificates); $i++) { + $filename = 'userCertificate' . getRandomNumber() . '.der'; + $out = @fopen(dirname(__FILE__) . '/../../tmp/' . $filename, "wb"); + fwrite($out, $userCertificates[$i]); + fclose ($out); + $path = '../../tmp/' . $filename; + $saveLink = new htmlLink('', $path, '../../graphics/save.png'); + $saveLink->setTitle(_('Save')); + $saveLink->setTargetWindow('_blank'); + $certTable->addElement($saveLink); + $delLink = new htmlLink('', '#', '../../graphics/del.png'); + $delLink->setTitle(_('Delete')); + $delLink->setOnClick('inetOrgPersonDeleteCertificate(' . $i . '); return false;'); + $certTable->addElement($delLink); + if (function_exists('openssl_x509_parse')) { + $pem = @chunk_split(@base64_encode($userCertificates[$i]), 64, "\n"); + if (!empty($pem)) { + $pem = "-----BEGIN CERTIFICATE-----\n" . $pem . "-----END CERTIFICATE-----\n"; + $pemData = @openssl_x509_parse($pem); + $data = array(); + if (isset($pemData['serialNumber'])) { + $data[] = $pemData['serialNumber']; + } + if (isset($pemData['name'])) { + $data[] = $pemData['name']; + } + if (sizeof($data) > 0) { + $certTable->addElement(new htmlOutputText(implode(': ', $data))); + } + } + } + $certTable->addNewLine(); + } + $content->addElement($certTable, true); + } + return $content; + } + + /** + * Returns the Java Script functions to manage the certificates. + * + * @return htmlJavaScript JS block + */ + private static function getSelfServiceUserCertificatesJSBlock() { + $content = ' + function inetOrgPersonDeleteCertificate(id) { + var actionJSON = { + "action": "delete", + "id": id + }; + jQuery.post(\'../misc/ajax.php?selfservice=1&module=inetOrgPerson&scope=user\', {jsonInput: actionJSON}, function(data) {inetOrgPersonDeleteCertificateHandleReply(data);}, \'json\'); + } + + function inetOrgPersonDeleteCertificateHandleReply(data) { + if (data.errorsOccured == "false") { + jQuery(\'#userCertificateDiv\').html(data.html); + } + else { + alert(data.errormessage); + } + } + + function inetOrgPersonUploadCert(elementID) { + var uploadStatus = document.getElementById(\'inetOrgPerson_upload_status_cert\'); + var uploader = new qq.FineUploader({ + element: document.getElementById(elementID), + listElement: uploadStatus, + request: { + endpoint: \'../misc/ajax.php?selfservice=1&module=inetOrgPerson&scope=user\', + forceMultipart: true, + params: { + action: \'ajaxCertUpload\' + } + }, + multiple: false, + callbacks: { + onComplete: function(id, fileName, data) { + if (data.success) { + if (data.html) { + jQuery(\'#userCertificateDiv\').html(data.html); + } + } + else { + alert(data.error); + } + } + } + }); + } + + '; + return new htmlJavaScript($content); + } + + /** + * Checks if all input values are correct and returns the LDAP attributes which should be changed. + *
    Return values: + *
    messages: array of parameters to create status messages + *
    add: array of attributes to add + *
    del: array of attributes to remove + *
    mod: array of attributes to modify + *
    info: array of values with informational value (e.g. to be used later by pre/postModify actions) + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}. + * + * @param string $fields input fields + * @param array $attributes LDAP attributes + * @param boolean $passwordChangeOnly indicates that the user is only allowed to change his password and no LDAP content is readable + * @param array $readOnlyFields list of read-only fields + * @return array messages and attributes (array('messages' => array(), 'add' => array('mail' => array('test@test.com')), 'del' => array(), 'mod' => array(), 'info' => array())) + */ + function checkSelfServiceOptions($fields, $attributes, $passwordChangeOnly, $readOnlyFields) { + $return = array('messages' => array(), 'add' => array(), 'del' => array(), 'mod' => array(), 'info' => array()); + if ($passwordChangeOnly) { + return $return; // skip processing if only a password change is done + } + $attributeNames = array(); // list of attributes which should be checked for modification + $attributesNew = $attributes; + // first name + if (in_array('firstName', $fields) && !in_array('firstName', $readOnlyFields)) { + $attributeNames[] = 'givenName'; + if (isset($_POST['inetOrgPerson_firstName']) && ($_POST['inetOrgPerson_firstName'] != '')) { + if (!get_preg($_POST['inetOrgPerson_firstName'], 'realname')) $return['messages'][] = $this->messages['givenName'][0]; + else $attributesNew['givenName'][0] = $_POST['inetOrgPerson_firstName']; + } + elseif (isset($attributes['givenName'])) unset($attributesNew['givenName']); + } + // last name + if (in_array('lastName', $fields) && !in_array('lastName', $readOnlyFields)) { + $attributeNames[] = 'sn'; + if (isset($_POST['inetOrgPerson_lastName']) && ($_POST['inetOrgPerson_lastName'] != '')) { + if (!get_preg($_POST['inetOrgPerson_lastName'], 'realname')) $return['messages'][] = $this->messages['lastname'][0]; + else $attributesNew['sn'][0] = $_POST['inetOrgPerson_lastName']; + } + else { + // last name is required attribute + $return['messages'][] = $this->messages['lastname'][0]; + } + } + // email + if (in_array('mail', $fields) && !in_array('mail', $readOnlyFields)) { + $attributeNames[] = 'mail'; + if (isset($_POST['inetOrgPerson_mail']) && ($_POST['inetOrgPerson_mail'] != '')) { + if (!get_preg($_POST['inetOrgPerson_mail'], 'email')) $return['messages'][] = $this->messages['email'][0]; + else $attributesNew['mail'][0] = $_POST['inetOrgPerson_mail']; + } + elseif (isset($attributes['mail'])) unset($attributesNew['mail']); + } + // labeledURI + if (in_array('labeledURI', $fields) && !in_array('labeledURI', $readOnlyFields)) { + $attributeNames[] = 'labeledURI'; + if (isset($_POST['inetOrgPerson_labeledURI']) && ($_POST['inetOrgPerson_labeledURI'] != '')) { + $attributesNew['labeledURI'] = preg_split('/;[ ]*/', $_POST['inetOrgPerson_labeledURI']); + } + elseif (isset($attributes['labeledURI'])) unset($attributesNew['labeledURI']); + } + // telephone number + if (in_array('telephoneNumber', $fields) && !in_array('telephoneNumber', $readOnlyFields)) { + $attributeNames[] = 'telephoneNumber'; + if (isset($_POST['inetOrgPerson_telephoneNumber']) && ($_POST['inetOrgPerson_telephoneNumber'] != '')) { + if (!get_preg($_POST['inetOrgPerson_telephoneNumber'], 'telephone')) $return['messages'][] = $this->messages['telephoneNumber'][0]; + else $attributesNew['telephoneNumber'][0] = $_POST['inetOrgPerson_telephoneNumber']; + } + elseif (isset($attributes['telephoneNumber'])) unset($attributesNew['telephoneNumber']); + } + // home telephone number + if (in_array('homePhone', $fields) && !in_array('homePhone', $readOnlyFields)) { + $attributeNames[] = 'homePhone'; + if (isset($_POST['inetOrgPerson_homePhone']) && ($_POST['inetOrgPerson_homePhone'] != '')) { + if (!get_preg($_POST['inetOrgPerson_homePhone'], 'telephone')) $return['messages'][] = $this->messages['homePhone'][0]; + else $attributesNew['homePhone'][0] = $_POST['inetOrgPerson_homePhone']; + } + elseif (isset($attributes['homePhone'])) unset($attributesNew['homePhone']); + } + // fax number + if (in_array('faxNumber', $fields) && !in_array('faxNumber', $readOnlyFields)) { + $attributeNames[] = 'facsimileTelephoneNumber'; + if (isset($_POST['inetOrgPerson_faxNumber']) && ($_POST['inetOrgPerson_faxNumber'] != '')) { + if (!get_preg($_POST['inetOrgPerson_faxNumber'], 'telephone')) $return['messages'][] = $this->messages['facsimileNumber'][0]; + else $attributesNew['facsimileTelephoneNumber'][0] = $_POST['inetOrgPerson_faxNumber']; + } + elseif (isset($attributes['facsimileTelephoneNumber'])) $attributesNew['facsimileTelephoneNumber'] = array(); + } + // mobile telephone number + if (in_array('mobile', $fields) && !in_array('mobile', $readOnlyFields)) { + $attributeNames[] = 'mobile'; + if (isset($_POST['inetOrgPerson_mobile']) && ($_POST['inetOrgPerson_mobile'] != '')) { + if (!get_preg($_POST['inetOrgPerson_mobile'], 'telephone')) $return['messages'][] = $this->messages['mobileTelephone'][0]; + else $attributesNew['mobile'][0] = $_POST['inetOrgPerson_mobile']; + } + elseif (isset($attributes['mobile'])) unset($attributesNew['mobile']); + } + // pager + if (in_array('pager', $fields) && !in_array('pager', $readOnlyFields)) { + $attributeNames[] = 'pager'; + if (isset($_POST['inetOrgPerson_pager']) && ($_POST['inetOrgPerson_pager'] != '')) { + if (!get_preg($_POST['inetOrgPerson_pager'], 'telephone')) $return['messages'][] = $this->messages['pager'][0]; + else $attributesNew['pager'][0] = $_POST['inetOrgPerson_pager']; + } + elseif (isset($attributes['pager'])) unset($attributesNew['pager']); + } + // street + if (in_array('street', $fields) && !in_array('street', $readOnlyFields)) { + $attributeNames[] = 'street'; + if (isset($_POST['inetOrgPerson_street']) && ($_POST['inetOrgPerson_street'] != '')) { + if (!get_preg($_POST['inetOrgPerson_street'], 'street')) $return['messages'][] = $this->messages['street'][0]; + else $attributesNew['street'][0] = $_POST['inetOrgPerson_street']; + } + elseif (isset($attributes['street'])) unset($attributesNew['street']); + } + // postal address + if (in_array('postalAddress', $fields) && !in_array('postalAddress', $readOnlyFields)) { + $attributeNames[] = 'postalAddress'; + if (isset($_POST['inetOrgPerson_postalAddress']) && ($_POST['inetOrgPerson_postalAddress'] != '')) { + if (!get_preg($_POST['inetOrgPerson_postalAddress'], 'postalAddress')) $return['messages'][] = $this->messages['postalAddress'][0]; + else $attributesNew['postalAddress'][0] = $_POST['inetOrgPerson_postalAddress']; + } + elseif (isset($attributes['postalAddress'])) $attributesNew['postalAddress'] = array(); + } + // registered address + if (in_array('registeredAddress', $fields) && !in_array('registeredAddress', $readOnlyFields)) { + $attributeNames[] = 'registeredAddress'; + if (isset($_POST['inetOrgPerson_registeredAddress']) && ($_POST['inetOrgPerson_registeredAddress'] != '')) { + if (!get_preg($_POST['inetOrgPerson_registeredAddress'], 'postalAddress')) $return['messages'][] = $this->messages['registeredAddress'][0]; + else $attributesNew['registeredAddress'][0] = $_POST['inetOrgPerson_registeredAddress']; + } + elseif (isset($attributes['registeredAddress'])) $attributesNew['registeredAddress'] = array(); + } + // postal code + if (in_array('postalCode', $fields) && !in_array('postalCode', $readOnlyFields)) { + $attributeNames[] = 'postalCode'; + if (isset($_POST['inetOrgPerson_postalCode']) && ($_POST['inetOrgPerson_postalCode'] != '')) { + if (!get_preg($_POST['inetOrgPerson_postalCode'], 'postalCode')) $return['messages'][] = $this->messages['postalCode'][0]; + else $attributesNew['postalCode'][0] = $_POST['inetOrgPerson_postalCode']; + } + elseif (isset($attributes['postalCode'])) unset($attributesNew['postalCode']); + } + // post office box + if (in_array('postOfficeBox', $fields) && !in_array('postOfficeBox', $readOnlyFields)) { + $attributeNames[] = 'postOfficeBox'; + if (isset($_POST['inetOrgPerson_postOfficeBox']) && ($_POST['inetOrgPerson_postOfficeBox'] != '')) { + $attributesNew['postOfficeBox'][0] = $_POST['inetOrgPerson_postOfficeBox']; + } + elseif (isset($attributes['postOfficeBox'])) unset($attributesNew['postOfficeBox']); + } + // room number + if (in_array('roomNumber', $fields) && !in_array('roomNumber', $readOnlyFields)) { + $attributeNames[] = 'roomNumber'; + if (isset($_POST['inetOrgPerson_roomNumber']) && ($_POST['inetOrgPerson_roomNumber'] != '')) { + $attributesNew['roomNumber'][0] = $_POST['inetOrgPerson_roomNumber']; + } + elseif (isset($attributes['roomNumber'])) unset($attributesNew['roomNumber']); + } + // l + if (in_array('location', $fields) && !in_array('location', $readOnlyFields)) { + $attributeNames[] = 'l'; + if (isset($_POST['inetOrgPerson_location']) && ($_POST['inetOrgPerson_location'] != '')) { + $attributesNew['l'][0] = $_POST['inetOrgPerson_location']; + } + elseif (isset($attributes['l'])) unset($attributesNew['l']); + } + // st + if (in_array('state', $fields) && !in_array('state', $readOnlyFields)) { + $attributeNames[] = 'st'; + if (isset($_POST['inetOrgPerson_state']) && ($_POST['inetOrgPerson_state'] != '')) { + $attributesNew['st'][0] = $_POST['inetOrgPerson_state']; + } + elseif (isset($attributes['st'])) unset($attributesNew['st']); + } + // car license + if (in_array('carLicense', $fields) && !in_array('carLicense', $readOnlyFields)) { + $attributeNames[] = 'carLicense'; + if (isset($_POST['inetOrgPerson_carLicense']) && ($_POST['inetOrgPerson_carLicense'] != '')) { + $attributesNew['carLicense'][0] = $_POST['inetOrgPerson_carLicense']; + } + elseif (isset($attributes['carLicense'])) unset($attributesNew['carLicense']); + } + // office name + if (in_array('officeName', $fields) && !in_array('officeName', $readOnlyFields)) { + $attributeNames[] = 'physicalDeliveryOfficeName'; + if (isset($_POST['inetOrgPerson_officeName']) && ($_POST['inetOrgPerson_officeName'] != '')) { + $attributesNew['physicalDeliveryOfficeName'][0] = $_POST['inetOrgPerson_officeName']; + } + elseif (isset($attributes['physicalDeliveryOfficeName'])) unset($attributesNew['physicalDeliveryOfficeName']); + } + // business category + if (in_array('businessCategory', $fields) && !in_array('businessCategory', $readOnlyFields)) { + $attributeNames[] = 'businessCategory'; + if (isset($_POST['inetOrgPerson_businessCategory']) && ($_POST['inetOrgPerson_businessCategory'] != '')) { + if (!get_preg($_POST['inetOrgPerson_businessCategory'], 'businessCategory')) { + $return['messages'][] = $this->messages['businessCategory'][0]; + } + else { + $attributesNew['businessCategory'][0] = $_POST['inetOrgPerson_businessCategory']; + } + } + elseif (isset($attributes['businessCategory'])) unset($attributesNew['businessCategory']); + } + // photo + if (in_array('jpegPhoto', $fields) && !in_array('jpegPhoto', $readOnlyFields)) { + if (isset($_FILES['photoFile']) && ($_FILES['photoFile']['size'] > 0)) { + $handle = fopen($_FILES['photoFile']['tmp_name'], "r"); + $data = fread($handle, 1000000); + fclose($handle); + $return['add']['jpegPhoto'][0] = $data; + } + if (isset($_POST['removeReplacePhoto']) && ($_POST['removeReplacePhoto'] == 'on')) { + if ($_FILES['replacePhotoFile'] && ($_FILES['replacePhotoFile']['size'] > 0)) { + $handle = fopen($_FILES['replacePhotoFile']['tmp_name'], "r"); + $data = fread($handle, 1000000); + fclose($handle); + $return['mod']['jpegPhoto'][0] = $data; + } + else { + $return['mod']['jpegPhoto'] = array(); + } + } + } + // departments + if (in_array('departmentNumber', $fields) && !in_array('departmentNumber', $readOnlyFields)) { + $attributeNames[] = 'departmentNumber'; + if (isset($_POST['inetOrgPerson_departmentNumber']) && ($_POST['inetOrgPerson_departmentNumber'] != '')) { + $attributesNew['departmentNumber'] = preg_split('/;[ ]*/', $_POST['inetOrgPerson_departmentNumber']); + } + elseif (isset($attributes['departmentNumber'])) unset($attributesNew['departmentNumber']); + } + // initials + if (in_array('initials', $fields) && !in_array('initials', $readOnlyFields)) { + $attributeNames[] = 'initials'; + if (isset($_POST['inetOrgPerson_initials']) && ($_POST['inetOrgPerson_initials'] != '')) { + $attributesNew['initials'] = preg_split('/;[ ]*/', $_POST['inetOrgPerson_initials']); + } + elseif (isset($attributes['initials'])) unset($attributesNew['initials']); + } + // title + if (in_array('title', $fields) && !in_array('title', $readOnlyFields)) { + $attributeNames[] = 'title'; + if (isset($_POST['inetOrgPerson_title']) && ($_POST['inetOrgPerson_title'] != '')) { + if (!get_preg($_POST['inetOrgPerson_title'], 'title')) $return['messages'][] = $this->messages['title'][0]; + else $attributesNew['title'][0] = $_POST['inetOrgPerson_title']; + } + elseif (isset($attributes['title'])) unset($attributesNew['title']); + } + // user certificates + if (in_array('userCertificate', $fields)) { + $userCertificates = $_SESSION[inetOrgPerson::SESS_CERTIFICATES_LIST]; + $userCertificatesAttrName = 'userCertificate;binary'; + if (isset($attributes['userCertificate'])) { + $userCertificatesAttrName = 'userCertificate'; + } + $attributeNames[] = $userCertificatesAttrName; + if (sizeof($userCertificates) > 0) { + $attributesNew[$userCertificatesAttrName] = $userCertificates; + } + elseif (isset($attributesNew[$userCertificatesAttrName])) { + unset($attributesNew[$userCertificatesAttrName]); + } + } + // description + if (in_array('description', $fields) && !in_array('description', $readOnlyFields)) { + $attributeNames[] = 'description'; + if (!empty($_POST['inetOrgPerson_description'])) { + $attributesNew['description'][0] = $_POST['inetOrgPerson_description']; + } + elseif (isset($attributes['description'])) unset($attributesNew['description']); + } + // ou + if (in_array('ou', $fields) && !in_array('ou', $readOnlyFields)) { + $attributeNames[] = 'ou'; + if (!empty($_POST['inetOrgPerson_ou'])) { + $attributesNew['ou'][0] = $_POST['inetOrgPerson_ou']; + } + elseif (isset($attributes['ou'])) unset($attributesNew['ou']); + } + // uid + if (in_array('uid', $fields) && !in_array('uid', $readOnlyFields)) { + $attributeNames[] = 'uid'; + if (isset($_POST['inetOrgPerson_uid']) && ($_POST['inetOrgPerson_uid'] != '')) { + if (!get_preg($_POST['inetOrgPerson_uid'], 'username')) $return['messages'][] = $this->messages['uid'][0]; + else $attributesNew['uid'][0] = $_POST['inetOrgPerson_uid']; + } + elseif (isset($attributes['uid'])) unset($attributesNew['uid']); + } + // find differences + for ($i = 0; $i < sizeof($attributeNames); $i++) { + $attrName = $attributeNames[$i]; + if (isset($attributes[$attrName]) && !isset($attributesNew[$attrName])) $return['del'][$attrName] = $attributes[$attrName]; + elseif (!isset($attributes[$attrName]) && isset($attributesNew[$attrName])) $return['add'][$attrName] = $attributesNew[$attrName]; + else { + if (isset($attributes[$attrName])) { + for ($a = 0; $a < sizeof($attributes[$attrName]); $a++) { + if (!in_array($attributes[$attrName][$a], $attributesNew[$attrName])) { + $return['mod'][$attrName] = $attributesNew[$attrName]; + break; + } + } + } + if (isset($attributesNew[$attrName])) { + for ($a = 0; $a < sizeof($attributesNew[$attrName]); $a++) { + if (!in_array($attributesNew[$attrName][$a], $attributes[$attrName])) { + $return['mod'][$attrName] = $attributesNew[$attrName]; + break; + } + } + } + } + } + return $return; + } + + /** + * Manages AJAX requests. + * This function may be called with or without an account container. + */ + public function handleAjaxRequest() { + // AJAX uploads are non-JSON + if (isset($_GET['action']) && ($_GET['action'] == 'ajaxCertUpload')) { + $this->ajaxUpload(); + return; + } + $jsonInput = $_POST['jsonInput']; + $jsonReturn = self::invalidAjaxRequest(); + if (isset($jsonInput['action'])) { + if ($jsonInput['action'] == 'delete') { + $jsonReturn = $this->ajaxDeleteSelfServiceUserCertificate($jsonInput); + } + } + echo json_encode($jsonReturn); + } + + /** + * Handles an AJAX file upload and prints the JSON result. + */ + private function ajaxUpload() { + $result = array('success' => true); + if (!isset($_FILES['qqfile']) || ($_FILES['qqfile']['size'] < 100)) { + $result = array('error' => _('No file received.')); + } + else { + $handle = fopen($_FILES['qqfile']['tmp_name'], "r"); + $data = fread($handle, 100000000); + fclose($handle); + if (strpos($data, '-----BEGIN CERTIFICATE-----') === 0) { + $pemData = str_replace("\r", '', $data); + $pemData = explode("\n", $pemData); + array_shift($pemData); + $last = array_pop($pemData); + while (($last != '-----END CERTIFICATE-----') && sizeof($pemData) > 2) { + $last = array_pop($pemData); + } + $pemData = implode('', $pemData); + $data = base64_decode($pemData); + } + $_SESSION[inetOrgPerson::SESS_CERTIFICATES_LIST][] = $data; + ob_start(); + $contentElement = $this->getSelfServiceUserCertificates(); + ob_end_clean(); + ob_start(); + $tabindex = 999; + parseHtml(null, $contentElement, array(), true, $tabindex, $this->get_scope()); + $content = ob_get_contents(); + ob_end_clean(); + $result['html'] = $content; + } + echo json_encode($result); + } + + /** + * Manages the deletion of a certificate. + * + * @param array $data JSON data + */ + private function ajaxDeleteSelfServiceUserCertificate($data) { + if (!isset($data['id'])) { + return self::invalidAjaxRequest(); + } + $index = $data['id']; + if (array_key_exists($index, $_SESSION[inetOrgPerson::SESS_CERTIFICATES_LIST])) { + unset($_SESSION[inetOrgPerson::SESS_CERTIFICATES_LIST][$index]); + $_SESSION[inetOrgPerson::SESS_CERTIFICATES_LIST] = array_values($_SESSION[inetOrgPerson::SESS_CERTIFICATES_LIST]); + } + ob_start(); + $contentElement = $this->getSelfServiceUserCertificates(); + ob_end_clean(); + ob_start(); + $tabindex = 999; + parseHtml(null, $contentElement, array(), true, $tabindex, $this->get_scope()); + $content = ob_get_contents(); + ob_end_clean(); + return array( + 'errorsOccured' => 'false', + 'html' => $content, + ); + } + + /** + * Invalid AJAX request received. + * + * @param String $message error message + */ + public static function invalidAjaxRequest($message = null) { + if ($message == null) { + $message = _('Invalid request'); + } + return array('errorsOccured' => 'true', 'errormessage' => $message); + } + + /** + * This method specifies if a module manages password attributes. + * @see passwordService::managesPasswordAttributes + * + * @return boolean true if this module manages password attributes + */ + public function managesPasswordAttributes() { + $modules = $_SESSION['config']->get_AccountModules($this->get_scope()); + if (!in_array('posixAccount', $modules)) { + return !$this->isAdminReadOnly('userPassword'); + } + return false; + } + + /** + * Specifies if this module supports to force that a user must change his password on next login. + * + * @return boolean force password change supported + */ + public function supportsForcePasswordChange() { + return false; + } + + /** + * This function is called whenever the password should be changed. Account modules + * must change their password attributes only if the modules list contains their module name. + * + * @param String $password new password + * @param $modules list of modules for which the password should be changed + * @param boolean $forcePasswordChange force the user to change his password at next login + * @return array list of error messages if any as parameter array for StatusMessage + * e.g. return arrray(array('ERROR', 'Password change failed.')) + * @see passwordService::passwordChangeRequested + */ + public function passwordChangeRequested($password, $modules, $forcePasswordChange) { + if (!in_array(get_class($this), $modules)) { + return array(); + } + // check password strength + $user = empty($this->attributes['uid'][0]) ? null : $this->attributes['uid'][0]; + $additionalAttrs = array(); + if (!empty($this->attributes['sn'][0])) { + $additionalAttrs[] = $this->attributes['sn'][0]; + } + if (!empty($this->attributes['givenName'][0])) { + $additionalAttrs[] = $this->attributes['givenName'][0]; + } + $checkResult = checkPasswordStrength($password, $user, $additionalAttrs); + if ($checkResult !== true) { + return array(array('ERROR', $checkResult)); + } + // set new password + $this->clearTextPassword = $password; + $this->attributes['userPassword'][0] = pwd_hash($password, true, $this->moduleSettings['posixAccount_pwdHash'][0]); + return array(); + } + + /** + * Returns a list of possible managers. + * + * @return array list of format array(abstract DN => DN) + */ + private function getManagers() { + if ($this->cachedManagers != null) { + return $this->cachedManagers; + } + $dnUsers = searchLDAPByAttribute(null, null, 'inetOrgPerson', array('dn'), array('user')); + for ($i = 0; $i < sizeof($dnUsers); $i++) { + $dnUsers[$i] = $dnUsers[$i]['dn']; + } + usort($dnUsers, 'compareDN'); + array_unshift($dnUsers, '-'); + $this->cachedManagers = array(); + for ($i = 0; $i < sizeof($dnUsers); $i++) { + $this->cachedManagers[getAbstractDN($dnUsers[$i])] = $dnUsers[$i]; + } + return $this->cachedManagers; + } + + /** + * Loads cached data from LDAP such as departmets etc. + */ + private function initCache() { + if ($this->departmentCache != null) { + return; + } + $attrs = array(); + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideDepartments')) { + $attrs[] = 'departmentNumber'; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideOu')) { + $attrs[] = 'ou'; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideO')) { + $attrs[] = 'o'; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideJobTitle')) { + $attrs[] = 'title'; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEmployeeType')) { + $attrs[] = 'employeeType'; + } + if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideBusinessCategory')) { + $attrs[] = 'businessCategory'; + } + $departments = array(); + $ous = array(); + $os = array(); + $titles = array(); + $employeeTypes = array(); + $businessCategories = array(); + if (sizeof($attrs) > 0) { + $result = searchLDAPByFilter('(objectClass=inetOrgPerson)', $attrs, array($this->get_scope())); + foreach ($result as $attributes) { + if (isset($attributes['departmentnumber'])) { + $departments = array_merge($departments, $attributes['departmentnumber']); + } + if (isset($attributes['ou'])) { + $ous = array_merge($ous, $attributes['ou']); + } + if (isset($attributes['o'])) { + $os = array_merge($os, $attributes['o']); + } + if (isset($attributes['title'])) { + $titles = array_merge($titles, $attributes['title']); + } + if (isset($attributes['employeetype'])) { + $employeeTypes = array_merge($employeeTypes, $attributes['employeetype']); + } + if (isset($attributes['businesscategory'])) { + $businessCategories = array_merge($businessCategories, $attributes['businesscategory']); + } + } + } + $this->departmentCache = array_values(array_unique($departments)); + $this->oCache = array_values(array_unique($os)); + $this->ouCache = array_values(array_unique($ous)); + $this->titleCache = array_values(array_unique($titles)); + $this->employeeTypeCache = array_values(array_unique($employeeTypes)); + $this->businessCategoryCache = array_values(array_unique($businessCategories)); + } + + /** + * Returns if the attribute is read-only in admin interface. + * + * @param String $attrName attribute name + * @return boolean attribute is read-only + */ + private function isAdminReadOnly($attrName) { + // for new accounts all fields can be edited + if ($this->getAccountContainer()->isNewAccount) { + return false; + } + return $this->isBooleanConfigOptionSet('inetOrgPerson_readOnly_' . $attrName); + } + + /** + * Adds a simple read-only field to the given container. + * + * @param htmlTable $container parent container + * @param String $attrName attribute name + * @param String $label field label + */ + private function addSimpleReadOnlyField(&$container, $attrName, $label) { + $val = ''; + if (!empty($this->attributes[$attrName][0])) { + $values = $this->attributes[$attrName]; + array_map('htmlspecialchars', $values); + $val = implode('
    ', $values); + } + $labelBox = new htmlOutputText($label); + if (!empty($this->attributes[$attrName]) && (sizeof($this->attributes[$attrName]) > 1)) { + $labelBox->alignment = htmlElement::ALIGN_TOP; + } + $container->addElement($labelBox); + $container->addElement(new htmlOutputText($val, false), true); + } + + /** + * Returns a list of configuration options. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * The field names are used as keywords to load and save settings. + * We recommend to use the module name as prefix for them (e.g. posixAccount_homeDirectory) to avoid naming conflicts. + * + * @param array $scopes account types (user, group, host) + * @param array $allScopes list of all active account modules and their scopes (module => array(scopes)) + * @return mixed htmlElement or array of htmlElement + * + * @see htmlElement + */ + public function get_configOptions($scopes, $allScopes) { + $return = parent::get_configOptions($scopes, $allScopes); + // configuration settings + $configContainer = new htmlTable(); + if (isset($_SESSION['conf_config'])) { + // add password hash type if posixAccount is inactive + $confActiveUnixModules = $_SESSION['conf_config']->get_AccountModules('user'); + if (in_array('host', $_SESSION['conf_config']->get_ActiveTypes())) { + $confActiveUnixModules = array_merge($confActiveUnixModules, $_SESSION['conf_config']->get_AccountModules('host')); + } + if (in_array('group', $_SESSION['conf_config']->get_ActiveTypes())) { + $confActiveUnixModules = array_merge($confActiveUnixModules, $_SESSION['conf_config']->get_AccountModules('group')); + } + if (!in_array('posixAccount', $confActiveUnixModules) && !in_array('posixGroup', $confActiveUnixModules)) { + $optionsSelected = array('SSHA'); + $hashOption = new htmlTable(); + $hashOption->addElement(new htmlTableExtendedSelect('posixAccount_pwdHash', getSupportedHashTypes(), $optionsSelected, _("Password hash type"), 'pwdHash')); + $configContainer->addElement($hashOption, true); + } + } + $configContainerHead = new htmlTable(); + $configContainerHead->addElement(new htmlOutputText(_('Hidden options'))); + $configContainerHead->addElement(new htmlHelpLink('hiddenOptions')); + $configContainerOptions = new htmlTable(); + $configContainer->addElement($configContainerHead, true); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideDescription', false, _('Description'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideStreet', false, _('Street'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hidePostOfficeBox', false, _('Post office box'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hidePostalCode', false, _('Postal code'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideLocation', false, _('Location'), null, false)); + $configContainerOptions->addNewLine(); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideState', false, _('State'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hidePostalAddress', false, _('Postal address'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideRegisteredAddress', false, _('Registered address'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideOfficeName', false, _('Office name'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideRoomNumber', false, _('Room number'), null, false)); + $configContainerOptions->addNewLine(); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideTelephoneNumber', false, _('Telephone number'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideHomeTelephoneNumber', false, _('Home telephone number'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideMobileNumber', false, _('Mobile number'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideFaxNumber', false, _('Fax number'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hidePager', true, _('Pager'), null, false)); + $configContainerOptions->addNewLine(); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideEMailAddress', false, _('Email address'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideJobTitle', false, _('Job title'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideCarLicense', false, _('Car license'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideEmployeeType', false, _('Employee type'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideBusinessCategory', false, _('Business category'), null, false)); + $configContainerOptions->addNewLine(); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideDepartments', false, _('Department'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideManager', false, _('Manager'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideOu', false, _('Organisational unit'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideO', false, _('Organisation'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideEmployeeNumber', false, _('Employee number'), null, false)); + $configContainerOptions->addNewLine(); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideInitials', false, _('Initials'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideLabeledURI', false, _('Web site'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideuserCertificate', false, _('User certificates'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hidejpegPhoto', false, _('Photo'), null, false)); + if (isset($_SESSION['conf_config'])) { + $confActiveUnixUserModules = $_SESSION['conf_config']->get_AccountModules('user'); + // option to hide uid + if (!in_array('posixAccount', $confActiveUnixUserModules)) { + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideUID', false, _('User name'), null, false)); + } + } + $configContainer->addElement($configContainerOptions, true); + $advancedOptions = new htmlTable(); + $advancedOptions->addElement(new htmlSubTitle(_('Read-only fields')), true); + $readOnlyOptions = array( + _('Description') => 'inetOrgPerson_readOnly_description', _('Street') => 'inetOrgPerson_readOnly_street', + _('First name') => 'inetOrgPerson_readOnly_givenName', _('Last name') => 'inetOrgPerson_readOnly_sn', + _('Post office box') => 'inetOrgPerson_readOnly_postOfficeBox', _('Postal code') => 'inetOrgPerson_readOnly_postalCode', + _('Location') => 'inetOrgPerson_readOnly_l', _('State') => 'inetOrgPerson_readOnly_st', + _('Postal address') => 'inetOrgPerson_readOnly_postalAddress', _('Registered address') => 'inetOrgPerson_readOnly_registeredAddress', + _('Office name') => 'inetOrgPerson_readOnly_physicalDeliveryOfficeName', _('Room number') => 'inetOrgPerson_readOnly_roomNumber', + _('Telephone number') => 'inetOrgPerson_readOnly_telephoneNumber', _('Home telephone number') => 'inetOrgPerson_readOnly_homePhone', + _('Mobile number') => 'inetOrgPerson_readOnly_mobile', _('Fax number') => 'inetOrgPerson_readOnly_facsimileTelephoneNumber', + _('Pager') => 'inetOrgPerson_readOnly_pager', _('Email address') => 'inetOrgPerson_readOnly_mail', + _('Web site') => 'inetOrgPerson_readOnly_labeledURI', _('Job title') => 'inetOrgPerson_readOnly_title', + _('Car license') => 'inetOrgPerson_readOnly_carLicense', _('Employee type') => 'inetOrgPerson_readOnly_employeeType', + _('Business category') => 'inetOrgPerson_readOnly_businessCategory', + _('Department') => 'inetOrgPerson_readOnly_departmentNumber', _('Manager') => 'inetOrgPerson_readOnly_manager', + _('Organisation') => 'inetOrgPerson_readOnly_o', _('Organisational unit') => 'inetOrgPerson_readOnly_ou', + _('Employee number') => 'inetOrgPerson_readOnly_employeeNumber', _('Initials') => 'inetOrgPerson_readOnly_initials', + _('Photo') => 'inetOrgPerson_readOnly_jpegPhoto', _('Password') => 'inetOrgPerson_readOnly_userPassword' + ); + if (isset($_SESSION['conf_config'])) { + $confActiveUnixUserModules = $_SESSION['conf_config']->get_AccountModules('user'); + $readOnlyOptions[_('User name')] = 'inetOrgPerson_readOnly_uid'; + $readOnlyOptions[_('Common name')] = 'inetOrgPerson_readOnly_cn'; + } + ksort($readOnlyOptions); + $readOnlyCounter = 0; + $readOnlyOptionsTable = new htmlTable(); + $readOnlyOptionsTable->colspan = 5; + foreach ($readOnlyOptions as $label => $id) { + $readOnlyOptionsTable->addElement(new htmlTableExtendedInputCheckbox($id, false, $label, null, false)); + $readOnlyCounter++; + if (($readOnlyCounter % 5) == 0) { + $readOnlyOptionsTable->addNewLine(); + } + } + $advancedOptions->addElement($readOnlyOptionsTable, true); + $advancedOptions->addElement(new htmlSubTitle(_('Photo')), true); + $photoTable = new htmlTable(); + $photoTable->colspan = 2; + $photoTable->addElement(new htmlTableExtendedInputField(_('Maximum width (px)'), 'inetOrgPerson_jpegPhoto_maxWidth'), true); + $photoTable->addElement(new htmlTableExtendedInputField(_('Maximum height (px)'), 'inetOrgPerson_jpegPhoto_maxHeight'), true); + $photoTable->addElement(new htmlTableExtendedInputField(_('Maximum file size (kB)'), 'inetOrgPerson_jpegPhoto_maxSize'), true); + $advancedOptions->addElement($photoTable, true); + $advancedOptionsAccordion = new htmlAccordion('inetOrgPersonAdvancedOptions', array(_('Advanced options') => $advancedOptions), false); + $advancedOptionsAccordion->colspan = 5; + $configContainer->addElement($advancedOptionsAccordion); + $return[] = $configContainer; + return $return; + } + + /** + * Checks if the given email address already exists in LDAP. + * + * @param String $mail email address + * @return boolean true if already exists + */ + private function emailExists($mail) { + if (empty($mail)) { + return false; + } + if (isset($this->emailCheckCache[$mail])) { + return $this->emailCheckCache[$mail]; + } + $result = searchLDAPByAttribute('mail', $mail, 'inetOrgPerson', array('dn'), array('user')); + $this->emailCheckCache[$mail] = (sizeof($result) > 0); + return $this->emailCheckCache[$mail]; + } + + /** + * Returns if the Unix module is also active. + * + * @return boolean Unix is active + */ + private function isUnixActive() { + if (!isset($_SESSION['config'])) { + return false; + } + $modules = $_SESSION['config']->get_AccountModules($this->get_scope()); + return in_array('posixAccount', $modules); + } + +} + +?> diff --git a/lam/lib/modules/kolabGroup.inc b/lam/lib/modules/kolabGroup.inc new file mode 100644 index 00000000..957e15da --- /dev/null +++ b/lam/lib/modules/kolabGroup.inc @@ -0,0 +1,482 @@ +autoAddObjectClasses = false; + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('group')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'kolab.png'; + // alias name + $return["alias"] = _("Kolab"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('kolabGroupOfUniqueNames'); + // managed attributes + $return['attributes'] = array('kolabAllowSMTPRecipient', 'kolabAllowSMTPSender', 'kolabDeleteflag'); + if ($this->manageMail()) { + $return['attributes'][] = 'mail'; + } + // help Entries + $return['help'] = array( + 'mail' => array( + "Headline" => _("Email address"), 'attr' => 'mail', + "Text" => _("The list's email address.") + ), + 'mailList' => array( + "Headline" => _("Email address"), 'attr' => 'mail', + "Text" => _("The list's email address.") . ' ' . _("Multiple values are separated by semicolon.") + ), + 'kolabAllowSMTPRecipient' => array ( + "Headline" => _('Allowed recipients'), 'attr' => 'kolabAllowSMTPRecipient', + "Text" => _('Describes the allowed or disallowed SMTP recipient addresses for mail sent by this account (e.g. "domain.tld" or "-user@domain.tld").') + ), + 'kolabAllowSMTPRecipientList' => array ( + "Headline" => _('Allowed recipients'), 'attr' => 'kolabAllowSMTPRecipient', + "Text" => _('Describes the allowed or disallowed SMTP recipient addresses for mail sent by this account (e.g. "domain.tld" or "-user@domain.tld").') + . ' ' . _("Multiple values are separated by semicolon.") + ), + 'kolabAllowSMTPSender' => array ( + "Headline" => _('Allowed senders'), 'attr' => 'kolabAllowSMTPSender', + "Text" => _('Describes the allowed or disallowed SMTP addresses sending mail to this account (e.g. "domain.tld" or "-user@domain.tld").') + ), + 'kolabAllowSMTPSenderList' => array ( + "Headline" => _('Allowed senders'), 'attr' => 'kolabAllowSMTPSender', + "Text" => _('Describes the allowed or disallowed SMTP addresses sending mail to this account (e.g. "domain.tld" or "-user@domain.tld").') + . ' ' . _("Multiple values are separated by semicolon.") + ), + 'deleteFlag' => array( + "Headline" => _("Mark for deletion"), 'attr' => 'kolabDeleteflag', + "Text" => _("This will set a special flag on the account which tells Kolabd to remove it. Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes).") + ), + 'autoAdd' => array( + "Headline" => _("Automatically add this extension"), + "Text" => _("This will enable the extension automatically if this profile is loaded.") + ), + 'addExtension' => array( + "Headline" => _("Add Kolab extension"), + "Text" => _("Adds this Kolab extension.") + ), + ); + // profile options + $profileContainer = new htmlTable(); + $profileContainer->addElement(new htmlTableExtendedInputCheckbox('kolabGroup_addExt', false, _('Automatically add this extension'), 'autoAdd'), true); + $return['profile_options'] = $profileContainer; + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'kolabGroup_addExtension', + 'description' => _('Add Kolab extension'), + 'help' => 'addExtension', + 'example' => 'false', + 'default' => 'false', + 'values' => 'true, false' + ), + array( + 'name' => 'kolabGroup_kolabAllowSMTPRecipient', + 'description' => _('Allowed recipients'), + 'help' => 'kolabAllowSMTPRecipientList', + 'example' => '.com; -.net', + ), + array( + 'name' => 'kolabGroup_kolabAllowSMTPSender', + 'description' => _('Allowed senders'), + 'help' => 'kolabAllowSMTPSenderList', + 'example' => '.com; -.net', + ), + ); + if ($this->manageMail()) { + $return['upload_columns'][] = array( + 'name' => 'kolabGroup_mail', + 'description' => _('Email address'), + 'help' => 'mailList', + 'example' => 'list@company.com', + 'required' => true, + 'unique' => true, + ); + } + // available PDF fields + $return['PDF_fields'] = array( + 'kolabAllowSMTPRecipient' => _('Allowed recipients'), + 'kolabAllowSMTPSender' => _('Allowed senders'), + ); + if ($this->manageMail()) { + $return['PDF_fields']['mail'] = _('Email address'); + } + return $return; + } + + /** + * This function fills the $messages variable with output messages from this module. + */ + function load_Messages() { + $this->messages['mail'][0] = array('ERROR', _('Email address'), _('Please enter a valid email address!')); + $this->messages['mail'][1] = array('ERROR', _('Account %s:') . ' kolabGroup_mail', _('Please enter a valid email address!')); + $this->messages['mail'][2] = array('ERROR', _('Email address'), _('Email address already exists.')); + $this->messages['mail'][3] = array('ERROR', _('Account %s:') . ' kolabGroup_mail', _('Email address already exists.')); + $this->messages['kolabAllowSMTPRecipient'][0] = array('ERROR', _('Allowed recipients'), _('Please enter a valid recipient expression.')); + $this->messages['kolabAllowSMTPRecipient'][1] = array('ERROR', _('Account %s:') . ' kolabGroup_kolabAllowSMTPRecipient', _('Please enter a valid recipient expression.')); + $this->messages['kolabAllowSMTPSender'][0] = array('ERROR', _('Allowed senders'), _('Please enter a valid sender expression.')); + $this->messages['kolabAllowSMTPSender'][1] = array('ERROR', _('Account %s:') . ' kolabGroup_kolabAllowSMTPSender', _('Please enter a valid sender expression.')); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $container = new htmlTable(); + if (isset($this->attributes['objectClass']) && in_array('kolabGroupOfUniqueNames', $this->attributes['objectClass'])) { + // check if account is marked for deletion + if (isset($this->attributes['kolabDeleteflag'])) { + $container->addElement(new htmlOutputText(_('This account is marked for deletion.'))); + return $container; + } + // mail + if ($this->manageMail()) { + $this->addSimpleInputTextField($container, 'mail', _('Email address'), true); + } + // allowed recipients + $this->addMultiValueInputTextField($container, 'kolabAllowSMTPRecipient', _('Allowed recipients')); + // allowed senders + $this->addMultiValueInputTextField($container, 'kolabAllowSMTPSender', _('Allowed senders')); + // delete flag + $this->loadMailHostCache(); + if (!$this->getAccountContainer()->isNewAccount && (sizeof($this->mailHostCache) > 0)) { + $deleteContainer = new htmlTable(); + $deleteContainer->addElement(new htmlSpacer(null, '20px'), true); + $deleteContainer->addElement(new htmlAccountPageButton(get_class($this), 'deleteFlag', 'open', _('Mark account for deletion'))); + $deleteContainer->addElement(new htmlHelpLink('deleteFlag')); + $container->addElement($deleteContainer); + } + } + else { + // add button + $container->addElement(new htmlButton('addObjectClass', _('Add Kolab extension'))); + } + return $container; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + $errors = array(); + if (isset($_POST['addObjectClass'])) { + $this->attributes['objectClass'][] = 'kolabGroupOfUniqueNames'; + return $errors; + } + if (isset($_POST['remObjectClass'])) { + $this->attributes['objectClass'] = array_delete(array('kolabGroupOfUniqueNames'), $this->attributes['objectClass']); + $attrs = $this->meta['attributes']; + foreach ($attrs as $name) { + if (isset($this->attributes[$name])) { + unset($this->attributes[$name]); + } + } + return $errors; + } + // skip processing if object class is not set + if (!isset($this->attributes['objectClass']) || !in_array('kolabGroupOfUniqueNames', $this->attributes['objectClass'])) { + return $errors; + } + // mail + if ($this->manageMail()) { + if (!empty($_POST['mail'])) { + $this->attributes['mail'][0] = $_POST['mail']; + // check format + if (!get_preg($_POST['mail'], 'email')) { + $errors[] = $this->messages['mail'][0]; + } + // check if unique + if ($this->getAccountContainer()->isNewAccount || (!empty($this->orig['mail'][0]) && ($this->orig['mail'][0] != $this->attributes['mail'][0]))) { + $this->loadMailCache(); + if (in_array_ignore_case($_POST['mail'], $this->mailCache)) { + $errors[] = $this->messages['mail'][2]; + } + } + } + elseif (isset($this->attributes['mail'])) { + unset($this->attributes['mail']); + } + } + // allowed recipients + $this->processMultiValueInputTextField('kolabAllowSMTPRecipient', $errors, 'kolabEmailPrefix'); + // allowed senders + $this->processMultiValueInputTextField('kolabAllowSMTPSender', $errors, 'kolabEmailPrefix'); + return $errors; + } + + /** + * This function will create the meta HTML code to show a page to mark an account for deletion. + * + * @return htmlElement HTML meta data + */ + function display_html_deleteFlag() { + $return = new htmlTable(); + $message = new htmlOutputText(_('Do you really want to mark this account for deletion?')); + $return->addElement($message, true); + $return->addElement(new htmlSpacer(null, '10px'), true); + $serverTable = new htmlTable(); + $serverTable->addElement(new htmlTableExtendedSelect('deletionServer', $this->mailHostCache, array(), _('Server'), 'deleteFlag')); + $return->addElement($serverTable, true); + $return->addElement(new htmlSpacer(null, '10px'), true); + $buttonGroup = new htmlGroup(); + $buttonGroup->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'confirm', _('Mark account for deletion'))); + $buttonGroup->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'cancel', _('Cancel'))); + $return->addElement($buttonGroup, true); + return $return; + } + + /** + * Write variables into object and do some regex checks + */ + function process_deleteFlag() { + if (isset($_POST['form_subpage_kolabGroup_attributes_confirm'])) { + // set delete flag + $this->attributes['kolabDeleteflag'][0] = $_POST['deletionServer']; + } + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + function save_attributes() { + if (!in_array('kolabGroupOfUniqueNames', $this->attributes['objectClass']) && !in_array('kolabGroupOfUniqueNames', $this->orig['objectClass'])) { + // skip saving if the extension was not added/modified + return array(); + } + return parent::save_attributes(); + } + + /** + * Loads the values of an account profile into internal variables. + * + * @param array $profile hash array with profile values (identifier => value) + */ + function load_profile($profile) { + // profile mappings in meta data + parent::load_profile($profile); + // add extension + if (isset($profile['kolabGroup_addExt'][0]) && ($profile['kolabGroup_addExt'][0] == "true")) { + if (!in_array('kolabGroupOfUniqueNames', $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = 'kolabGroupOfUniqueNames'; + } + } + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // check if extension should be added + if (isset($rawAccounts[$i][$ids['kolabGroup_addExtension']]) && ($rawAccounts[$i][$ids['kolabGroup_addExtension']] != 'true')) { + continue; + } + // add object classes + if (!in_array('kolabGroupOfUniqueNames', $partialAccounts[$i]['objectClass'])) { + $partialAccounts[$i]['objectClass'][] = 'kolabGroupOfUniqueNames'; + } + // mail + if ($this->manageMail() && !empty($rawAccounts[$i][$ids['kolabGroup_mail']])) { + if (get_preg($rawAccounts[$i][$ids['kolabGroup_mail']], 'email')) { + $this->loadMailCache(); + if (!in_array_ignore_case(trim($rawAccounts[$i][$ids['kolabGroup_mail']]), $this->mailCache)) { + $partialAccounts[$i]['mail'] = trim($rawAccounts[$i][$ids['kolabGroup_mail']]); + } + else { + $errMsg = $this->messages['mail'][3]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + } + else { + $errMsg = $this->messages['mail'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + } + // allowed recipients + if (!empty($rawAccounts[$i][$ids['kolabGroup_kolabAllowSMTPRecipient']])) { + $mails = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['kolabGroup_kolabAllowSMTPRecipient']]); + for ($m = 0; $m < sizeof($mails); $m++) { + if (get_preg($mails[$m], 'kolabEmailPrefix')) { + $partialAccounts[$i]['kolabAllowSMTPRecipient'][] = $mails[$m]; + } + else { + $errMsg = $this->messages['kolabAllowSMTPRecipient'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + break; + } + } + } + // allowed senders + if (!empty($rawAccounts[$i][$ids['kolabGroup_kolabAllowSMTPSender']])) { + $mails = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['kolabGroup_kolabAllowSMTPSender']]); + for ($m = 0; $m < sizeof($mails); $m++) { + if (get_preg($mails[$m], 'kolabEmailPrefix')) { + $partialAccounts[$i]['kolabAllowSMTPSender'][] = $mails[$m]; + } + else { + $errMsg = $this->messages['kolabAllowSMTPSender'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + break; + } + } + } + } + return $messages; + } + + /** + * Returns a list of PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'mail', _('Email address')); + $this->addSimplePDFField($return, 'kolabAllowSMTPRecipient', _('Allowed recipients')); + $this->addSimplePDFField($return, 'kolabAllowSMTPSender', _('Allowed senders')); + return $return; + } + + /** + * Returns if the mail attribute should be managed. + * + * @return boolean manage mail attribute + */ + private function manageMail() { + if (isset($_SESSION['config'])) { + $conf = $_SESSION['config']; + if (in_array('qmailGroup', $conf->get_AccountModules($this->get_scope()))) { + return false; + } + else { + return true; + } + } + return false; + } + + /** + * Loads the list of email addresses into the cache. + */ + private function loadMailCache() { + if ($this->mailCache != null) { + return; + } + $results = searchLDAPByFilter('(mail=*)', array('mail'), array($this->get_scope())); + $this->mailCache = array(); + foreach ($results as $result) { + if (isset($result['mail'][0])) { + $this->mailCache[] = $result['mail'][0]; + } + } + } + + /** + * Loads the list of mail hosts into the cache. + */ + private function loadMailHostCache() { + if ($this->mailHostCache != null) { + return; + } + $results = searchLDAPByFilter('(mailHost=*)', array('mailHost'), array('user')); + $this->mailHostCache = array(); + foreach ($results as $result) { + if (isset($result['mailhost'][0]) && !in_array_ignore_case($result['mailhost'][0], $this->mailHostCache)) { + $this->mailHostCache[] = $result['mailhost'][0]; + } + } + } + +} + + +?> diff --git a/lam/lib/modules/kolabSharedFolder.inc b/lam/lib/modules/kolabSharedFolder.inc new file mode 100644 index 00000000..8d769fea --- /dev/null +++ b/lam/lib/modules/kolabSharedFolder.inc @@ -0,0 +1,595 @@ + id) */ + private $folderTypes = array(); + + /** + * Creates a new kolabSharedFolder object. + * + * @param string $scope account type (user, group, host) + */ + function __construct($scope) { + // call parent constructor + parent::__construct($scope); + $this->folderTypes = array( + // TODO reactivate types when stable 3.1 is released + /*_('Shared address book') => 'addressbook', + _('Shared calendar') => 'calendar', + _('Shared journal') => 'journal', + _('Shared tasks') => 'task',*/ + _('Shared mail folder') => 'mail', + ); + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('kolabSharedFolderType')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'kolab.png'; + // alias name + $return["alias"] = _("Kolab shared folder"); + // this is a base module + $return["is_base"] = true; + // RDN attribute + $return["RDN"] = array("cn" => "normal"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // LDAP filter + $return["ldap_filter"] = array('or' => "(objectClass=kolabSharedFolder)"); + // managed object classes + $return['objectClasses'] = array('kolabSharedFolder', 'mailrecipient'); + // managed attributes + $return['attributes'] = array('cn', 'kolabAllowSMTPRecipient', 'kolabAllowSMTPSender', 'kolabDeleteflag', 'acl', + 'alias', 'kolabDelegate', 'kolabFolderType', 'kolabTargetFolder', 'mailHost', 'mail'); + // profile options + $profileContainer = new htmlTable(); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Mail server'), 'kolab_mailHost', null, 'mailHost'), true); + $return['profile_options'] = $profileContainer; + // profile checks + $return['profile_checks']['kolab_mailHost'] = array( + 'type' => 'ext_preg', + 'regex' => 'DNSname', + 'error_message' => $this->messages['mailHost'][0]); + // profile mappings + $return['profile_mappings'] = array( + 'kolab_mailHost' => 'mailHost', + ); + // help Entries + $return['help'] = array( + 'cn' => array( + "Headline" => _("Name"), 'attr' => 'cn', + "Text" => _("Please enter a name for this folder.") + ), + 'mail' => array ( + "Headline" => _("Email address"), 'attr' => 'mail', + "Text" => _("The folder's email address.") + ), + 'kolabAllowSMTPRecipient' => array ( + "Headline" => _('Allowed recipients'), 'attr' => 'kolabAllowSMTPRecipient', + "Text" => _('Describes the allowed or disallowed SMTP recipient addresses for mail sent by this account (e.g. "domain.tld" or "-user@domain.tld").') + ), + 'kolabAllowSMTPRecipientList' => array ( + "Headline" => _('Allowed recipients'), 'attr' => 'kolabAllowSMTPRecipient', + "Text" => _('Describes the allowed or disallowed SMTP recipient addresses for mail sent by this account (e.g. "domain.tld" or "-user@domain.tld").') + . ' ' . _("Multiple values are separated by semicolon.") + ), + 'kolabAllowSMTPSender' => array ( + "Headline" => _('Allowed senders'), 'attr' => 'kolabAllowSMTPSender', + "Text" => _('Describes the allowed or disallowed SMTP addresses sending mail to this account (e.g. "domain.tld" or "-user@domain.tld").') + ), + 'kolabAllowSMTPSenderList' => array ( + "Headline" => _('Allowed senders'), 'attr' => 'kolabAllowSMTPSender', + "Text" => _('Describes the allowed or disallowed SMTP addresses sending mail to this account (e.g. "domain.tld" or "-user@domain.tld").') + . ' ' . _("Multiple values are separated by semicolon.") + ), + 'delegate' => array( + "Headline" => _("Delegates"), 'attr' => 'kolabDelegate', + "Text" => _("Delegates are allowed to act on behalf of the shared folder. This property is checked when using the Kolab smtp daemon (Postfix) to send emails.") + ), + 'delegateList' => array( + "Headline" => _("Delegates"), 'attr' => 'kolabDelegate', + "Text" => _("This is a comma separated list of delegates.") + ), + 'alias' => array( + "Headline" => _("Email alias"), 'attr' => 'alias', + "Text" => _("Email alias for this account.") + ), + 'aliasList' => array( + "Headline" => _("Email alias list"), 'attr' => 'alias', + "Text" => _("This is a comma separated list of eMail aliases.") + ), + 'mailHost' => array( + "Headline" => _("Mailbox home server"), 'attr' => 'mailHost', + "Text" => _("The name of the server where the mailbox is located.") + ), + 'kolabTargetFolder' => array( + "Headline" => _("Target IMAP folder"), 'attr' => 'kolabTargetFolder', + "Text" => _("The folder on the server where the shared folder is located (e.g. user/myfolder@example.com).") + ), + 'kolabFolderType' => array( + "Headline" => _("Type"), 'attr' => 'kolabFolderType', + "Text" => _("Specifies the folder type (e.g. shared mail folder).") + ), + 'deleteFlag' => array( + "Headline" => _("Mark for deletion"), 'attr' => 'kolabDeleteflag', + "Text" => _("This will set a special flag on the account which tells Kolabd to remove it. Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes).") + ), + ); + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'kolabSharedFolder_cn', + 'description' => _('Name'), + 'help' => 'cn', + 'example' => 'folder', + 'required' => true + ), + array( + 'name' => 'kolabSharedFolder_mail', + 'description' => _('Email address'), + 'help' => 'mail', + 'example' => _('user@company.com'), + 'required' => true + ), + array( + 'name' => 'kolabSharedFolder_mailHost', + 'description' => _('Mailbox home server'), + 'help' => 'mailHost', + 'example' => 'localhost', + ), + array( + 'name' => 'kolabSharedFolder_kolabTargetFolder', + 'description' => _('Target IMAP folder'), + 'help' => 'kolabTargetFolder', + 'example' => 'user/myfolder@example.com', + 'required' => true + ), + array( + 'name' => 'kolabSharedFolder_kolabFolderType', + 'description' => _('Type'), + 'help' => 'kolabFolderType', + 'example' => 'mail', + 'required' => true + ), + array( + 'name' => 'kolabSharedFolder_kolabAllowSMTPRecipient', + 'description' => _('Allowed recipients'), + 'help' => 'kolabAllowSMTPRecipientList', + 'example' => '.com; -.net', + ), + array( + 'name' => 'kolabSharedFolder_kolabAllowSMTPSender', + 'description' => _('Allowed senders'), + 'help' => 'kolabAllowSMTPSenderList', + 'example' => '.com; -.net', + ), + array( + 'name' => 'kolabSharedFolder_aliases', + 'description' => _('Email aliases'), + 'help' => 'aliasList', + 'example' => 'user@domain,user2@domain' + ), + array( + 'name' => 'kolabSharedFolder_delegates', + 'description' => _('Delegates'), + 'help' => 'delegateList', + 'example' => 'user@domain,user2@domain' + ), + ); + // available PDF fields + $return['PDF_fields'] = array( + 'cn' => _('Name'), + 'kolabAllowSMTPRecipient' => _('Allowed recipients'), + 'kolabAllowSMTPSender' => _('Allowed senders'), + 'aliases' => _('Email aliases'), + 'delegate' => _('Delegates'), + 'mailHost' => _('Mailbox home server'), + 'mail' => _('Email address'), + 'kolabTargetFolder' => _('Target IMAP folder'), + 'kolabFolderType' => _('Type'), + ); + return $return; + } + + /** + * This function fills the $messages variable with output messages from this module. + */ + function load_Messages() { + $this->messages['kolabAllowSMTPRecipient'][0] = array('ERROR', _('Allowed recipients'), _('Please enter a valid recipient expression.')); + $this->messages['kolabAllowSMTPRecipient'][1] = array('ERROR', _('Account %s:') . ' kolabSharedFolder_kolabAllowSMTPRecipient', _('Please enter a valid recipient expression.')); + $this->messages['kolabAllowSMTPSender'][0] = array('ERROR', _('Allowed senders'), _('Please enter a valid sender expression.')); + $this->messages['kolabAllowSMTPSender'][1] = array('ERROR', _('Account %s:') . ' kolabSharedFolder_kolabAllowSMTPSender', _('Please enter a valid sender expression.')); + $this->messages['alias'][0] = array('ERROR', _('Email alias is invalid!')); // third array value is set dynamically + $this->messages['alias'][1] = array('ERROR', _('Account %s:') . ' kolabSharedFolder_aliases', _('Email alias list has invalid format!')); + $this->messages['delegate'][0] = array('ERROR', _('Account %s:') . ' kolabSharedFolder_delegates', _('Unknown delegate address: %s')); + $this->messages['mailHost'][0] = array('ERROR', _('Mailbox home server name is invalid!')); // third array value is set dynamically + $this->messages['mailHost'][1] = array('ERROR', _('Account %s:') . ' kolabSharedFolder_mailHost', _('Mailbox home server name is invalid!')); + $this->messages['mail'][0] = array('ERROR', _('Email address'), _('Please enter a valid email address!')); + $this->messages['mail'][1] = array('ERROR', _('Account %s:') . ' kolabSharedFolder_mail', _('Please enter a valid email address!')); + $this->messages['cn'][0] = array('ERROR', _('Name'), _('Please enter a name.')); + $this->messages['kolabTargetFolder'][0] = array('ERROR', _('Target IMAP folder'), _('Please enter a target folder.')); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $container = new htmlTable(); + // check if account is marked for deletion + if (isset($this->attributes['kolabDeleteflag'])) { + $container->addElement(new htmlOutputText(_('This account is marked for deletion.'))); + return $container; + } + $baseContainer = new htmlTable(); + // name + $this->addSimpleInputTextField($baseContainer, 'cn', _('Name'), true); + // mail + $this->addSimpleInputTextField($baseContainer, 'mail', _('Email address'), true); + // mailbox server + if (!isset($this->orig['mailHost'][0])) { // value currently not set + $this->addSimpleInputTextField($baseContainer, 'mailHost', _('Mailbox home server')); + } + else { // input is unchangable when set + $baseContainer->addElement(new htmlOutputText(_('Mailbox home server'))); + $baseContainer->addElement(new htmlOutputText($this->attributes['mailHost'][0])); + $baseContainer->addElement(new htmlHelpLink('mailHost'), true); + } + // target folder + $this->addSimpleInputTextField($baseContainer, 'kolabTargetFolder', _('Target IMAP folder'), true); + // folder type + $possibleTypes = $this->folderTypes; + $selectedTypes = array('mail'); + if (!empty($this->attributes['kolabFolderType'])) { + $selectedTypes = $this->attributes['kolabFolderType']; + if (!in_array($this->attributes['kolabFolderType'][0], $possibleTypes)) { + $possibleTypes[$this->attributes['kolabFolderType'][0]] = $this->attributes['kolabFolderType'][0]; + } + } + $typeSelect = new htmlTableExtendedSelect('kolabFolderType', $possibleTypes, $selectedTypes, _('Type'), 'kolabFolderType'); + $typeSelect->setHasDescriptiveElements(true); + $baseContainer->addElement($typeSelect, true); + $baseContainer->addVerticalSpace('10px'); + // allowed recipients + $this->addMultiValueInputTextField($baseContainer, 'kolabAllowSMTPRecipient', _('Allowed recipients')); + // allowed senders + $this->addMultiValueInputTextField($baseContainer, 'kolabAllowSMTPSender', _('Allowed senders')); + $container->addElement($baseContainer, true); + // mail aliases + $container->addElement(new htmlSubTitle(_('Email aliases')), true); + $this->addMultiValueInputTextField($container, 'alias', null); + // delegates + $delegates = searchLDAPByAttribute('mail', '*', 'inetOrgPerson', array('mail'), array('user')); + for ($i = 0; $i < sizeof($delegates); $i++) { + $delegates[$i] = $delegates[$i]['mail'][0]; + } + sort($delegates); + $container->addElement(new htmlSubTitle(_('Delegates')), true); + $delegatesContainer = new htmlTable(); + $delegatesContainer->colspan = 3; + if (isset($this->attributes['kolabDelegate'])) { + for ($i = 0; $i < sizeof($this->attributes['kolabDelegate']); $i++) { + $delegatesContainer->addElement(new htmlSelect('delegate' . $i, $delegates, array($this->attributes['kolabDelegate'][$i]))); + $delegatesContainer->addElement(new htmlButton('delDelegate' . $i, 'del.png', true)); + if ($i == 0) { + $delegatesContainer->addElement(new htmlHelpLink('delegate')); + } + $delegatesContainer->addNewLine(); + } + } + // input box for new delegate + $delegatesContainer->addElement(new htmlSelect('delegate', $delegates)); + $delegatesContainer->addElement(new htmlButton('addDelegate', 'add.png', true)); + if (empty($this->attributes['kolabDelegate'])) { + $delegatesContainer->addElement(new htmlHelpLink('delegate')); + } + $container->addElement($delegatesContainer, true); + // delete flag + $this->loadMailHostCache(); + if (!$this->getAccountContainer()->isNewAccount && (sizeof($this->mailHostCache) > 0)) { + $deleteContainer = new htmlTable(); + $deleteContainer->addElement(new htmlSpacer(null, '20px'), true); + $deleteContainer->addElement(new htmlAccountPageButton(get_class($this), 'deleteFlag', 'open', _('Mark account for deletion'))); + $deleteContainer->addElement(new htmlHelpLink('deleteFlag')); + $container->addElement($deleteContainer); + } + return $container; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + $errors = array(); + // cn + $this->attributes['cn'][0] = $_POST['cn']; + if (empty($_POST['cn'])) { + $errors[] = $this->messages['cn'][0]; + } + // mail + $this->attributes['mail'][0] = $_POST['mail']; + if (empty($_POST['mail']) || !get_preg($_POST['mail'], 'email')) { + $errors[] = $this->messages['mail'][0]; + } + // mailbox server + if (isset($_POST['mailHost'])) { + if (($_POST['mailHost'] == "") && isset($this->attributes['mailHost'])) { + unset($this->attributes['mailHost']); + } + elseif (!empty($_POST['mailHost'])) { + if (get_preg($_POST['mailHost'], 'DNSname')) { + $this->attributes['mailHost'][0] = $_POST['mailHost']; + } + else { + $message = $this->messages['mailHost'][0]; + $message[] = $_POST['mailHost']; + $errors[] = $message; + } + } + } + // target folder + $this->attributes['kolabTargetFolder'][0] = $_POST['kolabTargetFolder']; + if (empty($_POST['kolabTargetFolder'])) { + $errors[] = $this->messages['kolabTargetFolder'][0]; + } + // folder type + $this->attributes['kolabFolderType'][0] = $_POST['kolabFolderType']; + // allowed recipients + $this->processMultiValueInputTextField('kolabAllowSMTPRecipient', $errors, 'kolabEmailPrefix'); + // allowed senders + $this->processMultiValueInputTextField('kolabAllowSMTPSender', $errors, 'kolabEmailPrefix'); + // mail aliases + $this->processMultiValueInputTextField('alias', $errors, 'email'); + // check old delegates + $this->attributes['kolabDelegate'] = array(); + $i = 0; + while (isset($_POST['delegate' . $i])) { + if (isset($_POST['delDelegate' . $i])) { + $i++; + continue; + } + $this->attributes['kolabDelegate'][] = $_POST['delegate' . $i]; + $i++; + } + // check new delegate + if (isset($_POST['addDelegate']) && ($_POST['delegate'] != "")) { + $this->attributes['kolabDelegate'][] = $_POST['delegate']; + } + $this->attributes['kolabDelegate'] = array_unique($this->attributes['kolabDelegate']); + return $errors; + } + + /** + * This function will create the meta HTML code to show a page to mark an account for deletion. + * + * @return htmlElement HTML meta data + */ + function display_html_deleteFlag() { + $return = new htmlTable(); + $message = new htmlOutputText(_('Do you really want to mark this account for deletion?')); + $return->addElement($message, true); + $return->addElement(new htmlSpacer(null, '10px'), true); + $serverTable = new htmlTable(); + $serverTable->addElement(new htmlTableExtendedSelect('deletionServer', $this->mailHostCache, array(), _('Server'), 'deleteFlag')); + $return->addElement($serverTable, true); + $return->addElement(new htmlSpacer(null, '10px'), true); + $buttonGroup = new htmlGroup(); + $buttonGroup->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'confirm', _('Mark account for deletion'))); + $buttonGroup->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'cancel', _('Cancel'))); + $return->addElement($buttonGroup, true); + return $return; + } + + /** + * Write variables into object and do some regex checks + */ + function process_deleteFlag() { + if (isset($_POST['form_subpage_kolabSharedFolder_attributes_confirm'])) { + // set delete flag + $this->attributes['kolabDeleteflag'][0] = $_POST['deletionServer']; + } + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + $delegates = searchLDAPByAttribute(null, null, 'inetOrgPerson', array('mail'), array('user')); + for ($d = 0; $d < sizeof($delegates); $d++) { + if (isset($delegates[$d]['mail'][0])) { + $delegates[$d] = $delegates[$d]['mail'][0]; + } + } + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object classes + if (!in_array('kolabSharedFolder', $partialAccounts[$i]['objectClass'])) { + $partialAccounts[$i]['objectClass'][] = 'kolabSharedFolder'; + } + if (!in_array('mailrecipient', $partialAccounts[$i]['objectClass'])) { + $partialAccounts[$i]['objectClass'][] = 'mailrecipient'; + } + // cn + $partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['kolabSharedFolder_cn']]; + // mail + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'kolabSharedFolder_mail', 'mail', + 'email', $this->messages['mail'][1], $messages); + // mailbox server + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'kolabSharedFolder_mailHost', 'mailHost', + 'DNSname', $this->messages['mailHost'][1], $messages); + // target folder + $partialAccounts[$i]['kolabTargetFolder'] = $rawAccounts[$i][$ids['kolabSharedFolder_kolabTargetFolder']]; + // folder type + $partialAccounts[$i]['kolabFolderType'] = $rawAccounts[$i][$ids['kolabSharedFolder_kolabFolderType']]; + // allowed recipients + if (!empty($rawAccounts[$i][$ids['kolabSharedFolder_kolabAllowSMTPRecipient']])) { + $mails = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['kolabSharedFolder_kolabAllowSMTPRecipient']]); + for ($m = 0; $m < sizeof($mails); $m++) { + if (get_preg($mails[$m], 'kolabEmailPrefix')) { + $partialAccounts[$i]['kolabAllowSMTPRecipient'][] = $mails[$m]; + } + else { + $errMsg = $this->messages['kolabAllowSMTPRecipient'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + break; + } + } + } + // allowed senders + if (!empty($rawAccounts[$i][$ids['kolabSharedFolder_kolabAllowSMTPSender']])) { + $mails = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['kolabSharedFolder_kolabAllowSMTPSender']]); + for ($m = 0; $m < sizeof($mails); $m++) { + if (get_preg($mails[$m], 'kolabEmailPrefix')) { + $partialAccounts[$i]['kolabAllowSMTPSender'][] = $mails[$m]; + } + else { + $errMsg = $this->messages['kolabAllowSMTPSender'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + break; + } + } + } + // add mail aliases + if ($rawAccounts[$i][$ids['kolabSharedFolder_aliases']] != "") { + $aliases = explode(',', $rawAccounts[$i][$ids['kolabSharedFolder_aliases']]); + // check format + for ($a = 0; $a < sizeof($aliases); $a++) { + if (get_preg($aliases[$a], 'email')) { + $partialAccounts[$i]['alias'][] = $aliases[$a]; + } + // invalid format + else { + $errMsg = $this->messages['alias'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + } + } + // add delegates + if ($rawAccounts[$i][$ids['kolabSharedFolder_delegates']] != "") { + $newDelegates = explode(',', $rawAccounts[$i][$ids['kolabSharedFolder_delegates']]); + // check format + for ($d = 0; $d < sizeof($newDelegates); $d++) { + if (in_array($newDelegates[$d], $delegates)) { + $partialAccounts[$i]['kolabDelegate'][] = $newDelegates[$d]; + } + // invalid format + else { + $errMsg = $this->messages['delegate'][0]; + array_push($errMsg, array($i, $newDelegates[$d])); + $messages[] = $errMsg; + } + } + } + } + return $messages; + } + + /** + * Returns a list of PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'cn', _('Name')); + $this->addSimplePDFField($return, 'mail', _('Email address')); + $this->addSimplePDFField($return, 'mailHost', _('Mailbox home server')); + $this->addSimplePDFField($return, 'kolabTargetFolder', _('Target IMAP folder')); + $this->addSimplePDFField($return, 'kolabAllowSMTPRecipient', _('Allowed recipients')); + $this->addSimplePDFField($return, 'kolabAllowSMTPSender', _('Allowed senders')); + $this->addSimplePDFField($return, 'aliases', _('Email aliases'), 'alias'); + $this->addSimplePDFField($return, 'delegate', _('Delegates'), 'kolabDelegate'); + if (!empty($this->attributes['kolabFolderType'])) { + $type = $this->attributes['kolabFolderType'][0]; + $typeList = array_flip($this->folderTypes); + if (isset($typeList[$type])) { + $type = $typeList[$type]; + } + $return[get_class($this) . '_kolabFolderType'] = array('' . _('Type') . '' . $type . ''); + } + return $return; + } + + /** + * Loads the list of mail hosts into the cache. + */ + private function loadMailHostCache() { + if ($this->mailHostCache != null) { + return; + } + $results = searchLDAPByFilter('(mailHost=*)', array('mailHost'), array('user')); + $this->mailHostCache = array(); + foreach ($results as $result) { + if (isset($result['mailhost'][0]) && !in_array_ignore_case($result['mailhost'][0], $this->mailHostCache)) { + $this->mailHostCache[] = $result['mailhost'][0]; + } + } + } + +} + + +?> diff --git a/lam/lib/modules/kolabUser.inc b/lam/lib/modules/kolabUser.inc new file mode 100644 index 00000000..81bfa112 --- /dev/null +++ b/lam/lib/modules/kolabUser.inc @@ -0,0 +1,1036 @@ +invitationPolicies = array( + 'ACT_ALWAYS_ACCEPT' => _('Always accept'), + 'ACT_ALWAYS_REJECT' => _('Always reject'), + 'ACT_MANUAL' => _('Manual'), + 'ACT_REJECT_IF_CONFLICTS' => _('Reject if conflicts'), + 'ACT_MANUAL_IF_CONFLICTS' => _('Manual if conflicts') + ); + $this->autoAddObjectClasses = false; + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('user')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'kolab.png'; + // alias name + $return["alias"] = _("Kolab"); + // module dependencies + $return['dependencies'] = array('depends' => array('inetOrgPerson'), 'conflicts' => array()); + // LDAP filter + $return["ldap_filter"] = array('or' => "(objectClass=kolabInetOrgPerson)"); + // managed object classes + $return['objectClasses'] = array('kolabInetOrgPerson'); + if ($this->manageMailrecipient()) { + $return['objectClasses'][] = 'mailrecipient'; + } + // managed attributes + $return['attributes'] = array('alias', 'mailHost', 'kolabDelegate', 'kolabInvitationPolicy', 'kolabDeleteflag', + 'kolabAllowSMTPRecipient', 'kolabAllowSMTPSender'); + if ($this->manageMailrecipient()) { + $return['attributes'][] = 'mailQuota'; + } + // profile options + $profileContainer = new htmlTable(); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Mail server'), 'kolab_mailHost', null, 'mailHost'), true); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Mailbox quota'), 'kolab_mailQuota', null, 'mailQuota'), true); + $return['profile_options'] = $profileContainer; + // profile checks + $return['profile_checks']['kolab_mailHost'] = array( + 'type' => 'ext_preg', + 'regex' => 'DNSname', + 'error_message' => $this->messages['mailHost'][0]); + $return['profile_checks']['kolab_mailQuota'] = array( + 'type' => 'ext_preg', + 'regex' => 'digit', + 'error_message' => $this->messages['mailQuota'][0]); + // config options + $configContainer = new htmlTable(); + $configContainer->addElement(new htmlTableExtendedInputCheckbox('kolabUser_mailrecipient', true, _('Manage object class "mailrecipient"'), 'mailrecipient'), true); + $return['config_options']['all'] = $configContainer; + // self service field settings + $return['selfServiceFieldSettings'] = array( + 'kolabDelegate' => _('Delegates'), + 'kolabInvitationPolicy' => _('Invitation policy') + ); + // possible self service read-only fields + $return['selfServiceReadOnlyFields'] = array('kolabDelegate', 'kolabInvitationPolicy'); + // help Entries + $return['help'] = array( + 'invPol' => array( + "Headline" => _("Invitation policy"), 'attr' => 'kolabInvitationPolicy', + "Text" => _("For automatic invitation handling.") + ), + 'invPolList' => array( + "Headline" => _("Invitation policy list"), 'attr' => 'kolabInvitationPolicy', + "Text" => _("This is a comma separated list of invitation policies.") + ), + 'delegate' => array( + "Headline" => _("Delegates"), 'attr' => 'kolabDelegate', + "Text" => _("A user may define who is allowed to act on behalf of herself. This property is checked when using the Kolab smtp daemon (Postfix) to send emails.") + ), + 'delegateList' => array( + "Headline" => _("Delegates"), 'attr' => 'kolabDelegate', + "Text" => _("This is a comma separated list of delegates.") + ), + 'alias' => array( + "Headline" => _("Email alias"), 'attr' => 'alias', + "Text" => _("Email alias for this account.") + ), + 'aliasList' => array( + "Headline" => _("Email alias list"), 'attr' => 'alias', + "Text" => _("This is a comma separated list of eMail aliases.") + ), + 'mailHost' => array( + "Headline" => _("Mailbox home server"), 'attr' => 'mailHost', + "Text" => _("The name of the server where the mailbox is located.") + ), + 'kolabAllowSMTPRecipient' => array ( + "Headline" => _('Allowed recipients'), 'attr' => 'kolabAllowSMTPRecipient', + "Text" => _('Describes the allowed or disallowed SMTP recipient addresses for mail sent by this account (e.g. "domain.tld" or "-user@domain.tld").') + ), + 'kolabAllowSMTPRecipientList' => array ( + "Headline" => _('Allowed recipients'), 'attr' => 'kolabAllowSMTPRecipient', + "Text" => _('Describes the allowed or disallowed SMTP recipient addresses for mail sent by this account (e.g. "domain.tld" or "-user@domain.tld").') + . ' ' . _("Multiple values are separated by semicolon.") + ), + 'kolabAllowSMTPSender' => array ( + "Headline" => _('Allowed senders'), 'attr' => 'kolabAllowSMTPSender', + "Text" => _('Describes the allowed or disallowed SMTP addresses sending mail to this account (e.g. "domain.tld" or "-user@domain.tld").') + ), + 'kolabAllowSMTPSenderList' => array ( + "Headline" => _('Allowed senders'), 'attr' => 'kolabAllowSMTPSender', + "Text" => _('Describes the allowed or disallowed SMTP addresses sending mail to this account (e.g. "domain.tld" or "-user@domain.tld").') + . ' ' . _("Multiple values are separated by semicolon.") + ), + 'mailrecipient' => array( + "Headline" => _('Manage object class "mailrecipient"'), + "Text" => _('Adds the object class "mailrecipient" to all user accounts.') + ), + 'mailQuota' => array( + "Headline" => _('Mailbox quota'), 'attr' => 'mailQuota', + "Text" => _('The maximum mailbox size in MB.') + ), + 'deleteFlag' => array( + "Headline" => _("Mark for deletion"), 'attr' => 'kolabDeleteflag', + "Text" => _("This will set a special flag on the account which tells Kolabd to remove it. Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes).") + ), + ); + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'kolabUser_invPol', + 'description' => _('Invitation policy'), + 'help' => 'invPolList', + 'example' => 'user@domain:ACT_ALWAYS_ACCEPT,user2@domain:ACT_MANUAL' + ), + array( + 'name' => 'kolabUser_mailHost', + 'description' => _('Mailbox home server'), + 'help' => 'mailHost', + 'example' => 'localhost', + 'required' => true + ), + array( + 'name' => 'kolabUser_mailQuota', + 'description' => _('Mailbox quota'), + 'help' => 'mailQuota', + 'example' => '2000', + ), + array( + 'name' => 'kolabUser_aliases', + 'description' => _('Email aliases'), + 'help' => 'aliasList', + 'example' => 'user@domain,user2@domain' + ), + array( + 'name' => 'kolabUser_delegates', + 'description' => _('Delegates'), + 'help' => 'delegateList', + 'example' => 'user@domain,user2@domain' + ), + array( + 'name' => 'kolabUser_kolabAllowSMTPRecipient', + 'description' => _('Allowed recipients'), + 'help' => 'kolabAllowSMTPRecipientList', + 'example' => '.com; -.net', + ), + array( + 'name' => 'kolabUser_kolabAllowSMTPSender', + 'description' => _('Allowed senders'), + 'help' => 'kolabAllowSMTPSenderList', + 'example' => '.com; -.net', + ), + ); + // available PDF fields + $return['PDF_fields'] = array( + 'invPol' => _('Invitation policy'), + 'mailHost' => _('Mailbox home server'), + 'mailQuota' => _('Mailbox quota'), + 'aliases' => _('Email aliases'), + 'delegate' => _('Delegates'), + 'kolabAllowSMTPRecipient' => _('Allowed recipients'), + 'kolabAllowSMTPSender' => _('Allowed senders'), + ); + return $return; + } + + /** + * This function fills the error message array with messages + */ + function load_Messages() { + $this->messages['invPol'][0] = array('ERROR', _('Target of invitation policy is invalid!')); // third array value is set dynamically + $this->messages['invPol'][1] = array('ERROR', _('Account %s:') . ' kolabUser_invPol', _('Policy list has invalid format!')); + $this->messages['alias'][0] = array('ERROR', _('Email alias is invalid!')); // third array value is set dynamically + $this->messages['alias'][1] = array('ERROR', _('Account %s:') . ' kolabUser_aliases', _('Email alias list has invalid format!')); + $this->messages['mailHost'][0] = array('ERROR', _('Mailbox home server name is invalid!')); // third array value is set dynamically + $this->messages['mailHost'][1] = array('ERROR', _('Account %s:') . ' kolabUser_mailHost', _('Mailbox home server name is invalid!')); + $this->messages['mailHost'][2] = array('ERROR', _('Mailbox home server name is empty!')); + $this->messages['delegate'][0] = array('ERROR', _('Account %s:') . ' kolabUser_delegates', _('Unknown delegate address: %s')); + $this->messages['kolabAllowSMTPRecipient'][0] = array('ERROR', _('Allowed recipients'), _('Please enter a valid recipient expression.')); + $this->messages['kolabAllowSMTPRecipient'][1] = array('ERROR', _('Account %s:') . ' kolabUser_kolabAllowSMTPRecipient', _('Please enter a valid recipient expression.')); + $this->messages['kolabAllowSMTPSender'][0] = array('ERROR', _('Allowed senders'), _('Please enter a valid sender expression.')); + $this->messages['kolabAllowSMTPSender'][1] = array('ERROR', _('Account %s:') . ' kolabUser_kolabAllowSMTPSender', _('Please enter a valid sender expression.')); + $this->messages['mailQuota'][0] = array('ERROR', _('Mailbox quota'), _('Please enter a number.')); + $this->messages['mailQuota'][1] = array('ERROR', _('Account %s:') . ' kolabUser_mailQuota', _('Please enter a number.')); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $return = new htmlTable(); + if (isset($this->attributes['objectClass']) && in_array('kolabInetOrgPerson', $this->attributes['objectClass'])) { + $attrsI = $this->getAccountContainer()->getAccountModule('inetOrgPerson')->getAttributes(); + if ($this->getAccountContainer()->isNewAccount) { + if ($this->getAccountContainer()->getAccountModule('posixAccount') != null) { + $attrsP = $this->getAccountContainer()->getAccountModule('posixAccount')->getAttributes(); + if (!isset($attrsP['userPassword'][0]) || ($attrsP['userPassword'][0] == '')) { + $message = new htmlStatusMessage('ERROR', _("Please enter a user password.")); + $message->colspan = 5; + $return->addElement($message, true); + } + } + elseif (!isset($attrsI['userPassword'][0]) || ($attrsI['userPassword'][0] == '')) { + $message = new htmlStatusMessage('ERROR', _("Please enter a user password.")); + $message->colspan = 5; + $return->addElement($message, true); + } + } + if (!isset($attrsI['mail'][0])) { + $message = new htmlStatusMessage('ERROR', _("Please enter an email address on this page: %s"), '', array($this->getAccountContainer()->getAccountModule('inetOrgPerson')->get_alias())); + $message->colspan = 5; + $return->addElement($message, true); + } + // check if account is marked for deletion + if (isset($this->attributes['kolabDeleteflag'])) { + $return->addElement(new htmlOutputText(_('This account is marked for deletion.'))); + return $return; + } + // mailbox server + if (!isset($this->orig['mailHost'][0])) { // value currently not set + $this->addSimpleInputTextField($return, 'mailHost', _('Mailbox home server'), true); + } + else { // input is unchangable when set + $return->addElement(new htmlOutputText(_('Mailbox home server'))); + $return->addElement(new htmlOutputText($this->attributes['mailHost'][0])); + $return->addElement(new htmlHelpLink('mailHost'), true); + } + // mailbox quota + if ($this->manageMailrecipient()) { + $mailQuota = ''; + if (!empty($this->attributes['mailQuota'][0])) { + $mailQuota = $this->attributes['mailQuota'][0] / 1024; + } + $mailQuotaField = new htmlTableExtendedInputField(_('Mailbox quota'), 'mailQuota', $mailQuota, 'mailQuota'); + $mailQuotaField->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($mailQuotaField, true); + } + // invitation policies + $return->addElement(new htmlSubTitle(_('Invitation policy')), true); + $invitationContainer = new htmlTable(); + $invitationContainer->colspan = 3; + // default invitation policy + $defaultInvPol = $this->invitationPolicies['ACT_MANUAL']; + if (isset($this->attributes['kolabInvitationPolicy'])) { + for ($i = 0; $i < sizeof($this->attributes['kolabInvitationPolicy']); $i++) { + $parts = explode(":", $this->attributes['kolabInvitationPolicy'][$i]); + if (sizeof($parts) == 1) { + $defaultInvPol = $this->invitationPolicies[$this->attributes['kolabInvitationPolicy'][$i]]; + unset($this->attributes['kolabInvitationPolicy'][$i]); + $this->attributes['kolabInvitationPolicy'] = array_values($this->attributes['kolabInvitationPolicy']); + break; + } + } + } + $invitationContainer->addElement(new htmlTableExtendedSelect('defaultInvPol', array_values($this->invitationPolicies), array($defaultInvPol), _('Anyone'), 'invPol'), true); + // other invitation policies + if (isset($this->attributes['kolabInvitationPolicy'])) { + for ($i = 0; $i < sizeof($this->attributes['kolabInvitationPolicy']); $i++) { + $parts = explode(":", $this->attributes['kolabInvitationPolicy'][$i]); + if (sizeof($parts) == 2) { + $invitationContainer->addElement(new htmlInputField('invPol1' . $i, $parts[0])); + $invitationContainer->addElement(new htmlSelect('invPol2' . $i, array_values($this->invitationPolicies), array($this->invitationPolicies[$parts[1]]))); + $invitationContainer->addElement(new htmlButton('delInvPol' . $i, 'del.png', true)); + $invitationContainer->addElement(new htmlHelpLink('invPol'), true); + } + } + } + // input box for new invitation policy + $invitationContainer->addElement(new htmlInputField('invPol1', '')); + $invitationContainer->addElement(new htmlSelect('invPol2', array_values($this->invitationPolicies))); + $invitationContainer->addElement(new htmlButton('addInvPol', 'add.png', true)); + $invitationContainer->addElement(new htmlHelpLink('invPol'), true); + $return->addElement($invitationContainer, true); + // mail aliases + $return->addElement(new htmlSubTitle(_('Email aliases')), true); + $this->addMultiValueInputTextField($return, 'alias', null); + // delegates + $delegates = searchLDAPByAttribute('mail', '*', 'inetOrgPerson', array('mail'), array('user')); + for ($i = 0; $i < sizeof($delegates); $i++) { + $delegates[$i] = $delegates[$i]['mail'][0]; + } + sort($delegates); + $return->addElement(new htmlSubTitle(_('Delegates')), true); + $delegatesContainer = new htmlTable(); + $delegatesContainer->colspan = 3; + if (isset($this->attributes['kolabDelegate'])) { + for ($i = 0; $i < sizeof($this->attributes['kolabDelegate']); $i++) { + $delegatesContainer->addElement(new htmlSelect('delegate' . $i, $delegates, array($this->attributes['kolabDelegate'][$i]))); + $delegatesContainer->addElement(new htmlButton('delDelegate' . $i, 'del.png', true)); + if ($i == 0) { + $delegatesContainer->addElement(new htmlHelpLink('delegate')); + } + $delegatesContainer->addNewLine(); + } + } + // input box for new delegate + $delegatesContainer->addElement(new htmlSelect('delegate', $delegates)); + $delegatesContainer->addElement(new htmlButton('addDelegate', 'add.png', true)); + if (empty($this->attributes['kolabDelegate'])) { + $delegatesContainer->addElement(new htmlHelpLink('delegate')); + } + $return->addElement($delegatesContainer, true); + $return->addElement(new htmlSubTitle(_('Options')), true); + // allowed recipients + $this->addMultiValueInputTextField($return, 'kolabAllowSMTPRecipient', _('Allowed recipients')); + // allowed senders + $this->addMultiValueInputTextField($return, 'kolabAllowSMTPSender', _('Allowed senders')); + // delete flag + if (!$this->getAccountContainer()->isNewAccount) { + $deleteContainer = new htmlTable(); + $deleteContainer->addElement(new htmlSpacer(null, '20px'), true); + $deleteContainer->addElement(new htmlAccountPageButton(get_class($this), 'deleteUser', 'open', _('Mark account for deletion'))); + $deleteContainer->addElement(new htmlHelpLink('deleteFlag')); + $return->addElement($deleteContainer); + } + } + else { + $return->addElement(new htmlButton('addObjectClass', _('Add Kolab extension'))); + } + return $return; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + $errors = array(); + if (isset($_POST['addObjectClass'])) { + $this->attributes['objectClass'][] = 'kolabInetOrgPerson'; + if ($this->manageMailrecipient()) { + $this->attributes['objectClass'][] = 'mailrecipient'; + } + } + else { + if (isset($_POST['form_subpage_kolabUser_deleteUser_open'])) return array(); + $this->attributes['kolabInvitationPolicy'] = array(); + // mailbox server + if (isset($_POST['mailHost'])) { + if ($_POST['mailHost'] == "") { + $errors[] = $this->messages['mailHost'][2]; + } + elseif (get_preg($_POST['mailHost'], 'DNSname')) { + $this->attributes['mailHost'][0] = $_POST['mailHost']; + } + else { + $message = $this->messages['mailHost'][0]; + $message[] = $_POST['mailHost']; + $errors[] = $message; + } + } + // check old invitation policies + $policies = array_flip($this->invitationPolicies); + $targets = array(); + $i = 0; + while (isset($_POST['invPol1' . $i])) { + if (isset($_POST['delInvPol' . $i])) { + $i++; + continue; + } + if (isset($_POST['invPol2' . $i]) && ($_POST['invPol1' . $i] != "") && !in_array($_POST['invPol1' . $i], $targets)) { + $targets[] = $_POST['invPol1' . $i]; + // check invitation policy + if (!get_preg($_POST['invPol1' . $i], 'email')) { + $message = $this->messages['invPol'][0]; + $message[] = $_POST['invPol1' . $i]; + $errors[] = $message; + } + else { + $this->attributes['kolabInvitationPolicy'][] = $_POST['invPol1' . $i] . ':' . $policies[$_POST['invPol2' . $i]]; + } + } + $i++; + } + // check new invitation policy + if (isset($_POST['invPol1']) && ($_POST['invPol1'] != "") && !in_array($_POST['invPol1'], $targets)) { + // check new invitation policy + if (!get_preg($_POST['invPol1'], 'email')) { + $message = $this->messages['invPol'][0]; + $message[] = $_POST['invPol1']; + $errors[] = $message; + } + else { + $this->attributes['kolabInvitationPolicy'][] = $_POST['invPol1'] . ':' . $policies[$_POST['invPol2']]; + } + } + // default invitation policy + if (isset($_POST['defaultInvPol']) && ($_POST['defaultInvPol'] != "")) { + $this->attributes['kolabInvitationPolicy'][] = $policies[$_POST['defaultInvPol']]; + } + // mail aliases + $this->processMultiValueInputTextField('alias', $errors, 'email'); + // check old delegates + $this->attributes['kolabDelegate'] = array(); + $i = 0; + while (isset($_POST['delegate' . $i])) { + if (isset($_POST['delDelegate' . $i])) { + $i++; + continue; + } + $this->attributes['kolabDelegate'][] = $_POST['delegate' . $i]; + $i++; + } + // check new delegate + if (isset($_POST['addDelegate']) && ($_POST['delegate'] != "")) { + $this->attributes['kolabDelegate'][] = $_POST['delegate']; + } + $this->attributes['kolabDelegate'] = array_unique($this->attributes['kolabDelegate']); + // allowed recipients + $this->processMultiValueInputTextField('kolabAllowSMTPRecipient', $errors, 'kolabEmailPrefix'); + // allowed senders + $this->processMultiValueInputTextField('kolabAllowSMTPSender', $errors, 'kolabEmailPrefix'); + // mailbox quota + if ($this->manageMailrecipient()) { + if (!empty($_POST['mailQuota']) && !get_preg($_POST['mailQuota'], 'digit')) { + $errors[] = $this->messages['mailQuota'][0]; + } + else { + $mailQuota = array(); + if (!empty($_POST['mailQuota'])) { + $mailQuota = array($_POST['mailQuota'] * 1024); + } + $this->attributes['mailQuota'] = $mailQuota; + } + } + } + return $errors; + } + + /** + * This function will create the meta HTML code to show a page to mark an account for deletion. + * + * @return htmlElement HTML meta data + */ + function display_html_deleteUser() { + $return = new htmlTable(); + $message = new htmlOutputText(_('Do you really want to mark this account for deletion?')); + $message->colspan = 2; + $return->addElement($message, true); + $return->addElement(new htmlSpacer(null, '10px'), true); + $return->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'confirm', _('Mark account for deletion'))); + $return->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'cancel', _('Cancel'))); + return $return; + } + + /** + * Write variables into object and do some regex checks + */ + function process_deleteUser() { + if (isset($_POST['form_subpage_kolabUser_attributes_confirm'])) { + // set delete flag + $this->attributes['kolabDeleteflag'][0] = $this->attributes['mailHost'][0]; + } + } + + /** + * This function returns true if all needed settings are done. + * + * @return true, if account can be saved + */ + function module_complete() { + if (isset($this->attributes['objectClass']) && in_array('kolabInetOrgPerson', $this->attributes['objectClass'])) { + $attrsI = $this->getAccountContainer()->getAccountModule('inetOrgPerson')->getAttributes(); + if (!$attrsI['mail'][0]) return false; + if ($this->getAccountContainer()->isNewAccount) { + if ($this->getAccountContainer()->getAccountModule('posixAccount') != null) { + $attrsP = $this->getAccountContainer()->getAccountModule('posixAccount')->getAttributes(); + if (!$attrsP['userPassword'][0]) return false; + } + elseif (!$attrsI['userPassword'][0]) { + return false; + } + } + } + return true; + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + function save_attributes() { + if (!in_array('kolabInetOrgPerson', $this->attributes['objectClass']) && !in_array('kolabInetOrgPerson', $this->orig['objectClass'])) { + // skip saving if the extension was not added/modified + return array(); + } + return $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig); + } + + /** + * Loads the values of an account profile into internal variables. + * + * @param array $profile hash array with profile values (identifier => value) + */ + function load_profile($profile) { + // profile mappings in meta data + parent::load_profile($profile); + // mail server + if (!isset($this->orig['mailHost'][0]) && !empty($profile['kolab_mailHost'][0])) { + $this->attributes['mailHost'][0] = $profile['kolab_mailHost'][0]; + } + // mailbox quota + if (!empty($profile['kolab_mailQuota'][0])) { + $this->attributes['mailQuota'][0] = $profile['kolab_mailQuota'][0] * 1024; + } + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + $delegates = searchLDAPByAttribute(null, null, 'inetOrgPerson', array('mail'), array('user')); + for ($d = 0; $d < sizeof($delegates); $d++) { + if (isset($delegates[$d]['mail'][0])) { + $delegates[$d] = $delegates[$d]['mail'][0]; + } + } + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array("kolabInetOrgPerson", $partialAccounts[$i]['objectClass'])) { + $partialAccounts[$i]['objectClass'][] = "kolabInetOrgPerson"; + } + if ($this->manageMailrecipient() && !in_array("mailrecipient", $partialAccounts[$i]['objectClass'])) { + $partialAccounts[$i]['objectClass'][] = "mailrecipient"; + } + // mailbox server + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'kolabUser_mailHost', 'mailHost', + 'DNSname', $this->messages['mailHost'][1], $messages); + // mailbox quota + if (!empty($rawAccounts[$i][$ids['kolabUser_mailQuota']])) { + if (get_preg($rawAccounts[$i][$ids['kolabUser_mailQuota']], 'digit')) { + $partialAccounts[$i]['mailQuota'] = $rawAccounts[$i][$ids['kolabUser_mailQuota']] * 1024; + } + else { + $errMsg = $this->messages['mailQuota'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + } + // add invitation policies + if ($rawAccounts[$i][$ids['kolabUser_invPol']] != "") { + $pols = explode(',', $rawAccounts[$i][$ids['kolabUser_invPol']]); + // check format + $policies = array_keys($this->invitationPolicies); + $defaultFound = false; + for ($p = 0; $p < sizeof($pols); $p++) { + $parts = explode(":", $pols[$p]); + // default policy + if (sizeof($parts) == 1) { + if (!$defaultFound && get_preg($parts[0], 'email')) { + $partialAccounts[$i]['kolabInvitationPolicy'][] = $parts[0]; + } + else { + $errMsg = $this->messages['invPol'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + $defaultFound = true; + } + // additional policies + elseif (sizeof($parts) == 2) { + if (get_preg($parts[0], 'email') && in_array($parts[1], $policies)) { + $partialAccounts[$i]['kolabInvitationPolicy'][] = $pols[$p]; + } + else { + $errMsg = $this->messages['invPol'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + } + // invalid format + else { + $errMsg = $this->messages['invPol'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + } + } + // add mail aliases + if ($rawAccounts[$i][$ids['kolabUser_aliases']] != "") { + $aliases = explode(',', $rawAccounts[$i][$ids['kolabUser_aliases']]); + // check format + for ($a = 0; $a < sizeof($aliases); $a++) { + if (get_preg($aliases[$a], 'email')) { + $partialAccounts[$i]['alias'][] = $aliases[$a]; + } + // invalid format + else { + $errMsg = $this->messages['alias'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + } + } + // add delegates + if ($rawAccounts[$i][$ids['kolabUser_delegates']] != "") { + $newDelegates = explode(',', $rawAccounts[$i][$ids['kolabUser_delegates']]); + // check format + for ($d = 0; $d < sizeof($newDelegates); $d++) { + if (in_array($newDelegates[$d], $delegates)) { + $partialAccounts[$i]['kolabDelegate'][] = $newDelegates[$d]; + } + // invalid format + else { + $errMsg = $this->messages['delegate'][0]; + array_push($errMsg, array($i, $newDelegates[$d])); + $messages[] = $errMsg; + } + } + } + // allowed recipients + if (!empty($rawAccounts[$i][$ids['kolabUser_kolabAllowSMTPRecipient']])) { + $mails = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['kolabUser_kolabAllowSMTPRecipient']]); + for ($m = 0; $m < sizeof($mails); $m++) { + if (get_preg($mails[$m], 'kolabEmailPrefix')) { + $partialAccounts[$i]['kolabAllowSMTPRecipient'][] = $mails[$m]; + } + else { + $errMsg = $this->messages['kolabAllowSMTPRecipient'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + break; + } + } + } + // allowed senders + if (!empty($rawAccounts[$i][$ids['kolabUser_kolabAllowSMTPSender']])) { + $mails = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['kolabUser_kolabAllowSMTPSender']]); + for ($m = 0; $m < sizeof($mails); $m++) { + if (get_preg($mails[$m], 'kolabEmailPrefix')) { + $partialAccounts[$i]['kolabAllowSMTPSender'][] = $mails[$m]; + } + else { + $errMsg = $this->messages['kolabAllowSMTPSender'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + break; + } + } + } + } + return $messages; + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'mailHost', _('Mailbox home server')); + // invitation policies + if (isset($this->attributes['kolabInvitationPolicy'][0])) { + // find default policy + $default = ""; + for ($i = 0; $i < sizeof($this->attributes['kolabInvitationPolicy']); $i++) { + if (!strpos($this->attributes['kolabInvitationPolicy'][$i], ":")) { + $default = $this->attributes['kolabInvitationPolicy'][$i]; + break; + } + } + $return['kolabUser_invPol'][0] = '' . _('Invitation policy') . '' . _('Anyone') . ": " . $this->invitationPolicies[$default] . ''; + for ($i = 0; $i < sizeof($this->attributes['kolabInvitationPolicy']); $i++) { + $parts = explode(':', $this->attributes['kolabInvitationPolicy'][$i]); + if (sizeof($parts) == 2) { + $return['kolabUser_invPol'][] = '' . $parts[0] . ": " . $this->invitationPolicies[$parts[1]] . ''; + } + } + } + $this->addSimplePDFField($return, 'aliases', _('Email aliases'), 'alias'); + $this->addSimplePDFField($return, 'delegate', _('Delegates'), 'kolabDelegate'); + $this->addSimplePDFField($return, 'kolabAllowSMTPRecipient', _('Allowed recipients')); + $this->addSimplePDFField($return, 'kolabAllowSMTPSender', _('Allowed senders')); + $mailQuota = ''; + if (!empty($this->attributes['mailQuota'][0])) { + $mailQuota = ($this->attributes['mailQuota'][0] / 1024) . 'MB'; + } + $return[get_class($this) . '_mailQuota'] = array('' . _('Mailbox quota') . '' . $mailQuota . ''); + return $return; + } + + /** + * Returns the meta HTML code for each input field. + * format: array( => array(), ...) + * It is not possible to display help links. + * + * @param array $fields list of active fields + * @param array $attributes attributes of LDAP account + * @param boolean $passwordChangeOnly indicates that the user is only allowed to change his password and no LDAP content is readable + * @param array $readOnlyFields list of read-only fields + * @return array list of meta HTML elements (field name => htmlTableRow) + */ + function getSelfServiceOptions($fields, $attributes, $passwordChangeOnly, $readOnlyFields) { + if ($passwordChangeOnly) { + return array(); // no Kolab fields as long no LDAP content can be read + } + if (!in_array('kolabInetOrgPerson', $attributes['objectClass'])) { + return array(); + } + $return = array(); + // delegates + if (in_array('kolabDelegate', $fields)) { + $delegates = array(); + $sr = @ldap_search($_SESSION['ldapHandle'], escapeDN($this->selfServiceSettings->LDAPSuffix), '(&(objectClass=inetOrgPerson)(mail=*))', array('mail'), 0, 0, 0, LDAP_DEREF_NEVER); + if ($sr) { + $result = ldap_get_entries($_SESSION['ldapHandle'], $sr); + cleanLDAPResult($result); + for ($i = 0; $i < sizeof($result); $i++) { + $delegates[] = $result[$i]['mail'][0]; + } + } + $delegates = array_unique($delegates); + sort($delegates); + $kolabDelegate = array(); + if (isset($attributes['kolabDelegate'])) { + $kolabDelegate = $attributes['kolabDelegate']; + // do not show existing delegation candidates in selection list + for ($i = 0; $i < sizeof($kolabDelegate); $i++) { + $key = array_search($kolabDelegate[$i], $delegates); + if ($key !== false) { + unset($delegates[$key]); + } + } + } + $delegates = array_values($delegates); + sort($kolabDelegate); + $_SESSION['kolabUser_kolabDelegate'] = $kolabDelegate; + $delegateFields = array(); + $delegateContainer = new htmlTable(); + for ($i = 0; $i < sizeof($kolabDelegate); $i++) { + $delegateContainer->addElement(new htmlOutputText($kolabDelegate[$i])); + if (!in_array('kolabDelegate', $readOnlyFields)) { + $delegateContainer->addElement(new htmlTableExtendedInputCheckbox('delDelegate_' . $i, false, _('Delete'), null, false), true); + } + else { + $delegateContainer->addNewLine(); + } + } + if (!in_array('kolabDelegate', $readOnlyFields)) { + $delegateContainer->addElement(new htmlSelect('new_delegate_value', $delegates)); + $delegateContainer->addElement(new htmlTableExtendedInputCheckbox('new_delegate', false, _("Add"), null, false), true); + } + $delegateLabel = new htmlOutputText($this->getSelfServiceLabel('kolabDelegate', _('Delegates'))); + $delegateLabel->alignment = htmlElement::ALIGN_TOP; + $return['kolabDelegate'] = new htmlTableRow(array( + $delegateLabel, $delegateContainer + )); + } + // invitation policies + if (in_array('kolabInvitationPolicy', $fields)) { + $invitationContainer = new htmlTable(); + // default invitation policy + $defaultInvPol = $this->invitationPolicies['ACT_MANUAL']; + for ($i = 0; $i < sizeof($attributes['kolabInvitationPolicy']); $i++) { + $parts = explode(":", $attributes['kolabInvitationPolicy'][$i]); + if (sizeof($parts) == 1) { + $defaultInvPol = $this->invitationPolicies[$attributes['kolabInvitationPolicy'][$i]]; + unset($attributes['kolabInvitationPolicy'][$i]); + $attributes['kolabInvitationPolicy'] = array_values($attributes['kolabInvitationPolicy']); + break; + } + } + if (!in_array('kolabDelegate', $readOnlyFields)) { + $invitationContainer->addElement(new htmlTableExtendedSelect('defaultInvPol', array_values($this->invitationPolicies), array($defaultInvPol), _('Anyone')), true); + } + else { + $invitationContainer->addElement(new htmlOutputText(_('Anyone'))); + $invitationContainer->addElement(new htmlOutputText($defaultInvPol), true); + } + // other invitation policies + for ($i = 0; $i < sizeof($attributes['kolabInvitationPolicy']); $i++) { + $parts = explode(":", $attributes['kolabInvitationPolicy'][$i]); + if (sizeof($parts) == 2) { + if (!in_array('kolabDelegate', $readOnlyFields)) { + $invitationContainer->addElement(new htmlInputField('invPol1' . $i, $parts[0])); + $invitationContainer->addElement(new htmlSelect('invPol2' . $i, array_values($this->invitationPolicies), array($this->invitationPolicies[$parts[1]]))); + $invitationContainer->addElement(new htmlTableExtendedInputCheckbox('delInvPol' . $i, false, _("Remove"), null, false), true); + } + else { + $invitationContainer->addElement(new htmlOutputText($parts[0])); + $invitationContainer->addElement(new htmlOutputText($this->invitationPolicies[$parts[1]]), true); + } + } + } + // input box for new invitation policy + if (!in_array('kolabDelegate', $readOnlyFields)) { + $invitationContainer->addElement(new htmlInputField('invPol1', '')); + $invitationContainer->addElement(new htmlSelect('invPol2', array_values($this->invitationPolicies))); + $invitationContainer->addElement(new htmlTableExtendedInputCheckbox('addInvPol', false, _("Add"), null, false), true); + } + $invitationLabel = new htmlOutputText($this->getSelfServiceLabel('kolabInvitationPolicy', _('Invitation policy'))); + $invitationLabel->alignment = htmlElement::ALIGN_TOP; + $return['kolabInvitationPolicy'] = new htmlTableRow(array( + $invitationLabel, $invitationContainer + )); + } + return $return; + } + + /** + * Checks if all input values are correct and returns the LDAP attributes which should be changed. + *
    Return values: + *
    messages: array of parameters to create status messages + *
    add: array of attributes to add + *
    del: array of attributes to remove + *
    mod: array of attributes to modify + *
    info: array of values with informational value (e.g. to be used later by pre/postModify actions) + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}. + * + * @param string $fields input fields + * @param array $attributes LDAP attributes + * @param boolean $passwordChangeOnly indicates that the user is only allowed to change his password and no LDAP content is readable + * @param array $readOnlyFields list of read-only fields + * @return array messages and attributes (array('messages' => array(), 'add' => array('mail' => array('test@test.com')), 'del' => array(), 'mod' => array(), 'info' => array())) + */ + function checkSelfServiceOptions($fields, $attributes, $passwordChangeOnly, $readOnlyFields) { + $return = array('messages' => array(), 'add' => array(), 'del' => array(), 'mod' => array(), 'info' => array()); + if ($passwordChangeOnly) { + return $return; // skip processing if only a password change is done + } + if (!in_array_ignore_case('kolabInetOrgPerson', $attributes['objectClass'])) { + return $return; + } + $attributeNames = array(); // list of attributes which should be checked for modification + $attributesNew = $attributes; + // delegates + if (in_array('kolabDelegate', $fields) && !in_array('kolabDelegate', $readOnlyFields)) { + $attributeNames[] = 'kolabDelegate'; + // new delegation + if (isset($_POST['new_delegate']) && ($_POST['new_delegate'] == 'on')) { + $attributesNew['kolabDelegate'][] = $_POST['new_delegate_value']; + } + // check for deleted delegations + $postKeys = array_keys($_POST); + for ($i = 0; $i < sizeof($postKeys); $i++) { + if (strpos($postKeys[$i], 'delDelegate_') !== false) { + $sKey = substr($postKeys[$i], strlen('delDelegate_')); + $key = array_search($_SESSION['kolabUser_kolabDelegate'][$sKey], $attributesNew['kolabDelegate']); + if ($key !== false) { + unset($attributesNew['kolabDelegate'][$key]); + $attributesNew['kolabDelegate'] = array_values($attributesNew['kolabDelegate']); + } + } + } + } + // invitation policies + if (in_array('kolabInvitationPolicy', $fields) && !in_array('kolabInvitationPolicy', $readOnlyFields)) { + $attributeNames[] = 'kolabInvitationPolicy'; + $policies = array_flip($this->invitationPolicies); + $attributesNew['kolabInvitationPolicy'] = array(); + // check old invitation policies + $targets = array(); + $i = 0; + while (isset($_POST['invPol1' . $i])) { + if (isset($_POST['delInvPol' . $i])) { + $i++; + continue; + } + if (isset($_POST['invPol2' . $i]) && ($_POST['invPol1' . $i] != "") && !in_array($_POST['invPol1' . $i], $targets)) { + $targets[] = $_POST['invPol1' . $i]; + // check invitation policy + if (!get_preg($_POST['invPol1' . $i], 'email')) { + $message = $this->messages['invPol'][0]; + $message[] = $_POST['invPol1' . $i]; + $errors[] = $message; + } + else { + $attributesNew['kolabInvitationPolicy'][] = $_POST['invPol1' . $i] . ':' . $policies[$_POST['invPol2' . $i]]; + } + } + $i++; + } + // check new invitation policy + if (isset($_POST['invPol1']) && ($_POST['invPol1'] != "") && !in_array($_POST['invPol1'], $targets)) { + // check new invitation policy + if (!get_preg($_POST['invPol1'], 'email')) { + $message = $this->messages['invPol'][0]; + $message[] = $_POST['invPol1']; + $errors[] = $message; + } + else { + $attributesNew['kolabInvitationPolicy'][] = $_POST['invPol1'] . ':' . $policies[$_POST['invPol2']]; + } + } + // default invitation policy + if (isset($_POST['defaultInvPol']) && ($_POST['defaultInvPol'] != "")) { + $attributesNew['kolabInvitationPolicy'][] = $policies[$_POST['defaultInvPol']]; + } + } + // find differences + for ($i = 0; $i < sizeof($attributeNames); $i++) { + $attrName = $attributeNames[$i]; + if (isset($attributes[$attrName]) && !isset($attributesNew[$attrName])) { + $return['del'][$attrName] = $attributes[$attrName]; + } + elseif (!isset($attributes[$attrName]) && isset($attributesNew[$attrName])) { + $return['add'][$attrName] = $attributesNew[$attrName]; + } + else { + if (isset($attributes[$attrName])) { + for ($a = 0; $a < sizeof($attributes[$attrName]); $a++) { + if (!in_array($attributes[$attrName][$a], $attributesNew[$attrName])) { + $return['mod'][$attrName] = $attributesNew[$attrName]; + break; + } + } + } + if (isset($attributesNew[$attrName])) { + for ($a = 0; $a < sizeof($attributesNew[$attrName]); $a++) { + if (!in_array($attributesNew[$attrName][$a], $attributes[$attrName])) { + $return['mod'][$attrName] = $attributesNew[$attrName]; + break; + } + } + } + } + } + return $return; + } + + /** + * Returns if the object class "mailrecipient" is managed by this module. + * + * @return boolean manage mailrecipient object class + */ + private function manageMailrecipient() { + // abort if configuration is not available + if (!isset($this->moduleSettings) || !is_array($this->moduleSettings)) { + return true; + } + if (isset($this->moduleSettings['kolabUser_mailrecipient'][0]) && ($this->moduleSettings['kolabUser_mailrecipient'][0] == 'false')) { + return false; + } + return true; + + } + +} + + +?> diff --git a/lam/lib/modules/ldapPublicKey.inc b/lam/lib/modules/ldapPublicKey.inc new file mode 100644 index 00000000..f03efc50 --- /dev/null +++ b/lam/lib/modules/ldapPublicKey.inc @@ -0,0 +1,554 @@ + +*/ + +/** +* Manages SSH public keys. +* +* @package modules +*/ +class ldapPublicKey extends baseModule { + + /** session variable for existing keys in self service */ + const SESS_KEY_LIST = 'ldapPublicKey_keyList'; + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('user')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'keyBig.png'; + // alias name + $return["alias"] = _("SSH public key"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('ldapPublicKey'); + // managed attributes + $return['attributes'] = array('sshPublicKey'); + // help Entries + $return['help'] = array( + 'sshPublicKey' => array( + "Headline" => _("SSH public key"), 'attr' => 'sshPublicKey', + "Text" => _("Please enter your public SSH key.") + ), + 'keyList' => array( + "Headline" => _("SSH public key"), 'attr' => 'sshPublicKey', + "Text" => _("Please a comma separated list of your public SSH keys.") + ), + 'upload' => array( + "Headline" => _("File upload"), 'attr' => 'sshPublicKey', + "Text" => _("Upload a file with one or more keys. Each line contains one key.") + ), + ); + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'ldapPublicKey_sshPublicKey', + 'description' => _('SSH public key'), + 'help' => 'keyList', + 'example' => _('ssh-dss 234234 user@host') + ) + ); + // available PDF fields + $return['PDF_fields'] = array( + 'sshPublicKey' => _('SSH public keys') + ); + // self service field settings + $return['selfServiceFieldSettings'] = array( + 'sshPublicKey' => _('SSH public keys'), + ); + $return['selfServiceReadOnlyFields'] = array('sshPublicKey'); + return $return; + } + + /** + * This function fills the message array. + **/ + function load_Messages() { + $this->messages['file'][0] = array('ERROR', _('No file selected.')); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $return = new htmlTable(); + $this->addMultiValueInputTextField($return, 'sshPublicKey', _('SSH public key'), false, '16384', false, null, '50'); + // file upload + $return->addElement(new htmlSpacer(null, '20px'), true); + $return->addElement(new htmlOutputText(_('Upload file'))); + $uploadGroup = new htmlGroup(); + $uploadGroup->addElement(new htmlInputFileUpload('sshPublicKeyFile')); + $uploadGroup->addElement(new htmlSpacer('1px', null)); + $uploadGroup->addElement(new htmlButton('sshPublicKeyFileSubmit', _('Upload'))); + $uploadGroup->addElement(new htmlSpacer('5px', null)); + $uploadGroup->addElement(new htmlHelpLink('upload')); + $return->addElement($uploadGroup); + return $return; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + $messages = array(); + $this->processMultiValueInputTextField('sshPublicKey', $messages); + // file upload + if (isset($_POST['sshPublicKeyFileSubmit'])) { + if ($_FILES['sshPublicKeyFile'] && ($_FILES['sshPublicKeyFile']['size'] > 0)) { + $handle = fopen($_FILES['sshPublicKeyFile']['tmp_name'], "r"); + $data = fread($handle, 10000000); + fclose($handle); + $data = str_replace("\r\n", "\n", $data); + $data = str_replace("\r", "\n", $data); + $lines = explode("\n", $data); + foreach ($lines as $line) { + if (!empty($line) && !(strpos($line, '#') === 0)) { + $this->attributes['sshPublicKey'][] = $line; + } + } + } + else { + $messages[] = $this->messages['file'][0]; + } + } + $this->attributes['sshPublicKey'] = array_values(array_unique($this->attributes['sshPublicKey'])); + return $messages; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array("ldapPublicKey", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "ldapPublicKey"; + // add keys + if ($rawAccounts[$i][$ids['ldapPublicKey_sshPublicKey']] != "") { + $keys = explode(',', $rawAccounts[$i][$ids['ldapPublicKey_sshPublicKey']]); + // check format + for ($m = 0; $m < sizeof($keys); $m++) { + $partialAccounts[$i]['sshPublicKey'][] = $keys[$m]; + } + } + } + return $messages; + } + + /** + * Returns a list of PDF entries + */ + function get_pdfEntries() { + $return = array(); + if (sizeof($this->attributes['sshPublicKey']) > 0) { + $return['ldapPublicKey_sshPublicKey'][0] = '' . _('SSH public keys') . '' . $this->attributes['sshPublicKey'][0] . ''; + for ($i = 1; $i < sizeof($this->attributes['sshPublicKey']); $i++) { + $return['ldapPublicKey_sshPublicKey'][] = '' . $this->attributes['sshPublicKey'][$i] . ''; + } + } + return $return; + } + + /** + * Returns the meta HTML code for each input field. + * format: array( => array(), ...) + * It is not possible to display help links. + * + * @param array $fields list of active fields + * @param array $attributes attributes of LDAP account + * @param boolean $passwordChangeOnly indicates that the user is only allowed to change his password and no LDAP content is readable + * @param array $readOnlyFields list of read-only fields + * @return array list of meta HTML elements (field name => htmlTableRow) + */ + function getSelfServiceOptions($fields, $attributes, $passwordChangeOnly, $readOnlyFields) { + $return = array(); + if ($passwordChangeOnly) { + return $return; // no fields as long no LDAP content can be read + } + if (in_array('sshPublicKey', $fields)) { + $sshPublicKeys = array(); + if (isset($attributes['sshPublicKey'][0])) { + $sshPublicKeys = $attributes['sshPublicKey']; + } + $_SESSION[self::SESS_KEY_LIST] = $sshPublicKeys; + $keyTable = new htmlTable(); + // JavaScript functions + $keyTable->addElement($this->getSelfServiceKeysJSBlock(), true); + // input fields + $keyTable->addElement(new htmlDiv('sshPublicKeyDiv', $this->getSelfServiceKeys()), true); + // upload status + $uploadStatus = new htmlDiv('ldapPublicKey_upload_status_key', new htmlOutputText('')); + $uploadStatus->setCSSClasses(array('qq-upload-list')); + $uploadStatus->colspan = 7; + $keyTable->addElement($uploadStatus, true); + $keyLabel = new htmlOutputText($this->getSelfServiceLabel('sshPublicKey', _('SSH public keys'))); + $keyLabel->alignment = htmlElement::ALIGN_TOP; + $keyCells = array($keyLabel, $keyTable); + $keyRow = new htmlTableRow($keyCells); + $return['sshPublicKey'] = $keyRow; + } + return $return; + } + + /** + * Returns the meta HTML code to display the key area. + * This also includes the file upload. + * + * @return htmlTable key content + */ + private function getSelfServiceKeys() { + $keys = $_SESSION[self::SESS_KEY_LIST]; + $content = new htmlTable(); + if (sizeof($keys) > 0) { + $keyTable = new htmlTable(); + for ($i = 0; $i < sizeof($keys); $i++) { + $keyInput = new htmlInputField('sshPublicKey_' . $i, $keys[$i]); + $keyInput->setFieldMaxLength(16384); + $keyTable->addElement($keyInput); + $delLink = new htmlLink('', '#', '../../graphics/del.png'); + $delLink->setTitle(_('Delete')); + $delLink->setOnClick('ldapPublicKeyDeleteKey(' . $i . ', ' . sizeof($keys) . ');return false;'); + $keyTable->addElement($delLink); + if ($i == (sizeof($keys) - 1)) { + $addLink = new htmlLink('', '#', '../../graphics/add.png'); + $addLink->setTitle(_('Add')); + $addLink->setOnClick('ldapPublicKeyAddKey(' . sizeof($keys) . ');return false;'); + $keyTable->addElement($addLink); + } + $keyTable->addNewLine(); + } + $content->addElement($keyTable, true); + } + else { + $addLink = new htmlLink('', '#', '../../graphics/add.png'); + $addLink->setTitle(_('Add')); + $addLink->setOnClick('ldapPublicKeyAddKey(' . sizeof($keys) . ');return false;'); + $content->addElement($addLink, true); + } + // upload button + $uploadButtons = new htmlGroup(); + $uploadButtons->addElement(new htmlDiv('ldapPublicKeyKeyUploadId', new htmlOutputText('')), true); + $keyUpload = new htmlJavaScript('ldapPublicKeyUploadKey(\'ldapPublicKeyKeyUploadId\', ' . sizeof($keys) . ');'); + $uploadButtons->addElement($keyUpload); + $content->addElement($uploadButtons, true); + return $content; + } + + /** + * Returns the Java Script functions to manage the keys. + * + * @return htmlJavaScript JS block + */ + private static function getSelfServiceKeysJSBlock() { + $content = ' + function ldapPublicKeyDeleteKey(id, count) { + var actionJSON = { + "action": "deleteKey", + "id": id + }; + for (c = 0; c < count; c++) { + actionJSON["sshPublicKey_" + c] = jQuery(\'#sshPublicKey_\' + c).val(); + } + jQuery.post(\'../misc/ajax.php?selfservice=1&module=ldapPublicKey&scope=user\', {jsonInput: actionJSON}, function(data) {ldapPublicKeyDeleteKeyHandleReply(data);}, \'json\'); + } + + function ldapPublicKeyDeleteKeyHandleReply(data) { + if (data.errorsOccured == "false") { + jQuery(\'#sshPublicKeyDiv\').html(data.html); + } + else { + alert(data.errormessage); + } + } + + function ldapPublicKeyAddKey(count) { + var actionJSON = { + "action": "addKey" + }; + for (c = 0; c < count; c++) { + actionJSON["sshPublicKey_" + c] = jQuery(\'#sshPublicKey_\' + c).val(); + } + jQuery.post(\'../misc/ajax.php?selfservice=1&module=ldapPublicKey&scope=user\', {jsonInput: actionJSON}, function(data) {ldapPublicKeyAddKeyHandleReply(data);}, \'json\'); + } + + function ldapPublicKeyAddKeyHandleReply(data) { + if (data.errorsOccured == "false") { + jQuery(\'#sshPublicKeyDiv\').html(data.html); + } + else { + alert(data.errormessage); + } + } + + function ldapPublicKeyUploadKey(elementID, count) { + var uploadStatus = document.getElementById(\'ldapPublicKey_upload_status_key\'); + var parameters = { + action: \'ajaxKeyUpload\' + }; + for (c = 0; c < count; c++) { + parameters["sshPublicKey_" + c] = jQuery(\'#sshPublicKey_\' + c).val(); + } + var uploader = new qq.FineUploader({ + element: document.getElementById(elementID), + listElement: uploadStatus, + request: { + endpoint: \'../misc/ajax.php?selfservice=1&module=ldapPublicKey&scope=user\', + forceMultipart: true, + paramsInBody: true, + params: parameters + }, + multiple: false, + callbacks: { + onComplete: function(id, fileName, data) { + if (data.success) { + if (data.html) { + jQuery(\'#sshPublicKeyDiv\').html(data.html); + } + } + else { + alert(data.error); + } + } + } + }); + } + + '; + return new htmlJavaScript($content); + } + + /** + * Checks if all input values are correct and returns the LDAP attributes which should be changed. + *
    Return values: + *
    messages: array of parameters to create status messages + *
    add: array of attributes to add + *
    del: array of attributes to remove + *
    mod: array of attributes to modify + *
    info: array of values with informational value (e.g. to be used later by pre/postModify actions) + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}. + * + * @param string $fields input fields + * @param array $attributes LDAP attributes + * @param boolean $passwordChangeOnly indicates that the user is only allowed to change his password and no LDAP content is readable + * @param array $readOnlyFields list of read-only fields + * @return array messages and attributes (array('messages' => array(), 'add' => array('mail' => array('test@test.com')), 'del' => array(), 'mod' => array(), 'info' => array())) + */ + public function checkSelfServiceOptions($fields, $attributes, $passwordChangeOnly, $readOnlyFields) { + $return = array('messages' => array(), 'add' => array(), 'del' => array(), 'mod' => array(), 'info' => array()); + if ($passwordChangeOnly) { + return $return; // skip processing if only a password change is done + } + if (in_array('sshPublicKey', $fields)) { + $newKeys = array(); + $counter = 0; + while (isset($_POST['sshPublicKey_' . $counter])) { + $newKeys[] = $_POST['sshPublicKey_' . $counter]; + $counter++; + } + $count = sizeof($newKeys); + for ($i = 0; $i < $count; $i++) { + if (trim($newKeys[$i]) == '') { + unset($newKeys[$i]); + } + } + $newKeys = array_values(array_unique($newKeys)); + $oldKeys = array(); + if (isset($attributes['sshPublicKey'][0])) { + $oldKeys = $attributes['sshPublicKey']; + } + $update = false; + if (sizeof($newKeys) != sizeof($oldKeys)) { + $update = true; + } + else { + for ($i = 0; $i < sizeof($newKeys); $i++) { + if (!in_array($newKeys[$i], $oldKeys)) { + $update = true; + break; + } + } + } + if ($update) { + if (sizeof($oldKeys) == 0) { + $return['add']['sshPublicKey'] = $newKeys; + } + elseif (sizeof($newKeys) == 0) { + $return['del']['sshPublicKey'] = $newKeys; + } + else { + $return['mod']['sshPublicKey'] = $newKeys; + } + } + } + return $return; + } + + /** + * Manages AJAX requests. + * This function may be called with or without an account container. + */ + public function handleAjaxRequest() { + // AJAX uploads are non-JSON + if (isset($_GET['action']) && ($_GET['action'] == 'ajaxKeyUpload')) { + $this->ajaxUpload(); + return; + } + $jsonInput = $_POST['jsonInput']; + $jsonReturn = self::invalidAjaxRequest(); + if (isset($jsonInput['action'])) { + if ($jsonInput['action'] == 'deleteKey') { + $jsonReturn = $this->ajaxDeleteSelfServiceKey($jsonInput); + } + elseif ($jsonInput['action'] == 'addKey') { + $_SESSION[self::SESS_KEY_LIST][] = ''; + ob_start(); + $contentElement = $this->getSelfServiceKeys(); + ob_end_clean(); + ob_start(); + $tabindex = 999; + parseHtml(null, $contentElement, array(), true, $tabindex, $this->get_scope()); + $content = ob_get_contents(); + ob_end_clean(); + $jsonReturn = array( + 'errorsOccured' => 'false', + 'html' => $content, + ); + } + } + echo json_encode($jsonReturn); + } + + /** + * Handles an AJAX file upload and prints the JSON result. + */ + private function ajaxUpload() { + $x = $_GET; + $y = $_FILES; + $result = array('success' => true); + if (!isset($_FILES['qqfile']) || ($_FILES['qqfile']['size'] < 10)) { + $result = array('error' => _('No file received.')); + } + else { + $handle = fopen($_FILES['qqfile']['tmp_name'], "r"); + $data = fread($handle, 100000000); + fclose($handle); + $data = str_replace("\r\n", "\n", $data); + $data = str_replace("\r", "\n", $data); + $lines = explode("\n", $data); + foreach ($lines as $line) { + if (!empty($line) && !(strpos($line, '#') === 0)) { + $_SESSION[self::SESS_KEY_LIST][] = $line; + } + } + $_SESSION[self::SESS_KEY_LIST] = array_values(array_unique($_SESSION[self::SESS_KEY_LIST])); + ob_start(); + $contentElement = $this->getSelfServiceKeys(); + ob_end_clean(); + ob_start(); + $tabindex = 999; + parseHtml(null, $contentElement, array(), true, $tabindex, $this->get_scope()); + $content = ob_get_contents(); + ob_end_clean(); + $result['html'] = $content; + } + echo json_encode($result); + } + + /** + * Manages the deletion of a key. + * + * @param array $data JSON data + */ + private function ajaxDeleteSelfServiceKey($data) { + if (!isset($data['id'])) { + return self::invalidAjaxRequest(); + } + $index = $data['id']; + if (array_key_exists($index, $_SESSION[self::SESS_KEY_LIST])) { + unset($_SESSION[self::SESS_KEY_LIST][$index]); + $_SESSION[self::SESS_KEY_LIST] = array_values($_SESSION[self::SESS_KEY_LIST]); + } + ob_start(); + $contentElement = $this->getSelfServiceKeys(); + ob_end_clean(); + ob_start(); + $tabindex = 999; + parseHtml(null, $contentElement, array(), true, $tabindex, $this->get_scope()); + $content = ob_get_contents(); + ob_end_clean(); + return array( + 'errorsOccured' => 'false', + 'html' => $content, + ); + } + + /** + * Invalid AJAX request received. + * + * @param String $message error message + */ + public static function invalidAjaxRequest($message = null) { + if ($message == null) { + $message = _('Invalid request'); + } + return array('errorsOccured' => 'true', 'errormessage' => $message); + } + +} + + +?> diff --git a/lam/lib/modules/nisMailAlias.inc b/lam/lib/modules/nisMailAlias.inc new file mode 100644 index 00000000..a1c53719 --- /dev/null +++ b/lam/lib/modules/nisMailAlias.inc @@ -0,0 +1,522 @@ +get_scope(), array('mailAlias')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'mailBig.png'; + // base module + $return["is_base"] = true; + // LDAP filter + $return["ldap_filter"] = array('or' => "(objectClass=nisMailAlias)"); + // alias name + $return["alias"] = _("Mail aliases"); + // RDN attribute + $return["RDN"] = array("cn" => "normal"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('nisMailAlias'); + // managed attributes + $return['attributes'] = array('cn', 'rfc822MailMember'); + // help Entries + $return['help'] = array( + 'alias' => array( + "Headline" => _("Alias name"), 'attr' => 'cn', + "Text" => _("Mails to this name are forwarded to the recipients.") + ), + 'recipient' => array( + "Headline" => _("Recipients"), 'attr' => 'rfc822MailMember', + "Text" => _("Please enter the recipients for this alias.") + ), + 'recipientList' => array( + "Headline" => _("Recipient list"), 'attr' => 'rfc822MailMember', + "Text" => _("This is a comma separated list of recipients.") + ), + 'filter' => array( + "Headline" => _("Filter"), + "Text" => _("Here you can enter a filter value. Only entries which contain the filter text will be shown.") + ), + ); + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'nisMailAlias_alias', + 'description' => _('Alias name'), + 'help' => 'alias', + 'example' => 'root', + 'required' => true + ), + array( + 'name' => 'nisMailAlias_recipients', + 'description' => _('Recipient list'), + 'help' => 'recipientList', + 'example' => _('smiller') + ) + ); + // available PDF fields + $return['PDF_fields'] = array( + 'alias' => _('Alias name'), + 'recipients' => _('Recipient list') + ); + return $return; + } + + /** + * This function fills the error message array with messages + */ + function load_Messages() { + $this->messages['alias'][0] = array('ERROR', _('Alias is empty or invalid!')); // third array value is set dynamically + $this->messages['alias'][1] = array('ERROR', _('Account %s:') . ' nisMailAlias_alias', _('Alias is empty or invalid!')); + $this->messages['recipient'][0] = array('ERROR', _('Recipient is invalid!')); // third array value is set dynamically + $this->messages['recipient'][1] = array('ERROR', _('Account %s:') . ' nisMailAlias_recipient', _('Recipient is invalid!')); + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + function save_attributes() { + // skip saving if account is based on another structural object class + if (!$this->getAccountContainer()->isNewAccount && !in_array('nisMailAlias', $this->getAccountContainer()->attributes_orig['objectClass'])) { + return array(); + } + return parent::save_attributes(); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $return = new htmlTable(); + // alias name + $alias = ''; + if (isset($this->attributes['cn'][0])) { + $alias = $this->attributes['cn'][0]; + } + $nameInput = new htmlTableExtendedInputField(_('Alias name'), 'cn', $alias, 'alias'); + $nameInput->setRequired(true); + $return->addElement($nameInput, true); + // list current recipients + $mailList = $this->getMailList(); + $userList = $this->getUserList(); + $autoList = array(); + if ((sizeof($userList) + sizeof($mailList)) < 300) { + $autoList = array_merge($userList, $mailList); + } + $recipientCount = 0; + if (isset($this->attributes['rfc822MailMember'])) { + natcasesort($this->attributes['rfc822MailMember']); + $this->attributes['rfc822MailMember'] = array_values($this->attributes['rfc822MailMember']); + $recipientCount = sizeof($this->attributes['rfc822MailMember']); + if ($recipientCount < nisMailAlias::DISPLAY_LIMIT) { + for ($i = 0; $i < $recipientCount; $i++) { + if (($i == 0) && ($recipientCount == 1)) { + $return->addElement(new htmlOutputText(_('Recipient'))); + } + elseif (($i == 0) && ($recipientCount > 1)) { + $return->addElement(new htmlOutputText(_('Recipients'))); + } + else { + $return->addElement(new htmlOutputText('')); + } + $mailField = new htmlInputField('rfc822MailMember' . $i, $this->attributes['rfc822MailMember'][$i]); + if (sizeof($autoList) > 0) { + $mailField->enableAutocompletion($autoList); + } + $return->addElement($mailField); + $return->addElement(new htmlAccountPageButton(get_class($this), 'selectMail', 'recipient' . $i, 'mailAlias.png', true, _('Select mail'))); + $return->addElement(new htmlAccountPageButton(get_class($this), 'selectUser', 'recipient' . $i, 'user.png', true, _('Select user'))); + $return->addElement(new htmlButton('delRec' . $i, 'del.png', true)); + $return->addElement(new htmlHelpLink('recipient'), true); + } + } + else { + $memberText = implode("\r\n", $this->attributes['rfc822MailMember']); + $return->addElement(new htmlTableExtendedInputTextarea('rfc822MailMember', $memberText, 50, 30, _('Recipients'), 'recipient'), true); + $return->addElement(new htmlEqualWidth(array('cn', 'rfc822MailMember')), true); + } + } + if ($recipientCount < nisMailAlias::DISPLAY_LIMIT) { + // input box for new recipient + $return->addElement(new htmlOutputText(_('New recipient'))); + $newMailField = new htmlInputField('rfc822MailMember'); + $newMailField->setOnKeyPress('SubmitForm(\'addRec\', event);'); + if (sizeof($autoList) > 0) { + $newMailField->enableAutocompletion($autoList); + } + $return->addElement($newMailField); + $return->addElement(new htmlAccountPageButton(get_class($this), 'selectMail', 'recipient' . 'New', 'mailAlias.png', true, _('Select mail'))); + $return->addElement(new htmlAccountPageButton(get_class($this), 'selectUser', 'recipient' . 'New', 'user.png', true, _('Select user'))); + $return->addElement(new htmlButton('addRec', 'add.png', true)); + $return->addElement(new htmlHelpLink('recipient')); + $return->addElement(new htmlHiddenInput('rec_number', $recipientCount)); + } + return $return; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + $errors = array(); + $this->attributes['cn'] = array(); + $recipientCount = !empty($this->attributes['rfc822MailMember']) ? sizeof($this->attributes['rfc822MailMember']) : 0; + $this->attributes['rfc822MailMember'] = array(); + // check alias name + if (isset($_POST['cn']) && ($_POST['cn'] != "") && get_preg($_POST['cn'], 'nis_alias')) { + $this->attributes['cn'][] = $_POST['cn']; + } + else { + $this->attributes['cn'][] = $_POST['cn']; + $message = $this->messages['alias'][0]; + $message[] = $_POST['cn']; + $errors[] = $message; + } + if ($recipientCount < nisMailAlias::DISPLAY_LIMIT) { + // check old recipients + if (isset($_POST['rec_number'])) { + for ($i = 0; $i < $_POST['rec_number']; $i++) { + if (isset($_POST['delRec' . $i])) continue; + if (isset($_POST['rfc822MailMember' . $i]) && ($_POST['rfc822MailMember' . $i] != "")) { + // check if address has correct format + if (!get_preg($_POST['rfc822MailMember' . $i], 'nis_recipient') && !get_preg($_POST['rfc822MailMember' . $i], 'email')) { + $message = $this->messages['recipient'][0]; + $message[] = $_POST['rfc822MailMember' . $i]; + $errors[] = $message; + } + $this->attributes['rfc822MailMember'][] = $_POST['rfc822MailMember' . $i]; + } + } + } + // check new recipient + if (isset($_POST['rfc822MailMember']) && ($_POST['rfc822MailMember'] != "")) { + // check if recipient has correct format + if (get_preg($_POST['rfc822MailMember'], 'nis_recipient') || get_preg($_POST['rfc822MailMember'], 'email')) { + $this->attributes['rfc822MailMember'][] = $_POST['rfc822MailMember']; + } + else { + $message = $this->messages['recipient'][0]; + $message[] = $_POST['rfc822MailMember']; + $errors[] = $message; + } + } + } + else { + $recipients = explode("\r\n", $_POST['rfc822MailMember']); + foreach ($recipients as $recipient) { + $recipient = trim($recipient); + if (empty($recipient)) { + continue; + } + $this->attributes['rfc822MailMember'][] = $recipient; + // check if recipient has correct format + if (!get_preg($recipient, 'nis_recipient') && !get_preg($recipient, 'email')) { + $message = $this->messages['recipient'][0]; + $message[] = htmlspecialchars($recipient); + $errors[] = $message; + } + } + } + $this->attributes['rfc822MailMember'] = array_unique($this->attributes['rfc822MailMember']); + return $errors; + } + + /** + * Displays the mail selection. + * + * @return htmlElement meta HTML code + */ + function display_html_selectMail() { + return $this->display_html_select(true); + } + + /** + * Processes user input of the host/user selection page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_selectMail() { + return $this->process_select(); + } + + /** + * Displays the user selection. + * + * @return htmlElement meta HTML code + */ + function display_html_selectUser() { + return $this->display_html_select(false); + } + + /** + * Processes user input of the host/user selection page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_selectUser() { + return $this->process_select(); + } + + /** + * Displays the user/mail selection. + * + * @param boolean $isMail mail selection (user selection if false) + * @return htmlElement meta HTML code + */ + function display_html_select($isMail) { + $options = array(); + if ($isMail) { + $regex = 'email'; + $options = $this->getMailList(); + $suffix = 'Mail'; + $label = _('Email'); + } + else { + $regex = 'username'; + $options = $this->getUserList(); + $suffix = 'User'; + $label = _('User'); + } + $return = new htmlTable(); + $postKeys = array_keys($_POST); + $position = 'New'; + $filter = ''; + if (isset($_POST['dofilter'])) { + $filter = $_POST['filter']; + } + for ($i = 0; $i < sizeof($postKeys); $i++) { + if (strpos($postKeys[$i], 'form_subpage_' . get_class($this) . '_select' . $suffix . '_recipient') === 0) { + $position = substr($postKeys[$i], strlen('form_subpage_' . get_class($this) . '_select' . $suffix . '_recipient')); + break; + } + } + // load list with all mail addresses + $count = sizeof($options); + for ($i = 0; $i < $count; $i++) { + if (!get_preg($options[$i], $regex) || (($filter != '') && (strpos($options[$i], $filter) === false))) { + unset($options[$i]); + } + } + $options = array_values($options); + $return->addElement(new htmlOutputText(_('Filter'))); + $return->addElement(new htmlInputField('filter', $filter)); + $return->addElement(new htmlButton('dofilter', _('Ok'))); + $return->addElement(new htmlHelpLink('filter'), true); + $return->addElement(new htmlOutputText($label)); + $mailSelect = new htmlSelect('selectBox', $options, array(), 15); + $mailSelect->setMultiSelect($position === 'New'); + $mailSelect->colspan = 5; + $return->addElement($mailSelect, true); + $return->addElement(new htmlSpacer(null, '10px'), true); + $buttonContainer = new htmlTable(); + $buttonContainer->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'select', _('Ok'))); + $buttonContainer->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'back', _('Cancel'))); + $buttonContainer->colspan = 4; + $return->addElement($buttonContainer, true); + $return->addElement(new htmlHiddenInput('position', $position)); + return $return; + } + + /** + * Processes user input of the host/user selection page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_select() { + if (isset($_POST['form_subpage_' . get_class($this) . '_attributes_select'])) { + if (!isset($this->attributes['rfc822MailMember'])) { + $this->attributes['rfc822MailMember'] = array(); + } + $position = $_POST['position']; + if ($position == 'New') { + $this->attributes['rfc822MailMember'] = array_merge($this->attributes['rfc822MailMember'], $_POST['selectBox']); + } + else { + $this->attributes['rfc822MailMember'][$_POST['position']] = $_POST['selectBox']; + } + return array(); + } + return array(); + } + + /** + * Controls if the module button the account page is visible and activated. + * + * @return string status ("enabled", "disabled", "hidden") + */ + function getButtonStatus() { + if (!$this->getAccountContainer()->isNewAccount) { + // check if account is based on our object class + $objectClasses = $this->getAccountContainer()->attributes_orig['objectClass']; + if (is_array($objectClasses) && !in_array('nisMailAlias', $objectClasses)) { + return "disabled"; + } + } + return "enabled"; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array("nisMailAlias", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "nisMailAlias"; + // add alias name + // check format + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'nisMailAlias_alias', 'cn', + 'nis_alias', $this->messages['alias'][1], $messages); + // add recipients + if ($rawAccounts[$i][$ids['nisMailAlias_recipients']] != "") { + $aliases = explode(',', $rawAccounts[$i][$ids['nisMailAlias_recipients']]); + // check format + for ($a = 0; $a < sizeof($aliases); $a++) { + if (get_preg($aliases[$a], 'nis_recipient') || get_preg($aliases[$a], 'email')) { + $partialAccounts[$i]['rfc822MailMember'][] = $aliases[$a]; + } + else { + $errMsg = $this->messages['recipient'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + } + } + } + return $messages; + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'alias', _('Alias name'), 'cn'); + $this->addSimplePDFField($return, 'recipients', _('Recipient list'), 'rfc822MailMember'); + return $return; + } + + /** + * Returns a list of existing email addresses. + * + * @return array email addresses + */ + private function getMailList() { + if ($this->cachedMailList != null) { + return $this->cachedMailList; + } + $this->cachedMailList = searchLDAPByAttribute('mail', '*', 'inetOrgPerson', array('mail'), array('user')); + for ($i = 0; $i < sizeof($this->cachedMailList); $i++) { + $this->cachedMailList[$i] = $this->cachedMailList[$i]['mail'][0]; + } + $this->cachedMailList = array_values(array_unique($this->cachedMailList)); + return $this->cachedMailList; + } + + /** + * Returns a list of existing user names. + * + * @return array user names + */ + private function getUserList() { + if ($this->cachedUserList != null) { + return $this->cachedUserList; + } + $this->cachedUserList = searchLDAPByFilter('(|(objectClass=posixAccount)(objectClass=inetOrgPerson))', array('uid'), array('user')); + $count = sizeof($this->cachedUserList); + for ($i = 0; $i < $count; $i++) { + if (empty($this->cachedUserList[$i]['uid'][0])) { + unset($this->cachedUserList[$i]); + continue; + } + $this->cachedUserList[$i] = $this->cachedUserList[$i]['uid'][0]; + } + $this->cachedUserList = array_values(array_unique($this->cachedUserList)); + return $this->cachedUserList; + } + +} + + +?> diff --git a/lam/lib/modules/nisMailAliasUser.inc b/lam/lib/modules/nisMailAliasUser.inc new file mode 100644 index 00000000..f00d5ccf --- /dev/null +++ b/lam/lib/modules/nisMailAliasUser.inc @@ -0,0 +1,636 @@ + attributes) */ + private $recipientsToDelete = array(); + /** complete alias entries to delete */ + private $aliasesToDelete = array(); + /** new alias entries (list of arrays: dn => attributes) */ + private $aliasesToAdd = array(); + /** alias entries to extend with new recipients (list of arrays: dn => recipients) */ + private $recipientsToAdd = array(); + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('user')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'mailBig.png'; + // alias name + $return["alias"] = _("Mail aliases"); + // module dependencies + $return['dependencies'] = array('depends' => array(array('inetOrgPerson', 'posixAccount')), 'conflicts' => array()); + // help Entries + $return['help'] = array( + 'aliasUser' => array( + "Headline" => _("Alias names with user name"), + "Text" => _('Sets the alias names linked to the current user name.') + ), + 'aliasUserList' => array( + "Headline" => _("Alias names with user name"), + "Text" => _('Sets the alias names linked to the current user name.') . ' ' . _("Multiple values are separated by semicolon.") + ), + 'aliasMail' => array( + "Headline" => _("Alias names with email address"), + "Text" => _('Sets the alias names linked to the user\'s email address.') + ), + 'aliasUserList' => array( + "Headline" => _("Alias names with email address"), + "Text" => _('Sets the alias names linked to the user\'s email address.') . ' ' . _("Multiple values are separated by semicolon.") + ), + 'suffix' => array( + "Headline" => _("Suffix"), + "Text" => _("Location where new alias is stored.") + ), + 'newAlias' => array( + "Headline" => _("Alias name"), 'attr' => 'cn', + "Text" => _("Name of new alias entry.") + ), + 'aliasNames' => array( + "Headline" => _("Alias names"), 'attr' => 'cn', + "Text" => _("Select one or more alias entries from the list to add the recipient.") + ), + 'hiddenOptions' => array( + "Headline" => _("Hidden options"), + "Text" => _("The selected options will not be managed inside LAM. You can use this to reduce the number of displayed input fields.") + ), + ); + // available PDF fields + $return['PDF_fields'] = array( + 'alias' => _('Alias names'), + ); + return $return; + } + + /** + * This function fills the error message array with messages + */ + function load_Messages() { + $this->messages['alias'][0] = array('ERROR', _('Alias name is invalid.')); + $this->messages['alias'][1] = array('ERROR', _('Alias name already exists.')); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $return = new htmlTable(); + if (!$this->isMailAliasTypeActive()) { + $return->addElement(new htmlStatusMessage('ERROR', _('Please activate the mail aliases type for this server profile.'))); + return $return; + } + $aliases = $this->getMailAliasList(); + $count = sizeof($aliases); + $userName = $this->getUserName(); + $mails = $this->getMailAddresses(); + if (!$this->isBooleanConfigOptionSet('nisMailAliasUser_hideUserAliases') && ($userName != null)) { + $return->addElement(new htmlSubTitle(_('Aliases for user name')), true); + $userTable = new htmlTable(); + for ($i = 0; $i < $count; $i++) { + if (empty($aliases[$i]['rfc822mailmember'])) { + continue; + } + $dn = $aliases[$i]['dn']; + $members = $aliases[$i]['rfc822mailmember']; + if (in_array($userName, $members) + && (!isset($this->recipientsToDelete[$dn]) || !in_array($userName, $this->recipientsToDelete[$dn])) + && !in_array($dn, $this->aliasesToDelete)) { + $userTable->addElement(new htmlOutputText($aliases[$i]['cn'][0])); + $buttonGroup = new htmlGroup(); + $remButton = new htmlButton('rem_' . $i, 'del.png', true); + $remButton->setTitle(_('Remove user from alias entry.')); + $buttonGroup->addElement($remButton); + $delButton = new htmlButton('del_' . $i, 'trash.png', true); + $delButton->setTitle(sprintf(_('Delete whole alias entry which includes %s recipients.'), sizeof($members))); + $buttonGroup->addElement($delButton); + $userTable->addElement($buttonGroup, true); + } + } + $userTable->addVerticalSpace('5px'); + $addButton = new htmlAccountPageButton(get_class($this), 'add', 'user', _('Add')); + $addButton->setIconClass('createButton'); + $addButton->colspan = 5; + $userTable->addElement($addButton, true); + $return->addElement($userTable, true); + } + if (!$this->isBooleanConfigOptionSet('nisMailAliasUser_hideUserAliases') && !empty($mails)) { + $return->addElement(new htmlSubTitle(_('Aliases for email')), true); + $mailTable = new htmlTable(); + for ($m = 0; $m < sizeof($mails); $m++) { + if (sizeof($mails) > 1) { + $label = new htmlOutputText($mails[$m]); + $label->colspan = 5; + $mailTable->addElement($label, true); + } + $found = false; + for ($i = 0; $i < $count; $i++) { + if (empty($aliases[$i]['rfc822mailmember'])) { + continue; + } + $dn = $aliases[$i]['dn']; + $members = $aliases[$i]['rfc822mailmember']; + if (in_array($mails[$m], $members) + && (!isset($this->recipientsToDelete[$dn]) || !in_array($mails[$m], $this->recipientsToDelete[$dn])) + && !in_array($dn, $this->aliasesToDelete)) { + $found = true; + $mailTable->addSpace('5px'); + $mailTable->addElement(new htmlOutputText($aliases[$i]['cn'][0])); + $buttonGroup = new htmlGroup(); + $remButton = new htmlButton('remMail_' . $i . '_' . $m, 'del.png', true); + $remButton->setTitle(_('Remove user from alias entry.')); + $buttonGroup->addElement($remButton); + $delButton = new htmlButton('delMail_' . $i . '_' . $m, 'trash.png', true); + $delButton->setTitle(sprintf(_('Delete whole alias entry which includes %s recipients.'), sizeof($members))); + $buttonGroup->addElement($delButton); + $mailTable->addElement($buttonGroup, true); + } + } + $mailTable->addVerticalSpace('5px'); + $addButton = new htmlAccountPageButton(get_class($this), 'add', 'mail' . $m, _('Add')); + $addButton->setIconClass('createButton'); + $addButton->colspan = 5; + $mailTable->addElement($addButton, true); + if ((sizeof($mails) > 1) && ($m < (sizeof($mails) - 1))) { + $mailTable->addVerticalSpace('20px'); + } + } + $return->addElement($mailTable, true); + } + return $return; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + $errors = array(); + if (!$this->isMailAliasTypeActive()) { + return $errors; + } + $mails = $this->getMailAddresses(); + foreach ($_POST as $key => $value) { + if (strpos($key, 'rem_') === 0) { + $index = substr($key, strlen('rem_')); + $dn = $this->cachedAliasList[$index]['dn']; + $this->removeRecipient($this->getUserName(), $dn); + } + elseif (strpos($key, 'del_') === 0) { + $index = substr($key, strlen('del_')); + $dn = $this->cachedAliasList[$index]['dn']; + $this->deleteAlias($dn); + } + elseif (strpos($key, 'remMail_') === 0) { + $parts = substr($key, strlen('remMail_')); + $parts = explode('_', $parts); + $this->removeRecipient($mails[$parts[1]], $this->cachedAliasList[$parts[0]]['dn']); + } + elseif (strpos($key, 'delMail_') === 0) { + $parts = substr($key, strlen('remMail_')); + $parts = explode('_', $parts); + $this->deleteAlias($this->cachedAliasList[$parts[0]]['dn']); + } + } + return $errors; + } + + /** + * Removes a recipient from the given DN. + * + * @param String $recipient recipient as user name or email + * @param String $dn alias DN + */ + private function removeRecipient($recipient, $dn) { + if (!isset($this->aliasesToAdd[$dn])) { // no new entry update existing + if (isset($this->recipientsToAdd[$dn]) && in_array($recipient, $this->recipientsToAdd[$dn])) { + // undo adding of recipient + if (sizeof($this->recipientsToAdd[$dn]) == 1) { + // only one entry as marked for adding, remove whole entry + unset($this->recipientsToAdd[$dn]); + } + else { + $this->recipientsToAdd[$dn] = array_values(array_delete(array($recipient), $this->recipientsToAdd[$dn])); + } + } + else { + // mark for removal + $this->recipientsToDelete[$dn][] = $recipient; + } + foreach ($this->cachedAliasList as $index => $attrs) { + if ($dn == $attrs['dn']) { + $this->cachedAliasList[$index]['rfc822mailmember'] = array_values(array_delete(array($recipient), $this->cachedAliasList[$index]['rfc822mailmember'])); + } + } + } + else { // new entry + if (sizeof($this->aliasesToAdd[$dn]['rfc822mailmember']) == 1) { + // single recipient in new entry, do not create new entry at all + unset($this->aliasesToAdd[$dn]); + foreach ($this->cachedAliasList as $index => $attrs) { + if ($dn == $attrs['dn']) { + unset($this->cachedAliasList[$index]); + $this->cachedAliasList = array_values($this->cachedAliasList); + } + } + } + else { + $this->aliasesToAdd[$dn]['rfc822mailmember'] = array_values(array_delete(array($recipient), $this->aliasesToAdd[$dn]['rfc822mailmember'])); + foreach ($this->cachedAliasList as $index => &$attrs) { + if ($dn == $attrs['dn']) { + $attrs['rfc822mailmember'] = array_values(array_delete(array($recipient), $attrs['rfc822mailmember'])); + } + } + } + } + } + + /** + * Removes an alias with the given DN. + * + * @param String $dn alias DN + */ + private function deleteAlias($dn) { + if (!isset($this->aliasesToAdd[$dn])) { + // no new entry, delete existing entry + $this->aliasesToDelete[] = $dn; + } + else { + unset($this->aliasesToAdd[$dn]); + foreach ($this->cachedAliasList as $index => $attrs) { + if ($dn == $attrs['dn']) { + unset($this->cachedAliasList[$index]); + $this->cachedAliasList = array_values($this->cachedAliasList); + } + } + } + if (isset($this->recipientsToAdd[$dn])) { + unset($this->recipientsToAdd[$dn]); + } + if (isset($this->recipientsToDelete[$dn])) { + unset($this->recipientsToDelete[$dn]); + } + } + + /** + * Returns the HTML meta data for the add page. + * + * @return htmlElement HTML meta data + */ + function display_html_add() { + $return = new htmlTable(); + $aliases = $this->getMailAliasList(); + $count = sizeof($aliases); + $userName = $this->getUserName(); + $mails = $this->getMailAddresses(); + $recipient = null; + // get recipient value to add + if (isset($_POST['recipient'])) { + $recipient = $_POST['recipient']; + } + elseif (isset($_POST['form_subpage_' . get_class($this) . '_add_user'])) { + $recipient = $userName; + } + else { + for ($m = 0; $m < sizeof($mails); $m++) { + if (isset($_POST['form_subpage_' . get_class($this) . '_add_mail' . $m])) { + $recipient = $mails[$m]; + break; + } + } + } + $return->addElement(new htmlOutputText(_('Recipient'))); + $return->addElement(new htmlOutputText($recipient), true); + $return->addElement(new htmlHiddenInput('recipient', $recipient), true); + // new mail alias + $return->addElement(new htmlSubTitle(_('Create new alias')), true); + $typeObj = new mailAlias(); + $ous = $typeObj->getSuffixList(); + $return->addElement(new htmlTableExtendedSelect('new_ou', $ous, array(), _('Suffix'), 'suffix'), true); + $newAliasCn = empty($_POST['new_cn']) ? '' : $_POST['new_cn']; + $return->addElement(new htmlTableExtendedInputField(_('Alias name'), 'new_cn', $newAliasCn, 'newAlias'), true); + $return->addVerticalSpace('5px'); + $addButton = new htmlAccountPageButton(get_class($this), 'attributes', 'create', _('Create')); + $addButton->setIconClass('createButton'); + $addButton->colspan = 5; + $return->addElement($addButton, true); + + $return->addVerticalSpace('20px'); + + // add to existing alias + $return->addElement(new htmlSubTitle(_('Add to existing alias')), true); + $aliasesToAdd = array(); + foreach ($aliases as $index => $attrs) { + if (!empty($attrs['rfc822mailmember']) && in_array($recipient, $attrs['rfc822mailmember'])) { + continue; + } + $aliasesToAdd[$attrs['cn'][0]] = $index; + } + $aliasSelect = new htmlTableExtendedSelect('ex_cn', $aliasesToAdd, array(), _('Alias names'), 'aliasNames', 20); + $aliasSelect->setHasDescriptiveElements(true); + $aliasSelect->setMultiSelect(true); + $return->addElement($aliasSelect, true); + $return->addVerticalSpace('5px'); + $addButton = new htmlAccountPageButton(get_class($this), 'attributes', 'recipient', _('Add')); + $addButton->setIconClass('createButton'); + $addButton->colspan = 5; + $return->addElement($addButton, true); + + $return->addElement(new htmlEqualWidth(array('new_ou', 'new_cn', 'ex_cn'))); + return $return; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_add() { + $errors = array(); + $mails = $this->getMailAddresses(); + // create new alias entry + if (isset($_POST['form_subpage_' . get_class($this) . '_attributes_create'])) { + if (empty($_POST['new_cn']) || !get_preg($_POST['new_cn'], 'nis_alias')) { + $errors[] = $this->messages['alias'][0]; + } + else { + // build new alias entry + $newDN = 'cn=' . $_POST['new_cn'] . ',' . $_POST['new_ou']; + $found = false; + foreach ($this->cachedAliasList as $key => $attrs) { + if ($attrs['dn'] == $newDN) { + $found = true; + break; + } + } + if ($found) { + $errors[] = $this->messages['alias'][1]; + } + else { + $newAttrs = array( + 'dn' => $newDN, + 'cn' => array($_POST['new_cn']), + 'objectclass' => array('nisMailAlias'), + 'rfc822mailmember' => array($_POST['recipient']) + ); + $this->aliasesToAdd[$newDN] = $newAttrs; + $this->cachedAliasList[] = $newAttrs; + } + } + } + // add recipient to existing entries + if (isset($_POST['form_subpage_' . get_class($this) . '_attributes_recipient'])) { + $selectedAliases = $_POST['ex_cn']; + foreach ($selectedAliases as $index) { + $dn = $this->cachedAliasList[$index]['dn']; + $this->cachedAliasList[$index]['rfc822mailmember'][] = $_POST['recipient']; + if (isset($this->aliasesToAdd[$dn])) { + $this->aliasesToAdd[$dn]['rfc822mailmember'][] = $_POST['recipient']; + } + else { + $this->recipientsToAdd[$dn][] = $_POST['recipient']; + } + } + } + + return $errors; + } + + /** + * Allows the module to run commands after the LDAP entry is changed or created. + * + * Calling this method requires the existence of an enclosing {@link accountContainer}. + * + * @param boolean $newAccount new account + * @param array $attributes LDAP attributes of this entry + * @return array array which contains status messages. Each entry is an array containing the status message parameters. + */ + public function postModifyActions($newAccount, $attributes) { + $errors = array(); + $ldapUser = $_SESSION['ldap']->decrypt_login(); + $ldapUser = $ldapUser[0]; + // delete complete aliases + foreach ($this->aliasesToDelete as $dn) { + $success = @ldap_delete($_SESSION['ldap']->server(), $dn); + if (!$success) { + logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to delete ' . $dn . ' (' . ldap_error($_SESSION['ldap']->server()) . ').'); + $errors[] = array('ERROR', sprintf(_('Was unable to delete DN: %s.'), $dn), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + } + else { + logNewMessage(LOG_NOTICE, '[' . $ldapUser .'] Removed ' . $dn); + } + } + // delete recipient entries + foreach ($this->recipientsToDelete as $dn => $recipients) { + $success = @ldap_mod_del($_SESSION['ldap']->server(), $dn, array('rfc822mailmember' => $recipients)); + if (!$success) { + logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to remove recipients ' . implode(', ', $recipients) . ' from ' . $dn . ' (' . ldap_error($_SESSION['ldap']->server()) . ').'); + $errors[] = array('ERROR', sprintf(_('Was unable to remove attributes from DN: %s.'), $dn), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + } + else { + logNewMessage(LOG_NOTICE, '[' . $ldapUser .'] Removed recipients ' . implode(', ', $recipients) . ' from ' . $dn); + } + } + // create new aliases + foreach ($this->aliasesToAdd as $dn => $attrs) { + unset($attrs['dn']); + $success = @ldap_add($_SESSION['ldap']->server(), $dn, $attrs); + if (!$success) { + logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to create mail alias ' . $dn . ' (' . ldap_error($_SESSION['ldap']->server()) . ').'); + $errors[] = array('ERROR', sprintf(_('Was unable to create DN: %s.'), $dn), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + } + else { + logNewMessage(LOG_NOTICE, '[' . $ldapUser .'] Added mail alias with recipients ' . implode(', ', $attrs['rfc822mailmember']) . ' and DN ' . $dn); + } + } + // add recipients + foreach ($this->recipientsToAdd as $dn => $recipients) { + $success = @ldap_mod_add($_SESSION['ldap']->server(), $dn, array('rfc822mailmember' => $recipients)); + if (!$success) { + logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to add recipients ' . implode(', ', $recipients) . ' to ' . $dn . ' (' . ldap_error($_SESSION['ldap']->server()) . ').'); + $errors[] = array('ERROR', sprintf(_('Was unable to add attributes to DN: %s.'), $dn), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + } + else { + logNewMessage(LOG_NOTICE, '[' . $ldapUser .'] Added recipients ' . implode(', ', $recipients) . ' to ' . $dn); + } + } + return $errors; + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $return = array(); + $aliases = $this->getMailAliasList(); + $foundAliases = array(); + $mails = $this->getMailAddresses(); + $user = $this->getUserName(); + foreach ($aliases as $alias) { + if (empty($alias['rfc822mailmember'][0])) { + continue; + } + if (!empty($user) && in_array($user, $alias['rfc822mailmember'])) { + $foundAliases[] = $alias['cn'][0]; + } + if (!empty($mails)) { + foreach ($mails as $mail) { + if (in_array($mail, $alias['rfc822mailmember'])) { + $foundAliases[] = $alias['cn'][0]; + } + } + } + } + $foundAliases = array_unique($foundAliases); + $return[get_class($this) . '_alias'] = array('' . _('Alias names') . '' . implode(', ', $foundAliases) . ''); + return $return; + } + + /** + * Returns a list of configuration options. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * The field names are used as keywords to load and save settings. + * We recommend to use the module name as prefix for them (e.g. posixAccount_homeDirectory) to avoid naming conflicts. + * + * @param array $scopes account types (user, group, host) + * @param array $allScopes list of all active account modules and their scopes (module => array(scopes)) + * @return mixed htmlElement or array of htmlElement + * + * @see baseModule::get_metaData() + * @see htmlElement + */ + public function get_configOptions($scopes, $allScopes) { + $configContainer = new htmlTable(); + $configContainerHead = new htmlTable(); + $configContainerHead->addElement(new htmlOutputText(_('Hidden options'))); + $configContainerHead->addElement(new htmlHelpLink('hiddenOptions')); + $configContainerOptions = new htmlTable(); + $configContainer->addElement($configContainerHead, true); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('nisMailAliasUser_hideUserAliases', false, _('Aliases for user name'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('nisMailAliasUser_hideMailAliases', false, _('Aliases for email'), null, false)); + $configContainer->addElement($configContainerOptions, true); + return $configContainer; + } + + /** + * Returns a list of existing email aliases. + * + * @return array email aliases + */ + private function getMailAliasList() { + if ($this->cachedAliasList != null) { + return $this->cachedAliasList; + } + $this->cachedAliasList = searchLDAPByAttribute('cn', '*', 'nisMailAlias', array('dn', 'cn', 'rfc822MailMember'), array('mailAlias')); + return $this->cachedAliasList; + } + + /** + * Returns the user name of this account. + * + * @return String user name + */ + private function getUserName() { + if ($this->getAccountContainer()->getAccountModule('posixAccount') != null) { + $attrs = $this->getAccountContainer()->getAccountModule('posixAccount')->getAttributes(); + if (!empty($attrs['uid'][0])) { + return $attrs['uid'][0]; + } + } + elseif ($this->getAccountContainer()->getAccountModule('inetOrgPerson') != null) { + $attrs = $this->getAccountContainer()->getAccountModule('inetOrgPerson')->getAttributes(); + if (!empty($attrs['uid'][0])) { + return $attrs['uid'][0]; + } + } + return null; + } + + /** + * Returns the email addresses of this account. + * + * @return String mail addresses + */ + private function getMailAddresses() { + if ($this->getAccountContainer()->getAccountModule('inetOrgPerson') != null) { + $attrs = $this->getAccountContainer()->getAccountModule('inetOrgPerson')->getAttributes(); + if (!empty($attrs['mail'])) { + return $attrs['mail']; + } + } + return null; + } + + /** + * Returns if the mail alias type is active. Otherwise, aliases cannot be managed. + * + * @return boolean is active + */ + private function isMailAliasTypeActive() { + $activeTypes = $_SESSION['config']->get_ActiveTypes(); + return in_array('mailAlias', $activeTypes); + } + +} + + +?> diff --git a/lam/lib/modules/nisnetgroup.inc b/lam/lib/modules/nisnetgroup.inc new file mode 100644 index 00000000..fad48136 --- /dev/null +++ b/lam/lib/modules/nisnetgroup.inc @@ -0,0 +1,661 @@ +get_scope(), array('netgroup')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'groupBig.png'; + // alias name + $return["alias"] = _("NIS net group"); + // this is a base module + $return["is_base"] = true; + // LDAP filter + $return["ldap_filter"] = array('or' => "(objectClass=nisNetgroup)"); + // RDN attributes + $return["RDN"] = array("cn" => "normal"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('nisNetgroup'); + // managed attributes + $return['attributes'] = array('cn', 'description', 'memberNisNetgroup', 'nisNetgroupTriple'); + // help Entries + $return['help'] = array( + 'cn' => array( + "Headline" => _("Group name"), 'attr' => 'cn', + "Text" => _("This is the name of this group.") + ), + 'description' => array( + "Headline" => _("Description"), 'attr' => 'description', + "Text" => _("Here you can enter a description for this group.") + ), + 'memberNisNetgroup' => array( + "Headline" => _("Subgroups"), 'attr' => 'memberNisNetgroup', + "Text" => _("Here you can specify subgroups which are included in this NIS netgroup. All members of the subgroups will be treated as members of this group.") + ), + 'members' => array( + "Headline" => _("Members"), 'attr' => 'nisNetgroupTriple', + "Text" => _("These entries specify the members of the netgroup. You can limit the set to a host name, a user name, a domain name or any combination of them.") + ), + 'membersUpload' => array( + "Headline" => _("Members"), 'attr' => 'nisNetgroupTriple', + "Text" => _("These entries specify the members of the netgroup. You can limit the set to a host name, a user name, a domain name or any combination of them.") . ' ' . + _("For the upload please specify the entries in the format \"(HOST,USER,DOMAIN)\". Multiple entries are separated by semicolon.") + ), + 'filter' => array( + "Headline" => _("Filter"), + "Text" => _("Here you can enter a filter value. Only entries which contain the filter text will be shown.") + ) + ); + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'nisnetgroup_cn', + 'description' => _('Group name'), + 'help' => 'cn', + 'example' => _('adminstrators'), + 'required' => true, + 'unique' => true + ), + array( + 'name' => 'nisnetgroup_description', + 'description' => _('Group description'), + 'help' => 'description', + 'example' => _('Administrators group') + ), + array( + 'name' => 'nisnetgroup_subgroups', + 'description' => _('Subgroups'), + 'help' => 'memberNisNetgroup', + 'example' => _('group01,group02') + ), + array( + 'name' => 'nisnetgroup_members', + 'description' => _('Members'), + 'help' => 'membersUpload', + 'example' => _('(host1,user1,example.com);(host2,user2,example.com)') + ) + ); + // available PDF fields + $return['PDF_fields'] = array( + 'cn' => _('Group name'), + 'description' => _('Description'), + 'subgroups' => _('Subgroups'), + 'members' => _('Members') + ); + return $return; + } + + /** + * This function fills the $messages variable with output messages from this module. + */ + function load_Messages() { + $this->messages['cn'][0] = array('ERROR', _('Group name'), _('Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['user'][0] = array('ERROR', _('User name'), _('User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['host'][0] = array('ERROR', _('Host name'), _('Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['domain'][0] = array('ERROR', _('Domain name'), _('Domain name is invalid!')); + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + function save_attributes() { + $return = $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig); + // nisNetgroupTriple needs special changing + if (isset($return[$this->getAccountContainer()->dn_orig]['remove']['nisNetgroupTriple'])) { + $return[$this->getAccountContainer()->dn_orig]['modify']['nisNetgroupTriple'] = $this->attributes['nisNetgroupTriple']; + unset($return[$this->getAccountContainer()->dn_orig]['remove']['nisNetgroupTriple']); + } + if (isset($return[$this->getAccountContainer()->dn_orig]['add']['nisNetgroupTriple'])) { + $return[$this->getAccountContainer()->dn_orig]['modify']['nisNetgroupTriple'] = $this->attributes['nisNetgroupTriple']; + unset($return[$this->getAccountContainer()->dn_orig]['add']['nisNetgroupTriple']); + } + return $return; + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $return = new htmlTable(); + // user name + $groupName = ''; + if (isset($this->attributes['cn'][0])) $groupName = $this->attributes['cn'][0]; + $nameInput = new htmlTableExtendedInputField(_("Group name"), 'cn', $groupName, 'cn'); + $nameInput->setRequired(true); + $nameInput->setFieldMaxLength(20); + $return->addElement($nameInput, true); + $description = ''; + if (isset($this->attributes['description'][0])) $description = $this->attributes['description'][0]; + $return->addElement(new htmlTableExtendedInputField(_('Description'), 'description', $description, 'description'), true); + $subgroupsContainer = new htmlTable(); + if (isset($this->attributes['memberNisNetgroup']) && is_array($this->attributes['memberNisNetgroup'])) { + $membergroups = $this->attributes['memberNisNetgroup']; + while (sizeof($membergroups) > 0) { + $parts = array_splice($membergroups, 0, 8); + $subgroupsContainer->addElement(new htmlOutputText(implode(', ', $parts)), true); + } + } + $subgroupsContainer->addElement(new htmlAccountPageButton(get_class($this), 'group', 'open', _('Edit subgroups'))); + $subgroupsLabel = new htmlOutputText(_('Subgroups')); + $subgroupsLabel->alignment = htmlElement::ALIGN_TOP; + $return->addElement($subgroupsLabel); + $return->addElement($subgroupsContainer); + $return->addElement(new htmlHelpLink('memberNisNetgroup'), true); + $return->addElement(new htmlSpacer(null, '10px'), true); + // members + $memberTable = new htmlTable(); + $hostLabel = new htmlOutputText(_('Host')); + $hostLabel->colspan = 2; + $memberTable->addElement($hostLabel); + $userLabel = new htmlOutputText(_('User')); + $userLabel->colspan = 2; + $memberTable->addElement($userLabel); + $memberTable->addElement(new htmlOutputText(_('Domain'))); + $memberTable->addElement(new htmlSpacer('5px', null)); + $memberTable->addElement(new htmlHelpLink('members'), true); + if (isset($this->attributes['nisNetgroupTriple']) && (sizeof($this->attributes['nisNetgroupTriple']) > 0)) { + for ($i = 0; $i < sizeof($this->attributes['nisNetgroupTriple']); $i++) { + $triple = substr($this->attributes['nisNetgroupTriple'][$i], 1, strlen($this->attributes['nisNetgroupTriple'][$i]) - 2); + $triple = explode(',', $triple); + if (isset($_POST['form_subpage_nisnetgroup_attributes_select']) && ($_POST['type'] == 'host') && ($_POST['position'] == strval($i))) { + $triple[0] = $_POST['selectBox']; + } + if (isset($_POST['form_subpage_nisnetgroup_attributes_select']) && ($_POST['type'] == 'user') && ($_POST['position'] == strval($i))) { + $triple[1] = $_POST['selectBox']; + } + $hostField = new htmlInputField('host_' . $i, $triple[0]); + $hostField->setFieldSize(20); + $memberTable->addElement($hostField); + $hostButton = new htmlAccountPageButton(get_class($this), 'select', 'host' . $i, 'host.png', true); + $hostButton->setTitle(_('Select host')); + $memberTable->addElement($hostButton); + $userField = new htmlInputField('user_' . $i, $triple[1]); + $userField->setFieldSize(20); + $memberTable->addElement($userField); + $userButton = new htmlAccountPageButton(get_class($this), 'select', 'user' . $i, 'user.png', true); + $userButton->setTitle(_('Select user')); + $memberTable->addElement($userButton); + $domainField = new htmlInputField('domain_' . $i, $triple[2]); + $domainField->setFieldSize(20); + $memberTable->addElement($domainField); + $memberTable->addElement(new htmlSpacer('5px', null)); + $delButton = new htmlButton('del_' . $i, 'del.png', true); + $delButton->setTitle(_('Delete')); + $memberTable->addElement($delButton); + $memberTable->addNewLine(); + } + } + $memberTable->addElement(new htmlSpacer(null, '10px'), true); + $hostNew = ''; + $userNew = ''; + $domainNew = ''; + if (isset($_POST['host_new'])) $hostNew = $_POST['host_new']; + if (isset($_POST['user_new'])) $userNew = $_POST['user_new']; + if (isset($_POST['domain_new'])) $domainNew = $_POST['domain_new']; + $hostField = new htmlInputField('host_new', $hostNew); + $hostField->setFieldSize(20); + $memberTable->addElement($hostField); + $hostButton = new htmlAccountPageButton(get_class($this), 'select', 'hostNew', 'host.png', true); + $hostButton->setTitle(_('Select host')); + $memberTable->addElement($hostButton); + $userField = new htmlInputField('user_new', $userNew); + $userField->setFieldSize(20); + $memberTable->addElement($userField); + $userButton = new htmlAccountPageButton(get_class($this), 'select', 'userNew', 'user.png', true); + $userButton->setTitle(_('Select user')); + $memberTable->addElement($userButton); + $domainField = new htmlInputField('domain_new', $domainNew); + $domainField->setFieldSize(20); + $memberTable->addElement($domainField); + $memberTable->addElement(new htmlSpacer('5px', null)); + $addButton = new htmlButton('add_new', 'add.png', true); + $addButton->setTitle(_('Add')); + $memberTable->addElement($addButton); + $memberTable->colspan = 2; + + $membersLabel = new htmlOutputText(_('Members')); + $membersLabel->alignment = htmlElement::ALIGN_TOP; + $return->addElement($membersLabel); + $return->addElement($memberTable); + return $return; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + $errors = array(); + // user name + $this->attributes['cn'][0] = $_POST['cn']; + if ( !get_preg($this->attributes['cn'][0], 'groupname')) { + $errors[] = $this->messages['cn'][0]; + } + // description + $this->attributes['description'][0] = $_POST['description']; + // members + $this->attributes['nisNetgroupTriple'] = array(); + $i = 0; + while (isset($_POST['host_' . $i]) || isset($_POST['user_' . $i]) || isset($_POST['domain_' . $i])) { + if (isset($_POST['del_' . $i])) { + $i++; + continue; + } + // build NIS triple + $this->attributes['nisNetgroupTriple'][] = '(' . $_POST['host_' . $i] . ',' . $_POST['user_' . $i] . ',' . $_POST['domain_' . $i] . ')'; + // check user input + if (($_POST['host_' . $i] != '') && !get_preg($_POST['host_' . $i], 'DNSname')) { + $message = $this->messages['host'][0]; + $message[2] = $message[2] . '

    ' . $_POST['host_' . $i]; + $errors[] = $message; + } + if (($_POST['user_' . $i] != '') && !get_preg($_POST['user_' . $i], 'username')) { + $message = $this->messages['user'][0]; + $message[2] = $message[2] . '

    ' . $_POST['user_' . $i]; + $errors[] = $message; + } + if (($_POST['domain_' . $i] != '') && !get_preg($_POST['domain_' . $i], 'DNSname')) { + $message = $this->messages['domain'][0]; + $message[2] = $message[2] . '

    ' . $_POST['domain_' . $i]; + $errors[] = $message; + } + $i++; + } + $addNewTriple = isset($_POST['add_new']); + // check user input + if (($_POST['host_new'] != '') && !get_preg($_POST['host_new'], 'DNSname')) { + $message = $this->messages['host'][0]; + $message[2] = $message[2] . '

    ' . $_POST['host_new']; + $errors[] = $message; + $addNewTriple = false; + } + if (($_POST['user_new'] != '') && !get_preg($_POST['user_new'], 'username')) { + $message = $this->messages['user'][0]; + $message[2] = $message[2] . '

    ' . $_POST['user_new']; + $errors[] = $message; + $addNewTriple = false; + } + if (($_POST['domain_new'] != '') && !get_preg($_POST['domain_new'], 'DNSname')) { + $message = $this->messages['domain'][0]; + $message[2] = $message[2] . '

    ' . $_POST['domain_new']; + $errors[] = $message; + $addNewTriple = false; + } + if ($addNewTriple) { + $this->attributes['nisNetgroupTriple'][] = '(' . $_POST['host_new'] . ',' . $_POST['user_new'] . ',' . $_POST['domain_new'] . ')'; + unset($_POST['host_new']); + unset($_POST['user_new']); + unset($_POST['domain_new']); + } + return $errors; + } + + /** + * Displays the group selection. + * + * @return htmlElement meta HTML code + */ + function display_html_group() { + // load list with all groups + $allGroups = $this->getGroupList(); + // remove own entry + if (!$this->getAccountContainer()->isNewAccount) { + $allGroups = array_delete($this->attributes['cn'][0], $allGroups); + } + $subgroups = array(); + if (is_array($this->attributes['memberNisNetgroup'])) { + $subgroups = $this->attributes['memberNisNetgroup']; + $allGroups = array_delete($subgroups, $allGroups); + } + $return = new htmlTable(); + $return->addElement(new htmlSubTitle(_("Subgroups")), true); + $return->addElement(new htmlOutputText(_("Selected groups"))); + $return->addElement(new htmlOutputText('')); + $return->addElement(new htmlOutputText(_("Available groups"))); + $return->addNewLine(); + $selGroupSelect = new htmlSelect('removegroups', $subgroups, array(), 15); + $selGroupSelect->setMultiSelect(true); + $return->addElement($selGroupSelect); + $buttonContainer = new htmlTable(); + $buttonContainer->addElement(new htmlButton('addgroups_button', 'back.gif', true), true); + $buttonContainer->addElement(new htmlButton('removegroups_button', 'forward.gif', true), true); + $buttonContainer->addElement(new htmlHelpLink('memberNisNetgroup')); + $return->addElement($buttonContainer); + $availGroupSelect = new htmlSelect('addgroups', $allGroups, array(), 15); + $availGroupSelect->setMultiSelect(true); + $return->addElement($availGroupSelect); + $return->addNewLine(); + $backButton = new htmlAccountPageButton(get_class($this), 'attributes', 'back', _('Back')); + $backButton->colspan = 3; + $return->addElement($backButton); + return $return; + } + + /** + * Processes user input of the group selection page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_group() { + if (isset($_POST['addgroups']) && isset($_POST['addgroups_button'])) { // Add groups to list + if (!is_array($this->attributes['memberNisNetgroup'])) { + $this->attributes['memberNisNetgroup'] = array(); + } + // Add new group + $this->attributes['memberNisNetgroup'] = @array_merge($this->attributes['memberNisNetgroup'], $_POST['addgroups']); + } + elseif (isset($_POST['removegroups']) && isset($_POST['removegroups_button'])) { // remove groups from list + $this->attributes['memberNisNetgroup'] = array_delete($_POST['removegroups'], $this->attributes['memberNisNetgroup']); + } + return array(); + } + + /** + * Displays the host/user selection. + * + * @return htmlElement meta HTML code + */ + function display_html_select() { + $return = new htmlTable(); + $selectHost = true; + $postKeys = array_keys($_POST); + $position = 'New'; + $filterButtonName = ''; + $filter = ''; + if (isset($_POST['filter'])) { + $filter = $_POST['filter']; + } + for ($i = 0; $i < sizeof($postKeys); $i++) { + if (substr($postKeys[$i], 0, 36) == 'form_subpage_nisnetgroup_select_user') { + $selectHost = false; + $position = substr($postKeys[$i], 36); + $filterButtonName = $postKeys[$i]; + break; + } + if (substr($postKeys[$i], 0, 36) == 'form_subpage_nisnetgroup_select_host') { + $position = substr($postKeys[$i], 36); + $filterButtonName = $postKeys[$i]; + break; + } + } + $options = array(); + if ($selectHost) { + // load list with all hosts + $options = $this->getHostList(); + $count = sizeof($options); + for ($i = 0; $i < $count; $i++) { + if (!get_preg($options[$i], 'DNSname') || (($filter != '') && (strpos($options[$i], $filter) === false))) { + unset($options[$i]); + } + } + $options = array_values($options); + } + else { + // load list with all users + $options = $this->getUserList(); + $count = sizeof($options); + for ($i = 0; $i < $count; $i++) { + if (($filter != '') && (strpos($options[$i], $filter) === false)) { + unset($options[$i]); + } + } + $options = array_values($options); + } + $return->addElement(new htmlOutputText(_('Filter'))); + $return->addElement(new htmlInputField('filter', $filter)); + $return->addElement(new htmlButton($filterButtonName, _('Ok'))); + $return->addElement(new htmlHelpLink('filter'), true); + $title = _('Host name'); + if (!$selectHost) $title = _('User name'); + $return->addElement(new htmlOutputText($title)); + $return->addElement(new htmlSelect('selectBox', $options), true); + $return->addElement(new htmlSpacer(null, '10px'), true); + $type = 'host'; + if (!$selectHost) $type = 'user'; + $buttonContainer = new htmlTable(); + $buttonContainer->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'select', _('Ok'))); + $buttonContainer->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'back', _('Cancel'))); + $buttonContainer->colspan = 4; + $return->addElement($buttonContainer, true); + $return->addElement(new htmlHiddenInput('host_new', $_POST['host_new'])); + $return->addElement(new htmlHiddenInput('user_new', $_POST['user_new'])); + $return->addElement(new htmlHiddenInput('domain_new', $_POST['domain_new'])); + $return->addElement(new htmlHiddenInput('type', $type)); + $return->addElement(new htmlHiddenInput('position', $position)); + return $return; + } + + /** + * Processes user input of the host/user selection page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_select() { + if (isset($_POST['form_subpage_nisnetgroup_attributes_back'])) { + return array(); + } + if ($_POST['position'] == 'New') { + $_POST[$_POST['type'] . '_new'] = $_POST['selectBox']; + } + return array(); + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + // get list of existing groups + $existingGroups = $this->getGroupList(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array('nisNetgroup', $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = 'nisNetgroup'; + // add cn + $partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['nisnetgroup_cn']]; + // description (UTF-8, no regex check needed) + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'nisnetgroup_description', 'description'); + // additional groups + if ($rawAccounts[$i][$ids['nisnetgroup_subgroups']] != "") { + $groups = explode(",", $rawAccounts[$i][$ids['nisnetgroup_subgroups']]); + $skipSubgroups = false; + for ($g = 0; $g < sizeof($groups); $g++) { + if (!in_array($groups[$g], $existingGroups)) { + $messages[] = array('ERROR', _('Unable to find group in LDAP.'), $groups[$g]); + $skipSubgroups = true; + } + } + if (!$skipSubgroups) { + $partialAccounts[$i]['memberNisNetgroup'] = $groups; + } + } + // members + if ($rawAccounts[$i][$ids['nisnetgroup_members']] != "") { + $members = explode(';', $rawAccounts[$i][$ids['nisnetgroup_members']]); + $partialAccounts[$i]['nisNetgroupTriple'] = $members; + } + } + return $messages; + } + + /** + * This functions is used to check if all settings for this module have been made. + * + * @return boolean true, if settings are complete + */ + function module_complete() { + if (isset($this->attributes['cn']) && (sizeof($this->attributes['cn']) > 0)) { + return true; + } + else { + return false; + } + } + + /** + * Returns a list of PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'cn', _('Group name')); + $this->addSimplePDFField($return, 'description', _('Description')); + $this->addSimplePDFField($return, 'subgroups', _('Subgroups'), 'memberNisNetgroup'); + if (sizeof($this->attributes['nisNetgroupTriple']) > 0) { + $return[get_class($this) . '_members'] = array('' . _('Members') . ''); + $return[get_class($this) . '_members'][] = '' . + '' . _('Host') . '' . + '' . _('User') . '' . + '' . _('Domain') . '' . + ''; + for ($i = 0; $i < sizeof($this->attributes['nisNetgroupTriple']); $i++) { + $triple = substr($this->attributes['nisNetgroupTriple'][$i], 1, strlen($this->attributes['nisNetgroupTriple'][$i]) - 2); + $triple = explode(',', $triple); + $return[get_class($this) . '_members'][] = '' . + '' . $triple[0] . ' ' . + '' . $triple[1] . ' ' . + '' . $triple[2] . ' ' . + ''; + } + $return[get_class($this) . '_members'][] = ' '; + } + return $return; + } + + /** + * Returns a list of existing NIS net groups. + * + * @return array group names + */ + private function getGroupList() { + if ($this->cachedGroupList != null) { + return $this->cachedGroupList; + } + $this->cachedGroupList = searchLDAPByAttribute('cn', '*', 'nisNetgroup', array('cn'), array('netgroup')); + for ($i = 0; $i < sizeof($this->cachedGroupList); $i++) { + $this->cachedGroupList[$i] = $this->cachedGroupList[$i]['cn'][0]; + } + return $this->cachedGroupList; + } + + /** + * Returns a list of existing users. + * + * @return array user names + */ + private function getUserList() { + if ($this->cachedUserList != null) { + return $this->cachedUserList; + } + $this->cachedUserList = searchLDAPByAttribute('uid', '*', 'posixAccount', array('uid'), array('user')); + for ($i = 0; $i < sizeof($this->cachedUserList); $i++) { + $this->cachedUserList[$i] = $this->cachedUserList[$i]['uid'][0]; + } + return $this->cachedUserList; + } + + /** + * Returns a list of existing hosts. + * + * @return array host names + */ + private function getHostList() { + if ($this->cachedHostList != null) { + return $this->cachedHostList; + } + $this->cachedHostList = array(); + $list = searchLDAPByFilter('(|(objectClass=account)(objectClass=device))', array('uid', 'cn'), array('host')); + foreach ($list as $attrs) { + if (!empty($attrs['uid'][0])) { + $this->cachedHostList[] = $attrs['uid'][0]; + } + if (!empty($attrs['cn'][0])) { + $this->cachedHostList[] = $attrs['cn'][0]; + } + } + $this->cachedHostList = array_values(array_unique($this->cachedHostList)); + return $this->cachedHostList; + } + +} + + +?> diff --git a/lam/lib/modules/posixAccount.inc b/lam/lib/modules/posixAccount.inc new file mode 100644 index 00000000..47bc8579 --- /dev/null +++ b/lam/lib/modules/posixAccount.inc @@ -0,0 +1,3194 @@ + 'ae', 'Ä' => 'Ae', 'ö' => 'oe', 'Ö' => 'Oe', 'ü' => 'ue', 'Ü' => 'Ue', + 'ß' => 'ss', 'é' => 'e', 'è' => 'e', 'ô' => 'o', 'ç' => 'c' + ); + + /** + * Creates a new windowsPosixGroup object. + * + * @param string $scope account type (user, group, host) + */ + public function __construct($scope) { + // call parent constructor + parent::__construct($scope); + // make optional if needed + $this->autoAddObjectClasses = !$this->isOptional(); + } + + /** + * This function fills the error message array with messages. + **/ + function load_Messages() { + // error messages for input checks + $this->messages['minUID'][0] = array('ERROR', _('Users') . ':  ' . _('Minimum UID number'), _("Minimum UID number is invalid!")); + $this->messages['maxUID'][0] = array('ERROR', _('Users') . ':  ' . _('Maximum UID number'), _("Maximum UID number is invalid!")); + $this->messages['minMachine'][0] = array('ERROR', _('Hosts') . ':  ' . _('Minimum UID number'), _("Minimum UID number is invalid!")); + $this->messages['maxMachine'][0] = array('ERROR', _('Hosts') . ':  ' . _('Maximum UID number'), _("Maximum UID number is invalid!")); + $this->messages['cmp_UID'][0] = array('ERROR', _('Users') . ':  ' . _('Maximum UID number'), _("Maximum UID number must be greater than minimum UID number!")); + $this->messages['cmp_Machine'][0] = array('ERROR', _('Hosts') . ':  ' . _('Maximum UID number'), _("Maximum UID number must be greater than minimum UID number!")); + $this->messages['cmp_both'][0] = array('ERROR', _('UID ranges for Unix accounts'), _("The UID ranges for users and hosts overlap! This is a problem because LAM uses the highest UID in use + 1 for new accounts. Please set the minimum UID to equal values or use independent ranges.")); + $this->messages['homeDirectory'][0] = array('ERROR', _('Home directory'), _('Homedirectory contains invalid characters.')); + $this->messages['homeDirectory'][1] = array('INFO', _('Home directory'), _('Replaced $user or $group in homedir.')); + $this->messages['homeDirectory'][2] = array('ERROR', _('Account %s:') . ' posixAccount_homedir', _('Homedirectory contains invalid characters.')); + $this->messages['homeDirectory'][3] = array('INFO', _('Home directory'), _('Home directory changed. To keep home directory you have to run the following command as root: \'mv %s %s\'')); + $this->messages['uidNumber'][1] = array('ERROR', _('ID-Number'), _('No free ID-Number!')); + $this->messages['uidNumber'][2] = array('WARN', _('ID-Number'), _('It is possible that this ID-number is reused. This can cause several problems because files with old permissions might still exist. To avoid this warning set maxUID to a higher value.')); + $this->messages['uidNumber'][3] = array('ERROR', _('ID-Number'), _('ID is already in use')); + $this->messages['uidNumber'][4] = array('ERROR', _('Account %s:') . ' posixAccount_uid', _('UID must be a number. It has to be inside the UID range which is defined in your configuration profile.')); + $this->messages['uidNumber'][5] = array('INFO', _('UID number'), _('UID number has changed. To keep file ownership you have to run the following command as root: \'find / -uid %s -exec chown %s {} \;\'')); + $this->messages['userPassword'][0] = array('ERROR', _('Password'), _('Please enter the same password in both password fields.')); + $this->messages['userPassword'][1] = array('ERROR', _('Password'), _('Password contains invalid characters. Valid characters are:') . ' a-z, A-Z, 0-9 and #*,.;:_-+!%&/|?{[()]}=@$ §°!'); + $this->messages['userPassword'][4] = array('ERROR', _('Account %s:') . ' posixAccount_password', _('Password contains invalid characters. Valid characters are:') . ' a-z, A-Z, 0-9 and #*,.;:_-+!%&/|?{[()]}=@$ §°!'); + $this->messages['uid'][0] = array('INFO', _('UID'), _('UID has changed. Do you want to change home directory?')); + $this->messages['uid'][1] = array('WARN', _('User name'), _('You are using capital letters. This can cause problems because Windows is not case-sensitive.')); + $this->messages['uid'][2] = array('ERROR', _('User name'), _('User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['uid'][3] = array('WARN', _('Host name'), _('You are using capital letters. This can cause problems because Windows is not case-sensitive.')); + $this->messages['uid'][4] = array('ERROR', _('Host name'), _('Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['uid'][5] = array('WARN', _('User name'), _('User name in use. Selected next free user name.')); + $this->messages['uid'][6] = array('WARN', _('Host name'), _('Host name in use. Selected next free host name.')); + $this->messages['uid'][7] = array('ERROR', _('Account %s:') . ' posixAccount_userName', _('User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['uid'][8] = array('ERROR', _('Account %s:') . ' posixAccount_hostName', _('Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['uid'][9] = array('ERROR', _('Account %s:') . ' posixAccount_userName', _('User name already exists!') . ' ' . _('You might want to use %s instead of %s.')); + $this->messages['uid'][10] = array('ERROR', _('Account %s:') . ' posixAccount_hostName', _('Host name already exists!') . ' ' . _('You might want to use %s instead of %s.')); + $this->messages['gidNumber'][0] = array('ERROR', _('Account %s:') . ' posixAccount_group', _('LAM was unable to find a group with this name!')); + $this->messages['gidNumber'][1] = array('ERROR', _('Account %s:') . ' posixAccount_group', _('This GID number is invalid! Please provide either a number or a group name.')); + $this->messages['gidNumber'][2] = array('INFO', _('GID number'), _('GID number has changed. To keep file ownership you have to run the following command as root: \'find / -gid %s -uid %s -exec chgrp %s {} \;\'')); + $this->messages['gecos'][0] = array('ERROR', _('Account %s:') . ' posixAccount_gecos', _('This gecos value is invalid!')); + $this->messages['shell'][0] = array('ERROR', _('Account %s:') . ' posixAccount_shell', _('This login shell is invalid!')); + $this->messages['passwordDisabled'][0] = array('ERROR', _('Account %s:') . ' posixAccount_passwordDisabled', _('This value can only be "true" or "false".')); + $this->messages['cn'][0] = array('ERROR', _('Common name'), _('Please enter a valid common name!')); + $this->messages['cn'][1] = array('ERROR', _('Account %s:') . ' posixAccount_cn', _('Please enter a valid common name!')); + $this->messages['sambaIDPoolDN'][0] = array('ERROR', _('Samba ID pool DN'), _('This is not a valid DN!')); + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('user', 'host')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'tux.png'; + // user specific data + if ($this->get_scope() == "user") { + // LDAP filter + $return["ldap_filter"] = array('or' => "(objectClass=posixAccount)", 'and' => "(!(uid=*$))"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + } + elseif ($this->get_scope() == "host") { + // LDAP filter + $return["ldap_filter"] = array('or' => "(objectClass=posixAccount)"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + } + // alias name + $return["alias"] = _("Unix"); + // RDN attributes + $return["RDN"] = array("uid" => "high", "cn" => "low"); + // managed object classes + $return['objectClasses'] = array('posixAccount'); + // LDAP aliases + $return['LDAPaliases'] = array('commonName' => 'cn', 'userid' => 'uid'); + // managed attributes + $return['attributes'] = array('uid', 'uidNumber', 'gidNumber', $this->getHomedirAttrName(), + $this->getPasswordAttrName(), 'loginShell', 'gecos', 'INFO.userPasswordClearText'); + if ($this->manageCn()) { + $return['attributes'][] = 'cn'; + } + if ($this->get_scope() == "user") { + // self service search attributes + $return['selfServiceSearchAttributes'] = array('uid'); + // self service field settings + $return['selfServiceFieldSettings'] = array('password' => _('Password'), 'cn' => _('Common name'), 'loginShell' => _('Login shell')); + // possible self service read-only fields + $return['selfServiceReadOnlyFields'] = array('cn', 'loginShell'); + // self service configuration settings + $selfServiceContainer = new htmlTable(); + $selfServiceContainer->addElement(new htmlTableExtendedSelect('posixAccount_pwdHash', getSupportedHashTypes(), + array('SSHA'), _("Password hash type"))); + $selfServiceContainer->addElement(new htmlHelpLink('pwdHash', get_class($this)), true); + $selfServiceContainer->addElement(new htmlTableExtendedInputTextarea('posixAccount_shells', implode("\r\n", $this->getShells()), 30, 4, _('Login shells'))); + $loginShellsHelp = new htmlHelpLink('loginShells', get_class($this)); + $loginShellsHelp->alignment = htmlElement::ALIGN_TOP; + $selfServiceContainer->addElement($loginShellsHelp, true); + $return['selfServiceSettings'] = $selfServiceContainer; + } + // profile checks + $return['profile_checks']['posixAccount_homeDirectory'] = array('type' => 'ext_preg', 'regex' => 'homeDirectory', + 'error_message' => $this->messages['homeDirectory'][0]); + // profile mappings + $return['profile_mappings'] = array( + 'posixAccount_homeDirectory' => $this->getHomedirAttrName(), + 'posixAccount_loginShell' => 'loginShell' + ); + // configuration options + $configUserContainer = new htmlTable(); + $configUserContainer->addElement(new htmlSubTitle(_("Users")), true); + $uidGeneratorSelect = new htmlTableExtendedSelect('posixAccount_uidGeneratorUsers', array(_('Fixed range') => 'range', _('Samba ID pool') => 'sambaPool'), array('range'), _('UID generator'), 'uidGenerator'); + $uidGeneratorSelect->setHasDescriptiveElements(true); + $uidGeneratorSelect->setTableRowsToHide(array('range' => array('posixAccount_sambaIDPoolDNUsers'), 'sambaPool' => array('posixAccount_minUID', 'posixAccount_maxUID'))); + $uidGeneratorSelect->setTableRowsToShow(array('range' => array('posixAccount_minUID', 'posixAccount_maxUID'), 'sambaPool' => array('posixAccount_sambaIDPoolDNUsers'))); + $configUserContainer->addElement($uidGeneratorSelect, true); + $uidUsersGeneratorDN = new htmlTableExtendedInputField(_('Samba ID pool DN'), 'posixAccount_sambaIDPoolDNUsers', null, 'sambaIDPoolDN'); + $uidUsersGeneratorDN->setRequired(true); + $configUserContainer->addElement($uidUsersGeneratorDN, true); + $minUid = new htmlTableExtendedInputField(_('Minimum UID number'), 'posixAccount_minUID', null, 'minMaxUser'); + $minUid->setRequired(true); + $configUserContainer->addElement($minUid, true); + $maxUid = new htmlTableExtendedInputField(_('Maximum UID number'), 'posixAccount_maxUID', null, 'minMaxUser'); + $maxUid->setRequired(true); + $configUserContainer->addElement($maxUid, true); + $configUserContainer->addElement(new htmlTableExtendedInputField(_('Suffix for UID/user name check'), 'posixAccount_uidCheckSuffixUser', '', 'uidCheckSuffix'), true); + $return['config_options']['user'] = $configUserContainer; + $configHostContainer = new htmlTable(); + $configHostContainer->addElement(new htmlSubTitle(_("Hosts")), true); + $uidHostGeneratorSelect = new htmlTableExtendedSelect('posixAccount_uidGeneratorHosts', array(_('Fixed range') => 'range', _('Samba ID pool') => 'sambaPool'), array('range'), _('UID generator'), 'uidGenerator'); + $uidHostGeneratorSelect->setHasDescriptiveElements(true); + $uidHostGeneratorSelect->setTableRowsToHide(array('range' => array('posixAccount_sambaIDPoolDNHosts'), 'sambaPool' => array('posixAccount_minMachine', 'posixAccount_maxMachine'))); + $uidHostGeneratorSelect->setTableRowsToShow(array('range' => array('posixAccount_minMachine', 'posixAccount_maxMachine'), 'sambaPool' => array('posixAccount_sambaIDPoolDNHosts'))); + $configHostContainer->addElement($uidHostGeneratorSelect, true); + $uidHostsGeneratorDN = new htmlTableExtendedInputField(_('Samba ID pool DN'), 'posixAccount_sambaIDPoolDNHosts', null, 'sambaIDPoolDN'); + $uidHostsGeneratorDN->setRequired(true); + $configHostContainer->addElement($uidHostsGeneratorDN, true); + $minUid = new htmlTableExtendedInputField(_('Minimum UID number'), 'posixAccount_minMachine', null, 'minMaxHost'); + $minUid->setRequired(true); + $configHostContainer->addElement($minUid, true); + $maxUid = new htmlTableExtendedInputField(_('Maximum UID number'), 'posixAccount_maxMachine', null, 'minMaxHost'); + $maxUid->setRequired(true); + $configHostContainer->addElement($maxUid, true); + $configHostContainer->addElement(new htmlTableExtendedInputField(_('Suffix for UID/user name check'), 'posixAccount_uidCheckSuffixHost', '', 'uidCheckSuffix'), true); + $return['config_options']['host'] = $configHostContainer; + $configOptionsContainer = new htmlTable(); + $configOptionsContainer->addElement(new htmlSubTitle(_('Options')), true); + $configOptionsContainer->addElement(new htmlTableExtendedSelect('posixAccount_pwdHash', getSupportedHashTypes(), + array('SSHA'), _("Password hash type"), 'pwdHash'), true); + $configOptionsContainer->addElement(new htmlTableExtendedInputTextarea('posixAccount_shells', implode("\r\n", $this->getShells()), 30, 4, _('Login shells'), 'loginShells'), true); + $hiddenOptionsContainer = new htmlGroup(); + $hiddenOptionsContainer->colspan = 5; + $hiddenOptionsContainerHead = new htmlTable(); + $hiddenOptionsContainerHead->addElement(new htmlOutputText(_('Hidden options'))); + $hiddenOptionsContainerHead->addElement(new htmlHelpLink('hiddenOptions')); + $hiddenOptionsContainer->addElement($hiddenOptionsContainerHead); + $configContainerOptions = new htmlTable(); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('posixAccount_hidegecos', false, _('Gecos'), null, false)); + if (isset($_SESSION['conf_config'])) { + $confActiveGONModules = array_merge($_SESSION['conf_config']->get_AccountModules('group'), $_SESSION['conf_config']->get_AccountModules('gon')); + if (in_array('groupOfNames', $confActiveGONModules) || in_array('groupOfUniqueNames', $confActiveGONModules)) { + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('posixAccount_hidegon', false, _('Groups of names'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('posixAccount_hideposixGroups', false, _('Unix groups'), null, false)); + } + } + $hiddenOptionsContainer->addElement($configContainerOptions); + $configOptionsContainer->addElement($hiddenOptionsContainer, true); + $advancedOptions = new htmlTable(); + $advancedOptions->addElement(new htmlTableExtendedInputCheckbox('posixAccount_primaryGroupAsSecondary', false, _('Set primary group as memberUid'), 'primaryGroupAsSecondary'), true); + $advancedOptions->addElement(new htmlTableExtendedInputField(_('User name suggestion'), 'posixAccount_userNameSuggestion', '@givenname@%sn%', 'userNameSuggestion')); + $advancedOptionsAccordion = new htmlAccordion('posixAccountAdvancedOptions', array(_('Advanced options') => $advancedOptions), false); + $advancedOptionsAccordion->colspan = 5; + $configOptionsContainer->addElement($advancedOptionsAccordion); + + $return['config_options']['all'] = $configOptionsContainer; + // upload + $return['upload_preDepends'] = array('inetOrgPerson'); + // user specific upload options + if (($this->get_scope() == 'user') && isset($_SESSION['loggedIn']) && ($_SESSION['loggedIn'] === true)) { + $return['upload_columns'] = array( + array( + 'name' => 'posixAccount_userName', + 'description' => _('User name'), + 'help' => 'uid', + 'example' => _('smiller'), + 'required' => true, + 'unique' => true + ), + array( + 'name' => 'posixAccount_uid', + 'description' => _('UID number'), + 'help' => 'uidNumber', + 'example' => '1234' + ), + array( + 'name' => 'posixAccount_group', + 'description' => _('Primary group'), + 'help' => 'group_upload', + 'example' => _('users'), + 'required' => true + ), + array( + 'name' => 'posixAccount_additionalGroups', + 'description' => _('Additional groups'), + 'help' => 'addgroup_upload', + 'example' => _('group01,group02') + ), + array( + 'name' => 'posixAccount_homedir', + 'description' => _('Home directory'), + 'help' => 'homeDirectory_upload', + 'example' => _('/home/smiller'), + 'default' => '/home/{posixAccount_userName}' + ), + array( + 'name' => 'posixAccount_createHomeDir', + 'description' => _('Create home directory'), + 'help' => 'createhomedir', + 'example' => 'localhost', + 'values' => $_SESSION['config']->get_scriptServers() + ), + array( + 'name' => 'posixAccount_shell', + 'description' => _('Login shell'), + 'help' => 'loginShell', + 'example' => '/bin/bash', + 'values' => implode(", ", $this->getShells()), + 'default' => '/bin/bash' + ), + array( + 'name' => 'posixAccount_password', + 'description' => _('Password'), + 'help' => 'userPassword', + 'example' => _('secret') + ), + array( + 'name' => 'posixAccount_passwordDisabled', + 'description' => _('Lock password'), + 'help' => 'userPassword_lock', + 'example' => 'false', + 'values' => 'true, false', + 'default' => 'false' + ), + ); + if ($this->manageCn()) { + array_unshift($return['upload_columns'], array( + 'name' => 'posixAccount_cn', + 'description' => _('Common name'), + 'help' => 'cn', + 'example' => _('Steve Miller') + )); + } + if (!$this->isBooleanConfigOptionSet('posixAccount_hidegecos')) { + $return['upload_columns'][] = array( + 'name' => 'posixAccount_gecos', + 'description' => _('Gecos'), + 'help' => 'gecos', + 'example' => _('Steve Miller,Room 2.14,123-123-1234,123-123-1234') + ); + } + if (self::areGroupOfNamesActive()) { + $return['upload_columns'][] = array( + 'name' => 'posixAccount_gon', + 'description' => _('Groups of names'), + 'help' => 'addgroup_upload', + 'example' => _('group01,group02') + ); + } + } + // host specific upload options + elseif ($this->get_scope() == 'host') { + $return['upload_columns'] = array( + array( + 'name' => 'posixAccount_hostName', + 'description' => _('Host name'), + 'help' => 'uid', + 'example' => _('pc01$'), + 'required' => true, + 'unique' => true + ), + array( + 'name' => 'posixAccount_uid', + 'description' => _('UID number'), + 'help' => 'uidNumber', + 'example' => '1234' + ), + array( + 'name' => 'posixAccount_group', + 'description' => _('Primary group'), + 'help' => 'group_upload', + 'example' => _('machines'), + 'required' => true + ), + ); + if (!$this->isBooleanConfigOptionSet('posixAccount_hidegecos')) { + $return['upload_columns'][] = array( + 'name' => 'posixAccount_gecos', + 'description' => _('Gecos'), + 'help' => 'gecos', + 'example' => _('pc01,Room 2.34') + ); + } + } + // available PDF fields + if ($this->get_scope() == 'host') { + $return['PDF_fields'] = array('uid' => _('Host name')); + } + else { + $return['PDF_fields'] = array('uid' => _('User name')); + } + $return['PDF_fields'] = array_merge($return['PDF_fields'], array( + 'uidNumber' => _('UID number'), + 'gidNumber' => _('GID number'), + 'primaryGroup' => _('Primary group'), + 'additionalGroups' => _('Additional groups'), + 'homeDirectory' => _('Home directory'), + 'loginShell' => _('Login shell'), + 'userPassword' => _('Password') + )); + if ($this->manageCn()) { + $return['PDF_fields']['cn'] = _('Common name'); + } + if (!$this->isBooleanConfigOptionSet('posixAccount_hidegecos')) { + $return['PDF_fields']['gecos'] = _('Gecos'); + } + if (self::areGroupOfNamesActive()) { + $return['PDF_fields']['gon'] = _('Groups of names'); + } + // help Entries + $return['help'] = array( + 'autoAdd' => array( + "Headline" => _("Automatically add this extension"), + "Text" => _("This will enable the extension automatically if this profile is loaded.") + ), + 'userNameSuggestion' => array( + "Headline" => _("User name suggestion"), + "Text" => _("LAM will suggest a user name based on e.g. first and last name. Here you can specify the suggestion. %sn% will be replaced by the last name. @givenname@ will be replaced by the first character of first name. Only attributes of tab Personal may be used.") + . '
    ' . _('Common examples are "@givenname@%sn%" or "%givenname%.%sn%".') + ), + 'hiddenOptions' => array( + "Headline" => _("Hidden options"), + "Text" => _("The selected options will not be managed inside LAM. You can use this to reduce the number of displayed input fields.") + ), + 'primaryGroupAsSecondary' => array( + 'Headline' => _('Set primary group as memberUid'), + 'Text' => _('Usually, users are not added to groups as memberUid if they have this group as primary group. If your application ignores primary groups then you can select this option to override this behaviour.') + ), + 'minMaxUser' => array( + 'Headline' => _('UID number'), + 'Text' => _('These are the minimum and maximum numbers to use for user IDs when creating new user accounts. The range should be different from that of machines. New user accounts will always get the highest number in use plus one.') + ), + 'minMaxHost' => array( + 'Headline' => _('UID number'), + 'Text' => _('These are the minimum and maximum numbers to use for machine IDs when creating new accounts for hosts. The range should be different from that of users. New host accounts will always get the highest number in use plus one.') + ), + 'pwdHash' => array( + "Headline" => _("Password hash type"), + "Text" => _("LAM supports CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 and SMD5 to generate the hash value of passwords. SSHA and CRYPT are the most common but CRYPT does not support passwords greater than 8 letters. We do not recommend to use plain text passwords.") + ), + 'uidNumber' => array( + "Headline" => _("UID number"), 'attr' => 'uidNumber', + "Text" => _("If empty UID number will be generated automaticly.") + ), + 'group_upload' => array( + "Headline" => _("Primary group"), + "Text" => _("The primary group for this account. You can insert a GID number or a group name.") + ), + 'addgroup_upload' => array( + "Headline" => _("Additional groups"), + "Text" => _("Here you can enter a list of additional group memberships. The group names are separated by commas.") + ), + 'homeDirectory_upload' => array( + "Headline" => _("Home directory"), 'attr' => $this->getHomedirAttrName(), + "Text" => _("Please enter the path to the user's home directory.") + ), + 'deletehomedir' => array( + "Headline" => _("Home directory"), + "Text" => _("Activating this checkbox will remove the user's home directory.") + ), + 'createhomedir' => array( + "Headline" => _("Home directory"), + "Text" => _("This will create the user's home directory on the specified server.") + ), + 'deleteSudoers' => array( + "Headline" => _("Delete sudo rights"), + "Text" => _("Deletes the user from all existing sudo rights.") + ), + 'uidCheckSuffix' => array ( + "Headline" => _("Suffix for UID/user name check"), + "Text" => _("LAM checks if the entered user name and UID are unique. Here you can enter the LDAP suffix that is used to search for duplicates. By default the account type suffix is used. You only need to change this if you use multiple server profiles with different OUs but need unique user names or UIDs.") + ), + 'loginShells' => array( + "Headline" => _("Login shells"), + "Text" => _("This is the list of valid login shells.") + ), + 'uidGenerator' => array ( + "Headline" => _("UID generator"), + "Text" => _("LAM will automatically suggest UID/GID numbers. You can either use a fixed range of numbers or an LDAP entry with object class \"sambaUnixIdPool\".") + ), + 'sambaIDPoolDN' => array ( + "Headline" => _("Samba ID pool DN"), + "Text" => _("Please enter the DN of the LDAP entry with object class \"sambaUnixIdPool\".") + ), + 'user' => array( + 'uid' => array( + "Headline" => _("User name"), 'attr' => 'uid', + "Text" => _("User name of the user who should be created. Valid characters are: a-z,A-Z,0-9, @.-_. If user name is already used user name will be expanded with a number. The next free number will be used.") + ), + 'gecos' => array( + "Headline" => _("Gecos"), + "Text" => _("User description. If left empty first and last name will be used.") + ), + 'gidNumber' => array( + "Headline" => _("Primary group"), 'attr' => 'gidNumber', + "Text" => _("The primary group the user should be member of.") + ), + 'homeDirectory' => array( + "Headline" => _("Home directory"), 'attr' => $this->getHomedirAttrName(), + "Text" => _('$user and $group will be replaced with user name and primary group name.') + ), + 'userPassword' => array( + "Headline" => _("Password"), + "Text" => _("Please enter the password which you want to set for this account.") + ), + 'userPassword_lock' => array( + "Headline" => _("Account deactivated"), + "Text" => _("If checked account will be deactivated by putting a \"!\" before the encrypted password.") + ), + 'loginShell' => array( + "Headline" => _("Login shell"), + "Text" => _("To disable login use /bin/false.") + ), + 'addgroup' => array( + "Headline" => _("Additional groups"), + "Text" => _("Hold the CTRL-key to (de)select multiple groups."). ' '. _("Can be left empty.") + ), + 'cn' => array ( + "Headline" => _("Common name"), 'attr' => 'cn', + "Text" => _("This is the natural name of the user. If empty, the first and last name or user name is used.") + ) + ), + 'host' => array( + 'uid' => array( + "Headline" => _("Host name"), 'attr' => 'uid', + "Text" => _("Host name of the host which should be created. Valid characters are: a-z,A-Z,0-9, .-_$. Host names are always ending with $. If last character is not $ it will be added. If host name is already used host name will be expanded with a number. The next free number will be used.") + ), + 'gecos' => array( + "Headline" => _("Gecos"), + "Text" => _("Host description. If left empty host name will be used.") + ), + 'gidNumber' => array( + "Headline" => _("Primary group"), 'attr' => 'gidNumber', + "Text" => _("The primary group the host should be member of.") + ), + 'description' => array ( + "Headline" => _("Description"), + "Text" => _("Host description. If left empty host name will be used.") + ), + 'cn' => array ( + "Headline" => _("Common name"), 'attr' => 'cn', + "Text" => _("This is the natural name of the host. If empty, the host name will be used.") + ) + ) + ); + + return $return; + } + + /** + * Initializes the module after it became part of an accountContainer + * + * @param string $base the name of the accountContainer object ($_SESSION[$base]) + */ + function init($base) { + // call parent init + parent::init($base); + $this->groups = array(); + $this->groups_orig = array(); + $groups = $this->findGroups(); // list of all groupnames + if (count($groups)==0) { + StatusMessage("ERROR", _('No Unix groups found in LDAP! Please create one first.'), ''); + return; + } + $this->gonList = array(); + $this->gonList_orig = array(); + } + + /** + * This functions is used to check if all settings for this module have been made. + * + * @return boolean true, if settings are complete + */ + function module_complete() { + if (!isset($this->attributes['objectClass']) || !in_array('posixAccount', $this->attributes['objectClass'])) { + // no checks if object class is not set + return true; + } + if (!isset($this->attributes['uid'][0]) || ($this->attributes['uid'][0] == '')) return false; + if (!isset($this->attributes['uidNumber'][0]) || ($this->attributes['uidNumber'][0] == '')) return false; + if (!isset($this->attributes['gidNumber'][0]) || ($this->attributes['gidNumber'][0] == '')) return false; + if (!isset($this->attributes[$this->getHomedirAttrName()][0]) || ($this->attributes[$this->getHomedirAttrName()][0] == '')) return false; + if (!isset($this->attributes['loginShell'][0]) || ($this->attributes['loginShell'][0] == '')) return false; + return true; + } + + /** + * This function loads all needed LDAP attributes. + * + * @param array $attr list of attributes + */ + function load_attributes($attr) { + parent::load_attributes($attr); + $typeSettings = $_SESSION['config']->get_typeSettings(); + // get additional group memberships + if (!isset($attr['uid'][0])) { + return; + } + $groupFilter = '(&(objectClass=posixGroup)(memberUid=' . $attr['uid'][0] . '))'; + if (!empty($typeSettings['filter_group'])) { + $typeFilter = $typeSettings['filter_group']; + if (strpos($typeFilter, '(') !== 0) { + $typeFilter = '(' . $typeFilter . ')'; + } + $groupFilter = '(&' . $groupFilter . $typeFilter . ')'; + } + $groupList = searchLDAPByFilter($groupFilter, array('cn'), array('group')); + for ($i = 0; $i < sizeof($groupList); $i++) { + $this->groups[] = $groupList[$i]['cn'][0]; + } + $this->groups_orig = $this->groups; + // get additional group of names memberships + if (self::areGroupOfNamesActive()) { + $types = array('gon', 'group'); + $gonList = array(); + foreach ($types as $type) { + $gonFilter = '(|(&(objectClass=groupOfNames)(member=' . $this->getAccountContainer()->dn_orig . '))(&(objectClass=groupOfUniqueNames)(uniqueMember=' . $this->getAccountContainer()->dn_orig . ')))'; + if (!empty($typeSettings['filter_' . $type])) { + $typeFilter = $typeSettings['filter_' . $type]; + if (strpos($typeFilter, '(') !== 0) { + $typeFilter = '(' . $typeFilter . ')'; + } + $gonFilter = '(&' . $gonFilter . $typeFilter . ')'; + } + $gonListPart = searchLDAPByFilter($gonFilter, array('dn'), array($type)); + $gonList = array_merge($gonList, $gonListPart); + } + $this->gonList_orig = array(); + for ($i = 0; $i < sizeof($gonList); $i++) { + $this->gonList_orig[] = $gonList[$i]['dn']; + } + $this->gonList_orig = array_values(array_unique($this->gonList_orig)); + $this->gonList = $this->gonList_orig; + } + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + function save_attributes() { + $return = $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig); + if (!in_array('posixAccount', $this->attributes['objectClass']) && !in_array('posixAccount', $this->orig['objectClass'])) { + // skip saving if the extension was not added/modified + return array(); + } + // add information about clear text password and password status change + $return[$this->getAccountContainer()->dn_orig]['info']['userPasswordClearText'][0] = $this->clearTextPassword; + $pwdAttrName = $this->getPasswordAttrName(); + if (isset($this->orig[$pwdAttrName][0]) && isset($this->attributes[$pwdAttrName][0])) { + if ((pwd_is_enabled($this->orig[$pwdAttrName][0]) && pwd_is_enabled($this->attributes[$pwdAttrName][0])) + || (!pwd_is_enabled($this->orig[$pwdAttrName][0]) && !pwd_is_enabled($this->attributes[$pwdAttrName][0]))) { + $return[$this->getAccountContainer()->dn_orig]['info']['userPasswordStatusChange'][0] = 'unchanged'; + } + elseif (pwd_is_enabled($this->orig[$pwdAttrName][0])) { + $return[$this->getAccountContainer()->dn_orig]['info']['userPasswordStatusChange'][0] = 'locked'; + } + else { + $return[$this->getAccountContainer()->dn_orig]['info']['userPasswordStatusChange'][0] = 'unlocked'; + } + } + if (in_array('posixAccount', $this->attributes['objectClass'])) { + // Remove primary group from additional groups + if (!isset($this->moduleSettings['posixAccount_primaryGroupAsSecondary'][0]) + || ($this->moduleSettings['posixAccount_primaryGroupAsSecondary'][0] != 'true')) { + for ($i=0; $igroups); $i++) { + if ($this->groups[$i] == $this->getGroupName($this->attributes['gidNumber'][0])) { + unset($this->groups[$i]); + } + } + } + else { + // add user as memberuid in primary group + if (!in_array($this->getGroupName($this->attributes['gidNumber'][0]), $this->groups)) { + $this->groups[] = $this->getGroupName($this->attributes['gidNumber'][0]); + } + } + + // Set additional group memberships + if (isset($this->orig['uid'][0]) && ($this->orig['uid'][0] != '') && ($this->attributes['uid'][0] != $this->orig['uid'][0])) { + // find affected groups + $groupList = searchLDAPByAttribute('memberUid', $this->orig['uid'][0], 'posixGroup', array('dn'), array('group')); + for ($i = 0; $i < sizeof($groupList); $i++) { + // replace old user name with new one + $return[$groupList[$i]['dn']]['remove']['memberUid'][] = $this->orig['uid'][0]; + $return[$groupList[$i]['dn']]['add']['memberUid'][] = $this->attributes['uid'][0]; + } + } + else { + // update groups. + $add = array_delete($this->groups_orig, $this->groups); + $remove = array_delete($this->groups, $this->groups_orig); + $groupList = searchLDAPByAttribute('cn', '*', 'posixGroup', array('cn', 'dn'), array('group')); + $dn2cn = array(); + for ($i = 0; $i < sizeof($groupList); $i++) { + $cn2dn[$groupList[$i]['cn'][0]] = $groupList[$i]['dn']; + } + for ($i = 0; $i < sizeof($add); $i++) { + if (isset($cn2dn[$add[$i]])) { + $return[$cn2dn[$add[$i]]]['add']['memberUid'][] = $this->attributes['uid'][0]; + } + } + for ($i = 0; $i < sizeof($remove); $i++) { + if (isset($cn2dn[$remove[$i]])) { + $return[$cn2dn[$remove[$i]]]['remove']['memberUid'][] = $this->attributes['uid'][0]; + } + } + } + } + elseif (in_array('posixAccount', $this->orig['objectClass']) && !empty($this->orig['uid'][0])) { + // Unix extension was removed, clean group memberships + $groupList = searchLDAPByAttribute('memberUid', $this->orig['uid'][0], 'posixGroup', array('dn'), array('group')); + for ($i = 0; $i < sizeof($groupList); $i++) { + // remove user name + $return[$groupList[$i]['dn']]['remove']['memberUid'][] = $this->orig['uid'][0]; + } + } + return $return; + } + + /** + * Runs the postmodify actions. + * + * @see baseModule::postModifyActions() + * + * @param boolean $newAccount + * @param array $attributes LDAP attributes of this entry + * @return array array which contains status messages. Each entry is an array containing the status message parameters. + */ + public function postModifyActions($newAccount, $attributes) { + $messages = array(); + // create home directories if needed + if (sizeof($this->lamdaemonServers) > 0) { + $server = null; + $lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers()); + for ($i = 0; $i < sizeof($lamdaemonServers); $i++) { + $temp = explode(":", $lamdaemonServers[$i]); + $server = $temp[0]; + if (isset($temp[1])) { + if (!in_array($temp[1], $this->lamdaemonServers)) { + continue; + } + } + elseif (!in_array($temp[0], $this->lamdaemonServers)) { + continue; + } + $result = lamdaemon( + implode( + self::$SPLIT_DELIMITER, + array( + $this->attributes['uid'][0], + "home", + "add", + $this->attributes[$this->getHomedirAttrName()][0], + "0".$_SESSION['config']->get_scriptRights(), + $this->attributes['uidNumber'][0], + $this->attributes['gidNumber'][0]) + ), + $server); + // lamdaemon results + if (is_array($result)) { + $singleresult = explode(",", $result[0]); + if (($singleresult[0] == 'ERROR') || ($singleresult[0] == 'INFO') || ($singleresult[0] == 'WARN')) { + $messages[] = $singleresult; + } + else { + $messages[] = array('ERROR', $result[0]); + } + } + } + } + // move home directory if needed + if (!empty($this->orig[$this->getHomedirAttrName()][0]) && !empty($this->attributes[$this->getHomedirAttrName()][0]) + && ($this->orig[$this->getHomedirAttrName()][0] != $this->attributes[$this->getHomedirAttrName()][0])) { + $lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers()); + for ($i = 0; $i < sizeof($lamdaemonServers); $i++) { + if (empty($lamdaemonServers[$i])) { + continue; + } + $temp = explode(":", $lamdaemonServers[$i]); + $server = $temp[0]; + $result = lamdaemon( + implode( + self::$SPLIT_DELIMITER, + array( + $this->attributes['uid'][0], + "home", + "move", + $this->orig[$this->getHomedirAttrName()][0], + $this->attributes['uidNumber'][0], + $this->attributes[$this->getHomedirAttrName()][0]) + ), + $server); + // lamdaemon results + if (is_array($result)) { + $singleresult = explode(",", $result[0]); + if (($singleresult[0] == 'ERROR') || ($singleresult[0] == 'INFO') || ($singleresult[0] == 'WARN')) { + $messages[] = $singleresult; + } + } + } + } + // set group of names + if (self::areGroupOfNamesActive()) { + $gons = $this->findGroupOfNames(); + $toAdd = array_values(array_diff($this->gonList, $this->gonList_orig)); + $toRem = array_values(array_diff($this->gonList_orig, $this->gonList)); + $toUpdate = array_values(array_intersect($this->gonList, $this->gonList_orig)); + $ldapUser = $_SESSION['ldap']->decrypt_login(); + $ldapUser = $ldapUser[0]; + // update groups if DN changed + if (isset($this->getAccountContainer()->dn_orig) && ($this->getAccountContainer()->dn_orig != $this->getAccountContainer()->finalDN)) { + // update member attributes + for ($i = 0; $i < sizeof($toUpdate); $i++) { + if (isset($gons[$toUpdate[$i]])) { + $attrName = 'member'; + if (in_array('groupOfUniqueNames', $gons[$toUpdate[$i]]['objectclass'])) { + $attrName = 'uniqueMember'; + } + $success = @ldap_mod_add($_SESSION['ldap']->server(), $toUpdate[$i], array($attrName => array($this->getAccountContainer()->finalDN))); + if (!$success) { + logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to add changed user ' . $this->getAccountContainer()->finalDN . ' to group: ' . $toUpdate[$i] . ' (' . ldap_error($_SESSION['ldap']->server()) . ').'); + $messages[] = array('ERROR', sprintf(_('Was unable to add attributes to DN: %s.'), $toUpdate[$i]), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + } + else { + logNewMessage(LOG_NOTICE, '[' . $ldapUser .'] Added changed user ' . $this->getAccountContainer()->finalDN . ' to group: ' . $toUpdate[$i]); + } + $success = @ldap_mod_del($_SESSION['ldap']->server(), $toUpdate[$i], array($attrName => array($this->getAccountContainer()->dn_orig))); + if (!$success) { + logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to remove changed user ' . $this->getAccountContainer()->dn_orig . ' from group: ' . $toUpdate[$i] . ' (' . ldap_error($_SESSION['ldap']->server()) . ').'); + $messages[] = array('ERROR', sprintf(_('Was unable to remove attributes from DN: %s.'), $toUpdate[$i]), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + } + else { + logNewMessage(LOG_NOTICE, '[' . $ldapUser .'] Removed changed user ' . $this->getAccountContainer()->dn_orig . ' from group: ' . $toUpdate[$i]); + } + } + } + // update owner attributes + $types = $_SESSION['config']->get_ActiveTypes(); + if (in_array('gon', $types)) { + $gonTypes[] = 'gon'; + } + if (in_array('group', $types)) { + $gonTypes[] = 'group'; + } + $ownerGroups = searchLDAPByAttribute('owner', $this->getAccountContainer()->dn_orig, null, array('dn', 'owner'), $gonTypes); + for ($i = 0; $i < sizeof($ownerGroups); $i++) { + $found = false; + $newOwners = $ownerGroups[$i]['owner']; + for ($o = 0; $o < sizeof($newOwners); $o++) { + if ($newOwners[$o] == $this->getAccountContainer()->dn_orig) { + $newOwners[$o] = $this->getAccountContainer()->finalDN; + $found = true; + break; + } + } + if ($found) { + $success = @ldap_mod_replace($_SESSION['ldap']->server(), $ownerGroups[$i]['dn'], array('owner' => $newOwners)); + if (!$success) { + logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to modify attributes of DN: ' . $ownerGroups[$i]['dn'] . ' (' . ldap_error($_SESSION['ldap']->server())) . ').'; + $messages[] = array('ERROR', sprintf(_('Was unable to modify attributes of DN: %s.'), $ownerGroups[$i]['dn']), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + } + } + } + } + // add groups + for ($i = 0; $i < sizeof($toAdd); $i++) { + if (isset($gons[$toAdd[$i]])) { + $attrName = 'member'; + if (in_array('groupOfUniqueNames', $gons[$toAdd[$i]]['objectclass'])) { + $attrName = 'uniqueMember'; + } + $success = @ldap_mod_add($_SESSION['ldap']->server(), $toAdd[$i], array($attrName => array($this->getAccountContainer()->finalDN))); + if (!$success) { + logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to add user ' . $this->getAccountContainer()->finalDN . ' to group: ' . $toAdd[$i] . ' (' . ldap_error($_SESSION['ldap']->server()) . ').'); + $messages[] = array('ERROR', sprintf(_('Was unable to add attributes to DN: %s.'), $toAdd[$i]), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + } + else { + logNewMessage(LOG_NOTICE, '[' . $ldapUser .'] Added user ' . $this->getAccountContainer()->finalDN . ' to group: ' . $toAdd[$i]); + } + } + } + // remove groups + for ($i = 0; $i < sizeof($toRem); $i++) { + if (isset($gons[$toRem[$i]])) { + $attrName = 'member'; + if (in_array('groupOfUniqueNames', $gons[$toRem[$i]]['objectclass'])) { + $attrName = 'uniqueMember'; + } + $success = @ldap_mod_del($_SESSION['ldap']->server(), $toRem[$i], array($attrName => array($this->getAccountContainer()->dn_orig))); + if (!$success) { + logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to delete user ' . $this->getAccountContainer()->finalDN . ' from group: ' . $toRem[$i] . ' (' . ldap_error($_SESSION['ldap']->server()) . ').'); + $messages[] = array('ERROR', sprintf(_('Was unable to remove attributes from DN: %s.'), $toRem[$i]), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + } + else { + logNewMessage(LOG_NOTICE, '[' . $ldapUser .'] Removed user ' . $this->getAccountContainer()->finalDN . ' from group: ' . $toRem[$i]); + } + } + } + } + return $messages; + } + + /** + * Additional LDAP operations on delete. + * + * @return List of LDAP operations, same as for save_attributes() + */ + function delete_attributes() { + $return = array(); + // remove memberUids if set + $groups = searchLDAPByAttribute('memberUid', $this->attributes['uid'][0], 'posixGroup', array('dn'), array('group')); + for ($i = 0; $i < sizeof($groups); $i++) { + $return[$groups[$i]['dn']]['remove']['memberUid'][] = $this->attributes['uid'][0]; + } + // remove from group of names + $dn = $this->getAccountContainer()->dn_orig; + $gonTypes = array('group'); + $types = $_SESSION['config']->get_ActiveTypes(); + if (in_array('gon', $types)) { + $gonTypes[] = 'gon'; + } + $gons = searchLDAPByFilter('(|(member=' . $dn . ')(uniqueMember=' . $dn . '))', array('member', 'uniqueMember'), $gonTypes); + for ($i = 0; $i < sizeof($gons); $i++) { + if (isset($gons[$i]['member'])) { + $return[$gons[$i]['dn']]['remove']['member'][] = $dn; + } + elseif (isset($gons[$i]['uniquemember'])) { + $return[$gons[$i]['dn']]['remove']['uniqueMember'][] = $dn; + } + } + return $return; + } + + /** + * Allows the module to run commands before the LDAP entry is deleted. + * + * @return array Array which contains status messages. Each entry is an array containing the status message parameters. + */ + function preDeleteActions() { + $return = array(); + // delete home directory + if (isset($_POST['deletehomedir']) && ($_POST['deletehomedir'] == 'on')) { + // get list of lamdaemon servers + $lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers()); + for ($i = 0; $i < sizeof($lamdaemonServers); $i++) { + $temp = explode(":", $lamdaemonServers[$i]); + $lamdaemonServers[$i] = $temp[0]; + } + // try to delete directory on all servers + for ($i = 0; $i < sizeof($lamdaemonServers); $i++) { + $result = lamdaemon( + implode( + self::$SPLIT_DELIMITER, + array( + $this->attributes['uid'][0], + "home", + "rem", + $this->attributes[$this->getHomedirAttrName()][0], + $this->attributes['uidNumber'][0] + ) + ), + $lamdaemonServers[$i]); + // lamdaemon results + if (is_array($result)) { + foreach ($result as $singleresult) { + $singleresult = explode(",", $singleresult); + if (is_array($singleresult)) { + if (($singleresult[0] == 'ERROR') || ($singleresult[0] == 'WARN') || ($singleresult[0] == 'INFO')) { + $return[] = $singleresult; + } + } + } + } + } + } + // delete sudo rights + if (isset($_POST['deleteSudoers']) && ($_POST['deleteSudoers'] == 'on')) { + $result = searchLDAPByAttribute('sudoUser', $this->attributes['uid'][0], 'sudoRole', array('dn'), array('sudo')); + foreach ($result as $attrs) { + $dn = $attrs['dn']; + $success = @ldap_mod_del($_SESSION['ldap']->server(), $dn, array('sudoUser' => array($this->attributes['uid'][0]))); + if (!$success) { + $return[] = array('ERROR', getDefaultLDAPErrorString($_SESSION['ldap']->server())); + } + } + } + return $return; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + $errors = array(); + if (isset($_POST['addObjectClass'])) { + if (!isset($this->attributes['objectClass'])) { + $this->attributes['objectClass'] = array(); + } + if (!in_array('posixAccount', $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = 'posixAccount'; + } + return $errors; + } + if (isset($_POST['remObjectClass'])) { + $this->attributes['objectClass'] = array_delete(array('posixAccount'), $this->attributes['objectClass']); + $attrs = $this->getManagedAttributes(); + foreach ($attrs as $name) { + if (isset($this->attributes[$name])) { + unset($this->attributes[$name]); + } + } + return $errors; + } + // skip processing if object class is not set + if ($this->isOptional() && (!isset($this->attributes['objectClass']) || !in_array('posixAccount', $this->attributes['objectClass']))) { + return $errors; + } + $groups = $this->findGroups(); // list of all groupnames + if (count($groups)==0) { + // abort if no groups were found + return array(); + } + if (isset($_POST['loginShell'])) { + $this->attributes['loginShell'][0] = $_POST['loginShell']; + } + if (!$this->isBooleanConfigOptionSet('posixAccount_hidegecos')) { + if (isset($_POST['gecos'])) $this->attributes['gecos'][0] = $_POST['gecos']; + } + if (isset($this->orig['uid'][0]) && ($this->orig['uid'][0] != '') && (trim($_POST['uid']) != $this->attributes['uid'][0])) { + $errors[] = $this->messages['uid'][0]; + } + if (isset($this->orig['gidNumber'][0]) && ($this->orig['gidNumber'][0] != '') && ($_POST['gidNumber'] != $this->attributes['gidNumber'][0])) { + $errorMessage = $this->messages['gidNumber'][2]; + $errorMessage[] = array($this->orig['gidNumber'][0], $this->orig['uidNumber'][0], $_POST['gidNumber']); + $errors[] = $errorMessage; + if ($this->isBooleanConfigOptionSet('posixAccount_primaryGroupAsSecondary') && !empty($this->attributes['gidNumber'][0])) { + // change primary group in $this->groups + $oldGroupName = $this->getGroupName($this->attributes['gidNumber'][0]); + $newGroupName = $this->getGroupName($_POST['gidNumber']); + if (!empty($oldGroupName) && !empty($newGroupName)) { + $this->groups = array_delete(array($oldGroupName), $this->groups); + $this->groups[] = $newGroupName; + } + } + } + if (isset($this->orig['uidNumber'][0]) && $this->orig['uidNumber'][0]!='' && trim($_POST['uidNumber'])!=$this->attributes['uidNumber'][0]) { + $errorMessage = $this->messages['uidNumber'][5]; + $errorMessage[] = array($this->orig['uidNumber'][0], $_POST['uidNumber']); + $errors[] = $errorMessage; + } + $homedirAttrName = $this->getHomedirAttrName(); + if (isset($_POST['homeDirectory']) && isset($this->orig[$homedirAttrName][0]) && ($this->orig[$homedirAttrName][0] != '') && ($_POST['homeDirectory'] != $this->attributes[$homedirAttrName][0])) { + $errorMessage = $this->messages['homeDirectory'][3]; + $errorMessage[] = array($this->orig[$homedirAttrName][0], $_POST['homeDirectory']); + $errors[] = $errorMessage; + } + // get list of DNS names or IPs + $lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers()); + for ($i = 0; $i < sizeof($lamdaemonServers); $i++) { + $temp = explode(":", $lamdaemonServers[$i]); + if (isset($temp[1])) $lamdaemonServers[$i] = $temp[1]; + else $lamdaemonServers[$i] = $temp[0]; + } + $this->lamdaemonServers = array(); + for ($h = 0; $h < sizeof($lamdaemonServers); $h++) { + if (isset($_POST['createhomedir_' . $h]) && ($_POST['createhomedir_' . $h] = 'on')) { + $this->lamdaemonServers[] = $lamdaemonServers[$h]; + } + } + if (isset($_POST['homeDirectory'])) { + $this->attributes[$homedirAttrName][0] = $_POST['homeDirectory']; + } + // Load attributes + if (isset($_POST['lockPassword'])) { + $this->lock(); + } + if (isset($_POST['unlockPassword'])) { + $this->unlock(); + } + if (isset($_POST['removePassword'])) { + unset($this->attributes[$this->getPasswordAttrName()]); + } + if ($this->manageCn()) { + $this->processMultiValueInputTextField('cn', $errors, 'cn'); + } + $this->attributes['uidNumber'][0] = trim($_POST['uidNumber']); + $this->attributes['gidNumber'][0] = $_POST['gidNumber']; + if ($this->get_scope()=='user') { + if (($this->attributes['uid'][0] != $_POST['uid']) && !get_preg($_POST['uid'], '!upper')) { + $errors[] = $this->messages['uid'][1]; + } + if ( !get_preg($this->attributes[$homedirAttrName][0], 'homeDirectory' )) { + $errors[] = $this->messages['homeDirectory'][0]; + } + } + $this->attributes['uid'][0] = trim($_POST['uid']); + // Check if UID is valid. If none value was entered, the next useable value will be inserted + // load min and may uidNumber + if ($this->get_scope()=='user') { + $minID = intval($this->moduleSettings['posixAccount_minUID'][0]); + $maxID = intval($this->moduleSettings['posixAccount_maxUID'][0]); + } + if ($this->get_scope()=='host') { + $minID = intval($this->moduleSettings['posixAccount_minMachine'][0]); + $maxID = intval($this->moduleSettings['posixAccount_maxMachine'][0]); + } + $uids = $this->getUIDs(); + if ($this->attributes['uidNumber'][0]=='') { + // No id-number given + if (!isset($this->orig['uidNumber'][0]) || ($this->orig['uidNumber'][0] == '')) { + // new account -> we have to find a free id-number + $newUID = $this->getNextUIDs(1, $errors); + if (is_array($newUID)) { + $this->attributes['uidNumber'][0] = $newUID[0]; + } + else { + $errors[] = $this->messages['uidNumber'][3]; + } + } + else $this->attributes['uidNumber'][0] = $this->orig['uidNumber'][0]; + // old account -> return id-number which has been used + } + else { + // check manual ID + if ($this->getAccountContainer()->isNewAccount || !isset($this->orig['uidNumber'][0]) || ($this->orig['uidNumber'][0] != $this->attributes['uidNumber'][0])) { + // check range + if (($this->get_scope() == 'user') && (!isset($this->moduleSettings['posixAccount_uidGeneratorUsers']) || ($this->moduleSettings['posixAccount_uidGeneratorUsers'][0] != 'sambaPool'))) { + if (!is_numeric($this->attributes['uidNumber'][0]) || ($this->attributes['uidNumber'][0] < $minID) || ($this->attributes['uidNumber'][0] > $maxID)) { + $errors[] = array('ERROR', _('ID-Number'), sprintf(_('Please enter a value between %s and %s!'), $minID, $maxID)); + } + } + if (($this->get_scope() == 'host') && (!isset($this->moduleSettings['posixAccount_uidGeneratorHosts']) || ($this->moduleSettings['posixAccount_uidGeneratorHosts'][0] != 'sambaPool'))) { + if (!is_numeric($this->attributes['uidNumber'][0]) || ($this->attributes['uidNumber'][0] < $minID) || ($this->attributes['uidNumber'][0] > $maxID)) { + $errors[] = array('ERROR', _('ID-Number'), sprintf(_('Please enter a value between %s and %s!'), $minID, $maxID)); + } + } + // id-number is in use and account is a new account + if ((in_array($this->attributes['uidNumber'][0], $uids)) && $this->orig['uidNumber'][0]=='') $errors[] = array('ERROR', _('ID-Number'), _('ID is already in use')); + // id-number is in use, account is existing account and id-number is not used by itself + if ((in_array($this->attributes['uidNumber'][0], $uids)) && $this->orig['uidNumber'][0]!='' && ($this->orig['uidNumber'][0] != $this->attributes['uidNumber'][0]) ) { + $errors[] = $this->messages['uidNumber'][3]; + $this->attributes['uidNumber'][0] = $this->orig['uidNumber'][0]; + } + } + } + // Create automatic useraccount with number if original user already exists + // Reset name to original name if new name is in use + // Set username back to original name if new username is in use + if ($this->userNameExists($this->attributes['uid'][0]) && isset($this->orig['uid'][0]) && ($this->orig['uid'][0]!='')) { + $this->attributes['uid'][0] = $this->orig['uid'][0]; + } + else { + // Change uid to a new uid until a free uid is found + while ($this->userNameExists($this->attributes['uid'][0])) { + $this->attributes['uid'][0] = $this->getNextUserName($this->attributes['uid'][0]); + } + } + // Show warning if LAM has changed username + if ($this->attributes['uid'][0] != trim($_POST['uid'])) { + if ($this->get_scope()=='user') $errors[] = $this->messages['uid'][5]; + if ($this->get_scope()=='host') $errors[] = $this->messages['uid'][6]; + } + if ($this->get_scope()=='user') { + $this->attributes[$homedirAttrName][0] = str_replace('$group', $this->getGroupName($this->attributes['gidNumber'][0]), $this->attributes[$homedirAttrName][0]); + if ($this->attributes['uid'][0] != '') { + $this->attributes[$homedirAttrName][0] = str_replace('$user', $this->attributes['uid'][0], $this->attributes[$homedirAttrName][0]); + } + if ($this->attributes[$homedirAttrName][0] != $_POST['homeDirectory']) $errors[] = array('INFO', _('Home directory'), _('Replaced $user or $group in homedir.')); + // Check if Username contains only valid characters + if (!get_preg($this->attributes['uid'][0], 'username')) + $errors[] = $this->messages['uid'][2]; + } + if ($this->get_scope()=='host') { + // Check if Hostname contains only valid characters + if (!get_preg($this->attributes['uid'][0], 'hostname')) + $errors[] = $this->messages['uid'][4]; + if (!isset($this->attributes[$homedirAttrName][0])) { + $this->attributes[$homedirAttrName][0] = '/dev/null'; + } + if (!isset($this->attributes['loginShell'][0])) { + $this->attributes['loginShell'][0] = '/bin/false'; + } + } + $attributeList = array($homedirAttrName); + if (!$this->isBooleanConfigOptionSet('posixAccount_hidegecos')) { + $attributeList[] = 'gecos'; + } + for ($i = 0; $i < sizeof($attributeList); $i++) { + if (isset($this->attributes[$attributeList[$i]][0])) { + $value = $this->attributes[$attributeList[$i]][0]; + $replacedValue = $this->checkASCII($value); + if ($value != $replacedValue) { + $this->attributes[$attributeList[$i]][0] = $replacedValue; + $errors[] = array('WARN', $attributeList[$i], _('Changed value because only ASCII characters are allowed.')); + } + } + } + // Return error-messages + return $errors; + } + + /** + * Checks if an attribute contains only ASCII charaters and replaces invalid characters. + * + * @param string $attribute attribute value + * @return string attribute value with replaced non-ASCII characters + */ + function checkASCII($attribute) { + if ($attribute == null) { + return ''; + } + // replace special characters + $attribute = str_replace(array_keys($this->umlautReplacements), array_values($this->umlautReplacements), $attribute); + // remove remaining UTF-8 characters + for ($c = 0; $c < strlen($attribute); $c++) { + if (ord($attribute[$c]) > 127) { + $attribute = str_replace($attribute[$c], "", $attribute); + $c--; + } + } + return $attribute; + } + + /** + * Processes user input of the group selection page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_group() { + // Unix groups + if (!$this->isBooleanConfigOptionSet('posixAccount_hideposixGroups')) { + if (isset($_POST['addgroups']) && isset($_POST['addgroups_button'])) { // Add groups to list + // add new group + $this->groups = @array_merge($this->groups, $_POST['addgroups']); + } + elseif (isset($_POST['removegroups']) && isset($_POST['removegroups_button'])) { // remove groups from list + $this->groups = array_delete($_POST['removegroups'], $this->groups); + } + } + // group of names + if (self::areGroupOfNamesActive() && !$this->isBooleanConfigOptionSet('posixAccount_hidegon')) { + if (isset($_POST['addgons']) && isset($_POST['addgons_button'])) { // Add groups to list + // add new group + $this->gonList = @array_merge($this->gonList, $_POST['addgons']); + } + elseif (isset($_POST['removegons']) && isset($_POST['removegons_button'])) { // remove groups from list + $this->gonList = array_delete($_POST['removegons'], $this->gonList); + } + } + return array(); + } + + /** + * Processes user input of the homedir check page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_homedir() { + $return = array(); + // get list of lamdaemon servers + $lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers()); + for ($i = 0; $i < sizeof($lamdaemonServers); $i++) { + $temp = explode(":", $lamdaemonServers[$i]); + $server = $temp[0]; + if (isset($_POST['form_subpage_' . get_class($this) . '_homedir_create_' . $i])) { + $result = lamdaemon( + implode( + self::$SPLIT_DELIMITER, + array( + $this->attributes['uid'][0], + "home", + "add", + $this->attributes[$this->getHomedirAttrName()][0], + "0".$_SESSION['config']->get_scriptRights(), + $this->attributes['uidNumber'][0], + $this->attributes['gidNumber'][0]) + ), + $server); + // lamdaemon results + if (is_array($result)) { + foreach ($result as $singleresult) { + $singleresult = explode(",", $singleresult); + if (is_array($singleresult)) { + if (($singleresult[0] == 'ERROR') || ($singleresult[0] == 'WARN') || ($singleresult[0] == 'INFO')) { + $return[] = $singleresult; + } + } + } + } + } + elseif (isset($_POST['form_subpage_' . get_class($this) . '_homedir_delete_' . $i])) { + $result = lamdaemon( + implode( + self::$SPLIT_DELIMITER, + array( + $this->attributes['uid'][0], + "home", + "rem", + $this->attributes[$this->getHomedirAttrName()][0], + $this->attributes['uidNumber'][0] + ) + ), + $server); + // lamdaemon results + if (is_array($result)) { + foreach ($result as $singleresult) { + $singleresult = explode(",", $singleresult); + if (is_array($singleresult)) { + if (($singleresult[0] == 'ERROR') || ($singleresult[0] == 'WARN') || ($singleresult[0] == 'INFO')) { + $return[] = $singleresult; + } + } + } + } + } + } + return $return; + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $return = new htmlTable(); + if (!$this->isOptional() || (isset($this->attributes['objectClass']) && in_array('posixAccount', $this->attributes['objectClass']))) { + $groupList = $this->findGroups(); // list of all group names + $groups = array(); + for ($i = 0; $i < sizeof($groupList); $i++) { + $groups[$groupList[$i][1]] = $groupList[$i][0]; + } + if (count($groups)==0) { + $return->addElement(new htmlStatusMessage("ERROR", _('No Unix groups found in LDAP! Please create one first.'))); + return $return; + } + $shelllist = $this->getShells(); // list of all valid shells + + // set default values + if (empty($this->attributes['uid'][0])) { + if ($this->getAccountContainer()->getAccountModule('inetOrgPerson') != null) { + // fill default value for user ID with first/last name + $attrs = $this->getAccountContainer()->getAccountModule('inetOrgPerson')->getAttributes(); + $this->attributes['uid'][0] = $this->getUserNameSuggestion($attrs); + if (!empty($this->attributes['uid'][0]) && $this->userNameExists($this->attributes['uid'][0])) { + while ($this->userNameExists($this->attributes['uid'][0])) { + $this->attributes['uid'][0] = $this->getNextUserName($this->attributes['uid'][0]); + } + $msg = new htmlStatusMessage($this->messages['uid'][5][0], $this->messages['uid'][5][1], $this->messages['uid'][5][2]); + $msg->colspan = 10; + $return->addElement($msg, true); + } + } + elseif ($this->getAccountContainer()->getAccountModule('windowsUser') != null) { + // fill default value for user ID with AD user name + $attrs = $this->getAccountContainer()->getAccountModule('windowsUser')->getAttributes(); + if (!empty($attrs['userPrincipalName'][0])) { + $parts = explode('@', $attrs['userPrincipalName'][0]); + $this->attributes['uid'][0] = $parts[0]; + } + } + } + if ($this->manageCn() && (!isset($this->attributes['cn'][0]) || ($this->attributes['cn'][0] == ''))) { + // set a default value for common name + if (($this->get_scope() == 'host') && isset($_POST['uid']) && (substr($_POST['uid'], -1, 1) == '$')) { + $this->attributes['cn'][0] = substr($_POST['uid'], 0, strlen($_POST['uid']) - 1); + } + elseif ($this->getAccountContainer()->getAccountModule('inetOrgPerson') != null) { + $attrs = $this->getAccountContainer()->getAccountModule('inetOrgPerson')->getAttributes(); + if ($attrs['givenName'][0]) { + $this->attributes['cn'][0] = $attrs['givenName'][0] . " " . $attrs['sn'][0]; + } + elseif ($attrs['sn'][0]) { + $this->attributes['cn'][0] = $attrs['sn'][0]; + } + else { + $this->attributes['cn'][0] = $_POST['uid']; + } + } + elseif (isset($_POST['uid'])) { + $this->attributes['cn'][0] = $_POST['uid']; + } + } + + $userName = ''; + if (isset($this->attributes['uid'][0])) $userName = $this->attributes['uid'][0]; + $uidLabel = _("User name"); + if ($this->get_scope() == 'host') { + $uidLabel = _("Host name"); + } + $uidInput = new htmlTableExtendedInputField($uidLabel, 'uid', $userName, 'uid'); + $uidInput->setRequired(true); + $uidInput->setFieldMaxLength(100); + $return->addElement($uidInput, true); + if ($this->manageCn()) { + $this->addMultiValueInputTextField($return, 'cn', _("Common name")); + } + $uidNumber = ''; + if (isset($this->attributes['uidNumber'][0])) $uidNumber = $this->attributes['uidNumber'][0]; + $uidNumberInput = new htmlTableExtendedInputField(_('UID number'), 'uidNumber', $uidNumber, 'uidNumber'); + $uidNumberInput->setFieldMaxLength(20); + $uidNumberInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($uidNumberInput, true); + if (!$this->isBooleanConfigOptionSet('posixAccount_hidegecos')) { + $gecos = ''; + if (isset($this->attributes['gecos'][0])) $gecos = $this->attributes['gecos'][0]; + $return->addElement(new htmlTableExtendedInputField(_('Gecos'), 'gecos', $gecos, 'gecos'), true); + } + $primaryGroup = array(); + if (isset($this->attributes['gidNumber'][0])) { + $primaryGroup[] = $this->attributes['gidNumber'][0]; + } + $gidNumberSelect = new htmlTableExtendedSelect('gidNumber', $groups, $primaryGroup, _('Primary group'), 'gidNumber'); + $gidNumberSelect->setHasDescriptiveElements(true); + $return->addElement($gidNumberSelect, true); + + if ($this->get_scope()=='user') { + // additional groups + if (!$this->isBooleanConfigOptionSet('posixAccount_hidegon') || !$this->isBooleanConfigOptionSet('posixAccount_hideposixGroups')) { + $return->addElement(new htmlOutputText(_('Additional groups'))); + $return->addElement(new htmlAccountPageButton(get_class($this), 'group', 'open', _('Edit groups'))); + $return->addElement(new htmlHelpLink('addgroup'), true); + } + // home directory + $homeDir = isset($this->attributes[$this->getHomedirAttrName()][0]) ? $this->attributes[$this->getHomedirAttrName()][0] : ''; + $homedirInput = new htmlTableExtendedInputField(_('Home directory'), 'homeDirectory', $homeDir, 'homeDirectory'); + $homedirInput->setRequired(true); + $return->addElement($homedirInput, true); + if (($_SESSION['config']->get_scriptPath() != null) && ($_SESSION['config']->get_scriptPath() != '')) { + if ($this->getAccountContainer()->isNewAccount) { + // get list of lamdaemon servers + $lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers()); + for ($i = 0; $i < sizeof($lamdaemonServers); $i++) { + $temp = explode(":", $lamdaemonServers[$i]); + if (isset($temp[1])) $lamdaemonServers[$i] = $temp[1]; + else $lamdaemonServers[$i] = $temp[0]; + } + $homeDirLabel = new htmlOutputText(_('Create home directory')); + $homeDirLabel->alignment = htmlElement::ALIGN_TOP; + $return->addElement($homeDirLabel); + $homeServerContainer = new htmlTable(); + for ($h = 0; $h < sizeof($lamdaemonServers); $h++) { + $homeServerContainer->addElement(new htmlTableExtendedInputCheckbox('createhomedir_' . $h, in_array($lamdaemonServers[$h], $this->lamdaemonServers), $lamdaemonServers[$h], null, false), true); + } + $return->addElement($homeServerContainer); + $homeDirHelp = new htmlHelpLink('createhomedir'); + $homeDirHelp->alignment = htmlElement::ALIGN_TOP; + $return->addElement($homeDirHelp, true); + } + else { + $return->addElement(new htmlOutputText('')); + $return->addElement(new htmlAccountPageButton(get_class($this), 'homedir', 'open', _('Check home directories')), true); + } + } + $selectedShell = array(); + if (isset($this->attributes['loginShell'][0])) { + $selectedShell = array($this->attributes['loginShell'][0]); + } + $return->addElement(new htmlTableExtendedSelect('loginShell', $shelllist, $selectedShell, _('Login shell'), 'loginShell'), true); + } + // password buttons + if (checkIfWriteAccessIsAllowed($this->get_scope()) && isset($this->attributes[$this->getPasswordAttrName()][0])) { + $return->addElement(new htmlOutputText(_('Password'))); + $pwdContainer = new htmlTable(); + if (pwd_is_enabled($this->attributes[$this->getPasswordAttrName()][0])) { + $pwdContainer->addElement(new htmlButton('lockPassword', _('Lock password'))); + } + else { + $pwdContainer->addElement(new htmlButton('unlockPassword', _('Unlock password'))); + } + $pwdContainer->addElement(new htmlButton('removePassword', _('Remove password'))); + $pwdContainer->colspan = 2; + $return->addElement($pwdContainer, true); + } + // remove button + if ($this->isOptional()) { + $return->addElement(new htmlSpacer(null, '20px'), true); + $remButton = new htmlButton('remObjectClass', _('Remove Unix extension')); + $remButton->colspan = 5; + $return->addElement($remButton, true); + } + } + else { + // add button + $return->addElement(new htmlButton('addObjectClass', _('Add Unix extension'))); + } + return $return; + } + + /** + * Displays the delete homedir option for the delete page. + * + * @return htmlElement meta HTML code + */ + function display_html_delete() { + $return = null; + if ($this->get_scope() == 'user' && ($_SESSION['config']->get_scriptPath() != null)) { + $return = new htmlTable(); + $return->addElement(new htmlTableExtendedInputCheckbox('deletehomedir', true, _('Delete home directory'), 'deletehomedir'), true); + } + if (($this->get_scope() == 'user') && in_array('sudo', $_SESSION['config']->get_ActiveTypes())) { + if ($return == null) { + $return = new htmlTable(); + } + $return->addElement(new htmlTableExtendedInputCheckbox('deleteSudoers', true, _('Delete sudo rights'), 'deleteSudoers'), true); + } + return $return; + } + + /** + * Displays the group selection. + * + * @return htmlElement meta HTML code + */ + function display_html_group() { + $return = new htmlTable(); + if (!$this->isBooleanConfigOptionSet('posixAccount_hideposixGroups')) { + // load list with all groups + $groups = $this->findGroups(); + for ($i = 0; $i < sizeof($groups); $i++) { + $groups[$i] = $groups[$i][1]; + } + // remove groups the user is member of from grouplist + $groups = array_delete($this->groups, $groups); + // Remove primary group from grouplist + $group = $this->getGroupName($this->attributes['gidNumber'][0]); + $groups = array_flip($groups); + unset ($groups[$group]); + $groups = array_flip($groups); + + $unixContainer = new htmlTable(); + $unixContainer->alignment = htmlElement::ALIGN_TOP; + $unixContainer->addElement(new htmlSubTitle(_("Unix groups")), true); + $unixContainer->addElement(new htmlOutputText(_("Selected groups"))); + $unixContainer->addElement(new htmlOutputText('')); + $unixContainer->addElement(new htmlOutputText(_("Available groups"))); + $unixContainer->addNewLine(); + + $remSelect = new htmlSelect('removegroups', $this->groups, null, 15); + $remSelect->setMultiSelect(true); + $remSelect->setTransformSingleSelect(false); + $unixContainer->addElement($remSelect); + $buttonContainer = new htmlTable(); + $buttonContainer->addElement(new htmlButton('addgroups_button', 'back.gif', true), true); + $buttonContainer->addElement(new htmlButton('removegroups_button', 'forward.gif', true), true); + $buttonContainer->addElement(new htmlHelpLink('addgroup')); + $unixContainer->addElement($buttonContainer); + $addSelect = new htmlSelect('addgroups', $groups, null, 15); + $addSelect->setMultiSelect(true); + $addSelect->setTransformSingleSelect(false); + $unixContainer->addElement($addSelect); + $unixContainer->addNewLine(); + + $return->addElement($unixContainer); + } + + if (self::areGroupOfNamesActive() && !$this->isBooleanConfigOptionSet('posixAccount_hidegon')) { + if (!$this->isBooleanConfigOptionSet('posixAccount_hideposixGroups')) { + $return->addElement(new htmlSpacer('100px', null)); + } + + $gons = $this->findGroupOfNames(); + + $gonContainer = new htmlTable(); + $gonContainer->alignment = htmlElement::ALIGN_TOP; + $gonContainer->addElement(new htmlSubTitle(_("Groups of names")), true); + $gonContainer->addElement(new htmlOutputText(_("Selected groups"))); + $gonContainer->addElement(new htmlOutputText('')); + $gonContainer->addElement(new htmlOutputText(_("Available groups"))); + $gonContainer->addNewLine(); + + $selectedGons = array(); + for ($i = 0; $i < sizeof($this->gonList); $i++) { + if (isset($gons[$this->gonList[$i]])) { + $selectedGons[$gons[$this->gonList[$i]]['cn'][0]] = $this->gonList[$i]; + } + } + $availableGons = array(); + foreach ($gons as $dn => $attr) { + if (!in_array($dn, $this->gonList)) { + $availableGons[$attr['cn'][0]] = $dn; + } + } + + $remGonSelect = new htmlSelect('removegons', $selectedGons, null, 15); + $remGonSelect->setMultiSelect(true); + $remGonSelect->setTransformSingleSelect(false); + $remGonSelect->setHasDescriptiveElements(true); + $gonContainer->addElement($remGonSelect); + $buttonGonContainer = new htmlTable(); + $buttonGonContainer->addElement(new htmlButton('addgons_button', 'back.gif', true), true); + $buttonGonContainer->addElement(new htmlButton('removegons_button', 'forward.gif', true), true); + $buttonGonContainer->addElement(new htmlHelpLink('addgroup')); + $gonContainer->addElement($buttonGonContainer); + $addGonSelect = new htmlSelect('addgons', $availableGons, null, 15); + $addGonSelect->setMultiSelect(true); + $addGonSelect->setHasDescriptiveElements(true); + $addGonSelect->setTransformSingleSelect(false); + $gonContainer->addElement($addGonSelect); + $gonContainer->addNewLine(); + $return->addElement($gonContainer); + } + + $return->addNewLine(); + + $backGroup = new htmlGroup(); + $backGroup->colspan = 10; + $backGroup->addElement(new htmlSpacer(null, '10px'), true); + $backButton = new htmlAccountPageButton(get_class($this), 'attributes', 'back', _('Back')); + $backGroup->addElement($backButton); + $return->addElement($backGroup); + return $return; + } + + /** + * Displays the delete homedir option for the homedir page. + * + * @return htmlElement meta HTML code + */ + function display_html_homedir() { + $return = new htmlTable(); + $return->addElement(new htmlOutputText(_('Home directory'))); + $return->addElement(new htmlSpacer('5px', null)); + $return->addElement(new htmlOutputText($this->attributes[$this->getHomedirAttrName()][0]), true); + $return->addElement(new htmlSpacer(null, '10px'), true); + $homeServerContainer = new htmlTable(); + $homeServerContainer->colspan = 5; + // get list of lamdaemon servers + $lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers()); + for ($i = 0; $i < sizeof($lamdaemonServers); $i++) { + $temp = explode(":", $lamdaemonServers[$i]); + $server = $temp[0]; + $label = $temp[0]; + if (isset($temp[1])) { + $label = $temp[1]; + } + $result = lamdaemon( + implode( + self::$SPLIT_DELIMITER, + array( + $this->attributes['uid'][0], + "home", + "check", + $this->attributes[$this->getHomedirAttrName()][0]) + ), + $server); + // lamdaemon results + if (is_array($result)) { + $returnValue = trim($result[0]); + if ($returnValue == 'ok') { + $homeServerContainer->addElement(new htmlOutputText($label)); + $homeServerContainer->addElement(new htmlSpacer('5px', null)); + $homeServerContainer->addElement(new htmlImage('../../graphics/pass.png', 16, 16)); + $homeServerContainer->addElement(new htmlSpacer('5px', null)); + $homeServerContainer->addElement(new htmlAccountPageButton(get_class($this), 'homedir', 'delete_' . $i, _('Delete'))); + } + elseif ($returnValue == 'missing') { + $homeServerContainer->addElement(new htmlOutputText($label)); + $homeServerContainer->addElement(new htmlSpacer('5px', null)); + $homeServerContainer->addElement(new htmlImage('../../graphics/fail.png', 16, 16)); + $homeServerContainer->addElement(new htmlSpacer('5px', null)); + $homeServerContainer->addElement(new htmlAccountPageButton(get_class($this), 'homedir', 'create_' . $i, _('Create'))); + } + elseif (trim($returnValue) != '') { + $messageParams = explode(",", $returnValue); + if (isset($messageParams[2])) { + $message = new htmlStatusMessage($messageParams[0], htmlspecialchars($messageParams[1]), htmlspecialchars($messageParams[2])); + } + elseif (($messageParams[0] == 'ERROR') || ($messageParams[0] == 'WARN') || ($messageParams[0] == 'INFO')) { + $message = new htmlStatusMessage($messageParams[0], htmlspecialchars($messageParams[1])); + } + else { + $message = new htmlStatusMessage('WARN', htmlspecialchars($messageParams[0])); + } + $message->colspan = 5; + $homeServerContainer->addElement($message, true); + } + $homeServerContainer->addNewLine(); + } + } + $return->addElement($homeServerContainer, true); + $return->addElement(new htmlSpacer(null, '10px'), true); + $return->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'back', _('Back'))); + return $return; + } + + /** + * Returns a list of elements for the account profiles. + * + * @return profile elements + */ + function get_profileOptions() { + $return = new htmlTable(); + $groupList = $this->findGroups(); + $groups = array(); + for ($i = 0; $i < sizeof($groupList); $i++) { + $groups[] = $groupList[$i][1]; + } + if ($this->get_scope() == 'user') { + $shelllist = $this->getShells(); // list of all valid shells + // primary Unix group + $return->addElement(new htmlTableExtendedSelect('posixAccount_primaryGroup', $groups, array(), _('Primary group'), 'gidNumber'), true); + // additional group memberships + $addGroupSelect = new htmlTableExtendedSelect('posixAccount_additionalGroup', $groups, array(), _('Additional groups'), 'addgroup', 10); + $addGroupSelect->setMultiSelect(true); + $addGroupSelect->setTransformSingleSelect(false); + $return->addElement($addGroupSelect, true); + // group of names + if (self::areGroupOfNamesActive()) { + $gons = $this->findGroupOfNames(); + $gonList = array(); + foreach ($gons as $dn => $attr) { + $gonList[$attr['cn'][0]] = $dn; + } + $gonSelect = new htmlTableExtendedSelect('posixAccount_gon', $gonList, array(), _('Groups of names'), 'addgroup', 10); + $gonSelect->setHasDescriptiveElements(true); + $gonSelect->setMultiSelect(true); + $gonSelect->setTransformSingleSelect(false); + $return->addElement($gonSelect, true); + } + // home directory + $return->addElement(new htmlTableExtendedInputField(_('Home directory'), 'posixAccount_homeDirectory', '/home/$user', 'homeDirectory'), true); + // login shell + $return->addElement(new htmlTableExtendedSelect('posixAccount_loginShell', $shelllist, array("/bin/bash"), _('Login shell'), 'loginShell'), true); + // lamdaemon settings + if (($_SESSION['config']->get_scriptPath() != null)) { + $homeDirLabel = new htmlOutputText(_('Create home directory')); + $homeDirLabel->alignment = htmlElement::ALIGN_TOP; + $return->addElement($homeDirLabel); + $lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers()); + for ($i = 0; $i < sizeof($lamdaemonServers); $i++) { + $temp = explode(":", $lamdaemonServers[$i]); + if (isset($temp[1])) $lamdaemonServers[$i] = $temp[1]; + else $lamdaemonServers[$i] = $temp[0]; + } + $homeServerContainer = new htmlTable(); + for ($h = 0; $h < sizeof($lamdaemonServers); $h++) { + $homeServerContainer->addElement(new htmlTableExtendedInputCheckbox('posixAccount_createHomedir_' . $h, in_array($lamdaemonServers[$h], $this->lamdaemonServers), $lamdaemonServers[$h], null, false), true); + } + $return->addElement($homeServerContainer); + $homeDirHelp = new htmlHelpLink('createhomedir'); + $homeDirHelp->alignment = htmlElement::ALIGN_TOP; + $return->addElement($homeDirHelp, true); + } + } + elseif ($this->get_scope() == 'host') { + // primary Unix group + $return->addElement(new htmlTableExtendedSelect('posixAccount_primaryGroup', $groups, array(), _('Primary group'), 'gidNumber')); + } + if ($this->isOptional()) { + $return->addElement(new htmlTableExtendedInputCheckbox('posixAccount_addExt', false, _('Automatically add this extension'), 'autoAdd'), true); + } + return $return; + } + + /** + * Loads the values of an account profile into internal variables. + * + * @param array $profile hash array with profile values (identifier => value) + */ + function load_profile($profile) { + // profile mappings in meta data + parent::load_profile($profile); + // special profile options + // GID + if (isset($profile['posixAccount_primaryGroup'][0])) { + $gid = $this->getGID($profile['posixAccount_primaryGroup'][0]); + if ($gid != null) { + $this->attributes['gidNumber'][0] = $gid; + } + } + // other group memberships + if (isset($profile['posixAccount_additionalGroup'][0])) { + $this->groups = $profile['posixAccount_additionalGroup']; + } + // group of names + if (isset($profile['posixAccount_gon'][0])) { + $this->gonList = $profile['posixAccount_gon']; + } + // lamdaemon + if (($this->get_scope() == 'user') && $this->getAccountContainer()->isNewAccount) { + $lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers()); + for ($i = 0; $i < sizeof($lamdaemonServers); $i++) { + $temp = explode(":", $lamdaemonServers[$i]); + if (isset($temp[1])) $lamdaemonServers[$i] = $temp[1]; + else $lamdaemonServers[$i] = $temp[0]; + } + $this->lamdaemonServers = array(); + for ($h = 0; $h < sizeof($lamdaemonServers); $h++) { + if (isset($profile['posixAccount_createHomedir_' . $h][0]) && ($profile['posixAccount_createHomedir_' . $h][0] == 'true')) { + $this->lamdaemonServers[] = $lamdaemonServers[$h]; + } + } + } + // add extension + if (isset($profile['posixAccount_addExt'][0]) && ($profile['posixAccount_addExt'][0] == "true")) { + if (!in_array('posixAccount', $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = 'posixAccount'; + } + } + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $uidLabel = _('User name'); + if ($this->get_scope() == 'host') { + $uidLabel = _('Host name'); + } + $additionalGroups = array(); + if (!empty($this->groups)) { + $additionalGroups = $this->groups; + natcasesort($additionalGroups); + } + $return = array( + 'posixAccount_primaryGroup' => array('' . _('Primary group') . '' . $this->getGroupName($this->attributes['gidNumber'][0]) . ''), + 'posixAccount_additionalGroups' => array('' . _('Additional groups') . '' . implode(", ", $additionalGroups) . ''), + ); + $this->addSimplePDFField($return, 'uid', $uidLabel); + $this->addSimplePDFField($return, 'cn', _('Common name')); + $this->addSimplePDFField($return, 'uidNumber', _('UID number')); + $this->addSimplePDFField($return, 'gidNumber', _('GID number')); + $this->addSimplePDFField($return, 'homeDirectory', _('Home directory'), $this->getHomedirAttrName()); + $this->addSimplePDFField($return, 'loginShell', _('Login shell')); + $this->addSimplePDFField($return, 'gecos', _('Gecos')); + if (self::areGroupOfNamesActive()) { + $allGons = $this->findGroupOfNames(); + $gons = array(); + for ($i = 0; $i < sizeof($this->gonList); $i++) { + if (isset($allGons[$this->gonList[$i]])) { + $gons[] = $allGons[$this->gonList[$i]]['cn'][0]; + } + } + natcasesort($gons); + $return['posixAccount_gon'] = array('' . _('Groups of names') . '' . implode(", ", $gons) . ''); + } + if (isset($this->clearTextPassword)) { + $return['posixAccount_userPassword'] = array('' . _('Password') . '' . $this->clearTextPassword . ''); + } + else if (isset($this->attributes['INFO.userPasswordClearText'])) { + $return['posixAccount_userPassword'] = array('' . _('Password') . '' . $this->attributes['INFO.userPasswordClearText'] . ''); + } + return $return; + } + + /** + * Checks input values of module settings. + * + * @param array $scopes list of account types which are used + * @param array $options hash array containing the settings (array('option' => array('value'))) + * @return array list of error messages + */ + function check_configOptions($scopes, &$options) { + $return = array(); + // user settings + if (in_array('user', $scopes)) { + if ($options['posixAccount_uidGeneratorUsers'][0] == 'range') { + // min/maxUID are required, check if they are numeric + if (!isset($options['posixAccount_minUID'][0]) || !preg_match('/^[0-9]+$/', $options['posixAccount_minUID'][0])) { + $return[] = $this->messages['minUID'][0]; + } + if (!isset($options['posixAccount_maxUID'][0]) || !preg_match('/^[0-9]+$/', $options['posixAccount_maxUID'][0])) { + $return[] = $this->messages['maxUID'][0]; + } + // minUID < maxUID + if (isset($options['posixAccount_minUID'][0]) && isset($options['posixAccount_maxUID'][0])) { + if ($options['posixAccount_minUID'][0] > $options['posixAccount_maxUID'][0]) { + $return[] = $this->messages['cmp_UID'][0]; + } + } + } + else { + if (!isset($options['posixAccount_sambaIDPoolDNUsers'][0]) || !get_preg($options['posixAccount_sambaIDPoolDNUsers'][0], 'dn')) { + $return[] = $this->messages['sambaIDPoolDN'][0]; + } + } + } + // host settings + if (in_array('host', $scopes)) { + if ($options['posixAccount_uidGeneratorHosts'][0] == 'range') { + // min/maxUID are required, check if they are numeric + if (!isset($options['posixAccount_minMachine'][0]) || !preg_match('/^[0-9]+$/', $options['posixAccount_minMachine'][0])) { + $return[] = $this->messages['minMachine'][0]; + } + if (!isset($options['posixAccount_maxMachine'][0]) || !preg_match('/^[0-9]+$/', $options['posixAccount_maxMachine'][0])) { + $return[] = $this->messages['maxMachine'][0]; + } + // minUID < maxUID + if (isset($options['posixAccount_minMachine'][0]) && isset($options['posixAccount_maxMachine'][0])) { + if ($options['posixAccount_minMachine'][0] > $options['posixAccount_maxMachine'][0]) { + $return[] = $this->messages['cmp_Machine'][0]; + } + } + } + else { + if (!isset($options['posixAccount_sambaIDPoolDNHosts'][0]) || !get_preg($options['posixAccount_sambaIDPoolDNHosts'][0], 'dn')) { + $return[] = $this->messages['sambaIDPoolDN'][0]; + } + } + } + // check if user and host ranges overlap + if (in_array('user', $scopes) && ($options['posixAccount_uidGeneratorUsers'][0] == 'range') + && in_array('host', $scopes) && ($options['posixAccount_uidGeneratorHosts'][0] == 'range')) { + if (isset($options['posixAccount_minUID'][0]) && isset($options['posixAccount_maxUID'][0]) && + isset($options['posixAccount_minMachine'][0]) && isset($options['posixAccount_maxMachine'][0])) { + if (($options['posixAccount_minMachine'][0] > $options['posixAccount_minUID'][0]) && + ($options['posixAccount_minMachine'][0] < $options['posixAccount_maxUID'][0])) { + $return[] = $this->messages['cmp_both'][0]; + } + if (($options['posixAccount_minUID'][0] > $options['posixAccount_minMachine'][0]) && + ($options['posixAccount_minUID'][0] < $options['posixAccount_maxMachine'][0])) { + $return[] = $this->messages['cmp_both'][0]; + } + } + } + return $return; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $errors = array(); + $pwdAttrName = $this->getPasswordAttrName(); + $homedirAttrName = $this->getHomedirAttrName(); + $needAutoUID = array(); + // get list of existing users + $existingUsers = $this->getUserNames(); + // get list of existing groups + $groupList = $this->findGroups(); + $groupMap = array(); + for ($i = 0; $i < sizeof($groupList); $i++) { + $groupMap[$groupList[$i][1]] = $groupList[$i][0]; + } + $existingGroups = array_keys($groupMap); + // get list of existing group of names + if (self::areGroupOfNamesActive()) { + $gons = $this->findGroupOfNames(); + $gonList = array(); + foreach ($gons as $dn => $attr) { + $gonList[] = $attr['cn'][0]; + } + } + // check input + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + if (!in_array("posixAccount", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "posixAccount"; + // UID + if ($rawAccounts[$i][$ids['posixAccount_uid']] == "") { + // autoUID + $needAutoUID[] = $i; + } + elseif (get_preg($rawAccounts[$i][$ids['posixAccount_uid']], 'digit')) { + if ($this->get_scope() == 'user') { + if (($rawAccounts[$i][$ids['posixAccount_uid']] > $this->moduleSettings['posixAccount_minUID'][0]) && + ($rawAccounts[$i][$ids['posixAccount_uid']] < $this->moduleSettings['posixAccount_maxUID'][0])) { + $partialAccounts[$i]['uidNumber'] = trim($rawAccounts[$i][$ids['posixAccount_uid']]); + } + else { + $errMsg = $this->messages['uidNumber'][4]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + elseif ($this->get_scope() == 'host') { + if (($rawAccounts[$i][$ids['posixAccount_uid']] > $this->moduleSettings['posixAccount_minMachine'][0]) && + ($rawAccounts[$i][$ids['posixAccount_uid']] < $this->moduleSettings['posixAccount_maxMachine'][0])) { + $partialAccounts[$i]['uidNumber'] = trim($rawAccounts[$i][$ids['posixAccount_uid']]); + } + else { + $errMsg = $this->messages['uidNumber'][4]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + } + else { + $errMsg = $this->messages['uidNumber'][4]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + // GID number + if (get_preg($rawAccounts[$i][$ids['posixAccount_group']], 'digit')) { + $partialAccounts[$i]['gidNumber'] = $rawAccounts[$i][$ids['posixAccount_group']]; + } + if (get_preg($rawAccounts[$i][$ids['posixAccount_group']], 'groupname')) { + $gid = $groupMap[$rawAccounts[$i][$ids['posixAccount_group']]]; + if (is_numeric($gid)) { + $partialAccounts[$i]['gidNumber'] = $gid; + } + else { + $errMsg = $this->messages['gidNumber'][0]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + else { + $errMsg = $this->messages['gidNumber'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + // GECOS + if (!$this->isBooleanConfigOptionSet('posixAccount_hidegecos')) { + if ($rawAccounts[$i][$ids['posixAccount_gecos']] != "") { + if (get_preg($rawAccounts[$i][$ids['posixAccount_gecos']], 'gecos')) { + $partialAccounts[$i]['gecos'] = $this->checkASCII($rawAccounts[$i][$ids['posixAccount_gecos']]); + } + else { + $errMsg = $this->messages['gecos'][0]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + else { + $gecos = ""; + if (($rawAccounts[$i][$ids['inetOrgPerson_firstName']] != "") && ($rawAccounts[$i][$ids['inetOrgPerson_lastName']] != "")) { + $gecos = $rawAccounts[$i][$ids['inetOrgPerson_firstName']] . " " . $rawAccounts[$i][$ids['inetOrgPerson_lastName']]; + if ($rawAccounts[$i][$ids['inetOrgPerson_telephone']] != "") { + $gecos = $gecos . ",," . $rawAccounts[$i][$ids['inetOrgPerson_telephone']]; // double "," because room is unknown + if ($rawAccounts[$i][$ids['inetOrgPerson_fax']] != "") { + $gecos = $gecos . "," . $rawAccounts[$i][$ids['inetOrgPerson_fax']]; + } + } + } + if ($gecos != "") { + $partialAccounts[$i]['gecos'] = $this->checkASCII($gecos); + } + } + } + // user specific attributes + if ($this->get_scope() == 'user') { + // additional groups + if ($rawAccounts[$i][$ids['posixAccount_additionalGroups']] != "") { + $groups = explode(",", $rawAccounts[$i][$ids['posixAccount_additionalGroups']]); + for ($g = 0; $g < sizeof($groups); $g++) { + if (!in_array($groups[$g], $existingGroups)) { + $errors[] = array('ERROR', _('Unable to find group in LDAP.'), $groups[$g]); + } + } + } + // group of names + if (self::areGroupOfNamesActive() && ($rawAccounts[$i][$ids['posixAccount_gon']] != "")) { + $groups = explode(",", $rawAccounts[$i][$ids['posixAccount_gon']]); + for ($g = 0; $g < sizeof($groups); $g++) { + if (!in_array($groups[$g], $gonList)) { + $errors[] = array('ERROR', _('Unable to find group in LDAP.'), $groups[$g]); + } + } + } + // user name + if (in_array($rawAccounts[$i][$ids['posixAccount_userName']], $existingUsers)) { + $userName = $rawAccounts[$i][$ids['posixAccount_userName']]; + while (in_array($userName, $existingUsers)) { + $userName = $this->getNextUserName($userName); + } + $errMsg = $this->messages['uid'][9]; + array_push($errMsg, array($i, $userName, $rawAccounts[$i][$ids['posixAccount_userName']])); + $errors[] = $errMsg; + } + elseif (get_preg($rawAccounts[$i][$ids['posixAccount_userName']], 'username')) { + $partialAccounts[$i]['uid'] = $rawAccounts[$i][$ids['posixAccount_userName']]; + } + else { + $errMsg = $this->messages['uid'][7]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + // home directory + if ($rawAccounts[$i][$ids['posixAccount_homedir']] == "") { + $partialAccounts[$i][$homedirAttrName] = '/home/' . $partialAccounts[$i]['uid']; + } + elseif (get_preg($rawAccounts[$i][$ids['posixAccount_homedir']], 'homeDirectory')) { + $partialAccounts[$i][$homedirAttrName] = $rawAccounts[$i][$ids['posixAccount_homedir']]; + } + else { + $errMsg = $this->messages['homeDirectory'][2]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + // login shell + if ($rawAccounts[$i][$ids['posixAccount_shell']] == "") { + $partialAccounts[$i]['loginShell'] = '/bin/bash'; + } + elseif (in_array($rawAccounts[$i][$ids['posixAccount_shell']], $this->getShells())) { + $partialAccounts[$i]['loginShell'] = $rawAccounts[$i][$ids['posixAccount_shell']]; + } + else { + $errMsg = $this->messages['shell'][0]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + $pwd_enabled = true; + // password enabled/disabled + if ($rawAccounts[$i][$ids['posixAccount_passwordDisabled']] == "") { + $pwd_enabled = true; + } + elseif (in_array($rawAccounts[$i][$ids['posixAccount_passwordDisabled']], array('true', 'false'))) { + if ($rawAccounts[$i][$ids['posixAccount_passwordDisabled']] == 'true') $pwd_enabled = false; + else $pwd_enabled = true; + } + else { + $errMsg = $this->messages['passwordDisabled'][0]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + // password + if (($rawAccounts[$i][$ids['posixAccount_password']] != "") && (get_preg($rawAccounts[$i][$ids['posixAccount_password']], 'password'))) { + $partialAccounts[$i][$pwdAttrName] = pwd_hash($rawAccounts[$i][$ids['posixAccount_password']], $pwd_enabled, $this->moduleSettings['posixAccount_pwdHash'][0]); + $partialAccounts[$i]['INFO.userPasswordClearText'] = $rawAccounts[$i][$ids['posixAccount_password']]; // for custom scripts etc. + } + elseif ($rawAccounts[$i][$ids['posixAccount_password']] != "") { + $errMsg = $this->messages['userPassword'][4]; + $errMsg[2] = str_replace('%', '%%', $errMsg[2]); // double "%" because of later sprintf + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + // cn + if ($this->manageCn()) { + if ($rawAccounts[$i][$ids['posixAccount_cn']] != "") { + if (get_preg($rawAccounts[$i][$ids['posixAccount_cn']], 'cn')) { + $partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['posixAccount_cn']]; + } + else { + $errMsg = $this->messages['cn'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + else { + if ($partialAccounts[$i]['givenName']) { + $partialAccounts[$i]['cn'] = $partialAccounts[$i]['givenName'] . " " . $partialAccounts[$i]['sn']; + } + elseif ($partialAccounts[$i]['sn']) { + $partialAccounts[$i]['cn'] = $partialAccounts[$i]['sn']; + } + else { + $partialAccounts[$i]['cn'] = $partialAccounts[$i]['uid']; + } + } + } + } + // host specific attributes + elseif ($this->get_scope() == 'host') { + // host name + if (in_array($rawAccounts[$i][$ids['posixAccount_hostName']], $existingUsers)) { + $userName = $rawAccounts[$i][$ids['posixAccount_hostName']]; + while (in_array($userName, $existingUsers)) { + $userName = $this->getNextUserName($userName); + } + $errMsg = $this->messages['uid'][10]; + array_push($errMsg, array($i, $userName, $rawAccounts[$i][$ids['posixAccount_hostName']])); + $errors[] = $errMsg; + } + elseif (get_preg($rawAccounts[$i][$ids['posixAccount_hostName']], 'hostname')) { + $partialAccounts[$i]['uid'] = $rawAccounts[$i][$ids['posixAccount_hostName']]; + $partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['posixAccount_hostName']]; + } + else { + $errMsg = $this->messages['uid'][8]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + // description + if (isset($ids['posixAccount_description']) && isset($rawAccounts[$i][$ids['posixAccount_description']]) && ($rawAccounts[$i][$ids['posixAccount_description']] != '')) { + $partialAccounts[$i]['description'] = $rawAccounts[$i][$ids['posixAccount_description']]; + } + else { + $partialAccounts[$i]['description'] = $rawAccounts[$i][$ids['posixAccount_hostName']]; + } + $partialAccounts[$i][$homedirAttrName] = '/dev/null'; + $partialAccounts[$i]['loginShell'] = '/bin/false'; + } + } + // fill in autoUIDs + if (sizeof($needAutoUID) > 0) { + $errorsTemp = array(); + $uids = $this->getNextUIDs(sizeof($needAutoUID), $errorsTemp); + if (is_array($uids)) { + for ($i = 0; $i < sizeof($needAutoUID); $i++) { + $partialAccounts[$i]['uidNumber'] = $uids[$i]; + } + } + else { + $errors[] = $this->messages['uidNumber'][2]; + } + } + return $errors; + } + + /** + * This function executes one post upload action. + * + * @param array $data array containing one account in each element + * @param array $ids array( => ) + * @param array $failed list of accounts which were not created successfully + * @param array $temp variable to store temporary data between two post actions + * @param array $accounts list of LDAP entries + * @return array current status + *
    array ( + *
    'status' => 'finished' | 'inProgress' + *
    'progress' => 0..100 + *
    'errors' => array () + *
    ) + */ + function doUploadPostActions(&$data, $ids, $failed, &$temp, &$accounts) { + if (!checkIfWriteAccessIsAllowed($this->get_scope())) { + die(); + } + // on first call generate list of ldap operations + if (!isset($temp['counter'])) { + $temp['groups'] = array(); + $temp['dn_gon'] = array(); + $temp['createHomes'] = array(); + $temp['counter'] = 0; + $col = $ids['posixAccount_additionalGroups']; + $col_home = $ids['posixAccount_createHomeDir']; + // get list of existing groups + $groupList = $this->findGroups(); + $groupMap = array(); + for ($i = 0; $i < sizeof($groupList); $i++) { + $groupMap[$groupList[$i][0]] = $groupList[$i][1]; + } + // get list of existing group of names + if (self::areGroupOfNamesActive()) { + $gonList = $this->findGroupOfNames(); + $gonMap = array(); + foreach ($gonList as $dn => $attr) { + $gonMap[$attr['cn'][0]] = $dn; + } + } + for ($i = 0; $i < sizeof($data); $i++) { + if (in_array($i, $failed)) continue; // ignore failed accounts + if ($data[$i][$col] != "") { + $groups = explode(",", $data[$i][$col]); + if (isset($this->moduleSettings['posixAccount_primaryGroupAsSecondary'][0]) + && ($this->moduleSettings['posixAccount_primaryGroupAsSecondary'][0] == 'true')) { + if (get_preg($data[$i][$ids['posixAccount_group']], 'digit')) { + if (!in_array($groupMap[$data[$i][$ids['posixAccount_group']]], $groups)) { + $groups[] = $groupMap[$data[$i][$ids['posixAccount_group']]]; + } + } + else { + if (!in_array($groupMap[$data[$i][$ids['posixAccount_group']]], $groups)) { + $groups[] = $data[$i][$ids['posixAccount_group']]; + } + } + } + for ($g = 0; $g < sizeof($groups); $g++) { + if (!in_array($groups[$g], $temp['groups'])) $temp['groups'][] = $groups[$g]; + $temp['members'][$groups[$g]][] = $data[$i][$ids['posixAccount_userName']]; + } + } + if (isset($ids['posixAccount_gon']) && ($data[$i][$ids['posixAccount_gon']] != "")) { + $gons = explode(",", $data[$i][$ids['posixAccount_gon']]); + $memberAttr = 'member'; + for ($g = 0; $g < sizeof($gons); $g++) { + if (in_array('groupOfUniqueNames', $gonList[$gonMap[$gons[$g]]]['objectclass'])) { + $memberAttr = 'uniqueMember'; + } + $temp['dn_gon'][$gonMap[$gons[$g]]][$memberAttr][] = $accounts[$i]['dn']; + } + } + if ($data[$i][$col_home] != "") { + $temp['createHomes'][] = $i; + } + } + $temp['dn_gon_keys'] = array_keys($temp['dn_gon']); + return array( + 'status' => 'inProgress', + 'progress' => 0, + 'errors' => array() + ); + } + // get DNs of groups + elseif (!isset($temp['dn'])) { + $temp['dn'] = array(); + $ldapEntries = searchLDAPByAttribute('cn', '*', 'posixGroup', array('dn', 'cn'), array('group')); + for ($i = 0; $i < sizeof($ldapEntries); $i++) { + $temp['dn'][$ldapEntries[$i]['cn'][0]] = $ldapEntries[$i]['dn']; + } + return array( + 'status' => 'inProgress', + 'progress' => 0, + 'errors' => array() + ); + } + // add users to groups + elseif ($temp['counter'] < sizeof($temp['groups'])) { + if (isset($temp['dn'][$temp['groups'][$temp['counter']]])) { + $success = @ldap_mod_add($_SESSION['ldap']->server(), $temp['dn'][$temp['groups'][$temp['counter']]], array('memberUID' => $temp['members'][$temp['groups'][$temp['counter']]])); + $errors = array(); + if (!$success) { + $errors[] = array( + "ERROR", + _("LAM was unable to modify group memberships for group: %s"), + getDefaultLDAPErrorString($_SESSION['ldap']->server()), + array($temp['groups'][$temp['counter']]) + ); + } + $temp['counter']++; + return array ( + 'status' => 'inProgress', + 'progress' => ($temp['counter'] * 100) / (sizeof($temp['groups']) + sizeof($temp['createHomes']) + sizeof($temp['dn_gon'])), + 'errors' => $errors + ); + } + else { + $temp['counter']++; + return array ( + 'status' => 'inProgress', + 'progress' => ($temp['counter'] * 100) / (sizeof($temp['groups'] + sizeof($temp['createHomes']) + sizeof($temp['dn_gon']))), + 'errors' => array(array('ERROR', _('Unable to find group in LDAP.'), $temp['groups'][$temp['counter']])) + ); + } + } + // create home directories + elseif ($temp['counter'] < (sizeof($temp['groups']) + sizeof($temp['createHomes']))) { + $pos = $temp['createHomes'][$temp['counter'] - sizeof($temp['groups'])]; + $result = lamdaemon( + implode( + self::$SPLIT_DELIMITER, + array( + $data[$pos][$ids['posixAccount_userName']], + "home", + "add", + $accounts[$pos][$this->getHomedirAttrName()], + "0".$_SESSION['config']->get_scriptRights(), + $accounts[$pos]['uidNumber'], + $accounts[$pos]['gidNumber'], + ) + ), + $data[$pos][$ids['posixAccount_createHomeDir']]); + $errors = array(); + if (($result != false) && (sizeof($result) == 1)) { + $parts = explode(",", $result[0]); + if (in_array($parts[0], array('ERROR', 'WARN'))) { + $errors[] = $parts; + } + } + $temp['counter']++; + return array ( + 'status' => 'inProgress', + 'progress' => ($temp['counter'] * 100) / (sizeof($temp['groups']) + sizeof($temp['createHomes']) + sizeof($temp['dn_gon'])), + 'errors' => $errors + ); + } + // add users to group of names + elseif ($temp['counter'] < (sizeof($temp['groups']) + sizeof($temp['createHomes']) + sizeof($temp['dn_gon']))) { + $gonDn = $temp['dn_gon_keys'][$temp['counter'] - sizeof($temp['groups']) - sizeof($temp['createHomes'])]; + $gonAttr = $temp['dn_gon'][$gonDn]; + $success = @ldap_mod_add($_SESSION['ldap']->server(), $gonDn, $gonAttr); + $errors = array(); + if (!$success) { + $errors[] = array( + "ERROR", + _("LAM was unable to modify group memberships for group: %s"), + getDefaultLDAPErrorString($_SESSION['ldap']->server()), + array($temp['groups'][$temp['counter']]) + ); + } + $temp['counter']++; + $errors = array(); + return array ( + 'status' => 'inProgress', + 'progress' => ($temp['counter'] * 100) / (sizeof($temp['groups']) + sizeof($temp['createHomes']) + sizeof($temp['dn_gon'])), + 'errors' => $errors + ); + } + // all modifications are done + else { + return array ( + 'status' => 'finished', + 'progress' => 100, + 'errors' => array() + ); + } + } + + /** + * Returns one or more free UID numbers. + * + * @param integer $count Number of needed free UIDs. + * @param array $errors list of error messages where errors can be added + * @return mixed Null if no UIDs are free else an array of free UIDs. + */ + function getNextUIDs($count, &$errors) { + // check if UIDs should be taken from Samba pool entry + if (($this->get_scope() == 'user') && isset($this->moduleSettings['posixAccount_uidGeneratorUsers']) && ($this->moduleSettings['posixAccount_uidGeneratorUsers'][0] == 'sambaPool')) { + return $this->getNextSambaPoolUIDs($count, $errors); + } + if (($this->get_scope() == 'host') && isset($this->moduleSettings['posixAccount_uidGeneratorHosts']) && ($this->moduleSettings['posixAccount_uidGeneratorHosts'][0] == 'sambaPool')) { + return $this->getNextSambaPoolUIDs($count, $errors); + } + $ret = array(); + if ($this->get_scope() == "user") { + $minID = intval($this->moduleSettings['posixAccount_minUID'][0]); + $maxID = intval($this->moduleSettings['posixAccount_maxUID'][0]); + } + else { + $minID = intval($this->moduleSettings['posixAccount_minMachine'][0]); + $maxID = intval($this->moduleSettings['posixAccount_maxMachine'][0]); + } + $uidList = $this->getUIDs(); + $uids = array(); + for ($i = 0; $i < sizeof($uidList); $i++) { + if (($uidList[$i] <= $maxID) && ($uidList[$i] >= $minID)) $uids[] = $uidList[$i]; // ignore UIDs > maxID and UIDs < minID + } + for ($i = 0; $i < $count; $i++) { + if (count($uids) != 0) { + // there already are some uids + // store highest id-number + $id = $uids[count($uids)-1]; + // Return minimum allowed id-number if all found id-numbers are too low + if ($id < $minID) { + $ret[] = $minID; + $uids[] = $minID; + } + // return highest used id-number + 1 if it's still in valid range + elseif ($id < $maxID) { + $ret[] = $id + 1; + $uids[] = $id + 1; + } + // find free numbers between existing ones + else { + $k = intval($minID); + while (in_array($k, $uids)) $k++; + if ($k > $maxID) return null; + else { + $ret[] = $k; + $uids[] = $k; + sort ($uids, SORT_NUMERIC); + } + // show warning message + $errors[] = $this->messages['uidNumber'][2]; + } + } + else { + // return minimum allowed id-number if no id-numbers are found + $ret[] = $minID; + $uids[] = $minID; + } + } + return $ret; + } + + /** + * Gets the free UID numbers from an Samba pool entry in LDAP. + * + * @param integer $count number of needed free UIDs. + * @param array $errors list of error messages where errors can be added + * @return mixed null if no UIDs are free else an array of free UIDs + */ + private function getNextSambaPoolUIDs($count, &$errors) { + if ($this->get_scope() == 'user') { + $dn = $this->moduleSettings['posixAccount_sambaIDPoolDNUsers'][0]; + } + else { + $dn = $this->moduleSettings['posixAccount_sambaIDPoolDNHosts'][0]; + } + $attrs = ldapGetDN($dn, array('uidNumber')); + if (isset($attrs['uidnumber'][0]) && ($attrs['uidnumber'][0] != '')) { + $newValue = $attrs['uidnumber'][0] + $count; + $ldapHandle = $_SESSION['ldap']->server(); + ldap_modify($ldapHandle, $dn, array('uidnumber' => array($newValue))); + logNewMessage(LOG_DEBUG, 'Updated Samba ID pool ' . $dn . ' with UID number ' . $newValue . ' and LDAP code ' . ldap_errno($ldapHandle)); + if (ldap_errno($ldapHandle) != 0) { + logNewMessage(LOG_NOTICE, 'Updating Samba ID pool ' . $dn . ' with UID number ' . $newValue . ' failed. ' . ldap_error($ldapHandle)); + return null; + } + $result = array(); + for ($i = 0; $i < $count; $i++) { + $result[] = $attrs['uidnumber'][0] + $i; + } + return $result; + } + return null; + } + + /** + * Returns the meta HTML code for each input field. + * format: array( => array(), ...) + * It is not possible to display help links. + * + * @param array $fields list of active fields + * @param array $attributes attributes of LDAP account + * @param boolean $passwordChangeOnly indicates that the user is only allowed to change his password and no LDAP content is readable + * @param array $readOnlyFields list of read-only fields + * @return array list of meta HTML elements (field name => htmlTableRow) + */ + function getSelfServiceOptions($fields, $attributes, $passwordChangeOnly, $readOnlyFields) { + $return = array(); + if (in_array('password', $fields)) { + $pwdTable = new htmlTable(); + $pwdTable->colspan = 3; + $pwd1 = new htmlTableExtendedInputField($this->getSelfServiceLabel('password', _('New password')), 'posixAccount_password'); + $pwd1->setIsPassword(true, true); + $pwdTable->addElement($pwd1, true); + $pwd2 = new htmlTableExtendedInputField(_('Reenter password'), 'posixAccount_password2'); + $pwd2->setIsPassword(true); + $pwd2->setSameValueFieldID('posixAccount_password'); + $pwdTable->addElement($pwd2); + $return['password'] = new htmlTableRow(array( + $pwdTable + )); + } + if ($passwordChangeOnly) { + return $return; // only password fields as long no LDAP content can be read + } + if (in_array('cn', $fields)) { + $cn = ''; + if (isset($attributes['cn'][0])) $cn = $attributes['cn'][0]; + $cnField = new htmlInputField('posixAccount_cn', $cn); + if (in_array('cn', $readOnlyFields)) { + $cnField = new htmlOutputText($cn); + } + $return['cn'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('cn', _('Common name'))), $cnField + )); + } + if (in_array('loginShell', $fields)) { + $shelllist = $this->getShells(); // list of all valid shells + $loginShell = ''; + if (isset($attributes['loginShell'][0])) $loginShell = $attributes['loginShell'][0]; + $loginShellField = new htmlSelect('posixAccount_loginShell', $shelllist, array($loginShell)); + if (in_array('loginShell', $readOnlyFields)) { + $loginShellField = new htmlOutputText($loginShell); + } + $return['loginShell'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('loginShell', _('Login shell'))), $loginShellField + )); + } + return $return; + } + + /** + * Checks if all input values are correct and returns the LDAP attributes which should be changed. + *
    Return values: + *
    messages: array of parameters to create status messages + *
    add: array of attributes to add + *
    del: array of attributes to remove + *
    mod: array of attributes to modify + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}. + * + * @param string $fields input fields + * @param array $attributes LDAP attributes + * @param boolean $passwordChangeOnly indicates that the user is only allowed to change his password and no LDAP content is readable + * @param array $readOnlyFields list of read-only fields + * @return array messages and attributes (array('messages' => array(), 'add' => array('mail' => array('test@test.com')), 'del' => array(), 'mod' => array(), 'info' => array())) + */ + function checkSelfServiceOptions($fields, $attributes, $passwordChangeOnly, $readOnlyFields) { + $return = array('messages' => array(), 'add' => array(), 'del' => array(), 'mod' => array(), 'info' => array()); + if (in_array('password', $fields)) { + if (isset($_POST['posixAccount_password']) && ($_POST['posixAccount_password'] != '')) { + if ($_POST['posixAccount_password'] != $_POST['posixAccount_password2']) { + $return['messages'][] = $this->messages['userPassword'][0]; + } + else { + if (!get_preg($_POST['posixAccount_password'], 'password')) { + $return['messages'][] = $this->messages['userPassword'][1]; + } + else { + $userName = empty($attributes['uid'][0]) ? null : $attributes['uid'][0]; + $additionalAttrs = array(); + if (!empty($attributes['sn'][0])) { + $additionalAttrs[] = $attributes['sn'][0]; + } + if (!empty($attributes['givenName'][0])) { + $additionalAttrs[] = $attributes['givenName'][0]; + } + $pwdPolicyResult = checkPasswordStrength($_POST['posixAccount_password'], $userName, $additionalAttrs); + if ($pwdPolicyResult === true) { + $return['mod'][$this->getPasswordAttrName()][0] = pwd_hash($_POST['posixAccount_password'], true, $this->selfServiceSettings->moduleSettings['posixAccount_pwdHash'][0]); + $return['info']['userPasswordClearText'][0] = $_POST['posixAccount_password']; + if (isset($attributes['shadowLastChange'][0])) { + $return['mod']['shadowLastChange'][0] = intval(time()/3600/24); + } + $_SESSION['selfService_clientPasswordNew'] = $_POST['posixAccount_password']; + } + else { + $return['messages'][] = array('ERROR', $pwdPolicyResult); + } + } + } + } + } + if ($passwordChangeOnly) { + return $return; // skip processing if only a password change is done + } + if (in_array('cn', $fields) && !in_array('cn', $readOnlyFields)) { + if (isset($_POST['posixAccount_cn']) && ($_POST['posixAccount_cn'] != '')) { + if (!get_preg($_POST['posixAccount_cn'], 'cn')) { + $return['messages'][] = $this->messages['cn'][0]; + } + else if (!isset($attributes['cn']) || ($attributes['cn'][0] != $_POST['posixAccount_cn'])) { + $return['mod']['cn'][0] = $_POST['posixAccount_cn']; + } + } + else { + $return['messages'][] = $this->messages['cn'][0]; + } + } + if (in_array('loginShell', $fields) && !in_array('loginShell', $readOnlyFields)) { + $shelllist = $this->getShells(); // list of all valid shells + if (in_array($_POST['posixAccount_loginShell'], $shelllist) + && (!isset($attributes['loginShell']) || ($attributes['loginShell'][0] != $_POST['posixAccount_loginShell']))) { + $return['mod']['loginShell'][0] = $_POST['posixAccount_loginShell']; + } + } + return $return; + } + + /** + * This method specifies if a module manages password attributes. + * @see passwordService::managesPasswordAttributes + * + * @return boolean true if this module manages password attributes + */ + public function managesPasswordAttributes() { + return true; + } + + /** + * Specifies if this module supports to force that a user must change his password on next login. + * + * @return boolean force password change supported + */ + public function supportsForcePasswordChange() { + return false; + } + + /** + * This function is called whenever the password should be changed. Account modules + * must change their password attributes only if the modules list contains their module name. + * + * @param String $password new password + * @param $modules list of modules for which the password should be changed + * @param boolean $forcePasswordChange force the user to change his password at next login + * @return array list of error messages if any as parameter array for StatusMessage + * e.g. return arrray(array('ERROR', 'Password change failed.')) + * @see passwordService::passwordChangeRequested + */ + public function passwordChangeRequested($password, $modules, $forcePasswordChange) { + if (!in_array(get_class($this), $modules)) { + return array(); + } + // check password strength + $user = empty($this->attributes['uid'][0]) ? null : $this->attributes['uid'][0]; + $additionalAttrs = array(); + if ($this->getAccountContainer()->getAccountModule('inetOrgPerson') != null) { + $attrs = $this->getAccountContainer()->getAccountModule('inetOrgPerson')->getAttributes(); + if (!empty($attrs['sn'][0])) { + $additionalAttrs[] = $attrs['sn'][0]; + } + if (!empty($attrs['givenName'][0])) { + $additionalAttrs[] = $attrs['givenName'][0]; + } + } + $checkResult = checkPasswordStrength($password, $user, $additionalAttrs); + if ($checkResult !== true) { + return array(array('ERROR', $checkResult)); + } + // set new password + $this->clearTextPassword = $password; + $this->attributes[$this->getPasswordAttrName()][0] = pwd_hash($password, true, $this->moduleSettings['posixAccount_pwdHash'][0]); + return array(); + } + + /** + * Returns the group ID of the given group. + * + * @param String $groupname group name + * @return String GID + */ + private function getGID($groupname) { + $results = searchLDAPByAttribute('cn', $groupname, 'posixGroup', array('gidnumber'), array('group')); + if ((sizeof($results) > 0) && isset($results[0]['gidnumber'][0])) { + return $results[0]['gidnumber'][0]; + } + return null; + } + + /** + * Returns the group name of the group with the given group ID. + * + * @param String $groupID group ID + * @return String group name + */ + private function getGroupName($groupID) { + $results = searchLDAPByAttribute('gidNumber', $groupID, 'posixGroup', array('cn'), array('group')); + if ((sizeof($results) > 0) && isset($results[0]['cn'][0])) { + return $results[0]['cn'][0]; + } + return null; + } + + /** + * Returns the group DN of the given group. + * + * @param String $groupname group name + * @return String DN + */ + private function getGroupDN($groupname) { + $results = searchLDAPByAttribute('cn', $groupname, 'posixGroup', array('dn'), array('group')); + if ((sizeof($results) > 0) && isset($results[0]['dn'][0])) { + return $results[0]['dn']; + } + return null; + } + + /** + * Finds all existing LDAP groups. + * + * @return array groups array(array(gidnumber, cn), array(gidnumber, cn), ...) + */ + private function findGroups() { + if ($this->groupCache != null) { + return $this->groupCache; + } + $typeSettings = $_SESSION['config']->get_typeSettings(); + $filter = '(objectClass=posixGroup)'; + if ($this->isWindows()) { + $filter = '(&(objectClass=group)(gidNumber=*))'; + } + if (!empty($typeSettings['filter_group'])) { + $typeFilter = $typeSettings['filter_group']; + if (strpos($typeFilter, '(') !== 0) { + $typeFilter = '(' . $typeFilter . ')'; + } + $filter = '(&' . $filter . $typeFilter . ')'; + } + $results = searchLDAPByFilter($filter, array('cn', 'gidnumber'), array('group')); + $return = array(); + for ($i = 0; $i < sizeof($results); $i++) { + if (isset($results[$i]['cn'][0]) && isset($results[$i]['gidnumber'][0])) { + $return[] = array($results[$i]['gidnumber'][0], $results[$i]['cn'][0]); + } + } + $this->groupCache = $return; + return $return; + } + + /** + * Finds all existing LDAP group of names. + * + * @return array groups array(dn => array('cn' => array('groupName'), 'objectClass' => array('top', 'groupOfNames'))) + */ + private function findGroupOfNames() { + if ($this->gonCache != null) { + return $this->gonCache; + } + $return = array(); + $types = array(); + if (in_array('group', $_SESSION['config']->get_ActiveTypes())) { + $types[] = 'group'; + } + if (in_array('gon', $_SESSION['config']->get_ActiveTypes())) { + $types[] = 'gon'; + } + $typeSettings = $_SESSION['config']->get_typeSettings(); + if (sizeof($types) > 0) { + foreach ($types as $type) { + $filter = '(|(objectClass=groupOfNames)(objectClass=groupOfUniqueNames))'; + if (!empty($typeSettings['filter_' . $type])) { + $typeFilter = $typeSettings['filter_' . $type]; + if (strpos($typeFilter, '(') !== 0) { + $typeFilter = '(' . $typeFilter . ')'; + } + $filter = '(&' . $filter . $typeFilter . ')'; + } + $results = searchLDAPByFilter($filter, array('cn', 'dn', 'objectClass'), array($type)); + for ($i = 0; $i < sizeof($results); $i++) { + if (isset($results[$i]['cn'][0]) && isset($results[$i]['dn'])) { + $return[$results[$i]['dn']] = $results[$i]; + } + } + } + } + $this->gonCache = $return; + return $return; + } + + /** + * Returns a list of existing UID numbers. + * + * @return array list of UID numbers + */ + private function getUIDs() { + if ($this->cachedUIDList != null) { + return $this->cachedUIDList; + } + $this->cachedUIDList = array(); + $attrs = array('uidNumber'); + $filter = '(&(objectClass=posixAccount)(uidNumber=*))'; + $types = $_SESSION['config']->get_ActiveTypes(); + // get user UIDs + if (in_array('user', $types)) { + $suffixUsers = $_SESSION['config']->get_Suffix('user'); + if (isset($this->moduleSettings['posixAccount_uidCheckSuffixUser'][0]) && ($this->moduleSettings['posixAccount_uidCheckSuffixUser'][0] != '')) { + $suffixUsers = $this->moduleSettings['posixAccount_uidCheckSuffixUser'][0]; + } + $result = searchLDAP($suffixUsers, $filter, $attrs); + for ($i = 0; $i < sizeof($result); $i++) { + $this->cachedUIDList[] = $result[$i]['uidnumber'][0]; + } + } + // get host UIDs + if (in_array('host', $types)) { + $suffixHosts = $_SESSION['config']->get_Suffix('host'); + if (isset($this->moduleSettings['posixAccount_uidCheckSuffixHost'][0]) && ($this->moduleSettings['posixAccount_uidCheckSuffixHost'][0] != '')) { + $suffixHosts = $this->moduleSettings['posixAccount_uidCheckSuffixHost'][0]; + } + if ($suffixUsers != $suffixHosts) { + $result = searchLDAP($suffixHosts, $filter, $attrs); + for ($i = 0; $i < sizeof($result); $i++) { + $this->cachedUIDList[] = $result[$i]['uidnumber'][0]; + } + } + } + sort($this->cachedUIDList, SORT_NUMERIC); + return $this->cachedUIDList; + } + + /** + * Checks if the given user name already exists in LDAP. + * + * @param String $userName user name + * @return boolean true if already exists + */ + private function userNameExists($userName) { + return in_array($userName, $this->getUserNames()); + } + + /** + * Returns a list of all user names in LDAP. + * + * @return array user names + */ + private function getUserNames() { + if ($this->cachedUserNameList != null) { + return $this->cachedUserNameList; + } + $this->cachedUserNameList = array(); + $attrs = array('uid'); + $filter = '(&(objectClass=posixAccount)(uid=*))'; + $types = $_SESSION['config']->get_ActiveTypes(); + // get user names + if (in_array('user', $types)) { + $suffixUsers = $_SESSION['config']->get_Suffix('user'); + if (isset($this->moduleSettings['posixAccount_uidCheckSuffixUser'][0]) && ($this->moduleSettings['posixAccount_uidCheckSuffixUser'][0] != '')) { + $suffixUsers = $this->moduleSettings['posixAccount_uidCheckSuffixUser'][0]; + } + $result = searchLDAP($suffixUsers, $filter, $attrs); + for ($i = 0; $i < sizeof($result); $i++) { + $this->cachedUserNameList[] = $result[$i]['uid'][0]; + } + } + // get host UIDs + if (in_array('host', $types)) { + $suffixHosts = $_SESSION['config']->get_Suffix('host'); + if (isset($this->moduleSettings['posixAccount_uidCheckSuffixHost'][0]) && ($this->moduleSettings['posixAccount_uidCheckSuffixHost'][0] != '')) { + $suffixHosts = $this->moduleSettings['posixAccount_uidCheckSuffixHost'][0]; + } + if ($suffixUsers != $suffixHosts) { + $result = searchLDAP($suffixHosts, $filter, $attrs); + for ($i = 0; $i < sizeof($result); $i++) { + $this->cachedUserNameList[] = $result[$i]['uid'][0]; + } + } + } + return $this->cachedUserNameList; + } + + /** + * Returns if LAM manages group of names entries. + * + * @return boolean group of names are active + */ + public static function areGroupOfNamesActive() { + if (!isset($_SESSION['config'])) { + return false; + } + if (in_array('group', $_SESSION['config']->get_ActiveTypes())) { + $groupModules = $_SESSION['config']->get_AccountModules('group'); + if (in_array('groupOfNames', $groupModules) || in_array('groupOfUniqueNames', $groupModules)) { + return true; + } + } + if (in_array('gon', $_SESSION['config']->get_ActiveTypes())) { + $gonModules = $_SESSION['config']->get_AccountModules('gon'); + if (in_array('groupOfNames', $gonModules) || in_array('groupOfUniqueNames', $gonModules)) { + return true; + } + } + return false; + } + + /** + * Returns a suggestion for the user name. + * By deafult this wil be the first character of the first name plus the last name. + * + * @param array $attrs LDAP attributes + * @return String user name + */ + protected function getUserNameSuggestion($attrs) { + $attributes = array_change_key_case($attrs, CASE_LOWER); + $format = '@givenname@%sn%'; + if (isset($this->moduleSettings['posixAccount_userNameSuggestion'][0])) { + $format = strtolower($this->moduleSettings['posixAccount_userNameSuggestion'][0]); + } + // search for @key@ wildcards in format string and replace with first character of attribute + $wildcards = array(); + if (preg_match_all('/@([^@]|[a-zA-Z_-])+@/', $format, $wildcards) > 0) { + for ($i = 0; $i < sizeof($wildcards[0]); $i++) { + $wc = substr($wildcards[0][$i], 1, strlen($wildcards[0][$i]) - 2); + $value = ''; + if (isset($attributes[$wc][0]) && !empty($attributes[$wc][0])) { + $value = $attributes[$wc][0][0]; + } + $format = str_replace('@' . $wc . '@', $value, $format); + } + } + // search for %key% wildcards in format string and replace with attribute + $wildcards = array(); + if (preg_match_all('/%([^%]|[a-zA-Z_-])+%/', $format, $wildcards) > 0) { + for ($i = 0; $i < sizeof($wildcards[0]); $i++) { + $wc = substr($wildcards[0][$i], 1, strlen($wildcards[0][$i]) - 2); + $value = ''; + if (isset($attributes[$wc][0])) { + $value = $attributes[$wc][0]; + } + $format = str_replace('%' . $wc . '%', $value, $format); + } + } + $format = str_replace(array_keys($this->umlautReplacements), array_values($this->umlautReplacements), strtolower($format)); + $format = str_replace(array(' ', '_', '-'), array('', '', ''), $format); + return $format; + } + + /** + * Returns if this account can be locked. + * This is the case if a hashed password is set ("{" at the beginning). + */ + public function isLockable() { + if (isset($this->attributes[$this->getPasswordAttrName()][0]) && pwd_is_lockable($this->attributes[$this->getPasswordAttrName()][0])) { + return true; + } + return false; + } + + /** + * Returns if the Unix part of the current account is locked. + * + * @return boolean password is locked + */ + public function isLocked() { + return isset($this->attributes[$this->getPasswordAttrName()][0]) && !pwd_is_enabled($this->attributes[$this->getPasswordAttrName()][0]); + } + + /** + * Locks the user password of this account. + */ + public function lock() { + $pwdAttrName = $this->getPasswordAttrName(); + if (isset($this->attributes[$pwdAttrName][0])) { + $this->attributes[$pwdAttrName][0] = pwd_disable($this->attributes[$pwdAttrName][0]); + } + } + + /** + * Unlocks the user password of this account. + */ + public function unlock() { + $pwdAttrName = $this->getPasswordAttrName(); + if (isset($this->attributes[$pwdAttrName][0])) { + $this->attributes[$pwdAttrName][0] = pwd_enable($this->attributes[$pwdAttrName][0]); + } + } + + /** + * Removes all Unix group memberships from this user. + */ + public function removeFromUnixGroups() { + $this->groups = array(); + } + + /** + * Removes all group of names memberships from this user. + */ + public function removeFromGONGroups() { + $this->gonList = array(); + } + + /** + * Returns the next possible user name based on the given one. + * If the user name does not end with a number then a "2" is added. + * User names with numbers at the end are simply increased by one. + *
    + *
    Attention: This user name might still be in use. This needs to be checked separately. + * + * @param String $userName user name + * @return String new user name + */ + protected function getNextUserName($userName) { + if ($this->get_scope()=='host') { + $userName = substr($userName, 0, -1); + } + // get last character of username + $lastchar = substr($userName, strlen($userName) - 1, 1); + // Last character is no number + if ( !preg_match('/^([0-9])+$/', $lastchar)) { + // Last character is no number. Therefore we only have to add "2" to it. + if ($this->get_scope()=='host') { + $userName = $userName . '2$'; + } + else { + $userName = $userName . '2'; + } + } + else { + /* Last character is a number -> we have to increase the number until we've + * found a groupname with trailing number which is not in use. + * + * $i will show us were we have to split groupname so we get a part + * with the groupname and a part with the trailing number + */ + $i = strlen($userName) - 1; + $mark = false; + // Set $i to the last character which is a number in $account_new->general_username + while (!$mark) { + if (preg_match('/^([0-9])+$/', substr($userName, $i, strlen($userName) - $i))) { + $i--; + } + else { + $mark=true; + } + } + // increase last number with one + $firstchars = substr($userName, 0, $i + 1); + $lastchars = substr($userName, $i + 1, strlen($userName) - $i); + // Put username together + if ($this->get_scope()=='host') { + $userName = $firstchars . (intval($lastchars) + 1) . "$"; + } + else { + $userName = $firstchars . (intval($lastchars) + 1); + } + } + return $userName; + } + + /** + * Returns the list of possible login shells. + * + * @return array login shells + */ + private function getShells() { + // self service + if (!isset($_SESSION['loggedIn']) && isset($this->selfServiceSettings) && isset($this->selfServiceSettings->moduleSettings['posixAccount_shells']) + && (sizeof($this->selfServiceSettings->moduleSettings['posixAccount_shells'])) > 0) { + return $this->selfServiceSettings->moduleSettings['posixAccount_shells']; + } + // server profile + if (!isset($this->selfServiceSettings) && isset($this->moduleSettings) && isset($this->moduleSettings['posixAccount_shells']) + && (sizeof($this->moduleSettings['posixAccount_shells'])) > 0) { + return $this->moduleSettings['posixAccount_shells']; + } + // fall back to default + return array( + '/bin/bash', + '/bin/csh', + '/bin/dash', + '/bin/false', + '/bin/ksh', + '/bin/sh' + ); + } + + /** + * Returns if the cn attribute should be managed. + * If Windows modules are active then cn will not be managed. + * + * @return boolean manage cn attribute + */ + private function manageCn() { + if (isset($_SESSION['config'])) { + $conf = $_SESSION['config']; + if (in_array('windowsUser', $conf->get_AccountModules($this->get_scope()))) { + return false; + } + else { + return true; + } + } + return false; + } + + /** + * Returns if the Unix part can be added and removed. + * + * @return boolean is optional + */ + private function isOptional() { + return !$this->manageCn(); + } + + /** + * Returns if the Windows module is active. + * + * @return boolean is Windows + */ + private function isWindows() { + return !$this->manageCn(); + } + + /** + * Returns the password attribute. + * Usually, this is userPassword. If Windows modules are active this is unixUserPassword. + * + * @return boolean attribute name + */ + private function getPasswordAttrName() { + $name = 'userPassword'; + if (isset($_SESSION['config'])) { + $conf = $_SESSION['config']; + if (in_array('windowsUser', $conf->get_AccountModules($this->get_scope()))) { + return 'unixUserPassword'; + } + } + return $name; + } + + /** + * Returns the home directory attribute. + * Usually, this is homeDirectory. If Windows modules are active this is unixHomeDirectory. + * + * @return boolean attribute name + */ + private function getHomedirAttrName() { + $name = 'homeDirectory'; + if (isset($_SESSION['config'])) { + $conf = $_SESSION['config']; + if (in_array('windowsUser', $conf->get_AccountModules($this->get_scope()))) { + return 'unixHomeDirectory'; + } + } + return $name; + } + +} + +?> diff --git a/lam/lib/modules/posixGroup.inc b/lam/lib/modules/posixGroup.inc new file mode 100644 index 00000000..91767fe4 --- /dev/null +++ b/lam/lib/modules/posixGroup.inc @@ -0,0 +1,1147 @@ + value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $error_messages = array(); + $needAutoGID = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + if (!in_array("posixGroup", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "posixGroup"; + if ($this->manageCnAttribute) { + // group name + if (get_preg($rawAccounts[$i][$ids['posixGroup_cn']], 'groupname')) { + $partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['posixGroup_cn']]; + } + else { + $errMsg = $this->messages['cn'][3]; + array_push($errMsg, array($i)); + $error_messages[] = $errMsg; + } + } + // GID + if ($rawAccounts[$i][$ids['posixGroup_gid']] == "") { + // autoGID + $needAutoGID[] = $i; + } + elseif (get_preg($rawAccounts[$i][$ids['posixGroup_gid']], 'digit')) { + $partialAccounts[$i]['gidNumber'] = $rawAccounts[$i][$ids['posixGroup_gid']]; + } + else { + $errMsg = $this->messages['gidNumber'][8]; + array_push($errMsg, array($i)); + $error_messages[] = $errMsg; + } + if ($this->manageDescriptionAttribute) { + // description (UTF-8, no regex check needed) + if ($rawAccounts[$i][$ids['posixGroup_description']] == "") { + $partialAccounts[$i]['description'] = $partialAccounts[$i]['cn']; + } + else { + $partialAccounts[$i]['description'] = $rawAccounts[$i][$ids['posixGroup_description']]; + } + } + // group members + if (!$this->isBooleanConfigOptionSet('posixGroup_hidememberUid') && ($rawAccounts[$i][$ids['posixGroup_members']] != "")) { + if (get_preg($rawAccounts[$i][$ids['posixGroup_members']], 'usernameList')) { + $partialAccounts[$i]['memberUid'] = explode(",", $rawAccounts[$i][$ids['posixGroup_members']]); + } + else { + $errMsg = $this->messages['memberUID'][0]; + array_push($errMsg, $i); + $error_messages[] =$errMsg; + } + } + // password + if ($rawAccounts[$i][$ids['posixGroup_password']] != "") { + if (get_preg($rawAccounts[$i][$ids['posixGroup_password']], 'password')) { + $partialAccounts[$i][$this->passwordAttrName] = pwd_hash($rawAccounts[$i][$ids['posixGroup_password']], true, $this->moduleSettings['posixAccount_pwdHash'][0]); + } + else { + $error_messages[] = $this->messages['userPassword'][1]; + } + } + } + // fill in autoGIDs + if (sizeof($needAutoGID) > 0) { + $errorsTemp = array(); + $gids = $this->getNextGIDs(sizeof($needAutoGID), $errorsTemp); + if (is_array($gids)) { + for ($i = 0; $i < sizeof($needAutoGID); $i++) { + $partialAccounts[$i]['gidNumber'] = $gids[$i]; + } + } + else { + $error_messages[] = $this->messages['gidNumber'][2]; + } + } + return $error_messages; + } + + /** + * Checks if the group which should be deleted is still used as primary group. + * + * @return List of LDAP operations, same as for save_attributes() + */ + function delete_attributes() { + $return = array(); + $result = searchLDAPByFilter('(&(objectClass=posixAccount)(gidNumber=' . $this->attributes['gidNumber'][0] . '))', array('dn'), array('user', 'host')); + if (sizeof($result) > 0) { + $max = 5; + if (sizeof($result) < 5) { + $max = sizeof($result); + } + $users = array(); + for ($i = 0; $i < $max; $i++) { + $users[] = getAbstractDN($result[$i]['dn']); + } + $message = $this->messages['primaryGroup'][0]; + $message[] = implode(', ', $users); + $return[$this->getAccountContainer()->dn_orig]['errors'][] = $message; + } + return $return; + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return array HTML meta data + * + * @see baseModule::get_metaData() + */ + function display_html_attributes() { + $return = new htmlTable(); + if ($this->autoAddObjectClasses || (isset($this->attributes['objectClass']) && in_array('posixGroup', $this->attributes['objectClass']))) { + // group name + if ($this->manageCnAttribute) { + $cn = ''; + if (isset($this->attributes['cn'][0])) { + $cn = $this->attributes['cn'][0]; + } + $cnInput = new htmlTableExtendedInputField(_("Group name"), 'cn', $cn, 'cn'); + $cnInput->setRequired(true); + $cnInput->setFieldMaxLength(100); + $return->addElement($cnInput, true); + } + // GID number + $gidNumber = ''; + if (isset($this->attributes['gidNumber'][0])) { + $gidNumber = $this->attributes['gidNumber'][0]; + } + $gidNumberInput = new htmlTableExtendedInputField(_('GID number'), 'gidNumber', $gidNumber, 'gidNumber'); + $gidNumberInput->setFieldMaxLength(20); + $gidNumberInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($gidNumberInput, true); + // description + $description = ''; + if (isset($this->attributes['description'][0])) { + $description = $this->attributes['description'][0]; + } + if ($this->manageDescriptionAttribute) { + $return->addElement(new htmlTableExtendedInputField(_('Description'), 'description', $description, 'description'), true); + } + // password buttons + if (checkIfWriteAccessIsAllowed($this->get_scope()) && isset($this->attributes[$this->passwordAttrName][0])) { + $return->addElement(new htmlOutputText(_('Password'))); + $pwdContainer = new htmlTable(); + if (pwd_is_enabled($this->attributes[$this->passwordAttrName][0])) { + $pwdContainer->addElement(new htmlButton('lockPassword', _('Lock password'))); + } + else { + $pwdContainer->addElement(new htmlButton('unlockPassword', _('Unlock password'))); + } + $pwdContainer->addElement(new htmlButton('removePassword', _('Remove password'))); + $pwdContainer->colspan = 2; + $return->addElement($pwdContainer, true); + } + if (isset($this->orig['gidNumber'][0]) && $this->attributes['gidNumber'][0]!=$this->orig['gidNumber'][0]) { + $return->addElement(new htmlTableExtendedInputCheckbox('changegids', $this->changegids, _('Change GID number of users and hosts'), 'changegids'), true); + } + // group members + if (!$this->isBooleanConfigOptionSet('posixGroup_hidememberUid')) { + $return->addElement(new htmlOutputText(_("Group members"))); + $return->addElement(new htmlAccountPageButton(get_class($this), 'user', 'open', _('Edit members'))); + $return->addElement(new htmlHelpLink('members'), true); + $return->addElement(new htmlOutputText('')); + $users = $this->getUsers(); + $members = array(); + if (isset($this->attributes['memberUid'][0])) { + foreach ($this->attributes['memberUid'] as $uid) { + if (isset($users[$uid]) && isset($users[$uid]['cn'])) { + $members[] = $uid . ' (' . $users[$uid]['cn'] . ')'; + } + else { + $members[] = $uid; + } + } + } + $members = array_unique($members); + natcasesort($members); + $members = array_map('htmlspecialchars', $members); + $return->addElement(new htmlOutputText(implode('
    ', $members), false), true); + } + // remove button + if (!$this->autoAddObjectClasses) { + $return->addElement(new htmlSpacer(null, '20px'), true); + $remButton = new htmlButton('remObjectClass', _('Remove Unix extension')); + $remButton->colspan = 5; + $return->addElement($remButton); + } + } + else { + // add button + $return->addElement(new htmlButton('addObjectClass', _('Add Unix extension'))); + } + return $return; + } + + + /** + * Displays selections to add or remove users from current group. + * + * @return array meta HTML output + */ + function display_html_user() { + $return = new htmlTable(); + $filter = ''; + if (isset($_POST['setFilter'])) { + $filter = $_POST['newFilter']; + } + if (!isset($this->attributes['memberUid'])) { + $this->attributes['memberUid'] = array(); + } + // load list with all users + $userAndGIDs = $this->getUsers(); + $users = array(); + foreach ($userAndGIDs as $user => $userAttrs) { + if (!in_array($user, $this->attributes['memberUid'])) { + $display = $user . ' (' . $userAttrs['cn'] . ')'; + if (!empty($filter) && !preg_match('/' . str_replace('*', '.*', $filter) . '/ui', $display)) { + continue; + } + if ($this->attributes['gidNumber'][0] == $userAttrs['gid']) { + if (isset($this->moduleSettings['posixAccount_primaryGroupAsSecondary'][0]) + && ($this->moduleSettings['posixAccount_primaryGroupAsSecondary'][0] == 'true')) { + $users[$display] = $user; + } + } + else { + $users[$display] = $user; + } + } + } + $return->addElement(new htmlSubTitle(_("Group members")), true); + + $return->addElement(new htmlOutputText(_("Selected users"))); + $return->addElement(new htmlOutputText('')); + $return->addElement(new htmlOutputText(_("Available users"))); + $return->addNewLine(); + + $remUsers = array(); + if (isset($this->attributes['memberUid'])) { + $remUsers = $this->attributes['memberUid']; + } + $remUsersDescriptive = array(); + foreach ($remUsers as $user) { + if (isset($userAndGIDs[$user])) { + $remUsersDescriptive[$user . ' (' . $userAndGIDs[$user]['cn'] . ')'] = $user; + } + else { + $remUsersDescriptive[$user] = $user; + } + } + $remSelect = new htmlSelect('removeusers', $remUsersDescriptive, null, 15); + $remSelect->setMultiSelect(true); + $remSelect->setTransformSingleSelect(false); + $remSelect->setHasDescriptiveElements(true); + $return->addElement($remSelect); + $buttonContainer = new htmlTable(); + $buttonContainer->addElement(new htmlButton('addusers_button', 'back.gif', true), true); + $buttonContainer->addElement(new htmlButton('removeusers_button', 'forward.gif', true), true); + $buttonContainer->addElement(new htmlHelpLink('members')); + $return->addElement($buttonContainer); + $addSelect = new htmlSelect('addusers', $users, null, 15); + $addSelect->setMultiSelect(true); + $addSelect->setTransformSingleSelect(false); + $addSelect->setHasDescriptiveElements(true); + $return->addElement($addSelect); + $return->addNewLine(); + $return->addElement(new htmlOutputText('')); + $return->addElement(new htmlOutputText('')); + $filterContainer = new htmlGroup(); + $filterInput = new htmlInputField('newFilter', $filter, 10); + $filterInput->setOnKeyPress('SubmitForm(\'setFilter\', event);'); + $filterContainer->addElement($filterInput); + $filterContainer->addElement(new htmlButton('setFilter', _('Filter'))); + $filterContainer->addElement(new htmlHelpLink('filter')); + $filterContainer->addElement(new htmlHiddenInput('filterValue', htmlspecialchars($filter))); + $return->addElement($filterContainer, true); + + // back button + $return->addElement(new htmlSpacer(null, '10px'), true); + $return->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'back', _('Back'))); + $return->addElement(new htmlEqualHeight(array('removeusers', 'addusers'))); + + return $return; + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('group')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'tux.png'; + if ($this->get_scope() == "group") { + // this is a base module + $return["is_base"] = true; + // LDAP filter + $return["ldap_filter"] = array('or' => "(objectClass=posixGroup)"); + } + // alias name + $return["alias"] = _('Unix'); + // RDN attribute + $return["RDN"] = array("cn" => "normal"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('posixGroup'); + // LDAP aliases + $return['LDAPaliases'] = array('commonName' => 'cn'); + // managed attributes + $return['attributes'] = array('gidNumber', $this->passwordAttrName); + if (!$this->isBooleanConfigOptionSet('posixGroup_hidememberUid')) { + $return['attributes'][] = 'memberUid'; + } + if ($this->manageCnAttribute) { + $return['attributes'][] = 'cn'; + } + if ($this->manageDescriptionAttribute) { + $return['attributes'][] = 'description'; + } + // profile options + if (!$this->autoAddObjectClasses) { + $profileContainer = new htmlTable(); + $profileContainer->addElement(new htmlTableExtendedInputCheckbox('posixGroup_addExt', false, _('Automatically add this extension'), 'autoAdd'), true); + $return['profile_options'] = $profileContainer; + } + // configuration options + $configContainer = new htmlTable(); + $configContainer->addElement(new htmlSubTitle(_("Groups")), true); + $gidGeneratorSelect = new htmlTableExtendedSelect('posixGroup_gidGenerator', array(_('Fixed range') => 'range', _('Samba ID pool') => 'sambaPool'), array('range'), _('GID generator'), 'gidGenerator'); + $gidGeneratorSelect->setHasDescriptiveElements(true); + $gidGeneratorSelect->setTableRowsToHide(array('range' => array('posixGroup_sambaIDPoolDN'), 'sambaPool' => array('posixGroup_minGID', 'posixGroup_maxGID'))); + $gidGeneratorSelect->setTableRowsToShow(array('range' => array('posixGroup_minGID', 'posixGroup_maxGID'), 'sambaPool' => array('posixGroup_sambaIDPoolDN'))); + $configContainer->addElement($gidGeneratorSelect, true); + $minGidInput = new htmlTableExtendedInputField(_('Minimum GID number'), 'posixGroup_minGID', null, 'minMaxGID'); + $minGidInput->setRequired(true); + $configContainer->addElement($minGidInput, true); + $maxGidInput = new htmlTableExtendedInputField(_('Maximum GID number'), 'posixGroup_maxGID', null, 'minMaxGID'); + $maxGidInput->setRequired(true); + $configContainer->addElement($maxGidInput, true); + $gidGeneratorDN = new htmlTableExtendedInputField(_('Samba ID pool DN'), 'posixGroup_sambaIDPoolDN', null, 'sambaIDPoolDN'); + $gidGeneratorDN->setRequired(true); + $configContainer->addElement($gidGeneratorDN, true); + $configContainer->addElement(new htmlTableExtendedInputField(_('Suffix for GID/group name check'), 'posixGroup_gidCheckSuffix', '', 'gidCheckSuffix'), true); + $configContainer->addElement(new htmlTableExtendedInputCheckbox('posixGroup_hidememberUid', false, _('Disable membership management'), 'hidememberUid'), true); + $return['config_options']['group'] = $configContainer; + // available PDF fields + $return['PDF_fields'] = array( + 'gidNumber' => _('GID number'), + ); + if (!$this->isBooleanConfigOptionSet('posixGroup_hidememberUid')) { + $return['PDF_fields']['memberUid'] = _('Group members'); + } + if ($this->manageCnAttribute) { + $return['PDF_fields']['cn'] = _('Group name'); + } + if ($this->manageDescriptionAttribute) { + $return['PDF_fields']['description'] = _('Description'); + } + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'posixGroup_gid', + 'description' => _('GID number'), + 'help' => 'gidNumber', + 'example' => '2034' + ), + array( + 'name' => 'posixGroup_password', + 'description' => _('Group password'), + 'help' => 'password', + 'example' => _('secret') + ) + ); + if (!$this->isBooleanConfigOptionSet('posixGroup_hidememberUid')) { + $return['upload_columns'][] = array( + 'name' => 'posixGroup_members', + 'description' => _('Group members'), + 'help' => 'upload_members', + 'example' => _('user01,user02,user03') + ); + } + if ($this->manageCnAttribute) { + array_unshift($return['upload_columns'], + array( + 'name' => 'posixGroup_cn', + 'description' => _('Group name'), + 'help' => 'cn', + 'example' => _('adminstrators'), + 'required' => true, + 'unique' => true + ) + ); + } + if ($this->manageDescriptionAttribute) { + array_unshift($return['upload_columns'], + array( + 'name' => 'posixGroup_description', + 'description' => _('Group description'), + 'help' => 'description', + 'example' => _('Administrators group') + ) + ); + } + // help Entries + $return['help'] = array( + 'gidNumber' => array( + "Headline" => _("GID number"), 'attr' => 'gidNumber', + "Text" => _("If empty GID number will be generated automaticly depending on your configuration settings.") + ), + 'description' => array( + "Headline" => _("Description"), 'attr' => 'description', + "Text" => _("Group description. If left empty group name will be used.") + ), + 'members' => array( + "Headline" => _("Group members"), 'attr' => 'memberUid', + "Text" => _("Users who are member of the current group. Users who have set their primary group to this group will not be shown.") + ), + 'upload_members' => array( + "Headline" => _("Group members"), 'attr' => 'memberUid', + "Text" => _("Users who will become member of the current group. User names are separated by semicolons.") + ), + 'password' => array( + "Headline" => _("Group password"), 'attr' => $this->passwordAttrName, + "Text" => _("Sets the group password.") + ), + 'minMaxGID' => array( + "Headline" => _("GID number"), + "Text" => _("These are the minimum and maximum numbers to use for group IDs when creating new group accounts. New group accounts will always get the highest number in use plus one.") + ), + 'pwdHash' => array( + "Headline" => _("Password hash type"), + "Text" => _("LAM supports CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 and SMD5 to generate the hash value of passwords. SSHA and CRYPT are the most common but CRYPT does not support passwords greater than 8 letters. We do not recommend to use plain text passwords.") + ), + 'cn' => array( + "Headline" => _("Group name"), 'attr' => 'cn', + "Text" => _("Group name of the group which should be created. Valid characters are: a-z, A-Z, 0-9 and .-_ . If group name is already used group name will be expanded with a number. The next free number will be used.") + ), + 'changegids' => array( + "Headline" => _("Change GID number of users and hosts"), + "Text" => _("The ID of this group was changed. You can update all user and host entries to the new group ID.") + ), + 'gidCheckSuffix' => array ( + "Headline" => _("Suffix for GID/group name check"), + "Text" => _("LAM checks if the entered group name and GID are unique. Here you can enter the LDAP suffix that is used to search for duplicates. By default the account type suffix is used. You only need to change this if you use multiple server profiles with different OUs but need unique group names or GIDs.") + ), + 'gidGenerator' => array ( + "Headline" => _("GID generator"), + "Text" => _("LAM will automatically suggest UID/GID numbers. You can either use a fixed range of numbers or an LDAP entry with object class \"sambaUnixIdPool\".") + ), + 'sambaIDPoolDN' => array ( + "Headline" => _("Samba ID pool DN"), + "Text" => _("Please enter the DN of the LDAP entry with object class \"sambaUnixIdPool\".") + ), + 'filter' => array( + "Headline" => _("Filter"), + "Text" => _("Here you can enter a filter value. Only entries which contain the filter text will be shown.") + . ' ' . _('Possible wildcards are: "*" = any character, "^" = line start, "$" = line end') + ), + 'hidememberUid' => array( + "Headline" => _('Disable membership management'), 'attr' => 'memberUid', + "Text" => _('Disables the group membership management.') + ), + 'autoAdd' => array( + "Headline" => _("Automatically add this extension"), + "Text" => _("This will enable the extension automatically if this profile is loaded.") + ), + ); + + return $return; + } + + + /** + * Returns a list of elements for the configuration. + * + * @param array $scopes account types (user, group, host) + * @param array $allScopes list of all modules and active scopes + * @return array configuration elements + */ + function get_configOptions($scopes, $allScopes) { + $return = parent::get_configOptions($scopes, $allScopes); + // display password hash option only if posixAccount module is not used + if (!isset($allScopes['posixAccount'])) { + $return[0]->addElement(new htmlTableExtendedSelect('posixAccount_pwdHash', getSupportedHashTypes(), array('SSHA'), _("Password hash type"), 'pwdHash')); + } + return $return; + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'memberUid', _('Group members')); + $this->addSimplePDFField($return, 'cn', _('Group name')); + $this->addSimplePDFField($return, 'gidNumber', _('GID number')); + $this->addSimplePDFField($return, 'description', _('Description')); + return $return; + } + + + /** + * This functin will be called when the module will be loaded + * + * @param String $base the name of the {@link accountContainer} object ($_SESSION[$base]) + */ + function init($base) { + // call parent init + parent::init($base); + $this->changegids=false; + } + + + /** + * This function fills the $messages variable with output messages from this module. + */ + function load_Messages() { + $this->messages['userPassword'][1] = array('ERROR', _('Password'), _('Password contains invalid characters. Valid characters are:') . ' a-z, A-Z, 0-9 and #*,.;:_-+!%&/|?{[()]}=@$ §°!'); + $this->messages['gidNumber'][0] = array('INFO', _('GID number'), _('GID number has changed. Please select checkbox to change GID number of users and hosts.')); + $this->messages['gidNumber'][2] = array('WARN', _('ID-Number'), _('It is possible that this ID-number is reused. This can cause several problems because files with old permissions might still exist. To avoid this warning set maxUID to a higher value.')); + $this->messages['gidNumber'][3] = array('ERROR', _('ID-Number'), _('No free ID-Number!')); + $this->messages['gidNumber'][4] = array('ERROR', _('ID-Number'), _('ID is already in use')); + $this->messages['gidNumber'][5] = array('ERROR', _('Minimum GID number'), _('Minimum GID number is invalid or empty!')); + $this->messages['gidNumber'][6] = array('ERROR', _('Maximum GID number'), _('Maximum GID number is invalid or empty!')); + $this->messages['gidNumber'][7] = array('ERROR', _('Maximum GID number'), _('Maximum GID number must be greater than minimum GID number!')); + $this->messages['gidNumber'][8] = array('ERROR', _('Account %s:') . ' posixGroup_gid', _('GID number has to be a numeric value!')); + $this->messages['cn'][0] = array('WARN', _('Group name'), _('You are using capital letters. This can cause problems because Windows is not case-sensitive.')); + $this->messages['cn'][1] = array('WARN', _('Group name'), _('Group name in use. Selected next free group name.')); + $this->messages['cn'][2] = array('ERROR', _('Group name'), _('Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['cn'][3] = array('ERROR', _('Account %s:') . ' posixGroup_cn', _('Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['memberUID'][0] = array('ERROR', _('Account %s:') . ' posixGroup_members', _("This value must be a list of user names separated by semicolons.")); + $this->messages['primaryGroup'][0] = array('ERROR', _('There are still users who have this group as their primary group.')); + $this->messages['sambaIDPoolDN'][0] = array('ERROR', _('Samba ID pool DN'), _('This is not a valid DN!')); + } + + + /** + * This functions is used to check if all settings for this module have been made. + * + * @return boolean true, if settings are complete + */ + function module_complete() { + if (!$this->getAccountContainer()->isNewAccount) { + // check if account is based on our object class + $objectClasses = $this->getAccountContainer()->attributes_orig['objectClass']; + if (is_array($objectClasses) && !in_array('posixGroup', $objectClasses)) { + return true; + } + } + if ($this->manageCnAttribute && ($this->attributes['cn'][0] == '')) return false; + if ($this->attributes['gidNumber'][0] == '') return false; + return true; + } + + + /** + * Controls if the module button the account page is visible and activated. + * + * @return string status ("enabled", "disabled", "hidden") + */ + function getButtonStatus() { + if (!$this->getAccountContainer()->isNewAccount) { + // check if account is based on our object class + $objectClasses = $this->getAccountContainer()->attributes_orig['objectClass']; + if (is_array($objectClasses) && !in_array('posixGroup', $objectClasses)) { + return "disabled"; + } + } + return "enabled"; + } + + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + $errors = array(); + if (isset($_POST['addObjectClass'])) { + if (!isset($this->attributes['objectClass'])) { + $this->attributes['objectClass'] = array(); + } + if (!in_array('posixGroup', $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = 'posixGroup'; + } + return $errors; + } + if (isset($_POST['remObjectClass'])) { + $this->attributes['objectClass'] = array_delete(array('posixGroup'), $this->attributes['objectClass']); + $attrs = $this->getManagedAttributes(); + foreach ($attrs as $name) { + if (isset($this->attributes[$name])) { + unset($this->attributes[$name]); + } + } + return $errors; + } + // skip processing if object class is not set + if (!$this->autoAddObjectClasses && (!isset($this->attributes['objectClass']) || !in_array('posixGroup', $this->attributes['objectClass']))) { + return $errors; + } + if ($this->manageDescriptionAttribute) { + $this->attributes['description'][0] = $_POST['description']; + } + if (isset($_POST['lockPassword'])) { + $this->attributes[$this->passwordAttrName][0] = pwd_disable($this->attributes[$this->passwordAttrName][0]); + } + if (isset($_POST['unlockPassword'])) { + $this->attributes[$this->passwordAttrName][0] = pwd_enable($this->attributes[$this->passwordAttrName][0]); + } + if (isset($_POST['removePassword'])) { + unset($this->attributes[$this->passwordAttrName]); + } + if (isset($_POST['changegids'])) $this->changegids=true; + else $this->changegids=false; + if (!isset($this->attributes['gidNumber'][0]) || ($this->attributes['gidNumber'][0] != $_POST['gidNumber'])) { + // Check if GID is valid. If none value was entered, the next useable value will be inserted + // load min and max GID number + $minID = intval($this->moduleSettings['posixGroup_minGID'][0]); + $maxID = intval($this->moduleSettings['posixGroup_maxGID'][0]); + $this->attributes['gidNumber'][0] = $_POST['gidNumber']; + if ($this->attributes['gidNumber'][0]=='') { + // No id-number given, find free GID + if (!isset($this->orig['gidNumber'][0])) { + $newGID = $this->getNextGIDs(1, $errors); + if (is_array($newGID)) { + $this->attributes['gidNumber'][0] = $newGID[0]; + } + else { + $errors[] = $this->messages['gidNumber'][3]; + } + } + else $this->attributes['gidNumber'][0] = $this->orig['gidNumber'][0]; + // old account -> return id-number which has been used + } + else { + $gids = $this->getGIDs(); + // Check manual ID + if ($this->getAccountContainer()->isNewAccount || !isset($this->orig['gidNumber'][0]) || ($this->orig['gidNumber'][0] != $this->attributes['gidNumber'][0])) { + // check range + if (($this->attributes['gidNumber'][0] < $minID) || ($this->attributes['gidNumber'][0] > $maxID) || !is_numeric($this->attributes['gidNumber'][0])) { + $errors[] = array('ERROR', _('ID-Number'), sprintf(_('Please enter a value between %s and %s!'), $minID, $maxID)); + if (isset($this->orig['gidNumber'][0])) $this->attributes['gidNumber'][0] = $this->orig['gidNumber'][0]; + else unset($this->attributes['gidNumber'][0]); + } + // $uids is allways an array but not if no entries were found + if (is_array($gids)) { + // id-number is in use and account is a new account + if ((in_array($this->attributes['gidNumber'][0], $gids)) && $this->orig['gidNumber'][0]=='') { + $errors[] = $this->messages['gidNumber'][4]; + unset($this->attributes['gidNumber'][0]); + } + // id-number is in use, account is existing account and id-number is not used by itself + if ((in_array($this->attributes['gidNumber'][0], $gids)) && $this->orig['gidNumber'][0]!='' && ($this->orig['gidNumber'][0] != $this->attributes['gidNumber'][0]) ) { + $errors[] = $this->messages['gidNumber'][4]; + $this->attributes['gidNumber'][0] = $this->orig['gidNumber'][0]; + } + } + } + } + } + if ($this->manageCnAttribute) { + $this->attributes['cn'][0] = $_POST['cn']; + if (preg_match('/^[A-Z]+$/', $_POST['cn'])) { + $errors[] = $this->messages['cn'][0]; + } + // Check if Groupname contains only valid characters + if ( !get_preg($this->attributes['cn'][0],'groupname')) + $errors[] = $this->messages['cn'][2]; + // Create automatic useraccount with number if original user already exists + // Reset name to original name if new name is in use + // Set username back to original name if new group name is in use + if ($this->groupNameExists($this->attributes['cn'][0]) && ($this->orig['cn'][0] != '')) { + $this->attributes['cn'][0] = $this->orig['cn'][0]; + } + // Change gid to a new gid until a free gid is found + else while ($this->groupNameExists($this->attributes['cn'][0])) { + // get last character of group name + $lastchar = substr($this->attributes['cn'][0], strlen($this->attributes['cn'][0])-1, 1); + // Last character is no number + if ( !preg_match('/^([0-9])+$/', $lastchar)) + /* Last character is no number. Therefore we only have to + * add "2" to it. + */ + $this->attributes['cn'][0] = $this->attributes['cn'][0] . '2'; + else { + /* Last character is a number -> we have to increase the number until we've + * found a groupname with trailing number which is not in use. + * + * $i will show us were we have to split groupname so we get a part + * with the groupname and a part with the trailing number + */ + $i=strlen($this->attributes['cn'][0])-1; + $mark = false; + // Set $i to the last character which is a number in $account_new->general_username + while (!$mark) { + if (preg_match('/^([0-9])+$/',substr($this->attributes['cn'][0], $i, strlen($this->attributes['cn'][0])-$i))) $i--; + else $mark=true; + } + // increase last number with one + $firstchars = substr($this->attributes['cn'][0], 0, $i+1); + $lastchars = substr($this->attributes['cn'][0], $i+1, strlen($this->attributes['cn'][0])-$i); + // Put username together + $this->attributes['cn'][0] = $firstchars . (intval($lastchars)+1); + } + } + // Show warning if lam has changed group name + if ($this->attributes['cn'][0] != $_POST['cn']) { + $errors[] = $this->messages['cn'][1]; + } + } + // show info when gidnumber has changed + if (isset($this->orig['gidNumber'][0]) && ($this->orig['gidNumber'][0] != $this->attributes['gidNumber'][0]) + && ($this->orig['gidNumber'][0] != '') && !$this->changegids) { + $errors[] = $this->messages['gidNumber'][0]; + } + // Return error-messages + return $errors; + } + + + /** + * Processes user input of the user selection page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_user() { + if (!isset($this->attributes['memberUid'])) $this->attributes['memberUid'] = array(); + if (isset($_POST['addusers']) && isset($_POST['addusers_button'])) { // Add users to list + // Add new user + $this->attributes['memberUid'] = @array_merge($this->attributes['memberUid'], $_POST['addusers']); + } + elseif (isset($_POST['removeusers']) && isset($_POST['removeusers_button'])) { // remove users from list + $this->attributes['memberUid'] = array_delete($_POST['removeusers'], $this->attributes['memberUid']); + } + return array(); + } + + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + function save_attributes() { + // skip saving if account is based on another structural object class + if ($this->is_base_module() && !$this->getAccountContainer()->isNewAccount && !in_array('posixGroup', $this->getAccountContainer()->attributes_orig['objectClass'])) { + return array(); + } + if (!in_array('posixGroup', $this->attributes['objectClass']) && !in_array('posixGroup', $this->orig['objectClass'])) { + // skip saving if the extension was not added/modified + return array(); + } + $return = $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig); + // Change gids of users and hosts? + if ($this->changegids) { + // find all accounts to change + $result = searchLDAPByFilter('(&(objectClass=posixAccount)(gidNumber=' . $this->orig['gidNumber'][0] . '))', array('dn'), array('user', 'host')); + if (sizeof($result) > 0) { + for ($i = 0; $i < sizeof($result); $i++) { + $return[$result[$i]['dn']]['modify']['gidNumber'][0] = $this->attributes['gidNumber'][0]; + } + } + } + return $return; + } + + /** + * Loads the values of an account profile into internal variables. + * + * @param array $profile hash array with profile values (identifier => value) + */ + function load_profile($profile) { + // profile mappings in meta data + parent::load_profile($profile); + // add extension + if (isset($profile['posixGroup_addExt'][0]) && ($profile['posixGroup_addExt'][0] == "true")) { + if (!in_array('posixGroup', $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = 'posixGroup'; + } + } + } + + /** + * Checks input values of module settings. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * If the input data is invalid the return value is an array that contains subarrays to build StatusMessages ('message type', 'message head', 'message text'). + *
    If no errors occured the function returns an empty array. + * + * @param array $scopes list of account types which are used + * @param array $options hash array (option name => value) that contains the input. The option values are all arrays containing one or more elements. + * @return array list of error messages + * + * @see baseModule::get_metaData() + */ + public function check_configOptions($scopes, &$options) { + if ($options['posixGroup_gidGenerator'][0] == 'range') { + $this->meta['config_checks']['group']['posixGroup_minGID'] = array ( + 'type' => 'ext_preg', + 'regex' => 'digit', + 'required' => true, + 'required_message' => $this->messages['gidNumber'][5], + 'error_message' => $this->messages['gidNumber'][5]); + $this->meta['config_checks']['group']['posixGroup_maxGID'] = array ( + 'type' => 'ext_preg', + 'regex' => 'digit', + 'required' => true, + 'required_message' => $this->messages['gidNumber'][6], + 'error_message' => $this->messages['gidNumber'][6]); + $this->meta['config_checks']['group']['cmpGID'] = array ( + 'type' => 'int_greater', + 'cmp_name1' => 'posixGroup_maxGID', + 'cmp_name2' => 'posixGroup_minGID', + 'error_message' => $this->messages['gidNumber'][7]); + } + else { + $this->meta['config_checks']['group']['posixGroup_sambaIDPoolDN'] = array ( + 'type' => 'ext_preg', + 'regex' => 'dn', + 'required' => true, + 'required_message' => $this->messages['sambaIDPoolDN'][0], + 'error_message' => $this->messages['sambaIDPoolDN'][0]); + } + return parent::check_configOptions($scopes, $options); + } + + /** + * Returns one or more free GID numbers. + * + * @param integer $count Number of needed free GIDs. + * @param array $errors list of error messages where errors can be added + * @return mixed Null if no GIDs are free else an array of free GIDs. + */ + function getNextGIDs($count, &$errors) { + // check if UIDs should be taken from Samba pool entry + if (isset($this->moduleSettings['posixGroup_gidGenerator']) && ($this->moduleSettings['posixGroup_gidGenerator'][0] == 'sambaPool')) { + return $this->getNextSambaPoolGIDs($count, $errors); + } + $ret = array(); + $minID = intval($this->moduleSettings['posixGroup_minGID'][0]); + $maxID = intval($this->moduleSettings['posixGroup_maxGID'][0]); + $gidList = $this->getGIDs(); + $gids = array(); + foreach ($gidList as $gid) { + if (($gid <= $maxID) && ($gid >= $minID)) $gids[] = $gid; // ignore GIDs > maxID and GIDs < minID + } + for ($i = 0; $i < $count; $i++) { + if (count($gids) != 0) { + // there already are some GIDs + // store highest id-number + $id = $gids[count($gids)-1]; + // Return minimum allowed id-number if all found id-numbers are too low + if ($id < $minID) { + $ret[] = $minID; + $gids[] = $minID; + } + // return highest used id-number + 1 if it's still in valid range + elseif ($id < $maxID) { + $ret[] = $id + 1; + $gids[] = $id + 1; + } + // find free numbers between existing ones + else { + $k = intval($minID); + while (in_array($k, $gids)) $k++; + if ($k > $maxID) return null; + else { + $ret[] = $k; + $gids[] = $k; + sort ($gids, SORT_NUMERIC); + } + // show warning message + $errors[] = $this->messages['gidNumber'][2]; + } + } + else { + // return minimum allowed id-number if no id-numbers are found + $ret[] = $minID; + $gids[] = $minID; + } + } + return $ret; + } + + /** + * Gets the free GID numbers from an Samba pool entry in LDAP. + * + * @param integer $count number of needed free GIDs. + * @param array $errors list of error messages where errors can be added + * @return mixed null if no GIDs are free else an array of free GIDs + */ + private function getNextSambaPoolGIDs($count, &$errors) { + $dn = $this->moduleSettings['posixGroup_sambaIDPoolDN'][0]; + $attrs = ldapGetDN($dn, array('gidNumber')); + if (isset($attrs['gidnumber'][0]) && ($attrs['gidnumber'][0] != '')) { + $newValue = $attrs['gidnumber'][0] + $count; + $ldapHandle = $_SESSION['ldap']->server(); + ldap_modify($ldapHandle, $dn, array('gidnumber' => array($newValue))); + logNewMessage(LOG_DEBUG, 'Updated Samba ID pool ' . $dn . ' with GID number ' . $newValue . ' and LDAP code ' . ldap_errno($ldapHandle)); + if (ldap_errno($ldapHandle) != 0) { + logNewMessage(LOG_NOTICE, 'Updating Samba ID pool ' . $dn . ' with GID number ' . $newValue . ' failed. ' . ldap_error($ldapHandle)); + return null; + } + $result = array(); + for ($i = 0; $i < $count; $i++) { + $result[] = $attrs['gidnumber'][0] + $i; + } + return $result; + } + return null; + } + + /** + * This method specifies if a module manages password attributes. + * @see passwordService::managesPasswordAttributes + * + * @return boolean true if this module manages password attributes + */ + public function managesPasswordAttributes() { + return true; + } + + /** + * Specifies if this module supports to force that a user must change his password on next login. + * + * @return boolean force password change supported + */ + public function supportsForcePasswordChange() { + return false; + } + + /** + * This function is called whenever the password should be changed. Account modules + * must change their password attributes only if the modules list contains their module name. + * + * @param String $password new password + * @param $modules list of modules for which the password should be changed + * @param boolean $forcePasswordChange force the user to change his password at next login + * @return array list of error messages if any as parameter array for StatusMessage + * e.g. return arrray(array('ERROR', 'Password change failed.')) + * @see passwordService::passwordChangeRequested + */ + public function passwordChangeRequested($password, $modules, $forcePasswordChange) { + if (!in_array(get_class($this), $modules)) { + return array(); + } + $this->attributes[$this->passwordAttrName][0] = pwd_hash($password, true, $this->moduleSettings['posixAccount_pwdHash'][0]); + return array(); + } + + /** + * Returns a list of existing GID numbers. + * + * @return array list of GID numbers + */ + private function getGIDs() { + if ($this->cachedGIDList != null) { + return $this->cachedGIDList; + } + $this->cachedGIDList = array(); + $attrs = array('gidNumber'); + $filter = '(&(objectClass=posixGroup)(gidNumber=*))'; + $suffix = $_SESSION['config']->get_Suffix('group'); + if (isset($this->moduleSettings['posixGroup_gidCheckSuffix'][0]) && ($this->moduleSettings['posixGroup_gidCheckSuffix'][0] != '')) { + $suffix = $this->moduleSettings['posixGroup_gidCheckSuffix'][0]; + } + $result = searchLDAP($suffix, $filter, $attrs); + for ($i = 0; $i < sizeof($result); $i++) { + $this->cachedGIDList[] = $result[$i]['gidnumber'][0]; + } + sort($this->cachedGIDList, SORT_NUMERIC); + return $this->cachedGIDList; + } + + /** + * Returns a list of existing users and their GID numbers and cn. + * + * @return array list in format array(uid => array('gid' => 123, 'cn' => 'Some user')) + */ + private function getUsers() { + if ($this->cachedUserToGIDList != null) { + return $this->cachedUserToGIDList; + } + $typeSettings = $_SESSION['config']->get_typeSettings(); + $filter = '(&(objectClass=posixAccount)(gidNumber=*))'; + if ($this->isWindows()) { + $filter = '(&(objectClass=user)(gidNumber=*))'; + } + if (!empty($typeSettings['filter_user'])) { + $typeFilter = $typeSettings['filter_user']; + if (strpos($typeFilter, '(') !== 0) { + $typeFilter = '(' . $typeFilter . ')'; + } + $filter = '(&' . $filter . $typeFilter . ')'; + } + $result = searchLDAPByFilter($filter, array('uid', 'gidNumber', 'cn'), array('user')); + $this->cachedUserToGIDList = array(); + $resultCount = sizeof($result); + for ($i = 0; $i < $resultCount; $i++) { + $this->cachedUserToGIDList[$result[$i]['uid'][0]] = array('gid' => $result[$i]['gidnumber'][0], 'cn' => $result[$i]['cn'][0]); + } + logNewMessage(LOG_DEBUG, 'Found ' . $resultCount . ' Unix users.'); + logNewMessage(LOG_DEBUG, print_r($result, true)); + return $this->cachedUserToGIDList; + } + + /** + * Checks if the given group name already exists in LDAP. + * + * @param String $groupName group name + * @return boolean true if already exists + */ + private function groupNameExists($groupName) { + return in_array($groupName, $this->getGroupNames()); + } + + /** + * Returns a list of all group names in LDAP. + * + * @return array group names + */ + private function getGroupNames() { + if ($this->cachedGroupNameList != null) { + return $this->cachedGroupNameList; + } + $this->cachedGroupNameList = array(); + $attrs = array('cn'); + $filter = '(&(objectClass=posixGroup)(cn=*))'; + $suffix = $_SESSION['config']->get_Suffix('group'); + if (isset($this->moduleSettings['posixGroup_gidCheckSuffix'][0]) && ($this->moduleSettings['posixGroup_gidCheckSuffix'][0] != '')) { + $suffix = $this->moduleSettings['posixGroup_gidCheckSuffix'][0]; + } + $result = searchLDAP($suffix, $filter, $attrs); + for ($i = 0; $i < sizeof($result); $i++) { + $this->cachedGroupNameList[] = $result[$i]['cn'][0]; + } + return $this->cachedGroupNameList; + } + + /** + * Returns if the Windows module is active. + * + * @return boolean is Windows + */ + private function isWindows() { + if (isset($_SESSION['config'])) { + $conf = $_SESSION['config']; + if (in_array('windowsGroup', $conf->get_AccountModules($this->get_scope()))) { + return true; + } + else { + return false; + } + } + return false; + } + +} + +?> diff --git a/lam/lib/modules/puppetClient.inc b/lam/lib/modules/puppetClient.inc new file mode 100644 index 00000000..50a49315 --- /dev/null +++ b/lam/lib/modules/puppetClient.inc @@ -0,0 +1,523 @@ +autoAddObjectClasses = false; + } + + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('host')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'puppet.png'; + // alias name + $return["alias"] = _("Puppet"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('puppetClient'); + // managed attributes + $return['attributes'] = array('environment', 'parentnode', 'puppetclass', 'puppetvar'); + // help Entries + $return['help'] = array ( + 'environment' => array ( + "Headline" => _('Environment'), 'attr' => 'environment', + "Text" => _('Please enter the environment name for this node (e.g. production).') + ), + 'environmentList' => array ( + "Headline" => _('Environment'), 'attr' => 'environment', + "Text" => _('Please enter the environment name for this node (e.g. production).') . ' ' . _('Multiple values are separated by semicolon.') + ), + 'parentnode' => array ( + "Headline" => _('Parent node'), 'attr' => 'parentnode', + "Text" => _('This is this node\'s parent. All classes and variables are inherited from this node.') + ), + 'puppetclass' => array ( + "Headline" => _('Classes'), 'attr' => 'puppetclass', + "Text" => _('The list of configured Puppet classes for this node (e.g. ntp).') + ), + 'puppetclassList' => array ( + "Headline" => _('Classes'), 'attr' => 'puppetclass', + "Text" => _('The list of configured Puppet classes for this node (e.g. ntp).') . ' ' . _('Multiple values are separated by semicolon.') + ), + 'puppetvar' => array ( + "Headline" => _('Variables'), 'attr' => 'puppetvar', + "Text" => _('Please enter your Puppet variables for this node (e.g. config_exim=true).') + ), + 'puppetvarList' => array ( + "Headline" => _('Variables'), 'attr' => 'puppetvar', + "Text" => _('Please enter your Puppet variables for this node (e.g. config_exim=true).') . ' ' . _('Multiple values are separated by semicolon.') + ), + 'autoAdd' => array( + "Headline" => _('Automatically add this extension'), + "Text" => _('This will enable the extension automatically if this profile is loaded.') + ), + 'predefinedClasses' => array( + "Headline" => _('Predefined classes'), + "Text" => _('These classes will be available as autocompletion hints when adding new classes.') + ), + 'predefinedEnvironments' => array( + "Headline" => _('Predefined environments'), + "Text" => _('These environments will be available as autocompletion hints when setting the environment.') + ), + ); + // config options + $configContainer = new htmlTable(); + $configContainer->addElement(new htmlTableExtendedInputTextarea('puppetClient_environments', "production\r\ntesting", 30, 5, _('Predefined environments'), 'predefinedEnvironments'), true); + $return['config_options']['all'] = $configContainer; + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'puppetClient_environment', + 'description' => _('Environment'), + 'help' => 'environmentList', + 'example' => 'production' + ), + array( + 'name' => 'puppetClient_parentnode', + 'description' => _('Parent node'), + 'help' => 'parentnode', + 'example' => 'basenode' + ), + array( + 'name' => 'puppetClient_puppetclass', + 'description' => _('Classes'), + 'help' => 'puppetclassList', + 'example' => 'ntp;exim' + ), + array( + 'name' => 'puppetClient_puppetvar', + 'description' => _('Variables'), + 'help' => 'puppetvarList', + 'example' => 'config_exim=true;config_exim_trusted_users=root' + ), + ); + // available PDF fields + $return['PDF_fields'] = array( + 'environment' => _('Environment'), + 'parentnode' => _('Parent node'), + 'puppetclass' => _('Classes'), + 'puppetvar' => _('Variables'), + ); + // profile options + $profileContainer = new htmlTable(); + $profileContainer->addElement(new htmlTableExtendedInputCheckbox('puppetClient_addExt', false, _('Automatically add this extension'), 'autoAdd'), true); + $profileEnvironment = new htmlTableExtendedInputField(_('Environment'), 'puppetClient_environment', null, 'environment'); + $autocompleteEnvironment = array(); + if (isset($this->moduleSettings['puppetClient_environments'])) { + $autocompleteEnvironment = $this->moduleSettings['puppetClient_environments']; + } + $profileEnvironment->enableAutocompletion($autocompleteEnvironment); + $profileContainer->addElement($profileEnvironment, true); + $profileContainer->addElement(new htmlTableExtendedInputTextarea('puppetClient_puppetclass', '', 60, 5, _('Classes'), 'puppetclass'), true); + $profileContainer->addElement(new htmlTableExtendedInputTextarea('puppetClient_puppetvar', '', 60, 5, _('Variables'), 'puppetvar'), true); + $return['profile_options'] = $profileContainer; + // profile checks + $return['profile_checks']['puppetClient_environment'] = array('type' => 'ext_preg', 'regex' => 'ascii', 'error_message' => $this->messages['environment'][0]); + // profile mappings + $return['profile_mappings'] = array( + 'puppetClient_environment' => 'environment', + ); + return $return; + } + + /** + * This function fills the error message array with messages + */ + function load_Messages() { + $this->messages['environment'][0] = array('ERROR', _('The environment name may only contain ASCII characters.')); + $this->messages['environment'][1] = array('ERROR', _('Account %s:') . ' puppetClient_environment', _('The environment name may only contain ASCII characters.')); + $this->messages['puppetclass'][0] = array('ERROR', _('The class names may only contain ASCII characters.')); + $this->messages['puppetclass'][1] = array('ERROR', _('Account %s:') . ' puppetClient_puppetclass', _('The class names may only contain ASCII characters.')); + $this->messages['puppetvar'][0] = array('ERROR', _('The variables may only contain ASCII characters.')); + $this->messages['puppetvar'][1] = array('ERROR', _('Account %s:') . ' puppetClient_puppetvar', _('The variables may only contain ASCII characters.')); + $this->messages['parentnode'][0] = array('ERROR', _('Account %s:') . ' puppetClient_parentnode', _('Parent node not found.')); + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + function save_attributes() { + if (!in_array('puppetClient', $this->attributes['objectClass']) && !in_array('puppetClient', $this->orig['objectClass'])) { + // skip saving if the extension was not added/modified + return array(); + } + return parent::save_attributes(); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + if (isset($_POST['form_subpage_puppetClient_attributes_addObjectClass'])) { + $this->attributes['objectClass'][] = 'puppetClient'; + } + $return = new htmlTable(); + if (!in_array('puppetClient', $this->attributes['objectClass'])) { + $return->addElement(new htmlAccountPageButton('puppetClient', 'attributes', 'addObjectClass', _('Add Puppet extension'))); + return $return; + } + // environment + $autocompleteEnvironment = array(); + if (isset($this->moduleSettings['puppetClient_environments'])) { + $autocompleteEnvironment = $this->moduleSettings['puppetClient_environments']; + } + $environments = array(); + if (isset($this->attributes['environment'][0])) { + $environments = $this->attributes['environment']; + } + if (sizeof($environments) == 0) { + $environments[] = ''; + } + $environmentLabel = new htmlOutputText(_('Environment')); + $environmentLabel->alignment = htmlElement::ALIGN_TOP; + $return->addElement($environmentLabel); + $environmentContainer = new htmlGroup(); + for ($i = 0; $i < sizeof($environments); $i++) { + $environmentField = new htmlInputField('environment' . $i, $environments[$i]); + $environmentField->enableAutocompletion($autocompleteEnvironment); + $environmentContainer->addElement($environmentField); + if ($i < (sizeof($environments) - 1)) { + $environmentContainer->addElement(new htmlOutputText('
    ', false)); + } + else { + $environmentContainer->addElement(new htmlButton('addEnvironment', 'add.png', true)); + } + } + $return->addElement($environmentContainer); + $environmentHelp = new htmlHelpLink('environment'); + $environmentHelp->alignment = htmlElement::ALIGN_TOP; + $return->addElement($environmentHelp, true); + // parent node + $possibleParentNodes = $this->getPossibleParentNodes(); + array_unshift($possibleParentNodes, '-'); + $parentnode = '-'; + if (isset($this->attributes['parentnode'][0])) { + $parentnode = $this->attributes['parentnode'][0]; + } + $return->addElement(new htmlTableExtendedSelect('parentnode', $possibleParentNodes, array($parentnode), _('Parent node'), 'parentnode'), true); + // classes + $puppetclass = ''; + if (isset($this->attributes['puppetclass'])) { + $puppetclass = implode("\r\n", $this->attributes['puppetclass']); + } + $return->addElement(new htmlTableExtendedInputTextarea('puppetclass', $puppetclass, 60, 5, _('Classes'), 'puppetclass'), true); + // variables + $puppetvar = ''; + if (isset($this->attributes['puppetvar'])) { + $puppetvar = implode("\r\n", $this->attributes['puppetvar']); + } + $return->addElement(new htmlTableExtendedInputTextarea('puppetvar', $puppetvar, 60, 5, _('Variables'), 'puppetvar'), true); + + $return->addElement(new htmlSpacer(null, '10px'),true); + $remButton = new htmlAccountPageButton('puppetClient', 'attributes', 'remObjectClass', _('Remove Puppet extension')); + $remButton->colspan = 4; + $return->addElement($remButton); + return $return; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + if (isset($_POST['form_subpage_puppetClient_attributes_remObjectClass'])) { + $this->attributes['objectClass'] = array_delete(array('puppetClient'), $this->attributes['objectClass']); + for ($i = 0; $i < sizeof($this->meta['attributes']); $i++) { + if (isset($this->attributes[$this->meta['attributes'][$i]])) { + unset($this->attributes[$this->meta['attributes'][$i]]); + } + } + return array(); + } + if (!in_array('puppetClient', $this->attributes['objectClass'])) { + return array(); + } + + $errors = array(); + // environment + $environmentCounter = 0; + while (isset($_POST['environment' . $environmentCounter])) { + $this->attributes['environment'][$environmentCounter] = $_POST['environment' . $environmentCounter]; + if (!get_preg($this->attributes['environment'][$environmentCounter], 'ascii')) $errors[] = $this->messages['environment'][0]; + if ($this->attributes['environment'][$environmentCounter] == '') { + unset($this->attributes['environment'][$environmentCounter]); + } + $environmentCounter++; + } + if (isset($_POST['addEnvironment'])) { + $this->attributes['environment'][] = ''; + } + $this->attributes['environment'] = array_values($this->attributes['environment']); + // parent node + if (isset($this->attributes['parentnode'][0]) && ($_POST['parentnode'] == '-')) { + unset($this->attributes['parentnode'][0]); + } + elseif ($_POST['parentnode'] != '-') { + $this->attributes['parentnode'][0] = $_POST['parentnode']; + } + // classes + $puppetclass = explode("\r\n", $_POST['puppetclass']); + for ($i = 0; $i < sizeof($puppetclass); $i++) { + if (trim($puppetclass[$i]) == '') { + unset($puppetclass[$i]); + continue; + } + if (!get_preg($puppetclass[$i], 'ascii')) { + $error = $this->messages['puppetclass'][0]; + $error[] = htmlspecialchars($puppetclass[$i]); + $errors[] = $error; + } + } + $this->attributes['puppetclass'] = array_values(array_unique($puppetclass)); + // variables + $puppetvar = explode("\r\n", $_POST['puppetvar']); + for ($i = 0; $i < sizeof($puppetvar); $i++) { + if (trim($puppetvar[$i]) == '') { + unset($puppetvar[$i]); + continue; + } + if (!get_preg($puppetvar[$i], 'ascii')) { + $error = $this->messages['puppetvar'][0]; + $error[] = htmlspecialchars($puppetvar[$i]); + $errors[] = $error; + } + } + $this->attributes['puppetvar'] = array_values(array_unique($puppetvar)); + + return $errors; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array("puppetClient", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "puppetClient"; + // parent node + if ($rawAccounts[$i][$ids['puppetClient_parentnode']] != "") { + if (!in_array($rawAccounts[$i][$ids['puppetClient_parentnode']], $this->getPossibleParentNodes())) { + $messages[] = $this->messages['parentnode'][0]; + } + else { + $partialAccounts[$i]['parentnode'][0] = $rawAccounts[$i][$ids['puppetClient_parentnode']]; + } + } + // environment + if ($rawAccounts[$i][$ids['puppetClient_environment']] != "") { + if (get_preg($rawAccounts[$i][$ids['puppetClient_environment']], 'ascii')) { + $partialAccounts[$i]['environment'] = explode(';', $rawAccounts[$i][$ids['puppetClient_environment']]); + } + else { + $errMsg = $this->messages['environment'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + } + // classes + if ($rawAccounts[$i][$ids['puppetClient_puppetclass']] != "") { + if (get_preg($rawAccounts[$i][$ids['puppetClient_puppetclass']], 'ascii')) { + $partialAccounts[$i]['puppetclass'] = explode(';', $rawAccounts[$i][$ids['puppetClient_puppetclass']]); + } + else { + $errMsg = $this->messages['puppetclass'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + } + // variables + if ($rawAccounts[$i][$ids['puppetClient_puppetvar']] != "") { + if (get_preg($rawAccounts[$i][$ids['puppetClient_puppetvar']], 'ascii')) { + $partialAccounts[$i]['puppetvar'] = explode(';', $rawAccounts[$i][$ids['puppetClient_puppetvar']]); + } + else { + $errMsg = $this->messages['puppetvar'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + } + } + return $messages; + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $return = array(); + if (!in_array('puppetClient', $this->attributes['objectClass'])) { + return $return; + } + $this->addSimplePDFField($return, 'environment', _('Environment')); + $this->addSimplePDFField($return, 'parentnode', _('Parent node')); + if (isset($this->attributes['puppetclass'][0])) { + $return['puppetClient_puppetclass'][0] = '' . _('Classes') . '' . $this->attributes['puppetclass'][0] . ''; + for ($i = 1; $i < sizeof($this->attributes['puppetclass']); $i++) { + $return['puppetClient_puppetclass'][] = '' . $this->attributes['puppetclass'][$i] . ''; + } + } + if (isset($this->attributes['puppetvar'][0])) { + $return['puppetClient_puppetvar'][0] = '' . _('Variables') . '' . $this->attributes['puppetvar'][0] . ''; + for ($i = 1; $i < sizeof($this->attributes['puppetvar']); $i++) { + $return['puppetClient_puppetvar'][] = '' . $this->attributes['puppetvar'][$i] . ''; + } + } + return $return; + } + + /** + * This function defines what attributes will be used in the account profiles and their appearance in the profile editor. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * The return value is an object implementing htmlElement.
    + * The field name are used as keywords to load + * and save profiles. We recommend to use the module name as prefix for them + * (e.g. posixAccount_homeDirectory) to avoid naming conflicts. + * + * @return htmlElement meta HTML object + * + * @see baseModule::get_metaData() + * @see htmlElement + */ + public function get_profileOptions() { + $return = parent::get_profileOptions(); + $possibleParentNodes = $this->getPossibleParentNodes(); + if (sizeof($possibleParentNodes) > 0) { + $return->addElement(new htmlTableExtendedSelect('puppetClient_parentnode', $possibleParentNodes, array(), _('Parent node'), 'parentnode'), true); + } + return $return; + } + + /** + * Loads the values of an account profile into internal variables. + * + * @param array $profile hash array with profile values (identifier => value) + */ + function load_profile($profile) { + // profile mappings in meta data + parent::load_profile($profile); + // add extension + if (isset($profile['puppetClient_addExt'][0]) && ($profile['puppetClient_addExt'][0] == "true")) { + if (!in_array('puppetClient', $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = 'puppetClient'; + } + } + // parent node + if (isset($profile['puppetClient_parentnode'][0]) && ($profile['puppetClient_parentnode'][0] != "-")) { + $this->attributes['parentnode'][0] = $profile['puppetClient_parentnode'][0]; + } + // classes + if (isset($profile['puppetClient_puppetclass'][0]) && ($profile['puppetClient_puppetclass'][0] != '')) { + $this->attributes['puppetclass'] = $profile['puppetClient_puppetclass']; + } + // variables + if (isset($profile['puppetClient_puppetvar'][0]) && ($profile['puppetClient_puppetvar'][0] != '')) { + $this->attributes['puppetvar'] = $profile['puppetClient_puppetvar']; + } + } + + /** + * Reurns a list of valid parent nodes for this node. + * + * @return array parent nodes (e.g. array('node1', 'node2')) + */ + private function getPossibleParentNodes() { + $possibleParentNodes = array(); + $searchResult = searchLDAPByAttribute('cn', '*', 'puppetClient', array('cn'), array('host')); + $possibleParentNodes = array(); + for ($i = 0; $i < sizeof($searchResult); $i++) { + if (!get_preg($searchResult[$i]['cn'][0], 'ascii')) { + continue; + } + if (($this->getAccountContainer() == null) || $this->getAccountContainer()->isNewAccount + || (!isset($this->getAccountContainer()->attributes_orig['cn'][0]) + || ($this->getAccountContainer()->attributes_orig['cn'][0] != $searchResult[$i]['cn'][0]))) { + $possibleParentNodes[] = $searchResult[$i]['cn'][0]; + } + } + return $possibleParentNodes; + } + +} + +?> diff --git a/lam/lib/modules/pykotaBillingCode.inc b/lam/lib/modules/pykotaBillingCode.inc new file mode 100644 index 00000000..18735f8c --- /dev/null +++ b/lam/lib/modules/pykotaBillingCode.inc @@ -0,0 +1,305 @@ + pykotaBillingCode1, dn2 => pykotaBillingCode2)) */ + private $codeCache = null; + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('pykotaBillingCodeType')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'printerBig.png'; + // alias name + $return["alias"] = _("PyKota"); + // this is a base module + $return["is_base"] = true; + // RDN attribute + $return["RDN"] = array("cn" => "high"); + // LDAP filter + $return["ldap_filter"] = array('or' => "(objectClass=pykotaBilling)"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('pykotaObject', 'pykotaBilling'); + // managed attributes + $return['attributes'] = array('cn', 'pykotaBillingCode', 'description', 'pykotaBalance', 'pykotaPageCounter'); + // help Entries + $return['help'] = array( + 'pykotaBillingCode' => array( + "Headline" => _("Billing code"), 'attr' => 'pykotaBillingCode', + "Text" => _("Billing code name which should be created. Valid characters are: a-z, A-Z, 0-9 and .-_ .") + ), + 'description' => array ( + "Headline" => _("Description"), 'attr' => 'description', + "Text" => _("Billing code description.") + ), + 'pykotaBalance' => array ( + "Headline" => _('Balance'), 'attr' => 'pykotaBalance', + "Text" => _('Used balance for the billing code.') + ), + 'pykotaPageCounter' => array ( + "Headline" => _('Page count'), 'attr' => 'pykotaPageCounter', + "Text" => _('Number of pages printed with this billing code.') + ), + 'reset' => array ( + "Headline" => _('Reset'), 'attr' => 'pykotaBalance, pykotaPageCounter', + "Text" => _('Resets the billing code\'s balance and page counter to 0.') + ), + ); + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'pykotaBillingCode_pykotaBillingCode', + 'description' => _('Printer name'), + 'help' => 'cn', + 'example' => _('billingCode01'), + 'required' => true, + 'unique' => true, + ), + array( + 'name' => 'pykotaBillingCode_description', + 'description' => _('Description'), + 'help' => 'description', + ), + ); + // available PDF fields + $return['PDF_fields'] = array( + 'pykotaBillingCode' => _('Billing code'), + 'description' => _('Description'), + 'pykotaBalance' => _('Balance'), + 'pykotaPageCounter' => _('Page count'), + ); + return $return; + } + + /** + * This function fills the $messages variable with output messages from this module. + */ + function load_Messages() { + $this->messages['pykotaBillingCode'][0] = array('ERROR', _('Billing code'), _('Billing code contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['pykotaBillingCode'][1] = array('ERROR', _('Account %s:') . ' pykotaBillingCode_cn', _('Billing code contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['pykotaBillingCode'][2] = array('ERROR', _('Billing code'), _('Billing code already exists!')); + $this->messages['pykotaBillingCode'][3] = array('ERROR', _('Account %s:') . ' pykotaBillingCode_cn', _('Billing code already exists!')); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $container = new htmlTable(); + // pykotaBillingCode + $this->addSimpleInputTextField($container, 'pykotaBillingCode', _('Billing code'), true); + // balance + $container->addElement(new htmlOutputText(_('Balance'))); + $pykotaBalance = ''; + if (isset($this->attributes['pykotaBalance'][0])) { + $pykotaBalance = $this->attributes['pykotaBalance'][0]; + } + $container->addElement(new htmlOutputText($pykotaBalance)); + $container->addElement(new htmlHelpLink('pykotaBalance'), true); + // page count + $container->addElement(new htmlOutputText(_('Page count'))); + $pykotaPageCounter = ''; + if (isset($this->attributes['pykotaPageCounter'][0])) { + $pykotaPageCounter = $this->attributes['pykotaPageCounter'][0]; + } + $container->addElement(new htmlOutputText($pykotaPageCounter)); + $container->addElement(new htmlHelpLink('pykotaPageCounter'), true); + // description + $this->addSimpleInputTextField($container, 'description', _('Description'), false, null, true); + // reset + $container->addElement(new htmlSpacer(null, '20px'), true); + $container->addElement(new htmlOutputText('')); + $container->addElement(new htmlButton('resetCounters', _('Reset'))); + $container->addElement(new htmlHelpLink('reset'), true); + // same width + $container->addElement(new htmlEqualWidth(array('pykotaBillingCode', 'description'))); + return $container; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + $errors = array(); + // pykotaBillingCode + if (isset($_POST['pykotaBillingCode']) && ($_POST['pykotaBillingCode'] != '')) { + if (!get_preg($_POST['pykotaBillingCode'], 'username')) { + $errors[] = $this->messages['pykotaBillingCode'][0]; + } + else { + $this->attributes['pykotaBillingCode'][0] = $_POST['pykotaBillingCode']; + $this->attributes['cn'][0] = $_POST['pykotaBillingCode']; + if ((!isset($this->orig['pykotaBillingCode'][0]) || ($this->attributes['pykotaBillingCode'][0] != $this->orig['pykotaBillingCode'][0])) + && $this->codeExists($_POST['pykotaBillingCode'])) { + $errors[] = $this->messages['pykotaBillingCode'][2]; + } + } + } + else { + if (isset($this->attributes['cn'][0])) { + unset($this->attributes['cn'][0]); + } + if (isset($this->attributes['pykotaBillingCode'][0])) { + unset($this->attributes['pykotaBillingCode'][0]); + } + } + // description + $this->attributes['description'][0] = $_POST['description']; + // reset + if (isset($_POST['resetCounters'])) { + $this->attributes['pykotaBalance'][0] = '0.0'; + $this->attributes['pykotaPageCounter'][0] = '0'; + } + return $errors; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + $this->loadCodeCache(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object classes + if (!in_array('pykotaBilling', $partialAccounts[$i]['objectClass'])) { + $partialAccounts[$i]['objectClass'][] = 'pykotaBilling'; + } + if (!in_array('pykotaObject', $partialAccounts[$i]['objectClass'])) { + $partialAccounts[$i]['objectClass'][] = 'pykotaObject'; + } + // pykotaBillingCode + if (!get_preg($rawAccounts[$i][$ids['pykotaBillingCode_pykotaBillingCode']], 'username')) { + $errMsg = $this->messages['pykotaBillingCode'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + elseif ($this->codeExists($rawAccounts[$i][$ids['pykotaBillingCode_pykotaBillingCode']])) { + $errMsg = $this->messages['pykotaBillingCode'][3]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + else { + $partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['pykotaBillingCode_pykotaBillingCode']]; + $partialAccounts[$i]['pykotaBillingCode'] = $rawAccounts[$i][$ids['pykotaBillingCode_pykotaBillingCode']]; + } + // description + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'pykotaBillingCode_description', 'description'); + // balance + $partialAccounts[$i]['pykotaBalance'] = '0.0'; + // page count + $partialAccounts[$i]['pykotaPageCounter'] = '0'; + } + return $messages; + } + + /** + * Returns a list of PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->loadCodeCache(); + $this->addSimplePDFField($return, 'pykotaBillingCode', _('Billing code')); + $this->addSimplePDFField($return, 'description', _('Description')); + $this->addSimplePDFField($return, 'pykotaBalance', _('Balance')); + $this->addSimplePDFField($return, 'pykotaPageCounter', _('Page count')); + return $return; + } + + /** + * Returns if the given billing code already exists. + * + * @param String $code pykotaBillingCode attribute value + * @return boolean pykotaBillingCode exists + */ + private function codeExists($code) { + if ($this->codeCache == null) { + $this->loadCodeCache(); + } + foreach ($this->codeCache as $dn => $bCode) { + if (!empty($bCode) && ($bCode == $code)) { + return true; + } + } + return false; + } + + /** + * Loads the list of billing code names into the cache. + */ + private function loadCodeCache() { + if ($this->codeCache != null) { + return; + } + $results = searchLDAPByFilter('(objectClass=pykotaBilling)', array('pykotaBillingCode', 'dn'), array($this->get_scope())); + $this->codeCache = array(); + foreach ($results as $result) { + if (isset($result['pykotabillingcode'][0])) { + $this->codeCache[$result['dn']] = $result['pykotabillingcode'][0]; + } + } + } + +} + + +?> diff --git a/lam/lib/modules/pykotaGroup.inc b/lam/lib/modules/pykotaGroup.inc new file mode 100644 index 00000000..5ccc5577 --- /dev/null +++ b/lam/lib/modules/pykotaGroup.inc @@ -0,0 +1,597 @@ + value */ + private $limitOptions; + + /** + * Returns if this module also manages the structural object class pykotaObject. + * This is overridden by a submodule that must provide the structural object class. + * + * @return boolean structural usage + */ + public function isStructural() { + return false; + } + + /** + * Creates a new pykotaGroup object. + * + * @param string $scope account type (user, group, host) + */ + function __construct($scope) { + $this->limitOptions = array( + _('Quota') => 'quota', + _('Balance') => 'balance', + _('No quota') => 'noquota', + _('Free printing') => 'nochange', + _('Deny printing') => 'noprint', + ); + // call parent constructor + parent::__construct($scope); + $this->autoAddObjectClasses = $this->isStructural(); + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('group')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'printerBig.png'; + // alias name + $return["alias"] = _("PyKota"); + // this is a base module + $return["is_base"] = $this->isStructural(); + // LDAP filter + $return["ldap_filter"] = array('or' => "(objectClass=pykotaGroup)"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('pykotaGroup'); + // managed attributes + $return['attributes'] = array('pykotaLimitBy', 'pykotaGroupName'); + if ($this->manageCn()) { + $return['attributes'][] = 'cn'; + } + if ($this->manageDescription()) { + $return['attributes'][] = 'description'; + } + // help Entries + $return['help'] = array( + 'cn' => array( + "Headline" => _("Common name"), 'attr' => 'cn', + "Text" => _("Group name of the group which should be created. Valid characters are: a-z, A-Z, 0-9 and .-_ .") + ), + 'description' => array ( + "Headline" => _("Description"), 'attr' => 'description', + "Text" => _("Group description.") + ), + 'pykotaGroupName' => array( + "Headline" => _("PyKota group name"), 'attr' => 'pykotaGroupName', + "Text" => _("Group name that is used for PyKota.") + ), + 'pykotaLimitBy' => array( + "Headline" => _("Limit type"), 'attr' => 'pykotaLimitBy', + "Text" => _("Specifies the type of limit for printing if any. Please note that in contrast to \"Free printing\" the option \"No quota\" includes accounting.") + ), + 'autoAdd' => array( + "Headline" => _("Automatically add this extension"), + "Text" => _("This will enable the extension automatically if this profile is loaded.") + ), + ); + // profile options + $profileContainer = new htmlTable(); + $pykotaLimitByProfileOption = new htmlTableExtendedSelect('pykotaGroup_pykotaLimitBy', $this->limitOptions, array(), _('Limit type'), 'pykotaLimitBy'); + $pykotaLimitByProfileOption->setHasDescriptiveElements(true); + $pykotaLimitByProfileOption->setSortElements(false); + $profileContainer->addElement($pykotaLimitByProfileOption, true); + if (!$this->isStructural()) { + $profileContainer->addElement(new htmlTableExtendedInputCheckbox('pykotaGroup_addExt', false, _('Automatically add this extension'), 'autoAdd'), true); + } + $return['profile_options'] = $profileContainer; + $return['profile_mappings']['pykotaGroup_pykotaLimitBy'] = 'pykotaLimitBy'; + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'pykotaGroup_pykotaGroupName', + 'description' => _('PyKota group name'), + 'help' => 'pykotaGroupName', + 'example' => _('adminstrators'), + 'unique' => true, + ) + ); + if ($this->manageCn()) { + $return['upload_columns'][] = array( + 'name' => 'pykotaGroup_cn', + 'description' => _('Common name'), + 'help' => 'cn', + 'example' => _('adminstrators'), + 'required' => true, + ); + } + if ($this->manageDescription()) { + $return['upload_columns'][] = array( + 'name' => 'pykotaGroup_description', + 'description' => _('Description'), + 'help' => 'description', + 'example' => _('Administrators group'), + ); + } + $return['upload_columns'][] = array( + 'name' => 'pykotaGroup_pykotaLimitBy', + 'description' => _('Limit type'), + 'help' => 'pykotaLimitBy', + 'example' => _('Quota'), + 'default' => _('Quota'), + 'values' => implode(', ', array_keys($this->limitOptions)) + ); + // available PDF fields + $return['PDF_fields'] = array( + 'pykotaGroupName' => _('PyKota group name'), + 'pykotaLimitBy' => _('Limit type'), + ); + if ($this->manageCn()) { + $return['PDF_fields']['cn'] = _('Common name'); + } + if ($this->manageDescription()) { + $return['PDF_fields']['description'] = _('Description'); + } + return $return; + } + + /** + * This function fills the $messages variable with output messages from this module. + */ + function load_Messages() { + $this->messages['cn'][0] = array('ERROR', _('Group name'), _('Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['cn'][1] = array('ERROR', _('Account %s:') . ' pykotaGroup_cn', _('Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['cn'][2] = array('ERROR', _('Group name'), _('Group name already exists!')); + $this->messages['cn'][3] = array('ERROR', _('Account %s:') . ' pykotaGroup_cn', _('Group name already exists!')); + $this->messages['pykotaGroupName'][0] = array('ERROR', _('PyKota group name'), _('Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['pykotaGroupName'][1] = array('ERROR', _('Account %s:') . ' pykotaGroup_pykotaGroupName', _('Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['pykotaGroupName'][2] = array('ERROR', _('PyKota group name'), _('Group name already exists!')); + $this->messages['pykotaGroupName'][3] = array('ERROR', _('Account %s:') . ' pykotaGroup_pykotaGroupName', _('Group name already exists!')); + $this->messages['pykotaLimitBy'][0] = array('ERROR', _('Account %s:') . ' pykotaGroup_pykotaLimitBy', _('Please enter a valid limit type.')); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $container = new htmlTable(); + if ($this->isStructural() || (isset($this->attributes['objectClass']) && in_array('pykotaGroup', $this->attributes['objectClass']))) { + // cn + if ($this->manageCn()) { + $this->addSimpleInputTextField($container, 'cn', _('Group name'), true); + } + // pykotaGroupName + $this->addSimpleInputTextField($container, 'pykotaGroupName', _('Pykota group name')); + // limit by + $limitOption = 'quota'; + if (!empty($this->attributes['pykotaLimitBy'][0])) { + $limitOption = $this->attributes['pykotaLimitBy'][0]; + } + $limitSelect = new htmlTableExtendedSelect('pykotaLimitBy', $this->limitOptions, array($limitOption), _('Limit type'), 'pykotaLimitBy'); + $limitSelect->setHasDescriptiveElements(true); + $limitSelect->setSortElements(false); + $container->addElement($limitSelect, true); + // description + if ($this->manageDescription()) { + $this->addMultiValueInputTextField($container, 'description', _('Description'), false, null, true); + } + // remove button + if (!$this->isStructural()) { + $container->addElement(new htmlSpacer(null, '20px'), true); + $remButton = new htmlButton('remObjectClass', _('Remove PyKota extension')); + $remButton->colspan = 5; + $container->addElement($remButton); + } + } + else { + // add button + $container->addElement(new htmlButton('addObjectClass', _('Add PyKota extension'))); + } + return $container; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + $errors = array(); + if (isset($_POST['addObjectClass'])) { + if (!isset($this->attributes['objectClass'])) { + $this->attributes['objectClass'] = array(); + } + if (!in_array('pykotaGroup', $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = 'pykotaGroup'; + } + if (!isset($this->attributes['pykotaGroupName'][0])) { + $this->attributes['pykotaGroupName'][0] = $this->getCurrentGroupName(); + } + return $errors; + } + if (isset($_POST['remObjectClass'])) { + $this->attributes['objectClass'] = array_delete(array('pykotaGroup'), $this->attributes['objectClass']); + $attrs = array('pykotaLimitBy', 'pykotaGroupName'); + if ($this->manageDescription()) { + $attrs[] = 'description'; + } + if ($this->manageCn()) { + $attrs[] = 'cn'; + } + foreach ($attrs as $name) { + if (isset($this->attributes[$name])) { + unset($this->attributes[$name]); + } + } + return $errors; + } + // skip processing if object class is not set + if (!isset($this->attributes['objectClass']) || !in_array('pykotaGroup', $this->attributes['objectClass'])) { + return $errors; + } + // cn + if ($this->manageCn()) { + if (isset($_POST['cn']) && ($_POST['cn'] != '')) { + if (!get_preg($_POST['cn'], 'groupname')) { + $errors[] = $this->messages['cn'][0]; + } + else { + $this->attributes['cn'][0] = $_POST['cn']; + if ((!isset($this->orig['cn'][0]) || ($this->attributes['cn'][0] != $this->orig['cn'][0])) + && $this->cnExists($_POST['cn'])) { + $errors[] = $this->messages['cn'][2]; + } + } + } + elseif (isset($this->attributes['cn'][0])) { + unset($this->attributes['cn'][0]); + } + } + // PyKota group name + if (!empty($_POST['pykotaGroupName'])) { + if (!get_preg($_POST['pykotaGroupName'], 'groupname')) { + $errors[] = $this->messages['pykotaGroupName'][0]; + } + else { + $this->attributes['pykotaGroupName'][0] = $_POST['pykotaGroupName']; + if ((!isset($this->orig['pykotaGroupName'][0]) || ($this->attributes['pykotaGroupName'][0] != $this->orig['pykotaGroupName'][0])) + && $this->pykotaGroupNameExists($_POST['pykotaGroupName'])) { + $errors[] = $this->messages['pykotaGroupName'][2]; + } + } + } + else { + $this->attributes['pykotaGroupName'][0] = $this->getCurrentGroupName(); + } + // limit by + $this->attributes['pykotaLimitBy'][0] = $_POST['pykotaLimitBy']; + // description + if ($this->manageDescription()) { + $this->processMultiValueInputTextField('description', $errors); + } + return $errors; + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + function save_attributes() { + if (!in_array('pykotaGroup', $this->attributes['objectClass']) && !in_array('pykotaGroup', $this->orig['objectClass'])) { + // skip saving if the extension was not added/modified + return array(); + } + return parent::save_attributes(); + } + + /** + * This function is used to check if all settings for this module have been made. + * + * Calling this method requires the existence of an enclosing {@link accountContainer}.
    + *
    + * This function tells LAM if it can create/modify the LDAP account. If your module needs any + * additional input then set this to false. The user will be notified that your module needs + * more input.
    + * This method's return value defaults to true. + * + * @return boolean true, if settings are complete + */ + public function module_complete() { + if (in_array('pykotaGroup', $this->attributes['objectClass'])) { + // require cn + $cn = $this->getCurrentGroupName(); + return !empty($cn); + } + return true; + } + + /** + * Loads the values of an account profile into internal variables. + * + * @param array $profile hash array with profile values (identifier => value) + */ + function load_profile($profile) { + // profile mappings in meta data + parent::load_profile($profile); + // add extension + if (isset($profile['pykotaGroup_addExt'][0]) && ($profile['pykotaGroup_addExt'][0] == "true")) { + if (!in_array('pykotaGroup', $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = 'pykotaGroup'; + } + } + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object classes + if (!in_array('pykotaGroup', $partialAccounts[$i]['objectClass'])) { + $partialAccounts[$i]['objectClass'][] = 'pykotaGroup'; + } + if ($this->isStructural() && !in_array('pykotaObject', $partialAccounts[$i]['objectClass'])) { + $partialAccounts[$i]['objectClass'][] = 'pykotaObject'; + } + // cn + if ($this->manageCn() && !empty($rawAccounts[$i][$ids['pykotaGroup_cn']])) { + if (!get_preg($rawAccounts[$i][$ids['pykotaGroup_cn']], 'groupname')) { + $errMsg = $this->messages['cn'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + elseif ($this->cnExists($rawAccounts[$i][$ids['pykotaGroup_cn']])) { + $errMsg = $this->messages['cn'][3]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + else { + $partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['pykotaGroup_cn']]; + } + } + // description + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'pykotaGroup_description', 'description'); + // PyKota group name + if (!empty($rawAccounts[$i][$ids['pykotaGroup_pykotaGroupName']])) { + if (!get_preg($rawAccounts[$i][$ids['pykotaGroup_pykotaGroupName']], 'groupname')) { + $errMsg = $this->messages['pykotaGroupName'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + elseif ($this->pykotaGroupNameExists($rawAccounts[$i][$ids['pykotaGroup_pykotaGroupName']])) { + $errMsg = $this->messages['pykotaGroupName'][3]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + else { + $partialAccounts[$i]['pykotaGroupName'] = $rawAccounts[$i][$ids['pykotaGroup_pykotaGroupName']]; + } + } + // limit by + if (!empty($rawAccounts[$i][$ids['pykotaGroup_pykotaLimitBy']])) { + if (isset($this->limitOptions[$rawAccounts[$i][$ids['pykotaGroup_pykotaLimitBy']]])) { + $partialAccounts[$i]['pykotaLimitBy'] = $this->limitOptions[$rawAccounts[$i][$ids['pykotaGroup_pykotaLimitBy']]]; + } + else { + $errMsg = $this->messages['pykotaLimitBy'][0]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + } + else { + $partialAccounts[$i]['pykotaLimitBy'] = 'quota'; + } + } + return $messages; + } + + /** + * Returns a list of PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'cn', _('Common name')); + $this->addSimplePDFField($return, 'pykotaGroupName', _('PyKota group name')); + $this->addSimplePDFField($return, 'description', _('Description')); + $limitByOptions = array_flip($this->limitOptions); + $limitByValue = ''; + if (!empty($this->attributes['pykotaLimitBy'][0]) && isset($limitByOptions[$this->attributes['pykotaLimitBy'][0]])) { + $limitByValue = $limitByOptions[$this->attributes['pykotaLimitBy'][0]]; + } + $return[get_class($this) . '_pykotaLimitBy'] = array('' . _('Limit type') . '' . $limitByValue . ''); + return $return; + } + + /** + * Returns if the cn attribute should be managed. + * + * @return boolean manage cn attribute + */ + private function manageCn() { + if (isset($_SESSION['config'])) { + $conf = $_SESSION['config']; + if (in_array('posixGroup', $conf->get_AccountModules($this->get_scope())) + || in_array('groupOfNames', $conf->get_AccountModules($this->get_scope())) + || in_array('groupOfUniqueNames', $conf->get_AccountModules($this->get_scope()))) { + return false; + } + else { + return true; + } + } + return false; + } + + /** + * Returns if the description attribute should be managed. + * + * @return boolean manage description attribute + */ + private function manageDescription() { + if (isset($_SESSION['config'])) { + $conf = $_SESSION['config']; + if (in_array('posixGroup', $conf->get_AccountModules($this->get_scope())) + || in_array('groupOfNames', $conf->get_AccountModules($this->get_scope())) + || in_array('groupOfUniqueNames', $conf->get_AccountModules($this->get_scope()))) { + return false; + } + else { + return true; + } + } + return false; + } + + /** + * Returns if the given cn already exists. + * + * @param String $cn cn attribute value + * @return boolean cn exists + */ + private function cnExists($cn) { + if ($this->cnCache == null) { + $this->loadGroupNameCache(); + } + return in_array($cn, $this->cnCache); + } + + /** + * Returns if the given pykotaGroupName already exists. + * + * @param String $pykotaGroupName pykotaGroupName attribute value + * @return boolean pykotaGroupName exists + */ + private function pykotaGroupNameExists($pykotaGroupName) { + if ($this->pykotaGroupNameCache == null) { + $this->loadGroupNameCache(); + } + return in_array($pykotaGroupName, $this->pykotaGroupNameCache); + } + + /** + * Loads the list of group names into the cache. + */ + private function loadGroupNameCache() { + $results = searchLDAPByFilter('(objectClass=pykotaGroup)', array('cn', 'pykotaGroupName'), array($this->get_scope())); + $this->cnCache = array(); + $this->pykotaGroupNameCache = array(); + foreach ($results as $result) { + if (isset($result['cn'][0])) { + $this->cnCache[] = $result['cn'][0]; + } + if (isset($result['pykotagroupname'][0])) { + $this->pykotaGroupNameCache[] = $result['pykotagroupname'][0]; + } + } + } + + /** + * Returns the current group name (cn) of this account. + * + * @return String group name + */ + private function getCurrentGroupName() { + if (!empty($this->attributes['cn'][0])) { + return $this->attributes['cn'][0]; + } + if ($this->getAccountContainer()->getAccountModule('posixGroup') != null) { + $posix = $this->getAccountContainer()->getAccountModule('posixGroup'); + $attrs = $posix->getAttributes(); + if (!empty($attrs['cn'][0])) { + return $attrs['cn'][0]; + } + } + if ($this->getAccountContainer()->getAccountModule('groupOfNames') != null) { + $posix = $this->getAccountContainer()->getAccountModule('groupOfNames'); + $attrs = $posix->getAttributes(); + if (!empty($attrs['cn'][0])) { + return $attrs['cn'][0]; + } + } + if ($this->getAccountContainer()->getAccountModule('groupOfUniqueNames') != null) { + $posix = $this->getAccountContainer()->getAccountModule('groupOfUniqueNames'); + $attrs = $posix->getAttributes(); + if (!empty($attrs['cn'][0])) { + return $attrs['cn'][0]; + } + } + return ''; + } + +} + + +?> diff --git a/lam/lib/modules/pykotaGroupStructural.inc b/lam/lib/modules/pykotaGroupStructural.inc new file mode 100644 index 00000000..02f8d1b9 --- /dev/null +++ b/lam/lib/modules/pykotaGroupStructural.inc @@ -0,0 +1,69 @@ + array(), 'conflicts' => array('pykotaGroup')); + // additional object class and attribute + $return['objectClasses'][] = 'pykotaObject'; + // RDN attribute + $return["RDN"] = array("cn" => "normal"); + return $return; + } + +} diff --git a/lam/lib/modules/pykotaPrinter.inc b/lam/lib/modules/pykotaPrinter.inc new file mode 100644 index 00000000..f150834e --- /dev/null +++ b/lam/lib/modules/pykotaPrinter.inc @@ -0,0 +1,683 @@ + array(cn => ..., description => ...))) */ + private $printerCache = null; + /** printer group cache */ + private $groupCache = null; + /** list of pass through options: label => value */ + private $passThroughOptions; + + /** + * Creates a new pykotaPrinter object. + * + * @param string $scope account type (user, group, host) + */ + function __construct($scope) { + $this->passThroughOptions = array( + _('Yes') => 't', + _('No') => 'f', + ); + // call parent constructor + parent::__construct($scope); + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('pykotaPrinterType')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'printerBig.png'; + // alias name + $return["alias"] = _("PyKota"); + // this is a base module + $return["is_base"] = true; + // RDN attribute + $return["RDN"] = array("cn" => "high"); + // LDAP filter + $return["ldap_filter"] = array('or' => "(objectClass=pykotaPrinter)"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('pykotaObject', 'pykotaPrinter'); + // managed attributes + $return['attributes'] = array('cn', 'description', 'pykotaMaxJobSize', 'pykotaPassThrough', 'pykotaPricePerJob', 'pykotaPricePerPage', 'pykotaPrinterName', 'uniqueMember'); + // help Entries + $return['help'] = array( + 'cn' => array( + "Headline" => _("Printer name"), 'attr' => 'cn', + "Text" => _("Printer name of the printer which should be created. Valid characters are: a-z, A-Z, 0-9 and .-_ .") + ), + 'description' => array ( + "Headline" => _("Description"), 'attr' => 'description', + "Text" => _("Printer description.") + ), + 'pykotaMaxJobSize' => array( + "Headline" => _('Maximum job size'), 'attr' => 'pykotaMaxJobSize', + "Text" => _('The maximum number of pages per job allowed on the printer. 0 means unlimited.') + ), + 'pykotaPassThrough' => array( + "Headline" => _('Passthrough'), 'attr' => 'pykotaPassThrough', + "Text" => _('In passthrough mode, users are allowed to print without any impact on their quota or account balance.') + ), + 'pykotaPricePerJob' => array( + "Headline" => _('Price per job'), 'attr' => 'pykotaPricePerJob', + "Text" => _('The price for each print job.') + ), + 'pykotaPricePerPage' => array( + "Headline" => _('Price per page'), 'attr' => 'pykotaPricePerPage', + "Text" => _('The price for each page of a print job.') + ), + 'uniqueMember' => array( + "Headline" => _('Group members'), 'attr' => 'uniqueMember', + "Text" => _('If this entry should be a printer group then you can set the member names here.') + ), + 'uniqueMemberUpload' => array( + "Headline" => _('Group members'), 'attr' => 'uniqueMember', + "Text" => _('If this entry should be a printer group then you can set the member names here.') + . ' ' . _('Multiple values are separated by comma.') + ), + 'filter' => array( + "Headline" => _("Filter"), + "Text" => _("Here you can enter a filter value. Only entries which contain the filter text will be shown.") + . ' ' . _('Possible wildcards are: "*" = any character, "^" = line start, "$" = line end') + ), + ); + // profile options + $profileContainer = new htmlTable(); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Maximum job size'), 'pykotaPrinter_pykotaMaxJobSize', '', 'pykotaMaxJobSize'), true); + $return['profile_options'] = $profileContainer; + $return['profile_mappings']['pykotaPrinter_pykotaMaxJobSize'] = 'pykotaMaxJobSize'; + $return['profile_checks']['pykotaPrinter_pykotaMaxJobSize'] = array( + 'type' => 'ext_preg', + 'regex' => 'digit', + 'error_message' => $this->messages['pykotaMaxJobSize'][0]); + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'pykotaPrinter_cn', + 'description' => _('Printer name'), + 'help' => 'cn', + 'example' => _('printer01'), + 'required' => true, + ), + array( + 'name' => 'pykotaPrinter_description', + 'description' => _('Description'), + 'help' => 'description', + 'example' => _('Color laser printer'), + ), + array( + 'name' => 'pykotaPrinter_pykotaMaxJobSize', + 'description' => _('Maximum job size'), + 'help' => 'pykotaMaxJobSize', + 'example' => '100', + 'default' => '0', + ), + array( + 'name' => 'pykotaPrinter_pykotaPassThrough', + 'description' => _('Passthrough'), + 'help' => 'pykotaPassThrough', + 'example' => _('No'), + 'default' => _('No'), + 'values' => _('Yes') . ', ' . _('No'), + ), + array( + 'name' => 'pykotaPrinter_pykotaPricePerJob', + 'description' => _('Price per job'), + 'help' => 'pykotaPricePerJob', + 'example' => '0.01', + ), + array( + 'name' => 'pykotaPrinter_pykotaPricePerPage', + 'description' => _('Price per page'), + 'help' => 'pykotaPricePerPage', + 'example' => '0.01', + ), + array( + 'name' => 'pykotaPrinter_uniqueMember', + 'description' => _('Group members'), + 'help' => 'uniqueMemberUpload', + 'example' => _('printergroup1'), + ), + ); + // available PDF fields + $return['PDF_fields'] = array( + 'cn' => _('Printer name'), + 'description' => _('Description'), + 'pykotaMaxJobSize' => _('Maximum job size'), + 'pykotaPassThrough' => _('Passthrough'), + 'pykotaPricePerJob' => _('Price per job'), + 'pykotaPricePerPage' => _('Price per page'), + 'uniqueMember' => _('Group members'), + 'parentUniqueMember' => _('Printer groups'), + ); + return $return; + } + + /** + * This function fills the $messages variable with output messages from this module. + */ + function load_Messages() { + $this->messages['cn'][0] = array('ERROR', _('Printer name'), _('Printer name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['cn'][1] = array('ERROR', _('Account %s:') . ' pykotaPrinter_cn', _('Printer name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['cn'][2] = array('ERROR', _('Printer name'), _('Printer name already exists!')); + $this->messages['cn'][3] = array('ERROR', _('Account %s:') . ' pykotaPrinter_cn', _('Printer name already exists!')); + $this->messages['pykotaMaxJobSize'][0] = array('ERROR', _('Maximum job size'), _('Please enter a valid number.')); + $this->messages['pykotaMaxJobSize'][1] = array('ERROR', _('Account %s:') . ' pykotaPrinter_pykotaMaxJobSize', _('Please enter a valid number.')); + $this->messages['pykotaPricePerJob'][0] = array('ERROR', _('Price per job'), _('Please enter a valid number (e.g. "1.5").')); + $this->messages['pykotaPricePerJob'][1] = array('ERROR', _('Account %s:') . ' pykotaPrinter_pykotaPricePerJob', _('Please enter a valid number (e.g. "1.5").')); + $this->messages['pykotaPricePerPage'][0] = array('ERROR', _('Price per page'), _('Please enter a valid number (e.g. "1.5").')); + $this->messages['pykotaPricePerPage'][1] = array('ERROR', _('Account %s:') . ' pykotaPrinter_pykotaPricePerPage', _('Please enter a valid number (e.g. "1.5").')); + $this->messages['pykotaPassThrough'][0] = array('ERROR', _('Account %s:') . ' pykotaPrinter_pykotaPassThrough', _('Please enter "Yes" or "No".')); + $this->messages['uniqueMember'][0] = array('ERROR', _('Account %s:') . ' pykotaPrinter_uniqueMember', _('Unable to find a printer with name "%s".')); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $container = new htmlTable(); + // cn + $this->addSimpleInputTextField($container, 'cn', _('Printer name'), true); + // job size + $this->addSimpleInputTextField($container, 'pykotaMaxJobSize', _('Maximum job size')); + // price per job + $this->addSimpleInputTextField($container, 'pykotaPricePerJob', _('Price per job')); + // price per page + $this->addSimpleInputTextField($container, 'pykotaPricePerPage', _('Price per page')); + // passthrough + $pykotaPassThroughOption = 'f'; + if (!empty($this->attributes['pykotaPassThrough'][0])) { + $pykotaPassThroughOption = $this->attributes['pykotaPassThrough'][0]; + } + $pykotaPassThroughSelect = new htmlTableExtendedSelect('pykotaPassThrough', $this->passThroughOptions, array($pykotaPassThroughOption), _('Passthrough'), 'pykotaPassThrough'); + $pykotaPassThroughSelect->setHasDescriptiveElements(true); + $container->addElement($pykotaPassThroughSelect); + $container->addElement(new htmlSpacer('150px', null), true); // layout fix if many parent groups exist + // description + $this->addMultiValueInputTextField($container, 'description', _('Description'), false, null, true); + // printer groups + if (!$this->getAccountContainer()->isNewAccount) { + $groups = $this->getPrinterGroups(); + $this->loadPrinterNameCache(); + $parentPrinters = array(); + foreach ($groups as $groupDN) { + $parentPrinters[] = $this->printerCache[$groupDN]['cn']; + } + if (sizeof($parentPrinters) > 0) { + $container->addElement(new htmlOutputText(_('Printer groups'))); + $parentPrinterText = new htmlOutputText(implode(', ', $parentPrinters)); + $parentPrinterText->colspan = 5; + $container->addElement($parentPrinterText, true); + } + } + // printer members + $memberLabel = new htmlOutputText(_('Group members')); + $memberLabel->alignment = htmlElement::ALIGN_TOP; + $container->addElement($memberLabel); + $addMemberButton = new htmlAccountPageButton(get_class($this), 'members', 'open', 'add.png', true); + $addMemberButton->setTitle(_('Add')); + $addMemberButton->alignment = htmlElement::ALIGN_TOP; + if (!empty($this->attributes['uniqueMember'][0])) { + $memberTable = new htmlTable(); + $memberTable->alignment = htmlElement::ALIGN_TOP; + for ($i = 0; $i < sizeof($this->attributes['uniqueMember']); $i++) { + $member = $this->attributes['uniqueMember'][$i]; + if (isset($this->printerCache[$member]['cn'])) { + $member = $this->printerCache[$member]['cn']; + } + $memberTable->addElement(new htmlOutputText($member)); + $delButton = new htmlButton('uniqueMemberDel_' . $i, 'del.png', true); + $delButton->setTitle(_('Delete')); + $memberTable->addElement($delButton); + if ($i == (sizeof($this->attributes['uniqueMember']) - 1)) { + $memberTable->addElement($addMemberButton); + } + $memberTable->addNewLine(); + } + $container->addElement($memberTable); + } + else { + $container->addElement($addMemberButton); + } + $memberHelp = new htmlHelpLink('uniqueMember'); + $memberHelp->alignment = htmlElement::ALIGN_TOP; + $container->addElement($memberHelp, true); + return $container; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + $errors = array(); + // cn + if (isset($_POST['cn']) && ($_POST['cn'] != '')) { + if (!get_preg($_POST['cn'], 'username')) { + $errors[] = $this->messages['cn'][0]; + } + else { + $this->attributes['cn'][0] = $_POST['cn']; + $this->attributes['pykotaPrinterName'][0] = $_POST['cn']; + if ((!isset($this->orig['cn'][0]) || ($this->attributes['cn'][0] != $this->orig['cn'][0])) + && $this->cnExists($_POST['cn'])) { + $errors[] = $this->messages['cn'][2]; + } + } + } + else { + if (isset($this->attributes['cn'][0])) { + unset($this->attributes['cn'][0]); + } + if (isset($this->attributes['pykotaPrinterName'][0])) { + unset($this->attributes['pykotaPrinterName'][0]); + } + } + // description + $this->processMultiValueInputTextField('description', $errors); + // job size + $pykotaMaxJobSize = '0'; + if (isset($_POST['pykotaMaxJobSize']) && ($_POST['pykotaMaxJobSize'] != '')) { + $pykotaMaxJobSize = $_POST['pykotaMaxJobSize']; + if (!get_preg($pykotaMaxJobSize, 'digit')) { + $errors[] = $this->messages['pykotaMaxJobSize'][0]; + } + } + $this->attributes['pykotaMaxJobSize'][0] = $pykotaMaxJobSize; + // price per job + $pykotaPricePerJob = '0.0'; + if (isset($_POST['pykotaPricePerJob']) && ($_POST['pykotaPricePerJob'] != '')) { + $pykotaPricePerJob = $_POST['pykotaPricePerJob']; + $pykotaPricePerJob = str_replace(',', '.', $pykotaPricePerJob); + if (strpos($pykotaPricePerJob, '.') === false) { + $pykotaPricePerJob .= '.0'; + } + if (!get_preg($pykotaPricePerJob, 'float')) { + $errors[] = $this->messages['pykotaPricePerJob'][0]; + } + } + $this->attributes['pykotaPricePerJob'][0] = $pykotaPricePerJob; + // price per page + $pykotaPricePerPage = '0.0'; + if (isset($_POST['pykotaPricePerPage']) && ($_POST['pykotaPricePerPage'] != '')) { + $pykotaPricePerPage = $_POST['pykotaPricePerPage']; + $pykotaPricePerPage = str_replace(',', '.', $pykotaPricePerPage); + if (strpos($pykotaPricePerPage, '.') === false) { + $pykotaPricePerPage .= '.0'; + } + if (!get_preg($pykotaPricePerPage, 'float')) { + $errors[] = $this->messages['pykotaPricePerPage'][0]; + } + } + $this->attributes['pykotaPricePerPage'][0] = $pykotaPricePerPage; + // passthrough + $this->attributes['pykotaPassThrough'][0] = $_POST['pykotaPassThrough']; + // delete members + foreach ($_POST as $key => $value) { + if (strpos($key, 'uniqueMemberDel_') === 0) { + $index = substr($key, strlen('uniqueMemberDel_')); + unset($this->attributes['uniqueMember'][$index]); + $this->attributes['uniqueMember'] = array_values($this->attributes['uniqueMember']); + break; + } + } + return $errors; + } + + /** + * This function will create the meta HTML code to show a page to add members. + * + * @return htmlElement HTML meta data + */ + function display_html_members() { + $return = new htmlTable(); + $userFilter = ''; + $userFilterRegex = ''; + if (isset($_POST['newFilter'])) { + $userFilter = $_POST['newFilter']; + $userFilterRegex = '/' . str_replace(array('*', '(', ')'), array('.*', '\(', '\)'), $_POST['newFilter']) . '/ui'; + } + $options = array(); + $this->loadPrinterNameCache(); + foreach ($this->printerCache as $dn => $attrs) { + if (!empty($attrs['description'])) { + $label = $attrs['cn'] . ' (' . $attrs['description'] . ')'; + } + else { + $label = $attrs['cn']; + } + // skip filtered printers + if (!empty($userFilter) && !preg_match($userFilterRegex, $label)) { + continue; + } + // skip own entry + if (!$this->getAccountContainer()->isNewAccount && ($this->getAccountContainer()->dn_orig == $dn)) { + continue; + } + // skip already set members + if (!empty($this->attributes['uniqueMember'][0]) && in_array($dn, $this->attributes['uniqueMember'])) { + continue; + } + $options[$label] = $dn; + } + $size = 20; + if (sizeof($options) < 20) $size = sizeof($options); + $membersSelect = new htmlSelect('members', $options, array(), $size); + $membersSelect->setHasDescriptiveElements(true); + $membersSelect->setMultiSelect(true); + $membersSelect->setTransformSingleSelect(false); + $return->addElement($membersSelect, true); + $filterGroup = new htmlGroup(); + $filterGroup->addElement(new htmlInputField('newFilter', $userFilter)); + $filterGroup->addElement(new htmlButton('setFilter', _('Filter'))); + $filterGroup->addElement(new htmlHelpLink('filter')); + $return->addElement($filterGroup, true); + $return->addElement(new htmlSpacer(null, '10px'), true); + $buttonTable = new htmlTable(); + $buttonTable->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'addMembers', _('Add'))); + $buttonTable->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'cancel', _('Cancel'))); + $return->addElement($buttonTable); + return $return; + } + + /** + * Processes user input of the members page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_members() { + $return = array(); + if (isset($_POST['form_subpage_' . get_class($this) . '_attributes_addMembers']) && isset($_POST['members'])) { + for ($i = 0; $i < sizeof($_POST['members']); $i++) { + $this->attributes['uniqueMember'][] = $_POST['members'][$i]; + } + } + return $return; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + $this->loadPrinterNameCache(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object classes + if (!in_array('pykotaPrinter', $partialAccounts[$i]['objectClass'])) { + $partialAccounts[$i]['objectClass'][] = 'pykotaPrinter'; + } + if (!in_array('pykotaObject', $partialAccounts[$i]['objectClass'])) { + $partialAccounts[$i]['objectClass'][] = 'pykotaObject'; + } + // cn + if (!empty($rawAccounts[$i][$ids['pykotaPrinter_cn']])) { + if (!get_preg($rawAccounts[$i][$ids['pykotaPrinter_cn']], 'username')) { + $errMsg = $this->messages['cn'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + elseif ($this->cnExists($rawAccounts[$i][$ids['pykotaPrinter_cn']])) { + $errMsg = $this->messages['cn'][3]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + else { + $partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['pykotaPrinter_cn']]; + $partialAccounts[$i]['pykotaPrinterName'] = $rawAccounts[$i][$ids['pykotaPrinter_cn']]; + } + } + // description + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'pykotaPrinter_description', 'description'); + // job size + $partialAccounts[$i]['pykotaMaxJobSize'] = '0.0'; + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'pykotaPrinter_pykotaMaxJobSize', 'pykotaMaxJobSize', + 'digit', $this->messages['pykotaMaxJobSize'][1], $messages); + // price per job + if (!empty($rawAccounts[$i][$ids['pykotaPrinter_pykotaPricePerJob']])) { + $pykotaPricePerJob = $rawAccounts[$i][$ids['pykotaPrinter_pykotaPricePerJob']]; + $pykotaPricePerJob = str_replace(',', '.', $pykotaPricePerJob); + if (strpos($pykotaPricePerJob, '.') === false) { + $pykotaPricePerJob .= '.0'; + } + if (!get_preg($pykotaPricePerJob, 'float')) { + $errMsg = $this->messages['pykotaPricePerJob'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + else { + $partialAccounts[$i]['pykotaPricePerJob'] = $pykotaPricePerJob; + } + } + else { + $partialAccounts[$i]['pykotaPricePerJob'] = '0.0'; + } + // price per page + if (!empty($rawAccounts[$i][$ids['pykotaPrinter_pykotaPricePerPage']])) { + $pykotaPricePerPage = $rawAccounts[$i][$ids['pykotaPrinter_pykotaPricePerPage']]; + $pykotaPricePerPage = str_replace(',', '.', $pykotaPricePerPage); + if (strpos($pykotaPricePerPage, '.') === false) { + $pykotaPricePerPage .= '.0'; + } + if (!get_preg($pykotaPricePerPage, 'float')) { + $errMsg = $this->messages['pykotaPricePerPage'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + else { + $partialAccounts[$i]['pykotaPricePerPage'] = $pykotaPricePerPage; + } + } + else { + $partialAccounts[$i]['pykotaPricePerPage'] = '0.0'; + } + // passthrough + if (!empty($rawAccounts[$i][$ids['pykotaPrinter_pykotaPassThrough']])) { + if (isset($this->passThroughOptions[$rawAccounts[$i][$ids['pykotaPrinter_pykotaPassThrough']]])) { + $partialAccounts[$i]['pykotaPassThrough'] = $this->passThroughOptions[$rawAccounts[$i][$ids['pykotaPrinter_pykotaPassThrough']]]; + } + else { + $errMsg = $this->messages['pykotaPassThrough'][0]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + } + else { + $partialAccounts[$i]['pykotaPassThrough'] = 'f'; + } + // group members + if (!empty($rawAccounts[$i][$ids['pykotaPrinter_uniqueMember']])) { + $members = preg_split('/,[ ]*/', $rawAccounts[$i][$ids['pykotaPrinter_uniqueMember']]); + $memberDNs = array(); + foreach ($members as $cn) { + if (empty($cn)) { + continue; + } + // search printer cache for cn to get DN + $found = false; + foreach ($this->printerCache as $dn => $attrs) { + if ($this->printerCache[$dn]['cn'] == $cn) { + $found = true; + $memberDNs[] = $dn; + break; + } + } + if (!$found) { + $errMsg = $this->messages['uniqueMember'][0]; + array_push($errMsg, array($i, htmlspecialchars($cn))); + $messages[] = $errMsg; + } + } + if (sizeof($memberDNs) > 0) { + $partialAccounts[$i]['uniqueMember'] = $memberDNs; + } + } + } + return $messages; + } + + /** + * Returns a list of PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->loadPrinterNameCache(); + $this->addSimplePDFField($return, 'cn', _('Printer name')); + $this->addSimplePDFField($return, 'description', _('Description')); + $this->addSimplePDFField($return, 'pykotaMaxJobSize', _('Maximum job size')); + $this->addSimplePDFField($return, 'pykotaPricePerJob', _('Price per job')); + $this->addSimplePDFField($return, 'pykotaPricePerPage', _('Price per page')); + // passthrough + $passthroughOptions = array_flip($this->passThroughOptions); + $passthroughValue = ''; + if (!empty($this->attributes['pykotaPassThrough'][0]) && isset($passthroughOptions[$this->attributes['pykotaPassThrough'][0]])) { + $passthroughValue = $passthroughOptions[$this->attributes['pykotaPassThrough'][0]]; + } + $return[get_class($this) . '_pykotaPassThrough'] = array('' . _('Passthrough') . '' . $passthroughValue . ''); + // members + if (!empty($this->attributes['uniqueMember'][0])) { + $members = array(); + foreach ($this->attributes['uniqueMember'] as $member) { + if (!empty($this->printerCache[$member]['cn'])) { + $members[] = $this->printerCache[$member]['cn']; + } + else { + $members[] = getAbstractDN($member); + } + } + $return[get_class($this) . '_uniqueMember'] = array('' . _('Group members') . '' . implode(', ', $members) . ''); + } + // printer groups + $parentGroups = array(); + $groups = $this->getPrinterGroups(); + foreach ($groups as $group) { + if (!empty($this->printerCache[$group]['cn'])) { + $parentGroups[] = $this->printerCache[$group]['cn']; + } + else { + $parentGroups[] = getAbstractDN($group); + } + } + if (sizeof($parentGroups) > 0) { + $return[get_class($this) . '_parentUniqueMember'] = array('' . _('Printer groups') . '' . implode(', ', $parentGroups) . ''); + } + return $return; + } + + /** + * Returns if the given cn already exists. + * + * @param String $cn cn attribute value + * @return boolean cn exists + */ + private function cnExists($cn) { + if ($this->printerCache == null) { + $this->loadPrinterNameCache(); + } + foreach ($this->printerCache as $dn => $attrs) { + if (!empty($attrs['cn']) && ($attrs['cn'] == $cn)) { + return true; + } + } + return false; + } + + /** + * Loads the list of printer names into the cache. + */ + private function loadPrinterNameCache() { + if ($this->printerCache != null) { + return; + } + $results = searchLDAPByFilter('(objectClass=pykotaPrinter)', array('cn', 'dn', 'description'), array($this->get_scope())); + $this->printerCache = array(); + foreach ($results as $result) { + if (isset($result['cn'][0])) { + $this->printerCache[$result['dn']]['cn'] = $result['cn'][0]; + } + if (isset($result['description'][0])) { + $this->printerCache[$result['dn']]['description'] = $result['description'][0]; + } + } + } + + /** + * Returns the printer group memberships. + * + * @return array DNs of parent groups + */ + private function getPrinterGroups() { + if ($this->groupCache != null) { + return $this->groupCache; + } + $results = searchLDAPByFilter('(&(objectClass=pykotaPrinter)(uniqueMember=' . $this->getAccountContainer()->dn_orig . '))', array('dn'), array($this->get_scope())); + $this->groupCache = array(); + foreach ($results as $result) { + $this->groupCache[] = $result['dn']; + } + return $this->groupCache; + } + +} + + +?> diff --git a/lam/lib/modules/pykotaUser.inc b/lam/lib/modules/pykotaUser.inc new file mode 100644 index 00000000..fb183c93 --- /dev/null +++ b/lam/lib/modules/pykotaUser.inc @@ -0,0 +1,1216 @@ + value */ + private $limitOptions; + + /** + * Returns if this module also manages the structural object class pykotaObject. + * This is overridden by a submodule that must provide the structural object class. + * + * @return boolean structural usage + */ + public function isStructural() { + return false; + } + + /** + * Creates a new pykotaUser object. + * + * @param string $scope account type (user, group, host) + */ + function __construct($scope) { + $this->limitOptions = array( + _('Quota') => 'quota', + _('Balance') => 'balance', + _('No quota') => 'noquota', + _('Free printing') => 'nochange', + _('Deny printing') => 'noprint', + ); + // call parent constructor + parent::__construct($scope); + $this->autoAddObjectClasses = $this->isStructural(); + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('user')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'printerBig.png'; + // alias name + $return["alias"] = _("PyKota"); + // this is a base module + $return["is_base"] = $this->isStructural(); + // LDAP filter + $return["ldap_filter"] = array('or' => "(objectClass=pykotaAccount)"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('pykotaAccount', 'pykotaAccountBalance'); + // managed attributes + $return['attributes'] = array('uid', 'mail', 'description', 'pykotaLimitBy', 'pykotaUserName', 'pykotaBalance', 'pykotaLifeTimePaid', + 'pykotaOverCharge', 'pykotaPayments'); + // help Entries + $return['help'] = array( + 'cn' => array( + "Headline" => _("Common name"), 'attr' => 'cn', + "Text" => _("This is the natural name of the user.") + ), + 'uid' => array( + "Headline" => _("User name"), 'attr' => 'uid', + "Text" => _("User name of the user who should be created. Valid characters are: a-z,A-Z,0-9, @.-_.") + ), + 'mail' => array ( + "Headline" => _("Email address"), 'attr' => 'mail', + "Text" => _("The user's email address.") + ), + 'description' => array ( + "Headline" => _("Description"), 'attr' => 'description', + "Text" => _("User description.") + ), + 'pykotaUserName' => array( + "Headline" => _("PyKota user name"), 'attr' => 'pykotaUserName', + "Text" => _("User name that is used for PyKota.") + ), + 'pykotaLimitBy' => array( + "Headline" => _("Limit type"), 'attr' => 'pykotaLimitBy', + "Text" => _("Specifies the type of limit for printing if any. Please note that in contrast to \"Free printing\" the option \"No quota\" includes accounting.") + ), + 'pykotaBalance' => array( + "Headline" => _('Balance'), 'attr' => 'pykotaBalance', + "Text" => _('Current account balance for the user.') + ), + 'pykotaBalanceComment' => array( + "Headline" => _('Balance comment'), 'attr' => 'pykotaPayments', + "Text" => _('Comment for initial balance.') + ), + 'pykotaLifeTimePaid' => array( + "Headline" => _('Total paid'), 'attr' => 'pykotaLifeTimePaid', + "Text" => _('Total money paid by the user.') + ), + 'pykotaOverCharge' => array( + "Headline" => _('Overcharge factor'), 'attr' => 'pykotaOverCharge', + "Text" => _('Overcharge factor that is applied when computing the cost of a print job. The number of pages is not changed.') + ), + 'pykotaPayments' => array( + "Headline" => _('Payment and job history'), 'attr' => 'pykotaPayments', + "Text" => _('Payment and job history for this user.') + ), + 'pykotaPaymentsAdd' => array( + "Headline" => _('Payment'), 'attr' => 'pykotaBalance, pykotaPayments', + "Text" => _('Adds the amount to the user\'s balance. You can also specify a comment.') + ), + 'jobSuffix' => array( + "Headline" => _('Job suffix'), + "Text" => _('Please enter the LDAP suffix where the PyKota job entries are stored (configuration option "jobbase").') + ), + 'autoAdd' => array( + "Headline" => _("Automatically add this extension"), + "Text" => _("This will enable the extension automatically if this profile is loaded.") + ), + ); + // profile options + $profileContainer = new htmlTable(); + $pykotaLimitByProfileOption = new htmlTableExtendedSelect('pykotaUser_pykotaLimitBy', $this->limitOptions, array(), _('Limit type'), 'pykotaLimitBy'); + $pykotaLimitByProfileOption->setHasDescriptiveElements(true); + $pykotaLimitByProfileOption->setSortElements(false); + $profileContainer->addElement($pykotaLimitByProfileOption, true); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Balance'), 'pykotaUser_pykotaBalance', '', 'pykotaBalance'), true); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Overcharge factor'), 'pykotaUser_pykotaOverCharge', '', 'pykotaOverCharge'), true); + if (!$this->isStructural()) { + $profileContainer->addElement(new htmlTableExtendedInputCheckbox('pykotaUser_addExt', false, _('Automatically add this extension'), 'autoAdd'), true); + } + $return['profile_options'] = $profileContainer; + $return['profile_mappings']['pykotaUser_pykotaLimitBy'] = 'pykotaLimitBy'; + $return['profile_mappings']['pykotaUser_pykotaOverCharge'] = 'pykotaOverCharge'; + $return['profile_checks']['pykotaUser_pykotaBalance'] = array( + 'type' => 'ext_preg', + 'regex' => 'float', + 'error_message' => $this->messages['pykotaBalance'][0]); + $return['profile_checks']['pykotaUser_pykotaOverCharge'] = array( + 'type' => 'ext_preg', + 'regex' => 'float', + 'error_message' => $this->messages['pykotaOverCharge'][0]); + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'pykotaUser_pykotaUserName', + 'description' => _('PyKota user name'), + 'help' => 'pykotaUserName', + 'example' => _('smiller'), + 'unique' => true, + ) + ); + if ($this->isStructural()) { + $return['upload_columns'][] = array( + 'name' => 'pykotaUser_cn', + 'description' => _('Common name'), + 'help' => 'cn', + 'example' => _('Steve Miller'), + 'required' => true, + ); + } + if ($this->manageUid()) { + $return['upload_columns'][] = array( + 'name' => 'pykotaUser_uid', + 'description' => _('User name'), + 'help' => 'uid', + 'example' => _('smiller'), + 'required' => true, + 'unique' => true, + ); + } + if ($this->manageMail()) { + $return['upload_columns'][] = array( + 'name' => 'pykotaUser_mail', + 'description' => _('Email address'), + 'help' => 'mail', + 'example' => _('user@company.com'), + ); + } + if ($this->manageDescription()) { + $return['upload_columns'][] = array( + 'name' => 'pykotaUser_description', + 'description' => _('Description'), + 'help' => 'description', + 'example' => _('Temp, contract till December'), + ); + } + $return['upload_columns'][] = array( + 'name' => 'pykotaUser_pykotaLimitBy', + 'description' => _('Limit type'), + 'help' => 'pykotaLimitBy', + 'example' => _('Quota'), + 'default' => _('Quota'), + 'values' => implode(', ', array_keys($this->limitOptions)) + ); + $return['upload_columns'][] = array( + 'name' => 'pykotaUser_pykotaBalance', + 'description' => _('Balance'), + 'help' => 'pykotaBalance', + 'example' => '10.0', + ); + $return['upload_columns'][] = array( + 'name' => 'pykotaUser_pykotaBalanceComment', + 'description' => _('Balance comment'), + 'help' => 'pykotaBalanceComment', + 'example' => _('Initial payment'), + ); + $return['upload_columns'][] = array( + 'name' => 'pykotaUser_pykotaOverCharge', + 'description' => _('Overcharge factor'), + 'help' => 'pykotaOverCharge', + 'example' => '1.0', + 'default' => '1.0' + ); + // available PDF fields + $return['PDF_fields'] = array( + 'pykotaUserName' => _('PyKota user name'), + 'pykotaLimitBy' => _('Limit type'), + 'pykotaBalance' => _('Balance'), + 'pykotaOverCharge' => _('Overcharge factor'), + 'pykotaLifeTimePaid' => _('Total paid'), + 'pykotaPayments' => _('Payment history'), + ); + if ($this->manageUid()) { + $return['PDF_fields']['uid'] = _('User name'); + } + if ($this->isStructural()) { + $return['PDF_fields']['cn'] = _('Common name'); + } + if ($this->manageMail()) { + $return['PDF_fields']['mail'] = _('Email address'); + } + if ($this->manageDescription()) { + $return['PDF_fields']['description'] = _('Description'); + } + // self service + $return['selfServiceFieldSettings'] = array( + 'pykotaBalance' => _('Balance (read-only)'), + 'pykotaLifeTimePaid' => _('Total paid (read-only)'), + 'pykotaPayments' => _('Payment history'), + 'pykotaJobHistory' => _('Job history'), + ); + // self service settings + if (get_class($this) == 'pykotaUser') { + $selfServiceContainer = new htmlTable(); + $selfServiceContainer->addElement(new htmlTableExtendedInputField(_('Job suffix'), 'pykotaUser_jobSuffix', null)); + $selfServiceContainer->addElement(new htmlHelpLink('jobSuffix', get_class($this)), true); + $return['selfServiceSettings'] = $selfServiceContainer; + } + // config options + $configContainer = new htmlTable(); + $configContainer->addElement(new htmlTableExtendedInputField(_('Job suffix'), 'pykotaUser_jobSuffix', '', 'jobSuffix'), true); + $return['config_options']['all'] = $configContainer; + // configuration checks + $return['config_checks']['all']['pykotaUser_jobSuffix'] = array ( + 'type' => 'ext_preg', + 'regex' => 'dn', + 'required' => false, + 'required_message' => $this->messages['jobSuffix'][0], + 'error_message' => $this->messages['jobSuffix'][0]); + return $return; + } + + /** + * This function fills the $messages variable with output messages from this module. + */ + function load_Messages() { + $this->messages['uid'][0] = array('ERROR', _('User name'), _('User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['uid'][1] = array('ERROR', _('Account %s:') . ' pykotaUser_uid', _('User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['uid'][2] = array('ERROR', _('User name'), _('User name already exists!')); + $this->messages['uid'][3] = array('ERROR', _('Account %s:') . ' pykotaUser_uid', _('User name already exists!')); + $this->messages['pykotaUserName'][0] = array('ERROR', _('PyKota user name'), _('User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['pykotaUserName'][1] = array('ERROR', _('Account %s:') . ' pykotaUser_pykotaUserName', _('User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['pykotaUserName'][2] = array('ERROR', _('PyKota user name'), _('User name already exists!')); + $this->messages['pykotaUserName'][3] = array('ERROR', _('Account %s:') . ' pykotaUser_pykotaUserName', _('User name already exists!')); + $this->messages['mail'][0] = array('ERROR', _('Email address'), _('Please enter a valid email address!')); + $this->messages['mail'][1] = array('ERROR', _('Account %s:') . ' pykotaUser_mail', _('Please enter a valid email address!')); + $this->messages['pykotaLimitBy'][0] = array('ERROR', _('Account %s:') . ' pykotaUser_pykotaLimitBy', _('Please enter a valid limit type.')); + $this->messages['pykotaBalance'][0] = array('ERROR', _('Balance'), _('Please enter a valid number (e.g. "1.5").')); + $this->messages['pykotaBalance'][1] = array('ERROR', _('Account %s:') . ' pykotaUser_pykotaBalance', _('Please enter a valid number (e.g. "1.5").')); + $this->messages['pykotaOverCharge'][0] = array('ERROR', _('Overcharge factor'), _('Please enter a valid number (e.g. "1.5").')); + $this->messages['pykotaOverCharge'][1] = array('ERROR', _('Account %s:') . ' pykotaUser_pykotaOverCharge', _('Please enter a valid number (e.g. "1.5").')); + $this->messages['pykotaPayments'][0] = array('ERROR', _('Payment'), _('Please enter a valid number (e.g. "1.5").')); + $this->messages['jobSuffix'][0] = array('ERROR', _('Job suffix'), _('Please enter a valid job suffix.')); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $container = new htmlTable(); + if ($this->isStructural() || (isset($this->attributes['objectClass']) && in_array('pykotaAccount', $this->attributes['objectClass']))) { + // uid + if ($this->manageUid()) { + $this->addSimpleInputTextField($container, 'uid', _('User name'), true); + } + else { + // require uid + $uid = $this->getCurrentUserName(); + if (empty($uid)) { + $page = ''; + if ($this->getAccountContainer()->getAccountModule('posixAccount') != null) { + $page = $this->getAccountContainer()->getAccountModule('posixAccount')->get_alias(); + } + elseif ($this->getAccountContainer()->getAccountModule('inetOrgPerson') != null) { + $page = $this->getAccountContainer()->getAccountModule('inetOrgPerson')->get_alias(); + } + $msg = new htmlStatusMessage('INFO', sprintf(_("Please enter an user name on this page: %s"), $page)); + $msg->colspan = 5; + $container->addElement($msg, true); + } + } + // pykotaUserName + $this->addSimpleInputTextField($container, 'pykotaUserName', _('Pykota user name')); + // balance + $pykotaBalance = ''; + if (isset($this->attributes['pykotaBalance'][0])) { + $pykotaBalance = $this->attributes['pykotaBalance'][0]; + } + $container->addElement(new htmlOutputText(_('Balance'))); + $container->addElement(new htmlOutputText($pykotaBalance)); + $container->addElement(new htmlHelpLink('pykotaBalance'), true); + // new payment and balance history + $container->addElement(new htmlOutputText(_('Payment'))); + $newPaymentGroup = new htmlGroup(); + $newPaymentAmount = new htmlInputField('pykotaBalanceAdd', '', '5em'); + $newPaymentAmount->setTitle(_('Amount')); + $newPaymentGroup->addElement($newPaymentAmount); + $newPaymentComment = new htmlInputField('pykotaBalanceComment', '', '20em'); + $newPaymentComment->setTitle(_('Comment')); + $newPaymentGroup->addElement($newPaymentComment); + $newPaymentBtn = new htmlButton('addPayment', _('Add')); + $newPaymentBtn->setIconClass('createButton'); + $newPaymentGroup->addElement($newPaymentBtn); + $container->addElement($newPaymentGroup); + $container->addElement(new htmlHelpLink('pykotaPaymentsAdd'), true); + $container->addElement(new htmlOutputText('')); + $historyGroup = new htmlGroup(); + $historyGroup->addElement(new htmlAccountPageButton(get_class($this), 'payments', 'open', _('Payment history'))); + if (!$this->getAccountContainer()->isNewAccount && !empty($this->moduleSettings['pykotaUser_jobSuffix'][0])) { + $historyGroup->addElement(new htmlSpacer('5px', null)); + $historyGroup->addElement(new htmlAccountPageButton(get_class($this), 'jobs', 'open', _('Job history'))); + } + $container->addElement($historyGroup); + $container->addElement(new htmlHelpLink('pykotaPayments'), true); + $container->addElement(new htmlSpacer(null, '10px'), true); + // limit by + $limitOption = 'quota'; + if (!empty($this->attributes['pykotaLimitBy'][0])) { + $limitOption = $this->attributes['pykotaLimitBy'][0]; + } + $limitSelect = new htmlTableExtendedSelect('pykotaLimitBy', $this->limitOptions, array($limitOption), _('Limit type'), 'pykotaLimitBy'); + $limitSelect->setHasDescriptiveElements(true); + $limitSelect->setSortElements(false); + $container->addElement($limitSelect, true); + // overcharge factor + $this->addSimpleInputTextField($container, 'pykotaOverCharge', _('Overcharge factor')); + // cn + if ($this->isStructural()) { + $this->addSimpleInputTextField($container, 'cn', _('Common name'), true); + } + // mail + if ($this->manageMail()) { + $this->addSimpleInputTextField($container, 'mail', _('Email address')); + } + // description + if ($this->manageDescription()) { + $this->addMultiValueInputTextField($container, 'description', _('Description'), false, null, true); + } + // remove button + if (!$this->isStructural()) { + $container->addElement(new htmlSpacer(null, '20px'), true); + $remButton = new htmlButton('remObjectClass', _('Remove PyKota extension')); + $remButton->colspan = 5; + $container->addElement($remButton); + } + } + else { + // add button + $container->addElement(new htmlButton('addObjectClass', _('Add PyKota extension'))); + } + return $container; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + $errors = array(); + if (isset($_POST['addObjectClass'])) { + if (!isset($this->attributes['objectClass'])) { + $this->attributes['objectClass'] = array(); + } + if (!in_array('pykotaAccount', $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = 'pykotaAccount'; + } + if (!in_array('pykotaAccountBalance', $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = 'pykotaAccountBalance'; + } + if (!isset($this->attributes['pykotaUserName'][0])) { + $this->attributes['pykotaUserName'][0] = $this->getCurrentUserName(); + } + return $errors; + } + if (isset($_POST['remObjectClass'])) { + $this->attributes['objectClass'] = array_delete(array('pykotaAccount', 'pykotaAccountBalance'), $this->attributes['objectClass']); + $attrs = array('pykotaLimitBy', 'pykotaUserName'); + if ($this->manageDescription()) { + $attrs[] = 'description'; + } + if ($this->manageMail()) { + $attrs[] = 'mail'; + } + if ($this->manageUid()) { + $attrs[] = 'uid'; + } + foreach ($attrs as $name) { + if (isset($this->attributes[$name])) { + unset($this->attributes[$name]); + } + } + return $errors; + } + // skip processing if object class is not set + if (!isset($this->attributes['objectClass']) || !in_array('pykotaAccount', $this->attributes['objectClass'])) { + return $errors; + } + // uid + if ($this->manageUid()) { + if (isset($_POST['uid']) && ($_POST['uid'] != '')) { + if (!get_preg($_POST['uid'], 'username')) { + $errors[] = $this->messages['uid'][0]; + } + else { + $this->attributes['uid'][0] = $_POST['uid']; + if ((!isset($this->orig['uid'][0]) || ($this->attributes['uid'][0] != $this->orig['uid'][0])) + && $this->uidExists($_POST['uid'])) { + $errors[] = $this->messages['uid'][2]; + } + } + } + elseif (isset($this->attributes['uid'][0])) { + unset($this->attributes['uid'][0]); + } + } + // PyKota user name + if (!empty($_POST['pykotaUserName'])) { + if (!get_preg($_POST['pykotaUserName'], 'username')) { + $errors[] = $this->messages['pykotaUserName'][0]; + } + else { + $this->attributes['pykotaUserName'][0] = $_POST['pykotaUserName']; + if ((!isset($this->orig['pykotaUserName'][0]) || ($this->attributes['pykotaUserName'][0] != $this->orig['pykotaUserName'][0])) + && $this->pykotaUserNameExists($_POST['pykotaUserName'])) { + $errors[] = $this->messages['pykotaUserName'][2]; + } + } + } + else { + $this->attributes['pykotaUserName'][0] = $this->getCurrentUserName(); + } + // limit by + $this->attributes['pykotaLimitBy'][0] = $_POST['pykotaLimitBy']; + // cn + if ($this->isStructural()) { + $this->attributes['cn'][0] = $_POST['cn']; + if (empty($this->attributes['cn'][0])) { + $this->attributes['cn'][0] = $_POST['uid']; + } + } + // mail + if ($this->manageMail()) { + $this->attributes['mail'][0] = $_POST['mail']; + if (!empty($_POST['mail']) && !get_preg($_POST['mail'], 'email')) { + $errors[] = $this->messages['mail'][0]; + } + } + // description + if ($this->manageDescription()) { + $this->processMultiValueInputTextField('description', $errors); + } + // overcharge factor + if (!empty($_POST['pykotaOverCharge'])) { + $this->attributes['pykotaOverCharge'][0] = $_POST['pykotaOverCharge']; + } + else { + $this->attributes['pykotaOverCharge'][0] = '1.0'; + } + // add payment + if (isset($_POST['addPayment'])) { + $amount = $_POST['pykotaBalanceAdd']; + if (!empty($amount) && (strpos($amount, ',') !== false)) { + $amount = str_replace(',', '.', $amount); + } + if (!empty($amount) && (strpos($amount, '.') === false)) { + $amount .= '.0'; + } + $comment = $_POST['pykotaBalanceComment']; + if (!empty($comment)) { + $comment = base64_encode($comment); + } + if (empty($amount) || (floatval($amount) == 0.0)) { + $errors[] = $this->messages['pykotaPayments'][0]; + } + else { + $this->attributes['pykotaPayments'][] = date('Y-m-d H:i:s,00', time()) . ' # ' . $amount . ' # ' . $comment; + // new balance + $newBalance = 0.0; + if (!empty($this->attributes['pykotaBalance'][0])) { + $newBalance = floatval($this->attributes['pykotaBalance'][0]); + } + $newBalance += $amount; + $this->attributes['pykotaBalance'][0] = strval($newBalance); + // total paid + $total = 0.0; + if (!empty($this->attributes['pykotaLifeTimePaid'][0])) { + $total = floatval($this->attributes['pykotaLifeTimePaid'][0]); + } + $total += $amount; + $this->attributes['pykotaLifeTimePaid'][0] = strval($total); + } + } + return $errors; + } + + /** + * Returns the HTML meta data for the payments page. + * + * @return htmlElement HTML meta data + */ + function display_html_payments() { + $container = new htmlTable(); + // total paid + $total = ''; + if (!empty($this->attributes['pykotaLifeTimePaid'][0])) { + $total = $this->attributes['pykotaLifeTimePaid'][0]; + } + $container->addElement(new htmlOutputText(_('Total paid'))); + $container->addElement(new htmlOutputText($total)); + $container->addElement(new htmlHelpLink('pykotaLifeTimePaid'), true); + // payment/job history + if (!empty($this->attributes['pykotaPayments'][0])) { + $container->addElement(new htmlSubTitle(_('Payment history')), true); + $spacer = new htmlSpacer('10px', null); + $historyTable = new htmlTable(); + $historyTable->colspan = 5; + $historyTable->addElement(new htmlOutputText(_('Date')), false, true); + $historyTable->addElement($spacer); + $historyTable->addElement(new htmlOutputText(_('Amount')), false, true); + $historyTable->addElement($spacer); + $historyTable->addElement(new htmlOutputText(_('Comment')), true, true); + rsort($this->attributes['pykotaPayments']); + foreach ($this->attributes['pykotaPayments'] as $payment) { + $parts = explode(' # ', $payment); + $historyTable->addElement(new htmlOutputText($parts[0])); + $historyTable->addElement($spacer); + $amount = new htmlOutputText($parts[1]); + $amount->alignment = htmlElement::ALIGN_RIGHT; + $historyTable->addElement($amount); + $historyTable->addElement($spacer); + if (!empty($parts[2])) { + $historyTable->addElement(new htmlOutputText(base64_decode($parts[2]))); + } + $historyTable->addNewLine(); + } + $container->addElement($historyTable, true); + } + // back button + $container->addElement(new htmlSpacer(null, '20px'), true); + $backButton = new htmlAccountPageButton(get_class($this), 'attributes', 'back', _('Back')); + $backButton->colspan = 5; + $backButton->alignment = htmlElement::ALIGN_LEFT; + $container->addElement($backButton, true); + return $container; + } + + /** + * Processes user input of the payments module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_payments() { + return array(); + } + + /** + * Returns the HTML meta data for the jobs page. + * + * @return htmlElement HTML meta data + */ + function display_html_jobs() { + $container = new htmlTable(); + // jobs + $jobs = $this->getJobs($this->getCurrentUserName(), $this->moduleSettings['pykotaUser_jobSuffix'][0]); + $spacer = new htmlSpacer('10px', null); + // header + $container->addElement(new htmlOutputText(_('Date')), false, true); + $container->addElement($spacer); + $container->addElement(new htmlOutputText(_('Printer')), false, true); + $container->addElement($spacer); + $container->addElement(new htmlOutputText(_('Price')), false, true); + $container->addElement($spacer); + $container->addElement(new htmlOutputText(_('Size')), false, true); + $container->addElement($spacer); + $title = new htmlOutputText(_('Title')); + $title->alignment = htmlElement::ALIGN_LEFT; + $container->addElement($title, true, true); + // jobs + foreach ($jobs as $job) { + $container->addElement(new htmlOutputText(formatLDAPTimestamp($job['createtimestamp'][0]))); + $container->addElement($spacer); + $container->addElement(new htmlOutputText($job['pykotaprintername'][0])); + $container->addElement($spacer); + $price = new htmlOutputText($job['pykotajobprice'][0]); + $price->alignment = htmlElement::ALIGN_RIGHT; + $container->addElement($price); + $container->addElement($spacer); + $size = new htmlOutputText($job['pykotajobsize'][0]); + $size->alignment = htmlElement::ALIGN_RIGHT; + $container->addElement($size); + $container->addElement($spacer); + $container->addElement(new htmlOutputText($job['pykotatitle'][0]), true); + } + // back button + $container->addElement(new htmlSpacer(null, '20px'), true); + $backButton = new htmlAccountPageButton(get_class($this), 'attributes', 'back', _('Back')); + $backButton->colspan = 5; + $backButton->alignment = htmlElement::ALIGN_LEFT; + $container->addElement($backButton, true); + return $container; + } + + /** + * Processes user input of the jobs module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_jobs() { + return array(); + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + function save_attributes() { + if (!in_array('pykotaAccount', $this->attributes['objectClass']) && !in_array('pykotaAccount', $this->orig['objectClass'])) { + // skip saving if the extension was not added/modified + return array(); + } + return parent::save_attributes(); + } + + /** + * This function is used to check if all settings for this module have been made. + * + * Calling this method requires the existence of an enclosing {@link accountContainer}.
    + *
    + * This function tells LAM if it can create/modify the LDAP account. If your module needs any + * additional input then set this to false. The user will be notified that your module needs + * more input.
    + * This method's return value defaults to true. + * + * @return boolean true, if settings are complete + */ + public function module_complete() { + if (in_array('pykotaAccount', $this->attributes['objectClass'])) { + // require uid + $uid = $this->getCurrentUserName(); + return !empty($uid); + } + return true; + } + + /** + * Loads the values of an account profile into internal variables. + * + * @param array $profile hash array with profile values (identifier => value) + */ + function load_profile($profile) { + // profile mappings in meta data + parent::load_profile($profile); + // add extension + if (isset($profile['pykotaUser_addExt'][0]) && ($profile['pykotaUser_addExt'][0] == "true")) { + if (!in_array('pykotaAccount', $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = 'pykotaAccount'; + } + if (!in_array('pykotaAccountBalance', $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = 'pykotaAccountBalance'; + } + } + if (!empty($profile['pykotaUser_pykotaBalance']) && empty($this->attributes['pykotaBalance'][0])) { + $amount = $profile['pykotaUser_pykotaBalance'][0]; + if (strpos($amount, '.') === false) { + $amount .= '.0'; + } + $this->attributes['pykotaBalance'][0] = $amount; + $this->attributes['pykotaLifeTimePaid'][0] = $amount; + $this->attributes['pykotaPayments'][] = date('Y-m-d H:i:s,00', time()) . ' # ' . $amount . ' # '; + } + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object classes + if (!in_array('pykotaAccount', $partialAccounts[$i]['objectClass'])) { + $partialAccounts[$i]['objectClass'][] = 'pykotaAccount'; + } + if (!in_array('pykotaAccountBalance', $partialAccounts[$i]['objectClass'])) { + $partialAccounts[$i]['objectClass'][] = 'pykotaAccountBalance'; + } + if ($this->isStructural() && !in_array('pykotaObject', $partialAccounts[$i]['objectClass'])) { + $partialAccounts[$i]['objectClass'][] = 'pykotaObject'; + } + // cn + if ($this->isStructural()) { + $partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['pykotaUser_cn']]; + } + // uid + if ($this->manageUid() && !empty($rawAccounts[$i][$ids['pykotaUser_uid']])) { + if (!get_preg($rawAccounts[$i][$ids['pykotaUser_uid']], 'username')) { + $errMsg = $this->messages['uid'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + elseif ($this->uidExists($rawAccounts[$i][$ids['pykotaUser_uid']])) { + $errMsg = $this->messages['uid'][3]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + else { + $partialAccounts[$i]['uid'] = $rawAccounts[$i][$ids['pykotaUser_uid']]; + } + } + // mail + if ($this->manageUid() && !empty($rawAccounts[$i][$ids['pykotaUser_mail']])) { + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'pykotaUser_mail', 'mail', + 'email', $this->messages['mail'][1], $messages); + } + // description + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'pykotaUser_description', 'description'); + // PyKota user name + if (!empty($rawAccounts[$i][$ids['pykotaUser_pykotaUserName']])) { + if (!get_preg($rawAccounts[$i][$ids['pykotaUser_pykotaUserName']], 'username')) { + $errMsg = $this->messages['pykotaUserName'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + elseif ($this->pykotaUserNameExists($rawAccounts[$i][$ids['pykotaUser_pykotaUserName']])) { + $errMsg = $this->messages['pykotaUserName'][3]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + else { + $partialAccounts[$i]['pykotaUserName'] = $rawAccounts[$i][$ids['pykotaUser_pykotaUserName']]; + } + } + // limit by + if (!empty($rawAccounts[$i][$ids['pykotaUser_pykotaLimitBy']])) { + if (isset($this->limitOptions[$rawAccounts[$i][$ids['pykotaUser_pykotaLimitBy']]])) { + $partialAccounts[$i]['pykotaLimitBy'] = $this->limitOptions[$rawAccounts[$i][$ids['pykotaUser_pykotaLimitBy']]]; + } + else { + $errMsg = $this->messages['pykotaLimitBy'][0]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + } + else { + $partialAccounts[$i]['pykotaLimitBy'] = 'quota'; + } + // overcharge factor + if (!empty($rawAccounts[$i][$ids['pykotaUser_pykotaOverCharge']])) { + $pykotaOverCharge = $rawAccounts[$i][$ids['pykotaUser_pykotaOverCharge']]; + if (strpos($pykotaOverCharge, '.') === false) { + $pykotaOverCharge .= '.0'; + } + if (!get_preg($pykotaOverCharge, 'float')) { + $errMsg = $this->messages['pykotaOverCharge'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + else { + $partialAccounts[$i]['pykotaOverCharge'] = $pykotaOverCharge; + } + } + else { + $partialAccounts[$i]['pykotaOverCharge'] = '1.0'; + } + // balance + if (!empty($rawAccounts[$i][$ids['pykotaUser_pykotaBalance']])) { + $balance = $rawAccounts[$i][$ids['pykotaUser_pykotaBalance']]; + if (strpos($balance, '.') === false) { + $balance .= '.0'; + } + if (!get_preg($balance, 'float')) { + $errMsg = $this->messages['pykotaBalance'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + else { + $partialAccounts[$i]['pykotaBalance'] = $balance; + $partialAccounts[$i]['pykotaLifeTimePaid'] = $balance; + $comment = ''; + if (!empty($rawAccounts[$i][$ids['pykotaUser_pykotaBalanceComment']])) { + $comment = base64_encode($rawAccounts[$i][$ids['pykotaUser_pykotaBalanceComment']]); + } + $partialAccounts[$i]['pykotaPayments'][0] = date('Y-m-d H:i:s,00', time()) . ' # ' . $balance . ' # ' . $comment; + } + } + } + return $messages; + } + + /** + * Returns a list of PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'cn', _('Common name')); + $this->addSimplePDFField($return, 'uid', _('User name')); + $this->addSimplePDFField($return, 'mail', _('Email address')); + $this->addSimplePDFField($return, 'pykotaUserName', _('PyKota user name')); + $this->addSimplePDFField($return, 'description', _('Description')); + $limitByOptions = array_flip($this->limitOptions); + $limitByValue = ''; + if (!empty($this->attributes['pykotaLimitBy'][0]) && isset($limitByOptions[$this->attributes['pykotaLimitBy'][0]])) { + $limitByValue = $limitByOptions[$this->attributes['pykotaLimitBy'][0]]; + } + $return[get_class($this) . '_pykotaLimitBy'] = array('' . _('Limit type') . '' . $limitByValue . ''); + $this->addSimplePDFField($return, 'pykotaOverCharge', _('Overcharge factor')); + $this->addSimplePDFField($return, 'pykotaBalance', _('Balance')); + $this->addSimplePDFField($return, 'pykotaLifeTimePaid', _('Total paid')); + // payment history + if (!empty($this->attributes['pykotaPayments'][0])) { + $history[] = '' . + '' . _('Date') . '' . + '' . _('Amount') . '' . + '' . _('Comment') . ''; + for ($i = 0; $i < sizeof($this->attributes['pykotaPayments']); $i++) { + $parts = explode(' # ', $this->attributes['pykotaPayments'][$i]); + $comment = ' '; + if (!empty($parts[2])) { + $comment = base64_decode($parts[2]); + } + $history[] = '' . + '' . $parts[0] . '' . + '' . $parts[1] . '' . + '' . $comment . ''; + } + $return[get_class($this) . '_pykotaPayments'] = $history; + } + return $return; + } + + /** + * Returns the meta HTML code for each input field. + * format: array( => array(), ...) + * It is not possible to display help links. + * + * @param array $fields list of active fields + * @param array $attributes attributes of LDAP account + * @param boolean $passwordChangeOnly indicates that the user is only allowed to change his password and no LDAP content is readable + * @param array $readOnlyFields list of read-only fields + * @return array list of meta HTML elements (field name => htmlTableRow) + */ + function getSelfServiceOptions($fields, $attributes, $passwordChangeOnly, $readOnlyFields) { + if ($passwordChangeOnly) { + return array(); // no Kolab fields as long no LDAP content can be read + } + if (!in_array('pykotaAccount', $attributes['objectClass'])) { + return array(); + } + $return = array(); + if (in_array('pykotaBalance', $fields)) { + $pykotaBalance = ''; + if (isset($attributes['pykotaBalance'][0])) $pykotaBalance = $attributes['pykotaBalance'][0]; + $return['pykotaBalance'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('pykotaBalance', _('Balance'))), new htmlOutputText($pykotaBalance) + )); + } + if (in_array('pykotaLifeTimePaid', $fields)) { + $pykotaLifeTimePaid = ''; + if (isset($attributes['pykotaLifeTimePaid'][0])) $pykotaLifeTimePaid = $attributes['pykotaLifeTimePaid'][0]; + $return['pykotaLifeTimePaid'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('pykotaLifeTimePaid', _('Total paid'))), new htmlOutputText($pykotaLifeTimePaid) + )); + } + // payment history + if (in_array('pykotaPayments', $fields)) { + $pykotaPayments = new htmlTable(); + $pykotaPayments->colspan = 5; + if (!empty($attributes['pykotaPayments'][0])) { + $spacer = new htmlSpacer('10px', null); + $pykotaPayments->addElement(new htmlOutputText(_('Date')), false, true); + $pykotaPayments->addElement($spacer); + $pykotaPayments->addElement(new htmlOutputText(_('Amount')), false, true); + $pykotaPayments->addElement($spacer); + $pykotaPayments->addElement(new htmlOutputText(_('Comment')), true, true); + rsort($attributes['pykotaPayments']); + foreach ($attributes['pykotaPayments'] as $payment) { + $parts = explode(' # ', $payment); + $pykotaPayments->addElement(new htmlOutputText($parts[0])); + $pykotaPayments->addElement($spacer); + $amount = new htmlOutputText($parts[1]); + $amount->alignment = htmlElement::ALIGN_RIGHT; + $pykotaPayments->addElement($amount); + $pykotaPayments->addElement($spacer); + if (!empty($parts[2])) { + $pykotaPayments->addElement(new htmlOutputText(base64_decode($parts[2]))); + } + $pykotaPayments->addNewLine(); + } + } + $pykotaPaymentsLabel = new htmlOutputText($this->getSelfServiceLabel('pykotaPayments', _('Payment history'))); + $pykotaPaymentsLabel->alignment = htmlElement::ALIGN_TOP; + $return['pykotaPayments'] = new htmlTableRow(array( + $pykotaPaymentsLabel, $pykotaPayments + )); + } + // job history + if (in_array('pykotaJobHistory', $fields) && !empty($this->selfServiceSettings->moduleSettings['pykotaUser_jobSuffix'][0]) && !empty($attributes['pykotaUserName'][0])) { + $jobs = $this->getJobs($attributes['pykotaUserName'][0], $this->selfServiceSettings->moduleSettings['pykotaUser_jobSuffix'][0]); + $pykotaJobs = new htmlTable(); + $pykotaJobs->colspan = 5; + $spacer = new htmlSpacer('10px', null); + $pykotaJobs->addElement(new htmlOutputText(_('Date')), false, true); + $pykotaJobs->addElement($spacer); + $pykotaJobs->addElement(new htmlOutputText(_('Printer')), false, true); + $pykotaJobs->addElement($spacer); + $pykotaJobs->addElement(new htmlOutputText(_('Price')), false, true); + $pykotaJobs->addElement($spacer); + $pykotaJobs->addElement(new htmlOutputText(_('Size')), false, true); + $pykotaJobs->addElement($spacer); + $title = new htmlOutputText(_('Title')); + $title->alignment = htmlElement::ALIGN_LEFT; + $pykotaJobs->addElement($title, true, true); + foreach ($jobs as $job) { + $pykotaJobs->addElement(new htmlOutputText(formatLDAPTimestamp($job['createtimestamp'][0]))); + $pykotaJobs->addElement($spacer); + $pykotaJobs->addElement(new htmlOutputText($job['pykotaprintername'][0])); + $pykotaJobs->addElement($spacer); + $price = new htmlOutputText($job['pykotajobprice'][0]); + $price->alignment = htmlElement::ALIGN_RIGHT; + $pykotaJobs->addElement($price); + $pykotaJobs->addElement($spacer); + $size = new htmlOutputText($job['pykotajobsize'][0]); + $size->alignment = htmlElement::ALIGN_RIGHT; + $pykotaJobs->addElement($size); + $pykotaJobs->addElement($spacer); + $pykotaJobs->addElement(new htmlOutputText($job['pykotatitle'][0]), true); + } + $pykotaJobsLabel = new htmlOutputText($this->getSelfServiceLabel('pykotaJobHistory', _('Job history'))); + $pykotaJobsLabel->alignment = htmlElement::ALIGN_TOP; + $return['pykotaJobHistory'] = new htmlTableRow(array( + $pykotaJobsLabel, $pykotaJobs + )); + } + return $return; + } + + /** + * Checks if the self service settings are valid. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * If the input data is invalid the return value is an array that contains arrays + * to build StatusMessages (message type, message head, message text). If no errors + * occured the function returns an empty array. + * + * @param array $options hash array (option name => value) that contains the input. The option values are all arrays containing one or more elements. + * @param selfServiceProfile $profile self service profile + * @return array error messages + */ + public function checkSelfServiceSettings(&$options, &$profile) { + $errors = array(); + if (get_class($this) == 'pykotaUser') { + if (!empty($options['pykotaUser_jobSuffix'][0]) && !get_preg($options['pykotaUser_jobSuffix'][0], 'dn')) { + $errors[] = $this->messages['jobSuffix'][0]; + } + } + return $errors; + } + + /** + * Returns if the uid attribute should be managed. + * + * @return boolean manage uid attribute + */ + private function manageUid() { + if (isset($_SESSION['config'])) { + $conf = $_SESSION['config']; + if (in_array('inetOrgPerson', $conf->get_AccountModules($this->get_scope())) + || in_array('posixAccount', $conf->get_AccountModules($this->get_scope()))) { + return false; + } + else { + return true; + } + } + return false; + } + + /** + * Returns if the mail attribute should be managed. + * + * @return boolean manage mail attribute + */ + private function manageMail() { + if (isset($_SESSION['config'])) { + $conf = $_SESSION['config']; + if (in_array('inetOrgPerson', $conf->get_AccountModules($this->get_scope()))) { + return false; + } + else { + return true; + } + } + return false; + } + + /** + * Returns if the description attribute should be managed. + * + * @return boolean manage description attribute + */ + private function manageDescription() { + if (isset($_SESSION['config'])) { + $conf = $_SESSION['config']; + if (in_array('inetOrgPerson', $conf->get_AccountModules($this->get_scope()))) { + return false; + } + else { + return true; + } + } + return false; + } + + /** + * Returns if the given uid already exists. + * + * @param String $uid uid attribute value + * @return boolean uid exists + */ + private function uidExists($uid) { + if ($this->uidCache == null) { + $this->loadUserNameCache(); + } + return in_array($uid, $this->uidCache); + } + + /** + * Returns if the given pykotaUserName already exists. + * + * @param String $pykotaUserName pykotaUserName attribute value + * @return boolean pykotaUserName exists + */ + private function pykotaUserNameExists($pykotaUserName) { + if ($this->pykotaUserNameCache == null) { + $this->loadUserNameCache(); + } + return in_array($pykotaUserName, $this->pykotaUserNameCache); + } + + /** + * Loads the list of user names into the cache. + */ + private function loadUserNameCache() { + $results = searchLDAPByFilter('(|(uid=*)(pykotaUserName=*))', array('uid', 'pykotaUserName'), array($this->get_scope())); + $this->uidCache = array(); + $this->pykotaUserNameCache = array(); + foreach ($results as $result) { + if (isset($result['uid'][0])) { + $this->uidCache[] = $result['uid'][0]; + } + if (isset($result['pykotausername'][0])) { + $this->pykotaUserNameCache[] = $result['pykotausername'][0]; + } + } + } + + /** + * Returns the current user name (uid) of this account. + * + * @return String user name + */ + private function getCurrentUserName() { + if (!empty($this->attributes['uid'][0])) { + return $this->attributes['uid'][0]; + } + if ($this->getAccountContainer()->getAccountModule('posixAccount') != null) { + $posix = $this->getAccountContainer()->getAccountModule('posixAccount'); + $attrs = $posix->getAttributes(); + if (!empty($attrs['uid'][0])) { + return $attrs['uid'][0]; + } + } + if ($this->getAccountContainer()->getAccountModule('inetOrgPerson') != null) { + $personal = $this->getAccountContainer()->getAccountModule('inetOrgPerson'); + $attrs = $personal->getAttributes(); + if (!empty($attrs['uid'][0])) { + return $attrs['uid'][0]; + } + } + return ''; + } + + /** + * Returns a list of jobs for the given user reverse-sorted by date. + * The number of jobs is limited to 100. + * + * @param String $user user name + * @param String $suffix LDAP suffix for job objects + */ + private function getJobs($user, $suffix) { + $attrs = array('createTimestamp', 'pykotaTitle', 'pykotaPrinterName', 'pykotaJobPrice', 'pykotaJobSize'); + if (isset($_SESSION['ldapHandle']) && is_resource($_SESSION['ldapHandle'])) { + $handle = $_SESSION['ldapHandle']; + } + else { + $handle = $_SESSION['ldap']->server(); + } + $sr = @ldap_search($handle, $suffix, '(&(objectClass=pykotaJob)(pykotaUserName=' . $user . '))', $attrs); + if (!$sr) { + return array(); + } + $jobList = ldap_get_entries($handle, $sr); + if (!$jobList) { + return array(); + } + cleanLDAPResult($jobList); + @ldap_free_result($sr); + $jobs = array(); + foreach ($jobList as $index => $job) { + $jobs[$job['createtimestamp'][0] . $index] = $job; + } + krsort($jobs); + if (sizeof($jobs) > 100) { + $jobs = array_slice($jobs, 0, 100); + } + return array_values($jobs); + } + +} + + +?> diff --git a/lam/lib/modules/pykotaUserStructural.inc b/lam/lib/modules/pykotaUserStructural.inc new file mode 100644 index 00000000..17c9e7a4 --- /dev/null +++ b/lam/lib/modules/pykotaUserStructural.inc @@ -0,0 +1,70 @@ + array(), 'conflicts' => array('pykotaUser')); + // additional object class and attribute + $return['objectClasses'][] = 'pykotaObject'; + $return['attributes'][] = 'cn'; + // RDN attribute + $return["RDN"] = array("cn" => "normal", 'uid' => 'low'); + return $return; + } + +} diff --git a/lam/lib/modules/quota.inc b/lam/lib/modules/quota.inc new file mode 100644 index 00000000..92d9a644 --- /dev/null +++ b/lam/lib/modules/quota.inc @@ -0,0 +1,856 @@ +messages['softblock'][0] = array('ERROR', _('Block soft quota'), _('Block soft quota contains invalid characters. Only natural numbers are allowed.')); + $this->messages['softblock'][1] = array('ERROR', _('Account %s:') . ' %s', _('Block soft quota contains invalid characters. Only natural numbers are allowed.')); + $this->messages['hardblock'][0] = array('ERROR', _('Block hard quota'), _('Block hard quota contains invalid characters. Only natural numbers are allowed.')); + $this->messages['hardblock'][1] = array('ERROR', _('Account %s:') . ' %s', _('Block hard quota contains invalid characters. Only natural numbers are allowed.')); + $this->messages['softinode'][0] = array('ERROR', _('Inode soft quota'), _('Inode soft quota contains invalid characters. Only natural numbers are allowed.')); + $this->messages['softinode'][1] = array('ERROR', _('Account %s:') . ' %s', _('Inode soft quota contains invalid characters. Only natural numbers are allowed.')); + $this->messages['hardinode'][0] = array('ERROR', _('Inode hard quota'), _('Inode hard quota contains invalid characters. Only natural numbers are allowed.')); + $this->messages['hardinode'][1] = array('ERROR', _('Account %s:') . ' %s', _('Inode hard quota contains invalid characters. Only natural numbers are allowed.')); + $this->messages['block_cmp'][0] = array('ERROR', _('Block quota'), _('Block soft quota must be smaller than block hard quota.')); + $this->messages['block_cmp'][1] = array('ERROR', _('Account %s:') . ' %s', _('Block soft quota must be smaller than block hard quota.')); + $this->messages['inode_cmp'][0] = array('ERROR', _('Inode quota'), _('Inode soft quota must be smaller than inode hard quota.')); + $this->messages['inode_cmp'][1] = array('ERROR', _('Account %s:') . ' %s', _('Inode soft quota must be smaller than inode hard quota.')); + $this->messages['upload'][0] = array('ERROR', _('Account %s:') . ' %s', _('Quota has wrong format!')); + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('user', 'group')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'hard-driveBig.png'; + // alias name + $return["alias"] = _('Quota'); + if ($this->get_scope() == 'group') { + // module dependencies + $return['dependencies'] = array('depends' => array(array('posixGroup', 'rfc2307bisPosixGroup')), 'conflicts' => array()); + } + if ($this->get_scope() == 'user') { + // module dependencies + $return['dependencies'] = array('depends' => array('posixAccount'), 'conflicts' => array()); + } + // managed attributes + $return['attributes'] = array('uid', 'cn'); + // available PDF fields + $return['PDF_fields'] = array( + 'quotas' => _('Quota') + ); + // help entries + $return['help'] = array( + "Mountpoint" => array( + "Headline" => _("Mountpoint"), + "Text" => _("Mountpoint of device with enabled quotas.") + ), + "UsedBlocks" => array( + "Headline" => _("Used blocks"), + "Text" => _("Used blocks. 1000 blocks are usually 1MB") + ), + "SoftBlockLimit" => array( + "Headline" => _("Soft block limit"), + "Text" => _("Soft block limit."), "SeeAlso" => array( + 'link' => 'http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Quota.html#ss4.4', + 'text' => 'Quota How-To') + ), + "HardBlockLimit" => array( + "Headline" => _("Hard block limit"), + "Text" => _("Hard block limit"), "SeeAlso" => array( + 'link' => 'http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Quota.html#ss4.5', + 'text' => 'Quota How-To') + ), + "GraceBlockPeriod" => array( + "Headline" => _("Grace block period"), + "Text" => _("Grace block period. Most filesystems use a fixed maximum value of 7 days."), "SeeAlso" => array( + 'link' => 'http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Quota.html#ss4.6', + 'text' => 'Quota How-To') + ), + "UsedInodes" => array( + "Headline" => _("Used inodes"), + "Text" => _("Used inodes (files)").'.' + ), + "SoftInodeLimit" => array( + "Headline" => _("Soft inode limit"), + "Text" => _("Soft inode (files) limit."), "SeeAlso" => array( + 'link' => 'http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Quota.html#ss4.4', + 'text' => 'Quota How-To') + ), + "HardInodeLimit" => array( + "Headline" => _("Hard inode limit"), + "Text" => _("Hard inode (files) limit"), "SeeAlso" => array( + 'link' => 'http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Quota.html#ss4.5', + 'text' => 'Quota How-To') + ), + "GraceInodePeriod" => array( + "Headline" => _("Grace inode period"), + "Text" => _("Grace inode (files) period. Most filesystems use a fixed maximum value of 7 days."), "SeeAlso" => array( + 'link' => 'http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Quota.html#ss4.6', + 'text' => 'Quota How-To') + ), + "upload" => array( + "Headline" => _("Quota"), + "Text" => _("Please enter the quota settings for this mount point. The syntax is: {soft block limit},{hard block limit},{soft inode limit},{hard inode limit}") + ) + ); + return $return; + } + + /** Saves the quota settings */ + private $quota; + + /** + * Initializes the quota values. + * + */ + function initQuotas() { + if (isset($this->quota)) return; + $userName = '+'; + if (($this->getAccountContainer() != null) && !$this->getAccountContainer()->isNewAccount) { + if ($this->get_scope() == 'user') { + if (!isset($this->attributes['uid'][0])) return; + $userName = $this->attributes['uid'][0]; + } + else if ($this->get_scope() == 'group') { + if (!isset($this->attributes['cn'][0])) return; + $userName = $this->attributes['cn'][0]; + } + } + // get list of lamdaemon servers + $lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers()); + for ($s = 0; $s < sizeof($lamdaemonServers); $s++) { + $temp = explode(":", $lamdaemonServers[$s]); + $server = $temp[0]; + // get quotas + $quotas = lamdaemon(implode(quota::$SPLIT_DELIMITER, array($userName, "quota", "get", $this->get_scope())), $server); + if (sizeof($quotas) == 0) { + continue; + } + $allQuotas = explode(":", $quotas[0]); + array_pop($allQuotas); // remove empty element at the end + for ($i = 0; $i < sizeof($allQuotas); $i++) { + if (strpos($allQuotas[$i], quota::$QUOTA_PREFIX) !== 0) continue; + $allQuotas[$i] = substr($allQuotas[$i], strlen(quota::$QUOTA_PREFIX)); + $singleQuota = explode(",", $allQuotas[$i]); + $this->quota[$server][$i] = $singleQuota; + if ($this->quota[$server][$i][4] < time()) $this->quota[$server][$i][4] = ''; + else $this->quota[$server][$i][4] = strval(intval(($this->quota[$server][$i][4] - time())/3600)) .' '. _('hours'); + if ($this->quota[$server][$i][8] < time()) $this->quota[$server][$i][8] = ''; + else $this->quota[$server][$i][8] = strval(intval(($this->quota[$server][$i][8] - time())/3600)) .' '. _('hours'); + } + } + } + + /** + * Gets the cn from the Unix group module. + * + * @return String cn attribute + */ + private function getCn() { + $modules = array('posixGroup', 'groupOfNames', 'groupOfUniqueNames'); + for ($i = 0; $i < sizeof($modules); $i++) { + if ($this->getAccountContainer()->getAccountModule($modules[$i]) != null) { + $attrs = $this->getAccountContainer()->getAccountModule($modules[$i])->getAttributes(); + if (isset($attrs['cn'][0])) { + return $attrs['cn'][0]; + } + } + } + return null; + } + + /** + * This function is used to check if this module page can be displayed. + * It returns false if a module depends on data from other modules which was not yet entered. + * + * @return boolean true, if page can be displayed + */ + function module_ready() { + if ($this->get_scope()=='user') { + $attrs = $this->getAccountContainer()->getAccountModule('posixAccount')->getAttributes(); + if ($attrs['uid'][0]=='') return false; + } + if ($this->get_scope()=='group') { + if (($this->getCn() == null) || ($this->getCn() == '')) { + return false; + } + } + return true; + } + + /** + * Quotas are set in postmodify. + * + * @see baseModule::postModifyActions() + * + * @param boolean $newAccount is new account + * @param array $attributes LDAP attributes of this entry + * @return array array which contains status messages. Each entry is an array containing the status message parameters. + */ + public function postModifyActions($newAccount, $attributes) { + $messages = array(); + if (!isset($this->quota) || !is_array($this->quota)) return $messages; + // determine if this is a user or group account + if ($this->get_scope()=='user') { + $attrs = $this->getAccountContainer()->getAccountModule('posixAccount')->getAttributes(); + $id = $attrs['uid'][0]; + } + if ($this->get_scope()=='group') { + $id = $this->getCn(); + } + // get list of lamdaemon servers + $serverDescriptions = array(); + $lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers()); + for ($s = 0; $s < sizeof($lamdaemonServers); $s++) { + $temp = explode(":", $lamdaemonServers[$s]); + if (isset($temp[1])) { + $serverDescriptions[$temp[0]] = $temp[1]; + } + } + $servers = array_keys($this->quota); + for ($q = 0; $q < sizeof($servers); $q++) { + $server = $servers[$q]; + $i=0; + $quotastring = ""; + for ($i = 0; $i < sizeof($this->quota[$server]); $i++) { + $quotastring = $quotastring . $this->quota[$server][$i][0] . ',' . $this->quota[$server][$i][2] . ',' . $this->quota[$server][$i][3] + . ',' . $this->quota[$server][$i][6] . ',' . $this->quota[$server][$i][7] . ':'; + } + lamdaemon(implode(quota::$SPLIT_DELIMITER, array($id, "quota", "set", $this->get_scope(), "$quotastring\n")), $server); + } + return $messages; + } + + /** + * Allows the module to run commands before the LDAP entry is deleted. + * + * @return array Array which contains status messages. Each entry is an array containing the status message parameters. + */ + function preDeleteActions() { + $this->initQuotas(); + if (!isset($this->quota) || !is_array($this->quota)) return array(); + // determine if this is a user or group account + if ($this->get_scope()=='user') { + $attrs = $this->getAccountContainer()->getAccountModule('posixAccount')->getAttributes(); + $id = $attrs['uid'][0]; + } + if ($this->get_scope()=='group') { + $id = $this->getCn(); + } + // get list of lamdaemon servers + $serverDescriptions = array(); + $lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers()); + for ($s = 0; $s < sizeof($lamdaemonServers); $s++) { + $temp = explode(":", $lamdaemonServers[$s]); + if (isset($temp[1])) { + $serverDescriptions[$temp[0]] = $temp[1]; + } + } + $servers = array_keys($this->quota); + for ($q = 0; $q < sizeof($servers); $q++) { + $server = $servers[$q]; + $i=0; + $quotastring = ""; + while (isset($this->quota[$server][$i][0])) { + $quotastring = $quotastring . $this->quota[$server][$i][0] . ',0,0,0,0:'; + $i++; + } + lamdaemon(implode(quota::$SPLIT_DELIMITER, array($id, "quota", "set", $this->get_scope(), "$quotastring\n")), $server); + } + return array(); + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + if (!isset($this->quota) || !is_array($this->quota)) return array(); + $errors = array(); + // get list of lamdaemon servers + $serverDescriptions = array(); + $lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers()); + for ($s = 0; $s < sizeof($lamdaemonServers); $s++) { + $temp = explode(":", $lamdaemonServers[$s]); + if (isset($temp[1])) { + $serverDescriptions[$temp[0]] = $temp[1]; + } + } + $servers = array_keys($this->quota); + for ($q = 0; $q < sizeof($servers); $q++) { + $server = $servers[$q]; + $id = $this->replaceSpecialChars($server); + $i=0; + // loop for every mointpoint with quotas + while (isset($this->quota[$server][$i][0])) { + $this->quota[$server][$i][2] = $_POST[$i . '_2_' . $id]; + $this->quota[$server][$i][3] = $_POST[$i . '_3_' . $id]; + $this->quota[$server][$i][6] = $_POST[$i . '_6_' . $id]; + $this->quota[$server][$i][7] = $_POST[$i . '_7_' . $id]; + // Check if values are OK and set automatic values. if not error-variable will be set + if (!get_preg($this->quota[$server][$i][2], 'digit')) + $errors[] = $this->messages['softblock'][0]; + if (!get_preg($this->quota[$server][$i][3], 'digit')) + $errors[] = $this->messages['hardblock'][0]; + if (!get_preg($this->quota[$server][$i][6], 'digit')) + $errors[] = $this->messages['softinode'][0]; + if (!get_preg($this->quota[$server][$i][7], 'digit')) + $errors[] = $this->messages['hardinode'][0]; + if (intval($this->quota[$server][$i][2]) > intval($this->quota[$server][$i][3])) + $errors[] = $this->messages['block_cmp'][0]; + if (intval($this->quota[$server][$i][6]) > intval($this->quota[$server][$i][7])) + $errors[] = $this->messages['inode_cmp'][0]; + $i++; + } + } + return $errors; + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $return = new htmlTable(); + $this->initQuotas(); + if (!is_array($this->quota)) return $return; + // get list of lamdaemon servers + $serverDescriptions = array(); + $lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers()); + for ($s = 0; $s < sizeof($lamdaemonServers); $s++) { + $temp = explode(":", $lamdaemonServers[$s]); + if (isset($temp[1])) { + $serverDescriptions[$temp[0]] = $temp[1]; + } + } + $servers = array_keys($this->quota); + for ($q = 0; $q < sizeof($servers); $q++) { + $server = $servers[$q]; + $id = $this->replaceSpecialChars($server); + $title = $server; + if (isset($serverDescriptions[$server])) { + $title = $serverDescriptions[$server] . " (" . $server . ")"; + } + $return->addElement(new htmlSubTitle($title), true); + $return->addElement(new htmlOutputText(' ' . _('Mountpoint') . ' ', false)); + $return->addElement(new htmlOutputText(' ' . _('Used blocks') . ' ', false)); + $return->addElement(new htmlOutputText(' ' . _('Soft block limit') . ' ', false)); + $return->addElement(new htmlOutputText(' ' . _('Hard block limit') . ' ', false)); + $return->addElement(new htmlOutputText(' ' . _('Grace block period') . ' ', false)); + $return->addElement(new htmlOutputText(' ' . _('Used inodes') . ' ', false)); + $return->addElement(new htmlOutputText(' ' . _('Soft inode limit') . ' ', false)); + $return->addElement(new htmlOutputText(' ' . _('Hard inode limit') . ' ', false)); + $return->addElement(new htmlOutputText(' ' . _('Grace inode period') . ' ', false)); + $return->addNewLine(); + $return->addElement(new htmlHelpLink('Mountpoint')); + $return->addElement(new htmlHelpLink('UsedBlocks')); + $return->addElement(new htmlHelpLink('SoftBlockLimit')); + $return->addElement(new htmlHelpLink('HardBlockLimit')); + $return->addElement(new htmlHelpLink('GraceBlockPeriod')); + $return->addElement(new htmlHelpLink('UsedInodes')); + $return->addElement(new htmlHelpLink('SoftInodeLimit')); + $return->addElement(new htmlHelpLink('HardInodeLimit')); + $return->addElement(new htmlHelpLink('GraceInodePeriod')); + $return->addNewLine(); + + $i=0; + // loop for every mointpoint with enabled quotas + while (isset($this->quota[$server][$i][0])) { + $return->addElement(new htmlOutputText($this->quota[$server][$i][0])); + $return->addElement(new htmlOutputText($this->quota[$server][$i][1])); + $sbLimitInput = new htmlInputField($i . '_2_' . $id, $this->quota[$server][$i][2]); + $sbLimitInput->setFieldSize(12); + $sbLimitInput->setFieldMaxLength(20); + $sbLimitInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($sbLimitInput); + $hbLimit = new htmlInputField($i . '_3_' . $id, $this->quota[$server][$i][3]); + $hbLimit->setFieldSize(12); + $hbLimit->setFieldMaxLength(20); + $hbLimit->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($hbLimit); + $return->addElement(new htmlOutputText($this->quota[$server][$i][4])); + $return->addElement(new htmlOutputText($this->quota[$server][$i][5])); + $siLimit = new htmlInputField($i . '_6_' . $id, $this->quota[$server][$i][6]); + $siLimit->setFieldMaxLength(20); + $siLimit->setFieldSize(12); + $siLimit->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($siLimit); + $hiLimit = new htmlInputField($i . '_7_' . $id, $this->quota[$server][$i][7]); + $hiLimit->setFieldMaxLength(20); + $hiLimit->setFieldSize(12); + $hiLimit->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($hiLimit); + $return->addElement(new htmlOutputText($this->quota[$server][$i][8])); + $return->addNewLine(); + $i++; + } + } + return $return; + } + + /** + * Replaces special characters in HTML name values. + * + * @param string $input input string + * @return string output string + */ + function replaceSpecialChars($input) { + $ret = str_replace(".", "_", $input); + return $ret; + } + + /** + * Returns a list of elements for the account profiles. + * + * @return htmlElement profile elements + */ + function get_profileOptions() { + $return = new htmlTable(); + $optionsAvailable = false; + // get list of lamdaemon servers + $lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers()); + for ($s = 0; $s < sizeof($lamdaemonServers); $s++) { + $temp = explode(":", $lamdaemonServers[$s]); + $server = $temp[0]; + $id = $this->replaceSpecialChars($server); + $description = $temp[0]; + if (isset($temp[1])) { + $description = $temp[1] . ' (' . $temp[0] . ')'; + } + // Get quotas + $quotas = lamdaemon(implode(quota::$SPLIT_DELIMITER, array("+", "quota", "get", $this->get_scope())), $server); + if (sizeof($quotas) == 0) { + continue; + } + $dirs = explode(":", $quotas[0]); + array_pop($dirs); // remove empty element at the end + for ($i = 0; $i < sizeof($dirs); $i++) { + if (strpos($dirs[$i], quota::$QUOTA_PREFIX) !== 0) { + unset($dirs[$i]); + $dirs = array_values($dirs); + $i--; + continue; + } + $dirs[$i] = substr($dirs[$i], strlen(quota::$QUOTA_PREFIX)); + $dirs[$i] = explode(",", $dirs[$i]); + $dirs[$i] = $dirs[$i][0]; + } + $dirs = array_values($dirs); + if (sizeof($dirs) < 1) continue; // stop if no quota directories were found + $optionsAvailable = true; + $return->addElement(new htmlSubTitle($description), true); + $return->addElement(new htmlOutputText(' ' . _('Mountpoint') . ' ', false)); + $return->addElement(new htmlOutputText(' ' . _('Soft block limit') . ' ', false)); + $return->addElement(new htmlOutputText(' ' . _('Hard block limit') . ' ', false)); + $return->addElement(new htmlOutputText(' ' . _('Soft inode limit') . ' ', false)); + $return->addElement(new htmlOutputText(' ' . _('Hard inode limit') . ' ', false)); + $return->addNewLine(); + $return->addElement(new htmlHelpLink('Mountpoint')); + $return->addElement(new htmlHelpLink('SoftBlockLimit')); + $return->addElement(new htmlHelpLink('HardBlockLimit')); + $return->addElement(new htmlHelpLink('SoftInodeLimit')); + $return->addElement(new htmlHelpLink('HardInodeLimit')); + $return->addNewLine(); + + for ($i = 0; $i < sizeof($dirs); $i++) { + $return->addElement(new htmlOutputText($dirs[$i])); + $sbLimit = new htmlInputField("quota_softblock_" . $id . "_" . $dirs[$i]); + $sbLimit->setFieldSize(12); + $sbLimit->setFieldMaxLength(20); + $return->addElement($sbLimit); + $hbLimit = new htmlInputField("quota_hardblock_" . $id . "_" . $dirs[$i]); + $hbLimit->setFieldSize(12); + $hbLimit->setFieldMaxLength(20); + $return->addElement($hbLimit); + $siLimit = new htmlInputField("quota_softinode_" . $id . "_" . $dirs[$i]); + $siLimit->setFieldSize(12); + $siLimit->setFieldMaxLength(20); + $return->addElement($siLimit); + $hiLimit = new htmlInputField("quota_hardinode_" . $id . "_" . $dirs[$i]); + $hiLimit->setFieldSize(12); + $hiLimit->setFieldMaxLength(20); + $return->addElement($hiLimit); + $return->addNewLine(); + } + } + if (!$optionsAvailable) { + return null; + } + return $return; + } + + /** + * Checks input values of account profiles. + * + * @param array $options a hash array (name => value) containing the options + * @return array list of error messages (array(type, title, text)) to generate StatusMessages, if any + */ + function check_profileOptions($options) { + $return = array(); + // get list of lamdaemon servers + $lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers()); + for ($s = 0; $s < sizeof($lamdaemonServers); $s++) { + $temp = explode(":", $lamdaemonServers[$s]); + $server = $temp[0]; + $id = $this->replaceSpecialChars($server); + // Get quotas + $quotas = lamdaemon(implode(quota::$SPLIT_DELIMITER, array("+", "quota", "get", $this->get_scope())), $server); + $dirs = explode(":", $quotas[0]); + array_pop($dirs); // remove empty element at the end + for ($i = 0; $i < sizeof($dirs); $i++) { + if (strpos($dirs[$i], quota::$QUOTA_PREFIX) !== 0) { + unset($dirs[$i]); + $i--; + continue; + } + $dirs[$i] = substr($dirs[$i], strlen(quota::$QUOTA_PREFIX)); + $dirs[$i] = explode(",", $dirs[$i]); + $dirs[$i] = $dirs[$i][0]; + } + $dirs = array_values($dirs); + for ($i = 0; $i < sizeof($dirs); $i++) { + if (!get_preg($options["quota_softblock_" . $id . "_" . $dirs[$i]][0], 'digit')) $return[] = $this->messages['softblock'][0]; + if (!get_preg($options["quota_hardblock_" . $id . "_" . $dirs[$i]][0], 'digit')) $return[] = $this->messages['hardblock'][0]; + if (!get_preg($options["quota_softinode_" . $id . "_" . $dirs[$i]][0], 'digit')) $return[] = $this->messages['softinode'][0]; + if (!get_preg($options["quota_hardinode_" . $id . "_" . $dirs[$i]][0], 'digit')) $return[] = $this->messages['hardinode'][0]; + if (intval($options["quota_softblock_" . $id . "_" . $dirs[$i]][0]) > intval($options["quota_hardblock_" . $id . "_" . $dirs[$i]][0])) $return[] = $this->messages['block_cmp'][0]; + if (intval($options["quota_softinode_" . $id . "_" . $dirs[$i]][0]) > intval($options["quota_hardinode_" . $id . "_" . $dirs[$i]][0])) $return[] = $this->messages['inode_cmp'][0]; + $i++; + } + } + return $return; + } + + /** + * Loads the values of an account profile into internal variables. + * + * @param array $profile hash array with profile values (identifier => value) + */ + function load_profile($profile) { + $this->initQuotas(); + if (!isset($this->quota) || !is_array($this->quota)) return; + $servers = array_keys($this->quota); + for ($s = 0; $s < sizeof($servers); $s++) { + $server = $servers[$s]; + $id = $this->replaceSpecialChars($server); + for ($i = 0; $i < sizeof($this->quota[$server]); $i++) { + $dir = $this->quota[$server][$i][0]; + if (isset($profile["quota_softblock_" . $id . "_" . $dir])) $this->quota[$server][$i][2] = $profile["quota_softblock_" . $id . "_" . $dir][0]; + if (isset($profile["quota_hardblock_" . $id . "_" . $dir])) $this->quota[$server][$i][3] = $profile["quota_hardblock_" . $id . "_" . $dir][0]; + if (isset($profile["quota_softinode_" . $id . "_" . $dir])) $this->quota[$server][$i][6] = $profile["quota_softinode_" . $id . "_" . $dir][0]; + if (isset($profile["quota_hardinode_" . $id . "_" . $dir])) $this->quota[$server][$i][7] = $profile["quota_hardinode_" . $id . "_" . $dir][0]; + } + } + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $this->initQuotas(); + if (!isset($this->quota) || !is_array($this->quota)) return array(); + if (sizeof($this->quota) > 0) { + $quotas = array(); + // get list of lamdaemon servers + $lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers()); + for ($s = 0; $s < sizeof($lamdaemonServers); $s++) { + $temp = explode(":", $lamdaemonServers[$s]); + $server = $temp[0]; + $description = $server; + if (isset($temp[1])) $description = $temp[1] . " (" . $server . ")"; + if (!isset($this->quota[$server]) || (sizeof($this->quota[$server]) < 1)) continue; + + $quotas[] = '' . + '' . $description . '' . + ''; + $quotas[] = '' . + '' . _('Mountpoint') . '' . + '' . _('Soft block') . '' . + '' . _('Hard block') . '' . + '' . _('Soft inode') . '' . + '' . _('Hard inode') . ''; + for ($i = 0; $i < sizeof($this->quota[$server]); $i++) { + $quotas[] = '' . + '' . $this->quota[$server][$i][0] . '' . + '' . $this->quota[$server][$i][2] . '' . + '' . $this->quota[$server][$i][3] . '' . + '' . $this->quota[$server][$i][6] . '' . + '' . $this->quota[$server][$i][7] . ''; + } + $quotas[] = ' '; + } + return array('quota_quotas' => $quotas); + } + else { + return array(); + } + } + + /** + * Returns an array containing all input columns for the file upload. + * + * Syntax: + *
    array( + *
    string: name, // fixed non-translated name which is used as column name (should be of format: _) + *
    string: description, // short descriptive name + *
    string: help, // help ID + *
    string: example, // example value + *
    boolean: required // true, if user must set a value for this column + *
    ) + * + * @param array $selectedModules list of selected account modules + * @return array column list + */ + function get_uploadColumns($selectedModules) { + $this->initQuotas(); + if (!isset($this->quota) || !is_array($this->quota)) return array(); + $return = array(); + if (sizeof($this->quota) > 0) { + // get list of lamdaemon servers + $lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers()); + for ($s = 0; $s < sizeof($lamdaemonServers); $s++) { + $temp = explode(":", $lamdaemonServers[$s]); + $server = $temp[0]; + // Get quotas + $quotas = lamdaemon(implode(quota::$SPLIT_DELIMITER, array("+", "quota", "get", $this->get_scope())), $server); + $dirs = explode(":", $quotas[0]); + array_pop($dirs); // remove empty element at the end + for ($i = 0; $i < sizeof($dirs); $i++) { + if (strpos($dirs[$i], quota::$QUOTA_PREFIX) !== 0) { + unset($dirs[$i]); + $i--; + continue; + } + $dirs[$i] = substr($dirs[$i], strlen(quota::$QUOTA_PREFIX)); + $dirs[$i] = explode(",", $dirs[$i]); + $dirs[$i] = $dirs[$i][0]; + } + $dirs = array_values($dirs); + for ($i = 0; $i < sizeof($dirs); $i++) { + $return[] = array( + 'name' => 'quota_' . $server . ':' . $dirs[$i], + 'description' => sprintf(_('Quota for %s on %s'), $dirs[$i], $server), + 'help' => 'upload', + 'example' => '2000,2500,3000,3500'); + } + } + } + return $return; + } + + /** + * This function executes one post upload action. + * + * @param array $data array containing one account in each element + * @param array $ids array( => ) + * @param array $failed list of accounts which were not created successfully + * @param array $temp variable to store temporary data between two post actions + * @param array $accounts list of LDAP entries + * @return array current status + *
    array ( + *
    'status' => 'finished' | 'inProgress' + *
    'progress' => 0..100 + *
    'errors' => array () + *
    ) + */ + function doUploadPostActions(&$data, $ids, $failed, &$temp, &$accounts) { + $errors = array(); + // first call, get list of user names and quota values + if (!isset($temp['counter'])) { + $temp['counter'] = 0; + // create list of quota columns + $temp['quotas'] = array(); + $columns = array_keys($ids); + for ($i = 0; $i < sizeof($columns); $i++) { + if (strpos($columns[$i], 'quota_') === 0) { + $temp['quotas'][] = substr($columns[$i], 6); + } + } + // select user/group name depending on current scope + $temp['accounts'] = array(); + $col = 'invalid'; + if ($this->get_scope() == 'user') $col = $ids['posixAccount_userName']; + elseif ($this->get_scope() == 'group') $col = $ids['posixGroup_cn']; + // create list of account names and their quota values + for ($i = 0; $i < sizeof($data); $i++) { + if (in_array($i, $failed)) continue; // ignore failed accounts + $name = $data[$i][$col]; + for ($m = 0; $m < sizeof($temp['quotas']); $m++) { + if ($data[$i][$ids['quota_' . $temp['quotas'][$m]]] != '') { + $parts = explode(',', $data[$i][$ids['quota_' . $temp['quotas'][$m]]]); + // check syntax + if (sizeof($parts) != 4) { + $errMsg = $this->messages['upload'][0]; + array_push($errMsg, array($i, 'quota_' . $temp['quotas'][$m])); + $errors[] = $errMsg; + continue; + } + if (!get_preg($parts[0], 'digit')) { + $errMsg = $this->messages['softblock'][1]; + array_push($errMsg, array($i, 'quota_' . $temp['quotas'][$m])); + $errors[] = $errMsg; + continue; + } + if (!get_preg($parts[1], 'digit')) { + $errMsg = $this->messages['hardblock'][1]; + array_push($errMsg, array($i, 'quota_' . $temp['quotas'][$m])); + $errors[] = $errMsg; + continue; + } + if (!get_preg($parts[2], 'digit')) { + $errMsg = $this->messages['softinode'][1]; + array_push($errMsg, array($i, 'quota_' . $temp['quotas'][$m])); + $errors[] = $errMsg; + continue; + } + if (!get_preg($parts[3], 'digit')) { + $errMsg = $this->messages['hardinode'][1]; + array_push($errMsg, array($i, 'quota_' . $temp['quotas'][$m])); + $errors[] = $errMsg; + continue; + } + if ($parts[0] > $parts[1]) { + $errMsg = $this->messages['block_cmp'][1]; + array_push($errMsg, array($i, 'quota_' . $temp['quotas'][$m])); + $errors[] = $errMsg; + continue; + } + if ($parts[2] > $parts[3]) { + $errMsg = $this->messages['inode_cmp'][1]; + array_push($errMsg, array($i, 'quota_' . $temp['quotas'][$m])); + $errors[] = $errMsg; + continue; + } + // save quota settings + $temp['accounts'][$name][$temp['quotas'][$m]] = $parts; + } + } + } + return array('status' => 'inProgress', 'progress' => 5, 'errors' => $errors); + } + // quotas are ready to set + elseif ($temp['counter'] < sizeof($temp['accounts'])) { + $names = array_keys($temp['accounts']); + $name = $names[$temp['counter']]; + $mountPoints = array_keys($temp['accounts'][$name]); + // set quota + for ($m = 0; $m < sizeof($mountPoints); $m++) { + $mpParts = explode(":", $mountPoints[$m]); + $server = $mpParts[0]; + $dir = $mpParts[1]; + $quotaString = implode(quota::$SPLIT_DELIMITER, array($name, "quota", "set", $this->get_scope(), $dir . ',' . + implode(',', $temp['accounts'][$name][$mountPoints[$m]]) . "\n")); + $result = lamdaemon($quotaString, $server); + if (is_array($result)) { + for ($i = 0; $i < sizeof($result); $i++) { + $parts = explode(",", $result); + if ($parts[0] == 'ERROR') { + $errors[] = array('ERROR', $parts[1], $parts[2]); + } + } + } + } + // set counters to next account/mount point + $temp['counter']++; + return array( + 'status' => 'inProgress', + 'progress' => 5 + (95 * ($temp['counter'] / sizeof($temp['accounts']))), + 'errors' => $errors); + } + return array('status' => 'finished'); + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * Calling this method requires the existence of an enclosing {@link accountContainer}.
    + *
    + * + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It is possible to change several DNs (e.g. create a new user and add him + * to some groups via attribute memberUid)
    + *
    "add" are attributes which have to be added to the LDAP entry + *
    "remove" are attributes which have to be removed from the LDAP entry + *
    "modify" are attributes which have to be modified in the LDAP entry + *
    "notchanged" are attributes which stay unchanged + *
    "info" values with informational value (e.g. to be used later by pre/postModify actions) + *
    + *
    This builds the required comands from $this-attributes and $this->orig. + * + * @return array list of modifications + */ + public function save_attributes() { + // no LDAP changes + return $this->getAccountContainer()->save_module_attributes(array(), array()); + } + +} + +?> diff --git a/lam/lib/modules/range.inc b/lam/lib/modules/range.inc new file mode 100644 index 00000000..a8f02d2c --- /dev/null +++ b/lam/lib/modules/range.inc @@ -0,0 +1,799 @@ + Function attibute_processed already running? */ + public $processed; + + /** For check, if IPs overlaped. */ + public $overlaped; + + /** list of pools that currently exist in LDAP */ + private $poolsOrig = array(); + /** list of pools that need to be updated in LDAP */ + private $poolsNew = array(); + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('dhcp')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + public function get_metaData() { + $return = array(); + // alias name + $return["alias"] = _("Ranges"); + // this is a base module + $return["is_base"] = false; + // icon + $return['icon'] = 'ipRange.png'; + // RDN attribute + $return["RDN"] = array("cn" => "high"); + // LDAP filter + $return["ldap_filter"] = array('or'=>"(objectClass=dhcpSubnet)"); + // module dependencies + $return['dependencies'] = array('depends' => array('dhcp_settings'), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array(); + // managed attributes + $return['attributes'] = array('dhcpRange'); + // help Entries + $return['help'] = array( + 'range_from' => array( + "Headline" => _("Range from"), + "Text" => _("The starting IP address of the range.") + ), + 'range_to' => array( + "Headline" => _("Range to"), + "Text" => _("The ending IP address of the range.") + ), + 'drop_range' => array( + "Headline" => _("Delete range"), + "Text" => _("Deletes an IP range.") + ), + 'add_range' => array( + "Headline" => _("New range"), + "Text" => _("Adds input fields for a new IP range.") + ), + 'add_pool' => array( + "Headline" => _("New pool"), + "Text" => _("Adds a new range pool.") + ), + 'poolName' => array( + "Headline" => _("Name"), 'attr' => 'cn', + "Text" => _("The pool's name.") + ), + 'poolPeer' => array( + "Headline" => _("Failover peer"), 'attr' => 'dhcpStatements', + "Text" => _("The pool's failover peer.") + ), + ); + + // available PDF fields + $return['PDF_fields'] = array('ranges' => _('Ranges')); + return $return; + } + + /** + * This function fills the error message array with messages. + */ + public function load_Messages() { + $this->messages['range_errors'][0] = array('ERROR', _('One or more errors occured. The invalid fields are marked.'), ''); + $this->messages['add_range'][0] = array('ERROR', _('New range'), _('Adding the range failed because errors occured.')); + $this->messages['drop_range'][0] = array('ERROR', _('Delete range'), _('It is not possible to delete all ranges.')); + $this->messages['pool_cn'][0] = array('ERROR', _('Name'), _('Please enter a pool name.')); + $this->messages['pool_range'][0] = array('ERROR', _('Please enter at least one range for pool "%s".'), null); + } + + /** + * Calculates the subnet for a given IP and netmask. + * + * @param String $ip IP address + * @param String $mask network mask + */ + private static function calculateSubnet($ip, $mask) { + return long2ip(ip2long($ip) & ip2long($mask)); + } + + /** + * Checks if the first IP is smaller than the second IP. + * + * @param String $first_ip first ip + * @param String $second_ip second ip + * + * @return true, if it's a valid Range, else false; + **/ + + public function check_range($first_ip, $second_ip) { + $ex_first = explode(".", $first_ip); + $ex_second = explode(".", $second_ip); + if ($ex_first[0]<$ex_second[0]) + return true; + if ($ex_first[1]<$ex_second[1]) + return true; + if ($ex_first[2]<$ex_second[2]) + return true; + if ($ex_first[3]<$ex_second[3]) { + return true; + } + return false; + } + + /** + * Check if an IP address is in the correct subnet. + * + * @param String $ip IP address + * @param String $subnet subnet + * @param String $mask network mask + * @return true if the range and subnet valid, else false + **/ + public static function check_subnet_range($ip, $subnet, $mask) { + $ipSubnet = range::calculateSubnet($ip, $mask); + return ($subnet == $ipSubnet); + } + + /** + * + * Checked, if Ranges are overlaped. + * + * @param first ip + * @param second ip + * + * @return false, if overlaped, else true. + * + **/ + function overlaped_range($ip,$ipB) { + $ex = explode(".", $ip); + $exB = explode(".", $ipB); + + if(!is_array($this->overlaped)) { + $this->overlaped = array(); + } + for($n=$ex[3];$n<=$exB[3];$n++) { + if (in_array($n, $this->overlaped)) { + return false; + } + else { + $this->overlaped[] = $n; + } + } + return true; + } + + /** + * + * Reset the overlaped_range() function + * + **/ + function reset_overlaped_range() { + $this->overlaped = array(); + } + + /** + * Controls if the module button the account page is visible and activated. + * + * @return string status ("enabled", "disabled", "hidden") + */ + public function getButtonStatus() { + if ($this->getAccountContainer()->dn_orig!=$_SESSION['config']->get_suffix('dhcp')) { + return "enabled"; + } + else { + return "hidden"; + } + } + + /** + * This function loads all needed LDAP attributes. + * + * @param array $attr list of attributes + */ + function load_attributes($attr) { + parent::load_attributes($attr); + // Load DHCP Options: + if ($this->getAccountContainer()->dn_orig!=$_SESSION['config']->get_suffix('dhcp')) { + $this->orig = $attr; + $this->attributes = $attr; + // Load DHCP Options: + if (isset($attr['dhcpRange']) && is_array($attr['dhcpRange'])) { + natcasesort($attr['dhcpRange']); + foreach($attr['dhcpRange'] AS $id=>$value) { + $ex = explode(" ", $value); + + // DHCP Range ins Array laden: + $this->ranges[$id] = array('range_start'=>$ex[0],'range_end'=>$ex[1]); + } + } + // load pools + $this->loadPools(); + } + } + + /** + * + * Adapt the Ranges with the subnet. + * + * @return true, if ranges were edit. + * + **/ + public function reload_ranges() { + $range_edit = false; // Range were edited? + // Only run it, when ranges already exists: + if(is_array($this->ranges)) { + $ex_subnet = explode(".", $this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes['cn'][0]); + $dhcpAttrs = $this->getAccountContainer()->getAccountModule('dhcp_settings')->getAttributes(); + $mask = $this->getAccountContainer()->getAccountModule('dhcp_settings')->getDHCPOption('subnet-mask'); + foreach ($this->ranges AS $id=>$arr) { + if (!empty($this->ranges[$id]['range_start']) && !range::check_subnet_range($this->ranges[$id]['range_start'],$dhcpAttrs['cn'][0], $mask)) { + // Range anpassen: + $ex = explode(".", $this->ranges[$id]['range_start']); + $tmp = $this->ranges[$id]['range_start']; + $this->ranges[$id]['range_start'] = $ex_subnet['0'].".".$ex_subnet['1'].".".$ex_subnet['2'].".".$ex['3']; + if($tmp!=$this->ranges[$id]['range_start']) + $range_edit = true; + } + if (!empty($this->ranges[$id]['range_end']) && !range::check_subnet_range($this->ranges[$id]['range_end'],$dhcpAttrs['cn'][0], $mask)) { + // Range anpassen: + $ex = explode(".", $this->ranges[$id]['range_end']); + $tmp = $this->ranges[$id]['range_end']; + $this->ranges[$id]['range_end'] = $ex_subnet['0'].".".$ex_subnet['1'].".".$ex_subnet['2'].".".$ex['3']; + if($tmp!=$this->ranges[$id]['range_end']) + $range_edit = true; + } + } + if ($range_edit) { + // sort the range new, id it was edit. + foreach($this->ranges AS $id=>$arr) { + $this->attributes['dhcpRange'][$id] = $this->ranges[$id]['range_start']." ".$this->ranges[$id]['range_end']; + } + } + } + return $range_edit; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + public function process_attributes() { + $errors = array(); + if ($this->getAccountContainer()->dn_orig == $_SESSION['config']->get_suffix('dhcp')) { + return $errors; + } + $subnet = $this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes['cn'][0]; + $mask = $this->getAccountContainer()->getAccountModule('dhcp_settings')->getDHCPOption('subnet-mask'); + $errorOccured = false; + $this->reset_overlaped_range(); + if ($this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes['cn'][0]!="") { + + foreach($this->ranges AS $id=>$arr) { + // Check if range is to drop + if (isset($_POST['drop_range_'.$id])) { + // drop Range: + unset($this->ranges[$id]); + unset($this->attributes['dhcpRange'][$id]); + continue; + } + + // if the inputs are empty, then do nothing: + if ($_POST['range_start_'.$id]=="" && $_POST['range_end_'.$id]=="") { + unset($this->attributes['dhcpRange'][$id]); + } + else { + // Check range_start: + $_POST['range_start_'.$id] = trim($_POST['range_start_'.$id]); + if (!check_ip($_POST['range_start_'.$id])) { + $errorOccured = true; + } + $this->ranges[$id]['range_start'] = $_POST['range_start_'.$id]; + + // Check end: + $_POST['range_end_'.$id] = trim($_POST['range_end_'.$id]); + if (!check_ip($_POST['range_end_'.$id])) { + $errorOccured = true; + } + $this->ranges[$id]['range_end'] = $_POST['range_end_'.$id]; + + // Check if ip overlaped: + if(!$this->overlaped_range($_POST['range_start_'.$id],$_POST['range_end_'.$id])) { + $errorOccured = true; + } + + // Check if Subnet and range first are valid: + if (!range::check_subnet_range($_POST['range_start_'.$id], $subnet, $mask)) { + $errorOccured = true; + } + + // Check if Subnet and range last are valid: + if (!range::check_subnet_range($_POST['range_end_'.$id], $subnet, $mask)) { + $errorOccured = true; + } + + // Check if Range is valid + if (!$this->check_range($_POST['range_start_'.$id],$_POST['range_end_'.$id])) { + $errorOccured = true; + } + + // Check, if range_start and range_end are ok! + if (!$errorOccured) { + $this->attributes['dhcpRange'][$id] = $_POST['range_start_'.$id]." ".$_POST['range_end_'.$id]; + } + else { + unset($this->attributes['dhcpRange'][$id]); + } + } + } + } + + // Add new Range + if(isset($_POST['add_range'])) { + // Check, if there where no errors: + if ($errorOccured) { + $errors[] = $this->messages['add_range'][0]; + } + else + { + // Add Range: + $this->ranges[] = array('range_start'=>'','range_end'=>''); + } + } + + // update pool data + foreach ($this->poolsNew as $index => $pool) { + // delete pool + if (isset($_POST['del_pool_' . $index])) { + unset($this->poolsNew[$index]); + continue; + } + // name + $this->poolsNew[$index]['cn'][0] = trim($_POST['pool_cn_' . $index]); + if (empty($this->poolsNew[$index]['cn'][0])) { + $errors[] = $this->messages['pool_cn'][0]; + } + // failover peer + $peer = trim($_POST['pool_peer_' . $index]); + if (!empty($this->poolsNew[$index]['dhcpstatements'])) { + // remove old peer setting + foreach ($this->poolsNew[$index]['dhcpstatements'] as $indexS => $stmt) { + if (strpos($stmt, 'failover peer "') === 0) { + unset($this->poolsNew[$index]['dhcpstatements'][$indexS]); + break; + } + } + } + if (!empty($peer)) { + $this->poolsNew[$index]['dhcpstatements'][] = 'failover peer "' . $peer . '"'; + } + if (!empty($this->poolsNew[$index]['dhcprange'])) { + foreach ($this->poolsNew[$index]['dhcprange'] as $rIndex => $range) { + // delete pool range + if (isset($_POST['drop_poolrange_' . $index . '_' . $rIndex])) { + unset($this->poolsNew[$index]['dhcprange'][$rIndex]); + continue; + } + $from = trim($_POST['pool_from_' . $index . '_' . $rIndex]); + $to = trim($_POST['pool_to_' . $index . '_' . $rIndex]); + if (empty($from) && empty($to)) { + unset($this->poolsNew[$index]['dhcprange'][$rIndex]); + } + else { + $this->poolsNew[$index]['dhcprange'][$rIndex] = $from . ' ' . $to; + // check ranges + if (!check_ip($from) || !check_ip($to)) { + $errorOccured = true; + } + elseif (!$this->overlaped_range($from, $to)) { + $errorOccured = true; + } + elseif (!range::check_subnet_range($from, $subnet, $mask) || !range::check_subnet_range($to, $subnet, $mask)) { + $errorOccured = true; + } + elseif (!$this->check_range($from, $to)) { + $errorOccured = true; + } + } + } + } + // check if at least one range is still set + if (empty($this->poolsNew[$index]['dhcprange'])) { + $error = $this->messages['pool_range'][0]; + $error[] = array(htmlspecialchars($this->poolsNew[$index]['cn'][0])); + $errors[] = $error; + } + // add pool range + if (isset($_POST['add_poolrange_' . $index])) { + $this->poolsNew[$index]['dhcprange'][] = ''; + } + } + // add a new pool + if (isset($_POST['add_pool'])) { + $this->poolsNew[] = array( + 'objectclass' => array('dhcpPool'), + 'dhcprange' => array('') + ); + } + + // Check if there was a error: + if ($errorOccured) { + $errors[] = $this->messages['range_errors'][0]; + } + + $this->processed = true; + return $errors; + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + public function display_html_attributes() { + $return = new htmlTable(); + if ($this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes['cn'][0]=="") { + $return->addElement(new htmlStatusMessage('INFO', _("Please fill out the DHCP settings first."))); + return $return; + } + + // If $ranges is not a array, then create it + if (!is_array($this->ranges)) { + $this->ranges = array(); + } + $this->reset_overlaped_range(); + $mask = $this->getAccountContainer()->getAccountModule('dhcp_settings')->getDHCPOption('subnet-mask'); + $subnet = $this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes['cn'][0]; + foreach($this->ranges AS $id=>$arr) { + // Range start + $error = ""; + if (isset($this->ranges[$id]['range_start']) && !empty($this->ranges[$id]['range_start'])) { + if ($this->processed && !check_ip($this->ranges[$id]['range_start'])) { + $error = _("The IP address is invalid."); + } elseif($this->processed && !$this->check_range($this->ranges[$id]['range_start'],$this->ranges[$id]['range_end'])) { + $error = _("The range end needs to be greater than the range start."); + } elseif ($this->processed && !range::check_subnet_range($this->ranges[$id]['range_start'], $subnet, $mask)) { + $error = _("The IP does not match the subnet."); + } elseif ($this->processed && !$this->overlaped_range($this->ranges[$id]['range_start'],$this->ranges[$id]['range_end']) ) { + $error = _("The range conflicts with another range."); + } + } + $fromInput = new htmlTableExtendedInputField(_('Range from'), 'range_start_'.$id, $this->ranges[$id]['range_start'], 'range_from'); + $fromInput->setRequired(true); + $return->addElement($fromInput); + $return->addElement(new htmlOutputText($error), true); + // Range end + $error = ""; + if (isset($this->ranges[$id]['range_end']) && !empty($this->ranges[$id]['range_end'])) { + if ($this->processed && !check_ip($this->ranges[$id]['range_end'])) { + $error = _("The IP address is invalid."); + } elseif ($this->processed && !range::check_subnet_range($this->ranges[$id]['range_end'], $subnet, $mask)) { + $error = _("The IP does not match the subnet."); + } + } + $toInput = new htmlTableExtendedInputField(_('Range to'), 'range_end_'.$id, $this->ranges[$id]['range_end'], 'range_to'); + $toInput->setRequired(true); + $return->addElement($toInput); + $return->addElement(new htmlOutputText($error), true); + // Drop range: + $dropButton = new htmlButton('drop_range_'.$id, _('Delete range')); + $dropButton->colspan = 2; + $dropButton->setIconClass('deleteButton'); + $return->addElement($dropButton); + $return->addElement(new htmlHelpLink('drop_range'), true); + + $return->addElement(new htmlSpacer(null, '10px'), true); + } + + // add new range + $addButton = new htmlButton('add_range', _('New range')); + $addButton->setIconClass('createButton'); + $addButton->colspan = 2; + $return->addElement($addButton); + $return->addElement(new htmlHelpLink('add_range'), true); + + // pools + if (!empty($this->poolsNew)) { + $return->addElement(new htmlSubTitle(_('Pools')), true); + foreach ($this->poolsNew as $index => $poolAttrs) { + $cn = !empty($poolAttrs['cn'][0]) ? $poolAttrs['cn'][0] : ''; + $nameField = new htmlTableExtendedInputField(_('Name'), 'pool_cn_' . $index, $cn, 'poolName'); + $nameField->setRequired(true); + $return->addElement($nameField); + $delPoolButton = new htmlButton('del_pool_' . $index, _('Delete pool')); + $delPoolButton->setIconClass('trashButton'); + $return->addElement($delPoolButton, true); + $peer = ''; + if (!empty($poolAttrs['dhcpstatements'])) { + foreach ($poolAttrs['dhcpstatements'] as $statement) { + if (strpos($statement, 'failover peer "') === 0) { + $peer = substr($statement, strlen('failover peer "'), -1); + } + } + } + $return->addElement(new htmlTableExtendedInputField(_('Failover peer'), 'pool_peer_' . $index, $peer, 'poolPeer'), true); + $return->addVerticalSpace('10px'); + if (!empty($poolAttrs['dhcprange'])) { + foreach ($poolAttrs['dhcprange'] as $rIndex => $range) { + $range = explode(' ', $range); + $from = !empty($range[0]) ? $range[0] : ''; + $to = !empty($range[1]) ? $range[1] : ''; + $fromInput = new htmlTableExtendedInputField(_('Range from'), 'pool_from_' . $index . '_' . $rIndex, $from, 'range_from'); + $fromInput->setRequired(true); + $toInput = new htmlTableExtendedInputField(_('Range to'), 'pool_to_' . $index . '_' . $rIndex, $to, 'range_to'); + $toInput->setRequired(true); + $return->addElement($fromInput); + $message = ''; + if (!empty($from) && $this->processed) { + if (!check_ip($from)) { + $message = _("The IP address is invalid."); + } + elseif (!$this->check_range($from, $to)) { + $message = _("The range end needs to be greater than the range start."); + } + elseif (!range::check_subnet_range($from, $subnet, $mask)) { + $message = _("The IP does not match the subnet."); + } + elseif (!$this->overlaped_range($from, $to)) { + $message = _("The range conflicts with another range."); + } + } + $return->addElement(new htmlOutputText($message), true); + $return->addElement($toInput); + $message = ''; + if (!empty($to) && $this->processed) { + if (!check_ip($to)) { + $message = _("The IP address is invalid."); + } + elseif (!range::check_subnet_range($to, $subnet, $mask)) { + $message = _("The IP does not match the subnet."); + } + } + $return->addElement(new htmlOutputText($message), true); + // drop range + $dropButton = new htmlButton('drop_poolrange_' . $index . '_' . $rIndex, _('Delete range')); + $dropButton->colspan = 2; + $dropButton->setIconClass('deleteButton'); + $return->addElement($dropButton); + $return->addElement(new htmlHelpLink('drop_range'), true); + $return->addElement(new htmlSpacer(null, '10px'), true); + } + } + // add new range + $newButton = new htmlButton('add_poolrange_' . $index, _('New range')); + $newButton->colspan = 2; + $newButton->setIconClass('createButton'); + $return->addElement($newButton); + $return->addElement(new htmlHelpLink('add_range'), true); + $return->addVerticalSpace('20px'); + } + $return->addVerticalSpace('20px'); + } + + // add new range pool + $addButton = new htmlButton('add_pool', _('New pool')); + $addButton->setIconClass('createButton'); + $addButton->colspan = 2; + $return->addElement($addButton); + $return->addElement(new htmlHelpLink('add_pool'), true); + + return $return; + } + + /** + * Allows the module to run commands after the LDAP entry is changed or created. + * + * Calling this method requires the existence of an enclosing {@link accountContainer}. + * + * @param boolean $newAccount new account + * @param array $attributes LDAP attributes of this entry + * @return array array which contains status messages. Each entry is an array containing the status message parameters. + */ + public function postModifyActions($newAccount, $attributes) { + $errors = array(); + // update pool data + // add new pools + foreach ($this->poolsNew as $pool) { + $found = false; + foreach ($this->poolsOrig as $poolOrig) { + if ($pool['cn'][0] == $poolOrig['cn'][0]) { + $found = true; + break; + } + } + if (!$found) { + // create new pool + $dn = 'cn=' . $pool['cn'][0] . ',' . $this->getAccountContainer()->finalDN; + if (isset($pool['dn'])) { + unset($pool['dn']); + } + $success = @ldap_add($_SESSION['ldap']->server(), $dn, $pool); + if (!$success) { + $msg = sprintf(_('Was unable to create DN: %s.'), $dn); + logNewMessage(LOG_ERR, $msg . getDefaultLDAPErrorString($_SESSION['ldap']->server())); + $errors[] = array('ERROR', $msg, getDefaultLDAPErrorString($_SESSION['ldap']->server())); + } + } + } + // update existing pools + foreach ($this->poolsNew as $pool) { + foreach ($this->poolsOrig as $poolOrig) { + if ($pool['cn'][0] == $poolOrig['cn'][0]) { + // check for changes + $mod = array(); + // check attributes + $attrs = array('dhcpstatements', 'dhcprange'); + foreach ($attrs as $attr) { + $changed = false; + if (empty($pool[$attr]) && empty($poolOrig[$attr])) { + continue; + } + if ((!empty($pool[$attr]) && empty($poolOrig[$attr])) + || (empty($pool[$attr]) && !empty($poolOrig[$attr])) + || (sizeof($pool[$attr]) != sizeof($poolOrig[$attr]))) { + $changed = true; + } + else { + sort($pool[$attr]); + sort($poolOrig[$attr]); + foreach ($pool[$attr] as $index => $val) { + if ($val != $poolOrig[$attr][$index]) { + $changed = true; + } + } + } + if ($changed && isset($pool[$attr])) { + $mod[$attr] = $pool[$attr]; + } + elseif ($changed) { + $mod[$attr] = array(); + } + } + if (!empty($mod)) { + $dn = 'cn=' . $pool['cn'][0] . ',' . $this->getAccountContainer()->finalDN; + $success = @ldap_modify($_SESSION['ldap']->server(), $dn, $mod); + if (!$success) { + $msg = sprintf(_('Was unable to modify attributes of DN: %s.'), $dn); + logNewMessage(LOG_ERR, $msg . getDefaultLDAPErrorString($_SESSION['ldap']->server())); + $errors[] = array('ERROR', $msg, getDefaultLDAPErrorString($_SESSION['ldap']->server())); + } + } + break; + } + } + } + // delete obsolete pools + foreach ($this->poolsOrig as $poolOrig) { + $found = false; + foreach ($this->poolsNew as $pool) { + if ($poolOrig['cn'][0] == $pool['cn'][0]) { + $found = true; + break; + } + } + if (!$found) { + // delete pool + $dn = 'cn=' . $poolOrig['cn'][0] . ',' . $this->getAccountContainer()->finalDN; + $success = @ldap_delete($_SESSION['ldap']->server(), $dn); + if (!$success) { + $msg = sprintf(_('Was unable to delete DN: %s.'), $dn); + logNewMessage(LOG_ERR, $msg . getDefaultLDAPErrorString($_SESSION['ldap']->server())); + $errors[] = array('ERROR', $msg, getDefaultLDAPErrorString($_SESSION['ldap']->server())); + } + } + } + return $errors; + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + public function save_attributes() { + $return = array(); + // Get easy attributes + if ($this->getAccountContainer()->dn_orig!=$_SESSION['config']->get_suffix('dhcp')) { + $return = $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig); + } + // Return attributes + return $return; + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $return = array(); + if (is_array($this->ranges) && (sizeof($this->ranges) > 0)) { + $start = $this->ranges[0]['range_start']; + $end = $this->ranges[0]['range_end']; + $return[get_class($this) . '_ranges'] = array('' . _('Ranges') . '' . $start . " - " . $end . ''); + for ($i = 1; $i < sizeof($this->ranges); $i++) { + $start = $this->ranges[$i]['range_start']; + $end = $this->ranges[$i]['range_end']; + $return[get_class($this) . '_ranges'][] = '' . $start . " - " . $end . ''; + } + } + return $return; + } + + /** + * Loads the list of pools from LDAP. + */ + private function loadPools() { + $dn = $this->getAccountContainer()->dn_orig; + $this->poolsOrig = searchLDAP($dn, '(objectclass=dhcpPool)', array('*')); + foreach ($this->poolsOrig as &$pool) { + if (!empty($pool['dhcprange'])) { + sort($pool['dhcprange']); + } + } + $this->poolsNew = $this->poolsOrig; + } + +} + +?> diff --git a/lam/lib/modules/sambaDomain.inc b/lam/lib/modules/sambaDomain.inc new file mode 100644 index 00000000..3e4a2700 --- /dev/null +++ b/lam/lib/modules/sambaDomain.inc @@ -0,0 +1,634 @@ +get_scope(), array('smbDomain')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'samba.png'; + // alias name + $return["alias"] = _("Samba domain"); + // this is a base module + $return["is_base"] = true; + // RDN attribute + $return["RDN"] = array("sambaDomainName" => "high"); + // LDAP filter + $return["ldap_filter"] = array('or' => "(objectClass=sambaDomain)"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('sambaDomain'); + // managed attributes + $return['attributes'] = array('sambaDomainName', 'sambaSID', 'sambaNextRid', 'sambaNextGroupRid', + 'sambaNextUserRid', 'sambaAlgorithmicRidBase', 'sambaMinPwdLength', 'sambaPwdHistoryLength', + 'sambaLogonToChgPwd', 'sambaForceLogoff', 'sambaRefuseMachinePwdChange', 'sambaLockoutThreshold', + 'sambaMinPwdAge', 'sambaMaxPwdAge', 'sambaLockoutDuration', 'sambaLockoutObservationWindow'); + // help Entries + $return['help'] = array( + 'domainName' => array( + "Headline" => _("Domain name"), 'attr' => 'sambaDomainName', + "Text" => _("The name of your Windows domain or workgroup.") + ), + 'domainSID' => array( + "Headline" => _("Domain SID"), 'attr' => 'sambaSID', + "Text" => _("The SID of your Samba server. Get it with \"net getlocalsid\".") + ), + 'nextRID' => array( + "Headline" => _("Next RID"), 'attr' => 'sambaNextRid', + "Text" => _("Next RID to use when creating accounts (only used by Winbind).") + ), + 'nextUserRID' => array( + "Headline" => _("Next user RID"), 'attr' => 'sambaNextUserRid', + "Text" => _("Next RID to use when creating user accounts (only used by Winbind).") + ), + 'nextGroupRID' => array( + "Headline" => _("Next group RID"), 'attr' => 'sambaNextGroupRid', + "Text" => _("Next RID to use when creating group accounts (only used by Winbind).") + ), + 'RIDbase' => array( + "Headline" => _("RID base"), 'attr' => 'sambaAlgorithmicRidBase', + "Text" => _("Used for calculating RIDs from UID/GID. Do not change if unsure.") + ), + 'minPwdLength' => array( + "Headline" => _("Minimal password length"), 'attr' => 'sambaMinPwdLength', + "Text" => _("Here you can specify the minimum number of characters for a user password.") + ), + 'pwdHistLength' => array( + "Headline" => _("Password history length"), 'attr' => 'sambaPwdHistoryLength', + "Text" => _("This is the number of passwords which are saved to prevent that users reuse old passwords.") + ), + 'logonToChgPwd' => array( + "Headline" => _("Logon for password change"), 'attr' => 'sambaLogonToChgPwd', + "Text" => _("If set then users need to login to change their password.") + ), + 'forceLogoff' => array( + "Headline" => _("Disconnect users outside logon hours"), 'attr' => 'sambaForceLogoff', + "Text" => _("Disconnects users if they are logged in outside logon hours.") + ), + 'refuseMachinePwdChange' => array( + "Headline" => _("Allow machine password changes"), 'attr' => 'sambaRefuseMachinePwdChange', + "Text" => _("Defines if workstations may change their passwords.") + ), + 'lockoutThreshold' => array( + "Headline" => _("Lockout users after bad logon attempts"), 'attr' => 'sambaLockoutThreshold', + "Text" => _("This is the number of bad logon attempts (0 - 999) before the account is deactivated. 0 means unlimited attempts.") + ), + 'minPwdAge' => array( + "Headline" => _("Minimum password age"), 'attr' => 'sambaMinPwdAge', + "Text" => _("Number of seconds after the user is allowed to change his password again.") + ), + 'maxPwdAge' => array( + "Headline" => _("Maximum password age"), 'attr' => 'sambaMaxPwdAge', + "Text" => _("Number of seconds after which the user must change his password.") + ), + 'lockoutDuration' => array( + "Headline" => _("Lockout duration"), 'attr' => 'sambaLockoutDuration', + "Text" => _("This is the time (in minutes) for which the user may not log in after the account was locked. -1 means forever.") + ), + 'lockoutObservationWindow' => array( + "Headline" => _("Reset time after lockout"), 'attr' => 'sambaLockoutObservationWindow', + "Text" => _("Number of minutes after which the bad logon attempts are reset.") + )); + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'sambaDomain_domainName', + 'description' => _('Domain name'), + 'help' => 'domainName', + 'example' => _('Workgroup'), + 'required' => true + ), + array( + 'name' => 'sambaDomain_domainSID', + 'description' => _('Domain SID'), + 'help' => 'domainSID', + 'example' => 'S-1-1-22-123-123-123', + 'required' => true + ), + array( + 'name' => 'sambaDomain_RIDbase', + 'description' => _('RID base'), + 'help' => 'RIDbase', + 'example' => '1000', + 'default' => 1000 + ), + array( + 'name' => 'sambaDomain_nextRID', + 'description' => _('Next RID'), + 'help' => 'nextRID', + 'example' => '12345' + ), + array( + 'name' => 'sambaDomain_nextUserRID', + 'description' => _('Next user RID'), + 'help' => 'nextUserRID', + 'example' => '12345' + ), + array( + 'name' => 'sambaDomain_nextGroupRID', + 'description' => _('Next group RID'), + 'help' => 'nextGroupRID', + 'example' => '12345' + ) + ); + // available PDF fields + $return['PDF_fields'] = array( + 'domainName' => _('Domain name'), + 'domainSID' => _('Domain SID'), + 'nextRID' => _('Next RID'), + 'nextUserRID' => _('Next user RID'), + 'nextGroupRID' => _('Next group RID'), + 'RIDbase' => _('RID base'), + 'minPwdLength' => _('Minimal password length'), + 'pwdHistoryLength' => _('Password history length'), + 'logonToChgPwd' => _('Logon for password change'), + 'forceLogoff' => _('Disconnect users outside logon hours'), + 'refuseMachinePwdChange' => _('Allow machine password changes'), + 'lockoutThreshold' => _('Lockout users after bad logon attempts'), + 'minPwdAge' => _('Minimum password age'), + 'maxPwdAge' => _('Maximum password age'), + 'lockoutDuration' => _('Lockout duration'), + 'lockoutObservationWindow' => _('Reset time after lockout') + ); + return $return; + } + + /** + * This function fills the error message array with messages + */ + function load_Messages() { + $this->messages['domainName'][0] = array('ERROR', _('Domain name is invalid!')); + $this->messages['domainName'][1] = array('ERROR', _('Account %s:') . ' sambaDomain_domainName', _('Domain name is invalid!')); + $this->messages['domainSID'][0] = array('ERROR', _('Samba 3 domain SID is invalid!')); + $this->messages['domainSID'][1] = array('ERROR', _('Account %s:') . ' sambaDomain_domainSID', _('Samba 3 domain SID is invalid!')); + $this->messages['nextRID'][0] = array('ERROR', _('Next RID is not a number!')); + $this->messages['nextRID'][1] = array('ERROR', _('Account %s:') . ' sambaDomain_nextRID', _('Next RID is not a number!')); + $this->messages['nextUserRID'][0] = array('ERROR', _('Next user RID is not a number!')); + $this->messages['nextUserRID'][1] = array('ERROR', _('Account %s:') . ' sambaDomain_nextUserRID', _('Next user RID is not a number!')); + $this->messages['nextGroupRID'][0] = array('ERROR', _('Next group RID is not a number!')); + $this->messages['nextGroupRID'][1] = array('ERROR', _('Account %s:') . ' sambaDomain_nextGroupRID', _('Next group RID is not a number!')); + $this->messages['RIDbase'][0] = array('ERROR', _('Algorithmic RID base is not a number!')); + $this->messages['RIDbase'][1] = array('ERROR', _('Account %s:') . ' sambaDomain_RIDbase', _('Algorithmic RID base is not a number!')); + $this->messages['pwdAge_cmp'][0] = array('ERROR', _('Maximum password age'), _('Password maximum age must be bigger than password minimum age.')); + $this->messages['pwdAgeMin'][0] = array('ERROR', _('Minimum password age'), _('Password minimum age must be are natural number.')); + $this->messages['pwdAgeMax'][0] = array('ERROR', _('Maximum password age'), _('Password maximum age must be are natural number.')); + $this->messages['lockoutDuration'][0] = array('ERROR', _('Lockout duration'), _('Lockout duration must be are natural number.')); + $this->messages['lockoutObservationWindow'][0] = array('ERROR', _('Reset time after lockout'), _('Reset time after lockout must be are natural number.')); + $this->messages['lockoutThreshold'][0] = array('ERROR', _('Lockout users after bad logon attempts'), _('Lockout users after bad logon attempts must be between 0 and 999.')); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $return = new htmlTable(); + // domain name + $domainName = ''; + if (isset($this->attributes['sambaDomainName'][0])) { + $domainName = $this->attributes['sambaDomainName'][0]; + } + if ($this->getAccountContainer()->isNewAccount) { + $domainNameInput = new htmlTableExtendedInputField(_('Domain name'), 'domainName', $domainName, 'domainName'); + $domainNameInput->setRequired(true); + $return->addElement($domainNameInput, true); + } + else { + $return->addElement(new htmlOutputText(_('Domain name'))); + $return->addElement(new htmlOutputText($domainName)); + $return->addElement(new htmlHelpLink('domainName'), true); + } + // domain SID + $domainSID = ''; + if (isset($this->attributes['sambaSID'][0])) { + $domainSID = $this->attributes['sambaSID'][0]; + } + if ($this->getAccountContainer()->isNewAccount) { + $domainSIDInput = new htmlTableExtendedInputField(_('Domain SID'), 'domainSID', $domainSID, 'domainSID'); + $domainSIDInput->setRequired(true); + $return->addElement($domainSIDInput, true); + } + else { + $return->addElement(new htmlOutputText(_('Domain SID'))); + $return->addElement(new htmlOutputText($domainSID)); + $return->addElement(new htmlHelpLink('domainSID'), true); + } + + $return->addElement(new htmlSubTitle(_("Password policy")), true); + + /* group policies */ + + // minimum password length + $sambaMinPwdLength = '-'; + if (isset($this->attributes['sambaMinPwdLength'][0])) { + $sambaMinPwdLength = $this->attributes['sambaMinPwdLength'][0]; + } + $return->addElement(new htmlTableExtendedSelect('minPwdLength', array('-', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), + array($sambaMinPwdLength), _('Minimal password length'), 'minPwdLength'), true); + // password history length + $sambaPwdHistoryLength = '-'; + if (isset($this->attributes['sambaPwdHistoryLength'][0])) { + $sambaPwdHistoryLength = $this->attributes['sambaPwdHistoryLength'][0]; + } + $return->addElement(new htmlTableExtendedSelect('pwdHistLength', array('-', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), + array($sambaPwdHistoryLength), _('Password history length'), 'pwdHistLength'), true); + // logon to change password + $sambaLogonToChgPwd = '-'; + if (isset($this->attributes['sambaLogonToChgPwd'][0])) { + $sambaLogonToChgPwd = $this->attributes['sambaLogonToChgPwd'][0]; + } + $logonPwdChangeSelect = new htmlTableExtendedSelect('logonToChgPwd', array('-' => '-', _('Off') => '0', _('On') => '2'), + array($sambaLogonToChgPwd), _('Logon for password change'), 'logonToChgPwd'); + $logonPwdChangeSelect->setHasDescriptiveElements(true); + $return->addElement($logonPwdChangeSelect, true); + // force logoff + $sambaForceLogoff = '-'; + if (isset($this->attributes['sambaForceLogoff'][0])) { + $sambaForceLogoff = $this->attributes['sambaForceLogoff'][0]; + } + $forceLogoffSelect = new htmlTableExtendedSelect('forceLogoff', array('-' => '-', _('Off') => '-1', _('On') => '0'), + array($sambaForceLogoff), _('Disconnect users outside logon hours'), 'forceLogoff'); + $forceLogoffSelect->setHasDescriptiveElements(true); + $return->addElement($forceLogoffSelect, true); + // do not allow machine password change + $sambaRefuseMachinePwdChange = '-'; + if (isset($this->attributes['sambaRefuseMachinePwdChange'][0])) { + $sambaRefuseMachinePwdChange = $this->attributes['sambaRefuseMachinePwdChange'][0]; + } + $refuseMachPwdChange = new htmlTableExtendedSelect('refuseMachinePwdChange', array('-' => '-', _('Off') => '0', _('On') => '1'), + array($sambaRefuseMachinePwdChange), _('Allow machine password changes'), 'refuseMachinePwdChange'); + $refuseMachPwdChange->setHasDescriptiveElements(true); + $return->addElement($refuseMachPwdChange, true); + // Lockout users after bad logon attempts + $sambaLockoutThreshold = ''; + if (isset($this->attributes['sambaLockoutThreshold'][0])) { + $sambaLockoutThreshold = $this->attributes['sambaLockoutThreshold'][0]; + } + $sambaLockoutThresholdInput = new htmlTableExtendedInputField(_('Lockout users after bad logon attempts'), 'lockoutThreshold', $sambaLockoutThreshold, 'lockoutThreshold'); + $sambaLockoutThresholdInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($sambaLockoutThresholdInput, true); + // Minimum password age + $sambaMinPwdAge = ''; + if (isset($this->attributes['sambaMinPwdAge'][0])) { + $sambaMinPwdAge = $this->attributes['sambaMinPwdAge'][0]; + } + $sambaMinPwdAgeInput = new htmlTableExtendedInputField(_('Minimum password age'), 'minPwdAge', $sambaMinPwdAge, 'minPwdAge'); + $sambaMinPwdAgeInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($sambaMinPwdAgeInput, true); + // Maximum password age + $sambaMaxPwdAge = ''; + if (isset($this->attributes['sambaMaxPwdAge'][0])) { + $sambaMaxPwdAge = $this->attributes['sambaMaxPwdAge'][0]; + } + $sambaMaxPwdAgeInput = new htmlTableExtendedInputField(_('Maximum password age'), 'maxPwdAge', $sambaMaxPwdAge, 'maxPwdAge'); + $sambaMaxPwdAgeInput->setValidationRule(htmlElement::VALIDATE_NUMERIC_WITH_NEGATIVE); + $return->addElement($sambaMaxPwdAgeInput, true); + // Lockout duration + $sambaLockoutDuration = ''; + if (isset($this->attributes['sambaLockoutDuration'][0])) { + $sambaLockoutDuration = $this->attributes['sambaLockoutDuration'][0]; + } + $sambaLockoutDurationInput = new htmlTableExtendedInputField(_('Lockout duration'), 'lockoutDuration', $sambaLockoutDuration, 'lockoutDuration'); + $sambaLockoutDurationInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($sambaLockoutDurationInput, true); + // Reset time after lockout + $sambaLockoutObservationWindow = ''; + if (isset($this->attributes['sambaLockoutObservationWindow'][0])) { + $sambaLockoutObservationWindow = $this->attributes['sambaLockoutObservationWindow'][0]; + } + $sambaLockoutObservationWindowInput = new htmlTableExtendedInputField(_('Reset time after lockout'), 'lockoutObservationWindow', $sambaLockoutObservationWindow, 'lockoutObservationWindow'); + $sambaLockoutObservationWindowInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($sambaLockoutObservationWindowInput, true); + + $return->addElement(new htmlSubTitle(_('RID settings')), true); + + /* RID settings */ + + // next RID + $nextRID = ''; + if (isset($this->attributes['sambaNextRid'][0])) { + $nextRID = $this->attributes['sambaNextRid'][0]; + } + $nextRIDInput = new htmlTableExtendedInputField(_('Next RID'), 'nextRID', $nextRID, 'nextRID'); + $nextRIDInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($nextRIDInput, true); + // next user RID + $nextUserRID = ''; + if (isset($this->attributes['sambaNextUserRid'][0])) { + $nextUserRID = $this->attributes['sambaNextUserRid'][0]; + } + $nextUserRIDInput = new htmlTableExtendedInputField(_('Next user RID'), 'nextUserRID', $nextUserRID, 'nextUserRID'); + $nextUserRIDInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($nextUserRIDInput, true); + // next group RID + $nextGroupRID = ''; + if (isset($this->attributes['sambaNextGroupRid'][0])) { + $nextGroupRID = $this->attributes['sambaNextGroupRid'][0]; + } + $nextGroupRIDInput = new htmlTableExtendedInputField(_('Next group RID'), 'nextGroupRID', $nextGroupRID, 'nextGroupRID'); + $nextGroupRIDInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($nextGroupRIDInput, true); + // RID base + if (!isset($this->attributes['sambaAlgorithmicRidBase'][0])) $this->attributes['sambaAlgorithmicRidBase'][0] = 1000; + if ($this->getAccountContainer()->isNewAccount) { + $ridBaseInput = new htmlTableExtendedInputField(_('RID base'), 'RIDbase', $this->attributes['sambaAlgorithmicRidBase'][0], 'RIDbase'); + $ridBaseInput->setRequired(true); + $ridBaseInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($ridBaseInput, true); + } + else { + $return->addElement(new htmlOutputText(_('RID base'))); + $return->addElement(new htmlOutputText($this->attributes['sambaAlgorithmicRidBase'][0])); + $return->addElement(new htmlHelpLink('RIDbase'), true); + } + return $return; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + $errors = array(); + if ($this->getAccountContainer()->isNewAccount) { + // domain SID + $this->attributes['sambaSID'][0] = $_POST['domainSID']; + if (!get_preg($_POST['domainSID'], 'domainSID')) { + $errors[] = $this->messages['domainSID'][0]; + } + else { + $this->attributes['sambaSID'][0] = $_POST['domainSID']; + } + // RID base + if (!get_preg($_POST['RIDbase'], 'digit') && !($_POST['RIDbase'] == '')) { + $errors[] = $this->messages['RIDbase'][0]; + } + else { + $this->attributes['sambaAlgorithmicRidBase'][0] = $_POST['RIDbase']; + } + // domain name + if (!get_preg($_POST['domainName'], 'domainname') && !($_POST['domainName'] == '')) { + $errors[] = $this->messages['domainName'][0]; + } + else { + $this->attributes['sambaDomainName'][0] = $_POST['domainName']; + } + } + // next RID + if (!get_preg($_POST['nextRID'], 'digit')) { + $errors[] = $this->messages['nextRID'][0]; + } + else { + $this->attributes['sambaNextRid'][0] = $_POST['nextRID']; + } + // next user RID + if (!get_preg($_POST['nextUserRID'], 'digit')) { + $errors[] = $this->messages['nextUserRID'][0]; + } + else { + $this->attributes['sambaNextUserRid'][0] = $_POST['nextUserRID']; + } + // next group RID + if (!get_preg($_POST['nextGroupRID'], 'digit')) { + $errors[] = $this->messages['nextGroupRID'][0]; + } + else { + $this->attributes['sambaNextGroupRid'][0] = $_POST['nextGroupRID']; + } + // minimum password length + if ($_POST['minPwdLength'] === '-') { + if (isset($this->attributes['sambaMinPwdLength'])) unset($this->attributes['sambaMinPwdLength'][0]); + } + else { + $this->attributes['sambaMinPwdLength'][0] = $_POST['minPwdLength']; + } + // password history length + if ($_POST['pwdHistLength'] === '-') { + if (isset($this->attributes['sambaPwdHistoryLength'])) unset($this->attributes['sambaPwdHistoryLength'][0]); + } + else { + $this->attributes['sambaPwdHistoryLength'][0] = $_POST['pwdHistLength']; + } + // logon for password change + if ($_POST['logonToChgPwd'] === '-') { + if (isset($this->attributes['sambaLogonToChgPwd'])) unset($this->attributes['sambaLogonToChgPwd'][0]); + } + else { + $this->attributes['sambaLogonToChgPwd'][0] = $_POST['logonToChgPwd']; + } + // force logoff + if ($_POST['forceLogoff'] === '-') { + if (isset($this->attributes['sambaForceLogoff'])) unset($this->attributes['sambaForceLogoff'][0]); + } + else { + $this->attributes['sambaForceLogoff'][0] = $_POST['forceLogoff']; + } + // do not allow machine password changes + if ($_POST['refuseMachinePwdChange'] === '-') { + if (isset($this->attributes['sambaRefuseMachinePwdChange'])) unset($this->attributes['sambaRefuseMachinePwdChange'][0]); + } + else { + $this->attributes['sambaRefuseMachinePwdChange'][0] = $_POST['refuseMachinePwdChange']; + } + // Lockout users after bad logon attempts + if (! isset($_POST['lockoutThreshold']) || ($_POST['lockoutThreshold'] == '')) { + if (isset($this->attributes['sambaLockoutThreshold'])) unset($this->attributes['sambaLockoutThreshold'][0]); + } + else { + if (is_numeric($_POST['lockoutThreshold']) && ($_POST['lockoutThreshold'] >= 0) && ($_POST['lockoutThreshold'] < 1000)) { + $this->attributes['sambaLockoutThreshold'][0] = $_POST['lockoutThreshold']; + } + else { + $errors[] = $this->messages['lockoutThreshold'][0]; + } + } + // Minimum password age + if (! isset($_POST['minPwdAge']) || ($_POST['minPwdAge'] == '')) { + if (isset($this->attributes['sambaMinPwdAge'])) { + unset($this->attributes['sambaMinPwdAge'][0]); + } + } + else { + if (is_numeric($_POST['minPwdAge']) && ($_POST['minPwdAge'] > -2)) { + $this->attributes['sambaMinPwdAge'][0] = $_POST['minPwdAge']; + } + else { + $errors[] = $this->messages['pwdAgeMin'][0]; + } + } + // Maximum password age + if (! isset($_POST['maxPwdAge']) || ($_POST['maxPwdAge'] == '')) { + if (isset($this->attributes['sambaMaxPwdAge'])) { + unset($this->attributes['sambaMaxPwdAge'][0]); + } + } + else { + if (!is_numeric($_POST['maxPwdAge']) || ($_POST['maxPwdAge'] < -1)) { + $errors[] = $this->messages['pwdAgeMax'][0]; + } + elseif (($_POST['maxPwdAge'] > 1) && ($_POST['maxPwdAge'] < $_POST['minPwdAge'])) { + $errors[] = $this->messages['pwdAge_cmp'][0]; + } + else { + $this->attributes['sambaMaxPwdAge'][0] = $_POST['maxPwdAge']; + } + } + // Lockout duration + if (! isset($_POST['lockoutDuration']) || ($_POST['lockoutDuration'] == '')) { + if (isset($this->attributes['sambaLockoutDuration'])) unset($this->attributes['sambaLockoutDuration'][0]); + } + else { + if (is_numeric($_POST['lockoutDuration']) && ($_POST['lockoutDuration'] > -2)) { + $this->attributes['sambaLockoutDuration'][0] = $_POST['lockoutDuration']; + } + else { + $errors[] = $this->messages['lockoutDuration'][0]; + } + } + // Reset time after lockout + if (! isset($_POST['lockoutObservationWindow']) || ($_POST['lockoutObservationWindow'] == '')) { + if (isset($this->attributes['sambaLockoutObservationWindow'])) unset($this->attributes['sambaLockoutObservationWindow'][0]); + } + else { + if (is_numeric($_POST['lockoutObservationWindow']) && ($_POST['lockoutObservationWindow'] > -1)) { + $this->attributes['sambaLockoutObservationWindow'][0] = $_POST['lockoutObservationWindow']; + } + else { + $errors[] = $this->messages['lockoutObservationWindow'][0]; + } + } + + return $errors; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array("sambaDomain", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "sambaDomain"; + // domain name + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'sambaDomain_domainName', 'sambaDomainName', + 'domainname', $this->messages['domainName'][1], $messages); + // domain SID + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'sambaDomain_domainSID', 'sambaSID', + 'domainSID', $this->messages['domainSID'][1], $messages); + // RID base + $partialAccounts[$i]['sambaAlgorithmicRidBase'] = '1000'; + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'sambaDomain_RIDbase', 'sambaAlgorithmicRidBase', + 'digit', $this->messages['RIDbase'][1], $messages); + // next RID + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'sambaDomain_nextRID', 'sambaNextRid', + 'digit', $this->messages['nextRID'][1], $messages); + // next user RID + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'sambaDomain_nextUserRID', 'sambaNextUserRid', + 'digit', $this->messages['nextUserRID'][1], $messages); + // next group RID + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'sambaDomain_nextGroupRID', 'sambaNextGroupRid', + 'digit', $this->messages['nextGroupRID'][1], $messages); + } + return $messages; + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'domainName', _('Domain name'), 'sambaDomainName'); + $this->addSimplePDFField($return, 'domainSID', _('Domain SID'), 'sambaSID'); + $this->addSimplePDFField($return, 'nextRID', _('Next RID'), 'sambaNextRid'); + $this->addSimplePDFField($return, 'nextUserRID', _('Next user RID'), 'sambaNextUserRid'); + $this->addSimplePDFField($return, 'nextGroupRID', _('Next group RID'), 'sambaNextGroupRid'); + $this->addSimplePDFField($return, 'RIDbase', _('RID base'), 'sambaAlgorithmicRidBase'); + $this->addSimplePDFField($return, 'minPwdLength', _('Minimal password length'), 'sambaMinPwdLength'); + $this->addSimplePDFField($return, 'pwdHistoryLength', _('Password history length'), 'sambaPwdHistoryLength'); + $this->addSimplePDFField($return, 'lockoutThreshold', _('Lockout users after bad logon attempts'), 'sambaLockoutThreshold'); + $this->addSimplePDFField($return, 'minPwdAge', _('Minimum password age'), 'sambaMinPwdAge'); + $this->addSimplePDFField($return, 'maxPwdAge', _('Maximum password age'), 'sambaMaxPwdAge'); + $this->addSimplePDFField($return, 'lockoutDuration', _('Lockout duration'), 'sambaLockoutDuration'); + $this->addSimplePDFField($return, 'lockoutObservationWindow', _('Reset time after lockout'), 'sambaLockoutObservationWindow'); + + if (isset($this->attributes['sambaLogonToChgPwd'])) { + $logonToChgPwd = _('Off'); + if ($this->attributes['sambaPwdHistoryLength'][0] == 2) $logonToChgPwd = _('On'); + $return['sambaDomain_logonToChgPwd'][0] = '' . _('Logon for password change') . '' . $logonToChgPwd . ''; + } + if (isset($this->attributes['sambaForceLogoff'])) { + $forceLogoff = _('Off'); + if ($this->attributes['sambaForceLogoff'][0] == 0) $forceLogoff = _('On'); + $return['sambaDomain_forceLogoff'][0] = '' . _('Disconnect users outside logon hours') . '' . $forceLogoff . ''; + } + if (isset($this->attributes['sambaRefuseMachinePwdChange'])) { + $refuseMachinePwdChange = _('Off'); + if ($this->attributes['sambaRefuseMachinePwdChange'][0] == 0) $refuseMachinePwdChange = _('On'); + $return['sambaDomain_refuseMachinePwdChange'][0] = '' . _('Allow machine password changes') . '' . $refuseMachinePwdChange . ''; + } + return $return; + } + +} + + +?> diff --git a/lam/lib/modules/sambaGroupMapping.inc b/lam/lib/modules/sambaGroupMapping.inc new file mode 100644 index 00000000..710d2117 --- /dev/null +++ b/lam/lib/modules/sambaGroupMapping.inc @@ -0,0 +1,785 @@ + cn)) */ + private $sidCache = null; + + /** + * Creates a new module for Samba 3 groups. + * + * @param string $scope account type + */ + function __construct($scope) { + // load error messages + $this->rids = array( + _('Domain admins') => 512, + _('Domain users') => 513, + _('Domain guests') => 514, + _('Domain computers') => 515, + _('Domain controllers') => 516, + _('Domain certificate admins') => 517, + _('Domain schema admins') => 518, + _('Domain enterprise admins') => 519, + _('Domain policy admins') => 520); + + $this->sambaGroupTypes = array ( + _('Domain group') => 2, + _('Local group') => 4, + _('Builtin group') => 5, + ); + // call parent constructor + parent::__construct($scope); + $this->autoAddObjectClasses = false; + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('group')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'samba.png'; + // alias name + $return["alias"] = _('Samba 3'); + // module dependencies + $return['dependencies'] = array('depends' => array(array('posixGroup', 'rfc2307bisPosixGroup')), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('sambaGroupMapping'); + // managed attributes + $return['attributes'] = array('gidNumber', 'sambaSID', 'sambaGroupType', 'displayName', 'sambaSIDList', 'description'); + // available PDF fields + $return['PDF_fields'] = array( + 'gidNumber' => _('GID number'), + 'sambaSID' => _('Windows group'), + 'displayName' => _('Display name'), + 'sambaGroupType' => _('Samba group type'), + 'description' => _('Description'), + 'sambaSIDList' => _('Local members'), + ); + // upload fields + // search existing Samba 3 domains + if (isset($_SESSION['loggedIn']) && ($_SESSION['loggedIn'] === true)) { + $return['upload_columns'] = array( + array( + 'name' => 'sambaGroupMapping_name', + 'description' => _('Samba display name'), + 'help' => 'displayName', + 'example' => _('Domain administrators') + ), + array( + 'name' => 'sambaGroupMapping_rid', + 'description' => _('Samba RID number'), + 'help' => 'rid', + 'example' => _('Domain admins') + ), + array( + 'name' => 'sambaGroupMapping_groupType', + 'description' => _('Samba group type'), + 'help' => 'type', + 'values' => implode(", ", array_keys($this->sambaGroupTypes) + $this->sambaGroupTypes), + 'example' => '2' + ) + ); + $return['upload_preDepends'] = array('posixGroup', 'rfc2307bisPosixGroup'); + } + // help Entries + $return['help'] = array( + 'displayName' => array( + "Headline" => _("Display name"), 'attr' => 'displayName', + "Text" => _("This is the group name which will be shown in Windows.") + ), + 'sambaSID' => array( + "Headline" => _("Windows group name"), 'attr' => 'sambaSID', + "Text" => _("If you want to use a well known RID you can select a well known group.") + ), + 'rid' => array( + "Headline" => _("Samba RID number"), + "Text" => _("This is the relative ID (similar to UID on Unix) for Windows accounts. If you leave this empty LAM will calculate the RID from the UID. This can be either a number or the name of a special group:") . ' ' . implode(", ", array_keys($this->rids)) + ), + 'sambaDomainName' => array( + "Headline" => _("Domain"), + "Text" => _("Windows-Domain name of group."). ' '. _("Can be left empty.") + ), + 'type' => array( + "Headline" => _("Samba group type"), 'attr' => 'sambaGroupType', + "Text" => _("Windows group type.") + ), + 'sambaSIDList' => array( + "Headline" => _('Local members'), 'attr' => 'sambaSIDList', + "Text" => _("Use this to specify other groups or accounts from other domains as group members.") + ), + 'filter' => array( + "Headline" => _("Filter"), + "Text" => _("Here you can enter a filter value. Only entries which contain the filter text will be shown.") + . ' ' . _('Possible wildcards are: "*" = any character, "^" = line start, "$" = line end') + ), + ); + return $return; + } + + /** + * Gets the GID number from the Unix group module. + * + * @return String GID number + */ + private function getGID() { + $modules = array('posixGroup', 'rfc2307bisPosixGroup'); + for ($i = 0; $i < sizeof($modules); $i++) { + if ($this->getAccountContainer()->getAccountModule($modules[$i]) != null) { + $attrs = $this->getAccountContainer()->getAccountModule($modules[$i])->getAttributes(); + if (isset($attrs['gidNumber'][0])) { + return $attrs['gidNumber'][0]; + } + } + } + return null; + } + + /** + * Gets the cn from the Unix group module. + * + * @return String cn attribute + */ + private function getCn() { + $modules = array('posixGroup', 'groupOfNames', 'groupOfUniqueNames'); + for ($i = 0; $i < sizeof($modules); $i++) { + if ($this->getAccountContainer()->getAccountModule($modules[$i]) != null) { + $attrs = $this->getAccountContainer()->getAccountModule($modules[$i])->getAttributes(); + if (isset($attrs['cn'][0])) { + return $attrs['cn'][0]; + } + } + } + return null; + } + + /** + * Returns an array containing all input columns for the file upload. + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}.
    + *
    + * This funtion returns an array which contains subarrays which represent an upload column. + * Syntax of column arrays: + *
    + *
    array( + *
    string: name, // fixed non-translated name which is used as column name (should be of format: _) + *
    string: description, // short descriptive name + *
    string: help, // help ID + *
    string: example, // example value + *
    string: values, // possible input values (optional) + *
    string: default, // default value (optional) + *
    boolean: required // true, if user must set a value for this column + *
    boolean: unique // true if all values of this column must be different values (optional, default: "false") + *
    ) + * + * @param array $selectedModules list of selected account modules + * @return array column list + * + * @see baseModule::get_metaData() + */ + public function get_uploadColumns($selectedModules) { + $return = parent::get_uploadColumns($selectedModules); + $domains = $this->getDomains(); + $domainNames = array(); + for ($i = 0; $i < sizeof($domains); $i++) $domainNames[] = $domains[$i]->name; + $return[] = array( + 'name' => 'sambaGroupMapping_domain', + 'description' => _('Samba domain name'), + 'help' => 'sambaDomainName', + 'example' => $domainNames[0], + 'values' => implode(", ", $domainNames), + 'required' => true + ); + return $return; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + // search existing Samba 3 domains + $domains = $this->getDomains(); + $nameToSID = array(); + // get domain SIDs + for ($i = 0; $i < sizeof($domains); $i++) { + $nameToSID[$domains[$i]->name] = $domains[$i]->SID; + } + // get domain RID bases + $nameToRIDBase = array(); + for ($i = 0; $i < sizeof($domains); $i++) { + $nameToRIDBase[$domains[$i]->name] = $domains[$i]->RIDbase; + } + $errors = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // group type + if ($rawAccounts[$i][$ids['sambaGroupMapping_groupType']] != "") { + if (in_array($rawAccounts[$i][$ids['sambaGroupMapping_groupType']], $this->sambaGroupTypes)) { // number given + $partialAccounts[$i]['sambaGroupType'] = $rawAccounts[$i][$ids['sambaGroupMapping_groupType']]; + } + elseif (in_array($rawAccounts[$i][$ids['sambaGroupMapping_groupType']], array_keys($this->sambaGroupTypes))) { // description given + $partialAccounts[$i]['sambaGroupType'] = $this->sambaGroupTypes[$rawAccounts[$i][$ids['sambaGroupMapping_groupType']]]; + } + else { // invalid type + $errMsg = $this->messages['groupType'][0]; + array_push($errMsg, array($i, implode(", ", array_keys($this->sambaGroupTypes) + $this->sambaGroupTypes))); + $errors[] = $errMsg; + } + } + else { + $partialAccounts[$i]['sambaGroupType'] = "2"; // 2 is the default (domain group) + } + if (!in_array("sambaGroupMapping", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "sambaGroupMapping"; + // SID + $domSID = $nameToSID[$rawAccounts[$i][$ids['sambaGroupMapping_domain']]]; + if (!isset($domSID)) { + $errMsg = $this->messages['sambaSID'][1]; + array_push($errMsg, $rawAccounts[$i][$ids['sambaGroupMapping_domain']]); + array_push($errMsg, $i); + $errors[] = $errMsg; + } + else { + // RID + $rid = $rawAccounts[$i][$ids['sambaGroupMapping_rid']]; + if (isset($this->rids[$rid])) $rid = $this->rids[$rid]; + // check if RID has to be calculated + if (($rid == "") || (!isset($rid))) { + $ridBase = $nameToRIDBase[$rawAccounts[$i][$ids['sambaGroupMapping_domain']]]; + $partialAccounts[$i]['sambaSID'] = $domSID . "-" . (($partialAccounts[$i]['gidNumber'] * 2) + $ridBase + 1); + } + elseif (get_preg($rid, 'digit')) { + $partialAccounts[$i]['sambaSID'] = $domSID . "-" . $rid; + } + } + // display name (UTF-8, no regex check needed) + if ($rawAccounts[$i][$ids['sambaGroupMapping_name']] == "") { + $partialAccounts[$i]['displayName'] = $partialAccounts[$i]['cn']; + } + else { + $partialAccounts[$i]['displayName'] = $rawAccounts[$i][$ids['sambaGroupMapping_name']]; + } + } + return $errors; + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + if (isset($_POST['addObjectClass'])) { + $this->attributes['objectClass'][] = 'sambaGroupMapping'; + } + $return = new htmlTable(); + if (in_array('sambaGroupMapping', $this->attributes['objectClass'])) { + $sambaDomains = $this->getDomains(); + if (sizeof($sambaDomains) == 0) { + StatusMessage("ERROR", _('No Samba 3 domains found in LDAP! Please create one first.'), ''); + return array(); + } + // Get Domain-SID from group SID + if (isset($this->attributes['sambaSID'][0])) { + $domainSID = substr($this->attributes['sambaSID'][0], 0, strrpos($this->attributes['sambaSID'][0], "-")); + } + for ($i=0; $iname; + if (isset($domainSID) && ($domainSID==$sambaDomains[$i]->SID)) { + $SID = $sambaDomains[$i]->SID; + $sel_domain = $sambaDomains[$i]->name; + } + } + // display name + $displayName = ''; + if (isset($this->attributes['displayName'][0])) $displayName = $this->attributes['displayName'][0]; + $displayNameInput = new htmlTableExtendedInputField(_('Display name'), 'displayName', $displayName, 'displayName'); + $displayNameInput->setFieldMaxLength(50); + $return->addElement($displayNameInput, true); + // Windows group + $options = array($this->getCn()); + $selected = array($this->getCn()); + $names = array_keys($this->rids); + $wrid=false; + for ($i=0; $iattributes['sambaSID'][0]) && ($this->attributes['sambaSID'][0]==$SID."-".$this->rids[$names[$i]])) { + $selected = array($names[$i]); + $wrid=true; + } + $options[] = $names[$i]; + } + $return->addElement(new htmlTableExtendedSelect('sambaSID', $options, $selected, _('Windows group'), 'sambaSID'), true); + // group type + $names = array_keys($this->sambaGroupTypes); + $selected = array( _('Domain group') ); + for ($i=0; $iattributes['sambaGroupType'][0])) break; + if ($this->attributes['sambaGroupType'][0]==$this->sambaGroupTypes[$names[$i]]) $selected = array( $names[$i] ); + } + $return->addElement(new htmlTableExtendedSelect('sambaGroupType', $names, $selected, _('Group type'), 'type'), true); + // domain + $selectedDomain = array(); + if (isset($sel_domain)) $selectedDomain = array($sel_domain); + $return->addElement(new htmlTableExtendedSelect('sambaDomainName', $sambaDomainNames, $selectedDomain, _('Domain'), 'sambaDomainName'), true); + // local group members + $memberLabel = new htmlOutputText(_('Local members')); + $memberLabel->alignment = htmlElement::ALIGN_TOP; + $return->addElement($memberLabel); + $addMemberButton = new htmlAccountPageButton(get_class($this), 'members', 'open', 'add.png', true); + $addMemberButton->setTitle(_('Add')); + $addMemberButton->alignment = htmlElement::ALIGN_TOP; + if (!empty($this->attributes['sambaSIDList'][0])) { + $this->loadSIDCache(); + $memberTable = new htmlTable(); + $memberTable->alignment = htmlElement::ALIGN_TOP; + for ($i = 0; $i < sizeof($this->attributes['sambaSIDList']); $i++) { + $member = $this->attributes['sambaSIDList'][$i]; + if (isset($this->sidCache[$member])) { + $member = $this->sidCache[$member]; + } + $memberTable->addElement(new htmlOutputText($member)); + $delButton = new htmlButton('sambaSIDListDel_' . $i, 'del.png', true); + $delButton->setTitle(_('Delete')); + $memberTable->addElement($delButton); + if ($i == (sizeof($this->attributes['sambaSIDList']) - 1)) { + $memberTable->addElement($addMemberButton); + } + $memberTable->addNewLine(); + } + $return->addElement($memberTable); + } + else { + $return->addElement($addMemberButton); + } + $memberHelp = new htmlHelpLink('sambaSIDList'); + $memberHelp->alignment = htmlElement::ALIGN_TOP; + $return->addElement($memberHelp, true); + + $return->addElement(new htmlSpacer(null, '10px'), true); + + $remButton = new htmlButton('remObjectClass', _('Remove Samba 3 extension')); + $remButton->colspan = 3; + $return->addElement($remButton); + } + else { + $return->addElement(new htmlButton('addObjectClass', _('Add Samba 3 extension'))); + } + return $return; + } + + /** + * This function will create the meta HTML code to show a page to add members. + * + * @return htmlElement HTML meta data + */ + function display_html_members() { + $return = new htmlTable(); + // show list of possible new members + if ((isset($_POST['form_subpage_' . get_class($this) . '_members_select']) || isset($_POST['setFilter'])) && isset($_POST['type'])) { + $this->loadSIDCache(); + $userFilter = ''; + $userFilterRegex = ''; + if (isset($_POST['newFilter'])) { + $userFilter = $_POST['newFilter']; + $userFilterRegex = '/' . str_replace(array('*', '(', ')'), array('.*', '\(', '\)'), $_POST['newFilter']) . '/ui'; + } + $options = array(); + $filter = get_ldap_filter($_POST['type']); + $entries = searchLDAPByFilter($filter, array('dn', 'cn', 'uid', 'sambaSID'), array($_POST['type'])); + $entryCount = sizeof($entries); + for ($i = 0; $i < $entryCount; $i++) { + // require SID + if (empty($entries[$i]['sambasid'][0])) { + continue; + } + $sid = $entries[$i]['sambasid'][0]; + // get label + if (!empty($this->sidCache[$sid])) { + $label = $this->sidCache[$sid]; + } + else { + $label = $sid; + } + // check filter + if (!empty($userFilter) && !preg_match($userFilterRegex, $label)) { + continue; + } + if (empty($this->attributes['sambaSIDList'][0]) || !in_array($sid, $this->attributes['sambaSIDList'])) { + $options[$label] = $sid; + } + } + $size = 20; + if (sizeof($options) < 20) $size = sizeof($options); + $membersSelect = new htmlSelect('members', $options, array(), $size); + $membersSelect->setHasDescriptiveElements(true); + $membersSelect->setMultiSelect(true); + $membersSelect->setTransformSingleSelect(false); + $return->addElement($membersSelect, true); + $filterGroup = new htmlGroup(); + $filterGroup->addElement(new htmlInputField('newFilter', $userFilter)); + $filterGroup->addElement(new htmlButton('setFilter', _('Filter'))); + $filterGroup->addElement(new htmlHelpLink('filter')); + $filterGroup->addElement(new htmlHiddenInput('type', $_POST['type'])); + $return->addElement($filterGroup, true); + $return->addElement(new htmlSpacer(null, '10px'), true); + $buttonTable = new htmlTable(); + $buttonTable->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'addMembers', _('Add'))); + $buttonTable->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'cancel', _('Cancel'))); + $return->addElement($buttonTable); + return $return; + } + $types = array('user', 'group', 'host'); + $options = array(); + $optionsSelected = array(); + for ($i = 0; $i < sizeof($types); $i++) { + $options[getTypeAlias($types[$i])] = $types[$i]; + if ($types[$i] == 'group') { + $optionsSelected[] = $types[$i]; + } + } + $typeTable = new htmlTable(); + $typeTable->addElement(new htmlOutputText(_('Add entries of this type:') . ' ')); + $typeSelect = new htmlSelect('type', $options, $optionsSelected); + $typeSelect->setHasDescriptiveElements(true); + $typeTable->addElement($typeSelect); + $typeTable->addElement(new htmlAccountPageButton(get_class($this), 'members', 'select', _('Ok'))); + $return->addElement($typeTable, true); + $return->addElement(new htmlOutputText(' ', false), true); + $return->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'membersBack', _('Back'))); + return $return; + } + + /** + * Processes user input of the members page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_members() { + $return = array(); + if (isset($_POST['form_subpage_' . get_class($this) . '_attributes_addMembers']) && isset($_POST['members'])) { + for ($i = 0; $i < sizeof($_POST['members']); $i++) { + $this->attributes['sambaSIDList'][] = $_POST['members'][$i]; + } + } + return $return; + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'gidNumber', _('GID number')); + $this->addSimplePDFField($return, 'sambaSID', _('Windows group')); + $this->addSimplePDFField($return, 'displayName', _('Display name')); + $this->addSimplePDFField($return, 'sambaGroupType', _('Samba group type')); + $this->addSimplePDFField($return, 'description', _('Description')); + // local members + if (!empty($this->attributes['sambaSIDList'][0])) { + $this->loadSIDCache(); + $members = array(); + foreach ($this->attributes['sambaSIDList'] as $member) { + if (!empty($this->sidCache[$member])) { + $members[] = $this->sidCache[$member]; + } + else { + $members[] = $member; + } + } + $return[get_class($this) . '_sambaSIDList'] = array('' . _('Local members') . '' . implode(', ', $members) . ''); + } + return $return; + } + + + /** + * Returns a list of elements for the account profiles. + * + * @return htmlElement profile elements + */ + function get_profileOptions() { + $return = new htmlTable(); + // get list of domains + $sambaDomains = $this->getDomains(); + $sambaDomainNames = array(); + for ($i = 0; $i < count($sambaDomains); $i++ ) { + // extract names + $sambaDomainNames[] = $sambaDomains[$i]->name; + } + // domain + $return->addElement(new htmlTableExtendedSelect('sambaGroupMapping_sambaDomainName', $sambaDomainNames, null, _('Domain'), 'sambaDomainName')); + return $return; + } + + + /** + * Loads the values of an account profile into internal variables. + * + * @param array $profile hash array with profile values (identifier => value) + */ + function load_profile($profile) { + if (isset($profile['sambaGroupMapping_sambaDomainName'][0])) { + // get list of domains + $sambaDomains = $this->getDomains(); + for ($i = 0; $i < sizeof($sambaDomains); $i++) { + if ($sambaDomains[$i]->name == $profile['sambaGroupMapping_sambaDomainName'][0]) { + $this->attributes['sambaSID'][0] = $sambaDomains[$i]->SID . "-0"; + break; + } + } + } + } + + /** this functin fills the error message array with messages + **/ + function load_Messages() { + $this->messages['sambaSID'][0] = array('ERROR', _('There can be only one group of this type.')); // third parameter must be set dynamically + $this->messages['sambaSID'][1] = array('ERROR', _("Account %s:") . " (sambaGroupMapping_domain): " . _("LAM was unable to find a Samba 3 domain with this name!")); // third parameter must be set dynamically + $this->messages['groupType'][0] = array('ERROR', _("Account %s:") . " (sambaGroupMapping_type): " . _("This is not a valid Samba 3 group type!"), _("Possible values") . ": %s"); + $this->messages['primaryGroup'][0] = array('ERROR', _('There are still users who have this group as their primary group.')); + } + + + /** + * This function is used to check if this module page can be displayed. + * It returns false if a module depends on data from other modules which was not yet entered. + * + * @return boolean true, if page can be displayed + */ + function module_ready() { + if (($this->getGID() == null) || ($this->getGID() == '')) { + return false; + } + return true; + } + + /** + * This function is used to check if all settings for this module have been made. + * + * @see baseModule::module_complete + * + * @return boolean true, if settings are complete + */ + public function module_complete() { + if (!in_array('sambaGroupMapping', $this->attributes['objectClass'])) { + return true; + } + if (!isset($this->attributes['sambaSID']) || ($this->attributes['sambaSID'] == '')) { + return false; + } + return true; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + // remove extension + if (isset($_POST['remObjectClass'])) { + // check for users that have this group as primary group + $result = searchLDAPByAttribute('sambaPrimaryGroupSID', $this->attributes['sambaSID'][0], 'sambaSamAccount', array('dn'), array('user', 'host')); + if (sizeof($result) > 0) { + return array($this->messages['primaryGroup'][0]); + } + // remove attributes + $this->attributes['objectClass'] = array_delete(array('sambaGroupMapping'), $this->attributes['objectClass']); + $attrKeys = array_keys($this->attributes); + for ($k = 0; $k < sizeof($attrKeys); $k++) { + if (strpos($attrKeys[$k], 'samba') > -1) { + unset($this->attributes[$attrKeys[$k]]); + } + } + if (isset($this->attributes['displayName'])) { + unset($this->attributes['displayName']); + } + return array(); + } + if (!in_array('sambaGroupMapping', $this->attributes['objectClass'])) { + return array(); + } + $errors = array(); + $sambaDomains = $this->getDomains(); + if (sizeof($sambaDomains) == 0) { + return array(); + } + // Save attributes + $this->attributes['displayName'][0] = $_POST['displayName']; + $this->attributes['sambaGroupType'][0] = $this->sambaGroupTypes[$_POST['sambaGroupType']]; + + // Get Domain SID from name + for ($i=0; $iname) { + $SID = $sambaDomains[$i]->SID; + $RIDbase = $sambaDomains[$i]->RIDbase; + } + } + // Load attributes + $this->attributes['displayName'][0] = $_POST['displayName']; + $rids = array_keys($this->rids); + $wrid = false; + for ($i=0; $iattributes['sambaSID'][0] = $SID."-".$this->rids[$rids[$i]]; + // Do a check if special group is unique + if ($this->getAccountContainer()->isNewAccount) { + $result = searchLDAPByAttribute('sambaSID', $SID."-".$this->rids[$rids[$i]], 'sambaGroupMapping', array('sambaSID'), array('group')); + if (sizeof($result) > 0) { + $message = $this->messages['sambaSID'][0]; + $message[] = $rids[$i]; + $errors[] = $message; + } + } + } + } + if (!$wrid) { + $this->attributes['sambaSID'][0] = $SID . "-" . ($this->getGID()*2+$RIDbase+1); + } + // delete local members + foreach ($_POST as $key => $value) { + if (strpos($key, 'sambaSIDListDel_') === 0) { + $index = substr($key, strlen('sambaSIDListDel_')); + unset($this->attributes['sambaSIDList'][$index]); + $this->attributes['sambaSIDList'] = array_values($this->attributes['sambaSIDList']); + break; + } + } + // Return error-messages + return $errors; + } + + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + function save_attributes() { + if (!in_array('sambaGroupMapping', $this->attributes['objectClass']) && !in_array('sambaGroupMapping', $this->orig['objectClass'])) { + return array(); + } + return $this->getAccountContainer()->save_module_attributes($this->attributes, $this->orig); + } + + /** + * Returns a list of existing Samba 3 domains. + * + * @return array list of samba3domain objects + */ + private function getDomains() { + if ($this->cachedDomainList != null) { + return $this->cachedDomainList; + } + $this->cachedDomainList = search_domains(); + return $this->cachedDomainList; + } + + /** + * Loads the list of Samba accounts into the cache. + */ + private function loadSIDCache() { + if ($this->sidCache != null) { + return; + } + $results = searchLDAPByFilter('(|(objectClass=sambaSamAccount)(objectClass=sambaGroupMapping))', array('cn', 'uid', 'sambaSID'), array('user', 'group', 'host')); + $this->sidCache = array(); + foreach ($results as $result) { + // require SID + if (empty($result['sambasid'][0])) { + continue; + } + // get label + if (isset($result['cn'][0])) { + $label = $result['cn'][0]; + } + elseif (isset($result['uid'][0])) { + $label = $result['uid'][0]; + } + else { + $label = $result['sambasid'][0]; + } + $this->sidCache[$result['sambasid'][0]] = $label; + } + } + +} + +?> diff --git a/lam/lib/modules/sambaSamAccount.inc b/lam/lib/modules/sambaSamAccount.inc new file mode 100644 index 00000000..0c7b33f7 --- /dev/null +++ b/lam/lib/modules/sambaSamAccount.inc @@ -0,0 +1,2609 @@ + '0000', '1' => '0001', '2' => '0010', '3' => '0011', '4' => '0100', + '5' => '0101', '6' => '0110', '7' => '0111', '8' => '1000', '9' => '1001', 'A' => '1010', + 'B' => '1011', 'C' => '1100', 'D' => '1101', 'E' => '1110', 'F' => '1111'); + /** specifies if the password should be expired */ + private $expirePassword = false; + /** host cache to reduce LDAP queries */ + private $cachedHostList = null; + /** group cache to reduce LDAP queries */ + private $cachedGroupSIDList = null; + /** cache for domain list */ + private $cachedDomainList = null; + /** delimiter for lamdaemon commands */ + private static $SPLIT_DELIMITER = "###x##y##x###"; + + + /** + * Creates a new sambaSamAccount object. + * + * @param string $scope account type (user, group, host) + */ + function __construct($scope) { + // List of well known group rids + $this->groupRids = array( + _('Domain admins') => 512, _('Domain users') => 513, _('Domain guests') => 514, + _('Domain computers') => 515, _('Domain controllers') => 516, _('Domain certificate admins') => 517, + _('Domain schema admins') => 518, _('Domain enterprise admins') => 519, _('Domain policy admins') => 520); + // List of well known user rids + $this->userRids = array( + _('Domain admins') => 500, _('Domain guests') => 501, _('Domain KRBTGT') => 502); + // call parent constructor + parent::__construct($scope); + $this->autoAddObjectClasses = false; + } + + /** this functin fills the error message array with messages + **/ + function load_Messages() { + // error messages for input checks + $this->messages['homePath'][0] = array('ERROR', _('Home path'), _('Home path is invalid.')); + $this->messages['homePath'][1] = array('INFO', _('Home path'), _('Inserted user or group name in home path.')); + $this->messages['homePath'][2] = array('ERROR', _('Account %s:') . ' sambaSamAccount_homePath', _('Home path is invalid.')); + $this->messages['profilePath'][0] = array('ERROR', _('Profile path'), _('Profile path is invalid!')); + $this->messages['profilePath'][1] = array('INFO', _('Profile path'), _('Inserted user or group name in profile path.')); + $this->messages['profilePath'][2] = array('ERROR', _('Account %s:') . ' sambaSamAccount_profilePath', _('Profile path is invalid!')); + $this->messages['logonScript'][0] = array('ERROR', _('Logon script'), _('Logon script is invalid!')); + $this->messages['logonScript'][1] = array('INFO', _('Logon script'), _('Inserted user or group name in logon script.')); + $this->messages['logonScript'][2] = array('ERROR', _('Account %s:') . ' sambaSamAccount_logonScript', _('Logon script is invalid!')); + $this->messages['workstations'][0] = array('ERROR', _('Samba workstations'), _('Please enter a comma separated list of host names!')); + $this->messages['workstations'][1] = array('ERROR', _('Account %s:') . ' sambaSamAccount_workstations', _('Please enter a comma separated list of host names!')); + $this->messages['sambaLMPassword'][0] = array('ERROR', _('Password'), _('Please enter the same password in both password fields.')); + $this->messages['sambaLMPassword'][1] = array('ERROR', _('Password'), _('Password contains invalid characters. Valid characters are:') . ' a-z, A-Z, 0-9 and #*,.;:_-+!%&/|?{[()]}=@$ §°!'); + $this->messages['sambaLMPassword'][2] = array('ERROR', _('Account %s:') . ' sambaSamAccount_password', _('Password contains invalid characters. Valid characters are:') . ' a-z, A-Z, 0-9 and #*,.;:_-+!%&/|?{[()]}=@$ §°!'); + $this->messages['rid'][2] = array('ERROR', _('Account %s:') . ' sambaSamAccount_rid', _('Please enter a RID number or the name of a special account!')); + $this->messages['rid'][3] = array('ERROR', _('Account %s:') . ' sambaSamAccount_rid', _('This is not a valid RID number!')); + $this->messages['displayName'][0] = array('ERROR', _('Account %s:') . ' sambaSamAccount_displayName', _('Please enter a valid display name!')); + $this->messages['displayName'][1] = array('ERROR', _('Display name'), _('Please enter a valid display name!')); + $this->messages['pwdUnix'][0] = array('ERROR', _('Account %s:') . ' sambaSamAccount_pwdUnix', _('This value can only be "true" or "false".')); + $this->messages['noPassword'][0] = array('ERROR', _('Account %s:') . ' sambaSamAccount_noPassword', _('This value can only be "true" or "false".')); + $this->messages['noExpire'][0] = array('ERROR', _('Account %s:') . ' sambaSamAccount_noExpire', _('This value can only be "true" or "false".')); + $this->messages['deactivated'][0] = array('ERROR', _('Account %s:') . ' sambaSamAccount_deactivated', _('This value can only be "true" or "false".')); + $this->messages['expireDate'][0] = array('ERROR', _('Account %s:') . ' sambaSamAccount_expireDate', _('Please enter a valid date in format DD-MM-YYYY.')); + $this->messages['homeDrive'][0] = array('ERROR', _('Account %s:') . ' sambaSamAccount_homeDrive', _('Please enter a valid drive letter.')); + $this->messages['domain'][0] = array('ERROR', _('Account %s:') . ' sambaSamAccount_domain', _('LAM was unable to find a domain with this name!')); + $this->messages['logonHours'][0] = array('ERROR', _('Logon hours'), _('The format of the logon hours field is invalid!')); + $this->messages['logonHours'][1] = array('ERROR', _('Account %s:') . ' sambaSamAccount_logonHours', _('The format of the logon hours field is invalid!')); + $this->messages['group'][0] = array('ERROR', _('Account %s:') . ' sambaSamAccount_group', _('Please enter a valid group name!')); + $this->messages['profileCanMustChange'][0] = array('ERROR', _('The value for the Samba 3 field "User can/must change password" needs to be a number.')); + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('user', 'host')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'samba.png'; + // alias name + $return["alias"] = _('Samba 3'); + // RDN attribute + $return["RDN"] = array("sambaSID" => "low"); + // module dependencies + $return['dependencies'] = array('depends' => array('posixAccount'), 'conflicts' => array()); + // LDAP filter + $return["ldap_filter"] = array('or' => "(objectClass=sambaSamAccount)"); + // managed object classes + $return['objectClasses'] = array('sambaSamAccount'); + // managed attributes + $return['attributes'] = array('uid', 'sambaSID', 'sambaLMPassword', 'sambaNTPassword', 'sambaPwdLastSet', + 'sambaLogonTime', 'sambaLogoffTime', 'sambaKickoffTime', 'sambaAcctFlags', + 'sambaPwdLastSet', 'displayName', 'sambaHomePath', 'sambaHomeDrive', 'sambaLogonScript', 'sambaProfilePath', + 'sambaUserWorkstations', 'sambaPrimaryGroupSID', 'sambaDomainName', 'sambaLogonHours', 'sambaMungedDial', + 'sambaPwdCanChange', 'sambaPwdMustChange'); // sambaPwdCanChange/sambaPwdMustChange only for extension removal + // PHP extensions + $return['extensions'] = array('hash', 'iconv'); + // profile options + $profileContainer = new htmlTable(); + $profileContainer->addElement(new htmlTableExtendedInputCheckbox('sambaSamAccount_addExt', false, _('Automatically add this extension'), 'autoAdd'), true); + $return['profile_options'] = $profileContainer; + // profile checks + $return['profile_checks']['sambaSamAccount_smbhome'] = array( + 'type' => 'ext_preg', + 'regex' => 'UNC', + 'error_message' => $this->messages['homePath'][0]); + $return['profile_checks']['sambaSamAccount_profilePath'] = array( + 'type' => 'ext_preg', + 'regex' => 'UNC', + 'error_message' => $this->messages['profilePath'][0]); + $return['profile_checks']['sambaSamAccount_logonScript'] = array( + 'type' => 'ext_preg', + 'regex' => 'logonscript', + 'error_message' => $this->messages['logonScript'][0]); + $return['profile_checks']['sambaSamAccount_userWorkstations'] = array( + 'type' => 'ext_preg', + 'regex' => 'unixhost', + 'error_message' => $this->messages['workstations'][0]); + $return['profile_checks']['sambaSamAccount_logonHours'] = array( + 'type' => 'ext_preg', + 'regex' => 'sambaLogonHours', + 'error_message' => $this->messages['logonHours'][0]); + // profile mappings + $return['profile_mappings'] = array( + 'sambaSamAccount_sambaDomainName' => 'sambaDomainName', + 'sambaSamAccount_displayName' => 'displayName', + ); + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideHomePath')) { + $return['profile_mappings']['sambaSamAccount_smbhome'] = 'sambaHomePath'; + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideProfilePath')) { + $return['profile_mappings']['sambaSamAccount_profilePath'] = 'sambaProfilePath'; + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideLogonScript')) { + $return['profile_mappings']['sambaSamAccount_logonScript'] = 'sambaLogonScript'; + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideWorkstations')) { + $return['profile_mappings']['sambaSamAccount_userWorkstations'] = 'sambaUserWorkstations'; + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideLogonHours')) { + $return['profile_mappings']['sambaSamAccount_logonHours'] = 'sambaLogonHours'; + } + // available PDF fields + $return['PDF_fields'] = array( + 'displayName' => _('Display name'), + 'sambaDomainName' => _('Domain'), + 'sambaPrimaryGroupSID' => _('Windows group') + ); + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideHomeDrive')) { + $return['PDF_fields']['sambaHomeDrive'] = _('Home drive'); + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideHomePath')) { + $return['PDF_fields']['sambaHomePath'] = _('Home path'); + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideProfilePath')) { + $return['PDF_fields']['sambaProfilePath'] = _('Profile path'); + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideLogonScript')) { + $return['PDF_fields']['sambaLogonScript'] = _('Logon script'); + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideWorkstations')) { + $return['PDF_fields']['sambaUserWorkstations'] = _('Samba workstations'); + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideTerminalServer')) { + $return['PDF_fields']['tsAllowLogin'] = _('Allow terminal server login'); + $return['PDF_fields']['tsHomeDir'] = _('Home directory') . ' (TS)'; + $return['PDF_fields']['tsHomeDrive'] = _('Home drive') . ' (TS)'; + $return['PDF_fields']['tsProfilePath'] = _('Profile path') . ' (TS)'; + $return['PDF_fields']['tsInherit'] = _('Inherit client startup configuration') . ' (TS)'; + $return['PDF_fields']['tsInitialProgram'] = _('Initial program') . ' (TS)'; + $return['PDF_fields']['tsWorkDirectory'] = _('Working directory') . ' (TS)'; + $return['PDF_fields']['tsConnectionLimit'] = _('Connection time limit') . ' (TS)'; + $return['PDF_fields']['tsDisconnectionLimit'] = _('Disconnection time limit') . ' (TS)'; + $return['PDF_fields']['tsIdleLimit'] = _('Idle time limit') . ' (TS)'; + $return['PDF_fields']['tsConnectDrives'] = _('Connect client drives') . ' (TS)'; + $return['PDF_fields']['tsConnectPrinters'] = _('Connect client printers') . ' (TS)'; + $return['PDF_fields']['tsClientPrinterDefault'] = _('Client printer is default') . ' (TS)'; + $return['PDF_fields']['tsShadowing'] = _('Shadowing') . ' (TS)'; + $return['PDF_fields']['tsBrokenConn'] = _('On broken or timed out connection') . ' (TS)'; + $return['PDF_fields']['tsReconnect'] = _('Reconnect if disconnected') . ' (TS)'; + } + $return['selfServiceFieldSettings'] = array( + 'syncNTPassword' => _('Sync Samba NT password with Unix password'), + 'syncLMPassword' => _('Sync Samba LM password with Unix password'), + 'syncSambaPwdLastSet' => _('Update attribute "sambaPwdLastSet" on password change'), + 'password' => _('Password'), + 'sambaPwdLastSet' => _('Last password change (read-only)'), + ); + // self service: fields that cannot be relabeled + $return['selfServiceNoRelabelFields'] = array('syncNTPassword', 'syncLMPassword', 'syncSambaPwdLastSet'); + // help Entries + $return['help'] = array ( + "displayName" => array( + "Headline" => _("Display name"), 'attr' => 'displayName', + "Text" => _("This is the account's full name on Windows systems.")), + "password" => array( + "Headline" => _("Samba password"), + "Text" => _("This is the account's Windows password.")), + "resetPassword" => array( + "Headline" => _("Reset password"), + "Text" => _("This will reset the host's password to a default value.")), + "pwdUnix" => array( + "Headline" => _("Use Unix password"), + "Text" => _("If checked Unix password will also be used as Samba password.")), + "pwdUnixUpload" => array( + "Headline" => _("Use Unix password"), + "Text" => _("If set to \"true\" Unix password will also be used as Samba password.")), + "noPassword" => array( + "Headline" => _("Use no password"), + "Text" => _("If checked no password will be used.")), + "noPasswordUpload" => array( + "Headline" => _("Use no password"), + "Text" => _("If set to \"true\" no password will be used.")), + "noExpire" => array( + "Headline" => _("Password does not expire"), + "Text" => _("If checked password does not expire. (Setting X-Flag)")), + "noExpireUpload" => array( + "Headline" => _("Password does not expire"), + "Text" => _("If set to \"true\" password does not expire. (Setting X-Flag)")), + "deactivated" => array( + "Headline" => _("Account is deactivated"), + "Text" => _("If checked then the account will be deactivated. (Setting D-Flag)")), + "locked" => array( + "Headline" => _("Account is locked"), + "Text" => _("If checked then the account will be locked (setting L-Flag). You usually want to use this setting to unlock user accounts which were locked because of failed login attempts.")), + "deactivatedUpload" => array( + "Headline" => _("Account is deactivated"), + "Text" => _("If set to \"true\" account will be deactivated. (Setting D-Flag)")), + "passwordIsExpired" => array( + "Headline" => _("Password change at next login"), + "Text" => _("If you set this option then the user has to change his password at the next login.")), + "pwdCanChange" => array( + "Headline" => _("User can change password"), + "Text" => _("Date after the user is able to change his password.")), + "pwdMustChange" => array ("Headline" => _("User must change password"), + "Text" => _("Date after the user must change his password.")), + "homeDrive" => array( + "Headline" => _("Home drive"), 'attr' => 'sambaHomeDrive', + "Text" => _("The home directory will be connected under this drive letter.")), + "homePath" => array( + "Headline" => _("Home path"), 'attr' => 'sambaHomePath', + "Text" => _('UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced with user and group name.'). ' '. _("Can be left empty.")), + "profilePath" => array( + "Headline" => _("Profile path"), 'attr' => 'sambaProfilePath', + "Text" => _('Path of the user profile. Can be a local absolute path or a UNC-path (\\\\server\\share). $user and $group are replaced with user and group name.'). ' '. _("Can be left empty.")), + "scriptPath" => array( + "Headline" => _("Logon script"), 'attr' => 'sambaLogonScript', + "Text" => _('File name and path relative to netlogon-share which should be executed on logon. $user and $group are replaced with user and group name.'). ' '. _("Can be left empty.")), + "userWorkstations" => array( + "Headline" => _("Samba workstations"), 'attr' => 'sambaUserWorkstations', + "Text" => _("List of Samba workstations the user is allowed to login. Empty means every workstation.")), + "workstations" => array( + "Headline" => _("Samba workstations"), 'attr' => 'sambaUserWorkstations', + "Text" => _("Comma separated list of Samba workstations the user is allowed to login. Empty means every workstation."). ' '. _("Can be left empty.")), + "group" => array( + "Headline" => _("Windows primary group"), 'attr' => 'sambaPrimaryGroupSID', + "Text" => _("This is the user's primary Windows group.")), + "groupUpload" => array( + "Headline" => _("Windows primary group SID"), 'attr' => 'sambaPrimaryGroupSID', + "Text" => _("This is the SID of the user's primary Windows group.")), + "specialUser" => array( + "Headline" => _("Special user"), + "Text" => _("This allows you to define this account as a special user like administrator or guest.")), + "ridUpload" => array( + "Headline" => _("Samba RID"), + "Text" => _("This is the relative ID number for your Windows account. You can either enter a number or one of these special accounts: ") . + implode(", ", array_keys($this->userRids)) . "

    " . _("If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase.")), + "ridUploadHost" => array( + "Headline" => _("Samba RID"), + "Text" => _("This is the relative ID number for your host account. If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase.")), + "domain" => array( + "Headline" => _("Domain"), 'attr' => 'sambaDomainName', + "Text" => _("Windows domain name of account.")), + "logonHours" => array( + "Headline" => _("Logon hours"), 'attr' => 'sambaLogonHours', + "Text" => _("This option defines the allowed logon hours for this account.")), + "logonHoursUpload" => array( + "Headline" => _("Logon hours"), 'attr' => 'sambaLogonHours', + "Text" => _("This option defines the allowed logon hours for this account. The format is the same as for the LDAP attribute. The 24*7 hours are represented as 168 bit which are saved as 21 hex (21*8 = 168) values. The first bit represents Sunday 0:00 - 0:59 in GMT.")), + 'expireDate' => array ( + "Headline" => _("Account expiration date"), 'attr' => 'sambaKickoffTime', + "Text" => _("This is the date when the account will expire. Format: DD-MM-YYYY")), + 'timeZone' => array ( + "Headline" => _("Time zone"), + "Text" => _("This is the time zone of your Samba server. LAM needs this information to display the logon hours correctly.")), + 'tsAllowLogin' => array ( + "Headline" => _("Allow terminal server login"), + "Text" => _("Activate this checkbox to allow this user to use the terminal service.")), + 'tsHomeDir' => array ( + "Headline" => _("Home directory"), + "Text" => _("This is the path to the user's home directory.")), + 'tsProfilePath' => array ( + "Headline" => _("Profile path"), + "Text" => _("Path of the user profile.")), + 'tsInherit' => array ( + "Headline" => _("Inherit client startup configuration"), + "Text" => _("Activate this checkbox to inherit the initial program and working directory from the client machine.")), + 'tsInitialProgram' => array ( + "Headline" => _("Initial program"), + "Text" => _("This program is run after the login.")), + 'tsWorkDirectory' => array ( + "Headline" => _("Working directory"), + "Text" => _("Working directory of initial program.")), + 'tsTimeLimit' => array ( + "Headline" => _("Time limit"), + "Text" => _("Please enter the time limit in minutes. 0 means unlimited.")), + 'tsConnectDrives' => array ( + "Headline" => _("Connect client drives"), + "Text" => _("Activate this checkbox to connect drives from the client machine.")), + 'tsConnectPrinters' => array ( + "Headline" => _("Connect client printers"), + "Text" => _("Activate this checkbox to connect printers from the client machine.")), + 'tsClientPrinterDefault' => array ( + "Headline" => _("Client printer is default"), + "Text" => _("Activate this checkbox to set the client's printer as default printer.")), + 'tsShadowing' => array ( + "Headline" => _("Shadowing"), + "Text" => _("Here you can specify the shadowing mode.")), + 'tsBrokenConn' => array ( + "Headline" => _("On broken or timed out connection"), + "Text" => _("This specifies what to do when the client connection is broken.")), + 'tsReconnect' => array ( + "Headline" => _("Reconnect if disconnected"), + "Text" => _("This specifies the reconnect policy.")), + 'terminalServer' => array ( + "Headline" => _("Terminal server options"), + "Text" => _("Here you can change the settings for the terminal server access.")), + 'lmHash' => array ( + "Headline" => _("Disable LM hashes"), + "Text" => _("Windows password hashes are saved by default as NT and LM hashes. LM hashes are insecure and only needed for old versions of Windows. You should disable them unless you really need them.")), + 'sambaPwdLastSet' => array ( + "Headline" => _("Last password change"), 'attr' => 'sambaPwdLastSet', + "Text" => _("This is the date when the user changed his password.")), + 'hiddenOptions' => array( + "Headline" => _("Hidden options"), + "Text" => _("The selected options will not be managed inside LAM. You can use this to reduce the number of displayed input fields.")), + 'autoAdd' => array( + "Headline" => _("Automatically add this extension"), + "Text" => _("This will enable the extension automatically if this profile is loaded.")) + ); + // upload dependencies + $return['upload_preDepends'] = array('posixAccount', 'inetOrgPerson'); + // upload options + if ($this->get_scope() == "user") { + $return['upload_columns'] = array( + array( + 'name' => 'sambaSamAccount_domain', + 'description' => _('Domain'), + 'required' => true, + 'help' => 'domain', + 'example' => _('mydomain') + ), + array( + 'name' => 'sambaSamAccount_displayName', + 'description' => _('Display name'), + 'help' => 'displayName', + 'example' => _('Steve Miller') + ), + array( + 'name' => 'sambaSamAccount_password', + 'description' => _('Password'), + 'help' => 'password', + 'example' => _('secret') + ), + array( + 'name' => 'sambaSamAccount_pwdUnix', + 'description' => _('Use Unix password'), + 'help' => 'pwdUnixUpload', + 'default' => 'true', + 'values' => 'true, false', + 'example' => 'true' + ), + array( + 'name' => 'sambaSamAccount_noPassword', + 'description' => _('Use no password'), + 'help' => 'noPasswordUpload', + 'default' => 'false', + 'values' => 'true, false', + 'example' => 'false' + ), + array( + 'name' => 'sambaSamAccount_noExpire', + 'description' => _('Password does not expire'), + 'help' => 'noExpireUpload', + 'default' => 'true', + 'values' => 'true, false', + 'example' => 'true' + ), + array( + 'name' => 'sambaSamAccount_deactivated', + 'description' => _('Account is deactivated'), + 'help' => 'deactivatedUpload', + 'default' => 'false', + 'values' => 'true, false', + 'example' => 'false' + ), + array( + 'name' => 'sambaSamAccount_expireDate', + 'description' => _('Account expiration date'), + 'help' => 'expireDate', + 'default' => '31-12-2030', + 'example' => '15-10-2020' + ), + array( + 'name' => 'sambaSamAccount_group', + 'description' => _('Windows group'), + 'help' => 'groupUpload', + 'example' => _('mygroup'), + 'default' => 'Domain Users' + ), + array( + 'name' => 'sambaSamAccount_rid', + 'description' => _('Samba RID'), + 'help' => 'ridUpload', + 'example' => '1235', + 'default' => '{uidNumber}*2 + {sambaAlgorithmicRidBase}' + ), + ); + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideHomeDrive')) { + $return['upload_columns'][] = array( + 'name' => 'sambaSamAccount_homeDrive', + 'description' => _('Home drive'), + 'help' => 'homeDrive', + 'example' => 'k:' + ); + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideHomePath')) { + $return['upload_columns'][] = array( + 'name' => 'sambaSamAccount_homePath', + 'description' => _('Home path'), + 'help' => 'homePath', + 'example' => _('\\\\server\\homes\\smiller') + ); + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideProfilePath')) { + $return['upload_columns'][] = array( + 'name' => 'sambaSamAccount_profilePath', + 'description' => _('Profile path'), + 'help' => 'profilePath', + 'example' => _('\\\\server\\profiles\\smiller') + ); + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideLogonScript')) { + $return['upload_columns'][] = array( + 'name' => 'sambaSamAccount_logonScript', + 'description' => _('Logon script'), + 'help' => 'scriptPath', + 'example' => 'logon.bat' + ); + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideWorkstations')) { + $return['upload_columns'][] = array( + 'name' => 'sambaSamAccount_workstations', + 'description' => _('Samba workstations'), + 'help' => 'workstations', + 'example' => 'PC01,PC02,PC03' + ); + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideLogonHours')) { + $return['upload_columns'][] = array( + 'name' => 'sambaSamAccount_logonHours', + 'description' => _('Logon hours'), + 'help' => 'logonHoursUpload', + 'example' => 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' + ); + } + } + elseif ($this->get_scope() == "host") { + $return['upload_columns'] = array( + array( + 'name' => 'sambaSamAccount_domain', + 'description' => _('Domain'), + 'required' => true, + 'help' => 'domain', + 'example' => _('mydomain') + ), + array( + 'name' => 'sambaSamAccount_rid', + 'description' => _('Samba RID'), + 'help' => 'ridUploadHost', + 'example' => '1235', + 'default' => '{uidNumber}*2 + {sambaAlgorithmicRidBase}' + ) + ); + } + // configuration options + $timezones = array( + "GMT-12: " . _("Eniwetok, Kwajalein") => '-12', + "GMT-11: " . _("Midway Island, Samoa") => '-11', + "GMT-10: " . _("Hawaii") => '-10', + "GMT-09: " . _("Alaska") => '-9', + "GMT-08: " . _("Pacific Time (US & Canada)") => '-8', + "GMT-07: " . _("Mountain Time (US & Canada)") => '-7', + "GMT-06: " . _("Central Time (US & Canada), Mexico City") => '-6', + "GMT-05: " . _("Eastern Time (US & Canada), Bogota") => '-5', + "GMT-04: " . _("Atlantic time (Canada), Caracas") => '-4', + "GMT-03: " . _("Brazil, Buenos Aires") => '-3', + "GMT-02: " . _("Mid-Atlantic") => '-2', + "GMT-01: " . _("Azores, Cape Verde Islands") => '-1', + 'GMT: ' . _("Western Europe Time, London, Lisbon") => '0', + "GMT+01: " . _("Central Europe Time, Paris, Berlin") => '1', + "GMT+02: " . _("Eastern Europe Time, South Africa") => '2', + "GMT+03: " . _("Baghdad, Riyadh, Moscow") => '3', + "GMT+04: " . _("Abu Dhabi, Muscat, Baku") => '4', + "GMT+05: " . _("Islamabad, Karachi") => '5', + "GMT+06: " . _("Almaty, Dhaka, Colombo") => '6', + "GMT+07: " . _("Bangkok, Hanoi, Jakarta") => '7', + "GMT+08: " . _("Beijing, Perth, Singapore") => '8', + "GMT+09: " . _("Tokyo, Seoul, Osaka, Yakutsk") => '9', + "GMT+10: " . _("East Australian Standard, Guam") => '10', + "GMT+11: " . _("Magadan, Solomon Islands") => '11', + "GMT+12: " . _("Auckland, Fiji, Kamchatka") => '12', + ); + $configContainer = new htmlTable(); + $timezoneSelect = new htmlTableExtendedSelect('sambaSamAccount_timeZone', $timezones, array('0'), _("Time zone"), 'timeZone'); + $timezoneSelect->setHasDescriptiveElements(true); + $timezoneSelect->setSortElements(false); + $configContainer->addElement($timezoneSelect, true); + $yesNo = array(_('yes') => 'yes', _('no') => 'no'); + $yesNoSelect = new htmlTableExtendedSelect('sambaSamAccount_lmHash', $yesNo, array('yes'), _("Disable LM hashes"), 'lmHash'); + $yesNoSelect->setHasDescriptiveElements(true); + $configContainer->addElement($yesNoSelect, true); + $configContainer->addElement(new htmlSpacer(null, '10px'), true); + $configHiddenLabelGroup = new htmlGroup(); + $configHiddenLabelGroup->addElement(new htmlOutputText(_('Hidden options') . ' ')); + $configHiddenLabelGroup->addElement(new htmlHelpLink('hiddenOptions')); + $configContainer->addElement($configHiddenLabelGroup, true); + $hiddenContainer = new htmlTable(); + $hiddenContainer->colspan = 5; + $hiddenContainer->addElement(new htmlTableExtendedInputCheckbox('sambaSamAccount_hideHomeDrive', false, _('Home drive'), null, false)); + $hiddenContainer->addElement(new htmlOutputText(' ')); + $hiddenContainer->addElement(new htmlTableExtendedInputCheckbox('sambaSamAccount_hideHomePath', false, _('Home path'), null, false)); + $hiddenContainer->addElement(new htmlOutputText(' ')); + $hiddenContainer->addElement(new htmlTableExtendedInputCheckbox('sambaSamAccount_hideProfilePath', false, _('Profile path'), null, false)); + $hiddenContainer->addElement(new htmlOutputText(' ')); + $hiddenContainer->addElement(new htmlTableExtendedInputCheckbox('sambaSamAccount_hideLogonScript', false, _('Logon script'), null, false)); + $hiddenContainer->addElement(new htmlOutputText(' ')); + $hiddenContainer->addElement(new htmlTableExtendedInputCheckbox('sambaSamAccount_hideSambaPwdLastSet', false, _('Last password change'), null, false)); + $hiddenContainer->addNewLine(); + $hiddenContainer->addElement(new htmlTableExtendedInputCheckbox('sambaSamAccount_hideWorkstations', false, _('Samba workstations'), null, false)); + $hiddenContainer->addElement(new htmlOutputText(' ')); + $hiddenContainer->addElement(new htmlTableExtendedInputCheckbox('sambaSamAccount_hideLogonHours', false, _('Logon hours'), null, false)); + $hiddenContainer->addElement(new htmlOutputText(' ')); + $hiddenContainer->addElement(new htmlTableExtendedInputCheckbox('sambaSamAccount_hideTerminalServer', false, _('Terminal server options'), null, false)); + $configContainer->addElement($hiddenContainer); + $return['config_options']['user'] = $configContainer; + return $return; + } + + /** + * Initializes the module after it became part of an accountContainer + * + * @param string $base the name of the accountContainer object ($_SESSION[$base]) + */ + function init($base) { + // call parent init + parent::init($base); + $this->noexpire = true; + $this->nopwd = false; + $this->deactivated = false; + } + + /** + * This function is used to check if this module page can be displayed. + * It returns false if a module depends on data from other modules which was not yet entered. + * + * @return boolean true, if page can be displayed + */ + function module_ready() { + $attrs = $this->getAccountContainer()->getAccountModule('posixAccount')->getAttributes(); + if ($attrs['gidNumber'][0]=='') return false; + if ($attrs['uidNumber'][0]=='') return false; + if ($attrs['uid'][0]=='') return false; + return true; + } + + /** + * This function is used to check if all settings for this module have been made. + * + * @see baseModule::module_complete + * + * @return boolean true, if settings are complete + */ + public function module_complete() { + if (!$this->isExtensionEnabled()) { + return true; + } + if ($this->get_scope() == "host") { + $attrs = $this->getAccountContainer()->getAccountModule('posixAccount')->getAttributes(); + if (substr($attrs['uid'][0], -1, 1) != '$') { + return false; + } + } + if (!isset($this->attributes['sambaSID']) || ($this->attributes['sambaSID'] == '')) { + return false; + } + return true; + } + + + /** + * This function loads the LDAP attributes for this module. + * + * @param array $attr attribute list + */ + function load_attributes($attr) { + parent::load_attributes($attr); + if (isset($this->attributes['sambaAcctFlags'][0])) { + if (strpos($this->attributes['sambaAcctFlags'][0], "D")) $this->deactivated = true; + else $this->deactivated = false; + if (strpos($this->attributes['sambaAcctFlags'][0], "N")) $this->nopwd = true; + else $this->nopwd = false; + if (strpos($this->attributes['sambaAcctFlags'][0], "X")) $this->noexpire = true; + else $this->noexpire = false; + } + if (isset($this->attributes['sambaPwdLastSet'][0]) && ($this->attributes['sambaPwdLastSet'][0] === '0')) { + $this->expirePassword = true; + } + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + function save_attributes() { + if (!in_array('sambaSamAccount', $this->attributes['objectClass']) && !in_array('sambaSamAccount', $this->orig['objectClass'])) { + // skip saving if the extension was not added/modified + return array(); + } + if ($this->isExtensionEnabled()) { + if ($this->expirePassword === true) { + $this->attributes['sambaPwdLastSet'][0] = '0'; + } + elseif ((isset($this->attributes['sambaPwdLastSet'][0])) && ($this->attributes['sambaPwdLastSet'][0] == '0')) { + $this->attributes['sambaPwdLastSet'][0] = time(); + } + } + return parent::save_attributes(); + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + // add extension + if (isset($_POST['addObjectClass'])) { + $this->attributes['objectClass'][] = 'sambaSamAccount'; + return array(); + } + // remove extension + elseif (isset($_POST['remObjectClass'])) { + $this->attributes['objectClass'] = array_delete(array('sambaSamAccount'), $this->attributes['objectClass']); + $attrKeys = array_keys($this->attributes); + for ($k = 0; $k < sizeof($attrKeys); $k++) { + if (strpos($attrKeys[$k], 'samba') > -1) { + unset($this->attributes[$attrKeys[$k]]); + } + } + if (isset($this->attributes['displayName'])) { + unset($this->attributes['displayName']); + } + return array(); + } + // skip processing if extension is not active + if (!$this->isExtensionEnabled()) { + return array(); + } + // delete LM hash if needed + if (!isset($this->moduleSettings['sambaSamAccount_lmHash'][0]) || ($this->moduleSettings['sambaSamAccount_lmHash'][0] == 'yes')) { + if (isset($this->attributes['sambaLMPassword'])) { + unset($this->attributes['sambaLMPassword']); + } + } + $errors = array(); + $sambaDomains = $this->getDomains(); + if (sizeof($sambaDomains) == 0) { + return array(); + } + $attrs = $this->getAccountContainer()->getAccountModule('posixAccount')->getAttributes(); + $unixGroupName = $this->getGroupName($attrs['gidNumber'][0]); + // Save attributes + $this->attributes['sambaDomainName'][0] = $_POST['sambaDomainName']; + // Get Domain SID from name + for ($i=0; $iattributes['sambaDomainName'][0] == $sambaDomains[$i]->name) { + $SID = $sambaDomains[$i]->SID; + $RIDbase = $sambaDomains[$i]->RIDbase; + break; + } + } + $flag = "["; + if (isset($_POST['sambaAcctFlagsD'])) { + $flag .= "D"; + $this->deactivated = true; + } + else { + $this->deactivated = false; + } + if (isset($_POST['sambaAcctFlagsX'])) { + $flag .= "X"; + $this->noexpire = true; + } + else { + $this->noexpire = false; + } + if (isset($_POST['sambaAcctFlagsN'])) { + $flag .= "N"; + $this->nopwd = true; + } + else { + $this->nopwd = false; + } + if (isset($_POST['sambaAcctFlagsS'])) $flag .= "S"; + if (isset($_POST['sambaAcctFlagsH'])) $flag .= "H"; + if (isset($_POST['sambaAcctFlagsW'])) $flag .= "W"; + if (isset($_POST['sambaAcctFlagsU'])) $flag .= "U"; + if (isset($_POST['sambaAcctFlagsL'])) $flag .= "L"; + // Expand string to fixed length + $flag = str_pad($flag, 12); + // End character + $flag = $flag. "]"; + $this->attributes['sambaAcctFlags'][0] = $flag; + + // display name + $this->attributes['displayName'][0] = $_POST['displayName']; + if (!empty($this->attributes['displayName'][0])) { + $this->attributes['displayName'][0] = str_replace('$user', $attrs['uid'][0], $this->attributes['displayName'][0]); + $this->attributes['displayName'][0] = str_replace('$group', $unixGroupName, $this->attributes['displayName'][0]); + } + if (!($this->attributes['displayName'][0] == '') && !(get_preg($this->attributes['displayName'][0], 'realname'))) { + $errors[] = $this->messages['displayName'][1]; + } + + // host attributes + if ($this->get_scope()=='host') { + $this->attributes['sambaPrimaryGroupSID'][0] = $SID."-".$this->groupRids[_('Domain computers')]; + if (isset($_POST['ResetSambaPassword']) || !isset($this->attributes['sambaNTPassword'][0])) { + $hostname = $attrs['uid'][0]; + $hostname = substr($hostname, 0, strlen($hostname) - 1); + if (isset($this->moduleSettings['sambaSamAccount_lmHash'][0]) && ($this->moduleSettings['sambaSamAccount_lmHash'][0] == 'no')) { + $this->attributes['sambaLMPassword'][0] = lmPassword($hostname); + } + $this->attributes['sambaNTPassword'][0] = ntPassword($hostname); + $this->attributes['sambaPwdLastSet'][0] = time(); + } + } + // user attributes + if ($this->get_scope()=='user') { + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideHomePath')) { + $this->attributes['sambaHomePath'][0] = $_POST['sambaHomePath']; + $this->attributes['sambaHomePath'][0] = str_replace('$user', $attrs['uid'][0], $this->attributes['sambaHomePath'][0]); + $this->attributes['sambaHomePath'][0] = str_replace('$group', $unixGroupName, $this->attributes['sambaHomePath'][0]); + if ($this->attributes['sambaHomePath'][0] != $_POST['sambaHomePath']) $errors[] = $this->messages['homePath'][1]; + if ( (!$this->attributes['sambaHomePath'][0]=='') && (!get_preg($this->attributes['sambaHomePath'][0], 'UNC'))) { + $errors[] = $this->messages['homePath'][0]; + } + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideHomeDrive')) { + if ($_POST['sambaHomeDrive'] == "-") $this->attributes['sambaHomeDrive'][0] = ''; + else $this->attributes['sambaHomeDrive'][0] = $_POST['sambaHomeDrive']; + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideLogonScript')) { + $this->attributes['sambaLogonScript'][0] = $_POST['sambaLogonScript']; + $this->attributes['sambaLogonScript'][0] = str_replace('$user', $attrs['uid'][0], $this->attributes['sambaLogonScript'][0]); + $this->attributes['sambaLogonScript'][0] = str_replace('$group', $unixGroupName, $this->attributes['sambaLogonScript'][0]); + if ($this->attributes['sambaLogonScript'][0] != $_POST['sambaLogonScript']) $errors[] = $this->messages['logonScript'][1]; + if ( (!$this->attributes['sambaLogonScript'][0]=='') && (!get_preg($this->attributes['sambaLogonScript'][0], 'logonscript'))) { + $errors[] = $this->messages['logonScript'][0]; + } + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideProfilePath')) { + $this->attributes['sambaProfilePath'][0] = $_POST['sambaProfilePath']; + $this->attributes['sambaProfilePath'][0] = str_replace('$user', $attrs['uid'][0], $this->attributes['sambaProfilePath'][0]); + $this->attributes['sambaProfilePath'][0] = str_replace('$group', $unixGroupName, $this->attributes['sambaProfilePath'][0]); + if ($this->attributes['sambaProfilePath'][0] != $_POST['sambaProfilePath']) $errors[] = $this->messages['profilePath'][1]; + if (!($this->attributes['sambaProfilePath'][0] == '') && + !(get_preg($this->attributes['sambaProfilePath'][0], 'UNC') xor get_preg($this->attributes['sambaProfilePath'][0], 'homeDirectory'))) { + $errors[] = $this->messages['profilePath'][0]; + } + } + $rids = array_keys($this->groupRids); + $wrid = false; + for ($i=0; $iattributes['sambaPrimaryGroupSID'][0] = $SID."-".$this->groupRids[$rids[$i]]; + } + } + if (!$wrid) { + $gidnumber = $attrs['gidNumber'][0]; + $groups = $this->getGroupSIDList(); + if (isset($groups[$gidnumber]) && ($groups[$gidnumber] != '')) { + $this->attributes['sambaPrimaryGroupSID'][0] = $groups[$gidnumber]; + } + } + + $specialRids = array_flip($this->userRids); + // set special RID if selected + if (in_array($_POST['sambaSID'], $specialRids)) { + $this->attributes['sambaSID'][0] = $SID . '-' . $this->userRids[$_POST['sambaSID']]; + } + // standard RID + else if ($_POST['sambaSID'] == "-") { + $rid = substr($this->attributes['sambaSID'][0], strrpos($this->attributes['sambaSID'][0], '-') + 1, strlen($this->attributes['sambaSID'][0])); + // change only if not yet set, previously set to special SID or domain changed + if (!isset($this->attributes['sambaSID'][0]) + || in_array($rid, $this->userRids) + || (strpos($this->attributes['sambaSID'][0], $SID) === false)) { + $this->attributes['sambaSID'][0] = $SID."-". (($attrs['uidNumber'][0]*2)+$RIDbase); + } + } + } + else { // host + if (!isset($this->attributes['sambaSID'][0])) { + $this->attributes['sambaSID'][0] = $SID."-". (($attrs['uidNumber'][0]*2)+$RIDbase); + } + } + if (isset($_POST['forcePasswordChangeOption'])) { + $this->expirePassword = true; + } + else { + $this->expirePassword = false; + } + return $errors; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_sambaUserWorkstations() { + // Load attributes + if ($this->get_scope()=='user') { + if (isset($_POST['availableSambaUserWorkstations']) && isset($_POST['sambaUserWorkstations_add'])) { // Add workstations to list + $workstations = array(); + if (isset($this->attributes['sambaUserWorkstations'][0])) { + $temp = str_replace(' ', '', $this->attributes['sambaUserWorkstations'][0]); + $workstations = explode (',', $temp); + for ($i=0; $iattributes['sambaUserWorkstations'][0] = $workstations[0]; + for ($i=1; $iattributes['sambaUserWorkstations'][0] = $this->attributes['sambaUserWorkstations'][0] . "," . $workstations[$i]; + } + } + elseif (isset($_POST['sambaUserWorkstations']) && isset($_POST['sambaUserWorkstations_remove'])) { // remove // Add workstations from list + // Put all workstations in array + $temp = str_replace(' ', '', $this->attributes['sambaUserWorkstations'][0]); + $workstations = explode (',', $temp); + for ($i=0; $iattributes['sambaUserWorkstations'][0]); + if (sizeof($workstations) > 0) { + $this->attributes['sambaUserWorkstations'][0] = $workstations[0]; + for ($i=1; $iattributes['sambaUserWorkstations'][0] = $this->attributes['sambaUserWorkstations'][0] . "," . $workstations[$i]; + } + } + } + } + return array(); + } + + /** + * Processes user input of the logon hours page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_logonHours() { + if (isset($_POST['form_subpage_sambaSamAccount_attributes_abort'])) return array(); + // set new logon hours + $logonHours = ''; + for ($i = 0; $i < 24*7; $i++) { + $logonHours .= isset($_POST['lh_' . $i]) ? '1' : '0'; + } + // reconstruct HEX string + $bitstring2hex = array_flip($this->hex2bitstring); + $logonHoursNew = ''; + for ($i = 0; $i < 21; $i++) { + $part = strrev(substr($logonHours, $i * 8, 8)); + $byte[hi] = substr($part,0,4); + $byte[low] = substr($part,4,4); + $hex = $bitstring2hex[$byte[hi]].$bitstring2hex[$byte[low]]; + $logonHoursNew = $logonHoursNew . $hex; + } + $this->attributes['sambaLogonHours'][0] = $logonHoursNew; + return array(); + } + + /** + * Processes user input of the time selection page. + * + * @return array list of info/error messages + */ + function process_time() { + $return = array(); + // find button name + $buttonName = ''; + $postKeys = array_keys($_POST); + for ($i = 0; $i < sizeof($postKeys); $i++) { + if (strpos($postKeys[$i], 'form_subpage_sambaSamAccount_attributes_') !== false) { + $buttonName = $postKeys[$i]; + } + } + if (($buttonName == '') || (strpos($buttonName, '_back') !== false)) return array(); + // get attribute name + $attr = ''; + if (strpos($buttonName, 'sambaKickoffTime') !== false) { + $attr = 'sambaKickoffTime'; + } + if ($attr == '') return array(); + // determine action + if (strpos($buttonName, '_change') !== false) { + // set new time + $this->setExpirationDate($_POST['expire_yea'], $_POST['expire_mon'], $_POST['expire_day']); + // sync other modules + if (isset($_POST['syncShadow']) && ($_POST['syncShadow'] == 'on')) { + $this->getAccountContainer()->getAccountModule('shadowAccount')->setExpirationDate( + $_POST['expire_yea'], $_POST['expire_mon'], $_POST['expire_day']); + } + if (isset($_POST['syncHeimdal']) && ($_POST['syncHeimdal'] == 'on')) { + $this->getAccountContainer()->getAccountModule('heimdalKerberos')->setExpirationDate( + $_POST['expire_yea'], $_POST['expire_mon'], $_POST['expire_day']); + } + if (isset($_POST['syncMIT']) && ($_POST['syncMIT'] == 'on')) { + $this->getAccountContainer()->getAccountModule('mitKerberos')->setExpirationDate( + $_POST['expire_yea'], $_POST['expire_mon'], $_POST['expire_day']); + } + if (isset($_POST['syncMITStructural']) && ($_POST['syncMITStructural'] == 'on')) { + $this->getAccountContainer()->getAccountModule('mitKerberosStructural')->setExpirationDate( + $_POST['expire_yea'], $_POST['expire_mon'], $_POST['expire_day']); + } + } + elseif (strpos($buttonName, '_del') !== false) { + // remove attribute value + unset($this->attributes[$attr]); + // sync other modules + if (isset($_POST['syncShadow']) && ($_POST['syncShadow'] == 'on')) { + $this->getAccountContainer()->getAccountModule('shadowAccount')->setExpirationDate( + null, null, null); + } + if (isset($_POST['syncHeimdal']) && ($_POST['syncHeimdal'] == 'on')) { + $this->getAccountContainer()->getAccountModule('heimdalKerberos')->setExpirationDate( + null, null, null); + } + if (isset($_POST['syncMIT']) && ($_POST['syncMIT'] == 'on')) { + $this->getAccountContainer()->getAccountModule('mitKerberos')->setExpirationDate( + null, null, null); + } + if (isset($_POST['syncMITStructural']) && ($_POST['syncMITStructural'] == 'on')) { + $this->getAccountContainer()->getAccountModule('mitKerberosStructural')->setExpirationDate( + null, null, null); + } + } + return $return; + } + + /** + * Processes user input of the terminal server page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_terminalServer() { + if (isset($_POST['form_subpage_sambaSamAccount_attributes_abort'])) return array(); + $mDial = new sambaMungedDial(); + if (isset($this->attributes['sambaMungedDial'][0])) { + $mDial->load($this->attributes['sambaMungedDial'][0]); + } + $mDial->setTsLogin(!isset($_POST['tsAllowLogin'])); + $mDial->ctx['CtxWFHomeDir'] = $_POST['tsHomeDir']; + $mDial->ctx['CtxWFHomeDirDrive'] = $_POST['tsHomeDrive']; + $mDial->ctx['CtxWFProfilePath'] = $_POST['tsProfilePath']; + $mDial->setInheritMode(isset($_POST['tsInherit'])); + $mDial->ctx['CtxInitialProgram'] = $_POST['tsInitialProgram']; + $mDial->ctx['CtxWorkDirectory'] = $_POST['tsWorkDirectory']; + $mDial->ctx['CtxMaxConnectionTime'] = $_POST['tsConnectionLimit']; + $mDial->ctx['CtxMaxDisconnectionTime'] = $_POST['tsDisconnectionLimit']; + $mDial->ctx['CtxMaxIdleTime'] = $_POST['tsIdleLimit']; + $mDial->setConnectClientDrives(isset($_POST['tsConnectDrives'])); + $mDial->setConnectClientPrinters(isset($_POST['tsConnectPrinters'])); + $mDial->setDefaultPrinter(isset($_POST['tsClientPrinterDefault'])); + $mDial->setShadow(true, $_POST['tsShadowing']); + $mDial->setBrokenConn($_POST['tsBrokenConn']); + $mDial->setReConn($_POST['tsReconnect']); + $this->attributes['sambaMungedDial'][0] = $mDial->getMunged(); + return array(); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + function display_html_attributes() { + $return = new htmlTable(); + if ($this->isExtensionEnabled()) { + if ($this->get_scope() == "host") { + $attrs = $this->getAccountContainer()->getAccountModule('posixAccount')->getAttributes(); + if (substr($attrs['uid'][0], -1, 1) != '$') { + $return->addElement(new htmlStatusMessage("ERROR", _('Host name must end with $!'), _('Please check your settings on the Unix page!')), true); + } + } + $personalAttributes = array(); + if ($this->getAccountContainer()->getAccountModule('inetOrgPerson') != null) { + $personalAttributes = $this->getAccountContainer()->getAccountModule('inetOrgPerson')->getAttributes(); + } + // Get Domain SID from user SID + $sambaDomains = $this->getDomains(); + if (sizeof($sambaDomains) == 0) { + $return->addElement(new htmlStatusMessage("ERROR", _('No Samba 3 domains found in LDAP! Please create one first.')), true); + return $return; + } + if (isset($this->attributes['sambaSID'][0]) && $this->attributes['sambaSID'][0] != '') { + $domainSID = substr($this->attributes['sambaSID'][0], 0, strrpos($this->attributes['sambaSID'][0], "-")); + } + $sel_domain = array(); + for ($i=0; $iname; + if (isset($domainSID)) { + if ($domainSID == $sambaDomains[$i]->SID) { + $SID = $domainSID; + $sel_domain = array($sambaDomains[$i]->name); + } + } + elseif (isset($this->attributes['sambaDomainName'][0]) && ($this->attributes['sambaDomainName'][0]!='')) { + if ($this->attributes['sambaDomainName'][0] == $sambaDomains[$i]->name) { + $SID = $sambaDomains[$i]->SID; + $sel_domain = array($sambaDomains[$i]->name); + } + } + } + // display name + $displayName = ''; + if (!empty($this->attributes['displayName'][0])) { + $displayName = $this->attributes['displayName'][0]; + } + else if ($this->getAccountContainer()->isNewAccount && empty($this->attributes['displayName'][0])) { + if (isset($personalAttributes['givenName'][0]) && $personalAttributes['givenName'][0] && isset($personalAttributes['sn'][0]) && $personalAttributes['sn'][0]) { + $displayName = $personalAttributes['givenName'][0] . " " . $personalAttributes['sn'][0]; + } + elseif (isset($personalAttributes['sn'][0])) { + $displayName = $personalAttributes['sn'][0]; + } + } + $return->addElement(new htmlTableExtendedInputField(_('Display name'), 'displayName', $displayName, 'displayName'), true); + if ($this->get_scope()=='user') { + // user account + $return->addElement(new htmlHiddenInput('sambaAcctFlagsU', 'true'), true); + // no password + $return->addElement(new htmlTableExtendedInputCheckbox('sambaAcctFlagsN', $this->nopwd, _('Use no password'), 'noPassword'), true); + // no password expiry + $return->addElement(new htmlTableExtendedInputCheckbox('sambaAcctFlagsX', $this->noexpire, _('Password does not expire'), 'noExpire'), true); + // account deactivated + $return->addElement(new htmlTableExtendedInputCheckbox('sambaAcctFlagsD', $this->deactivated, _('Account is deactivated'), 'deactivated'), true); + // account locked + $locked = false; + if (isset($this->attributes['sambaAcctFlags'][0]) && (strpos($this->attributes['sambaAcctFlags'][0], "L") !== false)) { + $locked = true; + } + $return->addElement(new htmlTableExtendedInputCheckbox('sambaAcctFlagsL', $locked, _('Account is locked'), 'locked'), true); + // password change at next login + $return->addElement(new htmlTableExtendedInputCheckbox('forcePasswordChangeOption', $this->expirePassword, _('Password change at next login'), 'passwordIsExpired'), true); + // last password change + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideSambaPwdLastSet')) { + $sambaPwdLastSet = ''; + if (!empty($this->attributes['sambaPwdLastSet'][0])) { + $sambaPwdLastSet = date('d.m.Y H:i', $this->attributes['sambaPwdLastSet'][0]); + } + $return->addElement(new htmlOutputText(_('Last password change'))); + $return->addElement(new htmlOutputText($sambaPwdLastSet)); + $return->addElement(new htmlHelpLink('sambaPwdLastSet'), true); + } + // password can be changed + $return->addElement(new htmlOutputText(_('User can change password'))); + $tempTable = new htmlTable(); + $tempTable->addElement(new htmlOutputText($this->getPasswordCanChangeTime($sambaDomains, $sel_domain), false)); + $return->addElement($tempTable); + $return->addElement(new htmlHelpLink('pwdCanChange'), true); + // password must be changed + $return->addElement(new htmlOutputText(_('User must change password'))); + $tempTable = new htmlTable(); + $tempTable->addElement(new htmlOutputText($this->getPasswordMustChangeTime($sambaDomains, $sel_domain), false)); + $return->addElement($tempTable); + $return->addElement(new htmlHelpLink('pwdMustChange'), true); + // account expiration time + $dateValue = "     -      "; + if (isset($this->attributes['sambaKickoffTime'][0])) { + if ($this->attributes['sambaKickoffTime'][0] > 2147483648) { + $dateValue = "     ∞      "; + } + else { + $date = getdate($this->attributes['sambaKickoffTime'][0]); + $dateValue = $date['mday'] . "." . $date['mon'] . "." . $date['year']; + } + } + $return->addElement(new htmlOutputText(_('Account expiration date'))); + $tempTable = new htmlTable(); + $tempTable->addElement(new htmlOutputText($dateValue, false)); + $tempTable->addElement(new htmlAccountPageButton(get_class($this), 'time', 'sambaKickoffTime', _('Change'))); + $return->addElement($tempTable); + $return->addElement(new htmlHelpLink('expireDate'), true); + // home drive + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideHomeDrive')) { + $drives = array('-'); + for ($i=90; $i>67; $i--) $drives[] = chr($i).':'; + if (isset($this->attributes['sambaHomeDrive'][0])) { + $selected = array ($this->attributes['sambaHomeDrive'][0]); + } + else $selected = array('-'); + $return->addElement(new htmlTableExtendedSelect('sambaHomeDrive', $drives, $selected, _('Home drive'), 'homeDrive'), true); + } + // home path + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideHomePath')) { + $sambaHomePath = ''; + if (isset($this->attributes['sambaHomePath'][0])) { + $sambaHomePath = $this->attributes['sambaHomePath'][0]; + } + $return->addElement(new htmlTableExtendedInputField(_('Home path'), 'sambaHomePath', $sambaHomePath, 'homePath'), true); + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideProfilePath')) { + $sambaProfilePath = ''; + if (isset($this->attributes['sambaProfilePath'][0])) { + $sambaProfilePath = $this->attributes['sambaProfilePath'][0]; + } + $return->addElement(new htmlOutputText(_('Profile path'))); + $sambaProfilePathGroup = new htmlGroup(); + $sambaProfilePathGroup->addElement(new htmlInputField('sambaProfilePath', $sambaProfilePath)); + if (($_SESSION['config']->get_scriptPath() != null) && ($_SESSION['config']->get_scriptPath() != '')) { + if (get_preg($sambaProfilePath, 'homeDirectory')) { + $sambaProfilePathButton = new htmlAccountPageButton(get_class($this), 'profilePath', 'manage', '../graphics/folder.png', true); + $sambaProfilePathButton->setTitle(_('Manage profile directory')); + $sambaProfilePathGroup->addElement($sambaProfilePathButton); + } + } + $return->addElement($sambaProfilePathGroup); + $return->addElement(new htmlHelpLink('profilePath'), true); + } + // logon script + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideLogonScript')) { + $sambaLogonScript = ''; + if (isset($this->attributes['sambaLogonScript'][0])) { + $sambaLogonScript = $this->attributes['sambaLogonScript'][0]; + } + $return->addElement(new htmlTableExtendedInputField(_('Logon script'), 'sambaLogonScript', $sambaLogonScript, 'scriptPath'), true); + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideWorkstations')) { + $return->addElement(new htmlOutputText(_('Samba workstations'))); + $return->addElement(new htmlAccountPageButton(get_class($this), 'sambaUserWorkstations', 'open', _('Edit workstations'))); + $return->addElement(new htmlHelpLink('userWorkstations'), true); + } + // Windows group + $names = array_keys($this->groupRids); + $wrid=false; + $options = array(); + $selected = array(); + for ($i=0; $iattributes['sambaPrimaryGroupSID'][0]) && ($this->attributes['sambaPrimaryGroupSID'][0] == $SID . "-" . $this->groupRids[$names[$i]])) { + $selected[] = $names[$i]; + $wrid=true; + } + $options[] = $names[$i]; + } + $attrs = $this->getAccountContainer()->getAccountModule('posixAccount')->getAttributes(); + $options[] = $this->getGroupName($attrs['gidNumber'][0]); + if (!$wrid) { + $selected[] = $this->getGroupName($attrs['gidNumber'][0]); + } + $return->addElement(new htmlTableExtendedSelect('sambaPrimaryGroupSID', $options, $selected, _('Windows group'), 'group'), true); + // display if group SID should be mapped to a well known SID + $options = array_keys($this->userRids); + $options[] = '-'; + $selected = array(); + if (isset($this->attributes['sambaSID'][0]) && ($this->attributes['sambaSID'][0] != '')) { + $rid = substr($this->attributes['sambaSID'][0], strrpos($this->attributes['sambaSID'][0], '-') + 1, strlen($this->attributes['sambaSID'][0])); + $specialRids = array_flip($this->userRids); + if (in_array($rid, $this->userRids)) { + $selected = array($specialRids[$rid]); + } + else { + $selected = array('-'); + } + } + else $selected[] = "-"; + $return->addElement(new htmlTableExtendedSelect('sambaSID', $options, $selected, _('Special user'), 'specialUser'), true); + } + // domain + $return->addElement(new htmlTableExtendedSelect('sambaDomainName', $sambaDomainNames, $sel_domain, _('Domain'), 'domain'), true); + // logon hours and terminal server options + if ($this->get_scope()=='user') { + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideLogonHours')) { + $return->addElement(new htmlOutputText(_('Logon hours'))); + $return->addElement(new htmlAccountPageButton(get_class($this), 'logonHours', 'open', _('Edit'))); + $return->addElement(new htmlHelpLink('logonHours'), true); + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideTerminalServer')) { + $return->addElement(new htmlOutputText(_('Terminal server options'))); + $return->addElement(new htmlAccountPageButton(get_class($this), 'terminalServer', 'open', _('Edit'))); + $return->addElement(new htmlHelpLink('terminalServer'), true); + } + } + // reset host password + if ($this->get_scope()=='host') { + // host account + $return->addElement(new htmlHiddenInput('sambaAcctFlagsW', 'true'), true); + // password reset + $return->addElement(new htmlOutputText(_('Reset password'))); + $return->addElement(new htmlButton('ResetSambaPassword', _('Reset'))); + $return->addElement(new htmlHelpLink('resetPassword'), true); + } + + $return->addElement(new htmlSpacer(null, '10px'), true); + + $remButton = new htmlButton('remObjectClass', _('Remove Samba 3 extension')); + $remButton->colspan = 3; + $return->addElement($remButton); + } + else { + $return->addElement(new htmlButton('addObjectClass', _('Add Samba 3 extension'))); + } + return $return; + } + + /** + * This function will create the HTML page to edit the allowed workstations. + * + * @return htmlElement meta HTML code + */ + function display_html_sambaUserWorkstations() { + $return = new htmlTable(); + if ($this->get_scope()=='user') { + // Get list of all hosts. + $userWorkstations = array(); + $availableUserWorkstations = array(); + + $result = $this->getHostList(); + foreach ($result as $host) $availableUserWorkstations[] = str_replace("$", '', $host); + sort($availableUserWorkstations, SORT_STRING); + if (isset($this->attributes['sambaUserWorkstations'][0])) { + $wsAttr = str_replace(' ', '', $this->attributes['sambaUserWorkstations'][0]); + $userWorkstations = explode (',', $wsAttr); + } + $availableUserWorkstations = array_delete($userWorkstations, $availableUserWorkstations); + + $return->addElement(new htmlSubTitle(_("Allowed workstations")), true); + $return->addElement(new htmlOutputText(_("Allowed workstations"))); + $return->addElement(new htmlOutputText('')); + $return->addElement(new htmlOutputText(_("Available workstations"))); + $return->addNewLine(); + $wsSelect = new htmlSelect('sambaUserWorkstations', $userWorkstations, array(), 15); + $wsSelect->setMultiSelect(true); + $return->addElement($wsSelect); + $buttonContainer = new htmlTable(); + $buttonContainer->addElement(new htmlButton('sambaUserWorkstations_add', 'back.gif', true), true); + $buttonContainer->addElement(new htmlButton('sambaUserWorkstations_remove', 'forward.gif', true), true); + $buttonContainer->addElement(new htmlHelpLink('userWorkstations')); + $return->addElement($buttonContainer); + $wsAvailSelect = new htmlSelect('availableSambaUserWorkstations', $availableUserWorkstations, array(), 15); + $wsAvailSelect->setMultiSelect(true); + $return->addElement($wsAvailSelect); + $return->addNewLine(); + + $return->addElement(new htmlSpacer(null, '10px'), true); + + $backButton = new htmlAccountPageButton(get_class($this), 'attributes', 'back', _('Back')); + $backButton->colspan = 3; + $return->addElement($backButton); + } + return $return; + } + + /** + * This function will create the HTML page to edit logon hours. + * + * @return htmlElement meta HTML code + */ + function display_html_logonHours() { + $return = new htmlTable(); + $timeZone = 0; + if (isset($this->moduleSettings['sambaSamAccount_timeZone']) && is_array($this->moduleSettings['sambaSamAccount_timeZone'])) { + $timeZone = $this->moduleSettings['sambaSamAccount_timeZone'][0]; + } + $days = array(1 => _('Monday'), 2 => _('Tuesday'), 3 => _('Wednesday'), 4 => _('Thursday'), + 5 => _('Friday'), 6 => _('Saturday'), 0 => _('Sunday')); + if (!isset($this->attributes['sambaLogonHours'][0]) || ($this->attributes['sambaLogonHours'][0] == '')) { + $this->attributes['sambaLogonHours'][0] = 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'; + } + // convert existing logonHours string to bit array + $logonHours = $this->attributes['sambaLogonHours'][0]; + $temp = array(); + for ($i = 0; $i < strlen($logonHours); $i++) { + $temp[] = $this->hex2bitstring[$logonHours[$i]]; + } + $logonHoursRev = implode('', $temp); + // reverse bits low to high (1 is 0:00 sunday, 2 is 1:00 sunday, etc) + $logonHours = ""; + for ($i = 0; $i < 21; $i++) { + $logonHours .= strrev(substr($logonHoursRev, $i*8, 8)); + } + $hour = array(); + for ($i = 0; $i < 24*7; $i++) { + $hour[$i] = substr($logonHours, $i, 1); + } + // display input + $return->addElement(new htmlOutputText(_('Time'))); + for ($i = 0; $i < sizeof($days); $i++) { + $return->addElement(new htmlOutputText(' ' . $days[$i] . ' ', false)); + } + $return->addNewLine(); + $boxes = array(); + // dynamically place boxes depending on time zone + for ($i = 0; $i < 24*7; $i++) { + $hr = $i + $timeZone; + if ($hr < 0) { + $hr = $hr + 24*7; + } + elseif ($hr >= 24*7) { + $hr = $hr - 24*7; + } + $checkbox = new htmlInputCheckbox('lh_' . $hr, $hour[$hr] ? true : false); + $checkbox->alignment = htmlTable::ALIGN_CENTER; + $boxes[$i % 24][floor($i/24)] = $checkbox; + } + for ($h = 0; $h < 24; $h++) { + $hour = $h; + if ($h < 10) { + $hour = '0' . $h; + } + $return->addElement(new htmlOutputText("$hour:00 - $hour:59")); + for ($d = 0; $d < 7; $d++) { + $return->addElement($boxes[$h][$d]); + } + $return->addNewLine(); + } + + $return->addElement(new htmlSpacer(null, '10px'), true); + $buttonContainer = new htmlTable(); + $buttonContainer->colspan = 5; + $buttonContainer->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'submit', _('Ok'))); + $buttonContainer->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'abort', _('Cancel'))); + $return->addElement($buttonContainer); + return $return; + } + + /** + * This function will create the meta HTML code to show a page to change time values. + * + * @return htmlElement meta HTML code + */ + function display_html_time() { + $return = new htmlTable(); + // determine attribute + if (isset($_POST['form_subpage_sambaSamAccount_time_sambaKickoffTime'])) { + $attr = 'sambaKickoffTime'; + $text = _('Account expiration date'); + $help = "expireDate"; + } + $time = 0; + if (isset($this->attributes[$attr][0])) { + $time = $this->attributes[$attr][0]; + } + $date = getdate($time); + for ( $i=1; $i<=31; $i++ ) $mday[] = $i; + for ( $i=1; $i<=12; $i++ ) $mon[] = $i; + for ( $i=2003; $i<=2050; $i++ ) $year[] = $i; + $return->addElement(new htmlOutputText($text)); + $return->addElement(new htmlSelect('expire_day', $mday, array($date['mday']))); + $return->addElement(new htmlSelect('expire_mon', $mon, array($date['mon']))); + $return->addElement(new htmlSelect('expire_yea', $year, array($date['year']))); + $return->addElement(new htmlHelpLink($help), true); + if ($this->getAccountContainer()->getAccountModule('shadowAccount') != null) { + $return->addElement(new htmlTableExtendedInputCheckbox('syncShadow', false, _('Set also for Shadow')), true); + } + if ($this->getAccountContainer()->getAccountModule('heimdalKerberos') != null) { + $return->addElement(new htmlTableExtendedInputCheckbox('syncHeimdal', false, _('Set also for Kerberos')), true); + } + if ($this->getAccountContainer()->getAccountModule('mitKerberos') != null) { + $return->addElement(new htmlTableExtendedInputCheckbox('syncMIT', false, _('Set also for Kerberos')), true); + } + if ($this->getAccountContainer()->getAccountModule('mitKerberosStructural') != null) { + $return->addElement(new htmlTableExtendedInputCheckbox('syncMITStructural', false, _('Set also for Kerberos')), true); + } + $return->addElement(new htmlSpacer(null, '10px'), true); + $buttons = new htmlTable(); + $buttons->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'change' . $attr, _('Change'))); + if (isset($this->attributes[$attr][0])) { + $buttons->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'del' . $attr, _('Remove'))); + } + $buttons->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'back' . $attr, _('Cancel'))); + $buttons->colspan = 6; + $return->addElement($buttons); + return $return; + } + + /** + * This function will create the HTML page to edit the terminal server options. + * + * @return htmlElement meta HTML code + */ + function display_html_terminalServer() { + $return = new htmlTable(); + $mDial = new sambaMungedDial(); + if (isset($this->attributes['sambaMungedDial'][0])) { + $mDial->load($this->attributes['sambaMungedDial'][0]); + } + // terminal server login + $return->addElement(new htmlTableExtendedInputCheckbox('tsAllowLogin', $mDial->getTsLogin(), _('Allow terminal server login'), 'tsAllowLogin'), true); + // home directory + $return->addElement(new htmlTableExtendedInputField(_('Home directory'), 'tsHomeDir', $mDial->ctx['CtxWFHomeDir'], 'tsHomeDir'), true); + // home drive + $drives = array(); + for ($i=90; $i>67; $i--) $drives[] = chr($i).':'; + $selTsDrive = array(); + if (isset($mDial->ctx['CtxWFHomeDirDrive'])) { + $selTsDrive = array($mDial->ctx['CtxWFHomeDirDrive']); + } + $return->addElement(new htmlTableExtendedSelect('tsHomeDrive', $drives, $selTsDrive, _('Home drive'), 'homeDrive'), true); + // profile path + $return->addElement(new htmlTableExtendedInputField(_('Profile path'), 'tsProfilePath', $mDial->ctx['CtxWFProfilePath'], 'tsProfilePath'), true); + // use startup program and working dir from client + $return->addElement(new htmlTableExtendedInputCheckbox('tsInherit', $mDial->getInheritMode(), _('Inherit client startup configuration'), 'tsInherit'), true); + // startup program + $return->addElement(new htmlTableExtendedInputField(_('Initial program'), 'tsInitialProgram', $mDial->ctx['CtxInitialProgram'], 'tsInitialProgram'), true); + // working dir + $return->addElement(new htmlTableExtendedInputField(_('Working directory'), 'tsWorkDirectory', $mDial->ctx['CtxWorkDirectory'], 'tsWorkDirectory'), true); + // connection time limit + $tsConnectionLimit = new htmlTableExtendedInputField(_('Connection time limit'), 'tsConnectionLimit', $mDial->ctx['CtxMaxConnectionTime'], 'tsTimeLimit'); + $tsConnectionLimit->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($tsConnectionLimit, true); + // disconnection time limit + $tsDisconnectionLimit = new htmlTableExtendedInputField(_('Disconnection time limit'), 'tsDisconnectionLimit', $mDial->ctx['CtxMaxDisconnectionTime'], 'tsTimeLimit'); + $tsDisconnectionLimit->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($tsDisconnectionLimit, true); + // idle time limit + $tsIdleLimit = new htmlTableExtendedInputField(_('Idle time limit'), 'tsIdleLimit', $mDial->ctx['CtxMaxIdleTime'], 'tsTimeLimit'); + $tsIdleLimit->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($tsIdleLimit, true); + // connect client drives + $return->addElement(new htmlTableExtendedInputCheckbox('tsConnectDrives', $mDial->getConnectClientDrives(), _('Connect client drives'), 'tsConnectDrives'), true); + // connect client printers + $return->addElement(new htmlTableExtendedInputCheckbox('tsConnectPrinters', $mDial->getConnectClientPrinters(), _('Connect client printers'), 'tsConnectPrinters'), true); + // client printer is default + $return->addElement(new htmlTableExtendedInputCheckbox('tsClientPrinterDefault', $mDial->getDefaultPrinter(), _('Client printer is default'), 'tsClientPrinterDefault'), true); + // shadowing + $shadowOptions = array( + _("disabled") => "0", + _("input on, notify on") => "1", + _("input on, notify off") => "2", + _("input off, notify on") => "3", + _("input off, notify off") => "4"); + $selShadow = array($mDial->getShadow()); + $shadowSelect = new htmlTableExtendedSelect('tsShadowing', $shadowOptions, $selShadow, _('Shadowing'), 'tsShadowing'); + $shadowSelect->setHasDescriptiveElements(true); + $return->addElement($shadowSelect, true); + // broken connection + $brokenConnOptions = array( + _("disconnect") => "0", + _("reset") => "1"); + $selbrokenConn = array($mDial->getBrokenConn()); + $brokenConnSelect = new htmlTableExtendedSelect('tsBrokenConn', $brokenConnOptions, $selbrokenConn, _('On broken or timed out connection'), 'tsBrokenConn'); + $brokenConnSelect->setHasDescriptiveElements(true); + $return->addElement($brokenConnSelect, true); + // reconnect + $reconnectOptions = array( + _("from any client") => "0", + _("from previous client only") => "1"); + $selReconnect = array($mDial->getReConn()); + $reconnectSelect = new htmlTableExtendedSelect('tsReconnect', $reconnectOptions, $selReconnect, _('Reconnect if disconnected'), 'tsReconnect'); + $reconnectSelect->setHasDescriptiveElements(true); + $return->addElement($reconnectSelect, true); + // buttons + $return->addElement(new htmlSpacer(null, '10px'), true); + $buttonContainer = new htmlTable(); + $buttonContainer->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'submit', _('Ok'))); + $buttonContainer->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'abort', _('Cancel'))); + $buttonContainer->colspan = 3; + $return->addElement($buttonContainer); + return $return; + } + + /** + * Displays manage profile path page. + * + * @return htmlElement meta HTML code + */ + function display_html_profilePath() { + $return = new htmlTable(); + $return->addElement(new htmlOutputText(_('Profile path'))); + $return->addElement(new htmlSpacer('5px', null)); + $return->addElement(new htmlOutputText($this->attributes['sambaProfilePath'][0]), true); + $return->addElement(new htmlSpacer(null, '10px'), true); + $homeServerContainer = new htmlTable(); + $homeServerContainer->colspan = 5; + // get list of lamdaemon servers + $lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers()); + for ($i = 0; $i < sizeof($lamdaemonServers); $i++) { + $temp = explode(":", $lamdaemonServers[$i]); + $server = $temp[0]; + $label = $temp[0]; + if (isset($temp[1])) { + $label = $temp[1]; + } + $result = lamdaemon( + implode( + self::$SPLIT_DELIMITER, + array( + $this->attributes['uid'][0], + "home", + "check", + $this->attributes['sambaProfilePath'][0]) + ), + $server); + // lamdaemon results + if (is_array($result)) { + $returnValue = trim($result[0]); + if ($returnValue == 'ok') { + $homeServerContainer->addElement(new htmlOutputText($label)); + $homeServerContainer->addElement(new htmlSpacer('5px', null)); + $homeServerContainer->addElement(new htmlImage('../../graphics/pass.png', 16, 16)); + $homeServerContainer->addElement(new htmlSpacer('5px', null)); + $homeServerContainer->addElement(new htmlAccountPageButton(get_class($this), 'homedir', 'delete_' . $i, _('Delete'))); + } + elseif ($returnValue == 'missing') { + $homeServerContainer->addElement(new htmlOutputText($label)); + $homeServerContainer->addElement(new htmlSpacer('5px', null)); + $homeServerContainer->addElement(new htmlImage('../../graphics/fail.png', 16, 16)); + $homeServerContainer->addElement(new htmlSpacer('5px', null)); + $homeServerContainer->addElement(new htmlAccountPageButton(get_class($this), 'homedir', 'create_' . $i, _('Create'))); + } + elseif (trim($returnValue) != '') { + $messageParams = explode(",", $returnValue); + if (isset($messageParams[2])) { + $message = new htmlStatusMessage($messageParams[0], htmlspecialchars($messageParams[1]), htmlspecialchars($messageParams[2])); + } + elseif (($messageParams[0] == 'ERROR') || ($messageParams[0] == 'WARN') || ($messageParams[0] == 'INFO')) { + $message = new htmlStatusMessage($messageParams[0], htmlspecialchars($messageParams[1])); + } + else { + $message = new htmlStatusMessage('WARN', htmlspecialchars($messageParams[0])); + } + $message->colspan = 5; + $homeServerContainer->addElement($message, true); + } + $homeServerContainer->addNewLine(); + } + } + $return->addElement($homeServerContainer, true); + $return->addElement(new htmlSpacer(null, '10px'), true); + $return->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'back', _('Back'))); + return $return; + } + + /** + * Processes user input of the profile path check page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_profilePath() { + $return = array(); + $unixAttrs = $this->getAccountContainer()->getAccountModule('posixAccount')->getAttributes(); + $uidNumber = $unixAttrs['uidNumber'][0]; + $gidNumber = $unixAttrs['gidNumber'][0]; + if (empty($uidNumber) || empty($gidNumber)) { + return; + } + // get list of lamdaemon servers + $lamdaemonServers = explode(";", $_SESSION['config']->get_scriptServers()); + for ($i = 0; $i < sizeof($lamdaemonServers); $i++) { + $temp = explode(":", $lamdaemonServers[$i]); + $server = $temp[0]; + if (isset($_POST['form_subpage_' . get_class($this) . '_homedir_create_' . $i])) { + $result = lamdaemon( + implode( + self::$SPLIT_DELIMITER, + array( + $this->attributes['uid'][0], + "directory", + "add", + $this->attributes['sambaProfilePath'][0], + "0".$_SESSION['config']->get_scriptRights(), + $uidNumber, + $gidNumber) + ), + $server); + // lamdaemon results + if (is_array($result)) { + foreach ($result as $singleresult) { + $singleresult = explode(",", $singleresult); + if (is_array($singleresult)) { + if (($singleresult[0] == 'ERROR') || ($singleresult[0] == 'WARN') || ($singleresult[0] == 'INFO')) { + $return[] = $singleresult; + } + } + } + } + } + elseif (isset($_POST['form_subpage_' . get_class($this) . '_homedir_delete_' . $i])) { + $result = lamdaemon( + implode( + self::$SPLIT_DELIMITER, + array( + $this->attributes['uid'][0], + "home", + "rem", + $this->attributes['sambaProfilePath'][0], + $uidNumber + ) + ), + $server); + // lamdaemon results + if (is_array($result)) { + foreach ($result as $singleresult) { + $singleresult = explode(",", $singleresult); + if (is_array($singleresult)) { + if (($singleresult[0] == 'ERROR') || ($singleresult[0] == 'WARN') || ($singleresult[0] == 'INFO')) { + $return[] = $singleresult; + } + } + } + } + } + } + return $return; + } + + /** + * Returns a list of elements for the account profiles. + * + * @return htmlElement profile elements + */ + function get_profileOptions() { + $return = parent::get_profileOptions(); + if ($this->get_scope() == 'user') { + // lists for expiration date + $day = array(); $mon = array(); $year = array(); + for ( $i=1; $i<=31; $i++ ) $day[] = $i; + for ( $i=1; $i<=12; $i++ ) $mon[] = $i; + for ( $i=2003; $i<=2030; $i++ ) $year[] = $i; + // display name + $return->addElement(new htmlTableExtendedInputField(_('Display name'), 'sambaSamAccount_displayName', '', 'displayName'), true); + // use no password at all + $return->addElement(new htmlTableExtendedInputCheckbox('sambaSamAccount_sambaAcctFlagsN', false, _('Use no password'), 'noPassword'), true); + // account deactivation + $return->addElement(new htmlTableExtendedInputCheckbox('sambaSamAccount_sambaAcctFlagsD', false, _('Account is deactivated'), 'deactivated'), true); + // password never expires + $return->addElement(new htmlTableExtendedInputCheckbox('sambaSamAccount_sambaAcctFlagsX', false, _('Password does not expire'), 'noExpire'), true); + // expiration date + $return->addElement(new htmlOutputText(_('Account expiration date'))); + $expireContainer = new htmlTable(); + $expireContainer->addElement(new htmlSelect('sambaSamAccount_expire_day', $day, array('1'))); + $expireContainer->addElement(new htmlSelect('sambaSamAccount_expire_mon', $mon, array('1'))); + $expireContainer->addElement(new htmlSelect('sambaSamAccount_expire_yea', $year, array('2030'))); + $return->addElement($expireContainer); + $return->addElement(new htmlHelpLink('expireDate'), true); + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideHomeDrive')) { + // letter of home drive + $drives = array('-'); + for ($i = 90; $i > 67; $i--) $drives[] = chr($i) . ':'; + $return->addElement(new htmlTableExtendedSelect('sambaSamAccount_sambaHomeDrive', $drives, array('-'), _('Home drive'), 'homeDrive'), true); + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideHomePath')) { + // path to home directory + $return->addElement(new htmlTableExtendedInputField(_('Home path'), 'sambaSamAccount_smbhome', '', 'homePath'), true); + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideProfilePath')) { + // profile path + $return->addElement(new htmlTableExtendedInputField(_('Profile path'), 'sambaSamAccount_profilePath', '', 'profilePath'), true); + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideLogonScript')) { + // logon script + $return->addElement(new htmlTableExtendedInputField(_('Logon script'), 'sambaSamAccount_logonScript', '', 'scriptPath'), true); + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideWorkstations')) { + // allowed workstations + $return->addElement(new htmlTableExtendedInputField(_('Samba workstations'), 'sambaSamAccount_userWorkstations', '', 'workstations'), true); + } + // domains + $sambaDomains = $this->getDomains(); + $sambaDomainNames = array(); + for ($i = 0; $i < count($sambaDomains); $i++) { + $sambaDomainNames[] = $sambaDomains[$i]->name; + } + $return->addElement(new htmlTableExtendedSelect('sambaSamAccount_sambaDomainName', $sambaDomainNames, null, _('Domain'), 'domain'), true); + // Windows group + $groups = array(); + foreach ($this->groupRids as $key => $value) { + $groups[$key] = $value; + } + $groups["-"] = "-"; + $groupSelect = new htmlTableExtendedSelect('sambaSamAccount_group', $groups, array('513'), _('Windows group'), 'group'); + $groupSelect->setHasDescriptiveElements(true); + $return->addElement($groupSelect, true); + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideLogonHours')) { + // logon hours + $return->addElement(new htmlTableExtendedInputField(_('Logon hours'), 'sambaSamAccount_logonHours', '', 'logonHoursUpload'), true); + } + } + elseif ($this->get_scope() == 'host') { + // domains + $sambaDomains = $this->getDomains(); + $sambaDomainNames = array(); + for ($i = 0; $i < count($sambaDomains); $i++) { + $sambaDomainNames[] = $sambaDomains[$i]->name; + } + $return->addElement(new htmlTableExtendedSelect('sambaSamAccount_sambaDomainName', $sambaDomainNames, null, _('Domain'), 'domain'), true); + } + return $return; + } + + /** + * Loads the values of an account profile into internal variables. + * + * @param array $profile hash array with profile values (identifier => value) + */ + function load_profile($profile) { + // profile mappings in meta data + parent::load_profile($profile); + // add extension + if (isset($profile['sambaSamAccount_addExt'][0]) && ($profile['sambaSamAccount_addExt'][0] == "true")) { + if (!in_array('sambaSamAccount', $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = 'sambaSamAccount'; + } + } + // use no password + if (isset($profile['sambaSamAccount_sambaAcctFlagsN'][0]) && ($profile['sambaSamAccount_sambaAcctFlagsN'][0] == "true")) { + $this->nopwd = true; + } + elseif (isset($profile['sambaSamAccount_sambaAcctFlagsN'][0]) && ($profile['sambaSamAccount_sambaAcctFlagsN'][0] == "false")) { + $this->nopwd = false; + } + // password expiration + if (isset($profile['sambaSamAccount_sambaAcctFlagsX'][0]) && ($profile['sambaSamAccount_sambaAcctFlagsX'][0] == "true")) { + $this->noexpire = true; + } + elseif (isset($profile['sambaSamAccount_sambaAcctFlagsX'][0]) && ($profile['sambaSamAccount_sambaAcctFlagsX'][0] == "false")) { + $this->noexpire = false; + } + // use no password + if (isset($profile['sambaSamAccount_sambaAcctFlagsD'][0]) && ($profile['sambaSamAccount_sambaAcctFlagsD'][0] == "true")) { + $this->deactivated = true; + } + elseif (isset($profile['sambaSamAccount_sambaAcctFlagsD'][0]) && ($profile['sambaSamAccount_sambaAcctFlagsD'][0] == "false")) { + $this->deactivated = false; + } + if (!$this->isBooleanConfigOptionSet('sambaSamAccount_hideHomeDrive')) { + // home drive + if (isset($profile['sambaSamAccount_sambaHomeDrive'][0]) && ($profile['sambaSamAccount_sambaHomeDrive'][0] == "-")) { + $this->attributes['sambaHomeDrive'][0] = ''; + } + elseif (isset($profile['sambaSamAccount_sambaHomeDrive'][0])) { + $this->attributes['sambaHomeDrive'][0] = $profile['sambaSamAccount_sambaHomeDrive'][0]; + } + } + // expiration date + if (isset($profile['sambaSamAccount_expire_day'][0]) && ($profile['sambaSamAccount_expire_day'][0] != "")) { + $date = mktime(0, 0, 0, intval($profile['sambaSamAccount_expire_mon'][0]), + intval($profile['sambaSamAccount_expire_day'][0]), intval($profile['sambaSamAccount_expire_yea'][0])); + $this->attributes['sambaKickoffTime'][0] = $date; + } + // domain -> change SID + if (isset($this->attributes['sambaSID'][0])) { + if (isset($profile['sambaSamAccount_sambaDomainName'][0]) && ($profile['sambaSamAccount_sambaDomainName'][0] != "")) { + $domains = $this->getDomains(); + $domSID = ''; + // find domain SID + for ($i = 0; $i < sizeof($domains); $i++) { + if ($domains[$i]->name == $profile['sambaSamAccount_sambaDomainName'][0]) { + $domSID = $domains[$i]->SID; + break; + } + } + // replace domain part of SID + if ($domSID != '') { + $SID = $this->attributes['sambaSID'][0]; + $rid = substr($SID, strrpos($SID, '-') + 1); + $SID = $domSID . '-' . $rid; + $this->attributes['sambaSID'][0] = $SID; + } + } + } + // primary group + if (isset($profile['sambaSamAccount_sambaDomainName'][0])) { + $domains = $this->getDomains(); + $domSID = ''; + // find domain SID + for ($i = 0; $i < sizeof($domains); $i++) { + if ($domains[$i]->name == $profile['sambaSamAccount_sambaDomainName'][0]) { + $domSID = $domains[$i]->SID; + break; + } + } + if ($domSID != '') { + // set primary group if selected + if (isset($profile['sambaSamAccount_group'][0]) && ($profile['sambaSamAccount_group'][0] != "-")) { + $this->attributes['sambaPrimaryGroupSID'][0] = $domSID . "-" . $profile['sambaSamAccount_group'][0]; + } + } + } + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'displayName', _('Display name')); + $this->addSimplePDFField($return, 'sambaHomePath', _('Home path')); + $this->addSimplePDFField($return, 'sambaHomeDrive', _('Home drive')); + $this->addSimplePDFField($return, 'sambaLogonScript', _('Logon script')); + $this->addSimplePDFField($return, 'sambaProfilePath', _('Profile path')); + $this->addSimplePDFField($return, 'sambaUserWorkstations', _('Samba workstations')); + $this->addSimplePDFField($return, 'sambaDomainName', _('Domain')); + $this->addSimplePDFField($return, 'sambaPrimaryGroupSID', _('Windows group')); + // terminal server options + if (isset($this->attributes['sambaMungedDial'][0])) { + $mDial = new sambaMungedDial(); + $mDial->load($this->attributes['sambaMungedDial'][0]); + $tsAllowLogin = _('yes'); + if (!$mDial->getTsLogin()) { + $tsAllowLogin = _('no'); + } + $return['sambaSamAccount_tsAllowLogin'] = array('' . _('Allow terminal server login') . '' . $tsAllowLogin . ''); + $return['sambaSamAccount_tsHomeDir'] = array('' . _('Home directory') . ' (TS)' . $mDial->ctx['CtxWFHomeDir'] . ''); + $return['sambaSamAccount_tsHomeDrive'] = array('' . _('Home drive') . ' (TS)' . $mDial->ctx['CtxWFHomeDirDrive'] . ''); + $return['sambaSamAccount_tsProfilePath'] = array('' . _('Profile path') . ' (TS)' . $mDial->ctx['CtxWFProfilePath'] . ''); + $tsInherit = _('yes'); + if (!$mDial->getInheritMode()) { + $tsInherit = _('no'); + } + $return['sambaSamAccount_tsInherit'] = array('' . _('Inherit client startup configuration') . ' (TS)' . $tsInherit . ''); + $return['sambaSamAccount_tsInitialProgram'] = array('' . _('Initial program') . ' (TS)' . $mDial->ctx['CtxInitialProgram'] . ''); + $return['sambaSamAccount_tsWorkDirectory'] = array('' . _('Working directory') . ' (TS)' . $mDial->ctx['CtxWorkDirectory'] . ''); + $return['sambaSamAccount_tsConnectionLimit'] = array('' . _('Connection time limit') . ' (TS)' . $mDial->ctx['CtxMaxConnectionTime'] . ''); + $return['sambaSamAccount_tsDisconnectionLimit'] = array('' . _('Disconnection time limit') . ' (TS)' . $mDial->ctx['CtxMaxDisconnectionTime'] . ''); + $return['sambaSamAccount_tsIdleLimit'] = array('' . _('Idle time limit') . ' (TS)' . $mDial->ctx['CtxMaxIdleTime'] . ''); + $tsConnectDrives = _('yes'); + if (!$mDial->getConnectClientDrives()) { + $tsConnectDrives = _('no'); + } + $return['sambaSamAccount_tsConnectDrives'] = array('' . _('Connect client drives') . ' (TS)' . $tsConnectDrives . ''); + $tsConnectPrinters = _('yes'); + if (!$mDial->getConnectClientPrinters()) { + $tsConnectPrinters = _('no'); + } + $return['sambaSamAccount_tsConnectPrinters'] = array('' . _('Connect client printers') . ' (TS)' . $tsConnectPrinters . ''); + $tsClientPrinterDefault = _('yes'); + if (!$mDial->getDefaultPrinter()) { + $tsClientPrinterDefault = _('no'); + } + $return['sambaSamAccount_tsClientPrinterDefault'] = array('' . _('Client printer is default') . ' (TS)' . $tsClientPrinterDefault . ''); + $shadowOptions = array( + '0' => _("disabled"), + '1' => _("input on, notify on"), + '2' => _("input on, notify off"), + '3' => _("input off, notify on"), + '4' => _("input off, notify off")); + $tsShadowing = ''; + if (($mDial->getShadow() != null) && is_numeric($mDial->getShadow())) { + $tsShadowing = $shadowOptions[$mDial->getShadow()]; + } + $return['sambaSamAccount_tsShadowing'] = array('' . _('Shadowing') . ' (TS)' . $tsShadowing . ''); + $brokenConnOptions = array( + '0' => _("disconnect"), + '1' => _("reset")); + $tsBrokenConn = ''; + if (($mDial->getBrokenConn() != null) && is_numeric($mDial->getBrokenConn())) { + $tsBrokenConn = $brokenConnOptions[$mDial->getBrokenConn()]; + } + $return['sambaSamAccount_tsBrokenConn'] = array('' . _('On broken or timed out connection') . ' (TS)' . $tsBrokenConn . ''); + $reconnectOptions = array( + '0' => _("from any client"), + '1' => _("from previous client only")); + $tsReconnect = ''; + if (($mDial->getReConn() != null) && is_numeric($mDial->getReConn())) { + $tsReconnect = $reconnectOptions[$mDial->getReConn()]; + } + $return['sambaSamAccount_tsReconnect'] = array('' . _('Reconnect if disconnected') . ' (TS)' . $tsReconnect . ''); + } + return $return; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $errors = array(); + // get list of Samba 3 domains + $domains = $this->getDomains(); + // get list of Unix groups and their sambaSID + gidNumber + $groupList = searchLDAPByFilter('objectClass=posixGroup', array('cn', 'sambaSID', 'gidNumber'), array('group')); + $groups_cn = array(); + for ($i = 0; $i < sizeof($groupList); $i++) { + if (isset($groupList[$i]['sambasid'][0])) { + $groups_cn[$groupList[$i]['cn'][0]]['SID'] = $groupList[$i]['sambasid'][0]; + } + if (isset($groupList[$i]['gidnumber'][0])) { + $groups_cn[$groupList[$i]['cn'][0]]['gid'] = $groupList[$i]['gidnumber'][0]; + } + } + if ($this->get_scope() == 'user') { + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + if (!in_array("sambaSamAccount", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "sambaSamAccount"; + // displayName + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'sambaSamAccount_displayName', 'displayName', + 'realname', $this->messages['displayName'][0], $errors); + // password + $partialAccounts[$i]['sambaPwdLastSet'] = time(); + if (!get_preg($rawAccounts[$i][$ids['sambaSamAccount_password']], 'password')) { + $errMsg = $this->messages['sambaLMPassword'][2]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + // use Unix password + if ($rawAccounts[$i][$ids['sambaSamAccount_pwdUnix']] == "") { // default: use Unix + if (isset($this->moduleSettings['sambaSamAccount_lmHash'][0]) && ($this->moduleSettings['sambaSamAccount_lmHash'][0] == 'no')) { + $partialAccounts[$i]['sambaLMPassword'] = lmPassword($rawAccounts[$i][$ids['posixAccount_password']]); + } + $partialAccounts[$i]['sambaNTPassword'] = ntPassword($rawAccounts[$i][$ids['posixAccount_password']]); + } + elseif (in_array($rawAccounts[$i][$ids['sambaSamAccount_pwdUnix']], array('true', 'false'))) { + if ($rawAccounts[$i][$ids['sambaSamAccount_pwdUnix']] == 'true') { // use Unix + if (isset($this->moduleSettings['sambaSamAccount_lmHash'][0]) && ($this->moduleSettings['sambaSamAccount_lmHash'][0] == 'no')) { + $partialAccounts[$i]['sambaLMPassword'] = lmPassword($rawAccounts[$i][$ids['posixAccount_password']]); + } + $partialAccounts[$i]['sambaNTPassword'] = ntPassword($rawAccounts[$i][$ids['posixAccount_password']]); + } + else { // use given password + if (isset($this->moduleSettings['sambaSamAccount_lmHash'][0]) && ($this->moduleSettings['sambaSamAccount_lmHash'][0] == 'no')) { + $partialAccounts[$i]['sambaLMPassword'] = lmPassword($rawAccounts[$i][$ids['sambaSamAccount_password']]); + } + $partialAccounts[$i]['sambaNTPassword'] = ntPassword($rawAccounts[$i][$ids['sambaSamAccount_password']]); + } + } + else { + $errMsg = $this->messages['pwdUnix'][0]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + // use no password + if ($rawAccounts[$i][$ids['sambaSamAccount_noPassword']] != "") { + if (in_array($rawAccounts[$i][$ids['sambaSamAccount_noPassword']], array('true', 'false'))) { + if ($rawAccounts[$i][$ids['sambaSamAccount_noPassword']] == 'true') { + $partialAccounts[$i]['sambaLMPassword'] = 'NO PASSWORD*****'; + $partialAccounts[$i]['sambaNTPassword'] = 'NO PASSWORD*****'; + } + } + else { + $errMsg = $this->messages['noPassword'][0]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + // account flags + $flag_expire = false; + $flag_deactivated = false; + // password does not expire + if ($rawAccounts[$i][$ids['sambaSamAccount_noExpire']] != "") { + if (in_array($rawAccounts[$i][$ids['sambaSamAccount_noExpire']], array('true', 'false'))) { + if ($rawAccounts[$i][$ids['sambaSamAccount_noExpire']] == 'false') { + $flag_expire = true; + } + } + else { + $errMsg = $this->messages['noExpire'][0]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + // account is deactivated + if ($rawAccounts[$i][$ids['sambaSamAccount_deactivated']] != "") { + if (in_array($rawAccounts[$i][$ids['sambaSamAccount_deactivated']], array('true', 'false'))) { + if ($rawAccounts[$i][$ids['sambaSamAccount_deactivated']] == 'true') { + $flag_deactivated = true; + } + } + else { + $errMsg = $this->messages['deactivated'][0]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + // set flags + $flags = "["; + if ($flag_deactivated) $flags = $flags . "D"; + if (!$flag_expire) $flags = $flags . "X"; + $flags = $flags . "U"; + // Expand string to fixed length + $flags = str_pad($flags, 12); + // End character + $flags = $flags . "]"; + $partialAccounts[$i]['sambaAcctFlags'] = $flags; + // expiration date + if ($rawAccounts[$i][$ids['sambaSamAccount_expireDate']] != "") { + if (get_preg($rawAccounts[$i][$ids['sambaSamAccount_expireDate']], 'date')) { + $parts = explode("-", $rawAccounts[$i][$ids['sambaSamAccount_expireDate']]); + $time = mktime(0, 0, 0, intval($parts[1]), intval($parts[0]), intval($parts[2])); + $partialAccounts[$i]['sambaKickoffTime'] = $time; + } + else { + $errMsg = $this->messages['expireDate'][0]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + // home drive + if ($rawAccounts[$i][$ids['sambaSamAccount_homeDrive']] != "") { + if (preg_match("/[d-z]:/i", $rawAccounts[$i][$ids['sambaSamAccount_homeDrive']])) { + $partialAccounts[$i]['sambaHomeDrive'] = $rawAccounts[$i][$ids['sambaSamAccount_homeDrive']]; + } + else { + $errMsg = $this->messages['homeDrive'][0]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + // home path + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'sambaSamAccount_homePath', 'sambaHomePath', + 'UNC', $this->messages['homePath'][2], $errors); + // profile path + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'sambaSamAccount_profilePath', 'sambaProfilePath', + 'UNC', $this->messages['profilePath'][2], $errors); + // logon script + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'sambaSamAccount_logonScript', 'sambaLogonScript', + 'logonscript', $this->messages['logonScript'][2], $errors); + // workstations + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'sambaSamAccount_workstations', 'sambaUserWorkstations', + 'workstations', $this->messages['workstations'][1], $errors); + // domain + $domIndex = -1; + for ($d = 0; $d < sizeof($domains); $d++) { + if ($domains[$d]->name == $rawAccounts[$i][$ids['sambaSamAccount_domain']]) { + $domIndex = $d; + break; + } + } + if ($domIndex > -1) { + $partialAccounts[$i]['sambaDomainName'] = $domains[$domIndex]->name; + $partialAccounts[$i]['sambaSID'] = $domains[$domIndex]->SID; + } + else { + $errMsg = $this->messages['domain'][0]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + // group + if ($rawAccounts[$i][$ids['sambaSamAccount_group']] != "") { + if (get_preg($rawAccounts[$i][$ids['sambaSamAccount_group']], 'groupname') + && (isset($groups_cn[$rawAccounts[$i][$ids['sambaSamAccount_group']]]))) { + if (isset($groups_cn[$rawAccounts[$i][$ids['sambaSamAccount_group']]]['SID'])) { + $partialAccounts[$i]['sambaPrimaryGroupSID'] = $groups_cn[$rawAccounts[$i][$ids['sambaSamAccount_group']]]['SID']; + } + else { + $partialAccounts[$i]['sambaPrimaryGroupSID'] = $domains[$domIndex]->SID . '-' . + ($groups_cn[$rawAccounts[$i][$ids['sambaSamAccount_group']]]['gid'] * 2 + + $domains[$domIndex]->RIDbase + 1); + } + } + elseif (in_array($rawAccounts[$i][$ids['sambaSamAccount_group']], array_keys($this->groupRids))) { + $partialAccounts[$i]['sambaPrimaryGroupSID'] = $domains[$domIndex]->SID . '-' . $this->groupRids[$rawAccounts[$i][$ids['sambaSamAccount_group']]]; + } + else { + $errMsg = $this->messages['group'][0]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + else { + // default domain users + $partialAccounts[$i]['sambaPrimaryGroupSID'] = $domains[$domIndex]->SID . '-' . $this->groupRids[_('Domain users')]; + } + // special user + if ($rawAccounts[$i][$ids['sambaSamAccount_rid']] != "") { + if (in_array($rawAccounts[$i][$ids['sambaSamAccount_rid']], array_keys($this->userRids))) { + $partialAccounts[$i]['sambaSID'] .= '-' . $this->userRids[$rawAccounts[$i][$ids['sambaSamAccount_rid']]]; + } + elseif (get_preg($rawAccounts[$i][$ids['sambaSamAccount_rid']], 'digit')) { + $partialAccounts[$i]['sambaSID'] .= '-' . $rawAccounts[$i][$ids['sambaSamAccount_rid']]; + } + else { + $errMsg = $this->messages['rid'][2]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + else { + // default RID uid*2 + RIDBase + $partialAccounts[$i]['sambaSID'] .= '-' . ($partialAccounts[$i]['uidNumber']*2 + $domains[$domIndex]->RIDbase); + } + // logon hours + $partialAccounts[$i]['sambaLogonHours'] = "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"; + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'sambaSamAccount_logonHours', 'sambaLogonHours', + 'sambaLogonHours', $this->messages['logonHours'][1], $errors); + } + } + else { // hosts + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + if (!in_array("sambaSamAccount", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "sambaSamAccount"; + // domain + $domIndex = -1; + for ($d = 0; $d < sizeof($domains); $d++) { + if ($domains[$d]->name == $rawAccounts[$i][$ids['sambaSamAccount_domain']]) { + $domIndex = $d; + break; + } + } + if ($domIndex > -1) { + $partialAccounts[$i]['sambaDomainName'] = $domains[$domIndex]->name; + $partialAccounts[$i]['sambaSID'] = $domains[$domIndex]->SID; + $partialAccounts[$i]['sambaPrimaryGroupSID'] = $domains[$domIndex]->SID . " - 515"; + } + else { + $errMsg = $this->messages['domain'][0]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + // RID + if ($rawAccounts[$i][$ids['sambaSamAccount_rid']] != "") { + if (get_preg($rawAccounts[$i][$ids['sambaSamAccount_rid']], 'digit')) { + $partialAccounts[$i]['sambaSID'] .= '-' . $rawAccounts[$i][$ids['sambaSamAccount_rid']]; + } + else { + $errMsg = $this->messages['rid'][3]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + else { + // default RID uid*2 + RIDBase + $partialAccounts[$i]['sambaSID'] .= '-' . ($partialAccounts[$i]['uidNumber']*2 + $domains[$domIndex]->RIDbase); + } + // passwords ( = host name) + $partialAccounts[$i]['sambaPwdLastSet'] = time(); + if (isset($this->moduleSettings['sambaSamAccount_lmHash'][0]) && ($this->moduleSettings['sambaSamAccount_lmHash'][0] == 'no')) { + $partialAccounts[$i]['sambaLMPassword'] = lmPassword(substr($partialAccounts[$i]['uid'], 0, sizeof($partialAccounts[$i]['uid']) - 1)); + } + $partialAccounts[$i]['sambaNTPassword'] = ntPassword(substr($partialAccounts[$i]['uid'], 0, sizeof($partialAccounts[$i]['uid']) - 1)); + // flags + $partialAccounts[$i]['sambaAcctFlags'] = "[W ]"; + } + } + return $errors; + } + + /** + * Returns the meta HTML code for each input field. + * format: array( => array(), ...) + * It is not possible to display help links. + * + * @param array $fields list of active fields + * @param array $attributes attributes of LDAP account + * @param boolean $passwordChangeOnly indicates that the user is only allowed to change his password and no LDAP content is readable + * @param array $readOnlyFields list of read-only fields + * @return array list of meta HTML elements (field name => htmlTableRow) + */ + function getSelfServiceOptions($fields, $attributes, $passwordChangeOnly, $readOnlyFields) { + $return = array(); + if ($passwordChangeOnly) { + return $return; // no input fields as long no LDAP content can be read + } + if (!isset($attributes['objectClass']) || !in_array_ignore_case('sambaSamAccount', $attributes['objectClass'])) { + return $return; + } + if (in_array('password', $fields)) { + $pwdTable = new htmlTable(); + $pwdTable->colspan = 3; + $pwd1 = new htmlTableExtendedInputField($this->getSelfServiceLabel('password', _('New password')), 'sambaSamAccount_password'); + $pwd1->setIsPassword(true, true); + $pwdTable->addElement($pwd1, true); + $pwd2 = new htmlTableExtendedInputField(_('Reenter password'), 'sambaSamAccount_password2'); + $pwd2->setIsPassword(true); + $pwd2->setSameValueFieldID('sambaSamAccount_password'); + $pwdTable->addElement($pwd2); + $return['password'] = new htmlTableRow(array( + $pwdTable + )); + } + if (in_array('sambaPwdLastSet', $fields)) { + $sambaPwdLastSet = ''; + if (isset($attributes['sambaPwdLastSet'][0])) { + $sambaPwdLastSet = date('d.m.Y H:i', $attributes['sambaPwdLastSet'][0]); + } + $return['sambaPwdLastSet'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('sambaPwdLastSet', _('Last password change'))), new htmlOutputText($sambaPwdLastSet) + )); + } + return $return; + } + + /** + * Checks if all input values are correct and returns the LDAP attributes which should be changed. + *
    Return values: + *
    messages: array of parameters to create status messages + *
    add: array of attributes to add + *
    del: array of attributes to remove + *
    mod: array of attributes to modify + *
    info: array of values with informational value (e.g. to be used later by pre/postModify actions) + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}. + * + * @param string $fields input fields + * @param array $attributes LDAP attributes + * @param boolean $passwordChangeOnly indicates that the user is only allowed to change his password and no LDAP content is readable + * @param array $readOnlyFields list of read-only fields + * @return array messages and attributes (array('messages' => array(), 'add' => array('mail' => array('test@test.com')), 'del' => array(), 'mod' => array(), 'info' => array())) + */ + function checkSelfServiceOptions($fields, $attributes, $passwordChangeOnly, $readOnlyFields) { + $return = array('messages' => array(), 'add' => array(), 'del' => array(), 'mod' => array(), 'info' => array()); + if (!isset($attributes['objectClass']) || !in_array_ignore_case('sambaSamAccount', $attributes['objectClass'])) { + return $return; + } + if (in_array('password', $fields)) { + if (isset($_POST['sambaSamAccount_password']) && ($_POST['sambaSamAccount_password'] != '')) { + if ($_POST['sambaSamAccount_password'] != $_POST['sambaSamAccount_password2']) { + $return['messages'][] = $this->messages['sambaLMPassword'][0]; + } + else { + if (!get_preg($_POST['sambaSamAccount_password'], 'password')) { + $return['messages'][] = $this->messages['sambaLMPassword'][1]; + } + else { + $userName = empty($attributes['uid'][0]) ? null : $attributes['uid'][0]; + $additionalAttrs = array(); + if (!empty($attributes['sn'][0])) { + $additionalAttrs[] = $attributes['sn'][0]; + } + if (!empty($attributes['givenName'][0])) { + $additionalAttrs[] = $attributes['givenName'][0]; + } + $pwdPolicyResult = checkPasswordStrength($_POST['sambaSamAccount_password'], $userName, $additionalAttrs); + if ($pwdPolicyResult === true) { + $return['mod']['sambaNTPassword'][0] = ntPassword($_POST['sambaSamAccount_password']); + if (array_key_exists('sambaLMPassword', $attributes)) { + $return['mod']['sambaLMPassword'][0] = lmPassword($_POST['sambaSamAccount_password']); + } + if (array_key_exists('sambaPwdLastSet', $attributes)) { + $return['mod']['sambaPwdLastSet'][0] = time(); + } + } + else { + $return['messages'][] = array('ERROR', $pwdPolicyResult); + } + } + } + } + } + if (isset($_POST['posixAccount_password']) && ($_POST['posixAccount_password'] != '')) { + if ($_POST['posixAccount_password'] != $_POST['posixAccount_password2']) { + return $return; + } + else { + if (!get_preg($_POST['posixAccount_password'], 'password')) { + return $return; + } + else { + $setPassword = false; + // sync password + if (in_array('syncNTPassword', $fields)) { + $return['mod']['sambaNTPassword'][0] = ntPassword($_POST['posixAccount_password']); + $setPassword = true; + } + if (in_array('syncLMPassword', $fields)) { + $return['mod']['sambaLMPassword'][0] = lmPassword($_POST['posixAccount_password']); + $setPassword = true; + } + if ($setPassword) { + if (in_array('syncSambaPwdLastSet', $fields)) { + $return['mod']['sambaPwdLastSet'][0] = time(); + } + } + } + } + } + return $return; + } + + /** + * This method specifies if a module manages password attributes. + * @see passwordService::managesPasswordAttributes + * + * @return boolean true if this module manages password attributes + */ + public function managesPasswordAttributes() { + if ($this->get_scope() == "user") { + return true; + } + } + + /** + * Specifies if this module supports to force that a user must change his password on next login. + * + * @return boolean force password change supported + */ + public function supportsForcePasswordChange() { + return true; + } + + /** + * This function is called whenever the password should be changed. Account modules + * must change their password attributes only if the modules list contains their module name. + * + * @param String $password new password + * @param $modules list of modules for which the password should be changed + * @param boolean $forcePasswordChange force the user to change his password at next login + * @return array list of error messages if any as parameter array for StatusMessage + * e.g. return arrray(array('ERROR', 'Password change failed.')) + * @see passwordService::passwordChangeRequested + */ + public function passwordChangeRequested($password, $modules, $forcePasswordChange) { + if (!in_array(get_class($this), $modules)) { + return array(); + } + if (isset($this->moduleSettings['sambaSamAccount_lmHash'][0]) && ($this->moduleSettings['sambaSamAccount_lmHash'][0] == 'no')) { + $this->attributes['sambaLMPassword'][0] = lmPassword($password); + } + $this->attributes['sambaNTPassword'][0] = ntPassword($password); + $this->attributes['sambaPwdLastSet'][0] = time(); + if ($forcePasswordChange) { + $this->attributes['sambaPwdLastSet'][0] = '0'; + } + return array(); + } + + /** + * Returns the group name of the group with the given group ID. + * + * @param String $groupID group ID + * @return String group name + */ + private function getGroupName($groupID) { + $results = searchLDAPByAttribute('gidNumber', $groupID, 'posixGroup', array('cn'), array('group')); + if ((sizeof($results) > 0) && isset($results[0]['cn'][0])) { + return $results[0]['cn'][0]; + } + return null; + } + + /** + * Returns the time when the user needs to change his password. + * + * @param array $domains list of domain objects + * @param String $selectedDomain selected domain name + */ + private function getPasswordMustChangeTime($domains, $selectedDomain) { + if (is_array($selectedDomain) && (sizeof($selectedDomain) > 0)) { + $selectedDomain = $selectedDomain[0]; + } + $return = '     -      '; + // check if password expires at all + if ($this->noexpire) { + return $return; + } + // check if there is a time set for the last password change + if (!isset($this->attributes['sambaPwdLastSet'][0])) { + return $return; + } + for ($i = 0; $i < sizeof($domains); $i++) { + if ($domains[$i]->name == $selectedDomain) { + // check if a domain policy is set + if (!isset($domains[$i]->maxPwdAge) || ($domains[$i]->maxPwdAge < 0)) { + return $return; + } + $time = $this->attributes['sambaPwdLastSet'][0] + $domains[$i]->maxPwdAge; + return date('d.m.Y H:i', $time); + } + } + return $return; + } + + /** + * Returns the time when the user can change his password. + * + * @param array $domains list of domain objects + * @param String $selectedDomain selected domain name + */ + private function getPasswordCanChangeTime($domains, $selectedDomain) { + if (is_array($selectedDomain) && (sizeof($selectedDomain) > 0)) { + $selectedDomain = $selectedDomain[0]; + } + $return = '     -      '; + // check if there is a time set for the last password change + if (!isset($this->attributes['sambaPwdLastSet'][0])) { + return $return; + } + for ($i = 0; $i < sizeof($domains); $i++) { + if ($domains[$i]->name == $selectedDomain) { + // check if a domain policy is set + if (!isset($domains[$i]->minPwdAge) || ($domains[$i]->minPwdAge < 0)) { + return $return; + } + $time = $this->attributes['sambaPwdLastSet'][0] + $domains[$i]->minPwdAge; + return date('d.m.Y H:i', $time); + } + } + return $return; + } + + /** + * Returns a list of existing hosts. + * + * @return array host names + */ + private function getHostList() { + if ($this->cachedHostList != null) { + return $this->cachedHostList; + } + $this->cachedHostList = searchLDAPByAttribute('uid', '*', 'sambaSamAccount', array('uid'), array('host')); + for ($i = 0; $i < sizeof($this->cachedHostList); $i++) { + $this->cachedHostList[$i] = $this->cachedHostList[$i]['uid'][0]; + } + return $this->cachedHostList; + } + + /** + * Returns a list of existing hosts. + * + * @return array host names + */ + private function getGroupSIDList() { + if ($this->cachedGroupSIDList != null) { + return $this->cachedGroupSIDList; + } + $this->cachedGroupSIDList = array(); + $result = searchLDAPByAttribute('sambaSID', '*', 'sambaGroupMapping', array('gidNumber', 'sambaSID'), array('group')); + for ($i = 0; $i < sizeof($result); $i++) { + if (isset($result[$i]['gidnumber'][0])) { + $this->cachedGroupSIDList[$result[$i]['gidnumber'][0]] = $result[$i]['sambasid'][0]; + } + } + return $this->cachedGroupSIDList; + } + + /** + * Returns a list of existing Samba 3 domains. + * + * @return array list of samba3domain objects + */ + private function getDomains() { + if ($this->cachedDomainList != null) { + return $this->cachedDomainList; + } + $this->cachedDomainList = search_domains(); + return $this->cachedDomainList; + } + + /** + * Sets the expiration date of this account. + * If all parameters are null the expiration date will be removed. + * + * @param String $year year (e.g. 2040) + * @param String $month month (e.g. 8) + * @param String $day day (e.g. 27) + */ + public function setExpirationDate($year, $month, $day) { + if (($year == null) && ($month == null) && ($day == null)) { + unset($this->attributes['sambaKickoffTime']); + return; + } + $this->attributes['sambaKickoffTime'][0] = gmmktime(0, 0, 0, intval($month), intval($day), + intval($year)); + } + + /** + * Returns if the Samba extension is enabled. + * + * @return boolean Samba extension is active + */ + public function isExtensionEnabled() { + return in_array('sambaSamAccount', $this->attributes['objectClass']); + } + + /** + * Returns if the Samba part of the current account is deactivated. + * + * @return boolean account is locked + */ + public function isDeactivated() { + return $this->deactivated; + } + + /** + * Deactivates this account. + */ + public function deactivate() { + $this->deactivated = true; + $flags = $this->attributes['sambaAcctFlags'][0]; + if (strpos($flags, 'D') === false) { + $flags[strpos($flags, ' ')] = 'D'; + } + $this->attributes['sambaAcctFlags'][0] = $flags; + } + + /** + * Activates this account. + */ + public function activate() { + $this->deactivated = false; + $this->attributes['sambaAcctFlags'][0] = str_replace('D', '', $this->attributes['sambaAcctFlags'][0]); + $this->attributes['sambaAcctFlags'][0] = str_replace(']', ' ]', $this->attributes['sambaAcctFlags'][0]); + } + +} + +?> diff --git a/lam/lib/modules/sambaSamAccount/sambaMungedDial.inc b/lam/lib/modules/sambaSamAccount/sambaMungedDial.inc new file mode 100644 index 00000000..cdc2ba9f --- /dev/null +++ b/lam/lib/modules/sambaSamAccount/sambaMungedDial.inc @@ -0,0 +1,612 @@ + '551e0bb0', + 'CtxCfgFlags1' => '00e00010', + 'CtxCallback' => '', + 'CtxShadow' => '01000000', + 'CtxMaxConnectionTime' => '', + 'CtxMaxDisconnectionTime' => '', + 'CtxMaxIdleTime' => '', + 'CtxKeyboardLayout' => '', + 'CtxMinEncryptionLevel' => '00', + 'CtxWorkDirectory' => '', + 'CtxNWLogonServer' => '', + 'CtxWFHomeDir' => '', + 'CtxWFHomeDirDrive' => '', + 'CtxWFProfilePath' => '', + 'CtxInitialProgram' => '', + 'CtxCallbackNumber' => ''); + + /* attribute list for save action */ + public $ctxattributes= array("CtxCfgPresent", "CtxCfgFlags1", "CtxCallback", + "CtxShadow", "CtxMaxConnectionTime", "CtxMaxDisconnectionTime", + "CtxMaxIdleTime", "CtxKeyboardLayout", "CtxMinEncryptionLevel", + "CtxWorkDirectory", "CtxNWLogonServer", "CtxWFHomeDir", + "CtxWFHomeDirDrive", "CtxWFProfilePath", "CtxInitialProgram", + "CtxCallbackNumber"); + + /* These parameters are treated as strings and get a trailing zero */ + private $stringParams= array( "CtxWorkDirectory", "CtxNWLogonServer", + "CtxWFHomeDir", "CtxWFHomeDirDrive", + "CtxWFProfilePath", "CtxInitialProgram", "CtxCallbackNumber"); + + /* These parameters are treated as time values and get converted */ + private $timeParams= array("CtxMaxConnectionTime", "CtxMaxDisconnectionTime", "CtxMaxIdleTime"); + + private $old_behavior= false; + + /** strhex */ + function strhex($string) + { + $hex=""; + + for ($i=0; $i> 16); + return (sambaMungedDial::endian(substr($src, 0, 4)).sambaMungedDial::endian(substr($src, 4, 4))); + } + + /** readTime */ + function readTime ($time) + { + $lo= substr($time, 0, 4); + $hi= substr($time, 4, 4); + + $usecs= (hexdec(substr($lo, 2, 2)) * 256 + hexdec(substr($lo, 0, 2))) + + (hexdec(substr($hi, 2 ,2)) * 256 + hexdec(substr($hi, 0, 2))) * 256 * 256; + + return ((int)($usecs / (60 * 1000))); + } + + /** to8bit */ + function to8bit($string) + { + $result= ""; + + /* Strip zeros */ + for ($i= 0; $i $paramValue) { + /* String parameter? */ + if (in_array($paramName, $this->stringParams)){ + $isString= TRUE; + $paramValue= sambaMungedDial::strhex($paramValue.chr(0).chr(0)); + } else { + $isString= FALSE; + } + + /* Time parameter? */ + if (in_array($paramName, $this->timeParams)){ + $paramValue= sambaMungedDial::genTime($paramValue); + } + + $result_tmp.= sambaMungedDial::munge($paramName, $paramValue, $isString); + $counter++; + } + + // First add the number of attributes + $result.= sambaMungedDial::hexstr(sprintf("%02x00", $counter)); + + // Then the usual stuff + $result.= $result_tmp; + + return ($result); + } + + /** Setup parameter given by paramName to MungedDial-Format */ + function munge($paramName, $paramValue, $isString) + { + $result= ""; + + /* Encode paramName to UTF-16 */ + if (function_exists("recode")){ + $utfName= recode("ISO8859-15..UTF-16", $paramName); + } else { + $utfName= iconv("ISO8859-15", "UTF-16BE", $paramName); + } + + /* Set parameter length, high and low byte */ + $paramLen= strlen($utfName); + $result.= chr($paramLen & 0x0FF); + $result.= chr(($paramLen & 0x0FF00) >> 8); + + /* String parameters have additional trailing bytes */ + $valueLen= strlen($paramValue); + $result.= chr($valueLen & 0x0FF); + $result.= chr(($valueLen & 0x0FF00) >> 8); + + /* Length fields have a trailing '01' appended by the UTF-16 converted name */ + $result.= chr(1); + $result.= $utfName; + + /* Parameter is padded with '00' */ + $result.= chr(0); + $result.= $paramValue; + + /* Append a trailing '00' to string parameters */ + if ($isString && (strlen($paramValue) & 1)){ + $result.= chr(0); + } + + return ($result); + } + + /** Takes a base64-encoded MungedDial-String and returns an array of included parameters and values */ + function decode_munged($munge) + { + $result= array(); + + /* + * Remove base64 encoding and skip SAMBA_MUNGEDDIAL_FILEHEADER. + * The '4' is added, because the SAMBA_MUNGEDDIAL_FILEHEADER has been stripped by 4 chars. + * This is the number of attributes following - we don't need this at read time, only when writing. + */ + if(substr(base64_decode($munge),0,2)=="6d") { + $this->old_behavior=true; + } + + $ctxField=""; + if($this->old_behavior==true) { + $ctxField= substr(base64_decode($munge), (strlen(SAMBA_MUNGEDDIAL_FILEHEADER_OLD)) / 2); + } else { + $ctxField= substr(base64_decode($munge), (strlen(SAMBA_MUNGEDDIAL_FILEHEADER)+4) / 2); + } + + /* Decode parameters */ + while ($ctxField!=""){ + + /* Read value lengths */ + $ctxParmNameLength= ord($ctxField[0]) + 16 * ord($ctxField[1]); + $ctxParmLength= ord($ctxField[2]) + 16 * ord($ctxField[3]); + + /* Reposition ctxField on start of parameter name, read parameter name */ + $ctxField= substr($ctxField, 6); + $ctxParmName= sambaMungedDial::to8bit(substr($ctxField, 0, $ctxParmNameLength)); + + /* Reposition ctxField on start of parameter */ + $ctxField= substr($ctxField, $ctxParmNameLength); + $ctxParm= substr($ctxField, 0, $ctxParmLength); + + /* If string parameter, convert */ + if (in_array($ctxParmName, $this->stringParams)){ + $ctxParm= sambaMungedDial::hexstr($ctxParm); + } + /* If time parameter, convert */ + if (in_array($ctxParmName, $this->timeParams)){ + $ctxParm= sambaMungedDial::readTime($ctxParm); + } + + /* Assign in result array */ + $result[$ctxParmName]= trim($ctxParm); + + /* Reposition ctxField on end of parameter and continue */ + $ctxField= substr($ctxField, $ctxParmLength); + } + + return ($result); + } + + /** function takes a base64-encoded sambaMungedDial */ + function load ($mungedDial) + { + $this->ctx= $this->decode_munged($mungedDial); + } + + /** Returns ready-to-run mungedDialString to be filled into ldap */ + function getMunged () + { + // Do extra check for valid timeParams (they must be set to 0 if disabled) + foreach($this->timeParams as $value) { + if(!isset($this->ctx[$value])) { + $this->ctx[$value]= 0; + } + } + $result= base64_encode($this->encode_munged($this->ctx)); + + return $result; + } + + /** Returns array of flags, which can be set on-demand with activated java-script */ + function getOnDemandFlags () + { + $result= array(); + foreach ($this->timeParams as $value) { + $result[$value."Mode"]= ""; + } + $result['CtxInitialProgramMode'] = ""; + return $result; + } + + /** Gets Terminal-Server-Login value: enabled/disabled */ + function getTsLogin () + { + $flags= ord(substr($this->ctx['CtxCfgFlags1'], 5, 1)); + + if ($flags & 1) { + $result= false; + } else { + $result= true; + } + + return $result; + } + + /** Sets Terminal-Server-Login value: enabled/disabled */ + function setTsLogin ($checked) + { + $flag= substr($this->ctx['CtxCfgFlags1'], 5, 1); + + if ($checked) { + $flag|= 1; + } else { + $flag&= 0xFE; + } + + $this->ctx['CtxCfgFlags1'][5]= sprintf('%1x', $flag); + } + + /** gets Broken-Connection value: disconnect/reset */ + function getBrokenConn () + { + $flags= ord(substr($this->ctx['CtxCfgFlags1'], 5, 1)); + if ($flags & 4) { + $result= "1"; + } else { + $result= "0"; + } + + return $result; + } + + /** sets Broken-Connection value: disconnect/reset */ + function setBrokenConn ($checked) + { + $flag= substr($this->ctx['CtxCfgFlags1'], 5, 1); + + if ($checked) { + $flag|= 4; + } else { + $flag&= 0xFB; + } + + $this->ctx['CtxCfgFlags1'][5]= sprintf('%1x', $flag); + } + + /** gets Reconnection value: from any client/from previous client only */ + function getReConn () + { + $flags= ord(substr($this->ctx['CtxCfgFlags1'], 5, 1)); + if ($flags & 2) { + $result= "1"; + } else { + $result= "0"; + } + + return $result; + } + + /** sets Reconnection value: from any client/from previous client only */ + function setReConn ($checked) + { + $flag= substr($this->ctx['CtxCfgFlags1'], 5, 1); + + if ($checked) { + $flag|= 2; + } else { + $flag&= 0xFD; + } + + $this->ctx['CtxCfgFlags1'][5]= sprintf('%1x', $flag); + } + + /** gets Inherit-config-from-client value: enabled/disabled */ + function getInheritMode () + { + if (substr($this->ctx['CtxCfgFlags1'], 6, 1) == "1") { + $result= true; + } else { + $result= false; + } + + return $result; + } + + /** sets Inherit-config-from-client value: enabled/disabled */ + function setInheritMode ($checked) + { + if ($checked) { + $this->ctx['CtxCfgFlags1'][6]= "1"; + } else { + $this->ctx['CtxCfgFlags1'][6]= "0"; + } + } + + /** gets shadow value (enum): 0-4 + 0: disabled + 1: input on, notify on + 2: input on, notify off + 3: input off, notify on + 4: input off, notify off + */ + function getShadow () + { + if($this->old_behavior==true) { + $result= substr($this->ctx['CtxCfgFlags1'], 1, 1); + } else { + $result= substr($this->ctx['CtxShadow'], 1, 1); + } + return $result; + } + + /** sets shadow value */ + function setShadow ($checked, $value) + { + if ($checked) { + if($this->old_behavior==true) { + // We need to reset the old setting + $this->ctx['CtxCfgFlags1'][1]= sprintf('%1X', $value); + } + $this->ctx['CtxShadow'][1]= sprintf('%1x', $value); + } + } + + /** gets connect-client-drive-at-logon value: enabled/disabled */ + function getConnectClientDrives () + { + $connections= hexdec(substr($this->ctx['CtxCfgFlags1'], 2, 1)); + if ($connections & 8) { + $result= true; + } else { + $result= false; + } + + return $result; + } + + /** sets connect-client-drive-at-logon value: enabled/disabled */ + function setConnectClientDrives ($checked) + { + $flag= hexdec(substr($this->ctx['CtxCfgFlags1'], 2, 1)); + if ($checked) { + $flag|= 8; + } else { + $flag&= 0xF7; + } + + $this->ctx['CtxCfgFlags1'][2]= sprintf('%1x', $flag); + } + + /** gets connect-client-printers-at-logon value: enabled/disabled */ + function getConnectClientPrinters () + { + $connections= hexdec(substr($this->ctx['CtxCfgFlags1'], 2, 1)); + if ($connections & 4) { + $result= true; + } else { + $result= false; + } + + return $result; + } + + /** sets connect-client-printers-at-logon value: enabled/disabled */ + function setConnectClientPrinters ($checked) + { + $flag= hexdec(substr($this->ctx['CtxCfgFlags1'], 2, 1)); + + if ($checked) { + $flag|= 4; + } else { + $flag&= 0xFB; + } + + $this->ctx['CtxCfgFlags1'][2]= sprintf('%1x', $flag); + } + + /** gets set-client-printer-to-default value: enabled/disabled */ + function getDefaultPrinter () + { + $connections= hexdec(substr($this->ctx['CtxCfgFlags1'], 2, 1)); + if ($connections & 2) { + $result= true; + } else { + $result= false; + } + + return $result; + } + + /** sets set-client-printer-to-default value: enabled/disabled */ + function setDefaultPrinter ($checked) + { + $flag= hexdec(substr($this->ctx['CtxCfgFlags1'], 2, 1)); + + if ($checked) { + $flag|= 2; + } else { + $flag&= 0xFD; + } + + $this->ctx['CtxCfgFlags1'][2]= sprintf('%1x', $flag); + } + + /** SMARTY: gets the checkbox state of "Connection" */ + function getCtxMaxConnectionTimeF () + { + // Connection Time is 0 if disabled + if (isset($this->ctx['CtxMaxConnectionTime']) && ($this->ctx['CtxMaxConnectionTime'] != 0)) { + $result= true; + } else { + $result= false; + } + + return $result; + } + + /** SMARTY: sets the checkbox "Connection" to unchecked */ + function setCtxMaxConnectionTimeF ($checked) + { + if ($checked) { + unset ($this->ctx['CtxMaxConnectionTime']); + } + } + + /** SMARTY: gets the checkbox state of "Disconnection" */ + function getCtxMaxDisconnectionTimeF () + { + // Connection Time is 0 if disabled + if (isset($this->ctx['CtxMaxDisconnectionTime']) && ($this->ctx['CtxMaxDisconnectionTime'] != 0)) { + $result= true; + } else { + $result= false; + } + + return $result; + } + + /** SMARTY: sets the checkbox "Disconnection" to unchecked */ + function setCtxMaxDisconnectionTimeF ($checked) + { + if ($checked) { + unset ($this->ctx['CtxMaxDisconnectionTime']); + } + } + + /** SMARTY: gets the checkbox state of "Idle" */ + function getCtxMaxIdleTimeF () + { + // Connection Time is 0 if disabled + if (isset($this->ctx['CtxMaxIdleTime']) && ($this->ctx['CtxMaxIdleTime'] != 0)) { + $result= true; + } else { + $result= false; + } + + return $result; + } + + /** SMARTY: sets the checkbox "Idle" to unchecked */ + function setCtxMaxIdleTimeF ($checked) + { + if ($checked) { + unset ($this->ctx['CtxMaxIdleTime']); + } + } +} + +?> diff --git a/lam/lib/modules/shadowAccount.inc b/lam/lib/modules/shadowAccount.inc new file mode 100644 index 00000000..ea82db13 --- /dev/null +++ b/lam/lib/modules/shadowAccount.inc @@ -0,0 +1,676 @@ +autoAddObjectClasses = false; + } + + /** + * This function builds up the message array. + */ + function load_Messages() { + // error messages for input checks + $this->messages['shadowMin'][0] = array('ERROR', _('Minimum password age'), _('Password minimum age must be are natural number.')); + $this->messages['shadowMin'][1] = array('ERROR', _('Account %s:') . ' shadowAccount_minAge', _('Password minimum age must be are natural number.')); + $this->messages['shadowMax'][0] = array('ERROR', _('Maximum password age'), _('Password maximum age must be are natural number.')); + $this->messages['shadowMax'][1] = array('ERROR', _('Account %s:') . ' shadowAccount_maxAge', _('Password maximum age must be are natural number.')); + $this->messages['inactive'][0] = array('ERROR', _('Password expiration'), _('Password expiration must be are natural number or -1.')); + $this->messages['inactive'][1] = array('ERROR', _('Account %s:') . ' shadowAccount_ignoreExpire', _('Password expiration must be are natural number or -1.')); + $this->messages['shadowWarning'][0] = array('ERROR', _('Password warning'), _('Password warning must be are natural number.')); + $this->messages['shadowWarning'][1] = array('ERROR', _('Account %s:') . ' shadowAccount_warning', _('Password warning must be are natural number.')); + $this->messages['shadow_cmp'][0] = array('ERROR', _('Maximum password age'), _('Password maximum age must be bigger than password minimum age.')); + $this->messages['shadow_cmp'][1] = array('ERROR', _('Account %s:') . ' shadowAccount_min/maxAge', _('Password maximum age must be bigger as password minimum age.')); + $this->messages['shadow_expireDate'][0] = array('ERROR', _('Account %s:') . ' shadowAccount_expireDate', _('The expiration date is invalid.')); + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('user')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'keyBig.png'; + // alias name + $return["alias"] = _('Shadow'); + // module dependencies + $return['dependencies'] = array('depends' => array('posixAccount'), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('shadowAccount'); + // managed attributes + $return['attributes'] = array('shadowLastChange', 'shadowMin', 'shadowMax', 'shadowWarning', + 'shadowInactive', 'shadowExpire', 'shadowFlag'); + // lists for expiration date + $day = array(); $mon = array(); $year = array(); + for ( $i=1; $i<=31; $i++ ) $day[] = $i; + for ( $i=1; $i<=12; $i++ ) $mon[] = $i; + for ( $i=2003; $i<=2030; $i++ ) $year[] = $i; + $profileOptionsTable = new htmlTable(); + // auto add extension + $profileOptionsTable->addElement(new htmlTableExtendedInputCheckbox('shadowAccount_addExt', false, _('Automatically add this extension'), 'autoAdd'), true); + // password warning + $profilePwdWarning = new htmlTableExtendedInputField(_('Password warning'), 'shadowAccount_shadowWarning', null, 'shadowWarning'); + $profilePwdWarning->setFieldSize(5); + $profilePwdWarning->setFieldMaxLength(4); + $profileOptionsTable->addElement($profilePwdWarning, true); + // password expiration + $profilePwdExpiration = new htmlTableExtendedInputField(_('Password expiration'), 'shadowAccount_shadowInactive', null, 'shadowInactive'); + $profilePwdExpiration->setFieldSize(5); + $profilePwdExpiration->setFieldMaxLength(4); + $profileOptionsTable->addElement($profilePwdExpiration, true); + // minimum password age + $profilePwdMinAge = new htmlTableExtendedInputField(_('Minimum password age'), 'shadowAccount_shadowMin', null, 'shadowMin'); + $profilePwdMinAge->setFieldSize(5); + $profilePwdMinAge->setFieldMaxLength(5); + $profileOptionsTable->addElement($profilePwdMinAge, true); + // maximum password age + $profilePwdMinAge = new htmlTableExtendedInputField(_('Maximum password age'), 'shadowAccount_shadowMax', null, 'shadowMax'); + $profilePwdMinAge->setFieldSize(5); + $profilePwdMinAge->setFieldMaxLength(5); + $profileOptionsTable->addElement($profilePwdMinAge, true); + // expiration date + $profileOptionsTable->addElement(new htmlOutputText(_('Account expiration date'))); + $profileOptionsExpire = new htmlTable(); + $profileOptionsExpire->addElement(new htmlSelect('shadowAccount_shadowExpire_day', $day, array('1'))); + $profileOptionsExpire->addElement(new htmlSelect('shadowAccount_shadowExpire_mon', $mon, array('1'))); + $profileOptionsExpire->addElement(new htmlSelect('shadowAccount_shadowExpire_yea', $year, array('2030'))); + $profileOptionsTable->addElement($profileOptionsExpire); + $profileOptionsTable->addElement(new htmlHelpLink('shadowExpire')); + $return['profile_options'] = $profileOptionsTable; + // profile checks + $return['profile_checks']['shadowAccount_shadowMin'] = array( + 'type' => 'ext_preg', + 'regex' => 'digit', + 'error_message' => $this->messages['shadowMin'][0]); + $return['profile_checks']['shadowAccount_shadowMax'] = array( + 'type' => 'ext_preg', + 'regex' => 'digit', + 'error_message' => $this->messages['shadowMax'][0]); + $return['profile_checks']['shadowAccount_cmp'] = array( + 'type' => 'int_greater', + 'cmp_name1' => 'shadowAccount_shadowMax', + 'cmp_name2' => 'shadowAccount_shadowMin', + 'error_message' => $this->messages['shadow_cmp'][0]); + $return['profile_checks']['shadowAccount_shadowInactive'] = array( + 'type' => 'ext_preg', + 'regex' => 'digit2', + 'error_message' => $this->messages['inactive'][0]); + $return['profile_checks']['shadowAccount_shadowWarning'] = array( + 'type' => 'ext_preg', + 'regex' => 'digit', + 'error_message' => $this->messages['shadowWarning'][0]); + // profile mappings + $return['profile_mappings'] = array( + 'shadowAccount_shadowWarning' => 'shadowWarning', + 'shadowAccount_shadowInactive' => 'shadowInactive', + 'shadowAccount_shadowMin' => 'shadowMin', + 'shadowAccount_shadowMax' => 'shadowMax' + ); + // available PDF fields + $return['PDF_fields'] = array( + 'shadowLastChange' => _('Last password change'), + 'shadowWarning' => _('Password warning'), + 'shadowInactive' => _('Account inactive'), + 'shadowExpire' => _('Password expiration'), + 'shadowMinAge' => _('Minimum password age'), + 'shadowMaxAge' => _('Maximum password age'), + ); + // help Entries + $return['help'] = array ( + 'shadowWarning' => array ( + "Headline" => _("Password warning"), 'attr' => 'shadowWarning', + "Text" => _("Days before password is to expire that user is warned of pending password expiration. If set value must be >0."). ' '. _("Can be left empty.") + ), + 'shadowInactive' => array ( + "Headline" => _("Password expiration"), 'attr' => 'shadowInactive', + "Text" => _("Number of days a user can login even his password has expired. -1=always."). ' '. _("Can be left empty.") + ), + 'shadowMin' => array ( + "Headline" => _("Minimum password age"), 'attr' => 'shadowMin', + "Text" => _("Number of days a user has to wait until he is allowed to change his password again. If set value must be >0."). ' '. _("Can be left empty.") + ), + 'shadowMax' => array ( + "Headline" => _("Maximum password age"), 'attr' => 'shadowMax', + "Text" => _("Number of days after a user has to change his password again. If set value must be >0."). ' '. _("Can be left empty.") + ), + 'shadowExpire' => array ( + "Headline" => _("Account expiration date"), 'attr' => 'shadowExpire', + "Text" => _("This is the date when the account will expire. Format: DD-MM-YYYY") + ), + 'autoAdd' => array( + "Headline" => _("Automatically add this extension"), + "Text" => _("This will enable the extension automatically if this profile is loaded.") + ), + 'shadowLastChange' => array( + "Headline" => _("Last password change"), 'attr' => 'shadowLastChange', + "Text" => _("This is the date when the user changed his password. If you specify a maximum password age then you can force a password change here.") + ) + ); + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'shadowAccount_warning', + 'description' => _('Password warning'), + 'help' => 'shadowWarning', + 'example' => '14' + ), + array( + 'name' => 'shadowAccount_ignoreExpire', + 'description' => _('Password expiration'), + 'help' => 'shadowInactive', + 'example' => '7' + ), + array( + 'name' => 'shadowAccount_minAge', + 'description' => _('Minimum password age'), + 'help' => 'shadowMin', + 'example' => '1' + ), + array( + 'name' => 'shadowAccount_maxAge', + 'description' => _('Maximum password age'), + 'help' => 'shadowMax', + 'example' => '365' + ), + array( + 'name' => 'shadowAccount_expireDate', + 'description' => _('Account expiration date'), + 'help' => 'shadowExpire', + 'example' => '17-07-2011' + ) + ); + // self service fields + $return['selfServiceFieldSettings'] = array('shadowLastChange' => _('Last password change (read-only)')); + return $return; + } + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + function save_attributes() { + if (!in_array('shadowAccount', $this->attributes['objectClass']) && !in_array('shadowAccount', $this->orig['objectClass'])) { + // skip saving if the extension was not added/modified + return array(); + } + return parent::save_attributes(); + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_attributes() { + if (isset($_POST['form_subpage_shadowAccount_attributes_remObjectClass'])) { + $this->attributes['objectClass'] = array_delete(array('shadowAccount'), $this->attributes['objectClass']); + if (isset($this->attributes['shadowMin'])) unset($this->attributes['shadowMin']); + if (isset($this->attributes['shadowMax'])) unset($this->attributes['shadowMax']); + if (isset($this->attributes['shadowWarning'])) unset($this->attributes['shadowWarning']); + if (isset($this->attributes['shadowInactive'])) unset($this->attributes['shadowInactive']); + if (isset($this->attributes['shadowLastChange'])) unset($this->attributes['shadowLastChange']); + if (isset($this->attributes['shadowExpire'])) unset($this->attributes['shadowExpire']); + if (isset($this->attributes['shadowFlag'])) unset($this->attributes['shadowFlag']); + return array(); + } + if (!in_array('shadowAccount', $this->attributes['objectClass'])) { + return array(); + } + $errors = array(); + // Load attributes + $this->attributes['shadowMin'][0] = $_POST['shadowMin']; + $this->attributes['shadowMax'][0] = $_POST['shadowMax']; + $this->attributes['shadowWarning'][0] = $_POST['shadowWarning']; + $this->attributes['shadowInactive'][0] = $_POST['shadowInactive']; + if ( !get_preg($this->attributes['shadowMin'][0], 'digit')) $errors[] = $this->messages['shadowMin'][0]; + if ( !get_preg($this->attributes['shadowMax'][0], 'digit')) $errors[] = $this->messages['shadowMax'][0]; + if ( $this->attributes['shadowMin'][0] > $this->attributes['shadowMax'][0]) $errors[] = $this->messages['shadow_cmp'][0]; + if ( !get_preg($this->attributes['shadowInactive'][0], 'digit2')) $errors[] = $this->messages['inactive'][0]; + if ( !get_preg($this->attributes['shadowWarning'][0], 'digit')) $errors[] = $this->messages['shadowWarning'][0]; + if (isset($_POST['form_subpage_shadowAccount_attributes_expirePassword']) && isset($this->attributes['shadowMax'][0]) && ($this->attributes['shadowMax'][0] != 0)) { + $this->attributes['shadowLastChange'][0] = intval(time()/3600/24) - $this->attributes['shadowMax'][0] - 1; + } + return $errors; + } + + /** + * This function will create the meta HTML code to show a page with all attributes. + * + * @return array meta HTML code + */ + function display_html_attributes() { + if (isset($_POST['form_subpage_shadowAccount_attributes_addObjectClass'])) { + $this->attributes['objectClass'][] = 'shadowAccount'; + } + $return = new htmlTable(); + if (in_array('shadowAccount', $this->attributes['objectClass'])) { + $shWarning = ''; + if (isset($this->attributes['shadowWarning'][0])) { + $shWarning = $this->attributes['shadowWarning'][0]; + } + $pwdWarnInput = new htmlTableExtendedInputField(_('Password warning'), 'shadowWarning', $shWarning, 'shadowWarning'); + $pwdWarnInput->setFieldMaxLength(4); + $pwdWarnInput->setFieldSize(5); + $pwdWarnInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($pwdWarnInput, true); + + $shPwdExpiration = ''; + if (isset($this->attributes['shadowInactive'][0])) $shPwdExpiration = $this->attributes['shadowInactive'][0]; + $pwdExpInput = new htmlTableExtendedInputField(_('Password expiration'), 'shadowInactive', $shPwdExpiration, 'shadowInactive'); + $pwdExpInput->setFieldMaxLength(4); + $pwdExpInput->setFieldSize(5); + $pwdExpInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($pwdExpInput, true); + + $shMinAge = ''; + if (isset($this->attributes['shadowMin'][0])) $shMinAge = $this->attributes['shadowMin'][0]; + $minAgeInput = new htmlTableExtendedInputField(_('Minimum password age'), 'shadowMin', $shMinAge, 'shadowMin'); + $minAgeInput->setFieldMaxLength(5); + $minAgeInput->setFieldSize(5); + $minAgeInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($minAgeInput, true); + + $shMaxAge = ''; + if (isset($this->attributes['shadowMax'][0])) $shMaxAge = $this->attributes['shadowMax'][0]; + $maxAgeInput = new htmlTableExtendedInputField(_('Maximum password age'), 'shadowMax', $shMaxAge, 'shadowMax'); + $maxAgeInput->setFieldMaxLength(5); + $maxAgeInput->setFieldSize(5); + $maxAgeInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $return->addElement($maxAgeInput, true); + + $expirationDate = "     -      "; + if (isset($this->attributes['shadowExpire'][0])) { + $shAccExpirationDate = $this->attributes['shadowExpire'][0]; + $date = getdate($shAccExpirationDate*3600*24); + $expirationDate = $date['mday'] . "." . $date['mon'] . "." . $date['year']; + } + $return->addElement(new htmlOutputText(_('Account expiration date'))); + $expireTable = new htmlTable(); + $expireTable->addElement(new htmlOutputText($expirationDate, false)); + $expireTable->addElement(new htmlAccountPageButton('shadowAccount', 'expire', 'open', _('Change'))); + $return->addElement($expireTable); + $return->addElement(new htmlHelpLink('shadowExpire'), true); + + $pwdChangeDate = "     -      "; + if (isset($this->attributes['shadowLastChange'][0])) { + $shPwdChangeDate = $this->attributes['shadowLastChange'][0]; + $date = getdate($shPwdChangeDate*3600*24); + $pwdChangeDate = $date['mday'] . "." . $date['mon'] . "." . $date['year']; + } + $return->addElement(new htmlOutputText(_('Last password change'))); + $pwdChangeTable = new htmlTable(); + $pwdChangeTable->addElement(new htmlOutputText($pwdChangeDate, false)); + if (isset($this->attributes['shadowMax'][0]) && ($this->attributes['shadowMax'][0] != '')) { + $pwdChangeTable->addElement(new htmlAccountPageButton('shadowAccount', 'attributes', 'expirePassword', _('Force password change'))); + } + $return->addElement($pwdChangeTable); + $return->addElement(new htmlHelpLink('shadowLastChange'), true); + + $return->addElement(new htmlOutputText(''), true); + $remButton = new htmlAccountPageButton('shadowAccount', 'attributes', 'remObjectClass', _('Remove Shadow account extension')); + $remButton->colspan = 4; + $return->addElement($remButton); + } + else { + $return->addElement(new htmlAccountPageButton('shadowAccount', 'attributes', 'addObjectClass', _('Add Shadow account extension'))); + } + return $return; + } + + /** + * Processes user input of the expiration page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_expire() { + $errors = array(); + // set expiration date + if (isset($_POST['form_subpage_shadowAccount_attributes_change'])) { + $this->setExpirationDate($_POST['shadowExpire_yea'], $_POST['shadowExpire_mon'], $_POST['shadowExpire_day']); + // sync other modules + if (isset($_POST['syncSamba']) && ($_POST['syncSamba'] == 'on')) { + $this->getAccountContainer()->getAccountModule('sambaSamAccount')->setExpirationDate( + $_POST['shadowExpire_yea'], $_POST['shadowExpire_mon'], $_POST['shadowExpire_day']); + } + if (isset($_POST['syncHeimdal']) && ($_POST['syncHeimdal'] == 'on')) { + $this->getAccountContainer()->getAccountModule('heimdalKerberos')->setExpirationDate( + $_POST['shadowExpire_yea'], $_POST['shadowExpire_mon'], $_POST['shadowExpire_day']); + } + if (isset($_POST['syncMIT']) && ($_POST['syncMIT'] == 'on')) { + $this->getAccountContainer()->getAccountModule('mitKerberos')->setExpirationDate( + $_POST['shadowExpire_yea'], $_POST['shadowExpire_mon'], $_POST['shadowExpire_day']); + } + if (isset($_POST['syncMITStructural']) && ($_POST['syncMITStructural'] == 'on')) { + $this->getAccountContainer()->getAccountModule('mitKerberosStructural')->setExpirationDate( + $_POST['shadowExpire_yea'], $_POST['shadowExpire_mon'], $_POST['shadowExpire_day']); + } + } + // remove expiration date + elseif (isset($_POST['form_subpage_shadowAccount_attributes_del'])) { + unset($this->attributes['shadowExpire']); + // sync other modules + if (isset($_POST['syncSamba']) && ($_POST['syncSamba'] == 'on')) { + $this->getAccountContainer()->getAccountModule('sambaSamAccount')->setExpirationDate( + null, null, null); + } + if (isset($_POST['syncHeimdal']) && ($_POST['syncHeimdal'] == 'on')) { + $this->getAccountContainer()->getAccountModule('heimdalKerberos')->setExpirationDate( + null, null, null); + } + if (isset($_POST['syncMIT']) && ($_POST['syncMIT'] == 'on')) { + $this->getAccountContainer()->getAccountModule('mitKerberos')->setExpirationDate( + null, null, null); + } + if (isset($_POST['syncMITStructural']) && ($_POST['syncMITStructural'] == 'on')) { + $this->getAccountContainer()->getAccountModule('mitKerberosStructural')->setExpirationDate( + null, null, null); + } + } + return $errors; + } + + /** + * This function will create the meta HTML code to show a page with the expiration date. + * + * @return array meta HTML code + */ + function display_html_expire() { + $return = new htmlTable(); + $shAccExpirationDate = 0; + if (isset($this->attributes['shadowExpire'][0])) { + $shAccExpirationDate = $this->attributes['shadowExpire'][0]; + } + $date = getdate($shAccExpirationDate*3600*24); + for ( $i=1; $i<=31; $i++ ) $mday[] = $i; + for ( $i=1; $i<=12; $i++ ) $mon[] = $i; + for ( $i=2003; $i<=2050; $i++ ) $year[] = $i; + $return->addElement(new htmlOutputText(_('Account expiration date'))); + $expTable = new htmlTable(); + $expTable->addElement(new htmlSelect('shadowExpire_day', $mday, array($date['mday']))); + $expTable->addElement(new htmlSelect('shadowExpire_mon', $mon, array($date['mon']))); + $expTable->addElement(new htmlSelect('shadowExpire_yea', $year, array($date['year']))); + $return->addElement($expTable); + $return->addElement(new htmlHelpLink('shadowExpire'), true); + if ($this->getAccountContainer()->getAccountModule('sambaSamAccount') != null) { + $return->addElement(new htmlTableExtendedInputCheckbox('syncSamba', false, _('Set also for Samba 3')), true); + } + if ($this->getAccountContainer()->getAccountModule('heimdalKerberos') != null) { + $return->addElement(new htmlTableExtendedInputCheckbox('syncHeimdal', false, _('Set also for Kerberos')), true); + } + if ($this->getAccountContainer()->getAccountModule('mitKerberos') != null) { + $return->addElement(new htmlTableExtendedInputCheckbox('syncMIT', false, _('Set also for Kerberos')), true); + } + if ($this->getAccountContainer()->getAccountModule('mitKerberosStructural') != null) { + $return->addElement(new htmlTableExtendedInputCheckbox('syncMITStructural', false, _('Set also for Kerberos')), true); + } + $return->addElement(new htmlSpacer(null, '10px'), true); + $buttonTable = new htmlTable(); + $buttonTable->addElement(new htmlAccountPageButton('shadowAccount', 'attributes', 'change', _('Change'))); + if (isset($this->attributes['shadowExpire'][0])) { + $buttonTable->addElement(new htmlAccountPageButton('shadowAccount', 'attributes', 'del', _('Remove'))); + } + $buttonTable->addElement(new htmlAccountPageButton('shadowAccount', 'attributes', 'back', _('Cancel'))); + $buttonTable->colspan=3; + $return->addElement($buttonTable); + return $return; + } + + /** + * Returns the PDF entries for this module. + * + * @return array list of possible PDF entries + */ + function get_pdfEntries() { + $shadowLastChange = ''; + if (isset($this->attributes['shadowLastChange'][0])) { + $shadowLastChange = date('d. m. Y',$this->attributes['shadowLastChange'][0]*24*3600); + } + $shadowExpire = ''; + if (isset($this->attributes['shadowExpire'][0])) { + $shadowExpire = date('d. m. Y',$this->attributes['shadowExpire'][0]*24*3600); + } + $return = array('shadowAccount_shadowLastChange' => array('' . _('Last password change') . '' . $shadowLastChange . ''), + 'shadowAccount_shadowExpire' => array('' . _('Account expiration date') . '' . $shadowExpire . ''), + ); + $this->addSimplePDFField($return, 'shadowWarning', _('Password warning')); + $this->addSimplePDFField($return, 'shadowInactive', _('Password expiration')); + $this->addSimplePDFField($return, 'shadowMinAge', _('Minimum password age'), 'shadowMin'); + $this->addSimplePDFField($return, 'shadowMaxAge', _('Maximum password age'), 'shadowMax'); + return $return; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array("shadowAccount", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "shadowAccount"; + // shadow last change + $partialAccounts[$i]['shadowLastChange'] = array(intval(time()/3600/24)); + // password warning + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'shadowAccount_warning', 'shadowWarning', + 'digit', $this->messages['shadowWarning'][1], $messages); + // password expire ignoration + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'shadowAccount_ignoreExpire', 'shadowInactive', + 'digit2', $this->messages['inactive'][1], $messages); + // password minAge + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'shadowAccount_minAge', 'shadowMin', + 'digit', $this->messages['shadowMin'][1], $messages); + // password maxAge + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'shadowAccount_maxAge', 'shadowMax', + 'digit', $this->messages['shadowMax'][1], $messages); + // minAge <= maxAge + if ((($rawAccounts[$i][$ids['shadowAccount_minAge']] != '') || ($rawAccounts[$i][$ids['shadowAccount_maxAge']] != '')) && // if at least one is set + (($rawAccounts[$i][$ids['shadowAccount_minAge']] == '') || ($rawAccounts[$i][$ids['shadowAccount_maxAge']] == '') || ( // and one is not set + ($rawAccounts[$i][$ids['shadowAccount_minAge']] > $rawAccounts[$i][$ids['shadowAccount_maxAge']])))) { // or minAge > maxAge + $errMsg = $this->messages['shadow_cmp'][1]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + // expiration date + if ($rawAccounts[$i][$ids['shadowAccount_expireDate']] != '') { + if (get_preg($rawAccounts[$i][$ids['shadowAccount_expireDate']], 'date')) { + $parts = explode('-', $rawAccounts[$i][$ids['shadowAccount_expireDate']]); + $partialAccounts[$i]['shadowExpire'][] = intval(mktime(0, 0, 0, intval($parts[1]), intval($parts[0]), intval($parts[2]))/3600/24); + } + else { + $errMsg = $this->messages['shadow_expireDate'][0]; + array_push($errMsg, array($i)); + $messages[] = $errMsg; + } + } + } + return $messages; + } + + /** + * Loads the values of an account profile into internal variables. + * + * @param array $profile hash array with profile values (identifier => value) + */ + function load_profile($profile) { + // profile mappings in meta data + parent::load_profile($profile); + // add extension + if (isset($profile['shadowAccount_addExt'][0]) && ($profile['shadowAccount_addExt'][0] == "true")) { + if (!in_array('shadowAccount', $this->attributes['objectClass'])) { + $this->attributes['objectClass'][] = 'shadowAccount'; + } + } + // expiration date + if (isset($profile['shadowAccount_shadowExpire_day'][0]) && ($profile['shadowAccount_shadowExpire_day'][0] != "")) { + $date = intval(mktime(0, 0, 0, intval($profile['shadowAccount_shadowExpire_mon'][0]), + intval($profile['shadowAccount_shadowExpire_day'][0]), intval($profile['shadowAccount_shadowExpire_yea'][0]))/3600/24); + $this->attributes['shadowExpire'][0] = $date; + } + } + + + /** + * This method specifies if a module manages password attributes. + * @see passwordService::managesPasswordAttributes + * + * @return boolean true if this module manages password attributes + */ + public function managesPasswordAttributes() { + // only listen to password changes + return false; + } + + /** + * Specifies if this module supports to force that a user must change his password on next login. + * + * @return boolean force password change supported + */ + public function supportsForcePasswordChange() { + return true; + } + + /** + * This function is called whenever the password should be changed. Account modules + * must change their password attributes only if the modules list contains their module name. + * + * @param String $password new password + * @param $modules list of modules for which the password should be changed + * @param boolean $forcePasswordChange force the user to change his password at next login + * @return array list of error messages if any as parameter array for StatusMessage + * e.g. return arrray(array('ERROR', 'Password change failed.')) + * @see passwordService::passwordChangeRequested + */ + public function passwordChangeRequested($password, $modules, $forcePasswordChange) { + // update password timestamp when Unix password was updated + if (!in_array('posixAccount', $modules)) { + return array(); + } + if (in_array_ignore_case('shadowAccount', $this->attributes['objectClass'])) { + $this->attributes['shadowLastChange'][0] = intval(time()/3600/24); + if ($forcePasswordChange && isset($this->attributes['shadowMax'][0]) && ($this->attributes['shadowMax'][0] != 0)) { + $this->attributes['shadowLastChange'][0] = intval(time()/3600/24) - $this->attributes['shadowMax'][0] - 1; + } + } + return array(); + } + + /** + * Sets the expiration date of this account. + * If all parameters are null the expiration date will be removed. + * + * @param String $year year (e.g. 2040) + * @param String $month month (e.g. 8) + * @param String $day day (e.g. 27) + */ + public function setExpirationDate($year, $month, $day) { + if (($year == null) && ($month == null) && ($day == null)) { + unset($this->attributes['shadowExpire']); + return; + } + $this->attributes['shadowExpire'][0] = intval(gmmktime(0, 0, 0, intval($month), intval($day), + intval($year))/3600/24); + } + + /** + * Returns the meta HTML code for each input field. + * format: array( => array(), ...) + * It is not possible to display help links. + * + * @param array $fields list of active fields + * @param array $attributes attributes of LDAP account + * @param boolean $passwordChangeOnly indicates that the user is only allowed to change his password and no LDAP content is readable + * @param array $readOnlyFields list of read-only fields + * @return array list of meta HTML elements (field name => htmlTableRow) + */ + function getSelfServiceOptions($fields, $attributes, $passwordChangeOnly, $readOnlyFields) { + $return = array(); + if ($passwordChangeOnly) { + return $return; // no fields as long no LDAP content can be read + } + if (in_array('shadowLastChange', $fields)) { + $shadowLastChange = ''; + if (isset($attributes['shadowLastChange'][0])) { + $date = getdate($attributes['shadowLastChange'][0] * 3600 * 24); + $shadowLastChange = $date['mday'] . "." . $date['mon'] . "." . $date['year']; + } + $return['shadowLastChange'] = new htmlTableRow(array( + new htmlOutputText($this->getSelfServiceLabel('shadowLastChange', _('Last password change'))), new htmlOutputText($shadowLastChange) + )); + } + return $return; + } + +} + +?> diff --git a/lam/lib/modules/systemQuotas.inc b/lam/lib/modules/systemQuotas.inc new file mode 100644 index 00000000..5c5bd7e9 --- /dev/null +++ b/lam/lib/modules/systemQuotas.inc @@ -0,0 +1,404 @@ +get_scope(), array('user')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + public function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'hard-driveBig.png'; + // alias name + $return["alias"] = _("Quota"); + // module dependencies + $return['dependencies'] = array('depends' => array('posixAccount'), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('systemQuotas'); + // managed attributes + $return['attributes'] = array('quota'); + // help Entries + $return['help'] = array( + 'quota' => array( + "Headline" => _("Quota"), 'attr' => 'quota', + "Text" => _("Please enter the quota settings for this user. The syntax is: {mount point},{soft block limit},{hard block limit},{soft inode limit},{hard inode limit}.") + . ' ' . _('Multiple values are separated by semicolon.') + ) + ); + // profile elements + $profileContainer = new htmlTable(); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Quota'), 'systemQuotas_quota', null, 'quota')); + $return['profile_options'] = $profileContainer; + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'systemQuotas_quota', + 'description' => _('Quota'), + 'help' => 'quota', + 'example' => '/home/smiller,50000,60000,10000,12000', + ) + ); + // available PDF fields + $return['PDF_fields'] = array( + 'quota' => _('Quota') + ); + return $return; + } + + /** + * This function fills the $messages variable with output messages from this module. + */ + public function load_Messages() { + $this->messages['path'][0] = array('ERROR', _('Mountpoint'), _('Mountpoint contains invalid characters.')); + $this->messages['path'][1] = array('ERROR', _('Account %s:'), _('Mountpoint contains invalid characters.')); + $this->messages['softblock'][0] = array('ERROR', _('Block soft quota'), _('Block soft quota contains invalid characters. Only natural numbers are allowed.')); + $this->messages['softblock'][1] = array('ERROR', _('Account %s:'), _('Block soft quota contains invalid characters. Only natural numbers are allowed.')); + $this->messages['hardblock'][0] = array('ERROR', _('Block hard quota'), _('Block hard quota contains invalid characters. Only natural numbers are allowed.')); + $this->messages['hardblock'][1] = array('ERROR', _('Account %s:'), _('Block hard quota contains invalid characters. Only natural numbers are allowed.')); + $this->messages['softinode'][0] = array('ERROR', _('Inode soft quota'), _('Inode soft quota contains invalid characters. Only natural numbers are allowed.')); + $this->messages['softinode'][1] = array('ERROR', _('Account %s:'), _('Inode soft quota contains invalid characters. Only natural numbers are allowed.')); + $this->messages['hardinode'][0] = array('ERROR', _('Inode hard quota'), _('Inode hard quota contains invalid characters. Only natural numbers are allowed.')); + $this->messages['hardinode'][1] = array('ERROR', _('Account %s:'), _('Inode hard quota contains invalid characters. Only natural numbers are allowed.')); + $this->messages['block_cmp'][0] = array('ERROR', _('Block quota'), _('Block soft quota must be smaller than block hard quota.')); + $this->messages['block_cmp'][1] = array('ERROR', _('Account %s:'), _('Block soft quota must be smaller than block hard quota.')); + $this->messages['inode_cmp'][0] = array('ERROR', _('Inode quota'), _('Inode soft quota must be smaller than inode hard quota.')); + $this->messages['inode_cmp'][1] = array('ERROR', _('Account %s:'), _('Inode soft quota must be smaller than inode hard quota.')); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + public function display_html_attributes() { + $container = new htmlTable(); + $spacer = new htmlSpacer('10px', null); + // caption + $container->addElement(new htmlOutputText(_('Mountpoint'))); + $container->addElement($spacer); + $container->addElement(new htmlOutputText(_('Soft block limit'))); + $container->addElement($spacer); + $container->addElement(new htmlOutputText(_('Hard block limit'))); + $container->addElement($spacer); + $container->addElement(new htmlOutputText(_('Soft inode limit'))); + $container->addElement($spacer); + $container->addElement(new htmlOutputText(_('Hard inode limit')), true); + // existing entries + if (isset($this->attributes['quota'][0])) { + natcasesort($this->attributes['quota']); + $this->attributes['quota'] = array_values($this->attributes['quota']); + for ($i = 0; $i < sizeof($this->attributes['quota']); $i++) { + $parts = explode(',', $this->attributes['quota'][$i]); + $container->addElement(new htmlInputField('path_' . $i, $parts[0], 20)); + $container->addElement($spacer); + $softBlockInput = new htmlInputField('softBlock_' . $i, $parts[1], 10); + $softBlockInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $container->addElement($softBlockInput); + $container->addElement($spacer); + $hardBlockInput = new htmlInputField('hardBlock_' . $i, $parts[2], 10); + $hardBlockInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $container->addElement($hardBlockInput); + $container->addElement($spacer); + $softInodeInput = new htmlInputField('softInode_' . $i, $parts[3], 10); + $softInodeInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $container->addElement($softInodeInput); + $container->addElement($spacer); + $hardInodeInput = new htmlInputField('hardInode_' . $i, $parts[4], 10); + $hardInodeInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $container->addElement($hardInodeInput); + $container->addElement(new htmlButton('del_' . $i, 'del.png', true), true); + } + } + // new entry + $container->addElement(new htmlInputField('path', null, 20)); + $container->addElement($spacer); + $newSoftBlockInput = new htmlInputField('softBlock', 0, 10); + $newSoftBlockInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $container->addElement($newSoftBlockInput); + $container->addElement($spacer); + $newHardBlockInput = new htmlInputField('hardBlock', 0, 10); + $newHardBlockInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $container->addElement($newHardBlockInput); + $container->addElement($spacer); + $newSoftInodeInput = new htmlInputField('softInode', 0, 10); + $newSoftInodeInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $container->addElement($newSoftInodeInput); + $container->addElement($spacer); + $newHardInodeInput = new htmlInputField('hardInode', 0, 10); + $newHardInodeInput->setValidationRule(htmlElement::VALIDATE_NUMERIC); + $container->addElement($newHardInodeInput); + $container->addElement(new htmlButton('add', 'add.png', true)); + return $container; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + public function process_attributes() { + $return = array(); + if (!isset($this->attributes['quota'][0])) { + $this->attributes['quota'] = array(); + } + // check existing entries + for ($i = 0; $i < sizeof($this->attributes['quota']); $i++) { + if (isset($_POST['del_' . $i])) { + unset($this->attributes['quota'][$i]); + $this->attributes['quota'] = array_values($this->attributes['quota']); + $i--; + continue; + } + $path = $_POST['path_' . $i]; + $softBlock = $_POST['softBlock_' . $i]; + if ($softBlock == '') $softBlock = '0'; + $hardBlock = $_POST['hardBlock_' . $i]; + if ($hardBlock == '') $hardBlock = '0'; + $softInode = $_POST['softInode_' . $i]; + if ($softInode == '') $softInode = '0'; + $hardInode = $_POST['hardInode_' . $i]; + if ($hardInode == '') $hardInode = '0'; + $this->attributes['quota'][$i] = $path . ',' . $softBlock . ',' . $hardBlock . ',' . + $softInode . ',' . $hardInode; + $return = array_merge($return, $this->checkQuota($path, $softBlock, $hardBlock, $softInode, $hardInode)); + } + // check for new entry + if (isset($_POST['add'])) { + $path = $_POST['path']; + $softBlock = $_POST['softBlock']; + if ($softBlock == '') $softBlock = '0'; + $hardBlock = $_POST['hardBlock']; + if ($hardBlock == '') $hardBlock = '0'; + $softInode = $_POST['softInode']; + if ($softInode == '') $softInode = '0'; + $hardInode = $_POST['hardInode']; + if ($hardInode == '') $hardInode = '0'; + $this->attributes['quota'][] = $path . ',' . $softBlock . ',' . $hardBlock . ',' . + $softInode . ',' . $hardInode; + $return = array_merge($return, $this->checkQuota($path, $softBlock, $hardBlock, $softInode, $hardInode)); + } + $this->attributes['quota'] = array_unique($this->attributes['quota']); + return $return; + } + + /** + * Checks if the quota parameters are valid. + * + * @param String $path mountpoint + * @param int $softBlock soft block limit + * @param int $hardBlock hard block limit + * @param int $softInode soft inode limit + * @param int $hardInode hard inode limit + * @param boolean $uploadIndex position is upload table + * @return array array where error messages are returned + */ + private function checkQuota($path, $softBlock, $hardBlock, $softInode, $hardInode, $uploadIndex = null) { + $return = array(); + if (!get_preg($path, 'filePath')) { + if ($uploadIndex == null) { + $return[] = $this->messages['path'][0]; + } + else { + $error = $this->messages['path'][1]; + $error[] = array($uploadIndex); + $return[] = $error; + } + } + if (!get_preg($softBlock, 'digit')) { + if ($uploadIndex == null) { + $return[] = $this->messages['softblock'][0]; + } + else { + $error = $this->messages['softblock'][1]; + $error[] = array($uploadIndex); + $return[] = $error; + } + } + if (!get_preg($hardBlock, 'digit')) { + if ($uploadIndex == null) { + $return[] = $this->messages['hardblock'][0]; + } + else { + $error = $this->messages['hardblock'][1]; + $error[] = array($uploadIndex); + $return[] = $error; + } + } + if (!get_preg($softInode, 'digit')) { + if ($uploadIndex == null) { + $return[] = $this->messages['softinode'][0]; + } + else { + $error = $this->messages['softinode'][1]; + $error[] = array($uploadIndex); + $return[] = $error; + } + } + if (!get_preg($hardInode, 'digit')) { + if ($uploadIndex == null) { + $return[] = $this->messages['hardinode'][0]; + } + else { + $error = $this->messages['hardinode'][1]; + $error[] = array($uploadIndex); + $return[] = $error; + } + } + if ($softBlock > $hardBlock) { + if ($uploadIndex == null) { + $return[] = $this->messages['block_cmp'][0]; + } + else { + $error = $this->messages['block_cmp'][1]; + $error[] = array($uploadIndex); + $return[] = $error; + } + } + if ($softInode > $hardInode) { + if ($uploadIndex == null) { + $return[] = $this->messages['inode_cmp'][0]; + } + else { + $error = $this->messages['inode_cmp'][1]; + $error[] = array($uploadIndex); + $return[] = $error; + } + } + return $return; + } + + /** + * Checks input values of account profiles. + * + * @param array $options a hash array (name => value) containing the options + * @return array list of error messages (array(type, title, text)) to generate StatusMessages, if any + */ + function check_profileOptions($options) { + $messages = parent::check_profileOptions($options); + $quotas = explode(';', $options['systemQuotas_quota'][0]); + for ($q = 0; $q < sizeof($quotas); $q++) { + if ($quotas[$q] == '') { + continue; + } + $parts = explode(',', $quotas[$q]); + $messages = array_merge($messages, $this->checkQuota($parts[0], $parts[1], $parts[2], $parts[3], $parts[4])); + } + return $messages; + } + + /** + * Loads the values of an account profile into internal variables. + * + * @param array $profile hash array with profile values (identifier => value) + */ + function load_profile($profile) { + // profile mappings in meta data + parent::load_profile($profile); + if (isset($profile['systemQuotas_quota'][0]) && ($profile['systemQuotas_quota'][0] != '')) { + $this->attributes['quota'] = explode(';', $profile['systemQuotas_quota'][0]); + } + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + public function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $messages = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array('systemQuotas', $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = 'systemQuotas'; + // add quota + if (isset($rawAccounts[$i][$ids['systemQuotas_quota']]) && ($rawAccounts[$i][$ids['systemQuotas_quota']] != '')) { + $quotas = explode(';', $rawAccounts[$i][$ids['systemQuotas_quota']]); + for ($q = 0; $q < sizeof($quotas); $q++) { + $parts = explode(',', $quotas[$q]); + $messages = array_merge($messages, $this->checkQuota($parts[0], $parts[1], $parts[2], $parts[3], $parts[4], $i)); + $partialAccounts[$i]['quota'][] = $quotas[$q]; + } + } + } + return $messages; + } + + /** + * Returns a list of PDF entries + */ + public function get_pdfEntries() { + $return = array(); + if (isset($this->attributes['quota'][0])) { + $quotas[] = '' . + '' . _('Mountpoint') . '' . + '' . _('Soft block') . '' . + '' . _('Hard block') . '' . + '' . _('Soft inode') . '' . + '' . _('Hard inode') . ''; + for ($i = 0; $i < sizeof($this->attributes['quota']); $i++) { + $parts = explode(',', $this->attributes['quota'][$i]); + $quotas[] = '' . + '' . $parts[0] . '' . + '' . $parts[1] . '' . + '' . $parts[2] . '' . + '' . $parts[3] . '' . + '' . $parts[4] . ''; + } + $return['systemQuotas_quota'] = $quotas; + } + return $return; + } + +} + + +?> diff --git a/lam/lib/modules/windowsGroup.inc b/lam/lib/modules/windowsGroup.inc new file mode 100644 index 00000000..3bd2243e --- /dev/null +++ b/lam/lib/modules/windowsGroup.inc @@ -0,0 +1,801 @@ +groupTypes = array( + _('Security') => windowsGroup::TYPE_SECURITY, + _('Distribution') => windowsGroup::TYPE_DISTRIBUTION, + ); + $this->groupScopes = array( + _('Domain local') => windowsGroup::SCOPE_DOMAIN_LOCAL, + _('Global') => windowsGroup::SCOPE_GLOBAL, + _('Universal') => windowsGroup::SCOPE_UNIVERSAL, + ); + // call parent constructor + parent::__construct($scope); + } + + /** + * Returns true if this module can manage accounts of the current type, otherwise false. + * + * @return boolean true if module fits + */ + public function can_manage() { + return in_array($this->get_scope(), array('group')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + public function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'samba.png'; + // this is a base module + $return["is_base"] = true; + // RDN attribute + $return["RDN"] = array("cn" => "high"); + // LDAP filter + $return["ldap_filter"] = array('and' => "", 'or' => '(objectClass=group)'); + // alias name + $return["alias"] = _("Windows"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('group', 'securityPrincipal', 'mailRecipient'); + // managed attributes + $return['attributes'] = array('cn', 'description', 'info', 'mail', 'member', 'sAMAccountName', 'groupType', + 'managedBy', 'msSFU30Name', 'msSFU30NisDomain'); + // help Entries + $return['help'] = array( + 'hiddenOptions' => array( + "Headline" => _("Hidden options"), + "Text" => _("The selected options will not be managed inside LAM. You can use this to reduce the number of displayed input fields.") + ), + 'cn' => array( + "Headline" => _('Group name'), 'attr' => 'cn, sAMAccountName', + "Text" => _('Please enter the group name.') + ), + 'description' => array( + "Headline" => _('Description'), 'attr' => 'description', + "Text" => _('Please enter a descriptive text for this group.') + ), + 'info' => array( + "Headline" => _('Notes'), 'attr' => 'info', + "Text" => _('Additional notes to describe this entry.') + ), + 'mail' => array( + "Headline" => _('Email address'), 'attr' => 'mail', + "Text" => _('The list\'s email address.') + ), + 'member' => array( + "Headline" => _('Members'), 'attr' => 'member', + "Text" => _('This is a list of members of this group.') + ), + 'memberList' => array( + "Headline" => _('Members'), 'attr' => 'member', + "Text" => _('This is a list of members of this group. Multiple members are separated by semicolons.') + ), + 'groupType' => array( + "Headline" => _('Group type'), 'attr' => 'groupType', + "Text" => _('Security groups are used for permission management and distribution groups as email lists.') + ), + 'groupScope' => array( + "Headline" => _('Group scope'), 'attr' => 'groupType', + "Text" => _('Please specify the group scope.') + ), + 'managedBy' => array( + "Headline" => _('Managed by'), 'attr' => 'managedBy', + "Text" => _('The group is managed by this contact person.') + ), + 'msSFU30Name' => array( + "Headline" => _('NIS name'), 'attr' => 'msSFU30Name', + "Text" => _('Group name for NIS.') + ), + 'msSFU30NisDomain' => array( + "Headline" => _('NIS domain'), 'attr' => 'msSFU30NisDomain', + "Text" => _('NIS domain name.') + ), + ); + // configuration settings + $configContainer = new htmlTable(); + $configContainerHead = new htmlTable(); + $configContainerHead->addElement(new htmlOutputText(_('Hidden options'))); + $configContainerHead->addElement(new htmlHelpLink('hiddenOptions')); + $configContainerOptions = new htmlTable(); + $configContainer->addElement($configContainerHead, true); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsGroup_hidemail', false, _('Email address'), null, false)); + $configContainerOptions->addElement(new htmlOutputText(' ')); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsGroup_hidemanagedBy', false, _('Managed by'), null, false)); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsGroup_hidemsSFU30Name', true, _('NIS name'), null, false)); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsGroup_hidemsSFU30NisDomain', true, _('NIS domain'), null, false)); + $configContainer->addElement($configContainerOptions, true); + $return['config_options']['all'] = $configContainer; + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'windowsGroup_name', + 'description' => _('Group name'), + 'help' => 'cn', + 'example' => _('Domain administrators'), + 'required' => true + ), + array( + 'name' => 'windowsGroup_description', + 'description' => _('Description'), + 'help' => 'description', + 'example' => _('Domain administrators'), + ), + array( + 'name' => 'windowsGroup_notes', + 'description' => _('Notes'), + 'help' => 'info', + 'example' => _('Domain administrators'), + ), + array( + 'name' => 'windowsGroup_scope', + 'description' => _('Group scope'), + 'help' => 'groupScope', + 'values' => implode(', ', array_values($this->groupScopes)), + 'example' => windowsGroup::SCOPE_GLOBAL, + 'default' => windowsGroup::SCOPE_GLOBAL, + ), + array( + 'name' => 'windowsGroup_type', + 'description' => _('Group type'), + 'help' => 'groupType', + 'values' => implode(', ', array_values($this->groupTypes)), + 'example' => windowsGroup::TYPE_SECURITY, + 'default' => windowsGroup::TYPE_SECURITY, + ), + array( + 'name' => 'windowsGroup_members', + 'description' => _('Members'), + 'help' => 'memberList', + 'example' => 'uid=user1,o=test;uid=user2,o=test', + ), + ); + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemail')) { + $return['upload_columns'][] = array( + 'name' => 'windowsGroup_mail', + 'description' => _('Email address'), + 'help' => 'mail', + 'example' => _('group@company.com'), + ); + } + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemanagedBy')) { + $return['upload_columns'][] = array( + 'name' => 'windowsGroup_managedBy', + 'description' => _('Managed by'), + 'help' => 'managedBy', + 'example' => 'cn=user1,o=test', + ); + } + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemsSFU30Name', true)) { + $return['upload_columns'][] = array( + 'name' => 'windowsGroup_msSFU30Name', + 'description' => _('NIS name'), + 'help' => 'msSFU30Name', + 'example' => _('adminstrators'), + ); + } + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemsSFU30NisDomain', true)) { + $return['upload_columns'][] = array( + 'name' => 'windowsGroup_msSFU30NisDomain', + 'description' => _('NIS domain'), + 'help' => 'msSFU30NisDomain', + 'example' => _('domain'), + ); + } + // profile options + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemsSFU30NisDomain', true)) { + $profileContainer = new htmlTable(); + $profileContainer->addElement(new htmlTableExtendedInputField(_('NIS domain'), 'windowsGroup_msSFU30NisDomain', null, 'msSFU30NisDomain'), true); + $return['profile_options'] = $profileContainer; + $return['profile_mappings']['windowsGroup_msSFU30NisDomain'] = 'msSFU30NisDomain'; + } + // available PDF fields + $return['PDF_fields'] = array( + 'cn' => _('Group name'), + 'description' => _('Description'), + 'info' => _('Notes'), + 'member' => _('Members'), + 'groupType' => _('Group type'), + 'groupScope' => _('Group scope'), + ); + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemail')) { + $return['PDF_fields']['mail'] = _('Email address'); + } + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemanagedBy')) { + $return['PDF_fields']['managedBy'] = _('Managed by'); + } + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemsSFU30Name', true)) { + $return['PDF_fields']['msSFU30Name'] = _('NIS name'); + } + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemsSFU30NisDomain', true)) { + $return['PDF_fields']['msSFU30NisDomain'] = _('NIS domain'); + } + return $return; + } + + /** + * This function fills the $messages variable with output messages from this module. + */ + public function load_Messages() { + $this->messages['cn'][0] = array('ERROR', _('Group name'), _('Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['cn'][1] = array('ERROR', _('Account %s:') . ' windowsGroup_cn', _('Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['mail'][0] = array('ERROR', _('Email address'), _('Please enter a valid email address!')); + $this->messages['mail'][1] = array('ERROR', _('Account %s:') . ' windowsGroup_mail', _('Please enter a valid email address!')); + $this->messages['groupScope'][0] = array('ERROR', _('Account %s:') . ' windowsGroup_groupScope', _('Please enter a valid group scope.')); + $this->messages['groupType'][0] = array('ERROR', _('Account %s:') . ' windowsGroup_groupType', _('Please enter a valid group type.')); + $this->messages['msSFU30Name'][0] = array('ERROR', _('NIS name'), _('NIS name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['msSFU30Name'][1] = array('ERROR', _('Account %s:') . ' windowsGroup_msSFU30Name', _('NIS name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + public function display_html_attributes() { + $container = new htmlTable(); + $this->addSimpleInputTextField($container, 'cn', _('Group name'), true); + $this->addSimpleInputTextField($container, 'description', _('Description'), false); + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemail')) { + $this->addSimpleInputTextField($container, 'mail', _('Email address'), false); + } + // group type + $groupType = windowsGroup::TYPE_SECURITY; + $groupScope = windowsGroup::SCOPE_GLOBAL; + if (isset($this->attributes['groupType'][0])) { + if ($this->attributes['groupType'][0] & 2) { + $groupScope = windowsGroup::SCOPE_GLOBAL; + } + elseif ($this->attributes['groupType'][0] & 4) { + $groupScope = windowsGroup::SCOPE_DOMAIN_LOCAL; + } + elseif ($this->attributes['groupType'][0] & 8) { + $groupScope = windowsGroup::SCOPE_UNIVERSAL; + } + if ($this->attributes['groupType'][0] & 0x80000000) { + $groupType = windowsGroup::TYPE_SECURITY; + } + else { + $groupType = windowsGroup::TYPE_DISTRIBUTION; + } + } + $scopeList = $this->groupScopes; + // do not allow invalid conversions + if (isset($this->orig['groupType'][0])) { + $flippedScopes = array_flip($this->groupScopes); + if ($this->orig['groupType'][0] & 2) { + // no change from global to domain local + unset($scopeList[$flippedScopes[windowsGroup::SCOPE_DOMAIN_LOCAL]]); + } + elseif ($this->orig['groupType'][0] & 4) { + // no change from domain local to global + unset($scopeList[$flippedScopes[windowsGroup::SCOPE_GLOBAL]]); + } + } + $groupScopeSelect = new htmlTableExtendedSelect('groupScope', $scopeList, array($groupScope), _('Group scope'), 'groupScope'); + $groupScopeSelect->setHasDescriptiveElements(true); + $container->addElement($groupScopeSelect, true); + $groupTypeSelect = new htmlTableExtendedSelect('groupType', $this->groupTypes, array($groupType), _('Group type'), 'groupType'); + $groupTypeSelect->setHasDescriptiveElements(true); + $container->addElement($groupTypeSelect, true); + // notes + $info = ''; + if (isset($this->attributes['info'][0])) { + $info = $this->attributes['info'][0]; + } + $container->addElement(new htmlTableExtendedInputTextarea('info', $info, 30, 5, _('Notes'), 'info'), true); + // managed by + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemanagedBy')) { + $container->addElement(new htmlOutputText(_('Managed by'))); + $managedBy = '-'; + if (isset($this->attributes['managedBy'][0])) { + $managedBy = $this->attributes['managedBy'][0]; + } + $container->addElement(new htmlOutputText(getAbstractDN($managedBy))); + $container->addElement(new htmlHelpLink('managedBy'), true); + $container->addElement(new htmlOutputText('')); + $managedByButtons = new htmlGroup(); + $managedByButtons->addElement(new htmlAccountPageButton(get_class($this), 'managedBy', 'edit', _('Change'))); + if (isset($this->attributes['managedBy'][0])) { + $managedByButtons->addElement(new htmlSpacer('5px', null)); + $managedByButtons->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'removeManagedBy', _('Remove'))); + } + $container->addElement($managedByButtons, true); + } + // NIS + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemsSFU30Name', true) || !$this->isBooleanConfigOptionSet('windowsGroup_hidemsSFU30NisDomain', true)) { + $container->addElement(new htmlSubTitle(_('NIS')), true); + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemsSFU30Name', true)) { + $this->addSimpleInputTextField($container, 'msSFU30Name', _('NIS name')); + } + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemsSFU30NisDomain', true)) { + $this->addSimpleInputTextField($container, 'msSFU30NisDomain', _('NIS domain')); + } + $container->addVerticalSpace('20px'); + } + // group members + $container->addElement(new htmlSpacer(null, '10px'), true); + $container->addElement(new htmlOutputText(_("Group members"))); + $container->addElement(new htmlAccountPageButton(get_class($this), 'user', 'open', _('Edit members'))); + $container->addElement(new htmlHelpLink('member'), true); + $memberList = array(); + if (isset($this->attributes['member'])) { + for ($i = 0; $i < sizeof($this->attributes['member']); $i++) { + $memberList[] = $this->attributes['member'][$i]; + } + usort($memberList, 'compareDN'); + } + $members = new htmlTable(); + $members->alignment = htmlElement::ALIGN_RIGHT; + $members->colspan = 3; + for ($i = 0; $i < sizeof($memberList); $i++) { + $member = new htmlOutputText(getAbstractDN($memberList[$i])); + $member->alignment = htmlElement::ALIGN_RIGHT; + $members->addElement($member, true); + } + $container->addElement(new htmlOutputText('')); + $container->addElement($members, true); + $container->addElement(new htmlEqualWidth(array('groupType', 'groupScope'))); + return $container; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + public function process_attributes() { + $return = array(); + // cn + $this->attributes['cn'][0] = $_POST['cn']; + $this->attributes['sAMAccountName'][0] = $_POST['cn']; + if (!get_preg($_POST['cn'], 'groupname')) { + $return[] = $this->messages['cn'][0]; + } + // description + $this->attributes['description'][0] = $_POST['description']; + // email + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemail')) { + $this->attributes['mail'][0] = $_POST['mail']; + if (!empty($_POST['mail']) && !get_preg($_POST['mail'], 'email')) { + $return[] = $this->messages['mail'][0]; + } + } + // group scope + switch ($_POST['groupScope']) { + case windowsGroup::SCOPE_DOMAIN_LOCAL: + $this->attributes['groupType'][0] = 4; + break; + case windowsGroup::SCOPE_GLOBAL: + $this->attributes['groupType'][0] = 2; + break; + case windowsGroup::SCOPE_UNIVERSAL: + $this->attributes['groupType'][0] = 8; + break; + } + // group type + if ($_POST['groupType'] == windowsGroup::TYPE_SECURITY) { + $this->attributes['groupType'][0] = $this->attributes['groupType'][0] - 2147483648; + } + // notes + $this->attributes['info'][0] = $_POST['info']; + // managed by + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemanagedBy')) { + if (isset($_POST['form_subpage_' . get_class($this) . '_attributes_removeManagedBy'])) { + unset($this->attributes['managedBy']); + } + } + // NIS name + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemsSFU30Name', true)) { + if ($this->getAccountContainer()->isNewAccount && !isset($this->attributes['msSFU30Name']) && empty($_POST['msSFU30Name'])) { + $this->attributes['msSFU30Name'][0] = $_POST['cn']; + } + else { + $this->attributes['msSFU30Name'][0] = $_POST['msSFU30Name']; + } + if (!empty($this->attributes['msSFU30Name'][0]) && !get_preg($this->attributes['msSFU30Name'][0], 'groupname')) { + $return[] = $this->messages['msSFU30Name'][0]; + } + } + // NIS domain + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemsSFU30Name', true)) { + $this->attributes['msSFU30NisDomain'][0] = $_POST['msSFU30NisDomain']; + } + return $return; + } + + /** + * This function will create the meta HTML code to show a page to change the member attribute. + * + * @return htmlElement HTML meta data + */ + function display_html_managedBy() { + $return = new htmlTable(); + // show possible managers + $options = array(); + $filter = get_ldap_filter('user'); + $entries = searchLDAPByFilter($filter, array('dn'), array('user')); + for ($i = 0; $i < sizeof($entries); $i++) { + $entries[$i] = $entries[$i]['dn']; + } + // sort by DN + usort($entries, 'compareDN'); + for ($i = 0; $i < sizeof($entries); $i++) { + $options[getAbstractDN($entries[$i])] = $entries[$i]; + } + $selected = array(); + if (isset($this->attributes['managedBy'][0])) { + $selected = array($this->attributes['managedBy'][0]); + if (!in_array($selected[0], $options)) { + $options[getAbstractDN($selected[0])] = $selected[0]; + } + } + $membersSelect = new htmlSelect('managedBy', $options, $selected); + $membersSelect->setHasDescriptiveElements(true); + $membersSelect->setRightToLeftTextDirection(true); + $membersSelect->setSortElements(false); + $membersSelect->setTransformSingleSelect(false); + $return->addElement($membersSelect, true); + $buttonTable = new htmlTable(); + $buttonTable->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'set', _('Change'))); + $buttonTable->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'cancel', _('Cancel'))); + $return->addElement($buttonTable); + return $return; + } + + /** + * Processes user input of the members page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_managedBy() { + $return = array(); + if (isset($_POST['form_subpage_' . get_class($this) . '_attributes_set'])) { + $this->attributes['managedBy'][] = $_POST['managedBy']; + } + return $return; + } + + /** + * This function will create the meta HTML code to show a page to change the member attribute. + * + * @return htmlElement HTML meta data + */ + function display_html_user() { + $return = new htmlTable(); + // show list of possible new members + if (isset($_POST['form_subpage_' . get_class($this) . '_user_select']) && isset($_POST['type'])) { + $options = array(); + $filter = get_ldap_filter($_POST['type']); + $entries = searchLDAPByFilter($filter, array('dn'), array($_POST['type'])); + for ($i = 0; $i < sizeof($entries); $i++) { + $entries[$i] = $entries[$i]['dn']; + } + // sort by DN + usort($entries, 'compareDN'); + for ($i = 0; $i < sizeof($entries); $i++) { + if (!isset($this->attributes['member']) || !in_array($entries[$i], $this->attributes['member'])) { + $options[getAbstractDN($entries[$i])] = $entries[$i]; + } + } + $size = 20; + if (sizeof($options) < 20) $size = sizeof($options); + $membersSelect = new htmlSelect('members', $options, array(), $size); + $membersSelect->setHasDescriptiveElements(true); + $membersSelect->setMultiSelect(true); + $membersSelect->setRightToLeftTextDirection(true); + $membersSelect->setSortElements(false); + $membersSelect->setTransformSingleSelect(false); + $return->addElement($membersSelect, true); + $buttonTable = new htmlTable(); + $buttonTable->addElement(new htmlAccountPageButton(get_class($this), 'user', 'addMembers', _('Add'))); + $buttonTable->addElement(new htmlAccountPageButton(get_class($this), 'user', 'cancel', _('Cancel'))); + $return->addElement($buttonTable); + return $return; + } + // show existing members + $membersTemp = array(); + if (isset($this->attributes['member'])) { + $membersTemp = $this->attributes['member']; + } + // sort by DN + usort($membersTemp, 'compareDN'); + $members = array(); + for ($i = 0; $i < sizeof($membersTemp); $i++) { + $members[getAbstractDN($membersTemp[$i])] = $membersTemp[$i]; + } + $size = 20; + if (isset($this->attributes['member']) && (sizeof($this->attributes['member']) < 20)) { + $size = sizeof($this->attributes['member']); + } + if (sizeof($members) > 0) { + $membersSelect = new htmlSelect('members', $members, array(), $size); + $membersSelect->setHasDescriptiveElements(true); + $membersSelect->setMultiSelect(true); + $membersSelect->setRightToLeftTextDirection(true); + $membersSelect->setSortElements(false); + $membersSelect->setTransformSingleSelect(false); + $return->addElement($membersSelect, true); + $removeButton = new htmlAccountPageButton(get_class($this), 'user', 'remove', _('Remove selected entries')); + $removeButton->colspan = 3; + $return->addElement($removeButton, true); + $return->addElement(new htmlOutputText(' ', false), true); + } + $types = $_SESSION['config']->get_ActiveTypes(); + $options = array(); + $optionsSelected = array(); + for ($i = 0; $i < sizeof($types); $i++) { + $options[getTypeAlias($types[$i])] = $types[$i]; + if ($types[$i] == 'user') { + $optionsSelected[] = $types[$i]; + } + } + $typeTable = new htmlTable(); + $typeTable->addElement(new htmlOutputText(_('Add entries of this type:') . ' ')); + $typeSelect = new htmlSelect('type', $options, $optionsSelected); + $typeSelect->setHasDescriptiveElements(true); + $typeTable->addElement($typeSelect); + $typeTable->addElement(new htmlAccountPageButton(get_class($this), 'user', 'select', _('Ok'))); + $return->addElement($typeTable, true); + $return->addElement(new htmlOutputText(' ', false), true); + $return->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'membersBack', _('Back'))); + return $return; + } + + /** + * Processes user input of the members page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_user() { + $return = array(); + if (isset($_POST['form_subpage_' . get_class($this) . '_user_remove']) && isset($_POST['members'])) { + $members = array_flip($this->attributes['member']); + for ($i = 0; $i < sizeof($_POST['members']); $i++) { + if (isset($members[$_POST['members'][$i]])) { + unset($members[$_POST['members'][$i]]); + } + } + $this->attributes['member'] = array_values(array_flip($members)); + } + elseif (isset($_POST['form_subpage_' . get_class($this) . '_user_addMembers']) && isset($_POST['members'])) { + for ($i = 0; $i < sizeof($_POST['members']); $i++) { + $this->attributes['member'][] = $_POST['members'][$i]; + $this->attributes['member'] = array_unique($this->attributes['member']); + } + } + // check input + if (!isset($_POST['form_subpage_' . get_class($this) . '_user_select'])) { + if (!$this->isBooleanConfigOptionSet('groupOfNames_membersOptional')) { + if (!isset($this->attributes['member']) || (sizeof($this->attributes['member']) < 1)) { + $return[] = $this->messages['member'][0]; + } + } + } + return $return; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + public function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $errors = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array('group', $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = 'group'; + // cn + sAMAccountName + if ($rawAccounts[$i][$ids['windowsGroup_name']] != "") { + if (get_preg($rawAccounts[$i][$ids['windowsGroup_name']], 'groupname')) { + $partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['windowsGroup_name']]; + $partialAccounts[$i]['sAMAccountName'] = $rawAccounts[$i][$ids['windowsGroup_name']]; + } + else { + $errMsg = $this->messages['cn'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + // description + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsGroup_description', 'description'); + // notes + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsGroup_notes', 'info'); + // email + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemail')) { + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsGroup_mail', 'mail', + 'email', $this->messages['mail'][1], $errors); + } + // managed by + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemanagedBy')) { + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsGroup_managedBy', 'managedBy'); + } + // add members + if ($rawAccounts[$i][$ids['windowsGroup_members']] != "") { + $partialAccounts[$i]['member'] = explode(";", $rawAccounts[$i][$ids['windowsGroup_members']]); + } + // group scope + if ($rawAccounts[$i][$ids['windowsGroup_scope']] != "") { + if (in_array($rawAccounts[$i][$ids['windowsGroup_scope']], $this->groupScopes)) { + switch ($rawAccounts[$i][$ids['windowsGroup_scope']]) { + case windowsGroup::SCOPE_DOMAIN_LOCAL: + $partialAccounts[$i]['groupType'] = 4; + break; + case windowsGroup::SCOPE_GLOBAL: + $partialAccounts[$i]['groupType'] = 2; + break; + case windowsGroup::SCOPE_UNIVERSAL: + $partialAccounts[$i]['groupType'] = 8; + break; + } + } + else { + $errMsg = $this->messages['groupScope'][0]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + else { + $partialAccounts[$i]['groupType'] = 2; + } + // group type + if ($rawAccounts[$i][$ids['windowsGroup_type']] != "") { + if (in_array($rawAccounts[$i][$ids['windowsGroup_type']], $this->groupTypes)) { + if ($rawAccounts[$i][$ids['windowsGroup_type']] == windowsGroup::TYPE_SECURITY) { + $partialAccounts[$i]['groupType'] = $partialAccounts[$i]['groupType'] - 2147483648; + } + } + else { + $errMsg = $this->messages['groupType'][0]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + else { + $partialAccounts[$i]['groupType'] = $partialAccounts[$i]['groupType'] - 2147483648; + } + // NIS name + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemsSFU30Name', true)) { + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsGroup_msSFU30Name', 'msSFU30Name', + 'groupname', $this->messages['msSFU30Name'][1], $errors); + } + // NIS domain + if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemsSFU30NisDomain', true)) { + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsGroup_msSFU30NisDomain', 'msSFU30NisDomain'); + } + } + return $errors; + } + + /** + * Returns a list of PDF entries + */ + public function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'cn', _('Group name')); + $this->addSimplePDFField($return, 'description', _('Description')); + $this->addSimplePDFField($return, 'info', _('Notes')); + $this->addSimplePDFField($return, 'mail', _('Email address')); + $this->addSimplePDFField($return, 'msSFU30Name', _('NIS name')); + $this->addSimplePDFField($return, 'msSFU30NisDomain', _('NIS domain')); + // group type + $groupType = windowsGroup::TYPE_SECURITY; + $groupScope = windowsGroup::SCOPE_GLOBAL; + if (isset($this->attributes['groupType'][0])) { + if ($this->attributes['groupType'][0] & 2) { + $groupScope = windowsGroup::SCOPE_GLOBAL; + } + elseif ($this->attributes['groupType'][0] & 4) { + $groupScope = windowsGroup::SCOPE_DOMAIN_LOCAL; + } + elseif ($this->attributes['groupType'][0] & 8) { + $groupScope = windowsGroup::SCOPE_UNIVERSAL; + } + if ($this->attributes['groupType'][0] & 0x80000000) { + $groupType = windowsGroup::TYPE_SECURITY; + } + else { + $groupType = windowsGroup::TYPE_DISTRIBUTION; + } + } + $groupTypeLabels = array_flip($this->groupTypes); + $groupType = $groupTypeLabels[$groupType]; + $groupScopeLabels = array_flip($this->groupScopes); + $groupScope = $groupScopeLabels[$groupScope]; + $return[get_class($this) . '_groupScope'] = array('' . _('Group scope') . '' . $groupScope . ''); + $return[get_class($this) . '_groupType'] = array('' . _('Group type') . '' . $groupType . ''); + // managed by + $managedBy = ''; + if (isset($this->attributes['managedBy'][0])) { + $managedBy = getAbstractDN($this->attributes['managedBy'][0]); + $return[get_class($this) . '_managedBy'] = array('' . _('Managed by') . '' . $managedBy . ''); + } + // members + if (sizeof($this->attributes['member']) > 0) { + $memberList = array(); + if (isset($this->attributes['member']) && is_array($this->attributes['member'])) { + $memberList = $this->attributes['member']; + } + usort($memberList, 'compareDN'); + $return[get_class($this) . '_member'][0] = '' . _('Members') . '' . $memberList[0] . ''; + for ($i = 1; $i < sizeof($memberList); $i++) { + $return[get_class($this) . '_member'][] = '' . $memberList[$i] . ''; + } + } + return $return; + } + +} + + +?> diff --git a/lam/lib/modules/windowsHost.inc b/lam/lib/modules/windowsHost.inc new file mode 100644 index 00000000..28e32fdd --- /dev/null +++ b/lam/lib/modules/windowsHost.inc @@ -0,0 +1,303 @@ +get_scope(), array('host')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + public function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'samba.png'; + // this is a base module + $return["is_base"] = true; + // RDN attribute + $return["RDN"] = array("cn" => "high"); + // LDAP filter + $return["ldap_filter"] = array('and' => "", 'or' => '(objectClass=computer)'); + // alias name + $return["alias"] = _("Windows"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('computer', 'securityPrincipal'); + // managed attributes + $return['attributes'] = array('cn', 'description', 'location', 'sAMAccountName', 'managedBy', 'operatingSystem', 'operatingSystemVersion', 'dNSHostName'); + // help Entries + $return['help'] = array( + 'cn' => array( + "Headline" => _('Host name'), 'attr' => 'cn, sAMAccountName', + "Text" => _('Please enter the host name.') + ), + 'description' => array( + "Headline" => _('Description'), 'attr' => 'description', + "Text" => _('Please enter a descriptive text for this host.') + ), + 'location' => array( + "Headline" => _('Location'), 'attr' => 'location', + "Text" => _('This is the host\'s location (e.g. Munich, server room 3).') + ), + 'managedBy' => array( + "Headline" => _('Managed by'), 'attr' => 'managedBy', + "Text" => _('The host is managed by this contact person.') + ), + ); + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'windowsHost_name', + 'description' => _('Host name'), + 'help' => 'cn', + 'example' => _('PC01'), + 'required' => true + ), + array( + 'name' => 'windowsHost_description', + 'description' => _('Description'), + 'help' => 'description', + ), + array( + 'name' => 'windowsHost_location', + 'description' => _('Location'), + 'help' => 'location', + 'example' => _('MyCity'), + ), + array( + 'name' => 'windowsHost_managedBy', + 'description' => _('Managed by'), + 'help' => 'managedBy', + 'example' => 'cn=user1,o=test', + ), + ); + // available PDF fields + $return['PDF_fields'] = array( + 'cn' => _('Host name'), + 'description' => _('Description'), + 'location' => _('Location'), + 'managedBy' => _('Managed by'), + ); + return $return; + } + + /** + * This function fills the $messages variable with output messages from this module. + */ + public function load_Messages() { + $this->messages['cn'][0] = array('ERROR', _('Host name'), _('Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['cn'][1] = array('ERROR', _('Account %s:') . ' windowsHost_cn', _('Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + public function display_html_attributes() { + $container = new htmlTable(); + $this->addSimpleInputTextField($container, 'cn', _('Host name'), true); + $this->addSimpleInputTextField($container, 'description', _('Description'), false); + $this->addSimpleInputTextField($container, 'location', _('Location'), false); + // managed by + $container->addElement(new htmlOutputText(_('Managed by'))); + $managedBy = '-'; + if (isset($this->attributes['managedBy'][0])) { + $managedBy = $this->attributes['managedBy'][0]; + } + $container->addElement(new htmlOutputText(getAbstractDN($managedBy))); + $container->addElement(new htmlHelpLink('managedBy'), true); + $container->addElement(new htmlOutputText('')); + $managedByButtons = new htmlGroup(); + $managedByButtons->addElement(new htmlAccountPageButton(get_class($this), 'managedBy', 'edit', _('Change'))); + if (isset($this->attributes['managedBy'][0])) { + $managedByButtons->addElement(new htmlSpacer('5px', null)); + $managedByButtons->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'removeManagedBy', _('Remove'))); + } + $container->addElement($managedByButtons, true); + return $container; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + public function process_attributes() { + $return = array(); + // cn + $this->attributes['cn'][0] = $_POST['cn']; + $this->attributes['sAMAccountName'][0] = $_POST['cn'] . '$'; + if (!get_preg($_POST['cn'], 'hostname')) { + $return[] = $this->messages['cn'][0]; + } + // description + $this->attributes['description'][0] = $_POST['description']; + // location + $this->attributes['location'][0] = $_POST['location']; + // managed by + if (isset($_POST['form_subpage_' . get_class($this) . '_attributes_removeManagedBy'])) { + unset($this->attributes['managedBy']); + } + if ($this->getAccountContainer()->isNewAccount) { + $this->attributes['userAccountControl'][0] = 4128; // machine trust account, no password required + } + return $return; + } + + /** + * This function will create the meta HTML code to show a page to change the member attribute. + * + * @return htmlElement HTML meta data + */ + function display_html_managedBy() { + $return = new htmlTable(); + // show possible managers + $options = array(); + $filter = get_ldap_filter('user'); + $entries = searchLDAPByFilter($filter, array('dn'), array('user')); + for ($i = 0; $i < sizeof($entries); $i++) { + $entries[$i] = $entries[$i]['dn']; + } + // sort by DN + usort($entries, 'compareDN'); + for ($i = 0; $i < sizeof($entries); $i++) { + $options[getAbstractDN($entries[$i])] = $entries[$i]; + } + $selected = array(); + if (isset($this->attributes['managedBy'][0])) { + $selected = array($this->attributes['managedBy'][0]); + if (!in_array($selected[0], $options)) { + $options[getAbstractDN($selected[0])] = $selected[0]; + } + } + $membersSelect = new htmlSelect('managedBy', $options, $selected); + $membersSelect->setHasDescriptiveElements(true); + $membersSelect->setRightToLeftTextDirection(true); + $membersSelect->setSortElements(false); + $membersSelect->setTransformSingleSelect(false); + $return->addElement($membersSelect, true); + $buttonTable = new htmlTable(); + $buttonTable->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'set', _('Change'))); + $buttonTable->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'cancel', _('Cancel'))); + $return->addElement($buttonTable); + return $return; + } + + /** + * Processes user input of the members page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_managedBy() { + $return = array(); + if (isset($_POST['form_subpage_' . get_class($this) . '_attributes_set'])) { + $this->attributes['managedBy'][] = $_POST['managedBy']; + } + return $return; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + public function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $errors = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array('computer', $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = 'computer'; + // cn + sAMAccountName + if ($rawAccounts[$i][$ids['windowsHost_name']] != "") { + if (get_preg($rawAccounts[$i][$ids['windowsHost_name']], 'hostname')) { + $partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['windowsHost_name']]; + $partialAccounts[$i]['sAMAccountName'] = $rawAccounts[$i][$ids['windowsHost_name']] . '$'; + } + else { + $errMsg = $this->messages['cn'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + // description + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsHost_description', 'description'); + // location + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsHost_location', 'location'); + // managed by + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsHost_managedBy', 'managedBy'); + // machine trust account, no password required + $partialAccounts[$i]['userAccountControl'][0] = 4128; + } + return $errors; + } + + /** + * Returns a list of PDF entries + */ + public function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'cn', _('Host name')); + $this->addSimplePDFField($return, 'description', _('Description')); + $this->addSimplePDFField($return, 'location', _('Location')); + // managed by + $managedBy = ''; + if (isset($this->attributes['managedBy'][0])) { + $managedBy = getAbstractDN($this->attributes['managedBy'][0]); + $return[get_class($this) . '_managedBy'] = array('' . _('Managed by') . '' . $managedBy . ''); + } + return $return; + } + +} + + +?> diff --git a/lam/lib/modules/windowsPosixGroup.inc b/lam/lib/modules/windowsPosixGroup.inc new file mode 100644 index 00000000..3424d313 --- /dev/null +++ b/lam/lib/modules/windowsPosixGroup.inc @@ -0,0 +1,95 @@ +manageCnAttribute = false; + $this->manageDescriptionAttribute = false; + // different password attribute name + $this->passwordAttrName = 'unixUserPassword'; + // make optional + $this->autoAddObjectClasses = false; + // call parent constructor + parent::__construct($scope); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + function get_metaData() { + $return = parent::get_metaData(); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array('posixGroup')); + // this is no base module (in contrast to parent class) + $return["is_base"] = false; + // no RDN attribute setting + $return["RDN"] = array(); + return $return; + } + + /** + * Controls if the module button the account page is visible and activated. + * + * @return string status ("enabled", "disabled", "hidden") + */ + function getButtonStatus() { + return "enabled"; + } + + /** + * This functions is used to check if all settings for this module have been made. + * + * @return boolean true, if settings are complete + */ + function module_complete() { + return true; + } + +} + +?> \ No newline at end of file diff --git a/lam/lib/modules/windowsUser.inc b/lam/lib/modules/windowsUser.inc new file mode 100644 index 00000000..16d17281 --- /dev/null +++ b/lam/lib/modules/windowsUser.inc @@ -0,0 +1,2137 @@ +get_scope(), array('user')); + } + + /** + * Returns meta data that is interpreted by parent class + * + * @return array array with meta data + * + * @see baseModule::get_metaData() + */ + public function get_metaData() { + $return = array(); + // icon + $return['icon'] = 'samba.png'; + // this is a base module + $return["is_base"] = true; + // PHP extensions + $return['extensions'] = array('iconv'); + // RDN attribute + $return["RDN"] = array("cn" => "high"); + // LDAP filter + $return["ldap_filter"] = array('and' => '(!(objectClass=computer))', 'or' => "(objectClass=user)"); + // alias name + $return["alias"] = _("Windows"); + // module dependencies + $return['dependencies'] = array('depends' => array(), 'conflicts' => array()); + // managed object classes + $return['objectClasses'] = array('user', 'securityPrincipal'); + // managed attributes + $return['attributes'] = array('userPrincipalName', 'cn', 'sAMAccountName', 'description', 'displayName', 'givenName', 'initials', + 'l', 'mail', 'otherTelephone', 'physicalDeliveryOfficeName', 'postalCode', 'postOfficeBox', 'sn', 'st', + 'streetAddress', 'telephoneNumber', 'url', 'wWWHomePage', 'userAccountControl', 'profilePath', 'scriptPath', + 'pwdLastSet', 'otherMailbox', 'homeDirectory', 'homeDrive', 'msSFU30Name', 'msSFU30NisDomain'); + // help Entries + $return['help'] = array( + 'cn' => array( + "Headline" => _('Common name'), 'attr' => 'cn', + "Text" => _('This is the natural name of the user. If empty, the first and last name or user name is used.') + . ' ' . _('You can use "$user", "$firstname" and "$lastname" as wildcards for user name, first and last name.') + ), + 'userPrincipalName' => array( + "Headline" => _('User name'), 'attr' => 'userPrincipalName', + "Text" => _('Please enter the user\'s name.') + ), + 'userPrincipalNameDomain' => array( + "Headline" => _('Domain'), 'attr' => 'userPrincipalName', + "Text" => _('Windows domain name of account.') + ), + 'sAMAccountName' => array( + "Headline" => _('User name (pre W2K)'), 'attr' => 'sAMAccountName', + "Text" => _('Please enter the user\'s name.') . ' ' . _('This user name is only used for old Windows versions (e.g. NT4, W98).') + ), + 'description' => array( + "Headline" => _('Description'), 'attr' => 'description', + "Text" => _('Please enter a descriptive text for this user.') + ), + 'displayName' => array( + "Headline" => _('Display name'), 'attr' => 'displayName', + "Text" => _('This is the account\'s full name on Windows systems.') + . ' ' . _('You can use "$user", "$firstname" and "$lastname" as wildcards for user name, first and last name.') + ), + 'givenName' => array( + "Headline" => _('First name'), 'attr' => 'givenName', + "Text" => _('First name of user. Only letters, - and spaces are allowed.') + ), + 'initials' => array( + "Headline" => _('Initials'), 'attr' => 'initials', + "Text" => _('The initials of the user\'s first names.') + ), + 'l' => array( + "Headline" => _('Location'), 'attr' => 'l', + "Text" => _('This describes the location of the user.') + ), + 'mail' => array( + "Headline" => _('Email address'), 'attr' => 'mail', + "Text" => _('The user\'s email address.') . ' ' . _('You can use "$user", "$firstname" and "$lastname" as wildcards for user name, first and last name.') + ), + 'otherTelephone' => array( + "Headline" => _('Other telephone numbers'), 'attr' => 'otherTelephone', + "Text" => _('If the user has multiple telephone numbers then please enter it here.') + ), + 'otherTelephoneList' => array( + "Headline" => _('Other telephone numbers'), 'attr' => 'otherTelephone', + "Text" => _('If the user has multiple telephone numbers then please enter it here.') . ' ' . _("Multiple values are separated by semicolon.") + ), + 'physicalDeliveryOfficeName' => array( + "Headline" => _('Office name'), 'attr' => 'physicalDeliveryOfficeName', + "Text" => _('The office name of the user (e.g. YourCompany, Human Resources).') + ), + 'postalCode' => array( + "Headline" => _('Postal code'), 'attr' => 'postalCode', + "Text" => _('The postal code of the user\'s address.') + ), + 'postOfficeBox' => array( + "Headline" => _('Post office box'), 'attr' => 'postOfficeBox', + "Text" => _('The post office box of the user\'s address.') + ), + 'sn' => array( + "Headline" => _('Last name'), 'attr' => 'sn', + "Text" => _('Last name of user. Only letters, - and spaces are allowed.') + ), + 'st' => array( + "Headline" => _('State'), 'attr' => 'st', + "Text" => _('The state where the user resides or works.') + ), + 'streetAddress' => array( + "Headline" => _('Street'), 'attr' => 'streetAddress', + "Text" => _('The street name of the user\'s address.') + ), + 'telephoneNumber' => array( + "Headline" => _('Telephone number'), 'attr' => 'telephoneNumber', + "Text" => _('The user\'s telephone number.') + ), + 'url' => array( + "Headline" => _('Other web sites'), 'attr' => 'url', + "Text" => _('Here you can enter additional web sites for the user.') + ), + 'urlList' => array( + "Headline" => _('Other web sites'), 'attr' => 'url', + "Text" => _('Here you can enter additional web sites for the user.') . ' ' . _("Multiple values are separated by semicolon.") + ), + 'wWWHomePage' => array( + "Headline" => _('Web site'), 'attr' => 'wWWHomePage', + "Text" => _('The user\'s web site (e.g. http://www.company.com).') + ), + "deactivated" => array( + "Headline" => _("Account is deactivated"), + "Text" => _("If checked then the account will be deactivated.")), + "locked" => array( + "Headline" => _("Account is locked"), + "Text" => _("If checked then the account is locked. You may only unlock accounts but not lock them.")), + "noExpire" => array( + "Headline" => _("Password does not expire"), + "Text" => _("If checked password does not expire.")), + "requireCard" => array( + "Headline" => _("Require smartcard"), + "Text" => _("The user must log on using a smart card.")), + "profilePath" => array( + "Headline" => _("Profile path"), 'attr' => 'profilePath', + "Text" => _('Path of the user profile (UNC-path, e.g. \\\\server\\share\\user). $user is replaced with user name.'). ' '. _("Can be left empty.") + . ' ' . _('You can use "$user", "$firstname" and "$lastname" as wildcards for user name, first and last name.') + ), + "scriptPath" => array( + "Headline" => _("Logon script"), 'attr' => 'scriptPath', + "Text" => _('File name and path relative to netlogon-share which should be executed on logon. $user is replaced with user name.'). ' '. _("Can be left empty.") + . ' ' . _('You can use "$user", "$firstname" and "$lastname" as wildcards for user name, first and last name.') + ), + "pwdMustChange" => array ( + "Headline" => _("Password change at next login"), + "Text" => _("If you set this option then the user has to change his password at the next login.")), + "groups" => array ( + "Headline" => _("Groups"), + "Text" => _("Hold the CTRL-key to (de)select multiple groups.")), + "groupsUpload" => array ( + "Headline" => _("Groups"), + "Text" => _("The groups for this account. You can insert a group name or DN.") . ' ' . _("Multiple values are separated by semicolon.")), + 'password' => array( + "Headline" => _("Password"), + "Text" => _("Please enter the password which you want to set for this account.") + ), + 'otherMailbox' => array( + "Headline" => _("Email alias"), 'attr' => 'otherMailbox', + "Text" => _("Email alias for this account.") . ' ' . _('You can use "$user", "$firstname" and "$lastname" as wildcards for user name, first and last name.') + ), + 'otherMailboxList' => array( + "Headline" => _("Email alias"), 'attr' => 'otherMailbox', + "Text" => _("Email alias for this account.") . ' ' . _("Multiple values are separated by semicolon.") + . ' ' . _('You can use "$user", "$firstname" and "$lastname" as wildcards for user name, first and last name.') + ), + 'hiddenOptions' => array( + "Headline" => _("Hidden options"), + "Text" => _("The selected options will not be managed inside LAM. You can use this to reduce the number of displayed input fields.") + ), + 'domains' => array( + "Headline" => _('Domains'), + "Text" => _('Please enter a list of Windows domains that can be selected for your user accounts.') + ), + "homeDrive" => array( + "Headline" => _("Home drive"), 'attr' => 'homeDrive', + "Text" => _("The home directory will be connected under this drive letter.")), + "homeDirectory" => array( + "Headline" => _("Home directory"), 'attr' => 'homeDirectory', + "Text" => _('UNC-path (\\\\server\\share\) of home directory. If no home drive is set then this directory must start with a drive letter (e.g. "c:\dir\user").') + . ' ' . _('You can use "$user", "$firstname" and "$lastname" as wildcards for user name, first and last name.') + ), + 'msSFU30Name' => array( + "Headline" => _('NIS name'), 'attr' => 'msSFU30Name', + "Text" => _('User name for NIS.') + ), + 'msSFU30NisDomain' => array( + "Headline" => _('NIS domain'), 'attr' => 'msSFU30NisDomain', + "Text" => _('NIS domain name.') + ), + ); + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'windowsUser_userPrincipalName', + 'description' => _('User name'), + 'help' => 'userPrincipalName', + 'example' => _('smiller'), + 'required' => true, + 'unique' => true, + ), + array( + 'name' => 'windowsUser_password', + 'description' => _('Password'), + 'help' => 'password', + 'example' => _('secret'), + ), + array( + 'name' => 'windowsUser_firstName', + 'description' => _('First name'), + 'help' => 'givenName', + 'example' => _('Steve'), + ), + array( + 'name' => 'windowsUser_lastName', + 'description' => _('Last name'), + 'help' => 'sn', + 'example' => _('Miller'), + ), + array( + 'name' => 'windowsUser_cn', + 'description' => _('Common name'), + 'help' => 'cn', + 'example' => _('Steve Miller'), + ), + array( + 'name' => 'windowsUser_displayName', + 'description' => _('Display name'), + 'help' => 'displayName', + 'example' => _('Steve Miller'), + ), + array( + 'name' => 'windowsUser_initials', + 'description' => _('Initials'), + 'help' => 'initials', + 'example' => _('S.M.'), + ), + array( + 'name' => 'windowsUser_description', + 'description' => _('Description'), + 'help' => 'description', + 'example' => _('Temp, contract till December'), + ), + array( + 'name' => 'windowsUser_streetAddress', + 'description' => _('Street'), + 'help' => 'streetAddress', + 'example' => _('Mystreetname 42'), + ), + array( + 'name' => 'windowsUser_postOfficeBox', + 'description' => _('Post office box'), + 'help' => 'postOfficeBox', + 'example' => _('12345'), + ), + array( + 'name' => 'windowsUser_postalCode', + 'description' => _('Postal code'), + 'help' => 'postalCode', + 'example' => _('GB-12345'), + ), + array( + 'name' => 'windowsUser_l', + 'description' => _('Location'), + 'help' => 'l', + 'example' => _('MyCity'), + ), + array( + 'name' => 'windowsUser_state', + 'description' => _('State'), + 'help' => 'st', + 'example' => _('New York'), + ), + array( + 'name' => 'windowsUser_officeName', + 'description' => _('Office name'), + 'help' => 'physicalDeliveryOfficeName', + 'example' => _('YourCompany'), + ), + array( + 'name' => 'windowsUser_mail', + 'description' => _('Email address'), + 'help' => 'mail', + 'example' => _('user@company.com'), + ), + array( + 'name' => 'windowsUser_otherMailbox', + 'description' => _('Email alias'), + 'help' => 'otherMailboxList', + 'example' => _('user@company.com'), + ), + array( + 'name' => 'windowsUser_telephoneNumber', + 'description' => _('Telephone number'), + 'help' => 'telephoneNumber', + 'example' => _('123-124-1234'), + ), + array( + 'name' => 'windowsUser_otherTelephone', + 'description' => _('Other telephone numbers'), + 'help' => 'otherTelephoneList', + 'example' => _('123-124-1234'), + ), + array( + 'name' => 'windowsUser_webSite', + 'description' => _('Web site'), + 'help' => 'wWWHomePage', + 'example' => _('http://www.company.com'), + ), + array( + 'name' => 'windowsUser_otherWebSites', + 'description' => _('Other web sites'), + 'help' => 'urlList', + 'example' => _('http://www.company.com'), + ), + array( + 'name' => 'windowsUser_deactivated', + 'description' => _('Account is deactivated'), + 'help' => 'deactivated', + 'example' => _('no'), + 'default' => _('no'), + 'values' => _('yes') . ', ' . _('no') + ), + array( + 'name' => 'windowsUser_noExpire', + 'description' => _('Password does not expire'), + 'help' => 'noExpire', + 'example' => _('no'), + 'default' => _('no'), + 'values' => _('yes') . ', ' . _('no') + ), + array( + 'name' => 'windowsUser_requireCard', + 'description' => _('Require smartcard'), + 'help' => 'requireCard', + 'example' => _('no'), + 'default' => _('no'), + 'values' => _('yes') . ', ' . _('no') + ), + array( + 'name' => 'windowsUser_pwdMustChange', + 'description' => _('Password change at next login'), + 'help' => 'pwdMustChange', + 'example' => _('no'), + 'default' => _('no'), + 'values' => _('yes') . ', ' . _('no') + ), + array( + 'name' => 'windowsUser_profilePath', + 'description' => _('Profile path'), + 'help' => 'profilePath', + 'example' => _('\\\\server\\profiles\\smiller'), + ), + array( + 'name' => 'windowsUser_scriptPath', + 'description' => _('Logon script'), + 'help' => 'scriptPath', + 'example' => 'logon.bat', + ), + array( + 'name' => 'windowsUser_homeDrive', + 'description' => _('Home drive'), + 'help' => 'homeDrive', + 'example' => 'K:' + ), + array( + 'name' => 'windowsUser_homeDirectory', + 'description' => _('Home directory'), + 'help' => 'homeDirectory', + 'example' => _('\\\\server\\homes\\smiller') + ), + array( + 'name' => 'windowsUser_groups', + 'description' => _('Groups'), + 'help' => 'groupsUpload', + ), + ); + if (!$this->isBooleanConfigOptionSet('windowsUser_hidesAMAccountName', true)) { + $return['upload_columns'][] = array( + 'name' => 'windowsUser_sAMAccountName', + 'description' => _('User name (pre W2K)'), + 'help' => 'sAMAccountName', + 'example' => _('smiller'), + 'unique' => true, + ); + } + if (!$this->isBooleanConfigOptionSet('windowsUser_hidemsSFU30Name', true)) { + $return['upload_columns'][] = array( + 'name' => 'windowsUser_msSFU30Name', + 'description' => _('NIS name'), + 'help' => 'msSFU30Name', + 'example' => _('smiller'), + ); + } + if (!$this->isBooleanConfigOptionSet('windowsUser_hidemsSFU30NisDomain', true)) { + $return['upload_columns'][] = array( + 'name' => 'windowsUser_msSFU30NisDomain', + 'description' => _('NIS domain'), + 'help' => 'msSFU30NisDomain', + 'example' => _('domain'), + ); + } + // profile options + $profileContainer = new htmlTable(); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Common name'), 'windowsUser_cn', null, 'cn'), true); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Display name'), 'windowsUser_displayName', null, 'displayName'), true); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Email address'), 'windowsUser_mail', null, 'mail'), true); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Email alias'), 'windowsUser_otherMailbox', null, 'otherMailboxList'), true); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Logon script'), 'windowsUser_scriptPath', null, 'scriptPath'), true); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Profile path'), 'windowsUser_profilePath', null, 'profilePath'), true); + $profileContainer->addElement(new htmlTableExtendedInputField(_('Home directory'), 'windowsUser_homeDirectory', null, 'homeDirectory'), true); + if (!$this->isBooleanConfigOptionSet('windowsUser_hidemsSFU30NisDomain', true)) { + $profileContainer->addElement(new htmlTableExtendedInputField(_('NIS domain'), 'windowsUser_msSFU30NisDomain', null, 'msSFU30NisDomain'), true); + } + $return['profile_options'] = $profileContainer; + // profile mappings + $return['profile_mappings'] = array( + 'windowsUser_displayName' => 'displayName', + 'windowsUser_cn' => 'cn', + 'windowsUser_mail' => 'mail', + 'windowsUser_scriptPath' => 'scriptPath', + 'windowsUser_profilePath' => 'profilePath', + 'windowsUser_homeDirectory' => 'homeDirectory', + ); + if (!$this->isBooleanConfigOptionSet('windowsUser_hidemsSFU30NisDomain', true)) { + $return['profile_mappings']['windowsUser_msSFU30NisDomain'] = 'msSFU30NisDomain'; + } + // available PDF fields + $return['PDF_fields'] = array( + 'userPrincipalName' => _('User name'), + 'cn' => _('Common name'), + 'description' => _('Description'), + 'displayName' => _('Display name'), + 'givenName' => _('First name'), + 'initials' => _('Initials'), + 'l' => _('Location'), + 'mail' => _('Email address'), + 'otherMailbox' => _('Email alias'), + 'otherTelephone' => _('Other telephone numbers'), + 'physicalDeliveryOfficeName' => _('Office name'), + 'postalCode' => _('Postal code'), + 'postOfficeBox' => _('Post office box'), + 'sn' => _('Last name'), + 'st' => _('State'), + 'streetAddress' => _('Street'), + 'telephoneNumber' => _('Telephone number'), + 'url' => _('Other web sites'), + 'wWWHomePage' => _('Web site'), + 'deactivated' => _('Account is deactivated'), + 'noExpire' => _('Password does not expire'), + 'requireCard' => _('Require smartcard'), + 'profilePath' => _('Profile path'), + 'scriptPath' => _('Logon script'), + 'pwdMustChange' => _('Password change at next login'), + 'groups' => _('Groups'), + 'password' => _('Password'), + 'homeDrive' => _('Home drive'), + 'homeDirectory' => _('Home directory'), + ); + if (!$this->isBooleanConfigOptionSet('windowsUser_hidesAMAccountName', true)) { + $return['PDF_fields']['sAMAccountName'] = _('User name (pre W2K)'); + } + if (!$this->isBooleanConfigOptionSet('windowsUser_hidemsSFU30Name', true)) { + $return['PDF_fields']['msSFU30Name'] = _('NIS name'); + } + if (!$this->isBooleanConfigOptionSet('windowsUser_hidemsSFU30NisDomain', true)) { + $return['PDF_fields']['msSFU30NisDomain'] = _('NIS domain'); + } + // self service search attributes + $return['selfServiceSearchAttributes'] = array('sAMAccountName'); + // self service field settings + $return['selfServiceFieldSettings'] = array( + 'physicalDeliveryOfficeName' => _('Office name'), + 'telephoneNumber' => _('Telephone number'), + 'wWWHomePage' => _('Web site'), + 'streetAddress' => _('Street'), + 'st' => _('State'), + 'l' => _('Location'), + 'postOfficeBox' => _('Post office box'), + 'postalCode' => _('Postal code'), + 'unicodePwd' => _('Password') + ); + // possible self service read-only fields + $return['selfServiceReadOnlyFields'] = array('physicalDeliveryOfficeName', 'telephoneNumber', + 'wWWHomePage', 'streetAddress', 'st', 'l', 'postOfficeBox', 'postalCode'); + // configuration options + $configContainer = new htmlTable(); + $configContainerHead = new htmlTable(); + $configContainerHead->addElement(new htmlTableExtendedInputTextarea('windowsUser_domains', '', 30, 3, _('Domains'), 'domains')); + $configContainer->addElement($configContainerHead, true); + $configContainer->addVerticalSpace('10px'); + $configHiddenGroup = new htmlGroup(); + $configHiddenGroup->addElement(new htmlOutputText(_('Hidden options'))); + $configHiddenGroup->addElement(new htmlHelpLink('hiddenOptions')); + $configContainer->addElement($configHiddenGroup, true); + $configContainerOptions = new htmlTable(); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hidesAMAccountName', true, _('User name (pre W2K)'), null, false)); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hidemsSFU30Name', true, _('NIS name'), null, false)); + $configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hidemsSFU30NisDomain', true, _('NIS domain'), null, false)); + $configContainer->addElement($configContainerOptions, true); + $return['config_options']['all'] = $configContainer; + return $return; + } + + /** + * Initializes the module after it became part of an accountContainer + * + * @param string $base the name of the accountContainer object ($_SESSION[$base]) + */ + function init($base) { + // call parent init + parent::init($base); + $this->groupList = array(); + $this->groupList_orig = array(); + } + + /** + * This function fills the $messages variable with output messages from this module. + */ + public function load_Messages() { + $this->messages['userPrincipalName'][0] = array('ERROR', _('User name'), _('User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['userPrincipalName'][1] = array('ERROR', _('Account %s:') . ' windowsUser_userPrincipalName', _('User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['cn'][0] = array('ERROR', _('Common name'), _('Please enter a valid common name!')); + $this->messages['cn'][1] = array('ERROR', _('Account %s:') . ' windowsUser_cn', _('Please enter a valid common name!')); + $this->messages['sAMAccountName'][0] = array('ERROR', _('User name (pre W2K)'), _('User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['sAMAccountName'][1] = array('ERROR', _('Account %s:') . ' windowsUser_sAMAccountName', _('User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['displayName'][0] = array('ERROR', _('Display name'), _('Please enter a valid display name!')); + $this->messages['displayName'][1] = array('ERROR', _('Account %s:') . ' windowsUser_displayName', _('Please enter a valid display name!')); + $this->messages['givenName'][0] = array('ERROR', _('First name'), _('First name contains invalid characters!')); + $this->messages['givenName'][1] = array('ERROR', _('Account %s:') . ' windowsUser_givenName', _('First name contains invalid characters!')); + $this->messages['sn'][0] = array('ERROR', _('Last name'), _('Last name contains invalid characters or is empty!')); + $this->messages['sn'][1] = array('ERROR', _('Account %s:') . ' windowsUser_sn', _('Last name contains invalid characters or is empty!')); + $this->messages['telephoneNumber'][0] = array('ERROR', _('Telephone number'), _('Please enter a valid telephone number!')); + $this->messages['telephoneNumber'][1] = array('ERROR', _('Account %s:') . ' windowsUser_telephone', _('Please enter a valid telephone number!')); + $this->messages['otherTelephone'][0] = array('ERROR', _('Other telephone numbers'), _('Please enter a valid telephone number!')); + $this->messages['otherTelephone'][1] = array('ERROR', _('Account %s:') . ' windowsUser_otherTelephone', _('Please enter a valid telephone number!')); + $this->messages['postalCode'][0] = array('ERROR', _('Postal code'), _('Please enter a valid postal code!')); + $this->messages['postalCode'][1] = array('ERROR', _('Account %s:') . ' windowsUser_postalCode', _('Please enter a valid postal code!')); + $this->messages['mail'][0] = array('ERROR', _('Email address'), _('Please enter a valid email address!')); + $this->messages['mail'][1] = array('ERROR', _('Account %s:') . ' windowsUser_mail', _('Please enter a valid email address!')); + $this->messages['otherMailbox'][0] = array('ERROR', _('Email alias'), _('Email alias is invalid!')); + $this->messages['otherMailbox'][1] = array('ERROR', _('Account %s:') . ' windowsUser_otherMailbox', _('Email alias is invalid!')); + $this->messages['profilePath'][0] = array('ERROR', _('Profile path'), _('Profile path is invalid!')); + $this->messages['profilePath'][1] = array('ERROR', _('Account %s:') . ' windowsUser_profilePath', _('Profile path is invalid!')); + $this->messages['scriptPath'][0] = array('ERROR', _('Logon script'), _('Logon script is invalid!')); + $this->messages['scriptPath'][1] = array('ERROR', _('Account %s:') . ' windowsUser_scriptPath', _('Logon script is invalid!')); + $this->messages['unicodePwd'][0] = array('ERROR', _('Password'), _('Please enter the same password in both password fields.')); + $this->messages['unicodePwd'][1] = array('ERROR', _('Password'), _('Password contains invalid characters. Valid characters are:') . ' a-z, A-Z, 0-9 and #*,.;:_-+!%&/|?{[()]}=@$ §°!'); + $this->messages['homeDrive'][0] = array('ERROR', _('Account %s:') . ' windowsUser_homeDrive', _('Please enter a valid drive letter.')); + $this->messages['homeDirectory'][0] = array('ERROR', _('Home directory'), _('Homedirectory contains invalid characters.')); + $this->messages['homeDirectory'][1] = array('ERROR', _('Account %s:') . ' windowsUser_homeDirectory', _('Homedirectory contains invalid characters.')); + $this->messages['msSFU30Name'][0] = array('ERROR', _('NIS name'), _('NIS name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + $this->messages['msSFU30Name'][1] = array('ERROR', _('Account %s:') . ' windowsUser_msSFU30Name', _('NIS name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !')); + } + + /** + * This function loads all needed LDAP attributes. + * + * @param array $attr list of attributes + */ + function load_attributes($attr) { + parent::load_attributes($attr); + // get group memberships + $groupList = searchLDAPByAttribute('member', $this->getAccountContainer()->dn_orig, 'group', array('dn'), array('group')); + $this->groupList_orig = array(); + for ($i = 0; $i < sizeof($groupList); $i++) { + $this->groupList_orig[] = $groupList[$i]['dn']; + } + $this->groupList_orig = array_values(array_unique($this->groupList_orig)); + $this->groupList = $this->groupList_orig; + } + + + + /** + * Returns a list of modifications which have to be made to the LDAP account. + * + * @return array list of modifications + *
    This function returns an array with 3 entries: + *
    array( DN1 ('add' => array($attr), 'remove' => array($attr), 'modify' => array($attr)), DN2 .... ) + *
    DN is the DN to change. It may be possible to change several DNs (e.g. create a new user and add him to some groups via attribute memberUid) + *
    "add" are attributes which have to be added to LDAP entry + *
    "remove" are attributes which have to be removed from LDAP entry + *
    "modify" are attributes which have to been modified in LDAP entry + *
    "info" are values with informational value (e.g. to be used later by pre/postModify actions) + */ + public function save_attributes() { + $return = parent::save_attributes(); + // add information about clear text password and password status change + $return[$this->getAccountContainer()->dn_orig]['info']['userPasswordClearText'][0] = $this->clearTextPassword; + return $return; + } + + /** + * Returns the HTML meta data for the main account page. + * + * @return htmlElement HTML meta data + */ + public function display_html_attributes() { + $containerLeft = new htmlTable(); + $containerLeft->alignment = htmlElement::ALIGN_TOP; + if ($this->getAccountContainer()->isNewAccount && !isset($this->attributes['userAccountControl'][0])) { + $this->attributes['userAccountControl'][0] = windowsUser::DEFAULT_ACCOUNT_CONTROL; + } + $containerLeft->addElement(new htmlSubTitle(_('General')), true); + // user name + $userPrincipalName = ''; + $userPrincipalNameDomain = ''; + $domains = $this->getDomains(); + $domains[] = ''; + if (!empty($this->attributes['userPrincipalName'][0])) { + $parts = explode('@', $this->attributes['userPrincipalName'][0]); + $userPrincipalName = $parts[0]; + if (!empty($parts[1])) { + $userPrincipalNameDomain = $parts[1]; + if (!in_array($userPrincipalNameDomain, $domains)) { + $domains[] = $userPrincipalNameDomain; + } + } + } + $userPrincipalNameLabel = new htmlOutputText(_('User name')); + $userPrincipalNameLabel->setMarkAsRequired(true); + $containerLeft->addElement($userPrincipalNameLabel); + $userPrincipalNameGroup = new htmlGroup(); + $userPrincipalNameGroup->addElement(new htmlInputField('userPrincipalName', $userPrincipalName, '15')); + $userPrincipalNameGroup->addElement(new htmlSelect('userPrincipalNameDomain', $domains, array($userPrincipalNameDomain))); + $containerLeft->addElement($userPrincipalNameGroup); + $containerLeft->addElement(new htmlHelpLink('userPrincipalName'), true); + if (!$this->isBooleanConfigOptionSet('windowsUser_hidesAMAccountName', true)) { + $this->addSimpleInputTextField($containerLeft, 'sAMAccountName', _('User name (pre W2K)')); + } + $this->addSimpleInputTextField($containerLeft, 'givenName', _('First name')); + $this->addSimpleInputTextField($containerLeft, 'sn', _('Last name')); + $this->addSimpleInputTextField($containerLeft, 'cn', _('Common name'), true); + $this->addSimpleInputTextField($containerLeft, 'displayName', _('Display name')); + $this->addSimpleInputTextField($containerLeft, 'initials', _('Initials')); + $this->addSimpleInputTextField($containerLeft, 'description', _('Description')); + + $containerLeft->addElement(new htmlSubTitle(_('Address')), true); + $this->addSimpleInputTextField($containerLeft, 'streetAddress', _('Street'), false, 20, true); + $this->addSimpleInputTextField($containerLeft, 'postOfficeBox', _('Post office box')); + $this->addSimpleInputTextField($containerLeft, 'postalCode', _('Postal code')); + $this->addSimpleInputTextField($containerLeft, 'l', _('Location')); + $this->addSimpleInputTextField($containerLeft, 'st', _('State')); + $this->addSimpleInputTextField($containerLeft, 'physicalDeliveryOfficeName', _('Office name')); + + $containerLeft->addElement(new htmlSubTitle(_('Contact data')), true); + $this->addSimpleInputTextField($containerLeft, 'mail', _('Email address')); + $this->addMultiValueInputTextField($containerLeft, 'otherMailbox', _('Email alias')); + $this->addSimpleInputTextField($containerLeft, 'telephoneNumber', _('Telephone number')); + $this->addMultiValueInputTextField($containerLeft, 'otherTelephone', _('Other telephone numbers')); + $this->addSimpleInputTextField($containerLeft, 'wWWHomePage', _('Web site')); + $this->addMultiValueInputTextField($containerLeft, 'url', _('Other web sites')); + + $containerLeft->addElement(new htmlSubTitle(_('Options')), true); + // locked out + $containerLeft->addElement(new htmlOutputText(_("Account is locked"))); + $lockedOut = windowsUser::isLockedOut($this->attributes); + $lockedOutCheckbox = new htmlInputCheckbox('lockedOut', $lockedOut); + $lockedOutCheckbox->setIsEnabled(false); + $lockedOutGroup = new htmlGroup(); + $lockedOutGroup->addElement($lockedOutCheckbox); + if ($lockedOut) { + $lockedOutGroup->addElement(new htmlButton('unlock', _('Unlock'))); + } + $containerLeft->addElement($lockedOutGroup); + $containerLeft->addElement(new htmlHelpLink('locked'), true); + // password change required + $pwdMustChange = false; + if (isset($this->attributes['pwdLastSet'][0]) && ($this->attributes['pwdLastSet'][0] === '0')) { + $pwdMustChange = true; + } + $containerLeft->addElement(new htmlTableExtendedInputCheckbox('forcePasswordChangeOption', $pwdMustChange, _("User must change password"), 'pwdMustChange'), true); + // deactivated + $deactivated = windowsUser::isDeactivated($this->attributes); + $containerLeft->addElement(new htmlTableExtendedInputCheckbox('deactivated', $deactivated, _("Account is deactivated"), 'deactivated'), true); + // password does not expire + $noExpire = windowsUser::isNeverExpiring($this->attributes); + $containerLeft->addElement(new htmlTableExtendedInputCheckbox('noExpire', $noExpire, _("Password does not expire"), 'noExpire'), true); + // require smartcard + $requireCard = windowsUser::isSmartCardRequired($this->attributes); + $containerLeft->addElement(new htmlTableExtendedInputCheckbox('requireCard', $requireCard, _("Require smartcard"), 'requireCard'), true); + + $containerLeft->addElement(new htmlSubTitle(_('User profile')), true); + // profile path + $this->addSimpleInputTextField($containerLeft, 'profilePath', _('Profile path')); + // logon script + $this->addSimpleInputTextField($containerLeft, 'scriptPath', _('Logon script')); + // home drive + $drives = array('-'); + for ($i=90; $i>67; $i--) $drives[] = chr($i) . ':'; + if (!empty($this->attributes['homeDrive'][0])) { + $selected = array(strtoupper($this->attributes['homeDrive'][0])); + } + else { + $selected = array('-'); + } + $containerLeft->addElement(new htmlTableExtendedSelect('homeDrive', $drives, $selected, _('Home drive'), 'homeDrive'), true); + // home directory + $this->addSimpleInputTextField($containerLeft, 'homeDirectory', _('Home directory')); + + // NIS attributes + if (!$this->isBooleanConfigOptionSet('windowsUser_hidemsSFU30Name', true) || !$this->isBooleanConfigOptionSet('windowsUser_hidemsSFU30NisDomain', true)) { + $containerLeft->addElement(new htmlSubTitle(_('NIS')), true); + if (!$this->isBooleanConfigOptionSet('windowsUser_hidemsSFU30Name', true)) { + $this->addSimpleInputTextField($containerLeft, 'msSFU30Name', _('NIS name')); + } + if (!$this->isBooleanConfigOptionSet('windowsUser_hidemsSFU30NisDomain', true)) { + $this->addSimpleInputTextField($containerLeft, 'msSFU30NisDomain', _('NIS domain')); + } + } + + $containerLeft->addElement(new htmlEqualWidth(array('streetAddress', 'cn')), true); + + $containerRight = new htmlTable(); + $containerRight->alignment = htmlElement::ALIGN_TOP; + $containerRight->addElement(new htmlSubTitle(_('Groups')), true); + $containerRight->addElement(new htmlAccountPageButton(get_class($this), 'group', 'edit', _('Edit groups')), true); + $containerRight->addElement(new htmlSpacer(null, '10px'), true); + $groupsList = new htmlGroup(); + $groupCNs = array(); + for ($i = 0; $i < sizeof($this->groupList); $i++) { + $groupCNs[] = extractRDNValue($this->groupList[$i]); + } + natcasesort($groupCNs); + foreach ($groupCNs as $cn) { + $groupsList->addElement(new htmlOutputText($cn)); + $groupsList->addElement(new htmlOutputText('
    ', false)); + } + $containerRight->addElement($groupsList); + + $container = new htmlTable(); + $container->addElement($containerLeft); + $container->addElement(new htmlSpacer('40px', null)); + $container->addElement($containerRight); + return $container; + } + + /** + * Processes user input of the primary module page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + public function process_attributes() { + $return = array(); + $replacements = array('$user' => 'userPrincipalName', '$lastname' => 'sn', '$firstname' => 'givenName'); + // user name + $userPrincipalName = $_POST['userPrincipalName']; + if (!get_preg($userPrincipalName, 'username')) { + $return[] = $this->messages['userPrincipalName'][0]; + } + if (!empty($_POST['userPrincipalNameDomain'])) { + $userPrincipalName .= '@' . $_POST['userPrincipalNameDomain']; + } + $this->attributes['userPrincipalName'][0] = $userPrincipalName; + // cn + $this->attributes['cn'][0] = $_POST['cn']; + foreach ($replacements as $wildcard => $postKey) { + if (!empty($_POST[$postKey])) { + $this->attributes['cn'][0] = str_replace($wildcard, $_POST[$postKey], $this->attributes['cn'][0]); + } + } + if (empty($this->attributes['cn'][0])) { + $cn = ''; + if (!empty($_POST['givenName'])) { + $cn = $_POST['givenName']; + } + if (!empty($_POST['sn'])) { + $cn .= ' ' . $_POST['sn']; + } + $this->attributes['cn'][0] = trim($cn); + } + if (!get_preg($this->attributes['cn'][0], 'cn')) { + $return[] = $this->messages['cn'][0]; + } + // sAMAccountName + if (!$this->isBooleanConfigOptionSet('windowsUser_hidesAMAccountName', true)) { + if ($this->getAccountContainer()->isNewAccount && !isset($this->attributes['sAMAccountName']) && empty($_POST['sAMAccountName'])) { + $this->attributes['sAMAccountName'][0] = $_POST['userPrincipalName']; + } + else { + $this->attributes['sAMAccountName'][0] = $_POST['sAMAccountName']; + } + if (!empty($this->attributes['sAMAccountName'][0]) && !get_preg($this->attributes['sAMAccountName'][0], 'username')) { + $return[] = $this->messages['sAMAccountName'][0]; + } + } + elseif ($this->getAccountContainer()->isNewAccount && !empty($_POST['userPrincipalName'])) { + // set sAMAccountName to user name if attribute input field is not visible (W2012 requires this attribute) + $this->attributes['sAMAccountName'][0] = $_POST['userPrincipalName']; + } + // description + $this->attributes['description'][0] = $_POST['description']; + // display name + $this->attributes['displayName'][0] = $_POST['displayName']; + foreach ($replacements as $wildcard => $postKey) { + if (!empty($_POST[$postKey])) { + $this->attributes['displayName'][0] = str_replace($wildcard, $_POST[$postKey], $this->attributes['displayName'][0]); + } + } + if (!empty($this->attributes['displayName'][0]) && !get_preg($this->attributes['displayName'][0], 'realname')) { + $return[] = $this->messages['displayName'][0]; + } + if (empty($this->attributes['displayName'][0]) && !empty($this->attributes['cn'][0])) { + $this->attributes['displayName'][0] = $this->attributes['cn'][0]; + } + // first name + $this->attributes['givenName'][0] = $_POST['givenName']; + if (!empty($this->attributes['givenName'][0]) && !get_preg($_POST['givenName'], 'realname')) { + $return[] = $this->messages['givenName'][0]; + } + // initials + $this->attributes['initials'][0] = $_POST['initials']; + // location + $this->attributes['l'][0] = $_POST['l']; + // email + $this->attributes['mail'][0] = $_POST['mail']; + foreach ($replacements as $wildcard => $postKey) { + if (!empty($_POST[$postKey])) { + $this->attributes['mail'][0] = str_replace($wildcard, $_POST[$postKey], $this->attributes['mail'][0]); + } + } + if (!empty($this->attributes['mail'][0]) && !get_preg($this->attributes['mail'][0], 'email')) { + $return[] = $this->messages['mail'][0]; + } + // email aliases + $this->processMultiValueInputTextField('otherMailbox', $return, 'email'); + if (!empty($this->attributes['otherMailbox'])) { + foreach ($this->attributes['otherMailbox'] as &$otherMailbox) { + foreach ($replacements as $wildcard => $postKey) { + if (!empty($_POST[$postKey])) { + $otherMailbox = str_replace($wildcard, $_POST[$postKey], $otherMailbox); + } + } + } + } + // other telephones + $this->processMultiValueInputTextField('otherTelephone', $return, 'telephone'); + // office name + $this->attributes['physicalDeliveryOfficeName'][0] = $_POST['physicalDeliveryOfficeName']; + // postal code + $this->attributes['postalCode'][0] = $_POST['postalCode']; + if (!get_preg($_POST['postalCode'], 'postalCode')) { + $return[] = $this->messages['postalCode'][0]; + } + // post office box + $this->attributes['postOfficeBox'][0] = $_POST['postOfficeBox']; + // last name + $this->attributes['sn'][0] = $_POST['sn']; + if (!empty($this->attributes['sn'][0]) && !get_preg($_POST['sn'], 'realname')) { + $return[] = $this->messages['sn'][0]; + } + // state + $this->attributes['st'][0] = $_POST['st']; + // street + $this->attributes['streetAddress'][0] = $_POST['streetAddress']; + // telephone + $this->attributes['telephoneNumber'][0] = $_POST['telephoneNumber']; + if (!get_preg($_POST['telephoneNumber'], 'telephone')) { + $return[] = $this->messages['telephoneNumber'][0]; + } + // other web sites + $this->processMultiValueInputTextField('url', $return); + // web site + $this->attributes['wWWHomePage'][0] = $_POST['wWWHomePage']; + // password must be changed + if (isset($_POST['forcePasswordChangeOption']) && ($_POST['forcePasswordChangeOption'] == 'on')) { + $this->attributes['pwdLastSet'][0] = '0'; + } + else { + if (isset($this->orig['pwdLastSet'][0]) && ($this->orig['pwdLastSet'][0] !== '0')) { + $this->attributes['pwdLastSet'][0] = $this->orig['pwdLastSet'][0]; + } + else { + $this->attributes['pwdLastSet'][0] = '-1'; + } + } + // save pwdLastSet for postModifyActions + $this->pwdLastSet = null; + if (isset($this->attributes['pwdLastSet'][0])) { + if (!isset($this->orig['pwdLastSet'][0]) || ($this->orig['pwdLastSet'][0] != $this->attributes['pwdLastSet'][0])) { + $this->pwdLastSet = $this->attributes['pwdLastSet'][0]; + } + } + // deactivated + $deactivated = isset($_POST['deactivated']) && ($_POST['deactivated'] == 'on'); + windowsUser::setIsDeactivated($deactivated); + // no expire + $noExpire = isset($_POST['noExpire']) && ($_POST['noExpire'] == 'on'); + windowsUser::setIsNeverExpiring($this->attributes, $noExpire); + // smartcard required + $requireCard = isset($_POST['requireCard']) && ($_POST['requireCard'] == 'on'); + windowsUser::setIsSmartCardRequired($this->attributes, $requireCard); + // profile path + $this->attributes['profilePath'][0] = $_POST['profilePath']; + foreach ($replacements as $wildcard => $postKey) { + if (!empty($_POST[$postKey])) { + $this->attributes['profilePath'][0] = str_replace($wildcard, $_POST[$postKey], $this->attributes['profilePath'][0]); + } + } + if (!($this->attributes['profilePath'][0] == '') && !get_preg($this->attributes['profilePath'][0], 'UNC')) { + $return[] = $this->messages['profilePath'][0]; + } + // logon script + $this->attributes['scriptPath'][0] = $_POST['scriptPath']; + foreach ($replacements as $wildcard => $postKey) { + if (!empty($_POST[$postKey])) { + $this->attributes['scriptPath'][0] = str_replace($wildcard, $_POST[$postKey], $this->attributes['scriptPath'][0]); + } + } + if (($this->attributes['scriptPath'][0] != '') && (!get_preg($this->attributes['scriptPath'][0], 'logonscript'))) { + $return[] = $this->messages['scriptPath'][0]; + } + // home drive + if ($_POST['homeDrive'] == "-") { + $this->attributes['homeDrive'][0] = ''; + } + else { + $this->attributes['homeDrive'][0] = $_POST['homeDrive']; + } + // home directory + $this->attributes['homeDirectory'][0] = $_POST['homeDirectory']; + foreach ($replacements as $wildcard => $postKey) { + if (!empty($_POST[$postKey])) { + $this->attributes['homeDirectory'][0] = str_replace($wildcard, $_POST[$postKey], $this->attributes['homeDirectory'][0]); + } + } + if (!empty($this->attributes['homeDrive'][0]) && !get_preg($this->attributes['homeDirectory'][0], 'UNC')) { + $return[] = $this->messages['homeDirectory'][0]; + } + // NIS name + if (!$this->isBooleanConfigOptionSet('windowsUser_hidemsSFU30Name', true)) { + if ($this->getAccountContainer()->isNewAccount && !isset($this->attributes['msSFU30Name']) && empty($_POST['msSFU30Name'])) { + $this->attributes['msSFU30Name'][0] = $_POST['userPrincipalName']; + } + else { + $this->attributes['msSFU30Name'][0] = $_POST['msSFU30Name']; + } + if (!empty($this->attributes['msSFU30Name'][0]) && !get_preg($this->attributes['msSFU30Name'][0], 'username')) { + $return[] = $this->messages['msSFU30Name'][0]; + } + } + // NIS domain + if (!$this->isBooleanConfigOptionSet('windowsUser_hidemsSFU30Name', true)) { + $this->attributes['msSFU30NisDomain'][0] = $_POST['msSFU30NisDomain']; + } + + return $return; + } + + /** + * Displays the group selection. + * + * @return htmlElement meta HTML code + */ + function display_html_group() { + $return = new htmlTable(); + $groups = $this->findGroups(); + // sort by DN + usort($groups, 'compareDN'); + + $groupContainer = new htmlTable(); + $groupContainer->alignment = htmlElement::ALIGN_TOP; + $groupContainer->addElement(new htmlSubTitle(_("Groups of names")), true); + $groupContainer->addElement(new htmlOutputText(_("Selected groups"))); + $groupContainer->addElement(new htmlOutputText('')); + $groupContainer->addElement(new htmlOutputText(_("Available groups"))); + $groupContainer->addNewLine(); + + $selectedGroups = array(); + // sort by DN + usort($this->groupList, 'compareDN'); + for ($i = 0; $i < sizeof($this->groupList); $i++) { + if (in_array($this->groupList[$i], $groups)) { + $selectedGroups[getAbstractDN($this->groupList[$i])] = $this->groupList[$i]; + } + } + $availableGroups = array(); + foreach ($groups as $dn) { + if (!in_array($dn, $this->groupList)) { + $availableGroups[getAbstractDN($dn)] = $dn; + } + } + + $remGroupSelect = new htmlSelect('removegroups', $selectedGroups, null, 15); + $remGroupSelect->setMultiSelect(true); + $remGroupSelect->setTransformSingleSelect(false); + $remGroupSelect->setHasDescriptiveElements(true); + $remGroupSelect->setRightToLeftTextDirection(true); + $remGroupSelect->setSortElements(false); + $groupContainer->addElement($remGroupSelect); + $buttonGroupContainer = new htmlTable(); + $buttonGroupContainer->addElement(new htmlButton('addgroups_button', 'back.gif', true), true); + $buttonGroupContainer->addElement(new htmlButton('removegroups_button', 'forward.gif', true), true); + $buttonGroupContainer->addElement(new htmlHelpLink('addgroup')); + $groupContainer->addElement($buttonGroupContainer); + $addGroupSelect = new htmlSelect('addgroups', $availableGroups, null, 15); + $addGroupSelect->setMultiSelect(true); + $addGroupSelect->setHasDescriptiveElements(true); + $addGroupSelect->setTransformSingleSelect(false); + $addGroupSelect->setRightToLeftTextDirection(true); + $addGroupSelect->setSortElements(false); + $groupContainer->addElement($addGroupSelect); + $groupContainer->addNewLine(); + $return->addElement($groupContainer); + $return->addNewLine(); + + $backGroup = new htmlGroup(); + $backGroup->colspan = 10; + $backGroup->addElement(new htmlSpacer(null, '10px'), true); + $backButton = new htmlAccountPageButton(get_class($this), 'attributes', 'back', _('Back')); + $backGroup->addElement($backButton); + $return->addElement($backGroup); + return $return; + } + + /** + * Processes user input of the group selection page. + * It checks if all input values are correct and updates the associated LDAP attributes. + * + * @return array list of info/error messages + */ + function process_group() { + if (isset($_POST['addgroups']) && isset($_POST['addgroups_button'])) { // Add groups to list + // add new group + $this->groupList = @array_merge($this->groupList, $_POST['addgroups']); + } + elseif (isset($_POST['removegroups']) && isset($_POST['removegroups_button'])) { // remove groups from list + $this->groupList = array_delete($_POST['removegroups'], $this->groupList); + } + return array(); + } + + /** + * Runs the postmodify actions. + * + * @see baseModule::postModifyActions() + * + * @param boolean $newAccount + * @param array $attributes LDAP attributes of this entry + * @return array array which contains status messages. Each entry is an array containing the status message parameters. + */ + public function postModifyActions($newAccount, $attributes) { + $messages = array(); + // set groups + $groups = $this->findGroups(); + $toAdd = array_values(array_diff($this->groupList, $this->groupList_orig)); + $toRem = array_values(array_diff($this->groupList_orig, $this->groupList)); + $toUpdate = array_values(array_intersect($this->groupList, $this->groupList_orig)); + $ldapUser = $_SESSION['ldap']->decrypt_login(); + $ldapUser = $ldapUser[0]; + // add groups + for ($i = 0; $i < sizeof($toAdd); $i++) { + if (in_array($toAdd[$i], $groups)) { + $success = @ldap_mod_add($_SESSION['ldap']->server(), $toAdd[$i], array('member' => array($this->getAccountContainer()->finalDN))); + if (!$success) { + logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to add user ' . $this->getAccountContainer()->finalDN . ' to group: ' . $toAdd[$i] . ' (' . ldap_error($_SESSION['ldap']->server()) . ').'); + $messages[] = array('ERROR', sprintf(_('Was unable to add attributes to DN: %s.'), $toAdd[$i]), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + } + else { + logNewMessage(LOG_NOTICE, '[' . $ldapUser .'] Added user ' . $this->getAccountContainer()->finalDN . ' to group: ' . $toAdd[$i]); + } + } + } + // remove groups + for ($i = 0; $i < sizeof($toRem); $i++) { + if (in_array($toRem[$i], $groups)) { + $success = @ldap_mod_del($_SESSION['ldap']->server(), $toRem[$i], array('member' => array($this->getAccountContainer()->dn_orig))); + if (!$success) { + logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to delete user ' . $this->getAccountContainer()->finalDN . ' from group: ' . $toRem[$i] . ' (' . ldap_error($_SESSION['ldap']->server()) . ').'); + $messages[] = array('ERROR', sprintf(_('Was unable to remove attributes from DN: %s.'), $toRem[$i]), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + } + else { + logNewMessage(LOG_NOTICE, '[' . $ldapUser .'] Removed user ' . $this->getAccountContainer()->finalDN . ' from group: ' . $toRem[$i]); + } + } + } + // force password change if needed + if ($this->pwdLastSet != null) { + $attrs = array('pwdLastSet' => array($this->pwdLastSet)); + $success = @ldap_modify($_SESSION['ldap']->server(), $this->getAccountContainer()->finalDN, $attrs); + if (!$success) { + logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to change pwdLastSet for ' . $this->getAccountContainer()->finalDN . ' (' . ldap_error($_SESSION['ldap']->server()) . ').'); + $messages[] = array('ERROR', sprintf(_('Was unable to modify attributes of DN: %s.'), $this->getAccountContainer()->finalDN), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + } + } + return $messages; + } + + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $selectedModules list of selected account modules + * @return array list of error messages if any + */ + public function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { + $errors = array(); + $replacements = array(); + // get list of existing groups + $groupList = $this->findGroups(); + $groupMap = array(); + foreach ($groupList as $dn) { + $groupMap[extractRDNValue($dn)] = $dn; + } + $booleanOptions = array(_('yes') => true, _('no') => false); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + // add object class + if (!in_array('user', $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = 'user'; + // userPrincipalName + if (get_preg($rawAccounts[$i][$ids['windowsUser_userPrincipalName']], 'username')) { + $partialAccounts[$i]['userPrincipalName'] = $rawAccounts[$i][$ids['windowsUser_userPrincipalName']]; + $parts = explode('@', $partialAccounts[$i]['userPrincipalName']); + $replacements['$user'] = $parts[0]; + } + else { + $errMsg = $this->messages['userPrincipalName'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + // first name + if ($rawAccounts[$i][$ids['windowsUser_firstName']] != "") { + if (get_preg($rawAccounts[$i][$ids['windowsUser_firstName']], 'realname')) { + $partialAccounts[$i]['givenName'] = $rawAccounts[$i][$ids['windowsUser_firstName']]; + $replacements['$firstname'] = $partialAccounts[$i]['givenName']; + } + else { + $errMsg = $this->messages['givenName'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + // last name + if ($rawAccounts[$i][$ids['windowsUser_lastName']] != "") { + if (get_preg($rawAccounts[$i][$ids['windowsUser_lastName']], 'realname')) { + $partialAccounts[$i]['sn'] = $rawAccounts[$i][$ids['windowsUser_lastName']]; + $replacements['$lastname'] = $partialAccounts[$i]['sn']; + } + else { + $errMsg = $this->messages['sn'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + // cn + if ($rawAccounts[$i][$ids['windowsUser_cn']] != "") { + foreach ($replacements as $wildcard => $value) { + $rawAccounts[$i][$ids['windowsUser_cn']] = str_replace($wildcard, $value, $rawAccounts[$i][$ids['windowsUser_cn']]); + } + if (get_preg($rawAccounts[$i][$ids['windowsUser_cn']], 'cn')) { + $partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['windowsUser_cn']]; + } + else { + $errMsg = $this->messages['cn'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + else { + $cn = ''; + if (!empty($rawAccounts[$i][$ids['windowsUser_firstName']])) { + $cn = $rawAccounts[$i][$ids['windowsUser_firstName']]; + } + if (!empty($rawAccounts[$i][$ids['windowsUser_lastName']])) { + $cn .= ' ' . $rawAccounts[$i][$ids['windowsUser_lastName']]; + } + $cn = trim($cn); + if (!empty($cn)) { + $partialAccounts[$i]['cn'] = $cn; + } + } + // sAMAccountName + if (!$this->isBooleanConfigOptionSet('windowsUser_hidesAMAccountName', true)) { + if (!empty($rawAccounts[$i][$ids['windowsUser_sAMAccountName']])) { + if (get_preg($rawAccounts[$i][$ids['windowsUser_sAMAccountName']], 'username')) { + $partialAccounts[$i]['sAMAccountName'] = $rawAccounts[$i][$ids['windowsUser_sAMAccountName']]; + } + else { + $errMsg = $this->messages['sAMAccountName'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + else { + $samUser = explode('@', $partialAccounts[$i]['userPrincipalName']); + $partialAccounts[$i]['sAMAccountName'] = $samUser[0]; + } + } + else { + // set sAMAccountName to user name if not managed (W2012 requires it) + $partialAccounts[$i]['sAMAccountName'] = $replacements['$user']; + } + // password + if (($rawAccounts[$i][$ids['windowsUser_password']] != "") && (get_preg($rawAccounts[$i][$ids['windowsUser_password']], 'password'))) { + $partialAccounts[$i]['unicodePwd'] = self::pwdAttributeValue($rawAccounts[$i][$ids['windowsUser_password']]); + $partialAccounts[$i]['INFO.userPasswordClearText'] = $rawAccounts[$i][$ids['windowsUser_password']]; // for custom scripts etc. + } + elseif ($rawAccounts[$i][$ids['windowsUser_password']] != "") { + $errMsg = $this->messages['userPassword'][4]; + $errMsg[2] = str_replace('%', '%%', $errMsg[2]); // double "%" because of later sprintf + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + // display name + if ($rawAccounts[$i][$ids['windowsUser_displayName']] != "") { + foreach ($replacements as $wildcard => $value) { + $rawAccounts[$i][$ids['windowsUser_displayName']] = str_replace($wildcard, $value, $rawAccounts[$i][$ids['windowsUser_displayName']]); + } + $partialAccounts[$i]['displayName'] = $rawAccounts[$i][$ids['windowsUser_displayName']]; + } + elseif (!empty($partialAccounts[$i]['cn'])) { + $partialAccounts[$i]['displayName'] = $partialAccounts[$i]['cn']; + } + // initials + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsUser_initials', 'initials'); + // description + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsUser_description', 'description'); + // street + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsUser_streetAddress', 'streetAddress'); + // post office box + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsUser_postOfficeBox', 'postOfficeBox'); + // postal code + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsUser_postalCode', 'postalCode', + 'postalCode', $this->messages['postalCode'][1], $errors); + // location + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsUser_l', 'l'); + // state + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsUser_state', 'st'); + // office name + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsUser_officeName', 'physicalDeliveryOfficeName'); + // mail + if ($rawAccounts[$i][$ids['windowsUser_mail']] != "") { + foreach ($replacements as $wildcard => $value) { + $rawAccounts[$i][$ids['windowsUser_mail']] = str_replace($wildcard, $value, $rawAccounts[$i][$ids['windowsUser_mail']]); + } + if (get_preg($rawAccounts[$i][$ids['windowsUser_mail']], 'email')) { + $partialAccounts[$i]['mail'] = $rawAccounts[$i][$ids['windowsUser_mail']]; + } + else { + $errMsg = $this->messages['mail'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + // mail aliases + if (isset($ids['windowsUser_otherMailbox']) && ($rawAccounts[$i][$ids['windowsUser_otherMailbox']] != "")) { + foreach ($replacements as $wildcard => $value) { + $rawAccounts[$i][$ids['windowsUser_otherMailbox']] = str_replace($wildcard, $value, $rawAccounts[$i][$ids['windowsUser_otherMailbox']]); + } + $valueList = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['windowsUser_otherMailbox']]); + $partialAccounts[$i]['otherMailbox'] = $valueList; + for ($x = 0; $x < sizeof($valueList); $x++) { + if (!get_preg($valueList[$x], 'email')) { + $errMsg = $this->messages['otherMailbox'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + break; + } + } + } + // telephone + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsUser_telephoneNumber', 'telephoneNumber', + 'telephone', $this->messages['telephoneNumber'][1], $errors); + // other telephone + if (isset($ids['windowsUser_otherTelephone']) && ($rawAccounts[$i][$ids['windowsUser_otherTelephone']] != "")) { + $valueList = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['windowsUser_otherTelephone']]); + $partialAccounts[$i]['otherTelephone'] = $valueList; + for ($x = 0; $x < sizeof($valueList); $x++) { + if (!get_preg($valueList[$x], 'telephone')) { + $errMsg = $this->messages['otherTelephone'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + break; + } + } + } + // website + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsUser_webSite', 'wWWHomePage'); + // other websites + if (isset($ids['windowsUser_otherWebSites']) && ($rawAccounts[$i][$ids['windowsUser_otherWebSites']] != "")) { + $valueList = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['windowsUser_otherWebSites']]); + $partialAccounts[$i]['url'] = $valueList; + } + // user account control + $userAccountControlAttr['userAccountControl'][0] = windowsUser::DEFAULT_ACCOUNT_CONTROL; + // deactivated + if ($rawAccounts[$i][$ids['windowsUser_deactivated']] != "") { + if (!isset($booleanOptions[$rawAccounts[$i][$ids['windowsUser_deactivated']]])) { + $errors[] = array('ERROR', sprintf(_('Account %s:'), $i) . ' windowsUser_deactivated', _('Please enter either yes or no.')); + } + else { + $this->setIsDeactivated($booleanOptions[$rawAccounts[$i][$ids['windowsUser_deactivated']]], $userAccountControlAttr); + } + } + // password does not expire + if ($rawAccounts[$i][$ids['windowsUser_noExpire']] != "") { + if (!isset($booleanOptions[$rawAccounts[$i][$ids['windowsUser_noExpire']]])) { + $errors[] = array('ERROR', sprintf(_('Account %s:'), $i) . ' windowsUser_noExpire', _('Please enter either yes or no.')); + } + else { + $this->setIsNeverExpiring($userAccountControlAttr, $booleanOptions[$rawAccounts[$i][$ids['windowsUser_noExpire']]]); + } + } + // require smartcard + if ($rawAccounts[$i][$ids['windowsUser_requireCard']] != "") { + if (!isset($booleanOptions[$rawAccounts[$i][$ids['windowsUser_requireCard']]])) { + $errors[] = array('ERROR', sprintf(_('Account %s:'), $i) . ' windowsUser_requireCard', _('Please enter either yes or no.')); + } + else { + $this->setIsSmartCardRequired($userAccountControlAttr, $booleanOptions[$rawAccounts[$i][$ids['windowsUser_requireCard']]]); + } + } + $partialAccounts[$i]['userAccountControl'][0] = $userAccountControlAttr['userAccountControl'][0]; + // end user account control + // password change at next login + if ($rawAccounts[$i][$ids['windowsUser_pwdMustChange']] != "") { + if (!isset($booleanOptions[$rawAccounts[$i][$ids['windowsUser_pwdMustChange']]])) { + $errors[] = array('ERROR', sprintf(_('Account %s:'), $i) . ' windowsUser_pwdMustChange', _('Please enter either yes or no.')); + } + // attribute must be set in postModify + } + // profile path + if ($rawAccounts[$i][$ids['windowsUser_profilePath']] != "") { + foreach ($replacements as $wildcard => $value) { + $rawAccounts[$i][$ids['windowsUser_profilePath']] = str_replace($wildcard, $value, $rawAccounts[$i][$ids['windowsUser_profilePath']]); + } + if (get_preg($rawAccounts[$i][$ids['windowsUser_profilePath']], 'UNC')) { + $partialAccounts[$i]['profilePath'] = $rawAccounts[$i][$ids['windowsUser_profilePath']]; + } + else { + $errMsg = $this->messages['profilePath'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + // logon script + if ($rawAccounts[$i][$ids['windowsUser_scriptPath']] != "") { + foreach ($replacements as $wildcard => $value) { + $rawAccounts[$i][$ids['windowsUser_scriptPath']] = str_replace($wildcard, $value, $rawAccounts[$i][$ids['windowsUser_scriptPath']]); + } + if (get_preg($rawAccounts[$i][$ids['windowsUser_scriptPath']], 'logonscript')) { + $partialAccounts[$i]['scriptPath'] = $rawAccounts[$i][$ids['windowsUser_scriptPath']]; + } + else { + $errMsg = $this->messages['scriptPath'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + // home drive + if (!empty($rawAccounts[$i][$ids['windowsUser_homeDrive']])) { + if (preg_match("/[d-z]:/i", $rawAccounts[$i][$ids['windowsUser_homeDrive']])) { + $partialAccounts[$i]['homeDrive'] = strtoupper($rawAccounts[$i][$ids['windowsUser_homeDrive']]); + } + else { + $errMsg = $this->messages['homeDrive'][0]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + // home directory + if ($rawAccounts[$i][$ids['windowsUser_homeDirectory']] != "") { + foreach ($replacements as $wildcard => $value) { + $rawAccounts[$i][$ids['windowsUser_homeDirectory']] = str_replace($wildcard, $value, $rawAccounts[$i][$ids['windowsUser_homeDirectory']]); + } + if (empty($partialAccounts[$i]['homeDrive']) || get_preg($rawAccounts[$i][$ids['windowsUser_homeDirectory']], 'UNC')) { + $partialAccounts[$i]['homeDirectory'] = $rawAccounts[$i][$ids['windowsUser_homeDirectory']]; + } + else { + $errMsg = $this->messages['homeDirectory'][1]; + array_push($errMsg, array($i)); + $errors[] = $errMsg; + } + } + // groups + if (isset($ids['windowsUser_groups']) && ($rawAccounts[$i][$ids['windowsUser_groups']] != "")) { + $valueList = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['windowsUser_groups']]); + $invalidGroups = array(); + foreach ($valueList as $group) { + if (!in_array($group, $groupList) && !isset($groupMap[$group])) { + $invalidGroups[] = $group; + } + } + if (sizeof($invalidGroups) > 0) { + $errors[] = array('ERROR', sprintf(_('Account %s:'), $i) . ' windowsUser_groups', + _('LAM was unable to find a group with this name!') . '
    ' . htmlspecialchars(implode('; ', $invalidGroups))); + } + } + // NIS name + if (!$this->isBooleanConfigOptionSet('windowsUser_hidemsSFU30Name', true)) { + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsUser_msSFU30Name', 'msSFU30Name', + 'username', $this->messages['msSFU30Name'][1], $errors); + } + // NIS domain + if (!$this->isBooleanConfigOptionSet('windowsUser_hidemsSFU30NisDomain', true)) { + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsUser_msSFU30NisDomain', 'msSFU30NisDomain'); + } + } + return $errors; + } + + /** + * This function executes one post upload action. + * + * @param array $data array containing one account in each element + * @param array $ids array( => ) + * @param array $failed list of accounts which were not created successfully + * @param array $temp variable to store temporary data between two post actions + * @param array $accounts list of LDAP entries + * @return array current status + *
    array ( + *
    'status' => 'finished' | 'inProgress' + *
    'progress' => 0..100 + *
    'errors' => array () + *
    ) + */ + function doUploadPostActions(&$data, $ids, $failed, &$temp, &$accounts) { + if (!checkIfWriteAccessIsAllowed($this->get_scope())) { + die(); + } + // on first call generate list of ldap operations + if (!isset($temp['counter'])) { + $groupList = $this->findGroups(); + $groupMap = array(); + foreach ($groupList as $dn) { + $groupMap[extractRDNValue($dn)] = $dn; + } + $temp['groups'] = &$groupList; + $temp['groupMap'] = &$groupMap; + $temp['members'] = array(); + $temp['memberCount'] = 0; + $temp['pwdChange'] = array(); + $temp['pwdChangeCount'] = 0; + $groupCol = $ids['windowsUser_groups']; + $passwordChangeRequiredCol = $ids['windowsUser_pwdMustChange']; + for ($i = 0; $i < sizeof($data); $i++) { + if (in_array($i, $failed)) continue; // ignore failed accounts + if ($data[$i][$groupCol] != "") { + $groups = preg_split('/;[ ]*/', $data[$i][$groupCol]); + for ($g = 0; $g < sizeof($groups); $g++) { + if (in_array($groups[$g], $temp['groups'])) { + $temp['members'][$groups[$g]][] = $accounts[$i]['dn']; + } + elseif (isset($temp['groupMap'][$groups[$g]])) { + $temp['members'][$temp['groupMap'][$groups[$g]]][] = $accounts[$i]['dn']; + } + } + } + if (isset($data[$i][$passwordChangeRequiredCol]) && ($data[$i][$passwordChangeRequiredCol] == _('yes'))) { + $temp['pwdChange'][] = $accounts[$i]['dn']; + } + } + $temp['memberCount'] = sizeof($temp['members']); + $temp['pwdChangeCount'] = sizeof($temp['pwdChange']); + $temp['counter'] = $temp['memberCount'] + $temp['pwdChangeCount']; + return array( + 'status' => 'inProgress', + 'progress' => 0, + 'errors' => array() + ); + } + // add users to groups + elseif (sizeof($temp['members']) > 0) { + $keys = array_keys($temp['members']); + $group = $keys[0]; + $member = array_pop($temp['members'][$group]); + $success = @ldap_mod_add($_SESSION['ldap']->server(), $group, array('member' => $member)); + $errors = array(); + if (!$success) { + $errors[] = array( + "ERROR", + _("LAM was unable to modify group memberships for group: %s"), + getDefaultLDAPErrorString($_SESSION['ldap']->server()), + array($group) + ); + } + if (sizeof($temp['members'][$group]) == 0) { + unset($temp['members'][$group]); + } + $memberPercentage = (100 * ($temp['memberCount'] - sizeof($temp['members']))) / $temp['counter']; + return array ( + 'status' => 'inProgress', + 'progress' => $memberPercentage, + 'errors' => $errors + ); + } + // force password change + elseif (sizeof($temp['pwdChange']) > 0) { + $dn = array_pop($temp['pwdChange']); + $success = @ldap_mod_replace($_SESSION['ldap']->server(), $dn, array('pwdLastSet' => '0')); + $errors = array(); + if (!$success) { + $errors[] = array( + "ERROR", + _("Was unable to modify attributes of DN: %s."), + getDefaultLDAPErrorString($_SESSION['ldap']->server()), + array($dn) + ); + } + $pwdPercentage = (100 * ($temp['memberCount'] + ($temp['pwdChangeCount'] - sizeof($temp['pwdChange'])))) / $temp['counter']; + return array ( + 'status' => 'inProgress', + 'progress' => $pwdPercentage, + 'errors' => $errors + ); + } + // all modifications are done + else { + return array ( + 'status' => 'finished', + 'progress' => 100, + 'errors' => array() + ); + } + } + + /** + * Returns a list of PDF entries + */ + public function get_pdfEntries() { + $return = array(); + $this->addSimplePDFField($return, 'userPrincipalName', _('User name')); + $this->addSimplePDFField($return, 'cn', _('Common name')); + $this->addSimplePDFField($return, 'sAMAccountName', _('User name (pre W2K)')); + $this->addSimplePDFField($return, 'description', _('Description')); + $this->addSimplePDFField($return, 'displayName', _('Display name')); + $this->addSimplePDFField($return, 'givenName', _('First name')); + $this->addSimplePDFField($return, 'initials', _('Initials')); + $this->addSimplePDFField($return, 'l', _('Location')); + $this->addSimplePDFField($return, 'mail', _('Email address')); + $this->addSimplePDFField($return, 'otherMailbox', _('Email alias')); + $this->addSimplePDFField($return, 'otherTelephone', _('Other telephone numbers')); + $this->addSimplePDFField($return, 'physicalDeliveryOfficeName', _('Office name')); + $this->addSimplePDFField($return, 'postalCode', _('Postal code')); + $this->addSimplePDFField($return, 'postOfficeBox', _('Post office box')); + $this->addSimplePDFField($return, 'sn', _('Last name')); + $this->addSimplePDFField($return, 'st', _('State')); + $this->addSimplePDFField($return, 'streetAddress', _('Street')); + $this->addSimplePDFField($return, 'telephoneNumber', _('Telephone number')); + $this->addSimplePDFField($return, 'url', _('Other web sites')); + $this->addSimplePDFField($return, 'wWWHomePage', _('Web site')); + $this->addSimplePDFField($return, 'msSFU30Name', _('NIS name')); + $this->addSimplePDFField($return, 'msSFU30NisDomain', _('NIS domain')); + $deactivated = _('no'); + if ($this->isDeactivated($this->attributes)) { + $deactivated = _('yes'); + } + $return[get_class($this) . '_deactivated'] = array('' . _('Account is deactivated') . '' . $deactivated . ''); + $noExpire = _('no'); + if ($this->isNeverExpiring($this->attributes)) { + $noExpire = _('yes'); + } + $return[get_class($this) . '_noExpire'] = array('' . _('Password does not expire') . '' . $noExpire . ''); + $requireCard = _('no'); + if ($this->isSmartCardRequired($this->attributes)) { + $requireCard = _('yes'); + } + $return[get_class($this) . '_requireCard'] = array('' . _('Require smartcard') . '' . $requireCard . ''); + $pwdMustChange = _('no'); + if (isset($this->attributes['pwdLastSet'][0]) && ($this->attributes['pwdLastSet'][0] === '0')) { + $pwdMustChange = _('yes'); + } + $return[get_class($this) . '_pwdMustChange'] = array('' . _('Password change at next login') . '' . $pwdMustChange . ''); + $this->addSimplePDFField($return, 'profilePath', _('Profile path')); + $this->addSimplePDFField($return, 'scriptPath', _('Logon script')); + $this->addSimplePDFField($return, 'homeDirectory', _('Home directory')); + $this->addSimplePDFField($return, 'homeDrive', _('Home drive')); + $groups = array(); + foreach ($this->groupList as $group) { + $groups[] = extractRDNValue($group); + } + $return[get_class($this) . '_groups'] = array('' . _('Groups') . '' . implode(', ', $groups) . ''); + // password + if (isset($this->clearTextPassword)) { + $return['windowsUser_password'] = array('' . _('Password') . '' . $this->clearTextPassword . ''); + } + else if (isset($this->attributes['INFO.userPasswordClearText'])) { + $return['windowsUser_password'] = array('' . _('Password') . '' . $this->attributes['INFO.userPasswordClearText'] . ''); + } + return $return; + } + + /** + * Returns a list of elements for the account profiles. + * + * @return htmlElement profile elements + */ + function get_profileOptions() { + $return = parent::get_profileOptions(); + // domain + $domains = $this->getDomains(); + $domains[] = ''; + $return->addElement(new htmlTableExtendedSelect('windowsUser_userPrincipalNameDomain', $domains, array(), _('Domain'), 'userPrincipalNameDomain'), true); + // group memberships + $groups = $this->findGroups(); + $groupList = array(); + foreach ($groups as $dn) { + $groupList[extractRDNValue($dn)] = $dn; + } + $groupSelect = new htmlTableExtendedSelect('windowsUser_groups', $groupList, array(), _('Groups'), 'groups', 10); + $groupSelect->setHasDescriptiveElements(true); + $groupSelect->setMultiSelect(true); + $return->addElement($groupSelect, true); + return $return; + } + + /** + * Loads the values of an account profile into internal variables. + * + * @param array $profile hash array with profile values (identifier => value) + */ + function load_profile($profile) { + // profile mappings in meta data + parent::load_profile($profile); + // load domain + if (isset($profile['windowsUser_userPrincipalNameDomain'][0])) { + $user = empty($this->attributes['userPrincipalName'][0]) ? '' : $this->attributes['userPrincipalName'][0]; + $user = explode('@', $user); + $user = $user[0] . '@' . $profile['windowsUser_userPrincipalNameDomain'][0]; + $this->attributes['userPrincipalName'][0] = $user; + } + // load groups + if (isset($profile['windowsUser_groups'][0])) { + $this->groupList = $profile['windowsUser_groups']; + } + // other mailboxes + if (!empty($profile['windowsUser_otherMailbox'][0])) { + $this->attributes['otherMailbox'] = preg_split('/;[ ]*/', $profile['windowsUser_otherMailbox'][0]); + } + } + + /** + * Returns the meta HTML code for each input field. + * format: array( => array(), ...) + * It is not possible to display help links. + * + * @param array $fields list of active fields + * @param array $attributes attributes of LDAP account + * @param boolean $passwordChangeOnly indicates that the user is only allowed to change his password and no LDAP content is readable + * @param array $readOnlyFields list of read-only fields + * @return array list of meta HTML elements (field name => htmlTableRow) + */ + function getSelfServiceOptions($fields, $attributes, $passwordChangeOnly, $readOnlyFields) { + $return = array(); + if (in_array('unicodePwd', $fields)) { + $pwdTable = new htmlTable(); + $pwdTable->colspan = 3; + $pwd1 = new htmlTableExtendedInputField($this->getSelfServiceLabel('unicodePwd', _('New password')), 'windowsUser_unicodePwd'); + $pwd1->setIsPassword(true, true); + $pwdTable->addElement($pwd1, true); + $pwd2 = new htmlTableExtendedInputField(_('Reenter password'), 'windowsUser_unicodePwd2'); + $pwd2->setIsPassword(true); + $pwd2->setSameValueFieldID('windowsUser_unicodePwd'); + $pwdTable->addElement($pwd2); + $return['unicodePwd'] = new htmlTableRow(array( + $pwdTable + )); + } + if ($passwordChangeOnly) { + return $return; // only password fields as long no LDAP content can be read + } + $this->addSimpleSelfServiceTextField($return, 'physicalDeliveryOfficeName', _('Office name'), $fields, $attributes, $readOnlyFields); + $this->addSimpleSelfServiceTextField($return, 'telephoneNumber', _('Telephone number'), $fields, $attributes, $readOnlyFields); + $this->addSimpleSelfServiceTextField($return, 'wWWHomePage', _('Web site'), $fields, $attributes, $readOnlyFields); + // TODO remove this workaround when self service allows to specify the list of active modules + if (isset($attributes['street'])) { + $attributes['streetAddress'] = $attributes['street']; + } + $this->addSimpleSelfServiceTextField($return, 'streetAddress', _('Street'), $fields, $attributes, $readOnlyFields, false, true); + $this->addSimpleSelfServiceTextField($return, 'st', _('State'), $fields, $attributes, $readOnlyFields); + $this->addSimpleSelfServiceTextField($return, 'l', _('Location'), $fields, $attributes, $readOnlyFields); + $this->addSimpleSelfServiceTextField($return, 'postOfficeBox', _('Post office box'), $fields, $attributes, $readOnlyFields); + $this->addSimpleSelfServiceTextField($return, 'postalCode', _('Postal code'), $fields, $attributes, $readOnlyFields); + return $return; + } + + /** + * Checks if all input values are correct and returns the LDAP attributes which should be changed. + *
    Return values: + *
    messages: array of parameters to create status messages + *
    add: array of attributes to add + *
    del: array of attributes to remove + *
    mod: array of attributes to modify + *
    info: array of values with informational value (e.g. to be used later by pre/postModify actions) + * + * Calling this method does not require the existence of an enclosing {@link accountContainer}. + * + * @param string $fields input fields + * @param array $attributes LDAP attributes + * @param boolean $passwordChangeOnly indicates that the user is only allowed to change his password and no LDAP content is readable + * @param array $readOnlyFields list of read-only fields + * @return array messages and attributes (array('messages' => array(), 'add' => array('mail' => array('test@test.com')), 'del' => array(), 'mod' => array(), 'info' => array())) + */ + function checkSelfServiceOptions($fields, $attributes, $passwordChangeOnly, $readOnlyFields) { + $return = array('messages' => array(), 'add' => array(), 'del' => array(), 'mod' => array(), 'info' => array()); + if (in_array('unicodePwd', $fields)) { + if (isset($_POST['windowsUser_unicodePwd']) && ($_POST['windowsUser_unicodePwd'] != '')) { + if ($_POST['windowsUser_unicodePwd'] != $_POST['windowsUser_unicodePwd2']) { + $return['messages'][] = $this->messages['unicodePwd'][0]; + } + else { + if (!get_preg($_POST['windowsUser_unicodePwd'], 'password')) { + $return['messages'][] = $this->messages['unicodePwd'][1]; + } + else { + $userName = empty($attributes['userPrincipalName'][0]) ? null : $attributes['userPrincipalName'][0]; + $additionalAttrs = array(); + if (!empty($attributes['sn'][0])) { + $additionalAttrs[] = $attributes['sn'][0]; + } + if (!empty($attributes['givenName'][0])) { + $additionalAttrs[] = $attributes['givenName'][0]; + } + $pwdPolicyResult = checkPasswordStrength($_POST['windowsUser_unicodePwd'], $userName, $additionalAttrs); + if ($pwdPolicyResult === true) { + $this->setSelfServicePassword($return, $attributes); + $return['info']['userPasswordClearText'][0] = $_POST['windowsUser_unicodePwd']; + } + else { + $return['messages'][] = array('ERROR', $pwdPolicyResult); + } + } + } + } + } + if ($passwordChangeOnly) { + return $return; // skip processing if only a password change is done + } + // TODO remove this workaround when self service allows to specify the list of active modules + if (isset($attributes['street'])) { + $attributes['streetAddress'] = $attributes['street']; + } + $this->checkSimpleSelfServiceTextField($return, 'physicalDeliveryOfficeName', $attributes, $fields, $readOnlyFields); + $this->checkSimpleSelfServiceTextField($return, 'telephoneNumber', $attributes, $fields, $readOnlyFields, 'telephone'); + $this->checkSimpleSelfServiceTextField($return, 'wWWHomePage', $attributes, $fields, $readOnlyFields); + $this->checkSimpleSelfServiceTextField($return, 'streetAddress', $attributes, $fields, $readOnlyFields); + $this->checkSimpleSelfServiceTextField($return, 'st', $attributes, $fields, $readOnlyFields); + $this->checkSimpleSelfServiceTextField($return, 'l', $attributes, $fields, $readOnlyFields); + $this->checkSimpleSelfServiceTextField($return, 'postOfficeBox', $attributes, $fields, $readOnlyFields); + $this->checkSimpleSelfServiceTextField($return, 'postalCode', $attributes, $fields, $readOnlyFields, 'postalCode'); + return $return; + } + + /** + * Sets the user password in self service. + * Since the change requires the old password we need to run ldapmodify for this task. + * + * Enter description here ... + * @param array $return return value for checkSelfServiceOptions() (used to add message if any) + * @param array $attributes LDAP attributes + */ + private function setSelfServicePassword(&$return, $attributes) { + $newPasswordVal = self::pwdAttributeValue($_POST['windowsUser_unicodePwd']); + $oldPassword = Ldap::decrypt($_SESSION['selfService_clientPassword'], 'SelfService'); + $oldPasswordVal = self::pwdAttributeValue($oldPassword); + $dn = $attributes['dn']; + $ldif = "dn: " . $dn . "\n"; + $ldif .= "changetype: modify\n"; + $ldif .= "delete: unicodePwd\n"; + $ldif .= "unicodePwd:: " . base64_encode($oldPasswordVal) . "\n"; + $ldif .= "-\n"; + $ldif .= "add: unicodePwd\n"; + $ldif .= "unicodePwd:: " . base64_encode($newPasswordVal) . "\n"; + $ldif .= "-\n"; + + $serverURL = $_SESSION['selfServiceProfile']->serverURL; + $tls = ''; + if ($_SESSION['selfServiceProfile']->useTLS) { + $tls = ' -ZZ '; + } + $cmd = "/usr/bin/ldapmodify -H " . $serverURL . $tls . " -D " . escapeshellarg($dn) . " -x -w " . escapeshellarg($oldPassword); + + $descriptorspec = array( + 0 => array("pipe", "r"), // stdin + 1 => array("pipe", "w"), // stout + 2 => array("pipe", "w") // sterr + ); + $process = proc_open($cmd, $descriptorspec, $pipes); + if (is_resource($process)) { + fwrite($pipes[0], $ldif); + } + else { + logNewMessage(LOG_ERR, 'Unable to change password of ' . $dn . '. Calling /usr/bin/ldapmodify failed.'); + $return['messages'][] = array('ERROR', _('Unable to change password.')); + return; + } + fclose($pipes[0]); + $outputMessages = ''; + while (!feof($pipes[1])) { + $output = fgets($pipes[1], 1024); + if ($output != '') { + $outputMessages .= $output; + } + } + while (!feof($pipes[2])) { + $output = fgets($pipes[2], 1024); + if ($output != '') { + $outputMessages .= $output; + } + } + fclose($pipes[1]); + $returnCode = proc_close($process); + if ($returnCode != 0) { + $outputMessages = htmlspecialchars($outputMessages); + // Active Directory message translations + if ((strpos($outputMessages, 'DSID-03190F80') !== false) && (strpos($outputMessages, 'unicodePwd') !== false)) { + $outputMessages = _('Your password does not meet the password strength qualifications. Please retry with another one.') . '

    ' . $outputMessages; + } + logNewMessage(LOG_ERR, 'Changing user password failed: ' . $outputMessages); + $return['messages'][] = array('ERROR', _('Unable to change password.'), $outputMessages); + return; + } + else { + // update session password for next page load + $_SESSION['selfService_clientPasswordNew'] = $_POST['windowsUser_unicodePwd']; + } + } + + /** + * This method specifies if a module manages password attributes. The module alias will + * then appear as option in the GUI. + *
    If the module only wants to get notified about password changes then return false. + * + * @return boolean true if this module manages password attributes + */ + public function managesPasswordAttributes() { + return true; + } + + /** + * Specifies if this module supports to force that a user must change his password on next login. + * + * @return boolean force password change supported + */ + public function supportsForcePasswordChange() { + return true; + } + + /** + * This function is called whenever the password should be changed. Account modules + * must change their password attributes only if the modules list contains their module name. + * + * @param String $password new password + * @param array $modules list of modules for which the password should be changed + * @param boolean $forcePasswordChange force the user to change his password at next login + * @return array list of error messages if any as parameter array for StatusMessage + * e.g. return arrray(array('ERROR', 'Password change failed.')) + */ + public function passwordChangeRequested($password, $modules, $forcePasswordChange) { + if (!in_array(get_class($this), $modules)) { + return array(); + } + // check password strength + $user = empty($this->attributes['userPrincipalName'][0]) ? null : $this->attributes['userPrincipalName'][0]; + $additionalAttrs = array(); + if (!empty($this->attributes['sn'][0])) { + $additionalAttrs[] = $this->attributes['sn'][0]; + } + if (!empty($this->attributes['givenName'][0])) { + $additionalAttrs[] = $this->attributes['givenName'][0]; + } + $checkResult = checkPasswordStrength($password, $user, $additionalAttrs); + if ($checkResult !== true) { + return array(array('ERROR', $checkResult)); + } + // set new password + $pwdBin = self::pwdAttributeValue($password); + $this->orig['unicodePwd'][0] = 'unknown'; + $this->attributes['unicodePwd'][0] = $pwdBin; + $this->attributes['pwdLastSet'][0] = '-1'; + if ($forcePasswordChange) { + $this->attributes['pwdLastSet'][0] = '0'; + } + $this->clearTextPassword = $password; + return array(); + } + + /** + * Creates the LDAP password value. + * + * @param String $password password + */ + public static function pwdAttributeValue($password) { + return iconv('UTF-8', 'UTF-16LE', '"' . $password . '"'); + } + + /** + * Returns if the account is currently deactivated. + * + * @param array $attrs LDAP attributes + * @return boolean is deactivated + */ + public static function isDeactivated($attrs) { + $myAttrs = array_change_key_case($attrs, CASE_LOWER); + if (!isset($myAttrs['useraccountcontrol'][0])) { + return false; + } + return intval($myAttrs['useraccountcontrol'][0]) & windowsUser::AC_ACCOUNT_DISABLED; + } + + /** + * Sets if the account is currently deactivated. + * + * @param boolean $deactivated is deactivated + * @param array $attrs LDAP attributes to modify (default $this->attributes) + */ + public function setIsDeactivated($deactivated, &$attrs = null) { + if ($attrs == null) { + $attrs = &$this->attributes; + } + foreach ($attrs as $key => $value) { + if (strtolower($key) == 'useraccountcontrol') { + if ($deactivated) { + $attrs[$key][0] = intval($attrs[$key][0]) | windowsUser::AC_ACCOUNT_DISABLED; + } + else { + if (intval($attrs[$key][0]) & windowsUser::AC_ACCOUNT_DISABLED) { + $attrs[$key][0] = intval($attrs[$key][0]) - windowsUser::AC_ACCOUNT_DISABLED; + } + } + } + } + } + + /** + * Returns if the account is currently locked out. + * + * @param array $attrs LDAP attributes + * @return boolean is locked out + */ + private static function isLockedOut($attrs) { + $myAttrs = array_change_key_case($attrs, CASE_LOWER); + if (!isset($attrs['useraccountcontrol'][0])) { + return false; + } + return intval($attrs['useraccountcontrol'][0]) & windowsUser::AC_LOCKED_OUT; + } + + /** + * Unlocks the account. + * + * @param array $attrs LDAP attributes to modify + */ + public static function unlock(&$attrs) { + foreach ($attrs as $key => $value) { + if (strtolower($key) == 'useraccountcontrol') { + if (intval($attrs[$key][0]) & windowsUser::AC_LOCKED_OUT) { + $attrs[$key][0] = intval($attrs[$key][0]) - windowsUser::AC_LOCKED_OUT; + } + } + } + } + + /** + * Returns if the account requires a smartcard to login. + * + * @param array $attrs LDAP attributes + * @return boolean requires a smartcard + */ + public static function isSmartCardRequired($attrs) { + $myAttrs = array_change_key_case($attrs, CASE_LOWER); + if (!isset($myAttrs['useraccountcontrol'][0])) { + return false; + } + return intval($myAttrs['useraccountcontrol'][0]) & windowsUser::AC_SMARTCARD_REQUIRED; + } + + /** + * Sets if the account requires a smartcard to login. + * + * @param array $attrs LDAP attributes to modify + * @param boolean $requireCard requires a smartcard + */ + public static function setIsSmartCardRequired(&$attrs, $requireCard) { + foreach ($attrs as $key => $value) { + if (strtolower($key) == 'useraccountcontrol') { + if ($requireCard) { + $attrs[$key][0] = intval($attrs[$key][0]) | windowsUser::AC_SMARTCARD_REQUIRED; + } + else { + if (intval($attrs[$key][0]) & windowsUser::AC_SMARTCARD_REQUIRED) { + $attrs[$key][0] = intval($attrs[$key][0]) - windowsUser::AC_SMARTCARD_REQUIRED; + } + } + } + } + } + + /** + * Returns if the account never expires. + * + * @param array $attrs LDAP attributes + * @return boolean never expires + */ + public static function isNeverExpiring($attrs) { + $myAttrs = array_change_key_case($attrs, CASE_LOWER); + if (!isset($myAttrs['useraccountcontrol'][0])) { + return false; + } + return intval($myAttrs['useraccountcontrol'][0]) & windowsUser::AC_PWD_NEVER_EXPIRES; + } + + /** + * Sets if the account never expires. + * + * @param array $attrs LDAP attributes to modify + * @param boolean $neverExpires never expires + */ + public static function setIsNeverExpiring(&$attrs, $neverExpires) { + foreach ($attrs as $key => $value) { + if (strtolower($key) == 'useraccountcontrol') { + if ($neverExpires) { + $attrs[$key][0] = intval($attrs[$key][0]) | windowsUser::AC_PWD_NEVER_EXPIRES; + } + else { + if (intval($attrs[$key][0]) & windowsUser::AC_PWD_NEVER_EXPIRES) { + $attrs[$key][0] = intval($attrs[$key][0]) - windowsUser::AC_PWD_NEVER_EXPIRES; + } + } + } + } + } + + /** + * Finds all existing groups. + * + * @return array group DNs + */ + private function findGroups() { + if ($this->groupCache != null) { + return $this->groupCache; + } + $return = array(); + $types = array('group'); + $results = searchLDAPByFilter('(objectClass=group)', array('dn'), $types); + $count = sizeof($results); + for ($i = 0; $i < $count; $i++) { + if (isset($results[$i]['dn'])) { + $return[] = $results[$i]['dn']; + } + } + $this->groupCache = $return; + return $return; + } + + /** + * Gets the list of possible domains from the config setting. + * + * @return array domain list + */ + private function getDomains() { + $domains = array(); + if (!empty($this->moduleSettings['windowsUser_domains'])) { + foreach ($this->moduleSettings['windowsUser_domains'] as $domain) { + $domain = trim(str_replace('@', '', $domain)); + if (!empty($domain)) { + $domains[] = $domain; + } + } + } + return array_values(array_unique($domains)); + } + +} + +?> diff --git a/lam/lib/pdf.inc b/lam/lib/pdf.inc new file mode 100644 index 00000000..72228c35 --- /dev/null +++ b/lam/lib/pdf.inc @@ -0,0 +1,331 @@ +get_type(); + // Get PDF structure from xml file + $load = loadPDFStructureDefinitions($account_type,$pdf_structure); + $structure = $load['structure']; + + // The decimal separator must be a dot in order to write pdf-files + setlocale(LC_NUMERIC, "C"); + + $fontName = "BitstreamVeraSans-Roman"; + + // Create a new PDF file acording to the account type + $pdf = new lamPDF($load['page_definitions'],$fontName); + + // Loop over each account and add a new page in the PDF file for it + foreach($accounts as $account) { + + // Start a new page for each account + $pdf->AddPage(); + + // Get PDF entries for the current account + $entries = $account->get_pdfEntries(); + + // Now create the PDF file acording to the structure with the submitted values + foreach($structure as $entry) { + // We have a new section to start + if($entry['tag'] == "SECTION" && $entry['type'] == "open") { + $name = $entry['attributes']['NAME']; + if(preg_match("/^_[a-zA-Z_]+/",$name)) { + $section_headline = getSectionHeadline($entries[substr($name,1)][0]); + } + else { + $section_headline = $name; + } + $pdf->setFont($fontName,"B",10); + $pdf->Write(0,$section_headline . ":"); + $pdf->Ln(6); + } + // We have a section to end + elseif($entry['tag'] == "SECTION" && $entry['type'] == "close") { + $pdf->Ln(9); + } + // We have to include a static text. + elseif($entry['tag'] == "TEXT") { + // Load PDF text from structure array + $info_string = $entry['value']; + // Set font for text + $pdf->setFont($fontName,"",10); + $pdf->MultiCell(0,5,$info_string,0,"L",0); + // Print linebreak afterwards + $pdf->Ln(6); + } + // We have to include an entry from the account + elseif($entry['tag'] == "ENTRY") { + // Get name of current entry + $name = $entry['attributes']['NAME']; + // skip non-existent entries + if (isset($entries[$name])) { + // Get current entry + $value_entry = $entries[$name]; + + // Print entry only when module sumitted values for it + if(is_array($value_entry)) { + // Loop over all rows of this entry (most of the time this will be just one) + foreach($value_entry as $line) { + // Substitue XML syntax with valid FPDF methods + $methods = processLine($line,true,$fontName); + // Call every method + foreach($methods as $method) { + call_user_func_array(array(&$pdf,$method[0]),$method[1]); + } + } + } + } + $key = false; + } + } + } + + // Close PDF + $pdf->Close(); + if (!$returnAsString) { + // use timestamp and random number from ldap.inc as filename so it should be unique. + $filename = '../../tmp/' . getRandomNumber() . time() .'.pdf'; + // Save PDF + $pdf->Output($filename); + chmod($filename, 0600); + // return PDF file name + return $filename; + } + else { + return $pdf->Output('', 'S'); + } +} + +/** + * Creates a section headline. + * + * @param string $line section name + * + * @return string XML code for headline + */ +function getSectionHeadline($line) { + $headline_pattern = '/.*(.*)<\/value><\/block>/'; + if(preg_match($headline_pattern,$line,$matches)) { + $valueStyle = processFormatTags($matches[1],''); + return $valueStyle[1]; + } + else { + return ''; + } +} + +/** + * Creates the XML code for an PDF entry. + * + * @param string $line XML code of PDF entry + * @param boolean $first_td True if this is the first column + * @param String $fontName font name + * + * @return array XML codes + */ +function processLine($line, $first_td = true, $fontName) { + global $key, $line_width; + + // PCRE matching tag + $block_pattern = '/<\/block>/'; + // PCRE matching a tag + $key_pattern = '/()(.+)<\/key>(.*<\/block>)/'; + // PCRE matching a tag + // !!FIXME!! value must contain at least one character + $value_pattern = '/(.*)(.*)<\/value>(<\/block>)/'; + // PCRE matching a tag + $td_pattern = '/(.*?)(.+?)<\/td>(.*<\/block>)/'; + // PCRE matching tag + $tr_pattern = '/<\/tr>/'; + // PCRE matching a

    tag + $p_pattern = '/(.*)

    (.+)<\/p>(.*<\/block>)/'; + // PCRE matching a
    tag + $br_pattern = '/
    /'; + + $return = array(); + if(preg_match($key_pattern,$line,$matches)) { + $key = true; + $line_width = $line_width - 50; + $format = processFormatTags($matches[2],'B'); + $return[] = array('setFont',array($fontName,$format[0],7)); + $return[] = array('Cell',array(50,5,$format[1] . ':',0,0,'R',0)); + $return[] = array('setFont',array($fontName,'',7)); + return array_merge($return,processLine($matches[1] . $matches[3],false,$fontName)); + } + elseif(preg_match($value_pattern,$line,$matches)) { + $format = processFormatTags($matches[2],''); + $return[] = array('setFont',array($fontName,$format[0],7)); + $return[] = array('MultiCell',array(0,5,$format[1],0,'L',0)); + $return[] = array('setFont',array($fontName,'',7)); + return array_merge($return,processLine($matches[1] . $matches[3],true,$fontName)); + } + elseif(preg_match($p_pattern,$line,$matches)) { + $format = processFormatTags($matches[2],''); + $return[] = array('setFont',array($fontName,$format[0],7)); + $return[] = array('Write',array(5,$format[1])); + $return[] = array('setFont',array($fontName,'',7)); + return array_merge($return,processLine($matches[1] . $matches[3],true,$fontName)); + } + elseif(preg_match($td_pattern,$line,$matches)) { + if($first_td && $key) { + $first_td = !$first_td; + $return[] = array('Cell',array(50,5,'',0,0,'L',0)); + } + $format = processFormatTags($matches[3],''); + $attrs = processAttributes($matches[2],array('width' => $line_width,'height' => 5,'align' => 'L')); + $return[] = array('setFont',array($fontName,$format[0],7)); + $return[] = array('Cell',array($attrs['width'],$attrs['height'],$format[1],0,0,$attrs['align'],0)); + $return[] = array('setFont',array($fontName,'',7)); + return array_merge($return,processLine($matches[1] . $matches[4],$first_td,$fontName)); + } + elseif(preg_match($br_pattern,$line,$matches)) { + return array(array('Ln',array(5))); + } + elseif(preg_match($block_pattern,$line,$matches)) { + $line_width = LAMPDF_LINEWIDTH; + return array(); + } + elseif(preg_match($tr_pattern,$line,$matches)) { + $line_width = LAMPDF_LINEWIDTH; + return array(array('Ln',array(5))); + } +} + +/** + * Formats the XML code. + * + * @param string $line XML code of PDF entry + * @param string $style style commands + * + * @return array XML code + */ +function processFormatTags($line,$style) { + // PCRE matching a tag + $i_pattern = '/(.*)(.+)<\/i>(.*)/'; + // PCRE matching a tag + $b_pattern = '/(.*)(.+)<\/b>(.*)/'; + // PCRE matching a tag + $u_pattern = '/(.*)(.+)<\/u>(.*)/'; + // Replacement pattern when one of the above pattern matched + $replace = "\$1\$2\$3"; + + if(preg_match($i_pattern,$line,$matches)) { + $style .= "I"; + $line = preg_replace($i_pattern,$replace,$line); + } + if(preg_match($b_pattern,$line,$matches)) { + $style .= "B"; + $line = preg_replace($b_pattern,$replace,$line); + } + if(preg_match($u_pattern,$line,$matches)) { + $style .= "U"; + $line = preg_replace($u_pattern,$replace,$line); + } + return array($style,$line); +} + +/** + * Processes width, height and alignment attributes. + * + * @param string $attrs attributes + * @param array $return XML code + * + * @return array XML code + */ +function processAttributes($attrs,$return = array()) { + global $line_width; + + // PCRE matching width attribute + $width_pattern = '/(.*)width\=\"(\\d+)(\%?)\"(.*)/'; + // PCRE matching height attribute + $height_pattern = '/(.*)height\=\"(\\d+)\"(.*)/'; + // PCRE matching align attribute + $align_pattern = '/(.*)align\=\"(L|R|C)\"(.*)/'; + + // Remove leading and trailing whitespaces + $attrs = trim($attrs); + + if(preg_match($width_pattern,$attrs,$matches)) { + if($matches[3] == '%') { + $return['width'] = ceil($line_width * $matches[2] / 100); + } + else { + $return['width'] = ceil($matches[2]); + } + return processAttributes($matches[1] . $matches[4],$return); + } + elseif(preg_match($height_pattern,$attrs,$matches)) { + $return['height'] = $matches[2]; + return processAttributes($matches[1] . $matches[3],$return); + } + elseif(preg_match($align_pattern,$attrs,$matches)) { + $return['align'] = $matches[2]; + return processAttributes($matches[1] . $matches[3],$return); + } + else { + return $return; + } +} diff --git a/lam/lib/pdfstruct.inc b/lam/lib/pdfstruct.inc new file mode 100644 index 00000000..bf81592c --- /dev/null +++ b/lam/lib/pdfstruct.inc @@ -0,0 +1,307 @@ +getName(); + } + $path = dirname(__FILE__) . '/../config/pdf/' . $profile; + if(is_dir($path)) { + $dirHandle = opendir($path); + while($file = readdir($dirHandle)) { + $struct_file = explode('.',$file); + if(!is_dir($path.$file) && ($file != '.') && ($file != '..') && (sizeof($struct_file) == 3) && ($struct_file[1] == $scope) && ($struct_file[2] == 'xml')) { + array_push($return, $struct_file[0]); + } + } + sort($return); + } + return $return; +} + +/** + * This function is used to get pdf structure from xml file. + * Used in createModulePDF. + * + * @param string $scope The account scope for wich the PDF structure should be returned. + * @param string $pdf_structure Structure name of selected scope wich should be returned. + * + * @return array PDF structure + */ +function loadPDFStructureDefinitions($scope='user',$pdf_structure='default') { + $parser = new xmlParser(); + $file = dirname(__FILE__) . '/../config/pdf/' . $_SESSION['config']->getName() . '/' . $pdf_structure . '.' . $scope . '.xml'; + $xml = $parser->parse($file); + $border = array(); + $structure = array(); + $complete_page_definitions = array('filename' => 'printLogo.jpg', 'headline' => 'LDAP Account Manager'); + if($xml[0][$xml[1]['PDF'][0]]['attributes']['TYPE'] == $scope) { + $border['start'] = $xml[1]['PDF'][0]; + $page_definitions = $xml[0][$xml[1]['PDF'][0]]['attributes']; + foreach($page_definitions as $key => $value) { + $complete_page_definitions[strtolower($key)] = $value; + unset($page_definitions[$key]); + } + $border['end'] = $xml[1]['PDF'][1]; + } + $structure = array_slice($xml[0],$border['start'] + 1,$border['end'] - ($border['start'] + 1)); + return array('structure' => $structure, 'page_definitions' => $complete_page_definitions); +} + + +/** + * Saves PDF structure definitions to XML file in format: ..xml + * + * @param string $scope account type + * @param string $definition Name of definition + * @return string "no perms" if access denied or "ok". + */ +function savePDFStructureDefinitions($scope,$definition) { + if (!preg_match('/[a-zA-Z0-9\-\_]+/',$definition)) return 'no perms'; + if (!preg_match('/[a-zA-Z]+/',$scope)) return 'no perms'; + $struct_file = dirname(__FILE__) . '/../config/pdf/' . $_SESSION['config']->getName() . '/' . $definition . '.' . $scope . '.xml'; + if(!is_writable(dirname(__FILE__) . '/../config/pdf/' . $_SESSION['config']->getName())) { + return 'no perms'; + } + else { + $handle = @fopen($struct_file,'w'); + if (!$handle) return 'no perms'; + $pdf_attributes = ''; + foreach($_SESSION['currentPageDefinitions'] as $key => $value) { + if($key != 'type') { + $pdf_attributes .= ' ' . $key . '="' . $value . '"'; + } + } + $file = '\n"; + foreach($_SESSION['currentPDFStructure'] as $entry) { + $ident = ''; + for($i=0;$i<$entry['level'] -1;$i++) { + $ident .= "\t"; + } + $attributes = ''; + if(isset($entry['attributes']) && is_array($entry['attributes'])) { + foreach($entry['attributes'] as $key => $value) { + $attributes .= ' ' . strtolower($key) . '="' . $value . '"'; + } + } + if($entry['type'] == 'open') { + $file .= $ident . '<' . strtolower($entry['tag']) . $attributes . ">\n"; + } + elseif($entry['type'] == 'close') { + $file .= $ident . '\n"; + } + elseif($entry['type'] == 'complete') { + if(isset($entry['value'])) { + $file .= $ident . '<' . strtolower($entry['tag']) . $attributes . '>' . $entry['value'] . '\n"; + } + else { + $file .= $ident . '<' . strtolower($entry['tag']) . $attributes . " />\n"; + } + } + } + $file .= ""; + fwrite($handle,$file); + fclose($handle); + return 'ok'; + } +} + +/** + * Deletes XML file with PDF structure definitions. + * + * @param string $scope account type + * @param string $definition Name of definition to delete + * + * @return boolean True if file was deleted or false if a problem occured. + */ +function deletePDFStructureDefinition($scope, $definition) { + if (!preg_match('/[a-zA-Z0-9\-\_]+/',$definition)) return false; + if (!preg_match('/[a-zA-Z]+/',$scope)) return false; + $file = dirname(__FILE__) . '/../config/pdf/' . $_SESSION['config']->getName() . '/' . $definition . '.' . $scope . '.xml'; + if(is_file($file) && is_writable($file)) { + return unlink($file); + } + else { + return false; + } + +} + +/** + * This function returns an array with all aviliable logo images. + * + * @return array list of logo files + */ +function getAvailableLogos() { + $return = array(); + $dirPath = dirname(__FILE__) . '/../config/pdf/' . $_SESSION['config']->getName() . '/logos/'; + $dirHandle = opendir($dirPath); + while($file = readdir($dirHandle)) { + if(!is_dir($file) && $file != '.' && $file != '..' && preg_match('/\\.(jpg|png)$/',$file)) { + $infos = getimagesize($dirPath . $file); + if($infos[0] <= 2000 && $infos[1] <= 300) { + array_push($return, array('filename' => $file, 'infos' => $infos)); + } + } + } + sort($return); + return $return; +} + + +/** + * Copies PDF profiles to other server profiles. + * + * @param array $pdfProfiles PDF profile names + * @param String $scope account scope + * @param array $dests destinations + * + * @return boolean operation succeeded + */ +function copyPdfProfiles($pdfProfiles, $scope, $dests = array()) { + $state = true; + $profilePath = substr(__FILE__, 0, strlen(__FILE__) - 17) . 'config/pdf/'; + foreach ($pdfProfiles as $profile) { + //part 1: server profile + //part 2: account profile + $tmpArr = explode('##', $profile); + $src = $profilePath . $tmpArr[0] . '/' . $tmpArr[1] . '.' . $scope . '.xml'; + if (!empty($dests)) { + foreach ($dests as $dest) { + if ($dest == 'templates*') { + $dst = substr(__FILE__, 0, strlen(__FILE__) - 17) . 'config/templates/pdf/' . $tmpArr[1] . '.' . $scope . '.xml'; + } else { + $dst = $profilePath . $dest . '/' . $tmpArr[1] . '.' . $scope . '.xml'; + } + if (!@copy($src, $dst)) { + StatusMessage('ERROR', _('Failed to export!'), $tmpArr[1] . '.' . $scope . '.xml'); + $state = false; + } + } + } else { + $dst = $profilePath . $_SESSION['config']->getName() . '/' . $tmpArr[1] . '.' . $scope . '.xml'; + if (!@copy($src, $dst)) { + StatusMessage('ERROR', _('Failed to import!'), $tmpArr[1] . '.' . $scope . '.xml'); + $state = false; + } + } + } + + return $state; +} + +/** + * Uploads a PDF logo file for the current server profile. + * + * @param String $file full path of temporary file + * @param String $name file name + * @return StatusMessage status message to display + */ +function uploadPDFLogo($file, $name) { + if (!preg_match('/[a-zA-Z0-9_-]+\\.(png)|(jpg)/', $name)) { + return new htmlStatusMessage('ERROR', _('Unable to upload logo file.'), _('The file name must end with ".png" or ".jpg".')); + } + $infos = getimagesize($file); + if ($infos[0] <= 2000 && $infos[1] <= 300) { + $dirPath = dirname(__FILE__) . '/../config/pdf/' . $_SESSION['config']->getName() . '/logos/'; + $success = copy($file, $dirPath . '/' . $name); + if ($success) { + return new htmlStatusMessage('INFO', _('Uploaded logo file.'), $name); + } + else { + return new htmlStatusMessage('ERROR', _('Unable to upload logo file.'), $name); + } + } + return new htmlStatusMessage('ERROR', _('Unable to upload logo file.'), _('The file must not exeed 2000x300px.')); +} + +/** + * Deletes a PDF logo file. + * + * @param String $name file name + * @return StatusMessage status message to display + */ +function deletePDFLogo($name) { + // check if valid file + $found = false; + $logos = getAvailableLogos(); + foreach ($logos as $logo) { + if ($logo['filename'] === $name) { + $found = true; + break; + } + } + if (!$found) { + return new htmlStatusMessage('ERROR', _('File does not exist.'), htmlspecialchars($name)); + } + // check if still in use + $activeTypes = $_SESSION['config']->get_ActiveTypes(); + foreach ($activeTypes as $type) { + $structures = getPDFStructureDefinitions($type); + foreach ($structures as $structure) { + $data = loadPDFStructureDefinitions($type, $structure); + if ($data['page_definitions']['filename'] == $name) { + return new htmlStatusMessage('ERROR', _('Unable to delete logo file.'), + sprintf(_('Logo is still in use by PDF structure "%s" in account type "%s".'), $structure, getTypeAlias($type))); + } + } + } + // delete file + $dirPath = dirname(__FILE__) . '/../config/pdf/' . $_SESSION['config']->getName() . '/logos/'; + $success = @unlink($dirPath . '/' . $name); + if ($success) { + return new htmlStatusMessage('INFO', _('Logo file deleted.'), $name); + } + else { + return new htmlStatusMessage('ERROR', _('Unable to delete logo file.'), $name); + } +} + +?> diff --git a/lam/lib/profiles.inc b/lam/lib/profiles.inc new file mode 100644 index 00000000..84b15b29 --- /dev/null +++ b/lam/lib/profiles.inc @@ -0,0 +1,206 @@ +getName(); + } + + $dir = @dir(substr(__FILE__, 0, strlen(__FILE__) - 17) . "/config/profiles/" . $profile); + + $ret = array(); + $pos = 0; + if ($dir) { + $entry = $dir->read(); + while ($entry){ + // check if filename ends with . + if (strrpos($entry, '.')) { + $pos = strrpos($entry, '.'); + if (substr($entry, $pos + 1) == $scope) { + $name = substr($entry, 0, $pos); + $ret[] = $name; + } + } + $entry = $dir->read(); + } + } + return $ret; +} + + +/** +* Loads an profile of the given account type +* +* @param string $profile name of the profile (without . extension) +* @param string $scope account type +* @return array hash array (attribute => value) +*/ +function loadAccountProfile($profile, $scope) { + if (!preg_match("/^[0-9a-z _-]+$/i", $profile) || !preg_match("/^[a-z]+$/i", $scope)) return false; + $settings = array(); + $file = substr(__FILE__, 0, strlen(__FILE__) - 17) . "/config/profiles/" . $_SESSION['config']->getName() . '/' . $profile . "." . $scope; + if (is_file($file) == True) { + $file = @fopen($file, "r"); + if ($file) { + while (!feof($file)) { + $line = fgets($file, 1024); + if (($line == "\n")||($line[0] == "#")) continue; // ignore comments + // search keywords + $parts = array(); + $parts = explode(": ", $line); + if (sizeof($parts) != 2) continue; // ignore malformed settings + else { + $option = $parts[0]; + $value = $parts[1]; + // remove line ends + $value = chop($value); + $settings[$option] = explode("+::+", $value); + } + } + fclose($file); + } + else { + StatusMessage("ERROR", "", _("Unable to load profile!") . " " . $file); + } + } + else { + StatusMessage("ERROR", "", _("Unable to load profile!") . " " . $file); + } + return $settings; +} + +/** +* Saves an hash array (attribute => value) to an account profile +* +* file is created, if needed +* +* @param array $attributes hash array (attribute => value) +* @param string $profile name of the account profile (without . extension) +* @param string $scope account type +* @return boolean true, if saving succeeded +*/ +function saveAccountProfile($attributes, $profile, $scope) { + if (!$_SESSION['loggedIn'] == true) return false; + // check profile name + if (!preg_match("/^[0-9a-z _-]+$/i", $profile) || !preg_match("/^[a-z]+$/i", $scope)) return false; + if (!is_array($attributes)) { + return false; + } + $path = substr(__FILE__, 0, strlen(__FILE__) - 17) . "/config/profiles/" . $_SESSION['config']->getName() . '/' . $profile . "." . $scope; + $file = @fopen($path, "w"); + if ($file) { + // write attributes + $keys = array_keys($attributes); + for ($i = 0; $i < sizeof($keys); $i++) { + if (isset($attributes[$keys[$i]])) { + $line = $keys[$i] . ": " . implode("+::+", $attributes[$keys[$i]]) . "\n"; + } + else { + $line = $keys[$i] . ": \n"; + } + fputs($file, $line); + } + // close file + fclose($file); + } + else { + return false; + } + return true; +} + +/** +* Deletes an account profile +* +* @param string $file name of profile (Without . extension) +* @param string $scope account type +* @return boolean true if profile was deleted +*/ +function delAccountProfile($file, $scope) { + if (!$_SESSION['loggedIn'] == true) return false; + if (!preg_match("/^[0-9a-z _-]+$/i", $file) || !preg_match("/^[a-z]+$/i", $scope)) return false; + $prof = substr(__FILE__, 0, strlen(__FILE__) - 16) . "config/profiles/". $_SESSION['config']->getName() . '/' . $file . "." . $scope; + if (is_file($prof)) { + return @unlink($prof); + } + else return false; +} + + +/** + * Copies account profiles to other server profiles. + * + * @param array $accountProfiles account profile names + * @param String $scope account scope + * @param array $dests destinations + * + * @return boolean operation succeeded + */ +function copyAccountProfiles($accountProfiles, $scope, $dests = array()) { + $state = true; + $profilePath = substr(__FILE__, 0, strlen(__FILE__) - 17) . '/config/profiles/'; + foreach ($accountProfiles as $profile) { + //part 1: server profile + //part 2: account profile + $tmpArr = explode('##', $profile); + $src = $profilePath . $tmpArr[0] . '/' . $tmpArr[1] . '.' . $scope; + if (!empty($dests)) { + foreach ($dests as $dest) { + if ($dest == 'templates*') { + $dst = substr(__FILE__, 0, strlen(__FILE__) - 17) . '/config/templates/profiles/' . $tmpArr[1] . '.' . $scope; + } else { + $dst = $profilePath . $dest . '/' . $tmpArr[1] . '.' . $scope; + } + if (!@copy($src, $dst)) { + StatusMessage('ERROR', _('Failed to export!'), $tmpArr[1] . '.' . $scope); + $state = false; + } + } + } else { + $dst = $profilePath . $_SESSION['config']->getName() . '/' . $tmpArr[1] . '.' . $scope; + if (!@copy($src, $dst)) { + StatusMessage('ERROR', _('Failed to import!'), $tmpArr[1] . '.' . $scope); + $state = false; + } + } + } + + return $state; +} + +?> diff --git a/lam/lib/schema.inc b/lam/lib/schema.inc new file mode 100644 index 00000000..58a766d9 --- /dev/null +++ b/lam/lib/schema.inc @@ -0,0 +1,2062 @@ +oid = null; + $this->description = null; + } + + /** Default constructor. */ + function SchemaItem() + { + $this->initVars(); + } + + function setOID( $new_oid ) + { + $this->oid = $new_oid; + } + + function setDescription( $new_desc ) + { + $this->description = $new_desc; + } + + function getOID() + { + return $this->oid; + } + + function getDescription() + { + return $this->description; + } + } + +/** + * Represents an LDAP objectClass + * + * @package lib + */ +class ObjectClass extends SchemaItem +{ + /** This objectClass' name, ie "inetOrgPerson" */ + var $name; + /** array of objectClass names from which this objectClass inherits */ + var $sup_classes; + /** one of STRUCTURAL, ABSTRACT, or AUXILIARY */ + var $type; + /** arrays of attribute names that this objectClass requires */ + var $must_attrs; + /** arrays of attribute names that this objectClass allows, but does not require */ + var $may_attrs; + /** boolean value indicating whether this objectClass is obsolete */ + var $is_obsolete; + /** array of objectClasses which inherit from this one (must be set at runtime explicitly by the caller) */ + var $children_objectclasses; + + /** Initialize the class' member variables */ + function initVars() + { + parent::initVars(); + $this->oid = null; + $this->name = null; + $this->description = null; + $this->sup_classes = array(); + $this->type = null; + $this->must_attrs = array(); + $this->may_attrs = array(); + $this->is_obsolete = false; + $this->children_objectclasses = array(); + } + + /** + * Creates a new ObjectClass object given a raw LDAP objectClass string. + */ + function ObjectClass( $raw_ldap_schema_string ) + { + $this->initVars(); + $class = $raw_ldap_schema_string; + $class = preg_replace('/\\(([a-z])/i', '( $1', $class); + $class = preg_replace('/([a-z])\\)/i', '$1 )', $class); + $strings = preg_split ('/[\s,]+/', $class, -1,PREG_SPLIT_DELIM_CAPTURE); + for($i=0; $iname)==0) + $this->name = $strings[$i]; + else + $this->name .= " " . $strings[$i]; + }while(!preg_match('/\'$/s', $strings[$i])); + } else { + $i++; + do { + $i++; + if(strlen($this->name) == 0) + $this->name = $strings[$i]; + else + $this->name .= " " . $strings[$i]; + } while(!preg_match('/\'$/s', $strings[$i])); + do { + $i++; + }while(!preg_match('/\)+\)?/',$strings[$i])); + } + $this->name = preg_replace('/^\'/', "", $this->name); + $this->name = preg_replace('/\'$/', "", $this->name); + break; + case 'DESC': + do { + $i++; + if(strlen($this->description)==0) + $this->description=$this->description . $strings[$i]; + else + $this->description=$this->description . " " . $strings[$i]; + }while(!preg_match('/\'$/s', $strings[$i])); + break; + case 'OBSOLETE': + $this->is_obsolete = TRUE; + break; + case 'SUP': + if($strings[$i+1]!="(") { + $i++; + array_push ($this->sup_classes, preg_replace("/'/","",$strings[$i])); + }else{ + $i++; + do { + $i++; + if($strings[$i]!="$") + array_push($this->sup_classes,preg_replace("/'/","",$strings[$i])); + }while(! preg_match('/\)+\)?/',$strings[$i+1])); + } + break; + case 'ABSTRACT': + $this->type='abstract'; + break; + case 'STRUCTURAL': + $this->type='structural'; + break; + case 'AUXILIARY': + $this->type='auxiliary'; + break; + case 'MUST': + if (preg_match('/^\(./',$strings[$i+1])) + { + $i++; + $attr = new ObjectClassAttribute(preg_replace('/^\(/',"",$strings[$i]), $this->name); + array_push ($this->must_attrs, $attr); + do { + $i++; + if($strings[$i]!="$") + { + $attr = new ObjectClassAttribute($strings[$i], $this->name); + array_push ($this->must_attrs, $attr); + } + }while(! preg_match('/\)+\)?/',$strings[$i+1])); + } + elseif($strings[$i+1]!="(") + { + $i++; + $attr = new ObjectClassAttribute($strings[$i], $this->name); + array_push ($this->must_attrs, $attr); + }else{ + $i++; + do { + $i++; + if($strings[$i]!="$") + { + $attr = new ObjectClassAttribute($strings[$i], $this->name); + array_push ($this->must_attrs, $attr); + } + }while(! preg_match('/\)+\)?/',$strings[$i+1])); + } + sort($this->must_attrs); + break; + case 'MAY': + if (preg_match('/^\(./',$strings[$i+1])) + { + $i++; + $attr = new ObjectClassAttribute(preg_replace('/^\(/',"",$strings[$i]), $this->name); + array_push ($this->may_attrs, $attr); + do + { + $i++; + if($strings[$i]!="$") + { + $attr = new ObjectClassAttribute($strings[$i], $this->name); + array_push ($this->may_attrs, $attr); + } + }while(! preg_match('/\)+\)?/',$strings[$i+1])); + } + elseif($strings[$i+1]!="(") + { + $i++; + $attr = new ObjectClassAttribute($strings[$i], $this->name); + array_push ($this->may_attrs, $attr); + }else{ + $i++; + do + { + $i++; + if($strings[$i]!="$") + { + $attr = new ObjectClassAttribute($strings[$i], $this->name); + array_push ($this->may_attrs, $attr); + } + }while(! preg_match('/\)+\)?/',$strings[$i+1])); + } + sort($this->may_attrs); + break; + default: + if(preg_match ('/[\d\.]+/i',$strings[$i]) && $i == 1) + $this->oid = $strings[$i]; + } + } + + $this->description = preg_replace('/^\'/', "", $this->description); + $this->description = preg_replace('/\'$/', "", $this->description); + } + + /** + * Gets an array of AttributeType objects that entries of this ObjectClass must define. + * This differs from getMustAttrNames in that it returns an array of AttributeType objects + * + * @param array $oclasses An array of ObjectClass objects to use when traversing + * the inheritance tree. This presents some what of a bootstrapping problem + * as we must fetch all objectClasses to determine through inheritance which + * attributes this objectClass requires. + * @return array The array of required AttributeType objects. + * + * @see getMustAttrNames + * @see getMayAttrs + * @see getMayAttrNames + */ + function getMustAttrs($oclasses = NULL) + { + $all_must_attrs = array(); + $all_must_attrs = $this->must_attrs; + foreach( $this->sup_classes as $sup_class) + { + if( $oclasses != null + && $sup_class != "top" + && isset( $oclasses[ strtolower($sup_class) ] ) ) { + $sup_class = $oclasses[ strtolower($sup_class) ]; + $sup_class_must_attrs = $sup_class->getMustAttrs( $oclasses ); + $all_must_attrs = array_merge( $sup_class_must_attrs, $all_must_attrs ); + } + } + + ksort($all_must_attrs); + return $all_must_attrs; + } + + /** + * Gets an array of AttributeType objects that entries of this ObjectClass may define. + * This differs from getMayAttrNames in that it returns an array of AttributeType objects + * + * @param array $oclasses An array of ObjectClass objects to use when traversing + * the inheritance tree. This presents some what of a bootstrapping problem + * as we must fetch all objectClasses to determine through inheritance which + * attributes this objectClass provides. + * @return array The array of allowed AttributeType objects. + * + * @see getMustAttrNames + * @see getMustAttrs + * @see getMayAttrNames + * @see AttributeType + */ + function getMayAttrs($oclasses = NULL) + { + $all_may_attrs = array(); + $all_may_attrs = $this->may_attrs; + foreach( $this->sup_classes as $sup_class_name ) + { + if( $oclasses != null + && $sup_class_name != "top" + && isset( $oclasses[ strtolower($sup_class_name) ] ) ) { + $sup_class = $oclasses[ strtolower($sup_class_name) ]; + $sup_class_may_attrs = $sup_class->getMayAttrs( $oclasses ); + $all_may_attrs = array_merge( $sup_class_may_attrs, $all_may_attrs ); + } + } + + ksort($all_may_attrs); + return $all_may_attrs; + } + + /** + * Gets an array of attribute names (strings) that entries of this ObjectClass must define. + * This differs from getMustAttrs in that it returns an array of strings rather than + * array of AttributeType objects + * + * @param array $oclasses An array of ObjectClass objects to use when traversing + * the inheritance tree. This presents some what of a bootstrapping problem + * as we must fetch all objectClasses to determine through inheritance which + * attributes this objectClass provides. + * @return array The array of allowed attribute names (strings). + * + * @see getMustAttrs + * @see getMayAttrs + * @see getMayAttrNames + */ + function getMustAttrNames( $oclasses = null ) + { + $attrs = $this->getMustAttrs( $oclasses ); + $attr_names = array(); + foreach( $attrs as $attr ) + $attr_names[] = $attr->getName(); + return $attr_names; + } + + /** + * Gets an array of attribute names (strings) that entries of this ObjectClass must define. + * This differs from getMayAttrs in that it returns an array of strings rather than + * array of AttributeType objects + * + * @param array $oclasses An array of ObjectClass objects to use when traversing + * the inheritance tree. This presents some what of a bootstrapping problem + * as we must fetch all objectClasses to determine through inheritance which + * attributes this objectClass provides. + * @return array The array of allowed attribute names (strings). + * + * @see getMustAttrs + * @see getMayAttrs + * @see getMustAttrNames + */ + function getMayAttrNames( $oclasses = null ) + { + $attrs = $this->getMayAttrs( $oclasses ); + $attr_names = array(); + foreach( $attrs as $attr ) + $attr_names[] = $attr->getName(); + return $attr_names; + } + + /** + * Adds an objectClass to the list of objectClasses that inherit + * from this objectClass. + * @param String $object_class_name The name of the objectClass to add + * @return bool Returns true on success or false on failure (objectclass already existed for example) + */ + function addChildObjectClass( $object_class_name ) + { + $object_class_name = trim( $object_class_name ); + if( ! is_array( $this->children_objectclasses ) ) + $this->children_objectclasses = array(); + foreach( $this->children_objectclasses as $existing_objectclass ) + if( 0 == strcasecmp( $object_class_name, $existing_objectclass ) ) + return false; + $this->children_objectclasses[] = $object_class_name; + return true; + } + + /** + * Returns the array of objectClass names which inherit from this objectClass. + * @return Array Names of objectClasses which inherit from this objectClass. + */ + function getChildObjectClasses() + { + return $this->children_objectclasses; + } + + /** + * Gets the name of this objectClass (ie, "inetOrgPerson") + * @return string The name of the objectClass + */ + function getName() + { + return $this->name; + } + + /** + * Gets the objectClass names from which this objectClass inherits. + * + * @return array An array of objectClass names (strings) + */ + function getSupClasses() + { + return $this->sup_classes; + } + + /** + * Gets the type of this objectClass: STRUCTURAL, ABSTRACT, or AUXILIARY. + */ + function getType() + { + return $this->type; + } + + /** + * Gets whether this objectClass is flagged as obsolete by the LDAP server. + */ + function getIsObsolete() + { + return $this->is_obsolete; + } + + /** + * Adds the specified array of attributes to this objectClass' list of + * MUST attributes. The resulting array of must attributes will contain + * unique members. + * + * @param array $new_must_attrs An array of attribute names (strings) to add. + */ + function addMustAttrs( $new_must_attrs ) + { + if( ! is_array( $new_must_attrs ) ) + return; + if( 0 == count( $new_must_attrs ) ) + return; + $this->must_attrs = array_values( array_unique( array_merge( $this->must_attrs, $new_must_attrs ) ) ); + } + + /** + * Behaves identically to addMustAttrs, but it operates on the MAY + * attributes of this objectClass. + * + * @param array $new_may_attrs An array of attribute names (strings) to add. + */ + function addMayAttrs( $new_may_attrs ) + { + if( ! is_array( $new_may_attrs ) ) + return; + if( 0 == count( $new_may_attrs ) ) + return; + $this->may_attrs = array_values( array_unique( array_merge( $this->may_attrs, $new_may_attrs ) ) ); + } +} + + /** + * A simple class for representing AttributeTypes used only by the ObjectClass class. + * Users should never instantiate this class. It represents an attribute internal to + * an ObjectClass. If PHP supported inner-classes and variable permissions, this would + * be interior to class ObjectClass and flagged private. The reason this class is used + * and not the "real" class AttributeType is because this class supports the notion of + * a "source" objectClass, meaning that it keeps track of which objectClass originally + * specified it. This class is therefore used by the class ObjectClass to determine + * inheritance. + * + * @package lib + */ + class ObjectClassAttribute + { + /** This Attribute's name */ + var $name; + /** This Attribute's root */ + var $source; + + /** + * Creates a new ObjectClassAttribute with specified name and source objectClass. + * @param string $name the name of the new attribute. + * @param string $source the name of the ObjectClass which + * specifies this attribute. + */ + function ObjectClassAttribute ($name, $source) + { + $this->name=$name; + $this->source=$source; + } + + /** Gets this attribute's name */ + function getName () + { + return $this->name; + } + + /** Gets the name of the ObjectClass which originally specified this attribute. */ + function getSource () + { + return $this->source; + } + } + + +/** + * Represents an LDAP AttributeType + * + * @package lib + */ +class AttributeType extends SchemaItem +{ + /** The name of this attributeType */ + var $name; + /** string: the description */ + var $is_obsolete; + /** The attribute from which this attribute inherits (if any) */ + var $sup_attribute; + /** The equality rule used */ + var $equality; + /** The ordering of the attributeType */ + var $ordering; + /** Boolean: supports substring matching? */ + var $sub_str; + /** The full syntax string, ie 1.2.3.4{16} */ + var $syntax; + /** boolean: is single valued only? */ + var $is_single_value; + /** boolean: is collective? */ + var $is_collective; + /** boolean: can use modify? */ + var $is_no_user_modification; + /** The usage string set by the LDAP schema */ + var $usage; + /** An array of alias attribute names, strings */ + var $aliases; + /** The max number of characters this attribute can be */ + var $max_length; + /** A string description of the syntax type (taken from the LDAPSyntaxes) */ + var $type; + /** An array of objectClasses which use this attributeType (must be set by caller) */ + var $used_in_object_classes; + /** A list of object class names that require this attribute type. */ + var $required_by_object_classes = array(); + + /** + * Initialize the class' member variables + */ + function initVars() + { + parent::initVars(); + $this->oid = null; + $this->name = null; + $this->description = null; + $this->is_obsolete = false; + $this->sup_attribute = null; + $this->equality = null; + $this->ordering = null; + $this->sub_str = null; + $this->syntax_oid = null; + $this->syntax = null; + $this->max_length = null; + $this->is_single_value= null; + $this->is_collective = false; + $this->is_no_user_modification = false; + $this->usage = null; + $this->aliases = array(); + $this->type = null; + $this->used_in_object_classes = array(); + $this->required_by_object_classes = array(); + } + + /** + * Creates a new AttributeType objcet from a raw LDAP AttributeType string. + */ + function AttributeType( $raw_ldap_attr_string ) + { + $this->initVars(); + $attr = $raw_ldap_attr_string; + $strings = preg_split ("/[\s,]+/", $attr, -1,PREG_SPLIT_DELIM_CAPTURE); + for($i=0; $iname)==0) + $this->name = $strings[$i]; + else + $this->name .= " " . $strings[$i]; + }while(!preg_match("/\'$/s", $strings[$i])); + // this attribute has no aliases + $this->aliases = array(); + } else { + $i++; + do { + $i++; + if(strlen($this->name) == 0) + $this->name = $strings[$i]; + else + $this->name .= " " . $strings[$i]; + } while(!preg_match("/\'$/s", $strings[$i])); + // add alias names for this attribute + while($strings[++$i]!=")") { + $alias = $strings[$i]; + $alias = preg_replace("/^\'/", "", $alias ); + $alias = preg_replace("/\'$/", "", $alias ); + $this->aliases[] = $alias; + } + } + break; + case 'DESC': + do { + $i++; + if(strlen($this->description)==0) + $this->description=$this->description . $strings[$i]; + else + $this->description=$this->description . " " . $strings[$i]; + }while(!preg_match("/\'$/s", $strings[$i])); + break; + case 'OBSOLETE': + $this->is_obsolete = TRUE; + break; + case 'SUP': + $i++; + $this->sup_attribute = $strings[$i]; + break; + case 'EQUALITY': + $i++; + $this->equality = $strings[$i]; + break; + case 'ORDERING': + $i++; + $this->ordering = $strings[$i]; + break; + case 'SUBSTR': + $i++; + $this->sub_str = $strings[$i]; + break; + case 'SYNTAX': + $i++; + $this->syntax = $strings[$i]; + $this->syntax_oid = preg_replace( "/{\d+}$/", "", $this->syntax ); + // does this SYNTAX string specify a max length (ie, 1.2.3.4{16}) + if( preg_match( "/{(\d+)}$/", $this->syntax, $this->max_length ) ) + $this->max_length = $this->max_length[1]; + else + $this->max_length = null; + if($i < count($strings) - 1 && $strings[$i+1]=="{") { + do { + $i++; + $this->name .= " " . $strings[$i]; + } while($strings[$i]!="}"); + } + break; + case 'SINGLE-VALUE': + $this->is_single_value = TRUE; + break; + case 'COLLECTIVE': + $this->is_collective = TRUE; + break; + case 'NO-USER-MODIFICATION': + $this->is_no_user_modification = TRUE; + break; + case 'USAGE': + $i++; + $this->usage = $strings[$i]; + break; + default: + if(preg_match ("/[\d\.]+/i",$strings[$i]) && $i == 1) + $this->oid = $strings[$i]; + } + } + + $this->name = preg_replace("/^\'/", "", $this->name); + $this->name = preg_replace("/\'$/", "", $this->name); + $this->description = preg_replace("/^\'/", "", $this->description); + $this->description = preg_replace("/\'$/", "", $this->description); + $this->syntax = preg_replace("/^\'/", "", $this->syntax ); + $this->syntax = preg_replace("/\'$/", "", $this->syntax ); + $this->syntax_oid = preg_replace("/^\'/", "", $this->syntax_oid ); + $this->syntax_oid = preg_replace("/\'$/", "", $this->syntax_oid ); + $this->sup_attribute = preg_replace("/^\'/", "", $this->sup_attribute ); + $this->sup_attribute = preg_replace("/\'$/", "", $this->sup_attribute ); + } + + /** + * Gets this attribute's name + * @return string + */ + function getName() + { + return $this->name; + } + + /** + * Gets whether this attribute has been flagged as obsolete by the LDAP server + * @return bool + */ + function getIsObsolete() + { + return $this->is_obsolete; + } + + /** + * Gets this attribute's usage string as defined by the LDAP server + * @return string + */ + function getUsage() + { + return $this->usage; + } + + /** + * Gets this attribute's parent attribute (if any). If this attribute does not + * inherit from another attribute, null is returned. + * @return string + */ + function getSupAttribute() + { + return $this->sup_attribute; + } + + /** + * Gets this attribute's equality string + * @return string + */ + function getEquality() + { + return $this->equality; + } + + /** + * Gets this attribute's ordering specification. + * @return string + */ + function getOrdering() + { + return $this->ordering; + } + + /** + * Gets this attribute's substring matching specification + * @return string + */ + function getSubstr() + { + return $this->sub_str; + } + + /** + * Gets the names of attributes that are an alias for this attribute (if any). + * @return array An array of names of attributes which alias this attribute or + * an empty array if no attribute aliases this object. + */ + function getAliases() + { + return $this->aliases; + } + + /** + * Returns whether the specified attribute is an alias for this one (based on this attribute's alias list). + * @param string $attr_name The name of the attribute to check. + * @return bool True if the specified attribute is an alias for this one, or false otherwise. + */ + function isAliasFor( $attr_name ) + { + foreach( $this->aliases as $alias_attr_name ) + if( 0 == strcasecmp( $alias_attr_name, $attr_name ) ) + return true; + return false; + + } + + /** + * Gets this attribute's raw syntax string (ie: "1.2.3.4{16}"). + * @return string The raw syntax string + */ + function getSyntaxString() + { + return $this->syntax; + } + + /** + * Gets this attribute's syntax OID. Differs from getSyntaxString() in that this + * function only returns the actual OID with any length specification removed. + * Ie, if the syntax string is "1.2.3.4{16}", this function only retruns + * "1.2.3.4". + * @return string The syntax OID string. + */ + function getSyntaxOID() + { + return $this->syntax_oid; + } + + /** + * Gets this attribute's the maximum length. If no maximum is defined by the LDAP server, null is returned. + * @return int The maximum length (in characters) of this attribute or null if no maximum is specified. + */ + function getMaxLength() + { + return $this->max_length; + } + + /** + * Gets whether this attribute is single-valued. If this attribute only supports single values, true + * is returned. If this attribute supports multiple values, false is returned. + * @return bool Returns true if this attribute is single-valued or false otherwise. + */ + function getIsSingleValue() + { + return $this->is_single_value; + } + + /** + * Sets whether this attribute is single-valued. + * @param bool $is_single_value + */ + function setIsSingleValue( $is_single_value ) + { + $this->is_single_value = $is_single_value; + } + + /** + * Gets whether this attribute is collective. + * @return bool Returns true if this attribute is collective and false otherwise. + */ + function getIsCollective() + { + return $this->is_collective; + } + + /** + * Gets whether this attribute is not modifiable by users. + * @return bool Returns true if this attribute is not modifiable by users. + */ + function getIsNoUserModification() + { + return $this->is_no_user_modification; + } + + /** + * Gets this attribute's type + * @return string The attribute's type. + */ + function getType() + { + return $this->type; + } + + /** + * Removes an attribute name from this attribute's alias array. + * @param string $remove_alias_name The name of the attribute to remove. + * @return bool true on success or false on failure (ie, if the specified + * attribute name is not found in this attribute's list of aliases) + */ + function removeAlias( $remove_alias_name ) + { + foreach( $this->aliases as $i => $alias_name ) { + if( 0 == strcasecmp( $alias_name, $remove_alias_name ) ) { + unset( $this->aliases[ $i ] ); + $this->aliases = array_values( $this->aliases ); + return true; + } + } + return false; + } + + /** + * Adds an attribute name to the alias array. + * @param string $new_alias_name The name of a new attribute to add to this attribute's list of aliases. + */ + function addAlias( $new_alias_name ) + { + $this->aliases[] = $new_alias_name; + } + + /** + * Sets this attriute's name. + * @param string $new_name The new name to give this attribute. + */ + function setName( $new_name ) + { + $this->name = $new_name; + } + + /** + * Sets this attriute's SUP attribute (ie, the attribute from which this attribute inherits). + * @param string $new_sup_attr The name of the new parent (SUP) attribute + */ + function setSupAttribute( $new_sup_attr ) + { + $this->sup_attribute = $new_sup_attr; + } + + /** + * Sets this attribute's list of aliases. + * @param array $new_aliases The array of alias names (strings) + */ + function setAliases( $new_aliases ) + { + $this->aliases = $new_aliases; + } + + /** + * Sets this attribute's type. + * @param string $new_type The new type. + */ + function setType( $new_type ) + { + $this->type = $new_type; + } + + /** + * Adds an objectClass name to this attribute's list of "used in" objectClasses, + * that is the list of objectClasses which provide this attribute. + * @param string $object_class_name The name of the objectClass to add. + */ + function addUsedInObjectClass( $object_class_name ) + { + foreach( $this->used_in_object_classes as $used_in_object_class ) + if( 0 == strcasecmp( $used_in_object_class, $object_class_name ) ) + return false; + $this->used_in_object_classes[] = $object_class_name; + return true; + } + + /** + * Gets the list of "used in" objectClasses, that is the list of objectClasses + * which provide this attribute. + * @return array An array of names of objectclasses (strings) which provide this attribute + */ + function getUsedInObjectClasses() + { + return $this->used_in_object_classes; + } + + /** + * Adds an objectClass name to this attribute's list of "required by" objectClasses, + * that is the list of objectClasses which must have this attribute. + * @param string $object_class_name The name of the objectClass to add. + */ + function addRequiredByObjectClass( $object_class_name ) + { + foreach( $this->required_by_object_classes as $required_by_object_class ) + if( 0 == strcasecmp( $required_by_object_class, $object_class_name ) ) + return false; + $this->required_by_object_classes[] = $object_class_name; + return true; + } + + /** + * Gets the list of "required by" objectClasses, that is the list of objectClasses + * which provide must have attribute. + * @return array An array of names of objectclasses (strings) which provide this attribute + */ + function getRequiredByObjectClasses() + { + return $this->required_by_object_classes; + } +} + +/** + * Represents an LDAP Syntax + * + * @package lib + */ +class Syntax extends SchemaItem +{ + /** Initializes the class' member variables */ + function initVars() + { + parent::initVars(); + $this->oid = null; + $this->description = null; + } + + /** + * Creates a new Syntax object from a raw LDAP syntax string. + */ + function Syntax( $raw_ldap_syntax_string ) + { + $this->initVars(); + $class = $raw_ldap_syntax_string; + $strings = preg_split ("/[\s,]+/", $class, -1,PREG_SPLIT_DELIM_CAPTURE); + for($i=0; $idescription)==0) + $this->description=$this->description . $strings[$i]; + else + $this->description=$this->description . " " . $strings[$i]; + }while(!preg_match("/\'$/s", $strings[$i])); + break; + default: + if(preg_match ("/[\d\.]+/i",$strings[$i]) && $i == 1) + $this->oid = $strings[$i]; + } + } + $this->description = preg_replace("/^\'/", "", $this->description); + $this->description = preg_replace("/\'$/", "", $this->description); + } +} + +/** + * Represents an LDAP MatchingRule + * + * @package lib + */ +class MatchingRule extends SchemaItem +{ + /** This rule's name */ + var $name; + /** This rule's syntax OID */ + var $syntax; + /** Boolean value indicating whether this MatchingRule is obsolete */ + var $is_obsolete; + /** An array of attribute names who use this MatchingRule */ + var $used_by_attrs; + + /** Initialize the class' member variables */ + function initVars() + { + parent::initVars(); + $this->oid = null; + $this->name = null; + $this->description = null; + $this->is_obsolete = false; + $this->syntax = null; + $this->used_by_attrs = array(); + } + + /** + * Creates a new MatchingRule object from a raw LDAP MatchingRule string. + */ + function MatchingRule( $raw_ldap_matching_rule_string ) + { + $this->initVars(); + $strings = preg_split ("/[\s,]+/", $raw_ldap_matching_rule_string, -1,PREG_SPLIT_DELIM_CAPTURE); + for($i=0; $iname)==0) + $this->name = $strings[$i]; + else + $this->name .= " " . $strings[$i]; + }while(!preg_match("/\'$/s", $strings[$i])); + } else { + $i++; + do { + $i++; + if(strlen($this->name) == 0) + $this->name = $strings[$i]; + else + $this->name .= " " . $strings[$i]; + } while(!preg_match("/\'$/s", $strings[$i])); + do { + $i++; + }while(! preg_match('/\)+\)?/',$strings[$i])); + } + $this->name = preg_replace("/^\'/", "", $this->name); + $this->name = preg_replace("/\'$/", "", $this->name); + break; + case 'DESC': + do { + $i++; + if(strlen($this->description)==0) + $this->description=$this->description . $strings[$i]; + else + $this->description=$this->description . " " . $strings[$i]; + }while(!preg_match("/\'$/s", $strings[$i])); + break; + case 'OBSOLETE': + $this->is_obsolete = TRUE; + break; + case 'SYNTAX': + $this->syntax = $strings[++$i]; + break; + default: + if(preg_match ("/[\d\.]+/i",$strings[$i]) && $i == 1) + $this->oid = $strings[$i]; + } + } + $this->description = preg_replace("/^\'/", "", $this->description); + $this->description = preg_replace("/\'$/", "", $this->description); + } + + /** + * Sets the list of used_by_attrs to the array specified by $attrs; + * @param array $attrs The array of attribute names (strings) which use this MatchingRule + */ + function setUsedByAttrs( $attrs ) + { + $this->used_by_attrs = $attrs; + } + + /** + * Adds an attribute name to the list of attributes who use this MatchingRule + * @return true if the attribute was added and false otherwise (already in the list) + */ + function addUsedByAttr( $new_attr_name ) + { + foreach( $this->used_by_attrs as $attr_name ) + if( 0 == strcasecmp( $attr_name, $new_attr_name ) ) + return false; + $this->used_by_attrs[] = $new_attr_name; + return true; + } + + /** + * Gets this MatchingRule's name. + * @return string The name. + */ + function getName() + { + return $this->name; + } + + /** + * Gets whether this MatchingRule is flagged as obsolete by the LDAP server. + * @return bool True if this MatchingRule is obsolete and false otherwise. + */ + function getIsObsolete() + { + return $this->is_obsolete; + } + + /** + * Gets an array of attribute names (strings) which use this MatchingRule + * @return array The array of attribute names (strings). + */ + function getUsedByAttrs() + { + return $this->used_by_attrs; + } +} + +/** + * Represents an LDAP schema matchingRuleUse entry + * + * @package lib + */ +class MatchingRuleUse extends SchemaItem +{ + /** The name of the MathingRule this applies to */ + var $name; + /** An array of attributeType names who make use of the mathingRule + * identified by $this->oid and $this->name */ + var $used_by_attrs; + + /** Initialize the class' member variables */ + function initVars() + { + parent::initVars(); + $this->oid = null; + $this->name = null; + $this->used_by_attrs = array(); + } + + function MatchingRuleUse( $raw_matching_rule_use_string ) + { + $this->initVars(); + $strings = preg_split ("/[\s,]+/", $raw_matching_rule_use_string, -1,PREG_SPLIT_DELIM_CAPTURE); + for($i=0; $iname ) || strlen( $this->name ) ==0 ) + $this->name = $strings[$i]; + else + $this->name .= " " . $strings[$i]; + }while(!preg_match("/\'$/s", $strings[$i])); + } else { + $i++; + do { + $i++; + if(strlen($this->name) == 0) + $this->name = $strings[$i]; + else + $this->name .= " " . $strings[$i]; + } while(!preg_match("/\'$/s", $strings[$i])); + do { + $i++; + }while(! preg_match('/\)+\)?/',$strings[$i])); + } + $this->name = preg_replace("/^\'/", "", $this->name); + $this->name = preg_replace("/\'$/", "", $this->name); + break; + case 'APPLIES': + if($strings[$i+1]!="(") { + // has a single attribute name + $i++; + $this->used_by_attrs = array( $strings[$i] ); + //echo "Adding single: " . $strings[$i] . "
    "; + } else { + // has multiple attribute names + $i++; + while($strings[$i]!=")") { + $i++; + $new_attr = $strings[$i]; + $new_attr = preg_replace("/^\'/", "", $new_attr ); + $new_attr = preg_replace("/\'$/", "", $new_attr ); + $this->used_by_attrs[] = $new_attr; + //echo "Adding $new_attr
    "; + $i++; + } + } + break; + default: + if(preg_match ("/[\d\.]+/i",$strings[$i]) && $i == 1) + $this->oid = $strings[$i]; + } + } + sort( $this->used_by_attrs ); + } + + /** + * Gets this MatchingRuleUse's name + * @return string The name + */ + function getName() + { + return $this->name; + } + + /** + * Gets an array of attribute names (strings) which use this MatchingRuleUse object. + * @return array The array of attribute names (strings). + */ + function getUsedByAttrs() + { + return $this->used_by_attrs; + } +} + +/** + * Helper for _get_raw_schema() which fetches the DN of the schema object + * in an LDAP server based on a DN. Entries should set the subSchemaSubEntry + * attribute pointing to the DN of the server schema. You can specify the + * DN whose subSchemaSubEntry you wish to retrieve of specify an empty string + * to fetch the subScehamSubEntry from the Root DSE. + * + * @param string $dn The DN (may be null) which houses the subschemaSubEntry attribute which + * this function can use to determine the schema entry's DN. + * @param bool $debug Switch to true to see some nice and copious output. :) + * + * @return string The DN of the entry which houses this LDAP server's schema. + */ +function _get_schema_dn($dn, $debug=false ) +{ + if( $debug ) echo "

    ";
    +	$ds = $_SESSION['ldap']->server();
    +
    +	$search = @ldap_read( $ds, $dn, 'objectClass=*', array( 'subschemaSubentry' ) );
    +	if( $debug ) { echo "Search result (ldap_read): "; var_dump( $search ); echo "\n"; }
    +	if( ! $search ) {
    +		if( $debug ) echo "_get_schema_dn() returning false. (search val is false)\n";
    +		return false;
    +	}
    +
    +	if( @ldap_count_entries( $ds, $search ) == 0 ) {
    +		if( $debug ) echo "_get_schema_dn() returning false (ldap_count_entries() == 0).\n";
    +        return false;
    +	}
    +
    +	$entries = @ldap_get_entries( $ds, $search );
    +	if( $debug ) { echo "Entries (ldap_get_entries): "; var_dump( $entries ); echo "\n"; }
    +	if( ! $entries || ! is_array( $entries ) ) {
    +		if( $debug ) echo "_get_schema_dn() returning false (Bad entries val, false or not array).\n";
    +		return false;
    +	}
    +
    +	$entry = isset( $entries[0] ) ? $entries[0] : false;
    +	if( ! $entry ) {
    +		if( $debug ) echo "_get_schema_dn() returning false (entry val is false)\n";
    +		return false;
    +	}
    +
    +	$sub_schema_sub_entry = isset( $entry[0] ) ? $entry[0] : false;
    +	if( ! $sub_schema_sub_entry ) {
    +		if( $debug ) echo "_get_schema_dn() returning false (sub_schema_sub_entry val is false)\n";
    +		return false;
    +	}
    +
    +	$schema_dn = isset( $entry[ $sub_schema_sub_entry ][0] ) ?
    +					$entry[ $sub_schema_sub_entry ][0] :
    +					false;
    +
    +	if( $debug ) echo "_get_schema_dn() returning: \"" . $schema_dn . "\"\n";
    +	return $schema_dn;
    +}
    +
    +/**
    + * Fetches the raw schema array for the subschemaSubentry of the server. Note,
    + * this function has grown many hairs to accomodate more LDAP servers. It is
    + * needfully complicated as it now supports many popular LDAP servers that
    + * don't necessarily expose their schema "the right way".
    + *
    + * @param $schema_to_fetch - A string indicating which type of schema to 
    + *		fetch. Five valid values: 'objectclasses', 'attributetypes', 
    + *		'ldapsyntaxes', 'matchingruleuse', or 'matchingrules'. 
    + *		Case insensitive.
    + * @param $dn (optional) This paremeter is the DN of the entry whose schema you
    + * 		would like to fetch. Entries have the option of specifying
    + * 		their own subschemaSubentry that points to the DN of the system
    + * 		schema entry which applies to this attribute. If unspecified,
    + *		this will try to retrieve the schema from the RootDSE subschemaSubentry.
    + *		Failing that, we use some commonly known schema DNs. Default 
    + *		value is the Root DSE DN (zero-length string)
    + * @return an array of strings of this form:
    + *    Array (
    + *      [0] => "( 1.3.6.1.4.1.7165.1.2.2.4 NAME 'gidPool' DESC 'Pool ...
    + *      [1] => "( 1.3.6.1.4.1.7165.2.2.3 NAME 'sambaAccount' DESC 'Sa ...
    + *      etc.
    + */
    +function _get_raw_schema($schema_to_fetch, $dn='' )
    +{
    +
    +	// Swith to true to enable verbose output of schema fetching progress
    +	$debug = false;
    +
    +	$ds = $_SESSION['ldap']->server();
    +
    +	// error checking
    +	$schema_to_fetch = strtolower( $schema_to_fetch );
    +	$valid_schema_to_fetch = array( 'objectclasses', 'attributetypes', 'ldapsyntaxes', 
    +					'matchingrules', 'matchingruleuse'  );
    +	if( ! in_array( $schema_to_fetch, $valid_schema_to_fetch ) )
    +        // This error message is not localized as only developers should ever see it
    +		echo( "Bad parameter provided to function to _get_raw_schema(). '" 
    +				. htmlspecialchars( $schema_to_fetch ) . "' is 
    +				not valid for the schema_to_fetch parameter." );
    +	
    +	// Try to get the schema DN from the specified entry. 
    +	$schema_dn = _get_schema_dn($dn, $debug );
    +
    +	// Do we need to try again with the Root DSE?
    +	if( ! $schema_dn )
    +		$schema_dn = _get_schema_dn('', $debug );
    +
    +	// Store the eventual schema retrieval in $schema_search
    +	$schema_search = null;
    +
    +	if( $schema_dn ) {
    +		if( $debug ) { echo "Found the schema DN: "; var_dump( $schema_dn ); echo "\n"; }
    +		$schema_search = @ldap_read( $ds, $schema_dn, '(objectClass=*)',
    +							array( $schema_to_fetch ), 0, 0, 0, 
    +							LDAP_DEREF_ALWAYS );
    +
    +        // Were we not able to fetch the schema from the $schema_dn?
    +        $schema_entries = @ldap_get_entries( $ds, $schema_search );
    +		if( $schema_search === false || 
    +            0 == @ldap_count_entries( $ds, $schema_search ) ||
    +            ! isset( $schema_entries[0][$schema_to_fetch] ) ) {
    +                if( $debug ) echo "Did not find the schema with (objectClass=*). Attempting with (objetClass=subschema)\n";
    +
    +                // Try again with a different filter (some servers require (objectClass=subschema) like M-Vault)
    +                $schema_search = @ldap_read( $ds, $schema_dn, '(objectClass=subschema)',
    +                        array( $schema_to_fetch ), 0, 0, 0, 
    +                        LDAP_DEREF_ALWAYS );
    +                $schema_entries = @ldap_get_entries( $ds, $schema_search );
    +
    +                // Still didn't get it?
    +                if( $schema_search === false || 
    +                        0 == @ldap_count_entries( $ds, $schema_search ) ||
    +                        ! isset( $schema_entries[0][$schema_to_fetch] ) ) {
    +                    if( $debug ) echo "Did not find the schema at DN: $schema_dn (with objectClass=* nor objectClass=subschema).\n";
    +                    unset( $schema_entries );
    +                    unset( $schema_dn );
    +                    $schema_search = null;
    +                } else {
    +                    if( $debug ) echo "Found the schema at DN: $schema_dn (with objectClass=subschema).\n";
    +                }
    +		} else {
    +			if( $debug ) echo "Found the schema at DN: $schema_dn (with objectClass=*).\n";
    +		}
    +	} 
    +
    +	// Second chance: If the DN or Root DSE didn't give us the subschemaSubentry, ie $schema_search
    +	// is still null, use some common subSchemaSubentry DNs as a work-around.
    +
    +	if( $debug && $schema_search == null )
    +		echo "Attempting work-arounds for 'broken' LDAP servers...\n";
    +
    +	// cn=subschema for OpenLDAP
    +	if( $schema_search == null ) {
    +		if( $debug ) echo "Attempting with cn=subschema (OpenLDAP)...\n";
    +		// try with the standard DN
    +		$schema_search = @ldap_read($ds, 'cn=subschema', '(objectClass=*)',
    +				array( $schema_to_fetch ), 0, 0, 0, LDAP_DEREF_ALWAYS );
    +	}
    +
    +	// cn=schema for Novell eDirectory
    +	if( $schema_search == null ) {
    +		if( $debug ) echo "Attempting with cn=schema (Novell)...\n";
    +		// try again, with a different schema DN
    +		$schema_search = @ldap_read($ds, 'cn=schema', '(objectClass=*)',
    +				array( $schema_to_fetch ), 0, 0, 0, LDAP_DEREF_ALWAYS );
    +	}
    +
    +	// cn=schema,cn=configuration,dc=example,dc=com for ActiveDirectory
    +	if( $schema_search == null ) {
    +		// try again, with a different schema DN
    +		global $servers;
    +		$base_dn = isset( $servers[ 'base' ] ) ?
    +				$servers[ 'base' ] :
    +				null;
    +		if( $debug ) echo "Attempting with cn=schema,cn=configuration,$base_dn (ActiveDirectory)...\n";
    +		if( $base_dn != null )
    +			$schema_search = @ldap_read($ds, 'cn=schema,cn=configuration,' . $base_dn, '(objectClass=*)',
    +				array( $schema_to_fetch ), 0, 0, 0, LDAP_DEREF_ALWAYS );
    +	}
    +
    +	// cn=Schema,ou=Admin,dc=example,dc=com for SiteServer
    +	if( $schema_search == null ) {
    +		// try again, with a different schema DN
    +		global $servers;
    +		$base_dn = isset( $servers[ 'base' ] ) ?
    +				$servers[ 'base' ] :
    +				null;
    +		if( $debug ) echo "Attempting with cn=Schema,ou=Admin,$base_dn (ActiveDirectory)...\n";
    +		if( $base_dn != null )
    +			$schema_search = @ldap_read($ds, 'cn=Schema,ou=Admin,' . $base_dn, '(objectClass=*)',
    +				array( $schema_to_fetch ), 0, 0, 0, LDAP_DEREF_ALWAYS );
    +	}
    +
    +	// Attempt to pull schema from Root DSE with scope "base"
    +	if( $schema_search == null ) {
    +		// try again, with a different schema DN
    +		if( $debug ) echo "Attempting to pull schema from Root DSE with scope \"base\"...\n";
    +		if( $base_dn != null )
    +			$schema_search = @ldap_read($ds, '', '(objectClass=*)',
    +				array( $schema_to_fetch ), 0, 0, 0, LDAP_DEREF_ALWAYS );
    +         $schema_entries = @ldap_get_entries( $ds, $schema_search );
    +         if( ! isset( $schema_entries[0][$schema_to_fetch] ) )
    +            $schema_search = null;
    +    }
    +    
    +	// Attempt to pull schema from Root DSE with scope "one" (work-around for Isode M-Vault X.500/LDAP)
    +	if( $schema_search == null ) {
    +		// try again, with a different schema DN
    +		if( $debug ) echo "Attempting to pull schema from Root DSE with scope \"one\"...\n";
    +		if( $base_dn != null )
    +			$schema_search = @ldap_list($ds, '', '(objectClass=*)',
    +				array( $schema_to_fetch ), 0, 0, 0, LDAP_DEREF_ALWAYS );
    +         $schema_entries = @ldap_get_entries( $ds, $schema_search );
    +         if( ! isset( $schema_entries[0][$schema_to_fetch] ) )
    +            $schema_search = null;
    +	}
    +
    +	// Shall we just give up?
    +	if( $schema_search == null ) {
    +        if( $debug ) echo "Returning false since schema_search came back null
    \n"; + set_schema_cache_unavailable(); + return false; + } + + // Did we get something unrecognizable? + if( 'resource' != gettype( $schema_search ) ) { + if( $debug ) echo "Returning false since schema_esarch is not of type 'resource'. Dumping schema search:\n"; + if( $debug ) var_dump( $schema_search ); + if( $debug ) echo ""; + set_schema_cache_unavailable(); + return false; + } + + $schema = @ldap_get_entries( $ds, $schema_search ); + if( $schema == false ) { + if( $debug ) echo "Returning false since ldap_get_entries() returned false.\n"; + set_schema_cache_unavailable(); + return false; + } + + if( ! isset( $schema[0][$schema_to_fetch] ) ) { + if( $debug ) echo "Returning false since '$schema_to_fetch' isn't in the schema array. Showing schema array:\n"; + if( $debug ) var_dump( $schema ); + if( $debug ) echo ""; + set_schema_cache_unavailable(); + return false; + } + + // Make a nice array of this form: + // Array ( + // [0] => "( 1.3.6.1.4.1.7165.1.2.2.4 NAME 'gidPool' DESC 'Pool ... + // [1] => "( 1.3.6.1.4.1.7165.2.2.3 NAME 'sambaAccount' DESC 'Sa ... + // etc. + $schema = $schema[0][$schema_to_fetch]; + unset( $schema['count'] ); + + if( $debug ) echo ""; + return $schema; +} + +/** + * Gets an associative array of ObjectClass objects for the specified + * server. Each array entry's key is the name of the objectClass + * in lower-case and the value is an ObjectClass object. + * + * @param string $dn (optional) It is easier to fetch schema if a DN is provided + * which defines the subschemaSubEntry attribute (all entries should). + * + * @return array An array of ObjectClass objects. + * + * @see ObjectClass + * @see get_schema_objectclass + */ +function get_schema_objectclasses($dn=null, $use_cache=true ) +{ + if( $use_cache && cached_schema_available('objectclasses' ) ) { + // return get_cached_schema('objectclasses' ); + } + + $raw_oclasses = _get_raw_schema('objectclasses', $dn ); + if( ! $raw_oclasses ) + return false; + + // build the array of objectClasses + $object_classes = array(); + foreach( $raw_oclasses as $class_string ) { + if( $class_string == null || 0 == strlen( $class_string ) ) + continue; + $object_class = new ObjectClass( $class_string ); + $name = $object_class->getName(); + $key = strtolower( $name ); + $object_classes[ $key ] = $object_class; + } + + ksort( $object_classes ); + + // cache the schema to prevent multiple schema fetches from LDAP server + set_cached_schema('objectclasses', $object_classes ); + return( $object_classes ); +} + +/** + * Gets a single ObjectClass object specified by name. + * + * @param string $oclass_name The name of the objectClass to fetch. + * @param string $dn (optional) It is easier to fetch schema if a DN is provided + * which defines the subschemaSubEntry attribute (all entries should). + * + * @return ObjectClass The specified ObjectClass object or false on error. + * + * @see ObjectClass + * @see get_schema_objectclasses + */ +function get_schema_objectclass($oclass_name, $dn=null, $use_cache=true ) +{ + $oclass_name = strtolower( $oclass_name ); + $oclasses = get_schema_objectclasses($dn, $use_cache ); + if( ! $oclasses ) + return false; + if( isset( $oclasses[ $oclass_name ] ) ) + return $oclasses[ $oclass_name ]; + else + return false; +} + +/** + * Gets a single AttributeType object specified by name. + * + * @param string $oclass_name The name of the AttributeType to fetch. + * @param string $dn (optional) It is easier to fetch schema if a DN is provided + * which defines the subschemaSubEntry attribute (all entries should). + * + * @return AttributeType The specified AttributeType object or false on error. + * + * @see AttributeType + * @see get_schema_attributes + */ +function get_schema_attribute($attr_name, $dn=null, $use_cache=true ) +{ + $attr_name = real_attr_name( $attr_name ); + $schema_attrs = get_schema_attributes($dn, $use_cache ); + $attr_name = strtolower( $attr_name ); + $schema_attr = isset( $schema_attrs[ $attr_name ] ) ? + $schema_attrs[ $attr_name ] : + false; + return $schema_attr; +} + +/** + * Gets an associative array of AttributeType objects for the specified + * server. Each array entry's key is the name of the attributeType + * in lower-case and the value is an AttributeType object. + * + * @param string $dn (optional) It is easier to fetch schema if a DN is provided + * which defines the subschemaSubEntry attribute (all entries should). + * + * @return array An array of AttributeType objects. + */ +function get_schema_attributes($dn = null, $use_cache=true ) +{ + if( $use_cache && cached_schema_available('attributetypes' ) ) { + return get_cached_schema('attributetypes' ); + } + + $raw_attrs = _get_raw_schema('attributeTypes', $dn ); + if( ! $raw_attrs ) + return false; + + // build the array of attribueTypes + $syntaxes = get_schema_syntaxes($dn ); + $attrs = array(); + /** + * bug 856832: create two arrays - one indexed by name (the standard + * $attrs array above) and one indexed by oid (the new $attrs_oid array + * below). This will help for directory servers, like IBM's, that use OIDs + * in their attribute definitions of SUP, etc + */ + $attrs_oid = array(); + foreach( $raw_attrs as $attr_string ) { + if( $attr_string == null || 0 == strlen( $attr_string ) ) + continue; + $attr = new AttributeType( $attr_string ); + if( isset( $syntaxes[ $attr->getSyntaxOID() ] ) ) { + $syntax = $syntaxes[ $attr->getSyntaxOID() ]; + $attr->setType( $syntax->getDescription() ); + } + $name = $attr->getName(); + $key = strtolower( $name ); + $attrs[ $key ] = $attr; + + /** + * bug 856832: create an entry in the $attrs_oid array too. This + * will be a ref to the $attrs entry for maintenance and performance + * reasons + */ + $oid = $attr->getOID(); + $attrs_oid[ $oid ] = &$attrs[ $key ]; + } + + add_aliases_to_attrs( $attrs ); + /** + * bug 856832: pass the $attrs_oid array as a second (new) parameter + * to add_sup_to_attrs. This will allow lookups by either name or oid. + */ + add_sup_to_attrs( $attrs, $attrs_oid ); + + ksort( $attrs ); + + // Add the used in and required_by values. + $schema_object_classes = get_schema_objectclasses(); + if ( ! is_array ( $schema_object_classes ) ) + return array (); + + foreach( $schema_object_classes as $object_class ) { + $must_attrs = $object_class->getMustAttrNames($schema_object_classes); + $may_attrs = $object_class->getMayAttrNames($schema_object_classes); + $oclass_attrs = array_unique( array_merge( $must_attrs, $may_attrs ) ); + + // Add Used In. + foreach( $oclass_attrs as $attr_name ) { + if( isset( $attrs[ strtolower( $attr_name ) ] ) ) { + $attrs[ strtolower( $attr_name ) ]->addUsedInObjectClass( + $object_class->getName() ); + } else { + //echo "Warning, attr not set: $attr_name
    "; + } + } + + // Add Required By. + foreach( $must_attrs as $attr_name ) { + if( isset( $attrs[ strtolower( $attr_name ) ] ) ) { + $attrs[ strtolower( $attr_name ) ]->addRequiredByObjectClass( + $object_class->getName() ); + } else { + //echo "Warning, attr not set: $attr_name
    "; + } + } + + } + + // cache the schema to prevent multiple schema fetches from LDAP server + set_cached_schema('attributetypes', $attrs ); + return( $attrs ); +} + +/** + * For each attribute that has multiple names, this function adds unique entries to + * the attrs array for those names. Ie, attributeType has name 'gn' and 'givenName'. + * This function will create a unique entry for 'gn' and 'givenName'. + */ +function add_aliases_to_attrs( &$attrs ) +{ + $toaddAttrs = array(); + // go back and add data from aliased attributeTypes + foreach( $attrs as $name => $attr ) { + $aliases = $attr->getAliases(); + if( is_array( $aliases ) && count( $aliases ) > 0 ) { + // foreach of the attribute's aliases, create a new entry in the attrs array + // with its name set to the alias name, and all other data copied + foreach( $aliases as $alias_attr_name ) { + $new_attr = clone $attr; + $new_attr->setName( $alias_attr_name ); + $new_attr->addAlias( $attr->getName() ); + $new_attr->removeAlias( $alias_attr_name ); + $new_attr_key = strtolower( $alias_attr_name ); + $toaddAttrs[ $new_attr_key ] = $new_attr; + } + } + } + $attrs = array_merge($attrs, $toaddAttrs); +} + +/** + * Adds inherited values to each attributeType specified by the SUP directive. + * Supports infinite levels of inheritance. + * Bug 856832: require a second paramter that has all attributes indexed by OID + */ +function add_sup_to_attrs( &$attrs, &$attrs_oid ) +{ + $debug = false; + if( $debug ) echo "
    ";
    +
    +	if( $debug ) print_r( $attrs );
    +	
    +	// go back and add any inherited descriptions from parent attributes (ie, cn inherits name)
    +	foreach( $attrs as $key => $attr ) {
    +		if( $debug ) echo "Analyzing inheritance for attribute '" . $attr->getName() . "'\n";
    +		$sup_attr_name = $attr->getSupAttribute();
    +		$sup_attr = null;
    +
    +		// Does this attribute have any inheritance happening here?
    +		if( null != trim( $sup_attr_name ) ) {
    +
    +			// This loop really should traverse infinite levels of inheritance (SUP) for attributeTypes,
    +			// but just in case we get carried away, stop at 100. This shouldn't happen, but for
    +			// some weird reason, we have had someone report that it has happened. Oh well.
    +			$i = 0;
    +			while( $i++ < 100 /** 100 == INFINITY ;) */ ) {
    +				if( $debug ) echo "Top of loop.\n";
    +
    +				/**
    +				 * Bug 856832: check if sup is indexed by OID. If it is,
    +				 * replace the OID with the appropriate name. Then reset
    +				 * $sup_attr_name to the name instead of the OID. This will
    +				 * make all the remaining code in this function work as
    +				 * expected.
    +				 */
    +				if( isset( $attrs_oid[$sup_attr_name] ) ) {
    +					$attr->setSupAttribute( $attrs_oid[$sup_attr_name]->getName() );
    +					$sup_attr_name = $attr->getSupAttribute();
    +				}
    +				
    +				if( ! isset( $attrs[ strtolower( $sup_attr_name ) ] ) ){ 
    +					echo( "Schema error: attributeType '" . $attr->getName() . "' inherits from 
    +								'" . $sup_attr_name . "', but attributeType '" . $sup_attr_name . "' does not
    +								exist." );
    +						return;
    +				}
    +
    +				if( $debug ) echo " sup_attr_name: $sup_attr_name\n";
    +				$sup_attr = $attrs[ strtolower( $sup_attr_name ) ];
    +				if( $debug ) echo " Sup attr: " . $sup_attr->getName() . "\n";
    +
    +				$sup_attr_name = $sup_attr->getSupAttribute();
    +				if( $debug ) echo " Does the sup attr itself have a sup attr?\n";
    +
    +				// Does this superior attributeType not have a superior attributeType?
    +				if( null == $sup_attr_name || strlen( trim( $sup_attr_name ) ) == 0 ) {
    +
    +					// Since this attribute's superior attribute does not have another superior
    +					// attribute, clone its properties for this attribute. Then, replace
    +					// those cloned values with those that can be explicitly set by the child
    +					// attribute attr). Save those few properties which the child can set here:
    +					if( $debug ) echo "  nope, this is the end of the inheritance chain after $i iterations.\n";
    +					$tmp_name = $attr->getName();
    +					$tmp_oid = $attr->getOID();
    +					$tmp_sup = $attr->getSupAttribute();
    +					$tmp_aliases = $attr->getAliases();
    +					$tmp_single_val = $attr->getIsSingleValue();
    +
    +
    +					if( $debug ) {
    +						echo "  populating values into attribute from sup attribute:\n";
    +						echo "Before: ";
    +						print_r( $attr );
    +					}
    +
    +					// clone the SUP attributeType and populate those values
    +					// that were set by the child attributeType
    +					$attr = $sup_attr;
    +					$attr->setOID( $tmp_oid );
    +					$attr->setName( $tmp_name );
    +					$attr->setSupAttribute( $tmp_sup);
    +					$attr->setAliases( $tmp_aliases );
    +
    +					if( $debug ) {
    +						echo "After (name, sup_attr, and aliases should not have changed!: ";
    +						print_r( $attr );
    +					}
    +					// only overwrite the SINGLE-VALUE property if the child explicitly sets it
    +					// (note: All LDAP attributes default to multi-value if not explicitly set SINGLE-VALUE)
    +					if( true == $tmp_single_val )
    +						$attr->setIsSingleValue( true );
    +
    +					// replace this attribute in the attrs array now that we have populated
    +					// new values therein
    +					$attrs[$key] = $attr;
    +
    +					// very important: break out after we are done with this attribute
    +					$sup_attr_name = null;
    +					$sup_attr = null;
    +					break;
    +
    +				} else {
    +
    +					// do nothing, move on down the chain of inheritance...
    +					if( $debug ) echo "  yup, march down the inheritance chain (iteration $i).\n";
    +					if( $debug ) { echo "  The sup attr is: "; var_dump( $sup_attr_name ); echo "\n"; }
    +
    +				}
    +			}
    +		}
    +	}
    +
    +	if( $debug ) echo "
    \n"; +} + +/** + * Returns an array of MatchingRule objects for the specified server. + * The key of each entry is the OID of the matching rule. + */ +function get_schema_matching_rules($dn=null, $use_cache=true ) +{ + if( $use_cache && cached_schema_available('matchingrules' ) ) { + return get_cached_schema('matchingrules' ); + } + + // build the array of MatchingRule objects + $raw_matching_rules = _get_raw_schema('matchingRules', $dn ); + if( ! $raw_matching_rules ) + return false; + $rules = array(); + foreach( $raw_matching_rules as $rule_string ) { + if( $rule_string == null || 0 == strlen( $rule_string ) ) + continue; + $rule = new MatchingRule( $rule_string ); + $key = strtolower( $rule->getName() ); + $rules[ $key ] = $rule; + } + + ksort( $rules ); + + // For each MatchingRuleUse entry, add the attributes who use it to the + // MatchingRule in the $rules array. + $raw_matching_rule_use = _get_raw_schema('matchingRuleUse' ); + if( $raw_matching_rule_use != false ) { + foreach( $raw_matching_rule_use as $rule_use_string ) { + if( $rule_use_string == null || 0 == strlen( $rule_use_string ) ) + continue; + $rule_use = new MatchingRuleUse( $rule_use_string ); + $key = strtolower( $rule_use->getName() ); + if( isset( $rules[ $key ] ) ) + $rules[ $key ]->setUsedByAttrs( $rule_use->getUsedByAttrs() ); + } + } else { + // No MatchingRuleUse entry in the subschema, so brute-forcing + // the reverse-map for the "$rule->getUsedByAttrs()" data. + $attrs = get_schema_attributes($dn ); + if( is_array( $attrs ) ) + foreach( $attrs as $attr ) { + $rule_key = strtolower( $attr->getEquality() ); + if( isset( $rules[ $rule_key ] ) ) + $rules[ $rule_key ]->addUsedByAttr( $attr->getName() ); + } + } + + // cache the schema to prevent multiple schema fetches from LDAP server + set_cached_schema('matchingrules', $rules ); + return $rules; +} + +/** + * Returns an array of Syntax objects that this LDAP server uses mapped to + * their descriptions. The key of each entry is the OID of the Syntax. + */ +function get_schema_syntaxes($dn=null, $use_cache=true ) +{ + if( $use_cache && cached_schema_available('ldapsyntaxes' ) ) { + return get_cached_schema('ldapsyntaxes' ); + } + + $raw_syntaxes = _get_raw_schema('ldapSyntaxes', $dn ); + if( ! $raw_syntaxes ) + return false; + + // build the array of attributes + $syntaxes = array(); + foreach( $raw_syntaxes as $syntax_string ) { + $syntax = new Syntax( $syntax_string ); + $key = strtolower( trim( $syntax->getOID() ) ); + if( ! $key ) continue; + $syntaxes[$key] = $syntax; + } + + ksort( $syntaxes ); + + // cache the schema to prevent multiple schema fetches from LDAP server + set_cached_schema('ldapsyntaxes', $syntaxes ); + + return $syntaxes; +} + +// -------------------------------------------------------------------- +// Schema caching functions +// -------------------------------------------------------------------- + +/** + * Returns true if the schema for $schema_type has been cached and + * is availble. $schema_type may be one of (lowercase) the following: + * objectclasses + * attributetypes + * ldapsyntaxes + * matchingrules + * matchingruleuse + * Note that _get_raw_schema() takes a similar parameter. + */ +function cached_schema_available($schema_type ) +{ + // Check config to make sure session-based caching is enabled. + if( ! SCHEMA_SESSION_CACHE_ENABLED ) + return false; + + // Static memory cache available? + // (note: this memory cache buys us a 20% speed improvement over strictly + // checking the session, ie 0.05 to 0.04 secs) + $schema_type = strtolower( $schema_type ); + static $cache_avail; + if( isset( $cache_avail[ $schema_type ] ) ) { + return true; + } + + // Session cache available? + if( isset( $_SESSION[ 'schema' ][ $schema_type ] ) ) { + $cache_avail[ $schema_type ] = true; + return true; + } elseif ( isset( $_SESSION[ 'schema' ][ 'unavailable'] ) ) { + return true; + } else { + return false; + } +} + +/** + * Returns the cached array of schemaitem objects for the specified + * $schema_type. For list of valid $schema_type values, see above + * schema_cache_available(). Note that internally, this function + * utilizes a two-layer cache, one in memory using a static variable + * for multiple calls within the same page load, and one in a session + * for multiple calls within the same user session (spanning multiple + * page loads). + * + * Returns an array of SchemaItem objects on success or false on failure. + */ +function get_cached_schema($schema_type ) +{ + // Check config to make sure session-based caching is enabled. + if( ! SCHEMA_SESSION_CACHE_ENABLED ) + return false; + + static $cache; + $schema_type = strtolower( $schema_type ); + if( isset( $cache[ $schema_type ] ) ) { + //echo "Getting memory-cached schema for \"$schema_type\"...
    \n"; + return $cache[ $schema_type ]; + } + + //echo "Getting session-cached schema for \"$schema_type\"...
    \n"; + if( cached_schema_available($schema_type ) && array_key_exists ( $schema_type, $_SESSION[ 'schema' ] ) ) { + $schema = $_SESSION[ 'schema' ][ $schema_type ]; + $cache[ $schema_type ] = $schema; + return $schema; + } else { + return false; + } +} + +/** + * Caches the specified $schema_type. + * $schema_items should be an array of SchemaItem instances (ie, + * an array of ObjectClass, AttributeType, LDAPSyntax, MatchingRuleUse, + * or MatchingRule objects. + * + * Returns true on success of false on failure. + */ +function set_cached_schema($schema_type, $schema_items ) +{ + // Check config to make sure session-based caching is enabled. + if( ! SCHEMA_SESSION_CACHE_ENABLED ) + return false; + + //echo "Setting cached schema for \"$schema_type\"...
    \n"; + // Sanity check. The schema must be in the form of an array + if( ! is_array( $schema_items ) ) { + die( "While attempting to cache schema, passed a non-array for \$schema_items!" ); + } + // Make sure we are being passed a valid array of schema_items + foreach( $schema_items as $schema_item ) { + if( ! is_subclass_of( $schema_item, 'SchemaItem' ) && + ! 0 == strcasecmp( 'SchemaItem', get_class( $schema_item ) ) ) { + die( "While attempting to cache schema, one of the schema items passed is not a true SchemaItem instance!" ); + } + } + + $schema_type = strtolower( $schema_type ); + $_SESSION[ 'schema' ][ $schema_type ] = $schema_items; + return true; +} + +/** + * Sets the schema entry for the server_id to be "unavailable" so that we realize + * that we tried to get the schema but could not, so quit trying next time to + * fetch it from the server. + */ +function set_schema_cache_unavailable() +{ + if( ! SCHEMA_SESSION_CACHE_ENABLED ) + return false; + $_SESSION['schema']['unavailable'] = true; + return true; +} + +?> diff --git a/lam/lib/security.inc b/lam/lib/security.inc new file mode 100644 index 00000000..b25b321e --- /dev/null +++ b/lam/lib/security.inc @@ -0,0 +1,475 @@ +errorReporting == LAMCfgMain::ERROR_REPORTING_DEFAULT)) { + ini_set('error_reporting', 'E_ALL & ~E_NOTICE'); + } + elseif ($_SESSION['cfgMain']->errorReporting == LAMCfgMain::ERROR_REPORTING_ALL) { + ini_set('error_reporting', E_ALL | E_STRICT); + ini_set('display_errors', 'On'); + } + // check session id + if (! isset($_SESSION["sec_session_id"]) || ($_SESSION["sec_session_id"] != session_id())) { + // session id is invalid + logNewMessage(LOG_WARNING, "Invalid session ID, access denied (" . $_SERVER['REMOTE_ADDR'] . ")"); + die(); + } + // check if client IP has not changed + if (!isset($_SESSION["sec_client_ip"]) || ($_SESSION["sec_client_ip"] != $_SERVER['REMOTE_ADDR'])) { + // IP is invalid + logNewMessage(LOG_WARNING, "Client IP changed, access denied (" . $_SERVER['REMOTE_ADDR'] . ")"); + die(); + } + // check if session time has not expired + if (($_SESSION['sec_sessionTime'] + (60 * $_SESSION['cfgMain']->sessionTimeout)) > time()) { + // ok, update time + $_SESSION['sec_sessionTime'] = time(); + } + elseif ($redirectToLogin) { + // session expired, logoff user + logoffAndBackToLoginPage(); + } + else { + return false; + } + setSSLCaCert(); + return true; +} + +/** + * Checks if the client's IP address is on the list of allowed IPs. + * The script is stopped if the host is not valid. + * + */ +function checkClientIP() { + if (isset($_SESSION['cfgMain'])) $cfg = $_SESSION['cfgMain']; + else $cfg = new LAMCfgMain(); + $allowedHosts = $cfg->allowedHosts; + $url = getCallingURL(); + if ((strpos($url, '/selfService/selfService') !== false) || ((strpos($url, '/misc/ajax.php?') !== false) && strpos($url, 'selfservice=1') !== false)) { + // self service pages have separate IP list + $allowedHosts = $cfg->allowedHostsSelfService; + } + // skip test if no hosts are defined + if ($allowedHosts == "") return; + $allowedHosts = explode(",", $allowedHosts); + $grantAccess = false; + for ($i = 0; $i < sizeof($allowedHosts); $i++) { + $host = $allowedHosts[$i]; + $ipRegex = '/^[0-9a-z\\.:\\*]+$/i'; + if (!preg_match($ipRegex, $host)) continue; + $hostRegex = str_replace(".", "\\.", $host); + $hostRegex = '/^' . str_replace("*", ".*", $hostRegex) . '$/'; + $clientIP = $_SERVER['REMOTE_ADDR']; + if (preg_match($hostRegex, $clientIP)) { + // client is allowed to access LAM + $grantAccess = true; + } + } + // stop script is client may not access LAM + if (!$grantAccess) { + logNewMessage(LOG_WARNING, "Invalid client IP, access denied (" . $_SERVER['REMOTE_ADDR'] . ")"); + die(); + } +} + +/** + * Logs off the user and displays the login page. + * + */ +function logoffAndBackToLoginPage() { + // log message + if (isset($_SESSION['ldap'])) { + $ldapUser = $_SESSION['ldap']->decrypt_login(); + logNewMessage(LOG_WARNING, 'Session of user ' . $ldapUser[0] . ' expired.'); + // close LDAP connection + @$_SESSION["ldap"]->destroy(); + } + elseif (isset($_SESSION['selfService_clientDN']) || (strpos($_SERVER['REQUEST_URI'], '/selfService/') !== false)) { + logNewMessage(LOG_WARNING, 'Self service session of DN ' . Ldap::decrypt($_SESSION['selfService_clientDN'], 'SelfService') . ' expired.'); + } + // delete key and iv in cookie + if (function_exists('mcrypt_create_iv')) { + setcookie("Key", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, "/"); + setcookie("IV", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, "/"); + } + // link back to login page + $paths = array('./', '../', '../../', '../../../', '../../../../'); + $page = 'login.php'; + $pageSuffix = '?expired=yes'; + if (isset($_SESSION['selfService_clientDN']) || (strpos($_SERVER['REQUEST_URI'], '/selfService/') !== false)) { + $scope = $_GET['scope']; + $name = $_GET['name']; + if (!preg_match('/^[0-9a-zA-Z _-]+$/', $scope) || !preg_match('/^[0-9a-zA-Z _-]+$/', $name)) { + logNewMessage(LOG_ERR, 'GET parameters invalid: ' . $name . ' ' . $scope); + die(); + } + $page = 'selfServiceLogin.php'; + $pageSuffix = '?expired=yes&scope=' . $scope . '&name=' . $name; + } + for ($i = 0; $i < sizeof($paths); $i++) { + if (file_exists($paths[$i] . $page)) { + $page = $paths[$i] . $page; + break; + } + } + $page .= $pageSuffix; + echo $_SESSION['header']; + echo "\n"; + echo "\n"; + echo "\n"; + // print JavaScript refresh + echo "\n"; + // print link if refresh does not work + echo "

    \n"; + echo "" . _("Your session expired, click here to go back to the login page.") . "\n"; + echo "

    \n"; + echo "\n"; + echo "\n"; + // destroy session + session_destroy(); + unset($_SESSION); + die(); +} + +/** + * Puts a new message in the log file. + * + * @param string $level log level (LOG_DEBUG, LOG_NOTICE, LOG_WARNING, LOG_ERR) + * @param string $message log message + */ +function logNewMessage($level, $message) { + $possibleLevels = array(LOG_DEBUG => 'DEBUG', LOG_NOTICE => 'NOTICE', LOG_WARNING => 'WARNING', LOG_ERR => 'ERROR'); + if (!in_array($level, array_keys($possibleLevels))) StatusMessage('ERROR', 'Invalid log level!', $level); + if (isset($_SESSION['cfgMain'])) $cfg = $_SESSION['cfgMain']; + else $cfg = new LAMCfgMain(); + // check if logging is disabled + if ($cfg->logDestination == 'NONE') return; + // check if log level is high enough + elseif ($cfg->logLevel < $level) return; + // ok to log, build log message + $prefix = "LDAP Account Manager (" . session_id() . ' - ' . $_SERVER['REMOTE_ADDR'] . ") - " . $possibleLevels[$level] . ": "; + $message = $prefix . $message; + // Syslog logging + if ($cfg->logDestination == 'SYSLOG') { + syslog($level, $message); + } + // log to file + else { + @touch($cfg->logDestination); + if (is_writable($cfg->logDestination)) { + $file = fopen($cfg->logDestination, 'a'); + if ($file) { + fwrite($file, date('Y-m-d H:i:s') . ': ' . $message . "\n"); + fclose($file); + } + } + else { + StatusMessage('ERROR', 'Unable to write to log file!', $cfg->logDestination); + } + } +} + +/** + * Checks if write access to LDAP is allowed. + * + * @param String $scope account type (e.g. user) + * @return boolean true, if allowed + */ +function checkIfWriteAccessIsAllowed($scope = null) { + if (!isset($_SESSION['config'])) { + return false; + } + if ($_SESSION['config']->getAccessLevel() >= LAMConfig::ACCESS_ALL) { + $typeSettings = $_SESSION['config']->get_typeSettings(); + if ($scope == null) { + return true; + } + elseif (!isset($typeSettings['readOnly_' . $scope]) || !$typeSettings['readOnly_' . $scope]) { + // check if write for this type is allowed + return true; + } + } + return false; +} + +/** + * Checks if passwords may be changed. + * + * @return boolean true, if allowed + */ +function checkIfPasswordChangeIsAllowed() { + if (!isset($_SESSION['config'])) { + return false; + } + if ($_SESSION['config']->getAccessLevel() >= LAMConfig::ACCESS_PASSWORD_CHANGE) { + return true; + } + return false; +} + +/** + * Checks if it is allowed to create new LDAP entries of the given type. + * This also checks if general write access is enabled. + * + * @param String $scope account type (e.g. 'user') + * @return boolean true, if new entries are allowed + */ +function checkIfNewEntriesAreAllowed($scope) { + if (!isLAMProVersion()) { + return true; + } + if (!isset($_SESSION['config']) || empty($scope)) { + return false; + } + $typeSettings = $_SESSION['config']->get_typeSettings(); + if (isset($typeSettings['hideNewButton_' . $scope]) && $typeSettings['hideNewButton_' . $scope]) { + return false; + } + return checkIfWriteAccessIsAllowed(); +} + +/** + * Checks if it is allowed to delete LDAP entries of the given type. + * + * @param String $scope account type (e.g. 'user') + * @return boolean true, if entries may be deleted + */ +function checkIfDeleteEntriesIsAllowed($scope) { + if (!isLAMProVersion()) { + return true; + } + if (!isset($_SESSION['config']) || empty($scope)) { + return false; + } + $typeSettings = $_SESSION['config']->get_typeSettings(); + if (isset($typeSettings['hideDeleteButton_' . $scope]) && $typeSettings['hideDeleteButton_' . $scope]) { + return false; + } + return checkIfWriteAccessIsAllowed(); +} + +/** + * Checks if the password fulfills the password policies. + * + * @param String $password password + * @param String $userName user name + * @param array $otherUserAttrs user's first/last name + * @return mixed true if ok, string with error message if not valid + */ +function checkPasswordStrength($password, $userName, $otherUserAttrs) { + if ($password == null) { + $password = ""; + } + if (isset($_SESSION['cfgMain'])) $cfg = $_SESSION['cfgMain']; + else $cfg = new LAMCfgMain(); + // check length + if (strlen($password) < $cfg->passwordMinLength) { + return sprintf(_('The password is too short. You have to enter at least %s characters.'), $cfg->passwordMinLength); + } + // get number of characers per character class + $lower = 0; + $upper = 0; + $numeric = 0; + $symbols = 0; + for ($i = 0; $i < strlen($password); $i++) { + if (preg_match("/[a-z]/", $password[$i])) { + $lower++; + } + if (preg_match("/[A-Z]/", $password[$i])) { + $upper++; + } + if (preg_match("/[0-9]/", $password[$i])) { + $numeric++; + } + if (preg_match("/[^a-z0-9]/i", $password[$i])) { + $symbols++; + } + } + $rulesMatched = 0; + $rulesFailed = 0; + // check lower case + if (($cfg->checkedRulesCount == -1) && ($lower < $cfg->passwordMinLower)) { + return sprintf(_('The password is too weak. You have to enter at least %s lower case characters.'), $cfg->passwordMinLower); + } + if ($lower < $cfg->passwordMinLower) { + $rulesFailed++; + } + else { + $rulesMatched++; + } + // check upper case + if (($cfg->checkedRulesCount == -1) && ($upper < $cfg->passwordMinUpper)) { + return sprintf(_('The password is too weak. You have to enter at least %s upper case characters.'), $cfg->passwordMinUpper); + } + if ($upper < $cfg->passwordMinUpper) { + $rulesFailed++; + } + else { + $rulesMatched++; + } + // check numeric + if (($cfg->checkedRulesCount == -1) && ($numeric < $cfg->passwordMinNumeric)) { + return sprintf(_('The password is too weak. You have to enter at least %s numeric characters.'), $cfg->passwordMinNumeric); + } + if ($numeric < $cfg->passwordMinNumeric) { + $rulesFailed++; + } + else { + $rulesMatched++; + } + // check symbols + if (($cfg->checkedRulesCount == -1) && ($symbols < $cfg->passwordMinSymbol)) { + return sprintf(_('The password is too weak. You have to enter at least %s symbolic characters.'), $cfg->passwordMinSymbol); + } + if ($symbols < $cfg->passwordMinSymbol) { + $rulesFailed++; + } + else { + $rulesMatched++; + } + // check classes + $classes = 0; + if ($lower > 0) { + $classes++; + } + if ($upper > 0) { + $classes++; + } + if ($numeric > 0) { + $classes++; + } + if ($symbols > 0) { + $classes++; + } + if (($cfg->checkedRulesCount == -1) && ($classes < $cfg->passwordMinClasses)) { + return sprintf(_('The password is too weak. You have to enter at least %s different character classes (upper/lower case, numbers and symbols).'), $cfg->passwordMinClasses); + } + if ($classes < $cfg->passwordMinClasses) { + $rulesFailed++; + } + else { + $rulesMatched++; + } + // check rules count + if (($cfg->checkedRulesCount != -1) && ($rulesMatched < $cfg->checkedRulesCount)) { + return sprintf(_('The password is too weak. It needs to match at least %s password complexity rules.'), $cfg->checkedRulesCount); + } + // check user name + if (($cfg->passwordMustNotContainUser == 'true') && !empty($userName)) { + $pwdLow = strtolower($password); + $userLow = strtolower($userName); + if (strpos($pwdLow, $userLow) !== false) { + return _('The password is too weak. You may not use the user name as part of the password.'); + } + } + // check part of user name and additional attributes + if (($cfg->passwordMustNotContain3Chars == 'true') && (!empty($userName) || !empty($otherUserAttrs))) { + $pwdLow = strtolower($password); + // check if contains part of user name + if (!empty($userName) && (strlen($userName) > 2)) { + $userLow = strtolower($userName); + for ($i = 0; $i < strlen($userLow) - 3; $i++) { + $part = substr($userLow, 0, 3); + if (strpos($pwdLow, $part) !== false) { + return _('The password is too weak. You may not use parts of the user name for the password.'); + } + } + } + // check other attributes + foreach ($otherUserAttrs as $other) { + $low = strtolower($other); + for ($i = 0; $i < strlen($low) - 3; $i++) { + $part = substr($low, 0, 3); + if (strpos($pwdLow, $part) !== false) { + return _('The password is too weak. You may not use parts of user attributes for the password.'); + } + } + } + } + return true; +} + +/** + * Checks if the given tool is active. + * Otherwise, an error message is logged and the execution is stopped (die()). + * + * @param String $tool tool class name (e.g. toolFileUpload) + */ +function checkIfToolIsActive($tool) { + $toolSettings = $_SESSION['config']->getToolSettings(); + // check if hidden by config + if (isset($toolSettings['tool_hide_' . $tool]) && ($toolSettings['tool_hide_' . $tool] == 'true')) { + logNewMessage(LOG_ERR, 'Unauthorized access to tool ' . $tool . ' denied.'); + die(); + } +} + +?> \ No newline at end of file diff --git a/lam/lib/selfService.inc b/lam/lib/selfService.inc new file mode 100644 index 00000000..37b90283 --- /dev/null +++ b/lam/lib/selfService.inc @@ -0,0 +1,405 @@ +getSelfServiceSearchAttributes(); + $return = array_merge($return, $attributes); + } + $return = array_unique($return); + $return = array_values($return); + return $return; +} + + +/** + * Returns the field settings for the self service. + * + * @param string $scope account type + * @return array settings + */ +function getSelfServiceFieldSettings($scope) { + $return = array(); + $modules = getAvailableModules($scope); + for ($i = 0; $i < sizeof($modules); $i++) { + $m = moduleCache::getModule($modules[$i], $scope); + $settings = $m->getSelfServiceFields(); + if (sizeof($settings) > 0) $return[$modules[$i]] = $settings; + } + return $return; +} + + +/** + * Returns meta HTML code for each self service field. + * + * @param string $scope account type + * @param array $fields input fields (array( => array(, , ...))) + * @param array $attributes LDAP attributes (attribute names in lower case) + * @param boolean $passwordChangeOnly indicates that the user is only allowed to change his password and no LDAP content is readable + * @param array $readOnlyFields list of read-only fields + * @return array meta HTML code (array( => htmlTableRow)) + */ +function getSelfServiceOptions($scope, $fields, $attributes, $passwordChangeOnly, $readOnlyFields) { + $return = array(); + $modules = getAvailableModules($scope); + for ($i = 0; $i < sizeof($modules); $i++) { + if (!isset($fields[$modules[$i]])) continue; + $m = moduleCache::getModule($modules[$i], $scope); + $modReadOnlyFields = array(); + for ($r = 0; $r < sizeof($readOnlyFields); $r++) { + $parts = explode('_', $readOnlyFields[$r]); + if ($parts[0] == $modules[$i]) { + $modReadOnlyFields[] = $parts[1]; + } + } + $code = $m->getSelfServiceOptions($fields[$modules[$i]], $attributes, $passwordChangeOnly, $modReadOnlyFields); + if (sizeof($code) > 0) $return[$modules[$i]] = $code; + } + return $return; +} + + +/** + * Checks if all input values are correct and returns the LDAP commands which should be executed. + * + * @param string $scope account type + * @param string $fields input fields (array( => array(, , ...))) + * @param array $attributes LDAP attributes + * @param boolean $passwordChangeOnly indicates that the user is only allowed to change his password and no LDAP content is readable + * @param array $readOnlyFields list of read-only fields + * @return array messages and LDAP commands (array('messages' => array(), 'add' => array(), 'del' => array(), 'mod' => array())) + */ +function checkSelfServiceOptions($scope, $fields, $attributes, $passwordChangeOnly, $readOnlyFields) { + $return = array('messages' => array(), 'add' => array(), 'del' => array(), 'mod' => array(), 'info' => array()); + $modules = getAvailableModules($scope); + for ($i = 0; $i < sizeof($modules); $i++) { + if (!isset($fields[$modules[$i]])) continue; + $m = moduleCache::getModule($modules[$i], $scope); + $modReadOnlyFields = array(); + for ($r = 0; $r < sizeof($readOnlyFields); $r++) { + $parts = explode('_', $readOnlyFields[$r]); + if ($parts[0] == $modules[$i]) { + $modReadOnlyFields[] = $parts[1]; + } + } + $result = $m->checkSelfServiceOptions($fields[$modules[$i]], $attributes, $passwordChangeOnly, $modReadOnlyFields); + if (sizeof($result['messages']) > 0) $return['messages'] = array_merge($result['messages'], $return['messages']); + if (sizeof($result['add']) > 0) $return['add'] = array_merge($result['add'], $return['add']); + if (sizeof($result['del']) > 0) $return['del'] = array_merge($result['del'], $return['del']); + if (sizeof($result['mod']) > 0) $return['mod'] = array_merge($result['mod'], $return['mod']); + if (sizeof($result['info']) > 0) $return['info'] = array_merge($result['info'], $return['info']); + } + return $return; +} + + +/** +* Returns a list of all available self service profiles (without .conf) +* +* @return array profile names (array( => array(, , ...))) +*/ +function getSelfServiceProfiles() { + $types = getTypes(); + $dir = dir(substr(__FILE__, 0, strlen(__FILE__) - 20) . "/config/selfService"); + $ret = array(); + while ($entry = $dir->read()){ + $ext = substr($entry, strrpos($entry, '.') + 1); + $name = substr($entry, 0, strrpos($entry, '.')); + // check if extension is right, add to profile list + if (in_array($ext, $types)) { + $ret[$ext][] = $name; + } + } + ksort($ret); + foreach ($ret as $key => $value) { + sort($ret[$key]); + } + return $ret; +} + + +/** +* Loads all settings of a self service profile. +* +* @param string $name profile name +* @param string $scope account type +* @return selfServiceProfile true if file was readable +*/ +function loadSelfServiceProfile($name, $scope) { + if (!preg_match("/^[0-9a-z _-]+$/i", $name)) return false; + if (!preg_match("/^[0-9a-z _-]+$/i", $scope)) return false; + $profile = new selfServiceProfile(); + $file = substr(__FILE__, 0, strlen(__FILE__) - 20) . "/config/selfService/" . $name . "." . $scope; + if (is_file($file) === True) { + $file = @fopen($file, "r"); + if ($file) { + $data = fread($file, 10000000); + $profile = unserialize($data); + fclose($file); + } + else { + StatusMessage("ERROR", "", _("Unable to load profile!") . " " . $file); + } + } + else { + StatusMessage("ERROR", "", _("Unable to load profile!") . " " . $file); + } + return $profile; +} + + +/** +* Saves a self service profile. +* +* File is created, if needed +* +* @param string $name name of the account profile +* @param string $scope account type +* @param selfServiceProfile $profile self service profile +* @return boolean true, if saving succeeded +*/ +function saveSelfServiceProfile($name, $scope, $profile) { + // check profile name + if (!preg_match("/^[0-9a-z _-]+$/i", $scope)) return false; + if (!preg_match("/^[0-9a-z _-]+$/i", $name)) return false; + if (!get_class($profile) === 'selfServiceProfile') { + return false; + } + $path = substr(__FILE__, 0, strlen(__FILE__) - 20) . "/config/selfService/" . $name . "." . $scope; + $file = @fopen($path, "w"); + if ($file) { + // write settings to file + fputs($file, serialize($profile)); + // close file + fclose($file); + } + else { + return false; + } + return true; +} + +/** +* Checks if a service profile is writable. +* +* @param string $name profile name +* @param string $scope account type +* @return boolean true if file is writable +*/ +function isSelfServiceProfileWritable($name, $scope) { + // check profile name + if (!preg_match("/^[0-9a-z _-]+$/i", $scope)) return false; + if (!preg_match("/^[0-9a-z _-]+$/i", $name)) return false; + $path = substr(__FILE__, 0, strlen(__FILE__) - 20) . "/config/selfService/" . $name . "." . $scope; + return is_writable($path); +} + +/** +* Returns a hash array (module name => elements) of all module options for the configuration page. +* +* @param string $scope account type +* @param selfServiceProfile $profile currently edited profile +* @return array configuration options +*/ +function getSelfServiceSettings($scope, $profile) { + $return = array(); + $modules = getAvailableModules($scope); + for ($i = 0; $i < sizeof($modules); $i++) { + $m = moduleCache::getModule($modules[$i], $scope); + $return[$modules[$i]] = $m->getSelfServiceSettings($profile); + } + return $return; +} + +/** +* Checks if the self service settings are valid +* +* @param string $scope account type +* @param array $options hash array containing all options (name => array(...)) +* @param selfServiceProfile $profile profile +* @return array list of error messages +*/ +function checkSelfServiceSettings($scope, &$options, &$profile) { + $return = array(); + $modules = getAvailableModules($scope); + for ($i = 0; $i < sizeof($modules); $i++) { + $m = moduleCache::getModule($modules[$i], $scope); + $errors = $m->checkSelfServiceSettings($options, $profile); + $return = array_merge($return, $errors); + } + return $return; +} + + +/** + * Includes all settings of a self service profile. + * + * @package selfService + */ +class selfServiceProfile { + + /** server address */ + public $serverURL; + + /** use TLS */ + public $useTLS; + + /** LDAP suffix */ + public $LDAPSuffix; + + /** LDAP user DN*/ + public $LDAPUser; + + /** LDAP password */ + public $LDAPPassword; + + /** use bind user also for read/modify operations */ + public $useForAllOperations; + + /** LDAP search attribute */ + public $searchAttribute; + + /** HTTP authentication */ + public $httpAuthentication; + + /** header for self service pages */ + public $pageHeader; + + /** list of additional CSS links (separated by \n) */ + public $additionalCSS; + + /** describing text for user login */ + public $loginCaption; + + /** label for password input */ + public $passwordLabel; + + /** describing text for search attribute */ + public $loginAttributeText; + + /** additional LDAP filter for accounts */ + public $additionalLDAPFilter; + + /** describing text for self service main page */ + public $mainPageText; + + /** input fields + * Format: array( + *
    array(array('name' => , 'fields' => array(, ))), + *
    array(array('name' => , 'fields' => array(, ))) + *
    ) + * + */ + public $inputFields; + + /** + * List of fields that are set in read-only mode. + */ + public $readOnlyFields; + + /** List of override values for field labels: array( => label) */ + public $relabelFields; + + /** configuration settings of modules */ + public $moduleSettings; + + /** language for self service */ + public $language = 'en_GB.utf8'; + /** disallow user to change language */ + public $enforceLanguage = false; + + /** + * Constructor + * + * @return selfServiceProfile + */ + function __construct() { + // set default values + $this->serverURL = "localhost"; + $this->useTLS = false; + $this->LDAPSuffix = "dc=my-domain,dc=com"; + $this->LDAPUser = ""; + $this->LDAPPassword = ""; + $this->useForAllOperations = false; + $this->searchAttribute = "uid"; + $this->additionalLDAPFilter = ''; + $this->httpAuthentication = false; + $this->pageHeader = '

    '; + $this->additionalCSS = ''; + $this->loginCaption = '' . _("Welcome to LAM self service. Please enter your user name and password.") . ''; + $this->loginAttributeText = _('User name'); + $this->passwordLabel = ''; + $this->mainPageText = "

    LAM self service

    \n" . _("Here you can change your personal settings."); + $this->inputFields = array( + array('name' => _('Personal data'), + 'fields' => array('inetOrgPerson_firstName', 'inetOrgPerson_lastName', 'inetOrgPerson_mail', + 'inetOrgPerson_telephoneNumber', 'inetOrgPerson_mobile', 'inetOrgPerson_faxNumber', + 'inetOrgPerson_street', 'inetOrgPerson_postalAddress')), + array('name' => _('Password'), + 'fields' => array('posixAccount_password')) + ); + $this->readOnlyFields = array(); + $this->relabelFields = array(); + $this->moduleSettings = array(); + $this->language = 'en_GB.utf8'; + $this->enforceLanguage = true; + } + +} + +?> \ No newline at end of file diff --git a/lam/lib/status.inc b/lam/lib/status.inc new file mode 100644 index 00000000..31ea61da --- /dev/null +++ b/lam/lib/status.inc @@ -0,0 +1,167 @@ + + *
    {bold}, {endbold}: All text between these tags is printed bold. + *
    {color=#123456}, {endcolor}: All text between these tags is printed in the given color. + *
    {link=http://nodomain.org}, {endlink}: A link with the given target is created. The link text is the text between the tags. + * + * @param string $MessageTyp The type of the message to be printed. It must be one of + * the following types: 'INFO', 'WARN' or 'ERROR'. + *
    Every other type will lead to an error message indicating an invalid message type. + * @param string $MessageHeadline The headline of the status message. + *
    It may be formatted with special color/link/bold tags. + * @param string $MessageText The text of the status message. + *
    It may be formatted with special color/link/bold tags. This parameter is optional. + * @param array $MessageVariables The variables that are used to replace the spacers (%s) in the + * submitted text. This parameter is optional. + * @param boolean $returnOutput if set to true this function will return the generated HTML code instead of printing it directly (default: false) + * @return String HTML code if $returnOutput is set to true, otherwise null + */ +function StatusMessage($MessageTyp,$MessageHeadline,$MessageText='',$MessageVariables = array(), $returnOutput = false) { + /* Setting CSS-StyleSheet class depending on the $MessageTyp and rewriting $MessageTyp with a readable string. */ + if($MessageTyp == "INFO") { + $class = "class=\"statusInfo ui-corner-all\""; + } + elseif($MessageTyp == "WARN") { + $class = "class=\"statusWarn ui-corner-all\""; + } + elseif($MessageTyp == "ERROR") { + $class = "class=\"statusError ui-corner-all\""; + } + /* Set output-message, when none or false $MessageTyp is submitted. */ + else { + $class = "class=\"statusError ui-corner-all\""; + $MessageTyp = "ERROR"; + $MessageHeadline = "Invalid/Missing Message type"; + $MessageText = "Please report this error to the Bug-Tracker at {link=http://www.ldap-account-manager.org/}LDAP Account Manager Development Team{endlink}. Thank you."; + } + + $MessageHeadline = parseMessageString($MessageHeadline); + $MessageText = parseMessageString($MessageText); + + if (is_file("../graphics/error.png")) { + $MessageTyp = "  \"""; + } + else { + $MessageTyp = "  \"""; + } + + $MessageHeadline = "
    " . $MessageHeadline . "
    "; // Format $MessageHeadline + if ($MessageText != '') { + $MessageText = "

    " . $MessageText . "

    "; // Format $MessageText + } + $format = "
    \n\n\n\n\n\n
    " . $MessageTyp . "" . $MessageHeadline . $MessageText . "
    \n
    \n"; + $output = ''; + if (is_array($MessageVariables)) { + if (sizeof($MessageVariables) > 0) { + array_unshift($MessageVariables, $format); + $output = call_user_func_array('sprintf',$MessageVariables); + } + else { + $output = $format; + } + } + else { + $output = sprintf($format, $MessageVariables); + } + if ($returnOutput) { + return $output; + } + else { + echo $output; + } + return null; +} + +/** + * Use the three replace functions on the submitted Text. + * + * @access private + * + * @param string $MessageString The text that is used to search for replaceable strings. + * + * @return string The processed text. + */ +function parseMessageString($MessageString) { + return linkText(colorText(boldText($MessageString))); +} + +/** + * Replace {bold} and {endbold} with and HTML-Tags. + * + * @access private + * + * @param string $text The text that is used to search for {bold} and {endbold} tags. + * + * @return string The submitted text with {bold} and {endbold} replaced with + * the appropriate HTML tages and + */ +function boldText($text) { + $pattern = "/\\{bold\\}([^{]*)\\{endbold\\}/"; // Regular expression matching {bold}[Text]{endbold} + $replace = "\\1"; // Replace pattern + return preg_replace($pattern,$replace,$text); +} + +/** + * Replace {color=#[HEX-Value]} or {color=[HEX-Value]} and {endcolor} with and HTML-Tags. + * + * @access private + * + * @param string $text The text that is used to search for {color} and {endcolor} tags. + * + * @return string Input string with HTML-formatted color tags + */ +function colorText($text) { + $pattern = "/\\{color=#?([0-9,a-f,A-F]{6})\\}([^{]*)\\{endcolor\\}/"; // Regular expression matching {color=#[HEX-Value]}[Text]{endcolor} or {color=[HEX-Value]}[Text]{endcolor} + $replace = "\\2"; // Replace pattern + return preg_replace($pattern,$replace,$text); +} + +/** + * Replace {link=[Link-Target]} and {endlink} with and HTML-Tags. + * + * @access private + * + * @param string $text The text that is used to search for {link} and {endlink} tags. + * + * @return string Input string with HTML-formatted link tags + */ +function linkText($text) { + $pattern = "/\\{link=([^}]*)\\}([^{]*)\\{endlink\\}/"; // Regular expression matching {link=[Link-Target]}[Text]{endlink} + $replace = "\\2"; //Replace pattern + return preg_replace($pattern,$replace,$text); +} +?> diff --git a/lam/lib/tools.inc b/lam/lib/tools.inc new file mode 100644 index 00000000..678b8818 --- /dev/null +++ b/lam/lib/tools.inc @@ -0,0 +1,164 @@ +read(); + // include all files in the tools directory + while ($entry) { + if ((substr($entry, strlen($entry) - 4, 4) == '.inc') && is_file($toolsDirName . '/'.$entry)) { + include_once($toolsDirName . '/'.$entry); + } + $entry = $toolsDir->read(); + } + // find tools classes + $classList = get_declared_classes(); + $return = array(); + for ($i = 0; $i < sizeof($classList); $i++) { + if (in_array('LAMTool', class_implements($classList[$i]))) { + $return[] = $classList[$i]; + } + } + return $return; +} + +/** + * Represents a tool. + * LAM will scan lib/tools/*.inc for classes which implement this interface. This alows to + * dynamically plugin additional tools. There will be an entry on the tools page inside LAM + * for each found class (if it matches the security level). + * A LAMTool only specifies name, description and location of a tool. The tool functionality + * is provided by the tool's target page. + * + * @author Roland Gruber + * @package tools + */ +interface LAMTool { + + /** + * Returns the name of the tool. + * + * @return string name + */ + function getName(); + + /** + * returns a description text for the tool. + * + * @return string description + */ + function getDescription(); + + /** + * Returns a link to the tool page (relative to templates/). + * + * @return string link + */ + function getLink(); + + /** + * Returns if the tool requires write access to LDAP. + * + * @return boolean true if write access is needed + */ + function getRequiresWriteAccess(); + + /** + * Returns if the tool requires password change rights. + * + * @return boolean true if password change rights are needed + */ + function getRequiresPasswordChangeRights(); + + /** + * Returns the link to the tool image (relative to graphics/) + * + * @return string image URL + */ + function getImageLink(); + + /** + * Returns the prefered position of this tool on the tools page. + * The position may be between 0 and 1000. 0 is the top position. + * + * @return int prefered position + */ + function getPosition(); + + /** + * Returns a list of sub tools or an empty array. + * + * @return array list of subtools (LAMTool) + */ + function getSubTools(); + + /** + * Returns if the tool is visible in the menu. + * + * @return boolean visible + */ + function isVisible(); + + /** + * Returns if a tool may be hidden by configuration in the LAM server profile. + * + * @return boolean hideable + */ + function isHideable(); + +} + +/** + * Represents a subtool. + * + * @author Roland Gruber + * @package tools + */ +class LAMSubTool { + + /** visible tool name */ + public $name; + /** tool description */ + public $description; + /** tool link (relative to templates/) */ + public $link; + /** image URL (relative to graphics/) */ + public $image; + +} + +?> \ No newline at end of file diff --git a/lam/lib/tools/fileUpload.inc b/lam/lib/tools/fileUpload.inc new file mode 100644 index 00000000..e90f27c8 --- /dev/null +++ b/lam/lib/tools/fileUpload.inc @@ -0,0 +1,131 @@ +get_ActiveTypes()) > 0); + } + + /** + * Returns if a tool may be hidden by configuration in the LAM server profile. + * + * @return boolean hideable + */ + function isHideable() { + return true; + } + +} + +?> \ No newline at end of file diff --git a/lam/lib/tools/multiEdit.inc b/lam/lib/tools/multiEdit.inc new file mode 100644 index 00000000..90b4c9c0 --- /dev/null +++ b/lam/lib/tools/multiEdit.inc @@ -0,0 +1,131 @@ + \ No newline at end of file diff --git a/lam/lib/tools/ouEditor.inc b/lam/lib/tools/ouEditor.inc new file mode 100644 index 00000000..81769e63 --- /dev/null +++ b/lam/lib/tools/ouEditor.inc @@ -0,0 +1,131 @@ +get_ActiveTypes()) > 0); + } + + /** + * Returns if a tool may be hidden by configuration in the LAM server profile. + * + * @return boolean hideable + */ + function isHideable() { + return true; + } + +} + +?> \ No newline at end of file diff --git a/lam/lib/tools/pdfEdit.inc b/lam/lib/tools/pdfEdit.inc new file mode 100644 index 00000000..f3c36650 --- /dev/null +++ b/lam/lib/tools/pdfEdit.inc @@ -0,0 +1,131 @@ +get_ActiveTypes()) > 0); + } + + /** + * Returns if a tool may be hidden by configuration in the LAM server profile. + * + * @return boolean hideable + */ + function isHideable() { + return true; + } + +} + +?> \ No newline at end of file diff --git a/lam/lib/tools/profileEditor.inc b/lam/lib/tools/profileEditor.inc new file mode 100644 index 00000000..1771c4e4 --- /dev/null +++ b/lam/lib/tools/profileEditor.inc @@ -0,0 +1,131 @@ +get_ActiveTypes()) > 0); + } + + /** + * Returns if a tool may be hidden by configuration in the LAM server profile. + * + * @return boolean hideable + */ + function isHideable() { + return true; + } + +} + +?> \ No newline at end of file diff --git a/lam/lib/tools/schemaBrowser.inc b/lam/lib/tools/schemaBrowser.inc new file mode 100644 index 00000000..dbe9b38e --- /dev/null +++ b/lam/lib/tools/schemaBrowser.inc @@ -0,0 +1,131 @@ + \ No newline at end of file diff --git a/lam/lib/tools/serverInfo.inc b/lam/lib/tools/serverInfo.inc new file mode 100644 index 00000000..4f979f90 --- /dev/null +++ b/lam/lib/tools/serverInfo.inc @@ -0,0 +1,131 @@ + \ No newline at end of file diff --git a/lam/lib/tools/tests.inc b/lam/lib/tools/tests.inc new file mode 100644 index 00000000..f0a8be2f --- /dev/null +++ b/lam/lib/tools/tests.inc @@ -0,0 +1,144 @@ +name = _("Lamdaemon test"); + $lamdaemonTest->link = 'tests/lamdaemonTest.php'; + $lamdaemonTest->description = _("Check if quotas and homedirectories can be managed."); + $lamdaemonTest->image = 'lamdaemonSmall.png'; + $return[] = $lamdaemonTest; + $schemaTest = new LAMSubTool(); + $schemaTest->name = _("Schema test"); + $schemaTest->link = 'tests/schemaTest.php'; + $schemaTest->description = _("Check if the LDAP schema fits the requirements of the selected account modules."); + $schemaTest->image = 'schemaTest.png'; + $return[] = $schemaTest; + return $return; + } + + /** + * Returns if the tool is visible in the menu. + * + * @return boolean visible + */ + function isVisible() { + return (sizeof($_SESSION['config']->get_ActiveTypes()) > 0); + } + + /** + * Returns if a tool may be hidden by configuration in the LAM server profile. + * + * @return boolean hideable + */ + function isHideable() { + return true; + } + +} + +?> \ No newline at end of file diff --git a/lam/lib/types.inc b/lam/lib/types.inc new file mode 100644 index 00000000..86d45600 --- /dev/null +++ b/lam/lib/types.inc @@ -0,0 +1,134 @@ +read()) +if ((substr($entry, strlen($entry) - 4, 4) == '.inc') && is_file($typesINC_dirname . '/'.$entry)) { + include_once($typesINC_dirname . '/'.$entry); +} + + +/** +* Returns a list of available account types. +* +* @return array list of types +*/ +function getTypes() { + $dirname = substr(__FILE__, 0, strlen(__FILE__) - 10) . "/types"; + $dir = dir($dirname); + $return = array(); + // get type names. + while ($entry = $dir->read()) { + if ((substr($entry, strlen($entry) - 4, 4) == '.inc') && is_file($dirname . '/'.$entry)) { + $entry = substr($entry, 0, strpos($entry, '.')); + $return[] = $entry; + } + } + $dir->close(); + return $return; +} + +/** +* Returns the alias name of an account type. +* +* @param string $type type name +* @return string type alias +*/ +function getTypeAlias($type) { + if (!empty($_SESSION['config'])) { + $typeSettings = $_SESSION['config']->get_typeSettings(); + if (!empty($typeSettings['customLabel_' . $type])) { + return $typeSettings['customLabel_' . $type]; + } + } + $obj = new $type(); + return $obj->getAlias(); +} + +/** +* Returns the description of an account type. +* +* @param string $type type name +* @return string type description +*/ +function getTypeDescription($type) { + $obj = new $type(); + return $obj->getDescription(); +} + +/** +* Returns the class name for the list object. +* +* @param string $type account type +* @return string class name +*/ +function getListClassName($type) { + $obj = new $type(); + return $obj->getListClassName(); +} + +/** +* Returns the default attribute list for an account type. +* It is used as default value for the configuration editor. +* +* @param string $type account type +* @return string attribute list +*/ +function getDefaultListAttributes($type) { + $obj = new $type(); + return $obj->getDefaultListAttributes(); +} + +/** +* Returns a list of attributes which have a translated description. +* This is used for the head row in the list view. +* +* @param string $type account type +* @return array list of descriptions +*/ +function getListAttributeDescriptions($type) { + $obj = new $type(); + return $obj->getListAttributeDescriptions(); +} + +?> \ No newline at end of file diff --git a/lam/lib/types/asteriskExt.inc b/lam/lib/types/asteriskExt.inc new file mode 100644 index 00000000..935cf2e9 --- /dev/null +++ b/lam/lib/types/asteriskExt.inc @@ -0,0 +1,204 @@ +LABEL_CREATE_ANOTHER_ACCOUNT = _('Create another extension'); + $this->LABEL_BACK_TO_ACCOUNT_LIST = _('Back to extensions list'); + } + + /** + * Returns the alias name of this account type. + * + * @return string alias name + */ + function getAlias() { + return _("Asterisk extensions"); + } + + /** + * Returns the description of this account type. + * + * @return string description + */ + function getDescription() { + return _("Asterisk extensions entries"); + } + + /** + * Returns the class name for the list object. + * + * @return string class name + */ + function getListClassName() { + return "lamAsteriskExtList"; + } + + /** + * Returns the default attribute list for this account type. + * + * @return string attribute list + */ + function getDefaultListAttributes() { + return "#AstExtension;#AstContext;#member"; + } + + /** + * Returns a list of attributes which have a translated description. + * This is used for the head row in the list view. + * + * @return array list of descriptions + */ + function getListAttributeDescriptions() { + return array( + "astextension" => _("Extension name"), + "astcontext" => _("Account context"), + "member" => _("Owner"), + ); + } + + /** + * Returns the the title text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarTitle($container) { + $attributes = null; + if ($container->getAccountModule('asteriskExtension') != null) { + $attributes = $container->getAccountModule('asteriskExtension')->getAttributes(); + } + // check if a common name is set + if (isset($attributes['AstExtension'][0])) { + return htmlspecialchars($attributes['AstExtension'][0]); + } + // new account + if ($container->isNewAccount) { + return _("New extension"); + } + // fall back to default + return parent::getTitleBarTitle($container); + } + +} + +/** + * Generates the list view. + * + * @package lists + * @author Pozdnyak Pavel + * + */ +class lamAsteriskExtList extends lamList { + + /** + * Constructor + * + * @param string $type account type + * @return lamList list object + */ + function __construct($type) { + parent::__construct($type); + $this->labels = array( + 'nav' => _("Extension count: %s"), + 'error_noneFound' => _("No Asterisk extensions found."), + 'newEntry' => _("New extension"), + 'deleteEntry' => _("Delete selected extensions")); + } + + /** + * Forces the list view to show only specific attributes. + * + * @see lamList::listGetParams() + */ + protected function listGetParams() { + // check if only PDF should be shown + parent::listGetParams(); + $this->attrArray = array("astextension", "astcontext", "member"); + $this->descArray = array(_("Extension name"), _("Account context"), _("Owner")); + } + + /** + * Groups the extensions. + * + * (non-PHPdoc) + * @see lamList::listRefreshData() + */ + protected function listRefreshData() { + parent::listRefreshData(); + // configure search filter + $module_filter = get_ldap_filter($this->type); // basic filter is provided by modules + $filter = "(&" . $module_filter . $this->buildLDAPAttributeFilter() . ")"; + $attrs = $this->attrArray; + $attrs[] = "astpriority"; + $entries = searchLDAP($this->suffix, $filter, $attrs); + $lastError = getLastLDAPError(); + if ($lastError != null) { + call_user_func_array('StatusMessage', $lastError); + } + + $entries = $this->normalizeLdapOutput($entries); + $this->entries = $entries; + // generate list of possible suffixes + $typeObj = new $this->type(); + $this->possibleSuffixes = $typeObj->getSuffixList(); + } + + /** + * Groups the extensions. + * + * @param array $entries extension entries + */ + private function normalizeLdapOutput($entries){ + $entries = array_map("unserialize", array_unique(array_map("serialize", $entries))); + foreach($entries as $key=> $value){ + if($entries[$key]["astpriority"][0] > 1){ + unset($entries[$key]); + } + } + return array_values($entries); + } + +} + +?> diff --git a/lam/lib/types/dhcp.inc b/lam/lib/types/dhcp.inc new file mode 100644 index 00000000..b9e067fb --- /dev/null +++ b/lam/lib/types/dhcp.inc @@ -0,0 +1,294 @@ +LABEL_CREATE_ANOTHER_ACCOUNT = _('Create another DHCP entry'); + $this->LABEL_BACK_TO_ACCOUNT_LIST = _('Back to DHCP list'); + } + + /** + * Returns the alias name of this account type. + * + * @return string alias name + */ + public function getAlias() { + return _("DHCP"); + } + + /** + * Returns the description of this account type. + * + * @return string description + */ + public function getDescription() { + return _("DHCP administration"); + } + + /** + * Returns the class name for the list object. + * + * @return string class name + */ + public function getListClassName() { + return "lamDHCPList"; + } + + /** + * Returns the default attribute list for this account type. + * + * @return string attribute list + */ + public function getDefaultListAttributes() { + return "#cn;#dhcpRange;#fixed_ips"; + } + + /** + * Returns a list of attributes which have a translated description. + * This is used for the head row in the list view. + * + * @return array list of descriptions + */ + public function getListAttributeDescriptions() { + return array ( + "cn" => _("Subnet"), + "dhcprange" => _("Ranges"), + "fixed_ips" => _("IP address") . ' / ' . _('MAC address') . ' / ' . _("Description") + ); + } + + /** + * Returns the the title text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarTitle($container) { + // get attributes + $attributes = null; + if ($container->getAccountModule('dhcp_settings') != null) { + $attributes = $container->getAccountModule('dhcp_settings')->getAttributes(); + } + // check if a common name is set + if (isset($attributes['cn'][0])) { + return htmlspecialchars($attributes['cn'][0]); + } + // new entry + if ($container->isNewAccount) { + return _("New DHCP"); + } + // fall back to default + return parent::getTitleBarTitle($container); + } + + /** + * Returns the the title text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarSubtitle($container) { + // get attributes + $attributes = null; + if ($container->getAccountModule('dhcp_settings') != null) { + $attributes = $container->getAccountModule('dhcp_settings')->getAttributes(); + } + if ($attributes == null) { + return null; + } + $subtitle = ''; + // check if an description can be shown + if (isset($attributes['dhcpComments'][0])) { + $subtitle .= htmlspecialchars($attributes['dhcpComments'][0]); + } + if ($subtitle == '') { + return null; + } + return $subtitle; + } + +} + +/** + * Generates the list view. + * + * @package lists + * @author Thomas Manninger + * + */ +class lamDHCPList extends lamList { + + /** + * Constructor + * + * @param string $type account type + * @return lamList list object + */ + public function __construct($type) { + parent::__construct($type); + $this->labels = array( + 'nav' => _("DHCP count: %s"), + 'error_noneFound' => _("No DHCPs found!"), + 'newEntry' => _("New DHCP"), + 'dhcpDefaults' => _("DHCP settings"), + 'deleteEntry' => _("Delete selected DHCP entries")); + } + + /** + * Prints the content of a cell in the account list for a given LDAP entry and attribute. + * + * @param array $entry LDAP attributes + * @param string $attribute attribute name + */ + public function listPrintTableCellContent(&$entry, &$attribute) { + // Fixed IPs + if ($attribute=="fixed_ips") { + // find all fixed addresses: + $entries = searchLDAP($entry['dn'], 'objectClass=dhcpHost', array('dhcpstatements', 'dhcphwaddress', 'cn')); + if (sizeof($entries) > 0) { + // sort by IP + $order = array(); + for ($i = 0; $i < sizeof($entries); $i++) { + $order[$i] = ''; + if (!empty($entries[$i]['dhcpstatements'])) { + $order[$i] = fixed_ip::extractIP($entries[$i]['dhcpstatements']); + } + } + natcasesort($order); + echo ""; + foreach ($order as $i => $sortval) { + $dhcpstatements = array(); + if (isset($entries[$i]['dhcpstatements'][0])) { + $dhcpstatements = $entries[$i]['dhcpstatements']; + } + $style = ''; + if (!fixed_ip::isActive($dhcpstatements)) { + $style = 'style="text-decoration: line-through;"'; + } + echo ""; + echo ""; + $dhcphwaddress = explode(" ",$entries[$i]['dhcphwaddress'][0]); + echo ""; + echo ""; + echo ""; + } + echo "
    " . fixed_ip::extractIP($dhcpstatements) . "".array_pop($dhcphwaddress)."".$entries[$i]['cn'][0]."
    "; + } + } + // fixed ip address + elseif ($attribute=="dhcpstatements") { + // Search after the fixed ip entry + if (is_array($entry['dhcpstatements'])) { + foreach($entry['dhcpstatements'] AS $id => $value) { + + if (!is_array($value) && array_shift( explode(" ", $value) ) == "fixed-address") { + $ip = explode(" ", $value); + echo $ip['1']; + } + } + } + } + elseif ($attribute=="dhcprange") { // DHCP Range + if (isset($entry['dhcprange'])) { + echo""; + $ranges = array(); + foreach($entry['dhcprange'] AS $id => $value) { + if (!empty($value) && !is_numeric($value)) { + $ex = explode(" ", $value); + $ranges[] = ""; + } + } + $pooledRanges = searchLDAP($entry['dn'], '(objectclass=dhcpPool)', array('dhcprange')); + foreach ($pooledRanges as $pool) { + if (empty($pool['dhcprange'])) { + continue; + } + foreach($pool['dhcprange'] AS $id => $value) { + if (!empty($value) && !is_numeric($value)) { + $ex = explode(" ", $value); + $ranges[] = ""; + } + } + } + natcasesort($ranges); + echo implode('', $ranges); + echo"
    ".$ex[0]."
    -
    ".$ex[1]."
    ".$ex[0]."
    -
    ".$ex[1]."
    "; + } + } + else + { + parent::listPrintTableCellContent($entry, $attribute); + } + } + + /** + * Add DCP main settings button. + * + * @param htmlGroup $left left part + * @param htmlGroup $right right part + */ + protected function addExtraInputElementsToTopArea(&$left, &$right) { + if (checkIfWriteAccessIsAllowed($this->type)) { + $left->addElement(new htmlSpacer('20px', null)); + $dhcpButton = new htmlButton('dhcpDefaults', $this->labels['dhcpDefaults']); + $dhcpButton->setIconClass('settingsButton'); + $left->addElement($dhcpButton); + } + } + + /** + * Manages all POST actions (e.g. button pressed) for the account lists. + * + * @return String HTML fragment to insert into beginning of account list + */ + function listDoPost() { + $fragment = parent::listDoPost(); + if (isset($_POST['dhcpDefaults'])) { + metaRefresh("../account/edit.php?type=dhcp&DN='".$_SESSION['config']->get_suffix('dhcp')."'"); + } + else { + return $fragment; + } + } +} +?> \ No newline at end of file diff --git a/lam/lib/types/group.inc b/lam/lib/types/group.inc new file mode 100644 index 00000000..23a03bdc --- /dev/null +++ b/lam/lib/types/group.inc @@ -0,0 +1,444 @@ +LABEL_CREATE_ANOTHER_ACCOUNT = _('Create another group'); + $this->LABEL_BACK_TO_ACCOUNT_LIST = _('Back to group list'); + if (isset($_SESSION['config'])) { + $modules = $_SESSION['config']->get_AccountModules('group'); + if (in_array('organizationalRole', $modules)) { + $this->LABEL_CREATE_ANOTHER_ACCOUNT = _('Create another role'); + $this->LABEL_BACK_TO_ACCOUNT_LIST = _('Back to role list'); + } + } + } + + /** + * Returns the alias name of this account type. + * + * @return string alias name + */ + function getAlias() { + if (isset($_SESSION['loggedIn']) && isset($_SESSION['config'])) { + $modules = $_SESSION['config']->get_AccountModules('group'); + if (in_array('organizationalRole', $modules)) { + return _('Roles'); + } + } + return _("Groups"); + } + + /** + * Returns the description of this account type. + * + * @return string description + */ + function getDescription() { + return _("Group accounts (e.g. Unix and Samba)"); + } + + /** + * Returns the class name for the list object. + * + * @return string class name + */ + function getListClassName() { + return "lamGroupList"; + } + + /** + * Returns the default attribute list for this account type. + * + * @return string attribute list + */ + function getDefaultListAttributes() { + return "#cn;#gidNumber;#memberUID;#description"; + } + + /** + * Returns a list of attributes which have a translated description. + * This is used for the head row in the list view. + * + * @return array list of descriptions + */ + function getListAttributeDescriptions() { + $return = array ( + "cn" => _("Group name"), + "gidnumber" => _("GID number"), + "memberuid" => _("Group members"), + "member" => _("Group member DNs"), + "uniqueMember" => _("Group member DNs"), + "roleOccupant" => _("Role member DNs"), + "description" => _("Group description") + ); + if (!empty($_SESSION['config'])) { + $modules = $_SESSION['config']->get_AccountModules('group'); + if (in_array('organizationalRole', $modules)) { + $return['cn'] = _('Role name'); + } + } + return $return; + } + + /** + * Returns the the title text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarTitle($container) { + // get attributes + $attributes = null; + if ($container->getAccountModule('posixGroup') != null) { + $attributes = $container->getAccountModule('posixGroup')->getAttributes(); + } + elseif ($container->getAccountModule('rfc2307bisPosixGroup') != null) { + $attributes = $container->getAccountModule('rfc2307bisPosixGroup')->getAttributes(); + } + elseif ($container->getAccountModule('windowsGroup') != null) { + $attributes = $container->getAccountModule('windowsGroup')->getAttributes(); + } + $gonAttributes = null; + if ($container->getAccountModule('groupOfNames') != null) { + $gonAttributes = $container->getAccountModule('groupOfNames')->getAttributes(); + } + elseif ($container->getAccountModule('groupOfUniqueNames') != null) { + $gonAttributes = $container->getAccountModule('groupOfUniqueNames')->getAttributes(); + } + elseif ($container->getAccountModule('organizationalRole') != null) { + $gonAttributes = $container->getAccountModule('organizationalRole')->getAttributes(); + } + // check if a group name is set + if (isset($attributes['gid'][0])) { + return htmlspecialchars($attributes['gid'][0]); + } + // check if a common name is set + if (isset($attributes['cn'][0])) { + return htmlspecialchars($attributes['cn'][0]); + } + if (isset($gonAttributes['cn'][0])) { + return htmlspecialchars($gonAttributes['cn'][0]); + } + // new entry + if ($container->isNewAccount) { + return _("New group"); + } + // fall back to default + return parent::getTitleBarTitle($container); + } + + /** + * Returns the the title text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarSubtitle($container) { + // get attributes + $attributes = null; + if ($container->getAccountModule('posixGroup') != null) { + $attributes = $container->getAccountModule('posixGroup')->getAttributes(); + } + elseif ($container->getAccountModule('rfc2307bisPosixGroup') != null) { + $attributes = $container->getAccountModule('rfc2307bisPosixGroup')->getAttributes(); + } + elseif ($container->getAccountModule('windowsGroup') != null) { + $attributes = $container->getAccountModule('windowsGroup')->getAttributes(); + } + $gonAttributes = null; + if ($container->getAccountModule('groupOfNames') != null) { + $gonAttributes = $container->getAccountModule('groupOfNames')->getAttributes(); + } + elseif ($container->getAccountModule('groupOfUniqueNames') != null) { + $gonAttributes = $container->getAccountModule('groupOfUniqueNames')->getAttributes(); + } + elseif ($container->getAccountModule('organizationalRole') != null) { + $gonAttributes = $container->getAccountModule('organizationalRole')->getAttributes(); + } + // check if an description can be shown + if (($attributes != null) && isset($attributes['description'][0])) { + return htmlspecialchars($attributes['description'][0]); + } + if (($gonAttributes != null) && isset($gonAttributes['description'][0])) { + return htmlspecialchars($gonAttributes['description'][0]); + } + return null; + } + +} + +/** + * Generates the list view. + * + * @package lists + * @author Roland Gruber + * + */ +class lamGroupList extends lamList { + + /** Controls if include primary group members into group memebers */ + private $use_primary = false; + /** Primary group members hash */ + private $primary_hash = array(); + /** Controls if primary group members needs refresh */ + private $refresh_primary = false; + /** ID for config option */ + const TRANS_PRIMARY_OPTION_NAME = "LG_TP"; + /** specifies if primary group members are visible */ + private $include_primary = false; + /** LDAP suffix of membership types */ + private $suffixList = array(); + + /** + * Constructor + * + * @param string $type account type + * @return lamList list object + */ + function __construct($type) { + parent::__construct($type); + $this->labels = array( + 'nav' => _("Group count: %s"), + 'error_noneFound' => _("No groups found!"), + 'newEntry' => _("New group"), + 'deleteEntry' => _("Delete selected groups")); + $modules = $_SESSION['config']->get_AccountModules('group'); + if (in_array('organizationalRole', $modules)) { + $this->labels = array( + 'nav' => _("Role count: %s"), + 'error_noneFound' => _("No roles found!"), + 'newEntry' => _("New role"), + 'deleteEntry' => _("Delete selected roles")); + } + // build suffix list for account types + $types = array('user', 'gon', 'group'); + $activeTypes = $_SESSION['config']->get_ActiveTypes(); + foreach ($types as $type) { + if (!in_array($type, $activeTypes)) { + continue; + } + $suffix = $_SESSION['config']->get_Suffix($type); + // stop if suffixes are not unique + if (isset($this->suffixList[$suffix])) { + $this->suffixList = array(); + break; + } + if (!empty($suffix)) { + $this->suffixList[$suffix] = $type; + } + } + } + + /** + * Sets some internal parameters. + */ + function listGetParams() { + parent::listGetParams(); + // generate list primary group memebers + // after parent::listGetParams is $this->refresh set to correct value + if ($this->include_primary && !$this->refresh && ($this->refresh_primary || (sizeof($this->primary_hash) == 0))) + $this->groupRefreshPrimary(); + } + + /** + * Prints the content of a cell in the account list for a given LDAP entry and attribute. + * + * @param array $entry LDAP attributes + * @param string $attribute attribute name + */ + function listPrintTableCellContent(&$entry, &$attribute) { + if ($attribute == "memberuid") { + // $gid is used for linking primary group memebers + $gid = -1; + $use_primary = false; + if ($this->include_primary == "on") { + // Get the gid number + if (isset($entry['gidnumber']) && is_array($entry['gidnumber'])) { + $gid = $entry['gidnumber'][0]; + } + $use_primary = (($gid >= 0) && (sizeof($this->primary_hash) > 0) && + isset($this->primary_hash[$gid]) && is_array($this->primary_hash[$gid]) && + (sizeof($this->primary_hash[$gid]) > 0)); + } + if (!$use_primary) { + if (!isset($entry[$attribute]) || !is_array($entry[$attribute]) || (sizeof($entry[$attribute]) < 1)) return; + // sort array + sort($entry[$attribute]); + } + // make a link for each member of the group + $linklist = array(); + if ($use_primary) { + $primary_hash = $this->primary_hash[$gid]; + // merge primary members into secondary ones + $primaryvals = array_flip(array_values($primary_hash)); + // test if group has some secondary members + if (isset($entry[$attribute])) { + $attr = array_merge($primary_hash,$entry[$attribute]); + } + else { + $attr = $primary_hash; + } + // sort array + sort($attr); + + // make a link for each member of the group + for ($d = 0; $d < sizeof($attr); $d++) { + $user = $attr[$d]; // user name + if (isAccountTypeHidden('user')) { + $linklist[$d] = $user; + } + elseif (isset($primaryvals[$user])) { + $linklist[$d] = "" . $user . ""; + } + else { + $linklist[$d] = "" . $user . ""; + } + } + } + else { + // make a link for each member of the group + for ($d = 0; $d < sizeof($entry[$attribute]); $d++) { + $user = $entry[$attribute][$d]; // user name + if (!isAccountTypeHidden('user')) { + $linklist[$d] = "" . $user . ""; + } + else { + $linklist[$d] = $user; + } + } + } + echo implode("; ", $linklist); + } + // pretty print member DNs + elseif (in_array_ignore_case($attribute, array('member', 'uniqueMember', 'owner', 'roleOccupant')) && !empty($entry[$attribute])) { + echo '
    '; + $values = $entry[$attribute]; + if (!empty($values)) { + usort($values, 'compareDN'); + } + $count = sizeof($values); + for ($i = 0; $i < $count; $i++) { + $replaced = false; + foreach ($this->suffixList as $suffix => $type) { + if (stripos($values[$i], $suffix) > 0) { + if (!isAccountTypeHidden($type)) { + $values[$i] = '' . getAbstractDN($values[$i]) . ''; + $replaced = true; + break; + } + } + } + if (!$replaced) { + $values[$i] = getAbstractDN($values[$i]); + } + } + echo implode('
    ', $values); + echo '
    '; + } + // print all other attributes + else { + parent::listPrintTableCellContent($entry, $attribute); + } + } + + /** + * Rereads the entries from LDAP. + */ + function listRefreshData() { + parent::listRefreshData(); + if ($this->include_primary) { + $this->groupRefreshPrimary(); + } + } + + /** + * Refreshes the primary group members list. + */ + function groupRefreshPrimary() { + $this->refresh_primary = false; + // return unless some entries + if (sizeof($this->entries) <= 0) return; + + $scope = "user"; + // get search suffix + $module_suffix = $_SESSION["config"]->get_Suffix($scope); + // configure search filter + $module_filter = get_ldap_filter($scope); // basic filter is provided by modules + $attrs = array( "uid" ); + for ($i = 0; $i < sizeof($this->entries); $i++) { + $gid = $this->entries[$i]['gidnumber'][0]; + $filter = "(&(&" . $module_filter . ")(gidNumber=" . $gid . "))"; + $entries = searchLDAPByFilter($filter, $attrs, array($scope)); + for ($j = 0; $j < sizeof($entries); $j++) { + $this->primary_hash[$gid][$j] = $entries[$j]['uid'][0]; + } + } + } + + /** + * Returns a list of possible configuration options. + * + * @return array list of lamListOption objects + */ + protected function listGetAllConfigOptions() { + $options = parent::listGetAllConfigOptions(); + $options[] = new lamBooleanListOption(_('Show primary group members as normal group members'), self::TRANS_PRIMARY_OPTION_NAME); + return $options; + } + + /** + * Called when the configuration options changed. + */ + protected function listConfigurationChanged() { + parent::listConfigurationChanged(); + $tpOption = $this->listGetConfigOptionByID(self::TRANS_PRIMARY_OPTION_NAME); + $use_primary = $this->include_primary; + $this->include_primary = $tpOption->isSelected(); + if (!$use_primary && $this->include_primary) { + $this->refresh_primary = true; + } + } + +} + + +?> \ No newline at end of file diff --git a/lam/lib/types/host.inc b/lam/lib/types/host.inc new file mode 100644 index 00000000..7ecc1ad5 --- /dev/null +++ b/lam/lib/types/host.inc @@ -0,0 +1,202 @@ +LABEL_CREATE_ANOTHER_ACCOUNT = _('Create another host'); + $this->LABEL_BACK_TO_ACCOUNT_LIST = _('Back to host list'); + } + + /** + * Returns the alias name of this account type. + * + * @return string alias name + */ + function getAlias() { + return _("Hosts"); + } + + /** + * Returns the description of this account type. + * + * @return string description + */ + function getDescription() { + return _("Host accounts (e.g. Samba)"); + } + + /** + * Returns the class name for the list object. + * + * @return string class name + */ + function getListClassName() { + return "lamHostList"; + } + + /** + * Returns the default attribute list for this account type. + * + * @return string attribute list + */ + function getDefaultListAttributes() { + return "#cn;#description;#uidNumber;#gidNumber"; + } + + /** + * Returns a list of attributes which have a translated description. + * This is used for the head row in the list view. + * + * @return array list of descriptions + */ + function getListAttributeDescriptions() { + return array ( + "uid" => _("Host name"), + "cn" => _("Host name"), + "rid" => _("RID (Windows UID)"), + "description" => _("Host description"), + "uidnumber" => _("UID number"), + "gidnumber" => _("GID number"), + 'location' => _('Location') + ); + } + + /** + * Returns the the title text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarTitle($container) { + // get attributes + $attributes = null; + if ($container->getAccountModule('account') != null) { + $attributes = $container->getAccountModule('account')->getAttributes(); + } + elseif ($container->getAccountModule('device') != null) { + $attributes = $container->getAccountModule('device')->getAttributes(); + } + elseif ($container->getAccountModule('windowsHost') != null) { + $attributes = $container->getAccountModule('windowsHost')->getAttributes(); + } + // check if a user name is set + if (isset($attributes['uid'][0])) { + return htmlspecialchars($attributes['uid'][0]); + } + // check if a common name is set + if (isset($attributes['cn'][0])) { + return htmlspecialchars($attributes['cn'][0]); + } + if ($container->isNewAccount) { + return _("New host"); + } + // fall back to default + return parent::getTitleBarTitle($container); + } + + /** + * Returns the the title text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarSubtitle($container) { + // get attributes + $attributes = null; + if ($container->getAccountModule('account') != null) { + $attributes = $container->getAccountModule('account')->getAttributes(); + } + elseif ($container->getAccountModule('device') != null) { + $attributes = $container->getAccountModule('device')->getAttributes(); + } + elseif ($container->getAccountModule('windowsHost') != null) { + $attributes = $container->getAccountModule('windowsHost')->getAttributes(); + } + $sambaAttributes = null; + if ($container->getAccountModule('sambaSamAccount') != null) { + $sambaAttributes = $container->getAccountModule('sambaSamAccount')->getAttributes(); + } + // check if a display name is set + if (($sambaAttributes != null) && isset($sambaAttributes['displayName'][0]) && ($sambaAttributes['displayName'][0] != '')) { + return htmlspecialchars($sambaAttributes['displayName'][0]); + } + // check if a serial number is set + if (($attributes != null) && isset($attributes['serialNumber'][0]) && ($attributes['serialNumber'][0] != '')) { + return htmlspecialchars($attributes['serialNumber'][0]); + } + // check if a description is set + if (($attributes != null) && isset($attributes['description'][0])) { + return htmlspecialchars($attributes['description'][0]); + } + // fall back to default + return parent::getTitleBarSubtitle($container); + } + +} + + +/** + * Generates the list view. + * + * @package lists + * @author Roland Gruber + * + */ +class lamHostList extends lamList { + + /** + * Constructor + * + * @param string $type account type + * @return lamList list object + */ + function __construct($type) { + parent::__construct($type); + $this->labels = array( + 'nav' => _("Host count: %s"), + 'error_noneFound' => _("No hosts found!"), + 'newEntry' => _("New host"), + 'deleteEntry' => _("Delete selected hosts")); + } + +} + + +?> \ No newline at end of file diff --git a/lam/lib/types/kolabSharedFolderType.inc b/lam/lib/types/kolabSharedFolderType.inc new file mode 100644 index 00000000..c8774e08 --- /dev/null +++ b/lam/lib/types/kolabSharedFolderType.inc @@ -0,0 +1,150 @@ +LABEL_CREATE_ANOTHER_ACCOUNT = _('Create another shared folder'); + $this->LABEL_BACK_TO_ACCOUNT_LIST = _('Back to shared folder list'); + } + + /** + * Returns the alias name of this account type. + * + * @return string alias name + */ + function getAlias() { + return _("Kolab shared folders"); + } + + /** + * Returns the description of this account type. + * + * @return string description + */ + function getDescription() { + return _("Kolab shared folders (e.g. mail folders)"); + } + + /** + * Returns the class name for the list object. + * + * @return string class name + */ + function getListClassName() { + return "kolabSharedFolderTypeList"; + } + + /** + * Returns the default attribute list for this account type. + * + * @return string attribute list + */ + function getDefaultListAttributes() { + return "#cn;#kolabDelegate;#alias"; + } + + /** + * Returns a list of attributes which have a translated description. + * This is used for the head row in the list view. + * + * @return array list of descriptions + */ + function getListAttributeDescriptions() { + return array ( + "kolabDelegate" => _('Delegates'), + 'alias' => _('Email aliases'), + ); + } + + /** + * Returns the the title text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarTitle($container) { + // get attributes + $attributes = array(); + if ($container->getAccountModule('kolabSharedFolder') != null) { + $attributes = $container->getAccountModule('kolabSharedFolder')->getAttributes(); + } + // check if cn is set + if (isset($attributes['cn'][0])) { + return htmlspecialchars($attributes['cn'][0]); + } + // show new label + if ($container->isNewAccount) { + return _("New shared folder"); + } + // fall back to default + return parent::getTitleBarTitle($container); + } + +} + + +/** + * Generates the list view. + * + * @package lists + * @author Roland Gruber + * + */ +class kolabSharedFolderTypeList extends lamList { + + /** + * Constructor + * + * @param string $type account type + * @return lamList list object + */ + function __construct($type) { + parent::__construct($type); + $this->labels = array( + 'nav' => _("Shared folder count: %s"), + 'error_noneFound' => _("No shared folders found!"), + 'newEntry' => _("New shared folder"), + 'deleteEntry' => _("Delete selected shared folders")); + } + +} + + +?> \ No newline at end of file diff --git a/lam/lib/types/mailAlias.inc b/lam/lib/types/mailAlias.inc new file mode 100644 index 00000000..a25a558d --- /dev/null +++ b/lam/lib/types/mailAlias.inc @@ -0,0 +1,150 @@ +LABEL_CREATE_ANOTHER_ACCOUNT = _('Create another alias'); + $this->LABEL_BACK_TO_ACCOUNT_LIST = _('Back to alias list'); + } + + /** + * Returns the alias name of this account type. + * + * @return string alias name + */ + function getAlias() { + return _("Mail aliases"); + } + + /** + * Returns the description of this account type. + * + * @return string description + */ + function getDescription() { + return _("Mailing aliases (e.g. NIS mail aliases)"); + } + + /** + * Returns the class name for the list object. + * + * @return string class name + */ + function getListClassName() { + return "lamMailAliasList"; + } + + /** + * Returns the default attribute list for this account type. + * + * @return string attribute list + */ + function getDefaultListAttributes() { + return "#cn;#rfc822MailMember"; + } + + /** + * Returns a list of attributes which have a translated description. + * This is used for the head row in the list view. + * + * @return array list of descriptions + */ + function getListAttributeDescriptions() { + return array( + "cn" => _("Alias name"), + "rfc822mailmember" => _("Recipient list") + ); + } + + /** + * Returns the the title text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarTitle($container) { + // get attributes + $attributes = null; + if ($container->getAccountModule('nisMailAlias') != null) { + $attributes = $container->getAccountModule('nisMailAlias')->getAttributes(); + } + // check if a common name is set + if (isset($attributes['cn'][0])) { + return htmlspecialchars($attributes['cn'][0]); + } + // new entry + if ($container->isNewAccount) { + return _("New alias"); + } + // fall back to default + return parent::getTitleBarTitle($container); + } + +} + + +/** + * Generates the list view. + * + * @package lists + * @author Roland Gruber + * + */ +class lamMailAliasList extends lamList { + + /** + * Constructor + * + * @param string $type account type + * @return lamList list object + */ + function __construct($type) { + parent::__construct($type); + $this->labels = array( + 'nav' => _("Alias count: %s"), + 'error_noneFound' => _("No aliases found!"), + 'newEntry' => _("New alias"), + 'deleteEntry' => _("Delete selected aliases")); + } + +} + + +?> \ No newline at end of file diff --git a/lam/lib/types/netgroup.inc b/lam/lib/types/netgroup.inc new file mode 100644 index 00000000..c560c80e --- /dev/null +++ b/lam/lib/types/netgroup.inc @@ -0,0 +1,178 @@ +LABEL_CREATE_ANOTHER_ACCOUNT = _('Create another group'); + $this->LABEL_BACK_TO_ACCOUNT_LIST = _('Back to group list'); + } + + /** + * Returns the alias name of this account type. + * + * @return string alias name + */ + function getAlias() { + return _("NIS netgroups"); + } + + /** + * Returns the description of this account type. + * + * @return string description + */ + function getDescription() { + return _("NIS netgroup entries"); + } + + /** + * Returns the class name for the list object. + * + * @return string class name + */ + function getListClassName() { + return "lamNetgroupList"; + } + + /** + * Returns the default attribute list for this account type. + * + * @return string attribute list + */ + function getDefaultListAttributes() { + return "#cn;#description;#memberNisNetgroup"; + } + + /** + * Returns a list of attributes which have a translated description. + * This is used for the head row in the list view. + * + * @return array list of descriptions + */ + function getListAttributeDescriptions() { + return array ( + "cn" => _("Group name"), + 'description' => _('Description'), + 'membernisnetgroup' => _('Subgroups'), + 'nisnetgrouptriple' => _('Members') + ); + } + + /** + * Returns the the title text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarTitle($container) { + // get attributes + $attributes = null; + if ($container->getAccountModule('nisnetgroup') != null) { + $attributes = $container->getAccountModule('nisnetgroup')->getAttributes(); + } + // check if a common name is set + if (isset($attributes['cn'][0])) { + return htmlspecialchars($attributes['cn'][0]); + } + // new entry + if ($container->isNewAccount) { + return _("New group"); + } + // fall back to default + return parent::getTitleBarTitle($container); + } + + /** + * Returns the the title text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarSubtitle($container) { + // get attributes + $attributes = null; + if ($container->getAccountModule('nisnetgroup') != null) { + $attributes = $container->getAccountModule('nisnetgroup')->getAttributes(); + } + if ($attributes == null) { + return null; + } + $subtitle = ''; + // check if an description can be shown + if (isset($attributes['description'][0])) { + $subtitle .= htmlspecialchars($attributes['description'][0]); + } + if ($subtitle == '') { + return null; + } + return $subtitle; + } + +} + + +/** + * Generates the list view. + * + * @package lists + * @author Roland Gruber + * + */ +class lamNetgroupList extends lamList { + + /** + * Constructor + * + * @param string $type account type + * @return lamList list object + */ + function __construct($type) { + parent::__construct($type); + $this->labels = array( + 'nav' => _("Group count: %s"), + 'error_noneFound' => _("No groups found!"), + 'newEntry' => _("New group"), + 'deleteEntry' => _("Delete selected groups")); + } + +} + + +?> \ No newline at end of file diff --git a/lam/lib/types/pykotaBillingCodeType.inc b/lam/lib/types/pykotaBillingCodeType.inc new file mode 100644 index 00000000..d7555c2c --- /dev/null +++ b/lam/lib/types/pykotaBillingCodeType.inc @@ -0,0 +1,172 @@ +LABEL_CREATE_ANOTHER_ACCOUNT = _('Create another billing code'); + $this->LABEL_BACK_TO_ACCOUNT_LIST = _('Back to billing code list'); + } + + /** + * Returns the alias name of this account type. + * + * @return string alias name + */ + function getAlias() { + return _("Billing codes"); + } + + /** + * Returns the description of this account type. + * + * @return string description + */ + function getDescription() { + return _("PyKota billing codes"); + } + + /** + * Returns the class name for the list object. + * + * @return string class name + */ + function getListClassName() { + return "lamPykotaBillingCodeTypeList"; + } + + /** + * Returns the default attribute list for this account type. + * + * @return string attribute list + */ + function getDefaultListAttributes() { + return "#cn;#description;#pykotaBalance;#pykotaPageCounter"; + } + + /** + * Returns a list of attributes which have a translated description. + * This is used for the head row in the list view. + * + * @return array list of descriptions + */ + function getListAttributeDescriptions() { + return array ( + "cn" => _('Billing code'), + "description" => _('Description'), + 'pykotaBalance' => _('Balance'), + 'pykotaPageCounter' => _('Page count'), + ); + } + + /** + * Returns the the title text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarTitle($container) { + // get attributes + $attributes = array(); + if ($container->getAccountModule('pykotaBillingCode') != null) { + $attributes = $container->getAccountModule('pykotaBillingCode')->getAttributes(); + } + // check if pykotaBillingCode is set + if (isset($attributes['pykotaBillingCode'][0])) { + return htmlspecialchars($attributes['pykotaBillingCode'][0]); + } + // show new label + if ($container->isNewAccount) { + return _("New billing code"); + } + // fall back to default + return parent::getTitleBarTitle($container); + } + + /** + * Returns the the subtitle text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarSubtitle($container) { + // get attributes + $attributes = array(); + if ($container->getAccountModule('pykotaBillingCode') != null) { + $attributes = $container->getAccountModule('pykotaBillingCode')->getAttributes(); + } + // check if description is set + if (isset($attributes['description'][0])) { + return htmlspecialchars($attributes['description'][0]); + } + // fall back to default + return parent::getTitleBarSubtitle($container); + } + +} + + +/** + * Generates the list view. + * + * @package lists + * @author Roland Gruber + * + */ +class lamPykotaBillingCodeTypeList extends lamList { + + /** + * Constructor + * + * @param string $type account type + * @return lamList list object + */ + function __construct($type) { + parent::__construct($type); + $this->labels = array( + 'nav' => _("Billing code count: %s"), + 'error_noneFound' => _("No billing codes found!"), + 'newEntry' => _("New billing code"), + 'deleteEntry' => _("Delete selected billing codes")); + } + +} + + +?> \ No newline at end of file diff --git a/lam/lib/types/pykotaPrinterType.inc b/lam/lib/types/pykotaPrinterType.inc new file mode 100644 index 00000000..becee5f9 --- /dev/null +++ b/lam/lib/types/pykotaPrinterType.inc @@ -0,0 +1,173 @@ +LABEL_CREATE_ANOTHER_ACCOUNT = _('Create another printer'); + $this->LABEL_BACK_TO_ACCOUNT_LIST = _('Back to printer list'); + } + + /** + * Returns the alias name of this account type. + * + * @return string alias name + */ + function getAlias() { + return _("Printers"); + } + + /** + * Returns the description of this account type. + * + * @return string description + */ + function getDescription() { + return _("PyKota printers"); + } + + /** + * Returns the class name for the list object. + * + * @return string class name + */ + function getListClassName() { + return "lamPykotaPrinterTypeList"; + } + + /** + * Returns the default attribute list for this account type. + * + * @return string attribute list + */ + function getDefaultListAttributes() { + return "#cn;#description;#pykotaPricePerPage;#pykotaPricePerJob;#pykotaMaxJobSize"; + } + + /** + * Returns a list of attributes which have a translated description. + * This is used for the head row in the list view. + * + * @return array list of descriptions + */ + function getListAttributeDescriptions() { + return array ( + "cn" => _('Printer name'), + "description" => _('Description'), + 'pykotaPricePerPage' => _('Price per page'), + 'pykotaPricePerJob' => _('Price per job'), + 'pykotaMaxJobSize' => _('Maximum job size'), + ); + } + + /** + * Returns the the title text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarTitle($container) { + // get attributes + $attributes = array(); + if ($container->getAccountModule('pykotaPrinter') != null) { + $attributes = $container->getAccountModule('pykotaPrinter')->getAttributes(); + } + // check if cn is set + if (isset($attributes['cn'][0])) { + return htmlspecialchars($attributes['cn'][0]); + } + // show new publication label + if ($container->isNewAccount) { + return _("New printer"); + } + // fall back to default + return parent::getTitleBarTitle($container); + } + + /** + * Returns the the subtitle text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarSubtitle($container) { + // get attributes + $attributes = array(); + if ($container->getAccountModule('pykotaPrinter') != null) { + $attributes = $container->getAccountModule('pykotaPrinter')->getAttributes(); + } + // check if description is set + if (isset($attributes['description'][0])) { + return htmlspecialchars($attributes['description'][0]); + } + // fall back to default + return parent::getTitleBarSubtitle($container); + } + +} + + +/** + * Generates the list view. + * + * @package lists + * @author Roland Gruber + * + */ +class lamPykotaPrinterTypeList extends lamList { + + /** + * Constructor + * + * @param string $type account type + * @return lamList list object + */ + function __construct($type) { + parent::__construct($type); + $this->labels = array( + 'nav' => _("Printer count: %s"), + 'error_noneFound' => _("No printers found!"), + 'newEntry' => _("New printer"), + 'deleteEntry' => _("Delete selected printers")); + } + +} + + +?> \ No newline at end of file diff --git a/lam/lib/types/smbDomain.inc b/lam/lib/types/smbDomain.inc new file mode 100644 index 00000000..7e8a8174 --- /dev/null +++ b/lam/lib/types/smbDomain.inc @@ -0,0 +1,175 @@ +LABEL_CREATE_ANOTHER_ACCOUNT = _('Create another domain'); + $this->LABEL_BACK_TO_ACCOUNT_LIST = _('Back to domain list'); + } + + /** + * Returns the alias name of this account type. + * + * @return string alias name + */ + function getAlias() { + return _("Samba domains"); + } + + /** + * Returns the description of this account type. + * + * @return string description + */ + function getDescription() { + return _("Samba 3 domain entries"); + } + + /** + * Returns the class name for the list object. + * + * @return string class name + */ + function getListClassName() { + return "lamSmbDomainList"; + } + + /** + * Returns the default attribute list for this account type. + * + * @return string attribute list + */ + function getDefaultListAttributes() { + return "#sambaDomainName;#sambaSID"; + } + + /** + * Returns a list of attributes which have a translated description. + * This is used for the head row in the list view. + * + * @return array list of descriptions + */ + function getListAttributeDescriptions() { + return array( + "sambasid" => _("Domain SID"), + "sambadomainname" => _("Domain name") + ); + } + + /** + * Returns the the title text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarTitle($container) { + // get attributes + $attributes = null; + if ($container->getAccountModule('sambaDomain') != null) { + $attributes = $container->getAccountModule('sambaDomain')->getAttributes(); + } + // check if a domain name is set + if (isset($attributes['sambaDomainName'][0])) { + return htmlspecialchars($attributes['sambaDomainName'][0]); + } + // new entry + if ($container->isNewAccount) { + return _("New domain"); + } + // fall back to default + return parent::getTitleBarTitle($container); + } + + /** + * Returns the the title text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarSubtitle($container) { + // get attributes + $attributes = null; + if ($container->getAccountModule('sambaDomain') != null) { + $attributes = $container->getAccountModule('sambaDomain')->getAttributes(); + } + if ($attributes == null) { + return null; + } + $subtitle = ''; + // check if a SID can be shown + if (isset($attributes['sambaSID'][0])) { + $subtitle .= htmlspecialchars($attributes['sambaSID'][0]); + } + if ($subtitle == '') { + return null; + } + return $subtitle; + } + +} + + +/** + * Generates the list view. + * + * @package lists + * @author Roland Gruber + * + */ +class lamSmbDomainList extends lamList { + + /** + * Constructor + * + * @param string $type account type + * @return lamList list object + */ + function __construct($type) { + parent::__construct($type); + $this->labels = array( + 'nav' => _("Domain count: %s"), + 'error_noneFound' => _("No domains found!"), + 'newEntry' => _("New domain"), + 'deleteEntry' => _("Delete selected domains")); + } + +} + +?> \ No newline at end of file diff --git a/lam/lib/types/user.inc b/lam/lib/types/user.inc new file mode 100644 index 00000000..771d9973 --- /dev/null +++ b/lam/lib/types/user.inc @@ -0,0 +1,937 @@ +LABEL_CREATE_ANOTHER_ACCOUNT = _('Create another user'); + $this->LABEL_BACK_TO_ACCOUNT_LIST = _('Back to user list'); + } + + /** + * Returns the alias name of this account type. + * + * @return string alias name + */ + function getAlias() { + return _("Users"); + } + + /** + * Returns the description of this account type. + * + * @return string description + */ + function getDescription() { + return _("User accounts (e.g. Unix, Samba and Kolab)"); + } + + /** + * Returns the class name for the list object. + * + * @return string class name + */ + function getListClassName() { + return "lamUserList"; + } + + /** + * Returns the default attribute list for this account type. + * + * @return string attribute list + */ + function getDefaultListAttributes() { + return "#uid;#givenName;#sn;#uidNumber;#gidNumber"; + } + + /** + * Returns a list of attributes which have a translated description. + * This is used for the head row in the list view. + * + * @return array list of descriptions + */ + function getListAttributeDescriptions() { + return array ( + "uid" => _("User name"), + "uidnumber" => _("UID number"), + "gidnumber" => _("GID number"), + "cn" => _("Common name"), + "host" => _("Allowed hosts"), + "givenname" => _("First name"), + "sn" => _("Last name"), + "homedirectory" => _("Home directory"), + "loginshell" => _("Login shell"), + "mail" => _("Email"), + "gecos" => _("Description"), + "jpegphoto" => _('Photo'), + 'shadowexpire' => _('Password expiration'), + 'sambakickofftime' => _('Account expiration date') + ); + } + + /** + * Returns the the title text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarTitle($container) { + // get attributes + $personalAttributes = null; + if ($container->getAccountModule('inetOrgPerson') != null) { + $personalAttributes = $container->getAccountModule('inetOrgPerson')->getAttributes(); + } + elseif ($container->getAccountModule('windowsUser') != null) { + $personalAttributes = $container->getAccountModule('windowsUser')->getAttributes(); + } + $accountAttributes = null; + if ($container->getAccountModule('account') != null) { + $accountAttributes = $container->getAccountModule('account')->getAttributes(); + } + $sambaAttributes = null; + if ($container->getAccountModule('sambaSamAccount') != null) { + $sambaAttributes = $container->getAccountModule('sambaSamAccount')->getAttributes(); + } + $unixAttributes = null; + if ($container->getAccountModule('posixAccount') != null) { + $unixAttributes = $container->getAccountModule('posixAccount')->getAttributes(); + } + $mitKerberosAttributes = null; + if ($container->getAccountModule('mitKerberosStructural') != null) { + $mitKerberosAttributes = $container->getAccountModule('mitKerberosStructural')->getAttributes(); + } + elseif ($container->getAccountModule('mitKerberos') != null) { + $mitKerberosAttributes = $container->getAccountModule('mitKerberos')->getAttributes(); + } + // check if first and last name can be shown + if (($personalAttributes != null) && isset($personalAttributes['sn'][0]) && !empty($personalAttributes['sn'][0]) + && isset($personalAttributes['givenName'][0]) && !empty($personalAttributes['givenName'][0])) { + return htmlspecialchars($personalAttributes['givenName'][0] . ' ' . $personalAttributes['sn'][0]); + } + // check if a display name is set + if (($sambaAttributes != null) && isset($sambaAttributes['displayName'][0]) && !empty($sambaAttributes['displayName'][0])) { + return htmlspecialchars($sambaAttributes['displayName'][0]); + } + // check if a common name is set + if (($personalAttributes != null) && isset($personalAttributes['cn'][0]) && !empty($personalAttributes['cn'][0])) { + return htmlspecialchars($personalAttributes['cn'][0]); + } + if (($unixAttributes != null) && isset($unixAttributes['cn'][0]) && !empty($unixAttributes['cn'][0])) { + return htmlspecialchars($unixAttributes['cn'][0]); + } + // check if a user name is set + if (($unixAttributes != null) && isset($unixAttributes['uid'][0]) && !empty($unixAttributes['uid'][0])) { + return htmlspecialchars($unixAttributes['uid'][0]); + } + if (($personalAttributes != null) && isset($personalAttributes['uid'][0]) && !empty($personalAttributes['uid'][0])) { + return htmlspecialchars($personalAttributes['uid'][0]); + } + if (($accountAttributes != null) && isset($accountAttributes['uid'][0]) && !empty($accountAttributes['uid'][0])) { + return htmlspecialchars($accountAttributes['uid'][0]); + } + if (($mitKerberosAttributes != null) && isset($mitKerberosAttributes['krbPrincipalName'][0]) && !empty($mitKerberosAttributes['krbPrincipalName'][0])) { + return htmlspecialchars($mitKerberosAttributes['krbPrincipalName'][0]); + } + if ($container->isNewAccount) { + return _("New user"); + } + // fall back to default + return parent::getTitleBarTitle($container); + } + + /** + * Returns the the title text for the title bar on the new/edit page. + * + * @param accountContainer $container account container + * @return String title text + */ + public function getTitleBarSubtitle($container) { + $personalAttributes = null; + if ($container->getAccountModule('inetOrgPerson') != null) { + $personalAttributes = $container->getAccountModule('inetOrgPerson')->getAttributes(); + } + elseif ($container->getAccountModule('windowsUser') != null) { + $personalAttributes = $container->getAccountModule('windowsUser')->getAttributes(); + } + if ($personalAttributes == null) { + return $this->buildAccountStatusIcon($container); + } + $subtitle = $this->buildAccountStatusIcon($container); + $spacer = '        '; + // check if an email address can be shown + if (isset($personalAttributes['mail'][0]) && !empty($personalAttributes['mail'][0])) { + $subtitle .= '' . htmlspecialchars($personalAttributes['mail'][0]) . '' . $spacer; + } + // check if an telephone number can be shown + if (isset($personalAttributes['telephoneNumber'][0]) && !empty($personalAttributes['telephoneNumber'][0])) { + $subtitle .= _('Telephone number') . ' ' . htmlspecialchars($personalAttributes['telephoneNumber'][0]) . $spacer; + } + // check if an mobile number can be shown + if (isset($personalAttributes['mobile'][0]) && !empty($personalAttributes['mobile'][0])) { + $subtitle .= _('Mobile number') . ' ' . htmlspecialchars($personalAttributes['mobile'][0]); + } + if ($subtitle == '') { + return null; + } + return $subtitle; + } + + /** + * Builds the HTML code for the icon that shows the account status (locked/unlocked). + * + * @param accountContainer $container account container + * @return String HTML code for icon + */ + private function buildAccountStatusIcon($container) { + // check if there are account parts that can be locked + $unixAvailable = ($container->getAccountModule('posixAccount') != null) && $container->getAccountModule('posixAccount')->isLockable(); + $sambaAvailable = (($container->getAccountModule('sambaSamAccount') != null) && $container->getAccountModule('sambaSamAccount')->isExtensionEnabled()); + $ppolicyAvailable = ($container->getAccountModule('ppolicyUser') != null); + $windowsAvailable = ($container->getAccountModule('windowsUser') != null); + if (!$unixAvailable && !$sambaAvailable && !$ppolicyAvailable && !$windowsAvailable) { + return ''; + } + // get locking status + $unixLocked = false; + if ($unixAvailable && $container->getAccountModule('posixAccount')->isLocked()) { + $unixLocked = true; + } + $sambaLocked = false; + if ($sambaAvailable && $container->getAccountModule('sambaSamAccount')->isDeactivated()) { + $sambaLocked = true; + } + $ppolicyLocked = false; + if ($ppolicyAvailable && $container->getAccountModule('ppolicyUser')->isLocked()) { + $ppolicyLocked = true; + } + $windowsLocked = false; + if ($windowsAvailable && windowsUser::isDeactivated($container->getAccountModule('windowsUser')->getAttributes())) { + $windowsLocked = true; + } + $partiallyLocked = $unixLocked || $sambaLocked || $ppolicyLocked || $windowsLocked; + $fullyLocked = ($unixAvailable || $sambaAvailable || $ppolicyAvailable || $windowsAvailable) + && (!$unixAvailable || $unixLocked) + && (!$sambaAvailable || $sambaLocked) + && (!$ppolicyAvailable || $ppolicyLocked) + && (!$windowsAvailable || $windowsLocked); + // build tooltip + $icon = 'unlocked.png'; + if ($fullyLocked) { + $icon = 'lock.png'; + } + elseif ($partiallyLocked) { + $icon = 'partiallyLocked.png'; + } + $statusTable = ''; + // Unix + if ($unixAvailable) { + $unixIcon = 'unlocked.png'; + if ($unixLocked) { + $unixIcon = 'lock.png'; + } + $statusTable .= ''; + } + // Samba + if ($sambaAvailable) { + $sambaIcon = 'unlocked.png'; + if ($sambaLocked) { + $sambaIcon = 'lock.png'; + } + $statusTable .= ''; + } + // PPolicy + if ($ppolicyAvailable) { + $ppolicyIcon = 'unlocked.png'; + if ($ppolicyLocked) { + $ppolicyIcon = 'lock.png'; + } + $statusTable .= ''; + } + // Windows + if ($windowsAvailable) { + $windowsIcon = 'unlocked.png'; + if ($windowsLocked) { + $windowsIcon = 'lock.png'; + } + $statusTable .= ''; + } + $statusTable .= '
    ' . _('Unix') . '  
    ' . _('Samba 3') . '  
    ' . _('Password policy') . '  
    ' . _('Windows') . '  
    '; + $tipContent = $statusTable; + if (checkIfWriteAccessIsAllowed('user')) { + $tipContent .= '
    "hint" '; + $tipContent .= _('Please click to lock/unlock this account.'); + } + $dialogDiv = $this->buildAccountStatusDialogDiv($unixAvailable, $unixLocked, $sambaAvailable, $sambaLocked, $ppolicyAvailable, $ppolicyLocked, $windowsAvailable, $windowsLocked); + $onClick = ''; + if (checkIfWriteAccessIsAllowed('user')) { + $onClick = 'onclick="showConfirmationDialog(\'' . _('Change account status') . '\', \'' . _('Ok') . '\', \'' . _('Cancel') . '\', \'lam_accountStatusDialog\', \'inputForm\', \'lam_accountStatusResult\');"'; + } + return $dialogDiv . 'status   '; + } + + /** + * Builds the dialog to (un)lock parts of an account. + * + * @param boolean $unixAvailable Unix part is active + * @param boolean $unixLocked Unix part is locked + * @param boolean $sambaAvailable Samba part is active + * @param boolean $sambaLocked Samba part is locked + * @param boolean $ppolicyAvailable PPolicy part is active + * @param boolean $ppolicyLocked PPolicy part is locked + * @param boolean $windowsAvailable Windows part is active + * @param boolean $windowsLocked Windows part is locked + */ + private function buildAccountStatusDialogDiv($unixAvailable, $unixLocked, $sambaAvailable, $sambaLocked, $ppolicyAvailable, $ppolicyLocked, $windowsAvailable, $windowsLocked) { + $partiallyLocked = $unixLocked || $sambaLocked || $ppolicyLocked || $windowsLocked; + $fullyLocked = ($unixAvailable || $sambaAvailable || $ppolicyAvailable || $windowsAvailable) + && (!$unixAvailable || $unixLocked) + && (!$sambaAvailable || $sambaLocked) + && (!$ppolicyAvailable || $ppolicyLocked) + && (!$windowsAvailable || $windowsLocked); + + $container = new htmlTable(); + + // show radio buttons for lock/unlock + $radioDisabled = true; + $selectedRadio = 'lock'; + $onchange = ''; + if ($partiallyLocked && !$fullyLocked) { + $radioDisabled = false; + $onchange = 'if (jQuery(\'#lam_accountStatusAction0:checked\').val()) {' . + 'jQuery(\'#lam_accountStatusDialogLockDiv\').removeClass(\'hidden\');' . + 'jQuery(\'#lam_accountStatusDialogUnlockDiv\').addClass(\'hidden\');' . + '}' . + 'else {' . + 'jQuery(\'#lam_accountStatusDialogLockDiv\').addClass(\'hidden\');' . + 'jQuery(\'#lam_accountStatusDialogUnlockDiv\').removeClass(\'hidden\');' . + '};'; + } + if ($fullyLocked) { + $selectedRadio = 'unlock'; + } + if (!$radioDisabled) { + $radio = new htmlRadio('lam_accountStatusAction', array(_('Lock') => 'lock', _('Unlock') => 'unlock'), $selectedRadio); + $radio->setOnchangeEvent($onchange); + $container->addElement($radio, true); + } + else { + $radio = new htmlRadio('lam_accountStatusActionDisabled', array(_('Lock') => 'lock', _('Unlock') => 'unlock'), $selectedRadio); + $radio->setIsEnabled(false); + $container->addElement($radio, true); + $container->addElement(new htmlHiddenInput('lam_accountStatusAction', $selectedRadio), true); + } + + $container->addElement(new htmlHiddenInput('lam_accountStatusResult', 'cancel'), true); + + // locking part + if (!$fullyLocked) { + $lockContent = new htmlTable(); + + if ($unixAvailable && !$unixLocked) { + $lockContent->addElement(new htmlImage('../../graphics/tux.png')); + $lockContent->addElement(new htmlTableExtendedInputCheckbox('lam_accountStatusLockUnix', true, _('Unix'), null, false), true); + } + if ($sambaAvailable && !$sambaLocked) { + $lockContent->addElement(new htmlImage('../../graphics/samba.png')); + $lockContent->addElement(new htmlTableExtendedInputCheckbox('lam_accountStatusLockSamba', true, _('Samba 3'), null, false), true); + } + if ($ppolicyAvailable && !$ppolicyLocked) { + $lockContent->addElement(new htmlImage('../../graphics/security.png')); + $lockContent->addElement(new htmlTableExtendedInputCheckbox('lam_accountStatusLockPPolicy', true, _('PPolicy'), null, false), true); + } + if ($windowsAvailable && !$windowsLocked) { + $lockContent->addElement(new htmlImage('../../graphics/samba.png')); + $lockContent->addElement(new htmlTableExtendedInputCheckbox('lam_accountStatusLockWindows', true, _('Windows'), null, false), true); + } + if ($unixAvailable) { + $lockContent->addElement(new htmlImage('../../graphics/groupBig.png')); + $lockContent->addElement(new htmlTableExtendedInputCheckbox('lam_accountStatusRemoveUnixGroups', true, _('Remove from all Unix groups'), null, false), true); + } + if ($unixAvailable && posixAccount::areGroupOfNamesActive()) { // check unixAvailable because Unix module removes group memberships + $lockContent->addElement(new htmlImage('../../graphics/groupBig.png')); + $lockContent->addElement(new htmlTableExtendedInputCheckbox('lam_accountStatusRemoveGONGroups', true, _('Remove from all group of (unique) names'), null, false), true); + } + + $lockDiv = new htmlDiv('lam_accountStatusDialogLockDiv', $lockContent); + $container->addElement($lockDiv, true); + } + // unlocking part + if ($partiallyLocked) { + $unlockContent = new htmlTable(); + + if ($unixAvailable && $unixLocked) { + $unlockContent->addElement(new htmlImage('../../graphics/tux.png')); + $unlockContent->addElement(new htmlTableExtendedInputCheckbox('lam_accountStatusUnlockUnix', true, _('Unix'), null, false), true); + } + if ($sambaAvailable && $sambaLocked) { + $unlockContent->addElement(new htmlImage('../../graphics/samba.png')); + $unlockContent->addElement(new htmlTableExtendedInputCheckbox('lam_accountStatusUnlockSamba', true, _('Samba 3'), null, false), true); + } + if ($ppolicyAvailable && $ppolicyLocked) { + $unlockContent->addElement(new htmlImage('../../graphics/security.png')); + $unlockContent->addElement(new htmlTableExtendedInputCheckbox('lam_accountStatusUnlockPPolicy', true, _('PPolicy'), null, false), true); + } + if ($windowsAvailable && $windowsLocked) { + $unlockContent->addElement(new htmlImage('../../graphics/samba.png')); + $unlockContent->addElement(new htmlTableExtendedInputCheckbox('lam_accountStatusUnlockWindows', true, _('Windows'), null, false), true); + } + + $unlockDiv = new htmlDiv('lam_accountStatusDialogUnlockDiv', $unlockContent); + if (!$fullyLocked) { + $unlockDiv->setCSSClasses(array('hidden')); + } + $container->addElement($unlockDiv, true); + } + + $div = new htmlDiv('lam_accountStatusDialog', $container); + $div->setCSSClasses(array('hidden')); + + $tabindex = 999; + ob_start(); + parseHtml(null, $div, array(), false, $tabindex, 'user'); + $output = ob_get_contents(); + ob_clean(); + + return $output; + } + + /** + * This function is called after the edit page is processed and before the page content is generated. + * This can be used to run custom handlers after each page processing. + * + * @param accountContainer $container account container + */ + public function runEditPagePostAction(&$container) { + // check if account status should be changed + if (isset($_POST['lam_accountStatusResult']) && ($_POST['lam_accountStatusResult'] == 'ok')) { + // lock account + if ($_POST['lam_accountStatusAction'] == 'lock') { + // Unix + if (isset($_POST['lam_accountStatusLockUnix']) && ($_POST['lam_accountStatusLockUnix'] == 'on')) { + $container->getAccountModule('posixAccount')->lock(); + } + // Samba + if (isset($_POST['lam_accountStatusLockSamba']) && ($_POST['lam_accountStatusLockSamba'] == 'on')) { + $container->getAccountModule('sambaSamAccount')->deactivate(); + } + // PPolicy + if (isset($_POST['lam_accountStatusLockPPolicy']) && ($_POST['lam_accountStatusLockPPolicy'] == 'on')) { + $container->getAccountModule('ppolicyUser')->lock(); + } + // Windows + if (isset($_POST['lam_accountStatusLockWindows']) && ($_POST['lam_accountStatusLockWindows'] == 'on')) { + $container->getAccountModule('windowsUser')->setIsDeactivated(true); + } + // remove Unix groups + if (isset($_POST['lam_accountStatusRemoveUnixGroups']) && ($_POST['lam_accountStatusRemoveUnixGroups'] == 'on')) { + $container->getAccountModule('posixAccount')->removeFromUnixGroups(); + } + // remove group of names memberships + if (isset($_POST['lam_accountStatusRemoveGONGroups']) && ($_POST['lam_accountStatusRemoveGONGroups'] == 'on')) { + $container->getAccountModule('posixAccount')->removeFromGONGroups(); + } + } + // unlock account + elseif ($_POST['lam_accountStatusAction'] == 'unlock') { + // Unix + if (isset($_POST['lam_accountStatusUnlockUnix']) && ($_POST['lam_accountStatusUnlockUnix'] == 'on')) { + $container->getAccountModule('posixAccount')->unlock(); + } + // Samba + if (isset($_POST['lam_accountStatusUnlockSamba']) && ($_POST['lam_accountStatusUnlockSamba'] == 'on')) { + $container->getAccountModule('sambaSamAccount')->activate(); + } + // PPolicy + if (isset($_POST['lam_accountStatusUnlockPPolicy']) && ($_POST['lam_accountStatusUnlockPPolicy'] == 'on')) { + $container->getAccountModule('ppolicyUser')->unlock(); + } + // Windows + if (isset($_POST['lam_accountStatusUnlockWindows']) && ($_POST['lam_accountStatusUnlockWindows'] == 'on')) { + $container->getAccountModule('windowsUser')->setIsDeactivated(false); + } + } + } + } + +} + +/** + * Generates the list view. + * + * @package lists + * @author Roland Gruber + * + */ +class lamUserList extends lamList { + + /** Controls if GID number is translated to group name */ + private $trans_primary = false; + + /** Controls if the account status is shown */ + private $showAccountStatus = false; + + /** translates GID to group name */ + private $trans_primary_hash = array(); + + /** ID for config option to translate primary group GIDs to group names */ + const TRANS_PRIMARY_OPTION_NAME = "LU_TP"; + /** ID for config option to show account status */ + const ACCOUNT_STATUS_OPTION_NAME = "LU_AS"; + + /** virtual attribute name for account status column */ + const ATTR_ACCOUNT_STATUS = 'lam_virtual_account_status'; + + /** + * Constructor + * + * @param string $type account type + * @return lamList list object + */ + public function __construct($type) { + parent::__construct($type); + $this->labels = array( + 'nav' => _("User count: %s"), + 'error_noneFound' => _("No users found!"), + 'newEntry' => _("New user"), + 'deleteEntry' => _("Delete selected users")); + } + + /** + * Sets some internal parameters. + */ + protected function listGetParams() { + parent::listGetParams(); + // generate hash table for group translation + if ($this->trans_primary == "on" && !$this->refresh && (sizeof($this->trans_primary_hash) == 0)) { + $this->refreshPrimaryGroupTranslation(); + } + } + + /** + * Rereads the entries from LDAP. + */ + protected function listRefreshData() { + parent::listRefreshData(); + if ($this->trans_primary == "on") { + $this->refreshPrimaryGroupTranslation(); + } + if ($this->showAccountStatus) { + $this->injectAccountStatusAttribute(); + } + } + + /** + * Refreshes the GID to group name cache. + */ + protected function refreshPrimaryGroupTranslation() { + $this->trans_primary_hash = array(); + $grp_suffix = $_SESSION['config']->get_Suffix('group'); + $filter = "objectClass=posixGroup"; + $attrs = array("cn", "gidNumber"); + $entries = searchLDAPByAttribute(null, null, 'posixGroup', $attrs, array('group')); + $entryCount = sizeof($entries); + for ($i = 0; $i < $entryCount; $i++) { + $this->trans_primary_hash[$entries[$i]['gidnumber'][0]] = $entries[$i]['cn'][0]; + } + } + + /** + * Prints the content of a cell in the account list for a given LDAP entry and attribute. + * + * @param array $entry LDAP attributes + * @param string $attribute attribute name + */ + protected function listPrintTableCellContent(&$entry, &$attribute) { + // check if there is something to display at all + if (($attribute != self::ATTR_ACCOUNT_STATUS) && (!isset($entry[$attribute]) || !is_array($entry[$attribute]) || (sizeof($entry[$attribute]) < 1))) { + parent::listPrintTableCellContent($entry, $attribute); + return; + } + // translate GID to group name + if (($attribute == "gidnumber") && ($this->trans_primary == "on")) { + if (isset($this->trans_primary_hash[$entry[$attribute][0]])) { + echo $this->trans_primary_hash[$entry[$attribute][0]]; + } + else { + parent::listPrintTableCellContent($entry, $attribute); + } + } + // show user photos + elseif ($attribute == "jpegphoto") { + if (sizeof($entry[$attribute][0]) < 100) { + // looks like we have read broken binary data, reread photo + $result = @ldap_read($_SESSION['ldap']->server(), escapeDN($entry['dn']), $attribute . "=*", array($attribute), 0, 0, 0, LDAP_DEREF_NEVER); + if ($result) { + $tempEntry = @ldap_first_entry($_SESSION['ldap']->server(), $result); + if ($tempEntry) { + $binData = ldap_get_values_len($_SESSION['ldap']->server(), $tempEntry, $attribute); + $entry[$attribute] = $binData; + } + } + } + $imgNumber = getRandomNumber(); + $jpeg_filename = 'jpg' . $imgNumber . '.jpg'; + $outjpeg = @fopen(dirname(__FILE__) . '/../../tmp/' . $jpeg_filename, "wb"); + fwrite($outjpeg, $entry[$attribute][0]); + fclose ($outjpeg); + $photoFile = '../../tmp/' . $jpeg_filename; + $imgSize = getimagesize($photoFile); + $minSize = 64; + if ($imgSize[0] < 64) { + $minSize = $imgSize[0]; + } + $imgTitle = _('Click to switch between thumbnail and original size.'); + echo "\"""; + echo ''; + } + elseif (($attribute == 'mail') || ($attribute == 'rfc822Mailbox')) { + if (isset($entry[$attribute][0]) && ($entry[$attribute][0] != '')) { + for ($i = 0; $i < sizeof($entry[$attribute]); $i++) { + if ($i > 0) { + echo ", "; + } + echo "" . $entry[$attribute][$i] . "\n"; + } + } + } + // expire dates + elseif ($attribute == 'shadowexpire') { + if (isset($entry[$attribute][0]) && ($entry[$attribute][0] != '')) { + echo date('d. m. Y', $entry[$attribute][0] * 24 * 3600); + } + } + elseif ($attribute == 'sambakickofftime') { + if (isset($entry[$attribute][0]) && ($entry[$attribute][0] != '')) { + if ($entry[$attribute][0] > 2147483648) { + echo "∞"; + } + else { + $date = getdate($entry[$attribute][0]); + echo $date['mday'] . "." . $date['mon'] . "." . $date['year']; + } + } + } + // account status + elseif ($attribute == self::ATTR_ACCOUNT_STATUS) { + $this->printAccountStatus($entry); + } + // print all other attributes + else { + parent::listPrintTableCellContent($entry, $attribute); + } + } + + /** + * Returns a list of lamListTool objects to display next to the edit/delete buttons. + * + * @return lamListTool[] tools + */ + protected function getAdditionalTools() { + if (isLAMProVersion() && checkIfPasswordChangeIsAllowed() && checkIfWriteAccessIsAllowed('user')) { + $passwordTool = new lamListTool(_('Change password'), 'key.png', 'changePassword.php'); + return array($passwordTool); + } + return array(); + } + + /** + * Returns a list of possible configuration options. + * + * @return array list of lamListOption objects + */ + protected function listGetAllConfigOptions() { + $options = parent::listGetAllConfigOptions(); + $options[] = new lamBooleanListOption(_('Translate GID number to group name'), self::TRANS_PRIMARY_OPTION_NAME); + $options[] = new lamBooleanListOption(_('Show account status'), self::ACCOUNT_STATUS_OPTION_NAME); + return $options; + } + + /** + * Called when the configuration options changed. + */ + protected function listConfigurationChanged() { + parent::listConfigurationChanged(); + $tpOption = $this->listGetConfigOptionByID(self::TRANS_PRIMARY_OPTION_NAME); + $this->trans_primary = $tpOption->isSelected(); + $asOption = $this->listGetConfigOptionByID(self::ACCOUNT_STATUS_OPTION_NAME); + // if account status was activated, reload LDAP data + $asOptionOldValue = $this->showAccountStatus; + $this->showAccountStatus = $asOption->isSelected(); + if ($this->showAccountStatus && !$asOptionOldValue) { + $this->forceRefresh(); + } + } + + /** + * Returns an hash array containing with all attributes to be shown and their descriptions. + *
    Format: array(attribute => description) + *
    + *
    The user list may display an additional account status column + * + * @return array attribute list + */ + protected function listGetAttributeDescriptionList() { + $list = parent::listGetAttributeDescriptionList(); + if ($this->showAccountStatus) { + $list[self::ATTR_ACCOUNT_STATUS] = _('Account status'); + } + return $list; + } + + /** + * Returns if the given attribute can be filtered. + * If filtering is not possible then no filter box will be displayed. + *
    + *
    The user list allows no filtering for account status. + * + * @param String $attr attribute name + * @return boolean filtering possible + */ + protected function canBeFiltered($attr) { + if ($attr == self::ATTR_ACCOUNT_STATUS) { + return false; + } + elseif (strtolower($attr) == 'jpegphoto') { + return false; + } + return true; + } + + /** + * Returns a list of additional LDAP attributes that should be read. + * This can be used to show additional data even if the user selected other attributes to show in the list. + *
    + *
    The user list reads pwdAccountLockedTime, sambaAcctFlags and userPassword + * + * @return array additional attribute names + */ + protected function getAdditionalLDAPAttributesToRead() { + $attrs = parent::getAdditionalLDAPAttributesToRead(); + if ($this->showAccountStatus) { + $attrs[] = 'pwdAccountLockedTime'; + $attrs[] = 'sambaAcctFlags'; + $attrs[] = 'userPassword'; + $attrs[] = 'userAccountControl'; + $attrs[] = 'objectClass'; + } + return $attrs; + } + + /** + * Injects values for the virtual account status attribute to make it sortable. + */ + private function injectAccountStatusAttribute() { + $entryCount = sizeof($this->entries); + for ($i = 0; $i < $entryCount; $i++) { + $status = 0; + if (!self::isUnixLocked($this->entries[$i])) { + $status++; + } + if (!self::isSambaLocked($this->entries[$i])) { + $status++; + } + if (!self::isPPolicyLocked($this->entries[$i])) { + $status++; + } + if (!self::isWindowsLocked($this->entries[$i])) { + $status++; + } + $this->entries[$i][self::ATTR_ACCOUNT_STATUS][0] = $status; + } + } + + /** + * Prints the account status. + * + * @param array $attrs LDAP attributes + */ + private function printAccountStatus(&$attrs) { + // check status + $unixAvailable = self::isUnixAvailable($attrs); + $sambaAvailable = self::isSambaAvailable($attrs); + $ppolicyAvailable = self::isPPolicyAvailable($attrs); + $windowsAvailable = self::isWindowsAvailable($attrs); + if (!$unixAvailable && !$sambaAvailable && !$ppolicyAvailable && !$windowsAvailable) { + return; + } + $unixLocked = self::isUnixLocked($attrs); + $sambaLocked = self::isSambaLocked($attrs); + $ppolicyLocked = self::isPPolicyLocked($attrs); + $windowsLocked = self::isWindowsLocked($attrs); + $partiallyLocked = $unixLocked || $sambaLocked || $ppolicyLocked || $windowsLocked; + $fullyLocked = ($unixAvailable || $sambaAvailable || $ppolicyAvailable || $windowsAvailable) + && (!$unixAvailable || $unixLocked) + && (!$sambaAvailable || $sambaLocked) + && (!$ppolicyAvailable || $ppolicyLocked) + && (!$windowsAvailable || $windowsLocked); + $icon = 'unlocked.png'; + if ($fullyLocked) { + $icon = 'lock.png'; + } + elseif ($partiallyLocked) { + $icon = 'partiallyLocked.png'; + } + // print icon and detail tooltips + if ($unixAvailable || $sambaAvailable || $ppolicyAvailable || $windowsAvailable) { + $tipContent = ''; + // Unix + if ($unixAvailable) { + $unixIcon = 'unlocked.png'; + if ($unixLocked) { + $unixIcon = 'lock.png'; + } + $tipContent .= ''; + } + // Samba + if ($sambaAvailable) { + $sambaIcon = 'unlocked.png'; + if ($sambaLocked) { + $sambaIcon = 'lock.png'; + } + $tipContent .= ''; + } + // PPolicy + if ($ppolicyAvailable) { + $ppolicyIcon = 'unlocked.png'; + if ($ppolicyLocked) { + $ppolicyIcon = 'lock.png'; + } + $tipContent .= ''; + } + // Windows + if ($windowsAvailable) { + $windowsIcon = 'unlocked.png'; + if ($windowsLocked) { + $windowsIcon = 'lock.png'; + } + $tipContent .= ''; + } + $tipContent .= '
    ' . _('Unix') . '  
    ' . _('Samba 3') . '  
    ' . _('Password policy') . '  
    ' . _('Windows') . '  
    '; + echo 'status'; + } + else { + echo 'status'; + } + } + + /** + * Returns if the Unix part exists. + * + * @param array $attrs LDAP attributes + * @return boolean Unix part exists + */ + public static function isUnixAvailable(&$attrs) { + return (isset($attrs['objectclass']) && in_array_ignore_case('posixAccount', $attrs['objectclass']) && isset($attrs['userpassword'][0])); + } + + /** + * Returns if the Unix part is locked. + * + * @param array $attrs LDAP attributes + * @return boolean Unix part locked + */ + public static function isUnixLocked(&$attrs) { + return ((isset($attrs['userpassword'][0]) && !pwd_is_enabled($attrs['userpassword'][0]))); + } + + /** + * Returns if the Samba part exists. + * + * @param array $attrs LDAP attributes + * @return boolean Samba part exists + */ + public static function isSambaAvailable(&$attrs) { + return (isset($attrs['objectclass']) && in_array_ignore_case('sambaSamAccount', $attrs['objectclass'])); + } + + /** + * Returns if the Samba part is locked. + * + * @param array $attrs LDAP attributes + * @return boolean Samba part is locked + */ + public static function isSambaLocked(&$attrs) { + return (isset($attrs['sambaacctflags'][0]) && strpos($attrs['sambaacctflags'][0], "D")); + } + + /** + * Returns if the PPolicy part exists. + * + * @param array $attrs LDAP attributes + * @return boolean PPolicy part exists + */ + public static function isPPolicyAvailable(&$attrs) { + return in_array('ppolicyUser', $_SESSION['config']->get_AccountModules('user')); + } + + /** + * Returns if the PPolicy part is locked. + * + * @param array $attrs LDAP attributes + * @return boolean PPolicy part is locked + */ + public static function isPPolicyLocked(&$attrs) { + return (isset($attrs['pwdaccountlockedtime'][0]) && ($attrs['pwdaccountlockedtime'][0] != '')); + } + + /** + * Returns if the Windows part exists. + * + * @param array $attrs LDAP attributes + * @return boolean Windows part exists + */ + public static function isWindowsAvailable(&$attrs) { + return (isset($attrs['objectclass']) && in_array_ignore_case('user', $attrs['objectclass']) && isset($attrs['useraccountcontrol'][0])); + } + + /** + * Returns if the Windows part is locked. + * + * @param array $attrs LDAP attributes + * @return boolean Windows part is locked + */ + public static function isWindowsLocked(&$attrs) { + return windowsUser::isDeactivated($attrs); + } + +} + +?> \ No newline at end of file diff --git a/lam/lib/ufpdf.php b/lam/lib/ufpdf.php new file mode 100644 index 00000000..4f9858f5 --- /dev/null +++ b/lam/lib/ufpdf.php @@ -0,0 +1,819 @@ + * +* License: GPL * +* * +* UFPDF is a modification of FPDF to support Unicode through UTF-8. * +* * +* This file includes modifications from Andrea Rossato which fix line breaking * +* in Write()/MultiCell(). * +* * +*******************************************************************************/ + +if(!class_exists('UFPDF')) +{ +define('UFPDF_VERSION','0.1'); + +/** + * Main UFPDF class for creating Unicode PDF documents + * + * @package PDF + * @see FPDF + */ +class UFPDF extends FPDF +{ + +/******************************************************************************* +* * +* Public methods * +* * +*******************************************************************************/ +function UFPDF($orientation='P',$unit='mm',$format='A4') +{ + FPDF::FPDF($orientation, $unit, $format); +} + +function GetStringWidth($s) +{ + //Get width of a string in the current font + $s = (string)$s; + $codepoints=$this->utf8_to_codepoints(trim($s)); + $cw=&$this->CurrentFont['cw']; + $w=0; + foreach($codepoints as $cp) { + if (isset($cw[$cp])) { + $w+=$cw[$cp]; + } + else if (isset($cw[ord($cp)])) { + $w+=$cw[ord($cp)]; + } + else if (isset($cw[chr($cp)])) { + $w+=$cw[chr($cp)]; + } + //-- adjust width for incorrect hebrew chars + if ($cp>1480 && $cp < 1550) $w -= $cw[$cp]/1.8; + } + return $w*$this->FontSize/1000; +} + +function AddFont($family,$style='',$file='') +{ + //Add a TrueType or Type1 font + $family=strtolower($family); + if($family=='arial') + $family='helvetica'; + $style=strtoupper($style); + if($style=='IB') + $style='BI'; + if(isset($this->fonts[$family.$style])) + $this->Error('Font already added: '.$family.' '.$style); + if($file=='') + $file=str_replace(' ','',$family).strtolower($style).'.php'; + if(defined('FPDF_FONTPATH')) + $file=FPDF_FONTPATH.$file; + include($file); + if(!isset($name)) + $this->Error('Could not include font definition file'); + $i=count($this->fonts)+1; + $this->fonts[$family.$style]=array('i'=>$i,'type'=>$type,'name'=>$name,'desc'=>$desc,'up'=>$up,'ut'=>$ut,'cw'=>$cw,'file'=>$file,'ctg'=>$ctg); + if($file) + { + if($type=='TrueTypeUnicode') + $this->FontFiles[$file]=array('length1'=>$originalsize); + else + $this->FontFiles[$file]=array('length1'=>$size1,'length2'=>$size2); + } +} + +function Text($x,$y,$txt) +{ + //Output a string + $s=sprintf('BT %.2f %.2f Td %s Tj ET',$x*$this->k,($this->h-$y)*$this->k,$this->_escapetext($txt)); + if($this->underline and $txt!='') + $s.=' '.$this->_dounderlineU($x,$y,$this->GetStringWidth($txt),$txt); + if($this->ColorFlag) + $s='q '.$this->TextColor.' '.$s.' Q'; + $this->_out($s); +} + +function AcceptPageBreak() +{ + //Accept automatic page break or not + return $this->AutoPageBreak; +} + +function Cell($w,$h=0,$txt='',$border=0,$ln=0,$align='J',$fill=0,$link='') +{ + //Output a cell + $k=$this->k; + if($this->y+$h>$this->PageBreakTrigger and !$this->InFooter and $this->AcceptPageBreak()) + { + //Automatic page break + $x=$this->x; + $ws=$this->ws; + if($ws>0) + { + $this->ws=0; + $this->_out('0 Tw'); + } + $this->AddPage($this->CurOrientation, $this->CurPageSize); + $this->x=$x; + if($ws>0) + { + $this->ws=$ws; + $this->_out(sprintf('%.3f Tw',$ws*$k)); + } + } + if($w==0) + $w=$this->w-$this->rMargin-$this->x; + $s=''; + if($fill==1 or $border==1) + { + if($fill==1) + $op=($border==1) ? 'B' : 'f'; + else + $op='S'; + $s=sprintf('%.2f %.2f %.2f %.2f re %s ',$this->x*$k,($this->h-$this->y)*$k,$w*$k,-$h*$k,$op); + } + if(is_string($border)) + { + $x=$this->x; + $y=$this->y; + if(is_int(strpos($border,'L'))) + $s.=sprintf('%.2f %.2f m %.2f %.2f l S ',$x*$k,($this->h-$y)*$k,$x*$k,($this->h-($y+$h))*$k); + if(is_int(strpos($border,'T'))) + $s.=sprintf('%.2f %.2f m %.2f %.2f l S ',$x*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-$y)*$k); + if(is_int(strpos($border,'R'))) + $s.=sprintf('%.2f %.2f m %.2f %.2f l S ',($x+$w)*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-($y+$h))*$k); + if(is_int(strpos($border,'B'))) + $s.=sprintf('%.2f %.2f m %.2f %.2f l S ',$x*$k,($this->h-($y+$h))*$k,($x+$w)*$k,($this->h-($y+$h))*$k); + } + if($txt!='') + { + $width = $this->GetStringWidth($txt); + if($align=='R') + $dx=$w-$this->cMargin-$width; + elseif($align=='C') + $dx=($w-$width)/2; + else + $dx=$this->cMargin; + if($this->ColorFlag) + $s.='q '.$this->TextColor.' '; + $txtstring=$this->_escapetext($txt); + $s.=sprintf('BT %.2f %.2f Td %s Tj ET',($this->x+$dx)*$k,($this->h-($this->y+.5*$h+.3*$this->FontSize))*$k,$txtstring); + if($this->underline) + $s.=' '.$this->_dounderlineU($this->x+$dx,$this->y+.5*$h+.3*$this->FontSize,$width,$txt); + if($this->ColorFlag) + $s.=' Q'; + if($link) + $this->Link($this->x+$dx,$this->y+.5*$h-.5*$this->FontSize,$width,$this->FontSize,$link); + } + if($s) + $this->_out($s); + $this->lasth=$h; + if($ln>0) + { + //Go to next line + $this->y+=$h; + if($ln==1) + $this->x=$this->lMargin; + } + else + $this->x+=$w; +} + +function MultiCell($w,$h,$txt,$border=0,$align='J',$fill=0) +{ + //Output text with automatic or explicit line breaks + $cw=&$this->CurrentFont['cw']; + $cp=$this->utf8_to_codepoints(trim($txt)); + //print_r($cp); + if($w==0) + $w=$this->w-$this->rMargin-$this->x; + $wmax=($w-2*$this->cMargin)*1000/$this->FontSize; + //echo $w; + $s=str_replace("\r",'',$txt); + $nb=$this->strlen($s); + if($nb>0 and $s[$nb-1]=="\n") + $nb--; + $b=0; + if($border) + { + if($border==1) + { + $border='LTRB'; + $b='LRT'; + $b2='LR'; + } + else + { + $b2=''; + if(is_int(strpos($border,'L'))) + $b2.='L'; + if(is_int(strpos($border,'R'))) + $b2.='R'; + $b=is_int(strpos($border,'T')) ? $b2.'T' : $b2; + } + } + $sep=-1; + $i=0; + $j=0; + $l=0; + $ns=0; + $nl=1; + $char = 0; + while($i<$nb) + { + //Get next character + $c = $this->code2utf($cp[$i]); + if($c=="\n") + { + //Explicit line break + if($this->ws>0) + { + $this->ws=0; + $this->_out('0 Tw'); + } + $this->Cell($w,$h,$this->utf8_substr($cp,$j,$i-$j,"UTF-8"),$b,2,$align,$fill); + $i++; + $sep=-1; + $j=$i; + $l=0; + $ns=0; + $nl++; + if($border and $nl==2) + $b=$b2; + continue; + } + if($c==' ') + { + $sep=$i; + $ls=$l; + $ns++; + } + if (isset($cw[$cp[$i]])) { + $l += $cw[$cp[$i]]; + } + + if($l>$wmax) + { + //Automatic line break + if($sep==-1) + { + if($i==$j) + $i++; + if($this->ws>0) + { + $this->ws=0; + $this->_out('0 Tw'); + } + $this->Cell($w,$h,$this->utf8_substr($cp,$j,$i-$j,"UTF-8"),$b,2,$align,$fill); + } + else + { + if($align=='J') + { + $len_ligne = $this->GetStringWidth($this->utf8_substr($cp,$j,$sep-$j,"UTF-8")); + $nb_carac = $this->strlen($this->utf8_substr($cp,$j,$sep-$j,"UTF-8")); + $ecart = (($w-2) - $len_ligne) / $nb_carac; + $this->_out(sprintf('BT %.3f Tc ET',$ecart*$this->k)); + //$this->ws=($ns>1) ? ($wmax-$ls)/1000*$this->FontSize/($ns-1) : 0; + //$this->_out(sprintf('%.3f Tw',$this->ws*$this->k)); + //echo ($wmax-$ls)/1000*$this->FontSize/($ns-1)."=".($wmax-$ls)."
    "; //$andrea = sprintf('%.3f Tw',$this->ws*$this->k); + } + $this->Cell($w,$h,$this->utf8_substr($cp,$j,$sep-$j,"UTF-8"),$b,2,$align,$fill); + $i=$sep+1; + } + $sep=-1; + $j=$i; + $l=0; + $ns=0; + $nl++; + if($border and $nl==2) + $b=$b2; + } + else + $i++; + } + //Last chunk + if($this->ws>0) + { + $this->ws=0; + $this->_out('0 Tw'); + } + if($border and is_int(strpos($border,'B'))) + $b.='B'; + $this->Cell($w,$h,$this->utf8_substr($cp,$j,$i-$j,"UTF-8"),$b,2,$align,$fill); + $this->x=$this->lMargin; +} + +function Write($h,$txt,$link='') +{ + //Output text in flowing mode + $cw=&$this->CurrentFont['cw']; + $cp=$this->utf8_to_codepoints(trim($txt)); + $w=$this->w-$this->rMargin-$this->x; + $wmax=($w-2*$this->cMargin)*1000/$this->FontSize; + $s=str_replace("\r",'',$txt); + $nb=$this->strlen($s); + $sep=-1; + $i=0; + $j=0; + $l=0; + $nl=1; + while($i<$nb) + { + //Get next character + $c=$s{$i}; + $charw = $cw[$cp[$i]]; + if($c=="\n") + { + //Explicit line break + $this->Cell($w,$h,$this->utf8_substr($cp,$j,$i-$j,"UTF-8"),0,2,'',0,$link); + $i++; + $sep=-1; + $j=$i; + $l=0; + if($nl==1) + { + $this->x=$this->lMargin; + $w=$this->w-$this->rMargin-$this->x; + $wmax=($w-2*$this->cMargin)*1000/$this->FontSize; + } + $nl++; + continue; + } + if($c==' ') + $sep=$i; + $l+=$charw; + if($l>$wmax) + { + //Automatic line break + if($sep==-1) + { + if($this->x>$this->lMargin) + { + //Move to next line + $this->x=$this->lMargin; + $this->y+=$h; + $w=$this->w-$this->rMargin-$this->x; + $wmax=($w-2*$this->cMargin)*1000/$this->FontSize; + $i++; + $nl++; + continue; + } + if($i==$j) + $i++; + $this->Cell($w,$h,$this->utf8_substr($cp,$j,$i-$j,"UTF-8"),0,2,'',0,$link); + } + else + { + $this->Cell($w,$h,$this->utf8_substr($cp,$j,$sep-$j,"UTF-8"),0,2,'',0,$link); + $i=$sep+1; + } + $sep=-1; + $j=$i; + $l=0; + if($nl==1) + { + $this->x=$this->lMargin; + $w=$this->w-$this->rMargin-$this->x; + $wmax=($w-2*$this->cMargin)*1000/$this->FontSize; + } + $nl++; + } + else + $i++; + } + //Last chunk + if($i!=$j) + $this->Cell($l/1000*$this->FontSize,$h,$this->utf8_substr($cp,$j),0,0,'',0,$link); +} + +function AliasNbPages($alias='{nb}') +{ + //Define an alias for total number of pages + $this->AliasNbPages=$this->utf8_to_utf16be($alias,false); +} + +/******************************************************************************* +* * +* Protected methods * +* * +*******************************************************************************/ + +function _puttruetypeunicode($font) { + //Type0 Font + $this->_newobj(); + $this->_out('<_out('/Subtype /Type0'); + $this->_out('/BaseFont /'. $font['name'] ); + $this->_out('/Encoding /Identity-H'); + $this->_out('/DescendantFonts ['. ($this->n + 1) .' 0 R]'); + $this->_out('>>'); + $this->_out('endobj'); + + //CIDFont + $this->_newobj(); + $this->_out('<_out('/Subtype /CIDFontType2'); + $this->_out('/BaseFont /'. $font['name']); + $this->_out('/CIDSystemInfo <>'); + $this->_out('/FontDescriptor '. ($this->n + 1) .' 0 R'); + $c = 0; + $widths = ""; + foreach ($font['cw'] as $i => $w) { + $widths .= $i .' ['. $w.'] '; + } + $this->_out('/W ['. $widths .']'); + $this->_out('/CIDToGIDMap '. ($this->n + 2) .' 0 R'); + $this->_out('>>'); + $this->_out('endobj'); + + //Font descriptor + $this->_newobj(); + $this->_out('<_out('/FontName /'.$font['name']); + $s = ""; + foreach ($font['desc'] as $k => $v) { + $s .= ' /'. $k .' '. $v; + } + if ($font['file']) { + $s .= ' /FontFile2 '. $this->FontFiles[$font['file']]['n'] .' 0 R'; + } + $this->_out($s); + $this->_out('>>'); + $this->_out('endobj'); + + //Embed CIDToGIDMap + $this->_newobj(); + if(defined('FPDF_FONTPATH')) + $file=FPDF_FONTPATH.$font['ctg']; + else + $file=$font['ctg']; + $size=filesize($file); + if(!$size) + $this->Error('Font file not found'); + $this->_out('<_out('/Filter /FlateDecode'); + $this->_out('>>'); + $f = fopen($file,'rb'); + $this->_putstream(fread($f,$size)); + fclose($f); + $this->_out('endobj'); +} + +function _dounderlineU($x,$y,$width,$txt) +{ + //Underline text + $up=$this->CurrentFont['up']; + $ut=$this->CurrentFont['ut']; + $w=$width+$this->ws*substr_count($txt,' '); + return sprintf('%.2f %.2f %.2f %.2f re f',$x*$this->k,($this->h-($y-$up/1000*$this->FontSize))*$this->k,$w*$this->k,-$ut/1000*$this->FontSizePt); +} + +function _textstring($s) +{ + //Convert to UTF-16BE + $s = $this->utf8_to_utf16be($s); + //Escape necessary characters + return '('. strtr($s, array(')' => '\\)', '(' => '\\(', '\\' => '\\\\')) .')'; +} + +function _escapetext($s) +{ + //Convert to UTF-16BE + $s = $this->utf8_to_utf16be($s, false); + //Escape necessary characters + return '('. strtr($s, array(')' => '\\)', '(' => '\\(', '\\' => '\\\\')) .')'; +} + +function _putinfo() +{ + $this->_out('/Producer '.$this->_textstring('UFPDF '. UFPDF_VERSION)); + if(!empty($this->title)) + $this->_out('/Title '.$this->_textstring($this->title)); + if(!empty($this->subject)) + $this->_out('/Subject '.$this->_textstring($this->subject)); + if(!empty($this->author)) + $this->_out('/Author '.$this->_textstring($this->author)); + if(!empty($this->keywords)) + $this->_out('/Keywords '.$this->_textstring($this->keywords)); + if(!empty($this->creator)) + $this->_out('/Creator '.$this->_textstring($this->creator)); + $this->_out('/CreationDate '.$this->_textstring('D:'.date('YmdHis'))); +} + +function _putpages() +{ + $nb=$this->page; + if(!empty($this->AliasNbPages)) + { + $nbstr = $this->utf8_to_utf16be($nb,false); + //Replace number of pages + for($n=1;$n<=$nb;$n++) { + $this->pages[$n]=str_replace($this->AliasNbPages,$nbstr,$this->pages[$n]); + } + } + if($this->DefOrientation=='P') + { + $wPt=$this->DefPageSize[0]*$this->k; + $hPt=$this->DefPageSize[1]*$this->k; + } + else + { + $wPt=$this->DefPageSize[1]*$this->k; + $hPt=$this->DefPageSize[0]*$this->k; + } + $filter=($this->compress) ? '/Filter /FlateDecode ' : ''; + for($n=1;$n<=$nb;$n++) + { + //Page + $this->_newobj(); + $this->_out('<_out('/Parent 1 0 R'); + if(isset($this->PageSizes[$n])) + $this->_out(sprintf('/MediaBox [0 0 %.2F %.2F]',$this->PageSizes[$n][0],$this->PageSizes[$n][1])); + $this->_out('/Resources 2 0 R'); + if(isset($this->PageLinks[$n])) + { + //Links + $annots='/Annots ['; + foreach($this->PageLinks[$n] as $pl) + { + $rect=sprintf('%.2f %.2f %.2f %.2f',$pl[0],$pl[1],$pl[0]+$pl[2],$pl[1]-$pl[3]); + $annots.='<_textstring($pl[4]).'>>>>'; + else + { + $l=$this->links[$pl[4]]; + $h=isset($this->PageSizes[$l[0]]) ? $this->PageSizes[$l[0]][1] : $hPt; + $annots.=sprintf('/Dest [%d 0 R /XYZ 0 %.2F null]>>',1+2*$l[0],$h-$l[1]*$this->k); + } + } + $this->_out($annots.']'); + } + $this->_out('/Contents '.($this->n+1).' 0 R>>'); + $this->_out('endobj'); + //Page content + $p=($this->compress) ? gzcompress($this->pages[$n]) : $this->pages[$n]; + $this->_newobj(); + $this->_out('<<'.$filter.'/Length '.strlen($p).'>>'); + $this->_putstream($p); + $this->_out('endobj'); + } + //Pages root + $this->offsets[1]=strlen($this->buffer); + $this->_out('1 0 obj'); + $this->_out('<_out($kids.']'); + $this->_out('/Count '.$nb); + $this->_out(sprintf('/MediaBox [0 0 %.2f %.2f]',$wPt,$hPt)); + $this->_out('>>'); + $this->_out('endobj'); +} + +// UTF-8 to UTF-16BE conversion. +// Correctly handles all illegal UTF-8 sequences. +function utf8_to_utf16be(&$txt, $bom = true) { + $l = strlen($txt); + $txt .= " "; + $out = $bom ? "\xFE\xFF" : ''; + for ($i = 0; $i < $l; ++$i) { + $c = ord($txt{$i}); + // ASCII + if ($c < 0x80) { + $out .= "\x00". $txt{$i}; + } + // Lost continuation byte + else if ($c < 0xC0) { + $out .= "\xFF\xFD"; + continue; + } + // Multibyte sequence leading byte + else { + if ($c < 0xE0) { + $s = 2; + } + else if ($c < 0xF0) { + $s = 3; + } + else if ($c < 0xF8) { + $s = 4; + } + // 5/6 byte sequences not possible for Unicode. + else { + $out .= "\xFF\xFD"; + while (ord($txt{$i + 1}) >= 0x80 && ord($txt{$i + 1}) < 0xC0) { ++$i; } + continue; + } + + $q = array($c); + // Fetch rest of sequence + while (ord($txt{$i + 1}) >= 0x80 && ord($txt{$i + 1}) < 0xC0) { ++$i; $q[] = ord($txt{$i}); } + + // Check length + if (count($q) != $s) { + $out .= "\xFF\xFD"; + continue; + } + + switch ($s) { + case 2: + $cp = (($q[0] ^ 0xC0) << 6) | ($q[1] ^ 0x80); + // Overlong sequence + if ($cp < 0x80) { + $out .= "\xFF\xFD"; + } + else { + $out .= chr($cp >> 8); + $out .= chr($cp & 0xFF); + } + continue; + + case 3: + $cp = (($q[0] ^ 0xE0) << 12) | (($q[1] ^ 0x80) << 6) | ($q[2] ^ 0x80); + // Overlong sequence + if ($cp < 0x800) { + $out .= "\xFF\xFD"; + } + // Check for UTF-8 encoded surrogates (caused by a bad UTF-8 encoder) + else if ($c > 0xD800 && $c < 0xDFFF) { + $out .= "\xFF\xFD"; + } + else { + $out .= chr($cp >> 8); + $out .= chr($cp & 0xFF); + } + continue; + + case 4: + $cp = (($q[0] ^ 0xF0) << 18) | (($q[1] ^ 0x80) << 12) | (($q[2] ^ 0x80) << 6) | ($q[3] ^ 0x80); + // Overlong sequence + if ($cp < 0x10000) { + $out .= "\xFF\xFD"; + } + // Outside of the Unicode range + else if ($cp >= 0x10FFFF) { + $out .= "\xFF\xFD"; + } + else { + // Use surrogates + $cp -= 0x10000; + $s1 = 0xD800 | ($cp >> 10); + $s2 = 0xDC00 | ($cp & 0x3FF); + + $out .= chr($s1 >> 8); + $out .= chr($s1 & 0xFF); + $out .= chr($s2 >> 8); + $out .= chr($s2 & 0xFF); + } + continue; + } + } + } + return $out; +} + +function code2utf($num){ + if($num<128)return chr($num); + if($num<2048)return chr(($num>>6)+192).chr(($num&63)+128); + if($num<65536)return chr(($num>>12)+224).chr((($num>>6)&63)+128).chr(($num&63)+128); + if($num<2097152)return chr(($num>>18)+240).chr((($num>>12)&63)+128).chr((($num>>6)&63)+128). chr(($num&63)+128); + return ''; +} + +function strlen($s) { + return strlen(utf8_decode($s)); +} + +function utf8_substr($str,$start) +{ + $rs = ''; + if( func_num_args() >= 3 ) { + $end = func_get_arg( 2 ); + for ($i=$start; $i < ($start+$end); $i++) + $rs .= $this->code2utf($str[$i]); + + } else { + for ($i=$start; $i < count($str); $i++) + $rs .= $this->code2utf($str[$i]); + } + + return $rs; +} + +// UTF-8 to codepoint array conversion. +// Correctly handles all illegal UTF-8 sequences. +function utf8_to_codepoints($txt) { + $l = strlen($txt); + $txt .= " "; + $out = array(); + for ($i = 0; $i < $l; ++$i) { + $c = ord($txt{$i}); + // ASCII + if ($c < 0x80) { + $out[] = ord($txt{$i}); + } + // Lost continuation byte + else if ($c < 0xC0) { + $out[] = 0xFFFD; + continue; + } + // Multibyte sequence leading byte + else { + if ($c < 0xE0) { + $s = 2; + } + else if ($c < 0xF0) { + $s = 3; + } + else if ($c < 0xF8) { + $s = 4; + } + // 5/6 byte sequences not possible for Unicode. + else { + $out[] = 0xFFFD; + while (ord($txt{$i + 1}) >= 0x80 && ord($txt{$i + 1}) < 0xC0) { ++$i; } + continue; + } + + $q = array($c); + // Fetch rest of sequence + while (ord($txt{$i + 1}) >= 0x80 && ord($txt{$i + 1}) < 0xC0) { ++$i; $q[] = ord($txt{$i}); } + + // Check length + if (count($q) != $s) { + $out[] = 0xFFFD; + continue; + } + + switch ($s) { + case 2: + $cp = (($q[0] ^ 0xC0) << 6) | ($q[1] ^ 0x80); + // Overlong sequence + if ($cp < 0x80) { + $out[] = 0xFFFD; + } + else { + $out[] = $cp; + } + continue; + + case 3: + $cp = (($q[0] ^ 0xE0) << 12) | (($q[1] ^ 0x80) << 6) | ($q[2] ^ 0x80); + // Overlong sequence + if ($cp < 0x800) { + $out[] = 0xFFFD; + } + // Check for UTF-8 encoded surrogates (caused by a bad UTF-8 encoder) + else if ($c > 0xD800 && $c < 0xDFFF) { + $out[] = 0xFFFD; + } + else { + $out[] = $cp; + } + continue; + + case 4: + $cp = (($q[0] ^ 0xF0) << 18) | (($q[1] ^ 0x80) << 12) | (($q[2] ^ 0x80) << 6) | ($q[3] ^ 0x80); + // Overlong sequence + if ($cp < 0x10000) { + $out[] = 0xFFFD; + } + // Outside of the Unicode range + else if ($cp >= 0x10FFFF) { + $out[] = 0xFFFD; + } + else { + $out[] = $cp; + } + continue; + } + } + } + return $out; +} + +//End of class +} + +} +?> diff --git a/lam/lib/upgrade.inc b/lam/lib/upgrade.inc new file mode 100644 index 00000000..9336f10b --- /dev/null +++ b/lam/lib/upgrade.inc @@ -0,0 +1,229 @@ + value) to an account profile + * + * @param array $profiles server profiles + */ +function upgradeConfigToServerProfileFolders($profiles) { + if (!is_writable('../config')) { + StatusMessage('ERROR', 'Upgrade failed.', 'The directory \'/config\' has missing write permissions.'); + return; + } + + // copy default configs + if (!file_exists('../config/templates')) { + @mkdir('../config/templates'); + recursiveCopy('../config/pdf/', '../config/templates/pdf/', $profiles, 'default.'); + recursiveCopy('../config/profiles/', '../config/templates/profiles/', $profiles, 'default.'); + } + + foreach ($profiles as $profile) { + // upgrade PDF configs + $dir = '../config/pdf/' . $profile; + if (!file_exists($dir)) { + recursiveCopy('../config/pdf/', $dir, $profiles); + } + + // upgrade profiles configs + $dir = '../config/profiles/' . $profile; + if (!file_exists($dir)) { + recursiveCopy('../config/profiles/', $dir, $profiles); + } + } + + // delete old files + recursiveDelete('../config/pdf', $profiles); + recursiveDelete('../config/profiles', $profiles); +} + +/** + * Saves an hash array (attribute => value) to an account profile + * + * @param array $profiles server profiles + */ +function copyConfigTemplates($profiles) { + foreach ($profiles as $profile) { + // copy templates but do not override existing files + recursiveCopy('../config/templates/pdf/', '../config/pdf/' . $profile, $profiles, null, false); + recursiveCopy('../config/templates/profiles/', '../config/profiles/' . $profile, $profiles, null, false); + } +} + +/** + * Copy a file or recursively copy a directory + * + * @param string $src - source path to file or directory + * @param string $dst - destination path to file or directory + * @param array $profiles - server profiles (used to avoid copying of newly created folders) + * @param string $fileFilter copy only files that start with the given filter + * @param boolean $overwrite overwrite existing files + */ +function recursiveCopy($src, $dst, $profiles, $fileFilter = null, $overwrite = true) { + $dir = @opendir($src); + if (!file_exists($dst)) { + $tmpState = @mkdir($dst); + if ($tmpState === false) { + StatusMessage('ERROR', 'Upgrade failed.', 'The directory \'' . $dst . '\' could not be created.'); + } + } + while (false !== ($file = @readdir($dir))) { + if ($file != '.' && $file != '..' && !in_array($file, $profiles)) { + if (is_dir($src . '/' . $file) && ($file == 'logos')) { + recursiveCopy($src . '/' . $file, $dst . '/' . $file, $profiles, $fileFilter, $overwrite); + } + elseif ((isset($fileFilter) && (strpos($file, $fileFilter) === 0 || $file == '.htaccess')) + || (!isset($fileFilter))) { + if (!is_file($src . '/' . $file)) { + continue; + } + if ($overwrite || !file_exists($dst . '/' . $file)) { + $tmpState = @copy($src . '/' . $file, $dst . '/' . $file); + if ($tmpState === false) { + StatusMessage('ERROR', 'Upgrade failed.', 'The file ' . $file . ' could not be copied.'); + } + } + } + } + } + closedir($dir); +} + + +/** + * Delete a file or recursively delete a directory + * + * @param string $src - path to file or directory + * @param array $profiles - server profiles (used to avoid copying of newly created folders) + */ +function recursiveDelete($src, $profiles) { + if (is_file($src)) { + $tmpState = @unlink($src); + if ($tmpState === false) { + StatusMessage('ERROR', 'Upgrade failed.', 'The file ' . $src . ' could not be deleted.'); + } + return; + } else if (is_dir($src) && is_writable($src)) { + $dir = @opendir($src); + while (false !== ($path = readdir($dir))) { + if ($path != '.' && $path != '..' && !in_array($path, $profiles)) { + recursiveDelete($src . '/' . $path, $profiles); + } + } + @closedir($dir); + + if ($src != '../config/pdf' && $src != '../config/profiles') { + $tmpState = @rmdir($src); + if ($tmpState === false) { + StatusMessage('ERROR', 'Upgrade failed.', 'The directory ' . $src . ' could not be deleted.'); + } + } + return; + } else { + StatusMessage('ERROR', 'Upgrade failed.', 'The directory ' . $src . ' has missing write permissions.'); + return; + } +} + +?> diff --git a/lam/lib/xml_parser.inc b/lam/lib/xml_parser.inc new file mode 100644 index 00000000..e44e0a8c --- /dev/null +++ b/lam/lib/xml_parser.inc @@ -0,0 +1,67 @@ +xmlParser = xml_parser_create(); + xml_set_object($this->xmlParser,$this); + xml_parser_set_option($this->xmlParser, XML_OPTION_CASE_FOLDING, 1); + xml_parser_set_option($this->xmlParser, XML_OPTION_SKIP_WHITE, 1); + } + + /** + * Starts the parsing. + * + * @param String $filename file name + * @return array XML structure + */ + function parse($filename) { + if(file_exists($filename)) { + $xmlStructure = array(); + $xmlIndex = array(); + xml_parse_into_struct($this->xmlParser,implode("\n",file($filename)),$xmlStructure,$xmlIndex); + return array($xmlStructure,$xmlIndex); + } + return array(); + } +} +?> \ No newline at end of file diff --git a/lam/locale/.htaccess b/lam/locale/.htaccess new file mode 100644 index 00000000..8334f2cd --- /dev/null +++ b/lam/locale/.htaccess @@ -0,0 +1,9 @@ + + + Order allow,deny + Deny from all + + = 2.3> + Require all denied + + diff --git a/lam/locale/ca_ES/LC_MESSAGES/messages.mo b/lam/locale/ca_ES/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..2a2b53e0 Binary files /dev/null and b/lam/locale/ca_ES/LC_MESSAGES/messages.mo differ diff --git a/lam/locale/ca_ES/LC_MESSAGES/messages.po b/lam/locale/ca_ES/LC_MESSAGES/messages.po new file mode 100644 index 00000000..634c1470 --- /dev/null +++ b/lam/locale/ca_ES/LC_MESSAGES/messages.po @@ -0,0 +1,9015 @@ +# translation of messages.po to Català +# +# LDAP Account Manager +# Felip Moll , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: messages\n" +"Report-Msgid-Bugs-To: post@rolandgruber.de\n" +"POT-Creation-Date: 2004-01-14 17:45+0200\n" +"PO-Revision-Date: 2010-06-15 12:39+0100\n" +"Last-Translator: Felip Moll \n" +"Language-Team: Catalan \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.3.1\n" +"X-Poedit-Language: Catalan\n" +"X-Poedit-Country: SPAIN\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: ../lib/modules/posixAccount.inc:379 +msgid "$user and $group will be replaced with user name and primary group name." +msgstr "$user i $group seran substituïts pel nom de l'usuari o del grup primari." + +#: ../lib/types/dhcp.inc:123 +#, php-format +msgid "%s DHCP(s) found" +msgstr "%s màquine(s) trobades" + +#: ../lib/types/nisObjectType.inc:105 +#, php-format +msgid "%s NIS object(s) found" +msgstr "%s objecte(s) NIS trobats" + +#: ../lib/types/mailAlias.inc:117 +#: ../lib/types/alias.inc:117 +#, php-format +msgid "%s alias(es) found" +msgstr "%s àlies trobats" + +#: ../lib/types/smbDomain.inc:117 +#, php-format +msgid "%s domain(s) found" +msgstr "%s domini(s) de Samba trobats" + +#: ../lib/types/asteriskExt.inc:118 +#, php-format +msgid "%s extension(s) found" +msgstr "%s extensions trobades" + +#: ../lib/types/gon.inc:119 +#: ../lib/types/group.inc:131 +#: ../lib/types/netgroup.inc:119 +#, php-format +msgid "%s group(s) found" +msgstr "%s grup(s) trobats" + +#: ../lib/types/host.inc:121 +#, php-format +msgid "%s host(s) found" +msgstr "%s màquine(s) trobades" + +#: ../lib/lists.inc:106 +#, php-format +msgid "%s object(s) found" +msgstr "%s objecte(s) trobats" + +#: ../lib/types/ppolicyType.inc:125 +#, php-format +msgid "%s policy(ies) found" +msgstr "%s polítiques trobades" + +#: ../lib/types/sudo.inc:109 +#, php-format +msgid "%s sudo role(s) found" +msgstr "%s rol(s) de sudo trobat(s)" + +#: ../lib/types/user.inc:135 +#, php-format +msgid "%s user(s) found" +msgstr "%s usuari(s) trobats" + +#: ../templates/tree/templates/creation/custom.php:63 +msgid "(example: cn=MyNewPerson)" +msgstr "(exemple: cn=MyNewPerson)" + +#: ../templates/tree/templates/creation/new_ou_template.php:60 +msgid "(hint: do not include \"ou=\")" +msgstr "(consell: no incloguis \"ou=\")" + +#: ../lib/modules/nisnetgroup.inc:119 +msgid "(host1,user1,example.com);(host2,user2,example.com)" +msgstr "(host1,usuari1,exemple.com);(host2,usuari2,exemple.com)" + +#: ../templates/tree/add_attr_form.php:136 +msgid "(no new attributes available for this entry)" +msgstr "(cap nou atribut disponible per aquesta entrada)" + +#: ../templates/tree/add_attr_form.php:174 +msgid "(no new binary attributes available for this entry)" +msgstr "(cap nou atribut binari disponible per aquesta entrada)" + +#: ../lib/modules/posixAccount.inc:237 +msgid "/home/smiller" +msgstr "/home/lipix" + +#: ../lib/modules/inetOrgPerson.inc:332 +#: ../lib/modules/asteriskVoicemail.inc:182 +msgid "123-123-1234" +msgstr "123-123-1234" + +#: ../lib/modules/inetOrgPerson.inc:348 +msgid "123-123-1235" +msgstr "123-123-1235" + +#: ../lib/modules/inetOrgPerson.inc:356 +msgid "123-123-1236" +msgstr "123-123-1236" + +#: ../lib/modules/inetOrgPerson.inc:340 +msgid "123-124-1234" +msgstr "123-124-1234" + +#: ../lib/modules/inetOrgPerson.inc:324 +msgid "12345" +msgstr "12345" + +#: ../lib/modules/dhcp_settings.inc:141 +msgid "" +"B-Node (0x01): Broadcast.
    The client tries to find other workstations via broadcasting\n" +"(works only inside the same collision domain, viz. the same subnet).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"The client contacts a Netbios name server (NBNS) from Microsoft Windows Name Service (WINS) for name resolution.

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"The node tries broadcasting first. If that fails then it tries WINS.

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"The node tries WINS first. If that fails it tries broadcasting.

    \n" +"\n" +"By default, the nodes are configured as H-Nodes which fits for small networks. In large networks Point-to-Point (0x02) should be used." +msgstr "" +"B-Node (0x01): Broadcast.
    El client intenta trobar altres màquines via broadcast\n" +"(funciona només dins del mateix domini de col·lisió, és a dir, la mateixa subxarxa).

    \n" +"\n" +"P-Node (0x02): Punt-A-Punt
    \n" +"El client contacta amb un servidor de noms Netbios (NBNS) des del servei de noms de Microsoft Windows (WINS), per efectuar la resolució dels noms.

    \n" +"\n" +"M-Node (0x04): Mixte
    \n" +"El node prova de fer broadcast, si falla llavors prova d'utilitzar WINS.

    \n" +"\n" +"H-Node (0x08): Híbrid
    \n" +"El node prova d'utilitzar WINS. Si falla prova de fer broadcast.

    \n" +"\n" +"Per defecte, els nodes estan configurats com a H-Nodes, opció adequada per xarxes petites. En xarxes grans s'hauria d'utilitzar el Punt-A-Punt(0x02)." + +#: ../lib/modules/sudoRole.inc:84 +#: ../lib/modules/sudoRole.inc:113 +msgid "A list of options (e.g. NOPASSWD)." +msgstr "Llista d'opcions (p.ex. NOPASSWD)." + +#: ../templates/massBuildAccounts.php:114 +msgid "A required column is missing in your CSV file." +msgstr "Falta una columna obligatoria en el seu arxiu CSV." + +#: ../lib/modules/kolabUser.inc:144 +msgid "A user may define who is allowed to act on behalf of herself. This property is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "Un usuari pot decidir qui pot actuar en nom seu. Aquesta propietat es comprova al utilitzar el dimoni d'smtp de Kolab (Postfix) per enviar e-mails." + +#: ../lib/modules/sambaSamAccount.inc:545 +msgid "Abu Dhabi, Muscat, Baku" +msgstr "Abu Dhabi, Muscat, Baku" + +#: ../templates/config/confmain.php:317 +#: ../help/help.inc:102 +msgid "Access level" +msgstr "Nivell d'accés" + +#: ../lib/modules/account.inc:58 +msgid "Account" +msgstr "Compte" + +#: ../templates/massBuildAccounts.php:169 +#: ../lib/modules/ipHost.inc:109 +#: ../lib/modules/ipHost.inc:110 +#: ../lib/modules/asteriskAccount.inc:171 +#: ../lib/modules/asteriskAccount.inc:174 +#: ../lib/modules/asteriskAccount.inc:177 +#: ../lib/modules/account.inc:117 +#: ../lib/modules/ieee802device.inc:89 +#: ../lib/modules/posixGroup.inc:473 +#: ../lib/modules/posixGroup.inc:477 +#: ../lib/modules/posixGroup.inc:478 +#: ../lib/modules/dhcp_settings.inc:303 +#: ../lib/modules/dhcp_settings.inc:305 +#: ../lib/modules/dhcp_settings.inc:307 +#: ../lib/modules/dhcp_settings.inc:309 +#: ../lib/modules/dhcp_settings.inc:311 +#: ../lib/modules/dhcp_settings.inc:312 +#: ../lib/modules/dhcp_settings.inc:314 +#: ../lib/modules/dhcp_settings.inc:316 +#: ../lib/modules/dhcp_settings.inc:322 +#: ../lib/modules/dhcp_settings.inc:323 +#: ../lib/modules/dhcp_settings.inc:324 +#: ../lib/modules/eduPerson.inc:217 +#: ../lib/modules/eduPerson.inc:219 +#: ../lib/modules/eduPerson.inc:221 +#: ../lib/modules/eduPerson.inc:223 +#: ../lib/modules/eduPerson.inc:224 +#: ../lib/modules/eduPerson.inc:225 +#: ../lib/modules/eduPerson.inc:226 +#: ../lib/modules/quota.inc:51 +#: ../lib/modules/quota.inc:53 +#: ../lib/modules/quota.inc:55 +#: ../lib/modules/quota.inc:57 +#: ../lib/modules/quota.inc:59 +#: ../lib/modules/quota.inc:61 +#: ../lib/modules/quota.inc:62 +#: ../lib/modules/sambaSamAccount.inc:83 +#: ../lib/modules/sambaSamAccount.inc:86 +#: ../lib/modules/sambaSamAccount.inc:89 +#: ../lib/modules/sambaSamAccount.inc:91 +#: ../lib/modules/sambaSamAccount.inc:92 +#: ../lib/modules/sambaSamAccount.inc:93 +#: ../lib/modules/sambaSamAccount.inc:94 +#: ../lib/modules/sambaSamAccount.inc:95 +#: ../lib/modules/sambaSamAccount.inc:97 +#: ../lib/modules/sambaSamAccount.inc:98 +#: ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:102 +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:105 +#: ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/posixAccount.inc:68 +#: ../lib/modules/posixAccount.inc:73 +#: ../lib/modules/posixAccount.inc:77 +#: ../lib/modules/posixAccount.inc:85 +#: ../lib/modules/posixAccount.inc:86 +#: ../lib/modules/posixAccount.inc:87 +#: ../lib/modules/posixAccount.inc:88 +#: ../lib/modules/posixAccount.inc:89 +#: ../lib/modules/posixAccount.inc:90 +#: ../lib/modules/posixAccount.inc:92 +#: ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/posixAccount.inc:94 +#: ../lib/modules/posixAccount.inc:96 +#: ../lib/modules/kolabUser.inc:242 +#: ../lib/modules/kolabUser.inc:244 +#: ../lib/modules/kolabUser.inc:246 +#: ../lib/modules/kolabUser.inc:248 +#: ../lib/modules/kolabUser.inc:250 +#: ../lib/modules/kolabUser.inc:252 +#: ../lib/modules/kolabUser.inc:254 +#: ../lib/modules/phpGroupwareUser.inc:137 +#: ../lib/modules/phpGroupwareUser.inc:138 +#: ../lib/modules/ddns.inc:147 +#: ../lib/modules/nisObject.inc:117 +#: ../lib/modules/sambaGroupMapping.inc:439 +#: ../lib/modules/sambaGroupMapping.inc:440 +#: ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/shadowAccount.inc:62 +#: ../lib/modules/shadowAccount.inc:64 +#: ../lib/modules/shadowAccount.inc:66 +#: ../lib/modules/shadowAccount.inc:67 +#: ../lib/modules/sambaDomain.inc:202 +#: ../lib/modules/sambaDomain.inc:204 +#: ../lib/modules/sambaDomain.inc:206 +#: ../lib/modules/sambaDomain.inc:208 +#: ../lib/modules/sambaDomain.inc:210 +#: ../lib/modules/sambaDomain.inc:212 +#: ../lib/modules/inetOrgPerson.inc:45 +#: ../lib/modules/inetOrgPerson.inc:47 +#: ../lib/modules/inetOrgPerson.inc:49 +#: ../lib/modules/inetOrgPerson.inc:51 +#: ../lib/modules/inetOrgPerson.inc:53 +#: ../lib/modules/inetOrgPerson.inc:55 +#: ../lib/modules/inetOrgPerson.inc:57 +#: ../lib/modules/inetOrgPerson.inc:59 +#: ../lib/modules/inetOrgPerson.inc:61 +#: ../lib/modules/inetOrgPerson.inc:63 +#: ../lib/modules/inetOrgPerson.inc:65 +#: ../lib/modules/inetOrgPerson.inc:67 +#: ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:71 +#: ../lib/modules/inetOrgPerson.inc:72 +#: ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:76 +#: ../lib/modules/sudoRole.inc:240 +#: ../lib/modules/sudoRole.inc:242 +#: ../lib/modules/sudoRole.inc:244 +#: ../lib/modules/sudoRole.inc:246 +#: ../lib/modules/sudoRole.inc:248 +#: ../lib/modules/sudoRole.inc:250 +#: ../lib/modules/asteriskVoicemail.inc:211 +#: ../lib/modules/asteriskVoicemail.inc:217 +#: ../lib/modules/asteriskVoicemail.inc:219 +#: ../lib/modules/inetLocalMailRecipient.inc:127 +#: ../lib/modules/inetLocalMailRecipient.inc:129 +#: ../lib/modules/inetLocalMailRecipient.inc:131 +#: ../lib/modules/aliasEntry.inc:79 +#: ../lib/modules/nisMailAlias.inc:107 +#: ../lib/modules/nisMailAlias.inc:109 +#: ../lib/modules/hostObject.inc:107 +#, php-format +msgid "Account %s:" +msgstr "Comptes %s:" + +#: ../lib/modules/asteriskAccount.inc:87 +#: ../lib/modules/asteriskAccount.inc:114 +#: ../lib/modules/asteriskAccount.inc:126 +#: ../lib/modules/asteriskAccount.inc:142 +#: ../lib/modules/asteriskAccount.inc:202 +#: ../lib/modules/asteriskAccount.inc:288 +#: ../lib/modules/asteriskExtension.inc:82 +#: ../lib/modules/asteriskExtension.inc:113 +#: ../lib/modules/asteriskExtension.inc:133 +#: ../lib/modules/asteriskExtension.inc:178 +#: ../lib/modules/asteriskExtension.inc:223 +#: ../lib/modules/asteriskExtension.inc:463 +#: ../lib/modules/asteriskVoicemail.inc:78 +#: ../lib/modules/asteriskVoicemail.inc:121 +#: ../lib/modules/asteriskVoicemail.inc:133 +#: ../lib/modules/asteriskVoicemail.inc:147 +#: ../lib/modules/asteriskVoicemail.inc:238 +#: ../lib/modules/asteriskVoicemail.inc:374 +msgid "Account context" +msgstr "Context del compte" + +#: ../templates/masscreate.php:110 +msgid "Account creation via file upload" +msgstr "Creació de comptes mitjançant enviament d'arxius" + +#: ../lib/modules/posixAccount.inc:386 +msgid "Account deactivated" +msgstr "Compte desactivat" + +#: ../templates/lists/changePassword.php:135 +msgid "Account details" +msgstr "Detalls del compte" + +#: ../lib/modules/sambaSamAccount.inc:321 +#: ../lib/modules/sambaSamAccount.inc:436 +#: ../lib/modules/sambaSamAccount.inc:1138 +#: ../lib/modules/sambaSamAccount.inc:1382 +#: ../lib/modules/sambaSamAccount.inc:1566 +#: ../lib/modules/phpGroupwareUser.inc:82 +#: ../lib/modules/phpGroupwareUser.inc:100 +#: ../lib/modules/phpGroupwareUser.inc:124 +#: ../lib/modules/phpGroupwareUser.inc:155 +#: ../lib/modules/phpGroupwareUser.inc:239 +#: ../lib/modules/phpGroupwareUser.inc:344 +#: ../lib/modules/shadowAccount.inc:124 +#: ../lib/modules/shadowAccount.inc:189 +#: ../lib/modules/shadowAccount.inc:225 +#: ../lib/modules/shadowAccount.inc:332 +#: ../lib/modules/shadowAccount.inc:391 +#: ../lib/modules/shadowAccount.inc:419 +msgid "Account expiration date" +msgstr "Data d'expiració" + +#: ../lib/modules/shadowAccount.inc:167 +msgid "Account inactive" +msgstr "Compte inactiu" + +#: ../lib/modules/sambaSamAccount.inc:261 +#: ../lib/modules/sambaSamAccount.inc:267 +#: ../lib/modules/sambaSamAccount.inc:428 +#: ../lib/modules/sambaSamAccount.inc:1098 +#: ../lib/modules/sambaSamAccount.inc:1554 +msgid "Account is deactivated" +msgstr "Compte desactivat." + +#: ../lib/modules/sambaSamAccount.inc:264 +#: ../lib/modules/sambaSamAccount.inc:1106 +msgid "Account is locked" +msgstr "Compte bloquejat" + +#: ../templates/delete.php:90 +msgid "Account name:" +msgstr "Nom del compte:" + +#: ../lib/modules/phpGroupwareUser.inc:78 +#: ../lib/modules/phpGroupwareUser.inc:99 +#: ../lib/modules/phpGroupwareUser.inc:117 +#: ../lib/modules/phpGroupwareUser.inc:162 +#: ../lib/modules/phpGroupwareUser.inc:339 +msgid "Account status" +msgstr "Comptes %s" + +#: ../templates/masscreate.php:130 +#: ../templates/pdfedit/pdfdelete.php:82 +#: ../lib/modules/groupOfNames.inc:232 +msgid "Account type" +msgstr "Tipus de compte" + +#: ../templates/config/confmodules.php:141 +#: ../templates/config/confmain.php:174 +#: ../templates/config/moduleSettings.php:140 +#: ../templates/config/conftypes.php:159 +msgid "Account types" +msgstr "Tipus de comptes" + +#: ../help/help.inc:106 +msgid "Account types and modules" +msgstr "Tipus de comptes i mòduls" + +#: ../help/help.inc:108 +msgid "Account types define which sorts of LDAP entries (e.g. users and groups) should be managed. The account modules define which properties (e.g. Unix and Samba) can be edited." +msgstr "Els tipus de compte defineixen quines entrades d'LDAP s'han d'administrar (ex. usuaris i grups). Els mòduls de compte defineixen quines propietats es poden editar (ex. Unix i Samba)." + +#: ../lib/modules.inc:1454 +msgid "Account was created successfully." +msgstr "El compte ha estat creat satisfactoriament." + +#: ../templates/lists/changePassword.php:428 +#: ../lib/modules.inc:1457 +msgid "Account was modified successfully." +msgstr "El compte ha estat modificat satisfactoriament." + +#: ../lib/modules/customScripts.inc:128 +msgid "Action type" +msgstr "Tipus d'acció" + +#: ../lib/modules/ddns.inc:83 +#: ../lib/modules/ddns.inc:338 +msgid "Activate DynDNS" +msgstr "Activar DynDNS" + +#: ../templates/config/confmain.php:238 +msgid "Activate TLS" +msgstr "Activar TLS" + +#: ../lib/modules/sambaSamAccount.inc:328 +msgid "Activate this checkbox to allow this user to use the terminal service." +msgstr "Activa aquesta casella per permetre a l'usuari fer servir el terminal service." + +#: ../lib/modules/sambaSamAccount.inc:349 +msgid "Activate this checkbox to connect drives from the client machine." +msgstr "Marca aquesta casella per connectar unitats de la màquina client." + +#: ../lib/modules/sambaSamAccount.inc:352 +msgid "Activate this checkbox to connect printers from the client machine." +msgstr "Activa aquesta casella per connectar impressores des de la màquina client." + +#: ../lib/modules/sambaSamAccount.inc:337 +msgid "Activate this checkbox to inherit the initial program and working directory from the client machine." +msgstr "Marca aquesta casella per heretar el directori principal de treball i de programa de la màquina client." + +#: ../lib/modules/sambaSamAccount.inc:355 +msgid "Activate this checkbox to set the client's printer as default printer." +msgstr "Activa aquesta casella per establir l'impressora del client a impressora per defecte." + +#: ../lib/modules/posixAccount.inc:358 +msgid "Activating this checkbox will remove the user's home directory." +msgstr "Si actives aquesta casella, s'esborrarà el directori home del usuari." + +#: ../templates/config/conftypes.php:233 +msgid "Active account types" +msgstr "Activar tipus de comptes" + +#: ../templates/tree/add_value_form.php:157 +#: ../templates/tree/add_value_form.php:182 +#: ../templates/tree/add_oclass_form.php:144 +#: ../templates/tree/add_attr_form.php:130 +#: ../templates/tree/add_attr_form.php:162 +#: ../templates/config/confmodules.php:275 +#: ../templates/config/conftypes.php:221 +#: ../templates/pdfedit/pdfpage.php:579 +#: ../templates/pdfedit/pdfpage.php:596 +#: ../templates/pdfedit/pdfpage.php:624 +#: ../templates/pdfedit/pdfpage.php:660 +#: ../lib/modules/ipHost.inc:140 +#: ../lib/modules/ieee802device.inc:111 +#: ../lib/modules/eduPerson.inc:296 +#: ../lib/modules/eduPerson.inc:321 +#: ../lib/modules/eduPerson.inc:347 +#: ../lib/modules/eduPerson.inc:393 +#: ../lib/modules/kolabUser.inc:346 +#: ../lib/modules/kolabUser.inc:363 +#: ../lib/modules/kolabUser.inc:389 +#: ../lib/modules/kolabUser.inc:869 +#: ../lib/modules/kolabUser.inc:909 +#: ../lib/modules/ldapPublicKey.inc:109 +#: ../lib/modules/nisnetgroup.inc:251 +#: ../lib/modules/sudoRole.inc:290 +#: ../lib/modules/sudoRole.inc:317 +#: ../lib/modules/sudoRole.inc:344 +#: ../lib/modules/sudoRole.inc:371 +#: ../lib/modules/sudoRole.inc:398 +#: ../lib/modules/sudoRole.inc:425 +#: ../lib/modules/inetLocalMailRecipient.inc:169 +#: ../lib/modules/groupOfNames.inc:171 +#: ../lib/modules/groupOfNames.inc:305 +#: ../lib/modules/nisMailAlias.inc:156 +#: ../lib/modules/hostObject.inc:152 +msgid "Add" +msgstr "Afegir" + +#: ../lib/modules/asteriskAccount.inc:208 +msgid "Add Asterisk account" +msgstr "Afegir compte Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:272 +msgid "Add Asterisk voicemail extension" +msgstr "Afeigir extensió d'Asterisk de veu i correu" + +#: ../lib/modules/eduPerson.inc:408 +msgid "Add EDU person extension" +msgstr "Afegir l'extensió EDU person" + +#: ../lib/modules/ipHost.inc:186 +msgid "Add IP address extension" +msgstr "Afegir l'extensió d'adreça IP" + +#: ../lib/modules/kolabUser.inc:407 +msgid "Add Kolab extension" +msgstr "Afegir l'extensió Kolab" + +#: ../lib/modules/sambaSamAccount.inc:1269 +#: ../lib/modules/sambaGroupMapping.inc:280 +msgid "Add Samba 3 extension" +msgstr "Afegir l'extensió de Samba 3" + +#: ../lib/modules/shadowAccount.inc:349 +msgid "Add Shadow account extension" +msgstr "Afegir l'extensió de compte Shadow" + +#: ../lib/modules/groupOfNames.inc:344 +msgid "Add entries of this type:" +msgstr "Afegir entrades d'aquest tipus:" + +#: ../lib/modules/ddns.inc:343 +msgid "Add fix IP addresses to DNS" +msgstr "Afegir IP's fixes al DNS" + +#: ../lib/modules/hostObject.inc:166 +msgid "Add host extension" +msgstr "Afegir l'extensió de màquina" + +#: ../templates/selfService/adminMain.php:553 +#: ../help/help.inc:183 +msgid "Add input field" +msgstr "Afegir camp d'entrada" + +#: ../templates/tree/edit.php:127 +#: ../templates/tree/add_value_form.php:95 +#: ../templates/tree/add_attr_form.php:72 +#: ../templates/tree/add_attr_form.php:109 +#, php-format +msgid "Add new attribute" +msgstr "Afegeix un nou atribut" + +#: ../templates/tree/add_attr_form.php:142 +msgid "Add new binary attribute" +msgstr "Afegir un nou atribut binari." + +#: ../templates/selfService/adminMain.php:538 +#: ../help/help.inc:181 +msgid "Add new group" +msgstr "Afegeix un grup" + +#: ../lib/modules/inetOrgPerson.inc:555 +#: ../lib/modules/inetOrgPerson.inc:1066 +#: ../lib/modules/inetOrgPerson.inc:1109 +#: ../lib/modules/inetOrgPerson.inc:1634 +msgid "Add photo" +msgstr "Afegir foto" + +#: ../lib/modules/phpGroupwareGroup.inc:73 +#: ../lib/modules/phpGroupwareGroup.inc:83 +#: ../lib/modules/phpGroupwareGroup.inc:106 +#: ../lib/modules/phpGroupwareUser.inc:74 +#: ../lib/modules/phpGroupwareUser.inc:110 +#: ../lib/modules/phpGroupwareUser.inc:196 +msgid "Add phpGroupWare extension" +msgstr "Afegir l'extensió phpGroupWare" + +#: ../templates/config/profmanage.php:178 +#: ../templates/selfService/profManage.php:149 +#: ../help/help.inc:121 +msgid "Add profile" +msgstr "Afegir perfil" + +#: ../templates/tree/add_value.php:97 +msgid "Adding attribute failed!" +msgstr "Fallo al afegir l'atribut!" + +#: ../lib/modules/range.inc:98 +msgid "Adding the range failed because errors occured." +msgstr "S'han produït errors en afegir el rang. No s'ha pogut completar." + +#: ../templates/selfService/adminMain.php:456 +#: ../help/help.inc:187 +msgid "Additional CSS links" +msgstr "Enllaços CSS adicionals" + +#: ../lib/modules/posixAccount.inc:229 +#: ../lib/modules/posixAccount.inc:316 +#: ../lib/modules/posixAccount.inc:349 +#: ../lib/modules/posixAccount.inc:394 +#: ../lib/modules/posixAccount.inc:966 +#: ../lib/modules/posixAccount.inc:1050 +#: ../lib/modules/posixAccount.inc:1095 +#: ../lib/modules/posixAccount.inc:1181 +msgid "Additional groups" +msgstr "Grups adicionals" + +#: ../templates/massDoUpload.php:102 +msgid "Additional tasks for module:" +msgstr "Feines adicionals pel mòdul:" + +#: ../help/help.inc:182 +msgid "Adds a new group element to the list of self service options. Use this to structure the input fields." +msgstr "Afegeix un nou grup a la llista d'opcions de l'autoservei. Utilitza-ho per organitzar els camps d'entrada." + +#: ../help/help.inc:184 +msgid "Adds a new self service option to the selected group element." +msgstr "Afegeix una nova opció d'autoservei al grup seleccionat." + +#: ../lib/modules/range.inc:88 +msgid "Adds input fields for a new IP range." +msgstr "Afegeix camps d'entrada per un nou rang IP." + +#: ../lib/modules/inetOrgPerson.inc:292 +#: ../lib/modules/inetOrgPerson.inc:380 +msgid "Administration" +msgstr "Administració" + +#: ../lib/modules/posixGroup.inc:372 +#: ../lib/modules/nisnetgroup.inc:107 +#: ../lib/modules/groupOfNames.inc:93 +msgid "Administrators group" +msgstr "Grup de l'Administrador" + +#: ../lib/modules/eduPerson.inc:90 +#: ../lib/modules/eduPerson.inc:94 +#: ../lib/modules/eduPerson.inc:161 +#: ../lib/modules/eduPerson.inc:199 +#: ../lib/modules/eduPerson.inc:288 +#: ../lib/modules/eduPerson.inc:688 +msgid "Affiliations" +msgstr "Associacions" + +#: ../lib/modules/sambaSamAccount.inc:532 +msgid "Alaska" +msgstr "Alaska" + +#: ../lib/modules/sambaDomain.inc:211 +#: ../lib/modules/sambaDomain.inc:212 +msgid "Algorithmic RID base is not a number!" +msgstr "La base RID del algoritme no és un número!" + +#: ../lib/modules/aliasEntry.inc:38 +msgid "Alias" +msgstr "Àlies" + +#: ../lib/types/alias.inc:62 +msgid "Alias entries" +msgstr "Entrades d'àlies" + +#: ../lib/modules/nisMailAlias.inc:106 +#: ../lib/modules/nisMailAlias.inc:107 +msgid "Alias is empty or invalid!" +msgstr "L'àlies és buit o incorrecte" + +#: ../lib/types/mailAlias.inc:91 +#: ../lib/modules/nisMailAlias.inc:67 +#: ../lib/modules/nisMailAlias.inc:82 +#: ../lib/modules/nisMailAlias.inc:96 +#: ../lib/modules/nisMailAlias.inc:140 +#: ../lib/modules/nisMailAlias.inc:279 +msgid "Alias name" +msgstr "Nom d'alias" + +#: ../lib/types/alias.inc:92 +#: ../lib/modules/customScripts.inc:45 +#: ../lib/modules/uidObject.inc:52 +#: ../lib/modules/aliasEntry.inc:54 +#: ../lib/modules/aliasEntry.inc:62 +#: ../lib/modules/aliasEntry.inc:70 +#: ../lib/modules/aliasEntry.inc:92 +#: ../lib/modules/aliasEntry.inc:101 +#: ../lib/modules/aliasEntry.inc:230 +msgid "Aliased entry" +msgstr "Entrada enllaçada (aliased)" + +#: ../templates/schema/schema.php:224 +#: ../lib/types/alias.inc:53 +msgid "Aliases" +msgstr "Àlies" + +#: ../lib/lists.inc:603 +#, php-format +msgid "All accounts (%s)" +msgstr "Totes els comptes (%s)" + +#: ../templates/selfService/selfServiceMain.php:284 +#: ../templates/initsuff.php:157 +msgid "All changes were successful." +msgstr "Tots els canvis han estat satisfactoris." + +#: ../help/help.inc:194 +msgid "All following lines form the mail body." +msgstr "Totes les següents línies formen el cos del missatge." + +#: ../lib/lists.inc:602 +#, php-format +msgid "All selected accounts (%s)" +msgstr "Tots els comptes seleccionats (%s)" + +#: ../lib/modules/sambaDomain.inc:110 +#: ../lib/modules/sambaDomain.inc:187 +#: ../lib/modules/sambaDomain.inc:312 +#: ../lib/modules/sambaDomain.inc:684 +msgid "Allow machine password changes" +msgstr "Permetre efectuar canvis de contrasenya als ordinadors" + +#: ../lib/types/ppolicyType.inc:90 +#: ../lib/modules/ppolicy.inc:124 +#: ../lib/modules/ppolicy.inc:147 +#: ../lib/modules/ppolicy.inc:301 +#: ../lib/modules/ppolicy.inc:517 +msgid "Allow password change" +msgstr "Permetre efectuar canvis de contrasenya" + +#: ../lib/modules/sambaSamAccount.inc:209 +#: ../lib/modules/sambaSamAccount.inc:327 +#: ../lib/modules/sambaSamAccount.inc:1425 +#: ../lib/modules/sambaSamAccount.inc:1794 +msgid "Allow terminal server login" +msgstr "Permetre l'accés per terminal server." + +#: ../templates/config/mainmanage.php:204 +#: ../lib/types/user.inc:95 +#: ../help/help.inc:143 +msgid "Allowed hosts" +msgstr "Màquines permeses" + +#: ../lib/modules/sambaSamAccount.inc:1292 +#: ../lib/modules/sambaSamAccount.inc:1293 +msgid "Allowed workstations" +msgstr "Estacions de treball permeses" + +#: ../lib/modules/sambaSamAccount.inc:547 +msgid "Almaty, Dhaka, Colombo" +msgstr "Almaty, Dhaka, Colombo" + +#: ../lib/modules/kolabUser.inc:50 +msgid "Always accept" +msgstr "Accepta sempre" + +#: ../lib/modules/kolabUser.inc:51 +msgid "Always reject" +msgstr "Rebutja sempre" + +#: ../templates/tree/edit.php:140 +#, php-format +msgid "An attribute (%s) was modified and is highlighted below." +msgstr "L'atribut (%s) ha estat modificat i està resaltat a sota." + +#: ../lib/modules/sudoRole.inc:238 +msgid "An sudo role with this name already exists. Please choose another name." +msgstr "Ja existeix un rol de \"sudo\" amb aquest nom. Escolleix-ne un altre." + +#: ../lib/modules/kolabUser.inc:328 +#: ../lib/modules/kolabUser.inc:787 +#: ../lib/modules/kolabUser.inc:890 +msgid "Anyone" +msgstr "Qualsevol" + +#: ../lib/modules/asteriskExtension.inc:94 +#: ../lib/modules/asteriskExtension.inc:121 +#: ../lib/modules/asteriskExtension.inc:136 +#: ../lib/modules/asteriskExtension.inc:165 +#: ../lib/modules/asteriskExtension.inc:235 +#: ../lib/modules/asteriskExtension.inc:469 +msgid "Application" +msgstr "Aplicació" + +#: ../lib/modules/asteriskExtension.inc:78 +#: ../lib/modules/asteriskExtension.inc:132 +#: ../lib/modules/asteriskExtension.inc:172 +#: ../lib/modules/asteriskExtension.inc:239 +#: ../lib/modules/asteriskExtension.inc:466 +msgid "Application data" +msgstr "Dades d'aplicació" + +#: ../templates/tree/delete_form.php:149 +msgid "Are you sure you want to permanently delete this object?" +msgstr "Confirma que realment vol esborrar aquest objecte?" + +#: ../lib/modules/asteriskAccount.inc:66 +msgid "Asterisk" +msgstr "Asterisk" + +#: ../lib/modules/asteriskExtension.inc:63 +msgid "Asterisk extension" +msgstr "Extensió d'Asterisk" + +#: ../lib/types/asteriskExt.inc:53 +msgid "Asterisk extensions" +msgstr "Extensions d'Asterisk" + +#: ../lib/types/asteriskExt.inc:62 +msgid "Asterisk extensions entries" +msgstr "Camps d'extensió Asterisk" + +#: ../lib/modules/asteriskAccount.inc:95 +#: ../lib/modules/asteriskAccount.inc:102 +msgid "Asterisk realm" +msgstr "Domini d'Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:64 +msgid "Asterisk voicemail" +msgstr "Veu i correu d'Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:107 +msgid "Asterisk voicemail context." +msgstr "Context de correu i veu d'Asterisk." + +#: ../lib/modules/sambaSamAccount.inc:537 +msgid "Atlantic time (Canada), Caracas" +msgstr "Zona horaria atlàntica (Canada), Caracas" + +#: ../lib/modules/ddns.inc:390 +msgid "Attention: The DHCP service needs to be restarted after changes in DDNS." +msgstr "Atenció: El servei de DHCP s'ha de reiniciar després de fer canvis al DDNS." + +#: ../templates/tree/update_confirm.php:152 +msgid "Attribute" +msgstr "Atribut" + +#: ../templates/schema/schema.php:67 +#: ../templates/schema/schema.php:68 +msgid "Attribute types" +msgstr "Tipus d'atribut" + +#: ../lib/modules/sambaSamAccount.inc:553 +msgid "Auckland, Fiji, Kamchatka" +msgstr "Auckland, Fiji, Kamchatka" + +#: ../lib/modules/asteriskAccount.inc:96 +msgid "Authentication realm for Asterisk server (default: asterisk). This value set in sip.conf (option: \"realm\")." +msgstr "Domini d'autenticació pel servidor d'Asterisk (default: asterisk). Configurat a sip.conf (opció: \"realm\")." + +#: ../lib/modules/eduPerson.inc:127 +#: ../lib/modules/eduPerson.inc:133 +#: ../lib/modules/sambaSamAccount.inc:143 +#: ../lib/modules/sambaSamAccount.inc:375 +#: ../lib/modules/phpGroupwareUser.inc:86 +#: ../lib/modules/phpGroupwareUser.inc:93 +#: ../lib/modules/shadowAccount.inc:99 +#: ../lib/modules/shadowAccount.inc:193 +#: ../lib/modules/hostObject.inc:76 +#: ../lib/modules/hostObject.inc:95 +msgid "Automatically add this extension" +msgstr "Afegir automàticament l'extensió" + +#: ../templates/config/conftypes.php:214 +#: ../lib/modules/customScripts.inc:54 +msgid "Available account types" +msgstr "Tipus de compte disponibles" + +#: ../lib/modules/customScripts.inc:55 +#: ../lib/modules/customScripts.inc:67 +msgid "Available actions" +msgstr "Accions disponibles" + +#: ../lib/modules/posixAccount.inc:1062 +#: ../lib/modules/nisnetgroup.inc:368 +msgid "Available groups" +msgstr "Grups disponibles" + +#: ../templates/config/confmodules.php:284 +msgid "Available modules" +msgstr "Mòduls disponibles" + +#: ../lib/modules/posixGroup.inc:253 +#: ../lib/modules/asteriskExtension.inc:317 +msgid "Available users" +msgstr "Usuaris disponibles" + +#: ../lib/modules/sambaSamAccount.inc:1298 +msgid "Available workstations" +msgstr "Estacions de treball disponibles" + +#: ../lib/modules/sambaSamAccount.inc:540 +msgid "Azores, Cape Verde Islands" +msgstr "Azores, Isles cap verd" + +#: ../lib/modules/dhcp_settings.inc:87 +msgid "B-Node (0x01)" +msgstr "B-Node (0x01)" + +#: ../templates/tree/update_confirm.php:255 +#: ../templates/massBuildAccounts.php:212 +#: ../lib/modules/posixGroup.inc:259 +#: ../lib/modules/sambaSamAccount.inc:1302 +#: ../lib/modules/posixAccount.inc:1068 +#: ../lib/modules/nisnetgroup.inc:374 +#: ../lib/modules/inetOrgPerson.inc:1110 +#: ../lib/modules/asteriskExtension.inc:324 +#: ../lib/modules/groupOfNames.inc:354 +msgid "Back" +msgstr "Enrere" + +#: ../lib/types/dhcp.inc:47 +msgid "Back to DHCP list" +msgstr "Tornar al llistat DHCP" + +#: ../templates/config/index.php:115 +#: ../templates/config/conflogin.php:161 +#: ../templates/config/mainlogin.php:154 +#: ../templates/selfService/adminLogin.php:157 +#: ../templates/selfService/adminMain.php:140 +msgid "Back to Login" +msgstr "Tornar al inici de sessió" + +#: ../lib/types/nisObjectType.inc:30 +msgid "Back to NIS object list" +msgstr "Tornar a la llista d'objectes NIS" + +#: ../lib/baseType.inc:46 +msgid "Back to account list" +msgstr "Tornar a la llista de comptes" + +#: ../lib/types/mailAlias.inc:44 +#: ../lib/types/alias.inc:44 +msgid "Back to alias list" +msgstr "Tornar a la llista d'àlies" + +#: ../lib/types/smbDomain.inc:44 +msgid "Back to domain list" +msgstr "Tornar a la llista de dominis" + +#: ../lib/types/asteriskExt.inc:44 +msgid "Back to extensions list" +msgstr "Tornar a la llista d'extensions" + +#: ../templates/lists/userlink.php:63 +#: ../lib/types/gon.inc:44 +#: ../lib/types/group.inc:45 +#: ../lib/types/netgroup.inc:44 +msgid "Back to group list" +msgstr "Tornar a la llista de grups" + +#: ../lib/types/host.inc:44 +msgid "Back to host list" +msgstr "Tornar a la llista d'ordinadors" + +#: ../templates/delete.php:232 +msgid "Back to list" +msgstr "Tornar al llistat" + +#: ../lib/types/ppolicyType.inc:30 +msgid "Back to policy list" +msgstr "Tornar a la llista de polítiques" + +#: ../templates/config/profmanage.php:365 +#: ../templates/selfService/profManage.php:277 +msgid "Back to profile login" +msgstr "Tornar al perfil de inici de sessió" + +#: ../lib/types/sudo.inc:30 +msgid "Back to sudo role list" +msgstr "Tornar a la llista de rols de \"sudo\"" + +#: ../lib/types/user.inc:44 +msgid "Back to user list" +msgstr "Tornar a la llista d'usuaris" + +#: ../lib/modules/sudoRole.inc:130 +msgid "Backup script" +msgstr "Script de backup" + +#: ../lib/modules/sambaSamAccount.inc:544 +msgid "Baghdad, Riyadh, Moscow" +msgstr "Baghdad, Riyadh, Moscu" + +#: ../lib/modules/sambaSamAccount.inc:548 +msgid "Bangkok, Hanoi, Jakarta" +msgstr "Bangkok, Hanoi, Jakarta" + +#: ../templates/tree/export_form.php:74 +msgid "Base (base DN only)" +msgstr "Base (nomes DN base)" + +#: ../templates/tree/export_form.php:99 +msgid "Base DN" +msgstr "DN base" + +#: ../templates/config/confmodules.php:206 +#: ../help/help.inc:135 +msgid "Base module" +msgstr "mòdul base" + +#: ../templates/pdfedit/pdfpage.php:420 +msgid "Beginning" +msgstr "Començament" + +#: ../lib/modules/sambaSamAccount.inc:549 +msgid "Beijing, Perth, Singapore" +msgstr "Beijing, Perth, Singapur" + +#: ../templates/tree/edit.php:176 +#: ../templates/tree/edit.php:305 +msgid "Binary value" +msgstr "Valor binari" + +#: ../lib/modules/quota.inc:52 +msgid "Block hard quota" +msgstr "Bloqueig de quota \"hard\"" + +#: ../lib/modules/quota.inc:52 +#: ../lib/modules/quota.inc:53 +msgid "Block hard quota contains invalid characters. Only natural numbers are allowed." +msgstr "El Bloqueig de quota \"hard\" conté caràcters invàlids. Només s'admeten numeros naturals." + +#: ../lib/modules/quota.inc:58 +msgid "Block quota" +msgstr "Bloqueig de quota" + +#: ../lib/modules/quota.inc:50 +msgid "Block soft quota" +msgstr "Bloqueig de quota \"soft\"" + +#: ../lib/modules/quota.inc:50 +#: ../lib/modules/quota.inc:51 +msgid "Block soft quota contains invalid characters. Only natural numbers are allowed." +msgstr "El bloqueig de quota \"soft\" conté caràcters invàlids. Només s'admeten numeros naturals." + +#: ../lib/modules/quota.inc:58 +#: ../lib/modules/quota.inc:59 +msgid "Block soft quota must be smaller than block hard quota." +msgstr "El bloqueig de quota \"soft\" ha d'esser més petit que el bloqueig de quota \"hard\"" + +#: ../lib/modules/sambaSamAccount.inc:538 +msgid "Brazil, Buenos Aires" +msgstr "Brazil, Buenos Aires" + +#: ../lib/modules/sambaGroupMapping.inc:71 +msgid "Builtin group" +msgstr "Grup de sèrie" + +#: ../lib/modules/inetOrgPerson.inc:75 +#: ../lib/modules/inetOrgPerson.inc:121 +#: ../lib/modules/inetOrgPerson.inc:217 +#: ../lib/modules/inetOrgPerson.inc:290 +#: ../lib/modules/inetOrgPerson.inc:472 +#: ../lib/modules/inetOrgPerson.inc:567 +#: ../lib/modules/inetOrgPerson.inc:1015 +#: ../lib/modules/inetOrgPerson.inc:1139 +#: ../lib/modules/inetOrgPerson.inc:1603 +msgid "Business category" +msgstr "Categoria de negocis" + +#: ../lib/modules/inetOrgPerson.inc:568 +msgid "Business category (e.g. Administration, IT-Services, Manangement, ...)" +msgstr "Categoria de negocis (e.x. Administració, Serveis TIC, Gestió, ...)" + +#: ../lib/modules/customScripts.inc:81 +msgid "By default, LAM will show the executed command along with any output of it. If you want to hide the command and only show the output then activate this option." +msgstr "Per defecte, LAM mostrarà la comanda executada juntament amb la sortida. Activa aquesta opció si vols mostrar només la sortida." + +#: ../templates/masscreate.php:224 +msgid "CSV file:" +msgstr "Arxiu CSV:" + +#: ../templates/config/confmain.php:274 +#: ../help/help.inc:100 +msgid "Cache timeout" +msgstr "Temps d'espera de la caché:" + +#: ../templates/config/confmain.php:563 +msgid "Cache timeout is invalid!" +msgstr "El temps d'espera de la caché és invàlid!" + +#: ../lib/modules/asteriskAccount.inc:79 +#: ../lib/modules/asteriskAccount.inc:125 +#: ../lib/modules/asteriskAccount.inc:135 +#: ../lib/modules/asteriskAccount.inc:191 +#: ../lib/modules/asteriskAccount.inc:287 +msgid "Caller ID" +msgstr "ID de qui fa la petició" + +#: ../lib/modules/sambaSamAccount.inc:282 +#: ../lib/modules/sambaSamAccount.inc:285 +#: ../lib/modules/sambaSamAccount.inc:288 +#: ../lib/modules/sambaSamAccount.inc:294 +#: ../lib/modules/posixAccount.inc:395 +#: ../lib/modules/sambaGroupMapping.inc:368 +#: ../lib/modules/shadowAccount.inc:174 +#: ../lib/modules/shadowAccount.inc:178 +#: ../lib/modules/shadowAccount.inc:182 +#: ../lib/modules/shadowAccount.inc:186 +msgid "Can be left empty." +msgstr "Es pot deixar en blanc." + +#: ../templates/tree/update_confirm.php:241 +#: ../templates/tree/delete_form.php:119 +#: ../templates/tree/delete_form.php:168 +#: ../templates/ou_edit.php:113 +#: ../templates/config/mainmanage.php:378 +#: ../templates/config/confmodules.php:184 +#: ../templates/config/confmain.php:217 +#: ../templates/config/moduleSettings.php:183 +#: ../templates/config/conftypes.php:202 +#: ../templates/selfService/adminMain.php:306 +#: ../templates/pdfedit/pdfdelete.php:92 +#: ../templates/pdfedit/pdfpage.php:688 +#: ../templates/delete.php:112 +#: ../templates/profedit/profiledelete.php:83 +#: ../templates/profedit/profilepage.php:259 +#: ../templates/initsuff.php:187 +#: ../lib/modules/sambaSamAccount.inc:1367 +#: ../lib/modules/sambaSamAccount.inc:1405 +#: ../lib/modules/sambaSamAccount.inc:1528 +#: ../lib/modules/kolabUser.inc:576 +#: ../lib/modules/phpGroupwareUser.inc:262 +#: ../lib/modules/shadowAccount.inc:403 +#: ../lib/modules/nisnetgroup.inc:471 +#: ../lib/modules/aliasEntry.inc:142 +#: ../lib/modules/aliasEntry.inc:161 +#: ../lib/modules/groupOfNames.inc:238 +#: ../lib/modules/groupOfNames.inc:259 +#: ../lib/modules/groupOfNames.inc:306 +#: ../lib/lists.inc:614 +#: ../lib/lists.inc:830 +#: ../lib/modules.inc:1317 +msgid "Cancel" +msgstr "Cancel·lar" + +#: ../templates/login.php:417 +#: ../templates/login.php:475 +#: ../templates/login.php:480 +#: ../templates/selfService/selfServiceLogin.php:120 +#: ../templates/selfService/selfServiceLogin.php:124 +#: ../templates/selfService/selfServiceMain.php:165 +msgid "Cannot connect to specified LDAP server. Please try again." +msgstr "No puc conectar amb el servidor de LDAP especificat. Si us plau, proveu-ho de nou." + +#: ../templates/login.php:220 +#: ../lib/config.inc:1150 +msgid "Cannot open config file!" +msgstr "No puc obrir l'arxiu de configuració!" + +#: ../templates/selfService/adminMain.php:403 +msgid "Captions and labels" +msgstr "Llegenda i etiquetes" + +#: ../lib/modules/inetOrgPerson.inc:120 +#: ../lib/modules/inetOrgPerson.inc:213 +#: ../lib/modules/inetOrgPerson.inc:402 +#: ../lib/modules/inetOrgPerson.inc:466 +#: ../lib/modules/inetOrgPerson.inc:579 +#: ../lib/modules/inetOrgPerson.inc:997 +#: ../lib/modules/inetOrgPerson.inc:1141 +#: ../lib/modules/inetOrgPerson.inc:1587 +msgid "Car license" +msgstr "Llicència de conduïr" + +#: ../lib/modules/sambaSamAccount.inc:542 +msgid "Central Europe Time, Paris, Berlin" +msgstr "Central Europe Time, Paris, Berlin" + +#: ../lib/modules/sambaSamAccount.inc:535 +msgid "Central Time (US & Canada), Mexico City" +msgstr "Central Time (US & Canada), Mexico City" + +#: ../templates/selfService/adminMain.php:481 +#: ../templates/pdfedit/pdfpage.php:468 +#: ../templates/pdfedit/pdfpage.php:474 +#: ../lib/modules/sambaSamAccount.inc:1141 +#: ../lib/modules/sambaSamAccount.inc:1401 +#: ../lib/modules/phpGroupwareUser.inc:158 +#: ../lib/modules/phpGroupwareUser.inc:258 +#: ../lib/modules/shadowAccount.inc:335 +#: ../lib/modules/shadowAccount.inc:399 +#: ../lib/modules/asteriskExtension.inc:245 +#: ../lib/modules/aliasEntry.inc:94 +#: ../lib/modules/groupOfNames.inc:160 +#: ../lib/modules/groupOfNames.inc:177 +msgid "Change" +msgstr "Canviar" + +#: ../lib/modules/posixGroup.inc:205 +msgid "Change GID number of users and hosts" +msgstr "Canviar numero GID e usuaris i màquines" + +#: ../templates/config/profmanage.php:330 +#: ../help/help.inc:129 +msgid "Change default profile" +msgstr "Canviar perfil per defecte" + +#: ../lib/lists.inc:816 +msgid "Change list settings" +msgstr "Canviar configuració de la llista" + +#: ../templates/config/mainmanage.php:342 +#: ../help/help.inc:131 +msgid "Change master password" +msgstr "Canviar contrasenya mestre" + +#: ../templates/lists/changePassword.php:128 +#: ../templates/lists/changePassword.php:183 +#: ../templates/lists/changePassword.php:214 +#: ../lib/types/user.inc:247 +#: ../help/help.inc:98 +msgid "Change password" +msgstr "Canviar contrasenya" + +#: ../templates/config/confmain.php:326 +#: ../templates/config/confmain.php:329 +msgid "Change passwords" +msgstr "Canviar contrasenya" + +#: ../templates/login.php:352 +msgid "Change profile" +msgstr "Canviar perfil" + +#: ../lib/lists.inc:667 +#: ../lib/lists.inc:668 +msgid "Change settings" +msgstr "Configuració de la pàgina" + +#: ../lib/modules/posixAccount.inc:837 +msgid "Changed value because only ASCII characters are allowed." +msgstr "S'ha canviat el valor perquè només s'admetien valors alfanumèrics." + +#: ../templates/tests/index.php:51 +msgid "Check if quotas and homedirectories can be managed." +msgstr "Comprova si les quotes i els directoris personals poden ser gestionats." + +#: ../templates/tests/index.php:54 +msgid "Check if the LDAP schema fits the requirements of the selected account modules." +msgstr "Comprova si l'esquema LDAP compleix els requisits dels mòduls de compte seleccionats." + +#: ../templates/tests/lamdaemonTest.php:90 +msgid "Check quotas" +msgstr "Comprovació de quota" + +#: ../templates/masscreate.php:215 +msgid "Check your input carefully. LAM will only do some basic checks on the upload data." +msgstr "Alerta amb el que escriguis. LAM només farà comprovacions bàsiques a la informació pujada." + +#: ../lib/modules/posixAccount.inc:97 +msgid "Choose a server for the home directory!" +msgstr "Tria un servidor per el directori principal" + +#: ../templates/tree/create_form.php:76 +msgid "Choose a template" +msgstr "Escull una plantilla" + +#: ../templates/tree/create.php:169 +#: ../lib/config.inc:152 +msgid "Click here if you are not directed to the next page." +msgstr "Premeu aquí si no sou redirigits a la pròxima pàgina." + +#: ../lib/types/user.inc:218 +msgid "Click to switch between thumbnail and original size." +msgstr "Fes clic per canviar entre miniatura i mida original." + +#: ../lib/modules/sambaSamAccount.inc:221 +#: ../lib/modules/sambaSamAccount.inc:354 +#: ../lib/modules/sambaSamAccount.inc:1491 +#: ../lib/modules/sambaSamAccount.inc:1822 +msgid "Client printer is default" +msgstr "La impressora del client està per defecte" + +#: ../templates/schema/schema.php:197 +msgid "Collective" +msgstr "Colectiu" + +#: ../templates/masscreate.php:235 +msgid "Columns:" +msgstr "Columnes:" + +#: ../lib/modules/sambaSamAccount.inc:294 +msgid "Comma separated list of Samba workstations the user is allowed to login. Empty means every workstation." +msgstr "Llista de estacions de treball de Samba en les quals l'usuari té permès iniciar sessió. En blanc significa totes." + +#: ../lib/types/sudo.inc:80 +#: ../lib/modules/customScripts.inc:129 +msgid "Command" +msgstr "Comanda" + +#: ../lib/modules/sudoRole.inc:71 +#: ../lib/modules/sudoRole.inc:97 +#: ../lib/modules/sudoRole.inc:146 +#: ../lib/modules/sudoRole.inc:175 +#: ../lib/modules/sudoRole.inc:190 +#: ../lib/modules/sudoRole.inc:339 +#: ../lib/modules/sudoRole.inc:714 +msgid "Commands" +msgstr "Comandes" + +#: ../templates/tree/update_confirm.php:234 +msgid "Commit" +msgstr "Desar" + +#: ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:319 +#: ../lib/modules/posixAccount.inc:398 +#: ../lib/modules/posixAccount.inc:420 +#: ../lib/modules/posixAccount.inc:944 +#: ../lib/modules/posixAccount.inc:1176 +#: ../lib/modules/inetOrgPerson.inc:68 +#: ../lib/modules/inetOrgPerson.inc:485 +#: ../lib/modules/inetOrgPerson.inc:547 +#: ../lib/modules/inetOrgPerson.inc:845 +#: ../lib/modules/inetOrgPerson.inc:1137 +#: ../lib/modules/inetOrgPerson.inc:1191 +#: ../lib/modules/asteriskExtension.inc:102 +#: ../lib/modules/asteriskExtension.inc:138 +#: ../lib/modules/asteriskExtension.inc:158 +#: ../lib/modules/asteriskExtension.inc:219 +#: ../lib/modules/asteriskExtension.inc:481 +msgid "Common name" +msgstr "Nom comú" + +#: ../lib/modules/asteriskExtension.inc:103 +msgid "Common name of the Asterisk extension." +msgstr "Nom comú de l'extensió Asterisk." + +#: ../templates/serverInfo.php:100 +msgid "Config suffix" +msgstr "Configurar Sufix" + +#: ../templates/config/index.php:50 +msgid "Configuration overview" +msgstr "Veure la configuració" + +#: ../templates/config/confmodules.php:367 +msgid "Conflicting module:" +msgstr "Mòdul en conflicte:" + +#: ../lib/modules/sambaSamAccount.inc:219 +#: ../lib/modules/sambaSamAccount.inc:348 +#: ../lib/modules/sambaSamAccount.inc:1481 +#: ../lib/modules/sambaSamAccount.inc:1812 +msgid "Connect client drives" +msgstr "Connecta les unitats del client" + +#: ../lib/modules/sambaSamAccount.inc:220 +#: ../lib/modules/sambaSamAccount.inc:351 +#: ../lib/modules/sambaSamAccount.inc:1486 +#: ../lib/modules/sambaSamAccount.inc:1817 +msgid "Connect client printers" +msgstr "Connecta les impressores del client" + +#: ../lib/modules/sambaSamAccount.inc:216 +#: ../lib/modules/sambaSamAccount.inc:1466 +#: ../lib/modules/sambaSamAccount.inc:1805 +msgid "Connection time limit" +msgstr "Temps límit de connexió" + +#: ../templates/tree/templates/creation/custom.php:66 +#: ../templates/tree/templates/creation/new_ou_template.php:105 +msgid "Container" +msgstr "Contenidor" + +#: ../templates/tree/templates/creation/new_ou_template.php:64 +msgid "Container DN" +msgstr "DN del contenidor" + +#: ../templates/tree/delete_attr.php:82 +msgid "Could not perform ldap_modify operation." +msgstr "No s'ha pogut realitzar la funció ldap_modify." + +#: ../templates/config/profmanage.php:109 +#: ../templates/selfService/profManage.php:97 +msgid "Could not rename file!" +msgstr "No he pogut renombrar l'arxiu!" + +#: ../templates/pdfedit/pdfpage.php:99 +msgid "Could not save PDF structure, access denied." +msgstr "No s'ha pogut gravar l'estructura PDF, accés denegat." + +#: ../lib/modules/kolabUser.inc:90 +#: ../lib/modules/kolabUser.inc:159 +#: ../lib/modules/kolabUser.inc:188 +#: ../lib/modules/kolabUser.inc:227 +#: ../lib/modules/kolabUser.inc:288 +#: ../lib/modules/kolabUser.inc:763 +msgid "Country" +msgstr "Pais" + +#: ../lib/modules/kolabUser.inc:245 +#: ../lib/modules/kolabUser.inc:246 +msgid "Country name is invalid!" +msgstr "El nom del pais és invàlid!" + +#: ../templates/tree/templates/creation/custom.php:234 +#: ../templates/tree/templates/creation/new_ou_template.php:107 +#: ../templates/pdfedit/pdfmain.php:144 +#: ../templates/profedit/profilemain.php:139 +#: ../templates/initsuff.php:186 +msgid "Create" +msgstr "Crear" + +#: ../templates/tree/creation_template.php:85 +#: ../templates/tree/create_form.php:75 +msgid "Create Object" +msgstr "Crear objecte" + +#: ../lib/lists.inc:411 +#: ../lib/lists.inc:573 +#: ../lib/modules.inc:1468 +#: ../help/help.inc:162 +msgid "Create PDF file" +msgstr "Crear arxiu PDF" + +#: ../templates/pdfedit/pdfmain.php:135 +msgid "Create a new PDF structure" +msgstr "Crear una nova estructura de PDF" + +#: ../templates/profedit/profilemain.php:123 +msgid "Create a new profile" +msgstr "Crear un nou perfil" + +#: ../lib/types/dhcp.inc:46 +msgid "Create another DHCP entry" +msgstr "Crear nova entrada DHCP" + +#: ../lib/types/nisObjectType.inc:29 +msgid "Create another NIS object" +msgstr "Crear un altre objecte NIS" + +#: ../lib/baseType.inc:45 +msgid "Create another account" +msgstr "Crear un altre compte" + +#: ../lib/types/mailAlias.inc:43 +#: ../lib/types/alias.inc:43 +msgid "Create another alias" +msgstr "Crear un altre àlies" + +#: ../lib/types/smbDomain.inc:43 +msgid "Create another domain" +msgstr "Crear un altre domini" + +#: ../lib/types/asteriskExt.inc:43 +msgid "Create another extension" +msgstr "Crear una altra extensió" + +#: ../lib/types/gon.inc:43 +#: ../lib/types/group.inc:44 +#: ../lib/types/netgroup.inc:43 +msgid "Create another group" +msgstr "Crear un altre grup" + +#: ../lib/types/host.inc:43 +msgid "Create another host" +msgstr "Crear un altre host" + +#: ../lib/types/ppolicyType.inc:29 +msgid "Create another policy" +msgstr "Crear una altra política" + +#: ../lib/types/sudo.inc:29 +msgid "Create another sudo role" +msgstr "Crear un altre rol de \"sudo\"" + +#: ../lib/types/user.inc:43 +msgid "Create another user" +msgstr "Crear un altre usuari" + +#: ../lib/lists.inc:590 +msgid "Create for" +msgstr "Crear" + +#: ../lib/modules/posixAccount.inc:242 +#: ../lib/modules/posixAccount.inc:983 +#: ../lib/modules/posixAccount.inc:1112 +msgid "Create home directory" +msgstr "Crear directori del usuari" + +#: ../templates/tree/edit.php:125 +#: ../templates/tree/tree.php:189 +#: ../templates/tree/tree.php:191 +#: ../templates/tree/tree.php:192 +#: ../lib/tree.inc:92 +#: ../lib/tree.inc:93 +#: ../lib/tree.inc:157 +#: ../lib/tree.inc:159 +#: ../lib/tree.inc:160 +msgid "Create new entry" +msgstr "Crear nou" + +#: ../templates/config/profmanage.php:94 +#: ../templates/selfService/profManage.php:80 +msgid "Created new profile." +msgstr "Crear nou perfil" + +#: ../lib/tools/fileUpload.inc:53 +msgid "Creates accounts by uploading a CSV formated file." +msgstr "Crea comptes mitjançant l'enviament d'un arxiu de tipo CSV." + +#: ../templates/tree/add_value_form.php:101 +msgid "Current list of values for attribute:" +msgstr "Llista actual dels valors de l'atribut:" + +#: ../templates/tree/templates/templates.inc:51 +msgid "Custom" +msgstr "A mida" + +#: ../lib/modules/customScripts.inc:41 +#: ../lib/modules/customScripts.inc:52 +#: ../lib/modules/customScripts.inc:65 +#: ../lib/modules/customScripts.inc:86 +#: ../lib/modules/customScripts.inc:95 +msgid "Custom scripts" +msgstr "Script de inici de sessió" + +#: ../lib/modules/ddns.inc:65 +msgid "DDNS" +msgstr "DDNS" + +#: ../lib/modules/ddns.inc:360 +msgid "DDNS ist not activated. You can activate it in the DHCP settings (DDNS)." +msgstr "El DDNS no està activat. El pots activar a les preferències de DHCP (DDNS)." + +#: ../lib/types/dhcp.inc:56 +msgid "DHCP" +msgstr "DHCP" + +#: ../lib/types/dhcp.inc:65 +msgid "DHCP administration" +msgstr "Administració de DHCP" + +#: ../lib/types/dhcp.inc:126 +#: ../lib/modules/dhcp_settings.inc:101 +msgid "DHCP settings" +msgstr "Configuració del DHCP" + +#: ../templates/tree/edit.php:92 +#: ../templates/tree/add_value_form.php:99 +#: ../templates/tree/add_oclass_form.php:124 +#: ../templates/tree/update_confirm.php:79 +#: ../templates/tree/add_attr_form.php:73 +#: ../templates/tree/delete_form.php:77 +#: ../templates/tree/delete_form.php:151 +#: ../templates/delete.php:91 +#: ../lib/modules.inc:384 +#: ../lib/modules.inc:1546 +#: ../lib/modules.inc:2019 +msgid "DN" +msgstr "DN" + +#: ../templates/masscreate.php:238 +msgid "DN settings" +msgstr "Configuració de DN" + +#: ../templates/masscreate.php:242 +#: ../help/help.inc:156 +msgid "DN suffix" +msgstr "Sufix del DN" + +#: ../lib/modules/dhcp_settings.inc:170 +#: ../lib/modules/dhcp_settings.inc:202 +#: ../lib/modules/dhcp_settings.inc:256 +#: ../lib/modules/dhcp_settings.inc:569 +#: ../lib/modules/dhcp_settings.inc:671 +msgid "DNS" +msgstr "DNS" + +#: ../lib/modules/dhcp_settings.inc:131 +msgid "DNS (Domain Name System)" +msgstr "DNS (Servei de Noms de Domini)" + +#: ../lib/modules/asteriskExtension.inc:99 +msgid "DNs of the extension owners" +msgstr "DNs dels propietaris de les extensions" + +#: ../lib/export.inc:511 +#, php-format +msgid "DSML Export for: %s" +msgstr "Exportació DSML per: %s" + +#: ../templates/tree/templates/creation/custom.php:96 +msgid "Data field for RDN is empty!" +msgstr "El camp per l' RDN està buit!" + +#: ../lib/modules/sambaSamAccount.inc:274 +msgid "Date after the user is able to change his password." +msgstr "Data a partir de la qual l'usuari pot canviar la contrasenya." + +#: ../lib/modules/sambaSamAccount.inc:276 +msgid "Date after the user must change his password." +msgstr "Data a partir de la qual l'usuari ha de canviar la contrasenya." + +#: ../lib/modules/shadowAccount.inc:174 +msgid "Days before password is to expire that user is warned of pending password expiration. If set value must be >0." +msgstr "Nombre de dies abans de caducar la contrasenya en que es comença a avisar a l'usuari. Si s'especifica, ha de ser <0." + +#: ../templates/config/mainmanage.php:267 +msgid "Debug" +msgstr "Debug" + +#: ../lib/modules/dhcp_settings.inc:134 +#: ../lib/modules/dhcp_settings.inc:171 +#: ../lib/modules/dhcp_settings.inc:207 +#: ../lib/modules/dhcp_settings.inc:262 +#: ../lib/modules/dhcp_settings.inc:575 +#: ../lib/modules/dhcp_settings.inc:672 +msgid "Default gateway" +msgstr "Porta d'enllaç per defecte" + +#: ../templates/config/confmain.php:354 +#: ../help/help.inc:94 +msgid "Default language" +msgstr "Idioma per defecte" + +#: ../templates/masscreate.php:250 +#: ../templates/masscreate.php:413 +msgid "Default value" +msgstr "Valor per defecte" + +#: ../lib/modules/sambaDomain.inc:111 +msgid "Defines if workstations may change their passwords." +msgstr "Defineix si les estacions de treball han de canviar les seves contrasenyes." + +#: ../lib/modules/kolabUser.inc:129 +#: ../lib/modules/kolabUser.inc:143 +#: ../lib/modules/kolabUser.inc:147 +#: ../lib/modules/kolabUser.inc:207 +#: ../lib/modules/kolabUser.inc:230 +#: ../lib/modules/kolabUser.inc:392 +#: ../lib/modules/kolabUser.inc:801 +#: ../lib/modules/kolabUser.inc:872 +msgid "Delegates" +msgstr "Delegats" + +#: ../lib/modules/kolabUser.inc:250 +msgid "Delegates has invalid format!" +msgstr "Delegates té un format invàlid!" + +#: ../templates/tree/edit.php:112 +#: ../templates/tree/delete_form.php:159 +#: ../templates/ou_edit.php:112 +#: ../templates/pdfedit/pdfdelete.php:91 +#: ../templates/pdfedit/pdfmain.php:178 +#: ../templates/delete.php:111 +#: ../templates/profedit/profilemain.php:170 +#: ../lib/tree.inc:1176 +#: ../lib/modules/eduPerson.inc:280 +#: ../lib/modules/eduPerson.inc:305 +#: ../lib/modules/eduPerson.inc:331 +#: ../lib/modules/eduPerson.inc:377 +#: ../lib/modules/kolabUser.inc:863 +#: ../lib/modules/nisnetgroup.inc:229 +#: ../lib/lists.inc:406 +msgid "Delete" +msgstr "Esborrar" + +#: ../templates/tree/delete_form.php:76 +#, php-format +msgid "Delete %s" +msgstr "Esborrar %s" + +#: ../lib/types/dhcp.inc:127 +msgid "Delete DHCP(s)" +msgstr "Esborrar DHCP(s)" + +#: ../lib/modules/kolabUser.inc:401 +msgid "Delete Kolab account" +msgstr "Esborrar compte de Kolab" + +#: ../lib/types/nisObjectType.inc:108 +msgid "Delete NIS object(s)" +msgstr "Esborrar tots els objectes NIS" + +#: ../lib/types/mailAlias.inc:120 +#: ../lib/types/alias.inc:120 +msgid "Delete alias(es)" +msgstr "Esborrar àlies" + +#: ../templates/tree/delete_form.php:111 +#, php-format +msgid "Delete all %s objects" +msgstr "Esborrar tots els objectes %s" + +#: ../lib/types/smbDomain.inc:120 +msgid "Delete domain(s)" +msgstr "Esborrar domini(s)" + +#: ../lib/types/asteriskExt.inc:121 +msgid "Delete extension(s)" +msgstr "Esborrar les extensions" + +#: ../lib/types/gon.inc:122 +#: ../lib/types/group.inc:134 +#: ../lib/types/netgroup.inc:122 +msgid "Delete group(s)" +msgstr "Esborrar grup(s)" + +#: ../lib/modules/posixAccount.inc:1022 +msgid "Delete home directory" +msgstr "Esborrar directori del usuari" + +#: ../lib/types/host.inc:124 +msgid "Delete host(s)" +msgstr "Esborrar màquine(s)" + +#: ../lib/lists.inc:109 +msgid "Delete object" +msgstr "Esborrar tots els objectes %s" + +#: ../templates/ou_edit.php:181 +#: ../help/help.inc:202 +msgid "Delete organizational unit" +msgstr "Esborrar unitat organitzativa (OU)" + +#: ../lib/modules/inetOrgPerson.inc:1069 +msgid "Delete photo" +msgstr "Esborrar foto" + +#: ../lib/types/ppolicyType.inc:128 +msgid "Delete policy(ies)" +msgstr "Esborrar polítiques" + +#: ../templates/config/profmanage.php:258 +#: ../templates/selfService/profManage.php:243 +#: ../help/help.inc:125 +msgid "Delete profile" +msgstr "Esborrar perfil" + +#: ../lib/modules/range.inc:84 +#: ../lib/modules/range.inc:99 +#: ../lib/modules/range.inc:428 +#: ../lib/modules/range.inc:429 +msgid "Delete range" +msgstr "Esborrar rang" + +#: ../lib/types/sudo.inc:112 +msgid "Delete sudo role(s)" +msgstr "Esborrar rol de \"sudo\"" + +#: ../lib/types/user.inc:138 +msgid "Delete user(s)" +msgstr "Esborrar usuari(s)" + +#: ../templates/delete.php:220 +#, php-format +msgid "Deleted DN: %s" +msgstr "S'ha esborrat el DN: %s" + +#: ../templates/pdfedit/pdfmain.php:125 +msgid "Deleted PDF structure." +msgstr "S'ha esborrat l'estructura de PDF." + +#: ../lib/modules/sambaGroupMapping.inc:72 +msgid "Deleted account" +msgstr "Compte esborrat" + +#: ../templates/profedit/profilemain.php:114 +msgid "Deleted profile." +msgstr "S'ha esborrat el perfil." + +#: ../lib/modules/range.inc:85 +msgid "Deletes an IP range." +msgstr "Esborra un rang d'IPs." + +#: ../templates/tree/rdelete.php:74 +#: ../templates/tree/rdelete.php:136 +#: ../templates/tree/rdelete.php:148 +#, php-format +msgid "Deleting %s" +msgstr "Esborrant %s" + +#: ../templates/delete.php:130 +msgid "Deleting. Please stand by ..." +msgstr "Esborrant. Si us plau, esperi..." + +#: ../lib/modules/inetOrgPerson.inc:122 +#: ../lib/modules/inetOrgPerson.inc:133 +#: ../lib/modules/inetOrgPerson.inc:219 +#: ../lib/modules/inetOrgPerson.inc:378 +#: ../lib/modules/inetOrgPerson.inc:475 +#: ../lib/modules/inetOrgPerson.inc:587 +#: ../lib/modules/inetOrgPerson.inc:1024 +#: ../lib/modules/inetOrgPerson.inc:1147 +#: ../lib/modules/inetOrgPerson.inc:1644 +msgid "Department(s)" +msgstr "Departament(s)" + +#: ../templates/tree/add_value_form.php:186 +#: ../templates/schema/schema.php:87 +#: ../templates/schema/schema.php:141 +#: ../templates/schema/schema.php:344 +#: ../lib/types/nisObjectType.inc:80 +#: ../lib/types/user.inc:101 +#: ../lib/types/sudo.inc:84 +#: ../lib/types/netgroup.inc:92 +#: ../lib/modules/account.inc:75 +#: ../lib/modules/account.inc:88 +#: ../lib/modules/account.inc:98 +#: ../lib/modules/account.inc:106 +#: ../lib/modules/account.inc:208 +#: ../lib/modules/account.inc:222 +#: ../lib/modules/posixGroup.inc:178 +#: ../lib/modules/posixGroup.inc:331 +#: ../lib/modules/posixGroup.inc:383 +#: ../lib/modules/posixGroup.inc:449 +#: ../lib/modules/dhcp_settings.inc:161 +#: ../lib/modules/dhcp_settings.inc:176 +#: ../lib/modules/dhcp_settings.inc:289 +#: ../lib/modules/dhcp_settings.inc:615 +#: ../lib/modules/dhcp_settings.inc:677 +#: ../lib/modules/posixAccount.inc:416 +#: ../lib/modules/nisObject.inc:66 +#: ../lib/modules/nisObject.inc:96 +#: ../lib/modules/nisObject.inc:107 +#: ../lib/modules/nisObject.inc:148 +#: ../lib/modules/nisObject.inc:213 +#: ../lib/modules/sambaGroupMapping.inc:313 +#: ../lib/modules/sambaGroupMapping.inc:390 +#: ../lib/modules/nisnetgroup.inc:72 +#: ../lib/modules/nisnetgroup.inc:125 +#: ../lib/modules/nisnetgroup.inc:184 +#: ../lib/modules/nisnetgroup.inc:569 +#: ../lib/modules/inetOrgPerson.inc:183 +#: ../lib/modules/inetOrgPerson.inc:258 +#: ../lib/modules/inetOrgPerson.inc:421 +#: ../lib/modules/inetOrgPerson.inc:491 +#: ../lib/modules/inetOrgPerson.inc:854 +#: ../lib/modules/inetOrgPerson.inc:1122 +#: ../lib/modules/sudoRole.inc:59 +#: ../lib/modules/sudoRole.inc:128 +#: ../lib/modules/sudoRole.inc:172 +#: ../lib/modules/sudoRole.inc:272 +#: ../lib/modules/sudoRole.inc:705 +#: ../lib/modules/groupOfNames.inc:64 +#: ../lib/modules/groupOfNames.inc:91 +#: ../lib/modules/groupOfNames.inc:112 +#: ../lib/modules/groupOfNames.inc:146 +#: ../lib/modules/groupOfNames.inc:446 +msgid "Description" +msgstr "Descripció" + +#: ../lib/modules/sambaSamAccount.inc:369 +#: ../lib/modules/sambaSamAccount.inc:559 +msgid "Disable LM hashes" +msgstr "Desactivar els hash LM" + +#: ../lib/modules/ddns.inc:89 +#: ../lib/modules/ddns.inc:348 +msgid "Disable client updates" +msgstr "Desactivar actualitzacions del client" + +#: ../lib/modules/ddns.inc:90 +msgid "Disables the client to update DNS entries." +msgstr "No permet que el client actualitzi entrades DNS." + +#: ../lib/modules/sambaDomain.inc:106 +#: ../lib/modules/sambaDomain.inc:186 +#: ../lib/modules/sambaDomain.inc:301 +#: ../lib/modules/sambaDomain.inc:679 +msgid "Disconnect users outside logon hours" +msgstr "Desconnectar usuaris fora de les hores d'accés permeses" + +#: ../lib/modules/sambaSamAccount.inc:217 +#: ../lib/modules/sambaSamAccount.inc:1471 +#: ../lib/modules/sambaSamAccount.inc:1806 +msgid "Disconnection time limit" +msgstr "Tems de desconnexió límit" + +#: ../lib/modules/sambaDomain.inc:107 +msgid "Disconnects users if they are logged in outside logon hours." +msgstr "Desconnectar usuaris si han entrat fora de les hores permeses." + +#: ../lib/modules/sambaSamAccount.inc:96 +#: ../lib/modules/sambaSamAccount.inc:189 +#: ../lib/modules/sambaSamAccount.inc:234 +#: ../lib/modules/sambaSamAccount.inc:392 +#: ../lib/modules/sambaSamAccount.inc:1083 +#: ../lib/modules/sambaSamAccount.inc:1763 +#: ../lib/modules/sambaGroupMapping.inc:236 +#: ../lib/modules/sambaGroupMapping.inc:311 +#: ../lib/modules/sambaGroupMapping.inc:355 +#: ../lib/modules/sambaGroupMapping.inc:388 +msgid "Display name" +msgstr "Nom a visualitzar" + +#: ../templates/lists/changePassword.php:174 +msgid "Display on screen" +msgstr "Mostrar a la pantalla" + +#: ../lib/modules.inc:477 +msgid "Displayed account numbers start at \"0\". Add 2 to get the row in your spreadsheet." +msgstr "Els numeros de compte de la llista començen per \"0\". Afegeixi'n 2 per obtenir la fila en la seva fulla de càlcul." + +#: ../templates/ou_edit.php:106 +msgid "Do you really want to delete this OU?" +msgstr "Confirma que realment vol esborrar aquesta OU?" + +#: ../templates/pdfedit/pdfdelete.php:77 +msgid "Do you really want to delete this PDF structure?" +msgstr "Confirma que realment vol esborrar aquesta estructura de PDF?" + +#: ../templates/profedit/profiledelete.php:78 +msgid "Do you really want to delete this profile?" +msgstr "Confirma que realment vol esborrar aquest perfil?" + +#: ../lib/modules/kolabUser.inc:571 +msgid "Do you really want to mark this account for deletion?" +msgstr "Segur que vol marcar aquest compte per borrar?" + +#: ../templates/delete.php:85 +msgid "Do you really want to remove the following accounts?" +msgstr "Confirma que vol esborrar els següents comptes?" + +#: ../templates/tree/update_confirm.php:146 +msgid "Do you want to make these changes?" +msgstr "Vol desar els canvis?" + +#: ../lib/modules/sambaSamAccount.inc:190 +#: ../lib/modules/sambaSamAccount.inc:312 +#: ../lib/modules/sambaSamAccount.inc:385 +#: ../lib/modules/sambaSamAccount.inc:509 +#: ../lib/modules/sambaSamAccount.inc:1232 +#: ../lib/modules/sambaSamAccount.inc:1624 +#: ../lib/modules/sambaSamAccount.inc:1656 +#: ../lib/modules/sambaSamAccount.inc:1781 +#: ../lib/modules/sambaGroupMapping.inc:69 +#: ../lib/modules/sambaGroupMapping.inc:273 +#: ../lib/modules/sambaGroupMapping.inc:367 +#: ../lib/modules/sambaGroupMapping.inc:410 +#: ../lib/modules/nisnetgroup.inc:209 +#: ../lib/modules/nisnetgroup.inc:579 +msgid "Domain" +msgstr "Domini" + +#: ../lib/types/smbDomain.inc:91 +#: ../lib/modules/sambaDomain.inc:74 +#: ../lib/modules/sambaDomain.inc:144 +#: ../lib/modules/sambaDomain.inc:178 +#: ../lib/modules/sambaDomain.inc:244 +#: ../lib/modules/sambaDomain.inc:250 +#: ../lib/modules/sambaDomain.inc:651 +msgid "Domain SID" +msgstr "SID del domini" + +#: ../lib/modules/sambaGroupMapping.inc:334 +msgid "Domain administrators" +msgstr "Administradors del domini" + +#: ../lib/modules/sambaSamAccount.inc:69 +#: ../lib/modules/sambaGroupMapping.inc:56 +#: ../lib/modules/sambaGroupMapping.inc:340 +msgid "Domain admins" +msgstr "Administradors de domini" + +#: ../lib/modules/sambaSamAccount.inc:70 +#: ../lib/modules/sambaGroupMapping.inc:61 +msgid "Domain certificate admins" +msgstr "Administradors certificats de domini" + +#: ../lib/modules/sambaSamAccount.inc:70 +#: ../lib/modules/sambaSamAccount.inc:797 +#: ../lib/modules/sambaGroupMapping.inc:59 +msgid "Domain computers" +msgstr "Ordinadors del domini" + +#: ../lib/modules/sambaSamAccount.inc:70 +#: ../lib/modules/sambaGroupMapping.inc:60 +msgid "Domain controllers" +msgstr "Controladors del domini" + +#: ../lib/modules/sambaSamAccount.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:63 +msgid "Domain enterprise admins" +msgstr "Administradors del domini" + +#: ../lib/modules/sambaGroupMapping.inc:68 +#: ../lib/modules/sambaGroupMapping.inc:261 +msgid "Domain group" +msgstr "Grup del domini" + +#: ../lib/modules/sambaSamAccount.inc:69 +#: ../lib/modules/sambaGroupMapping.inc:58 +msgid "Domain guests" +msgstr "Convidats del domini" + +#: ../lib/types/smbDomain.inc:92 +#: ../lib/modules/dhcp_settings.inc:119 +#: ../lib/modules/dhcp_settings.inc:167 +#: ../lib/modules/dhcp_settings.inc:187 +#: ../lib/modules/dhcp_settings.inc:238 +#: ../lib/modules/dhcp_settings.inc:551 +#: ../lib/modules/dhcp_settings.inc:668 +#: ../lib/modules/nisnetgroup.inc:139 +#: ../lib/modules/sambaDomain.inc:70 +#: ../lib/modules/sambaDomain.inc:137 +#: ../lib/modules/sambaDomain.inc:177 +#: ../lib/modules/sambaDomain.inc:231 +#: ../lib/modules/sambaDomain.inc:237 +#: ../lib/modules/sambaDomain.inc:648 +msgid "Domain name" +msgstr "Nom del Domini" + +#: ../lib/modules/nisnetgroup.inc:139 +#: ../lib/modules/sambaDomain.inc:201 +#: ../lib/modules/sambaDomain.inc:202 +msgid "Domain name is invalid!" +msgstr "El nom del domini és invàlid!" + +#: ../lib/modules/sambaSamAccount.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:64 +msgid "Domain policy admins" +msgstr "Administradors de polítiques del domini" + +#: ../lib/modules/sambaSamAccount.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:62 +msgid "Domain schema admins" +msgstr "Administradors de l'esquema del domini" + +#: ../lib/modules/sambaSamAccount.inc:69 +#: ../lib/modules/sambaSamAccount.inc:2088 +#: ../lib/modules/sambaGroupMapping.inc:57 +msgid "Domain users" +msgstr "Usuaris del domini" + +#: ../templates/pdfedit/pdfpage.php:434 +msgid "Down" +msgstr "Abaix" + +#: ../templates/masscreate.php:369 +msgid "Download sample CSV file" +msgstr "Rebre un arxiu CSV d'exemple" + +#: ../templates/serverInfo.php:108 +msgid "Dynamic subtrees" +msgstr "Subarbres dinàmics" + +#: ../lib/modules/eduPerson.inc:64 +msgid "EDU person" +msgstr "EDU person" + +#: ../lib/modules/sambaSamAccount.inc:551 +msgid "East Australian Standard, Guam" +msgstr "East Australian Standard, Guam" + +#: ../lib/modules/sambaSamAccount.inc:543 +msgid "Eastern Europe Time, South Africa" +msgstr "Eastern Europe Time, South Africa" + +#: ../lib/modules/sambaSamAccount.inc:536 +msgid "Eastern Time (US & Canada), Bogota" +msgstr "Eastern Time (US & Canada), Bogota" + +#: ../templates/pdfedit/pdfmain.php:175 +#: ../templates/profedit/profilemain.php:167 +#: ../lib/modules/sambaSamAccount.inc:1240 +#: ../lib/modules/sambaSamAccount.inc:1246 +#: ../lib/lists.inc:401 +msgid "Edit" +msgstr "Editar" + +#: ../templates/config/mainmanage.php:134 +#: ../templates/config/index.php:77 +msgid "Edit general settings" +msgstr "Configuració de servidor" + +#: ../lib/modules/posixAccount.inc:967 +msgid "Edit groups" +msgstr "Editar grups" + +#: ../lib/modules/posixGroup.inc:184 +msgid "Edit members" +msgstr "Editar membres" + +#: ../templates/config/index.php:103 +msgid "Edit self service" +msgstr "Editar autoservei" + +#: ../templates/config/index.php:89 +msgid "Edit server profiles" +msgstr "Perfils del servidor" + +#: ../lib/modules/nisnetgroup.inc:195 +msgid "Edit subgroups" +msgstr "Editar subgrups" + +#: ../lib/modules/sambaSamAccount.inc:1190 +msgid "Edit workstations" +msgstr "Editar estacions de treball" + +#: ../lib/types/user.inc:100 +msgid "Email" +msgstr "Correu electrònic" + +#: ../templates/lists/changePassword.php:158 +#: ../lib/modules/inetOrgPerson.inc:56 +#: ../lib/modules/inetOrgPerson.inc:117 +#: ../lib/modules/inetOrgPerson.inc:209 +#: ../lib/modules/inetOrgPerson.inc:362 +#: ../lib/modules/inetOrgPerson.inc:460 +#: ../lib/modules/inetOrgPerson.inc:543 +#: ../lib/modules/inetOrgPerson.inc:544 +#: ../lib/modules/inetOrgPerson.inc:976 +#: ../lib/modules/inetOrgPerson.inc:1136 +#: ../lib/modules/inetOrgPerson.inc:1491 +#: ../lib/modules/asteriskVoicemail.inc:94 +#: ../lib/modules/asteriskVoicemail.inc:136 +#: ../lib/modules/asteriskVoicemail.inc:174 +#: ../lib/modules/asteriskVoicemail.inc:249 +#: ../lib/modules/asteriskVoicemail.inc:378 +msgid "Email address" +msgstr "Adreça de correu electrònic" + +#: ../lib/modules/asteriskVoicemail.inc:95 +msgid "Email address for this voicemail account." +msgstr "Adreça de correu per aquest compte de veu i correu." + +#: ../lib/modules/kolabUser.inc:151 +msgid "Email alias" +msgstr "Àlies de correu electrònic" + +#: ../lib/modules/kolabUser.inc:152 +msgid "Email alias for this account." +msgstr "Àlies de correu electrònic per aquest compte." + +#: ../lib/modules/kolabUser.inc:243 +msgid "Email alias is invalid!" +msgstr "L'àlies de correu electrònic no és vàlid" + +#: ../lib/modules/kolabUser.inc:155 +msgid "Email alias list" +msgstr "Llista d'àlies de correu electrònic" + +#: ../lib/modules/kolabUser.inc:244 +msgid "Email alias list has invalid format!" +msgstr "La llista d'àlies de correu electrònic té un format incorrecte" + +#: ../lib/modules/kolabUser.inc:201 +#: ../lib/modules/kolabUser.inc:229 +#: ../lib/modules/kolabUser.inc:366 +#: ../lib/modules/kolabUser.inc:797 +msgid "Email aliases" +msgstr "Àlies de correu electrònic" + +#: ../lib/modules/inetOrgPerson.inc:66 +#: ../lib/modules/inetOrgPerson.inc:151 +#: ../lib/modules/inetOrgPerson.inc:215 +#: ../lib/modules/inetOrgPerson.inc:274 +#: ../lib/modules/inetOrgPerson.inc:469 +#: ../lib/modules/inetOrgPerson.inc:507 +#: ../lib/modules/inetOrgPerson.inc:1006 +#: ../lib/modules/inetOrgPerson.inc:1126 +msgid "Employee type" +msgstr "Tipo de treballador" + +#: ../lib/modules/inetOrgPerson.inc:508 +msgid "Employee type: Contractor, Employee, Intern, Temp, External, ..." +msgstr "Tipo de treballador: Intern, temporal, extern, Contable, ..." + +#: ../templates/lists/changePassword.php:246 +#: ../templates/lists/changePassword.php:252 +#: ../templates/login.php:394 +msgid "Empty password submitted. Please try again." +msgstr "S'han especificat contrasenyes en blanc. Proveu un altre vegada." + +#: ../lib/modules/ppolicy.inc:89 +msgid "Enables quality checking (e.g. password length) of passwords. If set to \"force\" then you need to disable password hashing in your LAM server profile to change passwords with LAM." +msgstr "Activa la comprovació de qualitat de les contrasenyes (ex. longitud). Si ho configures a \"force\" hauràs de desactivar el hashing de contrasenyes al perfil de servidor de LAM per poder canviar contrasenyes." + +#: ../templates/tree/download_binary_attr.php:71 +msgid "Encountered an error while performing search." +msgstr "S'ha trobat un error mentre es feia la busqueda." + +#: ../lib/modules/sambaSamAccount.inc:529 +msgid "Eniwetok, Kwajalein" +msgstr "Eniwetok, Kwajalein" + +#: ../templates/tree/add_value_form.php:137 +msgid "Enter the value you would like to add:" +msgstr "Entra el valor que vols afegir:" + +#: ../lib/modules/eduPerson.inc:103 +#: ../lib/modules/eduPerson.inc:107 +#: ../lib/modules/eduPerson.inc:174 +#: ../lib/modules/eduPerson.inc:205 +#: ../lib/modules/eduPerson.inc:339 +#: ../lib/modules/eduPerson.inc:692 +msgid "Entitlements" +msgstr "Drets" + +#: ../lib/export.inc:407 +msgid "Entry" +msgstr "Entrada" + +#: ../templates/tree/rdelete.php:118 +#, php-format +msgid "Entry %s and sub-tree deleted successfully." +msgstr "L'element %s i el seu subarbre esborrat satisfactòriament" + +#: ../templates/tree/delete.php:107 +#, php-format +msgid "Entry %s deleted successfully." +msgstr "L'element %s s'ha esborrat satisfactòriament." + +#: ../templates/schema/schema.php:164 +msgid "Equality" +msgstr "Igualtat" + +#: ../templates/config/mainmanage.php:267 +msgid "Error" +msgstr "Error" + +#: ../templates/delete.php:225 +#, php-format +msgid "Error while deleting DN: %s" +msgstr "Error mentre s'esborrava DN: %s" + +#: ../help/help.inc:136 +msgid "Every account type needs exactly one base module. This module provides a structural object class." +msgstr "Cada tipo de compte necessita un mòdul base. Aquest mòdul proveu una estructura a l'objecte." + +#: ../lib/modules/customScripts.inc:60 +#: ../lib/modules/customScripts.inc:72 +#: ../lib/modules/dhcp_settings.inc:546 +#: ../help/help.inc:73 +#: ../help/help.inc:79 +#: ../help/help.inc:85 +#: ../help/help.inc:90 +#: ../help/help.inc:112 +msgid "Example" +msgstr "Exemple" + +#: ../templates/masscreate.php:249 +#: ../templates/masscreate.php:409 +msgid "Example value" +msgstr "valor d'exemple" + +#: ../help/help.inc:61 +msgid "Examples" +msgstr "Exemples" + +#: ../templates/config/confmain.php:436 +msgid "Execute" +msgstr "Executar" + +#: ../templates/tests/lamdaemonTest.php:249 +msgid "Execute lamdaemon" +msgstr "Executar lamdaemon " + +#: ../lib/types/ppolicyType.inc:86 +#: ../lib/modules/ppolicy.inc:108 +#: ../lib/modules/ppolicy.inc:140 +#: ../lib/modules/ppolicy.inc:166 +#: ../lib/modules/ppolicy.inc:210 +#: ../lib/modules/ppolicy.inc:501 +msgid "Expire warning" +msgstr "Avís de caducitat" + +#: ../templates/tree/edit.php:116 +#: ../templates/tree/export_form.php:88 +#: ../templates/tree/export_form.php:96 +msgid "Export" +msgstr "Exportar" + +#: ../templates/tree/export_form.php:135 +msgid "Export format" +msgstr "Format d'exportació" + +#: ../lib/types/asteriskExt.inc:91 +#: ../lib/modules/asteriskExtension.inc:86 +#: ../lib/modules/asteriskExtension.inc:134 +#: ../lib/modules/asteriskExtension.inc:144 +#: ../lib/modules/asteriskExtension.inc:227 +#: ../lib/modules/asteriskExtension.inc:475 +msgid "Extension name" +msgstr "Nom de l'extensió" + +#: ../lib/modules/asteriskExtension.inc:98 +#: ../lib/modules/asteriskExtension.inc:137 +#: ../lib/modules/asteriskExtension.inc:185 +#: ../lib/modules/asteriskExtension.inc:244 +#: ../lib/modules/asteriskExtension.inc:307 +#: ../lib/modules/asteriskExtension.inc:478 +msgid "Extension owners" +msgstr "Propietaris de l'extensió" + +#: ../templates/tree/add_attr.php:132 +msgid "Failed to add the attribute." +msgstr "Fallo al afegir l'atribut!" + +#: ../templates/initsuff.php:151 +msgid "Failed to create entry!" +msgstr "Fallo al crear l'entrada!" + +#: ../templates/tree/rdelete.php:121 +#: ../templates/tree/rdelete.php:142 +#: ../templates/tree/rdelete.php:154 +#, php-format +msgid "Failed to delete entry %s" +msgstr "Fallo al esborrar l'element %s" + +#: ../lib/types/ppolicyType.inc:85 +#: ../lib/modules/ppolicy.inc:104 +#: ../lib/modules/ppolicy.inc:145 +#: ../lib/modules/ppolicy.inc:165 +#: ../lib/modules/ppolicy.inc:283 +#: ../lib/modules/ppolicy.inc:500 +msgid "Failure count interval" +msgstr "Interval de comptador de fallades" + +#: ../lib/modules/inetOrgPerson.inc:54 +#: ../lib/modules/inetOrgPerson.inc:118 +#: ../lib/modules/inetOrgPerson.inc:207 +#: ../lib/modules/inetOrgPerson.inc:354 +#: ../lib/modules/inetOrgPerson.inc:457 +#: ../lib/modules/inetOrgPerson.inc:539 +#: ../lib/modules/inetOrgPerson.inc:540 +#: ../lib/modules/inetOrgPerson.inc:967 +#: ../lib/modules/inetOrgPerson.inc:1135 +#: ../lib/modules/inetOrgPerson.inc:1523 +msgid "Fax number" +msgstr "Numero de fax" + +#: ../templates/config/mainmanage.php:333 +msgid "File" +msgstr "Fitxer" + +#: ../lib/modules/sambaSamAccount.inc:288 +msgid "File name and path relative to netlogon-share which should be executed on logon. $user and $group are replaced with user and group name." +msgstr "Nom i camí de l'arxiu a executar al inici de sessió. El camí es relatiu respecte al recurs \"netlogon\". $user i $group seràn subtituïts amb el nom del usuari i el grup respectivament." + +#: ../templates/masscreate.php:211 +#: ../lib/tools/fileUpload.inc:44 +msgid "File upload" +msgstr "Enviar arxiu" + +#: ../templates/tree/add_attr.php:95 +msgid "File upload failed!" +msgstr "Ha fallat l'enviament de l'arxiu!" + +#: ../lib/modules/nisnetgroup.inc:89 +#: ../lib/modules/nisnetgroup.inc:452 +#: ../lib/lists.inc:334 +#: ../help/help.inc:147 +msgid "Filter" +msgstr "Filtre" + +#: ../lib/types/user.inc:96 +#: ../lib/modules/inetOrgPerson.inc:44 +#: ../lib/modules/inetOrgPerson.inc:116 +#: ../lib/modules/inetOrgPerson.inc:243 +#: ../lib/modules/inetOrgPerson.inc:417 +#: ../lib/modules/inetOrgPerson.inc:499 +#: ../lib/modules/inetOrgPerson.inc:830 +#: ../lib/modules/inetOrgPerson.inc:1124 +#: ../lib/modules/inetOrgPerson.inc:1475 +msgid "First name" +msgstr "Nom" + +#: ../lib/modules/inetOrgPerson.inc:44 +#: ../lib/modules/inetOrgPerson.inc:45 +msgid "First name contains invalid characters!" +msgstr "El nom conté caràcters invàlids!" + +#: ../lib/modules/inetOrgPerson.inc:500 +msgid "First name of user. Only letters, - and spaces are allowed." +msgstr "Nom del usuari. Només s'admeten lletres, - i espais." + +#: ../lib/modules/ddns.inc:86 +msgid "Fix IP addresses" +msgstr "Arreglar adreces IP" + +#: ../lib/modules/fixed_ip.inc:63 +msgid "Fixed IP" +msgstr "IP fixa" + +#: ../templates/config/confmain.php:468 +#: ../templates/config/confmain.php:471 +msgid "Fixed list" +msgstr "Llista fixa" + +#: ../lib/modules/kolabUser.inc:136 +msgid "For automatic invitation handling." +msgstr "Per la manipulació automàtica d'invitacions" + +#: ../lib/modules/nisnetgroup.inc:86 +msgid "For the upload please specify the entries in the format \"(HOST,USER,DOMAIN)\". Multiple entries are separated by semicolon." +msgstr "Per la pujada especifica les entrades en format \"(HOST,USUARI,DOMINI\". Pots afegir diverses entrades mitjançant un punt i coma." + +#: ../help/help.inc:192 +msgid "Format" +msgstr "Format" + +#: ../lib/modules/kolabUser.inc:94 +#: ../lib/modules/kolabUser.inc:128 +#: ../lib/modules/kolabUser.inc:167 +#: ../lib/modules/kolabUser.inc:213 +#: ../lib/modules/kolabUser.inc:231 +#: ../lib/modules/kolabUser.inc:311 +#: ../lib/modules/kolabUser.inc:775 +#: ../lib/modules/kolabUser.inc:827 +msgid "Free/Busy interval" +msgstr "Interval de Lliure/Ocupat" + +#: ../lib/modules/kolabUser.inc:251 +#: ../lib/modules/kolabUser.inc:252 +msgid "Free/Busy interval must be a number!" +msgstr "L'intervat de Lliure/Ocupat ha de ser un numero!" + +#: ../lib/modules/sambaSamAccount.inc:1320 +msgid "Friday" +msgstr "Divendres" + +#: ../templates/lists/changePassword.php:154 +#: ../lib/modules/asteriskVoicemail.inc:90 +#: ../lib/modules/asteriskVoicemail.inc:135 +#: ../lib/modules/asteriskVoicemail.inc:168 +#: ../lib/modules/asteriskVoicemail.inc:245 +#: ../lib/modules/asteriskVoicemail.inc:375 +msgid "Full name" +msgstr "Nom complet" + +#: ../lib/modules/asteriskVoicemail.inc:91 +msgid "Full name for Asterisk voicemail mailbox." +msgstr "Nom complet per la bústia de correu i veu d'Asterisk." + +#: ../lib/modules/inetOrgPerson.inc:308 +msgid "GB-12345" +msgstr "GB-12345" + +#: ../lib/types/host.inc:96 +#: ../lib/types/group.inc:93 +#: ../lib/types/user.inc:93 +#: ../lib/modules/posixGroup.inc:173 +#: ../lib/modules/posixGroup.inc:324 +#: ../lib/modules/posixGroup.inc:337 +#: ../lib/modules/posixGroup.inc:379 +#: ../lib/modules/posixGroup.inc:399 +#: ../lib/modules/posixGroup.inc:447 +#: ../lib/modules/posixGroup.inc:466 +#: ../lib/modules/posixAccount.inc:91 +#: ../lib/modules/posixAccount.inc:313 +#: ../lib/modules/posixAccount.inc:1178 +#: ../lib/modules/sambaGroupMapping.inc:309 +#: ../lib/modules/sambaGroupMapping.inc:386 +msgid "GID number" +msgstr "Numero GID" + +#: ../lib/modules/posixGroup.inc:466 +msgid "GID number has changed. Please select checkbox to change GID number of users and hosts." +msgstr "El GID ha canviat. Seleccioneu el checkbox per canviar el GID de usuaris i màquines." + +#: ../lib/modules/posixAccount.inc:91 +#, php-format +msgid "GID number has changed. To keep file ownership you have to run the following command as root: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" +msgstr "El GID ha canviat. Per mantenir els propietaris dels arxius que hagin quedat descolocats, ha d'executar com a root: \"find / -gid %s -uid %s -exec chgrp %s {} \\;" + +#: ../lib/modules/posixGroup.inc:473 +msgid "GID number has to be a numeric value!" +msgstr "El numero GID ha de ser un valor numèric!" + +#: ../lib/modules/posixAccount.inc:271 +#: ../lib/modules/posixAccount.inc:303 +#: ../lib/modules/posixAccount.inc:314 +#: ../lib/modules/posixAccount.inc:370 +#: ../lib/modules/posixAccount.inc:408 +#: ../lib/modules/posixAccount.inc:956 +#: ../lib/modules/posixAccount.inc:1179 +msgid "Gecos" +msgstr "Gecos" + +#: ../templates/config/confmodules.php:131 +#: ../templates/config/confmain.php:164 +#: ../templates/config/moduleSettings.php:130 +#: ../templates/config/conftypes.php:149 +msgid "General settings" +msgstr "Configuració de servidor" + +#: ../templates/lists/changePassword.php:170 +#: ../help/help.inc:189 +msgid "Generate random password" +msgstr "Generar contrasenya aleatòria" + +#: ../lib/modules/kolabUser.inc:190 +msgid "Germany" +msgstr "Alemanya" + +#: ../templates/schema/schema.php:126 +#: ../templates/schema/schema.php:263 +#: ../templates/schema/schema.php:294 +#: ../templates/schema/schema.php:319 +msgid "Go" +msgstr "Anar" + +#: ../lib/types/ppolicyType.inc:82 +#: ../lib/modules/ppolicy.inc:92 +#: ../lib/modules/ppolicy.inc:141 +#: ../lib/modules/ppolicy.inc:162 +#: ../lib/modules/ppolicy.inc:219 +#: ../lib/modules/ppolicy.inc:497 +msgid "Grace authentication limit" +msgstr "Límit de l'autenticació" + +#: ../lib/modules/quota.inc:117 +#: ../lib/modules/quota.inc:385 +msgid "Grace block period" +msgstr "Periode de gracia de blocs" + +#: ../lib/modules/quota.inc:118 +msgid "Grace block period. Most filesystems use a fixed maximum value of 7 days." +msgstr "Periode de gracia. La majoria de sistemes d'arxius utilitza un màxim fixe de 7 dies." + +#: ../lib/modules/quota.inc:140 +msgid "Grace inode (files) period. Most filesystems use a fixed maximum value of 7 days." +msgstr "Periode de gràcia de inodes(arxius). La majoria de sistemes d'arxius utilitza un màxim fixe de 7 dies." + +#: ../lib/modules/quota.inc:139 +#: ../lib/modules/quota.inc:389 +msgid "Grace inode period" +msgstr "Periode de gracia per inodes" + +#: ../templates/config/confmain.php:441 +#: ../templates/selfService/adminMain.php:579 +msgid "Group" +msgstr "Grups" + +#: ../lib/types/group.inc:63 +msgid "Group accounts (e.g. Unix and Samba)" +msgstr "Comptes de grup (e.x. Unix i Samba)" + +#: ../lib/types/group.inc:96 +#: ../lib/modules/posixGroup.inc:370 +#: ../lib/modules/nisnetgroup.inc:105 +msgid "Group description" +msgstr "Descripcció del grup" + +#: ../lib/modules/posixGroup.inc:384 +msgid "Group description. If left empty group name will be used." +msgstr "Descripció del grup. Si es deixa en blanc, es farà servir el nom del grup." + +#: ../lib/types/gon.inc:92 +#: ../lib/types/gon.inc:93 +#: ../lib/types/group.inc:95 +msgid "Group member DNs" +msgstr "DNs dels membres del grup" + +#: ../lib/types/group.inc:94 +#: ../lib/modules/posixGroup.inc:183 +#: ../lib/modules/posixGroup.inc:241 +#: ../lib/modules/posixGroup.inc:325 +#: ../lib/modules/posixGroup.inc:343 +#: ../lib/modules/posixGroup.inc:387 +#: ../lib/modules/posixGroup.inc:391 +#: ../lib/modules/posixGroup.inc:448 +msgid "Group members" +msgstr "Membres del grup" + +#: ../lib/types/gon.inc:91 +#: ../lib/types/group.inc:92 +#: ../lib/types/netgroup.inc:91 +#: ../lib/modules/posixGroup.inc:168 +#: ../lib/modules/posixGroup.inc:328 +#: ../lib/modules/posixGroup.inc:358 +#: ../lib/modules/posixGroup.inc:407 +#: ../lib/modules/posixGroup.inc:446 +#: ../lib/modules/posixGroup.inc:474 +#: ../lib/modules/posixGroup.inc:475 +#: ../lib/modules/posixGroup.inc:476 +#: ../lib/modules/nisnetgroup.inc:68 +#: ../lib/modules/nisnetgroup.inc:97 +#: ../lib/modules/nisnetgroup.inc:124 +#: ../lib/modules/nisnetgroup.inc:136 +#: ../lib/modules/nisnetgroup.inc:178 +#: ../lib/modules/nisnetgroup.inc:567 +#: ../lib/modules/groupOfNames.inc:60 +#: ../lib/modules/groupOfNames.inc:84 +#: ../lib/modules/groupOfNames.inc:111 +#: ../lib/modules/groupOfNames.inc:442 +msgid "Group name" +msgstr "Nom del grup" + +#: ../lib/modules/posixGroup.inc:476 +#: ../lib/modules/posixGroup.inc:477 +#: ../lib/modules/nisnetgroup.inc:136 +msgid "Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !" +msgstr "NomDeGrup conté caràcters invàlids. Els caràcters vàlids són: a-z, A-Z, 0-9 i .-_ !" + +#: ../lib/modules/posixGroup.inc:475 +msgid "Group name in use. Selected next free group name." +msgstr "El nom del grup ja està ocupat. Seleccionem el pròxim lliure." + +#: ../lib/modules/posixGroup.inc:408 +msgid "Group name of the group which should be created. Valid characters are: a-z, A-Z, 0-9 and .-_ . If group name is already used group name will be expanded with a number. The next free number will be used." +msgstr "El nom del grup que s'ha de crear. Els caràcters vàlids són: a-z,A-Z,0-9, i .-_. Si el nom de grup ja es fa servir, s'ampliarà amb un nombre. Es farà servir el primer nombre lliure." + +#: ../lib/types/gon.inc:53 +#: ../lib/modules/groupOfNames.inc:44 +msgid "Group of names" +msgstr "Grup de noms" + +#: ../lib/types/gon.inc:62 +msgid "Group of names accounts" +msgstr "Grup de noms de compte" + +#: ../lib/modules/groupOfUniqueNames.inc:42 +msgid "Group of unique names" +msgstr "Grup de noms únics" + +#: ../lib/modules/posixGroup.inc:349 +#: ../lib/modules/posixGroup.inc:395 +msgid "Group password" +msgstr "Contrasenya de grup" + +#: ../lib/modules/sambaGroupMapping.inc:267 +msgid "Group type" +msgstr "Tipo de grup" + +#: ../lib/types/group.inc:54 +#: ../lib/modules/posixGroup.inc:297 +msgid "Groups" +msgstr "Grups" + +#: ../lib/modules/dhcp_settings.inc:90 +msgid "H-Node (0x08)" +msgstr "H-Node(0x08)" + +#: ../lib/modules/quota.inc:592 +msgid "Hard block" +msgstr "Bloc \"hard\"" + +#: ../lib/modules/quota.inc:111 +#: ../lib/modules/quota.inc:112 +#: ../lib/modules/quota.inc:384 +#: ../lib/modules/quota.inc:476 +msgid "Hard block limit" +msgstr "Limit de bloc \"hard\"" + +#: ../lib/modules/quota.inc:594 +msgid "Hard inode" +msgstr "Inode \"hard\"" + +#: ../lib/modules/quota.inc:134 +msgid "Hard inode (files) limit" +msgstr "Limit de inodes \"hard\"" + +#: ../lib/modules/quota.inc:133 +#: ../lib/modules/quota.inc:388 +#: ../lib/modules/quota.inc:478 +msgid "Hard inode limit" +msgstr "Limit de inodes \"hard\"" + +#: ../lib/modules/sambaSamAccount.inc:531 +msgid "Hawaii" +msgstr "Hawaii" + +#: ../templates/pdfedit/pdfpage.php:410 +#: ../templates/pdfedit/pdfpage.php:570 +#: ../templates/pdfedit/pdfpage.php:584 +msgid "Headline" +msgstr "Capçalera" + +#: ../lib/modules.inc:952 +msgid "Help" +msgstr "Ajuda" + +#: ../templates/masscreate.php:233 +msgid "Here is a list of possible columns. The red columns must be included in the CSV file and filled with data for all accounts." +msgstr "Aqui hi ha una lista de columnes possibles. Les columnes en vermell han d'estar incluïdes al fitxer CSV i omplertes amb informació per tots els comptes." + +#: ../lib/tools/schemaBrowser.inc:53 +msgid "Here you can browse LDAP object classes and attributes." +msgstr "Aqui pots explorar clases i atributs de LDAP" + +#: ../lib/modules/sambaSamAccount.inc:367 +msgid "Here you can change the settings for the terminal server access." +msgstr "Aqui pots canviar la configuració per l'accés mitjançant terminal server." + +#: ../templates/masscreate.php:114 +msgid "Here you can create multiple accounts by providing a CSV file." +msgstr "Aquí pot crear múltiples comptes partint d'un arxiu CSV." + +#: ../lib/modules/dhcp_settings.inc:162 +msgid "Here you can enter a description for this DHCP entry." +msgstr "Aqui pots introduïr una descripció per aquesta entrada DHCP." + +#: ../lib/modules/nisnetgroup.inc:73 +#: ../lib/modules/groupOfNames.inc:65 +msgid "Here you can enter a description for this group." +msgstr "Aqui pots introduir una descripció per aquest grup." + +#: ../lib/modules/sudoRole.inc:60 +msgid "Here you can enter a description for this role." +msgstr "Aquí pots introduir una descripció per aquest rol." + +#: ../lib/modules/nisnetgroup.inc:90 +msgid "Here you can enter a filter value. Only entries which contain the filter text will be shown." +msgstr "Aqui pots introduïr un valor de filtre. Només es mostraran les entrades que compleixin el filtre." + +#: ../lib/modules/posixAccount.inc:350 +msgid "Here you can enter a list of additional group memberships. The group names are separated by commas." +msgstr "Aqui hi pots entrar una llista de grups adicionals als quals es pot pertànyer. Els noms dels grups han d'anar separats per comes." + +#: ../lib/modules/inetOrgPerson.inc:588 +msgid "Here you can enter the user's department(s). Multiple entries are separated by semicolons." +msgstr "Departament(s) de l'usuari. Pots introduir diversos valors separats per comes." + +#: ../help/help.inc:148 +msgid "Here you can input simple filter expressions (e.g. 'value' or 'v*'). The filter is case-sensitive." +msgstr "Introdueix expressions simples com a filtre (p.ex. 'valor' o 'v*'). Es tenen en compte majúscules/minúscules." + +#: ../help/help.inc:161 +msgid "Here you can load an account profile to set default settings for your account. The \"default\" profile is automatically loaded for new accounts." +msgstr "Aqui pots carregar un perfil de compte per tal d'establir uns valors per defecte del nou compte. El perfil \"default\" s'utilitza per nous comptes" + +#: ../lib/tools/profileEditor.inc:53 +msgid "Here you can manage your account profiles." +msgstr "Aquí pot administrar els seus perfils de compte." + +#: ../help/help.inc:163 +msgid "Here you can select a PDF structure and export the account to a PDF file." +msgstr "Aquí pots sel·leccionar una estructura de PDF i exportar el compte a PDF." + +#: ../help/help.inc:142 +msgid "Here you can select where LAM should save its log messages. System logging will go to Syslog on Unix systems and event log on Windows. You can also select an extra file." +msgstr "Aqui pots seleccionar on LAM ha de guardar els seus missatges de log. El log del sistema anirà al Syslog a sistemes Unix, i al registre d'events a Windows. També pots triar un fitxer extra." + +#: ../help/help.inc:107 +msgid "Here you can select which plugins you want to use for account management." +msgstr "Aquí pot seleccionar quins \"plugins\" vol utilitzar per l'administració de comptes." + +#: ../help/help.inc:120 +msgid "Here you can set a limit for LDAP searches. This will restrict the number of results for LDAP searches. Please use this if LAM's LDAP queries produce too much load." +msgstr "Limit per les cerques LDAP. Es restringirà el nombre de resultat de les cerques LDAP. Recomanat si les consultes LDAP generen molta càrrega." + +#: ../help/help.inc:188 +msgid "Here you can specify additional CSS links to change the layout of the self service pages. This is useful to adapt them to your corporate design. Please enter one link per line." +msgstr "Aqui pots especificar enllaços a CSS adicionals per canviar l'aspecte de les pàgines d'autoservei. És útil per adaptar-les a la marca corporativa. Escriu un enllaç per línia." + +#: ../lib/modules/phpGroupwareUser.inc:79 +msgid "Here you can specify if the account is active or inactive." +msgstr "Aqui pots especificar si el compte està actiu o inactiu." + +#: ../help/help.inc:146 +msgid "Here you can specify minimum requirements for passwords. The character classes are: lowercase, uppercase, numeric and symbols." +msgstr "Aqui pots especificar els requisits mínims de contrasenyes. Les classes de caràcters són: minúscula, majuscula, nombres i símbols." + +#: ../lib/modules/nisnetgroup.inc:77 +msgid "Here you can specify subgroups which are included in this NIS netgroup. All members of the subgroups will be treated as members of this group." +msgstr "Aqui pots especificar quins subgrups estan inclosos dins aquest grup de xarxa NIS. Tots els membres dels subgrups seran tractats com a membres d'aquest grup." + +#: ../lib/modules/hostObject.inc:73 +msgid "Here you can specify the list of host names where this account has login privileges. The wildcard \"*\" represents all hosts. You may also use \"!\" in front of a host name to deny access to a host." +msgstr "Llista de màquines on aquest compte té privilegis d'accés. El comodí \"*\" representa totes les màquines. Posar \"!\" al davant d'un nom de màquina, denega l'accés particular a la màquina. " + +#: ../lib/modules/sambaDomain.inc:95 +msgid "Here you can specify the minimum number of characters for a user password." +msgstr "Aqui pots especificar el mínim nombre de caràcters per la contrasenya de l'usuari." + +#: ../templates/lists/changePassword.php:190 +msgid "Here you can specify the new password yourself." +msgstr "Aqui pots especificar la nova contrasenya tu mateix." + +#: ../lib/modules/sambaSamAccount.inc:358 +msgid "Here you can specify the shadowing mode." +msgstr "Aqui pots especificar el mode d'ocultació." + +#: ../lib/tools/tests.inc:53 +msgid "Here you can test if certain LAM features work on your installation." +msgstr "Aqui pots comprovar si estan funcionant diverses característiques de LAM." + +#: ../lib/modules/sambaSamAccount.inc:372 +#: ../lib/modules/sambaSamAccount.inc:570 +#: ../lib/modules/inetOrgPerson.inc:179 +#: ../lib/modules/inetOrgPerson.inc:591 +msgid "Hidden options" +msgstr "Opcions ocultes" + +#: ../lib/modules/customScripts.inc:80 +#: ../lib/modules/customScripts.inc:90 +#: ../lib/modules/customScripts.inc:99 +msgid "Hide command in messages" +msgstr "Ocultar visualització de la comanda als missatges." + +#: ../templates/tree/edit.php:101 +msgid "Hide internal attributes" +msgstr "Amaga atributs interns" + +#: ../templates/masscreate.php:217 +msgid "Hint: Format all cells as text in your spreadsheet program and turn off auto correction." +msgstr "Consell: Formata totes les caselles com a texte en el teu full de càlcul i desactiva l'autocorreció." + +#: ../templates/tree/edit.php:121 +msgid "Hint: To delete an attribute, empty the text field and click save." +msgstr "Pista: Per borrar un atribut, deixa el camp en blanc i grava." + +#: ../lib/modules/posixAccount.inc:395 +msgid "Hold the CTRL-key to (de)select multiple groups." +msgstr "Mantingui la tecla CTRL per (des)sel·leccionar múltiples grups." + +#: ../lib/types/user.inc:98 +#: ../lib/modules/sambaSamAccount.inc:210 +#: ../lib/modules/sambaSamAccount.inc:330 +#: ../lib/modules/sambaSamAccount.inc:1430 +#: ../lib/modules/sambaSamAccount.inc:1795 +#: ../lib/modules/posixAccount.inc:66 +#: ../lib/modules/posixAccount.inc:67 +#: ../lib/modules/posixAccount.inc:69 +#: ../lib/modules/posixAccount.inc:97 +#: ../lib/modules/posixAccount.inc:235 +#: ../lib/modules/posixAccount.inc:317 +#: ../lib/modules/posixAccount.inc:353 +#: ../lib/modules/posixAccount.inc:357 +#: ../lib/modules/posixAccount.inc:361 +#: ../lib/modules/posixAccount.inc:378 +#: ../lib/modules/posixAccount.inc:765 +#: ../lib/modules/posixAccount.inc:970 +#: ../lib/modules/posixAccount.inc:1101 +#: ../lib/modules/posixAccount.inc:1182 +msgid "Home directory" +msgstr "Directori del usuari" + +#: ../lib/modules/posixAccount.inc:69 +#, php-format +msgid "Home directory changed. To keep home directory you have to run the following command as root: 'mv %s %s'" +msgstr "El directori del usuari ha canviat. Per conservar el que tenia, ha d'executar com a root: ' mv %s %s'" + +#: ../lib/modules/posixAccount.inc:1122 +msgid "Home directory server" +msgstr "Directori principal del servidor" + +#: ../lib/modules/sambaSamAccount.inc:194 +#: ../lib/modules/sambaSamAccount.inc:211 +#: ../lib/modules/sambaSamAccount.inc:278 +#: ../lib/modules/sambaSamAccount.inc:459 +#: ../lib/modules/sambaSamAccount.inc:574 +#: ../lib/modules/sambaSamAccount.inc:1153 +#: ../lib/modules/sambaSamAccount.inc:1441 +#: ../lib/modules/sambaSamAccount.inc:1580 +#: ../lib/modules/sambaSamAccount.inc:1769 +#: ../lib/modules/sambaSamAccount.inc:1796 +msgid "Home drive" +msgstr "Disc del usuari" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaSamAccount.inc:82 +#: ../lib/modules/sambaSamAccount.inc:197 +#: ../lib/modules/sambaSamAccount.inc:281 +#: ../lib/modules/sambaSamAccount.inc:467 +#: ../lib/modules/sambaSamAccount.inc:577 +#: ../lib/modules/sambaSamAccount.inc:1163 +#: ../lib/modules/sambaSamAccount.inc:1588 +#: ../lib/modules/sambaSamAccount.inc:1766 +msgid "Home path" +msgstr "Ruta al directori del usuari" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaSamAccount.inc:83 +msgid "Home path is invalid." +msgstr "Ruta al directori del usuari" + +#: ../lib/modules/inetOrgPerson.inc:50 +#: ../lib/modules/inetOrgPerson.inc:120 +#: ../lib/modules/inetOrgPerson.inc:203 +#: ../lib/modules/inetOrgPerson.inc:338 +#: ../lib/modules/inetOrgPerson.inc:451 +#: ../lib/modules/inetOrgPerson.inc:559 +#: ../lib/modules/inetOrgPerson.inc:949 +#: ../lib/modules/inetOrgPerson.inc:1133 +#: ../lib/modules/inetOrgPerson.inc:1507 +msgid "Home telephone number" +msgstr "Numero de telèfon de casa" + +#: ../lib/modules/posixAccount.inc:66 +#: ../lib/modules/posixAccount.inc:68 +msgid "Homedirectory contains invalid characters." +msgstr "El directori del usuari conté caracters invàlids." + +#: ../lib/modules/asteriskAccount.inc:83 +#: ../lib/modules/asteriskAccount.inc:110 +#: ../lib/modules/asteriskAccount.inc:127 +#: ../lib/modules/asteriskAccount.inc:149 +#: ../lib/modules/asteriskAccount.inc:195 +#: ../lib/modules/asteriskAccount.inc:289 +#: ../lib/modules/nisnetgroup.inc:207 +#: ../lib/modules/nisnetgroup.inc:577 +#: ../lib/modules/hostObject.inc:143 +msgid "Host" +msgstr "Màquina" + +#: ../lib/types/host.inc:62 +msgid "Host accounts (e.g. Samba)" +msgstr "Comptes de host (e.x. Samba)" + +#: ../lib/types/host.inc:94 +msgid "Host description" +msgstr "Descripció de la màquina" + +#: ../lib/modules/account.inc:89 +#: ../lib/modules/posixAccount.inc:409 +#: ../lib/modules/posixAccount.inc:417 +msgid "Host description. If left empty host name will be used." +msgstr "Descripció de la màquina. Si es deixa en blanc, s'utilitzarà el nom de la màquina." + +#: ../lib/modules/hostObject.inc:84 +#: ../lib/modules/hostObject.inc:91 +#: ../lib/modules/hostObject.inc:261 +msgid "Host list" +msgstr "Llista de màquines" + +#: ../lib/types/host.inc:91 +#: ../lib/types/host.inc:92 +#: ../lib/modules/account.inc:84 +#: ../lib/modules/posixAccount.inc:81 +#: ../lib/modules/posixAccount.inc:82 +#: ../lib/modules/posixAccount.inc:84 +#: ../lib/modules/posixAccount.inc:282 +#: ../lib/modules/posixAccount.inc:404 +#: ../lib/modules/nisnetgroup.inc:138 +#: ../lib/modules/nisnetgroup.inc:457 +msgid "Host name" +msgstr "Nom de màquina" + +#: ../lib/modules/posixAccount.inc:88 +msgid "Host name already exists!" +msgstr "El nom de la màquina ja existeix!" + +#: ../lib/modules/posixAccount.inc:82 +#: ../lib/modules/posixAccount.inc:86 +#: ../lib/modules/nisnetgroup.inc:138 +msgid "Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !" +msgstr "El nom de la màquina conté caracters invàlids. Els caràcters vàlids són: a-z, A-Z, 0-9 i .-_ !" + +#: ../lib/modules/posixAccount.inc:84 +msgid "Host name in use. Selected next free host name." +msgstr "El Nom de la màquina ja s'està utilitzant. Seleccionem el pròxim disponible." + +#: ../lib/modules/sambaSamAccount.inc:1051 +msgid "Host name must end with $!" +msgstr "El nom de la màquina ha d'acabar amb $" + +#: ../lib/modules/account.inc:85 +#: ../lib/modules/posixAccount.inc:405 +msgid "Host name of the host which should be created. Valid characters are: a-z,A-Z,0-9, .-_$. Host names are always ending with $. If last character is not $ it will be added. If host name is already used host name will be expanded with a number. The next free number will be used." +msgstr "El nom de la màquina de la màquina que s'ha d'afegir. Els caràcters vàlids són: a-z,A-Z,0-9, .-_$. Els noms de host sempre acaben amb $, per tant se li afegirà automàticament si no s'escriu. Si el nom de host ja existeix s'ampliarà aquest amb un nombre." + +#: ../lib/types/sudo.inc:79 +msgid "Host(s)" +msgstr "Màquines" + +#: ../lib/types/host.inc:53 +#: ../lib/modules/posixAccount.inc:61 +#: ../lib/modules/posixAccount.inc:62 +#: ../lib/modules/posixAccount.inc:64 +#: ../lib/modules/posixAccount.inc:171 +#: ../lib/modules/sudoRole.inc:67 +#: ../lib/modules/sudoRole.inc:92 +#: ../lib/modules/sudoRole.inc:140 +#: ../lib/modules/sudoRole.inc:174 +#: ../lib/modules/sudoRole.inc:186 +#: ../lib/modules/sudoRole.inc:312 +#: ../lib/modules/sudoRole.inc:711 +#: ../lib/modules/hostObject.inc:62 +#: ../lib/modules/hostObject.inc:72 +msgid "Hosts" +msgstr "Màquines" + +#: ../templates/lists/changePassword.php:181 +msgid "I am sure" +msgstr "Estic segur" + +#: ../lib/modules/posixGroup.inc:469 +#: ../lib/modules/posixGroup.inc:580 +#: ../lib/modules/posixAccount.inc:72 +#: ../lib/modules/posixAccount.inc:746 +msgid "ID is already in use" +msgstr "L'ID ja està en ús" + +#: ../lib/modules/posixGroup.inc:467 +#: ../lib/modules/posixGroup.inc:468 +#: ../lib/modules/posixGroup.inc:469 +#: ../lib/modules/posixGroup.inc:572 +#: ../lib/modules/posixGroup.inc:580 +#: ../lib/modules/posixAccount.inc:70 +#: ../lib/modules/posixAccount.inc:71 +#: ../lib/modules/posixAccount.inc:72 +#: ../lib/modules/posixAccount.inc:742 +#: ../lib/modules/posixAccount.inc:746 +msgid "ID-Number" +msgstr "Numero de ID" + +#: ../lib/modules/ipHost.inc:48 +#: ../lib/modules/ipHost.inc:58 +#: ../lib/modules/ipHost.inc:124 +#: ../lib/modules/fixed_ip.inc:87 +#: ../lib/modules/fixed_ip.inc:334 +#: ../lib/modules/fixed_ip.inc:518 +msgid "IP address" +msgstr "Adreça IP" + +#: ../lib/modules/ddns.inc:96 +#: ../lib/modules/ddns.inc:107 +#: ../lib/modules/ddns.inc:116 +#: ../lib/modules/ddns.inc:364 +#: ../lib/modules/ddns.inc:411 +msgid "IP address of the DNS server" +msgstr "Direcció IP del servidor DNS" + +#: ../lib/modules/ipHost.inc:62 +#: ../lib/modules/ipHost.inc:77 +#: ../lib/modules/ipHost.inc:97 +#: ../lib/modules/ipHost.inc:315 +msgid "IP address(es)" +msgstr "Adreça IP" + +#: ../lib/modules/fixed_ip.inc:91 +msgid "IP list" +msgstr "Llista d'adreces IP" + +#: ../templates/masscreate.php:248 +#: ../templates/masscreate.php:260 +#: ../templates/masscreate.php:401 +msgid "Identifier" +msgstr "Identificador" + +#: ../lib/modules/sambaSamAccount.inc:218 +#: ../lib/modules/sambaSamAccount.inc:1476 +#: ../lib/modules/sambaSamAccount.inc:1807 +msgid "Idle time limit" +msgstr "Temps màxim d'inactivitat" + +#: ../lib/modules/sambaSamAccount.inc:244 +msgid "If checked Unix password will also be used as Samba password." +msgstr "Si s'activa, s'utilitzarà la contrasenya de unix com a contrasenya de Samba." + +#: ../lib/modules/posixAccount.inc:387 +msgid "If checked account will be deactivated by putting a \"!\" before the encrypted password." +msgstr "Si s'activa, el compte es desactivarà posant un \"!\" just abans de la constrasenya encriptada." + +#: ../lib/modules/sambaSamAccount.inc:250 +msgid "If checked no password will be used." +msgstr "Si s'activa, no s'utilitzarà cap contrasenya." + +#: ../lib/modules/sambaSamAccount.inc:256 +msgid "If checked password does not expire. (Setting X-Flag)" +msgstr "Si s'activa, la contrasenya no expirarà mai. (X-Flag)" + +#: ../lib/modules/sambaSamAccount.inc:262 +msgid "If checked then the account will be deactivated. (Setting D-Flag)" +msgstr "Si s'activa, el compte es desactivarà. (Mitjançant el D-Flag)" + +#: ../lib/modules/sambaSamAccount.inc:265 +msgid "If checked then the account will be locked (setting L-Flag). You usually want to use this setting to unlock user accounts which were locked because of failed login attempts." +msgstr "Si està activat llavors el compte serà bloquejat mitjançant el flag L. Normalment s'utilitza per desbloquejar comptes que han estat bloquejats automàticament degut a masses intents d'accés fallats." + +#: ../lib/modules/posixGroup.inc:380 +msgid "If empty GID number will be generated automaticly depending on your configuration settings." +msgstr "Si es deixa en blanc, el GID es generarà automàticament depenent de la seva configuració" + +#: ../lib/modules/posixAccount.inc:342 +msgid "If empty UID number will be generated automaticly." +msgstr "Si es deixa en blanc, el UID es generarà automàticament." + +#: ../lib/modules/ppolicy.inc:117 +msgid "If enabled the user will not be allowed to login after there have been a specified number of consecutive failed login attempts." +msgstr "Si està activat, no es permetrà iniciar sessió a l'usuari si ha fallat el nombre consecutiu de vegades especificat." + +#: ../lib/modules/ppolicy.inc:121 +msgid "If enabled users must change their passwords when they first login after a password is set or reset by the administrator." +msgstr "Si s'activa els usuaris han de canviar la contrasenya quan iniciïn sessió per primera vegada o després de que una contrasenya sigui establerta o canviada per l'administrador." + +#: ../lib/modules/sambaDomain.inc:103 +msgid "If set then users need to login to change their password." +msgstr "Si està activat llavors els usuaris necessiten iniciar sessió per canviar la seva contrasenya." + +#: ../lib/modules/sambaSamAccount.inc:247 +msgid "If set to \"true\" Unix password will also be used as Samba password." +msgstr "Si s'activa, la contrasenya de Unix també s'utilitzarà com a contrasenya de Samba." + +#: ../lib/modules/sambaSamAccount.inc:268 +msgid "If set to \"true\" account will be deactivated. (Setting D-Flag)" +msgstr "Si s'activa, el compte es desactivarà. (D-Flag)" + +#: ../lib/modules/sambaSamAccount.inc:253 +msgid "If set to \"true\" no password will be used." +msgstr "Si s'activa, no s'utilitzarà cap contrasenya." + +#: ../lib/modules/sambaSamAccount.inc:259 +msgid "If set to \"true\" password does not expire. (Setting X-Flag)" +msgstr "Si s'activa, la contrasenya no caducarà mai. (X-Flag)" + +#: ../help/help.inc:191 +msgid "If you decide to send the password via mail then the mail template \"config/passwordMailTemplate.txt\" will be used." +msgstr "Si decideixes enviar el password per e-mail, llavors la plantilla que s'utilitzarà serà \"config/passwordMailTemplate.txt\"." + +#: ../lib/modules/sambaSamAccount.inc:307 +msgid "If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "Si ho deixes en blanc, LAM utilitzarà: uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../lib/modules/sambaSamAccount.inc:271 +msgid "If you set this option then the user has to change his password at the next login." +msgstr "Si actives aquesta opció l'usuari ha de canviar la contrasenya al pròxim inici de sessió." + +#: ../lib/modules/phpGroupwareGroup.inc:74 +#: ../lib/modules/phpGroupwareUser.inc:75 +msgid "If you set this to \"true\" then the phpGroupware extension will be added." +msgstr "Si es posa aquest valor a \"cert\", s'afegirà l'extensió phpGroupware." + +#: ../help/help.inc:99 +msgid "If you want to change the current preferences password, please enter it here." +msgstr "Si vol canviar la contrasenya de les preferencies actuals, entri aquesta contrasenya aquí." + +#: ../help/help.inc:132 +msgid "If you want to change your master configuration password, please enter it here." +msgstr "Si vol canviar la contrasenya mestre de la configuració, entri aquesta nova contrasenya aquí." + +#: ../lib/modules/sambaGroupMapping.inc:360 +msgid "If you want to use a well known RID you can selcet a well known group." +msgstr "Si vol utilitzar un RID conegut, pot seleccionar un grup conegut." + +#: ../help/help.inc:111 +msgid "If your server runs on another port then add a comma and the port number after the server." +msgstr "Si el teu servidor escolta a un altre port, afegeix una coma després del servidor i llavors el nombre de port." + +#: ../templates/tree/export_form.php:120 +msgid "Include system attributes" +msgstr "Incloure atributs del sistema" + +#: ../lib/tools/serverInfo.inc:53 +msgid "Information about the LDAP server." +msgstr "Informació sobre el servidor d'LDAP." + +#: ../lib/modules/sambaSamAccount.inc:213 +#: ../lib/modules/sambaSamAccount.inc:336 +#: ../lib/modules/sambaSamAccount.inc:1451 +#: ../lib/modules/sambaSamAccount.inc:1802 +msgid "Inherit client startup configuration" +msgstr "Hereta la configuració inicial del client" + +#: ../templates/schema/schema.php:394 +#: ../templates/schema/schema.php:415 +msgid "Inherited from" +msgstr "Formulari heretat." + +#: ../templates/schema/schema.php:155 +#: ../templates/schema/schema.php:351 +msgid "Inherits from" +msgstr "Hereda de" + +#: ../lib/modules/sambaSamAccount.inc:214 +#: ../lib/modules/sambaSamAccount.inc:339 +#: ../lib/modules/sambaSamAccount.inc:1456 +#: ../lib/modules/sambaSamAccount.inc:1803 +msgid "Initial program" +msgstr "Programa inicial" + +#: ../lib/modules/quota.inc:56 +msgid "Inode hard quota" +msgstr "Quota \"hard\" de inodes." + +#: ../lib/modules/quota.inc:56 +#: ../lib/modules/quota.inc:57 +msgid "Inode hard quota contains invalid characters. Only natural numbers are allowed." +msgstr "La quota \"hard\" de inodes conté caràcters invàlids. Només s'admeten numeros naturals." + +#: ../lib/modules/quota.inc:60 +msgid "Inode quota" +msgstr "Quota d'inodes." + +#: ../lib/modules/quota.inc:54 +msgid "Inode soft quota" +msgstr "Quota \"soft\" de inodes" + +#: ../lib/modules/quota.inc:54 +#: ../lib/modules/quota.inc:55 +msgid "Inode soft quota contains invalid characters. Only natural numbers are allowed." +msgstr "La quota \"soft\" de inodes conté caràcters invàlids. Només s'admeten numeros naturals." + +#: ../lib/modules/quota.inc:60 +#: ../lib/modules/quota.inc:61 +msgid "Inode soft quota must be smaller than inode hard quota." +msgstr "La quota \"soft\" per inodes ha de ser més petita que la quota \"hard\"." + +#: ../templates/selfService/adminMain.php:472 +msgid "Input fields" +msgstr "Camps d'entrada" + +#: ../lib/modules/sambaSamAccount.inc:82 +msgid "Inserted user or group name in home path." +msgstr "S'ha afegit nom de usuari o de grup en la ruta del directori del usuari." + +#: ../lib/modules/sambaSamAccount.inc:88 +msgid "Inserted user or group name in logon script." +msgstr "S'ha afegit el nom de usuari o del grup en l'script de inici de sessió." + +#: ../lib/modules/sambaSamAccount.inc:85 +msgid "Inserted user or group name in profile path." +msgstr "S'ha afegit el nom del usuari o grup en la ruta al perfil." + +#: ../lib/modules/fixed_ip.inc:373 +msgid "Invalid MAC address." +msgstr "Adreça MAC invàlida." + +#: ../templates/massBuildAccounts.php:169 +msgid "Invalid RDN attribute!" +msgstr "Atribut RDN invàlid!" + +#: ../lib/modules/sambaGroupMapping.inc:73 +msgid "Invalid account" +msgstr "Compte invàlid" + +#: ../lib/modules/kolabUser.inc:130 +#: ../lib/modules/kolabUser.inc:135 +#: ../lib/modules/kolabUser.inc:182 +#: ../lib/modules/kolabUser.inc:226 +#: ../lib/modules/kolabUser.inc:349 +#: ../lib/modules/kolabUser.inc:787 +#: ../lib/modules/kolabUser.inc:911 +msgid "Invitation policy" +msgstr "Politica d'invitació" + +#: ../lib/modules/kolabUser.inc:139 +msgid "Invitation policy list" +msgstr "Llista de polítiques d'invitació" + +#: ../lib/modules/sambaSamAccount.inc:546 +msgid "Islamabad, Karachi" +msgstr "Islamabad, Karachi" + +#: ../lib/modules/range.inc:99 +msgid "It is not possible to delete all ranges." +msgstr "No és possible eliminar tots els rangs." + +#: ../lib/modules/posixGroup.inc:467 +#: ../lib/modules/posixAccount.inc:71 +msgid "It is possible that this ID-number is reused. This can cause several problems because files with old permissions might still exist. To avoid this warning set maxUID to a higher value." +msgstr "És possible que aquest numero de UID sigui reutilitzat. Això pot causar diversos problemes perquè encara existeixen arxius amb els propietaris antics. Per solventar això, pugi el valor del maxUID." + +#: ../lib/modules/inetOrgPerson.inc:64 +#: ../lib/modules/inetOrgPerson.inc:145 +#: ../lib/modules/inetOrgPerson.inc:211 +#: ../lib/modules/inetOrgPerson.inc:266 +#: ../lib/modules/inetOrgPerson.inc:463 +#: ../lib/modules/inetOrgPerson.inc:495 +#: ../lib/modules/inetOrgPerson.inc:988 +#: ../lib/modules/inetOrgPerson.inc:1123 +msgid "Job title" +msgstr "Titulació de la feina" + +#: ../lib/modules/inetOrgPerson.inc:496 +msgid "Job title of user: President, department manager, ..." +msgstr "Titulació de la feina del usuari: President, encarregat de departament, ..." + +#: ../templates/schema/schema.php:253 +msgid "Jump to a matching rule" +msgstr "Saltar a una regla que coincideixi" + +#: ../templates/schema/schema.php:112 +msgid "Jump to an attribute type" +msgstr "Saltar a un tipo de atribut" + +#: ../templates/schema/schema.php:306 +#: ../templates/schema/schema.php:356 +#: ../templates/schema/schema.php:371 +msgid "Jump to an object class" +msgstr "Saltar a una clase de objecte" + +#: ../lib/modules/kolabUser.inc:73 +msgid "Kolab" +msgstr "Kolab" + +#: ../templates/tree/delete_form.php:100 +#, php-format +msgid "LAM can recursively delete this entry and all of its children. See below for a list of all the entries that this action will delete. Do you want to do this?" +msgstr "LAM pot esborrar recursivament aquesta entrada i tots els seus fills. Mes envall tens una llista de les entrades que aquesta acció esborraria. N'estàs segur que ho vols fer?" + +#: ../templates/login.php:175 +#: ../templates/config/index.php:63 +msgid "LAM configuration" +msgstr "Configuració de LAM" + +#: ../templates/massBuildAccounts.php:194 +msgid "LAM has checked your input and is now ready to create the accounts." +msgstr "LAM ha comprovat les seves dades, i ara està apunt per començar a afegir comptes." + +#: ../lib/modules/posixGroup.inc:404 +#: ../lib/modules/posixAccount.inc:338 +#: ../lib/modules/inetOrgPerson.inc:596 +msgid "LAM supports CRYPT, SHA, SSHA, MD5 and SMD5 to generate the hash value of passwords. SSHA and CRYPT are the most common but CRYPT does not support passwords greater than 8 letters. We do not recommend to use plain text passwords." +msgstr "LAM soporta CRYPT, SHA, SSHA, MD5 i SMD5 per generar els hashos de les contrasenyes. SSHA i CRYPT són els més utilitzats, pero CRYPT no soporta contrasenyes de més de 8 lletres. No es recomana la utilització de contrasenyes sense encriptar." + +#: ../templates/tests/index.php:46 +msgid "LAM tests" +msgstr "Tests LAM" + +#: ../templates/tree/create.php:184 +#: ../templates/massDoUpload.php:86 +#, php-format +msgid "LAM was unable to create account %s! An LDAP error occured." +msgstr "LAM ha estat incapaç de crear el compte %s!. S'ha produït un error de LDAP" + +#: ../lib/modules/sambaGroupMapping.inc:439 +msgid "LAM was unable to find a Samba 3 domain with this name!" +msgstr "LAM no ha pogut trovar un Domini de Samba3 amb aquest nom!" + +#: ../lib/modules/sambaSamAccount.inc:103 +msgid "LAM was unable to find a domain with this name!" +msgstr "LAM no ha pogut trovar un domini amb aquest nom!" + +#: ../lib/modules/posixAccount.inc:89 +msgid "LAM was unable to find a group with this name!" +msgstr "LAM no ha pogut trovar un grup amb aquest nom!" + +#: ../lib/modules/posixAccount.inc:1581 +#, php-format +msgid "LAM was unable to modify group memberships for group: %s" +msgstr "LAM no ha pogut modificar els membres del grup: %s" + +#: ../help/help.inc:170 +msgid "LAM will search for accounts in this part of the LDAP tree." +msgstr "LAM cercarà comptes en aquesta part de l'arbre LDAP." + +#: ../help/help.inc:172 +msgid "LAM will use this LDAP DN and password to search for accounts. It is sufficient to specify an account with read rights. If nothing is inserted then LAM will try to connect anonymously." +msgstr "LAM emprarà aquest DN i contrasenya per cercar comptes. Basta especificar un compte amb drets de lectura. Si no s'introdueix cap valor es provarà de connectar anònimament." + +#: ../templates/profedit/profilepage.php:175 +msgid "LDAP" +msgstr "LDAP" + +#: ../templates/config/confmodules.php:97 +#: ../templates/config/confmain.php:122 +#: ../templates/config/moduleSettings.php:96 +#: ../templates/config/conftypes.php:115 +#: ../templates/selfService/adminMain.php:133 +msgid "LDAP Account Manager Configuration" +msgstr "Configuració de LDAP Account Manager" + +#: ../templates/config/conftypes.php:315 +msgid "LDAP Suffix is invalid!" +msgstr "El sufixe d'LDAP és invàlid!" + +#: ../templates/login.php:490 +msgid "LDAP error, server says:" +msgstr "Error de LDAP, el servidor ha respós:" + +#: ../templates/config/confmain.php:506 +msgid "LDAP filter" +msgstr "Filtre LDAP" + +#: ../lib/modules.inc:1459 +msgid "LDAP operation successful." +msgstr "Operació LDAP satisfactoria." + +#: ../templates/selfService/adminMain.php:370 +msgid "LDAP password" +msgstr "Contrasenya d'LDAP" + +#: ../templates/config/confmain.php:474 +#: ../templates/config/confmain.php:477 +#: ../help/help.inc:117 +msgid "LDAP search" +msgstr "Cerca LDAP" + +#: ../templates/selfService/adminMain.php:381 +#: ../help/help.inc:173 +msgid "LDAP search attribute" +msgstr "Atribut de cerca LDAP" + +#: ../lib/account.inc:641 +msgid "LDAP search failed! Please check your preferences." +msgstr "Cerca a LDAP fallida. Comproveu les preferències." + +#: ../templates/config/confmain.php:295 +#: ../help/help.inc:119 +msgid "LDAP search limit" +msgstr "Límit de cerca LDAP" + +#: ../templates/login.php:326 +msgid "LDAP server" +msgstr "Servidor LDAP" + +#: ../lib/account.inc:632 +msgid "LDAP sizelimit exceeded, not all entries are shown." +msgstr "S'ha superat el tamany màxim en LDAP , no es mostren totes les entrades." + +#: ../templates/config/confmain.php:497 +#: ../templates/config/conftypes.php:245 +#: ../templates/selfService/adminMain.php:346 +#: ../templates/profedit/profilepage.php:179 +#: ../help/help.inc:70 +#: ../help/help.inc:169 +msgid "LDAP suffix" +msgstr "Sufixe LDAP" + +#: ../templates/massDoUpload.php:126 +msgid "LDAP upload has finished" +msgstr "L'enviament al LDAP ha acabat." + +#: ../templates/massDoUpload.php:70 +msgid "LDAP upload in progress. Please wait." +msgstr "Enviament al LDAP en progrés. Si us plau, esperi." + +#: ../templates/selfService/adminMain.php:358 +msgid "LDAP user" +msgstr "Usuari LDAP" + +#: ../help/help.inc:171 +msgid "LDAP user and password" +msgstr "Usuari i contrasenya d'LDAP" + +#: ../templates/serverInfo.php:96 +msgid "LDAP version" +msgstr "Versió LDAP" + +#: ../lib/export.inc:441 +#, php-format +msgid "LDIF Export for: %s" +msgstr "Exporta LDIF per: %s" + +#: ../lib/types/asteriskExt.inc:92 +msgid "Label" +msgstr "Etiqueta" + +#: ../templates/tests/lamdaemonTest.php:179 +msgid "Lamdaemon server and path" +msgstr "Servidor lamdaemon i ruta." + +#: ../templates/config/confmain.php:394 +msgid "Lamdaemon settings" +msgstr "Configuració Lamdaemon" + +#: ../templates/tests/lamdaemonTest.php:137 +msgid "Lamdaemon successfully run." +msgstr "Lamdaemon s'ha executat satisfactòriament." + +#: ../templates/tests/index.php:50 +#: ../templates/tests/lamdaemonTest.php:47 +#: ../templates/tests/lamdaemonTest.php:68 +msgid "Lamdaemon test" +msgstr "Test Lamdaemon" + +#: ../templates/tests/lamdaemonTest.php:264 +msgid "Lamdaemon test finished." +msgstr "Test de lamdaemon acabat." + +#: ../templates/tests/lamdaemonTest.php:256 +msgid "Lamdaemon: Quota module installed" +msgstr "Lamdaemon: Mòdul de Quota instal·lat" + +#: ../templates/tests/lamdaemonTest.php:252 +msgid "Lamdaemon: check NSS LDAP" +msgstr "Lamdaemon: comprova NSS LDAP" + +#: ../templates/tests/lamdaemonTest.php:259 +msgid "Lamdaemon: read quotas" +msgstr "Lamdaemon: llegeix quotes" + +#: ../templates/login.php:275 +msgid "Language" +msgstr "Idioma" + +#: ../templates/config/confmain.php:586 +msgid "Language is not defined!" +msgstr "No s'ha definit l'idioma!" + +#: ../templates/config/confmain.php:349 +msgid "Language settings" +msgstr "Configuració de l'idioma" + +#: ../lib/modules/phpGroupwareUser.inc:102 +#: ../lib/modules/phpGroupwareUser.inc:173 +#: ../lib/modules/phpGroupwareUser.inc:352 +msgid "Last login" +msgstr "Últim accés" + +#: ../lib/modules/phpGroupwareUser.inc:101 +#: ../lib/modules/phpGroupwareUser.inc:181 +#: ../lib/modules/phpGroupwareUser.inc:347 +msgid "Last login from" +msgstr "Últim accés des de" + +#: ../lib/types/user.inc:97 +#: ../lib/modules/inetOrgPerson.inc:46 +#: ../lib/modules/inetOrgPerson.inc:116 +#: ../lib/modules/inetOrgPerson.inc:249 +#: ../lib/modules/inetOrgPerson.inc:418 +#: ../lib/modules/inetOrgPerson.inc:503 +#: ../lib/modules/inetOrgPerson.inc:837 +#: ../lib/modules/inetOrgPerson.inc:1125 +#: ../lib/modules/inetOrgPerson.inc:1483 +msgid "Last name" +msgstr "Cognom" + +#: ../lib/modules/inetOrgPerson.inc:46 +#: ../lib/modules/inetOrgPerson.inc:47 +msgid "Last name contains invalid characters or is empty!" +msgstr "El cognom conté caràcters invàlids o està buit" + +#: ../lib/modules/inetOrgPerson.inc:504 +msgid "Last name of user. Only letters, - and spaces are allowed." +msgstr "Cognom del usuari. Només s'accepten lletres, - i espais." + +#: ../lib/modules/shadowAccount.inc:165 +#: ../lib/modules/shadowAccount.inc:416 +msgid "Last password change" +msgstr "Última vegada que es va canviar la contrasenya" + +#: ../lib/modules/dhcp_settings.inc:125 +#: ../lib/modules/dhcp_settings.inc:168 +#: ../lib/modules/dhcp_settings.inc:192 +#: ../lib/modules/dhcp_settings.inc:244 +#: ../lib/modules/dhcp_settings.inc:557 +#: ../lib/modules/dhcp_settings.inc:669 +msgid "Lease time" +msgstr "Temps de concessió" + +#: ../templates/tree/export_form.php:148 +msgid "Line ends" +msgstr "Fi de linea" + +#: ../templates/selfService/adminMain.php:321 +msgid "Link to self service login page for your users" +msgstr "Link a la pàgina d'autoservei" + +#: ../templates/config/conftypes.php:259 +#: ../help/help.inc:82 +msgid "List attributes" +msgstr "Llista d'atributs" + +#: ../templates/config/conftypes.php:322 +msgid "List attributes are invalid!" +msgstr "La llista d'atributs de no és vàlida!" + +#: ../lib/modules/sambaSamAccount.inc:291 +msgid "List of Samba workstations the user is allowed to login. Empty means every workstation." +msgstr "Llista de estacions de treballs de Samba(Windows) a través de les quals l'usuari està autoritzat a iniciar sessió. En blanc significa totes les estacions de treball." + +#: ../templates/config/confmain.php:580 +msgid "List of admin users is empty or invalid!" +msgstr "La llista dels usuaris Administradors està en blanc o bé és invàlida!" + +#: ../templates/tree/delete_form.php:130 +msgid "List of entries to be deleted:" +msgstr "Llista d'entrades per esborrar:" + +#: ../templates/config/confmain.php:488 +msgid "List of valid users" +msgstr "Llista de usuaris vàlids" + +#: ../lib/modules.inc:1408 +#: ../help/help.inc:160 +msgid "Load profile" +msgstr "Carregar perfil" + +#: ../lib/modules/inetLocalMailRecipient.inc:65 +#: ../lib/modules/inetLocalMailRecipient.inc:160 +msgid "Local address" +msgstr "Adreça local" + +#: ../lib/modules/inetLocalMailRecipient.inc:69 +#: ../lib/modules/inetLocalMailRecipient.inc:102 +#: ../lib/modules/inetLocalMailRecipient.inc:116 +#: ../lib/modules/inetLocalMailRecipient.inc:319 +msgid "Local address list" +msgstr "Llista d'adresses locals" + +#: ../lib/modules/sambaGroupMapping.inc:70 +msgid "Local group" +msgstr "Grup Local" + +#: ../lib/modules/ipHost.inc:66 +#: ../lib/modules/ipHost.inc:84 +#: ../lib/modules/ipHost.inc:98 +#: ../lib/modules/ipHost.inc:148 +#: ../lib/modules/ipHost.inc:318 +#: ../lib/modules/inetOrgPerson.inc:121 +#: ../lib/modules/inetOrgPerson.inc:127 +#: ../lib/modules/inetOrgPerson.inc:191 +#: ../lib/modules/inetOrgPerson.inc:386 +#: ../lib/modules/inetOrgPerson.inc:433 +#: ../lib/modules/inetOrgPerson.inc:571 +#: ../lib/modules/inetOrgPerson.inc:892 +#: ../lib/modules/inetOrgPerson.inc:1142 +#: ../lib/modules/inetOrgPerson.inc:1571 +msgid "Location" +msgstr "Lloc" + +#: ../lib/modules/posixGroup.inc:188 +#: ../lib/modules/posixAccount.inc:263 +#: ../lib/modules/posixAccount.inc:998 +msgid "Lock password" +msgstr "Bloquejar contrasenya" + +#: ../lib/types/ppolicyType.inc:83 +#: ../lib/modules/ppolicy.inc:96 +#: ../lib/modules/ppolicy.inc:143 +#: ../lib/modules/ppolicy.inc:163 +#: ../lib/modules/ppolicy.inc:265 +#: ../lib/modules/ppolicy.inc:498 +#: ../lib/modules/sambaDomain.inc:126 +#: ../lib/modules/sambaDomain.inc:191 +#: ../lib/modules/sambaDomain.inc:216 +#: ../lib/modules/sambaDomain.inc:350 +#: ../lib/modules/sambaDomain.inc:696 +msgid "Lockout duration" +msgstr "Durada del bloqueig" + +#: ../lib/modules/sambaDomain.inc:216 +msgid "Lockout duration must be are natural number." +msgstr "La duració del bloqueig ha de ser un nombre natural." + +#: ../lib/types/ppolicyType.inc:88 +#: ../lib/modules/ppolicy.inc:116 +#: ../lib/modules/ppolicy.inc:142 +#: ../lib/modules/ppolicy.inc:256 +#: ../lib/modules/ppolicy.inc:507 +msgid "Lockout users" +msgstr "Bloqueig d'usuaris" + +#: ../lib/modules/sambaDomain.inc:114 +#: ../lib/modules/sambaDomain.inc:188 +#: ../lib/modules/sambaDomain.inc:218 +#: ../lib/modules/sambaDomain.inc:323 +#: ../lib/modules/sambaDomain.inc:687 +msgid "Lockout users after bad logon attempts" +msgstr "Bloquejar usuaris després que realitzin intents d'accés incorrecte" + +#: ../lib/modules/sambaDomain.inc:218 +msgid "Lockout users after bad logon attempts must be between 0 and 999." +msgstr "El nombre d'intents d'accés fallats per bloquejar un usuari ha de ser entre 0 i 999" + +#: ../templates/config/mainmanage.php:289 +#: ../help/help.inc:141 +msgid "Log destination" +msgstr "Destinació del registre" + +#: ../templates/config/mainmanage.php:264 +#: ../help/help.inc:139 +msgid "Log level" +msgstr "Nivell d'enregistrament" + +#: ../templates/config/mainmanage.php:258 +msgid "Logging" +msgstr "Iniciar Sessió" + +#: ../templates/login.php:301 +#: ../templates/config/conflogin.php:62 +#: ../templates/config/mainlogin.php:70 +#: ../templates/selfService/selfServiceLogin.php:138 +#: ../templates/selfService/adminLogin.php:64 +#: ../help/help.inc:55 +msgid "Login" +msgstr "Iniciar Sessió" + +#: ../templates/selfService/adminMain.php:407 +#: ../help/help.inc:175 +msgid "Login attribute label" +msgstr "Etiqueta d'atribut d'inici de sessió" + +#: ../templates/selfService/adminMain.php:420 +#: ../help/help.inc:177 +msgid "Login caption" +msgstr "Caixa de login" + +#: ../templates/config/confmain.php:465 +#: ../help/help.inc:115 +msgid "Login method" +msgstr "Mètode d'inici de sessió" + +#: ../lib/types/user.inc:99 +#: ../lib/modules/posixAccount.inc:249 +#: ../lib/modules/posixAccount.inc:318 +#: ../lib/modules/posixAccount.inc:390 +#: ../lib/modules/posixAccount.inc:992 +#: ../lib/modules/posixAccount.inc:1106 +#: ../lib/modules/posixAccount.inc:1183 +msgid "Login shell" +msgstr "Shell de Inici de sessió" + +#: ../templates/pdfedit/pdfpage.php:413 +msgid "Logo" +msgstr "Anagrama" + +#: ../lib/modules/sambaDomain.inc:102 +#: ../lib/modules/sambaDomain.inc:185 +#: ../lib/modules/sambaDomain.inc:290 +#: ../lib/modules/sambaDomain.inc:674 +msgid "Logon for password change" +msgstr "S'ha d'iniciar sessió per canviar la contrasenya" + +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:315 +#: ../lib/modules/sambaSamAccount.inc:318 +#: ../lib/modules/sambaSamAccount.inc:499 +#: ../lib/modules/sambaSamAccount.inc:590 +#: ../lib/modules/sambaSamAccount.inc:1239 +#: ../lib/modules/sambaSamAccount.inc:1642 +msgid "Logon hours" +msgstr "Hores de inici de sessió" + +#: ../lib/modules/sambaSamAccount.inc:87 +#: ../lib/modules/sambaSamAccount.inc:88 +#: ../lib/modules/sambaSamAccount.inc:203 +#: ../lib/modules/sambaSamAccount.inc:287 +#: ../lib/modules/sambaSamAccount.inc:483 +#: ../lib/modules/sambaSamAccount.inc:584 +#: ../lib/modules/sambaSamAccount.inc:1183 +#: ../lib/modules/sambaSamAccount.inc:1604 +#: ../lib/modules/sambaSamAccount.inc:1772 +msgid "Logon script" +msgstr "Script de inici de sessió" + +#: ../lib/modules/sambaSamAccount.inc:87 +#: ../lib/modules/sambaSamAccount.inc:89 +msgid "Logon script is invalid!" +msgstr "Script de inici de sessió invàlid!" + +#: ../templates/selfService/selfServiceMain.php:47 +#: ../templates/selfService/selfServiceMain.php:129 +#: ../templates/main_header.php:70 +msgid "Logout" +msgstr "Finalitzar sessió" + +#: ../lib/modules/dhcp_settings.inc:89 +msgid "M-Node (0x04)" +msgstr "M-Node (0x04)" + +#: ../lib/modules/ieee802device.inc:51 +#: ../lib/modules/ieee802device.inc:61 +#: ../lib/modules/ieee802device.inc:72 +#: ../lib/modules/ieee802device.inc:102 +#: ../lib/modules/fixed_ip.inc:84 +#: ../lib/modules/fixed_ip.inc:330 +#: ../lib/modules/fixed_ip.inc:518 +msgid "MAC address" +msgstr "Adreça MAC" + +#: ../lib/modules/ieee802device.inc:65 +msgid "MAC address list" +msgstr "Llista d'adreçes MAC" + +#: ../lib/modules/ieee802device.inc:79 +#: ../lib/modules/ieee802device.inc:198 +msgid "MAC address(es)" +msgstr "Adreça MAC" + +#: ../lib/modules/sambaSamAccount.inc:552 +msgid "Magadan, Solomon Islands" +msgstr "Magadan, Solomon Islands" + +#: ../lib/types/mailAlias.inc:53 +#: ../lib/modules/nisMailAlias.inc:55 +msgid "Mail aliases" +msgstr "Alias de correu electrònic" + +#: ../lib/modules/kolabUser.inc:98 +#: ../lib/modules/kolabUser.inc:171 +#: ../lib/modules/kolabUser.inc:219 +#: ../lib/modules/kolabUser.inc:232 +#: ../lib/modules/kolabUser.inc:306 +#: ../lib/modules/kolabUser.inc:771 +msgid "Mail quota" +msgstr "Quota de correu electrònic" + +#: ../lib/modules/kolabUser.inc:253 +#: ../lib/modules/kolabUser.inc:254 +msgid "Mail quota must be a number!" +msgstr "La quota de correu ha de ser un numero!" + +#: ../lib/modules/inetLocalMailRecipient.inc:51 +msgid "Mail routing" +msgstr "Mail routing" + +#: ../lib/modules/kolabUser.inc:86 +#: ../lib/modules/inetLocalMailRecipient.inc:73 +#: ../lib/modules/inetLocalMailRecipient.inc:79 +#: ../lib/modules/inetLocalMailRecipient.inc:108 +#: ../lib/modules/inetLocalMailRecipient.inc:117 +#: ../lib/modules/inetLocalMailRecipient.inc:152 +#: ../lib/modules/inetLocalMailRecipient.inc:322 +msgid "Mail server" +msgstr "Servidor de crreu" + +#: ../templates/lists/changePassword.php:338 +#, php-format +msgid "Mail successfully sent to %s." +msgstr "El correu s'ha enviat correctament a %s." + +#: ../lib/modules/asteriskVoicemail.inc:82 +#: ../lib/modules/asteriskVoicemail.inc:134 +#: ../lib/modules/asteriskVoicemail.inc:154 +#: ../lib/modules/asteriskVoicemail.inc:234 +#: ../lib/modules/asteriskVoicemail.inc:373 +msgid "Mailbox" +msgstr "Bústia" + +#: ../lib/modules/kolabUser.inc:163 +#: ../lib/modules/kolabUser.inc:194 +#: ../lib/modules/kolabUser.inc:228 +#: ../lib/modules/kolabUser.inc:294 +#: ../lib/modules/kolabUser.inc:300 +#: ../lib/modules/kolabUser.inc:767 +msgid "Mailbox home server" +msgstr "Mailbox home server" + +#: ../lib/modules/kolabUser.inc:249 +msgid "Mailbox home server name is empty!" +msgstr "Mailbox home server està en blanc!" + +#: ../lib/modules/kolabUser.inc:247 +#: ../lib/modules/kolabUser.inc:248 +msgid "Mailbox home server name is invalid!" +msgstr "El nom del servidor de l'arxiu de correu és invàlid!" + +#: ../lib/types/mailAlias.inc:62 +msgid "Mailing aliases (e.g. NIS mail aliases)" +msgstr "Alias de correu (ex. Alias de correu NIS)" + +#: ../lib/modules/nisMailAlias.inc:68 +msgid "Mails to this name are forwarded to the recipients." +msgstr "Els mails a aquest nom són reenviats als destinataris." + +#: ../templates/pdfedit/pdfpage.php:360 +#: ../templates/pdfedit/pdfpage.php:716 +msgid "Main" +msgstr "Principal" + +#: ../templates/selfService/adminMain.php:433 +#: ../help/help.inc:179 +msgid "Main page caption" +msgstr "Llegenda de la pàgina principal" + +#: ../templates/pdfedit/pdfmain.php:155 +msgid "Manage existing PDF structures" +msgstr "Administrar les estructures de PDF" + +#: ../templates/profedit/profilemain.php:148 +msgid "Manage existing profiles" +msgstr "Administrar perfils" + +#: ../templates/selfService/adminLogin.php:144 +msgid "Manage self service profiles" +msgstr "Administrar perfils d'auto servei" + +#: ../templates/config/conflogin.php:148 +msgid "Manage server profiles" +msgstr "Administrar perfils del servidor" + +#: ../templates/serverInfo.php:93 +msgid "Managed suffixes" +msgstr "Sufixes administrats" + +#: ../lib/modules/ipHost.inc:70 +#: ../lib/modules/ipHost.inc:90 +#: ../lib/modules/ipHost.inc:99 +#: ../lib/modules/ipHost.inc:170 +#: ../lib/modules/ipHost.inc:321 +#: ../lib/modules/inetOrgPerson.inc:221 +#: ../lib/modules/inetOrgPerson.inc:282 +#: ../lib/modules/inetOrgPerson.inc:478 +#: ../lib/modules/inetOrgPerson.inc:511 +#: ../lib/modules/inetOrgPerson.inc:1047 +#: ../lib/modules/inetOrgPerson.inc:1127 +msgid "Manager" +msgstr "Administrador" + +#: ../lib/tools/ouEditor.inc:53 +msgid "Manages OU objects in your LDAP tree." +msgstr "Administra objectes OU en l'arbre LDAP." + +#: ../lib/modules/kolabUser.inc:52 +msgid "Manual" +msgstr "Manual" + +#: ../lib/modules/kolabUser.inc:54 +msgid "Manual if conflicts" +msgstr "Manual si entra en conflicte" + +#: ../lib/types/nisObjectType.inc:78 +#: ../lib/modules/nisObject.inc:58 +#: ../lib/modules/nisObject.inc:89 +#: ../lib/modules/nisObject.inc:105 +#: ../lib/modules/nisObject.inc:116 +#: ../lib/modules/nisObject.inc:142 +#: ../lib/modules/nisObject.inc:211 +msgid "Mapping entry" +msgstr "Camp de mapping" + +#: ../lib/modules/nisObject.inc:116 +#: ../lib/modules/nisObject.inc:117 +msgid "Mapping entry contains invalid characters. Only ASCII characters are allowed." +msgstr "El camp de mapping conté caràcters invàlids. Només s'admeten caràcters ASCII." + +#: ../lib/types/nisObjectType.inc:79 +#: ../lib/modules/nisObject.inc:62 +#: ../lib/modules/nisObject.inc:82 +#: ../lib/modules/nisObject.inc:106 +#: ../lib/modules/nisObject.inc:136 +#: ../lib/modules/nisObject.inc:212 +msgid "Mapping name" +msgstr "Nom de mapping" + +#: ../lib/modules/kolabUser.inc:398 +#: ../lib/modules/kolabUser.inc:575 +msgid "Mark account for deletion" +msgstr "Marcar compte per esborrar" + +#: ../lib/modules/kolabUser.inc:175 +msgid "Mark for deletion" +msgstr "Marcar per borrar" + +#: ../templates/config/profmanage.php:349 +#: ../templates/selfService/profManage.php:261 +#: ../help/help.inc:133 +msgid "Master password" +msgstr "Contrasenya mestre" + +#: ../templates/config/profmanage.php:78 +#: ../templates/selfService/profManage.php:68 +msgid "Master password is wrong!" +msgstr "La contrasenya mestre és incorrecte!" + +#: ../templates/config/mainmanage.php:77 +msgid "Master passwords are different or empty!" +msgstr "Les contrasenyes mestres són diferents, o estàn en blanc!?" + +#: ../templates/schema/schema.php:266 +msgid "Matching rule OID" +msgstr "OID de regla " + +#: ../templates/schema/schema.php:75 +#: ../templates/schema/schema.php:76 +msgid "Matching rules" +msgstr "Regles coincidents" + +#: ../lib/modules/posixGroup.inc:300 +#: ../lib/modules/posixGroup.inc:471 +#: ../lib/modules/posixGroup.inc:472 +msgid "Maximum GID number" +msgstr "GID Màxim" + +#: ../lib/modules/posixGroup.inc:471 +msgid "Maximum GID number is invalid or empty!" +msgstr "El GID màxim és invàlid o és buit!" + +#: ../lib/modules/posixGroup.inc:472 +msgid "Maximum GID number must be greater than minimum GID number!" +msgstr "El GID màxim ha de ser més gràn que el GID mínim!" + +#: ../lib/modules/posixAccount.inc:60 +#: ../lib/modules/posixAccount.inc:62 +#: ../lib/modules/posixAccount.inc:63 +#: ../lib/modules/posixAccount.inc:64 +#: ../lib/modules/posixAccount.inc:165 +#: ../lib/modules/posixAccount.inc:174 +msgid "Maximum UID number" +msgstr "Màxim UID" + +#: ../lib/modules/posixAccount.inc:60 +#: ../lib/modules/posixAccount.inc:62 +msgid "Maximum UID number is invalid!" +msgstr "El UID màxim és invàlid!" + +#: ../lib/modules/posixAccount.inc:63 +#: ../lib/modules/posixAccount.inc:64 +msgid "Maximum UID number must be greater than minimum UID number!" +msgstr "El UID màxim ha de ser més gran que el UID mínim!" + +#: ../lib/types/ppolicyType.inc:84 +#: ../lib/modules/ppolicy.inc:100 +#: ../lib/modules/ppolicy.inc:144 +#: ../lib/modules/ppolicy.inc:164 +#: ../lib/modules/ppolicy.inc:274 +#: ../lib/modules/ppolicy.inc:499 +msgid "Maximum failure count" +msgstr "Nombre màxim de fallades" + +#: ../templates/tree/add_attr_form.php:167 +#, php-format +msgid "Maximum file size: %s" +msgstr "Tamany màxim d'arxiu: %s" + +#: ../lib/modules/dhcp_settings.inc:128 +#: ../lib/modules/dhcp_settings.inc:169 +#: ../lib/modules/dhcp_settings.inc:197 +#: ../lib/modules/dhcp_settings.inc:250 +#: ../lib/modules/dhcp_settings.inc:563 +#: ../lib/modules/dhcp_settings.inc:670 +msgid "Maximum lease time" +msgstr "Temps màxim d'expiració" + +#: ../templates/tree/add_value_form.php:194 +#: ../templates/schema/schema.php:212 +msgid "Maximum length" +msgstr "Llargada màxima" + +#: ../lib/lists.inc:806 +#: ../help/help.inc:92 +msgid "Maximum list entries" +msgstr "Nombre màxim d'entrades a la llista" + +#: ../lib/types/ppolicyType.inc:79 +#: ../lib/modules/shadowAccount.inc:59 +#: ../lib/modules/shadowAccount.inc:65 +#: ../lib/modules/shadowAccount.inc:119 +#: ../lib/modules/shadowAccount.inc:185 +#: ../lib/modules/shadowAccount.inc:219 +#: ../lib/modules/shadowAccount.inc:321 +#: ../lib/modules/ppolicy.inc:80 +#: ../lib/modules/ppolicy.inc:136 +#: ../lib/modules/ppolicy.inc:159 +#: ../lib/modules/ppolicy.inc:160 +#: ../lib/modules/ppolicy.inc:201 +#: ../lib/modules/ppolicy.inc:485 +#: ../lib/modules/sambaDomain.inc:122 +#: ../lib/modules/sambaDomain.inc:190 +#: ../lib/modules/sambaDomain.inc:213 +#: ../lib/modules/sambaDomain.inc:215 +#: ../lib/modules/sambaDomain.inc:341 +#: ../lib/modules/sambaDomain.inc:693 +msgid "Maximum password age" +msgstr "Edat màxima de la contrasenya" + +#: ../lib/types/netgroup.inc:94 +#: ../lib/modules/nisnetgroup.inc:80 +#: ../lib/modules/nisnetgroup.inc:84 +#: ../lib/modules/nisnetgroup.inc:117 +#: ../lib/modules/nisnetgroup.inc:127 +#: ../lib/modules/nisnetgroup.inc:254 +#: ../lib/modules/nisnetgroup.inc:575 +#: ../lib/modules/groupOfNames.inc:72 +#: ../lib/modules/groupOfNames.inc:76 +#: ../lib/modules/groupOfNames.inc:103 +#: ../lib/modules/groupOfNames.inc:114 +#: ../lib/modules/groupOfNames.inc:176 +#: ../lib/modules/groupOfNames.inc:454 +msgid "Members" +msgstr "Membres" + +#: ../lib/modules/sambaSamAccount.inc:539 +msgid "Mid-Atlantic" +msgstr "Mid-Atlantic" + +#: ../lib/modules/sambaSamAccount.inc:530 +msgid "Midway Island, Samoa" +msgstr "Midway Island, Samoa" + +#: ../lib/modules/inetOrgPerson.inc:251 +msgid "Miller" +msgstr "Miller" + +#: ../lib/modules/sambaDomain.inc:94 +#: ../lib/modules/sambaDomain.inc:183 +#: ../lib/modules/sambaDomain.inc:268 +#: ../lib/modules/sambaDomain.inc:666 +msgid "Minimal password length" +msgstr "Mida mínima de la contrasenya" + +#: ../lib/modules/posixGroup.inc:297 +#: ../lib/modules/posixGroup.inc:470 +msgid "Minimum GID number" +msgstr "GID mínim" + +#: ../lib/modules/posixGroup.inc:470 +msgid "Minimum GID number is invalid or empty!" +msgstr "GID mínim invàlid o en blanc!" + +#: ../lib/modules/posixAccount.inc:59 +#: ../lib/modules/posixAccount.inc:61 +#: ../lib/modules/posixAccount.inc:162 +#: ../lib/modules/posixAccount.inc:171 +msgid "Minimum UID number" +msgstr "UID mínim" + +#: ../lib/modules/posixAccount.inc:59 +#: ../lib/modules/posixAccount.inc:61 +msgid "Minimum UID number is invalid!" +msgstr "UID mínim invàlid!" + +#: ../templates/config/mainmanage.php:229 +msgid "Minimum character classes" +msgstr "Nombre mínim de tipus de caràcters" + +#: ../templates/config/mainmanage.php:225 +msgid "Minimum lowercase characters" +msgstr "Nombre mínim de mínuscules" + +#: ../templates/config/mainmanage.php:227 +msgid "Minimum numeric characters" +msgstr "Mínim nombre de caràcters numèrics" + +#: ../lib/types/ppolicyType.inc:78 +#: ../lib/modules/shadowAccount.inc:57 +#: ../lib/modules/shadowAccount.inc:114 +#: ../lib/modules/shadowAccount.inc:181 +#: ../lib/modules/shadowAccount.inc:213 +#: ../lib/modules/shadowAccount.inc:315 +#: ../lib/modules/ppolicy.inc:76 +#: ../lib/modules/ppolicy.inc:135 +#: ../lib/modules/ppolicy.inc:158 +#: ../lib/modules/ppolicy.inc:192 +#: ../lib/modules/ppolicy.inc:484 +#: ../lib/modules/sambaDomain.inc:118 +#: ../lib/modules/sambaDomain.inc:189 +#: ../lib/modules/sambaDomain.inc:214 +#: ../lib/modules/sambaDomain.inc:332 +#: ../lib/modules/sambaDomain.inc:690 +msgid "Minimum password age" +msgstr "Edat mínima de la contrasenya" + +#: ../templates/config/mainmanage.php:224 +#: ../lib/types/ppolicyType.inc:87 +#: ../lib/modules/ppolicy.inc:112 +#: ../lib/modules/ppolicy.inc:139 +#: ../lib/modules/ppolicy.inc:167 +#: ../lib/modules/ppolicy.inc:247 +#: ../lib/modules/ppolicy.inc:502 +msgid "Minimum password length" +msgstr "Longitud mínima de la contrasenya" + +#: ../templates/config/mainmanage.php:228 +msgid "Minimum symbolic characters" +msgstr "Nombre mínim de símbols" + +#: ../templates/config/mainmanage.php:226 +msgid "Minimum uppercase characters" +msgstr "Nombre mínim de majuscules" + +#: ../lib/modules/inetOrgPerson.inc:52 +#: ../lib/modules/inetOrgPerson.inc:117 +#: ../lib/modules/inetOrgPerson.inc:205 +#: ../lib/modules/inetOrgPerson.inc:346 +#: ../lib/modules/inetOrgPerson.inc:454 +#: ../lib/modules/inetOrgPerson.inc:535 +#: ../lib/modules/inetOrgPerson.inc:536 +#: ../lib/modules/inetOrgPerson.inc:958 +#: ../lib/modules/inetOrgPerson.inc:1134 +msgid "Mobile number" +msgstr "Numero del mòbil" + +#: ../lib/modules/inetOrgPerson.inc:1515 +msgid "Mobile telephone number" +msgstr "Numero de telèfon mòbil" + +#: ../templates/config/confmodules.php:161 +#: ../templates/config/confmain.php:194 +#: ../templates/config/moduleSettings.php:160 +#: ../templates/config/conftypes.php:179 +msgid "Module settings" +msgstr "Configuració de mòduls" + +#: ../templates/config/confmodules.php:151 +#: ../templates/config/confmain.php:184 +#: ../templates/config/moduleSettings.php:150 +#: ../templates/config/conftypes.php:169 +msgid "Modules" +msgstr "Mòduls" + +#: ../lib/modules/sambaSamAccount.inc:1319 +msgid "Monday" +msgstr "Dilluns" + +#: ../lib/modules/sambaSamAccount.inc:534 +msgid "Mountain Time (US & Canada)" +msgstr "Mountain Time (US & Canada)" + +#: ../lib/modules/quota.inc:97 +#: ../lib/modules/quota.inc:381 +#: ../lib/modules/quota.inc:474 +#: ../lib/modules/quota.inc:590 +msgid "Mountpoint" +msgstr "Punt de muntatge" + +#: ../lib/modules/quota.inc:98 +msgid "Mountpoint of device with enabled quotas." +msgstr "Punt de muntatge de dispositiu amb quotes habilitades" + +#: ../lib/modules/eduPerson.inc:96 +#: ../lib/modules/eduPerson.inc:108 +#: ../lib/modules/eduPerson.inc:124 +#: ../lib/modules/sudoRole.inc:89 +#: ../lib/modules/sudoRole.inc:94 +#: ../lib/modules/sudoRole.inc:99 +#: ../lib/modules/sudoRole.inc:104 +#: ../lib/modules/sudoRole.inc:109 +#: ../lib/modules/sudoRole.inc:114 +msgid "Multiple values are separated by comma." +msgstr "Separa diversos valors amb una coma." + +#: ../lib/modules/ipHost.inc:86 +#: ../lib/modules/inetOrgPerson.inc:388 +msgid "MyCity" +msgstr "MevaCiutat" + +#: ../lib/modules/inetOrgPerson.inc:316 +msgid "Mycity" +msgstr "Mycity" + +#: ../lib/modules/inetOrgPerson.inc:300 +msgid "Mystreetname 42" +msgstr "Mystreetname 42" + +#: ../lib/modules/nisnetgroup.inc:52 +msgid "NIS net group" +msgstr "Grup de xarxa NIS" + +#: ../lib/types/netgroup.inc:62 +msgid "NIS netgroup entries" +msgstr "Entrades de NIS netgroup" + +#: ../lib/types/netgroup.inc:53 +msgid "NIS netgroups" +msgstr "Grups de xarxa NIS" + +#: ../lib/modules/nisObject.inc:40 +msgid "NIS object" +msgstr "Objecte NIS" + +#: ../lib/types/nisObjectType.inc:48 +msgid "NIS object entries" +msgstr "Entrades d'objecte NIS" + +#: ../lib/types/nisObjectType.inc:39 +msgid "NIS objects" +msgstr "Objectes NIS" + +#: ../templates/tree/templates/creation/new_ou_template.php:59 +#: ../templates/tree/templates/creation/new_ou_template.php:104 +#: ../templates/schema/schema.php:266 +#: ../templates/pdfedit/pdfdelete.php:85 +#: ../lib/types/ppolicyType.inc:77 +#: ../lib/modules/nisObject.inc:54 +#: ../lib/modules/nisObject.inc:74 +#: ../lib/modules/nisObject.inc:104 +#: ../lib/modules/nisObject.inc:130 +#: ../lib/modules/nisObject.inc:210 +#: ../lib/modules/ppolicy.inc:72 +#: ../lib/modules/ppolicy.inc:134 +#: ../lib/modules/ppolicy.inc:157 +#: ../lib/modules/ppolicy.inc:183 +#: ../lib/modules/ppolicy.inc:483 +#: ../lib/modules/groupOfNames.inc:141 +msgid "Name" +msgstr "Nom" + +#: ../help/help.inc:155 +msgid "Name under which the profile will be saved. If a profile with the same name exists, it will be overwritten." +msgstr "Nom sota el qual es gravarà el perfil. Si ja exiteix el perfil, s'escriurà a sobre." + +#: ../lib/modules/dhcp_settings.inc:158 +#: ../lib/modules/dhcp_settings.inc:175 +#: ../lib/modules/dhcp_settings.inc:608 +#: ../lib/modules/dhcp_settings.inc:676 +msgid "Net mask" +msgstr "Mascara de xarxa" + +#: ../lib/modules/dhcp_settings.inc:137 +#: ../lib/modules/dhcp_settings.inc:172 +#: ../lib/modules/dhcp_settings.inc:212 +#: ../lib/modules/dhcp_settings.inc:268 +#: ../lib/modules/dhcp_settings.inc:581 +#: ../lib/modules/dhcp_settings.inc:673 +msgid "Netbios name servers" +msgstr "Servidors de Netbios" + +#: ../lib/modules/dhcp_settings.inc:140 +#: ../lib/modules/dhcp_settings.inc:173 +#: ../lib/modules/dhcp_settings.inc:217 +#: ../lib/modules/dhcp_settings.inc:274 +#: ../lib/modules/dhcp_settings.inc:595 +#: ../lib/modules/dhcp_settings.inc:674 +msgid "Netbios node type" +msgstr "Tipus de node netbios" + +#: ../lib/types/dhcp.inc:125 +msgid "New DHCP" +msgstr "Nou DHCP" + +#: ../lib/modules/ipHost.inc:137 +msgid "New IP address" +msgstr "Nova adreça IP" + +#: ../lib/modules/ieee802device.inc:109 +msgid "New MAC address" +msgstr "Nova adreça MAC" + +#: ../lib/types/nisObjectType.inc:107 +msgid "New NIS object" +msgstr "Nou objecte NIS" + +#: ../templates/ou_edit.php:74 +msgid "New OU created successfully." +msgstr "OU creada satisfactòriament" + +#: ../lib/modules/ldapPublicKey.inc:107 +msgid "New SSH public key" +msgstr "Nova clau pública SSH" + +#: ../lib/modules/inetOrgPerson.inc:396 +msgid "New York" +msgstr "Illes Balears" + +#: ../lib/types/mailAlias.inc:119 +#: ../lib/types/alias.inc:119 +msgid "New alias" +msgstr "Nou àlies" + +#: ../templates/config/profmanage.php:137 +msgid "New default profile set successfully." +msgstr "Nou perfil per defecte establert satisfactòriament." + +#: ../lib/types/smbDomain.inc:119 +msgid "New domain" +msgstr "Nou domini" + +#: ../lib/types/asteriskExt.inc:120 +msgid "New extension" +msgstr "Nova extensió" + +#: ../templates/pdfedit/pdfpage.php:639 +msgid "New field" +msgstr "Nou camp" + +#: ../lib/types/gon.inc:121 +#: ../lib/types/group.inc:133 +#: ../lib/types/netgroup.inc:121 +msgid "New group" +msgstr "Nou grup" + +#: ../lib/types/host.inc:123 +#: ../lib/modules/hostObject.inc:150 +msgid "New host" +msgstr "Nova màquina" + +#: ../lib/modules/inetLocalMailRecipient.inc:167 +msgid "New local address" +msgstr "Nova adreça local" + +#: ../templates/config/mainmanage.php:349 +msgid "New master password" +msgstr "Nova contrasenya mestre" + +#: ../templates/config/mainmanage.php:74 +msgid "New master password set successfully." +msgstr "Nova contrasenya mestre establerta correctament." + +#: ../lib/lists.inc:108 +msgid "New object" +msgstr "Nou objecte" + +#: ../templates/tree/templates/creation/new_ou_template.php:47 +#: ../templates/ou_edit.php:165 +#: ../help/help.inc:200 +msgid "New organizational unit" +msgstr "Nova unitat organitzativa (OU)" + +#: ../lib/modules/groupOfNames.inc:253 +msgid "New owner" +msgstr "Nou propietari" + +#: ../templates/config/confmain.php:517 +#: ../lib/modules/posixAccount.inc:1708 +msgid "New password" +msgstr "Nova contrasenya" + +#: ../templates/config/profmanage.php:127 +#: ../lib/modules.inc:1092 +msgid "New password set successfully." +msgstr "Nova contrasenya establerta correctament." + +#: ../lib/types/ppolicyType.inc:127 +msgid "New policy" +msgstr "Nova política" + +#: ../lib/modules/range.inc:87 +#: ../lib/modules/range.inc:98 +#: ../lib/modules/range.inc:438 +#: ../lib/modules/range.inc:439 +msgid "New range" +msgstr "Nou rang" + +#: ../lib/modules/nisMailAlias.inc:154 +msgid "New recipient" +msgstr "Nou destinatari" + +#: ../templates/tree/add_oclass_form.php:134 +msgid "New required attributes:" +msgstr "Llista d'atributs nous obligatoris:" + +#: ../templates/pdfedit/pdfpage.php:558 +msgid "New section" +msgstr "Nova secció" + +#: ../lib/types/sudo.inc:111 +msgid "New sudo role" +msgstr "Nou rol de \"sudo\"" + +#: ../lib/types/user.inc:137 +msgid "New user" +msgstr "Nou usuari" + +#: ../templates/tree/update_confirm.php:154 +msgid "New value" +msgstr "Nou valor:" + +#: ../templates/tree/create_form.php:138 +#: ../templates/tree/templates/creation/custom.php:86 +#: ../templates/tree/templates/creation/new_ou_template.php:69 +msgid "Next" +msgstr "Següent" + +#: ../lib/modules/sambaDomain.inc:78 +#: ../lib/modules/sambaDomain.inc:158 +#: ../lib/modules/sambaDomain.inc:179 +#: ../lib/modules/sambaDomain.inc:372 +#: ../lib/modules/sambaDomain.inc:654 +msgid "Next RID" +msgstr "Següent RID" + +#: ../lib/modules/sambaDomain.inc:205 +#: ../lib/modules/sambaDomain.inc:206 +msgid "Next RID is not a number!" +msgstr "El següent RID no és un número!" + +#: ../lib/modules/sambaDomain.inc:79 +msgid "Next RID to use when creating accounts (only used by Winbind)." +msgstr "Següent RID a utilitzar a l'hora de crear comptes (només per Winbind)." + +#: ../lib/modules/sambaDomain.inc:87 +msgid "Next RID to use when creating group accounts (only used by Winbind)." +msgstr "Següent RID a utilitzar a l'hora de crear comptes de grup (només per Winbind)" + +#: ../lib/modules/sambaDomain.inc:83 +msgid "Next RID to use when creating user accounts (only used by Winbind)." +msgstr "Següent RID a utilitzar a l'hora de crear comptes d'usuari(només per Winbind)" + +#: ../lib/modules/sambaDomain.inc:86 +#: ../lib/modules/sambaDomain.inc:170 +#: ../lib/modules/sambaDomain.inc:181 +#: ../lib/modules/sambaDomain.inc:382 +#: ../lib/modules/sambaDomain.inc:660 +msgid "Next group RID" +msgstr "RID del pròxim grup" + +#: ../lib/modules/sambaDomain.inc:209 +#: ../lib/modules/sambaDomain.inc:210 +msgid "Next group RID is not a number!" +msgstr "El proxim RID de grup no és un número!" + +#: ../lib/modules/sambaDomain.inc:82 +#: ../lib/modules/sambaDomain.inc:164 +#: ../lib/modules/sambaDomain.inc:180 +#: ../lib/modules/sambaDomain.inc:377 +#: ../lib/modules/sambaDomain.inc:657 +msgid "Next user RID" +msgstr "RID del pròxim usuari" + +#: ../lib/modules/sambaDomain.inc:207 +#: ../lib/modules/sambaDomain.inc:208 +msgid "Next user RID is not a number!" +msgstr "El RID del usuari no és un numero!" + +#: ../lib/modules/eduPerson.inc:86 +#: ../lib/modules/eduPerson.inc:168 +#: ../lib/modules/eduPerson.inc:200 +#: ../lib/modules/eduPerson.inc:313 +#: ../lib/modules/eduPerson.inc:684 +msgid "Nick names" +msgstr "Nom d'àlies" + +#: ../templates/schema/schema.php:151 +#: ../templates/schema/schema.php:193 +#: ../templates/schema/schema.php:198 +#: ../templates/schema/schema.php:203 +msgid "No" +msgstr "No" + +#: ../lib/types/dhcp.inc:124 +msgid "No DHCPs found!" +msgstr "No s'han trobat DHCP(s)!" + +#: ../lib/types/nisObjectType.inc:106 +msgid "No NIS objects found!" +msgstr "No s'han trobat objectes NIS" + +#: ../lib/modules/sambaSamAccount.inc:617 +#: ../lib/modules/sambaSamAccount.inc:743 +#: ../lib/modules/sambaSamAccount.inc:1057 +#: ../lib/modules/sambaGroupMapping.inc:90 +#: ../lib/modules/sambaGroupMapping.inc:218 +#: ../lib/modules/sambaGroupMapping.inc:471 +msgid "No Samba 3 domains found in LDAP! Please create one first." +msgstr "No s'han trobat dominis de Samba 3 a l'LDAP. Crea'n un primer." + +#: ../lib/modules/posixAccount.inc:442 +#: ../lib/modules/posixAccount.inc:895 +msgid "No Unix groups found in LDAP! Please create one first." +msgstr "No s'han trobat grups en el servidor d'LDAP! Si us plau, crei'n un primer." + +#: ../lib/types/mailAlias.inc:118 +#: ../lib/types/alias.inc:118 +msgid "No aliases found!" +msgstr "No s'han trobat àlies" + +#: ../templates/initsuff.php:163 +msgid "No changes were made." +msgstr "No s'han fet canvis." + +#: ../templates/schema/schema.php:142 +msgid "No description" +msgstr "Sense descripció" + +#: ../lib/types/smbDomain.inc:118 +msgid "No domains found!" +msgstr "No s'han trobat dominis." + +#: ../lib/types/asteriskExt.inc:119 +msgid "No extension(s) found!" +msgstr "No s'han trobat extensions" + +#: ../lib/modules/inetOrgPerson.inc:74 +msgid "No file selected." +msgstr "No s'ha triat cap fitxer." + +#: ../lib/modules/posixGroup.inc:468 +#: ../lib/modules/posixAccount.inc:70 +msgid "No free ID-Number!" +msgstr "Cap ID lliure!" + +#: ../lib/types/gon.inc:120 +#: ../lib/types/group.inc:132 +#: ../lib/types/netgroup.inc:120 +msgid "No groups found!" +msgstr "No s'han trobat grups!" + +#: ../lib/types/host.inc:122 +msgid "No hosts found!" +msgstr "No s'han trobat màquines!" + +#: ../templates/tree/edit.php:193 +msgid "No internal attributes" +msgstr "Sense atributs interns" + +#: ../templates/tests/lamdaemonTest.php:186 +msgid "No lamdaemon path set, please update your LAM configuration settings." +msgstr "No s'ha afegit cap ruta per lamdaemon, modifica els paràmetres de la configuració de LAM." + +#: ../templates/tests/lamdaemonTest.php:105 +#: ../templates/tests/lamdaemonTest.php:182 +msgid "No lamdaemon server set, please update your LAM configuration settings." +msgstr "No s'ha definit cap servidor de lamdaemon, modifica els paràmetres de la configuració de LAM." + +#: ../templates/config/mainmanage.php:305 +msgid "No logging" +msgstr "Sense registre" + +#: ../templates/pdfedit/pdfpage.php:382 +msgid "No logo" +msgstr "Sense Logo" + +#: ../lib/lists.inc:107 +msgid "No objects found!" +msgstr "No s'han trobat objectes" + +#: ../templates/config/confmodules.php:379 +msgid "No or more than one base module selected!" +msgstr "No s'ha sel·leccionat cap mòdul base!" + +#: ../templates/config/confsave.php:53 +#: ../templates/config/confmain.php:54 +msgid "No password was entered!" +msgstr "No s'ha entrat cap contrasenya" + +#: ../lib/types/ppolicyType.inc:126 +msgid "No policies found!" +msgstr "No s'han trobat polítiques" + +#: ../templates/tests/schemaTest.php:69 +msgid "No problems found." +msgstr "No s'han trobat problemes." + +#: ../lib/modules/customScripts.inc:160 +msgid "No scripts to run." +msgstr "No hi ha scripts per executar." + +#: ../templates/pdfedit/pdfpage.php:119 +msgid "No section text specified" +msgstr "No s'ha especificat cap texte de secció" + +#: ../templates/config/conflogin.php:105 +msgid "No server profiles found. Please create one." +msgstr "No s'ha trobat cap perfil de configuració. Crea'n un." + +#: ../templates/pdfedit/pdfpage.php:107 +msgid "No static text specified" +msgstr "No s'ha especificat cap texte" + +#: ../lib/modules/dhcp_settings.inc:300 +msgid "No subnet entered." +msgstr "No s'ha escrit cap mascara de xarxa." + +#: ../templates/tree/edit.php:81 +msgid "No such entry!" +msgstr "No existeix l'entrada!" + +#: ../templates/schema/schema.php:435 +#, php-format +msgid "No such schema item: \"%s\"" +msgstr "No existeix el esquema: \"%s\"" + +#: ../lib/types/sudo.inc:110 +msgid "No sudo roles found!" +msgstr "No s'han trobat rols de \"sudo\"" + +#: ../lib/types/user.inc:136 +msgid "No users found!" +msgstr "No s'han trobat usuaris!" + +#: ../help/help.inc:67 +msgid "Note" +msgstr "Nota" + +#: ../templates/tree/add_value_form.php:115 +msgid "Note: You will get an \"inappropriate matching\" error if you have not setup an EQUALITY rule on your LDAP server for this attribute." +msgstr "Nota: Si en el teu servidor de LDAP no has configurat una regla de igualtat (EQUALITY rule) per aquest atribut, rebràs un error de \"coincidència inapropiada\"." + +#: ../templates/config/mainmanage.php:267 +msgid "Notice" +msgstr "Avís" + +#: ../templates/delete.php:94 +msgid "Number of child entries" +msgstr "Nombre d'entrades fills" + +#: ../lib/modules/shadowAccount.inc:178 +msgid "Number of days a user can login even his password has expired. -1=always." +msgstr "Nombre de dies en que l'usuari pot seguir iniciant la sessió encara que la seva contrasenya hagi caducat. -1=sempre." + +#: ../lib/modules/shadowAccount.inc:182 +msgid "Number of days a user has to wait until he is allowed to change his password again. If set value must be >0." +msgstr "Nombre de dies que han de passar per tal que l'usuari pugui tornar a canviar la seva contrasenya. Si s'especifica, el valor ha de ser major de 0." + +#: ../lib/modules/shadowAccount.inc:186 +msgid "Number of days after a user has to change his password again. If set value must be >0." +msgstr "Nombre de dies que han de passar per tal que l'usuari hagi de canviar la contrasenya una altre vegada. Si s'especifica, el valor ha de ser major de zero." + +#: ../lib/modules/sambaDomain.inc:131 +msgid "Number of minutes after which the bad logon attempts are reset." +msgstr "Minuts que han de passar perquè es restauri el valor d'intents d'acces invàlids" + +#: ../lib/modules/ppolicy.inc:77 +#: ../lib/modules/sambaDomain.inc:119 +msgid "Number of seconds after the user is allowed to change his password again." +msgstr "Temps que ha de passar en segons després d'un canvi de contrasenya perquè l'usuari la pugui tornar a canviar." + +#: ../lib/modules/ppolicy.inc:81 +#: ../lib/modules/sambaDomain.inc:123 +msgid "Number of seconds after which the user must change his password." +msgstr "Temps en segons que han de passar després de que l'usuari hagi de tornar a canviar la seva contrasenya." + +#: ../templates/schema/schema.php:145 +#: ../templates/schema/schema.php:342 +msgid "OID" +msgstr "OID" + +#: ../templates/ou_edit.php:80 +msgid "OU already exists!" +msgstr "L'OU ja existeix!" + +#: ../templates/ou_edit.php:91 +msgid "OU deleted successfully." +msgstr "S'ha esborrat la OU" + +#: ../templates/ou_edit.php:135 +#: ../templates/ou_edit.php:161 +#: ../lib/tools/ouEditor.inc:44 +msgid "OU editor" +msgstr "Editor de O.U" + +#: ../templates/ou_edit.php:84 +msgid "OU is invalid!" +msgstr "OU invàlida!" + +#: ../templates/ou_edit.php:119 +msgid "OU is not empty or invalid!" +msgstr "OU no està en blanc, o és invàlida!" + +#: ../help/help.inc:200 +#: ../help/help.inc:202 +msgid "OU-Editor" +msgstr "Editor-OU" + +#: ../templates/tree/templates/creation/custom.php:70 +#: ../templates/schema/schema.php:63 +#: ../templates/schema/schema.php:64 +msgid "Object classes" +msgstr "Classes d'objecte" + +#: ../templates/schema/schema.php:150 +#: ../templates/schema/schema.php:281 +msgid "Obsolete" +msgstr "Obsolet" + +#: ../lib/modules/sambaDomain.inc:292 +#: ../lib/modules/sambaDomain.inc:303 +#: ../lib/modules/sambaDomain.inc:314 +#: ../lib/modules/sambaDomain.inc:672 +#: ../lib/modules/sambaDomain.inc:677 +#: ../lib/modules/sambaDomain.inc:682 +msgid "Off" +msgstr "Off" + +#: ../lib/modules/inetOrgPerson.inc:121 +#: ../lib/modules/inetOrgPerson.inc:197 +#: ../lib/modules/inetOrgPerson.inc:410 +#: ../lib/modules/inetOrgPerson.inc:442 +#: ../lib/modules/inetOrgPerson.inc:583 +#: ../lib/modules/inetOrgPerson.inc:919 +#: ../lib/modules/inetOrgPerson.inc:1144 +#: ../lib/modules/inetOrgPerson.inc:1595 +msgid "Office name" +msgstr "Nom de l'oficina" + +#: ../templates/tree/export_form.php:165 +#: ../templates/tests/lamdaemonTest.php:100 +#: ../templates/ou_edit.php:172 +#: ../templates/ou_edit.php:188 +#: ../templates/masscreate.php:195 +#: ../templates/config/profmanage.php:354 +#: ../templates/config/mainmanage.php:376 +#: ../templates/config/conflogin.php:135 +#: ../templates/config/conflogin.php:136 +#: ../templates/config/mainlogin.php:135 +#: ../templates/selfService/selfServiceLogin.php:228 +#: ../templates/selfService/profManage.php:266 +#: ../templates/selfService/adminLogin.php:132 +#: ../templates/selfService/adminLogin.php:133 +#: ../templates/selfService/adminMain.php:542 +#: ../templates/selfService/adminMain.php:585 +#: ../templates/profedit/profiledelete.php:82 +#: ../lib/modules/sambaSamAccount.inc:1366 +#: ../lib/modules/sambaSamAccount.inc:1527 +#: ../lib/modules/nisnetgroup.inc:454 +#: ../lib/modules/nisnetgroup.inc:470 +#: ../lib/modules/aliasEntry.inc:141 +#: ../lib/modules/aliasEntry.inc:160 +#: ../lib/modules/groupOfNames.inc:237 +#: ../lib/modules/groupOfNames.inc:258 +#: ../lib/modules/groupOfNames.inc:346 +#: ../lib/lists.inc:613 +#: ../lib/lists.inc:829 +#: ../lib/modules.inc:1314 +msgid "Ok" +msgstr "Ok" + +#: ../templates/tree/update_confirm.php:153 +msgid "Old value" +msgstr "valor antic" + +#: ../lib/modules/sambaDomain.inc:292 +#: ../lib/modules/sambaDomain.inc:303 +#: ../lib/modules/sambaDomain.inc:314 +#: ../lib/modules/sambaDomain.inc:673 +#: ../lib/modules/sambaDomain.inc:678 +#: ../lib/modules/sambaDomain.inc:683 +msgid "On" +msgstr "On" + +#: ../lib/modules/sambaSamAccount.inc:223 +#: ../lib/modules/sambaSamAccount.inc:360 +#: ../lib/modules/sambaSamAccount.inc:1512 +#: ../lib/modules/sambaSamAccount.inc:1841 +msgid "On broken or timed out connection" +msgstr "Connexió trencada o s'ha superat el temps d'espera" + +#: ../templates/tree/export_form.php:75 +msgid "One (one level beneath base)" +msgstr "One (Un nivell per sota del base)" + +#: ../lib/modules/range.inc:97 +#: ../lib/modules/fixed_ip.inc:96 +msgid "One or more errors occured. The invalid fields are marked." +msgstr "Hi ha errors. Els camps invàlids s'han marcat." + +#: ../templates/tree/templates/creation/custom.php:209 +#: ../templates/schema/schema.php:382 +msgid "Optional attributes" +msgstr "Atributs opcionals" + +#: ../templates/tree/templates/creation/custom.php:225 +msgid "Optional binary attributes" +msgstr "Atributs binaris opcionals" + +#: ../templates/lists/changePassword.php:139 +#: ../lib/types/sudo.inc:83 +#: ../lib/modules/sudoRole.inc:83 +#: ../lib/modules/sudoRole.inc:112 +#: ../lib/modules/sudoRole.inc:164 +#: ../lib/modules/sudoRole.inc:178 +#: ../lib/modules/sudoRole.inc:202 +#: ../lib/modules/sudoRole.inc:420 +#: ../lib/modules/sudoRole.inc:723 +#: ../lib/modules/asteriskExtension.inc:106 +#: ../lib/modules/asteriskVoicemail.inc:102 +#: ../lib/modules/asteriskVoicemail.inc:113 +#: ../lib/modules/asteriskVoicemail.inc:138 +#: ../lib/modules/asteriskVoicemail.inc:186 +#: ../lib/modules/asteriskVoicemail.inc:257 +#: ../lib/modules/asteriskVoicemail.inc:379 +msgid "Options" +msgstr "Opcions" + +#: ../lib/modules/asteriskVoicemail.inc:103 +msgid "Options for Asterisk voicemail account (e.g. sendvoicemail=yes)." +msgstr "Opcions per el compte de veu i correu d'Asterisk (p.ex. sendvoicemail=yes)." + +#: ../templates/schema/schema.php:169 +msgid "Ordering" +msgstr "Ordenament" + +#: ../lib/modules/eduPerson.inc:111 +#: ../lib/modules/eduPerson.inc:180 +#: ../lib/modules/eduPerson.inc:201 +#: ../lib/modules/eduPerson.inc:218 +#: ../lib/modules/eduPerson.inc:357 +#: ../lib/modules/eduPerson.inc:695 +msgid "Organization" +msgstr "Organització" + +#: ../templates/tree/templates/templates.inc:46 +msgid "Organizational unit" +msgstr "Unitat organitzativa (OU)" + +#: ../lib/modules/eduPerson.inc:119 +#: ../lib/modules/eduPerson.inc:123 +#: ../lib/modules/eduPerson.inc:192 +#: ../lib/modules/eduPerson.inc:202 +#: ../lib/modules/eduPerson.inc:385 +#: ../lib/modules/eduPerson.inc:701 +msgid "Organizational units" +msgstr "Unitats organitzatives" + +#: ../lib/modules/eduPerson.inc:222 +msgid "Organizational units contains an invalid entry." +msgstr "La Unitat organitzativa conté una entrada invàlida." + +#: ../templates/config/confmain.php:445 +msgid "Other" +msgstr "Altres" + +#: ../lib/modules/customScripts.inc:76 +#: ../lib/modules/customScripts.inc:88 +#: ../lib/modules/customScripts.inc:97 +msgid "Output may contain HTML" +msgstr "La sortida pot contenir HTML" + +#: ../lib/modules/customScripts.inc:416 +#, php-format +msgid "Output of command \"%s\" with return code %s" +msgstr "Sortida de l'ordre \"%s\" retorna %s" + +#: ../templates/config/confmain.php:437 +#: ../lib/types/gon.inc:94 +#: ../lib/modules/groupOfNames.inc:68 +#: ../lib/modules/groupOfNames.inc:97 +#: ../lib/modules/groupOfNames.inc:113 +#: ../lib/modules/groupOfNames.inc:152 +#: ../lib/modules/groupOfNames.inc:170 +#: ../lib/modules/groupOfNames.inc:450 +msgid "Owner" +msgstr "Propietari" + +#: ../lib/modules/dhcp_settings.inc:88 +msgid "P-Node (0x02)" +msgstr "P-Node (0x02)" + +#: ../lib/modules/fixed_ip.inc:81 +#: ../lib/modules/fixed_ip.inc:326 +#: ../lib/modules/fixed_ip.inc:518 +msgid "PC name" +msgstr "Nom del PC" + +#: ../templates/pdfedit/pdfmain.php:115 +#: ../lib/tools/pdfEdit.inc:44 +msgid "PDF editor" +msgstr "Editor de PDF" + +#: ../lib/lists.inc:577 +msgid "PDF structure" +msgstr "Estructura de PDF" + +#: ../templates/pdfedit/pdfpage.php:90 +msgid "PDF structure name not valid" +msgstr "Nom de l'estructura del PDF no vàlida" + +#: ../templates/pdfedit/pdfmain.php:119 +msgid "PDF structure was successfully saved." +msgstr "L'estructura en PDF s'ha gravat correctament." + +#: ../lib/modules/sambaSamAccount.inc:533 +msgid "Pacific Time (US & Canada)" +msgstr "Pacific Time (US & Canada)" + +#: ../lib/modules/dhcp_settings.inc:135 +msgid "Packets are sent to the default gateway if the receiver does not reside in the same network. The default gateway routes them to the target network." +msgstr "Els paquets son enviats a la porta d'enllaç per defecte si el receptor no està a la mateixa sub-xarxa. La porta per defecte encamina el paquet a la xarxa destí." + +#: ../templates/selfService/adminMain.php:446 +#: ../help/help.inc:185 +msgid "Page header" +msgstr "Capçalera de la pàgina" + +#: ../lib/modules/asteriskVoicemail.inc:98 +#: ../lib/modules/asteriskVoicemail.inc:137 +#: ../lib/modules/asteriskVoicemail.inc:180 +#: ../lib/modules/asteriskVoicemail.inc:253 +#: ../lib/modules/asteriskVoicemail.inc:377 +msgid "Pager" +msgstr "Cercador de persones" + +#: ../lib/modules/asteriskVoicemail.inc:99 +msgid "Pager number for Asterisk voicemail." +msgstr "Nombre de pàgina per correu i veu d'Asterisk" + +#: ../templates/schema/schema.php:364 +msgid "Parent to" +msgstr "Pare de" + +#: ../templates/lists/changePassword.php:194 +#: ../templates/login.php:265 +#: ../templates/selfService/selfServiceLogin.php:214 +#: ../lib/modules/asteriskAccount.inc:91 +#: ../lib/modules/asteriskAccount.inc:156 +#: ../lib/modules/posixGroup.inc:195 +#: ../lib/modules/posixGroup.inc:465 +#: ../lib/modules/sambaSamAccount.inc:398 +#: ../lib/modules/posixAccount.inc:75 +#: ../lib/modules/posixAccount.inc:76 +#: ../lib/modules/posixAccount.inc:141 +#: ../lib/modules/posixAccount.inc:257 +#: ../lib/modules/posixAccount.inc:320 +#: ../lib/modules/posixAccount.inc:382 +#: ../lib/modules/posixAccount.inc:1004 +#: ../lib/modules/posixAccount.inc:1186 +#: ../lib/modules/asteriskVoicemail.inc:86 +#: ../lib/modules/asteriskVoicemail.inc:161 +#: ../lib/modules.inc:1288 +#: ../help/help.inc:164 +msgid "Password" +msgstr "Contrasenya" + +#: ../lib/modules/sambaSamAccount.inc:270 +#: ../lib/modules/sambaSamAccount.inc:1111 +msgid "Password change at next login" +msgstr "S'ha de canviar la contrasenya al pròxim inici de sessió" + +#: ../lib/types/ppolicyType.inc:91 +#: ../lib/modules/ppolicy.inc:128 +#: ../lib/modules/ppolicy.inc:148 +#: ../lib/modules/ppolicy.inc:310 +#: ../lib/modules/ppolicy.inc:522 +msgid "Password change requires old password" +msgstr "El canvi de contrasenya necessita la contrasenya antiga" + +#: ../lib/modules/posixGroup.inc:465 +#: ../lib/modules/sambaSamAccount.inc:92 +#: ../lib/modules/posixAccount.inc:76 +#: ../lib/modules/posixAccount.inc:77 +msgid "Password contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and #*,.;:_-+!%&/|?{[()]}=@$ !" +msgstr "La contrasenya conté caràcters invàlids. Els caràcters vàlids són: a-z, A-Z, 0-9 i #*,.;:_-+!%&/|?{[()]}=@$ !" + +#: ../lib/modules/sambaSamAccount.inc:255 +#: ../lib/modules/sambaSamAccount.inc:258 +#: ../lib/modules/sambaSamAccount.inc:420 +#: ../lib/modules/sambaSamAccount.inc:1094 +#: ../lib/modules/sambaSamAccount.inc:1560 +msgid "Password does not expire" +msgstr "La contrasenya no caduca" + +#: ../lib/modules/shadowAccount.inc:61 +#: ../lib/modules/shadowAccount.inc:109 +#: ../lib/modules/shadowAccount.inc:168 +#: ../lib/modules/shadowAccount.inc:177 +#: ../lib/modules/shadowAccount.inc:207 +#: ../lib/modules/shadowAccount.inc:309 +#: ../lib/modules/shadowAccount.inc:418 +msgid "Password expiration" +msgstr "Caducitat de contrasenyes" + +#: ../lib/modules/shadowAccount.inc:61 +#: ../lib/modules/shadowAccount.inc:62 +msgid "Password expiration must be are natural number or -1." +msgstr "La caducitat de contrasenya ha de ser un numero natural o bé -1." + +#: ../lib/modules/asteriskVoicemail.inc:87 +msgid "Password for voicemail mailbox." +msgstr "Contrasenya per la bústia correu i veu" + +#: ../lib/modules/posixGroup.inc:403 +#: ../lib/modules/posixGroup.inc:426 +#: ../lib/modules/posixAccount.inc:145 +#: ../lib/modules/posixAccount.inc:180 +#: ../lib/modules/posixAccount.inc:337 +#: ../lib/modules/inetOrgPerson.inc:229 +#: ../lib/modules/inetOrgPerson.inc:595 +msgid "Password hash type" +msgstr "Tipo de hash de contrasenya" + +#: ../lib/types/ppolicyType.inc:80 +#: ../lib/modules/ppolicy.inc:84 +#: ../lib/modules/ppolicy.inc:137 +#: ../lib/modules/ppolicy.inc:161 +#: ../lib/modules/ppolicy.inc:228 +#: ../lib/modules/ppolicy.inc:486 +#: ../lib/modules/sambaDomain.inc:98 +#: ../lib/modules/sambaDomain.inc:184 +#: ../lib/modules/sambaDomain.inc:279 +#: ../lib/modules/sambaDomain.inc:669 +msgid "Password history length" +msgstr "Longitud de la història de contrasenyes" + +#: ../lib/modules/shadowAccount.inc:59 +#: ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/ppolicy.inc:159 +#: ../lib/modules/sambaDomain.inc:215 +msgid "Password maximum age must be are natural number." +msgstr "L'edat màxima de la contrasenya ha de ser un número natural." + +#: ../lib/modules/shadowAccount.inc:66 +msgid "Password maximum age must be bigger as password minimum age." +msgstr "L'edat màxima de la contrasenya ha de ser més gran que l'edat mínima." + +#: ../lib/modules/shadowAccount.inc:65 +#: ../lib/modules/ppolicy.inc:160 +#: ../lib/modules/sambaDomain.inc:213 +msgid "Password maximum age must be bigger than password minimum age." +msgstr "L'edat màxima de la contrasenya ha de ser més gran que l'edat mínima." + +#: ../lib/modules/shadowAccount.inc:57 +#: ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/ppolicy.inc:158 +#: ../lib/modules/sambaDomain.inc:214 +msgid "Password minimum age must be are natural number." +msgstr "L'edat minima de la contrasenya ha de ser un numero natural." + +#: ../lib/types/ppolicyType.inc:39 +msgid "Password policies" +msgstr "Política de contrasenyes" + +#: ../lib/types/ppolicyType.inc:48 +msgid "Password policies (ppolicy)" +msgstr "Política de contrasenyes (ppolicy)" + +#: ../templates/config/mainmanage.php:219 +#: ../lib/modules/ppolicyUser.inc:38 +#: ../lib/modules/ppolicyUser.inc:48 +#: ../lib/modules/ppolicyUser.inc:55 +#: ../lib/modules/ppolicyUser.inc:63 +#: ../lib/modules/ppolicyUser.inc:98 +#: ../lib/modules/ppolicyUser.inc:168 +#: ../lib/modules/ppolicyUser.inc:196 +#: ../lib/modules/ppolicy.inc:54 +#: ../help/help.inc:145 +msgid "Password policy" +msgstr "Política de contrasenyes" + +#: ../lib/types/ppolicyType.inc:81 +#: ../lib/modules/ppolicy.inc:88 +#: ../lib/modules/ppolicy.inc:138 +#: ../lib/modules/ppolicy.inc:237 +#: ../lib/modules/ppolicy.inc:496 +msgid "Password quality check" +msgstr "Comprovació de qualitat de la contrasenya" + +#: ../lib/modules/shadowAccount.inc:63 +#: ../lib/modules/shadowAccount.inc:104 +#: ../lib/modules/shadowAccount.inc:166 +#: ../lib/modules/shadowAccount.inc:173 +#: ../lib/modules/shadowAccount.inc:201 +#: ../lib/modules/shadowAccount.inc:303 +#: ../lib/modules/shadowAccount.inc:417 +msgid "Password warning" +msgstr "Avís de caducitat de contrasenya" + +#: ../lib/modules/shadowAccount.inc:63 +#: ../lib/modules/shadowAccount.inc:64 +msgid "Password warning must be are natural number." +msgstr "L'avís de caducitat de contrasenya" + +#: ../templates/config/confmain.php:613 +#: ../lib/modules.inc:1350 +msgid "Passwords are different!" +msgstr "Les contrasenyes són diferents!" + +#: ../lib/types/nisObjectType.inc:77 +msgid "Path" +msgstr "Camí" + +#: ../lib/modules/sambaSamAccount.inc:334 +msgid "Path of the user profile." +msgstr "Camí al perfil d'usuari" + +#: ../lib/modules/sambaSamAccount.inc:285 +msgid "Path of the user profile. Can be a local absolute path or a UNC-path (\\\\server\\share). $user and $group are replaced with user and group name." +msgstr "Cami al perfil del usuari. Pot ser un path absolut o un path UNC (\\\\servidor\\recurs). $user i $group es substituiràn per l'usuari i el nom del grup." + +#: ../templates/config/confmain.php:405 +msgid "Path to external script" +msgstr "Cami al script extern" + +#: ../lib/modules/ddns.inc:92 +#: ../lib/modules/ddns.inc:353 +msgid "Path to key for DNS updates" +msgstr "Ruta a la clau per les actualitzacions de DNS" + +#: ../templates/tree/delete_form.php:81 +msgid "Permanently delete all children, too?" +msgstr "Esborrar permanentment tots els fills, també?" + +#: ../lib/modules/inetOrgPerson.inc:93 +msgid "Personal" +msgstr "Personal" + +#: ../lib/types/user.inc:102 +#: ../lib/types/user.inc:219 +#: ../lib/modules/inetOrgPerson.inc:119 +#: ../lib/modules/inetOrgPerson.inc:1064 +#: ../lib/modules/inetOrgPerson.inc:1615 +#: ../lib/modules/inetOrgPerson.inc:1618 +#: ../lib/modules/inetOrgPerson.inc:1632 +msgid "Photo" +msgstr "Foto" + +#: ../lib/modules/inetOrgPerson.inc:1103 +msgid "Photo file (JPG format)" +msgstr "Fitxer de fotografia (format JPG)" + +#: ../lib/modules/ldapPublicKey.inc:67 +msgid "Please a comma separated list of your public SSH keys." +msgstr "Escriu una llista separada per comes de les teves claus d'SSH públiques." + +#: ../lib/modules/customScripts.inc:77 +msgid "Please activate this option if your scripts may generate HTML output. Otherwise, the output is treated as plain text." +msgstr "Activa aquesta opció si els teus scripts generen sortida HTML. D'altra banda la sortida es tractarà com a text pla." + +#: ../lib/modules/asteriskExtension.inc:207 +msgid "Please add at least one member." +msgstr "Afegeix almenys un membre a aquest grup." + +#: ../lib/modules/sambaSamAccount.inc:1051 +msgid "Please check your settings on the Unix page!" +msgstr "Comprova la configuració a l'apartat de Unix!" + +#: ../templates/delete.php:82 +msgid "Please confirm:" +msgstr "Si us plau, confirmi:" + +#: ../lib/modules/phpGroupwareUser.inc:137 +msgid "Please enter \"active\" or \"inactive\"." +msgstr "Escriu active o inactive." + +#: ../lib/modules/sambaSamAccount.inc:93 +msgid "Please enter a RID number or the name of a special account!" +msgstr "Si us plau, entri un numero RID del nom del compte especial!" + +#: ../lib/modules/asteriskAccount.inc:168 +msgid "Please enter a caller ID." +msgstr "Entra un ID del caller." + +#: ../lib/modules/sambaSamAccount.inc:90 +#: ../lib/modules/sambaSamAccount.inc:91 +msgid "Please enter a comma separated list of host names!" +msgstr "Si us plau, entri una llista separada per comes de noms de màquines!" + +#: ../lib/modules/asteriskExtension.inc:200 +msgid "Please enter a common name." +msgstr "Entra un nom comú." + +#: ../lib/modules/nisObject.inc:55 +#: ../lib/modules/sudoRole.inc:56 +msgid "Please enter a descriptive name for this entry." +msgstr "Introdueix un nom descriptiu per aquesta entrada." + +#: ../lib/modules/groupOfNames.inc:123 +msgid "Please enter a group name!" +msgstr "Escriu un nom de grup!" + +#: ../lib/modules/asteriskVoicemail.inc:205 +msgid "Please enter a mailbox." +msgstr "Introdueix una bústia." + +#: ../lib/modules/ppolicy.inc:157 +msgid "Please enter a name for this policy." +msgstr "Introdueix un nom per aquesta política." + +#: ../lib/modules/ppolicy.inc:166 +msgid "Please enter a numeric value for the expire warning." +msgstr "Introdueix un valor numèric per l'alerta de caducitat." + +#: ../lib/modules/ppolicy.inc:165 +msgid "Please enter a numeric value for the failure count interval." +msgstr "Introdueix un valor numèric per el l'interval de comptador de fallades." + +#: ../lib/modules/ppolicy.inc:162 +msgid "Please enter a numeric value for the grace authentication limit." +msgstr "Introdueix un valor numèric per el límit d'autenticació de gràcia." + +#: ../lib/modules/ppolicy.inc:163 +msgid "Please enter a numeric value for the lockout duration." +msgstr "Introdueix un valor numèric per la duració del bloqueig." + +#: ../lib/modules/ppolicy.inc:164 +msgid "Please enter a numeric value for the maximum failure count." +msgstr "Introdueix un valor numèric per el l'interval màxim de comptador de fallades." + +#: ../lib/modules/ppolicy.inc:167 +msgid "Please enter a numeric value for the minimum password length." +msgstr "Introdueix un valor numèric per la longitud mínima de contrasenya." + +#: ../lib/modules/ppolicy.inc:161 +msgid "Please enter a numeric value for the password history length." +msgstr "Introdueix un valor numèric per la longitud d'historial de contrasenyes." + +#: ../lib/modules/sudoRole.inc:237 +msgid "Please enter a role name." +msgstr "Escriu un nom de rol." + +#: ../lib/modules/ppolicy.inc:73 +msgid "Please enter a unique name for this password policy." +msgstr "Introdueix un nom únic per aquesta política de contrasenyes." + +#: ../lib/modules/kolabUser.inc:270 +#: ../lib/modules/kolabUser.inc:274 +msgid "Please enter a user password." +msgstr "Escriu una contrasenya d'usuari." + +#: ../lib/modules/eduPerson.inc:218 +#: ../lib/modules/eduPerson.inc:220 +msgid "Please enter a valid DN in the field:" +msgstr "Escriu un DN vàlid en el camp:" + +#: ../lib/modules/inetOrgPerson.inc:75 +#: ../lib/modules/inetOrgPerson.inc:76 +msgid "Please enter a valid business category!" +msgstr "Escriu una categoria de negoci vàlida" + +#: ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:96 +#: ../lib/modules/inetOrgPerson.inc:68 +#: ../lib/modules/inetOrgPerson.inc:69 +msgid "Please enter a valid common name!" +msgstr "Si us plau, entri un nom vàlid!" + +#: ../lib/modules/sambaSamAccount.inc:101 +msgid "Please enter a valid date in format DD-MM-YYYY." +msgstr "Si us plau, entri una data vàlida en el format DD-MM-YYYY." + +#: ../lib/modules/sambaSamAccount.inc:95 +#: ../lib/modules/sambaSamAccount.inc:96 +msgid "Please enter a valid display name!" +msgstr "Si us plau, entri un nom a visualitzar vàlid!" + +#: ../lib/modules/sambaSamAccount.inc:102 +msgid "Please enter a valid drive letter." +msgstr "Si us plau, entri una lletra vàlida per la unitat de disc." + +#: ../lib/modules/inetOrgPerson.inc:56 +#: ../lib/modules/inetOrgPerson.inc:57 +msgid "Please enter a valid email address!" +msgstr "Introdueix una adreça vàlida de correu electrònic" + +#: ../lib/modules/inetOrgPerson.inc:66 +#: ../lib/modules/inetOrgPerson.inc:67 +msgid "Please enter a valid employee type!" +msgstr "Si us plau, entri un càrreg vàlid!" + +#: ../lib/modules/inetOrgPerson.inc:54 +#: ../lib/modules/inetOrgPerson.inc:55 +msgid "Please enter a valid fax number!" +msgstr "Si us plau, entri un numero de fax vàlid!" + +#: ../lib/lists.inc:221 +msgid "Please enter a valid filter. Only letters, numbers and \" _*$.-\" are allowed." +msgstr "Introdueix un filtre vàlid. Només lletres, nombres i \" _*$.-\"." + +#: ../lib/modules/sambaSamAccount.inc:106 +msgid "Please enter a valid group name!" +msgstr "Si us plau, entri un nom de grup vàlid!" + +#: ../lib/modules/inetOrgPerson.inc:64 +#: ../lib/modules/inetOrgPerson.inc:65 +msgid "Please enter a valid job title!" +msgstr "Si us plau, entri una descripcció vàlida per la profesió!" + +#: ../lib/modules/eduPerson.inc:226 +msgid "Please enter a valid list of affiliations." +msgstr "Escriu una llista vàlida d'associacions." + +#: ../lib/modules/hostObject.inc:107 +msgid "Please enter a valid list of host names." +msgstr "Introdueix una llista vàlida de noms de màquina." + +#: ../lib/modules/inetOrgPerson.inc:52 +#: ../lib/modules/inetOrgPerson.inc:53 +msgid "Please enter a valid mobile number!" +msgstr "Si us plau, entri un numero vàlid de telèfon mobil!" + +#: ../lib/modules/inetOrgPerson.inc:60 +#: ../lib/modules/inetOrgPerson.inc:61 +msgid "Please enter a valid postal address!" +msgstr "Si us plau, entri una adreça de correu ordinari vàlida!" + +#: ../lib/modules/inetOrgPerson.inc:62 +#: ../lib/modules/inetOrgPerson.inc:63 +msgid "Please enter a valid postal code!" +msgstr "Si us plau, entri un codi postal vàlid!" + +#: ../lib/modules/eduPerson.inc:224 +msgid "Please enter a valid primary affiliation." +msgstr "Escriu una associació primària vàlida." + +#: ../lib/modules/eduPerson.inc:225 +msgid "Please enter a valid scoped affiliation." +msgstr "Escriu una associació d'àmbit vàlida." + +#: ../lib/modules/inetOrgPerson.inc:58 +#: ../lib/modules/inetOrgPerson.inc:59 +msgid "Please enter a valid street name!" +msgstr "Si us plau, introdueixi un nom de carrer vàlid!" + +#: ../lib/modules/inetOrgPerson.inc:48 +#: ../lib/modules/inetOrgPerson.inc:49 +#: ../lib/modules/inetOrgPerson.inc:50 +#: ../lib/modules/inetOrgPerson.inc:51 +msgid "Please enter a valid telephone number!" +msgstr "Si us plau, entri un numero de telèfon vàlid!" + +#: ../lib/modules/posixGroup.inc:572 +#: ../lib/modules/posixAccount.inc:742 +#, php-format +msgid "Please enter a value between %s and %s!" +msgstr "Si us plau, entri un valor entre %s i %s!" + +#: ../lib/modules/kolabUser.inc:278 +#, php-format +msgid "Please enter an email address on this page: %s" +msgstr "Si us plau, entri una adreça de correu electrònic en aquesta pàgina: %s" + +#: ../lib/modules/sudoRole.inc:243 +#: ../lib/modules/sudoRole.inc:244 +msgid "Please enter only ASCII characters for the commands." +msgstr "Introdueix només caràcters ASCII per les comandes." + +#: ../lib/modules/sudoRole.inc:241 +#: ../lib/modules/sudoRole.inc:242 +msgid "Please enter only ASCII characters for the host names." +msgstr "Introdueix només caràcters ASCII per els noms de màquina." + +#: ../lib/modules/sudoRole.inc:249 +#: ../lib/modules/sudoRole.inc:250 +msgid "Please enter only ASCII characters for the options." +msgstr "Introdueix només caràcters ASCII per les opcions." + +#: ../lib/modules/sudoRole.inc:247 +#: ../lib/modules/sudoRole.inc:248 +msgid "Please enter only ASCII characters for the run groups." +msgstr "Introdueix només caràcters ASCII per els grups d'execució." + +#: ../lib/modules/sudoRole.inc:245 +#: ../lib/modules/sudoRole.inc:246 +msgid "Please enter only ASCII characters for the run users." +msgstr "Introdueix només caràcters ASCII pels usuaris d'execució." + +#: ../lib/modules/sudoRole.inc:239 +#: ../lib/modules/sudoRole.inc:240 +msgid "Please enter only ASCII characters for the user names." +msgstr "Introdueix només caràcters ASCII pels noms d'usuaris." + +#: ../lib/modules/ddns.inc:97 +msgid "Please enter the IP address of your DNS server." +msgstr "Escriu l'adreça IP del servidor DNS." + +#: ../help/help.inc:118 +msgid "Please enter the LDAP suffix where LAM should start to search for users. The LDAP filter needs to match the given user name to exactly one DN. The value \"%USER%\" will be replaced by the user name from the login page." +msgstr "Escriu el sufixe LDAP a partir d'on LAM ha de començar a cercar els usuaris. El filtre LDAP per l'usuari donat ha de coincidir només amb un DN. EL valor \"%USER%\" serà substituït per el nom d'usuari de la pàgina d'inici de sessió." + +#: ../lib/modules/asteriskVoicemail.inc:209 +msgid "Please enter the account context." +msgstr "Introdueix el context del compte." + +#: ../lib/modules.inc:1201 +msgid "Please enter the account information on the other pages first." +msgstr "Sius plau, primer entra la informació del compte de les altres pàgines." + +#: ../lib/modules/asteriskExtension.inc:202 +msgid "Please enter the application data." +msgstr "Introdueix un les dades de l'aplicació." + +#: ../lib/modules/asteriskExtension.inc:201 +msgid "Please enter the application." +msgstr "Introdueix l'aplicació." + +#: ../help/help.inc:56 +msgid "Please enter the configuration password. This is NOT your LDAP password. It is stored in your .conf-file. If this is the first time you log in, enter \"lam\"." +msgstr "Si us plau, introdueixi la contrasenya de configuració. No pas la contrasenya del seu compte en LDAP, si no la contrasenya que s'especifica en l'arxiu .conf. Si és la primera vegada que entra, escrigui \"lam\"." + +#: ../lib/modules/asteriskAccount.inc:172 +#: ../lib/modules/asteriskExtension.inc:203 +msgid "Please enter the extension context." +msgstr "Introdueix el context de l'extensió." + +#: ../lib/modules/asteriskExtension.inc:204 +msgid "Please enter the extension name." +msgstr "Introdueix el nom de l'extensió." + +#: ../lib/modules/asteriskAccount.inc:175 +msgid "Please enter the host name." +msgstr "Introdueix el nom de host." + +#: ../lib/modules/customScripts.inc:53 +msgid "Please enter the list of scripts which should be run. Each line has the following format: [account type] [action] [script and arguments]" +msgstr "Escriu la llista d'scripts que s'han d'executar. Cada línia ha de tenir el format: [tipus de compte][acció][script i arguments]" + +#: ../lib/modules/customScripts.inc:66 +msgid "Please enter the list of scripts which should be run. Each line has the following format: [action] [script and arguments]" +msgstr "Escriu la llista d'scripts que s'han d'executar. Cada línia ha de tenir el format: [acció][script i arguments]" + +#: ../lib/modules/nisObject.inc:59 +msgid "Please enter the mapping entry (e.g. \"-fstype=nfs,rw server:/projects\")." +msgstr "Introdueix l'entrada de mapping (e.x. \"-fstype=nfs,rw server:/projectes\")." + +#: ../lib/modules/nisObject.inc:63 +msgid "Please enter the mapping name for this entry (e.g. auto.home)." +msgstr "Introdueix el nom de mapping (e.x. auto.home)." + +#: ../help/help.inc:134 +msgid "Please enter the master configuration password. This is NOT your LDAP password. It is stored in your config.cfg file. If this is the first time you log in, enter \"lam\"." +msgstr "Si us plau, introdueixi la contrasenya metresde configuració. No pas la contrasenya del seu compte en LDAP, si no la contrasenya que s'especifica en l'arxiu .conf. Si és la primera vegada que entra, escrigui \"lam\"." + +#: ../templates/config/mainlogin.php:115 +msgid "Please enter the master password to change the general preferences:" +msgstr "Introdueix la contrasenya mestre per canviar les preferències generals:" + +#: ../help/help.inc:122 +msgid "Please enter the name of the new profile and the password to change its settings. Profile names may contain letters, numbers and -/_." +msgstr "Si us plau, entri el nom del nou perfil i la contrasenya per canviar la configuració. Els noms de perfil poden contenir lletres, numeros i -/_." + +#: ../help/help.inc:124 +msgid "Please enter the new name of the profile. The name may contain letters, numbers and -/_." +msgstr "Si us plau, entri el nou nom del perfil. El nom pot contenir lletres, " + +#: ../lib/modules/asteriskAccount.inc:92 +#: ../lib/modules/posixAccount.inc:383 +msgid "Please enter the password which you want to set for this account." +msgstr "Si us plau, entreu la contrasenya que vol establir per aquest compte." + +#: ../help/help.inc:165 +msgid "Please enter the password which you want to set for this account. You may also generate a random password (12 characters) which will be displayed on your screen." +msgstr "Introdueix la contrasenya que vulguis per aquest compte. Si vols pots generar-ne una qualsevol (amb 12 caràcters) i serà mostrada per pantalla." + +#: ../lib/modules/posixAccount.inc:354 +msgid "Please enter the path to the user's home directory." +msgstr "Si us plau, entra el directori home del usuari." + +#: ../lib/modules/asteriskExtension.inc:205 +msgid "Please enter the priority." +msgstr "Introdueix la prioritat." + +#: ../lib/modules/quota.inc:146 +msgid "Please enter the quota settings for this mount point. The syntax is: {soft block limit},{hard block limit},{soft inode limit},{hard inode limit}" +msgstr "Entra els paràmetres de quota per aquest punt de muntatge. La sintaxi és: {soft block limit},{hard block limit},{soft inode limit},{hard inode limit}" + +#: ../templates/lists/changePassword.php:256 +#: ../lib/modules/posixAccount.inc:75 +msgid "Please enter the same password in both password fields." +msgstr "Si us plau, entreu la mateixa contrasenya en ambdós camps." + +#: ../lib/modules/sambaSamAccount.inc:346 +msgid "Please enter the time limit in minutes. 0 means unlimited." +msgstr "Límit de temps en minuts. 0 vol dir il·limitat." + +#: ../templates/selfService/adminLogin.php:107 +msgid "Please enter your master configuration password to change the self service profile:" +msgstr "Escriu la contrasenya mestre per canviar el perfil d'auto servei:" + +#: ../templates/config/conflogin.php:100 +msgid "Please enter your password to change the server preferences:" +msgstr "Introdueix la contrasenya per canviar les preferències del servidor:" + +#: ../lib/modules/ldapPublicKey.inc:63 +msgid "Please enter your public SSH key." +msgstr "Introdueix la teua clau pública d'SSH." + +#: ../lib/modules/range.inc:382 +#: ../lib/modules/fixed_ip.inc:320 +msgid "Please fill out the DHCP settings first." +msgstr "Primer has d'omplir els paràmetres de configuració del DHCP." + +#: ../templates/masscreate.php:213 +msgid "Please provide a CSV formated file with your account data. The cells in the first row must be filled with the column identifiers. The following rows represent one account for each row." +msgstr "Proveiu un arxiu CVS amb les dades dels comptes. Les cel·les de la primera filera han de ser els identificadors de columna. Les fileres seguents representen un compte per cada filera." + +#: ../templates/massBuildAccounts.php:211 +msgid "Please provide a file to upload." +msgstr "Introdueix un fitxer a pujar." + +#: ../lib/modules/inetOrgPerson.inc:556 +msgid "Please select an image file to upload. It must be in JPG format (.jpg/.jpeg)." +msgstr "Tria una imatge per pujar. Ha d'estar en format JPG (.jpg/.jpeg)." + +#: ../help/help.inc:140 +msgid "Please select your prefered log level. Messages with a lower level will not be logged." +msgstr "Defineix el nivell de registre per defecte. Els missatges amb un nivell més baix no seran enregistrats." + +#: ../templates/login.php:235 +msgid "Please select your user name and enter your password to log in." +msgstr "Selecciona el teu nom d'usuari i posa la contrasenya per entrar." + +#: ../lib/modules/asteriskVoicemail.inc:220 +msgid "Please set the voicemail password with \"Set password\" before saving." +msgstr "Introdueix la contrasenya de veu i correu mitjançant \"Estableix contrasenya\" abans de guardar." + +#: ../lib/modules.inc:1156 +#, php-format +msgid "Please set up all required attributes on page: %s" +msgstr "Si us plau, sel·leccioneu tots els atributs que són obligatoris en la pàgina: %s" + +#: ../templates/config/profmanage.php:154 +#: ../templates/selfService/profManage.php:125 +msgid "Please set up your master configuration file (config/config.cfg) first!" +msgstr "Si us plau, primer configuri l'arxiu mestre de configuració (config/config.cfg)." + +#: ../lib/modules/dhcp_settings.inc:535 +#: ../lib/modules/ddns.inc:331 +msgid "Please set your LDAP suffix to an LDAP entry with object class \"dhcpServer\"." +msgstr "Has de configurar el teu sufixe d'LDAP amb una entrada amb classe d'objecte \"dhcpServer\"." + +#: ../lib/modules/kolabUser.inc:242 +msgid "Policy list has invalid format!" +msgstr "La llista de polítiques té un format invàlid!" + +#: ../templates/pdfedit/pdfpage.php:573 +#: ../templates/pdfedit/pdfpage.php:590 +#: ../templates/pdfedit/pdfpage.php:618 +#: ../templates/pdfedit/pdfpage.php:656 +msgid "Position" +msgstr "Posició" + +#: ../templates/masscreate.php:261 +#: ../templates/masscreate.php:405 +#: ../lib/modules/customScripts.inc:112 +#: ../lib/modules/customScripts.inc:114 +#: ../lib/modules/customScripts.inc:116 +#: ../lib/modules/sambaGroupMapping.inc:440 +msgid "Possible values" +msgstr "Valors possibles" + +#: ../lib/modules/inetOrgPerson.inc:119 +#: ../lib/modules/inetOrgPerson.inc:187 +#: ../lib/modules/inetOrgPerson.inc:322 +#: ../lib/modules/inetOrgPerson.inc:427 +#: ../lib/modules/inetOrgPerson.inc:519 +#: ../lib/modules/inetOrgPerson.inc:520 +#: ../lib/modules/inetOrgPerson.inc:874 +#: ../lib/modules/inetOrgPerson.inc:1129 +#: ../lib/modules/inetOrgPerson.inc:1555 +msgid "Post office box" +msgstr "Correus" + +#: ../lib/modules/inetOrgPerson.inc:60 +#: ../lib/modules/inetOrgPerson.inc:118 +#: ../lib/modules/inetOrgPerson.inc:195 +#: ../lib/modules/inetOrgPerson.inc:314 +#: ../lib/modules/inetOrgPerson.inc:439 +#: ../lib/modules/inetOrgPerson.inc:527 +#: ../lib/modules/inetOrgPerson.inc:910 +#: ../lib/modules/inetOrgPerson.inc:1131 +#: ../lib/modules/inetOrgPerson.inc:1539 +msgid "Postal address" +msgstr "Adreça postal" + +#: ../lib/modules/inetOrgPerson.inc:528 +msgid "Postal address, city" +msgstr "Adreça postal, ciutat" + +#: ../lib/modules/inetOrgPerson.inc:62 +#: ../lib/modules/inetOrgPerson.inc:119 +#: ../lib/modules/inetOrgPerson.inc:189 +#: ../lib/modules/inetOrgPerson.inc:306 +#: ../lib/modules/inetOrgPerson.inc:430 +#: ../lib/modules/inetOrgPerson.inc:523 +#: ../lib/modules/inetOrgPerson.inc:524 +#: ../lib/modules/inetOrgPerson.inc:883 +#: ../lib/modules/inetOrgPerson.inc:1130 +#: ../lib/modules/inetOrgPerson.inc:1547 +msgid "Postal code" +msgstr "Codi postal" + +#: ../help/help.inc:86 +msgid "Predefined values" +msgstr "Valors predefinits" + +#: ../lib/modules/inetOrgPerson.inc:268 +msgid "President" +msgstr "President" + +#: ../lib/modules/eduPerson.inc:78 +#: ../lib/modules/eduPerson.inc:148 +#: ../lib/modules/eduPerson.inc:203 +#: ../lib/modules/eduPerson.inc:253 +#: ../lib/modules/eduPerson.inc:674 +msgid "Primary affiliation" +msgstr "Associació primària" + +#: ../lib/modules/posixGroup.inc:479 +#: ../lib/modules/posixAccount.inc:222 +#: ../lib/modules/posixAccount.inc:296 +#: ../lib/modules/posixAccount.inc:315 +#: ../lib/modules/posixAccount.inc:345 +#: ../lib/modules/posixAccount.inc:374 +#: ../lib/modules/posixAccount.inc:412 +#: ../lib/modules/posixAccount.inc:960 +#: ../lib/modules/posixAccount.inc:1090 +#: ../lib/modules/posixAccount.inc:1130 +#: ../lib/modules/posixAccount.inc:1180 +msgid "Primary group" +msgstr "Grup primari" + +#: ../lib/modules/eduPerson.inc:115 +#: ../lib/modules/eduPerson.inc:186 +#: ../lib/modules/eduPerson.inc:206 +#: ../lib/modules/eduPerson.inc:220 +#: ../lib/modules/eduPerson.inc:367 +#: ../lib/modules/eduPerson.inc:698 +msgid "Primary organizational unit" +msgstr "Unitat Organitzativa primària" + +#: ../lib/modules/eduPerson.inc:99 +#: ../lib/modules/eduPerson.inc:141 +#: ../lib/modules/eduPerson.inc:204 +#: ../lib/modules/eduPerson.inc:243 +#: ../lib/modules/eduPerson.inc:680 +msgid "Principal name" +msgstr "Nom principal" + +#: ../lib/modules/eduPerson.inc:216 +#: ../lib/modules/eduPerson.inc:217 +msgid "Principal name is invalid!" +msgstr "El nom principal és invàlid!" + +#: ../lib/types/asteriskExt.inc:93 +#: ../lib/modules/asteriskExtension.inc:90 +#: ../lib/modules/asteriskExtension.inc:117 +#: ../lib/modules/asteriskExtension.inc:135 +#: ../lib/modules/asteriskExtension.inc:151 +#: ../lib/modules/asteriskExtension.inc:231 +#: ../lib/modules/asteriskExtension.inc:472 +msgid "Priority" +msgstr "Prioritat" + +#: ../lib/modules/inetOrgPerson.inc:560 +msgid "Private telephone number" +msgstr "Numero de telèfon privat" + +#: ../templates/config/profmanage.php:116 +#: ../templates/selfService/profManage.php:108 +msgid "Profile deleted." +msgstr "Perfil esborrat." + +#: ../templates/profedit/profilemain.php:105 +#: ../lib/tools/profileEditor.inc:44 +msgid "Profile editor" +msgstr "Editor de perfils" + +#: ../templates/config/profmanage.php:52 +#: ../templates/config/profmanage.php:167 +#: ../templates/selfService/profManage.php:38 +#: ../templates/selfService/profManage.php:138 +#: ../help/help.inc:121 +#: ../help/help.inc:123 +#: ../help/help.inc:125 +#: ../help/help.inc:127 +#: ../help/help.inc:129 +msgid "Profile management" +msgstr "Administrador de perfils" + +#: ../templates/config/profmanage.php:182 +#: ../templates/config/profmanage.php:231 +#: ../templates/selfService/profManage.php:153 +#: ../templates/selfService/profManage.php:206 +#: ../templates/profedit/profilepage.php:245 +#: ../help/help.inc:154 +msgid "Profile name" +msgstr "Nom del perfil" + +#: ../templates/config/profmanage.php:100 +#: ../templates/config/profmanage.php:111 +#: ../templates/selfService/profManage.php:84 +#: ../templates/selfService/profManage.php:99 +msgid "Profile name is invalid!" +msgstr "El nom del perfil és invàlid!" + +#: ../templates/config/profmanage.php:195 +#: ../templates/config/profmanage.php:289 +msgid "Profile password" +msgstr "Contrasenya del perfil" + +#: ../templates/config/profmanage.php:98 +#: ../templates/config/profmanage.php:129 +msgid "Profile passwords are different or empty!" +msgstr "Les contrasenyes dels perfils són invàlids ó en blanc!" + +#: ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaSamAccount.inc:85 +#: ../lib/modules/sambaSamAccount.inc:200 +#: ../lib/modules/sambaSamAccount.inc:212 +#: ../lib/modules/sambaSamAccount.inc:284 +#: ../lib/modules/sambaSamAccount.inc:333 +#: ../lib/modules/sambaSamAccount.inc:475 +#: ../lib/modules/sambaSamAccount.inc:580 +#: ../lib/modules/sambaSamAccount.inc:1173 +#: ../lib/modules/sambaSamAccount.inc:1446 +#: ../lib/modules/sambaSamAccount.inc:1596 +#: ../lib/modules/sambaSamAccount.inc:1775 +#: ../lib/modules/sambaSamAccount.inc:1797 +msgid "Profile path" +msgstr "Camí als perfils" + +#: ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaSamAccount.inc:86 +msgid "Profile path is invalid!" +msgstr "El camí als perfils és invàlid!" + +#: ../templates/profedit/profilemain.php:108 +msgid "Profile was saved." +msgstr "S'ha gravat el perfil." + +#: ../lib/modules/quota.inc:79 +#: ../lib/modules/quota.inc:92 +#: ../lib/modules/quota.inc:145 +msgid "Quota" +msgstr "Quota" + +#: ../lib/modules/quota.inc:655 +#, php-format +msgid "Quota for %s on %s" +msgstr "Quota per %s a %s" + +#: ../lib/modules/quota.inc:62 +msgid "Quota has wrong format!" +msgstr "La quota té un format incorrecte" + +#: ../templates/tree/templates/creation/custom.php:62 +msgid "RDN" +msgstr "RDN" + +#: ../templates/masscreate.php:254 +#: ../templates/profedit/profilepage.php:199 +#: ../lib/modules.inc:1568 +#: ../help/help.inc:152 +msgid "RDN identifier" +msgstr "Identificador RDN" + +#: ../lib/types/host.inc:93 +msgid "RID (Windows UID)" +msgstr "RID (UID de Windows)" + +#: ../lib/modules/sambaDomain.inc:90 +#: ../lib/modules/sambaDomain.inc:151 +#: ../lib/modules/sambaDomain.inc:182 +#: ../lib/modules/sambaDomain.inc:389 +#: ../lib/modules/sambaDomain.inc:395 +#: ../lib/modules/sambaDomain.inc:663 +msgid "RID base" +msgstr "RID base" + +#: ../lib/modules/range.inc:78 +#: ../lib/modules/range.inc:407 +msgid "Range from" +msgstr "Rang de" + +#: ../lib/modules/range.inc:81 +#: ../lib/modules/range.inc:421 +msgid "Range to" +msgstr "Rang a" + +#: ../lib/modules/range.inc:60 +#: ../lib/modules/range.inc:92 +#: ../lib/modules/range.inc:474 +msgid "Ranges" +msgstr "Rangs" + +#: ../templates/config/confmain.php:434 +msgid "Read" +msgstr "Llegir" + +#: ../templates/config/confmain.php:332 +#: ../templates/config/confmain.php:335 +msgid "Read only" +msgstr "Només lectura" + +#: ../templates/tree/templates/creation/new_ou_template.php:99 +msgid "Really create this new OU?" +msgstr "Segur que vol crear aquesta OU?" + +#: ../templates/tree/edit.php:527 +msgid "Really delete attribute?" +msgstr "Segur que vols que esborri l'atribut?" + +#: ../lib/modules/nisMailAlias.inc:71 +#: ../lib/modules/nisMailAlias.inc:147 +msgid "Recipient" +msgstr "Receptor" + +#: ../lib/modules/nisMailAlias.inc:108 +#: ../lib/modules/nisMailAlias.inc:109 +msgid "Recipient is invalid!" +msgstr "El destí és incorrecte" + +#: ../lib/types/mailAlias.inc:92 +#: ../lib/modules/nisMailAlias.inc:75 +#: ../lib/modules/nisMailAlias.inc:89 +#: ../lib/modules/nisMailAlias.inc:97 +#: ../lib/modules/nisMailAlias.inc:282 +msgid "Recipient list" +msgstr "Llista de destinataris" + +#: ../lib/modules/sambaSamAccount.inc:224 +#: ../lib/modules/sambaSamAccount.inc:363 +#: ../lib/modules/sambaSamAccount.inc:1521 +#: ../lib/modules/sambaSamAccount.inc:1849 +msgid "Reconnect if disconnected" +msgstr "Torna a connectar si es desconnecta" + +#: ../templates/tree/rdelete.php:75 +msgid "Recursive delete progress" +msgstr "Progrés de l'esborrat recursiu" + +#: ../templates/config/mainmanage.php:362 +msgid "Reenter new master password" +msgstr "Torni a entrar la contrasenya mestre" + +#: ../templates/config/confmain.php:525 +#: ../lib/modules/posixAccount.inc:1710 +msgid "Reenter password" +msgstr "Torna a entrar la contrasenya" + +#: ../templates/config/profmanage.php:204 +#: ../templates/config/profmanage.php:302 +msgid "Reenter profile password" +msgstr "Torni a entrar la contrasenya de perfils" + +#: ../templates/tree/edit.php:98 +#: ../lib/tree.inc:88 +#: ../lib/tree.inc:89 +#: ../lib/modules/asteriskExtension.inc:303 +#: ../lib/lists.inc:273 +msgid "Refresh" +msgstr "Refrescar" + +#: ../lib/modules/kolabUser.inc:53 +msgid "Reject if conflicts" +msgstr "Refusa si entra en conficte" + +#: ../templates/tree/templates/creation/custom.php:62 +msgid "Relative distinguished name" +msgstr "Nom relatiu distinguit" + +#: ../templates/config/confmodules.php:278 +#: ../templates/pdfedit/pdfpage.php:439 +#: ../lib/modules/ipHost.inc:127 +#: ../lib/modules/ieee802device.inc:104 +#: ../lib/modules/sambaSamAccount.inc:1403 +#: ../lib/modules/kolabUser.inc:338 +#: ../lib/modules/kolabUser.inc:357 +#: ../lib/modules/kolabUser.inc:383 +#: ../lib/modules/kolabUser.inc:901 +#: ../lib/modules/phpGroupwareUser.inc:260 +#: ../lib/modules/shadowAccount.inc:401 +#: ../lib/modules/ldapPublicKey.inc:101 +#: ../lib/modules/sudoRole.inc:287 +#: ../lib/modules/sudoRole.inc:314 +#: ../lib/modules/sudoRole.inc:341 +#: ../lib/modules/sudoRole.inc:368 +#: ../lib/modules/sudoRole.inc:395 +#: ../lib/modules/sudoRole.inc:422 +#: ../lib/modules/inetLocalMailRecipient.inc:162 +#: ../lib/modules/groupOfNames.inc:161 +#: ../lib/modules/nisMailAlias.inc:149 +#: ../lib/modules/hostObject.inc:145 +msgid "Remove" +msgstr "Eliminar" + +#: ../lib/modules/asteriskVoicemail.inc:266 +msgid "Remove Asterisk voicemail extension" +msgstr "Eliminar l'extensió de veu i correu d'Asterisk" + +#: ../lib/modules/eduPerson.inc:402 +msgid "Remove EDU person extension" +msgstr "Elimina l'extensió EDU person" + +#: ../lib/modules/ipHost.inc:180 +msgid "Remove IP address extension" +msgstr "Eliminar l'extensió d'adreça IP" + +#: ../lib/modules/sambaSamAccount.inc:1263 +msgid "Remove Samba 3 extension" +msgstr "Eliminar l'extensió de Samba 3" + +#: ../lib/modules/shadowAccount.inc:343 +msgid "Remove Shadow account extension" +msgstr "Elimina l'extensió de compte Shadow" + +#: ../lib/modules/hostObject.inc:160 +msgid "Remove host extension" +msgstr "Eliminar l'extensió de màquina" + +#: ../lib/modules/posixGroup.inc:199 +#: ../lib/modules/posixAccount.inc:1008 +msgid "Remove password" +msgstr "Eliminar contrasenya" + +#: ../lib/modules/phpGroupwareGroup.inc:101 +#: ../lib/modules/phpGroupwareUser.inc:191 +msgid "Remove phpGroupWare extension" +msgstr "Eliminar l'extensió phpGroupWare" + +#: ../lib/modules/groupOfNames.inc:326 +msgid "Remove selected entries" +msgstr "Eliminar entrades seleccionades" + +#: ../templates/config/conftypes.php:238 +msgid "Remove this account type" +msgstr "Elimina aquest tipus de compte" + +#: ../lib/modules/inetOrgPerson.inc:1623 +msgid "Remove/replace photo" +msgstr "Eliminar/substituir foto" + +#: ../templates/config/profmanage.php:227 +#: ../templates/selfService/profManage.php:202 +#: ../help/help.inc:123 +msgid "Rename profile" +msgstr "Renombrar perfil" + +#: ../templates/config/profmanage.php:107 +#: ../templates/selfService/profManage.php:95 +msgid "Renamed profile." +msgstr "Perfil renombrat." + +#: ../templates/lists/changePassword.php:202 +#: ../lib/modules.inc:1311 +msgid "Repeat password" +msgstr "Repeteixi contrasenya" + +#: ../lib/modules/posixAccount.inc:67 +#: ../lib/modules/posixAccount.inc:765 +msgid "Replaced $user or $group in homedir." +msgstr "S'ha reemplaçat $usuari o $grup en homedir." + +#: ../lib/types/ppolicyType.inc:89 +#: ../lib/modules/ppolicy.inc:120 +#: ../lib/modules/ppolicy.inc:146 +#: ../lib/modules/ppolicy.inc:292 +#: ../lib/modules/ppolicy.inc:512 +msgid "Require password change on first login" +msgstr "Demana canvi de contrasenya al primer inici de sessió" + +#: ../templates/tree/edit.php:246 +#, php-format +msgid "Required attribute for objectClass(es) %s" +msgstr "Atribut requerit per l'objectClass %s" + +#: ../templates/tree/templates/creation/custom.php:187 +#: ../templates/schema/schema.php:381 +msgid "Required attributes" +msgstr "Atributs requerits" + +#: ../templates/profedit/profilepage.php:257 +#: ../lib/modules/sambaSamAccount.inc:1255 +msgid "Reset" +msgstr "Reset" + +#: ../lib/modules.inc:1387 +msgid "Reset changes" +msgstr "Canvis resetejats" + +#: ../lib/modules/sambaSamAccount.inc:240 +#: ../lib/modules/sambaSamAccount.inc:1254 +msgid "Reset password" +msgstr "Resetejar contrasnya" + +#: ../lib/modules/sambaDomain.inc:130 +#: ../lib/modules/sambaDomain.inc:192 +#: ../lib/modules/sambaDomain.inc:217 +#: ../lib/modules/sambaDomain.inc:359 +#: ../lib/modules/sambaDomain.inc:699 +msgid "Reset time after lockout" +msgstr "Temps després de bloqueig fins a restablir l'accés" + +#: ../lib/modules/sambaDomain.inc:217 +msgid "Reset time after lockout must be are natural number." +msgstr "El temps de re-establiment després d'un bloqueig ha de ser un número natural." + +#: ../lib/modules/ddns.inc:102 +#: ../lib/modules/ddns.inc:109 +#: ../lib/modules/ddns.inc:130 +#: ../lib/modules/ddns.inc:384 +#: ../lib/modules/ddns.inc:413 +msgid "Reverse zone names" +msgstr "Noms de zona inversa" + +#: ../templates/config/confmain.php:411 +#: ../help/help.inc:113 +msgid "Rights for the home directory" +msgstr "Permisos per el directori home" + +#: ../lib/types/sudo.inc:77 +#: ../lib/modules/sudoRole.inc:55 +#: ../lib/modules/sudoRole.inc:121 +#: ../lib/modules/sudoRole.inc:171 +#: ../lib/modules/sudoRole.inc:264 +#: ../lib/modules/sudoRole.inc:703 +msgid "Role name" +msgstr "Nom del perfilNom de rol" + +#: ../lib/modules/inetOrgPerson.inc:120 +#: ../lib/modules/inetOrgPerson.inc:199 +#: ../lib/modules/inetOrgPerson.inc:370 +#: ../lib/modules/inetOrgPerson.inc:445 +#: ../lib/modules/inetOrgPerson.inc:563 +#: ../lib/modules/inetOrgPerson.inc:928 +#: ../lib/modules/inetOrgPerson.inc:1138 +#: ../lib/modules/inetOrgPerson.inc:1563 +msgid "Room number" +msgstr "Nombre d'habitació" + +#: ../lib/modules/inetLocalMailRecipient.inc:61 +#: ../lib/modules/inetLocalMailRecipient.inc:96 +#: ../lib/modules/inetLocalMailRecipient.inc:115 +#: ../lib/modules/inetLocalMailRecipient.inc:145 +#: ../lib/modules/inetLocalMailRecipient.inc:316 +msgid "Routing address" +msgstr "Adreça d'enrutament" + +#: ../lib/types/sudo.inc:82 +msgid "Run group(s)" +msgstr "Grup(s) d'execució" + +#: ../lib/modules/sudoRole.inc:79 +#: ../lib/modules/sudoRole.inc:107 +#: ../lib/modules/sudoRole.inc:158 +#: ../lib/modules/sudoRole.inc:177 +#: ../lib/modules/sudoRole.inc:198 +#: ../lib/modules/sudoRole.inc:393 +#: ../lib/modules/sudoRole.inc:720 +msgid "Run groups" +msgstr "Grups d'execució" + +#: ../lib/types/sudo.inc:81 +msgid "Run user" +msgstr "Usuari d'execució" + +#: ../lib/modules/sudoRole.inc:75 +#: ../lib/modules/sudoRole.inc:102 +#: ../lib/modules/sudoRole.inc:152 +#: ../lib/modules/sudoRole.inc:176 +#: ../lib/modules/sudoRole.inc:194 +#: ../lib/modules/sudoRole.inc:366 +#: ../lib/modules/sudoRole.inc:717 +msgid "Run users" +msgstr "Usuaris d'execució" + +#: ../templates/serverInfo.php:112 +msgid "SASL mechanisms" +msgstr "Mecanismes SASL" + +#: ../templates/tests/lamdaemonTest.php:226 +msgid "SSH connection" +msgstr "Connexió SSH" + +#: ../templates/tests/lamdaemonTest.php:237 +msgid "SSH connection could be established." +msgstr "La connexió SSH s'ha pogut establir." + +#: ../lib/modules/ldapPublicKey.inc:52 +#: ../lib/modules/ldapPublicKey.inc:62 +#: ../lib/modules/ldapPublicKey.inc:66 +#: ../lib/modules/ldapPublicKey.inc:74 +#: ../lib/modules/ldapPublicKey.inc:99 +msgid "SSH public key" +msgstr "Clau pública d'SSH" + +#: ../lib/modules/ldapPublicKey.inc:81 +#: ../lib/modules/ldapPublicKey.inc:172 +msgid "SSH public key(s)" +msgstr "Claus públiques d'SSH" + +#: ../lib/modules/sambaSamAccount.inc:124 +#: ../lib/modules/sambaGroupMapping.inc:300 +msgid "Samba 3" +msgstr "Samba 3" + +#: ../lib/modules/sambaDomain.inc:203 +#: ../lib/modules/sambaDomain.inc:204 +msgid "Samba 3 domain SID is invalid!" +msgstr "El SID del domini de Samba3 és invàlid!" + +#: ../lib/types/smbDomain.inc:62 +msgid "Samba 3 domain entries" +msgstr "Dominis de Samba 3" + +#: ../lib/modules/sambaSamAccount.inc:305 +#: ../lib/modules/sambaSamAccount.inc:309 +#: ../lib/modules/sambaSamAccount.inc:450 +#: ../lib/modules/sambaSamAccount.inc:516 +msgid "Samba RID" +msgstr "RID de Samba" + +#: ../lib/modules/sambaGroupMapping.inc:338 +#: ../lib/modules/sambaGroupMapping.inc:363 +msgid "Samba RID number" +msgstr "Numero RID de Samba" + +#: ../lib/modules/sambaGroupMapping.inc:332 +msgid "Samba display name" +msgstr "Nom a visualitzar de Samba" + +#: ../lib/modules/sambaDomain.inc:51 +msgid "Samba domain" +msgstr "Domini de Samba" + +#: ../lib/modules/sambaGroupMapping.inc:324 +msgid "Samba domain name" +msgstr "Nom de domini de Samba" + +#: ../lib/types/smbDomain.inc:53 +msgid "Samba domains" +msgstr "Dominis de Samba" + +#: ../lib/modules/sambaGroupMapping.inc:312 +#: ../lib/modules/sambaGroupMapping.inc:344 +#: ../lib/modules/sambaGroupMapping.inc:371 +#: ../lib/modules/sambaGroupMapping.inc:389 +msgid "Samba group type" +msgstr "Tipo de grup de Samba" + +#: ../lib/modules/sambaSamAccount.inc:237 +msgid "Samba password" +msgstr "Contrasenya de Samba" + +#: ../lib/modules/sambaSamAccount.inc:90 +#: ../lib/modules/sambaSamAccount.inc:206 +#: ../lib/modules/sambaSamAccount.inc:290 +#: ../lib/modules/sambaSamAccount.inc:293 +#: ../lib/modules/sambaSamAccount.inc:491 +#: ../lib/modules/sambaSamAccount.inc:587 +#: ../lib/modules/sambaSamAccount.inc:1189 +#: ../lib/modules/sambaSamAccount.inc:1612 +#: ../lib/modules/sambaSamAccount.inc:1778 +msgid "Samba workstations" +msgstr "Estacions de treball de Samba" + +#: ../lib/modules/sambaSamAccount.inc:1320 +msgid "Saturday" +msgstr "Dissabte" + +#: ../templates/tree/edit.php:512 +#: ../templates/config/confmodules.php:174 +#: ../templates/config/confmain.php:207 +#: ../templates/config/moduleSettings.php:173 +#: ../templates/config/conftypes.php:192 +#: ../templates/selfService/selfServiceMain.php:119 +#: ../templates/selfService/adminMain.php:296 +#: ../templates/pdfedit/pdfpage.php:669 +#: ../templates/pdfedit/pdfpage.php:686 +#: ../templates/profedit/profilepage.php:255 +#: ../lib/modules.inc:1384 +msgid "Save" +msgstr "Gravar" + +#: ../templates/tree/export_form.php:124 +msgid "Save as file" +msgstr "Gravar arxiu com" + +#: ../lib/tools/schemaBrowser.inc:44 +msgid "Schema browser" +msgstr "Explorador d'esquemes" + +#: ../templates/serverInfo.php:104 +msgid "Schema suffix" +msgstr "Sufix de l'esquema" + +#: ../templates/tests/schemaTest.php:50 +#: ../templates/tests/index.php:53 +msgid "Schema test" +msgstr "Comprovació d'esquemes" + +#: ../lib/modules/eduPerson.inc:82 +#: ../lib/modules/eduPerson.inc:155 +#: ../lib/modules/eduPerson.inc:207 +#: ../lib/modules/eduPerson.inc:266 +#: ../lib/modules/eduPerson.inc:677 +msgid "Scoped affiliation" +msgstr "Associació d'àmbit" + +#: ../help/help.inc:96 +msgid "Script path" +msgstr "Camí al script" + +#: ../templates/config/confmain.php:589 +msgid "Script path is invalid!" +msgstr "El camí al script és invàlid!" + +#: ../templates/config/confmain.php:608 +msgid "Script rights are invalid!" +msgstr "Els permissos de l'script són incorrectes" + +#: ../templates/config/confmain.php:592 +msgid "Script server is invalid!" +msgstr "El servidor de scripts és invàlid!" + +#: ../help/help.inc:109 +msgid "Script servers" +msgstr "Servidors d'script" + +#: ../templates/tree/export_form.php:115 +#: ../lib/export.inc:443 +#: ../lib/export.inc:513 +msgid "Search filter" +msgstr "Filtre de reçerca" + +#: ../templates/tree/export_form.php:103 +#: ../lib/export.inc:442 +#: ../lib/export.inc:512 +msgid "Search scope" +msgstr "Abast de la reçerca" + +#: ../lib/modules/asteriskExtension.inc:298 +msgid "Search tree suffix for users" +msgstr "Sufixe de l'arbre per cerca d'usuaris" + +#: ../templates/pdfedit/pdfpage.php:565 +msgid "Section" +msgstr "Secció" + +#: ../templates/config/mainmanage.php:172 +#: ../templates/config/confmain.php:461 +msgid "Security settings" +msgstr "Configuració de seguretat" + +#: ../templates/help.php:91 +msgid "See also" +msgstr "Vegeu també" + +#: ../lib/account.inc:635 +msgid "See the manual for instructions to solve this problem." +msgstr "Llegeix el manual d'instruccions per tal de solucionar aquest problema." + +#: ../templates/tree/create_form.php:77 +msgid "Select a template for the creation process" +msgstr "Escull una plantilla pel procés de creació" + +#: ../lib/lists.inc:387 +msgid "Select all" +msgstr "Sel·leccionar tot" + +#: ../lib/modules/nisnetgroup.inc:224 +#: ../lib/modules/nisnetgroup.inc:246 +msgid "Select host" +msgstr "Tria la màquina" + +#: ../lib/modules/nisnetgroup.inc:226 +#: ../lib/modules/nisnetgroup.inc:248 +msgid "Select user" +msgstr "Seleccionar usuari" + +#: ../lib/modules/posixAccount.inc:1052 +#: ../lib/modules/nisnetgroup.inc:358 +msgid "Selected groups" +msgstr "Grups sel·leccionats" + +#: ../templates/masscreate.php:149 +#: ../templates/config/confmodules.php:254 +msgid "Selected modules" +msgstr "Mòduls sel·leccionats" + +#: ../lib/modules/posixGroup.inc:243 +#: ../lib/modules/asteriskExtension.inc:309 +msgid "Selected users" +msgstr "Usuaris sel·leccionats" + +#: ../templates/selfService/adminMain.php:253 +msgid "Self service configuration" +msgstr "Configuració de l'auto servei" + +#: ../templates/selfService/adminMain.php:275 +msgid "Self service configuration editor" +msgstr "Editor de la configuració de l'auto servei" + +#: ../templates/selfService/adminMain.php:322 +msgid "Self service login" +msgstr "Accés a l'autoservei" + +#: ../templates/lists/changePassword.php:179 +#: ../templates/lists/changePassword.php:211 +msgid "Send via mail" +msgstr "Enviar per correu electrònic" + +#: ../templates/tests/lamdaemonTest.php:72 +msgid "Server" +msgstr "Servidor" + +#: ../templates/config/confmain.php:229 +#: ../templates/selfService/adminMain.php:332 +#: ../help/help.inc:57 +msgid "Server address" +msgstr "Adreça del servidor" + +#: ../templates/config/confmain.php:559 +#: ../templates/selfService/adminMain.php:95 +msgid "Server address is invalid!" +msgstr "L'adreça del servidor és incorrecte" + +#: ../templates/serverInfo.php:89 +#: ../lib/tools/serverInfo.inc:44 +msgid "Server information" +msgstr "Informació del servidor" + +#: ../templates/config/confmain.php:398 +msgid "Server list" +msgstr "Llista de servidors" + +#: ../templates/login.php:334 +msgid "Server profile" +msgstr "Perfil del servidor" + +#: ../templates/config/confmain.php:226 +#: ../templates/selfService/adminMain.php:329 +msgid "Server settings" +msgstr "Configuració de servidor" + +#: ../templates/config/mainmanage.php:178 +#: ../help/help.inc:137 +msgid "Session timeout" +msgstr "Temps d'inactivitat de la sessió" + +#: ../lib/modules/aliasEntry.inc:102 +msgid "Set" +msgstr "Establir" + +#: ../lib/modules.inc:1278 +#: ../lib/modules.inc:1391 +msgid "Set password" +msgstr "Establir contrasenya" + +#: ../lib/modules/posixAccount.inc:188 +#: ../lib/modules/posixAccount.inc:325 +msgid "Set primary group as memberUid" +msgstr "Establir el grup primari com a memberUid" + +#: ../templates/config/profmanage.php:285 +#: ../help/help.inc:127 +msgid "Set profile password" +msgstr "Establir contrasenya del perfil" + +#: ../lib/modules.inc:1320 +msgid "Set random password" +msgstr "Generar contrasenya aleatòria" + +#: ../templates/lists/changePassword.php:189 +msgid "Set specific password" +msgstr "Establir contrasenya especifica" + +#: ../lib/modules/posixGroup.inc:396 +msgid "Sets the group password." +msgstr "Estableix la contrasenya del grup." + +#: ../lib/modules/shadowAccount.inc:84 +msgid "Shadow" +msgstr "Shadow" + +#: ../lib/modules/sambaSamAccount.inc:222 +#: ../lib/modules/sambaSamAccount.inc:357 +#: ../lib/modules/sambaSamAccount.inc:1503 +#: ../lib/modules/sambaSamAccount.inc:1833 +msgid "Shadowing" +msgstr "Shadowing" + +#: ../lib/modules/ddns.inc:84 +msgid "Should DDNS (Dynamic DNS) be activated?" +msgstr "S'ha d'activar el DDNS (Dynamic DNS)?" + +#: ../lib/modules/ddns.inc:87 +msgid "Should fix IP addresses be added to the DNS server?" +msgstr "S'han d'afegir les IP's fixes al servidor DNS?" + +#: ../templates/massBuildAccounts.php:202 +msgid "Show LDIF file" +msgstr "Mostrar arxiu LDIF" + +#: ../templates/tree/edit.php:104 +msgid "Show internal attributes" +msgstr "Mostrar atributs interns" + +#: ../lib/modules/asteriskExtension.inc:293 +msgid "Show only Asterisk accounts" +msgstr "Mostra només comptes Asterisk" + +#: ../lib/types/group.inc:256 +msgid "Show primary group members as normal group members" +msgstr "Mostrar membres primaris del grup com a membres normals" + +#: ../templates/schema/schema.php:192 +msgid "Single valued" +msgstr "D'un sol valor possible" + +#: ../lib/modules/quota.inc:591 +msgid "Soft block" +msgstr "Soft block" + +#: ../lib/modules/quota.inc:105 +#: ../lib/modules/quota.inc:383 +#: ../lib/modules/quota.inc:475 +msgid "Soft block limit" +msgstr "Limit de soft block" + +#: ../lib/modules/quota.inc:106 +msgid "Soft block limit." +msgstr "Limit de soft block." + +#: ../lib/modules/quota.inc:593 +msgid "Soft inode" +msgstr "Inode soft" + +#: ../lib/modules/quota.inc:128 +msgid "Soft inode (files) limit." +msgstr "Limit de inodes soft." + +#: ../lib/modules/quota.inc:127 +#: ../lib/modules/quota.inc:387 +#: ../lib/modules/quota.inc:477 +msgid "Soft inode limit" +msgstr "Limit de inodes soft." + +#: ../templates/tree/edit.php:138 +#, php-format +msgid "Some attributes (%s) were modified and are highlighted below." +msgstr "Alguns atributs (%s) s'han modificat, i més avall els tens resaltats." + +#: ../lib/modules.inc:1155 +msgid "Some required information is missing" +msgstr "Falta alguna informació que és requerida." + +#: ../templates/help.php:121 +#, php-format +msgid "Sorry this help id ({bold}%s{endbold}) is not available for this module ({bold}%s{endbold})." +msgstr "Perdoneu, pero aquesta ajuda ({bold}%s{endbold}) no està disponible per aquest mòdul ({bold}%s{endbold})." + +#: ../templates/help.php:135 +#, php-format +msgid "Sorry this help number ({bold}%d{endbold}) is not available." +msgstr "Perdoneu, pero aquest numero de ajuda ({bold}%d{endbold}) no està disponible." + +#: ../lib/modules/sambaSamAccount.inc:302 +#: ../lib/modules/sambaSamAccount.inc:1227 +msgid "Special user" +msgstr "Usuari especial" + +#: ../lib/modules/ppolicy.inc:125 +msgid "Specifies if users are allowed to change their own passwords or not." +msgstr "Especifica si els usuaris tenen permès canviar-se la contrasenya." + +#: ../lib/modules/ppolicy.inc:109 +msgid "Specifies the maximum number of seconds before a password is due to expire that expiration warning messages will be returned to a user." +msgstr "Especifica el nombre màxim de segons que s'enviarà un missatge d'alerta a l'usuari abans de que una contrasenya caduqui." + +#: ../lib/modules/ppolicy.inc:113 +msgid "Specifies the minimum number of characters that will be accepted in a password." +msgstr "Mínim nombre de caràcters per la contrasenya de l'usuari." + +#: ../lib/modules/ppolicy.inc:101 +msgid "Specifies the number of consecutive failed login attempts after which the password may not be used to login." +msgstr "Especifica el nombre d'intents d'inici de sessió fallats abans de que es deshabiliti la contrasenya." + +#: ../lib/modules/ppolicy.inc:85 +msgid "Specifies the number of previously used passwords which should be saved in the password history. New passwords can only be set if they are not in the password history." +msgstr "Especifica el nombre de contrasenyes anteriors que s'han de guardar a l'historial de contrasenyes. Les noves contrasenyes només es podran establir si no estan a l'historial." + +#: ../lib/modules/ppolicy.inc:105 +msgid "Specifies the number of seconds after which old consecutive failed login attempts are purged from the failure counter, even though no successful authentication has occurred." +msgstr "Especifica el nombre de segons que han de passar perquè es posi a 0 el comptador d'inicis de sessió fallats, encara que no s'hagi accedit satisfactòriament." + +#: ../lib/modules/ppolicy.inc:97 +msgid "Specifies the number of seconds during which the password cannot be used to login due to too many consecutive failed bind attempts." +msgstr "Especifica el nombre de segons durant els que la contrasenya no es pot fer servir degut a haver fet massa intents d'inici de sessió fallats." + +#: ../lib/modules/eduPerson.inc:83 +msgid "Specifies the person's affiliation within a particular security domain in broad categories such as student, faculty, staff, alum, etc." +msgstr "Especifica l'associació de la persona amb un domini particular de seguretat com per exemple estudiant, facultat, personal, alumne, etc." + +#: ../lib/modules/eduPerson.inc:79 +msgid "Specifies the person's primary relationship to the institution in broad categories such as student, faculty, staff, alum, etc." +msgstr "Especifica la relació directa de la persona a l'institució en categories com per exemple estudiant, facultat, personal, alumne, etc." + +#: ../lib/modules/eduPerson.inc:91 +#: ../lib/modules/eduPerson.inc:95 +msgid "Specifies the person's relationship(s) to the institution in broad categories such as student, faculty, staff, alum, etc." +msgstr "Especifica la relació o relacions de la persona a la institució en categories com estudiant, facultat, personal, alumne, etc." + +#: ../lib/modules/ppolicy.inc:129 +msgid "Specifies whether the user's existing password must be sent along with their new password when changing a password. Attention, LAM does not support password changes which require the old password." +msgstr "Especifica si la contrasenya actual de l'usuari s'ha d'enviar juntament amb la nova quan es canvia la contrasenya. LAM no suporta canvis de contrasenya que requereixen l'antiga contrasenya." + +#: ../lib/modules/inetOrgPerson.inc:121 +#: ../lib/modules/inetOrgPerson.inc:139 +#: ../lib/modules/inetOrgPerson.inc:193 +#: ../lib/modules/inetOrgPerson.inc:394 +#: ../lib/modules/inetOrgPerson.inc:436 +#: ../lib/modules/inetOrgPerson.inc:575 +#: ../lib/modules/inetOrgPerson.inc:901 +#: ../lib/modules/inetOrgPerson.inc:1143 +#: ../lib/modules/inetOrgPerson.inc:1579 +msgid "State" +msgstr "País" + +#: ../templates/pdfedit/pdfpage.php:498 +#: ../templates/pdfedit/pdfpage.php:502 +msgid "Static text" +msgstr "Texte estàtic" + +#: ../templates/tree/templates/creation/custom.php:54 +msgid "Step 1 of 2: Name and object class(es)" +msgstr "Pas 1 de 2: Nom i classes d'objecte(s)" + +#: ../templates/tree/templates/creation/custom.php:177 +msgid "Step 2 of 2: Specify attributes and values" +msgstr "Pas 2 de 2: Especifica atributs i valors" + +#: ../lib/modules/inetOrgPerson.inc:245 +msgid "Steve" +msgstr "Steve" + +#: ../lib/modules/sambaSamAccount.inc:394 +#: ../lib/modules/posixAccount.inc:212 +#: ../lib/modules/inetOrgPerson.inc:1193 +#: ../lib/modules/asteriskVoicemail.inc:170 +msgid "Steve Miller" +msgstr "Steve Miller" + +#: ../lib/modules/posixAccount.inc:273 +msgid "Steve Miller,Room 2.14,123-123-1234,123-123-1234" +msgstr "Steve Miller,Room 2.14,123-123-1234,123-123-1234" + +#: ../lib/modules/eduPerson.inc:170 +msgid "Steve, Stevo" +msgstr "Esteve, Estevo" + +#: ../lib/modules/inetOrgPerson.inc:58 +#: ../lib/modules/inetOrgPerson.inc:118 +#: ../lib/modules/inetOrgPerson.inc:185 +#: ../lib/modules/inetOrgPerson.inc:298 +#: ../lib/modules/inetOrgPerson.inc:424 +#: ../lib/modules/inetOrgPerson.inc:515 +#: ../lib/modules/inetOrgPerson.inc:516 +#: ../lib/modules/inetOrgPerson.inc:865 +#: ../lib/modules/inetOrgPerson.inc:1128 +#: ../lib/modules/inetOrgPerson.inc:1531 +msgid "Street" +msgstr "Carrer" + +#: ../templates/pdfedit/pdfpage.php:671 +msgid "Structure name" +msgstr "Nom de l'estructura" + +#: ../templates/tree/export_form.php:76 +msgid "Sub (entire subtree)" +msgstr "Sub (arbre sençer)" + +#: ../lib/types/netgroup.inc:93 +#: ../lib/modules/nisnetgroup.inc:76 +#: ../lib/modules/nisnetgroup.inc:111 +#: ../lib/modules/nisnetgroup.inc:126 +#: ../lib/modules/nisnetgroup.inc:197 +#: ../lib/modules/nisnetgroup.inc:356 +#: ../lib/modules/nisnetgroup.inc:572 +msgid "Subgroups" +msgstr "Subgrups" + +#: ../lib/modules/dhcp_settings.inc:122 +#: ../lib/modules/dhcp_settings.inc:166 +#: ../lib/modules/dhcp_settings.inc:182 +#: ../lib/modules/dhcp_settings.inc:230 +#: ../lib/modules/dhcp_settings.inc:543 +#: ../lib/modules/dhcp_settings.inc:667 +msgid "Subnet" +msgstr "Subxarxa" + +#: ../lib/modules/dhcp_settings.inc:155 +#: ../lib/modules/dhcp_settings.inc:174 +#: ../lib/modules/dhcp_settings.inc:222 +#: ../lib/modules/dhcp_settings.inc:282 +#: ../lib/modules/dhcp_settings.inc:602 +#: ../lib/modules/dhcp_settings.inc:675 +msgid "Subnet mask" +msgstr "Mascara de sub-xarxa" + +#: ../templates/schema/schema.php:174 +msgid "Substring Rule" +msgstr "Regla de la subcadena" + +#: ../templates/tree/rdelete.php:139 +#: ../templates/tree/rdelete.php:151 +msgid "Success" +msgstr "Èxit" + +#: ../lib/modules/sudoRole.inc:38 +msgid "Sudo role" +msgstr "Rol de \"sudo\"" + +#: ../lib/types/sudo.inc:48 +msgid "Sudo role management" +msgstr "Administració de rol de \"sudo\"" + +#: ../lib/types/sudo.inc:39 +msgid "Sudo roles" +msgstr "Rols de \"sudo\"" + +#: ../lib/lists.inc:634 +#: ../lib/modules.inc:1550 +msgid "Suffix" +msgstr "Sufixe" + +#: ../lib/modules/sambaSamAccount.inc:1320 +msgid "Sunday" +msgstr "Diumenge" + +#: ../templates/lists/changePassword.php:117 +msgid "Sync Asterisk password with Unix password" +msgstr "Sincronitzar la contrasenya Asterisk amb la de Unix" + +#: ../templates/lists/changePassword.php:120 +msgid "Sync Asterisk voicemail password with Unix password" +msgstr "Sincronitzar la contrasenya de veu i correu amb la de Unix" + +#: ../templates/lists/changePassword.php:108 +#: ../lib/modules/sambaSamAccount.inc:228 +msgid "Sync Samba LM password with Unix password" +msgstr "Sincronitzar la contrasenya de Samba LM amb la de Unix" + +#: ../templates/lists/changePassword.php:107 +#: ../lib/modules/sambaSamAccount.inc:227 +msgid "Sync Samba NT password with Unix password" +msgstr "Sincronitzar la contrasenya de Samba NT amb la de Unix" + +#: ../templates/tree/add_value_form.php:190 +#: ../templates/schema/schema.php:179 +msgid "Syntax" +msgstr "Sintaxi" + +#: ../templates/schema/schema.php:87 +msgid "Syntax OID" +msgstr "Sintaxi del OID" + +#: ../templates/schema/schema.php:71 +#: ../templates/schema/schema.php:72 +msgid "Syntaxes" +msgstr "Sintaxis" + +#: ../templates/config/mainmanage.php:318 +msgid "System logging" +msgstr "Registre del sistema" + +#: ../help/help.inc:59 +msgid "TLS cannot be combined with ldaps://." +msgstr "TLS no es pot combinar amb ldaps://." + +#: ../lib/modules/kolabUser.inc:241 +msgid "Target of invitation policy is invalid!" +msgstr "El destí de la politica d'invitació no és vàlida!" + +#: ../templates/lists/changePassword.php:162 +#: ../lib/modules/inetOrgPerson.inc:48 +#: ../lib/modules/inetOrgPerson.inc:117 +#: ../lib/modules/inetOrgPerson.inc:201 +#: ../lib/modules/inetOrgPerson.inc:330 +#: ../lib/modules/inetOrgPerson.inc:448 +#: ../lib/modules/inetOrgPerson.inc:531 +#: ../lib/modules/inetOrgPerson.inc:532 +#: ../lib/modules/inetOrgPerson.inc:940 +#: ../lib/modules/inetOrgPerson.inc:1132 +#: ../lib/modules/inetOrgPerson.inc:1499 +msgid "Telephone number" +msgstr "Numero de telèfon" + +#: ../lib/modules/inetOrgPerson.inc:276 +msgid "Temp" +msgstr "Temp" + +#: ../lib/modules/inetOrgPerson.inc:260 +msgid "Temp, contract until december" +msgstr "Temporal, contracte fins desembre" + +#: ../templates/tree/create_form.php:83 +msgid "Template" +msgstr "Plantilla" + +#: ../lib/modules/sambaSamAccount.inc:366 +#: ../lib/modules/sambaSamAccount.inc:594 +#: ../lib/modules/sambaSamAccount.inc:1245 +msgid "Terminal server options" +msgstr "Opcions de Terminal Server" + +#: ../lib/tools/tests.inc:44 +msgid "Tests" +msgstr "Tests" + +#: ../templates/pdfedit/pdfpage.php:610 +msgid "Text field" +msgstr "Camp de text" + +#: ../help/help.inc:104 +msgid "Text for user PDF" +msgstr "Texte pel PDF del usuari" + +#: ../lib/modules/eduPerson.inc:100 +msgid "The \"NetID\" of the person for the purposes of inter-institutional authentication. It should be represented in the form \"user@scope\" where scope defines a local security domain." +msgstr "\"NetID\" de la persona per realitzar l'autenticació fora de la institució. Ha de ser representat amb la forma \"usuari@àmbit\", on àmbit defineix un domini de seguretat local." + +#: ../lib/modules/kolabUser.inc:172 +msgid "The Cyrus mail quota for users in MBytes, leave blank for unlimited space." +msgstr "En el Cyrus, la quota s'especifica en MBytes, deixa'l en blanc per especificar un espai ilimitat." + +#: ../lib/modules/dhcp_settings.inc:317 +msgid "The DHCP ranges were changed to fit for the new subnet." +msgstr "Els rangs de DHCP s'han canviat per adaptar-los a la nova sub-xarxa." + +#: ../lib/modules/eduPerson.inc:112 +msgid "The DN of the directory entry representing the institution with which the person is associated." +msgstr "DN de l'entrada del directori que representa la institució amb la que la persona està associada." + +#: ../lib/modules/eduPerson.inc:116 +msgid "The DN of the directory entry representing the person's primary organizational unit." +msgstr "El DN de l'entrada que representa la unitat organitzativa primària de la persona." + +#: ../lib/modules/eduPerson.inc:120 +#: ../lib/modules/eduPerson.inc:124 +msgid "The DNs of the directory entries representing the person's organizational units." +msgstr "Els DNs de les entrades que representen les unitats organitzatives de la persona." + +#: ../templates/config/mainmanage.php:95 +#, php-format +msgid "The IP address %s is invalid!" +msgstr "L'adreça IP %s és invàlida." + +#: ../lib/modules/fixed_ip.inc:387 +msgid "The IP address does not match the subnet." +msgstr "L'adreça IP no està dins la subxarxa." + +#: ../lib/modules/fixed_ip.inc:390 +msgid "The IP address is already in use." +msgstr "L'adreça IP està en ús" + +#: ../lib/modules/range.inc:396 +#: ../lib/modules/range.inc:414 +#: ../lib/modules/fixed_ip.inc:382 +msgid "The IP address is invalid." +msgstr "L'adreça IP és invàlida." + +#: ../lib/modules/fixed_ip.inc:88 +msgid "The IP address of the PC." +msgstr "Adreça IP del PC." + +#: ../lib/modules/dhcp_settings.inc:132 +msgid "The IP address(es) of the DNS servers. Multiple addresses are separated by \",\". Example: 192.168.0.10, 192.168.0.11" +msgstr "Les adreces IP dels servidors DNS. Varies adreces van separades per \",\". Exemple: 192.168.0.100, 192.168.10.253" + +#: ../lib/modules/dhcp_settings.inc:138 +msgid "The IP addresses of the Netbios name servers (e.g. \"123.123.123.123, 123.123.123.124\")." +msgstr "Adreces IP dels servidors de noms de Netbios (e.x. \"192.168.170.10, 192.168.140.10\")." + +#: ../lib/modules/range.inc:400 +#: ../lib/modules/range.inc:416 +msgid "The IP does not match the subnet." +msgstr "L'adreça IP no coincideix amb la subxarxa." + +#: ../lib/modules/fixed_ip.inc:85 +msgid "The MAC address of the PC. Example: 11:22:33:44:55:aa" +msgstr "Direcció física (MAC) del PC. Exemple: 11:22:33:44:F5:1A" + +#: ../lib/modules/dhcp_settings.inc:310 +#: ../lib/modules/dhcp_settings.inc:311 +msgid "The Netbios server is invalid." +msgstr "El servidor Netbios és invàlid." + +#: ../lib/modules/fixed_ip.inc:354 +msgid "The PC name may not be longer than 20 characters." +msgstr "El nom del PC no ha de ser mes gran de 20 caràcters." + +#: ../lib/modules/fixed_ip.inc:363 +msgid "The PC name may only contain A-Z, a-z and 0-9." +msgstr "El nom del PC ha de contenir només A-Z, a-z, i 0-9." + +#: ../lib/modules/fixed_ip.inc:357 +msgid "The PC name needs to be at least 2 characters long." +msgstr "El nom del PC ha de ser d'almenys 2 caràcters de llargada." + +#: ../lib/modules/sambaDomain.inc:75 +msgid "The SID of your Samba server. Get it with \"net getlocalsid\"." +msgstr "El SID del seu servidor Samba. Obtingui'l mitjançant \"net getlocalsid\"." + +#: ../lib/modules/posixAccount.inc:65 +msgid "The UID ranges for users and hosts overlap! This is a problem because LAM uses the highest UID in use + 1 for new accounts. Please set the minimum UID to equal values or use independent ranges." +msgstr "Els rangs de UID de usuaris i màquines es solapen! Això és un problema, ja que LAM utilitza el UID més alt lliure +1 per crear nous comptes. Si us plau, Posi el UID minim a valors iguals o utilitzi rangs independents." + +#: ../lib/modules/asteriskVoicemail.inc:210 +#: ../lib/modules/asteriskVoicemail.inc:211 +msgid "The account context is invalid." +msgstr "El context del compte és incorrecte." + +#: ../lib/modules/asteriskAccount.inc:88 +#: ../lib/modules/asteriskExtension.inc:83 +#: ../lib/modules/asteriskVoicemail.inc:79 +msgid "The account context stores information about the dial plan." +msgstr "El context del compte emmagatzema informació sobre el plan de dial." + +#: ../help/help.inc:157 +msgid "The account will be saved under this LDAP suffix." +msgstr "El nou compte es gravarà sota aquest sufixe." + +#: ../templates/tests/schemaTest.php:122 +#, php-format +msgid "The attribute %s is not supported for the object class(es) %s by your LDAP server." +msgstr "L'atribut %s no està suportat per l'object class(es) %s del teu servidor d'LDAP." + +#: ../lib/modules/asteriskAccount.inc:169 +#: ../lib/modules/asteriskAccount.inc:171 +msgid "The caller ID format is invalid." +msgstr "El format de l'ID del caller és incorrecte." + +#: ../templates/tree/templates/creation/custom.php:99 +#, php-format +msgid "The container you specified (%s) does not exist. Please try again." +msgstr "El contenidor que heu especificat (%s) no existeix. Si us plau, proveu un altre cop." + +#: ../lib/modules/kolabUser.inc:160 +msgid "The country name of the user." +msgstr "Nom del pais del usuari." + +#: ../lib/modules/dhcp_settings.inc:308 +#: ../lib/modules/dhcp_settings.inc:309 +msgid "The default gateway is invalid." +msgstr "La porta d'enllaç per defecte és invàlida." + +#: ../lib/modules/dhcp_settings.inc:321 +#: ../lib/modules/dhcp_settings.inc:324 +msgid "The domain name includes invalid characters. Valid characters are A-Z, a-z, 0-9, \".\", \"_\",\"-\"." +msgstr "El nom del Domini conté caràcters invàlids. Els caràcters vàlids són A-Z, a-z, 0-9, \".\", \"_\",\"-\"." + +#: ../lib/modules/dhcp_settings.inc:319 +#: ../lib/modules/dhcp_settings.inc:322 +msgid "The domain name needs to be shorter than 15 characters." +msgstr "El nom de domini ha de ser menor de 15 caràcters." + +#: ../lib/modules/dhcp_settings.inc:320 +#: ../lib/modules/dhcp_settings.inc:323 +msgid "The domain name needs to have at least 3 characters." +msgstr "El nom de domini ha de ser d'almenys 3 caràcters." + +#: ../lib/modules/dhcp_settings.inc:120 +msgid "The domain name of the subnet." +msgstr "Nom de domini de la subxarxa." + +#: ../lib/modules/asteriskVoicemail.inc:214 +msgid "The email address is invalid." +msgstr "L'adreça de correu electrònic és incorrecte." + +#: ../lib/modules/range.inc:82 +msgid "The ending IP address of the range." +msgstr "L'adreça IP del final del rang." + +#: ../lib/modules/dhcp_settings.inc:312 +msgid "The entered Netbios node type does not exist." +msgstr "El tipus de node Netbios escrit no existeix." + +#: ../lib/modules/phpGroupwareUser.inc:138 +#: ../lib/modules/shadowAccount.inc:67 +msgid "The expiration date is invalid." +msgstr "La data d'expiració és invàlida." + +#: ../lib/modules/asteriskAccount.inc:173 +#: ../lib/modules/asteriskAccount.inc:174 +msgid "The extension context is invalid." +msgstr "El context de l'extensió és incorrecte." + +#: ../help/help.inc:193 +msgid "The first line is the subject." +msgstr "La primera línia és el tema." + +#: ../templates/initsuff.php:177 +msgid "The following suffix(es) are missing in LDAP. LAM can create them for you." +msgstr "Els següents sufixes no existeixen en LDAP. LAM els pot donar d'alta per vosté." + +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:105 +msgid "The format of the logon hours field is invalid!" +msgstr "El format de les hores vàlides per iniciar sessió és invàlid!" + +#: ../lib/modules/customScripts.inc:110 +msgid "The format of this custom script setting is invalid." +msgstr "El format del paràmetre d'aquest script personal és invàlid." + +#: ../lib/modules/asteriskVoicemail.inc:213 +msgid "The full name is invalid." +msgstr "El nom complet és incorrecte." + +#: ../templates/login.php:431 +msgid "The given user name matches multiple LDAP entries." +msgstr "El nom d'usuari donat coincideix amb vàries entrades d'LDAP." + +#: ../lib/modules/ppolicy.inc:93 +msgid "The grace authentication limit specifies the number of times that an expired password may be used to login." +msgstr "El limit gràcia d'autenticació especifica el nombre de vegades que una contrasenya caducada es pot utilitzar per iniciar sessió." + +#: ../templates/pdfedit/pdfpage.php:119 +msgid "The headline for a new section must contain at least one character." +msgstr "La capçalera per una nova secció ha de contenir al menys un caràcter." + +#: ../lib/modules/sambaSamAccount.inc:279 +msgid "The home directory will be connected under this drive letter." +msgstr "El directori principal d'usuari es connectarà a la unitat amb aquesta lletra." + +#: ../lib/modules/asteriskAccount.inc:176 +#: ../lib/modules/asteriskAccount.inc:177 +msgid "The host name is invalid." +msgstr "EL nom de host és incorrecte." + +#: ../lib/modules/ddns.inc:93 +msgid "The key enables the DHCP server to perform DNS updates. The key is generated with \"genDDNSkey\"." +msgstr "La clau permet al servidor DHCP realitzar actualitzacions de DNS. La clau es generada amb \"genDDNSkey\"." + +#: ../lib/modules/dhcp_settings.inc:306 +#: ../lib/modules/dhcp_settings.inc:307 +msgid "The lease time is invalid." +msgstr "La data d'expiració és invàlida." + +#: ../lib/modules/dhcp_settings.inc:126 +msgid "The lease time specifies after how many seconds the client should request a new IP address." +msgstr "El temps de concessió especifica quants de segons han de passar fins que el client torni a demanar una nova IP." + +#: ../lib/modules/sudoRole.inc:72 +#: ../lib/modules/sudoRole.inc:98 +msgid "The list of commands which may be run." +msgstr "Llista de comandes que poden ser executades." + +#: ../lib/modules/sudoRole.inc:68 +#: ../lib/modules/sudoRole.inc:93 +msgid "The list of hosts from which the user may run the commands." +msgstr "Llista da màquines des de la que l'usuari pot executar comandes." + +#: ../lib/modules/sudoRole.inc:64 +#: ../lib/modules/sudoRole.inc:88 +msgid "The list of users who own this sudo role and may run the commands." +msgstr "Llista d'usuaris que tenen el rol de \"sudo\" i poden executar comandes." + +#: ../templates/config/mainmanage.php:111 +msgid "The log file is empty or contains invalid characters! Valid characters are: a-z, A-Z, 0-9, /, \\, ., :, _ and -." +msgstr "El fitxer de registre és buit o conté caràcters invàlids. Els caràcters vàlids són a-z, A-Z, 0-9, /, \\, ., :, _ i -." + +#: ../lib/modules/asteriskVoicemail.inc:206 +msgid "The mailbox format is invalid." +msgstr "El format de la bústia és incorrecte." + +#: ../lib/modules/dhcp_settings.inc:313 +#: ../lib/modules/dhcp_settings.inc:314 +msgid "The maximum lease time is invalid." +msgstr "El temps màxim de contracte és invàlid." + +#: ../lib/modules/dhcp_settings.inc:129 +msgid "The maximum lease time specifies after how many seconds the client must request a new IP address." +msgstr "El temps màxim de concessió especifica els segons que han de passar perquè el client hagi de demanar una nova IP." + +#: ../lib/modules.inc:1200 +#, php-format +msgid "The module %s is not yet ready." +msgstr "El mòdul %s no està preparat." + +#: ../templates/pdfedit/pdfpage.php:90 +msgid "The name for that PDF-structure you submitted is not valid. A valid name must consist of the following characters: 'a-z','A-Z','0-9','_','-'." +msgstr "El nom que ha especificat per aquesta estructura de PDF és incorrecte. Un nom vàlid inclou només aquests caràcters: 'a-z','A-Z','0-9','_','-'." + +#: ../lib/modules/asteriskExtension.inc:95 +msgid "The name of a command to execute. The available commands may be listed at the Asterisk command line by executing \"core show applications\"." +msgstr "Nom de la comanda a executar. Les comandes disponibles poden ser llistades per la línia de comandes d'Asterisk executant \"core show applications\"." + +#: ../lib/modules/fixed_ip.inc:82 +msgid "The name of the PC." +msgstr "Nom del PC de l'usuari." + +#: ../lib/modules/asteriskExtension.inc:87 +msgid "The name of the extension (e.g. voicemail or sip)." +msgstr "Nom de l'extensió (ex. voicemail o sip)." + +#: ../lib/modules/kolabUser.inc:164 +msgid "The name of the server where the mailbox is located." +msgstr "El nom del servidor on està ubitcat l'arxiu de correu." + +#: ../lib/modules/dhcp_settings.inc:123 +msgid "The name of the subnet. Example: 192.168.10.0" +msgstr "El nom de la subxarxa. Exemple: 192.168.100.10 o Subxarxa1" + +#: ../lib/modules/sambaDomain.inc:71 +msgid "The name of your Windows domain or workgroup." +msgstr "El nom del seu domini o grup de treball de Windows." + +#: ../lib/modules/dhcp_settings.inc:159 +msgid "The net mask is derived from the subnet mask. If you leave this field empty then LAM will calculate it for you." +msgstr "La mascara de xarxa es calcula a partir de la mascara de subxarxa. Si deixes aquest camp buit, LAM el calcularà." + +#: ../lib/modules.inc:1092 +msgid "The new password will be stored in the directory after you save this account." +msgstr "La nova contrasenya s'emmagatzemarà al directori després de guardar els canvis." + +#: ../help/help.inc:116 +msgid "The number of users who may login to LAM is restricted. This can be either a fixed list of DNs or LAM can search LDAP to find a DN which matches the given user name." +msgstr "El nombre d'usuaris que poden accedir a LAM està restringit. Pot ser una llista fixa de DNs o d'altra banda LAM pot cercar a l'arbre d'LDAP per trobar l'usuari amb el que s'intenta accedir." + +#: ../templates/tests/schemaTest.php:111 +#, php-format +msgid "The object class %s is not supported by your LDAP server." +msgstr "La classe d'objecte %s no està suportada per el teu servidor d'LDAP." + +#: ../lib/modules/inetOrgPerson.inc:584 +msgid "The office name of the user (e.g. YourCompany, Human Resources)." +msgstr "Nom d'oficina de l'usuari (ex. Companyia, Recursos Humans)." + +#: ../templates/selfService/selfServiceMain.php:261 +#: ../lib/modules.inc:1908 +msgid "The operation was stopped because of the above errors." +msgstr "L'operació s'ha cancel·lat degut a errors." + +#: ../lib/modules/asteriskVoicemail.inc:216 +#: ../lib/modules/asteriskVoicemail.inc:217 +msgid "The options have bad format." +msgstr "Format de les opcions incorrecte." + +#: ../lib/modules/groupOfNames.inc:69 +msgid "The owner of this group." +msgstr "Propietari del grup." + +#: ../lib/modules/asteriskVoicemail.inc:215 +msgid "The pager number has bad format." +msgstr "El nombre de pàgina té un format incorrecte." + +#: ../templates/config/confsave.php:71 +#: ../templates/config/confmain.php:72 +#: ../templates/config/mainlogin.php:59 +#: ../templates/selfService/adminLogin.php:54 +msgid "The password is invalid! Please try again." +msgstr "La contrasenya és invàlida!. Proveu de nou." + +#: ../lib/security.inc:237 +#, php-format +msgid "The password is too short. You have to enter at least %s characters." +msgstr "La contrasenya és massa curta. Has d'escriure almenys %s caràcters." + +#: ../lib/security.inc:289 +#, php-format +msgid "The password is too weak. You have to enter at least %s different character classes (upper/lower case, numbers and symbols)." +msgstr "La contrasenya és massa fàcil. Has d'escriure almenys %s tipus diferents de caràcter (majúscula, minúscula, nombres, símbols)." + +#: ../lib/security.inc:260 +#, php-format +msgid "The password is too weak. You have to enter at least %s lower case characters." +msgstr "La contrasenya és massa fàcil. Has d'escriure almenys %s minúscules." + +#: ../lib/security.inc:268 +#, php-format +msgid "The password is too weak. You have to enter at least %s numeric characters." +msgstr "La contrasenya és massa fàcil. Has d'escriure almenys %s caràcters numèrics." + +#: ../lib/security.inc:272 +#, php-format +msgid "The password is too weak. You have to enter at least %s symbolic characters." +msgstr "La contrasenya és massa fàcil. Has d'escriure almenys %s caràcters de símbol." + +#: ../lib/security.inc:264 +#, php-format +msgid "The password is too weak. You have to enter at least %s upper case characters." +msgstr "La contrasenya és massa fàcil. Has d'escriure almenys %s majúscules." + +#: ../lib/modules.inc:1345 +msgid "The password was set to:" +msgstr "La contrasenya s'ha canviat a:" + +#: ../templates/lists/changePassword.php:297 +msgid "The password(s) were set to:" +msgstr "La contrasenya s'ha establert a:" + +#: ../lib/modules/posixAccount.inc:346 +msgid "The primary group for this account. You can insert a GID number or a group name." +msgstr "El grup primari del compte. Pots posar el GID o el nom del grup." + +#: ../lib/modules/posixAccount.inc:413 +msgid "The primary group the host should be member of." +msgstr "El grup primari al que ha de pertànyer la màquina." + +#: ../lib/modules/posixAccount.inc:375 +msgid "The primary group the user should be member of." +msgstr "Grup primari al que ha de pertànyer el usuari." + +#: ../lib/modules/asteriskExtension.inc:91 +msgid "The priority is a sequence number used to order the execution of commands. Commands are executed beginning with the lowest sequence number." +msgstr "La prioritat és un nombre de seqüència utilitzat per ordenar l'execució de comandes. Les comandes s'executen començant per el nombre de seqüència més baix." + +#: ../lib/modules/range.inc:402 +msgid "The range conflicts with another range." +msgstr "El rang entra en conflicte amb un altre ja existent." + +#: ../lib/modules/range.inc:398 +msgid "The range end needs to be greater than the range start." +msgstr "El final del rang ha de ser major que el principi." + +#: ../lib/modules/inetOrgPerson.inc:564 +msgid "The room number of the employee's office." +msgstr "Nombre d'habitació de l'oficina de l'empleat." + +#: ../lib/modules/customScripts.inc:57 +#: ../lib/modules/customScripts.inc:69 +msgid "The scripts will be run on your web server in the user context of your web server (e.g. apache/www-data)." +msgstr "Els scripts s'executaran al servidor amb el mateix usuari que el del servidor web. (ex. apache/www-data)." + +#: ../lib/modules/sambaSamAccount.inc:373 +#: ../lib/modules/inetOrgPerson.inc:592 +msgid "The selected options will not be managed inside LAM. You can use this to reduce the number of displayed input fields." +msgstr "Les opcions seleccionades no seran gestionades dins LAM. Pots fer servir l'opció per reduir el nombre de camps d'entrada mostrats." + +#: ../lib/modules/range.inc:79 +msgid "The starting IP address of the range." +msgstr "La primera adreça IP del rang." + +#: ../lib/modules/inetOrgPerson.inc:576 +msgid "The state where the user resides or works." +msgstr "País de residència o de treball de l'usuari." + +#: ../templates/pdfedit/pdfpage.php:107 +msgid "The static text must contain at least one character." +msgstr "El texte estàtic ha de contenir al menys un caràcter." + +#: ../lib/modules/dhcp_settings.inc:301 +msgid "The subnet is already in use." +msgstr "La subxarxa ja està en ús." + +#: ../lib/modules/dhcp_settings.inc:302 +#: ../lib/modules/dhcp_settings.inc:303 +msgid "The subnet is invalid." +msgstr "La subxarxa és invàlida." + +#: ../lib/modules/dhcp_settings.inc:315 +#: ../lib/modules/dhcp_settings.inc:316 +msgid "The subnet mask is invalid." +msgstr "La màscara de subxarxa és incorrecte." + +#: ../lib/modules/dhcp_settings.inc:156 +msgid "The subnet mask of the network." +msgstr "Màscara de la xarxa." + +#: ../lib/modules/sudoRole.inc:80 +#: ../lib/modules/sudoRole.inc:108 +msgid "The sudo commands are executed with these group memberships." +msgstr "Les comandes de \"sudo\" són executades amb aquests usuaris pertinents al grup." + +#: ../lib/modules/sudoRole.inc:76 +#: ../lib/modules/sudoRole.inc:103 +msgid "The sudo commands may be run as these users (e.g. root)." +msgstr "Les comandes de \"sudo\" poden ser executades com a aquests usuaris (p.ex. com a root)." + +#: ../lib/modules/sambaSamAccount.inc:107 +msgid "The value for the Samba 3 field \"User can/must change password\" needs to be a number." +msgstr "El valor per el camp de Samba 3 \"Usuari pot/ha de canviar contrasenya\" ha de ser un nombre." + +#: ../lib/modules/asteriskVoicemail.inc:218 +#: ../lib/modules/asteriskVoicemail.inc:219 +msgid "The voicemail context name is invalid." +msgstr "El context de veu i correu és incorrecte." + +#: ../help/help.inc:196 +msgid "The wildcard for the new password is @@newPassword@@." +msgstr "El comodí per la nova contrasenya és @@newPassword@@." + +#: ../templates/tree/add_oclass_form.php:125 +msgid "There are new required attributes which need to be set." +msgstr "Hi han nous atributs obligatoris que necessiten ser emplenats." + +#: ../lib/modules/posixGroup.inc:479 +msgid "There are still users who have this group as their primary group." +msgstr "Encara queden usuaris amb aquest grup com a grup primari." + +#: ../lib/modules/sambaGroupMapping.inc:438 +msgid "There can be only one group of this type." +msgstr "Només hi pot haver un grup d'aquest tipo." + +#: ../lib/modules/asteriskAccount.inc:170 +msgid "There is already another user with this caller ID." +msgstr "Ja hi ha un altre usuari amb aquest ID." + +#: ../lib/modules/asteriskVoicemail.inc:207 +msgid "There is already another user with this mailbox name." +msgstr "Ja hi ha un altre usuari amb aquest nom de bústia." + +#: ../templates/massDoUpload.php:128 +msgid "There were errors while uploading:" +msgstr "S'han produït errors en la transferència:" + +#: ../lib/modules/posixGroup.inc:400 +msgid "These are the minimum and maximum numbers to use for group IDs when creating new group accounts. New group accounts will always get the highest number in use plus one." +msgstr "Aquests numeros són el UID màxims i mínims a utilitzar a l'hora de crear nous comptes. Els nous comptes de grup sel's hi asigna el UID més alt en ús +1." + +#: ../lib/modules/posixAccount.inc:334 +msgid "These are the minimum and maximum numbers to use for machine IDs when creating new accounts for hosts. The range should be different from that of users. New host accounts will always get the highest number in use plus one." +msgstr "Aquests són els números màxims i mínims d'ID d'ordinador per utilitzar a l'hora de crear comptes de màquines Samba. Els rangs haurien de ser diferents al dels usuaris. Als nous comptes se'ls hi assigna el nombre més alt en ús +1." + +#: ../lib/modules/posixAccount.inc:330 +msgid "These are the minimum and maximum numbers to use for user IDs when creating new user accounts. The range should be different from that of machines. New user accounts will always get the highest number in use plus one." +msgstr "Aquests són els números màxim i mínim de ID de usuari per crear nous comptes de usuari. El rang hauria de ser diferent al del de les màquines. Els nous comptes de usuari sel's hi asigna el UID més gran en ús +1." + +#: ../lib/modules/nisnetgroup.inc:81 +#: ../lib/modules/nisnetgroup.inc:85 +msgid "These entries specify the members of the netgroup. You can limit the set to a host name, a user name, a domain name or any combination of them." +msgstr "Aquestes entrades especifiquen els membres del grup de xarxa. Pots limitar-ho a una màquina, usuari, nom de domini, o qualsevol combinació d'aquests." + +#: ../lib/modules/asteriskExtension.inc:107 +msgid "These options change the list of potential extension owners below. You can select to show Asterisk accounts or all users. It is also possible to search the tree suffix if you have users which are not in the standard user suffix." +msgstr "Canvien la llista de possibles propietaris de l'extensió de l'apartat anterior. Es pot activar que es mostrin comptes d'Asterisk, o tots els usuaris. També és possible cercar en un altre sufixe d'arbre si tens usuaris que no estan al sufixe estàndard." + +#: ../lib/modules/posixAccount.inc:90 +msgid "This GID number is invalid! Please provide either a number or a group name." +msgstr "Aquest GID és invàlid!. Si us plau, proveieu o bé un numero o un nom de grup." + +#: ../help/help.inc:186 +msgid "This HTML code will be placed on top of all self service pages. E.g. you can use this to place your custom logo. Any HTML code is permitted." +msgstr "Aquest codi HTML serà el de la pàgina principal de totes les pàgines d'autoservei. Pots utilitzar-lo per posar un logotip corporatiu. Es permet qualsevol codi HTML." + +#: ../lib/modules/fixed_ip.inc:360 +msgid "This PC name already exists." +msgstr "El nom de l'ordinador ja existeix." + +#: ../lib/modules/kolabUser.inc:283 +msgid "This account is marked for deletion." +msgstr "Aquest compte està posat per esborrar." + +#: ../lib/modules/sambaSamAccount.inc:303 +msgid "This allows you to define this account as a special user like administrator or guest." +msgstr "Això et permet definir aquest compte com a un usuari especial, com Adminstrador o Invitat." + +#: ../lib/modules/inetOrgPerson.inc:580 +msgid "This can be used to specify if the user has a car license." +msgstr "Especifica si l'usuari té carnet de conduir." + +#: ../help/help.inc:128 +msgid "This changes the password of the selected profile." +msgstr "Això canviarà la contrasenya del perfil sel·leccionat." + +#: ../help/help.inc:130 +msgid "This changes the profile which is selected by default at login." +msgstr "Això canvia el perfil que està sel·leccionat per defecte al iniciar sessió." + +#: ../templates/massBuildAccounts.php:149 +msgid "This column is defined to include unique entries but duplicates were found:" +msgstr "Aquesta columna suposadament conté entrades úniques, pero s'han trobat duplicats:" + +#: ../lib/modules/customScripts.inc:111 +msgid "This custom script setting includes an invalid account type." +msgstr "Aquest script personalitzat inclou un tipus de compte invàlid." + +#: ../lib/modules/customScripts.inc:113 +#: ../lib/modules/customScripts.inc:115 +msgid "This custom script setting includes an invalid action type." +msgstr "Aquest script personalitzat inclou un tipus d'acció invàlida." + +#: ../help/help.inc:95 +msgid "This defines the language of the login window and sets this language as the default language. Users can change the language at login." +msgstr "Això defineix el idioma de la finestra de Inici de sessió i extableix aquest idioma com a l'idioma per defecte. Els usuaris poden canviar el idioma a l'inici de sessió." + +#: ../help/help.inc:114 +msgid "This defines the rights for the home directories which are created by lamdaemon." +msgstr "Defineix els permisos per els directoris home creats per lamdaemon." + +#: ../lib/modules/asteriskExtension.inc:79 +msgid "This defines what application Asterisk has to start for this user (e.g. SIP/user1)." +msgstr "Defineix quina aplicació ha d'executar Asterisk per aquest usuari (ex. SIP/user1)." + +#: ../lib/modules/ipHost.inc:67 +msgid "This describes the location of the host." +msgstr "Descripció del lloc del host." + +#: ../lib/modules/inetOrgPerson.inc:572 +msgid "This describes the location of the user." +msgstr "Descripció d'on està l'usuari." + +#: ../lib/lamPDF.inc:126 +msgid "This document was automatically created by LDAP Account Manager" +msgstr "Aquest document ha estat creat automàticament per LDAP Account Manager" + +#: ../templates/tree/edit.php:210 +msgid "This entry has no attributes" +msgstr "Aquest element no conté atributs" + +#: ../templates/tree/delete_form.php:96 +#, php-format +msgid "This entry is the root of a sub-tree containing %s entries." +msgstr "Aquest element és l'arrel d'un sub-arbre que conté %s elements." + +#: ../lib/modules/posixAccount.inc:92 +msgid "This gecos value is invalid!" +msgstr "El valor gecos és invàlid!" + +#: ../lib/modules/ipHost.inc:63 +msgid "This is a comma separated list of IP addresses." +msgstr "Llista separada per comes d'adreces IP." + +#: ../lib/modules/ieee802device.inc:66 +msgid "This is a comma separated list of MAC addresses." +msgstr "Això és una llista separada per comes d'adreçes MAC." + +#: ../lib/modules/kolabUser.inc:148 +msgid "This is a comma separated list of delegates." +msgstr "Això és una llista separada per comes de delegats." + +#: ../lib/modules/kolabUser.inc:156 +msgid "This is a comma separated list of eMail aliases." +msgstr "Això és una llista separada per comes d'adreçes de e-mail." + +#: ../lib/modules/kolabUser.inc:140 +msgid "This is a comma separated list of invitation policies." +msgstr "Això és una llista separada per comes de politiques d'invitació." + +#: ../lib/modules/nisMailAlias.inc:76 +msgid "This is a comma separated list of recipients." +msgstr "Això és una llista separada per comes de receptors." + +#: ../lib/modules/inetLocalMailRecipient.inc:70 +msgid "This is a comma separated list of the users public email addresses." +msgstr "Això és una llista separada per comes d'adreçes publiques d'e-mail del usuari." + +#: ../help/help.inc:144 +msgid "This is a list of IP addresses from hosts who may access LAM. You can use \"*\" as wildcard (e.g. 192.168.0.*)." +msgstr "Llista d'adreces IP de hosts que poden accedir a LAM. Pots utilitzar \"*\" com a comodí (ex. 192.168.1.*)." + +#: ../lib/modules/groupOfNames.inc:73 +msgid "This is a list of members of this group." +msgstr "Llista de membres del grup." + +#: ../lib/modules/groupOfNames.inc:77 +msgid "This is a list of members of this group. Multiple members are separated by semicolons." +msgstr "Llista de membres del grup. Els diversos membres estan separats per punt i coma." + +#: ../lib/modules/eduPerson.inc:87 +msgid "This is a list of nick names for this user." +msgstr "Llista de àlies d'usuari." + +#: ../help/help.inc:110 +msgid "This is a list of the servers where the lamdaemon scripts are stored. LDAP Account Manager will make a SSH connection to the servers with the user name and password provided at login. Multiple servers are separated by semicolons. You can append a descriptive name after a colon." +msgstr "Llista de servidors on està instal·lat l'script lamdaemon. LAM farà una connexió SSH als servidors amb l'usuari i contrasenya escrits al iniciar sessió. Diversos servidors es separen per punts i comes. Pots afegir una descripció després de dos punts." + +#: ../help/help.inc:88 +msgid "This is a list of valid DN entries of all users that are allowed to login to LDAP Account Manager. Please enter one DN per line." +msgstr "Llista de entrades DN de tots els usuaris que tenen permesa l'entrada a l'LDAP Account Manager. Un nom d'usuari per línia." + +#: ../templates/masscreate.php:316 +msgid "This is an example how it would look in your spreadsheet program before you convert to CSV:" +msgstr "Això és un exemple de com apareixeria la seva fulla de càcul abans de convertir-la a CSV:" + +#: ../lib/modules/nisObject.inc:67 +msgid "This is an optional description for this entry." +msgstr "Descripció opcional per aquesta entrada." + +#: ../help/help.inc:174 +msgid "This is needed to find the LDAP DNs of your user accounts. E.g. if you use \"uid\" and your user inputs \"miller\" then LAM will search for an account with uid=miller." +msgstr "Necessari per trobar els DNs dels comptes d'usuari. Ex. Si fas servir \"uid\" i el teu usuari escriu \"lipi\", llavors LAM cercarà un compte amb uid=lipi." + +#: ../lib/modules/ipHost.inc:110 +#: ../lib/modules/eduPerson.inc:219 +#: ../lib/modules/eduPerson.inc:221 +#: ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/aliasEntry.inc:79 +msgid "This is not a valid DN!" +msgstr "Això no és un DN vàlid!" + +#: ../lib/modules/sambaSamAccount.inc:94 +msgid "This is not a valid RID number!" +msgstr "Això no és un numero RID vàlid!" + +#: ../lib/modules/sambaGroupMapping.inc:440 +msgid "This is not a valid Samba 3 group type!" +msgstr "Això no és un tipo de grup vàlid per Samba3!" + +#: ../lib/modules/eduPerson.inc:223 +msgid "This is not a valid list of DNs!" +msgstr "No és una llista de DNs valida!" + +#: ../lib/modules/inetLocalMailRecipient.inc:66 +msgid "This is one of the users public email addresses." +msgstr "Això és una de les adreçes d'e-mail del usuari." + +#: ../lib/modules/nisMailAlias.inc:72 +msgid "This is one recipient for this alias." +msgstr "Això és una destinació per aquest alias." + +#: ../lib/modules/asteriskAccount.inc:80 +msgid "This is the ID of the user in the Asterisk database. It may contain digits and letters (e.g. user1 or 200134)." +msgstr "ID de l'usuari a la base de dades d'Asterisk. Pot contenir dígits i lletres (ex. user1, o 200134)." + +#: ../lib/modules/ipHost.inc:59 +msgid "This is the IP address of the network card of the device (e.g. 123.123.123.123)." +msgstr "Adreça IP del dispositiu de xarxa (p.ex: 192.168.0.10)" + +#: ../lib/modules/ipHost.inc:71 +msgid "This is the LDAP DN of the host's manager." +msgstr "DN d'LDAP de l'administrador del host." + +#: ../lib/modules/inetOrgPerson.inc:512 +msgid "This is the LDAP DN of the user's manager. Use this property to represent hierarchies in your company." +msgstr "Aquest és el DN del administrador del usuari. Utilitza aquesta propietat per representar jerarquies en l'empresa." + +#: ../lib/modules/ieee802device.inc:62 +msgid "This is the MAC address of the network card of the device (e.g. 00:01:02:DE:EF:18)." +msgstr "Això és l'adreça MAC del dispositiu de xarxa (p.ex: 00:01:02:DE:EF:18)" + +#: ../lib/modules/sambaSamAccount.inc:300 +msgid "This is the SID of the user's primary Windows group." +msgstr "Això és l'SID del grup primari del usuari de Windows." + +#: ../help/help.inc:97 +msgid "This is the absolute path to an external script for setting quotas and creating home directories." +msgstr "Camí absolut a un script extern que estableixi quotes i crei els directoris dels usuaris" + +#: ../lib/modules/sambaSamAccount.inc:238 +msgid "This is the account's Windows password." +msgstr "Contrasenya de Windows del compte." + +#: ../lib/modules/sambaSamAccount.inc:235 +msgid "This is the account's full name on Windows systems." +msgstr "Nom complert del usuari de Windows del compte." + +#: ../lib/modules/ppolicyUser.inc:49 +msgid "This is the active password policy for this account." +msgstr "Política actual de contrasenya per aquest compte." + +#: ../lib/modules/sambaSamAccount.inc:322 +#: ../lib/modules/phpGroupwareUser.inc:83 +#: ../lib/modules/shadowAccount.inc:190 +msgid "This is the date when the account will expire. Format: DD-MM-YYYY" +msgstr "Data d'expiració del compte. Format: DD-MM-YYYY" + +#: ../lib/modules/sambaGroupMapping.inc:356 +msgid "This is the group name which will be shown in Windows." +msgstr "Nom del grup del usuari que apareixerà sota Windows." + +#: ../help/help.inc:153 +msgid "This is the identifier for the relative DN value. It must be one of the given allowed LDAP attributes (e.g. user accounts usually use \"uid\" while groups use \"cn\")." +msgstr "Identificador per el DN relatiu. Ha de ser un dels atributs LDAP permesos (p.ex: comptes de usuari normalment utilitzen \"uid\"mentres que els grups utilitzen \"cn\")." + +#: ../help/help.inc:83 +msgid "This is the list of attributes to show in the account list. The entries can either be predefined values, \"#attribute\", or individual ones, \"attribute:description\". Several entries are separated by semicolons." +msgstr "Llista d'atributs a mostrar a la llista del compte. Les entrades poden ser o bé valors predefinits, \"#attribute\", o valors individuals, \"attribute:descripció\". Es poden separar varies entrades amb punts i comes." + +#: ../lib/modules/asteriskAccount.inc:84 +msgid "This is the machine id (e.g. IP address or host name) from which the user can call/receive calls." +msgstr "Id de la màquina (ex. Adreça IP o nom de host) del que l'usuari pot rebre/enviar trucades." + +#: ../lib/modules/inetLocalMailRecipient.inc:74 +msgid "This is the mail server for the user." +msgstr "Aquest és el servidor d'email del usuari." + +#: ../lib/modules/nisnetgroup.inc:69 +#: ../lib/modules/groupOfNames.inc:61 +msgid "This is the name of this group." +msgstr "Nom del grup." + +#: ../lib/modules/posixAccount.inc:421 +msgid "This is the natural name of the host. If empty, the host name will be used." +msgstr "Aquest és el nom comú de l'ordinador. Si es deixa en blanc es farà servir el nom de host." + +#: ../lib/modules/inetOrgPerson.inc:548 +msgid "This is the natural name of the user. If empty, the first and last name is used." +msgstr "Aquest és el nom comu del usuari. Si es deixa en blanc es farà servir el primer i el segon nom." + +#: ../lib/modules/posixAccount.inc:399 +msgid "This is the natural name of the user. If empty, the first and last name or user name is used." +msgstr "Aquest és el nom comu del usuari. Si es deixa en blanc es farà servir el primer i el segon nom o be el nom d'usuari." + +#: ../lib/modules/sambaDomain.inc:115 +msgid "This is the number of bad logon attempts (0 - 999) before the account is deactivated. 0 means unlimited attempts." +msgstr "Nombre d'accessos fallits (0-999) abans de que el compte sigui desactivat. 0 significa intents infinits." + +#: ../lib/modules/sambaDomain.inc:99 +msgid "This is the number of passwords which are saved to prevent that users reuse old passwords." +msgstr "Nombre de contrasenyes que es guarden per prevenir que els usuaris re-utilitzin les antigues." + +#: ../help/help.inc:93 +msgid "This is the number of rows to show in the account list. If more entries are found the list will be split into several pages." +msgstr "Nombre de registres a mostrar en la llista de usuaris/grups/màquines. Si es troben més del que s'especifica, el llistat es dividirà en pàgines." + +#: ../lib/modules/sambaSamAccount.inc:331 +msgid "This is the path to the user's home directory." +msgstr "Camí al directori principal de l'usuari." + +#: ../lib/modules/sambaGroupMapping.inc:364 +msgid "This is the relative ID (similar to UID on Unix) for Windows accounts. If you leave this empty LAM will calculate the RID from the UID. This can be either a number or the name of a special group:" +msgstr "Això és el ID relatiu (similar al UDI en Unix) per comptes Windows. Si es deixa en blanc, LAM el calcularà a partir del UID. Es pot posar un numero o bé el nom d'un grup especial:" + +#: ../lib/modules/sambaSamAccount.inc:306 +msgid "This is the relative ID number for your Windows account. You can either enter a number or one of these special accounts: " +msgstr "Això és el UID relatiu pel seu compte Windows. Pot entrar o bé un numero o un dels següents comptes especials:" + +#: ../lib/modules/sambaSamAccount.inc:310 +msgid "This is the relative ID number for your host account. If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "Això és el ID relatiu pel seu compte en la maquina. Si es deixa en blanc, LAM utilitzarà: uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../help/help.inc:58 +msgid "This is the server address of your LDAP server. Use ldap:// for unencrypted LDAP connections or TLS encrypted connections. LDAP+SSL (LDAPS) encrypted connections are specified with ldaps://. The port value is optional." +msgstr "Adreça del servidor LDAP. Utilitza ldap:// per connexions LDAP sense xifrar o TLS. Per LDAP+SSL utilitza ldaps://. El valor del port és opcional." + +#: ../help/help.inc:77 +msgid "This is the suffix for the LDAP tree viewer." +msgstr "Aquest és el sufix per el visor de abres de LDAP." + +#: ../help/help.inc:71 +msgid "This is the suffix of the LDAP tree from where to search for LDAP entries. Only entries in this subtree will be displayed in the account list. When creating a new accont this will be the DN where it is saved." +msgstr "Això és el sufix del arbre LDAP a partir d'on han de començar les cerques d'LDAP. Només es mostraran les entrades de dins aquest subarbre. Quan es creïn nous comptes, es gravaran dins aquest DN." + +#: ../lib/modules/inetLocalMailRecipient.inc:62 +msgid "This is the target email address for the user's mails." +msgstr "Aquest és l'adreça de correu de destí pels mails d'aquest usuari." + +#: ../lib/modules/customScripts.inc:46 +#: ../lib/modules/uidObject.inc:53 +#: ../lib/modules/aliasEntry.inc:55 +msgid "This is the target of this alias entry." +msgstr "Això és la destinació per aquest àlies." + +#: ../lib/modules/sambaDomain.inc:127 +msgid "This is the time (in minutes) for which the user may not log in after the account was locked. -1 means forever." +msgstr "Temps en minuts que l'usuari no podrà accedir després de que el compte sigui bloquejat. -1 vol dir per sempre." + +#: ../help/help.inc:138 +msgid "This is the time (in minutes) of inactivity after which a user is automatically logged off." +msgstr "Temps d'inactivitat en minuts abans de que a l'usuari se li tanqui sessió automàticament." + +#: ../help/help.inc:101 +msgid "This is the time in minutes which LAM caches its LDAP searches. Shorter times will stress LDAP more but decrease the possibility that changes are not identified." +msgstr "Temps, en minuts, durant el qual LAM manté en caché le seves búsquedes LDAP. Temps menors faràn treballar més el servidor ldap, i temps majors poden provocar que es passin canvis per alt." + +#: ../lib/modules/kolabUser.inc:168 +msgid "This is the time limit (in days) for other users who want to check future appointments. If you leave this blank the default (60 days) will be set." +msgstr "Això són el nombre màxim de dies que els altres usuaris poden fer cites. Si es deixa en blanc es pren un valor per defecte de 60 dies." + +#: ../lib/modules/sambaSamAccount.inc:325 +msgid "This is the time zone of your Samba server. LAM needs this information to display the logon hours correctly." +msgstr "Zona horària del servidor Samba. LAM fa servir aquesta informació per mostrar les hores d'accés permeses correctament." + +#: ../lib/modules/sambaSamAccount.inc:297 +msgid "This is the user's primary Windows group." +msgstr "Això és el grup primari de Windows del usuari." + +#: ../lib/modules/posixAccount.inc:93 +msgid "This login shell is invalid!" +msgstr "El shell de inici de sessió és invàlid!" + +#: ../lib/modules/inetLocalMailRecipient.inc:235 +msgid "This mail address is already in use:" +msgstr "Aquesta adreça de correu està en ús:" + +#: ../lib/lamdaemon.inc:46 +msgid "This module requires the PHP ssh2 extension." +msgstr "Aquest mòdul requereix l'extensió ssh2 de PHP." + +#: ../templates/schema/schema.php:348 +msgid "This object class is obsolete." +msgstr "Aquesta clase d'objecte està obsolet." + +#: ../lib/modules/sambaSamAccount.inc:316 +msgid "This option defines the allowed logon hours for this account." +msgstr "Aquesta opció defineix les hores d'inici de sessió que es permeten per aquest compte." + +#: ../lib/modules/sambaSamAccount.inc:319 +msgid "This option defines the allowed logon hours for this account. The format is the same as for the LDAP attribute. The 24*7 hours are represented as 168 bit which are saved as 21 hex (21*8 = 168) values. The first bit represents Sunday 0:00 - 0:59 in GMT." +msgstr "Aquesta opció defineix les hores en que se li permet iniciar sessió a aquest compte. El format és el mateix que en l'atribut LDAP. Les hores 24*7 són representades com 168 bits, que es graven com 21h (21*8=168). El 1r bit representa Diumenge, 0:00-0:59 GMT." + +#: ../lib/modules/asteriskExtension.inc:206 +msgid "This pair of extension name and priority already exists." +msgstr "Aquest parell de nom d'extensió i prioritat ja existeix." + +#: ../lib/modules/sambaSamAccount.inc:340 +msgid "This program is run after the login." +msgstr "Aquest programa s'executa després d'accedir." + +#: ../lib/modules/sambaSamAccount.inc:364 +msgid "This specifies the reconnect policy." +msgstr "Política de reconnexió." + +#: ../lib/modules/sambaSamAccount.inc:361 +msgid "This specifies what to do when the client connection is broken." +msgstr "Que fer quan la connexió del client es trenca." + +#: ../help/help.inc:178 +msgid "This text is displayed on top of the self service login page. You can also input HTML code here." +msgstr "EL text es mostra a la pàgina d'entrada de l'autoservei. Pots posar-hi codi HTML." + +#: ../help/help.inc:180 +msgid "This text is displayed on top of the self service main page. You can also input HTML code here." +msgstr "El text es mostra a la pàgina principal de l'autoservei. Pots posar-hi codi HTML." + +#: ../help/help.inc:176 +msgid "This text should shortly describe your selected LDAP search attribute (e.g. email or user name)." +msgstr "Ha de descriure breument l'atribut de cerca d'LDAP seleccionat. (ex. e-mail o nom d'usuari)." + +#: ../help/help.inc:105 +msgid "This text will appear on top of every user PDF file." +msgstr "Aquest texte apareixerà a la capçalera del PDF del usuari." + +#: ../lib/tools/pdfEdit.inc:53 +msgid "This tool allows you to customize the PDF pages." +msgstr "Aquesta eina li permetrà parametritzar els PDFs." + +#: ../templates/lists/userlink.php:61 +#: ../templates/lists/changePassword.php:46 +msgid "This user was not found!" +msgstr "No s'ha trobat l'usuari!" + +#: ../lib/modules/sambaSamAccount.inc:97 +#: ../lib/modules/sambaSamAccount.inc:98 +#: ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:100 +msgid "This value can only be \\\"true\\\" or \\\"false\\\"!" +msgstr "Aquest valor només pot ser \\\"true\\\" o \\\"false\\\"!" + +#: ../lib/modules/posixAccount.inc:94 +msgid "This value can only be \\\"true\\\" or \\\"false\\\"." +msgstr "Aquest valor només pot ser \\\"true\\\" o \\\"false\\\"." + +#: ../lib/modules/posixGroup.inc:478 +msgid "This value must be a list of user names separated by semicolons." +msgstr "Això ha de ser una llista de usuaris separats per comes." + +#: ../help/help.inc:201 +msgid "This will create a new organizational unit under the selected one." +msgstr "Això crearà una nova unitat organitzativa dins la OU sel·leccionada." + +#: ../lib/modules/posixAccount.inc:362 +msgid "This will create the user's home directory on the specified server." +msgstr "Crear el directori home al servidor especificat." + +#: ../help/help.inc:203 +msgid "This will delete the selected organizational unit. The OU has to be empty." +msgstr "Això esborrarà la unitat organitzativa sel·leccionada. La OU ha d'estar buida." + +#: ../help/help.inc:126 +msgid "This will delete the selected profile." +msgstr "Això esborrarà el perfil seleccionat." + +#: ../lib/modules/eduPerson.inc:128 +#: ../lib/modules/sambaSamAccount.inc:376 +#: ../lib/modules/phpGroupwareUser.inc:87 +#: ../lib/modules/shadowAccount.inc:194 +#: ../lib/modules/hostObject.inc:77 +msgid "This will enable the extension automatically if this profile is loaded." +msgstr "Activa l'extensió automàticament si el perfil s'ha carregat." + +#: ../lib/modules/sambaSamAccount.inc:241 +msgid "This will reset the host's password to a default value." +msgstr "Això establirà la contrasenya de la màquina a un valor per defecte." + +#: ../templates/lists/changePassword.php:171 +#: ../help/help.inc:190 +msgid "This will set a random password and display it on the screen or send it the user via mail." +msgstr "S'establirà una contrasenya aleatòria i es mostrarà per pantalla o s'enviarà a l'usuari per e-mail." + +#: ../lib/modules/kolabUser.inc:176 +msgid "This will set a special flag on the account which tells Kolabd to remove it. Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes)." +msgstr "Això activarà un flag en el compte que li diu al Kolab que esborri el compte. Utilitza'l per eliminar comptes de Kolab de forma neta. Per exemple, això esborraria les busties de correu." + +#: ../lib/modules/sambaSamAccount.inc:1319 +msgid "Thursday" +msgstr "Dijous" + +#: ../lib/modules/sambaSamAccount.inc:1360 +msgid "Time" +msgstr "Hora" + +#: ../lib/modules/sambaSamAccount.inc:345 +msgid "Time limit" +msgstr "Límit de temps" + +#: ../lib/modules/sambaSamAccount.inc:324 +#: ../lib/modules/sambaSamAccount.inc:526 +msgid "Time zone" +msgstr "Zona horària" + +#: ../lib/lamdaemon.inc:75 +msgid "Timeout while executing lamdaemon commands!" +msgstr "Temps màxim quan s'executin comandes de lamdaemon." + +#: ../lib/modules/posixAccount.inc:391 +msgid "To disable login use /bin/false. The list of shells is read from lam/config/shells" +msgstr "Per deshabilitar l'inici de sessió utilitzi /bin/false. La llista de shells es treu de lam/config/shells." + +#: ../lib/modules/sambaSamAccount.inc:550 +msgid "Tokyo, Seoul, Osaka, Yakutsk" +msgstr "Tokyo, Seoul, Osaka, Yakutsk" + +#: ../templates/main_header.php:65 +msgid "Tools" +msgstr "Eines" + +#: ../lib/export.inc:444 +#: ../lib/export.inc:514 +msgid "Total entries" +msgstr "Total d'elements" + +#: ../lib/types/user.inc:260 +msgid "Translate GID number to group name" +msgstr "Traduir GID a nom de grup" + +#: ../templates/config/confmain.php:262 +#: ../help/help.inc:76 +msgid "Tree suffix" +msgstr "Sufix del arbre" + +#: ../templates/main_header.php:77 +msgid "Tree view" +msgstr "Vista en arbre" + +#: ../templates/config/confmain.php:583 +msgid "TreeSuffix is invalid!" +msgstr "Sufix és invàlid!" + +#: ../lib/modules/sambaSamAccount.inc:1319 +msgid "Tuesday" +msgstr "Dimarts" + +#: ../templates/selfService/profManage.php:156 +#: ../templates/schema/schema.php:346 +msgid "Type" +msgstr "Tipo" + +#: ../lib/modules/posixAccount.inc:78 +msgid "UID" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:78 +msgid "UID has changed. Do you want to change home directory?" +msgstr "L'UID ha canviat. Vol canviar el directori del usuari?" + +#: ../lib/modules/posixAccount.inc:73 +msgid "UID must be a number. It has to be inside the UID range which is defined in your configuration profile." +msgstr "El UID ha de ser un numero. Ha d'estar dins el rang de UIDs que està definit dins la configuració del perfil." + +#: ../lib/types/host.inc:95 +#: ../lib/types/user.inc:92 +#: ../lib/modules/posixAccount.inc:74 +#: ../lib/modules/posixAccount.inc:216 +#: ../lib/modules/posixAccount.inc:290 +#: ../lib/modules/posixAccount.inc:312 +#: ../lib/modules/posixAccount.inc:329 +#: ../lib/modules/posixAccount.inc:333 +#: ../lib/modules/posixAccount.inc:341 +#: ../lib/modules/posixAccount.inc:950 +#: ../lib/modules/posixAccount.inc:1177 +msgid "UID number" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:74 +#, php-format +msgid "UID number has changed. To keep file ownership you have to run the following command as root: 'find / -uid %s -exec chown %s {} \\;'" +msgstr "El UID ha canviat. Per mantenir els propietaris dels arxius, ha d'executar la següent comanda com a root: 'find / -uid %s -exec chown %s {} \\;'" + +#: ../lib/modules/posixAccount.inc:65 +msgid "UID ranges for Unix accounts" +msgstr "Rangs UID per comptes Unix." + +#: ../lib/modules/sambaSamAccount.inc:282 +msgid "UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced with user and group name." +msgstr "Camí UNC (\\\\servidor\\recurs) del directori del usuari. $user i $group són substituits per nom de usuari i nom del grup." + +#: ../lib/modules/eduPerson.inc:104 +#: ../lib/modules/eduPerson.inc:108 +msgid "URI (either URN or URL) that indicates a set of rights to specific resources." +msgstr "URI (ja sigui URN o URL) que indica un conjunt de permisos d'uns recursos específics." + +#: ../templates/selfService/selfServiceMain.php:264 +msgid "Unable to change your account. Maybe you do not have enough rights to change the settings." +msgstr "No s'ha pogut canviar el compte. Potser no tens suficients permisos per canviar alguns atributs." + +#: ../templates/tests/lamdaemonTest.php:241 +#: ../lib/lamdaemon.inc:88 +#: ../lib/lamdaemon.inc:93 +#: ../lib/lamdaemon.inc:137 +#: ../lib/lamdaemon.inc:142 +msgid "Unable to connect to remote server!" +msgstr "No s'ha pogut connectar al servidor remot." + +#: ../templates/ou_edit.php:77 +msgid "Unable to create new OU!" +msgstr "No s'ha pogut crear la nova OU!" + +#: ../templates/config/profmanage.php:96 +#: ../templates/selfService/profManage.php:82 +msgid "Unable to create new profile!" +msgstr "No s'ha pogut crear el nou perfil!" + +#: ../templates/ou_edit.php:94 +msgid "Unable to delete OU!" +msgstr "No s'ha pogut esborrar la OU!" + +#: ../templates/pdfedit/pdfmain.php:122 +msgid "Unable to delete PDF structure!" +msgstr "No s'ha pogut esborrar la estructura de PDF!" + +#: ../templates/config/profmanage.php:118 +#: ../templates/selfService/profManage.php:110 +#: ../templates/profedit/profilemain.php:111 +msgid "Unable to delete profile!" +msgstr "No s'ha pogut esborrar el perfil!" + +#: ../lib/modules/posixAccount.inc:1364 +#: ../lib/modules/posixAccount.inc:1598 +#: ../lib/modules/nisnetgroup.inc:530 +msgid "Unable to find group in LDAP." +msgstr "No s'ha pogut trovar el grup dins LDAP." + +#: ../templates/login.php:439 +#: ../templates/login.php:445 +msgid "Unable to find the user name in LDAP." +msgstr "No s'ha pogut trobar l'usuari a l'LDAP." + +#: ../lib/modules.inc:1677 +#: ../lib/modules.inc:1681 +msgid "Unable to load LDAP entry:" +msgstr "No s'ha pogut carregar l'entrada:" + +#: ../templates/config/confmain.php:381 +msgid "Unable to load available languages. Setting English as default language. For further instructions please contact the Admin of this site." +msgstr "No s'han pogut trovar els idiomes disponibles. Establint English com a idioma per defecte. Per més instruccions, si us plau, contacteu amb l'administrador del sistema." + +#: ../lib/profiles.inc:91 +#: ../lib/profiles.inc:95 +#: ../lib/selfService.inc:174 +#: ../lib/selfService.inc:178 +msgid "Unable to load profile!" +msgstr "No s'ha pogut carregar el pefil!" + +#: ../templates/lists/changePassword.php:385 +msgid "Unable to read sambaSID attribute." +msgstr "No s'ha pogut llegir l'atribut sambaSID." + +#: ../templates/tests/schemaTest.php:56 +#: ../templates/schema/schema.php:91 +#: ../templates/schema/schema.php:109 +#: ../templates/schema/schema.php:270 +#: ../templates/schema/schema.php:304 +msgid "Unable to retrieve schema!" +msgstr "No s'ha pogut resoldre l'esquema!" + +#: ../templates/selfService/adminMain.php:150 +#: ../templates/profedit/profilepage.php:113 +msgid "Unable to save profile!" +msgstr "No s'ha pogut gravar el perfil!" + +#: ../templates/lists/changePassword.php:341 +msgid "Unable to send mail!" +msgstr "No es pot enviar l'e-mail" + +#: ../templates/lists/changePassword.php:381 +#: ../templates/lists/changePassword.php:396 +msgid "Unable to sync the time when the user can/must change his password because no domain was found." +msgstr "No s'ha pogut sincronitzar el temps en que l'usuari ha de canviar o pot canviar la contrasenya perquè no s'ha trobat cap domini." + +#: ../lib/modules/posixGroup.inc:283 +#: ../lib/modules/posixAccount.inc:127 +msgid "Unix" +msgstr "Unix" + +#: ../templates/tests/lamdaemonTest.php:199 +msgid "Unix account" +msgstr "Compte Unix" + +#: ../templates/lists/changePassword.php:111 +msgid "Unlock Samba account" +msgstr "Desbloquejar compte Samba" + +#: ../lib/modules/posixGroup.inc:191 +#: ../lib/modules/posixAccount.inc:1001 +msgid "Unlock password" +msgstr "Desbloquejar contrasenya" + +#: ../templates/masscreate.php:98 +#: ../templates/config/confmodules.php:359 +msgid "Unsolved dependency:" +msgstr "Dependència no resolta:" + +#: ../templates/pdfedit/pdfpage.php:429 +msgid "Up" +msgstr "Amunt" + +#: ../templates/lists/changePassword.php:114 +msgid "Update Samba password timestamps" +msgstr "Actualitzar temps de modificació de contrasenya Samba" + +#: ../lib/modules/sambaSamAccount.inc:229 +msgid "Update attribute \"sambaPwdLastSet\" on password change" +msgstr "Actualitza l'atribut \"sambaPwdLastSet\" en un canvi de contrasenya" + +#: ../templates/massBuildAccounts.php:199 +msgid "Upload accounts to LDAP" +msgstr "Enviar comptes al LDAP" + +#: ../templates/masscreate.php:225 +msgid "Upload file and create accounts" +msgstr "Enviar arxiu i crear comptes" + +#: ../lib/modules.inc:478 +#, php-format +msgid "Upload was stopped after errors in %s module!" +msgstr "L'enviament s'ha interrumput després de produïr-se errors en el mòdul %s!" + +#: ../templates/schema/schema.php:207 +msgid "Usage" +msgstr "Us" + +#: ../lib/modules/sambaSamAccount.inc:243 +#: ../lib/modules/sambaSamAccount.inc:246 +#: ../lib/modules/sambaSamAccount.inc:404 +msgid "Use Unix password" +msgstr "Utilitzar contrasenya de Unix" + +#: ../lib/modules/sambaSamAccount.inc:249 +#: ../lib/modules/sambaSamAccount.inc:252 +#: ../lib/modules/sambaSamAccount.inc:412 +#: ../lib/modules/sambaSamAccount.inc:1090 +#: ../lib/modules/sambaSamAccount.inc:1548 +msgid "Use no password" +msgstr "No fer servir cap contrasenya" + +#: ../lib/modules/quota.inc:101 +#: ../lib/modules/quota.inc:382 +msgid "Used blocks" +msgstr "Blocs utilitzats" + +#: ../lib/modules/quota.inc:102 +msgid "Used blocks. 1000 blocks are usually 1MB" +msgstr "Blocs utilitzats. 1000 blocs són normalment un Mega." + +#: ../templates/schema/schema.php:266 +msgid "Used by attributes" +msgstr "Utilitzat per atributs" + +#: ../templates/schema/schema.php:235 +msgid "Used by object classes" +msgstr "Utilitzat per tipus d'objectes" + +#: ../lib/modules/sambaDomain.inc:91 +msgid "Used for calculating RIDs from UID/GID. Do not change if unsure." +msgstr "S'utilitza per calcular RIDs a partir dels UID/GID. No ho canvïi si no n'està segur." + +#: ../lib/modules/quota.inc:123 +#: ../lib/modules/quota.inc:386 +msgid "Used inodes" +msgstr "Inodes utilitzats" + +#: ../lib/modules/quota.inc:124 +msgid "Used inodes (files)" +msgstr "Inodes utilitzats(arxius)" + +#: ../lib/modules/sambaGroupMapping.inc:67 +#: ../lib/modules/nisnetgroup.inc:208 +#: ../lib/modules/nisnetgroup.inc:578 +msgid "User" +msgstr "Usuari" + +#: ../lib/types/user.inc:91 +msgid "User ID" +msgstr "ID d'usuari" + +#: ../lib/types/user.inc:62 +msgid "User accounts (e.g. Unix, Samba and Kolab)" +msgstr "Comptes d'usuari (ex. Unix, Samba i Kolab)" + +#: ../lib/modules/sambaSamAccount.inc:273 +#: ../lib/modules/sambaSamAccount.inc:1116 +msgid "User can change password" +msgstr "Usuari pot canviar la contrasenya" + +#: ../lib/modules/posixAccount.inc:371 +msgid "User description. If left empty first and last name will be used." +msgstr "Descripcció del usuari. Si es deixa en blanc, s'utilitzarà el Nom i el Cognom." + +#: ../lib/modules/inetOrgPerson.inc:492 +msgid "User description. If left empty sur- and give name will be used." +msgstr "Descripcció del usuari. Si es deixa en blanc, s'utilitzarà l'apellido i el nom de pila." + +#: ../lib/modules/account.inc:99 +msgid "User description. If left empty user name will be used." +msgstr "Descripció de l'usuari. Si es deixa en blanc, s'utilitzarà el nom de l'usuari." + +#: ../templates/schema/schema.php:202 +msgid "User modification" +msgstr "Modificació del usuari" + +#: ../lib/modules/sambaSamAccount.inc:275 +#: ../lib/modules/sambaSamAccount.inc:1122 +msgid "User must change password" +msgstr "Usuari ha de canviar contrasenya" + +#: ../templates/lists/changePassword.php:145 +#: ../templates/login.php:241 +#: ../lib/types/alias.inc:91 +#: ../lib/types/user.inc:94 +#: ../lib/modules/account.inc:78 +#: ../lib/modules/account.inc:94 +#: ../lib/modules/account.inc:116 +#: ../lib/modules/account.inc:118 +#: ../lib/modules/account.inc:119 +#: ../lib/modules/account.inc:201 +#: ../lib/modules/account.inc:223 +#: ../lib/modules/account.inc:247 +#: ../lib/modules/uidObject.inc:38 +#: ../lib/modules/uidObject.inc:60 +#: ../lib/modules/uidObject.inc:69 +#: ../lib/modules/uidObject.inc:78 +#: ../lib/modules/uidObject.inc:93 +#: ../lib/modules/uidObject.inc:155 +#: ../lib/modules/posixAccount.inc:79 +#: ../lib/modules/posixAccount.inc:80 +#: ../lib/modules/posixAccount.inc:83 +#: ../lib/modules/posixAccount.inc:202 +#: ../lib/modules/posixAccount.inc:311 +#: ../lib/modules/posixAccount.inc:366 +#: ../lib/modules/posixAccount.inc:938 +#: ../lib/modules/posixAccount.inc:1175 +#: ../lib/modules/nisnetgroup.inc:137 +#: ../lib/modules/nisnetgroup.inc:458 +#: ../lib/modules/inetOrgPerson.inc:70 +#: ../lib/modules/inetOrgPerson.inc:484 +#: ../lib/modules/inetOrgPerson.inc:551 +#: ../lib/modules/inetOrgPerson.inc:822 +#: ../lib/modules/inetOrgPerson.inc:1140 +#: ../lib/modules/inetOrgPerson.inc:1198 +msgid "User name" +msgstr "Nom del usuari" + +#: ../lib/modules/posixAccount.inc:87 +#: ../lib/modules/inetOrgPerson.inc:72 +msgid "User name already exists!" +msgstr "Aquest nom d'usuari ja existeix!" + +#: ../lib/modules/account.inc:116 +#: ../lib/modules/account.inc:117 +#: ../lib/modules/account.inc:119 +#: ../lib/modules/uidObject.inc:78 +#: ../lib/modules/posixAccount.inc:80 +#: ../lib/modules/posixAccount.inc:85 +#: ../lib/modules/nisnetgroup.inc:137 +#: ../lib/modules/inetOrgPerson.inc:70 +#: ../lib/modules/inetOrgPerson.inc:71 +msgid "User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !" +msgstr "El nom d'usuari conté caràcters invàlids. Els caràcters vàlids són: a-z, A-Z, 0-9 i .-_!" + +#: ../lib/modules/posixAccount.inc:83 +msgid "User name in use. Selected next free user name." +msgstr "El nom d'usuari està en ús. S'ha agafat el pròxim lliure." + +#: ../lib/modules/account.inc:95 +#: ../lib/modules/posixAccount.inc:367 +#: ../lib/modules/inetOrgPerson.inc:552 +msgid "User name of the user who should be created. Valid characters are: a-z,A-Z,0-9, .-_. If user name is already used user name will be expanded with a number. The next free number will be used. Warning: Older systems have problems with user names longer than 8 characters. You can not log in to Windows if user name is longer than 16 characters." +msgstr "Nom del usuari que s'ha de crear. Els caràcters vàlids són: a-z,A-Z,0-9,.-_. Si el nom d'usuari especificat ja existeix, el nom d'usuari s'ampliarà amb un nombre (el següent lliure). Atenció, els sistemes antics poden tenir problemes amb noms de més de 8 caràcters. No podràs entrar a Windows si el nom d'usuari és de més de 16 caràcters." + +#: ../lib/types/sudo.inc:78 +msgid "User(s)" +msgstr "Usuari(s)" + +#: ../lib/types/user.inc:53 +#: ../lib/modules/asteriskAccount.inc:102 +#: ../lib/modules/posixAccount.inc:59 +#: ../lib/modules/posixAccount.inc:60 +#: ../lib/modules/posixAccount.inc:63 +#: ../lib/modules/posixAccount.inc:162 +#: ../lib/modules/sudoRole.inc:63 +#: ../lib/modules/sudoRole.inc:87 +#: ../lib/modules/sudoRole.inc:134 +#: ../lib/modules/sudoRole.inc:173 +#: ../lib/modules/sudoRole.inc:182 +#: ../lib/modules/sudoRole.inc:285 +#: ../lib/modules/sudoRole.inc:708 +msgid "Users" +msgstr "Usuaris" + +#: ../lib/modules/posixGroup.inc:388 +msgid "Users who are member of the current group. Users who have set their primary group to this group will not be shown." +msgstr "Usuaris que són membres del grup actual. Els usuaris que tenen com a grup primari aquest grup no es mostraran." + +#: ../lib/modules/posixGroup.inc:392 +msgid "Users who will become member of the current group. User names are separated by semicolons." +msgstr "Usuaris que esdevindràn membres del grup actual. Els noms d'usuari s'han de separar mitjançant comes." + +#: ../templates/tests/lamdaemonTest.php:191 +#, php-format +msgid "Using %s as lamdaemon remote server." +msgstr "Fent servir %s com a servidor de lamdaemon remot." + +#: ../templates/tests/lamdaemonTest.php:212 +#, php-format +msgid "Using %s to connect to remote server." +msgstr "Fent servir %s per connectar al servidor remot." + +#: ../templates/tree/creation_template.php:86 +msgid "Using template:" +msgstr "Utilitzant plantilla:" + +#: ../lib/modules/posixAccount.inc:326 +msgid "Usually, users are not added to groups as memberUid if they have this group as primary group. If your application ignores primary groups then you can select this option to override this behaviour." +msgstr "Normalment, els usuaris no s'afegeixen com a membres d'un grup si tenen aquest grup com a primari. Si una aplicació no fa cas dels grups primaris pots marcar aquesta opció per evitar el problema." + +#: ../help/help.inc:87 +msgid "Valid users" +msgstr "Usuaris vàlids" + +#: ../templates/serverInfo.php:116 +msgid "Vendor name" +msgstr "Nom del distribuïdor" + +#: ../templates/serverInfo.php:121 +msgid "Vendor version" +msgstr "Versió del distribuïdor" + +#: ../lib/modules/asteriskVoicemail.inc:106 +#: ../lib/modules/asteriskVoicemail.inc:117 +#: ../lib/modules/asteriskVoicemail.inc:139 +#: ../lib/modules/asteriskVoicemail.inc:192 +#: ../lib/modules/asteriskVoicemail.inc:261 +#: ../lib/modules/asteriskVoicemail.inc:376 +msgid "Voicemail context" +msgstr "Context de veu i correu." + +#: ../lib/modules/asteriskVoicemail.inc:83 +msgid "Voicemail mailbox for this account." +msgstr "Bústia de veu i correu per aquest compte." + +#: ../templates/login.php:180 +msgid "Want more features? Get LAM Pro!" +msgstr "Vols més funcions? Prova LAM Pro!" + +#: ../templates/config/mainmanage.php:267 +msgid "Warning" +msgstr "Alerta" + +#: ../templates/delete.php:194 +#: ../lib/modules.inc:1972 +#, php-format +msgid "Was unable to add attribtues to DN: %s." +msgstr "No s'han pogut afegir atributs al DN: %s." + +#: ../lib/modules.inc:1942 +#, php-format +msgid "Was unable to create DN: %s." +msgstr "No s'ha pogut crear el DN: %s." + +#: ../templates/tree/delete.php:113 +#: ../templates/delete.php:270 +#: ../templates/delete.php:278 +#, php-format +msgid "Was unable to delete DN: %s." +msgstr "No s'ha pogut esborrar el DN: %s." + +#: ../templates/tree/update.php:109 +#: ../templates/tree/add_oclass.php:93 +#: ../templates/tree/add_oclass_form.php:162 +#: ../templates/delete.php:186 +#: ../lib/modules.inc:1960 +#, php-format +msgid "Was unable to modify attribtues from DN: %s." +msgstr "No s'han pogut modificar els atributs del DN: %s." + +#: ../templates/lists/changePassword.php:422 +#, php-format +msgid "Was unable to modify attributes from DN: %s." +msgstr "No s'han pogut modificar els atributs del DN: %s." + +#: ../templates/delete.php:202 +#: ../lib/modules.inc:1984 +#, php-format +msgid "Was unable to remove attribtues from DN: %s." +msgstr "No s'han pogut esborrar atributs del DN: %s." + +#: ../lib/modules.inc:1923 +#, php-format +msgid "Was unable to rename DN: %s." +msgstr "No s'ha pogut reanomenar el DN: %s." + +#: ../lib/modules/sambaSamAccount.inc:1319 +msgid "Wednesday" +msgstr "Dimecres" + +#: ../lib/modules/sambaSamAccount.inc:541 +msgid "Western Europe Time, London, Lisbon" +msgstr "Western Europe Time, London, Lisbon" + +#: ../help/help.inc:69 +msgid "When using ldaps:// or TLS be sure to use exactly the same IP/domain name as in your certificate!" +msgstr "Quan utilitzi ldaps:// o TLS asseguri's d'utilitzar el mateix nom de domini o IP que el que consta en el seu certificat" + +#: ../lib/modules/sambaSamAccount.inc:313 +msgid "Windows domain name of account." +msgstr "Nom del domini de windows del compte." + +#: ../lib/modules/sambaSamAccount.inc:191 +#: ../lib/modules/sambaSamAccount.inc:443 +#: ../lib/modules/sambaSamAccount.inc:1208 +#: ../lib/modules/sambaSamAccount.inc:1635 +#: ../lib/modules/sambaSamAccount.inc:1784 +#: ../lib/modules/sambaGroupMapping.inc:256 +#: ../lib/modules/sambaGroupMapping.inc:310 +#: ../lib/modules/sambaGroupMapping.inc:387 +msgid "Windows group" +msgstr "Grup de Windows" + +#: ../lib/modules/sambaGroupMapping.inc:359 +msgid "Windows group name" +msgstr "Nom del grup de Windows" + +#: ../lib/modules/sambaGroupMapping.inc:372 +msgid "Windows group type." +msgstr "Tipo de grup de Windows." + +#: ../lib/modules/sambaSamAccount.inc:370 +msgid "Windows password hashes are saved by default as NT and LM hashes. LM hashes are insecure and only needed for old versions of Windows. You should disable them unless you really need them." +msgstr "Els passwords de Windows normalment es guarden com hashos NT i LM. Els LM són insegurs i només els necessiten versions antigues de Windows. L'hauries de desactivar a menys que el necessitis de debò." + +#: ../lib/modules/sambaSamAccount.inc:296 +msgid "Windows primary group" +msgstr "Grup primari de Windows" + +#: ../lib/modules/sambaSamAccount.inc:299 +msgid "Windows primary group SID" +msgstr "SID del grup primari de Windows" + +#: ../lib/modules/sambaGroupMapping.inc:368 +msgid "Windows-Domain name of group." +msgstr "Nom del grup dins Windows" + +#: ../lib/modules/sambaDomain.inc:139 +msgid "Workgroup" +msgstr "Grup de treball" + +#: ../lib/modules/sambaSamAccount.inc:215 +#: ../lib/modules/sambaSamAccount.inc:342 +#: ../lib/modules/sambaSamAccount.inc:1461 +#: ../lib/modules/sambaSamAccount.inc:1804 +msgid "Working directory" +msgstr "Directori de treball" + +#: ../lib/modules/sambaSamAccount.inc:343 +msgid "Working directory of initial program." +msgstr "Directori de treball del programa inicial." + +#: ../templates/config/confmain.php:435 +msgid "Write" +msgstr "Escriure" + +#: ../templates/config/confmain.php:320 +#: ../templates/config/confmain.php:323 +msgid "Write access" +msgstr "Accés d'escriptura" + +#: ../templates/login.php:427 +#: ../templates/login.php:485 +#: ../templates/selfService/selfServiceLogin.php:98 +#: ../templates/selfService/selfServiceLogin.php:116 +msgid "Wrong password/user name combination. Please try again." +msgstr "Combinació Usuari/Contrasenya incorrecte. Provi de nou." + +#: ../templates/schema/schema.php:151 +#: ../templates/schema/schema.php:193 +#: ../templates/schema/schema.php:198 +#: ../templates/schema/schema.php:203 +msgid "Yes" +msgstr "Si" + +#: ../lib/modules/posixGroup.inc:474 +msgid "You are using a capital letters. This can cause problems because Windows isn't case-sensitive." +msgstr "Està utilitzant majúscules. Això pot causar problemes perquè windows no diferencia majúscules de minúscules." + +#: ../lib/modules/account.inc:118 +msgid "You are using a capital letters. This can cause problems because windows isn't case-sensitive." +msgstr "Està utilitzant majúscules. Això pot causar problemes perquè windows no diferencia majúscules de minúscules." + +#: ../lib/modules/posixAccount.inc:79 +#: ../lib/modules/posixAccount.inc:81 +msgid "You are using capital letters. This can cause problems because Windows is not case-sensitive." +msgstr "Està utilitzant majúscules. Això pot causar problemes perquè windows no diferencia majúscules de minúscules." + +#: ../help/help.inc:103 +msgid "You can specify if LAM allows full write access, password changes or only read access." +msgstr "Especifica si LAM permet accés complet d'escriptura, canvis de contrasenya o només accés de lectura." + +#: ../help/help.inc:195 +msgid "You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. @@uid@@ for the user name)." +msgstr "Pots fer servir comodins per els atributs LDAP de la forma @@attribute@@ (ex. @@uid@@ pel nom d'usuari)." + +#: ../lib/modules/customScripts.inc:58 +#: ../lib/modules/customScripts.inc:70 +msgid "You can use wildcards in the format $wildcard$ which are replaced by the LDAP attribute with the same name. For multi-value attributes the values will be separated by commas." +msgstr "Pots fer servir comodins en format $wildcard$ i serà substituït per l'atribut LDAP amb el mateix nom. Per atributs multi valor, els valors han d'anar separats per comes." + +#: ../templates/tree/templates/creation/custom.php:106 +msgid "You did not select any object classes for this object. Please go back and do so." +msgstr "No has sel·leccionat cap clase d'objecte per aquest objecte. Si us plau, torna enrere i sel·lecciona'n un." + +#: ../templates/tests/schemaTest.php:56 +msgid "You do not have the required access rights or the LDAP schema is not published by your server." +msgstr "No tens els permisos d'accés suficients o l'esquema d'LDAP no està importat pel servidor." + +#: ../lib/modules/dhcp_settings.inc:304 +#: ../lib/modules/dhcp_settings.inc:305 +msgid "You entered one or more invalid DNS servers." +msgstr "Has escrit servidors DNS invàlids." + +#: ../templates/lists/changePassword.php:285 +msgid "You have to activate the \"I am sure\" checkbox." +msgstr "Has d'activar el camp \"Estic segur\" per continuar." + +#: ../templates/tree/add_attr.php:79 +msgid "You left the attribute value blank. Please go back and try again." +msgstr "Has deixat l'atribut en blanc. Si us plau, ves enrera i torna-ho a provar." + +#: ../templates/tree/create.php:85 +#, php-format +msgid "You left the value blank for required attribute: %s." +msgstr "Ha deixat en blanc un atribut obligatori: %s." + +#: ../templates/tree/update_confirm.php:254 +msgid "You made no changes." +msgstr "No has fet canvis." + +#: ../lib/modules/groupOfNames.inc:124 +#: ../lib/modules/groupOfNames.inc:125 +msgid "You need to add at least one member to this group." +msgstr "Afegeix almenys un membre a aquest grup." + +#: ../templates/tests/lamdaemonTest.php:216 +#, php-format +msgid "Your LAM admin user (%s) must be a valid Unix account to work with lamdaemon!" +msgstr "L'usuari administrador de LAM (%s), ha de tenir un compte d'Unix vàlid per executar correctament lamdaemon!" + +#: ../lib/lamdaemon.inc:60 +#: ../lib/lamdaemon.inc:65 +#: ../lib/lamdaemon.inc:122 +#: ../lib/lamdaemon.inc:127 +msgid "Your LAM admin user must be a valid Unix account to work with lamdaemon!" +msgstr "L'usuari administrador de LAM, ha de tenir un compte d'Unix vàlid per executar correctament lamdaemon!" + +#: ../templates/tree/add_attr_form.php:165 +msgid "Your PHP configuration has disabled file uploads. Please check php.ini before proceeding." +msgstr "La configuració de PHP no permet pujada de fitxers. Comprova php.ini abans de continuar." + +#: ../lib/security.inc:145 +msgid "Your session expired, click here to go back to the login page." +msgstr "La sessió ha caducat, fes clic per tornar a la pàgina d'entrada." + +#: ../templates/login.php:206 +msgid "Your session expired, please log in again." +msgstr "La sessió ha caducat, torna a entrar." + +#: ../templates/login.php:211 +#: ../templates/login.php:216 +#: ../templates/selfService/adminMain.php:139 +msgid "Your settings were successfully saved." +msgstr "Els canvis han estat satisfactoris." + +#: ../lib/modules/inetOrgPerson.inc:412 +msgid "YourCompany, Human Resources" +msgstr "NomCompanyia,Recursos Humans" + +#: ../lib/modules/ddns.inc:99 +#: ../lib/modules/ddns.inc:108 +#: ../lib/modules/ddns.inc:123 +#: ../lib/modules/ddns.inc:379 +#: ../lib/modules/ddns.inc:412 +msgid "Zone names" +msgstr "Noms de zona" + +#: ../lib/modules/ddns.inc:100 +msgid "Zone names for the DNS server (e.g. company.local)." +msgstr "Noms de zones del servidor DNS (ex. db.companyia.local)" + +#: ../templates/tree/update_confirm.php:192 +#: ../templates/tree/update_confirm.php:204 +msgid "[attribute deleted]" +msgstr "[atribut esborrat]" + +#: ../lib/modules/sambaSamAccount.inc:469 +msgid "\\\\server\\homes\\smiller" +msgstr "\\\\server\\homes\\smiller" + +#: ../lib/modules/sambaSamAccount.inc:477 +msgid "\\\\server\\profiles\\smiller" +msgstr "\\\\server\\profiles\\smiller" + +#: ../lib/modules/phpGroupwareUser.inc:164 +#: ../lib/modules/phpGroupwareUser.inc:334 +msgid "active" +msgstr "actiu" + +#: ../templates/tree/edit.php:494 +msgid "add value" +msgstr "afegir valor" + +#: ../lib/modules/posixGroup.inc:360 +#: ../lib/modules/nisnetgroup.inc:99 +#: ../lib/modules/groupOfNames.inc:86 +msgid "adminstrators" +msgstr "administradors" + +#: ../lib/modules/sudoRole.inc:123 +msgid "backupRootFileSystem" +msgstr "backupRootFileSystem" + +#: ../templates/schema/schema.php:218 +msgid "character" +msgstr "caràcter" + +#: ../templates/schema/schema.php:217 +msgid "characters" +msgstr "caràcters" + +#: ../help/help.inc:81 +msgid "dc=yourcompany,dc=com" +msgstr "dc=yourcompany,dc=com" + +#: ../lib/modules/ppolicyUser.inc:88 +#: ../lib/modules/ppolicyUser.inc:96 +#: ../lib/modules/ppolicyUser.inc:114 +#: ../lib/modules/ppolicyUser.inc:158 +msgid "default" +msgstr "per defecte" + +#: ../templates/tree/edit.php:314 +msgid "delete attribute" +msgstr "esborrar atribut" + +#: ../lib/modules/sambaSamAccount.inc:1496 +#: ../lib/modules/sambaSamAccount.inc:1824 +msgid "disabled" +msgstr "desactivat" + +#: ../lib/modules/sambaSamAccount.inc:1508 +#: ../lib/modules/sambaSamAccount.inc:1835 +msgid "disconnect" +msgstr "desconnecta" + +#: ../templates/tree/edit.php:179 +#: ../templates/tree/edit.php:181 +#: ../templates/tree/edit.php:308 +#: ../templates/tree/edit.php:310 +#: ../templates/tree/add_value_form.php:107 +#: ../templates/tree/add_value_form.php:110 +msgid "download value" +msgstr "valor d'envio" + +#: ../templates/tree/edit.php:391 +msgid "false" +msgstr "fals" + +#: ../lib/modules/ppolicy.inc:36 +msgid "force" +msgstr "forçar" + +#: ../lib/modules/sambaSamAccount.inc:1517 +#: ../lib/modules/sambaSamAccount.inc:1843 +msgid "from any client" +msgstr "des de qualsevol client" + +#: ../lib/modules/sambaSamAccount.inc:1518 +#: ../lib/modules/sambaSamAccount.inc:1844 +msgid "from previous client only" +msgstr "només des de clients anteriors" + +#: ../lib/modules/posixAccount.inc:231 +#: ../lib/modules/nisnetgroup.inc:113 +msgid "group01,group02" +msgstr "group01,group02" + +#: ../lib/modules/quota.inc:187 +#: ../lib/modules/quota.inc:189 +msgid "hours" +msgstr "hores" + +#: ../lib/modules/phpGroupwareUser.inc:164 +#: ../lib/modules/phpGroupwareUser.inc:337 +msgid "inactive" +msgstr "Compte inactiu" + +#: ../lib/modules/sambaSamAccount.inc:1500 +#: ../lib/modules/sambaSamAccount.inc:1828 +msgid "input off, notify off" +msgstr "entrada desactivat, avís desactivat" + +#: ../lib/modules/sambaSamAccount.inc:1499 +#: ../lib/modules/sambaSamAccount.inc:1827 +msgid "input off, notify on" +msgstr "entrada desactivat, avís activat" + +#: ../lib/modules/sambaSamAccount.inc:1498 +#: ../lib/modules/sambaSamAccount.inc:1826 +msgid "input on, notify off" +msgstr "entrada activat, avís desactivat" + +#: ../lib/modules/sambaSamAccount.inc:1497 +#: ../lib/modules/sambaSamAccount.inc:1825 +msgid "input on, notify on" +msgstr "entrada activat, avís desactivat" + +#: ../lib/tree.inc:1175 +msgid "jpegPhoto contains errors" +msgstr "jpegPhoto conté errors" + +#: ../help/help.inc:63 +msgid "ldap://localhost:389 connects to localhost using a standard LDAP connection on port 389" +msgstr "ldap://locahost:389 conecta amb la mateixa màquina mitjançant una conexió ldap estàndard al port 389." + +#: ../help/help.inc:65 +msgid "ldaps://ldap.domain.com connects to ldap.domain.com using an encrypted LDAP connection." +msgstr "ldaps://ldap.domain.com es connecta a ldap.domain.com utilitzant una connexió encriptada." + +#: ../lib/modules/posixAccount.inc:298 +msgid "machines" +msgstr "màquines" + +#: ../lib/modules/inetLocalMailRecipient.inc:110 +msgid "mail.yourdomain.org" +msgstr "mail.elteudomini.org" + +#: ../lib/modules/sambaSamAccount.inc:388 +#: ../lib/modules/sambaSamAccount.inc:512 +msgid "mydomain" +msgstr "mydomain" + +#: ../lib/modules/sambaSamAccount.inc:445 +msgid "mygroup" +msgstr "mygroup" + +#: ../templates/config/confmain.php:244 +#: ../templates/config/confmain.php:248 +#: ../lib/modules/sambaSamAccount.inc:563 +#: ../lib/modules/sambaSamAccount.inc:1792 +#: ../lib/modules/sambaSamAccount.inc:1800 +#: ../lib/modules/sambaSamAccount.inc:1810 +#: ../lib/modules/sambaSamAccount.inc:1815 +#: ../lib/modules/sambaSamAccount.inc:1820 +#: ../lib/modules/ppolicy.inc:34 +#: ../lib/modules/ppolicy.inc:487 +#: ../lib/modules/ppolicy.inc:503 +#: ../lib/modules/ppolicy.inc:508 +#: ../lib/modules/ppolicy.inc:515 +#: ../lib/modules/ppolicy.inc:518 +msgid "no" +msgstr "no" + +#: ../templates/tree/templates/creation/custom.php:189 +#: ../templates/tree/templates/creation/custom.php:212 +#: ../templates/schema/schema.php:158 +#: ../templates/schema/schema.php:227 +#: ../templates/schema/schema.php:238 +#: ../templates/schema/schema.php:287 +#: ../templates/schema/schema.php:353 +#: ../templates/schema/schema.php:368 +#: ../templates/schema/schema.php:402 +#: ../templates/schema/schema.php:424 +msgid "none" +msgstr "cap" + +#: ../templates/tree/edit.php:392 +msgid "none, remove value" +msgstr "cap, elimina el valor" + +#: ../templates/schema/schema.php:214 +msgid "not applicable" +msgstr "no aplica" + +#: ../templates/schema/schema.php:165 +#: ../templates/schema/schema.php:170 +#: ../templates/schema/schema.php:175 +#: ../templates/schema/schema.php:208 +msgid "not specified" +msgstr "Sense especificar" + +#: ../help/help.inc:75 +msgid "ou=People,dc=yourcompany,dc=com will read and store all accounts in this subtree." +msgstr "ou=People,dc=Empresa,dc=com guardarà tots els seus comptes en aquest subarbre." + +#: ../templates/masscreate.php:249 +#: ../lib/modules/eduPerson.inc:182 +#: ../lib/modules/eduPerson.inc:188 +#: ../lib/modules/eduPerson.inc:194 +msgid "ou=accounts,dc=yourdomain,dc=org" +msgstr "ou=accounts,dc=yourdomain,dc=org" + +#: ../lib/modules/posixAccount.inc:284 +msgid "pc01$" +msgstr "pc01$" + +#: ../lib/modules/posixAccount.inc:305 +msgid "pc01,Room 2.34" +msgstr "pc01, Room 2.34" + +#: ../lib/modules/hostObject.inc:86 +msgid "pc01,pc02" +msgstr "pc01,pc02" + +#: ../templates/tree/edit.php:246 +#: ../templates/config/confmain.php:531 +#: ../templates/selfService/adminMain.php:616 +msgid "required" +msgstr "obligatori" + +#: ../lib/modules/sambaSamAccount.inc:1509 +#: ../lib/modules/sambaSamAccount.inc:1836 +msgid "reset" +msgstr "reset" + +#: ../lib/modules/asteriskAccount.inc:158 +#: ../lib/modules/posixGroup.inc:351 +#: ../lib/modules/sambaSamAccount.inc:400 +#: ../lib/modules/posixAccount.inc:259 +#: ../lib/modules/asteriskVoicemail.inc:163 +msgid "secret" +msgstr "secret" + +#: ../lib/modules/uidObject.inc:62 +#: ../lib/modules/posixAccount.inc:204 +#: ../lib/modules/inetOrgPerson.inc:1200 +#: ../lib/modules/nisMailAlias.inc:91 +msgid "smiller" +msgstr "smiller" + +#: ../lib/modules/inetLocalMailRecipient.inc:98 +msgid "smiller@otherdomain.org" +msgstr "smiller@altredomini.org" + +#: ../lib/modules/inetLocalMailRecipient.inc:104 +msgid "smiller@yourdomain.org" +msgstr "smiller@teudomini.org" + +#: ../lib/modules/ldapPublicKey.inc:76 +msgid "ssh-dss 234234 user@host" +msgstr "ssh-dss 234234 user@host" + +#: ../templates/tree/edit.php:437 +msgid "structural" +msgstr "estructural" + +#: ../lib/modules/asteriskExtension.inc:180 +msgid "test" +msgstr "prova" + +#: ../lib/modules/asteriskExtension.inc:174 +msgid "test-start" +msgstr "test-inici" + +#: ../templates/tree/edit.php:389 +msgid "true" +msgstr "verdader" + +#: ../lib/modules/ipHost.inc:92 +#: ../lib/modules/inetOrgPerson.inc:284 +#: ../lib/modules/aliasEntry.inc:64 +msgid "uid=smiller,ou=People,dc=company,dc=com" +msgstr "uid=smiller,ou=People,dc=company,dc=com" + +#: ../lib/modules/posixGroup.inc:345 +msgid "user01,user02,user03" +msgstr "user01,user02,user03" + +#: ../lib/modules/eduPerson.inc:143 +#: ../lib/modules/inetOrgPerson.inc:364 +#: ../lib/modules/asteriskVoicemail.inc:176 +msgid "user@company.com" +msgstr "usuari@empresa.com" + +#: ../lib/modules/posixAccount.inc:224 +msgid "users" +msgstr "usuaris" + +#: ../templates/config/confmain.php:243 +#: ../templates/config/confmain.php:247 +#: ../lib/modules/sambaSamAccount.inc:562 +#: ../lib/modules/sambaSamAccount.inc:1790 +#: ../lib/modules/sambaSamAccount.inc:1798 +#: ../lib/modules/sambaSamAccount.inc:1808 +#: ../lib/modules/sambaSamAccount.inc:1813 +#: ../lib/modules/sambaSamAccount.inc:1818 +#: ../lib/modules/ppolicy.inc:35 +#: ../lib/modules/ppolicy.inc:505 +#: ../lib/modules/ppolicy.inc:510 +#: ../lib/modules/ppolicy.inc:513 +#: ../lib/modules/ppolicy.inc:520 +#: ../lib/modules/inetOrgPerson.inc:404 +msgid "yes" +msgstr "si" + +#~ msgid "Back to OU-Editor" +#~ msgstr "Tornar al editor de OU" +#~ msgid "Back to PDF Editor" +#~ msgstr "Tornar al Editor de PDF" +#~ msgid "Back to login" +#~ msgstr "Tornar a l'inici de sessió" +#~ msgid "Back to profile editor" +#~ msgstr "Tornar a l'editor de perfils" +#~ msgid "Delete operation canceled." +#~ msgstr "S'ha cancel·lat l'operació d'esborrat." +#~ msgid "Link to login page for this self service profile" +#~ msgstr "Enllaç a la pàgina d'accés per aquest perfil d'autoservei" +#~ msgid "Mode" +#~ msgstr "Mode" +#~ msgid "" +#~ "Please enter a comma separated list of host names where this user is " +#~ "allowed to log in. If you enable host restrictions for your servers then " +#~ "\"*\" means every host and an empty field means no host." +#~ msgstr "" +#~ "Escriu una llista separada per comes de estacions de treball de Unix en " +#~ "les que l'usuari pot entrar al sistema. Si actives restriccions " +#~ "d'estacions per els teus servidors llavors \"*\" vol dir totes les " +#~ "estacions i un camp en blanc vol dir cap estació." +#~ msgid "Please enter a valid path." +#~ msgstr "Introdueix un camí vàlid." +#~ msgid "Please enter the mount point for this entry (e.g. /home)." +#~ msgstr "Introdueix el punt de muntatge per aquesta entrada (ex. /home)." +#~ msgid "" +#~ "Please install the SSH2 module for PHP and activate it in your php.ini!" +#~ msgstr "Instal·la el mòdul SSH2 per PHP i activa'l al teu fitxer php.ini!" +#~ msgid "SSH2 module" +#~ msgstr "Mòdul SSH2" +#~ msgid "SSH2 module is installed." +#~ msgstr "El mòdul d'SSH2 s'ha instal·lat." +#~ msgid "Scope" +#~ msgstr "Scope" +#~ msgid "Sudo is not setup correctly!" +#~ msgstr "Sudo no està correctament configurat!" +#~ msgid "Unix workstations" +#~ msgstr "Estacions de treball Unix" +#~ msgid "Unix workstations are invalid!" +#~ msgstr "Estacioins de treball Unix no són vàlides." +#~ msgid "Unknown error" +#~ msgstr "Error desconegut" +#~ msgid "You have been logged off from LDAP Account Manager." +#~ msgstr "Ha estat desonectat de LDAP Account Manager." +#~ msgid "Add Samba 3 account" +#~ msgstr "Afegir compte Samba 3" +#~ msgid "Delete PDF structure" +#~ msgstr "Esborrar estructura de PDF" +#~ msgid "Donate" +#~ msgstr "Donacions" +#~ msgid "Please enter the same password in both password-fields." +#~ msgstr "Si us plau, entreu la mateixa contrasenya en ambdós camps." +#~ msgid "Please select your account type:" +#~ msgstr "Si us plau, sel·leccioneu tipo de compte:" +#~ msgid "Script settings" +#~ msgstr "Configuració de Scripts" +#~ msgid "The net mask was invalid and was corrected." +#~ msgstr "La màscara era incorrecte i s'ha corregit." +#~ msgid "The netmask was set." +#~ msgstr "S'ha configurat la mascara de xarxa." +#~ msgid "" +#~ "This is the number of seconds after when the user may or has to change " +#~ "his password." +#~ msgstr "" +#~ "Temps en segons que han de passar perquè l'usuari hagi de canviar la seva " +#~ "contrasenya." +#~ msgid "Update attribute \"sambaPwdCanChange\" on password change" +#~ msgstr "" +#~ "Actualitza l'atribut \"sambaPwdCanChange\" en un canvi de contrasenya." +#~ msgid "Update attribute \"sambaPwdMustChange\" on password change" +#~ msgstr "" +#~ "Actualitza l'atribut \"sambaPwdMustChange\" en un canvi de contrasenya" +#~ msgid "User can/must change password" +#~ msgstr "L'usuari pot/ha de canviar la contrasenya" +#~ msgid "Abort" +#~ msgstr "Abortar" +#~ msgid "Account lists - Filters" +#~ msgstr "Llistat de comptes - Filtres" +#~ msgid "Add section or static text" +#~ msgstr "Afegir secció o text estàtic" +#~ msgid "Algorithmic RID Base" +#~ msgstr "Base RID del algoritme" +#~ msgid "Apply" +#~ msgstr "Aplicar" +#~ msgid "Attributes in Group List" +#~ msgstr "Atributs en la llista de grups" +#~ msgid "Attributes in Host List" +#~ msgstr "Atributs en la llista de màquines" +#~ msgid "Attributes in User List" +#~ msgstr "Atributs en la llista de usuaris" +#~ msgid "Available PDF fields" +#~ msgstr "Camps del PDF disponibles" +#~ msgid "Back to preferences..." +#~ msgstr "Tornar a les preferencies..." +#~ msgid "Changed value %s because only numeric values are allowed." +#~ msgstr "S'ha canviat el valor %s perquè només s'admetien valors numèrics." +#~ msgid "Configuration wizard" +#~ msgstr "Assitent de configuració" +#~ msgid "Create Account" +#~ msgstr "Crear compte" +#~ msgid "Create PDF for all groups" +#~ msgstr "Crear PDF per tots els grups" +#~ msgid "Create PDF for all hosts" +#~ msgstr "Crear PDF per totes les màquines" +#~ msgid "Create PDF for all users" +#~ msgstr "Crear PDF per tots els usuaris" +#~ msgid "Create PDF for selected group(s)" +#~ msgstr "Crear PDF pels grups seleccionats" +#~ msgid "Create PDF for selected host(s)" +#~ msgstr "Crear PDF per les màquines seleccionades" +#~ msgid "Create PDF for selected user(s)" +#~ msgstr "Crear PDF pels usuaris seleccionats" +#~ msgid "Create group accounts" +#~ msgstr "Crear comptes de grup" +#~ msgid "Create host accounts" +#~ msgstr "Crear comptes de màquina" +#~ msgid "Create new Account" +#~ msgstr "Crear nou compte" +#~ msgid "Create user accounts" +#~ msgstr "Crear comptes de usuari" +#~ msgid "Do you really want to delete domain(s):" +#~ msgstr "Confirma que vol esborrar el(s) domini(s):" +#~ msgid "Domain Settings" +#~ msgstr "Preferències del domini" +#~ msgid "Domain deleted successfully." +#~ msgstr "Domini esborrat satisfactòriament" +#~ msgid "Domain has been modified." +#~ msgstr "El domini ha estat modificat." +#~ msgid "DomainSuffix" +#~ msgstr "DomainSuffix" +#~ msgid "Domains" +#~ msgstr "Dominis" +#~ msgid "Drive letter assigned on windows workstations as homedirectory." +#~ msgstr "" +#~ "Lletra de la unitat assignada pel Windows com a directori del usuari." +#~ msgid "Edit PDF structure" +#~ msgstr "Editar estructura de PDF" +#~ msgid "Edit logon hours" +#~ msgstr "Editar hores d'inici de sessió" +#~ msgid "Edit modules" +#~ msgstr "Editar mòduls" +#~ msgid "Failed to add domain!" +#~ msgstr "Fallo al afegir domini!" +#~ msgid "Failed to modify domain!" +#~ msgstr "Fallo al modificar domini!" +#~ msgid "" +#~ "File name and path relative to the netlogon-share which should be " +#~ "executed on logon. $user and $group are replaced with user and group name." +#~ msgstr "" +#~ "Nom i camí de l'arxiu a executar al inici de sessió. El camí es relatiu " +#~ "respecte al recurs \"netlogon\". $user i $group seràn subtituïts amb el " +#~ "nom del usuari i el grup respectivament." +#~ msgid "GID ranges for Unix groups" +#~ msgstr "Rangs GID per grups Unix" +#~ msgid "Group information page" +#~ msgstr "Pàgina d'informació del grup" +#~ msgid "Group list attributes are invalid!" +#~ msgstr "La llista d'atributs del grup és invàlida!" +#~ msgid "Group modules" +#~ msgstr "Mòduls de grup" +#~ msgid "Group profiles" +#~ msgstr "Perfils de grup" +#~ msgid "GroupSuffix" +#~ msgstr "GroupSuffix" +#~ msgid "GroupSuffix is invalid!" +#~ msgstr "GroupSuffix invàlid!" +#~ msgid "Host information page" +#~ msgstr "Pàgina d'informació de la màquina" +#~ msgid "" +#~ "Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-" +#~ "9 and .-_ ! Host name must end with $ !" +#~ msgstr "" +#~ "El nom de la màquina conté caracters invàlids. Els caràcters vàlids són: " +#~ "a-z, A-Z, 0-9 i .-_ !. El nom de la màquina ha d'acabar amb $ !" +#~ msgid "HostSuffix" +#~ msgstr "Sufix de màquines" +#~ msgid "HostSuffix is invalid!" +#~ msgstr "El sufix de màquines és invàlid!" +#~ msgid "" +#~ "If you want to create domain administrators or other special users use " +#~ "this option." +#~ msgstr "" +#~ "Fagi servir aquesta opció quan vulgui afegir comptes especials o el " +#~ "compte de Administradors del domini." +#~ msgid "Invalid password" +#~ msgstr "Contrasenya invàlida" +#~ msgid "Invalid/Missing Message type" +#~ msgstr "Invàlid/Inexistent tipus de missatge" +#~ msgid "LAM Internal Error" +#~ msgstr "Error intern de LAM" +#~ msgid "LDAP List settings" +#~ msgstr "Llista de preferències de LDAP" +#~ msgid "Manages Samba 3 domain accounts." +#~ msgstr "Administra comptes de domini de Samba3." +#~ msgid "Master Password:" +#~ msgstr "Contrasenya mestre:" +#~ msgid "Max list entries is invalid!" +#~ msgstr "Màxim numero de entrades invàlida!" +#~ msgid "Maximum GID number for Unix groups" +#~ msgstr "Màxim GID per grups Unix" +#~ msgid "Maximum UID number for Unix accounts (hosts)" +#~ msgstr "UID màxim per comptes Unix(màquines)" +#~ msgid "Maximum UID number for Unix accounts (users)" +#~ msgstr "UID màxim per comptes Unix(usuaris)" +#~ msgid "Minimum GID number for Unix groups" +#~ msgstr "GID mínim per grups Unix" +#~ msgid "Minimum UID number for Unix accounts (hosts)" +#~ msgstr "UID mínim per comptes Unix (màquines)" +#~ msgid "Modify Account" +#~ msgstr "Modificar compte" +#~ msgid "Next RID to use when creating groups." +#~ msgstr "Següent RID a utilitzar a l'hora de crear grups." +#~ msgid "ObjectClass %s required but not defined in LDAP." +#~ msgstr "ObjectClass %s obligatori, pero no està definida en el LDAP." +#~ msgid "PDF structures" +#~ msgstr "Estructures de PDF" +#~ msgid "Password hash type for Unix accounts" +#~ msgstr "Tipo de hash de contrasenya per comptes Unix" +#~ msgid "Password hash type for Unix groups" +#~ msgstr "Tipo de hash de contrasenya per grups Unix" +#~ msgid "Password maxage" +#~ msgstr "Edat màxima de contrasenya." +#~ msgid "Password minage" +#~ msgstr "Edat mínima de la contrasenya" +#~ msgid "" +#~ "Please report this error to the Bug-Tracker at {link=http://lam.sf.net}" +#~ "LDAP Account Manager Development Team{endlink}. The error number is {bold}" +#~ "0001:Invalid/Missing Message type.{endbold} Thank you." +#~ msgstr "" +#~ "Si us plau, envieu aquest error al Buq-Tracker, a {link=http://lam.sf.net}" +#~ "LDAP Account Manager Development Team{endlink}. El numero de error és " +#~ "{bold}0001: Invàlid/Inexistent tipo de missatge.{endbold} Gràcies." +#~ msgid "Please select page:" +#~ msgstr "Si us plau, sel·leccioneu pàgina:" +#~ msgid "Samba 2" +#~ msgstr "Samba 2" +#~ msgid "Samba Hosts" +#~ msgstr "Màquines de Samba" +#~ msgid "Saving group modules failed!" +#~ msgstr "Hi ha hagut un fallo al gravar els mòduls de grup!" +#~ msgid "Saving host modules failed!" +#~ msgstr "Hi ha hagut un fallo al gravar els mòduls de màquina!" +#~ msgid "Saving user modules failed!" +#~ msgstr "Hi ha hagut un fallo al gravar els mòduls de usuari!" +#~ msgid "Server of external script" +#~ msgstr "Servidor d'script extern" +#~ msgid "The following settings were saved to profile:" +#~ msgstr "Els següents paràmetres de configuració s'han gravat al perfil:" +#~ msgid "There can be only one administrator per domain." +#~ msgstr "Només hi pot haver un administrador per domini." +#~ msgid "There can be only one guest per domain." +#~ msgstr "Només hi pot haver un invitat per domini." +#~ msgid "This Samba 3 domain is already present!" +#~ msgstr "Aquest domini de Samba3 ja existeix!" +#~ msgid "This saves your account to the LDAP database." +#~ msgstr "Això grava el compte en el LDAP." +#~ msgid "" +#~ "This will set an invalid password which prevents logins with this account." +#~ msgstr "" +#~ "Això establirà una contrasenya invàlida, que impedirà que l'usuari inicïi " +#~ "sessió amb aquest compte." +#~ msgid "Time zones:" +#~ msgstr "Zones horàries:" +#~ msgid "TreeSuffix" +#~ msgstr "Sufixe" +#~ msgid "Unable to delete domain!" +#~ msgstr "No s'ha pogut esborrar el domini! " +#~ msgid "" +#~ "Use it at your own risk and read the documentation for lamdaemon before " +#~ "you use it!" +#~ msgstr "" +#~ "Utilitzi lamdaemon sota la seva responsabilitat, i llegeixi la " +#~ "documentació abans d'utilitzar-lo!" +#~ msgid "Use unix password" +#~ msgstr "Utilitzar la contrasenya de Unix" +#~ msgid "User list attributes are invalid!" +#~ msgstr "Llista d'atributs del usuari invàlida!" +#~ msgid "User modules" +#~ msgstr "Mòduls d'usuari" +#~ msgid "User/Group/Host suffix" +#~ msgstr "Sufixe de Usuaris/Grups/Màquines" +#~ msgid "UserSuffix" +#~ msgstr "UserSuffix" +#~ msgid "UserSuffix is invalid!" +#~ msgstr "UserSuffix és invàlid!" +#~ msgid "Users who are member of the current group." +#~ msgstr "Usuaris que són membres del grup actual." +#~ msgid "Windows group RID" +#~ msgstr "RID del grup de Windows" +#~ msgid "Wrong or missing type!" +#~ msgstr "Tipo invàlid o incorrecte!" +#~ msgid "You cannot use these password options at the same time." +#~ msgstr "" +#~ "No pot utilitzar aquestes diferents opcions de contrasenya simultàneament." +#~ msgid "You cannot use this password options at the same time." +#~ msgstr "No pot utilitzar aquestes opcions de contrasenya simultàneament." + diff --git a/lam/locale/cs_CZ/LC_MESSAGES/messages.mo b/lam/locale/cs_CZ/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..e3e36d7c Binary files /dev/null and b/lam/locale/cs_CZ/LC_MESSAGES/messages.mo differ diff --git a/lam/locale/cs_CZ/LC_MESSAGES/messages.po b/lam/locale/cs_CZ/LC_MESSAGES/messages.po new file mode 100644 index 00000000..85df0922 --- /dev/null +++ b/lam/locale/cs_CZ/LC_MESSAGES/messages.po @@ -0,0 +1,12420 @@ +# +# LDAP Account Manager +# Ludek Finstrle , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: messages\n" +"Report-Msgid-Bugs-To: post@rolandgruber.de \n" +"POT-Creation-Date: 2004-01-14 17:45+0100\n" +"PO-Revision-Date: 2011-11-12 17:25+0100\n" +"Last-Translator: Luděk Finstrle \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.3.1\n" + +#: ../lib/modules/zarafaUser.inc:128 ../lib/modules/zarafaUser.inc:131 +#: ../lib/modules/zarafaUser.inc:134 ../lib/modules/zarafaUser.inc:179 +msgid "\"Send as\" attribute" +msgstr "Atribut \"Odeslat jako\"" + +#: ../lib/modules/zarafaUser.inc:88 ../lib/modules/zarafaUser.inc:162 +#: ../lib/modules/zarafaUser.inc:203 ../lib/modules/zarafaUser.inc:354 +#: ../lib/modules/zarafaUser.inc:378 ../lib/modules/zarafaUser.inc:397 +#: ../lib/modules/zarafaUser.inc:441 ../lib/modules/zarafaUser.inc:797 +#: ../lib/modules/zarafaUser.inc:1245 ../lib/modules/zarafaUser.inc:1413 +msgid "\"Send as\" privileges" +msgstr "Právo \"Odeslat jako\"" + +#: ../lib/modules/posixAccount.inc:384 +msgid "" +"$user and $group will be replaced with user name and primary group name." +msgstr "" +"$user a $group bude nahrazen uživatelským jménem a názvem primární skupiny." + +#: ../lib/types/dhcp.inc:159 +#, php-format +msgid "%s DHCP(s) found" +msgstr "Nalezen(o) %s DHCP záznam(ů)" + +#: ../lib/types/nisObjectType.inc:144 +#, php-format +msgid "%s NIS object(s) found" +msgstr "Nalezen(o) %s NIS objekt(ů)" + +#: ../lib/types/zarafaAddressListType.inc:138 +#, php-format +msgid "%s address list(s) found" +msgstr "Nalezen(o) %s seznam(y/ů) adres" + +#: ../lib/types/mailAlias.inc:135 ../lib/types/alias.inc:135 +#, php-format +msgid "%s alias(es) found" +msgstr "Nalezen(o) %s alias(ů)" + +#: ../lib/types/automountType.inc:175 +#, php-format +msgid "%s automount entry(ies) found" +msgstr "Nalezen(o) %s záznam(ů) pro automount" + +#: ../lib/types/smbDomain.inc:156 +#, php-format +msgid "%s domain(s) found" +msgstr "Nalezeno(a) %s domén(a)" + +#: ../lib/types/asteriskExt.inc:137 +#, php-format +msgid "%s extension(s) found" +msgstr "Nalezeno(a) %s rozšíření" + +#: ../lib/types/gon.inc:161 ../lib/types/zarafaDynamicGroupType.inc:154 +#: ../lib/types/group.inc:174 ../lib/types/netgroup.inc:158 +#, php-format +msgid "%s group(s) found" +msgstr "Nalezeno(a) %s skupin(a)" + +#: ../lib/types/host.inc:161 +#, php-format +msgid "%s host(s) found" +msgstr "Nalezen(o) %s stroj(ů)" + +#: ../lib/lists.inc:106 +#, php-format +msgid "%s object(s) found" +msgstr "Nalezen(o) %s objekt(ů)" + +#: ../lib/types/ppolicyType.inc:143 +#, php-format +msgid "%s policy(ies) found" +msgstr "Nalezena(o) %s politika(y)" + +#: ../lib/types/sudo.inc:148 +#, php-format +msgid "%s sudo role(s) found" +msgstr "Nalezena(o) %s role(í) suda" + +#: ../lib/types/user.inc:197 +#, php-format +msgid "%s user(s) found" +msgstr "Nalezen(o) %s uživatel(ů)" + +#: ../lib/modules/nisnetgroup.inc:124 +msgid "(host1,user1,example.com);(host2,user2,example.com)" +msgstr "(stroj1,uzivatel1,domena.cz);(stroj2,uzivatel1,domena.cz)" + +#: ../lib/modules/posixAccount.inc:231 +msgid "/home/smiller" +msgstr "/home/jnovak" + +#: ../lib/modules/inetOrgPerson.inc:406 +#: ../lib/modules/asteriskVoicemail.inc:177 +msgid "123-123-1234" +msgstr "123 456 789" + +#: ../lib/modules/inetOrgPerson.inc:422 +msgid "123-123-1235" +msgstr "602 123 456" + +#: ../lib/modules/inetOrgPerson.inc:430 +msgid "123-123-1236" +msgstr "123 456 790" + +#: ../lib/modules/inetOrgPerson.inc:414 +msgid "123-124-1234" +msgstr "123 123 123" + +#: ../lib/modules/inetOrgPerson.inc:398 +msgid "12345" +msgstr "12345" + +#: ../lib/modules/dhcp_settings.inc:146 +msgid "" +"B-Node (0x01): Broadcast.
    The client tries to find other " +"workstations via broadcasting\n" +"(works only inside the same collision domain, viz. the same subnet).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"The client contacts a Netbios name server (NBNS) from Microsoft Windows Name " +"Service (WINS) for name resolution.

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"The node tries broadcasting first. If that fails then it tries WINS.

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"The node tries WINS first. If that fails it tries broadcasting.

    \n" +"\n" +"By default, the nodes are configured as H-Nodes which fits for small " +"networks. In large networks Point-to-Point (0x02) should be used." +msgstr "" +"B-Node (0x01): Všesměrové vysílání.
    Klient se snaží najít ostaní " +"stanice pomocí všesměrového vysílání\n" +"(funguje pouze uvnítř kolizní domény v rámci jedné podsítě).

    \n" +"\n" +"P-Node (0x02): Přímé spojení
    \n" +"Klient kontaktuje Netbios name server (NBNS) z Microsoft Windows Name " +"Service (WINS) pro překlad jmen.

    \n" +"\n" +"M-Node (0x04): Mixovaný
    \n" +"Klient nejdříve zkusí všesměrové vysílání a pokud to selže, použije WINS.

    \n" +"\n" +"H-Node (0x08): Hybridní
    \n" +"Klient nejdříve zkusí WINS a pokud to selže použije všesměrové vysílání.

    \n" +"\n" +"Standardně je použit H-Node, který vyhovuje malým sítím. Ve velkých sítích " +"je vhodné použít Přímé spojení (0x02)." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:145 +#, php-format +msgid "Maximum length: %s characters" +msgstr "Minimální délka: %s písmen" + +#: ../lib/modules/device.inc:75 +msgid "A description for this device." +msgstr "Popis tohoto zařízení." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +msgid "A list of attributes to display in the results (comma-separated)" +msgstr "" +"Seznam atributů, který se zobrazí ve výsledcích (čárkou oddělený seznam" + +#: ../lib/modules/sudoRole.inc:84 ../lib/modules/sudoRole.inc:113 +msgid "A list of options (e.g. NOPASSWD)." +msgstr "Seznam voleb (např. NOPASSWD)" + +#: ../templates/massBuildAccounts.php:115 +msgid "A required column is missing in your CSV file." +msgstr "Ve vašem CSV souboru chybí požadovaný sloupec." + +#: ../lib/modules/kolabUser.inc:132 +msgid "" +"A user may define who is allowed to act on behalf of herself. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"Uživatel může zadat kdo je oprávněn jednat v jeho zastoupení. Tato vlastnost " +"je ověřováná při posílání ě-mailů Kolab smtp démonem (Postfixem)." + +#: ../templates/3rdParty/pla/lib/import_functions.php:593 +msgid "A valid deleteoldrdn attribute should be specified" +msgstr "Měli bysta zadat platný atribut deleteoldrdn" + +#: ../templates/3rdParty/pla/lib/import_functions.php:237 +msgid "A valid dn line is required" +msgstr "Je povinný platný DN záznam" + +#: ../templates/3rdParty/pla/lib/import_functions.php:596 +msgid "A valid newrdn attribute should be specified" +msgstr "Měli bysta zadat platný atribut newrdn" + +#: ../templates/3rdParty/pla/lib/import_functions.php:587 +msgid "A valid newsuperier attribute should be specified" +msgstr "Měli bysta zadat platný atribut newsuperier" + +#: ../lib/modules/asteriskAccount.inc:122 +#: ../lib/modules/asteriskAccount.inc:251 +#: ../lib/modules/asteriskAccount.inc:333 +#: ../lib/modules/asteriskAccount.inc:411 +#: ../lib/modules/asteriskAccount.inc:707 +#: ../lib/modules/asteriskAccount.inc:1199 +msgid "AMA flags" +msgstr "Příznaky AMA" + +#: ../templates/serverInfo.php:340 +msgid "Abandon" +msgstr "Abandon ??" + +#: ../templates/lists/changePassword.php:546 +msgid "Aborted password change." +msgstr "Změna hesla byla přerušena." + +#: ../lib/modules/sambaSamAccount.inc:543 +msgid "Abu Dhabi, Muscat, Baku" +msgstr "Abú Dhabí, Maskat, Baku" + +#: ../templates/config/confmain.php:246 ../help/help.inc:99 +msgid "Access level" +msgstr "Úroveň přístupu" + +#: ../lib/modules/account.inc:58 +msgid "Account" +msgstr "Účet" + +#: ../templates/massBuildAccounts.php:170 +#: ../lib/modules/zarafaDynamicGroup.inc:171 +#: ../lib/modules/zarafaDynamicGroup.inc:173 +#: ../lib/modules/zarafaDynamicGroup.inc:175 +#: ../lib/modules/zarafaDynamicGroup.inc:177 +#: ../lib/modules/zarafaDynamicGroup.inc:178 +#: ../lib/modules/zarafaDynamicGroup.inc:179 ../lib/modules/ipHost.inc:109 +#: ../lib/modules/ipHost.inc:110 ../lib/modules/asteriskAccount.inc:622 +#: ../lib/modules/asteriskAccount.inc:625 +#: ../lib/modules/asteriskAccount.inc:628 +#: ../lib/modules/asteriskAccount.inc:631 +#: ../lib/modules/asteriskAccount.inc:633 +#: ../lib/modules/asteriskAccount.inc:635 +#: ../lib/modules/asteriskAccount.inc:637 +#: ../lib/modules/asteriskAccount.inc:639 +#: ../lib/modules/asteriskAccount.inc:641 ../lib/modules/account.inc:118 +#: ../lib/modules/ieee802device.inc:89 ../lib/modules/posixGroup.inc:482 +#: ../lib/modules/posixGroup.inc:486 ../lib/modules/posixGroup.inc:487 +#: ../lib/modules/zarafaGroup.inc:138 ../lib/modules/zarafaGroup.inc:140 +#: ../lib/modules/zarafaGroup.inc:141 ../lib/modules/zarafaGroup.inc:142 +#: ../lib/modules/zarafaGroup.inc:143 ../lib/modules/device.inc:127 +#: ../lib/modules/device.inc:128 ../lib/modules/dhcp_settings.inc:275 +#: ../lib/modules/dhcp_settings.inc:277 ../lib/modules/dhcp_settings.inc:279 +#: ../lib/modules/dhcp_settings.inc:281 ../lib/modules/dhcp_settings.inc:283 +#: ../lib/modules/dhcp_settings.inc:284 ../lib/modules/dhcp_settings.inc:286 +#: ../lib/modules/dhcp_settings.inc:288 ../lib/modules/dhcp_settings.inc:293 +#: ../lib/modules/dhcp_settings.inc:294 ../lib/modules/eduPerson.inc:216 +#: ../lib/modules/eduPerson.inc:218 ../lib/modules/eduPerson.inc:220 +#: ../lib/modules/eduPerson.inc:222 ../lib/modules/eduPerson.inc:223 +#: ../lib/modules/eduPerson.inc:224 ../lib/modules/eduPerson.inc:225 +#: ../lib/modules/quota.inc:51 ../lib/modules/quota.inc:53 +#: ../lib/modules/quota.inc:55 ../lib/modules/quota.inc:57 +#: ../lib/modules/quota.inc:59 ../lib/modules/quota.inc:61 +#: ../lib/modules/quota.inc:62 ../lib/modules/zarafaAddressList.inc:145 +#: ../lib/modules/zarafaAddressList.inc:146 +#: ../lib/modules/zarafaAddressList.inc:147 +#: ../lib/modules/sambaSamAccount.inc:88 ../lib/modules/sambaSamAccount.inc:91 +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:96 +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:98 +#: ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:102 +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:105 +#: ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:107 +#: ../lib/modules/sambaSamAccount.inc:108 +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:111 ../lib/modules/posixAccount.inc:76 +#: ../lib/modules/posixAccount.inc:81 ../lib/modules/posixAccount.inc:85 +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:94 +#: ../lib/modules/posixAccount.inc:95 ../lib/modules/posixAccount.inc:96 +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:100 ../lib/modules/posixAccount.inc:101 +#: ../lib/modules/posixAccount.inc:102 ../lib/modules/posixAccount.inc:104 +#: ../lib/modules/zarafaUser.inc:387 ../lib/modules/zarafaUser.inc:389 +#: ../lib/modules/zarafaUser.inc:391 ../lib/modules/zarafaUser.inc:392 +#: ../lib/modules/zarafaUser.inc:394 ../lib/modules/zarafaUser.inc:396 +#: ../lib/modules/zarafaUser.inc:398 ../lib/modules/zarafaUser.inc:399 +#: ../lib/modules/zarafaUser.inc:400 ../lib/modules/zarafaUser.inc:401 +#: ../lib/modules/zarafaUser.inc:402 ../lib/modules/zarafaUser.inc:403 +#: ../lib/modules/zarafaUser.inc:404 ../lib/modules/zarafaUser.inc:405 +#: ../lib/modules/ppolicyUser.inc:86 ../lib/modules/kolabUser.inc:230 +#: ../lib/modules/kolabUser.inc:232 ../lib/modules/kolabUser.inc:234 +#: ../lib/modules/kolabUser.inc:236 ../lib/modules/kolabUser.inc:238 +#: ../lib/modules/kolabUser.inc:240 ../lib/modules/kolabUser.inc:242 +#: ../lib/modules/phpGroupwareUser.inc:134 +#: ../lib/modules/phpGroupwareUser.inc:135 ../lib/modules/ddns.inc:151 +#: ../lib/modules/nisObject.inc:117 ../lib/modules/sambaGroupMapping.inc:441 +#: ../lib/modules/sambaGroupMapping.inc:442 +#: ../lib/modules/shadowAccount.inc:58 ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/shadowAccount.inc:62 ../lib/modules/shadowAccount.inc:64 +#: ../lib/modules/shadowAccount.inc:66 ../lib/modules/shadowAccount.inc:67 +#: ../lib/modules/automount.inc:105 ../lib/modules/sambaDomain.inc:202 +#: ../lib/modules/sambaDomain.inc:204 ../lib/modules/sambaDomain.inc:206 +#: ../lib/modules/sambaDomain.inc:208 ../lib/modules/sambaDomain.inc:210 +#: ../lib/modules/sambaDomain.inc:212 ../lib/modules/inetOrgPerson.inc:49 +#: ../lib/modules/inetOrgPerson.inc:51 ../lib/modules/inetOrgPerson.inc:53 +#: ../lib/modules/inetOrgPerson.inc:55 ../lib/modules/inetOrgPerson.inc:57 +#: ../lib/modules/inetOrgPerson.inc:59 ../lib/modules/inetOrgPerson.inc:61 +#: ../lib/modules/inetOrgPerson.inc:63 ../lib/modules/inetOrgPerson.inc:65 +#: ../lib/modules/inetOrgPerson.inc:67 ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:71 ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:75 ../lib/modules/inetOrgPerson.inc:77 +#: ../lib/modules/inetOrgPerson.inc:78 ../lib/modules/inetOrgPerson.inc:79 +#: ../lib/modules/inetOrgPerson.inc:82 ../lib/modules/systemQuotas.inc:91 +#: ../lib/modules/systemQuotas.inc:93 ../lib/modules/systemQuotas.inc:95 +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:99 +#: ../lib/modules/systemQuotas.inc:101 ../lib/modules/systemQuotas.inc:103 +#: ../lib/modules/freeRadius.inc:242 ../lib/modules/freeRadius.inc:244 +#: ../lib/modules/freeRadius.inc:246 ../lib/modules/freeRadius.inc:248 +#: ../lib/modules/freeRadius.inc:250 ../lib/modules/freeRadius.inc:252 +#: ../lib/modules/sudoRole.inc:224 ../lib/modules/sudoRole.inc:226 +#: ../lib/modules/sudoRole.inc:228 ../lib/modules/sudoRole.inc:230 +#: ../lib/modules/sudoRole.inc:232 ../lib/modules/sudoRole.inc:234 +#: ../lib/modules/zarafaServer.inc:121 ../lib/modules/zarafaServer.inc:123 +#: ../lib/modules/zarafaServer.inc:125 ../lib/modules/zarafaServer.inc:126 +#: ../lib/modules/asteriskVoicemail.inc:206 +#: ../lib/modules/asteriskVoicemail.inc:212 +#: ../lib/modules/asteriskVoicemail.inc:214 +#: ../lib/modules/inetLocalMailRecipient.inc:124 +#: ../lib/modules/inetLocalMailRecipient.inc:126 +#: ../lib/modules/inetLocalMailRecipient.inc:128 +#: ../lib/modules/aliasEntry.inc:79 +#: ../lib/modules/authorizedServiceObject.inc:114 +#: ../lib/modules/nisMailAlias.inc:107 ../lib/modules/nisMailAlias.inc:109 +#: ../lib/modules/hostObject.inc:104 +#, php-format +msgid "Account %s:" +msgstr "Účet %s:" + +#: ../lib/modules/asteriskAccount.inc:102 +#: ../lib/modules/asteriskAccount.inc:317 +#: ../lib/modules/asteriskAccount.inc:329 +#: ../lib/modules/asteriskAccount.inc:375 +#: ../lib/modules/asteriskAccount.inc:677 +#: ../lib/modules/asteriskAccount.inc:1191 +#: ../lib/modules/asteriskExtension.inc:82 +#: ../lib/modules/asteriskExtension.inc:112 +#: ../lib/modules/asteriskExtension.inc:124 +#: ../lib/modules/asteriskExtension.inc:169 +#: ../lib/modules/asteriskExtension.inc:221 +#: ../lib/modules/asteriskExtension.inc:469 +#: ../lib/modules/asteriskVoicemail.inc:82 +#: ../lib/modules/asteriskVoicemail.inc:118 +#: ../lib/modules/asteriskVoicemail.inc:128 +#: ../lib/modules/asteriskVoicemail.inc:142 +#: ../lib/modules/asteriskVoicemail.inc:244 +#: ../lib/modules/asteriskVoicemail.inc:394 +msgid "Account context" +msgstr "Kontext účtu" + +#: ../templates/masscreate.php:116 +msgid "Account creation via file upload" +msgstr "Vytvoření účtu(ů) nahráním souboru" + +#: ../lib/modules/posixAccount.inc:391 +msgid "Account deactivated" +msgstr "Deaktivovaný účet" + +#: ../templates/lists/changePassword.php:177 +msgid "Account details" +msgstr "Podrobnosti o účtu" + +#: ../lib/types/user.inc:104 ../lib/modules/sambaSamAccount.inc:323 +#: ../lib/modules/sambaSamAccount.inc:438 +#: ../lib/modules/sambaSamAccount.inc:1112 +#: ../lib/modules/sambaSamAccount.inc:1359 +#: ../lib/modules/sambaSamAccount.inc:1496 +#: ../lib/modules/phpGroupwareUser.inc:82 +#: ../lib/modules/phpGroupwareUser.inc:97 +#: ../lib/modules/phpGroupwareUser.inc:121 +#: ../lib/modules/phpGroupwareUser.inc:152 +#: ../lib/modules/phpGroupwareUser.inc:233 +#: ../lib/modules/phpGroupwareUser.inc:343 +#: ../lib/modules/shadowAccount.inc:121 ../lib/modules/shadowAccount.inc:184 +#: ../lib/modules/shadowAccount.inc:224 ../lib/modules/shadowAccount.inc:341 +#: ../lib/modules/shadowAccount.inc:416 ../lib/modules/shadowAccount.inc:471 +msgid "Account expiration date" +msgstr "Datum vypršení platnosti účtu" + +#: ../lib/modules/shadowAccount.inc:162 +msgid "Account inactive" +msgstr "Neaktivní účet" + +#: ../lib/modules/sambaSamAccount.inc:263 +#: ../lib/modules/sambaSamAccount.inc:269 +#: ../lib/modules/sambaSamAccount.inc:430 +#: ../lib/modules/sambaSamAccount.inc:1080 +#: ../lib/modules/sambaSamAccount.inc:1492 +msgid "Account is deactivated" +msgstr "Účet je deaktivován" + +#: ../lib/modules/sambaSamAccount.inc:266 +#: ../lib/modules/sambaSamAccount.inc:1086 +msgid "Account is locked" +msgstr "Účet je zablokován" + +#: ../templates/delete.php:86 +msgid "Account name:" +msgstr "Název účtu:" + +#: ../lib/modules/phpGroupwareUser.inc:78 +#: ../lib/modules/phpGroupwareUser.inc:96 +#: ../lib/modules/phpGroupwareUser.inc:114 +#: ../lib/modules/phpGroupwareUser.inc:161 +#: ../lib/modules/phpGroupwareUser.inc:338 +msgid "Account status" +msgstr "Stav účtu" + +#: ../templates/masscreate.php:130 ../templates/pdfedit/pdfdelete.php:85 +#: ../lib/modules/asteriskAccount.inc:110 +#: ../lib/modules/asteriskAccount.inc:318 +#: ../lib/modules/asteriskAccount.inc:331 +#: ../lib/modules/asteriskAccount.inc:395 +#: ../lib/modules/asteriskAccount.inc:685 +#: ../lib/modules/asteriskAccount.inc:1193 +msgid "Account type" +msgstr "Typ účtu" + +#: ../templates/config/confmodules.php:159 +#: ../templates/config/confmain.php:192 +#: ../templates/config/moduleSettings.php:158 +#: ../templates/config/conftypes.php:177 +msgid "Account types" +msgstr "Typy účtů" + +#: ../help/help.inc:101 +msgid "Account types and modules" +msgstr "Typy a moduly účtu" + +#: ../help/help.inc:103 +msgid "" +"Account types define which sorts of LDAP entries (e.g. users and groups) " +"should be managed. The account modules define which properties (e.g. Unix " +"and Samba) can be edited." +msgstr "" +"Typy účtu definují, které druhy záznamů LDAPu (např. uživatelé a skupiny) " +"budete spravovat. Moduly účtu definují, které vlastnosti (např. Unix a " +"Samba) můžete editovat." + +#: ../lib/modules.inc:1186 +msgid "Account was created successfully." +msgstr "Účet byl úspěšně vytvořen." + +#: ../templates/lists/changePassword.php:569 ../lib/modules.inc:1189 +msgid "Account was modified successfully." +msgstr "Účet byl úspěšně změněn." + +#: ../lib/modules/customScripts.inc:128 +msgid "Action type" +msgstr "Typ akce" + +#: ../lib/modules/ddns.inc:87 ../lib/modules/ddns.inc:342 +msgid "Activate DynDNS" +msgstr "Aktivovat DynDNS" + +#: ../templates/config/confmain.php:226 +#: ../templates/selfService/adminMain.php:354 +msgid "Activate TLS" +msgstr "Aktivovat TLS" + +#: ../lib/modules/sambaSamAccount.inc:330 +msgid "Activate this checkbox to allow this user to use the terminal service." +msgstr "" +"Jestliže zatrhnete toto pole, povolí se uživateli používání terminálové " +"služby." + +#: ../lib/modules/sambaSamAccount.inc:351 +msgid "Activate this checkbox to connect drives from the client machine." +msgstr "Jestliže zatrhnete toto pole, připojí se disky z klientského stroje" + +#: ../lib/modules/sambaSamAccount.inc:354 +msgid "Activate this checkbox to connect printers from the client machine." +msgstr "" +"Jestliže zatrhnete toto pole, připojí se tiskárny z klientského stroje." + +#: ../lib/modules/sambaSamAccount.inc:339 +msgid "" +"Activate this checkbox to inherit the initial program and working directory " +"from the client machine." +msgstr "" +"Jestliže zatrhnete toto pole, zdědí se výchozí program a pracovní adresář z " +"klientského stroje" + +#: ../lib/modules/sambaSamAccount.inc:357 +msgid "Activate this checkbox to set the client's printer as default printer." +msgstr "" +"Jestliže zatrhnete toto pole, nastaví se klientská tiskárna jako výchozí." + +#: ../lib/modules/posixAccount.inc:363 +msgid "Activating this checkbox will remove the user's home directory." +msgstr "Jestliže zatrhnete toto pole, bude smazán domovský adresář uživatele." + +#: ../lib/types/zarafaAddressListType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:93 +#: ../lib/modules/zarafaDynamicGroup.inc:76 +#: ../lib/modules/zarafaDynamicGroup.inc:133 +#: ../lib/modules/zarafaDynamicGroup.inc:156 +#: ../lib/modules/zarafaDynamicGroup.inc:255 +#: ../lib/modules/zarafaDynamicGroup.inc:469 ../lib/modules/zarafaGroup.inc:79 +#: ../lib/modules/zarafaGroup.inc:115 ../lib/modules/zarafaGroup.inc:125 +#: ../lib/modules/zarafaGroup.inc:201 ../lib/modules/zarafaGroup.inc:428 +#: ../lib/modules/zarafaAddressList.inc:64 +#: ../lib/modules/zarafaAddressList.inc:109 +#: ../lib/modules/zarafaAddressList.inc:131 +#: ../lib/modules/zarafaAddressList.inc:197 +#: ../lib/modules/zarafaAddressList.inc:330 ../lib/modules/zarafaUser.inc:68 +#: ../lib/modules/zarafaUser.inc:170 ../lib/modules/zarafaUser.inc:262 +#: ../lib/modules/zarafaUser.inc:552 +msgid "Active" +msgstr "Aktivní" + +#: ../templates/config/conftypes.php:223 +msgid "Active account types" +msgstr "Aktivní typy účtu" + +#: ../templates/serverInfo.php:305 ../templates/serverInfo.php:382 +#: ../templates/config/confmodules.php:286 +#: ../templates/config/conftypes.php:214 ../templates/pdfedit/pdfpage.php:543 +#: ../templates/pdfedit/pdfpage.php:553 ../templates/pdfedit/pdfpage.php:563 +#: ../templates/pdfedit/pdfpage.php:577 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1206 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1210 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:78 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:121 +#: ../lib/modules/device.inc:250 ../lib/modules/zarafaUser.inc:832 +#: ../lib/modules/zarafaUser.inc:1412 ../lib/modules/zarafaUser.inc:1438 +#: ../lib/modules/kolabUser.inc:872 ../lib/modules/kolabUser.inc:906 +#: ../lib/modules/nisnetgroup.inc:272 ../lib/modules/sudoRole.inc:269 +#: ../lib/modules/sudoRole.inc:296 ../lib/modules/sudoRole.inc:323 +#: ../lib/modules/sudoRole.inc:350 ../lib/modules/sudoRole.inc:377 +#: ../lib/modules/sudoRole.inc:404 ../lib/modules/groupOfNames.inc:272 +#: ../lib/modules/groupOfNames.inc:384 +msgid "Add" +msgstr "Přidat" + +#: ../lib/modules/asteriskAccount.inc:974 +msgid "Add Asterisk account" +msgstr "Přidat Asterisk účet" + +#: ../lib/modules/asteriskVoicemail.inc:288 +msgid "Add Asterisk voicemail extension" +msgstr "Přidat rozšíření Asterisku Hlasová schránka" + +#: ../lib/modules/authorizedServiceObject.inc:180 +msgid "Add Authorized Service extension" +msgstr "Přidat rozšíření Autorizovaná služba" + +#: ../lib/modules/eduPerson.inc:398 +msgid "Add EDU person extension" +msgstr "Přidat rozšíření EDU person" + +#: ../lib/modules/freeRadius.inc:344 +msgid "Add FreeRadius extension" +msgstr "Přidat rozšíření FreeRadius" + +#: ../lib/modules/ipHost.inc:181 +msgid "Add IP address extension" +msgstr "Přidat rozšíření IP adresy" + +#: ../lib/modules/kolabUser.inc:398 +msgid "Add Kolab extension" +msgstr "Přidat rozšíření Kolab" + +#: ../lib/modules/sambaSamAccount.inc:1223 +#: ../lib/modules/sambaGroupMapping.inc:293 +msgid "Add Samba 3 extension" +msgstr "Přidat rozšíření Samba 3" + +#: ../lib/modules/shadowAccount.inc:369 +msgid "Add Shadow account extension" +msgstr "Přidat rozšíření Stínový účet" + +#: ../lib/modules/zarafaGroup.inc:211 ../lib/modules/zarafaUser.inc:143 +#: ../lib/modules/zarafaUser.inc:144 ../lib/modules/zarafaUser.inc:186 +#: ../lib/modules/zarafaUser.inc:416 ../lib/modules/zarafaServer.inc:176 +msgid "Add Zarafa extension" +msgstr "Přidat rozšíření Zarafa" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add all" +msgstr "Přidat vše" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2073 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2091 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "Add an additional value to attribute" +msgstr "Přidat další hodnotu atributu" + +#: ../lib/modules/device.inc:293 ../lib/modules/zarafaUser.inc:871 +#: ../lib/modules/groupOfNames.inc:315 ../lib/modules/groupOfNames.inc:427 +msgid "Add entries of this type:" +msgstr "Přidat záznamy tohoto typu:" + +#: ../lib/modules/ddns.inc:343 +msgid "Add fix IP addresses to DNS" +msgstr "Přidat statickou IP adresu do DNS" + +#: ../lib/modules/hostObject.inc:162 +msgid "Add host extension" +msgstr "Přidat rozšíření stroje" + +#: ../templates/selfService/adminMain.php:448 ../help/help.inc:180 +msgid "Add input field" +msgstr "Přidat vstupní pole" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:37 +#, php-format +msgid "Add new %s value to %s" +msgstr "Přidat novou hodnotu %s k %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1208 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:29 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:48 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:166 +msgid "Add new attribute" +msgstr "Přidat nový atribut" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1207 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +msgid "Add new attribute to this object" +msgstr "Přidat nový atribut tomuto objektu" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:89 +msgid "Add new binary attribute" +msgstr "Přidat nový binární atribut" + +#: ../templates/selfService/adminMain.php:440 ../help/help.inc:178 +msgid "Add new group" +msgstr "Přidat novou skupinu" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:117 +msgid "Add new object class" +msgstr "Přidat novou třídu objektu" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:60 +#, php-format +msgid "Add new object class to %s" +msgstr "Přidat novou třídu objektu do %s" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:95 +msgid "Add object class and attributes" +msgstr "Přidat třídu objeku a atributy." + +#: ../lib/modules/passwordSelfReset.inc:176 +msgid "Add password self reset extension" +msgstr "Přidat rozšíření Reset vlastního hesla" + +#: ../lib/modules/inetOrgPerson.inc:653 ../lib/modules/inetOrgPerson.inc:1275 +#: ../lib/modules/inetOrgPerson.inc:1310 ../lib/modules/inetOrgPerson.inc:2023 +msgid "Add photo" +msgstr "Přidat fotku" + +#: ../lib/modules/phpGroupwareGroup.inc:73 +#: ../lib/modules/phpGroupwareGroup.inc:83 +#: ../lib/modules/phpGroupwareGroup.inc:103 +#: ../lib/modules/phpGroupwareUser.inc:74 +#: ../lib/modules/phpGroupwareUser.inc:107 +#: ../lib/modules/phpGroupwareUser.inc:191 +msgid "Add phpGroupWare extension" +msgstr "Přidat rozšíření phpGroupWare" + +#: ../templates/config/profmanage.php:210 +#: ../templates/selfService/profManage.php:168 ../help/help.inc:118 +msgid "Add profile" +msgstr "Přidat profil" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add selected" +msgstr "Přidat vybrané" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:149 +msgid "Add value" +msgstr "Přidat hodnotu" + +#: ../templates/3rdParty/pla/htdocs/import.php:28 +msgid "Adding" +msgstr "Přidání" + +#: ../lib/modules/range.inc:108 +msgid "Adding the range failed because errors occured." +msgstr "Selhalo přidaní rozsahu kvůli chybě/ám." + +#: ../templates/selfService/adminMain.php:388 ../help/help.inc:184 +msgid "Additional CSS links" +msgstr "Doplňkové CCS linky" + +#: ../lib/modules/zarafaDynamicGroup.inc:65 +#: ../lib/modules/zarafaDynamicGroup.inc:69 ../lib/modules/zarafaGroup.inc:64 +#: ../lib/modules/zarafaGroup.inc:68 +msgid "Additional email addresses for this entry." +msgstr "Další e-mailová adresa pro tento záznam." + +#: ../lib/modules/posixAccount.inc:223 ../lib/modules/posixAccount.inc:318 +#: ../lib/modules/posixAccount.inc:354 ../lib/modules/posixAccount.inc:399 +#: ../lib/modules/posixAccount.inc:1109 ../lib/modules/posixAccount.inc:1363 +#: ../lib/modules/posixAccount.inc:1466 +msgid "Additional groups" +msgstr "Doplňkové skupiny" + +#: ../templates/massDoUpload.php:103 +msgid "Additional tasks for module:" +msgstr "Další úkoly modulu:" + +#: ../lib/modules/inetOrgPerson.inc:1066 +msgid "Address" +msgstr "Adresa" + +#: ../lib/modules/imapAccess.inc:70 +msgid "Address of IMAP server (e.g. mail.example.org)." +msgstr "Adresa IMAP serveru (např. imap.domena.cz)" + +#: ../help/help.inc:179 +msgid "" +"Adds a new group element to the list of self service options. Use this to " +"structure the input fields." +msgstr "" +"Přidává novou skupinu prvků do seznamu samoobslužných voleb. Použijte to kë " +"strukturování vstupních polí." + +#: ../help/help.inc:181 +msgid "Adds a new self service option to the selected group element." +msgstr "Přidává novou samoobslužnou volbu do vybrané skupiny prvků." + +#: ../lib/modules/range.inc:95 +msgid "Adds input fields for a new IP range." +msgstr "Přidává vstupní pole pro nový rozsah IP" + +#: ../lib/modules/zarafaUser.inc:92 ../lib/modules/zarafaUser.inc:289 +#: ../lib/modules/zarafaUser.inc:339 ../lib/modules/zarafaUser.inc:561 +#: ../lib/modules/zarafaUser.inc:1227 +msgid "Admin" +msgstr "Administrátor" + +#: ../lib/modules/passwordSelfReset.inc:85 +#: ../lib/modules/passwordSelfReset.inc:139 +msgid "Admin DN" +msgstr "Admin DN" + +#: ../lib/modules/passwordSelfReset.inc:89 +#: ../lib/modules/passwordSelfReset.inc:143 +msgid "Admin password" +msgstr "Heslo Admina" + +#: ../lib/modules/inetOrgPerson.inc:358 ../lib/modules/inetOrgPerson.inc:454 +msgid "Administration" +msgstr "Administrativa" + +#: ../lib/modules/posixGroup.inc:379 ../lib/modules/nisnetgroup.inc:112 +#: ../lib/modules/groupOfNames.inc:101 +msgid "Administrators group" +msgstr "Skupina správců" + +#: ../lib/modules/eduPerson.inc:92 ../lib/modules/eduPerson.inc:96 +#: ../lib/modules/eduPerson.inc:160 ../lib/modules/eduPerson.inc:198 +#: ../lib/modules/eduPerson.inc:287 ../lib/modules/eduPerson.inc:677 +msgid "Affiliations" +msgstr "Vztahy" + +#: ../lib/modules/sambaSamAccount.inc:530 +msgid "Alaska" +msgstr "Aljaška" + +#: ../lib/modules/sambaDomain.inc:211 ../lib/modules/sambaDomain.inc:212 +msgid "Algorithmic RID base is not a number!" +msgstr "Základ algoritmického RID není číslo!" + +#: ../lib/modules/aliasEntry.inc:38 +msgid "Alias" +msgstr "Alias" + +#: ../lib/types/alias.inc:62 +msgid "Alias entries" +msgstr "Záznamy Aliasů" + +#: ../lib/modules/nisMailAlias.inc:106 ../lib/modules/nisMailAlias.inc:107 +msgid "Alias is empty or invalid!" +msgstr "Alias je prázdný či neplatný!" + +#: ../lib/types/mailAlias.inc:91 ../lib/modules/nisMailAlias.inc:67 +#: ../lib/modules/nisMailAlias.inc:82 ../lib/modules/nisMailAlias.inc:96 +#: ../lib/modules/nisMailAlias.inc:144 ../lib/modules/nisMailAlias.inc:287 +msgid "Alias name" +msgstr "Název aliasu" + +#: ../lib/types/alias.inc:92 ../lib/modules/customScripts.inc:45 +#: ../lib/modules/uidObject.inc:52 ../lib/modules/aliasEntry.inc:54 +#: ../lib/modules/aliasEntry.inc:62 ../lib/modules/aliasEntry.inc:70 +#: ../lib/modules/aliasEntry.inc:92 ../lib/modules/aliasEntry.inc:101 +#: ../lib/modules/aliasEntry.inc:231 +msgid "Aliased entry" +msgstr "Záznam aliasu" + +#: ../templates/schema/schema.php:224 ../lib/types/alias.inc:53 +msgid "Aliases" +msgstr "Aliasy" + +#: ../lib/lists.inc:633 +#, php-format +msgid "All accounts (%s)" +msgstr "Všechny účty (%s)" + +#: ../templates/selfService/selfServiceMain.php:318 +#: ../templates/initsuff.php:157 +msgid "All changes were successful." +msgstr "Všechny změny proběhly úspěšně." + +#: ../lib/lists.inc:632 +#, php-format +msgid "All selected accounts (%s)" +msgstr "Všechny vybrané účty (%s)" + +#: ../lib/modules/sambaDomain.inc:110 ../lib/modules/sambaDomain.inc:187 +#: ../lib/modules/sambaDomain.inc:301 ../lib/modules/sambaDomain.inc:671 +msgid "Allow machine password changes" +msgstr "Povolit změny hesel strojů" + +#: ../lib/types/ppolicyType.inc:90 ../lib/modules/ppolicy.inc:124 +#: ../lib/modules/ppolicy.inc:147 ../lib/modules/ppolicy.inc:286 +#: ../lib/modules/ppolicy.inc:497 +msgid "Allow password change" +msgstr "Povolit změnu hesla" + +#: ../lib/modules/sambaSamAccount.inc:211 +#: ../lib/modules/sambaSamAccount.inc:329 +#: ../lib/modules/sambaSamAccount.inc:1402 +#: ../lib/modules/sambaSamAccount.inc:1688 +msgid "Allow terminal server login" +msgstr "Povolit přihlášení k terminálovému serveru" + +#: ../lib/modules/asteriskAccount.inc:194 +#: ../lib/modules/asteriskAccount.inc:287 +#: ../lib/modules/asteriskAccount.inc:351 +#: ../lib/modules/asteriskAccount.inc:543 +#: ../lib/modules/asteriskAccount.inc:884 +#: ../lib/modules/asteriskAccount.inc:1253 +msgid "Allowed codec" +msgstr "Povolené kodeky" + +#: ../templates/config/mainmanage.php:194 ../lib/types/user.inc:95 +#: ../help/help.inc:140 +msgid "Allowed hosts" +msgstr "Povolené stroje" + +#: ../lib/modules/sambaSamAccount.inc:1249 +#: ../lib/modules/sambaSamAccount.inc:1250 +msgid "Allowed workstations" +msgstr "Povolené stanice" + +#: ../lib/modules/sambaSamAccount.inc:545 +msgid "Almaty, Dhaka, Colombo" +msgstr "Alma-ata, Dháka, Kolombo" + +#: ../lib/modules/kolabUser.inc:50 +msgid "Always accept" +msgstr "Přijmout vždy" + +#: ../lib/modules/kolabUser.inc:51 +msgid "Always reject" +msgstr "Odmítnout vždy" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1018 +#, php-format +msgid "An attribute (%s) was modified and is highlighted below." +msgstr "Atribut (%s) byl změněn a je zvýrazněn níže." + +#: ../lib/modules/sudoRole.inc:222 +msgid "An sudo role with this name already exists. Please choose another name." +msgstr "Role suda s tímto název již existuje. Prosím zvolte jiný název" + +#: ../lib/modules/passwordSelfReset.inc:69 +#: ../lib/modules/passwordSelfReset.inc:112 +#: ../lib/modules/passwordSelfReset.inc:120 +#: ../lib/modules/passwordSelfReset.inc:154 +#: ../lib/modules/passwordSelfReset.inc:196 +#: ../lib/modules/passwordSelfReset.inc:302 +#: ../lib/modules/passwordSelfReset.inc:442 +#: ../lib/modules/passwordSelfReset.inc:669 +msgid "Answer" +msgstr "Odpověď" + +#: ../lib/modules/kolabUser.inc:334 ../lib/modules/kolabUser.inc:795 +#: ../lib/modules/kolabUser.inc:893 +msgid "Anyone" +msgstr "Kdokoli" + +#: ../lib/modules/asteriskExtension.inc:94 +#: ../lib/modules/asteriskExtension.inc:114 +#: ../lib/modules/asteriskExtension.inc:127 +#: ../lib/modules/asteriskExtension.inc:156 +#: ../lib/modules/asteriskExtension.inc:245 +#: ../lib/modules/asteriskExtension.inc:475 +msgid "Application" +msgstr "Aplikace" + +#: ../lib/modules/asteriskExtension.inc:78 +#: ../lib/modules/asteriskExtension.inc:123 +#: ../lib/modules/asteriskExtension.inc:163 +#: ../lib/modules/asteriskExtension.inc:253 +#: ../lib/modules/asteriskExtension.inc:472 +msgid "Application data" +msgstr "Data aplikace" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:53 +msgid "Are you sure you want to permanently delete these objects?" +msgstr "Jste si jist, že chcete smazat tyto objekty natrvalo?" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:107 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:51 +msgid "Are you sure you want to permanently delete this object?" +msgstr "Jste si jist, že chcete smazat tento objekt natrvalo?" + +#: ../lib/modules/imapAccess.inc:114 +msgid "Ask" +msgstr "Zeptat se" + +#: ../lib/modules/asteriskAccount.inc:66 +msgid "Asterisk" +msgstr "Asterisk" + +#: ../lib/modules/asteriskAccount.inc:123 +msgid "Asterisk AMA (Automated Message Accounting) flags." +msgstr "Příznaky Asterisk AMA (automatické účtování zpráv)." + +#: ../lib/modules/asteriskExtension.inc:63 +msgid "Asterisk extension" +msgstr "Rozšíření Asterisku" + +#: ../lib/types/asteriskExt.inc:54 +msgid "Asterisk extensions" +msgstr "Rozšíření Asterisku" + +#: ../lib/types/asteriskExt.inc:63 +msgid "Asterisk extensions entries" +msgstr "Záznamy rozšíření Asterisku" + +#: ../lib/modules/asteriskAccount.inc:114 +#: ../lib/modules/asteriskAccount.inc:241 +#: ../lib/modules/asteriskAccount.inc:311 +msgid "Asterisk realm" +msgstr "Doméne Asterisku" + +#: ../lib/modules/asteriskVoicemail.inc:64 +msgid "Asterisk voicemail" +msgstr "Hlasová schránka Asterisku" + +#: ../lib/modules/asteriskVoicemail.inc:111 +msgid "Asterisk voicemail context." +msgstr "Kontext hlasové schrány Asterisku" + +#: ../lib/modules/sambaSamAccount.inc:535 +msgid "Atlantic time (Canada), Caracas" +msgstr "Atlantický čas (Kanada), Karakas" + +#: ../templates/3rdParty/pla/lib/import_functions.php:455 +msgid "Attempting to delete a non existent attribute" +msgstr "Pokus o smazání neexistujícího atributu" + +#: ../templates/3rdParty/pla/lib/import_functions.php:466 +msgid "Attempting to replace a non existant attribute" +msgstr "Pokus o přepsání neexistujícího atributu" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Attribute" +msgstr "Atribut" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:137 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:72 +msgid "Attribute doesn't exist" +msgstr "Atribut neexistuje" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:117 +msgid "Attribute not available" +msgstr "Atribut není dostupný" + +#: ../templates/3rdParty/pla/lib/import_functions.php:535 +msgid "Attribute not valid" +msgstr "Atribut není platný" + +#: ../templates/schema/schema.php:67 ../templates/schema/schema.php:68 +msgid "Attribute types" +msgstr "Typ atributu" + +#: ../lib/modules/sambaSamAccount.inc:551 +msgid "Auckland, Fiji, Kamchatka" +msgstr "Auckland, Fidži, Kamčatka" + +#: ../lib/modules/asteriskAccount.inc:115 +msgid "" +"Authentication realm for Asterisk server (default: asterisk). This value set " +"in sip.conf (option: \"realm\")." +msgstr "" +"Autentizační doména Asterisk serveru (výchozí hodnota: asterisk). Tato " +"hodnota se nastavuje v sip.conf (volba: \"realm\")." + +#: ../lib/modules/asteriskAccount.inc:223 +msgid "Authentication user for outbound proxies." +msgstr "Autentizace uživatele pro odchozí proxy." + +#: ../lib/modules/authorizedServiceObject.inc:63 +#: ../lib/modules/authorizedServiceObject.inc:73 +#: ../lib/modules/authorizedServiceObject.inc:77 +#: ../lib/modules/authorizedServiceObject.inc:89 +#: ../lib/modules/authorizedServiceObject.inc:96 +#: ../lib/modules/authorizedServiceObject.inc:100 +#: ../lib/modules/authorizedServiceObject.inc:154 +#: ../lib/modules/authorizedServiceObject.inc:277 +msgid "Authorized Services" +msgstr "Autorizované služby" + +#: ../lib/modules/eduPerson.inc:129 ../lib/modules/eduPerson.inc:134 +#: ../lib/modules/sambaSamAccount.inc:147 +#: ../lib/modules/sambaSamAccount.inc:377 ../lib/modules/zarafaUser.inc:120 +#: ../lib/modules/zarafaUser.inc:1280 ../lib/modules/phpGroupwareUser.inc:86 +#: ../lib/modules/phpGroupwareUser.inc:92 ../lib/modules/shadowAccount.inc:99 +#: ../lib/modules/shadowAccount.inc:188 +#: ../lib/modules/authorizedServiceObject.inc:81 +#: ../lib/modules/authorizedServiceObject.inc:101 +#: ../lib/modules/passwordSelfReset.inc:96 ../lib/modules/hostObject.inc:76 +#: ../lib/modules/hostObject.inc:94 +msgid "Automatically add this extension" +msgstr "Automaticky přidávat toto rozšíření" + +#: ../lib/types/automountType.inc:39 ../lib/types/automountType.inc:48 +msgid "Automount entries" +msgstr "Záznamy automountu" + +#: ../lib/types/automountType.inc:78 ../lib/modules/automount.inc:40 +#: ../lib/modules/automount.inc:58 ../lib/modules/automount.inc:78 +#: ../lib/modules/automount.inc:94 ../lib/modules/automount.inc:104 +#: ../lib/modules/automount.inc:124 ../lib/modules/automount.inc:191 +msgid "Automount entry" +msgstr "Záznam automountu" + +#: ../lib/modules/automount.inc:104 ../lib/modules/automount.inc:105 +msgid "" +"Automount entry contains invalid characters. Only ASCII characters are " +"allowed." +msgstr "" +"Záznam automountu obsahuje nepřípustné znaky. Jsou povoleny pouze ASCII " +"znaky." + +#: ../templates/config/conftypes.php:206 ../lib/modules/customScripts.inc:54 +msgid "Available account types" +msgstr "Dostupné typy účtů" + +#: ../lib/modules/customScripts.inc:55 ../lib/modules/customScripts.inc:67 +msgid "Available actions" +msgstr "Dostupné akce" + +#: ../lib/modules/posixAccount.inc:1204 ../lib/modules/posixAccount.inc:1234 +#: ../lib/modules/nisnetgroup.inc:376 +msgid "Available groups" +msgstr "Dostupné skupiny" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:93 +msgid "Available members" +msgstr "Dostupní členové" + +#: ../templates/config/confmodules.php:295 +msgid "Available modules" +msgstr "Dostupné moduly" + +#: ../lib/modules/posixGroup.inc:243 ../lib/modules/asteriskExtension.inc:310 +msgid "Available users" +msgstr "Dostupní uživatelé" + +#: ../lib/modules/sambaSamAccount.inc:1252 +msgid "Available workstations" +msgstr "Dostupné stanice" + +#: ../lib/modules/sambaSamAccount.inc:538 +msgid "Azores, Cape Verde Islands" +msgstr "Azory, Kapverdské ostrovy" + +#: ../lib/modules/dhcp_settings.inc:87 +msgid "B-Node (0x01)" +msgstr "B-Node (0x01)" + +#: ../templates/massBuildAccounts.php:227 ../lib/modules/posixGroup.inc:267 +#: ../lib/modules/device.inc:300 ../lib/modules/sambaSamAccount.inc:1269 +#: ../lib/modules/posixAccount.inc:1272 ../lib/modules/posixAccount.inc:1342 +#: ../lib/modules/zarafaUser.inc:878 ../lib/modules/nisnetgroup.inc:390 +#: ../lib/modules/inetOrgPerson.inc:1311 ../lib/modules/groupOfNames.inc:322 +#: ../lib/modules/groupOfNames.inc:434 +msgid "Back" +msgstr "Zpět" + +#: ../lib/types/dhcp.inc:47 +msgid "Back to DHCP list" +msgstr "Zpět k seznamu DHCP" + +#: ../lib/types/nisObjectType.inc:30 +msgid "Back to NIS object list" +msgstr "Zpět k seznamu NIS objektů" + +#: ../lib/baseType.inc:46 +msgid "Back to account list" +msgstr "Zpět k seznamu účtů" + +#: ../lib/types/zarafaAddressListType.inc:44 +msgid "Back to address list" +msgstr "Zpět k seznamu adres" + +#: ../lib/types/mailAlias.inc:44 ../lib/types/alias.inc:44 +msgid "Back to alias list" +msgstr "Zpět k seznamu aliasů" + +#: ../lib/types/automountType.inc:30 +msgid "Back to automount list" +msgstr "Zpět k seznamu automountu" + +#: ../lib/types/smbDomain.inc:44 +msgid "Back to domain list" +msgstr "Zpět k seznamu domén" + +#: ../lib/types/asteriskExt.inc:45 +msgid "Back to extensions list" +msgstr "Zpět k seznamu rozšíření" + +#: ../templates/lists/userlink.php:63 ../lib/types/gon.inc:44 +#: ../lib/types/zarafaDynamicGroupType.inc:44 ../lib/types/group.inc:45 +#: ../lib/types/netgroup.inc:44 +msgid "Back to group list" +msgstr "Zpět k seznamu skupin" + +#: ../lib/types/host.inc:44 +msgid "Back to host list" +msgstr "Zpět k seznamu strojů" + +#: ../templates/delete.php:269 +msgid "Back to list" +msgstr "Zpět k seznamu" + +#: ../templates/config/mainmanage.php:155 ../templates/config/index.php:71 +#: ../templates/config/conflogin.php:109 ../templates/config/mainlogin.php:114 +#: ../templates/selfService/selfServiceSP.php:96 +#: ../templates/selfService/adminLogin.php:109 +msgid "Back to login" +msgstr "Zpět k přihlášení" + +#: ../lib/types/ppolicyType.inc:30 +msgid "Back to policy list" +msgstr "Zpět k seznamu politik" + +#: ../templates/config/profmanage.php:73 +#: ../templates/selfService/profManage.php:73 +msgid "Back to profile login" +msgstr "Zpět k přihlášení do profilu" + +#: ../lib/types/sudo.inc:30 +msgid "Back to sudo role list" +msgstr "Zpět k seznamu rolí suda" + +#: ../lib/types/user.inc:44 +msgid "Back to user list" +msgstr "Zpět k seznamu uživatelů" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:64 +msgid "Back up" +msgstr "Zpět nahoru" + +#: ../templates/serverInfo.php:161 +msgid "Backends" +msgstr "Backendy" + +#: ../lib/modules/sudoRole.inc:130 +msgid "Backup script" +msgstr "Zálohovací skript" + +#: ../lib/modules/sambaSamAccount.inc:542 +msgid "Baghdad, Riyadh, Moscow" +msgstr "Bagdád, Rijád, Moskva" + +#: ../lib/modules/sambaSamAccount.inc:546 +msgid "Bangkok, Hanoi, Jakarta" +msgstr "Bangkok, Hanoj, Jakarta" + +#: ../lib/types/zarafaAddressListType.inc:93 +#: ../lib/types/zarafaDynamicGroupType.inc:94 +#: ../lib/modules/zarafaDynamicGroup.inc:80 +#: ../lib/modules/zarafaDynamicGroup.inc:90 +#: ../lib/modules/zarafaDynamicGroup.inc:141 +#: ../lib/modules/zarafaDynamicGroup.inc:159 +#: ../lib/modules/zarafaDynamicGroup.inc:172 +#: ../lib/modules/zarafaDynamicGroup.inc:205 +#: ../lib/modules/zarafaDynamicGroup.inc:454 +#: ../lib/modules/zarafaAddressList.inc:68 +#: ../lib/modules/zarafaAddressList.inc:78 +#: ../lib/modules/zarafaAddressList.inc:117 +#: ../lib/modules/zarafaAddressList.inc:133 +#: ../lib/modules/zarafaAddressList.inc:144 +#: ../lib/modules/zarafaAddressList.inc:173 +#: ../lib/modules/zarafaAddressList.inc:320 +msgid "Base" +msgstr "Základ" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:142 +#: ../templates/3rdParty/pla/htdocs/export_form.php:31 +msgid "Base (base dn only)" +msgstr "Základ (pouze základní DN)" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:121 +#: ../templates/3rdParty/pla/lib/QueryRender.php:508 +#: ../templates/3rdParty/pla/htdocs/export_form.php:59 +msgid "Base DN" +msgstr "Základní DN" + +#: ../templates/config/confmodules.php:203 ../help/help.inc:132 +msgid "Base module" +msgstr "Základní modul" + +#: ../templates/pdfedit/pdfpage.php:434 +msgid "Beginning" +msgstr "Začátek" + +#: ../lib/modules/sambaSamAccount.inc:547 +msgid "Beijing, Perth, Singapore" +msgstr "Peking, Pert, Singapur" + +#: ../templates/3rdParty/pla/lib/PageRender.php:644 +#: ../templates/3rdParty/pla/lib/PageRender.php:648 +msgid "Binary value" +msgstr "Binární hodnota" + +#: ../templates/serverInfo.php:284 ../templates/serverInfo.php:373 +msgid "Bind" +msgstr "Svázat" + +#: ../lib/modules/quota.inc:52 ../lib/modules/systemQuotas.inc:94 +msgid "Block hard quota" +msgstr "Pevná kvóta bloků" + +#: ../lib/modules/quota.inc:52 ../lib/modules/quota.inc:53 +#: ../lib/modules/systemQuotas.inc:94 ../lib/modules/systemQuotas.inc:95 +msgid "" +"Block hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Pevná kvóta bloků obsahuje nepřípustné znaky. Jsou povoleny pouze přirozená " +"čísla." + +#: ../lib/modules/quota.inc:58 ../lib/modules/systemQuotas.inc:100 +msgid "Block quota" +msgstr "Kvóta bloků" + +#: ../lib/modules/quota.inc:50 ../lib/modules/systemQuotas.inc:92 +msgid "Block soft quota" +msgstr "Mekká kvóta bloků" + +#: ../lib/modules/quota.inc:50 ../lib/modules/quota.inc:51 +#: ../lib/modules/systemQuotas.inc:92 ../lib/modules/systemQuotas.inc:93 +msgid "" +"Block soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Měkká kvóta bloků obsahuje nepřípustné znaky. Jsou povoleny pouze přirozená " +"čísla." + +#: ../lib/modules/quota.inc:58 ../lib/modules/quota.inc:59 +#: ../lib/modules/systemQuotas.inc:100 ../lib/modules/systemQuotas.inc:101 +msgid "Block soft quota must be smaller than block hard quota." +msgstr "Měkká kvóta bloků musí být menší než pevná." + +#: ../lib/modules/sambaSamAccount.inc:536 +msgid "Brazil, Buenos Aires" +msgstr "Brazílie, Buenos Aires" + +#: ../templates/3rdParty/pla/htdocs/copy.php:53 +msgid "Building snapshot of tree to copy" +msgstr "Sestavování snímku stromu ke kopírování" + +#: ../lib/modules/sambaGroupMapping.inc:73 +msgid "Builtin group" +msgstr "Vestavěná skupina" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:63 +msgid "Bulk edit the following DNs" +msgstr "Hromadná editace následujících DN záznamů" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:48 +msgid "Bulk update the following DNs" +msgstr "Hromadná změna následujících DN záznamů" + +#: ../lib/modules/inetOrgPerson.inc:81 ../lib/modules/inetOrgPerson.inc:127 +#: ../lib/modules/inetOrgPerson.inc:265 ../lib/modules/inetOrgPerson.inc:356 +#: ../lib/modules/inetOrgPerson.inc:557 ../lib/modules/inetOrgPerson.inc:665 +#: ../lib/modules/inetOrgPerson.inc:1222 ../lib/modules/inetOrgPerson.inc:1442 +#: ../lib/modules/inetOrgPerson.inc:2001 +msgid "Business category" +msgstr "Obchodní kategorie" + +#: ../lib/modules/inetOrgPerson.inc:666 +msgid "Business category (e.g. Administration, IT-Services, Manangement, ...)" +msgstr "Obchodní kategorie (např. Administrativa, IT služby, management, ...)" + +#: ../lib/modules/customScripts.inc:81 +msgid "" +"By default, LAM will show the executed command along with any output of it. " +"If you want to hide the command and only show the output then activate this " +"option." +msgstr "" +"Standardně LAM zobrazuje spuštěný příkaz s jeho výstupem. Pokud chcete skrýt " +"příkaz a zobrazit pouze jeho výstup, pak aktivujte tuto volbu." + +#: ../templates/serverInfo.php:251 ../templates/serverInfo.php:257 +msgid "Bytes sent" +msgstr "Bytů odesláno" + +#: ../templates/masscreate.php:239 +msgid "CSV file" +msgstr "CSV soubor" + +#: ../help/help.inc:97 +msgid "Cache timeout" +msgstr "Časový limit pro cache" + +#: ../lib/modules/asteriskAccount.inc:126 +#: ../lib/modules/asteriskAccount.inc:253 +#: ../lib/modules/asteriskAccount.inc:334 +#: ../lib/modules/asteriskAccount.inc:419 +#: ../lib/modules/asteriskAccount.inc:716 +#: ../lib/modules/asteriskAccount.inc:1202 +msgid "Call groups" +msgstr "Skupiny volajících" + +#: ../lib/modules/asteriskAccount.inc:94 +#: ../lib/modules/asteriskAccount.inc:328 +#: ../lib/modules/asteriskAccount.inc:368 +#: ../lib/modules/asteriskAccount.inc:661 +#: ../lib/modules/asteriskAccount.inc:1190 +msgid "Caller ID" +msgstr "ID volajícího" + +#: ../lib/modules/sambaSamAccount.inc:284 +#: ../lib/modules/sambaSamAccount.inc:287 +#: ../lib/modules/sambaSamAccount.inc:290 +#: ../lib/modules/sambaSamAccount.inc:296 ../lib/modules/posixAccount.inc:400 +#: ../lib/modules/sambaGroupMapping.inc:369 +#: ../lib/modules/shadowAccount.inc:169 ../lib/modules/shadowAccount.inc:173 +#: ../lib/modules/shadowAccount.inc:177 ../lib/modules/shadowAccount.inc:181 +msgid "Can be left empty." +msgstr "Můžete ponechat prázdné." + +#: ../lib/modules/asteriskAccount.inc:214 +#: ../lib/modules/asteriskAccount.inc:297 +#: ../lib/modules/asteriskAccount.inc:356 +#: ../lib/modules/asteriskAccount.inc:579 +#: ../lib/modules/asteriskAccount.inc:933 +#: ../lib/modules/asteriskAccount.inc:1268 +msgid "Can call forward" +msgstr "Může přesměrovávat hovory" + +#: ../templates/lists/changePassword.php:228 +#: ../templates/lists/changePassword.php:264 ../templates/ou_edit.php:119 +#: ../templates/config/mainmanage.php:253 +#: ../templates/config/confmodules.php:218 +#: ../templates/config/confmain.php:384 +#: ../templates/config/moduleSettings.php:229 +#: ../templates/config/conftypes.php:280 +#: ../templates/selfService/adminMain.php:546 +#: ../templates/pdfedit/pdfdelete.php:96 ../templates/pdfedit/pdfpage.php:585 +#: ../templates/pdfedit/pdfmain.php:158 ../templates/delete.php:108 +#: ../templates/profedit/profiledelete.php:92 +#: ../templates/profedit/profilepage.php:230 +#: ../templates/profedit/profilemain.php:157 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:197 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:83 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:136 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:121 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:119 +#: ../templates/initsuff.php:189 ../lib/types/automountType.inc:199 +#: ../lib/types/automountType.inc:234 ../lib/types/dhcp.inc:277 +#: ../lib/modules/device.inc:251 ../lib/modules/sambaSamAccount.inc:1344 +#: ../lib/modules/sambaSamAccount.inc:1384 +#: ../lib/modules/sambaSamAccount.inc:1470 ../lib/modules/zarafaUser.inc:833 +#: ../lib/modules/kolabUser.inc:567 ../lib/modules/phpGroupwareUser.inc:261 +#: ../lib/modules/shadowAccount.inc:432 ../lib/modules/nisnetgroup.inc:480 +#: ../lib/modules/freeRadius.inc:477 ../lib/modules/aliasEntry.inc:142 +#: ../lib/modules/aliasEntry.inc:162 ../lib/modules/groupOfNames.inc:273 +#: ../lib/modules/groupOfNames.inc:385 ../lib/lists.inc:642 +#: ../lib/lists.inc:714 ../lib/modules.inc:1084 +msgid "Cancel" +msgstr "Zrušit" + +#: ../templates/login.php:478 ../templates/login.php:536 +#: ../templates/login.php:541 ../templates/selfService/selfServiceLogin.php:90 +#: ../templates/selfService/selfServiceLogin.php:126 +#: ../templates/selfService/selfServiceLogin.php:131 +#: ../templates/selfService/selfServiceMain.php:138 +#: ../templates/selfService/selfServiceMain.php:152 +msgid "Cannot connect to specified LDAP server. Please try again." +msgstr "Nelze se připojit k zadanému LDAP serveru. Prosím, zkuste to znovu." + +#: ../templates/login.php:247 ../lib/config.inc:1308 +msgid "Cannot open config file!" +msgstr "Nelze otevřít konfigurační soubor!" + +#: ../lib/modules/imapAccess.inc:161 +msgid "Cannot update quota." +msgstr "Nelze změnit kvótu." + +#: ../lib/modules/zarafaUser.inc:104 ../lib/modules/zarafaUser.inc:168 +#: ../lib/modules/zarafaUser.inc:254 ../lib/modules/zarafaUser.inc:363 +#: ../lib/modules/zarafaUser.inc:393 ../lib/modules/zarafaUser.inc:523 +#: ../lib/modules/zarafaUser.inc:1210 +msgid "Capacity" +msgstr "Kapacita" + +#: ../templates/selfService/adminMain.php:389 +msgid "Captions and labels" +msgstr "Nadpisy a popisky" + +#: ../lib/modules/inetOrgPerson.inc:126 ../lib/modules/inetOrgPerson.inc:261 +#: ../lib/modules/inetOrgPerson.inc:484 ../lib/modules/inetOrgPerson.inc:551 +#: ../lib/modules/inetOrgPerson.inc:677 ../lib/modules/inetOrgPerson.inc:1207 +#: ../lib/modules/inetOrgPerson.inc:1444 ../lib/modules/inetOrgPerson.inc:1987 +msgid "Car license" +msgstr "Řidičský průkaz" + +#: ../lib/modules/sambaSamAccount.inc:540 +msgid "Central Europe Time, Paris, Berlin" +msgstr "Středoevropský čas, Paříž, Berlín, Praha" + +#: ../lib/modules/sambaSamAccount.inc:533 +msgid "Central Time (US & Canada), Mexico City" +msgstr "Centrální čas (USA a Kanada), México" + +#: ../templates/selfService/adminMain.php:407 +#: ../templates/pdfedit/pdfpage.php:484 ../templates/pdfedit/pdfpage.php:493 +#: ../lib/modules/device.inc:180 ../lib/modules/sambaSamAccount.inc:1115 +#: ../lib/modules/sambaSamAccount.inc:1380 ../lib/modules/zarafaUser.inc:444 +#: ../lib/modules/phpGroupwareUser.inc:154 +#: ../lib/modules/phpGroupwareUser.inc:256 +#: ../lib/modules/shadowAccount.inc:344 ../lib/modules/shadowAccount.inc:428 +#: ../lib/modules/freeRadius.inc:333 ../lib/modules/freeRadius.inc:473 +#: ../lib/modules/asteriskExtension.inc:256 ../lib/modules/aliasEntry.inc:94 +#: ../lib/modules/passwordSelfReset.inc:202 +#: ../lib/modules/groupOfNames.inc:181 ../lib/modules/groupOfNames.inc:199 +msgid "Change" +msgstr "Změnit" + +#: ../lib/modules/posixGroup.inc:207 ../lib/modules/posixGroup.inc:418 +msgid "Change GID number of users and hosts" +msgstr "Změnit GID čísla uživatelů a strojů" + +#: ../templates/config/profmanage.php:362 ../help/help.inc:126 +msgid "Change default profile" +msgstr "Změnit výchozí profil" + +#: ../lib/types/automountType.inc:234 ../lib/types/dhcp.inc:277 +#: ../lib/lists.inc:714 +msgid "Change list settings" +msgstr "Změna nastavení seznamu" + +#: ../templates/config/mainmanage.php:245 ../help/help.inc:128 +msgid "Change master password" +msgstr "Změnit hlavní heslo" + +#: ../templates/lists/changePassword.php:170 +#: ../templates/lists/changePassword.php:227 +#: ../templates/lists/changePassword.php:228 +#: ../templates/lists/changePassword.php:263 +#: ../templates/lists/changePassword.php:264 ../lib/types/user.inc:326 +#: ../help/help.inc:95 +msgid "Change password" +msgstr "Změnit heslo" + +#: ../templates/lists/changePassword.php:212 +#: ../templates/lists/changePassword.php:235 +msgid "Change password now?" +msgstr "Nyní změnit heslo?" + +#: ../templates/config/confmain.php:243 +msgid "Change passwords" +msgstr "Změnit hesla" + +#: ../lib/types/automountType.inc:235 ../lib/types/dhcp.inc:278 +#: ../lib/lists.inc:715 +msgid "Change settings" +msgstr "Změnit nastavení" + +#: ../lib/modules/posixAccount.inc:906 +msgid "Changed value because only ASCII characters are allowed." +msgstr "Změnte hodnotu, protože jsou povoleny pouze ASCII znaky." + +#: ../lib/modules/passwordSelfReset.inc:114 +msgid "Charlie" +msgstr "František" + +#: ../lib/modules/posixAccount.inc:1139 +msgid "Check home directories" +msgstr "Kontrola domovských adresářů" + +#: ../templates/tests/index.php:52 ../lib/tools/tests.inc:112 +msgid "Check if quotas and homedirectories can be managed." +msgstr "Kontrola, zda mohou být spravovány kvóty a domovské adresáře." + +#: ../templates/tests/index.php:58 ../lib/tools/tests.inc:118 +msgid "" +"Check if the LDAP schema fits the requirements of the selected account " +"modules." +msgstr "Ověří, zda LDAP schéma splňuje požadavky vybraných modulů účtů." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2401 +msgid "Check password" +msgstr "Kontrola hesla" + +#: ../templates/tests/lamdaemonTest.php:85 +msgid "Check quotas" +msgstr "Kontrola kvót" + +#: ../templates/masscreate.php:233 +msgid "" +"Check your input carefully. LAM will only do some basic checks on the upload " +"data." +msgstr "" +"Pečlivě zkontrolujte vstupní data, neboť LAM provede pouze základní kontrolu " +"nahrávaných dat." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1224 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1229 +msgid "Children" +msgstr "Podzáznamy" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:23 +msgid "Choose entry" +msgstr "Výběr záznamu" + +#: ../lib/modules/imapAccess.inc:82 +msgid "" +"Choose the way how to provide the IMAP admin password. You can use the same " +"password as for the LAM login or LAM will ask you for a password when it is " +"required." +msgstr "" +"Vyberte způsob jak zadat heslo administrátora IMAPu. Můžete zvolit stejné " +"heslo jako do LAMu nebo se vás LAM zeptá v okamžiku, kdy to bude potřeba." + +#: ../lib/config.inc:158 +msgid "Click here if you are not directed to the next page." +msgstr "Klikněte sem, pokud jste nebyli přesměrováni na další stránku." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2349 +msgid "Click to popup a dialog to select a date graphically" +msgstr "Kliknutím ve vyskakovacím dialogu graficky vybrete datum" + +#: ../templates/3rdParty/pla/lib/functions.php:2293 +msgid "Click to popup a dialog to select an entry (DN) graphically" +msgstr "Kliknutím ve vyskakovacím dialogu graficky vyberete záznam (DN)" + +#: ../lib/types/user.inc:280 +msgid "Click to switch between thumbnail and original size." +msgstr "Kliknutím přepnete mezí náhledem a původní velikostí." + +#: ../lib/modules/sambaSamAccount.inc:223 +#: ../lib/modules/sambaSamAccount.inc:356 +#: ../lib/modules/sambaSamAccount.inc:1438 +#: ../lib/modules/sambaSamAccount.inc:1716 +msgid "Client printer is default" +msgstr "Klientská tiskárna je výchozí" + +#: ../templates/schema/schema.php:197 +msgid "Collective" +msgstr "Společný" + +#: ../templates/masscreate.php:250 +msgid "Columns" +msgstr "Sloupce" + +#: ../lib/modules/sambaSamAccount.inc:296 +msgid "" +"Comma separated list of Samba workstations the user is allowed to login. " +"Empty means every workstation." +msgstr "" +"Čárkou oddělený seznam pracovních stanic Samby, ke kterým se uživatel může " +"přihlásit. Prázdný seznam znamená každou stanici." + +#: ../lib/modules/authorizedServiceObject.inc:78 +msgid "Comma separated list of services (e.g. sshd, imap, ftp)." +msgstr "Čárkou oddělený seznam služeb (např. sshd, imap, ftp)." + +#: ../lib/types/sudo.inc:80 ../lib/modules/customScripts.inc:129 +msgid "Command" +msgstr "Příkaz" + +#: ../lib/modules/sudoRole.inc:71 ../lib/modules/sudoRole.inc:97 +#: ../lib/modules/sudoRole.inc:146 ../lib/modules/sudoRole.inc:175 +#: ../lib/modules/sudoRole.inc:184 ../lib/modules/sudoRole.inc:318 +#: ../lib/modules/sudoRole.inc:693 +msgid "Commands" +msgstr "Příkazy" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:117 +msgid "Commit" +msgstr "Potvrdit" + +#: ../lib/modules/posixAccount.inc:103 ../lib/modules/posixAccount.inc:148 +#: ../lib/modules/posixAccount.inc:204 ../lib/modules/posixAccount.inc:321 +#: ../lib/modules/posixAccount.inc:403 ../lib/modules/posixAccount.inc:425 +#: ../lib/modules/posixAccount.inc:1089 ../lib/modules/posixAccount.inc:1461 +#: ../lib/modules/posixAccount.inc:2084 ../lib/modules/inetOrgPerson.inc:74 +#: ../lib/modules/inetOrgPerson.inc:579 ../lib/modules/inetOrgPerson.inc:645 +#: ../lib/modules/inetOrgPerson.inc:1051 ../lib/modules/inetOrgPerson.inc:1440 +#: ../lib/modules/inetOrgPerson.inc:1562 +#: ../lib/modules/asteriskExtension.inc:102 +#: ../lib/modules/asteriskExtension.inc:129 +#: ../lib/modules/asteriskExtension.inc:149 +#: ../lib/modules/asteriskExtension.inc:213 +#: ../lib/modules/asteriskExtension.inc:487 +msgid "Common name" +msgstr "Běžné jméno" + +#: ../lib/modules/asteriskExtension.inc:103 +msgid "Common name of the Asterisk extension." +msgstr "Běžné jméno rozšíření Asterisku" + +#: ../templates/serverInfo.php:333 ../templates/serverInfo.php:394 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1172 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:60 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:39 +msgid "Compare" +msgstr "Porovnat" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:28 +#, php-format +msgid "Compare another DN with %s" +msgstr "Porovnat jiný DN záznam s %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1169 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +msgid "Compare this DN with another" +msgstr "Porovnat tento DN záznam s jiným" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +msgid "Compare with another entry" +msgstr "Porovnat s jiným záznamem" + +#: ../templates/3rdParty/pla/htdocs/compare.php:42 +msgid "Comparing the following DNs" +msgstr "Porovnání následujících DN záznamů" + +#: ../templates/serverInfo.php:282 ../templates/serverInfo.php:369 +msgid "Completed" +msgstr "Hotovo" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:93 +msgid "Compress" +msgstr "Komprese" + +#: ../templates/serverInfo.php:112 +msgid "Config suffix" +msgstr "Sufix nastavení" + +#: ../templates/config/index.php:50 +msgid "Configuration overview" +msgstr "Přehled nastavení" + +#: ../templates/config/confmodules.php:375 +msgid "Conflicting module:" +msgstr "Kolidující moduly:" + +#: ../lib/modules/sambaSamAccount.inc:221 +#: ../lib/modules/sambaSamAccount.inc:350 +#: ../lib/modules/sambaSamAccount.inc:1434 +#: ../lib/modules/sambaSamAccount.inc:1706 +msgid "Connect client drives" +msgstr "Připojit klientské disky" + +#: ../lib/modules/sambaSamAccount.inc:222 +#: ../lib/modules/sambaSamAccount.inc:353 +#: ../lib/modules/sambaSamAccount.inc:1436 +#: ../lib/modules/sambaSamAccount.inc:1711 +msgid "Connect client printers" +msgstr "Připojit klientské tiskárny" + +#: ../templates/serverInfo.php:228 +msgid "Connection statistics" +msgstr "Statistika spojení" + +#: ../lib/modules/sambaSamAccount.inc:218 +#: ../lib/modules/sambaSamAccount.inc:1422 +#: ../lib/modules/sambaSamAccount.inc:1699 +msgid "Connection time limit" +msgstr "Časový limit spojení" + +#: ../lib/modules/inetOrgPerson.inc:1164 +msgid "Contact data" +msgstr "Kontaktní údaje" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:721 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1301 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +msgid "Container" +msgstr "Kontejner" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1458 +msgid "Container and object class(es)" +msgstr "Kontejner a třída(y) objektu" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:27 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:88 +#: ../templates/3rdParty/pla/htdocs/copy.php:108 +msgid "Copy" +msgstr "Kopírovat" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:32 +#, php-format +msgid "Copy %s to a new object." +msgstr "Kopírovat %s do nového objektu." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1098 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1102 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1103 +msgid "Copy or move this entry" +msgstr "Kopírovat nebo přesunout tento záznam" + +#: ../templates/3rdParty/pla/htdocs/copy.php:130 +#, php-format +msgid "Copy successful. DN %s has been created." +msgstr "Úspěšně zkopírováno. Byl vytvořen %s DN záznam." + +#: ../templates/3rdParty/pla/htdocs/copy.php:48 +msgid "Copying" +msgstr "Kopírování" + +#: ../templates/3rdParty/pla/htdocs/import.php:37 +msgid "Could not add object" +msgstr "Nelze přidat objekt" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:370 +msgid "Could not add the object to the LDAP server." +msgstr "Nelze přidat objekt do LDAP serveru." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:30 +msgid "Could not delete attribute value." +msgstr "Nelze smazat smazat hodnotu atributu." + +#: ../templates/3rdParty/pla/htdocs/import.php:38 +msgid "Could not delete object" +msgstr "Nelze smazat objekt" + +#: ../templates/3rdParty/pla/htdocs/delete.php:37 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:47 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:73 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:90 +msgid "Could not delete the entry." +msgstr "Nelze smazat tento záznam." + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:37 +#, php-format +msgid "Could not fetch binary data from LDAP server for attribute [%s]." +msgstr "Pro atribut [%s] nelze získat binární data z LDAP serveru." + +#: ../templates/3rdParty/pla/lib/functions.php:1946 +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:60 +#, php-format +msgid "Could not fetch jpeg data from LDAP server for attribute [%s]." +msgstr "Pro atribut [%s] nelze získat jpeg obrázek z LDAP serveru." + +#: ../templates/3rdParty/pla/htdocs/import.php:41 +msgid "Could not modify object" +msgstr "Nelze změnit objekt" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:528 +msgid "Could not perform ldap_modify operation." +msgstr "ldap_modify operace nemůže být provedena." + +#: ../templates/config/profmanage.php:136 +#: ../templates/selfService/profManage.php:116 +msgid "Could not rename file!" +msgstr "Nelze přejmenovat soubor!" + +#: ../templates/3rdParty/pla/htdocs/import.php:39 +#: ../templates/3rdParty/pla/htdocs/import.php:40 +#: ../templates/3rdParty/pla/htdocs/rename.php:60 +msgid "Could not rename the entry." +msgstr "Nelze přejmenovat záznam." + +#: ../templates/pdfedit/pdfpage.php:99 +msgid "Could not save PDF structure, access denied." +msgstr "Nelze uložit PDF strukturu, přístup odmítnut." + +#: ../lib/modules/kolabUser.inc:86 ../lib/modules/kolabUser.inc:147 +#: ../lib/modules/kolabUser.inc:176 ../lib/modules/kolabUser.inc:215 +#: ../lib/modules/kolabUser.inc:285 ../lib/modules/kolabUser.inc:771 +msgid "Country" +msgstr "Země" + +#: ../lib/modules/kolabUser.inc:233 ../lib/modules/kolabUser.inc:234 +msgid "Country name is invalid!" +msgstr "Neplatný název země!" + +#: ../templates/pdfedit/pdfmain.php:137 +#: ../templates/profedit/profilemain.php:131 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1185 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1189 +#: ../templates/initsuff.php:188 ../lib/modules/posixAccount.inc:1324 +msgid "Create" +msgstr "Vytvořit" + +#: ../lib/lists.inc:431 ../lib/lists.inc:617 ../lib/modules.inc:1204 +#: ../help/help.inc:158 +msgid "Create PDF file" +msgstr "Vytvořit PDF soubor" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1186 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1190 +msgid "Create a child entry" +msgstr "Vytvořit podzáznam" + +#: ../templates/pdfedit/pdfmain.php:130 +msgid "Create a new PDF structure" +msgstr "Vytvořit novou PDF strukturu" + +#: ../templates/profedit/profilemain.php:119 +msgid "Create a new profile" +msgstr "Vytvořit nový profil" + +#: ../lib/types/dhcp.inc:46 +msgid "Create another DHCP entry" +msgstr "Vytvořit další DHCP záznam" + +#: ../lib/types/nisObjectType.inc:29 +msgid "Create another NIS object" +msgstr "Vytvořit další NIS objekt" + +#: ../lib/baseType.inc:45 +msgid "Create another account" +msgstr "Vytvořit další účet" + +#: ../lib/types/zarafaAddressListType.inc:43 +msgid "Create another address list" +msgstr "Vytvořit další seznam adres" + +#: ../lib/types/mailAlias.inc:43 ../lib/types/alias.inc:43 +msgid "Create another alias" +msgstr "Vytvořit další alias" + +#: ../lib/types/automountType.inc:29 +msgid "Create another automount entry" +msgstr "Vytvořit další záznam automountu" + +#: ../lib/types/smbDomain.inc:43 +msgid "Create another domain" +msgstr "Vytvořit další doménu" + +#: ../templates/3rdParty/pla/htdocs/create.php:100 +msgid "Create another entry" +msgstr "Vytvořit další záznam" + +#: ../lib/types/asteriskExt.inc:44 +msgid "Create another extension" +msgstr "Vytvořit další rozšíření" + +#: ../lib/types/gon.inc:43 ../lib/types/zarafaDynamicGroupType.inc:43 +#: ../lib/types/group.inc:44 ../lib/types/netgroup.inc:43 +msgid "Create another group" +msgstr "Vytvořit další skupinu" + +#: ../lib/types/host.inc:43 +msgid "Create another host" +msgstr "Vytvořit další stroj" + +#: ../lib/types/ppolicyType.inc:29 +msgid "Create another policy" +msgstr "Vytvořit další politiku" + +#: ../lib/types/sudo.inc:29 +msgid "Create another sudo role" +msgstr "Vytvořit dalšího roli suda" + +#: ../lib/types/user.inc:43 +msgid "Create another user" +msgstr "Vytvořit dalšího uživatele" + +#: ../lib/lists.inc:622 +msgid "Create for" +msgstr "Vytvořit pro" + +#: ../lib/modules/posixAccount.inc:236 ../lib/modules/posixAccount.inc:1125 +#: ../lib/modules/posixAccount.inc:1386 +msgid "Create home directory" +msgstr "Vytvořit domovský adresář" + +#: ../lib/modules/imapAccess.inc:237 +msgid "Create mailbox" +msgstr "Vytvořit poštovní schránku" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:278 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:281 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:283 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:506 +msgid "Create new entry here" +msgstr "Zde vytvořit nový záznam" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:698 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1541 +#: ../templates/3rdParty/pla/htdocs/create.php:84 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:52 +msgid "Create object" +msgstr "Vytvořit objekt" + +#: ../lib/modules/generalInformation.inc:69 +msgid "Created by" +msgstr "Vytvořil" + +#: ../lib/types/automountType.inc:275 +msgid "Created new automount map." +msgstr "Vytvořena nová mapa automountu." + +#: ../templates/config/profmanage.php:119 +#: ../templates/selfService/profManage.php:99 +msgid "Created new profile." +msgstr "Vytvořen nový profil." + +#: ../lib/tools/fileUpload.inc:53 +msgid "Creates accounts by uploading a CSV formated file." +msgstr "Vytvořit účty nahráním formátovaného CSV souboru." + +#: ../templates/3rdParty/pla/htdocs/create.php:77 +#, php-format +msgid "Creation successful. DN %s has been created." +msgstr "Úspěšně vytvořen. DN záznam %s byl vytvořen." + +#: ../lib/modules/generalInformation.inc:73 +msgid "Creation time" +msgstr "Čas vytvoření" + +#: ../templates/serverInfo.php:230 ../templates/serverInfo.php:235 +msgid "Current connections" +msgstr "Současná spojení" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:65 +#, php-format +msgid "Current list of %s values for attribute %s:" +msgstr "Současný seznam %s hodnot atributu %s:" + +#: ../lib/modules/imapAccess.inc:290 +msgid "Current usage (kB)" +msgstr "Aktuální využití (kB)" + +#: ../lib/modules/customScripts.inc:41 ../lib/modules/customScripts.inc:52 +#: ../lib/modules/customScripts.inc:65 ../lib/modules/customScripts.inc:86 +#: ../lib/modules/customScripts.inc:95 +msgid "Custom scripts" +msgstr "Uživatelské skripty" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1097 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1101 +msgid "Cut" +msgstr "Vyjmout" + +#: ../lib/modules/ddns.inc:69 +msgid "DDNS" +msgstr "DDNS" + +#: ../lib/modules/ddns.inc:352 +msgid "" +"DDNS ist not activated. You can activate it in the DHCP settings (DDNS)." +msgstr "DDNS není aktivováno. Můžete ho aktivovat v Nastavení DHCP (DDNS)." + +#: ../lib/types/dhcp.inc:56 +msgid "DHCP" +msgstr "DHCP" + +#: ../lib/types/dhcp.inc:65 +msgid "DHCP administration" +msgstr "Správa DHCP" + +#: ../lib/types/dhcp.inc:162 ../lib/modules/dhcp_settings.inc:106 +msgid "DHCP settings" +msgstr "Nastavení DHCP" + +#: ../templates/delete.php:87 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:734 +#: ../templates/3rdParty/pla/lib/PageRender.php:110 +#: ../templates/3rdParty/pla/htdocs/compare.php:52 +#: ../templates/3rdParty/pla/htdocs/compare.php:58 +#: ../templates/3rdParty/pla/htdocs/create.php:92 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:35 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:112 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:57 ../lib/modules.inc:382 +#: ../lib/modules.inc:1732 +msgid "DN" +msgstr "DN" + +#: ../templates/3rdParty/pla/lib/import_functions.php:210 +#: ../templates/3rdParty/pla/lib/import_functions.php:222 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1866 +msgid "DN does not exist" +msgstr "DN záznam neexistuje" + +#: ../templates/masscreate.php:254 +msgid "DN settings" +msgstr "Nastavení DN" + +#: ../templates/masscreate.php:283 ../help/help.inc:152 +msgid "DN suffix" +msgstr "Sufix DN" + +#: ../lib/modules/dhcp_settings.inc:175 ../lib/modules/dhcp_settings.inc:189 +#: ../lib/modules/dhcp_settings.inc:228 ../lib/modules/dhcp_settings.inc:534 +#: ../lib/modules/dhcp_settings.inc:621 +msgid "DNS" +msgstr "DNS" + +#: ../lib/modules/dhcp_settings.inc:136 +msgid "DNS (Domain Name System)" +msgstr "DNS (Překlad doménových jmen)" + +#: ../lib/modules/asteriskExtension.inc:99 +msgid "DNs of the extension owners" +msgstr "Seznam DN vlastníků rozšíření" + +#: ../templates/3rdParty/pla/lib/export_functions.php:343 +msgid "DSML V.1 Export" +msgstr "Export DSML V.1" + +#: ../lib/modules/asteriskAccount.inc:255 +#: ../lib/modules/asteriskAccount.inc:335 +#: ../lib/modules/asteriskAccount.inc:426 +#: ../lib/modules/asteriskAccount.inc:729 +msgid "DTFM flags" +msgstr "Příznaky DTFM" + +#: ../lib/modules/asteriskAccount.inc:130 +#: ../lib/modules/asteriskAccount.inc:1205 +msgid "DTMF mode" +msgstr "DTMF mód" + +#: ../lib/modules/asteriskAccount.inc:131 +msgid "DTMF mode for SIP client configuration." +msgstr "Konfigurace DTMF módu pro SIP klienta." + +#: ../templates/3rdParty/pla/htdocs/import.php:103 +msgid "Data" +msgstr "Data" + +#: ../lib/modules/sambaSamAccount.inc:276 +msgid "Date after the user is able to change his password." +msgstr "Datum, po kterém si uživatel může změnit si heslo." + +#: ../lib/modules/sambaSamAccount.inc:278 +msgid "Date after the user must change his password." +msgstr "Datum, po kterém si uživatel musí změnit heslo." + +#: ../lib/modules/shadowAccount.inc:169 +msgid "" +"Days before password is to expire that user is warned of pending password " +"expiration. If set value must be >0." +msgstr "" +"Počet dní před vypršením hesla, během kterých bude uživatel upozorňován. " +"Pokud hodnotu vyplníte, musí být větší než 0." + +#: ../templates/config/mainmanage.php:215 +msgid "Debug" +msgstr "Ladění" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:592 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +msgid "Default" +msgstr "Výchozí" + +#: ../lib/modules/dhcp_settings.inc:139 ../lib/modules/dhcp_settings.inc:176 +#: ../lib/modules/dhcp_settings.inc:190 ../lib/modules/dhcp_settings.inc:234 +#: ../lib/modules/dhcp_settings.inc:536 ../lib/modules/dhcp_settings.inc:622 +msgid "Default gateway" +msgstr "Výchozí brána" + +#: ../templates/config/confmain.php:268 ../help/help.inc:91 +msgid "Default language" +msgstr "Výchozí jazyk" + +#: ../lib/modules/asteriskAccount.inc:222 +#: ../lib/modules/asteriskAccount.inc:301 +#: ../lib/modules/asteriskAccount.inc:358 +#: ../lib/modules/asteriskAccount.inc:594 +#: ../lib/modules/asteriskAccount.inc:951 +#: ../lib/modules/asteriskAccount.inc:1274 +msgid "Default user" +msgstr "Výchozí uživatel" + +#: ../templates/masscreate.php:272 ../templates/masscreate.php:347 +msgid "Default value" +msgstr "Výchozí hodnota" + +#: ../lib/modules/sambaDomain.inc:111 +msgid "Defines if workstations may change their passwords." +msgstr "Zadejte, zda si stanice mohou měnit svá hesla." + +#: ../lib/modules/asteriskAccount.inc:151 +msgid "" +"Defines the mailbox to check for message waiting indication (MWI) for this " +"peer." +msgstr "" +"Definuje schránku, ve které kontroluje indikaci čekající zprávy (MWI) tohoto " +"peeru." + +#: ../lib/modules/kolabUser.inc:117 ../lib/modules/kolabUser.inc:131 +#: ../lib/modules/kolabUser.inc:135 ../lib/modules/kolabUser.inc:195 +#: ../lib/modules/kolabUser.inc:218 ../lib/modules/kolabUser.inc:374 +#: ../lib/modules/kolabUser.inc:809 ../lib/modules/kolabUser.inc:873 +msgid "Delegates" +msgstr "Zástupci" + +#: ../templates/serverInfo.php:319 ../templates/serverInfo.php:388 +#: ../templates/ou_edit.php:118 ../templates/pdfedit/pdfdelete.php:95 +#: ../templates/pdfedit/pdfmain.php:157 ../templates/pdfedit/pdfmain.php:158 +#: ../templates/delete.php:107 ../templates/profedit/profilemain.php:156 +#: ../templates/profedit/profilemain.php:157 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:33 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:124 +#: ../lib/modules/posixAccount.inc:1317 ../lib/modules/zarafaUser.inc:1389 +#: ../lib/modules/zarafaUser.inc:1433 ../lib/modules/kolabUser.inc:869 +#: ../lib/modules/nisnetgroup.inc:243 ../lib/lists.inc:425 +msgid "Delete" +msgstr "Smazat" + +#: ../lib/types/dhcp.inc:163 +msgid "Delete DHCP(s)" +msgstr "Smazat DHCP záznam(y)" + +#: ../templates/3rdParty/pla/htdocs/delete.php:31 +msgid "Delete DN" +msgstr "Smazat DN záznam" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:30 +msgid "Delete LDAP entries" +msgstr "Smazat LDAP záznamy" + +#: ../lib/types/nisObjectType.inc:147 +msgid "Delete NIS object(s)" +msgstr "Smazat NIS objekt(y)" + +#: ../lib/types/zarafaAddressListType.inc:141 +msgid "Delete address list(s)" +msgstr "Smazat seznam(y) adres" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:77 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:84 +msgid "Delete after copy (move):" +msgstr "Smazat po zkopírování (přesun)" + +#: ../lib/types/mailAlias.inc:138 ../lib/types/alias.inc:138 +msgid "Delete alias(es)" +msgstr "Smazat alias(y)" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:72 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:110 +#, php-format +msgid "Delete all %s objects" +msgstr "Smazat všechny %s objekty" + +#: ../lib/types/automountType.inc:178 +msgid "Delete automount entry(ies)" +msgstr "Smazat záznam(y) automountu" + +#: ../lib/types/smbDomain.inc:159 +msgid "Delete domain(s)" +msgstr "Smazat doménu(y)" + +#: ../lib/types/asteriskExt.inc:140 +msgid "Delete extension(s)" +msgstr "Smazat rozšíření" + +#: ../lib/types/gon.inc:164 ../lib/types/zarafaDynamicGroupType.inc:157 +#: ../lib/types/group.inc:177 ../lib/types/netgroup.inc:161 +msgid "Delete group(s)" +msgstr "Smazat skupinu(y)" + +#: ../lib/modules/posixAccount.inc:1174 +msgid "Delete home directory" +msgstr "Smazat domovský adresář" + +#: ../lib/types/host.inc:164 +msgid "Delete host(s)" +msgstr "Smazat stroj(e)" + +#: ../lib/modules/imapAccess.inc:230 +msgid "Delete mailbox" +msgstr "Smazat poštovní schránku" + +#: ../lib/lists.inc:109 +msgid "Delete object" +msgstr "Smazat objekt" + +#: ../templates/ou_edit.php:192 ../help/help.inc:205 +msgid "Delete organisational unit" +msgstr "Smazat organizační jednotku" + +#: ../templates/3rdParty/pla/lib/functions.php:2014 +#: ../lib/modules/inetOrgPerson.inc:1278 +msgid "Delete photo" +msgstr "Smazat fotku" + +#: ../lib/types/ppolicyType.inc:146 +msgid "Delete policy(ies)" +msgstr "Smazat politiku(y)" + +#: ../templates/config/profmanage.php:290 +#: ../templates/selfService/profManage.php:262 ../help/help.inc:122 +msgid "Delete profile" +msgstr "Smazat profil" + +#: ../lib/modules/range.inc:91 ../lib/modules/range.inc:109 +#: ../lib/modules/range.inc:435 +msgid "Delete range" +msgstr "Smazat rozsah" + +#: ../templates/3rdParty/pla/htdocs/copy.php:146 +#, php-format +msgid "Delete successful: %s" +msgstr "Úspěšně smazáno: %s" + +#: ../lib/types/sudo.inc:151 +msgid "Delete sudo role(s)" +msgstr "Smazat roli(e) suda" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "Delete this entry" +msgstr "Smazat temto záznam" + +#: ../lib/types/user.inc:200 +msgid "Delete user(s)" +msgstr "Smazat uživatele" + +#: ../templates/delete.php:253 +#, php-format +msgid "Deleted DN: %s" +msgstr "Smazané DN: %s" + +#: ../templates/pdfedit/pdfmain.php:84 +msgid "Deleted PDF structure." +msgstr "Smazaná PDF struktura." + +#: ../lib/modules/sambaGroupMapping.inc:74 +msgid "Deleted account" +msgstr "Smazaný účet" + +#: ../templates/profedit/profilemain.php:94 +msgid "Deleted profile." +msgstr "Smazaný profil." + +#: ../lib/modules/range.inc:92 +msgid "Deletes an IP range." +msgstr "Smaže rozsah IP." + +#: ../templates/3rdParty/pla/htdocs/import.php:29 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:65 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:82 +msgid "Deleting" +msgstr "Mazaní" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:73 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:125 +msgid "Deleting Object(s)" +msgstr "Objekt(y) ke smazání" + +#: ../lib/lists.inc:922 +msgid "Deletion was successful." +msgstr "Smazání proběhlo úspěšně." + +#: ../lib/modules/asteriskAccount.inc:158 +#: ../lib/modules/asteriskAccount.inc:269 +#: ../lib/modules/asteriskAccount.inc:342 +#: ../lib/modules/asteriskAccount.inc:478 +#: ../lib/modules/asteriskAccount.inc:800 +#: ../lib/modules/asteriskAccount.inc:1226 +msgid "Deny" +msgstr "Zamítnout" + +#: ../lib/modules/inetOrgPerson.inc:128 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:267 ../lib/modules/inetOrgPerson.inc:452 +#: ../lib/modules/inetOrgPerson.inc:560 ../lib/modules/inetOrgPerson.inc:685 +#: ../lib/modules/inetOrgPerson.inc:1227 ../lib/modules/inetOrgPerson.inc:1453 +#: ../lib/modules/inetOrgPerson.inc:2033 +msgid "Department(s)" +msgstr "Oddělení" + +#: ../templates/schema/schema.php:87 ../templates/schema/schema.php:141 +#: ../templates/schema/schema.php:344 +#: ../templates/3rdParty/pla/lib/functions.php:1898 +#: ../templates/3rdParty/pla/lib/functions.php:1902 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:139 +#: ../templates/3rdParty/pla/htdocs/import.php:101 +#: ../lib/types/automountType.inc:79 ../lib/types/nisObjectType.inc:80 +#: ../lib/types/user.inc:101 ../lib/types/sudo.inc:84 ../lib/types/dhcp.inc:96 +#: ../lib/types/netgroup.inc:92 ../lib/modules/account.inc:75 +#: ../lib/modules/account.inc:88 ../lib/modules/account.inc:98 +#: ../lib/modules/account.inc:106 ../lib/modules/account.inc:221 +#: ../lib/modules/account.inc:232 ../lib/modules/posixGroup.inc:186 +#: ../lib/modules/posixGroup.inc:338 ../lib/modules/posixGroup.inc:390 +#: ../lib/modules/posixGroup.inc:457 ../lib/modules/device.inc:74 +#: ../lib/modules/device.inc:107 ../lib/modules/device.inc:117 +#: ../lib/modules/device.inc:163 ../lib/modules/device.inc:448 +#: ../lib/modules/dhcp_settings.inc:166 ../lib/modules/dhcp_settings.inc:181 +#: ../lib/modules/dhcp_settings.inc:261 ../lib/modules/dhcp_settings.inc:568 +#: ../lib/modules/dhcp_settings.inc:627 ../lib/modules/posixAccount.inc:421 +#: ../lib/modules/nisObject.inc:66 ../lib/modules/nisObject.inc:96 +#: ../lib/modules/nisObject.inc:107 ../lib/modules/nisObject.inc:148 +#: ../lib/modules/nisObject.inc:213 ../lib/modules/sambaGroupMapping.inc:325 +#: ../lib/modules/sambaGroupMapping.inc:394 ../lib/modules/automount.inc:62 +#: ../lib/modules/automount.inc:85 ../lib/modules/automount.inc:95 +#: ../lib/modules/automount.inc:130 ../lib/modules/automount.inc:192 +#: ../lib/modules/nisnetgroup.inc:77 ../lib/modules/nisnetgroup.inc:130 +#: ../lib/modules/nisnetgroup.inc:189 ../lib/modules/nisnetgroup.inc:574 +#: ../lib/modules/inetOrgPerson.inc:229 ../lib/modules/inetOrgPerson.inc:316 +#: ../lib/modules/inetOrgPerson.inc:503 ../lib/modules/inetOrgPerson.inc:585 +#: ../lib/modules/inetOrgPerson.inc:1058 ../lib/modules/inetOrgPerson.inc:1424 +#: ../lib/modules/sudoRole.inc:59 ../lib/modules/sudoRole.inc:128 +#: ../lib/modules/sudoRole.inc:172 ../lib/modules/sudoRole.inc:253 +#: ../lib/modules/sudoRole.inc:684 ../lib/modules/groupOfNames.inc:64 +#: ../lib/modules/groupOfNames.inc:99 ../lib/modules/groupOfNames.inc:130 +#: ../lib/modules/groupOfNames.inc:178 ../lib/modules/groupOfNames.inc:532 +msgid "Description" +msgstr "Popis" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "Destination DN" +msgstr "Cílový DN záznam" + +#: ../lib/modules/device.inc:38 +msgid "Device" +msgstr "Zařízení" + +#: ../lib/modules/sambaSamAccount.inc:371 +#: ../lib/modules/sambaSamAccount.inc:559 +msgid "Disable LM hashes" +msgstr "Zakázat LM heše" + +#: ../lib/modules/ddns.inc:93 ../lib/modules/ddns.inc:344 +msgid "Disable client updates" +msgstr "Zakázat klientské změny" + +#: ../lib/modules/ddns.inc:94 +msgid "Disables the client to update DNS entries." +msgstr "Zakáže klientům měnit DNS záznamy." + +#: ../lib/modules/asteriskAccount.inc:190 +#: ../lib/modules/asteriskAccount.inc:285 +#: ../lib/modules/asteriskAccount.inc:350 +#: ../lib/modules/asteriskAccount.inc:536 +#: ../lib/modules/asteriskAccount.inc:875 +#: ../lib/modules/asteriskAccount.inc:1250 +msgid "Disallowed codec" +msgstr "Nepovolené kodeky" + +#: ../lib/modules/sambaDomain.inc:106 ../lib/modules/sambaDomain.inc:186 +#: ../lib/modules/sambaDomain.inc:292 ../lib/modules/sambaDomain.inc:666 +msgid "Disconnect users outside logon hours" +msgstr "Odpojit uživatele mimo přihlašovací hodiny" + +#: ../lib/modules/sambaSamAccount.inc:219 +#: ../lib/modules/sambaSamAccount.inc:1426 +#: ../lib/modules/sambaSamAccount.inc:1700 +msgid "Disconnection time limit" +msgstr "Časový limit odpojení" + +#: ../lib/modules/sambaDomain.inc:107 +msgid "Disconnects users if they are logged in outside logon hours." +msgstr "Odpojit uživatele, pokud jsou přihlášeni mimo přihlašovací hodiny." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +msgid "Display format" +msgstr "Formát zobrazení" + +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:191 +#: ../lib/modules/sambaSamAccount.inc:236 +#: ../lib/modules/sambaSamAccount.inc:394 +#: ../lib/modules/sambaSamAccount.inc:1071 +#: ../lib/modules/sambaSamAccount.inc:1657 +#: ../lib/modules/sambaGroupMapping.inc:263 +#: ../lib/modules/sambaGroupMapping.inc:323 +#: ../lib/modules/sambaGroupMapping.inc:356 +#: ../lib/modules/sambaGroupMapping.inc:392 +msgid "Display name" +msgstr "Zobrazované jméno" + +#: ../templates/lists/changePassword.php:218 +msgid "Display on screen" +msgstr "Zobrazit na obrazovce" + +#: ../templates/3rdParty/pla/htdocs/create.php:97 +msgid "Display the created entry" +msgstr "Zobrazit vytvořený záznam" + +#: ../lib/modules.inc:475 +msgid "" +"Displayed account numbers start at \"0\". Add 2 to get the row in your " +"spreadsheet." +msgstr "" +"Zobrazená čísla účtů začínají od \"0\". Přičtětě 2, abyste získali čísla " +"řádků ve vašem tabulkovém kalkulátoru." + +#: ../templates/ou_edit.php:110 +msgid "Do you really want to delete this OU?" +msgstr "Opravdu chcete smazat toto OU?" + +#: ../templates/pdfedit/pdfdelete.php:81 ../templates/pdfedit/pdfmain.php:172 +msgid "Do you really want to delete this PDF structure?" +msgstr "Opravdu chcete smazat tuto PDF strukturu?" + +#: ../templates/profedit/profiledelete.php:81 +#: ../templates/profedit/profilemain.php:172 +msgid "Do you really want to delete this profile?" +msgstr "Opravdu chcete smazat tento profil?" + +#: ../lib/modules/kolabUser.inc:562 +msgid "Do you really want to mark this account for deletion?" +msgstr "Opravdu chcete označit tento účet ke smazání?" + +#: ../templates/delete.php:81 +msgid "Do you really want to remove the following accounts?" +msgstr "Opravdu chcete odebrat následující účty?" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:59 +msgid "Do you want to create this entry?" +msgstr "Chcete vytvořit tento záznam?" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:36 +msgid "Do you want to make these changes?" +msgstr "Chcete provést tyto změny?" + +#: ../lib/modules/sambaSamAccount.inc:192 +#: ../lib/modules/sambaSamAccount.inc:314 +#: ../lib/modules/sambaSamAccount.inc:387 +#: ../lib/modules/sambaSamAccount.inc:511 +#: ../lib/modules/sambaSamAccount.inc:1192 +#: ../lib/modules/sambaSamAccount.inc:1531 +#: ../lib/modules/sambaSamAccount.inc:1553 +#: ../lib/modules/sambaSamAccount.inc:1675 +#: ../lib/modules/sambaGroupMapping.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:290 +#: ../lib/modules/sambaGroupMapping.inc:368 +#: ../lib/modules/sambaGroupMapping.inc:414 ../lib/modules/nisnetgroup.inc:213 +#: ../lib/modules/nisnetgroup.inc:584 +msgid "Domain" +msgstr "Doména" + +#: ../lib/types/smbDomain.inc:91 ../lib/modules/sambaDomain.inc:74 +#: ../lib/modules/sambaDomain.inc:144 ../lib/modules/sambaDomain.inc:178 +#: ../lib/modules/sambaDomain.inc:249 ../lib/modules/sambaDomain.inc:254 +#: ../lib/modules/sambaDomain.inc:638 +msgid "Domain SID" +msgstr "SID domény" + +#: ../lib/modules/sambaGroupMapping.inc:335 +msgid "Domain administrators" +msgstr "Doménoví administrátoři" + +#: ../lib/modules/sambaSamAccount.inc:74 +#: ../lib/modules/sambaGroupMapping.inc:58 +#: ../lib/modules/sambaGroupMapping.inc:341 +msgid "Domain admins" +msgstr "Doménoví administrátoři" + +#: ../lib/modules/sambaSamAccount.inc:75 +#: ../lib/modules/sambaGroupMapping.inc:63 +msgid "Domain certificate admins" +msgstr "Doménoví administrátoři certifikátů" + +#: ../lib/modules/sambaSamAccount.inc:75 +#: ../lib/modules/sambaSamAccount.inc:779 +#: ../lib/modules/sambaGroupMapping.inc:61 +msgid "Domain computers" +msgstr "Doménové počítače" + +#: ../lib/modules/sambaSamAccount.inc:75 +#: ../lib/modules/sambaGroupMapping.inc:62 +msgid "Domain controllers" +msgstr "Doménové řadiče" + +#: ../lib/modules/sambaSamAccount.inc:76 +#: ../lib/modules/sambaGroupMapping.inc:65 +msgid "Domain enterprise admins" +msgstr "Doménoví podnikoví administrátoři" + +#: ../lib/modules/sambaGroupMapping.inc:70 +#: ../lib/modules/sambaGroupMapping.inc:281 +msgid "Domain group" +msgstr "Doménová skupina" + +#: ../lib/modules/sambaSamAccount.inc:74 +#: ../lib/modules/sambaGroupMapping.inc:60 +msgid "Domain guests" +msgstr "Doménoví hosté" + +#: ../lib/types/smbDomain.inc:92 ../lib/modules/dhcp_settings.inc:124 +#: ../lib/modules/dhcp_settings.inc:172 ../lib/modules/dhcp_settings.inc:186 +#: ../lib/modules/dhcp_settings.inc:210 ../lib/modules/dhcp_settings.inc:524 +#: ../lib/modules/dhcp_settings.inc:618 ../lib/modules/nisnetgroup.inc:144 +#: ../lib/modules/sambaDomain.inc:70 ../lib/modules/sambaDomain.inc:137 +#: ../lib/modules/sambaDomain.inc:177 ../lib/modules/sambaDomain.inc:234 +#: ../lib/modules/sambaDomain.inc:239 ../lib/modules/sambaDomain.inc:635 +msgid "Domain name" +msgstr "Název domény" + +#: ../lib/modules/nisnetgroup.inc:144 ../lib/modules/sambaDomain.inc:201 +#: ../lib/modules/sambaDomain.inc:202 +msgid "Domain name is invalid!" +msgstr "Neplatný název domény!" + +#: ../lib/modules/sambaSamAccount.inc:76 +#: ../lib/modules/sambaGroupMapping.inc:66 +msgid "Domain policy admins" +msgstr "Doménoví administrátoři politik" + +#: ../lib/modules/sambaSamAccount.inc:76 +#: ../lib/modules/sambaGroupMapping.inc:64 +msgid "Domain schema admins" +msgstr "Doménoví administrátoči schémat" + +#: ../lib/modules/sambaSamAccount.inc:74 +#: ../lib/modules/sambaSamAccount.inc:1981 +#: ../lib/modules/sambaGroupMapping.inc:59 +msgid "Domain users" +msgstr "Doménoví uživatelé" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:43 +msgid "Don't stop on errors" +msgstr "Nezastavovat při chybě" + +#: ../templates/pdfedit/pdfpage.php:459 +msgid "Down" +msgstr "Dolů" + +#: ../templates/masscreate.php:243 +msgid "Download sample CSV file" +msgstr "Stáhnout ukázkový CSV soubor" + +#: ../templates/serverInfo.php:122 +msgid "Dynamic subtrees" +msgstr "Dynamické podstromy" + +#: ../lib/modules/eduPerson.inc:64 +msgid "EDU person" +msgstr "EDU person" + +#: ../lib/modules/sambaSamAccount.inc:549 +msgid "East Australian Standard, Guam" +msgstr "Východoaustralský standardní čas, Guam" + +#: ../lib/modules/sambaSamAccount.inc:541 +msgid "Eastern Europe Time, South Africa" +msgstr "Východoevropský čas, Jižní Afrika" + +#: ../lib/modules/sambaSamAccount.inc:534 +msgid "Eastern Time (US & Canada), Bogota" +msgstr "Východní čas (USA a Kanada), Bogota" + +#: ../templates/pdfedit/pdfmain.php:154 +#: ../templates/profedit/profilemain.php:153 +#: ../lib/modules/sambaSamAccount.inc:1197 +#: ../lib/modules/sambaSamAccount.inc:1202 ../lib/lists.inc:419 +msgid "Edit" +msgstr "Editovat" + +#: ../lib/modules.inc:1212 +msgid "Edit again" +msgstr "Opět editovat" + +#: ../templates/config/mainmanage.php:134 ../templates/config/index.php:91 +msgid "Edit general settings" +msgstr "Editovat obecná nastavení" + +#: ../lib/modules/posixAccount.inc:1110 +msgid "Edit groups" +msgstr "Editovat skupiny" + +#: ../lib/modules/posixGroup.inc:190 +msgid "Edit members" +msgstr "Editovat členy" + +#: ../templates/config/index.php:117 +msgid "Edit self service" +msgstr "Editovat samoobslužnou část" + +#: ../templates/config/index.php:103 +msgid "Edit server profiles" +msgstr "Editovat profily serverů" + +#: ../lib/modules/nisnetgroup.inc:198 +msgid "Edit subgroups" +msgstr "Editovat podskupiny" + +#: ../lib/modules/sambaSamAccount.inc:1153 +msgid "Edit workstations" +msgstr "Editovat stanice" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1872 +#: ../lib/types/zarafaDynamicGroupType.inc:92 ../lib/types/user.inc:100 +#: ../lib/modules/zarafaDynamicGroup.inc:217 +#: ../lib/modules/zarafaDynamicGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:154 ../lib/modules/zarafaGroup.inc:160 +msgid "Email" +msgstr "E-mail" + +#: ../templates/lists/changePassword.php:200 +#: ../lib/modules/zarafaDynamicGroup.inc:60 +#: ../lib/modules/zarafaDynamicGroup.inc:61 +#: ../lib/modules/zarafaDynamicGroup.inc:113 +#: ../lib/modules/zarafaDynamicGroup.inc:155 +#: ../lib/modules/zarafaDynamicGroup.inc:174 +#: ../lib/modules/zarafaDynamicGroup.inc:449 ../lib/modules/zarafaGroup.inc:59 +#: ../lib/modules/zarafaGroup.inc:60 ../lib/modules/zarafaGroup.inc:87 +#: ../lib/modules/zarafaGroup.inc:124 ../lib/modules/zarafaGroup.inc:137 +#: ../lib/modules/zarafaGroup.inc:413 ../lib/modules/inetOrgPerson.inc:60 +#: ../lib/modules/inetOrgPerson.inc:123 ../lib/modules/inetOrgPerson.inc:159 +#: ../lib/modules/inetOrgPerson.inc:257 ../lib/modules/inetOrgPerson.inc:436 +#: ../lib/modules/inetOrgPerson.inc:545 ../lib/modules/inetOrgPerson.inc:641 +#: ../lib/modules/inetOrgPerson.inc:1190 ../lib/modules/inetOrgPerson.inc:1439 +#: ../lib/modules/inetOrgPerson.inc:1896 +#: ../lib/modules/asteriskVoicemail.inc:98 +#: ../lib/modules/asteriskVoicemail.inc:131 +#: ../lib/modules/asteriskVoicemail.inc:169 +#: ../lib/modules/asteriskVoicemail.inc:261 +#: ../lib/modules/asteriskVoicemail.inc:410 ../lib/modules/imapAccess.inc:206 +#: ../lib/modules/passwordSelfReset.inc:591 +#: ../lib/modules/passwordSelfReset.inc:660 +msgid "Email address" +msgstr "E-mailová adresa" + +#: ../lib/modules/asteriskVoicemail.inc:99 +msgid "Email address for this voicemail account." +msgstr "E-mailová adresa pro účet této hlasové schránky." + +#: ../lib/modules/zarafaUser.inc:108 ../lib/modules/kolabUser.inc:139 +msgid "Email alias" +msgstr "E-mailový alias" + +#: ../lib/modules/zarafaUser.inc:109 ../lib/modules/kolabUser.inc:140 +msgid "Email alias for this account." +msgstr "E-mailový alias tohoto účtu" + +#: ../lib/modules/zarafaUser.inc:395 ../lib/modules/zarafaUser.inc:396 +#: ../lib/modules/kolabUser.inc:231 +msgid "Email alias is invalid!" +msgstr "Neplatný e-mailový alias!" + +#: ../lib/modules/kolabUser.inc:143 +msgid "Email alias list" +msgstr "Seznam e-mailových aliasů" + +#: ../lib/modules/kolabUser.inc:232 +msgid "Email alias list has invalid format!" +msgstr "Seznam e-mailových aliasů nemá správný formát!" + +#: ../lib/types/zarafaDynamicGroupType.inc:97 +#: ../lib/modules/zarafaDynamicGroup.inc:64 +#: ../lib/modules/zarafaDynamicGroup.inc:68 +#: ../lib/modules/zarafaDynamicGroup.inc:119 +#: ../lib/modules/zarafaDynamicGroup.inc:158 +#: ../lib/modules/zarafaDynamicGroup.inc:232 +#: ../lib/modules/zarafaDynamicGroup.inc:464 ../lib/modules/zarafaGroup.inc:63 +#: ../lib/modules/zarafaGroup.inc:67 ../lib/modules/zarafaGroup.inc:93 +#: ../lib/modules/zarafaGroup.inc:127 ../lib/modules/zarafaGroup.inc:170 +#: ../lib/modules/zarafaGroup.inc:418 ../lib/modules/zarafaUser.inc:172 +#: ../lib/modules/zarafaUser.inc:195 ../lib/modules/zarafaUser.inc:369 +#: ../lib/modules/zarafaUser.inc:378 ../lib/modules/zarafaUser.inc:421 +#: ../lib/modules/zarafaUser.inc:1251 ../lib/modules/zarafaUser.inc:1439 +#: ../lib/modules/kolabUser.inc:189 ../lib/modules/kolabUser.inc:217 +#: ../lib/modules/kolabUser.inc:354 ../lib/modules/kolabUser.inc:805 +msgid "Email aliases" +msgstr "E-mailové aliasy" + +#: ../lib/modules/inetOrgPerson.inc:273 ../lib/modules/inetOrgPerson.inc:332 +#: ../lib/modules/inetOrgPerson.inc:569 ../lib/modules/inetOrgPerson.inc:701 +#: ../lib/modules/inetOrgPerson.inc:1212 ../lib/modules/inetOrgPerson.inc:1449 +msgid "Employee number" +msgstr "Číslo zaměstnance" + +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:171 +#: ../lib/modules/inetOrgPerson.inc:263 ../lib/modules/inetOrgPerson.inc:340 +#: ../lib/modules/inetOrgPerson.inc:554 ../lib/modules/inetOrgPerson.inc:601 +#: ../lib/modules/inetOrgPerson.inc:1217 ../lib/modules/inetOrgPerson.inc:1428 +msgid "Employee type" +msgstr "Druh pracovního poměru" + +#: ../lib/modules/inetOrgPerson.inc:602 +msgid "Employee type: Contractor, Employee, Intern, Temp, External, ..." +msgstr "" +"Druh pracovního poměru: dodavatel, zaměstnanec, interní, dočasný, " +"externí, ..." + +#: ../templates/lists/changePassword.php:312 +#: ../templates/lists/changePassword.php:319 ../templates/login.php:458 +msgid "Empty password submitted. Please try again." +msgstr "Zadali jste prázdné heslo. Prosím zadejte znovu jiné." + +#: ../lib/modules/passwordSelfReset.inc:77 +#: ../lib/modules/passwordSelfReset.inc:129 +msgid "Enable password self reset link" +msgstr "Povolit link pro reset vlastního hesla" + +#: ../lib/modules/ppolicy.inc:89 +msgid "" +"Enables quality checking (e.g. password length) of passwords. If set to " +"\"force\" then you need to disable password hashing in your LAM server " +"profile to change passwords with LAM." +msgstr "" +"Zapíná kontrolu kvality hesel (např. délka hesla). Pokud toto nastavíte na " +"\"force\", pak musíte vypnout hešování hesel v profilu LAM serveru (změna " +"hesel)." + +#: ../templates/3rdParty/pla/lib/export_functions.php:160 +msgid "Encountered an error while performing search." +msgstr "Došlo k chybě během hledani." + +#: ../lib/modules/imapAccess.inc:72 ../lib/modules/imapAccess.inc:107 +msgid "Encryption protocol" +msgstr "Šifrovací protokol" + +#: ../lib/modules/imapAccess.inc:73 +msgid "" +"Encryption protocol for connecting to IMAP server. LAM requires an encrypted " +"connection." +msgstr "" +"Šifrovací protokol pro připojení k IMAP serveru. LAM vyžaduje šifrované " +"spojeni." + +#: ../lib/modules/sambaSamAccount.inc:527 +msgid "Eniwetok, Kwajalein" +msgstr "Eniwetok, Kwajalein" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:91 +msgid "Enter the value(s) you would like to add:" +msgstr "Vložte hodnotu(y), kterou(é) chcete přidat:" + +#: ../lib/modules/eduPerson.inc:105 ../lib/modules/eduPerson.inc:109 +#: ../lib/modules/eduPerson.inc:173 ../lib/modules/eduPerson.inc:204 +#: ../lib/modules/eduPerson.inc:335 ../lib/modules/eduPerson.inc:681 +msgid "Entitlements" +msgstr "Oprávnění" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:473 +msgid "Entries found" +msgstr "Záznamy nalezeny" + +#: ../templates/serverInfo.php:267 +msgid "Entries sent" +msgstr "Záznamy odeslány" + +#: ../templates/3rdParty/pla/lib/export_functions.php:473 +msgid "Entry" +msgstr "Záznam" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:43 +#, php-format +msgid "Entry %s and sub-tree deleted successfully." +msgstr "Záznam %s a její podstrom byly úspěšně smazány" + +#: ../templates/3rdParty/pla/htdocs/create.php:90 +msgid "Entry created" +msgstr "Záznam vytvořen" + +#: ../templates/delete.php:309 +#: ../templates/3rdParty/pla/htdocs/mass_update.php:26 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:26 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:27 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:24 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:56 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:33 +msgid "Entry does not exist" +msgstr "Záznam neexistuje" + +#: ../templates/schema/schema.php:164 +msgid "Equality" +msgstr "Shoda" + +#: ../lib/modules/zarafaUser.inc:507 ../lib/modules/zarafaUser.inc:1202 +msgid "Equipment" +msgstr "Vybavení" + +#: ../templates/config/mainmanage.php:215 +#: ../templates/3rdParty/pla/lib/Template.php:430 +#: ../templates/3rdParty/pla/lib/Template.php:473 +#: ../templates/3rdParty/pla/lib/Template.php:517 +#: ../templates/3rdParty/pla/lib/functions.php:511 +#: ../templates/3rdParty/pla/lib/functions.php:513 +#: ../templates/3rdParty/pla/lib/ds_myldap.php:217 +#: ../templates/3rdParty/pla/htdocs/import.php:79 +msgid "Error" +msgstr "Chyba" + +#: ../templates/3rdParty/pla/lib/functions.php:1897 +#: ../templates/3rdParty/pla/lib/functions.php:1901 +msgid "Error number" +msgstr "Číslo chyby" + +#: ../templates/delete.php:261 +#, php-format +msgid "Error while deleting DN: %s" +msgstr "Došlo k chybě běhwm mazání DN: %s" + +#: ../help/help.inc:133 +msgid "" +"Every account type needs exactly one base module. This module provides a " +"structural object class." +msgstr "" +"Každý typ účtu vyžaduje právě jeden základní modul. Tento modul zajišťuje " +"strukturální třídu objektu." + +#: ../lib/modules/customScripts.inc:60 ../lib/modules/customScripts.inc:72 +#: ../lib/modules/dhcp_settings.inc:521 ../lib/modules/zarafaUser.inc:130 +#: ../help/help.inc:70 ../help/help.inc:76 ../help/help.inc:82 +#: ../help/help.inc:87 ../help/help.inc:107 +msgid "Example" +msgstr "Příklad" + +#: ../templates/masscreate.php:268 ../templates/masscreate.php:343 +msgid "Example value" +msgstr "Ukázková hodnota" + +#: ../help/help.inc:58 +msgid "Examples" +msgstr "Příklady" + +#: ../templates/config/confmain.php:290 +msgid "Execute" +msgstr "Spuštění" + +#: ../templates/tests/lamdaemonTest.php:261 +msgid "Execute lamdaemon" +msgstr "Spustit lamdaemona" + +#: ../lib/modules/freeRadius.inc:96 ../lib/modules/freeRadius.inc:122 +#: ../lib/modules/freeRadius.inc:201 ../lib/modules/freeRadius.inc:229 +#: ../lib/modules/freeRadius.inc:431 ../lib/modules/freeRadius.inc:628 +msgid "Expiration date" +msgstr "Datum expirace" + +#: ../lib/modules/asteriskAccount.inc:202 +#: ../lib/modules/asteriskAccount.inc:291 +#: ../lib/modules/asteriskAccount.inc:353 +#: ../lib/modules/asteriskAccount.inc:558 +#: ../lib/modules/asteriskAccount.inc:902 +#: ../lib/modules/asteriskAccount.inc:1259 +msgid "Expiration timestamp" +msgstr "Čas expirace" + +#: ../lib/modules/asteriskAccount.inc:203 +msgid "Expiration timestamp (\"regseconds\" option)." +msgstr "Čas expirace (volba \"regseconds\")." + +#: ../lib/types/ppolicyType.inc:86 ../lib/modules/ppolicy.inc:108 +#: ../lib/modules/ppolicy.inc:140 ../lib/modules/ppolicy.inc:166 +#: ../lib/modules/ppolicy.inc:206 ../lib/modules/ppolicy.inc:481 +msgid "Expire warning" +msgstr "Varování před koncem platnosti" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1081 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1084 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:305 +#: ../templates/3rdParty/pla/htdocs/export_form.php:37 +#: ../templates/3rdParty/pla/htdocs/export_form.php:53 +msgid "Export" +msgstr "Export" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:108 +msgid "Export format" +msgstr "Formát exportu" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Export subtree" +msgstr "Export podstromu" + +#: ../templates/serverInfo.php:347 +msgid "Extended" +msgstr "Rozšířené" + +#: ../lib/types/asteriskExt.inc:92 ../lib/modules/asteriskExtension.inc:86 +#: ../lib/modules/asteriskExtension.inc:125 +#: ../lib/modules/asteriskExtension.inc:135 +#: ../lib/modules/asteriskExtension.inc:229 +#: ../lib/modules/asteriskExtension.inc:481 +msgid "Extension name" +msgstr "Název rozšíření" + +#: ../lib/modules/asteriskExtension.inc:98 +#: ../lib/modules/asteriskExtension.inc:128 +#: ../lib/modules/asteriskExtension.inc:176 +#: ../lib/modules/asteriskExtension.inc:255 +#: ../lib/modules/asteriskExtension.inc:327 +#: ../lib/modules/asteriskExtension.inc:484 +msgid "Extension owners" +msgstr "Vlastníci rozšíření" + +#: ../templates/3rdParty/pla/htdocs/import.php:66 +msgid "Failed" +msgstr "Neúspěšně" + +#: ../templates/initsuff.php:151 +msgid "Failed to create entry!" +msgstr "Selhalo vytvoření záznamu!" + +#: ../lib/types/ppolicyType.inc:85 ../lib/modules/ppolicy.inc:104 +#: ../lib/modules/ppolicy.inc:145 ../lib/modules/ppolicy.inc:165 +#: ../lib/modules/ppolicy.inc:272 ../lib/modules/ppolicy.inc:480 +msgid "Failure count interval" +msgstr "Interval počtu neúspěchů" + +#: ../lib/modules/inetOrgPerson.inc:58 ../lib/modules/inetOrgPerson.inc:124 +#: ../lib/modules/inetOrgPerson.inc:156 ../lib/modules/inetOrgPerson.inc:255 +#: ../lib/modules/inetOrgPerson.inc:428 ../lib/modules/inetOrgPerson.inc:542 +#: ../lib/modules/inetOrgPerson.inc:637 ../lib/modules/inetOrgPerson.inc:1185 +#: ../lib/modules/inetOrgPerson.inc:1438 ../lib/modules/inetOrgPerson.inc:1924 +msgid "Fax number" +msgstr "Číslo faxu" + +#: ../lib/modules/zarafaUser.inc:139 ../lib/modules/zarafaUser.inc:176 +#: ../lib/modules/zarafaUser.inc:375 ../lib/modules/zarafaUser.inc:596 +#: ../lib/modules/zarafaUser.inc:1265 ../lib/modules/zarafaUser.inc:1301 +msgid "Features" +msgstr "Vlastnosti" + +#: ../templates/config/mainmanage.php:219 +#: ../templates/3rdParty/pla/lib/functions.php:533 +#: ../templates/3rdParty/pla/tools/unserialize.php:14 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "File" +msgstr "Soubor" + +#: ../lib/modules/sambaSamAccount.inc:290 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user and $group are replaced with user and group name." +msgstr "" +"Název souboru (včetně relativní cesty ke sdílení netlogon), který může být " +"spouštěn během přihlašování. $user a $group budou nahrazeny za uživatelské " +"jméno nebo název skupiny." + +#: ../lib/modules/zarafaServer.inc:69 ../lib/modules/zarafaServer.inc:93 +#: ../lib/modules/zarafaServer.inc:110 ../lib/modules/zarafaServer.inc:124 +#: ../lib/modules/zarafaServer.inc:158 ../lib/modules/zarafaServer.inc:324 +msgid "File path" +msgstr "Cesta k souboru" + +#: ../templates/masscreate.php:229 ../lib/tools/fileUpload.inc:44 +#: ../lib/types/automountType.inc:197 ../lib/types/dhcp.inc:242 +#: ../lib/lists.inc:685 +msgid "File upload" +msgstr "Nahrání souboru" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +#: ../lib/types/zarafaAddressListType.inc:94 +#: ../lib/types/zarafaDynamicGroupType.inc:95 +#: ../lib/modules/zarafaDynamicGroup.inc:84 +#: ../lib/modules/zarafaDynamicGroup.inc:147 +#: ../lib/modules/zarafaDynamicGroup.inc:160 +#: ../lib/modules/zarafaDynamicGroup.inc:213 +#: ../lib/modules/zarafaDynamicGroup.inc:459 +#: ../lib/modules/zarafaAddressList.inc:72 +#: ../lib/modules/zarafaAddressList.inc:123 +#: ../lib/modules/zarafaAddressList.inc:134 +#: ../lib/modules/zarafaAddressList.inc:181 +#: ../lib/modules/zarafaAddressList.inc:325 ../lib/modules/zarafaUser.inc:124 +#: ../lib/modules/nisnetgroup.inc:94 ../lib/modules/nisnetgroup.inc:467 +#: ../lib/lists.inc:344 ../help/help.inc:144 +msgid "Filter" +msgstr "Filtr" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:511 +msgid "Filter performed" +msgstr "Filtr použit" + +#: ../lib/types/user.inc:96 ../lib/modules/inetOrgPerson.inc:48 +#: ../lib/modules/inetOrgPerson.inc:122 ../lib/modules/inetOrgPerson.inc:293 +#: ../lib/modules/inetOrgPerson.inc:499 ../lib/modules/inetOrgPerson.inc:593 +#: ../lib/modules/inetOrgPerson.inc:1037 ../lib/modules/inetOrgPerson.inc:1426 +#: ../lib/modules/inetOrgPerson.inc:1882 +msgid "First name" +msgstr "Křestní jméno" + +#: ../lib/modules/inetOrgPerson.inc:48 ../lib/modules/inetOrgPerson.inc:49 +msgid "First name contains invalid characters!" +msgstr "Křestní jméno obsahuje neplatné znaky!" + +#: ../lib/modules/inetOrgPerson.inc:594 +msgid "First name of user. Only letters, - and spaces are allowed." +msgstr "Křestní jméno uživatele. Přípustné jsou pouze písmena, - a mezera." + +#: ../lib/modules/ddns.inc:90 +msgid "Fix IP addresses" +msgstr "Statické IP adresy" + +#: ../templates/config/confmain.php:341 +msgid "Fixed list" +msgstr "Statický seznam" + +#: ../lib/modules/kolabUser.inc:124 +msgid "For automatic invitation handling." +msgstr "Pro obsluhu automatických pozvánek" + +#: ../lib/modules/nisnetgroup.inc:91 +msgid "" +"For the upload please specify the entries in the format \"(HOST,USER," +"DOMAIN)\". Multiple entries are separated by semicolon." +msgstr "" +"Prosím, pro načtení uveďte záznamy ve formátu \"(STROJ,UZIVATEL,DOMENA)\". " +"Záznamy jsou odděleny středníkem." + +#: ../lib/modules/shadowAccount.inc:358 +msgid "Force password change" +msgstr "Vynutit změnu hesla" + +#: ../lib/modules/passwordSelfReset.inc:537 +msgid "Forgot password?" +msgstr "Zapomenuté heslo?" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:486 ../help/help.inc:194 +msgid "Format" +msgstr "Formát" + +#: ../lib/modules/kolabUser.inc:87 ../lib/modules/kolabUser.inc:116 +#: ../lib/modules/kolabUser.inc:155 ../lib/modules/kolabUser.inc:201 +#: ../lib/modules/kolabUser.inc:219 ../lib/modules/kolabUser.inc:314 +#: ../lib/modules/kolabUser.inc:783 ../lib/modules/kolabUser.inc:835 +msgid "Free/Busy interval" +msgstr "Interval volno/obsazeno" + +#: ../lib/modules/kolabUser.inc:239 ../lib/modules/kolabUser.inc:240 +msgid "Free/Busy interval must be a number!" +msgstr "Interval volno/obsazeno musí být číslo!" + +#: ../lib/modules/freeRadius.inc:66 +msgid "FreeRadius" +msgstr "FreeRadius" + +#: ../lib/modules/sambaSamAccount.inc:1288 +msgid "Friday" +msgstr "Pátek" + +#: ../templates/config/confmain.php:314 ../help/help.inc:188 +msgid "From address" +msgstr "Odesílatel" + +#: ../templates/config/confmain.php:424 +msgid "From address for password mails is invalid." +msgstr "Není platný odesílatel uvedený pro zaslání hesla." + +#: ../lib/modules/asteriskAccount.inc:138 +#: ../lib/modules/asteriskAccount.inc:259 +#: ../lib/modules/asteriskAccount.inc:337 +#: ../lib/modules/asteriskAccount.inc:441 +#: ../lib/modules/asteriskAccount.inc:747 +#: ../lib/modules/asteriskAccount.inc:1211 +msgid "From domain" +msgstr "Odesílající doména" + +#: ../lib/modules/asteriskAccount.inc:139 +msgid "From domain setting for this account." +msgstr "Nastavení odesílající domény tohoto účtu." + +#: ../lib/modules/asteriskAccount.inc:134 +#: ../lib/modules/asteriskAccount.inc:257 +#: ../lib/modules/asteriskAccount.inc:336 +#: ../lib/modules/asteriskAccount.inc:434 +#: ../lib/modules/asteriskAccount.inc:738 +#: ../lib/modules/asteriskAccount.inc:1208 +msgid "From user" +msgstr "Odesílatel" + +#: ../lib/modules/asteriskAccount.inc:135 +msgid "From user setting for this account." +msgstr "Nastavení odesílatele tohoto účtu." + +#: ../lib/modules/asteriskAccount.inc:142 +#: ../lib/modules/asteriskAccount.inc:261 +#: ../lib/modules/asteriskAccount.inc:338 +#: ../lib/modules/asteriskAccount.inc:448 +#: ../lib/modules/asteriskAccount.inc:756 +#: ../lib/modules/asteriskAccount.inc:1214 +msgid "Full contact" +msgstr "Celý kontakt" + +#: ../templates/lists/changePassword.php:196 +#: ../lib/modules/asteriskVoicemail.inc:94 +#: ../lib/modules/asteriskVoicemail.inc:130 +#: ../lib/modules/asteriskVoicemail.inc:163 +#: ../lib/modules/asteriskVoicemail.inc:255 +#: ../lib/modules/asteriskVoicemail.inc:398 +msgid "Full name" +msgstr "Celé jméno" + +#: ../lib/modules/asteriskVoicemail.inc:95 +msgid "Full name for Asterisk voicemail mailbox." +msgstr "Plný název hlasové schránky Asterisku." + +#: ../templates/3rdParty/pla/lib/functions.php:537 +#: ../templates/3rdParty/pla/tools/unserialize.php:17 +msgid "Function" +msgstr "Funkce" + +#: ../lib/modules/inetOrgPerson.inc:374 +msgid "GB-12345" +msgstr "123 45" + +#: ../lib/types/host.inc:96 ../lib/types/group.inc:93 ../lib/types/user.inc:93 +#: ../lib/modules/posixGroup.inc:176 ../lib/modules/posixGroup.inc:331 +#: ../lib/modules/posixGroup.inc:344 ../lib/modules/posixGroup.inc:386 +#: ../lib/modules/posixGroup.inc:406 ../lib/modules/posixGroup.inc:455 +#: ../lib/modules/posixGroup.inc:475 ../lib/modules/posixAccount.inc:99 +#: ../lib/modules/posixAccount.inc:315 ../lib/modules/posixAccount.inc:1463 +#: ../lib/modules/sambaGroupMapping.inc:321 +#: ../lib/modules/sambaGroupMapping.inc:390 +msgid "GID number" +msgstr "GID" + +#: ../lib/modules/posixGroup.inc:475 +msgid "" +"GID number has changed. Please select checkbox to change GID number of users " +"and hosts." +msgstr "" +"GID se změnil. Prosim zaškrtněte pole pro změnu čísel GID uživatelů a strojů." + +#: ../lib/modules/posixAccount.inc:99 +#, php-format +msgid "" +"GID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" +msgstr "" +"GID se změnil. Kvůli zachování vlastnictví souborů musíte spustit " +"následující příkaz jako root: \"find / -gid %s -uid %s -exec chgrp %s {} \\;" + +#: ../lib/modules/posixGroup.inc:482 +msgid "GID number has to be a numeric value!" +msgstr "GID musí být číslo!" + +#: ../lib/modules/posixAccount.inc:265 ../lib/modules/posixAccount.inc:305 +#: ../lib/modules/posixAccount.inc:316 ../lib/modules/posixAccount.inc:375 +#: ../lib/modules/posixAccount.inc:413 ../lib/modules/posixAccount.inc:1098 +#: ../lib/modules/posixAccount.inc:1464 +msgid "Gecos" +msgstr "Gecos" + +#: ../lib/modules/generalInformation.inc:51 +msgid "General information" +msgstr "Všeobecné informace" + +#: ../templates/config/confmodules.php:155 +#: ../templates/config/confmain.php:188 +#: ../templates/config/moduleSettings.php:154 +#: ../templates/config/conftypes.php:173 +#: ../templates/selfService/adminMain.php:337 +#: ../templates/profedit/profilepage.php:204 +msgid "General settings" +msgstr "Obecná nastavení" + +#: ../templates/lists/changePassword.php:214 ../help/help.inc:186 +msgid "Generate random password" +msgstr "Vygenerovat náhodné heslo" + +#: ../templates/3rdParty/pla/lib/functions.php:63 +#: ../templates/3rdParty/pla/lib/functions.php:595 +msgid "Generic Error" +msgstr "Generická chyba" + +#: ../lib/modules/kolabUser.inc:178 +msgid "Germany" +msgstr "Německo" + +#: ../templates/schema/schema.php:126 ../templates/schema/schema.php:263 +#: ../templates/schema/schema.php:294 ../templates/schema/schema.php:319 +msgid "Go" +msgstr "Spustit" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:215 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:139 +msgid "Go back" +msgstr "Návrat" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1864 +msgid "Go to" +msgstr "Přejít na" + +#: ../lib/types/ppolicyType.inc:82 ../lib/modules/ppolicy.inc:92 +#: ../lib/modules/ppolicy.inc:141 ../lib/modules/ppolicy.inc:162 +#: ../lib/modules/ppolicy.inc:214 ../lib/modules/ppolicy.inc:477 +msgid "Grace authentication limit" +msgstr "Limit odkladu autentizace" + +#: ../lib/modules/quota.inc:117 ../lib/modules/quota.inc:390 +msgid "Grace block period" +msgstr "Odklad pro uvolnění bloků" + +#: ../lib/modules/quota.inc:118 +msgid "" +"Grace block period. Most filesystems use a fixed maximum value of 7 days." +msgstr "" +"Odklad pro uvolnění bloků. Většina souborových systému má odklad natvrdo " +"nastaven na maximální hodnotu 7 dní." + +#: ../lib/modules/quota.inc:140 +msgid "" +"Grace inode (files) period. Most filesystems use a fixed maximum value of 7 " +"days." +msgstr "" +"Odklad pro uvolnění inodů (souborů). Většina souborových systému má odklad " +"natvrdo nastaven na maximální hodnotu 7 dní." + +#: ../lib/modules/quota.inc:139 ../lib/modules/quota.inc:394 +msgid "Grace inode period" +msgstr "Odklad pro uvolnění inodů" + +#: ../templates/config/confmain.php:295 +#: ../templates/selfService/adminMain.php:478 +msgid "Group" +msgstr "Skupina" + +#: ../lib/types/group.inc:63 +msgid "Group accounts (e.g. Unix and Samba)" +msgstr "Účty skupin (např. Unix a Samba)" + +#: ../lib/types/group.inc:96 ../lib/modules/posixGroup.inc:377 +#: ../lib/modules/nisnetgroup.inc:110 +msgid "Group description" +msgstr "Popis skupiny" + +#: ../lib/modules/posixGroup.inc:391 +msgid "Group description. If left empty group name will be used." +msgstr "" +"Pokud necháte popis skupiny prázdný, pak se do něj vloží název skupiny." + +#: ../lib/types/gon.inc:92 ../lib/types/gon.inc:93 ../lib/types/group.inc:95 +msgid "Group member DNs" +msgstr "DN členů skupiny" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:94 +#: ../lib/types/group.inc:94 ../lib/modules/posixGroup.inc:189 +#: ../lib/modules/posixGroup.inc:239 ../lib/modules/posixGroup.inc:332 +#: ../lib/modules/posixGroup.inc:350 ../lib/modules/posixGroup.inc:394 +#: ../lib/modules/posixGroup.inc:398 ../lib/modules/posixGroup.inc:456 +msgid "Group members" +msgstr "Členové skupiny" + +#: ../lib/types/gon.inc:91 ../lib/types/zarafaDynamicGroupType.inc:91 +#: ../lib/types/group.inc:92 ../lib/types/netgroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:56 +#: ../lib/modules/zarafaDynamicGroup.inc:105 +#: ../lib/modules/zarafaDynamicGroup.inc:154 +#: ../lib/modules/zarafaDynamicGroup.inc:169 +#: ../lib/modules/zarafaDynamicGroup.inc:170 +#: ../lib/modules/zarafaDynamicGroup.inc:194 +#: ../lib/modules/zarafaDynamicGroup.inc:444 ../lib/modules/posixGroup.inc:166 +#: ../lib/modules/posixGroup.inc:335 ../lib/modules/posixGroup.inc:365 +#: ../lib/modules/posixGroup.inc:414 ../lib/modules/posixGroup.inc:454 +#: ../lib/modules/posixGroup.inc:483 ../lib/modules/posixGroup.inc:484 +#: ../lib/modules/posixGroup.inc:485 ../lib/modules/nisnetgroup.inc:73 +#: ../lib/modules/nisnetgroup.inc:102 ../lib/modules/nisnetgroup.inc:129 +#: ../lib/modules/nisnetgroup.inc:141 ../lib/modules/nisnetgroup.inc:183 +#: ../lib/modules/nisnetgroup.inc:572 ../lib/modules/groupOfNames.inc:60 +#: ../lib/modules/groupOfNames.inc:92 ../lib/modules/groupOfNames.inc:129 +#: ../lib/modules/groupOfNames.inc:528 +msgid "Group name" +msgstr "Název skupiny" + +#: ../lib/modules/zarafaDynamicGroup.inc:169 +msgid "Group name already in use." +msgstr "Název skupiny je již používán." + +#: ../lib/modules/zarafaDynamicGroup.inc:170 +#: ../lib/modules/zarafaDynamicGroup.inc:171 ../lib/modules/posixGroup.inc:485 +#: ../lib/modules/posixGroup.inc:486 ../lib/modules/nisnetgroup.inc:141 +msgid "" +"Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Název skupiny obsahuje neplatné znaky. Přípustné znaky jsou: a-z, A-Z, 0-9 " +"a .-_ !" + +#: ../lib/modules/posixGroup.inc:484 +msgid "Group name in use. Selected next free group name." +msgstr "Název skupiny je již používán. Byl vybrán další volný název." + +#: ../lib/modules/zarafaDynamicGroup.inc:57 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ ." +msgstr "" +"Název skupiny, která má být vytvořena. Přípustné znaky jsou: a-z, A-Z, 0-9 " +"a .-_ ." + +#: ../lib/modules/posixGroup.inc:415 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ . If group name is already used group name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"Název skupiny, která by se měla vytvořit. Přípustné znaky jsou: a-z, A-Z, " +"0-9, .-_ a mezeru. Pokud je již název skupiny použitý, přidá se k němu " +"následující volné číslo, aby se získal dosud nepoužitý název skupiny." + +#: ../lib/modules/freeRadius.inc:88 ../lib/modules/freeRadius.inc:92 +#: ../lib/modules/freeRadius.inc:120 ../lib/modules/freeRadius.inc:146 +#: ../lib/modules/freeRadius.inc:177 ../lib/modules/freeRadius.inc:226 +#: ../lib/modules/freeRadius.inc:280 ../lib/modules/freeRadius.inc:625 +msgid "Group names" +msgstr "Názvy skupin" + +#: ../lib/types/gon.inc:53 ../lib/modules/posixAccount.inc:273 +#: ../lib/modules/posixAccount.inc:325 ../lib/modules/posixAccount.inc:1231 +#: ../lib/modules/posixAccount.inc:1374 ../lib/modules/posixAccount.inc:1478 +#: ../lib/modules/groupOfNames.inc:44 +msgid "Group of names" +msgstr "Skupina názvů" + +#: ../lib/types/gon.inc:62 +msgid "Group of names accounts" +msgstr "Účty skupiny názvů" + +#: ../lib/modules/groupOfUniqueNames.inc:42 +msgid "Group of unique names" +msgstr "Skupina jedinečných názvů" + +#: ../lib/modules/posixGroup.inc:356 ../lib/modules/posixGroup.inc:402 +msgid "Group password" +msgstr "Heslo skupiny" + +#: ../lib/modules/sambaGroupMapping.inc:286 +msgid "Group type" +msgstr "Typ skupiny" + +#: ../lib/types/group.inc:54 ../lib/modules/posixGroup.inc:303 +#: ../lib/modules/generalInformation.inc:103 +msgid "Groups" +msgstr "Skupiny" + +#: ../lib/modules/dhcp_settings.inc:90 +msgid "H-Node (0x08)" +msgstr "H-Node (0x08)" + +#: ../templates/config/confmain.php:327 ../help/help.inc:197 +msgid "HTML format" +msgstr "HTML formát" + +#: ../templates/config/confmain.php:362 +#: ../templates/selfService/adminMain.php:369 ../help/help.inc:116 +msgid "HTTP authentication" +msgstr "HTTP autentizace" + +#: ../lib/modules/zarafaServer.inc:61 ../lib/modules/zarafaServer.inc:81 +#: ../lib/modules/zarafaServer.inc:108 ../lib/modules/zarafaServer.inc:120 +#: ../lib/modules/zarafaServer.inc:142 ../lib/modules/zarafaServer.inc:314 +msgid "HTTP port" +msgstr "HTTP port" + +#: ../lib/modules/quota.inc:621 ../lib/modules/systemQuotas.inc:374 +msgid "Hard block" +msgstr "Pevné bloky" + +#: ../lib/modules/quota.inc:111 ../lib/modules/quota.inc:112 +#: ../lib/modules/quota.inc:389 ../lib/modules/quota.inc:494 +#: ../lib/modules/systemQuotas.inc:119 +msgid "Hard block limit" +msgstr "Limit pevných bloků" + +#: ../lib/modules/quota.inc:623 ../lib/modules/systemQuotas.inc:376 +msgid "Hard inode" +msgstr "Pevné inody" + +#: ../lib/modules/quota.inc:134 +msgid "Hard inode (files) limit" +msgstr "Limit pevných inodů (souborů)" + +#: ../lib/modules/quota.inc:133 ../lib/modules/quota.inc:393 +#: ../lib/modules/quota.inc:496 ../lib/modules/systemQuotas.inc:123 +msgid "Hard inode limit" +msgstr "Limit pevných inodů" + +#: ../lib/modules/generalInformation.inc:97 +msgid "Has subentries" +msgstr "Obsahuje podzáznamy" + +#: ../lib/modules/sambaSamAccount.inc:529 +msgid "Hawaii" +msgstr "Havaj" + +#: ../templates/pdfedit/pdfpage.php:445 ../templates/pdfedit/pdfpage.php:538 +#: ../templates/pdfedit/pdfpage.php:545 +msgid "Headline" +msgstr "Titulek" + +#: ../templates/main_header.php:123 ../lib/modules.inc:619 +msgid "Help" +msgstr "Nápověda" + +#: ../lib/tools/schemaBrowser.inc:53 +msgid "Here you can browse LDAP object classes and attributes." +msgstr "Zde můžete procházet třídy LDAP objektů a atributů." + +#: ../lib/modules/sambaSamAccount.inc:369 +msgid "Here you can change the settings for the terminal server access." +msgstr "Zde můžete změnit nastavní pro přístup k terminálovému serveru." + +#: ../templates/masscreate.php:121 +msgid "Here you can create multiple accounts by providing a CSV file." +msgstr "Zde můžete vytvořít více účtů pomocí CSV souboru." + +#: ../lib/modules/dhcp_settings.inc:167 +msgid "Here you can enter a description for this DHCP entry." +msgstr "Zde můžete zadat popis tohoto DHCP záznamu." + +#: ../lib/modules/nisnetgroup.inc:78 ../lib/modules/groupOfNames.inc:65 +msgid "Here you can enter a description for this group." +msgstr "Zde můžete zadat popis skupiny." + +#: ../lib/modules/sudoRole.inc:60 +msgid "Here you can enter a description for this role." +msgstr "Zde můžete zadat popis této role suda." + +#: ../lib/modules/zarafaUser.inc:125 ../lib/modules/nisnetgroup.inc:95 +msgid "" +"Here you can enter a filter value. Only entries which contain the filter " +"text will be shown." +msgstr "" +"Zde můžete zadat filtr. Zobrazeny budou pouze záznamy obsahující text filtru." + +#: ../lib/modules/posixAccount.inc:355 +msgid "" +"Here you can enter a list of additional group memberships. The group names " +"are separated by commas." +msgstr "" +"Zde můžete zadat seznam doplňkových skupin. Názvy skupin jsou odděleny " +"čárkami." + +#: ../lib/modules/device.inc:59 +msgid "Here you can enter a serial number for this device." +msgstr "Zde můžete zadat sériové číslo tohoto zařízení." + +#: ../lib/modules/inetOrgPerson.inc:686 +msgid "Here you can enter the user's department(s)." +msgstr "Zde můžete zadat oddělení uživatele." + +#: ../lib/modules/zarafaUser.inc:140 +msgid "Here you can explicitly enable and disable Zarafa features." +msgstr "Zde můžete explicitně povolit či zakázat vlastnosti Zarafy." + +#: ../help/help.inc:145 +msgid "" +"Here you can input simple filter expressions (e.g. 'value' or 'v*'). The " +"filter is case-sensitive." +msgstr "" +"Zde můžete zadat jednoduchý filtr (např. 'hodnota' nebo 'h*'). LAM filtruje " +"bez ohledu na velikost písmen." + +#: ../help/help.inc:157 +msgid "" +"Here you can load an account profile to set default settings for your " +"account. The \"default\" profile is automatically loaded for new accounts." +msgstr "" +"Zde můžete načíst některý profil účtu k nastavení předvyplněných hodnot. " +"\"Výchozí\" profil je pro nový účet načten automaticky." + +#: ../lib/tools/profileEditor.inc:53 +msgid "Here you can manage your account profiles." +msgstr "Zde můžete spravovat profil účtu." + +#: ../help/help.inc:159 +msgid "" +"Here you can select a PDF structure and export the account to a PDF file." +msgstr "Zde můžete vybrat PDF strukturu a exportovat účet do PDF souboru." + +#: ../help/help.inc:139 +msgid "" +"Here you can select where LAM should save its log messages. System logging " +"will go to Syslog on Unix systems and event log on Windows. You can also " +"select an extra file." +msgstr "" +"Zde můžete vybrat kam má LAM ukládat žurnál zpráv. Systémový žurnál je " +"posílán Syslogu na Unixu či do Prohlížeče událostí ve Windows. Můžete také " +"vybrat samostatný soubor." + +#: ../help/help.inc:102 +msgid "" +"Here you can select which plugins you want to use for account management." +msgstr "Zde můžete vybrat, které pluginy chcete používat pro spravování účtů." + +#: ../help/help.inc:115 +msgid "" +"Here you can set a limit for LDAP searches. This will restrict the number of " +"results for LDAP searches. Please use this if LAM's LDAP queries produce too " +"much load." +msgstr "" +"Zde můžete nastavit limit pro vyhledávání v LDAPu. Toto omezí počet záznamů " +"ve výsledku hledání v LDAPu. Prosím použijte tuto volbu pokud LDAP dotazy " +"generují příliš vysokou zátěž." + +#: ../help/help.inc:185 +msgid "" +"Here you can specify additional CSS links to change the layout of the self " +"service pages. This is useful to adapt them to your corporate design. Please " +"enter one link per line." +msgstr "" +"Zde můžete zadat doplňkové CSS linky pro změnu vzhledu samoobslužné stránky. " +"Toto je užitečné pro sloučení s firemními stránkami. Prosím zadávejte jeden " +"link na řádek." + +#: ../lib/modules/phpGroupwareUser.inc:79 +msgid "Here you can specify if the account is active or inactive." +msgstr "Zde můžete zadat zda je účet aktivní či neaktiví." + +#: ../help/help.inc:143 +msgid "" +"Here you can specify minimum requirements for passwords. The character " +"classes are: lowercase, uppercase, numeric and symbols." +msgstr "" +"Zde můžete zadat minimální požadavky na heslo. Skupiny znaků jsou: malá " +"písmena, velká písmena, čísla a symboly." + +#: ../lib/modules/nisnetgroup.inc:82 +msgid "" +"Here you can specify subgroups which are included in this NIS netgroup. All " +"members of the subgroups will be treated as members of this group." +msgstr "" +"Zde můžete zadat podskupiny, které jsou v této síťové skupině NISu. Všichni " +"členi podskupin budou brání jako členi této skupiny." + +#: ../lib/modules/hostObject.inc:73 +msgid "" +"Here you can specify the list of host names where this account has login " +"privileges. The wildcard \"*\" represents all hosts. You may also use \"!\" " +"in front of a host name to deny access to a host." +msgstr "" +"Zde můžete zadat seznam názvů strojů, na kterých se může uživatel přihlásit. " +"Zástupný znak \"*\" znamená všechny stroje. Pokud uvedete \"!\" před názvem " +"stroje, pak bude přístup k tomuto stroji zakázán." + +#: ../lib/modules/sambaDomain.inc:95 +msgid "" +"Here you can specify the minimum number of characters for a user password." +msgstr "Zde můžete zadat minimální počet znaků v uživatelském hesle." + +#: ../templates/lists/changePassword.php:238 +msgid "Here you can specify the new password yourself." +msgstr "Zde můžete zadat nové heslo." + +#: ../lib/modules/sambaSamAccount.inc:360 +msgid "Here you can specify the shadowing mode." +msgstr "Zde můžete zadat mód stínování." + +#: ../lib/tools/tests.inc:53 +msgid "Here you can test if certain LAM features work on your installation." +msgstr "Zde můžete otestovat některé vlastnosti LAMu ve vaší instalaci." + +#: ../lib/types/zarafaAddressListType.inc:95 +#: ../lib/types/zarafaDynamicGroupType.inc:96 +#: ../lib/modules/zarafaDynamicGroup.inc:72 +#: ../lib/modules/zarafaDynamicGroup.inc:125 +#: ../lib/modules/zarafaDynamicGroup.inc:157 +#: ../lib/modules/zarafaDynamicGroup.inc:247 +#: ../lib/modules/zarafaDynamicGroup.inc:474 ../lib/modules/zarafaGroup.inc:75 +#: ../lib/modules/zarafaGroup.inc:107 ../lib/modules/zarafaGroup.inc:126 +#: ../lib/modules/zarafaGroup.inc:193 ../lib/modules/zarafaGroup.inc:433 +#: ../lib/modules/zarafaAddressList.inc:60 +#: ../lib/modules/zarafaAddressList.inc:101 +#: ../lib/modules/zarafaAddressList.inc:132 +#: ../lib/modules/zarafaAddressList.inc:189 +#: ../lib/modules/zarafaAddressList.inc:335 ../lib/modules/zarafaUser.inc:64 +#: ../lib/modules/zarafaUser.inc:297 ../lib/modules/zarafaUser.inc:338 +#: ../lib/modules/zarafaUser.inc:366 ../lib/modules/zarafaUser.inc:535 +#: ../lib/modules/zarafaUser.inc:1239 +msgid "Hidden" +msgstr "Skrytý(á)" + +#: ../lib/modules/asteriskAccount.inc:234 +#: ../lib/modules/asteriskAccount.inc:245 +#: ../lib/modules/sambaSamAccount.inc:374 +#: ../lib/modules/sambaSamAccount.inc:564 ../lib/modules/zarafaUser.inc:116 +#: ../lib/modules/zarafaUser.inc:150 ../lib/modules/inetOrgPerson.inc:225 +#: ../lib/modules/inetOrgPerson.inc:689 ../lib/modules/freeRadius.inc:104 +#: ../lib/modules/freeRadius.inc:110 +msgid "Hidden options" +msgstr "Skryté volby" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1115 +msgid "Hide" +msgstr "Skrýt" + +#: ../lib/modules/customScripts.inc:80 ../lib/modules/customScripts.inc:90 +#: ../lib/modules/customScripts.inc:99 +msgid "Hide command in messages" +msgstr "Skrýt příkaz ve výstupu" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1116 +msgid "Hide internal attributes" +msgstr "Skrýt interní atributy" + +#: ../templates/3rdParty/pla/lib/page.php:407 +msgid "Hide/Unhide the tree" +msgstr "Skrýt/zobrazit strom" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:58 +msgid "Hint" +msgstr "Rada" + +#: ../templates/masscreate.php:235 +msgid "" +"Hint: Format all cells as text in your spreadsheet program and turn off auto " +"correction." +msgstr "" +"Rada: Pro všechny buňky ve vašem tabulkovém kalkulátoru zvolte textový " +"formát a vypněte všechny automatické korekce." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1005 +msgid "Hint: To delete an attribute, empty the text field and click save." +msgstr "" +"Rada: Ke smazání atributu nastavte jeho hodnotu na prázdnou a klikněte na " +"Uložit." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1342 +msgid "" +"Hint: You must choose exactly one structural object class (shown in bold " +"above)" +msgstr "" +"Rada: Musíte vybrat právě jednu strukturovanou třídu objektu (tučně " +"zvýrazněné výše)" + +#: ../lib/modules/posixAccount.inc:400 +msgid "Hold the CTRL-key to (de)select multiple groups." +msgstr "Držte klávasu CTRL pro označení/odznační více skupin." + +#: ../lib/types/user.inc:98 ../lib/modules/sambaSamAccount.inc:212 +#: ../lib/modules/sambaSamAccount.inc:332 +#: ../lib/modules/sambaSamAccount.inc:1404 +#: ../lib/modules/sambaSamAccount.inc:1689 ../lib/modules/posixAccount.inc:74 +#: ../lib/modules/posixAccount.inc:75 ../lib/modules/posixAccount.inc:77 +#: ../lib/modules/posixAccount.inc:229 ../lib/modules/posixAccount.inc:319 +#: ../lib/modules/posixAccount.inc:358 ../lib/modules/posixAccount.inc:362 +#: ../lib/modules/posixAccount.inc:366 ../lib/modules/posixAccount.inc:383 +#: ../lib/modules/posixAccount.inc:883 ../lib/modules/posixAccount.inc:1113 +#: ../lib/modules/posixAccount.inc:1284 ../lib/modules/posixAccount.inc:1381 +#: ../lib/modules/posixAccount.inc:1467 +msgid "Home directory" +msgstr "Domovský adresář" + +#: ../lib/modules/posixAccount.inc:77 +#, php-format +msgid "" +"Home directory changed. To keep home directory you have to run the following " +"command as root: 'mv %s %s'" +msgstr "" +"Domovský adresář byl změněn. Pro jeho zachování musíte spustit následující " +"příkaz jako root: ' mv %s %s'" + +#: ../lib/modules/sambaSamAccount.inc:196 +#: ../lib/modules/sambaSamAccount.inc:213 +#: ../lib/modules/sambaSamAccount.inc:280 +#: ../lib/modules/sambaSamAccount.inc:461 +#: ../lib/modules/sambaSamAccount.inc:569 +#: ../lib/modules/sambaSamAccount.inc:1126 +#: ../lib/modules/sambaSamAccount.inc:1412 +#: ../lib/modules/sambaSamAccount.inc:1507 +#: ../lib/modules/sambaSamAccount.inc:1663 +#: ../lib/modules/sambaSamAccount.inc:1690 +msgid "Home drive" +msgstr "Domovský disk" + +#: ../lib/modules/sambaSamAccount.inc:86 ../lib/modules/sambaSamAccount.inc:87 +#: ../lib/modules/sambaSamAccount.inc:199 +#: ../lib/modules/sambaSamAccount.inc:283 +#: ../lib/modules/sambaSamAccount.inc:469 +#: ../lib/modules/sambaSamAccount.inc:571 +#: ../lib/modules/sambaSamAccount.inc:1134 +#: ../lib/modules/sambaSamAccount.inc:1511 +#: ../lib/modules/sambaSamAccount.inc:1660 +msgid "Home path" +msgstr "Domovská cesta" + +#: ../lib/modules/sambaSamAccount.inc:86 ../lib/modules/sambaSamAccount.inc:88 +msgid "Home path is invalid." +msgstr "Neplatná domovská cesta." + +#: ../lib/modules/zarafaUser.inc:113 +msgid "Home server for the user." +msgstr "Domovský server uživatele." + +#: ../lib/modules/inetOrgPerson.inc:54 ../lib/modules/inetOrgPerson.inc:126 +#: ../lib/modules/inetOrgPerson.inc:251 ../lib/modules/inetOrgPerson.inc:412 +#: ../lib/modules/inetOrgPerson.inc:536 ../lib/modules/inetOrgPerson.inc:657 +#: ../lib/modules/inetOrgPerson.inc:1175 ../lib/modules/inetOrgPerson.inc:1436 +#: ../lib/modules/inetOrgPerson.inc:1910 +msgid "Home telephone number" +msgstr "Telefonní číslo domů" + +#: ../lib/modules/posixAccount.inc:74 ../lib/modules/posixAccount.inc:76 +msgid "Homedirectory contains invalid characters." +msgstr "Domovský adresář obsahuje neplatné znaky." + +#: ../lib/modules/asteriskAccount.inc:98 +#: ../lib/modules/asteriskAccount.inc:316 +#: ../lib/modules/asteriskAccount.inc:330 +#: ../lib/modules/asteriskAccount.inc:382 +#: ../lib/modules/asteriskAccount.inc:669 +#: ../lib/modules/asteriskAccount.inc:1192 ../lib/modules/nisnetgroup.inc:207 +#: ../lib/modules/nisnetgroup.inc:582 ../lib/modules/hostObject.inc:143 +msgid "Host" +msgstr "Stroj" + +#: ../lib/types/host.inc:62 +msgid "Host accounts (e.g. Samba)" +msgstr "Účty strojů (např. Samba)" + +#: ../lib/types/host.inc:94 +msgid "Host description" +msgstr "Popis stroje" + +#: ../lib/modules/account.inc:89 ../lib/modules/posixAccount.inc:414 +#: ../lib/modules/posixAccount.inc:422 +msgid "Host description. If left empty host name will be used." +msgstr "" +"Pokud ponecháte popis stroje prázdný, pak se do něj vloží název stroje." + +#: ../lib/modules/hostObject.inc:84 ../lib/modules/hostObject.inc:91 +#: ../lib/modules/hostObject.inc:256 +msgid "Host list" +msgstr "Seznam strojů" + +#: ../lib/types/host.inc:91 ../lib/types/host.inc:92 +#: ../lib/modules/account.inc:84 ../lib/modules/account.inc:209 +#: ../lib/modules/posixAccount.inc:89 ../lib/modules/posixAccount.inc:90 +#: ../lib/modules/posixAccount.inc:92 ../lib/modules/posixAccount.inc:284 +#: ../lib/modules/posixAccount.inc:409 ../lib/modules/nisnetgroup.inc:143 +#: ../lib/modules/nisnetgroup.inc:471 +msgid "Host name" +msgstr "Název stroje" + +#: ../lib/modules/posixAccount.inc:96 +msgid "Host name already exists!" +msgstr "Název stroje již existuje!" + +#: ../lib/modules/posixAccount.inc:90 ../lib/modules/posixAccount.inc:94 +#: ../lib/modules/nisnetgroup.inc:143 +msgid "" +"Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Název stroje obsahuje neplatné znaky. Přípustné znaky jsou: a-z, A-Z, 0-9 " +"a .-_ !" + +#: ../lib/modules/posixAccount.inc:92 +msgid "Host name in use. Selected next free host name." +msgstr "Název stroje se již používá. Byl vybrán následující volný." + +#: ../lib/modules/sambaSamAccount.inc:1040 +msgid "Host name must end with $!" +msgstr "Název stroje musí končit $!" + +#: ../lib/modules/account.inc:85 ../lib/modules/posixAccount.inc:410 +msgid "" +"Host name of the host which should be created. Valid characters are: a-z,A-" +"Z,0-9, .-_$. Host names are always ending with $. If last character is not $ " +"it will be added. If host name is already used host name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"Název stroje, který by měl být vytvořen. Přípustné znaky jsou: a-z,A-" +"Z,0-9, .-_$. Názvy strojů musí vždy končit znakem $. Jestliže posledním " +"znakem není $, pak bude přidán. Pokud je již název stroje použitý, přidá se " +"k němu následující volné číslo, aby se získal dosud nepoužitý název stroje." + +#: ../lib/types/sudo.inc:79 +msgid "Host(s)" +msgstr "Stroj(e)" + +#: ../lib/types/host.inc:53 ../lib/modules/posixAccount.inc:69 +#: ../lib/modules/posixAccount.inc:70 ../lib/modules/posixAccount.inc:72 +#: ../lib/modules/posixAccount.inc:175 ../lib/modules/sudoRole.inc:67 +#: ../lib/modules/sudoRole.inc:92 ../lib/modules/sudoRole.inc:140 +#: ../lib/modules/sudoRole.inc:174 ../lib/modules/sudoRole.inc:183 +#: ../lib/modules/sudoRole.inc:291 ../lib/modules/sudoRole.inc:690 +#: ../lib/modules/fixed_ip.inc:69 ../lib/modules/hostObject.inc:62 +#: ../lib/modules/hostObject.inc:72 +msgid "Hosts" +msgstr "Stroje" + +#: ../lib/modules/posixGroup.inc:478 ../lib/modules/posixAccount.inc:80 +#: ../lib/modules/posixAccount.inc:821 +msgid "ID is already in use" +msgstr "ID je již používáno" + +#: ../lib/modules/posixGroup.inc:476 ../lib/modules/posixGroup.inc:477 +#: ../lib/modules/posixGroup.inc:478 ../lib/modules/posixGroup.inc:576 +#: ../lib/modules/posixAccount.inc:78 ../lib/modules/posixAccount.inc:79 +#: ../lib/modules/posixAccount.inc:80 ../lib/modules/posixAccount.inc:819 +#: ../lib/modules/posixAccount.inc:821 +msgid "ID-Number" +msgstr "Číslo ID" + +#: ../lib/modules/zarafaUser.inc:306 ../lib/modules/zarafaUser.inc:600 +#: ../lib/modules/zarafaUser.inc:1305 +msgid "IMAP" +msgstr "IMAP" + +#: ../lib/modules/imapAccess.inc:78 ../lib/modules/imapAccess.inc:111 +msgid "IMAP admin user" +msgstr "Administrátor IMAPu" + +#: ../lib/modules/imapAccess.inc:81 ../lib/modules/imapAccess.inc:114 +msgid "IMAP password input" +msgstr "Zadání hesla pro IMAP" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ipHost.inc:48 +#: ../lib/modules/ipHost.inc:58 ../lib/modules/ipHost.inc:127 +#: ../lib/modules/asteriskAccount.inc:218 +#: ../lib/modules/asteriskAccount.inc:299 +#: ../lib/modules/asteriskAccount.inc:357 +#: ../lib/modules/asteriskAccount.inc:586 +#: ../lib/modules/asteriskAccount.inc:942 +#: ../lib/modules/asteriskAccount.inc:1271 ../lib/modules/freeRadius.inc:76 +#: ../lib/modules/freeRadius.inc:114 ../lib/modules/freeRadius.inc:185 +#: ../lib/modules/freeRadius.inc:217 ../lib/modules/freeRadius.inc:304 +#: ../lib/modules/freeRadius.inc:616 ../lib/modules/fixed_ip.inc:93 +#: ../lib/modules/fixed_ip.inc:342 ../lib/modules/fixed_ip.inc:520 +msgid "IP address" +msgstr "IP adresa" + +#: ../lib/modules/ddns.inc:100 ../lib/modules/ddns.inc:111 +#: ../lib/modules/ddns.inc:120 ../lib/modules/ddns.inc:356 +#: ../lib/modules/ddns.inc:399 +msgid "IP address of the DNS server" +msgstr "IP adresa DNS serveru" + +#: ../lib/modules/asteriskAccount.inc:219 +msgid "IP address of the peer. Valid only for realtime peers." +msgstr "IP adresa peeru. Použitelné pouze pro realtimové peery." + +#: ../lib/modules/asteriskAccount.inc:227 +msgid "IP address or domain name of the registration server." +msgstr "IP adresa nebo doménové jméno registračního serveru." + +#: ../lib/modules/ipHost.inc:62 ../lib/modules/ipHost.inc:77 +#: ../lib/modules/ipHost.inc:97 ../lib/modules/ipHost.inc:309 +msgid "IP address(es)" +msgstr "IP adresa(y)" + +#: ../lib/modules/fixed_ip.inc:97 +msgid "IP list" +msgstr "Seznam IP adres" + +#: ../templates/masscreate.php:264 ../templates/masscreate.php:339 +msgid "Identifier" +msgstr "Identifikátor" + +#: ../lib/modules/sambaSamAccount.inc:220 +#: ../lib/modules/sambaSamAccount.inc:1430 +#: ../lib/modules/sambaSamAccount.inc:1701 +msgid "Idle time limit" +msgstr "Limit doby nečinnosti" + +#: ../lib/modules/freeRadius.inc:100 ../lib/modules/freeRadius.inc:124 +#: ../lib/modules/freeRadius.inc:149 ../lib/modules/freeRadius.inc:209 +#: ../lib/modules/freeRadius.inc:232 ../lib/modules/freeRadius.inc:320 +#: ../lib/modules/freeRadius.inc:631 +msgid "Idle timeout" +msgstr "Limit doby nečinnosti" + +#: ../lib/modules/ppolicyUser.inc:53 +msgid "" +"If activated then the user is forced to change his password at the next " +"login." +msgstr "" +"Jestliže nastavíte tuto volbu, pak si musí uživatel změnit heslo při " +"přihlášení." + +#: ../lib/modules/sambaSamAccount.inc:246 +msgid "If checked Unix password will also be used as Samba password." +msgstr "Jestliže je zaškrtnuto, pak se Unixové heslo použije i pro Sambu." + +#: ../lib/modules/posixAccount.inc:392 +msgid "" +"If checked account will be deactivated by putting a \"!\" before the " +"encrypted password." +msgstr "" +"Jestliže je zaškrtnuto, pak se účet deaktivuje vložením \"!\" před " +"zašifrované heslo." + +#: ../lib/modules/sambaSamAccount.inc:252 +msgid "If checked no password will be used." +msgstr "Jestliže je zaškrtnuto, pak se nepoužije heslo." + +#: ../lib/modules/sambaSamAccount.inc:258 +msgid "If checked password does not expire. (Setting X-Flag)" +msgstr "" +"Jestliže je zaškrtnuto, pak heslu nikdy nevyprší platnost použitím příznaku " +"X." + +#: ../lib/modules/sambaSamAccount.inc:264 +msgid "If checked then the account will be deactivated. (Setting D-Flag)" +msgstr "Jestliže je zaškrtnuto, pak se účet deaktivuje použitím příznaku D." + +#: ../lib/modules/sambaSamAccount.inc:267 +msgid "" +"If checked then the account will be locked (setting L-Flag). You usually " +"want to use this setting to unlock user accounts which were locked because " +"of failed login attempts." +msgstr "" +"Jestliže je zaškrtnuto, pak se účet zablokuje použitím příznaku L. Obyčejně " +"je toto využíváno k odblokování uživatelského účtu, který byl zablokován " +"kvůli neplatným pokusům o přihlášení." + +#: ../lib/modules/posixGroup.inc:387 +msgid "" +"If empty GID number will be generated automaticly depending on your " +"configuration settings." +msgstr "" +"Jestliže se GID ponechá prazdný, pak se automatický vygeneruje na základě " +"vašeho nastavení." + +#: ../lib/modules/posixAccount.inc:347 +msgid "If empty UID number will be generated automaticly." +msgstr "Jestliže se UID ponechá prázdný, pak se automaticky vygeneruje." + +#: ../lib/modules/ppolicy.inc:117 +msgid "" +"If enabled the user will not be allowed to login after there have been a " +"specified number of consecutive failed login attempts." +msgstr "" +"Pokud zapnete tuto volbu, pak uživateli nebude povoleno se přihlásit po " +"uvedeném počtu neúspěšných pokusů o přihlášení." + +#: ../help/help.inc:117 +msgid "" +"If enabled then LAM will use user and password that is provided by the web " +"server via HTTP authentication." +msgstr "" +"Pokud zapnete tuto volbu, pak LAM bude používat login a heslo poskytnuté " +"HTTP autentizací na úrovní webového serveru." + +#: ../lib/modules/ppolicy.inc:121 +msgid "" +"If enabled users must change their passwords when they first login after a " +"password is set or reset by the administrator." +msgstr "" +"Pokud zapnete tuto volbu, pak si uživatel bude muset změnit heslo při prvním " +"přihlášení po nastavení hesla administrátorem." + +#: ../lib/modules/asteriskAccount.inc:207 +msgid "" +"If registration context is specified, Asterisk will dynamically create and " +"destroy a NoOp priority 1 extension for a given peer who registers or " +"unregisters with Asterisk." +msgstr "" +"Jestliže je uveden kontext registrace, pak si Asterisk dynamicky vytváří a " +"ruší rozšíření NoOp priority 1 pro daného peera, který registruje či " +"odregistrováva Asterisk." + +#: ../lib/modules/sambaDomain.inc:103 +msgid "If set then users need to login to change their password." +msgstr "" +"Jestliže je nastaveno, pak si uživatel musí změnit heslo při přihlášení." + +#: ../lib/modules/sambaSamAccount.inc:249 +msgid "If set to \"true\" Unix password will also be used as Samba password." +msgstr "" +"Jestliže je nastaveno na \"true\", pak se Unixové heslo použije i pro Sambu." + +#: ../lib/modules/sambaSamAccount.inc:270 +msgid "If set to \"true\" account will be deactivated. (Setting D-Flag)" +msgstr "" +"Jestliže je nastaveno na \"true\", pak se účet deaktivuje použitím příznaku " +"D." + +#: ../lib/modules/sambaSamAccount.inc:255 +msgid "If set to \"true\" no password will be used." +msgstr "Jestliže je nastaveno na \"true\", pak se nepoužije heslo." + +#: ../lib/modules/sambaSamAccount.inc:261 +msgid "If set to \"true\" password does not expire. (Setting X-Flag)" +msgstr "" +"Jestliže je nastaveno na \"true\", pak heslu nikdy nevyprší platnost " +"použitím příznaku X." + +#: ../lib/modules/zarafaUser.inc:81 +msgid "" +"If the mailbox size reaches the soft quota limit, the user will not be able " +"to send email until the size of the mailbox is reduced." +msgstr "" +"Uživatel nemůže odesílat e-maily, jestliže velikost jeho poštovní schránky " +"přesáhne měkký limit kvóty. Po změnšení velikostí poštovní schránky může " +"opět uživatel odesílat e-maily." + +#: ../lib/modules/sambaSamAccount.inc:309 +msgid "" +"If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" +"Jestliže toto ponecháte prázdné, pak LAM použije: uidNumber*2 + " +"sambaAlgorithmicRidBase." + +#: ../lib/modules/sambaSamAccount.inc:273 +msgid "" +"If you set this option then the user has to change his password at the next " +"login." +msgstr "" +"Jestliže nastavíte tuto volbu, pak si musí uživatel změnit heslo při " +"přihlášení." + +#: ../lib/modules/phpGroupwareGroup.inc:74 +#: ../lib/modules/phpGroupwareUser.inc:75 +msgid "" +"If you set this to \"true\" then the phpGroupware extension will be added." +msgstr "" +"Jestliže je nastaveno na \"true\", pak bude přidáno rozšíření phpGroupware." + +#: ../help/help.inc:96 +msgid "" +"If you want to change the current preferences password, please enter it here." +msgstr "" +"Jestliže chcete změnit stávající heslo pro předvolby, pak jej sem zadejte." + +#: ../help/help.inc:129 +msgid "" +"If you want to change your master configuration password, please enter it " +"here." +msgstr "Jesliže chcete změnit hlavní heslo nastavení, pak jej sem zadejte." + +#: ../lib/modules/sambaGroupMapping.inc:361 +msgid "If you want to use a well known RID you can selcet a well known group." +msgstr "" +"Jestliže chcete použít dobře známé RIT, pak můžete vybrat skupinu z dobře " +"známých." + +#: ../help/help.inc:106 +msgid "" +"If your server runs on another port then add a comma and the port number " +"after the server." +msgstr "" +"Jestliže váš server poslouchá na jiném portu, pak přidejte za server čárku a " +"čislo portu." + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:49 +msgid "Image not available" +msgstr "Obrázek není dostupný" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:292 +#: ../templates/3rdParty/pla/htdocs/import.php:45 +#: ../templates/3rdParty/pla/htdocs/import_form.php:19 +msgid "Import" +msgstr "Import" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:64 +#, php-format +msgid "" +"In order to add these objectClass(es) to this entry, you must specify %s new attributes that this object class requires." +msgstr "" +"Musíte zadat %s nových atributů vyžadovaných touto třídou objeků, " +"abyste mohl přidat tuto/tyto objektClass do tohoto záznamu." + +#: ../templates/3rdParty/pla/htdocs/export_form.php:87 +msgid "Include system attributes" +msgstr "Vložte systémové atributy" + +#: ../lib/tools/serverInfo.inc:53 +msgid "Information about the LDAP server." +msgstr "Informace o LDAP serveru." + +#: ../lib/modules/sambaSamAccount.inc:215 +#: ../lib/modules/sambaSamAccount.inc:338 +#: ../lib/modules/sambaSamAccount.inc:1416 +#: ../lib/modules/sambaSamAccount.inc:1696 +msgid "Inherit client startup configuration" +msgstr "Zdědit nastavení spouštění z klienta" + +#: ../templates/schema/schema.php:394 ../templates/schema/schema.php:415 +msgid "Inherited from" +msgstr "Zděděno od" + +#: ../templates/schema/schema.php:155 ../templates/schema/schema.php:351 +msgid "Inherits from" +msgstr "Zdědit po" + +#: ../lib/modules/sambaSamAccount.inc:216 +#: ../lib/modules/sambaSamAccount.inc:341 +#: ../lib/modules/sambaSamAccount.inc:1418 +#: ../lib/modules/sambaSamAccount.inc:1697 +msgid "Initial program" +msgstr "Výchozí program" + +#: ../lib/modules/inetOrgPerson.inc:128 ../lib/modules/inetOrgPerson.inc:275 +#: ../lib/modules/inetOrgPerson.inc:308 ../lib/modules/inetOrgPerson.inc:572 +#: ../lib/modules/inetOrgPerson.inc:705 ../lib/modules/inetOrgPerson.inc:1046 +#: ../lib/modules/inetOrgPerson.inc:1450 ../lib/modules/inetOrgPerson.inc:2040 +msgid "Initials" +msgstr "Iniciály" + +#: ../templates/serverInfo.php:280 ../templates/serverInfo.php:366 +msgid "Initiated" +msgstr "Inicializováno" + +#: ../lib/modules/quota.inc:56 ../lib/modules/systemQuotas.inc:98 +msgid "Inode hard quota" +msgstr "Pevná kvóta inodů" + +#: ../lib/modules/quota.inc:56 ../lib/modules/quota.inc:57 +#: ../lib/modules/systemQuotas.inc:98 ../lib/modules/systemQuotas.inc:99 +msgid "" +"Inode hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Pevná kvóta inodů obsahuje neplatné znaky. Přípustná jsou pouze přirozená " +"čísla." + +#: ../lib/modules/quota.inc:60 ../lib/modules/systemQuotas.inc:102 +msgid "Inode quota" +msgstr "Kvóta inodů" + +#: ../lib/modules/quota.inc:54 ../lib/modules/systemQuotas.inc:96 +msgid "Inode soft quota" +msgstr "Měkká kvóta inodů" + +#: ../lib/modules/quota.inc:54 ../lib/modules/quota.inc:55 +#: ../lib/modules/systemQuotas.inc:96 ../lib/modules/systemQuotas.inc:97 +msgid "" +"Inode soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Měkká kvóta inodů obsahuje neplatné znaky. Přípustná jsou pouze přírozená " +"čísla." + +#: ../lib/modules/quota.inc:60 ../lib/modules/quota.inc:61 +#: ../lib/modules/systemQuotas.inc:102 ../lib/modules/systemQuotas.inc:103 +msgid "Inode soft quota must be smaller than inode hard quota." +msgstr "Měkká kvóta inodů musí být menší než pevná." + +#: ../templates/selfService/adminMain.php:493 +msgid "Input fields" +msgstr "Vstupní pole" + +#: ../lib/modules/asteriskAccount.inc:146 +#: ../lib/modules/asteriskAccount.inc:263 +#: ../lib/modules/asteriskAccount.inc:339 +#: ../lib/modules/asteriskAccount.inc:455 +#: ../lib/modules/asteriskAccount.inc:769 +#: ../lib/modules/asteriskAccount.inc:1217 +msgid "Insecure" +msgstr "Nezabezpečený" + +#: ../lib/modules/sambaSamAccount.inc:87 +msgid "Inserted user or group name in home path." +msgstr "Název uživatele či skupiny byl vložen do domovské cesty." + +#: ../lib/modules/sambaSamAccount.inc:93 +msgid "Inserted user or group name in logon script." +msgstr "" +"Do přihlašovacího skriptu bylo vloženo uživatelské jméno či název skupiny." + +#: ../lib/modules/sambaSamAccount.inc:90 +msgid "Inserted user or group name in profile path." +msgstr "Do cesty k profilu bylo vloženo uživatelské jméno či název skupiny." + +#: ../lib/modules/fixed_ip.inc:379 +msgid "Invalid MAC address." +msgstr "Neplatná MAC adresa" + +#: ../templates/massBuildAccounts.php:170 +msgid "Invalid RDN attribute!" +msgstr "Neplatný RDN atribut!" + +#: ../templates/3rdParty/pla/htdocs/rename.php:42 +msgid "Invalid RDN value" +msgstr "Neplatná hodnota RDN" + +#: ../lib/modules/sambaGroupMapping.inc:75 +msgid "Invalid account" +msgstr "Neplatný účet" + +#: ../templates/3rdParty/pla/lib/import_functions.php:560 +msgid "Invalid entry" +msgstr "Neplatný záznam" + +#: ../lib/modules/imapAccess.inc:159 +msgid "Invalid password for IMAP admin or other problem occured." +msgstr "Neplatné heslo administrátora IMAPu nebo nastal jiný problém." + +#: ../lib/modules/kolabUser.inc:118 ../lib/modules/kolabUser.inc:123 +#: ../lib/modules/kolabUser.inc:170 ../lib/modules/kolabUser.inc:214 +#: ../lib/modules/kolabUser.inc:319 ../lib/modules/kolabUser.inc:795 +#: ../lib/modules/kolabUser.inc:907 +msgid "Invitation policy" +msgstr "Politika pozvánek" + +#: ../lib/modules/kolabUser.inc:127 +msgid "Invitation policy list" +msgstr "Seznam politik pozvánek" + +#: ../lib/modules/sambaSamAccount.inc:544 +msgid "Islamabad, Karachi" +msgstr "Islamábád, Karáčí" + +#: ../lib/modules/range.inc:109 +msgid "It is not possible to delete all ranges." +msgstr "Není možné smazat všechny rozsahy." + +#: ../lib/modules/posixGroup.inc:476 ../lib/modules/posixAccount.inc:79 +msgid "" +"It is possible that this ID-number is reused. This can cause several " +"problems because files with old permissions might still exist. To avoid this " +"warning set maxUID to a higher value." +msgstr "" +"Je možné, že toto ID je znovu použito. Toto může způsobit některé problémy, " +"neboť stále mohou existovat soubory se starými oprávněními. Stačí zvýšit " +"maxUID a toto varování neuvidíte." + +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:128 +#: ../lib/modules/inetOrgPerson.inc:168 ../lib/modules/inetOrgPerson.inc:259 +#: ../lib/modules/inetOrgPerson.inc:324 ../lib/modules/inetOrgPerson.inc:548 +#: ../lib/modules/inetOrgPerson.inc:589 ../lib/modules/inetOrgPerson.inc:1202 +#: ../lib/modules/inetOrgPerson.inc:1425 ../lib/modules/inetOrgPerson.inc:2047 +msgid "Job title" +msgstr "Pracovní zařazení" + +#: ../lib/modules/inetOrgPerson.inc:590 +msgid "Job title of user: President, department manager, ..." +msgstr "Pracovní zařazení uživatele: ředitel, vedoucí oddělení, ..." + +#: ../lib/lists.inc:281 +msgid "Jump 10 pages backward" +msgstr "Posunout o 10 stránek zpět" + +#: ../lib/lists.inc:301 +msgid "Jump 10 pages forward" +msgstr "Posunout o 10 stránek vpřed" + +#: ../templates/schema/schema.php:253 +msgid "Jump to a matching rule" +msgstr "Přejít k vyhovujícímu pravidlu" + +#: ../templates/schema/schema.php:112 +msgid "Jump to an attribute type" +msgstr "Přejít k typu atributu" + +#: ../templates/schema/schema.php:306 ../templates/schema/schema.php:356 +#: ../templates/schema/schema.php:371 +msgid "Jump to an object class" +msgstr "Přejít k třídě objektu" + +#: ../lib/lists.inc:276 +msgid "Jump to first page" +msgstr "Přejít na první stránku" + +#: ../lib/lists.inc:306 +msgid "Jump to last page" +msgstr "Přejít na poslední stránku" + +#: ../lib/modules/kolabUser.inc:73 +msgid "Kolab" +msgstr "Kolab" + +#: ../templates/login.php:207 ../templates/config/index.php:77 +msgid "LAM configuration" +msgstr "Nastavení LAMu" + +#: ../templates/massBuildAccounts.php:196 +msgid "LAM has checked your input and is now ready to create the accounts." +msgstr "LAM zkontroloval váš vstup a je připraven vytvořit účty." + +#: ../lib/modules/posixGroup.inc:411 ../lib/modules/posixAccount.inc:343 +#: ../lib/modules/inetOrgPerson.inc:694 +msgid "" +"LAM supports CRYPT, SHA, SSHA, MD5 and SMD5 to generate the hash value of " +"passwords. SSHA and CRYPT are the most common but CRYPT does not support " +"passwords greater than 8 letters. We do not recommend to use plain text " +"passwords." +msgstr "" +"LAM podporuje pro generování hešů hesel CRYPT, SHA, SSHA, MD5 a SMD5. SSHA a " +"CRYPT jsou nejčastějí používané, ale CRYPT nepodporuje hesla delší než 8 " +"znaků. Nedoporučujeme používat hesla v nezašifrované podobě." + +#: ../templates/tests/index.php:48 +msgid "LAM tests" +msgstr "Testy LAMu" + +#: ../lib/modules/imapAccess.inc:114 +msgid "LAM user password" +msgstr "Uživatelovo heslo do LAMu" + +#: ../templates/massDoUpload.php:87 +#, php-format +msgid "LAM was unable to create account %s! An LDAP error occured." +msgstr "LAM nemůže vytvořit účet %s!. Nastala chyba LDAPu." + +#: ../lib/modules/sambaGroupMapping.inc:441 +msgid "LAM was unable to find a Samba 3 domain with this name!" +msgstr "LAM nemůže najít doménu Samby 3 s tímto názvem!" + +#: ../lib/modules/sambaSamAccount.inc:108 +msgid "LAM was unable to find a domain with this name!" +msgstr "LAM nemůže najít doménu s tímto názvem!" + +#: ../lib/modules/posixAccount.inc:97 +msgid "LAM was unable to find a group with this name!" +msgstr "LAM nemůže najít skupinu s tímto názvem!" + +#: ../lib/modules/posixAccount.inc:1913 ../lib/modules/posixAccount.inc:1974 +#, php-format +msgid "LAM was unable to modify group memberships for group: %s" +msgstr "LAM nemůže změnit členství ve skupině: %s" + +#: ../help/help.inc:167 +msgid "LAM will search for accounts in this part of the LDAP tree." +msgstr "LAM bude hledat účty v této části LDAP stromu." + +#: ../help/help.inc:169 +msgid "" +"LAM will use this LDAP DN and password to search for accounts. It is " +"sufficient to specify an account with read rights. If nothing is inserted " +"then LAM will try to connect anonymously." +msgstr "" +"LAM použije toto LDAP DN a heslo k vyhledání účtů. Je dostatečné zadat účet " +"s právy pro čtení. Jestliže nic nezadáte, pak se LAM pokusí připojit " +"anonymně." + +#: ../templates/config/confmodules.php:97 ../templates/config/confmain.php:122 +#: ../templates/config/moduleSettings.php:96 +#: ../templates/config/conftypes.php:115 +msgid "LDAP Account Manager Configuration" +msgstr "Nastavení LDAP Account Manageru" + +#: ../templates/config/conftypes.php:325 +msgid "LDAP Suffix is invalid!" +msgstr "Neplatný sufix LDAPu!" + +#: ../templates/serverInfo.php:180 +msgid "LDAP entries" +msgstr "LDAP záznamy" + +#: ../templates/login.php:551 +msgid "LDAP error, server says:" +msgstr "Chyba LDAPu, server oznámil:" + +#: ../templates/config/confmain.php:358 +msgid "LDAP filter" +msgstr "Filtr LDAPu" + +#: ../lib/modules.inc:1194 +msgid "LDAP operation successful." +msgstr "Operace LDAPu proběhla úspěšně." + +#: ../templates/selfService/adminMain.php:362 +msgid "LDAP password" +msgstr "Heslo LDAPu" + +#: ../templates/3rdParty/pla/lib/functions.php:1894 +msgid "LDAP said" +msgstr "Informace LDAPu" + +#: ../templates/config/confmain.php:342 ../help/help.inc:112 +msgid "LDAP search" +msgstr "Hledání v LDAPu" + +#: ../templates/selfService/adminMain.php:367 ../help/help.inc:170 +msgid "LDAP search attribute" +msgstr "Hledaný atribut v LDAPu" + +#: ../lib/account.inc:681 +msgid "LDAP search failed! Please check your preferences." +msgstr "Selhalo hledání v LDAPu! Prosím zkontrolujte předvolby." + +#: ../templates/config/confmain.php:236 ../help/help.inc:114 +msgid "LDAP search limit" +msgstr "Limit pro hledání v LDAPu" + +#: ../templates/login.php:373 +msgid "LDAP server" +msgstr "LDAP server" + +#: ../lib/account.inc:672 +msgid "LDAP sizelimit exceeded, not all entries are shown." +msgstr "" +"Bylo dosaženo limitu velikosti odpovědi LDAPu, nebudou zobrazeny všechny " +"záznamy." + +#: ../templates/config/confmain.php:354 ../templates/config/conftypes.php:234 +#: ../templates/selfService/adminMain.php:356 +#: ../templates/profedit/profilepage.php:191 ../help/help.inc:67 +#: ../help/help.inc:166 +msgid "LDAP suffix" +msgstr "Sufix LDAPu" + +#: ../templates/massDoUpload.php:70 +msgid "LDAP upload in progress. Please wait." +msgstr "Právě probíhá nahrávání do LDAPu. Vyčkejte prosim." + +#: ../templates/selfService/adminMain.php:360 +msgid "LDAP user" +msgstr "Uživatel LDAPu" + +#: ../help/help.inc:168 +msgid "LDAP user and password" +msgstr "Uživatel a heslo LDAPu" + +#: ../templates/serverInfo.php:107 +msgid "LDAP version" +msgstr "Verze LDAPu" + +#: ../templates/3rdParty/pla/lib/export_functions.php:442 +msgid "LDIF Export" +msgstr "Export LDIFu" + +#: ../templates/3rdParty/pla/lib/import_functions.php:149 +#: ../templates/3rdParty/pla/htdocs/import.php:71 +msgid "LDIF import" +msgstr "Import LDIFu" + +#: ../templates/3rdParty/pla/lib/import_functions.php:170 +msgid "LDIF import only supports version 1" +msgstr "Import LDIFu podporuje pouze verzi 1" + +#: ../lib/types/asteriskExt.inc:93 +msgid "Label" +msgstr "Popiska" + +#: ../templates/tests/lamdaemonTest.php:183 +msgid "Lamdaemon server and path" +msgstr "Server a cesta lamdaemona" + +#: ../templates/config/confmain.php:305 +msgid "Lamdaemon settings" +msgstr "Nastavení lamdaemona" + +#: ../templates/tests/lamdaemonTest.php:133 +msgid "Lamdaemon successfully run." +msgstr "Úspěšně proběhl lamdaemon." + +#: ../templates/tests/index.php:50 ../templates/tests/lamdaemonTest.php:50 +#: ../lib/tools/tests.inc:110 +msgid "Lamdaemon test" +msgstr "Test lamdaemona" + +#: ../templates/tests/lamdaemonTest.php:283 +msgid "Lamdaemon test finished." +msgstr "Test lamdaemona skončil." + +#: ../templates/tests/lamdaemonTest.php:265 +msgid "Lamdaemon version" +msgstr "Verze lamdaemona" + +#: ../templates/tests/lamdaemonTest.php:275 +msgid "Lamdaemon: Quota module installed" +msgstr "Lamdaemon: Quota modul je nainstalován" + +#: ../templates/tests/lamdaemonTest.php:271 +msgid "Lamdaemon: check NSS LDAP" +msgstr "Lamdaemon: kontrola NSS LDAP" + +#: ../templates/tests/lamdaemonTest.php:278 +msgid "Lamdaemon: read quotas" +msgstr "Lamdaemon: čte kvóty" + +#: ../templates/login.php:318 +msgid "Language" +msgstr "Jazyk" + +#: ../templates/config/confmain.php:461 +msgid "Language is not defined!" +msgstr "Jazyk není definován!" + +#: ../templates/config/confmain.php:275 +msgid "Language settings" +msgstr "Nastavení jazyku" + +#: ../lib/modules/phpGroupwareUser.inc:99 +#: ../lib/modules/phpGroupwareUser.inc:174 +#: ../lib/modules/phpGroupwareUser.inc:351 +msgid "Last login" +msgstr "Poslední přihlášení" + +#: ../lib/modules/phpGroupwareUser.inc:98 +#: ../lib/modules/phpGroupwareUser.inc:181 +#: ../lib/modules/phpGroupwareUser.inc:346 +msgid "Last login from" +msgstr "Poslední přihlášení z" + +#: ../lib/types/user.inc:97 ../lib/modules/inetOrgPerson.inc:50 +#: ../lib/modules/inetOrgPerson.inc:122 ../lib/modules/inetOrgPerson.inc:299 +#: ../lib/modules/inetOrgPerson.inc:500 ../lib/modules/inetOrgPerson.inc:597 +#: ../lib/modules/inetOrgPerson.inc:1040 ../lib/modules/inetOrgPerson.inc:1427 +#: ../lib/modules/inetOrgPerson.inc:1889 +msgid "Last name" +msgstr "Příjmení" + +#: ../lib/modules/inetOrgPerson.inc:50 ../lib/modules/inetOrgPerson.inc:51 +msgid "Last name contains invalid characters or is empty!" +msgstr "Příjmení obsahuje naplatné znaky nebo je prázdné!" + +#: ../lib/modules/inetOrgPerson.inc:598 +msgid "Last name of user. Only letters, - and spaces are allowed." +msgstr "Příjmení uživatele. Jsou povoleny pouze písmena, - a mezery." + +#: ../lib/modules/ppolicyUser.inc:125 ../lib/modules/shadowAccount.inc:160 +#: ../lib/modules/shadowAccount.inc:192 ../lib/modules/shadowAccount.inc:354 +#: ../lib/modules/shadowAccount.inc:468 +msgid "Last password change" +msgstr "Poslední změna hesla" + +#: ../lib/modules/asteriskAccount.inc:230 +#: ../lib/modules/asteriskAccount.inc:305 +#: ../lib/modules/asteriskAccount.inc:360 +#: ../lib/modules/asteriskAccount.inc:608 +#: ../lib/modules/asteriskAccount.inc:969 +#: ../lib/modules/asteriskAccount.inc:1280 +msgid "Last qualify milliseconds" +msgstr "Počet milisekund poslední kontroly" + +#: ../lib/modules/dhcp_settings.inc:130 ../lib/modules/dhcp_settings.inc:173 +#: ../lib/modules/dhcp_settings.inc:187 ../lib/modules/dhcp_settings.inc:216 +#: ../lib/modules/dhcp_settings.inc:526 ../lib/modules/dhcp_settings.inc:619 +msgid "Lease time" +msgstr "Doba přiřazení" + +#: ../templates/3rdParty/pla/htdocs/import.php:102 +msgid "Line" +msgstr "Řádek" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:124 +msgid "Line ends" +msgstr "Konce řádků" + +#: ../lib/modules/passwordSelfReset.inc:81 +#: ../lib/modules/passwordSelfReset.inc:137 +msgid "Link text" +msgstr "Text odkazu" + +#: ../templates/selfService/adminMain.php:308 +msgid "Link to self service login page for your users" +msgstr "URL pro přihlášení k samoobslužně službě pro vaše uživatele" + +#: ../templates/config/conftypes.php:249 ../help/help.inc:79 +msgid "List attributes" +msgstr "Seznam atributů" + +#: ../templates/config/conftypes.php:332 +msgid "List attributes are invalid!" +msgstr "Neplatný seznam atributů!" + +#: ../lib/types/zarafaAddressListType.inc:91 +#: ../lib/modules/zarafaAddressList.inc:56 +#: ../lib/modules/zarafaAddressList.inc:93 +#: ../lib/modules/zarafaAddressList.inc:130 +#: ../lib/modules/zarafaAddressList.inc:143 +#: ../lib/modules/zarafaAddressList.inc:162 +#: ../lib/modules/zarafaAddressList.inc:315 +msgid "List name" +msgstr "Seznam názvů" + +#: ../lib/modules/zarafaAddressList.inc:143 +msgid "List name already in use." +msgstr "Seznam názvů je již používán." + +#: ../lib/modules/sambaSamAccount.inc:293 +msgid "" +"List of Samba workstations the user is allowed to login. Empty means every " +"workstation." +msgstr "" +"Seznam stanic Samby, ke kterým se uživatel může přihlásit. Prázdný seznam " +"znamená každou stanici." + +#: ../templates/config/confmain.php:455 +msgid "List of admin users is empty or invalid!" +msgstr "Seznam administrátorů je prázdný nebo neplatný!" + +#: ../lib/modules/asteriskAccount.inc:195 +msgid "List of allowed codecs." +msgstr "Seznam platných kodeků." + +#: ../lib/modules/asteriskAccount.inc:191 +msgid "List of disallowed codecs." +msgstr "Seznam neplatných kodeků." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:94 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:88 +msgid "List of entries to be deleted:" +msgstr "Seznam záznamů určených k vymazání:" + +#: ../templates/config/confmain.php:350 +msgid "List of valid users" +msgstr "Seznam platných uživatelů" + +#: ../templates/serverInfo.php:150 +msgid "Listeners" +msgstr "Naslouchání na portech" + +#: ../lib/modules.inc:1101 ../help/help.inc:156 +msgid "Load profile" +msgstr "Načíst profil" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:279 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1226 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +msgid "Loading" +msgstr "Načítání" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:303 +msgid "Loading export" +msgstr "Načítání exportu" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:290 +msgid "Loading import" +msgstr "Načítání importu" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:499 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:233 +msgid "Loading search" +msgstr "Hledání" + +#: ../lib/modules/inetLocalMailRecipient.inc:65 +#: ../lib/modules/inetLocalMailRecipient.inc:150 +msgid "Local address" +msgstr "Lokální adresa" + +#: ../lib/modules/inetLocalMailRecipient.inc:69 +#: ../lib/modules/inetLocalMailRecipient.inc:99 +#: ../lib/modules/inetLocalMailRecipient.inc:113 +#: ../lib/modules/inetLocalMailRecipient.inc:303 +msgid "Local address list" +msgstr "Seznam lokálních adres" + +#: ../lib/modules/sambaGroupMapping.inc:72 +msgid "Local group" +msgstr "Lokální skupina" + +#: ../lib/modules/ipHost.inc:66 ../lib/modules/ipHost.inc:84 +#: ../lib/modules/ipHost.inc:98 ../lib/modules/ipHost.inc:149 +#: ../lib/modules/ipHost.inc:312 ../lib/modules/device.inc:70 +#: ../lib/modules/device.inc:101 ../lib/modules/device.inc:116 +#: ../lib/modules/device.inc:177 ../lib/modules/device.inc:436 +#: ../lib/modules/inetOrgPerson.inc:127 ../lib/modules/inetOrgPerson.inc:141 +#: ../lib/modules/inetOrgPerson.inc:237 ../lib/modules/inetOrgPerson.inc:468 +#: ../lib/modules/inetOrgPerson.inc:515 ../lib/modules/inetOrgPerson.inc:669 +#: ../lib/modules/inetOrgPerson.inc:1087 ../lib/modules/inetOrgPerson.inc:1445 +#: ../lib/modules/inetOrgPerson.inc:1973 +msgid "Location" +msgstr "Umístění" + +#: ../lib/modules/ppolicyUser.inc:139 +msgid "Lock account" +msgstr "Uzamknout účet" + +#: ../lib/modules/posixGroup.inc:197 ../lib/modules/posixAccount.inc:257 +#: ../lib/modules/posixAccount.inc:1153 ../lib/modules/inetOrgPerson.inc:1253 +msgid "Lock password" +msgstr "Uzamknout heslo" + +#: ../lib/types/ppolicyType.inc:83 ../lib/modules/ppolicy.inc:96 +#: ../lib/modules/ppolicy.inc:143 ../lib/modules/ppolicy.inc:163 +#: ../lib/modules/ppolicy.inc:256 ../lib/modules/ppolicy.inc:478 +#: ../lib/modules/sambaDomain.inc:126 ../lib/modules/sambaDomain.inc:191 +#: ../lib/modules/sambaDomain.inc:216 ../lib/modules/sambaDomain.inc:333 +#: ../lib/modules/sambaDomain.inc:683 +msgid "Lockout duration" +msgstr "Doba uzamčení" + +#: ../lib/modules/sambaDomain.inc:216 +msgid "Lockout duration must be are natural number." +msgstr "Doba k odblokování účtu musí být přirozené číslo." + +#: ../lib/modules/ppolicyUser.inc:131 +msgid "Lockout time" +msgstr "Doba uzamčení" + +#: ../lib/types/ppolicyType.inc:88 ../lib/modules/ppolicy.inc:116 +#: ../lib/modules/ppolicy.inc:142 ../lib/modules/ppolicy.inc:250 +#: ../lib/modules/ppolicy.inc:487 +msgid "Lockout users" +msgstr "Uzamčení uživatelé" + +#: ../lib/modules/sambaDomain.inc:114 ../lib/modules/sambaDomain.inc:188 +#: ../lib/modules/sambaDomain.inc:218 ../lib/modules/sambaDomain.inc:309 +#: ../lib/modules/sambaDomain.inc:674 +msgid "Lockout users after bad logon attempts" +msgstr "Odblokování uživatelů po neúspěšných pokusech o přihlášení" + +#: ../lib/modules/sambaDomain.inc:218 +msgid "Lockout users after bad logon attempts must be between 0 and 999." +msgstr "" +"Odblokování uživatelů po neúspěšných pokusech o přihlášení musí být mezi 0 a " +"999." + +#: ../templates/config/mainmanage.php:230 ../help/help.inc:138 +msgid "Log destination" +msgstr "Cíl žurnálu" + +#: ../templates/config/mainmanage.php:216 ../help/help.inc:136 +msgid "Log level" +msgstr "Úroveň žurnálu" + +#: ../templates/main_header.php:111 +#, php-format +msgid "Logged in as: %s" +msgstr "Přihlášen jako: %s" + +#: ../templates/config/mainmanage.php:233 +msgid "Logging" +msgstr "Logování" + +#: ../templates/login.php:344 ../templates/config/conflogin.php:62 +#: ../templates/config/mainlogin.php:70 +#: ../templates/selfService/selfServiceLogin.php:163 +#: ../templates/selfService/adminLogin.php:64 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:530 ../help/help.inc:52 +msgid "Login" +msgstr "Přihlásit" + +#: ../templates/selfService/adminMain.php:378 ../help/help.inc:172 +msgid "Login attribute label" +msgstr "Atribut k přihlášení!" + +#: ../templates/selfService/adminMain.php:382 ../help/help.inc:174 +msgid "Login caption" +msgstr "Přihlašovací nadpis" + +#: ../templates/config/confmain.php:344 ../help/help.inc:110 +msgid "Login method" +msgstr "Způsob přihlášení" + +#: ../lib/types/user.inc:99 ../lib/modules/posixAccount.inc:243 +#: ../lib/modules/posixAccount.inc:320 ../lib/modules/posixAccount.inc:395 +#: ../lib/modules/posixAccount.inc:1146 ../lib/modules/posixAccount.inc:1383 +#: ../lib/modules/posixAccount.inc:1468 +msgid "Login shell" +msgstr "Přihlašovací shell" + +#: ../templates/pdfedit/pdfpage.php:446 +msgid "Logo" +msgstr "Logo" + +#: ../lib/modules/sambaDomain.inc:102 ../lib/modules/sambaDomain.inc:185 +#: ../lib/modules/sambaDomain.inc:283 ../lib/modules/sambaDomain.inc:661 +msgid "Logon for password change" +msgstr "Přihlášení pro změnu hesla" + +#: ../lib/modules/sambaSamAccount.inc:109 +#: ../lib/modules/sambaSamAccount.inc:317 +#: ../lib/modules/sambaSamAccount.inc:320 +#: ../lib/modules/sambaSamAccount.inc:501 +#: ../lib/modules/sambaSamAccount.inc:579 +#: ../lib/modules/sambaSamAccount.inc:1196 +#: ../lib/modules/sambaSamAccount.inc:1543 +msgid "Logon hours" +msgstr "Přihlašovací hodiny" + +#: ../lib/modules/sambaSamAccount.inc:92 ../lib/modules/sambaSamAccount.inc:93 +#: ../lib/modules/sambaSamAccount.inc:205 +#: ../lib/modules/sambaSamAccount.inc:289 +#: ../lib/modules/sambaSamAccount.inc:485 +#: ../lib/modules/sambaSamAccount.inc:575 +#: ../lib/modules/sambaSamAccount.inc:1149 +#: ../lib/modules/sambaSamAccount.inc:1519 +#: ../lib/modules/sambaSamAccount.inc:1666 +msgid "Logon script" +msgstr "Přihlašovací skript" + +#: ../lib/modules/sambaSamAccount.inc:92 ../lib/modules/sambaSamAccount.inc:94 +msgid "Logon script is invalid!" +msgstr "Neplatný přihlašovací skript!" + +#: ../templates/selfService/selfServiceMain.php:53 +#: ../templates/selfService/selfServiceMain.php:355 +#: ../templates/main_header.php:118 +msgid "Logout" +msgstr "Odhlásit" + +#: ../lib/modules/dhcp_settings.inc:89 +msgid "M-Node (0x04)" +msgstr "M-Node (0x04)" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ieee802device.inc:51 +#: ../lib/modules/ieee802device.inc:61 ../lib/modules/ieee802device.inc:72 +#: ../lib/modules/ieee802device.inc:104 ../lib/modules/fixed_ip.inc:90 +#: ../lib/modules/fixed_ip.inc:338 ../lib/modules/fixed_ip.inc:520 +msgid "MAC address" +msgstr "MAC adresa" + +#: ../lib/modules/ieee802device.inc:65 +msgid "MAC address list" +msgstr "Seznam MAC adres" + +#: ../lib/modules/ieee802device.inc:79 ../lib/modules/ieee802device.inc:206 +msgid "MAC address(es)" +msgstr "MAC adresa(y)" + +#: ../lib/modules/sambaSamAccount.inc:550 +msgid "Magadan, Solomon Islands" +msgstr "Magadan, Šalamounovy ostrovy" + +#: ../lib/types/mailAlias.inc:53 ../lib/modules/nisMailAlias.inc:55 +msgid "Mail aliases" +msgstr "E-mailové aliasy" + +#: ../lib/modules/imapAccess.inc:90 ../lib/modules/imapAccess.inc:118 +msgid "Mail domain(s)" +msgstr "E-mailová doména(y)" + +#: ../lib/modules/kolabUser.inc:88 ../lib/modules/kolabUser.inc:159 +#: ../lib/modules/kolabUser.inc:207 ../lib/modules/kolabUser.inc:220 +#: ../lib/modules/kolabUser.inc:306 ../lib/modules/kolabUser.inc:779 +msgid "Mail quota" +msgstr "Kvóta e-mailů" + +#: ../lib/modules/kolabUser.inc:241 ../lib/modules/kolabUser.inc:242 +msgid "Mail quota must be a number!" +msgstr "Kvóta e-mailů musí být číslo!" + +#: ../lib/modules/inetLocalMailRecipient.inc:51 +msgid "Mail routing" +msgstr "Směrování pošty" + +#: ../lib/modules/kolabUser.inc:85 +#: ../lib/modules/inetLocalMailRecipient.inc:73 +#: ../lib/modules/inetLocalMailRecipient.inc:78 +#: ../lib/modules/inetLocalMailRecipient.inc:105 +#: ../lib/modules/inetLocalMailRecipient.inc:114 +#: ../lib/modules/inetLocalMailRecipient.inc:145 +#: ../lib/modules/inetLocalMailRecipient.inc:306 +msgid "Mail server" +msgstr "Poštovní server" + +#: ../templates/lists/changePassword.php:434 +#, php-format +msgid "Mail successfully sent to %s." +msgstr "E-mail byl úspěšně odeslán adresátovi %s." + +#: ../lib/modules/asteriskAccount.inc:150 +#: ../lib/modules/asteriskAccount.inc:265 +#: ../lib/modules/asteriskAccount.inc:340 +#: ../lib/modules/asteriskAccount.inc:463 +#: ../lib/modules/asteriskAccount.inc:778 +#: ../lib/modules/asteriskAccount.inc:1220 +#: ../lib/modules/asteriskVoicemail.inc:86 +#: ../lib/modules/asteriskVoicemail.inc:129 +#: ../lib/modules/asteriskVoicemail.inc:149 +#: ../lib/modules/asteriskVoicemail.inc:236 +#: ../lib/modules/asteriskVoicemail.inc:390 ../lib/modules/imapAccess.inc:55 +#: ../lib/modules/imapAccess.inc:96 ../lib/modules/imapAccess.inc:217 +msgid "Mailbox" +msgstr "Schránka" + +#: ../lib/modules/imapAccess.inc:226 +msgid "Mailbox already exists on IMAP server." +msgstr "Poštovní schránka na IMAP serveru již existuje." + +#: ../lib/modules/imapAccess.inc:233 +msgid "Mailbox does not exist on IMAP server." +msgstr "Poštovní schránka na IMAP serveru neexistuje." + +#: ../lib/modules/kolabUser.inc:151 ../lib/modules/kolabUser.inc:182 +#: ../lib/modules/kolabUser.inc:216 ../lib/modules/kolabUser.inc:292 +#: ../lib/modules/kolabUser.inc:297 ../lib/modules/kolabUser.inc:775 +msgid "Mailbox home server" +msgstr "Domovský server poštovní schránky" + +#: ../lib/modules/kolabUser.inc:237 +msgid "Mailbox home server name is empty!" +msgstr "Název domovského serveru poštovní schránky je prázdné!" + +#: ../lib/modules/kolabUser.inc:235 ../lib/modules/kolabUser.inc:236 +msgid "Mailbox home server name is invalid!" +msgstr "Neplatný název domovského serveru poštovní schránky!" + +#: ../lib/types/mailAlias.inc:62 +msgid "Mailing aliases (e.g. NIS mail aliases)" +msgstr "E-mailové aliasy (např. NIS)" + +#: ../lib/modules/nisMailAlias.inc:68 +msgid "Mails to this name are forwarded to the recipients." +msgstr "E-maily pro toto jméno jsou přeposílány příjemcům." + +#: ../templates/pdfedit/pdfpage.php:360 ../templates/pdfedit/pdfpage.php:615 +msgid "Main" +msgstr "Základní" + +#: ../templates/selfService/adminMain.php:384 ../help/help.inc:176 +msgid "Main page caption" +msgstr "Nadpis základní stránky" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:79 +msgid "Make sure your filter (above) will select all child records." +msgstr "Ujistěte se, že váš filtr (viz výše) zahrnuje všechny podzáznamy." + +#: ../templates/pdfedit/pdfmain.php:142 +msgid "Manage existing PDF structures" +msgstr "Spravovat existující PDF struktury" + +#: ../templates/profedit/profilemain.php:137 +msgid "Manage existing profiles" +msgstr "Správa existujících profilů" + +#: ../templates/selfService/adminLogin.php:164 +msgid "Manage self service profiles" +msgstr "Správa samoobslužných profilů" + +#: ../templates/config/conflogin.php:171 +msgid "Manage server profiles" +msgstr "Správa serverových profilů" + +#: ../templates/serverInfo.php:103 +msgid "Managed suffixes" +msgstr "Spravované sufixy" + +#: ../lib/modules/ipHost.inc:70 ../lib/modules/ipHost.inc:90 +#: ../lib/modules/ipHost.inc:99 ../lib/modules/ipHost.inc:170 +#: ../lib/modules/ipHost.inc:315 ../lib/modules/inetOrgPerson.inc:269 +#: ../lib/modules/inetOrgPerson.inc:348 ../lib/modules/inetOrgPerson.inc:563 +#: ../lib/modules/inetOrgPerson.inc:605 ../lib/modules/inetOrgPerson.inc:1242 +#: ../lib/modules/inetOrgPerson.inc:1429 +msgid "Manager" +msgstr "Správce" + +#: ../lib/tools/ouEditor.inc:53 +msgid "Manages OU objects in your LDAP tree." +msgstr "Správa OU objektů ve vašem LDAP stromu." + +#: ../lib/modules/kolabUser.inc:52 +msgid "Manual" +msgstr "Ručně" + +#: ../lib/modules/kolabUser.inc:54 +msgid "Manual if conflicts" +msgstr "Při konfliktu ručně" + +#: ../lib/types/nisObjectType.inc:78 ../lib/modules/nisObject.inc:58 +#: ../lib/modules/nisObject.inc:89 ../lib/modules/nisObject.inc:105 +#: ../lib/modules/nisObject.inc:116 ../lib/modules/nisObject.inc:142 +#: ../lib/modules/nisObject.inc:211 +msgid "Mapping entry" +msgstr "Mapovací záznam" + +#: ../lib/modules/nisObject.inc:116 ../lib/modules/nisObject.inc:117 +msgid "" +"Mapping entry contains invalid characters. Only ASCII characters are allowed." +msgstr "" +"Mapovací záznam obsahuje nepřípustné znaky. Jsou povoleny pouze ASCII znaky." + +#: ../lib/types/nisObjectType.inc:79 ../lib/modules/nisObject.inc:62 +#: ../lib/modules/nisObject.inc:82 ../lib/modules/nisObject.inc:106 +#: ../lib/modules/nisObject.inc:136 ../lib/modules/nisObject.inc:212 +msgid "Mapping name" +msgstr "Název mapování" + +#: ../lib/modules/kolabUser.inc:392 ../lib/modules/kolabUser.inc:566 +msgid "Mark account for deletion" +msgstr "Označit účty ke smazání" + +#: ../lib/modules/kolabUser.inc:163 +msgid "Mark for deletion" +msgstr "Označit ke smazání" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:44 +msgid "Mass delete" +msgstr "Hromadné smazání" + +#: ../templates/config/profmanage.php:381 +#: ../templates/selfService/profManage.php:280 ../help/help.inc:130 +msgid "Master password" +msgstr "Hlavní heslo" + +#: ../templates/config/profmanage.php:98 +#: ../templates/selfService/profManage.php:87 +msgid "Master password is wrong!" +msgstr "Špatné hlavní heslo!" + +#: ../templates/config/mainmanage.php:77 +msgid "Master passwords are different or empty!" +msgstr "Hlavní hesla jsou různá či prázdná!" + +#: ../templates/schema/schema.php:266 +msgid "Matching rule OID" +msgstr "Shodná pravidla OID" + +#: ../templates/schema/schema.php:75 ../templates/schema/schema.php:76 +msgid "Matching rules" +msgstr "Shodná pravidla" + +#: ../templates/serverInfo.php:171 +msgid "Max. file descriptors" +msgstr "Maximum popisovačů souborů" + +#: ../lib/modules/posixGroup.inc:307 ../lib/modules/posixGroup.inc:480 +#: ../lib/modules/posixGroup.inc:481 +msgid "Maximum GID number" +msgstr "Největší GID" + +#: ../lib/modules/posixGroup.inc:480 +msgid "Maximum GID number is invalid or empty!" +msgstr "Největší GID je neplatný či prázdný!" + +#: ../lib/modules/posixGroup.inc:481 +msgid "Maximum GID number must be greater than minimum GID number!" +msgstr "Největší GID musí být větší než nejměnší GID!" + +#: ../lib/modules/posixAccount.inc:68 ../lib/modules/posixAccount.inc:70 +#: ../lib/modules/posixAccount.inc:71 ../lib/modules/posixAccount.inc:72 +#: ../lib/modules/posixAccount.inc:170 ../lib/modules/posixAccount.inc:179 +msgid "Maximum UID number" +msgstr "Největší UID" + +#: ../lib/modules/posixAccount.inc:68 ../lib/modules/posixAccount.inc:70 +msgid "Maximum UID number is invalid!" +msgstr "Neplatné největší UID!" + +#: ../lib/modules/posixAccount.inc:71 ../lib/modules/posixAccount.inc:72 +msgid "Maximum UID number must be greater than minimum UID number!" +msgstr "Největší UID musí být větší než nejmenší UID!" + +#: ../lib/types/ppolicyType.inc:84 ../lib/modules/ppolicy.inc:100 +#: ../lib/modules/ppolicy.inc:144 ../lib/modules/ppolicy.inc:164 +#: ../lib/modules/ppolicy.inc:264 ../lib/modules/ppolicy.inc:479 +msgid "Maximum failure count" +msgstr "Maximální počet neúspěchů" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:128 +#: ../templates/3rdParty/pla/htdocs/import_form.php:36 +msgid "Maximum file size" +msgstr "Největší velikost souboru" + +#: ../lib/modules/dhcp_settings.inc:133 ../lib/modules/dhcp_settings.inc:174 +#: ../lib/modules/dhcp_settings.inc:188 ../lib/modules/dhcp_settings.inc:222 +#: ../lib/modules/dhcp_settings.inc:530 ../lib/modules/dhcp_settings.inc:620 +msgid "Maximum lease time" +msgstr "Nejdelší doba přiřazení" + +#: ../templates/schema/schema.php:212 +msgid "Maximum length" +msgstr "Největší délka" + +#: ../lib/lists.inc:864 ../help/help.inc:89 +msgid "Maximum list entries" +msgstr "Největší počet záznamů seznamu" + +#: ../lib/modules/asteriskAccount.inc:187 +msgid "" +"Maximum number of seconds of inactivity before terminating a call on hold." +msgstr "Maximální počet sekund neaktivity před ukončením přidrženého hovoru." + +#: ../lib/types/ppolicyType.inc:79 ../lib/modules/shadowAccount.inc:59 +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/shadowAccount.inc:116 +#: ../lib/modules/shadowAccount.inc:180 ../lib/modules/shadowAccount.inc:218 +#: ../lib/modules/shadowAccount.inc:329 ../lib/modules/shadowAccount.inc:473 +#: ../lib/modules/ppolicy.inc:80 ../lib/modules/ppolicy.inc:136 +#: ../lib/modules/ppolicy.inc:159 ../lib/modules/ppolicy.inc:160 +#: ../lib/modules/ppolicy.inc:198 ../lib/modules/ppolicy.inc:465 +#: ../lib/modules/sambaDomain.inc:122 ../lib/modules/sambaDomain.inc:190 +#: ../lib/modules/sambaDomain.inc:213 ../lib/modules/sambaDomain.inc:215 +#: ../lib/modules/sambaDomain.inc:325 ../lib/modules/sambaDomain.inc:680 +msgid "Maximum password age" +msgstr "Nejdelší doba platnosti hesla" + +#: ../lib/types/netgroup.inc:94 ../lib/modules/nisnetgroup.inc:85 +#: ../lib/modules/nisnetgroup.inc:89 ../lib/modules/nisnetgroup.inc:122 +#: ../lib/modules/nisnetgroup.inc:132 ../lib/modules/nisnetgroup.inc:276 +#: ../lib/modules/nisnetgroup.inc:580 ../lib/modules/groupOfNames.inc:76 +#: ../lib/modules/groupOfNames.inc:80 ../lib/modules/groupOfNames.inc:113 +#: ../lib/modules/groupOfNames.inc:121 ../lib/modules/groupOfNames.inc:132 +#: ../lib/modules/groupOfNames.inc:198 ../lib/modules/groupOfNames.inc:553 +msgid "Members" +msgstr "Členové" + +#: ../lib/modules/groupOfNames.inc:84 ../lib/modules/groupOfNames.inc:136 +msgid "Members are optional" +msgstr "Členové jsou volitelní" + +#: ../lib/modules/sambaSamAccount.inc:537 +msgid "Mid-Atlantic" +msgstr "Středoatlantský čas" + +#: ../lib/modules/sambaSamAccount.inc:528 +msgid "Midway Island, Samoa" +msgstr "ostrov Midway, Samoa" + +#: ../lib/modules/inetOrgPerson.inc:301 +msgid "Miller" +msgstr "Novák" + +#: ../lib/modules/sambaDomain.inc:94 ../lib/modules/sambaDomain.inc:183 +#: ../lib/modules/sambaDomain.inc:269 ../lib/modules/sambaDomain.inc:653 +msgid "Minimal password length" +msgstr "Nejkratší délka hesla" + +#: ../lib/modules/posixGroup.inc:304 ../lib/modules/posixGroup.inc:479 +msgid "Minimum GID number" +msgstr "Nejmenší GID" + +#: ../lib/modules/posixGroup.inc:479 +msgid "Minimum GID number is invalid or empty!" +msgstr "Nejmeněí GID je neplatný nebo prázdný!" + +#: ../lib/modules/posixAccount.inc:67 ../lib/modules/posixAccount.inc:69 +#: ../lib/modules/posixAccount.inc:167 ../lib/modules/posixAccount.inc:176 +msgid "Minimum UID number" +msgstr "Nejmenší UID" + +#: ../lib/modules/posixAccount.inc:67 ../lib/modules/posixAccount.inc:69 +msgid "Minimum UID number is invalid!" +msgstr "Neplatný nejmenší UID!" + +#: ../lib/modules/passwordSelfReset.inc:73 +#: ../lib/modules/passwordSelfReset.inc:135 +msgid "Minimum answer length" +msgstr "Minimální délka odpovědi" + +#: ../templates/config/mainmanage.php:208 +msgid "Minimum character classes" +msgstr "Minimální počet skupin znaků" + +#: ../templates/config/mainmanage.php:204 +msgid "Minimum lowercase characters" +msgstr "Minimální počet malých písmen" + +#: ../templates/config/mainmanage.php:206 +msgid "Minimum numeric characters" +msgstr "Minimální počet číslic" + +#: ../lib/types/ppolicyType.inc:78 ../lib/modules/shadowAccount.inc:57 +#: ../lib/modules/shadowAccount.inc:111 ../lib/modules/shadowAccount.inc:176 +#: ../lib/modules/shadowAccount.inc:212 ../lib/modules/shadowAccount.inc:321 +#: ../lib/modules/shadowAccount.inc:472 ../lib/modules/ppolicy.inc:76 +#: ../lib/modules/ppolicy.inc:135 ../lib/modules/ppolicy.inc:158 +#: ../lib/modules/ppolicy.inc:190 ../lib/modules/ppolicy.inc:464 +#: ../lib/modules/sambaDomain.inc:118 ../lib/modules/sambaDomain.inc:189 +#: ../lib/modules/sambaDomain.inc:214 ../lib/modules/sambaDomain.inc:317 +#: ../lib/modules/sambaDomain.inc:677 +msgid "Minimum password age" +msgstr "Minimální doba platnosti hesla" + +#: ../templates/config/mainmanage.php:203 ../lib/types/ppolicyType.inc:87 +#: ../lib/modules/ppolicy.inc:112 ../lib/modules/ppolicy.inc:139 +#: ../lib/modules/ppolicy.inc:167 ../lib/modules/ppolicy.inc:242 +#: ../lib/modules/ppolicy.inc:482 +msgid "Minimum password length" +msgstr "Minimální délka hesla" + +#: ../templates/config/mainmanage.php:207 +msgid "Minimum symbolic characters" +msgstr "Minimální počet symbolů" + +#: ../templates/config/mainmanage.php:205 +msgid "Minimum uppercase characters" +msgstr "Minimální počet velkých písmen" + +#: ../templates/3rdParty/pla/lib/import_functions.php:429 +msgid "Missing attributes for" +msgstr "Chybějící atribut pro" + +#: ../templates/3rdParty/pla/lib/import_functions.php:443 +msgid "Missing modify command add, delete or replace" +msgstr "Chybí změna příkazu přidání, smazání nebo náhrady" + +#: ../lib/types/user.inc:160 ../lib/modules/inetOrgPerson.inc:56 +#: ../lib/modules/inetOrgPerson.inc:123 ../lib/modules/inetOrgPerson.inc:253 +#: ../lib/modules/inetOrgPerson.inc:420 ../lib/modules/inetOrgPerson.inc:539 +#: ../lib/modules/inetOrgPerson.inc:633 ../lib/modules/inetOrgPerson.inc:1180 +#: ../lib/modules/inetOrgPerson.inc:1437 +msgid "Mobile number" +msgstr "Číslo mobilu" + +#: ../lib/modules/inetOrgPerson.inc:1917 +msgid "Mobile telephone number" +msgstr "Číslo mobilního telefonu" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:61 +msgid "Modification not successful!" +msgstr "Změna se nezdařila!" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:59 +msgid "Modification successful!" +msgstr "Změna se provedla úspěšně." + +#: ../lib/modules/generalInformation.inc:85 +msgid "Modification time" +msgstr "Čas změny" + +#: ../lib/modules/generalInformation.inc:81 +msgid "Modified by" +msgstr "Změnil" + +#: ../templates/serverInfo.php:312 ../templates/serverInfo.php:385 +msgid "Modify" +msgstr "Změnit" + +#: ../templates/serverInfo.php:326 ../templates/serverInfo.php:391 +msgid "Modify RDN" +msgstr "Změnit RDN" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:57 +msgid "Modify group" +msgstr "Změnit skupinu" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2110 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2111 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2114 +msgid "Modify group members" +msgstr "Změnit členy skupiny" + +#: ../templates/3rdParty/pla/htdocs/import.php:32 +msgid "Modifying" +msgstr "Probíhá změna" + +#: ../templates/config/confmodules.php:167 +#: ../templates/config/confmain.php:200 +#: ../templates/config/moduleSettings.php:166 +#: ../templates/config/conftypes.php:185 +#: ../templates/selfService/adminMain.php:339 +msgid "Module settings" +msgstr "Nastavení modulů" + +#: ../templates/config/confmodules.php:163 +#: ../templates/config/confmain.php:196 +#: ../templates/config/moduleSettings.php:162 +#: ../templates/config/conftypes.php:181 +msgid "Modules" +msgstr "Moduly" + +#: ../lib/modules/sambaSamAccount.inc:1287 +msgid "Monday" +msgstr "Pondělí" + +#: ../lib/modules/sambaSamAccount.inc:532 +msgid "Mountain Time (US & Canada)" +msgstr "Horský čas (USA a Kanada)" + +#: ../lib/modules/quota.inc:97 ../lib/modules/quota.inc:386 +#: ../lib/modules/quota.inc:492 ../lib/modules/quota.inc:619 +#: ../lib/modules/systemQuotas.inc:90 ../lib/modules/systemQuotas.inc:115 +#: ../lib/modules/systemQuotas.inc:372 +msgid "Mountpoint" +msgstr "Místo přípojení" + +#: ../lib/modules/systemQuotas.inc:90 ../lib/modules/systemQuotas.inc:91 +msgid "Mountpoint contains invalid characters." +msgstr "Místo přípojní obsahuje neplatné znaky." + +#: ../lib/modules/quota.inc:98 +msgid "Mountpoint of device with enabled quotas." +msgstr "Místo připojení zařízení se zapnutou kvótou." + +#: ../lib/modules/zarafaDynamicGroup.inc:69 ../lib/modules/zarafaGroup.inc:68 +#: ../lib/modules/eduPerson.inc:98 ../lib/modules/eduPerson.inc:110 +#: ../lib/modules/eduPerson.inc:126 ../lib/modules/sudoRole.inc:89 +#: ../lib/modules/sudoRole.inc:94 ../lib/modules/sudoRole.inc:99 +#: ../lib/modules/sudoRole.inc:104 ../lib/modules/sudoRole.inc:109 +#: ../lib/modules/sudoRole.inc:114 +msgid "Multiple values are separated by comma." +msgstr "Hodnoty jsou odděleny čárkou." + +#: ../lib/modules/device.inc:67 ../lib/modules/inetOrgPerson.inc:610 +#: ../lib/modules/inetOrgPerson.inc:614 ../lib/modules/inetOrgPerson.inc:618 +#: ../lib/modules/inetOrgPerson.inc:630 ../lib/modules/inetOrgPerson.inc:634 +#: ../lib/modules/inetOrgPerson.inc:638 ../lib/modules/inetOrgPerson.inc:642 +#: ../lib/modules/inetOrgPerson.inc:658 ../lib/modules/inetOrgPerson.inc:670 +#: ../lib/modules/inetOrgPerson.inc:674 ../lib/modules/inetOrgPerson.inc:686 +#: ../lib/modules/inetOrgPerson.inc:698 ../lib/modules/inetOrgPerson.inc:706 +#: ../lib/modules/systemQuotas.inc:63 ../lib/modules/freeRadius.inc:93 +#: ../lib/modules/groupOfNames.inc:73 +msgid "Multiple values are separated by semicolon." +msgstr "Hodnoty jsou odděleny středníkem." + +#: ../lib/modules/asteriskAccount.inc:198 +#: ../lib/modules/asteriskAccount.inc:289 +#: ../lib/modules/asteriskAccount.inc:352 +#: ../lib/modules/asteriskAccount.inc:550 +#: ../lib/modules/asteriskAccount.inc:893 +#: ../lib/modules/asteriskAccount.inc:1256 +msgid "Music on hold" +msgstr "Hudba při přidržení" + +#: ../lib/modules/asteriskAccount.inc:199 +msgid "Music to play on hold." +msgstr "Hudba, která se přehrává při přidržení hovoru." + +#: ../lib/modules/ipHost.inc:86 ../lib/modules/device.inc:103 +#: ../lib/modules/inetOrgPerson.inc:470 +msgid "MyCity" +msgstr "MojeMěsto" + +#: ../lib/modules/inetOrgPerson.inc:382 ../lib/modules/inetOrgPerson.inc:390 +msgid "Mycity" +msgstr "Mojeměsto" + +#: ../lib/modules/inetOrgPerson.inc:366 +msgid "Mystreetname 42" +msgstr "Mojeulice 42" + +#: ../lib/modules/asteriskAccount.inc:154 +#: ../lib/modules/asteriskAccount.inc:267 +#: ../lib/modules/asteriskAccount.inc:341 +#: ../lib/modules/asteriskAccount.inc:470 +#: ../lib/modules/asteriskAccount.inc:791 +#: ../lib/modules/asteriskAccount.inc:1223 +msgid "NAT" +msgstr "NAT" + +#: ../lib/modules/asteriskAccount.inc:155 +msgid "NAT setting for this account." +msgstr "Nastavení NATu tohoto účtu." + +#: ../lib/modules/nisnetgroup.inc:57 +msgid "NIS net group" +msgstr "Síťová skupina NISu" + +#: ../lib/types/netgroup.inc:62 +msgid "NIS netgroup entries" +msgstr "Záznamy síťových skupin NISu" + +#: ../lib/types/netgroup.inc:53 +msgid "NIS netgroups" +msgstr "Síťové skupiny NISu" + +#: ../lib/modules/nisObject.inc:40 +msgid "NIS object" +msgstr "NIS objekt" + +#: ../lib/types/nisObjectType.inc:48 +msgid "NIS object entries" +msgstr "Záznamy NIS objektů" + +#: ../lib/types/nisObjectType.inc:39 +msgid "NIS objects" +msgstr "NIS objekty" + +#: ../templates/serverInfo.php:145 ../templates/masscreate.php:260 +#: ../templates/masscreate.php:335 ../templates/schema/schema.php:266 +#: ../templates/pdfedit/pdfdelete.php:88 ../lib/types/automountType.inc:77 +#: ../lib/types/automountType.inc:251 ../lib/types/ppolicyType.inc:77 +#: ../lib/modules/device.inc:54 ../lib/modules/device.inc:82 +#: ../lib/modules/device.inc:113 ../lib/modules/device.inc:155 +#: ../lib/modules/device.inc:423 ../lib/modules/nisObject.inc:54 +#: ../lib/modules/nisObject.inc:74 ../lib/modules/nisObject.inc:104 +#: ../lib/modules/nisObject.inc:130 ../lib/modules/nisObject.inc:210 +#: ../lib/modules/ppolicy.inc:72 ../lib/modules/ppolicy.inc:134 +#: ../lib/modules/ppolicy.inc:157 ../lib/modules/ppolicy.inc:182 +#: ../lib/modules/ppolicy.inc:463 ../lib/modules/automount.inc:54 +#: ../lib/modules/automount.inc:70 ../lib/modules/automount.inc:93 +#: ../lib/modules/automount.inc:118 ../lib/modules/automount.inc:190 +#: ../lib/modules/groupOfNames.inc:170 +msgid "Name" +msgstr "Název" + +#: ../lib/modules/zarafaAddressList.inc:57 +msgid "Name of the address list which should be created." +msgstr "Název seznamu adres, který bude vytvořen." + +#: ../help/help.inc:151 +msgid "" +"Name under which the profile will be saved. If a profile with the same name " +"exists, it will be overwritten." +msgstr "" +"Název, pod kterým bude profil uložen. Profil se stejným jménem bude přepsán." + +#: ../lib/modules/dhcp_settings.inc:163 ../lib/modules/dhcp_settings.inc:180 +#: ../lib/modules/dhcp_settings.inc:558 ../lib/modules/dhcp_settings.inc:626 +#: ../lib/modules/freeRadius.inc:80 ../lib/modules/freeRadius.inc:116 +#: ../lib/modules/freeRadius.inc:130 ../lib/modules/freeRadius.inc:193 +#: ../lib/modules/freeRadius.inc:220 ../lib/modules/freeRadius.inc:312 +#: ../lib/modules/freeRadius.inc:619 +msgid "Net mask" +msgstr "Maska sítě" + +#: ../lib/modules/dhcp_settings.inc:142 ../lib/modules/dhcp_settings.inc:177 +#: ../lib/modules/dhcp_settings.inc:191 ../lib/modules/dhcp_settings.inc:240 +#: ../lib/modules/dhcp_settings.inc:538 ../lib/modules/dhcp_settings.inc:623 +msgid "Netbios name servers" +msgstr "Netbios name servery" + +#: ../lib/modules/dhcp_settings.inc:145 ../lib/modules/dhcp_settings.inc:178 +#: ../lib/modules/dhcp_settings.inc:193 ../lib/modules/dhcp_settings.inc:246 +#: ../lib/modules/dhcp_settings.inc:548 ../lib/modules/dhcp_settings.inc:624 +msgid "Netbios node type" +msgstr "Typ Netbios nodu" + +#: ../lib/modules/authorizedServiceObject.inc:166 +msgid "New Authorized Service" +msgstr "Nová autorizované služba" + +#: ../lib/types/dhcp.inc:108 ../lib/types/dhcp.inc:161 +msgid "New DHCP" +msgstr "Nové DHCP" + +#: ../lib/modules/ipHost.inc:139 +msgid "New IP address" +msgstr "Nová IP adresa" + +#: ../lib/modules/ieee802device.inc:114 +msgid "New MAC address" +msgstr "Nová MAC adresa" + +#: ../lib/types/nisObjectType.inc:92 ../lib/types/nisObjectType.inc:146 +msgid "New NIS object" +msgstr "Nový NIS objekt" + +#: ../templates/ou_edit.php:75 +msgid "New OU created successfully." +msgstr "Nový OU byl úspěšně vytvořen." + +#: ../lib/modules/ldapPublicKey.inc:108 +msgid "New SSH public key" +msgstr "Nový veřejný SSH klíč" + +#: ../lib/modules/inetOrgPerson.inc:478 +msgid "New York" +msgstr "Jihlava" + +#: ../lib/types/zarafaAddressListType.inc:107 +#: ../lib/types/zarafaAddressListType.inc:140 +msgid "New address list" +msgstr "Nový seznam adres" + +#: ../lib/types/mailAlias.inc:104 ../lib/types/mailAlias.inc:137 +#: ../lib/types/alias.inc:104 ../lib/types/alias.inc:137 +msgid "New alias" +msgstr "Nový alias:" + +#: ../lib/types/automountType.inc:91 ../lib/types/automountType.inc:177 +msgid "New automount entry" +msgstr "Nový záznam automountu" + +#: ../lib/types/automountType.inc:199 ../lib/types/automountType.inc:200 +msgid "New automount map" +msgstr "Nový mapa automountu" + +#: ../templates/config/profmanage.php:169 +msgid "New default profile set successfully." +msgstr "Nový výchozí profil byl úspěšně nastaven." + +#: ../lib/types/smbDomain.inc:104 ../lib/types/smbDomain.inc:158 +msgid "New domain" +msgstr "Nová doména" + +#: ../lib/types/asteriskExt.inc:106 ../lib/types/asteriskExt.inc:139 +msgid "New extension" +msgstr "Nové rozšíření" + +#: ../templates/pdfedit/pdfpage.php:567 +msgid "New field" +msgstr "Nové pole" + +#: ../lib/types/gon.inc:106 ../lib/types/gon.inc:163 +#: ../lib/types/zarafaDynamicGroupType.inc:109 +#: ../lib/types/zarafaDynamicGroupType.inc:156 ../lib/types/group.inc:108 +#: ../lib/types/group.inc:176 ../lib/types/netgroup.inc:106 +#: ../lib/types/netgroup.inc:160 +msgid "New group" +msgstr "Nová skupina" + +#: ../lib/types/host.inc:108 ../lib/types/host.inc:163 +#: ../lib/modules/hostObject.inc:150 +msgid "New host" +msgstr "Nový stroj" + +#: ../lib/modules/inetLocalMailRecipient.inc:156 +msgid "New local address" +msgstr "Nová místní adresa" + +#: ../templates/config/mainmanage.php:239 +msgid "New master password" +msgstr "Nové hlavní heslo" + +#: ../templates/config/mainmanage.php:74 +msgid "New master password set successfully." +msgstr "Nové hlavní heslo bylo úspěšně nastaveno." + +#: ../lib/lists.inc:108 +msgid "New object" +msgstr "Nový objekt" + +#: ../templates/ou_edit.php:178 ../help/help.inc:203 +msgid "New organisational unit" +msgstr "Nová organizační jednotka" + +#: ../templates/config/confmain.php:365 ../lib/modules/posixAccount.inc:2070 +#: ../lib/modules/passwordSelfReset.inc:681 +msgid "New password" +msgstr "Nové heslo" + +#: ../templates/config/profmanage.php:159 +msgid "New password set successfully." +msgstr "Nové heslo bylo úspěšně nastaveno." + +#: ../lib/types/ppolicyType.inc:112 ../lib/types/ppolicyType.inc:145 +msgid "New policy" +msgstr "Nová politika" + +#: ../lib/modules/range.inc:94 ../lib/modules/range.inc:108 +#: ../lib/modules/range.inc:444 +msgid "New range" +msgstr "Nový rozsah" + +#: ../lib/modules/nisMailAlias.inc:161 +msgid "New recipient" +msgstr "Nový příjemce" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:82 +msgid "New required attributes" +msgstr "Nové povinné atributy" + +#: ../templates/pdfedit/pdfpage.php:535 +msgid "New section" +msgstr "Nová sekce" + +#: ../lib/types/sudo.inc:96 ../lib/types/sudo.inc:150 +msgid "New sudo role" +msgstr "Nová role suda" + +#: ../lib/types/user.inc:116 ../lib/types/user.inc:199 +msgid "New user" +msgstr "Nový uživatel" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "New value" +msgstr "Nová hodnota:" + +#: ../lib/modules/sambaDomain.inc:78 ../lib/modules/sambaDomain.inc:158 +#: ../lib/modules/sambaDomain.inc:179 ../lib/modules/sambaDomain.inc:354 +#: ../lib/modules/sambaDomain.inc:641 +msgid "Next RID" +msgstr "Následující RID" + +#: ../lib/modules/sambaDomain.inc:205 ../lib/modules/sambaDomain.inc:206 +msgid "Next RID is not a number!" +msgstr "Následující RID není číslo!" + +#: ../lib/modules/sambaDomain.inc:79 +msgid "Next RID to use when creating accounts (only used by Winbind)." +msgstr "" +"Následující RID bude použit při vytváření účtů (používáno pouze Winbindem)." + +#: ../lib/modules/sambaDomain.inc:87 +msgid "Next RID to use when creating group accounts (only used by Winbind)." +msgstr "" +"Následující RID bude použit při vytváření účtů skupin (používáno pouze " +"Winbindem)." + +#: ../lib/modules/sambaDomain.inc:83 +msgid "Next RID to use when creating user accounts (only used by Winbind)." +msgstr "" +"Následující RID bude použit při vytváření uživatelských účtů (používáno " +"pouze Winbindem)." + +#: ../lib/modules/sambaDomain.inc:86 ../lib/modules/sambaDomain.inc:170 +#: ../lib/modules/sambaDomain.inc:181 ../lib/modules/sambaDomain.inc:370 +#: ../lib/modules/sambaDomain.inc:647 +msgid "Next group RID" +msgstr "Následující RID skupiny" + +#: ../lib/modules/sambaDomain.inc:209 ../lib/modules/sambaDomain.inc:210 +msgid "Next group RID is not a number!" +msgstr "Následující RID skupiny není číslo!" + +#: ../lib/modules/sambaDomain.inc:82 ../lib/modules/sambaDomain.inc:164 +#: ../lib/modules/sambaDomain.inc:180 ../lib/modules/sambaDomain.inc:362 +#: ../lib/modules/sambaDomain.inc:644 +msgid "Next user RID" +msgstr "Následující RID uživatele" + +#: ../lib/modules/sambaDomain.inc:207 ../lib/modules/sambaDomain.inc:208 +msgid "Next user RID is not a number!" +msgstr "Následující RID uživatele není číslo!" + +#: ../lib/modules/eduPerson.inc:88 ../lib/modules/eduPerson.inc:167 +#: ../lib/modules/eduPerson.inc:199 ../lib/modules/eduPerson.inc:311 +#: ../lib/modules/eduPerson.inc:673 +msgid "Nick names" +msgstr "Přezdívky" + +#: ../templates/schema/schema.php:151 ../templates/schema/schema.php:193 +#: ../templates/schema/schema.php:198 ../templates/schema/schema.php:203 +#: ../lib/modules/imapAccess.inc:108 +msgid "No" +msgstr "Ne" + +#: ../lib/types/dhcp.inc:160 +msgid "No DHCPs found!" +msgstr "DHCP nenalezen(y)!" + +#: ../lib/types/nisObjectType.inc:145 +msgid "No NIS objects found!" +msgstr "NIS objekt(y) nenalezen(y)!" + +#: ../templates/3rdParty/pla/lib/Template.php:558 +#: ../templates/3rdParty/pla/lib/Template.php:559 +msgid "No RDN attribute was selected." +msgstr "Nebyl vybrán žádný RDN atribut." + +#: ../lib/modules/sambaSamAccount.inc:1046 +#: ../lib/modules/sambaGroupMapping.inc:245 +msgid "No Samba 3 domains found in LDAP! Please create one first." +msgstr "Nenalezena doména Samby 3 v LDAPu! Prosím nejdříve nějakou vytvořte." + +#: ../lib/modules/posixAccount.inc:446 ../lib/modules/posixAccount.inc:1048 +msgid "No Unix groups found in LDAP! Please create one first." +msgstr "Nenalezena Unixová skupina v LDAPu! Prosím nejdříve nějakou vytvořte." + +#: ../lib/types/zarafaAddressListType.inc:139 +msgid "No address list found!" +msgstr "Seznam adres nenalezen!" + +#: ../lib/types/mailAlias.inc:136 ../lib/types/alias.inc:136 +msgid "No aliases found!" +msgstr "Alias nenalezen!" + +#: ../lib/types/automountType.inc:176 +msgid "No automount entries found!" +msgstr "Záznamy automountu nenalezeny!" + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:36 +msgid "No binary data available" +msgstr "Nejsou dostupná žádná binární data" + +#: ../templates/initsuff.php:163 +msgid "No changes were made." +msgstr "Nebyla provedena žádná změna." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:83 +#, php-format +msgid "No current value for attribute %s." +msgstr "Není zadána hodnota pro atribut %s." + +#: ../templates/schema/schema.php:142 +msgid "No description" +msgstr "Bez popisu" + +#: ../lib/types/smbDomain.inc:157 +msgid "No domains found!" +msgstr "Doména(y) nenalezena(y)!" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:20 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:21 +msgid "No entry was selected to delete" +msgstr "Nebyl vybrán žádný záznam ke smazání" + +#: ../lib/types/asteriskExt.inc:138 +msgid "No extension(s) found!" +msgstr "Rozšíření nenalezeno(a)!" + +#: ../lib/modules/inetOrgPerson.inc:80 +msgid "No file selected." +msgstr "Nebyl vybrán soubor." + +#: ../lib/modules/posixGroup.inc:477 ../lib/modules/posixAccount.inc:78 +msgid "No free ID-Number!" +msgstr "Není volné ID!" + +#: ../lib/types/gon.inc:162 ../lib/types/zarafaDynamicGroupType.inc:155 +#: ../lib/types/group.inc:175 ../lib/types/netgroup.inc:159 +msgid "No groups found!" +msgstr "Skupina(y) nenalezena(y)!" + +#: ../lib/types/host.inc:162 +msgid "No hosts found!" +msgstr "Stroj(e) nenalezen(y)!" + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:59 +msgid "No image available" +msgstr "Není dostupný žádný obrázek" + +#: ../templates/3rdParty/pla/lib/import_functions.php:94 +msgid "No import input" +msgstr "Import bez vstupních dat" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1354 +msgid "No internal attributes" +msgstr "Bez interních atributů" + +#: ../templates/tests/lamdaemonTest.php:193 +msgid "No lamdaemon path set, please update your LAM configuration settings." +msgstr "" +"Nebyla nastavena cesta k lamdaemonovi, prosím upravte vaše nastavení LAMu." + +#: ../templates/tests/lamdaemonTest.php:95 +#: ../templates/tests/lamdaemonTest.php:188 +msgid "No lamdaemon server set, please update your LAM configuration settings." +msgstr "Nebyla nastaven server lamdaemona, prosím upravte vaše nastavení LAMu." + +#: ../templates/config/mainmanage.php:219 +msgid "No logging" +msgstr "Bez žurnálu" + +#: ../templates/pdfedit/pdfpage.php:422 +msgid "No logo" +msgstr "Bez loga" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:157 +msgid "No new attributes available for this entry" +msgstr "Není dostupný žádný nový atribut pro tento záznam" + +#: ../lib/lists.inc:107 +msgid "No objects found!" +msgstr "Objekt(y) nenalezen(y)!" + +#: ../templates/config/confmodules.php:387 +msgid "No or more than one base module selected!" +msgstr "Nebyl vybrán žádný základní modul, či jich bylo vybráno více!" + +#: ../templates/config/confsave.php:53 ../templates/config/confmain.php:54 +#: ../lib/modules/passwordSelfReset.inc:740 +msgid "No password was entered!" +msgstr "Nebylo zadáno heslo!" + +#: ../lib/types/ppolicyType.inc:144 +msgid "No policies found!" +msgstr "Politika nenalezena!" + +#: ../templates/tests/schemaTest.php:68 +msgid "No problems found." +msgstr "Nebyl nalezen žádný problém!" + +#: ../lib/modules/customScripts.inc:160 +msgid "No scripts to run." +msgstr "Žádný skript ke spuštění." + +#: ../templates/pdfedit/pdfpage.php:119 +msgid "No section text specified" +msgstr "Nebyl zadán text sekce" + +#: ../lib/modules/passwordSelfReset.inc:761 +msgid "No security answer found." +msgstr "Nenalezena žádná bezpečnostní odpověď." + +#: ../templates/config/conflogin.php:128 +msgid "No server profiles found. Please create one." +msgstr "Nenalezen profil serveru. Prosím vytvořte jej." + +#: ../templates/pdfedit/pdfpage.php:107 +msgid "No static text specified" +msgstr "Nebyl zadán stálý text" + +#: ../lib/modules/dhcp_settings.inc:272 +msgid "No subnet entered." +msgstr "Nebyla zadána podsíť!" + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:45 +msgid "No such entry" +msgstr "Záznam neexistuje" + +#: ../templates/3rdParty/pla/htdocs/compare.php:24 +#: ../templates/3rdParty/pla/htdocs/compare.php:27 +#: ../templates/3rdParty/pla/htdocs/delete.php:19 +msgid "No such entry." +msgstr "Záznam neexistuje." + +#: ../templates/schema/schema.php:436 +#, php-format +msgid "No such schema item: \"%s\"" +msgstr "Neexistuje položka schématu: \"%s\"" + +#: ../lib/types/sudo.inc:149 +msgid "No sudo roles found!" +msgstr "Role suda nenalezena!" + +#: ../lib/types/user.inc:198 +msgid "No users found!" +msgstr "Uživatel nenalezen!" + +#: ../help/help.inc:64 +msgid "Note" +msgstr "Poznámka" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:125 +msgid "" +"Note: You may be required to enter new attributes that these objectClass(es) " +"require" +msgstr "" +"Poznámka: můžete být vyzván k zadání povinných atributů tohoto/těchto " +"objectClass" + +#: ../templates/3rdParty/pla/lib/export_functions.php:450 +msgid "Nothing to export" +msgstr "Není co exportovat" + +#: ../templates/config/mainmanage.php:215 +msgid "Notice" +msgstr "Poznámka" + +#: ../templates/delete.php:90 +msgid "Number of child entries" +msgstr "Počet podzáznamů" + +#: ../lib/modules/shadowAccount.inc:173 +msgid "" +"Number of days a user can login even his password has expired. -1=always." +msgstr "" +"Počet dní, během kterých se uživatel příhlásí, přestože platnost jeho hesla " +"vypršela (-1 = pořád)." + +#: ../lib/modules/shadowAccount.inc:177 +msgid "" +"Number of days a user has to wait until he is allowed to change his password " +"again. If set value must be >0." +msgstr "" +"Počet dní, během kterých si uživatel nesmí znovu změnit heslo. Pokud je " +"nastaveno, musí být větší než 0." + +#: ../lib/modules/shadowAccount.inc:181 +msgid "" +"Number of days after a user has to change his password again. If set value " +"must be >0." +msgstr "" +"Počet dní, po kterých si uživatel musí změnit heslo. Pokud je nastaveno, " +"musí být větší než 0." + +#: ../lib/modules/sambaDomain.inc:131 +msgid "Number of minutes after which the bad logon attempts are reset." +msgstr "" +"Počet minut, po kterých je vynulováno počítadlo neúspěšných pokusů o " +"přihlášení." + +#: ../lib/modules/ppolicy.inc:77 ../lib/modules/sambaDomain.inc:119 +msgid "" +"Number of seconds after the user is allowed to change his password again." +msgstr "Počet sekund, po kterých si uživatel může opět změnit heslo." + +#: ../lib/modules/ppolicy.inc:81 ../lib/modules/sambaDomain.inc:123 +msgid "Number of seconds after which the user must change his password." +msgstr "Počet sekund, po kterých si uživatel musí změnit heslo." + +#: ../templates/schema/schema.php:145 ../templates/schema/schema.php:342 +msgid "OID" +msgstr "OID" + +#: ../templates/ou_edit.php:81 +msgid "OU already exists!" +msgstr "OU již existuje!" + +#: ../templates/ou_edit.php:92 +msgid "OU deleted successfully." +msgstr "OU bylo úspěšně smazáno" + +#: ../templates/ou_edit.php:150 ../lib/tools/ouEditor.inc:44 +msgid "OU editor" +msgstr "OU editor" + +#: ../templates/ou_edit.php:85 +msgid "OU is invalid!" +msgstr "Neplatné OU!" + +#: ../templates/ou_edit.php:129 +msgid "OU is not empty or invalid!" +msgstr "OU není prázdné či platné!" + +#: ../help/help.inc:203 ../help/help.inc:205 +msgid "OU-Editor" +msgstr "OU editor" + +#: ../templates/schema/schema.php:63 ../templates/schema/schema.php:64 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1324 +msgid "Object classes" +msgstr "Třídy objektu" + +#: ../templates/schema/schema.php:150 ../templates/schema/schema.php:281 +msgid "Obsolete" +msgstr "Zastaralé" + +#: ../lib/modules/sambaDomain.inc:282 ../lib/modules/sambaDomain.inc:291 +#: ../lib/modules/sambaDomain.inc:300 ../lib/modules/sambaDomain.inc:659 +#: ../lib/modules/sambaDomain.inc:664 ../lib/modules/sambaDomain.inc:669 +msgid "Off" +msgstr "Vypnout" + +#: ../lib/modules/inetOrgPerson.inc:127 ../lib/modules/inetOrgPerson.inc:245 +#: ../lib/modules/inetOrgPerson.inc:492 ../lib/modules/inetOrgPerson.inc:527 +#: ../lib/modules/inetOrgPerson.inc:681 ../lib/modules/inetOrgPerson.inc:1153 +#: ../lib/modules/inetOrgPerson.inc:1447 ../lib/modules/inetOrgPerson.inc:1994 +msgid "Office name" +msgstr "Název oddělení" + +#: ../templates/lists/changePassword.php:228 +#: ../templates/lists/changePassword.php:264 +#: ../templates/tests/lamdaemonTest.php:90 ../templates/ou_edit.php:186 +#: ../templates/ou_edit.php:200 ../templates/masscreate.php:195 +#: ../templates/config/profmanage.php:386 +#: ../templates/config/mainmanage.php:252 +#: ../templates/config/conflogin.php:158 ../templates/config/conflogin.php:159 +#: ../templates/config/mainlogin.php:155 +#: ../templates/selfService/selfServiceLogin.php:275 +#: ../templates/selfService/profManage.php:285 +#: ../templates/selfService/adminLogin.php:152 +#: ../templates/selfService/adminLogin.php:153 +#: ../templates/selfService/adminMain.php:443 +#: ../templates/selfService/adminMain.php:487 +#: ../templates/pdfedit/pdfmain.php:158 +#: ../templates/profedit/profiledelete.php:91 +#: ../templates/profedit/profilemain.php:157 +#: ../lib/types/automountType.inc:199 ../lib/types/automountType.inc:234 +#: ../lib/types/dhcp.inc:277 ../lib/modules/device.inc:297 +#: ../lib/modules/sambaSamAccount.inc:1343 +#: ../lib/modules/sambaSamAccount.inc:1469 ../lib/modules/zarafaUser.inc:875 +#: ../lib/modules/nisnetgroup.inc:469 ../lib/modules/nisnetgroup.inc:479 +#: ../lib/modules/asteriskExtension.inc:330 ../lib/modules/aliasEntry.inc:141 +#: ../lib/modules/aliasEntry.inc:161 ../lib/modules/imapAccess.inc:269 +#: ../lib/modules/passwordSelfReset.inc:595 +#: ../lib/modules/passwordSelfReset.inc:699 +#: ../lib/modules/groupOfNames.inc:319 ../lib/modules/groupOfNames.inc:431 +#: ../lib/lists.inc:641 ../lib/lists.inc:714 ../lib/modules.inc:1083 +msgid "Ok" +msgstr "Ok" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:98 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +msgid "Old value" +msgstr "Stará hodnota" + +#: ../lib/modules/sambaDomain.inc:282 ../lib/modules/sambaDomain.inc:291 +#: ../lib/modules/sambaDomain.inc:300 ../lib/modules/sambaDomain.inc:660 +#: ../lib/modules/sambaDomain.inc:665 ../lib/modules/sambaDomain.inc:670 +msgid "On" +msgstr "Zapnout" + +#: ../lib/modules/sambaSamAccount.inc:225 +#: ../lib/modules/sambaSamAccount.inc:362 +#: ../lib/modules/sambaSamAccount.inc:1455 +#: ../lib/modules/sambaSamAccount.inc:1735 +msgid "On broken or timed out connection" +msgstr "Při přerušení či vypršení spojení" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:139 +#: ../templates/3rdParty/pla/htdocs/export_form.php:32 +msgid "One (one level beneath base)" +msgstr "Jeden (jedna úroveň pod základem)" + +#: ../lib/modules/range.inc:107 ../lib/modules/fixed_ip.inc:105 +msgid "One or more errors occured. The invalid fields are marked." +msgstr "Nastala jedna čí více chyb. Byla označena špatná pole." + +#: ../templates/3rdParty/pla/htdocs/copy.php:98 +#: ../templates/3rdParty/pla/htdocs/copy.php:155 +#, php-format +msgid "Operation not successful. DN %s has not been created." +msgstr "Operace neproběhla úspěšně. DN záznam %s nebyl vytvořen." + +#: ../templates/serverInfo.php:275 ../templates/serverInfo.php:365 +msgid "Operation statistics" +msgstr "Statistika operací" + +#: ../templates/3rdParty/pla/htdocs/copy.php:95 +#: ../templates/3rdParty/pla/htdocs/copy.php:153 +#, php-format +msgid "Operation successful. DN %s has been created." +msgstr "Operace proběhla úspěšně. DN záznam %s byl vytvořen." + +#: ../templates/schema/schema.php:382 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1575 +msgid "Optional attributes" +msgstr "Volitelné atributy" + +#: ../templates/lists/changePassword.php:181 ../lib/types/sudo.inc:83 +#: ../lib/modules/zarafaDynamicGroup.inc:241 +#: ../lib/modules/zarafaGroup.inc:179 ../lib/modules/posixAccount.inc:184 +#: ../lib/modules/zarafaUser.inc:529 ../lib/modules/sudoRole.inc:83 +#: ../lib/modules/sudoRole.inc:112 ../lib/modules/sudoRole.inc:164 +#: ../lib/modules/sudoRole.inc:178 ../lib/modules/sudoRole.inc:187 +#: ../lib/modules/sudoRole.inc:399 ../lib/modules/sudoRole.inc:702 +#: ../lib/modules/asteriskExtension.inc:106 +#: ../lib/modules/asteriskVoicemail.inc:106 +#: ../lib/modules/asteriskVoicemail.inc:116 +#: ../lib/modules/asteriskVoicemail.inc:133 +#: ../lib/modules/asteriskVoicemail.inc:181 +#: ../lib/modules/asteriskVoicemail.inc:273 +#: ../lib/modules/asteriskVoicemail.inc:414 +msgid "Options" +msgstr "Volby" + +#: ../lib/modules/asteriskVoicemail.inc:107 +msgid "Options for Asterisk voicemail account (e.g. sendvoicemail=yes)." +msgstr "Volby pro účet hlasové schránky Asterisku (např. sendvoicemail=yes)." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:39 +msgid "Or paste your LDIF here" +msgstr "Nebo sem vložte LDIF" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:166 +msgid "Order by" +msgstr "Tříděno dle" + +#: ../templates/schema/schema.php:169 +msgid "Ordering" +msgstr "Třídění" + +#: ../lib/modules/eduPerson.inc:113 ../lib/modules/eduPerson.inc:179 +#: ../lib/modules/eduPerson.inc:200 ../lib/modules/eduPerson.inc:217 +#: ../lib/modules/eduPerson.inc:353 ../lib/modules/eduPerson.inc:684 +#: ../lib/modules/inetOrgPerson.inc:165 ../lib/modules/inetOrgPerson.inc:271 +#: ../lib/modules/inetOrgPerson.inc:460 ../lib/modules/inetOrgPerson.inc:566 +#: ../lib/modules/inetOrgPerson.inc:697 ../lib/modules/inetOrgPerson.inc:1232 +#: ../lib/modules/inetOrgPerson.inc:1448 +msgid "Organisation" +msgstr "Organizace" + +#: ../lib/modules/eduPerson.inc:121 ../lib/modules/eduPerson.inc:125 +#: ../lib/modules/eduPerson.inc:191 ../lib/modules/eduPerson.inc:201 +#: ../lib/modules/eduPerson.inc:377 ../lib/modules/eduPerson.inc:690 +msgid "Organisational units" +msgstr "Organizační jednotky" + +#: ../lib/modules/eduPerson.inc:221 +msgid "Organisational units contains an invalid entry." +msgstr "Organizační jednotky obsahují špatný záznam." + +#: ../templates/config/confmain.php:299 +msgid "Other" +msgstr "Ostatní" + +#: ../lib/modules/customScripts.inc:76 ../lib/modules/customScripts.inc:88 +#: ../lib/modules/customScripts.inc:97 +msgid "Output may contain HTML" +msgstr "Výstup může obsahovat HTML" + +#: ../lib/modules/customScripts.inc:407 +#, php-format +msgid "Output of command \"%s\" with return code %s" +msgstr "Výstup příkazu \"%s\" s návratovou hodnotou %s" + +#: ../templates/serverInfo.php:166 +msgid "Overlays" +msgstr "Overlays" + +#: ../lib/modules/zarafaUser.inc:73 +msgid "Override default quota settings." +msgstr "Přepsání výchozího nastavení kvóty." + +#: ../templates/config/confmain.php:291 +msgid "Owner" +msgstr "Vlastník" + +#: ../lib/types/gon.inc:94 ../lib/modules/device.inc:62 +#: ../lib/modules/device.inc:66 ../lib/modules/device.inc:95 +#: ../lib/modules/device.inc:115 ../lib/modules/device.inc:179 +#: ../lib/modules/device.inc:426 ../lib/modules/groupOfNames.inc:68 +#: ../lib/modules/groupOfNames.inc:72 ../lib/modules/groupOfNames.inc:105 +#: ../lib/modules/groupOfNames.inc:131 ../lib/modules/groupOfNames.inc:180 +#: ../lib/modules/groupOfNames.inc:541 +msgid "Owners" +msgstr "Vlastníci" + +#: ../lib/modules/dhcp_settings.inc:88 +msgid "P-Node (0x02)" +msgstr "P-Node (0x02)" + +#: ../lib/modules/fixed_ip.inc:87 ../lib/modules/fixed_ip.inc:334 +#: ../lib/modules/fixed_ip.inc:520 +msgid "PC name" +msgstr "Jméno počítače" + +#: ../templates/pdfedit/pdfpage.php:438 ../templates/pdfedit/pdfmain.php:79 +#: ../lib/tools/pdfEdit.inc:44 +msgid "PDF editor" +msgstr "PDF editor" + +#: ../lib/lists.inc:619 ../help/help.inc:162 +msgid "PDF structure" +msgstr "PDF struktura" + +#: ../templates/pdfedit/pdfpage.php:90 +msgid "PDF structure name not valid" +msgstr "Neplatný název PDF struktury" + +#: ../templates/pdfedit/pdfmain.php:124 +msgid "PDF structure was successfully saved." +msgstr "PDF struktura byla úspěšně uložena." + +#: ../templates/serverInfo.php:262 +msgid "PDUs sent" +msgstr "PDU odesláno" + +#: ../lib/modules/zarafaUser.inc:313 ../lib/modules/zarafaUser.inc:603 +#: ../lib/modules/zarafaUser.inc:1308 +msgid "POP3" +msgstr "POP3" + +#: ../lib/modules/sambaSamAccount.inc:531 +msgid "Pacific Time (US & Canada)" +msgstr "Pacifický čas (USA a Kanada)" + +#: ../lib/modules/dhcp_settings.inc:140 +msgid "" +"Packets are sent to the default gateway if the receiver does not reside in " +"the same network. The default gateway routes them to the target network." +msgstr "" +"Pokud příjemce neleží ve stejné sítí, pak byly pakety poslány výchozí bráně. " +"Výchozí brána je nasměruje k cílové síti." + +#: ../templates/selfService/adminMain.php:386 ../help/help.inc:182 +msgid "Page header" +msgstr "Hlavička stránky" + +#: ../templates/selfService/adminMain.php:338 +msgid "Page layout" +msgstr "Vzhled stránky" + +#: ../lib/modules/asteriskVoicemail.inc:102 +#: ../lib/modules/asteriskVoicemail.inc:132 +#: ../lib/modules/asteriskVoicemail.inc:175 +#: ../lib/modules/asteriskVoicemail.inc:267 +#: ../lib/modules/asteriskVoicemail.inc:406 +msgid "Pager" +msgstr "Pager" + +#: ../lib/modules/asteriskVoicemail.inc:103 +msgid "Pager number for Asterisk voicemail." +msgstr "Číslo pageru pro hlasovou schránku Asterisku." + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:35 +msgid "Parent DN" +msgstr "Nadřazený DN záznam" + +#: ../templates/schema/schema.php:364 +msgid "Parent to" +msgstr "Nadřazený k" + +#: ../templates/3rdParty/pla/htdocs/import.php:98 +msgid "Parse error" +msgstr "Chyba analýzy" + +#: ../templates/lists/changePassword.php:242 ../templates/login.php:301 +#: ../templates/selfService/selfServiceLogin.php:256 +#: ../lib/modules/asteriskAccount.inc:106 +#: ../lib/modules/asteriskAccount.inc:389 ../lib/modules/posixGroup.inc:194 +#: ../lib/modules/posixGroup.inc:474 ../lib/modules/sambaSamAccount.inc:400 +#: ../lib/modules/posixAccount.inc:83 ../lib/modules/posixAccount.inc:84 +#: ../lib/modules/posixAccount.inc:148 ../lib/modules/posixAccount.inc:251 +#: ../lib/modules/posixAccount.inc:322 ../lib/modules/posixAccount.inc:387 +#: ../lib/modules/posixAccount.inc:1150 ../lib/modules/posixAccount.inc:1481 +#: ../lib/modules/inetOrgPerson.inc:1250 +#: ../lib/modules/asteriskVoicemail.inc:90 +#: ../lib/modules/asteriskVoicemail.inc:156 ../lib/modules.inc:971 +#: ../help/help.inc:160 +msgid "Password" +msgstr "Heslo" + +#: ../lib/modules/sambaSamAccount.inc:272 +#: ../lib/modules/sambaSamAccount.inc:1088 +msgid "Password change at next login" +msgstr "Změnit heslo při příštím přihlášení" + +#: ../lib/modules/ppolicyUser.inc:52 ../lib/modules/ppolicyUser.inc:67 +#: ../lib/modules/ppolicyUser.inc:121 ../lib/modules/ppolicyUser.inc:232 +msgid "Password change required" +msgstr "Vyžadována změna hesla" + +#: ../lib/types/ppolicyType.inc:91 ../lib/modules/ppolicy.inc:128 +#: ../lib/modules/ppolicy.inc:148 ../lib/modules/ppolicy.inc:292 +#: ../lib/modules/ppolicy.inc:502 +msgid "Password change requires old password" +msgstr "Vyžadovat staré heslo při změna hesla" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:30 +msgid "Password check" +msgstr "Kontrola kvality hesla" + +#: ../lib/modules/posixGroup.inc:474 ../lib/modules/sambaSamAccount.inc:97 +#: ../lib/modules/posixAccount.inc:84 ../lib/modules/posixAccount.inc:85 +msgid "" +"Password contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and #*,.;:_-+!%&/|?{[()]}=@$ !" +msgstr "" +"Heslo obsahuje neplatné znaky. Přípustné znaky jsou: a-z, A-Z, 0-9 a #*,.;:_-" +"+!%&/|?{[()]}=@$ !" + +#: ../lib/modules/sambaSamAccount.inc:257 +#: ../lib/modules/sambaSamAccount.inc:260 +#: ../lib/modules/sambaSamAccount.inc:422 +#: ../lib/modules/sambaSamAccount.inc:1078 +#: ../lib/modules/sambaSamAccount.inc:1494 +msgid "Password does not expire" +msgstr "Heslu nevyprší platnost" + +#: ../lib/types/user.inc:103 ../lib/modules/shadowAccount.inc:61 +#: ../lib/modules/shadowAccount.inc:106 ../lib/modules/shadowAccount.inc:163 +#: ../lib/modules/shadowAccount.inc:172 ../lib/modules/shadowAccount.inc:206 +#: ../lib/modules/shadowAccount.inc:313 ../lib/modules/shadowAccount.inc:470 +msgid "Password expiration" +msgstr "Doba platnosti hesla" + +#: ../lib/modules/shadowAccount.inc:61 ../lib/modules/shadowAccount.inc:62 +msgid "Password expiration must be are natural number or -1." +msgstr "Doba platnosti hesla musí být přirozené číslo nebo -1." + +#: ../lib/modules/asteriskVoicemail.inc:91 +msgid "Password for voicemail mailbox." +msgstr "Heslo hlasové schránky" + +#: ../lib/modules/posixGroup.inc:410 ../lib/modules/posixGroup.inc:438 +#: ../lib/modules/posixAccount.inc:152 ../lib/modules/posixAccount.inc:186 +#: ../lib/modules/posixAccount.inc:342 ../lib/modules/inetOrgPerson.inc:284 +#: ../lib/modules/inetOrgPerson.inc:693 +msgid "Password hash type" +msgstr "Typ heše hesla" + +#: ../lib/types/ppolicyType.inc:80 ../lib/modules/ppolicy.inc:84 +#: ../lib/modules/ppolicy.inc:137 ../lib/modules/ppolicy.inc:161 +#: ../lib/modules/ppolicy.inc:222 ../lib/modules/ppolicy.inc:466 +#: ../lib/modules/sambaDomain.inc:98 ../lib/modules/sambaDomain.inc:184 +#: ../lib/modules/sambaDomain.inc:276 ../lib/modules/sambaDomain.inc:656 +msgid "Password history length" +msgstr "Délka historie hesel" + +#: ../templates/config/confmain.php:332 +msgid "Password mail settings" +msgstr "Nastavení e-mailu pro zaslání hesla" + +#: ../lib/modules/shadowAccount.inc:59 ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/ppolicy.inc:159 ../lib/modules/sambaDomain.inc:215 +msgid "Password maximum age must be are natural number." +msgstr "Nejdelší doba platnosti hesla musí být přirozené číslo." + +#: ../lib/modules/shadowAccount.inc:66 +msgid "Password maximum age must be bigger as password minimum age." +msgstr "" +"Nejdelší doba platnosti hesla musí být větší než nejkratší doba platnosti." + +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/ppolicy.inc:160 +#: ../lib/modules/sambaDomain.inc:213 +msgid "Password maximum age must be bigger than password minimum age." +msgstr "" +"Nejdelší doba platnosti hesla musí být větší než nejkratší doba platnosti." + +#: ../lib/modules/shadowAccount.inc:57 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/ppolicy.inc:158 ../lib/modules/sambaDomain.inc:214 +msgid "Password minimum age must be are natural number." +msgstr "Nejkratší doba platnosti hesla musí být přirozené číslo." + +#: ../lib/modules/imapAccess.inc:84 ../lib/modules/imapAccess.inc:264 +msgid "Password of IMAP admin user" +msgstr "Heslo administrátora IMAPu" + +#: ../lib/types/ppolicyType.inc:39 +msgid "Password policies" +msgstr "Politiky hesel" + +#: ../lib/types/ppolicyType.inc:48 +msgid "Password policies (ppolicy)" +msgstr "Politiky hesel (ppolicy)" + +#: ../templates/config/mainmanage.php:209 ../lib/modules/ppolicyUser.inc:38 +#: ../lib/modules/ppolicyUser.inc:48 ../lib/modules/ppolicyUser.inc:60 +#: ../lib/modules/ppolicyUser.inc:76 ../lib/modules/ppolicyUser.inc:112 +#: ../lib/modules/ppolicyUser.inc:227 ../lib/modules/ppolicyUser.inc:260 +#: ../lib/modules/ppolicy.inc:54 ../lib/modules/sambaDomain.inc:259 +#: ../help/help.inc:142 +msgid "Password policy" +msgstr "Politika hesel" + +#: ../lib/types/ppolicyType.inc:81 ../lib/modules/ppolicy.inc:88 +#: ../lib/modules/ppolicy.inc:138 ../lib/modules/ppolicy.inc:234 +#: ../lib/modules/ppolicy.inc:476 +msgid "Password quality check" +msgstr "Kontrola kvality hesla" + +#: ../lib/modules/passwordSelfReset.inc:51 +#: ../lib/modules/passwordSelfReset.inc:598 +#: ../lib/modules/passwordSelfReset.inc:702 +msgid "Password self reset" +msgstr "Reset vlastního hesla" + +#: ../lib/modules/passwordSelfReset.inc:915 +msgid "Password successfully reset." +msgstr "Reset hesla byl úspěšný." + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:101 +#: ../lib/modules/shadowAccount.inc:161 ../lib/modules/shadowAccount.inc:168 +#: ../lib/modules/shadowAccount.inc:200 ../lib/modules/shadowAccount.inc:305 +#: ../lib/modules/shadowAccount.inc:469 +msgid "Password warning" +msgstr "Varování před koncem platnosti hesla" + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:64 +msgid "Password warning must be are natural number." +msgstr "Varování před koncem platnosti hesla musí být přirozené číslo." + +#: ../templates/config/confmain.php:488 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:61 +#: ../lib/modules/passwordSelfReset.inc:745 ../lib/modules.inc:1030 +msgid "Passwords are different!" +msgstr "Hesla se liší!" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:59 +msgid "Passwords match." +msgstr "Hesla jsou shodná." + +#: ../lib/types/nisObjectType.inc:77 +msgid "Path" +msgstr "Cesta" + +#: ../lib/modules/sambaSamAccount.inc:336 +msgid "Path of the user profile." +msgstr "Cesta k uživatelskému profilu." + +#: ../lib/modules/sambaSamAccount.inc:287 +msgid "" +"Path of the user profile. Can be a local absolute path or a UNC-path (\\" +"\\server\\share). $user and $group are replaced with user and group name." +msgstr "" +"Cesta k uživatelskému profilu muže být lokální cesta nebo UNC cesta (\\" +"\\server\\sdílení). $user a $group budou nahrazeny za uživatelské jméno nebo " +"název skupiny." + +#: ../templates/config/confmain.php:282 +msgid "Path to external script" +msgstr "Cesta k externímu skriptu" + +#: ../lib/modules/ddns.inc:96 ../lib/modules/ddns.inc:345 +msgid "Path to key for DNS updates" +msgstr "Cesta ke klíči pro úpravy DNS" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:41 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:64 +msgid "Permanently delete all children also?" +msgstr "Smazat trvale také všechny podobjekty?" + +#: ../lib/modules/asteriskAccount.inc:162 +#: ../lib/modules/asteriskAccount.inc:271 +#: ../lib/modules/asteriskAccount.inc:343 +#: ../lib/modules/asteriskAccount.inc:486 +#: ../lib/modules/asteriskAccount.inc:809 +#: ../lib/modules/asteriskAccount.inc:1229 +msgid "Permit" +msgstr "Povolit" + +#: ../lib/modules/inetOrgPerson.inc:99 +msgid "Personal" +msgstr "Osobní" + +#: ../lib/types/user.inc:102 ../lib/types/user.inc:281 +#: ../lib/modules/inetOrgPerson.inc:125 ../lib/modules/inetOrgPerson.inc:2017 +#: ../lib/modules/inetOrgPerson.inc:2024 +msgid "Photo" +msgstr "Fotka" + +#: ../lib/modules/inetOrgPerson.inc:1308 +msgid "Photo file (JPG format)" +msgstr "Soubor s fotkou (ve formátu JPG)" + +#: ../lib/modules/asteriskAccount.inc:166 +#: ../lib/modules/asteriskAccount.inc:273 +#: ../lib/modules/asteriskAccount.inc:344 +#: ../lib/modules/asteriskAccount.inc:493 +#: ../lib/modules/asteriskAccount.inc:818 +#: ../lib/modules/asteriskAccount.inc:1232 +msgid "Pickup group" +msgstr "Skupina přijímajících" + +#: ../lib/modules/ldapPublicKey.inc:67 +msgid "Please a comma separated list of your public SSH keys." +msgstr "Prosím zadejte čárkou oddělený seznam vašich veřejných SSH klíčů!" + +#: ../lib/modules/customScripts.inc:77 +msgid "" +"Please activate this option if your scripts may generate HTML output. " +"Otherwise, the output is treated as plain text." +msgstr "" +"Prosím aktivujte tuto volbu, pokud váš skript může generovat HTML. Jinak je " +"výstup brán jako prostý text." + +#: ../lib/modules/asteriskExtension.inc:198 +msgid "Please add at least one member." +msgstr "Prosím přidejte alespoň jednoho člena." + +#: ../lib/modules/sambaSamAccount.inc:1040 +msgid "Please check your settings on the Unix page!" +msgstr "Prosím zkontrolujte si nastavení na Unixové stránce!" + +#: ../lib/modules/imapAccess.inc:94 +msgid "" +"Please choose the attribute to get the IMAP user name. The default is \"mail" +"\" but you can also use \"uid\"." +msgstr "" +"Prosím vyberte atribut, který obsahuje uživatelské jméno pro IMAP. Výchozí " +"je \"mail\", ale můžete také používat \"uid\"." + +#: ../lib/modules/phpGroupwareUser.inc:134 +msgid "Please enter \"active\" or \"inactive\"." +msgstr "Prosím zadejte \"active\" (aktivní) nebo \"inactive\" (neaktivní)." + +#: ../lib/modules/sambaSamAccount.inc:98 +msgid "Please enter a RID number or the name of a special account!" +msgstr "Prosím zadejte RID nebo název speciálního účtu!" + +#: ../lib/modules/asteriskAccount.inc:619 +msgid "Please enter a caller ID." +msgstr "Prosím zadejte ID volajícího." + +#: ../lib/modules/imapAccess.inc:91 +msgid "" +"Please enter a comma separated list of domain names (e.g. \"company.com," +"example.com\"). LAM will only manage mailboxes from these domains." +msgstr "" +"Prosím zadejte čárkou oddělený seznam doménových jmen (např. \"spolecnost.cz," +"domena.cz\"). LAM bude spravovat poštovní schránky pouze těchto domén." + +#: ../lib/modules/sambaSamAccount.inc:95 ../lib/modules/sambaSamAccount.inc:96 +msgid "Please enter a comma separated list of host names!" +msgstr "Prosím zadejte čárkou oddělený seznam názvů strojů!" + +#: ../lib/modules/asteriskExtension.inc:191 +msgid "Please enter a common name." +msgstr "Prosím zadejte běžné jméno." + +#: ../lib/modules/imapAccess.inc:153 +msgid "Please enter a correct list of valid mail domains." +msgstr "Prosím zadejte platný seznam e-mailových domén." + +#: ../lib/modules/nisObject.inc:55 ../lib/modules/automount.inc:55 +#: ../lib/modules/sudoRole.inc:56 +msgid "Please enter a descriptive name for this entry." +msgstr "Prosím zadejte popisný název pro tento záznam." + +#: ../lib/modules/groupOfNames.inc:145 +msgid "Please enter a group name!" +msgstr "Prosím zadejte název skupiny!" + +#: ../lib/modules/asteriskVoicemail.inc:200 +msgid "Please enter a mailbox." +msgstr "Prosím zadejte hlasovou schránku." + +#: ../lib/modules/device.inc:55 +msgid "Please enter a name for this device." +msgstr "Prosím zadejte název pro toto zařízení." + +#: ../lib/modules/ppolicy.inc:157 +msgid "Please enter a name for this policy." +msgstr "Prosím zadejte název pro tuto politiku." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:38 +#: ../lib/modules/zarafaUser.inc:386 ../lib/modules/zarafaUser.inc:387 +#: ../lib/modules/zarafaUser.inc:388 ../lib/modules/zarafaUser.inc:389 +#: ../lib/modules/zarafaUser.inc:390 ../lib/modules/zarafaUser.inc:391 +#: ../lib/modules/zarafaUser.inc:393 ../lib/modules/zarafaUser.inc:394 +msgid "Please enter a number." +msgstr "Prosím zadejte číslo." + +#: ../lib/modules/ppolicy.inc:166 +msgid "Please enter a numeric value for the expire warning." +msgstr "Prosím zadejte číslo pro varování vypršení platnosti." + +#: ../lib/modules/ppolicy.inc:165 +msgid "Please enter a numeric value for the failure count interval." +msgstr "Prosím zadejte číslo pro interval počtu neúspěchů." + +#: ../lib/modules/ppolicy.inc:162 +msgid "Please enter a numeric value for the grace authentication limit." +msgstr "Prosím zadejte číslo pro limit odkladu autentizace." + +#: ../lib/modules/freeRadius.inc:251 ../lib/modules/freeRadius.inc:252 +msgid "Please enter a numeric value for the idle timeout." +msgstr "Prosím zadejte číslo pro časový limit nečinnosti." + +#: ../lib/modules/ppolicy.inc:163 +msgid "Please enter a numeric value for the lockout duration." +msgstr "Prosím zadejte číslo pro dobu uzamčení." + +#: ../lib/modules/ppolicy.inc:164 +msgid "Please enter a numeric value for the maximum failure count." +msgstr "Prosím zadejte číslo pro maximální počet neúspěchů." + +#: ../lib/modules/ppolicy.inc:167 +msgid "Please enter a numeric value for the minimum password length." +msgstr "Prosím zadejte číslo pro minimální délku hesla." + +#: ../lib/modules/ppolicy.inc:161 +msgid "Please enter a numeric value for the password history length." +msgstr "Prosím zadejte číslo pro délku historie hesel." + +#: ../lib/modules/sudoRole.inc:221 +msgid "Please enter a role name." +msgstr "Prosím zadejte název role suda." + +#: ../lib/modules/passwordSelfReset.inc:765 +msgid "Please enter a security answer." +msgstr "Prosím zadejte bezpečnostní odpověď." + +#: ../lib/modules/ppolicy.inc:73 +msgid "Please enter a unique name for this password policy." +msgstr "Prosím zadejte jedinečný název pro tuto politiku hesel." + +#: ../lib/modules/kolabUser.inc:258 ../lib/modules/kolabUser.inc:264 +msgid "Please enter a user password." +msgstr "Prosím zadejte uživatelské heslo." + +#: ../lib/modules/zarafaDynamicGroup.inc:172 ../lib/modules/eduPerson.inc:217 +#: ../lib/modules/eduPerson.inc:219 ../lib/modules/zarafaAddressList.inc:144 +msgid "Please enter a valid DN in the field:" +msgstr "Prosím zadejte do pole platné DN:" + +#: ../lib/modules/inetOrgPerson.inc:81 ../lib/modules/inetOrgPerson.inc:82 +msgid "Please enter a valid business category!" +msgstr "Prosím zadejte platnou obchodní kategorii!" + +#: ../lib/modules/posixAccount.inc:103 ../lib/modules/posixAccount.inc:104 +#: ../lib/modules/inetOrgPerson.inc:74 ../lib/modules/inetOrgPerson.inc:75 +msgid "Please enter a valid common name!" +msgstr "Prosím zadejte platné běžné jméno!" + +#: ../lib/modules/sambaSamAccount.inc:106 +msgid "Please enter a valid date in format DD-MM-YYYY." +msgstr "Prosím zadejte platné datum ve formátu DD-MM-YYYY." + +#: ../lib/modules/asteriskAccount.inc:640 +#: ../lib/modules/asteriskAccount.inc:641 +msgid "Please enter a valid default user." +msgstr "Prosím zadejte platného výchozího uživatele." + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:101 +msgid "Please enter a valid display name!" +msgstr "Prosím zadejte platné zobrazované jmeno!" + +#: ../lib/modules/sambaSamAccount.inc:107 +msgid "Please enter a valid drive letter." +msgstr "Prosím zadejte platné písmeno disku." + +#: ../lib/modules/zarafaDynamicGroup.inc:174 +#: ../lib/modules/zarafaDynamicGroup.inc:175 +#: ../lib/modules/zarafaGroup.inc:137 ../lib/modules/zarafaGroup.inc:138 +#: ../lib/modules/inetOrgPerson.inc:60 ../lib/modules/inetOrgPerson.inc:61 +#: ../lib/modules/passwordSelfReset.inc:615 +#: ../lib/modules/passwordSelfReset.inc:719 +msgid "Please enter a valid email address!" +msgstr "Prosím zadejte platnou e-mailovou adresu!" + +#: ../lib/modules/zarafaDynamicGroup.inc:176 +#: ../lib/modules/zarafaDynamicGroup.inc:177 +#: ../lib/modules/zarafaGroup.inc:139 ../lib/modules/zarafaGroup.inc:140 +msgid "Please enter a valid email alias." +msgstr "Prosím zadejte platnou e-mailovou adresu." + +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:73 +msgid "Please enter a valid employee type!" +msgstr "Prosím zadejte platný druh pracovního poměru!" + +#: ../lib/modules/inetOrgPerson.inc:58 ../lib/modules/inetOrgPerson.inc:59 +msgid "Please enter a valid fax number!" +msgstr "Prosím zadejte platné číslo faxu!" + +#: ../lib/lists.inc:220 +msgid "" +"Please enter a valid filter. Only letters, numbers and \" _*$.-\" are " +"allowed." +msgstr "" +"Prosím zadejte platný filtr. Poloeny jsou pouze písmena, číslice a ů \" _*$.-" +"\"." + +#: ../lib/modules/asteriskAccount.inc:634 +#: ../lib/modules/asteriskAccount.inc:635 +msgid "Please enter a valid from domain." +msgstr "Prosím zadejte platnou odesílající doménu." + +#: ../lib/modules/asteriskAccount.inc:632 +#: ../lib/modules/asteriskAccount.inc:633 +msgid "Please enter a valid from user." +msgstr "Prosím zadejte platného odesílatele." + +#: ../lib/modules/sambaSamAccount.inc:111 +msgid "Please enter a valid group name!" +msgstr "Prosím zadejte platný název skupiny!" + +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:71 +msgid "Please enter a valid job title!" +msgstr "Prosím zadejte platné pracovní zařazení!" + +#: ../lib/modules/eduPerson.inc:225 +msgid "Please enter a valid list of affiliations." +msgstr "Prosím zadejte platný seznam vztahů!" + +#: ../lib/modules/freeRadius.inc:247 ../lib/modules/freeRadius.inc:248 +msgid "Please enter a valid list of group names." +msgstr "Prosím zadejte platný seznam názvů skupin." + +#: ../lib/modules/hostObject.inc:104 +msgid "Please enter a valid list of host names." +msgstr "Prosím zadejte platný seznam názvů strojů!" + +#: ../lib/modules/authorizedServiceObject.inc:114 +msgid "Please enter a valid list of service names." +msgstr "Prosím zadejte platný seznam názvů služeb." + +#: ../lib/modules/inetOrgPerson.inc:56 ../lib/modules/inetOrgPerson.inc:57 +msgid "Please enter a valid mobile number!" +msgstr "Prosím zadejte platné číslo mobilu!" + +#: ../lib/modules/zarafaServer.inc:124 ../lib/modules/zarafaServer.inc:125 +msgid "Please enter a valid path." +msgstr "Prosím zadejte platnou cestu." + +#: ../lib/modules/asteriskAccount.inc:636 +#: ../lib/modules/asteriskAccount.inc:637 ../lib/modules/zarafaServer.inc:120 +#: ../lib/modules/zarafaServer.inc:121 ../lib/modules/zarafaServer.inc:122 +#: ../lib/modules/zarafaServer.inc:123 +msgid "Please enter a valid port number." +msgstr "Prosím zadejte platný port." + +#: ../lib/modules/inetOrgPerson.inc:64 ../lib/modules/inetOrgPerson.inc:65 +msgid "Please enter a valid postal address!" +msgstr "Prosím zadejte platnou poštovní adresu!" + +#: ../lib/modules/inetOrgPerson.inc:68 ../lib/modules/inetOrgPerson.inc:69 +msgid "Please enter a valid postal code!" +msgstr "Prosím zadejte platné PSČ!" + +#: ../lib/modules/eduPerson.inc:223 +msgid "Please enter a valid primary affiliation." +msgstr "Prosím zadejte platný hlavní vztah." + +#: ../lib/modules/freeRadius.inc:245 ../lib/modules/freeRadius.inc:246 +msgid "Please enter a valid realm." +msgstr "Prosím zadejte platný realm." + +#: ../lib/modules/inetOrgPerson.inc:66 ../lib/modules/inetOrgPerson.inc:67 +msgid "Please enter a valid registered address." +msgstr "Prosím zadejte platnou registrovanou adresu." + +#: ../lib/modules/eduPerson.inc:224 +msgid "Please enter a valid scoped affiliation." +msgstr "Prosím zadejte platnou roli vztahu." + +#: ../lib/modules/imapAccess.inc:152 +msgid "Please enter a valid server name where the mailboxes reside." +msgstr "Prosím zadejte platný server, kde je umístěna poštovní schránka." + +#: ../lib/modules/inetOrgPerson.inc:62 ../lib/modules/inetOrgPerson.inc:63 +msgid "Please enter a valid street name!" +msgstr "Prosím zadejte platnou ulici!" + +#: ../lib/modules/inetOrgPerson.inc:52 ../lib/modules/inetOrgPerson.inc:53 +#: ../lib/modules/inetOrgPerson.inc:54 ../lib/modules/inetOrgPerson.inc:55 +msgid "Please enter a valid telephone number!" +msgstr "Prosím zadejte platné telefonní číslo!" + +#: ../lib/modules/posixGroup.inc:576 ../lib/modules/posixAccount.inc:819 +#, php-format +msgid "Please enter a value between %s and %s!" +msgstr "Prosím zadejte hodnotu mezi %s a %s!" + +#: ../lib/modules/kolabUser.inc:270 ../lib/modules/imapAccess.inc:182 +#, php-format +msgid "Please enter an email address on this page: %s" +msgstr "Prosím zadejte na této straně e-mailovou adresu: %s" + +#: ../lib/modules/sudoRole.inc:227 ../lib/modules/sudoRole.inc:228 +msgid "Please enter only ASCII characters for the commands." +msgstr "Prosím zadávejte pouze ASCII znaky do příkazů." + +#: ../lib/modules/sudoRole.inc:225 ../lib/modules/sudoRole.inc:226 +msgid "Please enter only ASCII characters for the host names." +msgstr "Prosím zadávejte pouze ASCII znaky do názvů strojů." + +#: ../lib/modules/sudoRole.inc:233 ../lib/modules/sudoRole.inc:234 +msgid "Please enter only ASCII characters for the options." +msgstr "Prosím zadávejte pouze ASCII znaky do voleb." + +#: ../lib/modules/sudoRole.inc:231 ../lib/modules/sudoRole.inc:232 +msgid "Please enter only ASCII characters for the run groups." +msgstr "Prosím zadávejte pouze ASCII znaky do skupin pro spuštění." + +#: ../lib/modules/sudoRole.inc:229 ../lib/modules/sudoRole.inc:230 +msgid "Please enter only ASCII characters for the run users." +msgstr "Prosím zadávejte pouze ASCII znaky do uživatelů pro spuštění." + +#: ../lib/modules/device.inc:126 ../lib/modules/device.inc:127 +msgid "Please enter only ASCII characters for the serial number." +msgstr "Prosím zadávejte pouze ASCII znaky do sériového čísla." + +#: ../lib/modules/sudoRole.inc:223 ../lib/modules/sudoRole.inc:224 +msgid "Please enter only ASCII characters for the user names." +msgstr "Prosím zadávejte pouze ASCII znaky do uživatelských jmen." + +#: ../lib/modules/passwordSelfReset.inc:165 +msgid "" +"Please enter the DN and password of the administrative password self reset " +"account." +msgstr "Prosím zadejte DN a heslo administrativního účtu pro reset " +"vlastního hesla." + +#: ../lib/modules/ddns.inc:101 +msgid "Please enter the IP address of your DNS server." +msgstr "Prosím zadejte IP adresu vašeho DNS serveru." + +#: ../lib/modules/passwordSelfReset.inc:86 +msgid "Please enter the LDAP DN that should be used to reset passwords." +msgstr "Prosím zadejte LDAP DN, které může být použito pro reset hesla." + +#: ../help/help.inc:113 +msgid "" +"Please enter the LDAP suffix where LAM should start to search for users. The " +"LDAP filter needs to match the given user name to exactly one DN. The value " +"\"%USER%\" will be replaced by the user name from the login page." +msgstr "" +"Prosím zadejte LDAP podstrom, ve kterém má LAM hledat uživatele. LDAP filtr " +"musí vyhledat právě jedno DN. Hodnota \"%USER%\" bude nahrazena uživatelským " +"jménem z přihlašovací stránky." + +#: ../lib/modules/asteriskVoicemail.inc:204 +msgid "Please enter the account context." +msgstr "Prosím zadejte kontext účtu." + +#: ../lib/modules.inc:864 +msgid "Please enter the account information on the other pages first." +msgstr "Prosím nejdříve zadejte informace o účtu na ostatní stránky." + +#: ../lib/modules/asteriskAccount.inc:629 +msgid "Please enter the account type." +msgstr "Prosím zadejte typ účtu." + +#: ../lib/modules/asteriskAccount.inc:111 +msgid "Please enter the account's type (e.g. \"friend\")." +msgstr "Prosím zadejte typ účtu (např. \"Přátelé\")." + +#: ../lib/modules/asteriskExtension.inc:193 +msgid "Please enter the application data." +msgstr "Prosím zadejte data aplikace." + +#: ../lib/modules/asteriskExtension.inc:192 +msgid "Please enter the application." +msgstr "Prosím zadejte aplikaci." + +#: ../lib/modules/automount.inc:59 +msgid "" +"Please enter the automount entry (e.g. \"-fstype=nfs,rw server:/home\")." +msgstr "" +"Prosím zadejte záznam automountu (např. \"-fstype=nfs,rw server:/home\")." + +#: ../help/help.inc:53 +msgid "" +"Please enter the configuration password. This is NOT your LDAP password. It " +"is stored in your .conf-file. If this is the first time you log in, enter " +"\"lam\"." +msgstr "" +"Prosím zadejte heslo pro nastavení. Toto NENÍ vaše heslo do LDAPu. Toto " +"heslo je uloženo ve vašem .conf souboru. Zadejte \"lam\", pokud se " +"přihašujete poprvé." + +#: ../lib/modules/asteriskAccount.inc:623 +#: ../lib/modules/asteriskExtension.inc:194 +msgid "Please enter the extension context." +msgstr "Prosím zadejte kontext rozšíření." + +#: ../lib/modules/asteriskExtension.inc:195 +msgid "Please enter the extension name." +msgstr "Prosím zadejte název rozšíření." + +#: ../lib/modules/asteriskAccount.inc:626 +msgid "Please enter the host name." +msgstr "Prosím zadejte název stroje." + +#: ../lib/modules/customScripts.inc:53 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [account type] [action] [script and arguments]" +msgstr "" +"Prosím zadejte seznam skriptů, které by měly být spuštěny. Každý řádek má " +"následující formát: [typ účtu] [akce] [skript a parametry]" + +#: ../lib/modules/customScripts.inc:66 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [action] [script and arguments]" +msgstr "" +"Prosím zadejte seznam skriptů ke spuštění. Každý řádek má následující " +"formát: [akce] [skript a parametry]" + +#: ../lib/modules/nisObject.inc:59 +msgid "" +"Please enter the mapping entry (e.g. \"-fstype=nfs,rw server:/projects\")." +msgstr "" +"Prosím zadejte mapovací záznam (např. \"-fstype=nfs,rw server:/projekty\")." + +#: ../lib/modules/nisObject.inc:63 +msgid "Please enter the mapping name for this entry (e.g. auto.home)." +msgstr "Prosím zadejte název mapování pro tento záznam (např. auto.home)." + +#: ../help/help.inc:131 +msgid "" +"Please enter the master configuration password. This is NOT your LDAP " +"password. It is stored in your config.cfg file. If this is the first time " +"you log in, enter \"lam\"." +msgstr "" +"Prosím zadejte hlavní heslo nastavení. Toto NENÍ vaše heslo do LDAPu. Toto " +"heslo je uloženo ve vašem .conf souboru. Zadejte \"lam\", pokud se " +"přihašujete poprvé." + +#: ../templates/config/mainlogin.php:135 +msgid "Please enter the master password to change the general preferences:" +msgstr "Prosím zadejte hlavní heslo pro změnu obecných předvoleb:" + +#: ../help/help.inc:119 +msgid "" +"Please enter the name of the new profile and the password to change its " +"settings. Profile names may contain letters, numbers and -/_." +msgstr "" +"Prosím zadejte název nového profilu a heslo pro umožnení jeho editace. Název " +"profilu může obsahovat písmena, číslice a -/_." + +#: ../help/help.inc:121 +msgid "" +"Please enter the new name of the profile. The name may contain letters, " +"numbers and -/_." +msgstr "" +"Prosím zadejte nový název profilu. Název profilu může obsahovat písmena, " +"číslice a -/_." + +#: ../lib/modules/passwordSelfReset.inc:90 +msgid "" +"Please enter the password for the admin DN. Please note that this is saved " +"as clear-text in the self service profile." +msgstr "" +"Prosím zadejte heslo pro admin DN. Uvědomte si, že toto heslo je uloženo " +"v nezašifrované podobě v samoobslužném profilu." + +#: ../lib/modules/asteriskAccount.inc:107 ../lib/modules/posixAccount.inc:388 +msgid "Please enter the password which you want to set for this account." +msgstr "Prosím zadejte heslo, které chcete nastavit pro tento účet." + +#: ../help/help.inc:161 +msgid "" +"Please enter the password which you want to set for this account. You may " +"also generate a random password (12 characters) which will be displayed on " +"your screen." +msgstr "" +"Prosím zadejte heslo pro tento účet. Můžete si také nechat vygenerovat " +"náhodné heslo (12 znaků), které se zobrazí na obrazovce." + +#: ../lib/modules/posixAccount.inc:359 +msgid "Please enter the path to the user's home directory." +msgstr "Prosím zadejte cestu k domovskému adresáři uživatele." + +#: ../lib/modules/zarafaServer.inc:62 +msgid "Please enter the port number for (unencrypted) HTTP connections." +msgstr "Prosím zadejte port pro (nešifrované) HTTP spojení." + +#: ../lib/modules/zarafaServer.inc:66 +msgid "Please enter the port number for encrypted connections." +msgstr "Prosím zadejte port pro šifrované spojení." + +#: ../lib/modules/passwordSelfReset.inc:66 +msgid "" +"Please enter the possible security questions for the password self reset." +msgstr "Prosím zadejte dostupné bezpečnostní otázky pro reset hesla." + +#: ../lib/modules/asteriskExtension.inc:196 +msgid "Please enter the priority." +msgstr "Prosím zadejte prioritu." + +#: ../lib/modules/imapAccess.inc:100 +msgid "Please enter the quota limit of this mailbox in kilobytes." +msgstr "Prosím zadejte kvótu tohoto mailboxu v kB." + +#: ../lib/modules/quota.inc:146 +msgid "" +"Please enter the quota settings for this mount point. The syntax is: {soft " +"block limit},{hard block limit},{soft inode limit},{hard inode limit}" +msgstr "" +"Prosím zadejte nastavení kvóty pro tento svazek. Syntaxe je: {mekký limit " +"bloků},{pevný limit bloků},{měkký limit inodů},{pevný limit inodů}" + +#: ../lib/modules/systemQuotas.inc:62 +msgid "" +"Please enter the quota settings for this user. The syntax is: {mount point}," +"{soft block limit},{hard block limit},{soft inode limit},{hard inode limit}." +msgstr "" +"Prosím zadejte nastavení kvóty pro tohoto uživatele. Syntaxe je: {mekký " +"limit bloků},{pevný limit bloků},{měkký limit inodů},{pevný limit inodů}" + +#: ../templates/lists/changePassword.php:324 +#: ../lib/modules/posixAccount.inc:83 +msgid "Please enter the same password in both password fields." +msgstr "Prosím zadejte stejná hesla v obou polích." + +#: ../lib/modules/passwordSelfReset.inc:62 +msgid "Please enter the security question for the password self reset." +msgstr "Prosím zadejte bezpečnostní otázku pro umožnění resetu hesla." + +#: ../lib/modules/sambaSamAccount.inc:348 +msgid "Please enter the time limit in minutes. 0 means unlimited." +msgstr "Prosím zadejte časový limit v minutách. 0 znamená bez omezení." + +#: ../templates/selfService/adminLogin.php:127 +msgid "" +"Please enter your master configuration password to change the self service " +"profile:" +msgstr "" +"Prosím zadejte vaše hlavní heslo nastavení pro změnu samoobslužného profilu:" + +#: ../templates/config/conflogin.php:123 +msgid "Please enter your password to change the server preferences:" +msgstr "Prosím zadejte heslo pro změnu předvoleb serveru:" + +#: ../lib/modules/ldapPublicKey.inc:63 +msgid "Please enter your public SSH key." +msgstr "Prosím zadejte váš veřejný SSH klíč" + +#: ../lib/modules/range.inc:394 ../lib/modules/fixed_ip.inc:328 +msgid "Please fill out the DHCP settings first." +msgstr "Prosím nejdříve vyplňte Nastavení DHCP." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "Please go back and try again." +msgstr "Prosím vraťte se a zkuste to znovu." + +#: ../templates/masscreate.php:232 +msgid "" +"Please provide a CSV formated file with your account data. The cells in the " +"first row must be filled with the column identifiers. The following rows " +"represent one account for each row." +msgstr "" +"Prosim zadejte CSV soubor s daty vašich účtů. Buňky v prvním řádku musí být " +"vyplněny názvy sloupců. Následující řádky reprezentují účty (jeden řádek - " +"jeden účet)." + +#: ../templates/massBuildAccounts.php:210 +msgid "Please provide a file to upload." +msgstr "Prosím zadejte soubor, který chcete nahrát." + +#: ../lib/modules/inetOrgPerson.inc:654 +msgid "" +"Please select an image file to upload. It must be in JPG format (.jpg/.jpeg)." +msgstr "" +"Prosím vyberte soubor obrázku k načtení. Musí být ve formátu JPG (.jpg/." +"jpeg)." + +#: ../help/help.inc:137 +msgid "" +"Please select your prefered log level. Messages with a lower level will not " +"be logged." +msgstr "" +"Prosím vyberte vámi preferovanou úrověň žurnálu. Zpravy s nižší úrovní " +"nebudou posílány do žurnálu." + +#: ../lib/modules/asteriskVoicemail.inc:215 +msgid "Please set the voicemail password with \"Set password\" before saving." +msgstr "" +"Prosím před uložením potvrďte heslo hlasové schánky pomocí \"Nastavit heslo" +"\"." + +#: ../lib/modules.inc:819 +#, php-format +msgid "Please set up all required attributes on page: %s" +msgstr "Prosím zadejte všechny požadované atributy na straně: %s" + +#: ../templates/config/profmanage.php:186 +#: ../templates/selfService/profManage.php:144 +msgid "Please set up your master configuration file (config/config.cfg) first!" +msgstr "" +"Prosím nejdříve projděte a nastavte hlavní soubor nastavení (config/config." +"cfg)!" + +#: ../lib/modules/dhcp_settings.inc:507 ../lib/modules/ddns.inc:336 +msgid "" +"Please set your LDAP suffix to an LDAP entry with object class \"dhcpServer" +"\"." +msgstr "" +"Prosím zadejte LDAP podstrom tak, aby obsahoval záznam s třídou objektu " +"\"dhcpServer\"-" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:172 +msgid "Please wait" +msgstr "Prosím počkejte" + +#: ../lib/modules/kolabUser.inc:230 +msgid "Policy list has invalid format!" +msgstr "Seznam politik nemá platný formát!" + +#: ../lib/modules/asteriskAccount.inc:170 +#: ../lib/modules/asteriskAccount.inc:275 +#: ../lib/modules/asteriskAccount.inc:345 +#: ../lib/modules/asteriskAccount.inc:500 +#: ../lib/modules/asteriskAccount.inc:827 +#: ../lib/modules/asteriskAccount.inc:1235 +msgid "Port" +msgstr "Port" + +#: ../lib/modules/asteriskAccount.inc:171 +msgid "Port number." +msgstr "Číslo portu." + +#: ../templates/pdfedit/pdfpage.php:539 ../templates/pdfedit/pdfpage.php:549 +#: ../templates/pdfedit/pdfpage.php:559 ../templates/pdfedit/pdfpage.php:574 +msgid "Position" +msgstr "Pozice" + +#: ../templates/masscreate.php:276 ../templates/masscreate.php:351 +#: ../lib/modules/customScripts.inc:112 ../lib/modules/customScripts.inc:114 +#: ../lib/modules/customScripts.inc:116 +#: ../lib/modules/sambaGroupMapping.inc:442 +msgid "Possible values" +msgstr "Přípustné hodnoty" + +#: ../lib/modules/inetOrgPerson.inc:125 ../lib/modules/inetOrgPerson.inc:135 +#: ../lib/modules/inetOrgPerson.inc:233 ../lib/modules/inetOrgPerson.inc:396 +#: ../lib/modules/inetOrgPerson.inc:509 ../lib/modules/inetOrgPerson.inc:613 +#: ../lib/modules/inetOrgPerson.inc:1077 ../lib/modules/inetOrgPerson.inc:1431 +#: ../lib/modules/inetOrgPerson.inc:1959 +msgid "Post office box" +msgstr "P.O. box" + +#: ../lib/modules/inetOrgPerson.inc:64 ../lib/modules/inetOrgPerson.inc:124 +#: ../lib/modules/inetOrgPerson.inc:147 ../lib/modules/inetOrgPerson.inc:241 +#: ../lib/modules/inetOrgPerson.inc:380 ../lib/modules/inetOrgPerson.inc:521 +#: ../lib/modules/inetOrgPerson.inc:621 ../lib/modules/inetOrgPerson.inc:1104 +#: ../lib/modules/inetOrgPerson.inc:1433 ../lib/modules/inetOrgPerson.inc:1938 +msgid "Postal address" +msgstr "Poštovní adresa" + +#: ../lib/modules/inetOrgPerson.inc:622 +msgid "Postal address, city" +msgstr "Poštovní adresa, město" + +#: ../lib/modules/inetOrgPerson.inc:68 ../lib/modules/inetOrgPerson.inc:125 +#: ../lib/modules/inetOrgPerson.inc:138 ../lib/modules/inetOrgPerson.inc:235 +#: ../lib/modules/inetOrgPerson.inc:372 ../lib/modules/inetOrgPerson.inc:512 +#: ../lib/modules/inetOrgPerson.inc:617 ../lib/modules/inetOrgPerson.inc:1082 +#: ../lib/modules/inetOrgPerson.inc:1432 ../lib/modules/inetOrgPerson.inc:1952 +msgid "Postal code" +msgstr "PSČ" + +#: ../help/help.inc:83 +msgid "Predefined values" +msgstr "Předdefinované hodnoty" + +#: ../lib/modules/imapAccess.inc:87 ../lib/modules/imapAccess.inc:117 +msgid "Prefix for mailboxes" +msgstr "Prefix poštovní schránky" + +#: ../lib/modules/inetOrgPerson.inc:326 +msgid "President" +msgstr "Ředitel" + +#: ../lib/modules/eduPerson.inc:80 ../lib/modules/eduPerson.inc:147 +#: ../lib/modules/eduPerson.inc:202 ../lib/modules/eduPerson.inc:259 +#: ../lib/modules/eduPerson.inc:663 +msgid "Primary affiliation" +msgstr "Hlavní vztah" + +#: ../lib/modules/posixGroup.inc:488 ../lib/modules/posixAccount.inc:216 +#: ../lib/modules/posixAccount.inc:298 ../lib/modules/posixAccount.inc:317 +#: ../lib/modules/posixAccount.inc:350 ../lib/modules/posixAccount.inc:379 +#: ../lib/modules/posixAccount.inc:417 ../lib/modules/posixAccount.inc:1103 +#: ../lib/modules/posixAccount.inc:1361 ../lib/modules/posixAccount.inc:1407 +#: ../lib/modules/posixAccount.inc:1465 +msgid "Primary group" +msgstr "Primární skupina" + +#: ../lib/modules/eduPerson.inc:117 ../lib/modules/eduPerson.inc:185 +#: ../lib/modules/eduPerson.inc:205 ../lib/modules/eduPerson.inc:219 +#: ../lib/modules/eduPerson.inc:361 ../lib/modules/eduPerson.inc:687 +msgid "Primary organisational unit" +msgstr "Hlavní organizační jednotka" + +#: ../lib/modules/eduPerson.inc:101 ../lib/modules/eduPerson.inc:140 +#: ../lib/modules/eduPerson.inc:203 ../lib/modules/eduPerson.inc:253 +#: ../lib/modules/eduPerson.inc:669 +msgid "Principal name" +msgstr "Název principalu" + +#: ../lib/modules/eduPerson.inc:215 ../lib/modules/eduPerson.inc:216 +msgid "Principal name is invalid!" +msgstr "Neplatný název principalu!" + +#: ../lib/types/asteriskExt.inc:94 ../lib/modules/asteriskExtension.inc:90 +#: ../lib/modules/asteriskExtension.inc:113 +#: ../lib/modules/asteriskExtension.inc:126 +#: ../lib/modules/asteriskExtension.inc:142 +#: ../lib/modules/asteriskExtension.inc:237 +#: ../lib/modules/asteriskExtension.inc:478 +msgid "Priority" +msgstr "Priorita" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1537 +#: ../templates/3rdParty/pla/htdocs/import_form.php:44 +#: ../templates/3rdParty/pla/htdocs/export_form.php:138 +msgid "Proceed" +msgstr "Provést" + +#: ../templates/config/profmanage.php:148 +#: ../templates/selfService/profManage.php:127 +msgid "Profile deleted." +msgstr "Profil byl smazán." + +#: ../templates/profedit/profilepage.php:171 +#: ../templates/profedit/profilemain.php:89 ../lib/tools/profileEditor.inc:44 +msgid "Profile editor" +msgstr "Editor profilu" + +#: ../templates/config/profmanage.php:52 +#: ../templates/config/profmanage.php:199 +#: ../templates/selfService/profManage.php:38 +#: ../templates/selfService/profManage.php:157 ../help/help.inc:118 +#: ../help/help.inc:120 ../help/help.inc:122 ../help/help.inc:124 +#: ../help/help.inc:126 +msgid "Profile management" +msgstr "Správa profilu" + +#: ../templates/config/profmanage.php:214 +#: ../templates/config/profmanage.php:263 +#: ../templates/selfService/profManage.php:172 +#: ../templates/selfService/profManage.php:225 +#: ../templates/profedit/profiledelete.php:85 +#: ../templates/profedit/profilepage.php:175 +#: ../templates/profedit/profilemain.php:174 ../help/help.inc:150 +msgid "Profile name" +msgstr "Název profilu" + +#: ../templates/config/profmanage.php:128 +#: ../templates/config/profmanage.php:143 +#: ../templates/selfService/profManage.php:103 +#: ../templates/selfService/profManage.php:118 +msgid "Profile name is invalid!" +msgstr "Neplatný název profilu!" + +#: ../templates/config/profmanage.php:227 +#: ../templates/config/profmanage.php:321 +msgid "Profile password" +msgstr "Heslo k profilu" + +#: ../templates/config/profmanage.php:126 +#: ../templates/config/profmanage.php:161 +msgid "Profile passwords are different or empty!" +msgstr "Hesla k profilu jsou různá nebo prázdná!" + +#: ../lib/modules/sambaSamAccount.inc:89 ../lib/modules/sambaSamAccount.inc:90 +#: ../lib/modules/sambaSamAccount.inc:202 +#: ../lib/modules/sambaSamAccount.inc:214 +#: ../lib/modules/sambaSamAccount.inc:286 +#: ../lib/modules/sambaSamAccount.inc:335 +#: ../lib/modules/sambaSamAccount.inc:477 +#: ../lib/modules/sambaSamAccount.inc:573 +#: ../lib/modules/sambaSamAccount.inc:1141 +#: ../lib/modules/sambaSamAccount.inc:1414 +#: ../lib/modules/sambaSamAccount.inc:1515 +#: ../lib/modules/sambaSamAccount.inc:1669 +#: ../lib/modules/sambaSamAccount.inc:1691 +msgid "Profile path" +msgstr "Cesta k profilu" + +#: ../lib/modules/sambaSamAccount.inc:89 ../lib/modules/sambaSamAccount.inc:91 +msgid "Profile path is invalid!" +msgstr "Neplatná cesta k profilu!" + +#: ../templates/profedit/profilemain.php:113 +msgid "Profile was saved." +msgstr "Profil byl uložen." + +#: ../lib/modules/zarafaServer.inc:73 ../lib/modules/zarafaServer.inc:99 +#: ../lib/modules/zarafaServer.inc:111 ../lib/modules/zarafaServer.inc:164 +#: ../lib/modules/zarafaServer.inc:329 +msgid "Public store" +msgstr "Veřejné úložiště" + +#: ../lib/modules/asteriskAccount.inc:174 +#: ../lib/modules/asteriskAccount.inc:277 +#: ../lib/modules/asteriskAccount.inc:346 +#: ../lib/modules/asteriskAccount.inc:507 +#: ../lib/modules/asteriskAccount.inc:837 +#: ../lib/modules/asteriskAccount.inc:1238 +msgid "Qualify" +msgstr "Kontrolovat" + +#: ../lib/modules/passwordSelfReset.inc:61 +#: ../lib/modules/passwordSelfReset.inc:99 +#: ../lib/modules/passwordSelfReset.inc:106 +#: ../lib/modules/passwordSelfReset.inc:119 +#: ../lib/modules/passwordSelfReset.inc:153 +#: ../lib/modules/passwordSelfReset.inc:189 +#: ../lib/modules/passwordSelfReset.inc:298 +#: ../lib/modules/passwordSelfReset.inc:437 +#: ../lib/modules/passwordSelfReset.inc:666 +msgid "Question" +msgstr "Otázka" + +#: ../lib/modules/quota.inc:79 ../lib/modules/quota.inc:92 +#: ../lib/modules/quota.inc:145 ../lib/modules/zarafaUser.inc:459 +#: ../lib/modules/systemQuotas.inc:51 ../lib/modules/systemQuotas.inc:61 +#: ../lib/modules/systemQuotas.inc:68 ../lib/modules/systemQuotas.inc:74 +#: ../lib/modules/systemQuotas.inc:81 ../lib/modules/imapAccess.inc:99 +#: ../lib/modules/imapAccess.inc:139 +msgid "Quota" +msgstr "Kvóta" + +#: ../lib/modules/quota.inc:684 +#, php-format +msgid "Quota for %s on %s" +msgstr "Kvóta pro %s na %s" + +#: ../lib/modules/zarafaUser.inc:84 ../lib/modules/zarafaUser.inc:160 +#: ../lib/modules/zarafaUser.inc:237 ../lib/modules/zarafaUser.inc:351 +#: ../lib/modules/zarafaUser.inc:390 ../lib/modules/zarafaUser.inc:494 +#: ../lib/modules/zarafaUser.inc:1195 ../lib/modules/zarafaUser.inc:1291 +msgid "Quota hard limit" +msgstr "Pevný limit kvóty" + +#: ../lib/modules/quota.inc:62 +msgid "Quota has wrong format!" +msgstr "Neplatný formát kvóty!" + +#: ../lib/modules/imapAccess.inc:292 ../lib/modules/imapAccess.inc:301 +msgid "Quota limit (kB)" +msgstr "Kvóta (kB)" + +#: ../lib/modules/zarafaUser.inc:72 ../lib/modules/zarafaUser.inc:154 +#: ../lib/modules/zarafaUser.inc:211 ../lib/modules/zarafaUser.inc:342 +#: ../lib/modules/zarafaUser.inc:466 ../lib/modules/zarafaUser.inc:1177 +#: ../lib/modules/zarafaUser.inc:1282 +msgid "Quota override" +msgstr "Přepsání kvóty" + +#: ../lib/modules/zarafaUser.inc:80 ../lib/modules/zarafaUser.inc:158 +#: ../lib/modules/zarafaUser.inc:229 ../lib/modules/zarafaUser.inc:348 +#: ../lib/modules/zarafaUser.inc:388 ../lib/modules/zarafaUser.inc:484 +#: ../lib/modules/zarafaUser.inc:1189 ../lib/modules/zarafaUser.inc:1288 +msgid "Quota soft limit" +msgstr "Měkký limit kvóty" + +#: ../lib/modules/zarafaUser.inc:76 ../lib/modules/zarafaUser.inc:156 +#: ../lib/modules/zarafaUser.inc:221 ../lib/modules/zarafaUser.inc:345 +#: ../lib/modules/zarafaUser.inc:386 ../lib/modules/zarafaUser.inc:474 +#: ../lib/modules/zarafaUser.inc:1183 ../lib/modules/zarafaUser.inc:1285 +msgid "Quota warning limit" +msgstr "Limit kvóty pro varování" + +#: ../templates/masscreate.php:300 ../templates/profedit/profilepage.php:202 +#: ../lib/modules.inc:926 ../help/help.inc:148 +msgid "RDN identifier" +msgstr "Identifikátor RDN" + +#: ../lib/types/host.inc:93 +msgid "RID (Windows UID)" +msgstr "RID (Windows UID)" + +#: ../lib/modules/sambaDomain.inc:90 ../lib/modules/sambaDomain.inc:151 +#: ../lib/modules/sambaDomain.inc:182 ../lib/modules/sambaDomain.inc:376 +#: ../lib/modules/sambaDomain.inc:382 ../lib/modules/sambaDomain.inc:650 +msgid "RID base" +msgstr "Základ RID" + +#: ../lib/modules/sambaDomain.inc:345 +msgid "RID settings" +msgstr "Nastavení RID" + +#: ../lib/modules/asteriskAccount.inc:186 +#: ../lib/modules/asteriskAccount.inc:283 +#: ../lib/modules/asteriskAccount.inc:349 +#: ../lib/modules/asteriskAccount.inc:529 +#: ../lib/modules/asteriskAccount.inc:865 +#: ../lib/modules/asteriskAccount.inc:1247 +msgid "RTP hold timeout" +msgstr "Časový limit RTP přidržení" + +#: ../lib/modules/asteriskAccount.inc:182 +#: ../lib/modules/asteriskAccount.inc:281 +#: ../lib/modules/asteriskAccount.inc:348 +#: ../lib/modules/asteriskAccount.inc:522 +#: ../lib/modules/asteriskAccount.inc:855 +#: ../lib/modules/asteriskAccount.inc:1244 +msgid "RTP timeout" +msgstr "Časový limit RTP" + +#: ../lib/modules/range.inc:85 ../lib/modules/range.inc:418 +msgid "Range from" +msgstr "Rozsah od" + +#: ../lib/modules/range.inc:88 ../lib/modules/range.inc:430 +msgid "Range to" +msgstr "Rozsah do" + +#: ../lib/types/dhcp.inc:95 ../lib/modules/range.inc:67 +#: ../lib/modules/range.inc:99 ../lib/modules/range.inc:485 +msgid "Ranges" +msgstr "Rozsahy" + +#: ../templates/config/confmain.php:288 +msgid "Read" +msgstr "Čtení" + +#: ../templates/config/confmain.php:244 +msgid "Read only" +msgstr "Pouze pro čtení" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2289 +msgid "Really delete value from this attribute?" +msgstr "Opravdu chcete smazat hodnotu z tohoto atributu?" + +#: ../lib/modules/freeRadius.inc:84 ../lib/modules/freeRadius.inc:118 +#: ../lib/modules/freeRadius.inc:138 ../lib/modules/freeRadius.inc:169 +#: ../lib/modules/freeRadius.inc:223 ../lib/modules/freeRadius.inc:269 +#: ../lib/modules/freeRadius.inc:622 +msgid "Realm" +msgstr "Realm" + +#: ../lib/modules/nisMailAlias.inc:71 ../lib/modules/nisMailAlias.inc:154 +msgid "Recipient" +msgstr "Příjemce" + +#: ../lib/modules/nisMailAlias.inc:108 ../lib/modules/nisMailAlias.inc:109 +msgid "Recipient is invalid!" +msgstr "Neplatný příjemce!" + +#: ../lib/types/mailAlias.inc:92 ../lib/modules/nisMailAlias.inc:75 +#: ../lib/modules/nisMailAlias.inc:89 ../lib/modules/nisMailAlias.inc:97 +#: ../lib/modules/nisMailAlias.inc:290 +msgid "Recipient list" +msgstr "Seznam příjemců" + +#: ../lib/modules/sambaSamAccount.inc:226 +#: ../lib/modules/sambaSamAccount.inc:365 +#: ../lib/modules/sambaSamAccount.inc:1463 +#: ../lib/modules/sambaSamAccount.inc:1743 +msgid "Reconnect if disconnected" +msgstr "Při odpojení znovu připojit" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:63 +msgid "Recursive copy" +msgstr "Rekurzivní kopírování" + +#: ../templates/3rdParty/pla/htdocs/copy.php:49 +msgid "Recursive copy progress" +msgstr "Průběh rekurzivního kopírování" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:31 +msgid "Recursive delete progress" +msgstr "Průběh rekurzivního mazání" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:65 +msgid "Recursively copy all children of this object as well." +msgstr "Také zkopíruje všechny podobjekty do tohoto objektu." + +#: ../templates/config/mainmanage.php:242 +msgid "Reenter new master password" +msgstr "Potvrzení nového hlavního hesla" + +#: ../templates/config/confmain.php:367 ../lib/modules/posixAccount.inc:2073 +msgid "Reenter password" +msgstr "Potvrzení hesla" + +#: ../templates/config/profmanage.php:236 +#: ../templates/config/profmanage.php:334 +msgid "Reenter profile password" +msgstr "Potvrzení hesla k profilu" + +#: ../templates/serverInfo.php:185 +msgid "Referrals" +msgstr "Referrals" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1051 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1054 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:249 +#: ../lib/types/automountType.inc:233 ../lib/types/dhcp.inc:276 +#: ../lib/modules/asteriskExtension.inc:301 ../lib/lists.inc:713 +msgid "Refresh" +msgstr "Obnovit" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +msgid "Refresh this entry" +msgstr "Obnovit tento záznam" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:247 +msgid "Refreshing tree" +msgstr "Obnovování stromu" + +#: ../lib/modules/inetOrgPerson.inc:66 ../lib/modules/inetOrgPerson.inc:124 +#: ../lib/modules/inetOrgPerson.inc:150 ../lib/modules/inetOrgPerson.inc:243 +#: ../lib/modules/inetOrgPerson.inc:388 ../lib/modules/inetOrgPerson.inc:524 +#: ../lib/modules/inetOrgPerson.inc:625 ../lib/modules/inetOrgPerson.inc:1132 +#: ../lib/modules/inetOrgPerson.inc:1434 ../lib/modules/inetOrgPerson.inc:1945 +msgid "Registered address" +msgstr "Registrovaná adresa" + +#: ../lib/modules/inetOrgPerson.inc:626 +msgid "Registered address, city" +msgstr "Registrovaná adresa, město" + +#: ../lib/modules/asteriskAccount.inc:206 +#: ../lib/modules/asteriskAccount.inc:293 +#: ../lib/modules/asteriskAccount.inc:354 +#: ../lib/modules/asteriskAccount.inc:565 +#: ../lib/modules/asteriskAccount.inc:911 +#: ../lib/modules/asteriskAccount.inc:1262 +msgid "Registration context" +msgstr "Kontext registrace" + +#: ../lib/modules/asteriskAccount.inc:210 +#: ../lib/modules/asteriskAccount.inc:295 +#: ../lib/modules/asteriskAccount.inc:355 +#: ../lib/modules/asteriskAccount.inc:572 +#: ../lib/modules/asteriskAccount.inc:920 +#: ../lib/modules/asteriskAccount.inc:1265 +msgid "Registration extension" +msgstr "Rozšíření registrace" + +#: ../lib/modules/asteriskAccount.inc:226 +#: ../lib/modules/asteriskAccount.inc:303 +#: ../lib/modules/asteriskAccount.inc:359 +#: ../lib/modules/asteriskAccount.inc:601 +#: ../lib/modules/asteriskAccount.inc:960 +#: ../lib/modules/asteriskAccount.inc:1277 +msgid "Registration server" +msgstr "Registrační servery" + +#: ../lib/modules/kolabUser.inc:53 +msgid "Reject if conflicts" +msgstr "Při konfliktu odmítnout" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +msgid "Reloading" +msgstr "Znovunačítání" + +#: ../templates/config/confmodules.php:291 +#: ../templates/pdfedit/pdfpage.php:461 +#: ../lib/modules/sambaSamAccount.inc:1382 ../lib/modules/kolabUser.inc:900 +#: ../lib/modules/phpGroupwareUser.inc:259 +#: ../lib/modules/shadowAccount.inc:430 ../lib/modules/freeRadius.inc:475 +#: ../lib/modules/sudoRole.inc:266 ../lib/modules/sudoRole.inc:293 +#: ../lib/modules/sudoRole.inc:320 ../lib/modules/sudoRole.inc:347 +#: ../lib/modules/sudoRole.inc:374 ../lib/modules/sudoRole.inc:401 +msgid "Remove" +msgstr "Odstranit" + +#: ../lib/modules/asteriskVoicemail.inc:282 +msgid "Remove Asterisk voicemail extension" +msgstr "Odstranit rozšíření Asterisku Hlasová schránka" + +#: ../lib/modules/authorizedServiceObject.inc:175 +msgid "Remove Authorized Service extension" +msgstr "Odstranit rozšíření Autorizovaná služba" + +#: ../lib/modules/eduPerson.inc:393 +msgid "Remove EDU person extension" +msgstr "Odebrat rozšíření EDU person" + +#: ../lib/modules/freeRadius.inc:339 +msgid "Remove FreeRadius extension" +msgstr "Odstranit rozšíření FreeRadius" + +#: ../lib/modules/ipHost.inc:176 +msgid "Remove IP address extension" +msgstr "Odstranit rozšíření IP adresy" + +#: ../lib/modules/sambaSamAccount.inc:1218 +msgid "Remove Samba 3 extension" +msgstr "Odstranit rozšíření Samba 3" + +#: ../lib/modules/shadowAccount.inc:364 +msgid "Remove Shadow account extension" +msgstr "Odstranit rozšíření Stínový účet" + +#: ../lib/modules/zarafaGroup.inc:206 ../lib/modules/zarafaUser.inc:613 +#: ../lib/modules/zarafaServer.inc:171 +msgid "Remove Zarafa extension" +msgstr "Odstranit rozšíření Zarafa" + +#: ../lib/modules/hostObject.inc:157 +msgid "Remove host extension" +msgstr "Odstranit rozšíření stroje" + +#: ../lib/modules/posixGroup.inc:202 ../lib/modules/posixAccount.inc:1158 +#: ../lib/modules/inetOrgPerson.inc:1258 +msgid "Remove password" +msgstr "Odstranit heslo" + +#: ../lib/modules/passwordSelfReset.inc:207 +msgid "Remove password self reset extension" +msgstr "Odstranit rozšíření Reset vlastního hesla" + +#: ../lib/modules/phpGroupwareGroup.inc:100 +#: ../lib/modules/phpGroupwareUser.inc:186 +msgid "Remove phpGroupWare extension" +msgstr "Odstranit rozšíření phpGroupWare" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:147 +#: ../lib/modules/device.inc:278 ../lib/modules/zarafaUser.inc:860 +#: ../lib/modules/groupOfNames.inc:300 ../lib/modules/groupOfNames.inc:412 +msgid "Remove selected entries" +msgstr "Odstranit vybrané záznamy" + +#: ../templates/config/conftypes.php:258 +msgid "Remove this account type" +msgstr "Odstranit tento typ účtu" + +#: ../lib/modules/inetOrgPerson.inc:2014 +msgid "Remove/replace photo" +msgstr "Odstanit/vyměnit fotku" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1152 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1155 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:24 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:35 +#: ../templates/3rdParty/pla/htdocs/rename.php:53 +msgid "Rename" +msgstr "Přejmenovat" + +#: ../templates/3rdParty/pla/htdocs/rename_form.php:28 +#, php-format +msgid "Rename %s to a new object." +msgstr "Přejmenovat %s na nový objekt." + +#: ../templates/config/profmanage.php:259 +#: ../templates/selfService/profManage.php:221 ../help/help.inc:120 +msgid "Rename profile" +msgstr "Přejmenovat profil" + +#: ../templates/3rdParty/pla/htdocs/rename.php:48 +msgid "Rename successful!" +msgstr "Přejmenování proběhlo úspěšně." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +msgid "Rename this entry" +msgstr "Přejmenovat tento záznam" + +#: ../templates/config/profmanage.php:134 +#: ../templates/selfService/profManage.php:114 +msgid "Renamed profile." +msgstr "Profil byl přejmenován." + +#: ../templates/3rdParty/pla/htdocs/import.php:30 +#: ../templates/3rdParty/pla/htdocs/import.php:31 +msgid "Renaming" +msgstr "Přejmenování" + +#: ../templates/lists/changePassword.php:250 +#: ../lib/modules/passwordSelfReset.inc:688 ../lib/modules.inc:976 +msgid "Repeat password" +msgstr "Potvrzení hesla" + +#: ../lib/modules/posixAccount.inc:75 ../lib/modules/posixAccount.inc:883 +msgid "Replaced $user or $group in homedir." +msgstr "$user nebo $group byl nahrazen v domovském adresáři." + +#: ../templates/config/confmain.php:317 ../help/help.inc:199 +msgid "Reply-to address" +msgstr "Adresa pro odpověď" + +#: ../templates/config/confmain.php:427 +msgid "Reply-to address for password mails is invalid." +msgstr "Adresa pro odpověď, pokud e-mail pro zaslání hesla není platný." + +#: ../lib/types/ppolicyType.inc:89 ../lib/modules/ppolicy.inc:120 +#: ../lib/modules/ppolicy.inc:146 ../lib/modules/ppolicy.inc:280 +#: ../lib/modules/ppolicy.inc:492 +msgid "Require password change on first login" +msgstr "Vyžadovat změnu hesla při prvním přihlášení" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 +msgid "Required attribute for objectClass(es)" +msgstr "Povinné atribut pro objectClass" + +#: ../templates/schema/schema.php:381 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1567 +msgid "Required attributes" +msgstr "Povinné atributy" + +#: ../lib/modules/sambaSamAccount.inc:1212 +msgid "Reset" +msgstr "Reset" + +#: ../lib/modules.inc:1079 +msgid "Reset changes" +msgstr "Vrátit změny" + +#: ../lib/modules/sambaSamAccount.inc:242 +#: ../lib/modules/sambaSamAccount.inc:1211 +msgid "Reset password" +msgstr "Reset hesla" + +#: ../lib/modules/sambaDomain.inc:130 ../lib/modules/sambaDomain.inc:192 +#: ../lib/modules/sambaDomain.inc:217 ../lib/modules/sambaDomain.inc:341 +#: ../lib/modules/sambaDomain.inc:686 +msgid "Reset time after lockout" +msgstr "Doba pro reset po zablokování" + +#: ../lib/modules/sambaDomain.inc:217 +msgid "Reset time after lockout must be are natural number." +msgstr "Doba pro reset po zablokování musí být přirozené číslo." + +#: ../lib/modules/zarafaUser.inc:501 +msgid "Resource settings" +msgstr "Nastavení zdrojů" + +#: ../lib/modules/asteriskAccount.inc:178 +#: ../lib/modules/asteriskAccount.inc:279 +#: ../lib/modules/asteriskAccount.inc:347 +#: ../lib/modules/asteriskAccount.inc:514 +#: ../lib/modules/asteriskAccount.inc:846 +#: ../lib/modules/asteriskAccount.inc:1241 +msgid "Restrict caller ID" +msgstr "Omezit ID volajícího" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:113 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:118 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:550 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:587 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:198 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:84 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:122 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +msgid "Retrieving DN" +msgstr "Získávání DN záznamu" + +#: ../lib/modules/ddns.inc:106 ../lib/modules/ddns.inc:113 +#: ../lib/modules/ddns.inc:134 ../lib/modules/ddns.inc:374 +#: ../lib/modules/ddns.inc:401 +msgid "Reverse zone names" +msgstr "Název reverzní zóny" + +#: ../templates/config/confmain.php:284 ../help/help.inc:108 +msgid "Rights for the home directory" +msgstr "Přístupová práva domovského adresáře" + +#: ../lib/types/sudo.inc:77 ../lib/modules/sudoRole.inc:55 +#: ../lib/modules/sudoRole.inc:121 ../lib/modules/sudoRole.inc:171 +#: ../lib/modules/sudoRole.inc:247 ../lib/modules/sudoRole.inc:682 +msgid "Role name" +msgstr "Název role" + +#: ../lib/modules/zarafaUser.inc:506 ../lib/modules/zarafaUser.inc:1199 +msgid "Room" +msgstr "Místnost" + +#: ../lib/modules/inetOrgPerson.inc:126 ../lib/modules/inetOrgPerson.inc:247 +#: ../lib/modules/inetOrgPerson.inc:444 ../lib/modules/inetOrgPerson.inc:530 +#: ../lib/modules/inetOrgPerson.inc:661 ../lib/modules/inetOrgPerson.inc:1158 +#: ../lib/modules/inetOrgPerson.inc:1441 ../lib/modules/inetOrgPerson.inc:1966 +msgid "Room number" +msgstr "Číslo místnosti" + +#: ../lib/modules/inetLocalMailRecipient.inc:61 +#: ../lib/modules/inetLocalMailRecipient.inc:93 +#: ../lib/modules/inetLocalMailRecipient.inc:112 +#: ../lib/modules/inetLocalMailRecipient.inc:141 +#: ../lib/modules/inetLocalMailRecipient.inc:300 +msgid "Routing address" +msgstr "Směrovací adresa" + +#: ../lib/types/sudo.inc:82 +msgid "Run group(s)" +msgstr "Skupina(y) pro spuštění" + +#: ../lib/modules/sudoRole.inc:79 ../lib/modules/sudoRole.inc:107 +#: ../lib/modules/sudoRole.inc:158 ../lib/modules/sudoRole.inc:177 +#: ../lib/modules/sudoRole.inc:186 ../lib/modules/sudoRole.inc:372 +#: ../lib/modules/sudoRole.inc:699 +msgid "Run groups" +msgstr "Skupiny pro spuštění" + +#: ../lib/types/sudo.inc:81 +msgid "Run user" +msgstr "Uživatel pro spuštění" + +#: ../lib/modules/sudoRole.inc:75 ../lib/modules/sudoRole.inc:102 +#: ../lib/modules/sudoRole.inc:152 ../lib/modules/sudoRole.inc:176 +#: ../lib/modules/sudoRole.inc:185 ../lib/modules/sudoRole.inc:345 +#: ../lib/modules/sudoRole.inc:696 +msgid "Run users" +msgstr "Uživatelé pro spuštění" + +#: ../templates/serverInfo.php:127 +msgid "SASL mechanisms" +msgstr "SASL mechanismus" + +#: ../lib/modules/asteriskAccount.inc:143 +msgid "SIP URI for a realtime peer." +msgstr "SIP URI pro realtime peera." + +#: ../lib/modules/asteriskAccount.inc:119 +msgid "SIP user agent identification." +msgstr "Uživatelský agent identifikace SIPu" + +#: ../templates/tests/lamdaemonTest.php:235 +msgid "SSH connection" +msgstr "SSH spojení" + +#: ../templates/tests/lamdaemonTest.php:248 +msgid "SSH connection could be established." +msgstr "SSH spojení může být navázáno." + +#: ../lib/modules/ldapPublicKey.inc:52 ../lib/modules/ldapPublicKey.inc:62 +#: ../lib/modules/ldapPublicKey.inc:66 ../lib/modules/ldapPublicKey.inc:74 +#: ../lib/modules/ldapPublicKey.inc:98 +msgid "SSH public key" +msgstr "Veřejný SSH klíč" + +#: ../lib/modules/ldapPublicKey.inc:81 ../lib/modules/ldapPublicKey.inc:176 +msgid "SSH public key(s)" +msgstr "Veřený(é) SSH klíč(e)" + +#: ../lib/modules/zarafaServer.inc:65 ../lib/modules/zarafaServer.inc:87 +#: ../lib/modules/zarafaServer.inc:109 ../lib/modules/zarafaServer.inc:122 +#: ../lib/modules/zarafaServer.inc:150 ../lib/modules/zarafaServer.inc:319 +msgid "SSL port" +msgstr "SSL port" + +#: ../lib/modules/sambaSamAccount.inc:129 +#: ../lib/modules/sambaGroupMapping.inc:312 +msgid "Samba 3" +msgstr "Samba 3" + +#: ../lib/modules/sambaDomain.inc:203 ../lib/modules/sambaDomain.inc:204 +msgid "Samba 3 domain SID is invalid!" +msgstr "Neplatný SID domény Samby 3!" + +#: ../lib/types/smbDomain.inc:62 +msgid "Samba 3 domain entries" +msgstr "Domény Samby 3" + +#: ../lib/modules/sambaSamAccount.inc:307 +#: ../lib/modules/sambaSamAccount.inc:311 +#: ../lib/modules/sambaSamAccount.inc:452 +#: ../lib/modules/sambaSamAccount.inc:518 +msgid "Samba RID" +msgstr "RID Samby" + +#: ../lib/modules/sambaGroupMapping.inc:339 +#: ../lib/modules/sambaGroupMapping.inc:364 +msgid "Samba RID number" +msgstr "RID Samby" + +#: ../lib/modules/sambaGroupMapping.inc:333 +msgid "Samba display name" +msgstr "Zobrazovací jméno Samby" + +#: ../lib/modules/sambaDomain.inc:51 +msgid "Samba domain" +msgstr "Doména Samby" + +#: ../lib/modules/sambaGroupMapping.inc:149 +msgid "Samba domain name" +msgstr "Název domény Samby" + +#: ../lib/types/smbDomain.inc:53 +msgid "Samba domains" +msgstr "Domény Samby" + +#: ../lib/modules/sambaGroupMapping.inc:324 +#: ../lib/modules/sambaGroupMapping.inc:345 +#: ../lib/modules/sambaGroupMapping.inc:372 +#: ../lib/modules/sambaGroupMapping.inc:393 +msgid "Samba group type" +msgstr "Typ skupiny Samby" + +#: ../lib/modules/sambaSamAccount.inc:239 +msgid "Samba password" +msgstr "Heslo Samby" + +#: ../lib/modules/sambaSamAccount.inc:95 +#: ../lib/modules/sambaSamAccount.inc:208 +#: ../lib/modules/sambaSamAccount.inc:292 +#: ../lib/modules/sambaSamAccount.inc:295 +#: ../lib/modules/sambaSamAccount.inc:493 +#: ../lib/modules/sambaSamAccount.inc:577 +#: ../lib/modules/sambaSamAccount.inc:1152 +#: ../lib/modules/sambaSamAccount.inc:1523 +#: ../lib/modules/sambaSamAccount.inc:1672 +msgid "Samba workstations" +msgstr "Stanice Samby" + +#: ../lib/modules/sambaSamAccount.inc:1288 +msgid "Saturday" +msgstr "Sobota" + +#: ../templates/config/confmodules.php:215 +#: ../templates/config/confmain.php:381 +#: ../templates/config/moduleSettings.php:226 +#: ../templates/config/conftypes.php:277 +#: ../templates/selfService/selfServiceMain.php:352 +#: ../templates/selfService/adminMain.php:543 +#: ../templates/pdfedit/pdfpage.php:583 +#: ../templates/profedit/profilepage.php:227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1243 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1247 +#: ../lib/modules.inc:1076 +msgid "Save" +msgstr "Uložit" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +msgid "Save a dump of this object" +msgstr "Uložit výpis tohoto objektu" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1244 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Save a dump of this object and all of its children" +msgstr "Uložit výpis tohoto objektu a všech podobjektů" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:90 +msgid "Save as file" +msgstr "Uložit jako soubor" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:172 +msgid "Save changes" +msgstr "Uložit změny" + +#: ../lib/tools/schemaBrowser.inc:44 +msgid "Schema browser" +msgstr "Prohlížeč schématu" + +#: ../templates/serverInfo.php:117 +msgid "Schema suffix" +msgstr "Sufix schématu" + +#: ../templates/tests/schemaTest.php:53 ../templates/tests/index.php:56 +#: ../lib/tools/tests.inc:116 +msgid "Schema test" +msgstr "Test schématu" + +#: ../lib/modules/eduPerson.inc:84 ../lib/modules/eduPerson.inc:154 +#: ../lib/modules/eduPerson.inc:206 ../lib/modules/eduPerson.inc:268 +#: ../lib/modules/eduPerson.inc:666 +msgid "Scoped affiliation" +msgstr "Role vztahu" + +#: ../help/help.inc:93 +msgid "Script path" +msgstr "Cesta ke skriptu" + +#: ../templates/config/confmain.php:464 +msgid "Script path is invalid!" +msgstr "Neplatná cesta ke skriptu!" + +#: ../templates/config/confmain.php:483 +msgid "Script rights are invalid!" +msgstr "Neplatná přístupová práva skriptu!" + +#: ../templates/config/confmain.php:467 +msgid "Script server is invalid!" +msgstr "Neplatný server skriptu!" + +#: ../help/help.inc:104 +msgid "Script servers" +msgstr "Servery skriptu" + +#: ../templates/serverInfo.php:298 ../templates/serverInfo.php:378 +#: ../templates/3rdParty/pla/lib/QueryRender.php:75 +#: ../templates/3rdParty/pla/lib/QueryRender.php:180 +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:619 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:235 +msgid "Search" +msgstr "Hledat" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +#: ../templates/3rdParty/pla/lib/QueryRender.php:190 +msgid "Search Results" +msgstr "Výsledky hledání" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +#: ../templates/3rdParty/pla/lib/export_functions.php:201 +#: ../templates/3rdParty/pla/htdocs/export_form.php:81 +msgid "Search filter" +msgstr "Filtr pro hledání" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:294 +msgid "Search returned no results" +msgstr "Nebylo nic nalezeno" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +#: ../templates/3rdParty/pla/lib/export_functions.php:200 +#: ../templates/3rdParty/pla/htdocs/export_form.php:67 +msgid "Search scope" +msgstr "Rozsah hledání" + +#: ../lib/modules/asteriskExtension.inc:304 +msgid "Search tree suffix for users" +msgstr "Sufix stromu pro hledání uživatelů" + +#: ../templates/pdfedit/pdfpage.php:555 +msgid "Section" +msgstr "Sekce" + +#: ../templates/3rdParty/pla/lib/Template.php:397 +#: ../templates/3rdParty/pla/lib/Template.php:422 +#: ../templates/3rdParty/pla/lib/Template.php:427 +#: ../templates/3rdParty/pla/lib/Template.php:484 +#: ../templates/3rdParty/pla/lib/Template.php:509 +#: ../templates/3rdParty/pla/lib/Template.php:514 +msgid "Security error: The file being uploaded may be malicious." +msgstr "Bezpečnostní chyby: Nahraný soubor může být škodlivý." + +#: ../lib/modules/zarafaGroup.inc:71 ../lib/modules/zarafaGroup.inc:99 +#: ../lib/modules/zarafaGroup.inc:128 ../lib/modules/zarafaGroup.inc:185 +#: ../lib/modules/zarafaGroup.inc:423 +msgid "Security group" +msgstr "Bezpečnostní skupina" + +#: ../lib/modules/passwordSelfReset.inc:65 +#: ../lib/modules/passwordSelfReset.inc:124 +#: ../lib/modules/passwordSelfReset.inc:148 +msgid "Security questions" +msgstr "Bezpečnostní otázky" + +#: ../templates/config/mainmanage.php:195 ../templates/config/confmain.php:371 +msgid "Security settings" +msgstr "Nastavení bezpečnosti" + +#: ../templates/help.php:91 +msgid "See also" +msgstr "Další informace" + +#: ../lib/account.inc:675 +msgid "See the manual for instructions to solve this problem." +msgstr "Řešení tohoto problému naleznete v příručce." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:494 +msgid "Select a template for the creation process" +msgstr "Vyber šablonu pro vytvoření" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:498 +msgid "Select a template to edit the entry" +msgstr "Vyber šablonu pro editaci záznamu" + +#: ../lib/lists.inc:402 +msgid "Select all" +msgstr "Vybrat vše" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:31 +msgid "Select an LDIF file" +msgstr "Vybrat LDIF soubor" + +#: ../lib/modules/nisnetgroup.inc:230 ../lib/modules/nisnetgroup.inc:259 +msgid "Select host" +msgstr "Vybrat stroj" + +#: ../lib/modules/nisnetgroup.inc:236 ../lib/modules/nisnetgroup.inc:265 +msgid "Select user" +msgstr "Vybrat uživatele" + +#: ../lib/modules/posixAccount.inc:1202 ../lib/modules/posixAccount.inc:1232 +#: ../lib/modules/nisnetgroup.inc:374 +msgid "Selected groups" +msgstr "Vybrané skupiny" + +#: ../templates/masscreate.php:149 ../templates/config/confmodules.php:280 +msgid "Selected modules" +msgstr "Vybrané moduly" + +#: ../lib/modules/posixGroup.inc:241 ../lib/modules/asteriskExtension.inc:308 +msgid "Selected users" +msgstr "Vybraní uživatelé" + +#: ../templates/selfService/adminMain.php:262 +msgid "Self service configuration" +msgstr "Nastavení samoobslužné části" + +#: ../templates/selfService/adminMain.php:303 +msgid "Self service configuration editor" +msgstr "Editor samoobslužné části" + +#: ../templates/selfService/adminMain.php:308 +msgid "Self service login" +msgstr "Přihlášení samoobslužné části" + +#: ../templates/lists/changePassword.php:223 +#: ../templates/lists/changePassword.php:259 +msgid "Send via mail" +msgstr "Zaslat e-mailem" + +#: ../lib/modules/device.inc:58 ../lib/modules/device.inc:89 +#: ../lib/modules/device.inc:114 ../lib/modules/device.inc:169 +#: ../lib/modules/device.inc:442 +msgid "Serial number" +msgstr "Sériové číslo" + +#: ../templates/tests/lamdaemonTest.php:70 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:166 +#: ../templates/3rdParty/pla/htdocs/import.php:47 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:110 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +#: ../templates/3rdParty/pla/htdocs/export_form.php:56 +msgid "Server" +msgstr "Server" + +#: ../templates/config/confmain.php:221 +#: ../templates/selfService/adminMain.php:350 ../lib/modules/imapAccess.inc:69 +#: ../lib/modules/imapAccess.inc:104 ../help/help.inc:54 +msgid "Server address" +msgstr "Adresa serveru" + +#: ../templates/config/confmain.php:414 +#: ../templates/selfService/adminMain.php:104 +msgid "Server address is invalid!" +msgstr "Neplatná adresa serveru!" + +#: ../templates/serverInfo.php:101 ../lib/tools/serverInfo.inc:44 +msgid "Server information" +msgstr "Informace o serveru" + +#: ../templates/config/confmain.php:281 +msgid "Server list" +msgstr "Seznam serverů" + +#: ../templates/login.php:384 +msgid "Server profile" +msgstr "Profil serveru" + +#: ../templates/config/confmain.php:250 +#: ../templates/selfService/adminMain.php:370 +msgid "Server settings" +msgstr "Nastavení serveru" + +#: ../templates/serverInfo.php:178 +msgid "Server statistics" +msgstr "Statistiky serveru" + +#: ../templates/serverInfo.php:203 ../templates/serverInfo.php:209 +msgid "Server time" +msgstr "Serverový čas" + +#: ../lib/modules/authorizedServiceObject.inc:74 +msgid "Service name (e.g. sshd, imap, ftp). Enter one service per entry." +msgstr "Název služby (např. sshd, imap, ftp). Zadejte jednu službu v záznamu." + +#: ../templates/config/mainmanage.php:193 ../help/help.inc:134 +msgid "Session timeout" +msgstr "Časový limit pro sezení" + +#: ../lib/modules/aliasEntry.inc:102 +msgid "Set" +msgstr "Nastavit" + +#: ../lib/modules/shadowAccount.inc:424 +msgid "Set also for Samba 3" +msgstr "Nastavit také pro Samba 3" + +#: ../lib/modules/sambaSamAccount.inc:1376 +msgid "Set also for Shadow" +msgstr "Nastavit také jako Stínové heslo" + +#: ../lib/modules.inc:1083 ../lib/modules.inc:1084 +msgid "Set password" +msgstr "Nastavit heslo" + +#: ../lib/modules/posixAccount.inc:187 ../lib/modules/posixAccount.inc:330 +msgid "Set primary group as memberUid" +msgstr "Nastavit primární skupinu jako memberUid" + +#: ../templates/config/profmanage.php:317 ../help/help.inc:124 +msgid "Set profile password" +msgstr "Nastavit heslo k profilu" + +#: ../lib/modules.inc:1084 +msgid "Set random password" +msgstr "Nastavit náhodné heslo" + +#: ../templates/lists/changePassword.php:237 +msgid "Set specific password" +msgstr "Nastavit heslo" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +msgid "Set the search results to 0 to retrieve all available records." +msgstr "" +"Pokud nastavíte počet výsledků hledání na 0, pak získáte všechny dostupné " +"záznamy." + +#: ../lib/modules/groupOfNames.inc:85 +msgid "" +"Set this only if your LDAP schema allows that groups may not have any " +"members (e.g. if you use OpenDJ)." +msgstr "" +"Nastavte toto pouze pokud vaše schema LDAPu podporuje skupiny bez členů " +"(např. když používáte OpenDJ)." + +#: ../lib/modules/posixGroup.inc:403 +msgid "Sets the group password." +msgstr "Nastavit heslo skupiny." + +#: ../lib/modules/shadowAccount.inc:84 +msgid "Shadow" +msgstr "Stínová hesla" + +#: ../lib/modules/sambaSamAccount.inc:224 +#: ../lib/modules/sambaSamAccount.inc:359 +#: ../lib/modules/sambaSamAccount.inc:1447 +#: ../lib/modules/sambaSamAccount.inc:1727 +msgid "Shadowing" +msgstr "Stínováni" + +#: ../lib/modules/zarafaUser.inc:96 ../lib/modules/zarafaUser.inc:164 +#: ../lib/modules/zarafaUser.inc:272 ../lib/modules/zarafaUser.inc:357 +#: ../lib/modules/zarafaUser.inc:543 ../lib/modules/zarafaUser.inc:1233 +msgid "Shared store only" +msgstr "Pouze sdílené úložiště" + +#: ../lib/modules/ddns.inc:88 +msgid "Should DDNS (Dynamic DNS) be activated?" +msgstr "Má být DDNS (Dynamické DNS) aktivováno?" + +#: ../lib/modules/ddns.inc:91 +msgid "Should fix IP addresses be added to the DNS server?" +msgstr "Mají být statické IP adresy přidány do DNS serveru?" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1121 +msgid "Show" +msgstr "Zobrazit" + +#: ../templates/massBuildAccounts.php:201 +msgid "Show LDIF file" +msgstr "Zobrazit LDIF soubor" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +#: ../templates/3rdParty/pla/htdocs/export_form.php:84 +msgid "Show attributes" +msgstr "Zobrazit atributy" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1122 +msgid "Show internal attributes" +msgstr "Zobrazit interní atributy" + +#: ../lib/modules/asteriskExtension.inc:300 +msgid "Show only Asterisk accounts" +msgstr "Zobrazit pouze účty Asterisku" + +#: ../lib/types/group.inc:299 +msgid "Show primary group members as normal group members" +msgstr "Zobrazit primární členy skupiny mezi normálními členy" + +#: ../templates/schema/schema.php:192 +msgid "Single valued" +msgstr "Jednoduchá hodnota" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Skip" +msgstr "Přeskočit" + +#: ../lib/modules/quota.inc:620 ../lib/modules/systemQuotas.inc:373 +msgid "Soft block" +msgstr "Měkký blok" + +#: ../lib/modules/quota.inc:105 ../lib/modules/quota.inc:388 +#: ../lib/modules/quota.inc:493 ../lib/modules/systemQuotas.inc:117 +msgid "Soft block limit" +msgstr "Měkký limit bloků" + +#: ../lib/modules/quota.inc:106 +msgid "Soft block limit." +msgstr "Měkký limit bloků." + +#: ../lib/modules/quota.inc:622 ../lib/modules/systemQuotas.inc:375 +msgid "Soft inode" +msgstr "Měkký inode" + +#: ../lib/modules/quota.inc:128 +msgid "Soft inode (files) limit." +msgstr "Měkký limit inodů (souborů)." + +#: ../lib/modules/quota.inc:127 ../lib/modules/quota.inc:392 +#: ../lib/modules/quota.inc:495 ../lib/modules/systemQuotas.inc:121 +msgid "Soft inode limit" +msgstr "Měkký limit inodů." + +#: ../lib/modules/imapAccess.inc:88 +msgid "" +"Some IMAP servers store mailboxes with a prefix (e.g. \"user\" for Cyrus " +"which results in \"user.username\")." +msgstr "" +"Některé IMAP servery ukládají poštovní schránky s prefixem (např. \"user\" v " +"Cyrus IMAPu, což vede k \"user.[uživatelské jméno])." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1019 +#, php-format +msgid "Some attributes (%s) were modified and are highlighted below." +msgstr "Některé atributy (%s) byly změněny a jsou zvýrazněny níže." + +#: ../lib/modules.inc:818 +msgid "Some required information is missing" +msgstr "Chybí některé povinné informace." + +#: ../templates/help.php:121 +#, php-format +msgid "" +"Sorry this help id ({bold}%s{endbold}) is not available for this module " +"({bold}%s{endbold})." +msgstr "" +"Bohužel nápověda pod id ({bold}%s{endbold}) není dostupná pro tento modul " +"({bold}%s{endbold})." + +#: ../templates/help.php:135 +#, php-format +msgid "Sorry this help number ({bold}%d{endbold}) is not available." +msgstr "Bohužel nápověda číslo ({bold}%d{endbold}) není dostupná." + +#: ../lib/modules/sambaSamAccount.inc:304 +#: ../lib/modules/sambaSamAccount.inc:1189 +msgid "Special user" +msgstr "Speciální uživatel" + +#: ../lib/modules/zarafaDynamicGroup.inc:85 +#: ../lib/modules/zarafaAddressList.inc:73 +msgid "" +"Specifies a filter that matches the members (e.g. \"(mail=*@zarafa.nl)\")." +msgstr "Udává filtr, který vyhovuje členům (např. \"(mail=*@zarafa.cz)\")." + +#: ../help/help.inc:198 +msgid "Specifies if the mail should be sent as text or HTML." +msgstr "Udává, zda má být e-mail zaslán ve formě prostého textu či HTML" + +#: ../lib/modules/asteriskAccount.inc:215 +msgid "Specifies if the user can call forward." +msgstr "Určuje, zda uživatel může přesměrovávat hovory." + +#: ../lib/modules/zarafaGroup.inc:72 +msgid "Specifies if this group has security possibilities." +msgstr "Určuje, zda tato skupina má bezpečnostní možnosti." + +#: ../lib/modules/zarafaServer.inc:74 +msgid "" +"Specifies if this server contains the public store. This may be changed only " +"for new entries." +msgstr "" +"Určujé, zda tento server má veřejné úložiště. Toto může být změněno pouze u " +"nových záznamů." + +#: ../lib/modules/ppolicy.inc:125 +msgid "Specifies if users are allowed to change their own passwords or not." +msgstr "Určuje, zda je uživatel oprávněn měnit své heslo." + +#: ../lib/modules/zarafaDynamicGroup.inc:81 +#: ../lib/modules/zarafaAddressList.inc:69 +msgid "" +"Specifies the LDAP base where to search for members (e.g. \"ou=zarafa," +"dc=company,dc=com\")." +msgstr "" +"Udává větev v LDAPu, kde se mají hledat členové (např. \"ou=zarafa," +"dc=spolecnost,dc=cz\")." + +#: ../lib/modules/zarafaUser.inc:129 +msgid "" +"Specifies the attribute that should be used to reference the entries. If you " +"would like to reference also groups then this must be set to \"dn\"." +msgstr "" +"Udává atribut, který může odkazovat na záznamy. Jestliže chcete odkazovat " +"také na skupiny, pak toto musí být nastaveno na \"dn\"." + +#: ../lib/modules/zarafaUser.inc:105 +msgid "Specifies the capacity of this resource." +msgstr "Udává kapacitu tohoto zdroje." + +#: ../lib/modules/ppolicy.inc:109 +msgid "" +"Specifies the maximum number of seconds before a password is due to expire " +"that expiration warning messages will be returned to a user." +msgstr "" +"Udává maximální počet sekund před vypršením platnosti hesla, kdy se " +"uživateli zobrazí varování o vypršení platnosti hesla." + +#: ../lib/modules/freeRadius.inc:101 +msgid "" +"Specifies the maximum number of seconds that a connection can be idle before " +"the session is terminated." +msgstr "Udává maximální počet sekund, po nichž je nečinné spojení ukončeno." + +#: ../lib/modules/ppolicy.inc:113 +msgid "" +"Specifies the minimum number of characters that will be accepted in a " +"password." +msgstr "Určuje minimální počet znaků v uživatelském hesle." + +#: ../lib/modules/ppolicy.inc:101 +msgid "" +"Specifies the number of consecutive failed login attempts after which the " +"password may not be used to login." +msgstr "" +"Udává počet po sobě jdoucích neúspěšných pokusů o přihlášení, po kterých se " +"nebude moci uživatel přihlásit jménem a heslem." + +#: ../lib/modules/ppolicy.inc:85 +msgid "" +"Specifies the number of previously used passwords which should be saved in " +"the password history. New passwords can only be set if they are not in the " +"password history." +msgstr "" +"Udává počet použitých hesel, která budou uložena v historii hesel. Nové " +"heslo nelze nastavit na heslo, které je v historii hesel." + +#: ../lib/modules/ppolicy.inc:105 +msgid "" +"Specifies the number of seconds after which old consecutive failed login " +"attempts are purged from the failure counter, even though no successful " +"authentication has occurred." +msgstr "" +"Udává počet sekund, po kterých se vymaže neúspěšný pokus o přihlášení z " +"počítadla a to i v případě, kdy nedojde k úšpěšnému přihlášení." + +#: ../lib/modules/ppolicy.inc:97 +msgid "" +"Specifies the number of seconds during which the password cannot be used to " +"login due to too many consecutive failed bind attempts." +msgstr "" +"Udává počet sekund, během nichž nelze použít heslo k přihlášení, pokud " +"předtím došlo k příliš mnoha po sobě jdoucích neúspěšných pokusům o " +"přihlášení." + +#: ../lib/modules/eduPerson.inc:85 +msgid "" +"Specifies the person's affiliation within a particular security domain in " +"broad categories such as student, faculty, staff, alum, etc." +msgstr "" +"Zadejte vztah osoby k dané bezpečnostní doméně v kategoriích jako student, " +"doktorand, zaměstnanec, atd." + +#: ../lib/modules/eduPerson.inc:81 +msgid "" +"Specifies the person's primary relationship to the institution in broad " +"categories such as student, faculty, staff, alum, etc." +msgstr "" +"Zadejte hlavní vztah osoby k dané bezpečnostní doméně v kategoriích jako " +"student, doktorand, zaměstnanec, atd." + +#: ../lib/modules/eduPerson.inc:93 ../lib/modules/eduPerson.inc:97 +msgid "" +"Specifies the person's relationship(s) to the institution in broad " +"categories such as student, faculty, staff, alum, etc." +msgstr "" +"Zadejte příslušnost osoby k instituci v kategoriích jako student, doktorand, " +"zaměstnanec, atd." + +#: ../lib/modules/asteriskAccount.inc:167 +msgid "Specifies the user's pickup group." +msgstr "Určuje uživatelovu skupinu přijímajích." + +#: ../lib/modules/zarafaUser.inc:93 +msgid "" +"Specifies whether the user is an admin. System administrators may " +"additionally create, modify and delete companies." +msgstr "" +"Udává, zda je uživatel adminem. Systémoví administrátoři mohou " +"navíc vytvářet, měnit a mazat společnosti." + +#: ../lib/modules/ppolicy.inc:129 +msgid "" +"Specifies whether the user's existing password must be sent along with their " +"new password when changing a password. Attention, LAM does not support " +"password changes which require the old password." +msgstr "" +"Udává, zda je nutné posílat stávající heslo uživatele při jeho změně. Dejte " +"pozor, že LAM nepodporuje zasílání starého hesla při změně hesla." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1460 +msgid "Specify attributes and values" +msgstr "Uveďte atributy a hodnoty" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +msgid "Standard LDAP search filter. Example: (&(sn=Smith)(givenName=David))" +msgstr "" +"Standardní vyhledávací fíltr LDAPu. Například: (&(sn=Novák)(givenName=Jan))" + +#: ../templates/serverInfo.php:191 ../templates/serverInfo.php:197 +msgid "Start time" +msgstr "Čas zapnutí" + +#: ../lib/modules/inetOrgPerson.inc:127 ../lib/modules/inetOrgPerson.inc:144 +#: ../lib/modules/inetOrgPerson.inc:239 ../lib/modules/inetOrgPerson.inc:476 +#: ../lib/modules/inetOrgPerson.inc:518 ../lib/modules/inetOrgPerson.inc:673 +#: ../lib/modules/inetOrgPerson.inc:1092 ../lib/modules/inetOrgPerson.inc:1446 +#: ../lib/modules/inetOrgPerson.inc:1980 +msgid "State" +msgstr "Územní celek" + +#: ../templates/pdfedit/pdfpage.php:505 ../templates/pdfedit/pdfpage.php:507 +msgid "Static text" +msgstr "Stálý text" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1455 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1467 +#, php-format +msgid "Step %s of %s" +msgstr "Krok %s z %s" + +#: ../lib/modules/inetOrgPerson.inc:295 +msgid "Steve" +msgstr "Jan" + +#: ../lib/modules/sambaSamAccount.inc:396 ../lib/modules/posixAccount.inc:206 +#: ../lib/modules/inetOrgPerson.inc:1564 +#: ../lib/modules/asteriskVoicemail.inc:165 +msgid "Steve Miller" +msgstr "Jan Novák" + +#: ../lib/modules/posixAccount.inc:267 +msgid "Steve Miller,Room 2.14,123-123-1234,123-123-1234" +msgstr "Jan Novák, místnost 2.14, 123 123 123,123 123 123" + +#: ../lib/modules/eduPerson.inc:169 +msgid "Steve, Stevo" +msgstr "Jan, Honza" + +#: ../lib/modules/inetOrgPerson.inc:62 ../lib/modules/inetOrgPerson.inc:124 +#: ../lib/modules/inetOrgPerson.inc:132 ../lib/modules/inetOrgPerson.inc:231 +#: ../lib/modules/inetOrgPerson.inc:364 ../lib/modules/inetOrgPerson.inc:506 +#: ../lib/modules/inetOrgPerson.inc:609 ../lib/modules/inetOrgPerson.inc:1072 +#: ../lib/modules/inetOrgPerson.inc:1430 ../lib/modules/inetOrgPerson.inc:1931 +msgid "Street" +msgstr "Ulice" + +#: ../templates/pdfedit/pdfpage.php:442 ../templates/pdfedit/pdfmain.php:174 +msgid "Structure name" +msgstr "Název struktury" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:136 +#: ../templates/3rdParty/pla/htdocs/export_form.php:33 +msgid "Sub (entire subtree)" +msgstr "Zanoření (celý podstrom)" + +#: ../lib/types/netgroup.inc:93 ../lib/modules/nisnetgroup.inc:81 +#: ../lib/modules/nisnetgroup.inc:116 ../lib/modules/nisnetgroup.inc:131 +#: ../lib/modules/nisnetgroup.inc:199 ../lib/modules/nisnetgroup.inc:373 +#: ../lib/modules/nisnetgroup.inc:577 +msgid "Subgroups" +msgstr "Podskupiny" + +#: ../templates/config/confmain.php:320 ../help/help.inc:190 +msgid "Subject" +msgstr "Předmět" + +#: ../lib/types/dhcp.inc:94 ../lib/modules/dhcp_settings.inc:127 +#: ../lib/modules/dhcp_settings.inc:171 ../lib/modules/dhcp_settings.inc:185 +#: ../lib/modules/dhcp_settings.inc:202 ../lib/modules/dhcp_settings.inc:518 +#: ../lib/modules/dhcp_settings.inc:617 +msgid "Subnet" +msgstr "Podsíť" + +#: ../lib/modules/dhcp_settings.inc:160 ../lib/modules/dhcp_settings.inc:179 +#: ../lib/modules/dhcp_settings.inc:196 ../lib/modules/dhcp_settings.inc:254 +#: ../lib/modules/dhcp_settings.inc:554 ../lib/modules/dhcp_settings.inc:625 +msgid "Subnet mask" +msgstr "Maska podsítě" + +#: ../templates/schema/schema.php:174 +msgid "Substring Rule" +msgstr "Pravidlo podřetězce" + +#: ../templates/3rdParty/pla/htdocs/import.php:63 +#: ../templates/3rdParty/pla/htdocs/copy.php:56 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:68 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:85 +msgid "Success" +msgstr "Úspešně" + +#: ../templates/3rdParty/pla/htdocs/delete.php:32 +#, php-format +msgid "Successfully deleted DN %s" +msgstr "DN záznam %s byl úspěšně smazán." + +#: ../lib/modules/sudoRole.inc:38 +msgid "Sudo role" +msgstr "Role suda" + +#: ../lib/types/sudo.inc:48 +msgid "Sudo role management" +msgstr "Správa rolí suda" + +#: ../lib/types/sudo.inc:39 +msgid "Sudo roles" +msgstr "Role suda" + +#: ../lib/lists.inc:656 ../lib/modules.inc:908 +msgid "Suffix" +msgstr "Sufix" + +#: ../lib/modules/sambaSamAccount.inc:1288 +msgid "Sunday" +msgstr "Neděle" + +#: ../templates/3rdParty/pla/htdocs/compare.php:72 +msgid "Switch entries" +msgstr "Prohodit záznamy" + +#: ../templates/lists/changePassword.php:158 +#: ../lib/modules/asteriskAccount.inc:89 +#: ../lib/modules/asteriskVoicemail.inc:77 +msgid "Sync Asterisk password with Unix password" +msgstr "Synchronizovat heslo Asterisku s Unixovým heslem" + +#: ../templates/lists/changePassword.php:161 +msgid "Sync Asterisk voicemail password with Unix password" +msgstr "Synchronizovat heslo hlasové schránky Asterisku s Unixovým heslem" + +#: ../templates/lists/changePassword.php:149 +#: ../lib/modules/sambaSamAccount.inc:230 +msgid "Sync Samba LM password with Unix password" +msgstr "Synchronizovat LM heslo Samby s Unixovým heslem" + +#: ../templates/lists/changePassword.php:148 +#: ../lib/modules/sambaSamAccount.inc:229 +msgid "Sync Samba NT password with Unix password" +msgstr "Synchronizovat NT heslo Samby s Unixovým heslem" + +#: ../templates/schema/schema.php:179 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:142 +msgid "Syntax" +msgstr "Syntaxe" + +#: ../templates/schema/schema.php:87 +msgid "Syntax OID" +msgstr "Syntaxe OID" + +#: ../templates/schema/schema.php:71 ../templates/schema/schema.php:72 +msgid "Syntaxes" +msgstr "Syntaxe" + +#: ../lib/modules/zarafaUser.inc:560 ../lib/modules/zarafaUser.inc:1224 +msgid "System administrator" +msgstr "Systémový administrátor" + +#: ../templates/config/mainmanage.php:219 +msgid "System logging" +msgstr "Systémový žurnál" + +#: ../help/help.inc:56 +msgid "TLS cannot be combined with ldaps://." +msgstr "TLS nemůže být kombinováno s ldaps://." + +#: ../lib/modules/kolabUser.inc:229 +msgid "Target of invitation policy is invalid!" +msgstr "Neplatný cíl pozvánkové politiky!" + +#: ../templates/lists/changePassword.php:204 ../lib/types/user.inc:156 +#: ../lib/modules/inetOrgPerson.inc:52 ../lib/modules/inetOrgPerson.inc:123 +#: ../lib/modules/inetOrgPerson.inc:153 ../lib/modules/inetOrgPerson.inc:249 +#: ../lib/modules/inetOrgPerson.inc:404 ../lib/modules/inetOrgPerson.inc:533 +#: ../lib/modules/inetOrgPerson.inc:629 ../lib/modules/inetOrgPerson.inc:1170 +#: ../lib/modules/inetOrgPerson.inc:1435 ../lib/modules/inetOrgPerson.inc:1903 +msgid "Telephone number" +msgstr "Telefonní číslo" + +#: ../lib/modules/inetOrgPerson.inc:342 +msgid "Temp" +msgstr "Dočasný" + +#: ../lib/modules/inetOrgPerson.inc:318 +msgid "Temp, contract until december" +msgstr "Dočasný, dohoda do prosince" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +msgid "Template" +msgstr "Šablona" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:520 +msgid "Templates" +msgstr "Šablony" + +#: ../lib/modules/sambaSamAccount.inc:368 +#: ../lib/modules/sambaSamAccount.inc:581 +#: ../lib/modules/sambaSamAccount.inc:1201 +msgid "Terminal server options" +msgstr "Možnosti terminálového serveru" + +#: ../lib/tools/tests.inc:44 +msgid "Tests" +msgstr "Testy" + +#: ../templates/config/confmain.php:329 ../help/help.inc:192 +msgid "Text" +msgstr "Text" + +#: ../templates/pdfedit/pdfpage.php:564 +msgid "Text field" +msgstr "Textové pole" + +#: ../lib/modules/eduPerson.inc:102 +msgid "" +"The \"NetID\" of the person for the purposes of inter-institutional " +"authentication. It should be represented in the form \"user@scope\" where " +"scope defines a local security domain." +msgstr "" +"\"NetID\" osoby pro vnitřní potřeby autentizace. Může být uvedeno ve tvaru " +"\"uzivatel@pusobnost\", kde pusobnost určuje místní bezpečnostní doménu." + +#: ../lib/modules/kolabUser.inc:160 +msgid "" +"The Cyrus mail quota for users in MBytes, leave blank for unlimited space." +msgstr "" +"Cyrus kvóta uživatele (v MB), ponechte pole prázdné pro neomezené místo." + +#: ../lib/modules/dhcp_settings.inc:289 +msgid "The DHCP ranges were changed to fit for the new subnet." +msgstr "DHCP rozsahy byly změněny v souladu s novou podsítí." + +#: ../lib/modules/eduPerson.inc:114 +msgid "" +"The DN of the directory entry representing the institution with which the " +"person is associated." +msgstr "DN záznamu reprezentujícího instituci, ke které byla osoba přiřazena." + +#: ../lib/modules/eduPerson.inc:118 +msgid "" +"The DN of the directory entry representing the person's primary " +"organisational unit." +msgstr "DN záznam reprezentující hlavní organizační jednotku osoby." + +#: ../lib/modules/eduPerson.inc:122 ../lib/modules/eduPerson.inc:126 +msgid "" +"The DNs of the directory entries representing the person's organisational " +"units." +msgstr "DN záznamy reprezentující organizační jednotky osoby." + +#: ../lib/modules/posixGroup.inc:419 +msgid "" +"The ID of this group was changed. You can update all user and host entries " +"to the new group ID." +msgstr "" +"Změnilo se ID této skupiny. Měli byste změnit GID u všech uživatelů a strojů." + +#: ../templates/config/mainmanage.php:95 +#, php-format +msgid "The IP address %s is invalid!" +msgstr "Neplatná IP adresa %s!" + +#: ../lib/modules/fixed_ip.inc:393 +msgid "The IP address does not match the subnet." +msgstr "IP adresa nespadá do podsítě." + +#: ../lib/modules/fixed_ip.inc:396 +msgid "The IP address is already in use." +msgstr "Tato IP adresa je již používána" + +#: ../lib/modules/ipHost.inc:108 ../lib/modules/ipHost.inc:109 +#: ../lib/modules/asteriskAccount.inc:638 +#: ../lib/modules/asteriskAccount.inc:639 ../lib/modules/ppolicyUser.inc:85 +#: ../lib/modules/range.inc:408 ../lib/modules/range.inc:424 +#: ../lib/modules/freeRadius.inc:241 ../lib/modules/freeRadius.inc:242 +#: ../lib/modules/fixed_ip.inc:388 +msgid "The IP address is invalid." +msgstr "Neplatná IP adresa!" + +#: ../lib/modules/fixed_ip.inc:94 +msgid "The IP address of the PC." +msgstr "IP adresa počítače!" + +#: ../lib/modules/dhcp_settings.inc:137 +msgid "" +"The IP address(es) of the DNS servers. Multiple addresses are separated by " +"\",\". Example: 192.168.0.10, 192.168.0.11" +msgstr "" +"IP adresa(y) DNS serveru(ů). Adresy jsou odděleny čárkou. Přiklad: " +"192.168.0.10, 192.168.0.11" + +#: ../lib/modules/dhcp_settings.inc:143 +msgid "" +"The IP addresses of the Netbios name servers (e.g. \"123.123.123.123, " +"123.123.123.124\")." +msgstr "" +"IP adresa(y) DNS Netbios name serveru(ů). Adresy jsou odděleny čárkou. " +"Přiklad: 192.168.0.10, 192.168.0.11" + +#: ../lib/modules/range.inc:412 ../lib/modules/range.inc:426 +msgid "The IP does not match the subnet." +msgstr "IP adresa není ze zadané podsítě." + +#: ../lib/modules/fixed_ip.inc:91 +msgid "The MAC address of the PC. Example: 11:22:33:44:55:aa" +msgstr "MAC adresa počítače (síťové karty). Například: 11:22:33:44:55:aa" + +#: ../lib/modules/dhcp_settings.inc:282 ../lib/modules/dhcp_settings.inc:283 +msgid "The Netbios server is invalid." +msgstr "Neplatný Netbios server." + +#: ../lib/modules/fixed_ip.inc:360 +msgid "The PC name may not be longer than 20 characters." +msgstr "Název počítače nesmí být delší jak 20 znaků." + +#: ../lib/modules/fixed_ip.inc:369 +msgid "The PC name may only contain A-Z, a-z and 0-9." +msgstr "Název počítače smí obsahovat pouze znaky a-z, A-Z a 0-9" + +#: ../lib/modules/fixed_ip.inc:363 +msgid "The PC name needs to be at least 2 characters long." +msgstr "Název počítače musí obsahovat alespoň dva znaky." + +#: ../help/help.inc:163 +msgid "" +"The PDF structure defines what information is exported as PDF file and how " +"the pages are structured. You can manage the PDF structures in the PDF " +"editor (under \"Tools\")." +msgstr "" +"Struktura PDF udává které informace jsou exportovány do PDF souboru a jak " +"jsou strukturovány stránky. Strukturu PDF můžete nastavovat v editoru PDF " +"(pod \"Nástroje\")." + +#: ../templates/3rdParty/pla/htdocs/create.php:44 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:38 +msgid "The RDN field is empty." +msgstr "Datové pole RDN je prázdné." + +#: ../lib/modules/freeRadius.inc:85 +msgid "The Radius realm of this account." +msgstr "Realm Radiusu tohoto účtu." + +#: ../lib/modules/sambaDomain.inc:75 +msgid "The SID of your Samba server. Get it with \"net getlocalsid\"." +msgstr "SID vašeho Samba serveru. Získáte jej pomocí \"net getlocalsid\"." + +#: ../templates/selfService/selfServiceLogin.php:90 +#: ../templates/selfService/selfServiceMain.php:138 +msgid "The TLS encryption could not be started." +msgstr "Nelze nastartovat TLS šifrování." + +#: ../lib/modules/posixAccount.inc:73 +msgid "" +"The UID ranges for users and hosts overlap! This is a problem because LAM " +"uses the highest UID in use + 1 for new accounts. Please set the minimum UID " +"to equal values or use independent ranges." +msgstr "" +"Rozsah UID pro uživatele a stroje koliduje! Toto je problem, neboť LAM " +"používá nejvyšší použité UIDˇ+ 1 pro nové účty. Prosím nastavte nejmenší UID " +"na stejné hodnoty či použijte nekolidující rozsahy." + +#: ../lib/modules/zarafaServer.inc:70 +msgid "The Unix socket or named pipe to the server." +msgstr "Unixový socket nebo pojmenovaná roura serveru." + +#: ../lib/modules/asteriskVoicemail.inc:205 +#: ../lib/modules/asteriskVoicemail.inc:206 +msgid "The account context is invalid." +msgstr "Neplatný kontext účtu." + +#: ../lib/modules/asteriskAccount.inc:103 +#: ../lib/modules/asteriskExtension.inc:83 +#: ../lib/modules/asteriskVoicemail.inc:83 +msgid "The account context stores information about the dial plan." +msgstr "Kontext účtu obsahuje informace o plánu vytáčení." + +#: ../lib/modules/asteriskAccount.inc:630 +#: ../lib/modules/asteriskAccount.inc:631 +msgid "The account type is invalid." +msgstr "Neplatný typ účtu." + +#: ../lib/modules/freeRadius.inc:97 +msgid "The account will be locked after this date." +msgstr "Účet bude uzamčent po tomto datu." + +#: ../help/help.inc:153 +msgid "The account will be saved under this LDAP suffix." +msgstr "Účet bude uložen pod tímto sufixem LDAPu." + +#: ../lib/modules/passwordSelfReset.inc:164 +msgid "The answer needs to be at least %s characters long." +msgstr "Odpověď musí být alespoň %s znak(y/ů) dlouhá." + +#: ../lib/modules/passwordSelfReset.inc:773 +msgid "The answer to the security question is wrong." +msgstr "Zadali jste nesprávnou odpověď na bezpečnostní otázku." + +#: ../templates/tests/schemaTest.php:123 +#, php-format +msgid "" +"The attribute %s is not supported for the object class(es) %s by your LDAP " +"server." +msgstr "Váš LDAP server nepodporuje atribut %s v třídě(ách) objektů %s." + +#: ../templates/3rdParty/pla/lib/import_functions.php:531 +#, php-format +msgid "The attribute to modify doesn't match the one specified by %s." +msgstr "Upravený atribut nesouhlasí s uvedeným pomocí %s." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:31 +msgid "The attribute value does not exist" +msgstr "Neexistuje hodnota atributu." + +#: ../lib/modules/asteriskAccount.inc:620 +#: ../lib/modules/asteriskAccount.inc:622 +msgid "The caller ID format is invalid." +msgstr "Neplatný formát ID volajícího." + +#: ../templates/3rdParty/pla/htdocs/create.php:29 +#: ../templates/3rdParty/pla/htdocs/copy.php:34 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:23 +#, php-format +msgid "The container you specified (%s) does not exist. Please try again." +msgstr "Vámi uvedený kontejner (%s) neexistuje. Zkuste to prosím znovu." + +#: ../lib/modules/kolabUser.inc:148 +msgid "The country name of the user." +msgstr "Název země uživatele." + +#: ../lib/modules/dhcp_settings.inc:280 ../lib/modules/dhcp_settings.inc:281 +msgid "The default gateway is invalid." +msgstr "Neplatná výchozí brána." + +#: ../templates/3rdParty/pla/htdocs/copy.php:31 +#, php-format +msgid "The destination entry (%s) already exists." +msgstr "Cílový záznam (%s) již existuje." + +#: ../lib/modules/dhcp_settings.inc:292 ../lib/modules/dhcp_settings.inc:294 +msgid "" +"The domain name includes invalid characters. Valid characters are A-Z, a-z, " +"0-9, \".\", \"_\",\"-\"." +msgstr "" +"Název domény obsahuje neplatné znaky. Přípustné znaky jsou: a-z, A-Z, 0-9, " +"\".\", \"_\",\"-\"." + +#: ../lib/modules/dhcp_settings.inc:291 ../lib/modules/dhcp_settings.inc:293 +msgid "The domain name needs to have at least 3 characters." +msgstr "Název domény musí mít alespoň 3 znaky." + +#: ../lib/modules/dhcp_settings.inc:125 +msgid "The domain name of the subnet." +msgstr "Název domény podsítě." + +#: ../lib/modules/asteriskVoicemail.inc:209 +msgid "The email address is invalid." +msgstr "Neplatná e-mailová adresa!" + +#: ../lib/modules/range.inc:89 +msgid "The ending IP address of the range." +msgstr "Koncová IP adresa rozsahu." + +#: ../lib/modules/dhcp_settings.inc:284 +msgid "The entered Netbios node type does not exist." +msgstr "Neexistuje zadaný typ Netbios nodu." + +#: ../templates/3rdParty/pla/htdocs/update.php:27 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:22 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:21 +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:24 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:23 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:20 +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:24 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:20 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:27 +#, php-format +msgid "The entry (%s) does not exist." +msgstr "Neexistuje záznam (%s)." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:27 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:28 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:34 +msgid "The entry does not exist and will be ignored" +msgstr "Záznam neexistuje a bude ignorovám" + +#: ../lib/modules/phpGroupwareUser.inc:135 ../lib/modules/shadowAccount.inc:67 +msgid "The expiration date is invalid." +msgstr "Neplatné datum vypršení platnosti hesla." + +#: ../lib/modules/freeRadius.inc:249 ../lib/modules/freeRadius.inc:250 +msgid "The expiration date must be in format DD.MM.YYYY HH:MM." +msgstr "Datum expirace musí být ve formátu DD-MM-YYYY HH:MM." + +#: ../lib/modules/asteriskAccount.inc:624 +#: ../lib/modules/asteriskAccount.inc:625 +msgid "The extension context is invalid." +msgstr "Neplatný kontext rozšíření." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "The file you chose is either empty or does not exist." +msgstr "Soubor, který jste vybral je buď prázndý a nebo neexistuje." + +#: ../templates/3rdParty/pla/lib/Template.php:412 +#: ../templates/3rdParty/pla/lib/Template.php:499 +msgid "" +"The file you selected was only partially uploaded, likley due to a network " +"error." +msgstr "Vámi vybraný soubor byl nahrán pouze částečně kvůli chybě na síti." + +#: ../templates/3rdParty/pla/lib/Template.php:402 +#: ../templates/3rdParty/pla/lib/Template.php:407 +#: ../templates/3rdParty/pla/lib/Template.php:489 +#: ../templates/3rdParty/pla/lib/Template.php:494 +msgid "" +"The file you uploaded is too large. Please check php.ini, upload_max_size " +"setting" +msgstr "" +"Vámi nahraný soubor je příliš velký. Prosím, zkontrolujte nastavení " +"upload_max_size v php.ini" + +#: ../templates/initsuff.php:179 +msgid "" +"The following suffix(es) are missing in LDAP. LAM can create them for you." +msgstr "Nasledující sufix(y) chybí v LDAPu. LAM je může vytvořit." + +#: ../lib/modules/sambaSamAccount.inc:109 +#: ../lib/modules/sambaSamAccount.inc:110 +msgid "The format of the logon hours field is invalid!" +msgstr "Neplatný formát hodin přihlášení!" + +#: ../lib/modules/customScripts.inc:110 +msgid "The format of this custom script setting is invalid." +msgstr "Neplatný formát nastavení uživatelského skriptu." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +msgid "The format to show the query results" +msgstr "Formát zobrazení výsledků dotazu." + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "" +"The full DN of the new entry to be created when copying the source entry" +msgstr "" +"Plné DN nového záznamu bude vytvořeno během kopírování zdrojového záznamu" + +#: ../lib/modules/asteriskVoicemail.inc:208 +msgid "The full name is invalid." +msgstr "Neplatné plné jméno." + +#: ../templates/login.php:492 +msgid "The given user name matches multiple LDAP entries." +msgstr "Více LDAP záznamů se shoduje s daným uživatelským jménem." + +#: ../lib/modules/ppolicy.inc:93 +msgid "" +"The grace authentication limit specifies the number of times that an expired " +"password may be used to login." +msgstr "" +"Limit odkladu autentizace udává kolikrát je možné se přihlásit s vypršeným " +"heslem." + +#: ../lib/modules/freeRadius.inc:89 ../lib/modules/freeRadius.inc:93 +msgid "The group names for this account." +msgstr "Názvy skupin tohoto účtu" + +#: ../templates/pdfedit/pdfpage.php:119 +msgid "The headline for a new section must contain at least one character." +msgstr "Titulek nové sekce musí obsahovat alespoň jeden znak." + +#: ../lib/modules/sambaSamAccount.inc:281 +msgid "The home directory will be connected under this drive letter." +msgstr "Domovský adresář bude připojen pod tímto písmenem." + +#: ../lib/modules/asteriskAccount.inc:627 +#: ../lib/modules/asteriskAccount.inc:628 +msgid "The host name is invalid." +msgstr "Neplatný název stroje." + +#: ../lib/modules/inetOrgPerson.inc:706 +msgid "The initials of the user's first names." +msgstr "Iniciály uživatele." + +#: ../lib/modules/ddns.inc:97 +msgid "" +"The key enables the DHCP server to perform DNS updates. The key is generated " +"with \"genDDNSkey\"." +msgstr "" +"Klíč umožňující DHCP serveru provádět změny v DNS. Klíč je generován pomocí " +"\"genDDNSkey\"." + +#: ../lib/modules/dhcp_settings.inc:278 ../lib/modules/dhcp_settings.inc:279 +msgid "The lease time is invalid." +msgstr "Neplatná doba přidělení." + +#: ../lib/modules/dhcp_settings.inc:131 +msgid "" +"The lease time specifies after how many seconds the client should request a " +"new IP address." +msgstr "" +"Doba přidělení určuje, po kolika sekundách zažádá klient znovu o IP adresu." + +#: ../lib/modules/sudoRole.inc:72 ../lib/modules/sudoRole.inc:98 +msgid "The list of commands which may be run." +msgstr "Seznam příkazů, které lze spustit." + +#: ../lib/modules/sudoRole.inc:68 ../lib/modules/sudoRole.inc:93 +msgid "The list of hosts from which the user may run the commands." +msgstr "Seznam strojů, na kterých může uživatel spouštět příkazy." + +#: ../lib/modules/sudoRole.inc:64 ../lib/modules/sudoRole.inc:88 +msgid "The list of users who own this sudo role and may run the commands." +msgstr "" +"Seznam uživatelů, kteří vlastní tuto roli suda a mohou spuštět příkazy." + +#: ../templates/config/mainmanage.php:111 +msgid "" +"The log file is empty or contains invalid characters! Valid characters are: " +"a-z, A-Z, 0-9, /, \\, ., :, _ and -." +msgstr "" +"Název soubor žurnálu je prázdný nebo obsahuje neplatné znaky! Přípustné " +"znaky jsou: a-z, A-Z, 0-9, /, \\, ., :, _ a -." + +#: ../lib/modules/imapAccess.inc:79 +msgid "" +"The login name of your IMAP user who has rights to create/delete mailboxes." +msgstr "" +"Přihlašovací jméno uživatele IMAPu, který má právo vytvářet/mazat poštovní " +"schránky." + +#: ../help/help.inc:193 +msgid "The mail text of all password mails." +msgstr "Text e-mailu pro všechny e-maily s hesly." + +#: ../lib/modules/asteriskVoicemail.inc:201 +msgid "The mailbox format is invalid." +msgstr "Neplatný formát hlasové schránky." + +#: ../lib/modules/dhcp_settings.inc:285 ../lib/modules/dhcp_settings.inc:286 +msgid "The maximum lease time is invalid." +msgstr "Neplatná nejdelší doba přidělení." + +#: ../lib/modules/dhcp_settings.inc:134 +msgid "" +"The maximum lease time specifies after how many seconds the client must " +"request a new IP address." +msgstr "" +"Nejdelší doba přidělení určuje, po kolika sekundách (nejpozději) musí klient " +"znovu zažádat o IP adresu." + +#: ../lib/modules.inc:863 +#, php-format +msgid "The module %s is not yet ready." +msgstr "Modul %s ještě není připraven." + +#: ../templates/pdfedit/pdfpage.php:90 +msgid "" +"The name for that PDF-structure you submitted is not valid. A valid name " +"must consist of the following characters: 'a-z','A-Z','0-9','_','-'." +msgstr "" +"Název PDF struktury, který jste zadali, není platný. Přípustné názvy se musí " +"skládat z následujících znaků: 'a-z','A-Z','0-9','_','-','.'." + +#: ../lib/modules/asteriskExtension.inc:95 +msgid "" +"The name of a command to execute. The available commands may be listed at " +"the Asterisk command line by executing \"core show applications\"." +msgstr "" +"Název příkazu ke spuštění. Dostupné příkazy můžete zjistit z příkazové řádky " +"pomocí \"core show applications\"." + +#: ../lib/modules/fixed_ip.inc:88 +msgid "The name of the PC." +msgstr "Název počítače." + +#: ../lib/modules/asteriskExtension.inc:87 +msgid "The name of the extension (e.g. voicemail or sip)." +msgstr "Název rozšíření (např. voicemail nebo sip)." + +#: ../lib/modules/kolabUser.inc:152 +msgid "The name of the server where the mailbox is located." +msgstr "Název serveru, na kterém je umístěna poštovní schránka." + +#: ../lib/modules/dhcp_settings.inc:128 +msgid "The name of the subnet. Example: 192.168.10.0" +msgstr "Specifikace podsítě. Například: 192.168.10.0" + +#: ../lib/modules/sambaDomain.inc:71 +msgid "The name of your Windows domain or workgroup." +msgstr "Název vaší Windows domény či pracovní skupiny." + +#: ../lib/modules/freeRadius.inc:81 +msgid "The net mask for the IP address." +msgstr "Maska sítě pro IP adressu." + +#: ../lib/modules/dhcp_settings.inc:164 +msgid "" +"The net mask is derived from the subnet mask. LAM will calculate it " +"automatically." +msgstr "Maska síťe je odvozena z masky podsítě. LAM ji vypočítá automaticky." + +#: ../lib/modules/freeRadius.inc:243 ../lib/modules/freeRadius.inc:244 +msgid "The net mask is invalid." +msgstr "Neplatná maska sítě." + +#: ../lib/modules.inc:1063 +msgid "" +"The new password will be stored in the directory after you save this account." +msgstr "Nové heslo bude v adresáři uloženo až po uložení tohoto účtu." + +#: ../lib/modules/asteriskAccount.inc:231 +msgid "The number of milliseconds for the last qualify." +msgstr "Počet sekund pro poslední kontrolu." + +#: ../help/help.inc:111 +msgid "" +"The number of users who may login to LAM is restricted. This can be either a " +"fixed list of DNs or LAM can search LDAP to find a DN which matches the " +"given user name." +msgstr "" +"Počet uživatelů pro přihlášení k LAMu je omezen. Může to být buď statický " +"seznam DN nebo LAM může prohledat LDAP, aby našel jedno DN, které vyhovuje " +"danému uživatelskému jménu." + +#: ../templates/tests/schemaTest.php:112 +#, php-format +msgid "The object class %s is not supported by your LDAP server." +msgstr "Váš LDAP server nepodporuje třídu objektů %s." + +#: ../lib/modules/inetOrgPerson.inc:682 +msgid "The office name of the user (e.g. YourCompany, Human Resources)." +msgstr "Oddělení uživatele (např. VašeSpolečnost, Lidské zdroje)." + +#: ../templates/selfService/selfServiceMain.php:266 ../lib/modules.inc:1622 +msgid "The operation was stopped because of the above errors." +msgstr "Operace byla zastavena kvůli výše uvedeným chybám." + +#: ../lib/modules/asteriskVoicemail.inc:211 +#: ../lib/modules/asteriskVoicemail.inc:212 +msgid "The options have bad format." +msgstr "Špatný formát voleb." + +#: ../lib/modules/device.inc:63 ../lib/modules/device.inc:67 +msgid "The owners of this device." +msgstr "Vlastníci tohoto zařízení." + +#: ../lib/modules/groupOfNames.inc:69 ../lib/modules/groupOfNames.inc:73 +msgid "The owners of this group." +msgstr "Vlastníci této skupiny." + +#: ../lib/modules/asteriskVoicemail.inc:210 +msgid "The pager number has bad format." +msgstr "Špatný formát čísla pageru." + +#: ../templates/config/confsave.php:71 ../templates/config/confmain.php:72 +#: ../templates/config/mainlogin.php:59 +#: ../templates/selfService/adminLogin.php:54 +msgid "The password is invalid! Please try again." +msgstr "Neplatné heslo! Prosim zadejte jej znovu." + +#: ../lib/security.inc:237 +#, php-format +msgid "The password is too short. You have to enter at least %s characters." +msgstr "Heslo je příliš krátké. Musíte zadat alespoň %s znaků." + +#: ../lib/security.inc:289 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s different character " +"classes (upper/lower case, numbers and symbols)." +msgstr "" +"Heslo je příliš jednoduché. Musíte zadat alespoň %s různých skupin znaků " +"(malá/velká písmena, číslice a symboly)." + +#: ../lib/security.inc:260 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s lower case " +"characters." +msgstr "Heslo je příliš jednoduché. Musíte zadat alespoň %s malých písmen." + +#: ../lib/security.inc:268 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s numeric characters." +msgstr "Heslo je příliš jednoduché. Musíte zadat alespoň %s číslic." + +#: ../lib/security.inc:272 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s symbolic characters." +msgstr "Heslo je příliš jednoduché. Musíte zadat alespoň %s symbolů." + +#: ../lib/security.inc:264 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s upper case " +"characters." +msgstr "Heslo je příliš jednoduché. Musíte zadat alespoň %s velkých písmen." + +#: ../lib/modules/imapAccess.inc:85 +msgid "" +"The password of your IMAP admin user. The login name for the IMAP admin user " +"is stored in the LAM server profile." +msgstr "" +"Heslo administrátora IMAPu. Přihlašovací jméno je uloženo v profilu LAM " +"serveru." + +#: ../lib/modules.inc:1025 +msgid "The password was set to:" +msgstr "Heslo bylo nastaveno na:" + +#: ../templates/lists/changePassword.php:382 +msgid "The password(s) were set to:" +msgstr "Heslo(a) byla nastavena na:" + +#: ../lib/modules/inetOrgPerson.inc:614 +msgid "The post office box of the user's address." +msgstr "P.O. box adresy uživatele." + +#: ../lib/modules/inetOrgPerson.inc:618 +msgid "The postal code of the user's address." +msgstr "PSČ adresy uživatele." + +#: ../lib/modules/posixAccount.inc:351 +msgid "" +"The primary group for this account. You can insert a GID number or a group " +"name." +msgstr "Primární skupina tohoto účtu. Můžete zadat GID či název skupiny." + +#: ../lib/modules/posixAccount.inc:418 +msgid "The primary group the host should be member of." +msgstr "Primární skupina, jejímž členem by stroj měl být." + +#: ../lib/modules/posixAccount.inc:380 +msgid "The primary group the user should be member of." +msgstr "Primární skupina, jejímž členem by uživatel měl být." + +#: ../lib/modules/asteriskExtension.inc:91 +msgid "" +"The priority is a sequence number used to order the execution of commands. " +"Commands are executed beginning with the lowest sequence number." +msgstr "" +"Priorita je číslo, které slouží k určení pořadí spuštění příkazů. Příkazy s " +"nižší prioritou budou spuštěny dříve." + +#: ../lib/modules/range.inc:414 +msgid "The range conflicts with another range." +msgstr "Rozsah koliduje s jiným." + +#: ../lib/modules/range.inc:410 +msgid "The range end needs to be greater than the range start." +msgstr "Konec rozsahu musí být větší, než začátak." + +#: ../lib/modules/inetOrgPerson.inc:662 +msgid "The room number of the employee's office." +msgstr "Číslo místnosti, ve které má zaměstnanec kancelář" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +msgid "The scope in which to search" +msgstr "Rozsah, ve kterém se bude hledat" + +#: ../lib/modules/customScripts.inc:57 ../lib/modules/customScripts.inc:69 +msgid "" +"The scripts will be run on your web server in the user context of your web " +"server (e.g. apache/www-data)." +msgstr "" +"Skripty budou spuštěny na vašem web serveru pod uživatelem, pod kterým běží " +"web server (např. apache/www-data)." + +#: ../lib/modules/asteriskAccount.inc:235 +#: ../lib/modules/sambaSamAccount.inc:375 ../lib/modules/zarafaUser.inc:117 +#: ../lib/modules/inetOrgPerson.inc:690 ../lib/modules/freeRadius.inc:105 +msgid "" +"The selected options will not be managed inside LAM. You can use this to " +"reduce the number of displayed input fields." +msgstr "" +"Vybrané volby nebudou spravovány pomocí LAMu. Můžete tímto omezit počet " +"zobrazovaných vstupních polí." + +#: ../templates/3rdParty/pla/htdocs/copy.php:38 +msgid "The source and destination DN are the same." +msgstr "Zdrojový a cílový DN záznam je jeden a ten samý." + +#: ../lib/modules/range.inc:86 +msgid "The starting IP address of the range." +msgstr "Počáteční IP adresa rozsahu." + +#: ../lib/modules/inetOrgPerson.inc:674 +msgid "The state where the user resides or works." +msgstr "Územní celek, do kterého uživatel spadá, či kde pracuje." + +#: ../templates/pdfedit/pdfpage.php:107 +msgid "The static text must contain at least one character." +msgstr "Stálý text musí obsahovat alespoň jeden znak." + +#: ../lib/modules/inetOrgPerson.inc:610 +msgid "The street name of the user's address." +msgstr "Název ulice adresy uživatele." + +#: ../help/help.inc:191 +msgid "The subject of all password mails." +msgstr "Předmět všech e-mailů s hesly." + +#: ../lib/modules/dhcp_settings.inc:273 +msgid "The subnet is already in use." +msgstr "Podsíť je již používána" + +#: ../lib/modules/dhcp_settings.inc:274 ../lib/modules/dhcp_settings.inc:275 +msgid "The subnet is invalid." +msgstr "Neplatná podsíť." + +#: ../lib/modules/dhcp_settings.inc:287 ../lib/modules/dhcp_settings.inc:288 +msgid "The subnet mask is invalid." +msgstr "Neplatná maska podsítě." + +#: ../lib/modules/dhcp_settings.inc:161 +msgid "The subnet mask of the network." +msgstr "Maska podsítě dané sítě." + +#: ../lib/modules/sudoRole.inc:80 ../lib/modules/sudoRole.inc:108 +msgid "The sudo commands are executed with these group memberships." +msgstr "Příkazy suda jsou spouštěny členy této skupiny." + +#: ../lib/modules/sudoRole.inc:76 ../lib/modules/sudoRole.inc:103 +msgid "The sudo commands may be run as these users (e.g. root)." +msgstr "Příkazy suda mohou běžet pod tímto uživatelem (např. root)." + +#: ../templates/3rdParty/pla/lib/import_functions.php:396 +msgid "The url attribute value should begin with file://." +msgstr "Hodnota atributu url by měla začínat \"file://\"." + +#: ../lib/modules/zarafaUser.inc:97 +msgid "The user account is non-active and login is disabled." +msgstr "Uživatelský účet není aktivní a uživatel se nemůže přihlásit." + +#: ../lib/modules/zarafaUser.inc:77 +msgid "The user will get warned when his mailbox reaches this limit." +msgstr "Uživatel bude varován, když velikost poštovní schránky překroči limit." + +#: ../lib/modules/asteriskAccount.inc:127 +msgid "The user's call groups." +msgstr "Skupiny volajících uživatele." + +#: ../lib/modules/inetOrgPerson.inc:642 +msgid "The user's email address." +msgstr "E-mailová adresa uživatele." + +#: ../lib/modules/inetOrgPerson.inc:638 +msgid "The user's fax number." +msgstr "Faxové číslo uživatele." + +#: ../lib/modules/inetOrgPerson.inc:634 +msgid "The user's mobile number." +msgstr "Mobil uživatele." + +#: ../lib/modules/inetOrgPerson.inc:698 +msgid "The user's organisation name." +msgstr "Název organizace uživatele." + +#: ../lib/modules/inetOrgPerson.inc:658 +msgid "The user's private telephone number." +msgstr "Soukromé telefonní číslo uživatele." + +#: ../lib/modules/inetOrgPerson.inc:630 +msgid "The user's telephone number." +msgstr "Telefonní číslo uživatele." + +#: ../lib/modules/inetOrgPerson.inc:702 +msgid "The user's unique employee number." +msgstr "Jedinečné číslo zaměstnance přiřazené uživateli." + +#: ../lib/modules/sambaSamAccount.inc:112 +msgid "" +"The value for the Samba 3 field \"User can/must change password\" needs to " +"be a number." +msgstr "" +"Hodnota Samba 3 pole \"Uživatel si může/musí změnit heslo\" musí být číslo." + +#: ../lib/modules/asteriskVoicemail.inc:213 +#: ../lib/modules/asteriskVoicemail.inc:214 +msgid "The voicemail context name is invalid." +msgstr "Neplatný název kontextu hlasové schránky." + +#: ../templates/3rdParty/pla/htdocs/create.php:42 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:36 +msgid "The were no attributes marked as an RDN attribute." +msgstr "Žádný atribut nebyl označen jako RDN." + +#: ../help/help.inc:196 +msgid "The wildcard for the new password is @@newPassword@@." +msgstr "Zástupný řetězec pro nové heslo je @@newPassword@@." + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:60 +#, php-format +msgid "There are %s members in group %s:" +msgstr "Skupina %s obsahuje %s členů:" + +#: ../lib/modules/posixGroup.inc:488 +msgid "There are still users who have this group as their primary group." +msgstr "Stále existují uživatelé, kteří mají tuto skupinu jako svojí primární." + +#: ../lib/modules/sambaGroupMapping.inc:440 +msgid "There can be only one group of this type." +msgstr "Může být pouze jedna skupina tohoto typu." + +#: ../lib/modules/asteriskAccount.inc:621 +msgid "There is already another user with this caller ID." +msgstr "Již existuje jiný uživatel s tímto ID volajícího." + +#: ../lib/modules/asteriskVoicemail.inc:202 +msgid "There is already another user with this mailbox name." +msgstr "Již existuje jiný uživatel s touto hlasovou schránkou." + +#: ../templates/massDoUpload.php:129 +msgid "There were errors while uploading:" +msgstr "Během nahrávání nastaly tyto chyby:" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:80 +#, php-format +msgid "There will be %s updates done with this mass update" +msgstr "Během hromadné změny bylo provedeno %s změn" + +#: ../lib/modules/posixGroup.inc:407 +msgid "" +"These are the minimum and maximum numbers to use for group IDs when creating " +"new group accounts. New group accounts will always get the highest number in " +"use plus one." +msgstr "" +"Je zadáno nejmenší a největší číslo, které může být použito jako ID skupiny " +"při jejím vytváření. Nová skupina vždy dostane nejvyšší použité číslo plus " +"jedna." + +#: ../lib/modules/posixAccount.inc:339 +msgid "" +"These are the minimum and maximum numbers to use for machine IDs when " +"creating new accounts for hosts. The range should be different from that of " +"users. New host accounts will always get the highest number in use plus one." +msgstr "" +"Toto jsou nejmenší a největší číslo, které může být použito jako ID stroje " +"při jeho vytváření. Rozsah by měl být odlišný od rozsahu ID uživatelů. Nový " +"stroj vždy dostane nejvyšší použité číslo plus jedna." + +#: ../lib/modules/posixAccount.inc:335 +msgid "" +"These are the minimum and maximum numbers to use for user IDs when creating " +"new user accounts. The range should be different from that of machines. New " +"user accounts will always get the highest number in use plus one." +msgstr "" +"Toto jsou nejmenší a největší číslo, které může být použito jako ID " +"uživatele při jeho vytváření. Rozsah by měl být odlišný od rozsahu ID " +"strojů. Nový uživatel vždy dostane nejvyšší použité číslo plus jedna." + +#: ../lib/modules/nisnetgroup.inc:86 ../lib/modules/nisnetgroup.inc:90 +msgid "" +"These entries specify the members of the netgroup. You can limit the set to " +"a host name, a user name, a domain name or any combination of them." +msgstr "" +"Tyto záznamy uřčují členy síťové skupiny. Můžeze množinu omezovat na název " +"stroje, uživatele či domény (či jejich kombinace)." + +#: ../lib/modules/asteriskExtension.inc:107 +msgid "" +"These options change the list of potential extension owners below. You can " +"select to show Asterisk accounts or all users. It is also possible to search " +"the tree suffix if you have users which are not in the standard user suffix." +msgstr "" +"Tyto volby mění níže uvedený seznam potencionálních vlastníků rozšíření. " +"Můžete vybrat zobrazní účtů Asterisku pro všechny uživatele. Je také možné " +"prohledávat sufix stromu, pokud máte uživatele mimo standardní sufix " +"uživatelů." + +#: ../lib/modules/posixAccount.inc:98 +msgid "" +"This GID number is invalid! Please provide either a number or a group name." +msgstr "Neplatné GID!. Prosím použijte číslo nebo název skupiny." + +#: ../help/help.inc:183 +msgid "" +"This HTML code will be placed on top of all self service pages. E.g. you can " +"use this to place your custom logo. Any HTML code is permitted." +msgstr "" +"HTML kód, který se zobrazí na začátku hlavní samoobslužné stránky. Například " +"jej můžete použít k umítění vlastního loga. Je povolen libovolný HTML kód." + +#: ../lib/modules/fixed_ip.inc:366 +msgid "This PC name already exists." +msgstr "Název počítače již existuje!" + +#: ../lib/modules/kolabUser.inc:276 +msgid "This account is marked for deletion." +msgstr "Tento účet je označen ke smazání." + +#: ../lib/modules/sambaSamAccount.inc:305 +msgid "" +"This allows you to define this account as a special user like administrator " +"or guest." +msgstr "" +"Toto vás opravňuje nastavit tento účet na nějaký speciální (např. " +"administrátor či host)." + +#: ../templates/3rdParty/pla/lib/PageRender.php:376 +msgid "This attribute is not defined in the LDAP schema" +msgstr "Tento atribut není definován ve schémau LDAPu" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1988 +msgid "This attribute is required" +msgstr "Tento atribut je povinný" + +#: ../templates/3rdParty/pla/lib/PageRender.php:458 +msgid "This attribute is required for the RDN." +msgstr "Tento atribut je povinný pro RDN." + +#: ../lib/modules/inetOrgPerson.inc:678 +msgid "This can be used to specify if the user has a car license." +msgstr "Toto může být použito k uvedení, zda uživatel vlastní řidičský průkaz." + +#: ../help/help.inc:125 +msgid "This changes the password of the selected profile." +msgstr "Toto změní heslo vybraného profilu." + +#: ../help/help.inc:127 +msgid "This changes the profile which is selected by default at login." +msgstr "Toto změní výchozí profil při přihlašování." + +#: ../templates/massBuildAccounts.php:150 +msgid "" +"This column is defined to include unique entries but duplicates were found:" +msgstr "Byly nalezeny duplicity ve sloupci, který je definován jako jedinečný:" + +#: ../lib/modules/customScripts.inc:111 +msgid "This custom script setting includes an invalid account type." +msgstr "Nastavení uživatelského skriptu obsahuje neplatný typ účtu." + +#: ../lib/modules/customScripts.inc:113 ../lib/modules/customScripts.inc:115 +msgid "This custom script setting includes an invalid action type." +msgstr "Nastavení uživatelského skriptu obsahuje neplatný typ akce." + +#: ../help/help.inc:92 +msgid "" +"This defines the language of the login window and sets this language as the " +"default language. Users can change the language at login." +msgstr "" +"Zde se definuje výchozí jazyk LAMu (včetně přihlašovací stránky, kde si " +"uživatel může změnit jazyk pro jedno sezení)." + +#: ../help/help.inc:109 +msgid "" +"This defines the rights for the home directories which are created by " +"lamdaemon." +msgstr "" +"Definice přístupových práv domovského adresáře vytvořeného lamdaemonem." + +#: ../lib/modules/asteriskExtension.inc:79 +msgid "" +"This defines what application Asterisk has to start for this user (e.g. SIP/" +"user1)." +msgstr "" +"Toto určuje, která aplikace Asterisku bude spuštěna pro tohoto uživatale " +"(např. SIP/uživatel1)." + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:85 +#, php-format +msgid "This deletion request also includes %s child entries." +msgstr "Tento požadavek na smazání také zahrnuje %s podzáznamů." + +#: ../lib/modules/device.inc:71 +msgid "This describes the location of the device." +msgstr "Toto popisuje místopisné umístění zařízení." + +#: ../lib/modules/ipHost.inc:67 +msgid "This describes the location of the host." +msgstr "Toto popisuje místopisné umístění stroje." + +#: ../lib/modules/inetOrgPerson.inc:670 +msgid "This describes the location of the user." +msgstr "Toto popisuje místopisné umístění uživatele." + +#: ../lib/lamPDF.inc:114 +msgid "This document was automatically created by LDAP Account Manager" +msgstr "Tento dokument byl automaticky vytvořen LDAP Account Managerem" + +#: ../help/help.inc:200 +msgid "" +"This email address will be set as reply-to address of all password mails." +msgstr "" +"Odesílatel u všech e-mailů pro nastavení hesla bude nastaven na tuto e-" +"mailovou adresu." + +#: ../help/help.inc:189 +msgid "" +"This email address will be set as sender address of all password mails. If " +"empty the system default (php.ini) will be used." +msgstr "" +"Odesílatel u všech e-mailů pro nastavení hesla bude nastaven na tuto e-" +"mailovou adresu. Pokud ponecháte prázdně, pak bude použit výchozí e-mail (z " +"php.ini)." + +#: ../lib/modules/passwordSelfReset.inc:78 +msgid "This enables the password self reset function." +msgstr "Toto povolí funkci resetu vlastního hesla." + +#: ../templates/3rdParty/pla/htdocs/compare.php:79 +msgid "This entry has no attributes" +msgstr "Tento záznam nemá žádné atributy" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:57 +#, php-format +msgid "This entry is the root of a sub-tree containing %s entries." +msgstr "Tento záznam je kořenem pro podstrom obsahující %s záznamů." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:34 +msgid "This field is required." +msgstr "Toto pole je povinné" + +#: ../lib/modules/posixAccount.inc:100 +msgid "This gecos value is invalid!" +msgstr "Neplatná hodnota Gecos!" + +#: ../lib/modules/ipHost.inc:63 +msgid "This is a comma separated list of IP addresses." +msgstr "Čárkou oddělený seznam IP adres." + +#: ../lib/modules/ieee802device.inc:66 +msgid "This is a comma separated list of MAC addresses." +msgstr "Čárkou oddělený seznam MAC adres." + +#: ../lib/modules/kolabUser.inc:136 +msgid "This is a comma separated list of delegates." +msgstr "Čárkou oddělený seznam zástupců." + +#: ../lib/modules/kolabUser.inc:144 +msgid "This is a comma separated list of eMail aliases." +msgstr "Čárkou oddělený seznam e-mailových aliasů." + +#: ../lib/modules/kolabUser.inc:128 +msgid "This is a comma separated list of invitation policies." +msgstr "Čárkou oddělený seznam pozvánkových politik." + +#: ../lib/modules/nisMailAlias.inc:76 +msgid "This is a comma separated list of recipients." +msgstr "Čárkou oddělený seznam příjemců." + +#: ../lib/modules/inetLocalMailRecipient.inc:70 +msgid "This is a comma separated list of the users public email addresses." +msgstr "Čárkou oddělený seznam veřejných e-mailových adres uživatele." + +#: ../help/help.inc:141 +msgid "" +"This is a list of IP addresses from hosts who may access LAM. You can use \"*" +"\" as wildcard (e.g. 192.168.0.*)." +msgstr "" +"Seznam IP adres strojů, které mají povolený přístup k LAMu. Můžete použít \"*" +"\" jako zástupný znak (např. 192.168.0.*)." + +#: ../lib/modules/groupOfNames.inc:77 +msgid "This is a list of members of this group." +msgstr "Toto je seznam členů této skupiny." + +#: ../lib/modules/groupOfNames.inc:81 +msgid "" +"This is a list of members of this group. Multiple members are separated by " +"semicolons." +msgstr "" +"Toto je seznam členů této skupiny. Jednotliví členové jsou oddělení " +"středníky." + +#: ../lib/modules/eduPerson.inc:89 +msgid "This is a list of nick names for this user." +msgstr "Toto je seznam přezdívek tohoto uživatele." + +#: ../help/help.inc:105 +msgid "" +"This is a list of the servers where the lamdaemon scripts are stored. LDAP " +"Account Manager will make a SSH connection to the servers with the user name " +"and password provided at login. Multiple servers are separated by " +"semicolons. You can append a descriptive name after a colon." +msgstr "" +"Seznam serverů, na kterých je nastaven skript lamdaemona. LDAP Account " +"Manager se pokusí s nimi spojit pomocí SSH za použití uživatelského jména a " +"hesla zadaného při přihlášení. Jednotlivé servery jsou odděleny středníky. " +"Popisný název můžete přidat za dvojtečku." + +#: ../help/help.inc:85 +msgid "" +"This is a list of valid DN entries of all users that are allowed to login to " +"LDAP Account Manager. Please enter one DN per line." +msgstr "" +"Seznam platných DN záznamů uživatelů, kteří jsou oprávnění se přihlásit do " +"LDAP Account Manageru. Prosím uvádějte vždy jedno DN na řádek." + +#: ../templates/3rdParty/pla/lib/PageRender.php:881 +msgid "This is a structural ObjectClass and cannot be removed." +msgstr "Toto je strukturální objectClass a nemůže být smazán." + +#: ../lib/modules/nisObject.inc:67 ../lib/modules/automount.inc:63 +msgid "This is an optional description for this entry." +msgstr "Toto je nepovinný popis tohoto záznamu." + +#: ../help/help.inc:171 +msgid "" +"This is needed to find the LDAP DNs of your user accounts. E.g. if you use " +"\"uid\" and your user inputs \"miller\" then LAM will search for an account " +"with uid=miller." +msgstr "" +"Toto je potřebné pro hledaní vašich uživatelských účtů v LDAPu. Např. " +"jestliže použijete \"uid\" a váš uživatel vloží \"novak\", pak LAM bude " +"hledat účet s uid=novak." + +#: ../lib/modules/zarafaDynamicGroup.inc:173 ../lib/modules/ipHost.inc:110 +#: ../lib/modules/device.inc:128 ../lib/modules/eduPerson.inc:218 +#: ../lib/modules/eduPerson.inc:220 ../lib/modules/zarafaAddressList.inc:145 +#: ../lib/modules/inetOrgPerson.inc:79 ../lib/modules/aliasEntry.inc:79 +msgid "This is not a valid DN!" +msgstr "Neplatné DN!" + +#: ../lib/modules/sambaSamAccount.inc:99 +msgid "This is not a valid RID number!" +msgstr "Neplatný RID!" + +#: ../lib/modules/sambaGroupMapping.inc:442 +msgid "This is not a valid Samba 3 group type!" +msgstr "Neplatný typ skupiny Samby 3!" + +#: ../lib/modules/eduPerson.inc:222 +msgid "This is not a valid list of DNs!" +msgstr "Neplatný seznam DN!" + +#: ../lib/modules/inetLocalMailRecipient.inc:66 +msgid "This is one of the users public email addresses." +msgstr "Toto je jedna z veřejných e-mail adres uživatele." + +#: ../lib/modules/nisMailAlias.inc:72 +msgid "This is one recipient for this alias." +msgstr "Toto je jeden z příjemců tohoto aliasu." + +#: ../lib/modules/asteriskAccount.inc:95 +msgid "" +"This is the ID of the user in the Asterisk database. It may contain digits " +"and letters (e.g. user1 or 200134)." +msgstr "" +"Toto je ID uživatele v databázi Asterisku. Může obsahovat číslice a písmena " +"(např. uzivatel1 nebo 200134)." + +#: ../lib/modules/freeRadius.inc:77 +msgid "This is the IP address for the user (e.g. 123.123.123.123)." +msgstr "IP adresa uživatele (např.: 123.123.123.123)" + +#: ../lib/modules/ipHost.inc:59 +msgid "" +"This is the IP address of the network card of the device (e.g. " +"123.123.123.123)." +msgstr "IP adresa síťové karty zařízení (např.: 123.123.123.123)" + +#: ../lib/modules/ipHost.inc:71 +msgid "This is the LDAP DN of the host's manager." +msgstr "LDAP DN správce stroje." + +#: ../lib/modules/inetOrgPerson.inc:606 +msgid "" +"This is the LDAP DN of the user's manager. Use this property to represent " +"hierarchies in your company." +msgstr "" +"Toto je LDAP DN správce uživatele. Použijte tuto vlastnost k zaznamenání " +"struktury vaší společnosti." + +#: ../lib/modules/ieee802device.inc:62 +msgid "" +"This is the MAC address of the network card of the device (e.g. 00:01:02:DE:" +"EF:18)." +msgstr "MAC adresa síťové karty zařízení (např.: 00:01:02:DE:EF:18)" + +#: ../lib/modules/sambaSamAccount.inc:302 +msgid "This is the SID of the user's primary Windows group." +msgstr "SID uživatelovy primární skupiny ve Windows." + +#: ../help/help.inc:94 +msgid "" +"This is the absolute path to an external script for setting quotas and " +"creating home directories." +msgstr "" +"Absolutní cesta k externímu skriptu pro nastavování kvót a vytváření " +"domovských adresářů." + +#: ../lib/modules/sambaSamAccount.inc:240 +msgid "This is the account's Windows password." +msgstr "Heslo do Windows tohoto účtu." + +#: ../lib/modules/sambaSamAccount.inc:237 +msgid "This is the account's full name on Windows systems." +msgstr "Plné jméno účtu používané ve Windows." + +#: ../lib/modules/ppolicyUser.inc:49 +msgid "This is the active password policy for this account." +msgstr "Aktivní politika hesel pro tento účet." + +#: ../lib/modules/passwordSelfReset.inc:70 +msgid "" +"This is the answer to the security question. It allows users to reset their " +"password." +msgstr "" +"Toto je odpověd na bezpečnostní otázku. Díky tomu je uživateli umožněn reset " +"hesla." + +#: ../lib/modules/sambaSamAccount.inc:324 +#: ../lib/modules/phpGroupwareUser.inc:83 ../lib/modules/shadowAccount.inc:185 +msgid "This is the date when the account will expire. Format: DD-MM-YYYY" +msgstr "Datum vypršení platnosti účtu. Formát: DD-MM-YYYY" + +#: ../lib/modules/shadowAccount.inc:193 +msgid "" +"This is the date when the user changed his password. If you specify a " +"maximum password age then you can force a password change here." +msgstr "" +"Toto je datum, kdy si uživatel změnil heslo. Změnou této položky můžete " +"vynutit změnu hesla." + +#: ../lib/modules/sambaGroupMapping.inc:357 +msgid "This is the group name which will be shown in Windows." +msgstr "Název skupiny zobrazovaný ve Windows." + +#: ../help/help.inc:149 +msgid "" +"This is the identifier for the relative DN value. It must be one of the " +"given allowed LDAP attributes (e.g. user accounts usually use \"uid\" while " +"groups use \"cn\")." +msgstr "" +"Identifikátor pro relativní hodnotu DN. Musí to být jeden z dostupných " +"atributů v LDAPu (např. uživatelské účty používají \"uid\" zatímco skupiny " +"používají \"cn\")." + +#: ../lib/modules/passwordSelfReset.inc:82 +msgid "" +"This is the label for the link to the password self reset. If empty \"Forgot " +"password?\" will be used." +msgstr "" +"Text odkazu pro reset vlastního hesla. Pokud je ponechán prázdný, " +"použije se \"Zapomenuté heslo?\"." + +#: ../help/help.inc:80 +msgid "" +"This is the list of attributes to show in the account list. The entries can " +"either be predefined values, \"#attribute\", or individual ones, \"attribute:" +"description\". Several entries are separated by semicolons." +msgstr "" +"Seznam atributů, které se zobraují v seznamu účtů. Položky mohou použít " +"předdefinované hodnoty \"#atribut\" nebo vlastní \"atribut:popis\". " +"Jednotlivé položky jsou oddělovány středníkem." + +#: ../lib/modules/asteriskAccount.inc:99 +msgid "" +"This is the machine id (e.g. IP address or host name) from which the user " +"can call/receive calls." +msgstr "" +"Toto je ID stroje (např. IP adresa nebo název stroje), se kterým může " +"uživatel komunikovat (volat/přijímat hovory)." + +#: ../lib/modules/inetLocalMailRecipient.inc:74 +msgid "This is the mail server for the user." +msgstr "Poštovní server uživatele." + +#: ../lib/modules/passwordSelfReset.inc:74 +msgid "This is the minimum length for answers to the security question." +msgstr "Minimální délka odpovědi na bezpečnostní otázku." + +#: ../lib/modules/nisnetgroup.inc:74 ../lib/modules/groupOfNames.inc:61 +msgid "This is the name of this group." +msgstr "Název této skupiny." + +#: ../lib/modules/posixAccount.inc:426 +msgid "" +"This is the natural name of the host. If empty, the host name will be used." +msgstr "" +"Přirozený název stroje. Pokud je ponechán prázdný, použije se název stroje." + +#: ../lib/modules/inetOrgPerson.inc:646 +msgid "" +"This is the natural name of the user. If empty, the first and last name is " +"used." +msgstr "" +"Přirozené jméno uživatele. Pokud je ponecháno prázdné, použije se křestní " +"jméno a příjmení." + +#: ../lib/modules/posixAccount.inc:404 +msgid "" +"This is the natural name of the user. If empty, the first and last name or " +"user name is used." +msgstr "" +"Přirozené jméno uživatele. Pokud je ponecháno prázdné, použije se křestní " +"jméno a příjmení nebo uživatelské jméno." + +#: ../lib/modules/sambaDomain.inc:115 +msgid "" +"This is the number of bad logon attempts (0 - 999) before the account is " +"deactivated. 0 means unlimited attempts." +msgstr "" +"Toto je povolený počet špatných pokusů o přihlášení (0 - 999), po kterém " +"bude účet deaktivován. 0 znamená neomezený počet pokusů." + +#: ../lib/modules/sambaDomain.inc:99 +msgid "" +"This is the number of passwords which are saved to prevent that users reuse " +"old passwords." +msgstr "" +"Počet hesel, která si systém pamatuje, aby nepovolil uživateli použití " +"starého hesla." + +#: ../help/help.inc:90 +msgid "" +"This is the number of rows to show in the account list. If more entries are " +"found the list will be split into several pages." +msgstr "" +"Počet řádků zobrazujících se v seznamu účtů. Jestliže počet záznamů přesáhne " +"počet řádků, bude seznam rozdělen na jednotlivé stránky." + +#: ../lib/modules/sambaSamAccount.inc:333 +msgid "This is the path to the user's home directory." +msgstr "Toto je cesta k domovskému adresáři uživatele." + +#: ../lib/modules/sambaGroupMapping.inc:365 +msgid "" +"This is the relative ID (similar to UID on Unix) for Windows accounts. If " +"you leave this empty LAM will calculate the RID from the UID. This can be " +"either a number or the name of a special group:" +msgstr "" +"Relativní ID (podobné UID na Unixu) pro Windows účty. LAM vypočítá RID z " +"UID, pokud toto pole necháte prázdné. Můžete sem zadat buď číslo nebo název " +"speciální skupiny:" + +#: ../lib/modules/sambaSamAccount.inc:308 +msgid "" +"This is the relative ID number for your Windows account. You can either " +"enter a number or one of these special accounts: " +msgstr "" +"Relativní ID pro Windows účty. Můžete sem zadat buď číslo nebo název jednoho " +"z těchto speciálních účtů: " + +#: ../lib/modules/sambaSamAccount.inc:312 +msgid "" +"This is the relative ID number for your host account. If you leave this " +"empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" +"Relativní ID pro Windows účty strojů. Pokud toto pole necháte prázdné, LAM " +"jej vypočítá: uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../help/help.inc:55 +msgid "" +"This is the server address of your LDAP server. Use ldap:// for unencrypted " +"LDAP connections or TLS encrypted connections. LDAP+SSL (LDAPS) encrypted " +"connections are specified with ldaps://. The port value is optional." +msgstr "" +"URI adresa vašeho LDAP serveru. Použijte ldap:// pro standardní LDAP nebo " +"TLS šifrované připojení a ldaps:// pro šifrované (LDAP+SSL). Port je " +"volitelný." + +#: ../help/help.inc:74 +msgid "This is the suffix for the LDAP tree viewer." +msgstr "Sufix pro prohlížeč LDAP stromu." + +#: ../help/help.inc:68 +msgid "" +"This is the suffix of the LDAP tree from where to search for LDAP entries. " +"Only entries in this subtree will be displayed in the account list. When " +"creating a new accont this will be the DN where it is saved." +msgstr "" +"Sufix LDAP stromu, odkud se hledají záznamy LDAPu. V seznamu účtů se zobrazí " +"pouze záznamy z tohoto podstromu. Nově vytvářené účty jsou ukládány taktéž " +"do tohoto podstromu." + +#: ../lib/modules/inetLocalMailRecipient.inc:62 +msgid "This is the target email address for the user's mails." +msgstr "Toto je cílová e-mailová adresa pro uživatelovy e-maily." + +#: ../lib/modules/customScripts.inc:46 ../lib/modules/uidObject.inc:53 +#: ../lib/modules/aliasEntry.inc:55 +msgid "This is the target of this alias entry." +msgstr "Toto je cíl alias záznamu." + +#: ../lib/modules/sambaDomain.inc:127 +msgid "" +"This is the time (in minutes) for which the user may not log in after the " +"account was locked. -1 means forever." +msgstr "" +"Doba (v minutách) po zablokování účtu, běhěm které se uživatel nesmí " +"přihlásit. -1 znamená navždy." + +#: ../help/help.inc:135 +msgid "" +"This is the time (in minutes) of inactivity after which a user is " +"automatically logged off." +msgstr "" +"Doba (v minutách) neaktivity, po které je uživatel automaticky odhlášen z " +"LAMu." + +#: ../help/help.inc:98 +msgid "" +"This is the time in minutes which LAM caches its LDAP searches. Shorter " +"times will stress LDAP more but decrease the possibility that changes are " +"not identified." +msgstr "" +"Doba v minutách, po kterou si LAM pamatuje LDAP vyhledávání. Kratší čas " +"zatěžuje LDAP server zatímco snižuje možnost neodhalených změn." + +#: ../lib/modules/kolabUser.inc:156 +msgid "" +"This is the time limit (in days) for other users who want to check future " +"appointments. If you leave this blank the default (60 days) will be set." +msgstr "" +"Časový limit (ve dnech) pro uživatele, kteří chtějí kontrolovat budoucí " +"setkání. Dosadí se výchozí hodnota (60 dni), pokud necháte pole prázdné." + +#: ../lib/modules/sambaSamAccount.inc:327 +msgid "" +"This is the time zone of your Samba server. LAM needs this information to " +"display the logon hours correctly." +msgstr "" +"Časová zóna Samba serveru. LAM potřebuje tuto informaci pro správné " +"zobrazování přihlašovacích hodin." + +#: ../lib/modules/sambaSamAccount.inc:299 +msgid "This is the user's primary Windows group." +msgstr "Primární uživatelova skupina ve Windows." + +#: ../lib/modules/asteriskAccount.inc:147 +msgid "" +"This is typically used to allow incoming calls (e.g. from FWD) while having " +"a type=friend entry defined with username and password." +msgstr "" +"Toto je typicky použito pro povolení příchozích hovorů (např. z FWD) dokud " +"je definován záznam typ=Přátelé s uživatelkým jménem a heslem." + +#: ../lib/modules/zarafaUser.inc:101 +msgid "This is used to mark this account as resource." +msgstr "Toto je použito pro označení účtu jako zdroje." + +#: ../lib/modules/posixAccount.inc:101 +msgid "This login shell is invalid!" +msgstr "Neplatný přihlašovací shell!" + +#: ../lib/modules/inetLocalMailRecipient.inc:221 +msgid "This mail address is already in use:" +msgstr "Tato e-mailová adresa je již používána" + +#: ../lib/modules/imapAccess.inc:97 +msgid "This mailbox will be created/deleted." +msgstr "Tato poštovní schránka bude vytvořena/smazána." + +#: ../templates/schema/schema.php:348 +msgid "This object class is obsolete." +msgstr "Zastaralá třída objektu." + +#: ../lib/modules/imapAccess.inc:76 +msgid "" +"This option allows you to disable the certificate check of your IMAP server " +"certificate. Disabling the certificate check is not recommended." +msgstr "" +"Tato volba vám umožní vypnout kontrolu certifikátu IMAP serveru. Není " +"doporučeno vypnout kontrolu certifikátu." + +#: ../lib/modules/sambaSamAccount.inc:318 +msgid "This option defines the allowed logon hours for this account." +msgstr "Nastavení povolených hodin k přihlášení do Windows pro tento účet." + +#: ../lib/modules/sambaSamAccount.inc:321 +msgid "" +"This option defines the allowed logon hours for this account. The format is " +"the same as for the LDAP attribute. The 24*7 hours are represented as 168 " +"bit which are saved as 21 hex (21*8 = 168) values. The first bit represents " +"Sunday 0:00 - 0:59 in GMT." +msgstr "" +"Nastavení povolených hodin k přihlášení do Windows pro tento účet. Formát je " +"stejný jako pro atribut LDAPu. Týdenní rozvrh (24*7 hodin) je reprezentován " +"jako 168 bitů, které jsou uloženy jako 21 oktálových (21*8) hodnot. První " +"bit uvádí čas Neděle 0:00 - 0:59 (v GMT)." + +#: ../lib/modules/asteriskExtension.inc:197 +msgid "This pair of extension name and priority already exists." +msgstr "Tato dvojice názvu rozšíření a priority již existuje." + +#: ../lib/modules/sambaSamAccount.inc:342 +msgid "This program is run after the login." +msgstr "Tento program se spustí po přihlášení." + +#: ../lib/modules/sambaSamAccount.inc:366 +msgid "This specifies the reconnect policy." +msgstr "Toto určuje politiku znovu připojení." + +#: ../lib/modules/sambaSamAccount.inc:363 +msgid "This specifies what to do when the client connection is broken." +msgstr "Toto určuje, co se stane, když se přeruší spojení s klientem." + +#: ../help/help.inc:175 +msgid "" +"This text is displayed on top of the self service login page. You can also " +"input HTML code here." +msgstr "" +"Text, který se zobrazí na začátku samoobslužné přihlašovací stránky. Můžete " +"zde také zadat HTML kód." + +#: ../help/help.inc:177 +msgid "" +"This text is displayed on top of the self service main page. You can also " +"input HTML code here." +msgstr "" +"Text, který se zobrazí na začátku hlavní samoobslužné stránky. Můžete zde " +"také zadat HTML kód." + +#: ../help/help.inc:173 +msgid "" +"This text should shortly describe your selected LDAP search attribute (e.g. " +"email or user name)." +msgstr "" +"Krátký popis vámi vybraného vyhledávacího atributu v LDAPu (např. e-mail či " +"uživatelské jméno)." + +#: ../lib/tools/pdfEdit.inc:53 +msgid "This tool allows you to customize the PDF pages." +msgstr "Nástroj umožňující uživatelské změny PDF výstupů." + +#: ../templates/lists/userlink.php:61 ../templates/lists/changePassword.php:44 +msgid "This user was not found!" +msgstr "Uživatel nebyl nalezen!" + +#: ../lib/modules/zarafaUser.inc:392 +msgid "This value can only be \"Room\" or \"Equipment\"." +msgstr "Hodnota může být pouze \"Místnost\" nebo \"Vybavení\"." + +#: ../lib/modules/zarafaDynamicGroup.inc:178 +#: ../lib/modules/zarafaDynamicGroup.inc:179 +#: ../lib/modules/zarafaGroup.inc:141 ../lib/modules/zarafaGroup.inc:142 +#: ../lib/modules/zarafaGroup.inc:143 ../lib/modules/zarafaAddressList.inc:146 +#: ../lib/modules/zarafaAddressList.inc:147 +#: ../lib/modules/sambaSamAccount.inc:102 +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:105 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/zarafaUser.inc:399 ../lib/modules/zarafaUser.inc:401 +#: ../lib/modules/zarafaUser.inc:402 ../lib/modules/zarafaUser.inc:403 +#: ../lib/modules/zarafaUser.inc:404 ../lib/modules/zarafaUser.inc:405 +#: ../lib/modules/ppolicyUser.inc:86 ../lib/modules/zarafaServer.inc:126 +msgid "This value can only be \"true\" or \"false\"." +msgstr "Hodnota může být pouze \"true\" nebo \"false\"." + +#: ../lib/modules/zarafaUser.inc:400 +msgid "This value can only be \"true\", \"false\" or \"system\"." +msgstr "Hodnota může být pouze \"true\", \"false\" nebo \"system\"." + +#: ../lib/modules/posixGroup.inc:487 +msgid "This value must be a list of user names separated by semicolons." +msgstr "Zde může být pouze seznam uživatelů oddělený středníkem." + +#: ../help/help.inc:204 +msgid "This will create a new organisational unit under the selected one." +msgstr "Vytvoření nové organizační jednotky (OU) pod vybranou OU." + +#: ../lib/modules/posixAccount.inc:367 +msgid "This will create the user's home directory on the specified server." +msgstr "Vytvoření domovského adresáře uživatele na zadaném serveru." + +#: ../help/help.inc:206 +msgid "" +"This will delete the selected organisational unit. The OU has to be empty." +msgstr "Smaže vybranou organizační jednotku, která musí být prázdná." + +#: ../help/help.inc:123 +msgid "This will delete the selected profile." +msgstr "Smaže vybraný profil." + +#: ../lib/modules/eduPerson.inc:130 ../lib/modules/sambaSamAccount.inc:378 +#: ../lib/modules/zarafaUser.inc:121 ../lib/modules/phpGroupwareUser.inc:87 +#: ../lib/modules/shadowAccount.inc:189 +#: ../lib/modules/authorizedServiceObject.inc:82 +#: ../lib/modules/hostObject.inc:77 +msgid "This will enable the extension automatically if this profile is loaded." +msgstr "Automaticky povolí rozšíření při načtení tohoto profilu." + +#: ../lib/modules/sambaSamAccount.inc:243 +msgid "This will reset the host's password to a default value." +msgstr "Nastaví heslo stroje na výchozí hodnotu." + +#: ../templates/lists/changePassword.php:215 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail." +msgstr "" +"Nastavení náhodného hesla a jeho zobrazení na obrazovce či jeho zaslání " +"uživateli e-mailem." + +#: ../help/help.inc:187 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail. Please edit your LAM server profile to setup the mail " +"settings." +msgstr "" +"Nastavení náhodného hesla a jeho zobrazení na obrazovce či jeho zaslání " +"uživateli e-mailem. Prosím, upravte váš profil LAM server tak, že zadáte " +"nastavení e-mailu." + +#: ../lib/modules/kolabUser.inc:164 +msgid "" +"This will set a special flag on the account which tells Kolabd to remove it. " +"Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes)." +msgstr "" +"Nastavení speciálních příznaků účtu, které řeknou Kolabd, aby účet smazal. " +"Toto je používané k čistému mazání Kolab účtů (např. včetně smazání " +"poštovních schránek)." + +#: ../lib/modules/sambaSamAccount.inc:1287 +msgid "Thursday" +msgstr "Čtvrtek" + +#: ../lib/modules/sambaSamAccount.inc:1309 +msgid "Time" +msgstr "Čas" + +#: ../lib/modules/sambaSamAccount.inc:347 +msgid "Time limit" +msgstr "Časový limit" + +#: ../lib/modules/sambaSamAccount.inc:326 +#: ../lib/modules/sambaSamAccount.inc:554 +msgid "Time zone" +msgstr "Časová zóna" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:45 +msgid "To" +msgstr "To ??" + +#: ../lib/modules/posixAccount.inc:396 +msgid "" +"To disable login use /bin/false. The list of shells is read from lam/config/" +"shells" +msgstr "" +"Použijte /bin/false pro znemožnění příhlášení. Seznam shellů se bere z " +"config/shells¨." + +#: ../lib/modules/sambaSamAccount.inc:548 +msgid "Tokyo, Seoul, Osaka, Yakutsk" +msgstr "Tokio, Soul, Osaka, Jakutsk" + +#: ../templates/tools.php:63 ../templates/main_header.php:129 +msgid "Tools" +msgstr "Nástroje" + +#: ../templates/serverInfo.php:355 +msgid "Total" +msgstr "Celkem" + +#: ../templates/serverInfo.php:240 ../templates/serverInfo.php:245 +msgid "Total connections" +msgstr "Celkový počet spojení" + +#: ../templates/3rdParty/pla/lib/export_functions.php:202 +msgid "Total entries" +msgstr "Celkový počet záznamů" + +#: ../lib/types/user.inc:339 +msgid "Translate GID number to group name" +msgstr "Přeložit GID na názvy skupin" + +#: ../templates/config/confmain.php:230 ../help/help.inc:73 +msgid "Tree suffix" +msgstr "Sufix stromu" + +#: ../templates/main_header.php:159 +msgid "Tree view" +msgstr "Prohlížení stromu" + +#: ../templates/config/confmain.php:458 +msgid "TreeSuffix is invalid!" +msgstr "Neplatný TreeSuffix!" + +#: ../lib/modules/sambaSamAccount.inc:1287 +msgid "Tuesday" +msgstr "Úterý" + +#: ../templates/selfService/profManage.php:175 +#: ../templates/schema/schema.php:346 ../lib/modules/zarafaUser.inc:100 +#: ../lib/modules/zarafaUser.inc:166 ../lib/modules/zarafaUser.inc:245 +#: ../lib/modules/zarafaUser.inc:360 ../lib/modules/zarafaUser.inc:513 +#: ../lib/modules/zarafaUser.inc:1204 +msgid "Type" +msgstr "Typ" + +#: ../lib/modules/posixAccount.inc:86 +msgid "UID" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:86 +msgid "UID has changed. Do you want to change home directory?" +msgstr "UID se změnilo. Chcete změnit domovský adresář?" + +#: ../lib/modules/posixAccount.inc:81 +msgid "" +"UID must be a number. It has to be inside the UID range which is defined in " +"your configuration profile." +msgstr "UID musí být číslo z rozsahu specifikového ve vašem profilu." + +#: ../lib/types/host.inc:95 ../lib/types/user.inc:92 +#: ../lib/modules/posixAccount.inc:82 ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:292 ../lib/modules/posixAccount.inc:314 +#: ../lib/modules/posixAccount.inc:334 ../lib/modules/posixAccount.inc:338 +#: ../lib/modules/posixAccount.inc:346 ../lib/modules/posixAccount.inc:1092 +#: ../lib/modules/posixAccount.inc:1462 +msgid "UID number" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:82 +#, php-format +msgid "" +"UID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -uid %s -exec chown %s {} \\;'" +msgstr "" +"UID se změnilo. Pro zachování vlastnictví souborů musíte spustit následující " +"příkaz jako root: 'find / -uid %s -exec chown %s {} \\;'" + +#: ../lib/modules/posixAccount.inc:73 +msgid "UID ranges for Unix accounts" +msgstr "Rozsah UID pro Unixové účty." + +#: ../lib/modules/sambaSamAccount.inc:284 +msgid "" +"UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced " +"with user and group name." +msgstr "" +"UNC cesta (\\\\server\\sdílení) domovského adresáře. $user a $group nahradí " +"uživatelské jméno nebo název skupiny." + +#: ../lib/modules/eduPerson.inc:106 ../lib/modules/eduPerson.inc:110 +msgid "" +"URI (either URN or URL) that indicates a set of rights to specific resources." +msgstr "URI (buď URN nebo URL), které uvádí práva k určitému zdroji." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1883 +msgid "URL" +msgstr "URL" + +#: ../lib/modules/imapAccess.inc:154 +msgid "Unable to change ACL on IMAP server for mailbox deletion." +msgstr "Nelze změnit ACL na IMAP serveru při mazání poštovní schránky." + +#: ../templates/selfService/selfServiceMain.php:269 +msgid "" +"Unable to change your account. Maybe you do not have enough rights to change " +"the settings." +msgstr "Nelze změnit váš účet. Možná k tomu nemáte dostatečná oprávnění." + +#: ../templates/tests/lamdaemonTest.php:253 ../lib/lamdaemon.inc:76 +#: ../lib/lamdaemon.inc:81 +msgid "Unable to connect to remote server!" +msgstr "Nelze se připojit k vzdálenému serveru!" + +#: ../lib/modules/imapAccess.inc:156 +msgid "Unable to create mailbox on IMAP server." +msgstr "Nelze vytvořit poštovní schránku na IMAP serveru." + +#: ../templates/ou_edit.php:78 +msgid "Unable to create new OU!" +msgstr "Nelze vytvořit nové OU!" + +#: ../lib/types/automountType.inc:272 +msgid "Unable to create new automount map." +msgstr "Nelze vytvořit novou mapu automountu." + +#: ../templates/config/profmanage.php:122 +#: ../templates/selfService/profManage.php:101 +msgid "Unable to create new profile!" +msgstr "Nelze vytvořit nový profil!" + +#: ../templates/ou_edit.php:95 +msgid "Unable to delete OU!" +msgstr "Nelze smazat OU!" + +#: ../templates/pdfedit/pdfmain.php:89 +msgid "Unable to delete PDF structure!" +msgstr "Nelze smazat PDF struktura!" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:25 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:57 +msgid "Unable to delete entry, it does not exist" +msgstr "Nelze smazat záznam, jelikož neexistuje" + +#: ../lib/modules/imapAccess.inc:155 +msgid "Unable to delete mailbox from IMAP server." +msgstr "Nelze smazat poštovní schránku na IMAP serveru." + +#: ../templates/config/profmanage.php:150 +#: ../templates/selfService/profManage.php:129 +#: ../templates/profedit/profilemain.php:99 +msgid "Unable to delete profile!" +msgstr "Nelze smazat profil!" + +#: ../lib/modules/posixAccount.inc:1666 ../lib/modules/posixAccount.inc:1675 +#: ../lib/modules/posixAccount.inc:1930 ../lib/modules/nisnetgroup.inc:535 +msgid "Unable to find group in LDAP." +msgstr "Nelze najít skupinu v LDAPu." + +#: ../lib/modules/passwordSelfReset.inc:629 +#: ../lib/modules/passwordSelfReset.inc:733 +msgid "Unable to find password security question for this account." +msgstr "Nelze najít bezpečnostní otázku pro reset hesla tohoto účtu." + +#: ../templates/login.php:500 ../templates/login.php:506 +msgid "Unable to find the user name in LDAP." +msgstr "Nelze najít uživatelské jméno v LDAPu." + +#: ../lib/modules.inc:1378 ../lib/modules.inc:1382 +msgid "Unable to load LDAP entry:" +msgstr "Nelze načít záznam LDAPu:" + +#: ../lib/profiles.inc:91 ../lib/profiles.inc:95 ../lib/selfService.inc:175 +#: ../lib/selfService.inc:179 +msgid "Unable to load profile!" +msgstr "Nelze načít profil!" + +#: ../lib/modules/imapAccess.inc:157 +msgid "Unable to locate mailbox on IMAP." +msgstr "Nelze nalézt poštovní schránku na IMAP serveru." + +#: ../templates/3rdParty/pla/lib/import_functions.php:388 +#: ../templates/3rdParty/pla/lib/import_functions.php:393 +msgid "Unable to read file." +msgstr "Nelze načít soubor." + +#: ../templates/lists/changePassword.php:488 +msgid "Unable to read sambaSID attribute." +msgstr "Nelze číst atribut sambaSID!" + +#: ../lib/modules/passwordSelfReset.inc:892 +#: ../lib/modules/passwordSelfReset.inc:896 +#: ../lib/modules/passwordSelfReset.inc:905 +msgid "Unable to reset password." +msgstr "Nelze resetovat heslo." + +#: ../templates/3rdParty/pla/lib/functions.php:1945 +msgid "Unable to retrieve image" +msgstr "Nelze získat obrázek" + +#: ../templates/tests/schemaTest.php:59 ../templates/schema/schema.php:91 +#: ../templates/schema/schema.php:109 ../templates/schema/schema.php:270 +#: ../templates/schema/schema.php:304 +msgid "Unable to retrieve schema!" +msgstr "Nelze získat schéma!" + +#: ../templates/selfService/adminMain.php:158 +#: ../templates/profedit/profilepage.php:113 +msgid "Unable to save profile!" +msgstr "Nelze uložit profil!" + +#: ../templates/lists/changePassword.php:440 +msgid "Unable to send mail!" +msgstr "Nelze odeslat e-mail!" + +#: ../templates/lists/changePassword.php:483 +#: ../templates/lists/changePassword.php:500 +msgid "" +"Unable to sync the time when the user can/must change his password because " +"no domain was found." +msgstr "" +"Nelze synchronizovat čas kdy si uživatel může/musí změnit heslo, neboť " +"nebyla nalezena doména." + +#: ../templates/serverInfo.php:291 +msgid "Unbind" +msgstr "Rozvázat" + +#: ../lib/modules/posixGroup.inc:290 ../lib/modules/posixAccount.inc:134 +msgid "Unix" +msgstr "Unix" + +#: ../templates/tests/lamdaemonTest.php:206 +msgid "Unix account" +msgstr "Unixový účet" + +#: ../lib/modules/posixAccount.inc:1201 +msgid "Unix groups" +msgstr "Unixové skupiny" + +#: ../lib/modules/kolabUser.inc:238 +#, php-format +msgid "Unknown delegate address: %s" +msgstr "Neznámá adresa zástupce: %s" + +#: ../templates/3rdParty/pla/lib/import_functions.php:233 +msgid "Unkown change type" +msgstr "Neznámy typ změny" + +#: ../templates/lists/changePassword.php:152 +msgid "Unlock Samba account" +msgstr "Odemknout Samba 3 účet" + +#: ../lib/modules/ppolicyUser.inc:135 +msgid "Unlock account" +msgstr "Odemknout účet" + +#: ../lib/modules/posixGroup.inc:200 ../lib/modules/posixAccount.inc:1156 +#: ../lib/modules/inetOrgPerson.inc:1256 +msgid "Unlock password" +msgstr "Odemknout heslo" + +#: ../templates/masscreate.php:98 ../templates/config/confmodules.php:367 +msgid "Unsolved dependency:" +msgstr "Nevyřešené závislosti:" + +#: ../templates/pdfedit/pdfpage.php:457 +msgid "Up" +msgstr "Nahoru" + +#: ../templates/lists/changePassword.php:155 +msgid "Update Samba password timestamps" +msgstr "Aktualizovat časové razítko hesla Samby." + +#: ../lib/modules/sambaSamAccount.inc:231 +msgid "Update attribute \"sambaPwdLastSet\" on password change" +msgstr "Aktualizovat atribut \"sambaPwdLastSet\" při změně hesla" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1440 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:194 +msgid "Update object" +msgstr "Upravit objekt" + +#: ../lib/modules/imapAccess.inc:295 ../lib/modules/imapAccess.inc:304 +msgid "Update quota" +msgstr "Upravit kvótu" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:165 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:129 +msgid "Update values" +msgstr "Upravit hodnoty" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:118 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:118 +msgid "Updating object" +msgstr "Upravování objektu" + +#: ../templates/massBuildAccounts.php:199 +msgid "Upload accounts to LDAP" +msgstr "Načíst účty do LDAPu" + +#: ../templates/masscreate.php:241 +msgid "Upload file and create accounts" +msgstr "Načíst soubor a vytvořit účty" + +#: ../templates/massDoUpload.php:125 ../lib/lists.inc:925 +msgid "Upload has finished" +msgstr "Načítání skončilo." + +#: ../lib/modules.inc:476 +#, php-format +msgid "Upload was stopped after errors in %s module!" +msgstr "Načítání bylo zastaveno po chybách v modulu %s!" + +#: ../templates/serverInfo.php:220 +msgid "Uptime" +msgstr "Doba provozu" + +#: ../templates/schema/schema.php:207 +msgid "Usage" +msgstr "Použití" + +#: ../lib/modules/authorizedServiceObject.inc:74 +#: ../lib/modules/authorizedServiceObject.inc:78 +msgid "Use * for all services." +msgstr "Použijte * pro všechny skupiny." + +#: ../lib/modules/sambaSamAccount.inc:245 +#: ../lib/modules/sambaSamAccount.inc:248 +#: ../lib/modules/sambaSamAccount.inc:406 +msgid "Use Unix password" +msgstr "Použít Unixové heslo" + +#: ../lib/modules/sambaSamAccount.inc:251 +#: ../lib/modules/sambaSamAccount.inc:254 +#: ../lib/modules/sambaSamAccount.inc:414 +#: ../lib/modules/sambaSamAccount.inc:1076 +#: ../lib/modules/sambaSamAccount.inc:1490 +msgid "Use no password" +msgstr "Použít prázdné heslo" + +#: ../lib/modules/asteriskAccount.inc:179 +msgid "Use this to hide the caller ID." +msgstr "Toto použijte pro skrytí ID volajícího." + +#: ../lib/modules/zarafaDynamicGroup.inc:73 ../lib/modules/zarafaGroup.inc:76 +#: ../lib/modules/zarafaAddressList.inc:61 ../lib/modules/zarafaUser.inc:65 +msgid "Use this to hide this entry from the address book." +msgstr "Toto použijte pro skrytí tohoto záznamu v adresáři." + +#: ../lib/modules/quota.inc:101 ../lib/modules/quota.inc:387 +msgid "Used blocks" +msgstr "Použité bloky" + +#: ../lib/modules/quota.inc:102 +msgid "Used blocks. 1000 blocks are usually 1MB" +msgstr "Použité bloky. 1000 bloků je obvykle 1MB." + +#: ../templates/schema/schema.php:266 +msgid "Used by attributes" +msgstr "Využito atributy" + +#: ../templates/schema/schema.php:235 +msgid "Used by object classes" +msgstr "Využito třídami objektů" + +#: ../lib/modules/sambaDomain.inc:91 +msgid "Used for calculating RIDs from UID/GID. Do not change if unsure." +msgstr "Používáno pro výpočet RIDů z UID/GID. Neměňte, pokud si nejste jistí." + +#: ../lib/modules/asteriskAccount.inc:211 +msgid "Used for registration context." +msgstr "Použito pro kontext registrace." + +#: ../lib/modules/quota.inc:123 ../lib/modules/quota.inc:391 +msgid "Used inodes" +msgstr "Použité inody" + +#: ../lib/modules/quota.inc:124 +msgid "Used inodes (files)" +msgstr "Použité inody (soubory)" + +#: ../lib/modules/asteriskAccount.inc:183 +msgid "Used to automatically hangup the call if no RTP traffic is received." +msgstr "" +"Použito pro automatické ukončení hovoru, jestliže se nepřijímá RTP provoz." + +#: ../lib/modules/asteriskAccount.inc:159 +#: ../lib/modules/asteriskAccount.inc:163 +msgid "" +"Used to limit SIP traffic to and from this peer to a certain IP or network." +msgstr "" +"Použito pro limit SIP provozu od a k tomuto peeru a některých IP adres nebo " +"sítí." + +#: ../lib/modules/asteriskAccount.inc:175 +msgid "Used to regularly check that a device is still online." +msgstr "Použito pro pravidelnou kontrolu, že je zařízení stále v provozu." + +#: ../lib/modules/sambaGroupMapping.inc:69 ../lib/modules/nisnetgroup.inc:210 +#: ../lib/modules/nisnetgroup.inc:583 +msgid "User" +msgstr "Uživatel" + +#: ../lib/types/user.inc:91 +msgid "User ID" +msgstr "ID uživatele" + +#: ../lib/types/user.inc:62 +msgid "User accounts (e.g. Unix, Samba and Kolab)" +msgstr "Uživatelské účty (např. Unix, Samba a Kolab)" + +#: ../lib/modules/asteriskAccount.inc:118 +#: ../lib/modules/asteriskAccount.inc:249 +#: ../lib/modules/asteriskAccount.inc:332 +#: ../lib/modules/asteriskAccount.inc:404 +#: ../lib/modules/asteriskAccount.inc:694 +#: ../lib/modules/asteriskAccount.inc:1196 +msgid "User agent" +msgstr "Uživatelský agent" + +#: ../lib/modules/sambaSamAccount.inc:275 +#: ../lib/modules/sambaSamAccount.inc:1090 +msgid "User can change password" +msgstr "Uživatel může změnit heslo" + +#: ../lib/modules/posixAccount.inc:376 +msgid "User description. If left empty first and last name will be used." +msgstr "" +"Popis uživatele. Bude použito křestní jméno a příjmení, pokud toto pole " +"necháte prázdné." + +#: ../lib/modules/inetOrgPerson.inc:586 +msgid "User description. If left empty sur- and give name will be used." +msgstr "" +"Popis uživatele. Bude použito křestní jméno a příjmení, pokud toto pole " +"necháte prázdné." + +#: ../lib/modules/account.inc:99 +msgid "User description. If left empty user name will be used." +msgstr "" +"Popis uživatele. Bude použito uživatelské jméno, pokud toto pole necháte " +"prázdné." + +#: ../templates/schema/schema.php:202 +msgid "User modification" +msgstr "Změny uživatele" + +#: ../lib/modules/sambaSamAccount.inc:277 +#: ../lib/modules/sambaSamAccount.inc:1096 +msgid "User must change password" +msgstr "Uživatel si musí změnit heslo" + +#: ../templates/lists/changePassword.php:187 ../templates/login.php:272 +#: ../lib/types/alias.inc:91 ../lib/types/user.inc:94 +#: ../lib/modules/account.inc:78 ../lib/modules/account.inc:94 +#: ../lib/modules/account.inc:117 ../lib/modules/account.inc:119 +#: ../lib/modules/account.inc:120 ../lib/modules/account.inc:207 +#: ../lib/modules/account.inc:233 ../lib/modules/account.inc:257 +#: ../lib/modules/uidObject.inc:38 ../lib/modules/uidObject.inc:60 +#: ../lib/modules/uidObject.inc:69 ../lib/modules/uidObject.inc:78 +#: ../lib/modules/uidObject.inc:93 ../lib/modules/uidObject.inc:155 +#: ../lib/modules/posixAccount.inc:87 ../lib/modules/posixAccount.inc:88 +#: ../lib/modules/posixAccount.inc:91 ../lib/modules/posixAccount.inc:196 +#: ../lib/modules/posixAccount.inc:313 ../lib/modules/posixAccount.inc:371 +#: ../lib/modules/posixAccount.inc:1083 ../lib/modules/posixAccount.inc:1460 +#: ../lib/modules/nisnetgroup.inc:142 ../lib/modules/nisnetgroup.inc:472 +#: ../lib/modules/inetOrgPerson.inc:76 ../lib/modules/inetOrgPerson.inc:578 +#: ../lib/modules/inetOrgPerson.inc:649 ../lib/modules/inetOrgPerson.inc:1033 +#: ../lib/modules/inetOrgPerson.inc:1443 ../lib/modules/inetOrgPerson.inc:1569 +#: ../lib/modules/passwordSelfReset.inc:588 +#: ../lib/modules/passwordSelfReset.inc:657 +msgid "User name" +msgstr "Uživatelské jméno" + +#: ../lib/modules/posixAccount.inc:95 ../lib/modules/inetOrgPerson.inc:78 +msgid "User name already exists!" +msgstr "Dané uživatelské jméno již existuje!" + +#: ../lib/modules/imapAccess.inc:93 ../lib/modules/imapAccess.inc:121 +msgid "User name attribute" +msgstr "Atribut uživatelského jména" + +#: ../lib/modules/account.inc:117 ../lib/modules/account.inc:118 +#: ../lib/modules/account.inc:120 ../lib/modules/uidObject.inc:78 +#: ../lib/modules/posixAccount.inc:88 ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/zarafaUser.inc:397 ../lib/modules/zarafaUser.inc:398 +#: ../lib/modules/nisnetgroup.inc:142 ../lib/modules/inetOrgPerson.inc:76 +#: ../lib/modules/inetOrgPerson.inc:77 +#: ../lib/modules/passwordSelfReset.inc:611 +#: ../lib/modules/passwordSelfReset.inc:715 +msgid "" +"User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Uživatelské jméno obsahuje neplatné znaky. Přípustné znaky jsou: a-z, A-Z, " +"0-9 a .-_!" + +#: ../lib/modules/posixAccount.inc:91 +msgid "User name in use. Selected next free user name." +msgstr "Uživatelské jméno se již použí¨ívá. Bylo vybráno další volné." + +#: ../lib/modules/account.inc:95 ../lib/modules/posixAccount.inc:372 +#: ../lib/modules/inetOrgPerson.inc:650 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, .-_. If user name is already used user name will be expanded with a " +"number. The next free number will be used. Warning: Older systems have " +"problems with user names longer than 8 characters. You can not log in to " +"Windows if user name is longer than 16 characters." +msgstr "" +"Uživatelské jméno, které bude vytvořeno. Přípustné znaky jsou: a-z,0-9, .-_. " +"Pokud je již uživatelské jméno použito, přidá se k němu následující volné " +"číslo, aby se získalo dosud nepoužité uživatelské jméno. Varování: starší " +"systémy mají problémy s uživatelskými jmény delšími jak 8 znaků. S " +"uživatelským jménem delším jak 16 znaků se nepřihlásíte do Windows." + +#: ../lib/modules/zarafaUser.inc:112 ../lib/modules/zarafaUser.inc:174 +#: ../lib/modules/zarafaUser.inc:282 ../lib/modules/zarafaUser.inc:372 +#: ../lib/modules/zarafaUser.inc:572 ../lib/modules/zarafaUser.inc:1216 +#: ../lib/modules/zarafaUser.inc:1296 +msgid "User server" +msgstr "Uživatelský server" + +#: ../lib/types/sudo.inc:78 +msgid "User(s)" +msgstr "Uživatel(é)" + +#: ../lib/types/user.inc:53 ../lib/modules/posixAccount.inc:67 +#: ../lib/modules/posixAccount.inc:68 ../lib/modules/posixAccount.inc:71 +#: ../lib/modules/posixAccount.inc:166 ../lib/modules/sudoRole.inc:63 +#: ../lib/modules/sudoRole.inc:87 ../lib/modules/sudoRole.inc:134 +#: ../lib/modules/sudoRole.inc:173 ../lib/modules/sudoRole.inc:182 +#: ../lib/modules/sudoRole.inc:264 ../lib/modules/sudoRole.inc:687 +msgid "Users" +msgstr "Uživatelé" + +#: ../lib/modules/zarafaUser.inc:89 +msgid "Users or groups that may directly send email as this user." +msgstr "" +"Uživatelé a skupiny, které mohou přímo posílat e-maily tomuto uživateli." + +#: ../lib/modules/posixGroup.inc:395 +msgid "" +"Users who are member of the current group. Users who have set their primary " +"group to this group will not be shown." +msgstr "" +"Uživatelé, kteří jsou členy této skupiny. Uživatelé, kteří mají tuto " +"skupinou jako svou primární, nejsou zobrazeni." + +#: ../lib/modules/posixGroup.inc:399 +msgid "" +"Users who will become member of the current group. User names are separated " +"by semicolons." +msgstr "" +"Uživatelé, kteří se stanou členy této skupiny. Uživatelská jména jsou " +"oddělena středníky." + +#: ../templates/tests/lamdaemonTest.php:199 +#, php-format +msgid "Using %s as lamdaemon remote server." +msgstr "Použit %s jako vydálený server lamdaemona." + +#: ../templates/tests/lamdaemonTest.php:221 +#, php-format +msgid "Using %s to connect to remote server." +msgstr "Použit %s pro připojení ke vzdálenému serveru." + +#: ../lib/modules/posixAccount.inc:331 +msgid "" +"Usually, users are not added to groups as memberUid if they have this group " +"as primary group. If your application ignores primary groups then you can " +"select this option to override this behaviour." +msgstr "" +"Obvykle uživatelé nejsou přidáni do skupiny (memberUid), jestliže mají tuto " +"skupinu uvedenou jako svoji primární. Jestliže vaše aplikace ignoruje " +"primární skupiny, pak zaškrtněte tuto volbu ke změně chování LAMu." + +#: ../templates/3rdParty/pla/lib/export_functions.php:543 +msgid "VCARD 2.1 Export" +msgstr "Export VCARD 2.1" + +#: ../help/help.inc:84 +msgid "Valid users" +msgstr "Oprávnění uživatelé" + +#: ../lib/modules/imapAccess.inc:75 ../lib/modules/imapAccess.inc:108 +msgid "Validate server certificate" +msgstr "Zkontrolat serverový certifikát" + +#: ../templates/3rdParty/pla/lib/import_functions.php:512 +msgid "Value to delete does not exist in DN" +msgstr "Mazaná hodnota v tomto DN záznamu neexistuje" + +#: ../templates/serverInfo.php:132 +msgid "Vendor name" +msgstr "Název prodejce" + +#: ../templates/serverInfo.php:138 +msgid "Vendor version" +msgstr "Verze prodejce" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +#, php-format +msgid "View %s children" +msgstr "Zobrazit %s podobjekty(ů)" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +msgid "View 1 child" +msgstr "Zobrazit 1 podobjekt" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1230 +msgid "View the children of this object" +msgstr "Zobrazit podobjekty tohoto objektu" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1028 +msgid "Viewing entry in read-only mode." +msgstr "Zobrazení záznamu pouze pro čtení." + +#: ../lib/modules/asteriskVoicemail.inc:110 +#: ../lib/modules/asteriskVoicemail.inc:117 +#: ../lib/modules/asteriskVoicemail.inc:134 +#: ../lib/modules/asteriskVoicemail.inc:187 +#: ../lib/modules/asteriskVoicemail.inc:279 +#: ../lib/modules/asteriskVoicemail.inc:402 +msgid "Voicemail context" +msgstr "Kontext hlasové schránky" + +#: ../lib/modules/asteriskVoicemail.inc:87 +msgid "Voicemail mailbox for this account." +msgstr "Hlasová schránka tohoto účtu" + +#: ../templates/login.php:417 +msgid "Want more features? Get LAM Pro!" +msgstr "Chcete více funkcí? Zvolte LAM Pro!" + +#: ../templates/config/mainmanage.php:215 +#: ../templates/3rdParty/pla/lib/page.php:76 +msgid "Warning" +msgstr "Varování" + +#: ../templates/delete.php:216 ../lib/modules/posixAccount.inc:634 +#: ../lib/modules.inc:1686 +#, php-format +msgid "Was unable to add attributes to DN: %s." +msgstr "Nešlo přidat atribut do DN záznamu: %s." + +#: ../lib/modules.inc:1656 +#, php-format +msgid "Was unable to create DN: %s." +msgstr "Nešlo vytvořit DN záznam: %s." + +#: ../templates/delete.php:323 ../templates/delete.php:332 +#, php-format +msgid "Was unable to delete DN: %s." +msgstr "Nešlo smazat DN záznam: %s." + +#: ../templates/lists/changePassword.php:560 ../templates/delete.php:207 +#: ../lib/modules.inc:1674 +#, php-format +msgid "Was unable to modify attributes from DN: %s." +msgstr "Nešlo změnit atributy z DN: %s." + +#: ../templates/delete.php:225 ../lib/modules/posixAccount.inc:647 +#: ../lib/modules.inc:1698 +#, php-format +msgid "Was unable to remove attributes from DN: %s." +msgstr "Nešlo odebrat atributy DN záznamu: %s." + +#: ../lib/modules.inc:1637 +#, php-format +msgid "Was unable to rename DN: %s." +msgstr "Nešlo přejmenovat DN záznam: %s." + +#: ../lib/modules/sambaSamAccount.inc:1287 +msgid "Wednesday" +msgstr "Středa" + +#: ../lib/modules/sambaSamAccount.inc:539 +msgid "Western Europe Time, London, Lisbon" +msgstr "Západoevropský čas, Londýn, Lisabon" + +#: ../lib/modules/passwordSelfReset.inc:108 +msgid "What is the name of your favourite pet?" +msgstr "Jaké je jméno vašeho oblíbeného zvířecího mazlíčka?" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +msgid "" +"When performing a recursive copy, only copy those entries which match this " +"filter." +msgstr "" +"Při rekurzivním kopírování se zkopírují pouze záznamy, které vyhovují tomuto " +"filtru." + +#: ../lib/modules/zarafaUser.inc:85 +msgid "" +"When the hard quota limit is reached, email can not be delivered to that " +"user anymore." +msgstr "" +"Pokud velikost poštovní schránky překročí pevný limit kvóty, pak ani nemohou " +"být e-maily pro daného uživatel doručeny." + +#: ../help/help.inc:66 +msgid "" +"When using ldaps:// or TLS be sure to use exactly the same IP/domain name as " +"in your certificate!" +msgstr "" +"Pokud používáte ldaps:// nebo ldap:// s TLS, ujistěte se, že používáte " +"stejné IP/DNS jméno jako je uvedeno ve vašem certifikátu!" + +#: ../lib/modules/sambaSamAccount.inc:315 +msgid "Windows domain name of account." +msgstr "Jméno Windows domény účtu." + +#: ../lib/modules/sambaSamAccount.inc:193 +#: ../lib/modules/sambaSamAccount.inc:445 +#: ../lib/modules/sambaSamAccount.inc:1173 +#: ../lib/modules/sambaSamAccount.inc:1538 +#: ../lib/modules/sambaSamAccount.inc:1678 +#: ../lib/modules/sambaGroupMapping.inc:278 +#: ../lib/modules/sambaGroupMapping.inc:322 +#: ../lib/modules/sambaGroupMapping.inc:391 +msgid "Windows group" +msgstr "Skupina ve Windows" + +#: ../lib/modules/sambaGroupMapping.inc:360 +msgid "Windows group name" +msgstr "Název skupiny ve Windows" + +#: ../lib/modules/sambaGroupMapping.inc:373 +msgid "Windows group type." +msgstr "Typ skupiny ve Windows." + +#: ../lib/modules/sambaSamAccount.inc:372 +msgid "" +"Windows password hashes are saved by default as NT and LM hashes. LM hashes " +"are insecure and only needed for old versions of Windows. You should disable " +"them unless you really need them." +msgstr "" +"Windows hesela jsou standardně uložena jako NT a LM heše. LM heše nejsou " +"bezpečné a jsou používány pouze starými verzemi Windows. Pokud je skutečně " +"nepoužíváte, můžete je vypnout." + +#: ../lib/modules/sambaSamAccount.inc:298 +msgid "Windows primary group" +msgstr "Primární skupina ve Windows" + +#: ../lib/modules/sambaSamAccount.inc:301 +msgid "Windows primary group SID" +msgstr "SID primární skupiny ve Windows" + +#: ../lib/modules/sambaGroupMapping.inc:369 +msgid "Windows-Domain name of group." +msgstr "Název doménové skupiny ve Windows" + +#: ../lib/modules/inetOrgPerson.inc:1196 +msgid "Work details" +msgstr "Podrobnosti o zaměstnání" + +#: ../lib/modules/sambaDomain.inc:139 +msgid "Workgroup" +msgstr "Pracovní skupina" + +#: ../lib/modules/sambaSamAccount.inc:217 +#: ../lib/modules/sambaSamAccount.inc:344 +#: ../lib/modules/sambaSamAccount.inc:1420 +#: ../lib/modules/sambaSamAccount.inc:1698 +msgid "Working directory" +msgstr "Pracovní adresář" + +#: ../lib/modules/sambaSamAccount.inc:345 +msgid "Working directory of initial program." +msgstr "Pracovní adresář výchozího programu." + +#: ../templates/config/confmain.php:289 +msgid "Write" +msgstr "Zápis" + +#: ../templates/config/confmain.php:242 +msgid "Write access" +msgstr "Právo zápisu" + +#: ../templates/login.php:488 ../templates/login.php:546 +#: ../templates/selfService/selfServiceLogin.php:105 +#: ../templates/selfService/selfServiceLogin.php:122 +msgid "Wrong password/user name combination. Please try again." +msgstr "Chybně zadané uživatelské jméno či heslo. Zkuste to prosím znovu." + +#: ../lib/modules/imapAccess.inc:162 +msgid "Wrong quota format. Quota must be numeric." +msgstr "Špatný formát kvóty. Kvóta musí být číselná hodnota." + +#: ../templates/schema/schema.php:151 ../templates/schema/schema.php:193 +#: ../templates/schema/schema.php:198 ../templates/schema/schema.php:203 +#: ../lib/modules/imapAccess.inc:108 +msgid "Yes" +msgstr "Ano" + +#: ../lib/modules/posixGroup.inc:483 +msgid "" +"You are using a capital letters. This can cause problems because Windows " +"isn't case-sensitive." +msgstr "" +"Používáte velká písmena. To může způsobit problémy, neboť Windows " +"nerozlišují velikost písmen." + +#: ../lib/modules/account.inc:119 +msgid "" +"You are using a capital letters. This can cause problems because windows " +"isn't case-sensitive." +msgstr "" +"Používáte velká písmena. To může způsobit problémy, neboť Windows " +"nerozlišují velikost písmen." + +#: ../lib/modules/posixAccount.inc:87 ../lib/modules/posixAccount.inc:89 +msgid "" +"You are using capital letters. This can cause problems because Windows is " +"not case-sensitive." +msgstr "" +"Používáte velká písmena. To může způsobit problémy, neboť Windows " +"nerozlišují velikost písmen." + +#: ../help/help.inc:100 +msgid "" +"You can specify if LAM allows full write access, password changes or only " +"read access." +msgstr "" +"Můžete zadat, zda LAM umožňuje plný přístup,změnu hesel či pouze přístup pro " +"čtení." + +#: ../lib/modules/zarafaDynamicGroup.inc:77 ../lib/modules/zarafaGroup.inc:80 +#: ../lib/modules/zarafaAddressList.inc:65 ../lib/modules/zarafaUser.inc:69 +msgid "You can use this to temporarily deactivate the Zarafa extension." +msgstr "Toto můžete použít pro dočasnou deaktivaci rozšížení Zarafa." + +#: ../help/help.inc:195 +msgid "" +"You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. " +"@@uid@@ for the user name)." +msgstr "" +"Pro atributy LDAPu můžete použít zástupné řetězce ve formé @@atribut@@ " +"(např. @@uid@@ pro uživatelské jméno)." + +#: ../lib/modules/customScripts.inc:58 ../lib/modules/customScripts.inc:70 +msgid "" +"You can use wildcards in the format $wildcard$ which are replaced by the " +"LDAP attribute with the same name. For multi-value attributes the values " +"will be separated by commas." +msgstr "" +"Můžete používat náhrady ve formátu $nahrada$, které budou nahrazeny LDAP " +"atributem stejného jména. Hodnoty budou odděleny čárkou pro atributy s " +"vícenásobnými hodnotami." + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:52 +msgid "You cannot perform updates while server is in read-only mode" +msgstr "Nemůžete provádět úpravy, když je server v režimu pouze pro čtení" + +#: ../templates/3rdParty/pla/htdocs/rename.php:26 +msgid "You cannot rename an entry which has child entries." +msgstr "Nemůžete přejmenovat záznam, který obsahuje podzáznamy." + +#: ../templates/3rdParty/pla/htdocs/rename.php:32 +msgid "You did not change the RDN" +msgstr "Nezměnili jste RDN" + +#: ../templates/tests/schemaTest.php:59 +msgid "" +"You do not have the required access rights or the LDAP schema is not " +"published by your server." +msgstr "" +"Nemáte potřebné oprávnění nebo schéma LDAPu není publikováno vaším serverem." + +#: ../lib/modules/dhcp_settings.inc:276 ../lib/modules/dhcp_settings.inc:277 +msgid "You entered one or more invalid DNS servers." +msgstr "Zadali jste jeden či více neplatných DNS serverů" + +#: ../templates/3rdParty/pla/lib/Template.php:417 +#: ../templates/3rdParty/pla/lib/Template.php:504 +msgid "You left the attribute value blank. Please go back and try again." +msgstr "Nevyplnili jste hodnotu atributu. Prosím vraťte se a vyplňte ji." + +#: ../templates/3rdParty/pla/htdocs/create.php:51 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:45 +#, php-format +msgid "You left the value blank for required attribute (%s)." +msgstr "Nevyplnili jste hodnotu povinného atributu (%s)." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:171 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:209 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:133 +msgid "You made no changes" +msgstr "Nic jste nezměnili." + +#: ../templates/3rdParty/pla/lib/import_functions.php:95 +msgid "You must either upload a file or provide an import in the text box." +msgstr "Musíte zadat buď soubor k nahrání nebo vložit text do vstupního pole." + +#: ../lib/modules/groupOfNames.inc:146 ../lib/modules/groupOfNames.inc:147 +msgid "You need to add at least one member to this group." +msgstr "Musíte přidat alespoň jednoho člena do skupiny." + +#: ../lib/modules/passwordSelfReset.inc:163 +msgid "You specified an answer but no security question." +msgstr "Zadali jste odpověď, ale nevybrali jste bezpečnostní otázku." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1136 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "You will be prompted to confirm this decision" +msgstr "Budete vyzváni k potvrzení tohoto rozhodnutí" + +#: ../lib/modules/imapAccess.inc:158 +msgid "Your IMAP domain(s) and email address domain do not match." +msgstr "Neshoduje se doména v e-mailové adrese s jednou z IMAPových domén." + +#: ../templates/tests/lamdaemonTest.php:226 +#, php-format +msgid "" +"Your LAM admin user (%s) must be a valid Unix account to work with lamdaemon!" +msgstr "" +"Váš LAM administrátor (%s) musí mít platný Unixový účet, aby mohl pracovat s " +"lamdaemonem!" + +#: ../lib/lamdaemon.inc:61 ../lib/lamdaemon.inc:66 +msgid "" +"Your LAM admin user must be a valid Unix account to work with lamdaemon!" +msgstr "" +"Váš LAM administrátor musí mít platný Unixový účet, aby mohl pracovat s " +"lamdaemonem!" + +#: ../lib/modules/imapAccess.inc:160 +msgid "Your LAM login password was not accepted by the IMAP server." +msgstr "Vaše příhlášení do LAMu nebylo přijato IMAP serverem." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:125 +msgid "" +"Your PHP configuration has disabled file uploads. Please check php.ini " +"before proceeding." +msgstr "" +"Nastavení PHP neumožňuje načítání souboru. Prosím zkontrolujte php.ini." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:16 +msgid "" +"Your PHP.INI does not have file_uploads = ON. Please enable file uploads in " +"PHP." +msgstr "" +"Prosím, povolte nahrávání souborů pro PHP. Toto se nastaví pomocí " +"file_uploads = ON v php.ini." + +#: ../lib/security.inc:145 +msgid "Your session expired, click here to go back to the login page." +msgstr "Vaše sezení vypršelo, klikněte sem pro návrat na přihlašovací stránku." + +#: ../templates/login.php:233 +msgid "Your session expired, please log in again." +msgstr "Vaše sezení vypršelo, prosím přihlaste se znovu." + +#: ../templates/login.php:238 ../templates/login.php:243 +#: ../templates/login.php:252 +msgid "Your settings were successfully saved." +msgstr "Vaše nastavení bylo úspěšně uloženo." + +#: ../lib/modules/inetOrgPerson.inc:462 +msgid "YourCompany" +msgstr "VašeSpolečnost" + +#: ../lib/modules/inetOrgPerson.inc:494 +msgid "YourCompany, Human Resources" +msgstr "VašeSpolečnost, Lidské zdroje" + +#: ../lib/modules/zarafaGroup.inc:49 ../lib/modules/zarafaUser.inc:49 +#: ../lib/modules/zarafaServer.inc:49 +msgid "Zarafa" +msgstr "Zarafa" + +#: ../lib/modules/zarafaAddressList.inc:44 +msgid "Zarafa address list" +msgstr "Seznam Zarafa adres" + +#: ../lib/types/zarafaAddressListType.inc:53 +#: ../lib/types/zarafaAddressListType.inc:62 +msgid "Zarafa address lists" +msgstr "Seznamy Zarafa adres" + +#: ../lib/modules/zarafaDynamicGroup.inc:44 +msgid "Zarafa dynamic group" +msgstr "Dynamická Zarafa skupina" + +#: ../lib/types/zarafaDynamicGroupType.inc:53 +#: ../lib/types/zarafaDynamicGroupType.inc:62 +msgid "Zarafa dynamic groups" +msgstr "Dynamické Zarafa skupiny" + +#: ../lib/modules/ddns.inc:103 ../lib/modules/ddns.inc:112 +#: ../lib/modules/ddns.inc:127 ../lib/modules/ddns.inc:370 +#: ../lib/modules/ddns.inc:400 +msgid "Zone names" +msgstr "Název zón" + +#: ../lib/modules/ddns.inc:104 +msgid "Zone names for the DNS server (e.g. company.local)." +msgstr "Název zóny pro DNS server (např. fima.local)" + +#: ../lib/modules/sambaSamAccount.inc:471 +msgid "\\\\server\\homes\\smiller" +msgstr "\\\\server\\homes\\jnovak" + +#: ../lib/modules/sambaSamAccount.inc:479 +msgid "\\\\server\\profiles\\smiller" +msgstr "\\\\server\\profily\\jnovak" + +#: ../lib/modules/phpGroupwareUser.inc:162 +#: ../lib/modules/phpGroupwareUser.inc:333 +msgid "active" +msgstr "aktivní" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "add value" +msgstr "přidat hodnotu" + +#: ../lib/modules/zarafaDynamicGroup.inc:107 ../lib/modules/posixGroup.inc:367 +#: ../lib/modules/zarafaAddressList.inc:95 ../lib/modules/nisnetgroup.inc:104 +#: ../lib/modules/groupOfNames.inc:94 +msgid "adminstrators" +msgstr "administrátoři" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:112 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:95 +msgid "attribute deleted" +msgstr "atribut smazán" + +#: ../lib/modules/sudoRole.inc:123 +msgid "backupRootFileSystem" +msgstr "backupRootFileSystem" + +#: ../templates/3rdParty/pla/lib/functions.php:2298 +msgid "browse" +msgstr "prohlížet" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "bytes" +msgstr "bytů" + +#: ../templates/schema/schema.php:218 +msgid "character" +msgstr "znak" + +#: ../templates/schema/schema.php:217 +msgid "characters" +msgstr "znaky" + +#: ../lib/modules/freeRadius.inc:171 +msgid "company.com" +msgstr "spolecnost.cz" + +#: ../templates/3rdParty/pla/lib/PageRender.php:619 +#: ../templates/3rdParty/pla/lib/PageRender.php:988 +msgid "confirm" +msgstr "potvrdit" + +#: ../help/help.inc:78 +msgid "dc=yourcompany,dc=com" +msgstr "dc=vasespolecnost,dc=cz" + +#: ../lib/modules/ppolicyUser.inc:111 +msgid "default" +msgstr "výchozí" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:206 +msgid "delete" +msgstr "smazat" + +#: ../templates/3rdParty/pla/lib/PageRender.php:677 +msgid "delete attribute" +msgstr "smazat atribut" + +#: ../lib/modules/sambaSamAccount.inc:1441 +#: ../lib/modules/sambaSamAccount.inc:1718 ../lib/modules/zarafaUser.inc:577 +#: ../lib/modules/zarafaUser.inc:1262 ../lib/modules/zarafaUser.inc:1300 +msgid "disabled" +msgstr "zakázané" + +#: ../lib/modules/sambaSamAccount.inc:1452 +#: ../lib/modules/sambaSamAccount.inc:1729 +msgid "disconnect" +msgstr "odpojit" + +#: ../templates/3rdParty/pla/lib/PageRender.php:664 +msgid "download value" +msgstr "stáhnout hodnotu" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:207 +msgid "edit" +msgstr "editovat" + +#: ../lib/modules/zarafaUser.inc:577 ../lib/modules/zarafaUser.inc:1257 +#: ../lib/modules/zarafaUser.inc:1300 +msgid "enabled" +msgstr "povolené" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:483 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:307 +msgid "export" +msgstr "export" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:123 +msgid "false" +msgstr "false" + +#: ../lib/modules/ppolicy.inc:36 +msgid "force" +msgstr "force" + +#: ../lib/modules/sambaSamAccount.inc:1460 +#: ../lib/modules/sambaSamAccount.inc:1737 +msgid "from any client" +msgstr "z libovolného klienta" + +#: ../lib/modules/sambaSamAccount.inc:1461 +#: ../lib/modules/sambaSamAccount.inc:1738 +msgid "from previous client only" +msgstr "pouze z předchozího klienta" + +#: ../lib/modules/posixAccount.inc:225 ../lib/modules/posixAccount.inc:275 +#: ../lib/modules/nisnetgroup.inc:118 +msgid "group01,group02" +msgstr "skupina01,skupina02" + +#: ../lib/modules/freeRadius.inc:179 +msgid "group01;group02" +msgstr "skupina01;skupina02" + +#: ../lib/modules/zarafaDynamicGroup.inc:121 ../lib/modules/zarafaGroup.inc:95 +msgid "group1@company.com,group2@company.com" +msgstr "skupina1@spolecnost.cz,skupina2@spolecnost.cz" + +#: ../lib/modules/zarafaDynamicGroup.inc:115 ../lib/modules/zarafaGroup.inc:89 +msgid "group@company.com" +msgstr "skupina@spolecnost.cz" + +#: ../templates/3rdParty/pla/lib/PageRender.php:471 +msgid "hint" +msgstr "rada" + +#: ../lib/modules/quota.inc:190 ../lib/modules/quota.inc:192 +msgid "hours" +msgstr "hodiny" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:294 +msgid "import" +msgstr "import" + +#: ../lib/modules/phpGroupwareUser.inc:162 +#: ../lib/modules/phpGroupwareUser.inc:336 +msgid "inactive" +msgstr "neaktivní" + +#: ../lib/modules/sambaSamAccount.inc:1445 +#: ../lib/modules/sambaSamAccount.inc:1722 +msgid "input off, notify off" +msgstr "vstup vypnut, oznámení vypnuto" + +#: ../lib/modules/sambaSamAccount.inc:1444 +#: ../lib/modules/sambaSamAccount.inc:1721 +msgid "input off, notify on" +msgstr "vstup vypnut, oznámení zapnuto" + +#: ../lib/modules/sambaSamAccount.inc:1443 +#: ../lib/modules/sambaSamAccount.inc:1720 +msgid "input on, notify off" +msgstr "vstup zapnut, oznámení vypnuto" + +#: ../lib/modules/sambaSamAccount.inc:1442 +#: ../lib/modules/sambaSamAccount.inc:1719 +msgid "input on, notify on" +msgstr "vstup zapnut, oznámení zapnuto" + +#: ../help/help.inc:60 +msgid "" +"ldap://localhost:389 connects to localhost using a standard LDAP connection " +"on port 389" +msgstr "ldap://locahost:389 se standardně připojuje k lokálu na portu 389." + +#: ../help/help.inc:62 +msgid "" +"ldaps://ldap.domain.com connects to ldap.domain.com using an encrypted LDAP " +"connection." +msgstr "" +"ldaps://ldap.domena.cz se šifrovaně připojuje k LDAP serveru ldap.domena.cz." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:100 +msgid "list" +msgstr "seznam" + +#: ../templates/3rdParty/pla/lib/config_default.php:494 +#: ../templates/3rdParty/pla/lib/ds.php:318 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:529 +msgid "login" +msgstr "přihlášení" + +#: ../lib/modules/posixAccount.inc:300 +msgid "machines" +msgstr "stroje" + +#: ../lib/modules/inetLocalMailRecipient.inc:107 +msgid "mail.yourdomain.org" +msgstr "mail.tvojedomena.org" + +#: ../lib/modules/sambaSamAccount.inc:390 +#: ../lib/modules/sambaSamAccount.inc:514 +msgid "mydomain" +msgstr "mojedomena" + +#: ../lib/modules/sambaSamAccount.inc:447 +msgid "mygroup" +msgstr "mojeskupina" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:504 +msgid "new" +msgstr "nový" + +#: ../templates/config/confmain.php:225 +#: ../lib/modules/zarafaDynamicGroup.inc:467 +#: ../lib/modules/zarafaDynamicGroup.inc:470 +#: ../lib/modules/zarafaGroup.inc:419 ../lib/modules/zarafaGroup.inc:426 +#: ../lib/modules/zarafaGroup.inc:429 ../lib/modules/zarafaAddressList.inc:328 +#: ../lib/modules/zarafaAddressList.inc:331 +#: ../lib/modules/sambaSamAccount.inc:558 +#: ../lib/modules/sambaSamAccount.inc:1686 +#: ../lib/modules/sambaSamAccount.inc:1694 +#: ../lib/modules/sambaSamAccount.inc:1704 +#: ../lib/modules/sambaSamAccount.inc:1709 +#: ../lib/modules/sambaSamAccount.inc:1714 ../lib/modules/zarafaUser.inc:560 +#: ../lib/modules/zarafaUser.inc:1173 ../lib/modules/zarafaUser.inc:1218 +#: ../lib/modules/zarafaUser.inc:1229 ../lib/modules/zarafaUser.inc:1235 +#: ../lib/modules/ppolicy.inc:34 ../lib/modules/ppolicy.inc:467 +#: ../lib/modules/ppolicy.inc:483 ../lib/modules/ppolicy.inc:488 +#: ../lib/modules/ppolicy.inc:495 ../lib/modules/ppolicy.inc:498 +#: ../lib/modules/generalInformation.inc:93 +#: ../lib/modules/zarafaServer.inc:325 +msgid "no" +msgstr "ne" + +#: ../templates/3rdParty/pla/lib/functions.php:1902 +msgid "no description available" +msgstr "nedostupný popis" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:68 +msgid "no entries" +msgstr "bez záznamů" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:84 +msgid "no new attributes available for this entry" +msgstr "pro tento záznam není k dispozici další atribut" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:135 +msgid "no new binary attributes available for this entry" +msgstr "pro tento záznam není k dispozici další binární atribut" + +#: ../templates/schema/schema.php:158 ../templates/schema/schema.php:227 +#: ../templates/schema/schema.php:238 ../templates/schema/schema.php:287 +#: ../templates/schema/schema.php:353 ../templates/schema/schema.php:368 +#: ../templates/schema/schema.php:402 ../templates/schema/schema.php:424 +#: ../templates/3rdParty/pla/lib/functions.php:2602 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1573 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1581 +msgid "none" +msgstr "nic" + +#: ../templates/3rdParty/pla/lib/PageRender.php:1109 +msgid "none, remove value" +msgstr "nic, odstranit hodnotu" + +#: ../templates/schema/schema.php:214 +msgid "not applicable" +msgstr "nepoužitelné" + +#: ../templates/schema/schema.php:165 ../templates/schema/schema.php:170 +#: ../templates/schema/schema.php:175 ../templates/schema/schema.php:208 +msgid "not specified" +msgstr "nezadáno" + +#: ../help/help.inc:72 +msgid "" +"ou=People,dc=yourcompany,dc=com will read and store all accounts in this " +"subtree." +msgstr "" +"ou=lide,dc=vasespolecnost,dc=cz načítá a ukládá všechny účty do tohoto " +"podstromu." + +#: ../lib/modules/eduPerson.inc:181 ../lib/modules/eduPerson.inc:187 +#: ../lib/modules/eduPerson.inc:193 +msgid "ou=accounts,dc=yourdomain,dc=org" +msgstr "ou=ucty,dc=spolecnost,dc=cz" + +#: ../lib/modules/posixAccount.inc:286 +msgid "pc01$" +msgstr "pc01$" + +#: ../lib/modules/posixAccount.inc:307 +msgid "pc01,Room 2.34" +msgstr "pc01, místnost 2.34" + +#: ../lib/modules/hostObject.inc:86 +msgid "pc01,pc02" +msgstr "pc01,pc02" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +msgid "pixels" +msgstr "bodů" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:54 +msgid "read only" +msgstr "pouze pro čtení" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:251 +msgid "refresh" +msgstr "obnovit" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2126 +msgid "rename" +msgstr "přejmenovat" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 ../lib/html.inc:554 +#: ../lib/html.inc:1276 ../lib/html.inc:1678 +msgid "required" +msgstr "povinné" + +#: ../lib/modules/sambaSamAccount.inc:1453 +#: ../lib/modules/sambaSamAccount.inc:1730 +msgid "reset" +msgstr "reset" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:237 +msgid "search" +msgstr "hledat" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:474 +msgid "seconds" +msgstr "sekund" + +#: ../lib/modules/asteriskAccount.inc:391 ../lib/modules/posixGroup.inc:358 +#: ../lib/modules/sambaSamAccount.inc:402 ../lib/modules/posixAccount.inc:253 +#: ../lib/modules/asteriskVoicemail.inc:158 +msgid "secret" +msgstr "tajné" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1263 +msgid "select the rdn attribute" +msgstr "vybrat RDN atribut" + +#: ../lib/modules/uidObject.inc:62 ../lib/modules/posixAccount.inc:198 +#: ../lib/modules/inetOrgPerson.inc:1571 ../lib/modules/nisMailAlias.inc:91 +msgid "smiller" +msgstr "jnovak" + +#: ../lib/modules/inetLocalMailRecipient.inc:95 +msgid "smiller@otherdomain.org" +msgstr "jnovak@jinadomena.org" + +#: ../lib/modules/inetLocalMailRecipient.inc:101 +msgid "smiller@yourdomain.org" +msgstr "jnovak@tvojedomena.org" + +#: ../lib/modules/ldapPublicKey.inc:76 +msgid "ssh-dss 234234 user@host" +msgstr "ssh-dss 234234 uzivatel@stroj" + +#: ../templates/3rdParty/pla/lib/PageRender.php:882 +msgid "structural" +msgstr "strukturální" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:102 +msgid "table" +msgstr "tabulka" + +#: ../lib/modules/asteriskExtension.inc:171 +msgid "test" +msgstr "test" + +#: ../lib/modules/asteriskExtension.inc:165 +msgid "test-start" +msgstr "test-start" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:122 +msgid "true" +msgstr "true" + +#: ../lib/modules/ipHost.inc:92 ../lib/modules/inetOrgPerson.inc:350 +#: ../lib/modules/aliasEntry.inc:64 +msgid "uid=smiller,ou=People,dc=company,dc=com" +msgstr "uid=jnovak,ou=lide,dc=spolecnost,dc=cz" + +#: ../lib/modules/posixGroup.inc:352 +msgid "user01,user02,user03" +msgstr "uzivatel01,uzivatel02,uzivatel03" + +#: ../lib/modules/eduPerson.inc:142 ../lib/modules/inetOrgPerson.inc:438 +#: ../lib/modules/asteriskVoicemail.inc:171 +msgid "user@company.com" +msgstr "uzivatel@spolecnost.cz" + +#: ../lib/modules/posixAccount.inc:218 +msgid "users" +msgstr "uživatelé" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:59 +msgid "view entries" +msgstr "zobrazit záznamy" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +msgid "with " +msgstr "s " + +#: ../templates/config/confmain.php:225 +#: ../lib/modules/zarafaDynamicGroup.inc:465 +#: ../lib/modules/zarafaDynamicGroup.inc:472 +#: ../lib/modules/zarafaGroup.inc:421 ../lib/modules/zarafaGroup.inc:424 +#: ../lib/modules/zarafaGroup.inc:431 ../lib/modules/zarafaAddressList.inc:326 +#: ../lib/modules/zarafaAddressList.inc:333 +#: ../lib/modules/sambaSamAccount.inc:558 +#: ../lib/modules/sambaSamAccount.inc:1684 +#: ../lib/modules/sambaSamAccount.inc:1692 +#: ../lib/modules/sambaSamAccount.inc:1702 +#: ../lib/modules/sambaSamAccount.inc:1707 +#: ../lib/modules/sambaSamAccount.inc:1712 ../lib/modules/zarafaUser.inc:560 +#: ../lib/modules/zarafaUser.inc:1175 ../lib/modules/zarafaUser.inc:1221 +#: ../lib/modules/zarafaUser.inc:1231 ../lib/modules/zarafaUser.inc:1237 +#: ../lib/modules/ppolicy.inc:35 ../lib/modules/ppolicy.inc:485 +#: ../lib/modules/ppolicy.inc:490 ../lib/modules/ppolicy.inc:493 +#: ../lib/modules/ppolicy.inc:500 ../lib/modules/inetOrgPerson.inc:486 +#: ../lib/modules/generalInformation.inc:95 +#: ../lib/modules/zarafaServer.inc:327 +msgid "yes" +msgstr "ano" + +#~ msgid "(example: cn=MyNewPerson)" +#~ msgstr "(příklad: cn=MojeNovaOsoba)" + +#~ msgid "(hint: do not include \"ou=\")" +#~ msgstr "(rada: nevkládejte \"ou=\")" + +#~ msgid "Container DN" +#~ msgstr "Kontejner DN" + +#~ msgid "Custom" +#~ msgstr "Uživatelský" + +#~ msgid "Data field for RDN is empty!" +#~ msgstr "Datové pole RDN je prázdné!" + +#~ msgid "Next" +#~ msgstr "Další" + +#~ msgid "Optional binary attributes" +#~ msgstr "Volitelné binární atributy" + +#~ msgid "Organizational unit" +#~ msgstr "Organizační jednotka (OU)" + +#~ msgid "RDN" +#~ msgstr "RDN" + +#~ msgid "Really create this new OU?" +#~ msgstr "Opravdu chcete vytvořit nové OU?" + +#~ msgid "Relative distinguished name" +#~ msgstr "Relativní významný název" + +#~ msgid "Search Scope" +#~ msgstr "Rozsah hledání" + +#~ msgid "Specifies whether the user is an admin." +#~ msgstr "Určuje, zda je uživatel administrátorem." + +#~ msgid "Step 1 of 2: Name and object class(es)" +#~ msgstr "Krok 1 ze 2: Název a třída(y) objektu" + +#~ msgid "Step 2 of 2: Specify attributes and values" +#~ msgstr "Krok 2 ze 2: Uveďte atributy a hodnoty" + +#~ msgid "" +#~ "You did not select any object classes for this object. Please go back and " +#~ "do so." +#~ msgstr "" +#~ "Nevybrali jste žádnou třídu objeku. Prosím vraťte se a vyberte nějakou." + +#~ msgid "Adding attribute failed!" +#~ msgstr "Selhalo přidání atributu!" + +#~ msgid "All following lines form the mail body." +#~ msgstr "Všechny následující řádky těla e-mailu." + +#~ msgid "Choose a server for the home directory!" +#~ msgstr "Vyberte server pro domovský adresář" + +#~ msgid "Choose a template" +#~ msgstr "Vybrat šablonu" + +#~ msgid "Delete %s" +#~ msgstr "Smazat %s" + +#~ msgid "Entry %s deleted successfully." +#~ msgstr "Záznam %s byla úspěšně smazána." + +#~ msgid "Failed to add the attribute." +#~ msgstr "Selhalo přidání atributu!" + +#~ msgid "File upload failed!" +#~ msgstr "Selhalo nahrání souboru!" + +#~ msgid "Home directory server" +#~ msgstr "Servr s domovským adresářem" + +#~ msgid "I am sure" +#~ msgstr "Jsem si jistý" + +#~ msgid "" +#~ "If you decide to send the password via mail then the mail template " +#~ "\"config/passwordMailTemplate.txt\" will be used." +#~ msgstr "" +#~ "Jestliže se rozhodnete odeslat heslo e-mailem, pak se použije šablona " +#~ "\"config/passwordMailTemplate.txt\"." + +#~ msgid "" +#~ "LAM can recursively delete this entry and all of its children. See below " +#~ "for a list of all the entries that this action will delete. Do you want " +#~ "to do this?" +#~ msgstr "" +#~ "LAM může rekurzivně smazat tento záznam včetně všech jeho podzáznamů. " +#~ "Níže je uveden seznam všech záznamů, které budou smazány. Chcete je " +#~ "opravdu smazat?" + +#~ msgid "New owner" +#~ msgstr "Nový vlastník" + +#~ msgid "" +#~ "Note: You will get an \"inappropriate matching\" error if you have not " +#~ "setup an EQUALITY rule on your LDAP server for this attribute." +#~ msgstr "" +#~ "Poznámka: Dostaneté chybu \"nevhodné porovnání\" pokud nemáte nastaveno " +#~ "pravidlo EQUALITY ve svém LDAP serveru pro tento atribut." + +#~ msgid "The first line is the subject." +#~ msgstr "První řádek je předmět" + +#~ msgid "" +#~ "The mail text of all password mails. If empty the content of \"config/" +#~ "passwordMailTemplate.txt\" starting at the second line will be used." +#~ msgstr "" +#~ "Text e-mailu pro zaslání hesla. Jestliže ponecháte prázdné, pak se " +#~ "použije šablona \"config/passwordMailTemplate.txt\" (od druhého řádku)." + +#~ msgid "" +#~ "The subject of all password mails. If empty the first line of \"config/" +#~ "passwordMailTemplate.txt\" will be used." +#~ msgstr "" +#~ "Předmět e-mailů pro zaslání hesla. Jestliže ponecháte prázdné, pak se " +#~ "použije první řádek ze šablony \"config/passwordMailTemplate.txt\"." + +#~ msgid "There are new required attributes which need to be set." +#~ msgstr "Přibyl povinný atribut, který musí být nastaven." + +#~ msgid "Using template:" +#~ msgstr "Použitá šablona:" + +#~ msgid "Was unable to modify attribtues from DN: %s." +#~ msgstr "Nešlo změnit atributy DN: %s." + +#~ msgid "You have to activate the \"I am sure\" checkbox." +#~ msgstr "Musíte zatrhnout pole \"Jsem si jistý\"." + +#~ msgid "jpegPhoto contains errors" +#~ msgstr "jpegPhoto obsahuje chyby" + +#~ msgid "This module requires the PHP ssh2 extension." +#~ msgstr "Tento modul vyžaduje ssh2 rozšíření PHP." + +#~ msgid "Timeout while executing lamdaemon commands!" +#~ msgstr "Došlo k překročení časového limitu při provádění lamdaemonu!" + +#~ msgid "" +#~ "Attention: The DHCP service needs to be restarted after changes in DDNS." +#~ msgstr "Upozornění: Po změnách v DDNS musí být služba DHCP restartována." + +#~ msgid "Back to Login" +#~ msgstr "Zpět k přihlášení" + +#~ msgid "Cache timeout is invalid!" +#~ msgstr "Neplatný časový limit pro cache!" + +#~ msgid "Change profile" +#~ msgstr "Změnit profil" + +#~ msgid "Delegates has invalid format!" +#~ msgstr "Zástupcí nemají přípustný formát!" + +#~ msgid "Delete Kolab account" +#~ msgstr "Smazat účet Kolabu" + +#~ msgid "Deleting. Please stand by ..." +#~ msgstr "Probíhá mazání, prosím vyčkejte ..." + +#~ msgid "Fixed IP" +#~ msgstr "Statická IP" + +#~ msgid "" +#~ "Here is a list of possible columns. The red columns must be included in " +#~ "the CSV file and filled with data for all accounts." +#~ msgstr "" +#~ "Zde je seznam použitelných sloupců. Červené sloupce musí být v CSV " +#~ "souboru a musí být vyplněný pro každý účet." + +#~ msgid "LDAP" +#~ msgstr "LDAP" + +#~ msgid "Please select your user name and enter your password to log in." +#~ msgstr "" +#~ "Prosím vyberte vaše uživatelské jméno a zadejte heslo pro přihlášení" + +#~ msgid "Text for user PDF" +#~ msgstr "Text pro uživatele PDF" + +#~ msgid "The domain name needs to be shorter than 15 characters." +#~ msgstr "Název domény musí být kratší než 15 znaků." + +#~ msgid "" +#~ "This is an example how it would look in your spreadsheet program before " +#~ "you convert to CSV:" +#~ msgstr "" +#~ "Toto je ukázka, jak to může vypadat ve vašem tabulkovém kalkulátoru před " +#~ "exportem do CSV:" + +#~ msgid "This text will appear on top of every user PDF file." +#~ msgstr "Tento text bude uveden na začátku každého PDF souboru." + +#~ msgid "This value can only be \\\"true\\\" or \\\"false\\\"!" +#~ msgstr "Hodnota může být buď \\\"true\\\" nebo \\\"false\\\"!" + +#~ msgid "" +#~ "Unable to load available languages. Setting English as default language. " +#~ "For further instructions please contact the Admin of this site." +#~ msgstr "" +#~ "Nelze načíst dostupné jazyky. Nastavuji proto Angličtinu jako výchozí. " +#~ "Pro další informace prosím kontaktujte administrátora těchto stránek." + +#~ msgid "Back to OU-Editor" +#~ msgstr "Zpět do editoru OU" + +#~ msgid "Back to PDF Editor" +#~ msgstr "Zpět do editoru PDF" + +#~ msgid "Back to profile editor" +#~ msgstr "Zpět do editoru profilu" + +#~ msgid "Delete operation canceled." +#~ msgstr "Mazání bylo přerušeno." + +#~ msgid "Link to login page for this self service profile" +#~ msgstr "Odkaz na přihlašovací stránku pro tento samoobslužný profil" + +#~ msgid "Mode" +#~ msgstr "Režim" + +#~ msgid "" +#~ "Please enter a comma separated list of host names where this user is " +#~ "allowed to log in. If you enable host restrictions for your servers then " +#~ "\"*\" means every host and an empty field means no host." +#~ msgstr "" +#~ "Prosím zadejte čárkou oddělený seznam názvů strojů, ke kterým se uživatel " +#~ "může prihlásit. Jestliže zapnete omezení dle strojů pro vaše servery, pak " +#~ "\"*\" znamená jakýkoli stroj a prázdné pole znamená žádný stroj." + +#~ msgid "Please enter the mount point for this entry (e.g. /home)." +#~ msgstr "Prosím zadejte přípojný bod pro tento záznam (např. /home)." + +#~ msgid "" +#~ "Please install the SSH2 module for PHP and activate it in your php.ini!" +#~ msgstr "" +#~ "Prosím nainstalujte SSH2 modul pro PHP a aktivujte jej ve vašem php.ini!" + +#~ msgid "SSH2 module" +#~ msgstr "SSH2 modul" + +#~ msgid "SSH2 module is installed." +#~ msgstr "SSH2 modul je nainstalován" + +#~ msgid "Scope" +#~ msgstr "Rozsah" + +#~ msgid "Sudo is not setup correctly!" +#~ msgstr "Sudo není korektně nastaveno!" + +#~ msgid "Unix workstations" +#~ msgstr "Unixová stanice" + +#~ msgid "Unix workstations are invalid!" +#~ msgstr "Neplatná Unixová stanice!" + +#~ msgid "Unknown error" +#~ msgstr "Neznámá chyba" + +#~ msgid "You have been logged off from LDAP Account Manager." +#~ msgstr "Byli jste odhlášeni z LDAP Account Manageru." + +#~ msgid "Add Samba 3 account" +#~ msgstr "Přidat Samba 3 účet" + +#~ msgid "Change suffix" +#~ msgstr "Změnit sufix" + +#~ msgid "Delete PDF structure" +#~ msgstr "Smazat PDF strukturu" + +#~ msgid "Donate" +#~ msgstr "Podpořit vývoj" + +#~ msgid "Please enter the same password in both password-fields." +#~ msgstr "Prosím zadejte stejná hesla v obou polích." + +#~ msgid "Please select your account type:" +#~ msgstr "Prosím vyberte typ vašeho účtu:" + +#~ msgid "Script settings" +#~ msgstr "Nastavení skriptu" + +#~ msgid "Update attribute \"sambaPwdCanChange\" on password change" +#~ msgstr "Aktualizovat atribut \"sambaPwdCanChange\" při změně hesla" + +#~ msgid "Update attribute \"sambaPwdMustChange\" on password change" +#~ msgstr "Aktualizovat atribut \"sambaPwdMustChange\" při změně hesla" + +#~ msgid "User can/must change password" +#~ msgstr "Uživatel si může/musí změnit heslo" + +#~ msgid "The net mask was invalid and was corrected." +#~ msgstr "Maska sítě byla neplatná a proto byla opravena." + +#~ msgid "The netmask was set." +#~ msgstr "Maska sítě byla nastavena." + +#~ msgid "" +#~ "Domain name contains invalid characters. Valid characters are: a-z, A-Z, " +#~ "0-9 and -." +#~ msgstr "" +#~ "Název domény obsahuje neplatné znaky. Přípustné znaky jsou: a-z, A-Z, 0-9 " +#~ "i -." + +#~ msgid "Drive letter assigned on windows workstations as homedirectory." +#~ msgstr "Písmeno disku mapované ve Windows jako domovský adresář." + +#~ msgid "" +#~ "File name and path relative to the netlogon-share which should be " +#~ "executed on logon. $user and $group are replaced with user and group name." +#~ msgstr "" +#~ "Název souboru (včetně relativní cesty ke sdílení netlogon), který může " +#~ "být spouštěn během přihlašování. $user a $group budou nahrazeny za " +#~ "uživatelské jméno nebo název skupiny." + +#~ msgid "If checked account will be deactivated. (Setting D-Flag)" +#~ msgstr "Jestliže je zaškrtnuto, pak se účet deaktivuje použitím příznaku D." + +#~ msgid "" +#~ "If you want to create domain administrators or other special users use " +#~ "this option." +#~ msgstr "" +#~ "Jestliže chcete vytvořit doménové administrátory či jiné speciální " +#~ "uživatele, pak použijte tuto volbu." + +#~ msgid "Please enter a valid special user name." +#~ msgstr "Prosím zadejte platný speciální název uživatele." + +#~ msgid "Samba 2" +#~ msgstr "Samba 2" + +#~ msgid "This is the RID of the user's primary Windows group." +#~ msgstr "RID uživatelovy primární skupiny ve Windows." + +#~ msgid "Windows group RID" +#~ msgstr "RID skupiny ve Windows" + +#~ msgid "Account type selection" +#~ msgstr "Výběr typu účtu" + +#~ msgid "Adding of a fixed IP failed because of errors." +#~ msgstr "Selhalo přidání statické IP adresy kvůli chybě/ám." + +#~ msgid "Adds input fields for a new fixed IP address." +#~ msgstr "Přidává vstupní pole pro novou statickou IP adresu." + +#~ msgid "Delete IP" +#~ msgstr "Smazat IP" + +#~ msgid "Edit account types" +#~ msgstr "Editovat typy účtů" + +#~ msgid "Edit modules" +#~ msgstr "Editovat moduly" + +#~ msgid "Module selection" +#~ msgstr "Výběr modulů" + +#~ msgid "Account lists - Filters" +#~ msgstr "Seznam účtů - Filtry" + +#~ msgid "Account suffix" +#~ msgstr "Přípona účtu:" + +#~ msgid "Configuration wizard" +#~ msgstr "Průvodce nastavením" + +#~ msgid "Create PDF for all aliases" +#~ msgstr "Vytvořit PDF pro všechny aliasy" + +#~ msgid "Create PDF for all domains" +#~ msgstr "Vytvořit PDF pro všechny domény" + +#~ msgid "Create PDF for all groups" +#~ msgstr "Vytvořit PDF pro všechny skupiny" + +#~ msgid "Create PDF for all hosts" +#~ msgstr "Vytvořit PDF pro všechny stroje" + +#~ msgid "Create PDF for all objects" +#~ msgstr "Vytvořit PDF pro všechny objekty" + +#~ msgid "Create PDF for selected alias(es)" +#~ msgstr "Vytvořit PDF pro vybrané aliasy" + +#~ msgid "Create PDF for selected domain(s)" +#~ msgstr "Vytvořit PDF pro vybrané domény" + +#~ msgid "Create PDF for selected group(s)" +#~ msgstr "Vytvořit PDF pro vybrané skupiny" + +#~ msgid "Create PDF for selected host(s)" +#~ msgstr "Vytvořit PDF pro vybrané stroje" + +#~ msgid "Create PDF for selected object(s)" +#~ msgstr "Vytvořit PDF pro vybrané objekty" + +#~ msgid "Create PDF for selected user(s)" +#~ msgstr "Vytvořit PDF pro vybrané uživatele" + +#~ msgid "Edit PDF structure" +#~ msgstr "Editovat PDF strukturu" + +#~ msgid "Edit profile" +#~ msgstr "Editovat profil" + +#~ msgid "" +#~ "Host name contains invalid characters. Valid characters are: a-z, A-Z, " +#~ "0-9 and .-_ ! Host name must end with $ !" +#~ msgstr "" +#~ "Název stroje obsahuje neplatné znaky. Přípustné znaky jsou: a-z, A-Z, 0-9 " +#~ "a .-_ ! Název stroje můsí končit znakem $ !" + +#~ msgid "" +#~ "LDAP DN (e.g. dc=company,dc=com) of accounts. This is used to find " +#~ "possible delegation candidates." +#~ msgstr "" +#~ "LDAP DN (např. dc=spolecnost,dc=cz) účtů je použito při hledání možných " +#~ "zástupců" + +#~ msgid "PDF structures" +#~ msgstr "PDF struktury" + +#~ msgid "Add Neofonie attributes" +#~ msgstr "Přidat atributy Neofonie" + +#~ msgid "Add section or static text" +#~ msgstr "Přidat sekci nebo stálý text" + +#~ msgid "Available PDF fields" +#~ msgstr "Dostupná PDF pole" + +#~ msgid "Birth date" +#~ msgstr "Datum narození" + +#~ msgid "ComBots IDs" +#~ msgstr "ComBots IDy" + +#~ msgid "Date when the employee was initially employed." +#~ msgstr "Datum vzniku zaměstnaneckého poměru." + +#~ msgid "Employee skills" +#~ msgstr "Kvalifikace zaměstnance" + +#~ msgid "Employment date" +#~ msgstr "Datum zaměstnání" + +#~ msgid "Group 1, Group 2" +#~ msgstr "Skupina 1, Skupina 2" + +#~ msgid "IT" +#~ msgstr "IT" + +#~ msgid "Job position" +#~ msgstr "Pracovní pozice" + +#~ msgid "Job position of this user (e.g. developer, temp, ...)." +#~ msgstr "Pracovní pozice tohoto uživatele (např. dodavatel, dočasný, ..." + +#~ msgid "List of ComBots IDs." +#~ msgstr "Seznam ComBots ID" + +#~ msgid "List of Jabber IDs." +#~ msgstr "Seznam Jabber ID" + +#~ msgid "List of project groups of this user." +#~ msgstr "Seznam skupin projektů tohoto uživatele." + +#~ msgid "List of projects the user is working on." +#~ msgstr "Seznam projektů, na kterých uživatel pracuje." + +#~ msgid "List of special skills that the user has." +#~ msgstr "Seznam speciálních schopností uživatele." + +#~ msgid "Page settings" +#~ msgstr "Strana nastavení" + +#~ msgid "Please enter a valid date (format DD.MM.YYYY)!" +#~ msgstr "Prosím zadejte platné datum (formát DD.MM.YYYY)!" + +#~ msgid "Project 1, Project 2" +#~ msgstr "Project 1, Project 2" + +#~ msgid "Project groups" +#~ msgstr "Skupiny projektů" + +#~ msgid "Quake ID" +#~ msgstr "Quake ID" + +#~ msgid "The department where the employee is employed." +#~ msgstr "Oddělení, kde je zaměstnanec zaměstnán." + +#~ msgid "This is the user's Quake ID." +#~ msgstr "Quake ID uživatele." + +#~ msgid "This is the user's login name for the wiki." +#~ msgstr "Přihlašovací jméno uživatele do wiki." + +#~ msgid "required for Samba 3 accounts" +#~ msgstr "povinné pro účty Samby 3" + +#~ msgid "Apply" +#~ msgstr "Použít" + +#~ msgid "Create account" +#~ msgstr "Vytvořit účet" + +#~ msgid "Max list entries is invalid!" +#~ msgstr "Neplatný největší počet záznamů seznamu!" + +#~ msgid "Save account" +#~ msgstr "Uložit účet" + +#~ msgid "This saves your account to the LDAP database." +#~ msgstr "Tímto uložíte váš účet do LDAPu." + +#~ msgid "Edit logon hours" +#~ msgstr "Editovat hodiny přihlášení" + +#~ msgid "Here you can define to deactivate accounts after bad logon attempts." +#~ msgstr "" +#~ "Zde můžete zadat deaktivování účtů po neuspěšných pokusech o přihlášení." + +#~ msgid "Please select page:" +#~ msgstr "Prosím vyberte stranu:" + +#~ msgid "Abort" +#~ msgstr "Přerušit" + +#~ msgid "Algorithmic RID Base" +#~ msgstr "Základ algoritmického RID" + +#~ msgid "Attributes in Group List" +#~ msgstr "Atributy v seznamu skupin" + +#~ msgid "Attributes in User List" +#~ msgstr "Atributy v seznamu uživatelů" + +#~ msgid "Back to preferences..." +#~ msgstr "Zpět do předvoleb" + +#~ msgid "Changed value %s because only numeric values are allowed." +#~ msgstr "Změnte hodnotu %s, protože jsou povoleny pouze číslice." + +#~ msgid "Create group accounts" +#~ msgstr "Vytvořit skupiny" + +#~ msgid "Create host accounts" +#~ msgstr "Vytvořit účty strojů" + +#~ msgid "Create new Account" +#~ msgstr "Vytvořit nový účet" + +#~ msgid "Create user accounts" +#~ msgstr "Vytvořit účet úživatelů" + +#~ msgid "Do you really want to delete domain(s):" +#~ msgstr "Opravdu chcete smazat doménu(y):" + +#~ msgid "Domain Settings" +#~ msgstr "Nastavení domény" + +#~ msgid "Domain deleted successfully." +#~ msgstr "Doména byla úspěšně smazána." + +#~ msgid "Domain has been modified." +#~ msgstr "Doména byla změněna." + +#~ msgid "DomainSuffix" +#~ msgstr "DomainSuffix" + +#~ msgid "Domains" +#~ msgstr "Domény" + +#~ msgid "Failed to add domain!" +#~ msgstr "Selhalo přidání domény!" + +#~ msgid "Failed to modify domain!" +#~ msgstr "Selhala úprava domény!" + +#~ msgid "GID ranges for Unix groups" +#~ msgstr "Rozsah GIDů pro Unix-ové skupiny" + +#~ msgid "Group information page" +#~ msgstr "Strana informací o skupině" + +#~ msgid "Group list attributes are invalid!" +#~ msgstr "Neplatný seznam atributů skupiny!" + +#~ msgid "Group modules" +#~ msgstr "Moduly pro skupiny" + +#~ msgid "Group profiles" +#~ msgstr "Profil skupiny" + +#~ msgid "GroupSuffix" +#~ msgstr "GroupSuffix" + +#~ msgid "GroupSuffix is invalid!" +#~ msgstr "Neplatný GroupSuffix!" + +#~ msgid "Host information page" +#~ msgstr "Strana informací o stroji" + +#~ msgid "HostSuffix" +#~ msgstr "HostSuffix" + +#~ msgid "HostSuffix is invalid!" +#~ msgstr "Neplatný HostSuffix!" + +#~ msgid "Invalid password" +#~ msgstr "Neplatné heslo" + +#~ msgid "Invalid/Missing Message type" +#~ msgstr "Neplatný/Chybějící typ zprávy" + +#~ msgid "LAM Internal Error" +#~ msgstr "Vnitřní chyba LAM" + +#~ msgid "Manages Samba 3 domain accounts." +#~ msgstr "Správa doménových účtů Samby 3." + +#~ msgid "Master Password:" +#~ msgstr "Hlavní heslo:" + +#~ msgid "Maximum GID number for Unix groups" +#~ msgstr "Největší GID pro Unixové skupiny" + +#~ msgid "Maximum UID number for Unix accounts (hosts)" +#~ msgstr "Největší UID pro Unixové účty (stroje)" + +#~ msgid "Maximum UID number for Unix accounts (users)" +#~ msgstr "Největší UID pro Unixové účty (uživatelé)" + +#~ msgid "Minimum GID number for Unix groups" +#~ msgstr "Nejmenší GID pro Unixové skupiny" + +#~ msgid "Minimum UID number for Unix accounts (hosts)" +#~ msgstr "Nejmenší UID pro Unixové účty (stroje)" + +#~ msgid "Next RID to use when creating groups." +#~ msgstr "Následující RID bude použit pri vytváření skupin." + +#~ msgid "ObjectClass %s required but not defined in LDAP." +#~ msgstr "Třída objektu %s je povinná, ale není definována v LDAPu." + +#~ msgid "Password hash type for Unix accounts" +#~ msgstr "Typ heše hesel Unixových účtů" + +#~ msgid "Password hash type for Unix groups" +#~ msgstr "Typ heše hesel Unixových skupin" + +#~ msgid "" +#~ "Please report this error to the Bug-Tracker at {link=http://lam.sf.net}" +#~ "LDAP Account Manager Development Team{endlink}. The error number is {bold}" +#~ "0001:Invalid/Missing Message type.{endbold} Thank you." +#~ msgstr "" +#~ "Prosím oznamte tuto chybu do Bug-Trackeru na {link=http://lam.sf.net}LDAP " +#~ "Account Manager Development Team{endlink}. Číslo chyby je {bold}0001:" +#~ "Invalid/Missing Message type.{endbold}. Děkujeme vám." + +#~ msgid "Samba Hosts" +#~ msgstr "Stroje Samby" + +#~ msgid "Saving group modules failed!" +#~ msgstr "Selhalo uložení modulů pro skupiny!" + +#~ msgid "Saving host modules failed!" +#~ msgstr "Selhalo uložení modulů pro stroje!" + +#~ msgid "Saving user modules failed!" +#~ msgstr "Selhalo uložení modulů pro uživatele!" + +#~ msgid "Server of external script" +#~ msgstr "Server s externím skriptem" + +#~ msgid "The following settings were saved to profile:" +#~ msgstr "Následující nastavení bylo uloženo do profilu:" + +#~ msgid "There can be only one administrator per domain." +#~ msgstr "V doméně může být pouze jeden administrátor." + +#~ msgid "There can be only one guest per domain." +#~ msgstr "V doméně může být pouze jeden host." + +#~ msgid "This Samba 3 domain is already present!" +#~ msgstr "Tato doména Samby 3 je již zavedena!" + +#~ msgid "" +#~ "This will set an invalid password which prevents logins with this account." +#~ msgstr "Nastavení neplatného hesla, které znemožní přihlášení k účtu." + +#~ msgid "Time zones:" +#~ msgstr "Časové zóny:" + +#~ msgid "TreeSuffix" +#~ msgstr "Sufix stromu" + +#~ msgid "" +#~ "Use it at your own risk and read the documentation for lamdaemon before " +#~ "you use it!" +#~ msgstr "" +#~ "Použití jen na vlastní nebezpečí. Před použitím si přečtěte dokumentaci k " +#~ "lamdaemonu!" + +#~ msgid "Use unix password" +#~ msgstr "Použít Unixové heslo" + +#~ msgid "User list attributes are invalid!" +#~ msgstr "Neplatný seznam atributů uživatele!" + +#~ msgid "User modules" +#~ msgstr "Uživatelské moduly" + +#~ msgid "User/Group/Host suffix" +#~ msgstr "Sufix uživatele/skupiny/stroje" + +#~ msgid "UserSuffix" +#~ msgstr "UserSuffix" + +#~ msgid "UserSuffix is invalid!" +#~ msgstr "Neplatný UserSuffix!" + +#~ msgid "Users who are member of the current group." +#~ msgstr "Uživatelé, kteří jsou členy této skupiny." + +#~ msgid "Wrong or missing type!" +#~ msgstr "Chybný nebo chybějící typ!" + +#~ msgid "You cannot use these password options at the same time." +#~ msgstr "Nemůžete použít tuto kombinaci nastavení hesla." + +#~ msgid "You cannot use this password options at the same time." +#~ msgstr "Nemůžete použít tuto kombinaci nastavení hesla." diff --git a/lam/locale/de_DE/LC_MESSAGES/messages.mo b/lam/locale/de_DE/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..82e5088d Binary files /dev/null and b/lam/locale/de_DE/LC_MESSAGES/messages.mo differ diff --git a/lam/locale/de_DE/LC_MESSAGES/messages.po b/lam/locale/de_DE/LC_MESSAGES/messages.po new file mode 100644 index 00000000..0cbbf912 --- /dev/null +++ b/lam/locale/de_DE/LC_MESSAGES/messages.po @@ -0,0 +1,17447 @@ +# translation of messages.po to Deutsch +# translation of messages.po to +# $Id: messages.po,v 1.31 2004/10/01 12:29:15 gruberroland Exp $ +# +# +# LDAP Account Manager +# +# Roland Gruber , 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014. +msgid "" +msgstr "" +"Project-Id-Version: messages\n" +"Report-Msgid-Bugs-To: post@rolandgruber.de \n" +"POT-Creation-Date: 2004-01-14 17:45+0200\n" +"PO-Revision-Date: 2014-09-13 16:48+0200\n" +"Last-Translator: Roland Gruber \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../lib/modules/zarafaContact.inc:95 ../lib/modules/zarafaContact.inc:98 +#: ../lib/modules/zarafaContact.inc:101 ../lib/modules/zarafaContact.inc:126 +#: ../lib/modules/zarafaGroup.inc:97 ../lib/modules/zarafaGroup.inc:100 +#: ../lib/modules/zarafaGroup.inc:103 ../lib/modules/zarafaGroup.inc:130 +#: ../lib/modules/zarafaUser.inc:144 ../lib/modules/zarafaUser.inc:147 +#: ../lib/modules/zarafaUser.inc:150 ../lib/modules/zarafaUser.inc:1812 +msgid "\"Send as\" attribute" +msgstr "\"Senden als\"-Attribut" + +#: ../lib/modules/zarafaContact.inc:79 ../lib/modules/zarafaContact.inc:150 +#: ../lib/modules/zarafaContact.inc:173 ../lib/modules/zarafaContact.inc:187 +#: ../lib/modules/zarafaContact.inc:226 ../lib/modules/zarafaContact.inc:355 +#: ../lib/modules/zarafaContact.inc:565 ../lib/modules/zarafaGroup.inc:93 +#: ../lib/modules/zarafaGroup.inc:138 ../lib/modules/zarafaGroup.inc:188 +#: ../lib/modules/zarafaGroup.inc:206 ../lib/modules/zarafaGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:263 ../lib/modules/zarafaGroup.inc:415 +#: ../lib/modules/zarafaGroup.inc:650 ../lib/modules/zarafaUser.inc:104 +#: ../lib/modules/zarafaUser.inc:196 ../lib/modules/zarafaUser.inc:355 +#: ../lib/modules/zarafaUser.inc:382 ../lib/modules/zarafaUser.inc:419 +#: ../lib/modules/zarafaUser.inc:463 ../lib/modules/zarafaUser.inc:839 +#: ../lib/modules/zarafaUser.inc:1234 ../lib/modules/zarafaUser.inc:1465 +#: ../lib/modules/zarafaUser.inc:1793 +msgid "\"Send as\" privileges" +msgstr "\"Senden als\"-Privilegien" + +#: ../lib/modules/posixAccount.inc:519 +msgid "" +"$user and $group will be replaced with user name and primary group name." +msgstr "$user und $group werden durch Benutzer- und Gruppenname ersetzt." + +#: ../lib/modules/nisnetgroup.inc:134 +msgid "(host1,user1,example.com);(host2,user2,example.com)" +msgstr "(host1,benutzer1,firma.de);(host2,benutzer2,firma.de)" + +#: ../lib/modules/qmailUser.inc:368 ../lib/modules/posixAccount.inc:312 +msgid "/home/smiller" +msgstr "/home/hmueller" + +#: ../lib/modules/inetOrgPerson.inc:422 +#: ../lib/modules/asteriskVoicemail.inc:186 +msgid "123-123-1234" +msgstr "01234 123456" + +#: ../lib/modules/inetOrgPerson.inc:438 +msgid "123-123-1235" +msgstr "01234 123457" + +#: ../lib/modules/inetOrgPerson.inc:446 ../lib/modules/inetOrgPerson.inc:454 +msgid "123-123-1236" +msgstr "01234 123458" + +#: ../lib/modules/windowsUser.inc:364 ../lib/modules/windowsUser.inc:370 +#: ../lib/modules/inetOrgPerson.inc:430 +msgid "123-124-1234" +msgstr "01234 123459" + +#: ../lib/modules/windowsUser.inc:322 ../lib/modules/inetOrgPerson.inc:414 +msgid "12345" +msgstr "12345" + +#: ../lib/modules/dhcp_settings.inc:174 +msgid "" +"B-Node (0x01): Broadcast.
    The client tries to find other " +"workstations via broadcasting\n" +"(works only inside the same collision domain, viz. the same subnet).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"The client contacts a Netbios name server (NBNS) from Microsoft Windows Name " +"Service (WINS) for name resolution.

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"The node tries broadcasting first. If that fails then it tries WINS.

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"The node tries WINS first. If that fails it tries broadcasting.

    \n" +"\n" +"By default, the nodes are configured as H-Nodes which fits for small " +"networks. In large networks Point-to-Point (0x02) should be used." +msgstr "" +"B-Knoten (0x01): Broadcast.
    Der Client versucht andere " +"Workstations mittels Broadcasting zu finden.\n" +"(funktioniert nur innerhalb der selben Kollisionsdomäne, d.h. Subnetz).

    \n" +"\n" +"P-Knoten (0x02): Point-To-Point
    \n" +"Der Client kontaktiert einen Netbios-Nameserver (NBNS) über den Microsoft " +"Windows Name Service (WINS) für die Namensauflösung.

    \n" +"\n" +"M-Knoten (0x04): Gemischt
    \n" +"Der Knoten versucht erst Broadcasting und im Fehlerfall WINS.

    \n" +"\n" +"H-Knoten (0x08): Hybrid
    \n" +"Der Knoten versucht erst WINS und im Fehlerfall Broadcasting.

    \n" +"\n" +"Standardmäßig werden Knoten als H-Knoten konfiguriert. Dies eignet sich " +"besonders für kleine Netze. In großen Netzen sollte Point-to-Point (0x02) " +"verwendet werden." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:145 +#, php-format +msgid "Maximum length: %s characters" +msgstr "Maximale Länge: %s Zeichen" + +#: ../lib/modules/bindDLZ.inc:499 +msgid "A CNAME record allows no other records." +msgstr "CNAME-Einträge erlauben keine anderen Einträge." + +#: ../lib/modules/bindDLZ.inc:533 +msgid "A NS record allows no other records except SOA/MX/A records." +msgstr "NS-Einträge erlauben keine anderen Einträge außer SOA/MX/A." + +#: ../lib/modules/bindDLZ.inc:517 +msgid "A SOA record allows no other records except NS/MX/A records." +msgstr "SOA-Einträge erlauben keine anderen Einträge außer NS/MX/A." + +#: ../lib/modules/bindDLZ.inc:518 +msgid "A SOA record requires that the host name is set to \"@\"." +msgstr "Ein SOA-Eintrag erfordert, dass der Hostname \"@\" ist." + +#: ../lib/modules/selfRegistration.inc:631 +#: ../lib/modules/passwordSelfReset.inc:1590 +msgid "" +"A confirmation mail was sent. Please click on the link in the mail to " +"proceed." +msgstr "" +"Die Bestätigungs-email wurde gesendet. Bitte klicken Sie auf den Link in der " +"email um fortzufahren." + +#: ../lib/modules/device.inc:82 +msgid "A description for this device." +msgstr "Hier können Sie eine Beschreibung für das Gerät eintragen." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +msgid "A list of attributes to display in the results (comma-separated)" +msgstr "" +"Die Liste der Attribute, die in den Ergebnissen angezeigt werden sollen " +"(durch Komma getrennt)." + +#: ../lib/modules/sudoRole.inc:95 ../lib/modules/sudoRole.inc:124 +msgid "A list of options (e.g. !authenticate)." +msgstr "Dies ist eine Liste von sudo-Optionen (z.B. !authenticate)." + +#: ../templates/massBuildAccounts.php:135 +msgid "A required column is missing in your CSV file." +msgstr "In der CSV-Datei fehlt eine benötigte Spalte." + +#: ../lib/modules/bindDLZ.inc:172 ../lib/modules/bindDLZ.inc:176 +msgid "A server name for this service (e.g. \"ldap.example.com.\")." +msgstr "Servername für diesen Dienst (z.B. \"ldap.beispiel.de\")." + +#: ../lib/modules/bindDLZ.inc:164 ../lib/modules/bindDLZ.inc:168 +msgid "A text value for this host." +msgstr "Eine textuelle Beschreibung für diesen Host." + +#: ../lib/modules/kolabUser.inc:133 +msgid "" +"A user may define who is allowed to act on behalf of herself. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"Benutzer können erlauben, dass andere in ihrem Namen handeln. Diese Option " +"wird geprüft wenn über Kolab emails versendet werden." + +#: ../templates/3rdParty/pla/lib/import_functions.php:593 +msgid "A valid deleteoldrdn attribute should be specified" +msgstr "Sie sollten ein gültiges deleteoldrdn Attribut angeben." + +#: ../templates/3rdParty/pla/lib/import_functions.php:237 +msgid "A valid dn line is required" +msgstr "Bitte geben Sie eine dn-Zeile an." + +#: ../templates/3rdParty/pla/lib/import_functions.php:596 +msgid "A valid newrdn attribute should be specified" +msgstr "Bitte geben Sie ein gültiges newrdn Attribut an." + +#: ../templates/3rdParty/pla/lib/import_functions.php:587 +msgid "A valid newsuperior attribute should be specified" +msgstr "Bitte geben Sie ein gültiges newsuperier Attribut an." + +#: ../lib/modules/bindDLZ.inc:96 ../lib/modules/bindDLZ.inc:105 +#: ../lib/modules/bindDLZ.inc:255 ../lib/modules/bindDLZ.inc:261 +#: ../lib/modules/bindDLZ.inc:479 +msgid "A/AAAA record" +msgstr "A/AAAA-Eintrag" + +#: ../lib/modules/bindDLZ.inc:418 ../lib/modules/bindDLZ.inc:438 +#: ../lib/modules/bindDLZ.inc:1476 +msgid "A/AAAA records" +msgstr "A/AAAA-Einträge" + +#: ../lib/modules/asteriskAccount.inc:131 +#: ../lib/modules/asteriskAccount.inc:271 +#: ../lib/modules/asteriskAccount.inc:347 +#: ../lib/modules/asteriskAccount.inc:610 +#: ../lib/modules/asteriskAccount.inc:987 +#: ../lib/modules/asteriskAccount.inc:1243 +msgid "AMA flags" +msgstr "AMA-Flags" + +#: ../templates/serverInfo.php:342 +msgid "Abandon" +msgstr "Abbrechen" + +#: ../templates/lists/changePassword.php:723 +msgid "Aborted password change." +msgstr "Passwortänderung wurde abgebrochen." + +#: ../lib/modules/sambaSamAccount.inc:569 +msgid "Abu Dhabi, Muscat, Baku" +msgstr "Abu Dhabi, Muscat, Baku" + +#: ../templates/config/confmain.php:264 ../help/help.inc:109 +msgid "Access level" +msgstr "Zugriffsrechte" + +#: ../lib/modules/account.inc:65 +msgid "Account" +msgstr "Account" + +#: ../templates/massBuildAccounts.php:201 ../lib/modules/kolabGroup.inc:178 +#: ../lib/modules/kolabGroup.inc:180 ../lib/modules/kolabGroup.inc:182 +#: ../lib/modules/kolabGroup.inc:184 ../lib/modules/pykotaPrinter.inc:210 +#: ../lib/modules/pykotaPrinter.inc:212 ../lib/modules/pykotaPrinter.inc:214 +#: ../lib/modules/pykotaPrinter.inc:216 ../lib/modules/pykotaPrinter.inc:218 +#: ../lib/modules/pykotaPrinter.inc:219 ../lib/modules/pykotaPrinter.inc:220 +#: ../lib/modules/mitKerberos.inc:290 ../lib/modules/mitKerberos.inc:291 +#: ../lib/modules/mitKerberos.inc:292 ../lib/modules/mitKerberos.inc:294 +#: ../lib/modules/mitKerberos.inc:296 ../lib/modules/mitKerberos.inc:297 +#: ../lib/modules/zarafaDynamicGroup.inc:197 +#: ../lib/modules/zarafaDynamicGroup.inc:199 +#: ../lib/modules/zarafaDynamicGroup.inc:201 +#: ../lib/modules/zarafaDynamicGroup.inc:203 +#: ../lib/modules/zarafaDynamicGroup.inc:204 +#: ../lib/modules/zarafaDynamicGroup.inc:205 ../lib/modules/ipHost.inc:116 +#: ../lib/modules/ipHost.inc:117 ../lib/modules/asteriskAccount.inc:558 +#: ../lib/modules/asteriskAccount.inc:561 +#: ../lib/modules/asteriskAccount.inc:564 +#: ../lib/modules/asteriskAccount.inc:567 +#: ../lib/modules/asteriskAccount.inc:569 +#: ../lib/modules/asteriskAccount.inc:571 +#: ../lib/modules/asteriskAccount.inc:573 +#: ../lib/modules/asteriskAccount.inc:575 +#: ../lib/modules/asteriskAccount.inc:577 ../lib/modules/account.inc:125 +#: ../lib/modules/ieee802device.inc:96 ../lib/modules/puppetClient.inc:185 +#: ../lib/modules/puppetClient.inc:187 ../lib/modules/puppetClient.inc:189 +#: ../lib/modules/puppetClient.inc:190 ../lib/modules/qmailUser.inc:449 +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:453 +#: ../lib/modules/qmailUser.inc:454 ../lib/modules/qmailUser.inc:455 +#: ../lib/modules/qmailUser.inc:457 ../lib/modules/qmailUser.inc:459 +#: ../lib/modules/qmailUser.inc:461 ../lib/modules/qmailUser.inc:464 +#: ../lib/modules/qmailUser.inc:467 ../lib/modules/qmailUser.inc:469 +#: ../lib/modules/qmailUser.inc:470 ../lib/modules/qmailUser.inc:471 +#: ../lib/modules/zarafaContact.inc:186 ../lib/modules/zarafaContact.inc:188 +#: ../lib/modules/zarafaContact.inc:189 ../lib/modules/zarafaContact.inc:190 +#: ../lib/modules/zarafaContact.inc:191 ../lib/modules/windowsHost.inc:132 +#: ../lib/modules/posixGroup.inc:601 ../lib/modules/posixGroup.inc:605 +#: ../lib/modules/posixGroup.inc:606 ../lib/modules/zarafaGroup.inc:216 +#: ../lib/modules/zarafaGroup.inc:218 ../lib/modules/zarafaGroup.inc:219 +#: ../lib/modules/zarafaGroup.inc:220 ../lib/modules/zarafaGroup.inc:221 +#: ../lib/modules/zarafaGroup.inc:223 ../lib/modules/device.inc:141 +#: ../lib/modules/device.inc:142 ../lib/modules/dhcp_settings.inc:321 +#: ../lib/modules/dhcp_settings.inc:323 ../lib/modules/dhcp_settings.inc:325 +#: ../lib/modules/dhcp_settings.inc:327 ../lib/modules/dhcp_settings.inc:329 +#: ../lib/modules/dhcp_settings.inc:330 ../lib/modules/dhcp_settings.inc:331 +#: ../lib/modules/dhcp_settings.inc:333 ../lib/modules/dhcp_settings.inc:335 +#: ../lib/modules/dhcp_settings.inc:339 ../lib/modules/eduPerson.inc:244 +#: ../lib/modules/eduPerson.inc:246 ../lib/modules/eduPerson.inc:248 +#: ../lib/modules/eduPerson.inc:250 ../lib/modules/eduPerson.inc:251 +#: ../lib/modules/eduPerson.inc:252 ../lib/modules/eduPerson.inc:253 +#: ../lib/modules/quota.inc:52 ../lib/modules/quota.inc:54 +#: ../lib/modules/quota.inc:56 ../lib/modules/quota.inc:58 +#: ../lib/modules/quota.inc:60 ../lib/modules/quota.inc:62 +#: ../lib/modules/quota.inc:63 ../lib/modules/zarafaAddressList.inc:170 +#: ../lib/modules/zarafaAddressList.inc:171 +#: ../lib/modules/zarafaAddressList.inc:172 ../lib/modules/pykotaGroup.inc:198 +#: ../lib/modules/pykotaGroup.inc:200 ../lib/modules/pykotaGroup.inc:202 +#: ../lib/modules/pykotaGroup.inc:204 ../lib/modules/pykotaGroup.inc:205 +#: ../lib/modules/sambaSamAccount.inc:96 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:102 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:107 +#: ../lib/modules/sambaSamAccount.inc:108 +#: ../lib/modules/sambaSamAccount.inc:109 +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 +#: ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/sambaSamAccount.inc:117 +#: ../lib/modules/sambaSamAccount.inc:118 +#: ../lib/modules/sambaSamAccount.inc:120 +#: ../lib/modules/sambaSamAccount.inc:121 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/posixAccount.inc:107 ../lib/modules/posixAccount.inc:111 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/posixAccount.inc:124 +#: ../lib/modules/posixAccount.inc:126 ../lib/modules/posixAccount.inc:127 +#: ../lib/modules/posixAccount.inc:128 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/zarafaUser.inc:409 ../lib/modules/zarafaUser.inc:411 +#: ../lib/modules/zarafaUser.inc:413 ../lib/modules/zarafaUser.inc:414 +#: ../lib/modules/zarafaUser.inc:416 ../lib/modules/zarafaUser.inc:418 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/zarafaUser.inc:421 +#: ../lib/modules/zarafaUser.inc:422 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:424 ../lib/modules/zarafaUser.inc:425 +#: ../lib/modules/zarafaUser.inc:426 ../lib/modules/zarafaUser.inc:427 +#: ../lib/modules/ppolicyUser.inc:97 ../lib/modules/bindDLZ.inc:478 +#: ../lib/modules/bindDLZ.inc:480 ../lib/modules/bindDLZ.inc:482 +#: ../lib/modules/bindDLZ.inc:484 ../lib/modules/bindDLZ.inc:486 +#: ../lib/modules/bindDLZ.inc:488 ../lib/modules/bindDLZ.inc:490 +#: ../lib/modules/bindDLZ.inc:492 ../lib/modules/bindDLZ.inc:494 +#: ../lib/modules/bindDLZ.inc:496 ../lib/modules/bindDLZ.inc:498 +#: ../lib/modules/bindDLZ.inc:499 ../lib/modules/bindDLZ.inc:501 +#: ../lib/modules/bindDLZ.inc:503 ../lib/modules/bindDLZ.inc:505 +#: ../lib/modules/bindDLZ.inc:507 ../lib/modules/bindDLZ.inc:509 +#: ../lib/modules/bindDLZ.inc:511 ../lib/modules/bindDLZ.inc:513 +#: ../lib/modules/bindDLZ.inc:515 ../lib/modules/bindDLZ.inc:516 +#: ../lib/modules/bindDLZ.inc:517 ../lib/modules/bindDLZ.inc:518 +#: ../lib/modules/bindDLZ.inc:520 ../lib/modules/bindDLZ.inc:522 +#: ../lib/modules/bindDLZ.inc:524 ../lib/modules/bindDLZ.inc:526 +#: ../lib/modules/bindDLZ.inc:528 ../lib/modules/bindDLZ.inc:530 +#: ../lib/modules/bindDLZ.inc:532 ../lib/modules/bindDLZ.inc:533 +#: ../lib/modules/windowsUser.inc:590 ../lib/modules/windowsUser.inc:592 +#: ../lib/modules/windowsUser.inc:594 ../lib/modules/windowsUser.inc:596 +#: ../lib/modules/windowsUser.inc:598 ../lib/modules/windowsUser.inc:600 +#: ../lib/modules/windowsUser.inc:602 ../lib/modules/windowsUser.inc:604 +#: ../lib/modules/windowsUser.inc:606 ../lib/modules/windowsUser.inc:608 +#: ../lib/modules/windowsUser.inc:610 ../lib/modules/windowsUser.inc:612 +#: ../lib/modules/windowsUser.inc:614 ../lib/modules/windowsUser.inc:617 +#: ../lib/modules/windowsUser.inc:619 ../lib/modules/windowsUser.inc:621 +#: ../lib/modules/windowsUser.inc:1360 ../lib/modules/windowsUser.inc:1369 +#: ../lib/modules/windowsUser.inc:1378 ../lib/modules/windowsUser.inc:1389 +#: ../lib/modules/windowsUser.inc:1456 ../lib/modules/kolabUser.inc:246 +#: ../lib/modules/kolabUser.inc:248 ../lib/modules/kolabUser.inc:250 +#: ../lib/modules/kolabUser.inc:252 ../lib/modules/kolabUser.inc:254 +#: ../lib/modules/kolabUser.inc:256 ../lib/modules/kolabUser.inc:258 +#: ../lib/modules/ddns.inc:152 ../lib/modules/nisObject.inc:124 +#: ../lib/modules/sambaGroupMapping.inc:603 +#: ../lib/modules/sambaGroupMapping.inc:604 ../lib/modules/pykotaUser.inc:312 +#: ../lib/modules/pykotaUser.inc:314 ../lib/modules/pykotaUser.inc:316 +#: ../lib/modules/pykotaUser.inc:318 ../lib/modules/pykotaUser.inc:320 +#: ../lib/modules/pykotaUser.inc:321 ../lib/modules/pykotaUser.inc:323 +#: ../lib/modules/pykotaUser.inc:325 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/shadowAccount.inc:60 ../lib/modules/shadowAccount.inc:62 +#: ../lib/modules/shadowAccount.inc:64 ../lib/modules/shadowAccount.inc:66 +#: ../lib/modules/shadowAccount.inc:67 ../lib/modules/automount.inc:115 +#: ../lib/modules/sambaDomain.inc:209 ../lib/modules/sambaDomain.inc:211 +#: ../lib/modules/sambaDomain.inc:213 ../lib/modules/sambaDomain.inc:215 +#: ../lib/modules/sambaDomain.inc:217 ../lib/modules/sambaDomain.inc:219 +#: ../lib/modules/inetOrgPerson.inc:67 ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:71 ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:75 ../lib/modules/inetOrgPerson.inc:77 +#: ../lib/modules/inetOrgPerson.inc:79 ../lib/modules/inetOrgPerson.inc:82 +#: ../lib/modules/inetOrgPerson.inc:84 ../lib/modules/inetOrgPerson.inc:86 +#: ../lib/modules/inetOrgPerson.inc:88 ../lib/modules/inetOrgPerson.inc:90 +#: ../lib/modules/inetOrgPerson.inc:92 ../lib/modules/inetOrgPerson.inc:94 +#: ../lib/modules/inetOrgPerson.inc:96 ../lib/modules/inetOrgPerson.inc:98 +#: ../lib/modules/inetOrgPerson.inc:99 ../lib/modules/inetOrgPerson.inc:100 +#: ../lib/modules/inetOrgPerson.inc:106 ../lib/modules/inetOrgPerson.inc:107 +#: ../lib/modules/inetOrgPerson.inc:108 ../lib/modules/systemQuotas.inc:98 +#: ../lib/modules/systemQuotas.inc:100 ../lib/modules/systemQuotas.inc:102 +#: ../lib/modules/systemQuotas.inc:104 ../lib/modules/systemQuotas.inc:106 +#: ../lib/modules/systemQuotas.inc:108 ../lib/modules/systemQuotas.inc:110 +#: ../lib/modules/freeRadius.inc:250 ../lib/modules/freeRadius.inc:252 +#: ../lib/modules/freeRadius.inc:254 ../lib/modules/freeRadius.inc:256 +#: ../lib/modules/freeRadius.inc:258 ../lib/modules/freeRadius.inc:260 +#: ../lib/modules/sudoRole.inc:270 ../lib/modules/sudoRole.inc:272 +#: ../lib/modules/sudoRole.inc:274 ../lib/modules/sudoRole.inc:276 +#: ../lib/modules/sudoRole.inc:278 ../lib/modules/sudoRole.inc:280 +#: ../lib/modules/sudoRole.inc:282 ../lib/modules/sudoRole.inc:284 +#: ../lib/modules/sudoRole.inc:286 ../lib/modules/kolabSharedFolder.inc:251 +#: ../lib/modules/kolabSharedFolder.inc:253 +#: ../lib/modules/kolabSharedFolder.inc:255 +#: ../lib/modules/kolabSharedFolder.inc:256 +#: ../lib/modules/kolabSharedFolder.inc:258 +#: ../lib/modules/kolabSharedFolder.inc:260 +#: ../lib/modules/zarafaServer.inc:174 ../lib/modules/zarafaServer.inc:176 +#: ../lib/modules/zarafaServer.inc:178 ../lib/modules/zarafaServer.inc:179 +#: ../lib/modules/asteriskVoicemail.inc:212 +#: ../lib/modules/asteriskVoicemail.inc:216 +#: ../lib/modules/asteriskVoicemail.inc:219 +#: ../lib/modules/asteriskVoicemail.inc:221 +#: ../lib/modules/asteriskVoicemail.inc:223 +#: ../lib/modules/asteriskVoicemail.inc:225 +#: ../lib/modules/asteriskVoicemail.inc:227 +#: ../lib/modules/inetLocalMailRecipient.inc:131 +#: ../lib/modules/inetLocalMailRecipient.inc:133 +#: ../lib/modules/inetLocalMailRecipient.inc:135 +#: ../lib/modules/aliasEntry.inc:86 ../lib/modules/qmailGroup.inc:421 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:426 +#: ../lib/modules/qmailGroup.inc:428 ../lib/modules/qmailGroup.inc:430 +#: ../lib/modules/qmailGroup.inc:432 ../lib/modules/qmailGroup.inc:433 +#: ../lib/modules/qmailGroup.inc:434 ../lib/modules/qmailGroup.inc:435 +#: ../lib/modules/qmailGroup.inc:436 ../lib/modules/qmailGroup.inc:437 +#: ../lib/modules/authorizedServiceObject.inc:130 +#: ../lib/modules/passwordSelfReset.inc:233 +#: ../lib/modules/heimdalKerberos.inc:254 +#: ../lib/modules/heimdalKerberos.inc:255 +#: ../lib/modules/heimdalKerberos.inc:256 +#: ../lib/modules/heimdalKerberos.inc:258 +#: ../lib/modules/heimdalKerberos.inc:260 +#: ../lib/modules/pykotaBillingCode.inc:128 +#: ../lib/modules/pykotaBillingCode.inc:130 +#: ../lib/modules/windowsGroup.inc:284 ../lib/modules/windowsGroup.inc:286 +#: ../lib/modules/windowsGroup.inc:287 ../lib/modules/windowsGroup.inc:288 +#: ../lib/modules/windowsGroup.inc:290 ../lib/modules/nisMailAlias.inc:126 +#: ../lib/modules/nisMailAlias.inc:128 ../lib/modules/hostObject.inc:111 +#, php-format +msgid "Account %s:" +msgstr "Account %s:" + +#: ../lib/types/asteriskExt.inc:95 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskAccount.inc:111 +#: ../lib/modules/asteriskAccount.inc:255 +#: ../lib/modules/asteriskAccount.inc:267 +#: ../lib/modules/asteriskAccount.inc:311 +#: ../lib/modules/asteriskAccount.inc:593 +#: ../lib/modules/asteriskAccount.inc:983 +#: ../lib/modules/asteriskExtension.inc:98 +#: ../lib/modules/asteriskExtension.inc:129 +#: ../lib/modules/asteriskExtension.inc:136 +#: ../lib/modules/asteriskExtension.inc:152 +#: ../lib/modules/asteriskExtension.inc:306 +#: ../lib/modules/asteriskExtension.inc:812 +#: ../lib/modules/asteriskVoicemail.inc:91 +#: ../lib/modules/asteriskVoicemail.inc:127 +#: ../lib/modules/asteriskVoicemail.inc:137 +#: ../lib/modules/asteriskVoicemail.inc:151 +#: ../lib/modules/asteriskVoicemail.inc:247 +#: ../lib/modules/asteriskVoicemail.inc:370 +msgid "Account context" +msgstr "Accountkontext" + +#: ../lib/modules/selfRegistration.inc:449 +msgid "Account creation" +msgstr "Benutzeranlage" + +#: ../lib/modules/selfRegistration.inc:231 +msgid "Account creation confirmation" +msgstr "Bestätigung der Benutzeranlage" + +#: ../templates/masscreate.php:125 +msgid "Account creation via file upload" +msgstr "Erstellung von Accounts mittels Dateiupload" + +#: ../lib/modules/posixAccount.inc:526 +msgid "Account deactivated" +msgstr "Account deaktiviert" + +#: ../templates/lists/changePassword.php:280 +msgid "Account details" +msgstr "Accountdetails" + +#: ../lib/types/user.inc:104 ../lib/modules/mitKerberos.inc:124 +#: ../lib/modules/mitKerberos.inc:218 ../lib/modules/mitKerberos.inc:251 +#: ../lib/modules/mitKerberos.inc:385 ../lib/modules/mitKerberos.inc:634 +#: ../lib/modules/mitKerberos.inc:783 ../lib/modules/sambaSamAccount.inc:346 +#: ../lib/modules/sambaSamAccount.inc:464 +#: ../lib/modules/sambaSamAccount.inc:1194 +#: ../lib/modules/sambaSamAccount.inc:1452 +#: ../lib/modules/sambaSamAccount.inc:1746 +#: ../lib/modules/shadowAccount.inc:128 ../lib/modules/shadowAccount.inc:193 +#: ../lib/modules/shadowAccount.inc:233 ../lib/modules/shadowAccount.inc:352 +#: ../lib/modules/shadowAccount.inc:453 ../lib/modules/shadowAccount.inc:499 +#: ../lib/modules/heimdalKerberos.inc:102 +#: ../lib/modules/heimdalKerberos.inc:187 +#: ../lib/modules/heimdalKerberos.inc:219 +#: ../lib/modules/heimdalKerberos.inc:321 +#: ../lib/modules/heimdalKerberos.inc:544 +#: ../lib/modules/heimdalKerberos.inc:679 +msgid "Account expiration date" +msgstr "Ablaufdatum" + +#: ../lib/modules/shadowAccount.inc:169 +msgid "Account inactive" +msgstr "Account ist deaktiviert" + +#: ../lib/modules/sambaSamAccount.inc:286 +#: ../lib/modules/sambaSamAccount.inc:292 +#: ../lib/modules/sambaSamAccount.inc:456 +#: ../lib/modules/sambaSamAccount.inc:1152 +#: ../lib/modules/sambaSamAccount.inc:1742 ../lib/modules/windowsUser.inc:192 +#: ../lib/modules/windowsUser.inc:386 ../lib/modules/windowsUser.inc:517 +#: ../lib/modules/windowsUser.inc:744 ../lib/modules/windowsUser.inc:1619 +msgid "Account is deactivated" +msgstr "Account deaktiviert" + +#: ../lib/modules/sambaSamAccount.inc:289 +#: ../lib/modules/sambaSamAccount.inc:1158 ../lib/modules/windowsUser.inc:195 +#: ../lib/modules/windowsUser.inc:725 +msgid "Account is locked" +msgstr "Account gesperrt" + +#: ../templates/delete.php:99 +msgid "Account name:" +msgstr "Accountname:" + +#: ../lib/types/user.inc:305 ../lib/types/user.inc:714 +#: ../lib/types/user.inc:848 ../lib/modules/qmailUser.inc:211 +#: ../lib/modules/qmailUser.inc:283 ../lib/modules/qmailUser.inc:402 +#: ../lib/modules/qmailUser.inc:609 ../lib/modules/qmailUser.inc:1157 +msgid "Account status" +msgstr "Accountstatus" + +#: ../templates/masscreate.php:152 ../lib/modules/asteriskAccount.inc:119 +#: ../lib/modules/asteriskAccount.inc:256 +#: ../lib/modules/asteriskAccount.inc:269 +#: ../lib/modules/asteriskAccount.inc:331 +#: ../lib/modules/asteriskAccount.inc:595 +#: ../lib/modules/asteriskAccount.inc:985 ../lib/modules/customFields.inc:524 +#: ../lib/modules/customFields.inc:566 +msgid "Account type" +msgstr "Accounttyp" + +#: ../templates/config/confmodules.php:168 +#: ../templates/config/confmain.php:209 +#: ../templates/config/moduleSettings.php:167 +#: ../templates/config/conftypes.php:186 +msgid "Account types" +msgstr "Accounttypen" + +#: ../help/help.inc:111 +msgid "Account types and modules" +msgstr "Accounttypen und ~module" + +#: ../help/help.inc:113 +msgid "" +"Account types define which sorts of LDAP entries (e.g. users and groups) " +"should be managed. The account modules define which properties (e.g. Unix " +"and Samba) can be edited." +msgstr "" +"Account-Typen bestimmen, welche Art von LDAP-Einträgen (z.B. Benutzer und " +"Gruppen) verwaltet werden sollen. Die Account-Module legen fest, welche " +"Attribute (z.B. Unix und Samba) bearbeitet werden können." + +#: ../lib/modules.inc:1315 +msgid "Account was created successfully." +msgstr "Account wurde erfolgreich erstellt." + +#: ../templates/lists/changePassword.php:753 +#: ../templates/lists/changePassword.php:805 +#: ../templates/lists/changePassword.php:851 ../lib/modules.inc:1318 +msgid "Account was modified successfully." +msgstr "Account wurde erfolgreich geändert." + +#: ../lib/modules/customScripts.inc:168 +msgid "Action type" +msgstr "Aktionsart" + +#: ../lib/modules/ddns.inc:81 ../lib/modules/ddns.inc:368 +msgid "Activate DynDNS" +msgstr "DynDNS aktivieren" + +#: ../templates/config/confmain.php:243 +#: ../templates/selfService/adminMain.php:419 +msgid "Activate TLS" +msgstr "TLS aktivieren" + +#: ../lib/modules/sambaSamAccount.inc:353 +msgid "Activate this checkbox to allow this user to use the terminal service." +msgstr "" +"Aktivieren Sie dieses Kästchen, damit der Benutzer den Terminalservice " +"benutzen darf." + +#: ../lib/modules/sambaSamAccount.inc:374 +msgid "Activate this checkbox to connect drives from the client machine." +msgstr "Aktivieren Sie dieses Kästchen um Client-Laufwerke zu verbinden." + +#: ../lib/modules/sambaSamAccount.inc:377 +msgid "Activate this checkbox to connect printers from the client machine." +msgstr "" +"Wenn Sie dieses Kästchen aktivieren, dann werden die Client-Drucker " +"verbunden." + +#: ../lib/modules/sambaSamAccount.inc:362 +msgid "" +"Activate this checkbox to inherit the initial program and working directory " +"from the client machine." +msgstr "" +"Aktivieren Sie dieses Kästchen um das Startprogramm und Arbeitsverzeichnis " +"von der Client-Maschine zu übernehmen." + +#: ../lib/modules/sambaSamAccount.inc:380 +msgid "Activate this checkbox to set the client's printer as default printer." +msgstr "" +"Wenn Sie dieses Kästchen aktivieren, dann der Client-Drucker als " +"Standarddrucker verwendet." + +#: ../lib/modules/posixAccount.inc:478 +msgid "Activating this checkbox will remove the user's home directory." +msgstr "" +"Wenn Sie dieses Kästchen aktivieren, dann wird das Heimatverzeichnis des " +"Benutzers gelöscht." + +#: ../lib/types/zarafaAddressListType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:93 +#: ../lib/modules/zarafaDynamicGroup.inc:83 +#: ../lib/modules/zarafaDynamicGroup.inc:144 +#: ../lib/modules/zarafaDynamicGroup.inc:168 +#: ../lib/modules/zarafaDynamicGroup.inc:281 +#: ../lib/modules/zarafaDynamicGroup.inc:456 ../lib/modules/qmailUser.inc:41 +#: ../lib/modules/qmailUser.inc:285 ../lib/modules/zarafaContact.inc:75 +#: ../lib/modules/zarafaContact.inc:156 ../lib/modules/zarafaContact.inc:254 +#: ../lib/modules/zarafaGroup.inc:89 ../lib/modules/zarafaGroup.inc:154 +#: ../lib/modules/zarafaGroup.inc:195 ../lib/modules/zarafaGroup.inc:302 +#: ../lib/modules/zarafaGroup.inc:660 ../lib/modules/zarafaAddressList.inc:71 +#: ../lib/modules/zarafaAddressList.inc:120 +#: ../lib/modules/zarafaAddressList.inc:142 +#: ../lib/modules/zarafaAddressList.inc:222 +#: ../lib/modules/zarafaAddressList.inc:338 ../lib/modules/zarafaUser.inc:84 +#: ../lib/modules/zarafaUser.inc:255 ../lib/modules/zarafaUser.inc:594 +#: ../lib/modules/zarafaUser.inc:1801 ../lib/modules/fixed_ip.inc:114 +#: ../lib/modules/fixed_ip.inc:438 ../lib/modules/fixed_ip.inc:743 +msgid "Active" +msgstr "Aktiv" + +#: ../templates/config/conftypes.php:233 +msgid "Active account types" +msgstr "Aktive Accounttypen" + +#: ../templates/serverInfo.php:307 ../templates/serverInfo.php:384 +#: ../templates/multiEdit.php:126 ../templates/config/profmanage.php:252 +#: ../templates/config/confmodules.php:305 +#: ../templates/config/conftypes.php:223 +#: ../templates/selfService/profManage.php:209 +#: ../templates/pdfedit/pdfpage.php:596 ../templates/pdfedit/pdfpage.php:606 +#: ../templates/pdfedit/pdfpage.php:616 ../templates/pdfedit/pdfpage.php:630 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1206 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1210 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:78 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:121 +#: ../lib/modules/pykotaPrinter.inc:269 ../lib/modules/pykotaPrinter.inc:430 +#: ../lib/modules/nisMailAliasUser.inc:162 +#: ../lib/modules/nisMailAliasUser.inc:201 +#: ../lib/modules/nisMailAliasUser.inc:387 +#: ../lib/modules/zarafaContact.inc:390 ../lib/modules/zarafaGroup.inc:450 +#: ../lib/modules/device.inc:253 ../lib/modules/zarafaUser.inc:874 +#: ../lib/modules/zarafaUser.inc:1462 ../lib/modules/zarafaUser.inc:1494 +#: ../lib/modules/bindDLZ.inc:675 ../lib/modules/bindDLZ.inc:767 +#: ../lib/modules/bindDLZ.inc:847 ../lib/modules/bindDLZ.inc:951 +#: ../lib/modules/bindDLZ.inc:1067 ../lib/modules/bindDLZ.inc:1179 +#: ../lib/modules/bindDLZ.inc:1275 ../lib/modules/bindDLZ.inc:1389 +#: ../lib/modules/kolabUser.inc:835 ../lib/modules/kolabUser.inc:883 +#: ../lib/modules/sambaGroupMapping.inc:392 +#: ../lib/modules/sambaGroupMapping.inc:489 ../lib/modules/pykotaUser.inc:377 +#: ../lib/modules/ldapPublicKey.inc:267 ../lib/modules/ldapPublicKey.inc:277 +#: ../lib/modules/nisnetgroup.inc:282 ../lib/modules/inetOrgPerson.inc:1742 +#: ../lib/modules/sudoRole.inc:321 ../lib/modules/sudoRole.inc:348 +#: ../lib/modules/sudoRole.inc:375 ../lib/modules/sudoRole.inc:402 +#: ../lib/modules/sudoRole.inc:429 ../lib/modules/sudoRole.inc:456 +#: ../lib/modules/customFields.inc:1083 ../lib/modules/customFields.inc:2091 +#: ../lib/modules/customFields.inc:2101 ../lib/modules/qmailGroup.inc:822 +#: ../lib/modules/organizationalRole.inc:317 ../lib/modules/fixed_ip.inc:586 +#: ../lib/modules/windowsGroup.inc:556 ../lib/modules/groupOfNames.inc:374 +#: ../lib/modules/groupOfNames.inc:529 +msgid "Add" +msgstr "Hinzufügen" + +#: ../lib/modules/asteriskAccount.inc:762 +msgid "Add Asterisk account" +msgstr "Asterisk-Account hinzufügen" + +#: ../lib/modules/asteriskVoicemail.inc:269 +msgid "Add Asterisk voicemail extension" +msgstr "Asterisk Anrufbeantworter-Erweiterung hinzufügen" + +#: ../lib/modules/authorizedServiceObject.inc:175 +msgid "Add Authorized Service extension" +msgstr "Erlaubte Dienste-Erweiterung hinzufügen" + +#: ../lib/modules/eduPerson.inc:360 +msgid "Add EDU person extension" +msgstr "EDU-Person-Erweiterung hinzufügen" + +#: ../lib/modules/freeRadius.inc:312 +msgid "Add FreeRadius extension" +msgstr "FreeRadius-Erweiterung hinzufügen" + +#: ../lib/modules/ipHost.inc:165 +msgid "Add IP address extension" +msgstr "IP-Erweiterung hinzufügen" + +#: ../lib/modules/mitKerberos.inc:478 ../lib/modules/heimdalKerberos.inc:402 +msgid "Add Kerberos extension" +msgstr "Kerberos-Erweiterung hinzufügen" + +#: ../lib/modules/kolabGroup.inc:121 ../lib/modules/kolabGroup.inc:133 +#: ../lib/modules/kolabGroup.inc:220 ../lib/modules/kolabUser.inc:394 +msgid "Add Kolab extension" +msgstr "Kolab-Erweiterung hinzufügen" + +#: ../lib/modules/puppetClient.inc:224 +msgid "Add Puppet extension" +msgstr "Puppet-Erweiterung hinzufügen" + +#: ../lib/modules/pykotaGroup.inc:245 ../lib/modules/pykotaUser.inc:425 +msgid "Add PyKota extension" +msgstr "PyKota-Erweiterung hinzufügen" + +#: ../lib/modules/sambaSamAccount.inc:1316 +#: ../lib/modules/sambaGroupMapping.inc:428 +msgid "Add Samba 3 extension" +msgstr "Samba 3-Erweiterung hinzufügen" + +#: ../lib/modules/shadowAccount.inc:380 +msgid "Add Shadow account extension" +msgstr "Shadow-Erweiterung hinzufügen" + +#: ../lib/modules/posixGroup.inc:253 ../lib/modules/posixAccount.inc:1518 +msgid "Add Unix extension" +msgstr "Unix-Erweiterung hinzufügen" + +#: ../lib/modules/zarafaContact.inc:134 ../lib/modules/zarafaContact.inc:202 +msgid "Add Zarafa contact extension" +msgstr "Zarafa-Kontakt-Erweiterung hinzufügen" + +#: ../lib/modules/zarafaContact.inc:110 ../lib/modules/zarafaContact.inc:111 +#: ../lib/modules/zarafaGroup.inc:312 ../lib/modules/zarafaUser.inc:167 +#: ../lib/modules/zarafaUser.inc:168 ../lib/modules/zarafaUser.inc:179 +#: ../lib/modules/zarafaUser.inc:438 ../lib/modules/zarafaServer.inc:237 +msgid "Add Zarafa extension" +msgstr "Zarafa-Erweiterung hinzufügen" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add all" +msgstr "Alle hinzufügen" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2073 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2091 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "Add an additional value to attribute" +msgstr "Neuen Attributwert hinzufügen" + +#: ../lib/modules/asteriskExtension.inc:350 +msgid "Add another rule" +msgstr "Regel hinzufügen" + +#: ../lib/modules/inetOrgPerson.inc:1777 +#: ../lib/modules/organizationalRole.inc:322 +#: ../lib/modules/groupOfNames.inc:379 ../lib/modules/groupOfNames.inc:534 +msgid "Add entries" +msgstr "Einträge hinzufügen" + +#: ../lib/modules/zarafaContact.inc:429 ../lib/modules/zarafaGroup.inc:489 +#: ../lib/modules/device.inc:296 ../lib/modules/zarafaUser.inc:913 +#: ../lib/modules/sambaGroupMapping.inc:504 ../lib/modules/qmailGroup.inc:858 +#: ../lib/modules/organizationalRole.inc:333 +#: ../lib/modules/windowsGroup.inc:599 ../lib/modules/groupOfNames.inc:390 +#: ../lib/modules/groupOfNames.inc:545 +msgid "Add entries of this type:" +msgstr "Einträge diesen Typs hinzufügen:" + +#: ../lib/modules/fixed_ip.inc:544 +msgid "Add existing host" +msgstr "Bestehenden Host hinzufügen" + +#: ../lib/modules/customFields.inc:439 +msgid "Add extension" +msgstr "Erweiterung hinzufügen" + +#: ../lib/modules/ddns.inc:369 +msgid "Add fix IP addresses to DNS" +msgstr "Feste IP-Adressen zum DNS hinzufügen" + +#: ../lib/modules/hostObject.inc:152 +msgid "Add host extension" +msgstr "Host-Erweiterung hinzufügen" + +#: ../templates/selfService/adminMain.php:599 ../help/help.inc:232 +msgid "Add input field" +msgstr "Feld hinzufügen" + +#: ../templates/multiEdit.php:148 +msgid "Add more fields" +msgstr "Zusätzliche Felder hinzufügen" + +#: ../lib/modules/customFields.inc:2973 +msgid "Add more mapping fields" +msgstr "Zusätzliche Optionen hinzufügen" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:37 +#, php-format +msgid "Add new %s value to %s" +msgstr "Neuen %s Wert zu %s hinzufügen" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1208 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:29 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:48 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:166 +msgid "Add new attribute" +msgstr "Neues Attribut hinzufügen" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1207 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +msgid "Add new attribute to this object" +msgstr "Neues Attribut zu diesem Eintrag hinzufügen" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:89 +msgid "Add new binary attribute" +msgstr "Neues Binärattribut hinzufügen" + +#: ../lib/modules/customFields.inc:1082 ../lib/modules/customFields.inc:1083 +msgid "Add new field" +msgstr "Feld hinzufügen" + +#: ../templates/selfService/adminMain.php:591 ../help/help.inc:230 +msgid "Add new group" +msgstr "Gruppe hinzufügen" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:117 +msgid "Add new object class" +msgstr "Neue Objektklasse hinzufügen" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:60 +#, php-format +msgid "Add new object class to %s" +msgstr "Neue Objektklasse zu %s hinzufügen" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:94 +msgid "Add object class and attributes" +msgstr "Objektklasse und Attribut hinzufügen" + +#: ../lib/modules/passwordSelfReset.inc:245 +msgid "Add password self reset extension" +msgstr "Erweiterung für Passwortrücksetzung hinzufügen" + +#: ../lib/modules/inetOrgPerson.inc:770 ../lib/modules/inetOrgPerson.inc:1618 +#: ../lib/modules/inetOrgPerson.inc:1701 ../lib/modules/inetOrgPerson.inc:2714 +msgid "Add photo" +msgstr "Foto hinzufügen" + +#: ../templates/config/profmanage.php:239 +#: ../templates/config/profmanage.php:253 +#: ../templates/selfService/profManage.php:202 +#: ../templates/selfService/profManage.php:210 ../help/help.inc:130 +msgid "Add profile" +msgstr "Neues Profil" + +#: ../lib/modules/qmailUser.inc:712 ../lib/modules/qmailGroup.inc:633 +msgid "Add qmail extension" +msgstr "Qmail-Erweiterung hinzufügen" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add selected" +msgstr "Ausgewählte hinzufügen" + +#: ../lib/modules/nisMailAliasUser.inc:374 +msgid "Add to existing alias" +msgstr "Zu bestehendem Alias hinzufügen" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:149 +msgid "Add value" +msgstr "Wert hinzufügen" + +#: ../templates/3rdParty/pla/htdocs/import.php:28 +msgid "Adding" +msgstr "Füge hinzu" + +#: ../lib/modules/range.inc:136 +msgid "Adding the range failed because errors occured." +msgstr "Hinzufügen des Adressbereiches schlug fehl." + +#: ../templates/selfService/adminMain.php:495 ../help/help.inc:236 +msgid "Additional CSS links" +msgstr "Zusätzliche CSS-Links" + +#: ../templates/config/conftypes.php:289 +#: ../templates/selfService/adminMain.php:440 ../help/help.inc:170 +#: ../help/help.inc:240 +msgid "Additional LDAP filter" +msgstr "Zusätzlicher LDAP-Filter" + +#: ../lib/modules/zarafaDynamicGroup.inc:72 +#: ../lib/modules/zarafaDynamicGroup.inc:76 ../lib/modules/zarafaGroup.inc:74 +#: ../lib/modules/zarafaGroup.inc:78 +msgid "Additional email addresses for this entry." +msgstr "Zusätzliche EMail-Adressen für diesen Account." + +#: ../lib/modules/posixAccount.inc:304 ../lib/modules/posixAccount.inc:415 +#: ../lib/modules/posixAccount.inc:469 ../lib/modules/posixAccount.inc:534 +#: ../lib/modules/posixAccount.inc:1453 ../lib/modules/posixAccount.inc:1737 +#: ../lib/modules/posixAccount.inc:1853 +msgid "Additional groups" +msgstr "Zusätzliche Gruppen" + +#: ../lib/modules/windowsGroup.inc:123 +msgid "Additional notes to describe this entry." +msgstr "Zusätzliche Notizen für diesen Account." + +#: ../templates/config/mainmanage.php:440 +msgid "Additional options" +msgstr "Zusätzliche Optionen" + +#: ../templates/massDoUpload.php:160 +msgid "Additional tasks for module:" +msgstr "Zusätzliche Aufgaben des Moduls:" + +#: ../lib/modules/windowsUser.inc:707 ../lib/modules/inetOrgPerson.inc:1244 +msgid "Address" +msgstr "Adresse" + +#: ../lib/types/zarafaAddressListType.inc:144 +#, php-format +msgid "Address list count: %s" +msgstr "Anzahl Adresslisten: %s" + +#: ../lib/modules/imapAccess.inc:78 +msgid "Address of IMAP server (e.g. mail.example.org)." +msgstr "Adresse des IMAP-Servers (z.B. mail.beispiel.de)." + +#: ../help/help.inc:231 +msgid "" +"Adds a new group element to the list of self service options. Use this to " +"structure the input fields." +msgstr "" +"Fügt eine neue Gruppe hinzu. Sie können damit die Eingabefelder " +"strukturieren." + +#: ../lib/modules/range.inc:114 +msgid "Adds a new range pool." +msgstr "Fügt einen neuen Pool hinzu." + +#: ../help/help.inc:233 +msgid "Adds a new self service option to the selected group element." +msgstr "Damit fügen Sie einer Gruppe ein neues Eingabefeld hinzu." + +#: ../lib/modules/range.inc:110 +msgid "Adds input fields for a new IP range." +msgstr "Fügt Eingabefelder für einen neuen IP-Bereich hinzu." + +#: ../lib/modules/pykotaUser.inc:153 +msgid "Adds the amount to the user's balance. You can also specify a comment." +msgstr "" +"Fügt den Betrag zum Kontostand des Benutzers hinzu. Sie können auch einen " +"Kommentar angeben." + +#: ../lib/modules/kolabUser.inc:171 +msgid "Adds the object class \"mailrecipient\" to all user accounts." +msgstr "Fügt die Objektklasse \"mailrecipient\" allen Konten hinzu." + +#: ../lib/modules/kolabGroup.inc:122 +msgid "Adds this Kolab extension." +msgstr "Fügt die Kolab-Erweiterung hinzu." + +#: ../lib/modules/zarafaUser.inc:108 ../lib/modules/zarafaUser.inc:282 +#: ../lib/modules/zarafaUser.inc:340 ../lib/modules/zarafaUser.inc:603 +#: ../lib/modules/zarafaUser.inc:1262 +msgid "Admin" +msgstr "Administrator" + +#: ../lib/modules/selfRegistration.inc:61 +#: ../lib/modules/selfRegistration.inc:199 +#: ../lib/modules/passwordSelfReset.inc:104 +#: ../lib/modules/passwordSelfReset.inc:518 +msgid "Admin DN" +msgstr "Administrator-DN" + +#: ../lib/modules/bindDLZ.inc:231 ../lib/modules/bindDLZ.inc:351 +#: ../lib/modules/bindDLZ.inc:428 ../lib/modules/bindDLZ.inc:529 +#: ../lib/modules/bindDLZ.inc:1051 ../lib/modules/bindDLZ.inc:1553 +msgid "Admin email" +msgstr "Admin-email" + +#: ../lib/modules/selfRegistration.inc:65 +#: ../lib/modules/selfRegistration.inc:204 ../lib/modules/imapAccess.inc:136 +#: ../lib/modules/passwordSelfReset.inc:108 +#: ../lib/modules/passwordSelfReset.inc:522 +msgid "Admin password" +msgstr "Adminstratorpasswort" + +#: ../lib/modules/inetOrgPerson.inc:374 ../lib/modules/inetOrgPerson.inc:496 +#: ../lib/modules/inetOrgPerson.inc:504 +msgid "Administration" +msgstr "Verwaltung" + +#: ../lib/modules/posixGroup.inc:473 ../lib/modules/pykotaGroup.inc:168 +#: ../lib/modules/nisnetgroup.inc:122 +#: ../lib/modules/organizationalRole.inc:125 +#: ../lib/modules/groupOfNames.inc:137 +msgid "Administrators group" +msgstr "Administratoren" + +#: ../templates/config/confmain.php:276 ../templates/config/conftypes.php:335 +#: ../lib/modules/posixAccount.inc:271 ../lib/modules/inetOrgPerson.inc:3686 +msgid "Advanced options" +msgstr "Erweiterte Optionen" + +#: ../lib/modules/eduPerson.inc:105 ../lib/modules/eduPerson.inc:109 +#: ../lib/modules/eduPerson.inc:181 ../lib/modules/eduPerson.inc:225 +#: ../lib/modules/eduPerson.inc:328 ../lib/modules/eduPerson.inc:585 +msgid "Affiliations" +msgstr "Zugehörigkeiten" + +#: ../lib/modules/sambaSamAccount.inc:556 +msgid "Alaska" +msgstr "Alaska" + +#: ../lib/modules/sambaDomain.inc:218 ../lib/modules/sambaDomain.inc:219 +msgid "Algorithmic RID base is not a number!" +msgstr "RID-Basisnummer ist keine Zahl!" + +#: ../lib/modules/customFields.inc:76 ../lib/modules/customFields.inc:528 +#: ../lib/modules/customFields.inc:569 ../lib/modules/aliasEntry.inc:45 +msgid "Alias" +msgstr "Alias" + +#: ../lib/types/mailAlias.inc:141 ../lib/types/alias.inc:141 +#, php-format +msgid "Alias count: %s" +msgstr "Anzahl Aliase: %s" + +#: ../lib/types/alias.inc:62 +msgid "Alias entries" +msgstr "Aliaseinträge" + +#: ../lib/modules/nisMailAlias.inc:125 ../lib/modules/nisMailAlias.inc:126 +msgid "Alias is empty or invalid!" +msgstr "Alias ist leer oder ungültig!" + +#: ../lib/types/mailAlias.inc:91 ../lib/modules/nisMailAliasUser.inc:96 +#: ../lib/modules/nisMailAliasUser.inc:364 ../lib/modules/bindDLZ.inc:135 +#: ../lib/modules/bindDLZ.inc:268 ../lib/modules/bindDLZ.inc:419 +#: ../lib/modules/bindDLZ.inc:497 ../lib/modules/bindDLZ.inc:836 +#: ../lib/modules/bindDLZ.inc:1538 ../lib/modules/nisMailAlias.inc:81 +#: ../lib/modules/nisMailAlias.inc:101 ../lib/modules/nisMailAlias.inc:115 +#: ../lib/modules/nisMailAlias.inc:163 ../lib/modules/nisMailAlias.inc:475 +msgid "Alias name" +msgstr "Alias" + +#: ../lib/modules/bindDLZ.inc:834 +msgid "Alias name (\"CNAME\" record)" +msgstr "Aliasname (\"CNAME\"-Eintrag)" + +#: ../lib/modules/nisMailAliasUser.inc:120 +msgid "Alias name already exists." +msgstr "Der Aliasname existiert bereits." + +#: ../lib/modules/nisMailAliasUser.inc:119 +msgid "Alias name is invalid." +msgstr "Der Aliasname ist ungültig." + +#: ../lib/modules/nisMailAliasUser.inc:100 +#: ../lib/modules/nisMailAliasUser.inc:110 +#: ../lib/modules/nisMailAliasUser.inc:382 +#: ../lib/modules/nisMailAliasUser.inc:541 +msgid "Alias names" +msgstr "Aliasnamen" + +#: ../lib/modules/nisMailAliasUser.inc:84 +#: ../lib/modules/nisMailAliasUser.inc:88 +msgid "Alias names with email address" +msgstr "Aliasnamen mit Email-Adresse" + +#: ../lib/modules/nisMailAliasUser.inc:76 +#: ../lib/modules/nisMailAliasUser.inc:80 +msgid "Alias names with user name" +msgstr "Aliasnamen mit Benutzername" + +#: ../lib/modules/bindDLZ.inc:420 ../lib/modules/bindDLZ.inc:1539 +msgid "Alias timeout" +msgstr "Zeitlimit für Aliase" + +#: ../lib/types/alias.inc:92 ../lib/modules/customScripts.inc:52 +#: ../lib/modules/uidObject.inc:59 ../lib/modules/aliasEntry.inc:61 +#: ../lib/modules/aliasEntry.inc:69 ../lib/modules/aliasEntry.inc:77 +#: ../lib/modules/aliasEntry.inc:98 ../lib/modules/aliasEntry.inc:107 +#: ../lib/modules/aliasEntry.inc:228 +msgid "Aliased entry" +msgstr "Aliasziel" + +#: ../templates/schema/schema.php:226 ../lib/types/alias.inc:53 +msgid "Aliases" +msgstr "Aliase" + +#: ../lib/modules/nisMailAliasUser.inc:169 +#: ../lib/modules/nisMailAliasUser.inc:569 +msgid "Aliases for email" +msgstr "Aliase für Email" + +#: ../lib/modules/nisMailAliasUser.inc:139 +#: ../lib/modules/nisMailAliasUser.inc:567 +msgid "Aliases for user name" +msgstr "Aliase für Benutzername" + +#: ../lib/lists.inc:702 +#, php-format +msgid "All accounts (%s)" +msgstr "Alle Accounts (%s)" + +#: ../templates/selfService/selfServiceMain.php:368 +#: ../templates/initsuff.php:158 +msgid "All changes were successful." +msgstr "Alle Änderungen waren erfolgreich." + +#: ../lib/lists.inc:701 +#, php-format +msgid "All selected accounts (%s)" +msgstr "Alle selektierten Accounts (%s)" + +#: ../lib/modules/dhcp_settings.inc:103 +msgid "Allow" +msgstr "Erlauben" + +#: ../templates/config/confmain.php:362 ../help/help.inc:259 +msgid "Allow alternate address" +msgstr "Alternative Adresse erlauben" + +#: ../lib/modules/sambaDomain.inc:117 ../lib/modules/sambaDomain.inc:194 +#: ../lib/modules/sambaDomain.inc:308 ../lib/modules/sambaDomain.inc:626 +msgid "Allow machine password changes" +msgstr "PC-Passwortänderungen erlauben" + +#: ../lib/modules/customFields.inc:144 ../lib/modules/customFields.inc:148 +#: ../lib/modules/customFields.inc:3140 +msgid "Allow multiple values" +msgstr "Mehrere Werte erlauben" + +#: ../lib/types/ppolicyType.inc:90 ../lib/modules/ppolicy.inc:132 +#: ../lib/modules/ppolicy.inc:155 ../lib/modules/ppolicy.inc:294 +#: ../lib/modules/ppolicy.inc:505 +msgid "Allow password change" +msgstr "Passwortänderung erlauben" + +#: ../lib/modules/sambaSamAccount.inc:230 +#: ../lib/modules/sambaSamAccount.inc:352 +#: ../lib/modules/sambaSamAccount.inc:1504 +#: ../lib/modules/sambaSamAccount.inc:1922 +msgid "Allow terminal server login" +msgstr "Terminalserver-Login erlauben" + +#: ../templates/selfService/adminMain.php:557 +msgid "Allow user input for this field." +msgstr "Benutzereingaben für dieses Feld erlauben." + +#: ../lib/modules/asteriskAccount.inc:203 +#: ../lib/modules/asteriskAccount.inc:289 +#: ../lib/modules/asteriskAccount.inc:479 +#: ../lib/modules/asteriskAccount.inc:713 +#: ../lib/modules/asteriskAccount.inc:1005 +#: ../lib/modules/asteriskAccount.inc:1279 +msgid "Allowed codec" +msgstr "Erlaubter Codec" + +#: ../templates/config/mainmanage.php:299 ../lib/types/user.inc:95 +#: ../help/help.inc:152 +msgid "Allowed hosts" +msgstr "Erlaubte PCs" + +#: ../templates/config/mainmanage.php:301 +msgid "Allowed hosts (self service)" +msgstr "Erlaubte Hosts (SelfService)" + +#: ../lib/modules/kolabGroup.inc:95 ../lib/modules/kolabGroup.inc:99 +#: ../lib/modules/kolabGroup.inc:141 ../lib/modules/kolabGroup.inc:164 +#: ../lib/modules/kolabGroup.inc:181 ../lib/modules/kolabGroup.inc:205 +#: ../lib/modules/kolabGroup.inc:424 ../lib/modules/kolabUser.inc:152 +#: ../lib/modules/kolabUser.inc:156 ../lib/modules/kolabUser.inc:217 +#: ../lib/modules/kolabUser.inc:235 ../lib/modules/kolabUser.inc:253 +#: ../lib/modules/kolabUser.inc:381 ../lib/modules/kolabUser.inc:766 +#: ../lib/modules/kolabSharedFolder.inc:120 +#: ../lib/modules/kolabSharedFolder.inc:124 +#: ../lib/modules/kolabSharedFolder.inc:208 +#: ../lib/modules/kolabSharedFolder.inc:234 +#: ../lib/modules/kolabSharedFolder.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:307 +#: ../lib/modules/kolabSharedFolder.inc:561 +msgid "Allowed recipients" +msgstr "Erlaubte Empfänger" + +#: ../lib/modules/kolabGroup.inc:104 ../lib/modules/kolabGroup.inc:108 +#: ../lib/modules/kolabGroup.inc:147 ../lib/modules/kolabGroup.inc:165 +#: ../lib/modules/kolabGroup.inc:183 ../lib/modules/kolabGroup.inc:207 +#: ../lib/modules/kolabGroup.inc:425 ../lib/modules/kolabUser.inc:161 +#: ../lib/modules/kolabUser.inc:165 ../lib/modules/kolabUser.inc:223 +#: ../lib/modules/kolabUser.inc:236 ../lib/modules/kolabUser.inc:255 +#: ../lib/modules/kolabUser.inc:383 ../lib/modules/kolabUser.inc:767 +#: ../lib/modules/kolabSharedFolder.inc:129 +#: ../lib/modules/kolabSharedFolder.inc:133 +#: ../lib/modules/kolabSharedFolder.inc:214 +#: ../lib/modules/kolabSharedFolder.inc:235 +#: ../lib/modules/kolabSharedFolder.inc:252 +#: ../lib/modules/kolabSharedFolder.inc:309 +#: ../lib/modules/kolabSharedFolder.inc:562 +msgid "Allowed senders" +msgstr "Erlaubte Absender" + +#: ../lib/modules/sambaSamAccount.inc:1342 +#: ../lib/modules/sambaSamAccount.inc:1343 +msgid "Allowed workstations" +msgstr "Erlaubte PCs" + +#: ../lib/modules/customFields.inc:149 +msgid "Allows to enter multiple values for this attribute." +msgstr "Erlaubt die Eingabe mehrerer Werte für dieses Attribut." + +#: ../lib/modules/customFields.inc:145 +msgid "Allows to select multiple values from the list." +msgstr "Erlaubt die Selektion mehrerer Werte in der Liste." + +#: ../lib/modules/sambaSamAccount.inc:571 +msgid "Almaty, Dhaka, Colombo" +msgstr "Almaty, Dhaka, Colombo" + +#: ../templates/lists/changePassword.php:343 +#: ../templates/lists/changePassword.php:379 ../lib/modules/qmailUser.inc:203 +#: ../lib/modules/qmailUser.inc:271 ../lib/modules/qmailUser.inc:400 +#: ../lib/modules/qmailUser.inc:450 ../lib/modules/qmailUser.inc:520 +#: ../lib/modules/qmailUser.inc:1140 ../lib/modules/qmailGroup.inc:131 +#: ../lib/modules/qmailGroup.inc:135 ../lib/modules/qmailGroup.inc:247 +#: ../lib/modules/qmailGroup.inc:370 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:484 ../lib/modules/qmailGroup.inc:1057 +msgid "Alternate address" +msgstr "Alternative Adresse" + +#: ../lib/modules.inc:1079 ../lib/modules.inc:1178 ../help/help.inc:214 +msgid "Alternate recipient" +msgstr "Alternativer Empfänger" + +#: ../lib/modules/kolabUser.inc:50 +msgid "Always accept" +msgstr "Immer akzeptieren" + +#: ../lib/modules/kolabUser.inc:51 +msgid "Always reject" +msgstr "Immer ablehnen" + +#: ../lib/modules/pykotaUser.inc:372 ../lib/modules/pykotaUser.inc:597 +#: ../lib/modules/pykotaUser.inc:906 ../lib/modules/pykotaUser.inc:965 +msgid "Amount" +msgstr "Betrag" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1018 +#, php-format +msgid "An attribute (%s) was modified and is highlighted below." +msgstr "Ein Attribut (%s) wurde geändert und ist nun hervorgehoben." + +#: ../lib/modules/sudoRole.inc:268 +msgid "An sudo role with this name already exists. Please choose another name." +msgstr "" +"Es gibt bereits eine Sudo-Rolle mit diesem Namen. Bitte wählen Sie einen " +"anderen." + +#: ../lib/modules/passwordSelfReset.inc:84 +#: ../lib/modules/passwordSelfReset.inc:183 +#: ../lib/modules/passwordSelfReset.inc:198 +#: ../lib/modules/passwordSelfReset.inc:219 +#: ../lib/modules/passwordSelfReset.inc:265 +#: ../lib/modules/passwordSelfReset.inc:384 +#: ../lib/modules/passwordSelfReset.inc:663 +#: ../lib/modules/passwordSelfReset.inc:1046 +msgid "Answer" +msgstr "Antwort" + +#: ../lib/modules/kolabUser.inc:331 ../lib/modules/kolabUser.inc:756 +#: ../lib/modules/kolabUser.inc:858 ../lib/modules/kolabUser.inc:861 +msgid "Anyone" +msgstr "Jeder" + +#: ../lib/modules/customFields.inc:506 +msgid "Appearance" +msgstr "Aussehen" + +#: ../lib/modules/asteriskExtension.inc:110 +#: ../lib/modules/asteriskExtension.inc:165 +#: ../lib/modules/asteriskExtension.inc:366 +#: ../lib/modules/asteriskExtension.inc:823 +msgid "Application" +msgstr "Anwendung" + +#: ../lib/modules/asteriskExtension.inc:94 +#: ../lib/modules/asteriskExtension.inc:172 +#: ../lib/modules/asteriskExtension.inc:374 +#: ../lib/modules/asteriskExtension.inc:824 +msgid "Application data" +msgstr "Anwendungsdaten" + +#: ../templates/multiEdit.php:166 +msgid "Apply changes" +msgstr "Änderungen speichern" + +#: ../lib/modules/zarafaUser.inc:159 ../lib/modules/zarafaUser.inc:163 +#: ../lib/modules/zarafaUser.inc:315 ../lib/modules/zarafaUser.inc:379 +#: ../lib/modules/zarafaUser.inc:554 ../lib/modules/zarafaUser.inc:957 +#: ../lib/modules/zarafaUser.inc:1236 ../lib/modules/zarafaUser.inc:1317 +#: ../lib/modules/zarafaUser.inc:1803 +msgid "Archive servers" +msgstr "Archivserver" + +#: ../lib/modules/zarafaUser.inc:552 +msgid "Archiving" +msgstr "Archivierung" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:53 +msgid "Are you sure you want to permanently delete these objects?" +msgstr "Sollen diese Objekte wirklich gelöscht werden?" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:107 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:51 +msgid "Are you sure you want to permanently delete this object?" +msgstr "Soll dieses Objekt gelöscht werden?" + +#: ../lib/modules/imapAccess.inc:129 +msgid "Ask" +msgstr "Fragen" + +#: ../lib/modules/eduPerson.inc:142 ../lib/modules/eduPerson.inc:146 +#: ../lib/modules/eduPerson.inc:218 ../lib/modules/eduPerson.inc:234 +#: ../lib/modules/eduPerson.inc:352 ../lib/modules/eduPerson.inc:590 +msgid "Assurance profiles" +msgstr "Sicherheitsprofile" + +#: ../lib/modules/eduPerson.inc:143 ../lib/modules/eduPerson.inc:147 +msgid "" +"Assurance profiles are the set of standards that are met by an identity " +"assertion." +msgstr "" +"Sicherheitsprofile sind eine Liste von Standards, die bei einer " +"Identitätsprüfung erfüllt werden müssen." + +#: ../lib/modules/asteriskAccount.inc:73 +msgid "Asterisk" +msgstr "Asterisk" + +#: ../lib/modules/asteriskAccount.inc:132 +msgid "Asterisk AMA (Automated Message Accounting) flags." +msgstr "Asterisk AMA (Automated Message Accounting) Flags." + +#: ../lib/modules/asteriskExtension.inc:79 +msgid "Asterisk extension" +msgstr "Asterisk-Erweiterung" + +#: ../lib/types/asteriskExt.inc:56 +msgid "Asterisk extensions" +msgstr "Asterisk-Erweiterungen" + +#: ../lib/types/asteriskExt.inc:65 +msgid "Asterisk extensions entries" +msgstr "Asterisk-Erweiterungseinträge" + +#: ../lib/modules/asteriskAccount.inc:123 +#: ../lib/modules/asteriskAccount.inc:249 +#: ../lib/modules/asteriskAccount.inc:1233 +msgid "Asterisk realm" +msgstr "Asterisk-Bereich" + +#: ../lib/modules/asteriskVoicemail.inc:71 +msgid "Asterisk voicemail" +msgstr "Asterisk Anrufbeantworter" + +#: ../lib/modules/asteriskVoicemail.inc:120 +msgid "Asterisk voicemail context." +msgstr "Asterisk Anrufbeantworter-Kontext." + +#: ../lib/modules/sambaSamAccount.inc:561 +msgid "Atlantic time (Canada), Caracas" +msgstr "Atlantic time (Kanada), Caracas" + +#: ../templates/3rdParty/pla/lib/import_functions.php:455 +msgid "Attempting to delete a non existent attribute" +msgstr "Versuche ein nicht existentes Attribut zu löschen" + +#: ../templates/3rdParty/pla/lib/import_functions.php:466 +msgid "Attempting to replace a non existant attribute" +msgstr "Versuche ein nicht existentes Attribut zu ersetzen" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Attribute" +msgstr "Attribut" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:137 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:72 +msgid "Attribute doesn't exist" +msgstr "Attribut existiert nicht" + +#: ../templates/multiEdit.php:119 ../lib/modules/customFields.inc:92 +#: ../lib/modules/customFields.inc:1060 ../lib/modules/customFields.inc:1710 +msgid "Attribute name" +msgstr "Attributname" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:117 +msgid "Attribute not available" +msgstr "Attribut existiert nicht" + +#: ../templates/3rdParty/pla/lib/import_functions.php:535 +msgid "Attribute not valid" +msgstr "Attribut ist ungültig" + +#: ../templates/schema/schema.php:69 ../templates/schema/schema.php:70 +msgid "Attribute types" +msgstr "Attributtypen" + +#: ../lib/modules/selfRegistration.inc:78 +#: ../lib/modules/selfRegistration.inc:220 +msgid "Attributes" +msgstr "Attribute" + +#: ../lib/modules/sambaSamAccount.inc:577 +msgid "Auckland, Fiji, Kamchatka" +msgstr "Auckland, Fiji, Kamchatka" + +#: ../lib/modules/asteriskAccount.inc:124 +msgid "" +"Authentication realm for Asterisk server (default: asterisk). This value set " +"in sip.conf (option: \"realm\")." +msgstr "" +"Authentifizierungsbereich für den Asterisk-Server (default asterisk). Dieser " +"Wert wird in der sip.conf-Datei (Option: \"realm\") definiert." + +#: ../lib/modules/asteriskAccount.inc:232 +msgid "Authentication user for outbound proxies." +msgstr "Benutzer zur Authentifizierung bei ausgehenden Proxies." + +#: ../lib/modules/bindDLZ.inc:1020 +msgid "Authoritative information (\"SOA\" record)" +msgstr "Autoritative Informationen (\"SOA\"-Eintrag)" + +#: ../lib/modules/authorizedServiceObject.inc:71 +#: ../lib/modules/authorizedServiceObject.inc:81 +#: ../lib/modules/authorizedServiceObject.inc:85 +#: ../lib/modules/authorizedServiceObject.inc:105 +#: ../lib/modules/authorizedServiceObject.inc:112 +#: ../lib/modules/authorizedServiceObject.inc:116 +#: ../lib/modules/authorizedServiceObject.inc:168 +#: ../lib/modules/authorizedServiceObject.inc:243 +msgid "Authorized Services" +msgstr "Erlaubte Dienste" + +#: ../lib/modules/authorizedServiceObject.inc:129 +msgid "Authorized services are invalid." +msgstr "Erlaubte Dienste sind ungültig." + +#: ../lib/modules/customFields.inc:152 ../lib/modules/customFields.inc:1917 +msgid "Auto-completion" +msgstr "Autovervollständigung" + +#: ../lib/modules/bindDLZ.inc:239 ../lib/modules/bindDLZ.inc:2563 +msgid "Automatic PTR changes" +msgstr "Automatische PTR Änderungen" + +#: ../lib/modules/customScripts.inc:167 +msgid "Automatical scripts" +msgstr "Automatische Skripte" + +#: ../lib/modules/kolabGroup.inc:117 ../lib/modules/kolabGroup.inc:127 +#: ../lib/modules/puppetClient.inc:108 ../lib/modules/puppetClient.inc:160 +#: ../lib/modules/qmailUser.inc:131 ../lib/modules/qmailUser.inc:263 +#: ../lib/modules/zarafaContact.inc:87 ../lib/modules/zarafaContact.inc:583 +#: ../lib/modules/posixGroup.inc:396 ../lib/modules/posixGroup.inc:537 +#: ../lib/modules/eduPerson.inc:150 ../lib/modules/eduPerson.inc:155 +#: ../lib/modules/pykotaGroup.inc:129 ../lib/modules/pykotaGroup.inc:140 +#: ../lib/modules/sambaSamAccount.inc:165 +#: ../lib/modules/sambaSamAccount.inc:403 ../lib/modules/posixAccount.inc:432 +#: ../lib/modules/posixAccount.inc:1784 ../lib/modules/zarafaUser.inc:136 +#: ../lib/modules/zarafaUser.inc:1303 ../lib/modules/pykotaUser.inc:160 +#: ../lib/modules/pykotaUser.inc:173 ../lib/modules/shadowAccount.inc:106 +#: ../lib/modules/shadowAccount.inc:197 ../lib/modules/customFields.inc:856 +#: ../lib/modules/qmailGroup.inc:101 ../lib/modules/qmailGroup.inc:232 +#: ../lib/modules/authorizedServiceObject.inc:89 +#: ../lib/modules/authorizedServiceObject.inc:117 +#: ../lib/modules/passwordSelfReset.inc:152 +#: ../lib/modules/passwordSelfReset.inc:167 ../lib/modules/hostObject.inc:83 +#: ../lib/modules/hostObject.inc:101 +msgid "Automatically add this extension" +msgstr "Diese Erweiterung automatisch hinzufügen" + +#: ../lib/modules/bindDLZ.inc:240 +msgid "" +"Automatically adds and removes PTR entries when A/AAAA records are created " +"or deleted." +msgstr "" +"Erstellt und löscht automatisch PTR-Einträge wenn A/AAAA-Einträge erstellt/" +"gelöscht werden." + +#: ../lib/types/automountType.inc:48 ../lib/types/automountType.inc:57 +msgid "Automount entries" +msgstr "Automount-Einträge" + +#: ../lib/types/automountType.inc:87 ../lib/modules/automount.inc:50 +#: ../lib/modules/automount.inc:68 ../lib/modules/automount.inc:88 +#: ../lib/modules/automount.inc:104 ../lib/modules/automount.inc:114 +#: ../lib/modules/automount.inc:131 ../lib/modules/automount.inc:182 +msgid "Automount entry" +msgstr "Automount-Eintrag" + +#: ../lib/modules/automount.inc:114 ../lib/modules/automount.inc:115 +msgid "" +"Automount entry contains invalid characters. Only ASCII characters are " +"allowed." +msgstr "" +"Der Automount-Eintrag enthält ungültige Zeichen. Nur ASCII-Zeichen sind " +"erlaubt." + +#: ../lib/types/automountType.inc:215 +#, php-format +msgid "Automount entry count: %s" +msgstr "Anzahl Automounteinträge: %s" + +#: ../lib/modules/qmailUser.inc:51 +msgid "Autoreply" +msgstr "Automatische Antwort" + +#: ../lib/modules/qmailUser.inc:116 ../lib/modules/qmailUser.inc:239 +#: ../lib/modules/qmailUser.inc:350 ../lib/modules/qmailUser.inc:424 +#: ../lib/modules/qmailUser.inc:639 ../lib/modules/qmailUser.inc:1147 +msgid "Autoreply text" +msgstr "Text für automatische Antwort" + +#: ../templates/config/conftypes.php:215 ../lib/modules/customScripts.inc:61 +msgid "Available account types" +msgstr "Verfügbare Accounttypen" + +#: ../lib/modules/customScripts.inc:62 ../lib/modules/customScripts.inc:75 +msgid "Available actions" +msgstr "Verfügbare Aktionen" + +#: ../lib/modules/posixAccount.inc:1569 ../lib/modules/posixAccount.inc:1602 +#: ../lib/modules/windowsUser.inc:1036 ../lib/modules/nisnetgroup.inc:386 +#: ../lib/modules/groupOfNamesUser.inc:133 +msgid "Available groups" +msgstr "Verfügbare Gruppen" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:93 +msgid "Available members" +msgstr "Verfügbare Mitglieder" + +#: ../templates/config/confmodules.php:314 +msgid "Available modules" +msgstr "Verfügbare Module" + +#: ../lib/modules/organizationalRoleUser.inc:118 +msgid "Available roles" +msgstr "Verfügbare Rollen" + +#: ../lib/modules/posixGroup.inc:297 ../lib/modules/asteriskExtension.inc:463 +msgid "Available users" +msgstr "Verfügbare Benutzer" + +#: ../lib/modules/sambaSamAccount.inc:1345 +msgid "Available workstations" +msgstr "Verfügbare PCs" + +#: ../lib/modules/sambaSamAccount.inc:564 +msgid "Azores, Cape Verde Islands" +msgstr "Azoren, Kap Verde Inseln" + +#: ../lib/modules/dhcp_settings.inc:96 +msgid "B-Node (0x01)" +msgstr "B-Knoten (0x01)" + +#: ../templates/massBuildAccounts.php:276 ../lib/modules/zarafaContact.inc:436 +#: ../lib/modules/posixGroup.inc:342 ../lib/modules/zarafaGroup.inc:496 +#: ../lib/modules/device.inc:303 ../lib/modules/sambaSamAccount.inc:1362 +#: ../lib/modules/sambaSamAccount.inc:1646 +#: ../lib/modules/posixAccount.inc:1642 ../lib/modules/posixAccount.inc:1716 +#: ../lib/modules/zarafaUser.inc:920 ../lib/modules/zarafaUser.inc:969 +#: ../lib/modules/windowsUser.inc:1080 +#: ../lib/modules/sambaGroupMapping.inc:511 ../lib/modules/pykotaUser.inc:618 +#: ../lib/modules/pykotaUser.inc:675 ../lib/modules/nisnetgroup.inc:400 +#: ../lib/modules/inetOrgPerson.inc:1702 ../lib/modules/inetOrgPerson.inc:1778 +#: ../lib/modules/inetOrgPerson.inc:1868 ../lib/modules/qmailGroup.inc:865 +#: ../lib/modules/organizationalRole.inc:389 +#: ../lib/modules/windowsGroup.inc:606 ../lib/modules/groupOfNames.inc:447 +#: ../lib/modules/groupOfNames.inc:601 +msgid "Back" +msgstr "Zurück" + +#: ../lib/types/dhcp.inc:47 +msgid "Back to DHCP list" +msgstr "Zurück zur DHCP-Liste" + +#: ../lib/types/bind.inc:30 +msgid "Back to DNS list" +msgstr "Zurück zur DNS-Liste" + +#: ../lib/types/nisObjectType.inc:30 +msgid "Back to NIS object list" +msgstr "Zurück zur NIS-Objektliste" + +#: ../lib/baseType.inc:48 +msgid "Back to account list" +msgstr "Zurück zur Accountliste" + +#: ../lib/types/zarafaAddressListType.inc:44 +msgid "Back to address list" +msgstr "Zurück zur Adressliste" + +#: ../lib/types/mailAlias.inc:44 ../lib/types/alias.inc:44 +msgid "Back to alias list" +msgstr "Zurück zur Aliasliste" + +#: ../lib/types/automountType.inc:35 +msgid "Back to automount list" +msgstr "Zurück zur Automount-Liste" + +#: ../lib/types/pykotaBillingCodeType.inc:44 +msgid "Back to billing code list" +msgstr "Zurück zur Liste der Rechnungscodes" + +#: ../lib/types/oracleContextType.inc:30 +msgid "Back to database list" +msgstr "Zurück zur Datenbankliste" + +#: ../lib/types/smbDomain.inc:44 +msgid "Back to domain list" +msgstr "Zurück zur Domänenliste" + +#: ../lib/types/asteriskExt.inc:47 +msgid "Back to extensions list" +msgstr "Zurück zur Erweiterungsliste" + +#: ../templates/lists/userlink.php:63 ../lib/types/gon.inc:44 +#: ../lib/types/zarafaDynamicGroupType.inc:44 ../lib/types/group.inc:45 +#: ../lib/types/netgroup.inc:44 +msgid "Back to group list" +msgstr "Zurück zur Gruppenliste" + +#: ../lib/types/host.inc:44 +msgid "Back to host list" +msgstr "Zurück zur Hostliste" + +#: ../templates/delete.php:289 +msgid "Back to list" +msgstr "Zurück zur Liste" + +#: ../templates/config/mainmanage.php:257 ../templates/config/index.php:79 +#: ../templates/config/index.php:133 ../templates/config/conflogin.php:117 +#: ../templates/config/conflogin.php:201 ../templates/config/mainlogin.php:124 +#: ../templates/config/mainlogin.php:178 +#: ../templates/selfService/selfServiceSP.php:139 +#: ../templates/selfService/adminLogin.php:114 +#: ../templates/selfService/adminLogin.php:191 +msgid "Back to login" +msgstr "Zurück zum Login" + +#: ../lib/types/ppolicyType.inc:30 +msgid "Back to policy list" +msgstr "Zurück zur Richtlinienliste" + +#: ../lib/types/pykotaPrinterType.inc:44 +msgid "Back to printer list" +msgstr "Zurück zur Druckerliste" + +#: ../templates/config/profmanage.php:188 +#: ../templates/config/profmanage.php:326 +#: ../templates/selfService/profManage.php:144 +#: ../templates/selfService/profManage.php:262 +msgid "Back to profile login" +msgstr "Zurück zum Konfigurationslogin" + +#: ../lib/types/gon.inc:49 ../lib/types/group.inc:50 +msgid "Back to role list" +msgstr "Zurück zur Rollenliste" + +#: ../lib/types/kolabSharedFolderType.inc:44 +msgid "Back to shared folder list" +msgstr "Zurück zur Liste der gemeinsamen Ordner" + +#: ../lib/types/sudo.inc:30 +msgid "Back to sudo role list" +msgstr "Zurück zur Sudo-Rollenliste" + +#: ../lib/types/user.inc:44 +msgid "Back to user list" +msgstr "Zurück zur Benutzerliste" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:64 +msgid "Back up" +msgstr "Nach oben" + +#: ../templates/serverInfo.php:163 +msgid "Backends" +msgstr "Backends" + +#: ../templates/lists/changePassword.php:291 +#: ../lib/modules/passwordSelfReset.inc:88 +#: ../lib/modules/passwordSelfReset.inc:191 +#: ../lib/modules/passwordSelfReset.inc:201 +#: ../lib/modules/passwordSelfReset.inc:213 +#: ../lib/modules/passwordSelfReset.inc:220 +#: ../lib/modules/passwordSelfReset.inc:276 +#: ../lib/modules/passwordSelfReset.inc:387 +#: ../lib/modules/passwordSelfReset.inc:675 +msgid "Backup email" +msgstr "Backup-Email" + +#: ../lib/modules/passwordSelfReset.inc:89 +msgid "" +"Backup email address for password reset mails. Useful if user password " +"grants access to standard mailbox." +msgstr "" +"BAckup-Email-Adresse für Passwortrücksetzungsmails, praktisch wenn das " +"Benutzerpasswort auch für das Standardpostfach gilt." + +#: ../lib/modules/sudoRole.inc:155 +msgid "Backup script" +msgstr "Backup-Skript" + +#: ../lib/modules/sambaSamAccount.inc:568 +msgid "Baghdad, Riyadh, Moscow" +msgstr "Baghdad, Riyadh, Moskau" + +#: ../lib/types/pykotaBillingCodeType.inc:93 ../lib/modules/pykotaGroup.inc:62 +#: ../lib/modules/pykotaUser.inc:62 ../lib/modules/pykotaUser.inc:132 +#: ../lib/modules/pykotaUser.inc:170 ../lib/modules/pykotaUser.inc:241 +#: ../lib/modules/pykotaUser.inc:262 ../lib/modules/pykotaUser.inc:322 +#: ../lib/modules/pykotaUser.inc:365 ../lib/modules/pykotaUser.inc:900 +#: ../lib/modules/pykotaUser.inc:947 ../lib/modules/pykotaBillingCode.inc:85 +#: ../lib/modules/pykotaBillingCode.inc:117 +#: ../lib/modules/pykotaBillingCode.inc:143 +#: ../lib/modules/pykotaBillingCode.inc:263 +msgid "Balance" +msgstr "Kontostand" + +#: ../lib/modules/pykotaUser.inc:281 +msgid "Balance (read-only)" +msgstr "Kontostand (nur lesen)" + +#: ../lib/modules/pykotaUser.inc:136 ../lib/modules/pykotaUser.inc:247 +msgid "Balance comment" +msgstr "Kommentar für Kontostand" + +#: ../lib/modules/sambaSamAccount.inc:572 +msgid "Bangkok, Hanoi, Jakarta" +msgstr "Bangkok, Hanoi, Jakarta" + +#: ../lib/types/zarafaAddressListType.inc:93 +#: ../lib/types/zarafaDynamicGroupType.inc:94 +#: ../lib/modules/zarafaDynamicGroup.inc:87 +#: ../lib/modules/zarafaDynamicGroup.inc:101 +#: ../lib/modules/zarafaDynamicGroup.inc:152 +#: ../lib/modules/zarafaDynamicGroup.inc:170 +#: ../lib/modules/zarafaDynamicGroup.inc:198 +#: ../lib/modules/zarafaDynamicGroup.inc:231 +#: ../lib/modules/zarafaDynamicGroup.inc:449 +#: ../lib/modules/zarafaAddressList.inc:75 +#: ../lib/modules/zarafaAddressList.inc:89 +#: ../lib/modules/zarafaAddressList.inc:128 +#: ../lib/modules/zarafaAddressList.inc:144 +#: ../lib/modules/zarafaAddressList.inc:169 +#: ../lib/modules/zarafaAddressList.inc:198 +#: ../lib/modules/zarafaAddressList.inc:332 +msgid "Base" +msgstr "Basis" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:142 +#: ../templates/3rdParty/pla/htdocs/export_form.php:31 +msgid "Base (base dn only)" +msgstr "Basis (nur Basis-DN)" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:121 +#: ../templates/3rdParty/pla/lib/QueryRender.php:506 +#: ../templates/3rdParty/pla/htdocs/export_form.php:59 +msgid "Base DN" +msgstr "Basis-DN" + +#: ../templates/config/confmodules.php:212 ../help/help.inc:144 +msgid "Base module" +msgstr "Basismodul" + +#: ../templates/pdfedit/pdfpage.php:441 +msgid "Beginning" +msgstr "Anfang" + +#: ../lib/modules/sambaSamAccount.inc:573 +msgid "Beijing, Perth, Singapore" +msgstr "Beijing, Perth, Singapur" + +#: ../lib/types/pykotaBillingCodeType.inc:91 +#: ../lib/modules/pykotaBillingCode.inc:77 +#: ../lib/modules/pykotaBillingCode.inc:115 +#: ../lib/modules/pykotaBillingCode.inc:127 +#: ../lib/modules/pykotaBillingCode.inc:129 +#: ../lib/modules/pykotaBillingCode.inc:141 +#: ../lib/modules/pykotaBillingCode.inc:261 +msgid "Billing code" +msgstr "Rechnungscode" + +#: ../lib/modules/pykotaBillingCode.inc:129 +#: ../lib/modules/pykotaBillingCode.inc:130 +msgid "Billing code already exists!" +msgstr "Dieser Rechnungscode wird bereits verwendet." + +#: ../lib/modules/pykotaBillingCode.inc:127 +#: ../lib/modules/pykotaBillingCode.inc:128 +msgid "" +"Billing code contains invalid characters. Valid characters are: a-z, A-Z, " +"0-9 and .-_ !" +msgstr "" +"Rechnungscode enthält ungültige Zeichen. Gültige Zeichen sind: a-z, A-Z, 0-9 " +"und .-_!" + +#: ../lib/types/pykotaBillingCodeType.inc:163 +#, php-format +msgid "Billing code count: %s" +msgstr "Anzahl Rechnungscodes: %s" + +#: ../lib/modules/pykotaBillingCode.inc:82 +msgid "Billing code description." +msgstr "Beschreibung des Rechnungscodes." + +#: ../lib/modules/pykotaBillingCode.inc:78 +msgid "" +"Billing code name which should be created. Valid characters are: a-z, A-Z, " +"0-9 and .-_ ." +msgstr "" +"Name des zu erstellenden Rechnungscodes. Gültige Zeichen sind: a-z, A-Z, 0-9 " +"und .-_." + +#: ../lib/types/pykotaBillingCodeType.inc:53 +msgid "Billing codes" +msgstr "Rechnungscodes" + +#: ../templates/3rdParty/pla/lib/PageRender.php:644 +#: ../templates/3rdParty/pla/lib/PageRender.php:648 +msgid "Binary value" +msgstr "Binärwert" + +#: ../templates/serverInfo.php:286 ../templates/serverInfo.php:375 +msgid "Bind" +msgstr "Bind" + +#: ../lib/types/bind.inc:39 +msgid "Bind DNS" +msgstr "Bind DNS" + +#: ../lib/types/bind.inc:48 +msgid "Bind DNS entries" +msgstr "Bind DNS-Einträge" + +#: ../templates/config/confmain.php:444 +msgid "Bind password" +msgstr "Bind-Passwort" + +#: ../templates/config/confmain.php:442 +msgid "Bind user" +msgstr "Bind-Benutzer" + +#: ../help/help.inc:128 +msgid "Bind user and password" +msgstr "Bind-Benutzer und Passwort" + +#: ../lib/modules/quota.inc:53 ../lib/modules/systemQuotas.inc:101 +msgid "Block hard quota" +msgstr "Hartes Block-Quota" + +#: ../lib/modules/quota.inc:53 ../lib/modules/quota.inc:54 +#: ../lib/modules/systemQuotas.inc:101 ../lib/modules/systemQuotas.inc:102 +msgid "" +"Block hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Hartes Block-Quota enthält ungültige Zeichen. Nur natürliche Zahlen sind " +"erlaubt." + +#: ../lib/modules/quota.inc:59 ../lib/modules/systemQuotas.inc:107 +msgid "Block quota" +msgstr "Block-Quota" + +#: ../lib/modules/quota.inc:51 ../lib/modules/systemQuotas.inc:99 +msgid "Block soft quota" +msgstr "Weiches Block-Quota" + +#: ../lib/modules/quota.inc:51 ../lib/modules/quota.inc:52 +#: ../lib/modules/systemQuotas.inc:99 ../lib/modules/systemQuotas.inc:100 +msgid "" +"Block soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Weiches Block-Quota enthält ungültige Zeichen. Nur natürliche Zahlen sind " +"erlaubt." + +#: ../lib/modules/quota.inc:59 ../lib/modules/quota.inc:60 +#: ../lib/modules/systemQuotas.inc:107 ../lib/modules/systemQuotas.inc:108 +msgid "Block soft quota must be smaller than block hard quota." +msgstr "Weiches Block-Quota muss kleiner sein als hartes Block-Quota." + +#: ../lib/modules/qmailGroup.inc:72 ../lib/modules/qmailGroup.inc:143 +#: ../lib/modules/qmailGroup.inc:147 ../lib/modules/qmailGroup.inc:263 +#: ../lib/modules/qmailGroup.inc:375 ../lib/modules/qmailGroup.inc:431 +#: ../lib/modules/qmailGroup.inc:522 ../lib/modules/qmailGroup.inc:1059 +msgid "Bounce admin email" +msgstr "Email-Adresse für Rückläufer" + +#: ../lib/modules/sambaSamAccount.inc:562 +msgid "Brazil, Buenos Aires" +msgstr "Brasilien, Buenos Aires" + +#: ../templates/3rdParty/pla/htdocs/copy.php:53 +msgid "Building snapshot of tree to copy" +msgstr "Erstelle Abbild zum Kopieren" + +#: ../lib/modules/sambaGroupMapping.inc:73 +msgid "Builtin group" +msgstr "Vordefinierte Gruppe" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:63 +msgid "Bulk edit the following DNs" +msgstr "Die folgenden DNs gleichzeitig editieren" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:48 +msgid "Bulk update the following DNs" +msgstr "Die folgenden DNs gleichzeitig aktualisieren" + +#: ../lib/modules/inetOrgPerson.inc:105 ../lib/modules/inetOrgPerson.inc:164 +#: ../lib/modules/inetOrgPerson.inc:235 ../lib/modules/inetOrgPerson.inc:372 +#: ../lib/modules/inetOrgPerson.inc:613 ../lib/modules/inetOrgPerson.inc:786 +#: ../lib/modules/inetOrgPerson.inc:790 ../lib/modules/inetOrgPerson.inc:1506 +#: ../lib/modules/inetOrgPerson.inc:1509 ../lib/modules/inetOrgPerson.inc:1941 +#: ../lib/modules/inetOrgPerson.inc:2690 ../lib/modules/inetOrgPerson.inc:3614 +#: ../lib/modules/inetOrgPerson.inc:3656 +msgid "Business category" +msgstr "Abteilung" + +#: ../lib/modules/inetOrgPerson.inc:787 ../lib/modules/inetOrgPerson.inc:791 +msgid "Business category (e.g. Administration, IT-Services, Manangement, ...)" +msgstr "Abteilung (z.B. Verwaltung, IT-Service, Management, ...)" + +#: ../help/help.inc:173 +msgid "" +"By default LAM will show all accounts that match the selected account " +"modules." +msgstr "" +"Standardmäßig zeigt LAM alle Accounts an, die zu den gewählten " +"Accountmodulen passen." + +#: ../help/help.inc:243 +msgid "" +"By default all modifications are done as the user that authenticated in self " +"service. If active then LAM will use the connection user for all LDAP " +"modifications and searches." +msgstr "" +"Standardmäßig werden alle Änderungen unter dem angemeldeten Benutzer " +"durchgeführt. Falls aktiviert dann verwendet LAM den Verbindungsbenutzer für " +"alle LDAP-Modifikationen und Suchen." + +#: ../lib/modules/selfRegistration.inc:103 +msgid "" +"By default all users are created in the self service LDAP suffix. You can " +"enter an alternative suffix here." +msgstr "" +"Standardmäßig werden alle Benutzer im Suffix des SelfService erstellt. Sie " +"können hier einen alternativen Suffix angeben." + +#: ../lib/modules/customScripts.inc:89 +msgid "" +"By default, LAM will show the executed command along with any output of it. " +"If you want to hide the command and only show the output then activate this " +"option." +msgstr "" +"Standardmäßig zeigt LAM das ausgeführte Kommando und dessen Ausgaben an. " +"Wenn Sie nur die Ausgaben anzeigen möchten, wählen Sie diese Option." + +#: ../templates/serverInfo.php:253 ../templates/serverInfo.php:259 +msgid "Bytes sent" +msgstr "Bytes gesendet" + +#: ../lib/modules/bindDLZ.inc:268 ../lib/modules/bindDLZ.inc:274 +#: ../lib/modules/bindDLZ.inc:481 ../lib/modules/bindDLZ.inc:497 +msgid "CNAME record" +msgstr "CNAME-Eintrag" + +#: ../lib/modules/bindDLZ.inc:439 +msgid "CNAME records" +msgstr "CNAME-Einträge" + +#: ../templates/masscreate.php:253 +msgid "CSV file" +msgstr "CSV-Datei" + +#: ../help/help.inc:107 +msgid "Cache timeout" +msgstr "Cache Zeitbegrenzung" + +#: ../lib/modules/asteriskAccount.inc:135 +#: ../lib/modules/asteriskAccount.inc:272 +#: ../lib/modules/asteriskAccount.inc:355 +#: ../lib/modules/asteriskAccount.inc:615 +#: ../lib/modules/asteriskAccount.inc:988 +#: ../lib/modules/asteriskAccount.inc:1245 +msgid "Call groups" +msgstr "Anrufergruppen" + +#: ../lib/modules/asteriskAccount.inc:103 +#: ../lib/modules/asteriskAccount.inc:266 +#: ../lib/modules/asteriskAccount.inc:304 +#: ../lib/modules/asteriskAccount.inc:589 +#: ../lib/modules/asteriskAccount.inc:982 +msgid "Caller ID" +msgstr "Anrufer-ID" + +#: ../lib/modules/sambaSamAccount.inc:307 +#: ../lib/modules/sambaSamAccount.inc:310 +#: ../lib/modules/sambaSamAccount.inc:313 +#: ../lib/modules/sambaSamAccount.inc:319 ../lib/modules/posixAccount.inc:535 +#: ../lib/modules/organizationalRoleUser.inc:61 +#: ../lib/modules/windowsUser.inc:205 ../lib/modules/windowsUser.inc:210 +#: ../lib/modules/sambaGroupMapping.inc:159 +#: ../lib/modules/shadowAccount.inc:178 ../lib/modules/shadowAccount.inc:182 +#: ../lib/modules/shadowAccount.inc:186 ../lib/modules/shadowAccount.inc:190 +#: ../lib/modules/groupOfNamesUser.inc:61 +msgid "Can be left empty." +msgstr "Kann leer bleiben." + +#: ../lib/modules/asteriskAccount.inc:223 +#: ../lib/modules/asteriskAccount.inc:294 +#: ../lib/modules/asteriskAccount.inc:515 +#: ../lib/modules/asteriskAccount.inc:741 +#: ../lib/modules/asteriskAccount.inc:1010 +#: ../lib/modules/asteriskAccount.inc:1289 +msgid "Can call forward" +msgstr "Kann weiterleiten" + +#: ../templates/lists/changePassword.php:349 +#: ../templates/lists/changePassword.php:386 +#: ../templates/lists/changePassword.php:427 +#: ../templates/lists/changePassword.php:458 ../templates/ou_edit.php:121 +#: ../templates/config/profmanage.php:254 +#: ../templates/config/profmanage.php:266 +#: ../templates/config/profmanage.php:275 +#: ../templates/config/profmanage.php:293 +#: ../templates/config/profmanage.php:304 +#: ../templates/config/mainmanage.php:470 +#: ../templates/config/confmodules.php:227 +#: ../templates/config/confmain.php:471 +#: ../templates/config/moduleSettings.php:241 +#: ../templates/config/conftypes.php:362 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminMain.php:716 +#: ../templates/pdfedit/pdfpage.php:638 ../templates/pdfedit/pdfmain.php:210 +#: ../templates/pdfedit/pdfmain.php:217 ../templates/pdfedit/pdfmain.php:223 +#: ../templates/delete.php:121 ../templates/profedit/profilepage.php:241 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/profedit/profilemain.php:205 +#: ../templates/profedit/profilemain.php:211 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:197 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:83 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:136 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:121 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:119 +#: ../templates/initsuff.php:191 ../lib/types/automountType.inc:234 +#: ../lib/types/user.inc:303 ../lib/types/bind.inc:175 +#: ../lib/modules/kolabGroup.inc:294 ../lib/modules/pykotaPrinter.inc:431 +#: ../lib/modules/mitKerberos.inc:690 ../lib/modules/qmailUser.inc:921 +#: ../lib/modules/zarafaContact.inc:391 ../lib/modules/windowsHost.inc:226 +#: ../lib/modules/zarafaGroup.inc:451 ../lib/modules/device.inc:254 +#: ../lib/modules/sambaSamAccount.inc:1437 +#: ../lib/modules/sambaSamAccount.inc:1486 +#: ../lib/modules/sambaSamAccount.inc:1572 ../lib/modules/zarafaUser.inc:875 +#: ../lib/modules/kolabUser.inc:520 ../lib/modules/sambaGroupMapping.inc:490 +#: ../lib/modules/shadowAccount.inc:478 ../lib/modules/nisnetgroup.inc:490 +#: ../lib/modules/inetOrgPerson.inc:1743 ../lib/modules/freeRadius.inc:431 +#: ../lib/modules/kolabSharedFolder.inc:434 +#: ../lib/modules/customFields.inc:1084 ../lib/modules/aliasEntry.inc:147 +#: ../lib/modules/aliasEntry.inc:167 ../lib/modules/qmailGroup.inc:823 +#: ../lib/modules/organizationalRole.inc:318 ../lib/modules/fixed_ip.inc:587 +#: ../lib/modules/heimdalKerberos.inc:600 ../lib/modules/windowsGroup.inc:505 +#: ../lib/modules/windowsGroup.inc:557 ../lib/modules/groupOfNames.inc:375 +#: ../lib/modules/groupOfNames.inc:530 ../lib/modules/nisMailAlias.inc:385 +#: ../lib/lists.inc:711 ../lib/lists.inc:792 ../lib/modules.inc:1230 +msgid "Cancel" +msgstr "Abbrechen" + +#: ../templates/login.php:569 ../templates/login.php:627 +#: ../templates/login.php:632 +#: ../templates/selfService/selfServiceLogin.php:141 +#: ../templates/selfService/selfServiceLogin.php:190 +#: ../templates/selfService/selfServiceLogin.php:195 +#: ../templates/selfService/selfServiceMain.php:168 +#: ../templates/selfService/selfServiceMain.php:189 +#: ../lib/modules/selfRegistration.inc:699 +msgid "Cannot connect to specified LDAP server. Please try again." +msgstr "" +"Kann keine Verbindung zum LDAP-Server aufbauen. Bitte erneut versuchen." + +#: ../templates/login.php:310 ../lib/config.inc:1683 +msgid "Cannot open config file!" +msgstr "Kann Konfigurationsdatei nicht öffnen!" + +#: ../lib/modules/imapAccess.inc:187 +msgid "Cannot update quota." +msgstr "Kann Quota nicht ändern." + +#: ../lib/config.inc:1695 ../lib/config.inc:1703 +msgid "" +"Cannot write certificate file. Please check the permissions of config/" +"serverCerts.pem." +msgstr "" +"Kann Zertifikat nicht schreiben. Bitte prüfen Sie die Berechtigungen von " +"config/serverCerts.pem." + +#: ../lib/modules/zarafaUser.inc:120 ../lib/modules/zarafaUser.inc:247 +#: ../lib/modules/zarafaUser.inc:364 ../lib/modules/zarafaUser.inc:415 +#: ../lib/modules/zarafaUser.inc:545 ../lib/modules/zarafaUser.inc:1232 +#: ../lib/modules/zarafaUser.inc:1799 +msgid "Capacity" +msgstr "Kapazität" + +#: ../templates/selfService/adminMain.php:496 +msgid "Captions and labels" +msgstr "Überschriften und Beschriftungen" + +#: ../lib/modules/inetOrgPerson.inc:163 ../lib/modules/inetOrgPerson.inc:534 +#: ../lib/modules/inetOrgPerson.inc:607 ../lib/modules/inetOrgPerson.inc:810 +#: ../lib/modules/inetOrgPerson.inc:1479 ../lib/modules/inetOrgPerson.inc:1482 +#: ../lib/modules/inetOrgPerson.inc:1943 ../lib/modules/inetOrgPerson.inc:2668 +#: ../lib/modules/inetOrgPerson.inc:3610 ../lib/modules/inetOrgPerson.inc:3655 +msgid "Car license" +msgstr "Führerschein" + +#: ../lib/modules/sambaSamAccount.inc:566 +msgid "Central Europe Time, Paris, Berlin" +msgstr "Mitteleuropäische Zeit, Paris, Berlin" + +#: ../lib/modules/sambaSamAccount.inc:559 +msgid "Central Time (US & Canada), Mexico City" +msgstr "Central Time (USA & Kanada), Mexiko Stadt" + +#: ../templates/selfService/adminMain.php:514 +#: ../lib/modules/mitKerberos.inc:377 ../lib/modules/mitKerberos.inc:388 +#: ../lib/modules/mitKerberos.inc:686 ../lib/modules/qmailUser.inc:661 +#: ../lib/modules/qmailUser.inc:917 ../lib/modules/zarafaContact.inc:229 +#: ../lib/modules/windowsHost.inc:155 ../lib/modules/windowsHost.inc:225 +#: ../lib/modules/zarafaGroup.inc:266 ../lib/modules/device.inc:181 +#: ../lib/modules/sambaSamAccount.inc:1197 +#: ../lib/modules/sambaSamAccount.inc:1482 ../lib/modules/zarafaUser.inc:466 +#: ../lib/modules/zarafaUser.inc:557 ../lib/modules/shadowAccount.inc:355 +#: ../lib/modules/shadowAccount.inc:474 ../lib/modules/inetOrgPerson.inc:1566 +#: ../lib/modules/freeRadius.inc:301 ../lib/modules/freeRadius.inc:427 +#: ../lib/modules/asteriskExtension.inc:236 ../lib/modules/aliasEntry.inc:100 +#: ../lib/modules/qmailGroup.inc:572 ../lib/modules/organizationalRole.inc:194 +#: ../lib/modules/passwordSelfReset.inc:271 +#: ../lib/modules/heimdalKerberos.inc:324 +#: ../lib/modules/heimdalKerberos.inc:335 +#: ../lib/modules/heimdalKerberos.inc:596 ../lib/modules/windowsGroup.inc:361 +#: ../lib/modules/windowsGroup.inc:504 ../lib/modules/groupOfNames.inc:241 +#: ../lib/modules/groupOfNames.inc:248 +msgid "Change" +msgstr "Ändern" + +#: ../templates/lists/changePassword.php:228 +msgid "Change Asterisk password" +msgstr "Asterisk-Passwort ändern" + +#: ../templates/lists/changePassword.php:231 +msgid "Change Asterisk voicemail password" +msgstr "Asterisk-Anrufbeantworterpasswort ändern" + +#: ../lib/modules/posixGroup.inc:218 ../lib/modules/posixGroup.inc:512 +msgid "Change GID number of users and hosts" +msgstr "Ändere die GID-Nummern aller Benutzer auf den neuen Wert" + +#: ../templates/lists/changePassword.php:234 +#: ../templates/lists/changePassword.php:237 +msgid "Change Kerberos password" +msgstr "Kerberos-Passwort ändern" + +#: ../templates/lists/changePassword.php:221 +msgid "Change Samba LM password" +msgstr "Samba-LM-Passwort ändern" + +#: ../templates/lists/changePassword.php:219 +msgid "Change Samba NT password" +msgstr "Samba-NT-Passwort ändern" + +#: ../templates/lists/changePassword.php:213 +msgid "Change Unix password" +msgstr "Unix-Passwort ändern" + +#: ../templates/lists/changePassword.php:240 +msgid "Change Windows password" +msgstr "Windows-Passwort ändern" + +#: ../lib/types/user.inc:303 +msgid "Change account status" +msgstr "Accountstatus ändern" + +#: ../templates/config/profmanage.php:300 +#: ../templates/config/profmanage.php:303 ../help/help.inc:138 +msgid "Change default profile" +msgstr "Standardprofil wechseln" + +#: ../templates/selfService/adminMain.php:575 +msgid "Change field label." +msgstr "Feldbezeichner ändern." + +#: ../lib/lists.inc:792 +msgid "Change list settings" +msgstr "Listeneinstellungen ändern" + +#: ../templates/config/mainmanage.php:454 ../help/help.inc:140 +msgid "Change master password" +msgstr "Hauptpasswort ändern" + +#: ../templates/lists/changePassword.php:216 +#: ../templates/lists/changePassword.php:261 +#: ../templates/lists/changePassword.php:346 +#: ../templates/lists/changePassword.php:348 +#: ../templates/lists/changePassword.php:383 +#: ../templates/lists/changePassword.php:385 ../lib/types/user.inc:669 +#: ../help/help.inc:105 +msgid "Change password" +msgstr "Passwort ändern" + +#: ../templates/lists/changePassword.php:268 +#: ../templates/lists/changePassword.php:269 +msgid "Change password now?" +msgstr "Passwort jetzt ändern?" + +#: ../templates/config/confmain.php:261 +msgid "Change passwords" +msgstr "Passwörter ändern" + +#: ../lib/lists.inc:793 +msgid "Change settings" +msgstr "Einstellungen ändern" + +#: ../lib/modules/posixAccount.inc:1225 +msgid "Changed value because only ASCII characters are allowed." +msgstr "Wert wurde geändert da nur ASCII-Zeichen erlaubt sind." + +#: ../lib/modules/passwordSelfReset.inc:185 +msgid "Charlie" +msgstr "Charlie" + +#: ../lib/modules/posixAccount.inc:1485 +msgid "Check home directories" +msgstr "Heimatverzeichnisse prüfen" + +#: ../templates/tests/index.php:54 ../lib/tools/tests.inc:112 +msgid "Check if quotas and homedirectories can be managed." +msgstr "Prüft, ob Quotas und Heimatverzeichnisse verwaltet werden können." + +#: ../templates/tests/index.php:60 ../lib/tools/tests.inc:118 +msgid "" +"Check if the LDAP schema fits the requirements of the selected account " +"modules." +msgstr "" +"Prüft, ob das LDAP-Schema die Anforderungen der ausgewählten Accountmodule " +"erfüllt." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2401 +msgid "Check password" +msgstr "Passwort prüfen" + +#: ../templates/tests/lamdaemonTest.php:87 +msgid "Check quotas" +msgstr "Quotas prüfen" + +#: ../templates/masscreate.php:247 +msgid "" +"Check your input carefully. LAM will only do some basic checks on the upload " +"data." +msgstr "" +"Bitte prüfen Sie Ihre Eingaben sorgfältig. LAM wird nur einige grundlegende " +"Prüfungen der Daten vornehmen." + +#: ../lib/modules/customFields.inc:2735 +msgid "Checkbox" +msgstr "Checkbox" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1224 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1229 +msgid "Children" +msgstr "Kinder" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:23 +msgid "Choose entry" +msgstr "Eintrag wählen" + +#: ../lib/modules/imapAccess.inc:90 +msgid "" +"Choose the way how to provide the IMAP admin password. You can use the same " +"password as for the LAM login or LAM will ask you for a password when it is " +"required." +msgstr "" +"Bitte wählen Sie, wie das IMAP-Passwort angegeben werden soll. Sie können " +"das Passwort des LAM-Logins verwenden oder LAM kann Sie bei Bedarf nach dem " +"Passwort fragen." + +#: ../lib/modules/puppetClient.inc:92 ../lib/modules/puppetClient.inc:96 +#: ../lib/modules/puppetClient.inc:140 ../lib/modules/puppetClient.inc:155 +#: ../lib/modules/puppetClient.inc:168 ../lib/modules/puppetClient.inc:271 +#: ../lib/modules/puppetClient.inc:433 +msgid "Classes" +msgstr "Klassen" + +#: ../lib/lists.inc:384 +msgid "Clear filter" +msgstr "Suchfilter löschen" + +#: ../lib/config.inc:266 +msgid "Click here if you are not directed to the next page." +msgstr "Hier klicken wenn Sie nicht zur nächsten Seite weitergeleitet werden." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2349 +msgid "Click to popup a dialog to select a date graphically" +msgstr "Hiermit können Sie das Datum grafisch auswählen" + +#: ../templates/3rdParty/pla/lib/functions.php:2293 +msgid "Click to popup a dialog to select an entry (DN) graphically" +msgstr "Hiermit können Sie den DN grafisch auswählen" + +#: ../lib/types/user.inc:619 +msgid "Click to switch between thumbnail and original size." +msgstr "Klicken, um zwischen Miniaturbild und Originalgröße umzuschalten." + +#: ../lib/modules/sambaSamAccount.inc:242 +#: ../lib/modules/sambaSamAccount.inc:379 +#: ../lib/modules/sambaSamAccount.inc:1540 +#: ../lib/modules/sambaSamAccount.inc:1950 +msgid "Client printer is default" +msgstr "Client-Drucker ist Standarddrucker" + +#: ../templates/schema/schema.php:199 +msgid "Collective" +msgstr "Gemeinsam" + +#: ../lib/modules/pykotaPrinter.inc:155 +msgid "Color laser printer" +msgstr "Farblaserdrucker" + +#: ../templates/masscreate.php:284 ../lib/modules/customFields.inc:128 +#: ../lib/modules/customFields.inc:2601 +msgid "Columns" +msgstr "Spalten" + +#: ../lib/modules/sambaSamAccount.inc:319 +msgid "" +"Comma separated list of Samba workstations the user is allowed to login. " +"Empty means every workstation." +msgstr "" +"Liste der Samba-Arbeitsstationen, auf welchen sich der Benutzer anmelden " +"darf. Die Einträge werden mit Komma getrennt. Leer heißt jede Arbeitsstation." + +#: ../lib/modules/authorizedServiceObject.inc:86 +msgid "Comma separated list of services (e.g. sshd, imap, ftp)." +msgstr "Komma-getrennte Liste der erlaubten Dienste (z.B. sshd, imap, ftp)." + +#: ../lib/types/sudo.inc:80 ../lib/modules/customScripts.inc:169 +msgid "Command" +msgstr "Kommando" + +#: ../lib/modules/sudoRole.inc:82 ../lib/modules/sudoRole.inc:108 +#: ../lib/modules/sudoRole.inc:171 ../lib/modules/sudoRole.inc:218 +#: ../lib/modules/sudoRole.inc:230 ../lib/modules/sudoRole.inc:370 +#: ../lib/modules/sudoRole.inc:808 +msgid "Commands" +msgstr "Kommandos" + +#: ../lib/modules/pykotaUser.inc:375 ../lib/modules/pykotaUser.inc:599 +#: ../lib/modules/pykotaUser.inc:907 ../lib/modules/pykotaUser.inc:967 +msgid "Comment" +msgstr "Kommentar" + +#: ../lib/modules/pykotaUser.inc:137 +msgid "Comment for initial balance." +msgstr "Kommentar für initialen Kontostand." + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:117 +msgid "Commit" +msgstr "Bestätigen" + +#: ../lib/modules/posixAccount.inc:438 +msgid "Common examples are \"@givenname@%sn%\" or \"%givenname%.%sn%\"." +msgstr "Typische Beispiele sind \"@givenname@%sn%\" oder \"%givenname%.%sn%\"." + +#: ../templates/config/mainmanage.php:362 ../lib/types/user.inc:94 +#: ../lib/modules/pykotaGroup.inc:113 ../lib/modules/pykotaGroup.inc:157 +#: ../lib/modules/pykotaGroup.inc:185 ../lib/modules/pykotaGroup.inc:466 +#: ../lib/modules/posixAccount.inc:129 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:348 ../lib/modules/posixAccount.inc:421 +#: ../lib/modules/posixAccount.inc:538 ../lib/modules/posixAccount.inc:560 +#: ../lib/modules/posixAccount.inc:1429 ../lib/modules/posixAccount.inc:1856 +#: ../lib/modules/posixAccount.inc:2558 ../lib/modules/windowsUser.inc:102 +#: ../lib/modules/windowsUser.inc:290 ../lib/modules/windowsUser.inc:473 +#: ../lib/modules/windowsUser.inc:499 ../lib/modules/windowsUser.inc:591 +#: ../lib/modules/windowsUser.inc:702 ../lib/modules/windowsUser.inc:1594 +#: ../lib/modules/pykotaUser.inc:108 ../lib/modules/pykotaUser.inc:199 +#: ../lib/modules/pykotaUser.inc:271 ../lib/modules/pykotaUser.inc:405 +#: ../lib/modules/pykotaUser.inc:888 ../lib/modules/inetOrgPerson.inc:95 +#: ../lib/modules/inetOrgPerson.inc:640 ../lib/modules/inetOrgPerson.inc:762 +#: ../lib/modules/inetOrgPerson.inc:1222 ../lib/modules/inetOrgPerson.inc:1225 +#: ../lib/modules/inetOrgPerson.inc:1938 ../lib/modules/inetOrgPerson.inc:2069 +#: ../lib/modules/inetOrgPerson.inc:3665 +#: ../lib/modules/asteriskExtension.inc:118 +msgid "Common name" +msgstr "Allgemeiner Name" + +#: ../lib/modules/asteriskExtension.inc:119 +msgid "Common name of the Asterisk extension." +msgstr "Name der Asterisk-Erweiterung." + +#: ../templates/serverInfo.php:335 ../templates/serverInfo.php:396 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1172 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:60 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:39 +msgid "Compare" +msgstr "Vergleichen" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:28 +#, php-format +msgid "Compare another DN with %s" +msgstr "Einen anderen DN mit %s vergleichen" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1169 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +msgid "Compare this DN with another" +msgstr "Diesen DN mit einem anderen vergleichen" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +msgid "Compare with another entry" +msgstr "Diesen DN mit einem anderen vergleichen" + +#: ../templates/3rdParty/pla/htdocs/compare.php:42 +msgid "Comparing the following DNs" +msgstr "Vergleiche die folgenden DNs" + +#: ../templates/serverInfo.php:284 ../templates/serverInfo.php:371 +msgid "Completed" +msgstr "Abgeschlossen" + +#: ../templates/serverInfo.php:114 +msgid "Config suffix" +msgstr "Suffix für Konfiguration" + +#: ../templates/config/index.php:50 +msgid "Configuration overview" +msgstr "Einstellungen" + +#: ../lib/modules/qmailUser.inc:126 ../lib/modules/qmailUser.inc:179 +#: ../lib/modules/qmailUser.inc:259 ../lib/modules/qmailUser.inc:392 +#: ../lib/modules/qmailUser.inc:439 ../lib/modules/qmailUser.inc:619 +#: ../lib/modules/qmailUser.inc:1178 +msgid "Configuration type" +msgstr "Konfigurationstyp" + +#: ../lib/modules/qmailGroup.inc:96 ../lib/modules/qmailGroup.inc:228 +#: ../lib/modules/qmailGroup.inc:361 ../lib/modules/qmailGroup.inc:411 +#: ../lib/modules/qmailGroup.inc:623 ../lib/modules/qmailGroup.inc:1081 +msgid "Confirm sender" +msgstr "Absender prüfen" + +#: ../lib/modules/selfRegistration.inc:228 +msgid "Confirmation mail settings" +msgstr "Einstellungen für Bestätigungsmail" + +#: ../lib/modules/qmailGroup.inc:74 ../lib/modules/qmailGroup.inc:103 +#: ../lib/modules/qmailGroup.inc:152 ../lib/modules/qmailGroup.inc:271 +#: ../lib/modules/qmailGroup.inc:378 ../lib/modules/qmailGroup.inc:591 +#: ../lib/modules/qmailGroup.inc:1060 +msgid "Confirmation text" +msgstr "Prüfungstext" + +#: ../lib/modules/qmailGroup.inc:153 +msgid "" +"Confirmation text that is used if sender-confirmation is used. The usual " +"%HEADER% magic of qmail-reply etc. can be used here." +msgstr "" +"Dieser Text wird zur Absenderprüfung genutzt. Die normalen %HEADER%-" +"Ersetzungen von qmail-reply etc. können hier verwendet werden." + +#: ../templates/config/confmodules.php:394 +msgid "Conflicting module:" +msgstr "Modulkonflikt:" + +#: ../lib/modules/sambaSamAccount.inc:240 +#: ../lib/modules/sambaSamAccount.inc:373 +#: ../lib/modules/sambaSamAccount.inc:1536 +#: ../lib/modules/sambaSamAccount.inc:1940 +msgid "Connect client drives" +msgstr "Verbinde Client-Laufwerke" + +#: ../lib/modules/sambaSamAccount.inc:241 +#: ../lib/modules/sambaSamAccount.inc:376 +#: ../lib/modules/sambaSamAccount.inc:1538 +#: ../lib/modules/sambaSamAccount.inc:1945 +msgid "Connect client printers" +msgstr "Verbinde Client-Drucker" + +#: ../templates/serverInfo.php:230 +msgid "Connection statistics" +msgstr "Verbindungsstatistiken" + +#: ../lib/types/oracleContextType.inc:78 ../lib/modules/oracleService.inc:65 +#: ../lib/modules/oracleService.inc:85 ../lib/modules/oracleService.inc:99 +#: ../lib/modules/oracleService.inc:123 ../lib/modules/oracleService.inc:171 +msgid "Connection string" +msgstr "Connection-String" + +#: ../lib/modules/sambaSamAccount.inc:237 +#: ../lib/modules/sambaSamAccount.inc:1524 +#: ../lib/modules/sambaSamAccount.inc:1933 +msgid "Connection time limit" +msgstr "Zeitlimit für Verbindung" + +#: ../lib/modules/bindDLZ.inc:232 +msgid "Contact address for this zone (e.g. \"root.example.com.\")." +msgstr "Kontaktadresse für diese Zone (z.B. \"root.beispiel.de.\")." + +#: ../lib/modules/windowsUser.inc:715 ../lib/modules/inetOrgPerson.inc:1402 +msgid "Contact data" +msgstr "Kontaktdaten" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:721 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1301 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +msgid "Container" +msgstr "Container" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1458 +msgid "Container and object classes" +msgstr "Container und Objektklassen" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:27 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:88 +#: ../templates/3rdParty/pla/htdocs/copy.php:108 +msgid "Copy" +msgstr "Kopieren" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:32 +#, php-format +msgid "Copy %s to a new object." +msgstr "%s kopieren." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1098 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1102 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1103 +msgid "Copy or move this entry" +msgstr "Diesen Eintrag kopieren oder verschieben" + +#: ../templates/3rdParty/pla/htdocs/copy.php:130 +#, php-format +msgid "Copy successful. DN %s has been created." +msgstr "Kopieren erfolgreich. DN %s wurde erzeugt." + +#: ../templates/3rdParty/pla/htdocs/copy.php:48 +msgid "Copying" +msgstr "Kopiere" + +#: ../templates/3rdParty/pla/htdocs/import.php:37 +msgid "Could not add object" +msgstr "Konnte Eintrag nicht hinzufügen" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:370 +msgid "Could not add the object to the LDAP server." +msgstr "Konnte den Eintrag nicht hinzufügen." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:30 +msgid "Could not delete attribute value." +msgstr "Konnte Attributwert nicht löschen." + +#: ../templates/3rdParty/pla/htdocs/import.php:38 +msgid "Could not delete object" +msgstr "Konnte Eintrag nicht löschen" + +#: ../templates/3rdParty/pla/htdocs/delete.php:37 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:47 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:73 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:90 +msgid "Could not delete the entry." +msgstr "Konnte Eintrag nicht löschen." + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:37 +#, php-format +msgid "Could not fetch binary data from LDAP server for attribute [%s]." +msgstr "Konnte Binärdaten für Attribut [%s] nicht auslesen." + +#: ../templates/3rdParty/pla/lib/functions.php:1946 +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:60 +#, php-format +msgid "Could not fetch jpeg data from LDAP server for attribute [%s]." +msgstr "Konnte JPEG-Daten für Attribut [%s] nicht auslesen." + +#: ../templates/3rdParty/pla/htdocs/import.php:41 +msgid "Could not modify object" +msgstr "Konnte Eintrag nicht ändern" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:528 +msgid "Could not perform ldap_modify operation." +msgstr "Konnte LDAP-Änderung nicht ausführen." + +#: ../templates/config/profmanage.php:100 +#: ../templates/selfService/profManage.php:74 +msgid "Could not rename file!" +msgstr "Konnte Datei nicht umbenennen!" + +#: ../templates/3rdParty/pla/htdocs/import.php:39 +#: ../templates/3rdParty/pla/htdocs/import.php:40 +#: ../templates/3rdParty/pla/htdocs/rename.php:60 +msgid "Could not rename the entry." +msgstr "Konnte Eintrag nicht umbenennen." + +#: ../templates/pdfedit/pdfpage.php:117 +msgid "Could not save PDF structure, access denied." +msgstr "Konnte PDF-Struktur nicht speichern, Zugriff verweigert." + +#: ../templates/pdfedit/pdfmain.php:182 +#: ../templates/profedit/profilemain.php:168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1185 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1189 +#: ../templates/initsuff.php:190 ../lib/modules/nisMailAliasUser.inc:366 +#: ../lib/modules/sambaSamAccount.inc:1625 +#: ../lib/modules/posixAccount.inc:1695 +msgid "Create" +msgstr "Erstellen" + +#: ../lib/lists.inc:500 ../lib/lists.inc:686 ../lib/modules.inc:1349 +#: ../help/help.inc:200 +msgid "Create PDF file" +msgstr "PDF-Datei erstellen" + +#: ../templates/massDoUpload.php:202 ../templates/masscreate.php:264 +msgid "Create PDF files" +msgstr "PDF-Dateien erstellen" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1186 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1190 +msgid "Create a child entry" +msgstr "Neuen Untereintrag anlegen" + +#: ../templates/pdfedit/pdfmain.php:175 +msgid "Create a new PDF structure" +msgstr "Neue PDF-Struktur erstellen" + +#: ../templates/profedit/profilemain.php:156 +msgid "Create a new profile" +msgstr "Neues Profil erstellen" + +#: ../lib/types/dhcp.inc:46 +msgid "Create another DHCP entry" +msgstr "Neuen DHCP-Eintrag anlegen" + +#: ../lib/types/bind.inc:29 +msgid "Create another DNS entry" +msgstr "Weiteren DNS-Eintrag anlegen" + +#: ../lib/types/nisObjectType.inc:29 +msgid "Create another NIS object" +msgstr "Weiteres NIS-Objekt anlegen" + +#: ../lib/baseType.inc:47 +msgid "Create another account" +msgstr "Weiteren Account anlegen" + +#: ../lib/types/zarafaAddressListType.inc:43 +msgid "Create another address list" +msgstr "Weitere Adressliste anlegen" + +#: ../lib/types/mailAlias.inc:43 ../lib/types/alias.inc:43 +msgid "Create another alias" +msgstr "Weiteren Alias anlegen" + +#: ../lib/types/automountType.inc:34 +msgid "Create another automount entry" +msgstr "Weiteren Automount-Eintrag anlegen" + +#: ../lib/types/pykotaBillingCodeType.inc:43 +msgid "Create another billing code" +msgstr "Weiteren Rechnungscode anlegen" + +#: ../lib/types/oracleContextType.inc:29 +msgid "Create another database entry" +msgstr "Weiteren Datenbankeintrag anlegen" + +#: ../lib/types/smbDomain.inc:43 +msgid "Create another domain" +msgstr "Weitere Domäne anlegen" + +#: ../templates/3rdParty/pla/htdocs/create.php:100 +msgid "Create another entry" +msgstr "Weiteren Eintrag anlegen" + +#: ../lib/types/asteriskExt.inc:46 +msgid "Create another extension" +msgstr "Weitere Erweiterung anlegen" + +#: ../lib/types/gon.inc:43 ../lib/types/zarafaDynamicGroupType.inc:43 +#: ../lib/types/group.inc:44 ../lib/types/netgroup.inc:43 +msgid "Create another group" +msgstr "Weitere Gruppe anlegen" + +#: ../lib/types/host.inc:43 +msgid "Create another host" +msgstr "Weiteren Host anlegen" + +#: ../lib/types/ppolicyType.inc:29 +msgid "Create another policy" +msgstr "Weitere Richtlinie anlegen" + +#: ../lib/types/pykotaPrinterType.inc:43 +msgid "Create another printer" +msgstr "Weiteren Drucker anlegen" + +#: ../lib/types/gon.inc:48 ../lib/types/group.inc:49 +msgid "Create another role" +msgstr "Weitere Rolle anlegen" + +#: ../lib/types/kolabSharedFolderType.inc:43 +msgid "Create another shared folder" +msgstr "Weiteren gemeinsamen Ordner anlegen" + +#: ../lib/types/sudo.inc:29 +msgid "Create another sudo role" +msgstr "Weitere Sudo-Rolle anlegen" + +#: ../lib/types/user.inc:43 +msgid "Create another user" +msgstr "Weiteren Benutzer anlegen" + +#: ../lib/lists.inc:691 +msgid "Create for" +msgstr "Erstellen für" + +#: ../lib/modules/posixAccount.inc:317 ../lib/modules/posixAccount.inc:1471 +#: ../lib/modules/posixAccount.inc:1760 +msgid "Create home directory" +msgstr "Heimatverzeichnis anlegen" + +#: ../lib/modules/imapAccess.inc:263 +msgid "Create mailbox" +msgstr "Postfach erstellen" + +#: ../lib/modules/nisMailAliasUser.inc:359 +msgid "Create new alias" +msgstr "Neuen Alias anlegen" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:278 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:281 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:283 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:506 +msgid "Create new entry here" +msgstr "Neuen Eintrag hier anlegen" + +#: ../lib/modules/customFields.inc:72 ../lib/modules/customFields.inc:519 +#: ../lib/modules/customFields.inc:532 +msgid "Create new group" +msgstr "Neue Gruppe anlegen" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:698 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1541 +#: ../templates/3rdParty/pla/htdocs/create.php:84 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:52 +msgid "Create object" +msgstr "Eintrag erstellen" + +#: ../lib/modules/generalInformation.inc:76 +msgid "Created by" +msgstr "Erstellt von" + +#: ../lib/types/automountType.inc:273 +msgid "Created new automount map." +msgstr "Neue Automount-Map wurde angelegt." + +#: ../templates/config/profmanage.php:77 +#: ../templates/selfService/profManage.php:55 +msgid "Created new profile." +msgstr "Neues Profil wurde erstellt." + +#: ../lib/types/bind.inc:240 +msgid "Created new zone." +msgstr "Neue Zone wurde erstellt." + +#: ../lib/modules/customFields.inc:73 +msgid "" +"Creates a new group for the given account type. Groups build a container for " +"object classes and attributes." +msgstr "" +"Damit erstellen Sie eine neue Gruppe für diesen Accounttyp. Gruppen bilden " +"einen Container für Objektklassen und Attribute." + +#: ../lib/tools/fileUpload.inc:53 +msgid "Creates accounts by uploading a CSV formated file." +msgstr "Erstellt Accounts durch das Hochladen einer CSV formatierten Datei." + +#: ../templates/3rdParty/pla/htdocs/create.php:77 +#, php-format +msgid "Creation successful. DN %s has been created." +msgstr "Erstellung erfolgreich. DN %s wurde erzeugt." + +#: ../lib/modules/generalInformation.inc:80 +msgid "Creation time" +msgstr "Erstellzeit" + +#: ../lib/modules/pykotaUser.inc:133 +msgid "Current account balance for the user." +msgstr "Aktueller Kontostand für den Benutzer." + +#: ../templates/serverInfo.php:232 ../templates/serverInfo.php:237 +msgid "Current connections" +msgstr "Aktuelle Verbindungen" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:65 +#, php-format +msgid "Current list of %s values for attribute %s:" +msgstr "Aktuelle Liste von %s Werten für Attribut %s:" + +#: ../lib/modules/imapAccess.inc:317 +msgid "Current usage (kB)" +msgstr "Aktueller Verbrauch (kB)" + +#: ../lib/modules/customFields.inc:1097 ../lib/modules/customFields.inc:1420 +msgid "Custom fields" +msgstr "Eigene Felder" + +#: ../lib/modules/customFields.inc:172 +msgid "Custom icon" +msgstr "Eigenes Symbol" + +#: ../templates/config/conftypes.php:315 ../lib/modules/customFields.inc:168 +#: ../help/help.inc:180 +msgid "Custom label" +msgstr "Eigener Bezeichner" + +#: ../lib/modules/customScripts.inc:48 ../lib/modules/customScripts.inc:59 +#: ../lib/modules/customScripts.inc:73 ../lib/modules/customScripts.inc:98 +#: ../lib/modules/customScripts.inc:108 +msgid "Custom scripts" +msgstr "Eigene Skripte" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1097 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1101 +msgid "Cut" +msgstr "Ausschneiden" + +#: ../lib/modules/ddns.inc:63 +msgid "DDNS" +msgstr "DDNS" + +#: ../lib/modules/ddns.inc:377 +msgid "" +"DDNS ist not activated. You can activate it in the DHCP settings (DDNS)." +msgstr "" +"DDNS ist nicht aktiviert. Sie können es in den DHCP-Einstellungen (DDNS) " +"ändern." + +#: ../lib/types/dhcp.inc:56 +msgid "DHCP" +msgstr "DHCP" + +#: ../lib/types/dhcp.inc:65 +msgid "DHCP administration" +msgstr "DHCP-Verwaltung" + +#: ../lib/types/dhcp.inc:170 +#, php-format +msgid "DHCP count: %s" +msgstr "Anzahl DHCPs: %s" + +#: ../lib/types/dhcp.inc:173 ../lib/modules/dhcp_settings.inc:127 +msgid "DHCP settings" +msgstr "DHCP-Einstellungen" + +#: ../templates/delete.php:100 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:734 +#: ../templates/3rdParty/pla/lib/PageRender.php:110 +#: ../templates/3rdParty/pla/htdocs/compare.php:52 +#: ../templates/3rdParty/pla/htdocs/compare.php:58 +#: ../templates/3rdParty/pla/htdocs/create.php:92 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:35 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:112 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:57 ../lib/modules.inc:410 +#: ../lib/modules.inc:1964 +msgid "DN" +msgstr "DN" + +#: ../templates/3rdParty/pla/lib/import_functions.php:210 +#: ../templates/3rdParty/pla/lib/import_functions.php:222 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1866 +msgid "DN does not exist" +msgstr "DN existiert nicht" + +#: ../templates/masscreate.php:288 +msgid "DN settings" +msgstr "DN-Einstellungen" + +#: ../templates/masscreate.php:317 ../help/help.inc:190 +msgid "DN suffix" +msgstr "DN-Suffix" + +#: ../lib/modules/dhcp_settings.inc:211 ../lib/modules/dhcp_settings.inc:226 +#: ../lib/modules/dhcp_settings.inc:268 ../lib/modules/dhcp_settings.inc:577 +#: ../lib/modules/dhcp_settings.inc:677 +msgid "DNS" +msgstr "DNS" + +#: ../lib/modules/dhcp_settings.inc:161 +msgid "DNS (Domain Name System)" +msgstr "DNS (Domain Name System)" + +#: ../lib/modules/bindDLZ.inc:74 +msgid "DNS entry" +msgstr "DNS-Eintrag" + +#: ../lib/types/bind.inc:159 +#, php-format +msgid "DNS entry count: %s" +msgstr "Anzahl DNS-Einträge: %s" + +#: ../lib/modules/asteriskExtension.inc:115 +msgid "DNs of the extension owners" +msgstr "DNs der Besitzer dieser Erweiterung" + +#: ../templates/3rdParty/pla/lib/export_functions.php:343 +msgid "DSML V.1 Export" +msgstr "DSML V.1-Export" + +#: ../lib/modules/asteriskAccount.inc:273 +#: ../lib/modules/asteriskAccount.inc:362 +#: ../lib/modules/asteriskAccount.inc:627 +#: ../lib/modules/asteriskAccount.inc:1247 +msgid "DTFM flags" +msgstr "DTFM-Flags" + +#: ../lib/modules/asteriskAccount.inc:139 +#: ../lib/modules/asteriskAccount.inc:989 +msgid "DTMF mode" +msgstr "DTFM-Modus" + +#: ../lib/modules/asteriskAccount.inc:140 +msgid "DTMF mode for SIP client configuration." +msgstr "DTFM-Modus für SIP-Einstellung." + +#: ../templates/3rdParty/pla/htdocs/import.php:103 +msgid "Data" +msgstr "Daten" + +#: ../lib/types/oracleContextType.inc:186 +#, php-format +msgid "Database count: %s" +msgstr "Anzahl Datenbanken: %s" + +#: ../lib/modules/pykotaUser.inc:595 ../lib/modules/pykotaUser.inc:646 +#: ../lib/modules/pykotaUser.inc:905 ../lib/modules/pykotaUser.inc:963 +#: ../lib/modules/pykotaUser.inc:995 +msgid "Date" +msgstr "Datum" + +#: ../lib/modules/sambaSamAccount.inc:299 +msgid "Date after the user is able to change his password." +msgstr "Datum, nach dem der Benutzer sein Passwort ändern kann." + +#: ../lib/modules/mitKerberos.inc:121 ../lib/modules/sambaSamAccount.inc:301 +#: ../lib/modules/heimdalKerberos.inc:107 +msgid "Date after the user must change his password." +msgstr "Datum, nach dem der Benutzer sein Passwort ändern muss." + +#: ../lib/modules/shadowAccount.inc:178 +msgid "" +"Days before password is to expire that user is warned of pending password " +"expiration. If set value must be >0." +msgstr "" +"Anzahl Tage, die der Benutzer gewarnt wird bevor sein Passwort abläuft. Wert " +"muss größer 0 sein." + +#: ../templates/config/mainmanage.php:408 +msgid "Debug" +msgstr "Debug" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:592 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +#: ../lib/modules/qmailUser.inc:47 ../lib/modules/qmailUser.inc:292 +#: ../lib/modules/qmailUser.inc:1060 +msgid "Default" +msgstr "Standard" + +#: ../templates/config/mainmanage.php:443 +msgid "Default (\\r\\n)" +msgstr "Standard (\\r\\n)" + +#: ../lib/modules/dhcp_settings.inc:165 ../lib/modules/dhcp_settings.inc:212 +#: ../lib/modules/dhcp_settings.inc:227 ../lib/modules/dhcp_settings.inc:274 +#: ../lib/modules/dhcp_settings.inc:579 ../lib/modules/dhcp_settings.inc:678 +msgid "Default gateway" +msgstr "Standard-Gateway" + +#: ../templates/config/confmain.php:297 +#: ../templates/selfService/adminMain.php:453 ../help/help.inc:99 +msgid "Default language" +msgstr "Standardsprache" + +#: ../lib/modules/asteriskAccount.inc:231 +#: ../lib/modules/asteriskAccount.inc:296 +#: ../lib/modules/asteriskAccount.inc:530 +#: ../lib/modules/asteriskAccount.inc:750 +#: ../lib/modules/asteriskAccount.inc:1012 +#: ../lib/modules/asteriskAccount.inc:1293 +msgid "Default user" +msgstr "Standardbenutzer" + +#: ../templates/masscreate.php:306 ../templates/masscreate.php:380 +#: ../lib/modules/customFields.inc:124 ../lib/modules/customFields.inc:2761 +msgid "Default value" +msgstr "Standardwert" + +#: ../help/help.inc:159 +msgid "" +"Defines if the PHP error reporting setting from php.ini is used or the " +"setting preferred by LAM (\"E_ALL & ~E_NOTICE\"). If you do not develop LAM " +"modules please use the default. This will prevent displaying messages that " +"are useful only for developers." +msgstr "" +"Definiert ob die PHP-Fehlerberichtseinstellungen aus der php.ini verwendet " +"werden oder die von LAM präferierte Einstellung (\"E_ALL & ~E_NOTICE\"). " +"Wenn Sie keine LAM-Module entwickeln verwenden Sie bitte den Standard. Damit " +"unterdrücken Sie Meldungen für Entwickler." + +#: ../lib/modules/sambaDomain.inc:118 +msgid "Defines if workstations may change their passwords." +msgstr "" +"Hier können Sie bestimmen, ob Computer ihre Domänenpasswörter ändern dürfen." + +#: ../lib/modules/asteriskAccount.inc:160 +msgid "" +"Defines the mailbox to check for message waiting indication (MWI) for this " +"peer." +msgstr "" +"Gibt das Postfach für Message Waiting Indication (MWI) dieses Teilnehmers an." + +#: ../lib/types/kolabSharedFolderType.inc:91 ../lib/modules/kolabUser.inc:116 +#: ../lib/modules/kolabUser.inc:132 ../lib/modules/kolabUser.inc:136 +#: ../lib/modules/kolabUser.inc:211 ../lib/modules/kolabUser.inc:234 +#: ../lib/modules/kolabUser.inc:359 ../lib/modules/kolabUser.inc:765 +#: ../lib/modules/kolabUser.inc:837 ../lib/modules/kolabSharedFolder.inc:138 +#: ../lib/modules/kolabSharedFolder.inc:142 +#: ../lib/modules/kolabSharedFolder.inc:226 +#: ../lib/modules/kolabSharedFolder.inc:237 +#: ../lib/modules/kolabSharedFolder.inc:320 +#: ../lib/modules/kolabSharedFolder.inc:564 +msgid "Delegates" +msgstr "Vollmachten" + +#: ../lib/modules/kolabSharedFolder.inc:139 +msgid "" +"Delegates are allowed to act on behalf of the shared folder. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"Vollmachten erlauben es im Namen eines gemeinsamen Ordners zu agieren. Diese " +"Einstellung wird geprüft wenn der Kolab-SMTP-Dämon (Postfix) zum Versenden " +"von emails verwendet wird." + +#: ../templates/serverInfo.php:321 ../templates/serverInfo.php:390 +#: ../templates/multiEdit.php:126 ../templates/ou_edit.php:120 +#: ../templates/config/profmanage.php:273 +#: ../templates/selfService/profManage.php:238 +#: ../templates/pdfedit/pdfmain.php:209 ../templates/pdfedit/pdfmain.php:210 +#: ../templates/pdfedit/pdfmain.php:243 ../templates/delete.php:120 +#: ../templates/profedit/profilemain.php:198 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:33 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:124 +#: ../lib/modules/pykotaPrinter.inc:281 +#: ../lib/modules/sambaSamAccount.inc:1618 +#: ../lib/modules/posixAccount.inc:1688 ../lib/modules/zarafaUser.inc:1434 +#: ../lib/modules/zarafaUser.inc:1486 ../lib/modules/bindDLZ.inc:1062 +#: ../lib/modules/bindDLZ.inc:1383 ../lib/modules/kolabUser.inc:827 +#: ../lib/modules/sambaGroupMapping.inc:405 +#: ../lib/modules/ldapPublicKey.inc:262 ../lib/modules/nisnetgroup.inc:253 +#: ../lib/modules/inetOrgPerson.inc:2863 ../lib/modules/customFields.inc:2086 +#: ../lib/modules/customFields.inc:3462 ../lib/lists.inc:494 +msgid "Delete" +msgstr "Löschen" + +#: ../templates/3rdParty/pla/htdocs/delete.php:31 +msgid "Delete DN" +msgstr "DN löschen" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:30 +msgid "Delete LDAP entries" +msgstr "LDAP-Einträge löschen" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:77 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:84 +msgid "Delete after copy (move):" +msgstr "Nach kopieren löschen (verschieben):" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:72 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:110 +#, php-format +msgid "Delete all %s objects" +msgstr "Alle %s-Objekte löschen" + +#: ../templates/config/mainmanage.php:324 +msgid "Delete all CA certificates" +msgstr "Alle CA-Zertifikate löschen" + +#: ../lib/modules/customFields.inc:624 +msgid "Delete group" +msgstr "Gruppe löschen" + +#: ../lib/modules/posixAccount.inc:1532 +msgid "Delete home directory" +msgstr "Heimatverzeichnis löschen" + +#: ../lib/modules/imapAccess.inc:256 +msgid "Delete mailbox" +msgstr "Postfach löschen" + +#: ../templates/ou_edit.php:199 ../help/help.inc:265 +msgid "Delete organisational unit" +msgstr "Organisational Unit löschen" + +#: ../templates/3rdParty/pla/lib/functions.php:2014 +#: ../lib/modules/inetOrgPerson.inc:1621 +msgid "Delete photo" +msgstr "Foto löschen" + +#: ../lib/modules/range.inc:556 +msgid "Delete pool" +msgstr "Pool löschen" + +#: ../templates/config/profmanage.php:271 +#: ../templates/config/profmanage.php:274 +#: ../templates/selfService/profManage.php:232 +#: ../templates/selfService/profManage.php:239 ../help/help.inc:134 +msgid "Delete profile" +msgstr "Lösche Profil" + +#: ../lib/modules/range.inc:105 ../lib/modules/range.inc:137 +#: ../lib/modules/range.inc:532 ../lib/modules/range.inc:607 +msgid "Delete range" +msgstr "Bereich löschen" + +#: ../lib/modules/asteriskExtension.inc:316 +#: ../lib/modules/asteriskExtension.inc:339 +msgid "Delete rule" +msgstr "Lösche Regel" + +#: ../lib/types/dhcp.inc:174 +msgid "Delete selected DHCP entries" +msgstr "Ausgewählte DHCP-Einträge entfernen" + +#: ../lib/types/bind.inc:162 +msgid "Delete selected DNS entries" +msgstr "Ausgewählte DNS-Einträge entfernen" + +#: ../lib/types/nisObjectType.inc:158 +msgid "Delete selected NIS objects" +msgstr "Ausgewählte NIS-Objekte löschen" + +#: ../lib/types/zarafaAddressListType.inc:147 +msgid "Delete selected address lists" +msgstr "Ausgewählte Adresslisten löschen" + +#: ../lib/types/mailAlias.inc:144 ../lib/types/alias.inc:144 +msgid "Delete selected aliases" +msgstr "Ausgewählte Aliase löschen" + +#: ../lib/types/automountType.inc:218 +msgid "Delete selected automount entries" +msgstr "Ausgewählte Automount-Einträge löschen" + +#: ../lib/types/pykotaBillingCodeType.inc:166 +msgid "Delete selected billing codes" +msgstr "Ausgewählte Rechnungscodes löschen" + +#: ../lib/types/oracleContextType.inc:189 +msgid "Delete selected database entries" +msgstr "Ausgewählte Datenbankeinträge entfernen" + +#: ../lib/types/smbDomain.inc:170 +msgid "Delete selected domains" +msgstr "Ausgewählte Domänen löschen" + +#: ../lib/types/asteriskExt.inc:146 +msgid "Delete selected extensions" +msgstr "Ausgewählte Erweiterungen löschen" + +#: ../lib/types/gon.inc:205 ../lib/types/zarafaDynamicGroupType.inc:168 +#: ../lib/types/group.inc:243 ../lib/types/netgroup.inc:172 +msgid "Delete selected groups" +msgstr "Ausgewählte Gruppen löschen" + +#: ../lib/types/host.inc:196 +msgid "Delete selected hosts" +msgstr "Ausgewählte Hosts löschen" + +#: ../lib/lists.inc:115 +msgid "Delete selected objects" +msgstr "Ausgewählte Objekte löschen" + +#: ../lib/types/ppolicyType.inc:152 +msgid "Delete selected policies" +msgstr "Ausgewählte Richtlinien löschen" + +#: ../lib/types/pykotaPrinterType.inc:167 +msgid "Delete selected printers" +msgstr "Ausgewählte Drucker löschen" + +#: ../lib/types/gon.inc:212 ../lib/types/group.inc:250 +msgid "Delete selected roles" +msgstr "Ausgewählte Rollen löschen" + +#: ../lib/types/kolabSharedFolderType.inc:144 +msgid "Delete selected shared folders" +msgstr "Ausgewählte gemeinsame Ordner löschen" + +#: ../lib/types/sudo.inc:162 +msgid "Delete selected sudo roles" +msgstr "Ausgewählte Sudo-Rollen löschen" + +#: ../lib/types/user.inc:532 +msgid "Delete selected users" +msgstr "Ausgewählte Benutzer löschen" + +#: ../templates/3rdParty/pla/htdocs/copy.php:146 +#, php-format +msgid "Delete successful: %s" +msgstr "Löschen war erfolgreich: %s" + +#: ../lib/modules/posixAccount.inc:485 ../lib/modules/posixAccount.inc:1538 +msgid "Delete sudo rights" +msgstr "Sudo-Rechte löschen" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "Delete this entry" +msgstr "Diesen Eintrag löschen" + +#: ../lib/modules/nisMailAliasUser.inc:156 +#: ../lib/modules/nisMailAliasUser.inc:195 +#, php-format +msgid "Delete whole alias entry which includes %s recipients." +msgstr "Kompletten Aliaseintrag mit %s Empfängern löschen." + +#: ../lib/modules/qmailUser.inc:44 +msgid "Deleted" +msgstr "Gelöscht" + +#: ../templates/delete.php:272 +#, php-format +msgid "Deleted DN: %s" +msgstr "Gelöschter DN: %s" + +#: ../templates/pdfedit/pdfmain.php:89 +msgid "Deleted PDF structure." +msgstr "PDF-Struktur gelöscht." + +#: ../templates/profedit/profilemain.php:103 +msgid "Deleted profile." +msgstr "Profil gelöscht." + +#: ../lib/modules/range.inc:106 +msgid "Deletes an IP range." +msgstr "Löscht einen IP-Adressbereich." + +#: ../lib/modules/posixAccount.inc:486 +msgid "Deletes the user from all existing sudo rights." +msgstr "Entfernt den Benutzer aus allen bestehenden Sudo-Rechten." + +#: ../templates/3rdParty/pla/htdocs/import.php:29 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:65 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:82 +msgid "Deleting" +msgstr "Lösche" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:73 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:125 +msgid "Deleting objects" +msgstr "Lösche Objekte" + +#: ../lib/modules/qmailUser.inc:124 ../lib/modules/qmailUser.inc:255 +#: ../lib/modules/qmailUser.inc:382 ../lib/modules/qmailUser.inc:436 +#: ../lib/modules/qmailUser.inc:658 ../lib/modules/qmailUser.inc:899 +#: ../lib/modules/qmailUser.inc:1170 +msgid "Deletion date" +msgstr "Löschdatum" + +#: ../lib/lists.inc:1068 +msgid "Deletion was successful." +msgstr "Löschen war erfolgreich." + +#: ../lib/modules/qmailUser.inc:215 ../lib/modules/qmailUser.inc:290 +#: ../lib/modules/qmailUser.inc:403 ../lib/modules/qmailUser.inc:629 +#: ../lib/modules/qmailUser.inc:1164 +msgid "Delivery mode" +msgstr "Liefermodus" + +#: ../lib/modules/qmailUser.inc:122 ../lib/modules/qmailUser.inc:175 +#: ../lib/modules/qmailUser.inc:251 ../lib/modules/qmailUser.inc:374 +#: ../lib/modules/qmailUser.inc:433 ../lib/modules/qmailUser.inc:648 +#: ../lib/modules/qmailUser.inc:1150 +msgid "Delivery program" +msgstr "Lieferprogramm" + +#: ../lib/modules/asteriskAccount.inc:167 +#: ../lib/modules/asteriskAccount.inc:280 +#: ../lib/modules/asteriskAccount.inc:414 +#: ../lib/modules/asteriskAccount.inc:674 +#: ../lib/modules/asteriskAccount.inc:996 +#: ../lib/modules/asteriskAccount.inc:1261 +#: ../lib/modules/dhcp_settings.inc:104 +msgid "Deny" +msgstr "Verbieten" + +#: ../lib/modules/pykotaGroup.inc:65 ../lib/modules/pykotaUser.inc:65 +msgid "Deny printing" +msgstr "Drucken verbieten" + +#: ../lib/modules/inetOrgPerson.inc:165 ../lib/modules/inetOrgPerson.inc:220 +#: ../lib/modules/inetOrgPerson.inc:494 ../lib/modules/inetOrgPerson.inc:616 +#: ../lib/modules/inetOrgPerson.inc:822 ../lib/modules/inetOrgPerson.inc:826 +#: ../lib/modules/inetOrgPerson.inc:1514 ../lib/modules/inetOrgPerson.inc:1517 +#: ../lib/modules/inetOrgPerson.inc:1953 ../lib/modules/inetOrgPerson.inc:2728 +#: ../lib/modules/inetOrgPerson.inc:3616 ../lib/modules/inetOrgPerson.inc:3657 +msgid "Department" +msgstr "Unternehmensbereich" + +#: ../lib/modules/kolabGroup.inc:105 ../lib/modules/kolabGroup.inc:109 +#: ../lib/modules/kolabUser.inc:162 ../lib/modules/kolabUser.inc:166 +#: ../lib/modules/kolabSharedFolder.inc:130 +#: ../lib/modules/kolabSharedFolder.inc:134 +msgid "" +"Describes the allowed or disallowed SMTP addresses sending mail to this " +"account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "" +"Beschreibt die erlaubten und verbotenen SMTP-Adressen, die an dieses Konto " +"emails versenden (z.B. \"domain.de\" oder \"-benutzer@domain.de\")." + +#: ../lib/modules/kolabGroup.inc:96 ../lib/modules/kolabGroup.inc:100 +#: ../lib/modules/kolabUser.inc:153 ../lib/modules/kolabUser.inc:157 +#: ../lib/modules/kolabSharedFolder.inc:121 +#: ../lib/modules/kolabSharedFolder.inc:125 +msgid "" +"Describes the allowed or disallowed SMTP recipient addresses for mail sent " +"by this account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "" +"Beschreibt die erlaubten und verbotenen SMTP-Empfänger, die von diesem Konto " +"emails erhalten (z.B. \"domain.de\" oder \"-benutzer@domain.de\")." + +#: ../templates/schema/schema.php:89 ../templates/schema/schema.php:143 +#: ../templates/schema/schema.php:346 +#: ../templates/3rdParty/pla/lib/functions.php:1898 +#: ../templates/3rdParty/pla/lib/functions.php:1902 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:139 +#: ../templates/3rdParty/pla/htdocs/import.php:101 +#: ../lib/types/automountType.inc:88 ../lib/types/nisObjectType.inc:80 +#: ../lib/types/oracleContextType.inc:79 +#: ../lib/types/pykotaBillingCodeType.inc:92 ../lib/types/user.inc:101 +#: ../lib/types/pykotaPrinterType.inc:92 ../lib/types/sudo.inc:84 +#: ../lib/types/dhcp.inc:96 ../lib/types/netgroup.inc:92 +#: ../lib/modules/pykotaPrinter.inc:99 ../lib/modules/pykotaPrinter.inc:153 +#: ../lib/modules/pykotaPrinter.inc:194 ../lib/modules/pykotaPrinter.inc:248 +#: ../lib/modules/pykotaPrinter.inc:585 ../lib/modules/account.inc:82 +#: ../lib/modules/account.inc:95 ../lib/modules/account.inc:105 +#: ../lib/modules/account.inc:113 ../lib/modules/account.inc:218 +#: ../lib/modules/account.inc:229 ../lib/modules/windowsHost.inc:78 +#: ../lib/modules/windowsHost.inc:101 ../lib/modules/windowsHost.inc:120 +#: ../lib/modules/windowsHost.inc:143 ../lib/modules/windowsHost.inc:289 +#: ../lib/modules/posixGroup.inc:201 ../lib/modules/posixGroup.inc:430 +#: ../lib/modules/posixGroup.inc:484 ../lib/modules/posixGroup.inc:572 +#: ../lib/modules/device.inc:81 ../lib/modules/device.inc:115 +#: ../lib/modules/device.inc:130 ../lib/modules/device.inc:173 +#: ../lib/modules/device.inc:421 ../lib/modules/dhcp_settings.inc:197 +#: ../lib/modules/dhcp_settings.inc:217 ../lib/modules/dhcp_settings.inc:307 +#: ../lib/modules/dhcp_settings.inc:620 ../lib/modules/dhcp_settings.inc:684 +#: ../lib/modules/pykotaGroup.inc:117 ../lib/modules/pykotaGroup.inc:166 +#: ../lib/modules/pykotaGroup.inc:188 ../lib/modules/pykotaGroup.inc:233 +#: ../lib/modules/pykotaGroup.inc:468 ../lib/modules/posixAccount.inc:556 +#: ../lib/modules/windowsUser.inc:119 ../lib/modules/windowsUser.inc:308 +#: ../lib/modules/windowsUser.inc:500 ../lib/modules/windowsUser.inc:705 +#: ../lib/modules/windowsUser.inc:1596 ../lib/modules/nisObject.inc:73 +#: ../lib/modules/nisObject.inc:103 ../lib/modules/nisObject.inc:114 +#: ../lib/modules/nisObject.inc:155 ../lib/modules/nisObject.inc:212 +#: ../lib/modules/sambaGroupMapping.inc:114 +#: ../lib/modules/sambaGroupMapping.inc:542 ../lib/modules/pykotaUser.inc:120 +#: ../lib/modules/pykotaUser.inc:226 ../lib/modules/pykotaUser.inc:277 +#: ../lib/modules/pykotaUser.inc:413 ../lib/modules/pykotaUser.inc:892 +#: ../lib/modules/automount.inc:72 ../lib/modules/automount.inc:95 +#: ../lib/modules/automount.inc:105 ../lib/modules/automount.inc:132 +#: ../lib/modules/automount.inc:183 ../lib/modules/nisnetgroup.inc:87 +#: ../lib/modules/nisnetgroup.inc:140 ../lib/modules/nisnetgroup.inc:199 +#: ../lib/modules/nisnetgroup.inc:580 ../lib/modules/inetOrgPerson.inc:166 +#: ../lib/modules/inetOrgPerson.inc:178 ../lib/modules/inetOrgPerson.inc:332 +#: ../lib/modules/inetOrgPerson.inc:553 ../lib/modules/inetOrgPerson.inc:646 +#: ../lib/modules/inetOrgPerson.inc:1232 ../lib/modules/inetOrgPerson.inc:1235 +#: ../lib/modules/inetOrgPerson.inc:1923 ../lib/modules/inetOrgPerson.inc:2823 +#: ../lib/modules/inetOrgPerson.inc:3576 ../lib/modules/inetOrgPerson.inc:3645 +#: ../lib/modules/sudoRole.inc:70 ../lib/modules/sudoRole.inc:153 +#: ../lib/modules/sudoRole.inc:215 ../lib/modules/sudoRole.inc:305 +#: ../lib/modules/sudoRole.inc:805 ../lib/modules/oracleService.inc:69 +#: ../lib/modules/oracleService.inc:92 ../lib/modules/oracleService.inc:100 +#: ../lib/modules/oracleService.inc:122 ../lib/modules/oracleService.inc:172 +#: ../lib/modules/organizationalRole.inc:89 +#: ../lib/modules/organizationalRole.inc:123 +#: ../lib/modules/organizationalRole.inc:141 +#: ../lib/modules/organizationalRole.inc:163 +#: ../lib/modules/organizationalRole.inc:189 +#: ../lib/modules/organizationalRole.inc:453 ../lib/modules/fixed_ip.inc:110 +#: ../lib/modules/fixed_ip.inc:433 ../lib/modules/fixed_ip.inc:744 +#: ../lib/modules/pykotaBillingCode.inc:81 +#: ../lib/modules/pykotaBillingCode.inc:109 +#: ../lib/modules/pykotaBillingCode.inc:116 +#: ../lib/modules/pykotaBillingCode.inc:159 +#: ../lib/modules/pykotaBillingCode.inc:262 +#: ../lib/modules/windowsGroup.inc:118 ../lib/modules/windowsGroup.inc:183 +#: ../lib/modules/windowsGroup.inc:258 ../lib/modules/windowsGroup.inc:301 +#: ../lib/modules/windowsGroup.inc:746 ../lib/modules/groupOfNames.inc:89 +#: ../lib/modules/groupOfNames.inc:135 ../lib/modules/groupOfNames.inc:171 +#: ../lib/modules/groupOfNames.inc:199 ../lib/modules/groupOfNames.inc:235 +#: ../lib/modules/groupOfNames.inc:694 +msgid "Description" +msgstr "Beschreibung" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "Destination DN" +msgstr "Ziel-DN" + +#: ../lib/modules/device.inc:45 +msgid "Device" +msgstr "Gerät" + +#: ../lib/modules/sambaSamAccount.inc:394 +#: ../lib/modules/sambaSamAccount.inc:585 +msgid "Disable LM hashes" +msgstr "LM-Hashe deaktivieren" + +#: ../lib/modules/ddns.inc:89 ../lib/modules/ddns.inc:370 +msgid "Disable client updates" +msgstr "Client-Änderungen deaktivieren" + +#: ../lib/modules/posixGroup.inc:417 ../lib/modules/posixGroup.inc:533 +msgid "Disable membership management" +msgstr "Verwaltung von Mitgliedschaften deaktivieren" + +#: ../lib/modules/qmailUser.inc:43 +msgid "Disabled" +msgstr "Deaktiviert" + +#: ../lib/modules/ddns.inc:90 +msgid "Disables the client to update DNS entries." +msgstr "" +"Deaktiviert die Möglichkeit, dass Clients DNS-Einträge verändern dürfen." + +#: ../lib/modules/posixGroup.inc:534 +msgid "Disables the group membership management." +msgstr "Deaktiviert die Verwaltung von Gruppenmitgliedschaften." + +#: ../lib/modules/mitKerberos.inc:172 +msgid "" +"Disables user-to-user authentication for this principal by prohibiting this " +"principal from obtaining a session key for another user." +msgstr "" +"Damit deaktivieren Sie die Benutzer-zu-Benutzer Authentifizierung für diesen " +"Benutzer. Er darf dann keinen Sitzungsschlüssel mehr für einen anderen " +"Benutzer anfordern." + +#: ../lib/modules/heimdalKerberos.inc:130 +#: ../lib/modules/heimdalKerberos.inc:378 +msgid "Disallow TGT-based tickets" +msgstr "TGT-basierte Tickets verbieten" + +#: ../lib/modules/mitKerberos.inc:174 ../lib/modules/mitKerberos.inc:452 +#: ../lib/modules/heimdalKerberos.inc:148 +#: ../lib/modules/heimdalKerberos.inc:383 +msgid "Disallow all tickets" +msgstr "Alle Tickets verbieten" + +#: ../templates/config/conftypes.php:332 ../help/help.inc:178 +msgid "Disallow delete" +msgstr "Verbiete Löschen" + +#: ../lib/modules/mitKerberos.inc:162 ../lib/modules/mitKerberos.inc:422 +#: ../lib/modules/heimdalKerberos.inc:133 +#: ../lib/modules/heimdalKerberos.inc:353 +msgid "Disallow forwardable tickets" +msgstr "Weiterleitbare Tickets verbieten" + +#: ../lib/modules/mitKerberos.inc:159 ../lib/modules/mitKerberos.inc:437 +#: ../lib/modules/heimdalKerberos.inc:142 +#: ../lib/modules/heimdalKerberos.inc:368 +msgid "Disallow post-dated tickets" +msgstr "Vordatierte Tickets verbieten" + +#: ../lib/modules/mitKerberos.inc:168 ../lib/modules/mitKerberos.inc:427 +#: ../lib/modules/heimdalKerberos.inc:136 +#: ../lib/modules/heimdalKerberos.inc:358 +msgid "Disallow proxiable tickets" +msgstr "Proxy-Tickets verbieten" + +#: ../lib/modules/mitKerberos.inc:165 ../lib/modules/mitKerberos.inc:432 +#: ../lib/modules/heimdalKerberos.inc:139 +#: ../lib/modules/heimdalKerberos.inc:363 +msgid "Disallow renewable tickets" +msgstr "Erneuerbare Tickets verbieten" + +#: ../lib/modules/mitKerberos.inc:186 ../lib/modules/mitKerberos.inc:442 +#: ../lib/modules/heimdalKerberos.inc:145 +#: ../lib/modules/heimdalKerberos.inc:373 +msgid "Disallow service tickets" +msgstr "Service-Tickets verbieten" + +#: ../lib/modules/mitKerberos.inc:171 ../lib/modules/mitKerberos.inc:447 +msgid "Disallow user-to-user authentication" +msgstr "Benutzer-zu-Benutzer Authentifizierung verbieten" + +#: ../lib/modules/asteriskAccount.inc:199 +#: ../lib/modules/asteriskAccount.inc:288 +#: ../lib/modules/asteriskAccount.inc:472 +#: ../lib/modules/asteriskAccount.inc:709 +#: ../lib/modules/asteriskAccount.inc:1004 +#: ../lib/modules/asteriskAccount.inc:1277 +msgid "Disallowed codec" +msgstr "Unerlaubter Codec" + +#: ../lib/modules/sambaDomain.inc:113 ../lib/modules/sambaDomain.inc:193 +#: ../lib/modules/sambaDomain.inc:299 ../lib/modules/sambaDomain.inc:621 +msgid "Disconnect users outside logon hours" +msgstr "Abmeldung außerhalb der Anmeldezeiten" + +#: ../lib/modules/sambaSamAccount.inc:238 +#: ../lib/modules/sambaSamAccount.inc:1528 +#: ../lib/modules/sambaSamAccount.inc:1934 +msgid "Disconnection time limit" +msgstr "Zeitlimit für Trennung" + +#: ../lib/modules/sambaDomain.inc:114 +msgid "Disconnects users if they are logged in outside logon hours." +msgstr "" +"Meldet Benutzer ab, die außerhalb der definierten Anmeldezeiten aktiv sind." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +#: ../lib/modules/organizationalRole.inc:106 +#: ../lib/modules/organizationalRole.inc:153 +#: ../lib/modules/groupOfNames.inc:118 ../lib/modules/groupOfNames.inc:187 +msgid "Display format" +msgstr "Anzeigeformat" + +#: ../lib/modules/customFields.inc:176 ../lib/modules/customFields.inc:509 +msgid "Display multiple groups as accordion" +msgstr "Mehrere Gruppen als Akkordeon anzeigen" + +#: ../lib/modules/sambaSamAccount.inc:111 +#: ../lib/modules/sambaSamAccount.inc:210 +#: ../lib/modules/sambaSamAccount.inc:259 +#: ../lib/modules/sambaSamAccount.inc:420 +#: ../lib/modules/sambaSamAccount.inc:1143 +#: ../lib/modules/sambaSamAccount.inc:1738 +#: ../lib/modules/sambaSamAccount.inc:1906 ../lib/modules/windowsUser.inc:123 +#: ../lib/modules/windowsUser.inc:296 ../lib/modules/windowsUser.inc:474 +#: ../lib/modules/windowsUser.inc:501 ../lib/modules/windowsUser.inc:595 +#: ../lib/modules/windowsUser.inc:703 ../lib/modules/windowsUser.inc:1597 +#: ../lib/modules/sambaGroupMapping.inc:112 +#: ../lib/modules/sambaGroupMapping.inc:146 +#: ../lib/modules/sambaGroupMapping.inc:359 +#: ../lib/modules/sambaGroupMapping.inc:540 +msgid "Display name" +msgstr "Anzeigename" + +#: ../templates/lists/changePassword.php:326 +msgid "Display on screen" +msgstr "Auf dem Bildschirm anzeigen" + +#: ../templates/3rdParty/pla/htdocs/create.php:97 +msgid "Display the created entry" +msgstr "Erstellten Eintrag anzeigen" + +#: ../lib/modules.inc:503 +msgid "" +"Displayed account numbers start at \"0\". Add 2 to get the row in your " +"spreadsheet." +msgstr "" +"Die angezeigten Accountnummern beginnen mit \"0\". Addieren Sie 2 um die " +"Reihennummer in Ihrer Tabellenkalkulation zu erhalten." + +#: ../lib/modules/windowsGroup.inc:61 +msgid "Distribution" +msgstr "Versand" + +#: ../lib/modules/passwordSelfReset.inc:140 +#: ../lib/modules/passwordSelfReset.inc:545 +msgid "Do not ask security question" +msgstr "Keine Sicherheitsfrage stellen" + +#: ../templates/ou_edit.php:112 +msgid "Do you really want to delete this OU?" +msgstr "Soll diese OU gelöscht werden?" + +#: ../templates/pdfedit/pdfmain.php:351 +msgid "Do you really want to delete this PDF structure?" +msgstr "Soll diese PDF-Struktur gelöscht werden?" + +#: ../templates/profedit/profilemain.php:319 +msgid "Do you really want to delete this profile?" +msgstr "Soll dieses Profil gelöscht werden?" + +#: ../lib/modules/kolabGroup.inc:285 ../lib/modules/kolabUser.inc:515 +#: ../lib/modules/kolabSharedFolder.inc:425 +msgid "Do you really want to mark this account for deletion?" +msgstr "Soll dieser Account wirklich zum Löschen markiert werden?" + +#: ../lib/modules/qmailGroup.inc:273 +msgid "Do you really want to post to this mailinglist?" +msgstr "Wollen Sie wirklich an diese Mailingliste schreiben?" + +#: ../templates/delete.php:94 +msgid "Do you really want to remove the following accounts?" +msgstr "Sollen die folgenden Accounts wirklich gelöscht werden?" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:59 +msgid "Do you want to create this entry?" +msgstr "Wollen Sie diesen Eintrag erstellen?" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:36 +msgid "Do you want to make these changes?" +msgstr "Wollen Sie die Änderungen übernehmen?" + +#: ../lib/modules/sambaSamAccount.inc:211 +#: ../lib/modules/sambaSamAccount.inc:337 +#: ../lib/modules/sambaSamAccount.inc:413 +#: ../lib/modules/sambaSamAccount.inc:537 +#: ../lib/modules/sambaSamAccount.inc:1285 +#: ../lib/modules/sambaSamAccount.inc:1781 +#: ../lib/modules/sambaSamAccount.inc:1803 +#: ../lib/modules/sambaSamAccount.inc:1912 ../lib/modules/windowsUser.inc:111 +#: ../lib/modules/windowsUser.inc:1664 +#: ../lib/modules/sambaGroupMapping.inc:158 +#: ../lib/modules/sambaGroupMapping.inc:386 +#: ../lib/modules/sambaGroupMapping.inc:576 ../lib/modules/nisnetgroup.inc:223 +#: ../lib/modules/nisnetgroup.inc:587 +msgid "Domain" +msgstr "Domäne" + +#: ../lib/modules/sambaSamAccount.inc:84 +msgid "Domain KRBTGT" +msgstr "Domäne KRBTGT" + +#: ../lib/types/smbDomain.inc:91 ../lib/modules/sambaDomain.inc:81 +#: ../lib/modules/sambaDomain.inc:151 ../lib/modules/sambaDomain.inc:185 +#: ../lib/modules/sambaDomain.inc:256 ../lib/modules/sambaDomain.inc:261 +#: ../lib/modules/sambaDomain.inc:600 +msgid "Domain SID" +msgstr "Domänen-SID" + +#: ../lib/modules/sambaGroupMapping.inc:125 +#: ../lib/modules/windowsGroup.inc:178 ../lib/modules/windowsGroup.inc:185 +#: ../lib/modules/windowsGroup.inc:191 +msgid "Domain administrators" +msgstr "Domänenadministratoren" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:60 +#: ../lib/modules/sambaGroupMapping.inc:131 +msgid "Domain admins" +msgstr "Domänenadministratoren" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:65 +msgid "Domain certificate admins" +msgstr "Domänen-Zertifikats-Administratoren" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaSamAccount.inc:812 +#: ../lib/modules/sambaGroupMapping.inc:63 +msgid "Domain computers" +msgstr "Domänen-PCs" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:64 +msgid "Domain controllers" +msgstr "Domänencontroller" + +#: ../lib/types/smbDomain.inc:167 +#, php-format +msgid "Domain count: %s" +msgstr "Anzahl Domänen: %s" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:67 +msgid "Domain enterprise admins" +msgstr "Domänen-Unternehmens-Administratoren" + +#: ../lib/modules/sambaGroupMapping.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:377 +msgid "Domain group" +msgstr "Domänengruppe" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:62 +msgid "Domain guests" +msgstr "Domänengäste" + +#: ../lib/modules/windowsGroup.inc:64 +msgid "Domain local" +msgstr "Domänenlokal" + +#: ../lib/types/smbDomain.inc:92 ../lib/modules/dhcp_settings.inc:145 +#: ../lib/modules/dhcp_settings.inc:208 ../lib/modules/dhcp_settings.inc:223 +#: ../lib/modules/dhcp_settings.inc:250 ../lib/modules/dhcp_settings.inc:567 +#: ../lib/modules/dhcp_settings.inc:674 ../lib/modules/nisnetgroup.inc:154 +#: ../lib/modules/sambaDomain.inc:77 ../lib/modules/sambaDomain.inc:144 +#: ../lib/modules/sambaDomain.inc:184 ../lib/modules/sambaDomain.inc:241 +#: ../lib/modules/sambaDomain.inc:246 ../lib/modules/sambaDomain.inc:599 +msgid "Domain name" +msgstr "Domänenname" + +#: ../lib/modules/nisnetgroup.inc:154 ../lib/modules/sambaDomain.inc:208 +#: ../lib/modules/sambaDomain.inc:209 +msgid "Domain name is invalid!" +msgstr "Domänenname ist ungültig!" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:68 +msgid "Domain policy admins" +msgstr "Domänen-Policy-Administratoren" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:66 +msgid "Domain schema admins" +msgstr "Domänen-Schema-Administratoren" + +#: ../lib/modules/sambaSamAccount.inc:79 +#: ../lib/modules/sambaSamAccount.inc:2175 +#: ../lib/modules/sambaGroupMapping.inc:61 +msgid "Domain users" +msgstr "Domänenbenutzer" + +#: ../lib/modules/windowsUser.inc:240 ../lib/modules/windowsUser.inc:557 +msgid "Domains" +msgstr "Domänen" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:43 +msgid "Don't stop on errors" +msgstr "Bei Fehlern weitermachen" + +#: ../templates/pdfedit/pdfpage.php:475 +msgid "Down" +msgstr "nach unten" + +#: ../templates/config/mainmanage.php:321 +msgid "Download CA certificates" +msgstr "CA-Zertifikate herunterladen" + +#: ../templates/masscreate.php:256 +msgid "Download sample CSV file" +msgstr "Beispiel-CSV-Datei runterladen" + +#: ../templates/multiEdit.php:162 +msgid "Dry run" +msgstr "Trockentest" + +#: ../templates/multiEdit.php:437 +msgid "DryRun finished." +msgstr "Trockentest beendet." + +#: ../templates/serverInfo.php:124 +msgid "Dynamic subtrees" +msgstr "Dynamische Teilbäume" + +#: ../lib/modules/eduPerson.inc:72 +msgid "EDU person" +msgstr "EDU-Person" + +#: ../lib/modules/selfRegistration.inc:80 +msgid "" +"Each line represents one LDAP attribute. Please see the manual for a syntax " +"description." +msgstr "" +"Jede Zeile repräsentiert ein LDAP-Attribut. Für die genaue Syntax schlagen " +"Sie bitte im Handbuch nach." + +#: ../lib/modules/sambaSamAccount.inc:575 +msgid "East Australian Standard, Guam" +msgstr "Ostaustralien, Guam" + +#: ../lib/modules/sambaSamAccount.inc:567 +msgid "Eastern Europe Time, South Africa" +msgstr "Osteuropäische Zeit, Südafrika" + +#: ../lib/modules/sambaSamAccount.inc:560 +msgid "Eastern Time (US & Canada), Bogota" +msgstr "Eastern Time (USA & Kanada), Bogota" + +#: ../templates/pdfedit/pdfmain.php:206 +#: ../templates/profedit/profilemain.php:195 +#: ../lib/modules/sambaSamAccount.inc:1290 +#: ../lib/modules/sambaSamAccount.inc:1295 ../lib/lists.inc:488 +msgid "Edit" +msgstr "Editieren" + +#: ../lib/modules.inc:1357 +msgid "Edit again" +msgstr "Erneut editieren" + +#: ../templates/config/mainmanage.php:228 ../templates/config/index.php:99 +msgid "Edit general settings" +msgstr "Allgemeine Einstellungen ändern" + +#: ../lib/modules/posixAccount.inc:1454 ../lib/modules/windowsUser.inc:786 +msgid "Edit groups" +msgstr "Gruppen ändern" + +#: ../lib/modules/posixGroup.inc:223 ../lib/modules/windowsGroup.inc:382 +msgid "Edit members" +msgstr "Mitglieder ändern" + +#: ../templates/config/index.php:125 +msgid "Edit self service" +msgstr "SelfService bearbeiten" + +#: ../templates/config/index.php:111 +msgid "Edit server profiles" +msgstr "Serverprofile ändern" + +#: ../lib/modules/nisnetgroup.inc:208 +msgid "Edit subgroups" +msgstr "Untergruppen ändern" + +#: ../lib/modules/sambaSamAccount.inc:1246 +msgid "Edit workstations" +msgstr "Arbeitsstationen ändern" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1872 +#: ../lib/types/zarafaDynamicGroupType.inc:92 ../lib/types/user.inc:100 +#: ../lib/modules/zarafaDynamicGroup.inc:243 +#: ../lib/modules/zarafaDynamicGroup.inc:248 +#: ../lib/modules/zarafaGroup.inc:234 ../lib/modules/zarafaGroup.inc:241 +#: ../lib/modules/passwordSelfReset.inc:500 +#: ../lib/modules/nisMailAlias.inc:344 +msgid "Email" +msgstr "EMail" + +#: ../lib/modules/inetOrgPerson.inc:81 +#, php-format +msgid "Email \"%s\" already in use." +msgstr "EMail-Adresse \"%s\" wird bereits verwendet." + +#: ../templates/lists/changePassword.php:288 ../lib/modules/kolabGroup.inc:87 +#: ../lib/modules/kolabGroup.inc:91 ../lib/modules/kolabGroup.inc:155 +#: ../lib/modules/kolabGroup.inc:168 ../lib/modules/kolabGroup.inc:177 +#: ../lib/modules/kolabGroup.inc:179 ../lib/modules/kolabGroup.inc:202 +#: ../lib/modules/kolabGroup.inc:423 ../lib/modules/selfRegistration.inc:400 +#: ../lib/modules/selfRegistration.inc:482 +#: ../lib/modules/zarafaDynamicGroup.inc:67 +#: ../lib/modules/zarafaDynamicGroup.inc:68 +#: ../lib/modules/zarafaDynamicGroup.inc:124 +#: ../lib/modules/zarafaDynamicGroup.inc:166 +#: ../lib/modules/zarafaDynamicGroup.inc:200 +#: ../lib/modules/zarafaDynamicGroup.inc:448 ../lib/modules/qmailUser.inc:199 +#: ../lib/modules/qmailUser.inc:299 ../lib/modules/qmailUser.inc:406 +#: ../lib/modules/qmailUser.inc:448 ../lib/modules/qmailUser.inc:492 +#: ../lib/modules/qmailUser.inc:1139 ../lib/modules/zarafaGroup.inc:69 +#: ../lib/modules/zarafaGroup.inc:70 ../lib/modules/zarafaGroup.inc:170 +#: ../lib/modules/zarafaGroup.inc:200 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:648 ../lib/modules/windowsUser.inc:140 +#: ../lib/modules/windowsUser.inc:350 ../lib/modules/windowsUser.inc:475 +#: ../lib/modules/windowsUser.inc:505 ../lib/modules/windowsUser.inc:607 +#: ../lib/modules/windowsUser.inc:716 ../lib/modules/windowsUser.inc:1601 +#: ../lib/modules/pykotaUser.inc:116 ../lib/modules/pykotaUser.inc:218 +#: ../lib/modules/pykotaUser.inc:274 ../lib/modules/pykotaUser.inc:319 +#: ../lib/modules/pykotaUser.inc:409 ../lib/modules/pykotaUser.inc:890 +#: ../lib/modules/inetOrgPerson.inc:80 ../lib/modules/inetOrgPerson.inc:81 +#: ../lib/modules/inetOrgPerson.inc:160 ../lib/modules/inetOrgPerson.inc:214 +#: ../lib/modules/inetOrgPerson.inc:460 ../lib/modules/inetOrgPerson.inc:598 +#: ../lib/modules/inetOrgPerson.inc:742 ../lib/modules/inetOrgPerson.inc:746 +#: ../lib/modules/inetOrgPerson.inc:1447 ../lib/modules/inetOrgPerson.inc:1450 +#: ../lib/modules/inetOrgPerson.inc:1937 ../lib/modules/inetOrgPerson.inc:2503 +#: ../lib/modules/inetOrgPerson.inc:3606 ../lib/modules/inetOrgPerson.inc:3653 +#: ../lib/modules/kolabSharedFolder.inc:116 +#: ../lib/modules/kolabSharedFolder.inc:181 +#: ../lib/modules/kolabSharedFolder.inc:239 +#: ../lib/modules/kolabSharedFolder.inc:259 +#: ../lib/modules/kolabSharedFolder.inc:281 +#: ../lib/modules/kolabSharedFolder.inc:558 +#: ../lib/modules/asteriskVoicemail.inc:107 +#: ../lib/modules/asteriskVoicemail.inc:140 +#: ../lib/modules/asteriskVoicemail.inc:178 +#: ../lib/modules/asteriskVoicemail.inc:254 +#: ../lib/modules/asteriskVoicemail.inc:374 ../lib/modules/qmailGroup.inc:123 +#: ../lib/modules/qmailGroup.inc:127 ../lib/modules/qmailGroup.inc:240 +#: ../lib/modules/qmailGroup.inc:371 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:457 ../lib/modules/qmailGroup.inc:1056 +#: ../lib/modules/imapAccess.inc:232 ../lib/modules/passwordSelfReset.inc:849 +#: ../lib/modules/passwordSelfReset.inc:1020 +#: ../lib/modules/windowsGroup.inc:126 ../lib/modules/windowsGroup.inc:165 +#: ../lib/modules/windowsGroup.inc:219 ../lib/modules/windowsGroup.inc:265 +#: ../lib/modules/windowsGroup.inc:285 ../lib/modules/windowsGroup.inc:303 +#: ../lib/modules/windowsGroup.inc:748 +msgid "Email address" +msgstr "EMail-Adresse" + +#: ../lib/modules/kolabGroup.inc:179 ../lib/modules/kolabGroup.inc:180 +msgid "Email address already exists." +msgstr "Diese Mailadresse wird bereits verwendet." + +#: ../lib/modules/asteriskVoicemail.inc:108 +msgid "Email address for this voicemail account." +msgstr "EMail-Adresse für diesen Anrufbeantworter-Account." + +#: ../lib/modules/qmailGroup.inc:221 ../lib/modules/qmailGroup.inc:225 +msgid "Email addresses that are allowed to send to this list." +msgstr "Dies sind Email-Adressen, die an diese Liste senden dürfen." + +#: ../lib/modules/qmailGroup.inc:205 ../lib/modules/qmailGroup.inc:209 +msgid "Email addresses that are member of this list." +msgstr "Diese Email-Adressen sind Mitglieder der Liste." + +#: ../lib/modules/qmailGroup.inc:213 ../lib/modules/qmailGroup.inc:217 +msgid "Email addresses that moderate this list (e.g. approve mails)." +msgstr "Diese Email-Adressen moderieren diese Liste (z.B. Emails genehmigen)." + +#: ../lib/modules/zarafaContact.inc:83 ../lib/modules/zarafaUser.inc:124 +#: ../lib/modules/windowsUser.inc:227 ../lib/modules/windowsUser.inc:231 +#: ../lib/modules/windowsUser.inc:356 ../lib/modules/windowsUser.inc:476 +#: ../lib/modules/windowsUser.inc:506 ../lib/modules/windowsUser.inc:609 +#: ../lib/modules/windowsUser.inc:717 ../lib/modules/windowsUser.inc:1602 +#: ../lib/modules/kolabUser.inc:140 ../lib/modules/kolabSharedFolder.inc:146 +msgid "Email alias" +msgstr "EMail-Alias" + +#: ../lib/modules/zarafaContact.inc:84 ../lib/modules/zarafaUser.inc:125 +#: ../lib/modules/windowsUser.inc:228 ../lib/modules/windowsUser.inc:232 +#: ../lib/modules/kolabUser.inc:141 ../lib/modules/kolabSharedFolder.inc:147 +msgid "Email alias for this account." +msgstr "EMail-Alias für diesen Account." + +#: ../lib/modules/zarafaContact.inc:185 ../lib/modules/zarafaContact.inc:186 +#: ../lib/modules/zarafaUser.inc:417 ../lib/modules/zarafaUser.inc:418 +#: ../lib/modules/windowsUser.inc:609 ../lib/modules/windowsUser.inc:610 +#: ../lib/modules/kolabUser.inc:247 ../lib/modules/kolabSharedFolder.inc:254 +msgid "Email alias is invalid!" +msgstr "EMail-Alias ist ungültig!" + +#: ../lib/modules/kolabUser.inc:144 ../lib/modules/kolabSharedFolder.inc:150 +msgid "Email alias list" +msgstr "EMail-Aliasliste" + +#: ../lib/modules/kolabUser.inc:248 ../lib/modules/kolabSharedFolder.inc:255 +msgid "Email alias list has invalid format!" +msgstr "EMail-Aliasliste hat ungültiges Format!" + +#: ../lib/types/kolabSharedFolderType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:97 +#: ../lib/modules/zarafaDynamicGroup.inc:71 +#: ../lib/modules/zarafaDynamicGroup.inc:75 +#: ../lib/modules/zarafaDynamicGroup.inc:130 +#: ../lib/modules/zarafaDynamicGroup.inc:167 +#: ../lib/modules/zarafaDynamicGroup.inc:258 +#: ../lib/modules/zarafaDynamicGroup.inc:451 +#: ../lib/modules/zarafaContact.inc:143 ../lib/modules/zarafaContact.inc:176 +#: ../lib/modules/zarafaContact.inc:207 ../lib/modules/zarafaContact.inc:566 +#: ../lib/modules/zarafaGroup.inc:73 ../lib/modules/zarafaGroup.inc:77 +#: ../lib/modules/zarafaGroup.inc:162 ../lib/modules/zarafaGroup.inc:197 +#: ../lib/modules/zarafaGroup.inc:252 ../lib/modules/zarafaGroup.inc:649 +#: ../lib/modules/zarafaUser.inc:188 ../lib/modules/zarafaUser.inc:370 +#: ../lib/modules/zarafaUser.inc:385 ../lib/modules/zarafaUser.inc:443 +#: ../lib/modules/zarafaUser.inc:1235 ../lib/modules/zarafaUser.inc:1497 +#: ../lib/modules/zarafaUser.inc:1809 ../lib/modules/kolabUser.inc:205 +#: ../lib/modules/kolabUser.inc:233 ../lib/modules/kolabUser.inc:351 +#: ../lib/modules/kolabUser.inc:764 ../lib/modules/kolabSharedFolder.inc:220 +#: ../lib/modules/kolabSharedFolder.inc:236 +#: ../lib/modules/kolabSharedFolder.inc:312 +#: ../lib/modules/kolabSharedFolder.inc:563 +msgid "Email aliases" +msgstr "EMail-Aliase" + +#: ../templates/config/mainmanage.php:446 ../help/help.inc:156 +msgid "Email format" +msgstr "Emailformat" + +#: ../lib/modules/inetOrgPerson.inc:348 ../lib/modules/inetOrgPerson.inc:628 +#: ../lib/modules/inetOrgPerson.inc:854 ../lib/modules/inetOrgPerson.inc:1488 +#: ../lib/modules/inetOrgPerson.inc:1491 ../lib/modules/inetOrgPerson.inc:1948 +#: ../lib/modules/inetOrgPerson.inc:3624 ../lib/modules/inetOrgPerson.inc:3659 +#: ../lib/modules/passwordSelfReset.inc:503 +#: ../lib/modules/passwordSelfReset.inc:855 +#: ../lib/modules/passwordSelfReset.inc:1025 +msgid "Employee number" +msgstr "Personalnummer" + +#: ../lib/modules/inetOrgPerson.inc:93 ../lib/modules/inetOrgPerson.inc:232 +#: ../lib/modules/inetOrgPerson.inc:356 ../lib/modules/inetOrgPerson.inc:610 +#: ../lib/modules/inetOrgPerson.inc:666 ../lib/modules/inetOrgPerson.inc:1497 +#: ../lib/modules/inetOrgPerson.inc:1500 ../lib/modules/inetOrgPerson.inc:1946 +#: ../lib/modules/inetOrgPerson.inc:3612 ../lib/modules/inetOrgPerson.inc:3655 +msgid "Employee type" +msgstr "Angestelltentyp" + +#: ../lib/modules/inetOrgPerson.inc:667 +msgid "Employee type: Contractor, Employee, Intern, Temp, External, ..." +msgstr "Angestelltentyp: Angestellter, Extern, Aushilfskraft, ..." + +#: ../templates/lists/changePassword.php:514 +#: ../templates/lists/changePassword.php:521 ../templates/login.php:543 +msgid "Empty password submitted. Please try again." +msgstr "Das Passwort war leer. Bitte erneut eingeben." + +#: ../lib/modules/passwordSelfReset.inc:96 +#: ../lib/modules/passwordSelfReset.inc:490 +msgid "Enable password self reset link" +msgstr "Link für Passwortrücksetzung aktivieren" + +#: ../lib/modules/selfRegistration.inc:53 +#: ../lib/modules/selfRegistration.inc:190 +msgid "Enable self registration link" +msgstr "Link für Selbstregistrierung aktivieren" + +#: ../lib/modules/customFields.inc:153 +msgid "" +"Enables auto-completion for this field. All existing values of this " +"attribute will be offered as auto-complete values." +msgstr "" +"Aktiviert die Autovervollständigung für dieses Feld. Alle bestehenden Werte " +"dieses Attributes werden zur Autovervollständigung angeboten." + +#: ../lib/modules/ppolicy.inc:97 +msgid "" +"Enables quality checking (e.g. password length) of passwords. If set to " +"\"force\" then you need to disable password hashing in your LAM server " +"profile to change passwords with LAM." +msgstr "" +"Hiermit aktivieren Sie Qualitätsprüfungen (z.B. Passwortlänge) für " +"Passwörter. Für die Einstellung \"erzwingen\" müssen Sie das Passworthashing " +"von LAM im Serverprofil deaktivieren um weiterhin Passwörter ändern zu " +"können." + +#: ../templates/multiEdit.php:312 +#: ../templates/3rdParty/pla/lib/export_functions.php:160 +msgid "Encountered an error while performing search." +msgstr "Die LDAP-Suche ist fehlgeschlagen." + +#: ../templates/config/mainmanage.php:304 ../help/help.inc:160 +msgid "Encrypt session" +msgstr "Sitzung verschlüsseln" + +#: ../lib/modules/imapAccess.inc:80 ../lib/modules/imapAccess.inc:120 +msgid "Encryption protocol" +msgstr "Verschlüsselung" + +#: ../lib/modules/imapAccess.inc:81 +msgid "" +"Encryption protocol for connecting to IMAP server. LAM requires an encrypted " +"connection." +msgstr "" +"LAM benötigt eine verschlüsselte Verbindung zum IMAP-Server. Hier geben Sie " +"die Art der Verschlüsselung an." + +#: ../help/help.inc:161 +msgid "" +"Encrypts sensitive data like passwords in your session. This requires the " +"PHP MCrypt extension." +msgstr "" +"Verschlüsselt sensitive Daten wie Passwörter in Ihren Sitzungsdaten. Dies " +"erfordert die PHP MCrypt-Erweiterung." + +#: ../templates/selfService/adminMain.php:457 ../help/help.inc:103 +msgid "Enforce language" +msgstr "Sprache erzwingen" + +#: ../lib/modules/sambaSamAccount.inc:553 +msgid "Eniwetok, Kwajalein" +msgstr "Eniwetok, Kwajalein" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:91 +msgid "Enter the values you would like to add:" +msgstr "Geben Sie die neuen Werte ein:" + +#: ../lib/modules/eduPerson.inc:118 ../lib/modules/eduPerson.inc:122 +#: ../lib/modules/eduPerson.inc:194 ../lib/modules/eduPerson.inc:231 +#: ../lib/modules/eduPerson.inc:344 ../lib/modules/eduPerson.inc:586 +msgid "Entitlements" +msgstr "Berechtigungen" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:471 +msgid "Entries found" +msgstr "Einträge gefunden" + +#: ../templates/serverInfo.php:269 +msgid "Entries sent" +msgstr "Einträge gesendet" + +#: ../templates/3rdParty/pla/lib/export_functions.php:473 +msgid "Entry" +msgstr "Eintrag" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:43 +#, php-format +msgid "Entry %s and sub-tree deleted successfully." +msgstr "Eintrag %s und Unterbaum wurden erfolgreich gelöscht." + +#: ../templates/3rdParty/pla/htdocs/create.php:90 +msgid "Entry created" +msgstr "Eintrag erstellt" + +#: ../templates/delete.php:330 +#: ../templates/3rdParty/pla/htdocs/mass_update.php:26 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:26 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:27 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:24 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:56 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:33 +msgid "Entry does not exist" +msgstr "Eintrag existiert nicht" + +#: ../lib/modules/puppetClient.inc:80 ../lib/modules/puppetClient.inc:84 +#: ../lib/modules/puppetClient.inc:128 ../lib/modules/puppetClient.inc:153 +#: ../lib/modules/puppetClient.inc:161 ../lib/modules/puppetClient.inc:239 +#: ../lib/modules/puppetClient.inc:430 +msgid "Environment" +msgstr "Umgebung" + +#: ../templates/schema/schema.php:166 +msgid "Equality" +msgstr "Gleichheit" + +#: ../lib/modules/zarafaUser.inc:529 ../lib/modules/zarafaUser.inc:1249 +msgid "Equipment" +msgstr "Equipment" + +#: ../templates/config/mainmanage.php:408 +#: ../templates/3rdParty/pla/lib/Template.php:430 +#: ../templates/3rdParty/pla/lib/Template.php:473 +#: ../templates/3rdParty/pla/lib/Template.php:517 +#: ../templates/3rdParty/pla/lib/functions.php:511 +#: ../templates/3rdParty/pla/lib/functions.php:513 +#: ../templates/3rdParty/pla/lib/ds_myldap.php:219 +#: ../templates/3rdParty/pla/htdocs/import.php:79 +msgid "Error" +msgstr "Fehler" + +#: ../templates/3rdParty/pla/lib/functions.php:1897 +#: ../templates/3rdParty/pla/lib/functions.php:1901 +msgid "Error number" +msgstr "Fehlernummer" + +#: ../lib/modules/mitKerberos.inc:1173 ../lib/modules/heimdalKerberos.inc:1038 +msgid "Error while changing Kerberos password." +msgstr "Konnte Kerberos-Passwort nicht ändern." + +#: ../templates/delete.php:280 +#, php-format +msgid "Error while deleting DN: %s" +msgstr "Fehler beim Löschen von DN: %s" + +#: ../help/help.inc:145 +msgid "" +"Every account type needs exactly one base module. This module provides a " +"structural object class." +msgstr "" +"Jeder Accounttyp benötigt exakt ein Basismodul. Dieses Modul stellt die " +"strukturelle Objektklasse bereit." + +#: ../lib/modules/customScripts.inc:67 ../lib/modules/customScripts.inc:80 +#: ../lib/modules/selfRegistration.inc:82 ../lib/modules/zarafaContact.inc:97 +#: ../lib/modules/zarafaGroup.inc:99 ../lib/modules/dhcp_settings.inc:564 +#: ../lib/modules/zarafaUser.inc:146 ../help/help.inc:74 ../help/help.inc:80 +#: ../help/help.inc:90 ../help/help.inc:95 ../help/help.inc:117 +msgid "Example" +msgstr "Beispiel" + +#: ../templates/masscreate.php:302 ../templates/masscreate.php:376 +msgid "Example value" +msgstr "Beispielwert" + +#: ../help/help.inc:62 +msgid "Examples" +msgstr "Beispiele" + +#: ../templates/config/confmain.php:319 +msgid "Execute" +msgstr "Ausführen" + +#: ../templates/tests/lamdaemonTest.php:269 +msgid "Execute lamdaemon" +msgstr "Lamdaemon ausführen" + +#: ../lib/modules/freeRadius.inc:104 ../lib/modules/freeRadius.inc:130 +#: ../lib/modules/freeRadius.inc:209 ../lib/modules/freeRadius.inc:237 +#: ../lib/modules/freeRadius.inc:385 ../lib/modules/freeRadius.inc:543 +msgid "Expiration date" +msgstr "Ablaufdatum" + +#: ../lib/modules/bindDLZ.inc:211 ../lib/modules/bindDLZ.inc:314 +#: ../lib/modules/bindDLZ.inc:426 ../lib/modules/bindDLZ.inc:519 +#: ../lib/modules/bindDLZ.inc:1022 ../lib/modules/bindDLZ.inc:1551 +msgid "Expiration time" +msgstr "Ablaufzeit" + +#: ../lib/modules/asteriskAccount.inc:211 +#: ../lib/modules/asteriskAccount.inc:291 +#: ../lib/modules/asteriskAccount.inc:494 +#: ../lib/modules/asteriskAccount.inc:721 +#: ../lib/modules/asteriskAccount.inc:1007 +#: ../lib/modules/asteriskAccount.inc:1283 +msgid "Expiration timestamp" +msgstr "Ablaufdatum" + +#: ../lib/modules/asteriskAccount.inc:212 +msgid "Expiration timestamp (\"regseconds\" option)." +msgstr "Ablaufzeit (\"regseconds\" Option)." + +#: ../lib/types/ppolicyType.inc:86 ../lib/modules/ppolicy.inc:116 +#: ../lib/modules/ppolicy.inc:148 ../lib/modules/ppolicy.inc:174 +#: ../lib/modules/ppolicy.inc:214 ../lib/modules/ppolicy.inc:479 +msgid "Expire warning" +msgstr "Ablaufwarnung" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1081 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1084 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:305 +#: ../templates/3rdParty/pla/htdocs/export_form.php:37 +#: ../templates/3rdParty/pla/htdocs/export_form.php:53 +msgid "Export" +msgstr "Export" + +#: ../templates/pdfedit/pdfmain.php:221 ../templates/pdfedit/pdfmain.php:222 +#: ../help/help.inc:212 +msgid "Export PDF structure" +msgstr "PDF-Struktur exportieren" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:105 +msgid "Export format" +msgstr "Exportformat" + +#: ../templates/profedit/profilemain.php:209 +#: ../templates/profedit/profilemain.php:210 ../help/help.inc:194 +msgid "Export profile" +msgstr "Profil exportieren" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Export subtree" +msgstr "Teilbaum exportieren" + +#: ../templates/pdfedit/pdfmain.php:117 +#: ../templates/profedit/profilemain.php:132 +msgid "Export successful" +msgstr "Export war erfolgreich" + +#: ../templates/serverInfo.php:349 +msgid "Extended" +msgstr "Erweitert" + +#: ../lib/types/asteriskExt.inc:143 +#, php-format +msgid "Extension count: %s" +msgstr "Anzahl Erweiterungen: %s" + +#: ../lib/types/asteriskExt.inc:94 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskExtension.inc:102 +#: ../lib/modules/asteriskExtension.inc:137 +#: ../lib/modules/asteriskExtension.inc:145 +#: ../lib/modules/asteriskExtension.inc:289 +#: ../lib/modules/asteriskExtension.inc:293 +#: ../lib/modules/asteriskExtension.inc:813 +msgid "Extension name" +msgstr "Erweiterungsname" + +#: ../lib/modules/asteriskExtension.inc:114 +#: ../lib/modules/asteriskExtension.inc:138 +#: ../lib/modules/asteriskExtension.inc:159 +#: ../lib/modules/asteriskExtension.inc:233 +#: ../lib/modules/asteriskExtension.inc:481 +#: ../lib/modules/asteriskExtension.inc:814 +msgid "Extension owners" +msgstr "Besitzer der Erweiterung" + +#: ../lib/modules/asteriskExtension.inc:190 +msgid "Extension with this name already exists." +msgstr "Eine Erweiterung mit diesem Namen existiert bereits." + +#: ../templates/3rdParty/pla/htdocs/import.php:66 +msgid "Failed" +msgstr "Fehlgeschlagen" + +#: ../lib/modules/mitKerberos.inc:128 ../lib/modules/mitKerberos.inc:252 +#: ../lib/modules/mitKerberos.inc:298 ../lib/modules/mitKerberos.inc:345 +#: ../lib/modules/mitKerberos.inc:768 +msgid "Failed logins" +msgstr "Fehlgeschlagene Anmeldungen" + +#: ../templates/initsuff.php:152 +msgid "Failed to create entry!" +msgstr "Konnte Eintrag nicht erstellen!" + +#: ../lib/profiles.inc:190 ../lib/pdfstruct.inc:224 +msgid "Failed to export!" +msgstr "Export fehlgeschlagen!" + +#: ../lib/profiles.inc:197 ../lib/pdfstruct.inc:231 +msgid "Failed to import!" +msgstr "Import fehlgeschlagen!" + +#: ../lib/modules/range.inc:121 ../lib/modules/range.inc:567 +msgid "Failover peer" +msgstr "Ausfallknoten" + +#: ../lib/types/ppolicyType.inc:85 ../lib/modules/ppolicy.inc:112 +#: ../lib/modules/ppolicy.inc:153 ../lib/modules/ppolicy.inc:173 +#: ../lib/modules/ppolicy.inc:280 ../lib/modules/ppolicy.inc:478 +msgid "Failure count interval" +msgstr "Fehlerzählerintervall" + +#: ../lib/modules/inetOrgPerson.inc:76 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:211 ../lib/modules/inetOrgPerson.inc:444 +#: ../lib/modules/inetOrgPerson.inc:592 ../lib/modules/inetOrgPerson.inc:726 +#: ../lib/modules/inetOrgPerson.inc:730 ../lib/modules/inetOrgPerson.inc:1431 +#: ../lib/modules/inetOrgPerson.inc:1434 ../lib/modules/inetOrgPerson.inc:1939 +#: ../lib/modules/inetOrgPerson.inc:2558 ../lib/modules/inetOrgPerson.inc:3602 +#: ../lib/modules/inetOrgPerson.inc:3652 +msgid "Fax number" +msgstr "Faxnummer" + +#: ../lib/modules/zarafaUser.inc:155 ../lib/modules/zarafaUser.inc:376 +#: ../lib/modules/zarafaUser.inc:638 ../lib/modules/zarafaUser.inc:1288 +#: ../lib/modules/zarafaUser.inc:1327 ../lib/modules/zarafaUser.inc:1807 +msgid "Features" +msgstr "Funktionen" + +#: ../templates/config/mainmanage.php:412 +#: ../templates/3rdParty/pla/lib/functions.php:533 +#: ../templates/3rdParty/pla/tools/unserialize.php:14 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "File" +msgstr "Datei" + +#: ../lib/pdfstruct.inc:282 +msgid "File does not exist." +msgstr "Datei existiert nicht." + +#: ../lib/modules/customFields.inc:160 ../lib/modules/customFields.inc:3294 +msgid "File extension" +msgstr "Dateierweiterung" + +#: ../lib/modules/inetOrgPerson.inc:104 +#, php-format +msgid "File is too large. Maximum allowed size is %s kB." +msgstr "Datei ist zu groß. Maximal erlaubte Dateigröße ist %s kB." + +#: ../lib/modules/sambaSamAccount.inc:313 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user and $group are replaced with user and group name." +msgstr "" +"Dateiname und -pfad relativ zur Netlogon-Freigabe des Scripts, das beim " +"Login ausgeführt wird. $user und $group werden mit Benutzer- und Gruppenname " +"ersetzt." + +#: ../lib/modules/windowsUser.inc:210 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user is replaced with user name." +msgstr "" +"Dateiname und -pfad relativ zur Netlogon-Freigabe des Scripts, das beim " +"Login ausgeführt wird. $user wird mit Benutzername ersetzt." + +#: ../lib/modules/zarafaServer.inc:76 ../lib/modules/zarafaServer.inc:112 +#: ../lib/modules/zarafaServer.inc:137 ../lib/modules/zarafaServer.inc:177 +#: ../lib/modules/zarafaServer.inc:219 ../lib/modules/zarafaServer.inc:356 +msgid "File path" +msgstr "Dateipfad" + +#: ../templates/masscreate.php:243 ../lib/tools/fileUpload.inc:44 +#: ../lib/modules/ldapPublicKey.inc:80 ../lib/modules/customFields.inc:3280 +#: ../lib/lists.inc:777 +msgid "File upload" +msgstr "Dateiupload" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +#: ../lib/types/zarafaAddressListType.inc:94 +#: ../lib/types/zarafaDynamicGroupType.inc:95 +#: ../lib/modules/pykotaPrinter.inc:128 ../lib/modules/pykotaPrinter.inc:425 +#: ../lib/modules/zarafaDynamicGroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:158 +#: ../lib/modules/zarafaDynamicGroup.inc:171 +#: ../lib/modules/zarafaDynamicGroup.inc:239 +#: ../lib/modules/zarafaDynamicGroup.inc:450 +#: ../lib/modules/zarafaContact.inc:91 ../lib/modules/posixGroup.inc:335 +#: ../lib/modules/posixGroup.inc:528 ../lib/modules/zarafaAddressList.inc:79 +#: ../lib/modules/zarafaAddressList.inc:134 +#: ../lib/modules/zarafaAddressList.inc:145 +#: ../lib/modules/zarafaAddressList.inc:206 +#: ../lib/modules/zarafaAddressList.inc:333 ../lib/modules/zarafaUser.inc:140 +#: ../lib/modules/sambaGroupMapping.inc:170 +#: ../lib/modules/sambaGroupMapping.inc:483 ../lib/modules/nisnetgroup.inc:104 +#: ../lib/modules/nisnetgroup.inc:477 +#: ../lib/modules/organizationalRole.inc:101 +#: ../lib/modules/organizationalRole.inc:282 +#: ../lib/modules/organizationalRole.inc:372 +#: ../lib/modules/groupOfNames.inc:113 ../lib/modules/groupOfNames.inc:339 +#: ../lib/modules/groupOfNames.inc:429 ../lib/modules/groupOfNames.inc:494 +#: ../lib/modules/groupOfNames.inc:584 ../lib/modules/nisMailAlias.inc:93 +#: ../lib/modules/nisMailAlias.inc:373 ../lib/lists.inc:379 +#: ../help/help.inc:168 +msgid "Filter" +msgstr "Filtern" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:509 +msgid "Filter performed" +msgstr "Angewandter Filter" + +#: ../templates/multiEdit.php:514 +msgid "Finished all operations." +msgstr "Alle Operationen beendet." + +#: ../lib/types/user.inc:96 ../lib/modules/selfRegistration.inc:83 +#: ../lib/modules/selfRegistration.inc:218 ../lib/modules/windowsUser.inc:128 +#: ../lib/modules/windowsUser.inc:278 ../lib/modules/windowsUser.inc:502 +#: ../lib/modules/windowsUser.inc:597 ../lib/modules/windowsUser.inc:700 +#: ../lib/modules/windowsUser.inc:1598 ../lib/modules/inetOrgPerson.inc:66 +#: ../lib/modules/inetOrgPerson.inc:159 ../lib/modules/inetOrgPerson.inc:309 +#: ../lib/modules/inetOrgPerson.inc:549 ../lib/modules/inetOrgPerson.inc:658 +#: ../lib/modules/inetOrgPerson.inc:1195 ../lib/modules/inetOrgPerson.inc:1198 +#: ../lib/modules/inetOrgPerson.inc:1925 ../lib/modules/inetOrgPerson.inc:2481 +#: ../lib/modules/inetOrgPerson.inc:3646 +msgid "First name" +msgstr "Vorname" + +#: ../lib/modules/windowsUser.inc:597 ../lib/modules/windowsUser.inc:598 +#: ../lib/modules/inetOrgPerson.inc:66 ../lib/modules/inetOrgPerson.inc:67 +msgid "First name contains invalid characters!" +msgstr "Vorname enthält ungültige Zeichen!" + +#: ../lib/modules/windowsUser.inc:129 ../lib/modules/inetOrgPerson.inc:659 +msgid "First name of user. Only letters, - and spaces are allowed." +msgstr "" +"Vorname des Benutzers. Es sind nur Buchstaben, - und Leerzeichen erlaubt." + +#: ../lib/modules/ddns.inc:85 +msgid "Fix IP addresses" +msgstr "Feste IP-Adressen" + +#: ../templates/config/confmain.php:414 +msgid "Fixed list" +msgstr "Feste Liste" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:228 +msgid "Fixed range" +msgstr "Fester Adressbereich" + +#: ../templates/pdfedit/pdfpage.php:461 +msgid "Folding marks" +msgstr "Faltmarken" + +#: ../templates/config/confmain.php:273 ../help/help.inc:85 +msgid "Follow referrals" +msgstr "Referrals folgen" + +#: ../lib/modules/kolabUser.inc:125 +msgid "For automatic invitation handling." +msgstr "Regelt automatische Einladungen." + +#: ../lib/modules/nisnetgroup.inc:101 +msgid "" +"For the upload please specify the entries in the format \"(HOST,USER," +"DOMAIN)\". Multiple entries are separated by semicolon." +msgstr "" +"Für den Upload geben Sie bitte die Einträge im Format \"(HOST,BENUTZER," +"DOMAIN)\" ein. Mehrere Einträge werden durch Strichpunkt getrennt." + +#: ../templates/lists/changePassword.php:243 +#: ../lib/modules/mitKerberos.inc:183 ../lib/modules/mitKerberos.inc:417 +#: ../lib/modules/shadowAccount.inc:369 ../lib/modules/heimdalKerberos.inc:127 +#: ../lib/modules/heimdalKerberos.inc:348 ../lib/modules.inc:1062 +#: ../help/help.inc:206 +msgid "Force password change" +msgstr "Passwortänderung erzwingen" + +#: ../lib/modules/passwordSelfReset.inc:787 +msgid "Forgot password?" +msgstr "Passwort vergessen?" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:484 ../help/help.inc:252 +msgid "Format" +msgstr "Format" + +#: ../lib/modules/qmailUser.inc:207 ../lib/modules/qmailUser.inc:277 +#: ../lib/modules/qmailUser.inc:401 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:546 ../lib/modules/qmailUser.inc:1141 +msgid "Forwarding address" +msgstr "Weiterleitungsadresse" + +#: ../lib/modules/qmailUser.inc:208 +msgid "Forwards all incoming messages for this user to this address." +msgstr "" +"Leitet alle eingehenden Nachrichten des Benutzers an die angegebene Adresse " +"weiter." + +#: ../lib/modules/pykotaGroup.inc:64 ../lib/modules/pykotaUser.inc:64 +msgid "Free printing" +msgstr "Freies Drucken" + +#: ../lib/modules/freeRadius.inc:74 +msgid "FreeRadius" +msgstr "FreeRadius" + +#: ../lib/modules/sambaSamAccount.inc:1381 +msgid "Friday" +msgstr "Freitag" + +#: ../templates/config/confmain.php:343 ../lib/modules/selfRegistration.inc:90 +#: ../lib/modules/selfRegistration.inc:229 +#: ../lib/modules/passwordSelfReset.inc:116 +#: ../lib/modules/passwordSelfReset.inc:537 +#: ../lib/modules/passwordSelfReset.inc:557 ../help/help.inc:246 +msgid "From address" +msgstr "Absenderadresse" + +#: ../templates/config/confmain.php:520 +msgid "From address for password mails is invalid." +msgstr "Absenderadresse für Passwortmails ist ungültig." + +#: ../lib/modules/asteriskAccount.inc:147 +#: ../lib/modules/asteriskAccount.inc:275 +#: ../lib/modules/asteriskAccount.inc:377 +#: ../lib/modules/asteriskAccount.inc:636 +#: ../lib/modules/asteriskAccount.inc:991 +#: ../lib/modules/asteriskAccount.inc:1251 +msgid "From domain" +msgstr "Quelldomäne" + +#: ../lib/modules/asteriskAccount.inc:148 +msgid "From domain setting for this account." +msgstr "Quelldomäne für diesen Account." + +#: ../lib/modules/asteriskAccount.inc:143 +#: ../lib/modules/asteriskAccount.inc:274 +#: ../lib/modules/asteriskAccount.inc:370 +#: ../lib/modules/asteriskAccount.inc:632 +#: ../lib/modules/asteriskAccount.inc:990 +#: ../lib/modules/asteriskAccount.inc:1249 +msgid "From user" +msgstr "Quellbenutzer" + +#: ../lib/modules/asteriskAccount.inc:144 +msgid "From user setting for this account." +msgstr "Quellbenutzer für diesen Account." + +#: ../lib/modules/asteriskAccount.inc:151 +#: ../lib/modules/asteriskAccount.inc:276 +#: ../lib/modules/asteriskAccount.inc:384 +#: ../lib/modules/asteriskAccount.inc:640 +#: ../lib/modules/asteriskAccount.inc:992 +#: ../lib/modules/asteriskAccount.inc:1253 +msgid "Full contact" +msgstr "Vollständiger Kontakt" + +#: ../templates/lists/changePassword.php:286 +#: ../lib/modules/asteriskVoicemail.inc:103 +#: ../lib/modules/asteriskVoicemail.inc:139 +#: ../lib/modules/asteriskVoicemail.inc:172 +#: ../lib/modules/asteriskVoicemail.inc:252 +#: ../lib/modules/asteriskVoicemail.inc:371 +msgid "Full name" +msgstr "Vollständiger Name" + +#: ../lib/modules/asteriskVoicemail.inc:104 +msgid "Full name for Asterisk voicemail mailbox." +msgstr "Vollständiger Name für den Anrufbeantworter." + +#: ../templates/3rdParty/pla/lib/functions.php:537 +#: ../templates/3rdParty/pla/tools/unserialize.php:17 +msgid "Function" +msgstr "Funktion" + +#: ../lib/modules/windowsUser.inc:328 ../lib/modules/inetOrgPerson.inc:390 +msgid "GB-12345" +msgstr "DE-12345" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixGroup.inc:520 +msgid "GID generator" +msgstr "GID-Generator" + +#: ../lib/types/host.inc:96 ../lib/types/group.inc:106 +#: ../lib/types/user.inc:93 ../lib/modules/qmailUser.inc:114 +#: ../lib/modules/qmailUser.inc:235 ../lib/modules/qmailUser.inc:341 +#: ../lib/modules/qmailUser.inc:421 ../lib/modules/qmailUser.inc:581 +#: ../lib/modules/qmailUser.inc:1143 ../lib/modules/posixGroup.inc:191 +#: ../lib/modules/posixGroup.inc:421 ../lib/modules/posixGroup.inc:436 +#: ../lib/modules/posixGroup.inc:480 ../lib/modules/posixGroup.inc:500 +#: ../lib/modules/posixGroup.inc:571 ../lib/modules/posixGroup.inc:594 +#: ../lib/modules/posixAccount.inc:125 ../lib/modules/posixAccount.inc:413 +#: ../lib/modules/posixAccount.inc:1858 +#: ../lib/modules/sambaGroupMapping.inc:110 +#: ../lib/modules/sambaGroupMapping.inc:538 +msgid "GID number" +msgstr "GID Nummer" + +#: ../lib/modules/posixGroup.inc:594 +msgid "" +"GID number has changed. Please select checkbox to change GID number of users " +"and hosts." +msgstr "" +"Die GID-Nummer wurde geändert. Bitte verwenden sie das Kontrollkästchen um " +"die GID-Nummer von Benutzern und Hosts anzupassen." + +#: ../lib/modules/posixAccount.inc:125 +#, php-format +msgid "" +"GID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" +msgstr "" +"GID-Nummer hat sich geändert. Sie müssen folgenden Befehl als root " +"ausführen, um die Dateirechte zu ändern: 'find / -gid %s -uid %s -exec chgrp " +"%s {} \\;'" + +#: ../lib/modules/posixGroup.inc:601 +msgid "GID number has to be a numeric value!" +msgstr "GID-Nummer muss eine Zahl sein!" + +#: ../lib/modules/qmailUser.inc:466 +msgid "GID number is already in use." +msgstr "GID-Nummer wird bereits verwendet." + +#: ../lib/modules/posixAccount.inc:256 ../lib/modules/posixAccount.inc:356 +#: ../lib/modules/posixAccount.inc:398 ../lib/modules/posixAccount.inc:424 +#: ../lib/modules/posixAccount.inc:510 ../lib/modules/posixAccount.inc:548 +#: ../lib/modules/posixAccount.inc:1440 ../lib/modules/posixAccount.inc:1861 +msgid "Gecos" +msgstr "Gecos" + +#: ../lib/modules/windowsUser.inc:673 +msgid "General" +msgstr "Allgemein" + +#: ../lib/modules/generalInformation.inc:58 +msgid "General information" +msgstr "Allgemeine Informationen" + +#: ../templates/config/mainmanage.php:477 +#: ../templates/config/confmodules.php:164 +#: ../templates/config/confmain.php:205 +#: ../templates/config/moduleSettings.php:163 +#: ../templates/config/conftypes.php:182 +#: ../templates/selfService/adminMain.php:401 +#: ../templates/profedit/profilepage.php:215 +msgid "General settings" +msgstr "Allgemeine Einstellungen" + +#: ../templates/lists/changePassword.php:317 ../help/help.inc:244 +msgid "Generate random password" +msgstr "Zufälliges Passwort generieren" + +#: ../templates/3rdParty/pla/lib/functions.php:63 +#: ../templates/3rdParty/pla/lib/functions.php:595 +msgid "Generic Error" +msgstr "Allgemeiner Fehler" + +#: ../lib/modules/windowsGroup.inc:65 +msgid "Global" +msgstr "Global" + +#: ../templates/pdfedit/pdfmain.php:322 +#: ../templates/profedit/profilemain.php:289 +msgid "Global templates" +msgstr "Globale Vorlagen" + +#: ../templates/schema/schema.php:128 ../templates/schema/schema.php:265 +#: ../templates/schema/schema.php:296 ../templates/schema/schema.php:321 +msgid "Go" +msgstr "Weiter" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:215 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:139 +msgid "Go back" +msgstr "Zurück" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1864 +msgid "Go to" +msgstr "Gehe zu" + +#: ../lib/types/ppolicyType.inc:82 ../lib/modules/ppolicy.inc:100 +#: ../lib/modules/ppolicy.inc:149 ../lib/modules/ppolicy.inc:170 +#: ../lib/modules/ppolicy.inc:222 ../lib/modules/ppolicy.inc:475 +msgid "Grace authentication limit" +msgstr "Aufschublimit" + +#: ../lib/modules/quota.inc:125 ../lib/modules/quota.inc:403 +msgid "Grace block period" +msgstr "Block-Frist" + +#: ../lib/modules/quota.inc:126 +msgid "" +"Grace block period. Most filesystems use a fixed maximum value of 7 days." +msgstr "" +"Block-Frist. Viele Dateisysteme verwenden ein festes Maximum von 7 Tagen." + +#: ../lib/modules/quota.inc:148 +msgid "" +"Grace inode (files) period. Most filesystems use a fixed maximum value of 7 " +"days." +msgstr "" +"Inode-Frist. Viele Dateisysteme verwenden ein festes Maximum von 7 Tagen." + +#: ../lib/modules/quota.inc:147 ../lib/modules/quota.inc:407 +msgid "Grace inode period" +msgstr "Inode-Frist" + +#: ../templates/config/confmain.php:324 +#: ../templates/selfService/adminMain.php:638 +msgid "Group" +msgstr "Gruppe" + +#: ../lib/types/group.inc:76 +msgid "Group accounts (e.g. Unix and Samba)" +msgstr "Gruppenaccounts (z.B. Unix und Samba)" + +#: ../lib/types/gon.inc:202 ../lib/types/zarafaDynamicGroupType.inc:165 +#: ../lib/types/group.inc:240 ../lib/types/netgroup.inc:169 +#, php-format +msgid "Group count: %s" +msgstr "Anzahl Gruppen: %s" + +#: ../lib/types/group.inc:111 ../lib/modules/posixGroup.inc:471 +#: ../lib/modules/nisnetgroup.inc:120 +msgid "Group description" +msgstr "Gruppenbeschreibung" + +#: ../lib/modules/pykotaGroup.inc:118 +msgid "Group description." +msgstr "Gruppenbeschreibung." + +#: ../lib/modules/posixGroup.inc:485 +msgid "Group description. If left empty group name will be used." +msgstr "Gruppenbeschreibung. Falls leer wird der Gruppename verwendet." + +#: ../lib/types/gon.inc:105 ../lib/types/gon.inc:106 +#: ../lib/types/group.inc:108 ../lib/types/group.inc:109 +msgid "Group member DNs" +msgstr "DNs der Gruppenmitglieder" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:94 +#: ../lib/types/group.inc:107 ../lib/modules/pykotaPrinter.inc:119 +#: ../lib/modules/pykotaPrinter.inc:123 ../lib/modules/pykotaPrinter.inc:186 +#: ../lib/modules/pykotaPrinter.inc:199 ../lib/modules/pykotaPrinter.inc:265 +#: ../lib/modules/pykotaPrinter.inc:607 ../lib/modules/posixGroup.inc:222 +#: ../lib/modules/posixGroup.inc:293 ../lib/modules/posixGroup.inc:424 +#: ../lib/modules/posixGroup.inc:450 ../lib/modules/posixGroup.inc:488 +#: ../lib/modules/posixGroup.inc:492 ../lib/modules/posixGroup.inc:569 +#: ../lib/modules/windowsGroup.inc:381 +msgid "Group members" +msgstr "Gruppenmitglieder" + +#: ../lib/types/gon.inc:104 ../lib/types/zarafaDynamicGroupType.inc:91 +#: ../lib/types/group.inc:105 ../lib/types/netgroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:63 +#: ../lib/modules/zarafaDynamicGroup.inc:116 +#: ../lib/modules/zarafaDynamicGroup.inc:165 +#: ../lib/modules/zarafaDynamicGroup.inc:195 +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:220 +#: ../lib/modules/zarafaDynamicGroup.inc:447 ../lib/modules/posixGroup.inc:181 +#: ../lib/modules/posixGroup.inc:427 ../lib/modules/posixGroup.inc:459 +#: ../lib/modules/posixGroup.inc:508 ../lib/modules/posixGroup.inc:570 +#: ../lib/modules/posixGroup.inc:602 ../lib/modules/posixGroup.inc:603 +#: ../lib/modules/posixGroup.inc:604 ../lib/modules/pykotaGroup.inc:197 +#: ../lib/modules/pykotaGroup.inc:199 ../lib/modules/pykotaGroup.inc:218 +#: ../lib/modules/nisnetgroup.inc:83 ../lib/modules/nisnetgroup.inc:112 +#: ../lib/modules/nisnetgroup.inc:139 ../lib/modules/nisnetgroup.inc:151 +#: ../lib/modules/nisnetgroup.inc:193 ../lib/modules/nisnetgroup.inc:579 +#: ../lib/modules/organizationalRole.inc:85 +#: ../lib/modules/organizationalRole.inc:114 +#: ../lib/modules/organizationalRole.inc:137 +#: ../lib/modules/organizationalRole.inc:452 +#: ../lib/modules/windowsGroup.inc:114 ../lib/modules/windowsGroup.inc:176 +#: ../lib/modules/windowsGroup.inc:257 ../lib/modules/windowsGroup.inc:283 +#: ../lib/modules/windowsGroup.inc:300 ../lib/modules/windowsGroup.inc:745 +#: ../lib/modules/groupOfNames.inc:85 ../lib/modules/groupOfNames.inc:126 +#: ../lib/modules/groupOfNames.inc:167 ../lib/modules/groupOfNames.inc:693 +msgid "Group name" +msgstr "Gruppenname" + +#: ../lib/modules/pykotaGroup.inc:199 ../lib/modules/pykotaGroup.inc:200 +#: ../lib/modules/pykotaGroup.inc:203 ../lib/modules/pykotaGroup.inc:204 +msgid "Group name already exists!" +msgstr "Gruppenname besteht schon!" + +#: ../lib/modules/zarafaDynamicGroup.inc:195 +msgid "Group name already in use." +msgstr "Der Gruppenname wird bereits verwendet." + +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:197 ../lib/modules/posixGroup.inc:604 +#: ../lib/modules/posixGroup.inc:605 ../lib/modules/pykotaGroup.inc:197 +#: ../lib/modules/pykotaGroup.inc:198 ../lib/modules/pykotaGroup.inc:201 +#: ../lib/modules/pykotaGroup.inc:202 ../lib/modules/nisnetgroup.inc:151 +#: ../lib/modules/windowsGroup.inc:283 ../lib/modules/windowsGroup.inc:284 +msgid "" +"Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Gruppenname enthält ungültige Zeichen. Gültige Zeichen sind: a-z, A-Z, " +"0-9, ., - und _!" + +#: ../lib/modules/windowsGroup.inc:151 +msgid "Group name for NIS." +msgstr "Gruppenname für NIS." + +#: ../lib/modules/posixGroup.inc:603 +msgid "Group name in use. Selected next free group name." +msgstr "" +"Gruppenname wird bereits verwendet. Nächster freier Gruppenname wurde " +"ausgewählt." + +#: ../lib/modules/zarafaDynamicGroup.inc:64 ../lib/modules/pykotaGroup.inc:114 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ ." +msgstr "" +"Gruppenname der zu erstellenden Gruppe. Gültige Zeichen sind: a-z, A-Z, 0-9 " +"und .-_." + +#: ../lib/modules/posixGroup.inc:509 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ . If group name is already used group name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"Gruppenname der zu erstellenden Gruppe. Gültige Zeichen sind: a-z, A-Z, 0-9 " +"und .-_. Sollte der Gruppenname schon in Verwendung sein wird eine Zahl " +"angehängt." + +#: ../lib/modules/pykotaGroup.inc:122 +msgid "Group name that is used for PyKota." +msgstr "Gruppenname, der für PyKota verwendet wird." + +#: ../lib/modules/freeRadius.inc:96 ../lib/modules/freeRadius.inc:100 +#: ../lib/modules/freeRadius.inc:128 ../lib/modules/freeRadius.inc:154 +#: ../lib/modules/freeRadius.inc:185 ../lib/modules/freeRadius.inc:234 +#: ../lib/modules/freeRadius.inc:277 ../lib/modules/freeRadius.inc:540 +msgid "Group names" +msgstr "Gruppennamen" + +#: ../lib/modules/groupOfNames.inc:65 +msgid "Group of names" +msgstr "Namensgruppe" + +#: ../lib/types/gon.inc:75 +msgid "Group of names accounts" +msgstr "Namensgruppen" + +#: ../lib/modules/groupOfUniqueNames.inc:42 +msgid "Group of unique names" +msgstr "Gruppe eindeutiger Namen" + +#: ../lib/modules/posixGroup.inc:442 ../lib/modules/posixGroup.inc:496 +msgid "Group password" +msgstr "Gruppenpasswort" + +#: ../lib/modules/windowsGroup.inc:142 ../lib/modules/windowsGroup.inc:195 +#: ../lib/modules/windowsGroup.inc:262 ../lib/modules/windowsGroup.inc:338 +#: ../lib/modules/windowsGroup.inc:775 +msgid "Group scope" +msgstr "Gruppenbereich" + +#: ../lib/modules/sambaGroupMapping.inc:382 +#: ../lib/modules/windowsGroup.inc:138 ../lib/modules/windowsGroup.inc:203 +#: ../lib/modules/windowsGroup.inc:261 ../lib/modules/windowsGroup.inc:341 +#: ../lib/modules/windowsGroup.inc:776 +msgid "Group type" +msgstr "Gruppentyp" + +#: ../lib/types/group.inc:67 ../lib/modules/posixGroup.inc:401 +#: ../lib/modules/zarafaGroup.inc:119 ../lib/modules/windowsUser.inc:217 +#: ../lib/modules/windowsUser.inc:220 ../lib/modules/windowsUser.inc:442 +#: ../lib/modules/windowsUser.inc:523 ../lib/modules/windowsUser.inc:785 +#: ../lib/modules/windowsUser.inc:1643 ../lib/modules/windowsUser.inc:1671 +#: ../lib/modules/generalInformation.inc:110 +msgid "Groups" +msgstr "Gruppen" + +#: ../lib/types/gon.inc:66 ../lib/modules/posixAccount.inc:261 +#: ../lib/modules/posixAccount.inc:364 ../lib/modules/posixAccount.inc:427 +#: ../lib/modules/posixAccount.inc:1599 ../lib/modules/posixAccount.inc:1748 +#: ../lib/modules/posixAccount.inc:1871 ../lib/modules/windowsUser.inc:1033 +#: ../lib/modules/groupOfNamesUser.inc:54 +#: ../lib/modules/groupOfNamesUser.inc:56 +#: ../lib/modules/groupOfNamesUser.inc:60 +#: ../lib/modules/groupOfNamesUser.inc:64 +#: ../lib/modules/groupOfNamesUser.inc:71 +#: ../lib/modules/groupOfNamesUser.inc:324 +#: ../lib/modules/groupOfNamesUser.inc:361 +msgid "Groups of names" +msgstr "Namensgruppen" + +#: ../lib/modules/dhcp_settings.inc:99 +msgid "H-Node (0x08)" +msgstr "H-Knoten (0x08)" + +#: ../templates/config/confmain.php:356 +#: ../lib/modules/selfRegistration.inc:235 +#: ../lib/modules/passwordSelfReset.inc:541 +#: ../lib/modules/passwordSelfReset.inc:561 ../help/help.inc:255 +msgid "HTML format" +msgstr "HTML Format" + +#: ../templates/config/confmain.php:448 +#: ../templates/selfService/adminMain.php:442 ../help/help.inc:126 +msgid "HTTP authentication" +msgstr "HTTP-Authentifizierung" + +#: ../lib/modules/zarafaServer.inc:68 ../lib/modules/zarafaServer.inc:100 +#: ../lib/modules/zarafaServer.inc:135 ../lib/modules/zarafaServer.inc:173 +#: ../lib/modules/zarafaServer.inc:195 ../lib/modules/zarafaServer.inc:354 +msgid "HTTP port" +msgstr "HTTP-Port" + +#: ../lib/modules/quota.inc:635 ../lib/modules/systemQuotas.inc:384 +msgid "Hard block" +msgstr "Hartes Block-Limit" + +#: ../lib/modules/quota.inc:119 ../lib/modules/quota.inc:120 +#: ../lib/modules/quota.inc:402 ../lib/modules/quota.inc:508 +#: ../lib/modules/systemQuotas.inc:126 +msgid "Hard block limit" +msgstr "Hartes Block-Limit" + +#: ../lib/modules/quota.inc:637 ../lib/modules/systemQuotas.inc:386 +msgid "Hard inode" +msgstr "Hartes Inode-Limit" + +#: ../lib/modules/quota.inc:142 +msgid "Hard inode (files) limit" +msgstr "Hartes Inode-Limit (Dateien)" + +#: ../lib/modules/quota.inc:141 ../lib/modules/quota.inc:406 +#: ../lib/modules/quota.inc:510 ../lib/modules/systemQuotas.inc:130 +msgid "Hard inode limit" +msgstr "Hartes Inode-Limit" + +#: ../lib/modules/generalInformation.inc:104 +msgid "Has subentries" +msgstr "Hat Untereinträge" + +#: ../lib/modules/sambaSamAccount.inc:555 +msgid "Hawaii" +msgstr "Hawaii" + +#: ../lib/modules/selfRegistration.inc:106 +#: ../lib/modules/selfRegistration.inc:224 +#: ../lib/modules/passwordSelfReset.inc:156 +#: ../lib/modules/passwordSelfReset.inc:567 +msgid "Header" +msgstr "Überschrift" + +#: ../templates/pdfedit/pdfpage.php:452 ../templates/pdfedit/pdfpage.php:591 +#: ../templates/pdfedit/pdfpage.php:598 +msgid "Headline" +msgstr "Überschrift" + +#: ../lib/modules/heimdalKerberos.inc:235 +msgid "Heimdal Kerberos password change command" +msgstr "Befehl für Passwortänderung bei Heimdal Kerberos" + +#: ../templates/main_header.php:140 ../lib/modules.inc:667 +msgid "Help" +msgstr "Hilfe" + +#: ../lib/modules/customFields.inc:96 ../lib/modules/customFields.inc:1716 +msgid "Help text" +msgstr "Hilfetext" + +#: ../lib/tools/schemaBrowser.inc:53 +msgid "Here you can browse LDAP object classes and attributes." +msgstr "Hier können Sie LDAP-Objektklassen und Attribute betrachten." + +#: ../lib/modules/sambaSamAccount.inc:392 +msgid "Here you can change the settings for the terminal server access." +msgstr "Hier können Sie die Terminalserver-Einstellungen ändern." + +#: ../lib/selfService.inc:387 +msgid "Here you can change your personal settings." +msgstr "Hier können Sie Ihre persönlichen Daten ändern." + +#: ../templates/masscreate.php:130 +msgid "Here you can create multiple accounts by providing a CSV file." +msgstr "" +"Hier können Sie mehrere Accounts mittels einer CSV-formatierten Datei " +"erstellen." + +#: ../lib/modules/dhcp_settings.inc:198 +msgid "Here you can enter a description for this DHCP entry." +msgstr "Hier können Sie eine Beschreibung für den DHCP-Eintrag eintragen." + +#: ../lib/modules/nisnetgroup.inc:88 ../lib/modules/organizationalRole.inc:90 +#: ../lib/modules/groupOfNames.inc:90 +msgid "Here you can enter a description for this group." +msgstr "Hier können Sie eine Beschreibung für die Gruppe eintragen." + +#: ../lib/modules/sudoRole.inc:71 +msgid "Here you can enter a description for this role." +msgstr "Hier können Sie eine Beschreibung für die Sudo-Rolle eintragen." + +#: ../lib/modules/pykotaPrinter.inc:129 ../lib/modules/zarafaContact.inc:92 +#: ../lib/modules/posixGroup.inc:529 ../lib/modules/zarafaUser.inc:141 +#: ../lib/modules/sambaGroupMapping.inc:171 ../lib/modules/nisnetgroup.inc:105 +#: ../lib/modules/organizationalRole.inc:102 +#: ../lib/modules/groupOfNames.inc:114 ../lib/modules/nisMailAlias.inc:94 +msgid "" +"Here you can enter a filter value. Only entries which contain the filter " +"text will be shown." +msgstr "" +"Hier können Sie einen Filtertext eingeben. Es werden dann nur Einträge " +"angezeigt, die diesen Wert enthalten." + +#: ../lib/modules/posixAccount.inc:470 ../lib/modules/groupOfNamesUser.inc:65 +msgid "" +"Here you can enter a list of additional group memberships. The group names " +"are separated by commas." +msgstr "" +"Hier können Sie zusätzliche Gruppenmitgliedschaften angeben. Die " +"Gruppennamen werden durch Komma getrennt." + +#: ../lib/modules/organizationalRoleUser.inc:65 +msgid "" +"Here you can enter a list of roles. The role names are separated by commas." +msgstr "" +"Hier können Sie eine Liste von Rollen angeben. Die Rollennamen werden durch " +"Komma getrennt." + +#: ../lib/modules/device.inc:66 +msgid "Here you can enter a serial number for this device." +msgstr "Hier können Sie eine Seriennummer für das Gerät eintragen." + +#: ../lib/modules/windowsUser.inc:181 ../lib/modules/windowsUser.inc:185 +msgid "Here you can enter additional web sites for the user." +msgstr "Hier können Sie zusätzliche Webseiten für den Benutzer eintragen." + +#: ../help/help.inc:215 +msgid "" +"Here you can enter an alternative mail address for the password. To use the " +"user's primary email address please leave the field blank." +msgstr "" +"Hier können Sie eine alternative email-Adresse angeben, an die das Passwort " +"versendet wird. Um die primäre Email-Adresse zu verwenden lassen Sie das " +"Feld bitte leer." + +#: ../lib/modules/customFields.inc:81 +msgid "" +"Here you can enter one or more object classes (separated by comma). This " +"will allow you to add/remove the group's attributes including their object " +"classes." +msgstr "" +"Hier können Sie eine oder mehrere Objektklassen (getrennt durch Komma) " +"eingeben. Das erlaubt Ihnen die Attribute der Gruppe inklusive Objektklassen " +"hinzufügen oder zu entfernen." + +#: ../lib/modules/inetOrgPerson.inc:823 ../lib/modules/inetOrgPerson.inc:827 +msgid "Here you can enter the user's department." +msgstr "Hier können Sie den Unternehmensbereich des Benutzers eingeben." + +#: ../lib/modules/zarafaUser.inc:156 +msgid "Here you can explicitly enable and disable Zarafa features." +msgstr "Hier können Sie einzelne Zarafa-Funktionen (de)aktivieren." + +#: ../help/help.inc:213 +msgid "" +"Here you can export PDF structures to other server profiles (overwrite " +"existing). You may also export a structure to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"structure with this name." +msgstr "" +"Damit können Sie PDF-Strukturen in andere Serverprofile exportieren " +"(überschreibt existierende PDF-Strukturen). Sie können auch eine Struktur in " +"die globalen Vorlagen exportieren. In diesem Fall wird die Struktur in alle " +"Serverprofile kopiert, die noch keine Struktur gleichen Namens haben." + +#: ../help/help.inc:195 +msgid "" +"Here you can export account profiles to other server profiles (overwrite " +"existing). You may also export a profile to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"profile with this name." +msgstr "" +"Damit können Sie Accountprofile in andere Serverprofile exportieren " +"(überschreibt existierende Accountprofile). Sie können auch eine Struktur in " +"die globalen Vorlagen exportieren. In diesem Fall wird das Accountprofil in " +"alle Serverprofile kopiert, die noch kein Accountprofil gleichen Namens " +"haben." + +#: ../help/help.inc:211 +msgid "" +"Here you can import PDF structures from other server profiles (overwrite " +"existing)." +msgstr "" +"Damit können Sie PDF-Strukturen aus anderen Serverprofilen importieren " +"(überschreibt bestehende PDF-Strukturen)." + +#: ../help/help.inc:193 +msgid "" +"Here you can import account profiles from other server profiles (overwrite " +"existing)." +msgstr "" +"Damit können Sie Accountprofile aus anderen Serverprofilen importieren " +"(überschreibt bestehende Accountprofile)." + +#: ../help/help.inc:169 +msgid "" +"Here you can input simple filter expressions (e.g. 'value' or 'v*'). The " +"filter is case-sensitive." +msgstr "" +"Hier können Sie einfache Filter angeben (z.B. 'wert' oder 'w*'). LAM filtert " +"mit Berücksichtigung von Groß-/Kleinschreibung." + +#: ../help/help.inc:199 +msgid "" +"Here you can load an account profile to set default settings for your " +"account. The \"default\" profile is automatically loaded for new accounts." +msgstr "" +"Damit können Sie Account-Profile laden und Standardwerte setzen. Das Profil " +"\"default\" wird bei neuen Accounts automatisch geladen." + +#: ../lib/tools/profileEditor.inc:53 +msgid "Here you can manage your account profiles." +msgstr "Hier können Sie Ihre Accountprofile verwalten." + +#: ../help/help.inc:181 +msgid "Here you can overwrite the display name for this account type." +msgstr "Hier können Sie den Anzeigename für diesen Kontotyp überschreiben." + +#: ../help/help.inc:201 +msgid "" +"Here you can select a PDF structure and export the account to a PDF file." +msgstr "" +"Die Account-Daten können als PDF-Datei exportiert werden. Wählen Sie hierfür " +"das gewünschte PDF-Profil." + +#: ../help/help.inc:151 +msgid "" +"Here you can select where LAM should save its log messages. System logging " +"will go to Syslog on Unix systems and event log on Windows. You can also " +"select an extra file." +msgstr "" +"Hier können Sie wählen, wohin LAM seine Logmeldungen speichern soll. Das " +"systemeigene Logging verwendet Syslog auf Unix-Systemen und Event Log auf " +"Windows-Systemen. Sie können auch eine Datei angeben." + +#: ../help/help.inc:112 +msgid "" +"Here you can select which plugins you want to use for account management." +msgstr "" +"Hier können Sie die Plugins wählen, die Sie zur Accountverwaltung verwenden " +"möchten." + +#: ../lib/modules/customFields.inc:169 +msgid "Here you can set a custom display name for this module." +msgstr "Hier können Sie einen eigenen Anzeigename für dieses Modul eintragen." + +#: ../lib/modules/customFields.inc:97 +msgid "Here you can set a describing text for your custom field." +msgstr "Hier können Sie eine Beschreibung für Ihr eigenes Feld eintragen." + +#: ../help/help.inc:125 +msgid "" +"Here you can set a limit for LDAP searches. This will restrict the number of " +"results for LDAP searches. Please use this if LAM's LDAP queries produce too " +"much load." +msgstr "" +"Hiermit können Sie die Ergebnisse von LDAP-Suchanfragen begrenzen. Bitte " +"verwenden Sie diese Option wenn LAM auf Ihrem LDAP-Server zu viel Last " +"verursacht." + +#: ../lib/modules/customFields.inc:173 +msgid "Here you can set the URL to a custom icon (32x32px) for this module." +msgstr "Hier können Sie die URL für ein eigenes Symbol (32x32px) eintragen." + +#: ../help/help.inc:237 +msgid "" +"Here you can specify additional CSS links to change the layout of the self " +"service pages. This is useful to adapt them to your corporate design. Please " +"enter one link per line." +msgstr "" +"Sie können die SelfService-Seiten an Ihr Unternehmensdesign anpassen. Geben " +"Sie dazu hier die Links zu den entsprechenden CSS-Dateien an (ein Link pro " +"Zeile)." + +#: ../help/help.inc:155 +msgid "" +"Here you can specify minimum requirements for passwords. The character " +"classes are: lowercase, uppercase, numeric and symbols." +msgstr "" +"Hier können Sie die Minimalanforderungen für Passwörter einstellen. Die " +"Zeichenklassen sind: Kleinbuchstaben, Großbuchstaben, Zahlen und " +"Sonderzeichen" + +#: ../lib/modules/nisnetgroup.inc:92 +msgid "" +"Here you can specify subgroups which are included in this NIS netgroup. All " +"members of the subgroups will be treated as members of this group." +msgstr "" +"Hiermit können Sie Untergruppen für diese NIS Netzgruppe wählen. Alle " +"Mitglieder der Untergruppen werden auch als Mitglieder dieser Gruppe " +"behandelt." + +#: ../help/help.inc:129 +msgid "" +"Here you can specify the DN and password of the bind user that will be used " +"for the LDAP search. This is required if your LDAP server does not allow " +"anonymous access." +msgstr "" +"Hier können Sie Bind-Benutzer und Passwort für die LDAP-Suche angeben. Dies " +"wird benötigt falls Ihr LDAP-Server keinen anonymen Zugang erlaubt." + +#: ../lib/modules/hostObject.inc:80 +msgid "" +"Here you can specify the list of host names where this account has login " +"privileges. The wildcard \"*\" represents all hosts. You may also use \"!\" " +"in front of a host name to deny access to a host." +msgstr "" +"Hier können Sie eine Liste von Hostnamen eintragen, an denen sich der " +"Account anmelden darf. Dabei steht \"*\" für alle Hosts. Sie können auch \"!" +"\" vor einen Hostnamen stellen und ihn damit ausschließen." + +#: ../lib/modules/sambaDomain.inc:102 +msgid "" +"Here you can specify the minimum number of characters for a user password." +msgstr "Bestimmt die minimale Länge für Benutzerpasswörter." + +#: ../templates/lists/changePassword.php:359 +msgid "Here you can specify the new password yourself." +msgstr "Hier können Sie das neue Passwort selbst eingeben." + +#: ../lib/modules/sambaSamAccount.inc:383 +msgid "Here you can specify the shadowing mode." +msgstr "Hier können Sie den Spiegel-Modus einstellen." + +#: ../lib/tools/tests.inc:53 +msgid "Here you can test if certain LAM features work on your installation." +msgstr "" +"Hier können Sie prüfen, ob bestimmte LAM-Funktionen korrekt funktionieren." + +#: ../lib/modules/customFields.inc:165 +msgid "Here you can upload a new file." +msgstr "Hier können Sie eine neue Datei hochladen." + +#: ../templates/config/conftypes.php:298 +#: ../lib/types/zarafaAddressListType.inc:95 +#: ../lib/types/zarafaDynamicGroupType.inc:96 +#: ../lib/modules/zarafaDynamicGroup.inc:79 +#: ../lib/modules/zarafaDynamicGroup.inc:136 +#: ../lib/modules/zarafaDynamicGroup.inc:169 +#: ../lib/modules/zarafaDynamicGroup.inc:273 +#: ../lib/modules/zarafaDynamicGroup.inc:461 +#: ../lib/modules/zarafaContact.inc:71 ../lib/modules/zarafaContact.inc:164 +#: ../lib/modules/zarafaContact.inc:172 ../lib/modules/zarafaContact.inc:247 +#: ../lib/modules/zarafaContact.inc:572 ../lib/modules/zarafaGroup.inc:85 +#: ../lib/modules/zarafaGroup.inc:146 ../lib/modules/zarafaGroup.inc:196 +#: ../lib/modules/zarafaGroup.inc:294 ../lib/modules/zarafaGroup.inc:665 +#: ../lib/modules/zarafaAddressList.inc:67 +#: ../lib/modules/zarafaAddressList.inc:112 +#: ../lib/modules/zarafaAddressList.inc:143 +#: ../lib/modules/zarafaAddressList.inc:214 +#: ../lib/modules/zarafaAddressList.inc:343 ../lib/modules/zarafaUser.inc:80 +#: ../lib/modules/zarafaUser.inc:290 ../lib/modules/zarafaUser.inc:339 +#: ../lib/modules/zarafaUser.inc:367 ../lib/modules/zarafaUser.inc:577 +#: ../lib/modules/zarafaUser.inc:1274 ../help/help.inc:174 +msgid "Hidden" +msgstr "Versteckt" + +#: ../help/help.inc:175 +msgid "" +"Hidden account types will not show up in LAM. This is useful if you want to " +"display e.g. only groups but still need to manage their members." +msgstr "" +"Versteckte Accounttypen sind nicht innerhalb von LAM sichtbar. Verwenden Sie " +"diese Einstellung wenn Sie z.B. nur Gruppen anzeigen möchten und Mitglieder " +"trotzdem änderbar sein sollen." + +#: ../lib/modules/nisMailAliasUser.inc:104 +#: ../lib/modules/nisMailAliasUser.inc:563 +#: ../lib/modules/asteriskAccount.inc:243 +#: ../lib/modules/asteriskAccount.inc:1237 ../lib/modules/qmailUser.inc:102 +#: ../lib/modules/qmailUser.inc:195 ../lib/modules/zarafaGroup.inc:108 +#: ../lib/modules/zarafaGroup.inc:134 ../lib/modules/sambaSamAccount.inc:400 +#: ../lib/modules/sambaSamAccount.inc:590 ../lib/modules/posixAccount.inc:252 +#: ../lib/modules/posixAccount.inc:441 ../lib/modules/zarafaUser.inc:132 +#: ../lib/modules/zarafaUser.inc:1781 ../lib/modules/windowsUser.inc:236 +#: ../lib/modules/windowsUser.inc:561 ../lib/modules/inetOrgPerson.inc:830 +#: ../lib/modules/inetOrgPerson.inc:3572 ../lib/modules/freeRadius.inc:112 +#: ../lib/modules/freeRadius.inc:118 ../lib/modules/zarafaServer.inc:88 +#: ../lib/modules/zarafaServer.inc:159 ../lib/modules/qmailGroup.inc:68 +#: ../lib/modules/qmailGroup.inc:119 ../lib/modules/organizationalRole.inc:81 +#: ../lib/modules/organizationalRole.inc:159 +#: ../lib/modules/passwordSelfReset.inc:160 +#: ../lib/modules/passwordSelfReset.inc:209 +#: ../lib/modules/windowsGroup.inc:110 ../lib/modules/windowsGroup.inc:161 +#: ../lib/modules/groupOfNames.inc:81 ../lib/modules/groupOfNames.inc:193 +msgid "Hidden options" +msgstr "Versteckte Optionen" + +#: ../templates/config/confmain.php:375 +msgid "Hidden tools" +msgstr "Versteckte Werkzeuge" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1115 +msgid "Hide" +msgstr "Verstecken" + +#: ../lib/modules/customScripts.inc:88 ../lib/modules/customScripts.inc:102 +#: ../lib/modules/customScripts.inc:112 +msgid "Hide command in messages" +msgstr "Kommando in Meldungen ausblenden" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1116 +msgid "Hide internal attributes" +msgstr "Interne Attribute verstecken" + +#: ../lib/modules/customScripts.inc:92 ../lib/modules/customScripts.inc:104 +msgid "Hide tab" +msgstr "Tab verstecken" + +#: ../templates/3rdParty/pla/lib/page.php:407 +msgid "Hide/Unhide the tree" +msgstr "Den Baum verstecken/zeigen" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:58 +msgid "Hint" +msgstr "Hinweis" + +#: ../templates/masscreate.php:249 +msgid "" +"Hint: Format all cells as text in your spreadsheet program and turn off auto " +"correction." +msgstr "" +"Tipp: Formatieren Sie in Ihrem Tabellenkalkulationsprogramm alle Zellen als " +"Text und schalten Sie die Autokorrektur ab." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1005 +msgid "Hint: To delete an attribute, empty the text field and click save." +msgstr "" +"Tipp: Um ein Attribut zu löschen, leeren Sie das Eingabefeld und speichern " +"die Änderung." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1342 +msgid "" +"Hint: You must choose exactly one structural object class (shown in bold " +"above)" +msgstr "" +"Hinweis: Wählen Sie genau eine strukturelle Objektklasse (fett markiert)." + +#: ../lib/modules/posixAccount.inc:535 ../lib/modules/windowsUser.inc:218 +#: ../lib/modules/groupOfNamesUser.inc:61 +msgid "Hold the CTRL-key to (de)select multiple groups." +msgstr "Halten Sie Strg gedrückt um mehrere Gruppen zu markieren." + +#: ../lib/modules/organizationalRoleUser.inc:61 +msgid "Hold the CTRL-key to (de)select multiple roles." +msgstr "Halten Sie Strg gedrückt um mehrere Rollen zu markieren." + +#: ../lib/types/user.inc:98 ../lib/modules/sambaSamAccount.inc:231 +#: ../lib/modules/sambaSamAccount.inc:355 +#: ../lib/modules/sambaSamAccount.inc:1506 +#: ../lib/modules/sambaSamAccount.inc:1923 ../lib/modules/posixAccount.inc:100 +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:103 +#: ../lib/modules/posixAccount.inc:310 ../lib/modules/posixAccount.inc:416 +#: ../lib/modules/posixAccount.inc:473 ../lib/modules/posixAccount.inc:477 +#: ../lib/modules/posixAccount.inc:481 ../lib/modules/posixAccount.inc:518 +#: ../lib/modules/posixAccount.inc:1199 ../lib/modules/posixAccount.inc:1459 +#: ../lib/modules/posixAccount.inc:1655 ../lib/modules/posixAccount.inc:1755 +#: ../lib/modules/posixAccount.inc:1859 ../lib/modules/windowsUser.inc:247 +#: ../lib/modules/windowsUser.inc:436 ../lib/modules/windowsUser.inc:479 +#: ../lib/modules/windowsUser.inc:526 ../lib/modules/windowsUser.inc:618 +#: ../lib/modules/windowsUser.inc:768 ../lib/modules/windowsUser.inc:1637 +msgid "Home directory" +msgstr "Heimatverzeichnis" + +#: ../lib/modules/posixAccount.inc:103 +#, php-format +msgid "" +"Home directory changed. To keep home directory you have to run the following " +"command as root: 'mv %s %s'" +msgstr "" +"Heimatverzeichnis wurde geändert. Sie müssen folgendes Kommando als root-" +"Benutzer ausführen um das alte Verzeichnis zu ändern: 'mv %s %s'" + +#: ../lib/modules/sambaSamAccount.inc:215 +#: ../lib/modules/sambaSamAccount.inc:232 +#: ../lib/modules/sambaSamAccount.inc:303 +#: ../lib/modules/sambaSamAccount.inc:487 +#: ../lib/modules/sambaSamAccount.inc:595 +#: ../lib/modules/sambaSamAccount.inc:1208 +#: ../lib/modules/sambaSamAccount.inc:1514 +#: ../lib/modules/sambaSamAccount.inc:1757 +#: ../lib/modules/sambaSamAccount.inc:1908 +#: ../lib/modules/sambaSamAccount.inc:1924 ../lib/modules/windowsUser.inc:244 +#: ../lib/modules/windowsUser.inc:430 ../lib/modules/windowsUser.inc:525 +#: ../lib/modules/windowsUser.inc:766 ../lib/modules/windowsUser.inc:1638 +msgid "Home drive" +msgstr "Heimatlaufwerk" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:95 +#: ../lib/modules/sambaSamAccount.inc:218 +#: ../lib/modules/sambaSamAccount.inc:306 +#: ../lib/modules/sambaSamAccount.inc:495 +#: ../lib/modules/sambaSamAccount.inc:597 +#: ../lib/modules/sambaSamAccount.inc:1216 +#: ../lib/modules/sambaSamAccount.inc:1761 +#: ../lib/modules/sambaSamAccount.inc:1907 +msgid "Home path" +msgstr "Heimatverzeichnis" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:96 +msgid "Home path is invalid." +msgstr "Heimatverzeichnis ist ungültig." + +#: ../lib/modules/zarafaUser.inc:129 +msgid "Home server for the user." +msgstr "Dies ist der Heimatserver des Benutzers." + +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:163 +#: ../lib/modules/inetOrgPerson.inc:428 ../lib/modules/inetOrgPerson.inc:586 +#: ../lib/modules/inetOrgPerson.inc:774 ../lib/modules/inetOrgPerson.inc:778 +#: ../lib/modules/inetOrgPerson.inc:1415 ../lib/modules/inetOrgPerson.inc:1418 +#: ../lib/modules/inetOrgPerson.inc:1934 ../lib/modules/inetOrgPerson.inc:2536 +#: ../lib/modules/inetOrgPerson.inc:3598 ../lib/modules/inetOrgPerson.inc:3651 +msgid "Home telephone number" +msgstr "Telefon privat" + +#: ../lib/modules/posixAccount.inc:100 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/windowsUser.inc:618 ../lib/modules/windowsUser.inc:619 +msgid "Homedirectory contains invalid characters." +msgstr "Heimatverzeichnis enthält ungültige Zeichen." + +#: ../lib/types/sudo.inc:79 ../lib/modules/asteriskAccount.inc:107 +#: ../lib/modules/asteriskAccount.inc:254 +#: ../lib/modules/asteriskAccount.inc:268 +#: ../lib/modules/asteriskAccount.inc:318 +#: ../lib/modules/asteriskAccount.inc:591 +#: ../lib/modules/asteriskAccount.inc:984 ../lib/modules/nisnetgroup.inc:217 +#: ../lib/modules/nisnetgroup.inc:585 ../lib/modules/fixed_ip.inc:580 +#: ../lib/modules/hostObject.inc:145 +msgid "Host" +msgstr "Host" + +#: ../lib/types/host.inc:62 +msgid "Host accounts (e.g. Samba)" +msgstr "Hostaccounts (z.B. Samba)" + +#: ../lib/types/host.inc:193 +#, php-format +msgid "Host count: %s" +msgstr "Anzahl Hosts: %s" + +#: ../lib/types/host.inc:94 +msgid "Host description" +msgstr "Hostbeschreibung" + +#: ../lib/modules/account.inc:96 ../lib/modules/posixAccount.inc:549 +#: ../lib/modules/posixAccount.inc:557 +msgid "Host description. If left empty host name will be used." +msgstr "Hostbeschreibung. Falls leer wird der Hostname verwendet." + +#: ../lib/modules/hostObject.inc:91 ../lib/modules/hostObject.inc:98 +#: ../lib/modules/hostObject.inc:217 +msgid "Host list" +msgstr "Hostliste" + +#: ../lib/types/host.inc:91 ../lib/types/host.inc:92 ../lib/types/bind.inc:77 +#: ../lib/modules/account.inc:91 ../lib/modules/account.inc:212 +#: ../lib/modules/windowsHost.inc:74 ../lib/modules/windowsHost.inc:94 +#: ../lib/modules/windowsHost.inc:119 ../lib/modules/windowsHost.inc:131 +#: ../lib/modules/windowsHost.inc:142 ../lib/modules/windowsHost.inc:288 +#: ../lib/modules/posixAccount.inc:115 ../lib/modules/posixAccount.inc:116 +#: ../lib/modules/posixAccount.inc:118 ../lib/modules/posixAccount.inc:375 +#: ../lib/modules/posixAccount.inc:406 ../lib/modules/posixAccount.inc:544 +#: ../lib/modules/posixAccount.inc:1422 ../lib/modules/posixAccount.inc:1844 +#: ../lib/modules/bindDLZ.inc:88 ../lib/modules/bindDLZ.inc:147 +#: ../lib/modules/bindDLZ.inc:151 ../lib/modules/bindDLZ.inc:247 +#: ../lib/modules/bindDLZ.inc:301 ../lib/modules/bindDLZ.inc:417 +#: ../lib/modules/bindDLZ.inc:477 ../lib/modules/bindDLZ.inc:504 +#: ../lib/modules/bindDLZ.inc:549 ../lib/modules/bindDLZ.inc:553 +#: ../lib/modules/bindDLZ.inc:757 ../lib/modules/bindDLZ.inc:1471 +#: ../lib/modules/bindDLZ.inc:1499 ../lib/modules/nisnetgroup.inc:153 +#: ../lib/modules/nisnetgroup.inc:481 +msgid "Host name" +msgstr "Hostname" + +#: ../lib/modules/posixAccount.inc:122 +msgid "Host name already exists!" +msgstr "Host-Name besteht schon!" + +#: ../lib/modules/windowsHost.inc:131 ../lib/modules/windowsHost.inc:132 +#: ../lib/modules/posixAccount.inc:116 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/nisnetgroup.inc:153 +msgid "" +"Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Hostname enthält ungültige Zeichen. Gültige Zeichen sind: a-z, A-Z, 0-9 " +"und .-_!" + +#: ../lib/modules/posixAccount.inc:118 +msgid "Host name in use. Selected next free host name." +msgstr "" +"Hostname wird bereits verwendet. Nächster freier Hostname wurde ausgewählt." + +#: ../lib/modules/sambaSamAccount.inc:1098 +msgid "Host name must end with $!" +msgstr "Der Hostname muss mit einem $ enden!" + +#: ../lib/modules/account.inc:92 ../lib/modules/posixAccount.inc:545 +msgid "" +"Host name of the host which should be created. Valid characters are: a-z,A-" +"Z,0-9, .-_$. Host names are always ending with $. If last character is not $ " +"it will be added. If host name is already used host name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"Hostname des zu erstellenden Hosts. Gültige Zeichen sind: a-z, A-Z, 0-9 " +"und .-_$. Hostnamen enden immer mit $. Sollte der Hostname schon in " +"Verwendung sein wird eine Zahl angehängt." + +#: ../lib/types/host.inc:53 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:96 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:227 ../lib/modules/sudoRole.inc:78 +#: ../lib/modules/sudoRole.inc:103 ../lib/modules/sudoRole.inc:165 +#: ../lib/modules/sudoRole.inc:217 ../lib/modules/sudoRole.inc:229 +#: ../lib/modules/sudoRole.inc:343 ../lib/modules/sudoRole.inc:807 +#: ../lib/modules/fixed_ip.inc:80 ../lib/modules/hostObject.inc:69 +#: ../lib/modules/hostObject.inc:79 +msgid "Hosts" +msgstr "Hosts" + +#: ../lib/modules/qmailUser.inc:352 +msgid "I am out of office." +msgstr "Ich bin derzeit nicht im Büro." + +#: ../lib/modules/posixGroup.inc:597 ../lib/modules/posixAccount.inc:106 +#: ../lib/modules/posixAccount.inc:1169 +msgid "ID is already in use" +msgstr "ID wird bereits verwendet" + +#: ../lib/modules/posixGroup.inc:595 ../lib/modules/posixGroup.inc:596 +#: ../lib/modules/posixGroup.inc:597 ../lib/modules/posixGroup.inc:719 +#: ../lib/modules/posixAccount.inc:104 ../lib/modules/posixAccount.inc:105 +#: ../lib/modules/posixAccount.inc:106 ../lib/modules/posixAccount.inc:1160 +#: ../lib/modules/posixAccount.inc:1165 ../lib/modules/posixAccount.inc:1169 +msgid "ID-Number" +msgstr "ID-Nummer" + +#: ../lib/modules/zarafaUser.inc:299 ../lib/modules/zarafaUser.inc:642 +#: ../lib/modules/zarafaUser.inc:1331 +msgid "IMAP" +msgstr "IMAP" + +#: ../lib/modules/imapAccess.inc:86 ../lib/modules/imapAccess.inc:124 +msgid "IMAP admin user" +msgstr "IMAP Administrator" + +#: ../lib/modules/imapAccess.inc:89 ../lib/modules/imapAccess.inc:131 +msgid "IMAP password input" +msgstr "IMAP-Passworteingabe" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ipHost.inc:55 +#: ../lib/modules/ipHost.inc:65 ../lib/modules/ipHost.inc:128 +#: ../lib/modules/asteriskAccount.inc:227 +#: ../lib/modules/asteriskAccount.inc:295 +#: ../lib/modules/asteriskAccount.inc:522 +#: ../lib/modules/asteriskAccount.inc:746 +#: ../lib/modules/asteriskAccount.inc:1011 +#: ../lib/modules/asteriskAccount.inc:1291 ../lib/modules/bindDLZ.inc:92 +#: ../lib/modules/bindDLZ.inc:96 ../lib/modules/bindDLZ.inc:255 +#: ../lib/modules/bindDLZ.inc:495 ../lib/modules/bindDLZ.inc:652 +#: ../lib/modules/bindDLZ.inc:1479 ../lib/modules/freeRadius.inc:84 +#: ../lib/modules/freeRadius.inc:122 ../lib/modules/freeRadius.inc:193 +#: ../lib/modules/freeRadius.inc:225 ../lib/modules/freeRadius.inc:281 +#: ../lib/modules/freeRadius.inc:537 ../lib/modules/fixed_ip.inc:106 +#: ../lib/modules/fixed_ip.inc:421 ../lib/modules/fixed_ip.inc:741 +msgid "IP address" +msgstr "IP-Adresse" + +#: ../lib/modules/ddns.inc:98 ../lib/modules/ddns.inc:112 +#: ../lib/modules/ddns.inc:121 ../lib/modules/ddns.inc:381 +#: ../lib/modules/ddns.inc:424 +msgid "IP address of the DNS server" +msgstr "IP-Adresse des DNS-Servers" + +#: ../lib/modules/asteriskAccount.inc:228 +msgid "IP address of the peer. Valid only for realtime peers." +msgstr "" +"IP-Adresse des Teilnehmers. Dies wird nur für Echtzeitteilnehmer benötigt." + +#: ../lib/modules/asteriskAccount.inc:236 +msgid "IP address or domain name of the registration server." +msgstr "IP-Adresse oder Domäne des Registrierungsservers." + +#: ../lib/modules/ipHost.inc:69 ../lib/modules/ipHost.inc:84 +#: ../lib/modules/ipHost.inc:104 ../lib/modules/ipHost.inc:251 +msgid "IP addresses" +msgstr "IP-Adressen" + +#: ../lib/modules/bindDLZ.inc:649 +msgid "IP addresses (\"A/AAAA\" records)" +msgstr "IP-Adressen (\"A/AAAA\"-Einträge)" + +#: ../lib/modules/fixed_ip.inc:119 +msgid "IP list" +msgstr "IP-Liste" + +#: ../lib/modules/customFields.inc:514 +msgid "Icon" +msgstr "Symbol" + +#: ../lib/modules/passwordSelfReset.inc:144 +#: ../lib/modules/passwordSelfReset.inc:506 +msgid "Identification method" +msgstr "Identifizierungsmethode" + +#: ../templates/masscreate.php:298 ../templates/masscreate.php:372 +msgid "Identifier" +msgstr "Bezeichner" + +#: ../lib/modules/sambaSamAccount.inc:239 +#: ../lib/modules/sambaSamAccount.inc:1532 +#: ../lib/modules/sambaSamAccount.inc:1935 +msgid "Idle time limit" +msgstr "Zeitlimit für Leerlauf" + +#: ../lib/modules/freeRadius.inc:108 ../lib/modules/freeRadius.inc:132 +#: ../lib/modules/freeRadius.inc:157 ../lib/modules/freeRadius.inc:217 +#: ../lib/modules/freeRadius.inc:240 ../lib/modules/freeRadius.inc:289 +#: ../lib/modules/freeRadius.inc:541 +msgid "Idle timeout" +msgstr "Zeitlimit für Leerlauf" + +#: ../lib/modules/qmailUser.inc:256 +msgid "" +"If account status is set to deleted, the earliest date when the mail message " +"store including all remaining content will be deleted from the filesystem." +msgstr "" +"Dies ist das früheste Datum um alle Nachrichten zu löschen wenn der " +"Kontostatus auf gelöscht gesetzt wird." + +#: ../lib/modules/customFields.inc:177 +msgid "" +"If activated then LAM will show an accordion view if there is more than one " +"group per account type." +msgstr "" +"Durch Aktivieren dieser Option zeigt LAM mehrere Gruppen pro Accounttyp als " +"Akkordeon an." + +#: ../lib/modules/ppolicyUser.inc:60 +msgid "" +"If activated then the user is forced to change his password at the next " +"login." +msgstr "" +"Wenn Sie diese Option wählen, dann muss der Benutzer sein Passwort beim " +"nächsten Login ändern." + +#: ../lib/modules/sambaSamAccount.inc:269 +msgid "If checked Unix password will also be used as Samba password." +msgstr "" +"Falls aktiviert wird das Unix-Passwort auch als Samba-Passwort verwendet." + +#: ../lib/modules/posixAccount.inc:527 +msgid "" +"If checked account will be deactivated by putting a \"!\" before the " +"encrypted password." +msgstr "" +"Falls angekreuzt wird der Account deaktiviert (es wird ein \"!\" vor das " +"verschlüsselte Passwort gesetzt)." + +#: ../lib/modules/sambaSamAccount.inc:275 +msgid "If checked no password will be used." +msgstr "Falls angekreuzt wird kein Passwort verwendet." + +#: ../lib/modules/windowsUser.inc:199 +msgid "If checked password does not expire." +msgstr "Falls angekreuzt läuft das Passwort nicht aus." + +#: ../lib/modules/sambaSamAccount.inc:281 +msgid "If checked password does not expire. (Setting X-Flag)" +msgstr "Falls angekreuzt läuft das Passwort nicht aus. (X-Flag wird gesetzt)" + +#: ../lib/modules/windowsUser.inc:196 +msgid "" +"If checked then the account is locked. You may only unlock accounts but not " +"lock them." +msgstr "" +"Falls angekreuzt, ist das Konto gesperrt. Sie können Konten entsperren aber " +"nicht sperren." + +#: ../lib/modules/windowsUser.inc:193 +msgid "If checked then the account will be deactivated." +msgstr "Falls angekreuzt, wird der Account deaktiviert." + +#: ../lib/modules/sambaSamAccount.inc:287 +msgid "If checked then the account will be deactivated. (Setting D-Flag)" +msgstr "Falls angekreuzt wird der Account deaktiviert. (D-Flag wird gesetzt)" + +#: ../lib/modules/sambaSamAccount.inc:290 +msgid "" +"If checked then the account will be locked (setting L-Flag). You usually " +"want to use this setting to unlock user accounts which were locked because " +"of failed login attempts." +msgstr "" +"Falls angekreuzt, wird der Account gesperrt (L-Flag wird gesetzt). Sie " +"können diese Einstellung verwenden, um durch falsche Passworteingaben " +"gesperrte Accounts zu entsperren." + +#: ../help/help.inc:177 +msgid "" +"If checked then the user will not be able to create new entries of this " +"account type." +msgstr "" +"Falls angekreuzt, kann der Benutzer keine neuen Einträge dieses Typs " +"erstellen." + +#: ../help/help.inc:179 +msgid "" +"If checked then the user will not be able to delete entries of this account " +"type." +msgstr "" +"Falls angekreuzt, kann der Benutzer keine Einträge dieses Typs löschen." + +#: ../lib/modules/posixGroup.inc:481 +msgid "" +"If empty GID number will be generated automaticly depending on your " +"configuration settings." +msgstr "" +"Falls leer wird die GID-Nummer automatisch auf Basis Ihrer " +"Konfigurationseinstellungen generiert." + +#: ../lib/modules/qmailUser.inc:236 +msgid "If empty GID number will be generated automaticly." +msgstr "Falls leer wird die GID-Nummer automatisch generiert." + +#: ../lib/modules/qmailUser.inc:232 ../lib/modules/posixAccount.inc:462 +msgid "If empty UID number will be generated automaticly." +msgstr "Falls leer wird die UID-Nummer automatisch generiert." + +#: ../lib/modules/ppolicy.inc:125 +msgid "" +"If enabled the user will not be allowed to login after there have been a " +"specified number of consecutive failed login attempts." +msgstr "" +"Durch die Aktivierung dieser Option werden Benutzer gesperrt, die eine " +"bestimmte Anzahl falscher Anmeldeversuche in Folge erreicht haben." + +#: ../help/help.inc:127 +msgid "" +"If enabled then LAM will use user and password that is provided by the web " +"server via HTTP authentication." +msgstr "" +"Wenn Sie diese Option aktivieren, dann verwendet LAM den Benutzer und das " +"Passwort, die vom Webserver über die HTTP-Authentifizierung geliefert werden." + +#: ../help/help.inc:104 +msgid "" +"If enabled then the default language will be enforced and cannot be chosen " +"by the user." +msgstr "" +"Damit können Sie die Standardsprache erzwingen, der Benutzer hat dann keine " +"Wahlmöglichkeit mehr." + +#: ../lib/modules/ppolicy.inc:129 +msgid "" +"If enabled users must change their passwords when they first login after a " +"password is set or reset by the administrator." +msgstr "" +"Dies legt fest, ob Benutzer das Passwort beim ersten Login ändern müssen, " +"falls es vorher durch einen Administrator geändert wurde." + +#: ../lib/modules/asteriskAccount.inc:216 +msgid "" +"If registration context is specified, Asterisk will dynamically create and " +"destroy a NoOp priority 1 extension for a given peer who registers or " +"unregisters with Asterisk." +msgstr "" +"Wenn ein Registrierungskontext angegeben wurde, erstellt und löscht Asterisk " +"dynamisch eine NoOp-Erweiterung mit Priorität 1 für den Teilnehmer der sich " +"an Asterisk an-/abmeldet." + +#: ../lib/modules/sambaDomain.inc:110 +msgid "If set then users need to login to change their password." +msgstr "" +"Falls aktiviert, dann müssen sich Benutzer zur Passwortänderung anmelden." + +#: ../lib/modules/sambaSamAccount.inc:272 +msgid "If set to \"true\" Unix password will also be used as Samba password." +msgstr "" +"Falls auf \"true\" gesetzt wird das Unix-Passwort auch als Samba-Passwort " +"verwendet." + +#: ../lib/modules/sambaSamAccount.inc:293 +msgid "If set to \"true\" account will be deactivated. (Setting D-Flag)" +msgstr "" +"Falls auf \"true\" gesetzt wird der Account deaktiviert. (D-Flag wird " +"gesetzt)" + +#: ../lib/modules/sambaSamAccount.inc:278 +msgid "If set to \"true\" no password will be used." +msgstr "Falls auf \"true\" gesetzt wird kein Passwort verwendet." + +#: ../lib/modules/sambaSamAccount.inc:284 +msgid "If set to \"true\" password does not expire. (Setting X-Flag)" +msgstr "" +"Falls auf \"true\" gesetzt läuft das Passwort nicht aus. (X-Flag wird " +"gesetzt)" + +#: ../lib/modules/qmailGroup.inc:197 +msgid "" +"If set to true then all incomming mails needs to come from a member of the " +"list." +msgstr "" +"Wenn Sie diese Option aktivieren dann dürfen Emails nur von Mitgliedern der " +"Liste geschickt werden." + +#: ../lib/modules/customFields.inc:125 +msgid "" +"If the LDAP attribute has no value then the checkbox is set to this value." +msgstr "" +"Falls das LDAP-Attribut nicht gesetzt ist, wird die Checkbox auf diesen Wert " +"gesetzt." + +#: ../lib/modules/zarafaUser.inc:97 +msgid "" +"If the mailbox size reaches the soft quota limit, the user will not be able " +"to send email until the size of the mailbox is reduced." +msgstr "" +"Der Benutzer kann bei Erreichen des weichen Quotalimits keine EMails mehr " +"versenden. Nach Unterschreitung des Limits wird der Versand wieder aktiviert." + +#: ../lib/modules/passwordSelfReset.inc:149 +msgid "" +"If the user has a Samba 3 extension then the Samba password will also be " +"set. Otherwise, no action is taken." +msgstr "" +"Wenn der Benutzer eine Samba3-Erweiterung besitzt, dann wird das Samba3-" +"Passwort ebenfalls gesetzt. Ansonsten erfolgt keine Aktion." + +#: ../lib/modules/windowsUser.inc:145 ../lib/modules/windowsUser.inc:149 +msgid "If the user has multiple telephone numbers then please enter it here." +msgstr "Bitte tragen Sie hier etwaige zusätzliche Telefonnummern ein." + +#: ../lib/modules/pykotaPrinter.inc:120 ../lib/modules/pykotaPrinter.inc:124 +msgid "" +"If this entry should be a printer group then you can set the member names " +"here." +msgstr "" +"Wenn dieser Eintrag eine Druckergruppe sein soll dann können Sie hier die " +"Mitglieder eintragen." + +#: ../lib/modules/qmailGroup.inc:229 +msgid "" +"If this is set to true then an incomming mail needs to be approved by the " +"sender." +msgstr "" +"Wenn Sie diese Option aktivieren dann müssen alle Emails vom Absender " +"bestätigt werden." + +#: ../lib/modules/qmailGroup.inc:144 ../lib/modules/qmailGroup.inc:148 +msgid "" +"If you enter one or more email addresses then mail delivery errors are " +"forwarded to these addresses instead of the sender of the original mail." +msgstr "" +"Wenn Sie hier eine oder mehrere Email-Adressen eintragen dann werden " +"Zustellfehler an diese Adressen geschickt und nicht an den Absender der " +"Ursprungsmail." + +#: ../lib/modules/sambaSamAccount.inc:332 +msgid "" +"If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" +"Wenn Sie das Feld leer lassen wird LAM folgenden Wert einfügen: uidNumber*2 " +"+ sambaAlgorithmicRidBase." + +#: ../lib/modules/zarafaServer.inc:85 +msgid "" +"If you run Zarafa behind a reverse proxy then you can specify the server URL " +"here (e.g. \"https://zproxy.example.com:237/z1\")." +msgstr "" +"Falls Sie Zarafa hinter einem Reverse-Proxy betreiben, können Sie hier die " +"URL angeben (z.B. \"https://zproxy.example.com:237/z1\")." + +#: ../lib/modules/passwordSelfReset.inc:141 +msgid "" +"If you select this option then the user is only authenticated by his email " +"address. LAM Pro will not ask for the answer to the security question. " +"Please handle with care." +msgstr "" +"Falls Sie diese Option wählen, dann wird der Benutzer nur über seine email-" +"Adresse authentifiziert. LAM Pro wird keine Sicherheitsfrage stellen. Bitte " +"nutzen Sie diese Option mit Bedacht." + +#: ../lib/modules/heimdalKerberos.inc:131 +msgid "If you set this option then the user cannot request TGT-based tickets." +msgstr "" +"Wenn Sie diese Option wählen, dann kann der Benutzer keine TGT-basierte " +"Tickets anfordern." + +#: ../lib/modules/mitKerberos.inc:175 ../lib/modules/heimdalKerberos.inc:149 +msgid "If you set this option then the user cannot request any tickets." +msgstr "" +"Wenn Sie diese Option wählen, dann kann der Benutzer gar keine Tickets " +"anfordern." + +#: ../lib/modules/mitKerberos.inc:163 ../lib/modules/heimdalKerberos.inc:134 +msgid "" +"If you set this option then the user cannot request forwardable tickets." +msgstr "" +"Wenn Sie diese Option wählen, dann kann der Benutzer keine weiterleitbaren " +"Tickets anfordern." + +#: ../lib/modules/mitKerberos.inc:160 ../lib/modules/heimdalKerberos.inc:143 +msgid "If you set this option then the user cannot request post-dated tickets." +msgstr "" +"Wenn Sie diese Option wählen, dann kann der Benutzer keine vordatierten " +"Tickets anfordern." + +#: ../lib/modules/mitKerberos.inc:169 ../lib/modules/heimdalKerberos.inc:137 +msgid "If you set this option then the user cannot request proxiable tickets." +msgstr "" +"Wenn Sie diese Option wählen, dann kann der Benutzer keine Proxy-Tickets " +"anfordern." + +#: ../lib/modules/mitKerberos.inc:166 ../lib/modules/heimdalKerberos.inc:140 +msgid "If you set this option then the user cannot request renewable tickets." +msgstr "" +"Wenn Sie diese Option wählen, dann kann der Benutzer keine erneuerbaren " +"Tickets anfordern." + +#: ../lib/modules/mitKerberos.inc:187 ../lib/modules/heimdalKerberos.inc:146 +msgid "If you set this option then the user cannot request service tickets." +msgstr "" +"Wenn Sie diese Option wählen, dann kann der Benutzer keine Service-Tickets " +"anfordern." + +#: ../lib/modules/mitKerberos.inc:184 ../lib/modules/sambaSamAccount.inc:296 +#: ../lib/modules/windowsUser.inc:215 ../lib/modules/heimdalKerberos.inc:128 +#: ../help/help.inc:207 +msgid "" +"If you set this option then the user has to change his password at the next " +"login." +msgstr "" +"Wenn Sie diese Option wählen, dann muss der Benutzer sein Passwort beim " +"nächsten Login ändern." + +#: ../lib/modules/mitKerberos.inc:181 +msgid "" +"If you set this option then the user must preauthenticate himself using a " +"hardware device." +msgstr "" +"Wenn Sie diese Option wählen, dann muss sich der Benutzer mit Hilfe " +"separater Hardwarevorauthentifizieren." + +#: ../lib/modules/mitKerberos.inc:178 ../lib/modules/heimdalKerberos.inc:152 +msgid "If you set this option then the user must preauthenticate himself." +msgstr "" +"Wenn Sie diese Option wählen, dann muss sich der Benutzer " +"vorauthentifizieren." + +#: ../lib/modules/mitKerberos.inc:190 ../lib/modules/heimdalKerberos.inc:155 +msgid "" +"If you set this option then this account is marked as password change " +"service." +msgstr "" +"Wenn Sie diese Option wählen, dann ist der Account als " +"Passwortänderungsservice markiert." + +#: ../lib/modules/selfRegistration.inc:87 +msgid "" +"If you use the object class \"inetOrgPerson\" and do not provide the \"cn\" " +"attribute then LAM will set it to the user name value." +msgstr "" +"Falls Sie die Objektklasse \"inetOrgPerson\" verwenden und das Attribut \"cn" +"\" nicht angeben, dann setzt LAM es auf den Wert des Benutzernamens." + +#: ../help/help.inc:106 +msgid "" +"If you want to change the current preferences password, please enter it here." +msgstr "" +"Wenn Sie das aktuelle Profilpasswort ändern wollen, geben Sie es hier ein." + +#: ../help/help.inc:141 +msgid "" +"If you want to change your master configuration password, please enter it " +"here." +msgstr "" +"Wenn Sie das aktuelle Hauptpasswort ändern wollen, geben Sie es hier ein." + +#: ../lib/modules/sambaGroupMapping.inc:151 +msgid "If you want to use a well known RID you can select a well known group." +msgstr "" +"Wenn Sie eine vordefinierte RID verwenden wollen, wählen Sie eine der " +"vordefinierten Gruppen." + +#: ../help/help.inc:116 +msgid "" +"If your server runs on another port then add a comma and the port number " +"after the server." +msgstr "" +"Falls Ihr Server auf einem anderen Port hört, dann fügen Sie ein Komma und " +"die Portnummer nach dem Servernamen hinzu." + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:49 +msgid "Image not available" +msgstr "Bild nicht verfügbar" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:292 +#: ../templates/3rdParty/pla/htdocs/import.php:45 +#: ../templates/3rdParty/pla/htdocs/import_form.php:19 +msgid "Import" +msgstr "Import" + +#: ../templates/pdfedit/pdfmain.php:215 ../templates/pdfedit/pdfmain.php:216 +#: ../help/help.inc:210 +msgid "Import PDF structures" +msgstr "PDF-Strukturen importieren" + +#: ../templates/config/mainmanage.php:344 +msgid "Import from server" +msgstr "Vom Server importieren" + +#: ../templates/profedit/profilemain.php:203 +#: ../templates/profedit/profilemain.php:204 ../help/help.inc:192 +msgid "Import profiles" +msgstr "Profile importieren" + +#: ../templates/pdfedit/pdfmain.php:109 +#: ../templates/profedit/profilemain.php:124 +msgid "Import successful" +msgstr "Import war erfolgreich" + +#: ../templates/config/mainmanage.php:189 +msgid "Imported certificate from server." +msgstr "Zertifikat wurde vom Server importiert." + +#: ../templates/config/mainmanage.php:346 +msgid "Imports the certificate directly from your LDAP server." +msgstr "Damit importieren Sie die Zertifikate direkt vom LDAP-Server." + +#: ../lib/modules/pykotaPrinter.inc:108 +msgid "" +"In passthrough mode, users are allowed to print without any impact on their " +"quota or account balance." +msgstr "" +"Im Durchlaufmodus können Benutzer ohne Veränderung ihres Kontostandes oder " +"Quotas drucken." + +#: ../lib/modules/fixed_ip.inc:115 +msgid "Inactive hosts will not be able to get an address from the DHCP server." +msgstr "Inaktive Hosts bekommen keine Adresse vom DHCP-Server." + +#: ../templates/3rdParty/pla/htdocs/export_form.php:87 +msgid "Include system attributes" +msgstr "Systemattribute miteinbeziehen" + +#: ../lib/tools/serverInfo.inc:53 +msgid "Information about the LDAP server." +msgstr "Informationen über den LDAP-Server." + +#: ../lib/modules/sambaSamAccount.inc:234 +#: ../lib/modules/sambaSamAccount.inc:361 +#: ../lib/modules/sambaSamAccount.inc:1518 +#: ../lib/modules/sambaSamAccount.inc:1930 +msgid "Inherit client startup configuration" +msgstr "Client-Startkonfiguration verwenden" + +#: ../templates/schema/schema.php:396 ../templates/schema/schema.php:417 +msgid "Inherited from" +msgstr "Geerbt von" + +#: ../templates/schema/schema.php:157 ../templates/schema/schema.php:353 +msgid "Inherits from" +msgstr "Erbt von" + +#: ../lib/modules/pykotaUser.inc:249 +msgid "Initial payment" +msgstr "Initialzahlung" + +#: ../lib/modules/sambaSamAccount.inc:235 +#: ../lib/modules/sambaSamAccount.inc:364 +#: ../lib/modules/sambaSamAccount.inc:1520 +#: ../lib/modules/sambaSamAccount.inc:1931 +msgid "Initial program" +msgstr "Startprogramm" + +#: ../lib/modules/windowsUser.inc:132 ../lib/modules/windowsUser.inc:302 +#: ../lib/modules/windowsUser.inc:503 ../lib/modules/windowsUser.inc:704 +#: ../lib/modules/windowsUser.inc:1599 ../lib/modules/inetOrgPerson.inc:165 +#: ../lib/modules/inetOrgPerson.inc:175 ../lib/modules/inetOrgPerson.inc:324 +#: ../lib/modules/inetOrgPerson.inc:631 ../lib/modules/inetOrgPerson.inc:858 +#: ../lib/modules/inetOrgPerson.inc:1212 ../lib/modules/inetOrgPerson.inc:1215 +#: ../lib/modules/inetOrgPerson.inc:1951 ../lib/modules/inetOrgPerson.inc:2739 +#: ../lib/modules/inetOrgPerson.inc:3626 ../lib/modules/inetOrgPerson.inc:3659 +msgid "Initials" +msgstr "Initialen" + +#: ../templates/serverInfo.php:282 ../templates/serverInfo.php:368 +msgid "Initiated" +msgstr "Initiiert" + +#: ../lib/modules/quota.inc:57 ../lib/modules/systemQuotas.inc:105 +msgid "Inode hard quota" +msgstr "Hartes Inode-Quota" + +#: ../lib/modules/quota.inc:57 ../lib/modules/quota.inc:58 +#: ../lib/modules/systemQuotas.inc:105 ../lib/modules/systemQuotas.inc:106 +msgid "" +"Inode hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Hartes Inode-Limit enthält ungültige Zeichen. Nur natürliche Zahlen sind " +"erlaubt." + +#: ../lib/modules/quota.inc:61 ../lib/modules/systemQuotas.inc:109 +msgid "Inode quota" +msgstr "Inode-Quota" + +#: ../lib/modules/quota.inc:55 ../lib/modules/systemQuotas.inc:103 +msgid "Inode soft quota" +msgstr "Weiches Inode-Quota" + +#: ../lib/modules/quota.inc:55 ../lib/modules/quota.inc:56 +#: ../lib/modules/systemQuotas.inc:103 ../lib/modules/systemQuotas.inc:104 +msgid "" +"Inode soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Weiches Inode-Limit enthält ungültige Zeichen. Nur natürliche Zahlen sind " +"erlaubt." + +#: ../lib/modules/quota.inc:61 ../lib/modules/quota.inc:62 +#: ../lib/modules/systemQuotas.inc:109 ../lib/modules/systemQuotas.inc:110 +msgid "Inode soft quota must be smaller than inode hard quota." +msgstr "Das weiche Inode-Quota muss kleiner sein als das harte Inode-Quota." + +#: ../templates/selfService/adminMain.php:653 +msgid "Input fields" +msgstr "Eingabefelder" + +#: ../lib/modules/asteriskAccount.inc:155 +#: ../lib/modules/asteriskAccount.inc:277 +#: ../lib/modules/asteriskAccount.inc:391 +#: ../lib/modules/asteriskAccount.inc:652 +#: ../lib/modules/asteriskAccount.inc:993 +#: ../lib/modules/asteriskAccount.inc:1255 +msgid "Insecure" +msgstr "Unsicher" + +#: ../lib/modules/sambaSamAccount.inc:95 +msgid "Inserted user or group name in home path." +msgstr "Benutzer- oder Gruppenname wurde in Heimatverzeichnis eingefügt." + +#: ../lib/modules/sambaSamAccount.inc:101 +msgid "Inserted user or group name in logon script." +msgstr "Benutzer- oder Gruppenname wurde in Anmeldeskript eingefügt." + +#: ../lib/modules/sambaSamAccount.inc:98 +msgid "Inserted user or group name in profile path." +msgstr "Benutzer- oder Gruppenname wurde in Profilpfad eingefügt." + +#: ../lib/modules/fixed_ip.inc:475 +msgid "Invalid MAC address." +msgstr "Ungültige MAC-Adresse." + +#: ../templates/massBuildAccounts.php:201 +msgid "Invalid RDN attribute!" +msgstr "Ungültiges RDN-Attribut!" + +#: ../templates/3rdParty/pla/htdocs/rename.php:42 +msgid "Invalid RDN value" +msgstr "Ungültiger RDN Wert" + +#: ../lib/modules/fixed_ip.inc:484 +msgid "Invalid description." +msgstr "Ungültige Beschreibung." + +#: ../templates/3rdParty/pla/lib/import_functions.php:560 +msgid "Invalid entry" +msgstr "Ungültiger Eintrag" + +#: ../lib/modules/selfRegistration.inc:121 +msgid "Invalid format for the specification of additional attributes." +msgstr "Ungültiges Format für die Definition weiterer Attribute." + +#: ../lib/modules/imapAccess.inc:185 +msgid "Invalid password for IMAP admin or other problem occured." +msgstr "Das IMAP-Passwort ist falsch oder anderer Fehler ist aufgetreten." + +#: ../lib/modules/ldapPublicKey.inc:546 ../lib/modules/inetOrgPerson.inc:3354 +#: ../lib/modules/customFields.inc:1403 +msgid "Invalid request" +msgstr "Ungültige Anfrage" + +#: ../templates/config/mainmanage.php:198 +msgid "Invalid server name. Please enter \"server\" or \"server:port\"." +msgstr "" +"Ungültiger Servername, bitte geben Sie \"server\" oder \"server:port\" ein." + +#: ../lib/modules/passwordSelfReset.inc:914 +#: ../lib/modules/passwordSelfReset.inc:1136 +#, php-format +msgid "Invalid value in field \"%s\"." +msgstr "Ungültiger Wert im Feld \"%s\"." + +#: ../lib/modules/kolabUser.inc:117 ../lib/modules/kolabUser.inc:124 +#: ../lib/modules/kolabUser.inc:186 ../lib/modules/kolabUser.inc:230 +#: ../lib/modules/kolabUser.inc:315 ../lib/modules/kolabUser.inc:756 +#: ../lib/modules/kolabUser.inc:885 +msgid "Invitation policy" +msgstr "Einladungsregeln" + +#: ../lib/modules/kolabUser.inc:128 +msgid "Invitation policy list" +msgstr "Liste der Einladungsregeln" + +#: ../lib/modules/sambaSamAccount.inc:570 +msgid "Islamabad, Karachi" +msgstr "Islamabad, Karachi" + +#: ../lib/modules/range.inc:137 +msgid "It is not possible to delete all ranges." +msgstr "Sie können nicht alle Adressbereiche löschen." + +#: ../lib/modules/posixGroup.inc:595 ../lib/modules/posixAccount.inc:105 +msgid "" +"It is possible that this ID-number is reused. This can cause several " +"problems because files with old permissions might still exist. To avoid this " +"warning set maxUID to a higher value." +msgstr "" +"Es ist möglich, dass die ID-Nummer wiederverwendet wird. Das kann einige " +"Probleme verursachen weil Dateien mit alten Zugriffsrechten existieren " +"können. Zur Vermeidung dieser Warnung können Sie die maximale UID-Nummer in " +"den Optionen erhöhen." + +#: ../lib/modules/pykotaUser.inc:284 ../lib/modules/pykotaUser.inc:387 +#: ../lib/modules/pykotaUser.inc:1021 +msgid "Job history" +msgstr "Jobhistorie" + +#: ../lib/modules/pykotaUser.inc:156 ../lib/modules/pykotaUser.inc:289 +#: ../lib/modules/pykotaUser.inc:295 ../lib/modules/pykotaUser.inc:327 +msgid "Job suffix" +msgstr "Job-Suffix" + +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:165 +#: ../lib/modules/inetOrgPerson.inc:229 ../lib/modules/inetOrgPerson.inc:340 +#: ../lib/modules/inetOrgPerson.inc:604 ../lib/modules/inetOrgPerson.inc:650 +#: ../lib/modules/inetOrgPerson.inc:654 ../lib/modules/inetOrgPerson.inc:1471 +#: ../lib/modules/inetOrgPerson.inc:1474 ../lib/modules/inetOrgPerson.inc:1924 +#: ../lib/modules/inetOrgPerson.inc:2750 ../lib/modules/inetOrgPerson.inc:3608 +#: ../lib/modules/inetOrgPerson.inc:3654 +msgid "Job title" +msgstr "Berufsbezeichnung" + +#: ../lib/modules/inetOrgPerson.inc:651 ../lib/modules/inetOrgPerson.inc:655 +msgid "Job title of user: President, department manager, ..." +msgstr "Berufsbezeichnung des Benutzers: Präsident, Abteilungsleiter, ..." + +#: ../lib/lists.inc:297 +msgid "Jump 10 pages backward" +msgstr "Springe 10 Seiten zurück" + +#: ../lib/lists.inc:317 +msgid "Jump 10 pages forward" +msgstr "Springe 10 Seiten vorwärts" + +#: ../templates/schema/schema.php:255 +msgid "Jump to a matching rule" +msgstr "Wechseln der Matching-Regel" + +#: ../templates/schema/schema.php:114 +msgid "Jump to an attribute type" +msgstr "Wechseln des Attributtyps" + +#: ../templates/schema/schema.php:308 ../templates/schema/schema.php:358 +#: ../templates/schema/schema.php:373 +msgid "Jump to an object class" +msgstr "Wechseln der Objektklasse" + +#: ../lib/lists.inc:292 +msgid "Jump to first page" +msgstr "Springe zur ersten Seite" + +#: ../lib/lists.inc:322 +msgid "Jump to last page" +msgstr "Springe zur letzten Seite" + +#: ../lib/modules/mitKerberos.inc:94 ../lib/modules/heimdalKerberos.inc:81 +msgid "Kerberos" +msgstr "Kerberos" + +#: ../lib/modules/kolabGroup.inc:74 ../lib/modules/kolabUser.inc:80 +msgid "Kolab" +msgstr "Kolab" + +#: ../lib/modules/kolabSharedFolder.inc:82 +msgid "Kolab shared folder" +msgstr "Kolab gemeinsamer Ordner" + +#: ../lib/types/kolabSharedFolderType.inc:53 +msgid "Kolab shared folders" +msgstr "Kolab gemeinsame Ordner" + +#: ../lib/types/kolabSharedFolderType.inc:62 +msgid "Kolab shared folders (e.g. mail folders)" +msgstr "Kolab gemeinsame Ordner (z.B. email-Ordner)" + +#: ../lib/modules/posixGroup.inc:517 +msgid "" +"LAM checks if the entered group name and GID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique group names or " +"GIDs." +msgstr "" +"LAM prüft ob der Gruppenname und die GID eindeutig sind. Hier können Sie " +"einen alternativen LDAP-Suffix angeben, der zur Duplikatsuche verwendet " +"wird. Standardmäßig wird der Suffix des Accounttyps verwendet. Sie müssen " +"dies nur ändern falls Sie mehrere Serverprofile mit unterschiedlichen OUs " +"verwenden und eindeutige Gruppennamen und GIDs benötigen." + +#: ../lib/modules/posixAccount.inc:490 +msgid "" +"LAM checks if the entered user name and UID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique user names or " +"UIDs." +msgstr "" +"LAM prüft ob der Benutzername und die UID eindeutig sind. Hier können Sie " +"einen alternativen LDAP-Suffix angeben, der zur Duplikatsuche verwendet " +"wird. Standardmäßig wird der Suffix des Accounttyps verwendet. Sie müssen " +"dies nur ändern falls Sie mehrere Serverprofile mit unterschiedlichen OUs " +"verwenden und eindeutige Benutzernamen und UIDs benötigen." + +#: ../templates/login.php:265 ../templates/config/index.php:85 +msgid "LAM configuration" +msgstr "LAM-Einstellungen" + +#: ../templates/massBuildAccounts.php:239 +msgid "LAM has checked your input and is now ready to create the accounts." +msgstr "LAM hat Ihre Eingaben überprüft und kann die Accounts nun erstellen." + +#: ../lib/modules/posixGroup.inc:505 ../lib/modules/posixAccount.inc:458 +#: ../lib/modules/inetOrgPerson.inc:835 ../lib/modules/customFields.inc:137 +msgid "" +"LAM supports CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 and SMD5 to generate the " +"hash value of passwords. SSHA and CRYPT are the most common but CRYPT does " +"not support passwords greater than 8 letters. We do not recommend to use " +"plain text passwords." +msgstr "" +"LAM unterstützt die Verfahren CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 und SMD5 " +"um die Passwort-Hashes zu generieren. SSHA und CRYPT sind am weitesten " +"verbreitet aber CRYPT unterstützt maximal 8 Zeichen. Wir raten davon ab " +"Klartextpasswörter zu verwenden." + +#: ../templates/tests/index.php:50 +msgid "LAM tests" +msgstr "LAM-Tests" + +#: ../lib/modules/imapAccess.inc:128 +msgid "LAM user password" +msgstr "LAM-Benutzerpasswort" + +#: ../templates/massDoUpload.php:132 +#, php-format +msgid "LAM was unable to create account %s! An LDAP error occured." +msgstr "LAM konnte den Account %s nicht anlegen! Ein LDAP-Fehler trat auf." + +#: ../lib/modules/sambaGroupMapping.inc:603 +msgid "LAM was unable to find a Samba 3 domain with this name!" +msgstr "LAM konnte keine Samba 3 Domäne mit diesem Namen finden!" + +#: ../lib/modules/sambaSamAccount.inc:118 +msgid "LAM was unable to find a domain with this name!" +msgstr "LAM konnte keine Domäne mit diesem Namen finden!" + +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/windowsUser.inc:1457 +msgid "LAM was unable to find a group with this name!" +msgstr "LAM konnte keine Gruppe mit diesem Namen finden!" + +#: ../lib/modules/posixAccount.inc:2336 ../lib/modules/posixAccount.inc:2397 +#: ../lib/modules/windowsUser.inc:1543 ../lib/modules/groupOfNamesUser.inc:455 +#, php-format +msgid "LAM was unable to modify group memberships for group: %s" +msgstr "LAM konnte die Gruppenzugehörigkeiten für Gruppe %s nicht ändern." + +#: ../lib/modules/organizationalRoleUser.inc:397 +#, php-format +msgid "LAM was unable to modify memberships for role: %s" +msgstr "LAM konnte die Rollenzugehörigkeiten für Rolle %s nicht ändern." + +#: ../lib/modules/posixGroup.inc:521 ../lib/modules/posixAccount.inc:498 +msgid "" +"LAM will automatically suggest UID/GID numbers. You can either use a fixed " +"range of numbers or an LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "" +"LAM schlägt automatisch UID/GID-Nummern vor. Sie können entweder einen " +"festen Nummernkreis festlegen oder einen LDAP-Eintrag mit der Objektklasse " +"\"sambaUnixIdPool\" verwenden." + +#: ../help/help.inc:219 +msgid "LAM will search for accounts in this part of the LDAP tree." +msgstr "LAM wird innerhalb dieses LDAP-Astes nach Objekten suchen." + +#: ../lib/modules/posixAccount.inc:437 +msgid "" +"LAM will suggest a user name based on e.g. first and last name. Here you can " +"specify the suggestion. %sn% will be replaced by the last name. @givenname@ " +"will be replaced by the first character of first name. Only attributes of " +"tab Personal may be used." +msgstr "" +"LAM schlägt einen Benutzernamen z.B. auf Basis Vor- und Nachname vor. Hier " +"können Sie der Vorschlag editieren. %sn% wird durch den Nachnamen ersetzt. " +"@givenname@ wird durch den ersten Buchstaben des Vornamens ersetzt. Es " +"können nur Attribute des Tabs Persönlich verwendet werden." + +#: ../help/help.inc:221 +msgid "" +"LAM will use this LDAP DN and password to search for accounts. It is " +"sufficient to specify an account with read rights. If nothing is inserted " +"then LAM will try to connect anonymously." +msgstr "" +"LAM verwendet diesen LDAP DN und Passwort zur Suche nach Objekten. Es " +"reicht, wenn das Konto Lesezugriff besitzt. Wenn Sie nichts angeben, wird " +"versucht eine anonyme Verbindung aufzubauen." + +#: ../lib/modules/qmailUser.inc:57 +msgid "LDAP + program" +msgstr "LDAP + Programm" + +#: ../templates/config/confmodules.php:97 ../templates/config/confmain.php:127 +#: ../templates/config/moduleSettings.php:96 +#: ../templates/config/conftypes.php:115 +msgid "LDAP Account Manager Configuration" +msgstr "LDAP Account Manager Einstellungen" + +#: ../templates/multiEdit.php:198 ../templates/config/conftypes.php:407 +msgid "LDAP Suffix is invalid!" +msgstr "LDAP-Suffix ist ungültig!" + +#: ../templates/serverInfo.php:182 +msgid "LDAP entries" +msgstr "LDAP Einträge" + +#: ../lib/modules/qmailGroup.inc:173 ../lib/modules/qmailGroup.inc:177 +msgid "LDAP entries that are allowed to send to this list." +msgstr "LDAP-Einträge, die an diese Liste senden dürfen." + +#: ../lib/modules/qmailGroup.inc:157 ../lib/modules/qmailGroup.inc:161 +msgid "LDAP entries that are member of this list." +msgstr "LDAP-Einträge, die Mitglieder dieser Liste sind." + +#: ../lib/modules/qmailGroup.inc:165 ../lib/modules/qmailGroup.inc:169 +msgid "LDAP entries that moderate this list (e.g. approve mails)." +msgstr "LDAP-Einträge, die diese Liste moderieren (z.B. Emails genehmigen)." + +#: ../templates/login.php:642 ../lib/account.inc:1204 +msgid "LDAP error, server says:" +msgstr "LDAP-Fehler, der Server meldet:" + +#: ../templates/multiEdit.php:115 ../templates/config/confmain.php:438 +#: ../help/help.inc:271 +msgid "LDAP filter" +msgstr "LDAP-Filter" + +#: ../lib/modules/qmailGroup.inc:189 ../lib/modules/qmailGroup.inc:193 +msgid "" +"LDAP filter to specify allowed senders of this list (e.g. " +"\"((objectclass=qmailUser)(employeeType=manager))\")." +msgstr "" +"LDAP-Filter um die erlaubten Absender für diese Liste zu definieren (z.B. " +"\"((objectclass=qmailUser)(employeeType=Manager))\")." + +#: ../lib/modules/qmailGroup.inc:181 ../lib/modules/qmailGroup.inc:185 +msgid "" +"LDAP filter to specify members of this list (e.g. \"((objectclass=qmailUser)" +"(employeeType=accountant))\")." +msgstr "" +"LDAP-Filter um die Mitglieder dieser Liste zu definieren (z.B. " +"\"((objectclass=qmailUser)(employeeType=Manager))\")." + +#: ../lib/modules.inc:1336 +msgid "LDAP operation successful." +msgstr "LDAP-Operation war erfolgreich." + +#: ../templates/selfService/adminMain.php:432 +msgid "LDAP password" +msgstr "LDAP-Passwort" + +#: ../templates/3rdParty/pla/lib/functions.php:1894 +msgid "LDAP said" +msgstr "LDAP meldet" + +#: ../templates/config/confmain.php:415 ../help/help.inc:122 +msgid "LDAP search" +msgstr "LDAP-Suche" + +#: ../templates/selfService/adminMain.php:427 ../help/help.inc:222 +msgid "LDAP search attribute" +msgstr "LDAP-Suchattribut" + +#: ../lib/account.inc:796 +msgid "LDAP search failed! Please check your preferences." +msgstr "LDAP-Suche fehlgeschlagen! Bitte überprüfen Sie die Einstellungen." + +#: ../templates/config/confmain.php:253 ../help/help.inc:124 +msgid "LDAP search limit" +msgstr "LDAP-Suchlimit" + +#: ../templates/login.php:460 +msgid "LDAP server" +msgstr "LDAP-Server" + +#: ../lib/account.inc:787 +msgid "LDAP sizelimit exceeded, not all entries are shown." +msgstr "" +"LDAP Größenbeschränkung überschritten, es werden nicht alle Einträge " +"angezeigt." + +#: ../templates/multiEdit.php:82 ../templates/config/confmain.php:434 +#: ../templates/config/conftypes.php:253 +#: ../templates/selfService/adminMain.php:421 +#: ../templates/profedit/profilepage.php:202 ../help/help.inc:71 +#: ../help/help.inc:218 ../help/help.inc:269 +msgid "LDAP suffix" +msgstr "LDAP-Suffix" + +#: ../templates/massDoUpload.php:86 +msgid "LDAP upload in progress. Please wait." +msgstr "LDAP-Upload läuft. Bitte warten." + +#: ../templates/selfService/adminMain.php:429 +msgid "LDAP user" +msgstr "LDAP-Benutzer" + +#: ../help/help.inc:220 +msgid "LDAP user and password" +msgstr "LDAP-Benutzer und Passwort" + +#: ../templates/serverInfo.php:109 +msgid "LDAP version" +msgstr "LDAP-Version" + +#: ../templates/3rdParty/pla/lib/export_functions.php:442 +msgid "LDIF Export" +msgstr "LDIF-Export" + +#: ../templates/multiEdit.php:443 +msgid "LDIF file" +msgstr "LDIF-Datei" + +#: ../templates/3rdParty/pla/lib/import_functions.php:149 +#: ../templates/3rdParty/pla/htdocs/import.php:71 +msgid "LDIF import" +msgstr "LDIF-Import" + +#: ../templates/3rdParty/pla/lib/import_functions.php:170 +msgid "LDIF import only supports version 1" +msgstr "Der LDIF-Import unterstützt nur Version 1." + +#: ../lib/modules/customFields.inc:88 ../lib/modules/customFields.inc:513 +#: ../lib/modules/customFields.inc:1051 ../lib/modules/customFields.inc:1705 +#: ../lib/modules/customFields.inc:2960 +msgid "Label" +msgstr "Beschriftung" + +#: ../templates/tests/lamdaemonTest.php:201 +msgid "" +"Lamdaemon path does not end with \".pl\". Did you enter the full path to the " +"script?" +msgstr "" +"Der Pfad für das lamdaemon-Skript endet nicht auf \".pl\". Haben Sie den " +"vollen Pfad zum Skript angegeben?" + +#: ../templates/tests/lamdaemonTest.php:185 +msgid "Lamdaemon server and path" +msgstr "Lamdaemon Server und Pfad" + +#: ../templates/config/confmain.php:334 +msgid "Lamdaemon settings" +msgstr "Lamdaemon-Einstellungen" + +#: ../templates/tests/lamdaemonTest.php:135 +msgid "Lamdaemon successfully run." +msgstr "Lamdaemon konnte erfolgreich ausgeführt werden." + +#: ../templates/tests/index.php:52 ../templates/tests/lamdaemonTest.php:52 +#: ../lib/tools/tests.inc:110 +msgid "Lamdaemon test" +msgstr "Lamdaemon-Test" + +#: ../templates/tests/lamdaemonTest.php:291 +msgid "Lamdaemon test finished." +msgstr "Der Lamdaemon-Test ist abgeschlossen." + +#: ../templates/tests/lamdaemonTest.php:273 +msgid "Lamdaemon version" +msgstr "Lamdaemon-Version" + +#: ../templates/tests/lamdaemonTest.php:283 +msgid "Lamdaemon: Quota module installed" +msgstr "Lamdaemon: Quota-Modul ist installiert" + +#: ../templates/tests/lamdaemonTest.php:279 +msgid "Lamdaemon: check NSS LDAP" +msgstr "Lamdaemon: NSS LDAP prüfen" + +#: ../templates/tests/lamdaemonTest.php:286 +msgid "Lamdaemon: read quotas" +msgstr "Lamdaemon: Quotas lesen" + +#: ../templates/login.php:397 +#: ../templates/selfService/selfServiceLogin.php:344 +msgid "Language" +msgstr "Sprache" + +#: ../templates/config/confmain.php:570 +msgid "Language is not defined!" +msgstr "Sprache ist nicht definiert!" + +#: ../templates/config/confmain.php:304 +msgid "Language settings" +msgstr "Spacheinstellungen" + +#: ../lib/modules/mitKerberos.inc:144 ../lib/modules/mitKerberos.inc:256 +#: ../lib/modules/mitKerberos.inc:404 ../lib/modules/mitKerberos.inc:791 +msgid "Last login" +msgstr "Letzte Anmeldung" + +#: ../lib/types/user.inc:97 ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:219 ../lib/modules/windowsUser.inc:164 +#: ../lib/modules/windowsUser.inc:284 ../lib/modules/windowsUser.inc:511 +#: ../lib/modules/windowsUser.inc:599 ../lib/modules/windowsUser.inc:701 +#: ../lib/modules/windowsUser.inc:1607 ../lib/modules/inetOrgPerson.inc:68 +#: ../lib/modules/inetOrgPerson.inc:159 ../lib/modules/inetOrgPerson.inc:315 +#: ../lib/modules/inetOrgPerson.inc:550 ../lib/modules/inetOrgPerson.inc:662 +#: ../lib/modules/inetOrgPerson.inc:1203 ../lib/modules/inetOrgPerson.inc:1206 +#: ../lib/modules/inetOrgPerson.inc:1926 ../lib/modules/inetOrgPerson.inc:2492 +#: ../lib/modules/inetOrgPerson.inc:3646 +msgid "Last name" +msgstr "Nachname" + +#: ../lib/modules/windowsUser.inc:599 ../lib/modules/windowsUser.inc:600 +#: ../lib/modules/inetOrgPerson.inc:68 ../lib/modules/inetOrgPerson.inc:69 +msgid "Last name contains invalid characters or is empty!" +msgstr "Nachname enthält ungültige Zeichen oder ist leer!" + +#: ../lib/modules/windowsUser.inc:165 ../lib/modules/inetOrgPerson.inc:663 +msgid "Last name of user. Only letters, - and spaces are allowed." +msgstr "" +"Nachname des Benutzers. Es sind nur Buchstaben, - und Leerzeichen erlaubt." + +#: ../lib/modules/mitKerberos.inc:140 ../lib/modules/mitKerberos.inc:255 +#: ../lib/modules/mitKerberos.inc:396 ../lib/modules/mitKerberos.inc:787 +#: ../lib/modules/sambaSamAccount.inc:397 +#: ../lib/modules/sambaSamAccount.inc:603 +#: ../lib/modules/sambaSamAccount.inc:1167 +#: ../lib/modules/sambaSamAccount.inc:2289 ../lib/modules/ppolicyUser.inc:87 +#: ../lib/modules/ppolicyUser.inc:136 ../lib/modules/ppolicyUser.inc:395 +#: ../lib/modules/shadowAccount.inc:167 ../lib/modules/shadowAccount.inc:201 +#: ../lib/modules/shadowAccount.inc:365 ../lib/modules/shadowAccount.inc:498 +#: ../lib/modules/shadowAccount.inc:668 +msgid "Last password change" +msgstr "Letzte Passwortänderung" + +#: ../lib/modules/sambaSamAccount.inc:252 ../lib/modules/shadowAccount.inc:239 +msgid "Last password change (read-only)" +msgstr "Letzte Passwortänderung (nur lesen)" + +#: ../lib/modules/asteriskAccount.inc:239 +#: ../lib/modules/asteriskAccount.inc:298 +#: ../lib/modules/asteriskAccount.inc:544 +#: ../lib/modules/asteriskAccount.inc:758 +#: ../lib/modules/asteriskAccount.inc:1014 +#: ../lib/modules/asteriskAccount.inc:1297 +msgid "Last qualify milliseconds" +msgstr "Millisekunden seit letzter Verbindung" + +#: ../lib/modules/dhcp_settings.inc:153 ../lib/modules/dhcp_settings.inc:209 +#: ../lib/modules/dhcp_settings.inc:224 ../lib/modules/dhcp_settings.inc:256 +#: ../lib/modules/dhcp_settings.inc:569 ../lib/modules/dhcp_settings.inc:675 +msgid "Lease time" +msgstr "Lease-Zeit" + +#: ../lib/modules/pykotaGroup.inc:125 ../lib/modules/pykotaGroup.inc:135 +#: ../lib/modules/pykotaGroup.inc:173 ../lib/modules/pykotaGroup.inc:182 +#: ../lib/modules/pykotaGroup.inc:227 ../lib/modules/pykotaGroup.inc:474 +#: ../lib/modules/pykotaUser.inc:128 ../lib/modules/pykotaUser.inc:166 +#: ../lib/modules/pykotaUser.inc:233 ../lib/modules/pykotaUser.inc:261 +#: ../lib/modules/pykotaUser.inc:397 ../lib/modules/pykotaUser.inc:898 +msgid "Limit type" +msgstr "Limittyp" + +#: ../templates/3rdParty/pla/htdocs/import.php:102 +msgid "Line" +msgstr "Zeile" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:121 +msgid "Line ends" +msgstr "Zeilenenden" + +#: ../lib/modules/selfRegistration.inc:57 +#: ../lib/modules/selfRegistration.inc:197 +#: ../lib/modules/passwordSelfReset.inc:100 +#: ../lib/modules/passwordSelfReset.inc:516 +msgid "Link text" +msgstr "Linktext" + +#: ../templates/selfService/adminMain.php:362 +msgid "Link to self service login page for your users" +msgstr "Link zum SelfService für Ihre Benutzer" + +#: ../templates/config/conftypes.php:264 ../help/help.inc:87 +msgid "List attributes" +msgstr "Attribute der Listen" + +#: ../templates/config/conftypes.php:415 +msgid "List attributes are invalid!" +msgstr "Attribute der Liste sind ungültig!" + +#: ../lib/types/zarafaAddressListType.inc:91 +#: ../lib/modules/zarafaAddressList.inc:63 +#: ../lib/modules/zarafaAddressList.inc:104 +#: ../lib/modules/zarafaAddressList.inc:141 +#: ../lib/modules/zarafaAddressList.inc:168 +#: ../lib/modules/zarafaAddressList.inc:187 +#: ../lib/modules/zarafaAddressList.inc:331 +msgid "List name" +msgstr "Listenname" + +#: ../lib/modules/zarafaAddressList.inc:168 +msgid "List name already in use." +msgstr "Der LIstenname wird bereits verwendet." + +#: ../lib/modules/sambaSamAccount.inc:316 +msgid "" +"List of Samba workstations the user is allowed to login. Empty means every " +"workstation." +msgstr "" +"Liste der Samba-Arbeitsstationen, auf welchen sich der Benutzer anmelden " +"darf. Leer heißt jede Arbeitsstation." + +#: ../templates/config/confmain.php:564 +msgid "List of admin users is empty or invalid!" +msgstr "Liste der berechtigten Benutzer ist ungültig!" + +#: ../lib/modules/asteriskAccount.inc:204 +msgid "List of allowed codecs." +msgstr "Liste der erlaubten Codecs." + +#: ../lib/modules/asteriskAccount.inc:200 +msgid "List of disallowed codecs." +msgstr "Liste der unerlaubten Codecs." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:94 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:88 +msgid "List of entries to be deleted:" +msgstr "Liste der zu löschenden Einträge:" + +#: ../templates/config/confmain.php:430 +msgid "List of valid users" +msgstr "Liste der berechtigten Benutzer" + +#: ../templates/serverInfo.php:152 +msgid "Listeners" +msgstr "Listener" + +#: ../lib/modules.inc:1241 ../help/help.inc:198 +msgid "Load profile" +msgstr "Profil laden" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:279 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1226 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +msgid "Loading" +msgstr "Lade" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:303 +msgid "Loading export" +msgstr "Lade Export" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:290 +msgid "Loading import" +msgstr "Lade Import" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:497 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:233 +msgid "Loading search" +msgstr "Lade Suche" + +#: ../lib/modules/inetLocalMailRecipient.inc:72 +#: ../lib/modules/inetLocalMailRecipient.inc:154 +msgid "Local address" +msgstr "Lokale Adresse" + +#: ../lib/modules/inetLocalMailRecipient.inc:76 +#: ../lib/modules/inetLocalMailRecipient.inc:106 +#: ../lib/modules/inetLocalMailRecipient.inc:120 +#: ../lib/modules/inetLocalMailRecipient.inc:293 +msgid "Local address list" +msgstr "Liste von lokalen Adressen" + +#: ../lib/modules/sambaGroupMapping.inc:72 +msgid "Local group" +msgstr "Lokale Gruppe" + +#: ../lib/modules/sambaGroupMapping.inc:115 +#: ../lib/modules/sambaGroupMapping.inc:166 +#: ../lib/modules/sambaGroupMapping.inc:388 +#: ../lib/modules/sambaGroupMapping.inc:555 +msgid "Local members" +msgstr "Lokale Mitglieder" + +#: ../lib/types/host.inc:97 ../lib/modules/ipHost.inc:73 +#: ../lib/modules/ipHost.inc:91 ../lib/modules/ipHost.inc:105 +#: ../lib/modules/ipHost.inc:130 ../lib/modules/ipHost.inc:252 +#: ../lib/modules/windowsHost.inc:82 ../lib/modules/windowsHost.inc:106 +#: ../lib/modules/windowsHost.inc:121 ../lib/modules/windowsHost.inc:144 +#: ../lib/modules/windowsHost.inc:290 ../lib/modules/device.inc:77 +#: ../lib/modules/device.inc:109 ../lib/modules/device.inc:129 +#: ../lib/modules/device.inc:178 ../lib/modules/device.inc:419 +#: ../lib/modules/windowsUser.inc:136 ../lib/modules/windowsUser.inc:332 +#: ../lib/modules/windowsUser.inc:504 ../lib/modules/windowsUser.inc:546 +#: ../lib/modules/windowsUser.inc:711 ../lib/modules/windowsUser.inc:1600 +#: ../lib/modules/windowsUser.inc:1742 ../lib/modules/inetOrgPerson.inc:164 +#: ../lib/modules/inetOrgPerson.inc:190 ../lib/modules/inetOrgPerson.inc:518 +#: ../lib/modules/inetOrgPerson.inc:565 ../lib/modules/inetOrgPerson.inc:794 +#: ../lib/modules/inetOrgPerson.inc:798 ../lib/modules/inetOrgPerson.inc:1277 +#: ../lib/modules/inetOrgPerson.inc:1280 ../lib/modules/inetOrgPerson.inc:1947 +#: ../lib/modules/inetOrgPerson.inc:2646 ../lib/modules/inetOrgPerson.inc:3584 +#: ../lib/modules/inetOrgPerson.inc:3648 +msgid "Location" +msgstr "Ort" + +#: ../lib/modules/nisMailAliasUser.inc:93 +msgid "Location where new alias is stored." +msgstr "Lageort für den neuen Alias." + +#: ../lib/types/user.inc:349 ../lib/types/user.inc:354 +msgid "Lock" +msgstr "Sperren" + +#: ../templates/lists/changePassword.php:435 +#: ../templates/lists/changePassword.php:455 +#: ../templates/lists/changePassword.php:457 +#: ../lib/modules/ppolicyUser.inc:150 +msgid "Lock account" +msgstr "Account sperren" + +#: ../templates/lists/changePassword.php:271 +msgid "Lock account?" +msgstr "Account sperren?" + +#: ../lib/modules/posixGroup.inc:208 ../lib/modules/posixAccount.inc:338 +#: ../lib/modules/posixAccount.inc:1499 ../lib/modules/inetOrgPerson.inc:1592 +msgid "Lock password" +msgstr "Passwort deaktivieren" + +#: ../lib/types/ppolicyType.inc:83 ../lib/modules/ppolicy.inc:104 +#: ../lib/modules/ppolicy.inc:151 ../lib/modules/ppolicy.inc:171 +#: ../lib/modules/ppolicy.inc:264 ../lib/modules/ppolicy.inc:476 +#: ../lib/modules/sambaDomain.inc:133 ../lib/modules/sambaDomain.inc:198 +#: ../lib/modules/sambaDomain.inc:223 ../lib/modules/sambaDomain.inc:340 +#: ../lib/modules/sambaDomain.inc:610 +msgid "Lockout duration" +msgstr "Sperrdauer" + +#: ../lib/modules/sambaDomain.inc:223 +msgid "Lockout duration must be are natural number." +msgstr "Sperrdauer muss eine natürliche Zahl sein." + +#: ../lib/modules/ppolicyUser.inc:142 +msgid "Lockout time" +msgstr "Sperrdauer" + +#: ../lib/types/ppolicyType.inc:88 ../lib/modules/ppolicy.inc:124 +#: ../lib/modules/ppolicy.inc:150 ../lib/modules/ppolicy.inc:258 +#: ../lib/modules/ppolicy.inc:495 +msgid "Lockout users" +msgstr "Benutzer sperren" + +#: ../lib/modules/sambaDomain.inc:121 ../lib/modules/sambaDomain.inc:195 +#: ../lib/modules/sambaDomain.inc:225 ../lib/modules/sambaDomain.inc:316 +#: ../lib/modules/sambaDomain.inc:607 +msgid "Lockout users after bad logon attempts" +msgstr "Kontosperre bei fehlerhaften Anmeldungen" + +#: ../lib/modules/sambaDomain.inc:225 +msgid "Lockout users after bad logon attempts must be between 0 and 999." +msgstr "" +"Die Anzahl fehlerhafter Anmeldungen bis zur Sperrung muss zwischen 0 und 999 " +"liegen." + +#: ../templates/config/mainmanage.php:423 ../help/help.inc:150 +msgid "Log destination" +msgstr "Ziel für Logging" + +#: ../templates/config/mainmanage.php:409 ../help/help.inc:148 +msgid "Log level" +msgstr "Log-Level" + +#: ../templates/multiEdit.php:448 +msgid "Log output" +msgstr "Logausgaben" + +#: ../templates/main_header.php:128 +#, php-format +msgid "Logged in as: %s" +msgstr "Angemeldet als: %s" + +#: ../templates/config/mainmanage.php:406 +msgid "Logging" +msgstr "Logging" + +#: ../templates/login.php:433 ../templates/config/conflogin.php:62 +#: ../templates/config/mainlogin.php:72 +#: ../templates/selfService/selfServiceLogin.php:227 +#: ../templates/selfService/selfServiceLogin.php:366 +#: ../templates/selfService/adminLogin.php:64 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:530 ../help/help.inc:56 +msgid "Login" +msgstr "Login" + +#: ../templates/selfService/adminMain.php:468 ../help/help.inc:224 +msgid "Login attribute label" +msgstr "Beschriftung des Login-Attributs" + +#: ../templates/selfService/adminMain.php:477 ../help/help.inc:226 +msgid "Login caption" +msgstr "Login-Überschrift" + +#: ../templates/config/confmain.php:417 ../help/help.inc:120 +msgid "Login method" +msgstr "Login-Methode" + +#: ../lib/types/user.inc:99 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:324 ../lib/modules/posixAccount.inc:417 +#: ../lib/modules/posixAccount.inc:530 ../lib/modules/posixAccount.inc:1492 +#: ../lib/modules/posixAccount.inc:1757 ../lib/modules/posixAccount.inc:1860 +#: ../lib/modules/posixAccount.inc:2570 +msgid "Login shell" +msgstr "Login Shell" + +#: ../lib/modules/posixAccount.inc:193 ../lib/modules/posixAccount.inc:248 +#: ../lib/modules/posixAccount.inc:493 +msgid "Login shells" +msgstr "Login-Shells" + +#: ../templates/pdfedit/pdfpage.php:453 +msgid "Logo" +msgstr "Logo" + +#: ../lib/pdfstruct.inc:300 +msgid "Logo file deleted." +msgstr "Logodatei gelöscht." + +#: ../lib/pdfstruct.inc:292 +#, php-format +msgid "Logo is still in use by PDF structure \"%s\" in account type \"%s\"." +msgstr "Logo wird noch verwendet von PDF-Struktur \"%s\" im Kontotyp \"%s\"." + +#: ../lib/modules/sambaDomain.inc:109 ../lib/modules/sambaDomain.inc:192 +#: ../lib/modules/sambaDomain.inc:290 ../lib/modules/sambaDomain.inc:616 +msgid "Logon for password change" +msgstr "Anmeldung für Passwortänderung" + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:340 +#: ../lib/modules/sambaSamAccount.inc:343 +#: ../lib/modules/sambaSamAccount.inc:527 +#: ../lib/modules/sambaSamAccount.inc:607 +#: ../lib/modules/sambaSamAccount.inc:1289 +#: ../lib/modules/sambaSamAccount.inc:1793 +msgid "Logon hours" +msgstr "Anmeldezeiten" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:224 +#: ../lib/modules/sambaSamAccount.inc:312 +#: ../lib/modules/sambaSamAccount.inc:511 +#: ../lib/modules/sambaSamAccount.inc:601 +#: ../lib/modules/sambaSamAccount.inc:1242 +#: ../lib/modules/sambaSamAccount.inc:1769 +#: ../lib/modules/sambaSamAccount.inc:1909 ../lib/modules/windowsUser.inc:209 +#: ../lib/modules/windowsUser.inc:424 ../lib/modules/windowsUser.inc:477 +#: ../lib/modules/windowsUser.inc:521 ../lib/modules/windowsUser.inc:613 +#: ../lib/modules/windowsUser.inc:756 ../lib/modules/windowsUser.inc:1636 +msgid "Logon script" +msgstr "Anmeldeskript" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:102 ../lib/modules/windowsUser.inc:613 +#: ../lib/modules/windowsUser.inc:614 +msgid "Logon script is invalid!" +msgstr "Anmeldeskript ist ungültig!" + +#: ../templates/selfService/selfServiceMain.php:63 +#: ../templates/selfService/selfServiceMain.php:419 +#: ../templates/main_header.php:135 +msgid "Logout" +msgstr "Abmelden" + +#: ../lib/modules/dhcp_settings.inc:98 +msgid "M-Node (0x04)" +msgstr "M-Knoten (0x04)" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ieee802device.inc:58 +#: ../lib/modules/ieee802device.inc:68 ../lib/modules/ieee802device.inc:79 +#: ../lib/modules/ieee802device.inc:106 ../lib/modules/fixed_ip.inc:102 +#: ../lib/modules/fixed_ip.inc:429 ../lib/modules/fixed_ip.inc:742 +msgid "MAC address" +msgstr "MAC-Adresse" + +#: ../lib/modules/ieee802device.inc:72 +msgid "MAC address list" +msgstr "Liste von MAC-Adressen" + +#: ../lib/modules/ieee802device.inc:86 ../lib/modules/ieee802device.inc:162 +msgid "MAC addresses" +msgstr "MAC-Adressen" + +#: ../lib/modules/mitKerberos.inc:268 +msgid "MIT Kerberos password change command" +msgstr "Befehl für Passwortänderung bei MIT Kerberos" + +#: ../lib/modules/bindDLZ.inc:110 ../lib/modules/bindDLZ.inc:281 +#: ../lib/modules/bindDLZ.inc:287 ../lib/modules/bindDLZ.inc:294 +#: ../lib/modules/bindDLZ.inc:483 ../lib/modules/bindDLZ.inc:502 +msgid "MX record" +msgstr "MX-Eintrag" + +#: ../lib/modules/bindDLZ.inc:421 ../lib/modules/bindDLZ.inc:440 +#: ../lib/modules/bindDLZ.inc:1516 +msgid "MX records" +msgstr "MX-Einträge" + +#: ../lib/modules/sambaSamAccount.inc:576 +msgid "Magadan, Solomon Islands" +msgstr "Magadan, Solomon-Inseln" + +#: ../lib/types/mailAlias.inc:53 ../lib/modules/nisMailAliasUser.inc:70 +#: ../lib/modules/nisMailAlias.inc:69 +msgid "Mail aliases" +msgstr "Mail-Aliase" + +#: ../lib/modules/imapAccess.inc:100 ../lib/modules/imapAccess.inc:140 +msgid "Mail domains" +msgstr "Maildomänen" + +#: ../lib/modules/inetLocalMailRecipient.inc:58 +msgid "Mail routing" +msgstr "Mail-Routing" + +#: ../lib/modules/selfRegistration.inc:615 +#: ../lib/modules/selfRegistration.inc:635 +#: ../lib/modules/passwordSelfReset.inc:1546 +#: ../lib/modules/passwordSelfReset.inc:1561 +#: ../lib/modules/passwordSelfReset.inc:1594 +msgid "Mail sending failed." +msgstr "Der email-Versand ist fehlgeschlagen." + +#: ../lib/modules/bindDLZ.inc:139 ../lib/modules/bindDLZ.inc:143 +#: ../lib/modules/bindDLZ.inc:281 ../lib/modules/bindDLZ.inc:500 +#: ../lib/modules/bindDLZ.inc:917 ../lib/modules/bindDLZ.inc:1519 +#: ../lib/modules/kolabUser.inc:98 ../lib/modules/kolabSharedFolder.inc:98 +#: ../lib/modules/inetLocalMailRecipient.inc:80 +#: ../lib/modules/inetLocalMailRecipient.inc:85 +#: ../lib/modules/inetLocalMailRecipient.inc:112 +#: ../lib/modules/inetLocalMailRecipient.inc:121 +#: ../lib/modules/inetLocalMailRecipient.inc:148 +#: ../lib/modules/inetLocalMailRecipient.inc:294 +msgid "Mail server" +msgstr "Mailserver" + +#: ../lib/modules/bindDLZ.inc:914 +msgid "Mail servers (\"MX\" records)" +msgstr "Mailserver (\"MX\"-Einträge)" + +#: ../lib/account.inc:1031 +#, php-format +msgid "Mail successfully sent to %s." +msgstr "Mail wurde erfolgreich an %s gesendet." + +#: ../lib/modules/asteriskAccount.inc:159 +#: ../lib/modules/asteriskAccount.inc:278 +#: ../lib/modules/asteriskAccount.inc:399 +#: ../lib/modules/asteriskAccount.inc:657 +#: ../lib/modules/asteriskAccount.inc:994 +#: ../lib/modules/asteriskAccount.inc:1257 +#: ../lib/modules/asteriskVoicemail.inc:95 +#: ../lib/modules/asteriskVoicemail.inc:138 +#: ../lib/modules/asteriskVoicemail.inc:158 +#: ../lib/modules/asteriskVoicemail.inc:245 +#: ../lib/modules/asteriskVoicemail.inc:369 ../lib/modules/imapAccess.inc:63 +#: ../lib/modules/imapAccess.inc:106 ../lib/modules/imapAccess.inc:243 +msgid "Mailbox" +msgstr "Postfach" + +#: ../lib/modules/imapAccess.inc:252 +msgid "Mailbox already exists on IMAP server." +msgstr "Das Postfach existiert bereits auf dem IMAP-Server." + +#: ../lib/modules/imapAccess.inc:259 +msgid "Mailbox does not exist on IMAP server." +msgstr "Das Postfach existiert noch nicht auf dem IMAP-Server." + +#: ../lib/modules/kolabUser.inc:148 ../lib/modules/kolabUser.inc:192 +#: ../lib/modules/kolabUser.inc:231 ../lib/modules/kolabUser.inc:297 +#: ../lib/modules/kolabUser.inc:300 ../lib/modules/kolabUser.inc:745 +#: ../lib/modules/kolabSharedFolder.inc:154 +#: ../lib/modules/kolabSharedFolder.inc:188 +#: ../lib/modules/kolabSharedFolder.inc:238 +#: ../lib/modules/kolabSharedFolder.inc:284 +#: ../lib/modules/kolabSharedFolder.inc:287 +#: ../lib/modules/kolabSharedFolder.inc:559 +msgid "Mailbox home server" +msgstr "Mailserver" + +#: ../lib/modules/kolabUser.inc:251 +msgid "Mailbox home server name is empty!" +msgstr "Mailservername ist leer!" + +#: ../lib/modules/kolabUser.inc:249 ../lib/modules/kolabUser.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:257 +#: ../lib/modules/kolabSharedFolder.inc:258 +msgid "Mailbox home server name is invalid!" +msgstr "Mailservername ist ungültig!" + +#: ../lib/modules/kolabUser.inc:99 ../lib/modules/kolabUser.inc:174 +#: ../lib/modules/kolabUser.inc:199 ../lib/modules/kolabUser.inc:232 +#: ../lib/modules/kolabUser.inc:257 ../lib/modules/kolabUser.inc:310 +#: ../lib/modules/kolabUser.inc:772 +msgid "Mailbox quota" +msgstr "Postfach-Quota" + +#: ../lib/types/mailAlias.inc:62 +msgid "Mailing aliases (e.g. NIS mail aliases)" +msgstr "Mailaliase (z.B. NIS-Mail-Aliase)" + +#: ../lib/modules/nisMailAlias.inc:82 +msgid "Mails to this name are forwarded to the recipients." +msgstr "Mails an diesen Namen werden an die Empfänger weitergeleitet." + +#: ../templates/pdfedit/pdfpage.php:367 ../templates/pdfedit/pdfpage.php:678 +msgid "Main" +msgstr "Allgemein" + +#: ../templates/selfService/adminMain.php:483 ../help/help.inc:228 +msgid "Main page caption" +msgstr "Überschrift der Hauptseite" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:79 +msgid "Make sure your filter (above) will select all child records." +msgstr "" +"Bitte stellen Sie sicher, dass der obige Filter alle Untereinträge abdeckt." + +#: ../lib/modules/inetOrgPerson.inc:1549 +msgid "Manage" +msgstr "Verwalten" + +#: ../templates/pdfedit/pdfmain.php:190 +msgid "Manage existing PDF structures" +msgstr "PDF-Strukturen verwalten" + +#: ../templates/profedit/profilemain.php:175 +msgid "Manage existing profiles" +msgstr "Profile verwalten" + +#: ../templates/pdfedit/pdfmain.php:232 +msgid "Manage logos" +msgstr "Logos verwalten" + +#: ../lib/modules/kolabUser.inc:112 ../lib/modules/kolabUser.inc:170 +msgid "Manage object class \"mailrecipient\"" +msgstr "Objektklasse \"mailrecipient\" verwalten" + +#: ../lib/modules/sambaSamAccount.inc:1229 +msgid "Manage profile directory" +msgstr "Profilverzeichnis verwalten" + +#: ../templates/selfService/adminLogin.php:182 +msgid "Manage self service profiles" +msgstr "SelfService-Profile verwalten" + +#: ../templates/config/conflogin.php:192 +msgid "Manage server profiles" +msgstr "Serverprofile verwalten" + +#: ../lib/modules/windowsHost.inc:86 ../lib/modules/windowsHost.inc:112 +#: ../lib/modules/windowsHost.inc:122 ../lib/modules/windowsHost.inc:146 +#: ../lib/modules/windowsHost.inc:295 ../lib/modules/windowsGroup.inc:146 +#: ../lib/modules/windowsGroup.inc:167 ../lib/modules/windowsGroup.inc:227 +#: ../lib/modules/windowsGroup.inc:268 ../lib/modules/windowsGroup.inc:352 +#: ../lib/modules/windowsGroup.inc:781 +msgid "Managed by" +msgstr "Verwaltet von" + +#: ../templates/serverInfo.php:105 +msgid "Managed suffixes" +msgstr "Verwaltete Suffixe" + +#: ../lib/modules/ipHost.inc:77 ../lib/modules/ipHost.inc:97 +#: ../lib/modules/ipHost.inc:106 ../lib/modules/ipHost.inc:154 +#: ../lib/modules/ipHost.inc:253 ../lib/modules/inetOrgPerson.inc:364 +#: ../lib/modules/inetOrgPerson.inc:619 ../lib/modules/inetOrgPerson.inc:670 +#: ../lib/modules/inetOrgPerson.inc:674 ../lib/modules/inetOrgPerson.inc:1561 +#: ../lib/modules/inetOrgPerson.inc:1927 ../lib/modules/inetOrgPerson.inc:3618 +#: ../lib/modules/inetOrgPerson.inc:3657 +msgid "Manager" +msgstr "Vorgesetzter" + +#: ../lib/tools/ouEditor.inc:53 +msgid "Manages OU objects in your LDAP tree." +msgstr "Verwaltet OU-Objekte im LDAP-Baum." + +#: ../lib/modules/kolabUser.inc:52 +msgid "Manual" +msgstr "Manuell" + +#: ../lib/modules/kolabUser.inc:54 +msgid "Manual if conflicts" +msgstr "Manuell bei Konflikten" + +#: ../lib/modules/customScripts.inc:172 +msgid "Manual scripts" +msgstr "Manuelle Skripte" + +#: ../lib/types/nisObjectType.inc:78 ../lib/modules/nisObject.inc:65 +#: ../lib/modules/nisObject.inc:96 ../lib/modules/nisObject.inc:112 +#: ../lib/modules/nisObject.inc:123 ../lib/modules/nisObject.inc:149 +#: ../lib/modules/nisObject.inc:210 +msgid "Mapping entry" +msgstr "Abbildungseintrag" + +#: ../lib/modules/nisObject.inc:123 ../lib/modules/nisObject.inc:124 +msgid "" +"Mapping entry contains invalid characters. Only ASCII characters are allowed." +msgstr "" +"Der Abbildungseintrag enthält ungültige Zeichen. Nur ASCII-Zeichen sind " +"erlaubt." + +#: ../lib/types/nisObjectType.inc:79 ../lib/modules/nisObject.inc:69 +#: ../lib/modules/nisObject.inc:89 ../lib/modules/nisObject.inc:113 +#: ../lib/modules/nisObject.inc:143 ../lib/modules/nisObject.inc:211 +msgid "Mapping name" +msgstr "Abbildungsname" + +#: ../lib/modules/kolabGroup.inc:213 ../lib/modules/kolabGroup.inc:293 +#: ../lib/modules/kolabUser.inc:388 ../lib/modules/kolabUser.inc:519 +#: ../lib/modules/kolabSharedFolder.inc:345 +#: ../lib/modules/kolabSharedFolder.inc:433 +msgid "Mark account for deletion" +msgstr "Account als gelöscht markieren" + +#: ../lib/modules/kolabGroup.inc:113 ../lib/modules/kolabUser.inc:178 +#: ../lib/modules/kolabSharedFolder.inc:166 +msgid "Mark for deletion" +msgstr "Als gelöscht markieren" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:44 +msgid "Mass delete" +msgstr "Mehrfaches Löschen" + +#: ../templates/config/profmanage.php:311 +#: ../templates/config/mainlogin.php:158 +#: ../templates/selfService/profManage.php:247 +#: ../templates/pdfedit/pdfmain.php:290 ../templates/pdfedit/pdfmain.php:337 +#: ../templates/profedit/profilemain.php:257 +#: ../templates/profedit/profilemain.php:305 ../help/help.inc:142 +msgid "Master password" +msgstr "Hauptpasswort" + +#: ../templates/config/profmanage.php:54 +#: ../templates/selfService/profManage.php:40 +#: ../templates/pdfedit/pdfmain.php:106 ../templates/pdfedit/pdfmain.php:114 +#: ../templates/profedit/profilemain.php:121 +#: ../templates/profedit/profilemain.php:129 +msgid "Master password is wrong!" +msgstr "Hauptpasswort ist falsch!" + +#: ../templates/config/mainmanage.php:82 +msgid "Master passwords are different or empty!" +msgstr "Die Passwörter stimmen nicht überein!" + +#: ../templates/schema/schema.php:268 +msgid "Matching rule OID" +msgstr "Matching-Regel OID" + +#: ../templates/schema/schema.php:77 ../templates/schema/schema.php:78 +msgid "Matching rules" +msgstr "Matching-Regeln" + +#: ../templates/serverInfo.php:173 +msgid "Max. file descriptors" +msgstr "Max. Anzahl Dateideskriptoren" + +#: ../lib/modules/posixGroup.inc:410 ../lib/modules/posixGroup.inc:599 +#: ../lib/modules/posixGroup.inc:600 +msgid "Maximum GID number" +msgstr "Maximale GID-Nummer" + +#: ../lib/modules/posixGroup.inc:599 +msgid "Maximum GID number is invalid or empty!" +msgstr "Maximale GID-Nummer ist ungültig oder leer!" + +#: ../lib/modules/posixGroup.inc:600 +msgid "Maximum GID number must be greater than minimum GID number!" +msgstr "Die maximale GID-Nummer muss größer sein als die minimale GID-Nummer!" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:221 ../lib/modules/posixAccount.inc:239 +msgid "Maximum UID number" +msgstr "Maximale UID-Nummer" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +msgid "Maximum UID number is invalid!" +msgstr "Maximale UID-Nummer ist ungültig!" + +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +msgid "Maximum UID number must be greater than minimum UID number!" +msgstr "Die maximale UID-Nummer muss größer sein als die minimale UID-Nummer!" + +#: ../lib/types/ppolicyType.inc:84 ../lib/modules/ppolicy.inc:108 +#: ../lib/modules/ppolicy.inc:152 ../lib/modules/ppolicy.inc:172 +#: ../lib/modules/ppolicy.inc:272 ../lib/modules/ppolicy.inc:477 +msgid "Maximum failure count" +msgstr "Maximale Fehlerzahl" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:128 +#: ../templates/3rdParty/pla/htdocs/import_form.php:36 +#: ../lib/modules/customFields.inc:156 ../lib/modules/customFields.inc:3299 +msgid "Maximum file size" +msgstr "Maximale Dateigröße" + +#: ../lib/modules/inetOrgPerson.inc:3684 +msgid "Maximum file size (kB)" +msgstr "Maximale Dateigröße (kB)" + +#: ../lib/modules/customFields.inc:3331 +msgid "Maximum file size must be a number. Please enter 0 for no limit." +msgstr "" +"Die maximale Dateigröße muss eine Zahl sein. Bitte geben Sie 0 für " +"unbegrenzt ein." + +#: ../lib/modules/inetOrgPerson.inc:3683 +msgid "Maximum height (px)" +msgstr "Maximale Höhe (px)" + +#: ../lib/types/pykotaPrinterType.inc:95 ../lib/modules/pykotaPrinter.inc:103 +#: ../lib/modules/pykotaPrinter.inc:135 ../lib/modules/pykotaPrinter.inc:159 +#: ../lib/modules/pykotaPrinter.inc:195 ../lib/modules/pykotaPrinter.inc:213 +#: ../lib/modules/pykotaPrinter.inc:233 ../lib/modules/pykotaPrinter.inc:586 +msgid "Maximum job size" +msgstr "Maximale Jobgröße" + +#: ../lib/modules/dhcp_settings.inc:157 ../lib/modules/dhcp_settings.inc:210 +#: ../lib/modules/dhcp_settings.inc:225 ../lib/modules/dhcp_settings.inc:262 +#: ../lib/modules/dhcp_settings.inc:573 ../lib/modules/dhcp_settings.inc:676 +msgid "Maximum lease time" +msgstr "Maximale Lease-Zeit" + +#: ../templates/schema/schema.php:214 +msgid "Maximum length" +msgstr "Maximale Länge" + +#: ../lib/lists.inc:1011 ../help/help.inc:97 +msgid "Maximum list entries" +msgstr "Maximale Listeneinträge" + +#: ../lib/modules/asteriskAccount.inc:196 +msgid "" +"Maximum number of seconds of inactivity before terminating a call on hold." +msgstr "" +"Maximale Zeit in Sekunden bevor ein geparkter Anruf nach Inaktivität beendet " +"wird." + +#: ../lib/types/ppolicyType.inc:79 ../lib/modules/shadowAccount.inc:59 +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/shadowAccount.inc:123 +#: ../lib/modules/shadowAccount.inc:172 ../lib/modules/shadowAccount.inc:189 +#: ../lib/modules/shadowAccount.inc:227 ../lib/modules/shadowAccount.inc:340 +#: ../lib/modules/shadowAccount.inc:504 ../lib/modules/ppolicy.inc:88 +#: ../lib/modules/ppolicy.inc:144 ../lib/modules/ppolicy.inc:167 +#: ../lib/modules/ppolicy.inc:168 ../lib/modules/ppolicy.inc:206 +#: ../lib/modules/ppolicy.inc:473 ../lib/modules/sambaDomain.inc:129 +#: ../lib/modules/sambaDomain.inc:197 ../lib/modules/sambaDomain.inc:220 +#: ../lib/modules/sambaDomain.inc:222 ../lib/modules/sambaDomain.inc:332 +#: ../lib/modules/sambaDomain.inc:609 +msgid "Maximum password age" +msgstr "Maximales Passwortalter" + +#: ../lib/modules/inetOrgPerson.inc:3682 +msgid "Maximum width (px)" +msgstr "Maximale Breite (px)" + +#: ../lib/modules/qmailGroup.inc:80 ../lib/modules/qmailGroup.inc:204 +#: ../lib/modules/qmailGroup.inc:208 ../lib/modules/qmailGroup.inc:337 +#: ../lib/modules/qmailGroup.inc:402 ../lib/modules/qmailGroup.inc:425 +#: ../lib/modules/qmailGroup.inc:514 ../lib/modules/qmailGroup.inc:1063 +msgid "Member email addresses" +msgstr "Email-Adressen der Mitglieder" + +#: ../lib/modules/qmailGroup.inc:78 ../lib/modules/qmailGroup.inc:156 +#: ../lib/modules/qmailGroup.inc:160 ../lib/modules/qmailGroup.inc:279 +#: ../lib/modules/qmailGroup.inc:381 ../lib/modules/qmailGroup.inc:516 +#: ../lib/modules/qmailGroup.inc:783 ../lib/modules/qmailGroup.inc:1062 +msgid "Member entries" +msgstr "Mitglieder" + +#: ../lib/modules/qmailGroup.inc:82 ../lib/modules/qmailGroup.inc:180 +#: ../lib/modules/qmailGroup.inc:184 ../lib/modules/qmailGroup.inc:303 +#: ../lib/modules/qmailGroup.inc:390 ../lib/modules/qmailGroup.inc:515 +#: ../lib/modules/qmailGroup.inc:1064 +msgid "Member filter" +msgstr "Filter für Mitglieder" + +#: ../lib/types/netgroup.inc:94 ../lib/modules/nisnetgroup.inc:95 +#: ../lib/modules/nisnetgroup.inc:99 ../lib/modules/nisnetgroup.inc:132 +#: ../lib/modules/nisnetgroup.inc:142 ../lib/modules/nisnetgroup.inc:286 +#: ../lib/modules/nisnetgroup.inc:583 ../lib/modules/organizationalRole.inc:93 +#: ../lib/modules/organizationalRole.inc:97 +#: ../lib/modules/organizationalRole.inc:130 +#: ../lib/modules/organizationalRole.inc:138 +#: ../lib/modules/organizationalRole.inc:193 +#: ../lib/modules/organizationalRole.inc:341 +#: ../lib/modules/organizationalRole.inc:461 +#: ../lib/modules/windowsGroup.inc:130 ../lib/modules/windowsGroup.inc:134 +#: ../lib/modules/windowsGroup.inc:211 ../lib/modules/windowsGroup.inc:260 +#: ../lib/modules/windowsGroup.inc:790 ../lib/modules/groupOfNames.inc:101 +#: ../lib/modules/groupOfNames.inc:105 ../lib/modules/groupOfNames.inc:151 +#: ../lib/modules/groupOfNames.inc:159 ../lib/modules/groupOfNames.inc:168 +#: ../lib/modules/groupOfNames.inc:247 ../lib/modules/groupOfNames.inc:553 +#: ../lib/modules/groupOfNames.inc:714 +msgid "Members" +msgstr "Mitglieder" + +#: ../lib/modules/groupOfNames.inc:109 ../lib/modules/groupOfNames.inc:179 +msgid "Members are optional" +msgstr "Mitglieder sind optional" + +#: ../lib/modules/qmailGroup.inc:94 ../lib/modules/qmailGroup.inc:196 +#: ../lib/modules/qmailGroup.inc:319 ../lib/modules/qmailGroup.inc:396 +#: ../lib/modules/qmailGroup.inc:617 ../lib/modules/qmailGroup.inc:1075 +msgid "Members only" +msgstr "Nur Mitglieder" + +#: ../lib/modules/qmailUser.inc:108 ../lib/modules/qmailUser.inc:143 +#: ../lib/modules/qmailUser.inc:223 ../lib/modules/qmailUser.inc:316 +#: ../lib/modules/qmailUser.inc:412 ../lib/modules/qmailUser.inc:686 +#: ../lib/modules/qmailUser.inc:1145 +msgid "Message count limit" +msgstr "Max. Anzahl Nachrichten" + +#: ../lib/modules/qmailUser.inc:110 ../lib/modules/qmailUser.inc:153 +#: ../lib/modules/qmailUser.inc:227 ../lib/modules/qmailUser.inc:324 +#: ../lib/modules/qmailUser.inc:415 ../lib/modules/qmailUser.inc:697 +#: ../lib/modules/qmailUser.inc:1146 +msgid "Message size limit" +msgstr "Größenlimit für Nachrichten" + +#: ../lib/modules/qmailUser.inc:120 ../lib/modules/qmailUser.inc:171 +#: ../lib/modules/qmailUser.inc:247 ../lib/modules/qmailUser.inc:366 +#: ../lib/modules/qmailUser.inc:430 ../lib/modules/qmailUser.inc:601 +#: ../lib/modules/qmailUser.inc:1149 ../lib/modules/qmailGroup.inc:139 +#: ../lib/modules/qmailGroup.inc:254 ../lib/modules/qmailGroup.inc:372 +#: ../lib/modules/qmailGroup.inc:508 ../lib/modules/qmailGroup.inc:1058 +msgid "Message store" +msgstr "Nachrichtenspeicher" + +#: ../lib/modules/sambaSamAccount.inc:563 +msgid "Mid-Atlantic" +msgstr "Mittelatlantik" + +#: ../lib/modules/sambaSamAccount.inc:554 +msgid "Midway Island, Samoa" +msgstr "Midway Island, Samoa" + +#: ../lib/modules/windowsUser.inc:286 ../lib/modules/inetOrgPerson.inc:317 +msgid "Miller" +msgstr "Müller" + +#: ../lib/modules/sambaDomain.inc:101 ../lib/modules/sambaDomain.inc:190 +#: ../lib/modules/sambaDomain.inc:276 ../lib/modules/sambaDomain.inc:605 +msgid "Minimal password length" +msgstr "Minimale Passwortlänge" + +#: ../lib/modules/posixGroup.inc:407 ../lib/modules/posixGroup.inc:598 +msgid "Minimum GID number" +msgstr "Minimale GID-Nummer" + +#: ../lib/modules/posixGroup.inc:598 +msgid "Minimum GID number is invalid or empty!" +msgstr "Minimale GID-Nummer ist ungültig oder leer!" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:218 ../lib/modules/posixAccount.inc:236 +msgid "Minimum UID number" +msgstr "Minimale UID-Nummer" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +msgid "Minimum UID number is invalid!" +msgstr "Minimale UID-Nummer ist ungültig!" + +#: ../lib/modules/passwordSelfReset.inc:92 +#: ../lib/modules/passwordSelfReset.inc:514 +msgid "Minimum answer length" +msgstr "Minimale Antwortlänge" + +#: ../templates/config/mainmanage.php:392 +msgid "Minimum character classes" +msgstr "Minimale Anzahl von Zeichenklassen" + +#: ../templates/config/mainmanage.php:388 +msgid "Minimum lowercase characters" +msgstr "Minimale Anzahl von Kleinbuchstaben" + +#: ../templates/config/mainmanage.php:390 +msgid "Minimum numeric characters" +msgstr "Minimale Anzahl von Zahlen" + +#: ../lib/types/ppolicyType.inc:78 ../lib/modules/shadowAccount.inc:57 +#: ../lib/modules/shadowAccount.inc:118 ../lib/modules/shadowAccount.inc:171 +#: ../lib/modules/shadowAccount.inc:185 ../lib/modules/shadowAccount.inc:221 +#: ../lib/modules/shadowAccount.inc:332 ../lib/modules/shadowAccount.inc:503 +#: ../lib/modules/ppolicy.inc:84 ../lib/modules/ppolicy.inc:143 +#: ../lib/modules/ppolicy.inc:166 ../lib/modules/ppolicy.inc:198 +#: ../lib/modules/ppolicy.inc:472 ../lib/modules/sambaDomain.inc:125 +#: ../lib/modules/sambaDomain.inc:196 ../lib/modules/sambaDomain.inc:221 +#: ../lib/modules/sambaDomain.inc:324 ../lib/modules/sambaDomain.inc:608 +msgid "Minimum password age" +msgstr "Minimales Passwortalter" + +#: ../templates/config/mainmanage.php:386 ../lib/types/ppolicyType.inc:87 +#: ../lib/modules/ppolicy.inc:120 ../lib/modules/ppolicy.inc:147 +#: ../lib/modules/ppolicy.inc:175 ../lib/modules/ppolicy.inc:250 +#: ../lib/modules/ppolicy.inc:480 +msgid "Minimum password length" +msgstr "Minimale Passwortlänge" + +#: ../templates/config/mainmanage.php:391 +msgid "Minimum symbolic characters" +msgstr "Minimale Anzahl von Sonderzeichen" + +#: ../lib/modules/bindDLZ.inc:223 ../lib/modules/bindDLZ.inc:326 +#: ../lib/modules/bindDLZ.inc:427 ../lib/modules/bindDLZ.inc:525 +#: ../lib/modules/bindDLZ.inc:1030 ../lib/modules/bindDLZ.inc:1552 +msgid "Minimum time" +msgstr "Minimale Zeit" + +#: ../templates/config/mainmanage.php:389 +msgid "Minimum uppercase characters" +msgstr "Minimale Anzahl von Großbuchstaben" + +#: ../templates/3rdParty/pla/lib/import_functions.php:429 +msgid "Missing attributes for" +msgstr "Fehlende Attribute für" + +#: ../templates/3rdParty/pla/lib/import_functions.php:443 +msgid "Missing modify command add, delete or replace" +msgstr "Fehlende Änderungsanweisung add, delete oder replace" + +#: ../lib/types/user.inc:207 ../lib/modules/inetOrgPerson.inc:74 +#: ../lib/modules/inetOrgPerson.inc:160 ../lib/modules/inetOrgPerson.inc:436 +#: ../lib/modules/inetOrgPerson.inc:589 ../lib/modules/inetOrgPerson.inc:718 +#: ../lib/modules/inetOrgPerson.inc:722 ../lib/modules/inetOrgPerson.inc:1423 +#: ../lib/modules/inetOrgPerson.inc:1426 ../lib/modules/inetOrgPerson.inc:1935 +#: ../lib/modules/inetOrgPerson.inc:3600 ../lib/modules/inetOrgPerson.inc:3652 +msgid "Mobile number" +msgstr "Mobil" + +#: ../lib/modules/inetOrgPerson.inc:2547 +msgid "Mobile telephone number" +msgstr "Handynummer" + +#: ../lib/modules/qmailGroup.inc:86 ../lib/modules/qmailGroup.inc:212 +#: ../lib/modules/qmailGroup.inc:216 ../lib/modules/qmailGroup.inc:345 +#: ../lib/modules/qmailGroup.inc:405 ../lib/modules/qmailGroup.inc:427 +#: ../lib/modules/qmailGroup.inc:517 ../lib/modules/qmailGroup.inc:1066 +msgid "Moderator email addresses" +msgstr "Email-Adressen der Moderatoren" + +#: ../lib/modules/qmailGroup.inc:84 ../lib/modules/qmailGroup.inc:164 +#: ../lib/modules/qmailGroup.inc:168 ../lib/modules/qmailGroup.inc:287 +#: ../lib/modules/qmailGroup.inc:384 ../lib/modules/qmailGroup.inc:518 +#: ../lib/modules/qmailGroup.inc:786 ../lib/modules/qmailGroup.inc:1065 +msgid "Moderator entries" +msgstr "Moderatoren" + +#: ../lib/modules/qmailGroup.inc:76 ../lib/modules/qmailGroup.inc:106 +#: ../lib/modules/qmailGroup.inc:200 ../lib/modules/qmailGroup.inc:329 +#: ../lib/modules/qmailGroup.inc:399 ../lib/modules/qmailGroup.inc:603 +#: ../lib/modules/qmailGroup.inc:1061 +msgid "Moderator text" +msgstr "Moderationstext" + +#: ../lib/modules/qmailGroup.inc:201 +msgid "" +"Moderator text that is used to specify an own approval text used if the list " +"is moderated. The usual %HEADER% magic of qmail-reply etc. can be used here." +msgstr "" +"Der Moderationstext wird verwendet wenn eine email genehmigt werden muss. " +"Die normalen %HEADER%-Ersetzungen von qmail-reply etc. können hier verwendet " +"werden." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:61 +msgid "Modification not successful!" +msgstr "Änderung war nicht erfolgreich." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:59 +msgid "Modification successful!" +msgstr "Änderung war erfolgreich." + +#: ../lib/modules/generalInformation.inc:92 +msgid "Modification time" +msgstr "Änderungszeit" + +#: ../lib/modules/generalInformation.inc:88 +msgid "Modified by" +msgstr "Geändert von" + +#: ../templates/serverInfo.php:314 ../templates/serverInfo.php:387 +#: ../templates/multiEdit.php:126 +msgid "Modify" +msgstr "Ändern" + +#: ../templates/serverInfo.php:328 ../templates/serverInfo.php:393 +msgid "Modify RDN" +msgstr "RDN ändern" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:57 +msgid "Modify group" +msgstr "Gruppe ändern" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2110 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2111 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2114 +msgid "Modify group members" +msgstr "Gruppenmitglieder ändern" + +#: ../templates/3rdParty/pla/htdocs/import.php:32 +msgid "Modifying" +msgstr "Ändere" + +#: ../templates/config/confmodules.php:176 +#: ../templates/config/confmain.php:217 +#: ../templates/config/moduleSettings.php:175 +#: ../templates/config/conftypes.php:194 +#: ../templates/selfService/adminMain.php:403 +msgid "Module settings" +msgstr "Moduleinstellungen" + +#: ../templates/config/confmodules.php:172 +#: ../templates/config/confmain.php:213 +#: ../templates/config/moduleSettings.php:171 +#: ../templates/config/conftypes.php:190 +msgid "Modules" +msgstr "Module" + +#: ../lib/modules/sambaSamAccount.inc:1380 +msgid "Monday" +msgstr "Montag" + +#: ../lib/modules/sambaSamAccount.inc:558 +msgid "Mountain Time (US & Canada)" +msgstr "Mountain Time (USA & Kanada)" + +#: ../lib/modules/quota.inc:105 ../lib/modules/quota.inc:399 +#: ../lib/modules/quota.inc:506 ../lib/modules/quota.inc:633 +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:122 +#: ../lib/modules/systemQuotas.inc:382 +msgid "Mountpoint" +msgstr "Mountpunkt" + +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:98 +msgid "Mountpoint contains invalid characters." +msgstr "Mountpunkt enthält ungültige Zeichen." + +#: ../lib/modules/quota.inc:106 +msgid "Mountpoint of device with enabled quotas." +msgstr "Mountpunkt des Dateisystems mit aktivierten Quota." + +#: ../lib/modules/customFields.inc:636 +msgid "Move down" +msgstr "Nach unten" + +#: ../lib/modules/customFields.inc:630 +msgid "Move up" +msgstr "Nach oben" + +#: ../templates/multiEdit.php:78 ../lib/tools/multiEdit.inc:44 +msgid "Multi edit" +msgstr "Multieditor" + +#: ../lib/modules/customFields.inc:1910 ../lib/modules/customFields.inc:3304 +msgid "Multi value" +msgstr "Mehrfachwert" + +#: ../lib/modules/customFields.inc:3162 +msgid "Multi-select fields must not contain empty values." +msgstr "Auswahllisten mit Mehrfachauswahl dürfen keine leeren Werte enthalten." + +#: ../lib/modules/pykotaPrinter.inc:125 +#: ../lib/modules/zarafaDynamicGroup.inc:76 ../lib/modules/zarafaGroup.inc:78 +#: ../lib/modules/eduPerson.inc:98 ../lib/modules/eduPerson.inc:111 +#: ../lib/modules/eduPerson.inc:123 ../lib/modules/eduPerson.inc:139 +#: ../lib/modules/eduPerson.inc:147 ../lib/modules/zarafaUser.inc:164 +#: ../lib/modules/sudoRole.inc:100 ../lib/modules/sudoRole.inc:105 +#: ../lib/modules/sudoRole.inc:110 ../lib/modules/sudoRole.inc:115 +#: ../lib/modules/sudoRole.inc:120 ../lib/modules/sudoRole.inc:125 +msgid "Multiple values are separated by comma." +msgstr "Mehrere Werte werden per Komma getrennt." + +#: ../lib/modules/kolabGroup.inc:92 ../lib/modules/kolabGroup.inc:101 +#: ../lib/modules/kolabGroup.inc:110 ../lib/modules/nisMailAliasUser.inc:81 +#: ../lib/modules/nisMailAliasUser.inc:89 ../lib/modules/puppetClient.inc:85 +#: ../lib/modules/puppetClient.inc:97 ../lib/modules/puppetClient.inc:105 +#: ../lib/modules/device.inc:74 ../lib/modules/bindDLZ.inc:98 +#: ../lib/modules/bindDLZ.inc:107 ../lib/modules/bindDLZ.inc:112 +#: ../lib/modules/bindDLZ.inc:117 ../lib/modules/bindDLZ.inc:122 +#: ../lib/modules/bindDLZ.inc:127 ../lib/modules/bindDLZ.inc:132 +#: ../lib/modules/bindDLZ.inc:144 ../lib/modules/bindDLZ.inc:152 +#: ../lib/modules/bindDLZ.inc:160 ../lib/modules/bindDLZ.inc:168 +#: ../lib/modules/bindDLZ.inc:176 ../lib/modules/bindDLZ.inc:184 +#: ../lib/modules/bindDLZ.inc:192 ../lib/modules/bindDLZ.inc:200 +#: ../lib/modules/bindDLZ.inc:208 ../lib/modules/windowsUser.inc:149 +#: ../lib/modules/windowsUser.inc:185 ../lib/modules/windowsUser.inc:221 +#: ../lib/modules/windowsUser.inc:232 ../lib/modules/kolabUser.inc:158 +#: ../lib/modules/kolabUser.inc:167 ../lib/modules/inetOrgPerson.inc:655 +#: ../lib/modules/inetOrgPerson.inc:675 ../lib/modules/inetOrgPerson.inc:683 +#: ../lib/modules/inetOrgPerson.inc:691 ../lib/modules/inetOrgPerson.inc:699 +#: ../lib/modules/inetOrgPerson.inc:715 ../lib/modules/inetOrgPerson.inc:723 +#: ../lib/modules/inetOrgPerson.inc:731 ../lib/modules/inetOrgPerson.inc:739 +#: ../lib/modules/inetOrgPerson.inc:747 ../lib/modules/inetOrgPerson.inc:759 +#: ../lib/modules/inetOrgPerson.inc:779 ../lib/modules/inetOrgPerson.inc:791 +#: ../lib/modules/inetOrgPerson.inc:799 ../lib/modules/inetOrgPerson.inc:807 +#: ../lib/modules/inetOrgPerson.inc:819 ../lib/modules/inetOrgPerson.inc:827 +#: ../lib/modules/inetOrgPerson.inc:843 ../lib/modules/inetOrgPerson.inc:851 +#: ../lib/modules/inetOrgPerson.inc:859 ../lib/modules/systemQuotas.inc:70 +#: ../lib/modules/freeRadius.inc:101 ../lib/modules/kolabSharedFolder.inc:126 +#: ../lib/modules/kolabSharedFolder.inc:135 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/qmailGroup.inc:136 ../lib/modules/qmailGroup.inc:149 +#: ../lib/modules/qmailGroup.inc:161 ../lib/modules/qmailGroup.inc:169 +#: ../lib/modules/qmailGroup.inc:177 ../lib/modules/qmailGroup.inc:185 +#: ../lib/modules/qmailGroup.inc:193 ../lib/modules/qmailGroup.inc:209 +#: ../lib/modules/qmailGroup.inc:217 ../lib/modules/qmailGroup.inc:225 +#: ../lib/modules/groupOfNames.inc:98 +msgid "Multiple values are separated by semicolon." +msgstr "Mehrere Werte werden per Strichpunkt getrennt." + +#: ../lib/modules/asteriskAccount.inc:207 +#: ../lib/modules/asteriskAccount.inc:290 +#: ../lib/modules/asteriskAccount.inc:486 +#: ../lib/modules/asteriskAccount.inc:717 +#: ../lib/modules/asteriskAccount.inc:1006 +#: ../lib/modules/asteriskAccount.inc:1281 +msgid "Music on hold" +msgstr "Wartemusik" + +#: ../lib/modules/asteriskAccount.inc:208 +msgid "Music to play on hold." +msgstr "Wartemusik die gespielt werden soll." + +#: ../lib/modules/ipHost.inc:93 ../lib/modules/windowsHost.inc:108 +#: ../lib/modules/device.inc:111 ../lib/modules/windowsUser.inc:334 +#: ../lib/modules/inetOrgPerson.inc:398 ../lib/modules/inetOrgPerson.inc:406 +#: ../lib/modules/inetOrgPerson.inc:520 +msgid "MyCity" +msgstr "MeineStadt" + +#: ../lib/modules/windowsUser.inc:316 ../lib/modules/inetOrgPerson.inc:382 +msgid "Mystreetname 42" +msgstr "Musterstraße 42" + +#: ../lib/modules/asteriskAccount.inc:163 +#: ../lib/modules/asteriskAccount.inc:279 +#: ../lib/modules/asteriskAccount.inc:406 +#: ../lib/modules/asteriskAccount.inc:669 +#: ../lib/modules/asteriskAccount.inc:995 +#: ../lib/modules/asteriskAccount.inc:1259 +msgid "NAT" +msgstr "NAT" + +#: ../lib/modules/asteriskAccount.inc:164 +msgid "NAT setting for this account." +msgstr "NAT-Einstellung für diesen Account." + +#: ../lib/modules/windowsUser.inc:772 ../lib/modules/windowsGroup.inc:370 +msgid "NIS" +msgstr "NIS" + +#: ../lib/modules/windowsUser.inc:256 ../lib/modules/windowsUser.inc:466 +#: ../lib/modules/windowsUser.inc:481 ../lib/modules/windowsUser.inc:535 +#: ../lib/modules/windowsUser.inc:567 ../lib/modules/windowsUser.inc:777 +#: ../lib/modules/windowsUser.inc:1614 ../lib/modules/windowsGroup.inc:154 +#: ../lib/modules/windowsGroup.inc:169 ../lib/modules/windowsGroup.inc:243 +#: ../lib/modules/windowsGroup.inc:251 ../lib/modules/windowsGroup.inc:274 +#: ../lib/modules/windowsGroup.inc:375 ../lib/modules/windowsGroup.inc:750 +msgid "NIS domain" +msgstr "NIS-Domäne" + +#: ../lib/modules/windowsUser.inc:257 ../lib/modules/windowsGroup.inc:155 +msgid "NIS domain name." +msgstr "NIS-Domänenname" + +#: ../lib/modules/windowsUser.inc:252 ../lib/modules/windowsUser.inc:458 +#: ../lib/modules/windowsUser.inc:532 ../lib/modules/windowsUser.inc:566 +#: ../lib/modules/windowsUser.inc:620 ../lib/modules/windowsUser.inc:774 +#: ../lib/modules/windowsUser.inc:1613 ../lib/modules/windowsGroup.inc:150 +#: ../lib/modules/windowsGroup.inc:168 ../lib/modules/windowsGroup.inc:235 +#: ../lib/modules/windowsGroup.inc:271 ../lib/modules/windowsGroup.inc:289 +#: ../lib/modules/windowsGroup.inc:372 ../lib/modules/windowsGroup.inc:749 +msgid "NIS name" +msgstr "NIS-Name" + +#: ../lib/modules/windowsUser.inc:620 ../lib/modules/windowsUser.inc:621 +#: ../lib/modules/windowsGroup.inc:289 ../lib/modules/windowsGroup.inc:290 +msgid "" +"NIS name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"NIS-Name enthält ungültige Zeichen. Gültige Zeichen sind: a-z, A-Z, 0-9 " +"und .-_!" + +#: ../lib/modules/nisnetgroup.inc:67 +msgid "NIS net group" +msgstr "NIS Netzgruppe" + +#: ../lib/types/netgroup.inc:62 +msgid "NIS netgroup entries" +msgstr "NIS Netzgruppeneinträge" + +#: ../lib/types/netgroup.inc:53 +msgid "NIS netgroups" +msgstr "NIS Netzgruppen" + +#: ../lib/modules/nisObject.inc:47 +msgid "NIS object" +msgstr "NIS-Objekt" + +#: ../lib/types/nisObjectType.inc:155 +#, php-format +msgid "NIS object count: %s" +msgstr "Anzahl NIS-Objekte: %s" + +#: ../lib/types/nisObjectType.inc:48 +msgid "NIS object entries" +msgstr "NIS-Objekteinträge" + +#: ../lib/types/nisObjectType.inc:39 +msgid "NIS objects" +msgstr "NIS-Objekte" + +#: ../lib/modules/bindDLZ.inc:120 ../lib/modules/bindDLZ.inc:364 +#: ../lib/modules/bindDLZ.inc:370 ../lib/modules/bindDLZ.inc:489 +msgid "NS record" +msgstr "NS-Eintrag" + +#: ../templates/serverInfo.php:147 ../templates/masscreate.php:294 +#: ../templates/masscreate.php:368 ../templates/schema/schema.php:268 +#: ../lib/types/automountType.inc:86 ../lib/types/automountType.inc:249 +#: ../lib/types/oracleContextType.inc:77 ../lib/types/ppolicyType.inc:77 +#: ../lib/types/bind.inc:190 ../lib/modules/device.inc:61 +#: ../lib/modules/device.inc:89 ../lib/modules/device.inc:120 +#: ../lib/modules/device.inc:170 ../lib/modules/device.inc:418 +#: ../lib/modules/range.inc:117 ../lib/modules/range.inc:138 +#: ../lib/modules/range.inc:553 ../lib/modules/nisObject.inc:61 +#: ../lib/modules/nisObject.inc:81 ../lib/modules/nisObject.inc:111 +#: ../lib/modules/nisObject.inc:137 ../lib/modules/nisObject.inc:209 +#: ../lib/modules/ppolicy.inc:80 ../lib/modules/ppolicy.inc:142 +#: ../lib/modules/ppolicy.inc:165 ../lib/modules/ppolicy.inc:190 +#: ../lib/modules/ppolicy.inc:471 ../lib/modules/automount.inc:64 +#: ../lib/modules/automount.inc:80 ../lib/modules/automount.inc:103 +#: ../lib/modules/automount.inc:128 ../lib/modules/automount.inc:181 +#: ../lib/modules/kolabSharedFolder.inc:112 +#: ../lib/modules/kolabSharedFolder.inc:174 +#: ../lib/modules/kolabSharedFolder.inc:233 +#: ../lib/modules/kolabSharedFolder.inc:261 +#: ../lib/modules/kolabSharedFolder.inc:279 +#: ../lib/modules/kolabSharedFolder.inc:557 +#: ../lib/modules/asteriskExtension.inc:822 +#: ../lib/modules/oracleService.inc:61 ../lib/modules/oracleService.inc:77 +#: ../lib/modules/oracleService.inc:98 ../lib/modules/oracleService.inc:121 +#: ../lib/modules/oracleService.inc:170 ../lib/modules/customFields.inc:84 +#: ../lib/modules/customFields.inc:1041 ../lib/modules/customFields.inc:1688 +#: ../lib/modules/organizationalRole.inc:186 +#: ../lib/modules/groupOfNames.inc:232 +msgid "Name" +msgstr "Name" + +#: ../lib/modules/nisMailAliasUser.inc:97 +msgid "Name of new alias entry." +msgstr "Der Name für den neuen Aliaseintrag." + +#: ../lib/modules/zarafaAddressList.inc:64 +msgid "Name of the address list which should be created." +msgstr "Name der der erstellenden Adressliste." + +#: ../lib/modules/bindDLZ.inc:155 ../lib/modules/bindDLZ.inc:159 +#: ../lib/modules/bindDLZ.inc:364 ../lib/modules/bindDLZ.inc:506 +#: ../lib/modules/bindDLZ.inc:1169 +msgid "Name server" +msgstr "Name-Server" + +#: ../lib/modules/bindDLZ.inc:431 ../lib/modules/bindDLZ.inc:1569 +msgid "Name servers" +msgstr "Name-Server" + +#: ../lib/modules/bindDLZ.inc:1167 +msgid "Name servers (\"NS\" records)" +msgstr "Name-Server (\"NS\"-Einträge)" + +#: ../help/help.inc:189 +msgid "" +"Name under which the profile will be saved. If a profile with the same name " +"exists, it will be overwritten." +msgstr "" +"Name, unter dem das Profil gespeichert wird. Falls ein Profil mit diesem " +"Namen existiert wird es überschrieben." + +#: ../lib/modules/namedObject.inc:45 +msgid "Named object" +msgstr "Namensobjekt" + +#: ../lib/modules/dhcp_settings.inc:193 ../lib/modules/dhcp_settings.inc:216 +#: ../lib/modules/dhcp_settings.inc:610 ../lib/modules/dhcp_settings.inc:686 +#: ../lib/modules/freeRadius.inc:88 ../lib/modules/freeRadius.inc:124 +#: ../lib/modules/freeRadius.inc:138 ../lib/modules/freeRadius.inc:201 +#: ../lib/modules/freeRadius.inc:228 ../lib/modules/freeRadius.inc:285 +#: ../lib/modules/freeRadius.inc:538 +msgid "Net mask" +msgstr "Netzmaske" + +#: ../lib/modules/dhcp_settings.inc:169 ../lib/modules/dhcp_settings.inc:213 +#: ../lib/modules/dhcp_settings.inc:228 ../lib/modules/dhcp_settings.inc:280 +#: ../lib/modules/dhcp_settings.inc:581 ../lib/modules/dhcp_settings.inc:679 +msgid "Netbios name servers" +msgstr "Netbios-Name-Server" + +#: ../lib/modules/dhcp_settings.inc:173 ../lib/modules/dhcp_settings.inc:214 +#: ../lib/modules/dhcp_settings.inc:230 ../lib/modules/dhcp_settings.inc:286 +#: ../lib/modules/dhcp_settings.inc:591 ../lib/modules/dhcp_settings.inc:680 +msgid "Netbios node type" +msgstr "Netbios-Knotentyp" + +#: ../lib/types/dhcp.inc:118 ../lib/types/dhcp.inc:172 +msgid "New DHCP" +msgstr "Neuer DHCP" + +#: ../lib/types/bind.inc:100 ../lib/types/bind.inc:161 +msgid "New DNS entry" +msgstr "Neuer DNS-Eintrag" + +#: ../lib/types/nisObjectType.inc:102 ../lib/types/nisObjectType.inc:157 +msgid "New NIS object" +msgstr "Neues NIS-Objekt" + +#: ../templates/ou_edit.php:77 +msgid "New OU created successfully." +msgstr "Neue OU erfolgreich erstellt." + +#: ../lib/modules/windowsUser.inc:340 ../lib/modules/inetOrgPerson.inc:528 +msgid "New York" +msgstr "New York" + +#: ../lib/types/zarafaAddressListType.inc:117 +#: ../lib/types/zarafaAddressListType.inc:146 +msgid "New address list" +msgstr "Neue Adressliste" + +#: ../lib/types/mailAlias.inc:114 ../lib/types/mailAlias.inc:143 +#: ../lib/types/alias.inc:114 ../lib/types/alias.inc:143 +msgid "New alias" +msgstr "Neuer Alias" + +#: ../lib/types/automountType.inc:110 ../lib/types/automountType.inc:217 +msgid "New automount entry" +msgstr "Neuer Automount-Eintrag" + +#: ../lib/types/automountType.inc:233 ../lib/types/automountType.inc:234 +msgid "New automount map" +msgstr "Neue Automount-Map" + +#: ../lib/types/pykotaBillingCodeType.inc:116 +#: ../lib/types/pykotaBillingCodeType.inc:165 +msgid "New billing code" +msgstr "Neuer Rechnungscode" + +#: ../lib/types/oracleContextType.inc:101 +#: ../lib/types/oracleContextType.inc:188 +msgid "New database entry" +msgstr "Neuer Datenbank-Eintrag" + +#: ../templates/config/profmanage.php:146 +msgid "New default profile set successfully." +msgstr "Neues Standardprofil wurde erfolgreich gesetzt." + +#: ../lib/types/smbDomain.inc:114 ../lib/types/smbDomain.inc:169 +msgid "New domain" +msgstr "Neue Domäne" + +#: ../lib/types/asteriskExt.inc:117 ../lib/types/asteriskExt.inc:145 +msgid "New extension" +msgstr "Neue Erweiterung" + +#: ../templates/pdfedit/pdfpage.php:620 +msgid "New field" +msgstr "Neues Feld" + +#: ../lib/types/gon.inc:140 ../lib/types/gon.inc:204 +#: ../lib/types/zarafaDynamicGroupType.inc:119 +#: ../lib/types/zarafaDynamicGroupType.inc:167 ../lib/types/group.inc:163 +#: ../lib/types/group.inc:242 ../lib/types/netgroup.inc:116 +#: ../lib/types/netgroup.inc:171 +msgid "New group" +msgstr "Neue Gruppe" + +#: ../lib/types/host.inc:128 ../lib/types/host.inc:195 +msgid "New host" +msgstr "Neuer Host" + +#: ../lib/modules/inetLocalMailRecipient.inc:167 +msgid "New local address" +msgstr "Neue lokale Adresse" + +#: ../templates/config/mainmanage.php:456 +msgid "New master password" +msgstr "Neues Hauptpasswort" + +#: ../templates/config/mainmanage.php:79 +msgid "New master password set successfully." +msgstr "Neues Hauptpasswort wurde erfolgreich gesetzt." + +#: ../lib/lists.inc:114 +msgid "New object" +msgstr "Neues Objekt" + +#: ../templates/ou_edit.php:185 ../help/help.inc:263 +msgid "New organisational unit" +msgstr "Neue Organisational Unit" + +#: ../templates/config/confmain.php:451 +#: ../lib/modules/sambaSamAccount.inc:2272 +#: ../lib/modules/posixAccount.inc:2536 ../lib/modules/windowsUser.inc:1719 +#: ../lib/modules/passwordSelfReset.inc:1059 +msgid "New password" +msgstr "Neues Passwort" + +#: ../templates/config/profmanage.php:133 +msgid "New password set successfully." +msgstr "Neues Passwort wurde erfolgreich gesetzt." + +#: ../lib/types/ppolicyType.inc:122 ../lib/types/ppolicyType.inc:151 +msgid "New policy" +msgstr "Neue Richtlinie" + +#: ../lib/modules/range.inc:113 ../lib/modules/range.inc:627 +msgid "New pool" +msgstr "Neuer Pool" + +#: ../lib/types/pykotaPrinterType.inc:117 +#: ../lib/types/pykotaPrinterType.inc:166 +msgid "New printer" +msgstr "Neuer Drucker" + +#: ../templates/config/profmanage.php:261 +#: ../templates/selfService/profManage.php:222 +msgid "New profile name" +msgstr "Neuer Profilname" + +#: ../lib/modules/range.inc:109 ../lib/modules/range.inc:136 +#: ../lib/modules/range.inc:542 ../lib/modules/range.inc:616 +msgid "New range" +msgstr "Neuer Adressbereich" + +#: ../lib/modules/nisMailAlias.inc:208 +msgid "New recipient" +msgstr "Neuer Empfänger" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:81 +msgid "New required attributes" +msgstr "Neue erforderliche Attribute" + +#: ../lib/types/gon.inc:211 ../lib/types/group.inc:249 +msgid "New role" +msgstr "Neue Rolle" + +#: ../templates/pdfedit/pdfpage.php:588 +msgid "New section" +msgstr "Neuer Abschnitt" + +#: ../lib/types/kolabSharedFolderType.inc:114 +#: ../lib/types/kolabSharedFolderType.inc:143 +msgid "New shared folder" +msgstr "Neuer gemeinsamer Ordner" + +#: ../lib/types/sudo.inc:106 ../lib/types/sudo.inc:161 +msgid "New sudo role" +msgstr "Neue Sudo-Rolle" + +#: ../lib/types/user.inc:172 ../lib/types/user.inc:531 +msgid "New user" +msgstr "Neuer Benutzer" + +#: ../lib/modules/inetOrgPerson.inc:1859 +msgid "New user certificate" +msgstr "Neues Benutzerzertifikat" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "New value" +msgstr "Neuer Wert" + +#: ../lib/types/bind.inc:174 ../lib/types/bind.inc:175 +msgid "New zone" +msgstr "Neue Zone" + +#: ../lib/modules/sambaDomain.inc:85 ../lib/modules/sambaDomain.inc:165 +#: ../lib/modules/sambaDomain.inc:186 ../lib/modules/sambaDomain.inc:361 +#: ../lib/modules/sambaDomain.inc:601 +msgid "Next RID" +msgstr "Nächste RID" + +#: ../lib/modules/sambaDomain.inc:212 ../lib/modules/sambaDomain.inc:213 +msgid "Next RID is not a number!" +msgstr "Nächste RID ist keine Zahl!" + +#: ../lib/modules/sambaDomain.inc:86 +msgid "Next RID to use when creating accounts (only used by Winbind)." +msgstr "Nächste RID für neue Accounts (wird nur von Winbind verwendet)." + +#: ../lib/modules/sambaDomain.inc:94 +msgid "Next RID to use when creating group accounts (only used by Winbind)." +msgstr "Nächste RID für neue Gruppen (wird nur von Winbind verwendet)." + +#: ../lib/modules/sambaDomain.inc:90 +msgid "Next RID to use when creating user accounts (only used by Winbind)." +msgstr "Nächste RID für neue Benutzer (wird nur von Winbind verwendet)." + +#: ../lib/modules/sambaDomain.inc:93 ../lib/modules/sambaDomain.inc:177 +#: ../lib/modules/sambaDomain.inc:188 ../lib/modules/sambaDomain.inc:377 +#: ../lib/modules/sambaDomain.inc:603 +msgid "Next group RID" +msgstr "Nächste Gruppen-RID" + +#: ../lib/modules/sambaDomain.inc:216 ../lib/modules/sambaDomain.inc:217 +msgid "Next group RID is not a number!" +msgstr "Nächste Gruppen-RID ist keine Zahl!" + +#: ../lib/modules/sambaDomain.inc:89 ../lib/modules/sambaDomain.inc:171 +#: ../lib/modules/sambaDomain.inc:187 ../lib/modules/sambaDomain.inc:369 +#: ../lib/modules/sambaDomain.inc:602 +msgid "Next user RID" +msgstr "Nächste Benutzer-RID" + +#: ../lib/modules/sambaDomain.inc:214 ../lib/modules/sambaDomain.inc:215 +msgid "Next user RID is not a number!" +msgstr "Nächste Benutzer-RID ist keine Zahl!" + +#: ../lib/modules/eduPerson.inc:101 ../lib/modules/eduPerson.inc:188 +#: ../lib/modules/eduPerson.inc:226 ../lib/modules/eduPerson.inc:342 +#: ../lib/modules/eduPerson.inc:584 +msgid "Nick names" +msgstr "Spitznamen" + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/pykotaPrinter.inc:52 +#: ../lib/modules/pykotaPrinter.inc:168 ../lib/modules/pykotaPrinter.inc:169 +#: ../lib/modules/pykotaPrinter.inc:170 ../lib/modules/qmailGroup.inc:321 +#: ../lib/modules/qmailGroup.inc:322 ../lib/modules/qmailGroup.inc:323 +#: ../lib/modules/qmailGroup.inc:363 ../lib/modules/qmailGroup.inc:364 +#: ../lib/modules/qmailGroup.inc:365 ../lib/modules/qmailGroup.inc:1030 +#: ../lib/modules/qmailGroup.inc:1071 ../lib/modules/qmailGroup.inc:1077 +#: ../lib/modules/imapAccess.inc:121 +msgid "No" +msgstr "Nein" + +#: ../lib/types/asteriskExt.inc:144 +msgid "No Asterisk extensions found." +msgstr "Keine Asterisk-Erweiterungen gefunden." + +#: ../lib/types/dhcp.inc:171 +msgid "No DHCPs found!" +msgstr "Keine DHCPs gefunden!" + +#: ../lib/types/bind.inc:160 +msgid "No DNS entries found!" +msgstr "Keine DNS-Einträge gefunden!" + +#: ../lib/types/nisObjectType.inc:156 +msgid "No NIS objects found!" +msgstr "Keine NIS-Objekte gefunden!" + +#: ../templates/3rdParty/pla/lib/Template.php:558 +#: ../templates/3rdParty/pla/lib/Template.php:559 +msgid "No RDN attribute was selected." +msgstr "Es wurde kein RDN-Attribut gewählt." + +#: ../lib/modules/sambaSamAccount.inc:1108 +#: ../lib/modules/sambaGroupMapping.inc:341 +msgid "No Samba 3 domains found in LDAP! Please create one first." +msgstr "Keine Samba 3 Domänen gefunden, bitte erstellen Sie eine." + +#: ../lib/modules/posixAccount.inc:581 ../lib/modules/posixAccount.inc:1367 +msgid "No Unix groups found in LDAP! Please create one first." +msgstr "Keine Unix-Gruppen gefunden, bitte erstellen Sie eine." + +#: ../lib/modules/qmailUser.inc:42 +msgid "No access" +msgstr "Kein Zugriff" + +#: ../lib/types/zarafaAddressListType.inc:145 +msgid "No address list found!" +msgstr "Keine Adressliste gefunden!" + +#: ../lib/types/mailAlias.inc:142 ../lib/types/alias.inc:142 +msgid "No aliases found!" +msgstr "Keine Aliase gefunden!" + +#: ../lib/types/automountType.inc:216 +msgid "No automount entries found!" +msgstr "Keine Automount-Einträge gefunden!" + +#: ../lib/types/pykotaBillingCodeType.inc:164 +msgid "No billing codes found!" +msgstr "Keine Rechnungscodes gefunden!" + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:36 +msgid "No binary data available" +msgstr "Keine Binärdaten verfügbar" + +#: ../templates/initsuff.php:164 +msgid "No changes were made." +msgstr "Keine Änderungen vorgenommen." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:83 +#, php-format +msgid "No current value for attribute %s." +msgstr "Derzeit kein Wert für das Attribut %s." + +#: ../lib/types/oracleContextType.inc:187 +msgid "No database entries found!" +msgstr "Keine Datenbankeinträge gefunden!" + +#: ../templates/login.php:104 +msgid "" +"No default profile set. Please set it in the server profile configuration." +msgstr "" +"Kein Standardprofil gesetzt. Bitte setzen Sie es in der Konfiguration für " +"Serverprofile." + +#: ../templates/schema/schema.php:144 +msgid "No description" +msgstr "Keine Beschreibung" + +#: ../lib/types/smbDomain.inc:168 +msgid "No domains found!" +msgstr "Keine Domänen gefunden!" + +#: ../lib/modules/passwordSelfReset.inc:1546 +msgid "No email address found." +msgstr "Keine email-Adresse gefunden." + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:20 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:21 +msgid "No entry was selected to delete" +msgstr "Kein Eintrag zum Löschen ausgewählt." + +#: ../lib/modules/ldapPublicKey.inc:483 ../lib/modules/inetOrgPerson.inc:3288 +#: ../lib/modules/customFields.inc:3642 +msgid "No file received." +msgstr "Keine Datei empfangen." + +#: ../templates/config/mainmanage.php:161 ../lib/modules/ldapPublicKey.inc:109 +#: ../lib/modules/inetOrgPerson.inc:101 ../lib/modules/customFields.inc:3577 +msgid "No file selected." +msgstr "Keine Datei gewählt." + +#: ../lib/modules/qmailUser.inc:48 +msgid "No forwarding" +msgstr "Keine Weiterleitung" + +#: ../lib/modules/posixGroup.inc:596 ../lib/modules/posixAccount.inc:104 +msgid "No free ID-Number!" +msgstr "Keine ID-Nummer mehr frei!" + +#: ../lib/types/gon.inc:203 ../lib/types/zarafaDynamicGroupType.inc:166 +#: ../lib/types/group.inc:241 ../lib/types/netgroup.inc:170 +msgid "No groups found!" +msgstr "Keine Gruppen gefunden!" + +#: ../lib/types/host.inc:194 +msgid "No hosts found!" +msgstr "Keine Hosts gefunden!" + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:59 +msgid "No image available" +msgstr "Kein Bild verfügbar" + +#: ../templates/3rdParty/pla/lib/import_functions.php:94 +msgid "No import input" +msgstr "Keine Eingabedaten für Import" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1354 +msgid "No internal attributes" +msgstr "Keine internen Attribute" + +#: ../templates/tests/lamdaemonTest.php:195 +msgid "No lamdaemon path set, please update your LAM configuration settings." +msgstr "" +"Es wurde kein Pfad für den Lamdaemon gesetzt, bitte ändern Sie Ihre LAM-" +"Einstellungen." + +#: ../templates/tests/lamdaemonTest.php:97 +#: ../templates/tests/lamdaemonTest.php:190 +msgid "No lamdaemon server set, please update your LAM configuration settings." +msgstr "" +"Es wurde kein Server für den Lamdaemon gesetzt, bitte ändern Sie Ihre LAM-" +"Einstellungen." + +#: ../lib/modules/qmailUser.inc:49 +msgid "No local delivery" +msgstr "Keine lokale Auslieferung" + +#: ../templates/config/mainmanage.php:412 +msgid "No logging" +msgstr "Kein Logging" + +#: ../templates/pdfedit/pdfpage.php:429 +msgid "No logo" +msgstr "Kein Logo" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:157 +msgid "No new attributes available for this entry" +msgstr "Keine neuen Attribute für diesen Eintrag verfügbar" + +#: ../templates/config/conftypes.php:325 ../help/help.inc:176 +msgid "No new entries" +msgstr "Keine neuen Einträge" + +#: ../templates/multiEdit.php:315 ../lib/lists.inc:113 +msgid "No objects found!" +msgstr "Keine Objekte gefunden!" + +#: ../templates/config/confmodules.php:406 +msgid "No or more than one base module selected!" +msgstr "Es wurde kein oder mehrere Basismodule gewählt!" + +#: ../templates/config/confsave.php:53 ../templates/config/confmain.php:55 +#: ../lib/modules/passwordSelfReset.inc:1169 +msgid "No password was entered!" +msgstr "Passwort leer!" + +#: ../lib/types/ppolicyType.inc:150 +msgid "No policies found!" +msgstr "Keine Richtlinien gefunden!" + +#: ../lib/types/pykotaPrinterType.inc:165 +msgid "No printers found!" +msgstr "Keine Drucker gefunden!" + +#: ../templates/tests/schemaTest.php:70 +msgid "No problems found." +msgstr "Keine Probleme gefunden." + +#: ../lib/modules/qmailUser.inc:50 +msgid "No program delivery" +msgstr "Keine Auslieferung mit Programm" + +#: ../lib/modules/pykotaGroup.inc:63 ../lib/modules/pykotaUser.inc:63 +msgid "No quota" +msgstr "Kein Quota" + +#: ../lib/types/gon.inc:210 ../lib/types/group.inc:248 +msgid "No roles found!" +msgstr "Keine Rollen gefunden!" + +#: ../lib/modules/customScripts.inc:215 +msgid "No scripts to run." +msgstr "Keine Skripte zum Ausführen." + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "No section text specified" +msgstr "Kein Abschnittsname angegeben" + +#: ../lib/modules/passwordSelfReset.inc:1199 +msgid "No security answer found." +msgstr "Keine Antwort auf Sicherheitsfrage gefunden." + +#: ../templates/config/conflogin.php:137 +msgid "No server profiles found. Please create one." +msgstr "Keine Serverprofile gefunden, bitte erstellen Sie eines." + +#: ../lib/types/kolabSharedFolderType.inc:142 +msgid "No shared folders found!" +msgstr "Keine gemeinsamen Ordner gefunden!" + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "No static text specified" +msgstr "Kein statischer Text angegeben" + +#: ../lib/modules/dhcp_settings.inc:318 +msgid "No subnet entered." +msgstr "Kein Subnetz angegeben." + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:45 +msgid "No such entry" +msgstr "Kein Eintrag gefunden" + +#: ../templates/3rdParty/pla/htdocs/compare.php:24 +#: ../templates/3rdParty/pla/htdocs/compare.php:27 +#: ../templates/3rdParty/pla/htdocs/delete.php:19 +msgid "No such entry." +msgstr "Kein Eintrag gefunden." + +#: ../templates/schema/schema.php:438 +#, php-format +msgid "No such schema item: \"%s\"" +msgstr "Schema-Objekt existiert nicht: \"%s\"" + +#: ../lib/types/sudo.inc:160 +msgid "No sudo roles found!" +msgstr "Keine Sudo-Rollen gefunden!" + +#: ../lib/types/user.inc:530 +msgid "No users found!" +msgstr "Keine Benutzer gefunden!" + +#: ../templates/config/mainmanage.php:444 +msgid "Non-standard (\\n)" +msgstr "Nicht-Standard (\\n)" + +#: ../lib/modules/qmailUser.inc:58 +msgid "None" +msgstr "Keiner" + +#: ../lib/modules/sudoRole.inc:133 ../lib/modules/sudoRole.inc:195 +#: ../lib/modules/sudoRole.inc:222 ../lib/modules/sudoRole.inc:281 +#: ../lib/modules/sudoRole.inc:481 ../lib/modules/sudoRole.inc:822 +msgid "Not after" +msgstr "Nicht nach" + +#: ../lib/modules/sudoRole.inc:128 ../lib/modules/sudoRole.inc:201 +#: ../lib/modules/sudoRole.inc:223 ../lib/modules/sudoRole.inc:283 +#: ../lib/modules/sudoRole.inc:474 ../lib/modules/sudoRole.inc:817 +msgid "Not before" +msgstr "Nicht vor" + +#: ../help/help.inc:68 +msgid "Note" +msgstr "Hinweis" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:125 +msgid "" +"Note: You may be required to enter new attributes that these object classes " +"require" +msgstr "" +"Hinweis: Sie müssen ggf. zusätzliche Attribute angeben, die von diesen " +"Objektklassen gefordert werden." + +#: ../lib/modules/windowsGroup.inc:122 ../lib/modules/windowsGroup.inc:189 +#: ../lib/modules/windowsGroup.inc:259 ../lib/modules/windowsGroup.inc:349 +#: ../lib/modules/windowsGroup.inc:747 +msgid "Notes" +msgstr "Notizen" + +#: ../templates/3rdParty/pla/lib/export_functions.php:450 +msgid "Nothing to export" +msgstr "Nichts zu exportieren" + +#: ../templates/config/mainmanage.php:408 +msgid "Notice" +msgstr "Hinweis" + +#: ../templates/delete.php:103 +msgid "Number of child entries" +msgstr "Anzahl Untereinträge" + +#: ../lib/modules/customFields.inc:129 +msgid "Number of columns in text area." +msgstr "Anzahl Spalten in der Textbox." + +#: ../lib/modules/shadowAccount.inc:182 +msgid "" +"Number of days a user can login even his password has expired. -1=always." +msgstr "" +"Anzahl der Tage, in denen sich ein Benutzer anmelden kann, obwohl sein " +"Passwort bereits abgelaufen ist. -1 = immer." + +#: ../lib/modules/shadowAccount.inc:186 +msgid "" +"Number of days a user has to wait until he is allowed to change his password " +"again. If set value must be >0." +msgstr "" +"Anzahl Tage, die ein Benutzer warten muss bevor er sein Passwort ändern " +"darf. Wert muss >0 sein." + +#: ../lib/modules/shadowAccount.inc:190 +msgid "" +"Number of days after a user has to change his password again. If set value " +"must be >0." +msgstr "" +"Anzahl Tage, nach denen der Benutzer sein Passwort ändern muss. Wert muss >0 " +"sein." + +#: ../lib/modules/mitKerberos.inc:129 +msgid "Number of failed logins." +msgstr "Anzahl gescheiterter Anmeldungen." + +#: ../lib/modules/sambaDomain.inc:138 +msgid "Number of minutes after which the bad logon attempts are reset." +msgstr "" +"Zeit in Minuten, nach der der Zähler für fehlerhafte Anmeldungen " +"zurückgesetzt wird." + +#: ../lib/modules/pykotaBillingCode.inc:90 +msgid "Number of pages printed with this billing code." +msgstr "Die Anzahl Seiten, die mit diesem Rechnungscode gedruckt wurden." + +#: ../lib/modules/customFields.inc:133 +msgid "Number of rows in text area." +msgstr "Anzahl Zeilen in der Textbox." + +#: ../templates/config/mainmanage.php:395 ../help/help.inc:162 +msgid "Number of rules that must match" +msgstr "Anzahl Regeln, die erfüllt sein müssen" + +#: ../lib/modules/ppolicy.inc:85 ../lib/modules/sambaDomain.inc:126 +msgid "" +"Number of seconds after the user is allowed to change his password again." +msgstr "" +"Zeit in Sekunden nach der der Benutzer sein Passwort erneut ändern darf." + +#: ../lib/modules/ppolicy.inc:89 ../lib/modules/sambaDomain.inc:130 +msgid "Number of seconds after which the user must change his password." +msgstr "Zeit in Sekunden nach der der Benutzer sein Passwort ändern muss." + +#: ../templates/schema/schema.php:147 ../templates/schema/schema.php:344 +msgid "OID" +msgstr "OID" + +#: ../templates/ou_edit.php:83 +msgid "OU already exists!" +msgstr "OU besteht schon!" + +#: ../templates/ou_edit.php:94 +msgid "OU deleted successfully." +msgstr "OU erfolgreich gelöscht." + +#: ../templates/ou_edit.php:152 ../lib/tools/ouEditor.inc:44 +msgid "OU editor" +msgstr "OU-Editor" + +#: ../templates/ou_edit.php:87 +msgid "OU is invalid!" +msgstr "OU ist ungültig!" + +#: ../templates/ou_edit.php:131 +msgid "OU is not empty or invalid!" +msgstr "OU ist nicht leer oder ungültig!" + +#: ../help/help.inc:263 ../help/help.inc:265 +msgid "OU-Editor" +msgstr "OU-Editor" + +#: ../templates/schema/schema.php:65 ../templates/schema/schema.php:66 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1324 +#: ../lib/modules/selfRegistration.inc:74 +#: ../lib/modules/selfRegistration.inc:214 ../lib/modules/customFields.inc:80 +#: ../lib/modules/customFields.inc:574 +msgid "Object classes" +msgstr "Objektklassen" + +#: ../lib/lists.inc:112 +#, php-format +msgid "Object count: %s" +msgstr "Anzahl Objekte: %s" + +#: ../templates/schema/schema.php:152 ../templates/schema/schema.php:283 +msgid "Obsolete" +msgstr "Veraltet" + +#: ../lib/modules/sambaDomain.inc:289 ../lib/modules/sambaDomain.inc:298 +#: ../lib/modules/sambaDomain.inc:307 ../lib/modules/sambaDomain.inc:614 +#: ../lib/modules/sambaDomain.inc:619 ../lib/modules/sambaDomain.inc:624 +msgid "Off" +msgstr "Aus" + +#: ../lib/modules/windowsUser.inc:152 ../lib/modules/windowsUser.inc:344 +#: ../lib/modules/windowsUser.inc:508 ../lib/modules/windowsUser.inc:541 +#: ../lib/modules/windowsUser.inc:713 ../lib/modules/windowsUser.inc:1604 +#: ../lib/modules/windowsUser.inc:1733 ../lib/modules/inetOrgPerson.inc:164 +#: ../lib/modules/inetOrgPerson.inc:202 ../lib/modules/inetOrgPerson.inc:542 +#: ../lib/modules/inetOrgPerson.inc:577 ../lib/modules/inetOrgPerson.inc:814 +#: ../lib/modules/inetOrgPerson.inc:818 ../lib/modules/inetOrgPerson.inc:1383 +#: ../lib/modules/inetOrgPerson.inc:1386 ../lib/modules/inetOrgPerson.inc:1945 +#: ../lib/modules/inetOrgPerson.inc:2679 ../lib/modules/inetOrgPerson.inc:3592 +#: ../lib/modules/inetOrgPerson.inc:3650 +msgid "Office name" +msgstr "Büroname" + +#: ../templates/lists/changePassword.php:349 +#: ../templates/lists/changePassword.php:386 +#: ../templates/lists/changePassword.php:427 +#: ../templates/lists/changePassword.php:458 +#: ../templates/tests/lamdaemonTest.php:92 ../templates/ou_edit.php:193 +#: ../templates/ou_edit.php:207 ../templates/masscreate.php:211 +#: ../templates/config/profmanage.php:254 +#: ../templates/config/profmanage.php:266 +#: ../templates/config/profmanage.php:275 +#: ../templates/config/profmanage.php:293 +#: ../templates/config/profmanage.php:302 +#: ../templates/config/profmanage.php:304 +#: ../templates/config/mainmanage.php:469 +#: ../templates/config/conflogin.php:177 ../templates/config/mainlogin.php:165 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminLogin.php:165 +#: ../templates/selfService/adminMain.php:594 +#: ../templates/selfService/adminMain.php:647 +#: ../templates/pdfedit/pdfmain.php:210 ../templates/pdfedit/pdfmain.php:217 +#: ../templates/pdfedit/pdfmain.php:223 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/profedit/profilemain.php:205 +#: ../templates/profedit/profilemain.php:211 +#: ../lib/types/automountType.inc:234 ../lib/types/user.inc:303 +#: ../lib/types/bind.inc:175 ../lib/modules/selfRegistration.inc:446 +#: ../lib/modules/zarafaContact.inc:433 ../lib/modules/zarafaGroup.inc:493 +#: ../lib/modules/device.inc:300 ../lib/modules/sambaSamAccount.inc:1436 +#: ../lib/modules/sambaSamAccount.inc:1571 ../lib/modules/zarafaUser.inc:917 +#: ../lib/modules/zarafaUser.inc:968 ../lib/modules/sambaGroupMapping.inc:508 +#: ../lib/modules/nisnetgroup.inc:479 ../lib/modules/nisnetgroup.inc:489 +#: ../lib/modules/asteriskExtension.inc:484 ../lib/modules/aliasEntry.inc:146 +#: ../lib/modules/aliasEntry.inc:166 ../lib/modules/qmailGroup.inc:862 +#: ../lib/modules/imapAccess.inc:295 ../lib/modules/organizationalRole.inc:337 +#: ../lib/modules/passwordSelfReset.inc:872 +#: ../lib/modules/passwordSelfReset.inc:1094 +#: ../lib/modules/windowsGroup.inc:603 ../lib/modules/groupOfNames.inc:394 +#: ../lib/modules/groupOfNames.inc:549 ../lib/modules/nisMailAlias.inc:375 +#: ../lib/modules/nisMailAlias.inc:384 ../lib/lists.inc:710 +#: ../lib/lists.inc:792 ../lib/modules.inc:1229 +msgid "Ok" +msgstr "Ok" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:98 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +msgid "Old value" +msgstr "Alter Wert" + +#: ../lib/modules/sambaDomain.inc:289 ../lib/modules/sambaDomain.inc:298 +#: ../lib/modules/sambaDomain.inc:307 ../lib/modules/sambaDomain.inc:615 +#: ../lib/modules/sambaDomain.inc:620 ../lib/modules/sambaDomain.inc:625 +msgid "On" +msgstr "An" + +#: ../lib/modules/sambaSamAccount.inc:244 +#: ../lib/modules/sambaSamAccount.inc:385 +#: ../lib/modules/sambaSamAccount.inc:1557 +#: ../lib/modules/sambaSamAccount.inc:1969 +msgid "On broken or timed out connection" +msgstr "Bei Trennung oder abgelaufenem Zeitlimit" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:139 +#: ../templates/3rdParty/pla/htdocs/export_form.php:32 +msgid "One (one level beneath base)" +msgstr "Eine Ebene (eine Ebene unter Basis)" + +#: ../lib/modules/range.inc:135 ../lib/modules/fixed_ip.inc:127 +msgid "One or more errors occured. The invalid fields are marked." +msgstr "" +"Mindestens ein Fehler ist aufgetreten. Alle ungültigen Felder sind markiert." + +#: ../templates/3rdParty/pla/htdocs/copy.php:98 +#: ../templates/3rdParty/pla/htdocs/copy.php:155 +#, php-format +msgid "Operation not successful. DN %s has not been created." +msgstr "Operation nicht erfolgreich. DN %s wurde nicht erzeugt." + +#: ../templates/serverInfo.php:277 ../templates/serverInfo.php:367 +msgid "Operation statistics" +msgstr "Befehlsstatistiken" + +#: ../templates/3rdParty/pla/htdocs/copy.php:95 +#: ../templates/3rdParty/pla/htdocs/copy.php:153 +#, php-format +msgid "Operation successful. DN %s has been created." +msgstr "Operation erfolgreich. DN %s wurde erzeugt." + +#: ../templates/multiEdit.php:117 ../help/help.inc:273 +msgid "Operations" +msgstr "Operationen" + +#: ../templates/schema/schema.php:384 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1575 +msgid "Optional attributes" +msgstr "Optionale Attribute" + +#: ../lib/modules/fixed_ip.inc:111 +msgid "Optional description for the PC." +msgstr "Hier können Sie eine optionale Beschreibung für den PC angeben." + +#: ../lib/types/sudo.inc:83 ../lib/modules/mitKerberos.inc:408 +#: ../lib/modules/zarafaDynamicGroup.inc:267 +#: ../lib/modules/zarafaContact.inc:241 ../lib/modules/zarafaGroup.inc:278 +#: ../lib/modules/posixAccount.inc:245 ../lib/modules/zarafaUser.inc:571 +#: ../lib/modules/windowsUser.inc:723 ../lib/modules/kolabUser.inc:379 +#: ../lib/modules/sudoRole.inc:94 ../lib/modules/sudoRole.inc:123 +#: ../lib/modules/sudoRole.inc:189 ../lib/modules/sudoRole.inc:221 +#: ../lib/modules/sudoRole.inc:233 ../lib/modules/sudoRole.inc:451 +#: ../lib/modules/sudoRole.inc:811 ../lib/modules/asteriskExtension.inc:122 +#: ../lib/modules/asteriskVoicemail.inc:115 +#: ../lib/modules/asteriskVoicemail.inc:125 +#: ../lib/modules/asteriskVoicemail.inc:142 +#: ../lib/modules/asteriskVoicemail.inc:190 +#: ../lib/modules/asteriskVoicemail.inc:258 +#: ../lib/modules/asteriskVoicemail.inc:375 ../lib/modules/qmailGroup.inc:611 +#: ../lib/modules/heimdalKerberos.inc:339 +msgid "Options" +msgstr "Optionen" + +#: ../lib/modules/asteriskVoicemail.inc:116 +msgid "Options for Asterisk voicemail account (e.g. sendvoicemail=yes)." +msgstr "" +"Optionen für den Asterisk Anrufbeantworteraccount (z.B. sendvoicemail=yes)." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:39 +msgid "Or paste your LDIF here" +msgstr "Oder geben Sie den LDIF-Text hier an" + +#: ../lib/modules/oracleService.inc:47 +msgid "Oracle database" +msgstr "Oracle-Datenbank" + +#: ../lib/types/oracleContextType.inc:48 +msgid "Oracle database entries" +msgstr "Oracle-Datenbankeinträge" + +#: ../lib/types/oracleContextType.inc:39 +msgid "Oracle databases" +msgstr "Oracle-Datenbanken" + +#: ../lib/modules/sudoRole.inc:138 ../lib/modules/sudoRole.inc:207 +#: ../lib/modules/sudoRole.inc:224 ../lib/modules/sudoRole.inc:285 +#: ../lib/modules/sudoRole.inc:484 ../lib/modules/sudoRole.inc:812 +msgid "Order" +msgstr "Reihenfolge" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:166 +msgid "Order by" +msgstr "Sortieren nach" + +#: ../templates/schema/schema.php:171 +msgid "Ordering" +msgstr "Sortierung" + +#: ../lib/modules/eduPerson.inc:126 ../lib/modules/eduPerson.inc:200 +#: ../lib/modules/eduPerson.inc:227 ../lib/modules/eduPerson.inc:245 +#: ../lib/modules/eduPerson.inc:346 ../lib/modules/eduPerson.inc:587 +#: ../lib/modules/inetOrgPerson.inc:226 ../lib/modules/inetOrgPerson.inc:510 +#: ../lib/modules/inetOrgPerson.inc:622 ../lib/modules/inetOrgPerson.inc:846 +#: ../lib/modules/inetOrgPerson.inc:850 ../lib/modules/inetOrgPerson.inc:1532 +#: ../lib/modules/inetOrgPerson.inc:1535 ../lib/modules/inetOrgPerson.inc:1950 +#: ../lib/modules/inetOrgPerson.inc:3622 ../lib/modules/inetOrgPerson.inc:3658 +msgid "Organisation" +msgstr "Organisation" + +#: ../lib/modules/inetOrgPerson.inc:166 ../lib/modules/inetOrgPerson.inc:223 +#: ../lib/modules/inetOrgPerson.inc:502 ../lib/modules/inetOrgPerson.inc:625 +#: ../lib/modules/inetOrgPerson.inc:838 ../lib/modules/inetOrgPerson.inc:842 +#: ../lib/modules/inetOrgPerson.inc:1523 ../lib/modules/inetOrgPerson.inc:1526 +#: ../lib/modules/inetOrgPerson.inc:1949 ../lib/modules/inetOrgPerson.inc:2811 +#: ../lib/modules/inetOrgPerson.inc:3620 ../lib/modules/inetOrgPerson.inc:3658 +msgid "Organisational unit" +msgstr "Organisatorische Einheit" + +#: ../lib/modules/eduPerson.inc:134 ../lib/modules/eduPerson.inc:138 +#: ../lib/modules/eduPerson.inc:212 ../lib/modules/eduPerson.inc:228 +#: ../lib/modules/eduPerson.inc:350 ../lib/modules/eduPerson.inc:589 +msgid "Organisational units" +msgstr "Organisatorische Einheiten" + +#: ../lib/modules/eduPerson.inc:249 +msgid "Organisational units contains an invalid entry." +msgstr "Die organisatorischen Einheiten enthalten einen fehlerhaften Eintrag." + +#: ../templates/multiEdit.php:98 ../templates/config/confmain.php:328 +msgid "Other" +msgstr "Andere" + +#: ../lib/modules/windowsUser.inc:144 ../lib/modules/windowsUser.inc:148 +#: ../lib/modules/windowsUser.inc:368 ../lib/modules/windowsUser.inc:507 +#: ../lib/modules/windowsUser.inc:603 ../lib/modules/windowsUser.inc:719 +#: ../lib/modules/windowsUser.inc:1603 +msgid "Other telephone numbers" +msgstr "Weitere Telefonnummern" + +#: ../lib/modules/windowsUser.inc:180 ../lib/modules/windowsUser.inc:184 +#: ../lib/modules/windowsUser.inc:380 ../lib/modules/windowsUser.inc:515 +#: ../lib/modules/windowsUser.inc:721 ../lib/modules/windowsUser.inc:1611 +msgid "Other web sites" +msgstr "Weitere Webseiten" + +#: ../lib/modules/customScripts.inc:84 ../lib/modules/customScripts.inc:100 +#: ../lib/modules/customScripts.inc:110 +msgid "Output may contain HTML" +msgstr "Ausgaben dürfen HTML beinhalten" + +#: ../lib/modules/customScripts.inc:264 ../lib/modules/customScripts.inc:554 +#, php-format +msgid "Output of command \"%s\" with return code %s" +msgstr "Ausgabe des Kommandos \"%s\" mit Returncode %s" + +#: ../lib/modules/pykotaUser.inc:144 ../lib/modules/pykotaUser.inc:171 +#: ../lib/modules/pykotaUser.inc:253 ../lib/modules/pykotaUser.inc:263 +#: ../lib/modules/pykotaUser.inc:324 ../lib/modules/pykotaUser.inc:402 +#: ../lib/modules/pykotaUser.inc:899 +msgid "Overcharge factor" +msgstr "Überberechnungsfaktor" + +#: ../lib/modules/pykotaUser.inc:145 +msgid "" +"Overcharge factor that is applied when computing the cost of a print job. " +"The number of pages is not changed." +msgstr "" +"Der Überberechnungsfaktor wird angewendet wenn die Druckkosten eines Jobs " +"berechnet werden. Die Anzahl Seiten wird nicht verändert." + +#: ../templates/serverInfo.php:168 +msgid "Overlays" +msgstr "Overlays" + +#: ../lib/modules/zarafaUser.inc:89 +msgid "Override default quota settings." +msgstr "Standardmäßige Quotaeinstellungen überschreiben." + +#: ../templates/config/confmain.php:320 ../lib/types/asteriskExt.inc:96 +#: ../lib/types/asteriskExt.inc:158 +msgid "Owner" +msgstr "Besitzer" + +#: ../lib/types/gon.inc:108 ../lib/modules/device.inc:69 +#: ../lib/modules/device.inc:73 ../lib/modules/device.inc:103 +#: ../lib/modules/device.inc:128 ../lib/modules/device.inc:180 +#: ../lib/modules/device.inc:424 ../lib/modules/groupOfNames.inc:93 +#: ../lib/modules/groupOfNames.inc:97 ../lib/modules/groupOfNames.inc:143 +#: ../lib/modules/groupOfNames.inc:174 ../lib/modules/groupOfNames.inc:197 +#: ../lib/modules/groupOfNames.inc:240 ../lib/modules/groupOfNames.inc:398 +#: ../lib/modules/groupOfNames.inc:702 +msgid "Owners" +msgstr "Besitzer" + +#: ../lib/modules/dhcp_settings.inc:97 +msgid "P-Node (0x02)" +msgstr "P-Knoten (0x02)" + +#: ../lib/modules/fixed_ip.inc:98 ../lib/modules/fixed_ip.inc:425 +#: ../lib/modules/fixed_ip.inc:740 +msgid "PC name" +msgstr "PC-Name" + +#: ../lib/modules/windowsHost.inc:96 +msgid "PC01" +msgstr "PC01" + +#: ../templates/pdfedit/pdfpage.php:445 ../templates/pdfedit/pdfmain.php:84 +#: ../lib/tools/pdfEdit.inc:44 +msgid "PDF editor" +msgstr "PDF-Editor" + +#: ../templates/masscreate.php:275 ../templates/pdfedit/pdfmain.php:310 +#: ../lib/lists.inc:688 ../help/help.inc:204 +msgid "PDF structure" +msgstr "PDF-Struktur" + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "PDF structure name not valid" +msgstr "PDF-Strukturname ist nicht gültig" + +#: ../templates/pdfedit/pdfmain.php:168 +msgid "PDF structure was successfully saved." +msgstr "PDF-Profil wurde erfolgreich gespeichert." + +#: ../templates/pdfedit/pdfmain.php:277 +msgid "PDF structures" +msgstr "PDF-Strukturen" + +#: ../templates/serverInfo.php:264 +msgid "PDUs sent" +msgstr "PDUs gesendet" + +#: ../templates/config/mainmanage.php:432 ../help/help.inc:158 +msgid "PHP error reporting" +msgstr "PHP Fehlerberichtseinstellungen" + +#: ../templates/config/mainmanage.php:428 +msgid "PHP system setting" +msgstr "PHP Systemeinstellung" + +#: ../lib/modules/zarafaUser.inc:306 ../lib/modules/zarafaUser.inc:645 +#: ../lib/modules/zarafaUser.inc:1334 +msgid "POP3" +msgstr "POP3" + +#: ../templates/lists/changePassword.php:415 +#: ../templates/lists/changePassword.php:446 ../lib/types/user.inc:376 +#: ../lib/types/user.inc:408 +msgid "PPolicy" +msgstr "PPolicy" + +#: ../lib/modules/bindDLZ.inc:115 ../lib/modules/bindDLZ.inc:301 +#: ../lib/modules/bindDLZ.inc:307 ../lib/modules/bindDLZ.inc:485 +msgid "PTR record" +msgstr "PTR-Eintrag" + +#: ../lib/modules/bindDLZ.inc:422 ../lib/modules/bindDLZ.inc:441 +#: ../lib/modules/bindDLZ.inc:1496 +msgid "PTR records" +msgstr "PTR-Einträge" + +#: ../lib/modules/sambaSamAccount.inc:557 +msgid "Pacific Time (US & Canada)" +msgstr "Pacific Time (USA & Kanada)" + +#: ../lib/modules/dhcp_settings.inc:166 +msgid "" +"Packets are sent to the default gateway if the receiver does not reside in " +"the same network. The default gateway routes them to the target network." +msgstr "" +"Wenn sich der Empfänger nicht im selben Netz befindet dann werden alle " +"Pakete an den Default-Gateway gesendet. Dieser routet sie in das " +"Zielnetzwerk." + +#: ../lib/types/pykotaBillingCodeType.inc:94 +#: ../lib/modules/pykotaBillingCode.inc:89 +#: ../lib/modules/pykotaBillingCode.inc:118 +#: ../lib/modules/pykotaBillingCode.inc:151 +#: ../lib/modules/pykotaBillingCode.inc:264 +msgid "Page count" +msgstr "Seitenzahl" + +#: ../templates/selfService/adminMain.php:489 ../help/help.inc:234 +msgid "Page header" +msgstr "Seitenkopf" + +#: ../templates/selfService/adminMain.php:402 +msgid "Page layout" +msgstr "Seitenlayout" + +#: ../lib/modules/inetOrgPerson.inc:78 ../lib/modules/inetOrgPerson.inc:163 +#: ../lib/modules/inetOrgPerson.inc:452 ../lib/modules/inetOrgPerson.inc:595 +#: ../lib/modules/inetOrgPerson.inc:734 ../lib/modules/inetOrgPerson.inc:738 +#: ../lib/modules/inetOrgPerson.inc:1439 ../lib/modules/inetOrgPerson.inc:1442 +#: ../lib/modules/inetOrgPerson.inc:1936 ../lib/modules/inetOrgPerson.inc:2569 +#: ../lib/modules/inetOrgPerson.inc:3604 ../lib/modules/inetOrgPerson.inc:3653 +#: ../lib/modules/asteriskVoicemail.inc:111 +#: ../lib/modules/asteriskVoicemail.inc:141 +#: ../lib/modules/asteriskVoicemail.inc:184 +#: ../lib/modules/asteriskVoicemail.inc:256 +#: ../lib/modules/asteriskVoicemail.inc:373 +msgid "Pager" +msgstr "Pager" + +#: ../lib/modules/asteriskVoicemail.inc:112 +msgid "Pager number for Asterisk voicemail." +msgstr "Pager-Nummer für den Asterisk Anrufbeantworter." + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:35 +msgid "Parent DN" +msgstr "Eltern-DN" + +#: ../lib/modules/puppetClient.inc:88 ../lib/modules/puppetClient.inc:134 +#: ../lib/modules/puppetClient.inc:154 ../lib/modules/puppetClient.inc:265 +#: ../lib/modules/puppetClient.inc:431 ../lib/modules/puppetClient.inc:466 +msgid "Parent node" +msgstr "Elternknoten" + +#: ../lib/modules/puppetClient.inc:190 +msgid "Parent node not found." +msgstr "Elternknoten wurde nicht gefunden." + +#: ../templates/schema/schema.php:366 +msgid "Parent to" +msgstr "Elter von" + +#: ../templates/3rdParty/pla/htdocs/import.php:98 +msgid "Parse error" +msgstr "Einlesefehler" + +#: ../lib/modules/pykotaPrinter.inc:107 ../lib/modules/pykotaPrinter.inc:166 +#: ../lib/modules/pykotaPrinter.inc:196 ../lib/modules/pykotaPrinter.inc:243 +#: ../lib/modules/pykotaPrinter.inc:595 +msgid "Passthrough" +msgstr "Durchlauf" + +#: ../templates/lists/changePassword.php:365 ../templates/login.php:379 +#: ../templates/selfService/selfServiceLogin.php:323 +#: ../lib/selfService.inc:393 ../lib/modules/mitKerberos.inc:156 +#: ../lib/modules/mitKerberos.inc:242 ../lib/modules/mitKerberos.inc:257 +#: ../lib/modules/mitKerberos.inc:795 ../lib/modules/mitKerberos.inc:798 +#: ../lib/modules/selfRegistration.inc:407 +#: ../lib/modules/selfRegistration.inc:533 +#: ../lib/modules/selfRegistration.inc:536 +#: ../lib/modules/selfRegistration.inc:539 +#: ../lib/modules/asteriskAccount.inc:115 +#: ../lib/modules/asteriskAccount.inc:325 ../lib/modules/posixGroup.inc:205 +#: ../lib/modules/posixGroup.inc:593 ../lib/modules/sambaSamAccount.inc:105 +#: ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:251 +#: ../lib/modules/sambaSamAccount.inc:426 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/posixAccount.inc:110 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:332 ../lib/modules/posixAccount.inc:418 +#: ../lib/modules/posixAccount.inc:522 ../lib/modules/posixAccount.inc:1496 +#: ../lib/modules/posixAccount.inc:1874 ../lib/modules/posixAccount.inc:1877 +#: ../lib/modules/windowsUser.inc:223 ../lib/modules/windowsUser.inc:272 +#: ../lib/modules/windowsUser.inc:524 ../lib/modules/windowsUser.inc:549 +#: ../lib/modules/windowsUser.inc:615 ../lib/modules/windowsUser.inc:616 +#: ../lib/modules/windowsUser.inc:1646 ../lib/modules/windowsUser.inc:1649 +#: ../lib/modules/inetOrgPerson.inc:862 ../lib/modules/inetOrgPerson.inc:1589 +#: ../lib/modules/inetOrgPerson.inc:2086 ../lib/modules/inetOrgPerson.inc:3660 +#: ../lib/modules/asteriskVoicemail.inc:99 +#: ../lib/modules/asteriskVoicemail.inc:165 +#: ../lib/modules/customFields.inc:2444 ../lib/modules/heimdalKerberos.inc:124 +#: ../lib/modules/heimdalKerberos.inc:211 +#: ../lib/modules/heimdalKerberos.inc:223 +#: ../lib/modules/heimdalKerberos.inc:695 +#: ../lib/modules/heimdalKerberos.inc:698 ../lib/modules.inc:1043 +#: ../help/help.inc:202 +msgid "Password" +msgstr "Passwort" + +#: ../lib/modules/sambaSamAccount.inc:295 +#: ../lib/modules/sambaSamAccount.inc:1160 ../lib/modules/windowsUser.inc:214 +#: ../lib/modules/windowsUser.inc:410 ../lib/modules/windowsUser.inc:522 +#: ../lib/modules/windowsUser.inc:1634 +msgid "Password change at next login" +msgstr "Passwortänderung beim nächsten Login" + +#: ../lib/modules/mitKerberos.inc:148 ../lib/modules/mitKerberos.inc:261 +#: ../lib/modules/heimdalKerberos.inc:118 +#: ../lib/modules/heimdalKerberos.inc:227 +msgid "Password change command" +msgstr "Befehl für Passwortänderung" + +#: ../templates/lists/changePassword.php:304 +msgid "Password change options" +msgstr "Passwortänderungsoptionen" + +#: ../lib/modules/ppolicyUser.inc:59 ../lib/modules/ppolicyUser.inc:74 +#: ../lib/modules/ppolicyUser.inc:132 ../lib/modules/ppolicyUser.inc:265 +msgid "Password change required" +msgstr "Passwortänderung erforderlich" + +#: ../lib/types/ppolicyType.inc:91 ../lib/modules/ppolicy.inc:136 +#: ../lib/modules/ppolicy.inc:156 ../lib/modules/ppolicy.inc:300 +#: ../lib/modules/ppolicy.inc:510 +msgid "Password change requires old password" +msgstr "Passwortänderung benötigt altes Passwort" + +#: ../lib/modules/mitKerberos.inc:189 ../lib/modules/mitKerberos.inc:467 +#: ../lib/modules/heimdalKerberos.inc:154 +#: ../lib/modules/heimdalKerberos.inc:393 +msgid "Password change service" +msgstr "Passwortänderungsservice" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:30 +msgid "Password check" +msgstr "Passwortprüfung" + +#: ../lib/modules/mitKerberos.inc:297 ../lib/modules/selfRegistration.inc:536 +#: ../lib/modules/posixGroup.inc:593 ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:107 ../lib/modules/posixAccount.inc:110 +#: ../lib/modules/posixAccount.inc:111 ../lib/modules/windowsUser.inc:616 +#: ../lib/modules/inetOrgPerson.inc:107 +msgid "Password contains invalid characters. Valid characters are:" +msgstr "Passwort enthält ungültige Zeichen. Gültige Zeichen sind:" + +#: ../lib/modules/sambaSamAccount.inc:280 +#: ../lib/modules/sambaSamAccount.inc:283 +#: ../lib/modules/sambaSamAccount.inc:448 +#: ../lib/modules/sambaSamAccount.inc:1150 +#: ../lib/modules/sambaSamAccount.inc:1744 ../lib/modules/windowsUser.inc:198 +#: ../lib/modules/windowsUser.inc:394 ../lib/modules/windowsUser.inc:518 +#: ../lib/modules/windowsUser.inc:747 ../lib/modules/windowsUser.inc:1624 +msgid "Password does not expire" +msgstr "Passwort läuft nicht ab" + +#: ../lib/types/user.inc:103 ../lib/modules/shadowAccount.inc:61 +#: ../lib/modules/shadowAccount.inc:113 ../lib/modules/shadowAccount.inc:170 +#: ../lib/modules/shadowAccount.inc:181 ../lib/modules/shadowAccount.inc:215 +#: ../lib/modules/shadowAccount.inc:324 ../lib/modules/shadowAccount.inc:502 +msgid "Password expiration" +msgstr "Passwortablauf" + +#: ../lib/modules/shadowAccount.inc:61 ../lib/modules/shadowAccount.inc:62 +msgid "Password expiration must be are natural number or -1." +msgstr "Passwortablauf muss eine natürliche Zahl oder -1 sein." + +#: ../templates/selfService/adminMain.php:473 ../help/help.inc:238 +msgid "Password field label" +msgstr "Passwortfeldbezeichner" + +#: ../lib/modules/asteriskVoicemail.inc:100 +msgid "Password for voicemail mailbox." +msgstr "Passwort für den Anrufbeantworter." + +#: ../lib/modules/posixGroup.inc:504 ../lib/modules/posixGroup.inc:557 +#: ../lib/modules/posixAccount.inc:191 ../lib/modules/posixAccount.inc:247 +#: ../lib/modules/posixAccount.inc:457 ../lib/modules/inetOrgPerson.inc:834 +#: ../lib/modules/inetOrgPerson.inc:3567 ../lib/modules/customFields.inc:136 +#: ../lib/modules/customFields.inc:2458 +msgid "Password hash type" +msgstr "Passwort-Hash" + +#: ../lib/types/ppolicyType.inc:80 ../lib/modules/ppolicy.inc:92 +#: ../lib/modules/ppolicy.inc:145 ../lib/modules/ppolicy.inc:169 +#: ../lib/modules/ppolicy.inc:230 ../lib/modules/ppolicy.inc:474 +#: ../lib/modules/sambaDomain.inc:105 ../lib/modules/sambaDomain.inc:191 +#: ../lib/modules/sambaDomain.inc:283 ../lib/modules/sambaDomain.inc:606 +msgid "Password history length" +msgstr "Passwort-Historienlänge" + +#: ../templates/config/confmain.php:367 +msgid "Password mail settings" +msgstr "Passwortmaileinstellungen" + +#: ../lib/modules/shadowAccount.inc:59 ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/ppolicy.inc:167 ../lib/modules/sambaDomain.inc:222 +msgid "Password maximum age must be are natural number." +msgstr "Maximales Passwortalter muss eine natürliche Zahl sein." + +#: ../lib/modules/shadowAccount.inc:66 +msgid "Password maximum age must be bigger as password minimum age." +msgstr "Maximales Passwortalter muss größer als minimales Passwortalter sein." + +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/ppolicy.inc:168 +#: ../lib/modules/sambaDomain.inc:220 +msgid "Password maximum age must be bigger than password minimum age." +msgstr "Maximales Passwortalter muss größer als minimales Passwortalter sein." + +#: ../lib/modules/shadowAccount.inc:57 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/ppolicy.inc:166 ../lib/modules/sambaDomain.inc:221 +msgid "Password minimum age must be are natural number." +msgstr "Minimales Passwortalter muss eine natürliche Zahl sein." + +#: ../templates/config/mainmanage.php:401 ../help/help.inc:166 +msgid "Password must not contain part of user/first/last name" +msgstr "Passwort darf keinen Teil von Benutzer-/Vor-/Nachname enthalten" + +#: ../templates/config/mainmanage.php:399 ../help/help.inc:164 +msgid "Password must not contain user name" +msgstr "Passwort darf Benutzername nicht enthalten" + +#: ../lib/modules/imapAccess.inc:94 ../lib/modules/imapAccess.inc:290 +msgid "Password of IMAP admin user" +msgstr "Passwort für den IMAP-Administrator" + +#: ../lib/types/ppolicyType.inc:39 +msgid "Password policies" +msgstr "Passwortrichtlinien" + +#: ../lib/types/ppolicyType.inc:48 +msgid "Password policies (ppolicy)" +msgstr "Passwortrichtlinien (ppolicy)" + +#: ../templates/config/mainmanage.php:382 ../lib/types/user.inc:284 +#: ../lib/types/user.inc:837 ../lib/modules/ppolicyUser.inc:45 +#: ../lib/modules/ppolicyUser.inc:55 ../lib/modules/ppolicyUser.inc:67 +#: ../lib/modules/ppolicyUser.inc:83 ../lib/modules/ppolicyUser.inc:123 +#: ../lib/modules/ppolicyUser.inc:260 ../lib/modules/ppolicyUser.inc:293 +#: ../lib/modules/ppolicy.inc:62 ../lib/modules/sambaDomain.inc:266 +#: ../help/help.inc:154 +msgid "Password policy" +msgstr "Passwortrichtlinie" + +#: ../lib/types/ppolicyType.inc:81 ../lib/modules/ppolicy.inc:96 +#: ../lib/modules/ppolicy.inc:146 ../lib/modules/ppolicy.inc:242 +#: ../lib/modules/ppolicy.inc:490 +msgid "Password quality check" +msgstr "Passwortqualitätsprüfung" + +#: ../lib/modules/passwordSelfReset.inc:539 +msgid "Password reset confirmation" +msgstr "Bestätigung für Passwortrücksetzung" + +#: ../lib/modules/passwordSelfReset.inc:559 +msgid "Password reset notification" +msgstr "Meldung über Passwortrücksetzung" + +#: ../lib/modules/passwordSelfReset.inc:66 +#: ../lib/modules/passwordSelfReset.inc:875 +#: ../lib/modules/passwordSelfReset.inc:1097 +msgid "Password self reset" +msgstr "Passwortrücksetzung" + +#: ../lib/modules/passwordSelfReset.inc:1607 +msgid "Password successfully reset." +msgstr "Passwort erfolgreich geändert." + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:108 +#: ../lib/modules/shadowAccount.inc:168 ../lib/modules/shadowAccount.inc:177 +#: ../lib/modules/shadowAccount.inc:209 ../lib/modules/shadowAccount.inc:316 +#: ../lib/modules/shadowAccount.inc:501 +msgid "Password warning" +msgstr "Passwortwarnung" + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:64 +msgid "Password warning must be are natural number." +msgstr "Passwortwarnung muss eine natürliche Zahl sein." + +#: ../templates/config/confmain.php:610 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:61 +#: ../lib/modules/passwordSelfReset.inc:1174 ../lib/modules.inc:1133 +msgid "Passwords are different!" +msgstr "Die Passwörter stimmen nicht überein!" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:59 +msgid "Passwords match." +msgstr "Passwörter sind identisch." + +#: ../lib/types/nisObjectType.inc:77 +msgid "Path" +msgstr "Pfad" + +#: ../lib/modules/windowsUser.inc:205 +msgid "" +"Path of the user profile (UNC-path, e.g. \\\\server\\share\\user). $user is " +"replaced with user name." +msgstr "" +"Das ist der Pfad zum Benutzerprofil (UNC-Pfad, z.B. \\\\Server\\Freigabe). " +"$user wird durch den Benutzernamen ersetzt." + +#: ../lib/modules/sambaSamAccount.inc:359 +msgid "Path of the user profile." +msgstr "Pfad des Benutzerprofils." + +#: ../lib/modules/sambaSamAccount.inc:310 +msgid "" +"Path of the user profile. Can be a local absolute path or a UNC-path (\\" +"\\server\\share). $user and $group are replaced with user and group name." +msgstr "" +"Pfad zum Benutzerprofil. Kann ein lokaler Pfad oder UNC-Pfad (\\\\Server" +"\\Freigabe) sein. $user und $group werden durch Benutzer- und Gruppenname " +"ersetzt." + +#: ../lib/modules/imapAccess.inc:112 ../lib/modules/imapAccess.inc:146 +msgid "Path separator" +msgstr "Pfadtrennzeichen" + +#: ../templates/config/confmain.php:311 +msgid "Path to external script" +msgstr "Pfad zum externen Script" + +#: ../lib/modules/ddns.inc:93 ../lib/modules/ddns.inc:371 +msgid "Path to key for DNS updates" +msgstr "Pfad zum Schlüssel für DNS-Änderungen" + +#: ../lib/modules/qmailGroup.inc:140 +msgid "" +"Path to the maildir/mbox on the mail system for sender confirmation and " +"moderation." +msgstr "Pfad zur Mailbox im Mailsystem für Sendergenehmigungen und Moderation." + +#: ../lib/modules/qmailUser.inc:248 +msgid "Path to the maildir/mbox on the mail system." +msgstr "Pfad zur Mailbox im Mailsystem." + +#: ../lib/modules/pykotaUser.inc:152 ../lib/modules/pykotaUser.inc:326 +#: ../lib/modules/pykotaUser.inc:369 +msgid "Payment" +msgstr "Zahlung" + +#: ../lib/modules/pykotaUser.inc:148 +msgid "Payment and job history" +msgstr "Zahlungs- und Jobhistorie" + +#: ../lib/modules/pykotaUser.inc:149 +msgid "Payment and job history for this user." +msgstr "Zahlungs- und Jobhistorie für diesen Benutzer." + +#: ../lib/modules/pykotaUser.inc:265 ../lib/modules/pykotaUser.inc:283 +#: ../lib/modules/pykotaUser.inc:384 ../lib/modules/pykotaUser.inc:591 +#: ../lib/modules/pykotaUser.inc:983 +msgid "Payment history" +msgstr "Zahlungshistorie" + +#: ../lib/tools/multiEdit.inc:53 +msgid "Performs modifications on multiple LDAP entries." +msgstr "Führt Modifikationen auf mehreren LDAP-Einträgen durch." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:41 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:64 +msgid "Permanently delete all children also?" +msgstr "Sollen auch alle Untereinträge gelöscht werden?" + +#: ../lib/modules/asteriskAccount.inc:171 +#: ../lib/modules/asteriskAccount.inc:281 +#: ../lib/modules/asteriskAccount.inc:422 +#: ../lib/modules/asteriskAccount.inc:678 +#: ../lib/modules/asteriskAccount.inc:997 +#: ../lib/modules/asteriskAccount.inc:1263 +msgid "Permit" +msgstr "Erlauben" + +#: ../lib/modules/inetOrgPerson.inc:132 +msgid "Personal" +msgstr "Persönlich" + +#: ../lib/selfService.inc:389 +msgid "Personal data" +msgstr "Persönliche Daten" + +#: ../lib/types/user.inc:102 ../lib/types/user.inc:620 +#: ../lib/modules/inetOrgPerson.inc:162 ../lib/modules/inetOrgPerson.inc:2708 +#: ../lib/modules/inetOrgPerson.inc:2715 ../lib/modules/inetOrgPerson.inc:3632 +#: ../lib/modules/inetOrgPerson.inc:3660 ../lib/modules/inetOrgPerson.inc:3679 +msgid "Photo" +msgstr "Foto" + +#: ../lib/modules/inetOrgPerson.inc:1697 +msgid "Photo file" +msgstr "Fotodatei" + +#: ../lib/modules/inetOrgPerson.inc:1695 +msgid "Photo file (JPG format)" +msgstr "Fotodatei (JPG-Format)" + +#: ../lib/modules/asteriskAccount.inc:175 +#: ../lib/modules/asteriskAccount.inc:282 +#: ../lib/modules/asteriskAccount.inc:429 +#: ../lib/modules/asteriskAccount.inc:682 +#: ../lib/modules/asteriskAccount.inc:998 +#: ../lib/modules/asteriskAccount.inc:1265 +msgid "Pickup group" +msgstr "Pickup-Gruppe" + +#: ../lib/modules/ldapPublicKey.inc:77 +msgid "Please a comma separated list of your public SSH keys." +msgstr "" +"Bitte geben Sie eine Liste von SSH-Schlüsseln, getrennt durch Kommata, ein." + +#: ../lib/modules/nisMailAliasUser.inc:131 +msgid "Please activate the mail aliases type for this server profile." +msgstr "Bitte aktivieren Sie den Mailaliastyp für dieses Serverprofil." + +#: ../lib/modules/customScripts.inc:85 +msgid "" +"Please activate this option if your scripts may generate HTML output. " +"Otherwise, the output is treated as plain text." +msgstr "" +"Bitte aktivieren Sie diese Option wenn Ihre Skripte HTML-Ausgaben erzeugen " +"dürfen. Ansonsten werden Ausgaben als Text angezeigt." + +#: ../lib/modules/asteriskExtension.inc:193 +msgid "Please add at least one extension owner." +msgstr "Sie müssen mindestens einen Besitzer hinzufügen." + +#: ../help/help.inc:157 +msgid "" +"Please change this setting only if you experience problems in receiving " +"emails from LAM. This defines the line ending of emails." +msgstr "" +"Bitte ändern Sie diese Option nur wenn Sie Probleme beim email-Versand aus " +"LAM heraus haben. Diese Einstellung legt die Zeilenenden von emails fest." + +#: ../lib/modules/qmailGroup.inc:331 +msgid "Please check if this email should be sent." +msgstr "Bitte prüfen Sie ob diese email gesendet werden soll." + +#: ../lib/modules/sambaSamAccount.inc:1098 +msgid "Please check your settings on the Unix page!" +msgstr "Bitte überprüfen Sie Ihre Eingaben auf der Unix-Seite!" + +#: ../lib/modules/imapAccess.inc:104 +msgid "" +"Please choose the attribute to get the IMAP user name. The default is \"mail" +"\" but you can also use \"uid\"." +msgstr "" +"Bitte wählen Sie das Attribut, das den IMAP-Benutzer definiert. Der Standard " +"ist \"mail \" aber Sie können auch \"uid\" verwenden." + +#: ../lib/modules/passwordSelfReset.inc:543 +msgid "Please click here to continue: @@resetLink@@" +msgstr "Bitte klicken Sie zum Fortfahren hier: @@resetLink@@" + +#: ../lib/types/user.inc:298 +msgid "Please click to lock/unlock this account." +msgstr "Zum (Ent)Sperren bitte klicken." + +#: ../lib/modules/pykotaPrinter.inc:219 +msgid "Please enter \"Yes\" or \"No\"." +msgstr "Bitte geben Sie entweder \"Ja\" oder \"Nein\" ein." + +#: ../lib/modules/sambaSamAccount.inc:108 +msgid "Please enter a RID number or the name of a special account!" +msgstr "" +"Bitte geben Sie eine RID-Nummer oder den Namen eines Spezialaccounts ein!" + +#: ../lib/modules/asteriskAccount.inc:555 +msgid "Please enter a caller ID." +msgstr "Bitte geben Sie eine Anrufer-ID ein." + +#: ../lib/modules/imapAccess.inc:101 +msgid "" +"Please enter a comma separated list of domain names (e.g. \"company.com," +"example.com\"). LAM will only manage mailboxes from these domains." +msgstr "" +"Bitte geben Sie eine per Komma getrennte Liste von Domänen (z.B. \"firma.de," +"beispiel.de\") an. LAM wird nur Postfächer dieser Domänen verwalten." + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +msgid "Please enter a comma separated list of host names!" +msgstr "Bitte geben Sie eine Liste von Hostnamen, getrennt durch Kommata, ein!" + +#: ../lib/modules/asteriskExtension.inc:185 +msgid "Please enter a common name." +msgstr "Bitte geben Sie einen Namen ein." + +#: ../lib/modules/imapAccess.inc:178 +msgid "Please enter a correct list of valid mail domains." +msgstr "Bitte geben Sie eine gültige Liste von EMail-Domänen ein." + +#: ../lib/modules/sudoRole.inc:130 ../lib/modules/sudoRole.inc:135 +#: ../lib/modules/sudoRole.inc:281 ../lib/modules/sudoRole.inc:282 +#: ../lib/modules/sudoRole.inc:283 ../lib/modules/sudoRole.inc:284 +msgid "Please enter a date in format \"DD.MM.YYYY HH:MM\" or \"DD.MM.YYYY\"." +msgstr "" +"Bitte geben Sie ein gültiges Datum im Format \"TT.MM.JJJJ HH:MM\" oder \"TT." +"MM.JJJJ\" ein." + +#: ../lib/modules/customFields.inc:89 +msgid "Please enter a descriptive label for this field." +msgstr "Hier können Sie eine Beschreibung für dieses Feld eintragen." + +#: ../lib/modules/nisObject.inc:62 ../lib/modules/automount.inc:65 +#: ../lib/modules/sudoRole.inc:67 ../lib/modules/oracleService.inc:62 +msgid "Please enter a descriptive name for this entry." +msgstr "Hier können Sie eine Beschreibung für diesen Eintrag eintragen." + +#: ../lib/modules/windowsGroup.inc:119 +msgid "Please enter a descriptive text for this group." +msgstr "Hier können Sie eine Beschreibung für diese Gruppe eintragen." + +#: ../lib/modules/windowsHost.inc:79 +msgid "Please enter a descriptive text for this host." +msgstr "Hier können Sie eine Beschreibung für diesen Host eintragen." + +#: ../lib/modules/windowsUser.inc:120 +msgid "Please enter a descriptive text for this user." +msgstr "Hier können Sie eine Beschreibung für diesen Benutzer eintragen." + +#: ../lib/modules/organizationalRole.inc:173 +#: ../lib/modules/groupOfNames.inc:209 +msgid "Please enter a group name!" +msgstr "Bitte geben Sie einen Gruppennamen ein!" + +#: ../lib/modules/windowsUser.inc:241 +msgid "" +"Please enter a list of Windows domains that can be selected for your user " +"accounts." +msgstr "" +"Bitte geben Sie eine Liste von Windowsdomänen an die bei den Benutzern " +"ausgewählt werden können." + +#: ../lib/modules/selfRegistration.inc:120 +msgid "Please enter a list of object classes for the new accounts." +msgstr "" +"Bitte geben Sie eine Liste von Objektklassen für die neuen Accounts an." + +#: ../lib/modules/asteriskVoicemail.inc:209 +msgid "Please enter a mailbox." +msgstr "Bitte geben Sie ein Postfach ein." + +#: ../lib/modules/device.inc:62 +msgid "Please enter a name for this device." +msgstr "Bitte geben Sie einen Namen für das Gerät ein." + +#: ../lib/modules/kolabSharedFolder.inc:113 +msgid "Please enter a name for this folder." +msgstr "Bitte geben Sie einen Namen für diesen Ordner ein." + +#: ../lib/modules/ppolicy.inc:165 +msgid "Please enter a name for this policy." +msgstr "" +"Bitte geben Sie einen eindeutigen Namen für diese Passwortrichtlinie ein." + +#: ../lib/modules/kolabSharedFolder.inc:261 +msgid "Please enter a name." +msgstr "Bitte geben Sie einen Namen ein." + +#: ../lib/modules/customFields.inc:2626 +msgid "Please enter a natural number for column count." +msgstr "Bitte geben Sie eine Zahl für die Anzahl an Spalten ein." + +#: ../lib/modules/customFields.inc:2636 +msgid "Please enter a natural number for row count." +msgstr "Bitte geben Sie eine Zahl für die Anzahl an Zeilen ein." + +#: ../lib/modules/qmailUser.inc:465 ../lib/modules/qmailUser.inc:467 +msgid "Please enter a number for GID number." +msgstr "Bitte geben Sie eine Zahl für die GID-Nummer ein." + +#: ../lib/modules/qmailUser.inc:462 ../lib/modules/qmailUser.inc:464 +msgid "Please enter a number for UID number." +msgstr "Bitte geben Sie eine Zahl ein." + +#: ../lib/modules/qmailUser.inc:458 ../lib/modules/qmailUser.inc:459 +msgid "Please enter a number for message count limit." +msgstr "Bitte geben Sie eine Zahl für die max. Anzahl Nachrichten ein." + +#: ../lib/modules/qmailUser.inc:460 ../lib/modules/qmailUser.inc:461 +msgid "Please enter a number for message size limit." +msgstr "Bitte geben Sie eine Zahl für die max. Nachrichtengröße ein." + +#: ../lib/modules/qmailUser.inc:456 ../lib/modules/qmailUser.inc:457 +msgid "Please enter a number for quota size." +msgstr "Bitte geben Sie eine Zahl für die Größenbeschränkung ein." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:51 +#: ../templates/lib/141_jquery-validationEngine-lang.php:55 +#: ../lib/modules/mitKerberos.inc:298 ../lib/modules/zarafaUser.inc:408 +#: ../lib/modules/zarafaUser.inc:409 ../lib/modules/zarafaUser.inc:410 +#: ../lib/modules/zarafaUser.inc:411 ../lib/modules/zarafaUser.inc:412 +#: ../lib/modules/zarafaUser.inc:413 ../lib/modules/zarafaUser.inc:415 +#: ../lib/modules/zarafaUser.inc:416 ../lib/modules/bindDLZ.inc:476 +#: ../lib/modules/kolabUser.inc:257 ../lib/modules/kolabUser.inc:258 +#: ../lib/modules/sudoRole.inc:285 ../lib/modules/sudoRole.inc:286 +msgid "Please enter a number." +msgstr "Bitte geben Sie einen Zahl ein." + +#: ../lib/modules/ppolicy.inc:174 +msgid "Please enter a numeric value for the expire warning." +msgstr "Bitte geben Sie eine Zahl für die Ablaufwarnung an." + +#: ../lib/modules/ppolicy.inc:173 +msgid "Please enter a numeric value for the failure count interval." +msgstr "Bitte geben Sie eine Zahl für das Fehlerzählerintervall ein!" + +#: ../lib/modules/ppolicy.inc:170 +msgid "Please enter a numeric value for the grace authentication limit." +msgstr "Bitte geben Sie eine Zahl für das Aufschublimit ein!" + +#: ../lib/modules/freeRadius.inc:259 ../lib/modules/freeRadius.inc:260 +msgid "Please enter a numeric value for the idle timeout." +msgstr "Bitte geben Sie eine Zahl für das Leerlauflimit ein." + +#: ../lib/modules/ppolicy.inc:171 +msgid "Please enter a numeric value for the lockout duration." +msgstr "Bitte geben Sie eine Zahl für die Sperrzeit ein." + +#: ../lib/modules/ppolicy.inc:172 +msgid "Please enter a numeric value for the maximum failure count." +msgstr "Bitte geben Sie eine Zahl für die maximale Fehlerzahl ein." + +#: ../lib/modules/ppolicy.inc:175 +msgid "Please enter a numeric value for the minimum password length." +msgstr "Bitte geben Sie eine Zahl für die minimale Passwortlänge ein." + +#: ../lib/modules/ppolicy.inc:169 +msgid "Please enter a numeric value for the password history length." +msgstr "Bitte geben Sie eine Zahl für die Länge der Passworthistorie ein." + +#: ../lib/modules/range.inc:138 +msgid "Please enter a pool name." +msgstr "Bitte geben Sie einen Poolnamen ein." + +#: ../lib/modules/sudoRole.inc:267 +msgid "Please enter a role name." +msgstr "Bitte geben Sie einen Rollennamen ein." + +#: ../lib/modules/passwordSelfReset.inc:1203 +msgid "Please enter a security answer." +msgstr "Bitte geben Sie eine Antwort auf die Sicherheitsfrage ein." + +#: ../lib/modules/selfRegistration.inc:118 +msgid "Please enter a subject for the confirmation mails." +msgstr "Bitte geben Sie einen Betreff für die Bestätigungsmails an." + +#: ../lib/modules/kolabSharedFolder.inc:262 +msgid "Please enter a target folder." +msgstr "Bitte geben Sie ein Zielverzeichnis ein." + +#: ../lib/modules/selfRegistration.inc:119 +msgid "" +"Please enter a text for the confirmation mails that includes the creation " +"link." +msgstr "" +"Bitte geben Sie einen Text für die Bestätigungsmails an der den " +"Erstellungslink enthält." + +#: ../lib/modules/customFields.inc:85 +msgid "Please enter a unique name for this field." +msgstr "Bitte geben Sie einen eindeutigen Namen für das Feld ein." + +#: ../lib/modules/ppolicy.inc:81 +msgid "Please enter a unique name for this password policy." +msgstr "" +"Bitte geben Sie einen eindeutigen Namen für diese Passwortrichtlinie ein." + +#: ../lib/modules/kolabUser.inc:274 ../lib/modules/kolabUser.inc:280 +msgid "Please enter a user password." +msgstr "Bitte geben Sie ein Passwort ein." + +#: ../lib/modules/zarafaDynamicGroup.inc:198 ../lib/modules/eduPerson.inc:245 +#: ../lib/modules/eduPerson.inc:247 ../lib/modules/zarafaAddressList.inc:169 +msgid "Please enter a valid DN in the field:" +msgstr "Bitte geben Sie einen gültigen DN ein. Feld:" + +#: ../lib/types/bind.inc:205 +msgid "Please enter a valid DNS name." +msgstr "Bitte geben Sie einen gültigen DNS-Namen ein." + +#: ../lib/modules/customFields.inc:1189 ../lib/modules/customFields.inc:1746 +msgid "" +"Please enter a valid LDAP attribute name. Allowed characters are a-z, 0-9, _ " +"and -." +msgstr "" +"Der LDAP-Attributname enthält ungültige Zeichen. Gültige Zeichen sind: a-z, " +"0-9 und -_." + +#: ../templates/selfService/adminMain.php:221 +msgid "Please enter a valid LDAP suffix." +msgstr "Bitte geben Sie einen gültigen LDAP-Suffix ein." + +#: ../templates/selfService/adminMain.php:225 +msgid "" +"Please enter a valid LDAP user if you want to use it for all operations." +msgstr "" +"Bitte geben Sie einen gültigen LDAP-Benutzer an wenn Sie ihn für alle " +"Operationen nutzen möchten." + +#: ../lib/modules/qmailUser.inc:454 +msgid "Please enter a valid account status." +msgstr "Bitte geben Sie einen gültigen Kontostatus ein." + +#: ../lib/modules/bindDLZ.inc:529 ../lib/modules/bindDLZ.inc:530 +msgid "Please enter a valid admin email address." +msgstr "Bitte geben Sie eine gültige Admin-EMail-Adresse ein." + +#: ../templates/config/confmain.php:554 +msgid "Please enter a valid bind user." +msgstr "Bitte geben Sie einen gültigen Bind-Benutzer ein." + +#: ../lib/modules/inetOrgPerson.inc:105 ../lib/modules/inetOrgPerson.inc:106 +msgid "Please enter a valid business category!" +msgstr "Bitte geben Sie eine gültige Abteilung ein!" + +#: ../lib/modules/posixAccount.inc:129 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/windowsUser.inc:591 ../lib/modules/windowsUser.inc:592 +#: ../lib/modules/inetOrgPerson.inc:95 ../lib/modules/inetOrgPerson.inc:96 +msgid "Please enter a valid common name!" +msgstr "Bitte geben Sie einen gültigen allgemeinen Namen ein!" + +#: ../lib/modules/qmailUser.inc:471 +msgid "Please enter a valid configuration type." +msgstr "Bitte geben Sie einen gültigen Konfigurationstyp ein." + +#: ../lib/modules/mitKerberos.inc:291 ../lib/modules/mitKerberos.inc:292 +#: ../lib/modules/qmailUser.inc:470 ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/heimdalKerberos.inc:255 +#: ../lib/modules/heimdalKerberos.inc:256 +msgid "Please enter a valid date in format DD-MM-YYYY." +msgstr "Bitte geben Sie ein gültiges Datum im Format TT-MM-JJJJ ein." + +#: ../lib/modules/asteriskAccount.inc:576 +#: ../lib/modules/asteriskAccount.inc:577 +msgid "Please enter a valid default user." +msgstr "Bitte geben Sie einen gültigen Standardbenutzer ein." + +#: ../lib/modules/qmailUser.inc:455 +msgid "Please enter a valid delivery mode." +msgstr "Bitte geben Sie einen gültigen Liefermodus ein." + +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:111 ../lib/modules/windowsUser.inc:595 +#: ../lib/modules/windowsUser.inc:596 +msgid "Please enter a valid display name!" +msgstr "Bitte geben Sie einen gültigen Anzeigenamen ein!" + +#: ../lib/modules/sambaSamAccount.inc:117 ../lib/modules/windowsUser.inc:617 +msgid "Please enter a valid drive letter." +msgstr "Bitte geben Sie einen gültigen Laufwerksbuchstaben ein." + +#: ../lib/modules/kolabGroup.inc:177 ../lib/modules/kolabGroup.inc:178 +#: ../lib/modules/selfRegistration.inc:122 +#: ../lib/modules/selfRegistration.inc:482 +#: ../lib/modules/zarafaDynamicGroup.inc:200 +#: ../lib/modules/zarafaDynamicGroup.inc:201 ../lib/modules/qmailUser.inc:448 +#: ../lib/modules/qmailUser.inc:449 ../lib/modules/qmailUser.inc:450 +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:453 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:216 ../lib/modules/windowsUser.inc:607 +#: ../lib/modules/windowsUser.inc:608 ../lib/modules/pykotaUser.inc:319 +#: ../lib/modules/pykotaUser.inc:320 ../lib/modules/inetOrgPerson.inc:80 +#: ../lib/modules/inetOrgPerson.inc:82 +#: ../lib/modules/kolabSharedFolder.inc:259 +#: ../lib/modules/kolabSharedFolder.inc:260 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:421 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:425 +#: ../lib/modules/qmailGroup.inc:426 ../lib/modules/qmailGroup.inc:427 +#: ../lib/modules/qmailGroup.inc:428 ../lib/modules/qmailGroup.inc:429 +#: ../lib/modules/qmailGroup.inc:430 ../lib/modules/qmailGroup.inc:431 +#: ../lib/modules/qmailGroup.inc:432 ../lib/modules/passwordSelfReset.inc:232 +#: ../lib/modules/passwordSelfReset.inc:233 +#: ../lib/modules/passwordSelfReset.inc:900 +#: ../lib/modules/passwordSelfReset.inc:1122 +#: ../lib/modules/windowsGroup.inc:285 ../lib/modules/windowsGroup.inc:286 +#: ../lib/modules.inc:1178 +msgid "Please enter a valid email address!" +msgstr "Bitte geben Sie eine gültige EMail Adresse ein!" + +#: ../lib/modules/zarafaDynamicGroup.inc:202 +#: ../lib/modules/zarafaDynamicGroup.inc:203 +#: ../lib/modules/zarafaGroup.inc:217 ../lib/modules/zarafaGroup.inc:218 +msgid "Please enter a valid email alias." +msgstr "Bitte geben Sie einen gültigen EMail-Alias ein." + +#: ../lib/modules/passwordSelfReset.inc:907 +#: ../lib/modules/passwordSelfReset.inc:1129 +msgid "Please enter a valid employee number." +msgstr "Bitte geben Sie eine gültige Personalnummer ein." + +#: ../lib/modules/inetOrgPerson.inc:93 ../lib/modules/inetOrgPerson.inc:94 +msgid "Please enter a valid employee type!" +msgstr "Bitte geben Sie einen gültigen Angestelltentyp ein!" + +#: ../lib/modules/inetOrgPerson.inc:76 ../lib/modules/inetOrgPerson.inc:77 +msgid "Please enter a valid fax number!" +msgstr "Bitte geben Sie eine gültige Faxnummer ein!" + +#: ../lib/modules/customFields.inc:187 +msgid "" +"Please enter a valid field name. Only letters, numbers, dash and underline " +"are allowed." +msgstr "" +"Bitte geben Sie einen gültigen Feldnamen ein. Es sind Buchstaben, Zahlen, " +"Minus und Unterstrich erlaubt." + +#: ../lib/lists.inc:229 +msgid "" +"Please enter a valid filter. Only letters, numbers and \" _*$.@-\" are " +"allowed." +msgstr "" +"Bitte geben Sie einen gültigen Filter ein. Es sind Buchstaben, Zahlen und \" " +"_*$.@-\" erlaubt." + +#: ../lib/modules/selfRegistration.inc:83 +#: ../lib/modules/selfRegistration.inc:218 +msgid "Please enter a valid first name." +msgstr "Bitte geben Sie einen gültigen Vornamen ein." + +#: ../lib/modules/asteriskAccount.inc:570 +#: ../lib/modules/asteriskAccount.inc:571 +msgid "Please enter a valid from domain." +msgstr "Bitte geben Sie einen gültige Quelldomäne ein." + +#: ../lib/modules/asteriskAccount.inc:568 +#: ../lib/modules/asteriskAccount.inc:569 +msgid "Please enter a valid from user." +msgstr "Bitte geben Sie einen gültigen Quellbenutzer ein." + +#: ../lib/modules/sambaSamAccount.inc:121 +msgid "Please enter a valid group name!" +msgstr "Bitte geben Sie einen gültigen Gruppennamen ein!" + +#: ../lib/modules/windowsGroup.inc:287 +msgid "Please enter a valid group scope." +msgstr "Bitte geben Sie einen gültigen Gruppenbereich ein." + +#: ../lib/modules/windowsGroup.inc:288 +msgid "Please enter a valid group type." +msgstr "Bitte geben Sie einen gültigen Gruppentyp ein." + +#: ../lib/modules/pykotaUser.inc:327 +msgid "Please enter a valid job suffix." +msgstr "Bitte geben Sie einen gültigen Jobsuffix an." + +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:92 +msgid "Please enter a valid job title!" +msgstr "Bitte geben Sie eine gültige Berufsbezeichnung ein!" + +#: ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:219 +msgid "Please enter a valid last name." +msgstr "Bitte geben Sie einen gültigen Nachnamen ein." + +#: ../lib/modules/pykotaGroup.inc:205 ../lib/modules/pykotaUser.inc:321 +msgid "Please enter a valid limit type." +msgstr "Bitte geben Sie einen gültigen Limittyp ein." + +#: ../lib/modules/eduPerson.inc:253 +msgid "Please enter a valid list of affiliations." +msgstr "Bitte geben Sie eine gültige Liste von Zugehörigkeiten ein." + +#: ../lib/modules/freeRadius.inc:255 ../lib/modules/freeRadius.inc:256 +msgid "Please enter a valid list of group names." +msgstr "Bitte geben Sie eine gültige Liste von Gruppennamen ein." + +#: ../lib/modules/hostObject.inc:111 +msgid "Please enter a valid list of host names." +msgstr "Bitte geben Sie eine gültige Liste von Hostnamen ein." + +#: ../lib/modules/authorizedServiceObject.inc:130 +msgid "Please enter a valid list of service names." +msgstr "Bitte geben Sie eine gültige Liste von Dienstnamen ein." + +#: ../lib/modules/inetOrgPerson.inc:74 ../lib/modules/inetOrgPerson.inc:75 +msgid "Please enter a valid mobile number!" +msgstr "Bitte geben Sie eine gültige Mobiltelefonnummer ein!" + +#: ../lib/modules/pykotaPrinter.inc:215 ../lib/modules/pykotaPrinter.inc:216 +#: ../lib/modules/pykotaPrinter.inc:217 ../lib/modules/pykotaPrinter.inc:218 +#: ../lib/modules/pykotaUser.inc:322 ../lib/modules/pykotaUser.inc:323 +#: ../lib/modules/pykotaUser.inc:324 ../lib/modules/pykotaUser.inc:325 +#: ../lib/modules/pykotaUser.inc:326 +msgid "Please enter a valid number (e.g. \"1.5\")." +msgstr "Bitte geben Sie eine gültige Zahl (z.B. \"1.5\") ein." + +#: ../lib/modules/pykotaPrinter.inc:213 ../lib/modules/pykotaPrinter.inc:214 +msgid "Please enter a valid number." +msgstr "Bitte geben Sie eine gültige Zahl ein." + +#: ../lib/modules/customFields.inc:190 +msgid "Please enter a valid object class." +msgstr "Bitte geben Sie eine gültige Objektklasse ein." + +#: ../lib/modules/dhcp_settings.inc:331 +msgid "Please enter a valid option." +msgstr "Bitte geben Sie eine gültige Option ein." + +#: ../lib/modules/zarafaServer.inc:177 ../lib/modules/zarafaServer.inc:178 +msgid "Please enter a valid path." +msgstr "Bitte geben Sie einen gültigen Pfad ein." + +#: ../lib/modules/asteriskAccount.inc:572 +#: ../lib/modules/asteriskAccount.inc:573 ../lib/modules/zarafaServer.inc:173 +#: ../lib/modules/zarafaServer.inc:174 ../lib/modules/zarafaServer.inc:175 +#: ../lib/modules/zarafaServer.inc:176 +msgid "Please enter a valid port number." +msgstr "Bitte geben Sie eine gültige Portnummer ein." + +#: ../lib/modules/inetOrgPerson.inc:85 ../lib/modules/inetOrgPerson.inc:86 +msgid "Please enter a valid postal address!" +msgstr "Bitte geben Sie eine gültige Anschrift ein!" + +#: ../lib/modules/windowsUser.inc:605 ../lib/modules/windowsUser.inc:606 +#: ../lib/modules/inetOrgPerson.inc:89 ../lib/modules/inetOrgPerson.inc:90 +msgid "Please enter a valid postal code!" +msgstr "Bitte geben Sie eine gültige Postleitzahl ein!" + +#: ../lib/modules/eduPerson.inc:251 +msgid "Please enter a valid primary affiliation." +msgstr "Bitte geben Sie eine primäre Zugehörigkeit ein." + +#: ../lib/modules/freeRadius.inc:253 ../lib/modules/freeRadius.inc:254 +msgid "Please enter a valid realm." +msgstr "Bitte geben Sie einen gültigen Bereichsnamen ein." + +#: ../lib/modules/kolabGroup.inc:181 ../lib/modules/kolabGroup.inc:182 +#: ../lib/modules/kolabUser.inc:253 ../lib/modules/kolabUser.inc:254 +#: ../lib/modules/kolabSharedFolder.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:251 +msgid "Please enter a valid recipient expression." +msgstr "Bitte geben Sie eine gültige Empfängerregel ein." + +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:88 +msgid "Please enter a valid registered address." +msgstr "Bitte geben Sie eine gültige Meldeadresse ein." + +#: ../lib/modules/eduPerson.inc:252 +msgid "Please enter a valid scoped affiliation." +msgstr "Bitte geben Sie einen gültigen Zugehörigkeitsbereich ein." + +#: ../lib/modules/kolabGroup.inc:183 ../lib/modules/kolabGroup.inc:184 +#: ../lib/modules/kolabUser.inc:255 ../lib/modules/kolabUser.inc:256 +#: ../lib/modules/kolabSharedFolder.inc:252 +#: ../lib/modules/kolabSharedFolder.inc:253 +msgid "Please enter a valid sender expression." +msgstr "Bitte geben Sie eine gültige Absenderregel ein." + +#: ../lib/modules/qmailUser.inc:468 ../lib/modules/qmailUser.inc:469 +#: ../lib/modules/imapAccess.inc:177 +msgid "Please enter a valid server name where the mailboxes reside." +msgstr "" +"Bitte geben Sie einen korrekten Servernamen an auf dem die Postfächer liegen." + +#: ../lib/modules/inetOrgPerson.inc:83 ../lib/modules/inetOrgPerson.inc:84 +msgid "Please enter a valid street name!" +msgstr "Bitte geben Sie einen gültigen Straßennamen ein!" + +#: ../lib/modules/windowsUser.inc:601 ../lib/modules/windowsUser.inc:602 +#: ../lib/modules/windowsUser.inc:603 ../lib/modules/windowsUser.inc:604 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:71 +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:78 ../lib/modules/inetOrgPerson.inc:79 +msgid "Please enter a valid telephone number!" +msgstr "Bitte geben Sie eine gültige Telefonnummer ein!" + +#: ../lib/modules/passwordSelfReset.inc:921 +#: ../lib/modules/passwordSelfReset.inc:1143 +msgid "Please enter a valid user name or email address." +msgstr "Bitte geben Sie einen gültigen Benutzernamen oder EMail-Adresse ein." + +#: ../lib/modules/posixGroup.inc:719 ../lib/modules/posixAccount.inc:1160 +#: ../lib/modules/posixAccount.inc:1165 +#, php-format +msgid "Please enter a value between %s and %s!" +msgstr "Bitte geben Sie einen Wert zwischen %s und %s ein!" + +#: ../lib/modules/customFields.inc:2780 +msgid "Please enter a value for status \"checked\"." +msgstr "Bitte geben Sie einen Wert für den Status \"ausgewählt\" an." + +#: ../lib/modules/customFields.inc:2787 +msgid "Please enter a value for status \"unchecked\"." +msgstr "Bitte geben Sie einen Wert für den Status \"nicht ausgewählt\" an." + +#: ../templates/multiEdit.php:140 +msgid "Please enter a value to add." +msgstr "Bitte geben Sie einen Wert zum Hinzufügen an." + +#: ../templates/multiEdit.php:143 +msgid "Please enter a value to modify." +msgstr "Bitte geben Sie einen Wert zum Editieren ein." + +#: ../lib/modules/customFields.inc:77 +msgid "Please enter an alias for this group." +msgstr "Bitte geben Sie einen Alias für diese Gruppe ein." + +#: ../lib/modules/customFields.inc:189 +msgid "Please enter an alias name." +msgstr "Bitte geben Sie einen Alias ein." + +#: ../lib/modules/kolabUser.inc:286 ../lib/modules/imapAccess.inc:208 +#, php-format +msgid "Please enter an email address on this page: %s" +msgstr "Bitte geben Sie eine e-mail Adresse auf dieser Seite ein: %s" + +#: ../lib/modules/pykotaUser.inc:353 +#, php-format +msgid "Please enter an user name on this page: %s" +msgstr "Bitte geben Sie einen Benutzernamen auf dieser Seite ein: %s" + +#: ../lib/modules/range.inc:139 +#, php-format +msgid "Please enter at least one range for pool \"%s\"." +msgstr "Bitte geben Sie mindestens einen Bereich für den Pool \"%s\" an." + +#: ../lib/modules/windowsUser.inc:1360 ../lib/modules/windowsUser.inc:1369 +#: ../lib/modules/windowsUser.inc:1378 ../lib/modules/windowsUser.inc:1389 +msgid "Please enter either yes or no." +msgstr "Bitte geben Sie entweder ja oder nein ein." + +#: ../lib/modules/sudoRole.inc:273 ../lib/modules/sudoRole.inc:274 +msgid "Please enter only ASCII characters for the commands." +msgstr "Bitte geben Sie nur ASCII-Zeichen für die Kommandos ein." + +#: ../lib/modules/sudoRole.inc:271 ../lib/modules/sudoRole.inc:272 +msgid "Please enter only ASCII characters for the host names." +msgstr "Bitte geben Sie nur ASCII-Zeichen für die Hostnamen ein." + +#: ../lib/modules/sudoRole.inc:279 ../lib/modules/sudoRole.inc:280 +msgid "Please enter only ASCII characters for the options." +msgstr "Bitte geben Sie nur ASCII-Zeichen für die Optionen ein." + +#: ../lib/modules/sudoRole.inc:277 ../lib/modules/sudoRole.inc:278 +msgid "Please enter only ASCII characters for the run groups." +msgstr "Bitte geben Sie nur ASCII-Zeichen für die Ausführgruppen ein." + +#: ../lib/modules/sudoRole.inc:275 ../lib/modules/sudoRole.inc:276 +msgid "Please enter only ASCII characters for the run users." +msgstr "Bitte geben Sie nur ASCII-Zeichen für die Ausführbenutzer ein." + +#: ../lib/modules/device.inc:140 ../lib/modules/device.inc:141 +msgid "Please enter only ASCII characters for the serial number." +msgstr "Bitte geben Sie nur ASCII-Zeichen für die Seriennummer ein." + +#: ../lib/modules/sudoRole.inc:269 ../lib/modules/sudoRole.inc:270 +msgid "Please enter only ASCII characters for the user names." +msgstr "Bitte geben Sie nur ASCII-Zeichen für die Benutzernamen ein." + +#: ../lib/modules/passwordSelfReset.inc:231 +msgid "" +"Please enter the DN and password of the administrative password self reset " +"account." +msgstr "Bitte geben Sie DN und Passwort für den administrativen Benutzer ein." + +#: ../lib/modules/selfRegistration.inc:117 +msgid "" +"Please enter the DN and password of the administrative self registration " +"account." +msgstr "" +"Bitte geben Sie DN und Passwort für den administrativen " +"Selbstregistrierungsbenutzer ein." + +#: ../lib/modules/posixGroup.inc:525 ../lib/modules/posixAccount.inc:502 +msgid "" +"Please enter the DN of the LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "" +"Bitte geben Sie die DN eines LDAP-Eintrages mit der Objektklasse " +"\"sambaUnixIdPool\" ein." + +#: ../lib/modules/bindDLZ.inc:93 ../lib/modules/bindDLZ.inc:97 +msgid "Please enter the IP address for this entry." +msgstr "Bitte geben Sie die IP-Adresse für diesen Eintrag ein." + +#: ../lib/modules/ddns.inc:99 +msgid "Please enter the IP address of your DNS server." +msgstr "Bitte geben Sie die IP-Adresse Ihres DNS-Servers ein." + +#: ../lib/modules/selfRegistration.inc:62 +msgid "Please enter the LDAP DN that should be used to create new users." +msgstr "" +"Bitte geben Sie den DN des administrativen Benutzers ein, mit dem die neuen " +"Benutzer erstellt werden sollen." + +#: ../lib/modules/passwordSelfReset.inc:105 +msgid "Please enter the LDAP DN that should be used to reset passwords." +msgstr "" +"Bitte geben Sie den DN des administrativen Benutzers ein, mit dem die " +"Passwörter zurückgesetzt werden sollen." + +#: ../lib/modules/customFields.inc:93 +msgid "Please enter the LDAP attribute name for this field." +msgstr "Bitte geben Sie einen LDAP-Attributnamen für das Feld ein." + +#: ../help/help.inc:123 +msgid "" +"Please enter the LDAP suffix where LAM should start to search for users. The " +"LDAP filter needs to match the given user name to exactly one DN. The value " +"\"%USER%\" will be replaced by the user name from the login page." +msgstr "" +"Bitte geben Sie den LDAP-Suffix an, ab dem LAM nach Benutzern suchen soll. " +"Der LDAP-Filter muss für einen Benutzer genau einen DN liefern. Der Wert " +"\"%USER%\" wird durch den Benutzernamen auf der Loginseite ersetzt." + +#: ../lib/modules/pykotaUser.inc:157 +msgid "" +"Please enter the LDAP suffix where the PyKota job entries are stored " +"(configuration option \"jobbase\")." +msgstr "" +"Bitte geben Sie den LDAP-Suffix ein unter dem die PyKota Jobeinträge liegen " +"(Konfigurationsoption \"jobbase\")." + +#: ../lib/modules/asteriskExtension.inc:188 +#: ../lib/modules/asteriskVoicemail.inc:214 +msgid "Please enter the account context." +msgstr "Bitte geben Sie den Accountkontext an." + +#: ../lib/modules.inc:928 +msgid "Please enter the account information on the other pages first." +msgstr "Bitte geben Sie erst auf den anderen Seiten die Accountdaten ein." + +#: ../lib/modules/asteriskAccount.inc:565 +msgid "Please enter the account type." +msgstr "Bitte geben Sie den Accounttyp an." + +#: ../lib/modules/asteriskAccount.inc:120 +msgid "Please enter the account's type (e.g. \"friend\")." +msgstr "Bitte geben Sie den Accounttyp (z.B. \"friend\") an." + +#: ../lib/modules/asteriskExtension.inc:187 +msgid "Please enter the application data." +msgstr "Bitte geben Sie die Applikationsdaten ein." + +#: ../lib/modules/asteriskExtension.inc:186 +msgid "Please enter the application." +msgstr "Bitte geben Sie die Applikation an." + +#: ../lib/modules/automount.inc:69 +msgid "" +"Please enter the automount entry (e.g. \"-fstype=nfs,rw server:/home\")." +msgstr "" +"Bitte geben Sie den Automount-Eintrag (z.B. \"-fstype=nfs,rw server:/home\") " +"ein." + +#: ../templates/login.php:292 +msgid "Please enter the configuration and create a server profile." +msgstr "Bitte rufen Sie die Konfiguration auf und erstellen ein Serverprofil." + +#: ../help/help.inc:57 +msgid "" +"Please enter the configuration password. This is NOT your LDAP password. It " +"is stored in your .conf-file. If this is the first time you log in, enter " +"\"lam\"." +msgstr "" +"Bitte geben Sie das Konfigurationspasswort ein. Das ist NICHT ihr LDAP-" +"Passwort. Es befindet sich in ihrer .conf-Datei. Wenn Sie sich zum ersten " +"Mal anmelden geben Sie \"lam\" ein." + +#: ../lib/modules/oracleService.inc:66 +msgid "" +"Please enter the connection string (e.g. \"(DESCRIPTION=(ADDRESS=" +"(PROTOCOL=TCP)(HOST=server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db." +"example.com)))\")." +msgstr "" +"Bitte geben Sie den Connection-String (z.B. \"(DESCRIPTION=(ADDRESS=" +"(PROTOCOL=TCP)(HOST=server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db." +"example.com)))\") ein." + +#: ../lib/modules/puppetClient.inc:81 ../lib/modules/puppetClient.inc:85 +msgid "Please enter the environment name for this node (e.g. production)." +msgstr "Bitte geben Sie die Umgebung für diesen Knoten (z.B. Produktion) ein." + +#: ../lib/modules/asteriskAccount.inc:559 +msgid "Please enter the extension context." +msgstr "Bitte geben Sie den Erweiterungskontext an." + +#: ../lib/modules/asteriskExtension.inc:189 +msgid "Please enter the extension name." +msgstr "Bitte geben Sie den Erweiterungsnamen an." + +#: ../lib/modules/windowsGroup.inc:115 +msgid "Please enter the group name." +msgstr "Bitte geben Sie den Gruppennamen an." + +#: ../lib/modules/asteriskAccount.inc:562 ../lib/modules/windowsHost.inc:75 +msgid "Please enter the host name." +msgstr "Bitte geben Sie den Hostnamen an." + +#: ../lib/modules/customScripts.inc:60 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [account type] [action] [script and arguments]" +msgstr "" +"Bitte geben Sie die Liste der zu startenden Skripte an. Jede Zeile hat " +"folgendes Format: [Accounttyp] [Aktion] [Skript und Argumente]" + +#: ../lib/modules/customScripts.inc:74 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [action] [script and arguments]" +msgstr "" +"Bitte geben Sie die Liste der zu startenden Skripte an. Jede Zeile hat " +"folgendes Format: [Aktion] [Skript und Argumente]" + +#: ../lib/modules/nisObject.inc:66 +msgid "" +"Please enter the mapping entry (e.g. \"-fstype=nfs,rw server:/projects\")." +msgstr "" +"Bitte geben Sie den Erweiterungseintrag (z.B. \"-fstype=nfs,rw server:/" +"projects\") ein." + +#: ../lib/modules/nisObject.inc:70 +msgid "Please enter the mapping name for this entry (e.g. auto.home)." +msgstr "" +"Bitte geben Sie den Abbildungsnamen für diesen Eintrag (z.B. auto.home) an." + +#: ../help/help.inc:143 +msgid "" +"Please enter the master configuration password. This is NOT your LDAP " +"password. It is stored in your config.cfg file. If this is the first time " +"you log in, enter \"lam\"." +msgstr "" +"Bitte geben Sie das Hauptpasswort ein. Das ist NICHT ihr LDAP-Passwort. Es " +"befindet sich in ihrer config.cfg-Datei. Wenn Sie sich zum ersten Mal " +"anmelden geben Sie \"lam\" ein." + +#: ../templates/config/mainlogin.php:145 +msgid "Please enter the master password to change the general preferences:" +msgstr "" +"Bitte Hauptpasswort eingeben, um die allgemeinen Einstellungen zu ändern:" + +#: ../lib/modules/qmailGroup.inc:424 +msgid "Please enter the message store." +msgstr "Bitte geben Sie den Nachrichtenspeicher an." + +#: ../help/help.inc:131 +msgid "" +"Please enter the name of the new profile and the password to change its " +"settings. Profile names may contain letters, numbers and -/_." +msgstr "" +"Bitte geben Sie den Namen des neuen Profils und das Passwort an um es zu " +"erstellen. Profilnamen dürfen Buchstaben, Zahlen und -/_ enthalten." + +#: ../help/help.inc:133 +msgid "" +"Please enter the new name of the profile. The name may contain letters, " +"numbers and -/_." +msgstr "" +"Bitte geben Sie den neuen Namen des Profils an. Profilnamen dürfen " +"Buchstaben, Zahlen und -/_ enthalten." + +#: ../lib/modules/selfRegistration.inc:66 +#: ../lib/modules/passwordSelfReset.inc:109 +msgid "" +"Please enter the password for the admin DN. Please note that this is saved " +"as clear-text in the self service profile." +msgstr "" +"Bitte geben Sie das Passwort des administrativen Benutzers an. Bitte " +"beachten Sie, dass es als Klartext im SelfService-Profil gespeichert wird." + +#: ../lib/modules/asteriskAccount.inc:116 ../lib/modules/posixAccount.inc:523 +#: ../lib/modules/windowsUser.inc:224 ../lib/modules/inetOrgPerson.inc:863 +msgid "Please enter the password which you want to set for this account." +msgstr "Bitte geben Sie das Passwort für diesen Account ein." + +#: ../help/help.inc:203 +msgid "" +"Please enter the password which you want to set for this account. You may " +"also generate a random password (12 characters) which will be displayed on " +"your screen." +msgstr "" +"Bitte geben Sie das Passwort für diesen Account ein. Sie können auch ein " +"Zufallspasswort (12 Zeichen) erzeugen, das dann auf dem Bildschirm angezeigt " +"wird." + +#: ../lib/modules/posixAccount.inc:474 +msgid "Please enter the path to the user's home directory." +msgstr "Bitte geben Sie den Pfad zum Heimatverzeichnis des Benutzers an." + +#: ../lib/modules/zarafaServer.inc:69 +msgid "Please enter the port number for (unencrypted) HTTP connections." +msgstr "" +"Bitte geben Sie die Portnummer für (unverschlüsselte) HTTP-Verbindungen ein." + +#: ../lib/modules/zarafaServer.inc:73 +msgid "Please enter the port number for encrypted connections." +msgstr "Bitte geben Sie die Portnummer für verschlüsselte Verbindungen ein." + +#: ../lib/modules/passwordSelfReset.inc:81 +msgid "" +"Please enter the possible security questions for the password self reset." +msgstr "" +"Bitte geben Sie die möglichen Sicherheitsfragen für die Passwortrücksetzung " +"ein." + +#: ../lib/modules/asteriskExtension.inc:191 +msgid "Please enter the priority." +msgstr "Bitte geben Sie die Priorität ein." + +#: ../lib/modules/imapAccess.inc:110 +msgid "Please enter the quota limit of this mailbox in kilobytes." +msgstr "Bitte geben Sie das Quota-Limit des Postfaches in kB ein." + +#: ../lib/modules/quota.inc:154 +msgid "" +"Please enter the quota settings for this mount point. The syntax is: {soft " +"block limit},{hard block limit},{soft inode limit},{hard inode limit}" +msgstr "" +"Bitte geben Sie die Quota-Einstellungen für diesen Mountpoint ein. Die " +"Syntax ist: {weiches Blocklimit},{hartes Blocklimit},{weiches Inode-Limit}," +"{hartes Inode-Limit}" + +#: ../lib/modules/systemQuotas.inc:69 +msgid "" +"Please enter the quota settings for this user. The syntax is: {mount point}," +"{soft block limit},{hard block limit},{soft inode limit},{hard inode limit}." +msgstr "" +"Bitte geben Sie die Quota-Einstellungen für diesen Benutzer ein. Die Syntax " +"ist: {Mountpunkt}, {weiches Blocklimit},{hartes Blocklimit},{weiches Inode-" +"Limit},{hartes Inode-Limit}" + +#: ../lib/modules/nisMailAlias.inc:86 +msgid "Please enter the recipients for this alias." +msgstr "Bitte geben Sie die Empfänger für diesen Alias ein." + +#: ../lib/modules/customFields.inc:109 +#, php-format +msgid "" +"Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") to validate " +"this field. For a syntax description see here." +msgstr "" +"Bitte geben Sie einen regulären Ausdruck (z.B. \"/^[0-9a-zA-Z]+/$\") für die " +"Validierung dieses Feldes ein. Eine Syntaxbeschreibung finden Sie hier." + +#: ../templates/lists/changePassword.php:526 +#: ../lib/modules/selfRegistration.inc:533 +#: ../lib/modules/sambaSamAccount.inc:105 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/windowsUser.inc:615 ../lib/modules/customFields.inc:2533 +msgid "Please enter the same password in both password fields." +msgstr "Bitte geben Sie das selbe Passwort in beide Felder ein." + +#: ../lib/modules/passwordSelfReset.inc:77 +msgid "Please enter the security question for the password self reset." +msgstr "Bitte geben Sie die Sicherheitsfrage für die Passwortrücksetzung ein." + +#: ../lib/modules/sambaSamAccount.inc:371 +msgid "Please enter the time limit in minutes. 0 means unlimited." +msgstr "Bitte geben Sie das Zeitlimit in Minuten ein. 0 heißt unbegrenzt." + +#: ../lib/modules/windowsUser.inc:108 ../lib/modules/windowsUser.inc:116 +msgid "Please enter the user's name." +msgstr "Bitte geben Sie den Benutzernamen an." + +#: ../lib/modules/puppetClient.inc:101 ../lib/modules/puppetClient.inc:105 +msgid "" +"Please enter your Puppet variables for this node (e.g. config_exim=true)." +msgstr "" +"Bitte geben Sie die Puppet Variablen für diesen Knoten (z.B. " +"config_exim=true) ein." + +#: ../templates/selfService/adminLogin.php:133 +msgid "" +"Please enter your master configuration password to change the self service " +"profile:" +msgstr "" +"Bitte geben Sie das Hauptpasswort ein um das SelfService-Profil zu ändern:" + +#: ../templates/config/conflogin.php:132 +msgid "Please enter your password to change the server preferences:" +msgstr "" +"Bitte geben Sie Ihr Passwort ein, um die Servereinstellungen zu ändern:" + +#: ../lib/modules/ldapPublicKey.inc:73 +msgid "Please enter your public SSH key." +msgstr "Bitte geben Sie Ihren SSH-Schlüssel ein." + +#: ../lib/modules/range.inc:489 ../lib/modules/fixed_ip.inc:404 +msgid "Please fill out the DHCP settings first." +msgstr "Bitte füllen Sie zuerst die DHCP-Einstellungen aus." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "Please go back and try again." +msgstr "Bitte gehen Sie zurück und versuchen es nochmals." + +#: ../templates/masscreate.php:246 +msgid "" +"Please provide a CSV formated file with your account data. The cells in the " +"first row must be filled with the column identifiers. The following rows " +"represent one account for each row." +msgstr "" +"Bitte erstellen Sie eine CSV-formatierte Datei mit Ihren Accountdaten. Die " +"Zellen der ersten Zeile müssen mit den Spaltenbezeichnern gefüllt werden. " +"Alle nachfolgenden Zeilen repräsentieren jeweils einen Account." + +#: ../lib/config.inc:1810 +msgid "Please provide a file in DER or PEM format." +msgstr "Bitte geben Sie eine Datei im DER oder PEM-Format an." + +#: ../templates/massBuildAccounts.php:256 +msgid "Please provide a file to upload." +msgstr "Bitte geben Sie eine Datei zum Hochladen an." + +#: ../lib/modules/inetOrgPerson.inc:771 +msgid "" +"Please select an image file to upload. It must be in JPG format (.jpg/.jpeg)." +msgstr "" +"Bitte wählen Sie ein Foto zum Hochladen. Es muss im JPG-Format (.jpg/.jpeg) " +"vorliegen." + +#: ../lib/modules/customFields.inc:101 +msgid "Please select the field type (e.g. text field)." +msgstr "Bitte wählen Sie den Feldtyp (z.B. Textfeld)." + +#: ../help/help.inc:270 +msgid "Please select the suffix where changes should be done." +msgstr "Bitte wählen Sie den Suffix wo Änderungen stattfinden sollen." + +#: ../help/help.inc:149 +msgid "" +"Please select your prefered log level. Messages with a lower level will not " +"be logged." +msgstr "" +"Bitte wählen Sie den gewünschten Log-Level. Meldungen mit niedrigerem Level " +"werden nicht aufgezeichnet." + +#: ../lib/modules/asteriskVoicemail.inc:228 +msgid "Please set the voicemail password with \"Set password\" before saving." +msgstr "" +"Bitte geben Sie das Anrufbeantworterpasswort über \"Passwort setzen\" ein " +"bevor Sie speichern." + +#: ../lib/modules.inc:877 +#, php-format +msgid "Please set up all required attributes on page: %s" +msgstr "Bitte setzen Sie alle erforderlichen Werte auf der Seite: %s" + +#: ../templates/config/profmanage.php:220 +#: ../templates/selfService/profManage.php:160 +msgid "Please set up your master configuration file (config/config.cfg) first!" +msgstr "" +"Bitte konfigurieren Sie zuerst die Haupteinstellungsdatei (config/config." +"cfg)!" + +#: ../lib/modules/dhcp_settings.inc:551 ../lib/modules/ddns.inc:362 +msgid "" +"Please set your LDAP suffix to an LDAP entry with object class \"dhcpService" +"\" or \"dhcpServer\"." +msgstr "" +"Bitte ändern Sie Ihren LDAP-Suffix auf einen LDAP-Eintrag mit der " +"Objektklasse \"dhcpService\" oder \"dhcpServer\"." + +#: ../templates/multiEdit.php:213 +msgid "Please specify at least one operation." +msgstr "Bitte geben Sie mindestens eine Operation ein." + +#: ../lib/modules/passwordSelfReset.inc:145 +msgid "Please specify how your users need to identify themselves." +msgstr "Bitte geben Sie an wie Ihre Benutzer sich ausweisen sollen." + +#: ../lib/modules/windowsGroup.inc:143 +msgid "Please specify the group scope." +msgstr "Bitte geben Sie einen Gruppenbereich ein." + +#: ../lib/modules/customFields.inc:141 +msgid "" +"Please specify the possible values for this field. Each value can have a " +"descriptive label that is displayed to the user." +msgstr "" +"Bitte geben Sie die möglichen Werte des Feldes ein. Sie können jedem Wert " +"eine Beschreibung zuordnen, die dem Benutzer statt des Wertes angezeigt wird." + +#: ../help/help.inc:274 +msgid "" +"Please specify which attributes should be changed. The modify operation will " +"also add an value if the attribute does not yet exist. To delete all values " +"of an attribute please leave the value field empty." +msgstr "" +"Bitte geben Sie an welche Attribute geändert werden sollen. Die " +"Änderungsoperation wird auch Werte hinzufügen wenn das Attribut derzeit " +"nicht existiert. Um alle Werte eines Attributes zu löschen, lassen Sie das " +"Wertefeld leer." + +#: ../lib/modules/inetOrgPerson.inc:102 +msgid "Please upload a .jpg/.jpeg file." +msgstr "Bitte laden Sie eine .jpg/.jpeg-Datei hoch." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:172 +msgid "Please wait" +msgstr "Bitte warten" + +#: ../lib/types/ppolicyType.inc:149 +#, php-format +msgid "Policy count: %s" +msgstr "Anzahl Richtlinien: %s" + +#: ../lib/modules/kolabUser.inc:246 +msgid "Policy list has invalid format!" +msgstr "Regelliste hat ungültiges Format!" + +#: ../lib/modules/range.inc:550 +msgid "Pools" +msgstr "Pools" + +#: ../lib/modules/asteriskAccount.inc:179 +#: ../lib/modules/asteriskAccount.inc:283 +#: ../lib/modules/asteriskAccount.inc:436 +#: ../lib/modules/asteriskAccount.inc:686 +#: ../lib/modules/asteriskAccount.inc:999 +#: ../lib/modules/asteriskAccount.inc:1267 ../lib/modules/bindDLZ.inc:195 +#: ../lib/modules/bindDLZ.inc:199 ../lib/modules/bindDLZ.inc:399 +#: ../lib/modules/bindDLZ.inc:512 ../lib/modules/bindDLZ.inc:1365 +#: ../lib/modules/bindDLZ.inc:1608 +msgid "Port" +msgstr "Port" + +#: ../lib/modules/asteriskAccount.inc:180 +msgid "Port number." +msgstr "Portnummer." + +#: ../templates/pdfedit/pdfpage.php:592 ../templates/pdfedit/pdfpage.php:602 +#: ../templates/pdfedit/pdfpage.php:612 ../templates/pdfedit/pdfpage.php:627 +msgid "Position" +msgstr "Position" + +#: ../templates/masscreate.php:310 ../templates/masscreate.php:384 +#: ../lib/modules/customScripts.inc:125 ../lib/modules/customScripts.inc:127 +#: ../lib/modules/customScripts.inc:129 +#: ../lib/modules/sambaGroupMapping.inc:604 +msgid "Possible values" +msgstr "Mögliche Werte" + +#: ../lib/modules/pykotaPrinter.inc:130 ../lib/modules/posixGroup.inc:530 +#: ../lib/modules/sambaGroupMapping.inc:172 +#: ../lib/modules/organizationalRole.inc:103 +#: ../lib/modules/groupOfNames.inc:115 +msgid "" +"Possible wildcards are: \"*\" = any character, \"^\" = line start, \"$\" = " +"line end" +msgstr "" +"Mögliche Platzhalter sind: \"*\" = ein beliebiges Zeichen, \"^\" = " +"Zeilenanfang, \"$\" = Zeilenende" + +#: ../lib/modules/windowsUser.inc:160 ../lib/modules/windowsUser.inc:320 +#: ../lib/modules/windowsUser.inc:510 ../lib/modules/windowsUser.inc:547 +#: ../lib/modules/windowsUser.inc:709 ../lib/modules/windowsUser.inc:1606 +#: ../lib/modules/windowsUser.inc:1743 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:184 ../lib/modules/inetOrgPerson.inc:412 +#: ../lib/modules/inetOrgPerson.inc:559 ../lib/modules/inetOrgPerson.inc:686 +#: ../lib/modules/inetOrgPerson.inc:690 ../lib/modules/inetOrgPerson.inc:1259 +#: ../lib/modules/inetOrgPerson.inc:1262 ../lib/modules/inetOrgPerson.inc:1929 +#: ../lib/modules/inetOrgPerson.inc:2624 ../lib/modules/inetOrgPerson.inc:3580 +#: ../lib/modules/inetOrgPerson.inc:3647 +msgid "Post office box" +msgstr "Postfach" + +#: ../lib/modules/inetOrgPerson.inc:85 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:196 ../lib/modules/inetOrgPerson.inc:396 +#: ../lib/modules/inetOrgPerson.inc:571 ../lib/modules/inetOrgPerson.inc:702 +#: ../lib/modules/inetOrgPerson.inc:1303 ../lib/modules/inetOrgPerson.inc:1931 +#: ../lib/modules/inetOrgPerson.inc:2591 ../lib/modules/inetOrgPerson.inc:3588 +#: ../lib/modules/inetOrgPerson.inc:3649 +msgid "Postal address" +msgstr "Anschrift" + +#: ../lib/modules/inetOrgPerson.inc:703 +msgid "Postal address, city" +msgstr "Bitte geben Sie hier die Anschrift ein." + +#: ../lib/modules/windowsUser.inc:156 ../lib/modules/windowsUser.inc:326 +#: ../lib/modules/windowsUser.inc:509 ../lib/modules/windowsUser.inc:548 +#: ../lib/modules/windowsUser.inc:605 ../lib/modules/windowsUser.inc:710 +#: ../lib/modules/windowsUser.inc:1605 ../lib/modules/windowsUser.inc:1744 +#: ../lib/modules/inetOrgPerson.inc:89 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:187 ../lib/modules/inetOrgPerson.inc:388 +#: ../lib/modules/inetOrgPerson.inc:562 ../lib/modules/inetOrgPerson.inc:694 +#: ../lib/modules/inetOrgPerson.inc:698 ../lib/modules/inetOrgPerson.inc:1268 +#: ../lib/modules/inetOrgPerson.inc:1271 ../lib/modules/inetOrgPerson.inc:1930 +#: ../lib/modules/inetOrgPerson.inc:2613 ../lib/modules/inetOrgPerson.inc:3582 +#: ../lib/modules/inetOrgPerson.inc:3647 +msgid "Postal code" +msgstr "Postleitzahl" + +#: ../lib/modules/puppetClient.inc:112 +msgid "Predefined classes" +msgstr "Vordefinierte Klassen" + +#: ../lib/modules/puppetClient.inc:116 ../lib/modules/puppetClient.inc:122 +msgid "Predefined environments" +msgstr "Vordefinierte Umgebungen" + +#: ../lib/modules/authorizedServiceObject.inc:93 +#: ../lib/modules/authorizedServiceObject.inc:99 +msgid "Predefined services" +msgstr "Vordefinierte Dienste" + +#: ../help/help.inc:91 +msgid "Predefined values" +msgstr "Vordefinierte Werte" + +#: ../lib/modules/bindDLZ.inc:203 ../lib/modules/bindDLZ.inc:207 +#: ../lib/modules/bindDLZ.inc:287 ../lib/modules/bindDLZ.inc:502 +#: ../lib/modules/bindDLZ.inc:923 ../lib/modules/bindDLZ.inc:1520 +msgid "Preference" +msgstr "Präferenz" + +#: ../lib/modules/imapAccess.inc:97 ../lib/modules/imapAccess.inc:143 +msgid "Prefix for mailboxes" +msgstr "Präfix für Postfächer" + +#: ../lib/modules/inetOrgPerson.inc:342 +msgid "President" +msgstr "Präsident" + +#: ../lib/modules/pykotaUser.inc:650 ../lib/modules/pykotaUser.inc:999 +msgid "Price" +msgstr "Preis" + +#: ../lib/types/pykotaPrinterType.inc:94 ../lib/modules/pykotaPrinter.inc:111 +#: ../lib/modules/pykotaPrinter.inc:174 ../lib/modules/pykotaPrinter.inc:197 +#: ../lib/modules/pykotaPrinter.inc:215 ../lib/modules/pykotaPrinter.inc:235 +#: ../lib/modules/pykotaPrinter.inc:587 +msgid "Price per job" +msgstr "Preis je Job" + +#: ../lib/types/pykotaPrinterType.inc:93 ../lib/modules/pykotaPrinter.inc:115 +#: ../lib/modules/pykotaPrinter.inc:180 ../lib/modules/pykotaPrinter.inc:198 +#: ../lib/modules/pykotaPrinter.inc:217 ../lib/modules/pykotaPrinter.inc:237 +#: ../lib/modules/pykotaPrinter.inc:588 +msgid "Price per page" +msgstr "Preis je Seite" + +#: ../lib/modules/eduPerson.inc:88 ../lib/modules/eduPerson.inc:168 +#: ../lib/modules/eduPerson.inc:229 ../lib/modules/eduPerson.inc:283 +#: ../lib/modules/eduPerson.inc:581 +msgid "Primary affiliation" +msgstr "Primäre Zugehörigkeit" + +#: ../lib/modules/posixAccount.inc:297 ../lib/modules/posixAccount.inc:389 +#: ../lib/modules/posixAccount.inc:414 ../lib/modules/posixAccount.inc:465 +#: ../lib/modules/posixAccount.inc:514 ../lib/modules/posixAccount.inc:552 +#: ../lib/modules/posixAccount.inc:1446 ../lib/modules/posixAccount.inc:1735 +#: ../lib/modules/posixAccount.inc:1781 ../lib/modules/posixAccount.inc:1852 +msgid "Primary group" +msgstr "Primäre Gruppe" + +#: ../lib/modules/bindDLZ.inc:236 +msgid "Primary master DNS server for this zone (e.g. \"ns1.example.com.\")." +msgstr "Primärer Master-DNS-Server für diese Zone (z.B. \"ns1.beispiel.de\")." + +#: ../lib/modules/bindDLZ.inc:235 ../lib/modules/bindDLZ.inc:345 +#: ../lib/modules/bindDLZ.inc:429 ../lib/modules/bindDLZ.inc:531 +#: ../lib/modules/bindDLZ.inc:1047 ../lib/modules/bindDLZ.inc:1554 +msgid "Primary name server" +msgstr "Primärer Master-DNS-Server" + +#: ../lib/modules/eduPerson.inc:130 ../lib/modules/eduPerson.inc:206 +#: ../lib/modules/eduPerson.inc:232 ../lib/modules/eduPerson.inc:247 +#: ../lib/modules/eduPerson.inc:348 ../lib/modules/eduPerson.inc:588 +msgid "Primary organisational unit" +msgstr "Primäre organisatorische Einheit" + +#: ../lib/modules/eduPerson.inc:114 ../lib/modules/eduPerson.inc:161 +#: ../lib/modules/eduPerson.inc:230 ../lib/modules/eduPerson.inc:277 +#: ../lib/modules/eduPerson.inc:583 +msgid "Principal name" +msgstr "Benutzername" + +#: ../lib/modules/eduPerson.inc:243 ../lib/modules/eduPerson.inc:244 +msgid "Principal name is invalid!" +msgstr "Der Benutzername ist ungültig!" + +#: ../lib/modules/pykotaUser.inc:648 ../lib/modules/pykotaUser.inc:997 +msgid "Printer" +msgstr "Drucker" + +#: ../lib/types/pykotaPrinterType.inc:164 +#, php-format +msgid "Printer count: %s" +msgstr "Anzahl Drucker: %s" + +#: ../lib/modules/pykotaPrinter.inc:100 +msgid "Printer description." +msgstr "Druckerbeschreibung" + +#: ../lib/modules/pykotaPrinter.inc:200 ../lib/modules/pykotaPrinter.inc:258 +#: ../lib/modules/pykotaPrinter.inc:621 +msgid "Printer groups" +msgstr "Druckergruppen" + +#: ../lib/types/pykotaPrinterType.inc:91 ../lib/modules/pykotaPrinter.inc:95 +#: ../lib/modules/pykotaPrinter.inc:146 ../lib/modules/pykotaPrinter.inc:193 +#: ../lib/modules/pykotaPrinter.inc:209 ../lib/modules/pykotaPrinter.inc:211 +#: ../lib/modules/pykotaPrinter.inc:231 ../lib/modules/pykotaPrinter.inc:584 +#: ../lib/modules/pykotaBillingCode.inc:101 +msgid "Printer name" +msgstr "Druckername" + +#: ../lib/modules/pykotaPrinter.inc:211 ../lib/modules/pykotaPrinter.inc:212 +msgid "Printer name already exists!" +msgstr "Druckername besteht schon!" + +#: ../lib/modules/pykotaPrinter.inc:209 ../lib/modules/pykotaPrinter.inc:210 +msgid "" +"Printer name contains invalid characters. Valid characters are: a-z, A-Z, " +"0-9 and .-_ !" +msgstr "" +"Druckername enthält ungültige Zeichen. Gültige Zeichen sind: a-z, A-Z, 0-9 " +"und .-_ !" + +#: ../lib/modules/pykotaPrinter.inc:96 +msgid "" +"Printer name of the printer which should be created. Valid characters are: a-" +"z, A-Z, 0-9 and .-_ ." +msgstr "" +"Druckername des zu erstellenden Druckers. Gültige Zeichen sind: a-z, A-Z, " +"0-9 und .-_." + +#: ../lib/types/pykotaPrinterType.inc:53 +msgid "Printers" +msgstr "Drucker" + +#: ../lib/modules/bindDLZ.inc:179 ../lib/modules/bindDLZ.inc:183 +#: ../lib/modules/bindDLZ.inc:389 ../lib/modules/bindDLZ.inc:508 +#: ../lib/modules/bindDLZ.inc:1355 ../lib/modules/bindDLZ.inc:1606 +#: ../lib/modules/asteriskExtension.inc:106 +#: ../lib/modules/asteriskExtension.inc:825 +msgid "Priority" +msgstr "Priorität" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1537 +#: ../templates/3rdParty/pla/htdocs/import_form.php:44 +#: ../templates/3rdParty/pla/htdocs/export_form.php:135 +msgid "Proceed" +msgstr "Fortfahren" + +#: ../templates/config/profmanage.php:112 +#: ../templates/selfService/profManage.php:85 +msgid "Profile deleted." +msgstr "Profil gelöscht." + +#: ../templates/profedit/profilepage.php:182 +#: ../templates/profedit/profilemain.php:94 ../lib/tools/profileEditor.inc:44 +msgid "Profile editor" +msgstr "Profileditor" + +#: ../templates/config/profmanage.php:159 +#: ../templates/config/profmanage.php:236 +#: ../templates/selfService/profManage.php:101 +#: ../templates/selfService/profManage.php:199 ../help/help.inc:130 +#: ../help/help.inc:132 ../help/help.inc:134 ../help/help.inc:136 +#: ../help/help.inc:138 +msgid "Profile management" +msgstr "Profilverwaltung" + +#: ../templates/config/profmanage.php:240 +#: ../templates/config/profmanage.php:260 +#: ../templates/config/profmanage.php:272 +#: ../templates/config/profmanage.php:281 +#: ../templates/config/profmanage.php:301 +#: ../templates/selfService/profManage.php:203 +#: ../templates/selfService/profManage.php:217 +#: ../templates/selfService/profManage.php:233 +#: ../templates/profedit/profilepage.php:186 +#: ../templates/profedit/profilemain.php:277 +#: ../templates/profedit/profilemain.php:321 ../help/help.inc:188 +msgid "Profile name" +msgstr "Profilname" + +#: ../templates/config/profmanage.php:88 +#: ../templates/config/profmanage.php:107 +#: ../templates/config/profmanage.php:137 +#: ../templates/config/profmanage.php:148 +#: ../templates/selfService/profManage.php:61 +#: ../templates/selfService/profManage.php:76 +msgid "Profile name is invalid!" +msgstr "Profilname ist ungültig!" + +#: ../templates/config/profmanage.php:243 +#: ../templates/config/profmanage.php:282 +msgid "Profile password" +msgstr "Profilpasswort" + +#: ../templates/config/profmanage.php:86 +#: ../templates/config/profmanage.php:135 +msgid "Profile passwords are different or empty!" +msgstr "Die Passwörter stimmen nicht überein!" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:98 +#: ../lib/modules/sambaSamAccount.inc:221 +#: ../lib/modules/sambaSamAccount.inc:233 +#: ../lib/modules/sambaSamAccount.inc:309 +#: ../lib/modules/sambaSamAccount.inc:358 +#: ../lib/modules/sambaSamAccount.inc:503 +#: ../lib/modules/sambaSamAccount.inc:599 +#: ../lib/modules/sambaSamAccount.inc:1223 +#: ../lib/modules/sambaSamAccount.inc:1516 +#: ../lib/modules/sambaSamAccount.inc:1585 +#: ../lib/modules/sambaSamAccount.inc:1765 +#: ../lib/modules/sambaSamAccount.inc:1910 +#: ../lib/modules/sambaSamAccount.inc:1925 ../lib/modules/windowsUser.inc:204 +#: ../lib/modules/windowsUser.inc:418 ../lib/modules/windowsUser.inc:478 +#: ../lib/modules/windowsUser.inc:520 ../lib/modules/windowsUser.inc:611 +#: ../lib/modules/windowsUser.inc:754 ../lib/modules/windowsUser.inc:1635 +msgid "Profile path" +msgstr "Profilpfad" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/windowsUser.inc:611 ../lib/modules/windowsUser.inc:612 +msgid "Profile path is invalid!" +msgstr "Profilpfad ist ungültig!" + +#: ../templates/profedit/profilemain.php:149 +msgid "Profile was saved." +msgstr "Profil wurde gespeichert." + +#: ../templates/profedit/profilemain.php:244 +msgid "Profiles" +msgstr "Profile" + +#: ../lib/modules/qmailUser.inc:252 +msgid "Program to execute for all incoming mails." +msgstr "Programm, das für alle eingehenden Nachrichten ausgeführt wird." + +#: ../templates/multiEdit.php:231 +msgid "Progress" +msgstr "Fortschritt" + +#: ../lib/modules/zarafaServer.inc:84 ../lib/modules/zarafaServer.inc:128 +#: ../lib/modules/zarafaServer.inc:141 ../lib/modules/zarafaServer.inc:163 +#: ../lib/modules/zarafaServer.inc:212 ../lib/modules/zarafaServer.inc:357 +msgid "Proxy URL" +msgstr "Proxy-URL" + +#: ../lib/modules/zarafaServer.inc:80 ../lib/modules/zarafaServer.inc:118 +#: ../lib/modules/zarafaServer.inc:138 ../lib/modules/zarafaServer.inc:225 +#: ../lib/modules/zarafaServer.inc:362 +msgid "Public store" +msgstr "Öffentlicher Speicher" + +#: ../lib/modules/puppetClient.inc:70 +msgid "Puppet" +msgstr "Puppet" + +#: ../lib/modules/pykotaPrinter.inc:79 ../lib/modules/pykotaGroup.inc:93 +#: ../lib/modules/pykotaUser.inc:93 ../lib/modules/pykotaBillingCode.inc:61 +msgid "PyKota" +msgstr "PyKota" + +#: ../lib/types/pykotaBillingCodeType.inc:62 +msgid "PyKota billing codes" +msgstr "PyKota Rechnungscodes" + +#: ../lib/modules/pykotaGroup.inc:121 ../lib/modules/pykotaGroup.inc:148 +#: ../lib/modules/pykotaGroup.inc:181 ../lib/modules/pykotaGroup.inc:201 +#: ../lib/modules/pykotaGroup.inc:203 ../lib/modules/pykotaGroup.inc:467 +msgid "PyKota group name" +msgstr "PyKota Gruppenname" + +#: ../lib/types/pykotaPrinterType.inc:62 +msgid "PyKota printers" +msgstr "PyKota Drucker" + +#: ../lib/modules/pykotaUser.inc:124 ../lib/modules/pykotaUser.inc:190 +#: ../lib/modules/pykotaUser.inc:260 ../lib/modules/pykotaUser.inc:315 +#: ../lib/modules/pykotaUser.inc:317 ../lib/modules/pykotaUser.inc:891 +msgid "PyKota user name" +msgstr "PyKota Benutzername" + +#: ../lib/modules/pykotaGroup.inc:221 +msgid "Pykota group name" +msgstr "PyKota Gruppenname" + +#: ../lib/modules/pykotaUser.inc:359 +msgid "Pykota user name" +msgstr "PyKota Benutzername" + +#: ../lib/modules/qmailUser.inc:87 ../lib/modules/qmailGroup.inc:56 +msgid "Qmail" +msgstr "Qmail" + +#: ../lib/modules/asteriskAccount.inc:183 +#: ../lib/modules/asteriskAccount.inc:284 +#: ../lib/modules/asteriskAccount.inc:443 +#: ../lib/modules/asteriskAccount.inc:691 +#: ../lib/modules/asteriskAccount.inc:1000 +#: ../lib/modules/asteriskAccount.inc:1269 +msgid "Qualify" +msgstr "Verbindungsprüfung" + +#: ../lib/modules/passwordSelfReset.inc:76 +#: ../lib/modules/passwordSelfReset.inc:170 +#: ../lib/modules/passwordSelfReset.inc:177 +#: ../lib/modules/passwordSelfReset.inc:197 +#: ../lib/modules/passwordSelfReset.inc:218 +#: ../lib/modules/passwordSelfReset.inc:258 +#: ../lib/modules/passwordSelfReset.inc:381 +#: ../lib/modules/passwordSelfReset.inc:658 +#: ../lib/modules/passwordSelfReset.inc:1043 +msgid "Question" +msgstr "Frage" + +#: ../lib/modules/qmailUser.inc:668 ../lib/modules/quota.inc:87 +#: ../lib/modules/quota.inc:100 ../lib/modules/quota.inc:153 +#: ../lib/modules/pykotaGroup.inc:61 ../lib/modules/pykotaGroup.inc:175 +#: ../lib/modules/pykotaGroup.inc:176 ../lib/modules/zarafaUser.inc:481 +#: ../lib/modules/pykotaUser.inc:61 ../lib/modules/pykotaUser.inc:235 +#: ../lib/modules/pykotaUser.inc:236 ../lib/modules/systemQuotas.inc:58 +#: ../lib/modules/systemQuotas.inc:68 ../lib/modules/systemQuotas.inc:75 +#: ../lib/modules/systemQuotas.inc:81 ../lib/modules/systemQuotas.inc:88 +#: ../lib/modules/imapAccess.inc:109 ../lib/modules/imapAccess.inc:164 +msgid "Quota" +msgstr "Quota" + +#: ../lib/modules/quota.inc:698 +#, php-format +msgid "Quota for %s on %s" +msgstr "Quota für %s auf %s" + +#: ../lib/modules/zarafaUser.inc:100 ../lib/modules/zarafaUser.inc:230 +#: ../lib/modules/zarafaUser.inc:352 ../lib/modules/zarafaUser.inc:412 +#: ../lib/modules/zarafaUser.inc:516 ../lib/modules/zarafaUser.inc:1231 +#: ../lib/modules/zarafaUser.inc:1314 ../lib/modules/zarafaUser.inc:1791 +msgid "Quota hard limit" +msgstr "Hartes Quotalimit" + +#: ../lib/modules/quota.inc:63 +msgid "Quota has wrong format!" +msgstr "Quota haben falsches Format!" + +#: ../lib/modules/imapAccess.inc:319 ../lib/modules/imapAccess.inc:328 +msgid "Quota limit (kB)" +msgstr "Quotalimit (kB)" + +#: ../lib/modules/zarafaUser.inc:88 ../lib/modules/zarafaUser.inc:204 +#: ../lib/modules/zarafaUser.inc:343 ../lib/modules/zarafaUser.inc:488 +#: ../lib/modules/zarafaUser.inc:1242 ../lib/modules/zarafaUser.inc:1305 +#: ../lib/modules/zarafaUser.inc:1785 +msgid "Quota override" +msgstr "Quotas überschreiben" + +#: ../lib/modules/qmailUser.inc:106 ../lib/modules/qmailUser.inc:133 +#: ../lib/modules/qmailUser.inc:219 ../lib/modules/qmailUser.inc:308 +#: ../lib/modules/qmailUser.inc:409 ../lib/modules/qmailUser.inc:675 +#: ../lib/modules/qmailUser.inc:1144 +msgid "Quota size" +msgstr "Größenbeschränkung" + +#: ../lib/modules/zarafaUser.inc:96 ../lib/modules/zarafaUser.inc:222 +#: ../lib/modules/zarafaUser.inc:349 ../lib/modules/zarafaUser.inc:410 +#: ../lib/modules/zarafaUser.inc:506 ../lib/modules/zarafaUser.inc:1230 +#: ../lib/modules/zarafaUser.inc:1311 ../lib/modules/zarafaUser.inc:1789 +msgid "Quota soft limit" +msgstr "Weiches Quotalimit" + +#: ../lib/modules/zarafaUser.inc:92 ../lib/modules/zarafaUser.inc:214 +#: ../lib/modules/zarafaUser.inc:346 ../lib/modules/zarafaUser.inc:408 +#: ../lib/modules/zarafaUser.inc:496 ../lib/modules/zarafaUser.inc:1229 +#: ../lib/modules/zarafaUser.inc:1308 ../lib/modules/zarafaUser.inc:1787 +msgid "Quota warning limit" +msgstr "Quotawarnlimit" + +#: ../templates/masscreate.php:334 ../templates/profedit/profilepage.php:213 +#: ../lib/modules/selfRegistration.inc:98 +#: ../lib/modules/selfRegistration.inc:210 ../lib/modules.inc:1004 +#: ../help/help.inc:186 +msgid "RDN identifier" +msgstr "RDN-Bezeichner" + +#: ../lib/types/host.inc:93 +msgid "RID (Windows UID)" +msgstr "RID (Windows UID)" + +#: ../lib/modules/sambaDomain.inc:97 ../lib/modules/sambaDomain.inc:158 +#: ../lib/modules/sambaDomain.inc:189 ../lib/modules/sambaDomain.inc:383 +#: ../lib/modules/sambaDomain.inc:389 ../lib/modules/sambaDomain.inc:604 +msgid "RID base" +msgstr "RID-Basis" + +#: ../lib/modules/sambaDomain.inc:352 +msgid "RID settings" +msgstr "RID-Einstellungen" + +#: ../lib/modules/asteriskAccount.inc:195 +#: ../lib/modules/asteriskAccount.inc:287 +#: ../lib/modules/asteriskAccount.inc:465 +#: ../lib/modules/asteriskAccount.inc:704 +#: ../lib/modules/asteriskAccount.inc:1003 +#: ../lib/modules/asteriskAccount.inc:1275 +msgid "RTP hold timeout" +msgstr "RTP-Halte-Timeout" + +#: ../lib/modules/asteriskAccount.inc:191 +#: ../lib/modules/asteriskAccount.inc:286 +#: ../lib/modules/asteriskAccount.inc:458 +#: ../lib/modules/asteriskAccount.inc:699 +#: ../lib/modules/asteriskAccount.inc:1002 +#: ../lib/modules/asteriskAccount.inc:1273 +msgid "RTP timeout" +msgstr "RTP-Timeout" + +#: ../lib/modules/customFields.inc:2928 +msgid "Radio buttons" +msgstr "Radiobuttons" + +#: ../lib/modules/range.inc:97 ../lib/modules/range.inc:514 +#: ../lib/modules/range.inc:574 +msgid "Range from" +msgstr "Bereich von" + +#: ../lib/modules/range.inc:101 ../lib/modules/range.inc:527 +#: ../lib/modules/range.inc:576 +msgid "Range to" +msgstr "Bereich bis" + +#: ../lib/types/dhcp.inc:95 ../lib/modules/range.inc:79 +#: ../lib/modules/range.inc:127 ../lib/modules/range.inc:773 +msgid "Ranges" +msgstr "Bereiche" + +#: ../templates/config/confmain.php:317 +msgid "Read" +msgstr "Lesen" + +#: ../templates/config/confmain.php:262 ../templates/config/conftypes.php:305 +#: ../lib/modules/customFields.inc:104 ../lib/modules/customFields.inc:1722 +#: ../help/help.inc:182 +msgid "Read-only" +msgstr "Nur lesen" + +#: ../lib/modules/inetOrgPerson.inc:3643 +msgid "Read-only fields" +msgstr "\"Nur lesen\"-Felder" + +#: ../lib/modules/customFields.inc:105 +msgid "" +"Read-only fields cannot be changed by the user. Use this if you want to show " +"an attribute just for information." +msgstr "" +"Schreibgeschützte Felder können vom Benutzer nicht verändert werden. Sie " +"können dies verwenden um Attribute informativ anzuzeigen." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2289 +msgid "Really delete value from this attribute?" +msgstr "Diesen Attributwert wirklich löschen?" + +#: ../lib/modules/mitKerberos.inc:120 ../lib/modules/mitKerberos.inc:152 +#: ../lib/modules/mitKerberos.inc:194 ../lib/modules/freeRadius.inc:92 +#: ../lib/modules/freeRadius.inc:126 ../lib/modules/freeRadius.inc:146 +#: ../lib/modules/freeRadius.inc:177 ../lib/modules/freeRadius.inc:231 +#: ../lib/modules/freeRadius.inc:273 ../lib/modules/freeRadius.inc:539 +#: ../lib/modules/heimdalKerberos.inc:98 +#: ../lib/modules/heimdalKerberos.inc:157 +#: ../lib/modules/heimdalKerberos.inc:163 +msgid "Realm" +msgstr "Bereich" + +#: ../lib/modules/nisMailAliasUser.inc:355 ../lib/modules/nisMailAlias.inc:181 +msgid "Recipient" +msgstr "Empfänger" + +#: ../lib/modules/nisMailAlias.inc:127 ../lib/modules/nisMailAlias.inc:128 +msgid "Recipient is invalid!" +msgstr "Empfänger ist ungültig!" + +#: ../lib/types/mailAlias.inc:92 ../lib/modules/nisMailAlias.inc:89 +#: ../lib/modules/nisMailAlias.inc:108 ../lib/modules/nisMailAlias.inc:116 +#: ../lib/modules/nisMailAlias.inc:476 +msgid "Recipient list" +msgstr "Empfängerliste" + +#: ../lib/modules/nisMailAlias.inc:85 ../lib/modules/nisMailAlias.inc:184 +#: ../lib/modules/nisMailAlias.inc:202 +msgid "Recipients" +msgstr "Empfänger" + +#: ../lib/modules/sambaSamAccount.inc:245 +#: ../lib/modules/sambaSamAccount.inc:388 +#: ../lib/modules/sambaSamAccount.inc:1565 +#: ../lib/modules/sambaSamAccount.inc:1977 +msgid "Reconnect if disconnected" +msgstr "Wiederherstellen falls unterbrochen" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:63 +msgid "Recursive copy" +msgstr "Rekursives Kopieren" + +#: ../templates/3rdParty/pla/htdocs/copy.php:49 +msgid "Recursive copy progress" +msgstr "Rekursives Kopieren läuft" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:31 +msgid "Recursive delete progress" +msgstr "Fortschritt des Löschvorgangs" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:65 +msgid "Recursively copy all children of this object as well." +msgstr "Kopiert alle Kindeinträge rekursiv." + +#: ../templates/config/profmanage.php:247 +#: ../templates/config/profmanage.php:286 +#: ../templates/config/mainmanage.php:459 ../templates/config/confmain.php:453 +#: ../lib/modules/selfRegistration.inc:415 +#: ../lib/modules/sambaSamAccount.inc:2275 +#: ../lib/modules/posixAccount.inc:2539 ../lib/modules/windowsUser.inc:1722 +msgid "Reenter password" +msgstr "Passwort nochmal eingeben" + +#: ../templates/serverInfo.php:187 +msgid "Referrals" +msgstr "Referrals" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1051 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1054 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:249 +#: ../lib/modules/asteriskExtension.inc:454 ../lib/lists.inc:788 +msgid "Refresh" +msgstr "Aktualisieren" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +msgid "Refresh this entry" +msgstr "Eintrag aktualisieren" + +#: ../lib/modules/bindDLZ.inc:215 ../lib/modules/bindDLZ.inc:320 +#: ../lib/modules/bindDLZ.inc:424 ../lib/modules/bindDLZ.inc:521 +#: ../lib/modules/bindDLZ.inc:1026 ../lib/modules/bindDLZ.inc:1549 +msgid "Refresh time" +msgstr "Aktualisierungszeit" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:247 +msgid "Refreshing tree" +msgstr "Aktualisiere Baum" + +#: ../lib/modules/selfRegistration.inc:340 +msgid "Register new account" +msgstr "Neuen Benutzer registrieren" + +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:199 ../lib/modules/inetOrgPerson.inc:404 +#: ../lib/modules/inetOrgPerson.inc:574 ../lib/modules/inetOrgPerson.inc:706 +#: ../lib/modules/inetOrgPerson.inc:1347 ../lib/modules/inetOrgPerson.inc:1932 +#: ../lib/modules/inetOrgPerson.inc:2602 ../lib/modules/inetOrgPerson.inc:3590 +#: ../lib/modules/inetOrgPerson.inc:3649 +msgid "Registered address" +msgstr "Meldeadresse" + +#: ../lib/modules/inetOrgPerson.inc:707 +msgid "Registered address, city" +msgstr "Meldeadresse, Stadt" + +#: ../lib/modules/asteriskAccount.inc:215 +#: ../lib/modules/asteriskAccount.inc:292 +#: ../lib/modules/asteriskAccount.inc:501 +#: ../lib/modules/asteriskAccount.inc:725 +#: ../lib/modules/asteriskAccount.inc:1008 +#: ../lib/modules/asteriskAccount.inc:1285 +msgid "Registration context" +msgstr "Registrierungskontext" + +#: ../lib/modules/asteriskAccount.inc:219 +#: ../lib/modules/asteriskAccount.inc:293 +#: ../lib/modules/asteriskAccount.inc:508 +#: ../lib/modules/asteriskAccount.inc:729 +#: ../lib/modules/asteriskAccount.inc:1009 +#: ../lib/modules/asteriskAccount.inc:1287 +msgid "Registration extension" +msgstr "Registrierungserweiterung" + +#: ../lib/modules/asteriskAccount.inc:235 +#: ../lib/modules/asteriskAccount.inc:297 +#: ../lib/modules/asteriskAccount.inc:537 +#: ../lib/modules/asteriskAccount.inc:754 +#: ../lib/modules/asteriskAccount.inc:1013 +#: ../lib/modules/asteriskAccount.inc:1295 +msgid "Registration server" +msgstr "Registrierungsserver" + +#: ../lib/modules/kolabUser.inc:53 +msgid "Reject if conflicts" +msgstr "Ablehnen bei Konflikten" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +msgid "Reloading" +msgstr "Lade neu" + +#: ../templates/login.php:427 +msgid "Remember user name" +msgstr "Benutzer merken" + +#: ../templates/config/confmodules.php:310 +#: ../templates/pdfedit/pdfpage.php:477 ../lib/modules/mitKerberos.inc:688 +#: ../lib/modules/qmailUser.inc:919 ../lib/modules/windowsHost.inc:158 +#: ../lib/modules/sambaSamAccount.inc:1484 ../lib/modules/kolabUser.inc:871 +#: ../lib/modules/shadowAccount.inc:476 ../lib/modules/freeRadius.inc:429 +#: ../lib/modules/sudoRole.inc:318 ../lib/modules/sudoRole.inc:345 +#: ../lib/modules/sudoRole.inc:372 ../lib/modules/sudoRole.inc:399 +#: ../lib/modules/sudoRole.inc:426 ../lib/modules/sudoRole.inc:453 +#: ../lib/modules/heimdalKerberos.inc:598 ../lib/modules/windowsGroup.inc:364 +msgid "Remove" +msgstr "Löschen" + +#: ../lib/modules/asteriskVoicemail.inc:263 +msgid "Remove Asterisk voicemail extension" +msgstr "Asterisk Anrufbeantworter-Erweiterung entfernen" + +#: ../lib/modules/authorizedServiceObject.inc:170 +msgid "Remove Authorized Service extension" +msgstr "Erlaubte Dienste-Erweiterung entfernen" + +#: ../lib/modules/eduPerson.inc:355 +msgid "Remove EDU person extension" +msgstr "EDU-Person-Erweiterung entfernen" + +#: ../lib/modules/freeRadius.inc:307 +msgid "Remove FreeRadius extension" +msgstr "FreeRadius-Erweiterung entfernen" + +#: ../lib/modules/ipHost.inc:160 +msgid "Remove IP address extension" +msgstr "IP-Adressen-Erweiterung entfernen" + +#: ../lib/modules/mitKerberos.inc:472 ../lib/modules/heimdalKerberos.inc:397 +msgid "Remove Kerberos extension" +msgstr "Kerberos-Erweiterung entfernen" + +#: ../lib/modules/puppetClient.inc:280 +msgid "Remove Puppet extension" +msgstr "Puppet-Erweiterung entfernen" + +#: ../lib/modules/pykotaGroup.inc:238 ../lib/modules/pykotaUser.inc:418 +msgid "Remove PyKota extension" +msgstr "PyKota-Erweiterung entfernen" + +#: ../lib/modules/sambaSamAccount.inc:1311 +#: ../lib/modules/sambaGroupMapping.inc:423 +msgid "Remove Samba 3 extension" +msgstr "Samba 3-Erweiterung entfernen" + +#: ../lib/modules/shadowAccount.inc:375 +msgid "Remove Shadow account extension" +msgstr "Shadow-Erweiterung entfernen" + +#: ../lib/modules/posixGroup.inc:246 ../lib/modules/posixAccount.inc:1511 +msgid "Remove Unix extension" +msgstr "Unix-Erweiterung entfernen" + +#: ../lib/modules/zarafaContact.inc:258 ../lib/modules/zarafaGroup.inc:307 +#: ../lib/modules/zarafaUser.inc:655 ../lib/modules/zarafaServer.inc:232 +msgid "Remove Zarafa extension" +msgstr "Zarafa-Erweiterung entfernen" + +#: ../lib/modules/customFields.inc:457 +msgid "Remove extension" +msgstr "Erweiterung entfernen" + +#: ../lib/types/user.inc:384 +msgid "Remove from all Unix groups" +msgstr "Aus allen Unix-Gruppen entfernen" + +#: ../lib/types/user.inc:388 +msgid "Remove from all group of (unique) names" +msgstr "Aus allen Namensgruppen entfernen" + +#: ../lib/modules/hostObject.inc:147 +msgid "Remove host extension" +msgstr "Host-Erweiterung entfernen" + +#: ../lib/modules/posixGroup.inc:213 ../lib/modules/posixAccount.inc:1504 +#: ../lib/modules/inetOrgPerson.inc:1597 +msgid "Remove password" +msgstr "Passwort entfernen" + +#: ../lib/modules/passwordSelfReset.inc:281 +msgid "Remove password self reset extension" +msgstr "Erweiterung für Passwortrücksetzung entfernen" + +#: ../lib/modules/qmailUser.inc:706 ../lib/modules/qmailGroup.inc:627 +msgid "Remove qmail extension" +msgstr "Qmail-Erweiterung entfernen" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:147 +#: ../lib/modules/zarafaContact.inc:418 ../lib/modules/zarafaGroup.inc:478 +#: ../lib/modules/device.inc:281 ../lib/modules/zarafaUser.inc:902 +#: ../lib/modules/inetOrgPerson.inc:1770 ../lib/modules/qmailGroup.inc:850 +#: ../lib/modules/organizationalRole.inc:383 +#: ../lib/modules/windowsGroup.inc:584 ../lib/modules/groupOfNames.inc:440 +#: ../lib/modules/groupOfNames.inc:595 +msgid "Remove selected entries" +msgstr "Ausgewählte Einträge entfernen" + +#: ../templates/config/conftypes.php:249 +msgid "Remove this account type" +msgstr "Diesen Accounttyp entfernen" + +#: ../lib/modules/nisMailAliasUser.inc:153 +#: ../lib/modules/nisMailAliasUser.inc:192 +msgid "Remove user from alias entry." +msgstr "Benutzer aus Aliaseintrag entfernen." + +#: ../lib/modules/inetOrgPerson.inc:2704 +msgid "Remove/replace photo" +msgstr "Foto ersetzen/entfernen" + +#: ../templates/config/profmanage.php:264 +#: ../templates/selfService/profManage.php:225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1152 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1155 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:24 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:35 +#: ../templates/3rdParty/pla/htdocs/rename.php:53 +msgid "Rename" +msgstr "Umbenennen" + +#: ../templates/3rdParty/pla/htdocs/rename_form.php:28 +#, php-format +msgid "Rename %s to a new object." +msgstr "%s umbenennen." + +#: ../templates/config/profmanage.php:259 +#: ../templates/config/profmanage.php:265 +#: ../templates/selfService/profManage.php:216 +#: ../templates/selfService/profManage.php:226 ../help/help.inc:132 +msgid "Rename profile" +msgstr "Profil umbenennen" + +#: ../templates/3rdParty/pla/htdocs/rename.php:48 +msgid "Rename successful!" +msgstr "Umbenennen war erfolgreich." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +msgid "Rename this entry" +msgstr "Diesen Eintrag umbenennen" + +#: ../templates/config/profmanage.php:98 +#: ../templates/selfService/profManage.php:72 +msgid "Renamed profile." +msgstr "Profil umbenannt." + +#: ../templates/3rdParty/pla/htdocs/import.php:30 +#: ../templates/3rdParty/pla/htdocs/import.php:31 +msgid "Renaming" +msgstr "Benenne um" + +#: ../lib/modules/mitKerberos.inc:132 ../lib/modules/mitKerberos.inc:196 +#: ../lib/modules/mitKerberos.inc:236 ../lib/modules/mitKerberos.inc:253 +#: ../lib/modules/mitKerberos.inc:366 ../lib/modules/mitKerberos.inc:771 +#: ../lib/modules/heimdalKerberos.inc:114 +#: ../lib/modules/heimdalKerberos.inc:165 +#: ../lib/modules/heimdalKerberos.inc:205 +#: ../lib/modules/heimdalKerberos.inc:222 +#: ../lib/modules/heimdalKerberos.inc:313 +#: ../lib/modules/heimdalKerberos.inc:691 +msgid "Renewable lifetime" +msgstr "Laufzeitverlängerung" + +#: ../lib/modules/mitKerberos.inc:295 ../lib/modules/mitKerberos.inc:296 +#: ../lib/modules/heimdalKerberos.inc:259 +#: ../lib/modules/heimdalKerberos.inc:260 +msgid "Renewable lifetime must be a number." +msgstr "Laufzeitverlängerung muss eine Zahl sein." + +#: ../templates/lists/changePassword.php:368 +#: ../lib/modules/passwordSelfReset.inc:1067 ../lib/modules.inc:1048 +msgid "Repeat password" +msgstr "Passwort wiederholen" + +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:1199 +msgid "Replaced $user or $group in homedir." +msgstr "$user und $group wurden im Heimatverzeichnis ersetzt." + +#: ../templates/config/confmain.php:346 ../help/help.inc:257 +msgid "Reply-to address" +msgstr "Antwort-An Adresse" + +#: ../templates/config/confmain.php:523 +msgid "Reply-to address for password mails is invalid." +msgstr "Antwort-An Adresse für Passwortmails ist ungültig." + +#: ../lib/types/ppolicyType.inc:89 ../lib/modules/ppolicy.inc:128 +#: ../lib/modules/ppolicy.inc:154 ../lib/modules/ppolicy.inc:288 +#: ../lib/modules/ppolicy.inc:500 +msgid "Require password change on first login" +msgstr "Passwortänderung beim ersten Login" + +#: ../lib/modules/windowsUser.inc:201 ../lib/modules/windowsUser.inc:402 +#: ../lib/modules/windowsUser.inc:519 ../lib/modules/windowsUser.inc:750 +#: ../lib/modules/windowsUser.inc:1629 +msgid "Require smartcard" +msgstr "Smartcard erforderlich" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 +msgid "Required attribute for object classes" +msgstr "Erforderliches Attribut für Objektklassen" + +#: ../templates/schema/schema.php:383 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1567 +msgid "Required attributes" +msgstr "Vorgeschriebene Attribute" + +#: ../lib/modules/mitKerberos.inc:180 ../lib/modules/mitKerberos.inc:462 +msgid "Requires hardware authentication" +msgstr "Authentifizierung mit separater Hardware erforderlich" + +#: ../lib/modules/mitKerberos.inc:177 ../lib/modules/mitKerberos.inc:457 +#: ../lib/modules/heimdalKerberos.inc:151 +#: ../lib/modules/heimdalKerberos.inc:388 +msgid "Requires preauthentication" +msgstr "Vorauthentifizierung erforderlich" + +#: ../lib/modules/sambaSamAccount.inc:1305 +#: ../lib/modules/pykotaBillingCode.inc:93 +#: ../lib/modules/pykotaBillingCode.inc:163 +msgid "Reset" +msgstr "Zurücksetzen" + +#: ../lib/modules.inc:1220 +msgid "Reset changes" +msgstr "Änderungen zurücksetzen" + +#: ../lib/modules/sambaSamAccount.inc:265 +#: ../lib/modules/sambaSamAccount.inc:1304 +msgid "Reset password" +msgstr "Passwort zurücksetzen" + +#: ../lib/modules/sambaDomain.inc:137 ../lib/modules/sambaDomain.inc:199 +#: ../lib/modules/sambaDomain.inc:224 ../lib/modules/sambaDomain.inc:348 +#: ../lib/modules/sambaDomain.inc:611 +msgid "Reset time after lockout" +msgstr "Rücksetzzeit nach Sperrung" + +#: ../lib/modules/sambaDomain.inc:224 +msgid "Reset time after lockout must be are natural number." +msgstr "Rücksetzzeit muss eine natürliche Zahl sein." + +#: ../lib/modules/pykotaBillingCode.inc:94 +msgid "Resets the billing code's balance and page counter to 0." +msgstr "Den Kontostand des Rechnungscodes und Seitenzähler auf 0 zurücksetzen." + +#: ../lib/modules/zarafaUser.inc:523 +msgid "Resource settings" +msgstr "Ressourceneinstellungen" + +#: ../lib/modules/asteriskAccount.inc:187 +#: ../lib/modules/asteriskAccount.inc:285 +#: ../lib/modules/asteriskAccount.inc:450 +#: ../lib/modules/asteriskAccount.inc:695 +#: ../lib/modules/asteriskAccount.inc:1001 +#: ../lib/modules/asteriskAccount.inc:1271 +msgid "Restrict caller ID" +msgstr "Anrufer-ID ausblenden" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:113 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:118 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:550 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:587 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:198 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:84 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:122 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +msgid "Retrieving DN" +msgstr "Lade DN" + +#: ../lib/modules/bindDLZ.inc:219 ../lib/modules/bindDLZ.inc:332 +#: ../lib/modules/bindDLZ.inc:425 ../lib/modules/bindDLZ.inc:523 +#: ../lib/modules/bindDLZ.inc:1037 ../lib/modules/bindDLZ.inc:1550 +msgid "Retry time" +msgstr "Zeit für neuen Versuch" + +#: ../lib/modules/bindDLZ.inc:755 +msgid "Reverse DNS entries (\"PTR\" records)" +msgstr "Reverse-DNS-Einträge (\"PTR\"-Einträge)" + +#: ../lib/modules/ddns.inc:106 ../lib/modules/ddns.inc:114 +#: ../lib/modules/ddns.inc:135 ../lib/modules/ddns.inc:397 +#: ../lib/modules/ddns.inc:426 +msgid "Reverse zone name" +msgstr "Namen der Reverse-Zone" + +#: ../templates/config/confmain.php:313 ../help/help.inc:118 +msgid "Rights for the home directory" +msgstr "Rechte für das Heimatverzeichnis" + +#: ../lib/modules/organizationalRole.inc:65 +msgid "Role" +msgstr "Rolle" + +#: ../lib/types/gon.inc:209 ../lib/types/group.inc:247 +#, php-format +msgid "Role count: %s" +msgstr "Anzahl Rollen: %s" + +#: ../lib/types/gon.inc:107 ../lib/types/group.inc:110 +msgid "Role member DNs" +msgstr "DNs der Rollenmitglieder" + +#: ../lib/types/gon.inc:112 ../lib/types/group.inc:116 +#: ../lib/types/sudo.inc:77 ../lib/modules/sudoRole.inc:66 +#: ../lib/modules/sudoRole.inc:146 ../lib/modules/sudoRole.inc:214 +#: ../lib/modules/sudoRole.inc:299 ../lib/modules/sudoRole.inc:804 +msgid "Role name" +msgstr "Rollenname" + +#: ../lib/types/gon.inc:63 ../lib/types/group.inc:64 +#: ../lib/modules/organizationalRoleUser.inc:54 +#: ../lib/modules/organizationalRoleUser.inc:56 +#: ../lib/modules/organizationalRoleUser.inc:60 +#: ../lib/modules/organizationalRoleUser.inc:64 +#: ../lib/modules/organizationalRoleUser.inc:71 +#: ../lib/modules/organizationalRoleUser.inc:270 +#: ../lib/modules/organizationalRoleUser.inc:306 +msgid "Roles" +msgstr "Rollen" + +#: ../lib/modules/zarafaUser.inc:528 ../lib/modules/zarafaUser.inc:1246 +msgid "Room" +msgstr "Raum" + +#: ../lib/modules/inetOrgPerson.inc:163 ../lib/modules/inetOrgPerson.inc:205 +#: ../lib/modules/inetOrgPerson.inc:486 ../lib/modules/inetOrgPerson.inc:580 +#: ../lib/modules/inetOrgPerson.inc:782 ../lib/modules/inetOrgPerson.inc:1391 +#: ../lib/modules/inetOrgPerson.inc:1394 ../lib/modules/inetOrgPerson.inc:1940 +#: ../lib/modules/inetOrgPerson.inc:2635 ../lib/modules/inetOrgPerson.inc:3594 +#: ../lib/modules/inetOrgPerson.inc:3650 +msgid "Room number" +msgstr "Raumnummer" + +#: ../lib/modules/inetLocalMailRecipient.inc:68 +#: ../lib/modules/inetLocalMailRecipient.inc:100 +#: ../lib/modules/inetLocalMailRecipient.inc:119 +#: ../lib/modules/inetLocalMailRecipient.inc:146 +#: ../lib/modules/inetLocalMailRecipient.inc:292 +msgid "Routing address" +msgstr "Routing-Adresse" + +#: ../lib/modules/customFields.inc:132 ../lib/modules/customFields.inc:2607 +msgid "Rows" +msgstr "Zeilen" + +#: ../lib/modules/asteriskExtension.inc:139 +#: ../lib/modules/asteriskExtension.inc:311 +msgid "Rules" +msgstr "Regeln" + +#: ../lib/modules/customScripts.inc:187 +msgid "Run" +msgstr "Ausführen" + +#: ../lib/types/sudo.inc:82 +msgid "Run group" +msgstr "Ausführgruppe" + +#: ../lib/modules/sudoRole.inc:90 ../lib/modules/sudoRole.inc:118 +#: ../lib/modules/sudoRole.inc:183 ../lib/modules/sudoRole.inc:220 +#: ../lib/modules/sudoRole.inc:232 ../lib/modules/sudoRole.inc:424 +#: ../lib/modules/sudoRole.inc:810 +msgid "Run groups" +msgstr "Ausführgruppen" + +#: ../lib/types/sudo.inc:81 +msgid "Run user" +msgstr "Ausführbenutzer" + +#: ../lib/modules/sudoRole.inc:86 ../lib/modules/sudoRole.inc:113 +#: ../lib/modules/sudoRole.inc:177 ../lib/modules/sudoRole.inc:219 +#: ../lib/modules/sudoRole.inc:231 ../lib/modules/sudoRole.inc:397 +#: ../lib/modules/sudoRole.inc:809 +msgid "Run users" +msgstr "Ausführbenutzer" + +#: ../lib/modules/windowsUser.inc:304 +msgid "S.M." +msgstr "S.M." + +#: ../templates/serverInfo.php:129 +msgid "SASL mechanisms" +msgstr "SASL-Mechanismen" + +#: ../lib/modules/asteriskAccount.inc:152 +msgid "SIP URI for a realtime peer." +msgstr "SIP-URI für einen Echtzeitteilnehmer." + +#: ../lib/modules/asteriskAccount.inc:128 +msgid "SIP user agent identification." +msgstr "SIP-Benutzeragentenidentifizierung." + +#: ../lib/modules/bindDLZ.inc:314 ../lib/modules/bindDLZ.inc:320 +#: ../lib/modules/bindDLZ.inc:326 ../lib/modules/bindDLZ.inc:332 +#: ../lib/modules/bindDLZ.inc:338 ../lib/modules/bindDLZ.inc:345 +#: ../lib/modules/bindDLZ.inc:351 ../lib/modules/bindDLZ.inc:357 +#: ../lib/modules/bindDLZ.inc:423 ../lib/modules/bindDLZ.inc:424 +#: ../lib/modules/bindDLZ.inc:425 ../lib/modules/bindDLZ.inc:426 +#: ../lib/modules/bindDLZ.inc:427 ../lib/modules/bindDLZ.inc:428 +#: ../lib/modules/bindDLZ.inc:429 ../lib/modules/bindDLZ.inc:430 +#: ../lib/modules/bindDLZ.inc:487 ../lib/modules/bindDLZ.inc:519 +#: ../lib/modules/bindDLZ.inc:521 ../lib/modules/bindDLZ.inc:523 +#: ../lib/modules/bindDLZ.inc:525 ../lib/modules/bindDLZ.inc:527 +#: ../lib/modules/bindDLZ.inc:529 +msgid "SOA record" +msgstr "SOA-Eintrag" + +#: ../lib/modules/bindDLZ.inc:130 ../lib/modules/bindDLZ.inc:389 +#: ../lib/modules/bindDLZ.inc:394 ../lib/modules/bindDLZ.inc:399 +#: ../lib/modules/bindDLZ.inc:404 ../lib/modules/bindDLZ.inc:409 +#: ../lib/modules/bindDLZ.inc:493 +msgid "SRV record" +msgstr "SRV-Eintrag" + +#: ../lib/modules/bindDLZ.inc:433 ../lib/modules/bindDLZ.inc:443 +#: ../lib/modules/bindDLZ.inc:1603 +msgid "SRV records" +msgstr "SRV-Einträge" + +#: ../templates/tests/lamdaemonTest.php:243 +msgid "SSH connection" +msgstr "SSH-Verbindung" + +#: ../templates/tests/lamdaemonTest.php:256 +msgid "SSH connection could be established." +msgstr "Die SSH-Verbindung konnte erfolgreich aufgebaut werden." + +#: ../lib/modules/ldapPublicKey.inc:62 ../lib/modules/ldapPublicKey.inc:72 +#: ../lib/modules/ldapPublicKey.inc:76 ../lib/modules/ldapPublicKey.inc:88 +#: ../lib/modules/ldapPublicKey.inc:119 +msgid "SSH public key" +msgstr "SSH-Schlüssel" + +#: ../lib/modules/ldapPublicKey.inc:95 ../lib/modules/ldapPublicKey.inc:99 +#: ../lib/modules/ldapPublicKey.inc:197 ../lib/modules/ldapPublicKey.inc:237 +msgid "SSH public keys" +msgstr "SSH-Schlüssel" + +#: ../help/help.inc:83 +msgid "SSL certificate" +msgstr "SSL-Zertifikat" + +#: ../templates/config/mainmanage.php:308 +msgid "SSL certificates" +msgstr "SSL-Zertifikate" + +#: ../lib/modules/zarafaServer.inc:72 ../lib/modules/zarafaServer.inc:106 +#: ../lib/modules/zarafaServer.inc:136 ../lib/modules/zarafaServer.inc:175 +#: ../lib/modules/zarafaServer.inc:203 ../lib/modules/zarafaServer.inc:355 +msgid "SSL port" +msgstr "SSL-Port" + +#: ../templates/lists/changePassword.php:411 +#: ../templates/lists/changePassword.php:442 +msgid "Samba" +msgstr "Samba" + +#: ../lib/types/user.inc:276 ../lib/types/user.inc:372 +#: ../lib/types/user.inc:404 ../lib/types/user.inc:829 +#: ../lib/modules/sambaSamAccount.inc:146 +#: ../lib/modules/sambaGroupMapping.inc:101 +msgid "Samba 3" +msgstr "Samba 3" + +#: ../lib/modules/sambaDomain.inc:210 ../lib/modules/sambaDomain.inc:211 +msgid "Samba 3 domain SID is invalid!" +msgstr "Samba 3 Domänen-SID ist ungültig!" + +#: ../lib/types/smbDomain.inc:62 +msgid "Samba 3 domain entries" +msgstr "Samba 3 Domäneneinträge" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:228 +msgid "Samba ID pool" +msgstr "Samba-ID-Pool" + +#: ../lib/modules/posixGroup.inc:413 ../lib/modules/posixGroup.inc:524 +#: ../lib/modules/posixGroup.inc:608 ../lib/modules/posixAccount.inc:131 +#: ../lib/modules/posixAccount.inc:215 ../lib/modules/posixAccount.inc:233 +#: ../lib/modules/posixAccount.inc:501 +msgid "Samba ID pool DN" +msgstr "DN des Samba-ID-Pools" + +#: ../lib/modules/sambaSamAccount.inc:330 +#: ../lib/modules/sambaSamAccount.inc:334 +#: ../lib/modules/sambaSamAccount.inc:478 +#: ../lib/modules/sambaSamAccount.inc:544 +msgid "Samba RID" +msgstr "Samba-RID" + +#: ../lib/modules/sambaGroupMapping.inc:129 +#: ../lib/modules/sambaGroupMapping.inc:154 +msgid "Samba RID number" +msgstr "Samba RID-Nummer" + +#: ../lib/modules/sambaGroupMapping.inc:123 +msgid "Samba display name" +msgstr "Samba Anzeigename" + +#: ../lib/modules/sambaDomain.inc:58 +msgid "Samba domain" +msgstr "Samba-Domäne" + +#: ../lib/modules/sambaGroupMapping.inc:245 +msgid "Samba domain name" +msgstr "Samba Domänenname" + +#: ../lib/types/smbDomain.inc:53 +msgid "Samba domains" +msgstr "Samba-Domänen" + +#: ../lib/modules/sambaGroupMapping.inc:113 +#: ../lib/modules/sambaGroupMapping.inc:135 +#: ../lib/modules/sambaGroupMapping.inc:162 +#: ../lib/modules/sambaGroupMapping.inc:541 +msgid "Samba group type" +msgstr "Samba-Gruppentyp" + +#: ../lib/modules/sambaSamAccount.inc:262 +msgid "Samba password" +msgstr "Samba-Passwort" + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:227 +#: ../lib/modules/sambaSamAccount.inc:315 +#: ../lib/modules/sambaSamAccount.inc:318 +#: ../lib/modules/sambaSamAccount.inc:519 +#: ../lib/modules/sambaSamAccount.inc:605 +#: ../lib/modules/sambaSamAccount.inc:1245 +#: ../lib/modules/sambaSamAccount.inc:1773 +#: ../lib/modules/sambaSamAccount.inc:1911 +msgid "Samba workstations" +msgstr "Samba PCs" + +#: ../lib/modules/sambaSamAccount.inc:1381 +msgid "Saturday" +msgstr "Samstag" + +#: ../templates/config/confmodules.php:224 +#: ../templates/config/confmain.php:468 +#: ../templates/config/moduleSettings.php:238 +#: ../templates/config/conftypes.php:359 +#: ../templates/selfService/selfServiceMain.php:416 +#: ../templates/selfService/adminMain.php:713 +#: ../templates/pdfedit/pdfpage.php:636 +#: ../templates/profedit/profilepage.php:238 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1243 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1247 +#: ../lib/modules/inetOrgPerson.inc:2859 ../lib/modules/customFields.inc:3456 +#: ../lib/modules.inc:1214 +msgid "Save" +msgstr "Speichern" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +msgid "Save a dump of this object" +msgstr "Abzug dieses Eintrags speichern." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1244 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Save a dump of this object and all of its children" +msgstr "Abzug dieses Eintrags und dessen Untereinträge speichern." + +#: ../templates/3rdParty/pla/htdocs/export_form.php:90 +msgid "Save as file" +msgstr "Als Datei speichern" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:172 +msgid "Save changes" +msgstr "Änderungen speichern" + +#: ../lib/tools/schemaBrowser.inc:44 +msgid "Schema browser" +msgstr "Schema-Browser" + +#: ../templates/serverInfo.php:119 +msgid "Schema suffix" +msgstr "Suffix des Schemas" + +#: ../templates/tests/schemaTest.php:55 ../templates/tests/index.php:58 +#: ../lib/tools/tests.inc:116 +msgid "Schema test" +msgstr "Schema-Test" + +#: ../lib/modules/eduPerson.inc:92 ../lib/modules/eduPerson.inc:96 +#: ../lib/modules/eduPerson.inc:175 ../lib/modules/eduPerson.inc:233 +#: ../lib/modules/eduPerson.inc:285 ../lib/modules/eduPerson.inc:582 +msgid "Scoped affiliations" +msgstr "Zugehörigkeitsbereiche" + +#: ../help/help.inc:101 +msgid "Script path" +msgstr "Scriptpfad" + +#: ../templates/config/confmain.php:573 +msgid "Script path is invalid!" +msgstr "Scriptpfad ist ungültig!" + +#: ../templates/config/confmain.php:592 +msgid "Script rights are invalid!" +msgstr "Skriptrechte sind ungültig!" + +#: ../templates/config/confmain.php:576 +msgid "Script server is invalid!" +msgstr "Scriptserver ist ungültig!" + +#: ../help/help.inc:114 +msgid "Script servers" +msgstr "Scriptserver" + +#: ../templates/serverInfo.php:300 ../templates/serverInfo.php:380 +#: ../templates/3rdParty/pla/lib/QueryRender.php:75 +#: ../templates/3rdParty/pla/lib/QueryRender.php:180 +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:619 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:235 +msgid "Search" +msgstr "Suche" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +#: ../templates/3rdParty/pla/lib/QueryRender.php:190 +msgid "Search Results" +msgstr "Suchergebnisse" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +#: ../templates/3rdParty/pla/lib/export_functions.php:201 +#: ../templates/3rdParty/pla/htdocs/export_form.php:81 +msgid "Search filter" +msgstr "Suchfilter" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:293 +msgid "Search returned no results" +msgstr "Suche lieferte keine Ergebnisse" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +#: ../templates/3rdParty/pla/lib/export_functions.php:200 +#: ../templates/3rdParty/pla/htdocs/export_form.php:67 +msgid "Search scope" +msgstr "Suchbereich" + +#: ../lib/modules/asteriskExtension.inc:457 +msgid "Search tree suffix for users" +msgstr "Suche Benutzer im Suffix für Baumansicht" + +#: ../templates/pdfedit/pdfpage.php:608 +msgid "Section" +msgstr "Abschnitt" + +#: ../lib/modules/windowsGroup.inc:60 +msgid "Security" +msgstr "Sicherheit" + +#: ../templates/3rdParty/pla/lib/Template.php:397 +#: ../templates/3rdParty/pla/lib/Template.php:422 +#: ../templates/3rdParty/pla/lib/Template.php:427 +#: ../templates/3rdParty/pla/lib/Template.php:484 +#: ../templates/3rdParty/pla/lib/Template.php:509 +#: ../templates/3rdParty/pla/lib/Template.php:514 +msgid "Security error: The file being uploaded may be malicious." +msgstr "Sicherheitsproblem: Die hochgeladene Datei kann bösartig sein." + +#: ../lib/modules/zarafaGroup.inc:81 ../lib/modules/zarafaGroup.inc:178 +#: ../lib/modules/zarafaGroup.inc:203 ../lib/modules/zarafaGroup.inc:285 +#: ../lib/modules/zarafaGroup.inc:655 +msgid "Security group" +msgstr "Gesicherte Gruppe" + +#: ../lib/modules/windowsGroup.inc:139 +msgid "" +"Security groups are used for permission management and distribution groups " +"as email lists." +msgstr "" +"Sicherheitsgruppen werden zur Rechteverwaltung verwendet und Versandgruppen " +"als Email-Verteiler." + +#: ../lib/modules/passwordSelfReset.inc:80 +#: ../lib/modules/passwordSelfReset.inc:205 +#: ../lib/modules/passwordSelfReset.inc:527 +msgid "Security questions" +msgstr "Sicherheitsfragen" + +#: ../templates/config/mainmanage.php:295 ../templates/config/confmain.php:458 +msgid "Security settings" +msgstr "Sicherheitseinstellungen" + +#: ../templates/help.php:94 +msgid "See also" +msgstr "Siehe auch" + +#: ../lib/account.inc:790 +msgid "See the manual for instructions to solve this problem." +msgstr "Bitte lesen Sie das Handbuch um dieses Problem zu lösen." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:494 +msgid "Select a template for the creation process" +msgstr "Wählen Sie eine Vorlage für den Anlegevorgang" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:498 +msgid "Select a template to edit the entry" +msgstr "Wählen Sie eine Vorlage zum Editieren" + +#: ../lib/lists.inc:354 ../lib/lists.inc:471 +msgid "Select all" +msgstr "Alle auswählen" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:31 +msgid "Select an LDIF file" +msgstr "LDIF-Datei auswählen" + +#: ../lib/modules/nisnetgroup.inc:240 ../lib/modules/nisnetgroup.inc:269 +msgid "Select host" +msgstr "Host wählen" + +#: ../lib/modules/customFields.inc:3126 +msgid "Select list" +msgstr "Auswahlliste" + +#: ../lib/modules/nisMailAlias.inc:194 ../lib/modules/nisMailAlias.inc:215 +msgid "Select mail" +msgstr "Email auswählen" + +#: ../lib/modules/nisMailAliasUser.inc:101 +msgid "Select one or more alias entries from the list to add the recipient." +msgstr "" +"Bitte wählen Sie einen oder mehrere Aliaseinträge aus der Liste um sie dem " +"Empfänger hinzuzufügen." + +#: ../lib/modules/nisnetgroup.inc:246 ../lib/modules/nisnetgroup.inc:275 +#: ../lib/modules/nisMailAlias.inc:195 ../lib/modules/nisMailAlias.inc:216 +msgid "Select user" +msgstr "Benutzer wählen" + +#: ../lib/modules/posixAccount.inc:1567 ../lib/modules/posixAccount.inc:1600 +#: ../lib/modules/windowsUser.inc:1034 ../lib/modules/nisnetgroup.inc:384 +#: ../lib/modules/groupOfNamesUser.inc:131 +msgid "Selected groups" +msgstr "Gewählte Gruppen" + +#: ../templates/masscreate.php:159 ../templates/config/confmodules.php:299 +msgid "Selected modules" +msgstr "Ausgewählte Module" + +#: ../lib/modules/organizationalRoleUser.inc:116 +msgid "Selected roles" +msgstr "Ausgewählte Rollen" + +#: ../lib/modules/posixGroup.inc:295 ../lib/modules/asteriskExtension.inc:461 +msgid "Selected users" +msgstr "Ausgewählte Benutzer" + +#: ../templates/selfService/adminMain.php:304 +msgid "Self service configuration" +msgstr "SelfService-Einstellungen" + +#: ../templates/selfService/adminMain.php:357 +msgid "Self service configuration editor" +msgstr "SelfService-Einstellungsassistent" + +#: ../templates/selfService/adminMain.php:363 +msgid "Self service login" +msgstr "SelfService-Login" + +#: ../lib/modules/passwordSelfReset.inc:504 +msgid "Self service login attribute" +msgstr "SelfService-Login-Attribut" + +#: ../templates/selfService/adminMain.php:349 +msgid "Self service profile" +msgstr "SelfService-Profil" + +#: ../lib/modules/passwordSelfReset.inc:130 +#: ../lib/modules/passwordSelfReset.inc:531 +msgid "Send confirmation mail" +msgstr "Bestätigungsmail senden" + +#: ../lib/modules/passwordSelfReset.inc:112 +#: ../lib/modules/passwordSelfReset.inc:551 +msgid "Send notification mail" +msgstr "Hinweismail senden" + +#: ../lib/modules/inetOrgPerson.inc:467 ../lib/modules/inetOrgPerson.inc:751 +msgid "Send password via mail" +msgstr "Passwort per mail senden" + +#: ../templates/lists/changePassword.php:328 +#: ../templates/lists/changePassword.php:373 ../lib/modules.inc:1066 +#: ../help/help.inc:208 +msgid "Send via mail" +msgstr "Per mail senden" + +#: ../lib/modules/qmailGroup.inc:90 ../lib/modules/qmailGroup.inc:220 +#: ../lib/modules/qmailGroup.inc:224 ../lib/modules/qmailGroup.inc:353 +#: ../lib/modules/qmailGroup.inc:408 ../lib/modules/qmailGroup.inc:429 +#: ../lib/modules/qmailGroup.inc:519 ../lib/modules/qmailGroup.inc:1068 +msgid "Sender email addresses" +msgstr "Email-Adressen der Sender" + +#: ../lib/modules/qmailGroup.inc:88 ../lib/modules/qmailGroup.inc:172 +#: ../lib/modules/qmailGroup.inc:176 ../lib/modules/qmailGroup.inc:295 +#: ../lib/modules/qmailGroup.inc:387 ../lib/modules/qmailGroup.inc:521 +#: ../lib/modules/qmailGroup.inc:790 ../lib/modules/qmailGroup.inc:1067 +msgid "Sender entries" +msgstr "Sender" + +#: ../lib/modules/qmailGroup.inc:92 ../lib/modules/qmailGroup.inc:188 +#: ../lib/modules/qmailGroup.inc:192 ../lib/modules/qmailGroup.inc:311 +#: ../lib/modules/qmailGroup.inc:393 ../lib/modules/qmailGroup.inc:520 +#: ../lib/modules/qmailGroup.inc:1069 +msgid "Sender filter" +msgstr "Senderfilter" + +#: ../lib/modules/passwordSelfReset.inc:113 +msgid "Sends a mail to the user to inform him about the password change." +msgstr "" +"Sendet dem Benutzer eine email um über die Passwortrücksetzung zu " +"informieren." + +#: ../lib/modules/passwordSelfReset.inc:131 +msgid "" +"Sends a mail to the user to validate his email address before the password " +"change." +msgstr "" +"Sendet dem Benutzer eine email um die email-Adresse zu verifizieren bevor " +"die Passwortrücksetzung durchgeführt wird." + +#: ../lib/modules/inetOrgPerson.inc:752 ../help/help.inc:209 +msgid "" +"Sends the password to the user via mail. Please edit your LAM server profile " +"to setup the mail settings." +msgstr "" +"Sendet dem Benutzer das Passwort via email. Bitte editieren Sie Ihr LAM " +"Serverprofil um die Maileinstellungen zu ändern." + +#: ../templates/config/mainmanage.php:358 ../lib/modules/device.inc:65 +#: ../lib/modules/device.inc:97 ../lib/modules/device.inc:127 +#: ../lib/modules/device.inc:175 ../lib/modules/device.inc:420 +#: ../lib/modules/bindDLZ.inc:227 ../lib/modules/bindDLZ.inc:357 +#: ../lib/modules/bindDLZ.inc:423 ../lib/modules/bindDLZ.inc:527 +#: ../lib/modules/bindDLZ.inc:1055 ../lib/modules/bindDLZ.inc:1548 +msgid "Serial number" +msgstr "Seriennummer" + +#: ../templates/tests/lamdaemonTest.php:72 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:166 +#: ../templates/3rdParty/pla/htdocs/import.php:47 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:110 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +#: ../templates/3rdParty/pla/htdocs/export_form.php:56 +#: ../lib/modules/kolabGroup.inc:289 ../lib/modules/bindDLZ.inc:171 +#: ../lib/modules/bindDLZ.inc:175 ../lib/modules/bindDLZ.inc:404 +#: ../lib/modules/bindDLZ.inc:514 ../lib/modules/bindDLZ.inc:1373 +#: ../lib/modules/bindDLZ.inc:1609 ../lib/modules/kolabSharedFolder.inc:429 +msgid "Server" +msgstr "Server" + +#: ../templates/config/confmain.php:238 +#: ../templates/selfService/adminMain.php:414 ../lib/modules/qmailUser.inc:118 +#: ../lib/modules/qmailUser.inc:163 ../lib/modules/qmailUser.inc:243 +#: ../lib/modules/qmailUser.inc:358 ../lib/modules/qmailUser.inc:427 +#: ../lib/modules/qmailUser.inc:592 ../lib/modules/qmailUser.inc:1148 +#: ../lib/modules/imapAccess.inc:77 ../lib/modules/imapAccess.inc:117 +#: ../help/help.inc:58 +msgid "Server address" +msgstr "Serveradresse" + +#: ../templates/config/confmain.php:501 +#: ../templates/selfService/adminMain.php:217 +msgid "Server address is invalid!" +msgstr "Die Server-Adresse ist ungültig!" + +#: ../templates/serverInfo.php:103 ../lib/tools/serverInfo.inc:44 +msgid "Server information" +msgstr "Serverinformationen" + +#: ../templates/config/confmain.php:310 +msgid "Server list" +msgstr "Serverliste" + +#: ../templates/login.php:468 ../templates/config/confmodules.php:137 +#: ../templates/config/confmain.php:167 +#: ../templates/config/moduleSettings.php:136 +#: ../templates/config/conftypes.php:155 ../lib/modules/imapAccess.inc:130 +msgid "Server profile" +msgstr "Serverprofil" + +#: ../templates/config/confmain.php:280 +#: ../templates/selfService/adminMain.php:459 +msgid "Server settings" +msgstr "Servereinstellungen" + +#: ../templates/serverInfo.php:180 +msgid "Server statistics" +msgstr "Serverstatistiken" + +#: ../templates/serverInfo.php:205 ../templates/serverInfo.php:211 +msgid "Server time" +msgstr "Serverzeit" + +#: ../lib/modules/zarafaServer.inc:145 +msgid "Servers" +msgstr "Server" + +#: ../lib/modules/authorizedServiceObject.inc:82 +msgid "Service name (e.g. sshd, imap, ftp). Enter one service per entry." +msgstr "" +"Dienstname (z.B. sshd, imap, ftp). Geben Sie einen Dienst pro Eintrag ein." + +#: ../lib/modules/bindDLZ.inc:1347 +msgid "Services (\"SRV\" records)" +msgstr "Dienste (\"SRV\"-Einträge)" + +#: ../templates/config/mainmanage.php:298 ../help/help.inc:146 +msgid "Session timeout" +msgstr "Zeitbeschränkung für Sitzung" + +#: ../lib/modules/aliasEntry.inc:108 +msgid "Set" +msgstr "Setzen" + +#: ../lib/modules/sambaSamAccount.inc:1472 +#: ../lib/modules/sambaSamAccount.inc:1475 +#: ../lib/modules/sambaSamAccount.inc:1478 +#: ../lib/modules/shadowAccount.inc:464 ../lib/modules/shadowAccount.inc:467 +#: ../lib/modules/shadowAccount.inc:470 +msgid "Set also for Kerberos" +msgstr "Auch für Kerberos setzen" + +#: ../lib/modules/mitKerberos.inc:682 ../lib/modules/shadowAccount.inc:461 +#: ../lib/modules/heimdalKerberos.inc:592 +msgid "Set also for Samba 3" +msgstr "Auch für Samba 3 setzen" + +#: ../lib/modules/mitKerberos.inc:679 ../lib/modules/sambaSamAccount.inc:1469 +#: ../lib/modules/heimdalKerberos.inc:589 +msgid "Set also for Shadow" +msgstr "Auch für Shadow setzen" + +#: ../lib/modules.inc:1227 ../lib/modules.inc:1229 +msgid "Set password" +msgstr "Passwort setzen" + +#: ../lib/modules/posixAccount.inc:269 ../lib/modules/posixAccount.inc:445 +msgid "Set primary group as memberUid" +msgstr "Setze primäre Gruppe als memberUid" + +#: ../templates/config/profmanage.php:280 +#: ../templates/config/profmanage.php:291 +#: ../templates/config/profmanage.php:292 ../help/help.inc:136 +msgid "Set profile password" +msgstr "Profilpasswort setzen" + +#: ../lib/modules.inc:1230 +msgid "Set random password" +msgstr "Zufälliges Passwort setzen" + +#: ../templates/lists/changePassword.php:356 +msgid "Set specific password" +msgstr "Eigenes Passwort setzen" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +msgid "Set the search results to 0 to retrieve all available records." +msgstr "Setzen Sie den Wert auf 0 um alle möglichen Ergebnisse zu erhalten." + +#: ../templates/selfService/adminMain.php:561 +msgid "Set this field read-only." +msgstr "Dieses Feld schreibschützen." + +#: ../lib/modules/groupOfNames.inc:110 +msgid "" +"Set this only if your LDAP schema allows that groups may not have any " +"members (e.g. if you use OpenDJ)." +msgstr "" +"Aktivieren Sie diese Option nur wenn Ihr LDAP-Schema Gruppen ohne Mitglieder " +"erlaubt (z.B. bei OpenDJ)." + +#: ../lib/modules/nisMailAliasUser.inc:77 +#: ../lib/modules/nisMailAliasUser.inc:81 +msgid "Sets the alias names linked to the current user name." +msgstr "" +"Setzt die Aliasnamen, die mit dem aktuellen Benutzernamen verknüpft sind." + +#: ../lib/modules/nisMailAliasUser.inc:85 +#: ../lib/modules/nisMailAliasUser.inc:89 +msgid "Sets the alias names linked to the user's email address." +msgstr "" +"Setzt die Aliasnamen, die mit der aktuellen EMail-Adresse verknüpft sind." + +#: ../lib/modules/bindDLZ.inc:224 +msgid "" +"Sets the default timeout (in seconds) for entries without explicit timeout " +"value." +msgstr "" +"Setzt das Standardzeitlimit (in Sekunden) für Einträge ohne eigenes " +"Zeitlimit." + +#: ../lib/modules/qmailUser.inc:216 +msgid "Sets the delivery mode (e.g. disable mail forwarding)." +msgstr "Damit setzen Sie den Liefermodus (z.B. keine Weiterleitung)." + +#: ../lib/modules/posixGroup.inc:497 +msgid "Sets the group password." +msgstr "Setzt das Gruppenpasswort." + +#: ../lib/modules/bindDLZ.inc:204 ../lib/modules/bindDLZ.inc:208 +msgid "" +"Sets the preference for the mail server. Lower values have higher priority." +msgstr "" +"Setzt die Präferenz für den Mailserver. Kleinere Werte haben höhere " +"Priorität." + +#: ../help/help.inc:183 +msgid "Sets this account type to read-only." +msgstr "Diesen Accounttyp schreibschützen." + +#: ../lib/modules/shadowAccount.inc:91 +msgid "Shadow" +msgstr "Shadow" + +#: ../lib/modules/sambaSamAccount.inc:243 +#: ../lib/modules/sambaSamAccount.inc:382 +#: ../lib/modules/sambaSamAccount.inc:1549 +#: ../lib/modules/sambaSamAccount.inc:1961 +msgid "Shadowing" +msgstr "Spiegeln" + +#: ../lib/types/kolabSharedFolderType.inc:141 +#, php-format +msgid "Shared folder count: %s" +msgstr "Anzahl gemeinsame Ordner: %s" + +#: ../lib/modules/kolabSharedFolder.inc:57 +msgid "Shared mail folder" +msgstr "Gemeinsamer EMailordner" + +#: ../lib/modules/zarafaUser.inc:112 ../lib/modules/zarafaUser.inc:265 +#: ../lib/modules/zarafaUser.inc:358 ../lib/modules/zarafaUser.inc:585 +#: ../lib/modules/zarafaUser.inc:1268 ../lib/modules/zarafaUser.inc:1795 +msgid "Shared store only" +msgstr "Nur gemeinsamer Speicher" + +#: ../lib/modules/ddns.inc:82 +msgid "Should DDNS (Dynamic DNS) be activated?" +msgstr "Soll DDNS (Dynamic DNS) aktiviert werden?" + +#: ../lib/modules/ddns.inc:86 +msgid "Should fix IP addresses be added to the DNS server?" +msgstr "Soll die feste IP-Adresse zum DNS-Server hinzugefügt werden?" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1121 +msgid "Show" +msgstr "Anzeigen" + +#: ../templates/massBuildAccounts.php:243 +msgid "Show LDIF file" +msgstr "Zeige LDIF-Datei" + +#: ../lib/types/user.inc:683 +msgid "Show account status" +msgstr "Accountstatus anzeigen" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +#: ../templates/3rdParty/pla/htdocs/export_form.php:84 +msgid "Show attributes" +msgstr "Attribute anzeigen" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1122 +msgid "Show internal attributes" +msgstr "Interne Attribute anzeigen" + +#: ../lib/modules/asteriskExtension.inc:453 +msgid "Show only Asterisk accounts" +msgstr "Nur Asterisk-Accounts anzeigen" + +#: ../lib/types/group.inc:424 +msgid "Show primary group members as normal group members" +msgstr "Zeige primäre Gruppenmitglieder als normale Mitglieder" + +#: ../templates/schema/schema.php:194 +msgid "Single valued" +msgstr "Einzelwert" + +#: ../lib/modules/pykotaUser.inc:652 ../lib/modules/pykotaUser.inc:1001 +msgid "Size" +msgstr "Größe" + +#: ../lib/modules/qmailUser.inc:228 +msgid "Size limit in bytes for a single mail. Larger mails will be bounced." +msgstr "" +"Größenbeschränkung in Bytes für eine einzelne Nachricht. Größere Nachrichten " +"werden abgelehnt." + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Skip" +msgstr "Überspringen" + +#: ../lib/modules/quota.inc:634 ../lib/modules/systemQuotas.inc:383 +msgid "Soft block" +msgstr "Weiches Block-Limit" + +#: ../lib/modules/quota.inc:113 ../lib/modules/quota.inc:401 +#: ../lib/modules/quota.inc:507 ../lib/modules/systemQuotas.inc:124 +msgid "Soft block limit" +msgstr "Weiches Block-Limit" + +#: ../lib/modules/quota.inc:114 +msgid "Soft block limit." +msgstr "Weiches Block-Limit" + +#: ../lib/modules/quota.inc:636 ../lib/modules/systemQuotas.inc:385 +msgid "Soft inode" +msgstr "Weiches Inode-Limit" + +#: ../lib/modules/quota.inc:136 +msgid "Soft inode (files) limit." +msgstr "Weiches Inode-Limit (Dateien)." + +#: ../lib/modules/quota.inc:135 ../lib/modules/quota.inc:405 +#: ../lib/modules/quota.inc:509 ../lib/modules/systemQuotas.inc:128 +msgid "Soft inode limit" +msgstr "Weiches Inode-Limit" + +#: ../lib/modules/imapAccess.inc:98 +msgid "" +"Some IMAP servers store mailboxes with a prefix (e.g. \"user\" for Cyrus " +"which results in \"user.username\")." +msgstr "" +"Manche IMAP-Server speichern Postfächer mit einem Präfix (z.B. \"user\" bei " +"Cyrus, was zu \"user.benutzername\" führt)." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1019 +#, php-format +msgid "Some attributes (%s) were modified and are highlighted below." +msgstr "Einige Attribute (%s) wurden geändert und sind nun hervorgehoben." + +#: ../lib/modules.inc:876 +msgid "Some required information is missing" +msgstr "Einige benötigte Informationen fehlen noch" + +#: ../templates/help.php:123 +#, php-format +msgid "" +"Sorry this help id ({bold}%s{endbold}) is not available for this module " +"({bold}%s{endbold})." +msgstr "" +"Diese Hilfenummer ({bold}%s{endbold}) ist leider nicht verfügbar für das " +"Modul: {bold}%s{endbold}." + +#: ../templates/help.php:136 +#, php-format +msgid "Sorry this help number ({bold}%s{endbold}) is not available." +msgstr "Diese Hilfenummer ist leider nicht verfügbar: {bold}%s{endbold}" + +#: ../lib/modules/sambaSamAccount.inc:327 +#: ../lib/modules/sambaSamAccount.inc:1282 +msgid "Special user" +msgstr "Spezieller Benutzer" + +#: ../lib/modules/zarafaDynamicGroup.inc:92 +#: ../lib/modules/zarafaAddressList.inc:80 +msgid "" +"Specifies a filter that matches the members (e.g. \"(mail=*@zarafa.nl)\")." +msgstr "Gibt den Filter für die Mitglieder an (z.B. \"(mail=*@zarafa.nl)\")." + +#: ../lib/modules/groupOfNames.inc:119 +msgid "Specifies how members and owners are displayed." +msgstr "Legt fest wie Mitglieder und Besitzer angezeigt werden." + +#: ../lib/modules/organizationalRole.inc:107 +msgid "Specifies how members are displayed." +msgstr "Legt fest wie Mitglieder angezeigt werden." + +#: ../help/help.inc:86 +msgid "" +"Specifies if LAM should automatically follow referrals. Activate if you use " +"referrals in your LDAP directory." +msgstr "" +"Legt fest ob LAM Referrals automatisch folgen soll. Aktivieren Sie diese " +"Funktion nur wenn Sie Referrals in Ihrem LDAP-Verzeichnis verwenden." + +#: ../help/help.inc:260 +msgid "" +"Specifies if password mails may be sent to mail addresses other than the " +"user's LDAP mail address." +msgstr "" +"Legt fest ob Passwortmails auch an EMail-Adressen gesendet werden dürfen die " +"für diesen Benutzer nicht im LDAP-Verzeichnis stehen." + +#: ../help/help.inc:256 +msgid "Specifies if the mail should be sent as text or HTML." +msgstr "Definiert, ob die email als Text oder HTML versendet wird." + +#: ../help/help.inc:167 +msgid "" +"Specifies if the password must not contain 3 or more characters of the user/" +"first/last name." +msgstr "" +"Legt fest ob das Passwort nicht mehr als 2 Zeichen des Benutzer-/Vor-/" +"Nachnamens enthalten darf." + +#: ../help/help.inc:165 +msgid "Specifies if the password must not contain the user name." +msgstr "Legt fest ob das Passwort den Benutzernamen nicht enthalten darf." + +#: ../lib/modules/asteriskAccount.inc:224 +msgid "Specifies if the user can call forward." +msgstr "Legt fest, ob dieser Benutzer weiterleiten darf." + +#: ../lib/modules/zarafaGroup.inc:82 +msgid "Specifies if this group has security possibilities." +msgstr "Legt fest, dass diese Gruppe Sicherheitseinstellungen hat." + +#: ../lib/modules/zarafaServer.inc:81 +msgid "" +"Specifies if this server contains the public store. This may be changed only " +"for new entries." +msgstr "" +"Legt fest, ob dieser Server den öffentlichen Speicher enthält. Diese " +"Einstellung kann nur bei neuen Einträgen geändert werden." + +#: ../lib/modules/dhcp_settings.inc:202 +msgid "Specifies if unknown clients are allowed." +msgstr "Legt fest, ob unbekannte Clients erlaubt sind." + +#: ../lib/modules/ppolicy.inc:133 +msgid "Specifies if users are allowed to change their own passwords or not." +msgstr "Legt fest, ob Benutzer ihre eigenen Passwörter ändern dürfen." + +#: ../lib/modules/zarafaDynamicGroup.inc:88 +#: ../lib/modules/zarafaAddressList.inc:76 +msgid "" +"Specifies the LDAP base where to search for members (e.g. \"ou=zarafa," +"dc=company,dc=com\")." +msgstr "" +"Gibt die LDAP-Basis für die Suche nach Mitgliedern an (z.B. \"ou=zarafa," +"dc=firma,dc=de\")." + +#: ../lib/modules/customFields.inc:161 +msgid "Specifies the allowed file extension. This is checked at upload time." +msgstr "Legt die erlaubte Dateiendung fest, dies wird beim Hochladen geprüft." + +#: ../lib/modules/zarafaContact.inc:96 ../lib/modules/zarafaGroup.inc:98 +#: ../lib/modules/zarafaUser.inc:145 +msgid "" +"Specifies the attribute that should be used to reference the entries. If you " +"would like to reference also groups then this must be set to \"dn\"." +msgstr "" +"Hiermit legen Sie fest mit welchem Attribut Einträge referenziert werden. " +"Falls Sie auch Gruppen referenzieren möchten dann wählen Sie bitte \"dn\"." + +#: ../lib/modules/zarafaUser.inc:121 +msgid "Specifies the capacity of this resource." +msgstr "Gibt die Kapazität der Ressource an." + +#: ../lib/modules/kolabSharedFolder.inc:163 +msgid "Specifies the folder type (e.g. shared mail folder)." +msgstr "Legt den Ordnertyp fest (z.B. gemeinsamer EMailordner)." + +#: ../lib/modules/customFields.inc:157 +msgid "Specifies the maximum allowed file size in bytes." +msgstr "Bestimmt die maximale Größe der Datei in Bytes." + +#: ../lib/modules/mitKerberos.inc:137 ../lib/modules/heimdalKerberos.inc:111 +msgid "Specifies the maximum lifetime of a ticket in days." +msgstr "Bestimmt die maximale Gültigkeit eines Tickets in Tagen." + +#: ../lib/modules/ppolicy.inc:117 +msgid "" +"Specifies the maximum number of seconds before a password is due to expire " +"that expiration warning messages will be returned to a user." +msgstr "" +"Legt fest, dass eine Warnung ausgegeben wird, bevor das Passwort abläuft. " +"Der Wert entspricht der Zeit in Sekunden vor Passwortablauf." + +#: ../lib/modules/freeRadius.inc:109 +msgid "" +"Specifies the maximum number of seconds that a connection can be idle before " +"the session is terminated." +msgstr "" +"Legt die maximale Anzahl von Sekunden im Leerlauf fest, bevor die Sitzung " +"beendet wird." + +#: ../lib/modules/mitKerberos.inc:133 ../lib/modules/heimdalKerberos.inc:115 +msgid "Specifies the maximum renewable lifetime of a ticket in days." +msgstr "Bestimmt die maximale Laufzeitverlängerung eines Tickets in Tagen." + +#: ../lib/modules/ppolicy.inc:121 +msgid "" +"Specifies the minimum number of characters that will be accepted in a " +"password." +msgstr "Bestimmt die minimale Passwortlänge." + +#: ../help/help.inc:163 +msgid "Specifies the number of above password rules that must be fulfilled." +msgstr "" +"Legt die Anzahl der obigen Passwortregeln fest, die erfüllt sein müssen." + +#: ../lib/modules/ppolicy.inc:109 +msgid "" +"Specifies the number of consecutive failed login attempts after which the " +"password may not be used to login." +msgstr "" +"Dies ist die Anzahl von fehlerhaften Anmeldeversuchen in Folge nach der das " +"Passwort gesperrt wird." + +#: ../lib/modules/ppolicy.inc:93 +msgid "" +"Specifies the number of previously used passwords which should be saved in " +"the password history. New passwords can only be set if they are not in the " +"password history." +msgstr "" +"Legt die Anzahl der Passwörter für die Passworthistorie fest. Neue " +"Passwörter können nur gesetzt werden wenn sie nicht in der Historie " +"enthalten sind." + +#: ../lib/modules/ppolicy.inc:113 +msgid "" +"Specifies the number of seconds after which old consecutive failed login " +"attempts are purged from the failure counter, even though no successful " +"authentication has occurred." +msgstr "" +"Legt die Zeit in Sekunden fest, nach der fehlerhafte Anmeldeversuche " +"gelöscht werden, auch wenn noch kein erfolgreicher Login stattgefunden hat." + +#: ../lib/modules/ppolicy.inc:105 +msgid "" +"Specifies the number of seconds during which the password cannot be used to " +"login due to too many consecutive failed bind attempts." +msgstr "" +"Legt die Dauer in Sekunden fest, für die ein Passwort aufgrund zu vieler " +"fehlerhafter Anmeldeversuche gesperrt wird." + +#: ../lib/modules/eduPerson.inc:93 ../lib/modules/eduPerson.inc:97 +msgid "" +"Specifies the person's affiliation within a particular security domain in " +"broad categories such as student, faculty, staff, alum, etc." +msgstr "" +"Dies legt in groben Kategorien die Zugehörigkeit der Person zu einer " +"Sicherheitsdomäne fest." + +#: ../lib/modules/eduPerson.inc:89 +msgid "" +"Specifies the person's primary relationship to the institution in broad " +"categories such as student, faculty, staff, alum, etc." +msgstr "" +"Dies legt in groben Kategorien die primäre Zugehörigkeit der Person zur " +"Institution fest." + +#: ../lib/modules/eduPerson.inc:106 ../lib/modules/eduPerson.inc:110 +msgid "" +"Specifies the person's relationships to the institution in broad categories " +"such as student, faculty, staff, alum, etc." +msgstr "" +"Dies legt die Zugehörigkeiten der Person zur Institution in groben " +"Kategorien fest (z.B. Student, Mitarbeiter, Alumni, ...)." + +#: ../lib/modules/bindDLZ.inc:180 ../lib/modules/bindDLZ.inc:184 +msgid "" +"Specifies the priority of this entry (lower value means more preferred)." +msgstr "" +"Legt die Priorität dieses Eintrags fest (kleinere Werte stellen eine " +"Bevorzugung da)." + +#: ../lib/modules/pykotaGroup.inc:126 ../lib/modules/pykotaUser.inc:129 +msgid "" +"Specifies the type of limit for printing if any. Please note that in " +"contrast to \"Free printing\" the option \"No quota\" includes accounting." +msgstr "" +"Legt den Limittyp für das Drucken fest. Achtung, im Gegensatz zu \"Freies " +"Drucken\" rechnet die Option \"Kein Quota\" Kosten ab." + +#: ../lib/modules/bindDLZ.inc:196 ../lib/modules/bindDLZ.inc:200 +msgid "Specifies the used port for this entry." +msgstr "Gibt den verwendeten Port für diesen Eintrag an." + +#: ../lib/modules/asteriskAccount.inc:176 +msgid "Specifies the user's pickup group." +msgstr "Legt die Pickup-Gruppe des Benutzers fest." + +#: ../lib/modules/bindDLZ.inc:188 ../lib/modules/bindDLZ.inc:192 +msgid "Specifies the weight of this entry (relative value)." +msgstr "Gibt die Gewichtung dieses Eintrags an (relativer Wert)." + +#: ../lib/modules/zarafaUser.inc:109 +msgid "" +"Specifies whether the user is an admin. System administrators may " +"additionally create, modify and delete companies." +msgstr "" +"Gibt an, ob der Benutzer Administrator ist. Systemadministratoren können " +"zusätzlich Firmen erstellen, ändern und löschen." + +#: ../lib/modules/ppolicy.inc:137 +msgid "" +"Specifies whether the user's existing password must be sent along with their " +"new password when changing a password. Attention, LAM does not support " +"password changes which require the old password." +msgstr "" +"Legt fest, ob bei Passwortänderungen das alte Passwort mitgesendet werden " +"muss. Achtung, LAM unterstützt keine Passwortänderungen, die das alte " +"Passwort voraussetzen." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1460 +msgid "Specify attributes and values" +msgstr "Attribute und Werte angeben" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +msgid "Standard LDAP search filter. Example: (&(sn=Smith)(givenName=David))" +msgstr "Standard LDAP Suchfilter. Beispiel: (&(sn=Miller)(givenName=Steve))" + +#: ../templates/serverInfo.php:193 ../templates/serverInfo.php:199 +msgid "Start time" +msgstr "Startzeit" + +#: ../lib/modules/windowsUser.inc:168 ../lib/modules/windowsUser.inc:338 +#: ../lib/modules/windowsUser.inc:512 ../lib/modules/windowsUser.inc:545 +#: ../lib/modules/windowsUser.inc:712 ../lib/modules/windowsUser.inc:1608 +#: ../lib/modules/windowsUser.inc:1741 ../lib/modules/inetOrgPerson.inc:164 +#: ../lib/modules/inetOrgPerson.inc:193 ../lib/modules/inetOrgPerson.inc:526 +#: ../lib/modules/inetOrgPerson.inc:568 ../lib/modules/inetOrgPerson.inc:802 +#: ../lib/modules/inetOrgPerson.inc:806 ../lib/modules/inetOrgPerson.inc:1286 +#: ../lib/modules/inetOrgPerson.inc:1289 ../lib/modules/inetOrgPerson.inc:1944 +#: ../lib/modules/inetOrgPerson.inc:2657 ../lib/modules/inetOrgPerson.inc:3586 +#: ../lib/modules/inetOrgPerson.inc:3648 +msgid "State" +msgstr "Bundesland" + +#: ../templates/pdfedit/pdfpage.php:538 ../templates/pdfedit/pdfpage.php:540 +msgid "Static text" +msgstr "Statischer Text" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1455 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1467 +#, php-format +msgid "Step %s of %s" +msgstr "Schritt %s von %s" + +#: ../lib/modules/windowsUser.inc:280 ../lib/modules/inetOrgPerson.inc:311 +msgid "Steve" +msgstr "Hans" + +#: ../lib/modules/sambaSamAccount.inc:422 ../lib/modules/posixAccount.inc:350 +#: ../lib/modules/windowsUser.inc:292 ../lib/modules/windowsUser.inc:298 +#: ../lib/modules/pykotaUser.inc:201 ../lib/modules/inetOrgPerson.inc:2071 +#: ../lib/modules/asteriskVoicemail.inc:174 +msgid "Steve Miller" +msgstr "Hans Müller" + +#: ../lib/modules/posixAccount.inc:358 +msgid "Steve Miller,Room 2.14,123-123-1234,123-123-1234" +msgstr "Hans Müller,Raum 2.14,123-123-1234,123-123-1234" + +#: ../lib/modules/eduPerson.inc:190 +msgid "Steve, Stevo" +msgstr "Stefan, Steve" + +#: ../lib/modules/imapAccess.inc:91 +msgid "" +"Storing the password in your server profile is also possible but not " +"recommended." +msgstr "" +"Sie können das Passwort im Serverprofil speichern. Dies ist aber nicht " +"empfohlen." + +#: ../lib/modules/windowsUser.inc:172 ../lib/modules/windowsUser.inc:314 +#: ../lib/modules/windowsUser.inc:513 ../lib/modules/windowsUser.inc:544 +#: ../lib/modules/windowsUser.inc:708 ../lib/modules/windowsUser.inc:1609 +#: ../lib/modules/windowsUser.inc:1740 ../lib/modules/inetOrgPerson.inc:83 +#: ../lib/modules/inetOrgPerson.inc:161 ../lib/modules/inetOrgPerson.inc:181 +#: ../lib/modules/inetOrgPerson.inc:380 ../lib/modules/inetOrgPerson.inc:556 +#: ../lib/modules/inetOrgPerson.inc:678 ../lib/modules/inetOrgPerson.inc:682 +#: ../lib/modules/inetOrgPerson.inc:1250 ../lib/modules/inetOrgPerson.inc:1253 +#: ../lib/modules/inetOrgPerson.inc:1928 ../lib/modules/inetOrgPerson.inc:2580 +#: ../lib/modules/inetOrgPerson.inc:3578 ../lib/modules/inetOrgPerson.inc:3645 +msgid "Street" +msgstr "Straße" + +#: ../templates/pdfedit/pdfpage.php:449 ../templates/pdfedit/pdfmain.php:353 +msgid "Structure name" +msgstr "Name der Struktur" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:136 +#: ../templates/3rdParty/pla/htdocs/export_form.php:33 +msgid "Sub (entire subtree)" +msgstr "Unterhalb (kompletter Baum unter Basis-DN)" + +#: ../lib/types/netgroup.inc:93 ../lib/modules/nisnetgroup.inc:91 +#: ../lib/modules/nisnetgroup.inc:126 ../lib/modules/nisnetgroup.inc:141 +#: ../lib/modules/nisnetgroup.inc:209 ../lib/modules/nisnetgroup.inc:383 +#: ../lib/modules/nisnetgroup.inc:581 +msgid "Subgroups" +msgstr "Untergruppen" + +#: ../templates/config/confmain.php:349 ../lib/modules/selfRegistration.inc:94 +#: ../lib/modules/selfRegistration.inc:231 +#: ../lib/modules/passwordSelfReset.inc:120 +#: ../lib/modules/passwordSelfReset.inc:539 +#: ../lib/modules/passwordSelfReset.inc:559 ../help/help.inc:248 +msgid "Subject" +msgstr "Betreff" + +#: ../lib/types/dhcp.inc:94 ../lib/modules/dhcp_settings.inc:149 +#: ../lib/modules/dhcp_settings.inc:207 ../lib/modules/dhcp_settings.inc:222 +#: ../lib/modules/dhcp_settings.inc:242 ../lib/modules/dhcp_settings.inc:561 +#: ../lib/modules/dhcp_settings.inc:685 +msgid "Subnet" +msgstr "Subnetz" + +#: ../lib/modules/dhcp_settings.inc:189 ../lib/modules/dhcp_settings.inc:215 +#: ../lib/modules/dhcp_settings.inc:233 ../lib/modules/dhcp_settings.inc:300 +#: ../lib/modules/dhcp_settings.inc:606 ../lib/modules/dhcp_settings.inc:681 +msgid "Subnet mask" +msgstr "Subnetzmaske" + +#: ../templates/schema/schema.php:176 +msgid "Substring Rule" +msgstr "Substring-Regel" + +#: ../templates/3rdParty/pla/htdocs/import.php:63 +#: ../templates/3rdParty/pla/htdocs/copy.php:56 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:68 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:85 +msgid "Success" +msgstr "Erfolg" + +#: ../templates/3rdParty/pla/htdocs/delete.php:32 +#, php-format +msgid "Successfully deleted DN %s" +msgstr "DN %s wurde erfolgreich gelöscht" + +#: ../lib/modules/sudoRole.inc:48 +msgid "Sudo role" +msgstr "Sudo-Rolle" + +#: ../lib/types/sudo.inc:159 +#, php-format +msgid "Sudo role count: %s" +msgstr "Anzahl Sudo-Rollen: %s" + +#: ../lib/types/sudo.inc:48 +msgid "Sudo role management" +msgstr "Sudo-Rollenverwaltung" + +#: ../lib/types/sudo.inc:39 +msgid "Sudo roles" +msgstr "Sudo-Rollen" + +#: ../lib/modules/sudoRole.inc:139 +msgid "Sudo roles with higher order numbers are used if multiple roles match." +msgstr "" +"Sudo-Regeln mit höherer Zahl werden verwendet wenn mehrere Regeln passen." + +#: ../lib/modules/nisMailAliasUser.inc:92 +#: ../lib/modules/nisMailAliasUser.inc:362 ../lib/modules.inc:988 +msgid "Suffix" +msgstr "Suffix" + +#: ../lib/modules/posixGroup.inc:416 ../lib/modules/posixGroup.inc:516 +msgid "Suffix for GID/group name check" +msgstr "Suffix für GID/Gruppennamenprüfung" + +#: ../lib/modules/posixAccount.inc:224 ../lib/modules/posixAccount.inc:242 +#: ../lib/modules/posixAccount.inc:489 +msgid "Suffix for UID/user name check" +msgstr "Suffix für UID/Benutzernamenprüfung" + +#: ../lib/modules/selfRegistration.inc:102 +#: ../lib/modules/selfRegistration.inc:212 +msgid "Suffix for new users" +msgstr "Suffix für neue Benutzer" + +#: ../lib/modules/sambaSamAccount.inc:1381 +msgid "Sunday" +msgstr "Sonntag" + +#: ../templates/selfService/adminMain.php:570 +msgid "Switch back to default label." +msgstr "Zum Standardbezeichner zurückkehren." + +#: ../templates/3rdParty/pla/htdocs/compare.php:72 +msgid "Switch entries" +msgstr "Einträge tauschen" + +#: ../lib/modules/asteriskAccount.inc:96 +#: ../lib/modules/asteriskVoicemail.inc:84 +msgid "Sync Asterisk password with Unix password" +msgstr "Asterisk-Passwort mit Unix synchronisieren" + +#: ../lib/modules/heimdalKerberos.inc:242 +msgid "Sync Heimdal Kerberos password with Unix password" +msgstr "Heimdal-Kerberos-Passwort mit Unix synchronisieren" + +#: ../lib/modules/mitKerberos.inc:277 +msgid "Sync MIT Kerberos password with Unix password" +msgstr "MIT-Kerberos-Passwort mit Unix synchronisieren" + +#: ../lib/modules/passwordSelfReset.inc:148 +#: ../lib/modules/passwordSelfReset.inc:529 +msgid "Sync Samba 3 password" +msgstr "Samba-3-Passwort synchronisieren" + +#: ../lib/modules/sambaSamAccount.inc:249 +msgid "Sync Samba LM password with Unix password" +msgstr "Samba LM-Passwörter mit Unix synchronisieren" + +#: ../lib/modules/sambaSamAccount.inc:248 +msgid "Sync Samba NT password with Unix password" +msgstr "Samba NT-Passwörter mit Unix synchronisieren" + +#: ../lib/modules/customFields.inc:1111 +msgid "Sync fields with page layout" +msgstr "Felder mit Seitenlayout synchronisieren" + +#: ../templates/schema/schema.php:181 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:142 +msgid "Syntax" +msgstr "Syntax" + +#: ../templates/schema/schema.php:89 +msgid "Syntax OID" +msgstr "Syntax OID" + +#: ../templates/schema/schema.php:73 ../templates/schema/schema.php:74 +msgid "Syntaxes" +msgstr "Syntax" + +#: ../lib/modules/zarafaUser.inc:602 ../lib/modules/zarafaUser.inc:1259 +msgid "System administrator" +msgstr "Systemadministrator" + +#: ../templates/config/mainmanage.php:412 +msgid "System logging" +msgstr "Systemeigenes Logging" + +#: ../help/help.inc:60 +msgid "TLS cannot be combined with ldaps://." +msgstr "TLS kann nicht mit ldaps:// kombiniert werden." + +#: ../lib/modules/bindDLZ.inc:125 ../lib/modules/bindDLZ.inc:377 +#: ../lib/modules/bindDLZ.inc:382 ../lib/modules/bindDLZ.inc:491 +msgid "TXT record" +msgstr "TXT-Eintrag" + +#: ../lib/modules/bindDLZ.inc:432 ../lib/modules/bindDLZ.inc:442 +#: ../lib/modules/bindDLZ.inc:1576 +msgid "TXT records" +msgstr "TXT-Einträge" + +#: ../lib/modules/kolabSharedFolder.inc:158 +#: ../lib/modules/kolabSharedFolder.inc:194 +#: ../lib/modules/kolabSharedFolder.inc:240 +#: ../lib/modules/kolabSharedFolder.inc:262 +#: ../lib/modules/kolabSharedFolder.inc:292 +#: ../lib/modules/kolabSharedFolder.inc:560 +msgid "Target IMAP folder" +msgstr "IMAP-Zielordner" + +#: ../lib/modules/kolabUser.inc:245 +msgid "Target of invitation policy is invalid!" +msgstr "Ziel der Einladungsregel ist ungültig." + +#: ../templates/pdfedit/pdfmain.php:317 +#: ../templates/profedit/profilemain.php:284 +msgid "Target server profile" +msgstr "Zielserverprofil" + +#: ../templates/help.php:89 ../lib/modules.inc:660 +msgid "Technical name" +msgstr "Technischer Name" + +#: ../templates/lists/changePassword.php:294 ../lib/types/user.inc:203 +#: ../lib/modules/windowsUser.inc:176 ../lib/modules/windowsUser.inc:362 +#: ../lib/modules/windowsUser.inc:514 ../lib/modules/windowsUser.inc:542 +#: ../lib/modules/windowsUser.inc:601 ../lib/modules/windowsUser.inc:718 +#: ../lib/modules/windowsUser.inc:1610 ../lib/modules/windowsUser.inc:1734 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:160 +#: ../lib/modules/inetOrgPerson.inc:208 ../lib/modules/inetOrgPerson.inc:420 +#: ../lib/modules/inetOrgPerson.inc:583 ../lib/modules/inetOrgPerson.inc:710 +#: ../lib/modules/inetOrgPerson.inc:714 ../lib/modules/inetOrgPerson.inc:1407 +#: ../lib/modules/inetOrgPerson.inc:1410 ../lib/modules/inetOrgPerson.inc:1933 +#: ../lib/modules/inetOrgPerson.inc:2525 ../lib/modules/inetOrgPerson.inc:3596 +#: ../lib/modules/inetOrgPerson.inc:3651 +msgid "Telephone number" +msgstr "Telefonnummer" + +#: ../lib/modules/inetOrgPerson.inc:358 +msgid "Temp" +msgstr "Aushilfskraft" + +#: ../lib/modules/windowsUser.inc:310 ../lib/modules/pykotaUser.inc:228 +#: ../lib/modules/inetOrgPerson.inc:334 +msgid "Temp, contract till December" +msgstr "Aushilfskraft, Vertrag bis Dezember" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +msgid "Template" +msgstr "Vorlage" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:520 +msgid "Templates" +msgstr "Vorlagen" + +#: ../lib/modules/sambaSamAccount.inc:391 +#: ../lib/modules/sambaSamAccount.inc:609 +#: ../lib/modules/sambaSamAccount.inc:1294 +msgid "Terminal server options" +msgstr "Terminalserver-Einstellungen" + +#: ../lib/tools/tests.inc:44 +msgid "Tests" +msgstr "Tests" + +#: ../templates/config/confmain.php:364 ../lib/modules/selfRegistration.inc:69 +#: ../lib/modules/selfRegistration.inc:238 ../lib/modules/bindDLZ.inc:163 +#: ../lib/modules/bindDLZ.inc:167 ../lib/modules/bindDLZ.inc:377 +#: ../lib/modules/bindDLZ.inc:1245 ../lib/modules/bindDLZ.inc:1579 +#: ../lib/modules/passwordSelfReset.inc:124 +#: ../lib/modules/passwordSelfReset.inc:134 +#: ../lib/modules/passwordSelfReset.inc:543 +#: ../lib/modules/passwordSelfReset.inc:563 ../help/help.inc:250 +msgid "Text" +msgstr "Text" + +#: ../lib/modules/bindDLZ.inc:1242 +msgid "Text (\"TXT\" records)" +msgstr "Text (\"TXT\"-Einträge)" + +#: ../lib/modules/customFields.inc:2587 +msgid "Text area" +msgstr "Textbereich" + +#: ../templates/pdfedit/pdfpage.php:617 ../lib/modules/customFields.inc:1885 +msgid "Text field" +msgstr "Textfeld" + +#: ../lib/modules/eduPerson.inc:115 +msgid "" +"The \"NetID\" of the person for the purposes of inter-institutional " +"authentication. It should be represented in the form \"user@scope\" where " +"scope defines a local security domain." +msgstr "" +"Die \"NetzID\" der Person für die Authentifizierung innerhalb der " +"Institution. Sie sollte in der Form \"Benutzer@Bereich\" angegeben werden. " +"Dabei ist der Bereich eine lokale Sicherheitsdomäne." + +#: ../lib/modules/dhcp_settings.inc:336 +msgid "The DHCP ranges were changed to fit for the new subnet." +msgstr "Die DHCP-Bereiche wurden an das neue Subnetz angepasst." + +#: ../lib/modules/eduPerson.inc:127 +msgid "" +"The DN of the directory entry representing the institution with which the " +"person is associated." +msgstr "" +"Dies ist der DN des Verzeichniseintrags, der die Institution der Person " +"repräsentiert." + +#: ../lib/modules/eduPerson.inc:131 +msgid "" +"The DN of the directory entry representing the person's primary " +"organisational unit." +msgstr "" +"Dies ist der DN des Verzeichniseintrags, der die primäre organisatorische " +"Einheit der Person repräsentiert." + +#: ../lib/modules/eduPerson.inc:135 ../lib/modules/eduPerson.inc:139 +msgid "" +"The DNs of the directory entries representing the person's organisational " +"units." +msgstr "" +"Dies sind die DNs der Verzeichniseinträge, die die organisatorischen " +"Einheiten der Person repräsentieren." + +#: ../lib/modules/posixGroup.inc:513 +msgid "" +"The ID of this group was changed. You can update all user and host entries " +"to the new group ID." +msgstr "" +"Die ID dieser Gruppe wurde verändert. Sie können alle Benutzer und Hosts auf " +"die neue ID umstellen." + +#: ../lib/modules/imapAccess.inc:179 +msgid "The IMAP admin password is empty." +msgstr "Das Passwort des IMAP-Admins ist leer." + +#: ../templates/config/mainmanage.php:100 +#: ../templates/config/mainmanage.php:122 ../lib/modules/bindDLZ.inc:495 +#: ../lib/modules/bindDLZ.inc:496 +#, php-format +msgid "The IP address %s is invalid!" +msgstr "Die IP-Adresse %s ist ungültig!" + +#: ../lib/modules/fixed_ip.inc:498 +msgid "The IP address does not match the subnet." +msgstr "Die IP-Adressen passen nicht zum Subnetz." + +#: ../lib/modules/fixed_ip.inc:501 +msgid "The IP address is already in use." +msgstr "Diese IP-Adresse wird bereits verwendet." + +#: ../lib/modules/ipHost.inc:115 ../lib/modules/ipHost.inc:116 +#: ../lib/modules/asteriskAccount.inc:574 +#: ../lib/modules/asteriskAccount.inc:575 ../lib/modules/ppolicyUser.inc:96 +#: ../lib/modules/range.inc:505 ../lib/modules/range.inc:522 +#: ../lib/modules/range.inc:582 ../lib/modules/range.inc:599 +#: ../lib/modules/freeRadius.inc:249 ../lib/modules/freeRadius.inc:250 +#: ../lib/modules/fixed_ip.inc:493 +msgid "The IP address is invalid." +msgstr "Diese IP-Adresse ist ungültig." + +#: ../lib/modules/fixed_ip.inc:107 +msgid "The IP address of the PC." +msgstr "Die IP-Adresse des PCs." + +#: ../lib/modules/dhcp_settings.inc:162 +msgid "" +"The IP addresses of the DNS servers. Multiple addresses are separated by \"," +"\". Example: 192.168.0.10, 192.168.0.11" +msgstr "" +"Die IP-Adressen der DNS-Server. Mehrere Adressen werden durch \",\" " +"getrennt. Beispiel: 192.168.0.10, 192.168.0.11" + +#: ../lib/modules/dhcp_settings.inc:170 +msgid "" +"The IP addresses of the Netbios name servers (e.g. \"123.123.123.123, " +"123.123.123.124\")." +msgstr "" +"Die IP-Adresse der Netbios-Nameserver (z.B. \"123.123.123.123, " +"123.123.123.124\")." + +#: ../lib/modules/range.inc:509 ../lib/modules/range.inc:524 +#: ../lib/modules/range.inc:588 ../lib/modules/range.inc:602 +msgid "The IP does not match the subnet." +msgstr "Die IP-Adresse passt nicht zum Subnetz." + +#: ../lib/modules/mitKerberos.inc:153 ../lib/modules/heimdalKerberos.inc:158 +msgid "The Kerberos realm for this account." +msgstr "Die Kerberos-Domäne für diesen Eintrag." + +#: ../lib/modules/heimdalKerberos.inc:99 +msgid "The Kerberos realm of this user." +msgstr "Die Kerberos-Domäne für diesen Benutzer." + +#: ../lib/modules/fixed_ip.inc:103 +msgid "The MAC address of the PC. Example: 11:22:33:44:55:aa" +msgstr "Die MAC-Adresse des PCs. Beispiel: 11:22:33:44:55:aa" + +#: ../lib/modules/dhcp_settings.inc:328 ../lib/modules/dhcp_settings.inc:329 +msgid "The Netbios server is invalid." +msgstr "Der Netbios-Server ist ungültig." + +#: ../lib/modules/fixed_ip.inc:456 +msgid "The PC name may not be longer than 20 characters." +msgstr "Der PC-Name darf maximal 20 Zeichen lang sein." + +#: ../lib/modules/fixed_ip.inc:465 +msgid "The PC name may only contain A-Z, a-z and 0-9." +msgstr "Der PC-Name darf nur A-Z, a-z und 0-9 enthalten." + +#: ../lib/modules/fixed_ip.inc:459 +msgid "The PC name needs to be at least 2 characters long." +msgstr "Der PC-Name muss mindestens zwei Zeichen lang sein." + +#: ../help/help.inc:205 +msgid "" +"The PDF structure defines what information is exported as PDF file and how " +"the pages are structured. You can manage the PDF structures in the PDF " +"editor (under \"Tools\")." +msgstr "" +"Die PDF-Struktur definiert welche Informationen als PDF-Datei exportiert " +"werden und wie diese strukturiert sind. Sie können die PDF-Strukturen im PDF-" +"Editor (unter \"Tools\") verwalten." + +#: ../templates/3rdParty/pla/htdocs/create.php:44 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:38 +#: ../lib/modules/selfRegistration.inc:571 +msgid "The RDN field is empty." +msgstr "Datenfeld für RDN ist leer." + +#: ../lib/modules/freeRadius.inc:93 +msgid "The Radius realm of this account." +msgstr "Der Radius-Bereich für dieses Konto." + +#: ../lib/modules/sambaDomain.inc:82 +msgid "The SID of your Samba server. Get it with \"net getlocalsid\"." +msgstr "Die Domänen-SID des Samba-Servers. Auszulesen mit \"net getlocalsid\"." + +#: ../templates/selfService/selfServiceLogin.php:141 +#: ../templates/selfService/selfServiceMain.php:168 +msgid "The TLS encryption could not be started." +msgstr "Die TLS-Verschlüsselung konnte nicht gestartet werden." + +#: ../lib/modules/posixAccount.inc:99 +msgid "" +"The UID ranges for users and hosts overlap! This is a problem because LAM " +"uses the highest UID in use + 1 for new accounts. Please set the minimum UID " +"to equal values or use independent ranges." +msgstr "" +"Die UID-Bereiche für Benutzer und Hosts überlappen! Dies ist ein Problem " +"weil LAM die größte verwendete UID + 1 für neue Accounts verwendet. Bitte " +"setzen Sie die minimalen UID-Nummern auf den selben Wert oder verwenden Sie " +"unabhängige Bereiche." + +#: ../lib/modules/zarafaServer.inc:77 +msgid "The Unix socket or named pipe to the server." +msgstr "Das Unixsocket oder die Named Pipe zum Server." + +#: ../lib/modules/asteriskVoicemail.inc:215 +#: ../lib/modules/asteriskVoicemail.inc:216 +msgid "The account context is invalid." +msgstr "Der Accountkontext ist ungültig." + +#: ../lib/modules/asteriskAccount.inc:112 +#: ../lib/modules/asteriskExtension.inc:99 +#: ../lib/modules/asteriskVoicemail.inc:92 +msgid "The account context stores information about the dial plan." +msgstr "Der Account-Kontext speichert Informationen über den Wählplan." + +#: ../lib/modules/asteriskAccount.inc:566 +#: ../lib/modules/asteriskAccount.inc:567 +msgid "The account type is invalid." +msgstr "Der Accounttyp ist ungültig." + +#: ../lib/modules/freeRadius.inc:105 +msgid "The account will be locked after this date." +msgstr "Der Account wird nach diesem Datum gesperrt." + +#: ../help/help.inc:191 +msgid "The account will be saved under this LDAP suffix." +msgstr "Der Account wird unter diesem LDAP-Suffix gespeichert." + +#: ../lib/modules/bindDLZ.inc:497 ../lib/modules/bindDLZ.inc:498 +#, php-format +msgid "The alias name \"%s\" is invalid." +msgstr "Der Aliasname \"%s\" ist ungültig." + +#: ../lib/modules/bindDLZ.inc:136 +msgid "The alias name for this entry." +msgstr "Der Aliasname für diesen Eintrag." + +#: ../lib/modules/passwordSelfReset.inc:230 +#, php-format +msgid "The answer needs to be at least %s characters long." +msgstr "Die Antwort muss mindestens %s Zeichen lang sein." + +#: ../lib/modules/passwordSelfReset.inc:1211 +msgid "The answer to the security question is wrong." +msgstr "Die Antwort zur Sicherheitsfrage ist falsch." + +#: ../templates/tests/schemaTest.php:128 +#, php-format +msgid "" +"The attribute %s is not supported for the object class %s by your LDAP " +"server." +msgstr "" +"Das Attribut %s wird von Ihrem LDAP-Server nicht für die Objektklasse %s " +"unterstützt." + +#: ../templates/3rdParty/pla/lib/import_functions.php:531 +#, php-format +msgid "The attribute to modify doesn't match the one specified by %s." +msgstr "Das zu ändernde Attribut passt nicht zu dem von %s spezifizierten." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:31 +msgid "The attribute value does not exist" +msgstr "Der Attributwert existiert nicht" + +#: ../lib/modules/asteriskAccount.inc:556 +#: ../lib/modules/asteriskAccount.inc:558 +msgid "The caller ID format is invalid." +msgstr "Die Anrufer-ID ist ungültig." + +#: ../lib/modules/puppetClient.inc:186 ../lib/modules/puppetClient.inc:187 +msgid "The class names may only contain ASCII characters." +msgstr "Der Klassenname darf nur ASCII-Zeichen enthalten." + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:372 +msgid "The config file is not writable." +msgstr "Die Konfigurationsdatei ist nicht schreibbar." + +#: ../templates/3rdParty/pla/htdocs/create.php:29 +#: ../templates/3rdParty/pla/htdocs/copy.php:34 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:23 +#, php-format +msgid "The container you specified (%s) does not exist. Please try again." +msgstr "" +"Der angegebene Container (%s) existiert nicht. Bitte versuchen Sie es erneut." + +#: ../lib/modules/dhcp_settings.inc:326 ../lib/modules/dhcp_settings.inc:327 +msgid "The default gateway is invalid." +msgstr "Der Standard-Gateway ist ungültig." + +#: ../lib/modules/qmailUser.inc:260 +msgid "The default interpretation of .qmail files." +msgstr "Die Standardinterpretation von .qmail Dateien." + +#: ../templates/3rdParty/pla/htdocs/copy.php:31 +#, php-format +msgid "The destination entry (%s) already exists." +msgstr "Der Zieleintrag (%s) existiert bereits." + +#: ../lib/modules/dhcp_settings.inc:338 ../lib/modules/dhcp_settings.inc:339 +msgid "" +"The domain name includes invalid characters. Valid characters are A-Z, a-z, " +"0-9, \".\", \"_\",\"-\"." +msgstr "" +"Domänenname enthält ungültige Zeichen. Gültige Zeichen sind: a-z, A-Z, 0-9, " +"\".\", \"_\",\"-\"." + +#: ../lib/modules/dhcp_settings.inc:146 +msgid "The domain name of the subnet." +msgstr "Der Domänenname des Subnetzes." + +#: ../lib/modules/asteriskVoicemail.inc:220 +#: ../lib/modules/asteriskVoicemail.inc:221 +msgid "The email address is invalid." +msgstr "Die eMail-Adresse ist ungültig." + +#: ../lib/modules/range.inc:102 +msgid "The ending IP address of the range." +msgstr "Die letzte IP-Adresse des Adressbereichs." + +#: ../lib/modules/dhcp_settings.inc:330 +msgid "The entered Netbios node type does not exist." +msgstr "Der angegebene Netbios-Knotentyp existiert nicht." + +#: ../templates/3rdParty/pla/htdocs/update.php:27 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:22 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:21 +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:24 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:23 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:20 +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:24 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:20 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:27 +#, php-format +msgid "The entry (%s) does not exist." +msgstr "Der Eintrag (%s) existiert nicht." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:27 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:28 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:34 +msgid "The entry does not exist and will be ignored" +msgstr "Der Eintrag existiert nicht und wird ignoriert" + +#: ../lib/modules/puppetClient.inc:184 ../lib/modules/puppetClient.inc:185 +msgid "The environment name may only contain ASCII characters." +msgstr "Der Umgebungsname darf nur ASCII-Zeichen enthalten." + +#: ../lib/modules/shadowAccount.inc:67 +msgid "The expiration date is invalid." +msgstr "Das Ablaufdatum ist ungültig." + +#: ../lib/modules/freeRadius.inc:257 ../lib/modules/freeRadius.inc:258 +msgid "The expiration date must be in format DD.MM.YYYY HH:MM." +msgstr "" +"Bitte geben Sie ein gültiges Ablaufdatum im Format TT.MM.JJJJ HH:MM ein." + +#: ../lib/modules/bindDLZ.inc:519 ../lib/modules/bindDLZ.inc:520 +#, php-format +msgid "The expiration time \"%s\" must be a number." +msgstr "Die Ablaufzeit \"%s\" muss eine Zahl sein." + +#: ../lib/modules/asteriskAccount.inc:560 +#: ../lib/modules/asteriskAccount.inc:561 +msgid "The extension context is invalid." +msgstr "Der Erweiterungskontext ist ungültig." + +#: ../lib/pdfstruct.inc:262 +msgid "The file must not exeed 2000x300px." +msgstr "Die Datei darf nicht größer als 2000x300px sein." + +#: ../lib/pdfstruct.inc:249 +msgid "The file name must end with \".png\" or \".jpg\"." +msgstr "Der Dateiname muss mit \".png\" oder \".jpg\" enden." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "The file you chose is either empty or does not exist." +msgstr "Die gewählte Datei ist entweder leer oder existiert nicht." + +#: ../templates/3rdParty/pla/lib/Template.php:412 +#: ../templates/3rdParty/pla/lib/Template.php:499 +msgid "" +"The file you selected was only partially uploaded, likley due to a network " +"error." +msgstr "" +"Die gewählte Datei wurde nur teilweise hochgeladen, wahrscheinlich durch " +"einen Netzwerkfehler." + +#: ../templates/3rdParty/pla/lib/Template.php:402 +#: ../templates/3rdParty/pla/lib/Template.php:407 +#: ../templates/3rdParty/pla/lib/Template.php:489 +#: ../templates/3rdParty/pla/lib/Template.php:494 +msgid "" +"The file you uploaded is too large. Please check php.ini, upload_max_size " +"setting" +msgstr "" +"Die hochgeladene Datei ist zu groß. Bitte prüfen Sie den Parameter " +"upload_max_size in der php.ini." + +#: ../lib/modules/kolabSharedFolder.inc:159 +msgid "" +"The folder on the server where the shared folder is located (e.g. user/" +"myfolder@example.com)." +msgstr "" +"Der Ordner am Server wo der gemeinsame Ordner liegt (z.B. benutzer/" +"meinordner@beispiel.de)." + +#: ../lib/modules/kolabSharedFolder.inc:117 +msgid "The folder's email address." +msgstr "Die email-Adresse des Ordners." + +#: ../templates/initsuff.php:180 +msgid "" +"The following suffixes are missing in LDAP. LAM can create them for you." +msgstr "Folgende Suffixe fehlen in LDAP. LAM kann sie für Sie erstellen." + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:120 +msgid "The format of the logon hours field is invalid!" +msgstr "Das Format der Anmeldezeiten ist ungültig!" + +#: ../lib/modules/customScripts.inc:123 +msgid "The format of this custom script setting is invalid." +msgstr "Das Format dieses Skriptes ist ungültig!" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +msgid "The format to show the query results" +msgstr "Das Format zum Anzeigen der Suchergebnisse" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "" +"The full DN of the new entry to be created when copying the source entry" +msgstr "Der komplette DN des neuen Eintrags" + +#: ../lib/modules/asteriskVoicemail.inc:218 +#: ../lib/modules/asteriskVoicemail.inc:219 +msgid "The full name is invalid." +msgstr "Der Wert für den vollständigen Namen ist ungültig." + +#: ../templates/login.php:583 +msgid "The given user name matches multiple LDAP entries." +msgstr "Der angegebene Benutzername passt auf mehrere LDAP-Einträge." + +#: ../lib/modules/ppolicy.inc:101 +msgid "" +"The grace authentication limit specifies the number of times that an expired " +"password may be used to login." +msgstr "" +"Das Aufschublimit legt fest, wie oft ein bereits abgelaufenes Passwort noch " +"verwendet werden darf." + +#: ../lib/modules/windowsGroup.inc:147 +msgid "The group is managed by this contact person." +msgstr "Die Gruppe wird von dieser Kontaktperson verwaltet." + +#: ../lib/modules/freeRadius.inc:97 ../lib/modules/freeRadius.inc:101 +msgid "The group names for this account." +msgstr "Die Gruppennamen für diesen Account." + +#: ../lib/modules/windowsUser.inc:221 +msgid "The groups for this account. You can insert a group name or DN." +msgstr "" +"Die Gruppen dieses Accounts. Sie können einen Gruppennamen oder einen DN " +"angeben." + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "The headline for a new section must contain at least one character." +msgstr "" +"Die Überschrift für einen neuen Abschnitt muss mindestens ein Zeichen " +"enthalten." + +#: ../lib/modules/sambaSamAccount.inc:304 ../lib/modules/windowsUser.inc:245 +msgid "The home directory will be connected under this drive letter." +msgstr "Das Heimatverzeichnis wird unter diesem Buchstaben verbunden." + +#: ../lib/modules/windowsHost.inc:87 +msgid "The host is managed by this contact person." +msgstr "Der Server wird von dieser Kontaktperson verwaltet." + +#: ../lib/modules/bindDLZ.inc:504 ../lib/modules/bindDLZ.inc:505 +#: ../lib/modules/bindDLZ.inc:531 ../lib/modules/bindDLZ.inc:532 +#, php-format +msgid "The host name \"%s\" is invalid." +msgstr "Der Hostname \"%s\" ist ungültig." + +#: ../lib/modules/bindDLZ.inc:89 ../lib/modules/bindDLZ.inc:148 +#: ../lib/modules/bindDLZ.inc:152 +msgid "The host name for this entry." +msgstr "Der Hostname für diesen Eintrag." + +#: ../lib/modules/asteriskAccount.inc:563 +#: ../lib/modules/asteriskAccount.inc:564 ../lib/modules/bindDLZ.inc:477 +#: ../lib/modules/bindDLZ.inc:478 +msgid "The host name is invalid." +msgstr "Der Hostname ist ungültig." + +#: ../lib/modules/windowsUser.inc:133 ../lib/modules/inetOrgPerson.inc:859 +msgid "The initials of the user's first names." +msgstr "Die Initialen der Vornamen des Benutzers." + +#: ../lib/modules/ddns.inc:94 +msgid "" +"The key enables the DHCP server to perform DNS updates. The key is generated " +"with \"genDDNSkey\"." +msgstr "" +"Der Schlüssel erlaubt dem DHCP-Server DNS-Änderungen durchzuführen. Der " +"Schlüssel wird mit \"genDDNSkey\" erzeugt." + +#: ../lib/modules/dhcp_settings.inc:324 ../lib/modules/dhcp_settings.inc:325 +msgid "The lease time is invalid." +msgstr "Die Lease-Zeit ist ungültig." + +#: ../lib/modules/dhcp_settings.inc:154 +msgid "" +"The lease time specifies after how many seconds the client should request a " +"new IP address." +msgstr "" +"Die Lease-Zeit bestimmt nach wie vielen Sekunden der Client eine neue IP-" +"Adresse beantragen soll." + +#: ../lib/modules/sudoRole.inc:83 ../lib/modules/sudoRole.inc:109 +msgid "The list of commands which may be run." +msgstr "Die Liste der ausführbaren Kommandos." + +#: ../lib/modules/puppetClient.inc:93 ../lib/modules/puppetClient.inc:97 +msgid "The list of configured Puppet classes for this node (e.g. ntp)." +msgstr "Dies ist die Liste von Puppet-Klassen für diesen Knoten (z.B. ntp)." + +#: ../lib/modules/sudoRole.inc:79 ../lib/modules/sudoRole.inc:104 +msgid "The list of hosts from which the user may run the commands." +msgstr "" +"Die Liste der Hosts von denen der Benutzer die Kommandos absetzen darf." + +#: ../lib/modules/customFields.inc:3013 +msgid "The list of labels contains duplicates." +msgstr "Die Liste der Beschreibungen enthält Duplikate." + +#: ../lib/modules/sudoRole.inc:75 ../lib/modules/sudoRole.inc:99 +msgid "The list of users who own this sudo role and may run the commands." +msgstr "" +"Die Liste der Benutzer, denen diese Rolle zugeteilt ist und die diese " +"Kommandos ausführen dürfen." + +#: ../lib/modules/customFields.inc:3010 +msgid "The list of values contains duplicates." +msgstr "Die Liste der Werte enthält Duplikate." + +#: ../lib/modules/qmailGroup.inc:132 ../lib/modules/qmailGroup.inc:136 +msgid "The list's alternate email address." +msgstr "Die alternative email-Adresse der Liste." + +#: ../lib/modules/kolabGroup.inc:88 ../lib/modules/kolabGroup.inc:92 +#: ../lib/modules/qmailGroup.inc:124 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/windowsGroup.inc:127 +msgid "The list's email address." +msgstr "Die email-Adresse der Liste." + +#: ../templates/config/mainmanage.php:147 +msgid "" +"The log file is empty or contains invalid characters! Valid characters are: " +"a-z, A-Z, 0-9, /, \\, ., :, _ and -." +msgstr "" +"Der Name der Log-Datei ist leer oder enthält ungültige Zeichen! Gültige " +"Zeichen sind: a-z, A-Z, 0-9, /, \\, ., :, _ und -." + +#: ../lib/modules/imapAccess.inc:87 +msgid "" +"The login name of your IMAP user who has rights to create/delete mailboxes." +msgstr "" +"Dies ist der Benutzername Ihres IMAP-Administrators der Postfächer erstellen/" +"löschen darf." + +#: ../lib/modules/bindDLZ.inc:140 ../lib/modules/bindDLZ.inc:144 +msgid "The mail server for this entry." +msgstr "Dies ist der Mailserver für diesen Eintrag." + +#: ../lib/modules/qmailUser.inc:244 +msgid "The mail server that contains the message store." +msgstr "Dies ist der Mailserver des Benutzers." + +#: ../lib/modules/passwordSelfReset.inc:234 +msgid "" +"The mail text for confirmation mails must include the wildcard @@resetLink@@." +msgstr "" +"Der Text für die Bestätigungsmails muss den Rücksetzlink @@resetLink@@ " +"enthalten." + +#: ../help/help.inc:251 +msgid "The mail text of all password mails." +msgstr "Der Text für alle Passwortmails." + +#: ../lib/modules/selfRegistration.inc:70 +msgid "The mail text of the confirmation mail." +msgstr "Der Text für die Bestätigungsmails." + +#: ../lib/modules/passwordSelfReset.inc:125 +#: ../lib/modules/passwordSelfReset.inc:135 +msgid "The mail text of the mails." +msgstr "Der Text für alle Passwortmails." + +#: ../lib/modules/asteriskVoicemail.inc:210 +#: ../lib/modules/asteriskVoicemail.inc:212 +msgid "The mailbox format is invalid." +msgstr "Der Wert für das Postfach ist ungültig." + +#: ../lib/modules/dhcp_settings.inc:332 ../lib/modules/dhcp_settings.inc:333 +msgid "The maximum lease time is invalid." +msgstr "Die maximale Lease-Zeit ist ungültig." + +#: ../lib/modules/dhcp_settings.inc:158 +msgid "" +"The maximum lease time specifies after how many seconds the client must " +"request a new IP address." +msgstr "" +"Die maximale Lease-Zeit bestimmt nach wie vielen Sekunden der Client eine " +"neue IP-Adresse beantragen muss." + +#: ../lib/modules/kolabUser.inc:175 +msgid "The maximum mailbox size in MB." +msgstr "Das Größenlimit der Mailbox in MB." + +#: ../lib/modules/qmailUser.inc:224 +msgid "The maximum number of mails that can be stored in the user's mailbox." +msgstr "Die max. Anzahl von Nachrichten für die Mailbox des Benutzers." + +#: ../lib/modules/pykotaPrinter.inc:104 +msgid "" +"The maximum number of pages per job allowed on the printer. 0 means " +"unlimited." +msgstr "" +"Das ist die max. Anzahl an Seiten pro Job, die für diesen Drucker erlaubt " +"sind. 0 bedeutet ohne Limit." + +#: ../lib/modules/bindDLZ.inc:525 ../lib/modules/bindDLZ.inc:526 +#, php-format +msgid "The minimum time \"%s\" must be a number." +msgstr "Die minimale Zeit \"%s\" muss eine Zahl sein." + +#: ../lib/modules.inc:927 +#, php-format +msgid "The module %s is not yet ready." +msgstr "Das Modul %s ist noch nicht bereit." + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "" +"The name for that PDF-structure you submitted is not valid. A valid name " +"must consist of the following characters: 'a-z','A-Z','0-9','_','-'." +msgstr "" +"Der Name für die PDF-Struktur ist ungültig. Ein gültiger Name besteht " +"mindestens aus einem der folgenden Zeichen: 'a-z','A-Z','0-9','_','-','.'." + +#: ../lib/modules/asteriskExtension.inc:111 +msgid "" +"The name of a command to execute. The available commands may be listed at " +"the Asterisk command line by executing \"core show applications\"." +msgstr "" +"Dies ist der Name des auszuführenden Kommandos. Die verfügbaren Kommandos " +"können mit \"core show applications\" ausgegeben werden." + +#: ../lib/modules/fixed_ip.inc:99 +msgid "The name of the PC." +msgstr "Der Name des PCs." + +#: ../lib/modules/asteriskExtension.inc:103 +msgid "The name of the extension (e.g. voicemail or sip)." +msgstr "Der Name der Erweiterung (z.B. voicemail oder sip)." + +#: ../lib/modules/kolabUser.inc:149 ../lib/modules/kolabSharedFolder.inc:155 +msgid "The name of the server where the mailbox is located." +msgstr "Der Name des Servers, auf dem sich das Postfach befindet." + +#: ../lib/modules/dhcp_settings.inc:150 +msgid "The name of the subnet. Example: 192.168.10.0" +msgstr "Der Name des Subnetzes. Beispiel: 192.168.10.0" + +#: ../lib/modules/sambaDomain.inc:78 +msgid "The name of your Windows domain or workgroup." +msgstr "Der Name ihrer Windows-Domäne oder Arbeitsgruppe." + +#: ../lib/modules/bindDLZ.inc:506 ../lib/modules/bindDLZ.inc:507 +#, php-format +msgid "The name server \"%s\" is invalid." +msgstr "Der Name-Server \"%s\" ist ungültig." + +#: ../lib/modules/bindDLZ.inc:156 ../lib/modules/bindDLZ.inc:160 +msgid "The name server for this zone." +msgstr "Der Name-Server für diese Zone." + +#: ../lib/modules/freeRadius.inc:89 +msgid "The net mask for the IP address." +msgstr "Die Netzmaske für die IP-Adresse." + +#: ../lib/modules/dhcp_settings.inc:194 +msgid "" +"The net mask is derived from the subnet mask. LAM will calculate it " +"automatically." +msgstr "" +"Die Netzmaske wird aus der Subnetzmaske abgeleitet. LAM berechnet " +"automatisch den passenden Wert." + +#: ../lib/modules/freeRadius.inc:251 ../lib/modules/freeRadius.inc:252 +msgid "The net mask is invalid." +msgstr "Die Netzmaske ist ungültig." + +#: ../lib/modules.inc:1185 +msgid "" +"The new password will be stored in the directory after you save this account." +msgstr "" +"Das neue Passwort wird im Verzeichnis eingetragen sowie Sie diesen Account " +"speichern." + +#: ../lib/modules/asteriskAccount.inc:240 +msgid "The number of milliseconds for the last qualify." +msgstr "Die Anzahl an Millisekunden für den letzten Verbindungstest." + +#: ../lib/modules/bindDLZ.inc:516 +msgid "The number of priority, weight, port and server entries must be equal." +msgstr "" +"Die Anzahl der Werte für Priorität, Gewichtung, Port und Server müssen " +"gleich sein." + +#: ../help/help.inc:121 +msgid "" +"The number of users who may login to LAM is restricted. This can be either a " +"fixed list of DNs or LAM can search LDAP to find a DN which matches the " +"given user name." +msgstr "" +"Die Anzahl von Benutzern mit Zugriff auf LAM ist begrenzt. Dies kann " +"entweder eine feste Liste sein oder LAM kann in LDAP nach einem DN suchen, " +"der auf den Benutzernamen passt." + +#: ../templates/tests/schemaTest.php:114 +#, php-format +msgid "The object class %s is not supported by your LDAP server." +msgstr "Die Objektklasse %s wird von Ihrem LDAP-Server nicht unterstützt." + +#: ../lib/modules/windowsUser.inc:153 ../lib/modules/inetOrgPerson.inc:815 +#: ../lib/modules/inetOrgPerson.inc:819 +msgid "The office name of the user (e.g. YourCompany, Human Resources)." +msgstr "Der Büroname des Benutzers (z.B. IhreFirma, Personalabteilung)." + +#: ../templates/selfService/selfServiceMain.php:331 ../lib/modules.inc:1811 +msgid "The operation was stopped because of the above errors." +msgstr "Die Operation wurde aufgrund obiger Fehler gestoppt." + +#: ../lib/modules/asteriskVoicemail.inc:224 +#: ../lib/modules/asteriskVoicemail.inc:225 +msgid "The options have bad format." +msgstr "Die Optionen sind falsch formatiert." + +#: ../lib/modules/device.inc:70 ../lib/modules/device.inc:74 +msgid "The owners of this device." +msgstr "Die Besitzer dieses Geräts." + +#: ../lib/modules/groupOfNames.inc:94 ../lib/modules/groupOfNames.inc:98 +msgid "The owners of this group." +msgstr "Die Besitzer dieser Gruppe." + +#: ../lib/modules/asteriskVoicemail.inc:222 +#: ../lib/modules/asteriskVoicemail.inc:223 +msgid "The pager number has bad format." +msgstr "DIe Pager-Nummer ist ungültig." + +#: ../lib/modules/heimdalKerberos.inc:121 +msgid "The parameter @@password@@ will be replaced with the new password." +msgstr "Der Parameter @@password@@ wird durch das neue Passwort ersetzt." + +#: ../lib/modules/heimdalKerberos.inc:120 +msgid "The parameter @@principal@@ will be replaced with the principal name." +msgstr "Der Parameter @@principal@@ wird durch den Benutzernamen ersetzt." + +#: ../templates/config/confsave.php:71 ../templates/config/confmain.php:73 +#: ../templates/config/mainlogin.php:61 +#: ../templates/selfService/adminLogin.php:54 +msgid "The password is invalid! Please try again." +msgstr "Das Passwort ist falsch! Bitte erneut eingeben." + +#: ../lib/security.inc:335 +#, php-format +msgid "The password is too short. You have to enter at least %s characters." +msgstr "Das Passwort ist zu kurz. Sie müssen mindestens %s Zeichen eingeben." + +#: ../lib/security.inc:423 +#, php-format +msgid "" +"The password is too weak. It needs to match at least %s password complexity " +"rules." +msgstr "" +"Das Passwort ist zu unsicher. Es muss mindestens %s " +"Passwortkomplexitätsregeln erfüllen." + +#: ../lib/security.inc:413 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s different character " +"classes (upper/lower case, numbers and symbols)." +msgstr "" +"Das Passwort ist zu unsicher. Sie müssen mindestens %s verschiedene " +"Zeichenklassen verwenden (Groß-/Kleinbuchstaben, Zahlen und Sonderzeichen)." + +#: ../lib/security.inc:360 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s lower case " +"characters." +msgstr "" +"Das Passwort ist zu unsicher. Sie müssen mindestens %s Kleinbuchstaben " +"eingeben." + +#: ../lib/security.inc:380 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s numeric characters." +msgstr "" +"Das Passwort ist zu unsicher. Sie müssen mindestens %s Zahlen eingeben." + +#: ../lib/security.inc:390 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s symbolic characters." +msgstr "" +"Das Passwort ist zu unsicher. Sie müssen mindestens %s Sonderzeichen " +"eingeben." + +#: ../lib/security.inc:370 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s upper case " +"characters." +msgstr "" +"Das Passwort ist zu unsicher. Sie müssen mindestens %s Großbuchstaben " +"eingeben." + +#: ../lib/security.inc:442 +msgid "" +"The password is too weak. You may not use parts of the user name for the " +"password." +msgstr "" +"Das Passwort ist zu unsicher. Sie dürfen keine Teile des Benutzernamens " +"verwenden." + +#: ../lib/security.inc:452 +msgid "" +"The password is too weak. You may not use parts of user attributes for the " +"password." +msgstr "" +"Das Passwort ist zu unsicher. Sie dürfen keine Teile von Attributen " +"verwenden." + +#: ../lib/security.inc:430 +msgid "" +"The password is too weak. You may not use the user name as part of the " +"password." +msgstr "" +"Das Passwort ist zu unsicher. Sie dürfen den Benutzernamen nicht als Teil " +"des Passwortes verwenden." + +#: ../lib/modules/imapAccess.inc:95 +msgid "" +"The password of your IMAP admin user. The login name for the IMAP admin user " +"is stored in the LAM server profile." +msgstr "" +"Dies ist das Passwort Ihres IMAP-Administrators. Der Benutzername für den " +"Administrator wird im LAM-Serverprofil gespeichert." + +#: ../templates/lists/changePassword.php:609 ../lib/modules.inc:1128 +msgid "The password was set to:" +msgstr "Das Passwort wurde auf folgenden Wert gesetzt:" + +#: ../lib/modules/range.inc:122 +msgid "The pool's failover peer." +msgstr "Der Ausfallknoten für diesen Pool." + +#: ../lib/modules/range.inc:118 +msgid "The pool's name." +msgstr "Der Name des Pools." + +#: ../lib/modules/bindDLZ.inc:512 ../lib/modules/bindDLZ.inc:513 +#, php-format +msgid "The port \"%s\" is invalid." +msgstr "Der Port \"%s\" ist ungültig." + +#: ../lib/modules/windowsUser.inc:161 ../lib/modules/inetOrgPerson.inc:687 +#: ../lib/modules/inetOrgPerson.inc:691 +msgid "The post office box of the user's address." +msgstr "Das Postfach der Benutzeradresse." + +#: ../lib/modules/windowsUser.inc:157 ../lib/modules/inetOrgPerson.inc:695 +#: ../lib/modules/inetOrgPerson.inc:699 +msgid "The postal code of the user's address." +msgstr "Die Postleitzahl der Benutzeradresse." + +#: ../lib/modules/bindDLZ.inc:502 ../lib/modules/bindDLZ.inc:503 +#, php-format +msgid "The preference \"%s\" must be a number." +msgstr "Die Präferenz \"%s\" muss eine Zahl sein." + +#: ../lib/modules/pykotaPrinter.inc:116 +msgid "The price for each page of a print job." +msgstr "Dies ist der Preis pro Seite für einen Druckjob." + +#: ../lib/modules/pykotaPrinter.inc:112 +msgid "The price for each print job." +msgstr "Dies ist der Preis pro Druckjob." + +#: ../lib/modules/posixAccount.inc:466 +msgid "" +"The primary group for this account. You can insert a GID number or a group " +"name." +msgstr "" +"Die primäre Gruppe dieses Accounts. Sie können eine GID-Nummer oder einen " +"Gruppennamen angeben." + +#: ../lib/modules/posixAccount.inc:553 +msgid "The primary group the host should be member of." +msgstr "Die primäre Gruppe des Hosts." + +#: ../lib/modules/posixAccount.inc:515 +msgid "The primary group the user should be member of." +msgstr "Die primäre Gruppe des Benutzers." + +#: ../lib/modules/bindDLZ.inc:508 ../lib/modules/bindDLZ.inc:509 +#, php-format +msgid "The priority \"%s\" is invalid." +msgstr "Die Priorität \"%s\" ist ungültig." + +#: ../lib/modules/asteriskExtension.inc:107 +msgid "" +"The priority is a sequence number used to order the execution of commands. " +"Commands are executed beginning with the lowest sequence number." +msgstr "" +"Die Priorität ist eine Sequenznummer um die Ausführung der Kommandos zu " +"sortieren. Kommandos mit niedriger Priorität werden zuerst ausgeführt." + +#: ../lib/modules/range.inc:511 ../lib/modules/range.inc:591 +msgid "The range conflicts with another range." +msgstr "Der Adressbereich steht im Konflikt mit einem anderen Adressbereich." + +#: ../lib/modules/range.inc:507 ../lib/modules/range.inc:585 +msgid "The range end needs to be greater than the range start." +msgstr "Das Ende des Adressbereichs muss größer als der Anfang sein." + +#: ../lib/modules/bindDLZ.inc:521 ../lib/modules/bindDLZ.inc:522 +#, php-format +msgid "The refresh time \"%s\" must be a number." +msgstr "Die Aktualisierungszeit \"%s\" muss eine Zahl sein." + +#: ../lib/modules/bindDLZ.inc:523 ../lib/modules/bindDLZ.inc:524 +#, php-format +msgid "The retry time \"%s\" must be a number." +msgstr "Die Zeit für neuen Versuch \"%s\" muss eine Zahl sein." + +#: ../lib/modules/inetOrgPerson.inc:783 +msgid "The room number of the employee's office." +msgstr "Die Raumnummer des Mitarbeiterbüros." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +msgid "The scope in which to search" +msgstr "Der Suchbereich für diese Suche" + +#: ../lib/modules/customScripts.inc:64 ../lib/modules/customScripts.inc:77 +msgid "" +"The scripts will be run on your web server in the user context of your web " +"server (e.g. apache/www-data)." +msgstr "" +"Die Skripte werden auf Ihrem Webserver gestartet. Dazu wird der " +"Benutzerkontext des Webservers (z.B. apache/www-data) verwendet." + +#: ../lib/modules/nisMailAliasUser.inc:105 +#: ../lib/modules/asteriskAccount.inc:244 ../lib/modules/qmailUser.inc:196 +#: ../lib/modules/zarafaGroup.inc:109 ../lib/modules/sambaSamAccount.inc:401 +#: ../lib/modules/posixAccount.inc:442 ../lib/modules/zarafaUser.inc:133 +#: ../lib/modules/windowsUser.inc:237 ../lib/modules/inetOrgPerson.inc:831 +#: ../lib/modules/freeRadius.inc:113 ../lib/modules/zarafaServer.inc:89 +#: ../lib/modules/qmailGroup.inc:120 ../lib/modules/organizationalRole.inc:82 +#: ../lib/modules/passwordSelfReset.inc:161 +#: ../lib/modules/windowsGroup.inc:111 ../lib/modules/groupOfNames.inc:82 +msgid "" +"The selected options will not be managed inside LAM. You can use this to " +"reduce the number of displayed input fields." +msgstr "" +"Die gewählten Felder werden nicht von LAM verwaltet. Sie können damit die " +"Anzahl angezeigter Eingabefelder reduzieren." + +#: ../lib/modules/bindDLZ.inc:527 ../lib/modules/bindDLZ.inc:528 +#, php-format +msgid "The serial number \"%s\" must be a number." +msgstr "Die Seriennummer \"%s\" muss eine Zahl sein." + +#: ../lib/modules/bindDLZ.inc:228 +msgid "The serial number should be updated after each zone change." +msgstr "Die Seriennummer sollte nach jeder Zonenänderung geändert werden." + +#: ../lib/modules/bindDLZ.inc:500 ../lib/modules/bindDLZ.inc:501 +#: ../lib/modules/bindDLZ.inc:514 ../lib/modules/bindDLZ.inc:515 +#, php-format +msgid "The server name \"%s\" is invalid." +msgstr "Der Servername \"%s\" ist ungültig." + +#: ../templates/3rdParty/pla/htdocs/copy.php:38 +msgid "The source and destination DN are the same." +msgstr "Ziel- und Quell-DN sind identisch." + +#: ../lib/modules/range.inc:98 +msgid "The starting IP address of the range." +msgstr "Die IP-Adresse mit der der Adressbereich anfängt." + +#: ../lib/modules/windowsUser.inc:169 ../lib/modules/inetOrgPerson.inc:803 +#: ../lib/modules/inetOrgPerson.inc:807 +msgid "The state where the user resides or works." +msgstr "Das Bundesland in dem der Benutzer wohnt oder arbeitet." + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "The static text must contain at least one character." +msgstr "Der statische Text muss mindestens ein Zeichen enthalten." + +#: ../lib/modules/windowsUser.inc:173 ../lib/modules/inetOrgPerson.inc:679 +#: ../lib/modules/inetOrgPerson.inc:683 +msgid "The street name of the user's address." +msgstr "Der Straßenname der Benutzeradresse." + +#: ../help/help.inc:249 +msgid "The subject of all password mails." +msgstr "Der Betreff aller Passwortmails." + +#: ../lib/modules/selfRegistration.inc:95 +#: ../lib/modules/passwordSelfReset.inc:121 +msgid "The subject of the mails." +msgstr "Der Betreff der emails." + +#: ../lib/modules/dhcp_settings.inc:319 +msgid "The subnet is already in use." +msgstr "Das Subnetz wird bereits verwendet." + +#: ../lib/modules/dhcp_settings.inc:320 ../lib/modules/dhcp_settings.inc:321 +msgid "The subnet is invalid." +msgstr "Das Subnetz ist ungültig." + +#: ../lib/modules/dhcp_settings.inc:334 ../lib/modules/dhcp_settings.inc:335 +msgid "The subnet mask is invalid." +msgstr "Die Subnetzmaske ist ungültig." + +#: ../lib/modules/dhcp_settings.inc:190 +msgid "The subnet mask of the network." +msgstr "Die Subnetzmaske des Netzwerkes." + +#: ../lib/modules/sudoRole.inc:134 +msgid "The sudo command is not valid after this date." +msgstr "Die Sudo-Regel ist nur bis zu diesem Datum gültig." + +#: ../lib/modules/sudoRole.inc:129 +msgid "The sudo command is not valid before this date." +msgstr "Die Sudo-Regel ist erst ab diesem Datum gültig." + +#: ../lib/modules/sudoRole.inc:91 ../lib/modules/sudoRole.inc:119 +msgid "The sudo commands are executed with these group memberships." +msgstr "" +"Die Sudo-Kommandos werden mit diesen Gruppenzugehörigkeiten ausgeführt." + +#: ../lib/modules/sudoRole.inc:87 ../lib/modules/sudoRole.inc:114 +msgid "The sudo commands may be run as these users (e.g. root)." +msgstr "" +"Die Sudo-Kommandos können unter diesen Benutzern ausgeführt werden (z.B. " +"root)." + +#: ../lib/modules/bindDLZ.inc:220 +msgid "" +"The time (in seconds) a secondary server should wait before retrying a zone " +"refresh." +msgstr "" +"Die Zeit (in Sekunden), die ein sekundärer Server bis zum nächsten Versuch " +"einer Zonenaktualisierung warten sollte." + +#: ../lib/modules/bindDLZ.inc:216 +msgid "" +"The time (in seconds) that a secondary server should wait before checking " +"for zone updates." +msgstr "" +"Die Zeit (in Sekunden), die ein sekundärer Server bis zur Prüfung auf " +"Zonenänderungen warten sollte." + +#: ../lib/modules/bindDLZ.inc:212 +msgid "" +"The time (in seconds) that zone data is kept on a secondary server without " +"receiving a zone refresh." +msgstr "" +"Die Zeit (in Sekunden), wie lange Zonendaten auf einem sekundären Server " +"ohne Zonenaktualisierung gehalten werden." + +#: ../lib/modules/bindDLZ.inc:479 ../lib/modules/bindDLZ.inc:480 +#: ../lib/modules/bindDLZ.inc:481 ../lib/modules/bindDLZ.inc:482 +#: ../lib/modules/bindDLZ.inc:483 ../lib/modules/bindDLZ.inc:484 +#: ../lib/modules/bindDLZ.inc:485 ../lib/modules/bindDLZ.inc:486 +#: ../lib/modules/bindDLZ.inc:487 ../lib/modules/bindDLZ.inc:488 +#: ../lib/modules/bindDLZ.inc:489 ../lib/modules/bindDLZ.inc:490 +#: ../lib/modules/bindDLZ.inc:491 ../lib/modules/bindDLZ.inc:492 +#: ../lib/modules/bindDLZ.inc:493 ../lib/modules/bindDLZ.inc:494 +#, php-format +msgid "The timeout \"%s\" must be a number." +msgstr "Das Zeitlimit \"%s\" muss eine Zahl sein." + +#: ../lib/modules/bindDLZ.inc:102 ../lib/modules/bindDLZ.inc:106 +#: ../lib/modules/bindDLZ.inc:111 ../lib/modules/bindDLZ.inc:116 +#: ../lib/modules/bindDLZ.inc:121 ../lib/modules/bindDLZ.inc:126 +#: ../lib/modules/bindDLZ.inc:131 +msgid "" +"The timeout specifies how long (in seconds) a record can be cached by " +"caching DNS servers." +msgstr "" +"Das Zeitlimit (in Sekunden) legt fest wie lange ein Eintrag bei Cache-DNS-" +"Servern vorgehalten wird." + +#: ../lib/modules/customFields.inc:3562 ../lib/modules/customFields.inc:3649 +#, php-format +msgid "The uploaded file does not have the correct file extension (%s)." +msgstr "Die hochgeladene Datei hat nicht die erlaubte Dateiendung (%s)." + +#: ../lib/modules/customFields.inc:3558 ../lib/modules/customFields.inc:3645 +#, php-format +msgid "The uploaded file is too large (> %s bytes)." +msgstr "Die hochgeladene Datei ist zu groß (> %s Bytes)." + +#: ../templates/3rdParty/pla/lib/import_functions.php:396 +msgid "The url attribute value should begin with file://." +msgstr "Das url-Attribut sollte mit file:// beginnen." + +#: ../lib/modules/zarafaUser.inc:113 +msgid "The user account is non-active and login is disabled." +msgstr "Der Benutzeraccount ist nicht aktiv und der Login gesperrt." + +#: ../lib/modules/windowsUser.inc:202 +msgid "The user must log on using a smart card." +msgstr "Der Benutzer muss sich mit Hilfe einer Smartcard authentifizieren." + +#: ../lib/modules/zarafaUser.inc:93 +msgid "The user will get warned when his mailbox reaches this limit." +msgstr "Der Benutzer wird gewarnt falls sein Postfach dieses Limit erreicht." + +#: ../lib/modules/qmailUser.inc:204 +msgid "The user's alternate email address." +msgstr "Die alternative email-Adresse des Benutzers." + +#: ../lib/modules/asteriskAccount.inc:136 +msgid "The user's call groups." +msgstr "Die Anrufergruppen des Benutzers." + +#: ../lib/modules/qmailUser.inc:200 ../lib/modules/windowsUser.inc:141 +#: ../lib/modules/pykotaUser.inc:117 ../lib/modules/inetOrgPerson.inc:743 +#: ../lib/modules/inetOrgPerson.inc:747 +msgid "The user's email address." +msgstr "Die email-Adresse des Benutzers." + +#: ../lib/modules/inetOrgPerson.inc:727 ../lib/modules/inetOrgPerson.inc:731 +msgid "The user's fax number." +msgstr "Die Faxnummer des Benutzers." + +#: ../lib/modules/inetOrgPerson.inc:719 ../lib/modules/inetOrgPerson.inc:723 +msgid "The user's mobile number." +msgstr "Die Handynummer des Benutzers." + +#: ../lib/modules/inetOrgPerson.inc:847 ../lib/modules/inetOrgPerson.inc:851 +msgid "The user's organisation name." +msgstr "Der Name der Organisation." + +#: ../lib/modules/inetOrgPerson.inc:839 ../lib/modules/inetOrgPerson.inc:843 +msgid "The user's organisational unit." +msgstr "Der Name der Organisationseinheit des Benutzers." + +#: ../lib/modules/inetOrgPerson.inc:735 ../lib/modules/inetOrgPerson.inc:739 +msgid "The user's pager number." +msgstr "Die Pagernummer des Benutzers." + +#: ../lib/modules/inetOrgPerson.inc:775 ../lib/modules/inetOrgPerson.inc:779 +msgid "The user's private telephone number." +msgstr "Private Telefonnummer des Benutzers." + +#: ../lib/modules/windowsUser.inc:177 ../lib/modules/inetOrgPerson.inc:711 +#: ../lib/modules/inetOrgPerson.inc:715 +msgid "The user's telephone number." +msgstr "Telefonnummer des Benutzers." + +#: ../lib/modules/inetOrgPerson.inc:855 +msgid "The user's unique employee number." +msgstr "Die eindeutige Personalnummer des Benutzers." + +#: ../lib/modules/windowsUser.inc:189 ../lib/modules/inetOrgPerson.inc:755 +#: ../lib/modules/inetOrgPerson.inc:759 +msgid "The user's web site (e.g. http://www.company.com)." +msgstr "Homepage des Benutzers (z.B. http://www.firma.de)." + +#: ../lib/modules/sambaSamAccount.inc:122 +msgid "" +"The value for the Samba 3 field \"User can/must change password\" needs to " +"be a number." +msgstr "" +"Der Wert für das Samba 3 -Feld \"Benutzer kann/muss Passwort ändern\" muss " +"eine Zahl sein." + +#: ../lib/modules/puppetClient.inc:188 ../lib/modules/puppetClient.inc:189 +msgid "The variables may only contain ASCII characters." +msgstr "Die Variablen dürfen nur ASCII-Zeichen enthalten." + +#: ../lib/modules/asteriskVoicemail.inc:226 +#: ../lib/modules/asteriskVoicemail.inc:227 +msgid "The voicemail context name is invalid." +msgstr "Der Anrufbeantworterkontext ist ungültig." + +#: ../lib/modules/bindDLZ.inc:510 ../lib/modules/bindDLZ.inc:511 +#, php-format +msgid "The weight \"%s\" is invalid." +msgstr "Die Gewichtung \"%s\" ist ungültig." + +#: ../templates/3rdParty/pla/htdocs/create.php:42 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:36 +msgid "The were no attributes marked as an RDN attribute." +msgstr "Es wurden keine Attribute als RDN-Attribut markiert." + +#: ../lib/modules/selfRegistration.inc:71 +msgid "The wildcard for the account creation link is @@creationLink@@." +msgstr "Der Platzhalter für den Erstellungslink ist @@creationLink@@." + +#: ../lib/modules/passwordSelfReset.inc:127 ../help/help.inc:254 +msgid "The wildcard for the new password is @@newPassword@@." +msgstr "Der Platzhalter für das neue Passwort ist @@newPassword@@." + +#: ../lib/modules/passwordSelfReset.inc:137 +msgid "The wildcard for the reset link is @@resetLink@@." +msgstr "Der Platzhalter für den Resetlink ist @@resetLink@@." + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:60 +#, php-format +msgid "There are %s members in group %s:" +msgstr "Es sind %s Mitglieder in der Gruppe %s:" + +#: ../lib/modules/posixGroup.inc:607 ../lib/modules/sambaGroupMapping.inc:605 +msgid "There are still users who have this group as their primary group." +msgstr "Es gibt noch Benutzer, deren primäre Gruppe diese Gruppe ist." + +#: ../lib/modules/sambaGroupMapping.inc:602 +msgid "There can be only one group of this type." +msgstr "Es kann nur eine Gruppe diesen Typs geben." + +#: ../lib/modules/asteriskAccount.inc:557 +msgid "There is already another user with this caller ID." +msgstr "Es gibt bereits einen anderen Benutzer mit dieser Anrufer-ID." + +#: ../lib/modules/asteriskVoicemail.inc:211 +msgid "There is already another user with this mailbox name." +msgstr "Es gibt bereits einen anderen Benutzer mit diesem Postfach." + +#: ../templates/massDoUpload.php:258 +msgid "There were errors while uploading:" +msgstr "Beim Upload traten Fehler auf:" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:80 +#, php-format +msgid "There will be %s updates done with this mass update" +msgstr "Es werden %s Änderungen mit dieser Massenänderung durchgeführt" + +#: ../lib/modules/posixGroup.inc:501 +msgid "" +"These are the minimum and maximum numbers to use for group IDs when creating " +"new group accounts. New group accounts will always get the highest number in " +"use plus one." +msgstr "" +"Das sind die minimalen und maximalen Nummern für Gruppen-IDs wenn neue " +"Gruppen erstellt werden. Neue Gruppen bekommen die immer die höchste " +"verwendete Zahl plus 1." + +#: ../lib/modules/posixAccount.inc:454 +msgid "" +"These are the minimum and maximum numbers to use for machine IDs when " +"creating new accounts for hosts. The range should be different from that of " +"users. New host accounts will always get the highest number in use plus one." +msgstr "" +"Das sind die minimalen und maximalen Nummern für Host-IDs wenn neue Hosts " +"erstellt werden. Der Bereich sollte sich von dem der Benutzer unterscheiden. " +"Neue Hosts bekommen die immer die höchste verwendete Zahl plus 1." + +#: ../lib/modules/posixAccount.inc:450 +msgid "" +"These are the minimum and maximum numbers to use for user IDs when creating " +"new user accounts. The range should be different from that of machines. New " +"user accounts will always get the highest number in use plus one." +msgstr "" +"Das sind die minimalen und maximalen Nummern für Benutzer-IDs wenn neue " +"Benutzer erstellt werden. Der Bereich sollte sich von dem der Hosts " +"unterscheiden. Neue Benutzer bekommen die immer die höchste verwendete Zahl " +"plus 1." + +#: ../lib/modules/inetOrgPerson.inc:867 +msgid "These are the user's certificates." +msgstr "Dies sind die Zertifikate des Benutzers." + +#: ../lib/modules/puppetClient.inc:113 +msgid "" +"These classes will be available as autocompletion hints when adding new " +"classes." +msgstr "" +"Diese Klassen werden mittels Autovervollständigung beim Hinzufügen neuer " +"Klassen vorgeschlagen." + +#: ../lib/modules/nisnetgroup.inc:96 ../lib/modules/nisnetgroup.inc:100 +msgid "" +"These entries specify the members of the netgroup. You can limit the set to " +"a host name, a user name, a domain name or any combination of them." +msgstr "" +"Diese Einträge definieren die Mitglieder dieser Netzgruppe. Sie können die " +"Menge durch die Angabe eines Maschinennamens, Benutzers oder Domainnamens " +"einschränken. Kombinationen sind ebenfalls möglich." + +#: ../lib/modules/puppetClient.inc:117 +msgid "" +"These environments will be available as autocompletion hints when setting " +"the environment." +msgstr "" +"Diese Umgebungen werden mittels Autovervollständigung beim Editieren der " +"Umgebung vorgeschlagen." + +#: ../lib/modules/asteriskExtension.inc:123 +msgid "" +"These options change the list of potential extension owners below. You can " +"select to show Asterisk accounts or all users. It is also possible to search " +"the tree suffix if you have users which are not in the standard user suffix." +msgstr "" +"Diese Optionen ändern die untige Liste potentieller Erweiterungsbesitzer. " +"Sie können nur Asterisk-Benutzer oder alle Benutzer anzeigen. Ferner kann im " +"Suffix der Baumansicht gesucht werden falls nicht alle Benutzer nicht im " +"Standardsuffix sind." + +#: ../lib/modules/authorizedServiceObject.inc:94 +msgid "These services will show up as hint if you enter a new service." +msgstr "" +"Diese Dienste werden mittels Autovervollständigung beim Hinzufügen neuer " +"Dienste vorgeschlagen." + +#: ../lib/modules/posixAccount.inc:124 +msgid "" +"This GID number is invalid! Please provide either a number or a group name." +msgstr "" +"Diese GID-Nummer ist ungültig! Bitte geben Sie eine Nummer ein oder einen " +"Gruppennamen." + +#: ../help/help.inc:235 +msgid "" +"This HTML code will be placed on top of all self service pages. E.g. you can " +"use this to place your custom logo. Any HTML code is permitted." +msgstr "" +"Dieser HTML-Code wird oben auf allen SelfService-Seiten eingefügt. Damit " +"können Sie z.B. ein eigenes Logo platzieren. Es ist beliebiger HTML-Code " +"erlaubt." + +#: ../lib/modules/fixed_ip.inc:462 +msgid "This PC name already exists." +msgstr "Der PC-Name existiert bereits." + +#: ../lib/modules/kolabGroup.inc:197 ../lib/modules/kolabUser.inc:292 +#: ../lib/modules/kolabSharedFolder.inc:274 +msgid "This account is marked for deletion." +msgstr "Dieser Account wurde zum Löschen markiert." + +#: ../lib/modules/sambaSamAccount.inc:328 +msgid "" +"This allows you to define this account as a special user like administrator " +"or guest." +msgstr "" +"Hier können Sie spezielle Accounts definieren, z.B. Administrator oder Gast." + +#: ../templates/3rdParty/pla/lib/PageRender.php:376 +msgid "This attribute is not defined in the LDAP schema" +msgstr "Dieses Attribut ist nicht im LDAP-Schema definiert." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1988 +msgid "This attribute is required" +msgstr "Dieses Attribut ist erforderlich" + +#: ../templates/3rdParty/pla/lib/PageRender.php:458 +msgid "This attribute is required for the RDN." +msgstr "Dieses Attribut ist für den RDN erforderlich." + +#: ../lib/modules/inetOrgPerson.inc:811 +msgid "This can be used to specify if the user has a car license." +msgstr "" +"Sie können in diesem Feld speichern, ob der Benutzer einen Führerschein hat." + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:64 +msgid "This change requires to add new attributes." +msgstr "Diese Änderung erfordert neue Attribute." + +#: ../help/help.inc:137 +msgid "This changes the password of the selected profile." +msgstr "Damit ändern Sie das Passwort des gewählten Profils." + +#: ../help/help.inc:139 +msgid "This changes the profile which is selected by default at login." +msgstr "Damit ändern Sie das Standardprofil am Login." + +#: ../templates/massBuildAccounts.php:177 +msgid "" +"This column is defined to include unique entries but duplicates were found:" +msgstr "Diese Spalte darf keine doppelten Einträge enthalten:" + +#: ../lib/modules/heimdalKerberos.inc:119 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -K /etc/heimdal/apache.keytab -p " +"admin/admin passwd -p @@password@@ @@principal@@\"." +msgstr "" +"Dieser Befehl wird ausgeführt um das Kerberos-Passwort zu ändern. " +"Üblicherweise sollte er ähnlich zu \"/usr/sbin/kadmin -K /etc/heimdal/apache." +"keytab -p admin/admin passwd -p @@password@@ @@principal@@\" sein." + +#: ../lib/modules/mitKerberos.inc:149 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -k -t /home/www-data/apache.keytab " +"-p realm/changepwd\"." +msgstr "" +"Dieser Befehl wird ausgeführt um das Kerberos-Passwort zu ändern. " +"Üblicherweise sollte er ähnlich zu \"/usr/sbin/kadmin -k -t /home/www-data/" +"apache.keytab -p realm/changepwd\" sein." + +#: ../lib/modules/customScripts.inc:124 +msgid "This custom script setting includes an invalid account type." +msgstr "Dieses Skripteinstellung enthält einen ungültigen Accounttyp." + +#: ../lib/modules/customScripts.inc:126 ../lib/modules/customScripts.inc:128 +msgid "This custom script setting includes an invalid action type." +msgstr "Diese Skripteinstellung enthält einen ungültigen Aktionstyp." + +#: ../help/help.inc:100 +msgid "" +"This defines the language of the login window and sets this language as the " +"default language. Users can change the language at login." +msgstr "" +"Bestimmt die Sprache des Logins und setzt diese Sprache als Standard. " +"Benutzer können die Sprache beim Login ändern." + +#: ../help/help.inc:119 +msgid "" +"This defines the rights for the home directories which are created by " +"lamdaemon." +msgstr "" +"Dies definiert, mit welchen Rechten die Heimatverzeichnisse angelegt werden." + +#: ../lib/modules/asteriskExtension.inc:95 +msgid "" +"This defines what application Asterisk has to start for this user (e.g. SIP/" +"user1)." +msgstr "Hiermit wird die zu startende Anwendung definiert (z.B. SIP/user1)." + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:85 +#, php-format +msgid "This deletion request also includes %s child entries." +msgstr "Hiermit löschen Sie auch %s Untereinträge." + +#: ../lib/modules/device.inc:78 +msgid "This describes the location of the device." +msgstr "Dies ist der Ort des Gerätes." + +#: ../lib/modules/ipHost.inc:74 +msgid "This describes the location of the host." +msgstr "Dies ist der Ort des Hosts." + +#: ../lib/modules/windowsUser.inc:137 ../lib/modules/inetOrgPerson.inc:795 +#: ../lib/modules/inetOrgPerson.inc:799 +msgid "This describes the location of the user." +msgstr "Dies ist der Ort des Benutzers." + +#: ../lib/lamPDF.inc:126 +msgid "This document was automatically created by LDAP Account Manager" +msgstr "Dieses Dokument wurde von LDAP Account Manager erstellt." + +#: ../help/help.inc:258 +msgid "" +"This email address will be set as reply-to address of all password mails." +msgstr "" +"Diese EMailadresse wird als Antwort-An Adresse für alle Passwortmails " +"verwendet." + +#: ../help/help.inc:247 +msgid "" +"This email address will be set as sender address of all password mails. If " +"empty the system default (php.ini) will be used." +msgstr "" +"Diese EMailadresse wird als Absenderadresse für alle Passwortmails " +"verwendet. Falls leer dann wird die Systemeinstellung (php.ini) verwendet." + +#: ../lib/modules/selfRegistration.inc:91 +#: ../lib/modules/passwordSelfReset.inc:117 +msgid "" +"This email address will be set as sender address of the mails. If empty the " +"system default (php.ini) will be used." +msgstr "" +"Diese Adresse wird als Absenderadresse für die emails verwendet. Falls leer " +"dann wird die Systemeinstellung (php.ini) verwendet." + +#: ../lib/modules/passwordSelfReset.inc:97 +msgid "This enables the password self reset function." +msgstr "Damit wird die Passwortrücksetzung aktiviert." + +#: ../lib/modules/selfRegistration.inc:54 +msgid "This enables the self registration function." +msgstr "Damit wird die Selbstregistrierung aktiviert." + +#: ../templates/3rdParty/pla/htdocs/compare.php:79 +msgid "This entry has no attributes" +msgstr "Der Eintrag hat keine Attribute" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:57 +#, php-format +msgid "This entry is the root of a sub-tree containing %s entries." +msgstr "Dieser Eintrag enthält einen Unterbaum mit %s Einträgen." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:47 +#: ../lib/modules/selfRegistration.inc:512 +msgid "This field is required." +msgstr "Dieses Feld ist erforderlich." + +#: ../lib/modules/customFields.inc:188 +msgid "This field name already exists. Please choose a different one." +msgstr "" +"Es gibt bereits ein Feld mit diesem Namen. Bitte wählen Sie einen anderen." + +#: ../lib/modules/posixAccount.inc:126 +msgid "This gecos value is invalid!" +msgstr "Dieser Gecos-Wert ist ungültig!" + +#: ../lib/modules/ipHost.inc:70 +msgid "This is a comma separated list of IP addresses." +msgstr "Dies ist eine Liste von IP-Adressen, getrennt durch Kommata." + +#: ../lib/modules/ieee802device.inc:73 +msgid "This is a comma separated list of MAC addresses." +msgstr "Dies ist eine Liste von MAC-Adressen, getrennt durch Kommata." + +#: ../lib/modules/kolabUser.inc:137 ../lib/modules/kolabSharedFolder.inc:143 +msgid "This is a comma separated list of delegates." +msgstr "Dies ist eine Liste von Vollmachten, getrennt durch Kommata." + +#: ../lib/modules/kolabUser.inc:145 ../lib/modules/kolabSharedFolder.inc:151 +msgid "This is a comma separated list of eMail aliases." +msgstr "Dies ist eine Liste von EMail-Aliasen, getrennt durch Kommata." + +#: ../lib/modules/kolabUser.inc:129 +msgid "This is a comma separated list of invitation policies." +msgstr "Dies ist eine Liste von Einladungsregeln, getrennt durch Kommata." + +#: ../lib/modules/nisMailAlias.inc:90 +msgid "This is a comma separated list of recipients." +msgstr "Dies ist eine Liste von Empfängern, getrennt durch Kommata." + +#: ../lib/modules/inetLocalMailRecipient.inc:77 +msgid "This is a comma separated list of the users public email addresses." +msgstr "" +"Dies ist eine Liste von öffentlichen Email-Adressen des Benutzers, getrennt " +"durch Kommata." + +#: ../help/help.inc:153 +msgid "" +"This is a list of IP addresses from hosts who may access LAM. You can use \"*" +"\" as wildcard (e.g. 192.168.0.*)." +msgstr "" +"Dies ist eine Liste von IP-Adressen von Hosts, die LAM aufrufen dürfen. Sie " +"können den \"*\" als Platzhalter verwenden (z.B. 192.168.0.*)." + +#: ../lib/modules/selfRegistration.inc:79 +msgid "" +"This is a list of additional attributes that the user can enter. Please note " +"that user name, password and email address are mandatory anyway and need not " +"be specified." +msgstr "" +"Dies ist eine Liste zusätzlicher Attribute, die der Benutzer eingeben kann. " +"Bitte beachten Sie, dass Benutzername, Passwort und email-Adresse immer " +"Pflicht sind und nicht angegeben werden müssen." + +#: ../lib/modules/organizationalRole.inc:94 +#: ../lib/modules/windowsGroup.inc:131 ../lib/modules/groupOfNames.inc:102 +msgid "This is a list of members of this group." +msgstr "Dies ist eine Liste von Mitgliedern dieser Gruppe." + +#: ../lib/modules/organizationalRole.inc:98 +#: ../lib/modules/windowsGroup.inc:135 ../lib/modules/groupOfNames.inc:106 +msgid "" +"This is a list of members of this group. Multiple members are separated by " +"semicolons." +msgstr "" +"Dies ist eine Liste von Mitgliedern dieser Gruppe. Mehrere Einträge werden " +"durch Strichpunkte getrennt." + +#: ../lib/modules/eduPerson.inc:102 +msgid "This is a list of nick names for this user." +msgstr "Dies ist eine Liste von Spitznamen des Benutzers." + +#: ../lib/modules/selfRegistration.inc:75 +msgid "" +"This is a list of object classes that are used to build the new user " +"accounts. Please enter one object class in each line." +msgstr "" +"Dies ist eine Liste von Objektklassen die verwendet werden um den neuen " +"Benutzer zu erstellen. Bitte geben Sie pro Zeile eine Objektklasse ein." + +#: ../help/help.inc:115 +msgid "" +"This is a list of the servers where the lamdaemon scripts are stored. LDAP " +"Account Manager will make a SSH connection to the servers with the user name " +"and password provided at login. Multiple servers are separated by " +"semicolons. You can append a descriptive name after a colon." +msgstr "" +"Das ist eine Liste von Servern auf denen das lamdaemon-Script liegt. LDAP " +"Account Manager wird eine SSH-Verbindung zu diesen Servern aufbauen, dabei " +"werden Benutzername und Passwort vom Login verwendet. Mehrere Server werden " +"durch Strichpunkt getrennt. Sie können eine Beschreibung nach einem " +"Doppelpunkt angeben." + +#: ../help/help.inc:93 +msgid "" +"This is a list of valid DN entries of all users that are allowed to login to " +"LDAP Account Manager. Please enter one DN per line." +msgstr "" +"Das ist eine Liste von DN-Einträgen aller Benutzer, die sich bei LDAP " +"Account Manager anmelden dürfen. Bitte geben Sie pro Zeile einen DN an." + +#: ../templates/3rdParty/pla/lib/PageRender.php:881 +msgid "This is a structural ObjectClass and cannot be removed." +msgstr "" +"Dies ist eine strukturelle Objektklasse und kann nicht entfernt werden." + +#: ../lib/modules/nisObject.inc:74 ../lib/modules/automount.inc:73 +#: ../lib/modules/oracleService.inc:70 +msgid "This is an optional description for this entry." +msgstr "Hier können Sie eine optionale Beschreibung für den Eintrag angeben." + +#: ../help/help.inc:223 +msgid "" +"This is needed to find the LDAP DNs of your user accounts. E.g. if you use " +"\"uid\" and your user inputs \"miller\" then LAM will search for an account " +"with uid=miller." +msgstr "" +"Dieses Attribut wird zur Suche nach den Benutzerkonten gesucht. Wenn ein " +"Benutzer z.B. \"mueller\" angibt und Sie \"uid\" verwenden, dann wird nach " +"einem Konto mit uid=mueller gesucht." + +#: ../lib/modules/zarafaDynamicGroup.inc:199 ../lib/modules/ipHost.inc:117 +#: ../lib/modules/posixGroup.inc:608 ../lib/modules/device.inc:142 +#: ../lib/modules/eduPerson.inc:246 ../lib/modules/eduPerson.inc:248 +#: ../lib/modules/zarafaAddressList.inc:170 +#: ../lib/modules/posixAccount.inc:131 ../lib/modules/inetOrgPerson.inc:100 +#: ../lib/modules/aliasEntry.inc:86 ../lib/modules/qmailGroup.inc:433 +#: ../lib/modules/qmailGroup.inc:434 ../lib/modules/qmailGroup.inc:435 +msgid "This is not a valid DN!" +msgstr "Das ist keine korrekte DN!" + +#: ../lib/modules/sambaSamAccount.inc:109 +msgid "This is not a valid RID number!" +msgstr "Das ist keine korrekte RID-Nummer!" + +#: ../lib/modules/sambaGroupMapping.inc:604 +msgid "This is not a valid Samba 3 group type!" +msgstr "Das ist kein korrekter Samba 3 Gruppentyp!" + +#: ../lib/modules/eduPerson.inc:250 +msgid "This is not a valid list of DNs!" +msgstr "Das ist keine korrekte Liste von DNs!" + +#: ../lib/modules/qmailGroup.inc:436 ../lib/modules/qmailGroup.inc:437 +msgid "This is not a valid option." +msgstr "Das ist keine korrekte Auswahl." + +#: ../lib/modules/inetLocalMailRecipient.inc:73 +msgid "This is one of the users public email addresses." +msgstr "Das ist eine der öffentlichen Email-Adressen des Benutzers." + +#: ../help/help.inc:84 +msgid "" +"This is only needed for TLS/SSL connections. By default, LAM will use the " +"certificate authorities installed on your system. If you have a private CA " +"in your company you can upload your CA certificates here and override the " +"system certificates." +msgstr "" +"Dies wird nur für TLS/SSL-Verbindungen benötigt. Standardmäßig verwendet LAM " +"die auf dem System installierten CA-Zertifikate. Wenn Sie eine private CA in " +"Ihrer Firma betreiben dann können Sie Ihre CA-Zertifikate hier hochladen. " +"Damit überschreiben Sie die Systemzertifikate." + +#: ../lib/modules/asteriskAccount.inc:104 +msgid "" +"This is the ID of the user in the Asterisk database. It may contain digits " +"and letters (e.g. user1 or 200134)." +msgstr "" +"Dies ist die Asterisk Benutzer-ID. Sie kann Zahlen und Buchstaben beinhalten " +"(z.B. benutzer1 oder 200134)." + +#: ../lib/modules/freeRadius.inc:85 +msgid "This is the IP address for the user (e.g. 123.123.123.123)." +msgstr "Dies ist die IP-Adresse für den Benutzer (z.B. 123.123.123.123)." + +#: ../lib/modules/ipHost.inc:66 +msgid "" +"This is the IP address of the network card of the device (e.g. " +"123.123.123.123)." +msgstr "" +"Dies ist die IP-Adresse der Netzwerkkarte im Gerät (z.B. 123.123.123.123)." + +#: ../lib/modules/ipHost.inc:78 +msgid "This is the LDAP DN of the host's manager." +msgstr "Das ist der LDAP-DN des Managers dieses Hosts." + +#: ../lib/modules/inetOrgPerson.inc:671 ../lib/modules/inetOrgPerson.inc:675 +msgid "" +"This is the LDAP DN of the user's manager. Use this property to represent " +"hierarchies in your company." +msgstr "" +"Bitte tragen Sie hier die DN des Vorgestzten ein. Mit diesem Attribut können " +"Sie Hierarchien in Ihrer Firma abbilden." + +#: ../lib/modules/customFields.inc:117 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an activated " +"state. The value is case-insensitive." +msgstr "" +"Geben Sie bitte den Wert des LDAP-Attributes ein, der die Checkbox " +"aktiviert. Der Wert ist unabhängig von Groß- und Kleinschreibung." + +#: ../lib/modules/customFields.inc:121 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an deactivated " +"state. The value is case-insensitive." +msgstr "" +"Geben Sie bitte den Wert des LDAP-Attributes ein, der die Checkbox " +"deaktiviert. Der Wert ist unabhängig von Groß- und Kleinschreibung." + +#: ../lib/modules/ieee802device.inc:69 +msgid "" +"This is the MAC address of the network card of the device (e.g. 00:01:02:DE:" +"EF:18)." +msgstr "" +"Dies ist die MAC-Adresse der Netzwerkkarte im Gerät (z.B. 00:01:02:DE:EF:18)." + +#: ../lib/modules/sambaSamAccount.inc:325 +msgid "This is the SID of the user's primary Windows group." +msgstr "Das ist die SID der primären Gruppe des Benutzers." + +#: ../help/help.inc:102 +msgid "" +"This is the absolute path to an external script for setting quotas and " +"creating home directories." +msgstr "" +"Das ist der absolute Pfad zu einem externen Script, das Quotas und " +"Heimatverzeichnisse verwaltet." + +#: ../lib/modules/mitKerberos.inc:157 ../lib/modules/heimdalKerberos.inc:125 +msgid "This is the account's Kerberos password." +msgstr "Das ist das Kerberos-Passwort für den Account." + +#: ../lib/modules/sambaSamAccount.inc:263 +msgid "This is the account's Windows password." +msgstr "Das ist das Windows-Passwort für den Account." + +#: ../lib/modules/sambaSamAccount.inc:260 ../lib/modules/windowsUser.inc:124 +msgid "This is the account's full name on Windows systems." +msgstr "Das ist der Name, der auf Windows-Systemen angezeigt wird." + +#: ../lib/modules/ppolicyUser.inc:56 +msgid "This is the active password policy for this account." +msgstr "Dies ist die aktuelle Passwortrichtlinie dieses Accounts." + +#: ../lib/modules/passwordSelfReset.inc:85 +msgid "" +"This is the answer to the security question. It allows users to reset their " +"password." +msgstr "" +"Dies ist die Antwort auf die Sicherheitsfrage. Sie erlaubt Benutzern ihr " +"Passwort zurückzusetzen." + +#: ../lib/modules/mitKerberos.inc:145 +msgid "This is the date of the user's last login." +msgstr "Dies ist der Zeitpunkt der letzten Anmeldung." + +#: ../lib/modules/mitKerberos.inc:125 ../lib/modules/heimdalKerberos.inc:103 +msgid "This is the date when the account will expire." +msgstr "Dies ist das Ablaufdatum des Kontos." + +#: ../lib/modules/sambaSamAccount.inc:347 ../lib/modules/shadowAccount.inc:194 +msgid "This is the date when the account will expire. Format: DD-MM-YYYY" +msgstr "Account-Ablaufdatum im Format: TT-MM-JJJJ" + +#: ../lib/modules/mitKerberos.inc:141 ../lib/modules/sambaSamAccount.inc:398 +msgid "This is the date when the user changed his password." +msgstr "" +"Dies ist der Zeitpunkt, an dem der Benutzer sein Passwort zuletzt geändert " +"hat." + +#: ../lib/modules/shadowAccount.inc:202 +msgid "" +"This is the date when the user changed his password. If you specify a " +"maximum password age then you can force a password change here." +msgstr "" +"Dies ist das Datum der letzten Passwortänderung. Wenn Sie ein maximales " +"Passwortalter angegeben haben dann können Sie hier eine Passwortänderung " +"erzwingen." + +#: ../lib/modules/sambaGroupMapping.inc:147 +msgid "This is the group name which will be shown in Windows." +msgstr "Das ist der Gruppenname, der in Windows angezeigt wird." + +#: ../lib/modules/windowsHost.inc:83 +msgid "This is the host's location (e.g. Munich, server room 3)." +msgstr "Das ist der Standort des Servers (z.B. München, Serverraum 3)." + +#: ../help/help.inc:187 +msgid "" +"This is the identifier for the relative DN value. It must be one of the " +"given allowed LDAP attributes (e.g. user accounts usually use \"uid\" while " +"groups use \"cn\")." +msgstr "" +"Das ist der Bezeichner für den relativen DN-Wert. Er muss eines der " +"erlaubten LDAP-Attribute sein (z.B. verwenden Benutzer-Accounts gewöhnlich " +"\"uid\" und Gruppen \"cn\")." + +#: ../lib/modules/selfRegistration.inc:99 +msgid "" +"This is the identifier for the relative DN value. LAM will use \"uid\" by " +"default." +msgstr "" +"Das ist der Bezeichner für den relativen DN-Wert. LAM nimmt standardmäßig " +"\"uid\"." + +#: ../lib/modules/passwordSelfReset.inc:101 +msgid "" +"This is the label for the link to the password self reset. If empty \"Forgot " +"password?\" will be used." +msgstr "" +"Dies ist der Text für den Link zur Passwortrücksetzung. Falls leer wird " +"\"Passwort vergessen?\" verwendet." + +#: ../lib/modules/selfRegistration.inc:58 +msgid "" +"This is the label for the link to the self registration. If empty \"Register " +"new account\" will be used." +msgstr "" +"Dies ist der Text für den Link zur Benutzerregistrierung. Falls leer wird " +"\"Neuen Benutzer registrieren\" verwendet." + +#: ../help/help.inc:88 +msgid "" +"This is the list of attributes to show in the account list. The entries can " +"either be predefined values, \"#attribute\", or individual ones, \"attribute:" +"description\". Several entries are separated by semicolons." +msgstr "" +"Das ist eine Liste von Attributen, die in den Account-Listen angezeigt wird. " +"Die Einträge können entweder vordefinierte Werte \"#Wert\" oder eigne Werte " +"\"Wert:Beschreibung\" sein. Mehrere Werte werden durch Strichpunkte getrennt." + +#: ../lib/modules/posixAccount.inc:494 +msgid "This is the list of valid login shells." +msgstr "Dies ist eine Liste von gültigen Login-Shells." + +#: ../lib/modules/asteriskAccount.inc:108 +msgid "" +"This is the machine id (e.g. IP address or host name) from which the user " +"can call/receive calls." +msgstr "" +"Dies ist der PC (z.B. IP-Adresse oder Hostname) von dem der Benutzer Anrufe " +"empfängt/tätigt." + +#: ../lib/modules/inetLocalMailRecipient.inc:81 +msgid "This is the mail server for the user." +msgstr "Dies ist der Mailserver des Benutzers." + +#: ../lib/modules/qmailUser.inc:220 +msgid "This is the mailbox size limit in bytes." +msgstr "Dies ist das Größenlimit der Mailbox in Bytes." + +#: ../lib/modules/passwordSelfReset.inc:93 +msgid "This is the minimum length for answers to the security question." +msgstr "" +"Hiermit legen Sie die Mindestlänge für Antworten auf die Sicherheitsfrage " +"fest." + +#: ../lib/modules/nisnetgroup.inc:84 ../lib/modules/organizationalRole.inc:86 +#: ../lib/modules/groupOfNames.inc:86 +msgid "This is the name of this group." +msgstr "Das ist der Name dieser Gruppe." + +#: ../lib/modules/posixAccount.inc:561 +msgid "" +"This is the natural name of the host. If empty, the host name will be used." +msgstr "" +"Dies ist der übliche Name des Hosts, falls leer wird der Hostname verwendet." + +#: ../lib/modules/pykotaUser.inc:109 +msgid "This is the natural name of the user." +msgstr "Dies ist der natürliche Name des Benutzers." + +#: ../lib/modules/inetOrgPerson.inc:763 +msgid "" +"This is the natural name of the user. If empty, the first and last name is " +"used." +msgstr "" +"Dies ist der übliche Name des Benutzers, falls leer wird Vor- und Nachname " +"verwendet." + +#: ../lib/modules/posixAccount.inc:539 ../lib/modules/windowsUser.inc:103 +msgid "" +"This is the natural name of the user. If empty, the first and last name or " +"user name is used." +msgstr "" +"Dies ist der übliche Name des Benutzers, falls leer wird Vor- und Nachname " +"oder der Benutzername verwendet." + +#: ../lib/modules/sambaDomain.inc:122 +msgid "" +"This is the number of bad logon attempts (0 - 999) before the account is " +"deactivated. 0 means unlimited attempts." +msgstr "" +"Dies ist die Anzahl von fehlerhaften Anmeldeversuchen (0 - 999) bis zur " +"Sperrung eines Accounts. 0 bedeutet unbegrenzt." + +#: ../lib/modules/sambaDomain.inc:106 +msgid "" +"This is the number of passwords which are saved to prevent that users reuse " +"old passwords." +msgstr "" +"Bestimmt die Anzahl alter Passwörter, die gespeichert werden. Damit wird " +"verhindert, dass Benutzer alte Passwörter erneut verwenden." + +#: ../help/help.inc:98 +msgid "" +"This is the number of rows to show in the account list. If more entries are " +"found the list will be split into several pages." +msgstr "" +"Das ist die Anzahl von Zeilen, die in den Accountlisten angezeigt wird. Wenn " +"mehr Einträge gefunden werden, wird die Liste auf mehrere Seiten aufgeteilt." + +#: ../lib/modules/sambaSamAccount.inc:356 +msgid "This is the path to the user's home directory." +msgstr "Das ist der Pfad zum Heimatverzeichnis des Benutzers." + +#: ../lib/modules/sambaGroupMapping.inc:155 +msgid "" +"This is the relative ID (similar to UID on Unix) for Windows accounts. If " +"you leave this empty LAM will calculate the RID from the UID. This can be " +"either a number or the name of a special group:" +msgstr "" +"Das ist die die relative ID-Nummer (ähnlich wie UID bei Unix) für Windows-" +"Accounts. Wenn Sie das Feld leer lassen wird LAM die RID aus der UID " +"berechnen. Mögliche Werte sind eine Zahl oder eine spezielle Gruppe:" + +#: ../lib/modules/sambaSamAccount.inc:331 +msgid "" +"This is the relative ID number for your Windows account. You can either " +"enter a number or one of these special accounts: " +msgstr "" +"Das ist die relative ID-Nummer für den Windows-Account. Sie können entweder " +"eine Nummer angeben oder den Namen eines dieser Spezialaccounts: " + +#: ../lib/modules/sambaSamAccount.inc:335 +msgid "" +"This is the relative ID number for your host account. If you leave this " +"empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" +"Das ist die relative ID-Nummer für den Host-Account. Wenn Sie das Feld leer " +"lassen wird LAM diesen Wert einsetzen: uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../lib/modules/imapAccess.inc:113 +msgid "" +"This is the separator for the mailbox path. Usually, this is \".\" but e.g. " +"Cyrus with \"unixhierarchysep\" will require \"/\"." +msgstr "" +"Dies ist das Trennzeichen für den Pfad der Mailbox. Normalerweise ist dies " +"\".\", Cyrus mit \"unixhierarchysep\" benötigt aber \"/\"." + +#: ../help/help.inc:59 +msgid "" +"This is the server address of your LDAP server. Use ldap:// for unencrypted " +"LDAP connections or TLS encrypted connections. LDAP+SSL (LDAPS) encrypted " +"connections are specified with ldaps://. The port value is optional." +msgstr "" +"Das ist die Serveradresse ihres LDAP-Servers. Verwenden Sie ldap:// für " +"unverschlüsselte oder TLS-verschlüsselte LDAP-Verbindungen. LDAP+SSL (LDAPS) " +"verschlüsselte Verbindungen werden mit ldaps:// angegeben. Die Portnummer " +"ist optional." + +#: ../help/help.inc:78 +msgid "This is the suffix for the LDAP tree viewer." +msgstr "Dies ist der Suffix für die LDAP-Baumansicht." + +#: ../help/help.inc:72 +msgid "" +"This is the suffix of the LDAP tree from where to search for LDAP entries. " +"Only entries in this subtree will be displayed in the account list. When " +"creating a new accont this will be the DN where it is saved." +msgstr "" +"Das ist der Suffix im LDAP-Baum in dem nach LDAP-Einträgen gesucht wird. Nur " +"Einträge in diesen Teilbäumen werden in den Listen angezeigt. Neue Accounts " +"werden werden unter diesem DN gespeichert." + +#: ../lib/modules/inetLocalMailRecipient.inc:69 +msgid "This is the target email address for the user's mails." +msgstr "Dies ist die Zieladresse für alle Mails des Benutzers." + +#: ../lib/modules/customScripts.inc:53 ../lib/modules/uidObject.inc:60 +#: ../lib/modules/aliasEntry.inc:62 +msgid "This is the target of this alias entry." +msgstr "Das ist der Zieleintrag dieses Aliases." + +#: ../lib/modules/sambaDomain.inc:134 +msgid "" +"This is the time (in minutes) for which the user may not log in after the " +"account was locked. -1 means forever." +msgstr "" +"Zeit in Minuten für die der Benutzer sich nicht anmelden darf, nachdem sein " +"Konto gesperrt wurde. -1 bedeutet dauerhaft gesperrt." + +#: ../help/help.inc:147 +msgid "" +"This is the time (in minutes) of inactivity after which a user is " +"automatically logged off." +msgstr "" +"Nach dieser Zeit von Inaktivität (in Minuten) wird der Benutzer automatisch " +"abgemeldet." + +#: ../help/help.inc:108 +msgid "" +"This is the time in minutes which LAM caches its LDAP searches. Shorter " +"times will stress LDAP more but decrease the possibility that changes are " +"not identified." +msgstr "" +"Dies ist die Zeit in Minuten die LAM LDAP-Suchen zwischenspeichert. Kürzere " +"Zeiten belasten den LDAP-Server mehr, verringern aber die Gefahr, dass " +"Änderungen nicht erkannt werden." + +#: ../lib/modules/sambaSamAccount.inc:350 +msgid "" +"This is the time zone of your Samba server. LAM needs this information to " +"display the logon hours correctly." +msgstr "" +"Hier können Sie die Zeitzone Ihres Samba-Servers einstellen. LAM benötigt " +"die Information zur korrekten Darstellung der Anmeldezeiten." + +#: ../lib/modules/sambaSamAccount.inc:322 +msgid "This is the user's primary Windows group." +msgstr "Das ist die primäre Windows-Gruppe des Benutzers." + +#: ../lib/modules/puppetClient.inc:89 +msgid "" +"This is this node's parent. All classes and variables are inherited from " +"this node." +msgstr "" +"Das ist der Elternknoten für diesen Eintrag. Alle seine Klassen und " +"Variablen werden an diesen Knoten vererbt." + +#: ../lib/modules/asteriskAccount.inc:156 +msgid "" +"This is typically used to allow incoming calls (e.g. from FWD) while having " +"a type=friend entry defined with username and password." +msgstr "" +"Dies wird typischerweise verwendet um eingehende Anrufe zu erlauben (z.B. " +"von FWD) wenn ein Typ=friend Eintrag mit Benutzer und Passwort definiert ist." + +#: ../lib/modules/zarafaUser.inc:117 +msgid "This is used to mark this account as resource." +msgstr "Damit wird der Account als Ressource markiert." + +#: ../lib/modules/posixAccount.inc:127 +msgid "This login shell is invalid!" +msgstr "Login-Shell ist ungültig!" + +#: ../lib/modules/inetLocalMailRecipient.inc:232 +msgid "This mail address is already in use:" +msgstr "Diese Mailadresse wird bereits verwendet:" + +#: ../lib/modules/imapAccess.inc:107 +msgid "This mailbox will be created/deleted." +msgstr "Dieses Postfach wird erstellt/gelöscht." + +#: ../lib/modules.inc:1245 +msgid "This may overwrite existing values with profile data. Continue?" +msgstr "" +"Damit überschreiben Sie evtl. existierende Daten mit denen aus dem Profil. " +"Fortfahren?" + +#: ../lib/modules/customFields.inc:113 +msgid "" +"This message is shown when the field value does not match the validation " +"expression." +msgstr "" +"Diese Meldung wird angezeigt wenn der Wert nicht zum Validierungsausdruck " +"passt." + +#: ../templates/schema/schema.php:350 +msgid "This object class is obsolete." +msgstr "Diese Objektklasse ist veraltet." + +#: ../lib/modules/imapAccess.inc:84 +msgid "" +"This option allows you to disable the certificate check of your IMAP server " +"certificate. Disabling the certificate check is not recommended." +msgstr "" +"Mit dieser Option können Sie die Prüfung des IMAP-Serverzertifikates " +"deaktivieren. Die Deaktivierung wird nicht empfohlen." + +#: ../lib/modules/sambaSamAccount.inc:341 +msgid "This option defines the allowed logon hours for this account." +msgstr "Diese Einstellung dient zur Zuweisung der erlaubten Anmeldezeiten." + +#: ../lib/modules/sambaSamAccount.inc:344 +msgid "" +"This option defines the allowed logon hours for this account. The format is " +"the same as for the LDAP attribute. The 24*7 hours are represented as 168 " +"bit which are saved as 21 hex (21*8 = 168) values. The first bit represents " +"Sunday 0:00 - 0:59 in GMT." +msgstr "" +"Diese Option definiert die erlaubten Anmeldezeiten für diesen Account. Das " +"Format ist identisch mit dem des LDAP-Attributes. Die 24*7 Stunden werden " +"als 168 Bit dargestellt, die als 21 Hex-Werte (21*8 = 168) gespeichert " +"werden. Das erste Bit stellt den Zeitraum 00:00 - 00:59 Uhr GMT am Sonntag " +"dar." + +#: ../lib/modules/asteriskExtension.inc:192 +msgid "This pair of extension name and priority already exists." +msgstr "Dieses Paar von Erweiterungsname und Priorität existiert bereits." + +#: ../lib/modules/sambaSamAccount.inc:365 +msgid "This program is run after the login." +msgstr "Dieses Programm wird nach der Anmeldung gestartet." + +#: ../lib/modules/sambaSamAccount.inc:389 +msgid "This specifies the reconnect policy." +msgstr "Hier spezifizieren Sie die Wiederherstellungsrichtlinie." + +#: ../lib/modules/zarafaDynamicGroup.inc:96 +#: ../lib/modules/zarafaContact.inc:107 ../lib/modules/zarafaGroup.inc:113 +#: ../lib/modules/zarafaAddressList.inc:84 ../lib/modules/zarafaUser.inc:172 +#: ../lib/modules/zarafaServer.inc:93 +msgid "" +"This specifies the used Zarafa LDAP schema. Select LDAP for e.g. OpenLDAP, " +"Apache Directory, OpenDJ and other non-Windows based LDAP servers. If you " +"run Zarafa against Samba 4 or Active Directory please select Active " +"Directory." +msgstr "" +"Damit legen Sie das verwendete Zarafa LDAP-Schema fest. Wählen Sie LDAP für " +"z.B. OpenLDAP, Apache Directory, OpenDJ und andere nicht-Windows basierte " +"LDAP-Server. Wenn Sie Zarafa gegen Samba 4 oder Active Directory " +"authentifizieren wählen Sie bitte Active Directory." + +#: ../lib/modules/sambaSamAccount.inc:386 +msgid "This specifies what to do when the client connection is broken." +msgstr "" +"Hier spezifizieren Sie, was passiert wenn die Client-Verbindung getrennt " +"wird." + +#: ../help/help.inc:227 +msgid "" +"This text is displayed on top of the self service login page. You can also " +"input HTML code here." +msgstr "" +"Dieser Text wird oben auf der SelfService-Loginseite angezeigt. Sie können " +"auch HTML-Code eingeben." + +#: ../help/help.inc:229 +msgid "" +"This text is displayed on top of the self service main page. You can also " +"input HTML code here." +msgstr "" +"Dieser Text wird oben auf der SelfService-Hauptseite angezeigt. Sie können " +"auch HTML-Code eingeben." + +#: ../help/help.inc:239 +msgid "" +"This text is placed as label for the password field on the login page. LAM " +"will use \"Password\" if you do not enter any text." +msgstr "" +"Dieser Text wird als Beschreibung für das Passwortfeld auf der Loginseite " +"angezeigt. LAM verwendet \"Passwort\" wenn Sie nichts eingeben." + +#: ../help/help.inc:225 +msgid "" +"This text should shortly describe your selected LDAP search attribute (e.g. " +"email or user name)." +msgstr "" +"Dieser Text sollte kurz Ihr gewähltes LDAP-Suchattribut beschreiben (z.B. " +"EMail oder Benutzername)." + +#: ../lib/modules/selfRegistration.inc:107 +#: ../lib/modules/passwordSelfReset.inc:157 +msgid "This text will be printed on top of the page." +msgstr "Dieser Text wird am Anfang der Seite ausgegeben." + +#: ../lib/modules/qmailUser.inc:240 +msgid "" +"This text will be sent as reply to all incoming mails if the delivery mode " +"is set to autoreply." +msgstr "" +"Bei Liefermodus \"Automatische Antwort\" wird dieser Text als Antwort auf " +"alle eingehenden Nachrichten gesendet." + +#: ../lib/tools/pdfEdit.inc:53 +msgid "This tool allows you to customize the PDF pages." +msgstr "Dieses Werkzeug erlaubt die Anpassung der PDF-Seiten." + +#: ../templates/lists/changePassword.php:46 +#: ../templates/lists/changePassword.php:248 +msgid "This user is not supported or was not found." +msgstr "Dieser Benutzer wird nicht unterstützt oder wurde nicht gefunden." + +#: ../lib/modules/windowsUser.inc:116 +msgid "This user name is only used for old Windows versions (e.g. NT4, W98)." +msgstr "" +"Dieser Benutzername wird nur in alten Windows-Versionen (z.B. NT4, W98) " +"verwendet." + +#: ../templates/lists/userlink.php:61 +msgid "This user was not found!" +msgstr "Dieser Benutzer wurde nicht gefunden!" + +#: ../lib/modules/zarafaUser.inc:414 +msgid "This value can only be \"Room\" or \"Equipment\"." +msgstr "Dieser Wert darf nur \"Room\" oder \"Equipment\" sein." + +#: ../lib/modules/zarafaDynamicGroup.inc:204 +#: ../lib/modules/zarafaDynamicGroup.inc:205 +#: ../lib/modules/zarafaContact.inc:189 ../lib/modules/zarafaContact.inc:190 +#: ../lib/modules/zarafaGroup.inc:219 ../lib/modules/zarafaGroup.inc:220 +#: ../lib/modules/zarafaGroup.inc:221 ../lib/modules/zarafaAddressList.inc:171 +#: ../lib/modules/zarafaAddressList.inc:172 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 ../lib/modules/posixAccount.inc:128 +#: ../lib/modules/zarafaUser.inc:421 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:424 ../lib/modules/zarafaUser.inc:425 +#: ../lib/modules/zarafaUser.inc:426 ../lib/modules/zarafaUser.inc:427 +#: ../lib/modules/ppolicyUser.inc:97 ../lib/modules/inetOrgPerson.inc:108 +#: ../lib/modules/zarafaServer.inc:179 +msgid "This value can only be \"true\" or \"false\"." +msgstr "Dieser Wert darf nur \"true\" oder \"false\" sein." + +#: ../lib/modules/zarafaUser.inc:422 +msgid "This value can only be \"true\", \"false\" or \"system\"." +msgstr "Dieser Wert darf nur \"true\", \"false\" oder \"system\" sein." + +#: ../lib/modules/posixGroup.inc:606 +msgid "This value must be a list of user names separated by semicolons." +msgstr "" +"Dieser Wert muss eine Liste von Benutzernamen, getrennt duch Kommata, sein." + +#: ../help/help.inc:264 +msgid "This will create a new organisational unit under the selected one." +msgstr "Dies erzeugt eine neue Organisational Unit unterhalb der markierten." + +#: ../lib/modules/posixAccount.inc:482 +msgid "This will create the user's home directory on the specified server." +msgstr "" +"Wenn Sie dieses Kästchen aktivieren, dann wird das Heimatverzeichnis des " +"Benutzers auf dem angegebenen Server erstellt." + +#: ../help/help.inc:266 +msgid "" +"This will delete the selected organisational unit. The OU has to be empty." +msgstr "Dies löscht die markierte Organisational Unit. Die OU muss leer sein." + +#: ../help/help.inc:135 +msgid "This will delete the selected profile." +msgstr "Dies löscht das markierte Profil." + +#: ../lib/modules/kolabGroup.inc:118 ../lib/modules/puppetClient.inc:109 +#: ../lib/modules/qmailUser.inc:264 ../lib/modules/zarafaContact.inc:88 +#: ../lib/modules/posixGroup.inc:538 ../lib/modules/eduPerson.inc:151 +#: ../lib/modules/pykotaGroup.inc:130 ../lib/modules/sambaSamAccount.inc:404 +#: ../lib/modules/posixAccount.inc:433 ../lib/modules/zarafaUser.inc:137 +#: ../lib/modules/pykotaUser.inc:161 ../lib/modules/shadowAccount.inc:198 +#: ../lib/modules/qmailGroup.inc:233 +#: ../lib/modules/authorizedServiceObject.inc:90 +#: ../lib/modules/passwordSelfReset.inc:153 ../lib/modules/hostObject.inc:84 +msgid "This will enable the extension automatically if this profile is loaded." +msgstr "" +"Damit können Sie die Erweiterung automatisch beim Laden des Profils " +"aktivieren." + +#: ../lib/modules/customScripts.inc:93 +msgid "" +"This will hide the custom scripts tab when you edit an account. Manual " +"actions are not possible when the tab is not visible." +msgstr "" +"Damit verhindern Sie die Anzeige des Tabs \"Eigene Felder\" beim Editieren " +"eines Eintrags. Manuelle Aktionen sind in diesem Fall nicht möglich." + +#: ../lib/modules/sambaSamAccount.inc:266 +msgid "This will reset the host's password to a default value." +msgstr "Dies setzt das Maschinenpasswort auf den Standardwert zurück." + +#: ../templates/lists/changePassword.php:320 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail." +msgstr "" +"Hiermit setzen Sie ein Zufallspasswort, das auf dem Bildschirm angezeigt " +"wird oder senden es dem Benutzer per mail." + +#: ../help/help.inc:245 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail. Please edit your LAM server profile to setup the mail " +"settings." +msgstr "" +"Hiermit setzen Sie ein Zufallspasswort, das auf dem Bildschirm angezeigt " +"wird oder senden es dem Benutzer per mail. Bitte editieren Sie Ihr LAM " +"Serverprofil um die Maileinstellungen zu ändern." + +#: ../lib/modules/kolabGroup.inc:114 ../lib/modules/kolabUser.inc:179 +#: ../lib/modules/kolabSharedFolder.inc:167 +msgid "" +"This will set a special flag on the account which tells Kolabd to remove it. " +"Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes)." +msgstr "" +"Damit wird der Account für Kolabd als löschbar gekennzeichnet. Verwenden Sie " +"dies um Kolab-Accounts sauber zu löschen (löscht z.B. das Postfach)." + +#: ../lib/modules/qmailUser.inc:212 +msgid "" +"This will set the user's account status. You may disable the mail account " +"here." +msgstr "" +"Damit setzen Sie den Kontostatus des Benutzers. Sie können das Konto damit " +"deaktivieren." + +#: ../lib/modules/sambaSamAccount.inc:1380 +msgid "Thursday" +msgstr "Donnerstag" + +#: ../lib/modules/mitKerberos.inc:136 ../lib/modules/mitKerberos.inc:195 +#: ../lib/modules/mitKerberos.inc:230 ../lib/modules/mitKerberos.inc:254 +#: ../lib/modules/mitKerberos.inc:355 ../lib/modules/mitKerberos.inc:775 +#: ../lib/modules/heimdalKerberos.inc:110 +#: ../lib/modules/heimdalKerberos.inc:164 +#: ../lib/modules/heimdalKerberos.inc:199 +#: ../lib/modules/heimdalKerberos.inc:221 +#: ../lib/modules/heimdalKerberos.inc:302 +#: ../lib/modules/heimdalKerberos.inc:687 +msgid "Ticket lifetime" +msgstr "Ticketlaufzeit" + +#: ../lib/modules/mitKerberos.inc:293 ../lib/modules/mitKerberos.inc:294 +#: ../lib/modules/heimdalKerberos.inc:257 +#: ../lib/modules/heimdalKerberos.inc:258 +msgid "Ticket lifetime must be a number." +msgstr "Ticketlaufzeit muss eine Zahl sein." + +#: ../lib/modules/sambaSamAccount.inc:1402 +msgid "Time" +msgstr "Zeit" + +#: ../lib/modules/sambaSamAccount.inc:370 +msgid "Time limit" +msgstr "Zeitlimit" + +#: ../lib/modules/sambaSamAccount.inc:349 +#: ../lib/modules/sambaSamAccount.inc:580 +msgid "Time zone" +msgstr "Zeitzone" + +#: ../lib/modules/bindDLZ.inc:101 ../lib/modules/bindDLZ.inc:105 +#: ../lib/modules/bindDLZ.inc:110 ../lib/modules/bindDLZ.inc:115 +#: ../lib/modules/bindDLZ.inc:120 ../lib/modules/bindDLZ.inc:125 +#: ../lib/modules/bindDLZ.inc:130 ../lib/modules/bindDLZ.inc:261 +#: ../lib/modules/bindDLZ.inc:274 ../lib/modules/bindDLZ.inc:294 +#: ../lib/modules/bindDLZ.inc:307 ../lib/modules/bindDLZ.inc:338 +#: ../lib/modules/bindDLZ.inc:370 ../lib/modules/bindDLZ.inc:382 +#: ../lib/modules/bindDLZ.inc:409 ../lib/modules/bindDLZ.inc:430 +#: ../lib/modules/bindDLZ.inc:476 ../lib/modules/bindDLZ.inc:479 +#: ../lib/modules/bindDLZ.inc:481 ../lib/modules/bindDLZ.inc:483 +#: ../lib/modules/bindDLZ.inc:485 ../lib/modules/bindDLZ.inc:487 +#: ../lib/modules/bindDLZ.inc:489 ../lib/modules/bindDLZ.inc:491 +#: ../lib/modules/bindDLZ.inc:493 ../lib/modules/bindDLZ.inc:658 +#: ../lib/modules/bindDLZ.inc:761 ../lib/modules/bindDLZ.inc:840 +#: ../lib/modules/bindDLZ.inc:929 ../lib/modules/bindDLZ.inc:1041 +#: ../lib/modules/bindDLZ.inc:1173 ../lib/modules/bindDLZ.inc:1251 +#: ../lib/modules/bindDLZ.inc:1377 ../lib/modules/bindDLZ.inc:1480 +#: ../lib/modules/bindDLZ.inc:1500 ../lib/modules/bindDLZ.inc:1521 +#: ../lib/modules/bindDLZ.inc:1555 ../lib/modules/bindDLZ.inc:1580 +#: ../lib/modules/bindDLZ.inc:1610 +msgid "Timeout" +msgstr "Zeitlimit" + +#: ../lib/modules/bindDLZ.inc:437 +msgid "Timeouts" +msgstr "Zeitlimits" + +#: ../lib/modules/pykotaUser.inc:654 ../lib/modules/pykotaUser.inc:1003 +msgid "Title" +msgstr "Titel" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:45 +msgid "To" +msgstr "Mit" + +#: ../lib/modules/posixAccount.inc:531 +msgid "To disable login use /bin/false." +msgstr "Verwenden Sie /bin/false um den Login zu deaktivieren." + +#: ../lib/modules/sambaSamAccount.inc:574 +msgid "Tokyo, Seoul, Osaka, Yakutsk" +msgstr "Tokyo, Seoul, Osaka, Yakutsk" + +#: ../templates/config/confmain.php:406 +msgid "Tool settings" +msgstr "Werkzeugeinstellungen" + +#: ../templates/tools.php:63 ../templates/main_header.php:147 +msgid "Tools" +msgstr "Werkzeuge" + +#: ../templates/serverInfo.php:357 +msgid "Total" +msgstr "Insgesamt" + +#: ../templates/serverInfo.php:242 ../templates/serverInfo.php:247 +msgid "Total connections" +msgstr "Verbindungen insgesamt" + +#: ../templates/3rdParty/pla/lib/export_functions.php:202 +msgid "Total entries" +msgstr "Anzahl Einträge" + +#: ../lib/modules/pykotaUser.inc:141 +msgid "Total money paid by the user." +msgstr "Vom Benutzer bezahlter Gesamtbetrag." + +#: ../lib/modules/pykotaUser.inc:140 ../lib/modules/pykotaUser.inc:264 +#: ../lib/modules/pykotaUser.inc:586 ../lib/modules/pykotaUser.inc:901 +#: ../lib/modules/pykotaUser.inc:954 +msgid "Total paid" +msgstr "Gesamtbetrag" + +#: ../lib/modules/pykotaUser.inc:282 +msgid "Total paid (read-only)" +msgstr "Gesamtbetrag (nur lesen)" + +#: ../lib/types/user.inc:682 +msgid "Translate GID number to group name" +msgstr "GID-Nummer als Gruppenname darstellen" + +#: ../templates/config/confmain.php:247 ../help/help.inc:77 +msgid "Tree suffix" +msgstr "Baumansicht" + +#: ../templates/multiEdit.php:92 ../templates/main_header.php:178 +msgid "Tree view" +msgstr "Baumansicht" + +#: ../templates/config/confmain.php:567 +msgid "TreeSuffix is invalid!" +msgstr "BaumSuffix ist ungültig!" + +#: ../lib/modules/sambaSamAccount.inc:1380 +msgid "Tuesday" +msgstr "Dienstag" + +#: ../templates/multiEdit.php:118 ../templates/selfService/profManage.php:206 +#: ../templates/schema/schema.php:348 ../lib/modules/zarafaUser.inc:116 +#: ../lib/modules/zarafaUser.inc:238 ../lib/modules/zarafaUser.inc:361 +#: ../lib/modules/zarafaUser.inc:535 ../lib/modules/zarafaUser.inc:1251 +#: ../lib/modules/zarafaUser.inc:1797 ../lib/modules/kolabSharedFolder.inc:162 +#: ../lib/modules/kolabSharedFolder.inc:201 +#: ../lib/modules/kolabSharedFolder.inc:241 +#: ../lib/modules/kolabSharedFolder.inc:302 +#: ../lib/modules/kolabSharedFolder.inc:571 +#: ../lib/modules/customFields.inc:100 ../lib/modules/customFields.inc:1070 +#: ../lib/modules/customFields.inc:1702 +msgid "Type" +msgstr "Typ" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID" +msgstr "Benutzer ID" + +#: ../lib/modules/posixAccount.inc:210 ../lib/modules/posixAccount.inc:228 +#: ../lib/modules/posixAccount.inc:497 +msgid "UID generator" +msgstr "UID-Generator" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID has changed. Do you want to change home directory?" +msgstr "" +"UID-Nummer wurde geändert. Soll das Heimatverzeichnis angepasst werden?" + +#: ../lib/modules/posixAccount.inc:107 +msgid "" +"UID must be a number. It has to be inside the UID range which is defined in " +"your configuration profile." +msgstr "" +"UID muss eine Zahl sein. Sie muss sich innerhalb des Bereiches befinden der " +"in Ihrem Konfigurationsprofil festgelegt ist." + +#: ../lib/types/host.inc:95 ../lib/types/user.inc:92 +#: ../lib/modules/qmailUser.inc:112 ../lib/modules/qmailUser.inc:231 +#: ../lib/modules/qmailUser.inc:332 ../lib/modules/qmailUser.inc:418 +#: ../lib/modules/qmailUser.inc:570 ../lib/modules/qmailUser.inc:1142 +#: ../lib/modules/posixAccount.inc:108 ../lib/modules/posixAccount.inc:291 +#: ../lib/modules/posixAccount.inc:383 ../lib/modules/posixAccount.inc:412 +#: ../lib/modules/posixAccount.inc:449 ../lib/modules/posixAccount.inc:453 +#: ../lib/modules/posixAccount.inc:461 ../lib/modules/posixAccount.inc:1433 +#: ../lib/modules/posixAccount.inc:1857 +msgid "UID number" +msgstr "UID Nummer" + +#: ../lib/modules/posixAccount.inc:108 +#, php-format +msgid "" +"UID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -uid %s -exec chown %s {} \\;'" +msgstr "" +"Die UID-Nummer hat sich geändert. Sie müssen folgenden Befehl als root " +"ausführen um die existierenden Dateirechte zu ändern: 'find / -uid %s -exec " +"chown %s {} \\;'" + +#: ../lib/modules/qmailUser.inc:463 +msgid "UID number is already in use." +msgstr "UID wird bereits verwendet." + +#: ../lib/modules/posixAccount.inc:99 +msgid "UID ranges for Unix accounts" +msgstr "UID-Bereiche für Unix-Accounts" + +#: ../lib/modules/sambaSamAccount.inc:307 +msgid "" +"UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced " +"with user and group name." +msgstr "" +"UNC-Pfad (\\\\Server\\Freigabe) des Heimatverzeichnisses. $user und $group " +"werden durch Benutzer- und Gruppenname ersetzt." + +#: ../lib/modules/windowsUser.inc:248 +msgid "" +"UNC-path (\\\\server\\share\\) of home directory. If no home drive is set " +"then this directory must start with a drive letter (e.g. \"c:\\dir\\user\")." +msgstr "" +"UNC-Pfad (\\\\server\\freigabe\\) des Heimatverzeichnisses. Wenn kein " +"Heimatlaufwerk gesetzt ist dann muss das Verzeichnis mit einem " +"Laufwerksbuchstaben (z.B. \"c:\\verzeichnis\\benutzer\") beginnen." + +#: ../lib/modules/eduPerson.inc:119 ../lib/modules/eduPerson.inc:123 +msgid "" +"URI (either URN or URL) that indicates a set of rights to specific resources." +msgstr "" +"URI (entweder URN oder URL) die eine Menge an Rechten für bestimmte " +"Ressourcen definiert." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1883 +msgid "URL" +msgstr "URL" + +#: ../lib/modules/bindDLZ.inc:1705 ../lib/modules/bindDLZ.inc:1714 +#: ../lib/modules/bindDLZ.inc:1747 ../lib/modules/bindDLZ.inc:2339 +msgid "Unable to add DNS record." +msgstr "Kann den DNS-Eintrag nicht hinzufügen." + +#: ../lib/modules/imapAccess.inc:180 +msgid "Unable to change ACL on IMAP server for mailbox deletion." +msgstr "" +"Die ACLs für die Löschung des Postfaches konnten nicht geändert werden." + +#: ../lib/modules/mitKerberos.inc:1155 ../lib/modules/mitKerberos.inc:1159 +#: ../lib/modules/heimdalKerberos.inc:1024 +msgid "Unable to change Kerberos password." +msgstr "Konnte Kerberos-Passwort nicht ändern." + +#: ../lib/modules/windowsUser.inc:1855 ../lib/modules/windowsUser.inc:1881 +msgid "Unable to change password." +msgstr "Konnte Passwort nicht ändern." + +#: ../templates/selfService/selfServiceMain.php:338 +msgid "" +"Unable to change your account. Maybe you do not have enough rights to change " +"the settings." +msgstr "" +"Ihr Konto konnte nicht verändert werden. Vielleicht fehlen Ihnen die nötigen " +"Rechte zur Änderung?" + +#: ../templates/selfService/selfServiceMain.php:335 +msgid "" +"Unable to change your account. Your changes might violate the password " +"policy." +msgstr "" +"Ihr Konto konnte nicht verändert werden. Ihre Änderungen verletzen u.U. die " +"Passwortrichtlinie." + +#: ../templates/tests/lamdaemonTest.php:261 ../lib/lamdaemon.inc:76 +#: ../lib/lamdaemon.inc:81 +msgid "Unable to connect to remote server!" +msgstr "Kann keine Verbindung zum Server herstellen!" + +#: ../templates/massDoUpload.php:193 +msgid "Unable to create ZIP file for PDF export." +msgstr "Konnte ZIP-Datei für PDF-Export nicht erstellen." + +#: ../lib/modules/selfRegistration.inc:699 +#: ../lib/modules/selfRegistration.inc:703 +msgid "Unable to create account." +msgstr "Kann neuen Benutzer nicht erstellen." + +#: ../lib/modules/imapAccess.inc:182 +msgid "Unable to create mailbox on IMAP server." +msgstr "Das Postfach konnte nicht erstellt werden." + +#: ../templates/ou_edit.php:80 +msgid "Unable to create new OU!" +msgstr "Kann neue OU nicht erstellen!" + +#: ../lib/types/automountType.inc:270 +msgid "Unable to create new automount map." +msgstr "Kann neue Automount-Map nicht erstellen." + +#: ../templates/config/profmanage.php:82 +#: ../templates/selfService/profManage.php:59 +msgid "Unable to create new profile!" +msgstr "Kann das Profil nicht erstellen!" + +#: ../lib/types/bind.inc:215 +msgid "Unable to create new zone." +msgstr "Kann neue Zone nicht erstellen." + +#: ../lib/modules/bindDLZ.inc:1684 +#, php-format +msgid "Unable to delete DNS record \"%s\"." +msgstr "Konnte DNS-Eintrag \"%s\" nicht löschen." + +#: ../lib/modules/bindDLZ.inc:1693 ../lib/modules/bindDLZ.inc:1743 +msgid "Unable to delete DNS record." +msgstr "Konnte DNS-Eintrag nicht löschen." + +#: ../templates/ou_edit.php:97 +msgid "Unable to delete OU!" +msgstr "Kann OU nicht löschen!" + +#: ../templates/pdfedit/pdfmain.php:94 +msgid "Unable to delete PDF structure!" +msgstr "Kann die PDF-Struktur nicht löschen!" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:25 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:57 +msgid "Unable to delete entry, it does not exist" +msgstr "Konnte Eintrag nicht löschen. Er existiert nicht." + +#: ../lib/pdfstruct.inc:291 ../lib/pdfstruct.inc:303 +msgid "Unable to delete logo file." +msgstr "Konnte die Logodatei nicht löschen." + +#: ../lib/modules/imapAccess.inc:181 +msgid "Unable to delete mailbox from IMAP server." +msgstr "Das Postfach konnte nicht gelöscht werden." + +#: ../templates/config/profmanage.php:123 +#: ../templates/selfService/profManage.php:87 +#: ../templates/profedit/profilemain.php:108 ../lib/config.inc:154 +#: ../lib/config.inc:166 ../lib/config.inc:173 ../lib/config.inc:181 +msgid "Unable to delete profile!" +msgstr "Kann das Profil nicht löschen!" + +#: ../lib/modules/pykotaPrinter.inc:220 +#, php-format +msgid "Unable to find a printer with name \"%s\"." +msgstr "Konnte keinen Drucker namens \"%s\" finden." + +#: ../lib/modules/posixAccount.inc:2078 ../lib/modules/posixAccount.inc:2087 +#: ../lib/modules/posixAccount.inc:2353 ../lib/modules/nisnetgroup.inc:543 +#: ../lib/modules/groupOfNamesUser.inc:389 +msgid "Unable to find group in LDAP." +msgstr "Kann Gruppe nicht im LDAP-Baum finden." + +#: ../lib/modules/passwordSelfReset.inc:950 +msgid "Unable to find password security answer for this account." +msgstr "Konnte keine Sicherheitsantwort für diesen Account finden." + +#: ../lib/modules/passwordSelfReset.inc:942 +#: ../lib/modules/passwordSelfReset.inc:1161 +msgid "Unable to find password security question for this account." +msgstr "Konnte keine Sicherheitsfrage für diesen Account finden." + +#: ../lib/modules/organizationalRoleUser.inc:334 +msgid "Unable to find role in LDAP." +msgstr "Kann Rolle nicht im LDAP-Baum finden." + +#: ../templates/login.php:591 ../templates/login.php:597 +msgid "Unable to find the user name in LDAP." +msgstr "Kann den Benutzernamen nicht in LDAP finden." + +#: ../lib/modules/passwordSelfReset.inc:933 +#: ../lib/modules/passwordSelfReset.inc:1242 +msgid "Unable to find user account." +msgstr "Benutzer wurde nicht gefunden." + +#: ../templates/config/mainmanage.php:194 +msgid "Unable to import server certificate. Please use the upload function." +msgstr "" +"Konnte Serverzertifikat nicht importieren. Bitte nutzen Sie die Funktion zum " +"manuellen Hochladen." + +#: ../lib/modules.inc:1529 ../lib/modules.inc:1533 +msgid "Unable to load LDAP entry:" +msgstr "Kann den LDAP-Eintrag nicht einlesen:" + +#: ../lib/profiles.inc:98 ../lib/profiles.inc:102 ../lib/selfService.inc:196 +#: ../lib/selfService.inc:200 +msgid "Unable to load profile!" +msgstr "Kann das Profil nicht laden!" + +#: ../lib/modules/imapAccess.inc:183 +msgid "Unable to locate mailbox on IMAP." +msgstr "Das Postfach wurde nicht gefunden." + +#: ../lib/modules/inetOrgPerson.inc:103 +msgid "Unable to process this file." +msgstr "Kann diese Datei nicht verarbeiten." + +#: ../templates/3rdParty/pla/lib/import_functions.php:388 +#: ../templates/3rdParty/pla/lib/import_functions.php:393 +msgid "Unable to read file." +msgstr "Kann Datei nicht lesen." + +#: ../lib/modules/selfRegistration.inc:692 +msgid "Unable to register your new account. Please try again." +msgstr "" +"Leider konnte Ihr neuer Benutzer nicht erstellt werden. Bitte versuchen Sie " +"es erneut." + +#: ../lib/modules/passwordSelfReset.inc:1440 +#: ../lib/modules/passwordSelfReset.inc:1449 +#: ../lib/modules/passwordSelfReset.inc:1455 +#: ../lib/modules/passwordSelfReset.inc:1464 +msgid "Unable to reset password." +msgstr "Konnte Passwort nicht zurücksetzen." + +#: ../templates/3rdParty/pla/lib/functions.php:1945 +msgid "Unable to retrieve image" +msgstr "Konnte Bild nicht auslesen." + +#: ../templates/tests/schemaTest.php:61 ../templates/schema/schema.php:93 +#: ../templates/schema/schema.php:111 ../templates/schema/schema.php:272 +#: ../templates/schema/schema.php:306 +msgid "Unable to retrieve schema!" +msgstr "Konnte Schema nicht auslesen!" + +#: ../templates/selfService/adminMain.php:251 +#: ../templates/profedit/profilepage.php:124 +msgid "Unable to save profile!" +msgstr "Kann das Profil nicht speichern!" + +#: ../lib/account.inc:999 ../lib/account.inc:1037 +msgid "Unable to send mail!" +msgstr "Kann die mail nicht versenden!" + +#: ../lib/modules/bindDLZ.inc:1734 +#, php-format +msgid "Unable to update DNS record \"%s\"." +msgstr "Konnte DNS-Eintrag \"%s\" nicht aktualisieren." + +#: ../lib/pdfstruct.inc:249 ../lib/pdfstruct.inc:259 ../lib/pdfstruct.inc:262 +msgid "Unable to upload logo file." +msgstr "Konnte Logodatei nicht hochladen." + +#: ../lib/modules/passwordSelfReset.inc:999 +#: ../lib/modules/passwordSelfReset.inc:1254 +msgid "Unable to verify your password reset request. Please try again." +msgstr "" +"Leider konnte Ihre Passwortrücksetzung nicht verifiziert werden. Bitte " +"versuchen Sie es erneut." + +#: ../lib/modules/selfRegistration.inc:726 +msgid "Unable to verify your user creation request. Please try again." +msgstr "" +"Leider konnte Ihre Benutzerregistrierung nicht verifiziert werden. Bitte " +"versuchen Sie es erneut." + +#: ../templates/serverInfo.php:293 +msgid "Unbind" +msgstr "Unbind" + +#: ../lib/modules/windowsGroup.inc:66 +msgid "Universal" +msgstr "Universell" + +#: ../templates/lists/changePassword.php:407 +#: ../templates/lists/changePassword.php:438 ../lib/types/user.inc:268 +#: ../lib/types/user.inc:368 ../lib/types/user.inc:400 +#: ../lib/types/user.inc:821 ../lib/modules/posixGroup.inc:373 +#: ../lib/modules/posixAccount.inc:168 +msgid "Unix" +msgstr "Unix" + +#: ../templates/tests/lamdaemonTest.php:214 +msgid "Unix account" +msgstr "Unix-Account" + +#: ../lib/modules/posixAccount.inc:263 ../lib/modules/posixAccount.inc:1566 +msgid "Unix groups" +msgstr "Unix-Gruppen" + +#: ../lib/modules/dhcp_settings.inc:201 ../lib/modules/dhcp_settings.inc:218 +#: ../lib/modules/dhcp_settings.inc:294 ../lib/modules/dhcp_settings.inc:602 +#: ../lib/modules/dhcp_settings.inc:682 +msgid "Unknown clients" +msgstr "Unbekannte Clients" + +#: ../lib/modules/kolabUser.inc:252 ../lib/modules/kolabSharedFolder.inc:256 +#, php-format +msgid "Unknown delegate address: %s" +msgstr "Unbekannte Adresse für Delegation: %s" + +#: ../templates/3rdParty/pla/lib/import_functions.php:233 +msgid "Unkown change type" +msgstr "Unbekannter Änderungstyp" + +#: ../lib/types/user.inc:349 ../lib/types/user.inc:354 +#: ../lib/modules/windowsUser.inc:732 +msgid "Unlock" +msgstr "Entsperren" + +#: ../templates/lists/changePassword.php:210 +#: ../templates/lists/changePassword.php:404 +#: ../templates/lists/changePassword.php:424 +#: ../templates/lists/changePassword.php:426 +#: ../lib/modules/ppolicyUser.inc:146 +msgid "Unlock account" +msgstr "Account entsperren" + +#: ../templates/lists/changePassword.php:270 +msgid "Unlock account?" +msgstr "Account entsperren?" + +#: ../lib/modules/posixGroup.inc:211 ../lib/modules/posixAccount.inc:1502 +#: ../lib/modules/inetOrgPerson.inc:1595 +msgid "Unlock password" +msgstr "Passwort reaktivieren" + +#: ../templates/masscreate.php:107 ../templates/config/confmodules.php:386 +msgid "Unsolved dependency:" +msgstr "Ungelöste Abhängigkeit:" + +#: ../templates/pdfedit/pdfpage.php:473 +msgid "Up" +msgstr "Hoch" + +#: ../templates/lists/changePassword.php:225 +msgid "Update Samba password timestamp" +msgstr "Samba-Passwortzeitstempel anpassen" + +#: ../lib/modules/sambaSamAccount.inc:250 +msgid "Update attribute \"sambaPwdLastSet\" on password change" +msgstr "Attribut \"sambaPwdLastSet\" bei Passwortänderung anpassen" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1440 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:194 +msgid "Update object" +msgstr "Eintrag aktualisieren" + +#: ../lib/modules/imapAccess.inc:322 ../lib/modules/imapAccess.inc:331 +msgid "Update quota" +msgstr "Quota ändern" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:165 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:129 +msgid "Update values" +msgstr "Werte ändern" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:118 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:118 +msgid "Updating object" +msgstr "Ändere Eintrag" + +#: ../templates/config/mainmanage.php:334 ../templates/pdfedit/pdfmain.php:247 +#: ../lib/modules/ldapPublicKey.inc:126 ../lib/modules/inetOrgPerson.inc:1863 +msgid "Upload" +msgstr "Hochladen" + +#: ../templates/config/mainmanage.php:336 +msgid "Upload CA certificate in DER/PEM format." +msgstr "CA-Zertifikat im DER/PEM-Format hochladen." + +#: ../lib/modules/ldapPublicKey.inc:81 +msgid "Upload a file with one or more keys. Each line contains one key." +msgstr "" +"Lädt eine Datei mit einem oder mehreren Schlüsseln hoch. Jede Zeile enthält " +"einen Schlüssel." + +#: ../templates/massBuildAccounts.php:242 +msgid "Upload accounts to LDAP" +msgstr "Accounts in LDAP anlegen" + +#: ../lib/modules/ldapPublicKey.inc:122 ../lib/modules/customFields.inc:164 +#: ../lib/modules/customFields.inc:3428 +msgid "Upload file" +msgstr "Datei hochladen" + +#: ../templates/masscreate.php:277 +msgid "Upload file and create accounts" +msgstr "Datei hochladen und Accounts erstellen" + +#: ../templates/massDoUpload.php:254 ../lib/lists.inc:1071 +msgid "Upload has finished" +msgstr "Upload wurde beendet" + +#: ../lib/modules.inc:504 +#, php-format +msgid "Upload was stopped after errors in %s module!" +msgstr "Upload wurde nach Fehlern im Modul %s gestoppt!" + +#: ../lib/pdfstruct.inc:256 +msgid "Uploaded logo file." +msgstr "Logodatei hochgeladen." + +#: ../templates/serverInfo.php:222 +msgid "Uptime" +msgstr "Uptime" + +#: ../templates/schema/schema.php:209 +msgid "Usage" +msgstr "Benutzung" + +#: ../lib/modules/authorizedServiceObject.inc:82 +#: ../lib/modules/authorizedServiceObject.inc:86 +msgid "Use * for all services." +msgstr "Verwenden Sie * für alle Dienste." + +#: ../lib/modules/sambaSamAccount.inc:268 +#: ../lib/modules/sambaSamAccount.inc:271 +#: ../lib/modules/sambaSamAccount.inc:432 +msgid "Use Unix password" +msgstr "Unix-Passwort verwenden" + +#: ../templates/selfService/adminMain.php:437 ../help/help.inc:242 +msgid "Use for all operations" +msgstr "Für alle Operationen verwenden" + +#: ../lib/modules/sambaSamAccount.inc:274 +#: ../lib/modules/sambaSamAccount.inc:277 +#: ../lib/modules/sambaSamAccount.inc:440 +#: ../lib/modules/sambaSamAccount.inc:1148 +#: ../lib/modules/sambaSamAccount.inc:1740 +msgid "Use no password" +msgstr "Kein Passwort setzen" + +#: ../help/help.inc:272 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of entries to modify." +msgstr "" +"Mit dem zusätzlichen LDAP-Filter (z.B. \"(cn!=admin)\") können Sie die " +"Anzahl zu editierender Einträge reduzieren." + +#: ../help/help.inc:171 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of visible elements for this account type." +msgstr "" +"Mit dem zusätzlichen LDAP-Filter (z.B. \"(cn!=admin)\") können Sie die " +"Anzahl sichtbarer Einträge für diesen Accounttyp reduzieren." + +#: ../help/help.inc:241 +msgid "" +"Use this to enter an additional LDAP filter (e.g. " +"\"(objectClass=passwordSelfReset)\") to reduce the number of accounts who " +"may use self service." +msgstr "" +"Mit dem zusätzlichen LDAP-Filter (z.B. \"(objectClass=passwordSelfReset)\") " +"können Sie die Anzahl Einträge reduzieren die den SelfService nutzen dürfen." + +#: ../lib/modules/asteriskAccount.inc:188 +msgid "Use this to hide the caller ID." +msgstr "Benutzen Sie dies um die Anrufer-ID zu verstecken." + +#: ../lib/modules/zarafaDynamicGroup.inc:80 +#: ../lib/modules/zarafaContact.inc:72 ../lib/modules/zarafaGroup.inc:86 +#: ../lib/modules/zarafaAddressList.inc:68 ../lib/modules/zarafaUser.inc:81 +msgid "Use this to hide this entry from the address book." +msgstr "" +"Benutzen Sie diese Einstellung um Einträge im Adressbuch zu verstecken." + +#: ../lib/modules/sambaGroupMapping.inc:167 +msgid "" +"Use this to specify other groups or accounts from other domains as group " +"members." +msgstr "" +"Sie können hiermit andere Gruppen oder Konten aus anderen Domänen als " +"Gruppenmitglieder hinzufügen." + +#: ../lib/modules/imapAccess.inc:87 +msgid "" +"Use wildcards like $uid$ for LDAP attributes of the current LAM admin user." +msgstr "" +"Benutzen Sie Platzhalter wie $uid$ für LDAP-Attribute des aktuellen LAM-" +"Administrators." + +#: ../lib/modules/pykotaBillingCode.inc:86 +msgid "Used balance for the billing code." +msgstr "Verbrauchter Betrag für den Rechnungscode." + +#: ../lib/modules/quota.inc:109 ../lib/modules/quota.inc:400 +msgid "Used blocks" +msgstr "Benutzte Blöcke" + +#: ../lib/modules/quota.inc:110 +msgid "Used blocks. 1000 blocks are usually 1MB" +msgstr "Verwendete Blöcke. 1000 Blöcke sind normalerweise 1 MB." + +#: ../templates/schema/schema.php:268 +msgid "Used by attributes" +msgstr "Benutzt von Attributen" + +#: ../templates/schema/schema.php:237 +msgid "Used by object classes" +msgstr "Benutzt von Objektklassen" + +#: ../lib/modules/sambaDomain.inc:98 +msgid "Used for calculating RIDs from UID/GID. Do not change if unsure." +msgstr "" +"Wird für die Berechnung der RIDs aus UID/GID verwendet. Nicht ändern, wenn " +"Sie nicht sicher sind." + +#: ../lib/modules/asteriskAccount.inc:220 +msgid "Used for registration context." +msgstr "Wird für den Registrierungskontext verwendet." + +#: ../lib/modules/quota.inc:131 ../lib/modules/quota.inc:404 +msgid "Used inodes" +msgstr "benutzte Inodes" + +#: ../lib/modules/quota.inc:132 +msgid "Used inodes (files)" +msgstr "Benutze Inodes (Dateien)" + +#: ../lib/modules/asteriskAccount.inc:192 +msgid "Used to automatically hangup the call if no RTP traffic is received." +msgstr "" +"Damit wird ein Anruf automatisch beendet wenn kein RTP-Verkehr empfangen " +"wird." + +#: ../lib/modules/asteriskAccount.inc:168 +#: ../lib/modules/asteriskAccount.inc:172 +msgid "" +"Used to limit SIP traffic to and from this peer to a certain IP or network." +msgstr "" +"Damit lässt sich der SIP-Verkehr von und zu diesem Teilnehmer und einer " +"bestimmten IP bzw. einem Netzwerk beschränken." + +#: ../lib/modules/asteriskAccount.inc:184 +msgid "Used to regularly check that a device is still online." +msgstr "" +"Damit wird in regelmäßigen Intervallen geprüft, ob das Gerät noch " +"angeschlossen ist." + +#: ../lib/types/sudo.inc:78 ../lib/modules/nisnetgroup.inc:220 +#: ../lib/modules/nisnetgroup.inc:586 ../lib/modules/nisMailAlias.inc:350 +msgid "User" +msgstr "Benutzer" + +#: ../lib/types/user.inc:62 +msgid "User accounts (e.g. Unix, Samba and Kolab)" +msgstr "Benutzeraccounts (z.B. Unix, Samba und Kolab)" + +#: ../lib/modules/asteriskAccount.inc:127 +#: ../lib/modules/asteriskAccount.inc:270 +#: ../lib/modules/asteriskAccount.inc:340 +#: ../lib/modules/asteriskAccount.inc:598 +#: ../lib/modules/asteriskAccount.inc:986 +#: ../lib/modules/asteriskAccount.inc:1241 +msgid "User agent" +msgstr "Benutzeragent" + +#: ../lib/modules/sambaSamAccount.inc:298 +#: ../lib/modules/sambaSamAccount.inc:1172 +msgid "User can change password" +msgstr "Benutzer kann Passwort ändern" + +#: ../lib/modules/inetOrgPerson.inc:166 ../lib/modules/inetOrgPerson.inc:866 +#: ../lib/modules/inetOrgPerson.inc:1540 ../lib/modules/inetOrgPerson.inc:2777 +#: ../lib/modules/inetOrgPerson.inc:3630 +msgid "User certificates" +msgstr "Benutzerzertifikate" + +#: ../lib/types/user.inc:529 +#, php-format +msgid "User count: %s" +msgstr "Anzahl Benutzer: %s" + +#: ../lib/modules/pykotaUser.inc:121 +msgid "User description." +msgstr "Benutzerbeschreibung" + +#: ../lib/modules/posixAccount.inc:511 +msgid "User description. If left empty first and last name will be used." +msgstr "Benutzerbeschreibung, falls leer wird Vor- und Nachname verwendet." + +#: ../lib/modules/inetOrgPerson.inc:647 +msgid "User description. If left empty sur- and give name will be used." +msgstr "Benutzerbeschreibung, falls leer wird Vor- und Nachname verwendet." + +#: ../lib/modules/account.inc:106 +msgid "User description. If left empty user name will be used." +msgstr "Benutzerbeschreibung. Falls leer wird der Benutzername verwendet." + +#: ../templates/schema/schema.php:204 +msgid "User modification" +msgstr "Vom Benutzer änderbar" + +#: ../lib/modules/mitKerberos.inc:224 ../lib/modules/mitKerberos.inc:250 +#: ../lib/modules/mitKerberos.inc:374 ../lib/modules/mitKerberos.inc:639 +#: ../lib/modules/mitKerberos.inc:779 ../lib/modules/sambaSamAccount.inc:300 +#: ../lib/modules/sambaSamAccount.inc:1178 ../lib/modules/windowsUser.inc:741 +#: ../lib/modules/heimdalKerberos.inc:106 +#: ../lib/modules/heimdalKerberos.inc:193 +#: ../lib/modules/heimdalKerberos.inc:220 +#: ../lib/modules/heimdalKerberos.inc:332 +#: ../lib/modules/heimdalKerberos.inc:549 +#: ../lib/modules/heimdalKerberos.inc:683 +msgid "User must change password" +msgstr "Benutzer muss Passwort ändern" + +#: ../templates/lists/changePassword.php:281 ../templates/login.php:334 +#: ../lib/types/alias.inc:91 ../lib/types/user.inc:91 +#: ../lib/selfService.inc:385 ../lib/modules/mitKerberos.inc:116 +#: ../lib/modules/mitKerberos.inc:211 ../lib/modules/mitKerberos.inc:249 +#: ../lib/modules/mitKerberos.inc:343 ../lib/modules/mitKerberos.inc:766 +#: ../lib/modules/selfRegistration.inc:393 +#: ../lib/modules/selfRegistration.inc:467 +#: ../lib/modules/selfRegistration.inc:475 ../lib/modules/account.inc:85 +#: ../lib/modules/account.inc:101 ../lib/modules/account.inc:124 +#: ../lib/modules/account.inc:126 ../lib/modules/account.inc:127 +#: ../lib/modules/account.inc:210 ../lib/modules/account.inc:230 +#: ../lib/modules/account.inc:254 ../lib/modules/uidObject.inc:45 +#: ../lib/modules/uidObject.inc:67 ../lib/modules/uidObject.inc:76 +#: ../lib/modules/uidObject.inc:85 ../lib/modules/uidObject.inc:100 +#: ../lib/modules/uidObject.inc:161 ../lib/modules/posixAccount.inc:113 +#: ../lib/modules/posixAccount.inc:114 ../lib/modules/posixAccount.inc:117 +#: ../lib/modules/posixAccount.inc:283 ../lib/modules/posixAccount.inc:409 +#: ../lib/modules/posixAccount.inc:506 ../lib/modules/posixAccount.inc:1420 +#: ../lib/modules/posixAccount.inc:1842 ../lib/modules/windowsUser.inc:107 +#: ../lib/modules/windowsUser.inc:264 ../lib/modules/windowsUser.inc:498 +#: ../lib/modules/windowsUser.inc:589 ../lib/modules/windowsUser.inc:689 +#: ../lib/modules/windowsUser.inc:1593 ../lib/modules/pykotaUser.inc:112 +#: ../lib/modules/pykotaUser.inc:208 ../lib/modules/pykotaUser.inc:268 +#: ../lib/modules/pykotaUser.inc:311 ../lib/modules/pykotaUser.inc:313 +#: ../lib/modules/pykotaUser.inc:340 ../lib/modules/pykotaUser.inc:889 +#: ../lib/modules/nisnetgroup.inc:152 ../lib/modules/nisnetgroup.inc:482 +#: ../lib/modules/inetOrgPerson.inc:97 ../lib/modules/inetOrgPerson.inc:166 +#: ../lib/modules/inetOrgPerson.inc:638 ../lib/modules/inetOrgPerson.inc:766 +#: ../lib/modules/inetOrgPerson.inc:1186 ../lib/modules/inetOrgPerson.inc:1189 +#: ../lib/modules/inetOrgPerson.inc:1942 ../lib/modules/inetOrgPerson.inc:2077 +#: ../lib/modules/inetOrgPerson.inc:2835 ../lib/modules/inetOrgPerson.inc:3638 +#: ../lib/modules/inetOrgPerson.inc:3664 +#: ../lib/modules/passwordSelfReset.inc:499 +#: ../lib/modules/passwordSelfReset.inc:843 +#: ../lib/modules/passwordSelfReset.inc:1015 +#: ../lib/modules/heimdalKerberos.inc:94 +#: ../lib/modules/heimdalKerberos.inc:180 +#: ../lib/modules/heimdalKerberos.inc:218 +#: ../lib/modules/heimdalKerberos.inc:293 +#: ../lib/modules/heimdalKerberos.inc:676 +msgid "User name" +msgstr "Benutzername" + +#: ../lib/modules/windowsUser.inc:115 ../lib/modules/windowsUser.inc:449 +#: ../lib/modules/windowsUser.inc:529 ../lib/modules/windowsUser.inc:565 +#: ../lib/modules/windowsUser.inc:593 ../lib/modules/windowsUser.inc:698 +#: ../lib/modules/windowsUser.inc:1595 +msgid "User name (pre W2K)" +msgstr "Benutzername (vor W2K)" + +#: ../lib/modules/selfRegistration.inc:475 ../lib/modules/posixAccount.inc:121 +#: ../lib/modules/pykotaUser.inc:313 ../lib/modules/pykotaUser.inc:314 +#: ../lib/modules/pykotaUser.inc:317 ../lib/modules/pykotaUser.inc:318 +#: ../lib/modules/inetOrgPerson.inc:99 +msgid "User name already exists!" +msgstr "Benutzername besteht schon!" + +#: ../lib/modules/passwordSelfReset.inc:501 +msgid "User name and email address" +msgstr "Benutzername und Email-Adresse" + +#: ../lib/modules/imapAccess.inc:103 ../lib/modules/imapAccess.inc:144 +msgid "User name attribute" +msgstr "Attribut für Benutzernamen" + +#: ../lib/modules/mitKerberos.inc:289 ../lib/modules/mitKerberos.inc:290 +#: ../lib/modules/selfRegistration.inc:467 ../lib/modules/account.inc:124 +#: ../lib/modules/account.inc:125 ../lib/modules/account.inc:127 +#: ../lib/modules/zarafaContact.inc:187 ../lib/modules/zarafaContact.inc:188 +#: ../lib/modules/uidObject.inc:85 ../lib/modules/zarafaGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:223 ../lib/modules/posixAccount.inc:114 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/zarafaUser.inc:419 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/windowsUser.inc:589 +#: ../lib/modules/windowsUser.inc:590 ../lib/modules/windowsUser.inc:593 +#: ../lib/modules/windowsUser.inc:594 ../lib/modules/pykotaUser.inc:311 +#: ../lib/modules/pykotaUser.inc:312 ../lib/modules/pykotaUser.inc:315 +#: ../lib/modules/pykotaUser.inc:316 ../lib/modules/nisnetgroup.inc:152 +#: ../lib/modules/inetOrgPerson.inc:97 ../lib/modules/inetOrgPerson.inc:98 +#: ../lib/modules/passwordSelfReset.inc:893 +#: ../lib/modules/passwordSelfReset.inc:1115 +#: ../lib/modules/heimdalKerberos.inc:253 +#: ../lib/modules/heimdalKerberos.inc:254 +msgid "" +"User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Benutzername enthält ungültige Zeichen. Gültige Zeichen sind: a-z, A-Z, 0-9 " +"und .-_ !" + +#: ../lib/modules/windowsUser.inc:253 +msgid "User name for NIS." +msgstr "Benutzername für NIS." + +#: ../lib/modules/posixAccount.inc:117 +msgid "User name in use. Selected next free user name." +msgstr "" +"Der Benutzername ist bereits vorhanden, der nächste freie Name wurde " +"ausgewählt." + +#: ../lib/modules/mitKerberos.inc:117 ../lib/modules/account.inc:102 +#: ../lib/modules/pykotaUser.inc:113 ../lib/modules/inetOrgPerson.inc:767 +#: ../lib/modules/heimdalKerberos.inc:95 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_." +msgstr "" +"Benutzername des zu erstellenden Benutzer. Gültige Zeichen sind: a-z, A-Z, " +"0-9 und @.-_." + +#: ../lib/modules/posixAccount.inc:507 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_. If user name is already used user name will be expanded with a " +"number. The next free number will be used." +msgstr "" +"Benutzername des zu erstellenden Benutzers. Gültige Zeichen sind: a-z, A-Z, " +"0-9 und @.-_. Sollte der Benutzername schon in Verwendung sein wird eine " +"Zahl angehängt." + +#: ../lib/modules/passwordSelfReset.inc:502 +#: ../lib/modules/passwordSelfReset.inc:867 +#: ../lib/modules/passwordSelfReset.inc:1035 +msgid "User name or email address" +msgstr "Benutzername oder Email-Adresse" + +#: ../lib/modules/posixAccount.inc:270 ../lib/modules/posixAccount.inc:436 +msgid "User name suggestion" +msgstr "Vorschlag für Benutzername" + +#: ../lib/modules/pykotaUser.inc:125 +msgid "User name that is used for PyKota." +msgstr "Benutzername für PyKota." + +#: ../lib/modules/windowsUser.inc:752 +msgid "User profile" +msgstr "Benutzerprofil" + +#: ../lib/modules/selfRegistration.inc:45 +msgid "User self registration" +msgstr "Benutzerselbstregistrierung" + +#: ../lib/modules/zarafaUser.inc:128 ../lib/modules/zarafaUser.inc:275 +#: ../lib/modules/zarafaUser.inc:373 ../lib/modules/zarafaUser.inc:614 +#: ../lib/modules/zarafaUser.inc:1233 ../lib/modules/zarafaUser.inc:1322 +#: ../lib/modules/zarafaUser.inc:1805 +msgid "User server" +msgstr "Benutzerserver" + +#: ../lib/types/user.inc:53 ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:97 +#: ../lib/modules/posixAccount.inc:209 ../lib/modules/zarafaUser.inc:1779 +#: ../lib/modules/sudoRole.inc:74 ../lib/modules/sudoRole.inc:98 +#: ../lib/modules/sudoRole.inc:159 ../lib/modules/sudoRole.inc:216 +#: ../lib/modules/sudoRole.inc:228 ../lib/modules/sudoRole.inc:316 +#: ../lib/modules/sudoRole.inc:806 +msgid "Users" +msgstr "Benutzer" + +#: ../lib/modules/zarafaContact.inc:80 ../lib/modules/zarafaGroup.inc:94 +#: ../lib/modules/zarafaUser.inc:105 +msgid "Users or groups that may directly send email as this user." +msgstr "Benutzer oder Gruppen die EMails als dieser Benutzer senden dürfen." + +#: ../lib/modules/posixGroup.inc:489 +msgid "" +"Users who are member of the current group. Users who have set their primary " +"group to this group will not be shown." +msgstr "" +"Hier können Sie Benutzer zu dieser Gruppe hinzufügen und entfernen. " +"Benutzer, deren primäre Gruppe diese Gruppe ist, werden nicht angezeigt." + +#: ../lib/modules/posixGroup.inc:493 +msgid "" +"Users who will become member of the current group. User names are separated " +"by semicolons." +msgstr "" +"Benutzer die Mitglieder der aktuellen Gruppe werden. Benutzernamen werden " +"durch Komma getrennt." + +#: ../templates/tests/lamdaemonTest.php:207 +#, php-format +msgid "Using %s as lamdaemon remote server." +msgstr "Es wird %s als Lamdaemon-Server verwendet." + +#: ../templates/tests/lamdaemonTest.php:229 +#, php-format +msgid "Using %s to connect to remote server." +msgstr "Für die Verbindung zum Remote-Server wird %s verwendet." + +#: ../lib/modules/posixAccount.inc:446 +msgid "" +"Usually, users are not added to groups as memberUid if they have this group " +"as primary group. If your application ignores primary groups then you can " +"select this option to override this behaviour." +msgstr "" +"Normalerweise werden Benutzer nicht als memberUid zu Gruppen hinzugefügt, " +"die ihre primäre Gruppe sind. Wenn Ihre Anwendung primäre Gruppen nicht " +"auswertet dann können Sie diese Option wählen. LAM wird dann auch bei " +"primären Gruppen die memberUid pflegen." + +#: ../templates/3rdParty/pla/lib/export_functions.php:543 +msgid "VCARD 2.1 Export" +msgstr "VCARD 2.1 Export" + +#: ../templates/config/mainmanage.php:360 +msgid "Valid to" +msgstr "Gültig bis" + +#: ../help/help.inc:92 +msgid "Valid users" +msgstr "Berechtigte Benutzer" + +#: ../lib/modules/imapAccess.inc:83 ../lib/modules/imapAccess.inc:121 +msgid "Validate server certificate" +msgstr "Serverzertifikat prüfen" + +#: ../lib/modules/customFields.inc:108 ../lib/modules/customFields.inc:1899 +msgid "Validation expression" +msgstr "Validierungsausdruck" + +#: ../lib/modules/customFields.inc:112 ../lib/modules/customFields.inc:1904 +msgid "Validation message" +msgstr "Validierungsnachricht" + +#: ../templates/multiEdit.php:120 ../lib/modules/customFields.inc:2959 +msgid "Value" +msgstr "Wert" + +#: ../lib/modules/customFields.inc:116 ../lib/modules/customFields.inc:2749 +msgid "Value for \"checked\"" +msgstr "Wert für \"gewählt\"" + +#: ../lib/modules/customFields.inc:120 ../lib/modules/customFields.inc:2755 +msgid "Value for \"unchecked\"" +msgstr "Wert für \"nicht gewählt\"" + +#: ../lib/modules/customFields.inc:140 ../lib/modules/customFields.inc:2955 +msgid "Value mapping" +msgstr "Wertezuordnung" + +#: ../templates/3rdParty/pla/lib/import_functions.php:512 +msgid "Value to delete does not exist in DN" +msgstr "Wert zum Löschen existiert nicht in DN" + +#: ../lib/modules/puppetClient.inc:100 ../lib/modules/puppetClient.inc:104 +#: ../lib/modules/puppetClient.inc:146 ../lib/modules/puppetClient.inc:156 +#: ../lib/modules/puppetClient.inc:169 ../lib/modules/puppetClient.inc:277 +#: ../lib/modules/puppetClient.inc:439 +msgid "Variables" +msgstr "Variablen" + +#: ../templates/serverInfo.php:134 +msgid "Vendor name" +msgstr "Herstellername" + +#: ../templates/serverInfo.php:140 +msgid "Vendor version" +msgstr "Herstellerversion" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +#, php-format +msgid "View %s children" +msgstr "%s Kinder anzeigen" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +msgid "View 1 child" +msgstr "1 Kind anzeigen" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1230 +msgid "View the children of this object" +msgstr "Die Kinder dieses Eintrags anzeigen" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1028 +msgid "Viewing entry in read-only mode." +msgstr "Eintrag ist schreibgeschützt." + +#: ../lib/modules/asteriskVoicemail.inc:119 +#: ../lib/modules/asteriskVoicemail.inc:126 +#: ../lib/modules/asteriskVoicemail.inc:143 +#: ../lib/modules/asteriskVoicemail.inc:196 +#: ../lib/modules/asteriskVoicemail.inc:260 +#: ../lib/modules/asteriskVoicemail.inc:372 +msgid "Voicemail context" +msgstr "Anrufbeantworterkontext" + +#: ../lib/modules/asteriskVoicemail.inc:96 +msgid "Voicemail mailbox for this account." +msgstr "Anrufbeantworterpostfach für diesen Account." + +#: ../templates/login.php:496 +msgid "Want more features? Get LAM Pro!" +msgstr "Sie möchten mehr Funktionen? Bestellen Sie LAM Pro!" + +#: ../templates/config/mainmanage.php:408 +#: ../templates/3rdParty/pla/lib/page.php:76 +msgid "Warning" +msgstr "Warnung" + +#: ../templates/delete.php:234 ../lib/modules/nisMailAliasUser.inc:505 +#: ../lib/modules/posixAccount.inc:850 ../lib/modules/posixAccount.inc:903 +#: ../lib/modules/organizationalRoleUser.inc:201 +#: ../lib/modules/organizationalRoleUser.inc:218 +#: ../lib/modules/windowsUser.inc:1127 ../lib/modules/groupOfNamesUser.inc:217 +#: ../lib/modules/groupOfNamesUser.inc:264 ../lib/modules.inc:1908 +#, php-format +msgid "Was unable to add attributes to DN: %s." +msgstr "Konnte keine Attribute zum DN hinzufügen: %s." + +#: ../lib/modules/nisMailAliasUser.inc:494 ../lib/modules/range.inc:665 +#: ../lib/modules.inc:1871 +#, php-format +msgid "Was unable to create DN: %s." +msgstr "Konnte DN nicht erstellen: %s." + +#: ../templates/delete.php:344 ../templates/delete.php:353 +#: ../lib/modules/nisMailAliasUser.inc:471 ../lib/modules/range.inc:732 +#, php-format +msgid "Was unable to delete DN: %s." +msgstr "Konnte DN nicht löschen: %s." + +#: ../templates/lists/changePassword.php:758 +#: ../templates/lists/changePassword.php:796 +#: ../templates/lists/changePassword.php:842 ../templates/delete.php:225 +#, php-format +msgid "Was unable to modify attributes from DN: %s." +msgstr "Konnte die Attribute von DN %s nicht ändern." + +#: ../lib/modules/posixAccount.inc:888 ../lib/modules/windowsUser.inc:1153 +#: ../lib/modules/windowsUser.inc:1566 ../lib/modules/range.inc:709 +#: ../lib/modules/groupOfNamesUser.inc:249 ../lib/modules.inc:1890 +#, php-format +msgid "Was unable to modify attributes of DN: %s." +msgstr "Konnte die Attribute von DN %s nicht ändern." + +#: ../templates/delete.php:243 ../lib/modules/nisMailAliasUser.inc:482 +#: ../lib/modules/posixAccount.inc:858 ../lib/modules/posixAccount.inc:920 +#: ../lib/modules/organizationalRoleUser.inc:206 +#: ../lib/modules/organizationalRoleUser.inc:229 +#: ../lib/modules/windowsUser.inc:1140 ../lib/modules/groupOfNamesUser.inc:222 +#: ../lib/modules/groupOfNamesUser.inc:278 ../lib/modules.inc:1921 +#, php-format +msgid "Was unable to remove attributes from DN: %s." +msgstr "Konnte die Attribute nicht löschen: %s." + +#: ../lib/modules/asteriskExtension.inc:905 ../lib/modules.inc:1851 +#, php-format +msgid "Was unable to rename DN: %s." +msgstr "Konnte DN nicht umbenennen: %s." + +#: ../lib/modules/windowsUser.inc:188 ../lib/modules/windowsUser.inc:374 +#: ../lib/modules/windowsUser.inc:516 ../lib/modules/windowsUser.inc:543 +#: ../lib/modules/windowsUser.inc:720 ../lib/modules/windowsUser.inc:1612 +#: ../lib/modules/windowsUser.inc:1735 ../lib/modules/inetOrgPerson.inc:165 +#: ../lib/modules/inetOrgPerson.inc:217 ../lib/modules/inetOrgPerson.inc:478 +#: ../lib/modules/inetOrgPerson.inc:601 ../lib/modules/inetOrgPerson.inc:754 +#: ../lib/modules/inetOrgPerson.inc:758 ../lib/modules/inetOrgPerson.inc:1455 +#: ../lib/modules/inetOrgPerson.inc:1458 ../lib/modules/inetOrgPerson.inc:1952 +#: ../lib/modules/inetOrgPerson.inc:2514 ../lib/modules/inetOrgPerson.inc:3628 +#: ../lib/modules/inetOrgPerson.inc:3654 +msgid "Web site" +msgstr "Homepage" + +#: ../lib/modules/sambaSamAccount.inc:1380 +msgid "Wednesday" +msgstr "Mittwoch" + +#: ../lib/modules/bindDLZ.inc:187 ../lib/modules/bindDLZ.inc:191 +#: ../lib/modules/bindDLZ.inc:394 ../lib/modules/bindDLZ.inc:510 +#: ../lib/modules/bindDLZ.inc:1360 ../lib/modules/bindDLZ.inc:1607 +msgid "Weight" +msgstr "Gewichtung" + +#: ../lib/selfService.inc:384 +msgid "Welcome to LAM self service. Please enter your user name and password." +msgstr "" +"Willkommen zum LAM Self Service. Bitte geben Sie Ihren Benutzernamen und " +"Passwort ein." + +#: ../lib/modules/sambaSamAccount.inc:565 +msgid "Western Europe Time, London, Lisbon" +msgstr "Westeuropäische Zeit, London, Lissabon" + +#: ../lib/modules/passwordSelfReset.inc:179 +msgid "What is the name of your favourite pet?" +msgstr "Wie ist der Name Ihres Lieblingshaustieres?" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +msgid "" +"When performing a recursive copy, only copy those entries which match this " +"filter." +msgstr "" +"Beim rekursiven Kopieren werden nur Einträge kopiert, die diesem Filter " +"entsprechen." + +#: ../lib/modules/zarafaUser.inc:101 +msgid "" +"When the hard quota limit is reached, email can not be delivered to that " +"user anymore." +msgstr "" +"Wenn das harte Quotalimit erreicht wird, dann kann der Benutzer keine EMails " +"mehr empfangen." + +#: ../help/help.inc:70 +msgid "" +"When using ldaps:// or TLS be sure to use exactly the same IP/domain name as " +"in your certificate!" +msgstr "" +"Wenn Sie ldaps:// oder TLS verwenden, stellen Sie sicher, dass Sie genau die " +"selbe IP/Domäne wie in Ihrem Zertifikat verwenden!" + +#: ../templates/lists/changePassword.php:419 +#: ../templates/lists/changePassword.php:450 ../lib/types/user.inc:292 +#: ../lib/types/user.inc:380 ../lib/types/user.inc:412 +#: ../lib/types/user.inc:845 ../lib/modules/windowsHost.inc:64 +#: ../lib/modules/windowsUser.inc:89 ../lib/modules/windowsGroup.inc:99 +msgid "Windows" +msgstr "Windows" + +#: ../lib/modules/sambaSamAccount.inc:338 ../lib/modules/windowsUser.inc:112 +msgid "Windows domain name of account." +msgstr "Windows-Domänenname des Accounts." + +#: ../lib/modules/sambaSamAccount.inc:212 +#: ../lib/modules/sambaSamAccount.inc:471 +#: ../lib/modules/sambaSamAccount.inc:1266 +#: ../lib/modules/sambaSamAccount.inc:1788 +#: ../lib/modules/sambaSamAccount.inc:1913 +#: ../lib/modules/sambaGroupMapping.inc:111 +#: ../lib/modules/sambaGroupMapping.inc:374 +#: ../lib/modules/sambaGroupMapping.inc:539 +msgid "Windows group" +msgstr "Windows-Gruppe" + +#: ../lib/modules/sambaGroupMapping.inc:150 +msgid "Windows group name" +msgstr "Windows-Gruppenname" + +#: ../lib/modules/sambaGroupMapping.inc:163 +msgid "Windows group type." +msgstr "Windows-Gruppentyp." + +#: ../lib/modules/sambaSamAccount.inc:395 +msgid "" +"Windows password hashes are saved by default as NT and LM hashes. LM hashes " +"are insecure and only needed for old versions of Windows. You should disable " +"them unless you really need them." +msgstr "" +"Windows speichert Passworthashe standardmäßig als NT und LM-Hashe. LM-Hashe " +"sind unsicher und werden nur für ältere Windows-Versionen benötigt. Sie " +"sollten sie daher deaktivieren falls sie nicht zwingend benötigt werden." + +#: ../lib/modules/sambaSamAccount.inc:321 +msgid "Windows primary group" +msgstr "Primäre Windows-Gruppe" + +#: ../lib/modules/sambaSamAccount.inc:324 +msgid "Windows primary group SID" +msgstr "Primäre Windows-Gruppen-SID" + +#: ../lib/modules/sambaGroupMapping.inc:159 +msgid "Windows-Domain name of group." +msgstr "Windows-Domänenname der Gruppe." + +#: ../lib/modules/inetOrgPerson.inc:1466 +msgid "Work details" +msgstr "Arbeitsdaten" + +#: ../lib/modules/sambaDomain.inc:146 +msgid "Workgroup" +msgstr "Arbeitsgruppe" + +#: ../lib/modules/sambaSamAccount.inc:236 +#: ../lib/modules/sambaSamAccount.inc:367 +#: ../lib/modules/sambaSamAccount.inc:1522 +#: ../lib/modules/sambaSamAccount.inc:1932 +msgid "Working directory" +msgstr "Arbeitsverzeichnis" + +#: ../lib/modules/sambaSamAccount.inc:368 +msgid "Working directory of initial program." +msgstr "Arbeitsverzeichnis des Startprogramms." + +#: ../templates/config/confmain.php:318 +msgid "Write" +msgstr "Schreiben" + +#: ../templates/config/confmain.php:260 +msgid "Write access" +msgstr "Schreibzugriff" + +#: ../templates/login.php:579 ../templates/login.php:637 +#: ../templates/selfService/selfServiceLogin.php:160 +#: ../templates/selfService/selfServiceLogin.php:186 +msgid "Wrong password/user name combination. Please try again." +msgstr "Falsche Benutzername/Passwort-Kombination. Bitte erneut eingeben." + +#: ../lib/modules/imapAccess.inc:188 +msgid "Wrong quota format. Quota must be numeric." +msgstr "Das Quota-Format ist falsch. Es muss numerisch sein." + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/pykotaPrinter.inc:51 +#: ../lib/modules/pykotaPrinter.inc:170 ../lib/modules/qmailGroup.inc:322 +#: ../lib/modules/qmailGroup.inc:364 ../lib/modules/qmailGroup.inc:1030 +#: ../lib/modules/qmailGroup.inc:1031 ../lib/modules/qmailGroup.inc:1073 +#: ../lib/modules/qmailGroup.inc:1079 ../lib/modules/imapAccess.inc:121 +msgid "Yes" +msgstr "Ja" + +#: ../templates/lists/changePassword.php:537 +#: ../lib/modules/ppolicyUser.inc:344 ../lib/modules/ppolicyUser.inc:421 +msgid "You are reusing an old password. Please choose a different password." +msgstr "" +"Sie versuchen ein altes Passwort wiederzuverwenden. Bitte wählen Sie ein " +"anderes Passwort." + +#: ../lib/modules/account.inc:126 ../lib/modules/posixGroup.inc:602 +#: ../lib/modules/posixAccount.inc:113 ../lib/modules/posixAccount.inc:115 +msgid "" +"You are using capital letters. This can cause problems because Windows is " +"not case-sensitive." +msgstr "" +"Sie verwenden Großbuchstaben, das kann Probleme verursachen, da Windows " +"Groß-/Kleinschreibung nicht unterscheidet." + +#: ../lib/lists.inc:1073 +#, php-format +msgid "" +"You can download your PDF files {link=%s}{color=#d2131a}here{endcolor}" +"{endlink}." +msgstr "" +"Sie können Ihre PDF-Dateien {link=%s}{color=#d2131a}hier{endcolor}{endlink} " +"herunterladen." + +#: ../templates/initsuff.php:181 +msgid "" +"You can setup the LDAP suffixes for all account types in your LAM server " +"profile on tab \"Account types\"." +msgstr "" +"Sie können die LDAP-Suffixe für alle Accounttypen im LAM-Serverprofil auf " +"dem Tab \"Accounttypen\" einstellen." + +#: ../help/help.inc:110 +msgid "" +"You can specify if LAM allows full write access, password changes or only " +"read access." +msgstr "" +"Sie können festlegen, ob LAM vollen Schreibzugriff, nur Passwortänderungen " +"oder nur Lesezugriff erlaubt." + +#: ../lib/modules/windowsUser.inc:104 ../lib/modules/windowsUser.inc:125 +#: ../lib/modules/windowsUser.inc:141 ../lib/modules/windowsUser.inc:206 +#: ../lib/modules/windowsUser.inc:211 ../lib/modules/windowsUser.inc:228 +#: ../lib/modules/windowsUser.inc:233 ../lib/modules/windowsUser.inc:249 +#: ../lib/modules/inetOrgPerson.inc:743 ../lib/modules/inetOrgPerson.inc:748 +msgid "" +"You can use \"$user\", \"$firstname\" and \"$lastname\" as wildcards for " +"user name, first and last name." +msgstr "" +"Sie können \"$user\", \"$firstname\" und \"$lastname\" als Platzhalter für " +"den Benutzernamen, Vor- und Nachnamen verwenden." + +#: ../help/help.inc:172 +msgid "" +"You can use the wildcard @@LOGIN_DN@@ which will be substituted with the DN " +"of the user who is currently logged in to LAM." +msgstr "" +"Sie können den Platzhalter @@LOGIN_DN@@ verwenden. Er wird durch die DN des " +"angemeldeten LAM-Benutzers ersetzt." + +#: ../lib/modules/zarafaDynamicGroup.inc:84 +#: ../lib/modules/zarafaContact.inc:76 ../lib/modules/zarafaGroup.inc:90 +#: ../lib/modules/zarafaAddressList.inc:72 ../lib/modules/zarafaUser.inc:85 +msgid "You can use this to temporarily deactivate the Zarafa extension." +msgstr "Sie können hiermit die Zarafa-Erweiterung temporär deaktivieren." + +#: ../lib/modules/passwordSelfReset.inc:126 +#: ../lib/modules/passwordSelfReset.inc:136 ../help/help.inc:253 +msgid "" +"You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. " +"@@uid@@ for the user name)." +msgstr "" +"Sie können Platzhalter für LDAP-Attribute im Format @@Attribut@@ (z.B. " +"@@uid@@ für den Benutzernamen) verwenden." + +#: ../lib/modules/customScripts.inc:65 ../lib/modules/customScripts.inc:78 +msgid "" +"You can use wildcards in the format $wildcard$ which are replaced by the " +"LDAP attribute with the same name. For multi-value attributes the values " +"will be separated by commas." +msgstr "" +"Sie können Platzhalter im Format $Platzhalter$ verwenden, die durch das LDAP-" +"Attribut gleichen Namens ersetzt werden. Attribute mit mehreren Werten " +"werden mit Komma getrennt aufgelöst." + +#: ../lib/modules/zarafaContact.inc:191 +msgid "" +"You cannot add the Zarafa and Zarafa contact extension at the same time." +msgstr "" +"Sie können die Zarafa- und Zarafa-Kontakt-Erweiterung nicht gleichzeitig " +"aktivieren." + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:52 +msgid "You cannot perform updates while server is in read-only mode" +msgstr "Sie können im Nur-Lesen-Modus keine Änderungen vornehmen." + +#: ../templates/3rdParty/pla/htdocs/rename.php:26 +msgid "You cannot rename an entry which has child entries." +msgstr "Sie können keinen Eintrag mit Unterelementen umbenennen." + +#: ../templates/config/confmain.php:505 +msgid "" +"You cannot use SSL and TLS encryption at the same time. Please use either " +"\"ldaps://\" or TLS." +msgstr "" +"Sie können SSL und TLS nicht gleichzeitig aktivieren. Bitte nutzen Sie " +"entweder \"ldaps://\" oder TLS." + +#: ../templates/3rdParty/pla/htdocs/rename.php:32 +msgid "You did not change the RDN" +msgstr "Sie haben den RDN nicht geändert" + +#: ../templates/tests/schemaTest.php:61 +msgid "" +"You do not have the required access rights or the LDAP schema is not " +"published by your server." +msgstr "" +"Sie haben nicht die erforderlichen Rechte oder das LDAP-Schema wird von " +"Ihrem LDAP-Server nicht veröffentlicht." + +#: ../lib/modules/dhcp_settings.inc:322 ../lib/modules/dhcp_settings.inc:323 +msgid "You entered one or more invalid DNS servers." +msgstr "Sie haben mindestens einen ungültigen DNS-Server angegeben." + +#: ../templates/3rdParty/pla/lib/Template.php:417 +#: ../templates/3rdParty/pla/lib/Template.php:504 +msgid "You left the attribute value blank. Please go back and try again." +msgstr "" +"Der Wert des Attributes war leer. Bitte gehen Sie zurück und füllen den " +"Eintrag." + +#: ../templates/3rdParty/pla/htdocs/create.php:51 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:45 +#, php-format +msgid "You left the value blank for required attribute (%s)." +msgstr "Bitte setzen Sie einen Wert für das erforderliche Attribut: %s" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:171 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:209 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:133 +msgid "You made no changes" +msgstr "Es wurde nichts geändert." + +#: ../templates/config/mainmanage.php:172 +#: ../templates/config/mainmanage.php:178 +#: ../templates/config/mainmanage.php:190 +msgid "You might need to restart your webserver for changes to take effect." +msgstr "" +"Sie müssen den Webserver ggf. neu starten damit die Änderungen wirksam " +"werden." + +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#, php-format +msgid "You might want to use %s instead of %s." +msgstr "Sie möchten evtl. %s statt %s verwenden." + +#: ../templates/3rdParty/pla/lib/import_functions.php:95 +msgid "You must either upload a file or provide an import in the text box." +msgstr "" +"Sie müssen entweder eine Datei angeben oder die Kommandos in das Textfeld " +"eingeben." + +#: ../lib/modules/groupOfNames.inc:210 ../lib/modules/groupOfNames.inc:211 +msgid "You need to add at least one member to this group." +msgstr "Sie müssen mindestens ein Mitglied zu dieser Gruppe hinzufügen." + +#: ../lib/modules/passwordSelfReset.inc:229 +msgid "You specified an answer but no security question." +msgstr "Sie haben eine Antwort angegeben aber keine Sicherheitsfrage dazu." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1136 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "You will be prompted to confirm this decision" +msgstr "Sie werden um eine Bestätigung für diese Entscheidung gefragt werden" + +#: ../lib/modules/imapAccess.inc:184 +msgid "Your IMAP domains and email address domain do not match." +msgstr "Ihre IMAP-Domänen stimmen nicht mit der EMail-Adresse überein." + +#: ../templates/tests/lamdaemonTest.php:234 +#, php-format +msgid "" +"Your LAM admin user (%s) must be a valid Unix account to work with lamdaemon!" +msgstr "" +"Ihr LAM-Admin-Benutzer (%s) muss ein gültiger Unix-Account sein um mit " +"Lamdaemon zu funktionieren!" + +#: ../lib/lamdaemon.inc:61 ../lib/lamdaemon.inc:66 +msgid "" +"Your LAM admin user must be a valid Unix account to work with lamdaemon!" +msgstr "" +"Ihr LAM-Admin-Benutzer muss ein gültiger Unix-Account sein um mit Lamdaemon " +"zu funktionieren!" + +#: ../lib/modules/imapAccess.inc:186 +msgid "Your LAM login password was not accepted by the IMAP server." +msgstr "Ihr LAM-Anmeldepasswort wurde vom IMAP-Server nicht akzeptiert." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:125 +msgid "" +"Your PHP configuration has disabled file uploads. Please check php.ini " +"before proceeding." +msgstr "" +"Ihre PHP-Konfiguration erlaubt keine Dateiuploads. Bitte prüfen Sie Ihre php." +"ini." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:16 +msgid "" +"Your PHP.INI does not have file_uploads = ON. Please enable file uploads in " +"PHP." +msgstr "Sie müssen Dateiuploads in der php.ini (file_uploads=ON) aktivieren." + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:372 +msgid "" +"Your changes cannot be saved until you make the file writable for the " +"webserver user." +msgstr "" +"Ihre Änderungen können erst gespeichert werden wenn Sie die Datei für den " +"Webserver schreibbar machen." + +#: ../lib/modules/selfRegistration.inc:721 +msgid "" +"Your new account was created but post processing failed. Please contact your " +"local administrator." +msgstr "" +"Ihr neues Konto wurde erstellt aber die Nachbearbeitung schlug fehl. Bitte " +"kontaktieren Sie Ihren lokalen Administrator." + +#: ../lib/modules/selfRegistration.inc:718 +msgid "" +"Your new account was successfully created. Please return to login to change " +"your user data." +msgstr "" +"Ihr neuer Benutzer wurde erfolgreich angelegt. Bitte gehen Sie zum Login " +"zurück um Ihre persönlichen Daten zu ändern." + +#: ../lib/account.inc:1202 ../lib/modules/windowsUser.inc:1878 +msgid "" +"Your password does not meet the password strength qualifications. Please " +"retry with another one." +msgstr "" +"Ihr Passwort erfüllt nicht die Passwortrichtlinien. Bitte versuchen Sie ein " +"anderes." + +#: ../lib/modules/passwordSelfReset.inc:563 +msgid "Your password was changed to @@newPassword@@." +msgstr "Ihr Passwort wurde auf @@newPassword@@ geändert." + +#: ../lib/security.inc:192 +msgid "Your session expired, click here to go back to the login page." +msgstr "" +"Ihre Sitzung ist abgelaufen, klicken Sie hier, um zur Anmeldeseite " +"zurückzukehren." + +#: ../templates/login.php:296 +#: ../templates/selfService/selfServiceLogin.php:113 +msgid "Your session expired, please log in again." +msgstr "Ihre Sitzung ist abgelaufen, bitte melden Sie sich erneut an." + +#: ../templates/login.php:301 ../templates/login.php:306 +#: ../templates/login.php:315 +msgid "Your settings were successfully saved." +msgstr "Ihre Einstellungen wurden erfolgreich gespeichert." + +#: ../lib/modules/windowsUser.inc:346 ../lib/modules/inetOrgPerson.inc:512 +#: ../lib/modules/inetOrgPerson.inc:544 +msgid "YourCompany" +msgstr "IhreFirma" + +#: ../lib/modules/zarafaGroup.inc:56 ../lib/modules/zarafaUser.inc:61 +#: ../lib/modules/zarafaServer.inc:56 +msgid "Zarafa" +msgstr "Zarafa" + +#: ../lib/modules/zarafaAddressList.inc:51 +msgid "Zarafa address list" +msgstr "Zarafa Adressliste" + +#: ../lib/types/zarafaAddressListType.inc:53 +#: ../lib/types/zarafaAddressListType.inc:62 +msgid "Zarafa address lists" +msgstr "Zarafa Adresslisten" + +#: ../lib/modules/zarafaContact.inc:56 +msgid "Zarafa contact" +msgstr "Zarafa-Kontakt" + +#: ../lib/modules/zarafaDynamicGroup.inc:51 +msgid "Zarafa dynamic group" +msgstr "Zarafa Dynamische Gruppe" + +#: ../lib/types/zarafaDynamicGroupType.inc:53 +#: ../lib/types/zarafaDynamicGroupType.inc:62 +msgid "Zarafa dynamic groups" +msgstr "Zarafa Dynamische Gruppen" + +#: ../lib/modules/zarafaDynamicGroup.inc:95 +#: ../lib/modules/zarafaDynamicGroup.inc:183 +#: ../lib/modules/zarafaContact.inc:106 ../lib/modules/zarafaContact.inc:123 +#: ../lib/modules/zarafaGroup.inc:112 ../lib/modules/zarafaGroup.inc:127 +#: ../lib/modules/zarafaAddressList.inc:83 +#: ../lib/modules/zarafaAddressList.inc:156 ../lib/modules/zarafaUser.inc:171 +#: ../lib/modules/zarafaUser.inc:394 ../lib/modules/zarafaUser.inc:1773 +#: ../lib/modules/zarafaServer.inc:92 ../lib/modules/zarafaServer.inc:153 +msgid "Zarafa schema" +msgstr "Zarafa-Schema" + +#: ../lib/modules/zarafaUser.inc:160 ../lib/modules/zarafaUser.inc:164 +msgid "Zarafa will store the user's archives on these servers." +msgstr "Zarafa speichert die Archive des Benutzers auf diesen Servern." + +#: ../lib/types/bind.inc:78 ../lib/modules/ddns.inc:102 +#: ../lib/modules/ddns.inc:113 ../lib/modules/ddns.inc:128 +#: ../lib/modules/ddns.inc:394 ../lib/modules/ddns.inc:425 +msgid "Zone name" +msgstr "Zonenname" + +#: ../lib/modules/ddns.inc:103 +msgid "Zone name for the DNS server (e.g. company.local)." +msgstr "Zonenname für die DNS-Server (z.B. firma.local)." + +#: ../lib/modules/sambaSamAccount.inc:497 ../lib/modules/windowsUser.inc:438 +msgid "\\\\server\\homes\\smiller" +msgstr "\\\\server\\homes\\hmueller" + +#: ../lib/modules/sambaSamAccount.inc:505 ../lib/modules/windowsUser.inc:420 +msgid "\\\\server\\profiles\\smiller" +msgstr "\\\\server\\profile\\hmueller" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "add value" +msgstr "Wert hinzufügen" + +#: ../lib/modules/zarafaDynamicGroup.inc:118 ../lib/modules/posixGroup.inc:461 +#: ../lib/modules/zarafaAddressList.inc:106 ../lib/modules/pykotaGroup.inc:150 +#: ../lib/modules/pykotaGroup.inc:159 ../lib/modules/nisnetgroup.inc:114 +#: ../lib/modules/organizationalRole.inc:116 +#: ../lib/modules/windowsGroup.inc:237 ../lib/modules/groupOfNames.inc:128 +msgid "adminstrators" +msgstr "administratoren" + +#: ../templates/config/mainmanage.php:394 +#: ../templates/config/mainmanage.php:430 +msgid "all" +msgstr "Alle" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:112 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:95 +msgid "attribute deleted" +msgstr "Attribut gelöscht" + +#: ../lib/modules/sudoRole.inc:148 +msgid "backupRootFileSystem" +msgstr "sichereRootDateisystem" + +#: ../lib/modules/pykotaBillingCode.inc:103 +msgid "billingCode01" +msgstr "rechnungscode01" + +#: ../templates/3rdParty/pla/lib/functions.php:2298 +msgid "browse" +msgstr "Auswählen" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "bytes" +msgstr "Bytes" + +#: ../templates/schema/schema.php:220 +msgid "character" +msgstr "Zeichen" + +#: ../templates/schema/schema.php:219 +msgid "characters" +msgstr "Zeichen" + +#: ../lib/modules/freeRadius.inc:179 +msgid "company.com" +msgstr "firma.de" + +#: ../templates/3rdParty/pla/lib/PageRender.php:619 +#: ../templates/3rdParty/pla/lib/PageRender.php:988 +msgid "confirm" +msgstr "Bestätigen" + +#: ../help/help.inc:82 +msgid "dc=yourcompany,dc=com" +msgstr "dc=ihreFirma,dc=com" + +#: ../templates/config/mainmanage.php:429 ../lib/modules/ppolicyUser.inc:122 +msgid "default" +msgstr "Standard" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:205 +msgid "delete" +msgstr "Löschen" + +#: ../templates/3rdParty/pla/lib/PageRender.php:677 +msgid "delete attribute" +msgstr "Attribut löschen" + +#: ../lib/modules/sambaSamAccount.inc:1543 +#: ../lib/modules/sambaSamAccount.inc:1952 ../lib/modules/zarafaUser.inc:619 +#: ../lib/modules/zarafaUser.inc:1285 ../lib/modules/zarafaUser.inc:1326 +msgid "disabled" +msgstr "deaktiviert" + +#: ../lib/modules/sambaSamAccount.inc:1554 +#: ../lib/modules/sambaSamAccount.inc:1963 +msgid "disconnect" +msgstr "trennen" + +#: ../lib/modules/windowsUser.inc:468 ../lib/modules/windowsGroup.inc:245 +msgid "domain" +msgstr "Domäne" + +#: ../templates/3rdParty/pla/lib/PageRender.php:664 +msgid "download value" +msgstr "Wert downloaden" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:206 +msgid "edit" +msgstr "Ändern" + +#: ../lib/modules/zarafaUser.inc:619 ../lib/modules/zarafaUser.inc:1280 +#: ../lib/modules/zarafaUser.inc:1326 +msgid "enabled" +msgstr "aktiviert" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:481 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:307 +msgid "export" +msgstr "Export" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:123 +msgid "false" +msgstr "falsch" + +#: ../lib/modules/ppolicy.inc:37 +msgid "force" +msgstr "erzwingen" + +#: ../lib/modules/sambaSamAccount.inc:1562 +#: ../lib/modules/sambaSamAccount.inc:1971 +msgid "from any client" +msgstr "von jedem Client" + +#: ../lib/modules/sambaSamAccount.inc:1563 +#: ../lib/modules/sambaSamAccount.inc:1972 +msgid "from previous client only" +msgstr "nur vom letzten Client" + +#: ../lib/modules/posixAccount.inc:306 ../lib/modules/posixAccount.inc:366 +#: ../lib/modules/nisnetgroup.inc:128 ../lib/modules/groupOfNamesUser.inc:73 +msgid "group01,group02" +msgstr "gruppe01,gruppe02" + +#: ../lib/modules/freeRadius.inc:187 +msgid "group01;group02" +msgstr "gruppe01;gruppe02" + +#: ../lib/modules/zarafaDynamicGroup.inc:132 +#: ../lib/modules/zarafaGroup.inc:164 +msgid "group1@company.com,group2@company.com" +msgstr "gruppe1@firma.de,gruppe2@firma.de" + +#: ../lib/modules/zarafaDynamicGroup.inc:126 +#: ../lib/modules/zarafaGroup.inc:172 ../lib/modules/windowsGroup.inc:221 +msgid "group@company.com" +msgstr "gruppe@firma.de" + +#: ../templates/3rdParty/pla/lib/PageRender.php:471 +msgid "hint" +msgstr "Hinweis" + +#: ../lib/modules/quota.inc:198 ../lib/modules/quota.inc:200 +msgid "hours" +msgstr "Stunden" + +#: ../lib/modules/windowsUser.inc:376 ../lib/modules/windowsUser.inc:382 +#: ../lib/modules/inetOrgPerson.inc:480 +msgid "http://www.company.com" +msgstr "http://www.firma.de" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:294 +msgid "import" +msgstr "Import" + +#: ../lib/modules/sambaSamAccount.inc:1547 +#: ../lib/modules/sambaSamAccount.inc:1956 +msgid "input off, notify off" +msgstr "Eingabe aus, Benachrichtigung aus" + +#: ../lib/modules/sambaSamAccount.inc:1546 +#: ../lib/modules/sambaSamAccount.inc:1955 +msgid "input off, notify on" +msgstr "Eingabe aus, Benachrichtigung ein" + +#: ../lib/modules/sambaSamAccount.inc:1545 +#: ../lib/modules/sambaSamAccount.inc:1954 +msgid "input on, notify off" +msgstr "Eingabe ein, Benachrichtigung aus" + +#: ../lib/modules/sambaSamAccount.inc:1544 +#: ../lib/modules/sambaSamAccount.inc:1953 +msgid "input on, notify on" +msgstr "Eingabe ein, Benachrichtigung ein" + +#: ../help/help.inc:64 +msgid "" +"ldap://localhost:389 connects to localhost using a standard LDAP connection " +"on port 389" +msgstr "ldap://localhost:389 baut eine einfache Verbindung zu localhost auf." + +#: ../help/help.inc:66 +msgid "" +"ldaps://ldap.domain.com connects to ldap.domain.com using an encrypted LDAP " +"connection." +msgstr "" +"ldaps://ldap.domain.com baut eine verschlüsselte Verbindung zu ldap.domain." +"com auf." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:100 +msgid "list" +msgstr "Liste" + +#: ../templates/3rdParty/pla/lib/config_default.php:494 +#: ../templates/3rdParty/pla/lib/ds.php:318 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:529 +msgid "login" +msgstr "Login" + +#: ../lib/modules/posixAccount.inc:391 +msgid "machines" +msgstr "Hosts" + +#: ../lib/modules/inetLocalMailRecipient.inc:114 +msgid "mail.yourdomain.org" +msgstr "mail.ihredomain.de" + +#: ../lib/modules/sambaSamAccount.inc:416 +#: ../lib/modules/sambaSamAccount.inc:540 +msgid "mydomain" +msgstr "meineDomaene" + +#: ../lib/modules/sambaSamAccount.inc:473 +msgid "mygroup" +msgstr "meineGruppe" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:504 +msgid "new" +msgstr "neu" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:454 +#: ../lib/modules/zarafaDynamicGroup.inc:457 +#: ../lib/modules/zarafaContact.inc:568 ../lib/modules/zarafaGroup.inc:651 +#: ../lib/modules/zarafaGroup.inc:658 ../lib/modules/zarafaGroup.inc:661 +#: ../lib/modules/zarafaAddressList.inc:336 +#: ../lib/modules/zarafaAddressList.inc:339 +#: ../lib/modules/sambaSamAccount.inc:584 +#: ../lib/modules/sambaSamAccount.inc:1920 +#: ../lib/modules/sambaSamAccount.inc:1928 +#: ../lib/modules/sambaSamAccount.inc:1938 +#: ../lib/modules/sambaSamAccount.inc:1943 +#: ../lib/modules/sambaSamAccount.inc:1948 ../lib/modules/zarafaUser.inc:602 +#: ../lib/modules/zarafaUser.inc:1238 ../lib/modules/zarafaUser.inc:1253 +#: ../lib/modules/zarafaUser.inc:1264 ../lib/modules/zarafaUser.inc:1270 +#: ../lib/modules/windowsUser.inc:388 ../lib/modules/windowsUser.inc:389 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:396 +#: ../lib/modules/windowsUser.inc:397 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:404 ../lib/modules/windowsUser.inc:405 +#: ../lib/modules/windowsUser.inc:406 ../lib/modules/windowsUser.inc:412 +#: ../lib/modules/windowsUser.inc:413 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:1177 ../lib/modules/windowsUser.inc:1615 +#: ../lib/modules/windowsUser.inc:1620 ../lib/modules/windowsUser.inc:1625 +#: ../lib/modules/windowsUser.inc:1630 ../lib/modules/ppolicy.inc:35 +#: ../lib/modules/ppolicy.inc:481 ../lib/modules/ppolicy.inc:491 +#: ../lib/modules/ppolicy.inc:496 ../lib/modules/ppolicy.inc:503 +#: ../lib/modules/ppolicy.inc:506 ../lib/modules/generalInformation.inc:100 +#: ../lib/modules/zarafaServer.inc:358 ../lib/modules/customFields.inc:2890 +#: ../lib/modules/fixed_ip.inc:752 +msgid "no" +msgstr "nein" + +#: ../templates/3rdParty/pla/lib/functions.php:1902 +msgid "no description available" +msgstr "Keine Beschreibung verfügbar" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:68 +msgid "no entries" +msgstr "Keine Einträge" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:84 +msgid "no new attributes available for this entry" +msgstr "Keine neuen Attribute für diesen EIntrag verfügbar" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:135 +msgid "no new binary attributes available for this entry" +msgstr "Keine neuen binären Attribute für diesen Eintrag verfügbar" + +#: ../templates/schema/schema.php:160 ../templates/schema/schema.php:229 +#: ../templates/schema/schema.php:240 ../templates/schema/schema.php:289 +#: ../templates/schema/schema.php:355 ../templates/schema/schema.php:370 +#: ../templates/schema/schema.php:404 ../templates/schema/schema.php:426 +#: ../templates/3rdParty/pla/lib/functions.php:2612 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1573 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1581 +msgid "none" +msgstr "nichts" + +#: ../templates/3rdParty/pla/lib/PageRender.php:1109 +msgid "none, remove value" +msgstr "nichts, Wert löschen" + +#: ../templates/schema/schema.php:216 +msgid "not applicable" +msgstr "nicht anwendbar" + +#: ../templates/schema/schema.php:167 ../templates/schema/schema.php:172 +#: ../templates/schema/schema.php:177 ../templates/schema/schema.php:210 +msgid "not specified" +msgstr "nicht spezifiziert" + +#: ../help/help.inc:76 +msgid "" +"ou=People,dc=yourcompany,dc=com will read and store all accounts in this " +"subtree." +msgstr "" +"ou=People,dc=yourcompany,dc=com liest und speichert alle Accounts in diesem " +"Unterzweig." + +#: ../lib/modules/eduPerson.inc:202 ../lib/modules/eduPerson.inc:208 +#: ../lib/modules/eduPerson.inc:214 +msgid "ou=accounts,dc=yourdomain,dc=org" +msgstr "ou=accounts,dc=ihreFirma,dc=de" + +#: ../lib/modules/posixAccount.inc:377 +msgid "pc01$" +msgstr "pc01$" + +#: ../lib/modules/posixAccount.inc:400 +msgid "pc01,Room 2.34" +msgstr "pc01,Raum 2.34" + +#: ../lib/modules/hostObject.inc:93 +msgid "pc01,pc02" +msgstr "pc01,pc02" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +msgid "pixels" +msgstr "Pixel" + +#: ../lib/modules/pykotaPrinter.inc:148 +msgid "printer01" +msgstr "drucker01" + +#: ../lib/modules/pykotaPrinter.inc:188 +msgid "printergroup1" +msgstr "druckergruppe1" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:54 +msgid "read only" +msgstr "Nur lesen" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:251 +msgid "refresh" +msgstr "Aktualisieren" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2126 +msgid "rename" +msgstr "Umbenennen" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 ../lib/html.inc:797 +#: ../lib/html.inc:1708 ../lib/html.inc:2285 +msgid "required" +msgstr "erforderlich" + +#: ../lib/modules/sambaSamAccount.inc:1555 +#: ../lib/modules/sambaSamAccount.inc:1964 +msgid "reset" +msgstr "zurücksetzen" + +#: ../lib/modules/organizationalRoleUser.inc:73 +msgid "role01,role02" +msgstr "rolle01,rolle02" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:237 +msgid "search" +msgstr "Suche" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:472 +msgid "seconds" +msgstr "Sekunden" + +#: ../lib/modules/mitKerberos.inc:244 ../lib/modules/asteriskAccount.inc:327 +#: ../lib/modules/posixGroup.inc:444 ../lib/modules/sambaSamAccount.inc:428 +#: ../lib/modules/posixAccount.inc:334 ../lib/modules/windowsUser.inc:274 +#: ../lib/modules/inetOrgPerson.inc:2088 +#: ../lib/modules/asteriskVoicemail.inc:167 +#: ../lib/modules/heimdalKerberos.inc:213 +msgid "secret" +msgstr "geheim" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1263 +msgid "select the rdn attribute" +msgstr "RDN-Attribut wählen" + +#: ../lib/modules/mitKerberos.inc:213 ../lib/modules/uidObject.inc:69 +#: ../lib/modules/posixAccount.inc:285 ../lib/modules/windowsUser.inc:266 +#: ../lib/modules/windowsUser.inc:451 ../lib/modules/windowsUser.inc:460 +#: ../lib/modules/pykotaUser.inc:192 ../lib/modules/pykotaUser.inc:210 +#: ../lib/modules/inetOrgPerson.inc:2079 +#: ../lib/modules/heimdalKerberos.inc:182 ../lib/modules/nisMailAlias.inc:110 +msgid "smiller" +msgstr "hmueller" + +#: ../lib/modules/inetLocalMailRecipient.inc:102 +msgid "smiller@otherdomain.org" +msgstr "hmueller@anderedomain.de" + +#: ../lib/modules/inetLocalMailRecipient.inc:108 +msgid "smiller@yourdomain.org" +msgstr "hmueller@ihredomain.de" + +#: ../lib/modules/ldapPublicKey.inc:90 +msgid "ssh-dss 234234 user@host" +msgstr "ssh-dss 234234 Benutzer@Host" + +#: ../templates/3rdParty/pla/lib/PageRender.php:882 +msgid "structural" +msgstr "strukturell" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:102 +msgid "table" +msgstr "Tabelle" + +#: ../lib/modules/asteriskExtension.inc:154 +msgid "test" +msgstr "test" + +#: ../lib/modules/asteriskExtension.inc:174 +msgid "test-start" +msgstr "test-start" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:122 +msgid "true" +msgstr "wahr" + +#: ../lib/modules/ipHost.inc:99 ../lib/modules/inetOrgPerson.inc:366 +#: ../lib/modules/aliasEntry.inc:71 ../lib/modules/qmailGroup.inc:281 +#: ../lib/modules/qmailGroup.inc:289 ../lib/modules/qmailGroup.inc:297 +msgid "uid=smiller,ou=People,dc=company,dc=com" +msgstr "uid=hmueller,ou=People,dc=ihreFirma,dc=de" + +#: ../templates/config/mainmanage.php:312 +msgid "use custom CA certificates" +msgstr "eigene CA-Zertifikate verwenden" + +#: ../templates/config/mainmanage.php:309 +msgid "use system certificates" +msgstr "Systemzertifikate verwenden" + +#: ../lib/modules/posixGroup.inc:452 +msgid "user01,user02,user03" +msgstr "benutzer01,benutzer02,benutzer03" + +#: ../lib/modules/qmailUser.inc:273 ../lib/modules/qmailUser.inc:279 +#: ../lib/modules/qmailUser.inc:301 ../lib/modules/eduPerson.inc:163 +#: ../lib/modules/windowsUser.inc:352 ../lib/modules/windowsUser.inc:358 +#: ../lib/modules/pykotaUser.inc:220 ../lib/modules/inetOrgPerson.inc:462 +#: ../lib/modules/kolabSharedFolder.inc:183 +#: ../lib/modules/asteriskVoicemail.inc:180 ../lib/modules/qmailGroup.inc:339 +#: ../lib/modules/qmailGroup.inc:347 ../lib/modules/qmailGroup.inc:355 +msgid "user@company.com" +msgstr "benutzer@firma.de" + +#: ../lib/modules/posixAccount.inc:299 +msgid "users" +msgstr "Benutzer" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:59 +msgid "view entries" +msgstr "Einträge anzeigen" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +msgid "with " +msgstr "mit" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:452 +#: ../lib/modules/zarafaDynamicGroup.inc:459 +#: ../lib/modules/zarafaContact.inc:570 ../lib/modules/zarafaGroup.inc:653 +#: ../lib/modules/zarafaGroup.inc:656 ../lib/modules/zarafaGroup.inc:663 +#: ../lib/modules/zarafaAddressList.inc:334 +#: ../lib/modules/zarafaAddressList.inc:341 +#: ../lib/modules/sambaSamAccount.inc:584 +#: ../lib/modules/sambaSamAccount.inc:1918 +#: ../lib/modules/sambaSamAccount.inc:1926 +#: ../lib/modules/sambaSamAccount.inc:1936 +#: ../lib/modules/sambaSamAccount.inc:1941 +#: ../lib/modules/sambaSamAccount.inc:1946 ../lib/modules/zarafaUser.inc:602 +#: ../lib/modules/zarafaUser.inc:1240 ../lib/modules/zarafaUser.inc:1256 +#: ../lib/modules/zarafaUser.inc:1266 ../lib/modules/zarafaUser.inc:1272 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:406 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:1177 ../lib/modules/windowsUser.inc:1520 +#: ../lib/modules/windowsUser.inc:1617 ../lib/modules/windowsUser.inc:1622 +#: ../lib/modules/windowsUser.inc:1627 ../lib/modules/windowsUser.inc:1632 +#: ../lib/modules/ppolicy.inc:36 ../lib/modules/ppolicy.inc:493 +#: ../lib/modules/ppolicy.inc:498 ../lib/modules/ppolicy.inc:501 +#: ../lib/modules/ppolicy.inc:508 ../lib/modules/inetOrgPerson.inc:536 +#: ../lib/modules/generalInformation.inc:102 +#: ../lib/modules/zarafaServer.inc:360 ../lib/modules/customFields.inc:2890 +#: ../lib/modules/fixed_ip.inc:750 +msgid "yes" +msgstr "ja" + +#~ msgid "Mycity" +#~ msgstr "Stadt" + +#~ msgid "" +#~ "You cannot add the Kolab group and shared folder extension at the same " +#~ "time." +#~ msgstr "" +#~ "Sie können die Kolab-Gruppen- und Kolab-GemeinsameOrdner-Erweiterung " +#~ "nicht gleichzeitig aktivieren." + +#~ msgid "The IP address \"%s\" is invalid." +#~ msgstr "Die IP-Adresse \"%s\" ist ungültig." + +#~ msgid "" +#~ "Each line represents one LDAP attribute. The options are separated by \"::" +#~ "\". The first option specifies if the attribute is mandatory. It can have " +#~ "the values \"optional\" and \"required\"." +#~ msgstr "" +#~ "Jede Zeile repräsentiert ein LDAP-Attribut. Die Optionen werden durch \"::" +#~ "\" getrennt. Die erste Option spezifiziert ob das Attribut ein " +#~ "Pflichtfeld ist. Sie kann die Werte \"optional\" und \"required\" " +#~ "annehmen." + +#~ msgid "New Authorized Service" +#~ msgstr "Neuer erlaubter Dienst" + +#~ msgid "New IP address" +#~ msgstr "Neue IP-Adresse" + +#~ msgid "New MAC address" +#~ msgstr "Neue MAC-Adresse" + +#~ msgid "New SSH public key" +#~ msgstr "Neuer öffentlicher SSH-Schlüssel" + +#~ msgid "Options four and five are used for input validation." +#~ msgstr "Die Optionen vier und fünf werden zur Eingabeprüfung verwendet." + +#~ msgid "" +#~ "Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") and an " +#~ "error message if the value does not match it. For a syntax description " +#~ "see here." +#~ msgstr "" +#~ "Bitte geben Sie einen regulären Ausdruck (z.B. \"/^[0-9a-zA-Z]+/$\") und " +#~ "eine Fehlermeldung, falls der Wert nicht dazu passt, ein. Eine " +#~ "Syntaxbeschreibung finden Sie hier." + +#~ msgid "" +#~ "The second option is the LDAP attribute name and the third one is a " +#~ "descriptive label for it." +#~ msgstr "" +#~ "Die zweite Option ist der LDAP-Attributname und die dritte Option enthält " +#~ "eine Beschreibung des Attributs." + +#~ msgid "User ID" +#~ msgstr "Benutzer ID" + +#, fuzzy +#~ msgid "Please enter the host's name." +#~ msgstr "Bitte geben Sie den Hostnamen an." + +#~ msgid "User name and email" +#~ msgstr "Benutzername und Email-Adresse" + +#~ msgid "Deleted account" +#~ msgstr "Gelöschter Account" + +#~ msgid "Invalid account" +#~ msgstr "Ungültiger Account" + +#~ msgid "" +#~ "Password contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +#~ "and #*,.;:_-+!%&/|?{[()]}=@$ !" +#~ msgstr "" +#~ "Passwort enthält ungültige Zeichen. Gültige Zeichen sind: a-z, A-Z, 0-9 " +#~ "und #*,.;:_-+!%&/|?{[()]}=@$ !" + +#~ msgid "Sync Asterisk voicemail password with Unix password" +#~ msgstr "Asterisk-Anrufbeantworterpasswort mit Unix synchronisieren" + +#~ msgid "Sync Kerberos password with Unix password" +#~ msgstr "Kerberos-Passwort mit Unix synchronisieren" + +#~ msgid "The domain name needs to have at least 3 characters." +#~ msgstr "Der Domänenname muss mindestens drei Zeichen lang sein." + +#~ msgid "" +#~ "To disable login use /bin/false. The list of shells is read from lam/" +#~ "config/shells" +#~ msgstr "" +#~ "Verwenden Sie /bin/false um den Login zu deaktivieren. Die Shellliste " +#~ "wird von lam/config/shells gelesen." + +#~ msgid "Unable to read sambaSID attribute." +#~ msgstr "Konnte das Attribut sambaSID nicht lesen." + +#~ msgid "" +#~ "Unable to sync the time when the user can/must change his password " +#~ "because no domain was found." +#~ msgstr "" +#~ "Die Zeit wann der Benutzer sein Passwort ändern kann/muss konnte nicht " +#~ "angepasst werden, da keine Domäne gefunden wurde." + +#~ msgid "" +#~ "You are using a capital letters. This can cause problems because Windows " +#~ "isn't case-sensitive." +#~ msgstr "" +#~ "Sie verwenden Großbuchstaben, das kann Probleme verursachen, da Windows " +#~ "Groß-/Kleinschreibung nicht unterscheidet." + +#~ msgid "" +#~ "You are using a capital letters. This can cause problems because windows " +#~ "isn't case-sensitive." +#~ msgstr "" +#~ "Sie verwenden Großbuchstaben, das kann Probleme verursachen, da Windows " +#~ "Groß-/Kleinschreibung nicht unterscheidet." + +#, fuzzy +#~ msgid "Export PDF structures" +#~ msgstr "PDF-Struktur" + +#, fuzzy +#~ msgid "Export profiles" +#~ msgstr "Profil laden" diff --git a/lam/locale/en_US/LC_MESSAGES/messages.mo b/lam/locale/en_US/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..71a40186 Binary files /dev/null and b/lam/locale/en_US/LC_MESSAGES/messages.mo differ diff --git a/lam/locale/en_US/LC_MESSAGES/messages.po b/lam/locale/en_US/LC_MESSAGES/messages.po new file mode 100644 index 00000000..a5690676 --- /dev/null +++ b/lam/locale/en_US/LC_MESSAGES/messages.po @@ -0,0 +1,17084 @@ +# +# LDAP Account Manager +# +# Roland Gruber , 2013, 2014. +msgid "" +msgstr "" +"Project-Id-Version: LAM\n" +"Report-Msgid-Bugs-To: post@rolandgruber.de \n" +"PO-Revision-Date: 2014-05-31 15:46+0200\n" +"Last-Translator: Roland Gruber \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.4\n" + +#: ../lib/modules/zarafaContact.inc:95 ../lib/modules/zarafaContact.inc:98 +#: ../lib/modules/zarafaContact.inc:101 ../lib/modules/zarafaContact.inc:126 +#: ../lib/modules/zarafaGroup.inc:97 ../lib/modules/zarafaGroup.inc:100 +#: ../lib/modules/zarafaGroup.inc:103 ../lib/modules/zarafaGroup.inc:130 +#: ../lib/modules/zarafaUser.inc:144 ../lib/modules/zarafaUser.inc:147 +#: ../lib/modules/zarafaUser.inc:150 ../lib/modules/zarafaUser.inc:1812 +msgid "\"Send as\" attribute" +msgstr "Used by attributes" + +#: ../lib/modules/zarafaContact.inc:79 ../lib/modules/zarafaContact.inc:150 +#: ../lib/modules/zarafaContact.inc:173 ../lib/modules/zarafaContact.inc:187 +#: ../lib/modules/zarafaContact.inc:226 ../lib/modules/zarafaContact.inc:355 +#: ../lib/modules/zarafaContact.inc:565 ../lib/modules/zarafaGroup.inc:93 +#: ../lib/modules/zarafaGroup.inc:138 ../lib/modules/zarafaGroup.inc:188 +#: ../lib/modules/zarafaGroup.inc:206 ../lib/modules/zarafaGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:263 ../lib/modules/zarafaGroup.inc:415 +#: ../lib/modules/zarafaGroup.inc:650 ../lib/modules/zarafaUser.inc:104 +#: ../lib/modules/zarafaUser.inc:196 ../lib/modules/zarafaUser.inc:355 +#: ../lib/modules/zarafaUser.inc:382 ../lib/modules/zarafaUser.inc:419 +#: ../lib/modules/zarafaUser.inc:463 ../lib/modules/zarafaUser.inc:839 +#: ../lib/modules/zarafaUser.inc:1234 ../lib/modules/zarafaUser.inc:1465 +#: ../lib/modules/zarafaUser.inc:1793 +msgid "\"Send as\" privileges" +msgstr "\"Send as\" privileges" + +#: ../lib/modules/posixAccount.inc:519 +msgid "" +"$user and $group will be replaced with user name and primary group name." +msgstr "" +"UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced " +"with user and group name." + +#: ../lib/modules/nisnetgroup.inc:134 +msgid "(host1,user1,example.com);(host2,user2,example.com)" +msgstr "(host1,user1,example.com);(host2,user2,example.com)" + +#: ../lib/modules/qmailUser.inc:368 ../lib/modules/posixAccount.inc:312 +msgid "/home/smiller" +msgstr "smiller" + +#: ../lib/modules/inetOrgPerson.inc:419 +#: ../lib/modules/asteriskVoicemail.inc:186 +msgid "123-123-1234" +msgstr "123-123-1234" + +#: ../lib/modules/inetOrgPerson.inc:435 +msgid "123-123-1235" +msgstr "123-123-1235" + +#: ../lib/modules/inetOrgPerson.inc:443 +msgid "123-123-1236" +msgstr "123-123-1236" + +#: ../lib/modules/windowsUser.inc:364 ../lib/modules/windowsUser.inc:370 +#: ../lib/modules/inetOrgPerson.inc:427 +msgid "123-124-1234" +msgstr "123-124-1234" + +#: ../lib/modules/windowsUser.inc:322 ../lib/modules/inetOrgPerson.inc:411 +msgid "12345" +msgstr "12345" + +#: ../lib/modules/dhcp_settings.inc:174 +msgid "" +"B-Node (0x01): Broadcast.
    The client tries to find other " +"workstations via broadcasting\n" +"(works only inside the same collision domain, viz. the same subnet).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"The client contacts a Netbios name server (NBNS) from Microsoft Windows Name " +"Service (WINS) for name resolution.

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"The node tries broadcasting first. If that fails then it tries WINS.

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"The node tries WINS first. If that fails it tries broadcasting.

    \n" +"\n" +"By default, the nodes are configured as H-Nodes which fits for small " +"networks. In large networks Point-to-Point (0x02) should be used." +msgstr "" +"B-Node (0x01): Broadcast.
    The client tries to find other " +"workstations via broadcasting\n" +"(works only inside the same collision domain, viz. the same subnet).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"The client contacts a Netbios name server (NBNS) from Microsoft Windows Name " +"Service (WINS) for name resolution.

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"The node tries broadcasting first. If that fails then it tries WINS.

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"The node tries WINS first. If that fails it tries broadcasting.

    \n" +"\n" +"By default, the nodes are configured as H-Nodes which fits for small " +"networks. In large networks Point-to-Point (0x02) should be used." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:145 +#, php-format +msgid "Maximum length: %s characters" +msgstr "Maximum length: %s characters" + +#: ../lib/modules/bindDLZ.inc:499 +msgid "A CNAME record allows no other records." +msgstr "A CNAME record allows no other records." + +#: ../lib/modules/bindDLZ.inc:533 +msgid "A NS record allows no other records except SOA/MX/A records." +msgstr "A NS record allows no other records except SOA/MX/A records." + +#: ../lib/modules/bindDLZ.inc:517 +msgid "A SOA record allows no other records except NS/MX/A records." +msgstr "A SOA record allows no other records except NS/MX/A records." + +#: ../lib/modules/bindDLZ.inc:518 +msgid "A SOA record requires that the host name is set to \"@\"." +msgstr "A SOA record requires that the host name is set to \"@\"." + +#: ../lib/modules/selfRegistration.inc:631 +#: ../lib/modules/passwordSelfReset.inc:1590 +msgid "" +"A confirmation mail was sent. Please click on the link in the mail to " +"proceed." +msgstr "" +"A confirmation mail was sent. Please click on the link in the mail to " +"proceed." + +#: ../lib/modules/device.inc:82 +msgid "A description for this device." +msgstr "A description for this device." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +msgid "A list of attributes to display in the results (comma-separated)" +msgstr "A list of attributes to display in the results (comma-separated)" + +#: ../lib/modules/sudoRole.inc:95 ../lib/modules/sudoRole.inc:124 +msgid "A list of options (e.g. !authenticate)." +msgstr "A list of options (e.g. !authenticate)." + +#: ../templates/massBuildAccounts.php:135 +msgid "A required column is missing in your CSV file." +msgstr "A required column is missing in your CSV file." + +#: ../lib/modules/bindDLZ.inc:172 ../lib/modules/bindDLZ.inc:176 +msgid "A server name for this service (e.g. \"ldap.example.com.\")." +msgstr "A server name for this service (e.g. \"ldap.example.com.\")." + +#: ../lib/modules/bindDLZ.inc:164 ../lib/modules/bindDLZ.inc:168 +msgid "A text value for this host." +msgstr "A text value for this host." + +#: ../lib/modules/kolabUser.inc:133 +msgid "" +"A user may define who is allowed to act on behalf of herself. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"A user may define who is allowed to act on behalf of herself. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." + +#: ../templates/3rdParty/pla/lib/import_functions.php:593 +msgid "A valid deleteoldrdn attribute should be specified" +msgstr "A valid deleteoldrdn attribute should be specified" + +#: ../templates/3rdParty/pla/lib/import_functions.php:237 +msgid "A valid dn line is required" +msgstr "A valid dn line is required" + +#: ../templates/3rdParty/pla/lib/import_functions.php:596 +msgid "A valid newrdn attribute should be specified" +msgstr "A valid newrdn attribute should be specified" + +#: ../templates/3rdParty/pla/lib/import_functions.php:587 +msgid "A valid newsuperior attribute should be specified" +msgstr "A valid newsuperior attribute should be specified" + +#: ../lib/modules/bindDLZ.inc:96 ../lib/modules/bindDLZ.inc:105 +#: ../lib/modules/bindDLZ.inc:255 ../lib/modules/bindDLZ.inc:261 +#: ../lib/modules/bindDLZ.inc:479 +msgid "A/AAAA record" +msgstr "A/AAAA record" + +#: ../lib/modules/bindDLZ.inc:418 ../lib/modules/bindDLZ.inc:438 +#: ../lib/modules/bindDLZ.inc:1476 +msgid "A/AAAA records" +msgstr "A/AAAA records" + +#: ../lib/modules/asteriskAccount.inc:131 +#: ../lib/modules/asteriskAccount.inc:271 +#: ../lib/modules/asteriskAccount.inc:347 +#: ../lib/modules/asteriskAccount.inc:610 +#: ../lib/modules/asteriskAccount.inc:987 +#: ../lib/modules/asteriskAccount.inc:1243 +msgid "AMA flags" +msgstr "AMA flags" + +#: ../templates/serverInfo.php:342 +msgid "Abandon" +msgstr "Abandon" + +#: ../templates/lists/changePassword.php:714 +msgid "Aborted password change." +msgstr "Aborted password change." + +#: ../lib/modules/sambaSamAccount.inc:568 +msgid "Abu Dhabi, Muscat, Baku" +msgstr "Abu Dhabi, Muscat, Baku" + +#: ../templates/config/confmain.php:264 ../help/help.inc:109 +msgid "Access level" +msgstr "Access level" + +#: ../lib/modules/account.inc:65 +msgid "Account" +msgstr "Account" + +#: ../templates/massBuildAccounts.php:201 ../lib/modules/kolabGroup.inc:178 +#: ../lib/modules/kolabGroup.inc:180 ../lib/modules/kolabGroup.inc:182 +#: ../lib/modules/kolabGroup.inc:184 ../lib/modules/pykotaPrinter.inc:210 +#: ../lib/modules/pykotaPrinter.inc:212 ../lib/modules/pykotaPrinter.inc:214 +#: ../lib/modules/pykotaPrinter.inc:216 ../lib/modules/pykotaPrinter.inc:218 +#: ../lib/modules/pykotaPrinter.inc:219 ../lib/modules/pykotaPrinter.inc:220 +#: ../lib/modules/mitKerberos.inc:290 ../lib/modules/mitKerberos.inc:291 +#: ../lib/modules/mitKerberos.inc:292 ../lib/modules/mitKerberos.inc:294 +#: ../lib/modules/mitKerberos.inc:296 ../lib/modules/mitKerberos.inc:297 +#: ../lib/modules/zarafaDynamicGroup.inc:197 +#: ../lib/modules/zarafaDynamicGroup.inc:199 +#: ../lib/modules/zarafaDynamicGroup.inc:201 +#: ../lib/modules/zarafaDynamicGroup.inc:203 +#: ../lib/modules/zarafaDynamicGroup.inc:204 +#: ../lib/modules/zarafaDynamicGroup.inc:205 ../lib/modules/ipHost.inc:116 +#: ../lib/modules/ipHost.inc:117 ../lib/modules/asteriskAccount.inc:558 +#: ../lib/modules/asteriskAccount.inc:561 +#: ../lib/modules/asteriskAccount.inc:564 +#: ../lib/modules/asteriskAccount.inc:567 +#: ../lib/modules/asteriskAccount.inc:569 +#: ../lib/modules/asteriskAccount.inc:571 +#: ../lib/modules/asteriskAccount.inc:573 +#: ../lib/modules/asteriskAccount.inc:575 +#: ../lib/modules/asteriskAccount.inc:577 ../lib/modules/account.inc:125 +#: ../lib/modules/ieee802device.inc:96 ../lib/modules/puppetClient.inc:185 +#: ../lib/modules/puppetClient.inc:187 ../lib/modules/puppetClient.inc:189 +#: ../lib/modules/puppetClient.inc:190 ../lib/modules/qmailUser.inc:449 +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:453 +#: ../lib/modules/qmailUser.inc:454 ../lib/modules/qmailUser.inc:455 +#: ../lib/modules/qmailUser.inc:457 ../lib/modules/qmailUser.inc:459 +#: ../lib/modules/qmailUser.inc:461 ../lib/modules/qmailUser.inc:464 +#: ../lib/modules/qmailUser.inc:467 ../lib/modules/qmailUser.inc:469 +#: ../lib/modules/qmailUser.inc:470 ../lib/modules/qmailUser.inc:471 +#: ../lib/modules/zarafaContact.inc:186 ../lib/modules/zarafaContact.inc:188 +#: ../lib/modules/zarafaContact.inc:189 ../lib/modules/zarafaContact.inc:190 +#: ../lib/modules/zarafaContact.inc:191 ../lib/modules/windowsHost.inc:132 +#: ../lib/modules/posixGroup.inc:606 ../lib/modules/posixGroup.inc:610 +#: ../lib/modules/posixGroup.inc:611 ../lib/modules/zarafaGroup.inc:216 +#: ../lib/modules/zarafaGroup.inc:218 ../lib/modules/zarafaGroup.inc:219 +#: ../lib/modules/zarafaGroup.inc:220 ../lib/modules/zarafaGroup.inc:221 +#: ../lib/modules/zarafaGroup.inc:223 ../lib/modules/device.inc:141 +#: ../lib/modules/device.inc:142 ../lib/modules/dhcp_settings.inc:321 +#: ../lib/modules/dhcp_settings.inc:323 ../lib/modules/dhcp_settings.inc:325 +#: ../lib/modules/dhcp_settings.inc:327 ../lib/modules/dhcp_settings.inc:329 +#: ../lib/modules/dhcp_settings.inc:330 ../lib/modules/dhcp_settings.inc:331 +#: ../lib/modules/dhcp_settings.inc:333 ../lib/modules/dhcp_settings.inc:335 +#: ../lib/modules/dhcp_settings.inc:339 ../lib/modules/eduPerson.inc:244 +#: ../lib/modules/eduPerson.inc:246 ../lib/modules/eduPerson.inc:248 +#: ../lib/modules/eduPerson.inc:250 ../lib/modules/eduPerson.inc:251 +#: ../lib/modules/eduPerson.inc:252 ../lib/modules/eduPerson.inc:253 +#: ../lib/modules/quota.inc:52 ../lib/modules/quota.inc:54 +#: ../lib/modules/quota.inc:56 ../lib/modules/quota.inc:58 +#: ../lib/modules/quota.inc:60 ../lib/modules/quota.inc:62 +#: ../lib/modules/quota.inc:63 ../lib/modules/zarafaAddressList.inc:170 +#: ../lib/modules/zarafaAddressList.inc:171 +#: ../lib/modules/zarafaAddressList.inc:172 ../lib/modules/pykotaGroup.inc:198 +#: ../lib/modules/pykotaGroup.inc:200 ../lib/modules/pykotaGroup.inc:202 +#: ../lib/modules/pykotaGroup.inc:204 ../lib/modules/pykotaGroup.inc:205 +#: ../lib/modules/sambaSamAccount.inc:96 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:102 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:107 +#: ../lib/modules/sambaSamAccount.inc:108 +#: ../lib/modules/sambaSamAccount.inc:109 +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 +#: ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/sambaSamAccount.inc:117 +#: ../lib/modules/sambaSamAccount.inc:118 +#: ../lib/modules/sambaSamAccount.inc:120 +#: ../lib/modules/sambaSamAccount.inc:121 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/posixAccount.inc:107 ../lib/modules/posixAccount.inc:111 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/posixAccount.inc:124 +#: ../lib/modules/posixAccount.inc:126 ../lib/modules/posixAccount.inc:127 +#: ../lib/modules/posixAccount.inc:128 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/zarafaUser.inc:409 ../lib/modules/zarafaUser.inc:411 +#: ../lib/modules/zarafaUser.inc:413 ../lib/modules/zarafaUser.inc:414 +#: ../lib/modules/zarafaUser.inc:416 ../lib/modules/zarafaUser.inc:418 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/zarafaUser.inc:421 +#: ../lib/modules/zarafaUser.inc:422 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:424 ../lib/modules/zarafaUser.inc:425 +#: ../lib/modules/zarafaUser.inc:426 ../lib/modules/zarafaUser.inc:427 +#: ../lib/modules/ppolicyUser.inc:97 ../lib/modules/bindDLZ.inc:478 +#: ../lib/modules/bindDLZ.inc:480 ../lib/modules/bindDLZ.inc:482 +#: ../lib/modules/bindDLZ.inc:484 ../lib/modules/bindDLZ.inc:486 +#: ../lib/modules/bindDLZ.inc:488 ../lib/modules/bindDLZ.inc:490 +#: ../lib/modules/bindDLZ.inc:492 ../lib/modules/bindDLZ.inc:494 +#: ../lib/modules/bindDLZ.inc:496 ../lib/modules/bindDLZ.inc:498 +#: ../lib/modules/bindDLZ.inc:499 ../lib/modules/bindDLZ.inc:501 +#: ../lib/modules/bindDLZ.inc:503 ../lib/modules/bindDLZ.inc:505 +#: ../lib/modules/bindDLZ.inc:507 ../lib/modules/bindDLZ.inc:509 +#: ../lib/modules/bindDLZ.inc:511 ../lib/modules/bindDLZ.inc:513 +#: ../lib/modules/bindDLZ.inc:515 ../lib/modules/bindDLZ.inc:516 +#: ../lib/modules/bindDLZ.inc:517 ../lib/modules/bindDLZ.inc:518 +#: ../lib/modules/bindDLZ.inc:520 ../lib/modules/bindDLZ.inc:522 +#: ../lib/modules/bindDLZ.inc:524 ../lib/modules/bindDLZ.inc:526 +#: ../lib/modules/bindDLZ.inc:528 ../lib/modules/bindDLZ.inc:530 +#: ../lib/modules/bindDLZ.inc:532 ../lib/modules/bindDLZ.inc:533 +#: ../lib/modules/windowsUser.inc:590 ../lib/modules/windowsUser.inc:592 +#: ../lib/modules/windowsUser.inc:594 ../lib/modules/windowsUser.inc:596 +#: ../lib/modules/windowsUser.inc:598 ../lib/modules/windowsUser.inc:600 +#: ../lib/modules/windowsUser.inc:602 ../lib/modules/windowsUser.inc:604 +#: ../lib/modules/windowsUser.inc:606 ../lib/modules/windowsUser.inc:608 +#: ../lib/modules/windowsUser.inc:610 ../lib/modules/windowsUser.inc:612 +#: ../lib/modules/windowsUser.inc:614 ../lib/modules/windowsUser.inc:617 +#: ../lib/modules/windowsUser.inc:619 ../lib/modules/windowsUser.inc:621 +#: ../lib/modules/windowsUser.inc:1352 ../lib/modules/windowsUser.inc:1361 +#: ../lib/modules/windowsUser.inc:1370 ../lib/modules/windowsUser.inc:1381 +#: ../lib/modules/windowsUser.inc:1448 ../lib/modules/kolabUser.inc:246 +#: ../lib/modules/kolabUser.inc:248 ../lib/modules/kolabUser.inc:250 +#: ../lib/modules/kolabUser.inc:252 ../lib/modules/kolabUser.inc:254 +#: ../lib/modules/kolabUser.inc:256 ../lib/modules/kolabUser.inc:258 +#: ../lib/modules/ddns.inc:152 ../lib/modules/nisObject.inc:124 +#: ../lib/modules/sambaGroupMapping.inc:603 +#: ../lib/modules/sambaGroupMapping.inc:604 ../lib/modules/pykotaUser.inc:312 +#: ../lib/modules/pykotaUser.inc:314 ../lib/modules/pykotaUser.inc:316 +#: ../lib/modules/pykotaUser.inc:318 ../lib/modules/pykotaUser.inc:320 +#: ../lib/modules/pykotaUser.inc:321 ../lib/modules/pykotaUser.inc:323 +#: ../lib/modules/pykotaUser.inc:325 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/shadowAccount.inc:60 ../lib/modules/shadowAccount.inc:62 +#: ../lib/modules/shadowAccount.inc:64 ../lib/modules/shadowAccount.inc:66 +#: ../lib/modules/shadowAccount.inc:67 ../lib/modules/automount.inc:115 +#: ../lib/modules/sambaDomain.inc:209 ../lib/modules/sambaDomain.inc:211 +#: ../lib/modules/sambaDomain.inc:213 ../lib/modules/sambaDomain.inc:215 +#: ../lib/modules/sambaDomain.inc:217 ../lib/modules/sambaDomain.inc:219 +#: ../lib/modules/inetOrgPerson.inc:67 ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:71 ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:75 ../lib/modules/inetOrgPerson.inc:77 +#: ../lib/modules/inetOrgPerson.inc:80 ../lib/modules/inetOrgPerson.inc:82 +#: ../lib/modules/inetOrgPerson.inc:84 ../lib/modules/inetOrgPerson.inc:86 +#: ../lib/modules/inetOrgPerson.inc:88 ../lib/modules/inetOrgPerson.inc:90 +#: ../lib/modules/inetOrgPerson.inc:92 ../lib/modules/inetOrgPerson.inc:94 +#: ../lib/modules/inetOrgPerson.inc:96 ../lib/modules/inetOrgPerson.inc:97 +#: ../lib/modules/inetOrgPerson.inc:98 ../lib/modules/inetOrgPerson.inc:104 +#: ../lib/modules/inetOrgPerson.inc:105 ../lib/modules/inetOrgPerson.inc:106 +#: ../lib/modules/systemQuotas.inc:98 ../lib/modules/systemQuotas.inc:100 +#: ../lib/modules/systemQuotas.inc:102 ../lib/modules/systemQuotas.inc:104 +#: ../lib/modules/systemQuotas.inc:106 ../lib/modules/systemQuotas.inc:108 +#: ../lib/modules/systemQuotas.inc:110 ../lib/modules/freeRadius.inc:250 +#: ../lib/modules/freeRadius.inc:252 ../lib/modules/freeRadius.inc:254 +#: ../lib/modules/freeRadius.inc:256 ../lib/modules/freeRadius.inc:258 +#: ../lib/modules/freeRadius.inc:260 ../lib/modules/sudoRole.inc:270 +#: ../lib/modules/sudoRole.inc:272 ../lib/modules/sudoRole.inc:274 +#: ../lib/modules/sudoRole.inc:276 ../lib/modules/sudoRole.inc:278 +#: ../lib/modules/sudoRole.inc:280 ../lib/modules/sudoRole.inc:282 +#: ../lib/modules/sudoRole.inc:284 ../lib/modules/sudoRole.inc:286 +#: ../lib/modules/kolabSharedFolder.inc:251 +#: ../lib/modules/kolabSharedFolder.inc:253 +#: ../lib/modules/kolabSharedFolder.inc:255 +#: ../lib/modules/kolabSharedFolder.inc:256 +#: ../lib/modules/kolabSharedFolder.inc:258 +#: ../lib/modules/kolabSharedFolder.inc:260 +#: ../lib/modules/zarafaServer.inc:174 ../lib/modules/zarafaServer.inc:176 +#: ../lib/modules/zarafaServer.inc:178 ../lib/modules/zarafaServer.inc:179 +#: ../lib/modules/asteriskVoicemail.inc:212 +#: ../lib/modules/asteriskVoicemail.inc:216 +#: ../lib/modules/asteriskVoicemail.inc:219 +#: ../lib/modules/asteriskVoicemail.inc:221 +#: ../lib/modules/asteriskVoicemail.inc:223 +#: ../lib/modules/asteriskVoicemail.inc:225 +#: ../lib/modules/asteriskVoicemail.inc:227 +#: ../lib/modules/inetLocalMailRecipient.inc:131 +#: ../lib/modules/inetLocalMailRecipient.inc:133 +#: ../lib/modules/inetLocalMailRecipient.inc:135 +#: ../lib/modules/aliasEntry.inc:86 ../lib/modules/qmailGroup.inc:421 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:426 +#: ../lib/modules/qmailGroup.inc:428 ../lib/modules/qmailGroup.inc:430 +#: ../lib/modules/qmailGroup.inc:432 ../lib/modules/qmailGroup.inc:433 +#: ../lib/modules/qmailGroup.inc:434 ../lib/modules/qmailGroup.inc:435 +#: ../lib/modules/qmailGroup.inc:436 ../lib/modules/qmailGroup.inc:437 +#: ../lib/modules/authorizedServiceObject.inc:130 +#: ../lib/modules/passwordSelfReset.inc:233 +#: ../lib/modules/heimdalKerberos.inc:254 +#: ../lib/modules/heimdalKerberos.inc:255 +#: ../lib/modules/heimdalKerberos.inc:256 +#: ../lib/modules/heimdalKerberos.inc:258 +#: ../lib/modules/heimdalKerberos.inc:260 +#: ../lib/modules/pykotaBillingCode.inc:128 +#: ../lib/modules/pykotaBillingCode.inc:130 +#: ../lib/modules/windowsGroup.inc:284 ../lib/modules/windowsGroup.inc:286 +#: ../lib/modules/windowsGroup.inc:287 ../lib/modules/windowsGroup.inc:288 +#: ../lib/modules/windowsGroup.inc:290 ../lib/modules/nisMailAlias.inc:126 +#: ../lib/modules/nisMailAlias.inc:128 ../lib/modules/hostObject.inc:111 +#, php-format +msgid "Account %s:" +msgstr "Account %s:" + +#: ../lib/types/asteriskExt.inc:95 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskAccount.inc:111 +#: ../lib/modules/asteriskAccount.inc:255 +#: ../lib/modules/asteriskAccount.inc:267 +#: ../lib/modules/asteriskAccount.inc:311 +#: ../lib/modules/asteriskAccount.inc:593 +#: ../lib/modules/asteriskAccount.inc:983 +#: ../lib/modules/asteriskExtension.inc:98 +#: ../lib/modules/asteriskExtension.inc:129 +#: ../lib/modules/asteriskExtension.inc:136 +#: ../lib/modules/asteriskExtension.inc:152 +#: ../lib/modules/asteriskExtension.inc:306 +#: ../lib/modules/asteriskExtension.inc:812 +#: ../lib/modules/asteriskVoicemail.inc:91 +#: ../lib/modules/asteriskVoicemail.inc:127 +#: ../lib/modules/asteriskVoicemail.inc:137 +#: ../lib/modules/asteriskVoicemail.inc:151 +#: ../lib/modules/asteriskVoicemail.inc:247 +#: ../lib/modules/asteriskVoicemail.inc:370 +msgid "Account context" +msgstr "Account context" + +#: ../lib/modules/selfRegistration.inc:449 +msgid "Account creation" +msgstr "Account creation" + +#: ../lib/modules/selfRegistration.inc:231 +msgid "Account creation confirmation" +msgstr "Account creation confirmation" + +#: ../templates/masscreate.php:125 +msgid "Account creation via file upload" +msgstr "Account creation via file upload" + +#: ../lib/modules/posixAccount.inc:526 +msgid "Account deactivated" +msgstr "Account deactivated" + +#: ../templates/lists/changePassword.php:275 +msgid "Account details" +msgstr "Account details" + +#: ../lib/types/user.inc:104 ../lib/modules/mitKerberos.inc:124 +#: ../lib/modules/mitKerberos.inc:218 ../lib/modules/mitKerberos.inc:251 +#: ../lib/modules/mitKerberos.inc:385 ../lib/modules/mitKerberos.inc:634 +#: ../lib/modules/mitKerberos.inc:783 ../lib/modules/sambaSamAccount.inc:345 +#: ../lib/modules/sambaSamAccount.inc:463 +#: ../lib/modules/sambaSamAccount.inc:1189 +#: ../lib/modules/sambaSamAccount.inc:1447 +#: ../lib/modules/sambaSamAccount.inc:1739 +#: ../lib/modules/shadowAccount.inc:128 ../lib/modules/shadowAccount.inc:193 +#: ../lib/modules/shadowAccount.inc:233 ../lib/modules/shadowAccount.inc:352 +#: ../lib/modules/shadowAccount.inc:453 ../lib/modules/shadowAccount.inc:499 +#: ../lib/modules/heimdalKerberos.inc:102 +#: ../lib/modules/heimdalKerberos.inc:187 +#: ../lib/modules/heimdalKerberos.inc:219 +#: ../lib/modules/heimdalKerberos.inc:321 +#: ../lib/modules/heimdalKerberos.inc:544 +#: ../lib/modules/heimdalKerberos.inc:679 +msgid "Account expiration date" +msgstr "Account expiration date" + +#: ../lib/modules/shadowAccount.inc:169 +msgid "Account inactive" +msgstr "Account inactive" + +#: ../lib/modules/sambaSamAccount.inc:285 +#: ../lib/modules/sambaSamAccount.inc:291 +#: ../lib/modules/sambaSamAccount.inc:455 +#: ../lib/modules/sambaSamAccount.inc:1147 +#: ../lib/modules/sambaSamAccount.inc:1735 ../lib/modules/windowsUser.inc:192 +#: ../lib/modules/windowsUser.inc:386 ../lib/modules/windowsUser.inc:517 +#: ../lib/modules/windowsUser.inc:744 ../lib/modules/windowsUser.inc:1611 +msgid "Account is deactivated" +msgstr "Account is deactivated" + +#: ../lib/modules/sambaSamAccount.inc:288 +#: ../lib/modules/sambaSamAccount.inc:1153 ../lib/modules/windowsUser.inc:195 +#: ../lib/modules/windowsUser.inc:725 +msgid "Account is locked" +msgstr "Account is locked" + +#: ../templates/delete.php:99 +msgid "Account name:" +msgstr "Account name:" + +#: ../lib/types/user.inc:305 ../lib/types/user.inc:714 +#: ../lib/types/user.inc:848 ../lib/modules/qmailUser.inc:211 +#: ../lib/modules/qmailUser.inc:283 ../lib/modules/qmailUser.inc:402 +#: ../lib/modules/qmailUser.inc:609 ../lib/modules/qmailUser.inc:1157 +msgid "Account status" +msgstr "Account status" + +#: ../templates/masscreate.php:152 ../lib/modules/asteriskAccount.inc:119 +#: ../lib/modules/asteriskAccount.inc:256 +#: ../lib/modules/asteriskAccount.inc:269 +#: ../lib/modules/asteriskAccount.inc:331 +#: ../lib/modules/asteriskAccount.inc:595 +#: ../lib/modules/asteriskAccount.inc:985 ../lib/modules/customFields.inc:524 +#: ../lib/modules/customFields.inc:566 +msgid "Account type" +msgstr "Account type" + +#: ../templates/config/confmodules.php:168 +#: ../templates/config/confmain.php:209 +#: ../templates/config/moduleSettings.php:167 +#: ../templates/config/conftypes.php:186 +msgid "Account types" +msgstr "Account types" + +#: ../help/help.inc:111 +msgid "Account types and modules" +msgstr "Account types and modules" + +#: ../help/help.inc:113 +msgid "" +"Account types define which sorts of LDAP entries (e.g. users and groups) " +"should be managed. The account modules define which properties (e.g. Unix " +"and Samba) can be edited." +msgstr "" +"Account types define which sorts of LDAP entries (e.g. users and groups) " +"should be managed. The account modules define which properties (e.g. Unix " +"and Samba) can be edited." + +#: ../lib/modules.inc:1307 +msgid "Account was created successfully." +msgstr "Account was created successfully." + +#: ../templates/lists/changePassword.php:744 +#: ../templates/lists/changePassword.php:796 +#: ../templates/lists/changePassword.php:842 ../lib/modules.inc:1310 +msgid "Account was modified successfully." +msgstr "Account was modified successfully." + +#: ../lib/modules/customScripts.inc:168 +msgid "Action type" +msgstr "Action type" + +#: ../lib/modules/ddns.inc:81 ../lib/modules/ddns.inc:368 +msgid "Activate DynDNS" +msgstr "Activate DynDNS" + +#: ../templates/config/confmain.php:243 +#: ../templates/selfService/adminMain.php:451 +msgid "Activate TLS" +msgstr "Activate TLS" + +#: ../lib/modules/sambaSamAccount.inc:352 +msgid "Activate this checkbox to allow this user to use the terminal service." +msgstr "Activate this checkbox to allow this user to use the terminal service." + +#: ../lib/modules/sambaSamAccount.inc:373 +msgid "Activate this checkbox to connect drives from the client machine." +msgstr "Activate this checkbox to connect drives from the client machine." + +#: ../lib/modules/sambaSamAccount.inc:376 +msgid "Activate this checkbox to connect printers from the client machine." +msgstr "Activate this checkbox to connect printers from the client machine." + +#: ../lib/modules/sambaSamAccount.inc:361 +msgid "" +"Activate this checkbox to inherit the initial program and working directory " +"from the client machine." +msgstr "" +"Activate this checkbox to inherit the initial program and working directory " +"from the client machine." + +#: ../lib/modules/sambaSamAccount.inc:379 +msgid "Activate this checkbox to set the client's printer as default printer." +msgstr "Activate this checkbox to set the client's printer as default printer." + +#: ../lib/modules/posixAccount.inc:478 +msgid "Activating this checkbox will remove the user's home directory." +msgstr "Activating this checkbox will remove the user's home directory." + +#: ../lib/types/zarafaAddressListType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:93 +#: ../lib/modules/zarafaDynamicGroup.inc:83 +#: ../lib/modules/zarafaDynamicGroup.inc:144 +#: ../lib/modules/zarafaDynamicGroup.inc:168 +#: ../lib/modules/zarafaDynamicGroup.inc:281 +#: ../lib/modules/zarafaDynamicGroup.inc:456 ../lib/modules/qmailUser.inc:41 +#: ../lib/modules/qmailUser.inc:285 ../lib/modules/zarafaContact.inc:75 +#: ../lib/modules/zarafaContact.inc:156 ../lib/modules/zarafaContact.inc:254 +#: ../lib/modules/zarafaGroup.inc:89 ../lib/modules/zarafaGroup.inc:154 +#: ../lib/modules/zarafaGroup.inc:195 ../lib/modules/zarafaGroup.inc:302 +#: ../lib/modules/zarafaGroup.inc:660 ../lib/modules/zarafaAddressList.inc:71 +#: ../lib/modules/zarafaAddressList.inc:120 +#: ../lib/modules/zarafaAddressList.inc:142 +#: ../lib/modules/zarafaAddressList.inc:222 +#: ../lib/modules/zarafaAddressList.inc:338 ../lib/modules/zarafaUser.inc:84 +#: ../lib/modules/zarafaUser.inc:255 ../lib/modules/zarafaUser.inc:594 +#: ../lib/modules/zarafaUser.inc:1801 ../lib/modules/fixed_ip.inc:114 +#: ../lib/modules/fixed_ip.inc:438 ../lib/modules/fixed_ip.inc:743 +msgid "Active" +msgstr "Active" + +#: ../templates/config/conftypes.php:232 +msgid "Active account types" +msgstr "Active account types" + +#: ../templates/serverInfo.php:307 ../templates/serverInfo.php:384 +#: ../templates/multiEdit.php:126 ../templates/config/profmanage.php:252 +#: ../templates/config/confmodules.php:305 +#: ../templates/config/conftypes.php:223 +#: ../templates/selfService/profManage.php:209 +#: ../templates/pdfedit/pdfpage.php:596 ../templates/pdfedit/pdfpage.php:606 +#: ../templates/pdfedit/pdfpage.php:616 ../templates/pdfedit/pdfpage.php:630 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1206 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1210 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:78 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:121 +#: ../lib/modules/pykotaPrinter.inc:269 ../lib/modules/pykotaPrinter.inc:430 +#: ../lib/modules/nisMailAliasUser.inc:162 +#: ../lib/modules/nisMailAliasUser.inc:201 +#: ../lib/modules/nisMailAliasUser.inc:387 +#: ../lib/modules/zarafaContact.inc:390 ../lib/modules/zarafaGroup.inc:450 +#: ../lib/modules/device.inc:253 ../lib/modules/zarafaUser.inc:874 +#: ../lib/modules/zarafaUser.inc:1462 ../lib/modules/zarafaUser.inc:1494 +#: ../lib/modules/bindDLZ.inc:675 ../lib/modules/bindDLZ.inc:767 +#: ../lib/modules/bindDLZ.inc:847 ../lib/modules/bindDLZ.inc:951 +#: ../lib/modules/bindDLZ.inc:1067 ../lib/modules/bindDLZ.inc:1179 +#: ../lib/modules/bindDLZ.inc:1275 ../lib/modules/bindDLZ.inc:1389 +#: ../lib/modules/kolabUser.inc:835 ../lib/modules/kolabUser.inc:883 +#: ../lib/modules/sambaGroupMapping.inc:392 +#: ../lib/modules/sambaGroupMapping.inc:489 ../lib/modules/pykotaUser.inc:377 +#: ../lib/modules/ldapPublicKey.inc:267 ../lib/modules/ldapPublicKey.inc:277 +#: ../lib/modules/nisnetgroup.inc:282 ../lib/modules/inetOrgPerson.inc:1709 +#: ../lib/modules/sudoRole.inc:321 ../lib/modules/sudoRole.inc:348 +#: ../lib/modules/sudoRole.inc:375 ../lib/modules/sudoRole.inc:402 +#: ../lib/modules/sudoRole.inc:429 ../lib/modules/sudoRole.inc:456 +#: ../lib/modules/customFields.inc:1083 ../lib/modules/customFields.inc:2091 +#: ../lib/modules/customFields.inc:2101 ../lib/modules/qmailGroup.inc:822 +#: ../lib/modules/organizationalRole.inc:317 ../lib/modules/fixed_ip.inc:586 +#: ../lib/modules/windowsGroup.inc:556 ../lib/modules/groupOfNames.inc:374 +#: ../lib/modules/groupOfNames.inc:529 +msgid "Add" +msgstr "Add" + +#: ../lib/modules/asteriskAccount.inc:762 +msgid "Add Asterisk account" +msgstr "Add Asterisk account" + +#: ../lib/modules/asteriskVoicemail.inc:269 +msgid "Add Asterisk voicemail extension" +msgstr "Add Asterisk voicemail extension" + +#: ../lib/modules/authorizedServiceObject.inc:175 +msgid "Add Authorized Service extension" +msgstr "Add Authorized Service extension" + +#: ../lib/modules/eduPerson.inc:360 +msgid "Add EDU person extension" +msgstr "Add EDU person extension" + +#: ../lib/modules/freeRadius.inc:312 +msgid "Add FreeRadius extension" +msgstr "Add FreeRadius extension" + +#: ../lib/modules/ipHost.inc:165 +msgid "Add IP address extension" +msgstr "Add IP address extension" + +#: ../lib/modules/mitKerberos.inc:478 ../lib/modules/heimdalKerberos.inc:402 +msgid "Add Kerberos extension" +msgstr "Add Kerberos extension" + +#: ../lib/modules/kolabGroup.inc:121 ../lib/modules/kolabGroup.inc:133 +#: ../lib/modules/kolabGroup.inc:220 ../lib/modules/kolabUser.inc:394 +msgid "Add Kolab extension" +msgstr "Add Kolab extension" + +#: ../lib/modules/puppetClient.inc:224 +msgid "Add Puppet extension" +msgstr "Add Puppet extension" + +#: ../lib/modules/pykotaGroup.inc:245 ../lib/modules/pykotaUser.inc:425 +msgid "Add PyKota extension" +msgstr "Add PyKota extension" + +#: ../lib/modules/sambaSamAccount.inc:1311 +#: ../lib/modules/sambaGroupMapping.inc:428 +msgid "Add Samba 3 extension" +msgstr "Add Samba 3 extension" + +#: ../lib/modules/shadowAccount.inc:380 +msgid "Add Shadow account extension" +msgstr "Add Shadow account extension" + +#: ../lib/modules/posixGroup.inc:253 ../lib/modules/posixAccount.inc:1518 +msgid "Add Unix extension" +msgstr "Add Unix extension" + +#: ../lib/modules/zarafaContact.inc:134 ../lib/modules/zarafaContact.inc:202 +msgid "Add Zarafa contact extension" +msgstr "Add Zarafa contact extension" + +#: ../lib/modules/zarafaContact.inc:110 ../lib/modules/zarafaContact.inc:111 +#: ../lib/modules/zarafaGroup.inc:312 ../lib/modules/zarafaUser.inc:167 +#: ../lib/modules/zarafaUser.inc:168 ../lib/modules/zarafaUser.inc:179 +#: ../lib/modules/zarafaUser.inc:438 ../lib/modules/zarafaServer.inc:237 +msgid "Add Zarafa extension" +msgstr "Add Zarafa extension" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add all" +msgstr "Add all" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2073 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2091 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "Add an additional value to attribute" +msgstr "Add an additional value to attribute" + +#: ../lib/modules/asteriskExtension.inc:350 +msgid "Add another rule" +msgstr "Add another rule" + +#: ../lib/modules/inetOrgPerson.inc:1744 +#: ../lib/modules/organizationalRole.inc:322 +#: ../lib/modules/groupOfNames.inc:379 ../lib/modules/groupOfNames.inc:534 +msgid "Add entries" +msgstr "Add entries" + +#: ../lib/modules/zarafaContact.inc:429 ../lib/modules/zarafaGroup.inc:489 +#: ../lib/modules/device.inc:296 ../lib/modules/zarafaUser.inc:913 +#: ../lib/modules/sambaGroupMapping.inc:504 ../lib/modules/qmailGroup.inc:858 +#: ../lib/modules/organizationalRole.inc:333 +#: ../lib/modules/windowsGroup.inc:599 ../lib/modules/groupOfNames.inc:390 +#: ../lib/modules/groupOfNames.inc:545 +msgid "Add entries of this type:" +msgstr "Add entries of this type:" + +#: ../lib/modules/fixed_ip.inc:544 +msgid "Add existing host" +msgstr "Add existing host" + +#: ../lib/modules/customFields.inc:439 +msgid "Add extension" +msgstr "Add extension" + +#: ../lib/modules/ddns.inc:369 +msgid "Add fix IP addresses to DNS" +msgstr "Add fix IP addresses to DNS" + +#: ../lib/modules/hostObject.inc:152 +msgid "Add host extension" +msgstr "Add host extension" + +#: ../templates/selfService/adminMain.php:631 ../help/help.inc:232 +msgid "Add input field" +msgstr "Add input field" + +#: ../templates/multiEdit.php:148 +msgid "Add more fields" +msgstr "Add more fields" + +#: ../lib/modules/customFields.inc:2973 +msgid "Add more mapping fields" +msgstr "Add more mapping fields" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:37 +#, php-format +msgid "Add new %s value to %s" +msgstr "Add new %s value to %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1208 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:29 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:48 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:166 +msgid "Add new attribute" +msgstr "Add new attribute" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1207 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +msgid "Add new attribute to this object" +msgstr "Add new attribute to this object" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:89 +msgid "Add new binary attribute" +msgstr "Add new binary attribute" + +#: ../lib/modules/customFields.inc:1082 ../lib/modules/customFields.inc:1083 +msgid "Add new field" +msgstr "Add new field" + +#: ../templates/selfService/adminMain.php:623 ../help/help.inc:230 +msgid "Add new group" +msgstr "Add new group" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:117 +msgid "Add new object class" +msgstr "Add new object class" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:60 +#, php-format +msgid "Add new object class to %s" +msgstr "Add new object class to %s" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:94 +msgid "Add object class and attributes" +msgstr "Add object class and attributes" + +#: ../lib/modules/passwordSelfReset.inc:245 +msgid "Add password self reset extension" +msgstr "Add password self reset extension" + +#: ../lib/modules/inetOrgPerson.inc:748 ../lib/modules/inetOrgPerson.inc:1585 +#: ../lib/modules/inetOrgPerson.inc:1668 ../lib/modules/inetOrgPerson.inc:2656 +msgid "Add photo" +msgstr "Add photo" + +#: ../templates/config/profmanage.php:239 +#: ../templates/config/profmanage.php:253 +#: ../templates/selfService/profManage.php:202 +#: ../templates/selfService/profManage.php:210 ../help/help.inc:130 +msgid "Add profile" +msgstr "Add profile" + +#: ../lib/modules/qmailUser.inc:712 ../lib/modules/qmailGroup.inc:633 +msgid "Add qmail extension" +msgstr "Add qmail extension" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add selected" +msgstr "Add selected" + +#: ../lib/modules/nisMailAliasUser.inc:374 +msgid "Add to existing alias" +msgstr "Add to existing alias" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:149 +msgid "Add value" +msgstr "Add value" + +#: ../templates/3rdParty/pla/htdocs/import.php:28 +msgid "Adding" +msgstr "Adding" + +#: ../lib/modules/range.inc:115 +msgid "Adding the range failed because errors occured." +msgstr "Adding the range failed because errors occured." + +#: ../templates/selfService/adminMain.php:527 ../help/help.inc:236 +msgid "Additional CSS links" +msgstr "Additional CSS links" + +#: ../templates/config/conftypes.php:274 +#: ../templates/selfService/adminMain.php:472 ../help/help.inc:170 +#: ../help/help.inc:240 +msgid "Additional LDAP filter" +msgstr "Additional LDAP filter" + +#: ../lib/modules/zarafaDynamicGroup.inc:72 +#: ../lib/modules/zarafaDynamicGroup.inc:76 ../lib/modules/zarafaGroup.inc:74 +#: ../lib/modules/zarafaGroup.inc:78 +msgid "Additional email addresses for this entry." +msgstr "Additional email addresses for this entry." + +#: ../lib/modules/posixAccount.inc:304 ../lib/modules/posixAccount.inc:415 +#: ../lib/modules/posixAccount.inc:469 ../lib/modules/posixAccount.inc:534 +#: ../lib/modules/posixAccount.inc:1453 ../lib/modules/posixAccount.inc:1737 +#: ../lib/modules/posixAccount.inc:1848 +msgid "Additional groups" +msgstr "Additional groups" + +#: ../lib/modules/windowsGroup.inc:123 +msgid "Additional notes to describe this entry." +msgstr "Additional notes to describe this entry." + +#: ../templates/config/mainmanage.php:440 +msgid "Additional options" +msgstr "Additional options" + +#: ../templates/massDoUpload.php:160 +msgid "Additional tasks for module:" +msgstr "Additional tasks for module:" + +#: ../lib/modules/windowsUser.inc:707 ../lib/modules/inetOrgPerson.inc:1219 +msgid "Address" +msgstr "Address" + +#: ../lib/types/zarafaAddressListType.inc:144 +#, php-format +msgid "Address list count: %s" +msgstr "Address list count: %s" + +#: ../lib/modules/imapAccess.inc:78 +msgid "Address of IMAP server (e.g. mail.example.org)." +msgstr "Address of IMAP server (e.g. mail.example.org)." + +#: ../help/help.inc:231 +msgid "" +"Adds a new group element to the list of self service options. Use this to " +"structure the input fields." +msgstr "" +"Adds a new group element to the list of self service options. Use this to " +"structure the input fields." + +#: ../help/help.inc:233 +msgid "Adds a new self service option to the selected group element." +msgstr "Adds a new self service option to the selected group element." + +#: ../lib/modules/range.inc:102 +msgid "Adds input fields for a new IP range." +msgstr "Adds input fields for a new IP range." + +#: ../lib/modules/pykotaUser.inc:153 +msgid "Adds the amount to the user's balance. You can also specify a comment." +msgstr "Adds the amount to the user's balance. You can also specify a comment." + +#: ../lib/modules/kolabUser.inc:171 +msgid "Adds the object class \"mailrecipient\" to all user accounts." +msgstr "Adds the object class \"mailrecipient\" to all user accounts." + +#: ../lib/modules/kolabGroup.inc:122 +msgid "Adds this Kolab extension." +msgstr "Adds this Kolab extension." + +#: ../lib/modules/zarafaUser.inc:108 ../lib/modules/zarafaUser.inc:282 +#: ../lib/modules/zarafaUser.inc:340 ../lib/modules/zarafaUser.inc:603 +#: ../lib/modules/zarafaUser.inc:1262 +msgid "Admin" +msgstr "Admin" + +#: ../lib/modules/selfRegistration.inc:61 +#: ../lib/modules/selfRegistration.inc:199 +#: ../lib/modules/passwordSelfReset.inc:104 +#: ../lib/modules/passwordSelfReset.inc:518 +msgid "Admin DN" +msgstr "Admin DN" + +#: ../lib/modules/bindDLZ.inc:231 ../lib/modules/bindDLZ.inc:351 +#: ../lib/modules/bindDLZ.inc:428 ../lib/modules/bindDLZ.inc:529 +#: ../lib/modules/bindDLZ.inc:1051 ../lib/modules/bindDLZ.inc:1553 +msgid "Admin email" +msgstr "Admin email" + +#: ../lib/modules/selfRegistration.inc:65 +#: ../lib/modules/selfRegistration.inc:204 ../lib/modules/imapAccess.inc:136 +#: ../lib/modules/passwordSelfReset.inc:108 +#: ../lib/modules/passwordSelfReset.inc:522 +msgid "Admin password" +msgstr "Admin password" + +#: ../lib/modules/inetOrgPerson.inc:371 ../lib/modules/inetOrgPerson.inc:485 +#: ../lib/modules/inetOrgPerson.inc:493 +msgid "Administration" +msgstr "Administration" + +#: ../lib/modules/posixGroup.inc:473 ../lib/modules/pykotaGroup.inc:168 +#: ../lib/modules/nisnetgroup.inc:122 +#: ../lib/modules/organizationalRole.inc:125 +#: ../lib/modules/groupOfNames.inc:137 +msgid "Administrators group" +msgstr "Administrators group" + +#: ../templates/config/confmain.php:276 ../templates/config/conftypes.php:320 +#: ../lib/modules/posixAccount.inc:271 ../lib/modules/inetOrgPerson.inc:3616 +msgid "Advanced options" +msgstr "Advanced options" + +#: ../lib/modules/eduPerson.inc:105 ../lib/modules/eduPerson.inc:109 +#: ../lib/modules/eduPerson.inc:181 ../lib/modules/eduPerson.inc:225 +#: ../lib/modules/eduPerson.inc:328 ../lib/modules/eduPerson.inc:585 +msgid "Affiliations" +msgstr "Affiliations" + +#: ../lib/modules/sambaSamAccount.inc:555 +msgid "Alaska" +msgstr "Alaska" + +#: ../lib/modules/sambaDomain.inc:218 ../lib/modules/sambaDomain.inc:219 +msgid "Algorithmic RID base is not a number!" +msgstr "Algorithmic RID base is not a number!" + +#: ../lib/modules/customFields.inc:76 ../lib/modules/customFields.inc:528 +#: ../lib/modules/customFields.inc:569 ../lib/modules/aliasEntry.inc:45 +msgid "Alias" +msgstr "Alias" + +#: ../lib/types/mailAlias.inc:141 ../lib/types/alias.inc:141 +#, php-format +msgid "Alias count: %s" +msgstr "Alias count: %s" + +#: ../lib/types/alias.inc:62 +msgid "Alias entries" +msgstr "Alias entries" + +#: ../lib/modules/nisMailAlias.inc:125 ../lib/modules/nisMailAlias.inc:126 +msgid "Alias is empty or invalid!" +msgstr "Alias is empty or invalid!" + +#: ../lib/types/mailAlias.inc:91 ../lib/modules/nisMailAliasUser.inc:96 +#: ../lib/modules/nisMailAliasUser.inc:364 ../lib/modules/bindDLZ.inc:135 +#: ../lib/modules/bindDLZ.inc:268 ../lib/modules/bindDLZ.inc:419 +#: ../lib/modules/bindDLZ.inc:497 ../lib/modules/bindDLZ.inc:836 +#: ../lib/modules/bindDLZ.inc:1538 ../lib/modules/nisMailAlias.inc:81 +#: ../lib/modules/nisMailAlias.inc:101 ../lib/modules/nisMailAlias.inc:115 +#: ../lib/modules/nisMailAlias.inc:163 ../lib/modules/nisMailAlias.inc:475 +msgid "Alias name" +msgstr "Alias name" + +#: ../lib/modules/bindDLZ.inc:834 +msgid "Alias name (\"CNAME\" record)" +msgstr "Alias name (\"CNAME\" record)" + +#: ../lib/modules/nisMailAliasUser.inc:120 +msgid "Alias name already exists." +msgstr "Alias name already exists." + +#: ../lib/modules/nisMailAliasUser.inc:119 +msgid "Alias name is invalid." +msgstr "Alias name is invalid." + +#: ../lib/modules/nisMailAliasUser.inc:100 +#: ../lib/modules/nisMailAliasUser.inc:110 +#: ../lib/modules/nisMailAliasUser.inc:382 +#: ../lib/modules/nisMailAliasUser.inc:541 +msgid "Alias names" +msgstr "Alias names" + +#: ../lib/modules/nisMailAliasUser.inc:84 +#: ../lib/modules/nisMailAliasUser.inc:88 +msgid "Alias names with email address" +msgstr "Alias names with email address" + +#: ../lib/modules/nisMailAliasUser.inc:76 +#: ../lib/modules/nisMailAliasUser.inc:80 +msgid "Alias names with user name" +msgstr "Alias names with user name" + +#: ../lib/modules/bindDLZ.inc:420 ../lib/modules/bindDLZ.inc:1539 +msgid "Alias timeout" +msgstr "Alias timeout" + +#: ../lib/types/alias.inc:92 ../lib/modules/customScripts.inc:52 +#: ../lib/modules/uidObject.inc:59 ../lib/modules/aliasEntry.inc:61 +#: ../lib/modules/aliasEntry.inc:69 ../lib/modules/aliasEntry.inc:77 +#: ../lib/modules/aliasEntry.inc:98 ../lib/modules/aliasEntry.inc:107 +#: ../lib/modules/aliasEntry.inc:228 +msgid "Aliased entry" +msgstr "Aliased entry" + +#: ../templates/schema/schema.php:226 ../lib/types/alias.inc:53 +msgid "Aliases" +msgstr "Aliases" + +#: ../lib/modules/nisMailAliasUser.inc:169 +#: ../lib/modules/nisMailAliasUser.inc:569 +msgid "Aliases for email" +msgstr "Aliases for email" + +#: ../lib/modules/nisMailAliasUser.inc:139 +#: ../lib/modules/nisMailAliasUser.inc:567 +msgid "Aliases for user name" +msgstr "Aliases for user name" + +#: ../lib/lists.inc:702 +#, php-format +msgid "All accounts (%s)" +msgstr "All accounts (%s)" + +#: ../templates/selfService/selfServiceMain.php:368 +#: ../templates/initsuff.php:158 +msgid "All changes were successful." +msgstr "All changes were successful." + +#: ../lib/lists.inc:701 +#, php-format +msgid "All selected accounts (%s)" +msgstr "All selected accounts (%s)" + +#: ../lib/modules/dhcp_settings.inc:103 +msgid "Allow" +msgstr "Allow" + +#: ../templates/config/confmain.php:362 ../help/help.inc:259 +msgid "Allow alternate address" +msgstr "Allow alternate address" + +#: ../lib/modules/sambaDomain.inc:117 ../lib/modules/sambaDomain.inc:194 +#: ../lib/modules/sambaDomain.inc:308 ../lib/modules/sambaDomain.inc:626 +msgid "Allow machine password changes" +msgstr "Allow machine password changes" + +#: ../lib/modules/customFields.inc:144 ../lib/modules/customFields.inc:148 +#: ../lib/modules/customFields.inc:3140 +msgid "Allow multiple values" +msgstr "Allow multiple values" + +#: ../lib/types/ppolicyType.inc:90 ../lib/modules/ppolicy.inc:132 +#: ../lib/modules/ppolicy.inc:155 ../lib/modules/ppolicy.inc:294 +#: ../lib/modules/ppolicy.inc:505 +msgid "Allow password change" +msgstr "Allow password change" + +#: ../lib/modules/sambaSamAccount.inc:229 +#: ../lib/modules/sambaSamAccount.inc:351 +#: ../lib/modules/sambaSamAccount.inc:1499 +#: ../lib/modules/sambaSamAccount.inc:1915 +msgid "Allow terminal server login" +msgstr "Allow terminal server login" + +#: ../templates/selfService/adminMain.php:589 +msgid "Allow user input for this field." +msgstr "Allow user input for this field." + +#: ../lib/modules/asteriskAccount.inc:203 +#: ../lib/modules/asteriskAccount.inc:289 +#: ../lib/modules/asteriskAccount.inc:479 +#: ../lib/modules/asteriskAccount.inc:713 +#: ../lib/modules/asteriskAccount.inc:1005 +#: ../lib/modules/asteriskAccount.inc:1279 +msgid "Allowed codec" +msgstr "Allowed codec" + +#: ../templates/config/mainmanage.php:299 ../lib/types/user.inc:95 +#: ../help/help.inc:152 +msgid "Allowed hosts" +msgstr "Allowed hosts" + +#: ../templates/config/mainmanage.php:301 +msgid "Allowed hosts (self service)" +msgstr "Allowed hosts (self service)" + +#: ../lib/modules/kolabGroup.inc:95 ../lib/modules/kolabGroup.inc:99 +#: ../lib/modules/kolabGroup.inc:141 ../lib/modules/kolabGroup.inc:164 +#: ../lib/modules/kolabGroup.inc:181 ../lib/modules/kolabGroup.inc:205 +#: ../lib/modules/kolabGroup.inc:424 ../lib/modules/kolabUser.inc:152 +#: ../lib/modules/kolabUser.inc:156 ../lib/modules/kolabUser.inc:217 +#: ../lib/modules/kolabUser.inc:235 ../lib/modules/kolabUser.inc:253 +#: ../lib/modules/kolabUser.inc:381 ../lib/modules/kolabUser.inc:766 +#: ../lib/modules/kolabSharedFolder.inc:120 +#: ../lib/modules/kolabSharedFolder.inc:124 +#: ../lib/modules/kolabSharedFolder.inc:208 +#: ../lib/modules/kolabSharedFolder.inc:234 +#: ../lib/modules/kolabSharedFolder.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:307 +#: ../lib/modules/kolabSharedFolder.inc:561 +msgid "Allowed recipients" +msgstr "Allowed recipients" + +#: ../lib/modules/kolabGroup.inc:104 ../lib/modules/kolabGroup.inc:108 +#: ../lib/modules/kolabGroup.inc:147 ../lib/modules/kolabGroup.inc:165 +#: ../lib/modules/kolabGroup.inc:183 ../lib/modules/kolabGroup.inc:207 +#: ../lib/modules/kolabGroup.inc:425 ../lib/modules/kolabUser.inc:161 +#: ../lib/modules/kolabUser.inc:165 ../lib/modules/kolabUser.inc:223 +#: ../lib/modules/kolabUser.inc:236 ../lib/modules/kolabUser.inc:255 +#: ../lib/modules/kolabUser.inc:383 ../lib/modules/kolabUser.inc:767 +#: ../lib/modules/kolabSharedFolder.inc:129 +#: ../lib/modules/kolabSharedFolder.inc:133 +#: ../lib/modules/kolabSharedFolder.inc:214 +#: ../lib/modules/kolabSharedFolder.inc:235 +#: ../lib/modules/kolabSharedFolder.inc:252 +#: ../lib/modules/kolabSharedFolder.inc:309 +#: ../lib/modules/kolabSharedFolder.inc:562 +msgid "Allowed senders" +msgstr "Allowed senders" + +#: ../lib/modules/sambaSamAccount.inc:1337 +#: ../lib/modules/sambaSamAccount.inc:1338 +msgid "Allowed workstations" +msgstr "Allowed workstations" + +#: ../lib/modules/customFields.inc:149 +msgid "Allows to enter multiple values for this attribute." +msgstr "Allows to enter multiple values for this attribute." + +#: ../lib/modules/customFields.inc:145 +msgid "Allows to select multiple values from the list." +msgstr "Allows to select multiple values from the list." + +#: ../lib/modules/sambaSamAccount.inc:570 +msgid "Almaty, Dhaka, Colombo" +msgstr "Almaty, Dhaka, Colombo" + +#: ../templates/lists/changePassword.php:334 +#: ../templates/lists/changePassword.php:370 ../lib/modules/qmailUser.inc:203 +#: ../lib/modules/qmailUser.inc:271 ../lib/modules/qmailUser.inc:400 +#: ../lib/modules/qmailUser.inc:450 ../lib/modules/qmailUser.inc:520 +#: ../lib/modules/qmailUser.inc:1140 ../lib/modules/qmailGroup.inc:131 +#: ../lib/modules/qmailGroup.inc:135 ../lib/modules/qmailGroup.inc:247 +#: ../lib/modules/qmailGroup.inc:370 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:484 ../lib/modules/qmailGroup.inc:1057 +msgid "Alternate address" +msgstr "Alternate address" + +#: ../lib/modules.inc:1071 ../lib/modules.inc:1170 ../help/help.inc:214 +msgid "Alternate recipient" +msgstr "Alternate recipient" + +#: ../lib/modules/kolabUser.inc:50 +msgid "Always accept" +msgstr "Always accept" + +#: ../lib/modules/kolabUser.inc:51 +msgid "Always reject" +msgstr "Always reject" + +#: ../lib/modules/pykotaUser.inc:372 ../lib/modules/pykotaUser.inc:597 +#: ../lib/modules/pykotaUser.inc:906 ../lib/modules/pykotaUser.inc:965 +msgid "Amount" +msgstr "Amount" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1018 +#, php-format +msgid "An attribute (%s) was modified and is highlighted below." +msgstr "An attribute (%s) was modified and is highlighted below." + +#: ../lib/modules/sudoRole.inc:268 +msgid "An sudo role with this name already exists. Please choose another name." +msgstr "" +"An sudo role with this name already exists. Please choose another name." + +#: ../lib/modules/passwordSelfReset.inc:84 +#: ../lib/modules/passwordSelfReset.inc:183 +#: ../lib/modules/passwordSelfReset.inc:198 +#: ../lib/modules/passwordSelfReset.inc:219 +#: ../lib/modules/passwordSelfReset.inc:265 +#: ../lib/modules/passwordSelfReset.inc:384 +#: ../lib/modules/passwordSelfReset.inc:663 +#: ../lib/modules/passwordSelfReset.inc:1046 +msgid "Answer" +msgstr "Answer" + +#: ../lib/modules/kolabUser.inc:331 ../lib/modules/kolabUser.inc:756 +#: ../lib/modules/kolabUser.inc:858 ../lib/modules/kolabUser.inc:861 +msgid "Anyone" +msgstr "Anyone" + +#: ../lib/modules/customFields.inc:506 +msgid "Appearance" +msgstr "Appearance" + +#: ../lib/modules/asteriskExtension.inc:110 +#: ../lib/modules/asteriskExtension.inc:165 +#: ../lib/modules/asteriskExtension.inc:366 +#: ../lib/modules/asteriskExtension.inc:823 +msgid "Application" +msgstr "Application" + +#: ../lib/modules/asteriskExtension.inc:94 +#: ../lib/modules/asteriskExtension.inc:172 +#: ../lib/modules/asteriskExtension.inc:374 +#: ../lib/modules/asteriskExtension.inc:824 +msgid "Application data" +msgstr "Application data" + +#: ../templates/multiEdit.php:166 +msgid "Apply changes" +msgstr "Apply changes" + +#: ../lib/modules/zarafaUser.inc:159 ../lib/modules/zarafaUser.inc:163 +#: ../lib/modules/zarafaUser.inc:315 ../lib/modules/zarafaUser.inc:379 +#: ../lib/modules/zarafaUser.inc:554 ../lib/modules/zarafaUser.inc:957 +#: ../lib/modules/zarafaUser.inc:1236 ../lib/modules/zarafaUser.inc:1317 +#: ../lib/modules/zarafaUser.inc:1803 +msgid "Archive servers" +msgstr "Archive servers" + +#: ../lib/modules/zarafaUser.inc:552 +msgid "Archiving" +msgstr "Archiving" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:53 +msgid "Are you sure you want to permanently delete these objects?" +msgstr "Are you sure you want to permanently delete these objects?" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:107 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:51 +msgid "Are you sure you want to permanently delete this object?" +msgstr "Are you sure you want to permanently delete this object?" + +#: ../lib/modules/imapAccess.inc:129 +msgid "Ask" +msgstr "Ask" + +#: ../lib/modules/eduPerson.inc:142 ../lib/modules/eduPerson.inc:146 +#: ../lib/modules/eduPerson.inc:218 ../lib/modules/eduPerson.inc:234 +#: ../lib/modules/eduPerson.inc:352 ../lib/modules/eduPerson.inc:590 +msgid "Assurance profiles" +msgstr "Assurance profiles" + +#: ../lib/modules/eduPerson.inc:143 ../lib/modules/eduPerson.inc:147 +msgid "" +"Assurance profiles are the set of standards that are met by an identity " +"assertion." +msgstr "" +"Assurance profiles are the set of standards that are met by an identity " +"assertion." + +#: ../lib/modules/asteriskAccount.inc:73 +msgid "Asterisk" +msgstr "Asterisk" + +#: ../lib/modules/asteriskAccount.inc:132 +msgid "Asterisk AMA (Automated Message Accounting) flags." +msgstr "Asterisk AMA (Automated Message Accounting) flags." + +#: ../lib/modules/asteriskExtension.inc:79 +msgid "Asterisk extension" +msgstr "Asterisk extension" + +#: ../lib/types/asteriskExt.inc:56 +msgid "Asterisk extensions" +msgstr "Asterisk extensions" + +#: ../lib/types/asteriskExt.inc:65 +msgid "Asterisk extensions entries" +msgstr "Asterisk extensions entries" + +#: ../lib/modules/asteriskAccount.inc:123 +#: ../lib/modules/asteriskAccount.inc:249 +#: ../lib/modules/asteriskAccount.inc:1233 +msgid "Asterisk realm" +msgstr "Asterisk realm" + +#: ../lib/modules/asteriskVoicemail.inc:71 +msgid "Asterisk voicemail" +msgstr "Asterisk voicemail" + +#: ../lib/modules/asteriskVoicemail.inc:120 +msgid "Asterisk voicemail context." +msgstr "Asterisk voicemail context." + +#: ../lib/modules/sambaSamAccount.inc:560 +msgid "Atlantic time (Canada), Caracas" +msgstr "Atlantic time (Canada), Caracas" + +#: ../templates/3rdParty/pla/lib/import_functions.php:455 +msgid "Attempting to delete a non existent attribute" +msgstr "Attempting to delete a non existent attribute" + +#: ../templates/3rdParty/pla/lib/import_functions.php:466 +msgid "Attempting to replace a non existant attribute" +msgstr "Attempting to replace a non existant attribute" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Attribute" +msgstr "Attribute" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:137 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:72 +msgid "Attribute doesn't exist" +msgstr "Attribute doesn't exist" + +#: ../templates/multiEdit.php:119 ../lib/modules/customFields.inc:92 +#: ../lib/modules/customFields.inc:1060 ../lib/modules/customFields.inc:1710 +msgid "Attribute name" +msgstr "Attribute name" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:117 +msgid "Attribute not available" +msgstr "Attribute not available" + +#: ../templates/3rdParty/pla/lib/import_functions.php:535 +msgid "Attribute not valid" +msgstr "Attribute not valid" + +#: ../templates/schema/schema.php:69 ../templates/schema/schema.php:70 +msgid "Attribute types" +msgstr "Attribute types" + +#: ../lib/modules/selfRegistration.inc:78 +#: ../lib/modules/selfRegistration.inc:220 +msgid "Attributes" +msgstr "Attributes" + +#: ../lib/modules/sambaSamAccount.inc:576 +msgid "Auckland, Fiji, Kamchatka" +msgstr "Auckland, Fiji, Kamchatka" + +#: ../lib/modules/asteriskAccount.inc:124 +msgid "" +"Authentication realm for Asterisk server (default: asterisk). This value set " +"in sip.conf (option: \"realm\")." +msgstr "" +"Authentication realm for Asterisk server (default: asterisk). This value set " +"in sip.conf (option: \"realm\")." + +#: ../lib/modules/asteriskAccount.inc:232 +msgid "Authentication user for outbound proxies." +msgstr "Authentication user for outbound proxies." + +#: ../lib/modules/bindDLZ.inc:1020 +msgid "Authoritative information (\"SOA\" record)" +msgstr "Authoritative information (\"SOA\" record)" + +#: ../lib/modules/authorizedServiceObject.inc:71 +#: ../lib/modules/authorizedServiceObject.inc:81 +#: ../lib/modules/authorizedServiceObject.inc:85 +#: ../lib/modules/authorizedServiceObject.inc:105 +#: ../lib/modules/authorizedServiceObject.inc:112 +#: ../lib/modules/authorizedServiceObject.inc:116 +#: ../lib/modules/authorizedServiceObject.inc:168 +#: ../lib/modules/authorizedServiceObject.inc:243 +msgid "Authorized Services" +msgstr "Authorized Services" + +#: ../lib/modules/authorizedServiceObject.inc:129 +msgid "Authorized services are invalid." +msgstr "Authorized services are invalid." + +#: ../lib/modules/customFields.inc:152 ../lib/modules/customFields.inc:1917 +msgid "Auto-completion" +msgstr "Auto-completion" + +#: ../lib/modules/bindDLZ.inc:239 ../lib/modules/bindDLZ.inc:2563 +msgid "Automatic PTR changes" +msgstr "Automatic PTR changes" + +#: ../lib/modules/customScripts.inc:167 +msgid "Automatical scripts" +msgstr "Automatical scripts" + +#: ../lib/modules/kolabGroup.inc:117 ../lib/modules/kolabGroup.inc:127 +#: ../lib/modules/puppetClient.inc:108 ../lib/modules/puppetClient.inc:160 +#: ../lib/modules/qmailUser.inc:131 ../lib/modules/qmailUser.inc:263 +#: ../lib/modules/zarafaContact.inc:87 ../lib/modules/zarafaContact.inc:583 +#: ../lib/modules/posixGroup.inc:396 ../lib/modules/posixGroup.inc:537 +#: ../lib/modules/eduPerson.inc:150 ../lib/modules/eduPerson.inc:155 +#: ../lib/modules/pykotaGroup.inc:129 ../lib/modules/pykotaGroup.inc:140 +#: ../lib/modules/sambaSamAccount.inc:165 +#: ../lib/modules/sambaSamAccount.inc:402 ../lib/modules/posixAccount.inc:432 +#: ../lib/modules/posixAccount.inc:1784 ../lib/modules/zarafaUser.inc:136 +#: ../lib/modules/zarafaUser.inc:1303 ../lib/modules/pykotaUser.inc:160 +#: ../lib/modules/pykotaUser.inc:173 ../lib/modules/shadowAccount.inc:106 +#: ../lib/modules/shadowAccount.inc:197 ../lib/modules/customFields.inc:856 +#: ../lib/modules/qmailGroup.inc:101 ../lib/modules/qmailGroup.inc:232 +#: ../lib/modules/authorizedServiceObject.inc:89 +#: ../lib/modules/authorizedServiceObject.inc:117 +#: ../lib/modules/passwordSelfReset.inc:152 +#: ../lib/modules/passwordSelfReset.inc:167 ../lib/modules/hostObject.inc:83 +#: ../lib/modules/hostObject.inc:101 +msgid "Automatically add this extension" +msgstr "Automatically add this extension" + +#: ../lib/modules/bindDLZ.inc:240 +msgid "" +"Automatically adds and removes PTR entries when A/AAAA records are created " +"or deleted." +msgstr "" +"Automatically adds and removes PTR entries when A/AAAA records are created " +"or deleted." + +#: ../lib/types/automountType.inc:48 ../lib/types/automountType.inc:57 +msgid "Automount entries" +msgstr "Automount entries" + +#: ../lib/types/automountType.inc:87 ../lib/modules/automount.inc:50 +#: ../lib/modules/automount.inc:68 ../lib/modules/automount.inc:88 +#: ../lib/modules/automount.inc:104 ../lib/modules/automount.inc:114 +#: ../lib/modules/automount.inc:131 ../lib/modules/automount.inc:182 +msgid "Automount entry" +msgstr "Automount entry" + +#: ../lib/modules/automount.inc:114 ../lib/modules/automount.inc:115 +msgid "" +"Automount entry contains invalid characters. Only ASCII characters are " +"allowed." +msgstr "" +"Automount entry contains invalid characters. Only ASCII characters are " +"allowed." + +#: ../lib/types/automountType.inc:215 +#, php-format +msgid "Automount entry count: %s" +msgstr "Automount entry count: %s" + +#: ../lib/modules/qmailUser.inc:51 +msgid "Autoreply" +msgstr "Autoreply" + +#: ../lib/modules/qmailUser.inc:116 ../lib/modules/qmailUser.inc:239 +#: ../lib/modules/qmailUser.inc:350 ../lib/modules/qmailUser.inc:424 +#: ../lib/modules/qmailUser.inc:639 ../lib/modules/qmailUser.inc:1147 +msgid "Autoreply text" +msgstr "Autoreply text" + +#: ../templates/config/conftypes.php:215 ../lib/modules/customScripts.inc:61 +msgid "Available account types" +msgstr "Available account types" + +#: ../lib/modules/customScripts.inc:62 ../lib/modules/customScripts.inc:75 +msgid "Available actions" +msgstr "Available actions" + +#: ../lib/modules/posixAccount.inc:1569 ../lib/modules/posixAccount.inc:1602 +#: ../lib/modules/windowsUser.inc:1032 ../lib/modules/nisnetgroup.inc:386 +#: ../lib/modules/groupOfNamesUser.inc:133 +msgid "Available groups" +msgstr "Available groups" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:93 +msgid "Available members" +msgstr "Available members" + +#: ../templates/config/confmodules.php:314 +msgid "Available modules" +msgstr "Available modules" + +#: ../lib/modules/organizationalRoleUser.inc:118 +msgid "Available roles" +msgstr "Available roles" + +#: ../lib/modules/posixGroup.inc:297 ../lib/modules/asteriskExtension.inc:463 +msgid "Available users" +msgstr "Available users" + +#: ../lib/modules/sambaSamAccount.inc:1340 +msgid "Available workstations" +msgstr "Available workstations" + +#: ../lib/modules/sambaSamAccount.inc:563 +msgid "Azores, Cape Verde Islands" +msgstr "Azores, Cape Verde Islands" + +#: ../lib/modules/dhcp_settings.inc:96 +msgid "B-Node (0x01)" +msgstr "B-Node (0x01)" + +#: ../templates/massBuildAccounts.php:276 ../lib/modules/zarafaContact.inc:436 +#: ../lib/modules/posixGroup.inc:342 ../lib/modules/zarafaGroup.inc:496 +#: ../lib/modules/device.inc:303 ../lib/modules/sambaSamAccount.inc:1357 +#: ../lib/modules/sambaSamAccount.inc:1641 +#: ../lib/modules/posixAccount.inc:1642 ../lib/modules/posixAccount.inc:1716 +#: ../lib/modules/zarafaUser.inc:920 ../lib/modules/zarafaUser.inc:969 +#: ../lib/modules/windowsUser.inc:1076 +#: ../lib/modules/sambaGroupMapping.inc:511 ../lib/modules/pykotaUser.inc:618 +#: ../lib/modules/pykotaUser.inc:675 ../lib/modules/nisnetgroup.inc:400 +#: ../lib/modules/inetOrgPerson.inc:1669 ../lib/modules/inetOrgPerson.inc:1745 +#: ../lib/modules/inetOrgPerson.inc:1835 ../lib/modules/qmailGroup.inc:865 +#: ../lib/modules/organizationalRole.inc:389 +#: ../lib/modules/windowsGroup.inc:606 ../lib/modules/groupOfNames.inc:447 +#: ../lib/modules/groupOfNames.inc:601 +msgid "Back" +msgstr "Back" + +#: ../lib/types/dhcp.inc:47 +msgid "Back to DHCP list" +msgstr "Back to DHCP list" + +#: ../lib/types/bind.inc:30 +msgid "Back to DNS list" +msgstr "Back to DNS list" + +#: ../lib/types/nisObjectType.inc:30 +msgid "Back to NIS object list" +msgstr "Back to NIS object list" + +#: ../lib/baseType.inc:48 +msgid "Back to account list" +msgstr "Back to account list" + +#: ../lib/types/zarafaAddressListType.inc:44 +msgid "Back to address list" +msgstr "Back to address list" + +#: ../lib/types/mailAlias.inc:44 ../lib/types/alias.inc:44 +msgid "Back to alias list" +msgstr "Back to alias list" + +#: ../lib/types/automountType.inc:35 +msgid "Back to automount list" +msgstr "Back to automount list" + +#: ../lib/types/pykotaBillingCodeType.inc:44 +msgid "Back to billing code list" +msgstr "Back to billing code list" + +#: ../lib/types/oracleContextType.inc:30 +msgid "Back to database list" +msgstr "Back to database list" + +#: ../lib/types/smbDomain.inc:44 +msgid "Back to domain list" +msgstr "Back to domain list" + +#: ../lib/types/asteriskExt.inc:47 +msgid "Back to extensions list" +msgstr "Back to extensions list" + +#: ../templates/lists/userlink.php:63 ../lib/types/gon.inc:44 +#: ../lib/types/zarafaDynamicGroupType.inc:44 ../lib/types/group.inc:45 +#: ../lib/types/netgroup.inc:44 +msgid "Back to group list" +msgstr "Back to group list" + +#: ../lib/types/host.inc:44 +msgid "Back to host list" +msgstr "Back to host list" + +#: ../templates/delete.php:289 +msgid "Back to list" +msgstr "Back to list" + +#: ../templates/config/mainmanage.php:257 ../templates/config/index.php:79 +#: ../templates/config/index.php:133 ../templates/config/conflogin.php:117 +#: ../templates/config/conflogin.php:201 ../templates/config/mainlogin.php:124 +#: ../templates/config/mainlogin.php:178 +#: ../templates/selfService/selfServiceSP.php:139 +#: ../templates/selfService/adminLogin.php:114 +#: ../templates/selfService/adminLogin.php:191 +msgid "Back to login" +msgstr "Back to login" + +#: ../lib/types/ppolicyType.inc:30 +msgid "Back to policy list" +msgstr "Back to policy list" + +#: ../lib/types/pykotaPrinterType.inc:44 +msgid "Back to printer list" +msgstr "Back to printer list" + +#: ../templates/config/profmanage.php:188 +#: ../templates/config/profmanage.php:326 +#: ../templates/selfService/profManage.php:144 +#: ../templates/selfService/profManage.php:262 +msgid "Back to profile login" +msgstr "Back to profile login" + +#: ../lib/types/gon.inc:49 ../lib/types/group.inc:50 +msgid "Back to role list" +msgstr "Back to role list" + +#: ../lib/types/kolabSharedFolderType.inc:44 +msgid "Back to shared folder list" +msgstr "Back to shared folder list" + +#: ../lib/types/sudo.inc:30 +msgid "Back to sudo role list" +msgstr "Back to sudo role list" + +#: ../lib/types/user.inc:44 +msgid "Back to user list" +msgstr "Back to user list" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:64 +msgid "Back up" +msgstr "Back up" + +#: ../templates/serverInfo.php:163 +msgid "Backends" +msgstr "Backends" + +#: ../lib/modules/passwordSelfReset.inc:88 +#: ../lib/modules/passwordSelfReset.inc:191 +#: ../lib/modules/passwordSelfReset.inc:201 +#: ../lib/modules/passwordSelfReset.inc:213 +#: ../lib/modules/passwordSelfReset.inc:220 +#: ../lib/modules/passwordSelfReset.inc:276 +#: ../lib/modules/passwordSelfReset.inc:387 +#: ../lib/modules/passwordSelfReset.inc:675 +msgid "Backup email" +msgstr "Backup email" + +#: ../lib/modules/passwordSelfReset.inc:89 +msgid "" +"Backup email address for password reset mails. Useful if user password " +"grants access to standard mailbox." +msgstr "" +"Backup email address for password reset mails. Useful if user password " +"grants access to standard mailbox." + +#: ../lib/modules/sudoRole.inc:155 +msgid "Backup script" +msgstr "Backup script" + +#: ../lib/modules/sambaSamAccount.inc:567 +msgid "Baghdad, Riyadh, Moscow" +msgstr "Baghdad, Riyadh, Moscow" + +#: ../lib/types/pykotaBillingCodeType.inc:93 ../lib/modules/pykotaGroup.inc:62 +#: ../lib/modules/pykotaUser.inc:62 ../lib/modules/pykotaUser.inc:132 +#: ../lib/modules/pykotaUser.inc:170 ../lib/modules/pykotaUser.inc:241 +#: ../lib/modules/pykotaUser.inc:262 ../lib/modules/pykotaUser.inc:322 +#: ../lib/modules/pykotaUser.inc:365 ../lib/modules/pykotaUser.inc:900 +#: ../lib/modules/pykotaUser.inc:947 ../lib/modules/pykotaBillingCode.inc:85 +#: ../lib/modules/pykotaBillingCode.inc:117 +#: ../lib/modules/pykotaBillingCode.inc:143 +#: ../lib/modules/pykotaBillingCode.inc:263 +msgid "Balance" +msgstr "Balance" + +#: ../lib/modules/pykotaUser.inc:281 +msgid "Balance (read-only)" +msgstr "Balance (read-only)" + +#: ../lib/modules/pykotaUser.inc:136 ../lib/modules/pykotaUser.inc:247 +msgid "Balance comment" +msgstr "Balance comment" + +#: ../lib/modules/sambaSamAccount.inc:571 +msgid "Bangkok, Hanoi, Jakarta" +msgstr "Bangkok, Hanoi, Jakarta" + +#: ../lib/types/zarafaAddressListType.inc:93 +#: ../lib/types/zarafaDynamicGroupType.inc:94 +#: ../lib/modules/zarafaDynamicGroup.inc:87 +#: ../lib/modules/zarafaDynamicGroup.inc:101 +#: ../lib/modules/zarafaDynamicGroup.inc:152 +#: ../lib/modules/zarafaDynamicGroup.inc:170 +#: ../lib/modules/zarafaDynamicGroup.inc:198 +#: ../lib/modules/zarafaDynamicGroup.inc:231 +#: ../lib/modules/zarafaDynamicGroup.inc:449 +#: ../lib/modules/zarafaAddressList.inc:75 +#: ../lib/modules/zarafaAddressList.inc:89 +#: ../lib/modules/zarafaAddressList.inc:128 +#: ../lib/modules/zarafaAddressList.inc:144 +#: ../lib/modules/zarafaAddressList.inc:169 +#: ../lib/modules/zarafaAddressList.inc:198 +#: ../lib/modules/zarafaAddressList.inc:332 +msgid "Base" +msgstr "Base" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:142 +#: ../templates/3rdParty/pla/htdocs/export_form.php:31 +msgid "Base (base dn only)" +msgstr "Base (base dn only)" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:121 +#: ../templates/3rdParty/pla/lib/QueryRender.php:506 +#: ../templates/3rdParty/pla/htdocs/export_form.php:59 +msgid "Base DN" +msgstr "Base DN" + +#: ../templates/config/confmodules.php:212 ../help/help.inc:144 +msgid "Base module" +msgstr "Base module" + +#: ../templates/pdfedit/pdfpage.php:441 +msgid "Beginning" +msgstr "Beginning" + +#: ../lib/modules/sambaSamAccount.inc:572 +msgid "Beijing, Perth, Singapore" +msgstr "Beijing, Perth, Singapore" + +#: ../lib/types/pykotaBillingCodeType.inc:91 +#: ../lib/modules/pykotaBillingCode.inc:77 +#: ../lib/modules/pykotaBillingCode.inc:115 +#: ../lib/modules/pykotaBillingCode.inc:127 +#: ../lib/modules/pykotaBillingCode.inc:129 +#: ../lib/modules/pykotaBillingCode.inc:141 +#: ../lib/modules/pykotaBillingCode.inc:261 +msgid "Billing code" +msgstr "Billing code" + +#: ../lib/modules/pykotaBillingCode.inc:129 +#: ../lib/modules/pykotaBillingCode.inc:130 +msgid "Billing code already exists!" +msgstr "Billing code already exists!" + +#: ../lib/modules/pykotaBillingCode.inc:127 +#: ../lib/modules/pykotaBillingCode.inc:128 +msgid "" +"Billing code contains invalid characters. Valid characters are: a-z, A-Z, " +"0-9 and .-_ !" +msgstr "" +"Billing code contains invalid characters. Valid characters are: a-z, A-Z, " +"0-9 and .-_ !" + +#: ../lib/types/pykotaBillingCodeType.inc:163 +#, php-format +msgid "Billing code count: %s" +msgstr "Billing code count: %s" + +#: ../lib/modules/pykotaBillingCode.inc:82 +msgid "Billing code description." +msgstr "Billing code description." + +#: ../lib/modules/pykotaBillingCode.inc:78 +msgid "" +"Billing code name which should be created. Valid characters are: a-z, A-Z, " +"0-9 and .-_ ." +msgstr "" +"Billing code name which should be created. Valid characters are: a-z, A-Z, " +"0-9 and .-_ ." + +#: ../lib/types/pykotaBillingCodeType.inc:53 +msgid "Billing codes" +msgstr "Billing codes" + +#: ../templates/3rdParty/pla/lib/PageRender.php:644 +#: ../templates/3rdParty/pla/lib/PageRender.php:648 +msgid "Binary value" +msgstr "Binary value" + +#: ../templates/serverInfo.php:286 ../templates/serverInfo.php:375 +msgid "Bind" +msgstr "Bind" + +#: ../lib/types/bind.inc:39 +msgid "Bind DNS" +msgstr "Bind DNS" + +#: ../lib/types/bind.inc:48 +msgid "Bind DNS entries" +msgstr "Bind DNS entries" + +#: ../templates/config/confmain.php:444 +msgid "Bind password" +msgstr "Bind password" + +#: ../templates/config/confmain.php:442 +msgid "Bind user" +msgstr "Bind user" + +#: ../help/help.inc:128 +msgid "Bind user and password" +msgstr "Bind user and password" + +#: ../lib/modules/quota.inc:53 ../lib/modules/systemQuotas.inc:101 +msgid "Block hard quota" +msgstr "Block hard quota" + +#: ../lib/modules/quota.inc:53 ../lib/modules/quota.inc:54 +#: ../lib/modules/systemQuotas.inc:101 ../lib/modules/systemQuotas.inc:102 +msgid "" +"Block hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Block hard quota contains invalid characters. Only natural numbers are " +"allowed." + +#: ../lib/modules/quota.inc:59 ../lib/modules/systemQuotas.inc:107 +msgid "Block quota" +msgstr "Block quota" + +#: ../lib/modules/quota.inc:51 ../lib/modules/systemQuotas.inc:99 +msgid "Block soft quota" +msgstr "Block soft quota" + +#: ../lib/modules/quota.inc:51 ../lib/modules/quota.inc:52 +#: ../lib/modules/systemQuotas.inc:99 ../lib/modules/systemQuotas.inc:100 +msgid "" +"Block soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Block soft quota contains invalid characters. Only natural numbers are " +"allowed." + +#: ../lib/modules/quota.inc:59 ../lib/modules/quota.inc:60 +#: ../lib/modules/systemQuotas.inc:107 ../lib/modules/systemQuotas.inc:108 +msgid "Block soft quota must be smaller than block hard quota." +msgstr "Block soft quota must be smaller than block hard quota." + +#: ../lib/modules/qmailGroup.inc:72 ../lib/modules/qmailGroup.inc:143 +#: ../lib/modules/qmailGroup.inc:147 ../lib/modules/qmailGroup.inc:263 +#: ../lib/modules/qmailGroup.inc:375 ../lib/modules/qmailGroup.inc:431 +#: ../lib/modules/qmailGroup.inc:522 ../lib/modules/qmailGroup.inc:1059 +msgid "Bounce admin email" +msgstr "Bounce admin email" + +#: ../lib/modules/sambaSamAccount.inc:561 +msgid "Brazil, Buenos Aires" +msgstr "Brazil, Buenos Aires" + +#: ../templates/3rdParty/pla/htdocs/copy.php:53 +msgid "Building snapshot of tree to copy" +msgstr "Building snapshot of tree to copy" + +#: ../lib/modules/sambaGroupMapping.inc:73 +msgid "Builtin group" +msgstr "Builtin group" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:63 +msgid "Bulk edit the following DNs" +msgstr "Bulk edit the following DNs" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:48 +msgid "Bulk update the following DNs" +msgstr "Bulk update the following DNs" + +#: ../lib/modules/inetOrgPerson.inc:103 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:232 ../lib/modules/inetOrgPerson.inc:369 +#: ../lib/modules/inetOrgPerson.inc:599 ../lib/modules/inetOrgPerson.inc:764 +#: ../lib/modules/inetOrgPerson.inc:768 ../lib/modules/inetOrgPerson.inc:1473 +#: ../lib/modules/inetOrgPerson.inc:1476 ../lib/modules/inetOrgPerson.inc:1907 +#: ../lib/modules/inetOrgPerson.inc:2632 ../lib/modules/inetOrgPerson.inc:3545 +#: ../lib/modules/inetOrgPerson.inc:3586 +msgid "Business category" +msgstr "Business category" + +#: ../lib/modules/inetOrgPerson.inc:765 ../lib/modules/inetOrgPerson.inc:769 +msgid "Business category (e.g. Administration, IT-Services, Manangement, ...)" +msgstr "Business category (e.g. Administration, IT-Services, Manangement, ...)" + +#: ../help/help.inc:173 +msgid "" +"By default LAM will show all accounts that match the selected account " +"modules." +msgstr "" +"By default LAM will show all accounts that match the selected account " +"modules." + +#: ../help/help.inc:243 +msgid "" +"By default all modifications are done as the user that authenticated in self " +"service. If active then LAM will use the connection user for all LDAP " +"modifications and searches." +msgstr "" +"By default all modifications are done as the user that authenticated in self " +"service. If active then LAM will use the connection user for all LDAP " +"modifications and searches." + +#: ../lib/modules/selfRegistration.inc:103 +msgid "" +"By default all users are created in the self service LDAP suffix. You can " +"enter an alternative suffix here." +msgstr "" +"By default all users are created in the self service LDAP suffix. You can " +"enter an alternative suffix here." + +#: ../lib/modules/customScripts.inc:89 +msgid "" +"By default, LAM will show the executed command along with any output of it. " +"If you want to hide the command and only show the output then activate this " +"option." +msgstr "" +"By default, LAM will show the executed command along with any output of it. " +"If you want to hide the command and only show the output then activate this " +"option." + +#: ../templates/serverInfo.php:253 ../templates/serverInfo.php:259 +msgid "Bytes sent" +msgstr "Bytes sent" + +#: ../lib/modules/bindDLZ.inc:268 ../lib/modules/bindDLZ.inc:274 +#: ../lib/modules/bindDLZ.inc:481 ../lib/modules/bindDLZ.inc:497 +msgid "CNAME record" +msgstr "CNAME record" + +#: ../lib/modules/bindDLZ.inc:439 +msgid "CNAME records" +msgstr "CNAME records" + +#: ../templates/masscreate.php:253 +msgid "CSV file" +msgstr "CSV file" + +#: ../help/help.inc:107 +msgid "Cache timeout" +msgstr "Cache timeout" + +#: ../lib/modules/asteriskAccount.inc:135 +#: ../lib/modules/asteriskAccount.inc:272 +#: ../lib/modules/asteriskAccount.inc:355 +#: ../lib/modules/asteriskAccount.inc:615 +#: ../lib/modules/asteriskAccount.inc:988 +#: ../lib/modules/asteriskAccount.inc:1245 +msgid "Call groups" +msgstr "Call groups" + +#: ../lib/modules/asteriskAccount.inc:103 +#: ../lib/modules/asteriskAccount.inc:266 +#: ../lib/modules/asteriskAccount.inc:304 +#: ../lib/modules/asteriskAccount.inc:589 +#: ../lib/modules/asteriskAccount.inc:982 +msgid "Caller ID" +msgstr "Caller ID" + +#: ../lib/modules/sambaSamAccount.inc:306 +#: ../lib/modules/sambaSamAccount.inc:309 +#: ../lib/modules/sambaSamAccount.inc:312 +#: ../lib/modules/sambaSamAccount.inc:318 ../lib/modules/posixAccount.inc:535 +#: ../lib/modules/organizationalRoleUser.inc:61 +#: ../lib/modules/windowsUser.inc:205 ../lib/modules/windowsUser.inc:210 +#: ../lib/modules/sambaGroupMapping.inc:159 +#: ../lib/modules/shadowAccount.inc:178 ../lib/modules/shadowAccount.inc:182 +#: ../lib/modules/shadowAccount.inc:186 ../lib/modules/shadowAccount.inc:190 +#: ../lib/modules/groupOfNamesUser.inc:61 +msgid "Can be left empty." +msgstr "Can be left empty." + +#: ../lib/modules/asteriskAccount.inc:223 +#: ../lib/modules/asteriskAccount.inc:294 +#: ../lib/modules/asteriskAccount.inc:515 +#: ../lib/modules/asteriskAccount.inc:741 +#: ../lib/modules/asteriskAccount.inc:1010 +#: ../lib/modules/asteriskAccount.inc:1289 +msgid "Can call forward" +msgstr "Can call forward" + +#: ../templates/lists/changePassword.php:340 +#: ../templates/lists/changePassword.php:377 +#: ../templates/lists/changePassword.php:418 +#: ../templates/lists/changePassword.php:449 ../templates/ou_edit.php:121 +#: ../templates/config/profmanage.php:254 +#: ../templates/config/profmanage.php:266 +#: ../templates/config/profmanage.php:275 +#: ../templates/config/profmanage.php:293 +#: ../templates/config/profmanage.php:304 +#: ../templates/config/mainmanage.php:470 +#: ../templates/config/confmodules.php:227 +#: ../templates/config/confmain.php:471 +#: ../templates/config/moduleSettings.php:241 +#: ../templates/config/conftypes.php:341 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminMain.php:748 +#: ../templates/pdfedit/pdfpage.php:638 ../templates/pdfedit/pdfmain.php:210 +#: ../templates/pdfedit/pdfmain.php:217 ../templates/pdfedit/pdfmain.php:223 +#: ../templates/delete.php:121 ../templates/profedit/profilepage.php:241 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/profedit/profilemain.php:205 +#: ../templates/profedit/profilemain.php:211 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:197 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:83 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:136 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:121 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:119 +#: ../templates/initsuff.php:191 ../lib/types/automountType.inc:234 +#: ../lib/types/user.inc:303 ../lib/types/bind.inc:175 +#: ../lib/modules/kolabGroup.inc:294 ../lib/modules/pykotaPrinter.inc:431 +#: ../lib/modules/mitKerberos.inc:690 ../lib/modules/qmailUser.inc:921 +#: ../lib/modules/zarafaContact.inc:391 ../lib/modules/windowsHost.inc:226 +#: ../lib/modules/zarafaGroup.inc:451 ../lib/modules/device.inc:254 +#: ../lib/modules/sambaSamAccount.inc:1432 +#: ../lib/modules/sambaSamAccount.inc:1481 +#: ../lib/modules/sambaSamAccount.inc:1567 ../lib/modules/zarafaUser.inc:875 +#: ../lib/modules/kolabUser.inc:520 ../lib/modules/sambaGroupMapping.inc:490 +#: ../lib/modules/shadowAccount.inc:478 ../lib/modules/nisnetgroup.inc:490 +#: ../lib/modules/inetOrgPerson.inc:1710 ../lib/modules/freeRadius.inc:431 +#: ../lib/modules/kolabSharedFolder.inc:434 +#: ../lib/modules/customFields.inc:1084 ../lib/modules/aliasEntry.inc:147 +#: ../lib/modules/aliasEntry.inc:167 ../lib/modules/qmailGroup.inc:823 +#: ../lib/modules/organizationalRole.inc:318 ../lib/modules/fixed_ip.inc:587 +#: ../lib/modules/heimdalKerberos.inc:600 ../lib/modules/windowsGroup.inc:505 +#: ../lib/modules/windowsGroup.inc:557 ../lib/modules/groupOfNames.inc:375 +#: ../lib/modules/groupOfNames.inc:530 ../lib/modules/nisMailAlias.inc:385 +#: ../lib/lists.inc:711 ../lib/lists.inc:792 ../lib/modules.inc:1222 +msgid "Cancel" +msgstr "Cancel" + +#: ../templates/login.php:569 ../templates/login.php:627 +#: ../templates/login.php:632 +#: ../templates/selfService/selfServiceLogin.php:141 +#: ../templates/selfService/selfServiceLogin.php:190 +#: ../templates/selfService/selfServiceLogin.php:195 +#: ../templates/selfService/selfServiceMain.php:168 +#: ../templates/selfService/selfServiceMain.php:189 +#: ../lib/modules/selfRegistration.inc:699 +msgid "Cannot connect to specified LDAP server. Please try again." +msgstr "Cannot connect to specified LDAP server. Please try again." + +#: ../templates/login.php:310 ../lib/config.inc:1641 +msgid "Cannot open config file!" +msgstr "Cannot open config file!" + +#: ../lib/modules/imapAccess.inc:187 +msgid "Cannot update quota." +msgstr "Cannot update quota." + +#: ../lib/config.inc:1653 ../lib/config.inc:1661 +msgid "" +"Cannot write certificate file. Please check the permissions of config/" +"serverCerts.pem." +msgstr "" +"Cannot write certificate file. Please check the permissions of config/" +"serverCerts.pem." + +#: ../lib/modules/zarafaUser.inc:120 ../lib/modules/zarafaUser.inc:247 +#: ../lib/modules/zarafaUser.inc:364 ../lib/modules/zarafaUser.inc:415 +#: ../lib/modules/zarafaUser.inc:545 ../lib/modules/zarafaUser.inc:1232 +#: ../lib/modules/zarafaUser.inc:1799 +msgid "Capacity" +msgstr "Capacity" + +#: ../templates/selfService/adminMain.php:528 +msgid "Captions and labels" +msgstr "Captions and labels" + +#: ../lib/modules/inetOrgPerson.inc:160 ../lib/modules/inetOrgPerson.inc:523 +#: ../lib/modules/inetOrgPerson.inc:593 ../lib/modules/inetOrgPerson.inc:788 +#: ../lib/modules/inetOrgPerson.inc:1446 ../lib/modules/inetOrgPerson.inc:1449 +#: ../lib/modules/inetOrgPerson.inc:1909 ../lib/modules/inetOrgPerson.inc:2610 +#: ../lib/modules/inetOrgPerson.inc:3541 ../lib/modules/inetOrgPerson.inc:3585 +msgid "Car license" +msgstr "Car license" + +#: ../lib/modules/sambaSamAccount.inc:565 +msgid "Central Europe Time, Paris, Berlin" +msgstr "Central Europe Time, Paris, Berlin" + +#: ../lib/modules/sambaSamAccount.inc:558 +msgid "Central Time (US & Canada), Mexico City" +msgstr "Central Time (US & Canada), Mexico City" + +#: ../templates/selfService/adminMain.php:546 +#: ../lib/modules/mitKerberos.inc:377 ../lib/modules/mitKerberos.inc:388 +#: ../lib/modules/mitKerberos.inc:686 ../lib/modules/qmailUser.inc:661 +#: ../lib/modules/qmailUser.inc:917 ../lib/modules/zarafaContact.inc:229 +#: ../lib/modules/windowsHost.inc:155 ../lib/modules/windowsHost.inc:225 +#: ../lib/modules/zarafaGroup.inc:266 ../lib/modules/device.inc:181 +#: ../lib/modules/sambaSamAccount.inc:1192 +#: ../lib/modules/sambaSamAccount.inc:1477 ../lib/modules/zarafaUser.inc:466 +#: ../lib/modules/zarafaUser.inc:557 ../lib/modules/shadowAccount.inc:355 +#: ../lib/modules/shadowAccount.inc:474 ../lib/modules/inetOrgPerson.inc:1533 +#: ../lib/modules/freeRadius.inc:301 ../lib/modules/freeRadius.inc:427 +#: ../lib/modules/asteriskExtension.inc:236 ../lib/modules/aliasEntry.inc:100 +#: ../lib/modules/qmailGroup.inc:572 ../lib/modules/organizationalRole.inc:194 +#: ../lib/modules/passwordSelfReset.inc:271 +#: ../lib/modules/heimdalKerberos.inc:324 +#: ../lib/modules/heimdalKerberos.inc:335 +#: ../lib/modules/heimdalKerberos.inc:596 ../lib/modules/windowsGroup.inc:361 +#: ../lib/modules/windowsGroup.inc:504 ../lib/modules/groupOfNames.inc:241 +#: ../lib/modules/groupOfNames.inc:248 +msgid "Change" +msgstr "Change" + +#: ../templates/lists/changePassword.php:223 +msgid "Change Asterisk password" +msgstr "Change Asterisk password" + +#: ../templates/lists/changePassword.php:235 +msgid "Change Asterisk voicemail password" +msgstr "Change Asterisk voicemail password" + +#: ../lib/modules/posixGroup.inc:218 ../lib/modules/posixGroup.inc:512 +msgid "Change GID number of users and hosts" +msgstr "Change GID number of users and hosts" + +#: ../templates/lists/changePassword.php:226 +#: ../templates/lists/changePassword.php:229 +msgid "Change Kerberos password" +msgstr "Change Kerberos password" + +#: ../templates/lists/changePassword.php:216 +msgid "Change Samba LM password" +msgstr "Change Samba LM password" + +#: ../templates/lists/changePassword.php:214 +msgid "Change Samba NT password" +msgstr "Change Samba NT password" + +#: ../templates/lists/changePassword.php:208 +msgid "Change Unix password" +msgstr "Change Unix password" + +#: ../templates/lists/changePassword.php:232 +msgid "Change Windows password" +msgstr "Change Windows password" + +#: ../lib/types/user.inc:303 +msgid "Change account status" +msgstr "Change account status" + +#: ../templates/config/profmanage.php:300 +#: ../templates/config/profmanage.php:303 ../help/help.inc:138 +msgid "Change default profile" +msgstr "Change default profile" + +#: ../templates/selfService/adminMain.php:607 +msgid "Change field label." +msgstr "Change field label." + +#: ../lib/lists.inc:792 +msgid "Change list settings" +msgstr "Change list settings" + +#: ../templates/config/mainmanage.php:454 ../help/help.inc:140 +msgid "Change master password" +msgstr "Change master password" + +#: ../templates/lists/changePassword.php:211 +#: ../templates/lists/changePassword.php:256 +#: ../templates/lists/changePassword.php:337 +#: ../templates/lists/changePassword.php:339 +#: ../templates/lists/changePassword.php:374 +#: ../templates/lists/changePassword.php:376 ../lib/types/user.inc:669 +#: ../help/help.inc:105 +msgid "Change password" +msgstr "Change password" + +#: ../templates/lists/changePassword.php:263 +#: ../templates/lists/changePassword.php:264 +msgid "Change password now?" +msgstr "Change password now?" + +#: ../templates/config/confmain.php:261 +msgid "Change passwords" +msgstr "Change passwords" + +#: ../lib/lists.inc:793 +msgid "Change settings" +msgstr "Change settings" + +#: ../lib/modules/posixAccount.inc:1225 +msgid "Changed value because only ASCII characters are allowed." +msgstr "Changed value because only ASCII characters are allowed." + +#: ../lib/modules/passwordSelfReset.inc:185 +msgid "Charlie" +msgstr "Charlie" + +#: ../lib/modules/posixAccount.inc:1485 +msgid "Check home directories" +msgstr "Check home directories" + +#: ../templates/tests/index.php:54 ../lib/tools/tests.inc:112 +msgid "Check if quotas and homedirectories can be managed." +msgstr "Check if quotas and homedirectories can be managed." + +#: ../templates/tests/index.php:60 ../lib/tools/tests.inc:118 +msgid "" +"Check if the LDAP schema fits the requirements of the selected account " +"modules." +msgstr "" +"Check if the LDAP schema fits the requirements of the selected account " +"modules." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2401 +msgid "Check password" +msgstr "Check password" + +#: ../templates/tests/lamdaemonTest.php:87 +msgid "Check quotas" +msgstr "Check quotas" + +#: ../templates/masscreate.php:247 +msgid "" +"Check your input carefully. LAM will only do some basic checks on the upload " +"data." +msgstr "" +"Check your input carefully. LAM will only do some basic checks on the upload " +"data." + +#: ../lib/modules/customFields.inc:2735 +msgid "Checkbox" +msgstr "Checkbox" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1224 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1229 +msgid "Children" +msgstr "Children" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:23 +msgid "Choose entry" +msgstr "Choose entry" + +#: ../lib/modules/imapAccess.inc:90 +msgid "" +"Choose the way how to provide the IMAP admin password. You can use the same " +"password as for the LAM login or LAM will ask you for a password when it is " +"required." +msgstr "" +"Choose the way how to provide the IMAP admin password. You can use the same " +"password as for the LAM login or LAM will ask you for a password when it is " +"required." + +#: ../lib/modules/puppetClient.inc:92 ../lib/modules/puppetClient.inc:96 +#: ../lib/modules/puppetClient.inc:140 ../lib/modules/puppetClient.inc:155 +#: ../lib/modules/puppetClient.inc:168 ../lib/modules/puppetClient.inc:271 +#: ../lib/modules/puppetClient.inc:433 +msgid "Classes" +msgstr "Classes" + +#: ../lib/lists.inc:384 +msgid "Clear filter" +msgstr "Clear filter" + +#: ../lib/config.inc:224 +msgid "Click here if you are not directed to the next page." +msgstr "Click here if you are not directed to the next page." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2349 +msgid "Click to popup a dialog to select a date graphically" +msgstr "Click to popup a dialog to select a date graphically" + +#: ../templates/3rdParty/pla/lib/functions.php:2293 +msgid "Click to popup a dialog to select an entry (DN) graphically" +msgstr "Click to popup a dialog to select an entry (DN) graphically" + +#: ../lib/types/user.inc:619 +msgid "Click to switch between thumbnail and original size." +msgstr "Click to switch between thumbnail and original size." + +#: ../lib/modules/sambaSamAccount.inc:241 +#: ../lib/modules/sambaSamAccount.inc:378 +#: ../lib/modules/sambaSamAccount.inc:1535 +#: ../lib/modules/sambaSamAccount.inc:1943 +msgid "Client printer is default" +msgstr "Client printer is default" + +#: ../templates/schema/schema.php:199 +msgid "Collective" +msgstr "Collective" + +#: ../lib/modules/pykotaPrinter.inc:155 +msgid "Color laser printer" +msgstr "Color laser printer" + +#: ../templates/masscreate.php:284 ../lib/modules/customFields.inc:128 +#: ../lib/modules/customFields.inc:2601 +msgid "Columns" +msgstr "Columns" + +#: ../lib/modules/sambaSamAccount.inc:318 +msgid "" +"Comma separated list of Samba workstations the user is allowed to login. " +"Empty means every workstation." +msgstr "" +"Comma separated list of Samba workstations the user is allowed to login. " +"Empty means every workstation." + +#: ../lib/modules/authorizedServiceObject.inc:86 +msgid "Comma separated list of services (e.g. sshd, imap, ftp)." +msgstr "Comma separated list of services (e.g. sshd, imap, ftp)." + +#: ../lib/types/sudo.inc:80 ../lib/modules/customScripts.inc:169 +msgid "Command" +msgstr "Command" + +#: ../lib/modules/sudoRole.inc:82 ../lib/modules/sudoRole.inc:108 +#: ../lib/modules/sudoRole.inc:171 ../lib/modules/sudoRole.inc:218 +#: ../lib/modules/sudoRole.inc:230 ../lib/modules/sudoRole.inc:370 +#: ../lib/modules/sudoRole.inc:808 +msgid "Commands" +msgstr "Commands" + +#: ../lib/modules/pykotaUser.inc:375 ../lib/modules/pykotaUser.inc:599 +#: ../lib/modules/pykotaUser.inc:907 ../lib/modules/pykotaUser.inc:967 +msgid "Comment" +msgstr "Comment" + +#: ../lib/modules/pykotaUser.inc:137 +msgid "Comment for initial balance." +msgstr "Comment for initial balance." + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:117 +msgid "Commit" +msgstr "Commit" + +#: ../lib/modules/posixAccount.inc:438 +msgid "Common examples are \"@givenname@%sn%\" or \"%givenname%.%sn%\"." +msgstr "Common examples are \"@givenname@%sn%\" or \"%givenname%.%sn%\"." + +#: ../templates/config/mainmanage.php:362 ../lib/types/user.inc:94 +#: ../lib/modules/pykotaGroup.inc:113 ../lib/modules/pykotaGroup.inc:157 +#: ../lib/modules/pykotaGroup.inc:185 ../lib/modules/pykotaGroup.inc:466 +#: ../lib/modules/posixAccount.inc:129 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:348 ../lib/modules/posixAccount.inc:421 +#: ../lib/modules/posixAccount.inc:538 ../lib/modules/posixAccount.inc:560 +#: ../lib/modules/posixAccount.inc:1429 ../lib/modules/posixAccount.inc:1851 +#: ../lib/modules/posixAccount.inc:2552 ../lib/modules/windowsUser.inc:102 +#: ../lib/modules/windowsUser.inc:290 ../lib/modules/windowsUser.inc:473 +#: ../lib/modules/windowsUser.inc:499 ../lib/modules/windowsUser.inc:591 +#: ../lib/modules/windowsUser.inc:702 ../lib/modules/windowsUser.inc:1586 +#: ../lib/modules/pykotaUser.inc:108 ../lib/modules/pykotaUser.inc:199 +#: ../lib/modules/pykotaUser.inc:271 ../lib/modules/pykotaUser.inc:405 +#: ../lib/modules/pykotaUser.inc:888 ../lib/modules/inetOrgPerson.inc:93 +#: ../lib/modules/inetOrgPerson.inc:626 ../lib/modules/inetOrgPerson.inc:740 +#: ../lib/modules/inetOrgPerson.inc:1197 ../lib/modules/inetOrgPerson.inc:1200 +#: ../lib/modules/inetOrgPerson.inc:1904 ../lib/modules/inetOrgPerson.inc:2035 +#: ../lib/modules/inetOrgPerson.inc:3595 +#: ../lib/modules/asteriskExtension.inc:118 +msgid "Common name" +msgstr "Common name" + +#: ../lib/modules/asteriskExtension.inc:119 +msgid "Common name of the Asterisk extension." +msgstr "Common name of the Asterisk extension." + +#: ../templates/serverInfo.php:335 ../templates/serverInfo.php:396 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1172 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:60 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:39 +msgid "Compare" +msgstr "Compare" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:28 +#, php-format +msgid "Compare another DN with %s" +msgstr "Compare another DN with %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1169 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +msgid "Compare this DN with another" +msgstr "Compare this DN with another" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +msgid "Compare with another entry" +msgstr "Compare with another entry" + +#: ../templates/3rdParty/pla/htdocs/compare.php:42 +msgid "Comparing the following DNs" +msgstr "Comparing the following DNs" + +#: ../templates/serverInfo.php:284 ../templates/serverInfo.php:371 +msgid "Completed" +msgstr "Completed" + +#: ../templates/serverInfo.php:114 +msgid "Config suffix" +msgstr "Config suffix" + +#: ../templates/config/index.php:50 +msgid "Configuration overview" +msgstr "Configuration overview" + +#: ../lib/modules/qmailUser.inc:126 ../lib/modules/qmailUser.inc:179 +#: ../lib/modules/qmailUser.inc:259 ../lib/modules/qmailUser.inc:392 +#: ../lib/modules/qmailUser.inc:439 ../lib/modules/qmailUser.inc:619 +#: ../lib/modules/qmailUser.inc:1178 +msgid "Configuration type" +msgstr "Configuration type" + +#: ../lib/modules/qmailGroup.inc:96 ../lib/modules/qmailGroup.inc:228 +#: ../lib/modules/qmailGroup.inc:361 ../lib/modules/qmailGroup.inc:411 +#: ../lib/modules/qmailGroup.inc:623 ../lib/modules/qmailGroup.inc:1081 +msgid "Confirm sender" +msgstr "Confirm sender" + +#: ../lib/modules/selfRegistration.inc:228 +msgid "Confirmation mail settings" +msgstr "Confirmation mail settings" + +#: ../lib/modules/qmailGroup.inc:74 ../lib/modules/qmailGroup.inc:103 +#: ../lib/modules/qmailGroup.inc:152 ../lib/modules/qmailGroup.inc:271 +#: ../lib/modules/qmailGroup.inc:378 ../lib/modules/qmailGroup.inc:591 +#: ../lib/modules/qmailGroup.inc:1060 +msgid "Confirmation text" +msgstr "Confirmation text" + +#: ../lib/modules/qmailGroup.inc:153 +msgid "" +"Confirmation text that is used if sender-confirmation is used. The usual " +"%HEADER% magic of qmail-reply etc. can be used here." +msgstr "" +"Confirmation text that is used if sender-confirmation is used. The usual " +"%HEADER% magic of qmail-reply etc. can be used here." + +#: ../templates/config/confmodules.php:394 +msgid "Conflicting module:" +msgstr "Conflicting module:" + +#: ../lib/modules/sambaSamAccount.inc:239 +#: ../lib/modules/sambaSamAccount.inc:372 +#: ../lib/modules/sambaSamAccount.inc:1531 +#: ../lib/modules/sambaSamAccount.inc:1933 +msgid "Connect client drives" +msgstr "Connect client drives" + +#: ../lib/modules/sambaSamAccount.inc:240 +#: ../lib/modules/sambaSamAccount.inc:375 +#: ../lib/modules/sambaSamAccount.inc:1533 +#: ../lib/modules/sambaSamAccount.inc:1938 +msgid "Connect client printers" +msgstr "Connect client printers" + +#: ../templates/serverInfo.php:230 +msgid "Connection statistics" +msgstr "Connection statistics" + +#: ../lib/types/oracleContextType.inc:78 ../lib/modules/oracleService.inc:65 +#: ../lib/modules/oracleService.inc:85 ../lib/modules/oracleService.inc:99 +#: ../lib/modules/oracleService.inc:123 ../lib/modules/oracleService.inc:171 +msgid "Connection string" +msgstr "Connection string" + +#: ../lib/modules/sambaSamAccount.inc:236 +#: ../lib/modules/sambaSamAccount.inc:1519 +#: ../lib/modules/sambaSamAccount.inc:1926 +msgid "Connection time limit" +msgstr "Connection time limit" + +#: ../lib/modules/bindDLZ.inc:232 +msgid "Contact address for this zone (e.g. \"root.example.com.\")." +msgstr "Contact address for this zone (e.g. \"root.example.com.\")." + +#: ../lib/modules/windowsUser.inc:715 ../lib/modules/inetOrgPerson.inc:1377 +msgid "Contact data" +msgstr "Contact data" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:721 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1301 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +msgid "Container" +msgstr "Container" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1458 +msgid "Container and object classes" +msgstr "Container and object classes" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:27 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:88 +#: ../templates/3rdParty/pla/htdocs/copy.php:108 +msgid "Copy" +msgstr "Copy" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:32 +#, php-format +msgid "Copy %s to a new object." +msgstr "Copy %s to a new object." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1098 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1102 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1103 +msgid "Copy or move this entry" +msgstr "Copy or move this entry" + +#: ../templates/3rdParty/pla/htdocs/copy.php:130 +#, php-format +msgid "Copy successful. DN %s has been created." +msgstr "Copy successful. DN %s has been created." + +#: ../templates/3rdParty/pla/htdocs/copy.php:48 +msgid "Copying" +msgstr "Copying" + +#: ../templates/3rdParty/pla/htdocs/import.php:37 +msgid "Could not add object" +msgstr "Could not add object" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:370 +msgid "Could not add the object to the LDAP server." +msgstr "Could not add the object to the LDAP server." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:30 +msgid "Could not delete attribute value." +msgstr "Could not delete attribute value." + +#: ../templates/3rdParty/pla/htdocs/import.php:38 +msgid "Could not delete object" +msgstr "Could not delete object" + +#: ../templates/3rdParty/pla/htdocs/delete.php:37 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:47 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:73 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:90 +msgid "Could not delete the entry." +msgstr "Could not delete the entry." + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:37 +#, php-format +msgid "Could not fetch binary data from LDAP server for attribute [%s]." +msgstr "Could not fetch binary data from LDAP server for attribute [%s]." + +#: ../templates/3rdParty/pla/lib/functions.php:1946 +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:60 +#, php-format +msgid "Could not fetch jpeg data from LDAP server for attribute [%s]." +msgstr "Could not fetch jpeg data from LDAP server for attribute [%s]." + +#: ../templates/3rdParty/pla/htdocs/import.php:41 +msgid "Could not modify object" +msgstr "Could not modify object" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:528 +msgid "Could not perform ldap_modify operation." +msgstr "Could not perform ldap_modify operation." + +#: ../templates/config/profmanage.php:100 +#: ../templates/selfService/profManage.php:74 +msgid "Could not rename file!" +msgstr "Could not rename file!" + +#: ../templates/3rdParty/pla/htdocs/import.php:39 +#: ../templates/3rdParty/pla/htdocs/import.php:40 +#: ../templates/3rdParty/pla/htdocs/rename.php:60 +msgid "Could not rename the entry." +msgstr "Could not rename the entry." + +#: ../templates/pdfedit/pdfpage.php:117 +msgid "Could not save PDF structure, access denied." +msgstr "Could not save PDF structure, access denied." + +#: ../templates/pdfedit/pdfmain.php:182 +#: ../templates/profedit/profilemain.php:168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1185 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1189 +#: ../templates/initsuff.php:190 ../lib/modules/nisMailAliasUser.inc:366 +#: ../lib/modules/sambaSamAccount.inc:1620 +#: ../lib/modules/posixAccount.inc:1695 +msgid "Create" +msgstr "Create" + +#: ../lib/lists.inc:500 ../lib/lists.inc:686 ../lib/modules.inc:1341 +#: ../help/help.inc:200 +msgid "Create PDF file" +msgstr "Create PDF file" + +#: ../templates/massDoUpload.php:202 ../templates/masscreate.php:264 +msgid "Create PDF files" +msgstr "Create PDF files" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1186 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1190 +msgid "Create a child entry" +msgstr "Create a child entry" + +#: ../templates/pdfedit/pdfmain.php:175 +msgid "Create a new PDF structure" +msgstr "Create a new PDF structure" + +#: ../templates/profedit/profilemain.php:156 +msgid "Create a new profile" +msgstr "Create a new profile" + +#: ../lib/types/dhcp.inc:46 +msgid "Create another DHCP entry" +msgstr "Create another DHCP entry" + +#: ../lib/types/bind.inc:29 +msgid "Create another DNS entry" +msgstr "Create another DNS entry" + +#: ../lib/types/nisObjectType.inc:29 +msgid "Create another NIS object" +msgstr "Create another NIS object" + +#: ../lib/baseType.inc:47 +msgid "Create another account" +msgstr "Create another account" + +#: ../lib/types/zarafaAddressListType.inc:43 +msgid "Create another address list" +msgstr "Create another address list" + +#: ../lib/types/mailAlias.inc:43 ../lib/types/alias.inc:43 +msgid "Create another alias" +msgstr "Create another alias" + +#: ../lib/types/automountType.inc:34 +msgid "Create another automount entry" +msgstr "Create another automount entry" + +#: ../lib/types/pykotaBillingCodeType.inc:43 +msgid "Create another billing code" +msgstr "Create another billing code" + +#: ../lib/types/oracleContextType.inc:29 +msgid "Create another database entry" +msgstr "Create another database entry" + +#: ../lib/types/smbDomain.inc:43 +msgid "Create another domain" +msgstr "Create another domain" + +#: ../templates/3rdParty/pla/htdocs/create.php:100 +msgid "Create another entry" +msgstr "Create another entry" + +#: ../lib/types/asteriskExt.inc:46 +msgid "Create another extension" +msgstr "Create another extension" + +#: ../lib/types/gon.inc:43 ../lib/types/zarafaDynamicGroupType.inc:43 +#: ../lib/types/group.inc:44 ../lib/types/netgroup.inc:43 +msgid "Create another group" +msgstr "Create another group" + +#: ../lib/types/host.inc:43 +msgid "Create another host" +msgstr "Create another host" + +#: ../lib/types/ppolicyType.inc:29 +msgid "Create another policy" +msgstr "Create another policy" + +#: ../lib/types/pykotaPrinterType.inc:43 +msgid "Create another printer" +msgstr "Create another printer" + +#: ../lib/types/gon.inc:48 ../lib/types/group.inc:49 +msgid "Create another role" +msgstr "Create another role" + +#: ../lib/types/kolabSharedFolderType.inc:43 +msgid "Create another shared folder" +msgstr "Create another shared folder" + +#: ../lib/types/sudo.inc:29 +msgid "Create another sudo role" +msgstr "Create another sudo role" + +#: ../lib/types/user.inc:43 +msgid "Create another user" +msgstr "Create another user" + +#: ../lib/lists.inc:691 +msgid "Create for" +msgstr "Create for" + +#: ../lib/modules/posixAccount.inc:317 ../lib/modules/posixAccount.inc:1471 +#: ../lib/modules/posixAccount.inc:1760 +msgid "Create home directory" +msgstr "Create home directory" + +#: ../lib/modules/imapAccess.inc:263 +msgid "Create mailbox" +msgstr "Create mailbox" + +#: ../lib/modules/nisMailAliasUser.inc:359 +msgid "Create new alias" +msgstr "Create new alias" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:278 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:281 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:283 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:506 +msgid "Create new entry here" +msgstr "Create new entry here" + +#: ../lib/modules/customFields.inc:72 ../lib/modules/customFields.inc:519 +#: ../lib/modules/customFields.inc:532 +msgid "Create new group" +msgstr "Create new group" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:698 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1541 +#: ../templates/3rdParty/pla/htdocs/create.php:84 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:52 +msgid "Create object" +msgstr "Create object" + +#: ../lib/modules/generalInformation.inc:76 +msgid "Created by" +msgstr "Created by" + +#: ../lib/types/automountType.inc:273 +msgid "Created new automount map." +msgstr "Created new automount map." + +#: ../templates/config/profmanage.php:77 +#: ../templates/selfService/profManage.php:55 +msgid "Created new profile." +msgstr "Created new profile." + +#: ../lib/types/bind.inc:240 +msgid "Created new zone." +msgstr "Created new zone." + +#: ../lib/modules/customFields.inc:73 +msgid "" +"Creates a new group for the given account type. Groups build a container for " +"object classes and attributes." +msgstr "" +"Creates a new group for the given account type. Groups build a container for " +"object classes and attributes." + +#: ../lib/tools/fileUpload.inc:53 +msgid "Creates accounts by uploading a CSV formated file." +msgstr "Creates accounts by uploading a CSV formated file." + +#: ../templates/3rdParty/pla/htdocs/create.php:77 +#, php-format +msgid "Creation successful. DN %s has been created." +msgstr "Creation successful. DN %s has been created." + +#: ../lib/modules/generalInformation.inc:80 +msgid "Creation time" +msgstr "Creation time" + +#: ../lib/modules/pykotaUser.inc:133 +msgid "Current account balance for the user." +msgstr "Current account balance for the user." + +#: ../templates/serverInfo.php:232 ../templates/serverInfo.php:237 +msgid "Current connections" +msgstr "Current connections" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:65 +#, php-format +msgid "Current list of %s values for attribute %s:" +msgstr "Current list of %s values for attribute %s:" + +#: ../lib/modules/imapAccess.inc:317 +msgid "Current usage (kB)" +msgstr "Current usage (kB)" + +#: ../lib/modules/customFields.inc:1097 ../lib/modules/customFields.inc:1420 +msgid "Custom fields" +msgstr "Custom fields" + +#: ../lib/modules/customFields.inc:172 +msgid "Custom icon" +msgstr "Custom icon" + +#: ../templates/config/conftypes.php:300 ../lib/modules/customFields.inc:168 +#: ../help/help.inc:180 +msgid "Custom label" +msgstr "Custom label" + +#: ../lib/modules/customScripts.inc:48 ../lib/modules/customScripts.inc:59 +#: ../lib/modules/customScripts.inc:73 ../lib/modules/customScripts.inc:98 +#: ../lib/modules/customScripts.inc:108 +msgid "Custom scripts" +msgstr "Custom scripts" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1097 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1101 +msgid "Cut" +msgstr "Cut" + +#: ../lib/modules/ddns.inc:63 +msgid "DDNS" +msgstr "DDNS" + +#: ../lib/modules/ddns.inc:377 +msgid "" +"DDNS ist not activated. You can activate it in the DHCP settings (DDNS)." +msgstr "" +"DDNS ist not activated. You can activate it in the DHCP settings (DDNS)." + +#: ../lib/types/dhcp.inc:56 +msgid "DHCP" +msgstr "DHCP" + +#: ../lib/types/dhcp.inc:65 +msgid "DHCP administration" +msgstr "DHCP administration" + +#: ../lib/types/dhcp.inc:170 +#, php-format +msgid "DHCP count: %s" +msgstr "DHCP count: %s" + +#: ../lib/types/dhcp.inc:173 ../lib/modules/dhcp_settings.inc:127 +msgid "DHCP settings" +msgstr "DHCP settings" + +#: ../templates/delete.php:100 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:734 +#: ../templates/3rdParty/pla/lib/PageRender.php:110 +#: ../templates/3rdParty/pla/htdocs/compare.php:52 +#: ../templates/3rdParty/pla/htdocs/compare.php:58 +#: ../templates/3rdParty/pla/htdocs/create.php:92 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:35 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:112 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:57 ../lib/modules.inc:410 +#: ../lib/modules.inc:1956 +msgid "DN" +msgstr "DN" + +#: ../templates/3rdParty/pla/lib/import_functions.php:210 +#: ../templates/3rdParty/pla/lib/import_functions.php:222 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1866 +msgid "DN does not exist" +msgstr "DN does not exist" + +#: ../templates/masscreate.php:288 +msgid "DN settings" +msgstr "DN settings" + +#: ../templates/masscreate.php:317 ../help/help.inc:190 +msgid "DN suffix" +msgstr "DN suffix" + +#: ../lib/modules/dhcp_settings.inc:211 ../lib/modules/dhcp_settings.inc:226 +#: ../lib/modules/dhcp_settings.inc:268 ../lib/modules/dhcp_settings.inc:577 +#: ../lib/modules/dhcp_settings.inc:677 +msgid "DNS" +msgstr "DNS" + +#: ../lib/modules/dhcp_settings.inc:161 +msgid "DNS (Domain Name System)" +msgstr "DNS (Domain Name System)" + +#: ../lib/modules/bindDLZ.inc:74 +msgid "DNS entry" +msgstr "DNS entry" + +#: ../lib/types/bind.inc:159 +#, php-format +msgid "DNS entry count: %s" +msgstr "DNS entry count: %s" + +#: ../lib/modules/asteriskExtension.inc:115 +msgid "DNs of the extension owners" +msgstr "DNs of the extension owners" + +#: ../templates/3rdParty/pla/lib/export_functions.php:343 +msgid "DSML V.1 Export" +msgstr "DSML V.1 Export" + +#: ../lib/modules/asteriskAccount.inc:273 +#: ../lib/modules/asteriskAccount.inc:362 +#: ../lib/modules/asteriskAccount.inc:627 +#: ../lib/modules/asteriskAccount.inc:1247 +msgid "DTFM flags" +msgstr "DTFM flags" + +#: ../lib/modules/asteriskAccount.inc:139 +#: ../lib/modules/asteriskAccount.inc:989 +msgid "DTMF mode" +msgstr "DTMF mode" + +#: ../lib/modules/asteriskAccount.inc:140 +msgid "DTMF mode for SIP client configuration." +msgstr "DTMF mode for SIP client configuration." + +#: ../templates/3rdParty/pla/htdocs/import.php:103 +msgid "Data" +msgstr "Data" + +#: ../lib/types/oracleContextType.inc:186 +#, php-format +msgid "Database count: %s" +msgstr "Database count: %s" + +#: ../lib/modules/pykotaUser.inc:595 ../lib/modules/pykotaUser.inc:646 +#: ../lib/modules/pykotaUser.inc:905 ../lib/modules/pykotaUser.inc:963 +#: ../lib/modules/pykotaUser.inc:995 +msgid "Date" +msgstr "Date" + +#: ../lib/modules/sambaSamAccount.inc:298 +msgid "Date after the user is able to change his password." +msgstr "Date after the user is able to change his password." + +#: ../lib/modules/mitKerberos.inc:121 ../lib/modules/sambaSamAccount.inc:300 +#: ../lib/modules/heimdalKerberos.inc:107 +msgid "Date after the user must change his password." +msgstr "Date after the user must change his password." + +#: ../lib/modules/shadowAccount.inc:178 +msgid "" +"Days before password is to expire that user is warned of pending password " +"expiration. If set value must be >0." +msgstr "" +"Days before password is to expire that user is warned of pending password " +"expiration. If set value must be >0." + +#: ../templates/config/mainmanage.php:408 +msgid "Debug" +msgstr "Debug" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:592 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +#: ../lib/modules/qmailUser.inc:47 ../lib/modules/qmailUser.inc:292 +#: ../lib/modules/qmailUser.inc:1060 +msgid "Default" +msgstr "Default" + +#: ../templates/config/mainmanage.php:443 +msgid "Default (\\r\\n)" +msgstr "Default (\\r\\n)" + +#: ../lib/modules/dhcp_settings.inc:165 ../lib/modules/dhcp_settings.inc:212 +#: ../lib/modules/dhcp_settings.inc:227 ../lib/modules/dhcp_settings.inc:274 +#: ../lib/modules/dhcp_settings.inc:579 ../lib/modules/dhcp_settings.inc:678 +msgid "Default gateway" +msgstr "Default gateway" + +#: ../templates/config/confmain.php:297 +#: ../templates/selfService/adminMain.php:485 ../help/help.inc:99 +msgid "Default language" +msgstr "Default language" + +#: ../lib/modules/asteriskAccount.inc:231 +#: ../lib/modules/asteriskAccount.inc:296 +#: ../lib/modules/asteriskAccount.inc:530 +#: ../lib/modules/asteriskAccount.inc:750 +#: ../lib/modules/asteriskAccount.inc:1012 +#: ../lib/modules/asteriskAccount.inc:1293 +msgid "Default user" +msgstr "Default user" + +#: ../templates/masscreate.php:306 ../templates/masscreate.php:380 +#: ../lib/modules/customFields.inc:124 ../lib/modules/customFields.inc:2761 +msgid "Default value" +msgstr "Default value" + +#: ../help/help.inc:159 +msgid "" +"Defines if the PHP error reporting setting from php.ini is used or the " +"setting preferred by LAM (\"E_ALL & ~E_NOTICE\"). If you do not develop LAM " +"modules please use the default. This will prevent displaying messages that " +"are useful only for developers." +msgstr "" +"Defines if the PHP error reporting setting from php.ini is used or the " +"setting preferred by LAM (\"E_ALL & ~E_NOTICE\"). If you do not develop LAM " +"modules please use the default. This will prevent displaying messages that " +"are useful only for developers." + +#: ../lib/modules/sambaDomain.inc:118 +msgid "Defines if workstations may change their passwords." +msgstr "Defines if workstations may change their passwords." + +#: ../lib/modules/asteriskAccount.inc:160 +msgid "" +"Defines the mailbox to check for message waiting indication (MWI) for this " +"peer." +msgstr "" +"Defines the mailbox to check for message waiting indication (MWI) for this " +"peer." + +#: ../lib/types/kolabSharedFolderType.inc:91 ../lib/modules/kolabUser.inc:116 +#: ../lib/modules/kolabUser.inc:132 ../lib/modules/kolabUser.inc:136 +#: ../lib/modules/kolabUser.inc:211 ../lib/modules/kolabUser.inc:234 +#: ../lib/modules/kolabUser.inc:359 ../lib/modules/kolabUser.inc:765 +#: ../lib/modules/kolabUser.inc:837 ../lib/modules/kolabSharedFolder.inc:138 +#: ../lib/modules/kolabSharedFolder.inc:142 +#: ../lib/modules/kolabSharedFolder.inc:226 +#: ../lib/modules/kolabSharedFolder.inc:237 +#: ../lib/modules/kolabSharedFolder.inc:320 +#: ../lib/modules/kolabSharedFolder.inc:564 +msgid "Delegates" +msgstr "Delegates" + +#: ../lib/modules/kolabSharedFolder.inc:139 +msgid "" +"Delegates are allowed to act on behalf of the shared folder. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"Delegates are allowed to act on behalf of the shared folder. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." + +#: ../templates/serverInfo.php:321 ../templates/serverInfo.php:390 +#: ../templates/multiEdit.php:126 ../templates/ou_edit.php:120 +#: ../templates/config/profmanage.php:273 +#: ../templates/selfService/profManage.php:238 +#: ../templates/pdfedit/pdfmain.php:209 ../templates/pdfedit/pdfmain.php:210 +#: ../templates/pdfedit/pdfmain.php:243 ../templates/delete.php:120 +#: ../templates/profedit/profilemain.php:198 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:33 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:124 +#: ../lib/modules/pykotaPrinter.inc:281 +#: ../lib/modules/sambaSamAccount.inc:1613 +#: ../lib/modules/posixAccount.inc:1688 ../lib/modules/zarafaUser.inc:1434 +#: ../lib/modules/zarafaUser.inc:1486 ../lib/modules/bindDLZ.inc:1062 +#: ../lib/modules/bindDLZ.inc:1383 ../lib/modules/kolabUser.inc:827 +#: ../lib/modules/sambaGroupMapping.inc:405 +#: ../lib/modules/ldapPublicKey.inc:262 ../lib/modules/nisnetgroup.inc:253 +#: ../lib/modules/inetOrgPerson.inc:2805 ../lib/modules/customFields.inc:2086 +#: ../lib/modules/customFields.inc:3462 ../lib/lists.inc:494 +msgid "Delete" +msgstr "Delete" + +#: ../templates/3rdParty/pla/htdocs/delete.php:31 +msgid "Delete DN" +msgstr "Delete DN" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:30 +msgid "Delete LDAP entries" +msgstr "Delete LDAP entries" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:77 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:84 +msgid "Delete after copy (move):" +msgstr "Delete after copy (move):" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:72 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:110 +#, php-format +msgid "Delete all %s objects" +msgstr "Delete all %s objects" + +#: ../templates/config/mainmanage.php:324 +msgid "Delete all CA certificates" +msgstr "Delete all CA certificates" + +#: ../lib/modules/customFields.inc:624 +msgid "Delete group" +msgstr "Delete group" + +#: ../lib/modules/posixAccount.inc:1532 +msgid "Delete home directory" +msgstr "Delete home directory" + +#: ../lib/modules/imapAccess.inc:256 +msgid "Delete mailbox" +msgstr "Delete mailbox" + +#: ../templates/ou_edit.php:199 ../help/help.inc:265 +msgid "Delete organisational unit" +msgstr "Delete organizational unit" + +#: ../templates/3rdParty/pla/lib/functions.php:2014 +#: ../lib/modules/inetOrgPerson.inc:1588 +msgid "Delete photo" +msgstr "Delete photo" + +#: ../templates/config/profmanage.php:271 +#: ../templates/config/profmanage.php:274 +#: ../templates/selfService/profManage.php:232 +#: ../templates/selfService/profManage.php:239 ../help/help.inc:134 +msgid "Delete profile" +msgstr "Delete profile" + +#: ../lib/modules/range.inc:98 ../lib/modules/range.inc:116 +#: ../lib/modules/range.inc:445 +msgid "Delete range" +msgstr "Delete range" + +#: ../lib/modules/asteriskExtension.inc:316 +#: ../lib/modules/asteriskExtension.inc:339 +msgid "Delete rule" +msgstr "Delete rule" + +#: ../lib/types/dhcp.inc:174 +msgid "Delete selected DHCP entries" +msgstr "Delete selected DHCP entries" + +#: ../lib/types/bind.inc:162 +msgid "Delete selected DNS entries" +msgstr "Delete selected DNS entries" + +#: ../lib/types/nisObjectType.inc:158 +msgid "Delete selected NIS objects" +msgstr "Delete selected NIS objects" + +#: ../lib/types/zarafaAddressListType.inc:147 +msgid "Delete selected address lists" +msgstr "Delete selected address lists" + +#: ../lib/types/mailAlias.inc:144 ../lib/types/alias.inc:144 +msgid "Delete selected aliases" +msgstr "Delete selected aliases" + +#: ../lib/types/automountType.inc:218 +msgid "Delete selected automount entries" +msgstr "Delete selected automount entries" + +#: ../lib/types/pykotaBillingCodeType.inc:166 +msgid "Delete selected billing codes" +msgstr "Delete selected billing codes" + +#: ../lib/types/oracleContextType.inc:189 +msgid "Delete selected database entries" +msgstr "Delete selected database entries" + +#: ../lib/types/smbDomain.inc:170 +msgid "Delete selected domains" +msgstr "Delete selected domains" + +#: ../lib/types/asteriskExt.inc:146 +msgid "Delete selected extensions" +msgstr "Delete selected extensions" + +#: ../lib/types/gon.inc:205 ../lib/types/zarafaDynamicGroupType.inc:168 +#: ../lib/types/group.inc:243 ../lib/types/netgroup.inc:172 +msgid "Delete selected groups" +msgstr "Delete selected groups" + +#: ../lib/types/host.inc:196 +msgid "Delete selected hosts" +msgstr "Delete selected hosts" + +#: ../lib/lists.inc:115 +msgid "Delete selected objects" +msgstr "Delete selected objects" + +#: ../lib/types/ppolicyType.inc:152 +msgid "Delete selected policies" +msgstr "Delete selected policies" + +#: ../lib/types/pykotaPrinterType.inc:167 +msgid "Delete selected printers" +msgstr "Delete selected printers" + +#: ../lib/types/gon.inc:212 ../lib/types/group.inc:250 +msgid "Delete selected roles" +msgstr "Delete selected roles" + +#: ../lib/types/kolabSharedFolderType.inc:144 +msgid "Delete selected shared folders" +msgstr "Delete selected shared folders" + +#: ../lib/types/sudo.inc:162 +msgid "Delete selected sudo roles" +msgstr "Delete selected sudo roles" + +#: ../lib/types/user.inc:532 +msgid "Delete selected users" +msgstr "Delete selected users" + +#: ../templates/3rdParty/pla/htdocs/copy.php:146 +#, php-format +msgid "Delete successful: %s" +msgstr "Delete successful: %s" + +#: ../lib/modules/posixAccount.inc:485 ../lib/modules/posixAccount.inc:1538 +msgid "Delete sudo rights" +msgstr "Delete sudo rights" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "Delete this entry" +msgstr "Delete this entry" + +#: ../lib/modules/nisMailAliasUser.inc:156 +#: ../lib/modules/nisMailAliasUser.inc:195 +#, php-format +msgid "Delete whole alias entry which includes %s recipients." +msgstr "Delete whole alias entry which includes %s recipients." + +#: ../lib/modules/qmailUser.inc:44 +msgid "Deleted" +msgstr "Deleted" + +#: ../templates/delete.php:272 +#, php-format +msgid "Deleted DN: %s" +msgstr "Deleted DN: %s" + +#: ../templates/pdfedit/pdfmain.php:89 +msgid "Deleted PDF structure." +msgstr "Deleted PDF structure." + +#: ../templates/profedit/profilemain.php:103 +msgid "Deleted profile." +msgstr "Deleted profile." + +#: ../lib/modules/range.inc:99 +msgid "Deletes an IP range." +msgstr "Deletes an IP range." + +#: ../lib/modules/posixAccount.inc:486 +msgid "Deletes the user from all existing sudo rights." +msgstr "Deletes the user from all existing sudo rights." + +#: ../templates/3rdParty/pla/htdocs/import.php:29 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:65 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:82 +msgid "Deleting" +msgstr "Deleting" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:73 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:125 +msgid "Deleting objects" +msgstr "Deleting objects" + +#: ../lib/modules/qmailUser.inc:124 ../lib/modules/qmailUser.inc:255 +#: ../lib/modules/qmailUser.inc:382 ../lib/modules/qmailUser.inc:436 +#: ../lib/modules/qmailUser.inc:658 ../lib/modules/qmailUser.inc:899 +#: ../lib/modules/qmailUser.inc:1170 +msgid "Deletion date" +msgstr "Deletion date" + +#: ../lib/lists.inc:1068 +msgid "Deletion was successful." +msgstr "Deletion was successful." + +#: ../lib/modules/qmailUser.inc:215 ../lib/modules/qmailUser.inc:290 +#: ../lib/modules/qmailUser.inc:403 ../lib/modules/qmailUser.inc:629 +#: ../lib/modules/qmailUser.inc:1164 +msgid "Delivery mode" +msgstr "Delivery mode" + +#: ../lib/modules/qmailUser.inc:122 ../lib/modules/qmailUser.inc:175 +#: ../lib/modules/qmailUser.inc:251 ../lib/modules/qmailUser.inc:374 +#: ../lib/modules/qmailUser.inc:433 ../lib/modules/qmailUser.inc:648 +#: ../lib/modules/qmailUser.inc:1150 +msgid "Delivery program" +msgstr "Delivery program" + +#: ../lib/modules/asteriskAccount.inc:167 +#: ../lib/modules/asteriskAccount.inc:280 +#: ../lib/modules/asteriskAccount.inc:414 +#: ../lib/modules/asteriskAccount.inc:674 +#: ../lib/modules/asteriskAccount.inc:996 +#: ../lib/modules/asteriskAccount.inc:1261 +#: ../lib/modules/dhcp_settings.inc:104 +msgid "Deny" +msgstr "Deny" + +#: ../lib/modules/pykotaGroup.inc:65 ../lib/modules/pykotaUser.inc:65 +msgid "Deny printing" +msgstr "Deny printing" + +#: ../lib/modules/inetOrgPerson.inc:162 ../lib/modules/inetOrgPerson.inc:217 +#: ../lib/modules/inetOrgPerson.inc:483 ../lib/modules/inetOrgPerson.inc:602 +#: ../lib/modules/inetOrgPerson.inc:800 ../lib/modules/inetOrgPerson.inc:804 +#: ../lib/modules/inetOrgPerson.inc:1481 ../lib/modules/inetOrgPerson.inc:1484 +#: ../lib/modules/inetOrgPerson.inc:1919 ../lib/modules/inetOrgPerson.inc:2670 +#: ../lib/modules/inetOrgPerson.inc:3547 ../lib/modules/inetOrgPerson.inc:3587 +msgid "Department" +msgstr "Department" + +#: ../lib/modules/kolabGroup.inc:105 ../lib/modules/kolabGroup.inc:109 +#: ../lib/modules/kolabUser.inc:162 ../lib/modules/kolabUser.inc:166 +#: ../lib/modules/kolabSharedFolder.inc:130 +#: ../lib/modules/kolabSharedFolder.inc:134 +msgid "" +"Describes the allowed or disallowed SMTP addresses sending mail to this " +"account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "" +"Describes the allowed or disallowed SMTP addresses sending mail to this " +"account (e.g. \"domain.tld\" or \"-user@domain.tld\")." + +#: ../lib/modules/kolabGroup.inc:96 ../lib/modules/kolabGroup.inc:100 +#: ../lib/modules/kolabUser.inc:153 ../lib/modules/kolabUser.inc:157 +#: ../lib/modules/kolabSharedFolder.inc:121 +#: ../lib/modules/kolabSharedFolder.inc:125 +msgid "" +"Describes the allowed or disallowed SMTP recipient addresses for mail sent " +"by this account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "" +"Describes the allowed or disallowed SMTP recipient addresses for mail sent " +"by this account (e.g. \"domain.tld\" or \"-user@domain.tld\")." + +#: ../templates/schema/schema.php:89 ../templates/schema/schema.php:143 +#: ../templates/schema/schema.php:346 +#: ../templates/3rdParty/pla/lib/functions.php:1898 +#: ../templates/3rdParty/pla/lib/functions.php:1902 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:139 +#: ../templates/3rdParty/pla/htdocs/import.php:101 +#: ../lib/types/automountType.inc:88 ../lib/types/nisObjectType.inc:80 +#: ../lib/types/oracleContextType.inc:79 +#: ../lib/types/pykotaBillingCodeType.inc:92 ../lib/types/user.inc:101 +#: ../lib/types/pykotaPrinterType.inc:92 ../lib/types/sudo.inc:84 +#: ../lib/types/dhcp.inc:96 ../lib/types/netgroup.inc:92 +#: ../lib/modules/pykotaPrinter.inc:99 ../lib/modules/pykotaPrinter.inc:153 +#: ../lib/modules/pykotaPrinter.inc:194 ../lib/modules/pykotaPrinter.inc:248 +#: ../lib/modules/pykotaPrinter.inc:585 ../lib/modules/account.inc:82 +#: ../lib/modules/account.inc:95 ../lib/modules/account.inc:105 +#: ../lib/modules/account.inc:113 ../lib/modules/account.inc:218 +#: ../lib/modules/account.inc:229 ../lib/modules/windowsHost.inc:78 +#: ../lib/modules/windowsHost.inc:101 ../lib/modules/windowsHost.inc:120 +#: ../lib/modules/windowsHost.inc:143 ../lib/modules/windowsHost.inc:289 +#: ../lib/modules/posixGroup.inc:201 ../lib/modules/posixGroup.inc:430 +#: ../lib/modules/posixGroup.inc:484 ../lib/modules/posixGroup.inc:577 +#: ../lib/modules/device.inc:81 ../lib/modules/device.inc:115 +#: ../lib/modules/device.inc:130 ../lib/modules/device.inc:173 +#: ../lib/modules/device.inc:421 ../lib/modules/dhcp_settings.inc:197 +#: ../lib/modules/dhcp_settings.inc:217 ../lib/modules/dhcp_settings.inc:307 +#: ../lib/modules/dhcp_settings.inc:620 ../lib/modules/dhcp_settings.inc:684 +#: ../lib/modules/pykotaGroup.inc:117 ../lib/modules/pykotaGroup.inc:166 +#: ../lib/modules/pykotaGroup.inc:188 ../lib/modules/pykotaGroup.inc:233 +#: ../lib/modules/pykotaGroup.inc:468 ../lib/modules/posixAccount.inc:556 +#: ../lib/modules/windowsUser.inc:119 ../lib/modules/windowsUser.inc:308 +#: ../lib/modules/windowsUser.inc:500 ../lib/modules/windowsUser.inc:705 +#: ../lib/modules/windowsUser.inc:1588 ../lib/modules/nisObject.inc:73 +#: ../lib/modules/nisObject.inc:103 ../lib/modules/nisObject.inc:114 +#: ../lib/modules/nisObject.inc:155 ../lib/modules/nisObject.inc:212 +#: ../lib/modules/sambaGroupMapping.inc:114 +#: ../lib/modules/sambaGroupMapping.inc:542 ../lib/modules/pykotaUser.inc:120 +#: ../lib/modules/pykotaUser.inc:226 ../lib/modules/pykotaUser.inc:277 +#: ../lib/modules/pykotaUser.inc:413 ../lib/modules/pykotaUser.inc:892 +#: ../lib/modules/automount.inc:72 ../lib/modules/automount.inc:95 +#: ../lib/modules/automount.inc:105 ../lib/modules/automount.inc:132 +#: ../lib/modules/automount.inc:183 ../lib/modules/nisnetgroup.inc:87 +#: ../lib/modules/nisnetgroup.inc:140 ../lib/modules/nisnetgroup.inc:199 +#: ../lib/modules/nisnetgroup.inc:580 ../lib/modules/inetOrgPerson.inc:163 +#: ../lib/modules/inetOrgPerson.inc:175 ../lib/modules/inetOrgPerson.inc:329 +#: ../lib/modules/inetOrgPerson.inc:542 ../lib/modules/inetOrgPerson.inc:632 +#: ../lib/modules/inetOrgPerson.inc:1207 ../lib/modules/inetOrgPerson.inc:1210 +#: ../lib/modules/inetOrgPerson.inc:1890 ../lib/modules/inetOrgPerson.inc:2765 +#: ../lib/modules/inetOrgPerson.inc:3509 ../lib/modules/inetOrgPerson.inc:3576 +#: ../lib/modules/sudoRole.inc:70 ../lib/modules/sudoRole.inc:153 +#: ../lib/modules/sudoRole.inc:215 ../lib/modules/sudoRole.inc:305 +#: ../lib/modules/sudoRole.inc:805 ../lib/modules/oracleService.inc:69 +#: ../lib/modules/oracleService.inc:92 ../lib/modules/oracleService.inc:100 +#: ../lib/modules/oracleService.inc:122 ../lib/modules/oracleService.inc:172 +#: ../lib/modules/organizationalRole.inc:89 +#: ../lib/modules/organizationalRole.inc:123 +#: ../lib/modules/organizationalRole.inc:141 +#: ../lib/modules/organizationalRole.inc:163 +#: ../lib/modules/organizationalRole.inc:189 +#: ../lib/modules/organizationalRole.inc:453 ../lib/modules/fixed_ip.inc:110 +#: ../lib/modules/fixed_ip.inc:433 ../lib/modules/fixed_ip.inc:744 +#: ../lib/modules/pykotaBillingCode.inc:81 +#: ../lib/modules/pykotaBillingCode.inc:109 +#: ../lib/modules/pykotaBillingCode.inc:116 +#: ../lib/modules/pykotaBillingCode.inc:159 +#: ../lib/modules/pykotaBillingCode.inc:262 +#: ../lib/modules/windowsGroup.inc:118 ../lib/modules/windowsGroup.inc:183 +#: ../lib/modules/windowsGroup.inc:258 ../lib/modules/windowsGroup.inc:301 +#: ../lib/modules/windowsGroup.inc:746 ../lib/modules/groupOfNames.inc:89 +#: ../lib/modules/groupOfNames.inc:135 ../lib/modules/groupOfNames.inc:171 +#: ../lib/modules/groupOfNames.inc:199 ../lib/modules/groupOfNames.inc:235 +#: ../lib/modules/groupOfNames.inc:694 +msgid "Description" +msgstr "Description" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "Destination DN" +msgstr "Destination DN" + +#: ../lib/modules/device.inc:45 +msgid "Device" +msgstr "Device" + +#: ../lib/modules/sambaSamAccount.inc:393 +#: ../lib/modules/sambaSamAccount.inc:584 +msgid "Disable LM hashes" +msgstr "Disable LM hashes" + +#: ../lib/modules/ddns.inc:89 ../lib/modules/ddns.inc:370 +msgid "Disable client updates" +msgstr "Disable client updates" + +#: ../lib/modules/posixGroup.inc:417 ../lib/modules/posixGroup.inc:533 +msgid "Disable membership management" +msgstr "Disable membership management" + +#: ../lib/modules/qmailUser.inc:43 +msgid "Disabled" +msgstr "Disabled" + +#: ../lib/modules/ddns.inc:90 +msgid "Disables the client to update DNS entries." +msgstr "Disables the client to update DNS entries." + +#: ../lib/modules/posixGroup.inc:534 +msgid "Disables the group membership management." +msgstr "Disables the group membership management." + +#: ../lib/modules/mitKerberos.inc:172 +msgid "" +"Disables user-to-user authentication for this principal by prohibiting this " +"principal from obtaining a session key for another user." +msgstr "" +"Disables user-to-user authentication for this principal by prohibiting this " +"principal from obtaining a session key for another user." + +#: ../lib/modules/heimdalKerberos.inc:130 +#: ../lib/modules/heimdalKerberos.inc:378 +msgid "Disallow TGT-based tickets" +msgstr "Disallow TGT-based tickets" + +#: ../lib/modules/mitKerberos.inc:174 ../lib/modules/mitKerberos.inc:452 +#: ../lib/modules/heimdalKerberos.inc:148 +#: ../lib/modules/heimdalKerberos.inc:383 +msgid "Disallow all tickets" +msgstr "Disallow all tickets" + +#: ../templates/config/conftypes.php:317 ../help/help.inc:178 +msgid "Disallow delete" +msgstr "Disallow delete" + +#: ../lib/modules/mitKerberos.inc:162 ../lib/modules/mitKerberos.inc:422 +#: ../lib/modules/heimdalKerberos.inc:133 +#: ../lib/modules/heimdalKerberos.inc:353 +msgid "Disallow forwardable tickets" +msgstr "Disallow forwardable tickets" + +#: ../lib/modules/mitKerberos.inc:159 ../lib/modules/mitKerberos.inc:437 +#: ../lib/modules/heimdalKerberos.inc:142 +#: ../lib/modules/heimdalKerberos.inc:368 +msgid "Disallow post-dated tickets" +msgstr "Disallow post-dated tickets" + +#: ../lib/modules/mitKerberos.inc:168 ../lib/modules/mitKerberos.inc:427 +#: ../lib/modules/heimdalKerberos.inc:136 +#: ../lib/modules/heimdalKerberos.inc:358 +msgid "Disallow proxiable tickets" +msgstr "Disallow proxiable tickets" + +#: ../lib/modules/mitKerberos.inc:165 ../lib/modules/mitKerberos.inc:432 +#: ../lib/modules/heimdalKerberos.inc:139 +#: ../lib/modules/heimdalKerberos.inc:363 +msgid "Disallow renewable tickets" +msgstr "Disallow renewable tickets" + +#: ../lib/modules/mitKerberos.inc:186 ../lib/modules/mitKerberos.inc:442 +#: ../lib/modules/heimdalKerberos.inc:145 +#: ../lib/modules/heimdalKerberos.inc:373 +msgid "Disallow service tickets" +msgstr "Disallow service tickets" + +#: ../lib/modules/mitKerberos.inc:171 ../lib/modules/mitKerberos.inc:447 +msgid "Disallow user-to-user authentication" +msgstr "Disallow user-to-user authentication" + +#: ../lib/modules/asteriskAccount.inc:199 +#: ../lib/modules/asteriskAccount.inc:288 +#: ../lib/modules/asteriskAccount.inc:472 +#: ../lib/modules/asteriskAccount.inc:709 +#: ../lib/modules/asteriskAccount.inc:1004 +#: ../lib/modules/asteriskAccount.inc:1277 +msgid "Disallowed codec" +msgstr "Disallowed codec" + +#: ../lib/modules/sambaDomain.inc:113 ../lib/modules/sambaDomain.inc:193 +#: ../lib/modules/sambaDomain.inc:299 ../lib/modules/sambaDomain.inc:621 +msgid "Disconnect users outside logon hours" +msgstr "Disconnect users outside logon hours" + +#: ../lib/modules/sambaSamAccount.inc:237 +#: ../lib/modules/sambaSamAccount.inc:1523 +#: ../lib/modules/sambaSamAccount.inc:1927 +msgid "Disconnection time limit" +msgstr "Disconnection time limit" + +#: ../lib/modules/sambaDomain.inc:114 +msgid "Disconnects users if they are logged in outside logon hours." +msgstr "Disconnects users if they are logged in outside logon hours." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +#: ../lib/modules/organizationalRole.inc:106 +#: ../lib/modules/organizationalRole.inc:153 +#: ../lib/modules/groupOfNames.inc:118 ../lib/modules/groupOfNames.inc:187 +msgid "Display format" +msgstr "Display format" + +#: ../lib/modules/customFields.inc:176 ../lib/modules/customFields.inc:509 +msgid "Display multiple groups as accordion" +msgstr "Display multiple groups as accordion" + +#: ../lib/modules/sambaSamAccount.inc:111 +#: ../lib/modules/sambaSamAccount.inc:209 +#: ../lib/modules/sambaSamAccount.inc:258 +#: ../lib/modules/sambaSamAccount.inc:419 +#: ../lib/modules/sambaSamAccount.inc:1138 +#: ../lib/modules/sambaSamAccount.inc:1899 ../lib/modules/windowsUser.inc:123 +#: ../lib/modules/windowsUser.inc:296 ../lib/modules/windowsUser.inc:474 +#: ../lib/modules/windowsUser.inc:501 ../lib/modules/windowsUser.inc:595 +#: ../lib/modules/windowsUser.inc:703 ../lib/modules/windowsUser.inc:1589 +#: ../lib/modules/sambaGroupMapping.inc:112 +#: ../lib/modules/sambaGroupMapping.inc:146 +#: ../lib/modules/sambaGroupMapping.inc:359 +#: ../lib/modules/sambaGroupMapping.inc:540 +msgid "Display name" +msgstr "Display name" + +#: ../templates/lists/changePassword.php:317 +msgid "Display on screen" +msgstr "Display on screen" + +#: ../templates/3rdParty/pla/htdocs/create.php:97 +msgid "Display the created entry" +msgstr "Display the created entry" + +#: ../lib/modules.inc:503 +msgid "" +"Displayed account numbers start at \"0\". Add 2 to get the row in your " +"spreadsheet." +msgstr "" +"Displayed account numbers start at \"0\". Add 2 to get the row in your " +"spreadsheet." + +#: ../lib/modules/windowsGroup.inc:61 +msgid "Distribution" +msgstr "Distribution" + +#: ../lib/modules/passwordSelfReset.inc:140 +#: ../lib/modules/passwordSelfReset.inc:545 +msgid "Do not ask security question" +msgstr "Do not ask security question" + +#: ../templates/ou_edit.php:112 +msgid "Do you really want to delete this OU?" +msgstr "Do you really want to delete this OU?" + +#: ../templates/pdfedit/pdfmain.php:351 +msgid "Do you really want to delete this PDF structure?" +msgstr "Do you really want to delete this PDF structure?" + +#: ../templates/profedit/profilemain.php:319 +msgid "Do you really want to delete this profile?" +msgstr "Do you really want to delete this profile?" + +#: ../lib/modules/kolabGroup.inc:285 ../lib/modules/kolabUser.inc:515 +#: ../lib/modules/kolabSharedFolder.inc:425 +msgid "Do you really want to mark this account for deletion?" +msgstr "Do you really want to mark this account for deletion?" + +#: ../lib/modules/qmailGroup.inc:273 +msgid "Do you really want to post to this mailinglist?" +msgstr "Do you really want to post to this mailinglist?" + +#: ../templates/delete.php:94 +msgid "Do you really want to remove the following accounts?" +msgstr "Do you really want to remove the following accounts?" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:59 +msgid "Do you want to create this entry?" +msgstr "Do you want to create this entry?" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:36 +msgid "Do you want to make these changes?" +msgstr "Do you want to make these changes?" + +#: ../lib/modules/sambaSamAccount.inc:210 +#: ../lib/modules/sambaSamAccount.inc:336 +#: ../lib/modules/sambaSamAccount.inc:412 +#: ../lib/modules/sambaSamAccount.inc:536 +#: ../lib/modules/sambaSamAccount.inc:1280 +#: ../lib/modules/sambaSamAccount.inc:1774 +#: ../lib/modules/sambaSamAccount.inc:1796 +#: ../lib/modules/sambaSamAccount.inc:1905 ../lib/modules/windowsUser.inc:111 +#: ../lib/modules/windowsUser.inc:1656 +#: ../lib/modules/sambaGroupMapping.inc:158 +#: ../lib/modules/sambaGroupMapping.inc:386 +#: ../lib/modules/sambaGroupMapping.inc:576 ../lib/modules/nisnetgroup.inc:223 +#: ../lib/modules/nisnetgroup.inc:587 +msgid "Domain" +msgstr "Domain" + +#: ../lib/modules/sambaSamAccount.inc:84 +msgid "Domain KRBTGT" +msgstr "Domain KRBTGT" + +#: ../lib/types/smbDomain.inc:91 ../lib/modules/sambaDomain.inc:81 +#: ../lib/modules/sambaDomain.inc:151 ../lib/modules/sambaDomain.inc:185 +#: ../lib/modules/sambaDomain.inc:256 ../lib/modules/sambaDomain.inc:261 +#: ../lib/modules/sambaDomain.inc:600 +msgid "Domain SID" +msgstr "Domain SID" + +#: ../lib/modules/sambaGroupMapping.inc:125 +#: ../lib/modules/windowsGroup.inc:178 ../lib/modules/windowsGroup.inc:185 +#: ../lib/modules/windowsGroup.inc:191 +msgid "Domain administrators" +msgstr "Domain administrators" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:60 +#: ../lib/modules/sambaGroupMapping.inc:131 +msgid "Domain admins" +msgstr "Domain admins" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:65 +msgid "Domain certificate admins" +msgstr "Domain certificate admins" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaSamAccount.inc:806 +#: ../lib/modules/sambaGroupMapping.inc:63 +msgid "Domain computers" +msgstr "Domain computers" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:64 +msgid "Domain controllers" +msgstr "Domain controllers" + +#: ../lib/types/smbDomain.inc:167 +#, php-format +msgid "Domain count: %s" +msgstr "Domain count: %s" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:67 +msgid "Domain enterprise admins" +msgstr "Domain enterprise admins" + +#: ../lib/modules/sambaGroupMapping.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:377 +msgid "Domain group" +msgstr "Domain group" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:62 +msgid "Domain guests" +msgstr "Domain guests" + +#: ../lib/modules/windowsGroup.inc:64 +msgid "Domain local" +msgstr "Domain local" + +#: ../lib/types/smbDomain.inc:92 ../lib/modules/dhcp_settings.inc:145 +#: ../lib/modules/dhcp_settings.inc:208 ../lib/modules/dhcp_settings.inc:223 +#: ../lib/modules/dhcp_settings.inc:250 ../lib/modules/dhcp_settings.inc:567 +#: ../lib/modules/dhcp_settings.inc:674 ../lib/modules/nisnetgroup.inc:154 +#: ../lib/modules/sambaDomain.inc:77 ../lib/modules/sambaDomain.inc:144 +#: ../lib/modules/sambaDomain.inc:184 ../lib/modules/sambaDomain.inc:241 +#: ../lib/modules/sambaDomain.inc:246 ../lib/modules/sambaDomain.inc:599 +msgid "Domain name" +msgstr "Domain name" + +#: ../lib/modules/nisnetgroup.inc:154 ../lib/modules/sambaDomain.inc:208 +#: ../lib/modules/sambaDomain.inc:209 +msgid "Domain name is invalid!" +msgstr "Domain name is invalid!" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:68 +msgid "Domain policy admins" +msgstr "Domain policy admins" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:66 +msgid "Domain schema admins" +msgstr "Domain schema admins" + +#: ../lib/modules/sambaSamAccount.inc:79 +#: ../lib/modules/sambaSamAccount.inc:2168 +#: ../lib/modules/sambaGroupMapping.inc:61 +msgid "Domain users" +msgstr "Domain users" + +#: ../lib/modules/windowsUser.inc:240 ../lib/modules/windowsUser.inc:557 +msgid "Domains" +msgstr "Domains" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:43 +msgid "Don't stop on errors" +msgstr "Don't stop on errors" + +#: ../templates/pdfedit/pdfpage.php:475 +msgid "Down" +msgstr "Down" + +#: ../templates/config/mainmanage.php:321 +msgid "Download CA certificates" +msgstr "Download CA certificates" + +#: ../templates/masscreate.php:256 +msgid "Download sample CSV file" +msgstr "Download sample CSV file" + +#: ../templates/multiEdit.php:162 +msgid "Dry run" +msgstr "Dry run" + +#: ../templates/multiEdit.php:437 +msgid "DryRun finished." +msgstr "DryRun finished." + +#: ../templates/serverInfo.php:124 +msgid "Dynamic subtrees" +msgstr "Dynamic subtrees" + +#: ../lib/modules/eduPerson.inc:72 +msgid "EDU person" +msgstr "EDU person" + +#: ../lib/modules/selfRegistration.inc:80 +msgid "" +"Each line represents one LDAP attribute. Please see the manual for a syntax " +"description." +msgstr "" +"Each line represents one LDAP attribute. Please see the manual for a syntax " +"description." + +#: ../lib/modules/sambaSamAccount.inc:574 +msgid "East Australian Standard, Guam" +msgstr "East Australian Standard, Guam" + +#: ../lib/modules/sambaSamAccount.inc:566 +msgid "Eastern Europe Time, South Africa" +msgstr "Eastern Europe Time, South Africa" + +#: ../lib/modules/sambaSamAccount.inc:559 +msgid "Eastern Time (US & Canada), Bogota" +msgstr "Eastern Time (US & Canada), Bogota" + +#: ../templates/pdfedit/pdfmain.php:206 +#: ../templates/profedit/profilemain.php:195 +#: ../lib/modules/sambaSamAccount.inc:1285 +#: ../lib/modules/sambaSamAccount.inc:1290 ../lib/lists.inc:488 +msgid "Edit" +msgstr "Edit" + +#: ../lib/modules.inc:1349 +msgid "Edit again" +msgstr "Edit again" + +#: ../templates/config/mainmanage.php:228 ../templates/config/index.php:99 +msgid "Edit general settings" +msgstr "Edit general settings" + +#: ../lib/modules/posixAccount.inc:1454 ../lib/modules/windowsUser.inc:786 +msgid "Edit groups" +msgstr "Edit groups" + +#: ../lib/modules/posixGroup.inc:223 ../lib/modules/windowsGroup.inc:382 +msgid "Edit members" +msgstr "Edit members" + +#: ../templates/config/index.php:125 +msgid "Edit self service" +msgstr "Edit self service" + +#: ../templates/config/index.php:111 +msgid "Edit server profiles" +msgstr "Edit server profiles" + +#: ../lib/modules/nisnetgroup.inc:208 +msgid "Edit subgroups" +msgstr "Edit subgroups" + +#: ../lib/modules/sambaSamAccount.inc:1241 +msgid "Edit workstations" +msgstr "Edit workstations" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1872 +#: ../lib/types/zarafaDynamicGroupType.inc:92 ../lib/types/user.inc:100 +#: ../lib/modules/zarafaDynamicGroup.inc:243 +#: ../lib/modules/zarafaDynamicGroup.inc:248 +#: ../lib/modules/zarafaGroup.inc:234 ../lib/modules/zarafaGroup.inc:241 +#: ../lib/modules/passwordSelfReset.inc:500 +#: ../lib/modules/nisMailAlias.inc:344 +msgid "Email" +msgstr "Email" + +#: ../lib/modules/inetOrgPerson.inc:79 +#, php-format +msgid "Email \"%s\" already in use." +msgstr "Email \"%s\" already in use." + +#: ../templates/lists/changePassword.php:283 ../lib/modules/kolabGroup.inc:87 +#: ../lib/modules/kolabGroup.inc:91 ../lib/modules/kolabGroup.inc:155 +#: ../lib/modules/kolabGroup.inc:168 ../lib/modules/kolabGroup.inc:177 +#: ../lib/modules/kolabGroup.inc:179 ../lib/modules/kolabGroup.inc:202 +#: ../lib/modules/kolabGroup.inc:423 ../lib/modules/selfRegistration.inc:400 +#: ../lib/modules/selfRegistration.inc:482 +#: ../lib/modules/zarafaDynamicGroup.inc:67 +#: ../lib/modules/zarafaDynamicGroup.inc:68 +#: ../lib/modules/zarafaDynamicGroup.inc:124 +#: ../lib/modules/zarafaDynamicGroup.inc:166 +#: ../lib/modules/zarafaDynamicGroup.inc:200 +#: ../lib/modules/zarafaDynamicGroup.inc:448 ../lib/modules/qmailUser.inc:199 +#: ../lib/modules/qmailUser.inc:299 ../lib/modules/qmailUser.inc:406 +#: ../lib/modules/qmailUser.inc:448 ../lib/modules/qmailUser.inc:492 +#: ../lib/modules/qmailUser.inc:1139 ../lib/modules/zarafaGroup.inc:69 +#: ../lib/modules/zarafaGroup.inc:70 ../lib/modules/zarafaGroup.inc:170 +#: ../lib/modules/zarafaGroup.inc:200 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:648 ../lib/modules/windowsUser.inc:140 +#: ../lib/modules/windowsUser.inc:350 ../lib/modules/windowsUser.inc:475 +#: ../lib/modules/windowsUser.inc:505 ../lib/modules/windowsUser.inc:607 +#: ../lib/modules/windowsUser.inc:716 ../lib/modules/windowsUser.inc:1593 +#: ../lib/modules/pykotaUser.inc:116 ../lib/modules/pykotaUser.inc:218 +#: ../lib/modules/pykotaUser.inc:274 ../lib/modules/pykotaUser.inc:319 +#: ../lib/modules/pykotaUser.inc:409 ../lib/modules/pykotaUser.inc:890 +#: ../lib/modules/inetOrgPerson.inc:78 ../lib/modules/inetOrgPerson.inc:79 +#: ../lib/modules/inetOrgPerson.inc:157 ../lib/modules/inetOrgPerson.inc:211 +#: ../lib/modules/inetOrgPerson.inc:449 ../lib/modules/inetOrgPerson.inc:584 +#: ../lib/modules/inetOrgPerson.inc:720 ../lib/modules/inetOrgPerson.inc:724 +#: ../lib/modules/inetOrgPerson.inc:1414 ../lib/modules/inetOrgPerson.inc:1417 +#: ../lib/modules/inetOrgPerson.inc:1903 ../lib/modules/inetOrgPerson.inc:2456 +#: ../lib/modules/inetOrgPerson.inc:3537 ../lib/modules/inetOrgPerson.inc:3584 +#: ../lib/modules/kolabSharedFolder.inc:116 +#: ../lib/modules/kolabSharedFolder.inc:181 +#: ../lib/modules/kolabSharedFolder.inc:239 +#: ../lib/modules/kolabSharedFolder.inc:259 +#: ../lib/modules/kolabSharedFolder.inc:281 +#: ../lib/modules/kolabSharedFolder.inc:558 +#: ../lib/modules/asteriskVoicemail.inc:107 +#: ../lib/modules/asteriskVoicemail.inc:140 +#: ../lib/modules/asteriskVoicemail.inc:178 +#: ../lib/modules/asteriskVoicemail.inc:254 +#: ../lib/modules/asteriskVoicemail.inc:374 ../lib/modules/qmailGroup.inc:123 +#: ../lib/modules/qmailGroup.inc:127 ../lib/modules/qmailGroup.inc:240 +#: ../lib/modules/qmailGroup.inc:371 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:457 ../lib/modules/qmailGroup.inc:1056 +#: ../lib/modules/imapAccess.inc:232 ../lib/modules/passwordSelfReset.inc:849 +#: ../lib/modules/passwordSelfReset.inc:1020 +#: ../lib/modules/windowsGroup.inc:126 ../lib/modules/windowsGroup.inc:165 +#: ../lib/modules/windowsGroup.inc:219 ../lib/modules/windowsGroup.inc:265 +#: ../lib/modules/windowsGroup.inc:285 ../lib/modules/windowsGroup.inc:303 +#: ../lib/modules/windowsGroup.inc:748 +msgid "Email address" +msgstr "Email address" + +#: ../lib/modules/kolabGroup.inc:179 ../lib/modules/kolabGroup.inc:180 +msgid "Email address already exists." +msgstr "Email address already exists." + +#: ../lib/modules/asteriskVoicemail.inc:108 +msgid "Email address for this voicemail account." +msgstr "Email address for this voicemail account." + +#: ../lib/modules/qmailGroup.inc:221 ../lib/modules/qmailGroup.inc:225 +msgid "Email addresses that are allowed to send to this list." +msgstr "Email addresses that are allowed to send to this list." + +#: ../lib/modules/qmailGroup.inc:205 ../lib/modules/qmailGroup.inc:209 +msgid "Email addresses that are member of this list." +msgstr "Email addresses that are member of this list." + +#: ../lib/modules/qmailGroup.inc:213 ../lib/modules/qmailGroup.inc:217 +msgid "Email addresses that moderate this list (e.g. approve mails)." +msgstr "Email addresses that moderate this list (e.g. approve mails)." + +#: ../lib/modules/zarafaContact.inc:83 ../lib/modules/zarafaUser.inc:124 +#: ../lib/modules/windowsUser.inc:227 ../lib/modules/windowsUser.inc:231 +#: ../lib/modules/windowsUser.inc:356 ../lib/modules/windowsUser.inc:476 +#: ../lib/modules/windowsUser.inc:506 ../lib/modules/windowsUser.inc:609 +#: ../lib/modules/windowsUser.inc:717 ../lib/modules/windowsUser.inc:1594 +#: ../lib/modules/kolabUser.inc:140 ../lib/modules/kolabSharedFolder.inc:146 +msgid "Email alias" +msgstr "Email alias" + +#: ../lib/modules/zarafaContact.inc:84 ../lib/modules/zarafaUser.inc:125 +#: ../lib/modules/windowsUser.inc:228 ../lib/modules/windowsUser.inc:232 +#: ../lib/modules/kolabUser.inc:141 ../lib/modules/kolabSharedFolder.inc:147 +msgid "Email alias for this account." +msgstr "Email alias for this account." + +#: ../lib/modules/zarafaContact.inc:185 ../lib/modules/zarafaContact.inc:186 +#: ../lib/modules/zarafaUser.inc:417 ../lib/modules/zarafaUser.inc:418 +#: ../lib/modules/windowsUser.inc:609 ../lib/modules/windowsUser.inc:610 +#: ../lib/modules/kolabUser.inc:247 ../lib/modules/kolabSharedFolder.inc:254 +msgid "Email alias is invalid!" +msgstr "Email alias is invalid!" + +#: ../lib/modules/kolabUser.inc:144 ../lib/modules/kolabSharedFolder.inc:150 +msgid "Email alias list" +msgstr "Email alias list" + +#: ../lib/modules/kolabUser.inc:248 ../lib/modules/kolabSharedFolder.inc:255 +msgid "Email alias list has invalid format!" +msgstr "Email alias list has invalid format!" + +#: ../lib/types/kolabSharedFolderType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:97 +#: ../lib/modules/zarafaDynamicGroup.inc:71 +#: ../lib/modules/zarafaDynamicGroup.inc:75 +#: ../lib/modules/zarafaDynamicGroup.inc:130 +#: ../lib/modules/zarafaDynamicGroup.inc:167 +#: ../lib/modules/zarafaDynamicGroup.inc:258 +#: ../lib/modules/zarafaDynamicGroup.inc:451 +#: ../lib/modules/zarafaContact.inc:143 ../lib/modules/zarafaContact.inc:176 +#: ../lib/modules/zarafaContact.inc:207 ../lib/modules/zarafaContact.inc:566 +#: ../lib/modules/zarafaGroup.inc:73 ../lib/modules/zarafaGroup.inc:77 +#: ../lib/modules/zarafaGroup.inc:162 ../lib/modules/zarafaGroup.inc:197 +#: ../lib/modules/zarafaGroup.inc:252 ../lib/modules/zarafaGroup.inc:649 +#: ../lib/modules/zarafaUser.inc:188 ../lib/modules/zarafaUser.inc:370 +#: ../lib/modules/zarafaUser.inc:385 ../lib/modules/zarafaUser.inc:443 +#: ../lib/modules/zarafaUser.inc:1235 ../lib/modules/zarafaUser.inc:1497 +#: ../lib/modules/zarafaUser.inc:1809 ../lib/modules/kolabUser.inc:205 +#: ../lib/modules/kolabUser.inc:233 ../lib/modules/kolabUser.inc:351 +#: ../lib/modules/kolabUser.inc:764 ../lib/modules/kolabSharedFolder.inc:220 +#: ../lib/modules/kolabSharedFolder.inc:236 +#: ../lib/modules/kolabSharedFolder.inc:312 +#: ../lib/modules/kolabSharedFolder.inc:563 +msgid "Email aliases" +msgstr "Email aliases" + +#: ../templates/config/mainmanage.php:446 ../help/help.inc:156 +msgid "Email format" +msgstr "Email format" + +#: ../lib/modules/inetOrgPerson.inc:345 ../lib/modules/inetOrgPerson.inc:614 +#: ../lib/modules/inetOrgPerson.inc:832 ../lib/modules/inetOrgPerson.inc:1455 +#: ../lib/modules/inetOrgPerson.inc:1458 ../lib/modules/inetOrgPerson.inc:1914 +#: ../lib/modules/inetOrgPerson.inc:3555 ../lib/modules/inetOrgPerson.inc:3589 +#: ../lib/modules/passwordSelfReset.inc:503 +#: ../lib/modules/passwordSelfReset.inc:855 +#: ../lib/modules/passwordSelfReset.inc:1025 +msgid "Employee number" +msgstr "Employee number" + +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:229 +#: ../lib/modules/inetOrgPerson.inc:353 ../lib/modules/inetOrgPerson.inc:596 +#: ../lib/modules/inetOrgPerson.inc:652 ../lib/modules/inetOrgPerson.inc:1464 +#: ../lib/modules/inetOrgPerson.inc:1467 ../lib/modules/inetOrgPerson.inc:1912 +#: ../lib/modules/inetOrgPerson.inc:3543 ../lib/modules/inetOrgPerson.inc:3586 +msgid "Employee type" +msgstr "Employee type" + +#: ../lib/modules/inetOrgPerson.inc:653 +msgid "Employee type: Contractor, Employee, Intern, Temp, External, ..." +msgstr "Employee type: Contractor, Employee, Intern, Temp, External, ..." + +#: ../templates/lists/changePassword.php:505 +#: ../templates/lists/changePassword.php:512 ../templates/login.php:543 +msgid "Empty password submitted. Please try again." +msgstr "Empty password submitted. Please try again." + +#: ../lib/modules/passwordSelfReset.inc:96 +#: ../lib/modules/passwordSelfReset.inc:490 +msgid "Enable password self reset link" +msgstr "Enable password self reset link" + +#: ../lib/modules/selfRegistration.inc:53 +#: ../lib/modules/selfRegistration.inc:190 +msgid "Enable self registration link" +msgstr "Enable self registration link" + +#: ../lib/modules/customFields.inc:153 +msgid "" +"Enables auto-completion for this field. All existing values of this " +"attribute will be offered as auto-complete values." +msgstr "" +"Enables auto-completion for this field. All existing values of this " +"attribute will be offered as auto-complete values." + +#: ../lib/modules/ppolicy.inc:97 +msgid "" +"Enables quality checking (e.g. password length) of passwords. If set to " +"\"force\" then you need to disable password hashing in your LAM server " +"profile to change passwords with LAM." +msgstr "" +"Enables quality checking (e.g. password length) of passwords. If set to " +"\"force\" then you need to disable password hashing in your LAM server " +"profile to change passwords with LAM." + +#: ../templates/multiEdit.php:312 +#: ../templates/3rdParty/pla/lib/export_functions.php:160 +msgid "Encountered an error while performing search." +msgstr "Encountered an error while performing search." + +#: ../templates/config/mainmanage.php:304 ../help/help.inc:160 +msgid "Encrypt session" +msgstr "Encrypt session" + +#: ../lib/modules/imapAccess.inc:80 ../lib/modules/imapAccess.inc:120 +msgid "Encryption protocol" +msgstr "Encryption protocol" + +#: ../lib/modules/imapAccess.inc:81 +msgid "" +"Encryption protocol for connecting to IMAP server. LAM requires an encrypted " +"connection." +msgstr "" +"Encryption protocol for connecting to IMAP server. LAM requires an encrypted " +"connection." + +#: ../help/help.inc:161 +msgid "" +"Encrypts sensitive data like passwords in your session. This requires the " +"PHP MCrypt extension." +msgstr "" +"Encrypts sensitive data like passwords in your session. This requires the " +"PHP MCrypt extension." + +#: ../templates/selfService/adminMain.php:489 ../help/help.inc:103 +msgid "Enforce language" +msgstr "Enforce language" + +#: ../lib/modules/sambaSamAccount.inc:552 +msgid "Eniwetok, Kwajalein" +msgstr "Eniwetok, Kwajalein" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:91 +msgid "Enter the values you would like to add:" +msgstr "Enter the values you would like to add:" + +#: ../lib/modules/eduPerson.inc:118 ../lib/modules/eduPerson.inc:122 +#: ../lib/modules/eduPerson.inc:194 ../lib/modules/eduPerson.inc:231 +#: ../lib/modules/eduPerson.inc:344 ../lib/modules/eduPerson.inc:586 +msgid "Entitlements" +msgstr "Entitlements" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:471 +msgid "Entries found" +msgstr "Entries found" + +#: ../templates/serverInfo.php:269 +msgid "Entries sent" +msgstr "Entries sent" + +#: ../templates/3rdParty/pla/lib/export_functions.php:473 +msgid "Entry" +msgstr "Entry" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:43 +#, php-format +msgid "Entry %s and sub-tree deleted successfully." +msgstr "Entry %s and sub-tree deleted successfully." + +#: ../templates/3rdParty/pla/htdocs/create.php:90 +msgid "Entry created" +msgstr "Entry created" + +#: ../templates/delete.php:330 +#: ../templates/3rdParty/pla/htdocs/mass_update.php:26 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:26 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:27 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:24 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:56 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:33 +msgid "Entry does not exist" +msgstr "Entry does not exist" + +#: ../lib/modules/puppetClient.inc:80 ../lib/modules/puppetClient.inc:84 +#: ../lib/modules/puppetClient.inc:128 ../lib/modules/puppetClient.inc:153 +#: ../lib/modules/puppetClient.inc:161 ../lib/modules/puppetClient.inc:239 +#: ../lib/modules/puppetClient.inc:430 +msgid "Environment" +msgstr "Environment" + +#: ../templates/schema/schema.php:166 +msgid "Equality" +msgstr "Equality" + +#: ../lib/modules/zarafaUser.inc:529 ../lib/modules/zarafaUser.inc:1249 +msgid "Equipment" +msgstr "Equipment" + +#: ../templates/config/mainmanage.php:408 +#: ../templates/3rdParty/pla/lib/Template.php:430 +#: ../templates/3rdParty/pla/lib/Template.php:473 +#: ../templates/3rdParty/pla/lib/Template.php:517 +#: ../templates/3rdParty/pla/lib/functions.php:511 +#: ../templates/3rdParty/pla/lib/functions.php:513 +#: ../templates/3rdParty/pla/lib/ds_myldap.php:219 +#: ../templates/3rdParty/pla/htdocs/import.php:79 +msgid "Error" +msgstr "Error" + +#: ../templates/3rdParty/pla/lib/functions.php:1897 +#: ../templates/3rdParty/pla/lib/functions.php:1901 +msgid "Error number" +msgstr "Error number" + +#: ../lib/modules/mitKerberos.inc:1173 ../lib/modules/heimdalKerberos.inc:1038 +msgid "Error while changing Kerberos password." +msgstr "Error while changing Kerberos password." + +#: ../templates/delete.php:280 +#, php-format +msgid "Error while deleting DN: %s" +msgstr "Error while deleting DN: %s" + +#: ../help/help.inc:145 +msgid "" +"Every account type needs exactly one base module. This module provides a " +"structural object class." +msgstr "" +"Every account type needs exactly one base module. This module provides a " +"structural object class." + +#: ../lib/modules/customScripts.inc:67 ../lib/modules/customScripts.inc:80 +#: ../lib/modules/selfRegistration.inc:82 ../lib/modules/zarafaContact.inc:97 +#: ../lib/modules/zarafaGroup.inc:99 ../lib/modules/dhcp_settings.inc:564 +#: ../lib/modules/zarafaUser.inc:146 ../help/help.inc:74 ../help/help.inc:80 +#: ../help/help.inc:90 ../help/help.inc:95 ../help/help.inc:117 +msgid "Example" +msgstr "Example" + +#: ../templates/masscreate.php:302 ../templates/masscreate.php:376 +msgid "Example value" +msgstr "Example value" + +#: ../help/help.inc:62 +msgid "Examples" +msgstr "Examples" + +#: ../templates/config/confmain.php:319 +msgid "Execute" +msgstr "Execute" + +#: ../templates/tests/lamdaemonTest.php:269 +msgid "Execute lamdaemon" +msgstr "Execute lamdaemon" + +#: ../lib/modules/freeRadius.inc:104 ../lib/modules/freeRadius.inc:130 +#: ../lib/modules/freeRadius.inc:209 ../lib/modules/freeRadius.inc:237 +#: ../lib/modules/freeRadius.inc:385 ../lib/modules/freeRadius.inc:543 +msgid "Expiration date" +msgstr "Expiration date" + +#: ../lib/modules/bindDLZ.inc:211 ../lib/modules/bindDLZ.inc:314 +#: ../lib/modules/bindDLZ.inc:426 ../lib/modules/bindDLZ.inc:519 +#: ../lib/modules/bindDLZ.inc:1022 ../lib/modules/bindDLZ.inc:1551 +msgid "Expiration time" +msgstr "Expiration time" + +#: ../lib/modules/asteriskAccount.inc:211 +#: ../lib/modules/asteriskAccount.inc:291 +#: ../lib/modules/asteriskAccount.inc:494 +#: ../lib/modules/asteriskAccount.inc:721 +#: ../lib/modules/asteriskAccount.inc:1007 +#: ../lib/modules/asteriskAccount.inc:1283 +msgid "Expiration timestamp" +msgstr "Expiration timestamp" + +#: ../lib/modules/asteriskAccount.inc:212 +msgid "Expiration timestamp (\"regseconds\" option)." +msgstr "Expiration timestamp (\"regseconds\" option)." + +#: ../lib/types/ppolicyType.inc:86 ../lib/modules/ppolicy.inc:116 +#: ../lib/modules/ppolicy.inc:148 ../lib/modules/ppolicy.inc:174 +#: ../lib/modules/ppolicy.inc:214 ../lib/modules/ppolicy.inc:479 +msgid "Expire warning" +msgstr "Expire warning" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1081 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1084 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:305 +#: ../templates/3rdParty/pla/htdocs/export_form.php:37 +#: ../templates/3rdParty/pla/htdocs/export_form.php:53 +msgid "Export" +msgstr "Export" + +#: ../templates/pdfedit/pdfmain.php:221 ../templates/pdfedit/pdfmain.php:222 +#: ../help/help.inc:212 +msgid "Export PDF structure" +msgstr "Export PDF structure" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:105 +msgid "Export format" +msgstr "Export format" + +#: ../templates/profedit/profilemain.php:209 +#: ../templates/profedit/profilemain.php:210 ../help/help.inc:194 +msgid "Export profile" +msgstr "Export profile" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Export subtree" +msgstr "Export subtree" + +#: ../templates/pdfedit/pdfmain.php:117 +#: ../templates/profedit/profilemain.php:132 +msgid "Export successful" +msgstr "Export successful" + +#: ../templates/serverInfo.php:349 +msgid "Extended" +msgstr "Extended" + +#: ../lib/types/asteriskExt.inc:143 +#, php-format +msgid "Extension count: %s" +msgstr "Extension count: %s" + +#: ../lib/types/asteriskExt.inc:94 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskExtension.inc:102 +#: ../lib/modules/asteriskExtension.inc:137 +#: ../lib/modules/asteriskExtension.inc:145 +#: ../lib/modules/asteriskExtension.inc:289 +#: ../lib/modules/asteriskExtension.inc:293 +#: ../lib/modules/asteriskExtension.inc:813 +msgid "Extension name" +msgstr "Extension name" + +#: ../lib/modules/asteriskExtension.inc:114 +#: ../lib/modules/asteriskExtension.inc:138 +#: ../lib/modules/asteriskExtension.inc:159 +#: ../lib/modules/asteriskExtension.inc:233 +#: ../lib/modules/asteriskExtension.inc:481 +#: ../lib/modules/asteriskExtension.inc:814 +msgid "Extension owners" +msgstr "Extension owners" + +#: ../lib/modules/asteriskExtension.inc:190 +msgid "Extension with this name already exists." +msgstr "Extension with this name already exists." + +#: ../templates/3rdParty/pla/htdocs/import.php:66 +msgid "Failed" +msgstr "Failed" + +#: ../lib/modules/mitKerberos.inc:128 ../lib/modules/mitKerberos.inc:252 +#: ../lib/modules/mitKerberos.inc:298 ../lib/modules/mitKerberos.inc:345 +#: ../lib/modules/mitKerberos.inc:768 +msgid "Failed logins" +msgstr "Failed logins" + +#: ../templates/initsuff.php:152 +msgid "Failed to create entry!" +msgstr "Failed to create entry!" + +#: ../lib/profiles.inc:190 ../lib/pdfstruct.inc:224 +msgid "Failed to export!" +msgstr "Failed to export!" + +#: ../lib/profiles.inc:197 ../lib/pdfstruct.inc:231 +msgid "Failed to import!" +msgstr "Failed to import!" + +#: ../lib/types/ppolicyType.inc:85 ../lib/modules/ppolicy.inc:112 +#: ../lib/modules/ppolicy.inc:153 ../lib/modules/ppolicy.inc:173 +#: ../lib/modules/ppolicy.inc:280 ../lib/modules/ppolicy.inc:478 +msgid "Failure count interval" +msgstr "Failure count interval" + +#: ../lib/modules/inetOrgPerson.inc:76 ../lib/modules/inetOrgPerson.inc:158 +#: ../lib/modules/inetOrgPerson.inc:208 ../lib/modules/inetOrgPerson.inc:441 +#: ../lib/modules/inetOrgPerson.inc:581 ../lib/modules/inetOrgPerson.inc:712 +#: ../lib/modules/inetOrgPerson.inc:716 ../lib/modules/inetOrgPerson.inc:1406 +#: ../lib/modules/inetOrgPerson.inc:1409 ../lib/modules/inetOrgPerson.inc:1905 +#: ../lib/modules/inetOrgPerson.inc:2511 ../lib/modules/inetOrgPerson.inc:3535 +#: ../lib/modules/inetOrgPerson.inc:3583 +msgid "Fax number" +msgstr "Fax number" + +#: ../lib/modules/zarafaUser.inc:155 ../lib/modules/zarafaUser.inc:376 +#: ../lib/modules/zarafaUser.inc:638 ../lib/modules/zarafaUser.inc:1288 +#: ../lib/modules/zarafaUser.inc:1327 ../lib/modules/zarafaUser.inc:1807 +msgid "Features" +msgstr "Features" + +#: ../templates/config/mainmanage.php:412 +#: ../templates/3rdParty/pla/lib/functions.php:533 +#: ../templates/3rdParty/pla/tools/unserialize.php:14 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "File" +msgstr "File" + +#: ../lib/pdfstruct.inc:282 +msgid "File does not exist." +msgstr "File does not exist." + +#: ../lib/modules/customFields.inc:160 ../lib/modules/customFields.inc:3294 +msgid "File extension" +msgstr "File extension" + +#: ../lib/modules/inetOrgPerson.inc:102 +#, php-format +msgid "File is too large. Maximum allowed size is %s kB." +msgstr "File is too large. Maximum allowed size is %s kB." + +#: ../lib/modules/sambaSamAccount.inc:312 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user and $group are replaced with user and group name." +msgstr "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user and $group are replaced with user and group name." + +#: ../lib/modules/windowsUser.inc:210 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user is replaced with user name." +msgstr "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user is replaced with user name." + +#: ../lib/modules/zarafaServer.inc:76 ../lib/modules/zarafaServer.inc:112 +#: ../lib/modules/zarafaServer.inc:137 ../lib/modules/zarafaServer.inc:177 +#: ../lib/modules/zarafaServer.inc:219 ../lib/modules/zarafaServer.inc:356 +msgid "File path" +msgstr "File path" + +#: ../templates/masscreate.php:243 ../lib/tools/fileUpload.inc:44 +#: ../lib/modules/ldapPublicKey.inc:80 ../lib/modules/customFields.inc:3280 +#: ../lib/lists.inc:777 +msgid "File upload" +msgstr "File upload" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +#: ../lib/types/zarafaAddressListType.inc:94 +#: ../lib/types/zarafaDynamicGroupType.inc:95 +#: ../lib/modules/pykotaPrinter.inc:128 ../lib/modules/pykotaPrinter.inc:425 +#: ../lib/modules/zarafaDynamicGroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:158 +#: ../lib/modules/zarafaDynamicGroup.inc:171 +#: ../lib/modules/zarafaDynamicGroup.inc:239 +#: ../lib/modules/zarafaDynamicGroup.inc:450 +#: ../lib/modules/zarafaContact.inc:91 ../lib/modules/posixGroup.inc:335 +#: ../lib/modules/posixGroup.inc:528 ../lib/modules/zarafaAddressList.inc:79 +#: ../lib/modules/zarafaAddressList.inc:134 +#: ../lib/modules/zarafaAddressList.inc:145 +#: ../lib/modules/zarafaAddressList.inc:206 +#: ../lib/modules/zarafaAddressList.inc:333 ../lib/modules/zarafaUser.inc:140 +#: ../lib/modules/sambaGroupMapping.inc:170 +#: ../lib/modules/sambaGroupMapping.inc:483 ../lib/modules/nisnetgroup.inc:104 +#: ../lib/modules/nisnetgroup.inc:477 +#: ../lib/modules/organizationalRole.inc:101 +#: ../lib/modules/organizationalRole.inc:282 +#: ../lib/modules/organizationalRole.inc:372 +#: ../lib/modules/groupOfNames.inc:113 ../lib/modules/groupOfNames.inc:339 +#: ../lib/modules/groupOfNames.inc:429 ../lib/modules/groupOfNames.inc:494 +#: ../lib/modules/groupOfNames.inc:584 ../lib/modules/nisMailAlias.inc:93 +#: ../lib/modules/nisMailAlias.inc:373 ../lib/lists.inc:379 +#: ../help/help.inc:168 +msgid "Filter" +msgstr "Filter" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:509 +msgid "Filter performed" +msgstr "Filter performed" + +#: ../templates/multiEdit.php:514 +msgid "Finished all operations." +msgstr "Finished all operations." + +#: ../lib/types/user.inc:96 ../lib/modules/selfRegistration.inc:83 +#: ../lib/modules/selfRegistration.inc:218 ../lib/modules/windowsUser.inc:128 +#: ../lib/modules/windowsUser.inc:278 ../lib/modules/windowsUser.inc:502 +#: ../lib/modules/windowsUser.inc:597 ../lib/modules/windowsUser.inc:700 +#: ../lib/modules/windowsUser.inc:1590 ../lib/modules/inetOrgPerson.inc:66 +#: ../lib/modules/inetOrgPerson.inc:156 ../lib/modules/inetOrgPerson.inc:306 +#: ../lib/modules/inetOrgPerson.inc:538 ../lib/modules/inetOrgPerson.inc:644 +#: ../lib/modules/inetOrgPerson.inc:1170 ../lib/modules/inetOrgPerson.inc:1173 +#: ../lib/modules/inetOrgPerson.inc:1892 ../lib/modules/inetOrgPerson.inc:2434 +#: ../lib/modules/inetOrgPerson.inc:3577 +msgid "First name" +msgstr "First name" + +#: ../lib/modules/windowsUser.inc:597 ../lib/modules/windowsUser.inc:598 +#: ../lib/modules/inetOrgPerson.inc:66 ../lib/modules/inetOrgPerson.inc:67 +msgid "First name contains invalid characters!" +msgstr "First name contains invalid characters!" + +#: ../lib/modules/windowsUser.inc:129 ../lib/modules/inetOrgPerson.inc:645 +msgid "First name of user. Only letters, - and spaces are allowed." +msgstr "First name of user. Only letters, - and spaces are allowed." + +#: ../lib/modules/ddns.inc:85 +msgid "Fix IP addresses" +msgstr "Fix IP addresses" + +#: ../templates/config/confmain.php:414 +msgid "Fixed list" +msgstr "Fixed list" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:228 +msgid "Fixed range" +msgstr "Fixed range" + +#: ../templates/pdfedit/pdfpage.php:461 +msgid "Folding marks" +msgstr "Folding marks" + +#: ../templates/config/confmain.php:273 ../help/help.inc:85 +msgid "Follow referrals" +msgstr "Follow referrals" + +#: ../lib/modules/kolabUser.inc:125 +msgid "For automatic invitation handling." +msgstr "For automatic invitation handling." + +#: ../lib/modules/nisnetgroup.inc:101 +msgid "" +"For the upload please specify the entries in the format \"(HOST,USER," +"DOMAIN)\". Multiple entries are separated by semicolon." +msgstr "" +"For the upload please specify the entries in the format \"(HOST,USER," +"DOMAIN)\". Multiple entries are separated by semicolon." + +#: ../templates/lists/changePassword.php:238 +#: ../lib/modules/mitKerberos.inc:183 ../lib/modules/mitKerberos.inc:417 +#: ../lib/modules/shadowAccount.inc:369 ../lib/modules/heimdalKerberos.inc:127 +#: ../lib/modules/heimdalKerberos.inc:348 ../lib/modules.inc:1062 +#: ../help/help.inc:206 +msgid "Force password change" +msgstr "Force password change" + +#: ../lib/modules/passwordSelfReset.inc:787 +msgid "Forgot password?" +msgstr "Forgot password?" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:484 ../help/help.inc:252 +msgid "Format" +msgstr "Format" + +#: ../lib/modules/qmailUser.inc:207 ../lib/modules/qmailUser.inc:277 +#: ../lib/modules/qmailUser.inc:401 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:546 ../lib/modules/qmailUser.inc:1141 +msgid "Forwarding address" +msgstr "Forwarding address" + +#: ../lib/modules/qmailUser.inc:208 +msgid "Forwards all incoming messages for this user to this address." +msgstr "Forwards all incoming messages for this user to this address." + +#: ../lib/modules/pykotaGroup.inc:64 ../lib/modules/pykotaUser.inc:64 +msgid "Free printing" +msgstr "Free printing" + +#: ../lib/modules/freeRadius.inc:74 +msgid "FreeRadius" +msgstr "FreeRadius" + +#: ../lib/modules/sambaSamAccount.inc:1376 +msgid "Friday" +msgstr "Friday" + +#: ../templates/config/confmain.php:343 ../lib/modules/selfRegistration.inc:90 +#: ../lib/modules/selfRegistration.inc:229 +#: ../lib/modules/passwordSelfReset.inc:116 +#: ../lib/modules/passwordSelfReset.inc:537 +#: ../lib/modules/passwordSelfReset.inc:557 ../help/help.inc:246 +msgid "From address" +msgstr "From address" + +#: ../templates/config/confmain.php:520 +msgid "From address for password mails is invalid." +msgstr "From address for password mails is invalid." + +#: ../lib/modules/asteriskAccount.inc:147 +#: ../lib/modules/asteriskAccount.inc:275 +#: ../lib/modules/asteriskAccount.inc:377 +#: ../lib/modules/asteriskAccount.inc:636 +#: ../lib/modules/asteriskAccount.inc:991 +#: ../lib/modules/asteriskAccount.inc:1251 +msgid "From domain" +msgstr "From domain" + +#: ../lib/modules/asteriskAccount.inc:148 +msgid "From domain setting for this account." +msgstr "From domain setting for this account." + +#: ../lib/modules/asteriskAccount.inc:143 +#: ../lib/modules/asteriskAccount.inc:274 +#: ../lib/modules/asteriskAccount.inc:370 +#: ../lib/modules/asteriskAccount.inc:632 +#: ../lib/modules/asteriskAccount.inc:990 +#: ../lib/modules/asteriskAccount.inc:1249 +msgid "From user" +msgstr "From user" + +#: ../lib/modules/asteriskAccount.inc:144 +msgid "From user setting for this account." +msgstr "From user setting for this account." + +#: ../lib/modules/asteriskAccount.inc:151 +#: ../lib/modules/asteriskAccount.inc:276 +#: ../lib/modules/asteriskAccount.inc:384 +#: ../lib/modules/asteriskAccount.inc:640 +#: ../lib/modules/asteriskAccount.inc:992 +#: ../lib/modules/asteriskAccount.inc:1253 +msgid "Full contact" +msgstr "Full contact" + +#: ../templates/lists/changePassword.php:281 +#: ../lib/modules/asteriskVoicemail.inc:103 +#: ../lib/modules/asteriskVoicemail.inc:139 +#: ../lib/modules/asteriskVoicemail.inc:172 +#: ../lib/modules/asteriskVoicemail.inc:252 +#: ../lib/modules/asteriskVoicemail.inc:371 +msgid "Full name" +msgstr "Full name" + +#: ../lib/modules/asteriskVoicemail.inc:104 +msgid "Full name for Asterisk voicemail mailbox." +msgstr "Full name for Asterisk voicemail mailbox." + +#: ../templates/3rdParty/pla/lib/functions.php:537 +#: ../templates/3rdParty/pla/tools/unserialize.php:17 +msgid "Function" +msgstr "Function" + +#: ../lib/modules/windowsUser.inc:328 ../lib/modules/inetOrgPerson.inc:387 +msgid "GB-12345" +msgstr "GB-12345" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixGroup.inc:520 +msgid "GID generator" +msgstr "GID generator" + +#: ../lib/types/host.inc:96 ../lib/types/group.inc:106 +#: ../lib/types/user.inc:93 ../lib/modules/qmailUser.inc:114 +#: ../lib/modules/qmailUser.inc:235 ../lib/modules/qmailUser.inc:341 +#: ../lib/modules/qmailUser.inc:421 ../lib/modules/qmailUser.inc:581 +#: ../lib/modules/qmailUser.inc:1143 ../lib/modules/posixGroup.inc:191 +#: ../lib/modules/posixGroup.inc:421 ../lib/modules/posixGroup.inc:436 +#: ../lib/modules/posixGroup.inc:480 ../lib/modules/posixGroup.inc:500 +#: ../lib/modules/posixGroup.inc:576 ../lib/modules/posixGroup.inc:599 +#: ../lib/modules/posixAccount.inc:125 ../lib/modules/posixAccount.inc:413 +#: ../lib/modules/posixAccount.inc:1853 +#: ../lib/modules/sambaGroupMapping.inc:110 +#: ../lib/modules/sambaGroupMapping.inc:538 +msgid "GID number" +msgstr "GID number" + +#: ../lib/modules/posixGroup.inc:599 +msgid "" +"GID number has changed. Please select checkbox to change GID number of users " +"and hosts." +msgstr "" +"GID number has changed. Please select checkbox to change GID number of users " +"and hosts." + +#: ../lib/modules/posixAccount.inc:125 +#, php-format +msgid "" +"GID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" +msgstr "" +"GID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" + +#: ../lib/modules/posixGroup.inc:606 +msgid "GID number has to be a numeric value!" +msgstr "GID number has to be a numeric value!" + +#: ../lib/modules/qmailUser.inc:466 +msgid "GID number is already in use." +msgstr "GID number is already in use." + +#: ../lib/modules/posixAccount.inc:256 ../lib/modules/posixAccount.inc:356 +#: ../lib/modules/posixAccount.inc:398 ../lib/modules/posixAccount.inc:424 +#: ../lib/modules/posixAccount.inc:510 ../lib/modules/posixAccount.inc:548 +#: ../lib/modules/posixAccount.inc:1440 ../lib/modules/posixAccount.inc:1856 +msgid "Gecos" +msgstr "Gecos" + +#: ../lib/modules/windowsUser.inc:673 +msgid "General" +msgstr "General" + +#: ../lib/modules/generalInformation.inc:58 +msgid "General information" +msgstr "General information" + +#: ../templates/config/mainmanage.php:477 +#: ../templates/config/confmodules.php:164 +#: ../templates/config/confmain.php:205 +#: ../templates/config/moduleSettings.php:163 +#: ../templates/config/conftypes.php:182 +#: ../templates/selfService/adminMain.php:433 +#: ../templates/profedit/profilepage.php:215 +msgid "General settings" +msgstr "General settings" + +#: ../templates/lists/changePassword.php:308 ../help/help.inc:244 +msgid "Generate random password" +msgstr "Generate random password" + +#: ../templates/3rdParty/pla/lib/functions.php:63 +#: ../templates/3rdParty/pla/lib/functions.php:595 +msgid "Generic Error" +msgstr "Generic Error" + +#: ../lib/modules/windowsGroup.inc:65 +msgid "Global" +msgstr "Global" + +#: ../templates/pdfedit/pdfmain.php:322 +#: ../templates/profedit/profilemain.php:289 +msgid "Global templates" +msgstr "Global templates" + +#: ../templates/schema/schema.php:128 ../templates/schema/schema.php:265 +#: ../templates/schema/schema.php:296 ../templates/schema/schema.php:321 +msgid "Go" +msgstr "Go" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:215 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:139 +msgid "Go back" +msgstr "Go back" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1864 +msgid "Go to" +msgstr "Go to" + +#: ../lib/types/ppolicyType.inc:82 ../lib/modules/ppolicy.inc:100 +#: ../lib/modules/ppolicy.inc:149 ../lib/modules/ppolicy.inc:170 +#: ../lib/modules/ppolicy.inc:222 ../lib/modules/ppolicy.inc:475 +msgid "Grace authentication limit" +msgstr "Grace authentication limit" + +#: ../lib/modules/quota.inc:125 ../lib/modules/quota.inc:403 +msgid "Grace block period" +msgstr "Grace block period" + +#: ../lib/modules/quota.inc:126 +msgid "" +"Grace block period. Most filesystems use a fixed maximum value of 7 days." +msgstr "" +"Grace block period. Most filesystems use a fixed maximum value of 7 days." + +#: ../lib/modules/quota.inc:148 +msgid "" +"Grace inode (files) period. Most filesystems use a fixed maximum value of 7 " +"days." +msgstr "" +"Grace inode (files) period. Most filesystems use a fixed maximum value of 7 " +"days." + +#: ../lib/modules/quota.inc:147 ../lib/modules/quota.inc:407 +msgid "Grace inode period" +msgstr "Grace inode period" + +#: ../templates/config/confmain.php:324 +#: ../templates/selfService/adminMain.php:670 +msgid "Group" +msgstr "Group" + +#: ../lib/types/group.inc:76 +msgid "Group accounts (e.g. Unix and Samba)" +msgstr "Group accounts (e.g. Unix and Samba)" + +#: ../lib/types/gon.inc:202 ../lib/types/zarafaDynamicGroupType.inc:165 +#: ../lib/types/group.inc:240 ../lib/types/netgroup.inc:169 +#, php-format +msgid "Group count: %s" +msgstr "Group count: %s" + +#: ../lib/types/group.inc:111 ../lib/modules/posixGroup.inc:471 +#: ../lib/modules/nisnetgroup.inc:120 +msgid "Group description" +msgstr "Group description" + +#: ../lib/modules/pykotaGroup.inc:118 +msgid "Group description." +msgstr "Group description." + +#: ../lib/modules/posixGroup.inc:485 +msgid "Group description. If left empty group name will be used." +msgstr "Group description. If left empty group name will be used." + +#: ../lib/types/gon.inc:105 ../lib/types/gon.inc:106 +#: ../lib/types/group.inc:108 ../lib/types/group.inc:109 +msgid "Group member DNs" +msgstr "Group member DNs" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:94 +#: ../lib/types/group.inc:107 ../lib/modules/pykotaPrinter.inc:119 +#: ../lib/modules/pykotaPrinter.inc:123 ../lib/modules/pykotaPrinter.inc:186 +#: ../lib/modules/pykotaPrinter.inc:199 ../lib/modules/pykotaPrinter.inc:265 +#: ../lib/modules/pykotaPrinter.inc:607 ../lib/modules/posixGroup.inc:222 +#: ../lib/modules/posixGroup.inc:293 ../lib/modules/posixGroup.inc:424 +#: ../lib/modules/posixGroup.inc:450 ../lib/modules/posixGroup.inc:488 +#: ../lib/modules/posixGroup.inc:492 ../lib/modules/posixGroup.inc:573 +#: ../lib/modules/windowsGroup.inc:381 +msgid "Group members" +msgstr "Group members" + +#: ../lib/types/gon.inc:104 ../lib/types/zarafaDynamicGroupType.inc:91 +#: ../lib/types/group.inc:105 ../lib/types/netgroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:63 +#: ../lib/modules/zarafaDynamicGroup.inc:116 +#: ../lib/modules/zarafaDynamicGroup.inc:165 +#: ../lib/modules/zarafaDynamicGroup.inc:195 +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:220 +#: ../lib/modules/zarafaDynamicGroup.inc:447 ../lib/modules/posixGroup.inc:181 +#: ../lib/modules/posixGroup.inc:427 ../lib/modules/posixGroup.inc:459 +#: ../lib/modules/posixGroup.inc:508 ../lib/modules/posixGroup.inc:575 +#: ../lib/modules/posixGroup.inc:607 ../lib/modules/posixGroup.inc:608 +#: ../lib/modules/posixGroup.inc:609 ../lib/modules/pykotaGroup.inc:197 +#: ../lib/modules/pykotaGroup.inc:199 ../lib/modules/pykotaGroup.inc:218 +#: ../lib/modules/nisnetgroup.inc:83 ../lib/modules/nisnetgroup.inc:112 +#: ../lib/modules/nisnetgroup.inc:139 ../lib/modules/nisnetgroup.inc:151 +#: ../lib/modules/nisnetgroup.inc:193 ../lib/modules/nisnetgroup.inc:579 +#: ../lib/modules/organizationalRole.inc:85 +#: ../lib/modules/organizationalRole.inc:114 +#: ../lib/modules/organizationalRole.inc:137 +#: ../lib/modules/organizationalRole.inc:452 +#: ../lib/modules/windowsGroup.inc:114 ../lib/modules/windowsGroup.inc:176 +#: ../lib/modules/windowsGroup.inc:257 ../lib/modules/windowsGroup.inc:283 +#: ../lib/modules/windowsGroup.inc:300 ../lib/modules/windowsGroup.inc:745 +#: ../lib/modules/groupOfNames.inc:85 ../lib/modules/groupOfNames.inc:126 +#: ../lib/modules/groupOfNames.inc:167 ../lib/modules/groupOfNames.inc:693 +msgid "Group name" +msgstr "Group name" + +#: ../lib/modules/pykotaGroup.inc:199 ../lib/modules/pykotaGroup.inc:200 +#: ../lib/modules/pykotaGroup.inc:203 ../lib/modules/pykotaGroup.inc:204 +msgid "Group name already exists!" +msgstr "Group name already exists!" + +#: ../lib/modules/zarafaDynamicGroup.inc:195 +msgid "Group name already in use." +msgstr "Group name already in use." + +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:197 ../lib/modules/posixGroup.inc:609 +#: ../lib/modules/posixGroup.inc:610 ../lib/modules/pykotaGroup.inc:197 +#: ../lib/modules/pykotaGroup.inc:198 ../lib/modules/pykotaGroup.inc:201 +#: ../lib/modules/pykotaGroup.inc:202 ../lib/modules/nisnetgroup.inc:151 +#: ../lib/modules/windowsGroup.inc:283 ../lib/modules/windowsGroup.inc:284 +msgid "" +"Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" + +#: ../lib/modules/windowsGroup.inc:151 +msgid "Group name for NIS." +msgstr "Group name for NIS." + +#: ../lib/modules/posixGroup.inc:608 +msgid "Group name in use. Selected next free group name." +msgstr "Group name in use. Selected next free group name." + +#: ../lib/modules/zarafaDynamicGroup.inc:64 ../lib/modules/pykotaGroup.inc:114 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ ." +msgstr "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ ." + +#: ../lib/modules/posixGroup.inc:509 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ . If group name is already used group name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ . If group name is already used group name will be expanded " +"with a number. The next free number will be used." + +#: ../lib/modules/pykotaGroup.inc:122 +msgid "Group name that is used for PyKota." +msgstr "Group name that is used for PyKota." + +#: ../lib/modules/freeRadius.inc:96 ../lib/modules/freeRadius.inc:100 +#: ../lib/modules/freeRadius.inc:128 ../lib/modules/freeRadius.inc:154 +#: ../lib/modules/freeRadius.inc:185 ../lib/modules/freeRadius.inc:234 +#: ../lib/modules/freeRadius.inc:277 ../lib/modules/freeRadius.inc:540 +msgid "Group names" +msgstr "Group names" + +#: ../lib/modules/groupOfNames.inc:65 +msgid "Group of names" +msgstr "Group of names" + +#: ../lib/types/gon.inc:75 +msgid "Group of names accounts" +msgstr "Group of names accounts" + +#: ../lib/modules/groupOfUniqueNames.inc:42 +msgid "Group of unique names" +msgstr "Group of unique names" + +#: ../lib/modules/posixGroup.inc:442 ../lib/modules/posixGroup.inc:496 +msgid "Group password" +msgstr "Group password" + +#: ../lib/modules/windowsGroup.inc:142 ../lib/modules/windowsGroup.inc:195 +#: ../lib/modules/windowsGroup.inc:262 ../lib/modules/windowsGroup.inc:338 +#: ../lib/modules/windowsGroup.inc:775 +msgid "Group scope" +msgstr "Group scope" + +#: ../lib/modules/sambaGroupMapping.inc:382 +#: ../lib/modules/windowsGroup.inc:138 ../lib/modules/windowsGroup.inc:203 +#: ../lib/modules/windowsGroup.inc:261 ../lib/modules/windowsGroup.inc:341 +#: ../lib/modules/windowsGroup.inc:776 +msgid "Group type" +msgstr "Group type" + +#: ../lib/types/group.inc:67 ../lib/modules/posixGroup.inc:401 +#: ../lib/modules/zarafaGroup.inc:119 ../lib/modules/windowsUser.inc:217 +#: ../lib/modules/windowsUser.inc:220 ../lib/modules/windowsUser.inc:442 +#: ../lib/modules/windowsUser.inc:523 ../lib/modules/windowsUser.inc:785 +#: ../lib/modules/windowsUser.inc:1635 ../lib/modules/windowsUser.inc:1663 +#: ../lib/modules/generalInformation.inc:110 +msgid "Groups" +msgstr "Groups" + +#: ../lib/types/gon.inc:66 ../lib/modules/posixAccount.inc:261 +#: ../lib/modules/posixAccount.inc:364 ../lib/modules/posixAccount.inc:427 +#: ../lib/modules/posixAccount.inc:1599 ../lib/modules/posixAccount.inc:1748 +#: ../lib/modules/posixAccount.inc:1865 ../lib/modules/windowsUser.inc:1029 +#: ../lib/modules/groupOfNamesUser.inc:54 +#: ../lib/modules/groupOfNamesUser.inc:56 +#: ../lib/modules/groupOfNamesUser.inc:60 +#: ../lib/modules/groupOfNamesUser.inc:64 +#: ../lib/modules/groupOfNamesUser.inc:71 +#: ../lib/modules/groupOfNamesUser.inc:324 +#: ../lib/modules/groupOfNamesUser.inc:360 +msgid "Groups of names" +msgstr "Groups of names" + +#: ../lib/modules/dhcp_settings.inc:99 +msgid "H-Node (0x08)" +msgstr "H-Node (0x08)" + +#: ../templates/config/confmain.php:356 +#: ../lib/modules/selfRegistration.inc:235 +#: ../lib/modules/passwordSelfReset.inc:541 +#: ../lib/modules/passwordSelfReset.inc:561 ../help/help.inc:255 +msgid "HTML format" +msgstr "HTML format" + +#: ../templates/config/confmain.php:448 +#: ../templates/selfService/adminMain.php:474 ../help/help.inc:126 +msgid "HTTP authentication" +msgstr "HTTP authentication" + +#: ../lib/modules/zarafaServer.inc:68 ../lib/modules/zarafaServer.inc:100 +#: ../lib/modules/zarafaServer.inc:135 ../lib/modules/zarafaServer.inc:173 +#: ../lib/modules/zarafaServer.inc:195 ../lib/modules/zarafaServer.inc:354 +msgid "HTTP port" +msgstr "HTTP port" + +#: ../lib/modules/quota.inc:635 ../lib/modules/systemQuotas.inc:384 +msgid "Hard block" +msgstr "Hard block" + +#: ../lib/modules/quota.inc:119 ../lib/modules/quota.inc:120 +#: ../lib/modules/quota.inc:402 ../lib/modules/quota.inc:508 +#: ../lib/modules/systemQuotas.inc:126 +msgid "Hard block limit" +msgstr "Hard block limit" + +#: ../lib/modules/quota.inc:637 ../lib/modules/systemQuotas.inc:386 +msgid "Hard inode" +msgstr "Hard inode" + +#: ../lib/modules/quota.inc:142 +msgid "Hard inode (files) limit" +msgstr "Hard inode (files) limit" + +#: ../lib/modules/quota.inc:141 ../lib/modules/quota.inc:406 +#: ../lib/modules/quota.inc:510 ../lib/modules/systemQuotas.inc:130 +msgid "Hard inode limit" +msgstr "Hard inode limit" + +#: ../lib/modules/generalInformation.inc:104 +msgid "Has subentries" +msgstr "Has subentries" + +#: ../lib/modules/sambaSamAccount.inc:554 +msgid "Hawaii" +msgstr "Hawaii" + +#: ../lib/modules/selfRegistration.inc:106 +#: ../lib/modules/selfRegistration.inc:224 +#: ../lib/modules/passwordSelfReset.inc:156 +#: ../lib/modules/passwordSelfReset.inc:567 +msgid "Header" +msgstr "Header" + +#: ../templates/pdfedit/pdfpage.php:452 ../templates/pdfedit/pdfpage.php:591 +#: ../templates/pdfedit/pdfpage.php:598 +msgid "Headline" +msgstr "Headline" + +#: ../lib/modules/heimdalKerberos.inc:235 +msgid "Heimdal Kerberos password change command" +msgstr "Heimdal Kerberos password change command" + +#: ../templates/main_header.php:140 ../lib/modules.inc:667 +msgid "Help" +msgstr "Help" + +#: ../lib/modules/customFields.inc:96 ../lib/modules/customFields.inc:1716 +msgid "Help text" +msgstr "Help text" + +#: ../lib/tools/schemaBrowser.inc:53 +msgid "Here you can browse LDAP object classes and attributes." +msgstr "Here you can browse LDAP object classes and attributes." + +#: ../lib/modules/sambaSamAccount.inc:391 +msgid "Here you can change the settings for the terminal server access." +msgstr "Here you can change the settings for the terminal server access." + +#: ../lib/selfService.inc:387 +msgid "Here you can change your personal settings." +msgstr "Here you can change your personal settings." + +#: ../templates/masscreate.php:130 +msgid "Here you can create multiple accounts by providing a CSV file." +msgstr "Here you can create multiple accounts by providing a CSV file." + +#: ../lib/modules/dhcp_settings.inc:198 +msgid "Here you can enter a description for this DHCP entry." +msgstr "Here you can enter a description for this DHCP entry." + +#: ../lib/modules/nisnetgroup.inc:88 ../lib/modules/organizationalRole.inc:90 +#: ../lib/modules/groupOfNames.inc:90 +msgid "Here you can enter a description for this group." +msgstr "Here you can enter a description for this group." + +#: ../lib/modules/sudoRole.inc:71 +msgid "Here you can enter a description for this role." +msgstr "Here you can enter a description for this role." + +#: ../lib/modules/pykotaPrinter.inc:129 ../lib/modules/zarafaContact.inc:92 +#: ../lib/modules/posixGroup.inc:529 ../lib/modules/zarafaUser.inc:141 +#: ../lib/modules/sambaGroupMapping.inc:171 ../lib/modules/nisnetgroup.inc:105 +#: ../lib/modules/organizationalRole.inc:102 +#: ../lib/modules/groupOfNames.inc:114 ../lib/modules/nisMailAlias.inc:94 +msgid "" +"Here you can enter a filter value. Only entries which contain the filter " +"text will be shown." +msgstr "" +"Here you can enter a filter value. Only entries which contain the filter " +"text will be shown." + +#: ../lib/modules/posixAccount.inc:470 ../lib/modules/groupOfNamesUser.inc:65 +msgid "" +"Here you can enter a list of additional group memberships. The group names " +"are separated by commas." +msgstr "" +"Here you can enter a list of additional group memberships. The group names " +"are separated by commas." + +#: ../lib/modules/organizationalRoleUser.inc:65 +msgid "" +"Here you can enter a list of roles. The role names are separated by commas." +msgstr "" +"Here you can enter a list of roles. The role names are separated by commas." + +#: ../lib/modules/device.inc:66 +msgid "Here you can enter a serial number for this device." +msgstr "Here you can enter a serial number for this device." + +#: ../lib/modules/windowsUser.inc:181 ../lib/modules/windowsUser.inc:185 +msgid "Here you can enter additional web sites for the user." +msgstr "Here you can enter additional web sites for the user." + +#: ../help/help.inc:215 +msgid "" +"Here you can enter an alternative mail address for the password. To use the " +"user's primary email address please leave the field blank." +msgstr "" +"Here you can enter an alternative mail address for the password. To use the " +"user's primary email address please leave the field blank." + +#: ../lib/modules/customFields.inc:81 +msgid "" +"Here you can enter one or more object classes (separated by comma). This " +"will allow you to add/remove the group's attributes including their object " +"classes." +msgstr "" +"Here you can enter one or more object classes (separated by comma). This " +"will allow you to add/remove the group's attributes including their object " +"classes." + +#: ../lib/modules/inetOrgPerson.inc:801 ../lib/modules/inetOrgPerson.inc:805 +msgid "Here you can enter the user's department." +msgstr "Here you can enter the user's department." + +#: ../lib/modules/zarafaUser.inc:156 +msgid "Here you can explicitly enable and disable Zarafa features." +msgstr "Here you can explicitly enable and disable Zarafa features." + +#: ../help/help.inc:213 +msgid "" +"Here you can export PDF structures to other server profiles (overwrite " +"existing). You may also export a structure to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"structure with this name." +msgstr "" +"Here you can export PDF structures to other server profiles (overwrite " +"existing). You may also export a structure to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"structure with this name." + +#: ../help/help.inc:195 +msgid "" +"Here you can export account profiles to other server profiles (overwrite " +"existing). You may also export a profile to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"profile with this name." +msgstr "" +"Here you can export account profiles to other server profiles (overwrite " +"existing). You may also export a profile to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"profile with this name." + +#: ../help/help.inc:211 +msgid "" +"Here you can import PDF structures from other server profiles (overwrite " +"existing)." +msgstr "" +"Here you can import PDF structures from other server profiles (overwrite " +"existing)." + +#: ../help/help.inc:193 +msgid "" +"Here you can import account profiles from other server profiles (overwrite " +"existing)." +msgstr "" +"Here you can import account profiles from other server profiles (overwrite " +"existing)." + +#: ../help/help.inc:169 +msgid "" +"Here you can input simple filter expressions (e.g. 'value' or 'v*'). The " +"filter is case-sensitive." +msgstr "" +"Here you can input simple filter expressions (e.g. 'value' or 'v*'). The " +"filter is case-sensitive." + +#: ../help/help.inc:199 +msgid "" +"Here you can load an account profile to set default settings for your " +"account. The \"default\" profile is automatically loaded for new accounts." +msgstr "" +"Here you can load an account profile to set default settings for your " +"account. The \"default\" profile is automatically loaded for new accounts." + +#: ../lib/tools/profileEditor.inc:53 +msgid "Here you can manage your account profiles." +msgstr "Here you can manage your account profiles." + +#: ../help/help.inc:181 +msgid "Here you can overwrite the display name for this account type." +msgstr "Here you can overwrite the display name for this account type." + +#: ../help/help.inc:201 +msgid "" +"Here you can select a PDF structure and export the account to a PDF file." +msgstr "" +"Here you can select a PDF structure and export the account to a PDF file." + +#: ../help/help.inc:151 +msgid "" +"Here you can select where LAM should save its log messages. System logging " +"will go to Syslog on Unix systems and event log on Windows. You can also " +"select an extra file." +msgstr "" +"Here you can select where LAM should save its log messages. System logging " +"will go to Syslog on Unix systems and event log on Windows. You can also " +"select an extra file." + +#: ../help/help.inc:112 +msgid "" +"Here you can select which plugins you want to use for account management." +msgstr "" +"Here you can select which plugins you want to use for account management." + +#: ../lib/modules/customFields.inc:169 +msgid "Here you can set a custom display name for this module." +msgstr "Here you can set a custom display name for this module." + +#: ../lib/modules/customFields.inc:97 +msgid "Here you can set a describing text for your custom field." +msgstr "Here you can set a describing text for your custom field." + +#: ../help/help.inc:125 +msgid "" +"Here you can set a limit for LDAP searches. This will restrict the number of " +"results for LDAP searches. Please use this if LAM's LDAP queries produce too " +"much load." +msgstr "" +"Here you can set a limit for LDAP searches. This will restrict the number of " +"results for LDAP searches. Please use this if LAM's LDAP queries produce too " +"much load." + +#: ../lib/modules/customFields.inc:173 +msgid "Here you can set the URL to a custom icon (32x32px) for this module." +msgstr "Here you can set the URL to a custom icon (32x32px) for this module." + +#: ../help/help.inc:237 +msgid "" +"Here you can specify additional CSS links to change the layout of the self " +"service pages. This is useful to adapt them to your corporate design. Please " +"enter one link per line." +msgstr "" +"Here you can specify additional CSS links to change the layout of the self " +"service pages. This is useful to adapt them to your corporate design. Please " +"enter one link per line." + +#: ../help/help.inc:155 +msgid "" +"Here you can specify minimum requirements for passwords. The character " +"classes are: lowercase, uppercase, numeric and symbols." +msgstr "" +"Here you can specify minimum requirements for passwords. The character " +"classes are: lowercase, uppercase, numeric and symbols." + +#: ../lib/modules/nisnetgroup.inc:92 +msgid "" +"Here you can specify subgroups which are included in this NIS netgroup. All " +"members of the subgroups will be treated as members of this group." +msgstr "" +"Here you can specify subgroups which are included in this NIS netgroup. All " +"members of the subgroups will be treated as members of this group." + +#: ../help/help.inc:129 +msgid "" +"Here you can specify the DN and password of the bind user that will be used " +"for the LDAP search. This is required if your LDAP server does not allow " +"anonymous access." +msgstr "" +"Here you can specify the DN and password of the bind user that will be used " +"for the LDAP search. This is required if your LDAP server does not allow " +"anonymous access." + +#: ../lib/modules/hostObject.inc:80 +msgid "" +"Here you can specify the list of host names where this account has login " +"privileges. The wildcard \"*\" represents all hosts. You may also use \"!\" " +"in front of a host name to deny access to a host." +msgstr "" +"Here you can specify the list of host names where this account has login " +"privileges. The wildcard \"*\" represents all hosts. You may also use \"!\" " +"in front of a host name to deny access to a host." + +#: ../lib/modules/sambaDomain.inc:102 +msgid "" +"Here you can specify the minimum number of characters for a user password." +msgstr "" +"Here you can specify the minimum number of characters for a user password." + +#: ../templates/lists/changePassword.php:350 +msgid "Here you can specify the new password yourself." +msgstr "Here you can specify the new password yourself." + +#: ../lib/modules/sambaSamAccount.inc:382 +msgid "Here you can specify the shadowing mode." +msgstr "Here you can specify the shadowing mode." + +#: ../lib/tools/tests.inc:53 +msgid "Here you can test if certain LAM features work on your installation." +msgstr "Here you can test if certain LAM features work on your installation." + +#: ../lib/modules/customFields.inc:165 +msgid "Here you can upload a new file." +msgstr "Here you can upload a new file." + +#: ../templates/config/conftypes.php:283 +#: ../lib/types/zarafaAddressListType.inc:95 +#: ../lib/types/zarafaDynamicGroupType.inc:96 +#: ../lib/modules/zarafaDynamicGroup.inc:79 +#: ../lib/modules/zarafaDynamicGroup.inc:136 +#: ../lib/modules/zarafaDynamicGroup.inc:169 +#: ../lib/modules/zarafaDynamicGroup.inc:273 +#: ../lib/modules/zarafaDynamicGroup.inc:461 +#: ../lib/modules/zarafaContact.inc:71 ../lib/modules/zarafaContact.inc:164 +#: ../lib/modules/zarafaContact.inc:172 ../lib/modules/zarafaContact.inc:247 +#: ../lib/modules/zarafaContact.inc:572 ../lib/modules/zarafaGroup.inc:85 +#: ../lib/modules/zarafaGroup.inc:146 ../lib/modules/zarafaGroup.inc:196 +#: ../lib/modules/zarafaGroup.inc:294 ../lib/modules/zarafaGroup.inc:665 +#: ../lib/modules/zarafaAddressList.inc:67 +#: ../lib/modules/zarafaAddressList.inc:112 +#: ../lib/modules/zarafaAddressList.inc:143 +#: ../lib/modules/zarafaAddressList.inc:214 +#: ../lib/modules/zarafaAddressList.inc:343 ../lib/modules/zarafaUser.inc:80 +#: ../lib/modules/zarafaUser.inc:290 ../lib/modules/zarafaUser.inc:339 +#: ../lib/modules/zarafaUser.inc:367 ../lib/modules/zarafaUser.inc:577 +#: ../lib/modules/zarafaUser.inc:1274 ../help/help.inc:174 +msgid "Hidden" +msgstr "Hidden" + +#: ../help/help.inc:175 +msgid "" +"Hidden account types will not show up in LAM. This is useful if you want to " +"display e.g. only groups but still need to manage their members." +msgstr "" +"Hidden account types will not show up in LAM. This is useful if you want to " +"display e.g. only groups but still need to manage their members." + +#: ../lib/modules/nisMailAliasUser.inc:104 +#: ../lib/modules/nisMailAliasUser.inc:563 +#: ../lib/modules/asteriskAccount.inc:243 +#: ../lib/modules/asteriskAccount.inc:1237 ../lib/modules/qmailUser.inc:102 +#: ../lib/modules/qmailUser.inc:195 ../lib/modules/zarafaGroup.inc:108 +#: ../lib/modules/zarafaGroup.inc:134 ../lib/modules/sambaSamAccount.inc:399 +#: ../lib/modules/sambaSamAccount.inc:589 ../lib/modules/posixAccount.inc:252 +#: ../lib/modules/posixAccount.inc:441 ../lib/modules/zarafaUser.inc:132 +#: ../lib/modules/zarafaUser.inc:1781 ../lib/modules/windowsUser.inc:236 +#: ../lib/modules/windowsUser.inc:561 ../lib/modules/inetOrgPerson.inc:808 +#: ../lib/modules/inetOrgPerson.inc:3505 ../lib/modules/freeRadius.inc:112 +#: ../lib/modules/freeRadius.inc:118 ../lib/modules/zarafaServer.inc:88 +#: ../lib/modules/zarafaServer.inc:159 ../lib/modules/qmailGroup.inc:68 +#: ../lib/modules/qmailGroup.inc:119 ../lib/modules/organizationalRole.inc:81 +#: ../lib/modules/organizationalRole.inc:159 +#: ../lib/modules/passwordSelfReset.inc:160 +#: ../lib/modules/passwordSelfReset.inc:209 +#: ../lib/modules/windowsGroup.inc:110 ../lib/modules/windowsGroup.inc:161 +#: ../lib/modules/groupOfNames.inc:81 ../lib/modules/groupOfNames.inc:193 +msgid "Hidden options" +msgstr "Hidden options" + +#: ../templates/config/confmain.php:375 +msgid "Hidden tools" +msgstr "Hidden tools" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1115 +msgid "Hide" +msgstr "Hide" + +#: ../lib/modules/customScripts.inc:88 ../lib/modules/customScripts.inc:102 +#: ../lib/modules/customScripts.inc:112 +msgid "Hide command in messages" +msgstr "Hide command in messages" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1116 +msgid "Hide internal attributes" +msgstr "Hide internal attributes" + +#: ../lib/modules/customScripts.inc:92 ../lib/modules/customScripts.inc:104 +msgid "Hide tab" +msgstr "Hide tab" + +#: ../templates/3rdParty/pla/lib/page.php:407 +msgid "Hide/Unhide the tree" +msgstr "Hide/Unhide the tree" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:58 +msgid "Hint" +msgstr "Hint" + +#: ../templates/masscreate.php:249 +msgid "" +"Hint: Format all cells as text in your spreadsheet program and turn off auto " +"correction." +msgstr "" +"Hint: Format all cells as text in your spreadsheet program and turn off auto " +"correction." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1005 +msgid "Hint: To delete an attribute, empty the text field and click save." +msgstr "Hint: To delete an attribute, empty the text field and click save." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1342 +msgid "" +"Hint: You must choose exactly one structural object class (shown in bold " +"above)" +msgstr "" +"Hint: You must choose exactly one structural object class (shown in bold " +"above)" + +#: ../lib/modules/posixAccount.inc:535 ../lib/modules/windowsUser.inc:218 +#: ../lib/modules/groupOfNamesUser.inc:61 +msgid "Hold the CTRL-key to (de)select multiple groups." +msgstr "Hold the CTRL-key to (de)select multiple groups." + +#: ../lib/modules/organizationalRoleUser.inc:61 +msgid "Hold the CTRL-key to (de)select multiple roles." +msgstr "Hold the CTRL-key to (de)select multiple roles." + +#: ../lib/types/user.inc:98 ../lib/modules/sambaSamAccount.inc:230 +#: ../lib/modules/sambaSamAccount.inc:354 +#: ../lib/modules/sambaSamAccount.inc:1501 +#: ../lib/modules/sambaSamAccount.inc:1916 ../lib/modules/posixAccount.inc:100 +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:103 +#: ../lib/modules/posixAccount.inc:310 ../lib/modules/posixAccount.inc:416 +#: ../lib/modules/posixAccount.inc:473 ../lib/modules/posixAccount.inc:477 +#: ../lib/modules/posixAccount.inc:481 ../lib/modules/posixAccount.inc:518 +#: ../lib/modules/posixAccount.inc:1199 ../lib/modules/posixAccount.inc:1459 +#: ../lib/modules/posixAccount.inc:1655 ../lib/modules/posixAccount.inc:1755 +#: ../lib/modules/posixAccount.inc:1854 ../lib/modules/windowsUser.inc:247 +#: ../lib/modules/windowsUser.inc:436 ../lib/modules/windowsUser.inc:479 +#: ../lib/modules/windowsUser.inc:526 ../lib/modules/windowsUser.inc:618 +#: ../lib/modules/windowsUser.inc:768 ../lib/modules/windowsUser.inc:1629 +msgid "Home directory" +msgstr "Home directory" + +#: ../lib/modules/posixAccount.inc:103 +#, php-format +msgid "" +"Home directory changed. To keep home directory you have to run the following " +"command as root: 'mv %s %s'" +msgstr "" +"Home directory changed. To keep home directory you have to run the following " +"command as root: 'mv %s %s'" + +#: ../lib/modules/sambaSamAccount.inc:214 +#: ../lib/modules/sambaSamAccount.inc:231 +#: ../lib/modules/sambaSamAccount.inc:302 +#: ../lib/modules/sambaSamAccount.inc:486 +#: ../lib/modules/sambaSamAccount.inc:594 +#: ../lib/modules/sambaSamAccount.inc:1203 +#: ../lib/modules/sambaSamAccount.inc:1509 +#: ../lib/modules/sambaSamAccount.inc:1750 +#: ../lib/modules/sambaSamAccount.inc:1901 +#: ../lib/modules/sambaSamAccount.inc:1917 ../lib/modules/windowsUser.inc:244 +#: ../lib/modules/windowsUser.inc:430 ../lib/modules/windowsUser.inc:525 +#: ../lib/modules/windowsUser.inc:766 ../lib/modules/windowsUser.inc:1630 +msgid "Home drive" +msgstr "Home drive" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:95 +#: ../lib/modules/sambaSamAccount.inc:217 +#: ../lib/modules/sambaSamAccount.inc:305 +#: ../lib/modules/sambaSamAccount.inc:494 +#: ../lib/modules/sambaSamAccount.inc:596 +#: ../lib/modules/sambaSamAccount.inc:1211 +#: ../lib/modules/sambaSamAccount.inc:1754 +#: ../lib/modules/sambaSamAccount.inc:1900 +msgid "Home path" +msgstr "Home path" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:96 +msgid "Home path is invalid." +msgstr "Home path is invalid." + +#: ../lib/modules/zarafaUser.inc:129 +msgid "Home server for the user." +msgstr "Home server for the user." + +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:160 +#: ../lib/modules/inetOrgPerson.inc:425 ../lib/modules/inetOrgPerson.inc:575 +#: ../lib/modules/inetOrgPerson.inc:752 ../lib/modules/inetOrgPerson.inc:756 +#: ../lib/modules/inetOrgPerson.inc:1390 ../lib/modules/inetOrgPerson.inc:1393 +#: ../lib/modules/inetOrgPerson.inc:1901 ../lib/modules/inetOrgPerson.inc:2489 +#: ../lib/modules/inetOrgPerson.inc:3531 ../lib/modules/inetOrgPerson.inc:3582 +msgid "Home telephone number" +msgstr "Home telephone number" + +#: ../lib/modules/posixAccount.inc:100 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/windowsUser.inc:618 ../lib/modules/windowsUser.inc:619 +msgid "Homedirectory contains invalid characters." +msgstr "Homedirectory contains invalid characters." + +#: ../lib/types/sudo.inc:79 ../lib/modules/asteriskAccount.inc:107 +#: ../lib/modules/asteriskAccount.inc:254 +#: ../lib/modules/asteriskAccount.inc:268 +#: ../lib/modules/asteriskAccount.inc:318 +#: ../lib/modules/asteriskAccount.inc:591 +#: ../lib/modules/asteriskAccount.inc:984 ../lib/modules/nisnetgroup.inc:217 +#: ../lib/modules/nisnetgroup.inc:585 ../lib/modules/fixed_ip.inc:580 +#: ../lib/modules/hostObject.inc:145 +msgid "Host" +msgstr "Host" + +#: ../lib/types/host.inc:62 +msgid "Host accounts (e.g. Samba)" +msgstr "Host accounts (e.g. Samba)" + +#: ../lib/types/host.inc:193 +#, php-format +msgid "Host count: %s" +msgstr "Host count: %s" + +#: ../lib/types/host.inc:94 +msgid "Host description" +msgstr "Host description" + +#: ../lib/modules/account.inc:96 ../lib/modules/posixAccount.inc:549 +#: ../lib/modules/posixAccount.inc:557 +msgid "Host description. If left empty host name will be used." +msgstr "Host description. If left empty host name will be used." + +#: ../lib/modules/hostObject.inc:91 ../lib/modules/hostObject.inc:98 +#: ../lib/modules/hostObject.inc:217 +msgid "Host list" +msgstr "Host list" + +#: ../lib/types/host.inc:91 ../lib/types/host.inc:92 ../lib/types/bind.inc:77 +#: ../lib/modules/account.inc:91 ../lib/modules/account.inc:212 +#: ../lib/modules/windowsHost.inc:74 ../lib/modules/windowsHost.inc:94 +#: ../lib/modules/windowsHost.inc:119 ../lib/modules/windowsHost.inc:131 +#: ../lib/modules/windowsHost.inc:142 ../lib/modules/windowsHost.inc:288 +#: ../lib/modules/posixAccount.inc:115 ../lib/modules/posixAccount.inc:116 +#: ../lib/modules/posixAccount.inc:118 ../lib/modules/posixAccount.inc:375 +#: ../lib/modules/posixAccount.inc:406 ../lib/modules/posixAccount.inc:544 +#: ../lib/modules/posixAccount.inc:1422 ../lib/modules/posixAccount.inc:1844 +#: ../lib/modules/bindDLZ.inc:88 ../lib/modules/bindDLZ.inc:147 +#: ../lib/modules/bindDLZ.inc:151 ../lib/modules/bindDLZ.inc:247 +#: ../lib/modules/bindDLZ.inc:301 ../lib/modules/bindDLZ.inc:417 +#: ../lib/modules/bindDLZ.inc:477 ../lib/modules/bindDLZ.inc:504 +#: ../lib/modules/bindDLZ.inc:549 ../lib/modules/bindDLZ.inc:553 +#: ../lib/modules/bindDLZ.inc:757 ../lib/modules/bindDLZ.inc:1471 +#: ../lib/modules/bindDLZ.inc:1499 ../lib/modules/nisnetgroup.inc:153 +#: ../lib/modules/nisnetgroup.inc:481 +msgid "Host name" +msgstr "Host name" + +#: ../lib/modules/posixAccount.inc:122 +msgid "Host name already exists!" +msgstr "Host name already exists!" + +#: ../lib/modules/windowsHost.inc:131 ../lib/modules/windowsHost.inc:132 +#: ../lib/modules/posixAccount.inc:116 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/nisnetgroup.inc:153 +msgid "" +"Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" + +#: ../lib/modules/posixAccount.inc:118 +msgid "Host name in use. Selected next free host name." +msgstr "Host name in use. Selected next free host name." + +#: ../lib/modules/sambaSamAccount.inc:1093 +msgid "Host name must end with $!" +msgstr "Host name must end with $!" + +#: ../lib/modules/account.inc:92 ../lib/modules/posixAccount.inc:545 +msgid "" +"Host name of the host which should be created. Valid characters are: a-z,A-" +"Z,0-9, .-_$. Host names are always ending with $. If last character is not $ " +"it will be added. If host name is already used host name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"Host name of the host which should be created. Valid characters are: a-z,A-" +"Z,0-9, .-_$. Host names are always ending with $. If last character is not $ " +"it will be added. If host name is already used host name will be expanded " +"with a number. The next free number will be used." + +#: ../lib/types/host.inc:53 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:96 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:227 ../lib/modules/sudoRole.inc:78 +#: ../lib/modules/sudoRole.inc:103 ../lib/modules/sudoRole.inc:165 +#: ../lib/modules/sudoRole.inc:217 ../lib/modules/sudoRole.inc:229 +#: ../lib/modules/sudoRole.inc:343 ../lib/modules/sudoRole.inc:807 +#: ../lib/modules/fixed_ip.inc:80 ../lib/modules/hostObject.inc:69 +#: ../lib/modules/hostObject.inc:79 +msgid "Hosts" +msgstr "Hosts" + +#: ../lib/modules/qmailUser.inc:352 +msgid "I am out of office." +msgstr "I am out of office." + +#: ../lib/modules/posixGroup.inc:602 ../lib/modules/posixAccount.inc:106 +#: ../lib/modules/posixAccount.inc:1169 +msgid "ID is already in use" +msgstr "ID is already in use" + +#: ../lib/modules/posixGroup.inc:600 ../lib/modules/posixGroup.inc:601 +#: ../lib/modules/posixGroup.inc:602 ../lib/modules/posixGroup.inc:724 +#: ../lib/modules/posixAccount.inc:104 ../lib/modules/posixAccount.inc:105 +#: ../lib/modules/posixAccount.inc:106 ../lib/modules/posixAccount.inc:1160 +#: ../lib/modules/posixAccount.inc:1165 ../lib/modules/posixAccount.inc:1169 +msgid "ID-Number" +msgstr "ID-Number" + +#: ../lib/modules/zarafaUser.inc:299 ../lib/modules/zarafaUser.inc:642 +#: ../lib/modules/zarafaUser.inc:1331 +msgid "IMAP" +msgstr "IMAP" + +#: ../lib/modules/imapAccess.inc:86 ../lib/modules/imapAccess.inc:124 +msgid "IMAP admin user" +msgstr "IMAP admin user" + +#: ../lib/modules/imapAccess.inc:89 ../lib/modules/imapAccess.inc:131 +msgid "IMAP password input" +msgstr "IMAP password input" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ipHost.inc:55 +#: ../lib/modules/ipHost.inc:65 ../lib/modules/ipHost.inc:128 +#: ../lib/modules/asteriskAccount.inc:227 +#: ../lib/modules/asteriskAccount.inc:295 +#: ../lib/modules/asteriskAccount.inc:522 +#: ../lib/modules/asteriskAccount.inc:746 +#: ../lib/modules/asteriskAccount.inc:1011 +#: ../lib/modules/asteriskAccount.inc:1291 ../lib/modules/bindDLZ.inc:92 +#: ../lib/modules/bindDLZ.inc:96 ../lib/modules/bindDLZ.inc:255 +#: ../lib/modules/bindDLZ.inc:495 ../lib/modules/bindDLZ.inc:652 +#: ../lib/modules/bindDLZ.inc:1479 ../lib/modules/freeRadius.inc:84 +#: ../lib/modules/freeRadius.inc:122 ../lib/modules/freeRadius.inc:193 +#: ../lib/modules/freeRadius.inc:225 ../lib/modules/freeRadius.inc:281 +#: ../lib/modules/freeRadius.inc:537 ../lib/modules/fixed_ip.inc:106 +#: ../lib/modules/fixed_ip.inc:421 ../lib/modules/fixed_ip.inc:741 +msgid "IP address" +msgstr "IP address" + +#: ../lib/modules/ddns.inc:98 ../lib/modules/ddns.inc:112 +#: ../lib/modules/ddns.inc:121 ../lib/modules/ddns.inc:381 +#: ../lib/modules/ddns.inc:424 +msgid "IP address of the DNS server" +msgstr "IP address of the DNS server" + +#: ../lib/modules/asteriskAccount.inc:228 +msgid "IP address of the peer. Valid only for realtime peers." +msgstr "IP address of the peer. Valid only for realtime peers." + +#: ../lib/modules/asteriskAccount.inc:236 +msgid "IP address or domain name of the registration server." +msgstr "IP address or domain name of the registration server." + +#: ../lib/modules/ipHost.inc:69 ../lib/modules/ipHost.inc:84 +#: ../lib/modules/ipHost.inc:104 ../lib/modules/ipHost.inc:251 +msgid "IP addresses" +msgstr "IP addresses" + +#: ../lib/modules/bindDLZ.inc:649 +msgid "IP addresses (\"A/AAAA\" records)" +msgstr "IP addresses (\"A/AAAA\" records)" + +#: ../lib/modules/fixed_ip.inc:119 +msgid "IP list" +msgstr "IP list" + +#: ../lib/modules/customFields.inc:514 +msgid "Icon" +msgstr "Icon" + +#: ../lib/modules/passwordSelfReset.inc:144 +#: ../lib/modules/passwordSelfReset.inc:506 +msgid "Identification method" +msgstr "Identification method" + +#: ../templates/masscreate.php:298 ../templates/masscreate.php:372 +msgid "Identifier" +msgstr "Identifier" + +#: ../lib/modules/sambaSamAccount.inc:238 +#: ../lib/modules/sambaSamAccount.inc:1527 +#: ../lib/modules/sambaSamAccount.inc:1928 +msgid "Idle time limit" +msgstr "Idle time limit" + +#: ../lib/modules/freeRadius.inc:108 ../lib/modules/freeRadius.inc:132 +#: ../lib/modules/freeRadius.inc:157 ../lib/modules/freeRadius.inc:217 +#: ../lib/modules/freeRadius.inc:240 ../lib/modules/freeRadius.inc:289 +#: ../lib/modules/freeRadius.inc:541 +msgid "Idle timeout" +msgstr "Idle timeout" + +#: ../lib/modules/qmailUser.inc:256 +msgid "" +"If account status is set to deleted, the earliest date when the mail message " +"store including all remaining content will be deleted from the filesystem." +msgstr "" +"If account status is set to deleted, the earliest date when the mail message " +"store including all remaining content will be deleted from the filesystem." + +#: ../lib/modules/customFields.inc:177 +msgid "" +"If activated then LAM will show an accordion view if there is more than one " +"group per account type." +msgstr "" +"If activated then LAM will show an accordion view if there is more than one " +"group per account type." + +#: ../lib/modules/ppolicyUser.inc:60 +msgid "" +"If activated then the user is forced to change his password at the next " +"login." +msgstr "" +"If activated then the user is forced to change his password at the next " +"login." + +#: ../lib/modules/sambaSamAccount.inc:268 +msgid "If checked Unix password will also be used as Samba password." +msgstr "If checked Unix password will also be used as Samba password." + +#: ../lib/modules/posixAccount.inc:527 +msgid "" +"If checked account will be deactivated by putting a \"!\" before the " +"encrypted password." +msgstr "" +"If checked account will be deactivated by putting a \"!\" before the " +"encrypted password." + +#: ../lib/modules/sambaSamAccount.inc:274 +msgid "If checked no password will be used." +msgstr "If checked no password will be used." + +#: ../lib/modules/windowsUser.inc:199 +msgid "If checked password does not expire." +msgstr "If checked password does not expire." + +#: ../lib/modules/sambaSamAccount.inc:280 +msgid "If checked password does not expire. (Setting X-Flag)" +msgstr "If checked password does not expire. (Setting X-Flag)" + +#: ../lib/modules/windowsUser.inc:196 +msgid "" +"If checked then the account is locked. You may only unlock accounts but not " +"lock them." +msgstr "" +"If checked then the account is locked. You may only unlock accounts but not " +"lock them." + +#: ../lib/modules/windowsUser.inc:193 +msgid "If checked then the account will be deactivated." +msgstr "If checked then the account will be deactivated." + +#: ../lib/modules/sambaSamAccount.inc:286 +msgid "If checked then the account will be deactivated. (Setting D-Flag)" +msgstr "If checked then the account will be deactivated. (Setting D-Flag)" + +#: ../lib/modules/sambaSamAccount.inc:289 +msgid "" +"If checked then the account will be locked (setting L-Flag). You usually " +"want to use this setting to unlock user accounts which were locked because " +"of failed login attempts." +msgstr "" +"If checked then the account will be locked (setting L-Flag). You usually " +"want to use this setting to unlock user accounts which were locked because " +"of failed login attempts." + +#: ../help/help.inc:177 +msgid "" +"If checked then the user will not be able to create new entries of this " +"account type." +msgstr "" +"If checked then the user will not be able to create new entries of this " +"account type." + +#: ../help/help.inc:179 +msgid "" +"If checked then the user will not be able to delete entries of this account " +"type." +msgstr "" +"If checked then the user will not be able to delete entries of this account " +"type." + +#: ../lib/modules/posixGroup.inc:481 +msgid "" +"If empty GID number will be generated automaticly depending on your " +"configuration settings." +msgstr "" +"If empty GID number will be generated automaticly depending on your " +"configuration settings." + +#: ../lib/modules/qmailUser.inc:236 +msgid "If empty GID number will be generated automaticly." +msgstr "If empty GID number will be generated automaticly." + +#: ../lib/modules/qmailUser.inc:232 ../lib/modules/posixAccount.inc:462 +msgid "If empty UID number will be generated automaticly." +msgstr "If empty UID number will be generated automaticly." + +#: ../lib/modules/ppolicy.inc:125 +msgid "" +"If enabled the user will not be allowed to login after there have been a " +"specified number of consecutive failed login attempts." +msgstr "" +"If enabled the user will not be allowed to login after there have been a " +"specified number of consecutive failed login attempts." + +#: ../help/help.inc:127 +msgid "" +"If enabled then LAM will use user and password that is provided by the web " +"server via HTTP authentication." +msgstr "" +"If enabled then LAM will use user and password that is provided by the web " +"server via HTTP authentication." + +#: ../help/help.inc:104 +msgid "" +"If enabled then the default language will be enforced and cannot be chosen " +"by the user." +msgstr "" +"If enabled then the default language will be enforced and cannot be chosen " +"by the user." + +#: ../lib/modules/ppolicy.inc:129 +msgid "" +"If enabled users must change their passwords when they first login after a " +"password is set or reset by the administrator." +msgstr "" +"If enabled users must change their passwords when they first login after a " +"password is set or reset by the administrator." + +#: ../lib/modules/asteriskAccount.inc:216 +msgid "" +"If registration context is specified, Asterisk will dynamically create and " +"destroy a NoOp priority 1 extension for a given peer who registers or " +"unregisters with Asterisk." +msgstr "" +"If registration context is specified, Asterisk will dynamically create and " +"destroy a NoOp priority 1 extension for a given peer who registers or " +"unregisters with Asterisk." + +#: ../lib/modules/sambaDomain.inc:110 +msgid "If set then users need to login to change their password." +msgstr "If set then users need to login to change their password." + +#: ../lib/modules/sambaSamAccount.inc:271 +msgid "If set to \"true\" Unix password will also be used as Samba password." +msgstr "If set to \"true\" Unix password will also be used as Samba password." + +#: ../lib/modules/sambaSamAccount.inc:292 +msgid "If set to \"true\" account will be deactivated. (Setting D-Flag)" +msgstr "If set to \"true\" account will be deactivated. (Setting D-Flag)" + +#: ../lib/modules/sambaSamAccount.inc:277 +msgid "If set to \"true\" no password will be used." +msgstr "If set to \"true\" no password will be used." + +#: ../lib/modules/sambaSamAccount.inc:283 +msgid "If set to \"true\" password does not expire. (Setting X-Flag)" +msgstr "If set to \"true\" password does not expire. (Setting X-Flag)" + +#: ../lib/modules/qmailGroup.inc:197 +msgid "" +"If set to true then all incomming mails needs to come from a member of the " +"list." +msgstr "" +"If set to true then all incomming mails needs to come from a member of the " +"list." + +#: ../lib/modules/customFields.inc:125 +msgid "" +"If the LDAP attribute has no value then the checkbox is set to this value." +msgstr "" +"If the LDAP attribute has no value then the checkbox is set to this value." + +#: ../lib/modules/zarafaUser.inc:97 +msgid "" +"If the mailbox size reaches the soft quota limit, the user will not be able " +"to send email until the size of the mailbox is reduced." +msgstr "" +"If the mailbox size reaches the soft quota limit, the user will not be able " +"to send email until the size of the mailbox is reduced." + +#: ../lib/modules/passwordSelfReset.inc:149 +msgid "" +"If the user has a Samba 3 extension then the Samba password will also be " +"set. Otherwise, no action is taken." +msgstr "" +"If the user has a Samba 3 extension then the Samba password will also be " +"set. Otherwise, no action is taken." + +#: ../lib/modules/windowsUser.inc:145 ../lib/modules/windowsUser.inc:149 +msgid "If the user has multiple telephone numbers then please enter it here." +msgstr "If the user has multiple telephone numbers then please enter it here." + +#: ../lib/modules/pykotaPrinter.inc:120 ../lib/modules/pykotaPrinter.inc:124 +msgid "" +"If this entry should be a printer group then you can set the member names " +"here." +msgstr "" +"If this entry should be a printer group then you can set the member names " +"here." + +#: ../lib/modules/qmailGroup.inc:229 +msgid "" +"If this is set to true then an incomming mail needs to be approved by the " +"sender." +msgstr "" +"If this is set to true then an incomming mail needs to be approved by the " +"sender." + +#: ../lib/modules/qmailGroup.inc:144 ../lib/modules/qmailGroup.inc:148 +msgid "" +"If you enter one or more email addresses then mail delivery errors are " +"forwarded to these addresses instead of the sender of the original mail." +msgstr "" +"If you enter one or more email addresses then mail delivery errors are " +"forwarded to these addresses instead of the sender of the original mail." + +#: ../lib/modules/sambaSamAccount.inc:331 +msgid "" +"If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" +"If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../lib/modules/zarafaServer.inc:85 +msgid "" +"If you run Zarafa behind a reverse proxy then you can specify the server URL " +"here (e.g. \"https://zproxy.example.com:237/z1\")." +msgstr "" +"If you run Zarafa behind a reverse proxy then you can specify the server URL " +"here (e.g. \"https://zproxy.example.com:237/z1\")." + +#: ../lib/modules/passwordSelfReset.inc:141 +msgid "" +"If you select this option then the user is only authenticated by his email " +"address. LAM Pro will not ask for the answer to the security question. " +"Please handle with care." +msgstr "" +"If you select this option then the user is only authenticated by his email " +"address. LAM Pro will not ask for the answer to the security question. " +"Please handle with care." + +#: ../lib/modules/heimdalKerberos.inc:131 +msgid "If you set this option then the user cannot request TGT-based tickets." +msgstr "If you set this option then the user cannot request TGT-based tickets." + +#: ../lib/modules/mitKerberos.inc:175 ../lib/modules/heimdalKerberos.inc:149 +msgid "If you set this option then the user cannot request any tickets." +msgstr "If you set this option then the user cannot request any tickets." + +#: ../lib/modules/mitKerberos.inc:163 ../lib/modules/heimdalKerberos.inc:134 +msgid "" +"If you set this option then the user cannot request forwardable tickets." +msgstr "" +"If you set this option then the user cannot request forwardable tickets." + +#: ../lib/modules/mitKerberos.inc:160 ../lib/modules/heimdalKerberos.inc:143 +msgid "If you set this option then the user cannot request post-dated tickets." +msgstr "" +"If you set this option then the user cannot request post-dated tickets." + +#: ../lib/modules/mitKerberos.inc:169 ../lib/modules/heimdalKerberos.inc:137 +msgid "If you set this option then the user cannot request proxiable tickets." +msgstr "If you set this option then the user cannot request proxiable tickets." + +#: ../lib/modules/mitKerberos.inc:166 ../lib/modules/heimdalKerberos.inc:140 +msgid "If you set this option then the user cannot request renewable tickets." +msgstr "If you set this option then the user cannot request renewable tickets." + +#: ../lib/modules/mitKerberos.inc:187 ../lib/modules/heimdalKerberos.inc:146 +msgid "If you set this option then the user cannot request service tickets." +msgstr "If you set this option then the user cannot request service tickets." + +#: ../lib/modules/mitKerberos.inc:184 ../lib/modules/sambaSamAccount.inc:295 +#: ../lib/modules/windowsUser.inc:215 ../lib/modules/heimdalKerberos.inc:128 +#: ../help/help.inc:207 +msgid "" +"If you set this option then the user has to change his password at the next " +"login." +msgstr "" +"If you set this option then the user has to change his password at the next " +"login." + +#: ../lib/modules/mitKerberos.inc:181 +msgid "" +"If you set this option then the user must preauthenticate himself using a " +"hardware device." +msgstr "" +"If you set this option then the user must preauthenticate himself using a " +"hardware device." + +#: ../lib/modules/mitKerberos.inc:178 ../lib/modules/heimdalKerberos.inc:152 +msgid "If you set this option then the user must preauthenticate himself." +msgstr "If you set this option then the user must preauthenticate himself." + +#: ../lib/modules/mitKerberos.inc:190 ../lib/modules/heimdalKerberos.inc:155 +msgid "" +"If you set this option then this account is marked as password change " +"service." +msgstr "" +"If you set this option then this account is marked as password change " +"service." + +#: ../lib/modules/selfRegistration.inc:87 +msgid "" +"If you use the object class \"inetOrgPerson\" and do not provide the \"cn\" " +"attribute then LAM will set it to the user name value." +msgstr "" +"If you use the object class \"inetOrgPerson\" and do not provide the \"cn\" " +"attribute then LAM will set it to the user name value." + +#: ../help/help.inc:106 +msgid "" +"If you want to change the current preferences password, please enter it here." +msgstr "" +"If you want to change the current preferences password, please enter it here." + +#: ../help/help.inc:141 +msgid "" +"If you want to change your master configuration password, please enter it " +"here." +msgstr "" +"If you want to change your master configuration password, please enter it " +"here." + +#: ../lib/modules/sambaGroupMapping.inc:151 +msgid "If you want to use a well known RID you can select a well known group." +msgstr "If you want to use a well known RID you can select a well known group." + +#: ../help/help.inc:116 +msgid "" +"If your server runs on another port then add a comma and the port number " +"after the server." +msgstr "" +"If your server runs on another port then add a comma and the port number " +"after the server." + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:49 +msgid "Image not available" +msgstr "Image not available" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:292 +#: ../templates/3rdParty/pla/htdocs/import.php:45 +#: ../templates/3rdParty/pla/htdocs/import_form.php:19 +msgid "Import" +msgstr "Import" + +#: ../templates/pdfedit/pdfmain.php:215 ../templates/pdfedit/pdfmain.php:216 +#: ../help/help.inc:210 +msgid "Import PDF structures" +msgstr "Import PDF structures" + +#: ../templates/config/mainmanage.php:344 +msgid "Import from server" +msgstr "Import from server" + +#: ../templates/profedit/profilemain.php:203 +#: ../templates/profedit/profilemain.php:204 ../help/help.inc:192 +msgid "Import profiles" +msgstr "Import profiles" + +#: ../templates/pdfedit/pdfmain.php:109 +#: ../templates/profedit/profilemain.php:124 +msgid "Import successful" +msgstr "Import successful" + +#: ../templates/config/mainmanage.php:189 +msgid "Imported certificate from server." +msgstr "Imported certificate from server." + +#: ../templates/config/mainmanage.php:346 +msgid "Imports the certificate directly from your LDAP server." +msgstr "Imports the certificate directly from your LDAP server." + +#: ../lib/modules/pykotaPrinter.inc:108 +msgid "" +"In passthrough mode, users are allowed to print without any impact on their " +"quota or account balance." +msgstr "" +"In passthrough mode, users are allowed to print without any impact on their " +"quota or account balance." + +#: ../lib/modules/fixed_ip.inc:115 +msgid "Inactive hosts will not be able to get an address from the DHCP server." +msgstr "" +"Inactive hosts will not be able to get an address from the DHCP server." + +#: ../templates/3rdParty/pla/htdocs/export_form.php:87 +msgid "Include system attributes" +msgstr "Include system attributes" + +#: ../lib/tools/serverInfo.inc:53 +msgid "Information about the LDAP server." +msgstr "Information about the LDAP server." + +#: ../lib/modules/sambaSamAccount.inc:233 +#: ../lib/modules/sambaSamAccount.inc:360 +#: ../lib/modules/sambaSamAccount.inc:1513 +#: ../lib/modules/sambaSamAccount.inc:1923 +msgid "Inherit client startup configuration" +msgstr "Inherit client startup configuration" + +#: ../templates/schema/schema.php:396 ../templates/schema/schema.php:417 +msgid "Inherited from" +msgstr "Inherited from" + +#: ../templates/schema/schema.php:157 ../templates/schema/schema.php:353 +msgid "Inherits from" +msgstr "Inherits from" + +#: ../lib/modules/pykotaUser.inc:249 +msgid "Initial payment" +msgstr "Initial payment" + +#: ../lib/modules/sambaSamAccount.inc:234 +#: ../lib/modules/sambaSamAccount.inc:363 +#: ../lib/modules/sambaSamAccount.inc:1515 +#: ../lib/modules/sambaSamAccount.inc:1924 +msgid "Initial program" +msgstr "Initial program" + +#: ../lib/modules/windowsUser.inc:132 ../lib/modules/windowsUser.inc:302 +#: ../lib/modules/windowsUser.inc:503 ../lib/modules/windowsUser.inc:704 +#: ../lib/modules/windowsUser.inc:1591 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:172 ../lib/modules/inetOrgPerson.inc:321 +#: ../lib/modules/inetOrgPerson.inc:617 ../lib/modules/inetOrgPerson.inc:836 +#: ../lib/modules/inetOrgPerson.inc:1187 ../lib/modules/inetOrgPerson.inc:1190 +#: ../lib/modules/inetOrgPerson.inc:1917 ../lib/modules/inetOrgPerson.inc:2681 +#: ../lib/modules/inetOrgPerson.inc:3557 ../lib/modules/inetOrgPerson.inc:3589 +msgid "Initials" +msgstr "Initials" + +#: ../templates/serverInfo.php:282 ../templates/serverInfo.php:368 +msgid "Initiated" +msgstr "Initiated" + +#: ../lib/modules/quota.inc:57 ../lib/modules/systemQuotas.inc:105 +msgid "Inode hard quota" +msgstr "Inode hard quota" + +#: ../lib/modules/quota.inc:57 ../lib/modules/quota.inc:58 +#: ../lib/modules/systemQuotas.inc:105 ../lib/modules/systemQuotas.inc:106 +msgid "" +"Inode hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Inode hard quota contains invalid characters. Only natural numbers are " +"allowed." + +#: ../lib/modules/quota.inc:61 ../lib/modules/systemQuotas.inc:109 +msgid "Inode quota" +msgstr "Inode quota" + +#: ../lib/modules/quota.inc:55 ../lib/modules/systemQuotas.inc:103 +msgid "Inode soft quota" +msgstr "Inode soft quota" + +#: ../lib/modules/quota.inc:55 ../lib/modules/quota.inc:56 +#: ../lib/modules/systemQuotas.inc:103 ../lib/modules/systemQuotas.inc:104 +msgid "" +"Inode soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Inode soft quota contains invalid characters. Only natural numbers are " +"allowed." + +#: ../lib/modules/quota.inc:61 ../lib/modules/quota.inc:62 +#: ../lib/modules/systemQuotas.inc:109 ../lib/modules/systemQuotas.inc:110 +msgid "Inode soft quota must be smaller than inode hard quota." +msgstr "Inode soft quota must be smaller than inode hard quota." + +#: ../templates/selfService/adminMain.php:685 +msgid "Input fields" +msgstr "Input fields" + +#: ../lib/modules/asteriskAccount.inc:155 +#: ../lib/modules/asteriskAccount.inc:277 +#: ../lib/modules/asteriskAccount.inc:391 +#: ../lib/modules/asteriskAccount.inc:652 +#: ../lib/modules/asteriskAccount.inc:993 +#: ../lib/modules/asteriskAccount.inc:1255 +msgid "Insecure" +msgstr "Insecure" + +#: ../lib/modules/sambaSamAccount.inc:95 +msgid "Inserted user or group name in home path." +msgstr "Inserted user or group name in home path." + +#: ../lib/modules/sambaSamAccount.inc:101 +msgid "Inserted user or group name in logon script." +msgstr "Inserted user or group name in logon script." + +#: ../lib/modules/sambaSamAccount.inc:98 +msgid "Inserted user or group name in profile path." +msgstr "Inserted user or group name in profile path." + +#: ../lib/modules/fixed_ip.inc:475 +msgid "Invalid MAC address." +msgstr "Invalid MAC address." + +#: ../templates/massBuildAccounts.php:201 +msgid "Invalid RDN attribute!" +msgstr "Invalid RDN attribute!" + +#: ../templates/3rdParty/pla/htdocs/rename.php:42 +msgid "Invalid RDN value" +msgstr "Invalid RDN value" + +#: ../lib/modules/fixed_ip.inc:484 +msgid "Invalid description." +msgstr "Invalid description." + +#: ../templates/3rdParty/pla/lib/import_functions.php:560 +msgid "Invalid entry" +msgstr "Invalid entry" + +#: ../lib/modules/selfRegistration.inc:121 +msgid "Invalid format for the specification of additional attributes." +msgstr "Invalid format for the specification of additional attributes." + +#: ../lib/modules/imapAccess.inc:185 +msgid "Invalid password for IMAP admin or other problem occured." +msgstr "Invalid password for IMAP admin or other problem occured." + +#: ../lib/modules/ldapPublicKey.inc:546 ../lib/modules/inetOrgPerson.inc:3287 +#: ../lib/modules/customFields.inc:1403 +msgid "Invalid request" +msgstr "Invalid request" + +#: ../templates/config/mainmanage.php:198 +msgid "Invalid server name. Please enter \"server\" or \"server:port\"." +msgstr "Invalid server name. Please enter \"server\" or \"server:port\"." + +#: ../lib/modules/passwordSelfReset.inc:914 +#: ../lib/modules/passwordSelfReset.inc:1136 +#, php-format +msgid "Invalid value in field \"%s\"." +msgstr "Invalid value in field \"%s\"." + +#: ../lib/modules/kolabUser.inc:117 ../lib/modules/kolabUser.inc:124 +#: ../lib/modules/kolabUser.inc:186 ../lib/modules/kolabUser.inc:230 +#: ../lib/modules/kolabUser.inc:315 ../lib/modules/kolabUser.inc:756 +#: ../lib/modules/kolabUser.inc:885 +msgid "Invitation policy" +msgstr "Invitation policy" + +#: ../lib/modules/kolabUser.inc:128 +msgid "Invitation policy list" +msgstr "Invitation policy list" + +#: ../lib/modules/sambaSamAccount.inc:569 +msgid "Islamabad, Karachi" +msgstr "Islamabad, Karachi" + +#: ../lib/modules/range.inc:116 +msgid "It is not possible to delete all ranges." +msgstr "It is not possible to delete all ranges." + +#: ../lib/modules/posixGroup.inc:600 ../lib/modules/posixAccount.inc:105 +msgid "" +"It is possible that this ID-number is reused. This can cause several " +"problems because files with old permissions might still exist. To avoid this " +"warning set maxUID to a higher value." +msgstr "" +"It is possible that this ID-number is reused. This can cause several " +"problems because files with old permissions might still exist. To avoid this " +"warning set maxUID to a higher value." + +#: ../lib/modules/pykotaUser.inc:284 ../lib/modules/pykotaUser.inc:387 +#: ../lib/modules/pykotaUser.inc:1021 +msgid "Job history" +msgstr "Job history" + +#: ../lib/modules/pykotaUser.inc:156 ../lib/modules/pykotaUser.inc:289 +#: ../lib/modules/pykotaUser.inc:295 ../lib/modules/pykotaUser.inc:327 +msgid "Job suffix" +msgstr "Job suffix" + +#: ../lib/modules/inetOrgPerson.inc:89 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:226 ../lib/modules/inetOrgPerson.inc:337 +#: ../lib/modules/inetOrgPerson.inc:590 ../lib/modules/inetOrgPerson.inc:636 +#: ../lib/modules/inetOrgPerson.inc:640 ../lib/modules/inetOrgPerson.inc:1438 +#: ../lib/modules/inetOrgPerson.inc:1441 ../lib/modules/inetOrgPerson.inc:1891 +#: ../lib/modules/inetOrgPerson.inc:2692 ../lib/modules/inetOrgPerson.inc:3539 +#: ../lib/modules/inetOrgPerson.inc:3585 +msgid "Job title" +msgstr "Job title" + +#: ../lib/modules/inetOrgPerson.inc:637 ../lib/modules/inetOrgPerson.inc:641 +msgid "Job title of user: President, department manager, ..." +msgstr "Job title of user: President, department manager, ..." + +#: ../lib/lists.inc:297 +msgid "Jump 10 pages backward" +msgstr "Jump 10 pages backward" + +#: ../lib/lists.inc:317 +msgid "Jump 10 pages forward" +msgstr "Jump 10 pages forward" + +#: ../templates/schema/schema.php:255 +msgid "Jump to a matching rule" +msgstr "Jump to a matching rule" + +#: ../templates/schema/schema.php:114 +msgid "Jump to an attribute type" +msgstr "Jump to an attribute type" + +#: ../templates/schema/schema.php:308 ../templates/schema/schema.php:358 +#: ../templates/schema/schema.php:373 +msgid "Jump to an object class" +msgstr "Jump to an object class" + +#: ../lib/lists.inc:292 +msgid "Jump to first page" +msgstr "Jump to first page" + +#: ../lib/lists.inc:322 +msgid "Jump to last page" +msgstr "Jump to last page" + +#: ../lib/modules/mitKerberos.inc:94 ../lib/modules/heimdalKerberos.inc:81 +msgid "Kerberos" +msgstr "Kerberos" + +#: ../lib/modules/kolabGroup.inc:74 ../lib/modules/kolabUser.inc:80 +msgid "Kolab" +msgstr "Kolab" + +#: ../lib/modules/kolabSharedFolder.inc:82 +msgid "Kolab shared folder" +msgstr "Kolab shared folder" + +#: ../lib/types/kolabSharedFolderType.inc:53 +msgid "Kolab shared folders" +msgstr "Kolab shared folders" + +#: ../lib/types/kolabSharedFolderType.inc:62 +msgid "Kolab shared folders (e.g. mail folders)" +msgstr "Kolab shared folders (e.g. mail folders)" + +#: ../lib/modules/posixGroup.inc:517 +msgid "" +"LAM checks if the entered group name and GID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique group names or " +"GIDs." +msgstr "" +"LAM checks if the entered group name and GID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique group names or " +"GIDs." + +#: ../lib/modules/posixAccount.inc:490 +msgid "" +"LAM checks if the entered user name and UID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique user names or " +"UIDs." +msgstr "" +"LAM checks if the entered user name and UID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique user names or " +"UIDs." + +#: ../templates/login.php:265 ../templates/config/index.php:85 +msgid "LAM configuration" +msgstr "LAM configuration" + +#: ../templates/massBuildAccounts.php:239 +msgid "LAM has checked your input and is now ready to create the accounts." +msgstr "LAM has checked your input and is now ready to create the accounts." + +#: ../lib/modules/posixGroup.inc:505 ../lib/modules/posixAccount.inc:458 +#: ../lib/modules/inetOrgPerson.inc:813 ../lib/modules/customFields.inc:137 +msgid "" +"LAM supports CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 and SMD5 to generate the " +"hash value of passwords. SSHA and CRYPT are the most common but CRYPT does " +"not support passwords greater than 8 letters. We do not recommend to use " +"plain text passwords." +msgstr "" +"LAM supports CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 and SMD5 to generate the " +"hash value of passwords. SSHA and CRYPT are the most common but CRYPT does " +"not support passwords greater than 8 letters. We do not recommend to use " +"plain text passwords." + +#: ../templates/tests/index.php:50 +msgid "LAM tests" +msgstr "LAM tests" + +#: ../lib/modules/imapAccess.inc:128 +msgid "LAM user password" +msgstr "LAM user password" + +#: ../templates/massDoUpload.php:132 +#, php-format +msgid "LAM was unable to create account %s! An LDAP error occured." +msgstr "LAM was unable to create account %s! An LDAP error occured." + +#: ../lib/modules/sambaGroupMapping.inc:603 +msgid "LAM was unable to find a Samba 3 domain with this name!" +msgstr "LAM was unable to find a Samba 3 domain with this name!" + +#: ../lib/modules/sambaSamAccount.inc:118 +msgid "LAM was unable to find a domain with this name!" +msgstr "LAM was unable to find a domain with this name!" + +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/windowsUser.inc:1449 +msgid "LAM was unable to find a group with this name!" +msgstr "LAM was unable to find a group with this name!" + +#: ../lib/modules/posixAccount.inc:2330 ../lib/modules/posixAccount.inc:2391 +#: ../lib/modules/windowsUser.inc:1535 ../lib/modules/groupOfNamesUser.inc:454 +#, php-format +msgid "LAM was unable to modify group memberships for group: %s" +msgstr "LAM was unable to modify group memberships for group: %s" + +#: ../lib/modules/organizationalRoleUser.inc:397 +#, php-format +msgid "LAM was unable to modify memberships for role: %s" +msgstr "LAM was unable to modify memberships for role: %s" + +#: ../lib/modules/posixGroup.inc:521 ../lib/modules/posixAccount.inc:498 +msgid "" +"LAM will automatically suggest UID/GID numbers. You can either use a fixed " +"range of numbers or an LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "" +"LAM will automatically suggest UID/GID numbers. You can either use a fixed " +"range of numbers or an LDAP entry with object class \"sambaUnixIdPool\"." + +#: ../help/help.inc:219 +msgid "LAM will search for accounts in this part of the LDAP tree." +msgstr "LAM will search for accounts in this part of the LDAP tree." + +#: ../lib/modules/posixAccount.inc:437 +msgid "" +"LAM will suggest a user name based on e.g. first and last name. Here you can " +"specify the suggestion. %sn% will be replaced by the last name. @givenname@ " +"will be replaced by the first character of first name. Only attributes of " +"tab Personal may be used." +msgstr "" +"LAM will suggest a user name based on e.g. first and last name. Here you can " +"specify the suggestion. %sn% will be replaced by the last name. @givenname@ " +"will be replaced by the first character of first name. Only attributes of " +"tab Personal may be used." + +#: ../help/help.inc:221 +msgid "" +"LAM will use this LDAP DN and password to search for accounts. It is " +"sufficient to specify an account with read rights. If nothing is inserted " +"then LAM will try to connect anonymously." +msgstr "" +"LAM will use this LDAP DN and password to search for accounts. It is " +"sufficient to specify an account with read rights. If nothing is inserted " +"then LAM will try to connect anonymously." + +#: ../lib/modules/qmailUser.inc:57 +msgid "LDAP + program" +msgstr "LDAP + program" + +#: ../templates/config/confmodules.php:97 ../templates/config/confmain.php:127 +#: ../templates/config/moduleSettings.php:96 +#: ../templates/config/conftypes.php:115 +msgid "LDAP Account Manager Configuration" +msgstr "LDAP Account Manager Configuration" + +#: ../templates/multiEdit.php:198 ../templates/config/conftypes.php:386 +msgid "LDAP Suffix is invalid!" +msgstr "LDAP Suffix is invalid!" + +#: ../templates/serverInfo.php:182 +msgid "LDAP entries" +msgstr "LDAP entries" + +#: ../lib/modules/qmailGroup.inc:173 ../lib/modules/qmailGroup.inc:177 +msgid "LDAP entries that are allowed to send to this list." +msgstr "LDAP entries that are allowed to send to this list." + +#: ../lib/modules/qmailGroup.inc:157 ../lib/modules/qmailGroup.inc:161 +msgid "LDAP entries that are member of this list." +msgstr "LDAP entries that are member of this list." + +#: ../lib/modules/qmailGroup.inc:165 ../lib/modules/qmailGroup.inc:169 +msgid "LDAP entries that moderate this list (e.g. approve mails)." +msgstr "LDAP entries that moderate this list (e.g. approve mails)." + +#: ../templates/login.php:642 ../lib/account.inc:1204 +msgid "LDAP error, server says:" +msgstr "LDAP error, server says:" + +#: ../templates/multiEdit.php:115 ../templates/config/confmain.php:438 +#: ../help/help.inc:271 +msgid "LDAP filter" +msgstr "LDAP filter" + +#: ../lib/modules/qmailGroup.inc:189 ../lib/modules/qmailGroup.inc:193 +msgid "" +"LDAP filter to specify allowed senders of this list (e.g. " +"\"((objectclass=qmailUser)(employeeType=manager))\")." +msgstr "" +"LDAP filter to specify allowed senders of this list (e.g. " +"\"((objectclass=qmailUser)(employeeType=manager))\")." + +#: ../lib/modules/qmailGroup.inc:181 ../lib/modules/qmailGroup.inc:185 +msgid "" +"LDAP filter to specify members of this list (e.g. \"((objectclass=qmailUser)" +"(employeeType=accountant))\")." +msgstr "" +"LDAP filter to specify members of this list (e.g. \"((objectclass=qmailUser)" +"(employeeType=accountant))\")." + +#: ../lib/modules.inc:1328 +msgid "LDAP operation successful." +msgstr "LDAP operation successful." + +#: ../templates/selfService/adminMain.php:464 +msgid "LDAP password" +msgstr "LDAP password" + +#: ../templates/3rdParty/pla/lib/functions.php:1894 +msgid "LDAP said" +msgstr "LDAP said" + +#: ../templates/config/confmain.php:415 ../help/help.inc:122 +msgid "LDAP search" +msgstr "LDAP search" + +#: ../templates/selfService/adminMain.php:459 ../help/help.inc:222 +msgid "LDAP search attribute" +msgstr "LDAP search attribute" + +#: ../lib/account.inc:796 +msgid "LDAP search failed! Please check your preferences." +msgstr "LDAP search failed! Please check your preferences." + +#: ../templates/config/confmain.php:253 ../help/help.inc:124 +msgid "LDAP search limit" +msgstr "LDAP search limit" + +#: ../templates/login.php:460 +msgid "LDAP server" +msgstr "LDAP server" + +#: ../lib/account.inc:787 +msgid "LDAP sizelimit exceeded, not all entries are shown." +msgstr "LDAP sizelimit exceeded, not all entries are shown." + +#: ../templates/multiEdit.php:82 ../templates/config/confmain.php:434 +#: ../templates/config/conftypes.php:252 +#: ../templates/selfService/adminMain.php:453 +#: ../templates/profedit/profilepage.php:202 ../help/help.inc:71 +#: ../help/help.inc:218 ../help/help.inc:269 +msgid "LDAP suffix" +msgstr "LDAP suffix" + +#: ../templates/massDoUpload.php:86 +msgid "LDAP upload in progress. Please wait." +msgstr "LDAP upload in progress. Please wait." + +#: ../templates/selfService/adminMain.php:461 +msgid "LDAP user" +msgstr "LDAP user" + +#: ../help/help.inc:220 +msgid "LDAP user and password" +msgstr "LDAP user and password" + +#: ../templates/serverInfo.php:109 +msgid "LDAP version" +msgstr "LDAP version" + +#: ../templates/3rdParty/pla/lib/export_functions.php:442 +msgid "LDIF Export" +msgstr "LDIF Export" + +#: ../templates/multiEdit.php:443 +msgid "LDIF file" +msgstr "LDIF file" + +#: ../templates/3rdParty/pla/lib/import_functions.php:149 +#: ../templates/3rdParty/pla/htdocs/import.php:71 +msgid "LDIF import" +msgstr "LDIF import" + +#: ../templates/3rdParty/pla/lib/import_functions.php:170 +msgid "LDIF import only supports version 1" +msgstr "LDIF import only supports version 1" + +#: ../lib/modules/customFields.inc:88 ../lib/modules/customFields.inc:513 +#: ../lib/modules/customFields.inc:1051 ../lib/modules/customFields.inc:1705 +#: ../lib/modules/customFields.inc:2960 +msgid "Label" +msgstr "Label" + +#: ../templates/tests/lamdaemonTest.php:201 +msgid "" +"Lamdaemon path does not end with \".pl\". Did you enter the full path to the " +"script?" +msgstr "" +"Lamdaemon path does not end with \".pl\". Did you enter the full path to the " +"script?" + +#: ../templates/tests/lamdaemonTest.php:185 +msgid "Lamdaemon server and path" +msgstr "Lamdaemon server and path" + +#: ../templates/config/confmain.php:334 +msgid "Lamdaemon settings" +msgstr "Lamdaemon settings" + +#: ../templates/tests/lamdaemonTest.php:135 +msgid "Lamdaemon successfully run." +msgstr "Lamdaemon successfully run." + +#: ../templates/tests/index.php:52 ../templates/tests/lamdaemonTest.php:52 +#: ../lib/tools/tests.inc:110 +msgid "Lamdaemon test" +msgstr "Lamdaemon test" + +#: ../templates/tests/lamdaemonTest.php:291 +msgid "Lamdaemon test finished." +msgstr "Lamdaemon test finished." + +#: ../templates/tests/lamdaemonTest.php:273 +msgid "Lamdaemon version" +msgstr "Lamdaemon version" + +#: ../templates/tests/lamdaemonTest.php:283 +msgid "Lamdaemon: Quota module installed" +msgstr "Lamdaemon: Quota module installed" + +#: ../templates/tests/lamdaemonTest.php:279 +msgid "Lamdaemon: check NSS LDAP" +msgstr "Lamdaemon: check NSS LDAP" + +#: ../templates/tests/lamdaemonTest.php:286 +msgid "Lamdaemon: read quotas" +msgstr "Lamdaemon: read quotas" + +#: ../templates/login.php:397 +#: ../templates/selfService/selfServiceLogin.php:344 +msgid "Language" +msgstr "Language" + +#: ../templates/config/confmain.php:570 +msgid "Language is not defined!" +msgstr "Language is not defined!" + +#: ../templates/config/confmain.php:304 +msgid "Language settings" +msgstr "Language settings" + +#: ../lib/modules/mitKerberos.inc:144 ../lib/modules/mitKerberos.inc:256 +#: ../lib/modules/mitKerberos.inc:404 ../lib/modules/mitKerberos.inc:791 +msgid "Last login" +msgstr "Last login" + +#: ../lib/types/user.inc:97 ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:219 ../lib/modules/windowsUser.inc:164 +#: ../lib/modules/windowsUser.inc:284 ../lib/modules/windowsUser.inc:511 +#: ../lib/modules/windowsUser.inc:599 ../lib/modules/windowsUser.inc:701 +#: ../lib/modules/windowsUser.inc:1599 ../lib/modules/inetOrgPerson.inc:68 +#: ../lib/modules/inetOrgPerson.inc:156 ../lib/modules/inetOrgPerson.inc:312 +#: ../lib/modules/inetOrgPerson.inc:539 ../lib/modules/inetOrgPerson.inc:648 +#: ../lib/modules/inetOrgPerson.inc:1178 ../lib/modules/inetOrgPerson.inc:1181 +#: ../lib/modules/inetOrgPerson.inc:1893 ../lib/modules/inetOrgPerson.inc:2445 +#: ../lib/modules/inetOrgPerson.inc:3577 +msgid "Last name" +msgstr "Last name" + +#: ../lib/modules/windowsUser.inc:599 ../lib/modules/windowsUser.inc:600 +#: ../lib/modules/inetOrgPerson.inc:68 ../lib/modules/inetOrgPerson.inc:69 +msgid "Last name contains invalid characters or is empty!" +msgstr "Last name contains invalid characters or is empty!" + +#: ../lib/modules/windowsUser.inc:165 ../lib/modules/inetOrgPerson.inc:649 +msgid "Last name of user. Only letters, - and spaces are allowed." +msgstr "Last name of user. Only letters, - and spaces are allowed." + +#: ../lib/modules/mitKerberos.inc:140 ../lib/modules/mitKerberos.inc:255 +#: ../lib/modules/mitKerberos.inc:396 ../lib/modules/mitKerberos.inc:787 +#: ../lib/modules/sambaSamAccount.inc:396 +#: ../lib/modules/sambaSamAccount.inc:602 +#: ../lib/modules/sambaSamAccount.inc:1162 +#: ../lib/modules/sambaSamAccount.inc:2282 ../lib/modules/ppolicyUser.inc:87 +#: ../lib/modules/ppolicyUser.inc:136 ../lib/modules/ppolicyUser.inc:395 +#: ../lib/modules/shadowAccount.inc:167 ../lib/modules/shadowAccount.inc:201 +#: ../lib/modules/shadowAccount.inc:365 ../lib/modules/shadowAccount.inc:498 +#: ../lib/modules/shadowAccount.inc:668 +msgid "Last password change" +msgstr "Last password change" + +#: ../lib/modules/sambaSamAccount.inc:251 ../lib/modules/shadowAccount.inc:239 +msgid "Last password change (read-only)" +msgstr "Last password change (read-only)" + +#: ../lib/modules/asteriskAccount.inc:239 +#: ../lib/modules/asteriskAccount.inc:298 +#: ../lib/modules/asteriskAccount.inc:544 +#: ../lib/modules/asteriskAccount.inc:758 +#: ../lib/modules/asteriskAccount.inc:1014 +#: ../lib/modules/asteriskAccount.inc:1297 +msgid "Last qualify milliseconds" +msgstr "Last qualify milliseconds" + +#: ../lib/modules/dhcp_settings.inc:153 ../lib/modules/dhcp_settings.inc:209 +#: ../lib/modules/dhcp_settings.inc:224 ../lib/modules/dhcp_settings.inc:256 +#: ../lib/modules/dhcp_settings.inc:569 ../lib/modules/dhcp_settings.inc:675 +msgid "Lease time" +msgstr "Lease time" + +#: ../lib/modules/pykotaGroup.inc:125 ../lib/modules/pykotaGroup.inc:135 +#: ../lib/modules/pykotaGroup.inc:173 ../lib/modules/pykotaGroup.inc:182 +#: ../lib/modules/pykotaGroup.inc:227 ../lib/modules/pykotaGroup.inc:474 +#: ../lib/modules/pykotaUser.inc:128 ../lib/modules/pykotaUser.inc:166 +#: ../lib/modules/pykotaUser.inc:233 ../lib/modules/pykotaUser.inc:261 +#: ../lib/modules/pykotaUser.inc:397 ../lib/modules/pykotaUser.inc:898 +msgid "Limit type" +msgstr "Limit type" + +#: ../templates/3rdParty/pla/htdocs/import.php:102 +msgid "Line" +msgstr "Line" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:121 +msgid "Line ends" +msgstr "Line ends" + +#: ../lib/modules/selfRegistration.inc:57 +#: ../lib/modules/selfRegistration.inc:197 +#: ../lib/modules/passwordSelfReset.inc:100 +#: ../lib/modules/passwordSelfReset.inc:516 +msgid "Link text" +msgstr "Link text" + +#: ../templates/selfService/adminMain.php:394 +msgid "Link to self service login page for your users" +msgstr "Link to self service login page for your users" + +#: ../templates/config/conftypes.php:263 ../help/help.inc:87 +msgid "List attributes" +msgstr "List attributes" + +#: ../templates/config/conftypes.php:394 +msgid "List attributes are invalid!" +msgstr "List attributes are invalid!" + +#: ../lib/types/zarafaAddressListType.inc:91 +#: ../lib/modules/zarafaAddressList.inc:63 +#: ../lib/modules/zarafaAddressList.inc:104 +#: ../lib/modules/zarafaAddressList.inc:141 +#: ../lib/modules/zarafaAddressList.inc:168 +#: ../lib/modules/zarafaAddressList.inc:187 +#: ../lib/modules/zarafaAddressList.inc:331 +msgid "List name" +msgstr "List name" + +#: ../lib/modules/zarafaAddressList.inc:168 +msgid "List name already in use." +msgstr "List name already in use." + +#: ../lib/modules/sambaSamAccount.inc:315 +msgid "" +"List of Samba workstations the user is allowed to login. Empty means every " +"workstation." +msgstr "" +"List of Samba workstations the user is allowed to login. Empty means every " +"workstation." + +#: ../templates/config/confmain.php:564 +msgid "List of admin users is empty or invalid!" +msgstr "List of admin users is empty or invalid!" + +#: ../lib/modules/asteriskAccount.inc:204 +msgid "List of allowed codecs." +msgstr "List of allowed codecs." + +#: ../lib/modules/asteriskAccount.inc:200 +msgid "List of disallowed codecs." +msgstr "List of disallowed codecs." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:94 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:88 +msgid "List of entries to be deleted:" +msgstr "List of entries to be deleted:" + +#: ../templates/config/confmain.php:430 +msgid "List of valid users" +msgstr "List of valid users" + +#: ../templates/serverInfo.php:152 +msgid "Listeners" +msgstr "Listeners" + +#: ../lib/modules.inc:1233 ../help/help.inc:198 +msgid "Load profile" +msgstr "Load profile" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:279 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1226 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +msgid "Loading" +msgstr "Loading" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:303 +msgid "Loading export" +msgstr "Loading export" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:290 +msgid "Loading import" +msgstr "Loading import" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:497 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:233 +msgid "Loading search" +msgstr "Loading search" + +#: ../lib/modules/inetLocalMailRecipient.inc:72 +#: ../lib/modules/inetLocalMailRecipient.inc:154 +msgid "Local address" +msgstr "Local address" + +#: ../lib/modules/inetLocalMailRecipient.inc:76 +#: ../lib/modules/inetLocalMailRecipient.inc:106 +#: ../lib/modules/inetLocalMailRecipient.inc:120 +#: ../lib/modules/inetLocalMailRecipient.inc:293 +msgid "Local address list" +msgstr "Local address list" + +#: ../lib/modules/sambaGroupMapping.inc:72 +msgid "Local group" +msgstr "Local group" + +#: ../lib/modules/sambaGroupMapping.inc:115 +#: ../lib/modules/sambaGroupMapping.inc:166 +#: ../lib/modules/sambaGroupMapping.inc:388 +#: ../lib/modules/sambaGroupMapping.inc:555 +msgid "Local members" +msgstr "Local members" + +#: ../lib/types/host.inc:97 ../lib/modules/ipHost.inc:73 +#: ../lib/modules/ipHost.inc:91 ../lib/modules/ipHost.inc:105 +#: ../lib/modules/ipHost.inc:130 ../lib/modules/ipHost.inc:252 +#: ../lib/modules/windowsHost.inc:82 ../lib/modules/windowsHost.inc:106 +#: ../lib/modules/windowsHost.inc:121 ../lib/modules/windowsHost.inc:144 +#: ../lib/modules/windowsHost.inc:290 ../lib/modules/device.inc:77 +#: ../lib/modules/device.inc:109 ../lib/modules/device.inc:129 +#: ../lib/modules/device.inc:178 ../lib/modules/device.inc:419 +#: ../lib/modules/windowsUser.inc:136 ../lib/modules/windowsUser.inc:332 +#: ../lib/modules/windowsUser.inc:504 ../lib/modules/windowsUser.inc:546 +#: ../lib/modules/windowsUser.inc:711 ../lib/modules/windowsUser.inc:1592 +#: ../lib/modules/windowsUser.inc:1734 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:187 ../lib/modules/inetOrgPerson.inc:507 +#: ../lib/modules/inetOrgPerson.inc:554 ../lib/modules/inetOrgPerson.inc:772 +#: ../lib/modules/inetOrgPerson.inc:776 ../lib/modules/inetOrgPerson.inc:1252 +#: ../lib/modules/inetOrgPerson.inc:1255 ../lib/modules/inetOrgPerson.inc:1913 +#: ../lib/modules/inetOrgPerson.inc:2588 ../lib/modules/inetOrgPerson.inc:3517 +#: ../lib/modules/inetOrgPerson.inc:3579 +msgid "Location" +msgstr "Location" + +#: ../lib/modules/nisMailAliasUser.inc:93 +msgid "Location where new alias is stored." +msgstr "Location where new alias is stored." + +#: ../lib/types/user.inc:349 ../lib/types/user.inc:354 +msgid "Lock" +msgstr "Lock" + +#: ../templates/lists/changePassword.php:426 +#: ../templates/lists/changePassword.php:446 +#: ../templates/lists/changePassword.php:448 +#: ../lib/modules/ppolicyUser.inc:150 +msgid "Lock account" +msgstr "Lock account" + +#: ../templates/lists/changePassword.php:266 +msgid "Lock account?" +msgstr "Lock account?" + +#: ../lib/modules/posixGroup.inc:208 ../lib/modules/posixAccount.inc:338 +#: ../lib/modules/posixAccount.inc:1499 ../lib/modules/inetOrgPerson.inc:1559 +msgid "Lock password" +msgstr "Lock password" + +#: ../lib/types/ppolicyType.inc:83 ../lib/modules/ppolicy.inc:104 +#: ../lib/modules/ppolicy.inc:151 ../lib/modules/ppolicy.inc:171 +#: ../lib/modules/ppolicy.inc:264 ../lib/modules/ppolicy.inc:476 +#: ../lib/modules/sambaDomain.inc:133 ../lib/modules/sambaDomain.inc:198 +#: ../lib/modules/sambaDomain.inc:223 ../lib/modules/sambaDomain.inc:340 +#: ../lib/modules/sambaDomain.inc:610 +msgid "Lockout duration" +msgstr "Lockout duration" + +#: ../lib/modules/sambaDomain.inc:223 +msgid "Lockout duration must be are natural number." +msgstr "Lockout duration must be are natural number." + +#: ../lib/modules/ppolicyUser.inc:142 +msgid "Lockout time" +msgstr "Lockout time" + +#: ../lib/types/ppolicyType.inc:88 ../lib/modules/ppolicy.inc:124 +#: ../lib/modules/ppolicy.inc:150 ../lib/modules/ppolicy.inc:258 +#: ../lib/modules/ppolicy.inc:495 +msgid "Lockout users" +msgstr "Lockout users" + +#: ../lib/modules/sambaDomain.inc:121 ../lib/modules/sambaDomain.inc:195 +#: ../lib/modules/sambaDomain.inc:225 ../lib/modules/sambaDomain.inc:316 +#: ../lib/modules/sambaDomain.inc:607 +msgid "Lockout users after bad logon attempts" +msgstr "Lockout users after bad logon attempts" + +#: ../lib/modules/sambaDomain.inc:225 +msgid "Lockout users after bad logon attempts must be between 0 and 999." +msgstr "Lockout users after bad logon attempts must be between 0 and 999." + +#: ../templates/config/mainmanage.php:423 ../help/help.inc:150 +msgid "Log destination" +msgstr "Log destination" + +#: ../templates/config/mainmanage.php:409 ../help/help.inc:148 +msgid "Log level" +msgstr "Log level" + +#: ../templates/multiEdit.php:448 +msgid "Log output" +msgstr "Log output" + +#: ../templates/main_header.php:128 +#, php-format +msgid "Logged in as: %s" +msgstr "Logged in as: %s" + +#: ../templates/config/mainmanage.php:406 +msgid "Logging" +msgstr "Logging" + +#: ../templates/login.php:433 ../templates/config/conflogin.php:62 +#: ../templates/config/mainlogin.php:72 +#: ../templates/selfService/selfServiceLogin.php:227 +#: ../templates/selfService/selfServiceLogin.php:366 +#: ../templates/selfService/adminLogin.php:64 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:530 ../help/help.inc:56 +msgid "Login" +msgstr "Login" + +#: ../templates/selfService/adminMain.php:500 ../help/help.inc:224 +msgid "Login attribute label" +msgstr "Login attribute label" + +#: ../templates/selfService/adminMain.php:509 ../help/help.inc:226 +msgid "Login caption" +msgstr "Login caption" + +#: ../templates/config/confmain.php:417 ../help/help.inc:120 +msgid "Login method" +msgstr "Login method" + +#: ../lib/types/user.inc:99 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:324 ../lib/modules/posixAccount.inc:417 +#: ../lib/modules/posixAccount.inc:530 ../lib/modules/posixAccount.inc:1492 +#: ../lib/modules/posixAccount.inc:1757 ../lib/modules/posixAccount.inc:1855 +#: ../lib/modules/posixAccount.inc:2564 +msgid "Login shell" +msgstr "Login shell" + +#: ../lib/modules/posixAccount.inc:193 ../lib/modules/posixAccount.inc:248 +#: ../lib/modules/posixAccount.inc:493 +msgid "Login shells" +msgstr "Login shells" + +#: ../templates/pdfedit/pdfpage.php:453 +msgid "Logo" +msgstr "Logo" + +#: ../lib/pdfstruct.inc:300 +msgid "Logo file deleted." +msgstr "Logo file deleted." + +#: ../lib/pdfstruct.inc:292 +#, php-format +msgid "Logo is still in use by PDF structure \"%s\" in account type \"%s\"." +msgstr "Logo is still in use by PDF structure \"%s\" in account type \"%s\"." + +#: ../lib/modules/sambaDomain.inc:109 ../lib/modules/sambaDomain.inc:192 +#: ../lib/modules/sambaDomain.inc:290 ../lib/modules/sambaDomain.inc:616 +msgid "Logon for password change" +msgstr "Logon for password change" + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:339 +#: ../lib/modules/sambaSamAccount.inc:342 +#: ../lib/modules/sambaSamAccount.inc:526 +#: ../lib/modules/sambaSamAccount.inc:606 +#: ../lib/modules/sambaSamAccount.inc:1284 +#: ../lib/modules/sambaSamAccount.inc:1786 +msgid "Logon hours" +msgstr "Logon hours" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:223 +#: ../lib/modules/sambaSamAccount.inc:311 +#: ../lib/modules/sambaSamAccount.inc:510 +#: ../lib/modules/sambaSamAccount.inc:600 +#: ../lib/modules/sambaSamAccount.inc:1237 +#: ../lib/modules/sambaSamAccount.inc:1762 +#: ../lib/modules/sambaSamAccount.inc:1902 ../lib/modules/windowsUser.inc:209 +#: ../lib/modules/windowsUser.inc:424 ../lib/modules/windowsUser.inc:477 +#: ../lib/modules/windowsUser.inc:521 ../lib/modules/windowsUser.inc:613 +#: ../lib/modules/windowsUser.inc:756 ../lib/modules/windowsUser.inc:1628 +msgid "Logon script" +msgstr "Logon script" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:102 ../lib/modules/windowsUser.inc:613 +#: ../lib/modules/windowsUser.inc:614 +msgid "Logon script is invalid!" +msgstr "Logon script is invalid!" + +#: ../templates/selfService/selfServiceMain.php:63 +#: ../templates/selfService/selfServiceMain.php:419 +#: ../templates/main_header.php:135 +msgid "Logout" +msgstr "Logout" + +#: ../lib/modules/dhcp_settings.inc:98 +msgid "M-Node (0x04)" +msgstr "M-Node (0x04)" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ieee802device.inc:58 +#: ../lib/modules/ieee802device.inc:68 ../lib/modules/ieee802device.inc:79 +#: ../lib/modules/ieee802device.inc:106 ../lib/modules/fixed_ip.inc:102 +#: ../lib/modules/fixed_ip.inc:429 ../lib/modules/fixed_ip.inc:742 +msgid "MAC address" +msgstr "MAC address" + +#: ../lib/modules/ieee802device.inc:72 +msgid "MAC address list" +msgstr "MAC address list" + +#: ../lib/modules/ieee802device.inc:86 ../lib/modules/ieee802device.inc:162 +msgid "MAC addresses" +msgstr "MAC addresses" + +#: ../lib/modules/mitKerberos.inc:268 +msgid "MIT Kerberos password change command" +msgstr "MIT Kerberos password change command" + +#: ../lib/modules/bindDLZ.inc:110 ../lib/modules/bindDLZ.inc:281 +#: ../lib/modules/bindDLZ.inc:287 ../lib/modules/bindDLZ.inc:294 +#: ../lib/modules/bindDLZ.inc:483 ../lib/modules/bindDLZ.inc:502 +msgid "MX record" +msgstr "MX record" + +#: ../lib/modules/bindDLZ.inc:421 ../lib/modules/bindDLZ.inc:440 +#: ../lib/modules/bindDLZ.inc:1516 +msgid "MX records" +msgstr "MX records" + +#: ../lib/modules/sambaSamAccount.inc:575 +msgid "Magadan, Solomon Islands" +msgstr "Magadan, Solomon Islands" + +#: ../lib/types/mailAlias.inc:53 ../lib/modules/nisMailAliasUser.inc:70 +#: ../lib/modules/nisMailAlias.inc:69 +msgid "Mail aliases" +msgstr "Mail aliases" + +#: ../lib/modules/imapAccess.inc:100 ../lib/modules/imapAccess.inc:140 +msgid "Mail domains" +msgstr "Mail domains" + +#: ../lib/modules/inetLocalMailRecipient.inc:58 +msgid "Mail routing" +msgstr "Mail routing" + +#: ../lib/modules/selfRegistration.inc:615 +#: ../lib/modules/selfRegistration.inc:635 +#: ../lib/modules/passwordSelfReset.inc:1546 +#: ../lib/modules/passwordSelfReset.inc:1561 +#: ../lib/modules/passwordSelfReset.inc:1594 +msgid "Mail sending failed." +msgstr "Mail sending failed." + +#: ../lib/modules/bindDLZ.inc:139 ../lib/modules/bindDLZ.inc:143 +#: ../lib/modules/bindDLZ.inc:281 ../lib/modules/bindDLZ.inc:500 +#: ../lib/modules/bindDLZ.inc:917 ../lib/modules/bindDLZ.inc:1519 +#: ../lib/modules/kolabUser.inc:98 ../lib/modules/kolabSharedFolder.inc:98 +#: ../lib/modules/inetLocalMailRecipient.inc:80 +#: ../lib/modules/inetLocalMailRecipient.inc:85 +#: ../lib/modules/inetLocalMailRecipient.inc:112 +#: ../lib/modules/inetLocalMailRecipient.inc:121 +#: ../lib/modules/inetLocalMailRecipient.inc:148 +#: ../lib/modules/inetLocalMailRecipient.inc:294 +msgid "Mail server" +msgstr "Mail server" + +#: ../lib/modules/bindDLZ.inc:914 +msgid "Mail servers (\"MX\" records)" +msgstr "Mail servers (\"MX\" records)" + +#: ../lib/account.inc:1031 +#, php-format +msgid "Mail successfully sent to %s." +msgstr "Mail successfully sent to %s." + +#: ../lib/modules/asteriskAccount.inc:159 +#: ../lib/modules/asteriskAccount.inc:278 +#: ../lib/modules/asteriskAccount.inc:399 +#: ../lib/modules/asteriskAccount.inc:657 +#: ../lib/modules/asteriskAccount.inc:994 +#: ../lib/modules/asteriskAccount.inc:1257 +#: ../lib/modules/asteriskVoicemail.inc:95 +#: ../lib/modules/asteriskVoicemail.inc:138 +#: ../lib/modules/asteriskVoicemail.inc:158 +#: ../lib/modules/asteriskVoicemail.inc:245 +#: ../lib/modules/asteriskVoicemail.inc:369 ../lib/modules/imapAccess.inc:63 +#: ../lib/modules/imapAccess.inc:106 ../lib/modules/imapAccess.inc:243 +msgid "Mailbox" +msgstr "Mailbox" + +#: ../lib/modules/imapAccess.inc:252 +msgid "Mailbox already exists on IMAP server." +msgstr "Mailbox already exists on IMAP server." + +#: ../lib/modules/imapAccess.inc:259 +msgid "Mailbox does not exist on IMAP server." +msgstr "Mailbox does not exist on IMAP server." + +#: ../lib/modules/kolabUser.inc:148 ../lib/modules/kolabUser.inc:192 +#: ../lib/modules/kolabUser.inc:231 ../lib/modules/kolabUser.inc:297 +#: ../lib/modules/kolabUser.inc:300 ../lib/modules/kolabUser.inc:745 +#: ../lib/modules/kolabSharedFolder.inc:154 +#: ../lib/modules/kolabSharedFolder.inc:188 +#: ../lib/modules/kolabSharedFolder.inc:238 +#: ../lib/modules/kolabSharedFolder.inc:284 +#: ../lib/modules/kolabSharedFolder.inc:287 +#: ../lib/modules/kolabSharedFolder.inc:559 +msgid "Mailbox home server" +msgstr "Mailbox home server" + +#: ../lib/modules/kolabUser.inc:251 +msgid "Mailbox home server name is empty!" +msgstr "Mailbox home server name is empty!" + +#: ../lib/modules/kolabUser.inc:249 ../lib/modules/kolabUser.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:257 +#: ../lib/modules/kolabSharedFolder.inc:258 +msgid "Mailbox home server name is invalid!" +msgstr "Mailbox home server name is invalid!" + +#: ../lib/modules/kolabUser.inc:99 ../lib/modules/kolabUser.inc:174 +#: ../lib/modules/kolabUser.inc:199 ../lib/modules/kolabUser.inc:232 +#: ../lib/modules/kolabUser.inc:257 ../lib/modules/kolabUser.inc:310 +#: ../lib/modules/kolabUser.inc:772 +msgid "Mailbox quota" +msgstr "Mailbox quota" + +#: ../lib/types/mailAlias.inc:62 +msgid "Mailing aliases (e.g. NIS mail aliases)" +msgstr "Mailing aliases (e.g. NIS mail aliases)" + +#: ../lib/modules/nisMailAlias.inc:82 +msgid "Mails to this name are forwarded to the recipients." +msgstr "Mails to this name are forwarded to the recipients." + +#: ../templates/pdfedit/pdfpage.php:367 ../templates/pdfedit/pdfpage.php:678 +msgid "Main" +msgstr "Main" + +#: ../templates/selfService/adminMain.php:515 ../help/help.inc:228 +msgid "Main page caption" +msgstr "Main page caption" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:79 +msgid "Make sure your filter (above) will select all child records." +msgstr "Make sure your filter (above) will select all child records." + +#: ../lib/modules/inetOrgPerson.inc:1516 +msgid "Manage" +msgstr "Manage" + +#: ../templates/pdfedit/pdfmain.php:190 +msgid "Manage existing PDF structures" +msgstr "Manage existing PDF structures" + +#: ../templates/profedit/profilemain.php:175 +msgid "Manage existing profiles" +msgstr "Manage existing profiles" + +#: ../templates/pdfedit/pdfmain.php:232 +msgid "Manage logos" +msgstr "Manage logos" + +#: ../lib/modules/kolabUser.inc:112 ../lib/modules/kolabUser.inc:170 +msgid "Manage object class \"mailrecipient\"" +msgstr "Manage object class \"mailrecipient\"" + +#: ../lib/modules/sambaSamAccount.inc:1224 +msgid "Manage profile directory" +msgstr "Manage profile directory" + +#: ../templates/selfService/adminLogin.php:182 +msgid "Manage self service profiles" +msgstr "Manage self service profiles" + +#: ../templates/config/conflogin.php:192 +msgid "Manage server profiles" +msgstr "Manage server profiles" + +#: ../lib/modules/windowsHost.inc:86 ../lib/modules/windowsHost.inc:112 +#: ../lib/modules/windowsHost.inc:122 ../lib/modules/windowsHost.inc:146 +#: ../lib/modules/windowsHost.inc:295 ../lib/modules/windowsGroup.inc:146 +#: ../lib/modules/windowsGroup.inc:167 ../lib/modules/windowsGroup.inc:227 +#: ../lib/modules/windowsGroup.inc:268 ../lib/modules/windowsGroup.inc:352 +#: ../lib/modules/windowsGroup.inc:781 +msgid "Managed by" +msgstr "Managed by" + +#: ../templates/serverInfo.php:105 +msgid "Managed suffixes" +msgstr "Managed suffixes" + +#: ../lib/modules/ipHost.inc:77 ../lib/modules/ipHost.inc:97 +#: ../lib/modules/ipHost.inc:106 ../lib/modules/ipHost.inc:154 +#: ../lib/modules/ipHost.inc:253 ../lib/modules/inetOrgPerson.inc:361 +#: ../lib/modules/inetOrgPerson.inc:605 ../lib/modules/inetOrgPerson.inc:656 +#: ../lib/modules/inetOrgPerson.inc:660 ../lib/modules/inetOrgPerson.inc:1528 +#: ../lib/modules/inetOrgPerson.inc:1894 ../lib/modules/inetOrgPerson.inc:3549 +#: ../lib/modules/inetOrgPerson.inc:3587 +msgid "Manager" +msgstr "Manager" + +#: ../lib/tools/ouEditor.inc:53 +msgid "Manages OU objects in your LDAP tree." +msgstr "Manages OU objects in your LDAP tree." + +#: ../lib/modules/kolabUser.inc:52 +msgid "Manual" +msgstr "Manual" + +#: ../lib/modules/kolabUser.inc:54 +msgid "Manual if conflicts" +msgstr "Manual if conflicts" + +#: ../lib/modules/customScripts.inc:172 +msgid "Manual scripts" +msgstr "Manual scripts" + +#: ../lib/types/nisObjectType.inc:78 ../lib/modules/nisObject.inc:65 +#: ../lib/modules/nisObject.inc:96 ../lib/modules/nisObject.inc:112 +#: ../lib/modules/nisObject.inc:123 ../lib/modules/nisObject.inc:149 +#: ../lib/modules/nisObject.inc:210 +msgid "Mapping entry" +msgstr "Mapping entry" + +#: ../lib/modules/nisObject.inc:123 ../lib/modules/nisObject.inc:124 +msgid "" +"Mapping entry contains invalid characters. Only ASCII characters are allowed." +msgstr "" +"Mapping entry contains invalid characters. Only ASCII characters are allowed." + +#: ../lib/types/nisObjectType.inc:79 ../lib/modules/nisObject.inc:69 +#: ../lib/modules/nisObject.inc:89 ../lib/modules/nisObject.inc:113 +#: ../lib/modules/nisObject.inc:143 ../lib/modules/nisObject.inc:211 +msgid "Mapping name" +msgstr "Mapping name" + +#: ../lib/modules/kolabGroup.inc:213 ../lib/modules/kolabGroup.inc:293 +#: ../lib/modules/kolabUser.inc:388 ../lib/modules/kolabUser.inc:519 +#: ../lib/modules/kolabSharedFolder.inc:345 +#: ../lib/modules/kolabSharedFolder.inc:433 +msgid "Mark account for deletion" +msgstr "Mark account for deletion" + +#: ../lib/modules/kolabGroup.inc:113 ../lib/modules/kolabUser.inc:178 +#: ../lib/modules/kolabSharedFolder.inc:166 +msgid "Mark for deletion" +msgstr "Mark for deletion" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:44 +msgid "Mass delete" +msgstr "Mass delete" + +#: ../templates/config/profmanage.php:311 +#: ../templates/config/mainlogin.php:158 +#: ../templates/selfService/profManage.php:247 +#: ../templates/pdfedit/pdfmain.php:290 ../templates/pdfedit/pdfmain.php:337 +#: ../templates/profedit/profilemain.php:257 +#: ../templates/profedit/profilemain.php:305 ../help/help.inc:142 +msgid "Master password" +msgstr "Master password" + +#: ../templates/config/profmanage.php:54 +#: ../templates/selfService/profManage.php:40 +#: ../templates/pdfedit/pdfmain.php:106 ../templates/pdfedit/pdfmain.php:114 +#: ../templates/profedit/profilemain.php:121 +#: ../templates/profedit/profilemain.php:129 +msgid "Master password is wrong!" +msgstr "Master password is wrong!" + +#: ../templates/config/mainmanage.php:82 +msgid "Master passwords are different or empty!" +msgstr "Master passwords are different or empty!" + +#: ../templates/schema/schema.php:268 +msgid "Matching rule OID" +msgstr "Matching rule OID" + +#: ../templates/schema/schema.php:77 ../templates/schema/schema.php:78 +msgid "Matching rules" +msgstr "Matching rules" + +#: ../templates/serverInfo.php:173 +msgid "Max. file descriptors" +msgstr "Max. file descriptors" + +#: ../lib/modules/posixGroup.inc:410 ../lib/modules/posixGroup.inc:604 +#: ../lib/modules/posixGroup.inc:605 +msgid "Maximum GID number" +msgstr "Maximum GID number" + +#: ../lib/modules/posixGroup.inc:604 +msgid "Maximum GID number is invalid or empty!" +msgstr "Maximum GID number is invalid or empty!" + +#: ../lib/modules/posixGroup.inc:605 +msgid "Maximum GID number must be greater than minimum GID number!" +msgstr "Maximum GID number must be greater than minimum GID number!" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:221 ../lib/modules/posixAccount.inc:239 +msgid "Maximum UID number" +msgstr "Maximum UID number" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +msgid "Maximum UID number is invalid!" +msgstr "Maximum UID number is invalid!" + +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +msgid "Maximum UID number must be greater than minimum UID number!" +msgstr "Maximum UID number must be greater than minimum UID number!" + +#: ../lib/types/ppolicyType.inc:84 ../lib/modules/ppolicy.inc:108 +#: ../lib/modules/ppolicy.inc:152 ../lib/modules/ppolicy.inc:172 +#: ../lib/modules/ppolicy.inc:272 ../lib/modules/ppolicy.inc:477 +msgid "Maximum failure count" +msgstr "Maximum failure count" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:128 +#: ../templates/3rdParty/pla/htdocs/import_form.php:36 +#: ../lib/modules/customFields.inc:156 ../lib/modules/customFields.inc:3299 +msgid "Maximum file size" +msgstr "Maximum file size" + +#: ../lib/modules/inetOrgPerson.inc:3614 +msgid "Maximum file size (kB)" +msgstr "Maximum file size (kB)" + +#: ../lib/modules/customFields.inc:3331 +msgid "Maximum file size must be a number. Please enter 0 for no limit." +msgstr "Maximum file size must be a number. Please enter 0 for no limit." + +#: ../lib/modules/inetOrgPerson.inc:3613 +msgid "Maximum height (px)" +msgstr "Maximum height (px)" + +#: ../lib/types/pykotaPrinterType.inc:95 ../lib/modules/pykotaPrinter.inc:103 +#: ../lib/modules/pykotaPrinter.inc:135 ../lib/modules/pykotaPrinter.inc:159 +#: ../lib/modules/pykotaPrinter.inc:195 ../lib/modules/pykotaPrinter.inc:213 +#: ../lib/modules/pykotaPrinter.inc:233 ../lib/modules/pykotaPrinter.inc:586 +msgid "Maximum job size" +msgstr "Maximum job size" + +#: ../lib/modules/dhcp_settings.inc:157 ../lib/modules/dhcp_settings.inc:210 +#: ../lib/modules/dhcp_settings.inc:225 ../lib/modules/dhcp_settings.inc:262 +#: ../lib/modules/dhcp_settings.inc:573 ../lib/modules/dhcp_settings.inc:676 +msgid "Maximum lease time" +msgstr "Maximum lease time" + +#: ../templates/schema/schema.php:214 +msgid "Maximum length" +msgstr "Maximum length" + +#: ../lib/lists.inc:1011 ../help/help.inc:97 +msgid "Maximum list entries" +msgstr "Maximum list entries" + +#: ../lib/modules/asteriskAccount.inc:196 +msgid "" +"Maximum number of seconds of inactivity before terminating a call on hold." +msgstr "" +"Maximum number of seconds of inactivity before terminating a call on hold." + +#: ../lib/types/ppolicyType.inc:79 ../lib/modules/shadowAccount.inc:59 +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/shadowAccount.inc:123 +#: ../lib/modules/shadowAccount.inc:172 ../lib/modules/shadowAccount.inc:189 +#: ../lib/modules/shadowAccount.inc:227 ../lib/modules/shadowAccount.inc:340 +#: ../lib/modules/shadowAccount.inc:504 ../lib/modules/ppolicy.inc:88 +#: ../lib/modules/ppolicy.inc:144 ../lib/modules/ppolicy.inc:167 +#: ../lib/modules/ppolicy.inc:168 ../lib/modules/ppolicy.inc:206 +#: ../lib/modules/ppolicy.inc:473 ../lib/modules/sambaDomain.inc:129 +#: ../lib/modules/sambaDomain.inc:197 ../lib/modules/sambaDomain.inc:220 +#: ../lib/modules/sambaDomain.inc:222 ../lib/modules/sambaDomain.inc:332 +#: ../lib/modules/sambaDomain.inc:609 +msgid "Maximum password age" +msgstr "Maximum password age" + +#: ../lib/modules/inetOrgPerson.inc:3612 +msgid "Maximum width (px)" +msgstr "Maximum width (px)" + +#: ../lib/modules/qmailGroup.inc:80 ../lib/modules/qmailGroup.inc:204 +#: ../lib/modules/qmailGroup.inc:208 ../lib/modules/qmailGroup.inc:337 +#: ../lib/modules/qmailGroup.inc:402 ../lib/modules/qmailGroup.inc:425 +#: ../lib/modules/qmailGroup.inc:514 ../lib/modules/qmailGroup.inc:1063 +msgid "Member email addresses" +msgstr "Member email addresses" + +#: ../lib/modules/qmailGroup.inc:78 ../lib/modules/qmailGroup.inc:156 +#: ../lib/modules/qmailGroup.inc:160 ../lib/modules/qmailGroup.inc:279 +#: ../lib/modules/qmailGroup.inc:381 ../lib/modules/qmailGroup.inc:516 +#: ../lib/modules/qmailGroup.inc:783 ../lib/modules/qmailGroup.inc:1062 +msgid "Member entries" +msgstr "Member entries" + +#: ../lib/modules/qmailGroup.inc:82 ../lib/modules/qmailGroup.inc:180 +#: ../lib/modules/qmailGroup.inc:184 ../lib/modules/qmailGroup.inc:303 +#: ../lib/modules/qmailGroup.inc:390 ../lib/modules/qmailGroup.inc:515 +#: ../lib/modules/qmailGroup.inc:1064 +msgid "Member filter" +msgstr "Member filter" + +#: ../lib/types/netgroup.inc:94 ../lib/modules/nisnetgroup.inc:95 +#: ../lib/modules/nisnetgroup.inc:99 ../lib/modules/nisnetgroup.inc:132 +#: ../lib/modules/nisnetgroup.inc:142 ../lib/modules/nisnetgroup.inc:286 +#: ../lib/modules/nisnetgroup.inc:583 ../lib/modules/organizationalRole.inc:93 +#: ../lib/modules/organizationalRole.inc:97 +#: ../lib/modules/organizationalRole.inc:130 +#: ../lib/modules/organizationalRole.inc:138 +#: ../lib/modules/organizationalRole.inc:193 +#: ../lib/modules/organizationalRole.inc:341 +#: ../lib/modules/organizationalRole.inc:461 +#: ../lib/modules/windowsGroup.inc:130 ../lib/modules/windowsGroup.inc:134 +#: ../lib/modules/windowsGroup.inc:211 ../lib/modules/windowsGroup.inc:260 +#: ../lib/modules/windowsGroup.inc:790 ../lib/modules/groupOfNames.inc:101 +#: ../lib/modules/groupOfNames.inc:105 ../lib/modules/groupOfNames.inc:151 +#: ../lib/modules/groupOfNames.inc:159 ../lib/modules/groupOfNames.inc:168 +#: ../lib/modules/groupOfNames.inc:247 ../lib/modules/groupOfNames.inc:553 +#: ../lib/modules/groupOfNames.inc:714 +msgid "Members" +msgstr "Members" + +#: ../lib/modules/groupOfNames.inc:109 ../lib/modules/groupOfNames.inc:179 +msgid "Members are optional" +msgstr "Members are optional" + +#: ../lib/modules/qmailGroup.inc:94 ../lib/modules/qmailGroup.inc:196 +#: ../lib/modules/qmailGroup.inc:319 ../lib/modules/qmailGroup.inc:396 +#: ../lib/modules/qmailGroup.inc:617 ../lib/modules/qmailGroup.inc:1075 +msgid "Members only" +msgstr "Members only" + +#: ../lib/modules/qmailUser.inc:108 ../lib/modules/qmailUser.inc:143 +#: ../lib/modules/qmailUser.inc:223 ../lib/modules/qmailUser.inc:316 +#: ../lib/modules/qmailUser.inc:412 ../lib/modules/qmailUser.inc:686 +#: ../lib/modules/qmailUser.inc:1145 +msgid "Message count limit" +msgstr "Message count limit" + +#: ../lib/modules/qmailUser.inc:110 ../lib/modules/qmailUser.inc:153 +#: ../lib/modules/qmailUser.inc:227 ../lib/modules/qmailUser.inc:324 +#: ../lib/modules/qmailUser.inc:415 ../lib/modules/qmailUser.inc:697 +#: ../lib/modules/qmailUser.inc:1146 +msgid "Message size limit" +msgstr "Message size limit" + +#: ../lib/modules/qmailUser.inc:120 ../lib/modules/qmailUser.inc:171 +#: ../lib/modules/qmailUser.inc:247 ../lib/modules/qmailUser.inc:366 +#: ../lib/modules/qmailUser.inc:430 ../lib/modules/qmailUser.inc:601 +#: ../lib/modules/qmailUser.inc:1149 ../lib/modules/qmailGroup.inc:139 +#: ../lib/modules/qmailGroup.inc:254 ../lib/modules/qmailGroup.inc:372 +#: ../lib/modules/qmailGroup.inc:508 ../lib/modules/qmailGroup.inc:1058 +msgid "Message store" +msgstr "Message store" + +#: ../lib/modules/sambaSamAccount.inc:562 +msgid "Mid-Atlantic" +msgstr "Mid-Atlantic" + +#: ../lib/modules/sambaSamAccount.inc:553 +msgid "Midway Island, Samoa" +msgstr "Midway Island, Samoa" + +#: ../lib/modules/windowsUser.inc:286 ../lib/modules/inetOrgPerson.inc:314 +msgid "Miller" +msgstr "Miller" + +#: ../lib/modules/sambaDomain.inc:101 ../lib/modules/sambaDomain.inc:190 +#: ../lib/modules/sambaDomain.inc:276 ../lib/modules/sambaDomain.inc:605 +msgid "Minimal password length" +msgstr "Minimal password length" + +#: ../lib/modules/posixGroup.inc:407 ../lib/modules/posixGroup.inc:603 +msgid "Minimum GID number" +msgstr "Minimum GID number" + +#: ../lib/modules/posixGroup.inc:603 +msgid "Minimum GID number is invalid or empty!" +msgstr "Minimum GID number is invalid or empty!" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:218 ../lib/modules/posixAccount.inc:236 +msgid "Minimum UID number" +msgstr "Minimum UID number" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +msgid "Minimum UID number is invalid!" +msgstr "Minimum UID number is invalid!" + +#: ../lib/modules/passwordSelfReset.inc:92 +#: ../lib/modules/passwordSelfReset.inc:514 +msgid "Minimum answer length" +msgstr "Minimum answer length" + +#: ../templates/config/mainmanage.php:392 +msgid "Minimum character classes" +msgstr "Minimum character classes" + +#: ../templates/config/mainmanage.php:388 +msgid "Minimum lowercase characters" +msgstr "Minimum lowercase characters" + +#: ../templates/config/mainmanage.php:390 +msgid "Minimum numeric characters" +msgstr "Minimum numeric characters" + +#: ../lib/types/ppolicyType.inc:78 ../lib/modules/shadowAccount.inc:57 +#: ../lib/modules/shadowAccount.inc:118 ../lib/modules/shadowAccount.inc:171 +#: ../lib/modules/shadowAccount.inc:185 ../lib/modules/shadowAccount.inc:221 +#: ../lib/modules/shadowAccount.inc:332 ../lib/modules/shadowAccount.inc:503 +#: ../lib/modules/ppolicy.inc:84 ../lib/modules/ppolicy.inc:143 +#: ../lib/modules/ppolicy.inc:166 ../lib/modules/ppolicy.inc:198 +#: ../lib/modules/ppolicy.inc:472 ../lib/modules/sambaDomain.inc:125 +#: ../lib/modules/sambaDomain.inc:196 ../lib/modules/sambaDomain.inc:221 +#: ../lib/modules/sambaDomain.inc:324 ../lib/modules/sambaDomain.inc:608 +msgid "Minimum password age" +msgstr "Minimum password age" + +#: ../templates/config/mainmanage.php:386 ../lib/types/ppolicyType.inc:87 +#: ../lib/modules/ppolicy.inc:120 ../lib/modules/ppolicy.inc:147 +#: ../lib/modules/ppolicy.inc:175 ../lib/modules/ppolicy.inc:250 +#: ../lib/modules/ppolicy.inc:480 +msgid "Minimum password length" +msgstr "Minimum password length" + +#: ../templates/config/mainmanage.php:391 +msgid "Minimum symbolic characters" +msgstr "Minimum symbolic characters" + +#: ../lib/modules/bindDLZ.inc:223 ../lib/modules/bindDLZ.inc:326 +#: ../lib/modules/bindDLZ.inc:427 ../lib/modules/bindDLZ.inc:525 +#: ../lib/modules/bindDLZ.inc:1030 ../lib/modules/bindDLZ.inc:1552 +msgid "Minimum time" +msgstr "Minimum time" + +#: ../templates/config/mainmanage.php:389 +msgid "Minimum uppercase characters" +msgstr "Minimum uppercase characters" + +#: ../templates/3rdParty/pla/lib/import_functions.php:429 +msgid "Missing attributes for" +msgstr "Missing attributes for" + +#: ../templates/3rdParty/pla/lib/import_functions.php:443 +msgid "Missing modify command add, delete or replace" +msgstr "Missing modify command add, delete or replace" + +#: ../lib/types/user.inc:207 ../lib/modules/inetOrgPerson.inc:74 +#: ../lib/modules/inetOrgPerson.inc:157 ../lib/modules/inetOrgPerson.inc:433 +#: ../lib/modules/inetOrgPerson.inc:578 ../lib/modules/inetOrgPerson.inc:704 +#: ../lib/modules/inetOrgPerson.inc:708 ../lib/modules/inetOrgPerson.inc:1398 +#: ../lib/modules/inetOrgPerson.inc:1401 ../lib/modules/inetOrgPerson.inc:1902 +#: ../lib/modules/inetOrgPerson.inc:3533 ../lib/modules/inetOrgPerson.inc:3583 +msgid "Mobile number" +msgstr "Mobile number" + +#: ../lib/modules/inetOrgPerson.inc:2500 +msgid "Mobile telephone number" +msgstr "Mobile telephone number" + +#: ../lib/modules/qmailGroup.inc:86 ../lib/modules/qmailGroup.inc:212 +#: ../lib/modules/qmailGroup.inc:216 ../lib/modules/qmailGroup.inc:345 +#: ../lib/modules/qmailGroup.inc:405 ../lib/modules/qmailGroup.inc:427 +#: ../lib/modules/qmailGroup.inc:517 ../lib/modules/qmailGroup.inc:1066 +msgid "Moderator email addresses" +msgstr "Moderator email addresses" + +#: ../lib/modules/qmailGroup.inc:84 ../lib/modules/qmailGroup.inc:164 +#: ../lib/modules/qmailGroup.inc:168 ../lib/modules/qmailGroup.inc:287 +#: ../lib/modules/qmailGroup.inc:384 ../lib/modules/qmailGroup.inc:518 +#: ../lib/modules/qmailGroup.inc:786 ../lib/modules/qmailGroup.inc:1065 +msgid "Moderator entries" +msgstr "Moderator entries" + +#: ../lib/modules/qmailGroup.inc:76 ../lib/modules/qmailGroup.inc:106 +#: ../lib/modules/qmailGroup.inc:200 ../lib/modules/qmailGroup.inc:329 +#: ../lib/modules/qmailGroup.inc:399 ../lib/modules/qmailGroup.inc:603 +#: ../lib/modules/qmailGroup.inc:1061 +msgid "Moderator text" +msgstr "Moderator text" + +#: ../lib/modules/qmailGroup.inc:201 +msgid "" +"Moderator text that is used to specify an own approval text used if the list " +"is moderated. The usual %HEADER% magic of qmail-reply etc. can be used here." +msgstr "" +"Moderator text that is used to specify an own approval text used if the list " +"is moderated. The usual %HEADER% magic of qmail-reply etc. can be used here." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:61 +msgid "Modification not successful!" +msgstr "Modification not successful!" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:59 +msgid "Modification successful!" +msgstr "Modification successful!" + +#: ../lib/modules/generalInformation.inc:92 +msgid "Modification time" +msgstr "Modification time" + +#: ../lib/modules/generalInformation.inc:88 +msgid "Modified by" +msgstr "Modified by" + +#: ../templates/serverInfo.php:314 ../templates/serverInfo.php:387 +#: ../templates/multiEdit.php:126 +msgid "Modify" +msgstr "Modify" + +#: ../templates/serverInfo.php:328 ../templates/serverInfo.php:393 +msgid "Modify RDN" +msgstr "Modify RDN" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:57 +msgid "Modify group" +msgstr "Modify group" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2110 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2111 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2114 +msgid "Modify group members" +msgstr "Modify group members" + +#: ../templates/3rdParty/pla/htdocs/import.php:32 +msgid "Modifying" +msgstr "Modifying" + +#: ../templates/config/confmodules.php:176 +#: ../templates/config/confmain.php:217 +#: ../templates/config/moduleSettings.php:175 +#: ../templates/config/conftypes.php:194 +#: ../templates/selfService/adminMain.php:435 +msgid "Module settings" +msgstr "Module settings" + +#: ../templates/config/confmodules.php:172 +#: ../templates/config/confmain.php:213 +#: ../templates/config/moduleSettings.php:171 +#: ../templates/config/conftypes.php:190 +msgid "Modules" +msgstr "Modules" + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Monday" +msgstr "Monday" + +#: ../lib/modules/sambaSamAccount.inc:557 +msgid "Mountain Time (US & Canada)" +msgstr "Mountain Time (US & Canada)" + +#: ../lib/modules/quota.inc:105 ../lib/modules/quota.inc:399 +#: ../lib/modules/quota.inc:506 ../lib/modules/quota.inc:633 +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:122 +#: ../lib/modules/systemQuotas.inc:382 +msgid "Mountpoint" +msgstr "Mountpoint" + +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:98 +msgid "Mountpoint contains invalid characters." +msgstr "Mountpoint contains invalid characters." + +#: ../lib/modules/quota.inc:106 +msgid "Mountpoint of device with enabled quotas." +msgstr "Mountpoint of device with enabled quotas." + +#: ../lib/modules/customFields.inc:636 +msgid "Move down" +msgstr "Move down" + +#: ../lib/modules/customFields.inc:630 +msgid "Move up" +msgstr "Move up" + +#: ../templates/multiEdit.php:78 ../lib/tools/multiEdit.inc:44 +msgid "Multi edit" +msgstr "Multi edit" + +#: ../lib/modules/customFields.inc:1910 ../lib/modules/customFields.inc:3304 +msgid "Multi value" +msgstr "Multi value" + +#: ../lib/modules/customFields.inc:3162 +msgid "Multi-select fields must not contain empty values." +msgstr "Multi-select fields must not contain empty values." + +#: ../lib/modules/pykotaPrinter.inc:125 +#: ../lib/modules/zarafaDynamicGroup.inc:76 ../lib/modules/zarafaGroup.inc:78 +#: ../lib/modules/eduPerson.inc:98 ../lib/modules/eduPerson.inc:111 +#: ../lib/modules/eduPerson.inc:123 ../lib/modules/eduPerson.inc:139 +#: ../lib/modules/eduPerson.inc:147 ../lib/modules/zarafaUser.inc:164 +#: ../lib/modules/sudoRole.inc:100 ../lib/modules/sudoRole.inc:105 +#: ../lib/modules/sudoRole.inc:110 ../lib/modules/sudoRole.inc:115 +#: ../lib/modules/sudoRole.inc:120 ../lib/modules/sudoRole.inc:125 +msgid "Multiple values are separated by comma." +msgstr "Multiple values are separated by comma." + +#: ../lib/modules/kolabGroup.inc:92 ../lib/modules/kolabGroup.inc:101 +#: ../lib/modules/kolabGroup.inc:110 ../lib/modules/nisMailAliasUser.inc:81 +#: ../lib/modules/nisMailAliasUser.inc:89 ../lib/modules/puppetClient.inc:85 +#: ../lib/modules/puppetClient.inc:97 ../lib/modules/puppetClient.inc:105 +#: ../lib/modules/device.inc:74 ../lib/modules/bindDLZ.inc:98 +#: ../lib/modules/bindDLZ.inc:107 ../lib/modules/bindDLZ.inc:112 +#: ../lib/modules/bindDLZ.inc:117 ../lib/modules/bindDLZ.inc:122 +#: ../lib/modules/bindDLZ.inc:127 ../lib/modules/bindDLZ.inc:132 +#: ../lib/modules/bindDLZ.inc:144 ../lib/modules/bindDLZ.inc:152 +#: ../lib/modules/bindDLZ.inc:160 ../lib/modules/bindDLZ.inc:168 +#: ../lib/modules/bindDLZ.inc:176 ../lib/modules/bindDLZ.inc:184 +#: ../lib/modules/bindDLZ.inc:192 ../lib/modules/bindDLZ.inc:200 +#: ../lib/modules/bindDLZ.inc:208 ../lib/modules/windowsUser.inc:149 +#: ../lib/modules/windowsUser.inc:185 ../lib/modules/windowsUser.inc:221 +#: ../lib/modules/windowsUser.inc:232 ../lib/modules/kolabUser.inc:158 +#: ../lib/modules/kolabUser.inc:167 ../lib/modules/inetOrgPerson.inc:641 +#: ../lib/modules/inetOrgPerson.inc:661 ../lib/modules/inetOrgPerson.inc:669 +#: ../lib/modules/inetOrgPerson.inc:677 ../lib/modules/inetOrgPerson.inc:685 +#: ../lib/modules/inetOrgPerson.inc:701 ../lib/modules/inetOrgPerson.inc:709 +#: ../lib/modules/inetOrgPerson.inc:717 ../lib/modules/inetOrgPerson.inc:725 +#: ../lib/modules/inetOrgPerson.inc:737 ../lib/modules/inetOrgPerson.inc:757 +#: ../lib/modules/inetOrgPerson.inc:769 ../lib/modules/inetOrgPerson.inc:777 +#: ../lib/modules/inetOrgPerson.inc:785 ../lib/modules/inetOrgPerson.inc:797 +#: ../lib/modules/inetOrgPerson.inc:805 ../lib/modules/inetOrgPerson.inc:821 +#: ../lib/modules/inetOrgPerson.inc:829 ../lib/modules/inetOrgPerson.inc:837 +#: ../lib/modules/systemQuotas.inc:70 ../lib/modules/freeRadius.inc:101 +#: ../lib/modules/kolabSharedFolder.inc:126 +#: ../lib/modules/kolabSharedFolder.inc:135 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/qmailGroup.inc:136 ../lib/modules/qmailGroup.inc:149 +#: ../lib/modules/qmailGroup.inc:161 ../lib/modules/qmailGroup.inc:169 +#: ../lib/modules/qmailGroup.inc:177 ../lib/modules/qmailGroup.inc:185 +#: ../lib/modules/qmailGroup.inc:193 ../lib/modules/qmailGroup.inc:209 +#: ../lib/modules/qmailGroup.inc:217 ../lib/modules/qmailGroup.inc:225 +#: ../lib/modules/groupOfNames.inc:98 +msgid "Multiple values are separated by semicolon." +msgstr "Multiple values are separated by semicolon." + +#: ../lib/modules/asteriskAccount.inc:207 +#: ../lib/modules/asteriskAccount.inc:290 +#: ../lib/modules/asteriskAccount.inc:486 +#: ../lib/modules/asteriskAccount.inc:717 +#: ../lib/modules/asteriskAccount.inc:1006 +#: ../lib/modules/asteriskAccount.inc:1281 +msgid "Music on hold" +msgstr "Music on hold" + +#: ../lib/modules/asteriskAccount.inc:208 +msgid "Music to play on hold." +msgstr "Music to play on hold." + +#: ../lib/modules/ipHost.inc:93 ../lib/modules/windowsHost.inc:108 +#: ../lib/modules/device.inc:111 ../lib/modules/windowsUser.inc:334 +#: ../lib/modules/inetOrgPerson.inc:395 ../lib/modules/inetOrgPerson.inc:403 +#: ../lib/modules/inetOrgPerson.inc:509 +msgid "MyCity" +msgstr "MyCity" + +#: ../lib/modules/windowsUser.inc:316 ../lib/modules/inetOrgPerson.inc:379 +msgid "Mystreetname 42" +msgstr "Mystreetname 42" + +#: ../lib/modules/asteriskAccount.inc:163 +#: ../lib/modules/asteriskAccount.inc:279 +#: ../lib/modules/asteriskAccount.inc:406 +#: ../lib/modules/asteriskAccount.inc:669 +#: ../lib/modules/asteriskAccount.inc:995 +#: ../lib/modules/asteriskAccount.inc:1259 +msgid "NAT" +msgstr "NAT" + +#: ../lib/modules/asteriskAccount.inc:164 +msgid "NAT setting for this account." +msgstr "NAT setting for this account." + +#: ../lib/modules/windowsUser.inc:772 ../lib/modules/windowsGroup.inc:370 +msgid "NIS" +msgstr "NIS" + +#: ../lib/modules/windowsUser.inc:256 ../lib/modules/windowsUser.inc:466 +#: ../lib/modules/windowsUser.inc:481 ../lib/modules/windowsUser.inc:535 +#: ../lib/modules/windowsUser.inc:567 ../lib/modules/windowsUser.inc:777 +#: ../lib/modules/windowsUser.inc:1606 ../lib/modules/windowsGroup.inc:154 +#: ../lib/modules/windowsGroup.inc:169 ../lib/modules/windowsGroup.inc:243 +#: ../lib/modules/windowsGroup.inc:251 ../lib/modules/windowsGroup.inc:274 +#: ../lib/modules/windowsGroup.inc:375 ../lib/modules/windowsGroup.inc:750 +msgid "NIS domain" +msgstr "NIS domain" + +#: ../lib/modules/windowsUser.inc:257 ../lib/modules/windowsGroup.inc:155 +msgid "NIS domain name." +msgstr "NIS domain name." + +#: ../lib/modules/windowsUser.inc:252 ../lib/modules/windowsUser.inc:458 +#: ../lib/modules/windowsUser.inc:532 ../lib/modules/windowsUser.inc:566 +#: ../lib/modules/windowsUser.inc:620 ../lib/modules/windowsUser.inc:774 +#: ../lib/modules/windowsUser.inc:1605 ../lib/modules/windowsGroup.inc:150 +#: ../lib/modules/windowsGroup.inc:168 ../lib/modules/windowsGroup.inc:235 +#: ../lib/modules/windowsGroup.inc:271 ../lib/modules/windowsGroup.inc:289 +#: ../lib/modules/windowsGroup.inc:372 ../lib/modules/windowsGroup.inc:749 +msgid "NIS name" +msgstr "NIS name" + +#: ../lib/modules/windowsUser.inc:620 ../lib/modules/windowsUser.inc:621 +#: ../lib/modules/windowsGroup.inc:289 ../lib/modules/windowsGroup.inc:290 +msgid "" +"NIS name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"NIS name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" + +#: ../lib/modules/nisnetgroup.inc:67 +msgid "NIS net group" +msgstr "NIS net group" + +#: ../lib/types/netgroup.inc:62 +msgid "NIS netgroup entries" +msgstr "NIS netgroup entries" + +#: ../lib/types/netgroup.inc:53 +msgid "NIS netgroups" +msgstr "NIS netgroups" + +#: ../lib/modules/nisObject.inc:47 +msgid "NIS object" +msgstr "NIS object" + +#: ../lib/types/nisObjectType.inc:155 +#, php-format +msgid "NIS object count: %s" +msgstr "NIS object count: %s" + +#: ../lib/types/nisObjectType.inc:48 +msgid "NIS object entries" +msgstr "NIS object entries" + +#: ../lib/types/nisObjectType.inc:39 +msgid "NIS objects" +msgstr "NIS objects" + +#: ../lib/modules/bindDLZ.inc:120 ../lib/modules/bindDLZ.inc:364 +#: ../lib/modules/bindDLZ.inc:370 ../lib/modules/bindDLZ.inc:489 +msgid "NS record" +msgstr "NS record" + +#: ../templates/serverInfo.php:147 ../templates/masscreate.php:294 +#: ../templates/masscreate.php:368 ../templates/schema/schema.php:268 +#: ../lib/types/automountType.inc:86 ../lib/types/automountType.inc:249 +#: ../lib/types/oracleContextType.inc:77 ../lib/types/ppolicyType.inc:77 +#: ../lib/types/bind.inc:190 ../lib/modules/device.inc:61 +#: ../lib/modules/device.inc:89 ../lib/modules/device.inc:120 +#: ../lib/modules/device.inc:170 ../lib/modules/device.inc:418 +#: ../lib/modules/nisObject.inc:61 ../lib/modules/nisObject.inc:81 +#: ../lib/modules/nisObject.inc:111 ../lib/modules/nisObject.inc:137 +#: ../lib/modules/nisObject.inc:209 ../lib/modules/ppolicy.inc:80 +#: ../lib/modules/ppolicy.inc:142 ../lib/modules/ppolicy.inc:165 +#: ../lib/modules/ppolicy.inc:190 ../lib/modules/ppolicy.inc:471 +#: ../lib/modules/automount.inc:64 ../lib/modules/automount.inc:80 +#: ../lib/modules/automount.inc:103 ../lib/modules/automount.inc:128 +#: ../lib/modules/automount.inc:181 ../lib/modules/kolabSharedFolder.inc:112 +#: ../lib/modules/kolabSharedFolder.inc:174 +#: ../lib/modules/kolabSharedFolder.inc:233 +#: ../lib/modules/kolabSharedFolder.inc:261 +#: ../lib/modules/kolabSharedFolder.inc:279 +#: ../lib/modules/kolabSharedFolder.inc:557 +#: ../lib/modules/asteriskExtension.inc:822 +#: ../lib/modules/oracleService.inc:61 ../lib/modules/oracleService.inc:77 +#: ../lib/modules/oracleService.inc:98 ../lib/modules/oracleService.inc:121 +#: ../lib/modules/oracleService.inc:170 ../lib/modules/customFields.inc:84 +#: ../lib/modules/customFields.inc:1041 ../lib/modules/customFields.inc:1688 +#: ../lib/modules/organizationalRole.inc:186 +#: ../lib/modules/groupOfNames.inc:232 +msgid "Name" +msgstr "Name" + +#: ../lib/modules/nisMailAliasUser.inc:97 +msgid "Name of new alias entry." +msgstr "Name of new alias entry." + +#: ../lib/modules/zarafaAddressList.inc:64 +msgid "Name of the address list which should be created." +msgstr "Name of the address list which should be created." + +#: ../lib/modules/bindDLZ.inc:155 ../lib/modules/bindDLZ.inc:159 +#: ../lib/modules/bindDLZ.inc:364 ../lib/modules/bindDLZ.inc:506 +#: ../lib/modules/bindDLZ.inc:1169 +msgid "Name server" +msgstr "Name server" + +#: ../lib/modules/bindDLZ.inc:431 ../lib/modules/bindDLZ.inc:1569 +msgid "Name servers" +msgstr "Name servers" + +#: ../lib/modules/bindDLZ.inc:1167 +msgid "Name servers (\"NS\" records)" +msgstr "Name servers (\"NS\" records)" + +#: ../help/help.inc:189 +msgid "" +"Name under which the profile will be saved. If a profile with the same name " +"exists, it will be overwritten." +msgstr "" +"Name under which the profile will be saved. If a profile with the same name " +"exists, it will be overwritten." + +#: ../lib/modules/namedObject.inc:45 +msgid "Named object" +msgstr "Named object" + +#: ../lib/modules/dhcp_settings.inc:193 ../lib/modules/dhcp_settings.inc:216 +#: ../lib/modules/dhcp_settings.inc:610 ../lib/modules/dhcp_settings.inc:686 +#: ../lib/modules/freeRadius.inc:88 ../lib/modules/freeRadius.inc:124 +#: ../lib/modules/freeRadius.inc:138 ../lib/modules/freeRadius.inc:201 +#: ../lib/modules/freeRadius.inc:228 ../lib/modules/freeRadius.inc:285 +#: ../lib/modules/freeRadius.inc:538 +msgid "Net mask" +msgstr "Net mask" + +#: ../lib/modules/dhcp_settings.inc:169 ../lib/modules/dhcp_settings.inc:213 +#: ../lib/modules/dhcp_settings.inc:228 ../lib/modules/dhcp_settings.inc:280 +#: ../lib/modules/dhcp_settings.inc:581 ../lib/modules/dhcp_settings.inc:679 +msgid "Netbios name servers" +msgstr "Netbios name servers" + +#: ../lib/modules/dhcp_settings.inc:173 ../lib/modules/dhcp_settings.inc:214 +#: ../lib/modules/dhcp_settings.inc:230 ../lib/modules/dhcp_settings.inc:286 +#: ../lib/modules/dhcp_settings.inc:591 ../lib/modules/dhcp_settings.inc:680 +msgid "Netbios node type" +msgstr "Netbios node type" + +#: ../lib/types/dhcp.inc:118 ../lib/types/dhcp.inc:172 +msgid "New DHCP" +msgstr "New DHCP" + +#: ../lib/types/bind.inc:100 ../lib/types/bind.inc:161 +msgid "New DNS entry" +msgstr "New DNS entry" + +#: ../lib/types/nisObjectType.inc:102 ../lib/types/nisObjectType.inc:157 +msgid "New NIS object" +msgstr "New NIS object" + +#: ../templates/ou_edit.php:77 +msgid "New OU created successfully." +msgstr "New OU created successfully." + +#: ../lib/modules/windowsUser.inc:340 ../lib/modules/inetOrgPerson.inc:517 +msgid "New York" +msgstr "New York" + +#: ../lib/types/zarafaAddressListType.inc:117 +#: ../lib/types/zarafaAddressListType.inc:146 +msgid "New address list" +msgstr "New address list" + +#: ../lib/types/mailAlias.inc:114 ../lib/types/mailAlias.inc:143 +#: ../lib/types/alias.inc:114 ../lib/types/alias.inc:143 +msgid "New alias" +msgstr "New alias" + +#: ../lib/types/automountType.inc:110 ../lib/types/automountType.inc:217 +msgid "New automount entry" +msgstr "New automount entry" + +#: ../lib/types/automountType.inc:233 ../lib/types/automountType.inc:234 +msgid "New automount map" +msgstr "New automount map" + +#: ../lib/types/pykotaBillingCodeType.inc:116 +#: ../lib/types/pykotaBillingCodeType.inc:165 +msgid "New billing code" +msgstr "New billing code" + +#: ../lib/types/oracleContextType.inc:101 +#: ../lib/types/oracleContextType.inc:188 +msgid "New database entry" +msgstr "New database entry" + +#: ../templates/config/profmanage.php:146 +msgid "New default profile set successfully." +msgstr "New default profile set successfully." + +#: ../lib/types/smbDomain.inc:114 ../lib/types/smbDomain.inc:169 +msgid "New domain" +msgstr "New domain" + +#: ../lib/types/asteriskExt.inc:117 ../lib/types/asteriskExt.inc:145 +msgid "New extension" +msgstr "New extension" + +#: ../templates/pdfedit/pdfpage.php:620 +msgid "New field" +msgstr "New field" + +#: ../lib/types/gon.inc:140 ../lib/types/gon.inc:204 +#: ../lib/types/zarafaDynamicGroupType.inc:119 +#: ../lib/types/zarafaDynamicGroupType.inc:167 ../lib/types/group.inc:163 +#: ../lib/types/group.inc:242 ../lib/types/netgroup.inc:116 +#: ../lib/types/netgroup.inc:171 +msgid "New group" +msgstr "New group" + +#: ../lib/types/host.inc:128 ../lib/types/host.inc:195 +msgid "New host" +msgstr "New host" + +#: ../lib/modules/inetLocalMailRecipient.inc:167 +msgid "New local address" +msgstr "New local address" + +#: ../templates/config/mainmanage.php:456 +msgid "New master password" +msgstr "New master password" + +#: ../templates/config/mainmanage.php:79 +msgid "New master password set successfully." +msgstr "New master password set successfully." + +#: ../lib/lists.inc:114 +msgid "New object" +msgstr "New object" + +#: ../templates/ou_edit.php:185 ../help/help.inc:263 +msgid "New organisational unit" +msgstr "New organisational unit" + +#: ../templates/config/confmain.php:451 +#: ../lib/modules/sambaSamAccount.inc:2265 +#: ../lib/modules/posixAccount.inc:2530 ../lib/modules/windowsUser.inc:1711 +#: ../lib/modules/passwordSelfReset.inc:1059 +msgid "New password" +msgstr "New password" + +#: ../templates/config/profmanage.php:133 +msgid "New password set successfully." +msgstr "New password set successfully." + +#: ../lib/types/ppolicyType.inc:122 ../lib/types/ppolicyType.inc:151 +msgid "New policy" +msgstr "New policy" + +#: ../lib/types/pykotaPrinterType.inc:117 +#: ../lib/types/pykotaPrinterType.inc:166 +msgid "New printer" +msgstr "New printer" + +#: ../templates/config/profmanage.php:261 +#: ../templates/selfService/profManage.php:222 +msgid "New profile name" +msgstr "New profile name" + +#: ../lib/modules/range.inc:101 ../lib/modules/range.inc:115 +#: ../lib/modules/range.inc:454 +msgid "New range" +msgstr "New range" + +#: ../lib/modules/nisMailAlias.inc:208 +msgid "New recipient" +msgstr "New recipient" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:81 +msgid "New required attributes" +msgstr "New required attributes" + +#: ../lib/types/gon.inc:211 ../lib/types/group.inc:249 +msgid "New role" +msgstr "New role" + +#: ../templates/pdfedit/pdfpage.php:588 +msgid "New section" +msgstr "New section" + +#: ../lib/types/kolabSharedFolderType.inc:114 +#: ../lib/types/kolabSharedFolderType.inc:143 +msgid "New shared folder" +msgstr "New shared folder" + +#: ../lib/types/sudo.inc:106 ../lib/types/sudo.inc:161 +msgid "New sudo role" +msgstr "New sudo role" + +#: ../lib/types/user.inc:172 ../lib/types/user.inc:531 +msgid "New user" +msgstr "New user" + +#: ../lib/modules/inetOrgPerson.inc:1826 +msgid "New user certificate" +msgstr "New user certificate" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "New value" +msgstr "New value" + +#: ../lib/types/bind.inc:174 ../lib/types/bind.inc:175 +msgid "New zone" +msgstr "New zone" + +#: ../lib/modules/sambaDomain.inc:85 ../lib/modules/sambaDomain.inc:165 +#: ../lib/modules/sambaDomain.inc:186 ../lib/modules/sambaDomain.inc:361 +#: ../lib/modules/sambaDomain.inc:601 +msgid "Next RID" +msgstr "Next RID" + +#: ../lib/modules/sambaDomain.inc:212 ../lib/modules/sambaDomain.inc:213 +msgid "Next RID is not a number!" +msgstr "Next RID is not a number!" + +#: ../lib/modules/sambaDomain.inc:86 +msgid "Next RID to use when creating accounts (only used by Winbind)." +msgstr "Next RID to use when creating accounts (only used by Winbind)." + +#: ../lib/modules/sambaDomain.inc:94 +msgid "Next RID to use when creating group accounts (only used by Winbind)." +msgstr "Next RID to use when creating group accounts (only used by Winbind)." + +#: ../lib/modules/sambaDomain.inc:90 +msgid "Next RID to use when creating user accounts (only used by Winbind)." +msgstr "Next RID to use when creating user accounts (only used by Winbind)." + +#: ../lib/modules/sambaDomain.inc:93 ../lib/modules/sambaDomain.inc:177 +#: ../lib/modules/sambaDomain.inc:188 ../lib/modules/sambaDomain.inc:377 +#: ../lib/modules/sambaDomain.inc:603 +msgid "Next group RID" +msgstr "Next group RID" + +#: ../lib/modules/sambaDomain.inc:216 ../lib/modules/sambaDomain.inc:217 +msgid "Next group RID is not a number!" +msgstr "Next group RID is not a number!" + +#: ../lib/modules/sambaDomain.inc:89 ../lib/modules/sambaDomain.inc:171 +#: ../lib/modules/sambaDomain.inc:187 ../lib/modules/sambaDomain.inc:369 +#: ../lib/modules/sambaDomain.inc:602 +msgid "Next user RID" +msgstr "Next user RID" + +#: ../lib/modules/sambaDomain.inc:214 ../lib/modules/sambaDomain.inc:215 +msgid "Next user RID is not a number!" +msgstr "Next user RID is not a number!" + +#: ../lib/modules/eduPerson.inc:101 ../lib/modules/eduPerson.inc:188 +#: ../lib/modules/eduPerson.inc:226 ../lib/modules/eduPerson.inc:342 +#: ../lib/modules/eduPerson.inc:584 +msgid "Nick names" +msgstr "Nick names" + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/pykotaPrinter.inc:52 +#: ../lib/modules/pykotaPrinter.inc:168 ../lib/modules/pykotaPrinter.inc:169 +#: ../lib/modules/pykotaPrinter.inc:170 ../lib/modules/qmailGroup.inc:321 +#: ../lib/modules/qmailGroup.inc:322 ../lib/modules/qmailGroup.inc:323 +#: ../lib/modules/qmailGroup.inc:363 ../lib/modules/qmailGroup.inc:364 +#: ../lib/modules/qmailGroup.inc:365 ../lib/modules/qmailGroup.inc:1030 +#: ../lib/modules/qmailGroup.inc:1071 ../lib/modules/qmailGroup.inc:1077 +#: ../lib/modules/imapAccess.inc:121 +msgid "No" +msgstr "No" + +#: ../lib/types/asteriskExt.inc:144 +msgid "No Asterisk extensions found." +msgstr "No Asterisk extensions found." + +#: ../lib/types/dhcp.inc:171 +msgid "No DHCPs found!" +msgstr "No DHCPs found!" + +#: ../lib/types/bind.inc:160 +msgid "No DNS entries found!" +msgstr "No DNS entries found!" + +#: ../lib/types/nisObjectType.inc:156 +msgid "No NIS objects found!" +msgstr "No NIS objects found!" + +#: ../templates/3rdParty/pla/lib/Template.php:558 +#: ../templates/3rdParty/pla/lib/Template.php:559 +msgid "No RDN attribute was selected." +msgstr "No RDN attribute was selected." + +#: ../lib/modules/sambaSamAccount.inc:1103 +#: ../lib/modules/sambaGroupMapping.inc:341 +msgid "No Samba 3 domains found in LDAP! Please create one first." +msgstr "No Samba 3 domains found in LDAP! Please create one first." + +#: ../lib/modules/posixAccount.inc:581 ../lib/modules/posixAccount.inc:1367 +msgid "No Unix groups found in LDAP! Please create one first." +msgstr "No Unix groups found in LDAP! Please create one first." + +#: ../lib/modules/qmailUser.inc:42 +msgid "No access" +msgstr "No access" + +#: ../lib/types/zarafaAddressListType.inc:145 +msgid "No address list found!" +msgstr "No address list found!" + +#: ../lib/types/mailAlias.inc:142 ../lib/types/alias.inc:142 +msgid "No aliases found!" +msgstr "No aliases found!" + +#: ../lib/types/automountType.inc:216 +msgid "No automount entries found!" +msgstr "No automount entries found!" + +#: ../lib/types/pykotaBillingCodeType.inc:164 +msgid "No billing codes found!" +msgstr "No billing codes found!" + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:36 +msgid "No binary data available" +msgstr "No binary data available" + +#: ../templates/initsuff.php:164 +msgid "No changes were made." +msgstr "No changes were made." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:83 +#, php-format +msgid "No current value for attribute %s." +msgstr "No current value for attribute %s." + +#: ../lib/types/oracleContextType.inc:187 +msgid "No database entries found!" +msgstr "No database entries found!" + +#: ../templates/login.php:104 +msgid "" +"No default profile set. Please set it in the server profile configuration." +msgstr "" +"No default profile set. Please set it in the server profile configuration." + +#: ../templates/schema/schema.php:144 +msgid "No description" +msgstr "No description" + +#: ../lib/types/smbDomain.inc:168 +msgid "No domains found!" +msgstr "No domains found!" + +#: ../lib/modules/passwordSelfReset.inc:1546 +msgid "No email address found." +msgstr "No email address found." + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:20 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:21 +msgid "No entry was selected to delete" +msgstr "No entry was selected to delete" + +#: ../lib/modules/ldapPublicKey.inc:483 ../lib/modules/inetOrgPerson.inc:3221 +#: ../lib/modules/customFields.inc:3642 +msgid "No file received." +msgstr "No file received." + +#: ../templates/config/mainmanage.php:161 ../lib/modules/ldapPublicKey.inc:109 +#: ../lib/modules/inetOrgPerson.inc:99 ../lib/modules/customFields.inc:3577 +msgid "No file selected." +msgstr "No file selected." + +#: ../lib/modules/qmailUser.inc:48 +msgid "No forwarding" +msgstr "No forwarding" + +#: ../lib/modules/posixGroup.inc:601 ../lib/modules/posixAccount.inc:104 +msgid "No free ID-Number!" +msgstr "No free ID-Number!" + +#: ../lib/types/gon.inc:203 ../lib/types/zarafaDynamicGroupType.inc:166 +#: ../lib/types/group.inc:241 ../lib/types/netgroup.inc:170 +msgid "No groups found!" +msgstr "No groups found!" + +#: ../lib/types/host.inc:194 +msgid "No hosts found!" +msgstr "No hosts found!" + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:59 +msgid "No image available" +msgstr "No image available" + +#: ../templates/3rdParty/pla/lib/import_functions.php:94 +msgid "No import input" +msgstr "No import input" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1354 +msgid "No internal attributes" +msgstr "No internal attributes" + +#: ../templates/tests/lamdaemonTest.php:195 +msgid "No lamdaemon path set, please update your LAM configuration settings." +msgstr "No lamdaemon path set, please update your LAM configuration settings." + +#: ../templates/tests/lamdaemonTest.php:97 +#: ../templates/tests/lamdaemonTest.php:190 +msgid "No lamdaemon server set, please update your LAM configuration settings." +msgstr "" +"No lamdaemon server set, please update your LAM configuration settings." + +#: ../lib/modules/qmailUser.inc:49 +msgid "No local delivery" +msgstr "No local delivery" + +#: ../templates/config/mainmanage.php:412 +msgid "No logging" +msgstr "No logging" + +#: ../templates/pdfedit/pdfpage.php:429 +msgid "No logo" +msgstr "No logo" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:157 +msgid "No new attributes available for this entry" +msgstr "No new attributes available for this entry" + +#: ../templates/config/conftypes.php:310 ../help/help.inc:176 +msgid "No new entries" +msgstr "No new entries" + +#: ../templates/multiEdit.php:315 ../lib/lists.inc:113 +msgid "No objects found!" +msgstr "No objects found!" + +#: ../templates/config/confmodules.php:406 +msgid "No or more than one base module selected!" +msgstr "No or more than one base module selected!" + +#: ../templates/config/confsave.php:53 ../templates/config/confmain.php:55 +#: ../lib/modules/passwordSelfReset.inc:1169 +msgid "No password was entered!" +msgstr "No password was entered!" + +#: ../lib/types/ppolicyType.inc:150 +msgid "No policies found!" +msgstr "No policies found!" + +#: ../lib/types/pykotaPrinterType.inc:165 +msgid "No printers found!" +msgstr "No printers found!" + +#: ../templates/tests/schemaTest.php:70 +msgid "No problems found." +msgstr "No problems found." + +#: ../lib/modules/qmailUser.inc:50 +msgid "No program delivery" +msgstr "No program delivery" + +#: ../lib/modules/pykotaGroup.inc:63 ../lib/modules/pykotaUser.inc:63 +msgid "No quota" +msgstr "No quota" + +#: ../lib/types/gon.inc:210 ../lib/types/group.inc:248 +msgid "No roles found!" +msgstr "No roles found!" + +#: ../lib/modules/customScripts.inc:215 +msgid "No scripts to run." +msgstr "No scripts to run." + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "No section text specified" +msgstr "No section text specified" + +#: ../lib/modules/passwordSelfReset.inc:1199 +msgid "No security answer found." +msgstr "No security answer found." + +#: ../templates/config/conflogin.php:137 +msgid "No server profiles found. Please create one." +msgstr "No server profiles found. Please create one." + +#: ../lib/types/kolabSharedFolderType.inc:142 +msgid "No shared folders found!" +msgstr "No shared folders found!" + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "No static text specified" +msgstr "No static text specified" + +#: ../lib/modules/dhcp_settings.inc:318 +msgid "No subnet entered." +msgstr "No subnet entered." + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:45 +msgid "No such entry" +msgstr "No such entry" + +#: ../templates/3rdParty/pla/htdocs/compare.php:24 +#: ../templates/3rdParty/pla/htdocs/compare.php:27 +#: ../templates/3rdParty/pla/htdocs/delete.php:19 +msgid "No such entry." +msgstr "No such entry." + +#: ../templates/schema/schema.php:438 +#, php-format +msgid "No such schema item: \"%s\"" +msgstr "No such schema item: \"%s\"" + +#: ../lib/types/sudo.inc:160 +msgid "No sudo roles found!" +msgstr "No sudo roles found!" + +#: ../lib/types/user.inc:530 +msgid "No users found!" +msgstr "No users found!" + +#: ../templates/config/mainmanage.php:444 +msgid "Non-standard (\\n)" +msgstr "Non-standard (\\n)" + +#: ../lib/modules/qmailUser.inc:58 +msgid "None" +msgstr "None" + +#: ../lib/modules/sudoRole.inc:133 ../lib/modules/sudoRole.inc:195 +#: ../lib/modules/sudoRole.inc:222 ../lib/modules/sudoRole.inc:281 +#: ../lib/modules/sudoRole.inc:481 ../lib/modules/sudoRole.inc:822 +msgid "Not after" +msgstr "Not after" + +#: ../lib/modules/sudoRole.inc:128 ../lib/modules/sudoRole.inc:201 +#: ../lib/modules/sudoRole.inc:223 ../lib/modules/sudoRole.inc:283 +#: ../lib/modules/sudoRole.inc:474 ../lib/modules/sudoRole.inc:817 +msgid "Not before" +msgstr "Not before" + +#: ../help/help.inc:68 +msgid "Note" +msgstr "Note" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:125 +msgid "" +"Note: You may be required to enter new attributes that these object classes " +"require" +msgstr "" +"Note: You may be required to enter new attributes that these object classes " +"require" + +#: ../lib/modules/windowsGroup.inc:122 ../lib/modules/windowsGroup.inc:189 +#: ../lib/modules/windowsGroup.inc:259 ../lib/modules/windowsGroup.inc:349 +#: ../lib/modules/windowsGroup.inc:747 +msgid "Notes" +msgstr "Notes" + +#: ../templates/3rdParty/pla/lib/export_functions.php:450 +msgid "Nothing to export" +msgstr "Nothing to export" + +#: ../templates/config/mainmanage.php:408 +msgid "Notice" +msgstr "Notice" + +#: ../templates/delete.php:103 +msgid "Number of child entries" +msgstr "Number of child entries" + +#: ../lib/modules/customFields.inc:129 +msgid "Number of columns in text area." +msgstr "Number of columns in text area." + +#: ../lib/modules/shadowAccount.inc:182 +msgid "" +"Number of days a user can login even his password has expired. -1=always." +msgstr "" +"Number of days a user can login even his password has expired. -1=always." + +#: ../lib/modules/shadowAccount.inc:186 +msgid "" +"Number of days a user has to wait until he is allowed to change his password " +"again. If set value must be >0." +msgstr "" +"Number of days a user has to wait until he is allowed to change his password " +"again. If set value must be >0." + +#: ../lib/modules/shadowAccount.inc:190 +msgid "" +"Number of days after a user has to change his password again. If set value " +"must be >0." +msgstr "" +"Number of days after a user has to change his password again. If set value " +"must be >0." + +#: ../lib/modules/mitKerberos.inc:129 +msgid "Number of failed logins." +msgstr "Number of failed logins." + +#: ../lib/modules/sambaDomain.inc:138 +msgid "Number of minutes after which the bad logon attempts are reset." +msgstr "Number of minutes after which the bad logon attempts are reset." + +#: ../lib/modules/pykotaBillingCode.inc:90 +msgid "Number of pages printed with this billing code." +msgstr "Number of pages printed with this billing code." + +#: ../lib/modules/customFields.inc:133 +msgid "Number of rows in text area." +msgstr "Number of rows in text area." + +#: ../templates/config/mainmanage.php:395 ../help/help.inc:162 +msgid "Number of rules that must match" +msgstr "Number of rules that must match" + +#: ../lib/modules/ppolicy.inc:85 ../lib/modules/sambaDomain.inc:126 +msgid "" +"Number of seconds after the user is allowed to change his password again." +msgstr "" +"Number of seconds after the user is allowed to change his password again." + +#: ../lib/modules/ppolicy.inc:89 ../lib/modules/sambaDomain.inc:130 +msgid "Number of seconds after which the user must change his password." +msgstr "Number of seconds after which the user must change his password." + +#: ../templates/schema/schema.php:147 ../templates/schema/schema.php:344 +msgid "OID" +msgstr "OID" + +#: ../templates/ou_edit.php:83 +msgid "OU already exists!" +msgstr "OU already exists!" + +#: ../templates/ou_edit.php:94 +msgid "OU deleted successfully." +msgstr "OU deleted successfully." + +#: ../templates/ou_edit.php:152 ../lib/tools/ouEditor.inc:44 +msgid "OU editor" +msgstr "OU editor" + +#: ../templates/ou_edit.php:87 +msgid "OU is invalid!" +msgstr "OU is invalid!" + +#: ../templates/ou_edit.php:131 +msgid "OU is not empty or invalid!" +msgstr "OU is not empty or invalid!" + +#: ../help/help.inc:263 ../help/help.inc:265 +msgid "OU-Editor" +msgstr "OU-Editor" + +#: ../templates/schema/schema.php:65 ../templates/schema/schema.php:66 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1324 +#: ../lib/modules/selfRegistration.inc:74 +#: ../lib/modules/selfRegistration.inc:214 ../lib/modules/customFields.inc:80 +#: ../lib/modules/customFields.inc:574 +msgid "Object classes" +msgstr "Object classes" + +#: ../lib/lists.inc:112 +#, php-format +msgid "Object count: %s" +msgstr "Object count: %s" + +#: ../templates/schema/schema.php:152 ../templates/schema/schema.php:283 +msgid "Obsolete" +msgstr "Obsolete" + +#: ../lib/modules/sambaDomain.inc:289 ../lib/modules/sambaDomain.inc:298 +#: ../lib/modules/sambaDomain.inc:307 ../lib/modules/sambaDomain.inc:614 +#: ../lib/modules/sambaDomain.inc:619 ../lib/modules/sambaDomain.inc:624 +msgid "Off" +msgstr "Off" + +#: ../lib/modules/windowsUser.inc:152 ../lib/modules/windowsUser.inc:344 +#: ../lib/modules/windowsUser.inc:508 ../lib/modules/windowsUser.inc:541 +#: ../lib/modules/windowsUser.inc:713 ../lib/modules/windowsUser.inc:1596 +#: ../lib/modules/windowsUser.inc:1725 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:199 ../lib/modules/inetOrgPerson.inc:531 +#: ../lib/modules/inetOrgPerson.inc:566 ../lib/modules/inetOrgPerson.inc:792 +#: ../lib/modules/inetOrgPerson.inc:796 ../lib/modules/inetOrgPerson.inc:1358 +#: ../lib/modules/inetOrgPerson.inc:1361 ../lib/modules/inetOrgPerson.inc:1911 +#: ../lib/modules/inetOrgPerson.inc:2621 ../lib/modules/inetOrgPerson.inc:3525 +#: ../lib/modules/inetOrgPerson.inc:3581 +msgid "Office name" +msgstr "Office name" + +#: ../templates/lists/changePassword.php:340 +#: ../templates/lists/changePassword.php:377 +#: ../templates/lists/changePassword.php:418 +#: ../templates/lists/changePassword.php:449 +#: ../templates/tests/lamdaemonTest.php:92 ../templates/ou_edit.php:193 +#: ../templates/ou_edit.php:207 ../templates/masscreate.php:211 +#: ../templates/config/profmanage.php:254 +#: ../templates/config/profmanage.php:266 +#: ../templates/config/profmanage.php:275 +#: ../templates/config/profmanage.php:293 +#: ../templates/config/profmanage.php:302 +#: ../templates/config/profmanage.php:304 +#: ../templates/config/mainmanage.php:469 +#: ../templates/config/conflogin.php:177 ../templates/config/mainlogin.php:165 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminLogin.php:165 +#: ../templates/selfService/adminMain.php:626 +#: ../templates/selfService/adminMain.php:679 +#: ../templates/pdfedit/pdfmain.php:210 ../templates/pdfedit/pdfmain.php:217 +#: ../templates/pdfedit/pdfmain.php:223 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/profedit/profilemain.php:205 +#: ../templates/profedit/profilemain.php:211 +#: ../lib/types/automountType.inc:234 ../lib/types/user.inc:303 +#: ../lib/types/bind.inc:175 ../lib/modules/selfRegistration.inc:446 +#: ../lib/modules/zarafaContact.inc:433 ../lib/modules/zarafaGroup.inc:493 +#: ../lib/modules/device.inc:300 ../lib/modules/sambaSamAccount.inc:1431 +#: ../lib/modules/sambaSamAccount.inc:1566 ../lib/modules/zarafaUser.inc:917 +#: ../lib/modules/zarafaUser.inc:968 ../lib/modules/sambaGroupMapping.inc:508 +#: ../lib/modules/nisnetgroup.inc:479 ../lib/modules/nisnetgroup.inc:489 +#: ../lib/modules/asteriskExtension.inc:484 ../lib/modules/aliasEntry.inc:146 +#: ../lib/modules/aliasEntry.inc:166 ../lib/modules/qmailGroup.inc:862 +#: ../lib/modules/imapAccess.inc:295 ../lib/modules/organizationalRole.inc:337 +#: ../lib/modules/passwordSelfReset.inc:872 +#: ../lib/modules/passwordSelfReset.inc:1094 +#: ../lib/modules/windowsGroup.inc:603 ../lib/modules/groupOfNames.inc:394 +#: ../lib/modules/groupOfNames.inc:549 ../lib/modules/nisMailAlias.inc:375 +#: ../lib/modules/nisMailAlias.inc:384 ../lib/lists.inc:710 +#: ../lib/lists.inc:792 ../lib/modules.inc:1221 +msgid "Ok" +msgstr "Ok" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:98 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +msgid "Old value" +msgstr "Old value" + +#: ../lib/modules/sambaDomain.inc:289 ../lib/modules/sambaDomain.inc:298 +#: ../lib/modules/sambaDomain.inc:307 ../lib/modules/sambaDomain.inc:615 +#: ../lib/modules/sambaDomain.inc:620 ../lib/modules/sambaDomain.inc:625 +msgid "On" +msgstr "On" + +#: ../lib/modules/sambaSamAccount.inc:243 +#: ../lib/modules/sambaSamAccount.inc:384 +#: ../lib/modules/sambaSamAccount.inc:1552 +#: ../lib/modules/sambaSamAccount.inc:1962 +msgid "On broken or timed out connection" +msgstr "On broken or timed out connection" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:139 +#: ../templates/3rdParty/pla/htdocs/export_form.php:32 +msgid "One (one level beneath base)" +msgstr "One (one level beneath base)" + +#: ../lib/modules/range.inc:114 ../lib/modules/fixed_ip.inc:127 +msgid "One or more errors occured. The invalid fields are marked." +msgstr "One or more errors occured. The invalid fields are marked." + +#: ../templates/3rdParty/pla/htdocs/copy.php:98 +#: ../templates/3rdParty/pla/htdocs/copy.php:155 +#, php-format +msgid "Operation not successful. DN %s has not been created." +msgstr "Operation not successful. DN %s has not been created." + +#: ../templates/serverInfo.php:277 ../templates/serverInfo.php:367 +msgid "Operation statistics" +msgstr "Operation statistics" + +#: ../templates/3rdParty/pla/htdocs/copy.php:95 +#: ../templates/3rdParty/pla/htdocs/copy.php:153 +#, php-format +msgid "Operation successful. DN %s has been created." +msgstr "Operation successful. DN %s has been created." + +#: ../templates/multiEdit.php:117 ../help/help.inc:273 +msgid "Operations" +msgstr "Operations" + +#: ../templates/schema/schema.php:384 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1575 +msgid "Optional attributes" +msgstr "Optional attributes" + +#: ../lib/modules/fixed_ip.inc:111 +msgid "Optional description for the PC." +msgstr "Optional description for the PC." + +#: ../lib/types/sudo.inc:83 ../lib/modules/mitKerberos.inc:408 +#: ../lib/modules/zarafaDynamicGroup.inc:267 +#: ../lib/modules/zarafaContact.inc:241 ../lib/modules/zarafaGroup.inc:278 +#: ../lib/modules/posixAccount.inc:245 ../lib/modules/zarafaUser.inc:571 +#: ../lib/modules/windowsUser.inc:723 ../lib/modules/kolabUser.inc:379 +#: ../lib/modules/sudoRole.inc:94 ../lib/modules/sudoRole.inc:123 +#: ../lib/modules/sudoRole.inc:189 ../lib/modules/sudoRole.inc:221 +#: ../lib/modules/sudoRole.inc:233 ../lib/modules/sudoRole.inc:451 +#: ../lib/modules/sudoRole.inc:811 ../lib/modules/asteriskExtension.inc:122 +#: ../lib/modules/asteriskVoicemail.inc:115 +#: ../lib/modules/asteriskVoicemail.inc:125 +#: ../lib/modules/asteriskVoicemail.inc:142 +#: ../lib/modules/asteriskVoicemail.inc:190 +#: ../lib/modules/asteriskVoicemail.inc:258 +#: ../lib/modules/asteriskVoicemail.inc:375 ../lib/modules/qmailGroup.inc:611 +#: ../lib/modules/heimdalKerberos.inc:339 +msgid "Options" +msgstr "Options" + +#: ../lib/modules/asteriskVoicemail.inc:116 +msgid "Options for Asterisk voicemail account (e.g. sendvoicemail=yes)." +msgstr "Options for Asterisk voicemail account (e.g. sendvoicemail=yes)." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:39 +msgid "Or paste your LDIF here" +msgstr "Or paste your LDIF here" + +#: ../lib/modules/oracleService.inc:47 +msgid "Oracle database" +msgstr "Oracle database" + +#: ../lib/types/oracleContextType.inc:48 +msgid "Oracle database entries" +msgstr "Oracle database entries" + +#: ../lib/types/oracleContextType.inc:39 +msgid "Oracle databases" +msgstr "Oracle databases" + +#: ../lib/modules/sudoRole.inc:138 ../lib/modules/sudoRole.inc:207 +#: ../lib/modules/sudoRole.inc:224 ../lib/modules/sudoRole.inc:285 +#: ../lib/modules/sudoRole.inc:484 ../lib/modules/sudoRole.inc:812 +msgid "Order" +msgstr "Order" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:166 +msgid "Order by" +msgstr "Order by" + +#: ../templates/schema/schema.php:171 +msgid "Ordering" +msgstr "Ordering" + +#: ../lib/modules/eduPerson.inc:126 ../lib/modules/eduPerson.inc:200 +#: ../lib/modules/eduPerson.inc:227 ../lib/modules/eduPerson.inc:245 +#: ../lib/modules/eduPerson.inc:346 ../lib/modules/eduPerson.inc:587 +#: ../lib/modules/inetOrgPerson.inc:223 ../lib/modules/inetOrgPerson.inc:499 +#: ../lib/modules/inetOrgPerson.inc:608 ../lib/modules/inetOrgPerson.inc:824 +#: ../lib/modules/inetOrgPerson.inc:828 ../lib/modules/inetOrgPerson.inc:1499 +#: ../lib/modules/inetOrgPerson.inc:1502 ../lib/modules/inetOrgPerson.inc:1916 +#: ../lib/modules/inetOrgPerson.inc:3553 ../lib/modules/inetOrgPerson.inc:3588 +msgid "Organisation" +msgstr "Organization" + +#: ../lib/modules/inetOrgPerson.inc:163 ../lib/modules/inetOrgPerson.inc:220 +#: ../lib/modules/inetOrgPerson.inc:491 ../lib/modules/inetOrgPerson.inc:611 +#: ../lib/modules/inetOrgPerson.inc:816 ../lib/modules/inetOrgPerson.inc:820 +#: ../lib/modules/inetOrgPerson.inc:1490 ../lib/modules/inetOrgPerson.inc:1493 +#: ../lib/modules/inetOrgPerson.inc:1915 ../lib/modules/inetOrgPerson.inc:2753 +#: ../lib/modules/inetOrgPerson.inc:3551 ../lib/modules/inetOrgPerson.inc:3588 +msgid "Organisational unit" +msgstr "Organizational unit" + +#: ../lib/modules/eduPerson.inc:134 ../lib/modules/eduPerson.inc:138 +#: ../lib/modules/eduPerson.inc:212 ../lib/modules/eduPerson.inc:228 +#: ../lib/modules/eduPerson.inc:350 ../lib/modules/eduPerson.inc:589 +msgid "Organisational units" +msgstr "Organizational units" + +#: ../lib/modules/eduPerson.inc:249 +msgid "Organisational units contains an invalid entry." +msgstr "Organizational units contains an invalid entry." + +#: ../templates/multiEdit.php:98 ../templates/config/confmain.php:328 +msgid "Other" +msgstr "Other" + +#: ../lib/modules/windowsUser.inc:144 ../lib/modules/windowsUser.inc:148 +#: ../lib/modules/windowsUser.inc:368 ../lib/modules/windowsUser.inc:507 +#: ../lib/modules/windowsUser.inc:603 ../lib/modules/windowsUser.inc:719 +#: ../lib/modules/windowsUser.inc:1595 +msgid "Other telephone numbers" +msgstr "Other telephone numbers" + +#: ../lib/modules/windowsUser.inc:180 ../lib/modules/windowsUser.inc:184 +#: ../lib/modules/windowsUser.inc:380 ../lib/modules/windowsUser.inc:515 +#: ../lib/modules/windowsUser.inc:721 ../lib/modules/windowsUser.inc:1603 +msgid "Other web sites" +msgstr "Other web sites" + +#: ../lib/modules/customScripts.inc:84 ../lib/modules/customScripts.inc:100 +#: ../lib/modules/customScripts.inc:110 +msgid "Output may contain HTML" +msgstr "Output may contain HTML" + +#: ../lib/modules/customScripts.inc:264 ../lib/modules/customScripts.inc:554 +#, php-format +msgid "Output of command \"%s\" with return code %s" +msgstr "Output of command \"%s\" with return code %s" + +#: ../lib/modules/pykotaUser.inc:144 ../lib/modules/pykotaUser.inc:171 +#: ../lib/modules/pykotaUser.inc:253 ../lib/modules/pykotaUser.inc:263 +#: ../lib/modules/pykotaUser.inc:324 ../lib/modules/pykotaUser.inc:402 +#: ../lib/modules/pykotaUser.inc:899 +msgid "Overcharge factor" +msgstr "Overcharge factor" + +#: ../lib/modules/pykotaUser.inc:145 +msgid "" +"Overcharge factor that is applied when computing the cost of a print job. " +"The number of pages is not changed." +msgstr "" +"Overcharge factor that is applied when computing the cost of a print job. " +"The number of pages is not changed." + +#: ../templates/serverInfo.php:168 +msgid "Overlays" +msgstr "Overlays" + +#: ../lib/modules/zarafaUser.inc:89 +msgid "Override default quota settings." +msgstr "Override default quota settings." + +#: ../templates/config/confmain.php:320 ../lib/types/asteriskExt.inc:96 +#: ../lib/types/asteriskExt.inc:158 +msgid "Owner" +msgstr "Owner" + +#: ../lib/types/gon.inc:108 ../lib/modules/device.inc:69 +#: ../lib/modules/device.inc:73 ../lib/modules/device.inc:103 +#: ../lib/modules/device.inc:128 ../lib/modules/device.inc:180 +#: ../lib/modules/device.inc:424 ../lib/modules/groupOfNames.inc:93 +#: ../lib/modules/groupOfNames.inc:97 ../lib/modules/groupOfNames.inc:143 +#: ../lib/modules/groupOfNames.inc:174 ../lib/modules/groupOfNames.inc:197 +#: ../lib/modules/groupOfNames.inc:240 ../lib/modules/groupOfNames.inc:398 +#: ../lib/modules/groupOfNames.inc:702 +msgid "Owners" +msgstr "Owners" + +#: ../lib/modules/dhcp_settings.inc:97 +msgid "P-Node (0x02)" +msgstr "P-Node (0x02)" + +#: ../lib/modules/fixed_ip.inc:98 ../lib/modules/fixed_ip.inc:425 +#: ../lib/modules/fixed_ip.inc:740 +msgid "PC name" +msgstr "PC name" + +#: ../lib/modules/windowsHost.inc:96 +msgid "PC01" +msgstr "PC01" + +#: ../templates/pdfedit/pdfpage.php:445 ../templates/pdfedit/pdfmain.php:84 +#: ../lib/tools/pdfEdit.inc:44 +msgid "PDF editor" +msgstr "PDF editor" + +#: ../templates/masscreate.php:275 ../templates/pdfedit/pdfmain.php:310 +#: ../lib/lists.inc:688 ../help/help.inc:204 +msgid "PDF structure" +msgstr "PDF structure" + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "PDF structure name not valid" +msgstr "PDF structure name not valid" + +#: ../templates/pdfedit/pdfmain.php:168 +msgid "PDF structure was successfully saved." +msgstr "PDF structure was successfully saved." + +#: ../templates/pdfedit/pdfmain.php:277 +msgid "PDF structures" +msgstr "PDF structures" + +#: ../templates/serverInfo.php:264 +msgid "PDUs sent" +msgstr "PDUs sent" + +#: ../templates/config/mainmanage.php:432 ../help/help.inc:158 +msgid "PHP error reporting" +msgstr "PHP error reporting" + +#: ../templates/config/mainmanage.php:428 +msgid "PHP system setting" +msgstr "PHP system setting" + +#: ../lib/modules/zarafaUser.inc:306 ../lib/modules/zarafaUser.inc:645 +#: ../lib/modules/zarafaUser.inc:1334 +msgid "POP3" +msgstr "POP3" + +#: ../templates/lists/changePassword.php:406 +#: ../templates/lists/changePassword.php:437 ../lib/types/user.inc:376 +#: ../lib/types/user.inc:408 +msgid "PPolicy" +msgstr "PPolicy" + +#: ../lib/modules/bindDLZ.inc:115 ../lib/modules/bindDLZ.inc:301 +#: ../lib/modules/bindDLZ.inc:307 ../lib/modules/bindDLZ.inc:485 +msgid "PTR record" +msgstr "PTR record" + +#: ../lib/modules/bindDLZ.inc:422 ../lib/modules/bindDLZ.inc:441 +#: ../lib/modules/bindDLZ.inc:1496 +msgid "PTR records" +msgstr "PTR records" + +#: ../lib/modules/sambaSamAccount.inc:556 +msgid "Pacific Time (US & Canada)" +msgstr "Pacific Time (US & Canada)" + +#: ../lib/modules/dhcp_settings.inc:166 +msgid "" +"Packets are sent to the default gateway if the receiver does not reside in " +"the same network. The default gateway routes them to the target network." +msgstr "" +"Packets are sent to the default gateway if the receiver does not reside in " +"the same network. The default gateway routes them to the target network." + +#: ../lib/types/pykotaBillingCodeType.inc:94 +#: ../lib/modules/pykotaBillingCode.inc:89 +#: ../lib/modules/pykotaBillingCode.inc:118 +#: ../lib/modules/pykotaBillingCode.inc:151 +#: ../lib/modules/pykotaBillingCode.inc:264 +msgid "Page count" +msgstr "Page count" + +#: ../templates/selfService/adminMain.php:521 ../help/help.inc:234 +msgid "Page header" +msgstr "Page header" + +#: ../templates/selfService/adminMain.php:434 +msgid "Page layout" +msgstr "Page layout" + +#: ../lib/modules/asteriskVoicemail.inc:111 +#: ../lib/modules/asteriskVoicemail.inc:141 +#: ../lib/modules/asteriskVoicemail.inc:184 +#: ../lib/modules/asteriskVoicemail.inc:256 +#: ../lib/modules/asteriskVoicemail.inc:373 +msgid "Pager" +msgstr "Pager" + +#: ../lib/modules/asteriskVoicemail.inc:112 +msgid "Pager number for Asterisk voicemail." +msgstr "Pager number for Asterisk voicemail." + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:35 +msgid "Parent DN" +msgstr "Parent DN" + +#: ../lib/modules/puppetClient.inc:88 ../lib/modules/puppetClient.inc:134 +#: ../lib/modules/puppetClient.inc:154 ../lib/modules/puppetClient.inc:265 +#: ../lib/modules/puppetClient.inc:431 ../lib/modules/puppetClient.inc:466 +msgid "Parent node" +msgstr "Parent node" + +#: ../lib/modules/puppetClient.inc:190 +msgid "Parent node not found." +msgstr "Parent node not found." + +#: ../templates/schema/schema.php:366 +msgid "Parent to" +msgstr "Parent to" + +#: ../templates/3rdParty/pla/htdocs/import.php:98 +msgid "Parse error" +msgstr "Parse error" + +#: ../lib/modules/pykotaPrinter.inc:107 ../lib/modules/pykotaPrinter.inc:166 +#: ../lib/modules/pykotaPrinter.inc:196 ../lib/modules/pykotaPrinter.inc:243 +#: ../lib/modules/pykotaPrinter.inc:595 +msgid "Passthrough" +msgstr "Passthrough" + +#: ../templates/lists/changePassword.php:356 ../templates/login.php:379 +#: ../templates/selfService/selfServiceLogin.php:323 +#: ../lib/selfService.inc:393 ../lib/modules/mitKerberos.inc:156 +#: ../lib/modules/mitKerberos.inc:242 ../lib/modules/mitKerberos.inc:257 +#: ../lib/modules/mitKerberos.inc:795 ../lib/modules/mitKerberos.inc:798 +#: ../lib/modules/selfRegistration.inc:407 +#: ../lib/modules/selfRegistration.inc:533 +#: ../lib/modules/selfRegistration.inc:536 +#: ../lib/modules/selfRegistration.inc:539 +#: ../lib/modules/asteriskAccount.inc:115 +#: ../lib/modules/asteriskAccount.inc:325 ../lib/modules/posixGroup.inc:205 +#: ../lib/modules/posixGroup.inc:598 ../lib/modules/sambaSamAccount.inc:105 +#: ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:250 +#: ../lib/modules/sambaSamAccount.inc:425 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/posixAccount.inc:110 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:332 ../lib/modules/posixAccount.inc:418 +#: ../lib/modules/posixAccount.inc:522 ../lib/modules/posixAccount.inc:1496 +#: ../lib/modules/posixAccount.inc:1868 ../lib/modules/posixAccount.inc:1871 +#: ../lib/modules/windowsUser.inc:223 ../lib/modules/windowsUser.inc:272 +#: ../lib/modules/windowsUser.inc:524 ../lib/modules/windowsUser.inc:549 +#: ../lib/modules/windowsUser.inc:615 ../lib/modules/windowsUser.inc:616 +#: ../lib/modules/windowsUser.inc:1638 ../lib/modules/windowsUser.inc:1641 +#: ../lib/modules/inetOrgPerson.inc:840 ../lib/modules/inetOrgPerson.inc:1556 +#: ../lib/modules/inetOrgPerson.inc:2052 ../lib/modules/inetOrgPerson.inc:3590 +#: ../lib/modules/asteriskVoicemail.inc:99 +#: ../lib/modules/asteriskVoicemail.inc:165 +#: ../lib/modules/customFields.inc:2444 ../lib/modules/heimdalKerberos.inc:124 +#: ../lib/modules/heimdalKerberos.inc:211 +#: ../lib/modules/heimdalKerberos.inc:223 +#: ../lib/modules/heimdalKerberos.inc:695 +#: ../lib/modules/heimdalKerberos.inc:698 ../lib/modules.inc:1043 +#: ../help/help.inc:202 +msgid "Password" +msgstr "Password" + +#: ../lib/modules/sambaSamAccount.inc:294 +#: ../lib/modules/sambaSamAccount.inc:1155 ../lib/modules/windowsUser.inc:214 +#: ../lib/modules/windowsUser.inc:410 ../lib/modules/windowsUser.inc:522 +#: ../lib/modules/windowsUser.inc:1626 +msgid "Password change at next login" +msgstr "Password change at next login" + +#: ../lib/modules/mitKerberos.inc:148 ../lib/modules/mitKerberos.inc:261 +#: ../lib/modules/heimdalKerberos.inc:118 +#: ../lib/modules/heimdalKerberos.inc:227 +msgid "Password change command" +msgstr "Password change command" + +#: ../templates/lists/changePassword.php:295 +msgid "Password change options" +msgstr "Password change options" + +#: ../lib/modules/ppolicyUser.inc:59 ../lib/modules/ppolicyUser.inc:74 +#: ../lib/modules/ppolicyUser.inc:132 ../lib/modules/ppolicyUser.inc:265 +msgid "Password change required" +msgstr "Password change required" + +#: ../lib/types/ppolicyType.inc:91 ../lib/modules/ppolicy.inc:136 +#: ../lib/modules/ppolicy.inc:156 ../lib/modules/ppolicy.inc:300 +#: ../lib/modules/ppolicy.inc:510 +msgid "Password change requires old password" +msgstr "Password change requires old password" + +#: ../lib/modules/mitKerberos.inc:189 ../lib/modules/mitKerberos.inc:467 +#: ../lib/modules/heimdalKerberos.inc:154 +#: ../lib/modules/heimdalKerberos.inc:393 +msgid "Password change service" +msgstr "Password change service" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:30 +msgid "Password check" +msgstr "Password check" + +#: ../lib/modules/mitKerberos.inc:297 ../lib/modules/selfRegistration.inc:536 +#: ../lib/modules/posixGroup.inc:598 ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:107 ../lib/modules/posixAccount.inc:110 +#: ../lib/modules/posixAccount.inc:111 ../lib/modules/windowsUser.inc:616 +#: ../lib/modules/inetOrgPerson.inc:105 +msgid "Password contains invalid characters. Valid characters are:" +msgstr "Password contains invalid characters. Valid characters are:" + +#: ../lib/modules/sambaSamAccount.inc:279 +#: ../lib/modules/sambaSamAccount.inc:282 +#: ../lib/modules/sambaSamAccount.inc:447 +#: ../lib/modules/sambaSamAccount.inc:1145 +#: ../lib/modules/sambaSamAccount.inc:1737 ../lib/modules/windowsUser.inc:198 +#: ../lib/modules/windowsUser.inc:394 ../lib/modules/windowsUser.inc:518 +#: ../lib/modules/windowsUser.inc:747 ../lib/modules/windowsUser.inc:1616 +msgid "Password does not expire" +msgstr "Password does not expire" + +#: ../lib/types/user.inc:103 ../lib/modules/shadowAccount.inc:61 +#: ../lib/modules/shadowAccount.inc:113 ../lib/modules/shadowAccount.inc:170 +#: ../lib/modules/shadowAccount.inc:181 ../lib/modules/shadowAccount.inc:215 +#: ../lib/modules/shadowAccount.inc:324 ../lib/modules/shadowAccount.inc:502 +msgid "Password expiration" +msgstr "Password expiration" + +#: ../lib/modules/shadowAccount.inc:61 ../lib/modules/shadowAccount.inc:62 +msgid "Password expiration must be are natural number or -1." +msgstr "Password expiration must be are natural number or -1." + +#: ../templates/selfService/adminMain.php:505 ../help/help.inc:238 +msgid "Password field label" +msgstr "Password field label" + +#: ../lib/modules/asteriskVoicemail.inc:100 +msgid "Password for voicemail mailbox." +msgstr "Password for voicemail mailbox." + +#: ../lib/modules/posixGroup.inc:504 ../lib/modules/posixGroup.inc:557 +#: ../lib/modules/posixAccount.inc:191 ../lib/modules/posixAccount.inc:247 +#: ../lib/modules/posixAccount.inc:457 ../lib/modules/inetOrgPerson.inc:812 +#: ../lib/modules/inetOrgPerson.inc:3500 ../lib/modules/customFields.inc:136 +#: ../lib/modules/customFields.inc:2458 +msgid "Password hash type" +msgstr "Password hash type" + +#: ../lib/types/ppolicyType.inc:80 ../lib/modules/ppolicy.inc:92 +#: ../lib/modules/ppolicy.inc:145 ../lib/modules/ppolicy.inc:169 +#: ../lib/modules/ppolicy.inc:230 ../lib/modules/ppolicy.inc:474 +#: ../lib/modules/sambaDomain.inc:105 ../lib/modules/sambaDomain.inc:191 +#: ../lib/modules/sambaDomain.inc:283 ../lib/modules/sambaDomain.inc:606 +msgid "Password history length" +msgstr "Password history length" + +#: ../templates/config/confmain.php:367 +msgid "Password mail settings" +msgstr "Password mail settings" + +#: ../lib/modules/shadowAccount.inc:59 ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/ppolicy.inc:167 ../lib/modules/sambaDomain.inc:222 +msgid "Password maximum age must be are natural number." +msgstr "Password maximum age must be are natural number." + +#: ../lib/modules/shadowAccount.inc:66 +msgid "Password maximum age must be bigger as password minimum age." +msgstr "Password maximum age must be bigger as password minimum age." + +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/ppolicy.inc:168 +#: ../lib/modules/sambaDomain.inc:220 +msgid "Password maximum age must be bigger than password minimum age." +msgstr "Password maximum age must be bigger than password minimum age." + +#: ../lib/modules/shadowAccount.inc:57 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/ppolicy.inc:166 ../lib/modules/sambaDomain.inc:221 +msgid "Password minimum age must be are natural number." +msgstr "Password minimum age must be are natural number." + +#: ../templates/config/mainmanage.php:401 ../help/help.inc:166 +msgid "Password must not contain part of user/first/last name" +msgstr "Password must not contain part of user/first/last name" + +#: ../templates/config/mainmanage.php:399 ../help/help.inc:164 +msgid "Password must not contain user name" +msgstr "Password must not contain user name" + +#: ../lib/modules/imapAccess.inc:94 ../lib/modules/imapAccess.inc:290 +msgid "Password of IMAP admin user" +msgstr "Password of IMAP admin user" + +#: ../lib/types/ppolicyType.inc:39 +msgid "Password policies" +msgstr "Password policies" + +#: ../lib/types/ppolicyType.inc:48 +msgid "Password policies (ppolicy)" +msgstr "Password policies (ppolicy)" + +#: ../templates/config/mainmanage.php:382 ../lib/types/user.inc:284 +#: ../lib/types/user.inc:837 ../lib/modules/ppolicyUser.inc:45 +#: ../lib/modules/ppolicyUser.inc:55 ../lib/modules/ppolicyUser.inc:67 +#: ../lib/modules/ppolicyUser.inc:83 ../lib/modules/ppolicyUser.inc:123 +#: ../lib/modules/ppolicyUser.inc:260 ../lib/modules/ppolicyUser.inc:293 +#: ../lib/modules/ppolicy.inc:62 ../lib/modules/sambaDomain.inc:266 +#: ../help/help.inc:154 +msgid "Password policy" +msgstr "Password policy" + +#: ../lib/types/ppolicyType.inc:81 ../lib/modules/ppolicy.inc:96 +#: ../lib/modules/ppolicy.inc:146 ../lib/modules/ppolicy.inc:242 +#: ../lib/modules/ppolicy.inc:490 +msgid "Password quality check" +msgstr "Password quality check" + +#: ../lib/modules/passwordSelfReset.inc:539 +msgid "Password reset confirmation" +msgstr "Password reset confirmation" + +#: ../lib/modules/passwordSelfReset.inc:559 +msgid "Password reset notification" +msgstr "Password reset notification" + +#: ../lib/modules/passwordSelfReset.inc:66 +#: ../lib/modules/passwordSelfReset.inc:875 +#: ../lib/modules/passwordSelfReset.inc:1097 +msgid "Password self reset" +msgstr "Password self reset" + +#: ../lib/modules/passwordSelfReset.inc:1607 +msgid "Password successfully reset." +msgstr "Password successfully reset." + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:108 +#: ../lib/modules/shadowAccount.inc:168 ../lib/modules/shadowAccount.inc:177 +#: ../lib/modules/shadowAccount.inc:209 ../lib/modules/shadowAccount.inc:316 +#: ../lib/modules/shadowAccount.inc:501 +msgid "Password warning" +msgstr "Password warning" + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:64 +msgid "Password warning must be are natural number." +msgstr "Password warning must be are natural number." + +#: ../templates/config/confmain.php:610 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:61 +#: ../lib/modules/passwordSelfReset.inc:1174 ../lib/modules.inc:1125 +msgid "Passwords are different!" +msgstr "Passwords are different!" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:59 +msgid "Passwords match." +msgstr "Passwords match." + +#: ../lib/types/nisObjectType.inc:77 +msgid "Path" +msgstr "Path" + +#: ../lib/modules/windowsUser.inc:205 +msgid "" +"Path of the user profile (UNC-path, e.g. \\\\server\\share\\user). $user is " +"replaced with user name." +msgstr "" +"Path of the user profile (UNC-path, e.g. \\\\server\\share\\user). $user is " +"replaced with user name." + +#: ../lib/modules/sambaSamAccount.inc:358 +msgid "Path of the user profile." +msgstr "Path of the user profile." + +#: ../lib/modules/sambaSamAccount.inc:309 +msgid "" +"Path of the user profile. Can be a local absolute path or a UNC-path (\\" +"\\server\\share). $user and $group are replaced with user and group name." +msgstr "" +"Path of the user profile. Can be a local absolute path or a UNC-path (\\" +"\\server\\share). $user and $group are replaced with user and group name." + +#: ../lib/modules/imapAccess.inc:112 ../lib/modules/imapAccess.inc:146 +msgid "Path separator" +msgstr "Path separator" + +#: ../templates/config/confmain.php:311 +msgid "Path to external script" +msgstr "Path to external script" + +#: ../lib/modules/ddns.inc:93 ../lib/modules/ddns.inc:371 +msgid "Path to key for DNS updates" +msgstr "Path to key for DNS updates" + +#: ../lib/modules/qmailGroup.inc:140 +msgid "" +"Path to the maildir/mbox on the mail system for sender confirmation and " +"moderation." +msgstr "" +"Path to the maildir/mbox on the mail system for sender confirmation and " +"moderation." + +#: ../lib/modules/qmailUser.inc:248 +msgid "Path to the maildir/mbox on the mail system." +msgstr "Path to the maildir/mbox on the mail system." + +#: ../lib/modules/pykotaUser.inc:152 ../lib/modules/pykotaUser.inc:326 +#: ../lib/modules/pykotaUser.inc:369 +msgid "Payment" +msgstr "Payment" + +#: ../lib/modules/pykotaUser.inc:148 +msgid "Payment and job history" +msgstr "Payment and job history" + +#: ../lib/modules/pykotaUser.inc:149 +msgid "Payment and job history for this user." +msgstr "Payment and job history for this user." + +#: ../lib/modules/pykotaUser.inc:265 ../lib/modules/pykotaUser.inc:283 +#: ../lib/modules/pykotaUser.inc:384 ../lib/modules/pykotaUser.inc:591 +#: ../lib/modules/pykotaUser.inc:983 +msgid "Payment history" +msgstr "Payment history" + +#: ../lib/tools/multiEdit.inc:53 +msgid "Performs modifications on multiple LDAP entries." +msgstr "Performs modifications on multiple LDAP entries." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:41 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:64 +msgid "Permanently delete all children also?" +msgstr "Permanently delete all children also?" + +#: ../lib/modules/asteriskAccount.inc:171 +#: ../lib/modules/asteriskAccount.inc:281 +#: ../lib/modules/asteriskAccount.inc:422 +#: ../lib/modules/asteriskAccount.inc:678 +#: ../lib/modules/asteriskAccount.inc:997 +#: ../lib/modules/asteriskAccount.inc:1263 +msgid "Permit" +msgstr "Permit" + +#: ../lib/modules/inetOrgPerson.inc:130 +msgid "Personal" +msgstr "Personal" + +#: ../lib/selfService.inc:389 +msgid "Personal data" +msgstr "Personal data" + +#: ../lib/types/user.inc:102 ../lib/types/user.inc:620 +#: ../lib/modules/inetOrgPerson.inc:159 ../lib/modules/inetOrgPerson.inc:2650 +#: ../lib/modules/inetOrgPerson.inc:2657 ../lib/modules/inetOrgPerson.inc:3563 +#: ../lib/modules/inetOrgPerson.inc:3590 ../lib/modules/inetOrgPerson.inc:3609 +msgid "Photo" +msgstr "Photo" + +#: ../lib/modules/inetOrgPerson.inc:1664 +msgid "Photo file" +msgstr "Photo file" + +#: ../lib/modules/inetOrgPerson.inc:1662 +msgid "Photo file (JPG format)" +msgstr "Photo file (JPG format)" + +#: ../lib/modules/asteriskAccount.inc:175 +#: ../lib/modules/asteriskAccount.inc:282 +#: ../lib/modules/asteriskAccount.inc:429 +#: ../lib/modules/asteriskAccount.inc:682 +#: ../lib/modules/asteriskAccount.inc:998 +#: ../lib/modules/asteriskAccount.inc:1265 +msgid "Pickup group" +msgstr "Pickup group" + +#: ../lib/modules/ldapPublicKey.inc:77 +msgid "Please a comma separated list of your public SSH keys." +msgstr "Please a comma separated list of your public SSH keys." + +#: ../lib/modules/nisMailAliasUser.inc:131 +msgid "Please activate the mail aliases type for this server profile." +msgstr "Please activate the mail aliases type for this server profile." + +#: ../lib/modules/customScripts.inc:85 +msgid "" +"Please activate this option if your scripts may generate HTML output. " +"Otherwise, the output is treated as plain text." +msgstr "" +"Please activate this option if your scripts may generate HTML output. " +"Otherwise, the output is treated as plain text." + +#: ../lib/modules/asteriskExtension.inc:193 +msgid "Please add at least one extension owner." +msgstr "Please add at least one extension owner." + +#: ../help/help.inc:157 +msgid "" +"Please change this setting only if you experience problems in receiving " +"emails from LAM. This defines the line ending of emails." +msgstr "" +"Please change this setting only if you experience problems in receiving " +"emails from LAM. This defines the line ending of emails." + +#: ../lib/modules/qmailGroup.inc:331 +msgid "Please check if this email should be sent." +msgstr "Please check if this email should be sent." + +#: ../lib/modules/sambaSamAccount.inc:1093 +msgid "Please check your settings on the Unix page!" +msgstr "Please check your settings on the Unix page!" + +#: ../lib/modules/imapAccess.inc:104 +msgid "" +"Please choose the attribute to get the IMAP user name. The default is \"mail" +"\" but you can also use \"uid\"." +msgstr "" +"Please choose the attribute to get the IMAP user name. The default is \"mail" +"\" but you can also use \"uid\"." + +#: ../lib/modules/passwordSelfReset.inc:543 +msgid "Please click here to continue: @@resetLink@@" +msgstr "Please click here to continue: @@resetLink@@" + +#: ../lib/types/user.inc:298 +msgid "Please click to lock/unlock this account." +msgstr "Please click to lock/unlock this account." + +#: ../lib/modules/pykotaPrinter.inc:219 +msgid "Please enter \"Yes\" or \"No\"." +msgstr "Please enter \"Yes\" or \"No\"." + +#: ../lib/modules/sambaSamAccount.inc:108 +msgid "Please enter a RID number or the name of a special account!" +msgstr "Please enter a RID number or the name of a special account!" + +#: ../lib/modules/asteriskAccount.inc:555 +msgid "Please enter a caller ID." +msgstr "Please enter a caller ID." + +#: ../lib/modules/imapAccess.inc:101 +msgid "" +"Please enter a comma separated list of domain names (e.g. \"company.com," +"example.com\"). LAM will only manage mailboxes from these domains." +msgstr "" +"Please enter a comma separated list of domain names (e.g. \"company.com," +"example.com\"). LAM will only manage mailboxes from these domains." + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +msgid "Please enter a comma separated list of host names!" +msgstr "Please enter a comma separated list of host names!" + +#: ../lib/modules/asteriskExtension.inc:185 +msgid "Please enter a common name." +msgstr "Please enter a common name." + +#: ../lib/modules/imapAccess.inc:178 +msgid "Please enter a correct list of valid mail domains." +msgstr "Please enter a correct list of valid mail domains." + +#: ../lib/modules/sudoRole.inc:130 ../lib/modules/sudoRole.inc:135 +#: ../lib/modules/sudoRole.inc:281 ../lib/modules/sudoRole.inc:282 +#: ../lib/modules/sudoRole.inc:283 ../lib/modules/sudoRole.inc:284 +msgid "Please enter a date in format \"DD.MM.YYYY HH:MM\" or \"DD.MM.YYYY\"." +msgstr "Please enter a date in format \"DD.MM.YYYY HH:MM\" or \"DD.MM.YYYY\"." + +#: ../lib/modules/customFields.inc:89 +msgid "Please enter a descriptive label for this field." +msgstr "Please enter a descriptive label for this field." + +#: ../lib/modules/nisObject.inc:62 ../lib/modules/automount.inc:65 +#: ../lib/modules/sudoRole.inc:67 ../lib/modules/oracleService.inc:62 +msgid "Please enter a descriptive name for this entry." +msgstr "Please enter a descriptive name for this entry." + +#: ../lib/modules/windowsGroup.inc:119 +msgid "Please enter a descriptive text for this group." +msgstr "Please enter a descriptive text for this group." + +#: ../lib/modules/windowsHost.inc:79 +msgid "Please enter a descriptive text for this host." +msgstr "Please enter a descriptive text for this host." + +#: ../lib/modules/windowsUser.inc:120 +msgid "Please enter a descriptive text for this user." +msgstr "Please enter a descriptive text for this user." + +#: ../lib/modules/organizationalRole.inc:173 +#: ../lib/modules/groupOfNames.inc:209 +msgid "Please enter a group name!" +msgstr "Please enter a group name!" + +#: ../lib/modules/windowsUser.inc:241 +msgid "" +"Please enter a list of Windows domains that can be selected for your user " +"accounts." +msgstr "" +"Please enter a list of Windows domains that can be selected for your user " +"accounts." + +#: ../lib/modules/selfRegistration.inc:120 +msgid "Please enter a list of object classes for the new accounts." +msgstr "Please enter a list of object classes for the new accounts." + +#: ../lib/modules/asteriskVoicemail.inc:209 +msgid "Please enter a mailbox." +msgstr "Please enter a mailbox." + +#: ../lib/modules/device.inc:62 +msgid "Please enter a name for this device." +msgstr "Please enter a name for this device." + +#: ../lib/modules/kolabSharedFolder.inc:113 +msgid "Please enter a name for this folder." +msgstr "Please enter a name for this folder." + +#: ../lib/modules/ppolicy.inc:165 +msgid "Please enter a name for this policy." +msgstr "Please enter a name for this policy." + +#: ../lib/modules/kolabSharedFolder.inc:261 +msgid "Please enter a name." +msgstr "Please enter a name." + +#: ../lib/modules/customFields.inc:2626 +msgid "Please enter a natural number for column count." +msgstr "Please enter a natural number for column count." + +#: ../lib/modules/customFields.inc:2636 +msgid "Please enter a natural number for row count." +msgstr "Please enter a natural number for row count." + +#: ../lib/modules/qmailUser.inc:465 ../lib/modules/qmailUser.inc:467 +msgid "Please enter a number for GID number." +msgstr "Please enter a number for GID number." + +#: ../lib/modules/qmailUser.inc:462 ../lib/modules/qmailUser.inc:464 +msgid "Please enter a number for UID number." +msgstr "Please enter a number for UID number." + +#: ../lib/modules/qmailUser.inc:458 ../lib/modules/qmailUser.inc:459 +msgid "Please enter a number for message count limit." +msgstr "Please enter a number for message count limit." + +#: ../lib/modules/qmailUser.inc:460 ../lib/modules/qmailUser.inc:461 +msgid "Please enter a number for message size limit." +msgstr "Please enter a number for message size limit." + +#: ../lib/modules/qmailUser.inc:456 ../lib/modules/qmailUser.inc:457 +msgid "Please enter a number for quota size." +msgstr "Please enter a number for quota size." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:51 +#: ../templates/lib/141_jquery-validationEngine-lang.php:55 +#: ../lib/modules/mitKerberos.inc:298 ../lib/modules/zarafaUser.inc:408 +#: ../lib/modules/zarafaUser.inc:409 ../lib/modules/zarafaUser.inc:410 +#: ../lib/modules/zarafaUser.inc:411 ../lib/modules/zarafaUser.inc:412 +#: ../lib/modules/zarafaUser.inc:413 ../lib/modules/zarafaUser.inc:415 +#: ../lib/modules/zarafaUser.inc:416 ../lib/modules/bindDLZ.inc:476 +#: ../lib/modules/kolabUser.inc:257 ../lib/modules/kolabUser.inc:258 +#: ../lib/modules/sudoRole.inc:285 ../lib/modules/sudoRole.inc:286 +msgid "Please enter a number." +msgstr "Please enter a number." + +#: ../lib/modules/ppolicy.inc:174 +msgid "Please enter a numeric value for the expire warning." +msgstr "Please enter a numeric value for the expire warning." + +#: ../lib/modules/ppolicy.inc:173 +msgid "Please enter a numeric value for the failure count interval." +msgstr "Please enter a numeric value for the failure count interval." + +#: ../lib/modules/ppolicy.inc:170 +msgid "Please enter a numeric value for the grace authentication limit." +msgstr "Please enter a numeric value for the grace authentication limit." + +#: ../lib/modules/freeRadius.inc:259 ../lib/modules/freeRadius.inc:260 +msgid "Please enter a numeric value for the idle timeout." +msgstr "Please enter a numeric value for the idle timeout." + +#: ../lib/modules/ppolicy.inc:171 +msgid "Please enter a numeric value for the lockout duration." +msgstr "Please enter a numeric value for the lockout duration." + +#: ../lib/modules/ppolicy.inc:172 +msgid "Please enter a numeric value for the maximum failure count." +msgstr "Please enter a numeric value for the maximum failure count." + +#: ../lib/modules/ppolicy.inc:175 +msgid "Please enter a numeric value for the minimum password length." +msgstr "Please enter a numeric value for the minimum password length." + +#: ../lib/modules/ppolicy.inc:169 +msgid "Please enter a numeric value for the password history length." +msgstr "Please enter a numeric value for the password history length." + +#: ../lib/modules/sudoRole.inc:267 +msgid "Please enter a role name." +msgstr "Please enter a role name." + +#: ../lib/modules/passwordSelfReset.inc:1203 +msgid "Please enter a security answer." +msgstr "Please enter a security answer." + +#: ../lib/modules/selfRegistration.inc:118 +msgid "Please enter a subject for the confirmation mails." +msgstr "Please enter a subject for the confirmation mails." + +#: ../lib/modules/kolabSharedFolder.inc:262 +msgid "Please enter a target folder." +msgstr "Please enter a target folder." + +#: ../lib/modules/selfRegistration.inc:119 +msgid "" +"Please enter a text for the confirmation mails that includes the creation " +"link." +msgstr "" +"Please enter a text for the confirmation mails that includes the creation " +"link." + +#: ../lib/modules/customFields.inc:85 +msgid "Please enter a unique name for this field." +msgstr "Please enter a unique name for this field." + +#: ../lib/modules/ppolicy.inc:81 +msgid "Please enter a unique name for this password policy." +msgstr "Please enter a unique name for this password policy." + +#: ../lib/modules/kolabUser.inc:274 ../lib/modules/kolabUser.inc:280 +msgid "Please enter a user password." +msgstr "Please enter a user password." + +#: ../lib/modules/zarafaDynamicGroup.inc:198 ../lib/modules/eduPerson.inc:245 +#: ../lib/modules/eduPerson.inc:247 ../lib/modules/zarafaAddressList.inc:169 +msgid "Please enter a valid DN in the field:" +msgstr "Please enter a valid DN in the field:" + +#: ../lib/types/bind.inc:205 +msgid "Please enter a valid DNS name." +msgstr "Please enter a valid DNS name." + +#: ../lib/modules/customFields.inc:1189 ../lib/modules/customFields.inc:1746 +msgid "" +"Please enter a valid LDAP attribute name. Allowed characters are a-z, 0-9, _ " +"and -." +msgstr "" +"Please enter a valid LDAP attribute name. Allowed characters are a-z, 0-9, _ " +"and -." + +#: ../templates/selfService/adminMain.php:221 +msgid "Please enter a valid LDAP suffix." +msgstr "Please enter a valid LDAP suffix." + +#: ../templates/selfService/adminMain.php:225 +msgid "" +"Please enter a valid LDAP user if you want to use it for all operations." +msgstr "" +"Please enter a valid LDAP user if you want to use it for all operations." + +#: ../lib/modules/qmailUser.inc:454 +msgid "Please enter a valid account status." +msgstr "Please enter a valid account status." + +#: ../lib/modules/bindDLZ.inc:529 ../lib/modules/bindDLZ.inc:530 +msgid "Please enter a valid admin email address." +msgstr "Please enter a valid admin email address." + +#: ../templates/config/confmain.php:554 +msgid "Please enter a valid bind user." +msgstr "Please enter a valid bind user." + +#: ../lib/modules/inetOrgPerson.inc:103 ../lib/modules/inetOrgPerson.inc:104 +msgid "Please enter a valid business category!" +msgstr "Please enter a valid business category!" + +#: ../lib/modules/posixAccount.inc:129 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/windowsUser.inc:591 ../lib/modules/windowsUser.inc:592 +#: ../lib/modules/inetOrgPerson.inc:93 ../lib/modules/inetOrgPerson.inc:94 +msgid "Please enter a valid common name!" +msgstr "Please enter a valid common name!" + +#: ../lib/modules/qmailUser.inc:471 +msgid "Please enter a valid configuration type." +msgstr "Please enter a valid configuration type." + +#: ../lib/modules/mitKerberos.inc:291 ../lib/modules/mitKerberos.inc:292 +#: ../lib/modules/qmailUser.inc:470 ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/heimdalKerberos.inc:255 +#: ../lib/modules/heimdalKerberos.inc:256 +msgid "Please enter a valid date in format DD-MM-YYYY." +msgstr "Please enter a valid date in format DD-MM-YYYY." + +#: ../lib/modules/asteriskAccount.inc:576 +#: ../lib/modules/asteriskAccount.inc:577 +msgid "Please enter a valid default user." +msgstr "Please enter a valid default user." + +#: ../lib/modules/qmailUser.inc:455 +msgid "Please enter a valid delivery mode." +msgstr "Please enter a valid delivery mode." + +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:111 ../lib/modules/windowsUser.inc:595 +#: ../lib/modules/windowsUser.inc:596 +msgid "Please enter a valid display name!" +msgstr "Please enter a valid display name!" + +#: ../lib/modules/sambaSamAccount.inc:117 ../lib/modules/windowsUser.inc:617 +msgid "Please enter a valid drive letter." +msgstr "Please enter a valid drive letter." + +#: ../lib/modules/kolabGroup.inc:177 ../lib/modules/kolabGroup.inc:178 +#: ../lib/modules/selfRegistration.inc:122 +#: ../lib/modules/selfRegistration.inc:482 +#: ../lib/modules/zarafaDynamicGroup.inc:200 +#: ../lib/modules/zarafaDynamicGroup.inc:201 ../lib/modules/qmailUser.inc:448 +#: ../lib/modules/qmailUser.inc:449 ../lib/modules/qmailUser.inc:450 +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:453 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:216 ../lib/modules/windowsUser.inc:607 +#: ../lib/modules/windowsUser.inc:608 ../lib/modules/pykotaUser.inc:319 +#: ../lib/modules/pykotaUser.inc:320 ../lib/modules/inetOrgPerson.inc:78 +#: ../lib/modules/inetOrgPerson.inc:80 +#: ../lib/modules/kolabSharedFolder.inc:259 +#: ../lib/modules/kolabSharedFolder.inc:260 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:421 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:425 +#: ../lib/modules/qmailGroup.inc:426 ../lib/modules/qmailGroup.inc:427 +#: ../lib/modules/qmailGroup.inc:428 ../lib/modules/qmailGroup.inc:429 +#: ../lib/modules/qmailGroup.inc:430 ../lib/modules/qmailGroup.inc:431 +#: ../lib/modules/qmailGroup.inc:432 ../lib/modules/passwordSelfReset.inc:232 +#: ../lib/modules/passwordSelfReset.inc:233 +#: ../lib/modules/passwordSelfReset.inc:900 +#: ../lib/modules/passwordSelfReset.inc:1122 +#: ../lib/modules/windowsGroup.inc:285 ../lib/modules/windowsGroup.inc:286 +#: ../lib/modules.inc:1170 +msgid "Please enter a valid email address!" +msgstr "Please enter a valid email address!" + +#: ../lib/modules/zarafaDynamicGroup.inc:202 +#: ../lib/modules/zarafaDynamicGroup.inc:203 +#: ../lib/modules/zarafaGroup.inc:217 ../lib/modules/zarafaGroup.inc:218 +msgid "Please enter a valid email alias." +msgstr "Please enter a valid email alias." + +#: ../lib/modules/passwordSelfReset.inc:907 +#: ../lib/modules/passwordSelfReset.inc:1129 +msgid "Please enter a valid employee number." +msgstr "Please enter a valid employee number." + +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:92 +msgid "Please enter a valid employee type!" +msgstr "Please enter a valid employee type!" + +#: ../lib/modules/inetOrgPerson.inc:76 ../lib/modules/inetOrgPerson.inc:77 +msgid "Please enter a valid fax number!" +msgstr "Please enter a valid fax number!" + +#: ../lib/modules/customFields.inc:187 +msgid "" +"Please enter a valid field name. Only letters, numbers, dash and underline " +"are allowed." +msgstr "" +"Please enter a valid field name. Only letters, numbers, dash and underline " +"are allowed." + +#: ../lib/lists.inc:229 +msgid "" +"Please enter a valid filter. Only letters, numbers and \" _*$.@-\" are " +"allowed." +msgstr "" +"Please enter a valid filter. Only letters, numbers and \" _*$.@-\" are " +"allowed." + +#: ../lib/modules/selfRegistration.inc:83 +#: ../lib/modules/selfRegistration.inc:218 +msgid "Please enter a valid first name." +msgstr "Please enter a valid first name." + +#: ../lib/modules/asteriskAccount.inc:570 +#: ../lib/modules/asteriskAccount.inc:571 +msgid "Please enter a valid from domain." +msgstr "Please enter a valid from domain." + +#: ../lib/modules/asteriskAccount.inc:568 +#: ../lib/modules/asteriskAccount.inc:569 +msgid "Please enter a valid from user." +msgstr "Please enter a valid from user." + +#: ../lib/modules/sambaSamAccount.inc:121 +msgid "Please enter a valid group name!" +msgstr "Please enter a valid group name!" + +#: ../lib/modules/windowsGroup.inc:287 +msgid "Please enter a valid group scope." +msgstr "Please enter a valid group scope." + +#: ../lib/modules/windowsGroup.inc:288 +msgid "Please enter a valid group type." +msgstr "Please enter a valid group type." + +#: ../lib/modules/pykotaUser.inc:327 +msgid "Please enter a valid job suffix." +msgstr "Please enter a valid job suffix." + +#: ../lib/modules/inetOrgPerson.inc:89 ../lib/modules/inetOrgPerson.inc:90 +msgid "Please enter a valid job title!" +msgstr "Please enter a valid job title!" + +#: ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:219 +msgid "Please enter a valid last name." +msgstr "Please enter a valid last name." + +#: ../lib/modules/pykotaGroup.inc:205 ../lib/modules/pykotaUser.inc:321 +msgid "Please enter a valid limit type." +msgstr "Please enter a valid limit type." + +#: ../lib/modules/eduPerson.inc:253 +msgid "Please enter a valid list of affiliations." +msgstr "Please enter a valid list of affiliations." + +#: ../lib/modules/freeRadius.inc:255 ../lib/modules/freeRadius.inc:256 +msgid "Please enter a valid list of group names." +msgstr "Please enter a valid list of group names." + +#: ../lib/modules/hostObject.inc:111 +msgid "Please enter a valid list of host names." +msgstr "Please enter a valid list of host names." + +#: ../lib/modules/authorizedServiceObject.inc:130 +msgid "Please enter a valid list of service names." +msgstr "Please enter a valid list of service names." + +#: ../lib/modules/inetOrgPerson.inc:74 ../lib/modules/inetOrgPerson.inc:75 +msgid "Please enter a valid mobile number!" +msgstr "Please enter a valid mobile number!" + +#: ../lib/modules/pykotaPrinter.inc:215 ../lib/modules/pykotaPrinter.inc:216 +#: ../lib/modules/pykotaPrinter.inc:217 ../lib/modules/pykotaPrinter.inc:218 +#: ../lib/modules/pykotaUser.inc:322 ../lib/modules/pykotaUser.inc:323 +#: ../lib/modules/pykotaUser.inc:324 ../lib/modules/pykotaUser.inc:325 +#: ../lib/modules/pykotaUser.inc:326 +msgid "Please enter a valid number (e.g. \"1.5\")." +msgstr "Please enter a valid number (e.g. \"1.5\")." + +#: ../lib/modules/pykotaPrinter.inc:213 ../lib/modules/pykotaPrinter.inc:214 +msgid "Please enter a valid number." +msgstr "Please enter a valid number." + +#: ../lib/modules/customFields.inc:190 +msgid "Please enter a valid object class." +msgstr "Please enter a valid object class." + +#: ../lib/modules/dhcp_settings.inc:331 +msgid "Please enter a valid option." +msgstr "Please enter a valid option." + +#: ../lib/modules/zarafaServer.inc:177 ../lib/modules/zarafaServer.inc:178 +msgid "Please enter a valid path." +msgstr "Please enter a valid path." + +#: ../lib/modules/asteriskAccount.inc:572 +#: ../lib/modules/asteriskAccount.inc:573 ../lib/modules/zarafaServer.inc:173 +#: ../lib/modules/zarafaServer.inc:174 ../lib/modules/zarafaServer.inc:175 +#: ../lib/modules/zarafaServer.inc:176 +msgid "Please enter a valid port number." +msgstr "Please enter a valid port number." + +#: ../lib/modules/inetOrgPerson.inc:83 ../lib/modules/inetOrgPerson.inc:84 +msgid "Please enter a valid postal address!" +msgstr "Please enter a valid postal address!" + +#: ../lib/modules/windowsUser.inc:605 ../lib/modules/windowsUser.inc:606 +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:88 +msgid "Please enter a valid postal code!" +msgstr "Please enter a valid postal code!" + +#: ../lib/modules/eduPerson.inc:251 +msgid "Please enter a valid primary affiliation." +msgstr "Please enter a valid primary affiliation." + +#: ../lib/modules/freeRadius.inc:253 ../lib/modules/freeRadius.inc:254 +msgid "Please enter a valid realm." +msgstr "Please enter a valid realm." + +#: ../lib/modules/kolabGroup.inc:181 ../lib/modules/kolabGroup.inc:182 +#: ../lib/modules/kolabUser.inc:253 ../lib/modules/kolabUser.inc:254 +#: ../lib/modules/kolabSharedFolder.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:251 +msgid "Please enter a valid recipient expression." +msgstr "Please enter a valid recipient expression." + +#: ../lib/modules/inetOrgPerson.inc:85 ../lib/modules/inetOrgPerson.inc:86 +msgid "Please enter a valid registered address." +msgstr "Please enter a valid registered address." + +#: ../lib/modules/eduPerson.inc:252 +msgid "Please enter a valid scoped affiliation." +msgstr "Please enter a valid scoped affiliation." + +#: ../lib/modules/kolabGroup.inc:183 ../lib/modules/kolabGroup.inc:184 +#: ../lib/modules/kolabUser.inc:255 ../lib/modules/kolabUser.inc:256 +#: ../lib/modules/kolabSharedFolder.inc:252 +#: ../lib/modules/kolabSharedFolder.inc:253 +msgid "Please enter a valid sender expression." +msgstr "Please enter a valid sender expression." + +#: ../lib/modules/qmailUser.inc:468 ../lib/modules/qmailUser.inc:469 +#: ../lib/modules/imapAccess.inc:177 +msgid "Please enter a valid server name where the mailboxes reside." +msgstr "Please enter a valid server name where the mailboxes reside." + +#: ../lib/modules/inetOrgPerson.inc:81 ../lib/modules/inetOrgPerson.inc:82 +msgid "Please enter a valid street name!" +msgstr "Please enter a valid street name!" + +#: ../lib/modules/windowsUser.inc:601 ../lib/modules/windowsUser.inc:602 +#: ../lib/modules/windowsUser.inc:603 ../lib/modules/windowsUser.inc:604 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:71 +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:73 +msgid "Please enter a valid telephone number!" +msgstr "Please enter a valid telephone number!" + +#: ../lib/modules/passwordSelfReset.inc:921 +#: ../lib/modules/passwordSelfReset.inc:1143 +msgid "Please enter a valid user name or email address." +msgstr "Please enter a valid user name or email address." + +#: ../lib/modules/posixGroup.inc:724 ../lib/modules/posixAccount.inc:1160 +#: ../lib/modules/posixAccount.inc:1165 +#, php-format +msgid "Please enter a value between %s and %s!" +msgstr "Please enter a value between %s and %s!" + +#: ../lib/modules/customFields.inc:2780 +msgid "Please enter a value for status \"checked\"." +msgstr "Please enter a value for status \"checked\"." + +#: ../lib/modules/customFields.inc:2787 +msgid "Please enter a value for status \"unchecked\"." +msgstr "Please enter a value for status \"unchecked\"." + +#: ../templates/multiEdit.php:140 +msgid "Please enter a value to add." +msgstr "Please enter a value to add." + +#: ../templates/multiEdit.php:143 +msgid "Please enter a value to modify." +msgstr "Please enter a value to modify." + +#: ../lib/modules/customFields.inc:77 +msgid "Please enter an alias for this group." +msgstr "Please enter an alias for this group." + +#: ../lib/modules/customFields.inc:189 +msgid "Please enter an alias name." +msgstr "Please enter an alias name." + +#: ../lib/modules/kolabUser.inc:286 ../lib/modules/imapAccess.inc:208 +#, php-format +msgid "Please enter an email address on this page: %s" +msgstr "Please enter an email address on this page: %s" + +#: ../lib/modules/pykotaUser.inc:353 +#, php-format +msgid "Please enter an user name on this page: %s" +msgstr "Please enter an user name on this page: %s" + +#: ../lib/modules/windowsUser.inc:1352 ../lib/modules/windowsUser.inc:1361 +#: ../lib/modules/windowsUser.inc:1370 ../lib/modules/windowsUser.inc:1381 +msgid "Please enter either yes or no." +msgstr "Please enter either yes or no." + +#: ../lib/modules/sudoRole.inc:273 ../lib/modules/sudoRole.inc:274 +msgid "Please enter only ASCII characters for the commands." +msgstr "Please enter only ASCII characters for the commands." + +#: ../lib/modules/sudoRole.inc:271 ../lib/modules/sudoRole.inc:272 +msgid "Please enter only ASCII characters for the host names." +msgstr "Please enter only ASCII characters for the host names." + +#: ../lib/modules/sudoRole.inc:279 ../lib/modules/sudoRole.inc:280 +msgid "Please enter only ASCII characters for the options." +msgstr "Please enter only ASCII characters for the options." + +#: ../lib/modules/sudoRole.inc:277 ../lib/modules/sudoRole.inc:278 +msgid "Please enter only ASCII characters for the run groups." +msgstr "Please enter only ASCII characters for the run groups." + +#: ../lib/modules/sudoRole.inc:275 ../lib/modules/sudoRole.inc:276 +msgid "Please enter only ASCII characters for the run users." +msgstr "Please enter only ASCII characters for the run users." + +#: ../lib/modules/device.inc:140 ../lib/modules/device.inc:141 +msgid "Please enter only ASCII characters for the serial number." +msgstr "Please enter only ASCII characters for the serial number." + +#: ../lib/modules/sudoRole.inc:269 ../lib/modules/sudoRole.inc:270 +msgid "Please enter only ASCII characters for the user names." +msgstr "Please enter only ASCII characters for the user names." + +#: ../lib/modules/passwordSelfReset.inc:231 +msgid "" +"Please enter the DN and password of the administrative password self reset " +"account." +msgstr "" +"Please enter the DN and password of the administrative password self reset " +"account." + +#: ../lib/modules/selfRegistration.inc:117 +msgid "" +"Please enter the DN and password of the administrative self registration " +"account." +msgstr "" +"Please enter the DN and password of the administrative self registration " +"account." + +#: ../lib/modules/posixGroup.inc:525 ../lib/modules/posixAccount.inc:502 +msgid "" +"Please enter the DN of the LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "" +"Please enter the DN of the LDAP entry with object class \"sambaUnixIdPool\"." + +#: ../lib/modules/bindDLZ.inc:93 ../lib/modules/bindDLZ.inc:97 +msgid "Please enter the IP address for this entry." +msgstr "Please enter the IP address for this entry." + +#: ../lib/modules/ddns.inc:99 +msgid "Please enter the IP address of your DNS server." +msgstr "Please enter the IP address of your DNS server." + +#: ../lib/modules/selfRegistration.inc:62 +msgid "Please enter the LDAP DN that should be used to create new users." +msgstr "Please enter the LDAP DN that should be used to create new users." + +#: ../lib/modules/passwordSelfReset.inc:105 +msgid "Please enter the LDAP DN that should be used to reset passwords." +msgstr "Please enter the LDAP DN that should be used to reset passwords." + +#: ../lib/modules/customFields.inc:93 +msgid "Please enter the LDAP attribute name for this field." +msgstr "Please enter the LDAP attribute name for this field." + +#: ../help/help.inc:123 +msgid "" +"Please enter the LDAP suffix where LAM should start to search for users. The " +"LDAP filter needs to match the given user name to exactly one DN. The value " +"\"%USER%\" will be replaced by the user name from the login page." +msgstr "" +"Please enter the LDAP suffix where LAM should start to search for users. The " +"LDAP filter needs to match the given user name to exactly one DN. The value " +"\"%USER%\" will be replaced by the user name from the login page." + +#: ../lib/modules/pykotaUser.inc:157 +msgid "" +"Please enter the LDAP suffix where the PyKota job entries are stored " +"(configuration option \"jobbase\")." +msgstr "" +"Please enter the LDAP suffix where the PyKota job entries are stored " +"(configuration option \"jobbase\")." + +#: ../lib/modules/asteriskExtension.inc:188 +#: ../lib/modules/asteriskVoicemail.inc:214 +msgid "Please enter the account context." +msgstr "Please enter the account context." + +#: ../lib/modules.inc:928 +msgid "Please enter the account information on the other pages first." +msgstr "Please enter the account information on the other pages first." + +#: ../lib/modules/asteriskAccount.inc:565 +msgid "Please enter the account type." +msgstr "Please enter the account type." + +#: ../lib/modules/asteriskAccount.inc:120 +msgid "Please enter the account's type (e.g. \"friend\")." +msgstr "Please enter the account's type (e.g. \"friend\")." + +#: ../lib/modules/asteriskExtension.inc:187 +msgid "Please enter the application data." +msgstr "Please enter the application data." + +#: ../lib/modules/asteriskExtension.inc:186 +msgid "Please enter the application." +msgstr "Please enter the application." + +#: ../lib/modules/automount.inc:69 +msgid "" +"Please enter the automount entry (e.g. \"-fstype=nfs,rw server:/home\")." +msgstr "" +"Please enter the automount entry (e.g. \"-fstype=nfs,rw server:/home\")." + +#: ../templates/login.php:292 +msgid "Please enter the configuration and create a server profile." +msgstr "Please enter the configuration and create a server profile." + +#: ../help/help.inc:57 +msgid "" +"Please enter the configuration password. This is NOT your LDAP password. It " +"is stored in your .conf-file. If this is the first time you log in, enter " +"\"lam\"." +msgstr "" +"Please enter the configuration password. This is NOT your LDAP password. It " +"is stored in your .conf-file. If this is the first time you log in, enter " +"\"lam\"." + +#: ../lib/modules/oracleService.inc:66 +msgid "" +"Please enter the connection string (e.g. \"(DESCRIPTION=(ADDRESS=" +"(PROTOCOL=TCP)(HOST=server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db." +"example.com)))\")." +msgstr "" +"Please enter the connection string (e.g. \"(DESCRIPTION=(ADDRESS=" +"(PROTOCOL=TCP)(HOST=server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db." +"example.com)))\")." + +#: ../lib/modules/puppetClient.inc:81 ../lib/modules/puppetClient.inc:85 +msgid "Please enter the environment name for this node (e.g. production)." +msgstr "Please enter the environment name for this node (e.g. production)." + +#: ../lib/modules/asteriskAccount.inc:559 +msgid "Please enter the extension context." +msgstr "Please enter the extension context." + +#: ../lib/modules/asteriskExtension.inc:189 +msgid "Please enter the extension name." +msgstr "Please enter the extension name." + +#: ../lib/modules/windowsGroup.inc:115 +msgid "Please enter the group name." +msgstr "Please enter the group name." + +#: ../lib/modules/asteriskAccount.inc:562 ../lib/modules/windowsHost.inc:75 +msgid "Please enter the host name." +msgstr "Please enter the host name." + +#: ../lib/modules/customScripts.inc:60 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [account type] [action] [script and arguments]" +msgstr "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [account type] [action] [script and arguments]" + +#: ../lib/modules/customScripts.inc:74 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [action] [script and arguments]" +msgstr "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [action] [script and arguments]" + +#: ../lib/modules/nisObject.inc:66 +msgid "" +"Please enter the mapping entry (e.g. \"-fstype=nfs,rw server:/projects\")." +msgstr "" +"Please enter the mapping entry (e.g. \"-fstype=nfs,rw server:/projects\")." + +#: ../lib/modules/nisObject.inc:70 +msgid "Please enter the mapping name for this entry (e.g. auto.home)." +msgstr "Please enter the mapping name for this entry (e.g. auto.home)." + +#: ../help/help.inc:143 +msgid "" +"Please enter the master configuration password. This is NOT your LDAP " +"password. It is stored in your config.cfg file. If this is the first time " +"you log in, enter \"lam\"." +msgstr "" +"Please enter the master configuration password. This is NOT your LDAP " +"password. It is stored in your config.cfg file. If this is the first time " +"you log in, enter \"lam\"." + +#: ../templates/config/mainlogin.php:145 +msgid "Please enter the master password to change the general preferences:" +msgstr "Please enter the master password to change the general preferences:" + +#: ../lib/modules/qmailGroup.inc:424 +msgid "Please enter the message store." +msgstr "Please enter the message store." + +#: ../help/help.inc:131 +msgid "" +"Please enter the name of the new profile and the password to change its " +"settings. Profile names may contain letters, numbers and -/_." +msgstr "" +"Please enter the name of the new profile and the password to change its " +"settings. Profile names may contain letters, numbers and -/_." + +#: ../help/help.inc:133 +msgid "" +"Please enter the new name of the profile. The name may contain letters, " +"numbers and -/_." +msgstr "" +"Please enter the new name of the profile. The name may contain letters, " +"numbers and -/_." + +#: ../lib/modules/selfRegistration.inc:66 +#: ../lib/modules/passwordSelfReset.inc:109 +msgid "" +"Please enter the password for the admin DN. Please note that this is saved " +"as clear-text in the self service profile." +msgstr "" +"Please enter the password for the admin DN. Please note that this is saved " +"as clear-text in the self service profile." + +#: ../lib/modules/asteriskAccount.inc:116 ../lib/modules/posixAccount.inc:523 +#: ../lib/modules/windowsUser.inc:224 ../lib/modules/inetOrgPerson.inc:841 +msgid "Please enter the password which you want to set for this account." +msgstr "Please enter the password which you want to set for this account." + +#: ../help/help.inc:203 +msgid "" +"Please enter the password which you want to set for this account. You may " +"also generate a random password (12 characters) which will be displayed on " +"your screen." +msgstr "" +"Please enter the password which you want to set for this account. You may " +"also generate a random password (12 characters) which will be displayed on " +"your screen." + +#: ../lib/modules/posixAccount.inc:474 +msgid "Please enter the path to the user's home directory." +msgstr "Please enter the path to the user's home directory." + +#: ../lib/modules/zarafaServer.inc:69 +msgid "Please enter the port number for (unencrypted) HTTP connections." +msgstr "Please enter the port number for (unencrypted) HTTP connections." + +#: ../lib/modules/zarafaServer.inc:73 +msgid "Please enter the port number for encrypted connections." +msgstr "Please enter the port number for encrypted connections." + +#: ../lib/modules/passwordSelfReset.inc:81 +msgid "" +"Please enter the possible security questions for the password self reset." +msgstr "" +"Please enter the possible security questions for the password self reset." + +#: ../lib/modules/asteriskExtension.inc:191 +msgid "Please enter the priority." +msgstr "Please enter the priority." + +#: ../lib/modules/imapAccess.inc:110 +msgid "Please enter the quota limit of this mailbox in kilobytes." +msgstr "Please enter the quota limit of this mailbox in kilobytes." + +#: ../lib/modules/quota.inc:154 +msgid "" +"Please enter the quota settings for this mount point. The syntax is: {soft " +"block limit},{hard block limit},{soft inode limit},{hard inode limit}" +msgstr "" +"Please enter the quota settings for this mount point. The syntax is: {soft " +"block limit},{hard block limit},{soft inode limit},{hard inode limit}" + +#: ../lib/modules/systemQuotas.inc:69 +msgid "" +"Please enter the quota settings for this user. The syntax is: {mount point}," +"{soft block limit},{hard block limit},{soft inode limit},{hard inode limit}." +msgstr "" +"Please enter the quota settings for this user. The syntax is: {mount point}," +"{soft block limit},{hard block limit},{soft inode limit},{hard inode limit}." + +#: ../lib/modules/nisMailAlias.inc:86 +msgid "Please enter the recipients for this alias." +msgstr "Please enter the recipients for this alias." + +#: ../lib/modules/customFields.inc:109 +#, php-format +msgid "" +"Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") to validate " +"this field. For a syntax description see here." +msgstr "" +"Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") to validate " +"this field. For a syntax description see here." + +#: ../templates/lists/changePassword.php:517 +#: ../lib/modules/selfRegistration.inc:533 +#: ../lib/modules/sambaSamAccount.inc:105 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/windowsUser.inc:615 ../lib/modules/customFields.inc:2533 +msgid "Please enter the same password in both password fields." +msgstr "Please enter the same password in both password fields." + +#: ../lib/modules/passwordSelfReset.inc:77 +msgid "Please enter the security question for the password self reset." +msgstr "Please enter the security question for the password self reset." + +#: ../lib/modules/sambaSamAccount.inc:370 +msgid "Please enter the time limit in minutes. 0 means unlimited." +msgstr "Please enter the time limit in minutes. 0 means unlimited." + +#: ../lib/modules/windowsUser.inc:108 ../lib/modules/windowsUser.inc:116 +msgid "Please enter the user's name." +msgstr "Please enter the user's name." + +#: ../lib/modules/puppetClient.inc:101 ../lib/modules/puppetClient.inc:105 +msgid "" +"Please enter your Puppet variables for this node (e.g. config_exim=true)." +msgstr "" +"Please enter your Puppet variables for this node (e.g. config_exim=true)." + +#: ../templates/selfService/adminLogin.php:133 +msgid "" +"Please enter your master configuration password to change the self service " +"profile:" +msgstr "" +"Please enter your master configuration password to change the self service " +"profile:" + +#: ../templates/config/conflogin.php:132 +msgid "Please enter your password to change the server preferences:" +msgstr "Please enter your password to change the server preferences:" + +#: ../lib/modules/ldapPublicKey.inc:73 +msgid "Please enter your public SSH key." +msgstr "Please enter your public SSH key." + +#: ../lib/modules/range.inc:402 ../lib/modules/fixed_ip.inc:404 +msgid "Please fill out the DHCP settings first." +msgstr "Please fill out the DHCP settings first." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "Please go back and try again." +msgstr "Please go back and try again." + +#: ../templates/masscreate.php:246 +msgid "" +"Please provide a CSV formated file with your account data. The cells in the " +"first row must be filled with the column identifiers. The following rows " +"represent one account for each row." +msgstr "" +"Please provide a CSV formated file with your account data. The cells in the " +"first row must be filled with the column identifiers. The following rows " +"represent one account for each row." + +#: ../lib/config.inc:1768 +msgid "Please provide a file in DER or PEM format." +msgstr "Please provide a file in DER or PEM format." + +#: ../templates/massBuildAccounts.php:256 +msgid "Please provide a file to upload." +msgstr "Please provide a file to upload." + +#: ../lib/modules/inetOrgPerson.inc:749 +msgid "" +"Please select an image file to upload. It must be in JPG format (.jpg/.jpeg)." +msgstr "" +"Please select an image file to upload. It must be in JPG format (.jpg/.jpeg)." + +#: ../lib/modules/customFields.inc:101 +msgid "Please select the field type (e.g. text field)." +msgstr "Please select the field type (e.g. text field)." + +#: ../help/help.inc:270 +msgid "Please select the suffix where changes should be done." +msgstr "Please select the suffix where changes should be done." + +#: ../help/help.inc:149 +msgid "" +"Please select your prefered log level. Messages with a lower level will not " +"be logged." +msgstr "" +"Please select your prefered log level. Messages with a lower level will not " +"be logged." + +#: ../lib/modules/asteriskVoicemail.inc:228 +msgid "Please set the voicemail password with \"Set password\" before saving." +msgstr "Please set the voicemail password with \"Set password\" before saving." + +#: ../lib/modules.inc:877 +#, php-format +msgid "Please set up all required attributes on page: %s" +msgstr "Please set up all required attributes on page: %s" + +#: ../templates/config/profmanage.php:220 +#: ../templates/selfService/profManage.php:160 +msgid "Please set up your master configuration file (config/config.cfg) first!" +msgstr "" +"Please set up your master configuration file (config/config.cfg) first!" + +#: ../lib/modules/dhcp_settings.inc:551 ../lib/modules/ddns.inc:362 +msgid "" +"Please set your LDAP suffix to an LDAP entry with object class \"dhcpService" +"\" or \"dhcpServer\"." +msgstr "" +"Please set your LDAP suffix to an LDAP entry with object class \"dhcpService" +"\" or \"dhcpServer\"." + +#: ../templates/multiEdit.php:213 +msgid "Please specify at least one operation." +msgstr "Please specify at least one operation." + +#: ../lib/modules/passwordSelfReset.inc:145 +msgid "Please specify how your users need to identify themselves." +msgstr "Please specify how your users need to identify themselves." + +#: ../lib/modules/windowsGroup.inc:143 +msgid "Please specify the group scope." +msgstr "Please specify the group scope." + +#: ../lib/modules/customFields.inc:141 +msgid "" +"Please specify the possible values for this field. Each value can have a " +"descriptive label that is displayed to the user." +msgstr "" +"Please specify the possible values for this field. Each value can have a " +"descriptive label that is displayed to the user." + +#: ../help/help.inc:274 +msgid "" +"Please specify which attributes should be changed. The modify operation will " +"also add an value if the attribute does not yet exist. To delete all values " +"of an attribute please leave the value field empty." +msgstr "" +"Please specify which attributes should be changed. The modify operation will " +"also add an value if the attribute does not yet exist. To delete all values " +"of an attribute please leave the value field empty." + +#: ../lib/modules/inetOrgPerson.inc:100 +msgid "Please upload a .jpg/.jpeg file." +msgstr "Please upload a .jpg/.jpeg file." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:172 +msgid "Please wait" +msgstr "Please wait" + +#: ../lib/types/ppolicyType.inc:149 +#, php-format +msgid "Policy count: %s" +msgstr "Policy count: %s" + +#: ../lib/modules/kolabUser.inc:246 +msgid "Policy list has invalid format!" +msgstr "Policy list has invalid format!" + +#: ../lib/modules/asteriskAccount.inc:179 +#: ../lib/modules/asteriskAccount.inc:283 +#: ../lib/modules/asteriskAccount.inc:436 +#: ../lib/modules/asteriskAccount.inc:686 +#: ../lib/modules/asteriskAccount.inc:999 +#: ../lib/modules/asteriskAccount.inc:1267 ../lib/modules/bindDLZ.inc:195 +#: ../lib/modules/bindDLZ.inc:199 ../lib/modules/bindDLZ.inc:399 +#: ../lib/modules/bindDLZ.inc:512 ../lib/modules/bindDLZ.inc:1365 +#: ../lib/modules/bindDLZ.inc:1608 +msgid "Port" +msgstr "Port" + +#: ../lib/modules/asteriskAccount.inc:180 +msgid "Port number." +msgstr "Port number." + +#: ../templates/pdfedit/pdfpage.php:592 ../templates/pdfedit/pdfpage.php:602 +#: ../templates/pdfedit/pdfpage.php:612 ../templates/pdfedit/pdfpage.php:627 +msgid "Position" +msgstr "Position" + +#: ../templates/masscreate.php:310 ../templates/masscreate.php:384 +#: ../lib/modules/customScripts.inc:125 ../lib/modules/customScripts.inc:127 +#: ../lib/modules/customScripts.inc:129 +#: ../lib/modules/sambaGroupMapping.inc:604 +msgid "Possible values" +msgstr "Possible values" + +#: ../lib/modules/pykotaPrinter.inc:130 ../lib/modules/posixGroup.inc:530 +#: ../lib/modules/sambaGroupMapping.inc:172 +#: ../lib/modules/organizationalRole.inc:103 +#: ../lib/modules/groupOfNames.inc:115 +msgid "" +"Possible wildcards are: \"*\" = any character, \"^\" = line start, \"$\" = " +"line end" +msgstr "" +"Possible wildcards are: \"*\" = any character, \"^\" = line start, \"$\" = " +"line end" + +#: ../lib/modules/windowsUser.inc:160 ../lib/modules/windowsUser.inc:320 +#: ../lib/modules/windowsUser.inc:510 ../lib/modules/windowsUser.inc:547 +#: ../lib/modules/windowsUser.inc:709 ../lib/modules/windowsUser.inc:1598 +#: ../lib/modules/windowsUser.inc:1735 ../lib/modules/inetOrgPerson.inc:159 +#: ../lib/modules/inetOrgPerson.inc:181 ../lib/modules/inetOrgPerson.inc:409 +#: ../lib/modules/inetOrgPerson.inc:548 ../lib/modules/inetOrgPerson.inc:672 +#: ../lib/modules/inetOrgPerson.inc:676 ../lib/modules/inetOrgPerson.inc:1234 +#: ../lib/modules/inetOrgPerson.inc:1237 ../lib/modules/inetOrgPerson.inc:1896 +#: ../lib/modules/inetOrgPerson.inc:2566 ../lib/modules/inetOrgPerson.inc:3513 +#: ../lib/modules/inetOrgPerson.inc:3578 +msgid "Post office box" +msgstr "Post office box" + +#: ../lib/modules/inetOrgPerson.inc:83 ../lib/modules/inetOrgPerson.inc:158 +#: ../lib/modules/inetOrgPerson.inc:193 ../lib/modules/inetOrgPerson.inc:393 +#: ../lib/modules/inetOrgPerson.inc:560 ../lib/modules/inetOrgPerson.inc:688 +#: ../lib/modules/inetOrgPerson.inc:1278 ../lib/modules/inetOrgPerson.inc:1898 +#: ../lib/modules/inetOrgPerson.inc:2533 ../lib/modules/inetOrgPerson.inc:3521 +#: ../lib/modules/inetOrgPerson.inc:3580 +msgid "Postal address" +msgstr "Postal address" + +#: ../lib/modules/inetOrgPerson.inc:689 +msgid "Postal address, city" +msgstr "Postal address, city" + +#: ../lib/modules/windowsUser.inc:156 ../lib/modules/windowsUser.inc:326 +#: ../lib/modules/windowsUser.inc:509 ../lib/modules/windowsUser.inc:548 +#: ../lib/modules/windowsUser.inc:605 ../lib/modules/windowsUser.inc:710 +#: ../lib/modules/windowsUser.inc:1597 ../lib/modules/windowsUser.inc:1736 +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:159 +#: ../lib/modules/inetOrgPerson.inc:184 ../lib/modules/inetOrgPerson.inc:385 +#: ../lib/modules/inetOrgPerson.inc:551 ../lib/modules/inetOrgPerson.inc:680 +#: ../lib/modules/inetOrgPerson.inc:684 ../lib/modules/inetOrgPerson.inc:1243 +#: ../lib/modules/inetOrgPerson.inc:1246 ../lib/modules/inetOrgPerson.inc:1897 +#: ../lib/modules/inetOrgPerson.inc:2555 ../lib/modules/inetOrgPerson.inc:3515 +#: ../lib/modules/inetOrgPerson.inc:3578 +msgid "Postal code" +msgstr "Postal code" + +#: ../lib/modules/puppetClient.inc:112 +msgid "Predefined classes" +msgstr "Predefined classes" + +#: ../lib/modules/puppetClient.inc:116 ../lib/modules/puppetClient.inc:122 +msgid "Predefined environments" +msgstr "Predefined environments" + +#: ../lib/modules/authorizedServiceObject.inc:93 +#: ../lib/modules/authorizedServiceObject.inc:99 +msgid "Predefined services" +msgstr "Predefined services" + +#: ../help/help.inc:91 +msgid "Predefined values" +msgstr "Predefined values" + +#: ../lib/modules/bindDLZ.inc:203 ../lib/modules/bindDLZ.inc:207 +#: ../lib/modules/bindDLZ.inc:287 ../lib/modules/bindDLZ.inc:502 +#: ../lib/modules/bindDLZ.inc:923 ../lib/modules/bindDLZ.inc:1520 +msgid "Preference" +msgstr "Preference" + +#: ../lib/modules/imapAccess.inc:97 ../lib/modules/imapAccess.inc:143 +msgid "Prefix for mailboxes" +msgstr "Prefix for mailboxes" + +#: ../lib/modules/inetOrgPerson.inc:339 +msgid "President" +msgstr "President" + +#: ../lib/modules/pykotaUser.inc:650 ../lib/modules/pykotaUser.inc:999 +msgid "Price" +msgstr "Price" + +#: ../lib/types/pykotaPrinterType.inc:94 ../lib/modules/pykotaPrinter.inc:111 +#: ../lib/modules/pykotaPrinter.inc:174 ../lib/modules/pykotaPrinter.inc:197 +#: ../lib/modules/pykotaPrinter.inc:215 ../lib/modules/pykotaPrinter.inc:235 +#: ../lib/modules/pykotaPrinter.inc:587 +msgid "Price per job" +msgstr "Price per job" + +#: ../lib/types/pykotaPrinterType.inc:93 ../lib/modules/pykotaPrinter.inc:115 +#: ../lib/modules/pykotaPrinter.inc:180 ../lib/modules/pykotaPrinter.inc:198 +#: ../lib/modules/pykotaPrinter.inc:217 ../lib/modules/pykotaPrinter.inc:237 +#: ../lib/modules/pykotaPrinter.inc:588 +msgid "Price per page" +msgstr "Price per page" + +#: ../lib/modules/eduPerson.inc:88 ../lib/modules/eduPerson.inc:168 +#: ../lib/modules/eduPerson.inc:229 ../lib/modules/eduPerson.inc:283 +#: ../lib/modules/eduPerson.inc:581 +msgid "Primary affiliation" +msgstr "Primary affiliation" + +#: ../lib/modules/posixAccount.inc:297 ../lib/modules/posixAccount.inc:389 +#: ../lib/modules/posixAccount.inc:414 ../lib/modules/posixAccount.inc:465 +#: ../lib/modules/posixAccount.inc:514 ../lib/modules/posixAccount.inc:552 +#: ../lib/modules/posixAccount.inc:1446 ../lib/modules/posixAccount.inc:1735 +#: ../lib/modules/posixAccount.inc:1781 ../lib/modules/posixAccount.inc:1847 +msgid "Primary group" +msgstr "Primary group" + +#: ../lib/modules/bindDLZ.inc:236 +msgid "Primary master DNS server for this zone (e.g. \"ns1.example.com.\")." +msgstr "Primary master DNS server for this zone (e.g. \"ns1.example.com.\")." + +#: ../lib/modules/bindDLZ.inc:235 ../lib/modules/bindDLZ.inc:345 +#: ../lib/modules/bindDLZ.inc:429 ../lib/modules/bindDLZ.inc:531 +#: ../lib/modules/bindDLZ.inc:1047 ../lib/modules/bindDLZ.inc:1554 +msgid "Primary name server" +msgstr "Primary name server" + +#: ../lib/modules/eduPerson.inc:130 ../lib/modules/eduPerson.inc:206 +#: ../lib/modules/eduPerson.inc:232 ../lib/modules/eduPerson.inc:247 +#: ../lib/modules/eduPerson.inc:348 ../lib/modules/eduPerson.inc:588 +msgid "Primary organisational unit" +msgstr "Primary organizational unit" + +#: ../lib/modules/eduPerson.inc:114 ../lib/modules/eduPerson.inc:161 +#: ../lib/modules/eduPerson.inc:230 ../lib/modules/eduPerson.inc:277 +#: ../lib/modules/eduPerson.inc:583 +msgid "Principal name" +msgstr "Principal name" + +#: ../lib/modules/eduPerson.inc:243 ../lib/modules/eduPerson.inc:244 +msgid "Principal name is invalid!" +msgstr "Principal name is invalid!" + +#: ../lib/modules/pykotaUser.inc:648 ../lib/modules/pykotaUser.inc:997 +msgid "Printer" +msgstr "Printer" + +#: ../lib/types/pykotaPrinterType.inc:164 +#, php-format +msgid "Printer count: %s" +msgstr "Printer count: %s" + +#: ../lib/modules/pykotaPrinter.inc:100 +msgid "Printer description." +msgstr "Printer description." + +#: ../lib/modules/pykotaPrinter.inc:200 ../lib/modules/pykotaPrinter.inc:258 +#: ../lib/modules/pykotaPrinter.inc:621 +msgid "Printer groups" +msgstr "Printer groups" + +#: ../lib/types/pykotaPrinterType.inc:91 ../lib/modules/pykotaPrinter.inc:95 +#: ../lib/modules/pykotaPrinter.inc:146 ../lib/modules/pykotaPrinter.inc:193 +#: ../lib/modules/pykotaPrinter.inc:209 ../lib/modules/pykotaPrinter.inc:211 +#: ../lib/modules/pykotaPrinter.inc:231 ../lib/modules/pykotaPrinter.inc:584 +#: ../lib/modules/pykotaBillingCode.inc:101 +msgid "Printer name" +msgstr "Printer name" + +#: ../lib/modules/pykotaPrinter.inc:211 ../lib/modules/pykotaPrinter.inc:212 +msgid "Printer name already exists!" +msgstr "Printer name already exists!" + +#: ../lib/modules/pykotaPrinter.inc:209 ../lib/modules/pykotaPrinter.inc:210 +msgid "" +"Printer name contains invalid characters. Valid characters are: a-z, A-Z, " +"0-9 and .-_ !" +msgstr "" +"Printer name contains invalid characters. Valid characters are: a-z, A-Z, " +"0-9 and .-_ !" + +#: ../lib/modules/pykotaPrinter.inc:96 +msgid "" +"Printer name of the printer which should be created. Valid characters are: a-" +"z, A-Z, 0-9 and .-_ ." +msgstr "" +"Printer name of the printer which should be created. Valid characters are: a-" +"z, A-Z, 0-9 and .-_ ." + +#: ../lib/types/pykotaPrinterType.inc:53 +msgid "Printers" +msgstr "Printers" + +#: ../lib/modules/bindDLZ.inc:179 ../lib/modules/bindDLZ.inc:183 +#: ../lib/modules/bindDLZ.inc:389 ../lib/modules/bindDLZ.inc:508 +#: ../lib/modules/bindDLZ.inc:1355 ../lib/modules/bindDLZ.inc:1606 +#: ../lib/modules/asteriskExtension.inc:106 +#: ../lib/modules/asteriskExtension.inc:825 +msgid "Priority" +msgstr "Priority" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1537 +#: ../templates/3rdParty/pla/htdocs/import_form.php:44 +#: ../templates/3rdParty/pla/htdocs/export_form.php:135 +msgid "Proceed" +msgstr "Proceed" + +#: ../templates/config/profmanage.php:112 +#: ../templates/selfService/profManage.php:85 +msgid "Profile deleted." +msgstr "Profile deleted." + +#: ../templates/profedit/profilepage.php:182 +#: ../templates/profedit/profilemain.php:94 ../lib/tools/profileEditor.inc:44 +msgid "Profile editor" +msgstr "Profile editor" + +#: ../templates/config/profmanage.php:159 +#: ../templates/config/profmanage.php:236 +#: ../templates/selfService/profManage.php:101 +#: ../templates/selfService/profManage.php:199 ../help/help.inc:130 +#: ../help/help.inc:132 ../help/help.inc:134 ../help/help.inc:136 +#: ../help/help.inc:138 +msgid "Profile management" +msgstr "Profile management" + +#: ../templates/config/profmanage.php:240 +#: ../templates/config/profmanage.php:260 +#: ../templates/config/profmanage.php:272 +#: ../templates/config/profmanage.php:281 +#: ../templates/config/profmanage.php:301 +#: ../templates/selfService/profManage.php:203 +#: ../templates/selfService/profManage.php:217 +#: ../templates/selfService/profManage.php:233 +#: ../templates/profedit/profilepage.php:186 +#: ../templates/profedit/profilemain.php:277 +#: ../templates/profedit/profilemain.php:321 ../help/help.inc:188 +msgid "Profile name" +msgstr "Profile name" + +#: ../templates/config/profmanage.php:88 +#: ../templates/config/profmanage.php:107 +#: ../templates/config/profmanage.php:137 +#: ../templates/config/profmanage.php:148 +#: ../templates/selfService/profManage.php:61 +#: ../templates/selfService/profManage.php:76 +msgid "Profile name is invalid!" +msgstr "Profile name is invalid!" + +#: ../templates/config/profmanage.php:243 +#: ../templates/config/profmanage.php:282 +msgid "Profile password" +msgstr "Profile password" + +#: ../templates/config/profmanage.php:86 +#: ../templates/config/profmanage.php:135 +msgid "Profile passwords are different or empty!" +msgstr "Profile passwords are different or empty!" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:98 +#: ../lib/modules/sambaSamAccount.inc:220 +#: ../lib/modules/sambaSamAccount.inc:232 +#: ../lib/modules/sambaSamAccount.inc:308 +#: ../lib/modules/sambaSamAccount.inc:357 +#: ../lib/modules/sambaSamAccount.inc:502 +#: ../lib/modules/sambaSamAccount.inc:598 +#: ../lib/modules/sambaSamAccount.inc:1218 +#: ../lib/modules/sambaSamAccount.inc:1511 +#: ../lib/modules/sambaSamAccount.inc:1580 +#: ../lib/modules/sambaSamAccount.inc:1758 +#: ../lib/modules/sambaSamAccount.inc:1903 +#: ../lib/modules/sambaSamAccount.inc:1918 ../lib/modules/windowsUser.inc:204 +#: ../lib/modules/windowsUser.inc:418 ../lib/modules/windowsUser.inc:478 +#: ../lib/modules/windowsUser.inc:520 ../lib/modules/windowsUser.inc:611 +#: ../lib/modules/windowsUser.inc:754 ../lib/modules/windowsUser.inc:1627 +msgid "Profile path" +msgstr "Profile path" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/windowsUser.inc:611 ../lib/modules/windowsUser.inc:612 +msgid "Profile path is invalid!" +msgstr "Profile path is invalid!" + +#: ../templates/profedit/profilemain.php:149 +msgid "Profile was saved." +msgstr "Profile was saved." + +#: ../templates/profedit/profilemain.php:244 +msgid "Profiles" +msgstr "Profiles" + +#: ../lib/modules/qmailUser.inc:252 +msgid "Program to execute for all incoming mails." +msgstr "Program to execute for all incoming mails." + +#: ../templates/multiEdit.php:231 +msgid "Progress" +msgstr "Progress" + +#: ../lib/modules/zarafaServer.inc:84 ../lib/modules/zarafaServer.inc:128 +#: ../lib/modules/zarafaServer.inc:141 ../lib/modules/zarafaServer.inc:163 +#: ../lib/modules/zarafaServer.inc:212 ../lib/modules/zarafaServer.inc:357 +msgid "Proxy URL" +msgstr "Proxy URL" + +#: ../lib/modules/zarafaServer.inc:80 ../lib/modules/zarafaServer.inc:118 +#: ../lib/modules/zarafaServer.inc:138 ../lib/modules/zarafaServer.inc:225 +#: ../lib/modules/zarafaServer.inc:362 +msgid "Public store" +msgstr "Public store" + +#: ../lib/modules/puppetClient.inc:70 +msgid "Puppet" +msgstr "Puppet" + +#: ../lib/modules/pykotaPrinter.inc:79 ../lib/modules/pykotaGroup.inc:93 +#: ../lib/modules/pykotaUser.inc:93 ../lib/modules/pykotaBillingCode.inc:61 +msgid "PyKota" +msgstr "PyKota" + +#: ../lib/types/pykotaBillingCodeType.inc:62 +msgid "PyKota billing codes" +msgstr "PyKota billing codes" + +#: ../lib/modules/pykotaGroup.inc:121 ../lib/modules/pykotaGroup.inc:148 +#: ../lib/modules/pykotaGroup.inc:181 ../lib/modules/pykotaGroup.inc:201 +#: ../lib/modules/pykotaGroup.inc:203 ../lib/modules/pykotaGroup.inc:467 +msgid "PyKota group name" +msgstr "PyKota group name" + +#: ../lib/types/pykotaPrinterType.inc:62 +msgid "PyKota printers" +msgstr "PyKota printers" + +#: ../lib/modules/pykotaUser.inc:124 ../lib/modules/pykotaUser.inc:190 +#: ../lib/modules/pykotaUser.inc:260 ../lib/modules/pykotaUser.inc:315 +#: ../lib/modules/pykotaUser.inc:317 ../lib/modules/pykotaUser.inc:891 +msgid "PyKota user name" +msgstr "PyKota user name" + +#: ../lib/modules/pykotaGroup.inc:221 +msgid "Pykota group name" +msgstr "Pykota group name" + +#: ../lib/modules/pykotaUser.inc:359 +msgid "Pykota user name" +msgstr "Pykota user name" + +#: ../lib/modules/qmailUser.inc:87 ../lib/modules/qmailGroup.inc:56 +msgid "Qmail" +msgstr "Qmail" + +#: ../lib/modules/asteriskAccount.inc:183 +#: ../lib/modules/asteriskAccount.inc:284 +#: ../lib/modules/asteriskAccount.inc:443 +#: ../lib/modules/asteriskAccount.inc:691 +#: ../lib/modules/asteriskAccount.inc:1000 +#: ../lib/modules/asteriskAccount.inc:1269 +msgid "Qualify" +msgstr "Qualify" + +#: ../lib/modules/passwordSelfReset.inc:76 +#: ../lib/modules/passwordSelfReset.inc:170 +#: ../lib/modules/passwordSelfReset.inc:177 +#: ../lib/modules/passwordSelfReset.inc:197 +#: ../lib/modules/passwordSelfReset.inc:218 +#: ../lib/modules/passwordSelfReset.inc:258 +#: ../lib/modules/passwordSelfReset.inc:381 +#: ../lib/modules/passwordSelfReset.inc:658 +#: ../lib/modules/passwordSelfReset.inc:1043 +msgid "Question" +msgstr "Question" + +#: ../lib/modules/qmailUser.inc:668 ../lib/modules/quota.inc:87 +#: ../lib/modules/quota.inc:100 ../lib/modules/quota.inc:153 +#: ../lib/modules/pykotaGroup.inc:61 ../lib/modules/pykotaGroup.inc:175 +#: ../lib/modules/pykotaGroup.inc:176 ../lib/modules/zarafaUser.inc:481 +#: ../lib/modules/pykotaUser.inc:61 ../lib/modules/pykotaUser.inc:235 +#: ../lib/modules/pykotaUser.inc:236 ../lib/modules/systemQuotas.inc:58 +#: ../lib/modules/systemQuotas.inc:68 ../lib/modules/systemQuotas.inc:75 +#: ../lib/modules/systemQuotas.inc:81 ../lib/modules/systemQuotas.inc:88 +#: ../lib/modules/imapAccess.inc:109 ../lib/modules/imapAccess.inc:164 +msgid "Quota" +msgstr "Quota" + +#: ../lib/modules/quota.inc:698 +#, php-format +msgid "Quota for %s on %s" +msgstr "Quota for %s on %s" + +#: ../lib/modules/zarafaUser.inc:100 ../lib/modules/zarafaUser.inc:230 +#: ../lib/modules/zarafaUser.inc:352 ../lib/modules/zarafaUser.inc:412 +#: ../lib/modules/zarafaUser.inc:516 ../lib/modules/zarafaUser.inc:1231 +#: ../lib/modules/zarafaUser.inc:1314 ../lib/modules/zarafaUser.inc:1791 +msgid "Quota hard limit" +msgstr "Quota hard limit" + +#: ../lib/modules/quota.inc:63 +msgid "Quota has wrong format!" +msgstr "Quota has wrong format!" + +#: ../lib/modules/imapAccess.inc:319 ../lib/modules/imapAccess.inc:328 +msgid "Quota limit (kB)" +msgstr "Quota limit (kB)" + +#: ../lib/modules/zarafaUser.inc:88 ../lib/modules/zarafaUser.inc:204 +#: ../lib/modules/zarafaUser.inc:343 ../lib/modules/zarafaUser.inc:488 +#: ../lib/modules/zarafaUser.inc:1242 ../lib/modules/zarafaUser.inc:1305 +#: ../lib/modules/zarafaUser.inc:1785 +msgid "Quota override" +msgstr "Quota override" + +#: ../lib/modules/qmailUser.inc:106 ../lib/modules/qmailUser.inc:133 +#: ../lib/modules/qmailUser.inc:219 ../lib/modules/qmailUser.inc:308 +#: ../lib/modules/qmailUser.inc:409 ../lib/modules/qmailUser.inc:675 +#: ../lib/modules/qmailUser.inc:1144 +msgid "Quota size" +msgstr "Quota size" + +#: ../lib/modules/zarafaUser.inc:96 ../lib/modules/zarafaUser.inc:222 +#: ../lib/modules/zarafaUser.inc:349 ../lib/modules/zarafaUser.inc:410 +#: ../lib/modules/zarafaUser.inc:506 ../lib/modules/zarafaUser.inc:1230 +#: ../lib/modules/zarafaUser.inc:1311 ../lib/modules/zarafaUser.inc:1789 +msgid "Quota soft limit" +msgstr "Quota soft limit" + +#: ../lib/modules/zarafaUser.inc:92 ../lib/modules/zarafaUser.inc:214 +#: ../lib/modules/zarafaUser.inc:346 ../lib/modules/zarafaUser.inc:408 +#: ../lib/modules/zarafaUser.inc:496 ../lib/modules/zarafaUser.inc:1229 +#: ../lib/modules/zarafaUser.inc:1308 ../lib/modules/zarafaUser.inc:1787 +msgid "Quota warning limit" +msgstr "Quota warning limit" + +#: ../templates/masscreate.php:334 ../templates/profedit/profilepage.php:213 +#: ../lib/modules/selfRegistration.inc:98 +#: ../lib/modules/selfRegistration.inc:210 ../lib/modules.inc:1004 +#: ../help/help.inc:186 +msgid "RDN identifier" +msgstr "RDN identifier" + +#: ../lib/types/host.inc:93 +msgid "RID (Windows UID)" +msgstr "RID (Windows UID)" + +#: ../lib/modules/sambaDomain.inc:97 ../lib/modules/sambaDomain.inc:158 +#: ../lib/modules/sambaDomain.inc:189 ../lib/modules/sambaDomain.inc:383 +#: ../lib/modules/sambaDomain.inc:389 ../lib/modules/sambaDomain.inc:604 +msgid "RID base" +msgstr "RID base" + +#: ../lib/modules/sambaDomain.inc:352 +msgid "RID settings" +msgstr "RID settings" + +#: ../lib/modules/asteriskAccount.inc:195 +#: ../lib/modules/asteriskAccount.inc:287 +#: ../lib/modules/asteriskAccount.inc:465 +#: ../lib/modules/asteriskAccount.inc:704 +#: ../lib/modules/asteriskAccount.inc:1003 +#: ../lib/modules/asteriskAccount.inc:1275 +msgid "RTP hold timeout" +msgstr "RTP hold timeout" + +#: ../lib/modules/asteriskAccount.inc:191 +#: ../lib/modules/asteriskAccount.inc:286 +#: ../lib/modules/asteriskAccount.inc:458 +#: ../lib/modules/asteriskAccount.inc:699 +#: ../lib/modules/asteriskAccount.inc:1002 +#: ../lib/modules/asteriskAccount.inc:1273 +msgid "RTP timeout" +msgstr "RTP timeout" + +#: ../lib/modules/customFields.inc:2928 +msgid "Radio buttons" +msgstr "Radio buttons" + +#: ../lib/modules/range.inc:92 ../lib/modules/range.inc:427 +msgid "Range from" +msgstr "Range from" + +#: ../lib/modules/range.inc:95 ../lib/modules/range.inc:440 +msgid "Range to" +msgstr "Range to" + +#: ../lib/types/dhcp.inc:95 ../lib/modules/range.inc:74 +#: ../lib/modules/range.inc:106 ../lib/modules/range.inc:495 +msgid "Ranges" +msgstr "Ranges" + +#: ../templates/config/confmain.php:317 +msgid "Read" +msgstr "Read" + +#: ../templates/config/confmain.php:262 ../templates/config/conftypes.php:290 +#: ../lib/modules/customFields.inc:104 ../lib/modules/customFields.inc:1722 +#: ../help/help.inc:182 +msgid "Read-only" +msgstr "Read-only" + +#: ../lib/modules/inetOrgPerson.inc:3574 +msgid "Read-only fields" +msgstr "Read-only fields" + +#: ../lib/modules/customFields.inc:105 +msgid "" +"Read-only fields cannot be changed by the user. Use this if you want to show " +"an attribute just for information." +msgstr "" +"Read-only fields cannot be changed by the user. Use this if you want to show " +"an attribute just for information." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2289 +msgid "Really delete value from this attribute?" +msgstr "Really delete value from this attribute?" + +#: ../lib/modules/mitKerberos.inc:120 ../lib/modules/mitKerberos.inc:152 +#: ../lib/modules/mitKerberos.inc:194 ../lib/modules/freeRadius.inc:92 +#: ../lib/modules/freeRadius.inc:126 ../lib/modules/freeRadius.inc:146 +#: ../lib/modules/freeRadius.inc:177 ../lib/modules/freeRadius.inc:231 +#: ../lib/modules/freeRadius.inc:273 ../lib/modules/freeRadius.inc:539 +#: ../lib/modules/heimdalKerberos.inc:98 +#: ../lib/modules/heimdalKerberos.inc:157 +#: ../lib/modules/heimdalKerberos.inc:163 +msgid "Realm" +msgstr "Realm" + +#: ../lib/modules/nisMailAliasUser.inc:355 ../lib/modules/nisMailAlias.inc:181 +msgid "Recipient" +msgstr "Recipient" + +#: ../lib/modules/nisMailAlias.inc:127 ../lib/modules/nisMailAlias.inc:128 +msgid "Recipient is invalid!" +msgstr "Recipient is invalid!" + +#: ../lib/types/mailAlias.inc:92 ../lib/modules/nisMailAlias.inc:89 +#: ../lib/modules/nisMailAlias.inc:108 ../lib/modules/nisMailAlias.inc:116 +#: ../lib/modules/nisMailAlias.inc:476 +msgid "Recipient list" +msgstr "Recipient list" + +#: ../lib/modules/nisMailAlias.inc:85 ../lib/modules/nisMailAlias.inc:184 +#: ../lib/modules/nisMailAlias.inc:202 +msgid "Recipients" +msgstr "Recipients" + +#: ../lib/modules/sambaSamAccount.inc:244 +#: ../lib/modules/sambaSamAccount.inc:387 +#: ../lib/modules/sambaSamAccount.inc:1560 +#: ../lib/modules/sambaSamAccount.inc:1970 +msgid "Reconnect if disconnected" +msgstr "Reconnect if disconnected" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:63 +msgid "Recursive copy" +msgstr "Recursive copy" + +#: ../templates/3rdParty/pla/htdocs/copy.php:49 +msgid "Recursive copy progress" +msgstr "Recursive copy progress" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:31 +msgid "Recursive delete progress" +msgstr "Recursive delete progress" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:65 +msgid "Recursively copy all children of this object as well." +msgstr "Recursively copy all children of this object as well." + +#: ../templates/config/profmanage.php:247 +#: ../templates/config/profmanage.php:286 +#: ../templates/config/mainmanage.php:459 ../templates/config/confmain.php:453 +#: ../lib/modules/selfRegistration.inc:415 +#: ../lib/modules/sambaSamAccount.inc:2268 +#: ../lib/modules/posixAccount.inc:2533 ../lib/modules/windowsUser.inc:1714 +msgid "Reenter password" +msgstr "Reenter password" + +#: ../templates/serverInfo.php:187 +msgid "Referrals" +msgstr "Referrals" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1051 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1054 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:249 +#: ../lib/modules/asteriskExtension.inc:454 ../lib/lists.inc:788 +msgid "Refresh" +msgstr "Refresh" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +msgid "Refresh this entry" +msgstr "Refresh this entry" + +#: ../lib/modules/bindDLZ.inc:215 ../lib/modules/bindDLZ.inc:320 +#: ../lib/modules/bindDLZ.inc:424 ../lib/modules/bindDLZ.inc:521 +#: ../lib/modules/bindDLZ.inc:1026 ../lib/modules/bindDLZ.inc:1549 +msgid "Refresh time" +msgstr "Refresh time" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:247 +msgid "Refreshing tree" +msgstr "Refreshing tree" + +#: ../lib/modules/selfRegistration.inc:340 +msgid "Register new account" +msgstr "Register new account" + +#: ../lib/modules/inetOrgPerson.inc:85 ../lib/modules/inetOrgPerson.inc:158 +#: ../lib/modules/inetOrgPerson.inc:196 ../lib/modules/inetOrgPerson.inc:401 +#: ../lib/modules/inetOrgPerson.inc:563 ../lib/modules/inetOrgPerson.inc:692 +#: ../lib/modules/inetOrgPerson.inc:1322 ../lib/modules/inetOrgPerson.inc:1899 +#: ../lib/modules/inetOrgPerson.inc:2544 ../lib/modules/inetOrgPerson.inc:3523 +#: ../lib/modules/inetOrgPerson.inc:3580 +msgid "Registered address" +msgstr "Registered address" + +#: ../lib/modules/inetOrgPerson.inc:693 +msgid "Registered address, city" +msgstr "Registered address, city" + +#: ../lib/modules/asteriskAccount.inc:215 +#: ../lib/modules/asteriskAccount.inc:292 +#: ../lib/modules/asteriskAccount.inc:501 +#: ../lib/modules/asteriskAccount.inc:725 +#: ../lib/modules/asteriskAccount.inc:1008 +#: ../lib/modules/asteriskAccount.inc:1285 +msgid "Registration context" +msgstr "Registration context" + +#: ../lib/modules/asteriskAccount.inc:219 +#: ../lib/modules/asteriskAccount.inc:293 +#: ../lib/modules/asteriskAccount.inc:508 +#: ../lib/modules/asteriskAccount.inc:729 +#: ../lib/modules/asteriskAccount.inc:1009 +#: ../lib/modules/asteriskAccount.inc:1287 +msgid "Registration extension" +msgstr "Registration extension" + +#: ../lib/modules/asteriskAccount.inc:235 +#: ../lib/modules/asteriskAccount.inc:297 +#: ../lib/modules/asteriskAccount.inc:537 +#: ../lib/modules/asteriskAccount.inc:754 +#: ../lib/modules/asteriskAccount.inc:1013 +#: ../lib/modules/asteriskAccount.inc:1295 +msgid "Registration server" +msgstr "Registration server" + +#: ../lib/modules/kolabUser.inc:53 +msgid "Reject if conflicts" +msgstr "Reject if conflicts" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +msgid "Reloading" +msgstr "Reloading" + +#: ../templates/login.php:427 +msgid "Remember user name" +msgstr "Remember user name" + +#: ../templates/config/confmodules.php:310 +#: ../templates/pdfedit/pdfpage.php:477 ../lib/modules/mitKerberos.inc:688 +#: ../lib/modules/qmailUser.inc:919 ../lib/modules/windowsHost.inc:158 +#: ../lib/modules/sambaSamAccount.inc:1479 ../lib/modules/kolabUser.inc:871 +#: ../lib/modules/shadowAccount.inc:476 ../lib/modules/freeRadius.inc:429 +#: ../lib/modules/sudoRole.inc:318 ../lib/modules/sudoRole.inc:345 +#: ../lib/modules/sudoRole.inc:372 ../lib/modules/sudoRole.inc:399 +#: ../lib/modules/sudoRole.inc:426 ../lib/modules/sudoRole.inc:453 +#: ../lib/modules/heimdalKerberos.inc:598 ../lib/modules/windowsGroup.inc:364 +msgid "Remove" +msgstr "Remove" + +#: ../lib/modules/asteriskVoicemail.inc:263 +msgid "Remove Asterisk voicemail extension" +msgstr "Remove Asterisk voicemail extension" + +#: ../lib/modules/authorizedServiceObject.inc:170 +msgid "Remove Authorized Service extension" +msgstr "Remove Authorized Service extension" + +#: ../lib/modules/eduPerson.inc:355 +msgid "Remove EDU person extension" +msgstr "Remove EDU person extension" + +#: ../lib/modules/freeRadius.inc:307 +msgid "Remove FreeRadius extension" +msgstr "Remove FreeRadius extension" + +#: ../lib/modules/ipHost.inc:160 +msgid "Remove IP address extension" +msgstr "Remove IP address extension" + +#: ../lib/modules/mitKerberos.inc:472 ../lib/modules/heimdalKerberos.inc:397 +msgid "Remove Kerberos extension" +msgstr "Remove Kerberos extension" + +#: ../lib/modules/puppetClient.inc:280 +msgid "Remove Puppet extension" +msgstr "Remove Puppet extension" + +#: ../lib/modules/pykotaGroup.inc:238 ../lib/modules/pykotaUser.inc:418 +msgid "Remove PyKota extension" +msgstr "Remove PyKota extension" + +#: ../lib/modules/sambaSamAccount.inc:1306 +#: ../lib/modules/sambaGroupMapping.inc:423 +msgid "Remove Samba 3 extension" +msgstr "Remove Samba 3 extension" + +#: ../lib/modules/shadowAccount.inc:375 +msgid "Remove Shadow account extension" +msgstr "Remove Shadow account extension" + +#: ../lib/modules/posixGroup.inc:246 ../lib/modules/posixAccount.inc:1511 +msgid "Remove Unix extension" +msgstr "Remove Unix extension" + +#: ../lib/modules/zarafaContact.inc:258 ../lib/modules/zarafaGroup.inc:307 +#: ../lib/modules/zarafaUser.inc:655 ../lib/modules/zarafaServer.inc:232 +msgid "Remove Zarafa extension" +msgstr "Remove Zarafa extension" + +#: ../lib/modules/customFields.inc:457 +msgid "Remove extension" +msgstr "Remove extension" + +#: ../lib/types/user.inc:384 +msgid "Remove from all Unix groups" +msgstr "Remove from all Unix groups" + +#: ../lib/types/user.inc:388 +msgid "Remove from all group of (unique) names" +msgstr "Remove from all group of (unique) names" + +#: ../lib/modules/hostObject.inc:147 +msgid "Remove host extension" +msgstr "Remove host extension" + +#: ../lib/modules/posixGroup.inc:213 ../lib/modules/posixAccount.inc:1504 +#: ../lib/modules/inetOrgPerson.inc:1564 +msgid "Remove password" +msgstr "Remove password" + +#: ../lib/modules/passwordSelfReset.inc:281 +msgid "Remove password self reset extension" +msgstr "Remove password self reset extension" + +#: ../lib/modules/qmailUser.inc:706 ../lib/modules/qmailGroup.inc:627 +msgid "Remove qmail extension" +msgstr "Remove qmail extension" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:147 +#: ../lib/modules/zarafaContact.inc:418 ../lib/modules/zarafaGroup.inc:478 +#: ../lib/modules/device.inc:281 ../lib/modules/zarafaUser.inc:902 +#: ../lib/modules/inetOrgPerson.inc:1737 ../lib/modules/qmailGroup.inc:850 +#: ../lib/modules/organizationalRole.inc:383 +#: ../lib/modules/windowsGroup.inc:584 ../lib/modules/groupOfNames.inc:440 +#: ../lib/modules/groupOfNames.inc:595 +msgid "Remove selected entries" +msgstr "Remove selected entries" + +#: ../templates/config/conftypes.php:248 +msgid "Remove this account type" +msgstr "Remove this account type" + +#: ../lib/modules/nisMailAliasUser.inc:153 +#: ../lib/modules/nisMailAliasUser.inc:192 +msgid "Remove user from alias entry." +msgstr "Remove user from alias entry." + +#: ../lib/modules/inetOrgPerson.inc:2646 +msgid "Remove/replace photo" +msgstr "Remove/replace photo" + +#: ../templates/config/profmanage.php:264 +#: ../templates/selfService/profManage.php:225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1152 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1155 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:24 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:35 +#: ../templates/3rdParty/pla/htdocs/rename.php:53 +msgid "Rename" +msgstr "Rename" + +#: ../templates/3rdParty/pla/htdocs/rename_form.php:28 +#, php-format +msgid "Rename %s to a new object." +msgstr "Rename %s to a new object." + +#: ../templates/config/profmanage.php:259 +#: ../templates/config/profmanage.php:265 +#: ../templates/selfService/profManage.php:216 +#: ../templates/selfService/profManage.php:226 ../help/help.inc:132 +msgid "Rename profile" +msgstr "Rename profile" + +#: ../templates/3rdParty/pla/htdocs/rename.php:48 +msgid "Rename successful!" +msgstr "Rename successful!" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +msgid "Rename this entry" +msgstr "Rename this entry" + +#: ../templates/config/profmanage.php:98 +#: ../templates/selfService/profManage.php:72 +msgid "Renamed profile." +msgstr "Renamed profile." + +#: ../templates/3rdParty/pla/htdocs/import.php:30 +#: ../templates/3rdParty/pla/htdocs/import.php:31 +msgid "Renaming" +msgstr "Renaming" + +#: ../lib/modules/mitKerberos.inc:132 ../lib/modules/mitKerberos.inc:196 +#: ../lib/modules/mitKerberos.inc:236 ../lib/modules/mitKerberos.inc:253 +#: ../lib/modules/mitKerberos.inc:366 ../lib/modules/mitKerberos.inc:771 +#: ../lib/modules/heimdalKerberos.inc:114 +#: ../lib/modules/heimdalKerberos.inc:165 +#: ../lib/modules/heimdalKerberos.inc:205 +#: ../lib/modules/heimdalKerberos.inc:222 +#: ../lib/modules/heimdalKerberos.inc:313 +#: ../lib/modules/heimdalKerberos.inc:691 +msgid "Renewable lifetime" +msgstr "Renewable lifetime" + +#: ../lib/modules/mitKerberos.inc:295 ../lib/modules/mitKerberos.inc:296 +#: ../lib/modules/heimdalKerberos.inc:259 +#: ../lib/modules/heimdalKerberos.inc:260 +msgid "Renewable lifetime must be a number." +msgstr "Renewable lifetime must be a number." + +#: ../templates/lists/changePassword.php:359 +#: ../lib/modules/passwordSelfReset.inc:1067 ../lib/modules.inc:1048 +msgid "Repeat password" +msgstr "Repeat password" + +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:1199 +msgid "Replaced $user or $group in homedir." +msgstr "Replaced $user or $group in homedir." + +#: ../templates/config/confmain.php:346 ../help/help.inc:257 +msgid "Reply-to address" +msgstr "Reply-to address" + +#: ../templates/config/confmain.php:523 +msgid "Reply-to address for password mails is invalid." +msgstr "Reply-to address for password mails is invalid." + +#: ../lib/types/ppolicyType.inc:89 ../lib/modules/ppolicy.inc:128 +#: ../lib/modules/ppolicy.inc:154 ../lib/modules/ppolicy.inc:288 +#: ../lib/modules/ppolicy.inc:500 +msgid "Require password change on first login" +msgstr "Require password change on first login" + +#: ../lib/modules/windowsUser.inc:201 ../lib/modules/windowsUser.inc:402 +#: ../lib/modules/windowsUser.inc:519 ../lib/modules/windowsUser.inc:750 +#: ../lib/modules/windowsUser.inc:1621 +msgid "Require smartcard" +msgstr "Require smartcard" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 +msgid "Required attribute for object classes" +msgstr "Required attribute for object classes" + +#: ../templates/schema/schema.php:383 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1567 +msgid "Required attributes" +msgstr "Required attributes" + +#: ../lib/modules/mitKerberos.inc:180 ../lib/modules/mitKerberos.inc:462 +msgid "Requires hardware authentication" +msgstr "Requires hardware authentication" + +#: ../lib/modules/mitKerberos.inc:177 ../lib/modules/mitKerberos.inc:457 +#: ../lib/modules/heimdalKerberos.inc:151 +#: ../lib/modules/heimdalKerberos.inc:388 +msgid "Requires preauthentication" +msgstr "Requires preauthentication" + +#: ../lib/modules/sambaSamAccount.inc:1300 +#: ../lib/modules/pykotaBillingCode.inc:93 +#: ../lib/modules/pykotaBillingCode.inc:163 +msgid "Reset" +msgstr "Reset" + +#: ../lib/modules.inc:1212 +msgid "Reset changes" +msgstr "Reset changes" + +#: ../lib/modules/sambaSamAccount.inc:264 +#: ../lib/modules/sambaSamAccount.inc:1299 +msgid "Reset password" +msgstr "Reset password" + +#: ../lib/modules/sambaDomain.inc:137 ../lib/modules/sambaDomain.inc:199 +#: ../lib/modules/sambaDomain.inc:224 ../lib/modules/sambaDomain.inc:348 +#: ../lib/modules/sambaDomain.inc:611 +msgid "Reset time after lockout" +msgstr "Reset time after lockout" + +#: ../lib/modules/sambaDomain.inc:224 +msgid "Reset time after lockout must be are natural number." +msgstr "Reset time after lockout must be are natural number." + +#: ../lib/modules/pykotaBillingCode.inc:94 +msgid "Resets the billing code's balance and page counter to 0." +msgstr "Resets the billing code's balance and page counter to 0." + +#: ../lib/modules/zarafaUser.inc:523 +msgid "Resource settings" +msgstr "Resource settings" + +#: ../lib/modules/asteriskAccount.inc:187 +#: ../lib/modules/asteriskAccount.inc:285 +#: ../lib/modules/asteriskAccount.inc:450 +#: ../lib/modules/asteriskAccount.inc:695 +#: ../lib/modules/asteriskAccount.inc:1001 +#: ../lib/modules/asteriskAccount.inc:1271 +msgid "Restrict caller ID" +msgstr "Restrict caller ID" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:113 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:118 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:550 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:587 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:198 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:84 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:122 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +msgid "Retrieving DN" +msgstr "Retrieving DN" + +#: ../lib/modules/bindDLZ.inc:219 ../lib/modules/bindDLZ.inc:332 +#: ../lib/modules/bindDLZ.inc:425 ../lib/modules/bindDLZ.inc:523 +#: ../lib/modules/bindDLZ.inc:1037 ../lib/modules/bindDLZ.inc:1550 +msgid "Retry time" +msgstr "Retry time" + +#: ../lib/modules/bindDLZ.inc:755 +msgid "Reverse DNS entries (\"PTR\" records)" +msgstr "Reverse DNS entries (\"PTR\" records)" + +#: ../lib/modules/ddns.inc:106 ../lib/modules/ddns.inc:114 +#: ../lib/modules/ddns.inc:135 ../lib/modules/ddns.inc:397 +#: ../lib/modules/ddns.inc:426 +msgid "Reverse zone name" +msgstr "Reverse zone name" + +#: ../templates/config/confmain.php:313 ../help/help.inc:118 +msgid "Rights for the home directory" +msgstr "Rights for the home directory" + +#: ../lib/modules/organizationalRole.inc:65 +msgid "Role" +msgstr "Role" + +#: ../lib/types/gon.inc:209 ../lib/types/group.inc:247 +#, php-format +msgid "Role count: %s" +msgstr "Role count: %s" + +#: ../lib/types/gon.inc:107 ../lib/types/group.inc:110 +msgid "Role member DNs" +msgstr "Role member DNs" + +#: ../lib/types/gon.inc:112 ../lib/types/group.inc:116 +#: ../lib/types/sudo.inc:77 ../lib/modules/sudoRole.inc:66 +#: ../lib/modules/sudoRole.inc:146 ../lib/modules/sudoRole.inc:214 +#: ../lib/modules/sudoRole.inc:299 ../lib/modules/sudoRole.inc:804 +msgid "Role name" +msgstr "Role name" + +#: ../lib/types/gon.inc:63 ../lib/types/group.inc:64 +#: ../lib/modules/organizationalRoleUser.inc:54 +#: ../lib/modules/organizationalRoleUser.inc:56 +#: ../lib/modules/organizationalRoleUser.inc:60 +#: ../lib/modules/organizationalRoleUser.inc:64 +#: ../lib/modules/organizationalRoleUser.inc:71 +#: ../lib/modules/organizationalRoleUser.inc:270 +#: ../lib/modules/organizationalRoleUser.inc:306 +msgid "Roles" +msgstr "Roles" + +#: ../lib/modules/zarafaUser.inc:528 ../lib/modules/zarafaUser.inc:1246 +msgid "Room" +msgstr "Room" + +#: ../lib/modules/inetOrgPerson.inc:160 ../lib/modules/inetOrgPerson.inc:202 +#: ../lib/modules/inetOrgPerson.inc:475 ../lib/modules/inetOrgPerson.inc:569 +#: ../lib/modules/inetOrgPerson.inc:760 ../lib/modules/inetOrgPerson.inc:1366 +#: ../lib/modules/inetOrgPerson.inc:1369 ../lib/modules/inetOrgPerson.inc:1906 +#: ../lib/modules/inetOrgPerson.inc:2577 ../lib/modules/inetOrgPerson.inc:3527 +#: ../lib/modules/inetOrgPerson.inc:3581 +msgid "Room number" +msgstr "Room number" + +#: ../lib/modules/inetLocalMailRecipient.inc:68 +#: ../lib/modules/inetLocalMailRecipient.inc:100 +#: ../lib/modules/inetLocalMailRecipient.inc:119 +#: ../lib/modules/inetLocalMailRecipient.inc:146 +#: ../lib/modules/inetLocalMailRecipient.inc:292 +msgid "Routing address" +msgstr "Routing address" + +#: ../lib/modules/customFields.inc:132 ../lib/modules/customFields.inc:2607 +msgid "Rows" +msgstr "Rows" + +#: ../lib/modules/asteriskExtension.inc:139 +#: ../lib/modules/asteriskExtension.inc:311 +msgid "Rules" +msgstr "Rules" + +#: ../lib/modules/customScripts.inc:187 +msgid "Run" +msgstr "Run" + +#: ../lib/types/sudo.inc:82 +msgid "Run group" +msgstr "Run group" + +#: ../lib/modules/sudoRole.inc:90 ../lib/modules/sudoRole.inc:118 +#: ../lib/modules/sudoRole.inc:183 ../lib/modules/sudoRole.inc:220 +#: ../lib/modules/sudoRole.inc:232 ../lib/modules/sudoRole.inc:424 +#: ../lib/modules/sudoRole.inc:810 +msgid "Run groups" +msgstr "Run groups" + +#: ../lib/types/sudo.inc:81 +msgid "Run user" +msgstr "Run user" + +#: ../lib/modules/sudoRole.inc:86 ../lib/modules/sudoRole.inc:113 +#: ../lib/modules/sudoRole.inc:177 ../lib/modules/sudoRole.inc:219 +#: ../lib/modules/sudoRole.inc:231 ../lib/modules/sudoRole.inc:397 +#: ../lib/modules/sudoRole.inc:809 +msgid "Run users" +msgstr "Run users" + +#: ../lib/modules/windowsUser.inc:304 +msgid "S.M." +msgstr "S.M." + +#: ../templates/serverInfo.php:129 +msgid "SASL mechanisms" +msgstr "SASL mechanisms" + +#: ../lib/modules/asteriskAccount.inc:152 +msgid "SIP URI for a realtime peer." +msgstr "SIP URI for a realtime peer." + +#: ../lib/modules/asteriskAccount.inc:128 +msgid "SIP user agent identification." +msgstr "SIP user agent identification." + +#: ../lib/modules/bindDLZ.inc:314 ../lib/modules/bindDLZ.inc:320 +#: ../lib/modules/bindDLZ.inc:326 ../lib/modules/bindDLZ.inc:332 +#: ../lib/modules/bindDLZ.inc:338 ../lib/modules/bindDLZ.inc:345 +#: ../lib/modules/bindDLZ.inc:351 ../lib/modules/bindDLZ.inc:357 +#: ../lib/modules/bindDLZ.inc:423 ../lib/modules/bindDLZ.inc:424 +#: ../lib/modules/bindDLZ.inc:425 ../lib/modules/bindDLZ.inc:426 +#: ../lib/modules/bindDLZ.inc:427 ../lib/modules/bindDLZ.inc:428 +#: ../lib/modules/bindDLZ.inc:429 ../lib/modules/bindDLZ.inc:430 +#: ../lib/modules/bindDLZ.inc:487 ../lib/modules/bindDLZ.inc:519 +#: ../lib/modules/bindDLZ.inc:521 ../lib/modules/bindDLZ.inc:523 +#: ../lib/modules/bindDLZ.inc:525 ../lib/modules/bindDLZ.inc:527 +#: ../lib/modules/bindDLZ.inc:529 +msgid "SOA record" +msgstr "SOA record" + +#: ../lib/modules/bindDLZ.inc:130 ../lib/modules/bindDLZ.inc:389 +#: ../lib/modules/bindDLZ.inc:394 ../lib/modules/bindDLZ.inc:399 +#: ../lib/modules/bindDLZ.inc:404 ../lib/modules/bindDLZ.inc:409 +#: ../lib/modules/bindDLZ.inc:493 +msgid "SRV record" +msgstr "SRV record" + +#: ../lib/modules/bindDLZ.inc:433 ../lib/modules/bindDLZ.inc:443 +#: ../lib/modules/bindDLZ.inc:1603 +msgid "SRV records" +msgstr "SRV records" + +#: ../templates/tests/lamdaemonTest.php:243 +msgid "SSH connection" +msgstr "SSH connection" + +#: ../templates/tests/lamdaemonTest.php:256 +msgid "SSH connection could be established." +msgstr "SSH connection could be established." + +#: ../lib/modules/ldapPublicKey.inc:62 ../lib/modules/ldapPublicKey.inc:72 +#: ../lib/modules/ldapPublicKey.inc:76 ../lib/modules/ldapPublicKey.inc:88 +#: ../lib/modules/ldapPublicKey.inc:119 +msgid "SSH public key" +msgstr "SSH public key" + +#: ../lib/modules/ldapPublicKey.inc:95 ../lib/modules/ldapPublicKey.inc:99 +#: ../lib/modules/ldapPublicKey.inc:197 ../lib/modules/ldapPublicKey.inc:237 +msgid "SSH public keys" +msgstr "SSH public keys" + +#: ../help/help.inc:83 +msgid "SSL certificate" +msgstr "SSL certificate" + +#: ../templates/config/mainmanage.php:308 +msgid "SSL certificates" +msgstr "SSL certificates" + +#: ../lib/modules/zarafaServer.inc:72 ../lib/modules/zarafaServer.inc:106 +#: ../lib/modules/zarafaServer.inc:136 ../lib/modules/zarafaServer.inc:175 +#: ../lib/modules/zarafaServer.inc:203 ../lib/modules/zarafaServer.inc:355 +msgid "SSL port" +msgstr "SSL port" + +#: ../templates/lists/changePassword.php:402 +#: ../templates/lists/changePassword.php:433 +msgid "Samba" +msgstr "Samba" + +#: ../lib/types/user.inc:276 ../lib/types/user.inc:372 +#: ../lib/types/user.inc:404 ../lib/types/user.inc:829 +#: ../lib/modules/sambaSamAccount.inc:146 +#: ../lib/modules/sambaGroupMapping.inc:101 +msgid "Samba 3" +msgstr "Samba 3" + +#: ../lib/modules/sambaDomain.inc:210 ../lib/modules/sambaDomain.inc:211 +msgid "Samba 3 domain SID is invalid!" +msgstr "Samba 3 domain SID is invalid!" + +#: ../lib/types/smbDomain.inc:62 +msgid "Samba 3 domain entries" +msgstr "Samba 3 domain entries" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:228 +msgid "Samba ID pool" +msgstr "Samba ID pool" + +#: ../lib/modules/posixGroup.inc:413 ../lib/modules/posixGroup.inc:524 +#: ../lib/modules/posixGroup.inc:613 ../lib/modules/posixAccount.inc:131 +#: ../lib/modules/posixAccount.inc:215 ../lib/modules/posixAccount.inc:233 +#: ../lib/modules/posixAccount.inc:501 +msgid "Samba ID pool DN" +msgstr "Samba ID pool DN" + +#: ../lib/modules/sambaSamAccount.inc:329 +#: ../lib/modules/sambaSamAccount.inc:333 +#: ../lib/modules/sambaSamAccount.inc:477 +#: ../lib/modules/sambaSamAccount.inc:543 +msgid "Samba RID" +msgstr "Samba RID" + +#: ../lib/modules/sambaGroupMapping.inc:129 +#: ../lib/modules/sambaGroupMapping.inc:154 +msgid "Samba RID number" +msgstr "Samba RID number" + +#: ../lib/modules/sambaGroupMapping.inc:123 +msgid "Samba display name" +msgstr "Samba display name" + +#: ../lib/modules/sambaDomain.inc:58 +msgid "Samba domain" +msgstr "Samba domain" + +#: ../lib/modules/sambaGroupMapping.inc:245 +msgid "Samba domain name" +msgstr "Samba domain name" + +#: ../lib/types/smbDomain.inc:53 +msgid "Samba domains" +msgstr "Samba domains" + +#: ../lib/modules/sambaGroupMapping.inc:113 +#: ../lib/modules/sambaGroupMapping.inc:135 +#: ../lib/modules/sambaGroupMapping.inc:162 +#: ../lib/modules/sambaGroupMapping.inc:541 +msgid "Samba group type" +msgstr "Samba group type" + +#: ../lib/modules/sambaSamAccount.inc:261 +msgid "Samba password" +msgstr "Samba password" + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:226 +#: ../lib/modules/sambaSamAccount.inc:314 +#: ../lib/modules/sambaSamAccount.inc:317 +#: ../lib/modules/sambaSamAccount.inc:518 +#: ../lib/modules/sambaSamAccount.inc:604 +#: ../lib/modules/sambaSamAccount.inc:1240 +#: ../lib/modules/sambaSamAccount.inc:1766 +#: ../lib/modules/sambaSamAccount.inc:1904 +msgid "Samba workstations" +msgstr "Samba workstations" + +#: ../lib/modules/sambaSamAccount.inc:1376 +msgid "Saturday" +msgstr "Saturday" + +#: ../templates/config/confmodules.php:224 +#: ../templates/config/confmain.php:468 +#: ../templates/config/moduleSettings.php:238 +#: ../templates/config/conftypes.php:338 +#: ../templates/selfService/selfServiceMain.php:416 +#: ../templates/selfService/adminMain.php:745 +#: ../templates/pdfedit/pdfpage.php:636 +#: ../templates/profedit/profilepage.php:238 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1243 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1247 +#: ../lib/modules/inetOrgPerson.inc:2801 ../lib/modules/customFields.inc:3456 +#: ../lib/modules.inc:1206 +msgid "Save" +msgstr "Save" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +msgid "Save a dump of this object" +msgstr "Save a dump of this object" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1244 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Save a dump of this object and all of its children" +msgstr "Save a dump of this object and all of its children" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:90 +msgid "Save as file" +msgstr "Save as file" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:172 +msgid "Save changes" +msgstr "Save changes" + +#: ../lib/tools/schemaBrowser.inc:44 +msgid "Schema browser" +msgstr "Schema browser" + +#: ../templates/serverInfo.php:119 +msgid "Schema suffix" +msgstr "Schema suffix" + +#: ../templates/tests/schemaTest.php:55 ../templates/tests/index.php:58 +#: ../lib/tools/tests.inc:116 +msgid "Schema test" +msgstr "Schema test" + +#: ../lib/modules/eduPerson.inc:92 ../lib/modules/eduPerson.inc:96 +#: ../lib/modules/eduPerson.inc:175 ../lib/modules/eduPerson.inc:233 +#: ../lib/modules/eduPerson.inc:285 ../lib/modules/eduPerson.inc:582 +msgid "Scoped affiliations" +msgstr "Scoped affiliations" + +#: ../help/help.inc:101 +msgid "Script path" +msgstr "Script path" + +#: ../templates/config/confmain.php:573 +msgid "Script path is invalid!" +msgstr "Script path is invalid!" + +#: ../templates/config/confmain.php:592 +msgid "Script rights are invalid!" +msgstr "Script rights are invalid!" + +#: ../templates/config/confmain.php:576 +msgid "Script server is invalid!" +msgstr "Script server is invalid!" + +#: ../help/help.inc:114 +msgid "Script servers" +msgstr "Script servers" + +#: ../templates/serverInfo.php:300 ../templates/serverInfo.php:380 +#: ../templates/3rdParty/pla/lib/QueryRender.php:75 +#: ../templates/3rdParty/pla/lib/QueryRender.php:180 +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:619 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:235 +msgid "Search" +msgstr "Search" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +#: ../templates/3rdParty/pla/lib/QueryRender.php:190 +msgid "Search Results" +msgstr "Search Results" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +#: ../templates/3rdParty/pla/lib/export_functions.php:201 +#: ../templates/3rdParty/pla/htdocs/export_form.php:81 +msgid "Search filter" +msgstr "Search filter" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:293 +msgid "Search returned no results" +msgstr "Search returned no results" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +#: ../templates/3rdParty/pla/lib/export_functions.php:200 +#: ../templates/3rdParty/pla/htdocs/export_form.php:67 +msgid "Search scope" +msgstr "Search scope" + +#: ../lib/modules/asteriskExtension.inc:457 +msgid "Search tree suffix for users" +msgstr "Search tree suffix for users" + +#: ../templates/pdfedit/pdfpage.php:608 +msgid "Section" +msgstr "Section" + +#: ../lib/modules/windowsGroup.inc:60 +msgid "Security" +msgstr "Security" + +#: ../templates/3rdParty/pla/lib/Template.php:397 +#: ../templates/3rdParty/pla/lib/Template.php:422 +#: ../templates/3rdParty/pla/lib/Template.php:427 +#: ../templates/3rdParty/pla/lib/Template.php:484 +#: ../templates/3rdParty/pla/lib/Template.php:509 +#: ../templates/3rdParty/pla/lib/Template.php:514 +msgid "Security error: The file being uploaded may be malicious." +msgstr "Security error: The file being uploaded may be malicious." + +#: ../lib/modules/zarafaGroup.inc:81 ../lib/modules/zarafaGroup.inc:178 +#: ../lib/modules/zarafaGroup.inc:203 ../lib/modules/zarafaGroup.inc:285 +#: ../lib/modules/zarafaGroup.inc:655 +msgid "Security group" +msgstr "Security group" + +#: ../lib/modules/windowsGroup.inc:139 +msgid "" +"Security groups are used for permission management and distribution groups " +"as email lists." +msgstr "" +"Security groups are used for permission management and distribution groups " +"as email lists." + +#: ../lib/modules/passwordSelfReset.inc:80 +#: ../lib/modules/passwordSelfReset.inc:205 +#: ../lib/modules/passwordSelfReset.inc:527 +msgid "Security questions" +msgstr "Security questions" + +#: ../templates/config/mainmanage.php:295 ../templates/config/confmain.php:458 +msgid "Security settings" +msgstr "Security settings" + +#: ../templates/help.php:94 +msgid "See also" +msgstr "See also" + +#: ../lib/account.inc:790 +msgid "See the manual for instructions to solve this problem." +msgstr "See the manual for instructions to solve this problem." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:494 +msgid "Select a template for the creation process" +msgstr "Select a template for the creation process" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:498 +msgid "Select a template to edit the entry" +msgstr "Select a template to edit the entry" + +#: ../lib/lists.inc:354 ../lib/lists.inc:471 +msgid "Select all" +msgstr "Select all" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:31 +msgid "Select an LDIF file" +msgstr "Select an LDIF file" + +#: ../lib/modules/nisnetgroup.inc:240 ../lib/modules/nisnetgroup.inc:269 +msgid "Select host" +msgstr "Select host" + +#: ../lib/modules/customFields.inc:3126 +msgid "Select list" +msgstr "Select list" + +#: ../lib/modules/nisMailAlias.inc:194 ../lib/modules/nisMailAlias.inc:215 +msgid "Select mail" +msgstr "Select mail" + +#: ../lib/modules/nisMailAliasUser.inc:101 +msgid "Select one or more alias entries from the list to add the recipient." +msgstr "Select one or more alias entries from the list to add the recipient." + +#: ../lib/modules/nisnetgroup.inc:246 ../lib/modules/nisnetgroup.inc:275 +#: ../lib/modules/nisMailAlias.inc:195 ../lib/modules/nisMailAlias.inc:216 +msgid "Select user" +msgstr "Select user" + +#: ../lib/modules/posixAccount.inc:1567 ../lib/modules/posixAccount.inc:1600 +#: ../lib/modules/windowsUser.inc:1030 ../lib/modules/nisnetgroup.inc:384 +#: ../lib/modules/groupOfNamesUser.inc:131 +msgid "Selected groups" +msgstr "Selected groups" + +#: ../templates/masscreate.php:159 ../templates/config/confmodules.php:299 +msgid "Selected modules" +msgstr "Selected modules" + +#: ../lib/modules/organizationalRoleUser.inc:116 +msgid "Selected roles" +msgstr "Selected roles" + +#: ../lib/modules/posixGroup.inc:295 ../lib/modules/asteriskExtension.inc:461 +msgid "Selected users" +msgstr "Selected users" + +#: ../templates/selfService/adminMain.php:336 +msgid "Self service configuration" +msgstr "Self service configuration" + +#: ../templates/selfService/adminMain.php:389 +msgid "Self service configuration editor" +msgstr "Self service configuration editor" + +#: ../templates/selfService/adminMain.php:395 +msgid "Self service login" +msgstr "Self service login" + +#: ../lib/modules/passwordSelfReset.inc:504 +msgid "Self service login attribute" +msgstr "Self service login attribute" + +#: ../templates/selfService/adminMain.php:381 +msgid "Self service profile" +msgstr "Self service profile" + +#: ../lib/modules/passwordSelfReset.inc:130 +#: ../lib/modules/passwordSelfReset.inc:531 +msgid "Send confirmation mail" +msgstr "Send confirmation mail" + +#: ../lib/modules/passwordSelfReset.inc:112 +#: ../lib/modules/passwordSelfReset.inc:551 +msgid "Send notification mail" +msgstr "Send notification mail" + +#: ../lib/modules/inetOrgPerson.inc:456 ../lib/modules/inetOrgPerson.inc:729 +msgid "Send password via mail" +msgstr "Send password via mail" + +#: ../templates/lists/changePassword.php:319 +#: ../templates/lists/changePassword.php:364 ../lib/modules.inc:1066 +#: ../help/help.inc:208 +msgid "Send via mail" +msgstr "Send via mail" + +#: ../lib/modules/qmailGroup.inc:90 ../lib/modules/qmailGroup.inc:220 +#: ../lib/modules/qmailGroup.inc:224 ../lib/modules/qmailGroup.inc:353 +#: ../lib/modules/qmailGroup.inc:408 ../lib/modules/qmailGroup.inc:429 +#: ../lib/modules/qmailGroup.inc:519 ../lib/modules/qmailGroup.inc:1068 +msgid "Sender email addresses" +msgstr "Sender email addresses" + +#: ../lib/modules/qmailGroup.inc:88 ../lib/modules/qmailGroup.inc:172 +#: ../lib/modules/qmailGroup.inc:176 ../lib/modules/qmailGroup.inc:295 +#: ../lib/modules/qmailGroup.inc:387 ../lib/modules/qmailGroup.inc:521 +#: ../lib/modules/qmailGroup.inc:790 ../lib/modules/qmailGroup.inc:1067 +msgid "Sender entries" +msgstr "Sender entries" + +#: ../lib/modules/qmailGroup.inc:92 ../lib/modules/qmailGroup.inc:188 +#: ../lib/modules/qmailGroup.inc:192 ../lib/modules/qmailGroup.inc:311 +#: ../lib/modules/qmailGroup.inc:393 ../lib/modules/qmailGroup.inc:520 +#: ../lib/modules/qmailGroup.inc:1069 +msgid "Sender filter" +msgstr "Sender filter" + +#: ../lib/modules/passwordSelfReset.inc:113 +msgid "Sends a mail to the user to inform him about the password change." +msgstr "Sends a mail to the user to inform him about the password change." + +#: ../lib/modules/passwordSelfReset.inc:131 +msgid "" +"Sends a mail to the user to validate his email address before the password " +"change." +msgstr "" +"Sends a mail to the user to validate his email address before the password " +"change." + +#: ../lib/modules/inetOrgPerson.inc:730 ../help/help.inc:209 +msgid "" +"Sends the password to the user via mail. Please edit your LAM server profile " +"to setup the mail settings." +msgstr "" +"Sends the password to the user via mail. Please edit your LAM server profile " +"to setup the mail settings." + +#: ../templates/config/mainmanage.php:358 ../lib/modules/device.inc:65 +#: ../lib/modules/device.inc:97 ../lib/modules/device.inc:127 +#: ../lib/modules/device.inc:175 ../lib/modules/device.inc:420 +#: ../lib/modules/bindDLZ.inc:227 ../lib/modules/bindDLZ.inc:357 +#: ../lib/modules/bindDLZ.inc:423 ../lib/modules/bindDLZ.inc:527 +#: ../lib/modules/bindDLZ.inc:1055 ../lib/modules/bindDLZ.inc:1548 +msgid "Serial number" +msgstr "Serial number" + +#: ../templates/tests/lamdaemonTest.php:72 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:166 +#: ../templates/3rdParty/pla/htdocs/import.php:47 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:110 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +#: ../templates/3rdParty/pla/htdocs/export_form.php:56 +#: ../lib/modules/kolabGroup.inc:289 ../lib/modules/bindDLZ.inc:171 +#: ../lib/modules/bindDLZ.inc:175 ../lib/modules/bindDLZ.inc:404 +#: ../lib/modules/bindDLZ.inc:514 ../lib/modules/bindDLZ.inc:1373 +#: ../lib/modules/bindDLZ.inc:1609 ../lib/modules/kolabSharedFolder.inc:429 +msgid "Server" +msgstr "Server" + +#: ../templates/config/confmain.php:238 +#: ../templates/selfService/adminMain.php:446 ../lib/modules/qmailUser.inc:118 +#: ../lib/modules/qmailUser.inc:163 ../lib/modules/qmailUser.inc:243 +#: ../lib/modules/qmailUser.inc:358 ../lib/modules/qmailUser.inc:427 +#: ../lib/modules/qmailUser.inc:592 ../lib/modules/qmailUser.inc:1148 +#: ../lib/modules/imapAccess.inc:77 ../lib/modules/imapAccess.inc:117 +#: ../help/help.inc:58 +msgid "Server address" +msgstr "Server address" + +#: ../templates/config/confmain.php:501 +#: ../templates/selfService/adminMain.php:217 +msgid "Server address is invalid!" +msgstr "Server address is invalid!" + +#: ../templates/serverInfo.php:103 ../lib/tools/serverInfo.inc:44 +msgid "Server information" +msgstr "Server information" + +#: ../templates/config/confmain.php:310 +msgid "Server list" +msgstr "Server list" + +#: ../templates/login.php:468 ../templates/config/confmodules.php:137 +#: ../templates/config/confmain.php:167 +#: ../templates/config/moduleSettings.php:136 +#: ../templates/config/conftypes.php:155 ../lib/modules/imapAccess.inc:130 +msgid "Server profile" +msgstr "Server profile" + +#: ../templates/config/confmain.php:280 +#: ../templates/selfService/adminMain.php:491 +msgid "Server settings" +msgstr "Server settings" + +#: ../templates/serverInfo.php:180 +msgid "Server statistics" +msgstr "Server statistics" + +#: ../templates/serverInfo.php:205 ../templates/serverInfo.php:211 +msgid "Server time" +msgstr "Server time" + +#: ../lib/modules/zarafaServer.inc:145 +msgid "Servers" +msgstr "Servers" + +#: ../lib/modules/authorizedServiceObject.inc:82 +msgid "Service name (e.g. sshd, imap, ftp). Enter one service per entry." +msgstr "Service name (e.g. sshd, imap, ftp). Enter one service per entry." + +#: ../lib/modules/bindDLZ.inc:1347 +msgid "Services (\"SRV\" records)" +msgstr "Services (\"SRV\" records)" + +#: ../templates/config/mainmanage.php:298 ../help/help.inc:146 +msgid "Session timeout" +msgstr "Session timeout" + +#: ../lib/modules/aliasEntry.inc:108 +msgid "Set" +msgstr "Set" + +#: ../lib/modules/sambaSamAccount.inc:1467 +#: ../lib/modules/sambaSamAccount.inc:1470 +#: ../lib/modules/sambaSamAccount.inc:1473 +#: ../lib/modules/shadowAccount.inc:464 ../lib/modules/shadowAccount.inc:467 +#: ../lib/modules/shadowAccount.inc:470 +msgid "Set also for Kerberos" +msgstr "Set also for Kerberos" + +#: ../lib/modules/mitKerberos.inc:682 ../lib/modules/shadowAccount.inc:461 +#: ../lib/modules/heimdalKerberos.inc:592 +msgid "Set also for Samba 3" +msgstr "Set also for Samba 3" + +#: ../lib/modules/mitKerberos.inc:679 ../lib/modules/sambaSamAccount.inc:1464 +#: ../lib/modules/heimdalKerberos.inc:589 +msgid "Set also for Shadow" +msgstr "Set also for Shadow" + +#: ../lib/modules.inc:1219 ../lib/modules.inc:1221 +msgid "Set password" +msgstr "Set password" + +#: ../lib/modules/posixAccount.inc:269 ../lib/modules/posixAccount.inc:445 +msgid "Set primary group as memberUid" +msgstr "Set primary group as memberUid" + +#: ../templates/config/profmanage.php:280 +#: ../templates/config/profmanage.php:291 +#: ../templates/config/profmanage.php:292 ../help/help.inc:136 +msgid "Set profile password" +msgstr "Set profile password" + +#: ../lib/modules.inc:1222 +msgid "Set random password" +msgstr "Set random password" + +#: ../templates/lists/changePassword.php:347 +msgid "Set specific password" +msgstr "Set specific password" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +msgid "Set the search results to 0 to retrieve all available records." +msgstr "Set the search results to 0 to retrieve all available records." + +#: ../templates/selfService/adminMain.php:593 +msgid "Set this field read-only." +msgstr "Set this field read-only." + +#: ../lib/modules/groupOfNames.inc:110 +msgid "" +"Set this only if your LDAP schema allows that groups may not have any " +"members (e.g. if you use OpenDJ)." +msgstr "" +"Set this only if your LDAP schema allows that groups may not have any " +"members (e.g. if you use OpenDJ)." + +#: ../lib/modules/nisMailAliasUser.inc:77 +#: ../lib/modules/nisMailAliasUser.inc:81 +msgid "Sets the alias names linked to the current user name." +msgstr "Sets the alias names linked to the current user name." + +#: ../lib/modules/nisMailAliasUser.inc:85 +#: ../lib/modules/nisMailAliasUser.inc:89 +msgid "Sets the alias names linked to the user's email address." +msgstr "Sets the alias names linked to the user's email address." + +#: ../lib/modules/bindDLZ.inc:224 +msgid "" +"Sets the default timeout (in seconds) for entries without explicit timeout " +"value." +msgstr "" +"Sets the default timeout (in seconds) for entries without explicit timeout " +"value." + +#: ../lib/modules/qmailUser.inc:216 +msgid "Sets the delivery mode (e.g. disable mail forwarding)." +msgstr "Sets the delivery mode (e.g. disable mail forwarding)." + +#: ../lib/modules/posixGroup.inc:497 +msgid "Sets the group password." +msgstr "Sets the group password." + +#: ../lib/modules/bindDLZ.inc:204 ../lib/modules/bindDLZ.inc:208 +msgid "" +"Sets the preference for the mail server. Lower values have higher priority." +msgstr "" +"Sets the preference for the mail server. Lower values have higher priority." + +#: ../help/help.inc:183 +msgid "Sets this account type to read-only." +msgstr "Sets this account type to read-only." + +#: ../lib/modules/shadowAccount.inc:91 +msgid "Shadow" +msgstr "Shadow" + +#: ../lib/modules/sambaSamAccount.inc:242 +#: ../lib/modules/sambaSamAccount.inc:381 +#: ../lib/modules/sambaSamAccount.inc:1544 +#: ../lib/modules/sambaSamAccount.inc:1954 +msgid "Shadowing" +msgstr "Shadowing" + +#: ../lib/types/kolabSharedFolderType.inc:141 +#, php-format +msgid "Shared folder count: %s" +msgstr "Shared folder count: %s" + +#: ../lib/modules/kolabSharedFolder.inc:57 +msgid "Shared mail folder" +msgstr "Shared mail folder" + +#: ../lib/modules/zarafaUser.inc:112 ../lib/modules/zarafaUser.inc:265 +#: ../lib/modules/zarafaUser.inc:358 ../lib/modules/zarafaUser.inc:585 +#: ../lib/modules/zarafaUser.inc:1268 ../lib/modules/zarafaUser.inc:1795 +msgid "Shared store only" +msgstr "Shared store only" + +#: ../lib/modules/ddns.inc:82 +msgid "Should DDNS (Dynamic DNS) be activated?" +msgstr "Should DDNS (Dynamic DNS) be activated?" + +#: ../lib/modules/ddns.inc:86 +msgid "Should fix IP addresses be added to the DNS server?" +msgstr "Should fix IP addresses be added to the DNS server?" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1121 +msgid "Show" +msgstr "Show" + +#: ../templates/massBuildAccounts.php:243 +msgid "Show LDIF file" +msgstr "Show LDIF file" + +#: ../lib/types/user.inc:683 +msgid "Show account status" +msgstr "Show account status" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +#: ../templates/3rdParty/pla/htdocs/export_form.php:84 +msgid "Show attributes" +msgstr "Show attributes" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1122 +msgid "Show internal attributes" +msgstr "Show internal attributes" + +#: ../lib/modules/asteriskExtension.inc:453 +msgid "Show only Asterisk accounts" +msgstr "Show only Asterisk accounts" + +#: ../lib/types/group.inc:423 +msgid "Show primary group members as normal group members" +msgstr "Show primary group members as normal group members" + +#: ../templates/schema/schema.php:194 +msgid "Single valued" +msgstr "Single valued" + +#: ../lib/modules/pykotaUser.inc:652 ../lib/modules/pykotaUser.inc:1001 +msgid "Size" +msgstr "Size" + +#: ../lib/modules/qmailUser.inc:228 +msgid "Size limit in bytes for a single mail. Larger mails will be bounced." +msgstr "Size limit in bytes for a single mail. Larger mails will be bounced." + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Skip" +msgstr "Skip" + +#: ../lib/modules/quota.inc:634 ../lib/modules/systemQuotas.inc:383 +msgid "Soft block" +msgstr "Soft block" + +#: ../lib/modules/quota.inc:113 ../lib/modules/quota.inc:401 +#: ../lib/modules/quota.inc:507 ../lib/modules/systemQuotas.inc:124 +msgid "Soft block limit" +msgstr "Soft block limit" + +#: ../lib/modules/quota.inc:114 +msgid "Soft block limit." +msgstr "Soft block limit." + +#: ../lib/modules/quota.inc:636 ../lib/modules/systemQuotas.inc:385 +msgid "Soft inode" +msgstr "Soft inode" + +#: ../lib/modules/quota.inc:136 +msgid "Soft inode (files) limit." +msgstr "Soft inode (files) limit." + +#: ../lib/modules/quota.inc:135 ../lib/modules/quota.inc:405 +#: ../lib/modules/quota.inc:509 ../lib/modules/systemQuotas.inc:128 +msgid "Soft inode limit" +msgstr "Soft inode limit" + +#: ../lib/modules/imapAccess.inc:98 +msgid "" +"Some IMAP servers store mailboxes with a prefix (e.g. \"user\" for Cyrus " +"which results in \"user.username\")." +msgstr "" +"Some IMAP servers store mailboxes with a prefix (e.g. \"user\" for Cyrus " +"which results in \"user.username\")." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1019 +#, php-format +msgid "Some attributes (%s) were modified and are highlighted below." +msgstr "Some attributes (%s) were modified and are highlighted below." + +#: ../lib/modules.inc:876 +msgid "Some required information is missing" +msgstr "Some required information is missing" + +#: ../templates/help.php:123 +#, php-format +msgid "" +"Sorry this help id ({bold}%s{endbold}) is not available for this module " +"({bold}%s{endbold})." +msgstr "" +"Sorry this help id ({bold}%s{endbold}) is not available for this module " +"({bold}%s{endbold})." + +#: ../templates/help.php:136 +#, php-format +msgid "Sorry this help number ({bold}%s{endbold}) is not available." +msgstr "Sorry this help number ({bold}%s{endbold}) is not available." + +#: ../lib/modules/sambaSamAccount.inc:326 +#: ../lib/modules/sambaSamAccount.inc:1277 +msgid "Special user" +msgstr "Special user" + +#: ../lib/modules/zarafaDynamicGroup.inc:92 +#: ../lib/modules/zarafaAddressList.inc:80 +msgid "" +"Specifies a filter that matches the members (e.g. \"(mail=*@zarafa.nl)\")." +msgstr "" +"Specifies a filter that matches the members (e.g. \"(mail=*@zarafa.nl)\")." + +#: ../lib/modules/groupOfNames.inc:119 +msgid "Specifies how members and owners are displayed." +msgstr "Specifies how members and owners are displayed." + +#: ../lib/modules/organizationalRole.inc:107 +msgid "Specifies how members are displayed." +msgstr "Specifies how members are displayed." + +#: ../help/help.inc:86 +msgid "" +"Specifies if LAM should automatically follow referrals. Activate if you use " +"referrals in your LDAP directory." +msgstr "" +"Specifies if LAM should automatically follow referrals. Activate if you use " +"referrals in your LDAP directory." + +#: ../help/help.inc:260 +msgid "" +"Specifies if password mails may be sent to mail addresses other than the " +"user's LDAP mail address." +msgstr "" +"Specifies if password mails may be sent to mail addresses other than the " +"user's LDAP mail address." + +#: ../help/help.inc:256 +msgid "Specifies if the mail should be sent as text or HTML." +msgstr "Specifies if the mail should be sent as text or HTML." + +#: ../help/help.inc:167 +msgid "" +"Specifies if the password must not contain 3 or more characters of the user/" +"first/last name." +msgstr "" +"Specifies if the password must not contain 3 or more characters of the user/" +"first/last name." + +#: ../help/help.inc:165 +msgid "Specifies if the password must not contain the user name." +msgstr "Specifies if the password must not contain the user name." + +#: ../lib/modules/asteriskAccount.inc:224 +msgid "Specifies if the user can call forward." +msgstr "Specifies if the user can call forward." + +#: ../lib/modules/zarafaGroup.inc:82 +msgid "Specifies if this group has security possibilities." +msgstr "Specifies if this group has security possibilities." + +#: ../lib/modules/zarafaServer.inc:81 +msgid "" +"Specifies if this server contains the public store. This may be changed only " +"for new entries." +msgstr "" +"Specifies if this server contains the public store. This may be changed only " +"for new entries." + +#: ../lib/modules/dhcp_settings.inc:202 +msgid "Specifies if unknown clients are allowed." +msgstr "Specifies if unknown clients are allowed." + +#: ../lib/modules/ppolicy.inc:133 +msgid "Specifies if users are allowed to change their own passwords or not." +msgstr "Specifies if users are allowed to change their own passwords or not." + +#: ../lib/modules/zarafaDynamicGroup.inc:88 +#: ../lib/modules/zarafaAddressList.inc:76 +msgid "" +"Specifies the LDAP base where to search for members (e.g. \"ou=zarafa," +"dc=company,dc=com\")." +msgstr "" +"Specifies the LDAP base where to search for members (e.g. \"ou=zarafa," +"dc=company,dc=com\")." + +#: ../lib/modules/customFields.inc:161 +msgid "Specifies the allowed file extension. This is checked at upload time." +msgstr "Specifies the allowed file extension. This is checked at upload time." + +#: ../lib/modules/zarafaContact.inc:96 ../lib/modules/zarafaGroup.inc:98 +#: ../lib/modules/zarafaUser.inc:145 +msgid "" +"Specifies the attribute that should be used to reference the entries. If you " +"would like to reference also groups then this must be set to \"dn\"." +msgstr "" +"Specifies the attribute that should be used to reference the entries. If you " +"would like to reference also groups then this must be set to \"dn\"." + +#: ../lib/modules/zarafaUser.inc:121 +msgid "Specifies the capacity of this resource." +msgstr "Specifies the capacity of this resource." + +#: ../lib/modules/kolabSharedFolder.inc:163 +msgid "Specifies the folder type (e.g. shared mail folder)." +msgstr "Specifies the folder type (e.g. shared mail folder)." + +#: ../lib/modules/customFields.inc:157 +msgid "Specifies the maximum allowed file size in bytes." +msgstr "Specifies the maximum allowed file size in bytes." + +#: ../lib/modules/mitKerberos.inc:137 ../lib/modules/heimdalKerberos.inc:111 +msgid "Specifies the maximum lifetime of a ticket in days." +msgstr "Specifies the maximum lifetime of a ticket in days." + +#: ../lib/modules/ppolicy.inc:117 +msgid "" +"Specifies the maximum number of seconds before a password is due to expire " +"that expiration warning messages will be returned to a user." +msgstr "" +"Specifies the maximum number of seconds before a password is due to expire " +"that expiration warning messages will be returned to a user." + +#: ../lib/modules/freeRadius.inc:109 +msgid "" +"Specifies the maximum number of seconds that a connection can be idle before " +"the session is terminated." +msgstr "" +"Specifies the maximum number of seconds that a connection can be idle before " +"the session is terminated." + +#: ../lib/modules/mitKerberos.inc:133 ../lib/modules/heimdalKerberos.inc:115 +msgid "Specifies the maximum renewable lifetime of a ticket in days." +msgstr "Specifies the maximum renewable lifetime of a ticket in days." + +#: ../lib/modules/ppolicy.inc:121 +msgid "" +"Specifies the minimum number of characters that will be accepted in a " +"password." +msgstr "" +"Specifies the minimum number of characters that will be accepted in a " +"password." + +#: ../help/help.inc:163 +msgid "Specifies the number of above password rules that must be fulfilled." +msgstr "Specifies the number of above password rules that must be fulfilled." + +#: ../lib/modules/ppolicy.inc:109 +msgid "" +"Specifies the number of consecutive failed login attempts after which the " +"password may not be used to login." +msgstr "" +"Specifies the number of consecutive failed login attempts after which the " +"password may not be used to login." + +#: ../lib/modules/ppolicy.inc:93 +msgid "" +"Specifies the number of previously used passwords which should be saved in " +"the password history. New passwords can only be set if they are not in the " +"password history." +msgstr "" +"Specifies the number of previously used passwords which should be saved in " +"the password history. New passwords can only be set if they are not in the " +"password history." + +#: ../lib/modules/ppolicy.inc:113 +msgid "" +"Specifies the number of seconds after which old consecutive failed login " +"attempts are purged from the failure counter, even though no successful " +"authentication has occurred." +msgstr "" +"Specifies the number of seconds after which old consecutive failed login " +"attempts are purged from the failure counter, even though no successful " +"authentication has occurred." + +#: ../lib/modules/ppolicy.inc:105 +msgid "" +"Specifies the number of seconds during which the password cannot be used to " +"login due to too many consecutive failed bind attempts." +msgstr "" +"Specifies the number of seconds during which the password cannot be used to " +"login due to too many consecutive failed bind attempts." + +#: ../lib/modules/eduPerson.inc:93 ../lib/modules/eduPerson.inc:97 +msgid "" +"Specifies the person's affiliation within a particular security domain in " +"broad categories such as student, faculty, staff, alum, etc." +msgstr "" +"Specifies the person's affiliation within a particular security domain in " +"broad categories such as student, faculty, staff, alum, etc." + +#: ../lib/modules/eduPerson.inc:89 +msgid "" +"Specifies the person's primary relationship to the institution in broad " +"categories such as student, faculty, staff, alum, etc." +msgstr "" +"Specifies the person's primary relationship to the institution in broad " +"categories such as student, faculty, staff, alum, etc." + +#: ../lib/modules/eduPerson.inc:106 ../lib/modules/eduPerson.inc:110 +msgid "" +"Specifies the person's relationships to the institution in broad categories " +"such as student, faculty, staff, alum, etc." +msgstr "" +"Specifies the person's relationships to the institution in broad categories " +"such as student, faculty, staff, alum, etc." + +#: ../lib/modules/bindDLZ.inc:180 ../lib/modules/bindDLZ.inc:184 +msgid "" +"Specifies the priority of this entry (lower value means more preferred)." +msgstr "" +"Specifies the priority of this entry (lower value means more preferred)." + +#: ../lib/modules/pykotaGroup.inc:126 ../lib/modules/pykotaUser.inc:129 +msgid "" +"Specifies the type of limit for printing if any. Please note that in " +"contrast to \"Free printing\" the option \"No quota\" includes accounting." +msgstr "" +"Specifies the type of limit for printing if any. Please note that in " +"contrast to \"Free printing\" the option \"No quota\" includes accounting." + +#: ../lib/modules/bindDLZ.inc:196 ../lib/modules/bindDLZ.inc:200 +msgid "Specifies the used port for this entry." +msgstr "Specifies the used port for this entry." + +#: ../lib/modules/asteriskAccount.inc:176 +msgid "Specifies the user's pickup group." +msgstr "Specifies the user's pickup group." + +#: ../lib/modules/bindDLZ.inc:188 ../lib/modules/bindDLZ.inc:192 +msgid "Specifies the weight of this entry (relative value)." +msgstr "Specifies the weight of this entry (relative value)." + +#: ../lib/modules/zarafaUser.inc:109 +msgid "" +"Specifies whether the user is an admin. System administrators may " +"additionally create, modify and delete companies." +msgstr "" +"Specifies whether the user is an admin. System administrators may " +"additionally create, modify and delete companies." + +#: ../lib/modules/ppolicy.inc:137 +msgid "" +"Specifies whether the user's existing password must be sent along with their " +"new password when changing a password. Attention, LAM does not support " +"password changes which require the old password." +msgstr "" +"Specifies whether the user's existing password must be sent along with their " +"new password when changing a password. Attention, LAM does not support " +"password changes which require the old password." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1460 +msgid "Specify attributes and values" +msgstr "Specify attributes and values" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +msgid "Standard LDAP search filter. Example: (&(sn=Smith)(givenName=David))" +msgstr "Standard LDAP search filter. Example: (&(sn=Smith)(givenName=David))" + +#: ../templates/serverInfo.php:193 ../templates/serverInfo.php:199 +msgid "Start time" +msgstr "Start time" + +#: ../lib/modules/windowsUser.inc:168 ../lib/modules/windowsUser.inc:338 +#: ../lib/modules/windowsUser.inc:512 ../lib/modules/windowsUser.inc:545 +#: ../lib/modules/windowsUser.inc:712 ../lib/modules/windowsUser.inc:1600 +#: ../lib/modules/windowsUser.inc:1733 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:190 ../lib/modules/inetOrgPerson.inc:515 +#: ../lib/modules/inetOrgPerson.inc:557 ../lib/modules/inetOrgPerson.inc:780 +#: ../lib/modules/inetOrgPerson.inc:784 ../lib/modules/inetOrgPerson.inc:1261 +#: ../lib/modules/inetOrgPerson.inc:1264 ../lib/modules/inetOrgPerson.inc:1910 +#: ../lib/modules/inetOrgPerson.inc:2599 ../lib/modules/inetOrgPerson.inc:3519 +#: ../lib/modules/inetOrgPerson.inc:3579 +msgid "State" +msgstr "State" + +#: ../templates/pdfedit/pdfpage.php:538 ../templates/pdfedit/pdfpage.php:540 +msgid "Static text" +msgstr "Static text" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1455 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1467 +#, php-format +msgid "Step %s of %s" +msgstr "Step %s of %s" + +#: ../lib/modules/windowsUser.inc:280 ../lib/modules/inetOrgPerson.inc:308 +msgid "Steve" +msgstr "Steve" + +#: ../lib/modules/sambaSamAccount.inc:421 ../lib/modules/posixAccount.inc:350 +#: ../lib/modules/windowsUser.inc:292 ../lib/modules/windowsUser.inc:298 +#: ../lib/modules/pykotaUser.inc:201 ../lib/modules/inetOrgPerson.inc:2037 +#: ../lib/modules/asteriskVoicemail.inc:174 +msgid "Steve Miller" +msgstr "Steve Miller" + +#: ../lib/modules/posixAccount.inc:358 +msgid "Steve Miller,Room 2.14,123-123-1234,123-123-1234" +msgstr "Steve Miller,Room 2.14,123-123-1234,123-123-1234" + +#: ../lib/modules/eduPerson.inc:190 +msgid "Steve, Stevo" +msgstr "Steve, Stevo" + +#: ../lib/modules/imapAccess.inc:91 +msgid "" +"Storing the password in your server profile is also possible but not " +"recommended." +msgstr "" +"Storing the password in your server profile is also possible but not " +"recommended." + +#: ../lib/modules/windowsUser.inc:172 ../lib/modules/windowsUser.inc:314 +#: ../lib/modules/windowsUser.inc:513 ../lib/modules/windowsUser.inc:544 +#: ../lib/modules/windowsUser.inc:708 ../lib/modules/windowsUser.inc:1601 +#: ../lib/modules/windowsUser.inc:1732 ../lib/modules/inetOrgPerson.inc:81 +#: ../lib/modules/inetOrgPerson.inc:158 ../lib/modules/inetOrgPerson.inc:178 +#: ../lib/modules/inetOrgPerson.inc:377 ../lib/modules/inetOrgPerson.inc:545 +#: ../lib/modules/inetOrgPerson.inc:664 ../lib/modules/inetOrgPerson.inc:668 +#: ../lib/modules/inetOrgPerson.inc:1225 ../lib/modules/inetOrgPerson.inc:1228 +#: ../lib/modules/inetOrgPerson.inc:1895 ../lib/modules/inetOrgPerson.inc:2522 +#: ../lib/modules/inetOrgPerson.inc:3511 ../lib/modules/inetOrgPerson.inc:3576 +msgid "Street" +msgstr "Street" + +#: ../templates/pdfedit/pdfpage.php:449 ../templates/pdfedit/pdfmain.php:353 +msgid "Structure name" +msgstr "Structure name" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:136 +#: ../templates/3rdParty/pla/htdocs/export_form.php:33 +msgid "Sub (entire subtree)" +msgstr "Sub (entire subtree)" + +#: ../lib/types/netgroup.inc:93 ../lib/modules/nisnetgroup.inc:91 +#: ../lib/modules/nisnetgroup.inc:126 ../lib/modules/nisnetgroup.inc:141 +#: ../lib/modules/nisnetgroup.inc:209 ../lib/modules/nisnetgroup.inc:383 +#: ../lib/modules/nisnetgroup.inc:581 +msgid "Subgroups" +msgstr "Subgroups" + +#: ../templates/config/confmain.php:349 ../lib/modules/selfRegistration.inc:94 +#: ../lib/modules/selfRegistration.inc:231 +#: ../lib/modules/passwordSelfReset.inc:120 +#: ../lib/modules/passwordSelfReset.inc:539 +#: ../lib/modules/passwordSelfReset.inc:559 ../help/help.inc:248 +msgid "Subject" +msgstr "Subject" + +#: ../lib/types/dhcp.inc:94 ../lib/modules/dhcp_settings.inc:149 +#: ../lib/modules/dhcp_settings.inc:207 ../lib/modules/dhcp_settings.inc:222 +#: ../lib/modules/dhcp_settings.inc:242 ../lib/modules/dhcp_settings.inc:561 +#: ../lib/modules/dhcp_settings.inc:685 +msgid "Subnet" +msgstr "Subnet" + +#: ../lib/modules/dhcp_settings.inc:189 ../lib/modules/dhcp_settings.inc:215 +#: ../lib/modules/dhcp_settings.inc:233 ../lib/modules/dhcp_settings.inc:300 +#: ../lib/modules/dhcp_settings.inc:606 ../lib/modules/dhcp_settings.inc:681 +msgid "Subnet mask" +msgstr "Subnet mask" + +#: ../templates/schema/schema.php:176 +msgid "Substring Rule" +msgstr "Substring Rule" + +#: ../templates/3rdParty/pla/htdocs/import.php:63 +#: ../templates/3rdParty/pla/htdocs/copy.php:56 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:68 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:85 +msgid "Success" +msgstr "Success" + +#: ../templates/3rdParty/pla/htdocs/delete.php:32 +#, php-format +msgid "Successfully deleted DN %s" +msgstr "Successfully deleted DN %s" + +#: ../lib/modules/sudoRole.inc:48 +msgid "Sudo role" +msgstr "Sudo role" + +#: ../lib/types/sudo.inc:159 +#, php-format +msgid "Sudo role count: %s" +msgstr "Sudo role count: %s" + +#: ../lib/types/sudo.inc:48 +msgid "Sudo role management" +msgstr "Sudo role management" + +#: ../lib/types/sudo.inc:39 +msgid "Sudo roles" +msgstr "Sudo roles" + +#: ../lib/modules/sudoRole.inc:139 +msgid "Sudo roles with higher order numbers are used if multiple roles match." +msgstr "Sudo roles with higher order numbers are used if multiple roles match." + +#: ../lib/modules/nisMailAliasUser.inc:92 +#: ../lib/modules/nisMailAliasUser.inc:362 ../lib/modules.inc:988 +msgid "Suffix" +msgstr "Suffix" + +#: ../lib/modules/posixGroup.inc:416 ../lib/modules/posixGroup.inc:516 +msgid "Suffix for GID/group name check" +msgstr "Suffix for GID/group name check" + +#: ../lib/modules/posixAccount.inc:224 ../lib/modules/posixAccount.inc:242 +#: ../lib/modules/posixAccount.inc:489 +msgid "Suffix for UID/user name check" +msgstr "Suffix for UID/user name check" + +#: ../lib/modules/selfRegistration.inc:102 +#: ../lib/modules/selfRegistration.inc:212 +msgid "Suffix for new users" +msgstr "Suffix for new users" + +#: ../lib/modules/sambaSamAccount.inc:1376 +msgid "Sunday" +msgstr "Sunday" + +#: ../templates/selfService/adminMain.php:602 +msgid "Switch back to default label." +msgstr "Switch back to default label." + +#: ../templates/3rdParty/pla/htdocs/compare.php:72 +msgid "Switch entries" +msgstr "Switch entries" + +#: ../lib/modules/asteriskAccount.inc:96 +#: ../lib/modules/asteriskVoicemail.inc:84 +msgid "Sync Asterisk password with Unix password" +msgstr "Sync Asterisk password with Unix password" + +#: ../lib/modules/heimdalKerberos.inc:242 +msgid "Sync Heimdal Kerberos password with Unix password" +msgstr "Sync Heimdal Kerberos password with Unix password" + +#: ../lib/modules/mitKerberos.inc:277 +msgid "Sync MIT Kerberos password with Unix password" +msgstr "Sync MIT Kerberos password with Unix password" + +#: ../lib/modules/passwordSelfReset.inc:148 +#: ../lib/modules/passwordSelfReset.inc:529 +msgid "Sync Samba 3 password" +msgstr "Sync Samba 3 password" + +#: ../lib/modules/sambaSamAccount.inc:248 +msgid "Sync Samba LM password with Unix password" +msgstr "Sync Samba LM password with Unix password" + +#: ../lib/modules/sambaSamAccount.inc:247 +msgid "Sync Samba NT password with Unix password" +msgstr "Sync Samba NT password with Unix password" + +#: ../lib/modules/customFields.inc:1111 +msgid "Sync fields with page layout" +msgstr "Sync fields with page layout" + +#: ../templates/schema/schema.php:181 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:142 +msgid "Syntax" +msgstr "Syntax" + +#: ../templates/schema/schema.php:89 +msgid "Syntax OID" +msgstr "Syntax OID" + +#: ../templates/schema/schema.php:73 ../templates/schema/schema.php:74 +msgid "Syntaxes" +msgstr "Syntaxes" + +#: ../lib/modules/zarafaUser.inc:602 ../lib/modules/zarafaUser.inc:1259 +msgid "System administrator" +msgstr "System administrator" + +#: ../templates/config/mainmanage.php:412 +msgid "System logging" +msgstr "System logging" + +#: ../help/help.inc:60 +msgid "TLS cannot be combined with ldaps://." +msgstr "TLS cannot be combined with ldaps://." + +#: ../lib/modules/bindDLZ.inc:125 ../lib/modules/bindDLZ.inc:377 +#: ../lib/modules/bindDLZ.inc:382 ../lib/modules/bindDLZ.inc:491 +msgid "TXT record" +msgstr "TXT record" + +#: ../lib/modules/bindDLZ.inc:432 ../lib/modules/bindDLZ.inc:442 +#: ../lib/modules/bindDLZ.inc:1576 +msgid "TXT records" +msgstr "TXT records" + +#: ../lib/modules/kolabSharedFolder.inc:158 +#: ../lib/modules/kolabSharedFolder.inc:194 +#: ../lib/modules/kolabSharedFolder.inc:240 +#: ../lib/modules/kolabSharedFolder.inc:262 +#: ../lib/modules/kolabSharedFolder.inc:292 +#: ../lib/modules/kolabSharedFolder.inc:560 +msgid "Target IMAP folder" +msgstr "Target IMAP folder" + +#: ../lib/modules/kolabUser.inc:245 +msgid "Target of invitation policy is invalid!" +msgstr "Target of invitation policy is invalid!" + +#: ../templates/pdfedit/pdfmain.php:317 +#: ../templates/profedit/profilemain.php:284 +msgid "Target server profile" +msgstr "Target server profile" + +#: ../templates/help.php:89 ../lib/modules.inc:660 +msgid "Technical name" +msgstr "Technical name" + +#: ../templates/lists/changePassword.php:285 ../lib/types/user.inc:203 +#: ../lib/modules/windowsUser.inc:176 ../lib/modules/windowsUser.inc:362 +#: ../lib/modules/windowsUser.inc:514 ../lib/modules/windowsUser.inc:542 +#: ../lib/modules/windowsUser.inc:601 ../lib/modules/windowsUser.inc:718 +#: ../lib/modules/windowsUser.inc:1602 ../lib/modules/windowsUser.inc:1726 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:157 +#: ../lib/modules/inetOrgPerson.inc:205 ../lib/modules/inetOrgPerson.inc:417 +#: ../lib/modules/inetOrgPerson.inc:572 ../lib/modules/inetOrgPerson.inc:696 +#: ../lib/modules/inetOrgPerson.inc:700 ../lib/modules/inetOrgPerson.inc:1382 +#: ../lib/modules/inetOrgPerson.inc:1385 ../lib/modules/inetOrgPerson.inc:1900 +#: ../lib/modules/inetOrgPerson.inc:2478 ../lib/modules/inetOrgPerson.inc:3529 +#: ../lib/modules/inetOrgPerson.inc:3582 +msgid "Telephone number" +msgstr "Telephone number" + +#: ../lib/modules/inetOrgPerson.inc:355 +msgid "Temp" +msgstr "Temp" + +#: ../lib/modules/windowsUser.inc:310 ../lib/modules/pykotaUser.inc:228 +#: ../lib/modules/inetOrgPerson.inc:331 +msgid "Temp, contract till December" +msgstr "Temp, contract till December" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +msgid "Template" +msgstr "Template" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:520 +msgid "Templates" +msgstr "Templates" + +#: ../lib/modules/sambaSamAccount.inc:390 +#: ../lib/modules/sambaSamAccount.inc:608 +#: ../lib/modules/sambaSamAccount.inc:1289 +msgid "Terminal server options" +msgstr "Terminal server options" + +#: ../lib/tools/tests.inc:44 +msgid "Tests" +msgstr "Tests" + +#: ../templates/config/confmain.php:364 ../lib/modules/selfRegistration.inc:69 +#: ../lib/modules/selfRegistration.inc:238 ../lib/modules/bindDLZ.inc:163 +#: ../lib/modules/bindDLZ.inc:167 ../lib/modules/bindDLZ.inc:377 +#: ../lib/modules/bindDLZ.inc:1245 ../lib/modules/bindDLZ.inc:1579 +#: ../lib/modules/passwordSelfReset.inc:124 +#: ../lib/modules/passwordSelfReset.inc:134 +#: ../lib/modules/passwordSelfReset.inc:543 +#: ../lib/modules/passwordSelfReset.inc:563 ../help/help.inc:250 +msgid "Text" +msgstr "Text" + +#: ../lib/modules/bindDLZ.inc:1242 +msgid "Text (\"TXT\" records)" +msgstr "Text (\"TXT\" records)" + +#: ../lib/modules/customFields.inc:2587 +msgid "Text area" +msgstr "Text area" + +#: ../templates/pdfedit/pdfpage.php:617 ../lib/modules/customFields.inc:1885 +msgid "Text field" +msgstr "Text field" + +#: ../lib/modules/eduPerson.inc:115 +msgid "" +"The \"NetID\" of the person for the purposes of inter-institutional " +"authentication. It should be represented in the form \"user@scope\" where " +"scope defines a local security domain." +msgstr "" +"The \"NetID\" of the person for the purposes of inter-institutional " +"authentication. It should be represented in the form \"user@scope\" where " +"scope defines a local security domain." + +#: ../lib/modules/dhcp_settings.inc:336 +msgid "The DHCP ranges were changed to fit for the new subnet." +msgstr "The DHCP ranges were changed to fit for the new subnet." + +#: ../lib/modules/eduPerson.inc:127 +msgid "" +"The DN of the directory entry representing the institution with which the " +"person is associated." +msgstr "" +"The DN of the directory entry representing the institution with which the " +"person is associated." + +#: ../lib/modules/eduPerson.inc:131 +msgid "" +"The DN of the directory entry representing the person's primary " +"organisational unit." +msgstr "" +"The DN of the directory entry representing the person's primary " +"organizational unit." + +#: ../lib/modules/eduPerson.inc:135 ../lib/modules/eduPerson.inc:139 +msgid "" +"The DNs of the directory entries representing the person's organisational " +"units." +msgstr "" +"The DNs of the directory entries representing the person's organizational " +"units." + +#: ../lib/modules/posixGroup.inc:513 +msgid "" +"The ID of this group was changed. You can update all user and host entries " +"to the new group ID." +msgstr "" +"The ID of this group was changed. You can update all user and host entries " +"to the new group ID." + +#: ../lib/modules/imapAccess.inc:179 +msgid "The IMAP admin password is empty." +msgstr "The IMAP admin password is empty." + +#: ../templates/config/mainmanage.php:100 +#: ../templates/config/mainmanage.php:122 ../lib/modules/bindDLZ.inc:495 +#: ../lib/modules/bindDLZ.inc:496 +#, php-format +msgid "The IP address %s is invalid!" +msgstr "The IP address %s is invalid!" + +#: ../lib/modules/fixed_ip.inc:498 +msgid "The IP address does not match the subnet." +msgstr "The IP address does not match the subnet." + +#: ../lib/modules/fixed_ip.inc:501 +msgid "The IP address is already in use." +msgstr "The IP address is already in use." + +#: ../lib/modules/ipHost.inc:115 ../lib/modules/ipHost.inc:116 +#: ../lib/modules/asteriskAccount.inc:574 +#: ../lib/modules/asteriskAccount.inc:575 ../lib/modules/ppolicyUser.inc:96 +#: ../lib/modules/range.inc:418 ../lib/modules/range.inc:435 +#: ../lib/modules/freeRadius.inc:249 ../lib/modules/freeRadius.inc:250 +#: ../lib/modules/fixed_ip.inc:493 +msgid "The IP address is invalid." +msgstr "The IP address is invalid." + +#: ../lib/modules/fixed_ip.inc:107 +msgid "The IP address of the PC." +msgstr "The IP address of the PC." + +#: ../lib/modules/dhcp_settings.inc:162 +msgid "" +"The IP addresses of the DNS servers. Multiple addresses are separated by \"," +"\". Example: 192.168.0.10, 192.168.0.11" +msgstr "" +"The IP addresses of the DNS servers. Multiple addresses are separated by \"," +"\". Example: 192.168.0.10, 192.168.0.11" + +#: ../lib/modules/dhcp_settings.inc:170 +msgid "" +"The IP addresses of the Netbios name servers (e.g. \"123.123.123.123, " +"123.123.123.124\")." +msgstr "" +"The IP addresses of the Netbios name servers (e.g. \"123.123.123.123, " +"123.123.123.124\")." + +#: ../lib/modules/range.inc:422 ../lib/modules/range.inc:437 +msgid "The IP does not match the subnet." +msgstr "The IP does not match the subnet." + +#: ../lib/modules/mitKerberos.inc:153 ../lib/modules/heimdalKerberos.inc:158 +msgid "The Kerberos realm for this account." +msgstr "The Kerberos realm for this account." + +#: ../lib/modules/heimdalKerberos.inc:99 +msgid "The Kerberos realm of this user." +msgstr "The Kerberos realm of this user." + +#: ../lib/modules/fixed_ip.inc:103 +msgid "The MAC address of the PC. Example: 11:22:33:44:55:aa" +msgstr "The MAC address of the PC. Example: 11:22:33:44:55:aa" + +#: ../lib/modules/dhcp_settings.inc:328 ../lib/modules/dhcp_settings.inc:329 +msgid "The Netbios server is invalid." +msgstr "The Netbios server is invalid." + +#: ../lib/modules/fixed_ip.inc:456 +msgid "The PC name may not be longer than 20 characters." +msgstr "The PC name may not be longer than 20 characters." + +#: ../lib/modules/fixed_ip.inc:465 +msgid "The PC name may only contain A-Z, a-z and 0-9." +msgstr "The PC name may only contain A-Z, a-z and 0-9." + +#: ../lib/modules/fixed_ip.inc:459 +msgid "The PC name needs to be at least 2 characters long." +msgstr "The PC name needs to be at least 2 characters long." + +#: ../help/help.inc:205 +msgid "" +"The PDF structure defines what information is exported as PDF file and how " +"the pages are structured. You can manage the PDF structures in the PDF " +"editor (under \"Tools\")." +msgstr "" +"The PDF structure defines what information is exported as PDF file and how " +"the pages are structured. You can manage the PDF structures in the PDF " +"editor (under \"Tools\")." + +#: ../templates/3rdParty/pla/htdocs/create.php:44 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:38 +#: ../lib/modules/selfRegistration.inc:571 +msgid "The RDN field is empty." +msgstr "The RDN field is empty." + +#: ../lib/modules/freeRadius.inc:93 +msgid "The Radius realm of this account." +msgstr "The Radius realm of this account." + +#: ../lib/modules/sambaDomain.inc:82 +msgid "The SID of your Samba server. Get it with \"net getlocalsid\"." +msgstr "The SID of your Samba server. Get it with \"net getlocalsid\"." + +#: ../templates/selfService/selfServiceLogin.php:141 +#: ../templates/selfService/selfServiceMain.php:168 +msgid "The TLS encryption could not be started." +msgstr "The TLS encryption could not be started." + +#: ../lib/modules/posixAccount.inc:99 +msgid "" +"The UID ranges for users and hosts overlap! This is a problem because LAM " +"uses the highest UID in use + 1 for new accounts. Please set the minimum UID " +"to equal values or use independent ranges." +msgstr "" +"The UID ranges for users and hosts overlap! This is a problem because LAM " +"uses the highest UID in use + 1 for new accounts. Please set the minimum UID " +"to equal values or use independent ranges." + +#: ../lib/modules/zarafaServer.inc:77 +msgid "The Unix socket or named pipe to the server." +msgstr "The Unix socket or named pipe to the server." + +#: ../lib/modules/asteriskVoicemail.inc:215 +#: ../lib/modules/asteriskVoicemail.inc:216 +msgid "The account context is invalid." +msgstr "The account context is invalid." + +#: ../lib/modules/asteriskAccount.inc:112 +#: ../lib/modules/asteriskExtension.inc:99 +#: ../lib/modules/asteriskVoicemail.inc:92 +msgid "The account context stores information about the dial plan." +msgstr "The account context stores information about the dial plan." + +#: ../lib/modules/asteriskAccount.inc:566 +#: ../lib/modules/asteriskAccount.inc:567 +msgid "The account type is invalid." +msgstr "The account type is invalid." + +#: ../lib/modules/freeRadius.inc:105 +msgid "The account will be locked after this date." +msgstr "The account will be locked after this date." + +#: ../help/help.inc:191 +msgid "The account will be saved under this LDAP suffix." +msgstr "The account will be saved under this LDAP suffix." + +#: ../lib/modules/bindDLZ.inc:497 ../lib/modules/bindDLZ.inc:498 +#, php-format +msgid "The alias name \"%s\" is invalid." +msgstr "The alias name \"%s\" is invalid." + +#: ../lib/modules/bindDLZ.inc:136 +msgid "The alias name for this entry." +msgstr "The alias name for this entry." + +#: ../lib/modules/passwordSelfReset.inc:230 +#, php-format +msgid "The answer needs to be at least %s characters long." +msgstr "The answer needs to be at least %s characters long." + +#: ../lib/modules/passwordSelfReset.inc:1211 +msgid "The answer to the security question is wrong." +msgstr "The answer to the security question is wrong." + +#: ../templates/tests/schemaTest.php:128 +#, php-format +msgid "" +"The attribute %s is not supported for the object class %s by your LDAP " +"server." +msgstr "" +"The attribute %s is not supported for the object class %s by your LDAP " +"server." + +#: ../templates/3rdParty/pla/lib/import_functions.php:531 +#, php-format +msgid "The attribute to modify doesn't match the one specified by %s." +msgstr "The attribute to modify doesn't match the one specified by %s." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:31 +msgid "The attribute value does not exist" +msgstr "The attribute value does not exist" + +#: ../lib/modules/asteriskAccount.inc:556 +#: ../lib/modules/asteriskAccount.inc:558 +msgid "The caller ID format is invalid." +msgstr "The caller ID format is invalid." + +#: ../lib/modules/puppetClient.inc:186 ../lib/modules/puppetClient.inc:187 +msgid "The class names may only contain ASCII characters." +msgstr "The class names may only contain ASCII characters." + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:404 +msgid "The config file is not writable." +msgstr "The config file is not writable." + +#: ../templates/3rdParty/pla/htdocs/create.php:29 +#: ../templates/3rdParty/pla/htdocs/copy.php:34 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:23 +#, php-format +msgid "The container you specified (%s) does not exist. Please try again." +msgstr "The container you specified (%s) does not exist. Please try again." + +#: ../lib/modules/dhcp_settings.inc:326 ../lib/modules/dhcp_settings.inc:327 +msgid "The default gateway is invalid." +msgstr "The default gateway is invalid." + +#: ../lib/modules/qmailUser.inc:260 +msgid "The default interpretation of .qmail files." +msgstr "The default interpretation of .qmail files." + +#: ../templates/3rdParty/pla/htdocs/copy.php:31 +#, php-format +msgid "The destination entry (%s) already exists." +msgstr "The destination entry (%s) already exists." + +#: ../lib/modules/dhcp_settings.inc:338 ../lib/modules/dhcp_settings.inc:339 +msgid "" +"The domain name includes invalid characters. Valid characters are A-Z, a-z, " +"0-9, \".\", \"_\",\"-\"." +msgstr "" +"The domain name includes invalid characters. Valid characters are A-Z, a-z, " +"0-9, \".\", \"_\",\"-\"." + +#: ../lib/modules/dhcp_settings.inc:146 +msgid "The domain name of the subnet." +msgstr "The domain name of the subnet." + +#: ../lib/modules/asteriskVoicemail.inc:220 +#: ../lib/modules/asteriskVoicemail.inc:221 +msgid "The email address is invalid." +msgstr "The email address is invalid." + +#: ../lib/modules/range.inc:96 +msgid "The ending IP address of the range." +msgstr "The ending IP address of the range." + +#: ../lib/modules/dhcp_settings.inc:330 +msgid "The entered Netbios node type does not exist." +msgstr "The entered Netbios node type does not exist." + +#: ../templates/3rdParty/pla/htdocs/update.php:27 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:22 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:21 +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:24 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:23 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:20 +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:24 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:20 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:27 +#, php-format +msgid "The entry (%s) does not exist." +msgstr "The entry (%s) does not exist." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:27 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:28 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:34 +msgid "The entry does not exist and will be ignored" +msgstr "The entry does not exist and will be ignored" + +#: ../lib/modules/puppetClient.inc:184 ../lib/modules/puppetClient.inc:185 +msgid "The environment name may only contain ASCII characters." +msgstr "The environment name may only contain ASCII characters." + +#: ../lib/modules/shadowAccount.inc:67 +msgid "The expiration date is invalid." +msgstr "The expiration date is invalid." + +#: ../lib/modules/freeRadius.inc:257 ../lib/modules/freeRadius.inc:258 +msgid "The expiration date must be in format DD.MM.YYYY HH:MM." +msgstr "The expiration date must be in format DD.MM.YYYY HH:MM." + +#: ../lib/modules/bindDLZ.inc:519 ../lib/modules/bindDLZ.inc:520 +#, php-format +msgid "The expiration time \"%s\" must be a number." +msgstr "The expiration time \"%s\" must be a number." + +#: ../lib/modules/asteriskAccount.inc:560 +#: ../lib/modules/asteriskAccount.inc:561 +msgid "The extension context is invalid." +msgstr "The extension context is invalid." + +#: ../lib/pdfstruct.inc:262 +msgid "The file must not exeed 2000x300px." +msgstr "The file must not exeed 2000x300px." + +#: ../lib/pdfstruct.inc:249 +msgid "The file name must end with \".png\" or \".jpg\"." +msgstr "The file name must end with \".png\" or \".jpg\"." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "The file you chose is either empty or does not exist." +msgstr "The file you chose is either empty or does not exist." + +#: ../templates/3rdParty/pla/lib/Template.php:412 +#: ../templates/3rdParty/pla/lib/Template.php:499 +msgid "" +"The file you selected was only partially uploaded, likley due to a network " +"error." +msgstr "" +"The file you selected was only partially uploaded, likley due to a network " +"error." + +#: ../templates/3rdParty/pla/lib/Template.php:402 +#: ../templates/3rdParty/pla/lib/Template.php:407 +#: ../templates/3rdParty/pla/lib/Template.php:489 +#: ../templates/3rdParty/pla/lib/Template.php:494 +msgid "" +"The file you uploaded is too large. Please check php.ini, upload_max_size " +"setting" +msgstr "" +"The file you uploaded is too large. Please check php.ini, upload_max_size " +"setting" + +#: ../lib/modules/kolabSharedFolder.inc:159 +msgid "" +"The folder on the server where the shared folder is located (e.g. user/" +"myfolder@example.com)." +msgstr "" +"The folder on the server where the shared folder is located (e.g. user/" +"myfolder@example.com)." + +#: ../lib/modules/kolabSharedFolder.inc:117 +msgid "The folder's email address." +msgstr "The folder's email address." + +#: ../templates/initsuff.php:180 +msgid "" +"The following suffixes are missing in LDAP. LAM can create them for you." +msgstr "" +"The following suffixes are missing in LDAP. LAM can create them for you." + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:120 +msgid "The format of the logon hours field is invalid!" +msgstr "The format of the logon hours field is invalid!" + +#: ../lib/modules/customScripts.inc:123 +msgid "The format of this custom script setting is invalid." +msgstr "The format of this custom script setting is invalid." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +msgid "The format to show the query results" +msgstr "The format to show the query results" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "" +"The full DN of the new entry to be created when copying the source entry" +msgstr "" +"The full DN of the new entry to be created when copying the source entry" + +#: ../lib/modules/asteriskVoicemail.inc:218 +#: ../lib/modules/asteriskVoicemail.inc:219 +msgid "The full name is invalid." +msgstr "The full name is invalid." + +#: ../templates/login.php:583 +msgid "The given user name matches multiple LDAP entries." +msgstr "The given user name matches multiple LDAP entries." + +#: ../lib/modules/ppolicy.inc:101 +msgid "" +"The grace authentication limit specifies the number of times that an expired " +"password may be used to login." +msgstr "" +"The grace authentication limit specifies the number of times that an expired " +"password may be used to login." + +#: ../lib/modules/windowsGroup.inc:147 +msgid "The group is managed by this contact person." +msgstr "The group is managed by this contact person." + +#: ../lib/modules/freeRadius.inc:97 ../lib/modules/freeRadius.inc:101 +msgid "The group names for this account." +msgstr "The group names for this account." + +#: ../lib/modules/windowsUser.inc:221 +msgid "The groups for this account. You can insert a group name or DN." +msgstr "The groups for this account. You can insert a group name or DN." + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "The headline for a new section must contain at least one character." +msgstr "The headline for a new section must contain at least one character." + +#: ../lib/modules/sambaSamAccount.inc:303 ../lib/modules/windowsUser.inc:245 +msgid "The home directory will be connected under this drive letter." +msgstr "The home directory will be connected under this drive letter." + +#: ../lib/modules/windowsHost.inc:87 +msgid "The host is managed by this contact person." +msgstr "The host is managed by this contact person." + +#: ../lib/modules/bindDLZ.inc:504 ../lib/modules/bindDLZ.inc:505 +#: ../lib/modules/bindDLZ.inc:531 ../lib/modules/bindDLZ.inc:532 +#, php-format +msgid "The host name \"%s\" is invalid." +msgstr "The host name \"%s\" is invalid." + +#: ../lib/modules/bindDLZ.inc:89 ../lib/modules/bindDLZ.inc:148 +#: ../lib/modules/bindDLZ.inc:152 +msgid "The host name for this entry." +msgstr "The host name for this entry." + +#: ../lib/modules/asteriskAccount.inc:563 +#: ../lib/modules/asteriskAccount.inc:564 ../lib/modules/bindDLZ.inc:477 +#: ../lib/modules/bindDLZ.inc:478 +msgid "The host name is invalid." +msgstr "The host name is invalid." + +#: ../lib/modules/windowsUser.inc:133 ../lib/modules/inetOrgPerson.inc:837 +msgid "The initials of the user's first names." +msgstr "The initials of the user's first names." + +#: ../lib/modules/ddns.inc:94 +msgid "" +"The key enables the DHCP server to perform DNS updates. The key is generated " +"with \"genDDNSkey\"." +msgstr "" +"The key enables the DHCP server to perform DNS updates. The key is generated " +"with \"genDDNSkey\"." + +#: ../lib/modules/dhcp_settings.inc:324 ../lib/modules/dhcp_settings.inc:325 +msgid "The lease time is invalid." +msgstr "The lease time is invalid." + +#: ../lib/modules/dhcp_settings.inc:154 +msgid "" +"The lease time specifies after how many seconds the client should request a " +"new IP address." +msgstr "" +"The lease time specifies after how many seconds the client should request a " +"new IP address." + +#: ../lib/modules/sudoRole.inc:83 ../lib/modules/sudoRole.inc:109 +msgid "The list of commands which may be run." +msgstr "The list of commands which may be run." + +#: ../lib/modules/puppetClient.inc:93 ../lib/modules/puppetClient.inc:97 +msgid "The list of configured Puppet classes for this node (e.g. ntp)." +msgstr "The list of configured Puppet classes for this node (e.g. ntp)." + +#: ../lib/modules/sudoRole.inc:79 ../lib/modules/sudoRole.inc:104 +msgid "The list of hosts from which the user may run the commands." +msgstr "The list of hosts from which the user may run the commands." + +#: ../lib/modules/customFields.inc:3013 +msgid "The list of labels contains duplicates." +msgstr "The list of labels contains duplicates." + +#: ../lib/modules/sudoRole.inc:75 ../lib/modules/sudoRole.inc:99 +msgid "The list of users who own this sudo role and may run the commands." +msgstr "The list of users who own this sudo role and may run the commands." + +#: ../lib/modules/customFields.inc:3010 +msgid "The list of values contains duplicates." +msgstr "The list of values contains duplicates." + +#: ../lib/modules/qmailGroup.inc:132 ../lib/modules/qmailGroup.inc:136 +msgid "The list's alternate email address." +msgstr "The list's alternate email address." + +#: ../lib/modules/kolabGroup.inc:88 ../lib/modules/kolabGroup.inc:92 +#: ../lib/modules/qmailGroup.inc:124 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/windowsGroup.inc:127 +msgid "The list's email address." +msgstr "The list's email address." + +#: ../templates/config/mainmanage.php:147 +msgid "" +"The log file is empty or contains invalid characters! Valid characters are: " +"a-z, A-Z, 0-9, /, \\, ., :, _ and -." +msgstr "" +"The log file is empty or contains invalid characters! Valid characters are: " +"a-z, A-Z, 0-9, /, \\, ., :, _ and -." + +#: ../lib/modules/imapAccess.inc:87 +msgid "" +"The login name of your IMAP user who has rights to create/delete mailboxes." +msgstr "" +"The login name of your IMAP user who has rights to create/delete mailboxes." + +#: ../lib/modules/bindDLZ.inc:140 ../lib/modules/bindDLZ.inc:144 +msgid "The mail server for this entry." +msgstr "The mail server for this entry." + +#: ../lib/modules/qmailUser.inc:244 +msgid "The mail server that contains the message store." +msgstr "The mail server that contains the message store." + +#: ../lib/modules/passwordSelfReset.inc:234 +msgid "" +"The mail text for confirmation mails must include the wildcard @@resetLink@@." +msgstr "" +"The mail text for confirmation mails must include the wildcard @@resetLink@@." + +#: ../help/help.inc:251 +msgid "The mail text of all password mails." +msgstr "The mail text of all password mails." + +#: ../lib/modules/selfRegistration.inc:70 +msgid "The mail text of the confirmation mail." +msgstr "The mail text of the confirmation mail." + +#: ../lib/modules/passwordSelfReset.inc:125 +#: ../lib/modules/passwordSelfReset.inc:135 +msgid "The mail text of the mails." +msgstr "The mail text of the mails." + +#: ../lib/modules/asteriskVoicemail.inc:210 +#: ../lib/modules/asteriskVoicemail.inc:212 +msgid "The mailbox format is invalid." +msgstr "The mailbox format is invalid." + +#: ../lib/modules/dhcp_settings.inc:332 ../lib/modules/dhcp_settings.inc:333 +msgid "The maximum lease time is invalid." +msgstr "The maximum lease time is invalid." + +#: ../lib/modules/dhcp_settings.inc:158 +msgid "" +"The maximum lease time specifies after how many seconds the client must " +"request a new IP address." +msgstr "" +"The maximum lease time specifies after how many seconds the client must " +"request a new IP address." + +#: ../lib/modules/kolabUser.inc:175 +msgid "The maximum mailbox size in MB." +msgstr "The maximum mailbox size in MB." + +#: ../lib/modules/qmailUser.inc:224 +msgid "The maximum number of mails that can be stored in the user's mailbox." +msgstr "The maximum number of mails that can be stored in the user's mailbox." + +#: ../lib/modules/pykotaPrinter.inc:104 +msgid "" +"The maximum number of pages per job allowed on the printer. 0 means " +"unlimited." +msgstr "" +"The maximum number of pages per job allowed on the printer. 0 means " +"unlimited." + +#: ../lib/modules/bindDLZ.inc:525 ../lib/modules/bindDLZ.inc:526 +#, php-format +msgid "The minimum time \"%s\" must be a number." +msgstr "The minimum time \"%s\" must be a number." + +#: ../lib/modules.inc:927 +#, php-format +msgid "The module %s is not yet ready." +msgstr "The module %s is not yet ready." + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "" +"The name for that PDF-structure you submitted is not valid. A valid name " +"must consist of the following characters: 'a-z','A-Z','0-9','_','-'." +msgstr "" +"The name for that PDF-structure you submitted is not valid. A valid name " +"must consist of the following characters: 'a-z','A-Z','0-9','_','-'." + +#: ../lib/modules/asteriskExtension.inc:111 +msgid "" +"The name of a command to execute. The available commands may be listed at " +"the Asterisk command line by executing \"core show applications\"." +msgstr "" +"The name of a command to execute. The available commands may be listed at " +"the Asterisk command line by executing \"core show applications\"." + +#: ../lib/modules/fixed_ip.inc:99 +msgid "The name of the PC." +msgstr "The name of the PC." + +#: ../lib/modules/asteriskExtension.inc:103 +msgid "The name of the extension (e.g. voicemail or sip)." +msgstr "The name of the extension (e.g. voicemail or sip)." + +#: ../lib/modules/kolabUser.inc:149 ../lib/modules/kolabSharedFolder.inc:155 +msgid "The name of the server where the mailbox is located." +msgstr "The name of the server where the mailbox is located." + +#: ../lib/modules/dhcp_settings.inc:150 +msgid "The name of the subnet. Example: 192.168.10.0" +msgstr "The name of the subnet. Example: 192.168.10.0" + +#: ../lib/modules/sambaDomain.inc:78 +msgid "The name of your Windows domain or workgroup." +msgstr "The name of your Windows domain or workgroup." + +#: ../lib/modules/bindDLZ.inc:506 ../lib/modules/bindDLZ.inc:507 +#, php-format +msgid "The name server \"%s\" is invalid." +msgstr "The name server \"%s\" is invalid." + +#: ../lib/modules/bindDLZ.inc:156 ../lib/modules/bindDLZ.inc:160 +msgid "The name server for this zone." +msgstr "The name server for this zone." + +#: ../lib/modules/freeRadius.inc:89 +msgid "The net mask for the IP address." +msgstr "The net mask for the IP address." + +#: ../lib/modules/dhcp_settings.inc:194 +msgid "" +"The net mask is derived from the subnet mask. LAM will calculate it " +"automatically." +msgstr "" +"The net mask is derived from the subnet mask. LAM will calculate it " +"automatically." + +#: ../lib/modules/freeRadius.inc:251 ../lib/modules/freeRadius.inc:252 +msgid "The net mask is invalid." +msgstr "The net mask is invalid." + +#: ../lib/modules.inc:1177 +msgid "" +"The new password will be stored in the directory after you save this account." +msgstr "" +"The new password will be stored in the directory after you save this account." + +#: ../lib/modules/asteriskAccount.inc:240 +msgid "The number of milliseconds for the last qualify." +msgstr "The number of milliseconds for the last qualify." + +#: ../lib/modules/bindDLZ.inc:516 +msgid "The number of priority, weight, port and server entries must be equal." +msgstr "The number of priority, weight, port and server entries must be equal." + +#: ../help/help.inc:121 +msgid "" +"The number of users who may login to LAM is restricted. This can be either a " +"fixed list of DNs or LAM can search LDAP to find a DN which matches the " +"given user name." +msgstr "" +"The number of users who may login to LAM is restricted. This can be either a " +"fixed list of DNs or LAM can search LDAP to find a DN which matches the " +"given user name." + +#: ../templates/tests/schemaTest.php:114 +#, php-format +msgid "The object class %s is not supported by your LDAP server." +msgstr "The object class %s is not supported by your LDAP server." + +#: ../lib/modules/windowsUser.inc:153 ../lib/modules/inetOrgPerson.inc:793 +#: ../lib/modules/inetOrgPerson.inc:797 +msgid "The office name of the user (e.g. YourCompany, Human Resources)." +msgstr "The office name of the user (e.g. YourCompany, Human Resources)." + +#: ../templates/selfService/selfServiceMain.php:331 ../lib/modules.inc:1803 +msgid "The operation was stopped because of the above errors." +msgstr "The operation was stopped because of the above errors." + +#: ../lib/modules/asteriskVoicemail.inc:224 +#: ../lib/modules/asteriskVoicemail.inc:225 +msgid "The options have bad format." +msgstr "The options have bad format." + +#: ../lib/modules/device.inc:70 ../lib/modules/device.inc:74 +msgid "The owners of this device." +msgstr "The owners of this device." + +#: ../lib/modules/groupOfNames.inc:94 ../lib/modules/groupOfNames.inc:98 +msgid "The owners of this group." +msgstr "The owners of this group." + +#: ../lib/modules/asteriskVoicemail.inc:222 +#: ../lib/modules/asteriskVoicemail.inc:223 +msgid "The pager number has bad format." +msgstr "The pager number has bad format." + +#: ../lib/modules/heimdalKerberos.inc:121 +msgid "The parameter @@password@@ will be replaced with the new password." +msgstr "The parameter @@password@@ will be replaced with the new password." + +#: ../lib/modules/heimdalKerberos.inc:120 +msgid "The parameter @@principal@@ will be replaced with the principal name." +msgstr "The parameter @@principal@@ will be replaced with the principal name." + +#: ../templates/config/confsave.php:71 ../templates/config/confmain.php:73 +#: ../templates/config/mainlogin.php:61 +#: ../templates/selfService/adminLogin.php:54 +msgid "The password is invalid! Please try again." +msgstr "The password is invalid! Please try again." + +#: ../lib/security.inc:335 +#, php-format +msgid "The password is too short. You have to enter at least %s characters." +msgstr "The password is too short. You have to enter at least %s characters." + +#: ../lib/security.inc:423 +#, php-format +msgid "" +"The password is too weak. It needs to match at least %s password complexity " +"rules." +msgstr "" +"The password is too weak. It needs to match at least %s password complexity " +"rules." + +#: ../lib/security.inc:413 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s different character " +"classes (upper/lower case, numbers and symbols)." +msgstr "" +"The password is too weak. You have to enter at least %s different character " +"classes (upper/lower case, numbers and symbols)." + +#: ../lib/security.inc:360 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s lower case " +"characters." +msgstr "" +"The password is too weak. You have to enter at least %s lower case " +"characters." + +#: ../lib/security.inc:380 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s numeric characters." +msgstr "" +"The password is too weak. You have to enter at least %s numeric characters." + +#: ../lib/security.inc:390 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s symbolic characters." +msgstr "" +"The password is too weak. You have to enter at least %s symbolic characters." + +#: ../lib/security.inc:370 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s upper case " +"characters." +msgstr "" +"The password is too weak. You have to enter at least %s upper case " +"characters." + +#: ../lib/security.inc:442 +msgid "" +"The password is too weak. You may not use parts of the user name for the " +"password." +msgstr "" +"The password is too weak. You may not use parts of the user name for the " +"password." + +#: ../lib/security.inc:452 +msgid "" +"The password is too weak. You may not use parts of user attributes for the " +"password." +msgstr "" +"The password is too weak. You may not use parts of user attributes for the " +"password." + +#: ../lib/security.inc:430 +msgid "" +"The password is too weak. You may not use the user name as part of the " +"password." +msgstr "" +"The password is too weak. You may not use the user name as part of the " +"password." + +#: ../lib/modules/imapAccess.inc:95 +msgid "" +"The password of your IMAP admin user. The login name for the IMAP admin user " +"is stored in the LAM server profile." +msgstr "" +"The password of your IMAP admin user. The login name for the IMAP admin user " +"is stored in the LAM server profile." + +#: ../templates/lists/changePassword.php:600 ../lib/modules.inc:1120 +msgid "The password was set to:" +msgstr "The password was set to:" + +#: ../lib/modules/bindDLZ.inc:512 ../lib/modules/bindDLZ.inc:513 +#, php-format +msgid "The port \"%s\" is invalid." +msgstr "The port \"%s\" is invalid." + +#: ../lib/modules/windowsUser.inc:161 ../lib/modules/inetOrgPerson.inc:673 +#: ../lib/modules/inetOrgPerson.inc:677 +msgid "The post office box of the user's address." +msgstr "The post office box of the user's address." + +#: ../lib/modules/windowsUser.inc:157 ../lib/modules/inetOrgPerson.inc:681 +#: ../lib/modules/inetOrgPerson.inc:685 +msgid "The postal code of the user's address." +msgstr "The postal code of the user's address." + +#: ../lib/modules/bindDLZ.inc:502 ../lib/modules/bindDLZ.inc:503 +#, php-format +msgid "The preference \"%s\" must be a number." +msgstr "The preference \"%s\" must be a number." + +#: ../lib/modules/pykotaPrinter.inc:116 +msgid "The price for each page of a print job." +msgstr "The price for each page of a print job." + +#: ../lib/modules/pykotaPrinter.inc:112 +msgid "The price for each print job." +msgstr "The price for each print job." + +#: ../lib/modules/posixAccount.inc:466 +msgid "" +"The primary group for this account. You can insert a GID number or a group " +"name." +msgstr "" +"The primary group for this account. You can insert a GID number or a group " +"name." + +#: ../lib/modules/posixAccount.inc:553 +msgid "The primary group the host should be member of." +msgstr "The primary group the host should be member of." + +#: ../lib/modules/posixAccount.inc:515 +msgid "The primary group the user should be member of." +msgstr "The primary group the user should be member of." + +#: ../lib/modules/bindDLZ.inc:508 ../lib/modules/bindDLZ.inc:509 +#, php-format +msgid "The priority \"%s\" is invalid." +msgstr "The priority \"%s\" is invalid." + +#: ../lib/modules/asteriskExtension.inc:107 +msgid "" +"The priority is a sequence number used to order the execution of commands. " +"Commands are executed beginning with the lowest sequence number." +msgstr "" +"The priority is a sequence number used to order the execution of commands. " +"Commands are executed beginning with the lowest sequence number." + +#: ../lib/modules/range.inc:424 +msgid "The range conflicts with another range." +msgstr "The range conflicts with another range." + +#: ../lib/modules/range.inc:420 +msgid "The range end needs to be greater than the range start." +msgstr "The range end needs to be greater than the range start." + +#: ../lib/modules/bindDLZ.inc:521 ../lib/modules/bindDLZ.inc:522 +#, php-format +msgid "The refresh time \"%s\" must be a number." +msgstr "The refresh time \"%s\" must be a number." + +#: ../lib/modules/bindDLZ.inc:523 ../lib/modules/bindDLZ.inc:524 +#, php-format +msgid "The retry time \"%s\" must be a number." +msgstr "The retry time \"%s\" must be a number." + +#: ../lib/modules/inetOrgPerson.inc:761 +msgid "The room number of the employee's office." +msgstr "The room number of the employee's office." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +msgid "The scope in which to search" +msgstr "The scope in which to search" + +#: ../lib/modules/customScripts.inc:64 ../lib/modules/customScripts.inc:77 +msgid "" +"The scripts will be run on your web server in the user context of your web " +"server (e.g. apache/www-data)." +msgstr "" +"The scripts will be run on your web server in the user context of your web " +"server (e.g. apache/www-data)." + +#: ../lib/modules/nisMailAliasUser.inc:105 +#: ../lib/modules/asteriskAccount.inc:244 ../lib/modules/qmailUser.inc:196 +#: ../lib/modules/zarafaGroup.inc:109 ../lib/modules/sambaSamAccount.inc:400 +#: ../lib/modules/posixAccount.inc:442 ../lib/modules/zarafaUser.inc:133 +#: ../lib/modules/windowsUser.inc:237 ../lib/modules/inetOrgPerson.inc:809 +#: ../lib/modules/freeRadius.inc:113 ../lib/modules/zarafaServer.inc:89 +#: ../lib/modules/qmailGroup.inc:120 ../lib/modules/organizationalRole.inc:82 +#: ../lib/modules/passwordSelfReset.inc:161 +#: ../lib/modules/windowsGroup.inc:111 ../lib/modules/groupOfNames.inc:82 +msgid "" +"The selected options will not be managed inside LAM. You can use this to " +"reduce the number of displayed input fields." +msgstr "" +"The selected options will not be managed inside LAM. You can use this to " +"reduce the number of displayed input fields." + +#: ../lib/modules/bindDLZ.inc:527 ../lib/modules/bindDLZ.inc:528 +#, php-format +msgid "The serial number \"%s\" must be a number." +msgstr "The serial number \"%s\" must be a number." + +#: ../lib/modules/bindDLZ.inc:228 +msgid "The serial number should be updated after each zone change." +msgstr "The serial number should be updated after each zone change." + +#: ../lib/modules/bindDLZ.inc:500 ../lib/modules/bindDLZ.inc:501 +#: ../lib/modules/bindDLZ.inc:514 ../lib/modules/bindDLZ.inc:515 +#, php-format +msgid "The server name \"%s\" is invalid." +msgstr "The server name \"%s\" is invalid." + +#: ../templates/3rdParty/pla/htdocs/copy.php:38 +msgid "The source and destination DN are the same." +msgstr "The source and destination DN are the same." + +#: ../lib/modules/range.inc:93 +msgid "The starting IP address of the range." +msgstr "The starting IP address of the range." + +#: ../lib/modules/windowsUser.inc:169 ../lib/modules/inetOrgPerson.inc:781 +#: ../lib/modules/inetOrgPerson.inc:785 +msgid "The state where the user resides or works." +msgstr "The state where the user resides or works." + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "The static text must contain at least one character." +msgstr "The static text must contain at least one character." + +#: ../lib/modules/windowsUser.inc:173 ../lib/modules/inetOrgPerson.inc:665 +#: ../lib/modules/inetOrgPerson.inc:669 +msgid "The street name of the user's address." +msgstr "The street name of the user's address." + +#: ../help/help.inc:249 +msgid "The subject of all password mails." +msgstr "The subject of all password mails." + +#: ../lib/modules/selfRegistration.inc:95 +#: ../lib/modules/passwordSelfReset.inc:121 +msgid "The subject of the mails." +msgstr "The subject of the mails." + +#: ../lib/modules/dhcp_settings.inc:319 +msgid "The subnet is already in use." +msgstr "The subnet is already in use." + +#: ../lib/modules/dhcp_settings.inc:320 ../lib/modules/dhcp_settings.inc:321 +msgid "The subnet is invalid." +msgstr "The subnet is invalid." + +#: ../lib/modules/dhcp_settings.inc:334 ../lib/modules/dhcp_settings.inc:335 +msgid "The subnet mask is invalid." +msgstr "The subnet mask is invalid." + +#: ../lib/modules/dhcp_settings.inc:190 +msgid "The subnet mask of the network." +msgstr "The subnet mask of the network." + +#: ../lib/modules/sudoRole.inc:134 +msgid "The sudo command is not valid after this date." +msgstr "The sudo command is not valid after this date." + +#: ../lib/modules/sudoRole.inc:129 +msgid "The sudo command is not valid before this date." +msgstr "The sudo command is not valid before this date." + +#: ../lib/modules/sudoRole.inc:91 ../lib/modules/sudoRole.inc:119 +msgid "The sudo commands are executed with these group memberships." +msgstr "The sudo commands are executed with these group memberships." + +#: ../lib/modules/sudoRole.inc:87 ../lib/modules/sudoRole.inc:114 +msgid "The sudo commands may be run as these users (e.g. root)." +msgstr "The sudo commands may be run as these users (e.g. root)." + +#: ../lib/modules/bindDLZ.inc:220 +msgid "" +"The time (in seconds) a secondary server should wait before retrying a zone " +"refresh." +msgstr "" +"The time (in seconds) a secondary server should wait before retrying a zone " +"refresh." + +#: ../lib/modules/bindDLZ.inc:216 +msgid "" +"The time (in seconds) that a secondary server should wait before checking " +"for zone updates." +msgstr "" +"The time (in seconds) that a secondary server should wait before checking " +"for zone updates." + +#: ../lib/modules/bindDLZ.inc:212 +msgid "" +"The time (in seconds) that zone data is kept on a secondary server without " +"receiving a zone refresh." +msgstr "" +"The time (in seconds) that zone data is kept on a secondary server without " +"receiving a zone refresh." + +#: ../lib/modules/bindDLZ.inc:479 ../lib/modules/bindDLZ.inc:480 +#: ../lib/modules/bindDLZ.inc:481 ../lib/modules/bindDLZ.inc:482 +#: ../lib/modules/bindDLZ.inc:483 ../lib/modules/bindDLZ.inc:484 +#: ../lib/modules/bindDLZ.inc:485 ../lib/modules/bindDLZ.inc:486 +#: ../lib/modules/bindDLZ.inc:487 ../lib/modules/bindDLZ.inc:488 +#: ../lib/modules/bindDLZ.inc:489 ../lib/modules/bindDLZ.inc:490 +#: ../lib/modules/bindDLZ.inc:491 ../lib/modules/bindDLZ.inc:492 +#: ../lib/modules/bindDLZ.inc:493 ../lib/modules/bindDLZ.inc:494 +#, php-format +msgid "The timeout \"%s\" must be a number." +msgstr "The timeout \"%s\" must be a number." + +#: ../lib/modules/bindDLZ.inc:102 ../lib/modules/bindDLZ.inc:106 +#: ../lib/modules/bindDLZ.inc:111 ../lib/modules/bindDLZ.inc:116 +#: ../lib/modules/bindDLZ.inc:121 ../lib/modules/bindDLZ.inc:126 +#: ../lib/modules/bindDLZ.inc:131 +msgid "" +"The timeout specifies how long (in seconds) a record can be cached by " +"caching DNS servers." +msgstr "" +"The timeout specifies how long (in seconds) a record can be cached by " +"caching DNS servers." + +#: ../lib/modules/customFields.inc:3562 ../lib/modules/customFields.inc:3649 +#, php-format +msgid "The uploaded file does not have the correct file extension (%s)." +msgstr "The uploaded file does not have the correct file extension (%s)." + +#: ../lib/modules/customFields.inc:3558 ../lib/modules/customFields.inc:3645 +#, php-format +msgid "The uploaded file is too large (> %s bytes)." +msgstr "The uploaded file is too large (> %s bytes)." + +#: ../templates/3rdParty/pla/lib/import_functions.php:396 +msgid "The url attribute value should begin with file://." +msgstr "The url attribute value should begin with file://." + +#: ../lib/modules/zarafaUser.inc:113 +msgid "The user account is non-active and login is disabled." +msgstr "The user account is non-active and login is disabled." + +#: ../lib/modules/windowsUser.inc:202 +msgid "The user must log on using a smart card." +msgstr "The user must log on using a smart card." + +#: ../lib/modules/zarafaUser.inc:93 +msgid "The user will get warned when his mailbox reaches this limit." +msgstr "The user will get warned when his mailbox reaches this limit." + +#: ../lib/modules/qmailUser.inc:204 +msgid "The user's alternate email address." +msgstr "The user's alternate email address." + +#: ../lib/modules/asteriskAccount.inc:136 +msgid "The user's call groups." +msgstr "The user's call groups." + +#: ../lib/modules/qmailUser.inc:200 ../lib/modules/windowsUser.inc:141 +#: ../lib/modules/pykotaUser.inc:117 ../lib/modules/inetOrgPerson.inc:721 +#: ../lib/modules/inetOrgPerson.inc:725 +msgid "The user's email address." +msgstr "The user's email address." + +#: ../lib/modules/inetOrgPerson.inc:713 ../lib/modules/inetOrgPerson.inc:717 +msgid "The user's fax number." +msgstr "The user's fax number." + +#: ../lib/modules/inetOrgPerson.inc:705 ../lib/modules/inetOrgPerson.inc:709 +msgid "The user's mobile number." +msgstr "The user's mobile number." + +#: ../lib/modules/inetOrgPerson.inc:825 ../lib/modules/inetOrgPerson.inc:829 +msgid "The user's organisation name." +msgstr "The user's organisation name." + +#: ../lib/modules/inetOrgPerson.inc:817 ../lib/modules/inetOrgPerson.inc:821 +msgid "The user's organisational unit." +msgstr "The user's organisational unit." + +#: ../lib/modules/inetOrgPerson.inc:753 ../lib/modules/inetOrgPerson.inc:757 +msgid "The user's private telephone number." +msgstr "The user's private telephone number." + +#: ../lib/modules/windowsUser.inc:177 ../lib/modules/inetOrgPerson.inc:697 +#: ../lib/modules/inetOrgPerson.inc:701 +msgid "The user's telephone number." +msgstr "The user's telephone number." + +#: ../lib/modules/inetOrgPerson.inc:833 +msgid "The user's unique employee number." +msgstr "The user's unique employee number." + +#: ../lib/modules/windowsUser.inc:189 ../lib/modules/inetOrgPerson.inc:733 +#: ../lib/modules/inetOrgPerson.inc:737 +msgid "The user's web site (e.g. http://www.company.com)." +msgstr "The user's web site (e.g. http://www.company.com)." + +#: ../lib/modules/sambaSamAccount.inc:122 +msgid "" +"The value for the Samba 3 field \"User can/must change password\" needs to " +"be a number." +msgstr "" +"The value for the Samba 3 field \"User can/must change password\" needs to " +"be a number." + +#: ../lib/modules/puppetClient.inc:188 ../lib/modules/puppetClient.inc:189 +msgid "The variables may only contain ASCII characters." +msgstr "The variables may only contain ASCII characters." + +#: ../lib/modules/asteriskVoicemail.inc:226 +#: ../lib/modules/asteriskVoicemail.inc:227 +msgid "The voicemail context name is invalid." +msgstr "The voicemail context name is invalid." + +#: ../lib/modules/bindDLZ.inc:510 ../lib/modules/bindDLZ.inc:511 +#, php-format +msgid "The weight \"%s\" is invalid." +msgstr "The weight \"%s\" is invalid." + +#: ../templates/3rdParty/pla/htdocs/create.php:42 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:36 +msgid "The were no attributes marked as an RDN attribute." +msgstr "The were no attributes marked as an RDN attribute." + +#: ../lib/modules/selfRegistration.inc:71 +msgid "The wildcard for the account creation link is @@creationLink@@." +msgstr "The wildcard for the account creation link is @@creationLink@@." + +#: ../lib/modules/passwordSelfReset.inc:127 ../help/help.inc:254 +msgid "The wildcard for the new password is @@newPassword@@." +msgstr "The wildcard for the new password is @@newPassword@@." + +#: ../lib/modules/passwordSelfReset.inc:137 +msgid "The wildcard for the reset link is @@resetLink@@." +msgstr "The wildcard for the reset link is @@resetLink@@." + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:60 +#, php-format +msgid "There are %s members in group %s:" +msgstr "There are %s members in group %s:" + +#: ../lib/modules/posixGroup.inc:612 ../lib/modules/sambaGroupMapping.inc:605 +msgid "There are still users who have this group as their primary group." +msgstr "There are still users who have this group as their primary group." + +#: ../lib/modules/sambaGroupMapping.inc:602 +msgid "There can be only one group of this type." +msgstr "There can be only one group of this type." + +#: ../lib/modules/asteriskAccount.inc:557 +msgid "There is already another user with this caller ID." +msgstr "There is already another user with this caller ID." + +#: ../lib/modules/asteriskVoicemail.inc:211 +msgid "There is already another user with this mailbox name." +msgstr "There is already another user with this mailbox name." + +#: ../templates/massDoUpload.php:258 +msgid "There were errors while uploading:" +msgstr "There were errors while uploading:" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:80 +#, php-format +msgid "There will be %s updates done with this mass update" +msgstr "There will be %s updates done with this mass update" + +#: ../lib/modules/posixGroup.inc:501 +msgid "" +"These are the minimum and maximum numbers to use for group IDs when creating " +"new group accounts. New group accounts will always get the highest number in " +"use plus one." +msgstr "" +"These are the minimum and maximum numbers to use for group IDs when creating " +"new group accounts. New group accounts will always get the highest number in " +"use plus one." + +#: ../lib/modules/posixAccount.inc:454 +msgid "" +"These are the minimum and maximum numbers to use for machine IDs when " +"creating new accounts for hosts. The range should be different from that of " +"users. New host accounts will always get the highest number in use plus one." +msgstr "" +"These are the minimum and maximum numbers to use for machine IDs when " +"creating new accounts for hosts. The range should be different from that of " +"users. New host accounts will always get the highest number in use plus one." + +#: ../lib/modules/posixAccount.inc:450 +msgid "" +"These are the minimum and maximum numbers to use for user IDs when creating " +"new user accounts. The range should be different from that of machines. New " +"user accounts will always get the highest number in use plus one." +msgstr "" +"These are the minimum and maximum numbers to use for user IDs when creating " +"new user accounts. The range should be different from that of machines. New " +"user accounts will always get the highest number in use plus one." + +#: ../lib/modules/inetOrgPerson.inc:845 +msgid "These are the user's certificates." +msgstr "These are the user's certificates." + +#: ../lib/modules/puppetClient.inc:113 +msgid "" +"These classes will be available as autocompletion hints when adding new " +"classes." +msgstr "" +"These classes will be available as autocompletion hints when adding new " +"classes." + +#: ../lib/modules/nisnetgroup.inc:96 ../lib/modules/nisnetgroup.inc:100 +msgid "" +"These entries specify the members of the netgroup. You can limit the set to " +"a host name, a user name, a domain name or any combination of them." +msgstr "" +"These entries specify the members of the netgroup. You can limit the set to " +"a host name, a user name, a domain name or any combination of them." + +#: ../lib/modules/puppetClient.inc:117 +msgid "" +"These environments will be available as autocompletion hints when setting " +"the environment." +msgstr "" +"These environments will be available as autocompletion hints when setting " +"the environment." + +#: ../lib/modules/asteriskExtension.inc:123 +msgid "" +"These options change the list of potential extension owners below. You can " +"select to show Asterisk accounts or all users. It is also possible to search " +"the tree suffix if you have users which are not in the standard user suffix." +msgstr "" +"These options change the list of potential extension owners below. You can " +"select to show Asterisk accounts or all users. It is also possible to search " +"the tree suffix if you have users which are not in the standard user suffix." + +#: ../lib/modules/authorizedServiceObject.inc:94 +msgid "These services will show up as hint if you enter a new service." +msgstr "These services will show up as hint if you enter a new service." + +#: ../lib/modules/posixAccount.inc:124 +msgid "" +"This GID number is invalid! Please provide either a number or a group name." +msgstr "" +"This GID number is invalid! Please provide either a number or a group name." + +#: ../help/help.inc:235 +msgid "" +"This HTML code will be placed on top of all self service pages. E.g. you can " +"use this to place your custom logo. Any HTML code is permitted." +msgstr "" +"This HTML code will be placed on top of all self service pages. E.g. you can " +"use this to place your custom logo. Any HTML code is permitted." + +#: ../lib/modules/fixed_ip.inc:462 +msgid "This PC name already exists." +msgstr "This PC name already exists." + +#: ../lib/modules/kolabGroup.inc:197 ../lib/modules/kolabUser.inc:292 +#: ../lib/modules/kolabSharedFolder.inc:274 +msgid "This account is marked for deletion." +msgstr "This account is marked for deletion." + +#: ../lib/modules/sambaSamAccount.inc:327 +msgid "" +"This allows you to define this account as a special user like administrator " +"or guest." +msgstr "" +"This allows you to define this account as a special user like administrator " +"or guest." + +#: ../templates/3rdParty/pla/lib/PageRender.php:376 +msgid "This attribute is not defined in the LDAP schema" +msgstr "This attribute is not defined in the LDAP schema" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1988 +msgid "This attribute is required" +msgstr "This attribute is required" + +#: ../templates/3rdParty/pla/lib/PageRender.php:458 +msgid "This attribute is required for the RDN." +msgstr "This attribute is required for the RDN." + +#: ../lib/modules/inetOrgPerson.inc:789 +msgid "This can be used to specify if the user has a car license." +msgstr "This can be used to specify if the user has a car license." + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:64 +msgid "This change requires to add new attributes." +msgstr "This change requires to add new attributes." + +#: ../help/help.inc:137 +msgid "This changes the password of the selected profile." +msgstr "This changes the password of the selected profile." + +#: ../help/help.inc:139 +msgid "This changes the profile which is selected by default at login." +msgstr "This changes the profile which is selected by default at login." + +#: ../templates/massBuildAccounts.php:177 +msgid "" +"This column is defined to include unique entries but duplicates were found:" +msgstr "" +"This column is defined to include unique entries but duplicates were found:" + +#: ../lib/modules/heimdalKerberos.inc:119 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -K /etc/heimdal/apache.keytab -p " +"admin/admin passwd -p @@password@@ @@principal@@\"." +msgstr "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -K /etc/heimdal/apache.keytab -p " +"admin/admin passwd -p @@password@@ @@principal@@\"." + +#: ../lib/modules/mitKerberos.inc:149 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -k -t /home/www-data/apache.keytab " +"-p realm/changepwd\"." +msgstr "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -k -t /home/www-data/apache.keytab " +"-p realm/changepwd\"." + +#: ../lib/modules/customScripts.inc:124 +msgid "This custom script setting includes an invalid account type." +msgstr "This custom script setting includes an invalid account type." + +#: ../lib/modules/customScripts.inc:126 ../lib/modules/customScripts.inc:128 +msgid "This custom script setting includes an invalid action type." +msgstr "This custom script setting includes an invalid action type." + +#: ../help/help.inc:100 +msgid "" +"This defines the language of the login window and sets this language as the " +"default language. Users can change the language at login." +msgstr "" +"This defines the language of the login window and sets this language as the " +"default language. Users can change the language at login." + +#: ../help/help.inc:119 +msgid "" +"This defines the rights for the home directories which are created by " +"lamdaemon." +msgstr "" +"This defines the rights for the home directories which are created by " +"lamdaemon." + +#: ../lib/modules/asteriskExtension.inc:95 +msgid "" +"This defines what application Asterisk has to start for this user (e.g. SIP/" +"user1)." +msgstr "" +"This defines what application Asterisk has to start for this user (e.g. SIP/" +"user1)." + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:85 +#, php-format +msgid "This deletion request also includes %s child entries." +msgstr "This deletion request also includes %s child entries." + +#: ../lib/modules/device.inc:78 +msgid "This describes the location of the device." +msgstr "This describes the location of the device." + +#: ../lib/modules/ipHost.inc:74 +msgid "This describes the location of the host." +msgstr "This describes the location of the host." + +#: ../lib/modules/windowsUser.inc:137 ../lib/modules/inetOrgPerson.inc:773 +#: ../lib/modules/inetOrgPerson.inc:777 +msgid "This describes the location of the user." +msgstr "This describes the location of the user." + +#: ../lib/lamPDF.inc:126 +msgid "This document was automatically created by LDAP Account Manager" +msgstr "This document was automatically created by LDAP Account Manager" + +#: ../help/help.inc:258 +msgid "" +"This email address will be set as reply-to address of all password mails." +msgstr "" +"This email address will be set as reply-to address of all password mails." + +#: ../help/help.inc:247 +msgid "" +"This email address will be set as sender address of all password mails. If " +"empty the system default (php.ini) will be used." +msgstr "" +"This email address will be set as sender address of all password mails. If " +"empty the system default (php.ini) will be used." + +#: ../lib/modules/selfRegistration.inc:91 +#: ../lib/modules/passwordSelfReset.inc:117 +msgid "" +"This email address will be set as sender address of the mails. If empty the " +"system default (php.ini) will be used." +msgstr "" +"This email address will be set as sender address of the mails. If empty the " +"system default (php.ini) will be used." + +#: ../lib/modules/passwordSelfReset.inc:97 +msgid "This enables the password self reset function." +msgstr "This enables the password self reset function." + +#: ../lib/modules/selfRegistration.inc:54 +msgid "This enables the self registration function." +msgstr "This enables the self registration function." + +#: ../templates/3rdParty/pla/htdocs/compare.php:79 +msgid "This entry has no attributes" +msgstr "This entry has no attributes" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:57 +#, php-format +msgid "This entry is the root of a sub-tree containing %s entries." +msgstr "This entry is the root of a sub-tree containing %s entries." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:47 +#: ../lib/modules/selfRegistration.inc:512 +msgid "This field is required." +msgstr "This field is required." + +#: ../lib/modules/customFields.inc:188 +msgid "This field name already exists. Please choose a different one." +msgstr "This field name already exists. Please choose a different one." + +#: ../lib/modules/posixAccount.inc:126 +msgid "This gecos value is invalid!" +msgstr "This gecos value is invalid!" + +#: ../lib/modules/ipHost.inc:70 +msgid "This is a comma separated list of IP addresses." +msgstr "This is a comma separated list of IP addresses." + +#: ../lib/modules/ieee802device.inc:73 +msgid "This is a comma separated list of MAC addresses." +msgstr "This is a comma separated list of MAC addresses." + +#: ../lib/modules/kolabUser.inc:137 ../lib/modules/kolabSharedFolder.inc:143 +msgid "This is a comma separated list of delegates." +msgstr "This is a comma separated list of delegates." + +#: ../lib/modules/kolabUser.inc:145 ../lib/modules/kolabSharedFolder.inc:151 +msgid "This is a comma separated list of eMail aliases." +msgstr "This is a comma separated list of eMail aliases." + +#: ../lib/modules/kolabUser.inc:129 +msgid "This is a comma separated list of invitation policies." +msgstr "This is a comma separated list of invitation policies." + +#: ../lib/modules/nisMailAlias.inc:90 +msgid "This is a comma separated list of recipients." +msgstr "This is a comma separated list of recipients." + +#: ../lib/modules/inetLocalMailRecipient.inc:77 +msgid "This is a comma separated list of the users public email addresses." +msgstr "This is a comma separated list of the users public email addresses." + +#: ../help/help.inc:153 +msgid "" +"This is a list of IP addresses from hosts who may access LAM. You can use \"*" +"\" as wildcard (e.g. 192.168.0.*)." +msgstr "" +"This is a list of IP addresses from hosts who may access LAM. You can use \"*" +"\" as wildcard (e.g. 192.168.0.*)." + +#: ../lib/modules/selfRegistration.inc:79 +msgid "" +"This is a list of additional attributes that the user can enter. Please note " +"that user name, password and email address are mandatory anyway and need not " +"be specified." +msgstr "" +"This is a list of additional attributes that the user can enter. Please note " +"that user name, password and email address are mandatory anyway and need not " +"be specified." + +#: ../lib/modules/organizationalRole.inc:94 +#: ../lib/modules/windowsGroup.inc:131 ../lib/modules/groupOfNames.inc:102 +msgid "This is a list of members of this group." +msgstr "This is a list of members of this group." + +#: ../lib/modules/organizationalRole.inc:98 +#: ../lib/modules/windowsGroup.inc:135 ../lib/modules/groupOfNames.inc:106 +msgid "" +"This is a list of members of this group. Multiple members are separated by " +"semicolons." +msgstr "" +"This is a list of members of this group. Multiple members are separated by " +"semicolons." + +#: ../lib/modules/eduPerson.inc:102 +msgid "This is a list of nick names for this user." +msgstr "This is a list of nick names for this user." + +#: ../lib/modules/selfRegistration.inc:75 +msgid "" +"This is a list of object classes that are used to build the new user " +"accounts. Please enter one object class in each line." +msgstr "" +"This is a list of object classes that are used to build the new user " +"accounts. Please enter one object class in each line." + +#: ../help/help.inc:115 +msgid "" +"This is a list of the servers where the lamdaemon scripts are stored. LDAP " +"Account Manager will make a SSH connection to the servers with the user name " +"and password provided at login. Multiple servers are separated by " +"semicolons. You can append a descriptive name after a colon." +msgstr "" +"This is a list of the servers where the lamdaemon scripts are stored. LDAP " +"Account Manager will make a SSH connection to the servers with the user name " +"and password provided at login. Multiple servers are separated by " +"semicolons. You can append a descriptive name after a colon." + +#: ../help/help.inc:93 +msgid "" +"This is a list of valid DN entries of all users that are allowed to login to " +"LDAP Account Manager. Please enter one DN per line." +msgstr "" +"This is a list of valid DN entries of all users that are allowed to login to " +"LDAP Account Manager. Please enter one DN per line." + +#: ../templates/3rdParty/pla/lib/PageRender.php:881 +msgid "This is a structural ObjectClass and cannot be removed." +msgstr "This is a structural ObjectClass and cannot be removed." + +#: ../lib/modules/nisObject.inc:74 ../lib/modules/automount.inc:73 +#: ../lib/modules/oracleService.inc:70 +msgid "This is an optional description for this entry." +msgstr "This is an optional description for this entry." + +#: ../help/help.inc:223 +msgid "" +"This is needed to find the LDAP DNs of your user accounts. E.g. if you use " +"\"uid\" and your user inputs \"miller\" then LAM will search for an account " +"with uid=miller." +msgstr "" +"This is needed to find the LDAP DNs of your user accounts. E.g. if you use " +"\"uid\" and your user inputs \"miller\" then LAM will search for an account " +"with uid=miller." + +#: ../lib/modules/zarafaDynamicGroup.inc:199 ../lib/modules/ipHost.inc:117 +#: ../lib/modules/posixGroup.inc:613 ../lib/modules/device.inc:142 +#: ../lib/modules/eduPerson.inc:246 ../lib/modules/eduPerson.inc:248 +#: ../lib/modules/zarafaAddressList.inc:170 +#: ../lib/modules/posixAccount.inc:131 ../lib/modules/inetOrgPerson.inc:98 +#: ../lib/modules/aliasEntry.inc:86 ../lib/modules/qmailGroup.inc:433 +#: ../lib/modules/qmailGroup.inc:434 ../lib/modules/qmailGroup.inc:435 +msgid "This is not a valid DN!" +msgstr "This is not a valid DN!" + +#: ../lib/modules/sambaSamAccount.inc:109 +msgid "This is not a valid RID number!" +msgstr "This is not a valid RID number!" + +#: ../lib/modules/sambaGroupMapping.inc:604 +msgid "This is not a valid Samba 3 group type!" +msgstr "This is not a valid Samba 3 group type!" + +#: ../lib/modules/eduPerson.inc:250 +msgid "This is not a valid list of DNs!" +msgstr "This is not a valid list of DNs!" + +#: ../lib/modules/qmailGroup.inc:436 ../lib/modules/qmailGroup.inc:437 +msgid "This is not a valid option." +msgstr "This is not a valid option." + +#: ../lib/modules/inetLocalMailRecipient.inc:73 +msgid "This is one of the users public email addresses." +msgstr "This is one of the users public email addresses." + +#: ../help/help.inc:84 +msgid "" +"This is only needed for TLS/SSL connections. By default, LAM will use the " +"certificate authorities installed on your system. If you have a private CA " +"in your company you can upload your CA certificates here and override the " +"system certificates." +msgstr "" +"This is only needed for TLS/SSL connections. By default, LAM will use the " +"certificate authorities installed on your system. If you have a private CA " +"in your company you can upload your CA certificates here and override the " +"system certificates." + +#: ../lib/modules/asteriskAccount.inc:104 +msgid "" +"This is the ID of the user in the Asterisk database. It may contain digits " +"and letters (e.g. user1 or 200134)." +msgstr "" +"This is the ID of the user in the Asterisk database. It may contain digits " +"and letters (e.g. user1 or 200134)." + +#: ../lib/modules/freeRadius.inc:85 +msgid "This is the IP address for the user (e.g. 123.123.123.123)." +msgstr "This is the IP address for the user (e.g. 123.123.123.123)." + +#: ../lib/modules/ipHost.inc:66 +msgid "" +"This is the IP address of the network card of the device (e.g. " +"123.123.123.123)." +msgstr "" +"This is the IP address of the network card of the device (e.g. " +"123.123.123.123)." + +#: ../lib/modules/ipHost.inc:78 +msgid "This is the LDAP DN of the host's manager." +msgstr "This is the LDAP DN of the host's manager." + +#: ../lib/modules/inetOrgPerson.inc:657 ../lib/modules/inetOrgPerson.inc:661 +msgid "" +"This is the LDAP DN of the user's manager. Use this property to represent " +"hierarchies in your company." +msgstr "" +"This is the LDAP DN of the user's manager. Use this property to represent " +"hierarchies in your company." + +#: ../lib/modules/customFields.inc:117 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an activated " +"state. The value is case-insensitive." +msgstr "" +"This is the LDAP attribute's value that puts the checkbox in an activated " +"state. The value is case-insensitive." + +#: ../lib/modules/customFields.inc:121 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an deactivated " +"state. The value is case-insensitive." +msgstr "" +"This is the LDAP attribute's value that puts the checkbox in an deactivated " +"state. The value is case-insensitive." + +#: ../lib/modules/ieee802device.inc:69 +msgid "" +"This is the MAC address of the network card of the device (e.g. 00:01:02:DE:" +"EF:18)." +msgstr "" +"This is the MAC address of the network card of the device (e.g. 00:01:02:DE:" +"EF:18)." + +#: ../lib/modules/sambaSamAccount.inc:324 +msgid "This is the SID of the user's primary Windows group." +msgstr "This is the SID of the user's primary Windows group." + +#: ../help/help.inc:102 +msgid "" +"This is the absolute path to an external script for setting quotas and " +"creating home directories." +msgstr "" +"This is the absolute path to an external script for setting quotas and " +"creating home directories." + +#: ../lib/modules/mitKerberos.inc:157 ../lib/modules/heimdalKerberos.inc:125 +msgid "This is the account's Kerberos password." +msgstr "This is the account's Kerberos password." + +#: ../lib/modules/sambaSamAccount.inc:262 +msgid "This is the account's Windows password." +msgstr "This is the account's Windows password." + +#: ../lib/modules/sambaSamAccount.inc:259 ../lib/modules/windowsUser.inc:124 +msgid "This is the account's full name on Windows systems." +msgstr "This is the account's full name on Windows systems." + +#: ../lib/modules/ppolicyUser.inc:56 +msgid "This is the active password policy for this account." +msgstr "This is the active password policy for this account." + +#: ../lib/modules/passwordSelfReset.inc:85 +msgid "" +"This is the answer to the security question. It allows users to reset their " +"password." +msgstr "" +"This is the answer to the security question. It allows users to reset their " +"password." + +#: ../lib/modules/mitKerberos.inc:145 +msgid "This is the date of the user's last login." +msgstr "This is the date of the user's last login." + +#: ../lib/modules/mitKerberos.inc:125 ../lib/modules/heimdalKerberos.inc:103 +msgid "This is the date when the account will expire." +msgstr "This is the date when the account will expire." + +#: ../lib/modules/sambaSamAccount.inc:346 ../lib/modules/shadowAccount.inc:194 +msgid "This is the date when the account will expire. Format: DD-MM-YYYY" +msgstr "This is the date when the account will expire. Format: DD-MM-YYYY" + +#: ../lib/modules/mitKerberos.inc:141 ../lib/modules/sambaSamAccount.inc:397 +msgid "This is the date when the user changed his password." +msgstr "This is the date when the user changed his password." + +#: ../lib/modules/shadowAccount.inc:202 +msgid "" +"This is the date when the user changed his password. If you specify a " +"maximum password age then you can force a password change here." +msgstr "" +"This is the date when the user changed his password. If you specify a " +"maximum password age then you can force a password change here." + +#: ../lib/modules/sambaGroupMapping.inc:147 +msgid "This is the group name which will be shown in Windows." +msgstr "This is the group name which will be shown in Windows." + +#: ../lib/modules/windowsHost.inc:83 +msgid "This is the host's location (e.g. Munich, server room 3)." +msgstr "This is the host's location (e.g. Munich, server room 3)." + +#: ../help/help.inc:187 +msgid "" +"This is the identifier for the relative DN value. It must be one of the " +"given allowed LDAP attributes (e.g. user accounts usually use \"uid\" while " +"groups use \"cn\")." +msgstr "" +"This is the identifier for the relative DN value. It must be one of the " +"given allowed LDAP attributes (e.g. user accounts usually use \"uid\" while " +"groups use \"cn\")." + +#: ../lib/modules/selfRegistration.inc:99 +msgid "" +"This is the identifier for the relative DN value. LAM will use \"uid\" by " +"default." +msgstr "" +"This is the identifier for the relative DN value. LAM will use \"uid\" by " +"default." + +#: ../lib/modules/passwordSelfReset.inc:101 +msgid "" +"This is the label for the link to the password self reset. If empty \"Forgot " +"password?\" will be used." +msgstr "" +"This is the label for the link to the password self reset. If empty \"Forgot " +"password?\" will be used." + +#: ../lib/modules/selfRegistration.inc:58 +msgid "" +"This is the label for the link to the self registration. If empty \"Register " +"new account\" will be used." +msgstr "" +"This is the label for the link to the self registration. If empty \"Register " +"new account\" will be used." + +#: ../help/help.inc:88 +msgid "" +"This is the list of attributes to show in the account list. The entries can " +"either be predefined values, \"#attribute\", or individual ones, \"attribute:" +"description\". Several entries are separated by semicolons." +msgstr "" +"This is the list of attributes to show in the account list. The entries can " +"either be predefined values, \"#attribute\", or individual ones, \"attribute:" +"description\". Several entries are separated by semicolons." + +#: ../lib/modules/posixAccount.inc:494 +msgid "This is the list of valid login shells." +msgstr "This is the list of valid login shells." + +#: ../lib/modules/asteriskAccount.inc:108 +msgid "" +"This is the machine id (e.g. IP address or host name) from which the user " +"can call/receive calls." +msgstr "" +"This is the machine id (e.g. IP address or host name) from which the user " +"can call/receive calls." + +#: ../lib/modules/inetLocalMailRecipient.inc:81 +msgid "This is the mail server for the user." +msgstr "This is the mail server for the user." + +#: ../lib/modules/qmailUser.inc:220 +msgid "This is the mailbox size limit in bytes." +msgstr "This is the mailbox size limit in bytes." + +#: ../lib/modules/passwordSelfReset.inc:93 +msgid "This is the minimum length for answers to the security question." +msgstr "This is the minimum length for answers to the security question." + +#: ../lib/modules/nisnetgroup.inc:84 ../lib/modules/organizationalRole.inc:86 +#: ../lib/modules/groupOfNames.inc:86 +msgid "This is the name of this group." +msgstr "This is the name of this group." + +#: ../lib/modules/posixAccount.inc:561 +msgid "" +"This is the natural name of the host. If empty, the host name will be used." +msgstr "" +"This is the natural name of the host. If empty, the host name will be used." + +#: ../lib/modules/pykotaUser.inc:109 +msgid "This is the natural name of the user." +msgstr "This is the natural name of the user." + +#: ../lib/modules/inetOrgPerson.inc:741 +msgid "" +"This is the natural name of the user. If empty, the first and last name is " +"used." +msgstr "" +"This is the natural name of the user. If empty, the first and last name is " +"used." + +#: ../lib/modules/posixAccount.inc:539 ../lib/modules/windowsUser.inc:103 +msgid "" +"This is the natural name of the user. If empty, the first and last name or " +"user name is used." +msgstr "" +"This is the natural name of the user. If empty, the first and last name or " +"user name is used." + +#: ../lib/modules/sambaDomain.inc:122 +msgid "" +"This is the number of bad logon attempts (0 - 999) before the account is " +"deactivated. 0 means unlimited attempts." +msgstr "" +"This is the number of bad logon attempts (0 - 999) before the account is " +"deactivated. 0 means unlimited attempts." + +#: ../lib/modules/sambaDomain.inc:106 +msgid "" +"This is the number of passwords which are saved to prevent that users reuse " +"old passwords." +msgstr "" +"This is the number of passwords which are saved to prevent that users reuse " +"old passwords." + +#: ../help/help.inc:98 +msgid "" +"This is the number of rows to show in the account list. If more entries are " +"found the list will be split into several pages." +msgstr "" +"This is the number of rows to show in the account list. If more entries are " +"found the list will be split into several pages." + +#: ../lib/modules/sambaSamAccount.inc:355 +msgid "This is the path to the user's home directory." +msgstr "This is the path to the user's home directory." + +#: ../lib/modules/sambaGroupMapping.inc:155 +msgid "" +"This is the relative ID (similar to UID on Unix) for Windows accounts. If " +"you leave this empty LAM will calculate the RID from the UID. This can be " +"either a number or the name of a special group:" +msgstr "" +"This is the relative ID (similar to UID on Unix) for Windows accounts. If " +"you leave this empty LAM will calculate the RID from the UID. This can be " +"either a number or the name of a special group:" + +#: ../lib/modules/sambaSamAccount.inc:330 +msgid "" +"This is the relative ID number for your Windows account. You can either " +"enter a number or one of these special accounts: " +msgstr "" +"This is the relative ID number for your Windows account. You can either " +"enter a number or one of these special accounts: " + +#: ../lib/modules/sambaSamAccount.inc:334 +msgid "" +"This is the relative ID number for your host account. If you leave this " +"empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" +"This is the relative ID number for your host account. If you leave this " +"empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../lib/modules/imapAccess.inc:113 +msgid "" +"This is the separator for the mailbox path. Usually, this is \".\" but e.g. " +"Cyrus with \"unixhierarchysep\" will require \"/\"." +msgstr "" +"This is the separator for the mailbox path. Usually, this is \".\" but e.g. " +"Cyrus with \"unixhierarchysep\" will require \"/\"." + +#: ../help/help.inc:59 +msgid "" +"This is the server address of your LDAP server. Use ldap:// for unencrypted " +"LDAP connections or TLS encrypted connections. LDAP+SSL (LDAPS) encrypted " +"connections are specified with ldaps://. The port value is optional." +msgstr "" +"This is the server address of your LDAP server. Use ldap:// for unencrypted " +"LDAP connections or TLS encrypted connections. LDAP+SSL (LDAPS) encrypted " +"connections are specified with ldaps://. The port value is optional." + +#: ../help/help.inc:78 +msgid "This is the suffix for the LDAP tree viewer." +msgstr "This is the suffix for the LDAP tree viewer." + +#: ../help/help.inc:72 +msgid "" +"This is the suffix of the LDAP tree from where to search for LDAP entries. " +"Only entries in this subtree will be displayed in the account list. When " +"creating a new accont this will be the DN where it is saved." +msgstr "" +"This is the suffix of the LDAP tree from where to search for LDAP entries. " +"Only entries in this subtree will be displayed in the account list. When " +"creating a new accont this will be the DN where it is saved." + +#: ../lib/modules/inetLocalMailRecipient.inc:69 +msgid "This is the target email address for the user's mails." +msgstr "This is the target email address for the user's mails." + +#: ../lib/modules/customScripts.inc:53 ../lib/modules/uidObject.inc:60 +#: ../lib/modules/aliasEntry.inc:62 +msgid "This is the target of this alias entry." +msgstr "This is the target of this alias entry." + +#: ../lib/modules/sambaDomain.inc:134 +msgid "" +"This is the time (in minutes) for which the user may not log in after the " +"account was locked. -1 means forever." +msgstr "" +"This is the time (in minutes) for which the user may not log in after the " +"account was locked. -1 means forever." + +#: ../help/help.inc:147 +msgid "" +"This is the time (in minutes) of inactivity after which a user is " +"automatically logged off." +msgstr "" +"This is the time (in minutes) of inactivity after which a user is " +"automatically logged off." + +#: ../help/help.inc:108 +msgid "" +"This is the time in minutes which LAM caches its LDAP searches. Shorter " +"times will stress LDAP more but decrease the possibility that changes are " +"not identified." +msgstr "" +"This is the time in minutes which LAM caches its LDAP searches. Shorter " +"times will stress LDAP more but decrease the possibility that changes are " +"not identified." + +#: ../lib/modules/sambaSamAccount.inc:349 +msgid "" +"This is the time zone of your Samba server. LAM needs this information to " +"display the logon hours correctly." +msgstr "" +"This is the time zone of your Samba server. LAM needs this information to " +"display the logon hours correctly." + +#: ../lib/modules/sambaSamAccount.inc:321 +msgid "This is the user's primary Windows group." +msgstr "This is the user's primary Windows group." + +#: ../lib/modules/puppetClient.inc:89 +msgid "" +"This is this node's parent. All classes and variables are inherited from " +"this node." +msgstr "" +"This is this node's parent. All classes and variables are inherited from " +"this node." + +#: ../lib/modules/asteriskAccount.inc:156 +msgid "" +"This is typically used to allow incoming calls (e.g. from FWD) while having " +"a type=friend entry defined with username and password." +msgstr "" +"This is typically used to allow incoming calls (e.g. from FWD) while having " +"a type=friend entry defined with username and password." + +#: ../lib/modules/zarafaUser.inc:117 +msgid "This is used to mark this account as resource." +msgstr "This is used to mark this account as resource." + +#: ../lib/modules/posixAccount.inc:127 +msgid "This login shell is invalid!" +msgstr "This login shell is invalid!" + +#: ../lib/modules/inetLocalMailRecipient.inc:232 +msgid "This mail address is already in use:" +msgstr "This mail address is already in use:" + +#: ../lib/modules/imapAccess.inc:107 +msgid "This mailbox will be created/deleted." +msgstr "This mailbox will be created/deleted." + +#: ../lib/modules.inc:1237 +msgid "This may overwrite existing values with profile data. Continue?" +msgstr "This may overwrite existing values with profile data. Continue?" + +#: ../lib/modules/customFields.inc:113 +msgid "" +"This message is shown when the field value does not match the validation " +"expression." +msgstr "" +"This message is shown when the field value does not match the validation " +"expression." + +#: ../templates/schema/schema.php:350 +msgid "This object class is obsolete." +msgstr "This object class is obsolete." + +#: ../lib/modules/imapAccess.inc:84 +msgid "" +"This option allows you to disable the certificate check of your IMAP server " +"certificate. Disabling the certificate check is not recommended." +msgstr "" +"This option allows you to disable the certificate check of your IMAP server " +"certificate. Disabling the certificate check is not recommended." + +#: ../lib/modules/sambaSamAccount.inc:340 +msgid "This option defines the allowed logon hours for this account." +msgstr "This option defines the allowed logon hours for this account." + +#: ../lib/modules/sambaSamAccount.inc:343 +msgid "" +"This option defines the allowed logon hours for this account. The format is " +"the same as for the LDAP attribute. The 24*7 hours are represented as 168 " +"bit which are saved as 21 hex (21*8 = 168) values. The first bit represents " +"Sunday 0:00 - 0:59 in GMT." +msgstr "" +"This option defines the allowed logon hours for this account. The format is " +"the same as for the LDAP attribute. The 24*7 hours are represented as 168 " +"bit which are saved as 21 hex (21*8 = 168) values. The first bit represents " +"Sunday 0:00 - 0:59 in GMT." + +#: ../lib/modules/asteriskExtension.inc:192 +msgid "This pair of extension name and priority already exists." +msgstr "This pair of extension name and priority already exists." + +#: ../lib/modules/sambaSamAccount.inc:364 +msgid "This program is run after the login." +msgstr "This program is run after the login." + +#: ../lib/modules/sambaSamAccount.inc:388 +msgid "This specifies the reconnect policy." +msgstr "This specifies the reconnect policy." + +#: ../lib/modules/zarafaDynamicGroup.inc:96 +#: ../lib/modules/zarafaContact.inc:107 ../lib/modules/zarafaGroup.inc:113 +#: ../lib/modules/zarafaAddressList.inc:84 ../lib/modules/zarafaUser.inc:172 +#: ../lib/modules/zarafaServer.inc:93 +msgid "" +"This specifies the used Zarafa LDAP schema. Select LDAP for e.g. OpenLDAP, " +"Apache Directory, OpenDJ and other non-Windows based LDAP servers. If you " +"run Zarafa against Samba 4 or Active Directory please select Active " +"Directory." +msgstr "" +"This specifies the used Zarafa LDAP schema. Select LDAP for e.g. OpenLDAP, " +"Apache Directory, OpenDJ and other non-Windows based LDAP servers. If you " +"run Zarafa against Samba 4 or Active Directory please select Active " +"Directory." + +#: ../lib/modules/sambaSamAccount.inc:385 +msgid "This specifies what to do when the client connection is broken." +msgstr "This specifies what to do when the client connection is broken." + +#: ../help/help.inc:227 +msgid "" +"This text is displayed on top of the self service login page. You can also " +"input HTML code here." +msgstr "" +"This text is displayed on top of the self service login page. You can also " +"input HTML code here." + +#: ../help/help.inc:229 +msgid "" +"This text is displayed on top of the self service main page. You can also " +"input HTML code here." +msgstr "" +"This text is displayed on top of the self service main page. You can also " +"input HTML code here." + +#: ../help/help.inc:239 +msgid "" +"This text is placed as label for the password field on the login page. LAM " +"will use \"Password\" if you do not enter any text." +msgstr "" +"This text is placed as label for the password field on the login page. LAM " +"will use \"Password\" if you do not enter any text." + +#: ../help/help.inc:225 +msgid "" +"This text should shortly describe your selected LDAP search attribute (e.g. " +"email or user name)." +msgstr "" +"This text should shortly describe your selected LDAP search attribute (e.g. " +"email or user name)." + +#: ../lib/modules/selfRegistration.inc:107 +#: ../lib/modules/passwordSelfReset.inc:157 +msgid "This text will be printed on top of the page." +msgstr "This text will be printed on top of the page." + +#: ../lib/modules/qmailUser.inc:240 +msgid "" +"This text will be sent as reply to all incoming mails if the delivery mode " +"is set to autoreply." +msgstr "" +"This text will be sent as reply to all incoming mails if the delivery mode " +"is set to autoreply." + +#: ../lib/tools/pdfEdit.inc:53 +msgid "This tool allows you to customize the PDF pages." +msgstr "This tool allows you to customize the PDF pages." + +#: ../templates/lists/changePassword.php:46 +#: ../templates/lists/changePassword.php:243 +msgid "This user is not supported or was not found." +msgstr "This user is not supported or was not found." + +#: ../lib/modules/windowsUser.inc:116 +msgid "This user name is only used for old Windows versions (e.g. NT4, W98)." +msgstr "This user name is only used for old Windows versions (e.g. NT4, W98)." + +#: ../templates/lists/userlink.php:61 +msgid "This user was not found!" +msgstr "This user was not found!" + +#: ../lib/modules/zarafaUser.inc:414 +msgid "This value can only be \"Room\" or \"Equipment\"." +msgstr "This value can only be \"Room\" or \"Equipment\"." + +#: ../lib/modules/zarafaDynamicGroup.inc:204 +#: ../lib/modules/zarafaDynamicGroup.inc:205 +#: ../lib/modules/zarafaContact.inc:189 ../lib/modules/zarafaContact.inc:190 +#: ../lib/modules/zarafaGroup.inc:219 ../lib/modules/zarafaGroup.inc:220 +#: ../lib/modules/zarafaGroup.inc:221 ../lib/modules/zarafaAddressList.inc:171 +#: ../lib/modules/zarafaAddressList.inc:172 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 ../lib/modules/posixAccount.inc:128 +#: ../lib/modules/zarafaUser.inc:421 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:424 ../lib/modules/zarafaUser.inc:425 +#: ../lib/modules/zarafaUser.inc:426 ../lib/modules/zarafaUser.inc:427 +#: ../lib/modules/ppolicyUser.inc:97 ../lib/modules/inetOrgPerson.inc:106 +#: ../lib/modules/zarafaServer.inc:179 +msgid "This value can only be \"true\" or \"false\"." +msgstr "This value can only be \"true\" or \"false\"." + +#: ../lib/modules/zarafaUser.inc:422 +msgid "This value can only be \"true\", \"false\" or \"system\"." +msgstr "This value can only be \"true\", \"false\" or \"system\"." + +#: ../lib/modules/posixGroup.inc:611 +msgid "This value must be a list of user names separated by semicolons." +msgstr "This value must be a list of user names separated by semicolons." + +#: ../help/help.inc:264 +msgid "This will create a new organisational unit under the selected one." +msgstr "This will create a new organisational unit under the selected one." + +#: ../lib/modules/posixAccount.inc:482 +msgid "This will create the user's home directory on the specified server." +msgstr "This will create the user's home directory on the specified server." + +#: ../help/help.inc:266 +msgid "" +"This will delete the selected organisational unit. The OU has to be empty." +msgstr "" +"This will delete the selected organisational unit. The OU has to be empty." + +#: ../help/help.inc:135 +msgid "This will delete the selected profile." +msgstr "This will delete the selected profile." + +#: ../lib/modules/kolabGroup.inc:118 ../lib/modules/puppetClient.inc:109 +#: ../lib/modules/qmailUser.inc:264 ../lib/modules/zarafaContact.inc:88 +#: ../lib/modules/posixGroup.inc:538 ../lib/modules/eduPerson.inc:151 +#: ../lib/modules/pykotaGroup.inc:130 ../lib/modules/sambaSamAccount.inc:403 +#: ../lib/modules/posixAccount.inc:433 ../lib/modules/zarafaUser.inc:137 +#: ../lib/modules/pykotaUser.inc:161 ../lib/modules/shadowAccount.inc:198 +#: ../lib/modules/qmailGroup.inc:233 +#: ../lib/modules/authorizedServiceObject.inc:90 +#: ../lib/modules/passwordSelfReset.inc:153 ../lib/modules/hostObject.inc:84 +msgid "This will enable the extension automatically if this profile is loaded." +msgstr "" +"This will enable the extension automatically if this profile is loaded." + +#: ../lib/modules/customScripts.inc:93 +msgid "" +"This will hide the custom scripts tab when you edit an account. Manual " +"actions are not possible when the tab is not visible." +msgstr "" +"This will hide the custom scripts tab when you edit an account. Manual " +"actions are not possible when the tab is not visible." + +#: ../lib/modules/sambaSamAccount.inc:265 +msgid "This will reset the host's password to a default value." +msgstr "This will reset the host's password to a default value." + +#: ../templates/lists/changePassword.php:311 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail." +msgstr "" +"This will set a random password and display it on the screen or send it to " +"the user via mail." + +#: ../help/help.inc:245 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail. Please edit your LAM server profile to setup the mail " +"settings." +msgstr "" +"This will set a random password and display it on the screen or send it to " +"the user via mail. Please edit your LAM server profile to setup the mail " +"settings." + +#: ../lib/modules/kolabGroup.inc:114 ../lib/modules/kolabUser.inc:179 +#: ../lib/modules/kolabSharedFolder.inc:167 +msgid "" +"This will set a special flag on the account which tells Kolabd to remove it. " +"Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes)." +msgstr "" +"This will set a special flag on the account which tells Kolabd to remove it. " +"Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes)." + +#: ../lib/modules/qmailUser.inc:212 +msgid "" +"This will set the user's account status. You may disable the mail account " +"here." +msgstr "" +"This will set the user's account status. You may disable the mail account " +"here." + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Thursday" +msgstr "Thursday" + +#: ../lib/modules/mitKerberos.inc:136 ../lib/modules/mitKerberos.inc:195 +#: ../lib/modules/mitKerberos.inc:230 ../lib/modules/mitKerberos.inc:254 +#: ../lib/modules/mitKerberos.inc:355 ../lib/modules/mitKerberos.inc:775 +#: ../lib/modules/heimdalKerberos.inc:110 +#: ../lib/modules/heimdalKerberos.inc:164 +#: ../lib/modules/heimdalKerberos.inc:199 +#: ../lib/modules/heimdalKerberos.inc:221 +#: ../lib/modules/heimdalKerberos.inc:302 +#: ../lib/modules/heimdalKerberos.inc:687 +msgid "Ticket lifetime" +msgstr "Ticket lifetime" + +#: ../lib/modules/mitKerberos.inc:293 ../lib/modules/mitKerberos.inc:294 +#: ../lib/modules/heimdalKerberos.inc:257 +#: ../lib/modules/heimdalKerberos.inc:258 +msgid "Ticket lifetime must be a number." +msgstr "Ticket lifetime must be a number." + +#: ../lib/modules/sambaSamAccount.inc:1397 +msgid "Time" +msgstr "Time" + +#: ../lib/modules/sambaSamAccount.inc:369 +msgid "Time limit" +msgstr "Time limit" + +#: ../lib/modules/sambaSamAccount.inc:348 +#: ../lib/modules/sambaSamAccount.inc:579 +msgid "Time zone" +msgstr "Time zone" + +#: ../lib/modules/bindDLZ.inc:101 ../lib/modules/bindDLZ.inc:105 +#: ../lib/modules/bindDLZ.inc:110 ../lib/modules/bindDLZ.inc:115 +#: ../lib/modules/bindDLZ.inc:120 ../lib/modules/bindDLZ.inc:125 +#: ../lib/modules/bindDLZ.inc:130 ../lib/modules/bindDLZ.inc:261 +#: ../lib/modules/bindDLZ.inc:274 ../lib/modules/bindDLZ.inc:294 +#: ../lib/modules/bindDLZ.inc:307 ../lib/modules/bindDLZ.inc:338 +#: ../lib/modules/bindDLZ.inc:370 ../lib/modules/bindDLZ.inc:382 +#: ../lib/modules/bindDLZ.inc:409 ../lib/modules/bindDLZ.inc:430 +#: ../lib/modules/bindDLZ.inc:476 ../lib/modules/bindDLZ.inc:479 +#: ../lib/modules/bindDLZ.inc:481 ../lib/modules/bindDLZ.inc:483 +#: ../lib/modules/bindDLZ.inc:485 ../lib/modules/bindDLZ.inc:487 +#: ../lib/modules/bindDLZ.inc:489 ../lib/modules/bindDLZ.inc:491 +#: ../lib/modules/bindDLZ.inc:493 ../lib/modules/bindDLZ.inc:658 +#: ../lib/modules/bindDLZ.inc:761 ../lib/modules/bindDLZ.inc:840 +#: ../lib/modules/bindDLZ.inc:929 ../lib/modules/bindDLZ.inc:1041 +#: ../lib/modules/bindDLZ.inc:1173 ../lib/modules/bindDLZ.inc:1251 +#: ../lib/modules/bindDLZ.inc:1377 ../lib/modules/bindDLZ.inc:1480 +#: ../lib/modules/bindDLZ.inc:1500 ../lib/modules/bindDLZ.inc:1521 +#: ../lib/modules/bindDLZ.inc:1555 ../lib/modules/bindDLZ.inc:1580 +#: ../lib/modules/bindDLZ.inc:1610 +msgid "Timeout" +msgstr "Timeout" + +#: ../lib/modules/bindDLZ.inc:437 +msgid "Timeouts" +msgstr "Timeouts" + +#: ../lib/modules/pykotaUser.inc:654 ../lib/modules/pykotaUser.inc:1003 +msgid "Title" +msgstr "Title" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:45 +msgid "To" +msgstr "To" + +#: ../lib/modules/posixAccount.inc:531 +msgid "To disable login use /bin/false." +msgstr "To disable login use /bin/false." + +#: ../lib/modules/sambaSamAccount.inc:573 +msgid "Tokyo, Seoul, Osaka, Yakutsk" +msgstr "Tokyo, Seoul, Osaka, Yakutsk" + +#: ../templates/config/confmain.php:406 +msgid "Tool settings" +msgstr "Tool settings" + +#: ../templates/tools.php:63 ../templates/main_header.php:147 +msgid "Tools" +msgstr "Tools" + +#: ../templates/serverInfo.php:357 +msgid "Total" +msgstr "Total" + +#: ../templates/serverInfo.php:242 ../templates/serverInfo.php:247 +msgid "Total connections" +msgstr "Total connections" + +#: ../templates/3rdParty/pla/lib/export_functions.php:202 +msgid "Total entries" +msgstr "Total entries" + +#: ../lib/modules/pykotaUser.inc:141 +msgid "Total money paid by the user." +msgstr "Total money paid by the user." + +#: ../lib/modules/pykotaUser.inc:140 ../lib/modules/pykotaUser.inc:264 +#: ../lib/modules/pykotaUser.inc:586 ../lib/modules/pykotaUser.inc:901 +#: ../lib/modules/pykotaUser.inc:954 +msgid "Total paid" +msgstr "Total paid" + +#: ../lib/modules/pykotaUser.inc:282 +msgid "Total paid (read-only)" +msgstr "Total paid (read-only)" + +#: ../lib/types/user.inc:682 +msgid "Translate GID number to group name" +msgstr "Translate GID number to group name" + +#: ../templates/config/confmain.php:247 ../help/help.inc:77 +msgid "Tree suffix" +msgstr "Tree suffix" + +#: ../templates/multiEdit.php:92 ../templates/main_header.php:178 +msgid "Tree view" +msgstr "Tree view" + +#: ../templates/config/confmain.php:567 +msgid "TreeSuffix is invalid!" +msgstr "TreeSuffix is invalid!" + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Tuesday" +msgstr "Tuesday" + +#: ../templates/multiEdit.php:118 ../templates/selfService/profManage.php:206 +#: ../templates/schema/schema.php:348 ../lib/modules/zarafaUser.inc:116 +#: ../lib/modules/zarafaUser.inc:238 ../lib/modules/zarafaUser.inc:361 +#: ../lib/modules/zarafaUser.inc:535 ../lib/modules/zarafaUser.inc:1251 +#: ../lib/modules/zarafaUser.inc:1797 ../lib/modules/kolabSharedFolder.inc:162 +#: ../lib/modules/kolabSharedFolder.inc:201 +#: ../lib/modules/kolabSharedFolder.inc:241 +#: ../lib/modules/kolabSharedFolder.inc:302 +#: ../lib/modules/kolabSharedFolder.inc:571 +#: ../lib/modules/customFields.inc:100 ../lib/modules/customFields.inc:1070 +#: ../lib/modules/customFields.inc:1702 +msgid "Type" +msgstr "Type" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:210 ../lib/modules/posixAccount.inc:228 +#: ../lib/modules/posixAccount.inc:497 +msgid "UID generator" +msgstr "UID generator" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID has changed. Do you want to change home directory?" +msgstr "UID has changed. Do you want to change home directory?" + +#: ../lib/modules/posixAccount.inc:107 +msgid "" +"UID must be a number. It has to be inside the UID range which is defined in " +"your configuration profile." +msgstr "" +"UID must be a number. It has to be inside the UID range which is defined in " +"your configuration profile." + +#: ../lib/types/host.inc:95 ../lib/types/user.inc:92 +#: ../lib/modules/qmailUser.inc:112 ../lib/modules/qmailUser.inc:231 +#: ../lib/modules/qmailUser.inc:332 ../lib/modules/qmailUser.inc:418 +#: ../lib/modules/qmailUser.inc:570 ../lib/modules/qmailUser.inc:1142 +#: ../lib/modules/posixAccount.inc:108 ../lib/modules/posixAccount.inc:291 +#: ../lib/modules/posixAccount.inc:383 ../lib/modules/posixAccount.inc:412 +#: ../lib/modules/posixAccount.inc:449 ../lib/modules/posixAccount.inc:453 +#: ../lib/modules/posixAccount.inc:461 ../lib/modules/posixAccount.inc:1433 +#: ../lib/modules/posixAccount.inc:1852 +msgid "UID number" +msgstr "UID number" + +#: ../lib/modules/posixAccount.inc:108 +#, php-format +msgid "" +"UID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -uid %s -exec chown %s {} \\;'" +msgstr "" +"UID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -uid %s -exec chown %s {} \\;'" + +#: ../lib/modules/qmailUser.inc:463 +msgid "UID number is already in use." +msgstr "UID number is already in use." + +#: ../lib/modules/posixAccount.inc:99 +msgid "UID ranges for Unix accounts" +msgstr "UID ranges for Unix accounts" + +#: ../lib/modules/sambaSamAccount.inc:306 +msgid "" +"UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced " +"with user and group name." +msgstr "" +"UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced " +"with user and group name." + +#: ../lib/modules/windowsUser.inc:248 +msgid "" +"UNC-path (\\\\server\\share\\) of home directory. If no home drive is set " +"then this directory must start with a drive letter (e.g. \"c:\\dir\\user\")." +msgstr "" +"UNC-path (\\\\server\\share\\) of home directory. If no home drive is set " +"then this directory must start with a drive letter (e.g. \"c:\\dir\\user\")." + +#: ../lib/modules/eduPerson.inc:119 ../lib/modules/eduPerson.inc:123 +msgid "" +"URI (either URN or URL) that indicates a set of rights to specific resources." +msgstr "" +"URI (either URN or URL) that indicates a set of rights to specific resources." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1883 +msgid "URL" +msgstr "URL" + +#: ../lib/modules/bindDLZ.inc:1705 ../lib/modules/bindDLZ.inc:1714 +#: ../lib/modules/bindDLZ.inc:1747 ../lib/modules/bindDLZ.inc:2339 +msgid "Unable to add DNS record." +msgstr "Unable to add DNS record." + +#: ../lib/modules/imapAccess.inc:180 +msgid "Unable to change ACL on IMAP server for mailbox deletion." +msgstr "Unable to change ACL on IMAP server for mailbox deletion." + +#: ../lib/modules/mitKerberos.inc:1155 ../lib/modules/mitKerberos.inc:1159 +#: ../lib/modules/heimdalKerberos.inc:1024 +msgid "Unable to change Kerberos password." +msgstr "Unable to change Kerberos password." + +#: ../lib/modules/windowsUser.inc:1847 ../lib/modules/windowsUser.inc:1873 +msgid "Unable to change password." +msgstr "Unable to change password." + +#: ../templates/selfService/selfServiceMain.php:338 +msgid "" +"Unable to change your account. Maybe you do not have enough rights to change " +"the settings." +msgstr "" +"Unable to change your account. Maybe you do not have enough rights to change " +"the settings." + +#: ../templates/selfService/selfServiceMain.php:335 +msgid "" +"Unable to change your account. Your changes might violate the password " +"policy." +msgstr "" +"Unable to change your account. Your changes might violate the password " +"policy." + +#: ../templates/tests/lamdaemonTest.php:261 ../lib/lamdaemon.inc:76 +#: ../lib/lamdaemon.inc:81 +msgid "Unable to connect to remote server!" +msgstr "Unable to connect to remote server!" + +#: ../templates/massDoUpload.php:193 +msgid "Unable to create ZIP file for PDF export." +msgstr "Unable to create ZIP file for PDF export." + +#: ../lib/modules/selfRegistration.inc:699 +#: ../lib/modules/selfRegistration.inc:703 +msgid "Unable to create account." +msgstr "Unable to create account." + +#: ../lib/modules/imapAccess.inc:182 +msgid "Unable to create mailbox on IMAP server." +msgstr "Unable to create mailbox on IMAP server." + +#: ../templates/ou_edit.php:80 +msgid "Unable to create new OU!" +msgstr "Unable to create new OU!" + +#: ../lib/types/automountType.inc:270 +msgid "Unable to create new automount map." +msgstr "Unable to create new automount map." + +#: ../templates/config/profmanage.php:82 +#: ../templates/selfService/profManage.php:59 +msgid "Unable to create new profile!" +msgstr "Unable to create new profile!" + +#: ../lib/types/bind.inc:215 +msgid "Unable to create new zone." +msgstr "Unable to create new zone." + +#: ../lib/modules/bindDLZ.inc:1684 +#, php-format +msgid "Unable to delete DNS record \"%s\"." +msgstr "Unable to delete DNS record \"%s\"." + +#: ../lib/modules/bindDLZ.inc:1693 ../lib/modules/bindDLZ.inc:1743 +msgid "Unable to delete DNS record." +msgstr "Unable to delete DNS record." + +#: ../templates/ou_edit.php:97 +msgid "Unable to delete OU!" +msgstr "Unable to delete OU!" + +#: ../templates/pdfedit/pdfmain.php:94 +msgid "Unable to delete PDF structure!" +msgstr "Unable to delete PDF structure!" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:25 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:57 +msgid "Unable to delete entry, it does not exist" +msgstr "Unable to delete entry, it does not exist" + +#: ../lib/pdfstruct.inc:291 ../lib/pdfstruct.inc:303 +msgid "Unable to delete logo file." +msgstr "Unable to delete logo file." + +#: ../lib/modules/imapAccess.inc:181 +msgid "Unable to delete mailbox from IMAP server." +msgstr "Unable to delete mailbox from IMAP server." + +#: ../templates/config/profmanage.php:123 +#: ../templates/selfService/profManage.php:87 +#: ../templates/profedit/profilemain.php:108 ../lib/config.inc:154 +#: ../lib/config.inc:166 ../lib/config.inc:173 ../lib/config.inc:181 +msgid "Unable to delete profile!" +msgstr "Unable to delete profile!" + +#: ../lib/modules/pykotaPrinter.inc:220 +#, php-format +msgid "Unable to find a printer with name \"%s\"." +msgstr "Unable to find a printer with name \"%s\"." + +#: ../lib/modules/posixAccount.inc:2072 ../lib/modules/posixAccount.inc:2081 +#: ../lib/modules/posixAccount.inc:2347 ../lib/modules/nisnetgroup.inc:543 +#: ../lib/modules/groupOfNamesUser.inc:388 +msgid "Unable to find group in LDAP." +msgstr "Unable to find group in LDAP." + +#: ../lib/modules/passwordSelfReset.inc:950 +msgid "Unable to find password security answer for this account." +msgstr "Unable to find password security answer for this account." + +#: ../lib/modules/passwordSelfReset.inc:942 +#: ../lib/modules/passwordSelfReset.inc:1161 +msgid "Unable to find password security question for this account." +msgstr "Unable to find password security question for this account." + +#: ../lib/modules/organizationalRoleUser.inc:334 +msgid "Unable to find role in LDAP." +msgstr "Unable to find role in LDAP." + +#: ../templates/login.php:591 ../templates/login.php:597 +msgid "Unable to find the user name in LDAP." +msgstr "Unable to find the user name in LDAP." + +#: ../lib/modules/passwordSelfReset.inc:933 +#: ../lib/modules/passwordSelfReset.inc:1242 +msgid "Unable to find user account." +msgstr "Unable to find user account." + +#: ../templates/config/mainmanage.php:194 +msgid "Unable to import server certificate. Please use the upload function." +msgstr "Unable to import server certificate. Please use the upload function." + +#: ../lib/modules.inc:1521 ../lib/modules.inc:1525 +msgid "Unable to load LDAP entry:" +msgstr "Unable to load LDAP entry:" + +#: ../lib/profiles.inc:98 ../lib/profiles.inc:102 ../lib/selfService.inc:196 +#: ../lib/selfService.inc:200 +msgid "Unable to load profile!" +msgstr "Unable to load profile!" + +#: ../lib/modules/imapAccess.inc:183 +msgid "Unable to locate mailbox on IMAP." +msgstr "Unable to locate mailbox on IMAP." + +#: ../lib/modules/inetOrgPerson.inc:101 +msgid "Unable to process this file." +msgstr "Unable to process this file." + +#: ../templates/3rdParty/pla/lib/import_functions.php:388 +#: ../templates/3rdParty/pla/lib/import_functions.php:393 +msgid "Unable to read file." +msgstr "Unable to read file." + +#: ../lib/modules/selfRegistration.inc:692 +msgid "Unable to register your new account. Please try again." +msgstr "Unable to register your new account. Please try again." + +#: ../lib/modules/passwordSelfReset.inc:1440 +#: ../lib/modules/passwordSelfReset.inc:1449 +#: ../lib/modules/passwordSelfReset.inc:1455 +#: ../lib/modules/passwordSelfReset.inc:1464 +msgid "Unable to reset password." +msgstr "Unable to reset password." + +#: ../templates/3rdParty/pla/lib/functions.php:1945 +msgid "Unable to retrieve image" +msgstr "Unable to retrieve image" + +#: ../templates/tests/schemaTest.php:61 ../templates/schema/schema.php:93 +#: ../templates/schema/schema.php:111 ../templates/schema/schema.php:272 +#: ../templates/schema/schema.php:306 +msgid "Unable to retrieve schema!" +msgstr "Unable to retrieve schema!" + +#: ../templates/selfService/adminMain.php:283 +#: ../templates/profedit/profilepage.php:124 +msgid "Unable to save profile!" +msgstr "Unable to save profile!" + +#: ../lib/account.inc:999 ../lib/account.inc:1037 +msgid "Unable to send mail!" +msgstr "Unable to send mail!" + +#: ../lib/modules/bindDLZ.inc:1734 +#, php-format +msgid "Unable to update DNS record \"%s\"." +msgstr "Unable to update DNS record \"%s\"." + +#: ../lib/pdfstruct.inc:249 ../lib/pdfstruct.inc:259 ../lib/pdfstruct.inc:262 +msgid "Unable to upload logo file." +msgstr "Unable to upload logo file." + +#: ../lib/modules/passwordSelfReset.inc:999 +#: ../lib/modules/passwordSelfReset.inc:1254 +msgid "Unable to verify your password reset request. Please try again." +msgstr "Unable to verify your password reset request. Please try again." + +#: ../lib/modules/selfRegistration.inc:726 +msgid "Unable to verify your user creation request. Please try again." +msgstr "Unable to verify your user creation request. Please try again." + +#: ../templates/serverInfo.php:293 +msgid "Unbind" +msgstr "Unbind" + +#: ../lib/modules/windowsGroup.inc:66 +msgid "Universal" +msgstr "Universal" + +#: ../templates/lists/changePassword.php:398 +#: ../templates/lists/changePassword.php:429 ../lib/types/user.inc:268 +#: ../lib/types/user.inc:368 ../lib/types/user.inc:400 +#: ../lib/types/user.inc:821 ../lib/modules/posixGroup.inc:373 +#: ../lib/modules/posixAccount.inc:168 +msgid "Unix" +msgstr "Unix" + +#: ../templates/tests/lamdaemonTest.php:214 +msgid "Unix account" +msgstr "Unix account" + +#: ../lib/modules/posixAccount.inc:263 ../lib/modules/posixAccount.inc:1566 +msgid "Unix groups" +msgstr "Unix groups" + +#: ../lib/modules/dhcp_settings.inc:201 ../lib/modules/dhcp_settings.inc:218 +#: ../lib/modules/dhcp_settings.inc:294 ../lib/modules/dhcp_settings.inc:602 +#: ../lib/modules/dhcp_settings.inc:682 +msgid "Unknown clients" +msgstr "Unknown clients" + +#: ../lib/modules/kolabUser.inc:252 ../lib/modules/kolabSharedFolder.inc:256 +#, php-format +msgid "Unknown delegate address: %s" +msgstr "Unknown delegate address: %s" + +#: ../templates/3rdParty/pla/lib/import_functions.php:233 +msgid "Unkown change type" +msgstr "Unkown change type" + +#: ../lib/types/user.inc:349 ../lib/types/user.inc:354 +#: ../lib/modules/windowsUser.inc:732 +msgid "Unlock" +msgstr "Unlock" + +#: ../templates/lists/changePassword.php:205 +#: ../templates/lists/changePassword.php:395 +#: ../templates/lists/changePassword.php:415 +#: ../templates/lists/changePassword.php:417 +#: ../lib/modules/ppolicyUser.inc:146 +msgid "Unlock account" +msgstr "Unlock account" + +#: ../templates/lists/changePassword.php:265 +msgid "Unlock account?" +msgstr "Unlock account?" + +#: ../lib/modules/posixGroup.inc:211 ../lib/modules/posixAccount.inc:1502 +#: ../lib/modules/inetOrgPerson.inc:1562 +msgid "Unlock password" +msgstr "Unlock password" + +#: ../templates/masscreate.php:107 ../templates/config/confmodules.php:386 +msgid "Unsolved dependency:" +msgstr "Unsolved dependency:" + +#: ../templates/pdfedit/pdfpage.php:473 +msgid "Up" +msgstr "Up" + +#: ../templates/lists/changePassword.php:220 +msgid "Update Samba password timestamp" +msgstr "Update Samba password timestamp" + +#: ../lib/modules/sambaSamAccount.inc:249 +msgid "Update attribute \"sambaPwdLastSet\" on password change" +msgstr "Update attribute \"sambaPwdLastSet\" on password change" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1440 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:194 +msgid "Update object" +msgstr "Update object" + +#: ../lib/modules/imapAccess.inc:322 ../lib/modules/imapAccess.inc:331 +msgid "Update quota" +msgstr "Update quota" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:165 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:129 +msgid "Update values" +msgstr "Update values" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:118 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:118 +msgid "Updating object" +msgstr "Updating object" + +#: ../templates/config/mainmanage.php:334 ../templates/pdfedit/pdfmain.php:247 +#: ../lib/modules/ldapPublicKey.inc:126 ../lib/modules/inetOrgPerson.inc:1830 +msgid "Upload" +msgstr "Upload" + +#: ../templates/config/mainmanage.php:336 +msgid "Upload CA certificate in DER/PEM format." +msgstr "Upload CA certificate in DER/PEM format." + +#: ../lib/modules/ldapPublicKey.inc:81 +msgid "Upload a file with one or more keys. Each line contains one key." +msgstr "Upload a file with one or more keys. Each line contains one key." + +#: ../templates/massBuildAccounts.php:242 +msgid "Upload accounts to LDAP" +msgstr "Upload accounts to LDAP" + +#: ../lib/modules/ldapPublicKey.inc:122 ../lib/modules/customFields.inc:164 +#: ../lib/modules/customFields.inc:3428 +msgid "Upload file" +msgstr "Upload file" + +#: ../templates/masscreate.php:277 +msgid "Upload file and create accounts" +msgstr "Upload file and create accounts" + +#: ../templates/massDoUpload.php:254 ../lib/lists.inc:1071 +msgid "Upload has finished" +msgstr "Upload has finished" + +#: ../lib/modules.inc:504 +#, php-format +msgid "Upload was stopped after errors in %s module!" +msgstr "Upload was stopped after errors in %s module!" + +#: ../lib/pdfstruct.inc:256 +msgid "Uploaded logo file." +msgstr "Uploaded logo file." + +#: ../templates/serverInfo.php:222 +msgid "Uptime" +msgstr "Uptime" + +#: ../templates/schema/schema.php:209 +msgid "Usage" +msgstr "Usage" + +#: ../lib/modules/authorizedServiceObject.inc:82 +#: ../lib/modules/authorizedServiceObject.inc:86 +msgid "Use * for all services." +msgstr "Use * for all services." + +#: ../lib/modules/sambaSamAccount.inc:267 +#: ../lib/modules/sambaSamAccount.inc:270 +#: ../lib/modules/sambaSamAccount.inc:431 +msgid "Use Unix password" +msgstr "Use Unix password" + +#: ../templates/selfService/adminMain.php:469 ../help/help.inc:242 +msgid "Use for all operations" +msgstr "Use for all operations" + +#: ../lib/modules/sambaSamAccount.inc:273 +#: ../lib/modules/sambaSamAccount.inc:276 +#: ../lib/modules/sambaSamAccount.inc:439 +#: ../lib/modules/sambaSamAccount.inc:1143 +#: ../lib/modules/sambaSamAccount.inc:1733 +msgid "Use no password" +msgstr "Use no password" + +#: ../help/help.inc:272 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of entries to modify." +msgstr "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of entries to modify." + +#: ../help/help.inc:171 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of visible elements for this account type." +msgstr "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of visible elements for this account type." + +#: ../help/help.inc:241 +msgid "" +"Use this to enter an additional LDAP filter (e.g. " +"\"(objectClass=passwordSelfReset)\") to reduce the number of accounts who " +"may use self service." +msgstr "" +"Use this to enter an additional LDAP filter (e.g. " +"\"(objectClass=passwordSelfReset)\") to reduce the number of accounts who " +"may use self service." + +#: ../lib/modules/asteriskAccount.inc:188 +msgid "Use this to hide the caller ID." +msgstr "Use this to hide the caller ID." + +#: ../lib/modules/zarafaDynamicGroup.inc:80 +#: ../lib/modules/zarafaContact.inc:72 ../lib/modules/zarafaGroup.inc:86 +#: ../lib/modules/zarafaAddressList.inc:68 ../lib/modules/zarafaUser.inc:81 +msgid "Use this to hide this entry from the address book." +msgstr "Use this to hide this entry from the address book." + +#: ../lib/modules/sambaGroupMapping.inc:167 +msgid "" +"Use this to specify other groups or accounts from other domains as group " +"members." +msgstr "" +"Use this to specify other groups or accounts from other domains as group " +"members." + +#: ../lib/modules/imapAccess.inc:87 +msgid "" +"Use wildcards like $uid$ for LDAP attributes of the current LAM admin user." +msgstr "" +"Use wildcards like $uid$ for LDAP attributes of the current LAM admin user." + +#: ../lib/modules/pykotaBillingCode.inc:86 +msgid "Used balance for the billing code." +msgstr "Used balance for the billing code." + +#: ../lib/modules/quota.inc:109 ../lib/modules/quota.inc:400 +msgid "Used blocks" +msgstr "Used blocks" + +#: ../lib/modules/quota.inc:110 +msgid "Used blocks. 1000 blocks are usually 1MB" +msgstr "Used blocks. 1000 blocks are usually 1MB" + +#: ../templates/schema/schema.php:268 +msgid "Used by attributes" +msgstr "Used by attributes" + +#: ../templates/schema/schema.php:237 +msgid "Used by object classes" +msgstr "Used by object classes" + +#: ../lib/modules/sambaDomain.inc:98 +msgid "Used for calculating RIDs from UID/GID. Do not change if unsure." +msgstr "Used for calculating RIDs from UID/GID. Do not change if unsure." + +#: ../lib/modules/asteriskAccount.inc:220 +msgid "Used for registration context." +msgstr "Used for registration context." + +#: ../lib/modules/quota.inc:131 ../lib/modules/quota.inc:404 +msgid "Used inodes" +msgstr "Used inodes" + +#: ../lib/modules/quota.inc:132 +msgid "Used inodes (files)" +msgstr "Used inodes (files)" + +#: ../lib/modules/asteriskAccount.inc:192 +msgid "Used to automatically hangup the call if no RTP traffic is received." +msgstr "Used to automatically hangup the call if no RTP traffic is received." + +#: ../lib/modules/asteriskAccount.inc:168 +#: ../lib/modules/asteriskAccount.inc:172 +msgid "" +"Used to limit SIP traffic to and from this peer to a certain IP or network." +msgstr "" +"Used to limit SIP traffic to and from this peer to a certain IP or network." + +#: ../lib/modules/asteriskAccount.inc:184 +msgid "Used to regularly check that a device is still online." +msgstr "Used to regularly check that a device is still online." + +#: ../lib/types/sudo.inc:78 ../lib/modules/nisnetgroup.inc:220 +#: ../lib/modules/nisnetgroup.inc:586 ../lib/modules/nisMailAlias.inc:350 +msgid "User" +msgstr "User" + +#: ../lib/types/user.inc:62 +msgid "User accounts (e.g. Unix, Samba and Kolab)" +msgstr "User accounts (e.g. Unix, Samba and Kolab)" + +#: ../lib/modules/asteriskAccount.inc:127 +#: ../lib/modules/asteriskAccount.inc:270 +#: ../lib/modules/asteriskAccount.inc:340 +#: ../lib/modules/asteriskAccount.inc:598 +#: ../lib/modules/asteriskAccount.inc:986 +#: ../lib/modules/asteriskAccount.inc:1241 +msgid "User agent" +msgstr "User agent" + +#: ../lib/modules/sambaSamAccount.inc:297 +#: ../lib/modules/sambaSamAccount.inc:1167 +msgid "User can change password" +msgstr "User can change password" + +#: ../lib/modules/inetOrgPerson.inc:163 ../lib/modules/inetOrgPerson.inc:844 +#: ../lib/modules/inetOrgPerson.inc:1507 ../lib/modules/inetOrgPerson.inc:2719 +#: ../lib/modules/inetOrgPerson.inc:3561 +msgid "User certificates" +msgstr "User certificates" + +#: ../lib/types/user.inc:529 +#, php-format +msgid "User count: %s" +msgstr "User count: %s" + +#: ../lib/modules/pykotaUser.inc:121 +msgid "User description." +msgstr "User description." + +#: ../lib/modules/posixAccount.inc:511 +msgid "User description. If left empty first and last name will be used." +msgstr "User description. If left empty first and last name will be used." + +#: ../lib/modules/inetOrgPerson.inc:633 +msgid "User description. If left empty sur- and give name will be used." +msgstr "User description. If left empty sur- and give name will be used." + +#: ../lib/modules/account.inc:106 +msgid "User description. If left empty user name will be used." +msgstr "User description. If left empty user name will be used." + +#: ../templates/schema/schema.php:204 +msgid "User modification" +msgstr "User modification" + +#: ../lib/modules/mitKerberos.inc:224 ../lib/modules/mitKerberos.inc:250 +#: ../lib/modules/mitKerberos.inc:374 ../lib/modules/mitKerberos.inc:639 +#: ../lib/modules/mitKerberos.inc:779 ../lib/modules/sambaSamAccount.inc:299 +#: ../lib/modules/sambaSamAccount.inc:1173 ../lib/modules/windowsUser.inc:741 +#: ../lib/modules/heimdalKerberos.inc:106 +#: ../lib/modules/heimdalKerberos.inc:193 +#: ../lib/modules/heimdalKerberos.inc:220 +#: ../lib/modules/heimdalKerberos.inc:332 +#: ../lib/modules/heimdalKerberos.inc:549 +#: ../lib/modules/heimdalKerberos.inc:683 +msgid "User must change password" +msgstr "User must change password" + +#: ../templates/lists/changePassword.php:276 ../templates/login.php:334 +#: ../lib/types/alias.inc:91 ../lib/types/user.inc:91 +#: ../lib/selfService.inc:385 ../lib/modules/mitKerberos.inc:116 +#: ../lib/modules/mitKerberos.inc:211 ../lib/modules/mitKerberos.inc:249 +#: ../lib/modules/mitKerberos.inc:343 ../lib/modules/mitKerberos.inc:766 +#: ../lib/modules/selfRegistration.inc:393 +#: ../lib/modules/selfRegistration.inc:467 +#: ../lib/modules/selfRegistration.inc:475 ../lib/modules/account.inc:85 +#: ../lib/modules/account.inc:101 ../lib/modules/account.inc:124 +#: ../lib/modules/account.inc:126 ../lib/modules/account.inc:127 +#: ../lib/modules/account.inc:210 ../lib/modules/account.inc:230 +#: ../lib/modules/account.inc:254 ../lib/modules/uidObject.inc:45 +#: ../lib/modules/uidObject.inc:67 ../lib/modules/uidObject.inc:76 +#: ../lib/modules/uidObject.inc:85 ../lib/modules/uidObject.inc:100 +#: ../lib/modules/uidObject.inc:161 ../lib/modules/posixAccount.inc:113 +#: ../lib/modules/posixAccount.inc:114 ../lib/modules/posixAccount.inc:117 +#: ../lib/modules/posixAccount.inc:283 ../lib/modules/posixAccount.inc:409 +#: ../lib/modules/posixAccount.inc:506 ../lib/modules/posixAccount.inc:1420 +#: ../lib/modules/posixAccount.inc:1842 ../lib/modules/windowsUser.inc:107 +#: ../lib/modules/windowsUser.inc:264 ../lib/modules/windowsUser.inc:498 +#: ../lib/modules/windowsUser.inc:589 ../lib/modules/windowsUser.inc:689 +#: ../lib/modules/windowsUser.inc:1585 ../lib/modules/pykotaUser.inc:112 +#: ../lib/modules/pykotaUser.inc:208 ../lib/modules/pykotaUser.inc:268 +#: ../lib/modules/pykotaUser.inc:311 ../lib/modules/pykotaUser.inc:313 +#: ../lib/modules/pykotaUser.inc:340 ../lib/modules/pykotaUser.inc:889 +#: ../lib/modules/nisnetgroup.inc:152 ../lib/modules/nisnetgroup.inc:482 +#: ../lib/modules/inetOrgPerson.inc:95 ../lib/modules/inetOrgPerson.inc:163 +#: ../lib/modules/inetOrgPerson.inc:624 ../lib/modules/inetOrgPerson.inc:744 +#: ../lib/modules/inetOrgPerson.inc:1161 ../lib/modules/inetOrgPerson.inc:1164 +#: ../lib/modules/inetOrgPerson.inc:1908 ../lib/modules/inetOrgPerson.inc:2043 +#: ../lib/modules/inetOrgPerson.inc:2777 ../lib/modules/inetOrgPerson.inc:3569 +#: ../lib/modules/inetOrgPerson.inc:3594 +#: ../lib/modules/passwordSelfReset.inc:499 +#: ../lib/modules/passwordSelfReset.inc:843 +#: ../lib/modules/passwordSelfReset.inc:1015 +#: ../lib/modules/heimdalKerberos.inc:94 +#: ../lib/modules/heimdalKerberos.inc:180 +#: ../lib/modules/heimdalKerberos.inc:218 +#: ../lib/modules/heimdalKerberos.inc:293 +#: ../lib/modules/heimdalKerberos.inc:676 +msgid "User name" +msgstr "User name" + +#: ../lib/modules/windowsUser.inc:115 ../lib/modules/windowsUser.inc:449 +#: ../lib/modules/windowsUser.inc:529 ../lib/modules/windowsUser.inc:565 +#: ../lib/modules/windowsUser.inc:593 ../lib/modules/windowsUser.inc:698 +#: ../lib/modules/windowsUser.inc:1587 +msgid "User name (pre W2K)" +msgstr "User name (pre W2K)" + +#: ../lib/modules/selfRegistration.inc:475 ../lib/modules/posixAccount.inc:121 +#: ../lib/modules/pykotaUser.inc:313 ../lib/modules/pykotaUser.inc:314 +#: ../lib/modules/pykotaUser.inc:317 ../lib/modules/pykotaUser.inc:318 +#: ../lib/modules/inetOrgPerson.inc:97 +msgid "User name already exists!" +msgstr "User name already exists!" + +#: ../lib/modules/passwordSelfReset.inc:501 +msgid "User name and email address" +msgstr "User name and email address" + +#: ../lib/modules/imapAccess.inc:103 ../lib/modules/imapAccess.inc:144 +msgid "User name attribute" +msgstr "User name attribute" + +#: ../lib/modules/mitKerberos.inc:289 ../lib/modules/mitKerberos.inc:290 +#: ../lib/modules/selfRegistration.inc:467 ../lib/modules/account.inc:124 +#: ../lib/modules/account.inc:125 ../lib/modules/account.inc:127 +#: ../lib/modules/zarafaContact.inc:187 ../lib/modules/zarafaContact.inc:188 +#: ../lib/modules/uidObject.inc:85 ../lib/modules/zarafaGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:223 ../lib/modules/posixAccount.inc:114 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/zarafaUser.inc:419 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/windowsUser.inc:589 +#: ../lib/modules/windowsUser.inc:590 ../lib/modules/windowsUser.inc:593 +#: ../lib/modules/windowsUser.inc:594 ../lib/modules/pykotaUser.inc:311 +#: ../lib/modules/pykotaUser.inc:312 ../lib/modules/pykotaUser.inc:315 +#: ../lib/modules/pykotaUser.inc:316 ../lib/modules/nisnetgroup.inc:152 +#: ../lib/modules/inetOrgPerson.inc:95 ../lib/modules/inetOrgPerson.inc:96 +#: ../lib/modules/passwordSelfReset.inc:893 +#: ../lib/modules/passwordSelfReset.inc:1115 +#: ../lib/modules/heimdalKerberos.inc:253 +#: ../lib/modules/heimdalKerberos.inc:254 +msgid "" +"User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" + +#: ../lib/modules/windowsUser.inc:253 +msgid "User name for NIS." +msgstr "User name for NIS." + +#: ../lib/modules/posixAccount.inc:117 +msgid "User name in use. Selected next free user name." +msgstr "User name in use. Selected next free user name." + +#: ../lib/modules/mitKerberos.inc:117 ../lib/modules/account.inc:102 +#: ../lib/modules/pykotaUser.inc:113 ../lib/modules/inetOrgPerson.inc:745 +#: ../lib/modules/heimdalKerberos.inc:95 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_." +msgstr "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_." + +#: ../lib/modules/posixAccount.inc:507 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_. If user name is already used user name will be expanded with a " +"number. The next free number will be used." +msgstr "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_. If user name is already used user name will be expanded with a " +"number. The next free number will be used." + +#: ../lib/modules/passwordSelfReset.inc:502 +#: ../lib/modules/passwordSelfReset.inc:867 +#: ../lib/modules/passwordSelfReset.inc:1035 +msgid "User name or email address" +msgstr "User name or email address" + +#: ../lib/modules/posixAccount.inc:270 ../lib/modules/posixAccount.inc:436 +msgid "User name suggestion" +msgstr "User name suggestion" + +#: ../lib/modules/pykotaUser.inc:125 +msgid "User name that is used for PyKota." +msgstr "User name that is used for PyKota." + +#: ../lib/modules/windowsUser.inc:752 +msgid "User profile" +msgstr "User profile" + +#: ../lib/modules/selfRegistration.inc:45 +msgid "User self registration" +msgstr "User self registration" + +#: ../lib/modules/zarafaUser.inc:128 ../lib/modules/zarafaUser.inc:275 +#: ../lib/modules/zarafaUser.inc:373 ../lib/modules/zarafaUser.inc:614 +#: ../lib/modules/zarafaUser.inc:1233 ../lib/modules/zarafaUser.inc:1322 +#: ../lib/modules/zarafaUser.inc:1805 +msgid "User server" +msgstr "User server" + +#: ../lib/types/user.inc:53 ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:97 +#: ../lib/modules/posixAccount.inc:209 ../lib/modules/zarafaUser.inc:1779 +#: ../lib/modules/sudoRole.inc:74 ../lib/modules/sudoRole.inc:98 +#: ../lib/modules/sudoRole.inc:159 ../lib/modules/sudoRole.inc:216 +#: ../lib/modules/sudoRole.inc:228 ../lib/modules/sudoRole.inc:316 +#: ../lib/modules/sudoRole.inc:806 +msgid "Users" +msgstr "Users" + +#: ../lib/modules/zarafaContact.inc:80 ../lib/modules/zarafaGroup.inc:94 +#: ../lib/modules/zarafaUser.inc:105 +msgid "Users or groups that may directly send email as this user." +msgstr "Users or groups that may directly send email as this user." + +#: ../lib/modules/posixGroup.inc:489 +msgid "" +"Users who are member of the current group. Users who have set their primary " +"group to this group will not be shown." +msgstr "" +"Users who are member of the current group. Users who have set their primary " +"group to this group will not be shown." + +#: ../lib/modules/posixGroup.inc:493 +msgid "" +"Users who will become member of the current group. User names are separated " +"by semicolons." +msgstr "" +"Users who will become member of the current group. User names are separated " +"by semicolons." + +#: ../templates/tests/lamdaemonTest.php:207 +#, php-format +msgid "Using %s as lamdaemon remote server." +msgstr "Using %s as lamdaemon remote server." + +#: ../templates/tests/lamdaemonTest.php:229 +#, php-format +msgid "Using %s to connect to remote server." +msgstr "Using %s to connect to remote server." + +#: ../lib/modules/posixAccount.inc:446 +msgid "" +"Usually, users are not added to groups as memberUid if they have this group " +"as primary group. If your application ignores primary groups then you can " +"select this option to override this behaviour." +msgstr "" +"Usually, users are not added to groups as memberUid if they have this group " +"as primary group. If your application ignores primary groups then you can " +"select this option to override this behaviour." + +#: ../templates/3rdParty/pla/lib/export_functions.php:543 +msgid "VCARD 2.1 Export" +msgstr "VCARD 2.1 Export" + +#: ../templates/config/mainmanage.php:360 +msgid "Valid to" +msgstr "Valid to" + +#: ../help/help.inc:92 +msgid "Valid users" +msgstr "Valid users" + +#: ../lib/modules/imapAccess.inc:83 ../lib/modules/imapAccess.inc:121 +msgid "Validate server certificate" +msgstr "Validate server certificate" + +#: ../lib/modules/customFields.inc:108 ../lib/modules/customFields.inc:1899 +msgid "Validation expression" +msgstr "Validation expression" + +#: ../lib/modules/customFields.inc:112 ../lib/modules/customFields.inc:1904 +msgid "Validation message" +msgstr "Validation message" + +#: ../templates/multiEdit.php:120 ../lib/modules/customFields.inc:2959 +msgid "Value" +msgstr "Value" + +#: ../lib/modules/customFields.inc:116 ../lib/modules/customFields.inc:2749 +msgid "Value for \"checked\"" +msgstr "Value for \"checked\"" + +#: ../lib/modules/customFields.inc:120 ../lib/modules/customFields.inc:2755 +msgid "Value for \"unchecked\"" +msgstr "Value for \"unchecked\"" + +#: ../lib/modules/customFields.inc:140 ../lib/modules/customFields.inc:2955 +msgid "Value mapping" +msgstr "Value mapping" + +#: ../templates/3rdParty/pla/lib/import_functions.php:512 +msgid "Value to delete does not exist in DN" +msgstr "Value to delete does not exist in DN" + +#: ../lib/modules/puppetClient.inc:100 ../lib/modules/puppetClient.inc:104 +#: ../lib/modules/puppetClient.inc:146 ../lib/modules/puppetClient.inc:156 +#: ../lib/modules/puppetClient.inc:169 ../lib/modules/puppetClient.inc:277 +#: ../lib/modules/puppetClient.inc:439 +msgid "Variables" +msgstr "Variables" + +#: ../templates/serverInfo.php:134 +msgid "Vendor name" +msgstr "Vendor name" + +#: ../templates/serverInfo.php:140 +msgid "Vendor version" +msgstr "Vendor version" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +#, php-format +msgid "View %s children" +msgstr "View %s children" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +msgid "View 1 child" +msgstr "View 1 child" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1230 +msgid "View the children of this object" +msgstr "View the children of this object" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1028 +msgid "Viewing entry in read-only mode." +msgstr "Viewing entry in read-only mode." + +#: ../lib/modules/asteriskVoicemail.inc:119 +#: ../lib/modules/asteriskVoicemail.inc:126 +#: ../lib/modules/asteriskVoicemail.inc:143 +#: ../lib/modules/asteriskVoicemail.inc:196 +#: ../lib/modules/asteriskVoicemail.inc:260 +#: ../lib/modules/asteriskVoicemail.inc:372 +msgid "Voicemail context" +msgstr "Voicemail context" + +#: ../lib/modules/asteriskVoicemail.inc:96 +msgid "Voicemail mailbox for this account." +msgstr "Voicemail mailbox for this account." + +#: ../templates/login.php:496 +msgid "Want more features? Get LAM Pro!" +msgstr "Want more features? Get LAM Pro!" + +#: ../templates/config/mainmanage.php:408 +#: ../templates/3rdParty/pla/lib/page.php:76 +msgid "Warning" +msgstr "Warning" + +#: ../templates/delete.php:234 ../lib/modules/nisMailAliasUser.inc:505 +#: ../lib/modules/posixAccount.inc:850 ../lib/modules/posixAccount.inc:903 +#: ../lib/modules/organizationalRoleUser.inc:201 +#: ../lib/modules/organizationalRoleUser.inc:218 +#: ../lib/modules/windowsUser.inc:1123 ../lib/modules/groupOfNamesUser.inc:217 +#: ../lib/modules/groupOfNamesUser.inc:264 ../lib/modules.inc:1900 +#, php-format +msgid "Was unable to add attributes to DN: %s." +msgstr "Was unable to add attributes to DN: %s." + +#: ../lib/modules/nisMailAliasUser.inc:494 ../lib/modules.inc:1863 +#, php-format +msgid "Was unable to create DN: %s." +msgstr "Was unable to create DN: %s." + +#: ../templates/delete.php:344 ../templates/delete.php:353 +#: ../lib/modules/nisMailAliasUser.inc:471 +#, php-format +msgid "Was unable to delete DN: %s." +msgstr "Was unable to delete DN: %s." + +#: ../templates/lists/changePassword.php:749 +#: ../templates/lists/changePassword.php:787 +#: ../templates/lists/changePassword.php:833 ../templates/delete.php:225 +#, php-format +msgid "Was unable to modify attributes from DN: %s." +msgstr "Was unable to modify attributes from DN: %s." + +#: ../lib/modules/posixAccount.inc:888 ../lib/modules/windowsUser.inc:1149 +#: ../lib/modules/windowsUser.inc:1558 ../lib/modules/groupOfNamesUser.inc:249 +#: ../lib/modules.inc:1882 +#, php-format +msgid "Was unable to modify attributes of DN: %s." +msgstr "Was unable to modify attributes of DN: %s." + +#: ../templates/delete.php:243 ../lib/modules/nisMailAliasUser.inc:482 +#: ../lib/modules/posixAccount.inc:858 ../lib/modules/posixAccount.inc:920 +#: ../lib/modules/organizationalRoleUser.inc:206 +#: ../lib/modules/organizationalRoleUser.inc:229 +#: ../lib/modules/windowsUser.inc:1136 ../lib/modules/groupOfNamesUser.inc:222 +#: ../lib/modules/groupOfNamesUser.inc:278 ../lib/modules.inc:1913 +#, php-format +msgid "Was unable to remove attributes from DN: %s." +msgstr "Was unable to remove attributes from DN: %s." + +#: ../lib/modules/asteriskExtension.inc:905 ../lib/modules.inc:1843 +#, php-format +msgid "Was unable to rename DN: %s." +msgstr "Was unable to rename DN: %s." + +#: ../lib/modules/windowsUser.inc:188 ../lib/modules/windowsUser.inc:374 +#: ../lib/modules/windowsUser.inc:516 ../lib/modules/windowsUser.inc:543 +#: ../lib/modules/windowsUser.inc:720 ../lib/modules/windowsUser.inc:1604 +#: ../lib/modules/windowsUser.inc:1727 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:214 ../lib/modules/inetOrgPerson.inc:467 +#: ../lib/modules/inetOrgPerson.inc:587 ../lib/modules/inetOrgPerson.inc:732 +#: ../lib/modules/inetOrgPerson.inc:736 ../lib/modules/inetOrgPerson.inc:1422 +#: ../lib/modules/inetOrgPerson.inc:1425 ../lib/modules/inetOrgPerson.inc:1918 +#: ../lib/modules/inetOrgPerson.inc:2467 ../lib/modules/inetOrgPerson.inc:3559 +#: ../lib/modules/inetOrgPerson.inc:3584 +msgid "Web site" +msgstr "Web site" + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Wednesday" +msgstr "Wednesday" + +#: ../lib/modules/bindDLZ.inc:187 ../lib/modules/bindDLZ.inc:191 +#: ../lib/modules/bindDLZ.inc:394 ../lib/modules/bindDLZ.inc:510 +#: ../lib/modules/bindDLZ.inc:1360 ../lib/modules/bindDLZ.inc:1607 +msgid "Weight" +msgstr "Weight" + +#: ../lib/selfService.inc:384 +msgid "Welcome to LAM self service. Please enter your user name and password." +msgstr "Welcome to LAM self service. Please enter your user name and password." + +#: ../lib/modules/sambaSamAccount.inc:564 +msgid "Western Europe Time, London, Lisbon" +msgstr "Western Europe Time, London, Lisbon" + +#: ../lib/modules/passwordSelfReset.inc:179 +msgid "What is the name of your favourite pet?" +msgstr "What is the name of your favourite pet?" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +msgid "" +"When performing a recursive copy, only copy those entries which match this " +"filter." +msgstr "" +"When performing a recursive copy, only copy those entries which match this " +"filter." + +#: ../lib/modules/zarafaUser.inc:101 +msgid "" +"When the hard quota limit is reached, email can not be delivered to that " +"user anymore." +msgstr "" +"When the hard quota limit is reached, email can not be delivered to that " +"user anymore." + +#: ../help/help.inc:70 +msgid "" +"When using ldaps:// or TLS be sure to use exactly the same IP/domain name as " +"in your certificate!" +msgstr "" +"When using ldaps:// or TLS be sure to use exactly the same IP/domain name as " +"in your certificate!" + +#: ../templates/lists/changePassword.php:410 +#: ../templates/lists/changePassword.php:441 ../lib/types/user.inc:292 +#: ../lib/types/user.inc:380 ../lib/types/user.inc:412 +#: ../lib/types/user.inc:845 ../lib/modules/windowsHost.inc:64 +#: ../lib/modules/windowsUser.inc:89 ../lib/modules/windowsGroup.inc:99 +msgid "Windows" +msgstr "Windows" + +#: ../lib/modules/sambaSamAccount.inc:337 ../lib/modules/windowsUser.inc:112 +msgid "Windows domain name of account." +msgstr "Windows domain name of account." + +#: ../lib/modules/sambaSamAccount.inc:211 +#: ../lib/modules/sambaSamAccount.inc:470 +#: ../lib/modules/sambaSamAccount.inc:1261 +#: ../lib/modules/sambaSamAccount.inc:1781 +#: ../lib/modules/sambaSamAccount.inc:1906 +#: ../lib/modules/sambaGroupMapping.inc:111 +#: ../lib/modules/sambaGroupMapping.inc:374 +#: ../lib/modules/sambaGroupMapping.inc:539 +msgid "Windows group" +msgstr "Windows group" + +#: ../lib/modules/sambaGroupMapping.inc:150 +msgid "Windows group name" +msgstr "Windows group name" + +#: ../lib/modules/sambaGroupMapping.inc:163 +msgid "Windows group type." +msgstr "Windows group type." + +#: ../lib/modules/sambaSamAccount.inc:394 +msgid "" +"Windows password hashes are saved by default as NT and LM hashes. LM hashes " +"are insecure and only needed for old versions of Windows. You should disable " +"them unless you really need them." +msgstr "" +"Windows password hashes are saved by default as NT and LM hashes. LM hashes " +"are insecure and only needed for old versions of Windows. You should disable " +"them unless you really need them." + +#: ../lib/modules/sambaSamAccount.inc:320 +msgid "Windows primary group" +msgstr "Windows primary group" + +#: ../lib/modules/sambaSamAccount.inc:323 +msgid "Windows primary group SID" +msgstr "Windows primary group SID" + +#: ../lib/modules/sambaGroupMapping.inc:159 +msgid "Windows-Domain name of group." +msgstr "Windows-Domain name of group." + +#: ../lib/modules/inetOrgPerson.inc:1433 +msgid "Work details" +msgstr "Work details" + +#: ../lib/modules/sambaDomain.inc:146 +msgid "Workgroup" +msgstr "Workgroup" + +#: ../lib/modules/sambaSamAccount.inc:235 +#: ../lib/modules/sambaSamAccount.inc:366 +#: ../lib/modules/sambaSamAccount.inc:1517 +#: ../lib/modules/sambaSamAccount.inc:1925 +msgid "Working directory" +msgstr "Working directory" + +#: ../lib/modules/sambaSamAccount.inc:367 +msgid "Working directory of initial program." +msgstr "Working directory of initial program." + +#: ../templates/config/confmain.php:318 +msgid "Write" +msgstr "Write" + +#: ../templates/config/confmain.php:260 +msgid "Write access" +msgstr "Write access" + +#: ../templates/login.php:579 ../templates/login.php:637 +#: ../templates/selfService/selfServiceLogin.php:160 +#: ../templates/selfService/selfServiceLogin.php:186 +msgid "Wrong password/user name combination. Please try again." +msgstr "Wrong password/user name combination. Please try again." + +#: ../lib/modules/imapAccess.inc:188 +msgid "Wrong quota format. Quota must be numeric." +msgstr "Wrong quota format. Quota must be numeric." + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/pykotaPrinter.inc:51 +#: ../lib/modules/pykotaPrinter.inc:170 ../lib/modules/qmailGroup.inc:322 +#: ../lib/modules/qmailGroup.inc:364 ../lib/modules/qmailGroup.inc:1030 +#: ../lib/modules/qmailGroup.inc:1031 ../lib/modules/qmailGroup.inc:1073 +#: ../lib/modules/qmailGroup.inc:1079 ../lib/modules/imapAccess.inc:121 +msgid "Yes" +msgstr "Yes" + +#: ../templates/lists/changePassword.php:528 +#: ../lib/modules/ppolicyUser.inc:344 ../lib/modules/ppolicyUser.inc:421 +msgid "You are reusing an old password. Please choose a different password." +msgstr "You are reusing an old password. Please choose a different password." + +#: ../lib/modules/account.inc:126 ../lib/modules/posixGroup.inc:607 +#: ../lib/modules/posixAccount.inc:113 ../lib/modules/posixAccount.inc:115 +msgid "" +"You are using capital letters. This can cause problems because Windows is " +"not case-sensitive." +msgstr "" +"You are using capital letters. This can cause problems because Windows is " +"not case-sensitive." + +#: ../lib/lists.inc:1073 +#, php-format +msgid "" +"You can download your PDF files {link=%s}{color=#d2131a}here{endcolor}" +"{endlink}." +msgstr "" +"You can download your PDF files {link=%s}{color=#d2131a}here{endcolor}" +"{endlink}." + +#: ../templates/initsuff.php:181 +msgid "" +"You can setup the LDAP suffixes for all account types in your LAM server " +"profile on tab \"Account types\"." +msgstr "" +"You can setup the LDAP suffixes for all account types in your LAM server " +"profile on tab \"Account types\"." + +#: ../help/help.inc:110 +msgid "" +"You can specify if LAM allows full write access, password changes or only " +"read access." +msgstr "" +"You can specify if LAM allows full write access, password changes or only " +"read access." + +#: ../lib/modules/windowsUser.inc:104 ../lib/modules/windowsUser.inc:125 +#: ../lib/modules/windowsUser.inc:141 ../lib/modules/windowsUser.inc:206 +#: ../lib/modules/windowsUser.inc:211 ../lib/modules/windowsUser.inc:228 +#: ../lib/modules/windowsUser.inc:233 ../lib/modules/windowsUser.inc:249 +#: ../lib/modules/inetOrgPerson.inc:721 ../lib/modules/inetOrgPerson.inc:726 +msgid "" +"You can use \"$user\", \"$firstname\" and \"$lastname\" as wildcards for " +"user name, first and last name." +msgstr "" +"You can use \"$user\", \"$firstname\" and \"$lastname\" as wildcards for " +"user name, first and last name." + +#: ../help/help.inc:172 +msgid "" +"You can use the wildcard @@LOGIN_DN@@ which will be substituted with the DN " +"of the user who is currently logged in to LAM." +msgstr "" +"You can use the wildcard @@LOGIN_DN@@ which will be substituted with the DN " +"of the user who is currently logged in to LAM." + +#: ../lib/modules/zarafaDynamicGroup.inc:84 +#: ../lib/modules/zarafaContact.inc:76 ../lib/modules/zarafaGroup.inc:90 +#: ../lib/modules/zarafaAddressList.inc:72 ../lib/modules/zarafaUser.inc:85 +msgid "You can use this to temporarily deactivate the Zarafa extension." +msgstr "You can use this to temporarily deactivate the Zarafa extension." + +#: ../lib/modules/passwordSelfReset.inc:126 +#: ../lib/modules/passwordSelfReset.inc:136 ../help/help.inc:253 +msgid "" +"You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. " +"@@uid@@ for the user name)." +msgstr "" +"You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. " +"@@uid@@ for the user name)." + +#: ../lib/modules/customScripts.inc:65 ../lib/modules/customScripts.inc:78 +msgid "" +"You can use wildcards in the format $wildcard$ which are replaced by the " +"LDAP attribute with the same name. For multi-value attributes the values " +"will be separated by commas." +msgstr "" +"You can use wildcards in the format $wildcard$ which are replaced by the " +"LDAP attribute with the same name. For multi-value attributes the values " +"will be separated by commas." + +#: ../lib/modules/zarafaContact.inc:191 +msgid "" +"You cannot add the Zarafa and Zarafa contact extension at the same time." +msgstr "" +"You cannot add the Zarafa and Zarafa contact extension at the same time." + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:52 +msgid "You cannot perform updates while server is in read-only mode" +msgstr "You cannot perform updates while server is in read-only mode" + +#: ../templates/3rdParty/pla/htdocs/rename.php:26 +msgid "You cannot rename an entry which has child entries." +msgstr "You cannot rename an entry which has child entries." + +#: ../templates/config/confmain.php:505 +msgid "" +"You cannot use SSL and TLS encryption at the same time. Please use either " +"\"ldaps://\" or TLS." +msgstr "" +"You cannot use SSL and TLS encryption at the same time. Please use either " +"\"ldaps://\" or TLS." + +#: ../templates/3rdParty/pla/htdocs/rename.php:32 +msgid "You did not change the RDN" +msgstr "You did not change the RDN" + +#: ../templates/tests/schemaTest.php:61 +msgid "" +"You do not have the required access rights or the LDAP schema is not " +"published by your server." +msgstr "" +"You do not have the required access rights or the LDAP schema is not " +"published by your server." + +#: ../lib/modules/dhcp_settings.inc:322 ../lib/modules/dhcp_settings.inc:323 +msgid "You entered one or more invalid DNS servers." +msgstr "You entered one or more invalid DNS servers." + +#: ../templates/3rdParty/pla/lib/Template.php:417 +#: ../templates/3rdParty/pla/lib/Template.php:504 +msgid "You left the attribute value blank. Please go back and try again." +msgstr "You left the attribute value blank. Please go back and try again." + +#: ../templates/3rdParty/pla/htdocs/create.php:51 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:45 +#, php-format +msgid "You left the value blank for required attribute (%s)." +msgstr "You left the value blank for required attribute (%s)." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:171 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:209 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:133 +msgid "You made no changes" +msgstr "You made no changes" + +#: ../templates/config/mainmanage.php:172 +#: ../templates/config/mainmanage.php:178 +#: ../templates/config/mainmanage.php:190 +msgid "You might need to restart your webserver for changes to take effect." +msgstr "You might need to restart your webserver for changes to take effect." + +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#, php-format +msgid "You might want to use %s instead of %s." +msgstr "You might want to use %s instead of %s." + +#: ../templates/3rdParty/pla/lib/import_functions.php:95 +msgid "You must either upload a file or provide an import in the text box." +msgstr "You must either upload a file or provide an import in the text box." + +#: ../lib/modules/groupOfNames.inc:210 ../lib/modules/groupOfNames.inc:211 +msgid "You need to add at least one member to this group." +msgstr "You need to add at least one member to this group." + +#: ../lib/modules/passwordSelfReset.inc:229 +msgid "You specified an answer but no security question." +msgstr "You specified an answer but no security question." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1136 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "You will be prompted to confirm this decision" +msgstr "You will be prompted to confirm this decision" + +#: ../lib/modules/imapAccess.inc:184 +msgid "Your IMAP domains and email address domain do not match." +msgstr "Your IMAP domains and email address domain do not match." + +#: ../templates/tests/lamdaemonTest.php:234 +#, php-format +msgid "" +"Your LAM admin user (%s) must be a valid Unix account to work with lamdaemon!" +msgstr "" +"Your LAM admin user (%s) must be a valid Unix account to work with lamdaemon!" + +#: ../lib/lamdaemon.inc:61 ../lib/lamdaemon.inc:66 +msgid "" +"Your LAM admin user must be a valid Unix account to work with lamdaemon!" +msgstr "" +"Your LAM admin user must be a valid Unix account to work with lamdaemon!" + +#: ../lib/modules/imapAccess.inc:186 +msgid "Your LAM login password was not accepted by the IMAP server." +msgstr "Your LAM login password was not accepted by the IMAP server." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:125 +msgid "" +"Your PHP configuration has disabled file uploads. Please check php.ini " +"before proceeding." +msgstr "" +"Your PHP configuration has disabled file uploads. Please check php.ini " +"before proceeding." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:16 +msgid "" +"Your PHP.INI does not have file_uploads = ON. Please enable file uploads in " +"PHP." +msgstr "" +"Your PHP.INI does not have file_uploads = ON. Please enable file uploads in " +"PHP." + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:404 +msgid "" +"Your changes cannot be saved until you make the file writable for the " +"webserver user." +msgstr "" +"Your changes cannot be saved until you make the file writable for the " +"webserver user." + +#: ../lib/modules/selfRegistration.inc:721 +msgid "" +"Your new account was created but post processing failed. Please contact your " +"local administrator." +msgstr "" +"Your new account was created but post processing failed. Please contact your " +"local administrator." + +#: ../lib/modules/selfRegistration.inc:718 +msgid "" +"Your new account was successfully created. Please return to login to change " +"your user data." +msgstr "" +"Your new account was successfully created. Please return to login to change " +"your user data." + +#: ../lib/account.inc:1202 ../lib/modules/windowsUser.inc:1870 +msgid "" +"Your password does not meet the password strength qualifications. Please " +"retry with another one." +msgstr "" +"Your password does not meet the password strength qualifications. Please " +"retry with another one." + +#: ../lib/modules/passwordSelfReset.inc:563 +msgid "Your password was changed to @@newPassword@@." +msgstr "Your password was changed to @@newPassword@@." + +#: ../lib/security.inc:192 +msgid "Your session expired, click here to go back to the login page." +msgstr "Your session expired, click here to go back to the login page." + +#: ../templates/login.php:296 +#: ../templates/selfService/selfServiceLogin.php:113 +msgid "Your session expired, please log in again." +msgstr "Your session expired, please log in again." + +#: ../templates/login.php:301 ../templates/login.php:306 +#: ../templates/login.php:315 +msgid "Your settings were successfully saved." +msgstr "Your settings were successfully saved." + +#: ../lib/modules/windowsUser.inc:346 ../lib/modules/inetOrgPerson.inc:501 +#: ../lib/modules/inetOrgPerson.inc:533 +msgid "YourCompany" +msgstr "YourCompany" + +#: ../lib/modules/zarafaGroup.inc:56 ../lib/modules/zarafaUser.inc:61 +#: ../lib/modules/zarafaServer.inc:56 +msgid "Zarafa" +msgstr "Zarafa" + +#: ../lib/modules/zarafaAddressList.inc:51 +msgid "Zarafa address list" +msgstr "Zarafa address list" + +#: ../lib/types/zarafaAddressListType.inc:53 +#: ../lib/types/zarafaAddressListType.inc:62 +msgid "Zarafa address lists" +msgstr "Zarafa address lists" + +#: ../lib/modules/zarafaContact.inc:56 +msgid "Zarafa contact" +msgstr "Zarafa contact" + +#: ../lib/modules/zarafaDynamicGroup.inc:51 +msgid "Zarafa dynamic group" +msgstr "Zarafa dynamic group" + +#: ../lib/types/zarafaDynamicGroupType.inc:53 +#: ../lib/types/zarafaDynamicGroupType.inc:62 +msgid "Zarafa dynamic groups" +msgstr "Zarafa dynamic groups" + +#: ../lib/modules/zarafaDynamicGroup.inc:95 +#: ../lib/modules/zarafaDynamicGroup.inc:183 +#: ../lib/modules/zarafaContact.inc:106 ../lib/modules/zarafaContact.inc:123 +#: ../lib/modules/zarafaGroup.inc:112 ../lib/modules/zarafaGroup.inc:127 +#: ../lib/modules/zarafaAddressList.inc:83 +#: ../lib/modules/zarafaAddressList.inc:156 ../lib/modules/zarafaUser.inc:171 +#: ../lib/modules/zarafaUser.inc:394 ../lib/modules/zarafaUser.inc:1773 +#: ../lib/modules/zarafaServer.inc:92 ../lib/modules/zarafaServer.inc:153 +msgid "Zarafa schema" +msgstr "Zarafa schema" + +#: ../lib/modules/zarafaUser.inc:160 ../lib/modules/zarafaUser.inc:164 +msgid "Zarafa will store the user's archives on these servers." +msgstr "Zarafa will store the user's archives on these servers." + +#: ../lib/types/bind.inc:78 ../lib/modules/ddns.inc:102 +#: ../lib/modules/ddns.inc:113 ../lib/modules/ddns.inc:128 +#: ../lib/modules/ddns.inc:394 ../lib/modules/ddns.inc:425 +msgid "Zone name" +msgstr "Zone name" + +#: ../lib/modules/ddns.inc:103 +msgid "Zone name for the DNS server (e.g. company.local)." +msgstr "Zone name for the DNS server (e.g. company.local)." + +#: ../lib/modules/sambaSamAccount.inc:496 ../lib/modules/windowsUser.inc:438 +msgid "\\\\server\\homes\\smiller" +msgstr "\\\\server\\homes\\smiller" + +#: ../lib/modules/sambaSamAccount.inc:504 ../lib/modules/windowsUser.inc:420 +msgid "\\\\server\\profiles\\smiller" +msgstr "\\\\server\\profiles\\smiller" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "add value" +msgstr "add value" + +#: ../lib/modules/zarafaDynamicGroup.inc:118 ../lib/modules/posixGroup.inc:461 +#: ../lib/modules/zarafaAddressList.inc:106 ../lib/modules/pykotaGroup.inc:150 +#: ../lib/modules/pykotaGroup.inc:159 ../lib/modules/nisnetgroup.inc:114 +#: ../lib/modules/organizationalRole.inc:116 +#: ../lib/modules/windowsGroup.inc:237 ../lib/modules/groupOfNames.inc:128 +msgid "adminstrators" +msgstr "adminstrators" + +#: ../templates/config/mainmanage.php:394 +#: ../templates/config/mainmanage.php:430 +msgid "all" +msgstr "all" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:112 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:95 +msgid "attribute deleted" +msgstr "attribute deleted" + +#: ../lib/modules/sudoRole.inc:148 +msgid "backupRootFileSystem" +msgstr "backupRootFileSystem" + +#: ../lib/modules/pykotaBillingCode.inc:103 +msgid "billingCode01" +msgstr "billingCode01" + +#: ../templates/3rdParty/pla/lib/functions.php:2298 +msgid "browse" +msgstr "browse" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "bytes" +msgstr "bytes" + +#: ../templates/schema/schema.php:220 +msgid "character" +msgstr "character" + +#: ../templates/schema/schema.php:219 +msgid "characters" +msgstr "characters" + +#: ../lib/modules/freeRadius.inc:179 +msgid "company.com" +msgstr "company.com" + +#: ../templates/3rdParty/pla/lib/PageRender.php:619 +#: ../templates/3rdParty/pla/lib/PageRender.php:988 +msgid "confirm" +msgstr "confirm" + +#: ../help/help.inc:82 +msgid "dc=yourcompany,dc=com" +msgstr "dc=yourcompany,dc=com" + +#: ../templates/config/mainmanage.php:429 ../lib/modules/ppolicyUser.inc:122 +msgid "default" +msgstr "default" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:205 +msgid "delete" +msgstr "delete" + +#: ../templates/3rdParty/pla/lib/PageRender.php:677 +msgid "delete attribute" +msgstr "delete attribute" + +#: ../lib/modules/sambaSamAccount.inc:1538 +#: ../lib/modules/sambaSamAccount.inc:1945 ../lib/modules/zarafaUser.inc:619 +#: ../lib/modules/zarafaUser.inc:1285 ../lib/modules/zarafaUser.inc:1326 +msgid "disabled" +msgstr "disabled" + +#: ../lib/modules/sambaSamAccount.inc:1549 +#: ../lib/modules/sambaSamAccount.inc:1956 +msgid "disconnect" +msgstr "disconnect" + +#: ../lib/modules/windowsUser.inc:468 ../lib/modules/windowsGroup.inc:245 +msgid "domain" +msgstr "domain" + +#: ../templates/3rdParty/pla/lib/PageRender.php:664 +msgid "download value" +msgstr "download value" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:206 +msgid "edit" +msgstr "edit" + +#: ../lib/modules/zarafaUser.inc:619 ../lib/modules/zarafaUser.inc:1280 +#: ../lib/modules/zarafaUser.inc:1326 +msgid "enabled" +msgstr "enabled" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:481 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:307 +msgid "export" +msgstr "export" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:123 +msgid "false" +msgstr "false" + +#: ../lib/modules/ppolicy.inc:37 +msgid "force" +msgstr "force" + +#: ../lib/modules/sambaSamAccount.inc:1557 +#: ../lib/modules/sambaSamAccount.inc:1964 +msgid "from any client" +msgstr "from any client" + +#: ../lib/modules/sambaSamAccount.inc:1558 +#: ../lib/modules/sambaSamAccount.inc:1965 +msgid "from previous client only" +msgstr "from previous client only" + +#: ../lib/modules/posixAccount.inc:306 ../lib/modules/posixAccount.inc:366 +#: ../lib/modules/nisnetgroup.inc:128 ../lib/modules/groupOfNamesUser.inc:73 +msgid "group01,group02" +msgstr "group01,group02" + +#: ../lib/modules/freeRadius.inc:187 +msgid "group01;group02" +msgstr "group01;group02" + +#: ../lib/modules/zarafaDynamicGroup.inc:132 +#: ../lib/modules/zarafaGroup.inc:164 +msgid "group1@company.com,group2@company.com" +msgstr "group1@company.com,group2@company.com" + +#: ../lib/modules/zarafaDynamicGroup.inc:126 +#: ../lib/modules/zarafaGroup.inc:172 ../lib/modules/windowsGroup.inc:221 +msgid "group@company.com" +msgstr "group@company.com" + +#: ../templates/3rdParty/pla/lib/PageRender.php:471 +msgid "hint" +msgstr "hint" + +#: ../lib/modules/quota.inc:198 ../lib/modules/quota.inc:200 +msgid "hours" +msgstr "hours" + +#: ../lib/modules/windowsUser.inc:376 ../lib/modules/windowsUser.inc:382 +#: ../lib/modules/inetOrgPerson.inc:469 +msgid "http://www.company.com" +msgstr "http://www.company.com" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:294 +msgid "import" +msgstr "import" + +#: ../lib/modules/sambaSamAccount.inc:1542 +#: ../lib/modules/sambaSamAccount.inc:1949 +msgid "input off, notify off" +msgstr "input off, notify off" + +#: ../lib/modules/sambaSamAccount.inc:1541 +#: ../lib/modules/sambaSamAccount.inc:1948 +msgid "input off, notify on" +msgstr "input off, notify on" + +#: ../lib/modules/sambaSamAccount.inc:1540 +#: ../lib/modules/sambaSamAccount.inc:1947 +msgid "input on, notify off" +msgstr "input on, notify off" + +#: ../lib/modules/sambaSamAccount.inc:1539 +#: ../lib/modules/sambaSamAccount.inc:1946 +msgid "input on, notify on" +msgstr "input on, notify on" + +#: ../help/help.inc:64 +msgid "" +"ldap://localhost:389 connects to localhost using a standard LDAP connection " +"on port 389" +msgstr "" +"ldap://localhost:389 connects to localhost using a standard LDAP connection " +"on port 389" + +#: ../help/help.inc:66 +msgid "" +"ldaps://ldap.domain.com connects to ldap.domain.com using an encrypted LDAP " +"connection." +msgstr "" +"ldaps://ldap.domain.com connects to ldap.domain.com using an encrypted LDAP " +"connection." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:100 +msgid "list" +msgstr "list" + +#: ../templates/3rdParty/pla/lib/config_default.php:494 +#: ../templates/3rdParty/pla/lib/ds.php:318 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:529 +msgid "login" +msgstr "login" + +#: ../lib/modules/posixAccount.inc:391 +msgid "machines" +msgstr "machines" + +#: ../lib/modules/inetLocalMailRecipient.inc:114 +msgid "mail.yourdomain.org" +msgstr "mail.yourdomain.org" + +#: ../lib/modules/sambaSamAccount.inc:415 +#: ../lib/modules/sambaSamAccount.inc:539 +msgid "mydomain" +msgstr "mydomain" + +#: ../lib/modules/sambaSamAccount.inc:472 +msgid "mygroup" +msgstr "mygroup" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:504 +msgid "new" +msgstr "new" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:454 +#: ../lib/modules/zarafaDynamicGroup.inc:457 +#: ../lib/modules/zarafaContact.inc:568 ../lib/modules/zarafaGroup.inc:651 +#: ../lib/modules/zarafaGroup.inc:658 ../lib/modules/zarafaGroup.inc:661 +#: ../lib/modules/zarafaAddressList.inc:336 +#: ../lib/modules/zarafaAddressList.inc:339 +#: ../lib/modules/sambaSamAccount.inc:583 +#: ../lib/modules/sambaSamAccount.inc:1913 +#: ../lib/modules/sambaSamAccount.inc:1921 +#: ../lib/modules/sambaSamAccount.inc:1931 +#: ../lib/modules/sambaSamAccount.inc:1936 +#: ../lib/modules/sambaSamAccount.inc:1941 ../lib/modules/zarafaUser.inc:602 +#: ../lib/modules/zarafaUser.inc:1238 ../lib/modules/zarafaUser.inc:1253 +#: ../lib/modules/zarafaUser.inc:1264 ../lib/modules/zarafaUser.inc:1270 +#: ../lib/modules/windowsUser.inc:388 ../lib/modules/windowsUser.inc:389 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:396 +#: ../lib/modules/windowsUser.inc:397 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:404 ../lib/modules/windowsUser.inc:405 +#: ../lib/modules/windowsUser.inc:406 ../lib/modules/windowsUser.inc:412 +#: ../lib/modules/windowsUser.inc:413 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:1173 ../lib/modules/windowsUser.inc:1607 +#: ../lib/modules/windowsUser.inc:1612 ../lib/modules/windowsUser.inc:1617 +#: ../lib/modules/windowsUser.inc:1622 ../lib/modules/ppolicy.inc:35 +#: ../lib/modules/ppolicy.inc:481 ../lib/modules/ppolicy.inc:491 +#: ../lib/modules/ppolicy.inc:496 ../lib/modules/ppolicy.inc:503 +#: ../lib/modules/ppolicy.inc:506 ../lib/modules/generalInformation.inc:100 +#: ../lib/modules/zarafaServer.inc:358 ../lib/modules/customFields.inc:2890 +#: ../lib/modules/fixed_ip.inc:752 +msgid "no" +msgstr "no" + +#: ../templates/3rdParty/pla/lib/functions.php:1902 +msgid "no description available" +msgstr "no description available" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:68 +msgid "no entries" +msgstr "no entries" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:84 +msgid "no new attributes available for this entry" +msgstr "no new attributes available for this entry" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:135 +msgid "no new binary attributes available for this entry" +msgstr "no new binary attributes available for this entry" + +#: ../templates/schema/schema.php:160 ../templates/schema/schema.php:229 +#: ../templates/schema/schema.php:240 ../templates/schema/schema.php:289 +#: ../templates/schema/schema.php:355 ../templates/schema/schema.php:370 +#: ../templates/schema/schema.php:404 ../templates/schema/schema.php:426 +#: ../templates/3rdParty/pla/lib/functions.php:2612 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1573 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1581 +msgid "none" +msgstr "none" + +#: ../templates/3rdParty/pla/lib/PageRender.php:1109 +msgid "none, remove value" +msgstr "none, remove value" + +#: ../templates/schema/schema.php:216 +msgid "not applicable" +msgstr "not applicable" + +#: ../templates/schema/schema.php:167 ../templates/schema/schema.php:172 +#: ../templates/schema/schema.php:177 ../templates/schema/schema.php:210 +msgid "not specified" +msgstr "not specified" + +#: ../help/help.inc:76 +msgid "" +"ou=People,dc=yourcompany,dc=com will read and store all accounts in this " +"subtree." +msgstr "" +"ou=People,dc=yourcompany,dc=com will read and store all accounts in this " +"subtree." + +#: ../lib/modules/eduPerson.inc:202 ../lib/modules/eduPerson.inc:208 +#: ../lib/modules/eduPerson.inc:214 +msgid "ou=accounts,dc=yourdomain,dc=org" +msgstr "ou=accounts,dc=yourdomain,dc=org" + +#: ../lib/modules/posixAccount.inc:377 +msgid "pc01$" +msgstr "pc01$" + +#: ../lib/modules/posixAccount.inc:400 +msgid "pc01,Room 2.34" +msgstr "pc01,Room 2.34" + +#: ../lib/modules/hostObject.inc:93 +msgid "pc01,pc02" +msgstr "pc01,pc02" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +msgid "pixels" +msgstr "pixels" + +#: ../lib/modules/pykotaPrinter.inc:148 +msgid "printer01" +msgstr "printer01" + +#: ../lib/modules/pykotaPrinter.inc:188 +msgid "printergroup1" +msgstr "printergroup1" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:54 +msgid "read only" +msgstr "read only" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:251 +msgid "refresh" +msgstr "refresh" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2126 +msgid "rename" +msgstr "rename" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 ../lib/html.inc:797 +#: ../lib/html.inc:1708 ../lib/html.inc:2285 +msgid "required" +msgstr "required" + +#: ../lib/modules/sambaSamAccount.inc:1550 +#: ../lib/modules/sambaSamAccount.inc:1957 +msgid "reset" +msgstr "reset" + +#: ../lib/modules/organizationalRoleUser.inc:73 +msgid "role01,role02" +msgstr "role01,role02" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:237 +msgid "search" +msgstr "search" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:472 +msgid "seconds" +msgstr "seconds" + +#: ../lib/modules/mitKerberos.inc:244 ../lib/modules/asteriskAccount.inc:327 +#: ../lib/modules/posixGroup.inc:444 ../lib/modules/sambaSamAccount.inc:427 +#: ../lib/modules/posixAccount.inc:334 ../lib/modules/windowsUser.inc:274 +#: ../lib/modules/inetOrgPerson.inc:2054 +#: ../lib/modules/asteriskVoicemail.inc:167 +#: ../lib/modules/heimdalKerberos.inc:213 +msgid "secret" +msgstr "secret" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1263 +msgid "select the rdn attribute" +msgstr "select the rdn attribute" + +#: ../lib/modules/mitKerberos.inc:213 ../lib/modules/uidObject.inc:69 +#: ../lib/modules/posixAccount.inc:285 ../lib/modules/windowsUser.inc:266 +#: ../lib/modules/windowsUser.inc:451 ../lib/modules/windowsUser.inc:460 +#: ../lib/modules/pykotaUser.inc:192 ../lib/modules/pykotaUser.inc:210 +#: ../lib/modules/inetOrgPerson.inc:2045 +#: ../lib/modules/heimdalKerberos.inc:182 ../lib/modules/nisMailAlias.inc:110 +msgid "smiller" +msgstr "smiller" + +#: ../lib/modules/inetLocalMailRecipient.inc:102 +msgid "smiller@otherdomain.org" +msgstr "smiller@otherdomain.org" + +#: ../lib/modules/inetLocalMailRecipient.inc:108 +msgid "smiller@yourdomain.org" +msgstr "smiller@yourdomain.org" + +#: ../lib/modules/ldapPublicKey.inc:90 +msgid "ssh-dss 234234 user@host" +msgstr "ssh-dss 234234 user@host" + +#: ../templates/3rdParty/pla/lib/PageRender.php:882 +msgid "structural" +msgstr "structural" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:102 +msgid "table" +msgstr "table" + +#: ../lib/modules/asteriskExtension.inc:154 +msgid "test" +msgstr "test" + +#: ../lib/modules/asteriskExtension.inc:174 +msgid "test-start" +msgstr "test-start" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:122 +msgid "true" +msgstr "true" + +#: ../lib/modules/ipHost.inc:99 ../lib/modules/inetOrgPerson.inc:363 +#: ../lib/modules/aliasEntry.inc:71 ../lib/modules/qmailGroup.inc:281 +#: ../lib/modules/qmailGroup.inc:289 ../lib/modules/qmailGroup.inc:297 +msgid "uid=smiller,ou=People,dc=company,dc=com" +msgstr "uid=smiller,ou=People,dc=company,dc=com" + +#: ../templates/config/mainmanage.php:312 +msgid "use custom CA certificates" +msgstr "use custom CA certificates" + +#: ../templates/config/mainmanage.php:309 +msgid "use system certificates" +msgstr "use system certificates" + +#: ../lib/modules/posixGroup.inc:452 +msgid "user01,user02,user03" +msgstr "user01,user02,user03" + +#: ../lib/modules/qmailUser.inc:273 ../lib/modules/qmailUser.inc:279 +#: ../lib/modules/qmailUser.inc:301 ../lib/modules/eduPerson.inc:163 +#: ../lib/modules/windowsUser.inc:352 ../lib/modules/windowsUser.inc:358 +#: ../lib/modules/pykotaUser.inc:220 ../lib/modules/inetOrgPerson.inc:451 +#: ../lib/modules/kolabSharedFolder.inc:183 +#: ../lib/modules/asteriskVoicemail.inc:180 ../lib/modules/qmailGroup.inc:339 +#: ../lib/modules/qmailGroup.inc:347 ../lib/modules/qmailGroup.inc:355 +msgid "user@company.com" +msgstr "user@company.com" + +#: ../lib/modules/posixAccount.inc:299 +msgid "users" +msgstr "users" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:59 +msgid "view entries" +msgstr "view entries" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +msgid "with " +msgstr "with " + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:452 +#: ../lib/modules/zarafaDynamicGroup.inc:459 +#: ../lib/modules/zarafaContact.inc:570 ../lib/modules/zarafaGroup.inc:653 +#: ../lib/modules/zarafaGroup.inc:656 ../lib/modules/zarafaGroup.inc:663 +#: ../lib/modules/zarafaAddressList.inc:334 +#: ../lib/modules/zarafaAddressList.inc:341 +#: ../lib/modules/sambaSamAccount.inc:583 +#: ../lib/modules/sambaSamAccount.inc:1911 +#: ../lib/modules/sambaSamAccount.inc:1919 +#: ../lib/modules/sambaSamAccount.inc:1929 +#: ../lib/modules/sambaSamAccount.inc:1934 +#: ../lib/modules/sambaSamAccount.inc:1939 ../lib/modules/zarafaUser.inc:602 +#: ../lib/modules/zarafaUser.inc:1240 ../lib/modules/zarafaUser.inc:1256 +#: ../lib/modules/zarafaUser.inc:1266 ../lib/modules/zarafaUser.inc:1272 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:406 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:1173 ../lib/modules/windowsUser.inc:1512 +#: ../lib/modules/windowsUser.inc:1609 ../lib/modules/windowsUser.inc:1614 +#: ../lib/modules/windowsUser.inc:1619 ../lib/modules/windowsUser.inc:1624 +#: ../lib/modules/ppolicy.inc:36 ../lib/modules/ppolicy.inc:493 +#: ../lib/modules/ppolicy.inc:498 ../lib/modules/ppolicy.inc:501 +#: ../lib/modules/ppolicy.inc:508 ../lib/modules/inetOrgPerson.inc:525 +#: ../lib/modules/generalInformation.inc:102 +#: ../lib/modules/zarafaServer.inc:360 ../lib/modules/customFields.inc:2890 +#: ../lib/modules/fixed_ip.inc:750 +msgid "yes" +msgstr "yes" + +#~ msgid "Mycity" +#~ msgstr "Mycity" + +#~ msgid "BillingCode" +#~ msgstr "BillingCode" + +#, fuzzy +#~ msgid "The IP address \"%s\" is invalid." +#~ msgstr "The IP address \"%s\" is invalid." + +#, fuzzy +#~ msgid "" +#~ "You cannot add the Kolab group and shared folder extension at the same " +#~ "time." +#~ msgstr "" +#~ "You cannot add the Kolab group and shared folder extension at the same " +#~ "time." diff --git a/lam/locale/es_ES/LC_MESSAGES/messages.mo b/lam/locale/es_ES/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..83de114f Binary files /dev/null and b/lam/locale/es_ES/LC_MESSAGES/messages.mo differ diff --git a/lam/locale/es_ES/LC_MESSAGES/messages.po b/lam/locale/es_ES/LC_MESSAGES/messages.po new file mode 100644 index 00000000..0059568b --- /dev/null +++ b/lam/locale/es_ES/LC_MESSAGES/messages.po @@ -0,0 +1,17501 @@ +# LDAP Account Manager +# +# Translators: +# Hugo Florentino , 2011, 2012. +msgid "" +msgstr "" +"Project-Id-Version: LDAP Account Manager\n" +"Report-Msgid-Bugs-To: post@rolandgruber.de\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2014-05-31 19:54-0300\n" +"Last-Translator: Leandro Lattanzio \n" +"Language-Team: Spanish (Spain) (http://www.transifex.net/projects/p/lam/" +"language/es_ES/)\n" +"Language: es_ES\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.5\n" + +#: ../lib/modules/zarafaContact.inc:95 ../lib/modules/zarafaContact.inc:98 +#: ../lib/modules/zarafaContact.inc:101 ../lib/modules/zarafaContact.inc:126 +#: ../lib/modules/zarafaGroup.inc:97 ../lib/modules/zarafaGroup.inc:100 +#: ../lib/modules/zarafaGroup.inc:103 ../lib/modules/zarafaGroup.inc:130 +#: ../lib/modules/zarafaUser.inc:144 ../lib/modules/zarafaUser.inc:147 +#: ../lib/modules/zarafaUser.inc:150 ../lib/modules/zarafaUser.inc:1812 +msgid "\"Send as\" attribute" +msgstr "Atributo \"Enviar como\"" + +#: ../lib/modules/zarafaContact.inc:79 ../lib/modules/zarafaContact.inc:150 +#: ../lib/modules/zarafaContact.inc:173 ../lib/modules/zarafaContact.inc:187 +#: ../lib/modules/zarafaContact.inc:226 ../lib/modules/zarafaContact.inc:355 +#: ../lib/modules/zarafaContact.inc:565 ../lib/modules/zarafaGroup.inc:93 +#: ../lib/modules/zarafaGroup.inc:138 ../lib/modules/zarafaGroup.inc:188 +#: ../lib/modules/zarafaGroup.inc:206 ../lib/modules/zarafaGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:263 ../lib/modules/zarafaGroup.inc:415 +#: ../lib/modules/zarafaGroup.inc:650 ../lib/modules/zarafaUser.inc:104 +#: ../lib/modules/zarafaUser.inc:196 ../lib/modules/zarafaUser.inc:355 +#: ../lib/modules/zarafaUser.inc:382 ../lib/modules/zarafaUser.inc:419 +#: ../lib/modules/zarafaUser.inc:463 ../lib/modules/zarafaUser.inc:839 +#: ../lib/modules/zarafaUser.inc:1234 ../lib/modules/zarafaUser.inc:1465 +#: ../lib/modules/zarafaUser.inc:1793 +msgid "\"Send as\" privileges" +msgstr "Privilegios \"Enviar como\"" + +#: ../lib/modules/posixAccount.inc:519 +msgid "" +"$user and $group will be replaced with user name and primary group name." +msgstr "" +"$user y $group serán reemplazados con el nombre del usuario y el nombre del " +"grupo primario." + +#: ../lib/modules/nisnetgroup.inc:134 +msgid "(host1,user1,example.com);(host2,user2,example.com)" +msgstr "(equipo1,usuario1,ejemplo.com);(equipo2,usuario2,ejemplo.com)" + +#: ../lib/modules/qmailUser.inc:368 ../lib/modules/posixAccount.inc:312 +msgid "/home/smiller" +msgstr "/home/smiller" + +#: ../lib/modules/inetOrgPerson.inc:419 +#: ../lib/modules/asteriskVoicemail.inc:186 +msgid "123-123-1234" +msgstr "123-123-1234" + +#: ../lib/modules/inetOrgPerson.inc:435 +msgid "123-123-1235" +msgstr "123-123-1235" + +#: ../lib/modules/inetOrgPerson.inc:443 +msgid "123-123-1236" +msgstr "123-123-1236" + +#: ../lib/modules/windowsUser.inc:364 ../lib/modules/windowsUser.inc:370 +#: ../lib/modules/inetOrgPerson.inc:427 +msgid "123-124-1234" +msgstr "123-124-1234" + +#: ../lib/modules/windowsUser.inc:322 ../lib/modules/inetOrgPerson.inc:411 +msgid "12345" +msgstr "12345" + +#: ../lib/modules/dhcp_settings.inc:174 +msgid "" +"B-Node (0x01): Broadcast.
    The client tries to find other " +"workstations via broadcasting\n" +"(works only inside the same collision domain, viz. the same subnet).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"The client contacts a Netbios name server (NBNS) from Microsoft Windows Name " +"Service (WINS) for name resolution.

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"The node tries broadcasting first. If that fails then it tries WINS.

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"The node tries WINS first. If that fails it tries broadcasting.

    \n" +"\n" +"By default, the nodes are configured as H-Nodes which fits for small " +"networks. In large networks Point-to-Point (0x02) should be used." +msgstr "" +"Nodo-B (0x01): Difusión.
    El cliente intenta encontrar por " +"difusión otras estaciones de trabajo\n" +"(funciona solo dentro del mismo dominio de colisión, es decir, la misma " +"subred).

    \n" +"\n" +"Nodo-P (0x02): Punto a punto
    \n" +"El cliente contacta un servidor de nombres Netbios (NBNS) del Servicio de " +"Nombres de Microsoft Windows (WINS) para la resolución de nombres.

    \n" +"\n" +"Nodo-M (0x04): Mixto
    \n" +"El nodo intenta primero la difusión. Si esto falla, entonces intenta con " +"WINS.

    \n" +"\n" +"Nodo-H (0x08): Híbrido
    \n" +"El nodo intenta primero con WINS. Si esto falla, intenta la difusión.

    \n" +"\n" +"Por defecto, los nodos se configuran como Nodos-H, adecuados para pequeñas " +"redes. Para grandes redes debería utilizarse Punto a punto (0x02)." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:145 +#, php-format +msgid "Maximum length: %s characters" +msgstr "Longitud máxima: %s caracteres" + +#: ../lib/modules/bindDLZ.inc:492 +msgid "A CNAME record allows no other records." +msgstr "Un registro CNAME no permite otras entradas." + +#: ../lib/modules/bindDLZ.inc:526 +msgid "A NS record allows no other records except SOA/MX/A records." +msgstr "Un registro NS no permite otras entradas excepto registros SOA/MX/A." + +#: ../lib/modules/bindDLZ.inc:510 +msgid "A SOA record allows no other records except NS/MX/A records." +msgstr "Un registro SOA no permite otras entradas excepto registros NS/MX/A." + +#: ../lib/modules/bindDLZ.inc:511 +msgid "A SOA record requires that the host name is set to \"@\"." +msgstr "Un registro SOA requiere que el nombre de host esté seteado a \"@\"." + +#: ../lib/modules/selfRegistration.inc:631 +#: ../lib/modules/passwordSelfReset.inc:1590 +msgid "" +"A confirmation mail was sent. Please click on the link in the mail to " +"proceed." +msgstr "" +"Se envió un correo de confirmación. Por favor, haga clic en el enlace del " +"correo para proceder." + +#: ../lib/modules/device.inc:82 +msgid "A description for this device." +msgstr "Una descripción para este dispositivo." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +msgid "A list of attributes to display in the results (comma-separated)" +msgstr "Lista de atributos a mostrar en los resultados (delimitados por comas)" + +#: ../lib/modules/sudoRole.inc:95 ../lib/modules/sudoRole.inc:124 +msgid "A list of options (e.g. !authenticate)." +msgstr "Una listado de opciones (p.ej. !authenticate)." + +#: ../templates/massBuildAccounts.php:135 +msgid "A required column is missing in your CSV file." +msgstr "En su archivo CSV falta una columna requerida." + +#: ../lib/modules/bindDLZ.inc:165 ../lib/modules/bindDLZ.inc:169 +msgid "A server name for this service (e.g. \"ldap.example.com.\")." +msgstr "Un nombre de servidor para este servicio (p.ej. ldap.ejemplo.com)." + +#: ../lib/modules/bindDLZ.inc:157 ../lib/modules/bindDLZ.inc:161 +msgid "A text value for this host." +msgstr "Un valor de texto para este host." + +#: ../lib/modules/kolabUser.inc:133 +msgid "" +"A user may define who is allowed to act on behalf of herself. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"Un usuario puede definir quién está autorizado a actuar en su nombre. Esta " +"propiedad se comprueba al usar el demonio SMTP de Kolab (Postfix) para " +"enviar mensajes de correo." + +#: ../templates/3rdParty/pla/lib/import_functions.php:593 +msgid "A valid deleteoldrdn attribute should be specified" +msgstr "Debe especificarse un atributo deleteoldrdn válido" + +#: ../templates/3rdParty/pla/lib/import_functions.php:237 +msgid "A valid dn line is required" +msgstr "Se requiere una línea dn válida" + +#: ../templates/3rdParty/pla/lib/import_functions.php:596 +msgid "A valid newrdn attribute should be specified" +msgstr "Debe especificarse un atributo newrdn válido" + +#: ../templates/3rdParty/pla/lib/import_functions.php:587 +msgid "A valid newsuperior attribute should be specified" +msgstr "Debería especificarse un atributo newsuperior válido" + +#: ../lib/modules/bindDLZ.inc:89 ../lib/modules/bindDLZ.inc:98 +#: ../lib/modules/bindDLZ.inc:248 ../lib/modules/bindDLZ.inc:254 +#: ../lib/modules/bindDLZ.inc:472 +msgid "A/AAAA record" +msgstr "Registro A/AAAA" + +#: ../lib/modules/bindDLZ.inc:411 ../lib/modules/bindDLZ.inc:431 +#: ../lib/modules/bindDLZ.inc:1469 +msgid "A/AAAA records" +msgstr "Registros A/AAAA" + +#: ../lib/modules/asteriskAccount.inc:131 +#: ../lib/modules/asteriskAccount.inc:271 +#: ../lib/modules/asteriskAccount.inc:347 +#: ../lib/modules/asteriskAccount.inc:610 +#: ../lib/modules/asteriskAccount.inc:987 +#: ../lib/modules/asteriskAccount.inc:1243 +msgid "AMA flags" +msgstr "Banderas AMA" + +#: ../templates/serverInfo.php:342 +msgid "Abandon" +msgstr "Abandonar" + +#: ../templates/lists/changePassword.php:714 +msgid "Aborted password change." +msgstr "Cambio de contraseña cancelado." + +#: ../lib/modules/sambaSamAccount.inc:568 +msgid "Abu Dhabi, Muscat, Baku" +msgstr "Abu Dabi, Mascate, Bakú" + +#: ../templates/config/confmain.php:264 ../help/help.inc:109 +msgid "Access level" +msgstr "Nivel de acceso" + +#: ../lib/modules/account.inc:65 +msgid "Account" +msgstr "Cuenta" + +#: ../templates/massBuildAccounts.php:201 ../lib/modules/kolabGroup.inc:178 +#: ../lib/modules/kolabGroup.inc:180 ../lib/modules/kolabGroup.inc:182 +#: ../lib/modules/kolabGroup.inc:184 ../lib/modules/pykotaPrinter.inc:210 +#: ../lib/modules/pykotaPrinter.inc:212 ../lib/modules/pykotaPrinter.inc:214 +#: ../lib/modules/pykotaPrinter.inc:216 ../lib/modules/pykotaPrinter.inc:218 +#: ../lib/modules/pykotaPrinter.inc:219 ../lib/modules/pykotaPrinter.inc:220 +#: ../lib/modules/mitKerberos.inc:290 ../lib/modules/mitKerberos.inc:291 +#: ../lib/modules/mitKerberos.inc:292 ../lib/modules/mitKerberos.inc:294 +#: ../lib/modules/mitKerberos.inc:296 ../lib/modules/mitKerberos.inc:297 +#: ../lib/modules/zarafaDynamicGroup.inc:197 +#: ../lib/modules/zarafaDynamicGroup.inc:199 +#: ../lib/modules/zarafaDynamicGroup.inc:201 +#: ../lib/modules/zarafaDynamicGroup.inc:203 +#: ../lib/modules/zarafaDynamicGroup.inc:204 +#: ../lib/modules/zarafaDynamicGroup.inc:205 ../lib/modules/ipHost.inc:116 +#: ../lib/modules/ipHost.inc:117 ../lib/modules/asteriskAccount.inc:558 +#: ../lib/modules/asteriskAccount.inc:561 +#: ../lib/modules/asteriskAccount.inc:564 +#: ../lib/modules/asteriskAccount.inc:567 +#: ../lib/modules/asteriskAccount.inc:569 +#: ../lib/modules/asteriskAccount.inc:571 +#: ../lib/modules/asteriskAccount.inc:573 +#: ../lib/modules/asteriskAccount.inc:575 +#: ../lib/modules/asteriskAccount.inc:577 ../lib/modules/account.inc:125 +#: ../lib/modules/ieee802device.inc:96 ../lib/modules/puppetClient.inc:185 +#: ../lib/modules/puppetClient.inc:187 ../lib/modules/puppetClient.inc:189 +#: ../lib/modules/puppetClient.inc:190 ../lib/modules/qmailUser.inc:449 +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:453 +#: ../lib/modules/qmailUser.inc:454 ../lib/modules/qmailUser.inc:455 +#: ../lib/modules/qmailUser.inc:457 ../lib/modules/qmailUser.inc:459 +#: ../lib/modules/qmailUser.inc:461 ../lib/modules/qmailUser.inc:464 +#: ../lib/modules/qmailUser.inc:467 ../lib/modules/qmailUser.inc:469 +#: ../lib/modules/qmailUser.inc:470 ../lib/modules/qmailUser.inc:471 +#: ../lib/modules/zarafaContact.inc:186 ../lib/modules/zarafaContact.inc:188 +#: ../lib/modules/zarafaContact.inc:189 ../lib/modules/zarafaContact.inc:190 +#: ../lib/modules/zarafaContact.inc:191 ../lib/modules/windowsHost.inc:132 +#: ../lib/modules/posixGroup.inc:606 ../lib/modules/posixGroup.inc:610 +#: ../lib/modules/posixGroup.inc:611 ../lib/modules/zarafaGroup.inc:216 +#: ../lib/modules/zarafaGroup.inc:218 ../lib/modules/zarafaGroup.inc:219 +#: ../lib/modules/zarafaGroup.inc:220 ../lib/modules/zarafaGroup.inc:221 +#: ../lib/modules/zarafaGroup.inc:223 ../lib/modules/device.inc:141 +#: ../lib/modules/device.inc:142 ../lib/modules/dhcp_settings.inc:321 +#: ../lib/modules/dhcp_settings.inc:323 ../lib/modules/dhcp_settings.inc:325 +#: ../lib/modules/dhcp_settings.inc:327 ../lib/modules/dhcp_settings.inc:329 +#: ../lib/modules/dhcp_settings.inc:330 ../lib/modules/dhcp_settings.inc:331 +#: ../lib/modules/dhcp_settings.inc:333 ../lib/modules/dhcp_settings.inc:335 +#: ../lib/modules/dhcp_settings.inc:339 ../lib/modules/eduPerson.inc:244 +#: ../lib/modules/eduPerson.inc:246 ../lib/modules/eduPerson.inc:248 +#: ../lib/modules/eduPerson.inc:250 ../lib/modules/eduPerson.inc:251 +#: ../lib/modules/eduPerson.inc:252 ../lib/modules/eduPerson.inc:253 +#: ../lib/modules/quota.inc:52 ../lib/modules/quota.inc:54 +#: ../lib/modules/quota.inc:56 ../lib/modules/quota.inc:58 +#: ../lib/modules/quota.inc:60 ../lib/modules/quota.inc:62 +#: ../lib/modules/quota.inc:63 ../lib/modules/zarafaAddressList.inc:170 +#: ../lib/modules/zarafaAddressList.inc:171 +#: ../lib/modules/zarafaAddressList.inc:172 ../lib/modules/pykotaGroup.inc:198 +#: ../lib/modules/pykotaGroup.inc:200 ../lib/modules/pykotaGroup.inc:202 +#: ../lib/modules/pykotaGroup.inc:204 ../lib/modules/pykotaGroup.inc:205 +#: ../lib/modules/sambaSamAccount.inc:96 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:102 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:107 +#: ../lib/modules/sambaSamAccount.inc:108 +#: ../lib/modules/sambaSamAccount.inc:109 +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 +#: ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/sambaSamAccount.inc:117 +#: ../lib/modules/sambaSamAccount.inc:118 +#: ../lib/modules/sambaSamAccount.inc:120 +#: ../lib/modules/sambaSamAccount.inc:121 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/posixAccount.inc:107 ../lib/modules/posixAccount.inc:111 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/posixAccount.inc:124 +#: ../lib/modules/posixAccount.inc:126 ../lib/modules/posixAccount.inc:127 +#: ../lib/modules/posixAccount.inc:128 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/zarafaUser.inc:409 ../lib/modules/zarafaUser.inc:411 +#: ../lib/modules/zarafaUser.inc:413 ../lib/modules/zarafaUser.inc:414 +#: ../lib/modules/zarafaUser.inc:416 ../lib/modules/zarafaUser.inc:418 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/zarafaUser.inc:421 +#: ../lib/modules/zarafaUser.inc:422 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:424 ../lib/modules/zarafaUser.inc:425 +#: ../lib/modules/zarafaUser.inc:426 ../lib/modules/zarafaUser.inc:427 +#: ../lib/modules/ppolicyUser.inc:97 ../lib/modules/bindDLZ.inc:471 +#: ../lib/modules/bindDLZ.inc:473 ../lib/modules/bindDLZ.inc:475 +#: ../lib/modules/bindDLZ.inc:477 ../lib/modules/bindDLZ.inc:479 +#: ../lib/modules/bindDLZ.inc:481 ../lib/modules/bindDLZ.inc:483 +#: ../lib/modules/bindDLZ.inc:485 ../lib/modules/bindDLZ.inc:487 +#: ../lib/modules/bindDLZ.inc:489 ../lib/modules/bindDLZ.inc:491 +#: ../lib/modules/bindDLZ.inc:492 ../lib/modules/bindDLZ.inc:494 +#: ../lib/modules/bindDLZ.inc:496 ../lib/modules/bindDLZ.inc:498 +#: ../lib/modules/bindDLZ.inc:500 ../lib/modules/bindDLZ.inc:502 +#: ../lib/modules/bindDLZ.inc:504 ../lib/modules/bindDLZ.inc:506 +#: ../lib/modules/bindDLZ.inc:508 ../lib/modules/bindDLZ.inc:509 +#: ../lib/modules/bindDLZ.inc:510 ../lib/modules/bindDLZ.inc:511 +#: ../lib/modules/bindDLZ.inc:513 ../lib/modules/bindDLZ.inc:515 +#: ../lib/modules/bindDLZ.inc:517 ../lib/modules/bindDLZ.inc:519 +#: ../lib/modules/bindDLZ.inc:521 ../lib/modules/bindDLZ.inc:523 +#: ../lib/modules/bindDLZ.inc:525 ../lib/modules/bindDLZ.inc:526 +#: ../lib/modules/windowsUser.inc:590 ../lib/modules/windowsUser.inc:592 +#: ../lib/modules/windowsUser.inc:594 ../lib/modules/windowsUser.inc:596 +#: ../lib/modules/windowsUser.inc:598 ../lib/modules/windowsUser.inc:600 +#: ../lib/modules/windowsUser.inc:602 ../lib/modules/windowsUser.inc:604 +#: ../lib/modules/windowsUser.inc:606 ../lib/modules/windowsUser.inc:608 +#: ../lib/modules/windowsUser.inc:610 ../lib/modules/windowsUser.inc:612 +#: ../lib/modules/windowsUser.inc:614 ../lib/modules/windowsUser.inc:617 +#: ../lib/modules/windowsUser.inc:619 ../lib/modules/windowsUser.inc:621 +#: ../lib/modules/windowsUser.inc:1352 ../lib/modules/windowsUser.inc:1361 +#: ../lib/modules/windowsUser.inc:1370 ../lib/modules/windowsUser.inc:1381 +#: ../lib/modules/windowsUser.inc:1448 ../lib/modules/kolabUser.inc:246 +#: ../lib/modules/kolabUser.inc:248 ../lib/modules/kolabUser.inc:250 +#: ../lib/modules/kolabUser.inc:252 ../lib/modules/kolabUser.inc:254 +#: ../lib/modules/kolabUser.inc:256 ../lib/modules/kolabUser.inc:258 +#: ../lib/modules/ddns.inc:152 ../lib/modules/nisObject.inc:124 +#: ../lib/modules/sambaGroupMapping.inc:603 +#: ../lib/modules/sambaGroupMapping.inc:604 ../lib/modules/pykotaUser.inc:312 +#: ../lib/modules/pykotaUser.inc:314 ../lib/modules/pykotaUser.inc:316 +#: ../lib/modules/pykotaUser.inc:318 ../lib/modules/pykotaUser.inc:320 +#: ../lib/modules/pykotaUser.inc:321 ../lib/modules/pykotaUser.inc:323 +#: ../lib/modules/pykotaUser.inc:325 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/shadowAccount.inc:60 ../lib/modules/shadowAccount.inc:62 +#: ../lib/modules/shadowAccount.inc:64 ../lib/modules/shadowAccount.inc:66 +#: ../lib/modules/shadowAccount.inc:67 ../lib/modules/automount.inc:115 +#: ../lib/modules/sambaDomain.inc:209 ../lib/modules/sambaDomain.inc:211 +#: ../lib/modules/sambaDomain.inc:213 ../lib/modules/sambaDomain.inc:215 +#: ../lib/modules/sambaDomain.inc:217 ../lib/modules/sambaDomain.inc:219 +#: ../lib/modules/inetOrgPerson.inc:67 ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:71 ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:75 ../lib/modules/inetOrgPerson.inc:77 +#: ../lib/modules/inetOrgPerson.inc:80 ../lib/modules/inetOrgPerson.inc:82 +#: ../lib/modules/inetOrgPerson.inc:84 ../lib/modules/inetOrgPerson.inc:86 +#: ../lib/modules/inetOrgPerson.inc:88 ../lib/modules/inetOrgPerson.inc:90 +#: ../lib/modules/inetOrgPerson.inc:92 ../lib/modules/inetOrgPerson.inc:94 +#: ../lib/modules/inetOrgPerson.inc:96 ../lib/modules/inetOrgPerson.inc:97 +#: ../lib/modules/inetOrgPerson.inc:98 ../lib/modules/inetOrgPerson.inc:104 +#: ../lib/modules/inetOrgPerson.inc:105 ../lib/modules/inetOrgPerson.inc:106 +#: ../lib/modules/systemQuotas.inc:98 ../lib/modules/systemQuotas.inc:100 +#: ../lib/modules/systemQuotas.inc:102 ../lib/modules/systemQuotas.inc:104 +#: ../lib/modules/systemQuotas.inc:106 ../lib/modules/systemQuotas.inc:108 +#: ../lib/modules/systemQuotas.inc:110 ../lib/modules/freeRadius.inc:250 +#: ../lib/modules/freeRadius.inc:252 ../lib/modules/freeRadius.inc:254 +#: ../lib/modules/freeRadius.inc:256 ../lib/modules/freeRadius.inc:258 +#: ../lib/modules/freeRadius.inc:260 ../lib/modules/sudoRole.inc:270 +#: ../lib/modules/sudoRole.inc:272 ../lib/modules/sudoRole.inc:274 +#: ../lib/modules/sudoRole.inc:276 ../lib/modules/sudoRole.inc:278 +#: ../lib/modules/sudoRole.inc:280 ../lib/modules/sudoRole.inc:282 +#: ../lib/modules/sudoRole.inc:284 ../lib/modules/sudoRole.inc:286 +#: ../lib/modules/kolabSharedFolder.inc:251 +#: ../lib/modules/kolabSharedFolder.inc:253 +#: ../lib/modules/kolabSharedFolder.inc:255 +#: ../lib/modules/kolabSharedFolder.inc:256 +#: ../lib/modules/kolabSharedFolder.inc:258 +#: ../lib/modules/kolabSharedFolder.inc:260 +#: ../lib/modules/zarafaServer.inc:174 ../lib/modules/zarafaServer.inc:176 +#: ../lib/modules/zarafaServer.inc:178 ../lib/modules/zarafaServer.inc:179 +#: ../lib/modules/asteriskVoicemail.inc:212 +#: ../lib/modules/asteriskVoicemail.inc:216 +#: ../lib/modules/asteriskVoicemail.inc:219 +#: ../lib/modules/asteriskVoicemail.inc:221 +#: ../lib/modules/asteriskVoicemail.inc:223 +#: ../lib/modules/asteriskVoicemail.inc:225 +#: ../lib/modules/asteriskVoicemail.inc:227 +#: ../lib/modules/inetLocalMailRecipient.inc:131 +#: ../lib/modules/inetLocalMailRecipient.inc:133 +#: ../lib/modules/inetLocalMailRecipient.inc:135 +#: ../lib/modules/aliasEntry.inc:86 ../lib/modules/qmailGroup.inc:421 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:426 +#: ../lib/modules/qmailGroup.inc:428 ../lib/modules/qmailGroup.inc:430 +#: ../lib/modules/qmailGroup.inc:432 ../lib/modules/qmailGroup.inc:433 +#: ../lib/modules/qmailGroup.inc:434 ../lib/modules/qmailGroup.inc:435 +#: ../lib/modules/qmailGroup.inc:436 ../lib/modules/qmailGroup.inc:437 +#: ../lib/modules/authorizedServiceObject.inc:130 +#: ../lib/modules/passwordSelfReset.inc:233 +#: ../lib/modules/heimdalKerberos.inc:254 +#: ../lib/modules/heimdalKerberos.inc:255 +#: ../lib/modules/heimdalKerberos.inc:256 +#: ../lib/modules/heimdalKerberos.inc:258 +#: ../lib/modules/heimdalKerberos.inc:260 +#: ../lib/modules/pykotaBillingCode.inc:128 +#: ../lib/modules/pykotaBillingCode.inc:130 +#: ../lib/modules/windowsGroup.inc:284 ../lib/modules/windowsGroup.inc:286 +#: ../lib/modules/windowsGroup.inc:287 ../lib/modules/windowsGroup.inc:288 +#: ../lib/modules/windowsGroup.inc:290 ../lib/modules/nisMailAlias.inc:126 +#: ../lib/modules/nisMailAlias.inc:128 ../lib/modules/hostObject.inc:111 +#, php-format +msgid "Account %s:" +msgstr "Cuenta %s:" + +#: ../lib/types/asteriskExt.inc:95 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskAccount.inc:111 +#: ../lib/modules/asteriskAccount.inc:255 +#: ../lib/modules/asteriskAccount.inc:267 +#: ../lib/modules/asteriskAccount.inc:311 +#: ../lib/modules/asteriskAccount.inc:593 +#: ../lib/modules/asteriskAccount.inc:983 +#: ../lib/modules/asteriskExtension.inc:98 +#: ../lib/modules/asteriskExtension.inc:129 +#: ../lib/modules/asteriskExtension.inc:136 +#: ../lib/modules/asteriskExtension.inc:152 +#: ../lib/modules/asteriskExtension.inc:306 +#: ../lib/modules/asteriskExtension.inc:812 +#: ../lib/modules/asteriskVoicemail.inc:91 +#: ../lib/modules/asteriskVoicemail.inc:127 +#: ../lib/modules/asteriskVoicemail.inc:137 +#: ../lib/modules/asteriskVoicemail.inc:151 +#: ../lib/modules/asteriskVoicemail.inc:247 +#: ../lib/modules/asteriskVoicemail.inc:370 +msgid "Account context" +msgstr "Conexto de la cuenta" + +#: ../lib/modules/selfRegistration.inc:449 +msgid "Account creation" +msgstr "Creación de cuenta" + +#: ../lib/modules/selfRegistration.inc:231 +msgid "Account creation confirmation" +msgstr "Confirmación de creación de cuenta" + +#: ../templates/masscreate.php:125 +msgid "Account creation via file upload" +msgstr "Creación de cuenta por envío de archivo" + +#: ../lib/modules/posixAccount.inc:526 +msgid "Account deactivated" +msgstr "Cuenta desactivada" + +#: ../templates/lists/changePassword.php:275 +msgid "Account details" +msgstr "Detalles de la cuenta" + +#: ../lib/types/user.inc:104 ../lib/modules/mitKerberos.inc:124 +#: ../lib/modules/mitKerberos.inc:218 ../lib/modules/mitKerberos.inc:251 +#: ../lib/modules/mitKerberos.inc:385 ../lib/modules/mitKerberos.inc:634 +#: ../lib/modules/mitKerberos.inc:783 ../lib/modules/sambaSamAccount.inc:345 +#: ../lib/modules/sambaSamAccount.inc:463 +#: ../lib/modules/sambaSamAccount.inc:1189 +#: ../lib/modules/sambaSamAccount.inc:1447 +#: ../lib/modules/sambaSamAccount.inc:1739 +#: ../lib/modules/shadowAccount.inc:128 ../lib/modules/shadowAccount.inc:193 +#: ../lib/modules/shadowAccount.inc:233 ../lib/modules/shadowAccount.inc:352 +#: ../lib/modules/shadowAccount.inc:453 ../lib/modules/shadowAccount.inc:499 +#: ../lib/modules/heimdalKerberos.inc:102 +#: ../lib/modules/heimdalKerberos.inc:187 +#: ../lib/modules/heimdalKerberos.inc:219 +#: ../lib/modules/heimdalKerberos.inc:321 +#: ../lib/modules/heimdalKerberos.inc:544 +#: ../lib/modules/heimdalKerberos.inc:679 +msgid "Account expiration date" +msgstr "Fecha de expiración de la cuenta" + +#: ../lib/modules/shadowAccount.inc:169 +msgid "Account inactive" +msgstr "Cuenta inactiva" + +#: ../lib/modules/sambaSamAccount.inc:285 +#: ../lib/modules/sambaSamAccount.inc:291 +#: ../lib/modules/sambaSamAccount.inc:455 +#: ../lib/modules/sambaSamAccount.inc:1147 +#: ../lib/modules/sambaSamAccount.inc:1735 ../lib/modules/windowsUser.inc:192 +#: ../lib/modules/windowsUser.inc:386 ../lib/modules/windowsUser.inc:517 +#: ../lib/modules/windowsUser.inc:744 ../lib/modules/windowsUser.inc:1611 +msgid "Account is deactivated" +msgstr "La cuenta está desactivada" + +#: ../lib/modules/sambaSamAccount.inc:288 +#: ../lib/modules/sambaSamAccount.inc:1153 ../lib/modules/windowsUser.inc:195 +#: ../lib/modules/windowsUser.inc:725 +msgid "Account is locked" +msgstr "La cuenta está bloqueada" + +#: ../templates/delete.php:99 +msgid "Account name:" +msgstr "Nombre de la cuenta:" + +#: ../lib/types/user.inc:305 ../lib/types/user.inc:714 +#: ../lib/types/user.inc:848 ../lib/modules/qmailUser.inc:211 +#: ../lib/modules/qmailUser.inc:283 ../lib/modules/qmailUser.inc:402 +#: ../lib/modules/qmailUser.inc:609 ../lib/modules/qmailUser.inc:1157 +msgid "Account status" +msgstr "Estado de la cuenta" + +#: ../templates/masscreate.php:152 ../lib/modules/asteriskAccount.inc:119 +#: ../lib/modules/asteriskAccount.inc:256 +#: ../lib/modules/asteriskAccount.inc:269 +#: ../lib/modules/asteriskAccount.inc:331 +#: ../lib/modules/asteriskAccount.inc:595 +#: ../lib/modules/asteriskAccount.inc:985 ../lib/modules/customFields.inc:524 +#: ../lib/modules/customFields.inc:566 +msgid "Account type" +msgstr "Tipo de cuenta" + +#: ../templates/config/confmodules.php:168 +#: ../templates/config/confmain.php:209 +#: ../templates/config/moduleSettings.php:167 +#: ../templates/config/conftypes.php:186 +msgid "Account types" +msgstr "Tipos de cuentas" + +#: ../help/help.inc:111 +msgid "Account types and modules" +msgstr "Tipos y módulos de cuentas" + +#: ../help/help.inc:113 +msgid "" +"Account types define which sorts of LDAP entries (e.g. users and groups) " +"should be managed. The account modules define which properties (e.g. Unix " +"and Samba) can be edited." +msgstr "" +"Los tipos de cuentas definen qué tipo de entradas LDAP (p.ej. usuarios y " +"grupos) deben gestionarse. Los módulos de cuentas definen qué propiedades (p." +"ej. Unix y Samba) pueden editarse." + +#: ../lib/modules.inc:1307 +msgid "Account was created successfully." +msgstr "La cuenta se creó exitosamente." + +#: ../templates/lists/changePassword.php:744 +#: ../templates/lists/changePassword.php:796 +#: ../templates/lists/changePassword.php:842 ../lib/modules.inc:1310 +msgid "Account was modified successfully." +msgstr "La cuenta se modificó exitosamente." + +#: ../lib/modules/customScripts.inc:168 +msgid "Action type" +msgstr "Tipo de acción" + +#: ../lib/modules/ddns.inc:81 ../lib/modules/ddns.inc:368 +msgid "Activate DynDNS" +msgstr "Activar DynDNS" + +#: ../templates/config/confmain.php:243 +#: ../templates/selfService/adminMain.php:451 +msgid "Activate TLS" +msgstr "Activar TLS" + +#: ../lib/modules/sambaSamAccount.inc:352 +msgid "Activate this checkbox to allow this user to use the terminal service." +msgstr "" +"Active esta casilla para permitir a este usuario utilizar el servicio de " +"terminal." + +#: ../lib/modules/sambaSamAccount.inc:373 +msgid "Activate this checkbox to connect drives from the client machine." +msgstr "Active esta casilla para conectar unidades de la máquina cliente." + +#: ../lib/modules/sambaSamAccount.inc:376 +msgid "Activate this checkbox to connect printers from the client machine." +msgstr "Active esta casilla para conectar impresoras de la máquina cliente." + +#: ../lib/modules/sambaSamAccount.inc:361 +msgid "" +"Activate this checkbox to inherit the initial program and working directory " +"from the client machine." +msgstr "" +"Active esta casilla para heredar el programa inicial y el directorio de " +"trabajo de la máquina cliente." + +#: ../lib/modules/sambaSamAccount.inc:379 +msgid "Activate this checkbox to set the client's printer as default printer." +msgstr "" +"Active esta casilla para establecer la impresora del cliente como " +"predeterminada." + +#: ../lib/modules/posixAccount.inc:478 +msgid "Activating this checkbox will remove the user's home directory." +msgstr "Activar esta casilla eliminará el directorio inicial del usuario." + +#: ../lib/types/zarafaAddressListType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:93 +#: ../lib/modules/zarafaDynamicGroup.inc:83 +#: ../lib/modules/zarafaDynamicGroup.inc:144 +#: ../lib/modules/zarafaDynamicGroup.inc:168 +#: ../lib/modules/zarafaDynamicGroup.inc:281 +#: ../lib/modules/zarafaDynamicGroup.inc:456 ../lib/modules/qmailUser.inc:41 +#: ../lib/modules/qmailUser.inc:285 ../lib/modules/zarafaContact.inc:75 +#: ../lib/modules/zarafaContact.inc:156 ../lib/modules/zarafaContact.inc:254 +#: ../lib/modules/zarafaGroup.inc:89 ../lib/modules/zarafaGroup.inc:154 +#: ../lib/modules/zarafaGroup.inc:195 ../lib/modules/zarafaGroup.inc:302 +#: ../lib/modules/zarafaGroup.inc:660 ../lib/modules/zarafaAddressList.inc:71 +#: ../lib/modules/zarafaAddressList.inc:120 +#: ../lib/modules/zarafaAddressList.inc:142 +#: ../lib/modules/zarafaAddressList.inc:222 +#: ../lib/modules/zarafaAddressList.inc:338 ../lib/modules/zarafaUser.inc:84 +#: ../lib/modules/zarafaUser.inc:255 ../lib/modules/zarafaUser.inc:594 +#: ../lib/modules/zarafaUser.inc:1801 ../lib/modules/fixed_ip.inc:114 +#: ../lib/modules/fixed_ip.inc:438 ../lib/modules/fixed_ip.inc:743 +msgid "Active" +msgstr "Activo" + +#: ../templates/config/conftypes.php:232 +msgid "Active account types" +msgstr "Tipos de cuentas activos" + +#: ../templates/serverInfo.php:307 ../templates/serverInfo.php:384 +#: ../templates/multiEdit.php:126 ../templates/config/profmanage.php:252 +#: ../templates/config/confmodules.php:305 +#: ../templates/config/conftypes.php:223 +#: ../templates/selfService/profManage.php:209 +#: ../templates/pdfedit/pdfpage.php:596 ../templates/pdfedit/pdfpage.php:606 +#: ../templates/pdfedit/pdfpage.php:616 ../templates/pdfedit/pdfpage.php:630 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1206 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1210 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:78 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:121 +#: ../lib/modules/pykotaPrinter.inc:269 ../lib/modules/pykotaPrinter.inc:430 +#: ../lib/modules/nisMailAliasUser.inc:162 +#: ../lib/modules/nisMailAliasUser.inc:201 +#: ../lib/modules/nisMailAliasUser.inc:387 +#: ../lib/modules/zarafaContact.inc:390 ../lib/modules/zarafaGroup.inc:450 +#: ../lib/modules/device.inc:253 ../lib/modules/zarafaUser.inc:874 +#: ../lib/modules/zarafaUser.inc:1462 ../lib/modules/zarafaUser.inc:1494 +#: ../lib/modules/bindDLZ.inc:668 ../lib/modules/bindDLZ.inc:760 +#: ../lib/modules/bindDLZ.inc:840 ../lib/modules/bindDLZ.inc:944 +#: ../lib/modules/bindDLZ.inc:1060 ../lib/modules/bindDLZ.inc:1172 +#: ../lib/modules/bindDLZ.inc:1268 ../lib/modules/bindDLZ.inc:1382 +#: ../lib/modules/kolabUser.inc:835 ../lib/modules/kolabUser.inc:883 +#: ../lib/modules/sambaGroupMapping.inc:392 +#: ../lib/modules/sambaGroupMapping.inc:489 ../lib/modules/pykotaUser.inc:377 +#: ../lib/modules/ldapPublicKey.inc:267 ../lib/modules/ldapPublicKey.inc:277 +#: ../lib/modules/nisnetgroup.inc:282 ../lib/modules/inetOrgPerson.inc:1709 +#: ../lib/modules/sudoRole.inc:321 ../lib/modules/sudoRole.inc:348 +#: ../lib/modules/sudoRole.inc:375 ../lib/modules/sudoRole.inc:402 +#: ../lib/modules/sudoRole.inc:429 ../lib/modules/sudoRole.inc:456 +#: ../lib/modules/customFields.inc:1083 ../lib/modules/customFields.inc:2091 +#: ../lib/modules/customFields.inc:2101 ../lib/modules/qmailGroup.inc:822 +#: ../lib/modules/organizationalRole.inc:317 ../lib/modules/fixed_ip.inc:586 +#: ../lib/modules/windowsGroup.inc:556 ../lib/modules/groupOfNames.inc:374 +#: ../lib/modules/groupOfNames.inc:529 +msgid "Add" +msgstr "Añadir" + +#: ../lib/modules/asteriskAccount.inc:762 +msgid "Add Asterisk account" +msgstr "Añadir cuenta Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:269 +msgid "Add Asterisk voicemail extension" +msgstr "Añadir extensión de buzón de voz Asterisk" + +#: ../lib/modules/authorizedServiceObject.inc:175 +msgid "Add Authorized Service extension" +msgstr "Añadir extensión de Servicio Autorizado" + +#: ../lib/modules/eduPerson.inc:360 +msgid "Add EDU person extension" +msgstr "Añadir extensión de persona EDU" + +#: ../lib/modules/freeRadius.inc:312 +msgid "Add FreeRadius extension" +msgstr "Añadir extension de FreeRadius" + +#: ../lib/modules/ipHost.inc:165 +msgid "Add IP address extension" +msgstr "Añadir extensión de dirección IP" + +#: ../lib/modules/mitKerberos.inc:478 ../lib/modules/heimdalKerberos.inc:402 +msgid "Add Kerberos extension" +msgstr "Añadir extensión kerberos" + +#: ../lib/modules/kolabGroup.inc:121 ../lib/modules/kolabGroup.inc:133 +#: ../lib/modules/kolabGroup.inc:220 ../lib/modules/kolabUser.inc:394 +msgid "Add Kolab extension" +msgstr "Añadir extension de Kolab" + +#: ../lib/modules/puppetClient.inc:224 +msgid "Add Puppet extension" +msgstr "Añadir extensión de marioneta" + +#: ../lib/modules/pykotaGroup.inc:245 ../lib/modules/pykotaUser.inc:425 +msgid "Add PyKota extension" +msgstr "Añadir extension PyKota" + +#: ../lib/modules/sambaSamAccount.inc:1311 +#: ../lib/modules/sambaGroupMapping.inc:428 +msgid "Add Samba 3 extension" +msgstr "Añadir extensión de Samba 3" + +#: ../lib/modules/shadowAccount.inc:380 +msgid "Add Shadow account extension" +msgstr "Añadir extensión de cuenta Shadow" + +#: ../lib/modules/posixGroup.inc:253 ../lib/modules/posixAccount.inc:1518 +msgid "Add Unix extension" +msgstr "Añadir extensión Unix" + +#: ../lib/modules/zarafaContact.inc:134 ../lib/modules/zarafaContact.inc:202 +msgid "Add Zarafa contact extension" +msgstr "Añadir extensión de contactos para Zarafa" + +#: ../lib/modules/zarafaContact.inc:110 ../lib/modules/zarafaContact.inc:111 +#: ../lib/modules/zarafaGroup.inc:312 ../lib/modules/zarafaUser.inc:167 +#: ../lib/modules/zarafaUser.inc:168 ../lib/modules/zarafaUser.inc:179 +#: ../lib/modules/zarafaUser.inc:438 ../lib/modules/zarafaServer.inc:237 +msgid "Add Zarafa extension" +msgstr "Añadir extension de Zarafa" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add all" +msgstr "Añadir todo" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2073 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2091 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "Add an additional value to attribute" +msgstr "Añadir nuevo valor al atributo" + +#: ../lib/modules/asteriskExtension.inc:350 +msgid "Add another rule" +msgstr "Añadir otra regla" + +#: ../lib/modules/inetOrgPerson.inc:1744 +#: ../lib/modules/organizationalRole.inc:322 +#: ../lib/modules/groupOfNames.inc:379 ../lib/modules/groupOfNames.inc:534 +msgid "Add entries" +msgstr "Añadir entrada" + +#: ../lib/modules/zarafaContact.inc:429 ../lib/modules/zarafaGroup.inc:489 +#: ../lib/modules/device.inc:296 ../lib/modules/zarafaUser.inc:913 +#: ../lib/modules/sambaGroupMapping.inc:504 ../lib/modules/qmailGroup.inc:858 +#: ../lib/modules/organizationalRole.inc:333 +#: ../lib/modules/windowsGroup.inc:599 ../lib/modules/groupOfNames.inc:390 +#: ../lib/modules/groupOfNames.inc:545 +msgid "Add entries of this type:" +msgstr "Añadir entradas de este tipo:" + +#: ../lib/modules/fixed_ip.inc:544 +msgid "Add existing host" +msgstr "Agregar host existente" + +#: ../lib/modules/customFields.inc:439 +msgid "Add extension" +msgstr "Añadir extensión" + +#: ../lib/modules/ddns.inc:369 +msgid "Add fix IP addresses to DNS" +msgstr "Añadir una dirección IP fija al DNS" + +#: ../lib/modules/hostObject.inc:152 +msgid "Add host extension" +msgstr "Añadir extensión de equipo" + +#: ../templates/selfService/adminMain.php:631 ../help/help.inc:232 +msgid "Add input field" +msgstr "Añadir campo de entrada" + +#: ../templates/multiEdit.php:148 +msgid "Add more fields" +msgstr "Añadir más campos" + +#: ../lib/modules/customFields.inc:2973 +msgid "Add more mapping fields" +msgstr "Añadir más campos de entrada" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:37 +#, php-format +msgid "Add new %s value to %s" +msgstr "Agregar nuevo valor %s a %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1208 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:29 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:48 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:166 +msgid "Add new attribute" +msgstr "Añadir nuevo atributo" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1207 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +msgid "Add new attribute to this object" +msgstr "Añadir nuevo atributo a este objeto" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:89 +msgid "Add new binary attribute" +msgstr "Añadir nuevo atributo binario" + +#: ../lib/modules/customFields.inc:1082 ../lib/modules/customFields.inc:1083 +msgid "Add new field" +msgstr "Añadir nuevo campo" + +#: ../templates/selfService/adminMain.php:623 ../help/help.inc:230 +msgid "Add new group" +msgstr "Añadir nuevo grupo" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:117 +msgid "Add new object class" +msgstr "Agregar nueva clase de objeto" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:60 +#, php-format +msgid "Add new object class to %s" +msgstr "Agregar nueva clase de objeto a %s" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:94 +msgid "Add object class and attributes" +msgstr "Agregar clase y atributos del objeto" + +#: ../lib/modules/passwordSelfReset.inc:245 +msgid "Add password self reset extension" +msgstr "Añadir extensión de auto-restablecimiento de contraseña" + +#: ../lib/modules/inetOrgPerson.inc:748 ../lib/modules/inetOrgPerson.inc:1585 +#: ../lib/modules/inetOrgPerson.inc:1668 ../lib/modules/inetOrgPerson.inc:2656 +msgid "Add photo" +msgstr "Añadir foto" + +#: ../templates/config/profmanage.php:239 +#: ../templates/config/profmanage.php:253 +#: ../templates/selfService/profManage.php:202 +#: ../templates/selfService/profManage.php:210 ../help/help.inc:130 +msgid "Add profile" +msgstr "Añadir perfil" + +#: ../lib/modules/qmailUser.inc:712 ../lib/modules/qmailGroup.inc:633 +msgid "Add qmail extension" +msgstr "Añadir extensión Qmail" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add selected" +msgstr "Añadir lo seleccionado" + +#: ../lib/modules/nisMailAliasUser.inc:374 +msgid "Add to existing alias" +msgstr "Agregar a alias existente" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:149 +msgid "Add value" +msgstr "Añadir valor" + +#: ../templates/3rdParty/pla/htdocs/import.php:28 +msgid "Adding" +msgstr "Añadiendo" + +#: ../lib/modules/range.inc:115 +msgid "Adding the range failed because errors occured." +msgstr "Fallo al añadir el rango porque se han producido errores." + +#: ../templates/selfService/adminMain.php:527 ../help/help.inc:236 +msgid "Additional CSS links" +msgstr "Enlaces CSS adicionales" + +#: ../templates/config/conftypes.php:274 +#: ../templates/selfService/adminMain.php:472 ../help/help.inc:170 +#: ../help/help.inc:240 +msgid "Additional LDAP filter" +msgstr "Filtro LDAP adicional" + +#: ../lib/modules/zarafaDynamicGroup.inc:72 +#: ../lib/modules/zarafaDynamicGroup.inc:76 ../lib/modules/zarafaGroup.inc:74 +#: ../lib/modules/zarafaGroup.inc:78 +msgid "Additional email addresses for this entry." +msgstr "Dirección de email adicional para esta entrada." + +#: ../lib/modules/posixAccount.inc:304 ../lib/modules/posixAccount.inc:415 +#: ../lib/modules/posixAccount.inc:469 ../lib/modules/posixAccount.inc:534 +#: ../lib/modules/posixAccount.inc:1453 ../lib/modules/posixAccount.inc:1737 +#: ../lib/modules/posixAccount.inc:1848 +msgid "Additional groups" +msgstr "Grupos adicionales" + +#: ../lib/modules/windowsGroup.inc:123 +msgid "Additional notes to describe this entry." +msgstr "Notas adicionales para describir esta entrada." + +#: ../templates/config/mainmanage.php:440 +msgid "Additional options" +msgstr "Opciones adicionales" + +#: ../templates/massDoUpload.php:160 +msgid "Additional tasks for module:" +msgstr "Tareas adicionales para el módulo:" + +#: ../lib/modules/windowsUser.inc:707 ../lib/modules/inetOrgPerson.inc:1219 +msgid "Address" +msgstr "Dirección" + +#: ../lib/types/zarafaAddressListType.inc:144 +#, php-format +msgid "Address list count: %s" +msgstr "Conteo de lista de direcciones: %s" + +#: ../lib/modules/imapAccess.inc:78 +msgid "Address of IMAP server (e.g. mail.example.org)." +msgstr "Dirección del servidor IMAP (p.ej. mail.ejemplo.org)." + +#: ../help/help.inc:231 +msgid "" +"Adds a new group element to the list of self service options. Use this to " +"structure the input fields." +msgstr "" +"Añade un nuevo elemento al grupo de la lista de autoservicio. Utiliícelo " +"para estructurar los campos de entrada." + +#: ../help/help.inc:233 +msgid "Adds a new self service option to the selected group element." +msgstr "" +"Añade una nueva opción de autoservicio para el elemento del grupo " +"seleccionado." + +#: ../lib/modules/range.inc:102 +msgid "Adds input fields for a new IP range." +msgstr "Agrega campos de entrada para un nuevo rango de IP." + +#: ../lib/modules/pykotaUser.inc:153 +msgid "Adds the amount to the user's balance. You can also specify a comment." +msgstr "" +"Agregar la cantidad al balance del usuario. Usted puede también un " +"comentario." + +#: ../lib/modules/kolabUser.inc:171 +msgid "Adds the object class \"mailrecipient\" to all user accounts." +msgstr "" +"Agrega la clase de objeto \"mailrecipient\" para todas las cuentas de " +"usuario." + +#: ../lib/modules/kolabGroup.inc:122 +msgid "Adds this Kolab extension." +msgstr "Añadir extension Kolab." + +#: ../lib/modules/zarafaUser.inc:108 ../lib/modules/zarafaUser.inc:282 +#: ../lib/modules/zarafaUser.inc:340 ../lib/modules/zarafaUser.inc:603 +#: ../lib/modules/zarafaUser.inc:1262 +msgid "Admin" +msgstr "Admin" + +#: ../lib/modules/selfRegistration.inc:61 +#: ../lib/modules/selfRegistration.inc:199 +#: ../lib/modules/passwordSelfReset.inc:104 +#: ../lib/modules/passwordSelfReset.inc:518 +msgid "Admin DN" +msgstr "DN de Administrador" + +#: ../lib/modules/bindDLZ.inc:224 ../lib/modules/bindDLZ.inc:344 +#: ../lib/modules/bindDLZ.inc:421 ../lib/modules/bindDLZ.inc:522 +#: ../lib/modules/bindDLZ.inc:1044 ../lib/modules/bindDLZ.inc:1546 +msgid "Admin email" +msgstr "Correo electrónico de Administrador" + +#: ../lib/modules/selfRegistration.inc:65 +#: ../lib/modules/selfRegistration.inc:204 ../lib/modules/imapAccess.inc:136 +#: ../lib/modules/passwordSelfReset.inc:108 +#: ../lib/modules/passwordSelfReset.inc:522 +msgid "Admin password" +msgstr "Contraseña de administración" + +#: ../lib/modules/inetOrgPerson.inc:371 ../lib/modules/inetOrgPerson.inc:485 +#: ../lib/modules/inetOrgPerson.inc:493 +msgid "Administration" +msgstr "Administración" + +#: ../lib/modules/posixGroup.inc:473 ../lib/modules/pykotaGroup.inc:168 +#: ../lib/modules/nisnetgroup.inc:122 +#: ../lib/modules/organizationalRole.inc:125 +#: ../lib/modules/groupOfNames.inc:137 +msgid "Administrators group" +msgstr "Grupo de administradores" + +#: ../templates/config/confmain.php:276 ../templates/config/conftypes.php:320 +#: ../lib/modules/posixAccount.inc:271 ../lib/modules/inetOrgPerson.inc:3616 +msgid "Advanced options" +msgstr "Opciones avanzadas" + +#: ../lib/modules/eduPerson.inc:105 ../lib/modules/eduPerson.inc:109 +#: ../lib/modules/eduPerson.inc:181 ../lib/modules/eduPerson.inc:225 +#: ../lib/modules/eduPerson.inc:328 ../lib/modules/eduPerson.inc:585 +msgid "Affiliations" +msgstr "Afiliaciones" + +#: ../lib/modules/sambaSamAccount.inc:555 +msgid "Alaska" +msgstr "Alaska" + +#: ../lib/modules/sambaDomain.inc:218 ../lib/modules/sambaDomain.inc:219 +msgid "Algorithmic RID base is not a number!" +msgstr "¡La base algorítmica del RID no es un número!" + +#: ../lib/modules/customFields.inc:76 ../lib/modules/customFields.inc:528 +#: ../lib/modules/customFields.inc:569 ../lib/modules/aliasEntry.inc:45 +msgid "Alias" +msgstr "Alias" + +#: ../lib/types/mailAlias.inc:141 ../lib/types/alias.inc:141 +#, php-format +msgid "Alias count: %s" +msgstr "Conteo de alias: %s" + +#: ../lib/types/alias.inc:62 +msgid "Alias entries" +msgstr "Entradas de alias" + +#: ../lib/modules/nisMailAlias.inc:125 ../lib/modules/nisMailAlias.inc:126 +msgid "Alias is empty or invalid!" +msgstr "¡El alias está vacío o es inválido!" + +#: ../lib/types/mailAlias.inc:91 ../lib/modules/nisMailAliasUser.inc:96 +#: ../lib/modules/nisMailAliasUser.inc:364 ../lib/modules/bindDLZ.inc:128 +#: ../lib/modules/bindDLZ.inc:261 ../lib/modules/bindDLZ.inc:412 +#: ../lib/modules/bindDLZ.inc:490 ../lib/modules/bindDLZ.inc:829 +#: ../lib/modules/bindDLZ.inc:1531 ../lib/modules/nisMailAlias.inc:81 +#: ../lib/modules/nisMailAlias.inc:101 ../lib/modules/nisMailAlias.inc:115 +#: ../lib/modules/nisMailAlias.inc:163 ../lib/modules/nisMailAlias.inc:475 +msgid "Alias name" +msgstr "Nombre del alias" + +#: ../lib/modules/bindDLZ.inc:827 +msgid "Alias name (\"CNAME\" record)" +msgstr "Nombre Alias (registro \"CNAME\")" + +#: ../lib/modules/nisMailAliasUser.inc:120 +msgid "Alias name already exists." +msgstr "El alias ya existe." + +#: ../lib/modules/nisMailAliasUser.inc:119 +msgid "Alias name is invalid." +msgstr "El nombre alias es inválido." + +#: ../lib/modules/nisMailAliasUser.inc:100 +#: ../lib/modules/nisMailAliasUser.inc:110 +#: ../lib/modules/nisMailAliasUser.inc:382 +#: ../lib/modules/nisMailAliasUser.inc:541 +msgid "Alias names" +msgstr "Nombre del alias" + +#: ../lib/modules/nisMailAliasUser.inc:84 +#: ../lib/modules/nisMailAliasUser.inc:88 +msgid "Alias names with email address" +msgstr "Nombre de usuario con dirección de correo electrónico" + +#: ../lib/modules/nisMailAliasUser.inc:76 +#: ../lib/modules/nisMailAliasUser.inc:80 +msgid "Alias names with user name" +msgstr "Nombre de alias con nombre de usuario" + +#: ../lib/modules/bindDLZ.inc:413 ../lib/modules/bindDLZ.inc:1532 +msgid "Alias timeout" +msgstr "Tiempo de inactividad del alias" + +#: ../lib/types/alias.inc:92 ../lib/modules/customScripts.inc:52 +#: ../lib/modules/uidObject.inc:59 ../lib/modules/aliasEntry.inc:61 +#: ../lib/modules/aliasEntry.inc:69 ../lib/modules/aliasEntry.inc:77 +#: ../lib/modules/aliasEntry.inc:98 ../lib/modules/aliasEntry.inc:107 +#: ../lib/modules/aliasEntry.inc:228 +msgid "Aliased entry" +msgstr "Entrada con alias" + +#: ../templates/schema/schema.php:226 ../lib/types/alias.inc:53 +msgid "Aliases" +msgstr "Alias" + +#: ../lib/modules/nisMailAliasUser.inc:169 +#: ../lib/modules/nisMailAliasUser.inc:569 +msgid "Aliases for email" +msgstr "Alias para el correo electrónico" + +#: ../lib/modules/nisMailAliasUser.inc:139 +#: ../lib/modules/nisMailAliasUser.inc:567 +msgid "Aliases for user name" +msgstr "Alias para el nombre de usuario" + +#: ../lib/lists.inc:702 +#, php-format +msgid "All accounts (%s)" +msgstr "Todas las cuentas (%s)" + +#: ../templates/selfService/selfServiceMain.php:368 +#: ../templates/initsuff.php:158 +msgid "All changes were successful." +msgstr "Todos los cambios fueron exitosos." + +#: ../lib/lists.inc:701 +#, php-format +msgid "All selected accounts (%s)" +msgstr "Todas las cuentas seleccionadas (%s)" + +#: ../lib/modules/dhcp_settings.inc:103 +msgid "Allow" +msgstr "Permitir" + +#: ../templates/config/confmain.php:362 ../help/help.inc:259 +msgid "Allow alternate address" +msgstr "Permitir dirección alternativa" + +#: ../lib/modules/sambaDomain.inc:117 ../lib/modules/sambaDomain.inc:194 +#: ../lib/modules/sambaDomain.inc:308 ../lib/modules/sambaDomain.inc:626 +msgid "Allow machine password changes" +msgstr "Permitir a la máquina cambiar la contraseña" + +#: ../lib/modules/customFields.inc:144 ../lib/modules/customFields.inc:148 +#: ../lib/modules/customFields.inc:3140 +msgid "Allow multiple values" +msgstr "Permitir valores múltiples" + +#: ../lib/types/ppolicyType.inc:90 ../lib/modules/ppolicy.inc:132 +#: ../lib/modules/ppolicy.inc:155 ../lib/modules/ppolicy.inc:294 +#: ../lib/modules/ppolicy.inc:505 +msgid "Allow password change" +msgstr "Permitir cambiar la contraseña" + +#: ../lib/modules/sambaSamAccount.inc:229 +#: ../lib/modules/sambaSamAccount.inc:351 +#: ../lib/modules/sambaSamAccount.inc:1499 +#: ../lib/modules/sambaSamAccount.inc:1915 +msgid "Allow terminal server login" +msgstr "Permir el acceso por servidor de terminales" + +#: ../templates/selfService/adminMain.php:589 +msgid "Allow user input for this field." +msgstr "Permitir entrada de usuario para este campo" + +#: ../lib/modules/asteriskAccount.inc:203 +#: ../lib/modules/asteriskAccount.inc:289 +#: ../lib/modules/asteriskAccount.inc:479 +#: ../lib/modules/asteriskAccount.inc:713 +#: ../lib/modules/asteriskAccount.inc:1005 +#: ../lib/modules/asteriskAccount.inc:1279 +msgid "Allowed codec" +msgstr "Codec permitido" + +#: ../templates/config/mainmanage.php:299 ../lib/types/user.inc:95 +#: ../help/help.inc:152 +msgid "Allowed hosts" +msgstr "Equipos permitidos" + +#: ../templates/config/mainmanage.php:301 +msgid "Allowed hosts (self service)" +msgstr "Hosts permitidos (autoservicio)" + +#: ../lib/modules/kolabGroup.inc:95 ../lib/modules/kolabGroup.inc:99 +#: ../lib/modules/kolabGroup.inc:141 ../lib/modules/kolabGroup.inc:164 +#: ../lib/modules/kolabGroup.inc:181 ../lib/modules/kolabGroup.inc:205 +#: ../lib/modules/kolabGroup.inc:424 ../lib/modules/kolabUser.inc:152 +#: ../lib/modules/kolabUser.inc:156 ../lib/modules/kolabUser.inc:217 +#: ../lib/modules/kolabUser.inc:235 ../lib/modules/kolabUser.inc:253 +#: ../lib/modules/kolabUser.inc:381 ../lib/modules/kolabUser.inc:766 +#: ../lib/modules/kolabSharedFolder.inc:120 +#: ../lib/modules/kolabSharedFolder.inc:124 +#: ../lib/modules/kolabSharedFolder.inc:208 +#: ../lib/modules/kolabSharedFolder.inc:234 +#: ../lib/modules/kolabSharedFolder.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:307 +#: ../lib/modules/kolabSharedFolder.inc:561 +msgid "Allowed recipients" +msgstr "Destinatarios permitidos" + +#: ../lib/modules/kolabGroup.inc:104 ../lib/modules/kolabGroup.inc:108 +#: ../lib/modules/kolabGroup.inc:147 ../lib/modules/kolabGroup.inc:165 +#: ../lib/modules/kolabGroup.inc:183 ../lib/modules/kolabGroup.inc:207 +#: ../lib/modules/kolabGroup.inc:425 ../lib/modules/kolabUser.inc:161 +#: ../lib/modules/kolabUser.inc:165 ../lib/modules/kolabUser.inc:223 +#: ../lib/modules/kolabUser.inc:236 ../lib/modules/kolabUser.inc:255 +#: ../lib/modules/kolabUser.inc:383 ../lib/modules/kolabUser.inc:767 +#: ../lib/modules/kolabSharedFolder.inc:129 +#: ../lib/modules/kolabSharedFolder.inc:133 +#: ../lib/modules/kolabSharedFolder.inc:214 +#: ../lib/modules/kolabSharedFolder.inc:235 +#: ../lib/modules/kolabSharedFolder.inc:252 +#: ../lib/modules/kolabSharedFolder.inc:309 +#: ../lib/modules/kolabSharedFolder.inc:562 +msgid "Allowed senders" +msgstr "Remitentes permitidos" + +#: ../lib/modules/sambaSamAccount.inc:1337 +#: ../lib/modules/sambaSamAccount.inc:1338 +msgid "Allowed workstations" +msgstr "Estaciones de trabajo permitidas" + +#: ../lib/modules/customFields.inc:149 +msgid "Allows to enter multiple values for this attribute." +msgstr "Permite ingresar múltiples valores para el atributo." + +#: ../lib/modules/customFields.inc:145 +msgid "Allows to select multiple values from the list." +msgstr "Permite seleccionar múltiples valores de la lista." + +#: ../lib/modules/sambaSamAccount.inc:570 +msgid "Almaty, Dhaka, Colombo" +msgstr "Alma-ata, Daca, Colombo" + +#: ../templates/lists/changePassword.php:334 +#: ../templates/lists/changePassword.php:370 ../lib/modules/qmailUser.inc:203 +#: ../lib/modules/qmailUser.inc:271 ../lib/modules/qmailUser.inc:400 +#: ../lib/modules/qmailUser.inc:450 ../lib/modules/qmailUser.inc:520 +#: ../lib/modules/qmailUser.inc:1140 ../lib/modules/qmailGroup.inc:131 +#: ../lib/modules/qmailGroup.inc:135 ../lib/modules/qmailGroup.inc:247 +#: ../lib/modules/qmailGroup.inc:370 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:484 ../lib/modules/qmailGroup.inc:1057 +msgid "Alternate address" +msgstr "Dirección alternativa" + +#: ../lib/modules.inc:1071 ../lib/modules.inc:1170 ../help/help.inc:214 +msgid "Alternate recipient" +msgstr "Destinatario alternativo" + +#: ../lib/modules/kolabUser.inc:50 +msgid "Always accept" +msgstr "Aceptar siempre" + +#: ../lib/modules/kolabUser.inc:51 +msgid "Always reject" +msgstr "Rechazar siempre" + +#: ../lib/modules/pykotaUser.inc:372 ../lib/modules/pykotaUser.inc:597 +#: ../lib/modules/pykotaUser.inc:906 ../lib/modules/pykotaUser.inc:965 +msgid "Amount" +msgstr "Cantidad" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1018 +#, php-format +msgid "An attribute (%s) was modified and is highlighted below." +msgstr "Un atributo (%s) se modificó, y se ha resaltado abajo." + +#: ../lib/modules/sudoRole.inc:268 +msgid "An sudo role with this name already exists. Please choose another name." +msgstr "ya existe un rol sudo con este nombre. Por favor, elija otro nombre." + +#: ../lib/modules/passwordSelfReset.inc:84 +#: ../lib/modules/passwordSelfReset.inc:183 +#: ../lib/modules/passwordSelfReset.inc:198 +#: ../lib/modules/passwordSelfReset.inc:219 +#: ../lib/modules/passwordSelfReset.inc:265 +#: ../lib/modules/passwordSelfReset.inc:384 +#: ../lib/modules/passwordSelfReset.inc:663 +#: ../lib/modules/passwordSelfReset.inc:1046 +msgid "Answer" +msgstr "Respuesta" + +#: ../lib/modules/kolabUser.inc:331 ../lib/modules/kolabUser.inc:756 +#: ../lib/modules/kolabUser.inc:858 ../lib/modules/kolabUser.inc:861 +msgid "Anyone" +msgstr "Cualquiera" + +#: ../lib/modules/customFields.inc:506 +msgid "Appearance" +msgstr "Apariencia" + +#: ../lib/modules/asteriskExtension.inc:110 +#: ../lib/modules/asteriskExtension.inc:165 +#: ../lib/modules/asteriskExtension.inc:366 +#: ../lib/modules/asteriskExtension.inc:823 +msgid "Application" +msgstr "Aplicación" + +#: ../lib/modules/asteriskExtension.inc:94 +#: ../lib/modules/asteriskExtension.inc:172 +#: ../lib/modules/asteriskExtension.inc:374 +#: ../lib/modules/asteriskExtension.inc:824 +msgid "Application data" +msgstr "Datos de aplicación" + +#: ../templates/multiEdit.php:166 +msgid "Apply changes" +msgstr "Aplicar cambios" + +#: ../lib/modules/zarafaUser.inc:159 ../lib/modules/zarafaUser.inc:163 +#: ../lib/modules/zarafaUser.inc:315 ../lib/modules/zarafaUser.inc:379 +#: ../lib/modules/zarafaUser.inc:554 ../lib/modules/zarafaUser.inc:957 +#: ../lib/modules/zarafaUser.inc:1236 ../lib/modules/zarafaUser.inc:1317 +#: ../lib/modules/zarafaUser.inc:1803 +msgid "Archive servers" +msgstr "Servidores de archivo" + +#: ../lib/modules/zarafaUser.inc:552 +msgid "Archiving" +msgstr "Archivando" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:53 +msgid "Are you sure you want to permanently delete these objects?" +msgstr "¿Está seguro que desea eliminar permanentemente estos objetos?" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:107 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:51 +msgid "Are you sure you want to permanently delete this object?" +msgstr "¿Está seguro que desea eliminar permanentemente este objeto?" + +#: ../lib/modules/imapAccess.inc:129 +msgid "Ask" +msgstr "Preguntar" + +#: ../lib/modules/eduPerson.inc:142 ../lib/modules/eduPerson.inc:146 +#: ../lib/modules/eduPerson.inc:218 ../lib/modules/eduPerson.inc:234 +#: ../lib/modules/eduPerson.inc:352 ../lib/modules/eduPerson.inc:590 +msgid "Assurance profiles" +msgstr "Perfiles de garantía" + +#: ../lib/modules/eduPerson.inc:143 ../lib/modules/eduPerson.inc:147 +msgid "" +"Assurance profiles are the set of standards that are met by an identity " +"assertion." +msgstr "" +"Perfiles de garantía son el grupo de estándares que son cumplidos por una " +"aserción de identidad." + +#: ../lib/modules/asteriskAccount.inc:73 +msgid "Asterisk" +msgstr "Asterisk" + +#: ../lib/modules/asteriskAccount.inc:132 +msgid "Asterisk AMA (Automated Message Accounting) flags." +msgstr "Banderas AMA (Contabilización Automática de Mensajes) de Asterisk." + +#: ../lib/modules/asteriskExtension.inc:79 +msgid "Asterisk extension" +msgstr "Extensión de Asterisk" + +#: ../lib/types/asteriskExt.inc:56 +msgid "Asterisk extensions" +msgstr "Extensiones de Asterisk" + +#: ../lib/types/asteriskExt.inc:65 +msgid "Asterisk extensions entries" +msgstr "Entradas de extensiones de Asterisk" + +#: ../lib/modules/asteriskAccount.inc:123 +#: ../lib/modules/asteriskAccount.inc:249 +#: ../lib/modules/asteriskAccount.inc:1233 +msgid "Asterisk realm" +msgstr "Reino de Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:71 +msgid "Asterisk voicemail" +msgstr "Buzón de voz Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:120 +msgid "Asterisk voicemail context." +msgstr "Contexto del buzón de voz de Asterisk." + +#: ../lib/modules/sambaSamAccount.inc:560 +msgid "Atlantic time (Canada), Caracas" +msgstr "Horario atlántico (Canadá), Caracas" + +#: ../templates/3rdParty/pla/lib/import_functions.php:455 +msgid "Attempting to delete a non existent attribute" +msgstr "Intentando eliminar un atributo inexistente" + +#: ../templates/3rdParty/pla/lib/import_functions.php:466 +msgid "Attempting to replace a non existant attribute" +msgstr "Intentando reemplazar un atributo inexistente" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Attribute" +msgstr "Atributo" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:137 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:72 +msgid "Attribute doesn't exist" +msgstr "El atributo no existe" + +#: ../templates/multiEdit.php:119 ../lib/modules/customFields.inc:92 +#: ../lib/modules/customFields.inc:1060 ../lib/modules/customFields.inc:1710 +msgid "Attribute name" +msgstr "Nombre de Atributos" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:117 +msgid "Attribute not available" +msgstr "Atributo no disponible" + +#: ../templates/3rdParty/pla/lib/import_functions.php:535 +msgid "Attribute not valid" +msgstr "Atributo inválido" + +#: ../templates/schema/schema.php:69 ../templates/schema/schema.php:70 +msgid "Attribute types" +msgstr "Tipos de atributos" + +#: ../lib/modules/selfRegistration.inc:78 +#: ../lib/modules/selfRegistration.inc:220 +msgid "Attributes" +msgstr "Atributos" + +#: ../lib/modules/sambaSamAccount.inc:576 +msgid "Auckland, Fiji, Kamchatka" +msgstr "Auckland, Fiyi, Kamchatka" + +#: ../lib/modules/asteriskAccount.inc:124 +msgid "" +"Authentication realm for Asterisk server (default: asterisk). This value set " +"in sip.conf (option: \"realm\")." +msgstr "" +"Reino de autenticación para el servidor de Asterisk (predeterminado: " +"asterisk). Este valor se establece en sip.conf (opción: \"realm\")." + +#: ../lib/modules/asteriskAccount.inc:232 +msgid "Authentication user for outbound proxies." +msgstr "Usuario de autenticación para proxys de salida." + +#: ../lib/modules/bindDLZ.inc:1013 +msgid "Authoritative information (\"SOA\" record)" +msgstr "Información Autoritativa (registro \"SOA\")" + +#: ../lib/modules/authorizedServiceObject.inc:71 +#: ../lib/modules/authorizedServiceObject.inc:81 +#: ../lib/modules/authorizedServiceObject.inc:85 +#: ../lib/modules/authorizedServiceObject.inc:105 +#: ../lib/modules/authorizedServiceObject.inc:112 +#: ../lib/modules/authorizedServiceObject.inc:116 +#: ../lib/modules/authorizedServiceObject.inc:168 +#: ../lib/modules/authorizedServiceObject.inc:243 +msgid "Authorized Services" +msgstr "Servicios autorizados" + +#: ../lib/modules/authorizedServiceObject.inc:129 +msgid "Authorized services are invalid." +msgstr "Los servicios autorizados son inválidos" + +#: ../lib/modules/customFields.inc:152 ../lib/modules/customFields.inc:1917 +msgid "Auto-completion" +msgstr "Autocompletar" + +#: ../lib/modules/bindDLZ.inc:232 ../lib/modules/bindDLZ.inc:2526 +msgid "Automatic PTR changes" +msgstr "Cambios PTR automáticos" + +#: ../lib/modules/customScripts.inc:167 +msgid "Automatical scripts" +msgstr "Scripts Automáticos" + +#: ../lib/modules/kolabGroup.inc:117 ../lib/modules/kolabGroup.inc:127 +#: ../lib/modules/puppetClient.inc:108 ../lib/modules/puppetClient.inc:160 +#: ../lib/modules/qmailUser.inc:131 ../lib/modules/qmailUser.inc:263 +#: ../lib/modules/zarafaContact.inc:87 ../lib/modules/zarafaContact.inc:583 +#: ../lib/modules/posixGroup.inc:396 ../lib/modules/posixGroup.inc:537 +#: ../lib/modules/eduPerson.inc:150 ../lib/modules/eduPerson.inc:155 +#: ../lib/modules/pykotaGroup.inc:129 ../lib/modules/pykotaGroup.inc:140 +#: ../lib/modules/sambaSamAccount.inc:165 +#: ../lib/modules/sambaSamAccount.inc:402 ../lib/modules/posixAccount.inc:432 +#: ../lib/modules/posixAccount.inc:1784 ../lib/modules/zarafaUser.inc:136 +#: ../lib/modules/zarafaUser.inc:1303 ../lib/modules/pykotaUser.inc:160 +#: ../lib/modules/pykotaUser.inc:173 ../lib/modules/shadowAccount.inc:106 +#: ../lib/modules/shadowAccount.inc:197 ../lib/modules/customFields.inc:856 +#: ../lib/modules/qmailGroup.inc:101 ../lib/modules/qmailGroup.inc:232 +#: ../lib/modules/authorizedServiceObject.inc:89 +#: ../lib/modules/authorizedServiceObject.inc:117 +#: ../lib/modules/passwordSelfReset.inc:152 +#: ../lib/modules/passwordSelfReset.inc:167 ../lib/modules/hostObject.inc:83 +#: ../lib/modules/hostObject.inc:101 +msgid "Automatically add this extension" +msgstr "Añadir automáticamente esta extensión" + +#: ../lib/modules/bindDLZ.inc:233 +msgid "" +"Automatically adds and removes PTR entries when A/AAAA records are created " +"or deleted." +msgstr "" +"Automáticamente agrega y remueve entradas PTR cuando los registros A/AAAA " +"son creados o eliminados." + +#: ../lib/types/automountType.inc:48 ../lib/types/automountType.inc:57 +msgid "Automount entries" +msgstr "Entradas de automontaje" + +#: ../lib/types/automountType.inc:87 ../lib/modules/automount.inc:50 +#: ../lib/modules/automount.inc:68 ../lib/modules/automount.inc:88 +#: ../lib/modules/automount.inc:104 ../lib/modules/automount.inc:114 +#: ../lib/modules/automount.inc:131 ../lib/modules/automount.inc:182 +msgid "Automount entry" +msgstr "Entrada de automountaje" + +#: ../lib/modules/automount.inc:114 ../lib/modules/automount.inc:115 +msgid "" +"Automount entry contains invalid characters. Only ASCII characters are " +"allowed." +msgstr "" +"La entrada deautomountaje contiene carácteres inválidos. Sólo se admiten " +"caracteres ASCII." + +#: ../lib/types/automountType.inc:215 +#, php-format +msgid "Automount entry count: %s" +msgstr "Conteo de entradas de automontaje: %s" + +#: ../lib/modules/qmailUser.inc:51 +msgid "Autoreply" +msgstr "Autorespuesta" + +#: ../lib/modules/qmailUser.inc:116 ../lib/modules/qmailUser.inc:239 +#: ../lib/modules/qmailUser.inc:350 ../lib/modules/qmailUser.inc:424 +#: ../lib/modules/qmailUser.inc:639 ../lib/modules/qmailUser.inc:1147 +msgid "Autoreply text" +msgstr "Texto de autorespuesta" + +#: ../templates/config/conftypes.php:215 ../lib/modules/customScripts.inc:61 +msgid "Available account types" +msgstr "Tipos de cuentas disponibles" + +#: ../lib/modules/customScripts.inc:62 ../lib/modules/customScripts.inc:75 +msgid "Available actions" +msgstr "Acciones disponibles" + +#: ../lib/modules/posixAccount.inc:1569 ../lib/modules/posixAccount.inc:1602 +#: ../lib/modules/windowsUser.inc:1032 ../lib/modules/nisnetgroup.inc:386 +#: ../lib/modules/groupOfNamesUser.inc:133 +msgid "Available groups" +msgstr "Grupos disponibles" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:93 +msgid "Available members" +msgstr "Miembros disponibles" + +#: ../templates/config/confmodules.php:314 +msgid "Available modules" +msgstr "Módulos disponibles" + +#: ../lib/modules/organizationalRoleUser.inc:118 +msgid "Available roles" +msgstr "Roles disponibles" + +#: ../lib/modules/posixGroup.inc:297 ../lib/modules/asteriskExtension.inc:463 +msgid "Available users" +msgstr "Usuarios disponibles" + +#: ../lib/modules/sambaSamAccount.inc:1340 +msgid "Available workstations" +msgstr "Estaciones de trabajo disponibles" + +#: ../lib/modules/sambaSamAccount.inc:563 +msgid "Azores, Cape Verde Islands" +msgstr "Azores, Islas del Cabo Verde" + +#: ../lib/modules/dhcp_settings.inc:96 +msgid "B-Node (0x01)" +msgstr "Nodo-B (0x01)" + +#: ../templates/massBuildAccounts.php:276 ../lib/modules/zarafaContact.inc:436 +#: ../lib/modules/posixGroup.inc:342 ../lib/modules/zarafaGroup.inc:496 +#: ../lib/modules/device.inc:303 ../lib/modules/sambaSamAccount.inc:1357 +#: ../lib/modules/sambaSamAccount.inc:1641 +#: ../lib/modules/posixAccount.inc:1642 ../lib/modules/posixAccount.inc:1716 +#: ../lib/modules/zarafaUser.inc:920 ../lib/modules/zarafaUser.inc:969 +#: ../lib/modules/windowsUser.inc:1076 +#: ../lib/modules/sambaGroupMapping.inc:511 ../lib/modules/pykotaUser.inc:618 +#: ../lib/modules/pykotaUser.inc:675 ../lib/modules/nisnetgroup.inc:400 +#: ../lib/modules/inetOrgPerson.inc:1669 ../lib/modules/inetOrgPerson.inc:1745 +#: ../lib/modules/inetOrgPerson.inc:1835 ../lib/modules/qmailGroup.inc:865 +#: ../lib/modules/organizationalRole.inc:389 +#: ../lib/modules/windowsGroup.inc:606 ../lib/modules/groupOfNames.inc:447 +#: ../lib/modules/groupOfNames.inc:601 +msgid "Back" +msgstr "Atrás" + +#: ../lib/types/dhcp.inc:47 +msgid "Back to DHCP list" +msgstr "Regresar a la lista de DHCP" + +#: ../lib/types/bind.inc:30 +msgid "Back to DNS list" +msgstr "Regresar a la lista DNS" + +#: ../lib/types/nisObjectType.inc:30 +msgid "Back to NIS object list" +msgstr "Regresar a la lista de objetos NIS" + +#: ../lib/baseType.inc:48 +msgid "Back to account list" +msgstr "Regresar a la lista de cuentas" + +#: ../lib/types/zarafaAddressListType.inc:44 +msgid "Back to address list" +msgstr "Regresar al listado de direcciones" + +#: ../lib/types/mailAlias.inc:44 ../lib/types/alias.inc:44 +msgid "Back to alias list" +msgstr "Regresar a la lista de alias" + +#: ../lib/types/automountType.inc:35 +msgid "Back to automount list" +msgstr "Regresar a la lista de automontaje" + +#: ../lib/types/pykotaBillingCodeType.inc:44 +msgid "Back to billing code list" +msgstr "Regresar a la lista de códigos de facturación" + +#: ../lib/types/oracleContextType.inc:30 +msgid "Back to database list" +msgstr "Regresar a la lista de bases de datos" + +#: ../lib/types/smbDomain.inc:44 +msgid "Back to domain list" +msgstr "Regresar a la lista de dominios" + +#: ../lib/types/asteriskExt.inc:47 +msgid "Back to extensions list" +msgstr "Regresar a la lista de extensiones" + +#: ../templates/lists/userlink.php:63 ../lib/types/gon.inc:44 +#: ../lib/types/zarafaDynamicGroupType.inc:44 ../lib/types/group.inc:45 +#: ../lib/types/netgroup.inc:44 +msgid "Back to group list" +msgstr "Regresar a la lista de grupos" + +#: ../lib/types/host.inc:44 +msgid "Back to host list" +msgstr "Regresar al listado de equipos" + +#: ../templates/delete.php:289 +msgid "Back to list" +msgstr "Regresar a la lista" + +#: ../templates/config/mainmanage.php:257 ../templates/config/index.php:79 +#: ../templates/config/index.php:133 ../templates/config/conflogin.php:117 +#: ../templates/config/conflogin.php:201 ../templates/config/mainlogin.php:124 +#: ../templates/config/mainlogin.php:178 +#: ../templates/selfService/selfServiceSP.php:139 +#: ../templates/selfService/adminLogin.php:114 +#: ../templates/selfService/adminLogin.php:191 +msgid "Back to login" +msgstr "Regresar a la autenticación" + +#: ../lib/types/ppolicyType.inc:30 +msgid "Back to policy list" +msgstr "Regresar a la lista de políticas" + +#: ../lib/types/pykotaPrinterType.inc:44 +msgid "Back to printer list" +msgstr "Regresar a la lista de impresoras" + +#: ../templates/config/profmanage.php:188 +#: ../templates/config/profmanage.php:326 +#: ../templates/selfService/profManage.php:144 +#: ../templates/selfService/profManage.php:262 +msgid "Back to profile login" +msgstr "Regresar al logeo del perfil" + +#: ../lib/types/gon.inc:49 ../lib/types/group.inc:50 +msgid "Back to role list" +msgstr "Regresar a la lista de roles" + +#: ../lib/types/kolabSharedFolderType.inc:44 +msgid "Back to shared folder list" +msgstr "Regresar a la lista de carpeta compartidas" + +#: ../lib/types/sudo.inc:30 +msgid "Back to sudo role list" +msgstr "Regresar a la lista de roles sudo" + +#: ../lib/types/user.inc:44 +msgid "Back to user list" +msgstr "Regresar a la lista de usuarios" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:64 +msgid "Back up" +msgstr "Regresar" + +#: ../templates/serverInfo.php:163 +msgid "Backends" +msgstr "Entorno" + +#: ../lib/modules/passwordSelfReset.inc:88 +#: ../lib/modules/passwordSelfReset.inc:191 +#: ../lib/modules/passwordSelfReset.inc:201 +#: ../lib/modules/passwordSelfReset.inc:213 +#: ../lib/modules/passwordSelfReset.inc:220 +#: ../lib/modules/passwordSelfReset.inc:276 +#: ../lib/modules/passwordSelfReset.inc:387 +#: ../lib/modules/passwordSelfReset.inc:675 +msgid "Backup email" +msgstr "Correo electrónico de backup" + +#: ../lib/modules/passwordSelfReset.inc:89 +msgid "" +"Backup email address for password reset mails. Useful if user password " +"grants access to standard mailbox." +msgstr "" +"Las direcciones de correo de backup para los correos de reseteo de " +"contraseña. De utilidad si la contraseña de usuario permite acceso al buzón " +"de correo estándard." + +#: ../lib/modules/sudoRole.inc:155 +msgid "Backup script" +msgstr "Script de salva" + +#: ../lib/modules/sambaSamAccount.inc:567 +msgid "Baghdad, Riyadh, Moscow" +msgstr "Bagdad, Riad, Moscú" + +#: ../lib/types/pykotaBillingCodeType.inc:93 ../lib/modules/pykotaGroup.inc:62 +#: ../lib/modules/pykotaUser.inc:62 ../lib/modules/pykotaUser.inc:132 +#: ../lib/modules/pykotaUser.inc:170 ../lib/modules/pykotaUser.inc:241 +#: ../lib/modules/pykotaUser.inc:262 ../lib/modules/pykotaUser.inc:322 +#: ../lib/modules/pykotaUser.inc:365 ../lib/modules/pykotaUser.inc:900 +#: ../lib/modules/pykotaUser.inc:947 ../lib/modules/pykotaBillingCode.inc:85 +#: ../lib/modules/pykotaBillingCode.inc:117 +#: ../lib/modules/pykotaBillingCode.inc:143 +#: ../lib/modules/pykotaBillingCode.inc:263 +msgid "Balance" +msgstr "Balance" + +#: ../lib/modules/pykotaUser.inc:281 +msgid "Balance (read-only)" +msgstr "Balance (sólo lectura)" + +#: ../lib/modules/pykotaUser.inc:136 ../lib/modules/pykotaUser.inc:247 +msgid "Balance comment" +msgstr "Comentario de balance" + +#: ../lib/modules/sambaSamAccount.inc:571 +msgid "Bangkok, Hanoi, Jakarta" +msgstr "Bangkok, Hanói, Yakarta" + +#: ../lib/types/zarafaAddressListType.inc:93 +#: ../lib/types/zarafaDynamicGroupType.inc:94 +#: ../lib/modules/zarafaDynamicGroup.inc:87 +#: ../lib/modules/zarafaDynamicGroup.inc:101 +#: ../lib/modules/zarafaDynamicGroup.inc:152 +#: ../lib/modules/zarafaDynamicGroup.inc:170 +#: ../lib/modules/zarafaDynamicGroup.inc:198 +#: ../lib/modules/zarafaDynamicGroup.inc:231 +#: ../lib/modules/zarafaDynamicGroup.inc:449 +#: ../lib/modules/zarafaAddressList.inc:75 +#: ../lib/modules/zarafaAddressList.inc:89 +#: ../lib/modules/zarafaAddressList.inc:128 +#: ../lib/modules/zarafaAddressList.inc:144 +#: ../lib/modules/zarafaAddressList.inc:169 +#: ../lib/modules/zarafaAddressList.inc:198 +#: ../lib/modules/zarafaAddressList.inc:332 +msgid "Base" +msgstr "Base" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:142 +#: ../templates/3rdParty/pla/htdocs/export_form.php:31 +msgid "Base (base dn only)" +msgstr "Base (sólo DN base)" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:121 +#: ../templates/3rdParty/pla/lib/QueryRender.php:506 +#: ../templates/3rdParty/pla/htdocs/export_form.php:59 +msgid "Base DN" +msgstr "DN base" + +#: ../templates/config/confmodules.php:212 ../help/help.inc:144 +msgid "Base module" +msgstr "Módulo base" + +#: ../templates/pdfedit/pdfpage.php:441 +msgid "Beginning" +msgstr "Comienzo" + +#: ../lib/modules/sambaSamAccount.inc:572 +msgid "Beijing, Perth, Singapore" +msgstr "Pekín, Perth, Singapur" + +#: ../lib/types/pykotaBillingCodeType.inc:91 +#: ../lib/modules/pykotaBillingCode.inc:77 +#: ../lib/modules/pykotaBillingCode.inc:115 +#: ../lib/modules/pykotaBillingCode.inc:127 +#: ../lib/modules/pykotaBillingCode.inc:129 +#: ../lib/modules/pykotaBillingCode.inc:141 +#: ../lib/modules/pykotaBillingCode.inc:261 +msgid "Billing code" +msgstr "Código de facturación" + +#: ../lib/modules/pykotaBillingCode.inc:129 +#: ../lib/modules/pykotaBillingCode.inc:130 +msgid "Billing code already exists!" +msgstr "El código de facturación ya existe" + +#: ../lib/modules/pykotaBillingCode.inc:127 +#: ../lib/modules/pykotaBillingCode.inc:128 +msgid "" +"Billing code contains invalid characters. Valid characters are: a-z, A-Z, " +"0-9 and .-_ !" +msgstr "" +"El código de facturación contiene caracters inválidos. Los caracteres " +"válidos son: a-z, A-Z, 0-9 y .-_ !" + +#: ../lib/types/pykotaBillingCodeType.inc:163 +#, php-format +msgid "Billing code count: %s" +msgstr "Cantidad de códigos de facturación: %s" + +#: ../lib/modules/pykotaBillingCode.inc:82 +msgid "Billing code description." +msgstr "Descripción del código de facturación." + +#: ../lib/modules/pykotaBillingCode.inc:78 +msgid "" +"Billing code name which should be created. Valid characters are: a-z, A-Z, " +"0-9 and .-_ ." +msgstr "" +"El nombre de código de facturación el cual debería ser creado. Los " +"caracteres válidos son: a-z, A-Z, 0-9 y .-_ ." + +#: ../lib/types/pykotaBillingCodeType.inc:53 +msgid "Billing codes" +msgstr "Códigos de facturación" + +#: ../templates/3rdParty/pla/lib/PageRender.php:644 +#: ../templates/3rdParty/pla/lib/PageRender.php:648 +msgid "Binary value" +msgstr "Valor binario" + +#: ../templates/serverInfo.php:286 ../templates/serverInfo.php:375 +msgid "Bind" +msgstr "Unirse" + +#: ../lib/types/bind.inc:39 +msgid "Bind DNS" +msgstr "Unirse a DNS" + +#: ../lib/types/bind.inc:48 +msgid "Bind DNS entries" +msgstr "Entradas de unión a DNS" + +#: ../templates/config/confmain.php:444 +msgid "Bind password" +msgstr "Contraseña de Bind" + +#: ../templates/config/confmain.php:442 +msgid "Bind user" +msgstr "Usuario de Bind" + +#: ../help/help.inc:128 +msgid "Bind user and password" +msgstr "Usuario y contraseña de Bind" + +#: ../lib/modules/quota.inc:53 ../lib/modules/systemQuotas.inc:101 +msgid "Block hard quota" +msgstr "Cuota dura para bloques" + +#: ../lib/modules/quota.inc:53 ../lib/modules/quota.inc:54 +#: ../lib/modules/systemQuotas.inc:101 ../lib/modules/systemQuotas.inc:102 +msgid "" +"Block hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"La cuota dura para bloques contiene carácteres inválidos. Sólo se admiten " +"números naturales." + +#: ../lib/modules/quota.inc:59 ../lib/modules/systemQuotas.inc:107 +msgid "Block quota" +msgstr "Cuota de bloques" + +#: ../lib/modules/quota.inc:51 ../lib/modules/systemQuotas.inc:99 +msgid "Block soft quota" +msgstr "Cuota suave para bloques" + +#: ../lib/modules/quota.inc:51 ../lib/modules/quota.inc:52 +#: ../lib/modules/systemQuotas.inc:99 ../lib/modules/systemQuotas.inc:100 +msgid "" +"Block soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"La cuota suave para bloques contiene carácteres inválidos. Sólo se admiten " +"números naturales." + +#: ../lib/modules/quota.inc:59 ../lib/modules/quota.inc:60 +#: ../lib/modules/systemQuotas.inc:107 ../lib/modules/systemQuotas.inc:108 +msgid "Block soft quota must be smaller than block hard quota." +msgstr "La cuota suave para bloques debe ser menor que la cuota dura." + +#: ../lib/modules/qmailGroup.inc:72 ../lib/modules/qmailGroup.inc:143 +#: ../lib/modules/qmailGroup.inc:147 ../lib/modules/qmailGroup.inc:263 +#: ../lib/modules/qmailGroup.inc:375 ../lib/modules/qmailGroup.inc:431 +#: ../lib/modules/qmailGroup.inc:522 ../lib/modules/qmailGroup.inc:1059 +msgid "Bounce admin email" +msgstr "Correo electrónico administrador para rebotes" + +#: ../lib/modules/sambaSamAccount.inc:561 +msgid "Brazil, Buenos Aires" +msgstr "Brasil, Buenos Aires" + +#: ../templates/3rdParty/pla/htdocs/copy.php:53 +msgid "Building snapshot of tree to copy" +msgstr "Construyendo instantánea del árbol a copiar" + +#: ../lib/modules/sambaGroupMapping.inc:73 +msgid "Builtin group" +msgstr "Grupo incorporado del sistema" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:63 +msgid "Bulk edit the following DNs" +msgstr "Edición masiva de los siguientes DNs" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:48 +msgid "Bulk update the following DNs" +msgstr "Actualización masiva de los siguientes DNs" + +#: ../lib/modules/inetOrgPerson.inc:103 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:232 ../lib/modules/inetOrgPerson.inc:369 +#: ../lib/modules/inetOrgPerson.inc:599 ../lib/modules/inetOrgPerson.inc:764 +#: ../lib/modules/inetOrgPerson.inc:768 ../lib/modules/inetOrgPerson.inc:1473 +#: ../lib/modules/inetOrgPerson.inc:1476 ../lib/modules/inetOrgPerson.inc:1907 +#: ../lib/modules/inetOrgPerson.inc:2632 ../lib/modules/inetOrgPerson.inc:3545 +#: ../lib/modules/inetOrgPerson.inc:3586 +msgid "Business category" +msgstr "Categoría de negocios" + +#: ../lib/modules/inetOrgPerson.inc:765 ../lib/modules/inetOrgPerson.inc:769 +msgid "Business category (e.g. Administration, IT-Services, Manangement, ...)" +msgstr "" +"Categoría de negocios (p.ej. Administración, IT-Servicios, Gestión, ...)" + +#: ../help/help.inc:173 +msgid "" +"By default LAM will show all accounts that match the selected account " +"modules." +msgstr "" +"De manera predeterminada LAM mostrará todas las cuentas que verifican los " +"módulos de cuenta seleccionados." + +#: ../help/help.inc:243 +msgid "" +"By default all modifications are done as the user that authenticated in self " +"service. If active then LAM will use the connection user for all LDAP " +"modifications and searches." +msgstr "" +"De manera predeterminada todas las modificaciones son hechas con el usuario " +"que es autenticado en el autoservicio. Si está activo entonces LAM utilizará " +"la conexión de usuario para todas las modificaciones y búsquedas LDAP." + +#: ../lib/modules/selfRegistration.inc:103 +msgid "" +"By default all users are created in the self service LDAP suffix. You can " +"enter an alternative suffix here." +msgstr "" +"De manera predeterminada todos los usuarios son creados en el sujifo LDAP de " +"autoservicio. Puede ingresar un sufijo alternativo aquí." + +#: ../lib/modules/customScripts.inc:89 +msgid "" +"By default, LAM will show the executed command along with any output of it. " +"If you want to hide the command and only show the output then activate this " +"option." +msgstr "" +"De manera predeterminada, LAM mostrará el comando ejecutado durante " +"cualquier salida del mismo. Si desea puede ocultar el comando y sólo mostrar " +"la salida cuando se activa esta opción." + +#: ../templates/serverInfo.php:253 ../templates/serverInfo.php:259 +msgid "Bytes sent" +msgstr "Bytes enviados" + +#: ../lib/modules/bindDLZ.inc:261 ../lib/modules/bindDLZ.inc:267 +#: ../lib/modules/bindDLZ.inc:474 ../lib/modules/bindDLZ.inc:490 +msgid "CNAME record" +msgstr "Registro CNAME" + +#: ../lib/modules/bindDLZ.inc:432 +msgid "CNAME records" +msgstr "Registros CNAME" + +#: ../templates/masscreate.php:253 +msgid "CSV file" +msgstr "Archivo CSV" + +#: ../help/help.inc:107 +msgid "Cache timeout" +msgstr "Tiempo de espera de la caché:" + +#: ../lib/modules/asteriskAccount.inc:135 +#: ../lib/modules/asteriskAccount.inc:272 +#: ../lib/modules/asteriskAccount.inc:355 +#: ../lib/modules/asteriskAccount.inc:615 +#: ../lib/modules/asteriskAccount.inc:988 +#: ../lib/modules/asteriskAccount.inc:1245 +msgid "Call groups" +msgstr "Grupos de llamadas" + +#: ../lib/modules/asteriskAccount.inc:103 +#: ../lib/modules/asteriskAccount.inc:266 +#: ../lib/modules/asteriskAccount.inc:304 +#: ../lib/modules/asteriskAccount.inc:589 +#: ../lib/modules/asteriskAccount.inc:982 +msgid "Caller ID" +msgstr "Identificador de llamada" + +#: ../lib/modules/sambaSamAccount.inc:306 +#: ../lib/modules/sambaSamAccount.inc:309 +#: ../lib/modules/sambaSamAccount.inc:312 +#: ../lib/modules/sambaSamAccount.inc:318 ../lib/modules/posixAccount.inc:535 +#: ../lib/modules/organizationalRoleUser.inc:61 +#: ../lib/modules/windowsUser.inc:205 ../lib/modules/windowsUser.inc:210 +#: ../lib/modules/sambaGroupMapping.inc:159 +#: ../lib/modules/shadowAccount.inc:178 ../lib/modules/shadowAccount.inc:182 +#: ../lib/modules/shadowAccount.inc:186 ../lib/modules/shadowAccount.inc:190 +#: ../lib/modules/groupOfNamesUser.inc:61 +msgid "Can be left empty." +msgstr "Puede dejarse vacío." + +#: ../lib/modules/asteriskAccount.inc:223 +#: ../lib/modules/asteriskAccount.inc:294 +#: ../lib/modules/asteriskAccount.inc:515 +#: ../lib/modules/asteriskAccount.inc:741 +#: ../lib/modules/asteriskAccount.inc:1010 +#: ../lib/modules/asteriskAccount.inc:1289 +msgid "Can call forward" +msgstr "Puede reenviar llamada" + +#: ../templates/lists/changePassword.php:340 +#: ../templates/lists/changePassword.php:377 +#: ../templates/lists/changePassword.php:418 +#: ../templates/lists/changePassword.php:449 ../templates/ou_edit.php:121 +#: ../templates/config/profmanage.php:254 +#: ../templates/config/profmanage.php:266 +#: ../templates/config/profmanage.php:275 +#: ../templates/config/profmanage.php:293 +#: ../templates/config/profmanage.php:304 +#: ../templates/config/mainmanage.php:470 +#: ../templates/config/confmodules.php:227 +#: ../templates/config/confmain.php:471 +#: ../templates/config/moduleSettings.php:241 +#: ../templates/config/conftypes.php:341 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminMain.php:748 +#: ../templates/pdfedit/pdfpage.php:638 ../templates/pdfedit/pdfmain.php:210 +#: ../templates/pdfedit/pdfmain.php:217 ../templates/pdfedit/pdfmain.php:223 +#: ../templates/delete.php:121 ../templates/profedit/profilepage.php:241 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/profedit/profilemain.php:205 +#: ../templates/profedit/profilemain.php:211 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:197 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:83 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:136 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:121 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:119 +#: ../templates/initsuff.php:191 ../lib/types/automountType.inc:234 +#: ../lib/types/user.inc:303 ../lib/types/bind.inc:175 +#: ../lib/modules/kolabGroup.inc:294 ../lib/modules/pykotaPrinter.inc:431 +#: ../lib/modules/mitKerberos.inc:690 ../lib/modules/qmailUser.inc:921 +#: ../lib/modules/zarafaContact.inc:391 ../lib/modules/windowsHost.inc:226 +#: ../lib/modules/zarafaGroup.inc:451 ../lib/modules/device.inc:254 +#: ../lib/modules/sambaSamAccount.inc:1432 +#: ../lib/modules/sambaSamAccount.inc:1481 +#: ../lib/modules/sambaSamAccount.inc:1567 ../lib/modules/zarafaUser.inc:875 +#: ../lib/modules/kolabUser.inc:520 ../lib/modules/sambaGroupMapping.inc:490 +#: ../lib/modules/shadowAccount.inc:478 ../lib/modules/nisnetgroup.inc:490 +#: ../lib/modules/inetOrgPerson.inc:1710 ../lib/modules/freeRadius.inc:431 +#: ../lib/modules/kolabSharedFolder.inc:434 +#: ../lib/modules/customFields.inc:1084 ../lib/modules/aliasEntry.inc:147 +#: ../lib/modules/aliasEntry.inc:167 ../lib/modules/qmailGroup.inc:823 +#: ../lib/modules/organizationalRole.inc:318 ../lib/modules/fixed_ip.inc:587 +#: ../lib/modules/heimdalKerberos.inc:600 ../lib/modules/windowsGroup.inc:505 +#: ../lib/modules/windowsGroup.inc:557 ../lib/modules/groupOfNames.inc:375 +#: ../lib/modules/groupOfNames.inc:530 ../lib/modules/nisMailAlias.inc:385 +#: ../lib/lists.inc:711 ../lib/lists.inc:792 ../lib/modules.inc:1222 +msgid "Cancel" +msgstr "Cancelar" + +#: ../templates/login.php:569 ../templates/login.php:627 +#: ../templates/login.php:632 +#: ../templates/selfService/selfServiceLogin.php:141 +#: ../templates/selfService/selfServiceLogin.php:190 +#: ../templates/selfService/selfServiceLogin.php:195 +#: ../templates/selfService/selfServiceMain.php:168 +#: ../templates/selfService/selfServiceMain.php:189 +#: ../lib/modules/selfRegistration.inc:699 +msgid "Cannot connect to specified LDAP server. Please try again." +msgstr "" +"Imposible conectar al servidor LDAP especificado. Por favor, reintente." + +#: ../templates/login.php:310 ../lib/config.inc:1641 +msgid "Cannot open config file!" +msgstr "¡Imposible abrir el archivo de configuración!" + +#: ../lib/modules/imapAccess.inc:187 +msgid "Cannot update quota." +msgstr "Imposible actualizar la cuota." + +#: ../lib/config.inc:1653 ../lib/config.inc:1661 +msgid "" +"Cannot write certificate file. Please check the permissions of config/" +"serverCerts.pem." +msgstr "" +"No se puede escribir el archivo del certificado. Por favor verifique los " +"permisos de config/serverCerts.pem" + +#: ../lib/modules/zarafaUser.inc:120 ../lib/modules/zarafaUser.inc:247 +#: ../lib/modules/zarafaUser.inc:364 ../lib/modules/zarafaUser.inc:415 +#: ../lib/modules/zarafaUser.inc:545 ../lib/modules/zarafaUser.inc:1232 +#: ../lib/modules/zarafaUser.inc:1799 +msgid "Capacity" +msgstr "Capacidad" + +#: ../templates/selfService/adminMain.php:528 +msgid "Captions and labels" +msgstr "Títulos y etiquetas" + +#: ../lib/modules/inetOrgPerson.inc:160 ../lib/modules/inetOrgPerson.inc:523 +#: ../lib/modules/inetOrgPerson.inc:593 ../lib/modules/inetOrgPerson.inc:788 +#: ../lib/modules/inetOrgPerson.inc:1446 ../lib/modules/inetOrgPerson.inc:1449 +#: ../lib/modules/inetOrgPerson.inc:1909 ../lib/modules/inetOrgPerson.inc:2610 +#: ../lib/modules/inetOrgPerson.inc:3541 ../lib/modules/inetOrgPerson.inc:3585 +msgid "Car license" +msgstr "Licencia de conducción" + +#: ../lib/modules/sambaSamAccount.inc:565 +msgid "Central Europe Time, Paris, Berlin" +msgstr "Horario de Europa central, París, Berlín" + +#: ../lib/modules/sambaSamAccount.inc:558 +msgid "Central Time (US & Canada), Mexico City" +msgstr "Horario central (EE.UU. y Canada), Ciudad de México" + +#: ../templates/selfService/adminMain.php:546 +#: ../lib/modules/mitKerberos.inc:377 ../lib/modules/mitKerberos.inc:388 +#: ../lib/modules/mitKerberos.inc:686 ../lib/modules/qmailUser.inc:661 +#: ../lib/modules/qmailUser.inc:917 ../lib/modules/zarafaContact.inc:229 +#: ../lib/modules/windowsHost.inc:155 ../lib/modules/windowsHost.inc:225 +#: ../lib/modules/zarafaGroup.inc:266 ../lib/modules/device.inc:181 +#: ../lib/modules/sambaSamAccount.inc:1192 +#: ../lib/modules/sambaSamAccount.inc:1477 ../lib/modules/zarafaUser.inc:466 +#: ../lib/modules/zarafaUser.inc:557 ../lib/modules/shadowAccount.inc:355 +#: ../lib/modules/shadowAccount.inc:474 ../lib/modules/inetOrgPerson.inc:1533 +#: ../lib/modules/freeRadius.inc:301 ../lib/modules/freeRadius.inc:427 +#: ../lib/modules/asteriskExtension.inc:236 ../lib/modules/aliasEntry.inc:100 +#: ../lib/modules/qmailGroup.inc:572 ../lib/modules/organizationalRole.inc:194 +#: ../lib/modules/passwordSelfReset.inc:271 +#: ../lib/modules/heimdalKerberos.inc:324 +#: ../lib/modules/heimdalKerberos.inc:335 +#: ../lib/modules/heimdalKerberos.inc:596 ../lib/modules/windowsGroup.inc:361 +#: ../lib/modules/windowsGroup.inc:504 ../lib/modules/groupOfNames.inc:241 +#: ../lib/modules/groupOfNames.inc:248 +msgid "Change" +msgstr "Cambiar" + +#: ../templates/lists/changePassword.php:223 +msgid "Change Asterisk password" +msgstr "Cambiar la contraseña Asterix" + +#: ../templates/lists/changePassword.php:235 +msgid "Change Asterisk voicemail password" +msgstr "Cambiar la contraseña del Buzón de Voz Asterix" + +#: ../lib/modules/posixGroup.inc:218 ../lib/modules/posixGroup.inc:512 +msgid "Change GID number of users and hosts" +msgstr "Cambiar GID de usuarios y equipos" + +#: ../templates/lists/changePassword.php:226 +#: ../templates/lists/changePassword.php:229 +msgid "Change Kerberos password" +msgstr "Cambiar la contraseña Kerberos" + +#: ../templates/lists/changePassword.php:216 +msgid "Change Samba LM password" +msgstr "Cambiar la contraseña Samba LM" + +#: ../templates/lists/changePassword.php:214 +msgid "Change Samba NT password" +msgstr "Cambiar la contraseña Samba NT" + +#: ../templates/lists/changePassword.php:208 +msgid "Change Unix password" +msgstr "Cambiar la contraseña UNIX" + +#: ../templates/lists/changePassword.php:232 +msgid "Change Windows password" +msgstr "Cambiar la contraseña WINDOWS" + +#: ../lib/types/user.inc:303 +msgid "Change account status" +msgstr "Cambiar estado de la cuenta" + +#: ../templates/config/profmanage.php:300 +#: ../templates/config/profmanage.php:303 ../help/help.inc:138 +msgid "Change default profile" +msgstr "Cambiar el perfil predeterminado" + +#: ../templates/selfService/adminMain.php:607 +msgid "Change field label." +msgstr "Etiqueta de cambio de campo." + +#: ../lib/lists.inc:792 +msgid "Change list settings" +msgstr "Cambiar las preferencias de listado" + +#: ../templates/config/mainmanage.php:454 ../help/help.inc:140 +msgid "Change master password" +msgstr "Cambiar la contraseña maestra" + +#: ../templates/lists/changePassword.php:211 +#: ../templates/lists/changePassword.php:256 +#: ../templates/lists/changePassword.php:337 +#: ../templates/lists/changePassword.php:339 +#: ../templates/lists/changePassword.php:374 +#: ../templates/lists/changePassword.php:376 ../lib/types/user.inc:669 +#: ../help/help.inc:105 +msgid "Change password" +msgstr "Cambiar la contraseña" + +#: ../templates/lists/changePassword.php:263 +#: ../templates/lists/changePassword.php:264 +msgid "Change password now?" +msgstr "¿Cambiar la contraseña ahora?" + +#: ../templates/config/confmain.php:261 +msgid "Change passwords" +msgstr "Cambiar contraseñas" + +#: ../lib/lists.inc:793 +msgid "Change settings" +msgstr "Cambiar configuración" + +#: ../lib/modules/posixAccount.inc:1225 +msgid "Changed value because only ASCII characters are allowed." +msgstr "Se ha cambiado el valor porque sólo se admiten caracteres ASCII." + +#: ../lib/modules/passwordSelfReset.inc:185 +msgid "Charlie" +msgstr "Carlos" + +#: ../lib/modules/posixAccount.inc:1485 +msgid "Check home directories" +msgstr "Comprobar los directorios de inicio" + +#: ../templates/tests/index.php:54 ../lib/tools/tests.inc:112 +msgid "Check if quotas and homedirectories can be managed." +msgstr "" +"Comprobar si las cuotas y los directorios de inicio pueden gestionarse." + +#: ../templates/tests/index.php:60 ../lib/tools/tests.inc:118 +msgid "" +"Check if the LDAP schema fits the requirements of the selected account " +"modules." +msgstr "" +"Comprobar si el esquema de LDAP se ajusta a los requisitos de los módulos de " +"la cuenta seleccionada." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2401 +msgid "Check password" +msgstr "Verificar contraseña" + +#: ../templates/tests/lamdaemonTest.php:87 +msgid "Check quotas" +msgstr "Comprobar quotas" + +#: ../templates/masscreate.php:247 +msgid "" +"Check your input carefully. LAM will only do some basic checks on the upload " +"data." +msgstr "" +"Comprueba tu entrada cuidadosamente. LAM solo hará alguna comprobación " +"básica para carga de datos." + +#: ../lib/modules/customFields.inc:2735 +msgid "Checkbox" +msgstr "Checkbox" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1224 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1229 +msgid "Children" +msgstr "Hijos" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:23 +msgid "Choose entry" +msgstr "Seleccionar entrada" + +#: ../lib/modules/imapAccess.inc:90 +msgid "" +"Choose the way how to provide the IMAP admin password. You can use the same " +"password as for the LAM login or LAM will ask you for a password when it is " +"required." +msgstr "" +"Elija la manera de proveer la contraseña de administrador IMAP. Puede " +"utilizar la misma contraseña que para el acceso a LAM, o LAM le pedirá una " +"contraseña cuando se requiera." + +#: ../lib/modules/puppetClient.inc:92 ../lib/modules/puppetClient.inc:96 +#: ../lib/modules/puppetClient.inc:140 ../lib/modules/puppetClient.inc:155 +#: ../lib/modules/puppetClient.inc:168 ../lib/modules/puppetClient.inc:271 +#: ../lib/modules/puppetClient.inc:433 +msgid "Classes" +msgstr "Clases" + +#: ../lib/lists.inc:384 +msgid "Clear filter" +msgstr "Limpiar filtro de búsqueda" + +#: ../lib/config.inc:224 +msgid "Click here if you are not directed to the next page." +msgstr "" +"Haga click aquí si no se le redirge automáticamente a la página siguiente." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2349 +msgid "Click to popup a dialog to select a date graphically" +msgstr "" +"Cliquear para desplegar un cuadro de diálogo para seleccionar una fecha " +"gráficamente" + +#: ../templates/3rdParty/pla/lib/functions.php:2293 +msgid "Click to popup a dialog to select an entry (DN) graphically" +msgstr "" +"Cliquear para desplegar un cuadro de diálogo para seleccionar una entrada " +"(DN) gráficamente" + +#: ../lib/types/user.inc:619 +msgid "Click to switch between thumbnail and original size." +msgstr "Click para cambiar entre vista minuatura y tamaño original" + +#: ../lib/modules/sambaSamAccount.inc:241 +#: ../lib/modules/sambaSamAccount.inc:378 +#: ../lib/modules/sambaSamAccount.inc:1535 +#: ../lib/modules/sambaSamAccount.inc:1943 +msgid "Client printer is default" +msgstr "Impresora predeterminada" + +#: ../templates/schema/schema.php:199 +msgid "Collective" +msgstr "Colectivo" + +#: ../lib/modules/pykotaPrinter.inc:155 +msgid "Color laser printer" +msgstr "Impresora Laser Color" + +#: ../templates/masscreate.php:284 ../lib/modules/customFields.inc:128 +#: ../lib/modules/customFields.inc:2601 +msgid "Columns" +msgstr "Columnas" + +#: ../lib/modules/sambaSamAccount.inc:318 +msgid "" +"Comma separated list of Samba workstations the user is allowed to login. " +"Empty means every workstation." +msgstr "" +"Lista (separada por comas) de estaciones de trabajo a través de las cuales " +"el usuario está autorizado a Iniciar sesión. Vacio significará todas las " +"estacioines de trabajo." + +#: ../lib/modules/authorizedServiceObject.inc:86 +msgid "Comma separated list of services (e.g. sshd, imap, ftp)." +msgstr "Listado de servicios delimitado por comas (p.ej. sshd, imap, ftp)." + +#: ../lib/types/sudo.inc:80 ../lib/modules/customScripts.inc:169 +msgid "Command" +msgstr "Commando" + +#: ../lib/modules/sudoRole.inc:82 ../lib/modules/sudoRole.inc:108 +#: ../lib/modules/sudoRole.inc:171 ../lib/modules/sudoRole.inc:218 +#: ../lib/modules/sudoRole.inc:230 ../lib/modules/sudoRole.inc:370 +#: ../lib/modules/sudoRole.inc:808 +msgid "Commands" +msgstr "Comandos" + +#: ../lib/modules/pykotaUser.inc:375 ../lib/modules/pykotaUser.inc:599 +#: ../lib/modules/pykotaUser.inc:907 ../lib/modules/pykotaUser.inc:967 +msgid "Comment" +msgstr "Comentario" + +#: ../lib/modules/pykotaUser.inc:137 +msgid "Comment for initial balance." +msgstr "Comentario para el balance inicial." + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:117 +msgid "Commit" +msgstr "Salvar" + +#: ../lib/modules/posixAccount.inc:438 +msgid "Common examples are \"@givenname@%sn%\" or \"%givenname%.%sn%\"." +msgstr "Ejemplos típicos son \"@givenname@%sn%\" o \"%givenname%.%sn%\"." + +#: ../templates/config/mainmanage.php:362 ../lib/types/user.inc:94 +#: ../lib/modules/pykotaGroup.inc:113 ../lib/modules/pykotaGroup.inc:157 +#: ../lib/modules/pykotaGroup.inc:185 ../lib/modules/pykotaGroup.inc:466 +#: ../lib/modules/posixAccount.inc:129 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:348 ../lib/modules/posixAccount.inc:421 +#: ../lib/modules/posixAccount.inc:538 ../lib/modules/posixAccount.inc:560 +#: ../lib/modules/posixAccount.inc:1429 ../lib/modules/posixAccount.inc:1851 +#: ../lib/modules/posixAccount.inc:2552 ../lib/modules/windowsUser.inc:102 +#: ../lib/modules/windowsUser.inc:290 ../lib/modules/windowsUser.inc:473 +#: ../lib/modules/windowsUser.inc:499 ../lib/modules/windowsUser.inc:591 +#: ../lib/modules/windowsUser.inc:702 ../lib/modules/windowsUser.inc:1586 +#: ../lib/modules/pykotaUser.inc:108 ../lib/modules/pykotaUser.inc:199 +#: ../lib/modules/pykotaUser.inc:271 ../lib/modules/pykotaUser.inc:405 +#: ../lib/modules/pykotaUser.inc:888 ../lib/modules/inetOrgPerson.inc:93 +#: ../lib/modules/inetOrgPerson.inc:626 ../lib/modules/inetOrgPerson.inc:740 +#: ../lib/modules/inetOrgPerson.inc:1197 ../lib/modules/inetOrgPerson.inc:1200 +#: ../lib/modules/inetOrgPerson.inc:1904 ../lib/modules/inetOrgPerson.inc:2035 +#: ../lib/modules/inetOrgPerson.inc:3595 +#: ../lib/modules/asteriskExtension.inc:118 +msgid "Common name" +msgstr "Nombre común" + +#: ../lib/modules/asteriskExtension.inc:119 +msgid "Common name of the Asterisk extension." +msgstr "Nombre para extensión Asterisk" + +#: ../templates/serverInfo.php:335 ../templates/serverInfo.php:396 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1172 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:60 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:39 +msgid "Compare" +msgstr "Comparar" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:28 +#, php-format +msgid "Compare another DN with %s" +msgstr "Comparar otro DN con %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1169 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +msgid "Compare this DN with another" +msgstr "Comparar esta entrada DN con otra" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +msgid "Compare with another entry" +msgstr "Comparar con otra entrada" + +#: ../templates/3rdParty/pla/htdocs/compare.php:42 +msgid "Comparing the following DNs" +msgstr "Comparando los siguientes DNs" + +#: ../templates/serverInfo.php:284 ../templates/serverInfo.php:371 +msgid "Completed" +msgstr "Completado" + +#: ../templates/serverInfo.php:114 +msgid "Config suffix" +msgstr "Sufijo de configuración" + +#: ../templates/config/index.php:50 +msgid "Configuration overview" +msgstr "Introduccion a la configuracion" + +#: ../lib/modules/qmailUser.inc:126 ../lib/modules/qmailUser.inc:179 +#: ../lib/modules/qmailUser.inc:259 ../lib/modules/qmailUser.inc:392 +#: ../lib/modules/qmailUser.inc:439 ../lib/modules/qmailUser.inc:619 +#: ../lib/modules/qmailUser.inc:1178 +msgid "Configuration type" +msgstr "Tipo de configuración" + +#: ../lib/modules/qmailGroup.inc:96 ../lib/modules/qmailGroup.inc:228 +#: ../lib/modules/qmailGroup.inc:361 ../lib/modules/qmailGroup.inc:411 +#: ../lib/modules/qmailGroup.inc:623 ../lib/modules/qmailGroup.inc:1081 +msgid "Confirm sender" +msgstr "Confirmar remitente" + +#: ../lib/modules/selfRegistration.inc:228 +msgid "Confirmation mail settings" +msgstr "Confirmar Configuración de Correo Electrónico" + +#: ../lib/modules/qmailGroup.inc:74 ../lib/modules/qmailGroup.inc:103 +#: ../lib/modules/qmailGroup.inc:152 ../lib/modules/qmailGroup.inc:271 +#: ../lib/modules/qmailGroup.inc:378 ../lib/modules/qmailGroup.inc:591 +#: ../lib/modules/qmailGroup.inc:1060 +msgid "Confirmation text" +msgstr "Texto de confirmación" + +#: ../lib/modules/qmailGroup.inc:153 +msgid "" +"Confirmation text that is used if sender-confirmation is used. The usual " +"%HEADER% magic of qmail-reply etc. can be used here." +msgstr "" +"Texto de confirmación que es utilizado si es utilizada la confirmación de " +"remitente. El usual %HEADER% de qmail-reply etc puede ser utilizado aquí." + +#: ../templates/config/confmodules.php:394 +msgid "Conflicting module:" +msgstr "Módulo en conflicto:" + +#: ../lib/modules/sambaSamAccount.inc:239 +#: ../lib/modules/sambaSamAccount.inc:372 +#: ../lib/modules/sambaSamAccount.inc:1531 +#: ../lib/modules/sambaSamAccount.inc:1933 +msgid "Connect client drives" +msgstr "Conectar unidades del cliente" + +#: ../lib/modules/sambaSamAccount.inc:240 +#: ../lib/modules/sambaSamAccount.inc:375 +#: ../lib/modules/sambaSamAccount.inc:1533 +#: ../lib/modules/sambaSamAccount.inc:1938 +msgid "Connect client printers" +msgstr "Conectar impresoras del cliente" + +#: ../templates/serverInfo.php:230 +msgid "Connection statistics" +msgstr "Estadísticas de conexión" + +#: ../lib/types/oracleContextType.inc:78 ../lib/modules/oracleService.inc:65 +#: ../lib/modules/oracleService.inc:85 ../lib/modules/oracleService.inc:99 +#: ../lib/modules/oracleService.inc:123 ../lib/modules/oracleService.inc:171 +msgid "Connection string" +msgstr "Cadena de conexión" + +#: ../lib/modules/sambaSamAccount.inc:236 +#: ../lib/modules/sambaSamAccount.inc:1519 +#: ../lib/modules/sambaSamAccount.inc:1926 +msgid "Connection time limit" +msgstr "limite de tiempo de conexión" + +#: ../lib/modules/bindDLZ.inc:225 +msgid "Contact address for this zone (e.g. \"root.example.com.\")." +msgstr "Dirección de contacto para este zona (p.ej \"root.ejemplo.com.\")." + +#: ../lib/modules/windowsUser.inc:715 ../lib/modules/inetOrgPerson.inc:1377 +msgid "Contact data" +msgstr "Datos de contacto" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:721 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1301 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +msgid "Container" +msgstr "Contenedor" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1458 +msgid "Container and object classes" +msgstr "Clases de contenedores y objetos" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:27 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:88 +#: ../templates/3rdParty/pla/htdocs/copy.php:108 +msgid "Copy" +msgstr "copiar" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:32 +#, php-format +msgid "Copy %s to a new object." +msgstr "Copiar %s a un nuevo objecto" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1098 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1102 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1103 +msgid "Copy or move this entry" +msgstr "Copiar o mover esta entrada" + +#: ../templates/3rdParty/pla/htdocs/copy.php:130 +#, php-format +msgid "Copy successful. DN %s has been created." +msgstr "Copia exitosa. DN %s ha sido creado." + +#: ../templates/3rdParty/pla/htdocs/copy.php:48 +msgid "Copying" +msgstr "Copiando" + +#: ../templates/3rdParty/pla/htdocs/import.php:37 +msgid "Could not add object" +msgstr "Imposible agregar el objeto" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:370 +msgid "Could not add the object to the LDAP server." +msgstr "Imposible agregar el objeto al servidor LDAP." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:30 +msgid "Could not delete attribute value." +msgstr "Imposible borrar el valor de este atributo." + +#: ../templates/3rdParty/pla/htdocs/import.php:38 +msgid "Could not delete object" +msgstr "Imposible borrar este objeto" + +#: ../templates/3rdParty/pla/htdocs/delete.php:37 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:47 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:73 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:90 +msgid "Could not delete the entry." +msgstr "Imposible borrar esta entrada." + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:37 +#, php-format +msgid "Could not fetch binary data from LDAP server for attribute [%s]." +msgstr "" +"Imposible obtener datos binarios desde servidor LDAP para el atributo [%s]." + +#: ../templates/3rdParty/pla/lib/functions.php:1946 +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:60 +#, php-format +msgid "Could not fetch jpeg data from LDAP server for attribute [%s]." +msgstr "" +"No puede obtener datos jpeg desde el servidor LDAP para el atributo [%s]." + +#: ../templates/3rdParty/pla/htdocs/import.php:41 +msgid "Could not modify object" +msgstr "No puede modificar este objeto" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:528 +msgid "Could not perform ldap_modify operation." +msgstr "No se pudo realizar la operación ldap_modify." + +#: ../templates/config/profmanage.php:100 +#: ../templates/selfService/profManage.php:74 +msgid "Could not rename file!" +msgstr "No se pudo renombrar el archivo!" + +#: ../templates/3rdParty/pla/htdocs/import.php:39 +#: ../templates/3rdParty/pla/htdocs/import.php:40 +#: ../templates/3rdParty/pla/htdocs/rename.php:60 +msgid "Could not rename the entry." +msgstr "No se puede renombrar la entrada." + +#: ../templates/pdfedit/pdfpage.php:117 +msgid "Could not save PDF structure, access denied." +msgstr "No se pudo grabar la estructura PDF, acceso denegado." + +#: ../templates/pdfedit/pdfmain.php:182 +#: ../templates/profedit/profilemain.php:168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1185 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1189 +#: ../templates/initsuff.php:190 ../lib/modules/nisMailAliasUser.inc:366 +#: ../lib/modules/sambaSamAccount.inc:1620 +#: ../lib/modules/posixAccount.inc:1695 +msgid "Create" +msgstr "Crear" + +#: ../lib/lists.inc:500 ../lib/lists.inc:686 ../lib/modules.inc:1341 +#: ../help/help.inc:200 +msgid "Create PDF file" +msgstr "Crear PDF" + +#: ../templates/massDoUpload.php:202 ../templates/masscreate.php:264 +msgid "Create PDF files" +msgstr "Crear archivos PDF" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1186 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1190 +msgid "Create a child entry" +msgstr "Crear una entrada hija" + +#: ../templates/pdfedit/pdfmain.php:175 +msgid "Create a new PDF structure" +msgstr "Crear una nueva estructura en PDF " + +#: ../templates/profedit/profilemain.php:156 +msgid "Create a new profile" +msgstr "Crear un nuevo perfil" + +#: ../lib/types/dhcp.inc:46 +msgid "Create another DHCP entry" +msgstr "Crear nueva entrada de DHCP" + +#: ../lib/types/bind.inc:29 +msgid "Create another DNS entry" +msgstr "Crear otra entrada DNS" + +#: ../lib/types/nisObjectType.inc:29 +msgid "Create another NIS object" +msgstr "Crear otro objeto NIS" + +#: ../lib/baseType.inc:47 +msgid "Create another account" +msgstr "Crear una nueva cuenta" + +#: ../lib/types/zarafaAddressListType.inc:43 +msgid "Create another address list" +msgstr "Crear otro listado de direcciones" + +#: ../lib/types/mailAlias.inc:43 ../lib/types/alias.inc:43 +msgid "Create another alias" +msgstr "Crear un nuevo alias" + +#: ../lib/types/automountType.inc:34 +msgid "Create another automount entry" +msgstr "Crear otra entrada automount" + +#: ../lib/types/pykotaBillingCodeType.inc:43 +msgid "Create another billing code" +msgstr "Crear otro Código de Facturación" + +#: ../lib/types/oracleContextType.inc:29 +msgid "Create another database entry" +msgstr "Crear otra entrada en la base de datos" + +#: ../lib/types/smbDomain.inc:43 +msgid "Create another domain" +msgstr "Crear un nuevo dominio" + +#: ../templates/3rdParty/pla/htdocs/create.php:100 +msgid "Create another entry" +msgstr "Crear otra entrada" + +#: ../lib/types/asteriskExt.inc:46 +msgid "Create another extension" +msgstr "Crear otra extensión" + +#: ../lib/types/gon.inc:43 ../lib/types/zarafaDynamicGroupType.inc:43 +#: ../lib/types/group.inc:44 ../lib/types/netgroup.inc:43 +msgid "Create another group" +msgstr "Crear un nuevo grupo" + +#: ../lib/types/host.inc:43 +msgid "Create another host" +msgstr "Crear otro equipo" + +#: ../lib/types/ppolicyType.inc:29 +msgid "Create another policy" +msgstr "Crear otra política" + +#: ../lib/types/pykotaPrinterType.inc:43 +msgid "Create another printer" +msgstr "Crear otra impresora" + +#: ../lib/types/gon.inc:48 ../lib/types/group.inc:49 +msgid "Create another role" +msgstr "Crear otro rol" + +#: ../lib/types/kolabSharedFolderType.inc:43 +msgid "Create another shared folder" +msgstr "Crear otra carpeta compartida" + +#: ../lib/types/sudo.inc:29 +msgid "Create another sudo role" +msgstr "Crear otro rol sudo" + +#: ../lib/types/user.inc:43 +msgid "Create another user" +msgstr "Crear una nueva cuenta" + +#: ../lib/lists.inc:691 +msgid "Create for" +msgstr "Crear" + +#: ../lib/modules/posixAccount.inc:317 ../lib/modules/posixAccount.inc:1471 +#: ../lib/modules/posixAccount.inc:1760 +msgid "Create home directory" +msgstr "Crear el directorio del usuario" + +#: ../lib/modules/imapAccess.inc:263 +msgid "Create mailbox" +msgstr "Crear cuenta de correo electrónico" + +#: ../lib/modules/nisMailAliasUser.inc:359 +msgid "Create new alias" +msgstr "Crear un nuevo alias" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:278 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:281 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:283 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:506 +msgid "Create new entry here" +msgstr "Crear nueva entrada aquí" + +#: ../lib/modules/customFields.inc:72 ../lib/modules/customFields.inc:519 +#: ../lib/modules/customFields.inc:532 +msgid "Create new group" +msgstr "Crear un nuevo grupo" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:698 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1541 +#: ../templates/3rdParty/pla/htdocs/create.php:84 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:52 +msgid "Create object" +msgstr "Crear objeto" + +#: ../lib/modules/generalInformation.inc:76 +msgid "Created by" +msgstr "Creado por" + +#: ../lib/types/automountType.inc:273 +msgid "Created new automount map." +msgstr "Creado nuevo mapeo automap." + +#: ../templates/config/profmanage.php:77 +#: ../templates/selfService/profManage.php:55 +msgid "Created new profile." +msgstr "Se ha creado un nuevo perfil." + +#: ../lib/types/bind.inc:240 +msgid "Created new zone." +msgstr "Nueva zona creada." + +#: ../lib/modules/customFields.inc:73 +msgid "" +"Creates a new group for the given account type. Groups build a container for " +"object classes and attributes." +msgstr "" +"Crea un nuevo grupo para el tipo de cuenta dado. Los grupos crean un " +"contenedor para las clases de objetos y atributos." + +#: ../lib/tools/fileUpload.inc:53 +msgid "Creates accounts by uploading a CSV formated file." +msgstr "Crea cuentas de usuario mediante la transferencia de un archivo CSV." + +#: ../templates/3rdParty/pla/htdocs/create.php:77 +#, php-format +msgid "Creation successful. DN %s has been created." +msgstr "Creación correcta. DN %s ha sido creado." + +#: ../lib/modules/generalInformation.inc:80 +msgid "Creation time" +msgstr "Fecha de creación" + +#: ../lib/modules/pykotaUser.inc:133 +msgid "Current account balance for the user." +msgstr "Balance de cuenta actual para este usuario." + +#: ../templates/serverInfo.php:232 ../templates/serverInfo.php:237 +msgid "Current connections" +msgstr "Conexiones establecidas" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:65 +#, php-format +msgid "Current list of %s values for attribute %s:" +msgstr "Lista actual de %s valores para el atributo %s:" + +#: ../lib/modules/imapAccess.inc:317 +msgid "Current usage (kB)" +msgstr "Uso actual (kB)" + +#: ../lib/modules/customFields.inc:1097 ../lib/modules/customFields.inc:1420 +msgid "Custom fields" +msgstr "Campos Personalizados" + +#: ../lib/modules/customFields.inc:172 +msgid "Custom icon" +msgstr "Icono Personalizado" + +#: ../templates/config/conftypes.php:300 ../lib/modules/customFields.inc:168 +#: ../help/help.inc:180 +msgid "Custom label" +msgstr "Etiqueta personalizada" + +#: ../lib/modules/customScripts.inc:48 ../lib/modules/customScripts.inc:59 +#: ../lib/modules/customScripts.inc:73 ../lib/modules/customScripts.inc:98 +#: ../lib/modules/customScripts.inc:108 +msgid "Custom scripts" +msgstr "Personalizar Script" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1097 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1101 +msgid "Cut" +msgstr "Cortar" + +#: ../lib/modules/ddns.inc:63 +msgid "DDNS" +msgstr "DDNS" + +#: ../lib/modules/ddns.inc:377 +msgid "" +"DDNS ist not activated. You can activate it in the DHCP settings (DDNS)." +msgstr "" +"DDNS no esta activado. Tu puedes activarlo en la configuración del DHCP " +"(DDNS)." + +#: ../lib/types/dhcp.inc:56 +msgid "DHCP" +msgstr "DHCP" + +#: ../lib/types/dhcp.inc:65 +msgid "DHCP administration" +msgstr "Administracion DHCP" + +#: ../lib/types/dhcp.inc:170 +#, php-format +msgid "DHCP count: %s" +msgstr "Conteo DHCP: %s" + +#: ../lib/types/dhcp.inc:173 ../lib/modules/dhcp_settings.inc:127 +msgid "DHCP settings" +msgstr "Opciones de DHCP" + +#: ../templates/delete.php:100 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:734 +#: ../templates/3rdParty/pla/lib/PageRender.php:110 +#: ../templates/3rdParty/pla/htdocs/compare.php:52 +#: ../templates/3rdParty/pla/htdocs/compare.php:58 +#: ../templates/3rdParty/pla/htdocs/create.php:92 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:35 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:112 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:57 ../lib/modules.inc:410 +#: ../lib/modules.inc:1956 +msgid "DN" +msgstr "DN" + +#: ../templates/3rdParty/pla/lib/import_functions.php:210 +#: ../templates/3rdParty/pla/lib/import_functions.php:222 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1866 +msgid "DN does not exist" +msgstr "El DN no existe" + +#: ../templates/masscreate.php:288 +msgid "DN settings" +msgstr "Opcioines de DN" + +#: ../templates/masscreate.php:317 ../help/help.inc:190 +msgid "DN suffix" +msgstr "Sufijo DN" + +#: ../lib/modules/dhcp_settings.inc:211 ../lib/modules/dhcp_settings.inc:226 +#: ../lib/modules/dhcp_settings.inc:268 ../lib/modules/dhcp_settings.inc:577 +#: ../lib/modules/dhcp_settings.inc:677 +msgid "DNS" +msgstr "DNS" + +#: ../lib/modules/dhcp_settings.inc:161 +msgid "DNS (Domain Name System)" +msgstr "DNS (Domain Name System), (Sistema de nombres de dominio)." + +#: ../lib/modules/bindDLZ.inc:67 +msgid "DNS entry" +msgstr "Entrada DNS" + +#: ../lib/types/bind.inc:159 +#, php-format +msgid "DNS entry count: %s" +msgstr "Cantidad de entradas DNS: %s" + +#: ../lib/modules/asteriskExtension.inc:115 +msgid "DNs of the extension owners" +msgstr "DNs de los propietarios de extensiones" + +#: ../templates/3rdParty/pla/lib/export_functions.php:343 +msgid "DSML V.1 Export" +msgstr "Exportar DSML V.1" + +#: ../lib/modules/asteriskAccount.inc:273 +#: ../lib/modules/asteriskAccount.inc:362 +#: ../lib/modules/asteriskAccount.inc:627 +#: ../lib/modules/asteriskAccount.inc:1247 +msgid "DTFM flags" +msgstr "Banderas DTFM" + +#: ../lib/modules/asteriskAccount.inc:139 +#: ../lib/modules/asteriskAccount.inc:989 +msgid "DTMF mode" +msgstr "modo DTMF" + +#: ../lib/modules/asteriskAccount.inc:140 +msgid "DTMF mode for SIP client configuration." +msgstr "Modo DTMF para configuración de cliente SIP." + +#: ../templates/3rdParty/pla/htdocs/import.php:103 +msgid "Data" +msgstr "Datos" + +#: ../lib/types/oracleContextType.inc:186 +#, php-format +msgid "Database count: %s" +msgstr "Cantidad de Base de Datos: %s" + +#: ../lib/modules/pykotaUser.inc:595 ../lib/modules/pykotaUser.inc:646 +#: ../lib/modules/pykotaUser.inc:905 ../lib/modules/pykotaUser.inc:963 +#: ../lib/modules/pykotaUser.inc:995 +msgid "Date" +msgstr "Fecha" + +#: ../lib/modules/sambaSamAccount.inc:298 +msgid "Date after the user is able to change his password." +msgstr "" +"Fecha a partir de la cual el usuario está autorizado a cambiar su contraseña." + +#: ../lib/modules/mitKerberos.inc:121 ../lib/modules/sambaSamAccount.inc:300 +#: ../lib/modules/heimdalKerberos.inc:107 +msgid "Date after the user must change his password." +msgstr "Fecha en la que el usuario deberá cambiar su contraseña." + +#: ../lib/modules/shadowAccount.inc:178 +msgid "" +"Days before password is to expire that user is warned of pending password " +"expiration. If set value must be >0." +msgstr "" +"Numero de dias antes de que caduque la contraseña, a partir de los cuales el " +"usuario será avisado de dicha caducidad. En caso de especificar valor, debe " +"ser menor que 0." + +#: ../templates/config/mainmanage.php:408 +msgid "Debug" +msgstr "Depuración" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:592 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +#: ../lib/modules/qmailUser.inc:47 ../lib/modules/qmailUser.inc:292 +#: ../lib/modules/qmailUser.inc:1060 +msgid "Default" +msgstr "Valor por defecto" + +#: ../templates/config/mainmanage.php:443 +msgid "Default (\\r\\n)" +msgstr "Predeterminado (\\r\\n)" + +#: ../lib/modules/dhcp_settings.inc:165 ../lib/modules/dhcp_settings.inc:212 +#: ../lib/modules/dhcp_settings.inc:227 ../lib/modules/dhcp_settings.inc:274 +#: ../lib/modules/dhcp_settings.inc:579 ../lib/modules/dhcp_settings.inc:678 +msgid "Default gateway" +msgstr "Puerta de enlace por defecto" + +#: ../templates/config/confmain.php:297 +#: ../templates/selfService/adminMain.php:485 ../help/help.inc:99 +msgid "Default language" +msgstr "Idioma por defecto" + +#: ../lib/modules/asteriskAccount.inc:231 +#: ../lib/modules/asteriskAccount.inc:296 +#: ../lib/modules/asteriskAccount.inc:530 +#: ../lib/modules/asteriskAccount.inc:750 +#: ../lib/modules/asteriskAccount.inc:1012 +#: ../lib/modules/asteriskAccount.inc:1293 +msgid "Default user" +msgstr "Valor por defecto de usuario" + +#: ../templates/masscreate.php:306 ../templates/masscreate.php:380 +#: ../lib/modules/customFields.inc:124 ../lib/modules/customFields.inc:2761 +msgid "Default value" +msgstr "Valor por defecto" + +#: ../help/help.inc:159 +msgid "" +"Defines if the PHP error reporting setting from php.ini is used or the " +"setting preferred by LAM (\"E_ALL & ~E_NOTICE\"). If you do not develop LAM " +"modules please use the default. This will prevent displaying messages that " +"are useful only for developers." +msgstr "" +"Define si la configuración de reporte de errores PHP es utilizada desde php." +"ni o si es utilizada la preferida por LAM (\"E_ALL & ~E_NOTICE\"). Si no " +"desarrolla módulos LAM por favor utilice el predeterminado. Esto previene " +"que se muestren mensajes que son solamente útiles para los desarrolladores." + +#: ../lib/modules/sambaDomain.inc:118 +msgid "Defines if workstations may change their passwords." +msgstr "Define si las estaciones de trabajo pueden cambiar los passwords." + +#: ../lib/modules/asteriskAccount.inc:160 +msgid "" +"Defines the mailbox to check for message waiting indication (MWI) for this " +"peer." +msgstr "" +"Define el buzón de correo para chequear la indicación del mensaje de espera " +"(WMI) para este par." + +#: ../lib/types/kolabSharedFolderType.inc:91 ../lib/modules/kolabUser.inc:116 +#: ../lib/modules/kolabUser.inc:132 ../lib/modules/kolabUser.inc:136 +#: ../lib/modules/kolabUser.inc:211 ../lib/modules/kolabUser.inc:234 +#: ../lib/modules/kolabUser.inc:359 ../lib/modules/kolabUser.inc:765 +#: ../lib/modules/kolabUser.inc:837 ../lib/modules/kolabSharedFolder.inc:138 +#: ../lib/modules/kolabSharedFolder.inc:142 +#: ../lib/modules/kolabSharedFolder.inc:226 +#: ../lib/modules/kolabSharedFolder.inc:237 +#: ../lib/modules/kolabSharedFolder.inc:320 +#: ../lib/modules/kolabSharedFolder.inc:564 +msgid "Delegates" +msgstr "Delegaciones" + +#: ../lib/modules/kolabSharedFolder.inc:139 +msgid "" +"Delegates are allowed to act on behalf of the shared folder. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"Delegados son permitidos a actuar en parte de la carpeta compartida. Esta " +"propiedad es chequeada cuando se usa el demonio smtp Kolab (Postfix) para " +"enviar correos." + +#: ../templates/serverInfo.php:321 ../templates/serverInfo.php:390 +#: ../templates/multiEdit.php:126 ../templates/ou_edit.php:120 +#: ../templates/config/profmanage.php:273 +#: ../templates/selfService/profManage.php:238 +#: ../templates/pdfedit/pdfmain.php:209 ../templates/pdfedit/pdfmain.php:210 +#: ../templates/pdfedit/pdfmain.php:243 ../templates/delete.php:120 +#: ../templates/profedit/profilemain.php:198 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:33 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:124 +#: ../lib/modules/pykotaPrinter.inc:281 +#: ../lib/modules/sambaSamAccount.inc:1613 +#: ../lib/modules/posixAccount.inc:1688 ../lib/modules/zarafaUser.inc:1434 +#: ../lib/modules/zarafaUser.inc:1486 ../lib/modules/bindDLZ.inc:1055 +#: ../lib/modules/bindDLZ.inc:1376 ../lib/modules/kolabUser.inc:827 +#: ../lib/modules/sambaGroupMapping.inc:405 +#: ../lib/modules/ldapPublicKey.inc:262 ../lib/modules/nisnetgroup.inc:253 +#: ../lib/modules/inetOrgPerson.inc:2805 ../lib/modules/customFields.inc:2086 +#: ../lib/modules/customFields.inc:3462 ../lib/lists.inc:494 +msgid "Delete" +msgstr "Borrar" + +#: ../templates/3rdParty/pla/htdocs/delete.php:31 +msgid "Delete DN" +msgstr "Borrar DN" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:30 +msgid "Delete LDAP entries" +msgstr "Borrar entradas LDAP" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:77 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:84 +msgid "Delete after copy (move):" +msgstr "Borrar después de copiar (mover):" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:72 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:110 +#, php-format +msgid "Delete all %s objects" +msgstr "Borrar todos los objetos %s" + +#: ../templates/config/mainmanage.php:324 +msgid "Delete all CA certificates" +msgstr "Borrar todos los certificados CA" + +#: ../lib/modules/customFields.inc:624 +msgid "Delete group" +msgstr "Borrar grupo" + +#: ../lib/modules/posixAccount.inc:1532 +msgid "Delete home directory" +msgstr "Borrar directorio del usuario" + +#: ../lib/modules/imapAccess.inc:256 +msgid "Delete mailbox" +msgstr "Borrar cuenta de correo electrónico" + +#: ../templates/ou_edit.php:199 ../help/help.inc:265 +msgid "Delete organisational unit" +msgstr "Borrar unidad organizativa" + +#: ../templates/3rdParty/pla/lib/functions.php:2014 +#: ../lib/modules/inetOrgPerson.inc:1588 +msgid "Delete photo" +msgstr "Borrar foto" + +#: ../templates/config/profmanage.php:271 +#: ../templates/config/profmanage.php:274 +#: ../templates/selfService/profManage.php:232 +#: ../templates/selfService/profManage.php:239 ../help/help.inc:134 +msgid "Delete profile" +msgstr "Borrar perfil" + +#: ../lib/modules/range.inc:98 ../lib/modules/range.inc:116 +#: ../lib/modules/range.inc:445 +msgid "Delete range" +msgstr "Borrar rango" + +#: ../lib/modules/asteriskExtension.inc:316 +#: ../lib/modules/asteriskExtension.inc:339 +msgid "Delete rule" +msgstr "Eliminar regla" + +#: ../lib/types/dhcp.inc:174 +msgid "Delete selected DHCP entries" +msgstr "Eliminar las entradas DHCP seleccionadas" + +#: ../lib/types/bind.inc:162 +msgid "Delete selected DNS entries" +msgstr "Eliminar las entradas DNS seleccionadas" + +#: ../lib/types/nisObjectType.inc:158 +msgid "Delete selected NIS objects" +msgstr "Eliminar los objetos NIS seleccionados" + +#: ../lib/types/zarafaAddressListType.inc:147 +msgid "Delete selected address lists" +msgstr "Eliminar las listas de direcciones seleccionadas" + +#: ../lib/types/mailAlias.inc:144 ../lib/types/alias.inc:144 +msgid "Delete selected aliases" +msgstr "Eliminar los alias seleccionados" + +#: ../lib/types/automountType.inc:218 +msgid "Delete selected automount entries" +msgstr "Eliminar las entradas de automontaje seleccionadas" + +#: ../lib/types/pykotaBillingCodeType.inc:166 +msgid "Delete selected billing codes" +msgstr "Eliminar códigos de facturación seleccionados" + +#: ../lib/types/oracleContextType.inc:189 +msgid "Delete selected database entries" +msgstr "Eliminar las entradas de base de datos seleccionadas" + +#: ../lib/types/smbDomain.inc:170 +msgid "Delete selected domains" +msgstr "Eliminar los dominios seleccionados" + +#: ../lib/types/asteriskExt.inc:146 +msgid "Delete selected extensions" +msgstr "Eliminar las extensiones seleccionadas" + +#: ../lib/types/gon.inc:205 ../lib/types/zarafaDynamicGroupType.inc:168 +#: ../lib/types/group.inc:243 ../lib/types/netgroup.inc:172 +msgid "Delete selected groups" +msgstr "Eliminar los grupos seleccionados" + +#: ../lib/types/host.inc:196 +msgid "Delete selected hosts" +msgstr "Eliminar los equipos seleccionados" + +#: ../lib/lists.inc:115 +msgid "Delete selected objects" +msgstr "Eliminar los objetos seleccionados" + +#: ../lib/types/ppolicyType.inc:152 +msgid "Delete selected policies" +msgstr "Eliminar las políticas seleccionadas" + +#: ../lib/types/pykotaPrinterType.inc:167 +msgid "Delete selected printers" +msgstr "Eliminar impresoras seleccionadas" + +#: ../lib/types/gon.inc:212 ../lib/types/group.inc:250 +msgid "Delete selected roles" +msgstr "Eliminar roles seleccionados" + +#: ../lib/types/kolabSharedFolderType.inc:144 +msgid "Delete selected shared folders" +msgstr "Eliminar las carpetas compartidas seleccionadas" + +#: ../lib/types/sudo.inc:162 +msgid "Delete selected sudo roles" +msgstr "Eliminar los roles sudo seleccionados" + +#: ../lib/types/user.inc:532 +msgid "Delete selected users" +msgstr "Eliminar los usuarios seleccionados" + +#: ../templates/3rdParty/pla/htdocs/copy.php:146 +#, php-format +msgid "Delete successful: %s" +msgstr "Borrado correcto: %s" + +#: ../lib/modules/posixAccount.inc:485 ../lib/modules/posixAccount.inc:1538 +msgid "Delete sudo rights" +msgstr "Eliminar permisos sudo" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "Delete this entry" +msgstr "Borrar esta entrada" + +#: ../lib/modules/nisMailAliasUser.inc:156 +#: ../lib/modules/nisMailAliasUser.inc:195 +#, php-format +msgid "Delete whole alias entry which includes %s recipients." +msgstr "Borra todas las entradas alias que inculyan destinatario %s ." + +#: ../lib/modules/qmailUser.inc:44 +msgid "Deleted" +msgstr "Eliminado" + +#: ../templates/delete.php:272 +#, php-format +msgid "Deleted DN: %s" +msgstr "DN suprimido: %s" + +#: ../templates/pdfedit/pdfmain.php:89 +msgid "Deleted PDF structure." +msgstr "Estructura PDF borrada." + +#: ../templates/profedit/profilemain.php:103 +msgid "Deleted profile." +msgstr "Perfil suprimido." + +#: ../lib/modules/range.inc:99 +msgid "Deletes an IP range." +msgstr "Borrado un rango de IP" + +#: ../lib/modules/posixAccount.inc:486 +msgid "Deletes the user from all existing sudo rights." +msgstr "Borra el usuario de todos los permisos existentes sudo." + +#: ../templates/3rdParty/pla/htdocs/import.php:29 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:65 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:82 +msgid "Deleting" +msgstr "Borrando" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:73 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:125 +msgid "Deleting objects" +msgstr "Eliminando objetos" + +#: ../lib/modules/qmailUser.inc:124 ../lib/modules/qmailUser.inc:255 +#: ../lib/modules/qmailUser.inc:382 ../lib/modules/qmailUser.inc:436 +#: ../lib/modules/qmailUser.inc:658 ../lib/modules/qmailUser.inc:899 +#: ../lib/modules/qmailUser.inc:1170 +msgid "Deletion date" +msgstr "Fecha de eliminación" + +#: ../lib/lists.inc:1068 +msgid "Deletion was successful." +msgstr "Borrado terminó correctamente." + +#: ../lib/modules/qmailUser.inc:215 ../lib/modules/qmailUser.inc:290 +#: ../lib/modules/qmailUser.inc:403 ../lib/modules/qmailUser.inc:629 +#: ../lib/modules/qmailUser.inc:1164 +msgid "Delivery mode" +msgstr "Modo de delivery" + +#: ../lib/modules/qmailUser.inc:122 ../lib/modules/qmailUser.inc:175 +#: ../lib/modules/qmailUser.inc:251 ../lib/modules/qmailUser.inc:374 +#: ../lib/modules/qmailUser.inc:433 ../lib/modules/qmailUser.inc:648 +#: ../lib/modules/qmailUser.inc:1150 +msgid "Delivery program" +msgstr "Programa de delivery" + +#: ../lib/modules/asteriskAccount.inc:167 +#: ../lib/modules/asteriskAccount.inc:280 +#: ../lib/modules/asteriskAccount.inc:414 +#: ../lib/modules/asteriskAccount.inc:674 +#: ../lib/modules/asteriskAccount.inc:996 +#: ../lib/modules/asteriskAccount.inc:1261 +#: ../lib/modules/dhcp_settings.inc:104 +msgid "Deny" +msgstr "Denegar" + +#: ../lib/modules/pykotaGroup.inc:65 ../lib/modules/pykotaUser.inc:65 +msgid "Deny printing" +msgstr "No permitir impresión" + +#: ../lib/modules/inetOrgPerson.inc:162 ../lib/modules/inetOrgPerson.inc:217 +#: ../lib/modules/inetOrgPerson.inc:483 ../lib/modules/inetOrgPerson.inc:602 +#: ../lib/modules/inetOrgPerson.inc:800 ../lib/modules/inetOrgPerson.inc:804 +#: ../lib/modules/inetOrgPerson.inc:1481 ../lib/modules/inetOrgPerson.inc:1484 +#: ../lib/modules/inetOrgPerson.inc:1919 ../lib/modules/inetOrgPerson.inc:2670 +#: ../lib/modules/inetOrgPerson.inc:3547 ../lib/modules/inetOrgPerson.inc:3587 +msgid "Department" +msgstr "Departamento" + +#: ../lib/modules/kolabGroup.inc:105 ../lib/modules/kolabGroup.inc:109 +#: ../lib/modules/kolabUser.inc:162 ../lib/modules/kolabUser.inc:166 +#: ../lib/modules/kolabSharedFolder.inc:130 +#: ../lib/modules/kolabSharedFolder.inc:134 +msgid "" +"Describes the allowed or disallowed SMTP addresses sending mail to this " +"account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "" +"Describe las direcciones remitentes permitidas y no permitidas SMTP para " +"esta cuenta (p.ej. \"dominio.tld\" or \"-usuario@dominio.tld\")." + +#: ../lib/modules/kolabGroup.inc:96 ../lib/modules/kolabGroup.inc:100 +#: ../lib/modules/kolabUser.inc:153 ../lib/modules/kolabUser.inc:157 +#: ../lib/modules/kolabSharedFolder.inc:121 +#: ../lib/modules/kolabSharedFolder.inc:125 +msgid "" +"Describes the allowed or disallowed SMTP recipient addresses for mail sent " +"by this account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "" +"Describe las direcciones destinatario permitidas y no permitidas SMTP para " +"esta cuenta (p.ej. \"dominio.tld\" or \"-usuario@dominio.tld\")." + +#: ../templates/schema/schema.php:89 ../templates/schema/schema.php:143 +#: ../templates/schema/schema.php:346 +#: ../templates/3rdParty/pla/lib/functions.php:1898 +#: ../templates/3rdParty/pla/lib/functions.php:1902 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:139 +#: ../templates/3rdParty/pla/htdocs/import.php:101 +#: ../lib/types/automountType.inc:88 ../lib/types/nisObjectType.inc:80 +#: ../lib/types/oracleContextType.inc:79 +#: ../lib/types/pykotaBillingCodeType.inc:92 ../lib/types/user.inc:101 +#: ../lib/types/pykotaPrinterType.inc:92 ../lib/types/sudo.inc:84 +#: ../lib/types/dhcp.inc:96 ../lib/types/netgroup.inc:92 +#: ../lib/modules/pykotaPrinter.inc:99 ../lib/modules/pykotaPrinter.inc:153 +#: ../lib/modules/pykotaPrinter.inc:194 ../lib/modules/pykotaPrinter.inc:248 +#: ../lib/modules/pykotaPrinter.inc:585 ../lib/modules/account.inc:82 +#: ../lib/modules/account.inc:95 ../lib/modules/account.inc:105 +#: ../lib/modules/account.inc:113 ../lib/modules/account.inc:218 +#: ../lib/modules/account.inc:229 ../lib/modules/windowsHost.inc:78 +#: ../lib/modules/windowsHost.inc:101 ../lib/modules/windowsHost.inc:120 +#: ../lib/modules/windowsHost.inc:143 ../lib/modules/windowsHost.inc:289 +#: ../lib/modules/posixGroup.inc:201 ../lib/modules/posixGroup.inc:430 +#: ../lib/modules/posixGroup.inc:484 ../lib/modules/posixGroup.inc:577 +#: ../lib/modules/device.inc:81 ../lib/modules/device.inc:115 +#: ../lib/modules/device.inc:130 ../lib/modules/device.inc:173 +#: ../lib/modules/device.inc:421 ../lib/modules/dhcp_settings.inc:197 +#: ../lib/modules/dhcp_settings.inc:217 ../lib/modules/dhcp_settings.inc:307 +#: ../lib/modules/dhcp_settings.inc:620 ../lib/modules/dhcp_settings.inc:684 +#: ../lib/modules/pykotaGroup.inc:117 ../lib/modules/pykotaGroup.inc:166 +#: ../lib/modules/pykotaGroup.inc:188 ../lib/modules/pykotaGroup.inc:233 +#: ../lib/modules/pykotaGroup.inc:468 ../lib/modules/posixAccount.inc:556 +#: ../lib/modules/windowsUser.inc:119 ../lib/modules/windowsUser.inc:308 +#: ../lib/modules/windowsUser.inc:500 ../lib/modules/windowsUser.inc:705 +#: ../lib/modules/windowsUser.inc:1588 ../lib/modules/nisObject.inc:73 +#: ../lib/modules/nisObject.inc:103 ../lib/modules/nisObject.inc:114 +#: ../lib/modules/nisObject.inc:155 ../lib/modules/nisObject.inc:212 +#: ../lib/modules/sambaGroupMapping.inc:114 +#: ../lib/modules/sambaGroupMapping.inc:542 ../lib/modules/pykotaUser.inc:120 +#: ../lib/modules/pykotaUser.inc:226 ../lib/modules/pykotaUser.inc:277 +#: ../lib/modules/pykotaUser.inc:413 ../lib/modules/pykotaUser.inc:892 +#: ../lib/modules/automount.inc:72 ../lib/modules/automount.inc:95 +#: ../lib/modules/automount.inc:105 ../lib/modules/automount.inc:132 +#: ../lib/modules/automount.inc:183 ../lib/modules/nisnetgroup.inc:87 +#: ../lib/modules/nisnetgroup.inc:140 ../lib/modules/nisnetgroup.inc:199 +#: ../lib/modules/nisnetgroup.inc:580 ../lib/modules/inetOrgPerson.inc:163 +#: ../lib/modules/inetOrgPerson.inc:175 ../lib/modules/inetOrgPerson.inc:329 +#: ../lib/modules/inetOrgPerson.inc:542 ../lib/modules/inetOrgPerson.inc:632 +#: ../lib/modules/inetOrgPerson.inc:1207 ../lib/modules/inetOrgPerson.inc:1210 +#: ../lib/modules/inetOrgPerson.inc:1890 ../lib/modules/inetOrgPerson.inc:2765 +#: ../lib/modules/inetOrgPerson.inc:3509 ../lib/modules/inetOrgPerson.inc:3576 +#: ../lib/modules/sudoRole.inc:70 ../lib/modules/sudoRole.inc:153 +#: ../lib/modules/sudoRole.inc:215 ../lib/modules/sudoRole.inc:305 +#: ../lib/modules/sudoRole.inc:805 ../lib/modules/oracleService.inc:69 +#: ../lib/modules/oracleService.inc:92 ../lib/modules/oracleService.inc:100 +#: ../lib/modules/oracleService.inc:122 ../lib/modules/oracleService.inc:172 +#: ../lib/modules/organizationalRole.inc:89 +#: ../lib/modules/organizationalRole.inc:123 +#: ../lib/modules/organizationalRole.inc:141 +#: ../lib/modules/organizationalRole.inc:163 +#: ../lib/modules/organizationalRole.inc:189 +#: ../lib/modules/organizationalRole.inc:453 ../lib/modules/fixed_ip.inc:110 +#: ../lib/modules/fixed_ip.inc:433 ../lib/modules/fixed_ip.inc:744 +#: ../lib/modules/pykotaBillingCode.inc:81 +#: ../lib/modules/pykotaBillingCode.inc:109 +#: ../lib/modules/pykotaBillingCode.inc:116 +#: ../lib/modules/pykotaBillingCode.inc:159 +#: ../lib/modules/pykotaBillingCode.inc:262 +#: ../lib/modules/windowsGroup.inc:118 ../lib/modules/windowsGroup.inc:183 +#: ../lib/modules/windowsGroup.inc:258 ../lib/modules/windowsGroup.inc:301 +#: ../lib/modules/windowsGroup.inc:746 ../lib/modules/groupOfNames.inc:89 +#: ../lib/modules/groupOfNames.inc:135 ../lib/modules/groupOfNames.inc:171 +#: ../lib/modules/groupOfNames.inc:199 ../lib/modules/groupOfNames.inc:235 +#: ../lib/modules/groupOfNames.inc:694 +msgid "Description" +msgstr "Descripción" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "Destination DN" +msgstr "DN destino" + +#: ../lib/modules/device.inc:45 +msgid "Device" +msgstr "Dispositivo" + +#: ../lib/modules/sambaSamAccount.inc:393 +#: ../lib/modules/sambaSamAccount.inc:584 +msgid "Disable LM hashes" +msgstr "Deshabilitar máscaras LM" + +#: ../lib/modules/ddns.inc:89 ../lib/modules/ddns.inc:370 +msgid "Disable client updates" +msgstr "Deshabilitar actualización de los clientes" + +#: ../lib/modules/posixGroup.inc:417 ../lib/modules/posixGroup.inc:533 +msgid "Disable membership management" +msgstr "Deshabilitar gestión de membresía" + +#: ../lib/modules/qmailUser.inc:43 +msgid "Disabled" +msgstr "Deshabilitado" + +#: ../lib/modules/ddns.inc:90 +msgid "Disables the client to update DNS entries." +msgstr "Deshabilitar el cliente para actualizar las entradas DNS. " + +#: ../lib/modules/posixGroup.inc:534 +msgid "Disables the group membership management." +msgstr "Deshabilitar gestión de membresía de grupo." + +#: ../lib/modules/mitKerberos.inc:172 +msgid "" +"Disables user-to-user authentication for this principal by prohibiting this " +"principal from obtaining a session key for another user." +msgstr "" +"Desactiva la autenticación usuario a usuario para este principio prohibiendo " +"esto principio de obtener una llave de sesión para otro usuario." + +#: ../lib/modules/heimdalKerberos.inc:130 +#: ../lib/modules/heimdalKerberos.inc:378 +msgid "Disallow TGT-based tickets" +msgstr "No permitir tickets TGT" + +#: ../lib/modules/mitKerberos.inc:174 ../lib/modules/mitKerberos.inc:452 +#: ../lib/modules/heimdalKerberos.inc:148 +#: ../lib/modules/heimdalKerberos.inc:383 +msgid "Disallow all tickets" +msgstr "No permitir ningún ticket" + +#: ../templates/config/conftypes.php:317 ../help/help.inc:178 +msgid "Disallow delete" +msgstr "No permitir eliminación" + +#: ../lib/modules/mitKerberos.inc:162 ../lib/modules/mitKerberos.inc:422 +#: ../lib/modules/heimdalKerberos.inc:133 +#: ../lib/modules/heimdalKerberos.inc:353 +msgid "Disallow forwardable tickets" +msgstr "No permitir tickets reenviables" + +#: ../lib/modules/mitKerberos.inc:159 ../lib/modules/mitKerberos.inc:437 +#: ../lib/modules/heimdalKerberos.inc:142 +#: ../lib/modules/heimdalKerberos.inc:368 +msgid "Disallow post-dated tickets" +msgstr "No permitir tickets post-fecha" + +#: ../lib/modules/mitKerberos.inc:168 ../lib/modules/mitKerberos.inc:427 +#: ../lib/modules/heimdalKerberos.inc:136 +#: ../lib/modules/heimdalKerberos.inc:358 +msgid "Disallow proxiable tickets" +msgstr "Desactivar tickets proxiables" + +#: ../lib/modules/mitKerberos.inc:165 ../lib/modules/mitKerberos.inc:432 +#: ../lib/modules/heimdalKerberos.inc:139 +#: ../lib/modules/heimdalKerberos.inc:363 +msgid "Disallow renewable tickets" +msgstr "Desactivar tickets renovables" + +#: ../lib/modules/mitKerberos.inc:186 ../lib/modules/mitKerberos.inc:442 +#: ../lib/modules/heimdalKerberos.inc:145 +#: ../lib/modules/heimdalKerberos.inc:373 +msgid "Disallow service tickets" +msgstr "No permitir tickets de servicio" + +#: ../lib/modules/mitKerberos.inc:171 ../lib/modules/mitKerberos.inc:447 +msgid "Disallow user-to-user authentication" +msgstr "No permitir autenticación usuario a usuario" + +#: ../lib/modules/asteriskAccount.inc:199 +#: ../lib/modules/asteriskAccount.inc:288 +#: ../lib/modules/asteriskAccount.inc:472 +#: ../lib/modules/asteriskAccount.inc:709 +#: ../lib/modules/asteriskAccount.inc:1004 +#: ../lib/modules/asteriskAccount.inc:1277 +msgid "Disallowed codec" +msgstr "Codec No Permitido" + +#: ../lib/modules/sambaDomain.inc:113 ../lib/modules/sambaDomain.inc:193 +#: ../lib/modules/sambaDomain.inc:299 ../lib/modules/sambaDomain.inc:621 +msgid "Disconnect users outside logon hours" +msgstr "Desconectar usuarios fuera de las horas de inicio de sesion" + +#: ../lib/modules/sambaSamAccount.inc:237 +#: ../lib/modules/sambaSamAccount.inc:1523 +#: ../lib/modules/sambaSamAccount.inc:1927 +msgid "Disconnection time limit" +msgstr "Tiempo limite de desconexión" + +#: ../lib/modules/sambaDomain.inc:114 +msgid "Disconnects users if they are logged in outside logon hours." +msgstr "Desconectar a los usuarios si inician sesión fuera de horario." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +#: ../lib/modules/organizationalRole.inc:106 +#: ../lib/modules/organizationalRole.inc:153 +#: ../lib/modules/groupOfNames.inc:118 ../lib/modules/groupOfNames.inc:187 +msgid "Display format" +msgstr "Formato de visualización" + +#: ../lib/modules/customFields.inc:176 ../lib/modules/customFields.inc:509 +msgid "Display multiple groups as accordion" +msgstr "Mostrar múltiples grupos como acordeón" + +#: ../lib/modules/sambaSamAccount.inc:111 +#: ../lib/modules/sambaSamAccount.inc:209 +#: ../lib/modules/sambaSamAccount.inc:258 +#: ../lib/modules/sambaSamAccount.inc:419 +#: ../lib/modules/sambaSamAccount.inc:1138 +#: ../lib/modules/sambaSamAccount.inc:1899 ../lib/modules/windowsUser.inc:123 +#: ../lib/modules/windowsUser.inc:296 ../lib/modules/windowsUser.inc:474 +#: ../lib/modules/windowsUser.inc:501 ../lib/modules/windowsUser.inc:595 +#: ../lib/modules/windowsUser.inc:703 ../lib/modules/windowsUser.inc:1589 +#: ../lib/modules/sambaGroupMapping.inc:112 +#: ../lib/modules/sambaGroupMapping.inc:146 +#: ../lib/modules/sambaGroupMapping.inc:359 +#: ../lib/modules/sambaGroupMapping.inc:540 +msgid "Display name" +msgstr "Nombre a mostrar" + +#: ../templates/lists/changePassword.php:317 +msgid "Display on screen" +msgstr "Mostrar en pantalla" + +#: ../templates/3rdParty/pla/htdocs/create.php:97 +msgid "Display the created entry" +msgstr "Mostrar la entrada creada" + +#: ../lib/modules.inc:503 +msgid "" +"Displayed account numbers start at \"0\". Add 2 to get the row in your " +"spreadsheet." +msgstr "" +"Los números de cuenta mostrados comienzan en \"0\". Añada 2 para obtener la " +"fila correspondiente en su hoja de cálculo." + +#: ../lib/modules/windowsGroup.inc:61 +msgid "Distribution" +msgstr "Distribución" + +#: ../lib/modules/passwordSelfReset.inc:140 +#: ../lib/modules/passwordSelfReset.inc:545 +msgid "Do not ask security question" +msgstr "No solicitar pregunta de seguridad" + +#: ../templates/ou_edit.php:112 +msgid "Do you really want to delete this OU?" +msgstr "¿Realmente desea eliminar esta OU (unidad organizativa)?" + +#: ../templates/pdfedit/pdfmain.php:351 +msgid "Do you really want to delete this PDF structure?" +msgstr "¿Realmente desea eliminar esta estructura PDF?" + +#: ../templates/profedit/profilemain.php:319 +msgid "Do you really want to delete this profile?" +msgstr "¿Realmente desea eliminar este perfil?" + +#: ../lib/modules/kolabGroup.inc:285 ../lib/modules/kolabUser.inc:515 +#: ../lib/modules/kolabSharedFolder.inc:425 +msgid "Do you really want to mark this account for deletion?" +msgstr "¿Realmente desea marcar esta cuenta para eliminar?" + +#: ../lib/modules/qmailGroup.inc:273 +msgid "Do you really want to post to this mailinglist?" +msgstr "¿Realmente desea postear en esta lista de correo electrónico?" + +#: ../templates/delete.php:94 +msgid "Do you really want to remove the following accounts?" +msgstr "¿Realmente desea quitar las cuentas especificadas?" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:59 +msgid "Do you want to create this entry?" +msgstr "¿Desea crear esta entrada?" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:36 +msgid "Do you want to make these changes?" +msgstr "¿Desea realizar estos cambios?" + +#: ../lib/modules/sambaSamAccount.inc:210 +#: ../lib/modules/sambaSamAccount.inc:336 +#: ../lib/modules/sambaSamAccount.inc:412 +#: ../lib/modules/sambaSamAccount.inc:536 +#: ../lib/modules/sambaSamAccount.inc:1280 +#: ../lib/modules/sambaSamAccount.inc:1774 +#: ../lib/modules/sambaSamAccount.inc:1796 +#: ../lib/modules/sambaSamAccount.inc:1905 ../lib/modules/windowsUser.inc:111 +#: ../lib/modules/windowsUser.inc:1656 +#: ../lib/modules/sambaGroupMapping.inc:158 +#: ../lib/modules/sambaGroupMapping.inc:386 +#: ../lib/modules/sambaGroupMapping.inc:576 ../lib/modules/nisnetgroup.inc:223 +#: ../lib/modules/nisnetgroup.inc:587 +msgid "Domain" +msgstr "Dominio" + +#: ../lib/modules/sambaSamAccount.inc:84 +msgid "Domain KRBTGT" +msgstr "Dominio KRBTGT" + +#: ../lib/types/smbDomain.inc:91 ../lib/modules/sambaDomain.inc:81 +#: ../lib/modules/sambaDomain.inc:151 ../lib/modules/sambaDomain.inc:185 +#: ../lib/modules/sambaDomain.inc:256 ../lib/modules/sambaDomain.inc:261 +#: ../lib/modules/sambaDomain.inc:600 +msgid "Domain SID" +msgstr "SID del Dominio" + +#: ../lib/modules/sambaGroupMapping.inc:125 +#: ../lib/modules/windowsGroup.inc:178 ../lib/modules/windowsGroup.inc:185 +#: ../lib/modules/windowsGroup.inc:191 +msgid "Domain administrators" +msgstr "Administradores del Dominio" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:60 +#: ../lib/modules/sambaGroupMapping.inc:131 +msgid "Domain admins" +msgstr "Administradores del Dominio" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:65 +msgid "Domain certificate admins" +msgstr "Administradores certificados del Dominio" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaSamAccount.inc:806 +#: ../lib/modules/sambaGroupMapping.inc:63 +msgid "Domain computers" +msgstr "Ordenadores del Dominio" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:64 +msgid "Domain controllers" +msgstr "Controladores del Dominio" + +#: ../lib/types/smbDomain.inc:167 +#, php-format +msgid "Domain count: %s" +msgstr "Conteo de dominios: %s" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:67 +msgid "Domain enterprise admins" +msgstr "Administradores empresariales del dominio" + +#: ../lib/modules/sambaGroupMapping.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:377 +msgid "Domain group" +msgstr "Grupo de dominio" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:62 +msgid "Domain guests" +msgstr "Invitados del dominio" + +#: ../lib/modules/windowsGroup.inc:64 +msgid "Domain local" +msgstr "Dominio local" + +#: ../lib/types/smbDomain.inc:92 ../lib/modules/dhcp_settings.inc:145 +#: ../lib/modules/dhcp_settings.inc:208 ../lib/modules/dhcp_settings.inc:223 +#: ../lib/modules/dhcp_settings.inc:250 ../lib/modules/dhcp_settings.inc:567 +#: ../lib/modules/dhcp_settings.inc:674 ../lib/modules/nisnetgroup.inc:154 +#: ../lib/modules/sambaDomain.inc:77 ../lib/modules/sambaDomain.inc:144 +#: ../lib/modules/sambaDomain.inc:184 ../lib/modules/sambaDomain.inc:241 +#: ../lib/modules/sambaDomain.inc:246 ../lib/modules/sambaDomain.inc:599 +msgid "Domain name" +msgstr "Nombre del dominio" + +#: ../lib/modules/nisnetgroup.inc:154 ../lib/modules/sambaDomain.inc:208 +#: ../lib/modules/sambaDomain.inc:209 +msgid "Domain name is invalid!" +msgstr "¡El nombre del dominio es inválido!" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:68 +msgid "Domain policy admins" +msgstr "Administradores de políticas del dominio" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:66 +msgid "Domain schema admins" +msgstr "Administradores del esquema del dominio" + +#: ../lib/modules/sambaSamAccount.inc:79 +#: ../lib/modules/sambaSamAccount.inc:2168 +#: ../lib/modules/sambaGroupMapping.inc:61 +msgid "Domain users" +msgstr "Usuarios del dominio" + +#: ../lib/modules/windowsUser.inc:240 ../lib/modules/windowsUser.inc:557 +msgid "Domains" +msgstr "Dominios" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:43 +msgid "Don't stop on errors" +msgstr "No detenerse ante errores" + +#: ../templates/pdfedit/pdfpage.php:475 +msgid "Down" +msgstr "Abajo" + +#: ../templates/config/mainmanage.php:321 +msgid "Download CA certificates" +msgstr "Bajar certificados CA" + +#: ../templates/masscreate.php:256 +msgid "Download sample CSV file" +msgstr "Descargar archivo CSV de ejemplo" + +#: ../templates/multiEdit.php:162 +msgid "Dry run" +msgstr "Corrida seca" + +#: ../templates/multiEdit.php:437 +msgid "DryRun finished." +msgstr "Corrida seca finalizada." + +#: ../templates/serverInfo.php:124 +msgid "Dynamic subtrees" +msgstr "Subárboles dinámicos" + +#: ../lib/modules/eduPerson.inc:72 +msgid "EDU person" +msgstr "Persona EDU" + +#: ../lib/modules/selfRegistration.inc:80 +msgid "" +"Each line represents one LDAP attribute. Please see the manual for a syntax " +"description." +msgstr "" +"Cada línea representa un atributo LDAP. Por favor consulte el manual para " +"una descripción de sintaxis." + +#: ../lib/modules/sambaSamAccount.inc:574 +msgid "East Australian Standard, Guam" +msgstr "Estándar del este de Australia, Guam" + +#: ../lib/modules/sambaSamAccount.inc:566 +msgid "Eastern Europe Time, South Africa" +msgstr "Horario de Europa del este, Sudáfrica" + +#: ../lib/modules/sambaSamAccount.inc:559 +msgid "Eastern Time (US & Canada), Bogota" +msgstr "Horario oriental (EE.UU. y Canadá), Bogotá" + +#: ../templates/pdfedit/pdfmain.php:206 +#: ../templates/profedit/profilemain.php:195 +#: ../lib/modules/sambaSamAccount.inc:1285 +#: ../lib/modules/sambaSamAccount.inc:1290 ../lib/lists.inc:488 +msgid "Edit" +msgstr "Editar" + +#: ../lib/modules.inc:1349 +msgid "Edit again" +msgstr "Editar nuevamente" + +#: ../templates/config/mainmanage.php:228 ../templates/config/index.php:99 +msgid "Edit general settings" +msgstr "Editar la configuración general" + +#: ../lib/modules/posixAccount.inc:1454 ../lib/modules/windowsUser.inc:786 +msgid "Edit groups" +msgstr "Editar grupos" + +#: ../lib/modules/posixGroup.inc:223 ../lib/modules/windowsGroup.inc:382 +msgid "Edit members" +msgstr "Editar miembros" + +#: ../templates/config/index.php:125 +msgid "Edit self service" +msgstr "Editar autoservicio" + +#: ../templates/config/index.php:111 +msgid "Edit server profiles" +msgstr "Editar perfiles del servidor" + +#: ../lib/modules/nisnetgroup.inc:208 +msgid "Edit subgroups" +msgstr "Editar subgrupos" + +#: ../lib/modules/sambaSamAccount.inc:1241 +msgid "Edit workstations" +msgstr "Editar estaciones de trabajo" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1872 +#: ../lib/types/zarafaDynamicGroupType.inc:92 ../lib/types/user.inc:100 +#: ../lib/modules/zarafaDynamicGroup.inc:243 +#: ../lib/modules/zarafaDynamicGroup.inc:248 +#: ../lib/modules/zarafaGroup.inc:234 ../lib/modules/zarafaGroup.inc:241 +#: ../lib/modules/passwordSelfReset.inc:500 +#: ../lib/modules/nisMailAlias.inc:344 +msgid "Email" +msgstr "Correo electrónico" + +#: ../lib/modules/inetOrgPerson.inc:79 +#, php-format +msgid "Email \"%s\" already in use." +msgstr "El correo electrónico \"%s\" ya está en uso." + +#: ../templates/lists/changePassword.php:283 ../lib/modules/kolabGroup.inc:87 +#: ../lib/modules/kolabGroup.inc:91 ../lib/modules/kolabGroup.inc:155 +#: ../lib/modules/kolabGroup.inc:168 ../lib/modules/kolabGroup.inc:177 +#: ../lib/modules/kolabGroup.inc:179 ../lib/modules/kolabGroup.inc:202 +#: ../lib/modules/kolabGroup.inc:423 ../lib/modules/selfRegistration.inc:400 +#: ../lib/modules/selfRegistration.inc:482 +#: ../lib/modules/zarafaDynamicGroup.inc:67 +#: ../lib/modules/zarafaDynamicGroup.inc:68 +#: ../lib/modules/zarafaDynamicGroup.inc:124 +#: ../lib/modules/zarafaDynamicGroup.inc:166 +#: ../lib/modules/zarafaDynamicGroup.inc:200 +#: ../lib/modules/zarafaDynamicGroup.inc:448 ../lib/modules/qmailUser.inc:199 +#: ../lib/modules/qmailUser.inc:299 ../lib/modules/qmailUser.inc:406 +#: ../lib/modules/qmailUser.inc:448 ../lib/modules/qmailUser.inc:492 +#: ../lib/modules/qmailUser.inc:1139 ../lib/modules/zarafaGroup.inc:69 +#: ../lib/modules/zarafaGroup.inc:70 ../lib/modules/zarafaGroup.inc:170 +#: ../lib/modules/zarafaGroup.inc:200 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:648 ../lib/modules/windowsUser.inc:140 +#: ../lib/modules/windowsUser.inc:350 ../lib/modules/windowsUser.inc:475 +#: ../lib/modules/windowsUser.inc:505 ../lib/modules/windowsUser.inc:607 +#: ../lib/modules/windowsUser.inc:716 ../lib/modules/windowsUser.inc:1593 +#: ../lib/modules/pykotaUser.inc:116 ../lib/modules/pykotaUser.inc:218 +#: ../lib/modules/pykotaUser.inc:274 ../lib/modules/pykotaUser.inc:319 +#: ../lib/modules/pykotaUser.inc:409 ../lib/modules/pykotaUser.inc:890 +#: ../lib/modules/inetOrgPerson.inc:78 ../lib/modules/inetOrgPerson.inc:79 +#: ../lib/modules/inetOrgPerson.inc:157 ../lib/modules/inetOrgPerson.inc:211 +#: ../lib/modules/inetOrgPerson.inc:449 ../lib/modules/inetOrgPerson.inc:584 +#: ../lib/modules/inetOrgPerson.inc:720 ../lib/modules/inetOrgPerson.inc:724 +#: ../lib/modules/inetOrgPerson.inc:1414 ../lib/modules/inetOrgPerson.inc:1417 +#: ../lib/modules/inetOrgPerson.inc:1903 ../lib/modules/inetOrgPerson.inc:2456 +#: ../lib/modules/inetOrgPerson.inc:3537 ../lib/modules/inetOrgPerson.inc:3584 +#: ../lib/modules/kolabSharedFolder.inc:116 +#: ../lib/modules/kolabSharedFolder.inc:181 +#: ../lib/modules/kolabSharedFolder.inc:239 +#: ../lib/modules/kolabSharedFolder.inc:259 +#: ../lib/modules/kolabSharedFolder.inc:281 +#: ../lib/modules/kolabSharedFolder.inc:558 +#: ../lib/modules/asteriskVoicemail.inc:107 +#: ../lib/modules/asteriskVoicemail.inc:140 +#: ../lib/modules/asteriskVoicemail.inc:178 +#: ../lib/modules/asteriskVoicemail.inc:254 +#: ../lib/modules/asteriskVoicemail.inc:374 ../lib/modules/qmailGroup.inc:123 +#: ../lib/modules/qmailGroup.inc:127 ../lib/modules/qmailGroup.inc:240 +#: ../lib/modules/qmailGroup.inc:371 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:457 ../lib/modules/qmailGroup.inc:1056 +#: ../lib/modules/imapAccess.inc:232 ../lib/modules/passwordSelfReset.inc:849 +#: ../lib/modules/passwordSelfReset.inc:1020 +#: ../lib/modules/windowsGroup.inc:126 ../lib/modules/windowsGroup.inc:165 +#: ../lib/modules/windowsGroup.inc:219 ../lib/modules/windowsGroup.inc:265 +#: ../lib/modules/windowsGroup.inc:285 ../lib/modules/windowsGroup.inc:303 +#: ../lib/modules/windowsGroup.inc:748 +msgid "Email address" +msgstr "Dirección de correo electrónico" + +#: ../lib/modules/kolabGroup.inc:179 ../lib/modules/kolabGroup.inc:180 +msgid "Email address already exists." +msgstr "La dirección de correo electrónico ya existe" + +#: ../lib/modules/asteriskVoicemail.inc:108 +msgid "Email address for this voicemail account." +msgstr "Correo electrónico para este buzón de voz." + +#: ../lib/modules/qmailGroup.inc:221 ../lib/modules/qmailGroup.inc:225 +msgid "Email addresses that are allowed to send to this list." +msgstr "" +"Direcciones de correo electrónico que son permitidas para enviar a esta " +"lista." + +#: ../lib/modules/qmailGroup.inc:205 ../lib/modules/qmailGroup.inc:209 +msgid "Email addresses that are member of this list." +msgstr "Direcciones de correo electrónico que son miembros de esta lista." + +#: ../lib/modules/qmailGroup.inc:213 ../lib/modules/qmailGroup.inc:217 +msgid "Email addresses that moderate this list (e.g. approve mails)." +msgstr "" +"Direcciones de correo electrónico que moderan esta lista (p.ej. aprobar " +"correos)." + +#: ../lib/modules/zarafaContact.inc:83 ../lib/modules/zarafaUser.inc:124 +#: ../lib/modules/windowsUser.inc:227 ../lib/modules/windowsUser.inc:231 +#: ../lib/modules/windowsUser.inc:356 ../lib/modules/windowsUser.inc:476 +#: ../lib/modules/windowsUser.inc:506 ../lib/modules/windowsUser.inc:609 +#: ../lib/modules/windowsUser.inc:717 ../lib/modules/windowsUser.inc:1594 +#: ../lib/modules/kolabUser.inc:140 ../lib/modules/kolabSharedFolder.inc:146 +msgid "Email alias" +msgstr "Alias de correo electrónico" + +#: ../lib/modules/zarafaContact.inc:84 ../lib/modules/zarafaUser.inc:125 +#: ../lib/modules/windowsUser.inc:228 ../lib/modules/windowsUser.inc:232 +#: ../lib/modules/kolabUser.inc:141 ../lib/modules/kolabSharedFolder.inc:147 +msgid "Email alias for this account." +msgstr "Alias de correo electrónico para esta cuenta." + +#: ../lib/modules/zarafaContact.inc:185 ../lib/modules/zarafaContact.inc:186 +#: ../lib/modules/zarafaUser.inc:417 ../lib/modules/zarafaUser.inc:418 +#: ../lib/modules/windowsUser.inc:609 ../lib/modules/windowsUser.inc:610 +#: ../lib/modules/kolabUser.inc:247 ../lib/modules/kolabSharedFolder.inc:254 +msgid "Email alias is invalid!" +msgstr "¡El alias de correo electrónico es inválido!" + +#: ../lib/modules/kolabUser.inc:144 ../lib/modules/kolabSharedFolder.inc:150 +msgid "Email alias list" +msgstr "Listado de alias de correo electrónico" + +#: ../lib/modules/kolabUser.inc:248 ../lib/modules/kolabSharedFolder.inc:255 +msgid "Email alias list has invalid format!" +msgstr "¡El listado de alias de correo electrónico tiene un formato inválido!" + +#: ../lib/types/kolabSharedFolderType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:97 +#: ../lib/modules/zarafaDynamicGroup.inc:71 +#: ../lib/modules/zarafaDynamicGroup.inc:75 +#: ../lib/modules/zarafaDynamicGroup.inc:130 +#: ../lib/modules/zarafaDynamicGroup.inc:167 +#: ../lib/modules/zarafaDynamicGroup.inc:258 +#: ../lib/modules/zarafaDynamicGroup.inc:451 +#: ../lib/modules/zarafaContact.inc:143 ../lib/modules/zarafaContact.inc:176 +#: ../lib/modules/zarafaContact.inc:207 ../lib/modules/zarafaContact.inc:566 +#: ../lib/modules/zarafaGroup.inc:73 ../lib/modules/zarafaGroup.inc:77 +#: ../lib/modules/zarafaGroup.inc:162 ../lib/modules/zarafaGroup.inc:197 +#: ../lib/modules/zarafaGroup.inc:252 ../lib/modules/zarafaGroup.inc:649 +#: ../lib/modules/zarafaUser.inc:188 ../lib/modules/zarafaUser.inc:370 +#: ../lib/modules/zarafaUser.inc:385 ../lib/modules/zarafaUser.inc:443 +#: ../lib/modules/zarafaUser.inc:1235 ../lib/modules/zarafaUser.inc:1497 +#: ../lib/modules/zarafaUser.inc:1809 ../lib/modules/kolabUser.inc:205 +#: ../lib/modules/kolabUser.inc:233 ../lib/modules/kolabUser.inc:351 +#: ../lib/modules/kolabUser.inc:764 ../lib/modules/kolabSharedFolder.inc:220 +#: ../lib/modules/kolabSharedFolder.inc:236 +#: ../lib/modules/kolabSharedFolder.inc:312 +#: ../lib/modules/kolabSharedFolder.inc:563 +msgid "Email aliases" +msgstr "Alias de correo electrónico" + +#: ../templates/config/mainmanage.php:446 ../help/help.inc:156 +msgid "Email format" +msgstr "Formato de correo electrónico" + +#: ../lib/modules/inetOrgPerson.inc:345 ../lib/modules/inetOrgPerson.inc:614 +#: ../lib/modules/inetOrgPerson.inc:832 ../lib/modules/inetOrgPerson.inc:1455 +#: ../lib/modules/inetOrgPerson.inc:1458 ../lib/modules/inetOrgPerson.inc:1914 +#: ../lib/modules/inetOrgPerson.inc:3555 ../lib/modules/inetOrgPerson.inc:3589 +#: ../lib/modules/passwordSelfReset.inc:503 +#: ../lib/modules/passwordSelfReset.inc:855 +#: ../lib/modules/passwordSelfReset.inc:1025 +msgid "Employee number" +msgstr "Número del empleado" + +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:229 +#: ../lib/modules/inetOrgPerson.inc:353 ../lib/modules/inetOrgPerson.inc:596 +#: ../lib/modules/inetOrgPerson.inc:652 ../lib/modules/inetOrgPerson.inc:1464 +#: ../lib/modules/inetOrgPerson.inc:1467 ../lib/modules/inetOrgPerson.inc:1912 +#: ../lib/modules/inetOrgPerson.inc:3543 ../lib/modules/inetOrgPerson.inc:3586 +msgid "Employee type" +msgstr "Tipo de empleado" + +#: ../lib/modules/inetOrgPerson.inc:653 +msgid "Employee type: Contractor, Employee, Intern, Temp, External, ..." +msgstr "" +"Tipo de empleado: Contratista, Empleado, Interno, Temporal, Externo, ..." + +#: ../templates/lists/changePassword.php:505 +#: ../templates/lists/changePassword.php:512 ../templates/login.php:543 +msgid "Empty password submitted. Please try again." +msgstr "Contraseña en blanco. Por favor, reintente." + +#: ../lib/modules/passwordSelfReset.inc:96 +#: ../lib/modules/passwordSelfReset.inc:490 +msgid "Enable password self reset link" +msgstr "Habilitar enlace de autorestablecimiento de contraseña" + +#: ../lib/modules/selfRegistration.inc:53 +#: ../lib/modules/selfRegistration.inc:190 +msgid "Enable self registration link" +msgstr "Habilitar enlace de auto registración" + +#: ../lib/modules/customFields.inc:153 +msgid "" +"Enables auto-completion for this field. All existing values of this " +"attribute will be offered as auto-complete values." +msgstr "" +"Activa autocompletar para este campo. Todos los valores existentes de este " +"atributo serán ofrecidos como valores de autocompletado." + +#: ../lib/modules/ppolicy.inc:97 +msgid "" +"Enables quality checking (e.g. password length) of passwords. If set to " +"\"force\" then you need to disable password hashing in your LAM server " +"profile to change passwords with LAM." +msgstr "" +"Habilita la verifcación de la calidad de las contraseñas (p.ej. la longitud " +"de la contraseña). Si se configura a \"forzar\" entonces necesitará " +"deshabilitar la máscara de contraseña en su perfil de servidor LAM para " +"cambiar las contraseñas con LAM." + +#: ../templates/multiEdit.php:312 +#: ../templates/3rdParty/pla/lib/export_functions.php:160 +msgid "Encountered an error while performing search." +msgstr "Se produjo un error al realizar la búsqueda." + +#: ../templates/config/mainmanage.php:304 ../help/help.inc:160 +msgid "Encrypt session" +msgstr "Encriptar sesión" + +#: ../lib/modules/imapAccess.inc:80 ../lib/modules/imapAccess.inc:120 +msgid "Encryption protocol" +msgstr "Protocolo de encripción" + +#: ../lib/modules/imapAccess.inc:81 +msgid "" +"Encryption protocol for connecting to IMAP server. LAM requires an encrypted " +"connection." +msgstr "" +"Protocolo de encripción para conectar al servidor IMAP. LAM requiere una " +"conexión encriptada." + +#: ../help/help.inc:161 +msgid "" +"Encrypts sensitive data like passwords in your session. This requires the " +"PHP MCrypt extension." +msgstr "" +"Encripta datos sensibles como contraseñas en su sesión. Esto requiere la " +"extensión PHP MCrypt." + +#: ../templates/selfService/adminMain.php:489 ../help/help.inc:103 +msgid "Enforce language" +msgstr "Forzar idioma" + +#: ../lib/modules/sambaSamAccount.inc:552 +msgid "Eniwetok, Kwajalein" +msgstr "Enewetak, Kwajalein" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:91 +msgid "Enter the values you would like to add:" +msgstr "Introduzca los valores que quisiera añadir:" + +#: ../lib/modules/eduPerson.inc:118 ../lib/modules/eduPerson.inc:122 +#: ../lib/modules/eduPerson.inc:194 ../lib/modules/eduPerson.inc:231 +#: ../lib/modules/eduPerson.inc:344 ../lib/modules/eduPerson.inc:586 +msgid "Entitlements" +msgstr "Derechos" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:471 +msgid "Entries found" +msgstr "Entradas encontradas" + +#: ../templates/serverInfo.php:269 +msgid "Entries sent" +msgstr "Entradas enviadas" + +#: ../templates/3rdParty/pla/lib/export_functions.php:473 +msgid "Entry" +msgstr "Entrada" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:43 +#, php-format +msgid "Entry %s and sub-tree deleted successfully." +msgstr "La entrada %s y el subárbol se eliminaron exitosamente." + +#: ../templates/3rdParty/pla/htdocs/create.php:90 +msgid "Entry created" +msgstr "Entrada creada" + +#: ../templates/delete.php:330 +#: ../templates/3rdParty/pla/htdocs/mass_update.php:26 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:26 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:27 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:24 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:56 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:33 +msgid "Entry does not exist" +msgstr "La entrada no existe" + +#: ../lib/modules/puppetClient.inc:80 ../lib/modules/puppetClient.inc:84 +#: ../lib/modules/puppetClient.inc:128 ../lib/modules/puppetClient.inc:153 +#: ../lib/modules/puppetClient.inc:161 ../lib/modules/puppetClient.inc:239 +#: ../lib/modules/puppetClient.inc:430 +msgid "Environment" +msgstr "Entorno" + +#: ../templates/schema/schema.php:166 +msgid "Equality" +msgstr "Igualdad" + +#: ../lib/modules/zarafaUser.inc:529 ../lib/modules/zarafaUser.inc:1249 +msgid "Equipment" +msgstr "Equipamiento" + +#: ../templates/config/mainmanage.php:408 +#: ../templates/3rdParty/pla/lib/Template.php:430 +#: ../templates/3rdParty/pla/lib/Template.php:473 +#: ../templates/3rdParty/pla/lib/Template.php:517 +#: ../templates/3rdParty/pla/lib/functions.php:511 +#: ../templates/3rdParty/pla/lib/functions.php:513 +#: ../templates/3rdParty/pla/lib/ds_myldap.php:219 +#: ../templates/3rdParty/pla/htdocs/import.php:79 +msgid "Error" +msgstr "Error" + +#: ../templates/3rdParty/pla/lib/functions.php:1897 +#: ../templates/3rdParty/pla/lib/functions.php:1901 +msgid "Error number" +msgstr "Número de error" + +#: ../lib/modules/mitKerberos.inc:1173 ../lib/modules/heimdalKerberos.inc:1038 +msgid "Error while changing Kerberos password." +msgstr "Error al cambiar la contraseña de Kerberos." + +#: ../templates/delete.php:280 +#, php-format +msgid "Error while deleting DN: %s" +msgstr "Error al eliminar el DN: %s" + +#: ../help/help.inc:145 +msgid "" +"Every account type needs exactly one base module. This module provides a " +"structural object class." +msgstr "" +"Cada tipo de cuenta necesita exactamente un módulo base. Este módulo " +"proporciona una clase de objeto estructural." + +#: ../lib/modules/customScripts.inc:67 ../lib/modules/customScripts.inc:80 +#: ../lib/modules/selfRegistration.inc:82 ../lib/modules/zarafaContact.inc:97 +#: ../lib/modules/zarafaGroup.inc:99 ../lib/modules/dhcp_settings.inc:564 +#: ../lib/modules/zarafaUser.inc:146 ../help/help.inc:74 ../help/help.inc:80 +#: ../help/help.inc:90 ../help/help.inc:95 ../help/help.inc:117 +msgid "Example" +msgstr "Ejemplo" + +#: ../templates/masscreate.php:302 ../templates/masscreate.php:376 +msgid "Example value" +msgstr "Valor de ejemplo" + +#: ../help/help.inc:62 +msgid "Examples" +msgstr "Ejemplos" + +#: ../templates/config/confmain.php:319 +msgid "Execute" +msgstr "Ejectuar" + +#: ../templates/tests/lamdaemonTest.php:269 +msgid "Execute lamdaemon" +msgstr "Ejecutar lamdaemon" + +#: ../lib/modules/freeRadius.inc:104 ../lib/modules/freeRadius.inc:130 +#: ../lib/modules/freeRadius.inc:209 ../lib/modules/freeRadius.inc:237 +#: ../lib/modules/freeRadius.inc:385 ../lib/modules/freeRadius.inc:543 +msgid "Expiration date" +msgstr "Fecha de expiración" + +#: ../lib/modules/bindDLZ.inc:204 ../lib/modules/bindDLZ.inc:307 +#: ../lib/modules/bindDLZ.inc:419 ../lib/modules/bindDLZ.inc:512 +#: ../lib/modules/bindDLZ.inc:1015 ../lib/modules/bindDLZ.inc:1544 +msgid "Expiration time" +msgstr "Tiempo de expiración" + +#: ../lib/modules/asteriskAccount.inc:211 +#: ../lib/modules/asteriskAccount.inc:291 +#: ../lib/modules/asteriskAccount.inc:494 +#: ../lib/modules/asteriskAccount.inc:721 +#: ../lib/modules/asteriskAccount.inc:1007 +#: ../lib/modules/asteriskAccount.inc:1283 +msgid "Expiration timestamp" +msgstr "Sello de fecha de expiración" + +#: ../lib/modules/asteriskAccount.inc:212 +msgid "Expiration timestamp (\"regseconds\" option)." +msgstr "Sello de fecha de expiración (opción \"regseconds\")." + +#: ../lib/types/ppolicyType.inc:86 ../lib/modules/ppolicy.inc:116 +#: ../lib/modules/ppolicy.inc:148 ../lib/modules/ppolicy.inc:174 +#: ../lib/modules/ppolicy.inc:214 ../lib/modules/ppolicy.inc:479 +msgid "Expire warning" +msgstr "Advertencia de expiración" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1081 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1084 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:305 +#: ../templates/3rdParty/pla/htdocs/export_form.php:37 +#: ../templates/3rdParty/pla/htdocs/export_form.php:53 +msgid "Export" +msgstr "Exportar" + +#: ../templates/pdfedit/pdfmain.php:221 ../templates/pdfedit/pdfmain.php:222 +#: ../help/help.inc:212 +msgid "Export PDF structure" +msgstr "Exportar estructura PDF" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:105 +msgid "Export format" +msgstr "Formato de exportación" + +#: ../templates/profedit/profilemain.php:209 +#: ../templates/profedit/profilemain.php:210 ../help/help.inc:194 +msgid "Export profile" +msgstr "Exportar perfil" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Export subtree" +msgstr "Exportar subárbol" + +#: ../templates/pdfedit/pdfmain.php:117 +#: ../templates/profedit/profilemain.php:132 +msgid "Export successful" +msgstr "Exportación exitosa" + +#: ../templates/serverInfo.php:349 +msgid "Extended" +msgstr "Extendido" + +#: ../lib/types/asteriskExt.inc:143 +#, php-format +msgid "Extension count: %s" +msgstr "Conteo de extensiones: %s" + +#: ../lib/types/asteriskExt.inc:94 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskExtension.inc:102 +#: ../lib/modules/asteriskExtension.inc:137 +#: ../lib/modules/asteriskExtension.inc:145 +#: ../lib/modules/asteriskExtension.inc:289 +#: ../lib/modules/asteriskExtension.inc:293 +#: ../lib/modules/asteriskExtension.inc:813 +msgid "Extension name" +msgstr "Nombre de extensión" + +#: ../lib/modules/asteriskExtension.inc:114 +#: ../lib/modules/asteriskExtension.inc:138 +#: ../lib/modules/asteriskExtension.inc:159 +#: ../lib/modules/asteriskExtension.inc:233 +#: ../lib/modules/asteriskExtension.inc:481 +#: ../lib/modules/asteriskExtension.inc:814 +msgid "Extension owners" +msgstr "Propietarios de la extensión" + +#: ../lib/modules/asteriskExtension.inc:190 +msgid "Extension with this name already exists." +msgstr "Ya existe una extensión con este nombre." + +#: ../templates/3rdParty/pla/htdocs/import.php:66 +msgid "Failed" +msgstr "Fallido" + +#: ../lib/modules/mitKerberos.inc:128 ../lib/modules/mitKerberos.inc:252 +#: ../lib/modules/mitKerberos.inc:298 ../lib/modules/mitKerberos.inc:345 +#: ../lib/modules/mitKerberos.inc:768 +msgid "Failed logins" +msgstr "Logins fallidos" + +#: ../templates/initsuff.php:152 +msgid "Failed to create entry!" +msgstr "¡Fallo al crear la entrada!" + +#: ../lib/profiles.inc:190 ../lib/pdfstruct.inc:224 +msgid "Failed to export!" +msgstr "Falló al exportar" + +#: ../lib/profiles.inc:197 ../lib/pdfstruct.inc:231 +msgid "Failed to import!" +msgstr "Fallo al importar" + +#: ../lib/types/ppolicyType.inc:85 ../lib/modules/ppolicy.inc:112 +#: ../lib/modules/ppolicy.inc:153 ../lib/modules/ppolicy.inc:173 +#: ../lib/modules/ppolicy.inc:280 ../lib/modules/ppolicy.inc:478 +msgid "Failure count interval" +msgstr "Intervalo de conteo de fallas" + +#: ../lib/modules/inetOrgPerson.inc:76 ../lib/modules/inetOrgPerson.inc:158 +#: ../lib/modules/inetOrgPerson.inc:208 ../lib/modules/inetOrgPerson.inc:441 +#: ../lib/modules/inetOrgPerson.inc:581 ../lib/modules/inetOrgPerson.inc:712 +#: ../lib/modules/inetOrgPerson.inc:716 ../lib/modules/inetOrgPerson.inc:1406 +#: ../lib/modules/inetOrgPerson.inc:1409 ../lib/modules/inetOrgPerson.inc:1905 +#: ../lib/modules/inetOrgPerson.inc:2511 ../lib/modules/inetOrgPerson.inc:3535 +#: ../lib/modules/inetOrgPerson.inc:3583 +msgid "Fax number" +msgstr "Número de fax" + +#: ../lib/modules/zarafaUser.inc:155 ../lib/modules/zarafaUser.inc:376 +#: ../lib/modules/zarafaUser.inc:638 ../lib/modules/zarafaUser.inc:1288 +#: ../lib/modules/zarafaUser.inc:1327 ../lib/modules/zarafaUser.inc:1807 +msgid "Features" +msgstr "Características" + +#: ../templates/config/mainmanage.php:412 +#: ../templates/3rdParty/pla/lib/functions.php:533 +#: ../templates/3rdParty/pla/tools/unserialize.php:14 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "File" +msgstr "Archivo" + +#: ../lib/pdfstruct.inc:282 +msgid "File does not exist." +msgstr "El archivo no existe." + +#: ../lib/modules/customFields.inc:160 ../lib/modules/customFields.inc:3294 +msgid "File extension" +msgstr "Extensión de archivo" + +#: ../lib/modules/inetOrgPerson.inc:102 +#, php-format +msgid "File is too large. Maximum allowed size is %s kB." +msgstr "El archivo es demasiado grande. El tamaño máximo permitido es %s kB." + +#: ../lib/modules/sambaSamAccount.inc:312 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user and $group are replaced with user and group name." +msgstr "" +"Nombre y ruta de archivo relativos al recurso \"netlogon\" que se ejecutará " +"al acceder. $user y $group se reemplazarán con el nombre de usuario y de " +"grupo." + +#: ../lib/modules/windowsUser.inc:210 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user is replaced with user name." +msgstr "" +"El nombre de archivo y la ruta relativa al compartido netlogon el cual debe " +"ser ejecutado en el inicio de sesión. $user es reemplazado con el nombre de " +"usuario." + +#: ../lib/modules/zarafaServer.inc:76 ../lib/modules/zarafaServer.inc:112 +#: ../lib/modules/zarafaServer.inc:137 ../lib/modules/zarafaServer.inc:177 +#: ../lib/modules/zarafaServer.inc:219 ../lib/modules/zarafaServer.inc:356 +msgid "File path" +msgstr "Ruta del archivo" + +#: ../templates/masscreate.php:243 ../lib/tools/fileUpload.inc:44 +#: ../lib/modules/ldapPublicKey.inc:80 ../lib/modules/customFields.inc:3280 +#: ../lib/lists.inc:777 +msgid "File upload" +msgstr "Enviar archivos" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +#: ../lib/types/zarafaAddressListType.inc:94 +#: ../lib/types/zarafaDynamicGroupType.inc:95 +#: ../lib/modules/pykotaPrinter.inc:128 ../lib/modules/pykotaPrinter.inc:425 +#: ../lib/modules/zarafaDynamicGroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:158 +#: ../lib/modules/zarafaDynamicGroup.inc:171 +#: ../lib/modules/zarafaDynamicGroup.inc:239 +#: ../lib/modules/zarafaDynamicGroup.inc:450 +#: ../lib/modules/zarafaContact.inc:91 ../lib/modules/posixGroup.inc:335 +#: ../lib/modules/posixGroup.inc:528 ../lib/modules/zarafaAddressList.inc:79 +#: ../lib/modules/zarafaAddressList.inc:134 +#: ../lib/modules/zarafaAddressList.inc:145 +#: ../lib/modules/zarafaAddressList.inc:206 +#: ../lib/modules/zarafaAddressList.inc:333 ../lib/modules/zarafaUser.inc:140 +#: ../lib/modules/sambaGroupMapping.inc:170 +#: ../lib/modules/sambaGroupMapping.inc:483 ../lib/modules/nisnetgroup.inc:104 +#: ../lib/modules/nisnetgroup.inc:477 +#: ../lib/modules/organizationalRole.inc:101 +#: ../lib/modules/organizationalRole.inc:282 +#: ../lib/modules/organizationalRole.inc:372 +#: ../lib/modules/groupOfNames.inc:113 ../lib/modules/groupOfNames.inc:339 +#: ../lib/modules/groupOfNames.inc:429 ../lib/modules/groupOfNames.inc:494 +#: ../lib/modules/groupOfNames.inc:584 ../lib/modules/nisMailAlias.inc:93 +#: ../lib/modules/nisMailAlias.inc:373 ../lib/lists.inc:379 +#: ../help/help.inc:168 +msgid "Filter" +msgstr "Filtrar" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:509 +msgid "Filter performed" +msgstr "Filtro ejecutado" + +#: ../templates/multiEdit.php:514 +msgid "Finished all operations." +msgstr "Finalizadas todas las operaciones." + +#: ../lib/types/user.inc:96 ../lib/modules/selfRegistration.inc:83 +#: ../lib/modules/selfRegistration.inc:218 ../lib/modules/windowsUser.inc:128 +#: ../lib/modules/windowsUser.inc:278 ../lib/modules/windowsUser.inc:502 +#: ../lib/modules/windowsUser.inc:597 ../lib/modules/windowsUser.inc:700 +#: ../lib/modules/windowsUser.inc:1590 ../lib/modules/inetOrgPerson.inc:66 +#: ../lib/modules/inetOrgPerson.inc:156 ../lib/modules/inetOrgPerson.inc:306 +#: ../lib/modules/inetOrgPerson.inc:538 ../lib/modules/inetOrgPerson.inc:644 +#: ../lib/modules/inetOrgPerson.inc:1170 ../lib/modules/inetOrgPerson.inc:1173 +#: ../lib/modules/inetOrgPerson.inc:1892 ../lib/modules/inetOrgPerson.inc:2434 +#: ../lib/modules/inetOrgPerson.inc:3577 +msgid "First name" +msgstr "Nombre" + +#: ../lib/modules/windowsUser.inc:597 ../lib/modules/windowsUser.inc:598 +#: ../lib/modules/inetOrgPerson.inc:66 ../lib/modules/inetOrgPerson.inc:67 +msgid "First name contains invalid characters!" +msgstr "El nombre contiene caracteres inválidos!" + +#: ../lib/modules/windowsUser.inc:129 ../lib/modules/inetOrgPerson.inc:645 +msgid "First name of user. Only letters, - and spaces are allowed." +msgstr "Nombre del usuario. Solo se permiten letras, - y espacios." + +#: ../lib/modules/ddns.inc:85 +msgid "Fix IP addresses" +msgstr "Fiajr Direcciones IP" + +#: ../templates/config/confmain.php:414 +msgid "Fixed list" +msgstr "Lista fijada" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:228 +msgid "Fixed range" +msgstr "Rango fijo" + +#: ../templates/pdfedit/pdfpage.php:461 +msgid "Folding marks" +msgstr "Marcas de encarpetado" + +#: ../templates/config/confmain.php:273 ../help/help.inc:85 +msgid "Follow referrals" +msgstr "Seguir referencias" + +#: ../lib/modules/kolabUser.inc:125 +msgid "For automatic invitation handling." +msgstr "Para la gestión automática de invitaciones." + +#: ../lib/modules/nisnetgroup.inc:101 +msgid "" +"For the upload please specify the entries in the format \"(HOST,USER," +"DOMAIN)\". Multiple entries are separated by semicolon." +msgstr "" +"Para la carga de datos, por favor especifique las entradas en el formato " +"\"(EQUIPO,USUARIO,DOMINIO)\". Las entradas múltiples se delimintan por punto " +"y coma." + +#: ../templates/lists/changePassword.php:238 +#: ../lib/modules/mitKerberos.inc:183 ../lib/modules/mitKerberos.inc:417 +#: ../lib/modules/shadowAccount.inc:369 ../lib/modules/heimdalKerberos.inc:127 +#: ../lib/modules/heimdalKerberos.inc:348 ../lib/modules.inc:1062 +#: ../help/help.inc:206 +msgid "Force password change" +msgstr "Forzar el cambio de contraseña." + +#: ../lib/modules/passwordSelfReset.inc:787 +msgid "Forgot password?" +msgstr "¿Olvidó la contraseña?" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:484 ../help/help.inc:252 +msgid "Format" +msgstr "Fromato" + +#: ../lib/modules/qmailUser.inc:207 ../lib/modules/qmailUser.inc:277 +#: ../lib/modules/qmailUser.inc:401 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:546 ../lib/modules/qmailUser.inc:1141 +msgid "Forwarding address" +msgstr "Dirección de reenvío" + +#: ../lib/modules/qmailUser.inc:208 +msgid "Forwards all incoming messages for this user to this address." +msgstr "" +"Reenvia todos los mensajes entrantes para este usuario a esta dirección." + +#: ../lib/modules/pykotaGroup.inc:64 ../lib/modules/pykotaUser.inc:64 +msgid "Free printing" +msgstr "Impresión libre" + +#: ../lib/modules/freeRadius.inc:74 +msgid "FreeRadius" +msgstr "FreeRadius" + +#: ../lib/modules/sambaSamAccount.inc:1376 +msgid "Friday" +msgstr "Viernes" + +#: ../templates/config/confmain.php:343 ../lib/modules/selfRegistration.inc:90 +#: ../lib/modules/selfRegistration.inc:229 +#: ../lib/modules/passwordSelfReset.inc:116 +#: ../lib/modules/passwordSelfReset.inc:537 +#: ../lib/modules/passwordSelfReset.inc:557 ../help/help.inc:246 +msgid "From address" +msgstr "Dirección de origen" + +#: ../templates/config/confmain.php:520 +msgid "From address for password mails is invalid." +msgstr "La dirección de origen para los mensajes de contraseña es inválida." + +#: ../lib/modules/asteriskAccount.inc:147 +#: ../lib/modules/asteriskAccount.inc:275 +#: ../lib/modules/asteriskAccount.inc:377 +#: ../lib/modules/asteriskAccount.inc:636 +#: ../lib/modules/asteriskAccount.inc:991 +#: ../lib/modules/asteriskAccount.inc:1251 +msgid "From domain" +msgstr "Dominio de origen" + +#: ../lib/modules/asteriskAccount.inc:148 +msgid "From domain setting for this account." +msgstr "Dominio de origen para esta cuenta." + +#: ../lib/modules/asteriskAccount.inc:143 +#: ../lib/modules/asteriskAccount.inc:274 +#: ../lib/modules/asteriskAccount.inc:370 +#: ../lib/modules/asteriskAccount.inc:632 +#: ../lib/modules/asteriskAccount.inc:990 +#: ../lib/modules/asteriskAccount.inc:1249 +msgid "From user" +msgstr "Usuario de origen" + +#: ../lib/modules/asteriskAccount.inc:144 +msgid "From user setting for this account." +msgstr "Usuario de origen para esta cuenta." + +#: ../lib/modules/asteriskAccount.inc:151 +#: ../lib/modules/asteriskAccount.inc:276 +#: ../lib/modules/asteriskAccount.inc:384 +#: ../lib/modules/asteriskAccount.inc:640 +#: ../lib/modules/asteriskAccount.inc:992 +#: ../lib/modules/asteriskAccount.inc:1253 +msgid "Full contact" +msgstr "Contacto completo" + +#: ../templates/lists/changePassword.php:281 +#: ../lib/modules/asteriskVoicemail.inc:103 +#: ../lib/modules/asteriskVoicemail.inc:139 +#: ../lib/modules/asteriskVoicemail.inc:172 +#: ../lib/modules/asteriskVoicemail.inc:252 +#: ../lib/modules/asteriskVoicemail.inc:371 +msgid "Full name" +msgstr "Nombre completo" + +#: ../lib/modules/asteriskVoicemail.inc:104 +msgid "Full name for Asterisk voicemail mailbox." +msgstr "Nombre completo para el buzón de voz de Asterisk." + +#: ../templates/3rdParty/pla/lib/functions.php:537 +#: ../templates/3rdParty/pla/tools/unserialize.php:17 +msgid "Function" +msgstr "Función" + +#: ../lib/modules/windowsUser.inc:328 ../lib/modules/inetOrgPerson.inc:387 +msgid "GB-12345" +msgstr "GB-12345" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixGroup.inc:520 +msgid "GID generator" +msgstr "Generador GID" + +#: ../lib/types/host.inc:96 ../lib/types/group.inc:106 +#: ../lib/types/user.inc:93 ../lib/modules/qmailUser.inc:114 +#: ../lib/modules/qmailUser.inc:235 ../lib/modules/qmailUser.inc:341 +#: ../lib/modules/qmailUser.inc:421 ../lib/modules/qmailUser.inc:581 +#: ../lib/modules/qmailUser.inc:1143 ../lib/modules/posixGroup.inc:191 +#: ../lib/modules/posixGroup.inc:421 ../lib/modules/posixGroup.inc:436 +#: ../lib/modules/posixGroup.inc:480 ../lib/modules/posixGroup.inc:500 +#: ../lib/modules/posixGroup.inc:576 ../lib/modules/posixGroup.inc:599 +#: ../lib/modules/posixAccount.inc:125 ../lib/modules/posixAccount.inc:413 +#: ../lib/modules/posixAccount.inc:1853 +#: ../lib/modules/sambaGroupMapping.inc:110 +#: ../lib/modules/sambaGroupMapping.inc:538 +msgid "GID number" +msgstr "Número GID" + +#: ../lib/modules/posixGroup.inc:599 +msgid "" +"GID number has changed. Please select checkbox to change GID number of users " +"and hosts." +msgstr "" +"El número GID ha cambiado. Por favor, seleccione la casilla para cambiar el " +"número GID de los usuarios y equipos." + +#: ../lib/modules/posixAccount.inc:125 +#, php-format +msgid "" +"GID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" +msgstr "" +"El número GID ha cambiado. Para conservar la propiedad de los archivos, debe " +"ejecutar el siguiente comando como root: 'find / -gid %s -uid %s -exec chgrp " +"%s {} \\;'" + +#: ../lib/modules/posixGroup.inc:606 +msgid "GID number has to be a numeric value!" +msgstr "¡El número GID debe ser un valor numérico!" + +#: ../lib/modules/qmailUser.inc:466 +msgid "GID number is already in use." +msgstr "El GID ya está en uso." + +#: ../lib/modules/posixAccount.inc:256 ../lib/modules/posixAccount.inc:356 +#: ../lib/modules/posixAccount.inc:398 ../lib/modules/posixAccount.inc:424 +#: ../lib/modules/posixAccount.inc:510 ../lib/modules/posixAccount.inc:548 +#: ../lib/modules/posixAccount.inc:1440 ../lib/modules/posixAccount.inc:1856 +msgid "Gecos" +msgstr "Gecos" + +#: ../lib/modules/windowsUser.inc:673 +msgid "General" +msgstr "General" + +#: ../lib/modules/generalInformation.inc:58 +msgid "General information" +msgstr "Información general" + +#: ../templates/config/mainmanage.php:477 +#: ../templates/config/confmodules.php:164 +#: ../templates/config/confmain.php:205 +#: ../templates/config/moduleSettings.php:163 +#: ../templates/config/conftypes.php:182 +#: ../templates/selfService/adminMain.php:433 +#: ../templates/profedit/profilepage.php:215 +msgid "General settings" +msgstr "Configuración general" + +#: ../templates/lists/changePassword.php:308 ../help/help.inc:244 +msgid "Generate random password" +msgstr "Generar contraseña aleatoria" + +#: ../templates/3rdParty/pla/lib/functions.php:63 +#: ../templates/3rdParty/pla/lib/functions.php:595 +msgid "Generic Error" +msgstr "Error genérico" + +#: ../lib/modules/windowsGroup.inc:65 +msgid "Global" +msgstr "Global" + +#: ../templates/pdfedit/pdfmain.php:322 +#: ../templates/profedit/profilemain.php:289 +msgid "Global templates" +msgstr "Plantillas globales" + +#: ../templates/schema/schema.php:128 ../templates/schema/schema.php:265 +#: ../templates/schema/schema.php:296 ../templates/schema/schema.php:321 +msgid "Go" +msgstr "Ir" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:215 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:139 +msgid "Go back" +msgstr "Regresar" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1864 +msgid "Go to" +msgstr "Ir a" + +#: ../lib/types/ppolicyType.inc:82 ../lib/modules/ppolicy.inc:100 +#: ../lib/modules/ppolicy.inc:149 ../lib/modules/ppolicy.inc:170 +#: ../lib/modules/ppolicy.inc:222 ../lib/modules/ppolicy.inc:475 +msgid "Grace authentication limit" +msgstr "Límite de gracia para la autenticación" + +#: ../lib/modules/quota.inc:125 ../lib/modules/quota.inc:403 +msgid "Grace block period" +msgstr "Período de gracia de bloqueo" + +#: ../lib/modules/quota.inc:126 +msgid "" +"Grace block period. Most filesystems use a fixed maximum value of 7 days." +msgstr "" +"Período de gracia de bloqueo. La mayoria de los sistemas de archivos " +"utilizan un valor máximo fijo de 7 días." + +#: ../lib/modules/quota.inc:148 +msgid "" +"Grace inode (files) period. Most filesystems use a fixed maximum value of 7 " +"days." +msgstr "" +"Período de gracia de inodos (archivos). La mayoria de sistemas de archivos " +"usan un máximo fijo de 7 dias." + +#: ../lib/modules/quota.inc:147 ../lib/modules/quota.inc:407 +msgid "Grace inode period" +msgstr "Período de gracia de inodos" + +#: ../templates/config/confmain.php:324 +#: ../templates/selfService/adminMain.php:670 +msgid "Group" +msgstr "Grupo" + +#: ../lib/types/group.inc:76 +msgid "Group accounts (e.g. Unix and Samba)" +msgstr "Cuentas del grupo (p.ej. Unix y Samba)" + +#: ../lib/types/gon.inc:202 ../lib/types/zarafaDynamicGroupType.inc:165 +#: ../lib/types/group.inc:240 ../lib/types/netgroup.inc:169 +#, php-format +msgid "Group count: %s" +msgstr "Conteo de grupos: %s" + +#: ../lib/types/group.inc:111 ../lib/modules/posixGroup.inc:471 +#: ../lib/modules/nisnetgroup.inc:120 +msgid "Group description" +msgstr "Descripción del grupo" + +#: ../lib/modules/pykotaGroup.inc:118 +msgid "Group description." +msgstr "Descripción del grupo." + +#: ../lib/modules/posixGroup.inc:485 +msgid "Group description. If left empty group name will be used." +msgstr "" +"Descripción del grupo. Si se deja en blanco, se utilizará el nombre del " +"grupo." + +#: ../lib/types/gon.inc:105 ../lib/types/gon.inc:106 +#: ../lib/types/group.inc:108 ../lib/types/group.inc:109 +msgid "Group member DNs" +msgstr "DNs de los miembros del grupo" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:94 +#: ../lib/types/group.inc:107 ../lib/modules/pykotaPrinter.inc:119 +#: ../lib/modules/pykotaPrinter.inc:123 ../lib/modules/pykotaPrinter.inc:186 +#: ../lib/modules/pykotaPrinter.inc:199 ../lib/modules/pykotaPrinter.inc:265 +#: ../lib/modules/pykotaPrinter.inc:607 ../lib/modules/posixGroup.inc:222 +#: ../lib/modules/posixGroup.inc:293 ../lib/modules/posixGroup.inc:424 +#: ../lib/modules/posixGroup.inc:450 ../lib/modules/posixGroup.inc:488 +#: ../lib/modules/posixGroup.inc:492 ../lib/modules/posixGroup.inc:573 +#: ../lib/modules/windowsGroup.inc:381 +msgid "Group members" +msgstr "Miembros del grupo" + +#: ../lib/types/gon.inc:104 ../lib/types/zarafaDynamicGroupType.inc:91 +#: ../lib/types/group.inc:105 ../lib/types/netgroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:63 +#: ../lib/modules/zarafaDynamicGroup.inc:116 +#: ../lib/modules/zarafaDynamicGroup.inc:165 +#: ../lib/modules/zarafaDynamicGroup.inc:195 +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:220 +#: ../lib/modules/zarafaDynamicGroup.inc:447 ../lib/modules/posixGroup.inc:181 +#: ../lib/modules/posixGroup.inc:427 ../lib/modules/posixGroup.inc:459 +#: ../lib/modules/posixGroup.inc:508 ../lib/modules/posixGroup.inc:575 +#: ../lib/modules/posixGroup.inc:607 ../lib/modules/posixGroup.inc:608 +#: ../lib/modules/posixGroup.inc:609 ../lib/modules/pykotaGroup.inc:197 +#: ../lib/modules/pykotaGroup.inc:199 ../lib/modules/pykotaGroup.inc:218 +#: ../lib/modules/nisnetgroup.inc:83 ../lib/modules/nisnetgroup.inc:112 +#: ../lib/modules/nisnetgroup.inc:139 ../lib/modules/nisnetgroup.inc:151 +#: ../lib/modules/nisnetgroup.inc:193 ../lib/modules/nisnetgroup.inc:579 +#: ../lib/modules/organizationalRole.inc:85 +#: ../lib/modules/organizationalRole.inc:114 +#: ../lib/modules/organizationalRole.inc:137 +#: ../lib/modules/organizationalRole.inc:452 +#: ../lib/modules/windowsGroup.inc:114 ../lib/modules/windowsGroup.inc:176 +#: ../lib/modules/windowsGroup.inc:257 ../lib/modules/windowsGroup.inc:283 +#: ../lib/modules/windowsGroup.inc:300 ../lib/modules/windowsGroup.inc:745 +#: ../lib/modules/groupOfNames.inc:85 ../lib/modules/groupOfNames.inc:126 +#: ../lib/modules/groupOfNames.inc:167 ../lib/modules/groupOfNames.inc:693 +msgid "Group name" +msgstr "Nombre del grupo" + +#: ../lib/modules/pykotaGroup.inc:199 ../lib/modules/pykotaGroup.inc:200 +#: ../lib/modules/pykotaGroup.inc:203 ../lib/modules/pykotaGroup.inc:204 +msgid "Group name already exists!" +msgstr "El nombre del grupo ya existe" + +#: ../lib/modules/zarafaDynamicGroup.inc:195 +msgid "Group name already in use." +msgstr "El nombre del grupo ya está en uso." + +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:197 ../lib/modules/posixGroup.inc:609 +#: ../lib/modules/posixGroup.inc:610 ../lib/modules/pykotaGroup.inc:197 +#: ../lib/modules/pykotaGroup.inc:198 ../lib/modules/pykotaGroup.inc:201 +#: ../lib/modules/pykotaGroup.inc:202 ../lib/modules/nisnetgroup.inc:151 +#: ../lib/modules/windowsGroup.inc:283 ../lib/modules/windowsGroup.inc:284 +msgid "" +"Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"El nombre de grupo contiene caracteres inválidos. ¡Los caracteres válidos " +"son: a-z, A-Z, 0-9 y .-_ !" + +#: ../lib/modules/windowsGroup.inc:151 +msgid "Group name for NIS." +msgstr "Nombre de grupo para NIS." + +#: ../lib/modules/posixGroup.inc:608 +msgid "Group name in use. Selected next free group name." +msgstr "" +"Nombre del grupo en uso. Se selecionó el próximo nombre de grupo disponible." + +#: ../lib/modules/zarafaDynamicGroup.inc:64 ../lib/modules/pykotaGroup.inc:114 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ ." +msgstr "" +"Nombre del grupo que debe crearse. Los caracteres válidos son: a-z, A-Z, 0-9 " +"y .-_ ." + +#: ../lib/modules/posixGroup.inc:509 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ . If group name is already used group name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"Nombre del grupo que debe crearse. Los carácteres válidos son: a-z, A-Z, " +"0-9, y .-_ . Si el nombre de grupo ya está usado, el nombre se expandirá con " +"un número. Se utilizará el próximo número disponible." + +#: ../lib/modules/pykotaGroup.inc:122 +msgid "Group name that is used for PyKota." +msgstr "El nombre del grupo está usado por PyKota." + +#: ../lib/modules/freeRadius.inc:96 ../lib/modules/freeRadius.inc:100 +#: ../lib/modules/freeRadius.inc:128 ../lib/modules/freeRadius.inc:154 +#: ../lib/modules/freeRadius.inc:185 ../lib/modules/freeRadius.inc:234 +#: ../lib/modules/freeRadius.inc:277 ../lib/modules/freeRadius.inc:540 +msgid "Group names" +msgstr "Nombres de grupos" + +#: ../lib/modules/groupOfNames.inc:65 +msgid "Group of names" +msgstr "Grupo de nombres" + +#: ../lib/types/gon.inc:75 +msgid "Group of names accounts" +msgstr "Cuentas de grupos de nombres" + +#: ../lib/modules/groupOfUniqueNames.inc:42 +msgid "Group of unique names" +msgstr "Grupo de nombres únicos" + +#: ../lib/modules/posixGroup.inc:442 ../lib/modules/posixGroup.inc:496 +msgid "Group password" +msgstr "Contraseña de grupo" + +#: ../lib/modules/windowsGroup.inc:142 ../lib/modules/windowsGroup.inc:195 +#: ../lib/modules/windowsGroup.inc:262 ../lib/modules/windowsGroup.inc:338 +#: ../lib/modules/windowsGroup.inc:775 +msgid "Group scope" +msgstr "Ámbito de grupo" + +#: ../lib/modules/sambaGroupMapping.inc:382 +#: ../lib/modules/windowsGroup.inc:138 ../lib/modules/windowsGroup.inc:203 +#: ../lib/modules/windowsGroup.inc:261 ../lib/modules/windowsGroup.inc:341 +#: ../lib/modules/windowsGroup.inc:776 +msgid "Group type" +msgstr "Tipo de grupo" + +#: ../lib/types/group.inc:67 ../lib/modules/posixGroup.inc:401 +#: ../lib/modules/zarafaGroup.inc:119 ../lib/modules/windowsUser.inc:217 +#: ../lib/modules/windowsUser.inc:220 ../lib/modules/windowsUser.inc:442 +#: ../lib/modules/windowsUser.inc:523 ../lib/modules/windowsUser.inc:785 +#: ../lib/modules/windowsUser.inc:1635 ../lib/modules/windowsUser.inc:1663 +#: ../lib/modules/generalInformation.inc:110 +msgid "Groups" +msgstr "Grupos" + +#: ../lib/types/gon.inc:66 ../lib/modules/posixAccount.inc:261 +#: ../lib/modules/posixAccount.inc:364 ../lib/modules/posixAccount.inc:427 +#: ../lib/modules/posixAccount.inc:1599 ../lib/modules/posixAccount.inc:1748 +#: ../lib/modules/posixAccount.inc:1865 ../lib/modules/windowsUser.inc:1029 +#: ../lib/modules/groupOfNamesUser.inc:54 +#: ../lib/modules/groupOfNamesUser.inc:56 +#: ../lib/modules/groupOfNamesUser.inc:60 +#: ../lib/modules/groupOfNamesUser.inc:64 +#: ../lib/modules/groupOfNamesUser.inc:71 +#: ../lib/modules/groupOfNamesUser.inc:324 +#: ../lib/modules/groupOfNamesUser.inc:360 +msgid "Groups of names" +msgstr "Grupos de nombres" + +#: ../lib/modules/dhcp_settings.inc:99 +msgid "H-Node (0x08)" +msgstr "Nodo-H (0x08)" + +#: ../templates/config/confmain.php:356 +#: ../lib/modules/selfRegistration.inc:235 +#: ../lib/modules/passwordSelfReset.inc:541 +#: ../lib/modules/passwordSelfReset.inc:561 ../help/help.inc:255 +msgid "HTML format" +msgstr "Formato HTML" + +#: ../templates/config/confmain.php:448 +#: ../templates/selfService/adminMain.php:474 ../help/help.inc:126 +msgid "HTTP authentication" +msgstr "Autenticación HTTP" + +#: ../lib/modules/zarafaServer.inc:68 ../lib/modules/zarafaServer.inc:100 +#: ../lib/modules/zarafaServer.inc:135 ../lib/modules/zarafaServer.inc:173 +#: ../lib/modules/zarafaServer.inc:195 ../lib/modules/zarafaServer.inc:354 +msgid "HTTP port" +msgstr "Puerto HTTP" + +#: ../lib/modules/quota.inc:635 ../lib/modules/systemQuotas.inc:384 +msgid "Hard block" +msgstr "Bloque duro" + +#: ../lib/modules/quota.inc:119 ../lib/modules/quota.inc:120 +#: ../lib/modules/quota.inc:402 ../lib/modules/quota.inc:508 +#: ../lib/modules/systemQuotas.inc:126 +msgid "Hard block limit" +msgstr "Limite del bloque duro" + +#: ../lib/modules/quota.inc:637 ../lib/modules/systemQuotas.inc:386 +msgid "Hard inode" +msgstr "Inodo duro" + +#: ../lib/modules/quota.inc:142 +msgid "Hard inode (files) limit" +msgstr "Límite duro de inodo (archivos)" + +#: ../lib/modules/quota.inc:141 ../lib/modules/quota.inc:406 +#: ../lib/modules/quota.inc:510 ../lib/modules/systemQuotas.inc:130 +msgid "Hard inode limit" +msgstr "Límite duro de inodo" + +#: ../lib/modules/generalInformation.inc:104 +msgid "Has subentries" +msgstr "Tiene subentradas" + +#: ../lib/modules/sambaSamAccount.inc:554 +msgid "Hawaii" +msgstr "Hawái" + +#: ../lib/modules/selfRegistration.inc:106 +#: ../lib/modules/selfRegistration.inc:224 +#: ../lib/modules/passwordSelfReset.inc:156 +#: ../lib/modules/passwordSelfReset.inc:567 +msgid "Header" +msgstr "Encabezado" + +#: ../templates/pdfedit/pdfpage.php:452 ../templates/pdfedit/pdfpage.php:591 +#: ../templates/pdfedit/pdfpage.php:598 +msgid "Headline" +msgstr "Encabezado" + +#: ../lib/modules/heimdalKerberos.inc:235 +msgid "Heimdal Kerberos password change command" +msgstr "Comando para cambiar la contraseña Heimdal Kerberos" + +#: ../templates/main_header.php:140 ../lib/modules.inc:667 +msgid "Help" +msgstr "Ayuda" + +#: ../lib/modules/customFields.inc:96 ../lib/modules/customFields.inc:1716 +msgid "Help text" +msgstr "Texto de ayuda" + +#: ../lib/tools/schemaBrowser.inc:53 +msgid "Here you can browse LDAP object classes and attributes." +msgstr "Aquí puede explorar las clases de objetos y atributos de LDAP." + +#: ../lib/modules/sambaSamAccount.inc:391 +msgid "Here you can change the settings for the terminal server access." +msgstr "" +"Aquí puede cambiar la configuración para el acceso por terminal server." + +#: ../lib/selfService.inc:387 +msgid "Here you can change your personal settings." +msgstr "Aquí puede gestionar sus parámetros personales." + +#: ../templates/masscreate.php:130 +msgid "Here you can create multiple accounts by providing a CSV file." +msgstr "Aquí puede crear múltiples cuentas proporcionando un archivo CSV." + +#: ../lib/modules/dhcp_settings.inc:198 +msgid "Here you can enter a description for this DHCP entry." +msgstr "Aquí puede introducir una descripción para las entradas de este DHCP." + +#: ../lib/modules/nisnetgroup.inc:88 ../lib/modules/organizationalRole.inc:90 +#: ../lib/modules/groupOfNames.inc:90 +msgid "Here you can enter a description for this group." +msgstr "Aquí puede introducir la descripción para este grupo." + +#: ../lib/modules/sudoRole.inc:71 +msgid "Here you can enter a description for this role." +msgstr "Aquí puede introducir la descripción para este rol." + +#: ../lib/modules/pykotaPrinter.inc:129 ../lib/modules/zarafaContact.inc:92 +#: ../lib/modules/posixGroup.inc:529 ../lib/modules/zarafaUser.inc:141 +#: ../lib/modules/sambaGroupMapping.inc:171 ../lib/modules/nisnetgroup.inc:105 +#: ../lib/modules/organizationalRole.inc:102 +#: ../lib/modules/groupOfNames.inc:114 ../lib/modules/nisMailAlias.inc:94 +msgid "" +"Here you can enter a filter value. Only entries which contain the filter " +"text will be shown." +msgstr "" +"Aquí puede introducir un valor de filtrado. Solo se mostrarán las entradas " +"que contengan el texto de filtrado." + +#: ../lib/modules/posixAccount.inc:470 ../lib/modules/groupOfNamesUser.inc:65 +msgid "" +"Here you can enter a list of additional group memberships. The group names " +"are separated by commas." +msgstr "" +"Aquí puede añadir un listado de membreciía a grupos adicionales. Los nombres " +"de grupo deben estar delimitados por comas." + +#: ../lib/modules/organizationalRoleUser.inc:65 +msgid "" +"Here you can enter a list of roles. The role names are separated by commas." +msgstr "" +"Aquí puede añadir un listado de roles. Los nombres de roles deben estar " +"delimitados por comas." + +#: ../lib/modules/device.inc:66 +msgid "Here you can enter a serial number for this device." +msgstr "Aquí puede introducir un número de serie para este dispositivo." + +#: ../lib/modules/windowsUser.inc:181 ../lib/modules/windowsUser.inc:185 +msgid "Here you can enter additional web sites for the user." +msgstr "Aquí puede introducir sitios web adicionales para este usuario." + +#: ../help/help.inc:215 +msgid "" +"Here you can enter an alternative mail address for the password. To use the " +"user's primary email address please leave the field blank." +msgstr "" +"Aquí usted puede ingresar una dirección alternativa de correo para la " +"contraseña. Para utilizar el correo primario del usuario por favor deje el " +"campo en blanco." + +#: ../lib/modules/customFields.inc:81 +msgid "" +"Here you can enter one or more object classes (separated by comma). This " +"will allow you to add/remove the group's attributes including their object " +"classes." +msgstr "" +"Aquí puede ingresar uno o más clases de objeto (separados por comas). Esto " +"le permitirá agregar/remover atributos del grupo incluyendo sus clases de " +"objeto." + +#: ../lib/modules/inetOrgPerson.inc:801 ../lib/modules/inetOrgPerson.inc:805 +msgid "Here you can enter the user's department." +msgstr "Aquí puede introducir el departamento del usuario" + +#: ../lib/modules/zarafaUser.inc:156 +msgid "Here you can explicitly enable and disable Zarafa features." +msgstr "" +"Aquí puede habilitar y deshabilitar explícitamente las características de " +"Zarafa." + +#: ../help/help.inc:213 +msgid "" +"Here you can export PDF structures to other server profiles (overwrite " +"existing). You may also export a structure to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"structure with this name." +msgstr "" +"Aquí puede exportar estructuras PDF a otros perfiles de servidor " +"(sobreescribiendo los existentes). También puede exportar una estructura a " +"las plantillas globales. En este caso siempre serán copiado a todos los " +"perfiles de servidor que no tengan una estructuras con ese nombre." + +#: ../help/help.inc:195 +msgid "" +"Here you can export account profiles to other server profiles (overwrite " +"existing). You may also export a profile to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"profile with this name." +msgstr "" +"Aquí puede exportar perfiles de cuenta a otros perfiles de servidor " +"(sobreescribiendo los existentes). Puede también export el perfil a " +"plantillas globales. En este caso siempre serán copiados a todos los " +"perfiles de servidor que no tengan un perfil con ese nombre." + +#: ../help/help.inc:211 +msgid "" +"Here you can import PDF structures from other server profiles (overwrite " +"existing)." +msgstr "" +"Aquí usted puede importar las estructuras PDF desde otros perfiles de " +"servidor (sobreescribe existentes)." + +#: ../help/help.inc:193 +msgid "" +"Here you can import account profiles from other server profiles (overwrite " +"existing)." +msgstr "" +"Aquí usted puede importar los perfiles de cuentas desde otros perfiles de " +"servidor (sobreescribe existentes)." + +#: ../help/help.inc:169 +msgid "" +"Here you can input simple filter expressions (e.g. 'value' or 'v*'). The " +"filter is case-sensitive." +msgstr "" +"Aquí puede introducir expresiones simples de filtrado (p.ej. 'valor' o " +"'v*'). El filtro distingue mayúsculas y minúsculas." + +#: ../help/help.inc:199 +msgid "" +"Here you can load an account profile to set default settings for your " +"account. The \"default\" profile is automatically loaded for new accounts." +msgstr "" +"Aquí puede cargar un perfil de una cuenta para establecer valores " +"predeterminados para su cuenta. El perfil \"predeterminado\" se carga " +"automáticamente para las nuevas cuentas." + +#: ../lib/tools/profileEditor.inc:53 +msgid "Here you can manage your account profiles." +msgstr "Aquí puede gestionar sus perfiles de cuentas." + +#: ../help/help.inc:181 +msgid "Here you can overwrite the display name for this account type." +msgstr "Aquí puede sobreescribir el nombre a mostrar para este tipo de cuenta." + +#: ../help/help.inc:201 +msgid "" +"Here you can select a PDF structure and export the account to a PDF file." +msgstr "" +"Aquí puede seleccionar una estructura PDF y exportar la cuenta a un archivo " +"PDF." + +#: ../help/help.inc:151 +msgid "" +"Here you can select where LAM should save its log messages. System logging " +"will go to Syslog on Unix systems and event log on Windows. You can also " +"select an extra file." +msgstr "" +"Aquí puede seleccionar donde LAM debe guardar sus mensajes de registro. Los " +"registros de sistema irán a Syslog en sistemas UNIX y al visor de sucesos en " +"Windows. También puede seleccionar un archivo extra." + +#: ../help/help.inc:112 +msgid "" +"Here you can select which plugins you want to use for account management." +msgstr "" +"Aquí puede selecionar qué plugins desea usar para la gestión de cuentas." + +#: ../lib/modules/customFields.inc:169 +msgid "Here you can set a custom display name for this module." +msgstr "" +"Aquí puede introducir un nombre a mostrar personalizado para este módulo." + +#: ../lib/modules/customFields.inc:97 +msgid "Here you can set a describing text for your custom field." +msgstr "" +"Aquí puede introducir el texto de descripción para su campo personalizado." + +#: ../help/help.inc:125 +msgid "" +"Here you can set a limit for LDAP searches. This will restrict the number of " +"results for LDAP searches. Please use this if LAM's LDAP queries produce too " +"much load." +msgstr "" +"Aquí puede establecer un límite para las búsquedas LDAP. Esto restringirá el " +"número de resultados para las búsquedas LDAP. Por favor, utilícelo si las " +"consultas LDAP de LAM producen demasiada carga." + +#: ../lib/modules/customFields.inc:173 +msgid "Here you can set the URL to a custom icon (32x32px) for this module." +msgstr "" +"Aquí puede introducir la URL del ícono personalizado (32x32px) para este " +"módulo." + +#: ../help/help.inc:237 +msgid "" +"Here you can specify additional CSS links to change the layout of the self " +"service pages. This is useful to adapt them to your corporate design. Please " +"enter one link per line." +msgstr "" +"Aquí puede especificar enlaces CSS adicionales para cambiar el diseño de las " +"páginas de autoservicio. Esto es útil para adaptarlas a su diseño " +"corporativo. Por favor, introduzca un enlace por línea." + +#: ../help/help.inc:155 +msgid "" +"Here you can specify minimum requirements for passwords. The character " +"classes are: lowercase, uppercase, numeric and symbols." +msgstr "" +"Aquí puede especificar los requerimientos mínimos para las contraseñas. Las " +"clases de caracteres son: minúsculas, mayúsculas, números y símbolos." + +#: ../lib/modules/nisnetgroup.inc:92 +msgid "" +"Here you can specify subgroups which are included in this NIS netgroup. All " +"members of the subgroups will be treated as members of this group." +msgstr "" +"Aquí puede especificar los subgrupos que se incluyen en este grupo de red " +"NIS. Todos los miembros de los subgrupos serán tratados como miembros de " +"este grupo." + +#: ../help/help.inc:129 +msgid "" +"Here you can specify the DN and password of the bind user that will be used " +"for the LDAP search. This is required if your LDAP server does not allow " +"anonymous access." +msgstr "" +"Aquí puede especificar el DN y la contraseña del usuario de Bind que se " +"utilizará para la búsqueda LDAP. Esto se requiere si su servidor LDAP no " +"permite acceso anónimo." + +#: ../lib/modules/hostObject.inc:80 +msgid "" +"Here you can specify the list of host names where this account has login " +"privileges. The wildcard \"*\" represents all hosts. You may also use \"!\" " +"in front of a host name to deny access to a host." +msgstr "" +"Aquí puede especificar la lista de nombres de equipos donde esta cuenta " +"tiene privilegios de acceso. El comodín \"*\" representa todos los equipos. " +"Puede usar también \"!\" delante de un nombre de equipo para denegar el " +"acceso al equipo." + +#: ../lib/modules/sambaDomain.inc:102 +msgid "" +"Here you can specify the minimum number of characters for a user password." +msgstr "" +"Aquí puede especificar el número mínimo de caracteres para la contraseña de " +"un usuario." + +#: ../templates/lists/changePassword.php:350 +msgid "Here you can specify the new password yourself." +msgstr "Aquí puede especificar usted mismo su nueva contraseña." + +#: ../lib/modules/sambaSamAccount.inc:382 +msgid "Here you can specify the shadowing mode." +msgstr "Aquí puede especificar el modo de sombreado." + +#: ../lib/tools/tests.inc:53 +msgid "Here you can test if certain LAM features work on your installation." +msgstr "" +"Aquí puede comprobar si ciertas características de LAM son compatibles con " +"su instalación." + +#: ../lib/modules/customFields.inc:165 +msgid "Here you can upload a new file." +msgstr "Aquí puede subir un nuevo archivo." + +#: ../templates/config/conftypes.php:283 +#: ../lib/types/zarafaAddressListType.inc:95 +#: ../lib/types/zarafaDynamicGroupType.inc:96 +#: ../lib/modules/zarafaDynamicGroup.inc:79 +#: ../lib/modules/zarafaDynamicGroup.inc:136 +#: ../lib/modules/zarafaDynamicGroup.inc:169 +#: ../lib/modules/zarafaDynamicGroup.inc:273 +#: ../lib/modules/zarafaDynamicGroup.inc:461 +#: ../lib/modules/zarafaContact.inc:71 ../lib/modules/zarafaContact.inc:164 +#: ../lib/modules/zarafaContact.inc:172 ../lib/modules/zarafaContact.inc:247 +#: ../lib/modules/zarafaContact.inc:572 ../lib/modules/zarafaGroup.inc:85 +#: ../lib/modules/zarafaGroup.inc:146 ../lib/modules/zarafaGroup.inc:196 +#: ../lib/modules/zarafaGroup.inc:294 ../lib/modules/zarafaGroup.inc:665 +#: ../lib/modules/zarafaAddressList.inc:67 +#: ../lib/modules/zarafaAddressList.inc:112 +#: ../lib/modules/zarafaAddressList.inc:143 +#: ../lib/modules/zarafaAddressList.inc:214 +#: ../lib/modules/zarafaAddressList.inc:343 ../lib/modules/zarafaUser.inc:80 +#: ../lib/modules/zarafaUser.inc:290 ../lib/modules/zarafaUser.inc:339 +#: ../lib/modules/zarafaUser.inc:367 ../lib/modules/zarafaUser.inc:577 +#: ../lib/modules/zarafaUser.inc:1274 ../help/help.inc:174 +msgid "Hidden" +msgstr "Oculto" + +#: ../help/help.inc:175 +msgid "" +"Hidden account types will not show up in LAM. This is useful if you want to " +"display e.g. only groups but still need to manage their members." +msgstr "" +"Tipos de cuenta ocultas no serán mostradas en LAM. Esto es útil si desea " +"mostrar p.ej. sólo grupos pero aún necesita administrar sus miembros." + +#: ../lib/modules/nisMailAliasUser.inc:104 +#: ../lib/modules/nisMailAliasUser.inc:563 +#: ../lib/modules/asteriskAccount.inc:243 +#: ../lib/modules/asteriskAccount.inc:1237 ../lib/modules/qmailUser.inc:102 +#: ../lib/modules/qmailUser.inc:195 ../lib/modules/zarafaGroup.inc:108 +#: ../lib/modules/zarafaGroup.inc:134 ../lib/modules/sambaSamAccount.inc:399 +#: ../lib/modules/sambaSamAccount.inc:589 ../lib/modules/posixAccount.inc:252 +#: ../lib/modules/posixAccount.inc:441 ../lib/modules/zarafaUser.inc:132 +#: ../lib/modules/zarafaUser.inc:1781 ../lib/modules/windowsUser.inc:236 +#: ../lib/modules/windowsUser.inc:561 ../lib/modules/inetOrgPerson.inc:808 +#: ../lib/modules/inetOrgPerson.inc:3505 ../lib/modules/freeRadius.inc:112 +#: ../lib/modules/freeRadius.inc:118 ../lib/modules/zarafaServer.inc:88 +#: ../lib/modules/zarafaServer.inc:159 ../lib/modules/qmailGroup.inc:68 +#: ../lib/modules/qmailGroup.inc:119 ../lib/modules/organizationalRole.inc:81 +#: ../lib/modules/organizationalRole.inc:159 +#: ../lib/modules/passwordSelfReset.inc:160 +#: ../lib/modules/passwordSelfReset.inc:209 +#: ../lib/modules/windowsGroup.inc:110 ../lib/modules/windowsGroup.inc:161 +#: ../lib/modules/groupOfNames.inc:81 ../lib/modules/groupOfNames.inc:193 +msgid "Hidden options" +msgstr "Opciones ocultas" + +#: ../templates/config/confmain.php:375 +msgid "Hidden tools" +msgstr "Opciones ocultas" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1115 +msgid "Hide" +msgstr "Ocultar" + +#: ../lib/modules/customScripts.inc:88 ../lib/modules/customScripts.inc:102 +#: ../lib/modules/customScripts.inc:112 +msgid "Hide command in messages" +msgstr "Ocultar comando en mensajes" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1116 +msgid "Hide internal attributes" +msgstr "Ocultar atributos internos" + +#: ../lib/modules/customScripts.inc:92 ../lib/modules/customScripts.inc:104 +msgid "Hide tab" +msgstr "Ocultar pestaña" + +#: ../templates/3rdParty/pla/lib/page.php:407 +msgid "Hide/Unhide the tree" +msgstr "Ocultar/Mostrar el árbol" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:58 +msgid "Hint" +msgstr "Pista" + +#: ../templates/masscreate.php:249 +msgid "" +"Hint: Format all cells as text in your spreadsheet program and turn off auto " +"correction." +msgstr "" +"Pista: Formatee todas las celdas como texto en su programa de tablas y " +"desactive la corrección automática." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1005 +msgid "Hint: To delete an attribute, empty the text field and click save." +msgstr "" +"Pista: Para eliminar un atributo, deje en blanco el campo de texto y haga " +"clic en guardar." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1342 +msgid "" +"Hint: You must choose exactly one structural object class (shown in bold " +"above)" +msgstr "" +"Nota: Debe seleccionar exactamente una clase de objeto estructural (mostrado " +"arriba en negrita)" + +#: ../lib/modules/posixAccount.inc:535 ../lib/modules/windowsUser.inc:218 +#: ../lib/modules/groupOfNamesUser.inc:61 +msgid "Hold the CTRL-key to (de)select multiple groups." +msgstr "Mantenga pulsada la tecla CTRL para (de)selecionar múltiples grupos." + +#: ../lib/modules/organizationalRoleUser.inc:61 +msgid "Hold the CTRL-key to (de)select multiple roles." +msgstr "Mantenga pulsada la tecla CTRL para (de)selecionar múltiples roles." + +#: ../lib/types/user.inc:98 ../lib/modules/sambaSamAccount.inc:230 +#: ../lib/modules/sambaSamAccount.inc:354 +#: ../lib/modules/sambaSamAccount.inc:1501 +#: ../lib/modules/sambaSamAccount.inc:1916 ../lib/modules/posixAccount.inc:100 +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:103 +#: ../lib/modules/posixAccount.inc:310 ../lib/modules/posixAccount.inc:416 +#: ../lib/modules/posixAccount.inc:473 ../lib/modules/posixAccount.inc:477 +#: ../lib/modules/posixAccount.inc:481 ../lib/modules/posixAccount.inc:518 +#: ../lib/modules/posixAccount.inc:1199 ../lib/modules/posixAccount.inc:1459 +#: ../lib/modules/posixAccount.inc:1655 ../lib/modules/posixAccount.inc:1755 +#: ../lib/modules/posixAccount.inc:1854 ../lib/modules/windowsUser.inc:247 +#: ../lib/modules/windowsUser.inc:436 ../lib/modules/windowsUser.inc:479 +#: ../lib/modules/windowsUser.inc:526 ../lib/modules/windowsUser.inc:618 +#: ../lib/modules/windowsUser.inc:768 ../lib/modules/windowsUser.inc:1629 +msgid "Home directory" +msgstr "Directorio inicial" + +#: ../lib/modules/posixAccount.inc:103 +#, php-format +msgid "" +"Home directory changed. To keep home directory you have to run the following " +"command as root: 'mv %s %s'" +msgstr "" +"El directorio inicial ha cambiado. Para mantener su directorio inicial debe " +"ejecutar el siguiente comando como root: 'mv %s %s'" + +#: ../lib/modules/sambaSamAccount.inc:214 +#: ../lib/modules/sambaSamAccount.inc:231 +#: ../lib/modules/sambaSamAccount.inc:302 +#: ../lib/modules/sambaSamAccount.inc:486 +#: ../lib/modules/sambaSamAccount.inc:594 +#: ../lib/modules/sambaSamAccount.inc:1203 +#: ../lib/modules/sambaSamAccount.inc:1509 +#: ../lib/modules/sambaSamAccount.inc:1750 +#: ../lib/modules/sambaSamAccount.inc:1901 +#: ../lib/modules/sambaSamAccount.inc:1917 ../lib/modules/windowsUser.inc:244 +#: ../lib/modules/windowsUser.inc:430 ../lib/modules/windowsUser.inc:525 +#: ../lib/modules/windowsUser.inc:766 ../lib/modules/windowsUser.inc:1630 +msgid "Home drive" +msgstr "Disco inicial" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:95 +#: ../lib/modules/sambaSamAccount.inc:217 +#: ../lib/modules/sambaSamAccount.inc:305 +#: ../lib/modules/sambaSamAccount.inc:494 +#: ../lib/modules/sambaSamAccount.inc:596 +#: ../lib/modules/sambaSamAccount.inc:1211 +#: ../lib/modules/sambaSamAccount.inc:1754 +#: ../lib/modules/sambaSamAccount.inc:1900 +msgid "Home path" +msgstr "Ruta inicial" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:96 +msgid "Home path is invalid." +msgstr "La ruta inicial es inválida." + +#: ../lib/modules/zarafaUser.inc:129 +msgid "Home server for the user." +msgstr "Servidor inicial para el usuario." + +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:160 +#: ../lib/modules/inetOrgPerson.inc:425 ../lib/modules/inetOrgPerson.inc:575 +#: ../lib/modules/inetOrgPerson.inc:752 ../lib/modules/inetOrgPerson.inc:756 +#: ../lib/modules/inetOrgPerson.inc:1390 ../lib/modules/inetOrgPerson.inc:1393 +#: ../lib/modules/inetOrgPerson.inc:1901 ../lib/modules/inetOrgPerson.inc:2489 +#: ../lib/modules/inetOrgPerson.inc:3531 ../lib/modules/inetOrgPerson.inc:3582 +msgid "Home telephone number" +msgstr "Número de teléfono del hogar" + +#: ../lib/modules/posixAccount.inc:100 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/windowsUser.inc:618 ../lib/modules/windowsUser.inc:619 +msgid "Homedirectory contains invalid characters." +msgstr "El directorio inicial contiene caracteres inválidos." + +#: ../lib/types/sudo.inc:79 ../lib/modules/asteriskAccount.inc:107 +#: ../lib/modules/asteriskAccount.inc:254 +#: ../lib/modules/asteriskAccount.inc:268 +#: ../lib/modules/asteriskAccount.inc:318 +#: ../lib/modules/asteriskAccount.inc:591 +#: ../lib/modules/asteriskAccount.inc:984 ../lib/modules/nisnetgroup.inc:217 +#: ../lib/modules/nisnetgroup.inc:585 ../lib/modules/fixed_ip.inc:580 +#: ../lib/modules/hostObject.inc:145 +msgid "Host" +msgstr "Equipo" + +#: ../lib/types/host.inc:62 +msgid "Host accounts (e.g. Samba)" +msgstr "Cuentas de equipos (p.ej. Samba)" + +#: ../lib/types/host.inc:193 +#, php-format +msgid "Host count: %s" +msgstr "Conteo de equipos: %s" + +#: ../lib/types/host.inc:94 +msgid "Host description" +msgstr "Descripción del equipo" + +#: ../lib/modules/account.inc:96 ../lib/modules/posixAccount.inc:549 +#: ../lib/modules/posixAccount.inc:557 +msgid "Host description. If left empty host name will be used." +msgstr "" +"Descripción del equipo. Si se deja en blanco, se utilizará el nombre del " +"equipo." + +#: ../lib/modules/hostObject.inc:91 ../lib/modules/hostObject.inc:98 +#: ../lib/modules/hostObject.inc:217 +msgid "Host list" +msgstr "Listado de equipos" + +#: ../lib/types/host.inc:91 ../lib/types/host.inc:92 ../lib/types/bind.inc:77 +#: ../lib/modules/account.inc:91 ../lib/modules/account.inc:212 +#: ../lib/modules/windowsHost.inc:74 ../lib/modules/windowsHost.inc:94 +#: ../lib/modules/windowsHost.inc:119 ../lib/modules/windowsHost.inc:131 +#: ../lib/modules/windowsHost.inc:142 ../lib/modules/windowsHost.inc:288 +#: ../lib/modules/posixAccount.inc:115 ../lib/modules/posixAccount.inc:116 +#: ../lib/modules/posixAccount.inc:118 ../lib/modules/posixAccount.inc:375 +#: ../lib/modules/posixAccount.inc:406 ../lib/modules/posixAccount.inc:544 +#: ../lib/modules/posixAccount.inc:1422 ../lib/modules/posixAccount.inc:1844 +#: ../lib/modules/bindDLZ.inc:81 ../lib/modules/bindDLZ.inc:140 +#: ../lib/modules/bindDLZ.inc:144 ../lib/modules/bindDLZ.inc:240 +#: ../lib/modules/bindDLZ.inc:294 ../lib/modules/bindDLZ.inc:410 +#: ../lib/modules/bindDLZ.inc:470 ../lib/modules/bindDLZ.inc:497 +#: ../lib/modules/bindDLZ.inc:542 ../lib/modules/bindDLZ.inc:546 +#: ../lib/modules/bindDLZ.inc:750 ../lib/modules/bindDLZ.inc:1464 +#: ../lib/modules/bindDLZ.inc:1492 ../lib/modules/nisnetgroup.inc:153 +#: ../lib/modules/nisnetgroup.inc:481 +msgid "Host name" +msgstr "Nombre del equipo" + +#: ../lib/modules/posixAccount.inc:122 +msgid "Host name already exists!" +msgstr "¡El nombre del equipo ya existe!" + +#: ../lib/modules/windowsHost.inc:131 ../lib/modules/windowsHost.inc:132 +#: ../lib/modules/posixAccount.inc:116 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/nisnetgroup.inc:153 +msgid "" +"Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"El nombre del equipo contiene caracteres inválidos. Los caracteres válidos " +"son: a-z, A-Z, 0-9 y .-_ !" + +#: ../lib/modules/posixAccount.inc:118 +msgid "Host name in use. Selected next free host name." +msgstr "" +"El hombre del equipo está en uso. Se ha seleccionado el siguiente nombre de " +"equipo disponible." + +#: ../lib/modules/sambaSamAccount.inc:1093 +msgid "Host name must end with $!" +msgstr "¡El nombre del equipo debe terminar con $!" + +#: ../lib/modules/account.inc:92 ../lib/modules/posixAccount.inc:545 +msgid "" +"Host name of the host which should be created. Valid characters are: a-z,A-" +"Z,0-9, .-_$. Host names are always ending with $. If last character is not $ " +"it will be added. If host name is already used host name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"Nombre de equipo que debe crearse. Los caracteres válidos son: a-z, A-" +"Z ,0-9, .-_$. Los nombres de equipo siempre finalizan con $. Si el último " +"carácter no es $ este se añadirá. Si el nombre de equipo ya se ha utilizado, " +"se expandirá con un número. Se utilizará el próximo número disponible." + +#: ../lib/types/host.inc:53 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:96 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:227 ../lib/modules/sudoRole.inc:78 +#: ../lib/modules/sudoRole.inc:103 ../lib/modules/sudoRole.inc:165 +#: ../lib/modules/sudoRole.inc:217 ../lib/modules/sudoRole.inc:229 +#: ../lib/modules/sudoRole.inc:343 ../lib/modules/sudoRole.inc:807 +#: ../lib/modules/fixed_ip.inc:80 ../lib/modules/hostObject.inc:69 +#: ../lib/modules/hostObject.inc:79 +msgid "Hosts" +msgstr "Equipos" + +#: ../lib/modules/qmailUser.inc:352 +msgid "I am out of office." +msgstr "Estoy fuera de la oficina." + +#: ../lib/modules/posixGroup.inc:602 ../lib/modules/posixAccount.inc:106 +#: ../lib/modules/posixAccount.inc:1169 +msgid "ID is already in use" +msgstr "La ID ya está en uso" + +#: ../lib/modules/posixGroup.inc:600 ../lib/modules/posixGroup.inc:601 +#: ../lib/modules/posixGroup.inc:602 ../lib/modules/posixGroup.inc:724 +#: ../lib/modules/posixAccount.inc:104 ../lib/modules/posixAccount.inc:105 +#: ../lib/modules/posixAccount.inc:106 ../lib/modules/posixAccount.inc:1160 +#: ../lib/modules/posixAccount.inc:1165 ../lib/modules/posixAccount.inc:1169 +msgid "ID-Number" +msgstr "Número-ID" + +#: ../lib/modules/zarafaUser.inc:299 ../lib/modules/zarafaUser.inc:642 +#: ../lib/modules/zarafaUser.inc:1331 +msgid "IMAP" +msgstr "IMAP" + +#: ../lib/modules/imapAccess.inc:86 ../lib/modules/imapAccess.inc:124 +msgid "IMAP admin user" +msgstr "Usuario administrativo de IMAP" + +#: ../lib/modules/imapAccess.inc:89 ../lib/modules/imapAccess.inc:131 +msgid "IMAP password input" +msgstr "Entrada de contraseña IMAP" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ipHost.inc:55 +#: ../lib/modules/ipHost.inc:65 ../lib/modules/ipHost.inc:128 +#: ../lib/modules/asteriskAccount.inc:227 +#: ../lib/modules/asteriskAccount.inc:295 +#: ../lib/modules/asteriskAccount.inc:522 +#: ../lib/modules/asteriskAccount.inc:746 +#: ../lib/modules/asteriskAccount.inc:1011 +#: ../lib/modules/asteriskAccount.inc:1291 ../lib/modules/bindDLZ.inc:85 +#: ../lib/modules/bindDLZ.inc:89 ../lib/modules/bindDLZ.inc:248 +#: ../lib/modules/bindDLZ.inc:488 ../lib/modules/bindDLZ.inc:645 +#: ../lib/modules/bindDLZ.inc:1472 ../lib/modules/freeRadius.inc:84 +#: ../lib/modules/freeRadius.inc:122 ../lib/modules/freeRadius.inc:193 +#: ../lib/modules/freeRadius.inc:225 ../lib/modules/freeRadius.inc:281 +#: ../lib/modules/freeRadius.inc:537 ../lib/modules/fixed_ip.inc:106 +#: ../lib/modules/fixed_ip.inc:421 ../lib/modules/fixed_ip.inc:741 +msgid "IP address" +msgstr "Dirección IP" + +#: ../lib/modules/ddns.inc:98 ../lib/modules/ddns.inc:112 +#: ../lib/modules/ddns.inc:121 ../lib/modules/ddns.inc:381 +#: ../lib/modules/ddns.inc:424 +msgid "IP address of the DNS server" +msgstr "Dirección IP del Servidor DNS" + +#: ../lib/modules/asteriskAccount.inc:228 +msgid "IP address of the peer. Valid only for realtime peers." +msgstr "Dirección IP del par. Válido solamente para pares en tiempo real." + +#: ../lib/modules/asteriskAccount.inc:236 +msgid "IP address or domain name of the registration server." +msgstr "Dirección IP o nombre de dominio del servidor de registro." + +#: ../lib/modules/ipHost.inc:69 ../lib/modules/ipHost.inc:84 +#: ../lib/modules/ipHost.inc:104 ../lib/modules/ipHost.inc:251 +msgid "IP addresses" +msgstr "Direcciones IP" + +#: ../lib/modules/bindDLZ.inc:642 +msgid "IP addresses (\"A/AAAA\" records)" +msgstr "Direcciones IP (registros \"A/AAAA\")" + +#: ../lib/modules/fixed_ip.inc:119 +msgid "IP list" +msgstr "Listado de IPs" + +#: ../lib/modules/customFields.inc:514 +msgid "Icon" +msgstr "Icono" + +#: ../lib/modules/passwordSelfReset.inc:144 +#: ../lib/modules/passwordSelfReset.inc:506 +msgid "Identification method" +msgstr "Método de identificación" + +#: ../templates/masscreate.php:298 ../templates/masscreate.php:372 +msgid "Identifier" +msgstr "Identificador" + +#: ../lib/modules/sambaSamAccount.inc:238 +#: ../lib/modules/sambaSamAccount.inc:1527 +#: ../lib/modules/sambaSamAccount.inc:1928 +msgid "Idle time limit" +msgstr "Límite de tiempo de inactividad" + +#: ../lib/modules/freeRadius.inc:108 ../lib/modules/freeRadius.inc:132 +#: ../lib/modules/freeRadius.inc:157 ../lib/modules/freeRadius.inc:217 +#: ../lib/modules/freeRadius.inc:240 ../lib/modules/freeRadius.inc:289 +#: ../lib/modules/freeRadius.inc:541 +msgid "Idle timeout" +msgstr "Tiempo de inactividad" + +#: ../lib/modules/qmailUser.inc:256 +msgid "" +"If account status is set to deleted, the earliest date when the mail message " +"store including all remaining content will be deleted from the filesystem." +msgstr "" +"Si el estado de la cuenta está seteado a eliminada, la menor fecha del " +"almacenamiento incluyendo el contenido remanente será eliminada del sistema " +"de archivos." + +#: ../lib/modules/customFields.inc:177 +msgid "" +"If activated then LAM will show an accordion view if there is more than one " +"group per account type." +msgstr "" +"Si está activado entonces LAM mostrará una vista acordeón si hay más de un " +"grupo por tipo de cuenta." + +#: ../lib/modules/ppolicyUser.inc:60 +msgid "" +"If activated then the user is forced to change his password at the next " +"login." +msgstr "" +"Si se activa, el usuario debe cambiar su contraseña en su próximo inicio de " +"sesión." + +#: ../lib/modules/sambaSamAccount.inc:268 +msgid "If checked Unix password will also be used as Samba password." +msgstr "" +"Si se marca, la contraseña de Unix también se utilizará como constraña de " +"Samba." + +#: ../lib/modules/posixAccount.inc:527 +msgid "" +"If checked account will be deactivated by putting a \"!\" before the " +"encrypted password." +msgstr "" +"Si se marca, la cuenta se deshabilitará colocando un \"!\" antes de la " +"contraseña encriptada." + +#: ../lib/modules/sambaSamAccount.inc:274 +msgid "If checked no password will be used." +msgstr "Si se marca, no se utilizará una contraseña." + +#: ../lib/modules/windowsUser.inc:199 +msgid "If checked password does not expire." +msgstr "Si está marcado la contraseña no expira." + +#: ../lib/modules/sambaSamAccount.inc:280 +msgid "If checked password does not expire. (Setting X-Flag)" +msgstr "Si se marca, la constraseña no expira (Preferencia X-flag)" + +#: ../lib/modules/windowsUser.inc:196 +msgid "" +"If checked then the account is locked. You may only unlock accounts but not " +"lock them." +msgstr "" +"Si está tildado la cuenta está bloqueada. Usted puede sólo desbloquear " +"cuentas pero no bloquearlas." + +#: ../lib/modules/windowsUser.inc:193 +msgid "If checked then the account will be deactivated." +msgstr "Si está marcado la cuenta será desactivada." + +#: ../lib/modules/sambaSamAccount.inc:286 +msgid "If checked then the account will be deactivated. (Setting D-Flag)" +msgstr "Si se marca, la cuenta será desactivada (Preferencia D-flag)" + +#: ../lib/modules/sambaSamAccount.inc:289 +msgid "" +"If checked then the account will be locked (setting L-Flag). You usually " +"want to use this setting to unlock user accounts which were locked because " +"of failed login attempts." +msgstr "" +"Si se marca, la cuenta será bloqueada (Preferencia L-Flag). Normalmente debe " +"utilizar esta configuración para desbloquear las cuentas de usuario que " +"quedaron bloqueadas por intentos fallidos de acceso." + +#: ../help/help.inc:177 +msgid "" +"If checked then the user will not be able to create new entries of this " +"account type." +msgstr "" +"Si está tildado entonces el usuario no estará habilitado para crear nuevas " +"entradas en este tipo de cuenta." + +#: ../help/help.inc:179 +msgid "" +"If checked then the user will not be able to delete entries of this account " +"type." +msgstr "" +"Si está tildado entonces el usuario no estará habilitado para borrar sus " +"entradas en este tipo de cuenta." + +#: ../lib/modules/posixGroup.inc:481 +msgid "" +"If empty GID number will be generated automaticly depending on your " +"configuration settings." +msgstr "" +"Si está vacío, el número GID se generará automáticamente, dependiendo de su " +"configuración." + +#: ../lib/modules/qmailUser.inc:236 +msgid "If empty GID number will be generated automaticly." +msgstr "Si está vacio el número GID se generará automáticamente." + +#: ../lib/modules/qmailUser.inc:232 ../lib/modules/posixAccount.inc:462 +msgid "If empty UID number will be generated automaticly." +msgstr "Si está vacio, el número UID se generará automáticamente." + +#: ../lib/modules/ppolicy.inc:125 +msgid "" +"If enabled the user will not be allowed to login after there have been a " +"specified number of consecutive failed login attempts." +msgstr "" +"Si se habilita, no se permitirá que el usuario acceda después del número " +"especificado de intentos fallidos consecutivos." + +#: ../help/help.inc:127 +msgid "" +"If enabled then LAM will use user and password that is provided by the web " +"server via HTTP authentication." +msgstr "" +"Si se habilita, LAM utilizará el usuario y la contarseña que proporciona el " +"servidor web mediante la autenticación HTTP." + +#: ../help/help.inc:104 +msgid "" +"If enabled then the default language will be enforced and cannot be chosen " +"by the user." +msgstr "" +"Si está habiltado entonces el idioma predeterminado será forzado y no podrá " +"ser elegido por el usuario." + +#: ../lib/modules/ppolicy.inc:129 +msgid "" +"If enabled users must change their passwords when they first login after a " +"password is set or reset by the administrator." +msgstr "" +"Si se habilita, los usuarios deben cambiar sus contraseñas cuando accedan " +"por primera vez después que un administrador haya establecido o restablecido " +"la contraseña." + +#: ../lib/modules/asteriskAccount.inc:216 +msgid "" +"If registration context is specified, Asterisk will dynamically create and " +"destroy a NoOp priority 1 extension for a given peer who registers or " +"unregisters with Asterisk." +msgstr "" +"Si se especifica el contexto de registro, Asterisk dinámicamente creará y " +"destruirá una extensión NoOp de prioridad 1 para un par dado, quien se " +"registra y des-registra con Asterisk." + +#: ../lib/modules/sambaDomain.inc:110 +msgid "If set then users need to login to change their password." +msgstr "" +"Si se establece, los usuarios necesitan iniciar sesión para cambiar la " +"contraseña." + +#: ../lib/modules/sambaSamAccount.inc:271 +msgid "If set to \"true\" Unix password will also be used as Samba password." +msgstr "" +"Si se establece en \"verdadero\", la contraseña de Unix se utilizará también " +"para Samba." + +#: ../lib/modules/sambaSamAccount.inc:292 +msgid "If set to \"true\" account will be deactivated. (Setting D-Flag)" +msgstr "" +"Si se establece en \"verdadero\", la cuenta será desactivada. (Preferencia D-" +"Flag)" + +#: ../lib/modules/sambaSamAccount.inc:277 +msgid "If set to \"true\" no password will be used." +msgstr "Si se establece en \"verdadero\", no se utilizará una contraseña." + +#: ../lib/modules/sambaSamAccount.inc:283 +msgid "If set to \"true\" password does not expire. (Setting X-Flag)" +msgstr "" +"Si se establece en \"verdadero\", la contraseña no expira. (Preferencia X-" +"Flag)" + +#: ../lib/modules/qmailGroup.inc:197 +msgid "" +"If set to true then all incomming mails needs to come from a member of the " +"list." +msgstr "" +"Si está activado entonces todos los correos entrantes necesitarán provenir " +"desde un miembro de la lista." + +#: ../lib/modules/customFields.inc:125 +msgid "" +"If the LDAP attribute has no value then the checkbox is set to this value." +msgstr "" +"Si el atributo LDAP no tiene valor entonces el checkbox es seteado a este " +"valor." + +#: ../lib/modules/zarafaUser.inc:97 +msgid "" +"If the mailbox size reaches the soft quota limit, the user will not be able " +"to send email until the size of the mailbox is reduced." +msgstr "" +"Si el tamaño del buzón de correo alcanza el límite blando de la cuota, el " +"usuario no podrá enviar mensajes hasta que se reduzca el tamaño del buzón." + +#: ../lib/modules/passwordSelfReset.inc:149 +msgid "" +"If the user has a Samba 3 extension then the Samba password will also be " +"set. Otherwise, no action is taken." +msgstr "" +"Si el usuario tiene la extensión Samba 3 entonces la contraseña Samba " +"debería ser seteada. Sino, no será tomada la acción." + +#: ../lib/modules/windowsUser.inc:145 ../lib/modules/windowsUser.inc:149 +msgid "If the user has multiple telephone numbers then please enter it here." +msgstr "" +"Si el usuario tiene múltiples números telefónicos entonces por favor " +"ingréselos aquí." + +#: ../lib/modules/pykotaPrinter.inc:120 ../lib/modules/pykotaPrinter.inc:124 +msgid "" +"If this entry should be a printer group then you can set the member names " +"here." +msgstr "" +"Si esta entrada debería ser un grupo de impresoras entonces usted puede " +"setear los nombres miembros aquí." + +#: ../lib/modules/qmailGroup.inc:229 +msgid "" +"If this is set to true then an incomming mail needs to be approved by the " +"sender." +msgstr "" +"Si está seteado entonces todos los correos entrantes necesitan ser aprobados " +"por el remitente." + +#: ../lib/modules/qmailGroup.inc:144 ../lib/modules/qmailGroup.inc:148 +msgid "" +"If you enter one or more email addresses then mail delivery errors are " +"forwarded to these addresses instead of the sender of the original mail." +msgstr "" +"Si ingresa uno o más direcciones de correo entonces los errores de delibery " +"de correo serán reenviados a esas direcciones en vez de el remitente " +"original del correo." + +#: ../lib/modules/sambaSamAccount.inc:331 +msgid "" +"If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" +"Si deja este campo en blanco LAM utilizará: uidNumber*2 + " +"sambaAlgorithmicRidBase." + +#: ../lib/modules/zarafaServer.inc:85 +msgid "" +"If you run Zarafa behind a reverse proxy then you can specify the server URL " +"here (e.g. \"https://zproxy.example.com:237/z1\")." +msgstr "" +"If ejecuta Zarafa detrás de un proxy reverso entonces puede especificar la " +"URL del servidor (e.g. \"https://zproxy.example.com:237/z1\")." + +#: ../lib/modules/passwordSelfReset.inc:141 +msgid "" +"If you select this option then the user is only authenticated by his email " +"address. LAM Pro will not ask for the answer to the security question. " +"Please handle with care." +msgstr "" +"Si selecciona esta opción, el usuario solo se autenticará por su dirección " +"de correo electrónico. LAM Pro no solicitará la respuesta a la pregunta de " +"seguridad. Por favor, maneje esto con cuidado." + +#: ../lib/modules/heimdalKerberos.inc:131 +msgid "If you set this option then the user cannot request TGT-based tickets." +msgstr "" +"Si se establece esta opción el usuario tendrá no podrá requerir tickets TGT." + +#: ../lib/modules/mitKerberos.inc:175 ../lib/modules/heimdalKerberos.inc:149 +msgid "If you set this option then the user cannot request any tickets." +msgstr "" +"Si se establece esta opción el usuario tendrá no podrá requerir ningún " +"ticket." + +#: ../lib/modules/mitKerberos.inc:163 ../lib/modules/heimdalKerberos.inc:134 +msgid "" +"If you set this option then the user cannot request forwardable tickets." +msgstr "" +"Si se establece esta opción el usuario tendrá no podrá requerir tickets " +"reenviables" + +#: ../lib/modules/mitKerberos.inc:160 ../lib/modules/heimdalKerberos.inc:143 +msgid "If you set this option then the user cannot request post-dated tickets." +msgstr "" +"Si se establece esta opción el usuario tendrá no podrá requerir tickets post-" +"fecha." + +#: ../lib/modules/mitKerberos.inc:169 ../lib/modules/heimdalKerberos.inc:137 +msgid "If you set this option then the user cannot request proxiable tickets." +msgstr "" +"Si se establece esta opción el usuario tendrá no podrá requerir tickets " +"proxiables." + +#: ../lib/modules/mitKerberos.inc:166 ../lib/modules/heimdalKerberos.inc:140 +msgid "If you set this option then the user cannot request renewable tickets." +msgstr "" +"Si se establece esta opción el usuario no podrá requerir tickets renovables." + +#: ../lib/modules/mitKerberos.inc:187 ../lib/modules/heimdalKerberos.inc:146 +msgid "If you set this option then the user cannot request service tickets." +msgstr "" +"Si se establece esta opción el usuario tendrá no podrá requerir tickets de " +"servicio." + +#: ../lib/modules/mitKerberos.inc:184 ../lib/modules/sambaSamAccount.inc:295 +#: ../lib/modules/windowsUser.inc:215 ../lib/modules/heimdalKerberos.inc:128 +#: ../help/help.inc:207 +msgid "" +"If you set this option then the user has to change his password at the next " +"login." +msgstr "" +"Si se establece esta opción, el usuario tendrá que cambiar su contraseña en " +"el próximo inicio de sesión." + +#: ../lib/modules/mitKerberos.inc:181 +msgid "" +"If you set this option then the user must preauthenticate himself using a " +"hardware device." +msgstr "" +"Si se establece esta opción el usuario tendrá que pre-autenticarse por sí " +"mismo utilizando un dispositivo hardware." + +#: ../lib/modules/mitKerberos.inc:178 ../lib/modules/heimdalKerberos.inc:152 +msgid "If you set this option then the user must preauthenticate himself." +msgstr "" +"Si se establece esta opción el usuario tendrá que pre-autenticarse por sí " +"mismo." + +#: ../lib/modules/mitKerberos.inc:190 ../lib/modules/heimdalKerberos.inc:155 +msgid "" +"If you set this option then this account is marked as password change " +"service." +msgstr "" +"Si se establece esta opción el usuario tendrá que cambiar su contraseña en " +"el próximo inicio de sesión." + +#: ../lib/modules/selfRegistration.inc:87 +msgid "" +"If you use the object class \"inetOrgPerson\" and do not provide the \"cn\" " +"attribute then LAM will set it to the user name value." +msgstr "" +"Si utiliza objectClass \"inetOrgPerson\" y no porvee el atributo \"cn\" " +"entonces LAM lo seteará al nombre de usuario" + +#: ../help/help.inc:106 +msgid "" +"If you want to change the current preferences password, please enter it here." +msgstr "" +"Si desea cambiar la contraseña actual para las preferencias, por favore " +"introdúzcala aquí." + +#: ../help/help.inc:141 +msgid "" +"If you want to change your master configuration password, please enter it " +"here." +msgstr "" +"Si quiere cambiar su contraseña maestra de configuración, por favor " +"escríbala aquí." + +#: ../lib/modules/sambaGroupMapping.inc:151 +msgid "If you want to use a well known RID you can select a well known group." +msgstr "" +"Si desea utilizar un RID bien conocido, puede seleccionar un grupo bien " +"conocido." + +#: ../help/help.inc:116 +msgid "" +"If your server runs on another port then add a comma and the port number " +"after the server." +msgstr "" +"Si su servidor trabaja en otro puerto, entonces tras el servidor añada una " +"coma y el número del puerto." + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:49 +msgid "Image not available" +msgstr "Imagen no disponible" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:292 +#: ../templates/3rdParty/pla/htdocs/import.php:45 +#: ../templates/3rdParty/pla/htdocs/import_form.php:19 +msgid "Import" +msgstr "Importar" + +#: ../templates/pdfedit/pdfmain.php:215 ../templates/pdfedit/pdfmain.php:216 +#: ../help/help.inc:210 +msgid "Import PDF structures" +msgstr "Importar estructuras PDF" + +#: ../templates/config/mainmanage.php:344 +msgid "Import from server" +msgstr "Importar desde el servidor" + +#: ../templates/profedit/profilemain.php:203 +#: ../templates/profedit/profilemain.php:204 ../help/help.inc:192 +msgid "Import profiles" +msgstr "Importar perfiles" + +#: ../templates/pdfedit/pdfmain.php:109 +#: ../templates/profedit/profilemain.php:124 +msgid "Import successful" +msgstr "Importación exitosa" + +#: ../templates/config/mainmanage.php:189 +msgid "Imported certificate from server." +msgstr "Certificado importado desde servidor." + +#: ../templates/config/mainmanage.php:346 +msgid "Imports the certificate directly from your LDAP server." +msgstr "Importa el certificado directamente desde su servidor LDAP." + +#: ../lib/modules/pykotaPrinter.inc:108 +msgid "" +"In passthrough mode, users are allowed to print without any impact on their " +"quota or account balance." +msgstr "" +"En modo passthrough, los usuarios son permitidos a imprimir sin ningún " +"impacto en su cuota o en su balance de cuenta." + +#: ../lib/modules/fixed_ip.inc:115 +msgid "Inactive hosts will not be able to get an address from the DHCP server." +msgstr "" +"Hosts inactivos no serán capaces de tener una dirección desde el servidor " +"DHCP." + +#: ../templates/3rdParty/pla/htdocs/export_form.php:87 +msgid "Include system attributes" +msgstr "Incluir atributos de sistema" + +#: ../lib/tools/serverInfo.inc:53 +msgid "Information about the LDAP server." +msgstr "Información sobre el servidor LDAP." + +#: ../lib/modules/sambaSamAccount.inc:233 +#: ../lib/modules/sambaSamAccount.inc:360 +#: ../lib/modules/sambaSamAccount.inc:1513 +#: ../lib/modules/sambaSamAccount.inc:1923 +msgid "Inherit client startup configuration" +msgstr "Heredar configuración de inicio del cliente." + +#: ../templates/schema/schema.php:396 ../templates/schema/schema.php:417 +msgid "Inherited from" +msgstr "Heredado de" + +#: ../templates/schema/schema.php:157 ../templates/schema/schema.php:353 +msgid "Inherits from" +msgstr "Hereda de" + +#: ../lib/modules/pykotaUser.inc:249 +msgid "Initial payment" +msgstr "Pago inicial" + +#: ../lib/modules/sambaSamAccount.inc:234 +#: ../lib/modules/sambaSamAccount.inc:363 +#: ../lib/modules/sambaSamAccount.inc:1515 +#: ../lib/modules/sambaSamAccount.inc:1924 +msgid "Initial program" +msgstr "Programa inicial" + +#: ../lib/modules/windowsUser.inc:132 ../lib/modules/windowsUser.inc:302 +#: ../lib/modules/windowsUser.inc:503 ../lib/modules/windowsUser.inc:704 +#: ../lib/modules/windowsUser.inc:1591 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:172 ../lib/modules/inetOrgPerson.inc:321 +#: ../lib/modules/inetOrgPerson.inc:617 ../lib/modules/inetOrgPerson.inc:836 +#: ../lib/modules/inetOrgPerson.inc:1187 ../lib/modules/inetOrgPerson.inc:1190 +#: ../lib/modules/inetOrgPerson.inc:1917 ../lib/modules/inetOrgPerson.inc:2681 +#: ../lib/modules/inetOrgPerson.inc:3557 ../lib/modules/inetOrgPerson.inc:3589 +msgid "Initials" +msgstr "Iniciales" + +#: ../templates/serverInfo.php:282 ../templates/serverInfo.php:368 +msgid "Initiated" +msgstr "Iniciado" + +#: ../lib/modules/quota.inc:57 ../lib/modules/systemQuotas.inc:105 +msgid "Inode hard quota" +msgstr "Cuota dura para inodos" + +#: ../lib/modules/quota.inc:57 ../lib/modules/quota.inc:58 +#: ../lib/modules/systemQuotas.inc:105 ../lib/modules/systemQuotas.inc:106 +msgid "" +"Inode hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"La quota dura para inodos contiene caracteres inválidos. Sólo se permiten " +"números naturales." + +#: ../lib/modules/quota.inc:61 ../lib/modules/systemQuotas.inc:109 +msgid "Inode quota" +msgstr "Cuota de inodos" + +#: ../lib/modules/quota.inc:55 ../lib/modules/systemQuotas.inc:103 +msgid "Inode soft quota" +msgstr "Cuota suave para inodos" + +#: ../lib/modules/quota.inc:55 ../lib/modules/quota.inc:56 +#: ../lib/modules/systemQuotas.inc:103 ../lib/modules/systemQuotas.inc:104 +msgid "" +"Inode soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"La cuota suave para inodos contiene caracteres inválidos. Sólo se permiten " +"números naturales." + +#: ../lib/modules/quota.inc:61 ../lib/modules/quota.inc:62 +#: ../lib/modules/systemQuotas.inc:109 ../lib/modules/systemQuotas.inc:110 +msgid "Inode soft quota must be smaller than inode hard quota." +msgstr "La cuota suave para inodos debe ser menor que la quota dura." + +#: ../templates/selfService/adminMain.php:685 +msgid "Input fields" +msgstr "Introducción de campos." + +#: ../lib/modules/asteriskAccount.inc:155 +#: ../lib/modules/asteriskAccount.inc:277 +#: ../lib/modules/asteriskAccount.inc:391 +#: ../lib/modules/asteriskAccount.inc:652 +#: ../lib/modules/asteriskAccount.inc:993 +#: ../lib/modules/asteriskAccount.inc:1255 +msgid "Insecure" +msgstr "Inseguro" + +#: ../lib/modules/sambaSamAccount.inc:95 +msgid "Inserted user or group name in home path." +msgstr "Se ha insertado el nombre de usuario o de grupo en la ruta de inicio." + +#: ../lib/modules/sambaSamAccount.inc:101 +msgid "Inserted user or group name in logon script." +msgstr "" +"Se ha insertado el nombre de usuario o grupo en el script de inicio de " +"sesión." + +#: ../lib/modules/sambaSamAccount.inc:98 +msgid "Inserted user or group name in profile path." +msgstr "Se ha insertado el nombre de usuario o grupo en la ruta del perfil" + +#: ../lib/modules/fixed_ip.inc:475 +msgid "Invalid MAC address." +msgstr "Direccion MAC inválida" + +#: ../templates/massBuildAccounts.php:201 +msgid "Invalid RDN attribute!" +msgstr "¡Atributo RDN inválido!" + +#: ../templates/3rdParty/pla/htdocs/rename.php:42 +msgid "Invalid RDN value" +msgstr "Valor RDN inválido" + +#: ../lib/modules/fixed_ip.inc:484 +msgid "Invalid description." +msgstr "Descripción inválida." + +#: ../templates/3rdParty/pla/lib/import_functions.php:560 +msgid "Invalid entry" +msgstr "Entrada inválida" + +#: ../lib/modules/selfRegistration.inc:121 +msgid "Invalid format for the specification of additional attributes." +msgstr "Formato inválido para la especificación de atributos adicionales." + +#: ../lib/modules/imapAccess.inc:185 +msgid "Invalid password for IMAP admin or other problem occured." +msgstr "" +"Contraseña inválida para el administrador de IMAP, o ha ocurrido otro " +"problema." + +#: ../lib/modules/ldapPublicKey.inc:546 ../lib/modules/inetOrgPerson.inc:3287 +#: ../lib/modules/customFields.inc:1403 +msgid "Invalid request" +msgstr "Requirimiento inválida" + +#: ../templates/config/mainmanage.php:198 +msgid "Invalid server name. Please enter \"server\" or \"server:port\"." +msgstr "" +"Nombre de servidor inválido. Por favor ingrese \"servidor\" o \"servidor:" +"puerto\"." + +#: ../lib/modules/passwordSelfReset.inc:914 +#: ../lib/modules/passwordSelfReset.inc:1136 +#, php-format +msgid "Invalid value in field \"%s\"." +msgstr "Valor inválido en el campo \"%s\"." + +#: ../lib/modules/kolabUser.inc:117 ../lib/modules/kolabUser.inc:124 +#: ../lib/modules/kolabUser.inc:186 ../lib/modules/kolabUser.inc:230 +#: ../lib/modules/kolabUser.inc:315 ../lib/modules/kolabUser.inc:756 +#: ../lib/modules/kolabUser.inc:885 +msgid "Invitation policy" +msgstr "Política de invitaciones" + +#: ../lib/modules/kolabUser.inc:128 +msgid "Invitation policy list" +msgstr "Listado de políticas de invitaciones" + +#: ../lib/modules/sambaSamAccount.inc:569 +msgid "Islamabad, Karachi" +msgstr "Islamabad, Karachi" + +#: ../lib/modules/range.inc:116 +msgid "It is not possible to delete all ranges." +msgstr "No es posible eliminar todos los rangos." + +#: ../lib/modules/posixGroup.inc:600 ../lib/modules/posixAccount.inc:105 +msgid "" +"It is possible that this ID-number is reused. This can cause several " +"problems because files with old permissions might still exist. To avoid this " +"warning set maxUID to a higher value." +msgstr "" +"Es posible que este numero de ID se haya reutilizado. Esto puede causar " +"varios problemas, pues aún pueden existir archivos con permisos antiguos. " +"Para evitar esta advertencia, establezca maxUID a un valor superior." + +#: ../lib/modules/pykotaUser.inc:284 ../lib/modules/pykotaUser.inc:387 +#: ../lib/modules/pykotaUser.inc:1021 +msgid "Job history" +msgstr "Historial de trabajo" + +#: ../lib/modules/pykotaUser.inc:156 ../lib/modules/pykotaUser.inc:289 +#: ../lib/modules/pykotaUser.inc:295 ../lib/modules/pykotaUser.inc:327 +msgid "Job suffix" +msgstr "Sufijo de trabajo" + +#: ../lib/modules/inetOrgPerson.inc:89 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:226 ../lib/modules/inetOrgPerson.inc:337 +#: ../lib/modules/inetOrgPerson.inc:590 ../lib/modules/inetOrgPerson.inc:636 +#: ../lib/modules/inetOrgPerson.inc:640 ../lib/modules/inetOrgPerson.inc:1438 +#: ../lib/modules/inetOrgPerson.inc:1441 ../lib/modules/inetOrgPerson.inc:1891 +#: ../lib/modules/inetOrgPerson.inc:2692 ../lib/modules/inetOrgPerson.inc:3539 +#: ../lib/modules/inetOrgPerson.inc:3585 +msgid "Job title" +msgstr "Título del empleo" + +#: ../lib/modules/inetOrgPerson.inc:637 ../lib/modules/inetOrgPerson.inc:641 +msgid "Job title of user: President, department manager, ..." +msgstr "" +"Título del empleo del usuario: Presidente, administrador del " +"departamento, ..." + +#: ../lib/lists.inc:297 +msgid "Jump 10 pages backward" +msgstr "Retroceder 10 páginas" + +#: ../lib/lists.inc:317 +msgid "Jump 10 pages forward" +msgstr "Avanzar 10 páginas" + +#: ../templates/schema/schema.php:255 +msgid "Jump to a matching rule" +msgstr "Saltar a una regla que coincida" + +#: ../templates/schema/schema.php:114 +msgid "Jump to an attribute type" +msgstr "Saltar a un tipo de atributo" + +#: ../templates/schema/schema.php:308 ../templates/schema/schema.php:358 +#: ../templates/schema/schema.php:373 +msgid "Jump to an object class" +msgstr "Saltar a una clase de objecto" + +#: ../lib/lists.inc:292 +msgid "Jump to first page" +msgstr "Ir a la primera página" + +#: ../lib/lists.inc:322 +msgid "Jump to last page" +msgstr "Saltar a la última página" + +#: ../lib/modules/mitKerberos.inc:94 ../lib/modules/heimdalKerberos.inc:81 +msgid "Kerberos" +msgstr "Kerberos" + +#: ../lib/modules/kolabGroup.inc:74 ../lib/modules/kolabUser.inc:80 +msgid "Kolab" +msgstr "Kolab" + +#: ../lib/modules/kolabSharedFolder.inc:82 +msgid "Kolab shared folder" +msgstr "Carpeta compartida Kolab" + +#: ../lib/types/kolabSharedFolderType.inc:53 +msgid "Kolab shared folders" +msgstr "Carpetas compartidas Kolab" + +#: ../lib/types/kolabSharedFolderType.inc:62 +msgid "Kolab shared folders (e.g. mail folders)" +msgstr "Carpetas compartidas Kolab (p.ej. carpeta de correo)" + +#: ../lib/modules/posixGroup.inc:517 +msgid "" +"LAM checks if the entered group name and GID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique group names or " +"GIDs." +msgstr "" +"LAM chequea si el nombre de grupo ingresado y su GID son únicos. Aqui usted " +"puede ingresar el sufijo LDAP que es utilizado para la búsqueda de " +"duplicados. De manera predeterminada el prefijo de tipo de cuenta es usado. " +"Solamente necesita cambiar esto si utiliza múltiples perfiles de servidor " +"con diferentes OUs pero necesitan nombres de grupos y GID únicos" + +#: ../lib/modules/posixAccount.inc:490 +msgid "" +"LAM checks if the entered user name and UID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique user names or " +"UIDs." +msgstr "" +"LAM chequea si el nombre de usuario ingresado y el UID son únicos. Aqui " +"usted puede ingresar el sufijo LDAP que es utilizado para la búsqueda de " +"duplicados. De manera predeterminada el prefijo de tipo de cuenta es usado. " +"Solamente necesita cambiar esto si utiliza múltiples perfiles de servidor " +"con diferentes OUs pero necesitan nombres de usuarios y UID únicos " + +#: ../templates/login.php:265 ../templates/config/index.php:85 +msgid "LAM configuration" +msgstr "Configuración de LAM" + +#: ../templates/massBuildAccounts.php:239 +msgid "LAM has checked your input and is now ready to create the accounts." +msgstr "" +"LAM ha verificado sus entradas y ahora está listo para comenzar a crear las " +"cuentas." + +#: ../lib/modules/posixGroup.inc:505 ../lib/modules/posixAccount.inc:458 +#: ../lib/modules/inetOrgPerson.inc:813 ../lib/modules/customFields.inc:137 +msgid "" +"LAM supports CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 and SMD5 to generate the " +"hash value of passwords. SSHA and CRYPT are the most common but CRYPT does " +"not support passwords greater than 8 letters. We do not recommend to use " +"plain text passwords." +msgstr "" +"LAM soporta CRYPT, SHA, SSHA, MD5 y SMD5 para generar los valores de " +"máscaras de las contraseñas. SSHA y CRYPT son los más comunes, pero CRYPT no " +"soporta constraseñas de más de 8 caracteres. No recomendamos utilizar " +"constraseñas sin cifrar." + +#: ../templates/tests/index.php:50 +msgid "LAM tests" +msgstr "Pruebas de LAM" + +#: ../lib/modules/imapAccess.inc:128 +msgid "LAM user password" +msgstr "Contraseña de usuario de LAM" + +#: ../templates/massDoUpload.php:132 +#, php-format +msgid "LAM was unable to create account %s! An LDAP error occured." +msgstr "¡LAM no pudo crear la cuenta %s! Ocurrió un error de LDAP." + +#: ../lib/modules/sambaGroupMapping.inc:603 +msgid "LAM was unable to find a Samba 3 domain with this name!" +msgstr "¡LAM no pudo encontrar un dominio Samba 3 con este nombre!" + +#: ../lib/modules/sambaSamAccount.inc:118 +msgid "LAM was unable to find a domain with this name!" +msgstr "¡LAM no pudo encontrar un dominio con este nombre!" + +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/windowsUser.inc:1449 +msgid "LAM was unable to find a group with this name!" +msgstr "¡LAM no pudo encontrar un grupo con ese nombre!" + +#: ../lib/modules/posixAccount.inc:2330 ../lib/modules/posixAccount.inc:2391 +#: ../lib/modules/windowsUser.inc:1535 ../lib/modules/groupOfNamesUser.inc:454 +#, php-format +msgid "LAM was unable to modify group memberships for group: %s" +msgstr "LAM no pudo modificar las membrecías para el grupo: %s." + +#: ../lib/modules/organizationalRoleUser.inc:397 +#, php-format +msgid "LAM was unable to modify memberships for role: %s" +msgstr "LAM no pudo modificar las membrecías para el rol: %s" + +#: ../lib/modules/posixGroup.inc:521 ../lib/modules/posixAccount.inc:498 +msgid "" +"LAM will automatically suggest UID/GID numbers. You can either use a fixed " +"range of numbers or an LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "" +"LAM automáticamente sugerirá los números UID/GID. Puede utilizar un rango " +"fijo o una entrada LDAP con clase de objecto \"sambaUnixIdPool\"." + +#: ../help/help.inc:219 +msgid "LAM will search for accounts in this part of the LDAP tree." +msgstr "LAM buscará las cuentas en esta parte del árbol LDAP." + +#: ../lib/modules/posixAccount.inc:437 +msgid "" +"LAM will suggest a user name based on e.g. first and last name. Here you can " +"specify the suggestion. %sn% will be replaced by the last name. @givenname@ " +"will be replaced by the first character of first name. Only attributes of " +"tab Personal may be used." +msgstr "" +"LAM sugerirá a nombre de usuario basado en la primer letra del nombre y el " +"apellido. Aqui puede especificar la sugerencia. %sn% será reemplazada por el " +"apellido. @givenname@ será reemplazada por la primer letra de su primer " +"nombre. Sólo los atributos de la pestaña Personal pueden ser utilizados." + +#: ../help/help.inc:221 +msgid "" +"LAM will use this LDAP DN and password to search for accounts. It is " +"sufficient to specify an account with read rights. If nothing is inserted " +"then LAM will try to connect anonymously." +msgstr "" +"LAM utilizará este DN LDAP y la contraseña para buscar cuentas. Es " +"suficiente especificar una cuenta con permisos de lectura. Si no se inserta " +"nada, LAM intentará conectarse anónimamente." + +#: ../lib/modules/qmailUser.inc:57 +msgid "LDAP + program" +msgstr "LDAP + programa" + +#: ../templates/config/confmodules.php:97 ../templates/config/confmain.php:127 +#: ../templates/config/moduleSettings.php:96 +#: ../templates/config/conftypes.php:115 +msgid "LDAP Account Manager Configuration" +msgstr "Configuración de LDAP Account Manager" + +#: ../templates/multiEdit.php:198 ../templates/config/conftypes.php:386 +msgid "LDAP Suffix is invalid!" +msgstr "¡Sufijo de LDAP invalido!" + +#: ../templates/serverInfo.php:182 +msgid "LDAP entries" +msgstr "Entradas LDAP" + +#: ../lib/modules/qmailGroup.inc:173 ../lib/modules/qmailGroup.inc:177 +msgid "LDAP entries that are allowed to send to this list." +msgstr "Entradas LDAP que son permitidas a enviar a esta lista." + +#: ../lib/modules/qmailGroup.inc:157 ../lib/modules/qmailGroup.inc:161 +msgid "LDAP entries that are member of this list." +msgstr "Entradas LDAP que son miembros de esta lista." + +#: ../lib/modules/qmailGroup.inc:165 ../lib/modules/qmailGroup.inc:169 +msgid "LDAP entries that moderate this list (e.g. approve mails)." +msgstr "Entradas LDAP que moderan esta lista (p.ej. correos de aprobación)." + +#: ../templates/login.php:642 ../lib/account.inc:1204 +msgid "LDAP error, server says:" +msgstr "Error de LDAP, el servidor dice:" + +#: ../templates/multiEdit.php:115 ../templates/config/confmain.php:438 +#: ../help/help.inc:271 +msgid "LDAP filter" +msgstr "Filtro LDAP" + +#: ../lib/modules/qmailGroup.inc:189 ../lib/modules/qmailGroup.inc:193 +msgid "" +"LDAP filter to specify allowed senders of this list (e.g. " +"\"((objectclass=qmailUser)(employeeType=manager))\")." +msgstr "" +"Filtro LDAP para especificar los remitentes permitidos para esta lista (p." +"ej. \"((objectclass=qmailUser)(employeeType=manager))\")." + +#: ../lib/modules/qmailGroup.inc:181 ../lib/modules/qmailGroup.inc:185 +msgid "" +"LDAP filter to specify members of this list (e.g. \"((objectclass=qmailUser)" +"(employeeType=accountant))\")." +msgstr "" +"Filtro LDAP para especificar miembros de la lista (p.ej " +"\"((objectclass=qmailUser)(employeeType=accountant))\")." + +#: ../lib/modules.inc:1328 +msgid "LDAP operation successful." +msgstr "Operación de LDAP exitosa." + +#: ../templates/selfService/adminMain.php:464 +msgid "LDAP password" +msgstr "Contraseña LDAP" + +#: ../templates/3rdParty/pla/lib/functions.php:1894 +msgid "LDAP said" +msgstr "LDAP dijo" + +#: ../templates/config/confmain.php:415 ../help/help.inc:122 +msgid "LDAP search" +msgstr "Búsqueda LDAP" + +#: ../templates/selfService/adminMain.php:459 ../help/help.inc:222 +msgid "LDAP search attribute" +msgstr "Búsqueda del atributo LDAP" + +#: ../lib/account.inc:796 +msgid "LDAP search failed! Please check your preferences." +msgstr "¡La búsqueda en LDAP falló! Por favor, verifique sus preferencias." + +#: ../templates/config/confmain.php:253 ../help/help.inc:124 +msgid "LDAP search limit" +msgstr "Límite de búsqueda LDAP" + +#: ../templates/login.php:460 +msgid "LDAP server" +msgstr "Servidor LDAP" + +#: ../lib/account.inc:787 +msgid "LDAP sizelimit exceeded, not all entries are shown." +msgstr "Tamaño máximo de LDAP excedido, no se muestran todas las entradas." + +#: ../templates/multiEdit.php:82 ../templates/config/confmain.php:434 +#: ../templates/config/conftypes.php:252 +#: ../templates/selfService/adminMain.php:453 +#: ../templates/profedit/profilepage.php:202 ../help/help.inc:71 +#: ../help/help.inc:218 ../help/help.inc:269 +msgid "LDAP suffix" +msgstr "Sufijo LDAP" + +#: ../templates/massDoUpload.php:86 +msgid "LDAP upload in progress. Please wait." +msgstr "Envío al servidor LDAP en progreso. Por favor, espere." + +#: ../templates/selfService/adminMain.php:461 +msgid "LDAP user" +msgstr "Usuario LDAP" + +#: ../help/help.inc:220 +msgid "LDAP user and password" +msgstr "Usuario y contraseña LDAP" + +#: ../templates/serverInfo.php:109 +msgid "LDAP version" +msgstr "Versión de LDAP" + +#: ../templates/3rdParty/pla/lib/export_functions.php:442 +msgid "LDIF Export" +msgstr "Exportar LDIF" + +#: ../templates/multiEdit.php:443 +msgid "LDIF file" +msgstr "Archivo LDIF" + +#: ../templates/3rdParty/pla/lib/import_functions.php:149 +#: ../templates/3rdParty/pla/htdocs/import.php:71 +msgid "LDIF import" +msgstr "Importar LDIF" + +#: ../templates/3rdParty/pla/lib/import_functions.php:170 +msgid "LDIF import only supports version 1" +msgstr "La importación LDIF sólo admite la versión 1" + +#: ../lib/modules/customFields.inc:88 ../lib/modules/customFields.inc:513 +#: ../lib/modules/customFields.inc:1051 ../lib/modules/customFields.inc:1705 +#: ../lib/modules/customFields.inc:2960 +msgid "Label" +msgstr "Etiqueta" + +#: ../templates/tests/lamdaemonTest.php:201 +msgid "" +"Lamdaemon path does not end with \".pl\". Did you enter the full path to the " +"script?" +msgstr "" +"La ruta Lamdaemon no finaliza con \".pl\". ¿ Ha ingresado la ruta completa " +"para el script ?" + +#: ../templates/tests/lamdaemonTest.php:185 +msgid "Lamdaemon server and path" +msgstr "Servidor y ruta de lamdeaemon" + +#: ../templates/config/confmain.php:334 +msgid "Lamdaemon settings" +msgstr "Preferencias de lamdaemon" + +#: ../templates/tests/lamdaemonTest.php:135 +msgid "Lamdaemon successfully run." +msgstr "Lamdaemon ejecutado exitosamente." + +#: ../templates/tests/index.php:52 ../templates/tests/lamdaemonTest.php:52 +#: ../lib/tools/tests.inc:110 +msgid "Lamdaemon test" +msgstr "Prueba de lamdaemon" + +#: ../templates/tests/lamdaemonTest.php:291 +msgid "Lamdaemon test finished." +msgstr "Prueba de lamdaemon finalizada." + +#: ../templates/tests/lamdaemonTest.php:273 +msgid "Lamdaemon version" +msgstr "Versión de lamdaemon" + +#: ../templates/tests/lamdaemonTest.php:283 +msgid "Lamdaemon: Quota module installed" +msgstr "lamdaemon: Módulo de cuota instalado." + +#: ../templates/tests/lamdaemonTest.php:279 +msgid "Lamdaemon: check NSS LDAP" +msgstr "Lamdaemon: verifique NSS LDAP" + +#: ../templates/tests/lamdaemonTest.php:286 +msgid "Lamdaemon: read quotas" +msgstr "Demonio LAM: lectura de quotas." + +#: ../templates/login.php:397 +#: ../templates/selfService/selfServiceLogin.php:344 +msgid "Language" +msgstr "Idioma" + +#: ../templates/config/confmain.php:570 +msgid "Language is not defined!" +msgstr "¡No se ha definido el idioma!" + +#: ../templates/config/confmain.php:304 +msgid "Language settings" +msgstr "Configuración del idioma" + +#: ../lib/modules/mitKerberos.inc:144 ../lib/modules/mitKerberos.inc:256 +#: ../lib/modules/mitKerberos.inc:404 ../lib/modules/mitKerberos.inc:791 +msgid "Last login" +msgstr "Último ingreso" + +#: ../lib/types/user.inc:97 ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:219 ../lib/modules/windowsUser.inc:164 +#: ../lib/modules/windowsUser.inc:284 ../lib/modules/windowsUser.inc:511 +#: ../lib/modules/windowsUser.inc:599 ../lib/modules/windowsUser.inc:701 +#: ../lib/modules/windowsUser.inc:1599 ../lib/modules/inetOrgPerson.inc:68 +#: ../lib/modules/inetOrgPerson.inc:156 ../lib/modules/inetOrgPerson.inc:312 +#: ../lib/modules/inetOrgPerson.inc:539 ../lib/modules/inetOrgPerson.inc:648 +#: ../lib/modules/inetOrgPerson.inc:1178 ../lib/modules/inetOrgPerson.inc:1181 +#: ../lib/modules/inetOrgPerson.inc:1893 ../lib/modules/inetOrgPerson.inc:2445 +#: ../lib/modules/inetOrgPerson.inc:3577 +msgid "Last name" +msgstr "Apellido" + +#: ../lib/modules/windowsUser.inc:599 ../lib/modules/windowsUser.inc:600 +#: ../lib/modules/inetOrgPerson.inc:68 ../lib/modules/inetOrgPerson.inc:69 +msgid "Last name contains invalid characters or is empty!" +msgstr "¡El apellido contiene caracteres inválidos o esta vacío!" + +#: ../lib/modules/windowsUser.inc:165 ../lib/modules/inetOrgPerson.inc:649 +msgid "Last name of user. Only letters, - and spaces are allowed." +msgstr "Apellido del usuario. Sólo se permiten letras, - y espacios." + +#: ../lib/modules/mitKerberos.inc:140 ../lib/modules/mitKerberos.inc:255 +#: ../lib/modules/mitKerberos.inc:396 ../lib/modules/mitKerberos.inc:787 +#: ../lib/modules/sambaSamAccount.inc:396 +#: ../lib/modules/sambaSamAccount.inc:602 +#: ../lib/modules/sambaSamAccount.inc:1162 +#: ../lib/modules/sambaSamAccount.inc:2282 ../lib/modules/ppolicyUser.inc:87 +#: ../lib/modules/ppolicyUser.inc:136 ../lib/modules/ppolicyUser.inc:395 +#: ../lib/modules/shadowAccount.inc:167 ../lib/modules/shadowAccount.inc:201 +#: ../lib/modules/shadowAccount.inc:365 ../lib/modules/shadowAccount.inc:498 +#: ../lib/modules/shadowAccount.inc:668 +msgid "Last password change" +msgstr "Útimo cambio de contraseña" + +#: ../lib/modules/sambaSamAccount.inc:251 ../lib/modules/shadowAccount.inc:239 +msgid "Last password change (read-only)" +msgstr "Útimo cambio de contraseña (sólo lectura)" + +#: ../lib/modules/asteriskAccount.inc:239 +#: ../lib/modules/asteriskAccount.inc:298 +#: ../lib/modules/asteriskAccount.inc:544 +#: ../lib/modules/asteriskAccount.inc:758 +#: ../lib/modules/asteriskAccount.inc:1014 +#: ../lib/modules/asteriskAccount.inc:1297 +msgid "Last qualify milliseconds" +msgstr "Milisegundos de la última clasificación" + +#: ../lib/modules/dhcp_settings.inc:153 ../lib/modules/dhcp_settings.inc:209 +#: ../lib/modules/dhcp_settings.inc:224 ../lib/modules/dhcp_settings.inc:256 +#: ../lib/modules/dhcp_settings.inc:569 ../lib/modules/dhcp_settings.inc:675 +msgid "Lease time" +msgstr "Tiempo de arrendamiento" + +#: ../lib/modules/pykotaGroup.inc:125 ../lib/modules/pykotaGroup.inc:135 +#: ../lib/modules/pykotaGroup.inc:173 ../lib/modules/pykotaGroup.inc:182 +#: ../lib/modules/pykotaGroup.inc:227 ../lib/modules/pykotaGroup.inc:474 +#: ../lib/modules/pykotaUser.inc:128 ../lib/modules/pykotaUser.inc:166 +#: ../lib/modules/pykotaUser.inc:233 ../lib/modules/pykotaUser.inc:261 +#: ../lib/modules/pykotaUser.inc:397 ../lib/modules/pykotaUser.inc:898 +msgid "Limit type" +msgstr "Tipo de límite" + +#: ../templates/3rdParty/pla/htdocs/import.php:102 +msgid "Line" +msgstr "Línea" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:121 +msgid "Line ends" +msgstr "Finales de linea" + +#: ../lib/modules/selfRegistration.inc:57 +#: ../lib/modules/selfRegistration.inc:197 +#: ../lib/modules/passwordSelfReset.inc:100 +#: ../lib/modules/passwordSelfReset.inc:516 +msgid "Link text" +msgstr "Texto del enlace" + +#: ../templates/selfService/adminMain.php:394 +msgid "Link to self service login page for your users" +msgstr "Enlace a página de acceso de autoservicio para sus usuarios" + +#: ../templates/config/conftypes.php:263 ../help/help.inc:87 +msgid "List attributes" +msgstr "Atributos del listado" + +#: ../templates/config/conftypes.php:394 +msgid "List attributes are invalid!" +msgstr "¡Los atributos de los listados son inválidos!" + +#: ../lib/types/zarafaAddressListType.inc:91 +#: ../lib/modules/zarafaAddressList.inc:63 +#: ../lib/modules/zarafaAddressList.inc:104 +#: ../lib/modules/zarafaAddressList.inc:141 +#: ../lib/modules/zarafaAddressList.inc:168 +#: ../lib/modules/zarafaAddressList.inc:187 +#: ../lib/modules/zarafaAddressList.inc:331 +msgid "List name" +msgstr "Nombre del listado" + +#: ../lib/modules/zarafaAddressList.inc:168 +msgid "List name already in use." +msgstr "El nombre del listado ya está en uso." + +#: ../lib/modules/sambaSamAccount.inc:315 +msgid "" +"List of Samba workstations the user is allowed to login. Empty means every " +"workstation." +msgstr "" +"Lista de estaciones de trabajo Samba a las cuales el usuario está autorizado " +"a acceder. En blanco significa todas." + +#: ../templates/config/confmain.php:564 +msgid "List of admin users is empty or invalid!" +msgstr "¡La lista de usuarios administrativos está en blanco o es inválida!" + +#: ../lib/modules/asteriskAccount.inc:204 +msgid "List of allowed codecs." +msgstr "Lista de codecs permitidos." + +#: ../lib/modules/asteriskAccount.inc:200 +msgid "List of disallowed codecs." +msgstr "Lista de codecs no permitidos." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:94 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:88 +msgid "List of entries to be deleted:" +msgstr "Lista de entradas a eliminar:" + +#: ../templates/config/confmain.php:430 +msgid "List of valid users" +msgstr "Lista de usuarios válidos" + +#: ../templates/serverInfo.php:152 +msgid "Listeners" +msgstr "Escuchas" + +#: ../lib/modules.inc:1233 ../help/help.inc:198 +msgid "Load profile" +msgstr "Cargar perfil" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:279 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1226 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +msgid "Loading" +msgstr "Cargando" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:303 +msgid "Loading export" +msgstr "Cargando exportación" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:290 +msgid "Loading import" +msgstr "Cargando importación" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:497 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:233 +msgid "Loading search" +msgstr "Cargando búsqueda" + +#: ../lib/modules/inetLocalMailRecipient.inc:72 +#: ../lib/modules/inetLocalMailRecipient.inc:154 +msgid "Local address" +msgstr "Dirección local" + +#: ../lib/modules/inetLocalMailRecipient.inc:76 +#: ../lib/modules/inetLocalMailRecipient.inc:106 +#: ../lib/modules/inetLocalMailRecipient.inc:120 +#: ../lib/modules/inetLocalMailRecipient.inc:293 +msgid "Local address list" +msgstr "Listado de direcciones locales" + +#: ../lib/modules/sambaGroupMapping.inc:72 +msgid "Local group" +msgstr "Grupo Local" + +#: ../lib/modules/sambaGroupMapping.inc:115 +#: ../lib/modules/sambaGroupMapping.inc:166 +#: ../lib/modules/sambaGroupMapping.inc:388 +#: ../lib/modules/sambaGroupMapping.inc:555 +msgid "Local members" +msgstr "Miembros locales" + +#: ../lib/types/host.inc:97 ../lib/modules/ipHost.inc:73 +#: ../lib/modules/ipHost.inc:91 ../lib/modules/ipHost.inc:105 +#: ../lib/modules/ipHost.inc:130 ../lib/modules/ipHost.inc:252 +#: ../lib/modules/windowsHost.inc:82 ../lib/modules/windowsHost.inc:106 +#: ../lib/modules/windowsHost.inc:121 ../lib/modules/windowsHost.inc:144 +#: ../lib/modules/windowsHost.inc:290 ../lib/modules/device.inc:77 +#: ../lib/modules/device.inc:109 ../lib/modules/device.inc:129 +#: ../lib/modules/device.inc:178 ../lib/modules/device.inc:419 +#: ../lib/modules/windowsUser.inc:136 ../lib/modules/windowsUser.inc:332 +#: ../lib/modules/windowsUser.inc:504 ../lib/modules/windowsUser.inc:546 +#: ../lib/modules/windowsUser.inc:711 ../lib/modules/windowsUser.inc:1592 +#: ../lib/modules/windowsUser.inc:1734 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:187 ../lib/modules/inetOrgPerson.inc:507 +#: ../lib/modules/inetOrgPerson.inc:554 ../lib/modules/inetOrgPerson.inc:772 +#: ../lib/modules/inetOrgPerson.inc:776 ../lib/modules/inetOrgPerson.inc:1252 +#: ../lib/modules/inetOrgPerson.inc:1255 ../lib/modules/inetOrgPerson.inc:1913 +#: ../lib/modules/inetOrgPerson.inc:2588 ../lib/modules/inetOrgPerson.inc:3517 +#: ../lib/modules/inetOrgPerson.inc:3579 +msgid "Location" +msgstr "Ubicación" + +#: ../lib/modules/nisMailAliasUser.inc:93 +msgid "Location where new alias is stored." +msgstr "Ubicación donde el nuevo alias es almacenado." + +#: ../lib/types/user.inc:349 ../lib/types/user.inc:354 +msgid "Lock" +msgstr "Bloquear" + +#: ../templates/lists/changePassword.php:426 +#: ../templates/lists/changePassword.php:446 +#: ../templates/lists/changePassword.php:448 +#: ../lib/modules/ppolicyUser.inc:150 +msgid "Lock account" +msgstr "Bloquear cuenta" + +#: ../templates/lists/changePassword.php:266 +msgid "Lock account?" +msgstr "Bloquear cuenta?" + +#: ../lib/modules/posixGroup.inc:208 ../lib/modules/posixAccount.inc:338 +#: ../lib/modules/posixAccount.inc:1499 ../lib/modules/inetOrgPerson.inc:1559 +msgid "Lock password" +msgstr "Bloquear contraseña" + +#: ../lib/types/ppolicyType.inc:83 ../lib/modules/ppolicy.inc:104 +#: ../lib/modules/ppolicy.inc:151 ../lib/modules/ppolicy.inc:171 +#: ../lib/modules/ppolicy.inc:264 ../lib/modules/ppolicy.inc:476 +#: ../lib/modules/sambaDomain.inc:133 ../lib/modules/sambaDomain.inc:198 +#: ../lib/modules/sambaDomain.inc:223 ../lib/modules/sambaDomain.inc:340 +#: ../lib/modules/sambaDomain.inc:610 +msgid "Lockout duration" +msgstr "Duración del bloqueo" + +#: ../lib/modules/sambaDomain.inc:223 +msgid "Lockout duration must be are natural number." +msgstr "La duracion del bloqueo se establece en números naturales." + +#: ../lib/modules/ppolicyUser.inc:142 +msgid "Lockout time" +msgstr "Tiempo de bloqueo" + +#: ../lib/types/ppolicyType.inc:88 ../lib/modules/ppolicy.inc:124 +#: ../lib/modules/ppolicy.inc:150 ../lib/modules/ppolicy.inc:258 +#: ../lib/modules/ppolicy.inc:495 +msgid "Lockout users" +msgstr "Bloquear usuarios" + +#: ../lib/modules/sambaDomain.inc:121 ../lib/modules/sambaDomain.inc:195 +#: ../lib/modules/sambaDomain.inc:225 ../lib/modules/sambaDomain.inc:316 +#: ../lib/modules/sambaDomain.inc:607 +msgid "Lockout users after bad logon attempts" +msgstr "Bloquear usuarios tras intentos fallidos de acceso" + +#: ../lib/modules/sambaDomain.inc:225 +msgid "Lockout users after bad logon attempts must be between 0 and 999." +msgstr "" +"El bloqueo de usuarios tras varios intentos fallidos de acceso debe estar " +"entre 0 y 999." + +#: ../templates/config/mainmanage.php:423 ../help/help.inc:150 +msgid "Log destination" +msgstr "Destino de las trazas" + +#: ../templates/config/mainmanage.php:409 ../help/help.inc:148 +msgid "Log level" +msgstr "Nivel de trazas" + +#: ../templates/multiEdit.php:448 +msgid "Log output" +msgstr "Salida del log" + +#: ../templates/main_header.php:128 +#, php-format +msgid "Logged in as: %s" +msgstr "Sesión iniciada como: %s" + +#: ../templates/config/mainmanage.php:406 +msgid "Logging" +msgstr "Iniciando sesión" + +#: ../templates/login.php:433 ../templates/config/conflogin.php:62 +#: ../templates/config/mainlogin.php:72 +#: ../templates/selfService/selfServiceLogin.php:227 +#: ../templates/selfService/selfServiceLogin.php:366 +#: ../templates/selfService/adminLogin.php:64 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:530 ../help/help.inc:56 +msgid "Login" +msgstr "Iniciar sesión" + +#: ../templates/selfService/adminMain.php:500 ../help/help.inc:224 +msgid "Login attribute label" +msgstr "Etiqueta del atributo de inicio de sesión" + +#: ../templates/selfService/adminMain.php:509 ../help/help.inc:226 +msgid "Login caption" +msgstr "Título del inicio de sesión" + +#: ../templates/config/confmain.php:417 ../help/help.inc:120 +msgid "Login method" +msgstr "Método del inicio de sesión" + +#: ../lib/types/user.inc:99 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:324 ../lib/modules/posixAccount.inc:417 +#: ../lib/modules/posixAccount.inc:530 ../lib/modules/posixAccount.inc:1492 +#: ../lib/modules/posixAccount.inc:1757 ../lib/modules/posixAccount.inc:1855 +#: ../lib/modules/posixAccount.inc:2564 +msgid "Login shell" +msgstr "Intérprete del inicio de sesión" + +#: ../lib/modules/posixAccount.inc:193 ../lib/modules/posixAccount.inc:248 +#: ../lib/modules/posixAccount.inc:493 +msgid "Login shells" +msgstr "Intérpretes del inicio de sesión" + +#: ../templates/pdfedit/pdfpage.php:453 +msgid "Logo" +msgstr "Logotipo" + +#: ../lib/pdfstruct.inc:300 +msgid "Logo file deleted." +msgstr "Archivo de logo eliminado." + +#: ../lib/pdfstruct.inc:292 +#, php-format +msgid "Logo is still in use by PDF structure \"%s\" in account type \"%s\"." +msgstr "" +"El logo está todavía en uso por la estructura PDF \"%s\" en el tipo de " +"cuenta \"%s\"." + +#: ../lib/modules/sambaDomain.inc:109 ../lib/modules/sambaDomain.inc:192 +#: ../lib/modules/sambaDomain.inc:290 ../lib/modules/sambaDomain.inc:616 +msgid "Logon for password change" +msgstr "Iniciar sesión para cambiar la contraseña." + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:339 +#: ../lib/modules/sambaSamAccount.inc:342 +#: ../lib/modules/sambaSamAccount.inc:526 +#: ../lib/modules/sambaSamAccount.inc:606 +#: ../lib/modules/sambaSamAccount.inc:1284 +#: ../lib/modules/sambaSamAccount.inc:1786 +msgid "Logon hours" +msgstr "Horas de acceso" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:223 +#: ../lib/modules/sambaSamAccount.inc:311 +#: ../lib/modules/sambaSamAccount.inc:510 +#: ../lib/modules/sambaSamAccount.inc:600 +#: ../lib/modules/sambaSamAccount.inc:1237 +#: ../lib/modules/sambaSamAccount.inc:1762 +#: ../lib/modules/sambaSamAccount.inc:1902 ../lib/modules/windowsUser.inc:209 +#: ../lib/modules/windowsUser.inc:424 ../lib/modules/windowsUser.inc:477 +#: ../lib/modules/windowsUser.inc:521 ../lib/modules/windowsUser.inc:613 +#: ../lib/modules/windowsUser.inc:756 ../lib/modules/windowsUser.inc:1628 +msgid "Logon script" +msgstr "Script de inicio de sesión" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:102 ../lib/modules/windowsUser.inc:613 +#: ../lib/modules/windowsUser.inc:614 +msgid "Logon script is invalid!" +msgstr "¡El script de inicio de sesión es invalido!" + +#: ../templates/selfService/selfServiceMain.php:63 +#: ../templates/selfService/selfServiceMain.php:419 +#: ../templates/main_header.php:135 +msgid "Logout" +msgstr "Cerrar sesión" + +#: ../lib/modules/dhcp_settings.inc:98 +msgid "M-Node (0x04)" +msgstr "Nodo-M (0x04)" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ieee802device.inc:58 +#: ../lib/modules/ieee802device.inc:68 ../lib/modules/ieee802device.inc:79 +#: ../lib/modules/ieee802device.inc:106 ../lib/modules/fixed_ip.inc:102 +#: ../lib/modules/fixed_ip.inc:429 ../lib/modules/fixed_ip.inc:742 +msgid "MAC address" +msgstr "Dirección MAC" + +#: ../lib/modules/ieee802device.inc:72 +msgid "MAC address list" +msgstr "Listado de direcciones MAC" + +#: ../lib/modules/ieee802device.inc:86 ../lib/modules/ieee802device.inc:162 +msgid "MAC addresses" +msgstr "Direcciones MAC" + +#: ../lib/modules/mitKerberos.inc:268 +msgid "MIT Kerberos password change command" +msgstr "Comando para cambiar la contraseña MIT Kerberos" + +#: ../lib/modules/bindDLZ.inc:103 ../lib/modules/bindDLZ.inc:274 +#: ../lib/modules/bindDLZ.inc:280 ../lib/modules/bindDLZ.inc:287 +#: ../lib/modules/bindDLZ.inc:476 ../lib/modules/bindDLZ.inc:495 +msgid "MX record" +msgstr "Registro MX" + +#: ../lib/modules/bindDLZ.inc:414 ../lib/modules/bindDLZ.inc:433 +#: ../lib/modules/bindDLZ.inc:1509 +msgid "MX records" +msgstr "Registros MX" + +#: ../lib/modules/sambaSamAccount.inc:575 +msgid "Magadan, Solomon Islands" +msgstr "Magadán, Islas Salomón" + +#: ../lib/types/mailAlias.inc:53 ../lib/modules/nisMailAliasUser.inc:70 +#: ../lib/modules/nisMailAlias.inc:69 +msgid "Mail aliases" +msgstr "Alias de email" + +#: ../lib/modules/imapAccess.inc:100 ../lib/modules/imapAccess.inc:140 +msgid "Mail domains" +msgstr "Dominios de correo" + +#: ../lib/modules/inetLocalMailRecipient.inc:58 +msgid "Mail routing" +msgstr "Enrutamiento del correo" + +#: ../lib/modules/selfRegistration.inc:615 +#: ../lib/modules/selfRegistration.inc:635 +#: ../lib/modules/passwordSelfReset.inc:1546 +#: ../lib/modules/passwordSelfReset.inc:1561 +#: ../lib/modules/passwordSelfReset.inc:1594 +msgid "Mail sending failed." +msgstr "Envío del mensaje fallido." + +#: ../lib/modules/bindDLZ.inc:132 ../lib/modules/bindDLZ.inc:136 +#: ../lib/modules/bindDLZ.inc:274 ../lib/modules/bindDLZ.inc:493 +#: ../lib/modules/bindDLZ.inc:910 ../lib/modules/bindDLZ.inc:1512 +#: ../lib/modules/kolabUser.inc:98 ../lib/modules/kolabSharedFolder.inc:98 +#: ../lib/modules/inetLocalMailRecipient.inc:80 +#: ../lib/modules/inetLocalMailRecipient.inc:85 +#: ../lib/modules/inetLocalMailRecipient.inc:112 +#: ../lib/modules/inetLocalMailRecipient.inc:121 +#: ../lib/modules/inetLocalMailRecipient.inc:148 +#: ../lib/modules/inetLocalMailRecipient.inc:294 +msgid "Mail server" +msgstr "Servidor de correo" + +#: ../lib/modules/bindDLZ.inc:907 +msgid "Mail servers (\"MX\" records)" +msgstr "Servidores de correo electrónico (registros \"MX\")" + +#: ../lib/account.inc:1031 +#, php-format +msgid "Mail successfully sent to %s." +msgstr "Correo enviado exitosamente a %s." + +#: ../lib/modules/asteriskAccount.inc:159 +#: ../lib/modules/asteriskAccount.inc:278 +#: ../lib/modules/asteriskAccount.inc:399 +#: ../lib/modules/asteriskAccount.inc:657 +#: ../lib/modules/asteriskAccount.inc:994 +#: ../lib/modules/asteriskAccount.inc:1257 +#: ../lib/modules/asteriskVoicemail.inc:95 +#: ../lib/modules/asteriskVoicemail.inc:138 +#: ../lib/modules/asteriskVoicemail.inc:158 +#: ../lib/modules/asteriskVoicemail.inc:245 +#: ../lib/modules/asteriskVoicemail.inc:369 ../lib/modules/imapAccess.inc:63 +#: ../lib/modules/imapAccess.inc:106 ../lib/modules/imapAccess.inc:243 +msgid "Mailbox" +msgstr "Buzón de correo" + +#: ../lib/modules/imapAccess.inc:252 +msgid "Mailbox already exists on IMAP server." +msgstr "El buzón de correo ya existe en el servidor IMAP." + +#: ../lib/modules/imapAccess.inc:259 +msgid "Mailbox does not exist on IMAP server." +msgstr "El buzón de correo no existe en el servidor IMAP" + +#: ../lib/modules/kolabUser.inc:148 ../lib/modules/kolabUser.inc:192 +#: ../lib/modules/kolabUser.inc:231 ../lib/modules/kolabUser.inc:297 +#: ../lib/modules/kolabUser.inc:300 ../lib/modules/kolabUser.inc:745 +#: ../lib/modules/kolabSharedFolder.inc:154 +#: ../lib/modules/kolabSharedFolder.inc:188 +#: ../lib/modules/kolabSharedFolder.inc:238 +#: ../lib/modules/kolabSharedFolder.inc:284 +#: ../lib/modules/kolabSharedFolder.inc:287 +#: ../lib/modules/kolabSharedFolder.inc:559 +msgid "Mailbox home server" +msgstr "Servidor inicial del buzón de correo" + +#: ../lib/modules/kolabUser.inc:251 +msgid "Mailbox home server name is empty!" +msgstr "¡El nombre del servidor inicial del buzón de correo está en blanco!" + +#: ../lib/modules/kolabUser.inc:249 ../lib/modules/kolabUser.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:257 +#: ../lib/modules/kolabSharedFolder.inc:258 +msgid "Mailbox home server name is invalid!" +msgstr "¡El nombre del servidor inicial del buzón de correo es inválido!" + +#: ../lib/modules/kolabUser.inc:99 ../lib/modules/kolabUser.inc:174 +#: ../lib/modules/kolabUser.inc:199 ../lib/modules/kolabUser.inc:232 +#: ../lib/modules/kolabUser.inc:257 ../lib/modules/kolabUser.inc:310 +#: ../lib/modules/kolabUser.inc:772 +msgid "Mailbox quota" +msgstr "Cuota de buzón de correo" + +#: ../lib/types/mailAlias.inc:62 +msgid "Mailing aliases (e.g. NIS mail aliases)" +msgstr "Alias de correo (p.ej. alias de correo NIS)" + +#: ../lib/modules/nisMailAlias.inc:82 +msgid "Mails to this name are forwarded to the recipients." +msgstr "Los correos a este nombre serán reenviados a los destinatarios." + +#: ../templates/pdfedit/pdfpage.php:367 ../templates/pdfedit/pdfpage.php:678 +msgid "Main" +msgstr "Principal" + +#: ../templates/selfService/adminMain.php:515 ../help/help.inc:228 +msgid "Main page caption" +msgstr "Título de la página principal" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:79 +msgid "Make sure your filter (above) will select all child records." +msgstr "" +"Verifique que su filtro (arriba) seleccionará todos los registros hijos." + +#: ../lib/modules/inetOrgPerson.inc:1516 +msgid "Manage" +msgstr "Gestionar" + +#: ../templates/pdfedit/pdfmain.php:190 +msgid "Manage existing PDF structures" +msgstr "Manejar las estructuras existentes de PDF" + +#: ../templates/profedit/profilemain.php:175 +msgid "Manage existing profiles" +msgstr "Manejar perfiles existentes" + +#: ../templates/pdfedit/pdfmain.php:232 +msgid "Manage logos" +msgstr "Gestionar logos" + +#: ../lib/modules/kolabUser.inc:112 ../lib/modules/kolabUser.inc:170 +msgid "Manage object class \"mailrecipient\"" +msgstr "Gestionar clase de objeto \"mailrecipient\"" + +#: ../lib/modules/sambaSamAccount.inc:1224 +msgid "Manage profile directory" +msgstr "Gestionar perfil de directorio" + +#: ../templates/selfService/adminLogin.php:182 +msgid "Manage self service profiles" +msgstr "Manejar perfiles de servicio" + +#: ../templates/config/conflogin.php:192 +msgid "Manage server profiles" +msgstr "Manejar perfiles de servidor" + +#: ../lib/modules/windowsHost.inc:86 ../lib/modules/windowsHost.inc:112 +#: ../lib/modules/windowsHost.inc:122 ../lib/modules/windowsHost.inc:146 +#: ../lib/modules/windowsHost.inc:295 ../lib/modules/windowsGroup.inc:146 +#: ../lib/modules/windowsGroup.inc:167 ../lib/modules/windowsGroup.inc:227 +#: ../lib/modules/windowsGroup.inc:268 ../lib/modules/windowsGroup.inc:352 +#: ../lib/modules/windowsGroup.inc:781 +msgid "Managed by" +msgstr "Gestionado por" + +#: ../templates/serverInfo.php:105 +msgid "Managed suffixes" +msgstr "Sufijos gestonados" + +#: ../lib/modules/ipHost.inc:77 ../lib/modules/ipHost.inc:97 +#: ../lib/modules/ipHost.inc:106 ../lib/modules/ipHost.inc:154 +#: ../lib/modules/ipHost.inc:253 ../lib/modules/inetOrgPerson.inc:361 +#: ../lib/modules/inetOrgPerson.inc:605 ../lib/modules/inetOrgPerson.inc:656 +#: ../lib/modules/inetOrgPerson.inc:660 ../lib/modules/inetOrgPerson.inc:1528 +#: ../lib/modules/inetOrgPerson.inc:1894 ../lib/modules/inetOrgPerson.inc:3549 +#: ../lib/modules/inetOrgPerson.inc:3587 +msgid "Manager" +msgstr "Adminstrar" + +#: ../lib/tools/ouEditor.inc:53 +msgid "Manages OU objects in your LDAP tree." +msgstr "Maneja Unidades Organizativas en su árbol LDAP." + +#: ../lib/modules/kolabUser.inc:52 +msgid "Manual" +msgstr "Manual" + +#: ../lib/modules/kolabUser.inc:54 +msgid "Manual if conflicts" +msgstr "Manual si entra en conflicto" + +#: ../lib/modules/customScripts.inc:172 +msgid "Manual scripts" +msgstr "Script manual" + +#: ../lib/types/nisObjectType.inc:78 ../lib/modules/nisObject.inc:65 +#: ../lib/modules/nisObject.inc:96 ../lib/modules/nisObject.inc:112 +#: ../lib/modules/nisObject.inc:123 ../lib/modules/nisObject.inc:149 +#: ../lib/modules/nisObject.inc:210 +msgid "Mapping entry" +msgstr "Mapeando entrada" + +#: ../lib/modules/nisObject.inc:123 ../lib/modules/nisObject.inc:124 +msgid "" +"Mapping entry contains invalid characters. Only ASCII characters are allowed." +msgstr "" +"El mapeo contiene caracters inválidos. Sólo caracteres ASCII son permitidos." + +#: ../lib/types/nisObjectType.inc:79 ../lib/modules/nisObject.inc:69 +#: ../lib/modules/nisObject.inc:89 ../lib/modules/nisObject.inc:113 +#: ../lib/modules/nisObject.inc:143 ../lib/modules/nisObject.inc:211 +msgid "Mapping name" +msgstr "Nombre de mapeo" + +#: ../lib/modules/kolabGroup.inc:213 ../lib/modules/kolabGroup.inc:293 +#: ../lib/modules/kolabUser.inc:388 ../lib/modules/kolabUser.inc:519 +#: ../lib/modules/kolabSharedFolder.inc:345 +#: ../lib/modules/kolabSharedFolder.inc:433 +msgid "Mark account for deletion" +msgstr "Marcar cuenta para borrar" + +#: ../lib/modules/kolabGroup.inc:113 ../lib/modules/kolabUser.inc:178 +#: ../lib/modules/kolabSharedFolder.inc:166 +msgid "Mark for deletion" +msgstr "Marcar como pendiente de borrar" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:44 +msgid "Mass delete" +msgstr "Borrado masivo" + +#: ../templates/config/profmanage.php:311 +#: ../templates/config/mainlogin.php:158 +#: ../templates/selfService/profManage.php:247 +#: ../templates/pdfedit/pdfmain.php:290 ../templates/pdfedit/pdfmain.php:337 +#: ../templates/profedit/profilemain.php:257 +#: ../templates/profedit/profilemain.php:305 ../help/help.inc:142 +msgid "Master password" +msgstr "Contraseña maestra" + +#: ../templates/config/profmanage.php:54 +#: ../templates/selfService/profManage.php:40 +#: ../templates/pdfedit/pdfmain.php:106 ../templates/pdfedit/pdfmain.php:114 +#: ../templates/profedit/profilemain.php:121 +#: ../templates/profedit/profilemain.php:129 +msgid "Master password is wrong!" +msgstr "Contraseña maestra incorrecta!" + +#: ../templates/config/mainmanage.php:82 +msgid "Master passwords are different or empty!" +msgstr "Las contraseñas maestras son diferentes, o en blanco!" + +#: ../templates/schema/schema.php:268 +msgid "Matching rule OID" +msgstr "OID de la regla que coincide" + +#: ../templates/schema/schema.php:77 ../templates/schema/schema.php:78 +msgid "Matching rules" +msgstr "Reglas coincidentes" + +#: ../templates/serverInfo.php:173 +msgid "Max. file descriptors" +msgstr "Máximo número de descriptores de archivos" + +#: ../lib/modules/posixGroup.inc:410 ../lib/modules/posixGroup.inc:604 +#: ../lib/modules/posixGroup.inc:605 +msgid "Maximum GID number" +msgstr "GID máximo" + +#: ../lib/modules/posixGroup.inc:604 +msgid "Maximum GID number is invalid or empty!" +msgstr "GID máximo está vacio es inválido!" + +#: ../lib/modules/posixGroup.inc:605 +msgid "Maximum GID number must be greater than minimum GID number!" +msgstr "El GID máximo debe ser mayor que el GID mínimo!" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:221 ../lib/modules/posixAccount.inc:239 +msgid "Maximum UID number" +msgstr "UID máximo" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +msgid "Maximum UID number is invalid!" +msgstr "El UID máximo no es válido!" + +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +msgid "Maximum UID number must be greater than minimum UID number!" +msgstr "El UID máxio debe ser mayor que el UID mínimo!" + +#: ../lib/types/ppolicyType.inc:84 ../lib/modules/ppolicy.inc:108 +#: ../lib/modules/ppolicy.inc:152 ../lib/modules/ppolicy.inc:172 +#: ../lib/modules/ppolicy.inc:272 ../lib/modules/ppolicy.inc:477 +msgid "Maximum failure count" +msgstr "Contador de máximo de intentos fallidos" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:128 +#: ../templates/3rdParty/pla/htdocs/import_form.php:36 +#: ../lib/modules/customFields.inc:156 ../lib/modules/customFields.inc:3299 +msgid "Maximum file size" +msgstr "Tamaño máximo de archivo" + +#: ../lib/modules/inetOrgPerson.inc:3614 +msgid "Maximum file size (kB)" +msgstr "Tamaño máximo de archivo (kB)" + +#: ../lib/modules/customFields.inc:3331 +msgid "Maximum file size must be a number. Please enter 0 for no limit." +msgstr "" +"El tamaño máximo de archivo debe ser un número. Por favor ingrese 0 para " +"ilimitado." + +#: ../lib/modules/inetOrgPerson.inc:3613 +msgid "Maximum height (px)" +msgstr "Altura máxima (px)" + +#: ../lib/types/pykotaPrinterType.inc:95 ../lib/modules/pykotaPrinter.inc:103 +#: ../lib/modules/pykotaPrinter.inc:135 ../lib/modules/pykotaPrinter.inc:159 +#: ../lib/modules/pykotaPrinter.inc:195 ../lib/modules/pykotaPrinter.inc:213 +#: ../lib/modules/pykotaPrinter.inc:233 ../lib/modules/pykotaPrinter.inc:586 +msgid "Maximum job size" +msgstr "Tamaño máximo de trabajo" + +#: ../lib/modules/dhcp_settings.inc:157 ../lib/modules/dhcp_settings.inc:210 +#: ../lib/modules/dhcp_settings.inc:225 ../lib/modules/dhcp_settings.inc:262 +#: ../lib/modules/dhcp_settings.inc:573 ../lib/modules/dhcp_settings.inc:676 +msgid "Maximum lease time" +msgstr "Maximo tiempo de arrendamiento" + +#: ../templates/schema/schema.php:214 +msgid "Maximum length" +msgstr "Longitud máxima" + +#: ../lib/lists.inc:1011 ../help/help.inc:97 +msgid "Maximum list entries" +msgstr "Lista máxima de entradas" + +#: ../lib/modules/asteriskAccount.inc:196 +msgid "" +"Maximum number of seconds of inactivity before terminating a call on hold." +msgstr "" +"Máximo número de segundos de inactividad antes de terminar una llamada en " +"espera." + +#: ../lib/types/ppolicyType.inc:79 ../lib/modules/shadowAccount.inc:59 +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/shadowAccount.inc:123 +#: ../lib/modules/shadowAccount.inc:172 ../lib/modules/shadowAccount.inc:189 +#: ../lib/modules/shadowAccount.inc:227 ../lib/modules/shadowAccount.inc:340 +#: ../lib/modules/shadowAccount.inc:504 ../lib/modules/ppolicy.inc:88 +#: ../lib/modules/ppolicy.inc:144 ../lib/modules/ppolicy.inc:167 +#: ../lib/modules/ppolicy.inc:168 ../lib/modules/ppolicy.inc:206 +#: ../lib/modules/ppolicy.inc:473 ../lib/modules/sambaDomain.inc:129 +#: ../lib/modules/sambaDomain.inc:197 ../lib/modules/sambaDomain.inc:220 +#: ../lib/modules/sambaDomain.inc:222 ../lib/modules/sambaDomain.inc:332 +#: ../lib/modules/sambaDomain.inc:609 +msgid "Maximum password age" +msgstr "Edad máxima de contraseñas" + +#: ../lib/modules/inetOrgPerson.inc:3612 +msgid "Maximum width (px)" +msgstr "Ancho máximo (px)" + +#: ../lib/modules/qmailGroup.inc:80 ../lib/modules/qmailGroup.inc:204 +#: ../lib/modules/qmailGroup.inc:208 ../lib/modules/qmailGroup.inc:337 +#: ../lib/modules/qmailGroup.inc:402 ../lib/modules/qmailGroup.inc:425 +#: ../lib/modules/qmailGroup.inc:514 ../lib/modules/qmailGroup.inc:1063 +msgid "Member email addresses" +msgstr "Direcciones de correo electrónico de los miembros" + +#: ../lib/modules/qmailGroup.inc:78 ../lib/modules/qmailGroup.inc:156 +#: ../lib/modules/qmailGroup.inc:160 ../lib/modules/qmailGroup.inc:279 +#: ../lib/modules/qmailGroup.inc:381 ../lib/modules/qmailGroup.inc:516 +#: ../lib/modules/qmailGroup.inc:783 ../lib/modules/qmailGroup.inc:1062 +msgid "Member entries" +msgstr "Entradas miembro" + +#: ../lib/modules/qmailGroup.inc:82 ../lib/modules/qmailGroup.inc:180 +#: ../lib/modules/qmailGroup.inc:184 ../lib/modules/qmailGroup.inc:303 +#: ../lib/modules/qmailGroup.inc:390 ../lib/modules/qmailGroup.inc:515 +#: ../lib/modules/qmailGroup.inc:1064 +msgid "Member filter" +msgstr "Filtro de búsqueda" + +#: ../lib/types/netgroup.inc:94 ../lib/modules/nisnetgroup.inc:95 +#: ../lib/modules/nisnetgroup.inc:99 ../lib/modules/nisnetgroup.inc:132 +#: ../lib/modules/nisnetgroup.inc:142 ../lib/modules/nisnetgroup.inc:286 +#: ../lib/modules/nisnetgroup.inc:583 ../lib/modules/organizationalRole.inc:93 +#: ../lib/modules/organizationalRole.inc:97 +#: ../lib/modules/organizationalRole.inc:130 +#: ../lib/modules/organizationalRole.inc:138 +#: ../lib/modules/organizationalRole.inc:193 +#: ../lib/modules/organizationalRole.inc:341 +#: ../lib/modules/organizationalRole.inc:461 +#: ../lib/modules/windowsGroup.inc:130 ../lib/modules/windowsGroup.inc:134 +#: ../lib/modules/windowsGroup.inc:211 ../lib/modules/windowsGroup.inc:260 +#: ../lib/modules/windowsGroup.inc:790 ../lib/modules/groupOfNames.inc:101 +#: ../lib/modules/groupOfNames.inc:105 ../lib/modules/groupOfNames.inc:151 +#: ../lib/modules/groupOfNames.inc:159 ../lib/modules/groupOfNames.inc:168 +#: ../lib/modules/groupOfNames.inc:247 ../lib/modules/groupOfNames.inc:553 +#: ../lib/modules/groupOfNames.inc:714 +msgid "Members" +msgstr "Miembros" + +#: ../lib/modules/groupOfNames.inc:109 ../lib/modules/groupOfNames.inc:179 +msgid "Members are optional" +msgstr "Los miembros son opcionales" + +#: ../lib/modules/qmailGroup.inc:94 ../lib/modules/qmailGroup.inc:196 +#: ../lib/modules/qmailGroup.inc:319 ../lib/modules/qmailGroup.inc:396 +#: ../lib/modules/qmailGroup.inc:617 ../lib/modules/qmailGroup.inc:1075 +msgid "Members only" +msgstr "Miembros solamente" + +#: ../lib/modules/qmailUser.inc:108 ../lib/modules/qmailUser.inc:143 +#: ../lib/modules/qmailUser.inc:223 ../lib/modules/qmailUser.inc:316 +#: ../lib/modules/qmailUser.inc:412 ../lib/modules/qmailUser.inc:686 +#: ../lib/modules/qmailUser.inc:1145 +msgid "Message count limit" +msgstr "Límite de cantidad de mensajes" + +#: ../lib/modules/qmailUser.inc:110 ../lib/modules/qmailUser.inc:153 +#: ../lib/modules/qmailUser.inc:227 ../lib/modules/qmailUser.inc:324 +#: ../lib/modules/qmailUser.inc:415 ../lib/modules/qmailUser.inc:697 +#: ../lib/modules/qmailUser.inc:1146 +msgid "Message size limit" +msgstr "Límite de tamaño del mensaje" + +#: ../lib/modules/qmailUser.inc:120 ../lib/modules/qmailUser.inc:171 +#: ../lib/modules/qmailUser.inc:247 ../lib/modules/qmailUser.inc:366 +#: ../lib/modules/qmailUser.inc:430 ../lib/modules/qmailUser.inc:601 +#: ../lib/modules/qmailUser.inc:1149 ../lib/modules/qmailGroup.inc:139 +#: ../lib/modules/qmailGroup.inc:254 ../lib/modules/qmailGroup.inc:372 +#: ../lib/modules/qmailGroup.inc:508 ../lib/modules/qmailGroup.inc:1058 +msgid "Message store" +msgstr "Almacenamiento de mensajes" + +#: ../lib/modules/sambaSamAccount.inc:562 +msgid "Mid-Atlantic" +msgstr "Atlántico central" + +#: ../lib/modules/sambaSamAccount.inc:553 +msgid "Midway Island, Samoa" +msgstr "Islas Midway, Samoa" + +#: ../lib/modules/windowsUser.inc:286 ../lib/modules/inetOrgPerson.inc:314 +msgid "Miller" +msgstr "Miller" + +#: ../lib/modules/sambaDomain.inc:101 ../lib/modules/sambaDomain.inc:190 +#: ../lib/modules/sambaDomain.inc:276 ../lib/modules/sambaDomain.inc:605 +msgid "Minimal password length" +msgstr "Longitud mínima de contraseña" + +#: ../lib/modules/posixGroup.inc:407 ../lib/modules/posixGroup.inc:603 +msgid "Minimum GID number" +msgstr "GID mínimo" + +#: ../lib/modules/posixGroup.inc:603 +msgid "Minimum GID number is invalid or empty!" +msgstr "El GID mínimo es inválido o está vacio!" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:218 ../lib/modules/posixAccount.inc:236 +msgid "Minimum UID number" +msgstr "UID mínimo" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +msgid "Minimum UID number is invalid!" +msgstr "El UID mínimo es inválido!" + +#: ../lib/modules/passwordSelfReset.inc:92 +#: ../lib/modules/passwordSelfReset.inc:514 +msgid "Minimum answer length" +msgstr "Longitud máxima de la respuesta" + +#: ../templates/config/mainmanage.php:392 +msgid "Minimum character classes" +msgstr "Clases de caracteres mínimos." + +#: ../templates/config/mainmanage.php:388 +msgid "Minimum lowercase characters" +msgstr "Caracteres mínimos con minúscula." + +#: ../templates/config/mainmanage.php:390 +msgid "Minimum numeric characters" +msgstr "Minimo de caracteres numericos" + +#: ../lib/types/ppolicyType.inc:78 ../lib/modules/shadowAccount.inc:57 +#: ../lib/modules/shadowAccount.inc:118 ../lib/modules/shadowAccount.inc:171 +#: ../lib/modules/shadowAccount.inc:185 ../lib/modules/shadowAccount.inc:221 +#: ../lib/modules/shadowAccount.inc:332 ../lib/modules/shadowAccount.inc:503 +#: ../lib/modules/ppolicy.inc:84 ../lib/modules/ppolicy.inc:143 +#: ../lib/modules/ppolicy.inc:166 ../lib/modules/ppolicy.inc:198 +#: ../lib/modules/ppolicy.inc:472 ../lib/modules/sambaDomain.inc:125 +#: ../lib/modules/sambaDomain.inc:196 ../lib/modules/sambaDomain.inc:221 +#: ../lib/modules/sambaDomain.inc:324 ../lib/modules/sambaDomain.inc:608 +msgid "Minimum password age" +msgstr "Edad mínima de contraseñas permitida" + +#: ../templates/config/mainmanage.php:386 ../lib/types/ppolicyType.inc:87 +#: ../lib/modules/ppolicy.inc:120 ../lib/modules/ppolicy.inc:147 +#: ../lib/modules/ppolicy.inc:175 ../lib/modules/ppolicy.inc:250 +#: ../lib/modules/ppolicy.inc:480 +msgid "Minimum password length" +msgstr "Longitud minima de la contreseña" + +#: ../templates/config/mainmanage.php:391 +msgid "Minimum symbolic characters" +msgstr "Caracteres mínimos con símbolos." + +#: ../lib/modules/bindDLZ.inc:216 ../lib/modules/bindDLZ.inc:319 +#: ../lib/modules/bindDLZ.inc:420 ../lib/modules/bindDLZ.inc:518 +#: ../lib/modules/bindDLZ.inc:1023 ../lib/modules/bindDLZ.inc:1545 +msgid "Minimum time" +msgstr "Tiempo mínimo" + +#: ../templates/config/mainmanage.php:389 +msgid "Minimum uppercase characters" +msgstr "Caracteres mínimos con mayúsculas." + +#: ../templates/3rdParty/pla/lib/import_functions.php:429 +msgid "Missing attributes for" +msgstr "Atributos faltantes para" + +#: ../templates/3rdParty/pla/lib/import_functions.php:443 +msgid "Missing modify command add, delete or replace" +msgstr "Falta comando para agregar, borrar o reemplazar" + +#: ../lib/types/user.inc:207 ../lib/modules/inetOrgPerson.inc:74 +#: ../lib/modules/inetOrgPerson.inc:157 ../lib/modules/inetOrgPerson.inc:433 +#: ../lib/modules/inetOrgPerson.inc:578 ../lib/modules/inetOrgPerson.inc:704 +#: ../lib/modules/inetOrgPerson.inc:708 ../lib/modules/inetOrgPerson.inc:1398 +#: ../lib/modules/inetOrgPerson.inc:1401 ../lib/modules/inetOrgPerson.inc:1902 +#: ../lib/modules/inetOrgPerson.inc:3533 ../lib/modules/inetOrgPerson.inc:3583 +msgid "Mobile number" +msgstr "Numero de ḿmóbil" + +#: ../lib/modules/inetOrgPerson.inc:2500 +msgid "Mobile telephone number" +msgstr "Número de teléfono movil" + +#: ../lib/modules/qmailGroup.inc:86 ../lib/modules/qmailGroup.inc:212 +#: ../lib/modules/qmailGroup.inc:216 ../lib/modules/qmailGroup.inc:345 +#: ../lib/modules/qmailGroup.inc:405 ../lib/modules/qmailGroup.inc:427 +#: ../lib/modules/qmailGroup.inc:517 ../lib/modules/qmailGroup.inc:1066 +msgid "Moderator email addresses" +msgstr "Direcciones de correo electrónico de moderadores" + +#: ../lib/modules/qmailGroup.inc:84 ../lib/modules/qmailGroup.inc:164 +#: ../lib/modules/qmailGroup.inc:168 ../lib/modules/qmailGroup.inc:287 +#: ../lib/modules/qmailGroup.inc:384 ../lib/modules/qmailGroup.inc:518 +#: ../lib/modules/qmailGroup.inc:786 ../lib/modules/qmailGroup.inc:1065 +msgid "Moderator entries" +msgstr "Entradas de moderador" + +#: ../lib/modules/qmailGroup.inc:76 ../lib/modules/qmailGroup.inc:106 +#: ../lib/modules/qmailGroup.inc:200 ../lib/modules/qmailGroup.inc:329 +#: ../lib/modules/qmailGroup.inc:399 ../lib/modules/qmailGroup.inc:603 +#: ../lib/modules/qmailGroup.inc:1061 +msgid "Moderator text" +msgstr "Texto del moderador" + +#: ../lib/modules/qmailGroup.inc:201 +msgid "" +"Moderator text that is used to specify an own approval text used if the list " +"is moderated. The usual %HEADER% magic of qmail-reply etc. can be used here." +msgstr "" +"Texto de moderador que es utilizada para especificar un texto de aprobación " +"propio si la lista es moderada. El usual %HEADER% de qmail-reply etc puede " +"ser utilizado aquí." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:61 +msgid "Modification not successful!" +msgstr "La modificación no terminó correctamente!" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:59 +msgid "Modification successful!" +msgstr "Modificación correcta!" + +#: ../lib/modules/generalInformation.inc:92 +msgid "Modification time" +msgstr "Fecha de modificación" + +#: ../lib/modules/generalInformation.inc:88 +msgid "Modified by" +msgstr "Modificado por" + +#: ../templates/serverInfo.php:314 ../templates/serverInfo.php:387 +#: ../templates/multiEdit.php:126 +msgid "Modify" +msgstr "Editar" + +#: ../templates/serverInfo.php:328 ../templates/serverInfo.php:393 +msgid "Modify RDN" +msgstr "Modificar RDN" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:57 +msgid "Modify group" +msgstr "Editar grupos" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2110 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2111 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2114 +msgid "Modify group members" +msgstr "Editar miembros de grupo" + +#: ../templates/3rdParty/pla/htdocs/import.php:32 +msgid "Modifying" +msgstr "Modificando" + +#: ../templates/config/confmodules.php:176 +#: ../templates/config/confmain.php:217 +#: ../templates/config/moduleSettings.php:175 +#: ../templates/config/conftypes.php:194 +#: ../templates/selfService/adminMain.php:435 +msgid "Module settings" +msgstr "Preferencias del módulo" + +#: ../templates/config/confmodules.php:172 +#: ../templates/config/confmain.php:213 +#: ../templates/config/moduleSettings.php:171 +#: ../templates/config/conftypes.php:190 +msgid "Modules" +msgstr "Módulos" + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Monday" +msgstr "Lunes" + +#: ../lib/modules/sambaSamAccount.inc:557 +msgid "Mountain Time (US & Canada)" +msgstr "Montaña (EE.UU y Canadá)" + +#: ../lib/modules/quota.inc:105 ../lib/modules/quota.inc:399 +#: ../lib/modules/quota.inc:506 ../lib/modules/quota.inc:633 +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:122 +#: ../lib/modules/systemQuotas.inc:382 +msgid "Mountpoint" +msgstr "Punto de montaje" + +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:98 +msgid "Mountpoint contains invalid characters." +msgstr "El punto de montaje contiene caracteres inválidos." + +#: ../lib/modules/quota.inc:106 +msgid "Mountpoint of device with enabled quotas." +msgstr "Punto de montaje para dispositivo con quotas habilitadas." + +#: ../lib/modules/customFields.inc:636 +msgid "Move down" +msgstr "Mover abajo" + +#: ../lib/modules/customFields.inc:630 +msgid "Move up" +msgstr "Mover arriba" + +#: ../templates/multiEdit.php:78 ../lib/tools/multiEdit.inc:44 +msgid "Multi edit" +msgstr "Edición múltiple" + +#: ../lib/modules/customFields.inc:1910 ../lib/modules/customFields.inc:3304 +msgid "Multi value" +msgstr "Multivalor" + +#: ../lib/modules/customFields.inc:3162 +msgid "Multi-select fields must not contain empty values." +msgstr "Campos de multi-selección no pueden contener valores vacíos." + +#: ../lib/modules/pykotaPrinter.inc:125 +#: ../lib/modules/zarafaDynamicGroup.inc:76 ../lib/modules/zarafaGroup.inc:78 +#: ../lib/modules/eduPerson.inc:98 ../lib/modules/eduPerson.inc:111 +#: ../lib/modules/eduPerson.inc:123 ../lib/modules/eduPerson.inc:139 +#: ../lib/modules/eduPerson.inc:147 ../lib/modules/zarafaUser.inc:164 +#: ../lib/modules/sudoRole.inc:100 ../lib/modules/sudoRole.inc:105 +#: ../lib/modules/sudoRole.inc:110 ../lib/modules/sudoRole.inc:115 +#: ../lib/modules/sudoRole.inc:120 ../lib/modules/sudoRole.inc:125 +msgid "Multiple values are separated by comma." +msgstr "Varios valores separados por comas." + +#: ../lib/modules/kolabGroup.inc:92 ../lib/modules/kolabGroup.inc:101 +#: ../lib/modules/kolabGroup.inc:110 ../lib/modules/nisMailAliasUser.inc:81 +#: ../lib/modules/nisMailAliasUser.inc:89 ../lib/modules/puppetClient.inc:85 +#: ../lib/modules/puppetClient.inc:97 ../lib/modules/puppetClient.inc:105 +#: ../lib/modules/device.inc:74 ../lib/modules/bindDLZ.inc:91 +#: ../lib/modules/bindDLZ.inc:100 ../lib/modules/bindDLZ.inc:105 +#: ../lib/modules/bindDLZ.inc:110 ../lib/modules/bindDLZ.inc:115 +#: ../lib/modules/bindDLZ.inc:120 ../lib/modules/bindDLZ.inc:125 +#: ../lib/modules/bindDLZ.inc:137 ../lib/modules/bindDLZ.inc:145 +#: ../lib/modules/bindDLZ.inc:153 ../lib/modules/bindDLZ.inc:161 +#: ../lib/modules/bindDLZ.inc:169 ../lib/modules/bindDLZ.inc:177 +#: ../lib/modules/bindDLZ.inc:185 ../lib/modules/bindDLZ.inc:193 +#: ../lib/modules/bindDLZ.inc:201 ../lib/modules/windowsUser.inc:149 +#: ../lib/modules/windowsUser.inc:185 ../lib/modules/windowsUser.inc:221 +#: ../lib/modules/windowsUser.inc:232 ../lib/modules/kolabUser.inc:158 +#: ../lib/modules/kolabUser.inc:167 ../lib/modules/inetOrgPerson.inc:641 +#: ../lib/modules/inetOrgPerson.inc:661 ../lib/modules/inetOrgPerson.inc:669 +#: ../lib/modules/inetOrgPerson.inc:677 ../lib/modules/inetOrgPerson.inc:685 +#: ../lib/modules/inetOrgPerson.inc:701 ../lib/modules/inetOrgPerson.inc:709 +#: ../lib/modules/inetOrgPerson.inc:717 ../lib/modules/inetOrgPerson.inc:725 +#: ../lib/modules/inetOrgPerson.inc:737 ../lib/modules/inetOrgPerson.inc:757 +#: ../lib/modules/inetOrgPerson.inc:769 ../lib/modules/inetOrgPerson.inc:777 +#: ../lib/modules/inetOrgPerson.inc:785 ../lib/modules/inetOrgPerson.inc:797 +#: ../lib/modules/inetOrgPerson.inc:805 ../lib/modules/inetOrgPerson.inc:821 +#: ../lib/modules/inetOrgPerson.inc:829 ../lib/modules/inetOrgPerson.inc:837 +#: ../lib/modules/systemQuotas.inc:70 ../lib/modules/freeRadius.inc:101 +#: ../lib/modules/kolabSharedFolder.inc:126 +#: ../lib/modules/kolabSharedFolder.inc:135 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/qmailGroup.inc:136 ../lib/modules/qmailGroup.inc:149 +#: ../lib/modules/qmailGroup.inc:161 ../lib/modules/qmailGroup.inc:169 +#: ../lib/modules/qmailGroup.inc:177 ../lib/modules/qmailGroup.inc:185 +#: ../lib/modules/qmailGroup.inc:193 ../lib/modules/qmailGroup.inc:209 +#: ../lib/modules/qmailGroup.inc:217 ../lib/modules/qmailGroup.inc:225 +#: ../lib/modules/groupOfNames.inc:98 +msgid "Multiple values are separated by semicolon." +msgstr "Múltiples valores separados por punto y comas." + +#: ../lib/modules/asteriskAccount.inc:207 +#: ../lib/modules/asteriskAccount.inc:290 +#: ../lib/modules/asteriskAccount.inc:486 +#: ../lib/modules/asteriskAccount.inc:717 +#: ../lib/modules/asteriskAccount.inc:1006 +#: ../lib/modules/asteriskAccount.inc:1281 +msgid "Music on hold" +msgstr "Música en espera" + +#: ../lib/modules/asteriskAccount.inc:208 +msgid "Music to play on hold." +msgstr "Música en espera." + +#: ../lib/modules/ipHost.inc:93 ../lib/modules/windowsHost.inc:108 +#: ../lib/modules/device.inc:111 ../lib/modules/windowsUser.inc:334 +#: ../lib/modules/inetOrgPerson.inc:395 ../lib/modules/inetOrgPerson.inc:403 +#: ../lib/modules/inetOrgPerson.inc:509 +msgid "MyCity" +msgstr "Mi ciudad" + +#: ../lib/modules/windowsUser.inc:316 ../lib/modules/inetOrgPerson.inc:379 +msgid "Mystreetname 42" +msgstr "Mi calle 42" + +#: ../lib/modules/asteriskAccount.inc:163 +#: ../lib/modules/asteriskAccount.inc:279 +#: ../lib/modules/asteriskAccount.inc:406 +#: ../lib/modules/asteriskAccount.inc:669 +#: ../lib/modules/asteriskAccount.inc:995 +#: ../lib/modules/asteriskAccount.inc:1259 +msgid "NAT" +msgstr "NAT" + +#: ../lib/modules/asteriskAccount.inc:164 +msgid "NAT setting for this account." +msgstr "Configuración NAT para esta cuenta." + +#: ../lib/modules/windowsUser.inc:772 ../lib/modules/windowsGroup.inc:370 +msgid "NIS" +msgstr "NIS" + +#: ../lib/modules/windowsUser.inc:256 ../lib/modules/windowsUser.inc:466 +#: ../lib/modules/windowsUser.inc:481 ../lib/modules/windowsUser.inc:535 +#: ../lib/modules/windowsUser.inc:567 ../lib/modules/windowsUser.inc:777 +#: ../lib/modules/windowsUser.inc:1606 ../lib/modules/windowsGroup.inc:154 +#: ../lib/modules/windowsGroup.inc:169 ../lib/modules/windowsGroup.inc:243 +#: ../lib/modules/windowsGroup.inc:251 ../lib/modules/windowsGroup.inc:274 +#: ../lib/modules/windowsGroup.inc:375 ../lib/modules/windowsGroup.inc:750 +msgid "NIS domain" +msgstr "Dominio NIS" + +#: ../lib/modules/windowsUser.inc:257 ../lib/modules/windowsGroup.inc:155 +msgid "NIS domain name." +msgstr "Nombre de dominio NIS." + +#: ../lib/modules/windowsUser.inc:252 ../lib/modules/windowsUser.inc:458 +#: ../lib/modules/windowsUser.inc:532 ../lib/modules/windowsUser.inc:566 +#: ../lib/modules/windowsUser.inc:620 ../lib/modules/windowsUser.inc:774 +#: ../lib/modules/windowsUser.inc:1605 ../lib/modules/windowsGroup.inc:150 +#: ../lib/modules/windowsGroup.inc:168 ../lib/modules/windowsGroup.inc:235 +#: ../lib/modules/windowsGroup.inc:271 ../lib/modules/windowsGroup.inc:289 +#: ../lib/modules/windowsGroup.inc:372 ../lib/modules/windowsGroup.inc:749 +msgid "NIS name" +msgstr "Nombre NIS" + +#: ../lib/modules/windowsUser.inc:620 ../lib/modules/windowsUser.inc:621 +#: ../lib/modules/windowsGroup.inc:289 ../lib/modules/windowsGroup.inc:290 +msgid "" +"NIS name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"El nombre NIS contiene caracteres inválidos. Los caracteres válidos son: a-" +"z, A-Z, 0-9 y .-_ !" + +#: ../lib/modules/nisnetgroup.inc:67 +msgid "NIS net group" +msgstr "NIS grupo de red" + +#: ../lib/types/netgroup.inc:62 +msgid "NIS netgroup entries" +msgstr "NIS entradas de grupo de red" + +#: ../lib/types/netgroup.inc:53 +msgid "NIS netgroups" +msgstr "NIS grupos de red" + +#: ../lib/modules/nisObject.inc:47 +msgid "NIS object" +msgstr "Objeto NIS" + +#: ../lib/types/nisObjectType.inc:155 +#, php-format +msgid "NIS object count: %s" +msgstr "Conteo de objetos NIS: %s" + +#: ../lib/types/nisObjectType.inc:48 +msgid "NIS object entries" +msgstr "Entradas objetos NIS" + +#: ../lib/types/nisObjectType.inc:39 +msgid "NIS objects" +msgstr "Objetos NIS" + +#: ../lib/modules/bindDLZ.inc:113 ../lib/modules/bindDLZ.inc:357 +#: ../lib/modules/bindDLZ.inc:363 ../lib/modules/bindDLZ.inc:482 +msgid "NS record" +msgstr "Registro NS" + +#: ../templates/serverInfo.php:147 ../templates/masscreate.php:294 +#: ../templates/masscreate.php:368 ../templates/schema/schema.php:268 +#: ../lib/types/automountType.inc:86 ../lib/types/automountType.inc:249 +#: ../lib/types/oracleContextType.inc:77 ../lib/types/ppolicyType.inc:77 +#: ../lib/types/bind.inc:190 ../lib/modules/device.inc:61 +#: ../lib/modules/device.inc:89 ../lib/modules/device.inc:120 +#: ../lib/modules/device.inc:170 ../lib/modules/device.inc:418 +#: ../lib/modules/nisObject.inc:61 ../lib/modules/nisObject.inc:81 +#: ../lib/modules/nisObject.inc:111 ../lib/modules/nisObject.inc:137 +#: ../lib/modules/nisObject.inc:209 ../lib/modules/ppolicy.inc:80 +#: ../lib/modules/ppolicy.inc:142 ../lib/modules/ppolicy.inc:165 +#: ../lib/modules/ppolicy.inc:190 ../lib/modules/ppolicy.inc:471 +#: ../lib/modules/automount.inc:64 ../lib/modules/automount.inc:80 +#: ../lib/modules/automount.inc:103 ../lib/modules/automount.inc:128 +#: ../lib/modules/automount.inc:181 ../lib/modules/kolabSharedFolder.inc:112 +#: ../lib/modules/kolabSharedFolder.inc:174 +#: ../lib/modules/kolabSharedFolder.inc:233 +#: ../lib/modules/kolabSharedFolder.inc:261 +#: ../lib/modules/kolabSharedFolder.inc:279 +#: ../lib/modules/kolabSharedFolder.inc:557 +#: ../lib/modules/asteriskExtension.inc:822 +#: ../lib/modules/oracleService.inc:61 ../lib/modules/oracleService.inc:77 +#: ../lib/modules/oracleService.inc:98 ../lib/modules/oracleService.inc:121 +#: ../lib/modules/oracleService.inc:170 ../lib/modules/customFields.inc:84 +#: ../lib/modules/customFields.inc:1041 ../lib/modules/customFields.inc:1688 +#: ../lib/modules/organizationalRole.inc:186 +#: ../lib/modules/groupOfNames.inc:232 +msgid "Name" +msgstr "Nombre" + +#: ../lib/modules/nisMailAliasUser.inc:97 +msgid "Name of new alias entry." +msgstr "Nombre de nueva entrada de alias." + +#: ../lib/modules/zarafaAddressList.inc:64 +msgid "Name of the address list which should be created." +msgstr "Nombre de los listados de direcciones que deberían crearse." + +#: ../lib/modules/bindDLZ.inc:148 ../lib/modules/bindDLZ.inc:152 +#: ../lib/modules/bindDLZ.inc:357 ../lib/modules/bindDLZ.inc:499 +#: ../lib/modules/bindDLZ.inc:1162 +msgid "Name server" +msgstr "Servidor de nombre" + +#: ../lib/modules/bindDLZ.inc:424 ../lib/modules/bindDLZ.inc:1562 +msgid "Name servers" +msgstr "Servidores de nombre" + +#: ../lib/modules/bindDLZ.inc:1160 +msgid "Name servers (\"NS\" records)" +msgstr "Servidors de nombre (registros \"NS\")" + +#: ../help/help.inc:189 +msgid "" +"Name under which the profile will be saved. If a profile with the same name " +"exists, it will be overwritten." +msgstr "" +"Nombre del perfil que se guardará. Si ya existe el perfil, se sobreescribirá." + +#: ../lib/modules/namedObject.inc:45 +msgid "Named object" +msgstr "Objeto nombrado" + +#: ../lib/modules/dhcp_settings.inc:193 ../lib/modules/dhcp_settings.inc:216 +#: ../lib/modules/dhcp_settings.inc:610 ../lib/modules/dhcp_settings.inc:686 +#: ../lib/modules/freeRadius.inc:88 ../lib/modules/freeRadius.inc:124 +#: ../lib/modules/freeRadius.inc:138 ../lib/modules/freeRadius.inc:201 +#: ../lib/modules/freeRadius.inc:228 ../lib/modules/freeRadius.inc:285 +#: ../lib/modules/freeRadius.inc:538 +msgid "Net mask" +msgstr "Máscara de red" + +#: ../lib/modules/dhcp_settings.inc:169 ../lib/modules/dhcp_settings.inc:213 +#: ../lib/modules/dhcp_settings.inc:228 ../lib/modules/dhcp_settings.inc:280 +#: ../lib/modules/dhcp_settings.inc:581 ../lib/modules/dhcp_settings.inc:679 +msgid "Netbios name servers" +msgstr "NetBios, nombre del servidor" + +#: ../lib/modules/dhcp_settings.inc:173 ../lib/modules/dhcp_settings.inc:214 +#: ../lib/modules/dhcp_settings.inc:230 ../lib/modules/dhcp_settings.inc:286 +#: ../lib/modules/dhcp_settings.inc:591 ../lib/modules/dhcp_settings.inc:680 +msgid "Netbios node type" +msgstr "Tipo de nodo de Netbios." + +#: ../lib/types/dhcp.inc:118 ../lib/types/dhcp.inc:172 +msgid "New DHCP" +msgstr "Nuevo DHCP" + +#: ../lib/types/bind.inc:100 ../lib/types/bind.inc:161 +msgid "New DNS entry" +msgstr "Nueva entrada DNS" + +#: ../lib/types/nisObjectType.inc:102 ../lib/types/nisObjectType.inc:157 +msgid "New NIS object" +msgstr "Nuevo objeto NIS" + +#: ../templates/ou_edit.php:77 +msgid "New OU created successfully." +msgstr "Nueva U.O creada con éxito." + +#: ../lib/modules/windowsUser.inc:340 ../lib/modules/inetOrgPerson.inc:517 +msgid "New York" +msgstr "New York" + +#: ../lib/types/zarafaAddressListType.inc:117 +#: ../lib/types/zarafaAddressListType.inc:146 +msgid "New address list" +msgstr "nuevo listado de direcciones" + +#: ../lib/types/mailAlias.inc:114 ../lib/types/mailAlias.inc:143 +#: ../lib/types/alias.inc:114 ../lib/types/alias.inc:143 +msgid "New alias" +msgstr "Nuevo alias" + +#: ../lib/types/automountType.inc:110 ../lib/types/automountType.inc:217 +msgid "New automount entry" +msgstr "Entrada automount" + +#: ../lib/types/automountType.inc:233 ../lib/types/automountType.inc:234 +msgid "New automount map" +msgstr "Nuevo mapeo automount" + +#: ../lib/types/pykotaBillingCodeType.inc:116 +#: ../lib/types/pykotaBillingCodeType.inc:165 +msgid "New billing code" +msgstr "Nuevo código de facturación" + +#: ../lib/types/oracleContextType.inc:101 +#: ../lib/types/oracleContextType.inc:188 +msgid "New database entry" +msgstr "Nueva entrada de base de datos" + +#: ../templates/config/profmanage.php:146 +msgid "New default profile set successfully." +msgstr "Nuevo perfil por defecto cambiado con éxito." + +#: ../lib/types/smbDomain.inc:114 ../lib/types/smbDomain.inc:169 +msgid "New domain" +msgstr "Nuevo dominio" + +#: ../lib/types/asteriskExt.inc:117 ../lib/types/asteriskExt.inc:145 +msgid "New extension" +msgstr "Nueva extensión" + +#: ../templates/pdfedit/pdfpage.php:620 +msgid "New field" +msgstr "Nuevo campo." + +#: ../lib/types/gon.inc:140 ../lib/types/gon.inc:204 +#: ../lib/types/zarafaDynamicGroupType.inc:119 +#: ../lib/types/zarafaDynamicGroupType.inc:167 ../lib/types/group.inc:163 +#: ../lib/types/group.inc:242 ../lib/types/netgroup.inc:116 +#: ../lib/types/netgroup.inc:171 +msgid "New group" +msgstr "Nuevo grupo" + +#: ../lib/types/host.inc:128 ../lib/types/host.inc:195 +msgid "New host" +msgstr "Nuevo equipo" + +#: ../lib/modules/inetLocalMailRecipient.inc:167 +msgid "New local address" +msgstr "Nueva dirección local" + +#: ../templates/config/mainmanage.php:456 +msgid "New master password" +msgstr "Nueva contraseña maestra" + +#: ../templates/config/mainmanage.php:79 +msgid "New master password set successfully." +msgstr "Se ha cambiado la nueva contraseña maestra con éxito." + +#: ../lib/lists.inc:114 +msgid "New object" +msgstr "Nuevo objeto" + +#: ../templates/ou_edit.php:185 ../help/help.inc:263 +msgid "New organisational unit" +msgstr "Nueva unidad organizativa" + +#: ../templates/config/confmain.php:451 +#: ../lib/modules/sambaSamAccount.inc:2265 +#: ../lib/modules/posixAccount.inc:2530 ../lib/modules/windowsUser.inc:1711 +#: ../lib/modules/passwordSelfReset.inc:1059 +msgid "New password" +msgstr "Nueva contraseña" + +#: ../templates/config/profmanage.php:133 +msgid "New password set successfully." +msgstr "Nueva contraseña cambiada correctamente." + +#: ../lib/types/ppolicyType.inc:122 ../lib/types/ppolicyType.inc:151 +msgid "New policy" +msgstr "Nueva política" + +#: ../lib/types/pykotaPrinterType.inc:117 +#: ../lib/types/pykotaPrinterType.inc:166 +msgid "New printer" +msgstr "Nueva impresora" + +#: ../templates/config/profmanage.php:261 +#: ../templates/selfService/profManage.php:222 +msgid "New profile name" +msgstr "Nuevo nombre de perfil" + +#: ../lib/modules/range.inc:101 ../lib/modules/range.inc:115 +#: ../lib/modules/range.inc:454 +msgid "New range" +msgstr "Nuevo rango" + +#: ../lib/modules/nisMailAlias.inc:208 +msgid "New recipient" +msgstr "Nuevo destinatario" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:81 +msgid "New required attributes" +msgstr "Nuevos atributos requeridos" + +#: ../lib/types/gon.inc:211 ../lib/types/group.inc:249 +msgid "New role" +msgstr "Nuevo rol" + +#: ../templates/pdfedit/pdfpage.php:588 +msgid "New section" +msgstr "Nueva seleccion" + +#: ../lib/types/kolabSharedFolderType.inc:114 +#: ../lib/types/kolabSharedFolderType.inc:143 +msgid "New shared folder" +msgstr "Nueva carpeta compartida" + +#: ../lib/types/sudo.inc:106 ../lib/types/sudo.inc:161 +msgid "New sudo role" +msgstr "Nuevo rol sudo" + +#: ../lib/types/user.inc:172 ../lib/types/user.inc:531 +msgid "New user" +msgstr "Nuevo usuario" + +#: ../lib/modules/inetOrgPerson.inc:1826 +msgid "New user certificate" +msgstr "Nuevo certificado de usuario" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "New value" +msgstr "Nuevo valor" + +#: ../lib/types/bind.inc:174 ../lib/types/bind.inc:175 +msgid "New zone" +msgstr "Nueva zona" + +#: ../lib/modules/sambaDomain.inc:85 ../lib/modules/sambaDomain.inc:165 +#: ../lib/modules/sambaDomain.inc:186 ../lib/modules/sambaDomain.inc:361 +#: ../lib/modules/sambaDomain.inc:601 +msgid "Next RID" +msgstr "Siguiente RID" + +#: ../lib/modules/sambaDomain.inc:212 ../lib/modules/sambaDomain.inc:213 +msgid "Next RID is not a number!" +msgstr "El siguiente RID no es un número!" + +#: ../lib/modules/sambaDomain.inc:86 +msgid "Next RID to use when creating accounts (only used by Winbind)." +msgstr "" +"Siguiente RID a usar a la hora de crear cuentas (solo usado por Winbind)" + +#: ../lib/modules/sambaDomain.inc:94 +msgid "Next RID to use when creating group accounts (only used by Winbind)." +msgstr "Siguiente RID a usar al añadir usuarios (solo usado por Winbind)" + +#: ../lib/modules/sambaDomain.inc:90 +msgid "Next RID to use when creating user accounts (only used by Winbind)." +msgstr "Siguiente RID a usar al añadir usuarios (solo usado por Winbind)" + +#: ../lib/modules/sambaDomain.inc:93 ../lib/modules/sambaDomain.inc:177 +#: ../lib/modules/sambaDomain.inc:188 ../lib/modules/sambaDomain.inc:377 +#: ../lib/modules/sambaDomain.inc:603 +msgid "Next group RID" +msgstr "Siguiente grupo RID" + +#: ../lib/modules/sambaDomain.inc:216 ../lib/modules/sambaDomain.inc:217 +msgid "Next group RID is not a number!" +msgstr "El siguiente RID de grupo no es un numero!" + +#: ../lib/modules/sambaDomain.inc:89 ../lib/modules/sambaDomain.inc:171 +#: ../lib/modules/sambaDomain.inc:187 ../lib/modules/sambaDomain.inc:369 +#: ../lib/modules/sambaDomain.inc:602 +msgid "Next user RID" +msgstr "Siguiente usuario RID" + +#: ../lib/modules/sambaDomain.inc:214 ../lib/modules/sambaDomain.inc:215 +msgid "Next user RID is not a number!" +msgstr "El siguiente RID de usuario no es un numero!" + +#: ../lib/modules/eduPerson.inc:101 ../lib/modules/eduPerson.inc:188 +#: ../lib/modules/eduPerson.inc:226 ../lib/modules/eduPerson.inc:342 +#: ../lib/modules/eduPerson.inc:584 +msgid "Nick names" +msgstr "Alias" + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/pykotaPrinter.inc:52 +#: ../lib/modules/pykotaPrinter.inc:168 ../lib/modules/pykotaPrinter.inc:169 +#: ../lib/modules/pykotaPrinter.inc:170 ../lib/modules/qmailGroup.inc:321 +#: ../lib/modules/qmailGroup.inc:322 ../lib/modules/qmailGroup.inc:323 +#: ../lib/modules/qmailGroup.inc:363 ../lib/modules/qmailGroup.inc:364 +#: ../lib/modules/qmailGroup.inc:365 ../lib/modules/qmailGroup.inc:1030 +#: ../lib/modules/qmailGroup.inc:1071 ../lib/modules/qmailGroup.inc:1077 +#: ../lib/modules/imapAccess.inc:121 +msgid "No" +msgstr "No" + +#: ../lib/types/asteriskExt.inc:144 +msgid "No Asterisk extensions found." +msgstr "No se encontraron extensiones de Asterisk." + +#: ../lib/types/dhcp.inc:171 +msgid "No DHCPs found!" +msgstr "No se econtraron DHCP" + +#: ../lib/types/bind.inc:160 +msgid "No DNS entries found!" +msgstr "No se encontraron entradas DNS" + +#: ../lib/types/nisObjectType.inc:156 +msgid "No NIS objects found!" +msgstr "No se encontraron objetos NIS!" + +#: ../templates/3rdParty/pla/lib/Template.php:558 +#: ../templates/3rdParty/pla/lib/Template.php:559 +msgid "No RDN attribute was selected." +msgstr "No fue seleccionado un atributo RDN." + +#: ../lib/modules/sambaSamAccount.inc:1103 +#: ../lib/modules/sambaGroupMapping.inc:341 +msgid "No Samba 3 domains found in LDAP! Please create one first." +msgstr "No se encontraron dominio Samba 3 en LDAP! Por favor crea un primero" + +#: ../lib/modules/posixAccount.inc:581 ../lib/modules/posixAccount.inc:1367 +msgid "No Unix groups found in LDAP! Please create one first." +msgstr "No se encontraron grupos de Unix en LDAP! Por favor, cree uno." + +#: ../lib/modules/qmailUser.inc:42 +msgid "No access" +msgstr "Sin acceso" + +#: ../lib/types/zarafaAddressListType.inc:145 +msgid "No address list found!" +msgstr "¡No se econtraron listados de direcciones!" + +#: ../lib/types/mailAlias.inc:142 ../lib/types/alias.inc:142 +msgid "No aliases found!" +msgstr "No se econtraron alias" + +#: ../lib/types/automountType.inc:216 +msgid "No automount entries found!" +msgstr "No se encontraron entradas automount!" + +#: ../lib/types/pykotaBillingCodeType.inc:164 +msgid "No billing codes found!" +msgstr "No se encontraron códigos de facturación" + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:36 +msgid "No binary data available" +msgstr "No hay datos binarios disponibles" + +#: ../templates/initsuff.php:164 +msgid "No changes were made." +msgstr "No se hicieron cambios." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:83 +#, php-format +msgid "No current value for attribute %s." +msgstr "No hay valor actual para el atributo %s." + +#: ../lib/types/oracleContextType.inc:187 +msgid "No database entries found!" +msgstr "No se encontraron entradas de base de datos" + +#: ../templates/login.php:104 +msgid "" +"No default profile set. Please set it in the server profile configuration." +msgstr "" +"No hay seteado un perfil predeterminado. Por favor seleccione uno en la " +"configuración del perfil del servidor." + +#: ../templates/schema/schema.php:144 +msgid "No description" +msgstr "Sin descripcion" + +#: ../lib/types/smbDomain.inc:168 +msgid "No domains found!" +msgstr "No se encontraron dominios de samba!" + +#: ../lib/modules/passwordSelfReset.inc:1546 +msgid "No email address found." +msgstr "No se encontraron direcciones de correo electrónico." + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:20 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:21 +msgid "No entry was selected to delete" +msgstr "No fue seleccionada una entrada para borrar" + +#: ../lib/modules/ldapPublicKey.inc:483 ../lib/modules/inetOrgPerson.inc:3221 +#: ../lib/modules/customFields.inc:3642 +msgid "No file received." +msgstr "No se recibio archivo." + +#: ../templates/config/mainmanage.php:161 ../lib/modules/ldapPublicKey.inc:109 +#: ../lib/modules/inetOrgPerson.inc:99 ../lib/modules/customFields.inc:3577 +msgid "No file selected." +msgstr "No hay fichero seleccionado" + +#: ../lib/modules/qmailUser.inc:48 +msgid "No forwarding" +msgstr "No reenvio" + +#: ../lib/modules/posixGroup.inc:601 ../lib/modules/posixAccount.inc:104 +msgid "No free ID-Number!" +msgstr "No quedan ID's libres!" + +#: ../lib/types/gon.inc:203 ../lib/types/zarafaDynamicGroupType.inc:166 +#: ../lib/types/group.inc:241 ../lib/types/netgroup.inc:170 +msgid "No groups found!" +msgstr "No se encontraron grupos!" + +#: ../lib/types/host.inc:194 +msgid "No hosts found!" +msgstr "¡No se econtraron equipos!" + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:59 +msgid "No image available" +msgstr "No hay imagen disponible" + +#: ../templates/3rdParty/pla/lib/import_functions.php:94 +msgid "No import input" +msgstr "No hay datos para importar" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1354 +msgid "No internal attributes" +msgstr "Sin atributos internos" + +#: ../templates/tests/lamdaemonTest.php:195 +msgid "No lamdaemon path set, please update your LAM configuration settings." +msgstr "" +"Ningún cambio en la ruta del conjunto demonio LAM, por favor actualiza tu " +"configuración." + +#: ../templates/tests/lamdaemonTest.php:97 +#: ../templates/tests/lamdaemonTest.php:190 +msgid "No lamdaemon server set, please update your LAM configuration settings." +msgstr "" +"No hay ningún conjunto del demonio LAM, por favor actualiza la configuración " +"LAM." + +#: ../lib/modules/qmailUser.inc:49 +msgid "No local delivery" +msgstr "Sin delivery local" + +#: ../templates/config/mainmanage.php:412 +msgid "No logging" +msgstr "No iniciar sesion" + +#: ../templates/pdfedit/pdfpage.php:429 +msgid "No logo" +msgstr "No hay logo" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:157 +msgid "No new attributes available for this entry" +msgstr "No hay atributos nuevos disponibles para esta entrada" + +#: ../templates/config/conftypes.php:310 ../help/help.inc:176 +msgid "No new entries" +msgstr "Sin nuevas entradas" + +#: ../templates/multiEdit.php:315 ../lib/lists.inc:113 +msgid "No objects found!" +msgstr "No se econtraron objetos" + +#: ../templates/config/confmodules.php:406 +msgid "No or more than one base module selected!" +msgstr "Uno o más de un módulo base seleccionado!" + +#: ../templates/config/confsave.php:53 ../templates/config/confmain.php:55 +#: ../lib/modules/passwordSelfReset.inc:1169 +msgid "No password was entered!" +msgstr "No se especificó ninguna contraseña!" + +#: ../lib/types/ppolicyType.inc:150 +msgid "No policies found!" +msgstr "No se econtraron políticas!" + +#: ../lib/types/pykotaPrinterType.inc:165 +msgid "No printers found!" +msgstr "No se encontraron impresoras" + +#: ../templates/tests/schemaTest.php:70 +msgid "No problems found." +msgstr "No se encontraron problemas" + +#: ../lib/modules/qmailUser.inc:50 +msgid "No program delivery" +msgstr "Sin programa de delivery" + +#: ../lib/modules/pykotaGroup.inc:63 ../lib/modules/pykotaUser.inc:63 +msgid "No quota" +msgstr "Sin cuota" + +#: ../lib/types/gon.inc:210 ../lib/types/group.inc:248 +msgid "No roles found!" +msgstr "No se encontraron roles" + +#: ../lib/modules/customScripts.inc:215 +msgid "No scripts to run." +msgstr "No hay scripts en ejecucion" + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "No section text specified" +msgstr "No se especificó ningun texto de sección." + +#: ../lib/modules/passwordSelfReset.inc:1199 +msgid "No security answer found." +msgstr "No se encontró una respuesta de seguridad." + +#: ../templates/config/conflogin.php:137 +msgid "No server profiles found. Please create one." +msgstr "No se encontraron perfiles. Por favor, cree uno." + +#: ../lib/types/kolabSharedFolderType.inc:142 +msgid "No shared folders found!" +msgstr "No se encontraron carpetas compartidas" + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "No static text specified" +msgstr "No se especificó ningun texto estático" + +#: ../lib/modules/dhcp_settings.inc:318 +msgid "No subnet entered." +msgstr "No existe entrada de subred" + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:45 +msgid "No such entry" +msgstr "No existe tal entrada!" + +#: ../templates/3rdParty/pla/htdocs/compare.php:24 +#: ../templates/3rdParty/pla/htdocs/compare.php:27 +#: ../templates/3rdParty/pla/htdocs/delete.php:19 +msgid "No such entry." +msgstr "No existe tal entrada!" + +#: ../templates/schema/schema.php:438 +#, php-format +msgid "No such schema item: \"%s\"" +msgstr "No existe tal esquema: \"%s\"" + +#: ../lib/types/sudo.inc:160 +msgid "No sudo roles found!" +msgstr "No se econtraron roles sudo!" + +#: ../lib/types/user.inc:530 +msgid "No users found!" +msgstr "No se econtraron usuarios!" + +#: ../templates/config/mainmanage.php:444 +msgid "Non-standard (\\n)" +msgstr "No standard (\\n)" + +#: ../lib/modules/qmailUser.inc:58 +msgid "None" +msgstr "Ninguno" + +#: ../lib/modules/sudoRole.inc:133 ../lib/modules/sudoRole.inc:195 +#: ../lib/modules/sudoRole.inc:222 ../lib/modules/sudoRole.inc:281 +#: ../lib/modules/sudoRole.inc:481 ../lib/modules/sudoRole.inc:822 +msgid "Not after" +msgstr "No después" + +#: ../lib/modules/sudoRole.inc:128 ../lib/modules/sudoRole.inc:201 +#: ../lib/modules/sudoRole.inc:223 ../lib/modules/sudoRole.inc:283 +#: ../lib/modules/sudoRole.inc:474 ../lib/modules/sudoRole.inc:817 +msgid "Not before" +msgstr "No antes" + +#: ../help/help.inc:68 +msgid "Note" +msgstr "Nota" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:125 +msgid "" +"Note: You may be required to enter new attributes that these object classes " +"require" +msgstr "" +"Nota: puede que se le solicite introducir nuevos atributos que estas clases " +"de objetos requieran" + +#: ../lib/modules/windowsGroup.inc:122 ../lib/modules/windowsGroup.inc:189 +#: ../lib/modules/windowsGroup.inc:259 ../lib/modules/windowsGroup.inc:349 +#: ../lib/modules/windowsGroup.inc:747 +msgid "Notes" +msgstr "Notas" + +#: ../templates/3rdParty/pla/lib/export_functions.php:450 +msgid "Nothing to export" +msgstr "No hay datos para exportar" + +#: ../templates/config/mainmanage.php:408 +msgid "Notice" +msgstr "Nota" + +#: ../templates/delete.php:103 +msgid "Number of child entries" +msgstr "Número de entradas." + +#: ../lib/modules/customFields.inc:129 +msgid "Number of columns in text area." +msgstr "Número de columnas en área de texto." + +#: ../lib/modules/shadowAccount.inc:182 +msgid "" +"Number of days a user can login even his password has expired. -1=always." +msgstr "" +"Nume de dias después de la caducidad de la constraseña en que el usuario " +"todavia puede iniciar sesión. -1= siempre" + +#: ../lib/modules/shadowAccount.inc:186 +msgid "" +"Number of days a user has to wait until he is allowed to change his password " +"again. If set value must be >0." +msgstr "" +"Numero de dias que el usuario deberá esperar para poder cambiar su " +"constraseña otra vez. Si se especifica, debe ser menor de 0." + +#: ../lib/modules/shadowAccount.inc:190 +msgid "" +"Number of days after a user has to change his password again. If set value " +"must be >0." +msgstr "" +"Numero de dias después de que el usuario deberá cambiar su contraseña. Si se " +"especifica, deberá ser menor que 0." + +#: ../lib/modules/mitKerberos.inc:129 +msgid "Number of failed logins." +msgstr "Número de inicio de sesión fallidos." + +#: ../lib/modules/sambaDomain.inc:138 +msgid "Number of minutes after which the bad logon attempts are reset." +msgstr "Número de minutos después de varios accesos fallidos." + +#: ../lib/modules/pykotaBillingCode.inc:90 +msgid "Number of pages printed with this billing code." +msgstr "Número de páginas impresas con este código de facturación." + +#: ../lib/modules/customFields.inc:133 +msgid "Number of rows in text area." +msgstr "Número de filas en área de texto." + +#: ../templates/config/mainmanage.php:395 ../help/help.inc:162 +msgid "Number of rules that must match" +msgstr "El número de reglas debe coincidir" + +#: ../lib/modules/ppolicy.inc:85 ../lib/modules/sambaDomain.inc:126 +msgid "" +"Number of seconds after the user is allowed to change his password again." +msgstr "" +"Numero de dias después de que el usuario deberá cambiar su contraseña. Si se " +"especifica, deberá ser menor que 0." + +#: ../lib/modules/ppolicy.inc:89 ../lib/modules/sambaDomain.inc:130 +msgid "Number of seconds after which the user must change his password." +msgstr "Numero de dias para que el usuario cambie su contraseña." + +#: ../templates/schema/schema.php:147 ../templates/schema/schema.php:344 +msgid "OID" +msgstr "OID" + +#: ../templates/ou_edit.php:83 +msgid "OU already exists!" +msgstr "La OU ya existe!" + +#: ../templates/ou_edit.php:94 +msgid "OU deleted successfully." +msgstr "OU borrada." + +#: ../templates/ou_edit.php:152 ../lib/tools/ouEditor.inc:44 +msgid "OU editor" +msgstr "Editor de OU" + +#: ../templates/ou_edit.php:87 +msgid "OU is invalid!" +msgstr "OU inválida!" + +#: ../templates/ou_edit.php:131 +msgid "OU is not empty or invalid!" +msgstr "La OU no está vacia o es inválida!" + +#: ../help/help.inc:263 ../help/help.inc:265 +msgid "OU-Editor" +msgstr "Editor de OU" + +#: ../templates/schema/schema.php:65 ../templates/schema/schema.php:66 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1324 +#: ../lib/modules/selfRegistration.inc:74 +#: ../lib/modules/selfRegistration.inc:214 ../lib/modules/customFields.inc:80 +#: ../lib/modules/customFields.inc:574 +msgid "Object classes" +msgstr "Clases de objeto" + +#: ../lib/lists.inc:112 +#, php-format +msgid "Object count: %s" +msgstr "Conteo de objetos: %s" + +#: ../templates/schema/schema.php:152 ../templates/schema/schema.php:283 +msgid "Obsolete" +msgstr "Obsoleto" + +#: ../lib/modules/sambaDomain.inc:289 ../lib/modules/sambaDomain.inc:298 +#: ../lib/modules/sambaDomain.inc:307 ../lib/modules/sambaDomain.inc:614 +#: ../lib/modules/sambaDomain.inc:619 ../lib/modules/sambaDomain.inc:624 +msgid "Off" +msgstr "Off" + +#: ../lib/modules/windowsUser.inc:152 ../lib/modules/windowsUser.inc:344 +#: ../lib/modules/windowsUser.inc:508 ../lib/modules/windowsUser.inc:541 +#: ../lib/modules/windowsUser.inc:713 ../lib/modules/windowsUser.inc:1596 +#: ../lib/modules/windowsUser.inc:1725 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:199 ../lib/modules/inetOrgPerson.inc:531 +#: ../lib/modules/inetOrgPerson.inc:566 ../lib/modules/inetOrgPerson.inc:792 +#: ../lib/modules/inetOrgPerson.inc:796 ../lib/modules/inetOrgPerson.inc:1358 +#: ../lib/modules/inetOrgPerson.inc:1361 ../lib/modules/inetOrgPerson.inc:1911 +#: ../lib/modules/inetOrgPerson.inc:2621 ../lib/modules/inetOrgPerson.inc:3525 +#: ../lib/modules/inetOrgPerson.inc:3581 +msgid "Office name" +msgstr "Nombre de la oficina" + +#: ../templates/lists/changePassword.php:340 +#: ../templates/lists/changePassword.php:377 +#: ../templates/lists/changePassword.php:418 +#: ../templates/lists/changePassword.php:449 +#: ../templates/tests/lamdaemonTest.php:92 ../templates/ou_edit.php:193 +#: ../templates/ou_edit.php:207 ../templates/masscreate.php:211 +#: ../templates/config/profmanage.php:254 +#: ../templates/config/profmanage.php:266 +#: ../templates/config/profmanage.php:275 +#: ../templates/config/profmanage.php:293 +#: ../templates/config/profmanage.php:302 +#: ../templates/config/profmanage.php:304 +#: ../templates/config/mainmanage.php:469 +#: ../templates/config/conflogin.php:177 ../templates/config/mainlogin.php:165 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminLogin.php:165 +#: ../templates/selfService/adminMain.php:626 +#: ../templates/selfService/adminMain.php:679 +#: ../templates/pdfedit/pdfmain.php:210 ../templates/pdfedit/pdfmain.php:217 +#: ../templates/pdfedit/pdfmain.php:223 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/profedit/profilemain.php:205 +#: ../templates/profedit/profilemain.php:211 +#: ../lib/types/automountType.inc:234 ../lib/types/user.inc:303 +#: ../lib/types/bind.inc:175 ../lib/modules/selfRegistration.inc:446 +#: ../lib/modules/zarafaContact.inc:433 ../lib/modules/zarafaGroup.inc:493 +#: ../lib/modules/device.inc:300 ../lib/modules/sambaSamAccount.inc:1431 +#: ../lib/modules/sambaSamAccount.inc:1566 ../lib/modules/zarafaUser.inc:917 +#: ../lib/modules/zarafaUser.inc:968 ../lib/modules/sambaGroupMapping.inc:508 +#: ../lib/modules/nisnetgroup.inc:479 ../lib/modules/nisnetgroup.inc:489 +#: ../lib/modules/asteriskExtension.inc:484 ../lib/modules/aliasEntry.inc:146 +#: ../lib/modules/aliasEntry.inc:166 ../lib/modules/qmailGroup.inc:862 +#: ../lib/modules/imapAccess.inc:295 ../lib/modules/organizationalRole.inc:337 +#: ../lib/modules/passwordSelfReset.inc:872 +#: ../lib/modules/passwordSelfReset.inc:1094 +#: ../lib/modules/windowsGroup.inc:603 ../lib/modules/groupOfNames.inc:394 +#: ../lib/modules/groupOfNames.inc:549 ../lib/modules/nisMailAlias.inc:375 +#: ../lib/modules/nisMailAlias.inc:384 ../lib/lists.inc:710 +#: ../lib/lists.inc:792 ../lib/modules.inc:1221 +msgid "Ok" +msgstr "Aceptar" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:98 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +msgid "Old value" +msgstr "Valor antiguo" + +#: ../lib/modules/sambaDomain.inc:289 ../lib/modules/sambaDomain.inc:298 +#: ../lib/modules/sambaDomain.inc:307 ../lib/modules/sambaDomain.inc:615 +#: ../lib/modules/sambaDomain.inc:620 ../lib/modules/sambaDomain.inc:625 +msgid "On" +msgstr "Activado" + +#: ../lib/modules/sambaSamAccount.inc:243 +#: ../lib/modules/sambaSamAccount.inc:384 +#: ../lib/modules/sambaSamAccount.inc:1552 +#: ../lib/modules/sambaSamAccount.inc:1962 +msgid "On broken or timed out connection" +msgstr "Tiempo de conexión agotado." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:139 +#: ../templates/3rdParty/pla/htdocs/export_form.php:32 +msgid "One (one level beneath base)" +msgstr "One (Un nivel por debajo de éste)" + +#: ../lib/modules/range.inc:114 ../lib/modules/fixed_ip.inc:127 +msgid "One or more errors occured. The invalid fields are marked." +msgstr "Han ocurrido uno o mas errores. Los campos no válidos están marcados." + +#: ../templates/3rdParty/pla/htdocs/copy.php:98 +#: ../templates/3rdParty/pla/htdocs/copy.php:155 +#, php-format +msgid "Operation not successful. DN %s has not been created." +msgstr "Operación no exitosa. DN %s no ha sido creado." + +#: ../templates/serverInfo.php:277 ../templates/serverInfo.php:367 +msgid "Operation statistics" +msgstr "Estadísticas operativas" + +#: ../templates/3rdParty/pla/htdocs/copy.php:95 +#: ../templates/3rdParty/pla/htdocs/copy.php:153 +#, php-format +msgid "Operation successful. DN %s has been created." +msgstr "Operación correcta. DN %s han sido creadas." + +#: ../templates/multiEdit.php:117 ../help/help.inc:273 +msgid "Operations" +msgstr "Operaciones" + +#: ../templates/schema/schema.php:384 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1575 +msgid "Optional attributes" +msgstr "Atributos opcionales" + +#: ../lib/modules/fixed_ip.inc:111 +msgid "Optional description for the PC." +msgstr "Descripción opcional para la PC." + +#: ../lib/types/sudo.inc:83 ../lib/modules/mitKerberos.inc:408 +#: ../lib/modules/zarafaDynamicGroup.inc:267 +#: ../lib/modules/zarafaContact.inc:241 ../lib/modules/zarafaGroup.inc:278 +#: ../lib/modules/posixAccount.inc:245 ../lib/modules/zarafaUser.inc:571 +#: ../lib/modules/windowsUser.inc:723 ../lib/modules/kolabUser.inc:379 +#: ../lib/modules/sudoRole.inc:94 ../lib/modules/sudoRole.inc:123 +#: ../lib/modules/sudoRole.inc:189 ../lib/modules/sudoRole.inc:221 +#: ../lib/modules/sudoRole.inc:233 ../lib/modules/sudoRole.inc:451 +#: ../lib/modules/sudoRole.inc:811 ../lib/modules/asteriskExtension.inc:122 +#: ../lib/modules/asteriskVoicemail.inc:115 +#: ../lib/modules/asteriskVoicemail.inc:125 +#: ../lib/modules/asteriskVoicemail.inc:142 +#: ../lib/modules/asteriskVoicemail.inc:190 +#: ../lib/modules/asteriskVoicemail.inc:258 +#: ../lib/modules/asteriskVoicemail.inc:375 ../lib/modules/qmailGroup.inc:611 +#: ../lib/modules/heimdalKerberos.inc:339 +msgid "Options" +msgstr "Opciones." + +#: ../lib/modules/asteriskVoicemail.inc:116 +msgid "Options for Asterisk voicemail account (e.g. sendvoicemail=yes)." +msgstr "Opciones para el buzón de voz de Asterisk (p.ej. sendvoicemail=yes)." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:39 +msgid "Or paste your LDIF here" +msgstr "O pegue su LDIF aquí" + +#: ../lib/modules/oracleService.inc:47 +msgid "Oracle database" +msgstr "Base de datos Oracle" + +#: ../lib/types/oracleContextType.inc:48 +msgid "Oracle database entries" +msgstr "Entradas de base de datos Oracle" + +#: ../lib/types/oracleContextType.inc:39 +msgid "Oracle databases" +msgstr "Bases de datos Oracle" + +#: ../lib/modules/sudoRole.inc:138 ../lib/modules/sudoRole.inc:207 +#: ../lib/modules/sudoRole.inc:224 ../lib/modules/sudoRole.inc:285 +#: ../lib/modules/sudoRole.inc:484 ../lib/modules/sudoRole.inc:812 +msgid "Order" +msgstr "Ordenar" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:166 +msgid "Order by" +msgstr "Ordenar por" + +#: ../templates/schema/schema.php:171 +msgid "Ordering" +msgstr "Ordenado" + +#: ../lib/modules/eduPerson.inc:126 ../lib/modules/eduPerson.inc:200 +#: ../lib/modules/eduPerson.inc:227 ../lib/modules/eduPerson.inc:245 +#: ../lib/modules/eduPerson.inc:346 ../lib/modules/eduPerson.inc:587 +#: ../lib/modules/inetOrgPerson.inc:223 ../lib/modules/inetOrgPerson.inc:499 +#: ../lib/modules/inetOrgPerson.inc:608 ../lib/modules/inetOrgPerson.inc:824 +#: ../lib/modules/inetOrgPerson.inc:828 ../lib/modules/inetOrgPerson.inc:1499 +#: ../lib/modules/inetOrgPerson.inc:1502 ../lib/modules/inetOrgPerson.inc:1916 +#: ../lib/modules/inetOrgPerson.inc:3553 ../lib/modules/inetOrgPerson.inc:3588 +msgid "Organisation" +msgstr "Organización" + +#: ../lib/modules/inetOrgPerson.inc:163 ../lib/modules/inetOrgPerson.inc:220 +#: ../lib/modules/inetOrgPerson.inc:491 ../lib/modules/inetOrgPerson.inc:611 +#: ../lib/modules/inetOrgPerson.inc:816 ../lib/modules/inetOrgPerson.inc:820 +#: ../lib/modules/inetOrgPerson.inc:1490 ../lib/modules/inetOrgPerson.inc:1493 +#: ../lib/modules/inetOrgPerson.inc:1915 ../lib/modules/inetOrgPerson.inc:2753 +#: ../lib/modules/inetOrgPerson.inc:3551 ../lib/modules/inetOrgPerson.inc:3588 +msgid "Organisational unit" +msgstr "Unidades organizativas" + +#: ../lib/modules/eduPerson.inc:134 ../lib/modules/eduPerson.inc:138 +#: ../lib/modules/eduPerson.inc:212 ../lib/modules/eduPerson.inc:228 +#: ../lib/modules/eduPerson.inc:350 ../lib/modules/eduPerson.inc:589 +msgid "Organisational units" +msgstr "Unidades organizativas" + +#: ../lib/modules/eduPerson.inc:249 +msgid "Organisational units contains an invalid entry." +msgstr "Las unidades organizativas contienen una entrada inválida." + +#: ../templates/multiEdit.php:98 ../templates/config/confmain.php:328 +msgid "Other" +msgstr "Otro" + +#: ../lib/modules/windowsUser.inc:144 ../lib/modules/windowsUser.inc:148 +#: ../lib/modules/windowsUser.inc:368 ../lib/modules/windowsUser.inc:507 +#: ../lib/modules/windowsUser.inc:603 ../lib/modules/windowsUser.inc:719 +#: ../lib/modules/windowsUser.inc:1595 +msgid "Other telephone numbers" +msgstr "Otros números de teléfono" + +#: ../lib/modules/windowsUser.inc:180 ../lib/modules/windowsUser.inc:184 +#: ../lib/modules/windowsUser.inc:380 ../lib/modules/windowsUser.inc:515 +#: ../lib/modules/windowsUser.inc:721 ../lib/modules/windowsUser.inc:1603 +msgid "Other web sites" +msgstr "Otros Sitios Web" + +#: ../lib/modules/customScripts.inc:84 ../lib/modules/customScripts.inc:100 +#: ../lib/modules/customScripts.inc:110 +msgid "Output may contain HTML" +msgstr "La salida puede contener HTML" + +#: ../lib/modules/customScripts.inc:264 ../lib/modules/customScripts.inc:554 +#, php-format +msgid "Output of command \"%s\" with return code %s" +msgstr "Salida del comando \"%s\" con código de retorno %s" + +#: ../lib/modules/pykotaUser.inc:144 ../lib/modules/pykotaUser.inc:171 +#: ../lib/modules/pykotaUser.inc:253 ../lib/modules/pykotaUser.inc:263 +#: ../lib/modules/pykotaUser.inc:324 ../lib/modules/pykotaUser.inc:402 +#: ../lib/modules/pykotaUser.inc:899 +msgid "Overcharge factor" +msgstr "Factor de sobrecarga" + +#: ../lib/modules/pykotaUser.inc:145 +msgid "" +"Overcharge factor that is applied when computing the cost of a print job. " +"The number of pages is not changed." +msgstr "" +"Factor de sobrecarga que es aplicado cuando su computa el costo de un " +"trabajo de impresión. El número de páginas no es cambiado." + +#: ../templates/serverInfo.php:168 +msgid "Overlays" +msgstr "Superposiciones" + +#: ../lib/modules/zarafaUser.inc:89 +msgid "Override default quota settings." +msgstr "Anular las preferencias predeterminadas de cuota." + +#: ../templates/config/confmain.php:320 ../lib/types/asteriskExt.inc:96 +#: ../lib/types/asteriskExt.inc:158 +msgid "Owner" +msgstr "Propietario" + +#: ../lib/types/gon.inc:108 ../lib/modules/device.inc:69 +#: ../lib/modules/device.inc:73 ../lib/modules/device.inc:103 +#: ../lib/modules/device.inc:128 ../lib/modules/device.inc:180 +#: ../lib/modules/device.inc:424 ../lib/modules/groupOfNames.inc:93 +#: ../lib/modules/groupOfNames.inc:97 ../lib/modules/groupOfNames.inc:143 +#: ../lib/modules/groupOfNames.inc:174 ../lib/modules/groupOfNames.inc:197 +#: ../lib/modules/groupOfNames.inc:240 ../lib/modules/groupOfNames.inc:398 +#: ../lib/modules/groupOfNames.inc:702 +msgid "Owners" +msgstr "Propietarios" + +#: ../lib/modules/dhcp_settings.inc:97 +msgid "P-Node (0x02)" +msgstr "Nodo-P (0x02)" + +#: ../lib/modules/fixed_ip.inc:98 ../lib/modules/fixed_ip.inc:425 +#: ../lib/modules/fixed_ip.inc:740 +msgid "PC name" +msgstr "Nombre de PC" + +#: ../lib/modules/windowsHost.inc:96 +msgid "PC01" +msgstr "PC01" + +#: ../templates/pdfedit/pdfpage.php:445 ../templates/pdfedit/pdfmain.php:84 +#: ../lib/tools/pdfEdit.inc:44 +msgid "PDF editor" +msgstr "Editor de PDF" + +#: ../templates/masscreate.php:275 ../templates/pdfedit/pdfmain.php:310 +#: ../lib/lists.inc:688 ../help/help.inc:204 +msgid "PDF structure" +msgstr "Estructura de PDF" + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "PDF structure name not valid" +msgstr "Nombre inválido de estructura de PDF" + +#: ../templates/pdfedit/pdfmain.php:168 +msgid "PDF structure was successfully saved." +msgstr "La estructura de PDF se guardó correctamente." + +#: ../templates/pdfedit/pdfmain.php:277 +msgid "PDF structures" +msgstr "Estructuras PDF" + +#: ../templates/serverInfo.php:264 +msgid "PDUs sent" +msgstr "PDUs enviados" + +#: ../templates/config/mainmanage.php:432 ../help/help.inc:158 +msgid "PHP error reporting" +msgstr "Reporte de error PHP" + +#: ../templates/config/mainmanage.php:428 +msgid "PHP system setting" +msgstr "Opciones de sistema PHP" + +#: ../lib/modules/zarafaUser.inc:306 ../lib/modules/zarafaUser.inc:645 +#: ../lib/modules/zarafaUser.inc:1334 +msgid "POP3" +msgstr "POP3" + +#: ../templates/lists/changePassword.php:406 +#: ../templates/lists/changePassword.php:437 ../lib/types/user.inc:376 +#: ../lib/types/user.inc:408 +msgid "PPolicy" +msgstr "Política de Contraseñas" + +#: ../lib/modules/bindDLZ.inc:108 ../lib/modules/bindDLZ.inc:294 +#: ../lib/modules/bindDLZ.inc:300 ../lib/modules/bindDLZ.inc:478 +msgid "PTR record" +msgstr "Registro PTR" + +#: ../lib/modules/bindDLZ.inc:415 ../lib/modules/bindDLZ.inc:434 +#: ../lib/modules/bindDLZ.inc:1489 +msgid "PTR records" +msgstr "Registros PTR" + +#: ../lib/modules/sambaSamAccount.inc:556 +msgid "Pacific Time (US & Canada)" +msgstr "Pacífico (EE.UU. y Canadá)" + +#: ../lib/modules/dhcp_settings.inc:166 +msgid "" +"Packets are sent to the default gateway if the receiver does not reside in " +"the same network. The default gateway routes them to the target network." +msgstr "" +"Los paquetes serán enviados por defecto a la puerta de enlace, si el " +"receptor no reside en la misma red. La puerta de enlace por defecto enruta " +"la red de destino." + +#: ../lib/types/pykotaBillingCodeType.inc:94 +#: ../lib/modules/pykotaBillingCode.inc:89 +#: ../lib/modules/pykotaBillingCode.inc:118 +#: ../lib/modules/pykotaBillingCode.inc:151 +#: ../lib/modules/pykotaBillingCode.inc:264 +msgid "Page count" +msgstr "Cuenta de pago" + +#: ../templates/selfService/adminMain.php:521 ../help/help.inc:234 +msgid "Page header" +msgstr "Cabecera de la página" + +#: ../templates/selfService/adminMain.php:434 +msgid "Page layout" +msgstr "Diseño de página" + +#: ../lib/modules/asteriskVoicemail.inc:111 +#: ../lib/modules/asteriskVoicemail.inc:141 +#: ../lib/modules/asteriskVoicemail.inc:184 +#: ../lib/modules/asteriskVoicemail.inc:256 +#: ../lib/modules/asteriskVoicemail.inc:373 +msgid "Pager" +msgstr "Localizador" + +#: ../lib/modules/asteriskVoicemail.inc:112 +msgid "Pager number for Asterisk voicemail." +msgstr "Número de localizador para buzón de voz de Asterisk." + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:35 +msgid "Parent DN" +msgstr "DN padre" + +#: ../lib/modules/puppetClient.inc:88 ../lib/modules/puppetClient.inc:134 +#: ../lib/modules/puppetClient.inc:154 ../lib/modules/puppetClient.inc:265 +#: ../lib/modules/puppetClient.inc:431 ../lib/modules/puppetClient.inc:466 +msgid "Parent node" +msgstr "Nodo Padre" + +#: ../lib/modules/puppetClient.inc:190 +msgid "Parent node not found." +msgstr "Nodo padre no encontrado" + +#: ../templates/schema/schema.php:366 +msgid "Parent to" +msgstr "Padre de" + +#: ../templates/3rdParty/pla/htdocs/import.php:98 +msgid "Parse error" +msgstr "Error de análisis sintáctico" + +#: ../lib/modules/pykotaPrinter.inc:107 ../lib/modules/pykotaPrinter.inc:166 +#: ../lib/modules/pykotaPrinter.inc:196 ../lib/modules/pykotaPrinter.inc:243 +#: ../lib/modules/pykotaPrinter.inc:595 +msgid "Passthrough" +msgstr "A través de" + +#: ../templates/lists/changePassword.php:356 ../templates/login.php:379 +#: ../templates/selfService/selfServiceLogin.php:323 +#: ../lib/selfService.inc:393 ../lib/modules/mitKerberos.inc:156 +#: ../lib/modules/mitKerberos.inc:242 ../lib/modules/mitKerberos.inc:257 +#: ../lib/modules/mitKerberos.inc:795 ../lib/modules/mitKerberos.inc:798 +#: ../lib/modules/selfRegistration.inc:407 +#: ../lib/modules/selfRegistration.inc:533 +#: ../lib/modules/selfRegistration.inc:536 +#: ../lib/modules/selfRegistration.inc:539 +#: ../lib/modules/asteriskAccount.inc:115 +#: ../lib/modules/asteriskAccount.inc:325 ../lib/modules/posixGroup.inc:205 +#: ../lib/modules/posixGroup.inc:598 ../lib/modules/sambaSamAccount.inc:105 +#: ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:250 +#: ../lib/modules/sambaSamAccount.inc:425 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/posixAccount.inc:110 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:332 ../lib/modules/posixAccount.inc:418 +#: ../lib/modules/posixAccount.inc:522 ../lib/modules/posixAccount.inc:1496 +#: ../lib/modules/posixAccount.inc:1868 ../lib/modules/posixAccount.inc:1871 +#: ../lib/modules/windowsUser.inc:223 ../lib/modules/windowsUser.inc:272 +#: ../lib/modules/windowsUser.inc:524 ../lib/modules/windowsUser.inc:549 +#: ../lib/modules/windowsUser.inc:615 ../lib/modules/windowsUser.inc:616 +#: ../lib/modules/windowsUser.inc:1638 ../lib/modules/windowsUser.inc:1641 +#: ../lib/modules/inetOrgPerson.inc:840 ../lib/modules/inetOrgPerson.inc:1556 +#: ../lib/modules/inetOrgPerson.inc:2052 ../lib/modules/inetOrgPerson.inc:3590 +#: ../lib/modules/asteriskVoicemail.inc:99 +#: ../lib/modules/asteriskVoicemail.inc:165 +#: ../lib/modules/customFields.inc:2444 ../lib/modules/heimdalKerberos.inc:124 +#: ../lib/modules/heimdalKerberos.inc:211 +#: ../lib/modules/heimdalKerberos.inc:223 +#: ../lib/modules/heimdalKerberos.inc:695 +#: ../lib/modules/heimdalKerberos.inc:698 ../lib/modules.inc:1043 +#: ../help/help.inc:202 +msgid "Password" +msgstr "Contraseña" + +#: ../lib/modules/sambaSamAccount.inc:294 +#: ../lib/modules/sambaSamAccount.inc:1155 ../lib/modules/windowsUser.inc:214 +#: ../lib/modules/windowsUser.inc:410 ../lib/modules/windowsUser.inc:522 +#: ../lib/modules/windowsUser.inc:1626 +msgid "Password change at next login" +msgstr "Cambiar contraseña al próximo inicio de sesion." + +#: ../lib/modules/mitKerberos.inc:148 ../lib/modules/mitKerberos.inc:261 +#: ../lib/modules/heimdalKerberos.inc:118 +#: ../lib/modules/heimdalKerberos.inc:227 +msgid "Password change command" +msgstr "Comando para cambiar la contraseña" + +#: ../templates/lists/changePassword.php:295 +msgid "Password change options" +msgstr "Opciones para cambiar la contraseña" + +#: ../lib/modules/ppolicyUser.inc:59 ../lib/modules/ppolicyUser.inc:74 +#: ../lib/modules/ppolicyUser.inc:132 ../lib/modules/ppolicyUser.inc:265 +msgid "Password change required" +msgstr "Cambio de contraseña requerido" + +#: ../lib/types/ppolicyType.inc:91 ../lib/modules/ppolicy.inc:136 +#: ../lib/modules/ppolicy.inc:156 ../lib/modules/ppolicy.inc:300 +#: ../lib/modules/ppolicy.inc:510 +msgid "Password change requires old password" +msgstr "El cambio de contraseña requiere la contraseña anterior" + +#: ../lib/modules/mitKerberos.inc:189 ../lib/modules/mitKerberos.inc:467 +#: ../lib/modules/heimdalKerberos.inc:154 +#: ../lib/modules/heimdalKerberos.inc:393 +msgid "Password change service" +msgstr "Servicio de Cambio de contraseña" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:30 +msgid "Password check" +msgstr "Verificación de contraseña" + +#: ../lib/modules/mitKerberos.inc:297 ../lib/modules/selfRegistration.inc:536 +#: ../lib/modules/posixGroup.inc:598 ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:107 ../lib/modules/posixAccount.inc:110 +#: ../lib/modules/posixAccount.inc:111 ../lib/modules/windowsUser.inc:616 +#: ../lib/modules/inetOrgPerson.inc:105 +msgid "Password contains invalid characters. Valid characters are:" +msgstr "" +"La contraseña contiene caracteres inválidos. Los caracteres válidos son: a-" +"z, A-Z, 0-9,y .-_ !" + +#: ../lib/modules/sambaSamAccount.inc:279 +#: ../lib/modules/sambaSamAccount.inc:282 +#: ../lib/modules/sambaSamAccount.inc:447 +#: ../lib/modules/sambaSamAccount.inc:1145 +#: ../lib/modules/sambaSamAccount.inc:1737 ../lib/modules/windowsUser.inc:198 +#: ../lib/modules/windowsUser.inc:394 ../lib/modules/windowsUser.inc:518 +#: ../lib/modules/windowsUser.inc:747 ../lib/modules/windowsUser.inc:1616 +msgid "Password does not expire" +msgstr "La contraseña no caduca." + +#: ../lib/types/user.inc:103 ../lib/modules/shadowAccount.inc:61 +#: ../lib/modules/shadowAccount.inc:113 ../lib/modules/shadowAccount.inc:170 +#: ../lib/modules/shadowAccount.inc:181 ../lib/modules/shadowAccount.inc:215 +#: ../lib/modules/shadowAccount.inc:324 ../lib/modules/shadowAccount.inc:502 +msgid "Password expiration" +msgstr "Caducidad de contraseña" + +#: ../lib/modules/shadowAccount.inc:61 ../lib/modules/shadowAccount.inc:62 +msgid "Password expiration must be are natural number or -1." +msgstr "La caducidad de la contraseña debe ser un numero natural o -1." + +#: ../templates/selfService/adminMain.php:505 ../help/help.inc:238 +msgid "Password field label" +msgstr "Etiqueta de campo de contraseña" + +#: ../lib/modules/asteriskVoicemail.inc:100 +msgid "Password for voicemail mailbox." +msgstr "Contraseña para Buzón de Voz" + +#: ../lib/modules/posixGroup.inc:504 ../lib/modules/posixGroup.inc:557 +#: ../lib/modules/posixAccount.inc:191 ../lib/modules/posixAccount.inc:247 +#: ../lib/modules/posixAccount.inc:457 ../lib/modules/inetOrgPerson.inc:812 +#: ../lib/modules/inetOrgPerson.inc:3500 ../lib/modules/customFields.inc:136 +#: ../lib/modules/customFields.inc:2458 +msgid "Password hash type" +msgstr "Tipo de hash para la contraseña" + +#: ../lib/types/ppolicyType.inc:80 ../lib/modules/ppolicy.inc:92 +#: ../lib/modules/ppolicy.inc:145 ../lib/modules/ppolicy.inc:169 +#: ../lib/modules/ppolicy.inc:230 ../lib/modules/ppolicy.inc:474 +#: ../lib/modules/sambaDomain.inc:105 ../lib/modules/sambaDomain.inc:191 +#: ../lib/modules/sambaDomain.inc:283 ../lib/modules/sambaDomain.inc:606 +msgid "Password history length" +msgstr "Duracion del historial de contraseñas" + +#: ../templates/config/confmain.php:367 +msgid "Password mail settings" +msgstr "Políticas de contraseña de correo electrónico" + +#: ../lib/modules/shadowAccount.inc:59 ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/ppolicy.inc:167 ../lib/modules/sambaDomain.inc:222 +msgid "Password maximum age must be are natural number." +msgstr "La edad máxima de la contraseña debe ser un numero natural." + +#: ../lib/modules/shadowAccount.inc:66 +msgid "Password maximum age must be bigger as password minimum age." +msgstr "" +"La edad máxima de la contraseña debe ser mayor que la edad minima de la " +"contraseña." + +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/ppolicy.inc:168 +#: ../lib/modules/sambaDomain.inc:220 +msgid "Password maximum age must be bigger than password minimum age." +msgstr "" +"La edad máxima de la contraseña debe ser mayor que la edad minima de la " +"contraseña." + +#: ../lib/modules/shadowAccount.inc:57 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/ppolicy.inc:166 ../lib/modules/sambaDomain.inc:221 +msgid "Password minimum age must be are natural number." +msgstr "La edad minima de la contraseña debe ser un numero natural." + +#: ../templates/config/mainmanage.php:401 ../help/help.inc:166 +msgid "Password must not contain part of user/first/last name" +msgstr "La contraseña no debe contenar parte del usuario/nombre/apellido" + +#: ../templates/config/mainmanage.php:399 ../help/help.inc:164 +msgid "Password must not contain user name" +msgstr "La contraseña no puede contener el nombre de usuario" + +#: ../lib/modules/imapAccess.inc:94 ../lib/modules/imapAccess.inc:290 +msgid "Password of IMAP admin user" +msgstr "Contraseña del servidor IMAP" + +#: ../lib/types/ppolicyType.inc:39 +msgid "Password policies" +msgstr "Politica de contraseñas" + +#: ../lib/types/ppolicyType.inc:48 +msgid "Password policies (ppolicy)" +msgstr "Politica de contraseñas" + +#: ../templates/config/mainmanage.php:382 ../lib/types/user.inc:284 +#: ../lib/types/user.inc:837 ../lib/modules/ppolicyUser.inc:45 +#: ../lib/modules/ppolicyUser.inc:55 ../lib/modules/ppolicyUser.inc:67 +#: ../lib/modules/ppolicyUser.inc:83 ../lib/modules/ppolicyUser.inc:123 +#: ../lib/modules/ppolicyUser.inc:260 ../lib/modules/ppolicyUser.inc:293 +#: ../lib/modules/ppolicy.inc:62 ../lib/modules/sambaDomain.inc:266 +#: ../help/help.inc:154 +msgid "Password policy" +msgstr "Politica de contraseñas" + +#: ../lib/types/ppolicyType.inc:81 ../lib/modules/ppolicy.inc:96 +#: ../lib/modules/ppolicy.inc:146 ../lib/modules/ppolicy.inc:242 +#: ../lib/modules/ppolicy.inc:490 +msgid "Password quality check" +msgstr "Calidad de la contraseña" + +#: ../lib/modules/passwordSelfReset.inc:539 +msgid "Password reset confirmation" +msgstr "Confirmación de cambio de contraseña" + +#: ../lib/modules/passwordSelfReset.inc:559 +msgid "Password reset notification" +msgstr "Notificación de cambio de contrseña" + +#: ../lib/modules/passwordSelfReset.inc:66 +#: ../lib/modules/passwordSelfReset.inc:875 +#: ../lib/modules/passwordSelfReset.inc:1097 +msgid "Password self reset" +msgstr "Autoreseteo de contraseña" + +#: ../lib/modules/passwordSelfReset.inc:1607 +msgid "Password successfully reset." +msgstr "La contraseña se restableció exitosamente." + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:108 +#: ../lib/modules/shadowAccount.inc:168 ../lib/modules/shadowAccount.inc:177 +#: ../lib/modules/shadowAccount.inc:209 ../lib/modules/shadowAccount.inc:316 +#: ../lib/modules/shadowAccount.inc:501 +msgid "Password warning" +msgstr "Aviso de contraseña" + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:64 +msgid "Password warning must be are natural number." +msgstr "El aviso de contraseña debe ser un numero natural." + +#: ../templates/config/confmain.php:610 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:61 +#: ../lib/modules/passwordSelfReset.inc:1174 ../lib/modules.inc:1125 +msgid "Passwords are different!" +msgstr "Las contraseñas son diferentes." + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:59 +msgid "Passwords match." +msgstr "Las contraseñas coinciden" + +#: ../lib/types/nisObjectType.inc:77 +msgid "Path" +msgstr "Ruta" + +#: ../lib/modules/windowsUser.inc:205 +msgid "" +"Path of the user profile (UNC-path, e.g. \\\\server\\share\\user). $user is " +"replaced with user name." +msgstr "" +"Ruta del perfil del usuario. (UNC-path, p.ej. \\\\servidor\\compartido" +"\\usuario). $user es reemplazado con el nombre de usuario." + +#: ../lib/modules/sambaSamAccount.inc:358 +msgid "Path of the user profile." +msgstr "Ruta para el perfil de usuario" + +#: ../lib/modules/sambaSamAccount.inc:309 +msgid "" +"Path of the user profile. Can be a local absolute path or a UNC-path (\\" +"\\server\\share). $user and $group are replaced with user and group name." +msgstr "" +"Path del perfil del usuario. Puede ser un path absoluto oun path UNC ( \\" +"\\servidor\\recurso). $user y $group serán reemplazados por nombre de " +"usuario y nombre de grupo respectivamente." + +#: ../lib/modules/imapAccess.inc:112 ../lib/modules/imapAccess.inc:146 +msgid "Path separator" +msgstr "Separador de destino" + +#: ../templates/config/confmain.php:311 +msgid "Path to external script" +msgstr "Path a script externo" + +#: ../lib/modules/ddns.inc:93 ../lib/modules/ddns.inc:371 +msgid "Path to key for DNS updates" +msgstr "Ruta de las claves para actualización DNS." + +#: ../lib/modules/qmailGroup.inc:140 +msgid "" +"Path to the maildir/mbox on the mail system for sender confirmation and " +"moderation." +msgstr "" +"Ruta a el maildir/mbox en el sistema de correo para la confirmación de " +"remitente y moderación." + +#: ../lib/modules/qmailUser.inc:248 +msgid "Path to the maildir/mbox on the mail system." +msgstr "Ruta a maildir/mbox en el sistema de correo." + +#: ../lib/modules/pykotaUser.inc:152 ../lib/modules/pykotaUser.inc:326 +#: ../lib/modules/pykotaUser.inc:369 +msgid "Payment" +msgstr "Pago" + +#: ../lib/modules/pykotaUser.inc:148 +msgid "Payment and job history" +msgstr "Pago e historial de trabajo" + +#: ../lib/modules/pykotaUser.inc:149 +msgid "Payment and job history for this user." +msgstr "Pago e historial de trabajo para este usuario." + +#: ../lib/modules/pykotaUser.inc:265 ../lib/modules/pykotaUser.inc:283 +#: ../lib/modules/pykotaUser.inc:384 ../lib/modules/pykotaUser.inc:591 +#: ../lib/modules/pykotaUser.inc:983 +msgid "Payment history" +msgstr "Historia de pagos" + +#: ../lib/tools/multiEdit.inc:53 +msgid "Performs modifications on multiple LDAP entries." +msgstr "Efectua modificaciones en múltiples entradas LDAP." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:41 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:64 +msgid "Permanently delete all children also?" +msgstr "¿Borrar permanentemente también todos los hijos?" + +#: ../lib/modules/asteriskAccount.inc:171 +#: ../lib/modules/asteriskAccount.inc:281 +#: ../lib/modules/asteriskAccount.inc:422 +#: ../lib/modules/asteriskAccount.inc:678 +#: ../lib/modules/asteriskAccount.inc:997 +#: ../lib/modules/asteriskAccount.inc:1263 +msgid "Permit" +msgstr "Permitir" + +#: ../lib/modules/inetOrgPerson.inc:130 +msgid "Personal" +msgstr "Personal" + +#: ../lib/selfService.inc:389 +msgid "Personal data" +msgstr "Datos Personales" + +#: ../lib/types/user.inc:102 ../lib/types/user.inc:620 +#: ../lib/modules/inetOrgPerson.inc:159 ../lib/modules/inetOrgPerson.inc:2650 +#: ../lib/modules/inetOrgPerson.inc:2657 ../lib/modules/inetOrgPerson.inc:3563 +#: ../lib/modules/inetOrgPerson.inc:3590 ../lib/modules/inetOrgPerson.inc:3609 +msgid "Photo" +msgstr "Foto" + +#: ../lib/modules/inetOrgPerson.inc:1664 +msgid "Photo file" +msgstr "Archivo de Foto" + +#: ../lib/modules/inetOrgPerson.inc:1662 +msgid "Photo file (JPG format)" +msgstr "Formato del fichero (formato JPG)" + +#: ../lib/modules/asteriskAccount.inc:175 +#: ../lib/modules/asteriskAccount.inc:282 +#: ../lib/modules/asteriskAccount.inc:429 +#: ../lib/modules/asteriskAccount.inc:682 +#: ../lib/modules/asteriskAccount.inc:998 +#: ../lib/modules/asteriskAccount.inc:1265 +msgid "Pickup group" +msgstr "Grupo de Captura" + +#: ../lib/modules/ldapPublicKey.inc:77 +msgid "Please a comma separated list of your public SSH keys." +msgstr "" +"Por favor, introduzca un listado de sus llaves públicas SSH delimitadas por " +"comas." + +#: ../lib/modules/nisMailAliasUser.inc:131 +msgid "Please activate the mail aliases type for this server profile." +msgstr "" +"Por favor active el tipo de alias de correo para este perfil del servidor." + +#: ../lib/modules/customScripts.inc:85 +msgid "" +"Please activate this option if your scripts may generate HTML output. " +"Otherwise, the output is treated as plain text." +msgstr "" +"Por favor, active esta opción si sus scripts pueden generar salida HTML. De " +"lo contrario, la salida se tratará como texto sin formato." + +#: ../lib/modules/asteriskExtension.inc:193 +msgid "Please add at least one extension owner." +msgstr "Por favor, añada al menos un propietario de la extensión." + +#: ../help/help.inc:157 +msgid "" +"Please change this setting only if you experience problems in receiving " +"emails from LAM. This defines the line ending of emails." +msgstr "" +"Por favor cambie esta configuración si experimenta problemas en recibir " +"correos desde LAM. Esto define el fin de línea de correos." + +#: ../lib/modules/qmailGroup.inc:331 +msgid "Please check if this email should be sent." +msgstr "Por favor verifique si el correo electrónico debe ser enviado." + +#: ../lib/modules/sambaSamAccount.inc:1093 +msgid "Please check your settings on the Unix page!" +msgstr "Por favor, ¡compruebe su configuración en la página UNIX!" + +#: ../lib/modules/imapAccess.inc:104 +msgid "" +"Please choose the attribute to get the IMAP user name. The default is \"mail" +"\" but you can also use \"uid\"." +msgstr "" +"Por favor elija un atributo para tomar el nombre de usuario IMAP. El " +"predeterminado es \"mail\" pero también puede utilizar \"uid\"." + +#: ../lib/modules/passwordSelfReset.inc:543 +msgid "Please click here to continue: @@resetLink@@" +msgstr "Por favor haga click aquí para continuar: @@resetLink@@" + +#: ../lib/types/user.inc:298 +msgid "Please click to lock/unlock this account." +msgstr "Por favor haga click para bloquear/desbloquear esta cuenta" + +#: ../lib/modules/pykotaPrinter.inc:219 +msgid "Please enter \"Yes\" or \"No\"." +msgstr "Por favor introduzca \"SI\" o \"NO\"." + +#: ../lib/modules/sambaSamAccount.inc:108 +msgid "Please enter a RID number or the name of a special account!" +msgstr "Por favor, entre un numero RID o el nombre de una cuenta especial!" + +#: ../lib/modules/asteriskAccount.inc:555 +msgid "Please enter a caller ID." +msgstr "Por favor introduzca un identificador de llamada." + +#: ../lib/modules/imapAccess.inc:101 +msgid "" +"Please enter a comma separated list of domain names (e.g. \"company.com," +"example.com\"). LAM will only manage mailboxes from these domains." +msgstr "" +"Por favor introduzca un listado de nombres de dominio delimitado por comas " +"(p.ej. \"empresa.com,ejemplo.com\"). LAM sólo administrará los buzones de " +"correo electrónico de esos dominios." + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +msgid "Please enter a comma separated list of host names!" +msgstr "Por favor, ¡introduzca un listado de equipos delimitados por comas!" + +#: ../lib/modules/asteriskExtension.inc:185 +msgid "Please enter a common name." +msgstr "Por favor, entre un nombre común." + +#: ../lib/modules/imapAccess.inc:178 +msgid "Please enter a correct list of valid mail domains." +msgstr "" +"Por favor, introduzca un listado correcto de dominios válidos de correo." + +#: ../lib/modules/sudoRole.inc:130 ../lib/modules/sudoRole.inc:135 +#: ../lib/modules/sudoRole.inc:281 ../lib/modules/sudoRole.inc:282 +#: ../lib/modules/sudoRole.inc:283 ../lib/modules/sudoRole.inc:284 +msgid "Please enter a date in format \"DD.MM.YYYY HH:MM\" or \"DD.MM.YYYY\"." +msgstr "" +"Por favor introduzca una fecha y hora en formato \"DD.MM.YYYY HH:MM\" o \"DD." +"MM.YYYY\"." + +#: ../lib/modules/customFields.inc:89 +msgid "Please enter a descriptive label for this field." +msgstr "Por favor introduzca un nombre descriptivo para este campo." + +#: ../lib/modules/nisObject.inc:62 ../lib/modules/automount.inc:65 +#: ../lib/modules/sudoRole.inc:67 ../lib/modules/oracleService.inc:62 +msgid "Please enter a descriptive name for this entry." +msgstr "Por favor introduzca un nombre descriptivo para esta entrada." + +#: ../lib/modules/windowsGroup.inc:119 +msgid "Please enter a descriptive text for this group." +msgstr "Por favor introduzca un texto descriptivo para este grupo." + +#: ../lib/modules/windowsHost.inc:79 +msgid "Please enter a descriptive text for this host." +msgstr "Por favor introduzca un texto descriptivo para este host." + +#: ../lib/modules/windowsUser.inc:120 +msgid "Please enter a descriptive text for this user." +msgstr "Por favor introduzca un texto descriptivo para este usuario." + +#: ../lib/modules/organizationalRole.inc:173 +#: ../lib/modules/groupOfNames.inc:209 +msgid "Please enter a group name!" +msgstr "Por favor, ¡introduzca un nombre de grupo!" + +#: ../lib/modules/windowsUser.inc:241 +msgid "" +"Please enter a list of Windows domains that can be selected for your user " +"accounts." +msgstr "" +"Por favor introduzca una lista de dominios Windows que puedan ser " +"seleccionados paa sus cuentas de usuarios." + +#: ../lib/modules/selfRegistration.inc:120 +msgid "Please enter a list of object classes for the new accounts." +msgstr "" +"Por favor introduzca una lista de clases de objeto para las nuevas cuentas." + +#: ../lib/modules/asteriskVoicemail.inc:209 +msgid "Please enter a mailbox." +msgstr "Por favor, introduzca un buzón de correo." + +#: ../lib/modules/device.inc:62 +msgid "Please enter a name for this device." +msgstr "Por favor, introduzca un nombre para este dispositivo." + +#: ../lib/modules/kolabSharedFolder.inc:113 +msgid "Please enter a name for this folder." +msgstr "Por favor introduzca un nombre para esta carpeta." + +#: ../lib/modules/ppolicy.inc:165 +msgid "Please enter a name for this policy." +msgstr "Por favor, introduzca un nombre para esta política." + +#: ../lib/modules/kolabSharedFolder.inc:261 +msgid "Please enter a name." +msgstr "Por favor introduzca un nombre." + +#: ../lib/modules/customFields.inc:2626 +msgid "Please enter a natural number for column count." +msgstr "Por favor introduzca un valor numérico para la cantidad de columnas" + +#: ../lib/modules/customFields.inc:2636 +msgid "Please enter a natural number for row count." +msgstr "Por favor introduzca un número para la cantidad de filas" + +#: ../lib/modules/qmailUser.inc:465 ../lib/modules/qmailUser.inc:467 +msgid "Please enter a number for GID number." +msgstr "Por favor introduzca un número de GID." + +#: ../lib/modules/qmailUser.inc:462 ../lib/modules/qmailUser.inc:464 +msgid "Please enter a number for UID number." +msgstr "Por favor introduzca un número de UID." + +#: ../lib/modules/qmailUser.inc:458 ../lib/modules/qmailUser.inc:459 +msgid "Please enter a number for message count limit." +msgstr "Por favor introduzca un número para el límite de cantidad de mensajes." + +#: ../lib/modules/qmailUser.inc:460 ../lib/modules/qmailUser.inc:461 +msgid "Please enter a number for message size limit." +msgstr "Por favor introduzca un número para el límite de tamaño de mensaje." + +#: ../lib/modules/qmailUser.inc:456 ../lib/modules/qmailUser.inc:457 +msgid "Please enter a number for quota size." +msgstr "Por favor introduzca un número para el tamaño de cuota." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:51 +#: ../templates/lib/141_jquery-validationEngine-lang.php:55 +#: ../lib/modules/mitKerberos.inc:298 ../lib/modules/zarafaUser.inc:408 +#: ../lib/modules/zarafaUser.inc:409 ../lib/modules/zarafaUser.inc:410 +#: ../lib/modules/zarafaUser.inc:411 ../lib/modules/zarafaUser.inc:412 +#: ../lib/modules/zarafaUser.inc:413 ../lib/modules/zarafaUser.inc:415 +#: ../lib/modules/zarafaUser.inc:416 ../lib/modules/bindDLZ.inc:469 +#: ../lib/modules/kolabUser.inc:257 ../lib/modules/kolabUser.inc:258 +#: ../lib/modules/sudoRole.inc:285 ../lib/modules/sudoRole.inc:286 +msgid "Please enter a number." +msgstr "Por favor introduzca un número." + +#: ../lib/modules/ppolicy.inc:174 +msgid "Please enter a numeric value for the expire warning." +msgstr "" +"Por favor, introduzca un valor númerico para la advertencia de expiración." + +#: ../lib/modules/ppolicy.inc:173 +msgid "Please enter a numeric value for the failure count interval." +msgstr "" +"Por favor, introduzca un valor numérico para el intervalo del conteo de " +"fallos." + +#: ../lib/modules/ppolicy.inc:170 +msgid "Please enter a numeric value for the grace authentication limit." +msgstr "" +"Por favor, introduzca un valor numérico para el límite de gracia de " +"autenticación." + +#: ../lib/modules/freeRadius.inc:259 ../lib/modules/freeRadius.inc:260 +msgid "Please enter a numeric value for the idle timeout." +msgstr "Por favor, introduzca un valor numérico para el tiempo de inactividad." + +#: ../lib/modules/ppolicy.inc:171 +msgid "Please enter a numeric value for the lockout duration." +msgstr "Por favor, introduzca un valor numérico para la duración del bloqueo." + +#: ../lib/modules/ppolicy.inc:172 +msgid "Please enter a numeric value for the maximum failure count." +msgstr "" +"Por favor, introduzca un valor numérico para el conteo máximo de fallas." + +#: ../lib/modules/ppolicy.inc:175 +msgid "Please enter a numeric value for the minimum password length." +msgstr "" +"Por favor, introduzca un valor numérico para la longitud mínima de la " +"contraseña." + +#: ../lib/modules/ppolicy.inc:169 +msgid "Please enter a numeric value for the password history length." +msgstr "" +"Por favor, introduzca un valor numérico para el tamaño del historial de " +"contraseñas." + +#: ../lib/modules/sudoRole.inc:267 +msgid "Please enter a role name." +msgstr "Por favor, introduzca un nombre de rol." + +#: ../lib/modules/passwordSelfReset.inc:1203 +msgid "Please enter a security answer." +msgstr "Por favor, introduzca una respuesta de seguridad." + +#: ../lib/modules/selfRegistration.inc:118 +msgid "Please enter a subject for the confirmation mails." +msgstr "" +"Por favor introduzca un asunto para los correos electrónicos de confirmación" + +#: ../lib/modules/kolabSharedFolder.inc:262 +msgid "Please enter a target folder." +msgstr "Por favor introduzca una carpeta destino." + +#: ../lib/modules/selfRegistration.inc:119 +msgid "" +"Please enter a text for the confirmation mails that includes the creation " +"link." +msgstr "" +"Por favor introduzca un texto para los correos electrónicos de confirmación " +"que incluyan el link de creación." + +#: ../lib/modules/customFields.inc:85 +msgid "Please enter a unique name for this field." +msgstr "Por favor introduzca un nombre único para este campo." + +#: ../lib/modules/ppolicy.inc:81 +msgid "Please enter a unique name for this password policy." +msgstr "" +"Por favor, introducza un nombre único para esta política de contraseñas." + +#: ../lib/modules/kolabUser.inc:274 ../lib/modules/kolabUser.inc:280 +msgid "Please enter a user password." +msgstr "Por favor, introduzca una contraseña para el usuario." + +#: ../lib/modules/zarafaDynamicGroup.inc:198 ../lib/modules/eduPerson.inc:245 +#: ../lib/modules/eduPerson.inc:247 ../lib/modules/zarafaAddressList.inc:169 +msgid "Please enter a valid DN in the field:" +msgstr "Por favor, introduzca un DN válido en el campo:" + +#: ../lib/types/bind.inc:205 +msgid "Please enter a valid DNS name." +msgstr "Por favor introduzca un nombre DNS válido." + +#: ../lib/modules/customFields.inc:1189 ../lib/modules/customFields.inc:1746 +msgid "" +"Please enter a valid LDAP attribute name. Allowed characters are a-z, 0-9, _ " +"and -." +msgstr "" +"Por favor ingrese un nombre válido LDAP. Los caracteres permitidos son: a-" +"z, 0-9, _ and -." + +#: ../templates/selfService/adminMain.php:221 +msgid "Please enter a valid LDAP suffix." +msgstr "Por favor introduzca un sufijo LDAP válido." + +#: ../templates/selfService/adminMain.php:225 +msgid "" +"Please enter a valid LDAP user if you want to use it for all operations." +msgstr "" +"Por favor introduzca un usuario válido LDAP si desea usarlo para todas las " +"operaciones." + +#: ../lib/modules/qmailUser.inc:454 +msgid "Please enter a valid account status." +msgstr "Por favor introduzca un estado de cuenta válido." + +#: ../lib/modules/bindDLZ.inc:522 ../lib/modules/bindDLZ.inc:523 +msgid "Please enter a valid admin email address." +msgstr "Por favor introduzca un correo electrónico de administrador válido." + +#: ../templates/config/confmain.php:554 +msgid "Please enter a valid bind user." +msgstr "Por favor, introduzca un usuario Bind válido." + +#: ../lib/modules/inetOrgPerson.inc:103 ../lib/modules/inetOrgPerson.inc:104 +msgid "Please enter a valid business category!" +msgstr "Por favor, ¡introduzca una categoría de negocios válida!" + +#: ../lib/modules/posixAccount.inc:129 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/windowsUser.inc:591 ../lib/modules/windowsUser.inc:592 +#: ../lib/modules/inetOrgPerson.inc:93 ../lib/modules/inetOrgPerson.inc:94 +msgid "Please enter a valid common name!" +msgstr "Por favor, ¡introduzca un nombre común válido!" + +#: ../lib/modules/qmailUser.inc:471 +msgid "Please enter a valid configuration type." +msgstr "Por favor introduzca un tipo de configuración válido." + +#: ../lib/modules/mitKerberos.inc:291 ../lib/modules/mitKerberos.inc:292 +#: ../lib/modules/qmailUser.inc:470 ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/heimdalKerberos.inc:255 +#: ../lib/modules/heimdalKerberos.inc:256 +msgid "Please enter a valid date in format DD-MM-YYYY." +msgstr "Por favor, introduzca una fecha válida en el formato DD-MM-YYYY." + +#: ../lib/modules/asteriskAccount.inc:576 +#: ../lib/modules/asteriskAccount.inc:577 +msgid "Please enter a valid default user." +msgstr "Por favor, introduzca un usuario predeterminado válido." + +#: ../lib/modules/qmailUser.inc:455 +msgid "Please enter a valid delivery mode." +msgstr "Por favor introduzca un modo de delivery válido." + +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:111 ../lib/modules/windowsUser.inc:595 +#: ../lib/modules/windowsUser.inc:596 +msgid "Please enter a valid display name!" +msgstr "Por favor, ¡introduzca un nombre para mostrar válido!" + +#: ../lib/modules/sambaSamAccount.inc:117 ../lib/modules/windowsUser.inc:617 +msgid "Please enter a valid drive letter." +msgstr "Por favor, introduzca una letra de unidad válida." + +#: ../lib/modules/kolabGroup.inc:177 ../lib/modules/kolabGroup.inc:178 +#: ../lib/modules/selfRegistration.inc:122 +#: ../lib/modules/selfRegistration.inc:482 +#: ../lib/modules/zarafaDynamicGroup.inc:200 +#: ../lib/modules/zarafaDynamicGroup.inc:201 ../lib/modules/qmailUser.inc:448 +#: ../lib/modules/qmailUser.inc:449 ../lib/modules/qmailUser.inc:450 +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:453 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:216 ../lib/modules/windowsUser.inc:607 +#: ../lib/modules/windowsUser.inc:608 ../lib/modules/pykotaUser.inc:319 +#: ../lib/modules/pykotaUser.inc:320 ../lib/modules/inetOrgPerson.inc:78 +#: ../lib/modules/inetOrgPerson.inc:80 +#: ../lib/modules/kolabSharedFolder.inc:259 +#: ../lib/modules/kolabSharedFolder.inc:260 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:421 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:425 +#: ../lib/modules/qmailGroup.inc:426 ../lib/modules/qmailGroup.inc:427 +#: ../lib/modules/qmailGroup.inc:428 ../lib/modules/qmailGroup.inc:429 +#: ../lib/modules/qmailGroup.inc:430 ../lib/modules/qmailGroup.inc:431 +#: ../lib/modules/qmailGroup.inc:432 ../lib/modules/passwordSelfReset.inc:232 +#: ../lib/modules/passwordSelfReset.inc:233 +#: ../lib/modules/passwordSelfReset.inc:900 +#: ../lib/modules/passwordSelfReset.inc:1122 +#: ../lib/modules/windowsGroup.inc:285 ../lib/modules/windowsGroup.inc:286 +#: ../lib/modules.inc:1170 +msgid "Please enter a valid email address!" +msgstr "Por favor, ¡introduzca una dirección válida de correo electrónico!" + +#: ../lib/modules/zarafaDynamicGroup.inc:202 +#: ../lib/modules/zarafaDynamicGroup.inc:203 +#: ../lib/modules/zarafaGroup.inc:217 ../lib/modules/zarafaGroup.inc:218 +msgid "Please enter a valid email alias." +msgstr "Por favor, introduzca un alias de correo electrónico válido." + +#: ../lib/modules/passwordSelfReset.inc:907 +#: ../lib/modules/passwordSelfReset.inc:1129 +msgid "Please enter a valid employee number." +msgstr "Por favor introduzca un número de empleado válido." + +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:92 +msgid "Please enter a valid employee type!" +msgstr "Por favor, ¡introduzca un tipo válido de empleado!" + +#: ../lib/modules/inetOrgPerson.inc:76 ../lib/modules/inetOrgPerson.inc:77 +msgid "Please enter a valid fax number!" +msgstr "Por favor, ¡introduzca un número de fax válido!" + +#: ../lib/modules/customFields.inc:187 +msgid "" +"Please enter a valid field name. Only letters, numbers, dash and underline " +"are allowed." +msgstr "" +"Por favor introduzca un nombre válido de campo. Solo se admiten letras, " +"números y guiones y guiones bajos." + +#: ../lib/lists.inc:229 +msgid "" +"Please enter a valid filter. Only letters, numbers and \" _*$.@-\" are " +"allowed." +msgstr "" +"Por favor, introduzca un filtro válido. Solo se admiten letras, números y \" " +"_*$.@-\"." + +#: ../lib/modules/selfRegistration.inc:83 +#: ../lib/modules/selfRegistration.inc:218 +msgid "Please enter a valid first name." +msgstr "Por favor introduzca un nombre válido" + +#: ../lib/modules/asteriskAccount.inc:570 +#: ../lib/modules/asteriskAccount.inc:571 +msgid "Please enter a valid from domain." +msgstr "Por favor, introduzca un dominio de origen válido." + +#: ../lib/modules/asteriskAccount.inc:568 +#: ../lib/modules/asteriskAccount.inc:569 +msgid "Please enter a valid from user." +msgstr "Por favor, introduzca un usuario de origen válido." + +#: ../lib/modules/sambaSamAccount.inc:121 +msgid "Please enter a valid group name!" +msgstr "Por favor, ¡introduzca un nombre de grupo válido!" + +#: ../lib/modules/windowsGroup.inc:287 +msgid "Please enter a valid group scope." +msgstr "Por favor introduzca un ámbito de grupo válido." + +#: ../lib/modules/windowsGroup.inc:288 +msgid "Please enter a valid group type." +msgstr "Por favor introduzca un tipo de grupo válido." + +#: ../lib/modules/pykotaUser.inc:327 +msgid "Please enter a valid job suffix." +msgstr "Por favor introduzca un sufijo de trabajo válido." + +#: ../lib/modules/inetOrgPerson.inc:89 ../lib/modules/inetOrgPerson.inc:90 +msgid "Please enter a valid job title!" +msgstr "Por favor, ¡introduzca un título de ocupación válido!" + +#: ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:219 +msgid "Please enter a valid last name." +msgstr "Por favor introduzca un apellido válido" + +#: ../lib/modules/pykotaGroup.inc:205 ../lib/modules/pykotaUser.inc:321 +msgid "Please enter a valid limit type." +msgstr "Por favor introduzca un tipo de límite válido." + +#: ../lib/modules/eduPerson.inc:253 +msgid "Please enter a valid list of affiliations." +msgstr "Por favor, introduzca un listado de afiliaciones válido." + +#: ../lib/modules/freeRadius.inc:255 ../lib/modules/freeRadius.inc:256 +msgid "Please enter a valid list of group names." +msgstr "Por favor, introduzca un listado válido de nombres de grupos." + +#: ../lib/modules/hostObject.inc:111 +msgid "Please enter a valid list of host names." +msgstr "Por favor, introduzca un listado válido de nombres de equipos." + +#: ../lib/modules/authorizedServiceObject.inc:130 +msgid "Please enter a valid list of service names." +msgstr "Por favor, introduzca un listado válido de nombres de servicios." + +#: ../lib/modules/inetOrgPerson.inc:74 ../lib/modules/inetOrgPerson.inc:75 +msgid "Please enter a valid mobile number!" +msgstr "Por favor, ¡introduzca un número de móvil válido!" + +#: ../lib/modules/pykotaPrinter.inc:215 ../lib/modules/pykotaPrinter.inc:216 +#: ../lib/modules/pykotaPrinter.inc:217 ../lib/modules/pykotaPrinter.inc:218 +#: ../lib/modules/pykotaUser.inc:322 ../lib/modules/pykotaUser.inc:323 +#: ../lib/modules/pykotaUser.inc:324 ../lib/modules/pykotaUser.inc:325 +#: ../lib/modules/pykotaUser.inc:326 +msgid "Please enter a valid number (e.g. \"1.5\")." +msgstr "Por favor introduzca un número válido (p.ej \"1.5\")." + +#: ../lib/modules/pykotaPrinter.inc:213 ../lib/modules/pykotaPrinter.inc:214 +msgid "Please enter a valid number." +msgstr "Por favor introduzca un número válido." + +#: ../lib/modules/customFields.inc:190 +msgid "Please enter a valid object class." +msgstr "Por favor introduzca una clase de objeto válido." + +#: ../lib/modules/dhcp_settings.inc:331 +msgid "Please enter a valid option." +msgstr "Por favor introduzca una opción válida." + +#: ../lib/modules/zarafaServer.inc:177 ../lib/modules/zarafaServer.inc:178 +msgid "Please enter a valid path." +msgstr "Por favor, introduzca una ruta válida" + +#: ../lib/modules/asteriskAccount.inc:572 +#: ../lib/modules/asteriskAccount.inc:573 ../lib/modules/zarafaServer.inc:173 +#: ../lib/modules/zarafaServer.inc:174 ../lib/modules/zarafaServer.inc:175 +#: ../lib/modules/zarafaServer.inc:176 +msgid "Please enter a valid port number." +msgstr "Por favor, introduzca un número de puerto válido." + +#: ../lib/modules/inetOrgPerson.inc:83 ../lib/modules/inetOrgPerson.inc:84 +msgid "Please enter a valid postal address!" +msgstr "Por favor, ¡introduzca una dirección postal válida!" + +#: ../lib/modules/windowsUser.inc:605 ../lib/modules/windowsUser.inc:606 +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:88 +msgid "Please enter a valid postal code!" +msgstr "Por favor, ¡introduzca un código postál valido!" + +#: ../lib/modules/eduPerson.inc:251 +msgid "Please enter a valid primary affiliation." +msgstr "Por favor, introduzca una afiliacion primara válida." + +#: ../lib/modules/freeRadius.inc:253 ../lib/modules/freeRadius.inc:254 +msgid "Please enter a valid realm." +msgstr "Por favor, introduzca un reino válido." + +#: ../lib/modules/kolabGroup.inc:181 ../lib/modules/kolabGroup.inc:182 +#: ../lib/modules/kolabUser.inc:253 ../lib/modules/kolabUser.inc:254 +#: ../lib/modules/kolabSharedFolder.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:251 +msgid "Please enter a valid recipient expression." +msgstr "Por favor introduzca una expresión de destinatario válido." + +#: ../lib/modules/inetOrgPerson.inc:85 ../lib/modules/inetOrgPerson.inc:86 +msgid "Please enter a valid registered address." +msgstr "Por favor, introduzca una dirección registrada válida." + +#: ../lib/modules/eduPerson.inc:252 +msgid "Please enter a valid scoped affiliation." +msgstr "Por favor, introduzca un ámbito válido de afiliación." + +#: ../lib/modules/kolabGroup.inc:183 ../lib/modules/kolabGroup.inc:184 +#: ../lib/modules/kolabUser.inc:255 ../lib/modules/kolabUser.inc:256 +#: ../lib/modules/kolabSharedFolder.inc:252 +#: ../lib/modules/kolabSharedFolder.inc:253 +msgid "Please enter a valid sender expression." +msgstr "Por favor introduzca una expresión de remitente válido." + +#: ../lib/modules/qmailUser.inc:468 ../lib/modules/qmailUser.inc:469 +#: ../lib/modules/imapAccess.inc:177 +msgid "Please enter a valid server name where the mailboxes reside." +msgstr "" +"Por favor, introduzca un nombre de servidor válido donde residan los buzones " +"de correo." + +#: ../lib/modules/inetOrgPerson.inc:81 ../lib/modules/inetOrgPerson.inc:82 +msgid "Please enter a valid street name!" +msgstr "Por favor, ¡introduzca un nombre de calle válido!" + +#: ../lib/modules/windowsUser.inc:601 ../lib/modules/windowsUser.inc:602 +#: ../lib/modules/windowsUser.inc:603 ../lib/modules/windowsUser.inc:604 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:71 +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:73 +msgid "Please enter a valid telephone number!" +msgstr "Por favor, ¡introduzca un número de teléfono válido!" + +#: ../lib/modules/passwordSelfReset.inc:921 +#: ../lib/modules/passwordSelfReset.inc:1143 +msgid "Please enter a valid user name or email address." +msgstr "Por favor introduzca un nombre de usuario o correo electrónico válido." + +#: ../lib/modules/posixGroup.inc:724 ../lib/modules/posixAccount.inc:1160 +#: ../lib/modules/posixAccount.inc:1165 +#, php-format +msgid "Please enter a value between %s and %s!" +msgstr "Por favor, ¡introduzca un valor entre %s y %s!" + +#: ../lib/modules/customFields.inc:2780 +msgid "Please enter a value for status \"checked\"." +msgstr "Por favor ingrese un valor para el estado \"checked\"." + +#: ../lib/modules/customFields.inc:2787 +msgid "Please enter a value for status \"unchecked\"." +msgstr "Por favor ingrese un valor para el estado \"unchecked\"." + +#: ../templates/multiEdit.php:140 +msgid "Please enter a value to add." +msgstr "Por favor introduzca un valor a agregar." + +#: ../templates/multiEdit.php:143 +msgid "Please enter a value to modify." +msgstr "Por favor introduzca un valor a modificar." + +#: ../lib/modules/customFields.inc:77 +msgid "Please enter an alias for this group." +msgstr "Por favor introduzca un alias para este grupo." + +#: ../lib/modules/customFields.inc:189 +msgid "Please enter an alias name." +msgstr "Por favor introduzca un nombre de alias." + +#: ../lib/modules/kolabUser.inc:286 ../lib/modules/imapAccess.inc:208 +#, php-format +msgid "Please enter an email address on this page: %s" +msgstr "Por favor, introduzca una dirección de correo en esta página: %s" + +#: ../lib/modules/pykotaUser.inc:353 +#, php-format +msgid "Please enter an user name on this page: %s" +msgstr "Por favor introduzca un nombre de usuario para esta entrada: %s" + +#: ../lib/modules/windowsUser.inc:1352 ../lib/modules/windowsUser.inc:1361 +#: ../lib/modules/windowsUser.inc:1370 ../lib/modules/windowsUser.inc:1381 +msgid "Please enter either yes or no." +msgstr "Por favor introduzca SI o NO." + +#: ../lib/modules/sudoRole.inc:273 ../lib/modules/sudoRole.inc:274 +msgid "Please enter only ASCII characters for the commands." +msgstr "Por favor, introduzca sólo caracteres ASCII para los comandos." + +#: ../lib/modules/sudoRole.inc:271 ../lib/modules/sudoRole.inc:272 +msgid "Please enter only ASCII characters for the host names." +msgstr "" +"Por favor, introduzca sólo caracteres ASCII para los nombres de equipos." + +#: ../lib/modules/sudoRole.inc:279 ../lib/modules/sudoRole.inc:280 +msgid "Please enter only ASCII characters for the options." +msgstr "Por favor, introduzca sólo caracteres ASCII para las opciones." + +#: ../lib/modules/sudoRole.inc:277 ../lib/modules/sudoRole.inc:278 +msgid "Please enter only ASCII characters for the run groups." +msgstr "Por favor, introduzca sólo caracteres ASCII para los grupos activos." + +#: ../lib/modules/sudoRole.inc:275 ../lib/modules/sudoRole.inc:276 +msgid "Please enter only ASCII characters for the run users." +msgstr "Por favor, introduzca sólo caracteres ASCII para los usuarios activos." + +#: ../lib/modules/device.inc:140 ../lib/modules/device.inc:141 +msgid "Please enter only ASCII characters for the serial number." +msgstr "Por favor, introduzca sólo caracteres ASCII para el número de serie." + +#: ../lib/modules/sudoRole.inc:269 ../lib/modules/sudoRole.inc:270 +msgid "Please enter only ASCII characters for the user names." +msgstr "" +"Por favor, introduzca sólo caracteres ASCII para los nombres de usuarios." + +#: ../lib/modules/passwordSelfReset.inc:231 +msgid "" +"Please enter the DN and password of the administrative password self reset " +"account." +msgstr "" +"Por favor, introduzca el DN y la contraseña de la cuenta de auto-" +"restablecimiento de contraseña." + +#: ../lib/modules/selfRegistration.inc:117 +msgid "" +"Please enter the DN and password of the administrative self registration " +"account." +msgstr "" +"Por favor introduzca el DN y la contraseña de la cuenta administrativa de " +"auto-restablecimiento de contraseña." + +#: ../lib/modules/posixGroup.inc:525 ../lib/modules/posixAccount.inc:502 +msgid "" +"Please enter the DN of the LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "" +"Por favor ingrese el DN de la entrada LDAP con clase de objeto " +"\"sambaUnixIdPool\"." + +#: ../lib/modules/bindDLZ.inc:86 ../lib/modules/bindDLZ.inc:90 +msgid "Please enter the IP address for this entry." +msgstr "Por favor introduzca la dirección IP para esta entrada." + +#: ../lib/modules/ddns.inc:99 +msgid "Please enter the IP address of your DNS server." +msgstr "Por favor, introduzca la dirección IP de su servidor DNS." + +#: ../lib/modules/selfRegistration.inc:62 +msgid "Please enter the LDAP DN that should be used to create new users." +msgstr "" +"Por favor, introduzca el DN de DLAP que debería utilizarse para crear nuevos " +"usuarios." + +#: ../lib/modules/passwordSelfReset.inc:105 +msgid "Please enter the LDAP DN that should be used to reset passwords." +msgstr "" +"Por favor, introduzca el DN de DLAP que debería utilizarse para restablecer " +"contraseñas." + +#: ../lib/modules/customFields.inc:93 +msgid "Please enter the LDAP attribute name for this field." +msgstr "Por favor introduzca un nombre de atributo LDAP para este campo." + +#: ../help/help.inc:123 +msgid "" +"Please enter the LDAP suffix where LAM should start to search for users. The " +"LDAP filter needs to match the given user name to exactly one DN. The value " +"\"%USER%\" will be replaced by the user name from the login page." +msgstr "" +"Por favor, introduzca el sufijo LDAP por donde LAM debe comenzar a buscar " +"usuarios. El filtro LDAP debe coincidir con el nombre dado exactamente en un " +"DN. El valor \"%USER% \" será reemplazado por el nombre de usuario de la " +"página de acceso." + +#: ../lib/modules/pykotaUser.inc:157 +msgid "" +"Please enter the LDAP suffix where the PyKota job entries are stored " +"(configuration option \"jobbase\")." +msgstr "" +"Por favor introduzca el sufijo LDAP donde las entradas de trabajo PyKota son " +"almacenadas (opción de configuración \"jobbase\")." + +#: ../lib/modules/asteriskExtension.inc:188 +#: ../lib/modules/asteriskVoicemail.inc:214 +msgid "Please enter the account context." +msgstr "Por favor, introduzca el contexto de la cuenta." + +#: ../lib/modules.inc:928 +msgid "Please enter the account information on the other pages first." +msgstr "" +"Por favor, primero introduzca la información de la cuenta en las otras " +"páginas." + +#: ../lib/modules/asteriskAccount.inc:565 +msgid "Please enter the account type." +msgstr "Por favor, introduzca el tipo de cuenta." + +#: ../lib/modules/asteriskAccount.inc:120 +msgid "Please enter the account's type (e.g. \"friend\")." +msgstr "Por favor, introduzca el tipo de cuenta (p.ej. \"amigo\")." + +#: ../lib/modules/asteriskExtension.inc:187 +msgid "Please enter the application data." +msgstr "Por favor, introduzca los datos de la aplicación." + +#: ../lib/modules/asteriskExtension.inc:186 +msgid "Please enter the application." +msgstr "Por favor, introduzca la aplicación." + +#: ../lib/modules/automount.inc:69 +msgid "" +"Please enter the automount entry (e.g. \"-fstype=nfs,rw server:/home\")." +msgstr "" +"Por favor, introduzca la entrada automount (p.ej. \"-fstype=nfs,rw server:/" +"home\")." + +#: ../templates/login.php:292 +msgid "Please enter the configuration and create a server profile." +msgstr "Por favor introduzca la configuración y cree un perfil de servidor." + +#: ../help/help.inc:57 +msgid "" +"Please enter the configuration password. This is NOT your LDAP password. It " +"is stored in your .conf-file. If this is the first time you log in, enter " +"\"lam\"." +msgstr "" +"Por favor, introduzca la contraseña de configuración. Esta NO es su " +"contraseña de LDAP. Se almacena en su archivo .conf. Si esta es la primera " +"vez que accede, introduzca \"lam\"." + +#: ../lib/modules/oracleService.inc:66 +msgid "" +"Please enter the connection string (e.g. " +"\"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=server)(PORT=1521))" +"(CONNECT_DATA=(SERVICE_NAME=db.example.com)))\")." +msgstr "" +"Por favor ingrese la cadena de conexión (p.ej. " +"\"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=server)(PORT=1521))" +"(CONNECT_DATA=(SERVICE_NAME=db.ejemplo.com)))\")." + +#: ../lib/modules/puppetClient.inc:81 ../lib/modules/puppetClient.inc:85 +msgid "Please enter the environment name for this node (e.g. production)." +msgstr "" +"Por favor introduzca el nombre de entorno para este nodo (p.ej. Produccion)." + +#: ../lib/modules/asteriskAccount.inc:559 +msgid "Please enter the extension context." +msgstr "Por favor, introduzca el contexto de la extensión." + +#: ../lib/modules/asteriskExtension.inc:189 +msgid "Please enter the extension name." +msgstr "Por favor, introduzca un nombre de extensión válido." + +#: ../lib/modules/windowsGroup.inc:115 +msgid "Please enter the group name." +msgstr "Por favor introduzca un nombre de grupo." + +#: ../lib/modules/asteriskAccount.inc:562 ../lib/modules/windowsHost.inc:75 +msgid "Please enter the host name." +msgstr "Por favor, introduzca el nombre del equipo." + +#: ../lib/modules/customScripts.inc:60 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [account type] [action] [script and arguments]" +msgstr "" +"Por favor, introduzca el listado de scripts que deben ejecutarse. Cada línea " +"contiene el siguiente formato: [tipo de cuenta] [acción] [script y " +"argumentos]" + +#: ../lib/modules/customScripts.inc:74 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [action] [script and arguments]" +msgstr "" +"Por favor, introduzca el listado de scripts que deben ejecutarse. Cada línea " +"contiene el siguiente formato: [acción] [script y argumentos]" + +#: ../lib/modules/nisObject.inc:66 +msgid "" +"Please enter the mapping entry (e.g. \"-fstype=nfs,rw server:/projects\")." +msgstr "" +"Por favor, introduzca la entrada de mapeo (p.ej. \"-fstype=nfs,rw server:/" +"proyectos\")." + +#: ../lib/modules/nisObject.inc:70 +msgid "Please enter the mapping name for this entry (e.g. auto.home)." +msgstr "" +"Por favor, introduzca el nombre de mapeo para esta entrada (p.ej. auto." +"inicio)." + +#: ../help/help.inc:143 +msgid "" +"Please enter the master configuration password. This is NOT your LDAP " +"password. It is stored in your config.cfg file. If this is the first time " +"you log in, enter \"lam\"." +msgstr "" +"Por favor, entre la contraseña maestra de configuración. Esta NO es su " +"contraseña de LDAP. Se almacena en su archivo .conf. Si esta es la primera " +"vez que accede, introduzca \"lam\"." + +#: ../templates/config/mainlogin.php:145 +msgid "Please enter the master password to change the general preferences:" +msgstr "" +"Por favor, introduzca la contrasña maestra para cambiar las preferencias " +"generales:" + +#: ../lib/modules/qmailGroup.inc:424 +msgid "Please enter the message store." +msgstr "Por favor introduzca un almacenamiento de mensajes." + +#: ../help/help.inc:131 +msgid "" +"Please enter the name of the new profile and the password to change its " +"settings. Profile names may contain letters, numbers and -/_." +msgstr "" +"Por favor, introduzca el nombre del nuevo perfil y la contraseña para " +"cambiar sus preferencias. Los nombres de perfil pueden contener letras, " +"números y -/_." + +#: ../help/help.inc:133 +msgid "" +"Please enter the new name of the profile. The name may contain letters, " +"numbers and -/_." +msgstr "" +"Por favor, introduzca el nuevo nombre del perfil. El nombre puede contener " +"letras, números y -/_." + +#: ../lib/modules/selfRegistration.inc:66 +#: ../lib/modules/passwordSelfReset.inc:109 +msgid "" +"Please enter the password for the admin DN. Please note that this is saved " +"as clear-text in the self service profile." +msgstr "" +"Por favor, introduzca la contraseña para el DN admin. Note que esta se " +"guarda como texto en claro en el perfil de autoservicio." + +#: ../lib/modules/asteriskAccount.inc:116 ../lib/modules/posixAccount.inc:523 +#: ../lib/modules/windowsUser.inc:224 ../lib/modules/inetOrgPerson.inc:841 +msgid "Please enter the password which you want to set for this account." +msgstr "" +"Por favor, introduzca la contraseña que desea establecer para esta cuenta." + +#: ../help/help.inc:203 +msgid "" +"Please enter the password which you want to set for this account. You may " +"also generate a random password (12 characters) which will be displayed on " +"your screen." +msgstr "" +"Por favor, introduzca la contraseña que desea configurar para esta cuenta. " +"También puede generar una contraseña aleatoria (12 caracteres) que se " +"mostrará en su pantalla." + +#: ../lib/modules/posixAccount.inc:474 +msgid "Please enter the path to the user's home directory." +msgstr "Por favor, introduzca el nombre del directorio inicial del usuario." + +#: ../lib/modules/zarafaServer.inc:69 +msgid "Please enter the port number for (unencrypted) HTTP connections." +msgstr "" +"Favor, introduzca el número de puerto para las conexiones HTTP (no " +"encriptadas)." + +#: ../lib/modules/zarafaServer.inc:73 +msgid "Please enter the port number for encrypted connections." +msgstr "" +"Por favor, introduzca el número de puerto para las conexiones encriptadas." + +#: ../lib/modules/passwordSelfReset.inc:81 +msgid "" +"Please enter the possible security questions for the password self reset." +msgstr "" +"Por favor, introduzca las preguntas de seguridad posibles para el " +"autorestablecimiento de la contraseña." + +#: ../lib/modules/asteriskExtension.inc:191 +msgid "Please enter the priority." +msgstr "Por favor, introduzca la prioridad." + +#: ../lib/modules/imapAccess.inc:110 +msgid "Please enter the quota limit of this mailbox in kilobytes." +msgstr "" +"Por favor, introduzca la cuota límite de este buzón de correo en kilobytes." + +#: ../lib/modules/quota.inc:154 +msgid "" +"Please enter the quota settings for this mount point. The syntax is: {soft " +"block limit},{hard block limit},{soft inode limit},{hard inode limit}" +msgstr "" +"Por favor, introduzca las preferencias de cuota para este punto de montaje. " +"La sintaxis es: {límite suave de bloque},{límite duro de bloque},{límite " +"suave de inodo},{límite duro de inodo}" + +#: ../lib/modules/systemQuotas.inc:69 +msgid "" +"Please enter the quota settings for this user. The syntax is: {mount point}," +"{soft block limit},{hard block limit},{soft inode limit},{hard inode limit}." +msgstr "" +"Por favor, introduzca las preferencias de cuota para este usuario. La " +"sintaxis es: {punto de montaje},{límite suave de bloque},{límite duro de " +"bloque},{límite suave de inodo},{límite duro de inodo}" + +#: ../lib/modules/nisMailAlias.inc:86 +msgid "Please enter the recipients for this alias." +msgstr "Por favor introduzca los destinatarios para este alias." + +#: ../lib/modules/customFields.inc:109 +#, php-format +msgid "" +"Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") to validate " +"this field. For a syntax description see here." +msgstr "" +"Por favor ingrese una expresión regular (e.g. \"/^[0-9a-zA-Z]+$/\") para " +"validad el campo. Para una descripción de la sintaxis ver here." + +#: ../templates/lists/changePassword.php:517 +#: ../lib/modules/selfRegistration.inc:533 +#: ../lib/modules/sambaSamAccount.inc:105 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/windowsUser.inc:615 ../lib/modules/customFields.inc:2533 +msgid "Please enter the same password in both password fields." +msgstr "" +"Por favor, introduzca la misma contraseña en ambos campos de contraseña." + +#: ../lib/modules/passwordSelfReset.inc:77 +msgid "Please enter the security question for the password self reset." +msgstr "" +"Por favor, introduzca la pregunta de seguridad para el autorestablecimiento " +"de la contraseña." + +#: ../lib/modules/sambaSamAccount.inc:370 +msgid "Please enter the time limit in minutes. 0 means unlimited." +msgstr "" +"Por favor, introduzca el tiempo límite en minutos. 0 significa ilimitado." + +#: ../lib/modules/windowsUser.inc:108 ../lib/modules/windowsUser.inc:116 +msgid "Please enter the user's name." +msgstr "Por favor introduzca el nombre de usuario." + +#: ../lib/modules/puppetClient.inc:101 ../lib/modules/puppetClient.inc:105 +msgid "" +"Please enter your Puppet variables for this node (e.g. config_exim=true)." +msgstr "" +"Por favor introduzca el nombre de marioneta para este nodo (p.ej. " +"config_exim=true)." + +#: ../templates/selfService/adminLogin.php:133 +msgid "" +"Please enter your master configuration password to change the self service " +"profile:" +msgstr "" +"Por favor, introduzca su contraseña maestra para cambiar el perfil de " +"autoservicio:" + +#: ../templates/config/conflogin.php:132 +msgid "Please enter your password to change the server preferences:" +msgstr "" +"Por favor, introduzca su contraseña para cambiar las preferencias del " +"servidor:" + +#: ../lib/modules/ldapPublicKey.inc:73 +msgid "Please enter your public SSH key." +msgstr "Por favor, introduzca su llave pública de SSH." + +#: ../lib/modules/range.inc:402 ../lib/modules/fixed_ip.inc:404 +msgid "Please fill out the DHCP settings first." +msgstr "Por favor, primero llene la configuración del DHCP." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "Please go back and try again." +msgstr "Por favor, regrese y reintente." + +#: ../templates/masscreate.php:246 +msgid "" +"Please provide a CSV formated file with your account data. The cells in the " +"first row must be filled with the column identifiers. The following rows " +"represent one account for each row." +msgstr "" +"Por favor, proporcione un archivo en formato CSV con los datos de su cuenta. " +"Las celdas de la primera fila deben llenarse con los identificdores de las " +"coumnas. Las siguientes filas representan una cuenta para cada fila." + +#: ../lib/config.inc:1768 +msgid "Please provide a file in DER or PEM format." +msgstr "Por favor proporcione un archivo en formato DER o PEM." + +#: ../templates/massBuildAccounts.php:256 +msgid "Please provide a file to upload." +msgstr "Por favor, proporcione un archivo para cargar." + +#: ../lib/modules/inetOrgPerson.inc:749 +msgid "" +"Please select an image file to upload. It must be in JPG format (.jpg/.jpeg)." +msgstr "" +"Por favor, seleccione el archivo de imagen a cargar. Debe estar en el " +"formato JPG (.jpg/.jpeg)." + +#: ../lib/modules/customFields.inc:101 +msgid "Please select the field type (e.g. text field)." +msgstr "Por favor introduzca el tipo de campo (p.ej. campo de texto)." + +#: ../help/help.inc:270 +msgid "Please select the suffix where changes should be done." +msgstr "Por favor seleccione el sufijo donde los cambios deben ser realizados." + +#: ../help/help.inc:149 +msgid "" +"Please select your prefered log level. Messages with a lower level will not " +"be logged." +msgstr "" +"Por favor, seleccione el nivel de registro que prefiere. Los mensajes con un " +"nivel inferior no serán registrados." + +#: ../lib/modules/asteriskVoicemail.inc:228 +msgid "Please set the voicemail password with \"Set password\" before saving." +msgstr "" +"Por favor, establezca la contraseña del buzón de voz con \"Establecer " +"contraseña\" antes de guardar." + +#: ../lib/modules.inc:877 +#, php-format +msgid "Please set up all required attributes on page: %s" +msgstr "Por favor, configure todos los atributos requeridos en la página: %s" + +#: ../templates/config/profmanage.php:220 +#: ../templates/selfService/profManage.php:160 +msgid "Please set up your master configuration file (config/config.cfg) first!" +msgstr "" +"Por favor, ¡primero prepare su archivo maestro de configuración (config/" +"config.cfg)!" + +#: ../lib/modules/dhcp_settings.inc:551 ../lib/modules/ddns.inc:362 +msgid "" +"Please set your LDAP suffix to an LDAP entry with object class \"dhcpService" +"\" or \"dhcpServer\"." +msgstr "" +"Por favor establezca su sufijo LDAP para una entrada LDAP con la clase de " +"objeto \"dhcpService\" or \"dhcpServer\"." + +#: ../templates/multiEdit.php:213 +msgid "Please specify at least one operation." +msgstr "Por favor introduzca al menos una operación." + +#: ../lib/modules/passwordSelfReset.inc:145 +msgid "Please specify how your users need to identify themselves." +msgstr "Por favor especificar como los usuarios se autoidentifican." + +#: ../lib/modules/windowsGroup.inc:143 +msgid "Please specify the group scope." +msgstr "Por favor introduzca el ámbito de grupo." + +#: ../lib/modules/customFields.inc:141 +msgid "" +"Please specify the possible values for this field. Each value can have a " +"descriptive label that is displayed to the user." +msgstr "" +"Por favor especificar los posibles valores para este campo. Cada valor puede " +"tener una etiqueta descriptiva que es mostrada al usuario." + +#: ../help/help.inc:274 +msgid "" +"Please specify which attributes should be changed. The modify operation will " +"also add an value if the attribute does not yet exist. To delete all values " +"of an attribute please leave the value field empty." +msgstr "" +"Por favor especificar cuales atributos deberían ser cambiados. La operación " +"de modificación también agregará un valor si el atributo no existe todavía. " +"Para eliminar todos los valores de un atributo por favor deje esta campo " +"vacío." + +#: ../lib/modules/inetOrgPerson.inc:100 +msgid "Please upload a .jpg/.jpeg file." +msgstr "Por favor suba un archivo .jpg/.jpeg" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:172 +msgid "Please wait" +msgstr "Por favor espere" + +#: ../lib/types/ppolicyType.inc:149 +#, php-format +msgid "Policy count: %s" +msgstr "Conteo de políticas: %s" + +#: ../lib/modules/kolabUser.inc:246 +msgid "Policy list has invalid format!" +msgstr "La lista de políticas tiene un formato incorrecto!" + +#: ../lib/modules/asteriskAccount.inc:179 +#: ../lib/modules/asteriskAccount.inc:283 +#: ../lib/modules/asteriskAccount.inc:436 +#: ../lib/modules/asteriskAccount.inc:686 +#: ../lib/modules/asteriskAccount.inc:999 +#: ../lib/modules/asteriskAccount.inc:1267 ../lib/modules/bindDLZ.inc:188 +#: ../lib/modules/bindDLZ.inc:192 ../lib/modules/bindDLZ.inc:392 +#: ../lib/modules/bindDLZ.inc:505 ../lib/modules/bindDLZ.inc:1358 +#: ../lib/modules/bindDLZ.inc:1601 +msgid "Port" +msgstr "Puerto" + +#: ../lib/modules/asteriskAccount.inc:180 +msgid "Port number." +msgstr "Número de puerto." + +#: ../templates/pdfedit/pdfpage.php:592 ../templates/pdfedit/pdfpage.php:602 +#: ../templates/pdfedit/pdfpage.php:612 ../templates/pdfedit/pdfpage.php:627 +msgid "Position" +msgstr "Posición" + +#: ../templates/masscreate.php:310 ../templates/masscreate.php:384 +#: ../lib/modules/customScripts.inc:125 ../lib/modules/customScripts.inc:127 +#: ../lib/modules/customScripts.inc:129 +#: ../lib/modules/sambaGroupMapping.inc:604 +msgid "Possible values" +msgstr "Posibles valores" + +#: ../lib/modules/pykotaPrinter.inc:130 ../lib/modules/posixGroup.inc:530 +#: ../lib/modules/sambaGroupMapping.inc:172 +#: ../lib/modules/organizationalRole.inc:103 +#: ../lib/modules/groupOfNames.inc:115 +msgid "" +"Possible wildcards are: \"*\" = any character, \"^\" = line start, \"$\" = " +"line end" +msgstr "" +"Posibles comodines son: \"*\" = cualquier caracter, \"^\" = comienzo de " +"línea, \"$\" = fin de línea" + +#: ../lib/modules/windowsUser.inc:160 ../lib/modules/windowsUser.inc:320 +#: ../lib/modules/windowsUser.inc:510 ../lib/modules/windowsUser.inc:547 +#: ../lib/modules/windowsUser.inc:709 ../lib/modules/windowsUser.inc:1598 +#: ../lib/modules/windowsUser.inc:1735 ../lib/modules/inetOrgPerson.inc:159 +#: ../lib/modules/inetOrgPerson.inc:181 ../lib/modules/inetOrgPerson.inc:409 +#: ../lib/modules/inetOrgPerson.inc:548 ../lib/modules/inetOrgPerson.inc:672 +#: ../lib/modules/inetOrgPerson.inc:676 ../lib/modules/inetOrgPerson.inc:1234 +#: ../lib/modules/inetOrgPerson.inc:1237 ../lib/modules/inetOrgPerson.inc:1896 +#: ../lib/modules/inetOrgPerson.inc:2566 ../lib/modules/inetOrgPerson.inc:3513 +#: ../lib/modules/inetOrgPerson.inc:3578 +msgid "Post office box" +msgstr "Oficina de correos" + +#: ../lib/modules/inetOrgPerson.inc:83 ../lib/modules/inetOrgPerson.inc:158 +#: ../lib/modules/inetOrgPerson.inc:193 ../lib/modules/inetOrgPerson.inc:393 +#: ../lib/modules/inetOrgPerson.inc:560 ../lib/modules/inetOrgPerson.inc:688 +#: ../lib/modules/inetOrgPerson.inc:1278 ../lib/modules/inetOrgPerson.inc:1898 +#: ../lib/modules/inetOrgPerson.inc:2533 ../lib/modules/inetOrgPerson.inc:3521 +#: ../lib/modules/inetOrgPerson.inc:3580 +msgid "Postal address" +msgstr "Dirección postal" + +#: ../lib/modules/inetOrgPerson.inc:689 +msgid "Postal address, city" +msgstr "Dirección postal, ciudad" + +#: ../lib/modules/windowsUser.inc:156 ../lib/modules/windowsUser.inc:326 +#: ../lib/modules/windowsUser.inc:509 ../lib/modules/windowsUser.inc:548 +#: ../lib/modules/windowsUser.inc:605 ../lib/modules/windowsUser.inc:710 +#: ../lib/modules/windowsUser.inc:1597 ../lib/modules/windowsUser.inc:1736 +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:159 +#: ../lib/modules/inetOrgPerson.inc:184 ../lib/modules/inetOrgPerson.inc:385 +#: ../lib/modules/inetOrgPerson.inc:551 ../lib/modules/inetOrgPerson.inc:680 +#: ../lib/modules/inetOrgPerson.inc:684 ../lib/modules/inetOrgPerson.inc:1243 +#: ../lib/modules/inetOrgPerson.inc:1246 ../lib/modules/inetOrgPerson.inc:1897 +#: ../lib/modules/inetOrgPerson.inc:2555 ../lib/modules/inetOrgPerson.inc:3515 +#: ../lib/modules/inetOrgPerson.inc:3578 +msgid "Postal code" +msgstr "Código postal" + +#: ../lib/modules/puppetClient.inc:112 +msgid "Predefined classes" +msgstr "Clases predefinidas" + +#: ../lib/modules/puppetClient.inc:116 ../lib/modules/puppetClient.inc:122 +msgid "Predefined environments" +msgstr "Valores predefinidos" + +#: ../lib/modules/authorizedServiceObject.inc:93 +#: ../lib/modules/authorizedServiceObject.inc:99 +msgid "Predefined services" +msgstr "Servicios predefinidos" + +#: ../help/help.inc:91 +msgid "Predefined values" +msgstr "Valores predefinidos" + +#: ../lib/modules/bindDLZ.inc:196 ../lib/modules/bindDLZ.inc:200 +#: ../lib/modules/bindDLZ.inc:280 ../lib/modules/bindDLZ.inc:495 +#: ../lib/modules/bindDLZ.inc:916 ../lib/modules/bindDLZ.inc:1513 +msgid "Preference" +msgstr "Preferencia" + +#: ../lib/modules/imapAccess.inc:97 ../lib/modules/imapAccess.inc:143 +msgid "Prefix for mailboxes" +msgstr "Prefijo para los correos electrónicos" + +#: ../lib/modules/inetOrgPerson.inc:339 +msgid "President" +msgstr "Presidente" + +#: ../lib/modules/pykotaUser.inc:650 ../lib/modules/pykotaUser.inc:999 +msgid "Price" +msgstr "Precio" + +#: ../lib/types/pykotaPrinterType.inc:94 ../lib/modules/pykotaPrinter.inc:111 +#: ../lib/modules/pykotaPrinter.inc:174 ../lib/modules/pykotaPrinter.inc:197 +#: ../lib/modules/pykotaPrinter.inc:215 ../lib/modules/pykotaPrinter.inc:235 +#: ../lib/modules/pykotaPrinter.inc:587 +msgid "Price per job" +msgstr "Costo por trabajo" + +#: ../lib/types/pykotaPrinterType.inc:93 ../lib/modules/pykotaPrinter.inc:115 +#: ../lib/modules/pykotaPrinter.inc:180 ../lib/modules/pykotaPrinter.inc:198 +#: ../lib/modules/pykotaPrinter.inc:217 ../lib/modules/pykotaPrinter.inc:237 +#: ../lib/modules/pykotaPrinter.inc:588 +msgid "Price per page" +msgstr "Costo por página" + +#: ../lib/modules/eduPerson.inc:88 ../lib/modules/eduPerson.inc:168 +#: ../lib/modules/eduPerson.inc:229 ../lib/modules/eduPerson.inc:283 +#: ../lib/modules/eduPerson.inc:581 +msgid "Primary affiliation" +msgstr "Primera asociación." + +#: ../lib/modules/posixAccount.inc:297 ../lib/modules/posixAccount.inc:389 +#: ../lib/modules/posixAccount.inc:414 ../lib/modules/posixAccount.inc:465 +#: ../lib/modules/posixAccount.inc:514 ../lib/modules/posixAccount.inc:552 +#: ../lib/modules/posixAccount.inc:1446 ../lib/modules/posixAccount.inc:1735 +#: ../lib/modules/posixAccount.inc:1781 ../lib/modules/posixAccount.inc:1847 +msgid "Primary group" +msgstr "Grupo primario" + +#: ../lib/modules/bindDLZ.inc:229 +msgid "Primary master DNS server for this zone (e.g. \"ns1.example.com.\")." +msgstr "" +"Servidor DNS primario maestro para esta zona (p.ej. \"ns1.ejemplo.com.\")." + +#: ../lib/modules/bindDLZ.inc:228 ../lib/modules/bindDLZ.inc:338 +#: ../lib/modules/bindDLZ.inc:422 ../lib/modules/bindDLZ.inc:524 +#: ../lib/modules/bindDLZ.inc:1040 ../lib/modules/bindDLZ.inc:1547 +msgid "Primary name server" +msgstr "Servidor de nombres primario" + +#: ../lib/modules/eduPerson.inc:130 ../lib/modules/eduPerson.inc:206 +#: ../lib/modules/eduPerson.inc:232 ../lib/modules/eduPerson.inc:247 +#: ../lib/modules/eduPerson.inc:348 ../lib/modules/eduPerson.inc:588 +msgid "Primary organisational unit" +msgstr "Unidad organizativa principal" + +#: ../lib/modules/eduPerson.inc:114 ../lib/modules/eduPerson.inc:161 +#: ../lib/modules/eduPerson.inc:230 ../lib/modules/eduPerson.inc:277 +#: ../lib/modules/eduPerson.inc:583 +msgid "Principal name" +msgstr "Nombre principal" + +#: ../lib/modules/eduPerson.inc:243 ../lib/modules/eduPerson.inc:244 +msgid "Principal name is invalid!" +msgstr "Nombre principal invalido" + +#: ../lib/modules/pykotaUser.inc:648 ../lib/modules/pykotaUser.inc:997 +msgid "Printer" +msgstr "Impresora" + +#: ../lib/types/pykotaPrinterType.inc:164 +#, php-format +msgid "Printer count: %s" +msgstr "Cantidad de impresoras: %s" + +#: ../lib/modules/pykotaPrinter.inc:100 +msgid "Printer description." +msgstr "Descripción de la impresora." + +#: ../lib/modules/pykotaPrinter.inc:200 ../lib/modules/pykotaPrinter.inc:258 +#: ../lib/modules/pykotaPrinter.inc:621 +msgid "Printer groups" +msgstr "Grupo de impresoras" + +#: ../lib/types/pykotaPrinterType.inc:91 ../lib/modules/pykotaPrinter.inc:95 +#: ../lib/modules/pykotaPrinter.inc:146 ../lib/modules/pykotaPrinter.inc:193 +#: ../lib/modules/pykotaPrinter.inc:209 ../lib/modules/pykotaPrinter.inc:211 +#: ../lib/modules/pykotaPrinter.inc:231 ../lib/modules/pykotaPrinter.inc:584 +#: ../lib/modules/pykotaBillingCode.inc:101 +msgid "Printer name" +msgstr "Nombre de impresora" + +#: ../lib/modules/pykotaPrinter.inc:211 ../lib/modules/pykotaPrinter.inc:212 +msgid "Printer name already exists!" +msgstr "El nombre de la impresora ya existe" + +#: ../lib/modules/pykotaPrinter.inc:209 ../lib/modules/pykotaPrinter.inc:210 +msgid "" +"Printer name contains invalid characters. Valid characters are: a-z, A-Z, " +"0-9 and .-_ !" +msgstr "" +"El nombre de la impresora contiene caracteres inválidos. Los caracteres " +"válidos son: a-z, A-Z, 0-9,y .-_ !" + +#: ../lib/modules/pykotaPrinter.inc:96 +msgid "" +"Printer name of the printer which should be created. Valid characters are: a-" +"z, A-Z, 0-9 and .-_ ." +msgstr "" +"El nombre de la impresora la cual debe ser creada. Los caracteres válidos " +"son: a-z, A-Z, 0-9 y .-_ ." + +#: ../lib/types/pykotaPrinterType.inc:53 +msgid "Printers" +msgstr "Impresoras" + +#: ../lib/modules/bindDLZ.inc:172 ../lib/modules/bindDLZ.inc:176 +#: ../lib/modules/bindDLZ.inc:382 ../lib/modules/bindDLZ.inc:501 +#: ../lib/modules/bindDLZ.inc:1348 ../lib/modules/bindDLZ.inc:1599 +#: ../lib/modules/asteriskExtension.inc:106 +#: ../lib/modules/asteriskExtension.inc:825 +msgid "Priority" +msgstr "Prioridad" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1537 +#: ../templates/3rdParty/pla/htdocs/import_form.php:44 +#: ../templates/3rdParty/pla/htdocs/export_form.php:135 +msgid "Proceed" +msgstr "Proceder" + +#: ../templates/config/profmanage.php:112 +#: ../templates/selfService/profManage.php:85 +msgid "Profile deleted." +msgstr "Perfil suprimido." + +#: ../templates/profedit/profilepage.php:182 +#: ../templates/profedit/profilemain.php:94 ../lib/tools/profileEditor.inc:44 +msgid "Profile editor" +msgstr "Editor de perfiles" + +#: ../templates/config/profmanage.php:159 +#: ../templates/config/profmanage.php:236 +#: ../templates/selfService/profManage.php:101 +#: ../templates/selfService/profManage.php:199 ../help/help.inc:130 +#: ../help/help.inc:132 ../help/help.inc:134 ../help/help.inc:136 +#: ../help/help.inc:138 +msgid "Profile management" +msgstr "Adminstración de perfiles" + +#: ../templates/config/profmanage.php:240 +#: ../templates/config/profmanage.php:260 +#: ../templates/config/profmanage.php:272 +#: ../templates/config/profmanage.php:281 +#: ../templates/config/profmanage.php:301 +#: ../templates/selfService/profManage.php:203 +#: ../templates/selfService/profManage.php:217 +#: ../templates/selfService/profManage.php:233 +#: ../templates/profedit/profilepage.php:186 +#: ../templates/profedit/profilemain.php:277 +#: ../templates/profedit/profilemain.php:321 ../help/help.inc:188 +msgid "Profile name" +msgstr "Nombre del perfil" + +#: ../templates/config/profmanage.php:88 +#: ../templates/config/profmanage.php:107 +#: ../templates/config/profmanage.php:137 +#: ../templates/config/profmanage.php:148 +#: ../templates/selfService/profManage.php:61 +#: ../templates/selfService/profManage.php:76 +msgid "Profile name is invalid!" +msgstr "El nombre del perfil es inválido!" + +#: ../templates/config/profmanage.php:243 +#: ../templates/config/profmanage.php:282 +msgid "Profile password" +msgstr "Contraseña del perfil" + +#: ../templates/config/profmanage.php:86 +#: ../templates/config/profmanage.php:135 +msgid "Profile passwords are different or empty!" +msgstr "Las contraseñas del perfil son diferentes, o están en blanco!" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:98 +#: ../lib/modules/sambaSamAccount.inc:220 +#: ../lib/modules/sambaSamAccount.inc:232 +#: ../lib/modules/sambaSamAccount.inc:308 +#: ../lib/modules/sambaSamAccount.inc:357 +#: ../lib/modules/sambaSamAccount.inc:502 +#: ../lib/modules/sambaSamAccount.inc:598 +#: ../lib/modules/sambaSamAccount.inc:1218 +#: ../lib/modules/sambaSamAccount.inc:1511 +#: ../lib/modules/sambaSamAccount.inc:1580 +#: ../lib/modules/sambaSamAccount.inc:1758 +#: ../lib/modules/sambaSamAccount.inc:1903 +#: ../lib/modules/sambaSamAccount.inc:1918 ../lib/modules/windowsUser.inc:204 +#: ../lib/modules/windowsUser.inc:418 ../lib/modules/windowsUser.inc:478 +#: ../lib/modules/windowsUser.inc:520 ../lib/modules/windowsUser.inc:611 +#: ../lib/modules/windowsUser.inc:754 ../lib/modules/windowsUser.inc:1627 +msgid "Profile path" +msgstr "Path al perfil" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/windowsUser.inc:611 ../lib/modules/windowsUser.inc:612 +msgid "Profile path is invalid!" +msgstr "El path al perfil no es válido!" + +#: ../templates/profedit/profilemain.php:149 +msgid "Profile was saved." +msgstr "Se guardó el perfil." + +#: ../templates/profedit/profilemain.php:244 +msgid "Profiles" +msgstr "Perfiles" + +#: ../lib/modules/qmailUser.inc:252 +msgid "Program to execute for all incoming mails." +msgstr "Programa a ejecutar para todos los correo entrantes." + +#: ../templates/multiEdit.php:231 +msgid "Progress" +msgstr "Progreso" + +#: ../lib/modules/zarafaServer.inc:84 ../lib/modules/zarafaServer.inc:128 +#: ../lib/modules/zarafaServer.inc:141 ../lib/modules/zarafaServer.inc:163 +#: ../lib/modules/zarafaServer.inc:212 ../lib/modules/zarafaServer.inc:357 +msgid "Proxy URL" +msgstr "Proxy URL" + +#: ../lib/modules/zarafaServer.inc:80 ../lib/modules/zarafaServer.inc:118 +#: ../lib/modules/zarafaServer.inc:138 ../lib/modules/zarafaServer.inc:225 +#: ../lib/modules/zarafaServer.inc:362 +msgid "Public store" +msgstr "Almacenamiento público" + +#: ../lib/modules/puppetClient.inc:70 +msgid "Puppet" +msgstr "Marioneta" + +#: ../lib/modules/pykotaPrinter.inc:79 ../lib/modules/pykotaGroup.inc:93 +#: ../lib/modules/pykotaUser.inc:93 ../lib/modules/pykotaBillingCode.inc:61 +msgid "PyKota" +msgstr "PyKota" + +#: ../lib/types/pykotaBillingCodeType.inc:62 +msgid "PyKota billing codes" +msgstr "Códigos de facturación PyKota" + +#: ../lib/modules/pykotaGroup.inc:121 ../lib/modules/pykotaGroup.inc:148 +#: ../lib/modules/pykotaGroup.inc:181 ../lib/modules/pykotaGroup.inc:201 +#: ../lib/modules/pykotaGroup.inc:203 ../lib/modules/pykotaGroup.inc:467 +msgid "PyKota group name" +msgstr "Nombre de grupo PyKota" + +#: ../lib/types/pykotaPrinterType.inc:62 +msgid "PyKota printers" +msgstr "Impresoras PyKota" + +#: ../lib/modules/pykotaUser.inc:124 ../lib/modules/pykotaUser.inc:190 +#: ../lib/modules/pykotaUser.inc:260 ../lib/modules/pykotaUser.inc:315 +#: ../lib/modules/pykotaUser.inc:317 ../lib/modules/pykotaUser.inc:891 +msgid "PyKota user name" +msgstr "Nombre de usuario PyKota" + +#: ../lib/modules/pykotaGroup.inc:221 +msgid "Pykota group name" +msgstr "Nombre de grupo PyKota" + +#: ../lib/modules/pykotaUser.inc:359 +msgid "Pykota user name" +msgstr "Nombre de usuario PyKota" + +#: ../lib/modules/qmailUser.inc:87 ../lib/modules/qmailGroup.inc:56 +msgid "Qmail" +msgstr "Qmail" + +#: ../lib/modules/asteriskAccount.inc:183 +#: ../lib/modules/asteriskAccount.inc:284 +#: ../lib/modules/asteriskAccount.inc:443 +#: ../lib/modules/asteriskAccount.inc:691 +#: ../lib/modules/asteriskAccount.inc:1000 +#: ../lib/modules/asteriskAccount.inc:1269 +msgid "Qualify" +msgstr "Igualdad" + +#: ../lib/modules/passwordSelfReset.inc:76 +#: ../lib/modules/passwordSelfReset.inc:170 +#: ../lib/modules/passwordSelfReset.inc:177 +#: ../lib/modules/passwordSelfReset.inc:197 +#: ../lib/modules/passwordSelfReset.inc:218 +#: ../lib/modules/passwordSelfReset.inc:258 +#: ../lib/modules/passwordSelfReset.inc:381 +#: ../lib/modules/passwordSelfReset.inc:658 +#: ../lib/modules/passwordSelfReset.inc:1043 +msgid "Question" +msgstr "Pregunta" + +#: ../lib/modules/qmailUser.inc:668 ../lib/modules/quota.inc:87 +#: ../lib/modules/quota.inc:100 ../lib/modules/quota.inc:153 +#: ../lib/modules/pykotaGroup.inc:61 ../lib/modules/pykotaGroup.inc:175 +#: ../lib/modules/pykotaGroup.inc:176 ../lib/modules/zarafaUser.inc:481 +#: ../lib/modules/pykotaUser.inc:61 ../lib/modules/pykotaUser.inc:235 +#: ../lib/modules/pykotaUser.inc:236 ../lib/modules/systemQuotas.inc:58 +#: ../lib/modules/systemQuotas.inc:68 ../lib/modules/systemQuotas.inc:75 +#: ../lib/modules/systemQuotas.inc:81 ../lib/modules/systemQuotas.inc:88 +#: ../lib/modules/imapAccess.inc:109 ../lib/modules/imapAccess.inc:164 +msgid "Quota" +msgstr "Quota" + +#: ../lib/modules/quota.inc:698 +#, php-format +msgid "Quota for %s on %s" +msgstr "Quota para %s en %s" + +#: ../lib/modules/zarafaUser.inc:100 ../lib/modules/zarafaUser.inc:230 +#: ../lib/modules/zarafaUser.inc:352 ../lib/modules/zarafaUser.inc:412 +#: ../lib/modules/zarafaUser.inc:516 ../lib/modules/zarafaUser.inc:1231 +#: ../lib/modules/zarafaUser.inc:1314 ../lib/modules/zarafaUser.inc:1791 +msgid "Quota hard limit" +msgstr "Cuota Hard" + +#: ../lib/modules/quota.inc:63 +msgid "Quota has wrong format!" +msgstr "La quota tiene un formato incorrecto!" + +#: ../lib/modules/imapAccess.inc:319 ../lib/modules/imapAccess.inc:328 +msgid "Quota limit (kB)" +msgstr "Límite de Cuota (kB)" + +#: ../lib/modules/zarafaUser.inc:88 ../lib/modules/zarafaUser.inc:204 +#: ../lib/modules/zarafaUser.inc:343 ../lib/modules/zarafaUser.inc:488 +#: ../lib/modules/zarafaUser.inc:1242 ../lib/modules/zarafaUser.inc:1305 +#: ../lib/modules/zarafaUser.inc:1785 +msgid "Quota override" +msgstr "Sobreescribir cuota" + +#: ../lib/modules/qmailUser.inc:106 ../lib/modules/qmailUser.inc:133 +#: ../lib/modules/qmailUser.inc:219 ../lib/modules/qmailUser.inc:308 +#: ../lib/modules/qmailUser.inc:409 ../lib/modules/qmailUser.inc:675 +#: ../lib/modules/qmailUser.inc:1144 +msgid "Quota size" +msgstr "Tamaño de cuota" + +#: ../lib/modules/zarafaUser.inc:96 ../lib/modules/zarafaUser.inc:222 +#: ../lib/modules/zarafaUser.inc:349 ../lib/modules/zarafaUser.inc:410 +#: ../lib/modules/zarafaUser.inc:506 ../lib/modules/zarafaUser.inc:1230 +#: ../lib/modules/zarafaUser.inc:1311 ../lib/modules/zarafaUser.inc:1789 +msgid "Quota soft limit" +msgstr "Cuota Soft" + +#: ../lib/modules/zarafaUser.inc:92 ../lib/modules/zarafaUser.inc:214 +#: ../lib/modules/zarafaUser.inc:346 ../lib/modules/zarafaUser.inc:408 +#: ../lib/modules/zarafaUser.inc:496 ../lib/modules/zarafaUser.inc:1229 +#: ../lib/modules/zarafaUser.inc:1308 ../lib/modules/zarafaUser.inc:1787 +msgid "Quota warning limit" +msgstr "Límite para aviso de cuota" + +#: ../templates/masscreate.php:334 ../templates/profedit/profilepage.php:213 +#: ../lib/modules/selfRegistration.inc:98 +#: ../lib/modules/selfRegistration.inc:210 ../lib/modules.inc:1004 +#: ../help/help.inc:186 +msgid "RDN identifier" +msgstr "Identificador RDN" + +#: ../lib/types/host.inc:93 +msgid "RID (Windows UID)" +msgstr "RID (UID de Windows)" + +#: ../lib/modules/sambaDomain.inc:97 ../lib/modules/sambaDomain.inc:158 +#: ../lib/modules/sambaDomain.inc:189 ../lib/modules/sambaDomain.inc:383 +#: ../lib/modules/sambaDomain.inc:389 ../lib/modules/sambaDomain.inc:604 +msgid "RID base" +msgstr "Base RID" + +#: ../lib/modules/sambaDomain.inc:352 +msgid "RID settings" +msgstr "Opciones de RID" + +#: ../lib/modules/asteriskAccount.inc:195 +#: ../lib/modules/asteriskAccount.inc:287 +#: ../lib/modules/asteriskAccount.inc:465 +#: ../lib/modules/asteriskAccount.inc:704 +#: ../lib/modules/asteriskAccount.inc:1003 +#: ../lib/modules/asteriskAccount.inc:1275 +msgid "RTP hold timeout" +msgstr "Tiempo máximo de espera" + +#: ../lib/modules/asteriskAccount.inc:191 +#: ../lib/modules/asteriskAccount.inc:286 +#: ../lib/modules/asteriskAccount.inc:458 +#: ../lib/modules/asteriskAccount.inc:699 +#: ../lib/modules/asteriskAccount.inc:1002 +#: ../lib/modules/asteriskAccount.inc:1273 +msgid "RTP timeout" +msgstr "Tiempo máximo de espera RTP" + +#: ../lib/modules/customFields.inc:2928 +msgid "Radio buttons" +msgstr "Botones de Selección" + +#: ../lib/modules/range.inc:92 ../lib/modules/range.inc:427 +msgid "Range from" +msgstr "Rango desde" + +#: ../lib/modules/range.inc:95 ../lib/modules/range.inc:440 +msgid "Range to" +msgstr "Rango para" + +#: ../lib/types/dhcp.inc:95 ../lib/modules/range.inc:74 +#: ../lib/modules/range.inc:106 ../lib/modules/range.inc:495 +msgid "Ranges" +msgstr "Rangos" + +#: ../templates/config/confmain.php:317 +msgid "Read" +msgstr "Lectura" + +#: ../templates/config/confmain.php:262 ../templates/config/conftypes.php:290 +#: ../lib/modules/customFields.inc:104 ../lib/modules/customFields.inc:1722 +#: ../help/help.inc:182 +msgid "Read-only" +msgstr "Sólo Lectura" + +#: ../lib/modules/inetOrgPerson.inc:3574 +msgid "Read-only fields" +msgstr "Campo de sólo lectura" + +#: ../lib/modules/customFields.inc:105 +msgid "" +"Read-only fields cannot be changed by the user. Use this if you want to show " +"an attribute just for information." +msgstr "" +"Los campos de sólo-lectura no podrán ser cambiados por el usuario. Utilice " +"esto si desea mostrar un atributo sólo para información." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2289 +msgid "Really delete value from this attribute?" +msgstr "¿ Realmente quiere borrar el atributo ?" + +#: ../lib/modules/mitKerberos.inc:120 ../lib/modules/mitKerberos.inc:152 +#: ../lib/modules/mitKerberos.inc:194 ../lib/modules/freeRadius.inc:92 +#: ../lib/modules/freeRadius.inc:126 ../lib/modules/freeRadius.inc:146 +#: ../lib/modules/freeRadius.inc:177 ../lib/modules/freeRadius.inc:231 +#: ../lib/modules/freeRadius.inc:273 ../lib/modules/freeRadius.inc:539 +#: ../lib/modules/heimdalKerberos.inc:98 +#: ../lib/modules/heimdalKerberos.inc:157 +#: ../lib/modules/heimdalKerberos.inc:163 +msgid "Realm" +msgstr "Reino" + +#: ../lib/modules/nisMailAliasUser.inc:355 ../lib/modules/nisMailAlias.inc:181 +msgid "Recipient" +msgstr "Destinatario" + +#: ../lib/modules/nisMailAlias.inc:127 ../lib/modules/nisMailAlias.inc:128 +msgid "Recipient is invalid!" +msgstr "El destinatario es inválido!" + +#: ../lib/types/mailAlias.inc:92 ../lib/modules/nisMailAlias.inc:89 +#: ../lib/modules/nisMailAlias.inc:108 ../lib/modules/nisMailAlias.inc:116 +#: ../lib/modules/nisMailAlias.inc:476 +msgid "Recipient list" +msgstr "Lista de destinatarios" + +#: ../lib/modules/nisMailAlias.inc:85 ../lib/modules/nisMailAlias.inc:184 +#: ../lib/modules/nisMailAlias.inc:202 +msgid "Recipients" +msgstr "Destinatarios" + +#: ../lib/modules/sambaSamAccount.inc:244 +#: ../lib/modules/sambaSamAccount.inc:387 +#: ../lib/modules/sambaSamAccount.inc:1560 +#: ../lib/modules/sambaSamAccount.inc:1970 +msgid "Reconnect if disconnected" +msgstr "Reconectar si se desconecta" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:63 +msgid "Recursive copy" +msgstr "Copia recursiva" + +#: ../templates/3rdParty/pla/htdocs/copy.php:49 +msgid "Recursive copy progress" +msgstr "Progreso de la eliminación recursiva" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:31 +msgid "Recursive delete progress" +msgstr "Progreso de la eliminación recursiva" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:65 +msgid "Recursively copy all children of this object as well." +msgstr "Copiar recursivamente todos los hijos de este objeto." + +#: ../templates/config/profmanage.php:247 +#: ../templates/config/profmanage.php:286 +#: ../templates/config/mainmanage.php:459 ../templates/config/confmain.php:453 +#: ../lib/modules/selfRegistration.inc:415 +#: ../lib/modules/sambaSamAccount.inc:2268 +#: ../lib/modules/posixAccount.inc:2533 ../lib/modules/windowsUser.inc:1714 +msgid "Reenter password" +msgstr "Vuelva a introducir la contraseña" + +#: ../templates/serverInfo.php:187 +msgid "Referrals" +msgstr "Referencias" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1051 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1054 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:249 +#: ../lib/modules/asteriskExtension.inc:454 ../lib/lists.inc:788 +msgid "Refresh" +msgstr "Refrescar" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +msgid "Refresh this entry" +msgstr "Refrescar esta entrada" + +#: ../lib/modules/bindDLZ.inc:208 ../lib/modules/bindDLZ.inc:313 +#: ../lib/modules/bindDLZ.inc:417 ../lib/modules/bindDLZ.inc:514 +#: ../lib/modules/bindDLZ.inc:1019 ../lib/modules/bindDLZ.inc:1542 +msgid "Refresh time" +msgstr "Tiempo de refresco" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:247 +msgid "Refreshing tree" +msgstr "Refrescando árbol" + +#: ../lib/modules/selfRegistration.inc:340 +msgid "Register new account" +msgstr "Crear una nueva cuenta" + +#: ../lib/modules/inetOrgPerson.inc:85 ../lib/modules/inetOrgPerson.inc:158 +#: ../lib/modules/inetOrgPerson.inc:196 ../lib/modules/inetOrgPerson.inc:401 +#: ../lib/modules/inetOrgPerson.inc:563 ../lib/modules/inetOrgPerson.inc:692 +#: ../lib/modules/inetOrgPerson.inc:1322 ../lib/modules/inetOrgPerson.inc:1899 +#: ../lib/modules/inetOrgPerson.inc:2544 ../lib/modules/inetOrgPerson.inc:3523 +#: ../lib/modules/inetOrgPerson.inc:3580 +msgid "Registered address" +msgstr "Dirección registrada" + +#: ../lib/modules/inetOrgPerson.inc:693 +msgid "Registered address, city" +msgstr "Dirección registrada, ciudad" + +#: ../lib/modules/asteriskAccount.inc:215 +#: ../lib/modules/asteriskAccount.inc:292 +#: ../lib/modules/asteriskAccount.inc:501 +#: ../lib/modules/asteriskAccount.inc:725 +#: ../lib/modules/asteriskAccount.inc:1008 +#: ../lib/modules/asteriskAccount.inc:1285 +msgid "Registration context" +msgstr "Contexto de registración" + +#: ../lib/modules/asteriskAccount.inc:219 +#: ../lib/modules/asteriskAccount.inc:293 +#: ../lib/modules/asteriskAccount.inc:508 +#: ../lib/modules/asteriskAccount.inc:729 +#: ../lib/modules/asteriskAccount.inc:1009 +#: ../lib/modules/asteriskAccount.inc:1287 +msgid "Registration extension" +msgstr "Extensión de registración" + +#: ../lib/modules/asteriskAccount.inc:235 +#: ../lib/modules/asteriskAccount.inc:297 +#: ../lib/modules/asteriskAccount.inc:537 +#: ../lib/modules/asteriskAccount.inc:754 +#: ../lib/modules/asteriskAccount.inc:1013 +#: ../lib/modules/asteriskAccount.inc:1295 +msgid "Registration server" +msgstr "Servidor de registración" + +#: ../lib/modules/kolabUser.inc:53 +msgid "Reject if conflicts" +msgstr "Rechazar si entra en conflicto" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +msgid "Reloading" +msgstr "Cargando nuevamente" + +#: ../templates/login.php:427 +msgid "Remember user name" +msgstr "Recordar nombre de usuario" + +#: ../templates/config/confmodules.php:310 +#: ../templates/pdfedit/pdfpage.php:477 ../lib/modules/mitKerberos.inc:688 +#: ../lib/modules/qmailUser.inc:919 ../lib/modules/windowsHost.inc:158 +#: ../lib/modules/sambaSamAccount.inc:1479 ../lib/modules/kolabUser.inc:871 +#: ../lib/modules/shadowAccount.inc:476 ../lib/modules/freeRadius.inc:429 +#: ../lib/modules/sudoRole.inc:318 ../lib/modules/sudoRole.inc:345 +#: ../lib/modules/sudoRole.inc:372 ../lib/modules/sudoRole.inc:399 +#: ../lib/modules/sudoRole.inc:426 ../lib/modules/sudoRole.inc:453 +#: ../lib/modules/heimdalKerberos.inc:598 ../lib/modules/windowsGroup.inc:364 +msgid "Remove" +msgstr "Quitar" + +#: ../lib/modules/asteriskVoicemail.inc:263 +msgid "Remove Asterisk voicemail extension" +msgstr "Elimina la extensión para Buzón de Voz Asterisk" + +#: ../lib/modules/authorizedServiceObject.inc:170 +msgid "Remove Authorized Service extension" +msgstr "Quitar la extensión de Servicio Autorizado" + +#: ../lib/modules/eduPerson.inc:355 +msgid "Remove EDU person extension" +msgstr "Elimina la extension personal EDU" + +#: ../lib/modules/freeRadius.inc:307 +msgid "Remove FreeRadius extension" +msgstr "Quitar la extensión FreeRadius" + +#: ../lib/modules/ipHost.inc:160 +msgid "Remove IP address extension" +msgstr "Elimina la extensión para dirección IP" + +#: ../lib/modules/mitKerberos.inc:472 ../lib/modules/heimdalKerberos.inc:397 +msgid "Remove Kerberos extension" +msgstr "Quitar extensión de Kerberos" + +#: ../lib/modules/puppetClient.inc:280 +msgid "Remove Puppet extension" +msgstr "Eliminar la extensión marioneta" + +#: ../lib/modules/pykotaGroup.inc:238 ../lib/modules/pykotaUser.inc:418 +msgid "Remove PyKota extension" +msgstr "Elimina la extensión para PyKota" + +#: ../lib/modules/sambaSamAccount.inc:1306 +#: ../lib/modules/sambaGroupMapping.inc:423 +msgid "Remove Samba 3 extension" +msgstr "Elimina la extensión para Samba 3" + +#: ../lib/modules/shadowAccount.inc:375 +msgid "Remove Shadow account extension" +msgstr "Elimina la extensión para cuenta Shadow" + +#: ../lib/modules/posixGroup.inc:246 ../lib/modules/posixAccount.inc:1511 +msgid "Remove Unix extension" +msgstr "Elimina la extensión para Unix" + +#: ../lib/modules/zarafaContact.inc:258 ../lib/modules/zarafaGroup.inc:307 +#: ../lib/modules/zarafaUser.inc:655 ../lib/modules/zarafaServer.inc:232 +msgid "Remove Zarafa extension" +msgstr "Elimina la extensión para Zarafa" + +#: ../lib/modules/customFields.inc:457 +msgid "Remove extension" +msgstr "Elimina la extensión" + +#: ../lib/types/user.inc:384 +msgid "Remove from all Unix groups" +msgstr "Remover de todos los grupos Unix" + +#: ../lib/types/user.inc:388 +msgid "Remove from all group of (unique) names" +msgstr "Remover de todos los grupos de nombres" + +#: ../lib/modules/hostObject.inc:147 +msgid "Remove host extension" +msgstr "Elimina la extensión para equipo" + +#: ../lib/modules/posixGroup.inc:213 ../lib/modules/posixAccount.inc:1504 +#: ../lib/modules/inetOrgPerson.inc:1564 +msgid "Remove password" +msgstr "Quitar contraseña" + +#: ../lib/modules/passwordSelfReset.inc:281 +msgid "Remove password self reset extension" +msgstr "Quitar la extensión para auto-restablecer la contraseña." + +#: ../lib/modules/qmailUser.inc:706 ../lib/modules/qmailGroup.inc:627 +msgid "Remove qmail extension" +msgstr "Elimina la extensión para Qmail" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:147 +#: ../lib/modules/zarafaContact.inc:418 ../lib/modules/zarafaGroup.inc:478 +#: ../lib/modules/device.inc:281 ../lib/modules/zarafaUser.inc:902 +#: ../lib/modules/inetOrgPerson.inc:1737 ../lib/modules/qmailGroup.inc:850 +#: ../lib/modules/organizationalRole.inc:383 +#: ../lib/modules/windowsGroup.inc:584 ../lib/modules/groupOfNames.inc:440 +#: ../lib/modules/groupOfNames.inc:595 +msgid "Remove selected entries" +msgstr "Quitar las entradas seleccionadas." + +#: ../templates/config/conftypes.php:248 +msgid "Remove this account type" +msgstr "Quitar este tipo de cuenta" + +#: ../lib/modules/nisMailAliasUser.inc:153 +#: ../lib/modules/nisMailAliasUser.inc:192 +msgid "Remove user from alias entry." +msgstr "Remover usuario de la entrada alias." + +#: ../lib/modules/inetOrgPerson.inc:2646 +msgid "Remove/replace photo" +msgstr "Quitar o reemplazar la foto." + +#: ../templates/config/profmanage.php:264 +#: ../templates/selfService/profManage.php:225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1152 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1155 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:24 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:35 +#: ../templates/3rdParty/pla/htdocs/rename.php:53 +msgid "Rename" +msgstr "Renombrar" + +#: ../templates/3rdParty/pla/htdocs/rename_form.php:28 +#, php-format +msgid "Rename %s to a new object." +msgstr "Renombrar %s a un nuevo objeto." + +#: ../templates/config/profmanage.php:259 +#: ../templates/config/profmanage.php:265 +#: ../templates/selfService/profManage.php:216 +#: ../templates/selfService/profManage.php:226 ../help/help.inc:132 +msgid "Rename profile" +msgstr "Renombrar perfil" + +#: ../templates/3rdParty/pla/htdocs/rename.php:48 +msgid "Rename successful!" +msgstr "Renombrado existoso!" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +msgid "Rename this entry" +msgstr "Renombrar esta entrada" + +#: ../templates/config/profmanage.php:98 +#: ../templates/selfService/profManage.php:72 +msgid "Renamed profile." +msgstr "Perfil renombrado." + +#: ../templates/3rdParty/pla/htdocs/import.php:30 +#: ../templates/3rdParty/pla/htdocs/import.php:31 +msgid "Renaming" +msgstr "Renombrando" + +#: ../lib/modules/mitKerberos.inc:132 ../lib/modules/mitKerberos.inc:196 +#: ../lib/modules/mitKerberos.inc:236 ../lib/modules/mitKerberos.inc:253 +#: ../lib/modules/mitKerberos.inc:366 ../lib/modules/mitKerberos.inc:771 +#: ../lib/modules/heimdalKerberos.inc:114 +#: ../lib/modules/heimdalKerberos.inc:165 +#: ../lib/modules/heimdalKerberos.inc:205 +#: ../lib/modules/heimdalKerberos.inc:222 +#: ../lib/modules/heimdalKerberos.inc:313 +#: ../lib/modules/heimdalKerberos.inc:691 +msgid "Renewable lifetime" +msgstr "Tiempo de renovación" + +#: ../lib/modules/mitKerberos.inc:295 ../lib/modules/mitKerberos.inc:296 +#: ../lib/modules/heimdalKerberos.inc:259 +#: ../lib/modules/heimdalKerberos.inc:260 +msgid "Renewable lifetime must be a number." +msgstr "El tiempo de renovación debe ser un número" + +#: ../templates/lists/changePassword.php:359 +#: ../lib/modules/passwordSelfReset.inc:1067 ../lib/modules.inc:1048 +msgid "Repeat password" +msgstr "Repita la contraseña" + +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:1199 +msgid "Replaced $user or $group in homedir." +msgstr "Se reemplazó $user o $group en el directorio de inicio." + +#: ../templates/config/confmain.php:346 ../help/help.inc:257 +msgid "Reply-to address" +msgstr "Dirección de respuesta" + +#: ../templates/config/confmain.php:523 +msgid "Reply-to address for password mails is invalid." +msgstr "La dirección de respuesta para mensajes de contraseñas es inválida." + +#: ../lib/types/ppolicyType.inc:89 ../lib/modules/ppolicy.inc:128 +#: ../lib/modules/ppolicy.inc:154 ../lib/modules/ppolicy.inc:288 +#: ../lib/modules/ppolicy.inc:500 +msgid "Require password change on first login" +msgstr "Requiere cambio de contraseña en el próximo inicio de sesión" + +#: ../lib/modules/windowsUser.inc:201 ../lib/modules/windowsUser.inc:402 +#: ../lib/modules/windowsUser.inc:519 ../lib/modules/windowsUser.inc:750 +#: ../lib/modules/windowsUser.inc:1621 +msgid "Require smartcard" +msgstr "Requiere smartcard" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 +msgid "Required attribute for object classes" +msgstr "Atributo requerido para las clases del objeto" + +#: ../templates/schema/schema.php:383 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1567 +msgid "Required attributes" +msgstr "Atributos del destinatario" + +#: ../lib/modules/mitKerberos.inc:180 ../lib/modules/mitKerberos.inc:462 +msgid "Requires hardware authentication" +msgstr "Requiere autenticación de hardware" + +#: ../lib/modules/mitKerberos.inc:177 ../lib/modules/mitKerberos.inc:457 +#: ../lib/modules/heimdalKerberos.inc:151 +#: ../lib/modules/heimdalKerberos.inc:388 +msgid "Requires preauthentication" +msgstr "Requiere pre-autenticación" + +#: ../lib/modules/sambaSamAccount.inc:1300 +#: ../lib/modules/pykotaBillingCode.inc:93 +#: ../lib/modules/pykotaBillingCode.inc:163 +msgid "Reset" +msgstr "Restablecer" + +#: ../lib/modules.inc:1212 +msgid "Reset changes" +msgstr "Restablecer cambios." + +#: ../lib/modules/sambaSamAccount.inc:264 +#: ../lib/modules/sambaSamAccount.inc:1299 +msgid "Reset password" +msgstr "Restablecer contraseña" + +#: ../lib/modules/sambaDomain.inc:137 ../lib/modules/sambaDomain.inc:199 +#: ../lib/modules/sambaDomain.inc:224 ../lib/modules/sambaDomain.inc:348 +#: ../lib/modules/sambaDomain.inc:611 +msgid "Reset time after lockout" +msgstr "Resetea el tiempo de bloqueo." + +#: ../lib/modules/sambaDomain.inc:224 +msgid "Reset time after lockout must be are natural number." +msgstr "La edad máxima de la contraseña debe ser un numero natural." + +#: ../lib/modules/pykotaBillingCode.inc:94 +msgid "Resets the billing code's balance and page counter to 0." +msgstr "" +"Resetea el balance del código de facturación y el contador de páginas a 0." + +#: ../lib/modules/zarafaUser.inc:523 +msgid "Resource settings" +msgstr "Preferencias del recurso" + +#: ../lib/modules/asteriskAccount.inc:187 +#: ../lib/modules/asteriskAccount.inc:285 +#: ../lib/modules/asteriskAccount.inc:450 +#: ../lib/modules/asteriskAccount.inc:695 +#: ../lib/modules/asteriskAccount.inc:1001 +#: ../lib/modules/asteriskAccount.inc:1271 +msgid "Restrict caller ID" +msgstr "Restringir Caller ID" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:113 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:118 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:550 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:587 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:198 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:84 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:122 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +msgid "Retrieving DN" +msgstr "Obteniendo DN" + +#: ../lib/modules/bindDLZ.inc:212 ../lib/modules/bindDLZ.inc:325 +#: ../lib/modules/bindDLZ.inc:418 ../lib/modules/bindDLZ.inc:516 +#: ../lib/modules/bindDLZ.inc:1030 ../lib/modules/bindDLZ.inc:1543 +msgid "Retry time" +msgstr "Tiempo de reintento" + +#: ../lib/modules/bindDLZ.inc:748 +msgid "Reverse DNS entries (\"PTR\" records)" +msgstr "Entradas DNS reversas (registros \"PTR\")" + +#: ../lib/modules/ddns.inc:106 ../lib/modules/ddns.inc:114 +#: ../lib/modules/ddns.inc:135 ../lib/modules/ddns.inc:397 +#: ../lib/modules/ddns.inc:426 +msgid "Reverse zone name" +msgstr "Nombre de la zona reversa" + +#: ../templates/config/confmain.php:313 ../help/help.inc:118 +msgid "Rights for the home directory" +msgstr "Permisos para el directorio principal" + +#: ../lib/modules/organizationalRole.inc:65 +msgid "Role" +msgstr "Rol" + +#: ../lib/types/gon.inc:209 ../lib/types/group.inc:247 +#, php-format +msgid "Role count: %s" +msgstr "Cantidad de roles: %s" + +#: ../lib/types/gon.inc:107 ../lib/types/group.inc:110 +msgid "Role member DNs" +msgstr "DNs de los miembros del rol" + +#: ../lib/types/gon.inc:112 ../lib/types/group.inc:116 +#: ../lib/types/sudo.inc:77 ../lib/modules/sudoRole.inc:66 +#: ../lib/modules/sudoRole.inc:146 ../lib/modules/sudoRole.inc:214 +#: ../lib/modules/sudoRole.inc:299 ../lib/modules/sudoRole.inc:804 +msgid "Role name" +msgstr "Nombre del perfil" + +#: ../lib/types/gon.inc:63 ../lib/types/group.inc:64 +#: ../lib/modules/organizationalRoleUser.inc:54 +#: ../lib/modules/organizationalRoleUser.inc:56 +#: ../lib/modules/organizationalRoleUser.inc:60 +#: ../lib/modules/organizationalRoleUser.inc:64 +#: ../lib/modules/organizationalRoleUser.inc:71 +#: ../lib/modules/organizationalRoleUser.inc:270 +#: ../lib/modules/organizationalRoleUser.inc:306 +msgid "Roles" +msgstr "Roles" + +#: ../lib/modules/zarafaUser.inc:528 ../lib/modules/zarafaUser.inc:1246 +msgid "Room" +msgstr "Sala" + +#: ../lib/modules/inetOrgPerson.inc:160 ../lib/modules/inetOrgPerson.inc:202 +#: ../lib/modules/inetOrgPerson.inc:475 ../lib/modules/inetOrgPerson.inc:569 +#: ../lib/modules/inetOrgPerson.inc:760 ../lib/modules/inetOrgPerson.inc:1366 +#: ../lib/modules/inetOrgPerson.inc:1369 ../lib/modules/inetOrgPerson.inc:1906 +#: ../lib/modules/inetOrgPerson.inc:2577 ../lib/modules/inetOrgPerson.inc:3527 +#: ../lib/modules/inetOrgPerson.inc:3581 +msgid "Room number" +msgstr "numero de habitacion" + +#: ../lib/modules/inetLocalMailRecipient.inc:68 +#: ../lib/modules/inetLocalMailRecipient.inc:100 +#: ../lib/modules/inetLocalMailRecipient.inc:119 +#: ../lib/modules/inetLocalMailRecipient.inc:146 +#: ../lib/modules/inetLocalMailRecipient.inc:292 +msgid "Routing address" +msgstr "Dirección de ruteo" + +#: ../lib/modules/customFields.inc:132 ../lib/modules/customFields.inc:2607 +msgid "Rows" +msgstr "Filas" + +#: ../lib/modules/asteriskExtension.inc:139 +#: ../lib/modules/asteriskExtension.inc:311 +msgid "Rules" +msgstr "Reglas" + +#: ../lib/modules/customScripts.inc:187 +msgid "Run" +msgstr "Ejecutar" + +#: ../lib/types/sudo.inc:82 +msgid "Run group" +msgstr "Grupo de ejecución" + +#: ../lib/modules/sudoRole.inc:90 ../lib/modules/sudoRole.inc:118 +#: ../lib/modules/sudoRole.inc:183 ../lib/modules/sudoRole.inc:220 +#: ../lib/modules/sudoRole.inc:232 ../lib/modules/sudoRole.inc:424 +#: ../lib/modules/sudoRole.inc:810 +msgid "Run groups" +msgstr "Grupos" + +#: ../lib/types/sudo.inc:81 +msgid "Run user" +msgstr "Usuario" + +#: ../lib/modules/sudoRole.inc:86 ../lib/modules/sudoRole.inc:113 +#: ../lib/modules/sudoRole.inc:177 ../lib/modules/sudoRole.inc:219 +#: ../lib/modules/sudoRole.inc:231 ../lib/modules/sudoRole.inc:397 +#: ../lib/modules/sudoRole.inc:809 +msgid "Run users" +msgstr "Usuarios" + +#: ../lib/modules/windowsUser.inc:304 +msgid "S.M." +msgstr "S.M." + +#: ../templates/serverInfo.php:129 +msgid "SASL mechanisms" +msgstr "Mecanismos SASL" + +#: ../lib/modules/asteriskAccount.inc:152 +msgid "SIP URI for a realtime peer." +msgstr "SIP URI para par de tiempo real." + +#: ../lib/modules/asteriskAccount.inc:128 +msgid "SIP user agent identification." +msgstr "Identificación de agente de usuario SIP" + +#: ../lib/modules/bindDLZ.inc:307 ../lib/modules/bindDLZ.inc:313 +#: ../lib/modules/bindDLZ.inc:319 ../lib/modules/bindDLZ.inc:325 +#: ../lib/modules/bindDLZ.inc:331 ../lib/modules/bindDLZ.inc:338 +#: ../lib/modules/bindDLZ.inc:344 ../lib/modules/bindDLZ.inc:350 +#: ../lib/modules/bindDLZ.inc:416 ../lib/modules/bindDLZ.inc:417 +#: ../lib/modules/bindDLZ.inc:418 ../lib/modules/bindDLZ.inc:419 +#: ../lib/modules/bindDLZ.inc:420 ../lib/modules/bindDLZ.inc:421 +#: ../lib/modules/bindDLZ.inc:422 ../lib/modules/bindDLZ.inc:423 +#: ../lib/modules/bindDLZ.inc:480 ../lib/modules/bindDLZ.inc:512 +#: ../lib/modules/bindDLZ.inc:514 ../lib/modules/bindDLZ.inc:516 +#: ../lib/modules/bindDLZ.inc:518 ../lib/modules/bindDLZ.inc:520 +#: ../lib/modules/bindDLZ.inc:522 +msgid "SOA record" +msgstr "Registro SOA" + +#: ../lib/modules/bindDLZ.inc:123 ../lib/modules/bindDLZ.inc:382 +#: ../lib/modules/bindDLZ.inc:387 ../lib/modules/bindDLZ.inc:392 +#: ../lib/modules/bindDLZ.inc:397 ../lib/modules/bindDLZ.inc:402 +#: ../lib/modules/bindDLZ.inc:486 +msgid "SRV record" +msgstr "Registro SRV" + +#: ../lib/modules/bindDLZ.inc:426 ../lib/modules/bindDLZ.inc:436 +#: ../lib/modules/bindDLZ.inc:1596 +msgid "SRV records" +msgstr "Registros SRV" + +#: ../templates/tests/lamdaemonTest.php:243 +msgid "SSH connection" +msgstr "Conexion SSH" + +#: ../templates/tests/lamdaemonTest.php:256 +msgid "SSH connection could be established." +msgstr "La conexión SSH puede ser establecida." + +#: ../lib/modules/ldapPublicKey.inc:62 ../lib/modules/ldapPublicKey.inc:72 +#: ../lib/modules/ldapPublicKey.inc:76 ../lib/modules/ldapPublicKey.inc:88 +#: ../lib/modules/ldapPublicKey.inc:119 +msgid "SSH public key" +msgstr "Clave pública SSH" + +#: ../lib/modules/ldapPublicKey.inc:95 ../lib/modules/ldapPublicKey.inc:99 +#: ../lib/modules/ldapPublicKey.inc:197 ../lib/modules/ldapPublicKey.inc:237 +msgid "SSH public keys" +msgstr "Llaves públicas de SSH" + +#: ../help/help.inc:83 +msgid "SSL certificate" +msgstr "Certificado SSL" + +#: ../templates/config/mainmanage.php:308 +msgid "SSL certificates" +msgstr "Certificados SSL" + +#: ../lib/modules/zarafaServer.inc:72 ../lib/modules/zarafaServer.inc:106 +#: ../lib/modules/zarafaServer.inc:136 ../lib/modules/zarafaServer.inc:175 +#: ../lib/modules/zarafaServer.inc:203 ../lib/modules/zarafaServer.inc:355 +msgid "SSL port" +msgstr "Puerto SSL" + +#: ../templates/lists/changePassword.php:402 +#: ../templates/lists/changePassword.php:433 +msgid "Samba" +msgstr "Samba 3" + +#: ../lib/types/user.inc:276 ../lib/types/user.inc:372 +#: ../lib/types/user.inc:404 ../lib/types/user.inc:829 +#: ../lib/modules/sambaSamAccount.inc:146 +#: ../lib/modules/sambaGroupMapping.inc:101 +msgid "Samba 3" +msgstr "Samba 3" + +#: ../lib/modules/sambaDomain.inc:210 ../lib/modules/sambaDomain.inc:211 +msgid "Samba 3 domain SID is invalid!" +msgstr "El SID del dominio de Samba 3 es inválido!" + +#: ../lib/types/smbDomain.inc:62 +msgid "Samba 3 domain entries" +msgstr "Entradas de al dominio de Samba 3" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:228 +msgid "Samba ID pool" +msgstr "Pool de Samba ID" + +#: ../lib/modules/posixGroup.inc:413 ../lib/modules/posixGroup.inc:524 +#: ../lib/modules/posixGroup.inc:613 ../lib/modules/posixAccount.inc:131 +#: ../lib/modules/posixAccount.inc:215 ../lib/modules/posixAccount.inc:233 +#: ../lib/modules/posixAccount.inc:501 +msgid "Samba ID pool DN" +msgstr "DN del pool de Samba ID" + +#: ../lib/modules/sambaSamAccount.inc:329 +#: ../lib/modules/sambaSamAccount.inc:333 +#: ../lib/modules/sambaSamAccount.inc:477 +#: ../lib/modules/sambaSamAccount.inc:543 +msgid "Samba RID" +msgstr "RID de Samba" + +#: ../lib/modules/sambaGroupMapping.inc:129 +#: ../lib/modules/sambaGroupMapping.inc:154 +msgid "Samba RID number" +msgstr "Numero RID de Samba" + +#: ../lib/modules/sambaGroupMapping.inc:123 +msgid "Samba display name" +msgstr "Nombre a visualizar de Samba" + +#: ../lib/modules/sambaDomain.inc:58 +msgid "Samba domain" +msgstr "Dominios de Samba" + +#: ../lib/modules/sambaGroupMapping.inc:245 +msgid "Samba domain name" +msgstr "Nombre de dominio de samba" + +#: ../lib/types/smbDomain.inc:53 +msgid "Samba domains" +msgstr "Dominios de Samba" + +#: ../lib/modules/sambaGroupMapping.inc:113 +#: ../lib/modules/sambaGroupMapping.inc:135 +#: ../lib/modules/sambaGroupMapping.inc:162 +#: ../lib/modules/sambaGroupMapping.inc:541 +msgid "Samba group type" +msgstr "Tipo de grupo de Samba" + +#: ../lib/modules/sambaSamAccount.inc:261 +msgid "Samba password" +msgstr "Contraseña de Samba" + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:226 +#: ../lib/modules/sambaSamAccount.inc:314 +#: ../lib/modules/sambaSamAccount.inc:317 +#: ../lib/modules/sambaSamAccount.inc:518 +#: ../lib/modules/sambaSamAccount.inc:604 +#: ../lib/modules/sambaSamAccount.inc:1240 +#: ../lib/modules/sambaSamAccount.inc:1766 +#: ../lib/modules/sambaSamAccount.inc:1904 +msgid "Samba workstations" +msgstr "Estaciones de Samba" + +#: ../lib/modules/sambaSamAccount.inc:1376 +msgid "Saturday" +msgstr "Sábado" + +#: ../templates/config/confmodules.php:224 +#: ../templates/config/confmain.php:468 +#: ../templates/config/moduleSettings.php:238 +#: ../templates/config/conftypes.php:338 +#: ../templates/selfService/selfServiceMain.php:416 +#: ../templates/selfService/adminMain.php:745 +#: ../templates/pdfedit/pdfpage.php:636 +#: ../templates/profedit/profilepage.php:238 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1243 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1247 +#: ../lib/modules/inetOrgPerson.inc:2801 ../lib/modules/customFields.inc:3456 +#: ../lib/modules.inc:1206 +msgid "Save" +msgstr "Guardar" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +msgid "Save a dump of this object" +msgstr "Salvar un dump de este objeto" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1244 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Save a dump of this object and all of its children" +msgstr "Salvar un dump de este objeto y todos sus hijos" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:90 +msgid "Save as file" +msgstr "Guardar como un archivo" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:172 +msgid "Save changes" +msgstr "Guardar cambios" + +#: ../lib/tools/schemaBrowser.inc:44 +msgid "Schema browser" +msgstr "Explorador de esquemas" + +#: ../templates/serverInfo.php:119 +msgid "Schema suffix" +msgstr "Sufijo de esquema" + +#: ../templates/tests/schemaTest.php:55 ../templates/tests/index.php:58 +#: ../lib/tools/tests.inc:116 +msgid "Schema test" +msgstr "Comprobador de esquemas" + +#: ../lib/modules/eduPerson.inc:92 ../lib/modules/eduPerson.inc:96 +#: ../lib/modules/eduPerson.inc:175 ../lib/modules/eduPerson.inc:233 +#: ../lib/modules/eduPerson.inc:285 ../lib/modules/eduPerson.inc:582 +msgid "Scoped affiliations" +msgstr "Asociación de ámbito." + +#: ../help/help.inc:101 +msgid "Script path" +msgstr "Path del script" + +#: ../templates/config/confmain.php:573 +msgid "Script path is invalid!" +msgstr "Path del script inválido!" + +#: ../templates/config/confmain.php:592 +msgid "Script rights are invalid!" +msgstr "Script invalido" + +#: ../templates/config/confmain.php:576 +msgid "Script server is invalid!" +msgstr "Sevidor de scripts inválido!" + +#: ../help/help.inc:114 +msgid "Script servers" +msgstr "Servidor de scripts" + +#: ../templates/serverInfo.php:300 ../templates/serverInfo.php:380 +#: ../templates/3rdParty/pla/lib/QueryRender.php:75 +#: ../templates/3rdParty/pla/lib/QueryRender.php:180 +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:619 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:235 +msgid "Search" +msgstr "Buscar" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +#: ../templates/3rdParty/pla/lib/QueryRender.php:190 +msgid "Search Results" +msgstr "Resultado de búsqueda" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +#: ../templates/3rdParty/pla/lib/export_functions.php:201 +#: ../templates/3rdParty/pla/htdocs/export_form.php:81 +msgid "Search filter" +msgstr "Filtro de búsqueda" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:293 +msgid "Search returned no results" +msgstr "La búsqueda no hay retornado resultados" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +#: ../templates/3rdParty/pla/lib/export_functions.php:200 +#: ../templates/3rdParty/pla/htdocs/export_form.php:67 +msgid "Search scope" +msgstr "Contexto de búsqueda" + +#: ../lib/modules/asteriskExtension.inc:457 +msgid "Search tree suffix for users" +msgstr "Subfijo del árbol de búsqueda para usuarios" + +#: ../templates/pdfedit/pdfpage.php:608 +msgid "Section" +msgstr "Sección" + +#: ../lib/modules/windowsGroup.inc:60 +msgid "Security" +msgstr "Seguridad" + +#: ../templates/3rdParty/pla/lib/Template.php:397 +#: ../templates/3rdParty/pla/lib/Template.php:422 +#: ../templates/3rdParty/pla/lib/Template.php:427 +#: ../templates/3rdParty/pla/lib/Template.php:484 +#: ../templates/3rdParty/pla/lib/Template.php:509 +#: ../templates/3rdParty/pla/lib/Template.php:514 +msgid "Security error: The file being uploaded may be malicious." +msgstr "" +"Error de seguridad: El archivo que está siendo subido podría ser malicioso" + +#: ../lib/modules/zarafaGroup.inc:81 ../lib/modules/zarafaGroup.inc:178 +#: ../lib/modules/zarafaGroup.inc:203 ../lib/modules/zarafaGroup.inc:285 +#: ../lib/modules/zarafaGroup.inc:655 +msgid "Security group" +msgstr "Grupos de seguridad" + +#: ../lib/modules/windowsGroup.inc:139 +msgid "" +"Security groups are used for permission management and distribution groups " +"as email lists." +msgstr "" +"Grupos de seguridad son usados para grupos de gestión de permisos y grupos " +"de distribución como listas de correo." + +#: ../lib/modules/passwordSelfReset.inc:80 +#: ../lib/modules/passwordSelfReset.inc:205 +#: ../lib/modules/passwordSelfReset.inc:527 +msgid "Security questions" +msgstr "Preguntas de seguridad" + +#: ../templates/config/mainmanage.php:295 ../templates/config/confmain.php:458 +msgid "Security settings" +msgstr "Preferencias de seguridad" + +#: ../templates/help.php:94 +msgid "See also" +msgstr "Vea también" + +#: ../lib/account.inc:790 +msgid "See the manual for instructions to solve this problem." +msgstr "Vea el manual para resolver este problema." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:494 +msgid "Select a template for the creation process" +msgstr "Escoja una plantilla para el proceso de creación" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:498 +msgid "Select a template to edit the entry" +msgstr "Elija una plantilla para editar esta entrada" + +#: ../lib/lists.inc:354 ../lib/lists.inc:471 +msgid "Select all" +msgstr "Seleccionar todos" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:31 +msgid "Select an LDIF file" +msgstr "Seleccionar un archivo LDIF" + +#: ../lib/modules/nisnetgroup.inc:240 ../lib/modules/nisnetgroup.inc:269 +msgid "Select host" +msgstr "seleccionar equipo" + +#: ../lib/modules/customFields.inc:3126 +msgid "Select list" +msgstr "Seleccionar lista" + +#: ../lib/modules/nisMailAlias.inc:194 ../lib/modules/nisMailAlias.inc:215 +msgid "Select mail" +msgstr "Seleccionar correo" + +#: ../lib/modules/nisMailAliasUser.inc:101 +msgid "Select one or more alias entries from the list to add the recipient." +msgstr "" +"Seleccione uno o mas entradas alias desde la lista para agregar al " +"destinatario." + +#: ../lib/modules/nisnetgroup.inc:246 ../lib/modules/nisnetgroup.inc:275 +#: ../lib/modules/nisMailAlias.inc:195 ../lib/modules/nisMailAlias.inc:216 +msgid "Select user" +msgstr "Seleccionar usuarios" + +#: ../lib/modules/posixAccount.inc:1567 ../lib/modules/posixAccount.inc:1600 +#: ../lib/modules/windowsUser.inc:1030 ../lib/modules/nisnetgroup.inc:384 +#: ../lib/modules/groupOfNamesUser.inc:131 +msgid "Selected groups" +msgstr "Grupos seleccionados" + +#: ../templates/masscreate.php:159 ../templates/config/confmodules.php:299 +msgid "Selected modules" +msgstr "Módulos de seleccionados" + +#: ../lib/modules/organizationalRoleUser.inc:116 +msgid "Selected roles" +msgstr "Roles seleccionados" + +#: ../lib/modules/posixGroup.inc:295 ../lib/modules/asteriskExtension.inc:461 +msgid "Selected users" +msgstr "Usuarios seleccionados" + +#: ../templates/selfService/adminMain.php:336 +msgid "Self service configuration" +msgstr "Auto configuración." + +#: ../templates/selfService/adminMain.php:389 +msgid "Self service configuration editor" +msgstr "Editar auto configuración." + +#: ../templates/selfService/adminMain.php:395 +msgid "Self service login" +msgstr "Login Auto Servicio" + +#: ../lib/modules/passwordSelfReset.inc:504 +msgid "Self service login attribute" +msgstr "Atributo de login de autoservicio" + +#: ../templates/selfService/adminMain.php:381 +msgid "Self service profile" +msgstr "Perfiles de autoservicio" + +#: ../lib/modules/passwordSelfReset.inc:130 +#: ../lib/modules/passwordSelfReset.inc:531 +msgid "Send confirmation mail" +msgstr "Enviar mensaje de confirmación" + +#: ../lib/modules/passwordSelfReset.inc:112 +#: ../lib/modules/passwordSelfReset.inc:551 +msgid "Send notification mail" +msgstr "Enviar mensaje de notificación" + +#: ../lib/modules/inetOrgPerson.inc:456 ../lib/modules/inetOrgPerson.inc:729 +msgid "Send password via mail" +msgstr "Enviar contraseña por correo electrónico" + +#: ../templates/lists/changePassword.php:319 +#: ../templates/lists/changePassword.php:364 ../lib/modules.inc:1066 +#: ../help/help.inc:208 +msgid "Send via mail" +msgstr "Enviar por correo electrónico" + +#: ../lib/modules/qmailGroup.inc:90 ../lib/modules/qmailGroup.inc:220 +#: ../lib/modules/qmailGroup.inc:224 ../lib/modules/qmailGroup.inc:353 +#: ../lib/modules/qmailGroup.inc:408 ../lib/modules/qmailGroup.inc:429 +#: ../lib/modules/qmailGroup.inc:519 ../lib/modules/qmailGroup.inc:1068 +msgid "Sender email addresses" +msgstr "Direcciones de correo electrónico de remitente" + +#: ../lib/modules/qmailGroup.inc:88 ../lib/modules/qmailGroup.inc:172 +#: ../lib/modules/qmailGroup.inc:176 ../lib/modules/qmailGroup.inc:295 +#: ../lib/modules/qmailGroup.inc:387 ../lib/modules/qmailGroup.inc:521 +#: ../lib/modules/qmailGroup.inc:790 ../lib/modules/qmailGroup.inc:1067 +msgid "Sender entries" +msgstr "Entradas de remitente" + +#: ../lib/modules/qmailGroup.inc:92 ../lib/modules/qmailGroup.inc:188 +#: ../lib/modules/qmailGroup.inc:192 ../lib/modules/qmailGroup.inc:311 +#: ../lib/modules/qmailGroup.inc:393 ../lib/modules/qmailGroup.inc:520 +#: ../lib/modules/qmailGroup.inc:1069 +msgid "Sender filter" +msgstr "Filtro de remitente" + +#: ../lib/modules/passwordSelfReset.inc:113 +msgid "Sends a mail to the user to inform him about the password change." +msgstr "" +"Envía un mensaje al usuario para informarle acerca del cambio de la " +"contraseña." + +#: ../lib/modules/passwordSelfReset.inc:131 +msgid "" +"Sends a mail to the user to validate his email address before the password " +"change." +msgstr "" +"Envía un mensaje al usuario para validar su dirección de correo antes de " +"cambiar la contraseña." + +#: ../lib/modules/inetOrgPerson.inc:730 ../help/help.inc:209 +msgid "" +"Sends the password to the user via mail. Please edit your LAM server profile " +"to setup the mail settings." +msgstr "" +"Enviar la contraseña al usuario por correo electrónico. Por favor edite su " +"perfil de servidor LAM para configurar los parámetro de correo electrónico." + +#: ../templates/config/mainmanage.php:358 ../lib/modules/device.inc:65 +#: ../lib/modules/device.inc:97 ../lib/modules/device.inc:127 +#: ../lib/modules/device.inc:175 ../lib/modules/device.inc:420 +#: ../lib/modules/bindDLZ.inc:220 ../lib/modules/bindDLZ.inc:350 +#: ../lib/modules/bindDLZ.inc:416 ../lib/modules/bindDLZ.inc:520 +#: ../lib/modules/bindDLZ.inc:1048 ../lib/modules/bindDLZ.inc:1541 +msgid "Serial number" +msgstr "Número de Serie" + +#: ../templates/tests/lamdaemonTest.php:72 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:166 +#: ../templates/3rdParty/pla/htdocs/import.php:47 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:110 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +#: ../templates/3rdParty/pla/htdocs/export_form.php:56 +#: ../lib/modules/kolabGroup.inc:289 ../lib/modules/bindDLZ.inc:164 +#: ../lib/modules/bindDLZ.inc:168 ../lib/modules/bindDLZ.inc:397 +#: ../lib/modules/bindDLZ.inc:507 ../lib/modules/bindDLZ.inc:1366 +#: ../lib/modules/bindDLZ.inc:1602 ../lib/modules/kolabSharedFolder.inc:429 +msgid "Server" +msgstr "Servidor" + +#: ../templates/config/confmain.php:238 +#: ../templates/selfService/adminMain.php:446 ../lib/modules/qmailUser.inc:118 +#: ../lib/modules/qmailUser.inc:163 ../lib/modules/qmailUser.inc:243 +#: ../lib/modules/qmailUser.inc:358 ../lib/modules/qmailUser.inc:427 +#: ../lib/modules/qmailUser.inc:592 ../lib/modules/qmailUser.inc:1148 +#: ../lib/modules/imapAccess.inc:77 ../lib/modules/imapAccess.inc:117 +#: ../help/help.inc:58 +msgid "Server address" +msgstr "Dirección del servidor" + +#: ../templates/config/confmain.php:501 +#: ../templates/selfService/adminMain.php:217 +msgid "Server address is invalid!" +msgstr "La dirección del servidor es invalida" + +#: ../templates/serverInfo.php:103 ../lib/tools/serverInfo.inc:44 +msgid "Server information" +msgstr "Información del servidor" + +#: ../templates/config/confmain.php:310 +msgid "Server list" +msgstr "Lista de servidores" + +#: ../templates/login.php:468 ../templates/config/confmodules.php:137 +#: ../templates/config/confmain.php:167 +#: ../templates/config/moduleSettings.php:136 +#: ../templates/config/conftypes.php:155 ../lib/modules/imapAccess.inc:130 +msgid "Server profile" +msgstr "Perfiles de servidores" + +#: ../templates/config/confmain.php:280 +#: ../templates/selfService/adminMain.php:491 +msgid "Server settings" +msgstr "Preferencias del servidor" + +#: ../templates/serverInfo.php:180 +msgid "Server statistics" +msgstr "Estadísticas del servidor" + +#: ../templates/serverInfo.php:205 ../templates/serverInfo.php:211 +msgid "Server time" +msgstr "Hora del servidor" + +#: ../lib/modules/zarafaServer.inc:145 +msgid "Servers" +msgstr "Servidores" + +#: ../lib/modules/authorizedServiceObject.inc:82 +msgid "Service name (e.g. sshd, imap, ftp). Enter one service per entry." +msgstr "" +"Nombre del servicio (p.ej. sshd, imap, ftp). Introduzca un servicio por " +"entrada." + +#: ../lib/modules/bindDLZ.inc:1340 +msgid "Services (\"SRV\" records)" +msgstr "Servicios (registro \"SRV\")" + +#: ../templates/config/mainmanage.php:298 ../help/help.inc:146 +msgid "Session timeout" +msgstr "Tiempo de espera de la sesión" + +#: ../lib/modules/aliasEntry.inc:108 +msgid "Set" +msgstr "Estableces" + +#: ../lib/modules/sambaSamAccount.inc:1467 +#: ../lib/modules/sambaSamAccount.inc:1470 +#: ../lib/modules/sambaSamAccount.inc:1473 +#: ../lib/modules/shadowAccount.inc:464 ../lib/modules/shadowAccount.inc:467 +#: ../lib/modules/shadowAccount.inc:470 +msgid "Set also for Kerberos" +msgstr "Establecer también para Kerberos" + +#: ../lib/modules/mitKerberos.inc:682 ../lib/modules/shadowAccount.inc:461 +#: ../lib/modules/heimdalKerberos.inc:592 +msgid "Set also for Samba 3" +msgstr "Establecer también para cuenta Samba 3" + +#: ../lib/modules/mitKerberos.inc:679 ../lib/modules/sambaSamAccount.inc:1464 +#: ../lib/modules/heimdalKerberos.inc:589 +msgid "Set also for Shadow" +msgstr "Establecer también para Shadow" + +#: ../lib/modules.inc:1219 ../lib/modules.inc:1221 +msgid "Set password" +msgstr "Establecer contraseña" + +#: ../lib/modules/posixAccount.inc:269 ../lib/modules/posixAccount.inc:445 +msgid "Set primary group as memberUid" +msgstr "El grupo principal como memberUid" + +#: ../templates/config/profmanage.php:280 +#: ../templates/config/profmanage.php:291 +#: ../templates/config/profmanage.php:292 ../help/help.inc:136 +msgid "Set profile password" +msgstr "Establecer contraseña de perfil" + +#: ../lib/modules.inc:1222 +msgid "Set random password" +msgstr "Establecer contraseña aleatoria" + +#: ../templates/lists/changePassword.php:347 +msgid "Set specific password" +msgstr "Establecer contraseña especifica" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +msgid "Set the search results to 0 to retrieve all available records." +msgstr "" +"Setear los resultados de búsqueda a 0 para devolver todos los registros " +"disponibles." + +#: ../templates/selfService/adminMain.php:593 +msgid "Set this field read-only." +msgstr "Setear este campo solo-lectura" + +#: ../lib/modules/groupOfNames.inc:110 +msgid "" +"Set this only if your LDAP schema allows that groups may not have any " +"members (e.g. if you use OpenDJ)." +msgstr "" +"Setear solamente si su esquema LDAP permite que los grupos pueden no tener " +"miembros (p.ej. si utiliza OpenDJ)." + +#: ../lib/modules/nisMailAliasUser.inc:77 +#: ../lib/modules/nisMailAliasUser.inc:81 +msgid "Sets the alias names linked to the current user name." +msgstr "Setea los nombres alias relacionados con la actual cuenta de usuario." + +#: ../lib/modules/nisMailAliasUser.inc:85 +#: ../lib/modules/nisMailAliasUser.inc:89 +msgid "Sets the alias names linked to the user's email address." +msgstr "" +"Setea los nombres alias relacionados a la dirección de correo del usuario." + +#: ../lib/modules/bindDLZ.inc:217 +msgid "" +"Sets the default timeout (in seconds) for entries without explicit timeout " +"value." +msgstr "" +"Setea el tiempo de espera predeterminado (en segundos) para entradas sin " +"valor explícito." + +#: ../lib/modules/qmailUser.inc:216 +msgid "Sets the delivery mode (e.g. disable mail forwarding)." +msgstr "Setea el modo de delivery (p.ej. desactiva el reenvio de correos)." + +#: ../lib/modules/posixGroup.inc:497 +msgid "Sets the group password." +msgstr "Establece la contraseña del grupo." + +#: ../lib/modules/bindDLZ.inc:197 ../lib/modules/bindDLZ.inc:201 +msgid "" +"Sets the preference for the mail server. Lower values have higher priority." +msgstr "" +"Setea la preferencia del servidor de correo. Menores valores tienen mayor " +"prioridad." + +#: ../help/help.inc:183 +msgid "Sets this account type to read-only." +msgstr "Setear este tipo de cuenta a solo-lectura." + +#: ../lib/modules/shadowAccount.inc:91 +msgid "Shadow" +msgstr "Sombra" + +#: ../lib/modules/sambaSamAccount.inc:242 +#: ../lib/modules/sambaSamAccount.inc:381 +#: ../lib/modules/sambaSamAccount.inc:1544 +#: ../lib/modules/sambaSamAccount.inc:1954 +msgid "Shadowing" +msgstr "Sombrear" + +#: ../lib/types/kolabSharedFolderType.inc:141 +#, php-format +msgid "Shared folder count: %s" +msgstr "Cantidad de carpetas compartidas: %s" + +#: ../lib/modules/kolabSharedFolder.inc:57 +msgid "Shared mail folder" +msgstr "Carpeta de correo compartido" + +#: ../lib/modules/zarafaUser.inc:112 ../lib/modules/zarafaUser.inc:265 +#: ../lib/modules/zarafaUser.inc:358 ../lib/modules/zarafaUser.inc:585 +#: ../lib/modules/zarafaUser.inc:1268 ../lib/modules/zarafaUser.inc:1795 +msgid "Shared store only" +msgstr "Almacenamiento compartido solamente" + +#: ../lib/modules/ddns.inc:82 +msgid "Should DDNS (Dynamic DNS) be activated?" +msgstr "¿Se activa el DDNS (DNS dinámico)?" + +#: ../lib/modules/ddns.inc:86 +msgid "Should fix IP addresses be added to the DNS server?" +msgstr "¿Se deben fijar las direcciones IP que se añaden al servidor DNS?" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1121 +msgid "Show" +msgstr "Mostrar" + +#: ../templates/massBuildAccounts.php:243 +msgid "Show LDIF file" +msgstr "Mostrar archivo LDIF" + +#: ../lib/types/user.inc:683 +msgid "Show account status" +msgstr "Mostrar estado de cuenta" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +#: ../templates/3rdParty/pla/htdocs/export_form.php:84 +msgid "Show attributes" +msgstr "Mostrar atributos internos" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1122 +msgid "Show internal attributes" +msgstr "Mostrar atributos internos" + +#: ../lib/modules/asteriskExtension.inc:453 +msgid "Show only Asterisk accounts" +msgstr "Mostrar sólo cuentas Asterisk" + +#: ../lib/types/group.inc:423 +msgid "Show primary group members as normal group members" +msgstr "Mostrar grupo principal como grupo normal" + +#: ../templates/schema/schema.php:194 +msgid "Single valued" +msgstr "Un solo valor posible" + +#: ../lib/modules/pykotaUser.inc:652 ../lib/modules/pykotaUser.inc:1001 +msgid "Size" +msgstr "Tamaño" + +#: ../lib/modules/qmailUser.inc:228 +msgid "Size limit in bytes for a single mail. Larger mails will be bounced." +msgstr "" +"Límite de tamaño en bytes para un correo individual. Correos de mayor tamaño " +"serán rebotados." + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Skip" +msgstr "Saltar" + +#: ../lib/modules/quota.inc:634 ../lib/modules/systemQuotas.inc:383 +msgid "Soft block" +msgstr "Bloque soft" + +#: ../lib/modules/quota.inc:113 ../lib/modules/quota.inc:401 +#: ../lib/modules/quota.inc:507 ../lib/modules/systemQuotas.inc:124 +msgid "Soft block limit" +msgstr "Limite de bloque soft" + +#: ../lib/modules/quota.inc:114 +msgid "Soft block limit." +msgstr "Limite de bloque soft" + +#: ../lib/modules/quota.inc:636 ../lib/modules/systemQuotas.inc:385 +msgid "Soft inode" +msgstr "Inodo soft" + +#: ../lib/modules/quota.inc:136 +msgid "Soft inode (files) limit." +msgstr "Limite de inodos (archivos) soft." + +#: ../lib/modules/quota.inc:135 ../lib/modules/quota.inc:405 +#: ../lib/modules/quota.inc:509 ../lib/modules/systemQuotas.inc:128 +msgid "Soft inode limit" +msgstr "Limte soft de inodos" + +#: ../lib/modules/imapAccess.inc:98 +msgid "" +"Some IMAP servers store mailboxes with a prefix (e.g. \"user\" for Cyrus " +"which results in \"user.username\")." +msgstr "" +"Algunos servidores IMAP almacenan buzones de correo con un prefijo (p.ej. " +"\"usuario\" para Cyrus el cual resulta in \"usuario.nombreusuario\")." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1019 +#, php-format +msgid "Some attributes (%s) were modified and are highlighted below." +msgstr "Algunos atributos (%s) se modificaron y están resaltados más abajo." + +#: ../lib/modules.inc:876 +msgid "Some required information is missing" +msgstr "Falta alguna información requerida" + +#: ../templates/help.php:123 +#, php-format +msgid "" +"Sorry this help id ({bold}%s{endbold}) is not available for this module " +"({bold}%s{endbold})." +msgstr "" +"Perdón, pero esta ayuda ({bold}%s{endbold}) no está disponible para este " +"módulo({bold}%s{endbold})." + +#: ../templates/help.php:136 +#, php-format +msgid "Sorry this help number ({bold}%s{endbold}) is not available." +msgstr "" +"Perdón para este número de ayuda ({bold}%s{endbold}) no está disponible." + +#: ../lib/modules/sambaSamAccount.inc:326 +#: ../lib/modules/sambaSamAccount.inc:1277 +msgid "Special user" +msgstr "Usuario especial" + +#: ../lib/modules/zarafaDynamicGroup.inc:92 +#: ../lib/modules/zarafaAddressList.inc:80 +msgid "" +"Specifies a filter that matches the members (e.g. \"(mail=*@zarafa.nl)\")." +msgstr "" +"Especifica un filtro que conincide con los miembros (p.ej. \"(mail=*@zarafa." +"nl)\")." + +#: ../lib/modules/groupOfNames.inc:119 +msgid "Specifies how members and owners are displayed." +msgstr "Especifica como los miembros y propietarios son mostrados." + +#: ../lib/modules/organizationalRole.inc:107 +msgid "Specifies how members are displayed." +msgstr "Especificar como son mostrados los miembros." + +#: ../help/help.inc:86 +msgid "" +"Specifies if LAM should automatically follow referrals. Activate if you use " +"referrals in your LDAP directory." +msgstr "" +"Especifica si LAM debería automáticamente seguir referencias. Activar si " +"utiliza referencias en su directorio LDAP." + +#: ../help/help.inc:260 +msgid "" +"Specifies if password mails may be sent to mail addresses other than the " +"user's LDAP mail address." +msgstr "" +"Especifica si los correos de contraseñas pueden ser enviados a las " +"direcciones de correo distintas a la dirección de correo LDAP del usuario." + +#: ../help/help.inc:256 +msgid "Specifies if the mail should be sent as text or HTML." +msgstr "" +"Especifica si el correo electrónico será enviado como texto o como HTML." + +#: ../help/help.inc:167 +msgid "" +"Specifies if the password must not contain 3 or more characters of the user/" +"first/last name." +msgstr "" +"Especifica que la contraseña no puede contener 3 o más caracteres del " +"usuario/nombre/apellido." + +#: ../help/help.inc:165 +msgid "Specifies if the password must not contain the user name." +msgstr "Especifica si la contraseña puede contener el nombre de usuario." + +#: ../lib/modules/asteriskAccount.inc:224 +msgid "Specifies if the user can call forward." +msgstr "Especifica si el usuario puede reenviar una llamada" + +#: ../lib/modules/zarafaGroup.inc:82 +msgid "Specifies if this group has security possibilities." +msgstr "Especificar si el grupo tiene posibilidades de seguridad" + +#: ../lib/modules/zarafaServer.inc:81 +msgid "" +"Specifies if this server contains the public store. This may be changed only " +"for new entries." +msgstr "" +"Especifica si el servidor contiene almacenamiento público. Esto puede ser " +"cambiado solamente para las nuevas entradas." + +#: ../lib/modules/dhcp_settings.inc:202 +msgid "Specifies if unknown clients are allowed." +msgstr "Especifica si clientes desconocidos son permitidos." + +#: ../lib/modules/ppolicy.inc:133 +msgid "Specifies if users are allowed to change their own passwords or not." +msgstr "Especifica si el usuario tiene permitido cambiar sus contraseñas." + +#: ../lib/modules/zarafaDynamicGroup.inc:88 +#: ../lib/modules/zarafaAddressList.inc:76 +msgid "" +"Specifies the LDAP base where to search for members (e.g. \"ou=zarafa," +"dc=company,dc=com\")." +msgstr "" +"Epecifies la base LDAP donde buscar miembros (p.ej. \"ou=zarafa,dc=empresa," +"dc=com\")." + +#: ../lib/modules/customFields.inc:161 +msgid "Specifies the allowed file extension. This is checked at upload time." +msgstr "" +"Especifica la extensión de archivo permitida. Esto es verificado en el " +"momento de la subida." + +#: ../lib/modules/zarafaContact.inc:96 ../lib/modules/zarafaGroup.inc:98 +#: ../lib/modules/zarafaUser.inc:145 +msgid "" +"Specifies the attribute that should be used to reference the entries. If you " +"would like to reference also groups then this must be set to \"dn\"." +msgstr "" +"Especifica el atributo que debe utilizarse para referenciar las entradas. Si " +"quiere referenciar también grupos entonces esto debe ser seteado a \"dn\"." + +#: ../lib/modules/zarafaUser.inc:121 +msgid "Specifies the capacity of this resource." +msgstr "Especifica la capacidad de este recurso." + +#: ../lib/modules/kolabSharedFolder.inc:163 +msgid "Specifies the folder type (e.g. shared mail folder)." +msgstr "Especifica el tipo de carpeta (p.ej. carpeta de correo compartido)." + +#: ../lib/modules/customFields.inc:157 +msgid "Specifies the maximum allowed file size in bytes." +msgstr "Especifica el tamaño máximo de archivo en bytes." + +#: ../lib/modules/mitKerberos.inc:137 ../lib/modules/heimdalKerberos.inc:111 +msgid "Specifies the maximum lifetime of a ticket in days." +msgstr "Especifica el tiempo de vida máximo de un ticket, en días." + +#: ../lib/modules/ppolicy.inc:117 +msgid "" +"Specifies the maximum number of seconds before a password is due to expire " +"that expiration warning messages will be returned to a user." +msgstr "" +"Especifica el máximo número de segundos antes que una contraseña está por " +"expirar y mensajes de advertencia de expiración serán mostrados al usuario." + +#: ../lib/modules/freeRadius.inc:109 +msgid "" +"Specifies the maximum number of seconds that a connection can be idle before " +"the session is terminated." +msgstr "" +"Especifica el número máximo de segundos que una conexión puede permanecer " +"inactiva antes de terminar la sesión." + +#: ../lib/modules/mitKerberos.inc:133 ../lib/modules/heimdalKerberos.inc:115 +msgid "Specifies the maximum renewable lifetime of a ticket in days." +msgstr "Especifica el tiempo renovable máximo de un ticket, en días." + +#: ../lib/modules/ppolicy.inc:121 +msgid "" +"Specifies the minimum number of characters that will be accepted in a " +"password." +msgstr "" +"Especifica el mínimo número de caracteres que se aceptarán en una contraseña." + +#: ../help/help.inc:163 +msgid "Specifies the number of above password rules that must be fulfilled." +msgstr "Especifica el número de reglas de contraseñas que deben ser cumplidas." + +#: ../lib/modules/ppolicy.inc:109 +msgid "" +"Specifies the number of consecutive failed login attempts after which the " +"password may not be used to login." +msgstr "" +"Especifica el número de intentos fallidos de acceso después del cual la " +"contraseña no puede ser usada para loguearse." + +#: ../lib/modules/ppolicy.inc:93 +msgid "" +"Specifies the number of previously used passwords which should be saved in " +"the password history. New passwords can only be set if they are not in the " +"password history." +msgstr "" +"Especifica el número de contraseñas ya utilizadas son guardadas en el " +"historial. Las nuevas contraseñas puede solamente setearse si no están en el " +"historial." + +#: ../lib/modules/ppolicy.inc:113 +msgid "" +"Specifies the number of seconds after which old consecutive failed login " +"attempts are purged from the failure counter, even though no successful " +"authentication has occurred." +msgstr "" +"Especifica el número de segundos después del cual los viejos intentos " +"fallidos de acceso son purgados desde el contador, aunque hayan sucedido " +"autenticaciones no exitosas." + +#: ../lib/modules/ppolicy.inc:105 +msgid "" +"Specifies the number of seconds during which the password cannot be used to " +"login due to too many consecutive failed bind attempts." +msgstr "" +"Especifica el número de segundos durante el cual la contraseña no puede ser " +"usada para loguearse debido a demasiados intentos fallidos consecutivos." + +#: ../lib/modules/eduPerson.inc:93 ../lib/modules/eduPerson.inc:97 +msgid "" +"Specifies the person's affiliation within a particular security domain in " +"broad categories such as student, faculty, staff, alum, etc." +msgstr "" +"Especifica la asociación de la persona dentro de un dominio en particular, " +"para la seguridad de amplias categorías como estudiante, profesores, " +"personal, alumnos, etc." + +#: ../lib/modules/eduPerson.inc:89 +msgid "" +"Specifies the person's primary relationship to the institution in broad " +"categories such as student, faculty, staff, alum, etc." +msgstr "" +"Especifica la relación principal de la persona o institución en las " +"categorías generales tales como estudiantes, profesores, personal, alumnos, " +"etc." + +#: ../lib/modules/eduPerson.inc:106 ../lib/modules/eduPerson.inc:110 +msgid "" +"Specifies the person's relationships to the institution in broad categories " +"such as student, faculty, staff, alum, etc." +msgstr "" +"Especifica la relación de la persona con la institución en categorías " +"amplias como estudiante, facultad, personal, alumnos, etc." + +#: ../lib/modules/bindDLZ.inc:173 ../lib/modules/bindDLZ.inc:177 +msgid "" +"Specifies the priority of this entry (lower value means more preferred)." +msgstr "" +"Especifica la prioridad de esta entrada (menor valor significa más " +"preferido)." + +#: ../lib/modules/pykotaGroup.inc:126 ../lib/modules/pykotaUser.inc:129 +msgid "" +"Specifies the type of limit for printing if any. Please note that in " +"contrast to \"Free printing\" the option \"No quota\" includes accounting." +msgstr "" +"Especifica el tipo de límite para impresión si corresponde. Por favor note " +"que en contraste con \"Free printing\" la opción \"No quota\" incluye conteo." + +#: ../lib/modules/bindDLZ.inc:189 ../lib/modules/bindDLZ.inc:193 +msgid "Specifies the used port for this entry." +msgstr "Especifica el puerto usado para esta entrada." + +#: ../lib/modules/asteriskAccount.inc:176 +msgid "Specifies the user's pickup group." +msgstr "Especifica el grupo de captura del usuario." + +#: ../lib/modules/bindDLZ.inc:181 ../lib/modules/bindDLZ.inc:185 +msgid "Specifies the weight of this entry (relative value)." +msgstr "Especifica el peso de esta entrada (valor relativo)." + +#: ../lib/modules/zarafaUser.inc:109 +msgid "" +"Specifies whether the user is an admin. System administrators may " +"additionally create, modify and delete companies." +msgstr "" +"Especifica si el usuario es un administrador. Los administradores de " +"sistemas adicionalmente pueden crear, modificar y eliminar empresas." + +#: ../lib/modules/ppolicy.inc:137 +msgid "" +"Specifies whether the user's existing password must be sent along with their " +"new password when changing a password. Attention, LAM does not support " +"password changes which require the old password." +msgstr "" +"Especifica si la contraseña actual de usuario debe ser enviada durante el " +"cambio de contraseña. Atención, LAM no soporta cambios de contraseña que " +"requieran la contraseña anterior." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1460 +msgid "Specify attributes and values" +msgstr "Especificar atributos y valores" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +msgid "Standard LDAP search filter. Example: (&(sn=Smith)(givenName=David))" +msgstr "" +"Filtro de búsqueda LDAP estandard. Ejemplo: (&(sn=Smith)(givenName=David))" + +#: ../templates/serverInfo.php:193 ../templates/serverInfo.php:199 +msgid "Start time" +msgstr "Tiempo de comienzo" + +#: ../lib/modules/windowsUser.inc:168 ../lib/modules/windowsUser.inc:338 +#: ../lib/modules/windowsUser.inc:512 ../lib/modules/windowsUser.inc:545 +#: ../lib/modules/windowsUser.inc:712 ../lib/modules/windowsUser.inc:1600 +#: ../lib/modules/windowsUser.inc:1733 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:190 ../lib/modules/inetOrgPerson.inc:515 +#: ../lib/modules/inetOrgPerson.inc:557 ../lib/modules/inetOrgPerson.inc:780 +#: ../lib/modules/inetOrgPerson.inc:784 ../lib/modules/inetOrgPerson.inc:1261 +#: ../lib/modules/inetOrgPerson.inc:1264 ../lib/modules/inetOrgPerson.inc:1910 +#: ../lib/modules/inetOrgPerson.inc:2599 ../lib/modules/inetOrgPerson.inc:3519 +#: ../lib/modules/inetOrgPerson.inc:3579 +msgid "State" +msgstr "Estado" + +#: ../templates/pdfedit/pdfpage.php:538 ../templates/pdfedit/pdfpage.php:540 +msgid "Static text" +msgstr "Texto estático" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1455 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1467 +#, php-format +msgid "Step %s of %s" +msgstr "Paso %s de %s" + +#: ../lib/modules/windowsUser.inc:280 ../lib/modules/inetOrgPerson.inc:308 +msgid "Steve" +msgstr "Steve" + +#: ../lib/modules/sambaSamAccount.inc:421 ../lib/modules/posixAccount.inc:350 +#: ../lib/modules/windowsUser.inc:292 ../lib/modules/windowsUser.inc:298 +#: ../lib/modules/pykotaUser.inc:201 ../lib/modules/inetOrgPerson.inc:2037 +#: ../lib/modules/asteriskVoicemail.inc:174 +msgid "Steve Miller" +msgstr "Steve Miller" + +#: ../lib/modules/posixAccount.inc:358 +msgid "Steve Miller,Room 2.14,123-123-1234,123-123-1234" +msgstr "Steve Miller,hab 2.14,123-123-1234,123-123-1234" + +#: ../lib/modules/eduPerson.inc:190 +msgid "Steve, Stevo" +msgstr "Steve, Stevo" + +#: ../lib/modules/imapAccess.inc:91 +msgid "" +"Storing the password in your server profile is also possible but not " +"recommended." +msgstr "" +"Almacenar la contraseña en su perfil de servidor es también posible pero no " +"recomendado." + +#: ../lib/modules/windowsUser.inc:172 ../lib/modules/windowsUser.inc:314 +#: ../lib/modules/windowsUser.inc:513 ../lib/modules/windowsUser.inc:544 +#: ../lib/modules/windowsUser.inc:708 ../lib/modules/windowsUser.inc:1601 +#: ../lib/modules/windowsUser.inc:1732 ../lib/modules/inetOrgPerson.inc:81 +#: ../lib/modules/inetOrgPerson.inc:158 ../lib/modules/inetOrgPerson.inc:178 +#: ../lib/modules/inetOrgPerson.inc:377 ../lib/modules/inetOrgPerson.inc:545 +#: ../lib/modules/inetOrgPerson.inc:664 ../lib/modules/inetOrgPerson.inc:668 +#: ../lib/modules/inetOrgPerson.inc:1225 ../lib/modules/inetOrgPerson.inc:1228 +#: ../lib/modules/inetOrgPerson.inc:1895 ../lib/modules/inetOrgPerson.inc:2522 +#: ../lib/modules/inetOrgPerson.inc:3511 ../lib/modules/inetOrgPerson.inc:3576 +msgid "Street" +msgstr "Calle" + +#: ../templates/pdfedit/pdfpage.php:449 ../templates/pdfedit/pdfmain.php:353 +msgid "Structure name" +msgstr "Nombre de la estructura" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:136 +#: ../templates/3rdParty/pla/htdocs/export_form.php:33 +msgid "Sub (entire subtree)" +msgstr "Sub (Arbol entero)" + +#: ../lib/types/netgroup.inc:93 ../lib/modules/nisnetgroup.inc:91 +#: ../lib/modules/nisnetgroup.inc:126 ../lib/modules/nisnetgroup.inc:141 +#: ../lib/modules/nisnetgroup.inc:209 ../lib/modules/nisnetgroup.inc:383 +#: ../lib/modules/nisnetgroup.inc:581 +msgid "Subgroups" +msgstr "Subgrupos" + +#: ../templates/config/confmain.php:349 ../lib/modules/selfRegistration.inc:94 +#: ../lib/modules/selfRegistration.inc:231 +#: ../lib/modules/passwordSelfReset.inc:120 +#: ../lib/modules/passwordSelfReset.inc:539 +#: ../lib/modules/passwordSelfReset.inc:559 ../help/help.inc:248 +msgid "Subject" +msgstr "Asunto" + +#: ../lib/types/dhcp.inc:94 ../lib/modules/dhcp_settings.inc:149 +#: ../lib/modules/dhcp_settings.inc:207 ../lib/modules/dhcp_settings.inc:222 +#: ../lib/modules/dhcp_settings.inc:242 ../lib/modules/dhcp_settings.inc:561 +#: ../lib/modules/dhcp_settings.inc:685 +msgid "Subnet" +msgstr "Subred" + +#: ../lib/modules/dhcp_settings.inc:189 ../lib/modules/dhcp_settings.inc:215 +#: ../lib/modules/dhcp_settings.inc:233 ../lib/modules/dhcp_settings.inc:300 +#: ../lib/modules/dhcp_settings.inc:606 ../lib/modules/dhcp_settings.inc:681 +msgid "Subnet mask" +msgstr "Máscara de subred." + +#: ../templates/schema/schema.php:176 +msgid "Substring Rule" +msgstr "Regla de subcadena" + +#: ../templates/3rdParty/pla/htdocs/import.php:63 +#: ../templates/3rdParty/pla/htdocs/copy.php:56 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:68 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:85 +msgid "Success" +msgstr "Hecho" + +#: ../templates/3rdParty/pla/htdocs/delete.php:32 +#, php-format +msgid "Successfully deleted DN %s" +msgstr "DN borrado correctamente %s" + +#: ../lib/modules/sudoRole.inc:48 +msgid "Sudo role" +msgstr "Rol sudo" + +#: ../lib/types/sudo.inc:159 +#, php-format +msgid "Sudo role count: %s" +msgstr "Conteo de roles sudo: %s" + +#: ../lib/types/sudo.inc:48 +msgid "Sudo role management" +msgstr "Adminstración de roles sudo" + +#: ../lib/types/sudo.inc:39 +msgid "Sudo roles" +msgstr "Roles sudo" + +#: ../lib/modules/sudoRole.inc:139 +msgid "Sudo roles with higher order numbers are used if multiple roles match." +msgstr "" +"Roles sudo con mayor orden de número son utilizados si corresponden " +"múltiples roles." + +#: ../lib/modules/nisMailAliasUser.inc:92 +#: ../lib/modules/nisMailAliasUser.inc:362 ../lib/modules.inc:988 +msgid "Suffix" +msgstr "Sufijo" + +#: ../lib/modules/posixGroup.inc:416 ../lib/modules/posixGroup.inc:516 +msgid "Suffix for GID/group name check" +msgstr "Sufijo para chequeo de nombre GID/grupo" + +#: ../lib/modules/posixAccount.inc:224 ../lib/modules/posixAccount.inc:242 +#: ../lib/modules/posixAccount.inc:489 +msgid "Suffix for UID/user name check" +msgstr "Sufijo para chequeo de nombre UID/usuario" + +#: ../lib/modules/selfRegistration.inc:102 +#: ../lib/modules/selfRegistration.inc:212 +msgid "Suffix for new users" +msgstr "Sufijo para los nuevos usuarios" + +#: ../lib/modules/sambaSamAccount.inc:1376 +msgid "Sunday" +msgstr "Domingo" + +#: ../templates/selfService/adminMain.php:602 +msgid "Switch back to default label." +msgstr "Volver atrás a la etiqueta predeterminada." + +#: ../templates/3rdParty/pla/htdocs/compare.php:72 +msgid "Switch entries" +msgstr "Intercambiar entradas" + +#: ../lib/modules/asteriskAccount.inc:96 +#: ../lib/modules/asteriskVoicemail.inc:84 +msgid "Sync Asterisk password with Unix password" +msgstr "Sincronizar la contraseña de Asterisk con la de UNIX." + +#: ../lib/modules/heimdalKerberos.inc:242 +msgid "Sync Heimdal Kerberos password with Unix password" +msgstr "Sincronizar la contraseña Heimdal Kerberos con la de UNIX." + +#: ../lib/modules/mitKerberos.inc:277 +msgid "Sync MIT Kerberos password with Unix password" +msgstr "Sincronizar la contraseña MIT Kerberos con la de UNIX." + +#: ../lib/modules/passwordSelfReset.inc:148 +#: ../lib/modules/passwordSelfReset.inc:529 +msgid "Sync Samba 3 password" +msgstr "Sincronizar contraseña de Samba 3" + +#: ../lib/modules/sambaSamAccount.inc:248 +msgid "Sync Samba LM password with Unix password" +msgstr "Sincroniza la contraseña de SAMBA con la de UNIX." + +#: ../lib/modules/sambaSamAccount.inc:247 +msgid "Sync Samba NT password with Unix password" +msgstr "Sincroniza la contraseña de SAMBA NT con la de UNIX." + +#: ../lib/modules/customFields.inc:1111 +msgid "Sync fields with page layout" +msgstr "Sincronizar los campos con el layout de la página" + +#: ../templates/schema/schema.php:181 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:142 +msgid "Syntax" +msgstr "Sintaxis" + +#: ../templates/schema/schema.php:89 +msgid "Syntax OID" +msgstr "OID de sintaxis" + +#: ../templates/schema/schema.php:73 ../templates/schema/schema.php:74 +msgid "Syntaxes" +msgstr "Sintaxis" + +#: ../lib/modules/zarafaUser.inc:602 ../lib/modules/zarafaUser.inc:1259 +msgid "System administrator" +msgstr "Administrador del sistema" + +#: ../templates/config/mainmanage.php:412 +msgid "System logging" +msgstr "Registrando en el sistema." + +#: ../help/help.inc:60 +msgid "TLS cannot be combined with ldaps://." +msgstr "TLS no puede ser combinado con ldaps://" + +#: ../lib/modules/bindDLZ.inc:118 ../lib/modules/bindDLZ.inc:370 +#: ../lib/modules/bindDLZ.inc:375 ../lib/modules/bindDLZ.inc:484 +msgid "TXT record" +msgstr "Registro TXT" + +#: ../lib/modules/bindDLZ.inc:425 ../lib/modules/bindDLZ.inc:435 +#: ../lib/modules/bindDLZ.inc:1569 +msgid "TXT records" +msgstr "Registros TXT" + +#: ../lib/modules/kolabSharedFolder.inc:158 +#: ../lib/modules/kolabSharedFolder.inc:194 +#: ../lib/modules/kolabSharedFolder.inc:240 +#: ../lib/modules/kolabSharedFolder.inc:262 +#: ../lib/modules/kolabSharedFolder.inc:292 +#: ../lib/modules/kolabSharedFolder.inc:560 +msgid "Target IMAP folder" +msgstr "Carpeta IMAP destino" + +#: ../lib/modules/kolabUser.inc:245 +msgid "Target of invitation policy is invalid!" +msgstr "El destino de la politica de invitación no es válido!" + +#: ../templates/pdfedit/pdfmain.php:317 +#: ../templates/profedit/profilemain.php:284 +msgid "Target server profile" +msgstr "Perfil de servidor destino" + +#: ../templates/help.php:89 ../lib/modules.inc:660 +msgid "Technical name" +msgstr "Nombre técnico" + +#: ../templates/lists/changePassword.php:285 ../lib/types/user.inc:203 +#: ../lib/modules/windowsUser.inc:176 ../lib/modules/windowsUser.inc:362 +#: ../lib/modules/windowsUser.inc:514 ../lib/modules/windowsUser.inc:542 +#: ../lib/modules/windowsUser.inc:601 ../lib/modules/windowsUser.inc:718 +#: ../lib/modules/windowsUser.inc:1602 ../lib/modules/windowsUser.inc:1726 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:157 +#: ../lib/modules/inetOrgPerson.inc:205 ../lib/modules/inetOrgPerson.inc:417 +#: ../lib/modules/inetOrgPerson.inc:572 ../lib/modules/inetOrgPerson.inc:696 +#: ../lib/modules/inetOrgPerson.inc:700 ../lib/modules/inetOrgPerson.inc:1382 +#: ../lib/modules/inetOrgPerson.inc:1385 ../lib/modules/inetOrgPerson.inc:1900 +#: ../lib/modules/inetOrgPerson.inc:2478 ../lib/modules/inetOrgPerson.inc:3529 +#: ../lib/modules/inetOrgPerson.inc:3582 +msgid "Telephone number" +msgstr "Número de teléfono" + +#: ../lib/modules/inetOrgPerson.inc:355 +msgid "Temp" +msgstr "Temp" + +#: ../lib/modules/windowsUser.inc:310 ../lib/modules/pykotaUser.inc:228 +#: ../lib/modules/inetOrgPerson.inc:331 +msgid "Temp, contract till December" +msgstr "Temp, contrato hasta diciembre" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +msgid "Template" +msgstr "Plantilla" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:520 +msgid "Templates" +msgstr "Plantillas" + +#: ../lib/modules/sambaSamAccount.inc:390 +#: ../lib/modules/sambaSamAccount.inc:608 +#: ../lib/modules/sambaSamAccount.inc:1289 +msgid "Terminal server options" +msgstr "Opciones de terminal server." + +#: ../lib/tools/tests.inc:44 +msgid "Tests" +msgstr "Comprobar" + +#: ../templates/config/confmain.php:364 ../lib/modules/selfRegistration.inc:69 +#: ../lib/modules/selfRegistration.inc:238 ../lib/modules/bindDLZ.inc:156 +#: ../lib/modules/bindDLZ.inc:160 ../lib/modules/bindDLZ.inc:370 +#: ../lib/modules/bindDLZ.inc:1238 ../lib/modules/bindDLZ.inc:1572 +#: ../lib/modules/passwordSelfReset.inc:124 +#: ../lib/modules/passwordSelfReset.inc:134 +#: ../lib/modules/passwordSelfReset.inc:543 +#: ../lib/modules/passwordSelfReset.inc:563 ../help/help.inc:250 +msgid "Text" +msgstr "Texto" + +#: ../lib/modules/bindDLZ.inc:1235 +msgid "Text (\"TXT\" records)" +msgstr "Texto (registros \"TXT\")" + +#: ../lib/modules/customFields.inc:2587 +msgid "Text area" +msgstr "Campo de texto" + +#: ../templates/pdfedit/pdfpage.php:617 ../lib/modules/customFields.inc:1885 +msgid "Text field" +msgstr "Campo texto" + +#: ../lib/modules/eduPerson.inc:115 +msgid "" +"The \"NetID\" of the person for the purposes of inter-institutional " +"authentication. It should be represented in the form \"user@scope\" where " +"scope defines a local security domain." +msgstr "" +"El \"NetID\" de la persona con el proposito de autentificacion inter-" +"institucional. Debe estar representado de la forma \"user@scope\", donde " +"scope determina un dominio local de seguridad.El \"NetID\" de la persona con " +"el proposito de autentificacion inter-institucional. Debe estar representado " +"de la forma \"user@scope\", donde ámbito determina un dominio local de " +"seguridad." + +#: ../lib/modules/dhcp_settings.inc:336 +msgid "The DHCP ranges were changed to fit for the new subnet." +msgstr "Los rangos de DHCP se han cambiado para adaptarse a la nueva subred." + +#: ../lib/modules/eduPerson.inc:127 +msgid "" +"The DN of the directory entry representing the institution with which the " +"person is associated." +msgstr "" +"El DN de la entrada a la representación del directorio de la institución a " +"la persona que esta asociada." + +#: ../lib/modules/eduPerson.inc:131 +msgid "" +"The DN of the directory entry representing the person's primary " +"organisational unit." +msgstr "" +"El DN de la entrada de diretorio que representa la unidad organizativa de la " +"persona principal." + +#: ../lib/modules/eduPerson.inc:135 ../lib/modules/eduPerson.inc:139 +msgid "" +"The DNs of the directory entries representing the person's organisational " +"units." +msgstr "" +"El DNs para el directorio que representan las unidades de organizativas de " +"la persona" + +#: ../lib/modules/posixGroup.inc:513 +msgid "" +"The ID of this group was changed. You can update all user and host entries " +"to the new group ID." +msgstr "" +"Se cambió el ID de este grupo. Puede actualizar todas las entradas de " +"usuarios y equipos al nuevo ID de grupo." + +#: ../lib/modules/imapAccess.inc:179 +msgid "The IMAP admin password is empty." +msgstr "La contraseña de administrador IMAP está vacía." + +#: ../templates/config/mainmanage.php:100 +#: ../templates/config/mainmanage.php:122 ../lib/modules/bindDLZ.inc:488 +#: ../lib/modules/bindDLZ.inc:489 +#, php-format +msgid "The IP address %s is invalid!" +msgstr "La direccion IP %s es inválida" + +#: ../lib/modules/fixed_ip.inc:498 +msgid "The IP address does not match the subnet." +msgstr "La dirección IP no coincide con la subred." + +#: ../lib/modules/fixed_ip.inc:501 +msgid "The IP address is already in use." +msgstr "La direccion IP ya está en uso" + +#: ../lib/modules/ipHost.inc:115 ../lib/modules/ipHost.inc:116 +#: ../lib/modules/asteriskAccount.inc:574 +#: ../lib/modules/asteriskAccount.inc:575 ../lib/modules/ppolicyUser.inc:96 +#: ../lib/modules/range.inc:418 ../lib/modules/range.inc:435 +#: ../lib/modules/freeRadius.inc:249 ../lib/modules/freeRadius.inc:250 +#: ../lib/modules/fixed_ip.inc:493 +msgid "The IP address is invalid." +msgstr "La direccion IP es inválida" + +#: ../lib/modules/fixed_ip.inc:107 +msgid "The IP address of the PC." +msgstr "La dirección IP del PC." + +#: ../lib/modules/dhcp_settings.inc:162 +msgid "" +"The IP addresses of the DNS servers. Multiple addresses are separated by \"," +"\". Example: 192.168.0.10, 192.168.0.11" +msgstr "" +"Las direcciones IP de los servidores DNS. Las direcciones múltiples se " +"delimitan por \",\". Ejemplo: 192.168.0.10, 192.168.0.11" + +#: ../lib/modules/dhcp_settings.inc:170 +msgid "" +"The IP addresses of the Netbios name servers (e.g. \"123.123.123.123, " +"123.123.123.124\")." +msgstr "" +"Las direcciónes IP para el servidor de nombres Netbios. (p.ej. " +"\"123.123.123.123, 123.123.123.124\")." + +#: ../lib/modules/range.inc:422 ../lib/modules/range.inc:437 +msgid "The IP does not match the subnet." +msgstr "La IP no coincide con la subred." + +#: ../lib/modules/mitKerberos.inc:153 ../lib/modules/heimdalKerberos.inc:158 +msgid "The Kerberos realm for this account." +msgstr "El reino Kerberos para esta cuenta." + +#: ../lib/modules/heimdalKerberos.inc:99 +msgid "The Kerberos realm of this user." +msgstr "El reino Kerberos de este usuario." + +#: ../lib/modules/fixed_ip.inc:103 +msgid "The MAC address of the PC. Example: 11:22:33:44:55:aa" +msgstr "La dirección MAC para el PC. Por ejemplo: 11:22:33:44:55:aa" + +#: ../lib/modules/dhcp_settings.inc:328 ../lib/modules/dhcp_settings.inc:329 +msgid "The Netbios server is invalid." +msgstr "El Netbios es invalido" + +#: ../lib/modules/fixed_ip.inc:456 +msgid "The PC name may not be longer than 20 characters." +msgstr "El nombre del PC puede no ser mayor de 20 caracteres." + +#: ../lib/modules/fixed_ip.inc:465 +msgid "The PC name may only contain A-Z, a-z and 0-9." +msgstr "El nombre del PC solo puede contener A-Z, a-z y 0-9." + +#: ../lib/modules/fixed_ip.inc:459 +msgid "The PC name needs to be at least 2 characters long." +msgstr "El nombre del PC necesita ser como minimo de dos caractares " + +#: ../help/help.inc:205 +msgid "" +"The PDF structure defines what information is exported as PDF file and how " +"the pages are structured. You can manage the PDF structures in the PDF " +"editor (under \"Tools\")." +msgstr "" +"La estructura PDF define que información es exportada como archivo PDF y " +"como las páginas son estructuradas. Puede administrar las estructuras PDF " +"con un editor PDF (bajo \"Herramientas\")." + +#: ../templates/3rdParty/pla/htdocs/create.php:44 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:38 +#: ../lib/modules/selfRegistration.inc:571 +msgid "The RDN field is empty." +msgstr "El campo RDN está vacío" + +#: ../lib/modules/freeRadius.inc:93 +msgid "The Radius realm of this account." +msgstr "El reino Radius de esta cuenta." + +#: ../lib/modules/sambaDomain.inc:82 +msgid "The SID of your Samba server. Get it with \"net getlocalsid\"." +msgstr "El SID de su servidor Samba. Obténgalo tecleando \"net getlocalsid\"." + +#: ../templates/selfService/selfServiceLogin.php:141 +#: ../templates/selfService/selfServiceMain.php:168 +msgid "The TLS encryption could not be started." +msgstr "Imposible iniciar la encripción TLS." + +#: ../lib/modules/posixAccount.inc:99 +msgid "" +"The UID ranges for users and hosts overlap! This is a problem because LAM " +"uses the highest UID in use + 1 for new accounts. Please set the minimum UID " +"to equal values or use independent ranges." +msgstr "" +"¡Los rangos de UIDs de usuarios y equipos se solapan! Esto es un problema, " +"ya que LAM usa el mayor UID en uso + 1 para cuentas nuevas. Por favor, " +"establezca el UID mínimo a valores iguales, o utilice rangos independientes." + +#: ../lib/modules/zarafaServer.inc:77 +msgid "The Unix socket or named pipe to the server." +msgstr "Socket Unix o nombre de proceso al servidor" + +#: ../lib/modules/asteriskVoicemail.inc:215 +#: ../lib/modules/asteriskVoicemail.inc:216 +msgid "The account context is invalid." +msgstr "El contexto de la cuenta es inválida." + +#: ../lib/modules/asteriskAccount.inc:112 +#: ../lib/modules/asteriskExtension.inc:99 +#: ../lib/modules/asteriskVoicemail.inc:92 +msgid "The account context stores information about the dial plan." +msgstr "" +"El contexto de esta cuenta almacena información acerca del plan de " +"numeración." + +#: ../lib/modules/asteriskAccount.inc:566 +#: ../lib/modules/asteriskAccount.inc:567 +msgid "The account type is invalid." +msgstr "El tipo de cuenta es inválida." + +#: ../lib/modules/freeRadius.inc:105 +msgid "The account will be locked after this date." +msgstr "La cuenta será bloqueada tras esta fecha." + +#: ../help/help.inc:191 +msgid "The account will be saved under this LDAP suffix." +msgstr "Se añadirá una nueva cuenta bajo este sufijo LDAP." + +#: ../lib/modules/bindDLZ.inc:490 ../lib/modules/bindDLZ.inc:491 +#, php-format +msgid "The alias name \"%s\" is invalid." +msgstr "El nombre alias \"%s\" es inválido." + +#: ../lib/modules/bindDLZ.inc:129 +msgid "The alias name for this entry." +msgstr "Los alias para esta cuenta." + +#: ../lib/modules/passwordSelfReset.inc:230 +#, php-format +msgid "The answer needs to be at least %s characters long." +msgstr "La respuesta necesita una longitud de al menos %s caracteres." + +#: ../lib/modules/passwordSelfReset.inc:1211 +msgid "The answer to the security question is wrong." +msgstr "La respuesta a la pregunta de seguridad es incorrecta." + +#: ../templates/tests/schemaTest.php:128 +#, php-format +msgid "" +"The attribute %s is not supported for the object class %s by your LDAP " +"server." +msgstr "" +"El atributo %s no está admitido por la clase de objeto %s para su servidor " +"LDAP." + +#: ../templates/3rdParty/pla/lib/import_functions.php:531 +#, php-format +msgid "The attribute to modify doesn't match the one specified by %s." +msgstr "El atributo a modificar no se corresponde con el especificado en %s." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:31 +msgid "The attribute value does not exist" +msgstr "El valor del atributo no existe." + +#: ../lib/modules/asteriskAccount.inc:556 +#: ../lib/modules/asteriskAccount.inc:558 +msgid "The caller ID format is invalid." +msgstr "El formato de caller ID es inválido." + +#: ../lib/modules/puppetClient.inc:186 ../lib/modules/puppetClient.inc:187 +msgid "The class names may only contain ASCII characters." +msgstr "Los nombres de clases sólo pueden contener caracteres ASCII." + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:404 +msgid "The config file is not writable." +msgstr "El archivo de configuración no es escribible." + +#: ../templates/3rdParty/pla/htdocs/create.php:29 +#: ../templates/3rdParty/pla/htdocs/copy.php:34 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:23 +#, php-format +msgid "The container you specified (%s) does not exist. Please try again." +msgstr "El contenedor que especificó (%s) no existe. Pruebe de nuevo." + +#: ../lib/modules/dhcp_settings.inc:326 ../lib/modules/dhcp_settings.inc:327 +msgid "The default gateway is invalid." +msgstr "La puerta de enlaces es invalida" + +#: ../lib/modules/qmailUser.inc:260 +msgid "The default interpretation of .qmail files." +msgstr "El interpretación predeterminada de los archivos .qmail" + +#: ../templates/3rdParty/pla/htdocs/copy.php:31 +#, php-format +msgid "The destination entry (%s) already exists." +msgstr "La entrada destino (%s) ya existe." + +#: ../lib/modules/dhcp_settings.inc:338 ../lib/modules/dhcp_settings.inc:339 +msgid "" +"The domain name includes invalid characters. Valid characters are A-Z, a-z, " +"0-9, \".\", \"_\",\"-\"." +msgstr "" +"El nombre del domio contiene carácteres inválidos. Los caracteres válidos " +"son: a-z, A-Z, 0-9 y -." + +#: ../lib/modules/dhcp_settings.inc:146 +msgid "The domain name of the subnet." +msgstr "Nombre de dominio de subred" + +#: ../lib/modules/asteriskVoicemail.inc:220 +#: ../lib/modules/asteriskVoicemail.inc:221 +msgid "The email address is invalid." +msgstr "La dirección de correo electrónico es inválida" + +#: ../lib/modules/range.inc:96 +msgid "The ending IP address of the range." +msgstr "El final del rango de direcciones IP" + +#: ../lib/modules/dhcp_settings.inc:330 +msgid "The entered Netbios node type does not exist." +msgstr "El tipo de nodo de Netbios introducido no existe." + +#: ../templates/3rdParty/pla/htdocs/update.php:27 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:22 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:21 +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:24 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:23 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:20 +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:24 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:20 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:27 +#, php-format +msgid "The entry (%s) does not exist." +msgstr "La entrada (%s) no existe." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:27 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:28 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:34 +msgid "The entry does not exist and will be ignored" +msgstr "La entrada no existe y será ignorada" + +#: ../lib/modules/puppetClient.inc:184 ../lib/modules/puppetClient.inc:185 +msgid "The environment name may only contain ASCII characters." +msgstr "El nombre de entorno sólo puede contener caracteres ASCII." + +#: ../lib/modules/shadowAccount.inc:67 +msgid "The expiration date is invalid." +msgstr "La fecha de caducidad es inválida." + +#: ../lib/modules/freeRadius.inc:257 ../lib/modules/freeRadius.inc:258 +msgid "The expiration date must be in format DD.MM.YYYY HH:MM." +msgstr "La fecha de caducidad debe estar en el formato DD.MM.YYYY HH:MM" + +#: ../lib/modules/bindDLZ.inc:512 ../lib/modules/bindDLZ.inc:513 +#, php-format +msgid "The expiration time \"%s\" must be a number." +msgstr "El tiempo de expiración \"%s\" debe ser un número." + +#: ../lib/modules/asteriskAccount.inc:560 +#: ../lib/modules/asteriskAccount.inc:561 +msgid "The extension context is invalid." +msgstr "El contexto de la extensión es inválido." + +#: ../lib/pdfstruct.inc:262 +msgid "The file must not exeed 2000x300px." +msgstr "El archivo no debe exceder 2000x300px." + +#: ../lib/pdfstruct.inc:249 +msgid "The file name must end with \".png\" or \".jpg\"." +msgstr "El nombre de archivo debe finalizar con \".png\" o \".jpg\"." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "The file you chose is either empty or does not exist." +msgstr "El archivo que eligió o bien está vacío o no existe." + +#: ../templates/3rdParty/pla/lib/Template.php:412 +#: ../templates/3rdParty/pla/lib/Template.php:499 +msgid "" +"The file you selected was only partially uploaded, likley due to a network " +"error." +msgstr "" +"El archivo que seleccionó fue solamente subido parcialmente, seguramente " +"debido a un error de la red." + +#: ../templates/3rdParty/pla/lib/Template.php:402 +#: ../templates/3rdParty/pla/lib/Template.php:407 +#: ../templates/3rdParty/pla/lib/Template.php:489 +#: ../templates/3rdParty/pla/lib/Template.php:494 +msgid "" +"The file you uploaded is too large. Please check php.ini, upload_max_size " +"setting" +msgstr "" +"El archivo que ha subido es demasiado largo. Por favor verifique el " +"parámetro upload_max_size en php.ini" + +#: ../lib/modules/kolabSharedFolder.inc:159 +msgid "" +"The folder on the server where the shared folder is located (e.g. user/" +"myfolder@example.com)." +msgstr "" +"La carpeta del servidor donde la carpeta compartida está ubicada (p.ej " +"usuario/micarpeta@ejemplo.com)." + +#: ../lib/modules/kolabSharedFolder.inc:117 +msgid "The folder's email address." +msgstr "Carpeta de dirección de correo electrónico." + +#: ../templates/initsuff.php:180 +msgid "" +"The following suffixes are missing in LDAP. LAM can create them for you." +msgstr "" +"Los siguientes sufijos no existen en LDAP. LAM puede crearlos por usted." + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:120 +msgid "The format of the logon hours field is invalid!" +msgstr "Formato inválido para el campo \"horas de inicio de sesión\"" + +#: ../lib/modules/customScripts.inc:123 +msgid "The format of this custom script setting is invalid." +msgstr "Formato inválido para personalizar el scripts" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +msgid "The format to show the query results" +msgstr "Formato para mostrar las consultas" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "" +"The full DN of the new entry to be created when copying the source entry" +msgstr "" +"El full DN de la nueva entrada a ser creada cuando se copia la entrada origen" + +#: ../lib/modules/asteriskVoicemail.inc:218 +#: ../lib/modules/asteriskVoicemail.inc:219 +msgid "The full name is invalid." +msgstr "El nombre completo es inválido." + +#: ../templates/login.php:583 +msgid "The given user name matches multiple LDAP entries." +msgstr "Nombre de usuario que coincide con varias entradas de LDAP." + +#: ../lib/modules/ppolicy.inc:101 +msgid "" +"The grace authentication limit specifies the number of times that an expired " +"password may be used to login." +msgstr "" +"El período de gracia de autenticación especifica el número de veces que una " +"contraseña expirada puede ser utilizada para loguearse." + +#: ../lib/modules/windowsGroup.inc:147 +msgid "The group is managed by this contact person." +msgstr "El grupo es administrado por esta persona de contacto." + +#: ../lib/modules/freeRadius.inc:97 ../lib/modules/freeRadius.inc:101 +msgid "The group names for this account." +msgstr "Los nombres de grupo para esta cuenta." + +#: ../lib/modules/windowsUser.inc:221 +msgid "The groups for this account. You can insert a group name or DN." +msgstr "Grupos para esta cuenta. Usted puede insertar un nombre de grupo o DN." + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "The headline for a new section must contain at least one character." +msgstr "" +"El encabezado para una nueva sección debe contener al menos un carácter." + +#: ../lib/modules/sambaSamAccount.inc:303 ../lib/modules/windowsUser.inc:245 +msgid "The home directory will be connected under this drive letter." +msgstr "El directorio principal se conectara bajo la letra" + +#: ../lib/modules/windowsHost.inc:87 +msgid "The host is managed by this contact person." +msgstr "El host es administrador por esta persona de contacto." + +#: ../lib/modules/bindDLZ.inc:497 ../lib/modules/bindDLZ.inc:498 +#: ../lib/modules/bindDLZ.inc:524 ../lib/modules/bindDLZ.inc:525 +#, php-format +msgid "The host name \"%s\" is invalid." +msgstr "El nombre de host \"%s\" es inválido." + +#: ../lib/modules/bindDLZ.inc:82 ../lib/modules/bindDLZ.inc:141 +#: ../lib/modules/bindDLZ.inc:145 +msgid "The host name for this entry." +msgstr "El nombre de host para esta entrada." + +#: ../lib/modules/asteriskAccount.inc:563 +#: ../lib/modules/asteriskAccount.inc:564 ../lib/modules/bindDLZ.inc:470 +#: ../lib/modules/bindDLZ.inc:471 +msgid "The host name is invalid." +msgstr "El nombre de equipo es inválido." + +#: ../lib/modules/windowsUser.inc:133 ../lib/modules/inetOrgPerson.inc:837 +msgid "The initials of the user's first names." +msgstr "Iniciales del usuario" + +#: ../lib/modules/ddns.inc:94 +msgid "" +"The key enables the DHCP server to perform DNS updates. The key is generated " +"with \"genDDNSkey\"." +msgstr "" +"Clave que permite al servidor DHCP realizar actualizaciones en el DNS. La " +"clave se genera con \"genDDNSKey\"." + +#: ../lib/modules/dhcp_settings.inc:324 ../lib/modules/dhcp_settings.inc:325 +msgid "The lease time is invalid." +msgstr "El tiempo minimo es invalido" + +#: ../lib/modules/dhcp_settings.inc:154 +msgid "" +"The lease time specifies after how many seconds the client should request a " +"new IP address." +msgstr "" +"El tiempo de arrendamiento especifica cuantos segundos tiene el cliente " +"arrendada la dirección IP." + +#: ../lib/modules/sudoRole.inc:83 ../lib/modules/sudoRole.inc:109 +msgid "The list of commands which may be run." +msgstr "Lista de comandos que pueden ser ejecutados." + +#: ../lib/modules/puppetClient.inc:93 ../lib/modules/puppetClient.inc:97 +msgid "The list of configured Puppet classes for this node (e.g. ntp)." +msgstr "La lista de clases de marionetas para este nodo (e.g. ntp)." + +#: ../lib/modules/sudoRole.inc:79 ../lib/modules/sudoRole.inc:104 +msgid "The list of hosts from which the user may run the commands." +msgstr "" +"El lkistado de equipos desde los cuales el usuario puede ejecutar los " +"comandos." + +#: ../lib/modules/customFields.inc:3013 +msgid "The list of labels contains duplicates." +msgstr "La lista de etiquetas contiene duplicados" + +#: ../lib/modules/sudoRole.inc:75 ../lib/modules/sudoRole.inc:99 +msgid "The list of users who own this sudo role and may run the commands." +msgstr "" +"Lista de usuarios quienes pueden poseer rol sudo y pueden ejecutar comandos." + +#: ../lib/modules/customFields.inc:3010 +msgid "The list of values contains duplicates." +msgstr "La lista de valores contiene duplicados" + +#: ../lib/modules/qmailGroup.inc:132 ../lib/modules/qmailGroup.inc:136 +msgid "The list's alternate email address." +msgstr "Lista de direcciones alternativas de correos electrónicos." + +#: ../lib/modules/kolabGroup.inc:88 ../lib/modules/kolabGroup.inc:92 +#: ../lib/modules/qmailGroup.inc:124 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/windowsGroup.inc:127 +msgid "The list's email address." +msgstr "Lista de correos electrónicos." + +#: ../templates/config/mainmanage.php:147 +msgid "" +"The log file is empty or contains invalid characters! Valid characters are: " +"a-z, A-Z, 0-9, /, \\, ., :, _ and -." +msgstr "" +"El fichero log esta vacio o contiene carácteres inválidos. Los caracteres " +"válidos son: a-z, A-Z, 0-9, /, \\, ., :, _ y -." + +#: ../lib/modules/imapAccess.inc:87 +msgid "" +"The login name of your IMAP user who has rights to create/delete mailboxes." +msgstr "" +"El nombre de acceso de su usuario IMAP tiene derechos a crear/borrar buzones " +"de correo electrónico." + +#: ../lib/modules/bindDLZ.inc:133 ../lib/modules/bindDLZ.inc:137 +msgid "The mail server for this entry." +msgstr "Servidor de correo para esta entrada." + +#: ../lib/modules/qmailUser.inc:244 +msgid "The mail server that contains the message store." +msgstr "El servidor de correo que contiene el almacenamiento de mensajes." + +#: ../lib/modules/passwordSelfReset.inc:234 +msgid "" +"The mail text for confirmation mails must include the wildcard @@resetLink@@." +msgstr "" +"El texto para correos de confirmación debe incluir el comodín @@resetLink@@." + +#: ../help/help.inc:251 +msgid "The mail text of all password mails." +msgstr "Texto para todos los correos electrónicos de contraseñas" + +#: ../lib/modules/selfRegistration.inc:70 +msgid "The mail text of the confirmation mail." +msgstr "El texto del mensaje del correo electrónico de confirmación" + +#: ../lib/modules/passwordSelfReset.inc:125 +#: ../lib/modules/passwordSelfReset.inc:135 +msgid "The mail text of the mails." +msgstr "El texto de los mensajes." + +#: ../lib/modules/asteriskVoicemail.inc:210 +#: ../lib/modules/asteriskVoicemail.inc:212 +msgid "The mailbox format is invalid." +msgstr "El formato de buzón de correo es inválido." + +#: ../lib/modules/dhcp_settings.inc:332 ../lib/modules/dhcp_settings.inc:333 +msgid "The maximum lease time is invalid." +msgstr "El maximo permitio para la fecha de caducidad es inválido" + +#: ../lib/modules/dhcp_settings.inc:158 +msgid "" +"The maximum lease time specifies after how many seconds the client must " +"request a new IP address." +msgstr "" +"El tiempo de arrendamiento máximo especifica cuantos segundos tiene el " +"cliente para renovar la dirección IP." + +#: ../lib/modules/kolabUser.inc:175 +msgid "The maximum mailbox size in MB." +msgstr "El tamaño máximo de buzón de correo en MB." + +#: ../lib/modules/qmailUser.inc:224 +msgid "The maximum number of mails that can be stored in the user's mailbox." +msgstr "" +"La máxima cantida de correos que pueden ser almacenados en el buzón del " +"usuario." + +#: ../lib/modules/pykotaPrinter.inc:104 +msgid "" +"The maximum number of pages per job allowed on the printer. 0 means " +"unlimited." +msgstr "" +"El máximo número de páginas por trabajo que son permitidos en la impresora. " +"0 significa ilimitado." + +#: ../lib/modules/bindDLZ.inc:518 ../lib/modules/bindDLZ.inc:519 +#, php-format +msgid "The minimum time \"%s\" must be a number." +msgstr "El tiempo mínimo \"%s\" debe ser un número." + +#: ../lib/modules.inc:927 +#, php-format +msgid "The module %s is not yet ready." +msgstr "El módulo %s todavia no está listo." + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "" +"The name for that PDF-structure you submitted is not valid. A valid name " +"must consist of the following characters: 'a-z','A-Z','0-9','_','-'." +msgstr "" +"El nombre que especificó para la estructura de PDF no es válido. Un nombre " +"válido debe consistir de al menos uno de los siguientes caracteres: a-z, A-" +"Z, 0-9,'_','-','.'." + +#: ../lib/modules/asteriskExtension.inc:111 +msgid "" +"The name of a command to execute. The available commands may be listed at " +"the Asterisk command line by executing \"core show applications\"." +msgstr "" +"Nombre del comando a ejecutar. Los comandos disponibles pueden ser listados " +"en la línea de comandos Asterisk ejecutando \"core show applications\"." + +#: ../lib/modules/fixed_ip.inc:99 +msgid "The name of the PC." +msgstr "Nombre del PC" + +#: ../lib/modules/asteriskExtension.inc:103 +msgid "The name of the extension (e.g. voicemail or sip)." +msgstr "Nombre de la extensión (p.ej. buzón de voz o SIP)." + +#: ../lib/modules/kolabUser.inc:149 ../lib/modules/kolabSharedFolder.inc:155 +msgid "The name of the server where the mailbox is located." +msgstr "El nombre del servidor donde está alojado el archivo de correo." + +#: ../lib/modules/dhcp_settings.inc:150 +msgid "The name of the subnet. Example: 192.168.10.0" +msgstr "El nombre de la subred. Ejemplo: 192.168.10.0" + +#: ../lib/modules/sambaDomain.inc:78 +msgid "The name of your Windows domain or workgroup." +msgstr "" +"El nombre de su Dominio de Windows, o de su Grupo de Trabajo de Windows." + +#: ../lib/modules/bindDLZ.inc:499 ../lib/modules/bindDLZ.inc:500 +#, php-format +msgid "The name server \"%s\" is invalid." +msgstr "El nombre de servidor \"%s\" es inválido." + +#: ../lib/modules/bindDLZ.inc:149 ../lib/modules/bindDLZ.inc:153 +msgid "The name server for this zone." +msgstr "Servidor de nombre para esta zona." + +#: ../lib/modules/freeRadius.inc:89 +msgid "The net mask for the IP address." +msgstr "La máscara de subred para la dirección IP." + +#: ../lib/modules/dhcp_settings.inc:194 +msgid "" +"The net mask is derived from the subnet mask. LAM will calculate it " +"automatically." +msgstr "" +"La máscara de red se deriva de la máscara de subred. LAM lo calculará " +"automáticamente." + +#: ../lib/modules/freeRadius.inc:251 ../lib/modules/freeRadius.inc:252 +msgid "The net mask is invalid." +msgstr "La máscara de subred es inválida" + +#: ../lib/modules.inc:1177 +msgid "" +"The new password will be stored in the directory after you save this account." +msgstr "" +"La nueva contraseña será guardado en el directorio después que salve esta " +"cuenta." + +#: ../lib/modules/asteriskAccount.inc:240 +msgid "The number of milliseconds for the last qualify." +msgstr "El número de milisegundos para la última clasificación." + +#: ../lib/modules/bindDLZ.inc:509 +msgid "The number of priority, weight, port and server entries must be equal." +msgstr "" +"El número de prioridad, peso, puerto y entradas de servidor deben ser " +"iguales." + +#: ../help/help.inc:121 +msgid "" +"The number of users who may login to LAM is restricted. This can be either a " +"fixed list of DNs or LAM can search LDAP to find a DN which matches the " +"given user name." +msgstr "" +"El número de usuarios que pueden acceder a LAM esta restringido. Esto puede " +"ser por una lista fija de DNS o LDAP, LAM puede busar para encontar un DN " +"que coincide con el nombre del usuario dado." + +#: ../templates/tests/schemaTest.php:114 +#, php-format +msgid "The object class %s is not supported by your LDAP server." +msgstr "La clase objecto %s no esta soportada por tu servidor LDAP." + +#: ../lib/modules/windowsUser.inc:153 ../lib/modules/inetOrgPerson.inc:793 +#: ../lib/modules/inetOrgPerson.inc:797 +msgid "The office name of the user (e.g. YourCompany, Human Resources)." +msgstr "" +"El nombre de la oficina par a el usuario (p.ej. SuEmpresa, Recursos humanos)." + +#: ../templates/selfService/selfServiceMain.php:331 ../lib/modules.inc:1803 +msgid "The operation was stopped because of the above errors." +msgstr "La operación se detuvo a causa de los errores anteriores." + +#: ../lib/modules/asteriskVoicemail.inc:224 +#: ../lib/modules/asteriskVoicemail.inc:225 +msgid "The options have bad format." +msgstr "Las opciones tiene un mail formato." + +#: ../lib/modules/device.inc:70 ../lib/modules/device.inc:74 +msgid "The owners of this device." +msgstr "Propietarios de este dispositivo." + +#: ../lib/modules/groupOfNames.inc:94 ../lib/modules/groupOfNames.inc:98 +msgid "The owners of this group." +msgstr "Propietarios de este grupo." + +#: ../lib/modules/asteriskVoicemail.inc:222 +#: ../lib/modules/asteriskVoicemail.inc:223 +msgid "The pager number has bad format." +msgstr "El número de pager tiene un mal formato." + +#: ../lib/modules/heimdalKerberos.inc:121 +msgid "The parameter @@password@@ will be replaced with the new password." +msgstr "El parámetro @@password@@ será reemplazado con la nueva contraseña." + +#: ../lib/modules/heimdalKerberos.inc:120 +msgid "The parameter @@principal@@ will be replaced with the principal name." +msgstr "El parámetro @@password@@ será reemplazado con el nombre principal." + +#: ../templates/config/confsave.php:71 ../templates/config/confmain.php:73 +#: ../templates/config/mainlogin.php:61 +#: ../templates/selfService/adminLogin.php:54 +msgid "The password is invalid! Please try again." +msgstr "Contraseña incorrecta!. Por favor, inténtelo de nuevo." + +#: ../lib/security.inc:335 +#, php-format +msgid "The password is too short. You have to enter at least %s characters." +msgstr "" +"El password es demasiado corto. Usted tiene que introducir como minimo %s " +"caracteres" + +#: ../lib/security.inc:423 +#, php-format +msgid "" +"The password is too weak. It needs to match at least %s password complexity " +"rules." +msgstr "" +"La contraseña es demasiado débil. Necesita cumplir al menos %s reglas de " +"complejidad de la contraseña." + +#: ../lib/security.inc:413 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s different character " +"classes (upper/lower case, numbers and symbols)." +msgstr "" +"La contraseña es demasiado débil. Debes introducir al menos %s diferentes " +"clases de caracteres (mayúsculas, minúsculas, números y símbolos)." + +#: ../lib/security.inc:360 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s lower case " +"characters." +msgstr "" +"La contraseña es demasiado débil. Debes introducir al menos %s caracteres en " +"minúsculas." + +#: ../lib/security.inc:380 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s numeric characters." +msgstr "" +"La contraseña es demasiado débil. Debes introducir al menos %s caracteres " +"numéricos." + +#: ../lib/security.inc:390 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s symbolic characters." +msgstr "" +"La contraseña es demasiado débil. Debes introducir al menos %s caracteres " +"simbólicos." + +#: ../lib/security.inc:370 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s upper case " +"characters." +msgstr "" +"La contraseña es demasiado débil. Debes introducir al menos %s caracteres en " +"mayúsculas." + +#: ../lib/security.inc:442 +msgid "" +"The password is too weak. You may not use parts of the user name for the " +"password." +msgstr "" +"La contraseña es demasiado débil. No debe utilizar parte del nombre de " +"usuario como parte de la contraseña." + +#: ../lib/security.inc:452 +msgid "" +"The password is too weak. You may not use parts of user attributes for the " +"password." +msgstr "" +"La contraseña es demasiado débil. No debe utilizar parte de los atributos de " +"usuario como parte de la contraseña." + +#: ../lib/security.inc:430 +msgid "" +"The password is too weak. You may not use the user name as part of the " +"password." +msgstr "" +"La contraseña es demasiado débil. No debe utilizar el nombre de usuario como " +"parte de la contraseña." + +#: ../lib/modules/imapAccess.inc:95 +msgid "" +"The password of your IMAP admin user. The login name for the IMAP admin user " +"is stored in the LAM server profile." +msgstr "" +"Contraseña del usuario administrador IMAP. El nombre de usuario IMAP es " +"almacenado en el perfil LAM de servidor." + +#: ../templates/lists/changePassword.php:600 ../lib/modules.inc:1120 +msgid "The password was set to:" +msgstr "La contraseña fue establecida en:" + +#: ../lib/modules/bindDLZ.inc:505 ../lib/modules/bindDLZ.inc:506 +#, php-format +msgid "The port \"%s\" is invalid." +msgstr "El puerto \"%s\" es inválido." + +#: ../lib/modules/windowsUser.inc:161 ../lib/modules/inetOrgPerson.inc:673 +#: ../lib/modules/inetOrgPerson.inc:677 +msgid "The post office box of the user's address." +msgstr "El apartado de correos de la dirección del usuario." + +#: ../lib/modules/windowsUser.inc:157 ../lib/modules/inetOrgPerson.inc:681 +#: ../lib/modules/inetOrgPerson.inc:685 +msgid "The postal code of the user's address." +msgstr "El código postal de la dirección del usuario." + +#: ../lib/modules/bindDLZ.inc:495 ../lib/modules/bindDLZ.inc:496 +#, php-format +msgid "The preference \"%s\" must be a number." +msgstr "La preferencia \"%s\" debe ser un número." + +#: ../lib/modules/pykotaPrinter.inc:116 +msgid "The price for each page of a print job." +msgstr "El costo para cada página de un trabajo de impresión." + +#: ../lib/modules/pykotaPrinter.inc:112 +msgid "The price for each print job." +msgstr "El costo para cada trabajo de impresión." + +#: ../lib/modules/posixAccount.inc:466 +msgid "" +"The primary group for this account. You can insert a GID number or a group " +"name." +msgstr "" +"Grupo primario de la cuenta. Puede insertar un nombre de grupo o un numero " +"(GID)." + +#: ../lib/modules/posixAccount.inc:553 +msgid "The primary group the host should be member of." +msgstr "El grupo principal del cual el equipo debe ser miembro." + +#: ../lib/modules/posixAccount.inc:515 +msgid "The primary group the user should be member of." +msgstr "El grupo principal al cual el usuario debe pertenecer." + +#: ../lib/modules/bindDLZ.inc:501 ../lib/modules/bindDLZ.inc:502 +#, php-format +msgid "The priority \"%s\" is invalid." +msgstr "La prioridad \"%s\" es inválida." + +#: ../lib/modules/asteriskExtension.inc:107 +msgid "" +"The priority is a sequence number used to order the execution of commands. " +"Commands are executed beginning with the lowest sequence number." +msgstr "" +"La prioridad es un número de secuencia usado para ordenar la ejecución de " +"comandos. Los comandos son ejecutados comenzando con el menor número de " +"secuencia." + +#: ../lib/modules/range.inc:424 +msgid "The range conflicts with another range." +msgstr "Conflictos con otro rango." + +#: ../lib/modules/range.inc:420 +msgid "The range end needs to be greater than the range start." +msgstr "El rango final necesita ser mayor que el rango de inicio." + +#: ../lib/modules/bindDLZ.inc:514 ../lib/modules/bindDLZ.inc:515 +#, php-format +msgid "The refresh time \"%s\" must be a number." +msgstr "El tiempo de refresco \"%s\" debe ser un número." + +#: ../lib/modules/bindDLZ.inc:516 ../lib/modules/bindDLZ.inc:517 +#, php-format +msgid "The retry time \"%s\" must be a number." +msgstr "El tiempo de reintento \"%s\" debe ser un número." + +#: ../lib/modules/inetOrgPerson.inc:761 +msgid "The room number of the employee's office." +msgstr "Número de oficina del empleado." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +msgid "The scope in which to search" +msgstr "Alcance de la búsqueda" + +#: ../lib/modules/customScripts.inc:64 ../lib/modules/customScripts.inc:77 +msgid "" +"The scripts will be run on your web server in the user context of your web " +"server (e.g. apache/www-data)." +msgstr "" +"Los scripts se ejecutarán en el servidor Web en el contexto de usuario de su " +"servidor Web (p.ej. apache/www-data)" + +#: ../lib/modules/nisMailAliasUser.inc:105 +#: ../lib/modules/asteriskAccount.inc:244 ../lib/modules/qmailUser.inc:196 +#: ../lib/modules/zarafaGroup.inc:109 ../lib/modules/sambaSamAccount.inc:400 +#: ../lib/modules/posixAccount.inc:442 ../lib/modules/zarafaUser.inc:133 +#: ../lib/modules/windowsUser.inc:237 ../lib/modules/inetOrgPerson.inc:809 +#: ../lib/modules/freeRadius.inc:113 ../lib/modules/zarafaServer.inc:89 +#: ../lib/modules/qmailGroup.inc:120 ../lib/modules/organizationalRole.inc:82 +#: ../lib/modules/passwordSelfReset.inc:161 +#: ../lib/modules/windowsGroup.inc:111 ../lib/modules/groupOfNames.inc:82 +msgid "" +"The selected options will not be managed inside LAM. You can use this to " +"reduce the number of displayed input fields." +msgstr "" +"Las opciones seleccionadas no serán administradas dentro de LAM. Puede " +"utlizar esto para reducir el número de campos de entrada mostrados." + +#: ../lib/modules/bindDLZ.inc:520 ../lib/modules/bindDLZ.inc:521 +#, php-format +msgid "The serial number \"%s\" must be a number." +msgstr "El número de serie \"%s\" debe ser un número." + +#: ../lib/modules/bindDLZ.inc:221 +msgid "The serial number should be updated after each zone change." +msgstr "" +"El número de serie debería ser actualizado luego de cada cambio de zona." + +#: ../lib/modules/bindDLZ.inc:493 ../lib/modules/bindDLZ.inc:494 +#: ../lib/modules/bindDLZ.inc:507 ../lib/modules/bindDLZ.inc:508 +#, php-format +msgid "The server name \"%s\" is invalid." +msgstr "El nombre de servidor \"%s\" es inválido." + +#: ../templates/3rdParty/pla/htdocs/copy.php:38 +msgid "The source and destination DN are the same." +msgstr "El origen y destino DN son el mismo." + +#: ../lib/modules/range.inc:93 +msgid "The starting IP address of the range." +msgstr "Inicio del rango de direcciones IP." + +#: ../lib/modules/windowsUser.inc:169 ../lib/modules/inetOrgPerson.inc:781 +#: ../lib/modules/inetOrgPerson.inc:785 +msgid "The state where the user resides or works." +msgstr "Estado donde el usuario reside o trabaja." + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "The static text must contain at least one character." +msgstr "El texto estático debe contener al menos un caracter." + +#: ../lib/modules/windowsUser.inc:173 ../lib/modules/inetOrgPerson.inc:665 +#: ../lib/modules/inetOrgPerson.inc:669 +msgid "The street name of the user's address." +msgstr "El nombre de la calle de la dirección del usuario." + +#: ../help/help.inc:249 +msgid "The subject of all password mails." +msgstr "El asunto de todos los correos electrónicos de contraseñas." + +#: ../lib/modules/selfRegistration.inc:95 +#: ../lib/modules/passwordSelfReset.inc:121 +msgid "The subject of the mails." +msgstr "El asunto de los mensajes." + +#: ../lib/modules/dhcp_settings.inc:319 +msgid "The subnet is already in use." +msgstr "La subred ya esta en uso" + +#: ../lib/modules/dhcp_settings.inc:320 ../lib/modules/dhcp_settings.inc:321 +msgid "The subnet is invalid." +msgstr "La subred es inválida" + +#: ../lib/modules/dhcp_settings.inc:334 ../lib/modules/dhcp_settings.inc:335 +msgid "The subnet mask is invalid." +msgstr "La mascara de subred es invalida" + +#: ../lib/modules/dhcp_settings.inc:190 +msgid "The subnet mask of the network." +msgstr "Mascara de subred para la red" + +#: ../lib/modules/sudoRole.inc:134 +msgid "The sudo command is not valid after this date." +msgstr "El comando sudo no será válido después de esta fecha." + +#: ../lib/modules/sudoRole.inc:129 +msgid "The sudo command is not valid before this date." +msgstr "El comando sudo no será válido antes de esta fecha." + +#: ../lib/modules/sudoRole.inc:91 ../lib/modules/sudoRole.inc:119 +msgid "The sudo commands are executed with these group memberships." +msgstr "Los comandos sudo son ejecutados con estos miembros de grupo." + +#: ../lib/modules/sudoRole.inc:87 ../lib/modules/sudoRole.inc:114 +msgid "The sudo commands may be run as these users (e.g. root)." +msgstr "" +"Los comandos sudo pueden ser ejecutados como estos usuarios (p.ej. root)." + +#: ../lib/modules/bindDLZ.inc:213 +msgid "" +"The time (in seconds) a secondary server should wait before retrying a zone " +"refresh." +msgstr "" +"Tiempo (en segundos) que un servidor secundario debería esperar antes de " +"intentar un refresco de zona." + +#: ../lib/modules/bindDLZ.inc:209 +msgid "" +"The time (in seconds) that a secondary server should wait before checking " +"for zone updates." +msgstr "" +"Tiempo (en segundos) que un servidor secundario debería esperar antes de " +"verificar actualizaciones de zona." + +#: ../lib/modules/bindDLZ.inc:205 +msgid "" +"The time (in seconds) that zone data is kept on a secondary server without " +"receiving a zone refresh." +msgstr "" +"Tiempo (en segundos) que datos de zona son mantenidiso en un servidor " +"secundario sin recibir un refresco de zona." + +#: ../lib/modules/bindDLZ.inc:472 ../lib/modules/bindDLZ.inc:473 +#: ../lib/modules/bindDLZ.inc:474 ../lib/modules/bindDLZ.inc:475 +#: ../lib/modules/bindDLZ.inc:476 ../lib/modules/bindDLZ.inc:477 +#: ../lib/modules/bindDLZ.inc:478 ../lib/modules/bindDLZ.inc:479 +#: ../lib/modules/bindDLZ.inc:480 ../lib/modules/bindDLZ.inc:481 +#: ../lib/modules/bindDLZ.inc:482 ../lib/modules/bindDLZ.inc:483 +#: ../lib/modules/bindDLZ.inc:484 ../lib/modules/bindDLZ.inc:485 +#: ../lib/modules/bindDLZ.inc:486 ../lib/modules/bindDLZ.inc:487 +#, php-format +msgid "The timeout \"%s\" must be a number." +msgstr "El tiempo de expiración \"%s\" debe ser un número." + +#: ../lib/modules/bindDLZ.inc:95 ../lib/modules/bindDLZ.inc:99 +#: ../lib/modules/bindDLZ.inc:104 ../lib/modules/bindDLZ.inc:109 +#: ../lib/modules/bindDLZ.inc:114 ../lib/modules/bindDLZ.inc:119 +#: ../lib/modules/bindDLZ.inc:124 +msgid "" +"The timeout specifies how long (in seconds) a record can be cached by " +"caching DNS servers." +msgstr "" +"El tiempo de espera especifica cuanto (en segundos) un registro puede ser " +"mantenido cacheando servidores DNS." + +#: ../lib/modules/customFields.inc:3562 ../lib/modules/customFields.inc:3649 +#, php-format +msgid "The uploaded file does not have the correct file extension (%s)." +msgstr "El archivo subido no tiene una extensión correcta (%s)." + +#: ../lib/modules/customFields.inc:3558 ../lib/modules/customFields.inc:3645 +#, php-format +msgid "The uploaded file is too large (> %s bytes)." +msgstr "El archivo subido es demasiado grande (> %s bytes)." + +#: ../templates/3rdParty/pla/lib/import_functions.php:396 +msgid "The url attribute value should begin with file://." +msgstr "El valor de atributo de URL debería comenzar con file://." + +#: ../lib/modules/zarafaUser.inc:113 +msgid "The user account is non-active and login is disabled." +msgstr "La cuenta de usuario está inactiva y el acceso está deshabilitado." + +#: ../lib/modules/windowsUser.inc:202 +msgid "The user must log on using a smart card." +msgstr "El usuario debe ingresar utilizando una smart card." + +#: ../lib/modules/zarafaUser.inc:93 +msgid "The user will get warned when his mailbox reaches this limit." +msgstr "" +"El usuario será alertado cuando su buzón de correo alcance este límite." + +#: ../lib/modules/qmailUser.inc:204 +msgid "The user's alternate email address." +msgstr "Dirección alternativa de correo electrónico." + +#: ../lib/modules/asteriskAccount.inc:136 +msgid "The user's call groups." +msgstr "Grupos de llamadas del usuario." + +#: ../lib/modules/qmailUser.inc:200 ../lib/modules/windowsUser.inc:141 +#: ../lib/modules/pykotaUser.inc:117 ../lib/modules/inetOrgPerson.inc:721 +#: ../lib/modules/inetOrgPerson.inc:725 +msgid "The user's email address." +msgstr "Dirección de correo electrónico del usuario." + +#: ../lib/modules/inetOrgPerson.inc:713 ../lib/modules/inetOrgPerson.inc:717 +msgid "The user's fax number." +msgstr "Número de Fax del usuario." + +#: ../lib/modules/inetOrgPerson.inc:705 ../lib/modules/inetOrgPerson.inc:709 +msgid "The user's mobile number." +msgstr "Numero de móvil del usuario." + +#: ../lib/modules/inetOrgPerson.inc:825 ../lib/modules/inetOrgPerson.inc:829 +msgid "The user's organisation name." +msgstr "Nombre de la organización del usuario." + +#: ../lib/modules/inetOrgPerson.inc:817 ../lib/modules/inetOrgPerson.inc:821 +msgid "The user's organisational unit." +msgstr "Unidad organizacional del usuario." + +#: ../lib/modules/inetOrgPerson.inc:753 ../lib/modules/inetOrgPerson.inc:757 +msgid "The user's private telephone number." +msgstr "Número de teléfono privado del usuario." + +#: ../lib/modules/windowsUser.inc:177 ../lib/modules/inetOrgPerson.inc:697 +#: ../lib/modules/inetOrgPerson.inc:701 +msgid "The user's telephone number." +msgstr "Número de teléfono del usuario." + +#: ../lib/modules/inetOrgPerson.inc:833 +msgid "The user's unique employee number." +msgstr "Número de empleado único del usuario." + +#: ../lib/modules/windowsUser.inc:189 ../lib/modules/inetOrgPerson.inc:733 +#: ../lib/modules/inetOrgPerson.inc:737 +msgid "The user's web site (e.g. http://www.company.com)." +msgstr "El sitio web del usuario (p.ej: http://www.miempresa.com)" + +#: ../lib/modules/sambaSamAccount.inc:122 +msgid "" +"The value for the Samba 3 field \"User can/must change password\" needs to " +"be a number." +msgstr "" +"El valor del campo Samba 3 \"El usuario puede/debe cambiar su contraseña\" " +"necesita ser un número." + +#: ../lib/modules/puppetClient.inc:188 ../lib/modules/puppetClient.inc:189 +msgid "The variables may only contain ASCII characters." +msgstr "Las variables sólo pueden contener caracteres ASCII." + +#: ../lib/modules/asteriskVoicemail.inc:226 +#: ../lib/modules/asteriskVoicemail.inc:227 +msgid "The voicemail context name is invalid." +msgstr "El contexto del buzón de voz es inválido." + +#: ../lib/modules/bindDLZ.inc:503 ../lib/modules/bindDLZ.inc:504 +#, php-format +msgid "The weight \"%s\" is invalid." +msgstr "El peso \"%s\" es inválido." + +#: ../templates/3rdParty/pla/htdocs/create.php:42 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:36 +msgid "The were no attributes marked as an RDN attribute." +msgstr "No hay atributos marcados como un atributo RDN." + +#: ../lib/modules/selfRegistration.inc:71 +msgid "The wildcard for the account creation link is @@creationLink@@." +msgstr "El comodín para el enlace de creación de cuenta es @@creationLink@@." + +#: ../lib/modules/passwordSelfReset.inc:127 ../help/help.inc:254 +msgid "The wildcard for the new password is @@newPassword@@." +msgstr "El comodín para la nueva contraseña es @@newPassword@@." + +#: ../lib/modules/passwordSelfReset.inc:137 +msgid "The wildcard for the reset link is @@resetLink@@." +msgstr "El comodín para el enlace de restablecimiento es @@resetLink@@." + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:60 +#, php-format +msgid "There are %s members in group %s:" +msgstr "Hay %s miembros en el grupo %s:" + +#: ../lib/modules/posixGroup.inc:612 ../lib/modules/sambaGroupMapping.inc:605 +msgid "There are still users who have this group as their primary group." +msgstr "Todavia hay usuarios con este grupo como grupo primario." + +#: ../lib/modules/sambaGroupMapping.inc:602 +msgid "There can be only one group of this type." +msgstr "Sólo puede haber un grupo de este tipo." + +#: ../lib/modules/asteriskAccount.inc:557 +msgid "There is already another user with this caller ID." +msgstr "Ya hay otro usuario con ese caller ID." + +#: ../lib/modules/asteriskVoicemail.inc:211 +msgid "There is already another user with this mailbox name." +msgstr "Ya hay otro usuario con ese correo electrónico." + +#: ../templates/massDoUpload.php:258 +msgid "There were errors while uploading:" +msgstr "Se produjeron errores mientras se enviaba:" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:80 +#, php-format +msgid "There will be %s updates done with this mass update" +msgstr "Habrá %s actualizaciones hechas con esta actualización masiva" + +#: ../lib/modules/posixGroup.inc:501 +msgid "" +"These are the minimum and maximum numbers to use for group IDs when creating " +"new group accounts. New group accounts will always get the highest number in " +"use plus one." +msgstr "" +"Estos son los numeros máximos y mínimos a usar para IDs de grupo al crear " +"nuevas cuentas de grupo. Las nuevas cuentas de grupo tendrán asignadas el ID " +"más grande en uso +1." + +#: ../lib/modules/posixAccount.inc:454 +msgid "" +"These are the minimum and maximum numbers to use for machine IDs when " +"creating new accounts for hosts. The range should be different from that of " +"users. New host accounts will always get the highest number in use plus one." +msgstr "" +"Estos son los números máximos y minimos a usar para IDs de máquinas a la " +"hora de crear cuentas para equipos. El rango debería ser diferente al de los " +"usuarios. A las nuevas cuentas de equipos siempre se les asignará el mayor " +"ID en uso más uno." + +#: ../lib/modules/posixAccount.inc:450 +msgid "" +"These are the minimum and maximum numbers to use for user IDs when creating " +"new user accounts. The range should be different from that of machines. New " +"user accounts will always get the highest number in use plus one." +msgstr "" +"Estos son los máximos y minimos a usar para IDs de usuario a la hora de " +"crear cuentas de usuarios. El rango debiera de ser diferente al de las " +"cuentas de maquinas. A las nuevas cuentas de usuario se les asignará el ID " +"mas grande en uso +1." + +#: ../lib/modules/inetOrgPerson.inc:845 +msgid "These are the user's certificates." +msgstr "Estos son los certificados del usuario." + +#: ../lib/modules/puppetClient.inc:113 +msgid "" +"These classes will be available as autocompletion hints when adding new " +"classes." +msgstr "" +"Estas clases estarán disponibles para indicios de autocompletado cuando " +"agregue nuevas clases." + +#: ../lib/modules/nisnetgroup.inc:96 ../lib/modules/nisnetgroup.inc:100 +msgid "" +"These entries specify the members of the netgroup. You can limit the set to " +"a host name, a user name, a domain name or any combination of them." +msgstr "" +"Estas entradas especifican los miembros de un grupo de red. Tu puedes " +"limitar el conjunto de un nombre de equipo, un nombre de usuario, un nombre " +"de dominio o cualquier combinación de ellos." + +#: ../lib/modules/puppetClient.inc:117 +msgid "" +"These environments will be available as autocompletion hints when setting " +"the environment." +msgstr "" +"Estos entornos estarán disponibles para indicios de autocompletado cuando se " +"seteen." + +#: ../lib/modules/asteriskExtension.inc:123 +msgid "" +"These options change the list of potential extension owners below. You can " +"select to show Asterisk accounts or all users. It is also possible to search " +"the tree suffix if you have users which are not in the standard user suffix." +msgstr "" +"Estas opciones cambian la lista de potenciales propietarios de la extensión. " +"Puede también seleccionar para mostrar cuentas Asterisk o todos los " +"usuarios. También es posible buscar el sufijo del árbol si tiene usuarios " +"que no están en el sufijo standard." + +#: ../lib/modules/authorizedServiceObject.inc:94 +msgid "These services will show up as hint if you enter a new service." +msgstr "Estos servicios mostrarán como indicio si ingresa un nuevo servicio." + +#: ../lib/modules/posixAccount.inc:124 +msgid "" +"This GID number is invalid! Please provide either a number or a group name." +msgstr "" +"Este GID no es válido!. Por favor, entre o bien un numero de grupo o bien un " +"nombre de grupo." + +#: ../help/help.inc:235 +msgid "" +"This HTML code will be placed on top of all self service pages. E.g. you can " +"use this to place your custom logo. Any HTML code is permitted." +msgstr "" +"Este código HTML sera colocado en la parte superior de todas las páginas de " +"servicio. E.g. tu puedes usar este sitio para personalizar tu logo. " +"Cualquier código HTML esta permitido." + +#: ../lib/modules/fixed_ip.inc:462 +msgid "This PC name already exists." +msgstr "El nombre del equipo ya existe!" + +#: ../lib/modules/kolabGroup.inc:197 ../lib/modules/kolabUser.inc:292 +#: ../lib/modules/kolabSharedFolder.inc:274 +msgid "This account is marked for deletion." +msgstr "Esta cuenta está marcada para eliminar." + +#: ../lib/modules/sambaSamAccount.inc:327 +msgid "" +"This allows you to define this account as a special user like administrator " +"or guest." +msgstr "" +"Esto le permite definir la cuenta como una cuenta especial tipo Invitado o " +"Administrador." + +#: ../templates/3rdParty/pla/lib/PageRender.php:376 +msgid "This attribute is not defined in the LDAP schema" +msgstr "El atributo no está definido en el esquema LDAP" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1988 +msgid "This attribute is required" +msgstr "Este atributo es requerido" + +#: ../templates/3rdParty/pla/lib/PageRender.php:458 +msgid "This attribute is required for the RDN." +msgstr "Este atributo es requerido para el RDN." + +#: ../lib/modules/inetOrgPerson.inc:789 +msgid "This can be used to specify if the user has a car license." +msgstr "" +"Esto puedes ser usado para especificar si el usuario tiene carné de conducir." + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:64 +msgid "This change requires to add new attributes." +msgstr "Este cambio requiere añadir nuevos atributos." + +#: ../help/help.inc:137 +msgid "This changes the password of the selected profile." +msgstr "Aquí se cambia el password del perfil seleccionado." + +#: ../help/help.inc:139 +msgid "This changes the profile which is selected by default at login." +msgstr "Esto cambia el perfil seleccionado al inicio de sesión por defecto." + +#: ../templates/massBuildAccounts.php:177 +msgid "" +"This column is defined to include unique entries but duplicates were found:" +msgstr "" +"Esta columna se supone que no debiera contener duplicados, pero se " +"encontraron:" + +#: ../lib/modules/heimdalKerberos.inc:119 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -K /etc/heimdal/apache.keytab -p " +"admin/admin passwd -p @@password@@ @@principal@@\"." +msgstr "" +"Este comando será invocado para cambiar la contraseña de Kerberos. " +"Usualmente, debería lucir similar a \"/usr/sbin/kadmin -K /etc/heimdal/" +"apache.keytab -p admin/admin passwd -p @@password@@ @@principal@@\"." + +#: ../lib/modules/mitKerberos.inc:149 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -k -t /home/www-data/apache.keytab " +"-p realm/changepwd\"." +msgstr "" +"Este comando será invocado para cambiar la contraseña de Kerberos. " +"Usualmente, debería lucir similar a \"/usr/sbin/kadmin -k -t /home/www-data/" +"apache.keytab -p realm/changepwd\"." + +#: ../lib/modules/customScripts.inc:124 +msgid "This custom script setting includes an invalid account type." +msgstr "Esta configuración de scripts incluye un tipo de cuenta no válido." + +#: ../lib/modules/customScripts.inc:126 ../lib/modules/customScripts.inc:128 +msgid "This custom script setting includes an invalid action type." +msgstr "Esta configuración de scripts incluye una acción de cuenta no válida." + +#: ../help/help.inc:100 +msgid "" +"This defines the language of the login window and sets this language as the " +"default language. Users can change the language at login." +msgstr "" +"Aquí se define el idioma de la ventana de inicio de sesión y establece el " +"idioma al idioma por defecto. Los usuarios pueden establecer el idioma por " +"defecto al iniciar la sesión." + +#: ../help/help.inc:119 +msgid "" +"This defines the rights for the home directories which are created by " +"lamdaemon." +msgstr "" +"Esto define los derechos de los directorios de inicio que son creados por el " +"demonio LAM." + +#: ../lib/modules/asteriskExtension.inc:95 +msgid "" +"This defines what application Asterisk has to start for this user (e.g. SIP/" +"user1)." +msgstr "" +"Define que aplicación Asterisk tiene que ejecutar para este usuario (p.ej. " +"SIP/user1)." + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:85 +#, php-format +msgid "This deletion request also includes %s child entries." +msgstr "El requerimiento de borrado también incluye %s entradas hijas." + +#: ../lib/modules/device.inc:78 +msgid "This describes the location of the device." +msgstr "Descripción de locacalización del dispositivo." + +#: ../lib/modules/ipHost.inc:74 +msgid "This describes the location of the host." +msgstr "Descripción de localización del equipo." + +#: ../lib/modules/windowsUser.inc:137 ../lib/modules/inetOrgPerson.inc:773 +#: ../lib/modules/inetOrgPerson.inc:777 +msgid "This describes the location of the user." +msgstr "Descripcion de locacalizacion del usuario." + +#: ../lib/lamPDF.inc:126 +msgid "This document was automatically created by LDAP Account Manager" +msgstr "Este documento se generó automáticamente por LDAP Account Manager" + +#: ../help/help.inc:258 +msgid "" +"This email address will be set as reply-to address of all password mails." +msgstr "" +"Se utilizará esta dirección de correo electrónico como la dirección de " +"respuesta para todos los correos de contraseñas." + +#: ../help/help.inc:247 +msgid "" +"This email address will be set as sender address of all password mails. If " +"empty the system default (php.ini) will be used." +msgstr "" +"Esta dirección de correo electrónico será utilizada como remitentes de todos " +"los correos de contraseñas. Si está vacia se utilizará la predeterminada del " +"sistema (php.ini)" + +#: ../lib/modules/selfRegistration.inc:91 +#: ../lib/modules/passwordSelfReset.inc:117 +msgid "" +"This email address will be set as sender address of the mails. If empty the " +"system default (php.ini) will be used." +msgstr "" +"Se establecerá esta dirección de correo como la dirección del remitente. Si " +"se deja vacío, se utilizará la opción predeterminada del sistema (php.ini)." + +#: ../lib/modules/passwordSelfReset.inc:97 +msgid "This enables the password self reset function." +msgstr "Esto habilita la función de auto restablecimiento de contraseña." + +#: ../lib/modules/selfRegistration.inc:54 +msgid "This enables the self registration function." +msgstr "Esto habilita la función de auto registración." + +#: ../templates/3rdParty/pla/htdocs/compare.php:79 +msgid "This entry has no attributes" +msgstr "La entada no tiene atributos" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:57 +#, php-format +msgid "This entry is the root of a sub-tree containing %s entries." +msgstr "La entrada es la raíz de un árbol que contiene %s entradas más." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:47 +#: ../lib/modules/selfRegistration.inc:512 +msgid "This field is required." +msgstr "Este campo es requerido" + +#: ../lib/modules/customFields.inc:188 +msgid "This field name already exists. Please choose a different one." +msgstr "El nombre de campo ya existe. Por favor elija otro." + +#: ../lib/modules/posixAccount.inc:126 +msgid "This gecos value is invalid!" +msgstr "Valor inválido para gecos." + +#: ../lib/modules/ipHost.inc:70 +msgid "This is a comma separated list of IP addresses." +msgstr "Esto es un listado delimitado por comas de direcciones IP." + +#: ../lib/modules/ieee802device.inc:73 +msgid "This is a comma separated list of MAC addresses." +msgstr "Esto es una lista separada por comas de direcciones MAC." + +#: ../lib/modules/kolabUser.inc:137 ../lib/modules/kolabSharedFolder.inc:143 +msgid "This is a comma separated list of delegates." +msgstr "Esto es una lista separada por comas de delegaciones." + +#: ../lib/modules/kolabUser.inc:145 ../lib/modules/kolabSharedFolder.inc:151 +msgid "This is a comma separated list of eMail aliases." +msgstr "Esto es una lista separada por comas de direcciones de EMail" + +#: ../lib/modules/kolabUser.inc:129 +msgid "This is a comma separated list of invitation policies." +msgstr "Esto es una lista separada por comas de politicas de invitación." + +#: ../lib/modules/nisMailAlias.inc:90 +msgid "This is a comma separated list of recipients." +msgstr "Esto es una lista separada por comas de destinatarios." + +#: ../lib/modules/inetLocalMailRecipient.inc:77 +msgid "This is a comma separated list of the users public email addresses." +msgstr "" +"Esto es una lista separada por comas de direcciones de e-mail del usuario." + +#: ../help/help.inc:153 +msgid "" +"This is a list of IP addresses from hosts who may access LAM. You can use \"*" +"\" as wildcard (e.g. 192.168.0.*)." +msgstr "" +"Esto es un listado de direcciones IP para los equipos que pueden acceder a " +"LAM. Puede utilizar \"*\" como comodín (p.ej. 192.168.0.*)." + +#: ../lib/modules/selfRegistration.inc:79 +msgid "" +"This is a list of additional attributes that the user can enter. Please note " +"that user name, password and email address are mandatory anyway and need not " +"be specified." +msgstr "" +"Este es la lista de atributos adicionales que el usuario puede ingresar. " +"Notar que el nombre de usuario, la contraseña y su dirección de correo " +"electrónico son obligatorios siempre y no necesitan ser especificados." + +#: ../lib/modules/organizationalRole.inc:94 +#: ../lib/modules/windowsGroup.inc:131 ../lib/modules/groupOfNames.inc:102 +msgid "This is a list of members of this group." +msgstr "Lista de miembros de este grupo" + +#: ../lib/modules/organizationalRole.inc:98 +#: ../lib/modules/windowsGroup.inc:135 ../lib/modules/groupOfNames.inc:106 +msgid "" +"This is a list of members of this group. Multiple members are separated by " +"semicolons." +msgstr "" +"Lista de miembros de este grupo. Para varios miembros separar por punto y " +"coma" + +#: ../lib/modules/eduPerson.inc:102 +msgid "This is a list of nick names for this user." +msgstr "Lista de los alias de los usuarios" + +#: ../lib/modules/selfRegistration.inc:75 +msgid "" +"This is a list of object classes that are used to build the new user " +"accounts. Please enter one object class in each line." +msgstr "" +"Lista válida de objectClasses que son usados para crear las nuevas cuentas. " +"Por favor ingrese un objectClass en cada línea. " + +#: ../help/help.inc:115 +msgid "" +"This is a list of the servers where the lamdaemon scripts are stored. LDAP " +"Account Manager will make a SSH connection to the servers with the user name " +"and password provided at login. Multiple servers are separated by " +"semicolons. You can append a descriptive name after a colon." +msgstr "" +"Lista de servidores donde se guarda el script lamdaemon. LDAP Account " +"Manager hará una conexión SSH usando el usuario y contraseña que Ud. uso " +"para entrar." + +#: ../help/help.inc:93 +msgid "" +"This is a list of valid DN entries of all users that are allowed to login to " +"LDAP Account Manager. Please enter one DN per line." +msgstr "" +"Lista válida de entradas DN de todos los usuarios que se les permite entrar " +"en LDAP Account Manager. Los nombres de usuarios deben estar separados por " +"comas." + +#: ../templates/3rdParty/pla/lib/PageRender.php:881 +msgid "This is a structural ObjectClass and cannot be removed." +msgstr "Este ObjectClass es estructural y no puede ser removido." + +#: ../lib/modules/nisObject.inc:74 ../lib/modules/automount.inc:73 +#: ../lib/modules/oracleService.inc:70 +msgid "This is an optional description for this entry." +msgstr "Aquí puedes introducir la descripción opcional para esta entrada." + +#: ../help/help.inc:223 +msgid "" +"This is needed to find the LDAP DNs of your user accounts. E.g. if you use " +"\"uid\" and your user inputs \"miller\" then LAM will search for an account " +"with uid=miller." +msgstr "" +"Esto es necesario para encontrar los DN de tu cuenta de usuario en el LDAP. " +"E.g. si tu usas \"uid\" e introduces \"miller\", LAM buscará una cuenta que " +"uid=miller. " + +#: ../lib/modules/zarafaDynamicGroup.inc:199 ../lib/modules/ipHost.inc:117 +#: ../lib/modules/posixGroup.inc:613 ../lib/modules/device.inc:142 +#: ../lib/modules/eduPerson.inc:246 ../lib/modules/eduPerson.inc:248 +#: ../lib/modules/zarafaAddressList.inc:170 +#: ../lib/modules/posixAccount.inc:131 ../lib/modules/inetOrgPerson.inc:98 +#: ../lib/modules/aliasEntry.inc:86 ../lib/modules/qmailGroup.inc:433 +#: ../lib/modules/qmailGroup.inc:434 ../lib/modules/qmailGroup.inc:435 +msgid "This is not a valid DN!" +msgstr "¡Esto no es un DN válido!" + +#: ../lib/modules/sambaSamAccount.inc:109 +msgid "This is not a valid RID number!" +msgstr "¡Esto no es un número RID válido!" + +#: ../lib/modules/sambaGroupMapping.inc:604 +msgid "This is not a valid Samba 3 group type!" +msgstr "¡Esto no es un tipo de grupo de Samba 3 válido!" + +#: ../lib/modules/eduPerson.inc:250 +msgid "This is not a valid list of DNs!" +msgstr "¡Esto no es un listado de DN válido!" + +#: ../lib/modules/qmailGroup.inc:436 ../lib/modules/qmailGroup.inc:437 +msgid "This is not a valid option." +msgstr "No es una opción válida." + +#: ../lib/modules/inetLocalMailRecipient.inc:73 +msgid "This is one of the users public email addresses." +msgstr "Esta es una de las direcciones válidas de email del usuario." + +#: ../help/help.inc:84 +msgid "" +"This is only needed for TLS/SSL connections. By default, LAM will use the " +"certificate authorities installed on your system. If you have a private CA " +"in your company you can upload your CA certificates here and override the " +"system certificates." +msgstr "" +"Esto es solo requerido para conexiones TLS/SSL. De manera predeterminada, " +"LAM utilizará las CA instaladas en su sistema. Si usted tiene una CA privada " +"en su compañía puede subir sus certificados CA aquí y sobreescribir los " +"certificados del sistema." + +#: ../lib/modules/asteriskAccount.inc:104 +msgid "" +"This is the ID of the user in the Asterisk database. It may contain digits " +"and letters (e.g. user1 or 200134)." +msgstr "" +"Este es el ID del usuario en la base de datos Asterisk. Puede contener " +"dígitos y letras (p.ej. usuario1 o 200134)." + +#: ../lib/modules/freeRadius.inc:85 +msgid "This is the IP address for the user (e.g. 123.123.123.123)." +msgstr "Esta es la dirección IP para el usuario (p.ej. 123.123.123.123)." + +#: ../lib/modules/ipHost.inc:66 +msgid "" +"This is the IP address of the network card of the device (e.g. " +"123.123.123.123)." +msgstr "" +"Esta es la dirección IP de la tarjeta de red del dispositivo (p.ej. " +"123.123.123.123)." + +#: ../lib/modules/ipHost.inc:78 +msgid "This is the LDAP DN of the host's manager." +msgstr "Este es el DN LDAP del administrador del equipo." + +#: ../lib/modules/inetOrgPerson.inc:657 ../lib/modules/inetOrgPerson.inc:661 +msgid "" +"This is the LDAP DN of the user's manager. Use this property to represent " +"hierarchies in your company." +msgstr "" +"Este es el DN LDAP del administrador del usuario. Utilice esta propiedad " +"para representar jerarquías en su empresa." + +#: ../lib/modules/customFields.inc:117 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an activated " +"state. The value is case-insensitive." +msgstr "" +"Este es atributo LDAP que pone el checkbox en estado activado. El valor es " +"sensible a mayúsculas." + +#: ../lib/modules/customFields.inc:121 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an deactivated " +"state. The value is case-insensitive." +msgstr "" +"Este es atributo LDAP que pone el checkbox en estado desactivado. El valor " +"es sensible a mayúsculas." + +#: ../lib/modules/ieee802device.inc:69 +msgid "" +"This is the MAC address of the network card of the device (e.g. 00:01:02:DE:" +"EF:18)." +msgstr "" +"Esto es la direccion MAC de la tarjeta de red (p.ej. 00:01:02:DE:EF:18)" + +#: ../lib/modules/sambaSamAccount.inc:324 +msgid "This is the SID of the user's primary Windows group." +msgstr "Esto es el SID del grupo primario del usuario." + +#: ../help/help.inc:102 +msgid "" +"This is the absolute path to an external script for setting quotas and " +"creating home directories." +msgstr "" +"Esto es el path absoluto a un script externo que establece las quotas y crea " +"los directorios de los usuarios." + +#: ../lib/modules/mitKerberos.inc:157 ../lib/modules/heimdalKerberos.inc:125 +msgid "This is the account's Kerberos password." +msgstr "Esta es la contraseña de la cuenta de Kerberos." + +#: ../lib/modules/sambaSamAccount.inc:262 +msgid "This is the account's Windows password." +msgstr "Contraseña de Windows de la cuenta." + +#: ../lib/modules/sambaSamAccount.inc:259 ../lib/modules/windowsUser.inc:124 +msgid "This is the account's full name on Windows systems." +msgstr "Nombre y apellidos de la cuenta dentro de Windows." + +#: ../lib/modules/ppolicyUser.inc:56 +msgid "This is the active password policy for this account." +msgstr "Este es la política activa para esta cuenta." + +#: ../lib/modules/passwordSelfReset.inc:85 +msgid "" +"This is the answer to the security question. It allows users to reset their " +"password." +msgstr "" +"Es es la respuesta a la pregunta secreta. Permite a los usuarios resetear su " +"contraseña." + +#: ../lib/modules/mitKerberos.inc:145 +msgid "This is the date of the user's last login." +msgstr "Esta es la fecha del último inicio de sesión del usuario." + +#: ../lib/modules/mitKerberos.inc:125 ../lib/modules/heimdalKerberos.inc:103 +msgid "This is the date when the account will expire." +msgstr "Esta es la fecha en la que la cuenta expirará." + +#: ../lib/modules/sambaSamAccount.inc:346 ../lib/modules/shadowAccount.inc:194 +msgid "This is the date when the account will expire. Format: DD-MM-YYYY" +msgstr "Fecha de caducidad de cuenta: Formato: DD-MM-YYYY" + +#: ../lib/modules/mitKerberos.inc:141 ../lib/modules/sambaSamAccount.inc:397 +msgid "This is the date when the user changed his password." +msgstr "Esta es la fecha cuando el usuario cambio su contraseña." + +#: ../lib/modules/shadowAccount.inc:202 +msgid "" +"This is the date when the user changed his password. If you specify a " +"maximum password age then you can force a password change here." +msgstr "" +"Esta es la fecha cuando el usuario cambió su contraseña. Si especifica una " +"edad máxima de contraseña entonces puede forzar el cambio aquí." + +#: ../lib/modules/sambaGroupMapping.inc:147 +msgid "This is the group name which will be shown in Windows." +msgstr "Nombre del grupo que será mostrado en Windows." + +#: ../lib/modules/windowsHost.inc:83 +msgid "This is the host's location (e.g. Munich, server room 3)." +msgstr "Esta es la ubicación del host (p.ej. Munich, Sala Servidores 3)." + +#: ../help/help.inc:187 +msgid "" +"This is the identifier for the relative DN value. It must be one of the " +"given allowed LDAP attributes (e.g. user accounts usually use \"uid\" while " +"groups use \"cn\")." +msgstr "" +"Identificador relativo del DN. Debe de ser uno de los atributos LDAP " +"permitidos (p.ej. las cuentas de usuario normalmente emplean \"uid\", " +"mientras los grupos emplean \"cn\")." + +#: ../lib/modules/selfRegistration.inc:99 +msgid "" +"This is the identifier for the relative DN value. LAM will use \"uid\" by " +"default." +msgstr "" +"Este es el identificador para el valor DN relativo. LAM utilizará \"uid\" de " +"manera predeterminada." + +#: ../lib/modules/passwordSelfReset.inc:101 +msgid "" +"This is the label for the link to the password self reset. If empty \"Forgot " +"password?\" will be used." +msgstr "" +"Est a es la etiqueta del enlace para restablecer la contraseña. Si se deja " +"en blanco, se utilizará \"¿Olvidó la contraseña?\"." + +#: ../lib/modules/selfRegistration.inc:58 +msgid "" +"This is the label for the link to the self registration. If empty \"Register " +"new account\" will be used." +msgstr "" +"Est a es la etiqueta del enlace para la auto registración. Si se deja en " +"blanco se utilizará \"Registrar nueva cuenta\"." + +#: ../help/help.inc:88 +msgid "" +"This is the list of attributes to show in the account list. The entries can " +"either be predefined values, \"#attribute\", or individual ones, \"attribute:" +"description\". Several entries are separated by semicolons." +msgstr "" +"Lista de atributos a mostrar en la lista de cuentas. Los elementos pueden " +"ser, o bien valores predefinidos, \"#atributo\", o valores individuales, " +"\"atributo:descripcción\". Se pueden separar varios elementos mediante comas." + +#: ../lib/modules/posixAccount.inc:494 +msgid "This is the list of valid login shells." +msgstr "Esto es una lista separada de intérpretes de sesión válidos." + +#: ../lib/modules/asteriskAccount.inc:108 +msgid "" +"This is the machine id (e.g. IP address or host name) from which the user " +"can call/receive calls." +msgstr "" +"Esta es la computadora (p.ej. dirección IP o nombre de equipo) desde el cual " +"el usuario puede generar/recibir llamadas." + +#: ../lib/modules/inetLocalMailRecipient.inc:81 +msgid "This is the mail server for the user." +msgstr "Este es el servidor de correo para el usuario." + +#: ../lib/modules/qmailUser.inc:220 +msgid "This is the mailbox size limit in bytes." +msgstr "Este es el límite del tamaño del buzón de correo en bytes." + +#: ../lib/modules/passwordSelfReset.inc:93 +msgid "This is the minimum length for answers to the security question." +msgstr "Esta es la longitud mínima para respuestas a la pregunta de seguridad." + +#: ../lib/modules/nisnetgroup.inc:84 ../lib/modules/organizationalRole.inc:86 +#: ../lib/modules/groupOfNames.inc:86 +msgid "This is the name of this group." +msgstr "Este es el nombre de este grupo" + +#: ../lib/modules/posixAccount.inc:561 +msgid "" +"This is the natural name of the host. If empty, the host name will be used." +msgstr "" +"Este es el nombre natural del equipo. Si se deja en blanco, se utilizará el " +"nombre del equipo." + +#: ../lib/modules/pykotaUser.inc:109 +msgid "This is the natural name of the user." +msgstr "Este es el nombre natural del usuario." + +#: ../lib/modules/inetOrgPerson.inc:741 +msgid "" +"This is the natural name of the user. If empty, the first and last name is " +"used." +msgstr "" +"Este es el nombre natural del usuario. Si se deja en blanco, se utiliza el " +"nombre y el apellido." + +#: ../lib/modules/posixAccount.inc:539 ../lib/modules/windowsUser.inc:103 +msgid "" +"This is the natural name of the user. If empty, the first and last name or " +"user name is used." +msgstr "" +"Este es el nombre natural del usuario. Si se deja en blanco, se utiliza el " +"nombre y el apellido" + +#: ../lib/modules/sambaDomain.inc:122 +msgid "" +"This is the number of bad logon attempts (0 - 999) before the account is " +"deactivated. 0 means unlimited attempts." +msgstr "" +"Esto es el número de accesos fallidos permitidos (0-999) antes que la cuenta " +"se desactive. 0 significa intentos ilimitados." + +#: ../lib/modules/sambaDomain.inc:106 +msgid "" +"This is the number of passwords which are saved to prevent that users reuse " +"old passwords." +msgstr "" +"Esto es el número de contraseñas que se guardan para evitar que los usuarios " +"reutilicen contraseñas antiguas." + +#: ../help/help.inc:98 +msgid "" +"This is the number of rows to show in the account list. If more entries are " +"found the list will be split into several pages." +msgstr "" +"Numero de entradas a mostrar en la lista de usuarios/grupos/equipos. Si se " +"encuentran más entradas, el listado se dividirá en varias páginas." + +#: ../lib/modules/sambaSamAccount.inc:355 +msgid "This is the path to the user's home directory." +msgstr "Este es la ruta al directorio principal del usuario" + +#: ../lib/modules/sambaGroupMapping.inc:155 +msgid "" +"This is the relative ID (similar to UID on Unix) for Windows accounts. If " +"you leave this empty LAM will calculate the RID from the UID. This can be " +"either a number or the name of a special group:" +msgstr "" +"Esto es un ID relativo (similar al UID de Unix) para cuentas de Windows. Si " +"lo deja en blanco, LAM lo calculará a partir del UID. Puede ser o bien un " +"numero o bien el nombre de un grupo especial:" + +#: ../lib/modules/sambaSamAccount.inc:330 +msgid "" +"This is the relative ID number for your Windows account. You can either " +"enter a number or one of these special accounts: " +msgstr "" +"Este es el ID relativo de su cuenta de Windows. Puede entrar o bien un " +"numero o bien una de las cuentas especiales: " + +#: ../lib/modules/sambaSamAccount.inc:334 +msgid "" +"This is the relative ID number for your host account. If you leave this " +"empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" +"Este es el ID relativo de su cuenta de equipo. Si lo deja en blanco, LAM " +"usará: uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../lib/modules/imapAccess.inc:113 +msgid "" +"This is the separator for the mailbox path. Usually, this is \".\" but e.g. " +"Cyrus with \"unixhierarchysep\" will require \"/\"." +msgstr "" +"Este es el separador para la ruta del mailbox. Usualmente esto es \".\" pero " +"p.ej. Cyrus con \"unixhierarchysep\" requiere \"/\"." + +#: ../help/help.inc:59 +msgid "" +"This is the server address of your LDAP server. Use ldap:// for unencrypted " +"LDAP connections or TLS encrypted connections. LDAP+SSL (LDAPS) encrypted " +"connections are specified with ldaps://. The port value is optional." +msgstr "" +"Direccion de su servidor LDAP. Utilice ldap:// para conexiones estándar " +"LDAP, y ldaps:// para conexiones encriptadas (requiere certificados de " +"servidor). El numero de puerto es opcional." + +#: ../help/help.inc:78 +msgid "This is the suffix for the LDAP tree viewer." +msgstr "Este es el sufijo LDAP del visor del arbol ldap." + +#: ../help/help.inc:72 +msgid "" +"This is the suffix of the LDAP tree from where to search for LDAP entries. " +"Only entries in this subtree will be displayed in the account list. When " +"creating a new accont this will be the DN where it is saved." +msgstr "" +"Este es el sufijo del árbol LDAP a usar para buscar entradas LDAP. En el " +"listado de cuentas solo se mostrarán las entradas pertenecientes a este " +"subárbol. Al crear nuevas cuentas, éste será el DN donde se guardarán." + +#: ../lib/modules/inetLocalMailRecipient.inc:69 +msgid "This is the target email address for the user's mails." +msgstr "Esta es la dirección de destino de los correos del usuario." + +#: ../lib/modules/customScripts.inc:53 ../lib/modules/uidObject.inc:60 +#: ../lib/modules/aliasEntry.inc:62 +msgid "This is the target of this alias entry." +msgstr "Esté es un destinatario para éste alias." + +#: ../lib/modules/sambaDomain.inc:134 +msgid "" +"This is the time (in minutes) for which the user may not log in after the " +"account was locked. -1 means forever." +msgstr "" +"Este es el tiempo (en minutos) para que el usuario no pueda inicar sesion. " +"-1 significa para siempre." + +#: ../help/help.inc:147 +msgid "" +"This is the time (in minutes) of inactivity after which a user is " +"automatically logged off." +msgstr "" +"Este es el tiempo (en minutos) de inactividad para que se cierre la sesión " +"del usuario." + +#: ../help/help.inc:108 +msgid "" +"This is the time in minutes which LAM caches its LDAP searches. Shorter " +"times will stress LDAP more but decrease the possibility that changes are " +"not identified." +msgstr "" +"Tiempo en minutos que LAM mantendrá en caché sus búsquedas. Tiempos menores " +"sobrecargarian al servidor LDAP, pero mayores podrian fallar algunas " +"busquedas." + +#: ../lib/modules/sambaSamAccount.inc:349 +msgid "" +"This is the time zone of your Samba server. LAM needs this information to " +"display the logon hours correctly." +msgstr "" +"Esta es la zona horaria de tu servidor Samba. LAM necesita esta información " +"para mostrarla en el inicio de sesión correcto." + +#: ../lib/modules/sambaSamAccount.inc:321 +msgid "This is the user's primary Windows group." +msgstr "Esto es el grupo primario de Windows del usuario." + +#: ../lib/modules/puppetClient.inc:89 +msgid "" +"This is this node's parent. All classes and variables are inherited from " +"this node." +msgstr "" +"Este es el nodo padre. Todas las clases y variables son heredadas de este " +"nodo." + +#: ../lib/modules/asteriskAccount.inc:156 +msgid "" +"This is typically used to allow incoming calls (e.g. from FWD) while having " +"a type=friend entry defined with username and password." +msgstr "" +"Esto es típicamente utilizado para llamadas entrantes (p.ej. desde FWD) " +"mientras se tiene una entrada type=friend definida con nombre de usuario y " +"contraseña." + +#: ../lib/modules/zarafaUser.inc:117 +msgid "This is used to mark this account as resource." +msgstr "Esto es usado para marcar la cuenta como recurso." + +#: ../lib/modules/posixAccount.inc:127 +msgid "This login shell is invalid!" +msgstr "El shell de login es inválido!" + +#: ../lib/modules/inetLocalMailRecipient.inc:232 +msgid "This mail address is already in use:" +msgstr "Este direccion de correo ya esta en uso." + +#: ../lib/modules/imapAccess.inc:107 +msgid "This mailbox will be created/deleted." +msgstr "La cuenta de correo electrónico será creada/borrada." + +#: ../lib/modules.inc:1237 +msgid "This may overwrite existing values with profile data. Continue?" +msgstr "" +"Esto puede sobreescribir valores existentes con datos del perfil. ¿ Desea " +"continuar ?" + +#: ../lib/modules/customFields.inc:113 +msgid "" +"This message is shown when the field value does not match the validation " +"expression." +msgstr "" +"Este mensaje es mostrado cuando el valor del campo no concuerda con la " +"expresión de validación." + +#: ../templates/schema/schema.php:350 +msgid "This object class is obsolete." +msgstr "Esta clase de objeto está obsoleto." + +#: ../lib/modules/imapAccess.inc:84 +msgid "" +"This option allows you to disable the certificate check of your IMAP server " +"certificate. Disabling the certificate check is not recommended." +msgstr "" +"Esta opción le permite deshabilitar la verifcación de certificado para el " +"servidor IMAP. Desactivar esto no es recomendado." + +#: ../lib/modules/sambaSamAccount.inc:340 +msgid "This option defines the allowed logon hours for this account." +msgstr "" +"Esta opción define las horas permitidas de Inicio de Sesión para la cuenta." + +#: ../lib/modules/sambaSamAccount.inc:343 +msgid "" +"This option defines the allowed logon hours for this account. The format is " +"the same as for the LDAP attribute. The 24*7 hours are represented as 168 " +"bit which are saved as 21 hex (21*8 = 168) values. The first bit represents " +"Sunday 0:00 - 0:59 in GMT." +msgstr "" +"Esta opción define las horas en las que se permite iniciar la sesión a esta " +"cuenta. El formato es el mismo que el atributo de LDAP. O sea, un valor de " +"168 bits donde el primer bit representa Domingo 0:00-0:59 en GMT." + +#: ../lib/modules/asteriskExtension.inc:192 +msgid "This pair of extension name and priority already exists." +msgstr "Este par de nombre de extensión y prioridad ya existe." + +#: ../lib/modules/sambaSamAccount.inc:364 +msgid "This program is run after the login." +msgstr "Este programa se ejecuta después del inicio de sesión." + +#: ../lib/modules/sambaSamAccount.inc:388 +msgid "This specifies the reconnect policy." +msgstr "Especifica las políticas de reconexión." + +#: ../lib/modules/zarafaDynamicGroup.inc:96 +#: ../lib/modules/zarafaContact.inc:107 ../lib/modules/zarafaGroup.inc:113 +#: ../lib/modules/zarafaAddressList.inc:84 ../lib/modules/zarafaUser.inc:172 +#: ../lib/modules/zarafaServer.inc:93 +msgid "" +"This specifies the used Zarafa LDAP schema. Select LDAP for e.g. OpenLDAP, " +"Apache Directory, OpenDJ and other non-Windows based LDAP servers. If you " +"run Zarafa against Samba 4 or Active Directory please select Active " +"Directory." +msgstr "" +"Esto especifica el schema LDAP Zarafa utilizado. Seleccione LDAP para " +"OpenLDAP, Apache Directory, OpenDJ y otros servidores LDAP no basados en " +"Windows. Si correo Zarafa contra Samba 4 o Active Directory por favor " +"seleccione Active Directory." + +#: ../lib/modules/sambaSamAccount.inc:385 +msgid "This specifies what to do when the client connection is broken." +msgstr "Especifica que hacer cuando el cliente pierde la conexión." + +#: ../help/help.inc:227 +msgid "" +"This text is displayed on top of the self service login page. You can also " +"input HTML code here." +msgstr "" +"Este texto es mostrado en la parte de arriba de la página de acceso del " +"servicio. Puedes también introducir código HTML aquí." + +#: ../help/help.inc:229 +msgid "" +"This text is displayed on top of the self service main page. You can also " +"input HTML code here." +msgstr "" +"Este texto se mostrará en la parte superior de la página del principal del " +"servicio. Puedes también introducir código HTML aquí." + +#: ../help/help.inc:239 +msgid "" +"This text is placed as label for the password field on the login page. LAM " +"will use \"Password\" if you do not enter any text." +msgstr "" +"Este texto es ubicado como etiqueta para el campo contraseña en la página de " +"ingreso. LAM utilizará \"Password\" si usted no ingresa ningún texto." + +#: ../help/help.inc:225 +msgid "" +"This text should shortly describe your selected LDAP search attribute (e.g. " +"email or user name)." +msgstr "" +"Texto breve que describa su atributo LDAP para selecionar la busquedad (p." +"ej. correo o nombre de usuario)." + +#: ../lib/modules/selfRegistration.inc:107 +#: ../lib/modules/passwordSelfReset.inc:157 +msgid "This text will be printed on top of the page." +msgstr "Este texto debe ser impreso en la parte superior de la página." + +#: ../lib/modules/qmailUser.inc:240 +msgid "" +"This text will be sent as reply to all incoming mails if the delivery mode " +"is set to autoreply." +msgstr "" +"Este texto será enviado como respuesta a todos los correos entrantes si el " +"deliverymode está seteado en autoreply." + +#: ../lib/tools/pdfEdit.inc:53 +msgid "This tool allows you to customize the PDF pages." +msgstr "Este herramienta le permitirá personalizar las paginas PDF." + +#: ../templates/lists/changePassword.php:46 +#: ../templates/lists/changePassword.php:243 +msgid "This user is not supported or was not found." +msgstr "Este usuario no es soportado o no fue encontrado." + +#: ../lib/modules/windowsUser.inc:116 +msgid "This user name is only used for old Windows versions (e.g. NT4, W98)." +msgstr "" +"Este nombre de usuario solamente es utilizado por versiones de Windows " +"viejas (p.ej. NT4, W98)." + +#: ../templates/lists/userlink.php:61 +msgid "This user was not found!" +msgstr "Este usuario no se encontró!" + +#: ../lib/modules/zarafaUser.inc:414 +msgid "This value can only be \"Room\" or \"Equipment\"." +msgstr "Este valor solo puede ser \"Room\" or \"Equipment\"." + +#: ../lib/modules/zarafaDynamicGroup.inc:204 +#: ../lib/modules/zarafaDynamicGroup.inc:205 +#: ../lib/modules/zarafaContact.inc:189 ../lib/modules/zarafaContact.inc:190 +#: ../lib/modules/zarafaGroup.inc:219 ../lib/modules/zarafaGroup.inc:220 +#: ../lib/modules/zarafaGroup.inc:221 ../lib/modules/zarafaAddressList.inc:171 +#: ../lib/modules/zarafaAddressList.inc:172 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 ../lib/modules/posixAccount.inc:128 +#: ../lib/modules/zarafaUser.inc:421 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:424 ../lib/modules/zarafaUser.inc:425 +#: ../lib/modules/zarafaUser.inc:426 ../lib/modules/zarafaUser.inc:427 +#: ../lib/modules/ppolicyUser.inc:97 ../lib/modules/inetOrgPerson.inc:106 +#: ../lib/modules/zarafaServer.inc:179 +msgid "This value can only be \"true\" or \"false\"." +msgstr "Este valor puede ser \"true\" or \"false\"." + +#: ../lib/modules/zarafaUser.inc:422 +msgid "This value can only be \"true\", \"false\" or \"system\"." +msgstr "Este valor puede ser \"true\", \"false\", o \"system\"." + +#: ../lib/modules/posixGroup.inc:611 +msgid "This value must be a list of user names separated by semicolons." +msgstr "" +"Este valor debe ser una lista separada por comas de nombres de usuarios." + +#: ../help/help.inc:264 +msgid "This will create a new organisational unit under the selected one." +msgstr "" +"Esto creará una nueva Unidad Organizativa (OU) dentro de la seleccionada." + +#: ../lib/modules/posixAccount.inc:482 +msgid "This will create the user's home directory on the specified server." +msgstr "" +"Esto creara el directorio principal del usuario en el servidor indicado" + +#: ../help/help.inc:266 +msgid "" +"This will delete the selected organisational unit. The OU has to be empty." +msgstr "" +"Esto borrará la Unidad Organizativa (OU) seleccionada. La OU debe de estar " +"vacia." + +#: ../help/help.inc:135 +msgid "This will delete the selected profile." +msgstr "Esto borrará el perfil seleccionado." + +#: ../lib/modules/kolabGroup.inc:118 ../lib/modules/puppetClient.inc:109 +#: ../lib/modules/qmailUser.inc:264 ../lib/modules/zarafaContact.inc:88 +#: ../lib/modules/posixGroup.inc:538 ../lib/modules/eduPerson.inc:151 +#: ../lib/modules/pykotaGroup.inc:130 ../lib/modules/sambaSamAccount.inc:403 +#: ../lib/modules/posixAccount.inc:433 ../lib/modules/zarafaUser.inc:137 +#: ../lib/modules/pykotaUser.inc:161 ../lib/modules/shadowAccount.inc:198 +#: ../lib/modules/qmailGroup.inc:233 +#: ../lib/modules/authorizedServiceObject.inc:90 +#: ../lib/modules/passwordSelfReset.inc:153 ../lib/modules/hostObject.inc:84 +msgid "This will enable the extension automatically if this profile is loaded." +msgstr "Esto habilitará la extensión automáticamente si se carga el perfil." + +#: ../lib/modules/customScripts.inc:93 +msgid "" +"This will hide the custom scripts tab when you edit an account. Manual " +"actions are not possible when the tab is not visible." +msgstr "" +"Esto oculta la pestaña de scripts personalizados cuando edita una cuenta. " +"Acciones manuales no son posibles cuando la pestaña no está visible." + +#: ../lib/modules/sambaSamAccount.inc:265 +msgid "This will reset the host's password to a default value." +msgstr "Esto restablecerá la contraseña del equipo a un valor predeterminado." + +#: ../templates/lists/changePassword.php:311 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail." +msgstr "" +"Esto dará una contraseña generada aleatoriamente y la mostrará en la " +"pantalla para enviarla por correo electrónico." + +#: ../help/help.inc:245 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail. Please edit your LAM server profile to setup the mail " +"settings." +msgstr "" +"Esto dará una contraseña generada aleatoriamente y la mostrará en la " +"pantalla para enviarla por correo electrónico. Por favor edite su perfil de " +"servidor LAM para configurar el correo electrónico." + +#: ../lib/modules/kolabGroup.inc:114 ../lib/modules/kolabUser.inc:179 +#: ../lib/modules/kolabSharedFolder.inc:167 +msgid "" +"This will set a special flag on the account which tells Kolabd to remove it. " +"Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes)." +msgstr "" +"Esto establecerá una bandera especial sobre la cuenta que indicará a Kolab " +"que debe borrarla. Use esto para borrar limpiamente cuentas Kolab (p.ej. " +"esto elimina los buzones de correo)." + +#: ../lib/modules/qmailUser.inc:212 +msgid "" +"This will set the user's account status. You may disable the mail account " +"here." +msgstr "" +"Esto setea el etado de cuenta de usuario. Puede desactivar la cuenta de " +"correo aquí." + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Thursday" +msgstr "Jueves" + +#: ../lib/modules/mitKerberos.inc:136 ../lib/modules/mitKerberos.inc:195 +#: ../lib/modules/mitKerberos.inc:230 ../lib/modules/mitKerberos.inc:254 +#: ../lib/modules/mitKerberos.inc:355 ../lib/modules/mitKerberos.inc:775 +#: ../lib/modules/heimdalKerberos.inc:110 +#: ../lib/modules/heimdalKerberos.inc:164 +#: ../lib/modules/heimdalKerberos.inc:199 +#: ../lib/modules/heimdalKerberos.inc:221 +#: ../lib/modules/heimdalKerberos.inc:302 +#: ../lib/modules/heimdalKerberos.inc:687 +msgid "Ticket lifetime" +msgstr "Tiempo de vida del ticket" + +#: ../lib/modules/mitKerberos.inc:293 ../lib/modules/mitKerberos.inc:294 +#: ../lib/modules/heimdalKerberos.inc:257 +#: ../lib/modules/heimdalKerberos.inc:258 +msgid "Ticket lifetime must be a number." +msgstr "El tiempo de vida del ticket debe ser un número." + +#: ../lib/modules/sambaSamAccount.inc:1397 +msgid "Time" +msgstr "Hora" + +#: ../lib/modules/sambaSamAccount.inc:369 +msgid "Time limit" +msgstr "tiempo limite" + +#: ../lib/modules/sambaSamAccount.inc:348 +#: ../lib/modules/sambaSamAccount.inc:579 +msgid "Time zone" +msgstr "Zona horaria" + +#: ../lib/modules/bindDLZ.inc:94 ../lib/modules/bindDLZ.inc:98 +#: ../lib/modules/bindDLZ.inc:103 ../lib/modules/bindDLZ.inc:108 +#: ../lib/modules/bindDLZ.inc:113 ../lib/modules/bindDLZ.inc:118 +#: ../lib/modules/bindDLZ.inc:123 ../lib/modules/bindDLZ.inc:254 +#: ../lib/modules/bindDLZ.inc:267 ../lib/modules/bindDLZ.inc:287 +#: ../lib/modules/bindDLZ.inc:300 ../lib/modules/bindDLZ.inc:331 +#: ../lib/modules/bindDLZ.inc:363 ../lib/modules/bindDLZ.inc:375 +#: ../lib/modules/bindDLZ.inc:402 ../lib/modules/bindDLZ.inc:423 +#: ../lib/modules/bindDLZ.inc:469 ../lib/modules/bindDLZ.inc:472 +#: ../lib/modules/bindDLZ.inc:474 ../lib/modules/bindDLZ.inc:476 +#: ../lib/modules/bindDLZ.inc:478 ../lib/modules/bindDLZ.inc:480 +#: ../lib/modules/bindDLZ.inc:482 ../lib/modules/bindDLZ.inc:484 +#: ../lib/modules/bindDLZ.inc:486 ../lib/modules/bindDLZ.inc:651 +#: ../lib/modules/bindDLZ.inc:754 ../lib/modules/bindDLZ.inc:833 +#: ../lib/modules/bindDLZ.inc:922 ../lib/modules/bindDLZ.inc:1034 +#: ../lib/modules/bindDLZ.inc:1166 ../lib/modules/bindDLZ.inc:1244 +#: ../lib/modules/bindDLZ.inc:1370 ../lib/modules/bindDLZ.inc:1473 +#: ../lib/modules/bindDLZ.inc:1493 ../lib/modules/bindDLZ.inc:1514 +#: ../lib/modules/bindDLZ.inc:1548 ../lib/modules/bindDLZ.inc:1573 +#: ../lib/modules/bindDLZ.inc:1603 +msgid "Timeout" +msgstr "Tiempo de espera" + +#: ../lib/modules/bindDLZ.inc:430 +msgid "Timeouts" +msgstr "Tiempos de espera" + +#: ../lib/modules/pykotaUser.inc:654 ../lib/modules/pykotaUser.inc:1003 +msgid "Title" +msgstr "Título" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:45 +msgid "To" +msgstr "A" + +#: ../lib/modules/posixAccount.inc:531 +msgid "To disable login use /bin/false." +msgstr "Para desactivar el uso de login /bin/false." + +#: ../lib/modules/sambaSamAccount.inc:573 +msgid "Tokyo, Seoul, Osaka, Yakutsk" +msgstr "Tokio, Seúl, Osaka, Yakutsk" + +#: ../templates/config/confmain.php:406 +msgid "Tool settings" +msgstr "Configuración de Herramientas" + +#: ../templates/tools.php:63 ../templates/main_header.php:147 +msgid "Tools" +msgstr "Herramientas" + +#: ../templates/serverInfo.php:357 +msgid "Total" +msgstr "Total" + +#: ../templates/serverInfo.php:242 ../templates/serverInfo.php:247 +msgid "Total connections" +msgstr "Conexiones totales" + +#: ../templates/3rdParty/pla/lib/export_functions.php:202 +msgid "Total entries" +msgstr "Número de entradas" + +#: ../lib/modules/pykotaUser.inc:141 +msgid "Total money paid by the user." +msgstr "Dinero total pagado por el usuario." + +#: ../lib/modules/pykotaUser.inc:140 ../lib/modules/pykotaUser.inc:264 +#: ../lib/modules/pykotaUser.inc:586 ../lib/modules/pykotaUser.inc:901 +#: ../lib/modules/pykotaUser.inc:954 +msgid "Total paid" +msgstr "Pago total" + +#: ../lib/modules/pykotaUser.inc:282 +msgid "Total paid (read-only)" +msgstr "Pago total (sólo lectura)" + +#: ../lib/types/user.inc:682 +msgid "Translate GID number to group name" +msgstr "Traducir GID a Nombre del grupo" + +#: ../templates/config/confmain.php:247 ../help/help.inc:77 +msgid "Tree suffix" +msgstr "Sufijo del arbol" + +#: ../templates/multiEdit.php:92 ../templates/main_header.php:178 +msgid "Tree view" +msgstr "Visor del arbol" + +#: ../templates/config/confmain.php:567 +msgid "TreeSuffix is invalid!" +msgstr "TreeSuffix is inválido!" + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Tuesday" +msgstr "Martes" + +#: ../templates/multiEdit.php:118 ../templates/selfService/profManage.php:206 +#: ../templates/schema/schema.php:348 ../lib/modules/zarafaUser.inc:116 +#: ../lib/modules/zarafaUser.inc:238 ../lib/modules/zarafaUser.inc:361 +#: ../lib/modules/zarafaUser.inc:535 ../lib/modules/zarafaUser.inc:1251 +#: ../lib/modules/zarafaUser.inc:1797 ../lib/modules/kolabSharedFolder.inc:162 +#: ../lib/modules/kolabSharedFolder.inc:201 +#: ../lib/modules/kolabSharedFolder.inc:241 +#: ../lib/modules/kolabSharedFolder.inc:302 +#: ../lib/modules/kolabSharedFolder.inc:571 +#: ../lib/modules/customFields.inc:100 ../lib/modules/customFields.inc:1070 +#: ../lib/modules/customFields.inc:1702 +msgid "Type" +msgstr "Tipo" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:210 ../lib/modules/posixAccount.inc:228 +#: ../lib/modules/posixAccount.inc:497 +msgid "UID generator" +msgstr "Generador UID" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID has changed. Do you want to change home directory?" +msgstr "" +"El UID ha cambiado. Quiere cambiar el nombre del directorio del usuario?" + +#: ../lib/modules/posixAccount.inc:107 +msgid "" +"UID must be a number. It has to be inside the UID range which is defined in " +"your configuration profile." +msgstr "" +"El UID debe ser un numero. También se debe hallar dentro del rango de UIDs " +"definido en su configuración." + +#: ../lib/types/host.inc:95 ../lib/types/user.inc:92 +#: ../lib/modules/qmailUser.inc:112 ../lib/modules/qmailUser.inc:231 +#: ../lib/modules/qmailUser.inc:332 ../lib/modules/qmailUser.inc:418 +#: ../lib/modules/qmailUser.inc:570 ../lib/modules/qmailUser.inc:1142 +#: ../lib/modules/posixAccount.inc:108 ../lib/modules/posixAccount.inc:291 +#: ../lib/modules/posixAccount.inc:383 ../lib/modules/posixAccount.inc:412 +#: ../lib/modules/posixAccount.inc:449 ../lib/modules/posixAccount.inc:453 +#: ../lib/modules/posixAccount.inc:461 ../lib/modules/posixAccount.inc:1433 +#: ../lib/modules/posixAccount.inc:1852 +msgid "UID number" +msgstr "Número UID" + +#: ../lib/modules/posixAccount.inc:108 +#, php-format +msgid "" +"UID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -uid %s -exec chown %s {} \\;'" +msgstr "" +"El UID ha cambiado. Para conservar los permisos, debe ejecutar como root: " +"'find / -uid %s -exec chown %s {} \\;" + +#: ../lib/modules/qmailUser.inc:463 +msgid "UID number is already in use." +msgstr "El UID ya está en uso." + +#: ../lib/modules/posixAccount.inc:99 +msgid "UID ranges for Unix accounts" +msgstr "Rangos de UID para cuentas Unix" + +#: ../lib/modules/sambaSamAccount.inc:306 +msgid "" +"UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced " +"with user and group name." +msgstr "" +"Path UNC (\\\\servidor\\recurso) del directorio del usuario. $user y $group " +"serán reemplazados con el nombre del usuario y el grupo." + +#: ../lib/modules/windowsUser.inc:248 +msgid "" +"UNC-path (\\\\server\\share\\) of home directory. If no home drive is set " +"then this directory must start with a drive letter (e.g. \"c:\\dir\\user\")." +msgstr "" +"UNC-path (\\\\servidor\\compartido\\) de directorio home. Si no es " +"seleccionada una unidad home entonces el directorio debe empezar con letra " +"de unidad (p.ej. \"c:\\dir\\usuario\")." + +#: ../lib/modules/eduPerson.inc:119 ../lib/modules/eduPerson.inc:123 +msgid "" +"URI (either URN or URL) that indicates a set of rights to specific resources." +msgstr "" +"URL (ya sea URN o URL) que indica una serie de derechos a los recursos " +"especificados." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1883 +msgid "URL" +msgstr "Dirección URL" + +#: ../lib/modules/bindDLZ.inc:1687 ../lib/modules/bindDLZ.inc:2302 +msgid "Unable to add DNS record." +msgstr "No se puede agregar registro DNS." + +#: ../lib/modules/imapAccess.inc:180 +msgid "Unable to change ACL on IMAP server for mailbox deletion." +msgstr "" +"Imposible cambiar ACL en servidor IMAP para borrado de buzón de correo." + +#: ../lib/modules/mitKerberos.inc:1155 ../lib/modules/mitKerberos.inc:1159 +#: ../lib/modules/heimdalKerberos.inc:1024 +msgid "Unable to change Kerberos password." +msgstr "Imposible cambiar la contraseña de Kerberos." + +#: ../lib/modules/windowsUser.inc:1847 ../lib/modules/windowsUser.inc:1873 +msgid "Unable to change password." +msgstr "Imposible cambiar la contraseña." + +#: ../templates/selfService/selfServiceMain.php:338 +msgid "" +"Unable to change your account. Maybe you do not have enough rights to change " +"the settings." +msgstr "" +"No se puede cambiar su cuenta. Tal vez usted no tiene permisos para cambiar " +"la configuración." + +#: ../templates/selfService/selfServiceMain.php:335 +msgid "" +"Unable to change your account. Your changes might violate the password " +"policy." +msgstr "" +"No se puede cambiar su contraseña. Sus cambios no siguen la política de " +"contraseñas." + +#: ../templates/tests/lamdaemonTest.php:261 ../lib/lamdaemon.inc:76 +#: ../lib/lamdaemon.inc:81 +msgid "Unable to connect to remote server!" +msgstr "No se puede conectar con el servidor remoto" + +#: ../templates/massDoUpload.php:193 +msgid "Unable to create ZIP file for PDF export." +msgstr "Imposible crear archivo ZIP para la exportación PDF." + +#: ../lib/modules/selfRegistration.inc:699 +#: ../lib/modules/selfRegistration.inc:703 +msgid "Unable to create account." +msgstr "No es posible crear la cuenta" + +#: ../lib/modules/imapAccess.inc:182 +msgid "Unable to create mailbox on IMAP server." +msgstr "No se puede crear el buzón de correo en el servidor IMAP." + +#: ../templates/ou_edit.php:80 +msgid "Unable to create new OU!" +msgstr "No se pudo crear la nueva OU!" + +#: ../lib/types/automountType.inc:270 +msgid "Unable to create new automount map." +msgstr "No se pudo crear el nuevo mapeo automount." + +#: ../templates/config/profmanage.php:82 +#: ../templates/selfService/profManage.php:59 +msgid "Unable to create new profile!" +msgstr "No se pudo crear el nuevo perfil!" + +#: ../lib/types/bind.inc:215 +msgid "Unable to create new zone." +msgstr "Imposible crear nueva zona." + +#: ../lib/modules/bindDLZ.inc:1677 +#, php-format +msgid "Unable to delete DNS record \"%s\"." +msgstr "Imposible eliminar el registro DNS: %s." + +#: ../templates/ou_edit.php:97 +msgid "Unable to delete OU!" +msgstr "No se pudo borrar la OU!" + +#: ../templates/pdfedit/pdfmain.php:94 +msgid "Unable to delete PDF structure!" +msgstr "No se pudo borrar la estructura de PDF!" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:25 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:57 +msgid "Unable to delete entry, it does not exist" +msgstr "No se pudo borrar la entrada ya que no existe" + +#: ../lib/pdfstruct.inc:291 ../lib/pdfstruct.inc:303 +msgid "Unable to delete logo file." +msgstr "Imposible borrar el archivo del logo." + +#: ../lib/modules/imapAccess.inc:181 +msgid "Unable to delete mailbox from IMAP server." +msgstr "No se pudo borrar la casilla de correo desde el servidor IMAP" + +#: ../templates/config/profmanage.php:123 +#: ../templates/selfService/profManage.php:87 +#: ../templates/profedit/profilemain.php:108 ../lib/config.inc:154 +#: ../lib/config.inc:166 ../lib/config.inc:173 ../lib/config.inc:181 +msgid "Unable to delete profile!" +msgstr "No se pudo borrar el perfil!" + +#: ../lib/modules/pykotaPrinter.inc:220 +#, php-format +msgid "Unable to find a printer with name \"%s\"." +msgstr "No se pudo encontrar la impresora con nombre \"%s\"." + +#: ../lib/modules/posixAccount.inc:2072 ../lib/modules/posixAccount.inc:2081 +#: ../lib/modules/posixAccount.inc:2347 ../lib/modules/nisnetgroup.inc:543 +#: ../lib/modules/groupOfNamesUser.inc:388 +msgid "Unable to find group in LDAP." +msgstr "No se pudo encontrar el grupo en LDAP." + +#: ../lib/modules/passwordSelfReset.inc:950 +msgid "Unable to find password security answer for this account." +msgstr "" +"Imposible encontrar la pregunta de seguridad de la contraseña para esta " +"cuenta." + +#: ../lib/modules/passwordSelfReset.inc:942 +#: ../lib/modules/passwordSelfReset.inc:1161 +msgid "Unable to find password security question for this account." +msgstr "" +"Imposible encontrar la pregunta de seguridad de la contraseña para esta " +"cuenta." + +#: ../lib/modules/organizationalRoleUser.inc:334 +msgid "Unable to find role in LDAP." +msgstr "No se pudo encontrar el rol en LDAP." + +#: ../templates/login.php:591 ../templates/login.php:597 +msgid "Unable to find the user name in LDAP." +msgstr "No se pudo encontrar el nombre de usuario en el LDAP." + +#: ../lib/modules/passwordSelfReset.inc:933 +#: ../lib/modules/passwordSelfReset.inc:1242 +msgid "Unable to find user account." +msgstr "No se pudo encontrar el nombre de cuenta de usuario" + +#: ../templates/config/mainmanage.php:194 +msgid "Unable to import server certificate. Please use the upload function." +msgstr "Imposible importar certificado Por favor utilice la función de subida." + +#: ../lib/modules.inc:1521 ../lib/modules.inc:1525 +msgid "Unable to load LDAP entry:" +msgstr "No se puede cargar la entrada LDAP" + +#: ../lib/profiles.inc:98 ../lib/profiles.inc:102 ../lib/selfService.inc:196 +#: ../lib/selfService.inc:200 +msgid "Unable to load profile!" +msgstr "No se pudo cargar el perfil!" + +#: ../lib/modules/imapAccess.inc:183 +msgid "Unable to locate mailbox on IMAP." +msgstr "No se pudo localizar el correo electrónico en IMAP." + +#: ../lib/modules/inetOrgPerson.inc:101 +msgid "Unable to process this file." +msgstr "No se pudo procesar el archivo." + +#: ../templates/3rdParty/pla/lib/import_functions.php:388 +#: ../templates/3rdParty/pla/lib/import_functions.php:393 +msgid "Unable to read file." +msgstr "No se pudo leer el archivo." + +#: ../lib/modules/selfRegistration.inc:692 +msgid "Unable to register your new account. Please try again." +msgstr "" +"Imposible verificar su solicitud de creación de usuario. Por favor reintente " +"nuevamente." + +#: ../lib/modules/passwordSelfReset.inc:1440 +#: ../lib/modules/passwordSelfReset.inc:1449 +#: ../lib/modules/passwordSelfReset.inc:1455 +#: ../lib/modules/passwordSelfReset.inc:1464 +msgid "Unable to reset password." +msgstr "Imposible restablecer contraseña." + +#: ../templates/3rdParty/pla/lib/functions.php:1945 +msgid "Unable to retrieve image" +msgstr "No se pudo obtener la imagen." + +#: ../templates/tests/schemaTest.php:61 ../templates/schema/schema.php:93 +#: ../templates/schema/schema.php:111 ../templates/schema/schema.php:272 +#: ../templates/schema/schema.php:306 +msgid "Unable to retrieve schema!" +msgstr "No se pudo obtener el esquema!" + +#: ../templates/selfService/adminMain.php:283 +#: ../templates/profedit/profilepage.php:124 +msgid "Unable to save profile!" +msgstr "No se pudo gravar el perfil!" + +#: ../lib/account.inc:999 ../lib/account.inc:1037 +msgid "Unable to send mail!" +msgstr "No se puede enviar correo" + +#: ../lib/modules/bindDLZ.inc:1712 +#, php-format +msgid "Unable to update DNS record \"%s\"." +msgstr "Imposible actualizar el registro DNS: \"%s\"." + +#: ../lib/pdfstruct.inc:249 ../lib/pdfstruct.inc:259 ../lib/pdfstruct.inc:262 +msgid "Unable to upload logo file." +msgstr "No se pudo cargar el archivo del logo." + +#: ../lib/modules/passwordSelfReset.inc:999 +#: ../lib/modules/passwordSelfReset.inc:1254 +msgid "Unable to verify your password reset request. Please try again." +msgstr "" +"Imposible verificar su solicitud de cambio de contraseña. Por favor, " +"reintente." + +#: ../lib/modules/selfRegistration.inc:726 +msgid "Unable to verify your user creation request. Please try again." +msgstr "" +"Imposible verificar su solicitud de creación de usuario. Por favor reintente." + +#: ../templates/serverInfo.php:293 +msgid "Unbind" +msgstr "Desatar" + +#: ../lib/modules/windowsGroup.inc:66 +msgid "Universal" +msgstr "Universal" + +#: ../templates/lists/changePassword.php:398 +#: ../templates/lists/changePassword.php:429 ../lib/types/user.inc:268 +#: ../lib/types/user.inc:368 ../lib/types/user.inc:400 +#: ../lib/types/user.inc:821 ../lib/modules/posixGroup.inc:373 +#: ../lib/modules/posixAccount.inc:168 +msgid "Unix" +msgstr "Unix" + +#: ../templates/tests/lamdaemonTest.php:214 +msgid "Unix account" +msgstr "Cuenta de UNIX" + +#: ../lib/modules/posixAccount.inc:263 ../lib/modules/posixAccount.inc:1566 +msgid "Unix groups" +msgstr "Grupos de Unix" + +#: ../lib/modules/dhcp_settings.inc:201 ../lib/modules/dhcp_settings.inc:218 +#: ../lib/modules/dhcp_settings.inc:294 ../lib/modules/dhcp_settings.inc:602 +#: ../lib/modules/dhcp_settings.inc:682 +msgid "Unknown clients" +msgstr "Clientes desconocidos" + +#: ../lib/modules/kolabUser.inc:252 ../lib/modules/kolabSharedFolder.inc:256 +#, php-format +msgid "Unknown delegate address: %s" +msgstr "Dirección delegada desconocida: %s" + +#: ../templates/3rdParty/pla/lib/import_functions.php:233 +msgid "Unkown change type" +msgstr "Tipo de cambio no conocido" + +#: ../lib/types/user.inc:349 ../lib/types/user.inc:354 +#: ../lib/modules/windowsUser.inc:732 +msgid "Unlock" +msgstr "Desbloquear cuenta" + +#: ../templates/lists/changePassword.php:205 +#: ../templates/lists/changePassword.php:395 +#: ../templates/lists/changePassword.php:415 +#: ../templates/lists/changePassword.php:417 +#: ../lib/modules/ppolicyUser.inc:146 +msgid "Unlock account" +msgstr "Desbloquear cuenta" + +#: ../templates/lists/changePassword.php:265 +msgid "Unlock account?" +msgstr "Desbloquear cuenta?" + +#: ../lib/modules/posixGroup.inc:211 ../lib/modules/posixAccount.inc:1502 +#: ../lib/modules/inetOrgPerson.inc:1562 +msgid "Unlock password" +msgstr "Desbloquear contraseña" + +#: ../templates/masscreate.php:107 ../templates/config/confmodules.php:386 +msgid "Unsolved dependency:" +msgstr "Dependencia sin resolver:" + +#: ../templates/pdfedit/pdfpage.php:473 +msgid "Up" +msgstr "Arriba" + +#: ../templates/lists/changePassword.php:220 +msgid "Update Samba password timestamp" +msgstr "Actualizar estampa de tiempo de la contraseña de Samba" + +#: ../lib/modules/sambaSamAccount.inc:249 +msgid "Update attribute \"sambaPwdLastSet\" on password change" +msgstr "Actualizar atributo \"sambaPwdLastSet\" en cambiar contraseña." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1440 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:194 +msgid "Update object" +msgstr "Actualizar objeto" + +#: ../lib/modules/imapAccess.inc:322 ../lib/modules/imapAccess.inc:331 +msgid "Update quota" +msgstr "Actualizar quota" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:165 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:129 +msgid "Update values" +msgstr "Actualizar valores" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:118 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:118 +msgid "Updating object" +msgstr "Actualizando objeto" + +#: ../templates/config/mainmanage.php:334 ../templates/pdfedit/pdfmain.php:247 +#: ../lib/modules/ldapPublicKey.inc:126 ../lib/modules/inetOrgPerson.inc:1830 +msgid "Upload" +msgstr "Subir" + +#: ../templates/config/mainmanage.php:336 +msgid "Upload CA certificate in DER/PEM format." +msgstr "Subir certificado CA en formato DER/PEM." + +#: ../lib/modules/ldapPublicKey.inc:81 +msgid "Upload a file with one or more keys. Each line contains one key." +msgstr "" +"Subir un archivo con una o más entradas. Cada línea contiene una entrada." + +#: ../templates/massBuildAccounts.php:242 +msgid "Upload accounts to LDAP" +msgstr "Subir cuentas al LDAP" + +#: ../lib/modules/ldapPublicKey.inc:122 ../lib/modules/customFields.inc:164 +#: ../lib/modules/customFields.inc:3428 +msgid "Upload file" +msgstr "Cargar archivo" + +#: ../templates/masscreate.php:277 +msgid "Upload file and create accounts" +msgstr "Subir archivo y crear cuentas" + +#: ../templates/massDoUpload.php:254 ../lib/lists.inc:1071 +msgid "Upload has finished" +msgstr "Subida finalizada." + +#: ../lib/modules.inc:504 +#, php-format +msgid "Upload was stopped after errors in %s module!" +msgstr "Se abortó la transferencia debido a errores en el módulo %s!" + +#: ../lib/pdfstruct.inc:256 +msgid "Uploaded logo file." +msgstr "Archivo de logo subido." + +#: ../templates/serverInfo.php:222 +msgid "Uptime" +msgstr "Tiempo de encendido" + +#: ../templates/schema/schema.php:209 +msgid "Usage" +msgstr "Uso" + +#: ../lib/modules/authorizedServiceObject.inc:82 +#: ../lib/modules/authorizedServiceObject.inc:86 +msgid "Use * for all services." +msgstr "Usar * para todos los servicios" + +#: ../lib/modules/sambaSamAccount.inc:267 +#: ../lib/modules/sambaSamAccount.inc:270 +#: ../lib/modules/sambaSamAccount.inc:431 +msgid "Use Unix password" +msgstr "Usar la constraseña Unix" + +#: ../templates/selfService/adminMain.php:469 ../help/help.inc:242 +msgid "Use for all operations" +msgstr "Uso para todas las operaciones" + +#: ../lib/modules/sambaSamAccount.inc:273 +#: ../lib/modules/sambaSamAccount.inc:276 +#: ../lib/modules/sambaSamAccount.inc:439 +#: ../lib/modules/sambaSamAccount.inc:1143 +#: ../lib/modules/sambaSamAccount.inc:1733 +msgid "Use no password" +msgstr "No utilizar ninguna contraseña" + +#: ../help/help.inc:272 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of entries to modify." +msgstr "" +"Utilice esto para ingresar filtros LDAP adicionales (p.ej. \"(cn!=admin)\") " +"para reducir el número de entradas a modificar." + +#: ../help/help.inc:171 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of visible elements for this account type." +msgstr "" +"Utilice esto para ingresar filtros LDAP adicionales (p.ej. \"(cn!=admin)\") " +"para reducir el número de elementos visibles para este tipo de cuenta." + +#: ../help/help.inc:241 +msgid "" +"Use this to enter an additional LDAP filter (e.g. " +"\"(objectClass=passwordSelfReset)\") to reduce the number of accounts who " +"may use self service." +msgstr "" +"Utilice esto para ingresar filtros LDAP adicionales (p.ej. " +"\"(objectClass=passwordSelfReset)\") para reducir el número de cuentas de " +"usuarios que pueden utilizar el autoservicio." + +#: ../lib/modules/asteriskAccount.inc:188 +msgid "Use this to hide the caller ID." +msgstr "Utilice esto para ocultar el caller ID." + +#: ../lib/modules/zarafaDynamicGroup.inc:80 +#: ../lib/modules/zarafaContact.inc:72 ../lib/modules/zarafaGroup.inc:86 +#: ../lib/modules/zarafaAddressList.inc:68 ../lib/modules/zarafaUser.inc:81 +msgid "Use this to hide this entry from the address book." +msgstr "Usar esto para ocultar esta entrada " + +#: ../lib/modules/sambaGroupMapping.inc:167 +msgid "" +"Use this to specify other groups or accounts from other domains as group " +"members." +msgstr "" +"Utilice esto para especificar otros grupos o cuentas desde otros dominios o " +"miembros de grupo." + +#: ../lib/modules/imapAccess.inc:87 +msgid "" +"Use wildcards like $uid$ for LDAP attributes of the current LAM admin user." +msgstr "" +"Usar comodines como $uid$ para atributos LDAP para el actual usuario " +"administrador LAM." + +#: ../lib/modules/pykotaBillingCode.inc:86 +msgid "Used balance for the billing code." +msgstr "Balance utilizado para el código de facturación." + +#: ../lib/modules/quota.inc:109 ../lib/modules/quota.inc:400 +msgid "Used blocks" +msgstr "Bloques en uso" + +#: ../lib/modules/quota.inc:110 +msgid "Used blocks. 1000 blocks are usually 1MB" +msgstr "Bloques en uso. 1000 bloques son normalmente 1 Mega" + +#: ../templates/schema/schema.php:268 +msgid "Used by attributes" +msgstr "Usado por los atributos" + +#: ../templates/schema/schema.php:237 +msgid "Used by object classes" +msgstr "Usado por clases de objeto" + +#: ../lib/modules/sambaDomain.inc:98 +msgid "Used for calculating RIDs from UID/GID. Do not change if unsure." +msgstr "" +"Usado para calcular RIDs a partir de UIDs/GIDs. No lo cambie si no está " +"seguro de lo que hace." + +#: ../lib/modules/asteriskAccount.inc:220 +msgid "Used for registration context." +msgstr "Usado para contexto de registración." + +#: ../lib/modules/quota.inc:131 ../lib/modules/quota.inc:404 +msgid "Used inodes" +msgstr "Inodos usados" + +#: ../lib/modules/quota.inc:132 +msgid "Used inodes (files)" +msgstr "Inodos usados (archivos)" + +#: ../lib/modules/asteriskAccount.inc:192 +msgid "Used to automatically hangup the call if no RTP traffic is received." +msgstr "" +"Usado para atender automáticamente la llamada si no es recibido tráfico RTP." + +#: ../lib/modules/asteriskAccount.inc:168 +#: ../lib/modules/asteriskAccount.inc:172 +msgid "" +"Used to limit SIP traffic to and from this peer to a certain IP or network." +msgstr "" +"Usado para limitar el tráfico SIP desde y hacia este par a cierto IP o red." + +#: ../lib/modules/asteriskAccount.inc:184 +msgid "Used to regularly check that a device is still online." +msgstr "Usado para regularmente chequear que un dispositivo está aún en línea." + +#: ../lib/types/sudo.inc:78 ../lib/modules/nisnetgroup.inc:220 +#: ../lib/modules/nisnetgroup.inc:586 ../lib/modules/nisMailAlias.inc:350 +msgid "User" +msgstr "Usuario" + +#: ../lib/types/user.inc:62 +msgid "User accounts (e.g. Unix, Samba and Kolab)" +msgstr "Cuentas de usuario (p.ej. UNIX,Samba y Kolab)" + +#: ../lib/modules/asteriskAccount.inc:127 +#: ../lib/modules/asteriskAccount.inc:270 +#: ../lib/modules/asteriskAccount.inc:340 +#: ../lib/modules/asteriskAccount.inc:598 +#: ../lib/modules/asteriskAccount.inc:986 +#: ../lib/modules/asteriskAccount.inc:1241 +msgid "User agent" +msgstr "Agente de usuario" + +#: ../lib/modules/sambaSamAccount.inc:297 +#: ../lib/modules/sambaSamAccount.inc:1167 +msgid "User can change password" +msgstr "El usuario puede cambiar la contraseña" + +#: ../lib/modules/inetOrgPerson.inc:163 ../lib/modules/inetOrgPerson.inc:844 +#: ../lib/modules/inetOrgPerson.inc:1507 ../lib/modules/inetOrgPerson.inc:2719 +#: ../lib/modules/inetOrgPerson.inc:3561 +msgid "User certificates" +msgstr "Certificados de usuario" + +#: ../lib/types/user.inc:529 +#, php-format +msgid "User count: %s" +msgstr "Conteo de usuarios: %s" + +#: ../lib/modules/pykotaUser.inc:121 +msgid "User description." +msgstr "Descripción de usuario." + +#: ../lib/modules/posixAccount.inc:511 +msgid "User description. If left empty first and last name will be used." +msgstr "" +"Descripcción del usuario. Si se deja en blanco, se usará el nombre y el " +"apellido." + +#: ../lib/modules/inetOrgPerson.inc:633 +msgid "User description. If left empty sur- and give name will be used." +msgstr "" +"Descripcción del usuario. Si se deja en blanco, se usará el apellido y el " +"\"givename\"" + +#: ../lib/modules/account.inc:106 +msgid "User description. If left empty user name will be used." +msgstr "" +"Descripcion del usuario. Si se deja en blanco, el nombre del usuario será " +"usado." + +#: ../templates/schema/schema.php:204 +msgid "User modification" +msgstr "Modificación del usuario" + +#: ../lib/modules/mitKerberos.inc:224 ../lib/modules/mitKerberos.inc:250 +#: ../lib/modules/mitKerberos.inc:374 ../lib/modules/mitKerberos.inc:639 +#: ../lib/modules/mitKerberos.inc:779 ../lib/modules/sambaSamAccount.inc:299 +#: ../lib/modules/sambaSamAccount.inc:1173 ../lib/modules/windowsUser.inc:741 +#: ../lib/modules/heimdalKerberos.inc:106 +#: ../lib/modules/heimdalKerberos.inc:193 +#: ../lib/modules/heimdalKerberos.inc:220 +#: ../lib/modules/heimdalKerberos.inc:332 +#: ../lib/modules/heimdalKerberos.inc:549 +#: ../lib/modules/heimdalKerberos.inc:683 +msgid "User must change password" +msgstr "El usuario debe cambiar la contraseña" + +#: ../templates/lists/changePassword.php:276 ../templates/login.php:334 +#: ../lib/types/alias.inc:91 ../lib/types/user.inc:91 +#: ../lib/selfService.inc:385 ../lib/modules/mitKerberos.inc:116 +#: ../lib/modules/mitKerberos.inc:211 ../lib/modules/mitKerberos.inc:249 +#: ../lib/modules/mitKerberos.inc:343 ../lib/modules/mitKerberos.inc:766 +#: ../lib/modules/selfRegistration.inc:393 +#: ../lib/modules/selfRegistration.inc:467 +#: ../lib/modules/selfRegistration.inc:475 ../lib/modules/account.inc:85 +#: ../lib/modules/account.inc:101 ../lib/modules/account.inc:124 +#: ../lib/modules/account.inc:126 ../lib/modules/account.inc:127 +#: ../lib/modules/account.inc:210 ../lib/modules/account.inc:230 +#: ../lib/modules/account.inc:254 ../lib/modules/uidObject.inc:45 +#: ../lib/modules/uidObject.inc:67 ../lib/modules/uidObject.inc:76 +#: ../lib/modules/uidObject.inc:85 ../lib/modules/uidObject.inc:100 +#: ../lib/modules/uidObject.inc:161 ../lib/modules/posixAccount.inc:113 +#: ../lib/modules/posixAccount.inc:114 ../lib/modules/posixAccount.inc:117 +#: ../lib/modules/posixAccount.inc:283 ../lib/modules/posixAccount.inc:409 +#: ../lib/modules/posixAccount.inc:506 ../lib/modules/posixAccount.inc:1420 +#: ../lib/modules/posixAccount.inc:1842 ../lib/modules/windowsUser.inc:107 +#: ../lib/modules/windowsUser.inc:264 ../lib/modules/windowsUser.inc:498 +#: ../lib/modules/windowsUser.inc:589 ../lib/modules/windowsUser.inc:689 +#: ../lib/modules/windowsUser.inc:1585 ../lib/modules/pykotaUser.inc:112 +#: ../lib/modules/pykotaUser.inc:208 ../lib/modules/pykotaUser.inc:268 +#: ../lib/modules/pykotaUser.inc:311 ../lib/modules/pykotaUser.inc:313 +#: ../lib/modules/pykotaUser.inc:340 ../lib/modules/pykotaUser.inc:889 +#: ../lib/modules/nisnetgroup.inc:152 ../lib/modules/nisnetgroup.inc:482 +#: ../lib/modules/inetOrgPerson.inc:95 ../lib/modules/inetOrgPerson.inc:163 +#: ../lib/modules/inetOrgPerson.inc:624 ../lib/modules/inetOrgPerson.inc:744 +#: ../lib/modules/inetOrgPerson.inc:1161 ../lib/modules/inetOrgPerson.inc:1164 +#: ../lib/modules/inetOrgPerson.inc:1908 ../lib/modules/inetOrgPerson.inc:2043 +#: ../lib/modules/inetOrgPerson.inc:2777 ../lib/modules/inetOrgPerson.inc:3569 +#: ../lib/modules/inetOrgPerson.inc:3594 +#: ../lib/modules/passwordSelfReset.inc:499 +#: ../lib/modules/passwordSelfReset.inc:843 +#: ../lib/modules/passwordSelfReset.inc:1015 +#: ../lib/modules/heimdalKerberos.inc:94 +#: ../lib/modules/heimdalKerberos.inc:180 +#: ../lib/modules/heimdalKerberos.inc:218 +#: ../lib/modules/heimdalKerberos.inc:293 +#: ../lib/modules/heimdalKerberos.inc:676 +msgid "User name" +msgstr "Nombre del usuario" + +#: ../lib/modules/windowsUser.inc:115 ../lib/modules/windowsUser.inc:449 +#: ../lib/modules/windowsUser.inc:529 ../lib/modules/windowsUser.inc:565 +#: ../lib/modules/windowsUser.inc:593 ../lib/modules/windowsUser.inc:698 +#: ../lib/modules/windowsUser.inc:1587 +msgid "User name (pre W2K)" +msgstr "Nombre del usuario (pre W2K)" + +#: ../lib/modules/selfRegistration.inc:475 ../lib/modules/posixAccount.inc:121 +#: ../lib/modules/pykotaUser.inc:313 ../lib/modules/pykotaUser.inc:314 +#: ../lib/modules/pykotaUser.inc:317 ../lib/modules/pykotaUser.inc:318 +#: ../lib/modules/inetOrgPerson.inc:97 +msgid "User name already exists!" +msgstr "El nombre del usuario ya existe!" + +#: ../lib/modules/passwordSelfReset.inc:501 +msgid "User name and email address" +msgstr "Nombre de usuario y dirección de correo electrónico" + +#: ../lib/modules/imapAccess.inc:103 ../lib/modules/imapAccess.inc:144 +msgid "User name attribute" +msgstr "Atributo de nombre de usuario" + +#: ../lib/modules/mitKerberos.inc:289 ../lib/modules/mitKerberos.inc:290 +#: ../lib/modules/selfRegistration.inc:467 ../lib/modules/account.inc:124 +#: ../lib/modules/account.inc:125 ../lib/modules/account.inc:127 +#: ../lib/modules/zarafaContact.inc:187 ../lib/modules/zarafaContact.inc:188 +#: ../lib/modules/uidObject.inc:85 ../lib/modules/zarafaGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:223 ../lib/modules/posixAccount.inc:114 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/zarafaUser.inc:419 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/windowsUser.inc:589 +#: ../lib/modules/windowsUser.inc:590 ../lib/modules/windowsUser.inc:593 +#: ../lib/modules/windowsUser.inc:594 ../lib/modules/pykotaUser.inc:311 +#: ../lib/modules/pykotaUser.inc:312 ../lib/modules/pykotaUser.inc:315 +#: ../lib/modules/pykotaUser.inc:316 ../lib/modules/nisnetgroup.inc:152 +#: ../lib/modules/inetOrgPerson.inc:95 ../lib/modules/inetOrgPerson.inc:96 +#: ../lib/modules/passwordSelfReset.inc:893 +#: ../lib/modules/passwordSelfReset.inc:1115 +#: ../lib/modules/heimdalKerberos.inc:253 +#: ../lib/modules/heimdalKerberos.inc:254 +msgid "" +"User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"El nombre del usuario contiene caracteres inválidos. Los caracteres válidos " +"son: a-z, A-Z, 0-9,y .-_ !" + +#: ../lib/modules/windowsUser.inc:253 +msgid "User name for NIS." +msgstr "Nombre del usuario para NIS." + +#: ../lib/modules/posixAccount.inc:117 +msgid "User name in use. Selected next free user name." +msgstr "" +"El nombre del usuario está en uso. Se seleccionó el próximo nombre " +"disponible." + +#: ../lib/modules/mitKerberos.inc:117 ../lib/modules/account.inc:102 +#: ../lib/modules/pykotaUser.inc:113 ../lib/modules/inetOrgPerson.inc:745 +#: ../lib/modules/heimdalKerberos.inc:95 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_." +msgstr "" +"Nombre de usuario a crear. Los caracteres válidos son: a-z,A-Z,0-9, @.-_." + +#: ../lib/modules/posixAccount.inc:507 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_. If user name is already used user name will be expanded with a " +"number. The next free number will be used." +msgstr "" +"Nombre de usuario a crear. Los caracteres válidos son: a-z,A-Z,0-9, @.-_. Si " +"el nombre de usuario ay está en uso, se expandirá con un número. Se " +"utilizará el próximo número disponible." + +#: ../lib/modules/passwordSelfReset.inc:502 +#: ../lib/modules/passwordSelfReset.inc:867 +#: ../lib/modules/passwordSelfReset.inc:1035 +msgid "User name or email address" +msgstr "Nombre de usuario o correo electrónico" + +#: ../lib/modules/posixAccount.inc:270 ../lib/modules/posixAccount.inc:436 +msgid "User name suggestion" +msgstr "Nombre de usuario sugerido" + +#: ../lib/modules/pykotaUser.inc:125 +msgid "User name that is used for PyKota." +msgstr "Nombre de usuario que es uso para PyKota." + +#: ../lib/modules/windowsUser.inc:752 +msgid "User profile" +msgstr "Perfil de usuario" + +#: ../lib/modules/selfRegistration.inc:45 +msgid "User self registration" +msgstr "Autoregistración de Usuario" + +#: ../lib/modules/zarafaUser.inc:128 ../lib/modules/zarafaUser.inc:275 +#: ../lib/modules/zarafaUser.inc:373 ../lib/modules/zarafaUser.inc:614 +#: ../lib/modules/zarafaUser.inc:1233 ../lib/modules/zarafaUser.inc:1322 +#: ../lib/modules/zarafaUser.inc:1805 +msgid "User server" +msgstr "Servidor de usuario" + +#: ../lib/types/user.inc:53 ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:97 +#: ../lib/modules/posixAccount.inc:209 ../lib/modules/zarafaUser.inc:1779 +#: ../lib/modules/sudoRole.inc:74 ../lib/modules/sudoRole.inc:98 +#: ../lib/modules/sudoRole.inc:159 ../lib/modules/sudoRole.inc:216 +#: ../lib/modules/sudoRole.inc:228 ../lib/modules/sudoRole.inc:316 +#: ../lib/modules/sudoRole.inc:806 +msgid "Users" +msgstr "Usuarios" + +#: ../lib/modules/zarafaContact.inc:80 ../lib/modules/zarafaGroup.inc:94 +#: ../lib/modules/zarafaUser.inc:105 +msgid "Users or groups that may directly send email as this user." +msgstr "" +"Usuarios y grupos que pueden enviar directamente correos electrónicos como " +"este usuario." + +#: ../lib/modules/posixGroup.inc:489 +msgid "" +"Users who are member of the current group. Users who have set their primary " +"group to this group will not be shown." +msgstr "" +"Usuarios que son miembros del grupo actual. No se mostrarán los usuarios que " +"hayan establecido este como su grupo primario." + +#: ../lib/modules/posixGroup.inc:493 +msgid "" +"Users who will become member of the current group. User names are separated " +"by semicolons." +msgstr "" +"Usuarios que serán miembros del grupo actual. Los nombres deben ser " +"separados por punto y coma." + +#: ../templates/tests/lamdaemonTest.php:207 +#, php-format +msgid "Using %s as lamdaemon remote server." +msgstr "Utilizando %s como servidor remoto de lamdaemon." + +#: ../templates/tests/lamdaemonTest.php:229 +#, php-format +msgid "Using %s to connect to remote server." +msgstr "Utilizando %s para conectarse al servidor remoto." + +#: ../lib/modules/posixAccount.inc:446 +msgid "" +"Usually, users are not added to groups as memberUid if they have this group " +"as primary group. If your application ignores primary groups then you can " +"select this option to override this behaviour." +msgstr "" +"Usualmente, los usuarios no se agregan a los grupos como memberUid si tienen " +"este grupo como grupo primario. Si su aplicación ignora los grupos " +"primarios, entonces puede selecionar esta opción para anular este " +"comportamiento." + +#: ../templates/3rdParty/pla/lib/export_functions.php:543 +msgid "VCARD 2.1 Export" +msgstr "Exportar VCARD 2.1" + +#: ../templates/config/mainmanage.php:360 +msgid "Valid to" +msgstr "Válido de" + +#: ../help/help.inc:92 +msgid "Valid users" +msgstr "Usuarios válidos" + +#: ../lib/modules/imapAccess.inc:83 ../lib/modules/imapAccess.inc:121 +msgid "Validate server certificate" +msgstr "Validar certificado del servidor" + +#: ../lib/modules/customFields.inc:108 ../lib/modules/customFields.inc:1899 +msgid "Validation expression" +msgstr "Expresión de Validación" + +#: ../lib/modules/customFields.inc:112 ../lib/modules/customFields.inc:1904 +msgid "Validation message" +msgstr "Mensaje de Validación" + +#: ../templates/multiEdit.php:120 ../lib/modules/customFields.inc:2959 +msgid "Value" +msgstr "Valor" + +#: ../lib/modules/customFields.inc:116 ../lib/modules/customFields.inc:2749 +msgid "Value for \"checked\"" +msgstr "Valor para \"checked\"" + +#: ../lib/modules/customFields.inc:120 ../lib/modules/customFields.inc:2755 +msgid "Value for \"unchecked\"" +msgstr "Valor para \"unchecked\"" + +#: ../lib/modules/customFields.inc:140 ../lib/modules/customFields.inc:2955 +msgid "Value mapping" +msgstr "Valor de mapeo" + +#: ../templates/3rdParty/pla/lib/import_functions.php:512 +msgid "Value to delete does not exist in DN" +msgstr "El valor a eliminar no existe en el DN" + +#: ../lib/modules/puppetClient.inc:100 ../lib/modules/puppetClient.inc:104 +#: ../lib/modules/puppetClient.inc:146 ../lib/modules/puppetClient.inc:156 +#: ../lib/modules/puppetClient.inc:169 ../lib/modules/puppetClient.inc:277 +#: ../lib/modules/puppetClient.inc:439 +msgid "Variables" +msgstr "Variables" + +#: ../templates/serverInfo.php:134 +msgid "Vendor name" +msgstr "Nombre del proveedor" + +#: ../templates/serverInfo.php:140 +msgid "Vendor version" +msgstr "Versión del proveedor" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +#, php-format +msgid "View %s children" +msgstr "Ver %s hijos" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +msgid "View 1 child" +msgstr "Ver 1 hijo" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1230 +msgid "View the children of this object" +msgstr "Ver los hijos de este objeto" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1028 +msgid "Viewing entry in read-only mode." +msgstr "Mostrando entrada en modo sólo lectura." + +#: ../lib/modules/asteriskVoicemail.inc:119 +#: ../lib/modules/asteriskVoicemail.inc:126 +#: ../lib/modules/asteriskVoicemail.inc:143 +#: ../lib/modules/asteriskVoicemail.inc:196 +#: ../lib/modules/asteriskVoicemail.inc:260 +#: ../lib/modules/asteriskVoicemail.inc:372 +msgid "Voicemail context" +msgstr "Contexto del buzón de voz" + +#: ../lib/modules/asteriskVoicemail.inc:96 +msgid "Voicemail mailbox for this account." +msgstr "Buzón de voz para esta cuenta." + +#: ../templates/login.php:496 +msgid "Want more features? Get LAM Pro!" +msgstr "¿Desea más funciones? ¡Obtenga LAM Pro!" + +#: ../templates/config/mainmanage.php:408 +#: ../templates/3rdParty/pla/lib/page.php:76 +msgid "Warning" +msgstr "Advertencia" + +#: ../templates/delete.php:234 ../lib/modules/nisMailAliasUser.inc:505 +#: ../lib/modules/posixAccount.inc:850 ../lib/modules/posixAccount.inc:903 +#: ../lib/modules/organizationalRoleUser.inc:201 +#: ../lib/modules/organizationalRoleUser.inc:218 +#: ../lib/modules/windowsUser.inc:1123 ../lib/modules/groupOfNamesUser.inc:217 +#: ../lib/modules/groupOfNamesUser.inc:264 ../lib/modules.inc:1900 +#, php-format +msgid "Was unable to add attributes to DN: %s." +msgstr "Imposible añadir atributos al DN: %s." + +#: ../lib/modules/nisMailAliasUser.inc:494 ../lib/modules.inc:1863 +#, php-format +msgid "Was unable to create DN: %s." +msgstr "Imposible crear el DN: %s." + +#: ../templates/delete.php:344 ../templates/delete.php:353 +#: ../lib/modules/nisMailAliasUser.inc:471 +#, php-format +msgid "Was unable to delete DN: %s." +msgstr "Imposible eliminar el DN: %s." + +#: ../templates/lists/changePassword.php:749 +#: ../templates/lists/changePassword.php:787 +#: ../templates/lists/changePassword.php:833 ../templates/delete.php:225 +#, php-format +msgid "Was unable to modify attributes from DN: %s." +msgstr "Imposible modificar atributos del DN: %s." + +#: ../lib/modules/posixAccount.inc:888 ../lib/modules/windowsUser.inc:1149 +#: ../lib/modules/windowsUser.inc:1558 ../lib/modules/groupOfNamesUser.inc:249 +#: ../lib/modules.inc:1882 +#, php-format +msgid "Was unable to modify attributes of DN: %s." +msgstr "Imposible modificar atributos del DN: %s." + +#: ../templates/delete.php:243 ../lib/modules/nisMailAliasUser.inc:482 +#: ../lib/modules/posixAccount.inc:858 ../lib/modules/posixAccount.inc:920 +#: ../lib/modules/organizationalRoleUser.inc:206 +#: ../lib/modules/organizationalRoleUser.inc:229 +#: ../lib/modules/windowsUser.inc:1136 ../lib/modules/groupOfNamesUser.inc:222 +#: ../lib/modules/groupOfNamesUser.inc:278 ../lib/modules.inc:1913 +#, php-format +msgid "Was unable to remove attributes from DN: %s." +msgstr "Imposible quitar atributos del DN: %s." + +#: ../lib/modules/asteriskExtension.inc:905 ../lib/modules.inc:1843 +#, php-format +msgid "Was unable to rename DN: %s." +msgstr "Imposible renombrar el DN: %s." + +#: ../lib/modules/windowsUser.inc:188 ../lib/modules/windowsUser.inc:374 +#: ../lib/modules/windowsUser.inc:516 ../lib/modules/windowsUser.inc:543 +#: ../lib/modules/windowsUser.inc:720 ../lib/modules/windowsUser.inc:1604 +#: ../lib/modules/windowsUser.inc:1727 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:214 ../lib/modules/inetOrgPerson.inc:467 +#: ../lib/modules/inetOrgPerson.inc:587 ../lib/modules/inetOrgPerson.inc:732 +#: ../lib/modules/inetOrgPerson.inc:736 ../lib/modules/inetOrgPerson.inc:1422 +#: ../lib/modules/inetOrgPerson.inc:1425 ../lib/modules/inetOrgPerson.inc:1918 +#: ../lib/modules/inetOrgPerson.inc:2467 ../lib/modules/inetOrgPerson.inc:3559 +#: ../lib/modules/inetOrgPerson.inc:3584 +msgid "Web site" +msgstr "Sitio Web" + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Wednesday" +msgstr "Miércoles" + +#: ../lib/modules/bindDLZ.inc:180 ../lib/modules/bindDLZ.inc:184 +#: ../lib/modules/bindDLZ.inc:387 ../lib/modules/bindDLZ.inc:503 +#: ../lib/modules/bindDLZ.inc:1353 ../lib/modules/bindDLZ.inc:1600 +msgid "Weight" +msgstr "Peso" + +#: ../lib/selfService.inc:384 +msgid "Welcome to LAM self service. Please enter your user name and password." +msgstr "" +"Bienvenido a Autoservicio de LAM. Por favor ingrese su usuario y contraseña." + +#: ../lib/modules/sambaSamAccount.inc:564 +msgid "Western Europe Time, London, Lisbon" +msgstr "Zona horaria de Europa occidental, Londres, Lisboa" + +#: ../lib/modules/passwordSelfReset.inc:179 +msgid "What is the name of your favourite pet?" +msgstr "¿Cuál es el nombre de su mascota favorita?" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +msgid "" +"When performing a recursive copy, only copy those entries which match this " +"filter." +msgstr "" +"Al realizar una copia recursiva, copiar sólo aquellas entradas que coincidan " +"con este filtro." + +#: ../lib/modules/zarafaUser.inc:101 +msgid "" +"When the hard quota limit is reached, email can not be delivered to that " +"user anymore." +msgstr "" +"Cuando se alcance el límite duro de la cuota, ya no se podrán entregar " +"correos electrónicos a ese usuario." + +#: ../help/help.inc:70 +msgid "" +"When using ldaps:// or TLS be sure to use exactly the same IP/domain name as " +"in your certificate!" +msgstr "" +"Al utilizar ldaps:// o TLS, ¡asegúrese de utilizar exactamente la misma " +"dirección IP o nombre de dominio que en su certificado!" + +#: ../templates/lists/changePassword.php:410 +#: ../templates/lists/changePassword.php:441 ../lib/types/user.inc:292 +#: ../lib/types/user.inc:380 ../lib/types/user.inc:412 +#: ../lib/types/user.inc:845 ../lib/modules/windowsHost.inc:64 +#: ../lib/modules/windowsUser.inc:89 ../lib/modules/windowsGroup.inc:99 +msgid "Windows" +msgstr "Windows" + +#: ../lib/modules/sambaSamAccount.inc:337 ../lib/modules/windowsUser.inc:112 +msgid "Windows domain name of account." +msgstr "Nombre de la cuenta en el dominio de Windows." + +#: ../lib/modules/sambaSamAccount.inc:211 +#: ../lib/modules/sambaSamAccount.inc:470 +#: ../lib/modules/sambaSamAccount.inc:1261 +#: ../lib/modules/sambaSamAccount.inc:1781 +#: ../lib/modules/sambaSamAccount.inc:1906 +#: ../lib/modules/sambaGroupMapping.inc:111 +#: ../lib/modules/sambaGroupMapping.inc:374 +#: ../lib/modules/sambaGroupMapping.inc:539 +msgid "Windows group" +msgstr "Grupo de Windows" + +#: ../lib/modules/sambaGroupMapping.inc:150 +msgid "Windows group name" +msgstr "Nombre del grupo de Windows" + +#: ../lib/modules/sambaGroupMapping.inc:163 +msgid "Windows group type." +msgstr "Tipo de grupo de Windows." + +#: ../lib/modules/sambaSamAccount.inc:394 +msgid "" +"Windows password hashes are saved by default as NT and LM hashes. LM hashes " +"are insecure and only needed for old versions of Windows. You should disable " +"them unless you really need them." +msgstr "" +"Las máscaras de contraseñas se guardan por defecto como máscaras NT y LM. " +"las máscaras LM son inseguras y solo se necesitan para versiones antiguas de " +"Windows. Debería deshabilitarlas a menos que realmente las necesite." + +#: ../lib/modules/sambaSamAccount.inc:320 +msgid "Windows primary group" +msgstr "Grupo primario de Windows" + +#: ../lib/modules/sambaSamAccount.inc:323 +msgid "Windows primary group SID" +msgstr "SID del grupo primario de Windows" + +#: ../lib/modules/sambaGroupMapping.inc:159 +msgid "Windows-Domain name of group." +msgstr "Nombre del grupo en el dominio de Windows." + +#: ../lib/modules/inetOrgPerson.inc:1433 +msgid "Work details" +msgstr "Detalles laborales" + +#: ../lib/modules/sambaDomain.inc:146 +msgid "Workgroup" +msgstr "Grupo de trabajo" + +#: ../lib/modules/sambaSamAccount.inc:235 +#: ../lib/modules/sambaSamAccount.inc:366 +#: ../lib/modules/sambaSamAccount.inc:1517 +#: ../lib/modules/sambaSamAccount.inc:1925 +msgid "Working directory" +msgstr "Directorio de trabajo" + +#: ../lib/modules/sambaSamAccount.inc:367 +msgid "Working directory of initial program." +msgstr "Directorio de trabajo del programa inicial." + +#: ../templates/config/confmain.php:318 +msgid "Write" +msgstr "Escribir" + +#: ../templates/config/confmain.php:260 +msgid "Write access" +msgstr "Acceso de escritura" + +#: ../templates/login.php:579 ../templates/login.php:637 +#: ../templates/selfService/selfServiceLogin.php:160 +#: ../templates/selfService/selfServiceLogin.php:186 +msgid "Wrong password/user name combination. Please try again." +msgstr "Combinación incorrecta de usuario/contraseña. Por favor, reintente." + +#: ../lib/modules/imapAccess.inc:188 +msgid "Wrong quota format. Quota must be numeric." +msgstr "Formato de cuota incorrecto. La cuota debe ser numérica." + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/pykotaPrinter.inc:51 +#: ../lib/modules/pykotaPrinter.inc:170 ../lib/modules/qmailGroup.inc:322 +#: ../lib/modules/qmailGroup.inc:364 ../lib/modules/qmailGroup.inc:1030 +#: ../lib/modules/qmailGroup.inc:1031 ../lib/modules/qmailGroup.inc:1073 +#: ../lib/modules/qmailGroup.inc:1079 ../lib/modules/imapAccess.inc:121 +msgid "Yes" +msgstr "Sí" + +#: ../templates/lists/changePassword.php:528 +#: ../lib/modules/ppolicyUser.inc:344 ../lib/modules/ppolicyUser.inc:421 +msgid "You are reusing an old password. Please choose a different password." +msgstr "" +"Usted está reutilizando una vieja contraseña. Por favor elija una contraseña " +"diferente." + +#: ../lib/modules/account.inc:126 ../lib/modules/posixGroup.inc:607 +#: ../lib/modules/posixAccount.inc:113 ../lib/modules/posixAccount.inc:115 +msgid "" +"You are using capital letters. This can cause problems because Windows is " +"not case-sensitive." +msgstr "" +"Está utilizando mayúsculas. Esto puede causar problemas, pues Windows no " +"distingue entre mayúsculas y minúsculas." + +#: ../lib/lists.inc:1073 +#, php-format +msgid "" +"You can download your PDF files {link=%s}{color=#d2131a}here{endcolor}" +"{endlink}." +msgstr "" +"Puede descargar sus archivos PDF {link=%s}{color=#d2131a}aquí{endcolor}" +"{endlink}." + +#: ../templates/initsuff.php:181 +msgid "" +"You can setup the LDAP suffixes for all account types in your LAM server " +"profile on tab \"Account types\"." +msgstr "" +"Puede configurar los sufijos LDAP apra todas los tipos de cuentas en su " +"perfil de servidor LAM en la pestaña \"Account types\"." + +#: ../help/help.inc:110 +msgid "" +"You can specify if LAM allows full write access, password changes or only " +"read access." +msgstr "" +"Puede especificar si LAM permite acceso pleno de escritura, cambios de " +"contraseña o sólo acceso de lectura." + +#: ../lib/modules/windowsUser.inc:104 ../lib/modules/windowsUser.inc:125 +#: ../lib/modules/windowsUser.inc:141 ../lib/modules/windowsUser.inc:206 +#: ../lib/modules/windowsUser.inc:211 ../lib/modules/windowsUser.inc:228 +#: ../lib/modules/windowsUser.inc:233 ../lib/modules/windowsUser.inc:249 +#: ../lib/modules/inetOrgPerson.inc:721 ../lib/modules/inetOrgPerson.inc:726 +msgid "" +"You can use \"$user\", \"$firstname\" and \"$lastname\" as wildcards for " +"user name, first and last name." +msgstr "" +"Puede utilizar \"$user\", \"$firstname\" y \"$lastname\" como comodines para " +"el nombre de usuario, primer nombre y apellido." + +#: ../help/help.inc:172 +msgid "" +"You can use the wildcard @@LOGIN_DN@@ which will be substituted with the DN " +"of the user who is currently logged in to LAM." +msgstr "" +"Puede utilizar el comodín @@LOGIN_DN@@ el cual será sustituído con el DN del " +"usuario el cual está actualmente logueado en LAM." + +#: ../lib/modules/zarafaDynamicGroup.inc:84 +#: ../lib/modules/zarafaContact.inc:76 ../lib/modules/zarafaGroup.inc:90 +#: ../lib/modules/zarafaAddressList.inc:72 ../lib/modules/zarafaUser.inc:85 +msgid "You can use this to temporarily deactivate the Zarafa extension." +msgstr "" +"Puede utilizar esto para desactivar temporalmente la extensión de Zarafa." + +#: ../lib/modules/passwordSelfReset.inc:126 +#: ../lib/modules/passwordSelfReset.inc:136 ../help/help.inc:253 +msgid "" +"You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. " +"@@uid@@ for the user name)." +msgstr "" +"Puede utilizar comodines para los atributos de LDAP de la forma " +"@@attributo@@ (p.ej. @@uid@@ para el nombre de usuario)." + +#: ../lib/modules/customScripts.inc:65 ../lib/modules/customScripts.inc:78 +msgid "" +"You can use wildcards in the format $wildcard$ which are replaced by the " +"LDAP attribute with the same name. For multi-value attributes the values " +"will be separated by commas." +msgstr "" +"Puede utilizar comodines en formato $wildcard$ que se reemplazan por el " +"atributo LDAP del mismo nombre. Para atributos multivalentes, los valores se " +"delimitan por comas." + +#: ../lib/modules/zarafaContact.inc:191 +msgid "" +"You cannot add the Zarafa and Zarafa contact extension at the same time." +msgstr "" +"No puede añadir la extensión Zarafa y Contactos de Zarafa al mismo tiempo." + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:52 +msgid "You cannot perform updates while server is in read-only mode" +msgstr "" +"No puede realizar actualizaciones mientras el servidor esté en modo sólo " +"lectura" + +#: ../templates/3rdParty/pla/htdocs/rename.php:26 +msgid "You cannot rename an entry which has child entries." +msgstr "No puede renombrar una entrada que tiene sub-entradas." + +#: ../templates/config/confmain.php:505 +msgid "" +"You cannot use SSL and TLS encryption at the same time. Please use either " +"\"ldaps://\" or TLS." +msgstr "" +"No puede utilizar la encripción SSL y TLS al mismo tiempo. Por favor, " +"utilice \"ldaps://\" o TLS." + +#: ../templates/3rdParty/pla/htdocs/rename.php:32 +msgid "You did not change the RDN" +msgstr "No ha cambiado el RDN" + +#: ../templates/tests/schemaTest.php:61 +msgid "" +"You do not have the required access rights or the LDAP schema is not " +"published by your server." +msgstr "" +"No tiene los derechos de acceso requeridos o su servidor no ha publicado el " +"esquema LDAP." + +#: ../lib/modules/dhcp_settings.inc:322 ../lib/modules/dhcp_settings.inc:323 +msgid "You entered one or more invalid DNS servers." +msgstr "Ha introducido uno o más servidores DNS inválidos." + +#: ../templates/3rdParty/pla/lib/Template.php:417 +#: ../templates/3rdParty/pla/lib/Template.php:504 +msgid "You left the attribute value blank. Please go back and try again." +msgstr "" +"Ha dejado el valor del atributo en blanco. Por favor, regrese y reintente." + +#: ../templates/3rdParty/pla/htdocs/create.php:51 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:45 +#, php-format +msgid "You left the value blank for required attribute (%s)." +msgstr "Ha dejado en blanco un atributo requerido: (%s)." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:171 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:209 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:133 +msgid "You made no changes" +msgstr "No ha realizado cambios" + +#: ../templates/config/mainmanage.php:172 +#: ../templates/config/mainmanage.php:178 +#: ../templates/config/mainmanage.php:190 +msgid "You might need to restart your webserver for changes to take effect." +msgstr "" +"Podría necesitar reiniciar su servidor web para que los cambios tomen efecto." + +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#, php-format +msgid "You might want to use %s instead of %s." +msgstr "Podría desear usar %s en vez de %s." + +#: ../templates/3rdParty/pla/lib/import_functions.php:95 +msgid "You must either upload a file or provide an import in the text box." +msgstr "" +"Debe o bien enviar un archivo o especificar una importación en el cuadro de " +"texto." + +#: ../lib/modules/groupOfNames.inc:210 ../lib/modules/groupOfNames.inc:211 +msgid "You need to add at least one member to this group." +msgstr "Necesita añadir al menos un miembro a este grupo." + +#: ../lib/modules/passwordSelfReset.inc:229 +msgid "You specified an answer but no security question." +msgstr "Ha especificado una respuesta, pero no la pregunta de seguridad." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1136 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "You will be prompted to confirm this decision" +msgstr "Se le pedirá que confirme esta decisión" + +#: ../lib/modules/imapAccess.inc:184 +msgid "Your IMAP domains and email address domain do not match." +msgstr "" +"Sus dominios IMAP y los dominios de las direcciones de correo no coinciden." + +#: ../templates/tests/lamdaemonTest.php:234 +#, php-format +msgid "" +"Your LAM admin user (%s) must be a valid Unix account to work with lamdaemon!" +msgstr "" +"¡Para trabajar con lamdaemon, su usuario administrador de LAM (%s) debe ser " +"una cuenta válida en UNIX!" + +#: ../lib/lamdaemon.inc:61 ../lib/lamdaemon.inc:66 +msgid "" +"Your LAM admin user must be a valid Unix account to work with lamdaemon!" +msgstr "" +"¡Para trabajar con lamdaemon, su usuario administrador de LAM debe ser una " +"cuenta válida en UNIX!" + +#: ../lib/modules/imapAccess.inc:186 +msgid "Your LAM login password was not accepted by the IMAP server." +msgstr "Su contraseña de acceso a LAM no fué aceptada por el servidor IMAP." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:125 +msgid "" +"Your PHP configuration has disabled file uploads. Please check php.ini " +"before proceeding." +msgstr "" +"Su configuración de PHP ha deshabilitado el envío de archivos. Por favor, " +"verifique php.ini antes de proceder." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:16 +msgid "" +"Your PHP.INI does not have file_uploads = ON. Please enable file uploads in " +"PHP." +msgstr "" +"Su PHP.INI no tiene file_uploads = ON. Por favor, active el envío de " +"archivos en PHP." + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:404 +msgid "" +"Your changes cannot be saved until you make the file writable for the " +"webserver user." +msgstr "" +"Sus cambios no podrán guardarse hasta que el archivo tenga permisos de " +"escritura para el usuario del servidor web." + +#: ../lib/modules/selfRegistration.inc:721 +msgid "" +"Your new account was created but post processing failed. Please contact your " +"local administrator." +msgstr "" +"Su nueva cuenta fue creada pero el proceso posterior falló. Por favor " +"contacte a su administrador local." + +#: ../lib/modules/selfRegistration.inc:718 +msgid "" +"Your new account was successfully created. Please return to login to change " +"your user data." +msgstr "" +"La nueva cuenta fue creada exitosamente. Por favor regrese al login para " +"cambiar los datos de usuario." + +#: ../lib/account.inc:1202 ../lib/modules/windowsUser.inc:1870 +msgid "" +"Your password does not meet the password strength qualifications. Please " +"retry with another one." +msgstr "" +"La contraseña no cumple la fortaleza necesaria. Por favor reintente con otra." + +#: ../lib/modules/passwordSelfReset.inc:563 +msgid "Your password was changed to @@newPassword@@." +msgstr "Su contraseña fue cambiada a @@newPassword@@." + +#: ../lib/security.inc:192 +msgid "Your session expired, click here to go back to the login page." +msgstr "" +"Su sesión ha expirado, haga clic aquí para volver a la página de acceso." + +#: ../templates/login.php:296 +#: ../templates/selfService/selfServiceLogin.php:113 +msgid "Your session expired, please log in again." +msgstr "Su sesión ha expirado, por favor vuelva a autenticarse." + +#: ../templates/login.php:301 ../templates/login.php:306 +#: ../templates/login.php:315 +msgid "Your settings were successfully saved." +msgstr "Sus preferencias se guardaron exitosamente." + +#: ../lib/modules/windowsUser.inc:346 ../lib/modules/inetOrgPerson.inc:501 +#: ../lib/modules/inetOrgPerson.inc:533 +msgid "YourCompany" +msgstr "SuEmpresa" + +#: ../lib/modules/zarafaGroup.inc:56 ../lib/modules/zarafaUser.inc:61 +#: ../lib/modules/zarafaServer.inc:56 +msgid "Zarafa" +msgstr "Zarafa" + +#: ../lib/modules/zarafaAddressList.inc:51 +msgid "Zarafa address list" +msgstr "Listado de direcciones de Zarafa" + +#: ../lib/types/zarafaAddressListType.inc:53 +#: ../lib/types/zarafaAddressListType.inc:62 +msgid "Zarafa address lists" +msgstr "Listados de direcciones de Zarafa" + +#: ../lib/modules/zarafaContact.inc:56 +msgid "Zarafa contact" +msgstr "Contacto de Zarafa" + +#: ../lib/modules/zarafaDynamicGroup.inc:51 +msgid "Zarafa dynamic group" +msgstr "Grupo dinámico de Zarafa" + +#: ../lib/types/zarafaDynamicGroupType.inc:53 +#: ../lib/types/zarafaDynamicGroupType.inc:62 +msgid "Zarafa dynamic groups" +msgstr "Grupos dinámicos de Zarafa" + +#: ../lib/modules/zarafaDynamicGroup.inc:95 +#: ../lib/modules/zarafaDynamicGroup.inc:183 +#: ../lib/modules/zarafaContact.inc:106 ../lib/modules/zarafaContact.inc:123 +#: ../lib/modules/zarafaGroup.inc:112 ../lib/modules/zarafaGroup.inc:127 +#: ../lib/modules/zarafaAddressList.inc:83 +#: ../lib/modules/zarafaAddressList.inc:156 ../lib/modules/zarafaUser.inc:171 +#: ../lib/modules/zarafaUser.inc:394 ../lib/modules/zarafaUser.inc:1773 +#: ../lib/modules/zarafaServer.inc:92 ../lib/modules/zarafaServer.inc:153 +msgid "Zarafa schema" +msgstr "Esquema Zarafa" + +#: ../lib/modules/zarafaUser.inc:160 ../lib/modules/zarafaUser.inc:164 +msgid "Zarafa will store the user's archives on these servers." +msgstr "Zarafa guardará los archivos del usuario en estos servidores." + +#: ../lib/types/bind.inc:78 ../lib/modules/ddns.inc:102 +#: ../lib/modules/ddns.inc:113 ../lib/modules/ddns.inc:128 +#: ../lib/modules/ddns.inc:394 ../lib/modules/ddns.inc:425 +msgid "Zone name" +msgstr "Nombre de zona" + +#: ../lib/modules/ddns.inc:103 +msgid "Zone name for the DNS server (e.g. company.local)." +msgstr "Nombre de zona para servidor DNS (p.ej. empresa.local)." + +#: ../lib/modules/sambaSamAccount.inc:496 ../lib/modules/windowsUser.inc:438 +msgid "\\\\server\\homes\\smiller" +msgstr "\\\\servidor\\hogares\\smiller" + +#: ../lib/modules/sambaSamAccount.inc:504 ../lib/modules/windowsUser.inc:420 +msgid "\\\\server\\profiles\\smiller" +msgstr "\\\\servidor\\perfiles\\smiller" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "add value" +msgstr "añadir valor" + +#: ../lib/modules/zarafaDynamicGroup.inc:118 ../lib/modules/posixGroup.inc:461 +#: ../lib/modules/zarafaAddressList.inc:106 ../lib/modules/pykotaGroup.inc:150 +#: ../lib/modules/pykotaGroup.inc:159 ../lib/modules/nisnetgroup.inc:114 +#: ../lib/modules/organizationalRole.inc:116 +#: ../lib/modules/windowsGroup.inc:237 ../lib/modules/groupOfNames.inc:128 +msgid "adminstrators" +msgstr "administradores" + +#: ../templates/config/mainmanage.php:394 +#: ../templates/config/mainmanage.php:430 +msgid "all" +msgstr "todo" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:112 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:95 +msgid "attribute deleted" +msgstr "atributo eliminado" + +#: ../lib/modules/sudoRole.inc:148 +msgid "backupRootFileSystem" +msgstr "backupRootFileSystem" + +#: ../lib/modules/pykotaBillingCode.inc:103 +msgid "billingCode01" +msgstr "codigoFacturacion01" + +#: ../templates/3rdParty/pla/lib/functions.php:2298 +msgid "browse" +msgstr "explorar" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "bytes" +msgstr "bytes" + +#: ../templates/schema/schema.php:220 +msgid "character" +msgstr "carácter" + +#: ../templates/schema/schema.php:219 +msgid "characters" +msgstr "caracteres" + +#: ../lib/modules/freeRadius.inc:179 +msgid "company.com" +msgstr "empresa.com" + +#: ../templates/3rdParty/pla/lib/PageRender.php:619 +#: ../templates/3rdParty/pla/lib/PageRender.php:988 +msgid "confirm" +msgstr "confirmar" + +#: ../help/help.inc:82 +msgid "dc=yourcompany,dc=com" +msgstr "dc=suempresa,dc=com" + +#: ../templates/config/mainmanage.php:429 ../lib/modules/ppolicyUser.inc:122 +msgid "default" +msgstr "predeterminado" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:205 +msgid "delete" +msgstr "eliminar" + +#: ../templates/3rdParty/pla/lib/PageRender.php:677 +msgid "delete attribute" +msgstr "eliminar atributo" + +#: ../lib/modules/sambaSamAccount.inc:1538 +#: ../lib/modules/sambaSamAccount.inc:1945 ../lib/modules/zarafaUser.inc:619 +#: ../lib/modules/zarafaUser.inc:1285 ../lib/modules/zarafaUser.inc:1326 +msgid "disabled" +msgstr "deshabilitado" + +#: ../lib/modules/sambaSamAccount.inc:1549 +#: ../lib/modules/sambaSamAccount.inc:1956 +msgid "disconnect" +msgstr "desconectar" + +#: ../lib/modules/windowsUser.inc:468 ../lib/modules/windowsGroup.inc:245 +msgid "domain" +msgstr "dominio" + +#: ../templates/3rdParty/pla/lib/PageRender.php:664 +msgid "download value" +msgstr "valor de descarga" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:206 +msgid "edit" +msgstr "editar" + +#: ../lib/modules/zarafaUser.inc:619 ../lib/modules/zarafaUser.inc:1280 +#: ../lib/modules/zarafaUser.inc:1326 +msgid "enabled" +msgstr "habilitado" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:481 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:307 +msgid "export" +msgstr "exportar" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:123 +msgid "false" +msgstr "falso" + +#: ../lib/modules/ppolicy.inc:37 +msgid "force" +msgstr "forzar" + +#: ../lib/modules/sambaSamAccount.inc:1557 +#: ../lib/modules/sambaSamAccount.inc:1964 +msgid "from any client" +msgstr "desde cualquier cliente" + +#: ../lib/modules/sambaSamAccount.inc:1558 +#: ../lib/modules/sambaSamAccount.inc:1965 +msgid "from previous client only" +msgstr "sólo desde el cliente anterior" + +#: ../lib/modules/posixAccount.inc:306 ../lib/modules/posixAccount.inc:366 +#: ../lib/modules/nisnetgroup.inc:128 ../lib/modules/groupOfNamesUser.inc:73 +msgid "group01,group02" +msgstr "grupo01,grupo02" + +#: ../lib/modules/freeRadius.inc:187 +msgid "group01;group02" +msgstr "grupo01,grupo02" + +#: ../lib/modules/zarafaDynamicGroup.inc:132 +#: ../lib/modules/zarafaGroup.inc:164 +msgid "group1@company.com,group2@company.com" +msgstr "grupo1@empresa.com,grupo2@empresa.com" + +#: ../lib/modules/zarafaDynamicGroup.inc:126 +#: ../lib/modules/zarafaGroup.inc:172 ../lib/modules/windowsGroup.inc:221 +msgid "group@company.com" +msgstr "grupo@empresa.com" + +#: ../templates/3rdParty/pla/lib/PageRender.php:471 +msgid "hint" +msgstr "pista" + +#: ../lib/modules/quota.inc:198 ../lib/modules/quota.inc:200 +msgid "hours" +msgstr "horas" + +#: ../lib/modules/windowsUser.inc:376 ../lib/modules/windowsUser.inc:382 +#: ../lib/modules/inetOrgPerson.inc:469 +msgid "http://www.company.com" +msgstr "http://www.miempresa.com" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:294 +msgid "import" +msgstr "importar" + +#: ../lib/modules/sambaSamAccount.inc:1542 +#: ../lib/modules/sambaSamAccount.inc:1949 +msgid "input off, notify off" +msgstr "entradas desactivadas, notificaciones desactivadas" + +#: ../lib/modules/sambaSamAccount.inc:1541 +#: ../lib/modules/sambaSamAccount.inc:1948 +msgid "input off, notify on" +msgstr "entradas desactivadas, notificaciones activadas" + +#: ../lib/modules/sambaSamAccount.inc:1540 +#: ../lib/modules/sambaSamAccount.inc:1947 +msgid "input on, notify off" +msgstr "entradas activadas, notificaciones desactivadas" + +#: ../lib/modules/sambaSamAccount.inc:1539 +#: ../lib/modules/sambaSamAccount.inc:1946 +msgid "input on, notify on" +msgstr "entradas activadas, notificaciones activadas" + +#: ../help/help.inc:64 +msgid "" +"ldap://localhost:389 connects to localhost using a standard LDAP connection " +"on port 389" +msgstr "" +"ldap://localhost:389 conecta al equipo local utilizando una conexión LDAP " +"estándard en el puerto 389" + +#: ../help/help.inc:66 +msgid "" +"ldaps://ldap.domain.com connects to ldap.domain.com using an encrypted LDAP " +"connection." +msgstr "" +"ldaps://ldap.dominio.com conecta a ldap.dominio.com usando una conexión " +"LDAP encriptada." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:100 +msgid "list" +msgstr "listado" + +#: ../templates/3rdParty/pla/lib/config_default.php:494 +#: ../templates/3rdParty/pla/lib/ds.php:318 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:529 +msgid "login" +msgstr "iniciar sesión" + +#: ../lib/modules/posixAccount.inc:391 +msgid "machines" +msgstr "máquinas" + +#: ../lib/modules/inetLocalMailRecipient.inc:114 +msgid "mail.yourdomain.org" +msgstr "correo.sudominio.org" + +#: ../lib/modules/sambaSamAccount.inc:415 +#: ../lib/modules/sambaSamAccount.inc:539 +msgid "mydomain" +msgstr "midominio" + +#: ../lib/modules/sambaSamAccount.inc:472 +msgid "mygroup" +msgstr "migrupo" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:504 +msgid "new" +msgstr "nuevo" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:454 +#: ../lib/modules/zarafaDynamicGroup.inc:457 +#: ../lib/modules/zarafaContact.inc:568 ../lib/modules/zarafaGroup.inc:651 +#: ../lib/modules/zarafaGroup.inc:658 ../lib/modules/zarafaGroup.inc:661 +#: ../lib/modules/zarafaAddressList.inc:336 +#: ../lib/modules/zarafaAddressList.inc:339 +#: ../lib/modules/sambaSamAccount.inc:583 +#: ../lib/modules/sambaSamAccount.inc:1913 +#: ../lib/modules/sambaSamAccount.inc:1921 +#: ../lib/modules/sambaSamAccount.inc:1931 +#: ../lib/modules/sambaSamAccount.inc:1936 +#: ../lib/modules/sambaSamAccount.inc:1941 ../lib/modules/zarafaUser.inc:602 +#: ../lib/modules/zarafaUser.inc:1238 ../lib/modules/zarafaUser.inc:1253 +#: ../lib/modules/zarafaUser.inc:1264 ../lib/modules/zarafaUser.inc:1270 +#: ../lib/modules/windowsUser.inc:388 ../lib/modules/windowsUser.inc:389 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:396 +#: ../lib/modules/windowsUser.inc:397 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:404 ../lib/modules/windowsUser.inc:405 +#: ../lib/modules/windowsUser.inc:406 ../lib/modules/windowsUser.inc:412 +#: ../lib/modules/windowsUser.inc:413 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:1173 ../lib/modules/windowsUser.inc:1607 +#: ../lib/modules/windowsUser.inc:1612 ../lib/modules/windowsUser.inc:1617 +#: ../lib/modules/windowsUser.inc:1622 ../lib/modules/ppolicy.inc:35 +#: ../lib/modules/ppolicy.inc:481 ../lib/modules/ppolicy.inc:491 +#: ../lib/modules/ppolicy.inc:496 ../lib/modules/ppolicy.inc:503 +#: ../lib/modules/ppolicy.inc:506 ../lib/modules/generalInformation.inc:100 +#: ../lib/modules/zarafaServer.inc:358 ../lib/modules/customFields.inc:2890 +#: ../lib/modules/fixed_ip.inc:752 +msgid "no" +msgstr "no" + +#: ../templates/3rdParty/pla/lib/functions.php:1902 +msgid "no description available" +msgstr "no hay descripción disponible" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:68 +msgid "no entries" +msgstr "sin entradas" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:84 +msgid "no new attributes available for this entry" +msgstr "no hay nuevos atributos disponibles para esta entrada" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:135 +msgid "no new binary attributes available for this entry" +msgstr "no hay nuevos atributos binarios disponibles para esta entrada" + +#: ../templates/schema/schema.php:160 ../templates/schema/schema.php:229 +#: ../templates/schema/schema.php:240 ../templates/schema/schema.php:289 +#: ../templates/schema/schema.php:355 ../templates/schema/schema.php:370 +#: ../templates/schema/schema.php:404 ../templates/schema/schema.php:426 +#: ../templates/3rdParty/pla/lib/functions.php:2612 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1573 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1581 +msgid "none" +msgstr "ninguno" + +#: ../templates/3rdParty/pla/lib/PageRender.php:1109 +msgid "none, remove value" +msgstr "ninguno, eliminar valor" + +#: ../templates/schema/schema.php:216 +msgid "not applicable" +msgstr "no aplicable" + +#: ../templates/schema/schema.php:167 ../templates/schema/schema.php:172 +#: ../templates/schema/schema.php:177 ../templates/schema/schema.php:210 +msgid "not specified" +msgstr "sin especificar" + +#: ../help/help.inc:76 +msgid "" +"ou=People,dc=yourcompany,dc=com will read and store all accounts in this " +"subtree." +msgstr "" +"ou=Personas,dc=suempresa,dc=com leerá y almacenará todas sus cuentas en este " +"subárbol." + +#: ../lib/modules/eduPerson.inc:202 ../lib/modules/eduPerson.inc:208 +#: ../lib/modules/eduPerson.inc:214 +msgid "ou=accounts,dc=yourdomain,dc=org" +msgstr "ou=cuentas,dc=sudominio,dc=org" + +#: ../lib/modules/posixAccount.inc:377 +msgid "pc01$" +msgstr "pc01$" + +#: ../lib/modules/posixAccount.inc:400 +msgid "pc01,Room 2.34" +msgstr "pc01,Habitación 2.34" + +#: ../lib/modules/hostObject.inc:93 +msgid "pc01,pc02" +msgstr "pc01,pc02" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +msgid "pixels" +msgstr "píxeles" + +#: ../lib/modules/pykotaPrinter.inc:148 +msgid "printer01" +msgstr "impresora01" + +#: ../lib/modules/pykotaPrinter.inc:188 +msgid "printergroup1" +msgstr "printergroup1" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:54 +msgid "read only" +msgstr "sólo lectura" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:251 +msgid "refresh" +msgstr "refrescar" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2126 +msgid "rename" +msgstr "renombrar" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 ../lib/html.inc:797 +#: ../lib/html.inc:1708 ../lib/html.inc:2285 +msgid "required" +msgstr "requerido" + +#: ../lib/modules/sambaSamAccount.inc:1550 +#: ../lib/modules/sambaSamAccount.inc:1957 +msgid "reset" +msgstr "restablecer" + +#: ../lib/modules/organizationalRoleUser.inc:73 +msgid "role01,role02" +msgstr "rol01,rol02" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:237 +msgid "search" +msgstr "buscar" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:472 +msgid "seconds" +msgstr "segundos" + +#: ../lib/modules/mitKerberos.inc:244 ../lib/modules/asteriskAccount.inc:327 +#: ../lib/modules/posixGroup.inc:444 ../lib/modules/sambaSamAccount.inc:427 +#: ../lib/modules/posixAccount.inc:334 ../lib/modules/windowsUser.inc:274 +#: ../lib/modules/inetOrgPerson.inc:2054 +#: ../lib/modules/asteriskVoicemail.inc:167 +#: ../lib/modules/heimdalKerberos.inc:213 +msgid "secret" +msgstr "secreto" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1263 +msgid "select the rdn attribute" +msgstr "seleccionar el atributo rdn" + +#: ../lib/modules/mitKerberos.inc:213 ../lib/modules/uidObject.inc:69 +#: ../lib/modules/posixAccount.inc:285 ../lib/modules/windowsUser.inc:266 +#: ../lib/modules/windowsUser.inc:451 ../lib/modules/windowsUser.inc:460 +#: ../lib/modules/pykotaUser.inc:192 ../lib/modules/pykotaUser.inc:210 +#: ../lib/modules/inetOrgPerson.inc:2045 +#: ../lib/modules/heimdalKerberos.inc:182 ../lib/modules/nisMailAlias.inc:110 +msgid "smiller" +msgstr "smiller" + +#: ../lib/modules/inetLocalMailRecipient.inc:102 +msgid "smiller@otherdomain.org" +msgstr "smiller@otrodominio.org" + +#: ../lib/modules/inetLocalMailRecipient.inc:108 +msgid "smiller@yourdomain.org" +msgstr "smiller@sudominio.org" + +#: ../lib/modules/ldapPublicKey.inc:90 +msgid "ssh-dss 234234 user@host" +msgstr "ssh-dss 234234 user@host" + +#: ../templates/3rdParty/pla/lib/PageRender.php:882 +msgid "structural" +msgstr "estructural" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:102 +msgid "table" +msgstr "tabla" + +#: ../lib/modules/asteriskExtension.inc:154 +msgid "test" +msgstr "prueba" + +#: ../lib/modules/asteriskExtension.inc:174 +msgid "test-start" +msgstr "prueba de arranque" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:122 +msgid "true" +msgstr "verdadero" + +#: ../lib/modules/ipHost.inc:99 ../lib/modules/inetOrgPerson.inc:363 +#: ../lib/modules/aliasEntry.inc:71 ../lib/modules/qmailGroup.inc:281 +#: ../lib/modules/qmailGroup.inc:289 ../lib/modules/qmailGroup.inc:297 +msgid "uid=smiller,ou=People,dc=company,dc=com" +msgstr "uid=smiller,ou=Personas,dc=empresa,dc=com" + +#: ../templates/config/mainmanage.php:312 +msgid "use custom CA certificates" +msgstr "Usar certificados CA personalizados" + +#: ../templates/config/mainmanage.php:309 +msgid "use system certificates" +msgstr "Usar certificados de sistema" + +#: ../lib/modules/posixGroup.inc:452 +msgid "user01,user02,user03" +msgstr "usuario01,usuario02,usuario03" + +#: ../lib/modules/qmailUser.inc:273 ../lib/modules/qmailUser.inc:279 +#: ../lib/modules/qmailUser.inc:301 ../lib/modules/eduPerson.inc:163 +#: ../lib/modules/windowsUser.inc:352 ../lib/modules/windowsUser.inc:358 +#: ../lib/modules/pykotaUser.inc:220 ../lib/modules/inetOrgPerson.inc:451 +#: ../lib/modules/kolabSharedFolder.inc:183 +#: ../lib/modules/asteriskVoicemail.inc:180 ../lib/modules/qmailGroup.inc:339 +#: ../lib/modules/qmailGroup.inc:347 ../lib/modules/qmailGroup.inc:355 +msgid "user@company.com" +msgstr "usuario@empresa.com" + +#: ../lib/modules/posixAccount.inc:299 +msgid "users" +msgstr "usuarios" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:59 +msgid "view entries" +msgstr "ver entradas" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +msgid "with " +msgstr "con" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:452 +#: ../lib/modules/zarafaDynamicGroup.inc:459 +#: ../lib/modules/zarafaContact.inc:570 ../lib/modules/zarafaGroup.inc:653 +#: ../lib/modules/zarafaGroup.inc:656 ../lib/modules/zarafaGroup.inc:663 +#: ../lib/modules/zarafaAddressList.inc:334 +#: ../lib/modules/zarafaAddressList.inc:341 +#: ../lib/modules/sambaSamAccount.inc:583 +#: ../lib/modules/sambaSamAccount.inc:1911 +#: ../lib/modules/sambaSamAccount.inc:1919 +#: ../lib/modules/sambaSamAccount.inc:1929 +#: ../lib/modules/sambaSamAccount.inc:1934 +#: ../lib/modules/sambaSamAccount.inc:1939 ../lib/modules/zarafaUser.inc:602 +#: ../lib/modules/zarafaUser.inc:1240 ../lib/modules/zarafaUser.inc:1256 +#: ../lib/modules/zarafaUser.inc:1266 ../lib/modules/zarafaUser.inc:1272 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:406 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:1173 ../lib/modules/windowsUser.inc:1512 +#: ../lib/modules/windowsUser.inc:1609 ../lib/modules/windowsUser.inc:1614 +#: ../lib/modules/windowsUser.inc:1619 ../lib/modules/windowsUser.inc:1624 +#: ../lib/modules/ppolicy.inc:36 ../lib/modules/ppolicy.inc:493 +#: ../lib/modules/ppolicy.inc:498 ../lib/modules/ppolicy.inc:501 +#: ../lib/modules/ppolicy.inc:508 ../lib/modules/inetOrgPerson.inc:525 +#: ../lib/modules/generalInformation.inc:102 +#: ../lib/modules/zarafaServer.inc:360 ../lib/modules/customFields.inc:2890 +#: ../lib/modules/fixed_ip.inc:750 +msgid "yes" +msgstr "sí" + +#~ msgid "Deleted account" +#~ msgstr "Cuenta suprimida" + +#~ msgid "" +#~ "Each line represents one LDAP attribute. The options are separated by \"::" +#~ "\". The first option specifies if the attribute is mandatory. It can have " +#~ "the values \"optional\" and \"required\"." +#~ msgstr "" +#~ "Cada línea representa un atributo LDAP. Las opciones son separadas por " +#~ "\"::\". La primera opción especifica si el atributo es obligatorio. Puede " +#~ "tener los valores \"optional\" y \"required\"." + +#~ msgid "Invalid account" +#~ msgstr "Cuenta inválida" + +#~ msgid "Mycity" +#~ msgstr "Mi ciudad" + +#~ msgid "New Authorized Service" +#~ msgstr "Nuevo Servicio Autorizado" + +#~ msgid "New IP address" +#~ msgstr "Nueva dirección IP" + +#~ msgid "New MAC address" +#~ msgstr "Nueva dirección MAC" + +#~ msgid "New SSH public key" +#~ msgstr "Nueva clave pública de ssh." + +#~ msgid "Options four and five are used for input validation." +#~ msgstr "Las opciones 4 y 5 son usadas por validación de entrada" + +#~ msgid "" +#~ "Password contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +#~ "and #*,.;:_-+!%&/|?{[()]}=@$ !" +#~ msgstr "" +#~ "La contraseña contiene caracteres inválidos. Los caracteres válidos son: " +#~ "a-z, A-Z, 0-9, y #*,.;:_-+$%&/|?{[()]}= !" + +#~ msgid "" +#~ "Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") and an " +#~ "error message if the value does not match it. For a syntax description " +#~ "see here." +#~ msgstr "" +#~ "Por favor ingrese una expresión regular (e.g. \"/^[0-9a-zA-Z]+$/\") y un " +#~ "mensaje de error si el valor no concuerda. Para una descripción de la " +#~ "sintaxis ver here." + +#~ msgid "Sync Asterisk voicemail password with Unix password" +#~ msgstr "" +#~ "Sincronizar la contraseña de Buzón de Voz de Asterisk con la de UNIX." + +#~ msgid "The domain name needs to have at least 3 characters." +#~ msgstr "El nombre de dominio neceista tener como minimo 3 caracteres" + +#~ msgid "" +#~ "The second option is the LDAP attribute name and the third one is a " +#~ "descriptive label for it." +#~ msgstr "" +#~ "La segunda opción es el nombre del atributo LDAP y la tercera es una " +#~ "etiqueta descriptiva del mismo." + +#~ msgid "" +#~ "To disable login use /bin/false. The list of shells is read from lam/" +#~ "config/shells" +#~ msgstr "" +#~ "Para deshabilitar la cuenta, use /bin/false. La lista de shells se lee de " +#~ "la configuración de lam/config/shells" + +#~ msgid "Unable to read sambaSID attribute." +#~ msgstr "No se puede leer el atributo sambaSID" + +#~ msgid "" +#~ "Unable to sync the time when the user can/must change his password " +#~ "because no domain was found." +#~ msgstr "" +#~ "Imposible sincronizar el momento en el que el usuario puede/debe cambiar " +#~ "su contraseña, ya que no se encontró ningún dominio." + +#~ msgid "User ID" +#~ msgstr "ID de usuario" + +#~ msgid "" +#~ "You are using a capital letters. This can cause problems because Windows " +#~ "isn't case-sensitive." +#~ msgstr "" +#~ "Está utilizando mayúsculas. Esto puede causar problemas, pues Windows no " +#~ "distingue entre mayúsculas y minúsculas." + +#~ msgid "" +#~ "You are using a capital letters. This can cause problems because windows " +#~ "isn't case-sensitive." +#~ msgstr "" +#~ "Está utilizando mayúsculas. Esto puede causar problemas, pues Windows no " +#~ "distingue entre mayúsculas y minúsculas." + +#~ msgid "Country" +#~ msgstr "Pais" + +#~ msgid "Country name is invalid!" +#~ msgstr "El nombre del pais es inválido!" + +#~ msgid "Free/Busy interval" +#~ msgstr "Intervalo de Libre/Ocupado" + +#~ msgid "Free/Busy interval must be a number!" +#~ msgstr "¡El intervalo de Libre/Ocupado debe ser un número!" + +#~ msgid "Germany" +#~ msgstr "Alemania" + +#~ msgid "Mail quota must be a number!" +#~ msgstr "¡La cuota de correo debe de ser un número!" + +#~ msgid "" +#~ "The Cyrus mail quota for users in MBytes, leave blank for unlimited space." +#~ msgstr "" +#~ "La cuota en Megas para usuarios de Cyrus, deje en blanco para espacio " +#~ "ilimitado." + +#~ msgid "" +#~ "This is the time limit (in days) for other users who want to check future " +#~ "appointments. If you leave this blank the default (60 days) will be set." +#~ msgstr "" +#~ "Esto representa el limite de tiempo (en dias) en los que los otros " +#~ "usuarios pueden buscar citas. El valor por defecto es de 60 dias." + +#~ msgid "YourCompany, Human Resources" +#~ msgstr "SuEmpresa, Recursos humanos." diff --git a/lam/locale/fr_FR/LC_MESSAGES/messages.mo b/lam/locale/fr_FR/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..ebf15f7e Binary files /dev/null and b/lam/locale/fr_FR/LC_MESSAGES/messages.mo differ diff --git a/lam/locale/fr_FR/LC_MESSAGES/messages.po b/lam/locale/fr_FR/LC_MESSAGES/messages.po new file mode 100644 index 00000000..bb241a0b --- /dev/null +++ b/lam/locale/fr_FR/LC_MESSAGES/messages.po @@ -0,0 +1,18310 @@ +# translation of messages.po to francais +# translation of messages.po to Française +# $Id: messages.po,v 1.1 2004/10/02 11:26:18 gruberroland Exp $ +# +# +# LDAP Account Manager +# Poirier , 2004. +# Emmanuel Seyman , 2004. +# poirier , 2004, 2005, 2006, 2007, 2008. +# Franck Rakotonindrainy , 2011, 2012, 2013, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: messages\n" +"Report-Msgid-Bugs-To: post@rolandgruber.de\n" +"POT-Creation-Date: 2004-01-14 17:45+0200\n" +"PO-Revision-Date: 2014-06-11 15:08+0200\n" +"Last-Translator: Franck Rakotonindrainy \n" +"Language-Team: French <>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.0.2\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: ../lib/modules/zarafaContact.inc:95 ../lib/modules/zarafaContact.inc:98 +#: ../lib/modules/zarafaContact.inc:101 ../lib/modules/zarafaContact.inc:126 +#: ../lib/modules/zarafaGroup.inc:97 ../lib/modules/zarafaGroup.inc:100 +#: ../lib/modules/zarafaGroup.inc:103 ../lib/modules/zarafaGroup.inc:130 +#: ../lib/modules/zarafaUser.inc:144 ../lib/modules/zarafaUser.inc:147 +#: ../lib/modules/zarafaUser.inc:150 ../lib/modules/zarafaUser.inc:1812 +msgid "\"Send as\" attribute" +msgstr "Attribut \"Envoyer en tant que\"" + +#: ../lib/modules/zarafaContact.inc:79 ../lib/modules/zarafaContact.inc:150 +#: ../lib/modules/zarafaContact.inc:173 ../lib/modules/zarafaContact.inc:187 +#: ../lib/modules/zarafaContact.inc:226 ../lib/modules/zarafaContact.inc:355 +#: ../lib/modules/zarafaContact.inc:565 ../lib/modules/zarafaGroup.inc:93 +#: ../lib/modules/zarafaGroup.inc:138 ../lib/modules/zarafaGroup.inc:188 +#: ../lib/modules/zarafaGroup.inc:206 ../lib/modules/zarafaGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:263 ../lib/modules/zarafaGroup.inc:415 +#: ../lib/modules/zarafaGroup.inc:650 ../lib/modules/zarafaUser.inc:104 +#: ../lib/modules/zarafaUser.inc:196 ../lib/modules/zarafaUser.inc:355 +#: ../lib/modules/zarafaUser.inc:382 ../lib/modules/zarafaUser.inc:419 +#: ../lib/modules/zarafaUser.inc:463 ../lib/modules/zarafaUser.inc:839 +#: ../lib/modules/zarafaUser.inc:1234 ../lib/modules/zarafaUser.inc:1465 +#: ../lib/modules/zarafaUser.inc:1793 +msgid "\"Send as\" privileges" +msgstr "Autorisations d'\"Envoyer en tant que\" " + +#: ../lib/modules/posixAccount.inc:519 +msgid "" +"$user and $group will be replaced with user name and primary group name." +msgstr "" +"$user et $group seront remplacés respectivement par le nom d'utilisateur et " +"le nom du groupe principal." + +#: ../lib/modules/nisnetgroup.inc:134 +msgid "(host1,user1,example.com);(host2,user2,example.com)" +msgstr "(hôte1,utilisateur1,example.com);(hôte2,utilisateur2,example.com)" + +#: ../lib/modules/qmailUser.inc:368 ../lib/modules/posixAccount.inc:312 +msgid "/home/smiller" +msgstr "/home/smiller" + +#: ../lib/modules/inetOrgPerson.inc:419 +#: ../lib/modules/asteriskVoicemail.inc:186 +msgid "123-123-1234" +msgstr "123-123-1234" + +#: ../lib/modules/inetOrgPerson.inc:435 +msgid "123-123-1235" +msgstr "123-123-1235" + +#: ../lib/modules/inetOrgPerson.inc:443 +msgid "123-123-1236" +msgstr "123-123-1236" + +#: ../lib/modules/windowsUser.inc:364 ../lib/modules/windowsUser.inc:370 +#: ../lib/modules/inetOrgPerson.inc:427 +msgid "123-124-1234" +msgstr "123-124-1234" + +#: ../lib/modules/windowsUser.inc:322 ../lib/modules/inetOrgPerson.inc:411 +msgid "12345" +msgstr "12345" + +#: ../lib/modules/dhcp_settings.inc:174 +msgid "" +"B-Node (0x01): Broadcast.
    The client tries to find other " +"workstations via broadcasting\n" +"(works only inside the same collision domain, viz. the same subnet).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"The client contacts a Netbios name server (NBNS) from Microsoft Windows Name " +"Service (WINS) for name resolution.

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"The node tries broadcasting first. If that fails then it tries WINS.

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"The node tries WINS first. If that fails it tries broadcasting.

    \n" +"\n" +"By default, the nodes are configured as H-Nodes which fits for small " +"networks. In large networks Point-to-Point (0x02) should be used." +msgstr "" +"Noeud-B (0x01): Diffusion
    Le client cherche les stations proches " +"par diffusion\n" +"(fonctionne uniquement dans le même domaine de collision, càd le même sous-" +"réseau).

    \n" +"\n" +"Noeud-P (0x02): Point-à-Point
    \n" +"Le client contacte un serveur de nom Netbios (NBNS) via Microsoft Windows " +"Name Service (WINS) pour faire la résolution de nom.

    \n" +"\n" +"Noeud-M (0x04): Mixed
    \n" +"Le noeud envoie d 'abord un message de diffusion. Si cela échoue il essaye " +"le WINS.

    \n" +"\n" +"Noeud-H (0x08): Hybride
    \n" +"Le noeud essaye d'abord via WINS. Si cela échoue, il essaye par diffusion." +"

    \n" +"\n" +"Par défaut, les noeuds sont configurés en Noeud-H, ce qui convient pour de " +"petits réseaux. Sur des réseaux importants il est préférable d 'utiliser le " +"Noeud-P." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:145 +#, php-format +msgid "Maximum length: %s characters" +msgstr "Longueur maximum: %s caractères" + +#: ../lib/modules/bindDLZ.inc:492 +msgid "A CNAME record allows no other records." +msgstr "Un enregistrement CNAME ne peut pas avoir d'autre type." + +#: ../lib/modules/bindDLZ.inc:526 +msgid "A NS record allows no other records except SOA/MX/A records." +msgstr "" +"Un enregistrement NS ne peut avoir d'autre enregistrement que SOA, MX ou A." + +#: ../lib/modules/bindDLZ.inc:510 +msgid "A SOA record allows no other records except NS/MX/A records." +msgstr "" +"Un enregistrement SOA ne peut avoir d'autre enregistrement que NS, MX ou A." + +#: ../lib/modules/bindDLZ.inc:511 +msgid "A SOA record requires that the host name is set to \"@\"." +msgstr "Un enregistrement SOA impose d'avoir \"@\" comme nom d'hôte." + +#: ../lib/modules/selfRegistration.inc:631 +#: ../lib/modules/passwordSelfReset.inc:1590 +msgid "" +"A confirmation mail was sent. Please click on the link in the mail to " +"proceed." +msgstr "" +"Un mail de confirmation a été envoyé. Merci de cliquer sur le lien dans le " +"mail pour continuer." + +#: ../lib/modules/device.inc:82 +msgid "A description for this device." +msgstr "Description de ce matériel." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +msgid "A list of attributes to display in the results (comma-separated)" +msgstr "" +"Liste des attributs à afficher dans le résultat (séparés par des virgules)" + +#: ../lib/modules/sudoRole.inc:95 ../lib/modules/sudoRole.inc:124 +msgid "A list of options (e.g. !authenticate)." +msgstr "Une liste d'options (ex !authenticate)." + +#: ../templates/massBuildAccounts.php:135 +msgid "A required column is missing in your CSV file." +msgstr "Une colonne obligatoire semble manquer dans le fichier CSV" + +#: ../lib/modules/bindDLZ.inc:165 ../lib/modules/bindDLZ.inc:169 +msgid "A server name for this service (e.g. \"ldap.example.com.\")." +msgstr "Un nom de serveur pour ce service (ex : \"ldap.example.com.\")." + +#: ../lib/modules/bindDLZ.inc:157 ../lib/modules/bindDLZ.inc:161 +msgid "A text value for this host." +msgstr "Champ texte pour cet hôte." + +#: ../lib/modules/kolabUser.inc:133 +msgid "" +"A user may define who is allowed to act on behalf of herself. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"Un utilisateur doit définir qui est autorisé à agir . Cette propriété est " +"cochée lorsque l'on utilise le daemon Kolab smtp (Postfix) pour envoiyer des " +"mails." + +#: ../templates/3rdParty/pla/lib/import_functions.php:593 +msgid "A valid deleteoldrdn attribute should be specified" +msgstr "Un attribut deleteoldrdn valide doit être fourni" + +#: ../templates/3rdParty/pla/lib/import_functions.php:237 +msgid "A valid dn line is required" +msgstr "Une entrée DN valide est requise" + +#: ../templates/3rdParty/pla/lib/import_functions.php:596 +msgid "A valid newrdn attribute should be specified" +msgstr "Un newrdn valide doit être fourni" + +#: ../templates/3rdParty/pla/lib/import_functions.php:587 +msgid "A valid newsuperior attribute should be specified" +msgstr "Un attribut newsuperior valide doit être fourni" + +#: ../lib/modules/bindDLZ.inc:89 ../lib/modules/bindDLZ.inc:98 +#: ../lib/modules/bindDLZ.inc:248 ../lib/modules/bindDLZ.inc:254 +#: ../lib/modules/bindDLZ.inc:472 +msgid "A/AAAA record" +msgstr "Enregistrement A/AAAA" + +#: ../lib/modules/bindDLZ.inc:411 ../lib/modules/bindDLZ.inc:431 +#: ../lib/modules/bindDLZ.inc:1469 +msgid "A/AAAA records" +msgstr "Enregistrements A/AAAA" + +#: ../lib/modules/asteriskAccount.inc:131 +#: ../lib/modules/asteriskAccount.inc:271 +#: ../lib/modules/asteriskAccount.inc:347 +#: ../lib/modules/asteriskAccount.inc:610 +#: ../lib/modules/asteriskAccount.inc:987 +#: ../lib/modules/asteriskAccount.inc:1243 +msgid "AMA flags" +msgstr "Drapeaux AMA" + +#: ../templates/serverInfo.php:342 +msgid "Abandon" +msgstr "Annuler" + +#: ../templates/lists/changePassword.php:714 +msgid "Aborted password change." +msgstr "Annulation de changement de mot de passe." + +#: ../lib/modules/sambaSamAccount.inc:568 +msgid "Abu Dhabi, Muscat, Baku" +msgstr "Abu Dhabi, Mascate, Bakou" + +#: ../templates/config/confmain.php:264 ../help/help.inc:109 +msgid "Access level" +msgstr "Niveau d'accès" + +#: ../lib/modules/account.inc:65 +msgid "Account" +msgstr "Compte" + +#: ../templates/massBuildAccounts.php:201 ../lib/modules/kolabGroup.inc:178 +#: ../lib/modules/kolabGroup.inc:180 ../lib/modules/kolabGroup.inc:182 +#: ../lib/modules/kolabGroup.inc:184 ../lib/modules/pykotaPrinter.inc:210 +#: ../lib/modules/pykotaPrinter.inc:212 ../lib/modules/pykotaPrinter.inc:214 +#: ../lib/modules/pykotaPrinter.inc:216 ../lib/modules/pykotaPrinter.inc:218 +#: ../lib/modules/pykotaPrinter.inc:219 ../lib/modules/pykotaPrinter.inc:220 +#: ../lib/modules/mitKerberos.inc:290 ../lib/modules/mitKerberos.inc:291 +#: ../lib/modules/mitKerberos.inc:292 ../lib/modules/mitKerberos.inc:294 +#: ../lib/modules/mitKerberos.inc:296 ../lib/modules/mitKerberos.inc:297 +#: ../lib/modules/zarafaDynamicGroup.inc:197 +#: ../lib/modules/zarafaDynamicGroup.inc:199 +#: ../lib/modules/zarafaDynamicGroup.inc:201 +#: ../lib/modules/zarafaDynamicGroup.inc:203 +#: ../lib/modules/zarafaDynamicGroup.inc:204 +#: ../lib/modules/zarafaDynamicGroup.inc:205 ../lib/modules/ipHost.inc:116 +#: ../lib/modules/ipHost.inc:117 ../lib/modules/asteriskAccount.inc:558 +#: ../lib/modules/asteriskAccount.inc:561 +#: ../lib/modules/asteriskAccount.inc:564 +#: ../lib/modules/asteriskAccount.inc:567 +#: ../lib/modules/asteriskAccount.inc:569 +#: ../lib/modules/asteriskAccount.inc:571 +#: ../lib/modules/asteriskAccount.inc:573 +#: ../lib/modules/asteriskAccount.inc:575 +#: ../lib/modules/asteriskAccount.inc:577 ../lib/modules/account.inc:125 +#: ../lib/modules/ieee802device.inc:96 ../lib/modules/puppetClient.inc:185 +#: ../lib/modules/puppetClient.inc:187 ../lib/modules/puppetClient.inc:189 +#: ../lib/modules/puppetClient.inc:190 ../lib/modules/qmailUser.inc:449 +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:453 +#: ../lib/modules/qmailUser.inc:454 ../lib/modules/qmailUser.inc:455 +#: ../lib/modules/qmailUser.inc:457 ../lib/modules/qmailUser.inc:459 +#: ../lib/modules/qmailUser.inc:461 ../lib/modules/qmailUser.inc:464 +#: ../lib/modules/qmailUser.inc:467 ../lib/modules/qmailUser.inc:469 +#: ../lib/modules/qmailUser.inc:470 ../lib/modules/qmailUser.inc:471 +#: ../lib/modules/zarafaContact.inc:186 ../lib/modules/zarafaContact.inc:188 +#: ../lib/modules/zarafaContact.inc:189 ../lib/modules/zarafaContact.inc:190 +#: ../lib/modules/zarafaContact.inc:191 ../lib/modules/windowsHost.inc:132 +#: ../lib/modules/posixGroup.inc:606 ../lib/modules/posixGroup.inc:610 +#: ../lib/modules/posixGroup.inc:611 ../lib/modules/zarafaGroup.inc:216 +#: ../lib/modules/zarafaGroup.inc:218 ../lib/modules/zarafaGroup.inc:219 +#: ../lib/modules/zarafaGroup.inc:220 ../lib/modules/zarafaGroup.inc:221 +#: ../lib/modules/zarafaGroup.inc:223 ../lib/modules/device.inc:141 +#: ../lib/modules/device.inc:142 ../lib/modules/dhcp_settings.inc:321 +#: ../lib/modules/dhcp_settings.inc:323 ../lib/modules/dhcp_settings.inc:325 +#: ../lib/modules/dhcp_settings.inc:327 ../lib/modules/dhcp_settings.inc:329 +#: ../lib/modules/dhcp_settings.inc:330 ../lib/modules/dhcp_settings.inc:331 +#: ../lib/modules/dhcp_settings.inc:333 ../lib/modules/dhcp_settings.inc:335 +#: ../lib/modules/dhcp_settings.inc:339 ../lib/modules/eduPerson.inc:244 +#: ../lib/modules/eduPerson.inc:246 ../lib/modules/eduPerson.inc:248 +#: ../lib/modules/eduPerson.inc:250 ../lib/modules/eduPerson.inc:251 +#: ../lib/modules/eduPerson.inc:252 ../lib/modules/eduPerson.inc:253 +#: ../lib/modules/quota.inc:52 ../lib/modules/quota.inc:54 +#: ../lib/modules/quota.inc:56 ../lib/modules/quota.inc:58 +#: ../lib/modules/quota.inc:60 ../lib/modules/quota.inc:62 +#: ../lib/modules/quota.inc:63 ../lib/modules/zarafaAddressList.inc:170 +#: ../lib/modules/zarafaAddressList.inc:171 +#: ../lib/modules/zarafaAddressList.inc:172 ../lib/modules/pykotaGroup.inc:198 +#: ../lib/modules/pykotaGroup.inc:200 ../lib/modules/pykotaGroup.inc:202 +#: ../lib/modules/pykotaGroup.inc:204 ../lib/modules/pykotaGroup.inc:205 +#: ../lib/modules/sambaSamAccount.inc:96 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:102 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:107 +#: ../lib/modules/sambaSamAccount.inc:108 +#: ../lib/modules/sambaSamAccount.inc:109 +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 +#: ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/sambaSamAccount.inc:117 +#: ../lib/modules/sambaSamAccount.inc:118 +#: ../lib/modules/sambaSamAccount.inc:120 +#: ../lib/modules/sambaSamAccount.inc:121 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/posixAccount.inc:107 ../lib/modules/posixAccount.inc:111 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/posixAccount.inc:124 +#: ../lib/modules/posixAccount.inc:126 ../lib/modules/posixAccount.inc:127 +#: ../lib/modules/posixAccount.inc:128 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/zarafaUser.inc:409 ../lib/modules/zarafaUser.inc:411 +#: ../lib/modules/zarafaUser.inc:413 ../lib/modules/zarafaUser.inc:414 +#: ../lib/modules/zarafaUser.inc:416 ../lib/modules/zarafaUser.inc:418 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/zarafaUser.inc:421 +#: ../lib/modules/zarafaUser.inc:422 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:424 ../lib/modules/zarafaUser.inc:425 +#: ../lib/modules/zarafaUser.inc:426 ../lib/modules/zarafaUser.inc:427 +#: ../lib/modules/ppolicyUser.inc:97 ../lib/modules/bindDLZ.inc:471 +#: ../lib/modules/bindDLZ.inc:473 ../lib/modules/bindDLZ.inc:475 +#: ../lib/modules/bindDLZ.inc:477 ../lib/modules/bindDLZ.inc:479 +#: ../lib/modules/bindDLZ.inc:481 ../lib/modules/bindDLZ.inc:483 +#: ../lib/modules/bindDLZ.inc:485 ../lib/modules/bindDLZ.inc:487 +#: ../lib/modules/bindDLZ.inc:489 ../lib/modules/bindDLZ.inc:491 +#: ../lib/modules/bindDLZ.inc:492 ../lib/modules/bindDLZ.inc:494 +#: ../lib/modules/bindDLZ.inc:496 ../lib/modules/bindDLZ.inc:498 +#: ../lib/modules/bindDLZ.inc:500 ../lib/modules/bindDLZ.inc:502 +#: ../lib/modules/bindDLZ.inc:504 ../lib/modules/bindDLZ.inc:506 +#: ../lib/modules/bindDLZ.inc:508 ../lib/modules/bindDLZ.inc:509 +#: ../lib/modules/bindDLZ.inc:510 ../lib/modules/bindDLZ.inc:511 +#: ../lib/modules/bindDLZ.inc:513 ../lib/modules/bindDLZ.inc:515 +#: ../lib/modules/bindDLZ.inc:517 ../lib/modules/bindDLZ.inc:519 +#: ../lib/modules/bindDLZ.inc:521 ../lib/modules/bindDLZ.inc:523 +#: ../lib/modules/bindDLZ.inc:525 ../lib/modules/bindDLZ.inc:526 +#: ../lib/modules/windowsUser.inc:590 ../lib/modules/windowsUser.inc:592 +#: ../lib/modules/windowsUser.inc:594 ../lib/modules/windowsUser.inc:596 +#: ../lib/modules/windowsUser.inc:598 ../lib/modules/windowsUser.inc:600 +#: ../lib/modules/windowsUser.inc:602 ../lib/modules/windowsUser.inc:604 +#: ../lib/modules/windowsUser.inc:606 ../lib/modules/windowsUser.inc:608 +#: ../lib/modules/windowsUser.inc:610 ../lib/modules/windowsUser.inc:612 +#: ../lib/modules/windowsUser.inc:614 ../lib/modules/windowsUser.inc:617 +#: ../lib/modules/windowsUser.inc:619 ../lib/modules/windowsUser.inc:621 +#: ../lib/modules/windowsUser.inc:1352 ../lib/modules/windowsUser.inc:1361 +#: ../lib/modules/windowsUser.inc:1370 ../lib/modules/windowsUser.inc:1381 +#: ../lib/modules/windowsUser.inc:1448 ../lib/modules/kolabUser.inc:246 +#: ../lib/modules/kolabUser.inc:248 ../lib/modules/kolabUser.inc:250 +#: ../lib/modules/kolabUser.inc:252 ../lib/modules/kolabUser.inc:254 +#: ../lib/modules/kolabUser.inc:256 ../lib/modules/kolabUser.inc:258 +#: ../lib/modules/ddns.inc:152 ../lib/modules/nisObject.inc:124 +#: ../lib/modules/sambaGroupMapping.inc:603 +#: ../lib/modules/sambaGroupMapping.inc:604 ../lib/modules/pykotaUser.inc:312 +#: ../lib/modules/pykotaUser.inc:314 ../lib/modules/pykotaUser.inc:316 +#: ../lib/modules/pykotaUser.inc:318 ../lib/modules/pykotaUser.inc:320 +#: ../lib/modules/pykotaUser.inc:321 ../lib/modules/pykotaUser.inc:323 +#: ../lib/modules/pykotaUser.inc:325 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/shadowAccount.inc:60 ../lib/modules/shadowAccount.inc:62 +#: ../lib/modules/shadowAccount.inc:64 ../lib/modules/shadowAccount.inc:66 +#: ../lib/modules/shadowAccount.inc:67 ../lib/modules/automount.inc:115 +#: ../lib/modules/sambaDomain.inc:209 ../lib/modules/sambaDomain.inc:211 +#: ../lib/modules/sambaDomain.inc:213 ../lib/modules/sambaDomain.inc:215 +#: ../lib/modules/sambaDomain.inc:217 ../lib/modules/sambaDomain.inc:219 +#: ../lib/modules/inetOrgPerson.inc:67 ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:71 ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:75 ../lib/modules/inetOrgPerson.inc:77 +#: ../lib/modules/inetOrgPerson.inc:80 ../lib/modules/inetOrgPerson.inc:82 +#: ../lib/modules/inetOrgPerson.inc:84 ../lib/modules/inetOrgPerson.inc:86 +#: ../lib/modules/inetOrgPerson.inc:88 ../lib/modules/inetOrgPerson.inc:90 +#: ../lib/modules/inetOrgPerson.inc:92 ../lib/modules/inetOrgPerson.inc:94 +#: ../lib/modules/inetOrgPerson.inc:96 ../lib/modules/inetOrgPerson.inc:97 +#: ../lib/modules/inetOrgPerson.inc:98 ../lib/modules/inetOrgPerson.inc:104 +#: ../lib/modules/inetOrgPerson.inc:105 ../lib/modules/inetOrgPerson.inc:106 +#: ../lib/modules/systemQuotas.inc:98 ../lib/modules/systemQuotas.inc:100 +#: ../lib/modules/systemQuotas.inc:102 ../lib/modules/systemQuotas.inc:104 +#: ../lib/modules/systemQuotas.inc:106 ../lib/modules/systemQuotas.inc:108 +#: ../lib/modules/systemQuotas.inc:110 ../lib/modules/freeRadius.inc:250 +#: ../lib/modules/freeRadius.inc:252 ../lib/modules/freeRadius.inc:254 +#: ../lib/modules/freeRadius.inc:256 ../lib/modules/freeRadius.inc:258 +#: ../lib/modules/freeRadius.inc:260 ../lib/modules/sudoRole.inc:270 +#: ../lib/modules/sudoRole.inc:272 ../lib/modules/sudoRole.inc:274 +#: ../lib/modules/sudoRole.inc:276 ../lib/modules/sudoRole.inc:278 +#: ../lib/modules/sudoRole.inc:280 ../lib/modules/sudoRole.inc:282 +#: ../lib/modules/sudoRole.inc:284 ../lib/modules/sudoRole.inc:286 +#: ../lib/modules/kolabSharedFolder.inc:251 +#: ../lib/modules/kolabSharedFolder.inc:253 +#: ../lib/modules/kolabSharedFolder.inc:255 +#: ../lib/modules/kolabSharedFolder.inc:256 +#: ../lib/modules/kolabSharedFolder.inc:258 +#: ../lib/modules/kolabSharedFolder.inc:260 +#: ../lib/modules/zarafaServer.inc:174 ../lib/modules/zarafaServer.inc:176 +#: ../lib/modules/zarafaServer.inc:178 ../lib/modules/zarafaServer.inc:179 +#: ../lib/modules/asteriskVoicemail.inc:212 +#: ../lib/modules/asteriskVoicemail.inc:216 +#: ../lib/modules/asteriskVoicemail.inc:219 +#: ../lib/modules/asteriskVoicemail.inc:221 +#: ../lib/modules/asteriskVoicemail.inc:223 +#: ../lib/modules/asteriskVoicemail.inc:225 +#: ../lib/modules/asteriskVoicemail.inc:227 +#: ../lib/modules/inetLocalMailRecipient.inc:131 +#: ../lib/modules/inetLocalMailRecipient.inc:133 +#: ../lib/modules/inetLocalMailRecipient.inc:135 +#: ../lib/modules/aliasEntry.inc:86 ../lib/modules/qmailGroup.inc:421 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:426 +#: ../lib/modules/qmailGroup.inc:428 ../lib/modules/qmailGroup.inc:430 +#: ../lib/modules/qmailGroup.inc:432 ../lib/modules/qmailGroup.inc:433 +#: ../lib/modules/qmailGroup.inc:434 ../lib/modules/qmailGroup.inc:435 +#: ../lib/modules/qmailGroup.inc:436 ../lib/modules/qmailGroup.inc:437 +#: ../lib/modules/authorizedServiceObject.inc:130 +#: ../lib/modules/passwordSelfReset.inc:233 +#: ../lib/modules/heimdalKerberos.inc:254 +#: ../lib/modules/heimdalKerberos.inc:255 +#: ../lib/modules/heimdalKerberos.inc:256 +#: ../lib/modules/heimdalKerberos.inc:258 +#: ../lib/modules/heimdalKerberos.inc:260 +#: ../lib/modules/pykotaBillingCode.inc:128 +#: ../lib/modules/pykotaBillingCode.inc:130 +#: ../lib/modules/windowsGroup.inc:284 ../lib/modules/windowsGroup.inc:286 +#: ../lib/modules/windowsGroup.inc:287 ../lib/modules/windowsGroup.inc:288 +#: ../lib/modules/windowsGroup.inc:290 ../lib/modules/nisMailAlias.inc:126 +#: ../lib/modules/nisMailAlias.inc:128 ../lib/modules/hostObject.inc:111 +#, php-format +msgid "Account %s:" +msgstr "Compte %s" + +#: ../lib/types/asteriskExt.inc:95 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskAccount.inc:111 +#: ../lib/modules/asteriskAccount.inc:255 +#: ../lib/modules/asteriskAccount.inc:267 +#: ../lib/modules/asteriskAccount.inc:311 +#: ../lib/modules/asteriskAccount.inc:593 +#: ../lib/modules/asteriskAccount.inc:983 +#: ../lib/modules/asteriskExtension.inc:98 +#: ../lib/modules/asteriskExtension.inc:129 +#: ../lib/modules/asteriskExtension.inc:136 +#: ../lib/modules/asteriskExtension.inc:152 +#: ../lib/modules/asteriskExtension.inc:306 +#: ../lib/modules/asteriskExtension.inc:812 +#: ../lib/modules/asteriskVoicemail.inc:91 +#: ../lib/modules/asteriskVoicemail.inc:127 +#: ../lib/modules/asteriskVoicemail.inc:137 +#: ../lib/modules/asteriskVoicemail.inc:151 +#: ../lib/modules/asteriskVoicemail.inc:247 +#: ../lib/modules/asteriskVoicemail.inc:370 +msgid "Account context" +msgstr "Contexte de compte" + +#: ../lib/modules/selfRegistration.inc:449 +msgid "Account creation" +msgstr "Création de compte" + +#: ../lib/modules/selfRegistration.inc:231 +msgid "Account creation confirmation" +msgstr "Confirmation de création de compte" + +#: ../templates/masscreate.php:125 +msgid "Account creation via file upload" +msgstr "Création de compte par chargement de fichier" + +#: ../lib/modules/posixAccount.inc:526 +msgid "Account deactivated" +msgstr "Compte désactivé" + +#: ../templates/lists/changePassword.php:275 +msgid "Account details" +msgstr "Détail du compte" + +#: ../lib/types/user.inc:104 ../lib/modules/mitKerberos.inc:124 +#: ../lib/modules/mitKerberos.inc:218 ../lib/modules/mitKerberos.inc:251 +#: ../lib/modules/mitKerberos.inc:385 ../lib/modules/mitKerberos.inc:634 +#: ../lib/modules/mitKerberos.inc:783 ../lib/modules/sambaSamAccount.inc:345 +#: ../lib/modules/sambaSamAccount.inc:463 +#: ../lib/modules/sambaSamAccount.inc:1189 +#: ../lib/modules/sambaSamAccount.inc:1447 +#: ../lib/modules/sambaSamAccount.inc:1739 +#: ../lib/modules/shadowAccount.inc:128 ../lib/modules/shadowAccount.inc:193 +#: ../lib/modules/shadowAccount.inc:233 ../lib/modules/shadowAccount.inc:352 +#: ../lib/modules/shadowAccount.inc:453 ../lib/modules/shadowAccount.inc:499 +#: ../lib/modules/heimdalKerberos.inc:102 +#: ../lib/modules/heimdalKerberos.inc:187 +#: ../lib/modules/heimdalKerberos.inc:219 +#: ../lib/modules/heimdalKerberos.inc:321 +#: ../lib/modules/heimdalKerberos.inc:544 +#: ../lib/modules/heimdalKerberos.inc:679 +msgid "Account expiration date" +msgstr "Date d'expiration du compte" + +#: ../lib/modules/shadowAccount.inc:169 +msgid "Account inactive" +msgstr "Compte inactif" + +#: ../lib/modules/sambaSamAccount.inc:285 +#: ../lib/modules/sambaSamAccount.inc:291 +#: ../lib/modules/sambaSamAccount.inc:455 +#: ../lib/modules/sambaSamAccount.inc:1147 +#: ../lib/modules/sambaSamAccount.inc:1735 ../lib/modules/windowsUser.inc:192 +#: ../lib/modules/windowsUser.inc:386 ../lib/modules/windowsUser.inc:517 +#: ../lib/modules/windowsUser.inc:744 ../lib/modules/windowsUser.inc:1611 +msgid "Account is deactivated" +msgstr "Le compte est désactivé" + +#: ../lib/modules/sambaSamAccount.inc:288 +#: ../lib/modules/sambaSamAccount.inc:1153 ../lib/modules/windowsUser.inc:195 +#: ../lib/modules/windowsUser.inc:725 +msgid "Account is locked" +msgstr "Le compte est verrouillé" + +#: ../templates/delete.php:99 +msgid "Account name:" +msgstr "Nom de compte :" + +#: ../lib/types/user.inc:305 ../lib/types/user.inc:714 +#: ../lib/types/user.inc:848 ../lib/modules/qmailUser.inc:211 +#: ../lib/modules/qmailUser.inc:283 ../lib/modules/qmailUser.inc:402 +#: ../lib/modules/qmailUser.inc:609 ../lib/modules/qmailUser.inc:1157 +msgid "Account status" +msgstr "Statut du compte" + +#: ../templates/masscreate.php:152 ../lib/modules/asteriskAccount.inc:119 +#: ../lib/modules/asteriskAccount.inc:256 +#: ../lib/modules/asteriskAccount.inc:269 +#: ../lib/modules/asteriskAccount.inc:331 +#: ../lib/modules/asteriskAccount.inc:595 +#: ../lib/modules/asteriskAccount.inc:985 ../lib/modules/customFields.inc:524 +#: ../lib/modules/customFields.inc:566 +msgid "Account type" +msgstr "Type de compte" + +#: ../templates/config/confmodules.php:168 +#: ../templates/config/confmain.php:209 +#: ../templates/config/moduleSettings.php:167 +#: ../templates/config/conftypes.php:186 +msgid "Account types" +msgstr "Types de compte" + +#: ../help/help.inc:111 +msgid "Account types and modules" +msgstr "Types de compte et Modules" + +#: ../help/help.inc:113 +msgid "" +"Account types define which sorts of LDAP entries (e.g. users and groups) " +"should be managed. The account modules define which properties (e.g. Unix " +"and Samba) can be edited." +msgstr "" +"Les types de Comptes définissent quelles entrées LDAP (ex. Utilisateurs et " +"Groupes) peuvent être gérées. Le module gestion de comptes définit les " +"propriétés (ex. Unix et Samba) qui peuvent être éditées.%sn%" + +#: ../lib/modules.inc:1307 +msgid "Account was created successfully." +msgstr "Compte créé avec succès." + +#: ../templates/lists/changePassword.php:744 +#: ../templates/lists/changePassword.php:796 +#: ../templates/lists/changePassword.php:842 ../lib/modules.inc:1310 +msgid "Account was modified successfully." +msgstr "Compte modifié avec succès." + +#: ../lib/modules/customScripts.inc:168 +msgid "Action type" +msgstr "Type d'action" + +#: ../lib/modules/ddns.inc:81 ../lib/modules/ddns.inc:368 +msgid "Activate DynDNS" +msgstr "Activer DynDNS" + +#: ../templates/config/confmain.php:243 +#: ../templates/selfService/adminMain.php:451 +msgid "Activate TLS" +msgstr "Activer TLS" + +#: ../lib/modules/sambaSamAccount.inc:352 +msgid "Activate this checkbox to allow this user to use the terminal service." +msgstr "" +"Activer cette case à cocher pour autoriser cet utilisateur a utiliser " +"Microsoft Terminal Service." + +#: ../lib/modules/sambaSamAccount.inc:373 +msgid "Activate this checkbox to connect drives from the client machine." +msgstr "Cocher cette case pour connecter les lecteurs de la machine cliente." + +#: ../lib/modules/sambaSamAccount.inc:376 +msgid "Activate this checkbox to connect printers from the client machine." +msgstr "" +"Cocher cette case pour connecter les imprimantes de la machine cliente." + +#: ../lib/modules/sambaSamAccount.inc:361 +msgid "" +"Activate this checkbox to inherit the initial program and working directory " +"from the client machine." +msgstr "" +"Activer cette case à cocher pour hériter du programme initial et du " +"répertoire de travail de la machine cliente." + +#: ../lib/modules/sambaSamAccount.inc:379 +msgid "Activate this checkbox to set the client's printer as default printer." +msgstr "" +"Cocher cette case pour affecter l'imprimante du client comme imprimante par " +"défaut." + +#: ../lib/modules/posixAccount.inc:478 +msgid "Activating this checkbox will remove the user's home directory." +msgstr "Cocher cette case supprimera le répertoire home de l'utilisateur." + +#: ../lib/types/zarafaAddressListType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:93 +#: ../lib/modules/zarafaDynamicGroup.inc:83 +#: ../lib/modules/zarafaDynamicGroup.inc:144 +#: ../lib/modules/zarafaDynamicGroup.inc:168 +#: ../lib/modules/zarafaDynamicGroup.inc:281 +#: ../lib/modules/zarafaDynamicGroup.inc:456 ../lib/modules/qmailUser.inc:41 +#: ../lib/modules/qmailUser.inc:285 ../lib/modules/zarafaContact.inc:75 +#: ../lib/modules/zarafaContact.inc:156 ../lib/modules/zarafaContact.inc:254 +#: ../lib/modules/zarafaGroup.inc:89 ../lib/modules/zarafaGroup.inc:154 +#: ../lib/modules/zarafaGroup.inc:195 ../lib/modules/zarafaGroup.inc:302 +#: ../lib/modules/zarafaGroup.inc:660 ../lib/modules/zarafaAddressList.inc:71 +#: ../lib/modules/zarafaAddressList.inc:120 +#: ../lib/modules/zarafaAddressList.inc:142 +#: ../lib/modules/zarafaAddressList.inc:222 +#: ../lib/modules/zarafaAddressList.inc:338 ../lib/modules/zarafaUser.inc:84 +#: ../lib/modules/zarafaUser.inc:255 ../lib/modules/zarafaUser.inc:594 +#: ../lib/modules/zarafaUser.inc:1801 ../lib/modules/fixed_ip.inc:114 +#: ../lib/modules/fixed_ip.inc:438 ../lib/modules/fixed_ip.inc:743 +msgid "Active" +msgstr "Actif" + +#: ../templates/config/conftypes.php:232 +msgid "Active account types" +msgstr "Types de compte actifs" + +#: ../templates/serverInfo.php:307 ../templates/serverInfo.php:384 +#: ../templates/multiEdit.php:126 ../templates/config/profmanage.php:252 +#: ../templates/config/confmodules.php:305 +#: ../templates/config/conftypes.php:223 +#: ../templates/selfService/profManage.php:209 +#: ../templates/pdfedit/pdfpage.php:596 ../templates/pdfedit/pdfpage.php:606 +#: ../templates/pdfedit/pdfpage.php:616 ../templates/pdfedit/pdfpage.php:630 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1206 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1210 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:78 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:121 +#: ../lib/modules/pykotaPrinter.inc:269 ../lib/modules/pykotaPrinter.inc:430 +#: ../lib/modules/nisMailAliasUser.inc:162 +#: ../lib/modules/nisMailAliasUser.inc:201 +#: ../lib/modules/nisMailAliasUser.inc:387 +#: ../lib/modules/zarafaContact.inc:390 ../lib/modules/zarafaGroup.inc:450 +#: ../lib/modules/device.inc:253 ../lib/modules/zarafaUser.inc:874 +#: ../lib/modules/zarafaUser.inc:1462 ../lib/modules/zarafaUser.inc:1494 +#: ../lib/modules/bindDLZ.inc:668 ../lib/modules/bindDLZ.inc:760 +#: ../lib/modules/bindDLZ.inc:840 ../lib/modules/bindDLZ.inc:944 +#: ../lib/modules/bindDLZ.inc:1060 ../lib/modules/bindDLZ.inc:1172 +#: ../lib/modules/bindDLZ.inc:1268 ../lib/modules/bindDLZ.inc:1382 +#: ../lib/modules/kolabUser.inc:835 ../lib/modules/kolabUser.inc:883 +#: ../lib/modules/sambaGroupMapping.inc:392 +#: ../lib/modules/sambaGroupMapping.inc:489 ../lib/modules/pykotaUser.inc:377 +#: ../lib/modules/ldapPublicKey.inc:267 ../lib/modules/ldapPublicKey.inc:277 +#: ../lib/modules/nisnetgroup.inc:282 ../lib/modules/inetOrgPerson.inc:1709 +#: ../lib/modules/sudoRole.inc:321 ../lib/modules/sudoRole.inc:348 +#: ../lib/modules/sudoRole.inc:375 ../lib/modules/sudoRole.inc:402 +#: ../lib/modules/sudoRole.inc:429 ../lib/modules/sudoRole.inc:456 +#: ../lib/modules/customFields.inc:1083 ../lib/modules/customFields.inc:2091 +#: ../lib/modules/customFields.inc:2101 ../lib/modules/qmailGroup.inc:822 +#: ../lib/modules/organizationalRole.inc:317 ../lib/modules/fixed_ip.inc:586 +#: ../lib/modules/windowsGroup.inc:556 ../lib/modules/groupOfNames.inc:374 +#: ../lib/modules/groupOfNames.inc:529 +msgid "Add" +msgstr "Ajouter" + +#: ../lib/modules/asteriskAccount.inc:762 +msgid "Add Asterisk account" +msgstr "Ajouter compte Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:269 +msgid "Add Asterisk voicemail extension" +msgstr "Ajouter les extensions de boîte vocale Asterisk" + +#: ../lib/modules/authorizedServiceObject.inc:175 +msgid "Add Authorized Service extension" +msgstr "Ajouter les extensions Authorized Service" + +#: ../lib/modules/eduPerson.inc:360 +msgid "Add EDU person extension" +msgstr "Ajouter l'extension Personne EDU" + +#: ../lib/modules/freeRadius.inc:312 +msgid "Add FreeRadius extension" +msgstr "Ajouter l'extension FreeRadius" + +#: ../lib/modules/ipHost.inc:165 +msgid "Add IP address extension" +msgstr "Ajouter l'extension adresse IP" + +#: ../lib/modules/mitKerberos.inc:478 ../lib/modules/heimdalKerberos.inc:402 +msgid "Add Kerberos extension" +msgstr "Ajouter l'extension Kerberos" + +#: ../lib/modules/kolabGroup.inc:121 ../lib/modules/kolabGroup.inc:133 +#: ../lib/modules/kolabGroup.inc:220 ../lib/modules/kolabUser.inc:394 +msgid "Add Kolab extension" +msgstr "Ajouter l'extension Kolab" + +#: ../lib/modules/puppetClient.inc:224 +msgid "Add Puppet extension" +msgstr "Ajouter l'extension Puppet" + +#: ../lib/modules/pykotaGroup.inc:245 ../lib/modules/pykotaUser.inc:425 +msgid "Add PyKota extension" +msgstr "Ajouter l'extension PyKota" + +#: ../lib/modules/sambaSamAccount.inc:1311 +#: ../lib/modules/sambaGroupMapping.inc:428 +msgid "Add Samba 3 extension" +msgstr "Ajouter l'extension Samba 3" + +#: ../lib/modules/shadowAccount.inc:380 +msgid "Add Shadow account extension" +msgstr "Ajouter l'extension Shadow account" + +#: ../lib/modules/posixGroup.inc:253 ../lib/modules/posixAccount.inc:1518 +msgid "Add Unix extension" +msgstr "Ajouter l'extension Unix" + +#: ../lib/modules/zarafaContact.inc:134 ../lib/modules/zarafaContact.inc:202 +msgid "Add Zarafa contact extension" +msgstr "Ajouter l'extension du contact Zarafa" + +#: ../lib/modules/zarafaContact.inc:110 ../lib/modules/zarafaContact.inc:111 +#: ../lib/modules/zarafaGroup.inc:312 ../lib/modules/zarafaUser.inc:167 +#: ../lib/modules/zarafaUser.inc:168 ../lib/modules/zarafaUser.inc:179 +#: ../lib/modules/zarafaUser.inc:438 ../lib/modules/zarafaServer.inc:237 +msgid "Add Zarafa extension" +msgstr "Ajouter l'extension Zarafa" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add all" +msgstr "Tout ajouter" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2073 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2091 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "Add an additional value to attribute" +msgstr "Ajouter une valeur à l'attribut" + +#: ../lib/modules/asteriskExtension.inc:350 +msgid "Add another rule" +msgstr "Ajouter un autre règle" + +#: ../lib/modules/inetOrgPerson.inc:1744 +#: ../lib/modules/organizationalRole.inc:322 +#: ../lib/modules/groupOfNames.inc:379 ../lib/modules/groupOfNames.inc:534 +msgid "Add entries" +msgstr "Ajouter des entrées" + +#: ../lib/modules/zarafaContact.inc:429 ../lib/modules/zarafaGroup.inc:489 +#: ../lib/modules/device.inc:296 ../lib/modules/zarafaUser.inc:913 +#: ../lib/modules/sambaGroupMapping.inc:504 ../lib/modules/qmailGroup.inc:858 +#: ../lib/modules/organizationalRole.inc:333 +#: ../lib/modules/windowsGroup.inc:599 ../lib/modules/groupOfNames.inc:390 +#: ../lib/modules/groupOfNames.inc:545 +msgid "Add entries of this type:" +msgstr "Ajouter des entrées de type :" + +#: ../lib/modules/fixed_ip.inc:544 +msgid "Add existing host" +msgstr "Ajouter un hôte existant" + +#: ../lib/modules/customFields.inc:439 +msgid "Add extension" +msgstr "Ajouter l'extension" + +#: ../lib/modules/ddns.inc:369 +msgid "Add fix IP addresses to DNS" +msgstr "Ajouter une adresse IP fixe dans le DNS" + +#: ../lib/modules/hostObject.inc:152 +msgid "Add host extension" +msgstr "Ajouter l'extension Hôte" + +#: ../templates/selfService/adminMain.php:631 ../help/help.inc:232 +msgid "Add input field" +msgstr "Ajouter un champ de saisie" + +#: ../templates/multiEdit.php:148 +msgid "Add more fields" +msgstr "Ajouter des champs supplémentaires" + +#: ../lib/modules/customFields.inc:2973 +msgid "Add more mapping fields" +msgstr "Ajouter des champs de correspondance supplémentaires" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:37 +#, php-format +msgid "Add new %s value to %s" +msgstr "Ajouter la nouvelle valeur %s à %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1208 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:29 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:48 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:166 +msgid "Add new attribute" +msgstr "Ajouter un nouvel attribut" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1207 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +msgid "Add new attribute to this object" +msgstr "Ajouter un nouvel attribut à cet objet" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:89 +msgid "Add new binary attribute" +msgstr "Ajouter un nouvel attribut binaire" + +#: ../lib/modules/customFields.inc:1082 ../lib/modules/customFields.inc:1083 +msgid "Add new field" +msgstr "Ajouter un nouveau champ" + +#: ../templates/selfService/adminMain.php:623 ../help/help.inc:230 +msgid "Add new group" +msgstr "Ajouter un nouveau groupe" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:117 +msgid "Add new object class" +msgstr "Ajouter un nouvel objectClass" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:60 +#, php-format +msgid "Add new object class to %s" +msgstr "Ajouter un nouvel objectClass à %s" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:94 +msgid "Add object class and attributes" +msgstr "Ajouter des ojectClass et des attributs" + +#: ../lib/modules/passwordSelfReset.inc:245 +msgid "Add password self reset extension" +msgstr "Ajouter l'extension Self-service de mot de passe" + +#: ../lib/modules/inetOrgPerson.inc:748 ../lib/modules/inetOrgPerson.inc:1585 +#: ../lib/modules/inetOrgPerson.inc:1668 ../lib/modules/inetOrgPerson.inc:2656 +msgid "Add photo" +msgstr "Ajouter une photo" + +#: ../templates/config/profmanage.php:239 +#: ../templates/config/profmanage.php:253 +#: ../templates/selfService/profManage.php:202 +#: ../templates/selfService/profManage.php:210 ../help/help.inc:130 +msgid "Add profile" +msgstr "Ajouter un profil" + +#: ../lib/modules/qmailUser.inc:712 ../lib/modules/qmailGroup.inc:633 +msgid "Add qmail extension" +msgstr "Ajouter l'extension qmail" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add selected" +msgstr "Ajouter la sélection" + +#: ../lib/modules/nisMailAliasUser.inc:374 +msgid "Add to existing alias" +msgstr "Ajouter à un alias existant" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:149 +msgid "Add value" +msgstr "Ajouter la valeur" + +#: ../templates/3rdParty/pla/htdocs/import.php:28 +msgid "Adding" +msgstr "Ajout en cours" + +#: ../lib/modules/range.inc:115 +msgid "Adding the range failed because errors occured." +msgstr "Des erreurs sont apparues lors de l'ajout de la plage." + +#: ../templates/selfService/adminMain.php:527 ../help/help.inc:236 +msgid "Additional CSS links" +msgstr "Liens CSS supplémentaires" + +#: ../templates/config/conftypes.php:274 +#: ../templates/selfService/adminMain.php:472 ../help/help.inc:170 +#: ../help/help.inc:240 +msgid "Additional LDAP filter" +msgstr "Filtre LDAP supplémentaire" + +#: ../lib/modules/zarafaDynamicGroup.inc:72 +#: ../lib/modules/zarafaDynamicGroup.inc:76 ../lib/modules/zarafaGroup.inc:74 +#: ../lib/modules/zarafaGroup.inc:78 +msgid "Additional email addresses for this entry." +msgstr "Adresse mail supplémentaire pour cette entrée." + +#: ../lib/modules/posixAccount.inc:304 ../lib/modules/posixAccount.inc:415 +#: ../lib/modules/posixAccount.inc:469 ../lib/modules/posixAccount.inc:534 +#: ../lib/modules/posixAccount.inc:1453 ../lib/modules/posixAccount.inc:1737 +#: ../lib/modules/posixAccount.inc:1848 +msgid "Additional groups" +msgstr "Groupes supplémentaires" + +#: ../lib/modules/windowsGroup.inc:123 +msgid "Additional notes to describe this entry." +msgstr "Informations supplémentaires pour décrire cette entrée." + +#: ../templates/config/mainmanage.php:440 +msgid "Additional options" +msgstr "Options supplémentaires" + +#: ../templates/massDoUpload.php:160 +msgid "Additional tasks for module:" +msgstr "Tâches additionnelles pour le module :" + +#: ../lib/modules/windowsUser.inc:707 ../lib/modules/inetOrgPerson.inc:1219 +msgid "Address" +msgstr "Adresse" + +#: ../lib/types/zarafaAddressListType.inc:144 +#, php-format +msgid "Address list count: %s" +msgstr "Nombre de listes d'adresses : %s" + +#: ../lib/modules/imapAccess.inc:78 +msgid "Address of IMAP server (e.g. mail.example.org)." +msgstr "Adresse du serveur IMAP ( ex : mail.exemple.org )." + +#: ../help/help.inc:231 +msgid "" +"Adds a new group element to the list of self service options. Use this to " +"structure the input fields." +msgstr "" +"Ajoute un nouvel élément d'un groupe à la liste des options du self-service. " +"Utilisez ceci pour structurer les champs de saisie." + +#: ../help/help.inc:233 +msgid "Adds a new self service option to the selected group element." +msgstr "" +"Ajouter une nouvelle option de self-service à l'élément du groupe " +"sélectionné." + +#: ../lib/modules/range.inc:102 +msgid "Adds input fields for a new IP range." +msgstr "Ajoute de champs de saisie pour une nouvelle plage d'adresses IP." + +#: ../lib/modules/pykotaUser.inc:153 +msgid "Adds the amount to the user's balance. You can also specify a comment." +msgstr "" +"Ajoute le montant au solde de l'utilisateur. Vous pouvez également ajouter " +"un commentaire." + +#: ../lib/modules/kolabUser.inc:171 +msgid "Adds the object class \"mailrecipient\" to all user accounts." +msgstr "" +"Ajoute l'objectClass \"mailrecipient\" à tous les comptes utilisateurs." + +#: ../lib/modules/kolabGroup.inc:122 +msgid "Adds this Kolab extension." +msgstr "Ajouter cette extension Kolab." + +#: ../lib/modules/zarafaUser.inc:108 ../lib/modules/zarafaUser.inc:282 +#: ../lib/modules/zarafaUser.inc:340 ../lib/modules/zarafaUser.inc:603 +#: ../lib/modules/zarafaUser.inc:1262 +msgid "Admin" +msgstr "Admin" + +#: ../lib/modules/selfRegistration.inc:61 +#: ../lib/modules/selfRegistration.inc:199 +#: ../lib/modules/passwordSelfReset.inc:104 +#: ../lib/modules/passwordSelfReset.inc:518 +msgid "Admin DN" +msgstr "Admin DN" + +#: ../lib/modules/bindDLZ.inc:224 ../lib/modules/bindDLZ.inc:344 +#: ../lib/modules/bindDLZ.inc:421 ../lib/modules/bindDLZ.inc:522 +#: ../lib/modules/bindDLZ.inc:1044 ../lib/modules/bindDLZ.inc:1546 +msgid "Admin email" +msgstr "Mail de l'administrateur" + +#: ../lib/modules/selfRegistration.inc:65 +#: ../lib/modules/selfRegistration.inc:204 ../lib/modules/imapAccess.inc:136 +#: ../lib/modules/passwordSelfReset.inc:108 +#: ../lib/modules/passwordSelfReset.inc:522 +msgid "Admin password" +msgstr "Mot de passe admin" + +#: ../lib/modules/inetOrgPerson.inc:371 ../lib/modules/inetOrgPerson.inc:485 +#: ../lib/modules/inetOrgPerson.inc:493 +msgid "Administration" +msgstr "Administration" + +#: ../lib/modules/posixGroup.inc:473 ../lib/modules/pykotaGroup.inc:168 +#: ../lib/modules/nisnetgroup.inc:122 +#: ../lib/modules/organizationalRole.inc:125 +#: ../lib/modules/groupOfNames.inc:137 +msgid "Administrators group" +msgstr "Groupe administrateur" + +#: ../templates/config/confmain.php:276 ../templates/config/conftypes.php:320 +#: ../lib/modules/posixAccount.inc:271 ../lib/modules/inetOrgPerson.inc:3616 +msgid "Advanced options" +msgstr "Options avancées" + +#: ../lib/modules/eduPerson.inc:105 ../lib/modules/eduPerson.inc:109 +#: ../lib/modules/eduPerson.inc:181 ../lib/modules/eduPerson.inc:225 +#: ../lib/modules/eduPerson.inc:328 ../lib/modules/eduPerson.inc:585 +msgid "Affiliations" +msgstr "Affiliations" + +#: ../lib/modules/sambaSamAccount.inc:555 +msgid "Alaska" +msgstr "Alaska" + +#: ../lib/modules/sambaDomain.inc:218 ../lib/modules/sambaDomain.inc:219 +msgid "Algorithmic RID base is not a number!" +msgstr "Le RID de base n'est pas un nombre !" + +#: ../lib/modules/customFields.inc:76 ../lib/modules/customFields.inc:528 +#: ../lib/modules/customFields.inc:569 ../lib/modules/aliasEntry.inc:45 +msgid "Alias" +msgstr "Alias" + +#: ../lib/types/mailAlias.inc:141 ../lib/types/alias.inc:141 +#, php-format +msgid "Alias count: %s" +msgstr "Nombre d'Alias : %s" + +#: ../lib/types/alias.inc:62 +msgid "Alias entries" +msgstr "Entrées d'alias" + +#: ../lib/modules/nisMailAlias.inc:125 ../lib/modules/nisMailAlias.inc:126 +msgid "Alias is empty or invalid!" +msgstr "Alias est vide ou incorrecte !" + +#: ../lib/types/mailAlias.inc:91 ../lib/modules/nisMailAliasUser.inc:96 +#: ../lib/modules/nisMailAliasUser.inc:364 ../lib/modules/bindDLZ.inc:128 +#: ../lib/modules/bindDLZ.inc:261 ../lib/modules/bindDLZ.inc:412 +#: ../lib/modules/bindDLZ.inc:490 ../lib/modules/bindDLZ.inc:829 +#: ../lib/modules/bindDLZ.inc:1531 ../lib/modules/nisMailAlias.inc:81 +#: ../lib/modules/nisMailAlias.inc:101 ../lib/modules/nisMailAlias.inc:115 +#: ../lib/modules/nisMailAlias.inc:163 ../lib/modules/nisMailAlias.inc:475 +msgid "Alias name" +msgstr "Nom de l'Alias" + +#: ../lib/modules/bindDLZ.inc:827 +msgid "Alias name (\"CNAME\" record)" +msgstr "Alias de nom (enregistrement \"CNAME\")" + +#: ../lib/modules/nisMailAliasUser.inc:120 +msgid "Alias name already exists." +msgstr "Le nom d'alias est déjà utlisé." + +#: ../lib/modules/nisMailAliasUser.inc:119 +msgid "Alias name is invalid." +msgstr "Le nom d'alias n'est pas valable." + +#: ../lib/modules/nisMailAliasUser.inc:100 +#: ../lib/modules/nisMailAliasUser.inc:110 +#: ../lib/modules/nisMailAliasUser.inc:382 +#: ../lib/modules/nisMailAliasUser.inc:541 +msgid "Alias names" +msgstr "Nom d'Alias" + +#: ../lib/modules/nisMailAliasUser.inc:84 +#: ../lib/modules/nisMailAliasUser.inc:88 +msgid "Alias names with email address" +msgstr "Noms d'alias contenant l'adresse mail" + +#: ../lib/modules/nisMailAliasUser.inc:76 +#: ../lib/modules/nisMailAliasUser.inc:80 +msgid "Alias names with user name" +msgstr "Noms d'alias contenant le nom d'utilisateur" + +#: ../lib/modules/bindDLZ.inc:413 ../lib/modules/bindDLZ.inc:1532 +msgid "Alias timeout" +msgstr "Timeout d'Alias" + +#: ../lib/types/alias.inc:92 ../lib/modules/customScripts.inc:52 +#: ../lib/modules/uidObject.inc:59 ../lib/modules/aliasEntry.inc:61 +#: ../lib/modules/aliasEntry.inc:69 ../lib/modules/aliasEntry.inc:77 +#: ../lib/modules/aliasEntry.inc:98 ../lib/modules/aliasEntry.inc:107 +#: ../lib/modules/aliasEntry.inc:228 +msgid "Aliased entry" +msgstr "Entrée aliasée" + +#: ../templates/schema/schema.php:226 ../lib/types/alias.inc:53 +msgid "Aliases" +msgstr "Alias" + +#: ../lib/modules/nisMailAliasUser.inc:169 +#: ../lib/modules/nisMailAliasUser.inc:569 +msgid "Aliases for email" +msgstr "Alias pour le mail" + +#: ../lib/modules/nisMailAliasUser.inc:139 +#: ../lib/modules/nisMailAliasUser.inc:567 +msgid "Aliases for user name" +msgstr "Alias pour le nom d'utilisateur" + +#: ../lib/lists.inc:702 +#, php-format +msgid "All accounts (%s)" +msgstr "Tous les Comptes (%s)" + +#: ../templates/selfService/selfServiceMain.php:368 +#: ../templates/initsuff.php:158 +msgid "All changes were successful." +msgstr "Modifications effectuées avec succès." + +#: ../lib/lists.inc:701 +#, php-format +msgid "All selected accounts (%s)" +msgstr "Tous les comptes sélectionnés (%s)" + +#: ../lib/modules/dhcp_settings.inc:103 +msgid "Allow" +msgstr "Autorise" + +#: ../templates/config/confmain.php:362 ../help/help.inc:259 +msgid "Allow alternate address" +msgstr "Adresse alternative autorisée" + +#: ../lib/modules/sambaDomain.inc:117 ../lib/modules/sambaDomain.inc:194 +#: ../lib/modules/sambaDomain.inc:308 ../lib/modules/sambaDomain.inc:626 +msgid "Allow machine password changes" +msgstr "Autorise les modifications de mot de passe de compte machine" + +#: ../lib/modules/customFields.inc:144 ../lib/modules/customFields.inc:148 +#: ../lib/modules/customFields.inc:3140 +msgid "Allow multiple values" +msgstr "Autorise les valeurs mutiples" + +#: ../lib/types/ppolicyType.inc:90 ../lib/modules/ppolicy.inc:132 +#: ../lib/modules/ppolicy.inc:155 ../lib/modules/ppolicy.inc:294 +#: ../lib/modules/ppolicy.inc:505 +msgid "Allow password change" +msgstr "Autorise les modifications de mot de passe" + +#: ../lib/modules/sambaSamAccount.inc:229 +#: ../lib/modules/sambaSamAccount.inc:351 +#: ../lib/modules/sambaSamAccount.inc:1499 +#: ../lib/modules/sambaSamAccount.inc:1915 +msgid "Allow terminal server login" +msgstr "Autorise les connexions Terminal Serveur" + +#: ../templates/selfService/adminMain.php:589 +msgid "Allow user input for this field." +msgstr "Autoriser la saisie utilisateur pour ce champ." + +#: ../lib/modules/asteriskAccount.inc:203 +#: ../lib/modules/asteriskAccount.inc:289 +#: ../lib/modules/asteriskAccount.inc:479 +#: ../lib/modules/asteriskAccount.inc:713 +#: ../lib/modules/asteriskAccount.inc:1005 +#: ../lib/modules/asteriskAccount.inc:1279 +msgid "Allowed codec" +msgstr "Codec autorisés" + +#: ../templates/config/mainmanage.php:299 ../lib/types/user.inc:95 +#: ../help/help.inc:152 +msgid "Allowed hosts" +msgstr "Machines autorisés" + +#: ../templates/config/mainmanage.php:301 +msgid "Allowed hosts (self service)" +msgstr "Hôtes autorisés (self-service)" + +#: ../lib/modules/kolabGroup.inc:95 ../lib/modules/kolabGroup.inc:99 +#: ../lib/modules/kolabGroup.inc:141 ../lib/modules/kolabGroup.inc:164 +#: ../lib/modules/kolabGroup.inc:181 ../lib/modules/kolabGroup.inc:205 +#: ../lib/modules/kolabGroup.inc:424 ../lib/modules/kolabUser.inc:152 +#: ../lib/modules/kolabUser.inc:156 ../lib/modules/kolabUser.inc:217 +#: ../lib/modules/kolabUser.inc:235 ../lib/modules/kolabUser.inc:253 +#: ../lib/modules/kolabUser.inc:381 ../lib/modules/kolabUser.inc:766 +#: ../lib/modules/kolabSharedFolder.inc:120 +#: ../lib/modules/kolabSharedFolder.inc:124 +#: ../lib/modules/kolabSharedFolder.inc:208 +#: ../lib/modules/kolabSharedFolder.inc:234 +#: ../lib/modules/kolabSharedFolder.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:307 +#: ../lib/modules/kolabSharedFolder.inc:561 +msgid "Allowed recipients" +msgstr "Destinataires autorisés" + +#: ../lib/modules/kolabGroup.inc:104 ../lib/modules/kolabGroup.inc:108 +#: ../lib/modules/kolabGroup.inc:147 ../lib/modules/kolabGroup.inc:165 +#: ../lib/modules/kolabGroup.inc:183 ../lib/modules/kolabGroup.inc:207 +#: ../lib/modules/kolabGroup.inc:425 ../lib/modules/kolabUser.inc:161 +#: ../lib/modules/kolabUser.inc:165 ../lib/modules/kolabUser.inc:223 +#: ../lib/modules/kolabUser.inc:236 ../lib/modules/kolabUser.inc:255 +#: ../lib/modules/kolabUser.inc:383 ../lib/modules/kolabUser.inc:767 +#: ../lib/modules/kolabSharedFolder.inc:129 +#: ../lib/modules/kolabSharedFolder.inc:133 +#: ../lib/modules/kolabSharedFolder.inc:214 +#: ../lib/modules/kolabSharedFolder.inc:235 +#: ../lib/modules/kolabSharedFolder.inc:252 +#: ../lib/modules/kolabSharedFolder.inc:309 +#: ../lib/modules/kolabSharedFolder.inc:562 +msgid "Allowed senders" +msgstr "Expéditeurs autorisés" + +#: ../lib/modules/sambaSamAccount.inc:1337 +#: ../lib/modules/sambaSamAccount.inc:1338 +msgid "Allowed workstations" +msgstr "Stations de travail autorisées" + +#: ../lib/modules/customFields.inc:149 +msgid "Allows to enter multiple values for this attribute." +msgstr "Autorise les saisies multiples pour cet attribut." + +#: ../lib/modules/customFields.inc:145 +msgid "Allows to select multiple values from the list." +msgstr "Autorise la sélection de valeurs multiples dans la liste." + +#: ../lib/modules/sambaSamAccount.inc:570 +msgid "Almaty, Dhaka, Colombo" +msgstr "Almaty, Dhaka, Colombo" + +#: ../templates/lists/changePassword.php:334 +#: ../templates/lists/changePassword.php:370 ../lib/modules/qmailUser.inc:203 +#: ../lib/modules/qmailUser.inc:271 ../lib/modules/qmailUser.inc:400 +#: ../lib/modules/qmailUser.inc:450 ../lib/modules/qmailUser.inc:520 +#: ../lib/modules/qmailUser.inc:1140 ../lib/modules/qmailGroup.inc:131 +#: ../lib/modules/qmailGroup.inc:135 ../lib/modules/qmailGroup.inc:247 +#: ../lib/modules/qmailGroup.inc:370 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:484 ../lib/modules/qmailGroup.inc:1057 +msgid "Alternate address" +msgstr "Adresse alternative" + +#: ../lib/modules.inc:1071 ../lib/modules.inc:1170 ../help/help.inc:214 +msgid "Alternate recipient" +msgstr "Destinataires alternatifs" + +#: ../lib/modules/kolabUser.inc:50 +msgid "Always accept" +msgstr "Toujours accepter" + +#: ../lib/modules/kolabUser.inc:51 +msgid "Always reject" +msgstr "Toujours refuser" + +#: ../lib/modules/pykotaUser.inc:372 ../lib/modules/pykotaUser.inc:597 +#: ../lib/modules/pykotaUser.inc:906 ../lib/modules/pykotaUser.inc:965 +msgid "Amount" +msgstr "Quantité" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1018 +#, php-format +msgid "An attribute (%s) was modified and is highlighted below." +msgstr "L'attribut (%s) qui a été modifié est en surbrillance ci-dessous." + +#: ../lib/modules/sudoRole.inc:268 +msgid "An sudo role with this name already exists. Please choose another name." +msgstr "" +"Un rôle sudo ayant le même nom existe déjà. Veuillez choisir un autre nom." + +#: ../lib/modules/passwordSelfReset.inc:84 +#: ../lib/modules/passwordSelfReset.inc:183 +#: ../lib/modules/passwordSelfReset.inc:198 +#: ../lib/modules/passwordSelfReset.inc:219 +#: ../lib/modules/passwordSelfReset.inc:265 +#: ../lib/modules/passwordSelfReset.inc:384 +#: ../lib/modules/passwordSelfReset.inc:663 +#: ../lib/modules/passwordSelfReset.inc:1046 +msgid "Answer" +msgstr "Réponse" + +#: ../lib/modules/kolabUser.inc:331 ../lib/modules/kolabUser.inc:756 +#: ../lib/modules/kolabUser.inc:858 ../lib/modules/kolabUser.inc:861 +msgid "Anyone" +msgstr "Tous" + +#: ../lib/modules/customFields.inc:506 +msgid "Appearance" +msgstr "Apparence" + +#: ../lib/modules/asteriskExtension.inc:110 +#: ../lib/modules/asteriskExtension.inc:165 +#: ../lib/modules/asteriskExtension.inc:366 +#: ../lib/modules/asteriskExtension.inc:823 +msgid "Application" +msgstr "Application" + +#: ../lib/modules/asteriskExtension.inc:94 +#: ../lib/modules/asteriskExtension.inc:172 +#: ../lib/modules/asteriskExtension.inc:374 +#: ../lib/modules/asteriskExtension.inc:824 +msgid "Application data" +msgstr "Données d'application" + +#: ../templates/multiEdit.php:166 +msgid "Apply changes" +msgstr "Appliquer les modifications" + +#: ../lib/modules/zarafaUser.inc:159 ../lib/modules/zarafaUser.inc:163 +#: ../lib/modules/zarafaUser.inc:315 ../lib/modules/zarafaUser.inc:379 +#: ../lib/modules/zarafaUser.inc:554 ../lib/modules/zarafaUser.inc:957 +#: ../lib/modules/zarafaUser.inc:1236 ../lib/modules/zarafaUser.inc:1317 +#: ../lib/modules/zarafaUser.inc:1803 +msgid "Archive servers" +msgstr "Serveurs d'archivage" + +#: ../lib/modules/zarafaUser.inc:552 +msgid "Archiving" +msgstr "Archivage" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:53 +msgid "Are you sure you want to permanently delete these objects?" +msgstr "Voulez-vous supprimer définitivement ces objets ?" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:107 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:51 +msgid "Are you sure you want to permanently delete this object?" +msgstr "Voulez-vous supprimer définitivement cet objets ?" + +#: ../lib/modules/imapAccess.inc:129 +msgid "Ask" +msgstr "Demander" + +#: ../lib/modules/eduPerson.inc:142 ../lib/modules/eduPerson.inc:146 +#: ../lib/modules/eduPerson.inc:218 ../lib/modules/eduPerson.inc:234 +#: ../lib/modules/eduPerson.inc:352 ../lib/modules/eduPerson.inc:590 +msgid "Assurance profiles" +msgstr "Profils garantis" + +#: ../lib/modules/eduPerson.inc:143 ../lib/modules/eduPerson.inc:147 +msgid "" +"Assurance profiles are the set of standards that are met by an identity " +"assertion." +msgstr "" +"Les profils garantis sont un ensemble de règles auxquelles se conforment une " +"définition d'identité." + +#: ../lib/modules/asteriskAccount.inc:73 +msgid "Asterisk" +msgstr "Asterisk" + +#: ../lib/modules/asteriskAccount.inc:132 +msgid "Asterisk AMA (Automated Message Accounting) flags." +msgstr "Drapeaux Asterisk AMA ( Automated Message Accounting )." + +#: ../lib/modules/asteriskExtension.inc:79 +msgid "Asterisk extension" +msgstr "Extension Asterisk" + +#: ../lib/types/asteriskExt.inc:56 +msgid "Asterisk extensions" +msgstr "Extensions Asterisk" + +#: ../lib/types/asteriskExt.inc:65 +msgid "Asterisk extensions entries" +msgstr "Entrées des extensions Asterisk" + +#: ../lib/modules/asteriskAccount.inc:123 +#: ../lib/modules/asteriskAccount.inc:249 +#: ../lib/modules/asteriskAccount.inc:1233 +msgid "Asterisk realm" +msgstr "Royaume Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:71 +msgid "Asterisk voicemail" +msgstr "Boîte vocale Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:120 +msgid "Asterisk voicemail context." +msgstr "Contexte de boîte vocale Asterisk." + +#: ../lib/modules/sambaSamAccount.inc:560 +msgid "Atlantic time (Canada), Caracas" +msgstr "Fuseau Atlantique (Canada), Caracas" + +#: ../templates/3rdParty/pla/lib/import_functions.php:455 +msgid "Attempting to delete a non existent attribute" +msgstr "Tentative de suppression d'un attribut inexistant" + +#: ../templates/3rdParty/pla/lib/import_functions.php:466 +msgid "Attempting to replace a non existant attribute" +msgstr "Tentative de remplacement d'un attribut inexistant" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Attribute" +msgstr "Attribut" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:137 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:72 +msgid "Attribute doesn't exist" +msgstr "L'attribut n'existe pas" + +#: ../templates/multiEdit.php:119 ../lib/modules/customFields.inc:92 +#: ../lib/modules/customFields.inc:1060 ../lib/modules/customFields.inc:1710 +msgid "Attribute name" +msgstr "Nom de l'attribut" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:117 +msgid "Attribute not available" +msgstr "Attribut non disponible" + +#: ../templates/3rdParty/pla/lib/import_functions.php:535 +msgid "Attribute not valid" +msgstr "Attribut non-valide" + +#: ../templates/schema/schema.php:69 ../templates/schema/schema.php:70 +msgid "Attribute types" +msgstr "Types d'attributs" + +#: ../lib/modules/selfRegistration.inc:78 +#: ../lib/modules/selfRegistration.inc:220 +msgid "Attributes" +msgstr "Attributs" + +#: ../lib/modules/sambaSamAccount.inc:576 +msgid "Auckland, Fiji, Kamchatka" +msgstr "Auckland, Fiji, Kamchatka" + +#: ../lib/modules/asteriskAccount.inc:124 +msgid "" +"Authentication realm for Asterisk server (default: asterisk). This value set " +"in sip.conf (option: \"realm\")." +msgstr "" +"Royaume d'authentification pour le serveur Asterisk (par défaut : asterisk). " +"Cette valeur est dans sip.conf (option : \"royaume\")." + +#: ../lib/modules/asteriskAccount.inc:232 +msgid "Authentication user for outbound proxies." +msgstr "Nom d'authentification sur le serveur proxy." + +#: ../lib/modules/bindDLZ.inc:1013 +msgid "Authoritative information (\"SOA\" record)" +msgstr "Information faisant autorité (anregistrement SOA)" + +#: ../lib/modules/authorizedServiceObject.inc:71 +#: ../lib/modules/authorizedServiceObject.inc:81 +#: ../lib/modules/authorizedServiceObject.inc:85 +#: ../lib/modules/authorizedServiceObject.inc:105 +#: ../lib/modules/authorizedServiceObject.inc:112 +#: ../lib/modules/authorizedServiceObject.inc:116 +#: ../lib/modules/authorizedServiceObject.inc:168 +#: ../lib/modules/authorizedServiceObject.inc:243 +msgid "Authorized Services" +msgstr "Services autorisés" + +#: ../lib/modules/authorizedServiceObject.inc:129 +msgid "Authorized services are invalid." +msgstr "Services autorisés non-valide." + +#: ../lib/modules/customFields.inc:152 ../lib/modules/customFields.inc:1917 +msgid "Auto-completion" +msgstr "Auto-completion" + +#: ../lib/modules/bindDLZ.inc:232 ../lib/modules/bindDLZ.inc:2526 +msgid "Automatic PTR changes" +msgstr "Changement automatique des PTR" + +#: ../lib/modules/customScripts.inc:167 +msgid "Automatical scripts" +msgstr "Scripts automatiques" + +#: ../lib/modules/kolabGroup.inc:117 ../lib/modules/kolabGroup.inc:127 +#: ../lib/modules/puppetClient.inc:108 ../lib/modules/puppetClient.inc:160 +#: ../lib/modules/qmailUser.inc:131 ../lib/modules/qmailUser.inc:263 +#: ../lib/modules/zarafaContact.inc:87 ../lib/modules/zarafaContact.inc:583 +#: ../lib/modules/posixGroup.inc:396 ../lib/modules/posixGroup.inc:537 +#: ../lib/modules/eduPerson.inc:150 ../lib/modules/eduPerson.inc:155 +#: ../lib/modules/pykotaGroup.inc:129 ../lib/modules/pykotaGroup.inc:140 +#: ../lib/modules/sambaSamAccount.inc:165 +#: ../lib/modules/sambaSamAccount.inc:402 ../lib/modules/posixAccount.inc:432 +#: ../lib/modules/posixAccount.inc:1784 ../lib/modules/zarafaUser.inc:136 +#: ../lib/modules/zarafaUser.inc:1303 ../lib/modules/pykotaUser.inc:160 +#: ../lib/modules/pykotaUser.inc:173 ../lib/modules/shadowAccount.inc:106 +#: ../lib/modules/shadowAccount.inc:197 ../lib/modules/customFields.inc:856 +#: ../lib/modules/qmailGroup.inc:101 ../lib/modules/qmailGroup.inc:232 +#: ../lib/modules/authorizedServiceObject.inc:89 +#: ../lib/modules/authorizedServiceObject.inc:117 +#: ../lib/modules/passwordSelfReset.inc:152 +#: ../lib/modules/passwordSelfReset.inc:167 ../lib/modules/hostObject.inc:83 +#: ../lib/modules/hostObject.inc:101 +msgid "Automatically add this extension" +msgstr "Ajouter automatiquement cette extension" + +#: ../lib/modules/bindDLZ.inc:233 +msgid "" +"Automatically adds and removes PTR entries when A/AAAA records are created " +"or deleted." +msgstr "" +"Ajoute ou supprime automatiquement les entrées PTR correspondantes lorsqu'un " +"enregistrement A/AAAA est créé ou supprimé." + +#: ../lib/types/automountType.inc:48 ../lib/types/automountType.inc:57 +msgid "Automount entries" +msgstr "Entrées automount" + +#: ../lib/types/automountType.inc:87 ../lib/modules/automount.inc:50 +#: ../lib/modules/automount.inc:68 ../lib/modules/automount.inc:88 +#: ../lib/modules/automount.inc:104 ../lib/modules/automount.inc:114 +#: ../lib/modules/automount.inc:131 ../lib/modules/automount.inc:182 +msgid "Automount entry" +msgstr "Entrée automount" + +#: ../lib/modules/automount.inc:114 ../lib/modules/automount.inc:115 +msgid "" +"Automount entry contains invalid characters. Only ASCII characters are " +"allowed." +msgstr "" +"L'entrée automount contient de caratères non-valides. Seuls les caractères " +"ASCII sont autorisés." + +#: ../lib/types/automountType.inc:215 +#, php-format +msgid "Automount entry count: %s" +msgstr "Nombre d'entrées automount : %s" + +#: ../lib/modules/qmailUser.inc:51 +msgid "Autoreply" +msgstr "Réponse automatique" + +#: ../lib/modules/qmailUser.inc:116 ../lib/modules/qmailUser.inc:239 +#: ../lib/modules/qmailUser.inc:350 ../lib/modules/qmailUser.inc:424 +#: ../lib/modules/qmailUser.inc:639 ../lib/modules/qmailUser.inc:1147 +msgid "Autoreply text" +msgstr "Texte de réponse automatique" + +#: ../templates/config/conftypes.php:215 ../lib/modules/customScripts.inc:61 +msgid "Available account types" +msgstr "Types de compte disponibles" + +#: ../lib/modules/customScripts.inc:62 ../lib/modules/customScripts.inc:75 +msgid "Available actions" +msgstr "Actions possibles" + +#: ../lib/modules/posixAccount.inc:1569 ../lib/modules/posixAccount.inc:1602 +#: ../lib/modules/windowsUser.inc:1032 ../lib/modules/nisnetgroup.inc:386 +#: ../lib/modules/groupOfNamesUser.inc:133 +msgid "Available groups" +msgstr "Groupes disponibles" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:93 +msgid "Available members" +msgstr "Membres disponibles" + +#: ../templates/config/confmodules.php:314 +msgid "Available modules" +msgstr "Modules disponibles" + +#: ../lib/modules/organizationalRoleUser.inc:118 +msgid "Available roles" +msgstr "Rôles disponibles" + +#: ../lib/modules/posixGroup.inc:297 ../lib/modules/asteriskExtension.inc:463 +msgid "Available users" +msgstr "Utilisateurs disponibles" + +#: ../lib/modules/sambaSamAccount.inc:1340 +msgid "Available workstations" +msgstr "Stations de travail disponibles" + +#: ../lib/modules/sambaSamAccount.inc:563 +msgid "Azores, Cape Verde Islands" +msgstr "les Açores, les Iles du Cap-Vert" + +#: ../lib/modules/dhcp_settings.inc:96 +msgid "B-Node (0x01)" +msgstr "Noeud-B (0x01)" + +#: ../templates/massBuildAccounts.php:276 ../lib/modules/zarafaContact.inc:436 +#: ../lib/modules/posixGroup.inc:342 ../lib/modules/zarafaGroup.inc:496 +#: ../lib/modules/device.inc:303 ../lib/modules/sambaSamAccount.inc:1357 +#: ../lib/modules/sambaSamAccount.inc:1641 +#: ../lib/modules/posixAccount.inc:1642 ../lib/modules/posixAccount.inc:1716 +#: ../lib/modules/zarafaUser.inc:920 ../lib/modules/zarafaUser.inc:969 +#: ../lib/modules/windowsUser.inc:1076 +#: ../lib/modules/sambaGroupMapping.inc:511 ../lib/modules/pykotaUser.inc:618 +#: ../lib/modules/pykotaUser.inc:675 ../lib/modules/nisnetgroup.inc:400 +#: ../lib/modules/inetOrgPerson.inc:1669 ../lib/modules/inetOrgPerson.inc:1745 +#: ../lib/modules/inetOrgPerson.inc:1835 ../lib/modules/qmailGroup.inc:865 +#: ../lib/modules/organizationalRole.inc:389 +#: ../lib/modules/windowsGroup.inc:606 ../lib/modules/groupOfNames.inc:447 +#: ../lib/modules/groupOfNames.inc:601 +msgid "Back" +msgstr "Retour" + +#: ../lib/types/dhcp.inc:47 +msgid "Back to DHCP list" +msgstr "Retour à la liste des DHCP" + +#: ../lib/types/bind.inc:30 +msgid "Back to DNS list" +msgstr "Retour à la liste des DNS" + +#: ../lib/types/nisObjectType.inc:30 +msgid "Back to NIS object list" +msgstr "Retour à la liste des objets NIS" + +#: ../lib/baseType.inc:48 +msgid "Back to account list" +msgstr "Retour à la liste des comptes" + +#: ../lib/types/zarafaAddressListType.inc:44 +msgid "Back to address list" +msgstr "Retour à la liste des adresses" + +#: ../lib/types/mailAlias.inc:44 ../lib/types/alias.inc:44 +msgid "Back to alias list" +msgstr "Retour à la liste des alias" + +#: ../lib/types/automountType.inc:35 +msgid "Back to automount list" +msgstr "Retour à la liste des automount" + +#: ../lib/types/pykotaBillingCodeType.inc:44 +msgid "Back to billing code list" +msgstr "Retour à la liste des codes de facturation" + +#: ../lib/types/oracleContextType.inc:30 +msgid "Back to database list" +msgstr "Retour à la liste des bases de données" + +#: ../lib/types/smbDomain.inc:44 +msgid "Back to domain list" +msgstr "Retour à la liste des domaines" + +#: ../lib/types/asteriskExt.inc:47 +msgid "Back to extensions list" +msgstr "Retour à la liste des extensions" + +#: ../templates/lists/userlink.php:63 ../lib/types/gon.inc:44 +#: ../lib/types/zarafaDynamicGroupType.inc:44 ../lib/types/group.inc:45 +#: ../lib/types/netgroup.inc:44 +msgid "Back to group list" +msgstr "Retour à la liste des groupes" + +#: ../lib/types/host.inc:44 +msgid "Back to host list" +msgstr "Retour à la liste des hôtes" + +#: ../templates/delete.php:289 +msgid "Back to list" +msgstr "Retour à la liste" + +#: ../templates/config/mainmanage.php:257 ../templates/config/index.php:79 +#: ../templates/config/index.php:133 ../templates/config/conflogin.php:117 +#: ../templates/config/conflogin.php:201 ../templates/config/mainlogin.php:124 +#: ../templates/config/mainlogin.php:178 +#: ../templates/selfService/selfServiceSP.php:139 +#: ../templates/selfService/adminLogin.php:114 +#: ../templates/selfService/adminLogin.php:191 +msgid "Back to login" +msgstr "Retour à la page de connexion" + +#: ../lib/types/ppolicyType.inc:30 +msgid "Back to policy list" +msgstr "Retour à la liste des stratégies" + +#: ../lib/types/pykotaPrinterType.inc:44 +msgid "Back to printer list" +msgstr "Retour à la liste des imprimantes" + +#: ../templates/config/profmanage.php:188 +#: ../templates/config/profmanage.php:326 +#: ../templates/selfService/profManage.php:144 +#: ../templates/selfService/profManage.php:262 +msgid "Back to profile login" +msgstr "Retour au profil de connexion" + +#: ../lib/types/gon.inc:49 ../lib/types/group.inc:50 +msgid "Back to role list" +msgstr "Retour à la liste des rôles" + +#: ../lib/types/kolabSharedFolderType.inc:44 +msgid "Back to shared folder list" +msgstr "Retour à la liste des dossiers partagés" + +#: ../lib/types/sudo.inc:30 +msgid "Back to sudo role list" +msgstr "Retour à la liste des rôles sudo" + +#: ../lib/types/user.inc:44 +msgid "Back to user list" +msgstr "Retour à la liste des utilisateurs" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:64 +msgid "Back up" +msgstr "Sauvegarder" + +#: ../templates/serverInfo.php:163 +msgid "Backends" +msgstr "Backends" + +#: ../lib/modules/passwordSelfReset.inc:88 +#: ../lib/modules/passwordSelfReset.inc:191 +#: ../lib/modules/passwordSelfReset.inc:201 +#: ../lib/modules/passwordSelfReset.inc:213 +#: ../lib/modules/passwordSelfReset.inc:220 +#: ../lib/modules/passwordSelfReset.inc:276 +#: ../lib/modules/passwordSelfReset.inc:387 +#: ../lib/modules/passwordSelfReset.inc:675 +msgid "Backup email" +msgstr "mail de secours" + +#: ../lib/modules/passwordSelfReset.inc:89 +msgid "" +"Backup email address for password reset mails. Useful if user password " +"grants access to standard mailbox." +msgstr "" +"Adresse de secours pour l'mail de reset de mot de passe. Utile si le mot de " +"passe de l'utilisateur donne accès à sa boîte mail." + +#: ../lib/modules/sudoRole.inc:155 +msgid "Backup script" +msgstr "Scripts de sauvegarde" + +#: ../lib/modules/sambaSamAccount.inc:567 +msgid "Baghdad, Riyadh, Moscow" +msgstr "Bagdad, Riyad, Moscou" + +#: ../lib/types/pykotaBillingCodeType.inc:93 ../lib/modules/pykotaGroup.inc:62 +#: ../lib/modules/pykotaUser.inc:62 ../lib/modules/pykotaUser.inc:132 +#: ../lib/modules/pykotaUser.inc:170 ../lib/modules/pykotaUser.inc:241 +#: ../lib/modules/pykotaUser.inc:262 ../lib/modules/pykotaUser.inc:322 +#: ../lib/modules/pykotaUser.inc:365 ../lib/modules/pykotaUser.inc:900 +#: ../lib/modules/pykotaUser.inc:947 ../lib/modules/pykotaBillingCode.inc:85 +#: ../lib/modules/pykotaBillingCode.inc:117 +#: ../lib/modules/pykotaBillingCode.inc:143 +#: ../lib/modules/pykotaBillingCode.inc:263 +msgid "Balance" +msgstr "Solde" + +#: ../lib/modules/pykotaUser.inc:281 +msgid "Balance (read-only)" +msgstr "Solde (lecture seule)" + +#: ../lib/modules/pykotaUser.inc:136 ../lib/modules/pykotaUser.inc:247 +msgid "Balance comment" +msgstr "Commentaire de solde" + +#: ../lib/modules/sambaSamAccount.inc:571 +msgid "Bangkok, Hanoi, Jakarta" +msgstr "Bangkok, Hanoi, Jakarta" + +#: ../lib/types/zarafaAddressListType.inc:93 +#: ../lib/types/zarafaDynamicGroupType.inc:94 +#: ../lib/modules/zarafaDynamicGroup.inc:87 +#: ../lib/modules/zarafaDynamicGroup.inc:101 +#: ../lib/modules/zarafaDynamicGroup.inc:152 +#: ../lib/modules/zarafaDynamicGroup.inc:170 +#: ../lib/modules/zarafaDynamicGroup.inc:198 +#: ../lib/modules/zarafaDynamicGroup.inc:231 +#: ../lib/modules/zarafaDynamicGroup.inc:449 +#: ../lib/modules/zarafaAddressList.inc:75 +#: ../lib/modules/zarafaAddressList.inc:89 +#: ../lib/modules/zarafaAddressList.inc:128 +#: ../lib/modules/zarafaAddressList.inc:144 +#: ../lib/modules/zarafaAddressList.inc:169 +#: ../lib/modules/zarafaAddressList.inc:198 +#: ../lib/modules/zarafaAddressList.inc:332 +msgid "Base" +msgstr "Base" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:142 +#: ../templates/3rdParty/pla/htdocs/export_form.php:31 +msgid "Base (base dn only)" +msgstr "Base (base DN seulement)" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:121 +#: ../templates/3rdParty/pla/lib/QueryRender.php:506 +#: ../templates/3rdParty/pla/htdocs/export_form.php:59 +msgid "Base DN" +msgstr "Base DN" + +#: ../templates/config/confmodules.php:212 ../help/help.inc:144 +msgid "Base module" +msgstr "Module base" + +#: ../templates/pdfedit/pdfpage.php:441 +msgid "Beginning" +msgstr "Début" + +#: ../lib/modules/sambaSamAccount.inc:572 +msgid "Beijing, Perth, Singapore" +msgstr "Pékin, Perth, Singapour" + +#: ../lib/types/pykotaBillingCodeType.inc:91 +#: ../lib/modules/pykotaBillingCode.inc:77 +#: ../lib/modules/pykotaBillingCode.inc:115 +#: ../lib/modules/pykotaBillingCode.inc:127 +#: ../lib/modules/pykotaBillingCode.inc:129 +#: ../lib/modules/pykotaBillingCode.inc:141 +#: ../lib/modules/pykotaBillingCode.inc:261 +msgid "Billing code" +msgstr "Compte de facturation" + +#: ../lib/modules/pykotaBillingCode.inc:129 +#: ../lib/modules/pykotaBillingCode.inc:130 +msgid "Billing code already exists!" +msgstr "Le compte de facturation existe déjà !" + +#: ../lib/modules/pykotaBillingCode.inc:127 +#: ../lib/modules/pykotaBillingCode.inc:128 +msgid "" +"Billing code contains invalid characters. Valid characters are: a-z, A-Z, " +"0-9 and .-_ !" +msgstr "" +"Le compte de facturation contient des caractères non valides. Les caractères " +"valides sont: a-z, A-Z, 0-9 et .-_ !" + +#: ../lib/types/pykotaBillingCodeType.inc:163 +#, php-format +msgid "Billing code count: %s" +msgstr "Nombre de comptes de facturation : %s" + +#: ../lib/modules/pykotaBillingCode.inc:82 +msgid "Billing code description." +msgstr "Description du compte de facturation." + +#: ../lib/modules/pykotaBillingCode.inc:78 +msgid "" +"Billing code name which should be created. Valid characters are: a-z, A-Z, " +"0-9 and .-_ ." +msgstr "" +"Nom du compte de facturation a créer. Les caractères autorisés sont: a-z, A-" +"Z, 0-9 et .-_ !" + +#: ../lib/types/pykotaBillingCodeType.inc:53 +msgid "Billing codes" +msgstr "Comptes de facturation" + +#: ../templates/3rdParty/pla/lib/PageRender.php:644 +#: ../templates/3rdParty/pla/lib/PageRender.php:648 +msgid "Binary value" +msgstr "Valeur binaire" + +#: ../templates/serverInfo.php:286 ../templates/serverInfo.php:375 +msgid "Bind" +msgstr "Bind" + +#: ../lib/types/bind.inc:39 +msgid "Bind DNS" +msgstr "DNS Bind" + +#: ../lib/types/bind.inc:48 +msgid "Bind DNS entries" +msgstr "Entrée DNS Bind" + +#: ../templates/config/confmain.php:444 +msgid "Bind password" +msgstr "Mot de passe de connexion" + +#: ../templates/config/confmain.php:442 +msgid "Bind user" +msgstr "Utilisateur de connexion" + +#: ../help/help.inc:128 +msgid "Bind user and password" +msgstr "Utilisateur de connexion et mot de passe" + +#: ../lib/modules/quota.inc:53 ../lib/modules/systemQuotas.inc:101 +msgid "Block hard quota" +msgstr "Bloquer le quota hard" + +#: ../lib/modules/quota.inc:53 ../lib/modules/quota.inc:54 +#: ../lib/modules/systemQuotas.inc:101 ../lib/modules/systemQuotas.inc:102 +msgid "" +"Block hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Le blocage des quota hard contient des caractères incorrectes. Seuls les " +"chiffres sont autorisés." + +#: ../lib/modules/quota.inc:59 ../lib/modules/systemQuotas.inc:107 +msgid "Block quota" +msgstr "Blocage quota" + +#: ../lib/modules/quota.inc:51 ../lib/modules/systemQuotas.inc:99 +msgid "Block soft quota" +msgstr "Bloquer le quota soft" + +#: ../lib/modules/quota.inc:51 ../lib/modules/quota.inc:52 +#: ../lib/modules/systemQuotas.inc:99 ../lib/modules/systemQuotas.inc:100 +msgid "" +"Block soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Le blocage des quota soft contient des caratères incorrectes. Seuls les " +"chiffres sont autorisés." + +#: ../lib/modules/quota.inc:59 ../lib/modules/quota.inc:60 +#: ../lib/modules/systemQuotas.inc:107 ../lib/modules/systemQuotas.inc:108 +msgid "Block soft quota must be smaller than block hard quota." +msgstr "Le blocage soft des quotas doit être plus petit que le blocage hard." + +#: ../lib/modules/qmailGroup.inc:72 ../lib/modules/qmailGroup.inc:143 +#: ../lib/modules/qmailGroup.inc:147 ../lib/modules/qmailGroup.inc:263 +#: ../lib/modules/qmailGroup.inc:375 ../lib/modules/qmailGroup.inc:431 +#: ../lib/modules/qmailGroup.inc:522 ../lib/modules/qmailGroup.inc:1059 +msgid "Bounce admin email" +msgstr "Mail de l'administrateur des mail rejeté" + +#: ../lib/modules/sambaSamAccount.inc:561 +msgid "Brazil, Buenos Aires" +msgstr "Brésil, Buenos Aires" + +#: ../templates/3rdParty/pla/htdocs/copy.php:53 +msgid "Building snapshot of tree to copy" +msgstr "Construction d'un instantané de l'arbre a copier" + +#: ../lib/modules/sambaGroupMapping.inc:73 +msgid "Builtin group" +msgstr "Groupes intégrés" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:63 +msgid "Bulk edit the following DNs" +msgstr "Modification en masse des DNs suivants" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:48 +msgid "Bulk update the following DNs" +msgstr "Mise à jour en masse des DNs suivants" + +#: ../lib/modules/inetOrgPerson.inc:103 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:232 ../lib/modules/inetOrgPerson.inc:369 +#: ../lib/modules/inetOrgPerson.inc:599 ../lib/modules/inetOrgPerson.inc:764 +#: ../lib/modules/inetOrgPerson.inc:768 ../lib/modules/inetOrgPerson.inc:1473 +#: ../lib/modules/inetOrgPerson.inc:1476 ../lib/modules/inetOrgPerson.inc:1907 +#: ../lib/modules/inetOrgPerson.inc:2632 ../lib/modules/inetOrgPerson.inc:3545 +#: ../lib/modules/inetOrgPerson.inc:3586 +msgid "Business category" +msgstr "Catégorie professionnelle" + +#: ../lib/modules/inetOrgPerson.inc:765 ../lib/modules/inetOrgPerson.inc:769 +msgid "Business category (e.g. Administration, IT-Services, Manangement, ...)" +msgstr "" +"Catégorie professionnelle ( ex : Administration, Support Informatique, " +"Encadrement, ...)" + +#: ../help/help.inc:173 +msgid "" +"By default LAM will show all accounts that match the selected account " +"modules." +msgstr "" +"Par défaut, LAM affichera tous les comptes correspondant aux modules de " +"compte sélectionnés." + +#: ../help/help.inc:243 +msgid "" +"By default all modifications are done as the user that authenticated in self " +"service. If active then LAM will use the connection user for all LDAP " +"modifications and searches." +msgstr "" +"Par défaut, toutes les modifications sont faites au nom de l'utilisateur " +"authentifié dans le self-service. Si coché, LAM utilisera ces authentifiants " +"pour effectuer toutes les modifications et recherches LDAP." + +#: ../lib/modules/selfRegistration.inc:103 +msgid "" +"By default all users are created in the self service LDAP suffix. You can " +"enter an alternative suffix here." +msgstr "" +"Par défaut, tous les utilisateurs sont créés dans le sufix LDAP de self-" +"service. Vous pouvez indiquer ici un sufix alternatif." + +#: ../lib/modules/customScripts.inc:89 +msgid "" +"By default, LAM will show the executed command along with any output of it. " +"If you want to hide the command and only show the output then activate this " +"option." +msgstr "" +"Par défaut, LAM affichera la commande exécutée ainsi que son résultat. Si " +"vous souhaitez masquer la commande et ne montrer que le résultat alors " +"cochez cette option." + +#: ../templates/serverInfo.php:253 ../templates/serverInfo.php:259 +msgid "Bytes sent" +msgstr "Octets envoyés" + +#: ../lib/modules/bindDLZ.inc:261 ../lib/modules/bindDLZ.inc:267 +#: ../lib/modules/bindDLZ.inc:474 ../lib/modules/bindDLZ.inc:490 +msgid "CNAME record" +msgstr "Enregistrement CNAME" + +#: ../lib/modules/bindDLZ.inc:432 +msgid "CNAME records" +msgstr "Enregistremenst CNAME" + +#: ../templates/masscreate.php:253 +msgid "CSV file" +msgstr "Fichier CSV" + +#: ../help/help.inc:107 +msgid "Cache timeout" +msgstr "Timeout du cache" + +#: ../lib/modules/asteriskAccount.inc:135 +#: ../lib/modules/asteriskAccount.inc:272 +#: ../lib/modules/asteriskAccount.inc:355 +#: ../lib/modules/asteriskAccount.inc:615 +#: ../lib/modules/asteriskAccount.inc:988 +#: ../lib/modules/asteriskAccount.inc:1245 +msgid "Call groups" +msgstr "Groupes d'appel" + +#: ../lib/modules/asteriskAccount.inc:103 +#: ../lib/modules/asteriskAccount.inc:266 +#: ../lib/modules/asteriskAccount.inc:304 +#: ../lib/modules/asteriskAccount.inc:589 +#: ../lib/modules/asteriskAccount.inc:982 +msgid "Caller ID" +msgstr "ID d'appelant" + +#: ../lib/modules/sambaSamAccount.inc:306 +#: ../lib/modules/sambaSamAccount.inc:309 +#: ../lib/modules/sambaSamAccount.inc:312 +#: ../lib/modules/sambaSamAccount.inc:318 ../lib/modules/posixAccount.inc:535 +#: ../lib/modules/organizationalRoleUser.inc:61 +#: ../lib/modules/windowsUser.inc:205 ../lib/modules/windowsUser.inc:210 +#: ../lib/modules/sambaGroupMapping.inc:159 +#: ../lib/modules/shadowAccount.inc:178 ../lib/modules/shadowAccount.inc:182 +#: ../lib/modules/shadowAccount.inc:186 ../lib/modules/shadowAccount.inc:190 +#: ../lib/modules/groupOfNamesUser.inc:61 +msgid "Can be left empty." +msgstr "Peut être laissé vide." + +#: ../lib/modules/asteriskAccount.inc:223 +#: ../lib/modules/asteriskAccount.inc:294 +#: ../lib/modules/asteriskAccount.inc:515 +#: ../lib/modules/asteriskAccount.inc:741 +#: ../lib/modules/asteriskAccount.inc:1010 +#: ../lib/modules/asteriskAccount.inc:1289 +msgid "Can call forward" +msgstr "Peut renvoyer un appel" + +#: ../templates/lists/changePassword.php:340 +#: ../templates/lists/changePassword.php:377 +#: ../templates/lists/changePassword.php:418 +#: ../templates/lists/changePassword.php:449 ../templates/ou_edit.php:121 +#: ../templates/config/profmanage.php:254 +#: ../templates/config/profmanage.php:266 +#: ../templates/config/profmanage.php:275 +#: ../templates/config/profmanage.php:293 +#: ../templates/config/profmanage.php:304 +#: ../templates/config/mainmanage.php:470 +#: ../templates/config/confmodules.php:227 +#: ../templates/config/confmain.php:471 +#: ../templates/config/moduleSettings.php:241 +#: ../templates/config/conftypes.php:341 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminMain.php:748 +#: ../templates/pdfedit/pdfpage.php:638 ../templates/pdfedit/pdfmain.php:210 +#: ../templates/pdfedit/pdfmain.php:217 ../templates/pdfedit/pdfmain.php:223 +#: ../templates/delete.php:121 ../templates/profedit/profilepage.php:241 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/profedit/profilemain.php:205 +#: ../templates/profedit/profilemain.php:211 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:197 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:83 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:136 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:121 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:119 +#: ../templates/initsuff.php:191 ../lib/types/automountType.inc:234 +#: ../lib/types/user.inc:303 ../lib/types/bind.inc:175 +#: ../lib/modules/kolabGroup.inc:294 ../lib/modules/pykotaPrinter.inc:431 +#: ../lib/modules/mitKerberos.inc:690 ../lib/modules/qmailUser.inc:921 +#: ../lib/modules/zarafaContact.inc:391 ../lib/modules/windowsHost.inc:226 +#: ../lib/modules/zarafaGroup.inc:451 ../lib/modules/device.inc:254 +#: ../lib/modules/sambaSamAccount.inc:1432 +#: ../lib/modules/sambaSamAccount.inc:1481 +#: ../lib/modules/sambaSamAccount.inc:1567 ../lib/modules/zarafaUser.inc:875 +#: ../lib/modules/kolabUser.inc:520 ../lib/modules/sambaGroupMapping.inc:490 +#: ../lib/modules/shadowAccount.inc:478 ../lib/modules/nisnetgroup.inc:490 +#: ../lib/modules/inetOrgPerson.inc:1710 ../lib/modules/freeRadius.inc:431 +#: ../lib/modules/kolabSharedFolder.inc:434 +#: ../lib/modules/customFields.inc:1084 ../lib/modules/aliasEntry.inc:147 +#: ../lib/modules/aliasEntry.inc:167 ../lib/modules/qmailGroup.inc:823 +#: ../lib/modules/organizationalRole.inc:318 ../lib/modules/fixed_ip.inc:587 +#: ../lib/modules/heimdalKerberos.inc:600 ../lib/modules/windowsGroup.inc:505 +#: ../lib/modules/windowsGroup.inc:557 ../lib/modules/groupOfNames.inc:375 +#: ../lib/modules/groupOfNames.inc:530 ../lib/modules/nisMailAlias.inc:385 +#: ../lib/lists.inc:711 ../lib/lists.inc:792 ../lib/modules.inc:1222 +msgid "Cancel" +msgstr "Annuler" + +#: ../templates/login.php:569 ../templates/login.php:627 +#: ../templates/login.php:632 +#: ../templates/selfService/selfServiceLogin.php:141 +#: ../templates/selfService/selfServiceLogin.php:190 +#: ../templates/selfService/selfServiceLogin.php:195 +#: ../templates/selfService/selfServiceMain.php:168 +#: ../templates/selfService/selfServiceMain.php:189 +#: ../lib/modules/selfRegistration.inc:699 +msgid "Cannot connect to specified LDAP server. Please try again." +msgstr "" +"Impossible de se connecter au serveur LDAP spécifié. Veuillez ré-essayer." + +#: ../templates/login.php:310 ../lib/config.inc:1641 +msgid "Cannot open config file!" +msgstr "Impossible d'ouvrir le fichier de configuration !" + +#: ../lib/modules/imapAccess.inc:187 +msgid "Cannot update quota." +msgstr "Impossible de mettre à jour le quota." + +#: ../lib/config.inc:1653 ../lib/config.inc:1661 +msgid "" +"Cannot write certificate file. Please check the permissions of config/" +"serverCerts.pem." +msgstr "" +"Impossible d'écrire le fichier de certificat. Veuillez vérifier les " +"permissions de config/serverCerts.pem." + +#: ../lib/modules/zarafaUser.inc:120 ../lib/modules/zarafaUser.inc:247 +#: ../lib/modules/zarafaUser.inc:364 ../lib/modules/zarafaUser.inc:415 +#: ../lib/modules/zarafaUser.inc:545 ../lib/modules/zarafaUser.inc:1232 +#: ../lib/modules/zarafaUser.inc:1799 +msgid "Capacity" +msgstr "Capacité" + +#: ../templates/selfService/adminMain.php:528 +msgid "Captions and labels" +msgstr "Textes et étiquettes" + +#: ../lib/modules/inetOrgPerson.inc:160 ../lib/modules/inetOrgPerson.inc:523 +#: ../lib/modules/inetOrgPerson.inc:593 ../lib/modules/inetOrgPerson.inc:788 +#: ../lib/modules/inetOrgPerson.inc:1446 ../lib/modules/inetOrgPerson.inc:1449 +#: ../lib/modules/inetOrgPerson.inc:1909 ../lib/modules/inetOrgPerson.inc:2610 +#: ../lib/modules/inetOrgPerson.inc:3541 ../lib/modules/inetOrgPerson.inc:3585 +msgid "Car license" +msgstr "Permis de conduire" + +#: ../lib/modules/sambaSamAccount.inc:565 +msgid "Central Europe Time, Paris, Berlin" +msgstr "Heure d'Europe Centrale, Paris, Berlin" + +#: ../lib/modules/sambaSamAccount.inc:558 +msgid "Central Time (US & Canada), Mexico City" +msgstr "Fuseau horaire central (US & Canada), Mexico City" + +#: ../templates/selfService/adminMain.php:546 +#: ../lib/modules/mitKerberos.inc:377 ../lib/modules/mitKerberos.inc:388 +#: ../lib/modules/mitKerberos.inc:686 ../lib/modules/qmailUser.inc:661 +#: ../lib/modules/qmailUser.inc:917 ../lib/modules/zarafaContact.inc:229 +#: ../lib/modules/windowsHost.inc:155 ../lib/modules/windowsHost.inc:225 +#: ../lib/modules/zarafaGroup.inc:266 ../lib/modules/device.inc:181 +#: ../lib/modules/sambaSamAccount.inc:1192 +#: ../lib/modules/sambaSamAccount.inc:1477 ../lib/modules/zarafaUser.inc:466 +#: ../lib/modules/zarafaUser.inc:557 ../lib/modules/shadowAccount.inc:355 +#: ../lib/modules/shadowAccount.inc:474 ../lib/modules/inetOrgPerson.inc:1533 +#: ../lib/modules/freeRadius.inc:301 ../lib/modules/freeRadius.inc:427 +#: ../lib/modules/asteriskExtension.inc:236 ../lib/modules/aliasEntry.inc:100 +#: ../lib/modules/qmailGroup.inc:572 ../lib/modules/organizationalRole.inc:194 +#: ../lib/modules/passwordSelfReset.inc:271 +#: ../lib/modules/heimdalKerberos.inc:324 +#: ../lib/modules/heimdalKerberos.inc:335 +#: ../lib/modules/heimdalKerberos.inc:596 ../lib/modules/windowsGroup.inc:361 +#: ../lib/modules/windowsGroup.inc:504 ../lib/modules/groupOfNames.inc:241 +#: ../lib/modules/groupOfNames.inc:248 +msgid "Change" +msgstr "Modifier" + +#: ../templates/lists/changePassword.php:223 +msgid "Change Asterisk password" +msgstr "Modifie le mot de passe Asterisk" + +#: ../templates/lists/changePassword.php:235 +msgid "Change Asterisk voicemail password" +msgstr "Modifie le mot de passe de messagerie vocale Asterisk" + +#: ../lib/modules/posixGroup.inc:218 ../lib/modules/posixGroup.inc:512 +msgid "Change GID number of users and hosts" +msgstr "Modifie le numéro de GID des comptes utilisateur et machine" + +#: ../templates/lists/changePassword.php:226 +#: ../templates/lists/changePassword.php:229 +msgid "Change Kerberos password" +msgstr "Modifie le mot de passe Kerberos" + +#: ../templates/lists/changePassword.php:216 +msgid "Change Samba LM password" +msgstr "Modifie le mot de passe Samba LM" + +#: ../templates/lists/changePassword.php:214 +msgid "Change Samba NT password" +msgstr "Modifie le mot de passe Samba NT" + +#: ../templates/lists/changePassword.php:208 +msgid "Change Unix password" +msgstr "Modifie le mot de passe unix" + +#: ../templates/lists/changePassword.php:232 +msgid "Change Windows password" +msgstr "Modifie le mot de passe windows" + +#: ../lib/types/user.inc:303 +msgid "Change account status" +msgstr "Modifie le statut du compte" + +#: ../templates/config/profmanage.php:300 +#: ../templates/config/profmanage.php:303 ../help/help.inc:138 +msgid "Change default profile" +msgstr "Modifie le profil par défaut" + +#: ../templates/selfService/adminMain.php:607 +msgid "Change field label." +msgstr "Modifier l'étiquette du champ." + +#: ../lib/lists.inc:792 +msgid "Change list settings" +msgstr "Modifie les paramètres de liste" + +#: ../templates/config/mainmanage.php:454 ../help/help.inc:140 +msgid "Change master password" +msgstr "Modifier le mot de passe principal" + +#: ../templates/lists/changePassword.php:211 +#: ../templates/lists/changePassword.php:256 +#: ../templates/lists/changePassword.php:337 +#: ../templates/lists/changePassword.php:339 +#: ../templates/lists/changePassword.php:374 +#: ../templates/lists/changePassword.php:376 ../lib/types/user.inc:669 +#: ../help/help.inc:105 +msgid "Change password" +msgstr "Modifie le mot de passe" + +#: ../templates/lists/changePassword.php:263 +#: ../templates/lists/changePassword.php:264 +msgid "Change password now?" +msgstr "Modifier le mot de passe maintenant ?" + +#: ../templates/config/confmain.php:261 +msgid "Change passwords" +msgstr "Modifie les mots de passe" + +#: ../lib/lists.inc:793 +msgid "Change settings" +msgstr "Modifie les paramètres" + +#: ../lib/modules/posixAccount.inc:1225 +msgid "Changed value because only ASCII characters are allowed." +msgstr "Valeur modifiée car seuls les caractères ASCII sont autorisé." + +#: ../lib/modules/passwordSelfReset.inc:185 +msgid "Charlie" +msgstr "Charlie" + +#: ../lib/modules/posixAccount.inc:1485 +msgid "Check home directories" +msgstr "Vérifiez les répertoires utilisateur" + +#: ../templates/tests/index.php:54 ../lib/tools/tests.inc:112 +msgid "Check if quotas and homedirectories can be managed." +msgstr "Vérifiez si les quotas et répertoires home peuvent être administrés." + +#: ../templates/tests/index.php:60 ../lib/tools/tests.inc:118 +msgid "" +"Check if the LDAP schema fits the requirements of the selected account " +"modules." +msgstr "" +"Vérifiez si les schéma LDAP couvrent les exigences des modules de compte " +"sélectionnés." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2401 +msgid "Check password" +msgstr "Vérifiez le mot de passe" + +#: ../templates/tests/lamdaemonTest.php:87 +msgid "Check quotas" +msgstr "Vérifiez les quotas" + +#: ../templates/masscreate.php:247 +msgid "" +"Check your input carefully. LAM will only do some basic checks on the upload " +"data." +msgstr "" +"Vérifiez vos entrées avec attention. LAM ne fera qu'un contrôle basique lors " +"du chargement des données." + +#: ../lib/modules/customFields.inc:2735 +msgid "Checkbox" +msgstr "Case à cocher" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1224 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1229 +msgid "Children" +msgstr "Enfants" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:23 +msgid "Choose entry" +msgstr "Choisissez une entrée" + +#: ../lib/modules/imapAccess.inc:90 +msgid "" +"Choose the way how to provide the IMAP admin password. You can use the same " +"password as for the LAM login or LAM will ask you for a password when it is " +"required." +msgstr "" +"Choisissez la façon de fournir un mot de passe administrateur pour IMAP. " +"Soit vous utilisez le même mot de passe que la connexion à LAM sinon LAM " +"vous demandera un mot de passe lorsque ce sera nécessaire." + +#: ../lib/modules/puppetClient.inc:92 ../lib/modules/puppetClient.inc:96 +#: ../lib/modules/puppetClient.inc:140 ../lib/modules/puppetClient.inc:155 +#: ../lib/modules/puppetClient.inc:168 ../lib/modules/puppetClient.inc:271 +#: ../lib/modules/puppetClient.inc:433 +msgid "Classes" +msgstr "Classes" + +#: ../lib/lists.inc:384 +msgid "Clear filter" +msgstr "Effacer le filtre" + +#: ../lib/config.inc:224 +msgid "Click here if you are not directed to the next page." +msgstr "Cliquer ici si vous n'êtes pas dirigés vers la page suivante." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2349 +msgid "Click to popup a dialog to select a date graphically" +msgstr "Cliquez pour sélectionner une date sur un calendrier" + +#: ../templates/3rdParty/pla/lib/functions.php:2293 +msgid "Click to popup a dialog to select an entry (DN) graphically" +msgstr "Cliquez pour sélectionner de façon graphique une entrée (DN)" + +#: ../lib/types/user.inc:619 +msgid "Click to switch between thumbnail and original size." +msgstr "Cliquez pour basculer entre l'aperçu et la taille réelle." + +#: ../lib/modules/sambaSamAccount.inc:241 +#: ../lib/modules/sambaSamAccount.inc:378 +#: ../lib/modules/sambaSamAccount.inc:1535 +#: ../lib/modules/sambaSamAccount.inc:1943 +msgid "Client printer is default" +msgstr "Par défaut l'imprimante du client" + +#: ../templates/schema/schema.php:199 +msgid "Collective" +msgstr "Collectif" + +#: ../lib/modules/pykotaPrinter.inc:155 +msgid "Color laser printer" +msgstr "Imprimante laser couleur" + +#: ../templates/masscreate.php:284 ../lib/modules/customFields.inc:128 +#: ../lib/modules/customFields.inc:2601 +msgid "Columns" +msgstr "Colonnes" + +#: ../lib/modules/sambaSamAccount.inc:318 +msgid "" +"Comma separated list of Samba workstations the user is allowed to login. " +"Empty means every workstation." +msgstr "" +"Liste séparée par des virgules des stations de travail samba à partir " +"desquelles l'utilisateur peut se connecter. Si vide , cela signifie : " +"n'importe quelle station de travail." + +#: ../lib/modules/authorizedServiceObject.inc:86 +msgid "Comma separated list of services (e.g. sshd, imap, ftp)." +msgstr "Liste de services séparés par des virgules (ex : sshd, imap, ftp)." + +#: ../lib/types/sudo.inc:80 ../lib/modules/customScripts.inc:169 +msgid "Command" +msgstr "Commande" + +#: ../lib/modules/sudoRole.inc:82 ../lib/modules/sudoRole.inc:108 +#: ../lib/modules/sudoRole.inc:171 ../lib/modules/sudoRole.inc:218 +#: ../lib/modules/sudoRole.inc:230 ../lib/modules/sudoRole.inc:370 +#: ../lib/modules/sudoRole.inc:808 +msgid "Commands" +msgstr "Commandes" + +#: ../lib/modules/pykotaUser.inc:375 ../lib/modules/pykotaUser.inc:599 +#: ../lib/modules/pykotaUser.inc:907 ../lib/modules/pykotaUser.inc:967 +msgid "Comment" +msgstr "Commentaire" + +#: ../lib/modules/pykotaUser.inc:137 +msgid "Comment for initial balance." +msgstr "Commentaire pour le solde initial." + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:117 +msgid "Commit" +msgstr "Valider" + +#: ../lib/modules/posixAccount.inc:438 +msgid "Common examples are \"@givenname@%sn%\" or \"%givenname%.%sn%\"." +msgstr "" +"Les exemples typiques sont \"@givenname@%sn%\" ou \"%givenname%.%sn%\"." + +#: ../templates/config/mainmanage.php:362 ../lib/types/user.inc:94 +#: ../lib/modules/pykotaGroup.inc:113 ../lib/modules/pykotaGroup.inc:157 +#: ../lib/modules/pykotaGroup.inc:185 ../lib/modules/pykotaGroup.inc:466 +#: ../lib/modules/posixAccount.inc:129 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:348 ../lib/modules/posixAccount.inc:421 +#: ../lib/modules/posixAccount.inc:538 ../lib/modules/posixAccount.inc:560 +#: ../lib/modules/posixAccount.inc:1429 ../lib/modules/posixAccount.inc:1851 +#: ../lib/modules/posixAccount.inc:2552 ../lib/modules/windowsUser.inc:102 +#: ../lib/modules/windowsUser.inc:290 ../lib/modules/windowsUser.inc:473 +#: ../lib/modules/windowsUser.inc:499 ../lib/modules/windowsUser.inc:591 +#: ../lib/modules/windowsUser.inc:702 ../lib/modules/windowsUser.inc:1586 +#: ../lib/modules/pykotaUser.inc:108 ../lib/modules/pykotaUser.inc:199 +#: ../lib/modules/pykotaUser.inc:271 ../lib/modules/pykotaUser.inc:405 +#: ../lib/modules/pykotaUser.inc:888 ../lib/modules/inetOrgPerson.inc:93 +#: ../lib/modules/inetOrgPerson.inc:626 ../lib/modules/inetOrgPerson.inc:740 +#: ../lib/modules/inetOrgPerson.inc:1197 ../lib/modules/inetOrgPerson.inc:1200 +#: ../lib/modules/inetOrgPerson.inc:1904 ../lib/modules/inetOrgPerson.inc:2035 +#: ../lib/modules/inetOrgPerson.inc:3595 +#: ../lib/modules/asteriskExtension.inc:118 +msgid "Common name" +msgstr "Nom commun" + +#: ../lib/modules/asteriskExtension.inc:119 +msgid "Common name of the Asterisk extension." +msgstr "Noms usuel des extensions Asterisk." + +#: ../templates/serverInfo.php:335 ../templates/serverInfo.php:396 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1172 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:60 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:39 +msgid "Compare" +msgstr "Comparer" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:28 +#, php-format +msgid "Compare another DN with %s" +msgstr "Comparer un autre DN avec %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1169 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +msgid "Compare this DN with another" +msgstr "Comparer ce DN avec un autre" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +msgid "Compare with another entry" +msgstr "Comparer avec une autre entrée" + +#: ../templates/3rdParty/pla/htdocs/compare.php:42 +msgid "Comparing the following DNs" +msgstr "Comparaison des DNs suivants" + +#: ../templates/serverInfo.php:284 ../templates/serverInfo.php:371 +msgid "Completed" +msgstr "Terminé" + +#: ../templates/serverInfo.php:114 +msgid "Config suffix" +msgstr "Suffixe de config" + +#: ../templates/config/index.php:50 +msgid "Configuration overview" +msgstr "Aperçu de la configuration" + +#: ../lib/modules/qmailUser.inc:126 ../lib/modules/qmailUser.inc:179 +#: ../lib/modules/qmailUser.inc:259 ../lib/modules/qmailUser.inc:392 +#: ../lib/modules/qmailUser.inc:439 ../lib/modules/qmailUser.inc:619 +#: ../lib/modules/qmailUser.inc:1178 +msgid "Configuration type" +msgstr "Type de configuration" + +#: ../lib/modules/qmailGroup.inc:96 ../lib/modules/qmailGroup.inc:228 +#: ../lib/modules/qmailGroup.inc:361 ../lib/modules/qmailGroup.inc:411 +#: ../lib/modules/qmailGroup.inc:623 ../lib/modules/qmailGroup.inc:1081 +msgid "Confirm sender" +msgstr "Confirmer l'expéditeur" + +#: ../lib/modules/selfRegistration.inc:228 +msgid "Confirmation mail settings" +msgstr "Paramètres du mail de confirmation" + +#: ../lib/modules/qmailGroup.inc:74 ../lib/modules/qmailGroup.inc:103 +#: ../lib/modules/qmailGroup.inc:152 ../lib/modules/qmailGroup.inc:271 +#: ../lib/modules/qmailGroup.inc:378 ../lib/modules/qmailGroup.inc:591 +#: ../lib/modules/qmailGroup.inc:1060 +msgid "Confirmation text" +msgstr "Texte de confirmation" + +#: ../lib/modules/qmailGroup.inc:153 +msgid "" +"Confirmation text that is used if sender-confirmation is used. The usual " +"%HEADER% magic of qmail-reply etc. can be used here." +msgstr "" +"Texte de confirmation utilisé si la vérification de l'expéditeur est " +"demandée. Les codes magiques de qmail-reply tels que %HEADER% sont " +"utilisables." + +#: ../templates/config/confmodules.php:394 +msgid "Conflicting module:" +msgstr "Modules en conflit :" + +#: ../lib/modules/sambaSamAccount.inc:239 +#: ../lib/modules/sambaSamAccount.inc:372 +#: ../lib/modules/sambaSamAccount.inc:1531 +#: ../lib/modules/sambaSamAccount.inc:1933 +msgid "Connect client drives" +msgstr "Connecter les lecteurs réseaux du client" + +#: ../lib/modules/sambaSamAccount.inc:240 +#: ../lib/modules/sambaSamAccount.inc:375 +#: ../lib/modules/sambaSamAccount.inc:1533 +#: ../lib/modules/sambaSamAccount.inc:1938 +msgid "Connect client printers" +msgstr "Connecter les imprimantes du client" + +#: ../templates/serverInfo.php:230 +msgid "Connection statistics" +msgstr "Statistiques de connexion" + +#: ../lib/types/oracleContextType.inc:78 ../lib/modules/oracleService.inc:65 +#: ../lib/modules/oracleService.inc:85 ../lib/modules/oracleService.inc:99 +#: ../lib/modules/oracleService.inc:123 ../lib/modules/oracleService.inc:171 +msgid "Connection string" +msgstr "Commande de connexion" + +#: ../lib/modules/sambaSamAccount.inc:236 +#: ../lib/modules/sambaSamAccount.inc:1519 +#: ../lib/modules/sambaSamAccount.inc:1926 +msgid "Connection time limit" +msgstr "Durée de connexion max" + +#: ../lib/modules/bindDLZ.inc:225 +msgid "Contact address for this zone (e.g. \"root.example.com.\")." +msgstr "Adresse de contact pour la zone (ex \"root.example.com\")." + +#: ../lib/modules/windowsUser.inc:715 ../lib/modules/inetOrgPerson.inc:1377 +msgid "Contact data" +msgstr "Données de contact" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:721 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1301 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +msgid "Container" +msgstr "Conteneur" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1458 +msgid "Container and object classes" +msgstr "Conteneurs et objectClasses" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:27 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:88 +#: ../templates/3rdParty/pla/htdocs/copy.php:108 +msgid "Copy" +msgstr "Copier" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:32 +#, php-format +msgid "Copy %s to a new object." +msgstr "Copier %s vers un nouvel objet." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1098 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1102 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1103 +msgid "Copy or move this entry" +msgstr "Copier ou déplacer cette entrée " + +#: ../templates/3rdParty/pla/htdocs/copy.php:130 +#, php-format +msgid "Copy successful. DN %s has been created." +msgstr "Copie résusie. Le DN %s a été créé." + +#: ../templates/3rdParty/pla/htdocs/copy.php:48 +msgid "Copying" +msgstr "Copie en cours" + +#: ../templates/3rdParty/pla/htdocs/import.php:37 +msgid "Could not add object" +msgstr "Impossible d'ajouter l'objet" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:370 +msgid "Could not add the object to the LDAP server." +msgstr "Impossible d'ajouter l'objet au serveur LDAP." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:30 +msgid "Could not delete attribute value." +msgstr "Impossible de supprimer la valeur de l'attribut." + +#: ../templates/3rdParty/pla/htdocs/import.php:38 +msgid "Could not delete object" +msgstr "Impossible de supprimer l'objet" + +#: ../templates/3rdParty/pla/htdocs/delete.php:37 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:47 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:73 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:90 +msgid "Could not delete the entry." +msgstr "Impossible de supprimer l'entrée." + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:37 +#, php-format +msgid "Could not fetch binary data from LDAP server for attribute [%s]." +msgstr "" +"Impossible de récupérer les données binaires depuis le serveur LDAP pour " +"l'attribut [%s]." + +#: ../templates/3rdParty/pla/lib/functions.php:1946 +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:60 +#, php-format +msgid "Could not fetch jpeg data from LDAP server for attribute [%s]." +msgstr "" +"Impossible de récupérer les données jpeg depuis le serveur LDAP pour " +"l'attribut [%s]." + +#: ../templates/3rdParty/pla/htdocs/import.php:41 +msgid "Could not modify object" +msgstr "Impossible de modifier l'objet" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:528 +msgid "Could not perform ldap_modify operation." +msgstr "Impossible d'effectuer l'opération ldap_modify" + +#: ../templates/config/profmanage.php:100 +#: ../templates/selfService/profManage.php:74 +msgid "Could not rename file!" +msgstr "Impossible de renommer le fichier !" + +#: ../templates/3rdParty/pla/htdocs/import.php:39 +#: ../templates/3rdParty/pla/htdocs/import.php:40 +#: ../templates/3rdParty/pla/htdocs/rename.php:60 +msgid "Could not rename the entry." +msgstr "Impossible de renommer l'entrée." + +#: ../templates/pdfedit/pdfpage.php:117 +msgid "Could not save PDF structure, access denied." +msgstr "Impossible de sauvegarder la structure PDF, accès refusé." + +#: ../templates/pdfedit/pdfmain.php:182 +#: ../templates/profedit/profilemain.php:168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1185 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1189 +#: ../templates/initsuff.php:190 ../lib/modules/nisMailAliasUser.inc:366 +#: ../lib/modules/sambaSamAccount.inc:1620 +#: ../lib/modules/posixAccount.inc:1695 +msgid "Create" +msgstr "Créer" + +#: ../lib/lists.inc:500 ../lib/lists.inc:686 ../lib/modules.inc:1341 +#: ../help/help.inc:200 +msgid "Create PDF file" +msgstr "Créer un fichier PDF" + +#: ../templates/massDoUpload.php:202 ../templates/masscreate.php:264 +msgid "Create PDF files" +msgstr "Créer des fichiers PDF" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1186 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1190 +msgid "Create a child entry" +msgstr "Créer une entrée enfant" + +#: ../templates/pdfedit/pdfmain.php:175 +msgid "Create a new PDF structure" +msgstr "Créer une nouvelle structure PDF" + +#: ../templates/profedit/profilemain.php:156 +msgid "Create a new profile" +msgstr "Créer un nouveau profil" + +#: ../lib/types/dhcp.inc:46 +msgid "Create another DHCP entry" +msgstr "Créer une nouvelle entrée DHCP" + +#: ../lib/types/bind.inc:29 +msgid "Create another DNS entry" +msgstr "Créer une nouvelle entrée DNS" + +#: ../lib/types/nisObjectType.inc:29 +msgid "Create another NIS object" +msgstr "Créer un nouvel objet NIS" + +#: ../lib/baseType.inc:47 +msgid "Create another account" +msgstr "Créer un nouveau compte" + +#: ../lib/types/zarafaAddressListType.inc:43 +msgid "Create another address list" +msgstr "Créer une nouvelle liste d'adress" + +#: ../lib/types/mailAlias.inc:43 ../lib/types/alias.inc:43 +msgid "Create another alias" +msgstr "Créer un nouvel alias" + +#: ../lib/types/automountType.inc:34 +msgid "Create another automount entry" +msgstr "Créer une nouvelle entrée automount" + +#: ../lib/types/pykotaBillingCodeType.inc:43 +msgid "Create another billing code" +msgstr "Créer un nouveau compte de facturation" + +#: ../lib/types/oracleContextType.inc:29 +msgid "Create another database entry" +msgstr "Créer une nouvelle entrée de base de donnée" + +#: ../lib/types/smbDomain.inc:43 +msgid "Create another domain" +msgstr "Créer un nouveau domaine" + +#: ../templates/3rdParty/pla/htdocs/create.php:100 +msgid "Create another entry" +msgstr "Créer une nouvelle entrée" + +#: ../lib/types/asteriskExt.inc:46 +msgid "Create another extension" +msgstr "Créer une autre extension" + +#: ../lib/types/gon.inc:43 ../lib/types/zarafaDynamicGroupType.inc:43 +#: ../lib/types/group.inc:44 ../lib/types/netgroup.inc:43 +msgid "Create another group" +msgstr "Créer un autre groupe" + +#: ../lib/types/host.inc:43 +msgid "Create another host" +msgstr "Créer un autre hôte" + +#: ../lib/types/ppolicyType.inc:29 +msgid "Create another policy" +msgstr "Créer une nouvelle stratégie" + +#: ../lib/types/pykotaPrinterType.inc:43 +msgid "Create another printer" +msgstr "Créer une nouvelle imprimante" + +#: ../lib/types/gon.inc:48 ../lib/types/group.inc:49 +msgid "Create another role" +msgstr "Créer un rôle supplémentaire" + +#: ../lib/types/kolabSharedFolderType.inc:43 +msgid "Create another shared folder" +msgstr "Créer un nouveau dossier partagé" + +#: ../lib/types/sudo.inc:29 +msgid "Create another sudo role" +msgstr "Créer un nouveau rôle sudo" + +#: ../lib/types/user.inc:43 +msgid "Create another user" +msgstr "Créer un autre utilisateur" + +#: ../lib/lists.inc:691 +msgid "Create for" +msgstr "Créer pour" + +#: ../lib/modules/posixAccount.inc:317 ../lib/modules/posixAccount.inc:1471 +#: ../lib/modules/posixAccount.inc:1760 +msgid "Create home directory" +msgstr "Création répertoire home" + +#: ../lib/modules/imapAccess.inc:263 +msgid "Create mailbox" +msgstr "Créer boîte mail" + +#: ../lib/modules/nisMailAliasUser.inc:359 +msgid "Create new alias" +msgstr "Créer un nouvel alias" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:278 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:281 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:283 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:506 +msgid "Create new entry here" +msgstr "Créer une nouvelle entrée ici" + +#: ../lib/modules/customFields.inc:72 ../lib/modules/customFields.inc:519 +#: ../lib/modules/customFields.inc:532 +msgid "Create new group" +msgstr "Créer un nouveau groupe" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:698 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1541 +#: ../templates/3rdParty/pla/htdocs/create.php:84 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:52 +msgid "Create object" +msgstr "Créer l'objet" + +#: ../lib/modules/generalInformation.inc:76 +msgid "Created by" +msgstr "Créé par" + +#: ../lib/types/automountType.inc:273 +msgid "Created new automount map." +msgstr "Créer une nouvelle correspondance automount." + +#: ../templates/config/profmanage.php:77 +#: ../templates/selfService/profManage.php:55 +msgid "Created new profile." +msgstr "Nouveau profil créé." + +#: ../lib/types/bind.inc:240 +msgid "Created new zone." +msgstr "Créer une nouvelle zone." + +#: ../lib/modules/customFields.inc:73 +msgid "" +"Creates a new group for the given account type. Groups build a container for " +"object classes and attributes." +msgstr "" +"Crée un nouveau groupe pour le type de compte. Les groupes créent un " +"conteneur pour les objectClasses et les attributs." + +#: ../lib/tools/fileUpload.inc:53 +msgid "Creates accounts by uploading a CSV formated file." +msgstr "Crée des comptes par chargement de fichier au format CSV." + +#: ../templates/3rdParty/pla/htdocs/create.php:77 +#, php-format +msgid "Creation successful. DN %s has been created." +msgstr "Création réussie. Le .DN %s a été créé." + +#: ../lib/modules/generalInformation.inc:80 +msgid "Creation time" +msgstr "Date de création" + +#: ../lib/modules/pykotaUser.inc:133 +msgid "Current account balance for the user." +msgstr "Solde de compte pour l'utilisateur." + +#: ../templates/serverInfo.php:232 ../templates/serverInfo.php:237 +msgid "Current connections" +msgstr "Connexions en cours" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:65 +#, php-format +msgid "Current list of %s values for attribute %s:" +msgstr "Liste de valeurs %s pour l'attribut %s:" + +#: ../lib/modules/imapAccess.inc:317 +msgid "Current usage (kB)" +msgstr "Utilisation actuelle (ko)" + +#: ../lib/modules/customFields.inc:1097 ../lib/modules/customFields.inc:1420 +msgid "Custom fields" +msgstr "Champs personnalisés" + +#: ../lib/modules/customFields.inc:172 +msgid "Custom icon" +msgstr "Icone personnalisés" + +#: ../templates/config/conftypes.php:300 ../lib/modules/customFields.inc:168 +#: ../help/help.inc:180 +msgid "Custom label" +msgstr "Etiquette personnalisée" + +#: ../lib/modules/customScripts.inc:48 ../lib/modules/customScripts.inc:59 +#: ../lib/modules/customScripts.inc:73 ../lib/modules/customScripts.inc:98 +#: ../lib/modules/customScripts.inc:108 +msgid "Custom scripts" +msgstr "Scripts personnalisés" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1097 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1101 +msgid "Cut" +msgstr "Couper" + +#: ../lib/modules/ddns.inc:63 +msgid "DDNS" +msgstr "DDNS" + +#: ../lib/modules/ddns.inc:377 +msgid "" +"DDNS ist not activated. You can activate it in the DHCP settings (DDNS)." +msgstr "" +"DDNS n'est pas activé. Vous pouvez l'activer dans les paramètres (DDNS) du " +"DHCP." + +#: ../lib/types/dhcp.inc:56 +msgid "DHCP" +msgstr "DHCP" + +#: ../lib/types/dhcp.inc:65 +msgid "DHCP administration" +msgstr "Administration DHCP" + +#: ../lib/types/dhcp.inc:170 +#, php-format +msgid "DHCP count: %s" +msgstr "Nombre de DHCP : %s" + +#: ../lib/types/dhcp.inc:173 ../lib/modules/dhcp_settings.inc:127 +msgid "DHCP settings" +msgstr "Paramètres DHCP" + +#: ../templates/delete.php:100 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:734 +#: ../templates/3rdParty/pla/lib/PageRender.php:110 +#: ../templates/3rdParty/pla/htdocs/compare.php:52 +#: ../templates/3rdParty/pla/htdocs/compare.php:58 +#: ../templates/3rdParty/pla/htdocs/create.php:92 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:35 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:112 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:57 ../lib/modules.inc:410 +#: ../lib/modules.inc:1956 +msgid "DN" +msgstr "DN" + +#: ../templates/3rdParty/pla/lib/import_functions.php:210 +#: ../templates/3rdParty/pla/lib/import_functions.php:222 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1866 +msgid "DN does not exist" +msgstr "le DN n'existe pas" + +#: ../templates/masscreate.php:288 +msgid "DN settings" +msgstr "Paramètres DN" + +#: ../templates/masscreate.php:317 ../help/help.inc:190 +msgid "DN suffix" +msgstr "Suffixe DN" + +#: ../lib/modules/dhcp_settings.inc:211 ../lib/modules/dhcp_settings.inc:226 +#: ../lib/modules/dhcp_settings.inc:268 ../lib/modules/dhcp_settings.inc:577 +#: ../lib/modules/dhcp_settings.inc:677 +msgid "DNS" +msgstr "DNS" + +#: ../lib/modules/dhcp_settings.inc:161 +msgid "DNS (Domain Name System)" +msgstr "DNS (Domain Name System)" + +#: ../lib/modules/bindDLZ.inc:67 +msgid "DNS entry" +msgstr "Entrée DNS" + +#: ../lib/types/bind.inc:159 +#, php-format +msgid "DNS entry count: %s" +msgstr "Nombre d'entrée DNS : %s" + +#: ../lib/modules/asteriskExtension.inc:115 +msgid "DNs of the extension owners" +msgstr "DNs des propriétaires de l'extension" + +#: ../templates/3rdParty/pla/lib/export_functions.php:343 +msgid "DSML V.1 Export" +msgstr "Export de DSML V.1" + +#: ../lib/modules/asteriskAccount.inc:273 +#: ../lib/modules/asteriskAccount.inc:362 +#: ../lib/modules/asteriskAccount.inc:627 +#: ../lib/modules/asteriskAccount.inc:1247 +msgid "DTFM flags" +msgstr "Drapeaux DTMF" + +#: ../lib/modules/asteriskAccount.inc:139 +#: ../lib/modules/asteriskAccount.inc:989 +msgid "DTMF mode" +msgstr "Mode DTMF" + +#: ../lib/modules/asteriskAccount.inc:140 +msgid "DTMF mode for SIP client configuration." +msgstr "Mode DTMF pour la configuration des clients SIP." + +#: ../templates/3rdParty/pla/htdocs/import.php:103 +msgid "Data" +msgstr "Données" + +#: ../lib/types/oracleContextType.inc:186 +#, php-format +msgid "Database count: %s" +msgstr "Nombre de bases de données : %s" + +#: ../lib/modules/pykotaUser.inc:595 ../lib/modules/pykotaUser.inc:646 +#: ../lib/modules/pykotaUser.inc:905 ../lib/modules/pykotaUser.inc:963 +#: ../lib/modules/pykotaUser.inc:995 +msgid "Date" +msgstr "Date" + +#: ../lib/modules/sambaSamAccount.inc:298 +msgid "Date after the user is able to change his password." +msgstr "Date apartir de laquelle l'utilisateur peut changer de mot de passe." + +#: ../lib/modules/mitKerberos.inc:121 ../lib/modules/sambaSamAccount.inc:300 +#: ../lib/modules/heimdalKerberos.inc:107 +msgid "Date after the user must change his password." +msgstr "" +"Date à partir de laquelle laquelle l'utilisateur doit changer de mot de " +"passe." + +#: ../lib/modules/shadowAccount.inc:178 +msgid "" +"Days before password is to expire that user is warned of pending password " +"expiration. If set value must be >0." +msgstr "" +"Afficher un message d'avertissement avant l'expiration du mot de passe. La " +"valeur en jour est soit vide soit > 0." + +#: ../templates/config/mainmanage.php:408 +msgid "Debug" +msgstr "Debug" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:592 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +#: ../lib/modules/qmailUser.inc:47 ../lib/modules/qmailUser.inc:292 +#: ../lib/modules/qmailUser.inc:1060 +msgid "Default" +msgstr "Défaut" + +#: ../templates/config/mainmanage.php:443 +msgid "Default (\\r\\n)" +msgstr "Par défaut (\\r\\n)" + +#: ../lib/modules/dhcp_settings.inc:165 ../lib/modules/dhcp_settings.inc:212 +#: ../lib/modules/dhcp_settings.inc:227 ../lib/modules/dhcp_settings.inc:274 +#: ../lib/modules/dhcp_settings.inc:579 ../lib/modules/dhcp_settings.inc:678 +msgid "Default gateway" +msgstr "Passerelle par défaut" + +#: ../templates/config/confmain.php:297 +#: ../templates/selfService/adminMain.php:485 ../help/help.inc:99 +msgid "Default language" +msgstr "Langue par défaut" + +#: ../lib/modules/asteriskAccount.inc:231 +#: ../lib/modules/asteriskAccount.inc:296 +#: ../lib/modules/asteriskAccount.inc:530 +#: ../lib/modules/asteriskAccount.inc:750 +#: ../lib/modules/asteriskAccount.inc:1012 +#: ../lib/modules/asteriskAccount.inc:1293 +msgid "Default user" +msgstr "Utilisateur par défaut" + +#: ../templates/masscreate.php:306 ../templates/masscreate.php:380 +#: ../lib/modules/customFields.inc:124 ../lib/modules/customFields.inc:2761 +msgid "Default value" +msgstr "Valeur par défaut" + +#: ../help/help.inc:159 +msgid "" +"Defines if the PHP error reporting setting from php.ini is used or the " +"setting preferred by LAM (\"E_ALL & ~E_NOTICE\"). If you do not develop LAM " +"modules please use the default. This will prevent displaying messages that " +"are useful only for developers." +msgstr "" +"Détermine si on utilise les paramètres de retour verbosité du php.ini ou " +"ceux préférés par LAM (\"E_ALL & ~E_NOTICE\"). Si vous ne développpez pas de " +"module LAM utilisez les paramètres par défaut. Cela évite l'affichage de " +"messages qui ne sont utiles qu'aux développeurs." + +#: ../lib/modules/sambaDomain.inc:118 +msgid "Defines if workstations may change their passwords." +msgstr "Définit si les postes clients peuvent changer leur mot de passe." + +#: ../lib/modules/asteriskAccount.inc:160 +msgid "" +"Defines the mailbox to check for message waiting indication (MWI) for this " +"peer." +msgstr "" +"Définit la boîte de messagerie dont il faut vérifier l'indication de message " +"en attente (WMI) sur cet hôte." + +#: ../lib/types/kolabSharedFolderType.inc:91 ../lib/modules/kolabUser.inc:116 +#: ../lib/modules/kolabUser.inc:132 ../lib/modules/kolabUser.inc:136 +#: ../lib/modules/kolabUser.inc:211 ../lib/modules/kolabUser.inc:234 +#: ../lib/modules/kolabUser.inc:359 ../lib/modules/kolabUser.inc:765 +#: ../lib/modules/kolabUser.inc:837 ../lib/modules/kolabSharedFolder.inc:138 +#: ../lib/modules/kolabSharedFolder.inc:142 +#: ../lib/modules/kolabSharedFolder.inc:226 +#: ../lib/modules/kolabSharedFolder.inc:237 +#: ../lib/modules/kolabSharedFolder.inc:320 +#: ../lib/modules/kolabSharedFolder.inc:564 +msgid "Delegates" +msgstr "Deleguer" + +#: ../lib/modules/kolabSharedFolder.inc:139 +msgid "" +"Delegates are allowed to act on behalf of the shared folder. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"Les délégataires peuvent agir en temps que dossier partagé. Cette propriété " +"est cochée lorsqu'on utilise le daemon Kolab smtp (Postfix) pour envoyer les " +"mails." + +#: ../templates/serverInfo.php:321 ../templates/serverInfo.php:390 +#: ../templates/multiEdit.php:126 ../templates/ou_edit.php:120 +#: ../templates/config/profmanage.php:273 +#: ../templates/selfService/profManage.php:238 +#: ../templates/pdfedit/pdfmain.php:209 ../templates/pdfedit/pdfmain.php:210 +#: ../templates/pdfedit/pdfmain.php:243 ../templates/delete.php:120 +#: ../templates/profedit/profilemain.php:198 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:33 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:124 +#: ../lib/modules/pykotaPrinter.inc:281 +#: ../lib/modules/sambaSamAccount.inc:1613 +#: ../lib/modules/posixAccount.inc:1688 ../lib/modules/zarafaUser.inc:1434 +#: ../lib/modules/zarafaUser.inc:1486 ../lib/modules/bindDLZ.inc:1055 +#: ../lib/modules/bindDLZ.inc:1376 ../lib/modules/kolabUser.inc:827 +#: ../lib/modules/sambaGroupMapping.inc:405 +#: ../lib/modules/ldapPublicKey.inc:262 ../lib/modules/nisnetgroup.inc:253 +#: ../lib/modules/inetOrgPerson.inc:2805 ../lib/modules/customFields.inc:2086 +#: ../lib/modules/customFields.inc:3462 ../lib/lists.inc:494 +msgid "Delete" +msgstr "Supprimer" + +#: ../templates/3rdParty/pla/htdocs/delete.php:31 +msgid "Delete DN" +msgstr "Supprimer le DN" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:30 +msgid "Delete LDAP entries" +msgstr "Supprimer les entrées LDAP" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:77 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:84 +msgid "Delete after copy (move):" +msgstr "Supprimer après copie (déplacement):" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:72 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:110 +#, php-format +msgid "Delete all %s objects" +msgstr "Supprimer les %s Objets" + +#: ../templates/config/mainmanage.php:324 +msgid "Delete all CA certificates" +msgstr "Supprimer tous les certificats d'AC" + +#: ../lib/modules/customFields.inc:624 +msgid "Delete group" +msgstr "Effacer Groupe" + +#: ../lib/modules/posixAccount.inc:1532 +msgid "Delete home directory" +msgstr "Supprimer le répertoire home" + +#: ../lib/modules/imapAccess.inc:256 +msgid "Delete mailbox" +msgstr "Supprimer la messagerie" + +#: ../templates/ou_edit.php:199 ../help/help.inc:265 +msgid "Delete organisational unit" +msgstr "Supprimer l'unité organisationnelle" + +#: ../templates/3rdParty/pla/lib/functions.php:2014 +#: ../lib/modules/inetOrgPerson.inc:1588 +msgid "Delete photo" +msgstr "supprimer la photo" + +#: ../templates/config/profmanage.php:271 +#: ../templates/config/profmanage.php:274 +#: ../templates/selfService/profManage.php:232 +#: ../templates/selfService/profManage.php:239 ../help/help.inc:134 +msgid "Delete profile" +msgstr "Supprimer le profil" + +#: ../lib/modules/range.inc:98 ../lib/modules/range.inc:116 +#: ../lib/modules/range.inc:445 +msgid "Delete range" +msgstr "Supprimer la plage" + +#: ../lib/modules/asteriskExtension.inc:316 +#: ../lib/modules/asteriskExtension.inc:339 +msgid "Delete rule" +msgstr "Supprimer la règle" + +#: ../lib/types/dhcp.inc:174 +msgid "Delete selected DHCP entries" +msgstr "Supprimer les entrées DHCP sélectionnées" + +#: ../lib/types/bind.inc:162 +msgid "Delete selected DNS entries" +msgstr "Supprimer les entrées DNS sélectionnées" + +#: ../lib/types/nisObjectType.inc:158 +msgid "Delete selected NIS objects" +msgstr "Supprimer les objets NIS sélectionnés" + +#: ../lib/types/zarafaAddressListType.inc:147 +msgid "Delete selected address lists" +msgstr "Supprimer les listes d'adresses sélectionnées" + +#: ../lib/types/mailAlias.inc:144 ../lib/types/alias.inc:144 +msgid "Delete selected aliases" +msgstr "Supprimer les Alias sélectionnés" + +#: ../lib/types/automountType.inc:218 +msgid "Delete selected automount entries" +msgstr "Supprimer les entrées automount sélectionnées" + +#: ../lib/types/pykotaBillingCodeType.inc:166 +msgid "Delete selected billing codes" +msgstr "Supprimer les comptes de facturation sélectionnés" + +#: ../lib/types/oracleContextType.inc:189 +msgid "Delete selected database entries" +msgstr "Supprimer les entrées de base de donnée sélectionnées" + +#: ../lib/types/smbDomain.inc:170 +msgid "Delete selected domains" +msgstr "Supprimer les domaines sélectionnés" + +#: ../lib/types/asteriskExt.inc:146 +msgid "Delete selected extensions" +msgstr "Supprimer les numéros sélectionnés" + +#: ../lib/types/gon.inc:205 ../lib/types/zarafaDynamicGroupType.inc:168 +#: ../lib/types/group.inc:243 ../lib/types/netgroup.inc:172 +msgid "Delete selected groups" +msgstr "Supprimer les groupes sélecttionés" + +#: ../lib/types/host.inc:196 +msgid "Delete selected hosts" +msgstr "Supprimer les hôtes sélectionnés" + +#: ../lib/lists.inc:115 +msgid "Delete selected objects" +msgstr "Supprimer les objets sélectionnés" + +#: ../lib/types/ppolicyType.inc:152 +msgid "Delete selected policies" +msgstr "Supprimer les règles sélectionnées" + +#: ../lib/types/pykotaPrinterType.inc:167 +msgid "Delete selected printers" +msgstr "Supprimer les imprimantes sélectionnés" + +#: ../lib/types/gon.inc:212 ../lib/types/group.inc:250 +msgid "Delete selected roles" +msgstr "Supprimer les rôles sudo" + +#: ../lib/types/kolabSharedFolderType.inc:144 +msgid "Delete selected shared folders" +msgstr "Supprimer les dossiers partagés sélectionnés" + +#: ../lib/types/sudo.inc:162 +msgid "Delete selected sudo roles" +msgstr "Supprimer les rôles sudo sélectionnés" + +#: ../lib/types/user.inc:532 +msgid "Delete selected users" +msgstr "Supprimer les utilisateurs sélectionnés" + +#: ../templates/3rdParty/pla/htdocs/copy.php:146 +#, php-format +msgid "Delete successful: %s" +msgstr "Effacement réussi: %s" + +#: ../lib/modules/posixAccount.inc:485 ../lib/modules/posixAccount.inc:1538 +msgid "Delete sudo rights" +msgstr "Supprimer les droits sudo" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "Delete this entry" +msgstr "Supprimer l'entrée" + +#: ../lib/modules/nisMailAliasUser.inc:156 +#: ../lib/modules/nisMailAliasUser.inc:195 +#, php-format +msgid "Delete whole alias entry which includes %s recipients." +msgstr "Supprimer tous les alias qui contiennent les destinataires %s." + +#: ../lib/modules/qmailUser.inc:44 +msgid "Deleted" +msgstr "Supprimé" + +#: ../templates/delete.php:272 +#, php-format +msgid "Deleted DN: %s" +msgstr "DN effacé: %s" + +#: ../templates/pdfedit/pdfmain.php:89 +msgid "Deleted PDF structure." +msgstr "Structure PDF effacée." + +#: ../templates/profedit/profilemain.php:103 +msgid "Deleted profile." +msgstr "Supprimer le profil." + +#: ../lib/modules/range.inc:99 +msgid "Deletes an IP range." +msgstr "Suppression d'un range IP." + +#: ../lib/modules/posixAccount.inc:486 +msgid "Deletes the user from all existing sudo rights." +msgstr "Supprime l'utilisateur de tous les droits sudo." + +#: ../templates/3rdParty/pla/htdocs/import.php:29 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:65 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:82 +msgid "Deleting" +msgstr "Suppression" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:73 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:125 +msgid "Deleting objects" +msgstr "Effacement des objets" + +#: ../lib/modules/qmailUser.inc:124 ../lib/modules/qmailUser.inc:255 +#: ../lib/modules/qmailUser.inc:382 ../lib/modules/qmailUser.inc:436 +#: ../lib/modules/qmailUser.inc:658 ../lib/modules/qmailUser.inc:899 +#: ../lib/modules/qmailUser.inc:1170 +msgid "Deletion date" +msgstr "Date de suppression" + +#: ../lib/lists.inc:1068 +msgid "Deletion was successful." +msgstr "Suppression réussie." + +#: ../lib/modules/qmailUser.inc:215 ../lib/modules/qmailUser.inc:290 +#: ../lib/modules/qmailUser.inc:403 ../lib/modules/qmailUser.inc:629 +#: ../lib/modules/qmailUser.inc:1164 +msgid "Delivery mode" +msgstr "Méthode de livraison" + +#: ../lib/modules/qmailUser.inc:122 ../lib/modules/qmailUser.inc:175 +#: ../lib/modules/qmailUser.inc:251 ../lib/modules/qmailUser.inc:374 +#: ../lib/modules/qmailUser.inc:433 ../lib/modules/qmailUser.inc:648 +#: ../lib/modules/qmailUser.inc:1150 +msgid "Delivery program" +msgstr "Programme de livraison" + +#: ../lib/modules/asteriskAccount.inc:167 +#: ../lib/modules/asteriskAccount.inc:280 +#: ../lib/modules/asteriskAccount.inc:414 +#: ../lib/modules/asteriskAccount.inc:674 +#: ../lib/modules/asteriskAccount.inc:996 +#: ../lib/modules/asteriskAccount.inc:1261 +#: ../lib/modules/dhcp_settings.inc:104 +msgid "Deny" +msgstr "Interdire" + +#: ../lib/modules/pykotaGroup.inc:65 ../lib/modules/pykotaUser.inc:65 +msgid "Deny printing" +msgstr "Refuser l'impression" + +#: ../lib/modules/inetOrgPerson.inc:162 ../lib/modules/inetOrgPerson.inc:217 +#: ../lib/modules/inetOrgPerson.inc:483 ../lib/modules/inetOrgPerson.inc:602 +#: ../lib/modules/inetOrgPerson.inc:800 ../lib/modules/inetOrgPerson.inc:804 +#: ../lib/modules/inetOrgPerson.inc:1481 ../lib/modules/inetOrgPerson.inc:1484 +#: ../lib/modules/inetOrgPerson.inc:1919 ../lib/modules/inetOrgPerson.inc:2670 +#: ../lib/modules/inetOrgPerson.inc:3547 ../lib/modules/inetOrgPerson.inc:3587 +msgid "Department" +msgstr "Services" + +#: ../lib/modules/kolabGroup.inc:105 ../lib/modules/kolabGroup.inc:109 +#: ../lib/modules/kolabUser.inc:162 ../lib/modules/kolabUser.inc:166 +#: ../lib/modules/kolabSharedFolder.inc:130 +#: ../lib/modules/kolabSharedFolder.inc:134 +msgid "" +"Describes the allowed or disallowed SMTP addresses sending mail to this " +"account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "" +"Décrit les adresses SMTP autorisées ou non à écrire à ce compte (ex \"domain." +"tld\" ou \"-user@domain.tld\")." + +#: ../lib/modules/kolabGroup.inc:96 ../lib/modules/kolabGroup.inc:100 +#: ../lib/modules/kolabUser.inc:153 ../lib/modules/kolabUser.inc:157 +#: ../lib/modules/kolabSharedFolder.inc:121 +#: ../lib/modules/kolabSharedFolder.inc:125 +msgid "" +"Describes the allowed or disallowed SMTP recipient addresses for mail sent " +"by this account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "" +"Décrit les adresses SMTP de destination autorisées ou non pour les mails " +"envoyés par ce compte (ex \"domain.tld\" ou \"-user@domain.tld\")." + +#: ../templates/schema/schema.php:89 ../templates/schema/schema.php:143 +#: ../templates/schema/schema.php:346 +#: ../templates/3rdParty/pla/lib/functions.php:1898 +#: ../templates/3rdParty/pla/lib/functions.php:1902 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:139 +#: ../templates/3rdParty/pla/htdocs/import.php:101 +#: ../lib/types/automountType.inc:88 ../lib/types/nisObjectType.inc:80 +#: ../lib/types/oracleContextType.inc:79 +#: ../lib/types/pykotaBillingCodeType.inc:92 ../lib/types/user.inc:101 +#: ../lib/types/pykotaPrinterType.inc:92 ../lib/types/sudo.inc:84 +#: ../lib/types/dhcp.inc:96 ../lib/types/netgroup.inc:92 +#: ../lib/modules/pykotaPrinter.inc:99 ../lib/modules/pykotaPrinter.inc:153 +#: ../lib/modules/pykotaPrinter.inc:194 ../lib/modules/pykotaPrinter.inc:248 +#: ../lib/modules/pykotaPrinter.inc:585 ../lib/modules/account.inc:82 +#: ../lib/modules/account.inc:95 ../lib/modules/account.inc:105 +#: ../lib/modules/account.inc:113 ../lib/modules/account.inc:218 +#: ../lib/modules/account.inc:229 ../lib/modules/windowsHost.inc:78 +#: ../lib/modules/windowsHost.inc:101 ../lib/modules/windowsHost.inc:120 +#: ../lib/modules/windowsHost.inc:143 ../lib/modules/windowsHost.inc:289 +#: ../lib/modules/posixGroup.inc:201 ../lib/modules/posixGroup.inc:430 +#: ../lib/modules/posixGroup.inc:484 ../lib/modules/posixGroup.inc:577 +#: ../lib/modules/device.inc:81 ../lib/modules/device.inc:115 +#: ../lib/modules/device.inc:130 ../lib/modules/device.inc:173 +#: ../lib/modules/device.inc:421 ../lib/modules/dhcp_settings.inc:197 +#: ../lib/modules/dhcp_settings.inc:217 ../lib/modules/dhcp_settings.inc:307 +#: ../lib/modules/dhcp_settings.inc:620 ../lib/modules/dhcp_settings.inc:684 +#: ../lib/modules/pykotaGroup.inc:117 ../lib/modules/pykotaGroup.inc:166 +#: ../lib/modules/pykotaGroup.inc:188 ../lib/modules/pykotaGroup.inc:233 +#: ../lib/modules/pykotaGroup.inc:468 ../lib/modules/posixAccount.inc:556 +#: ../lib/modules/windowsUser.inc:119 ../lib/modules/windowsUser.inc:308 +#: ../lib/modules/windowsUser.inc:500 ../lib/modules/windowsUser.inc:705 +#: ../lib/modules/windowsUser.inc:1588 ../lib/modules/nisObject.inc:73 +#: ../lib/modules/nisObject.inc:103 ../lib/modules/nisObject.inc:114 +#: ../lib/modules/nisObject.inc:155 ../lib/modules/nisObject.inc:212 +#: ../lib/modules/sambaGroupMapping.inc:114 +#: ../lib/modules/sambaGroupMapping.inc:542 ../lib/modules/pykotaUser.inc:120 +#: ../lib/modules/pykotaUser.inc:226 ../lib/modules/pykotaUser.inc:277 +#: ../lib/modules/pykotaUser.inc:413 ../lib/modules/pykotaUser.inc:892 +#: ../lib/modules/automount.inc:72 ../lib/modules/automount.inc:95 +#: ../lib/modules/automount.inc:105 ../lib/modules/automount.inc:132 +#: ../lib/modules/automount.inc:183 ../lib/modules/nisnetgroup.inc:87 +#: ../lib/modules/nisnetgroup.inc:140 ../lib/modules/nisnetgroup.inc:199 +#: ../lib/modules/nisnetgroup.inc:580 ../lib/modules/inetOrgPerson.inc:163 +#: ../lib/modules/inetOrgPerson.inc:175 ../lib/modules/inetOrgPerson.inc:329 +#: ../lib/modules/inetOrgPerson.inc:542 ../lib/modules/inetOrgPerson.inc:632 +#: ../lib/modules/inetOrgPerson.inc:1207 ../lib/modules/inetOrgPerson.inc:1210 +#: ../lib/modules/inetOrgPerson.inc:1890 ../lib/modules/inetOrgPerson.inc:2765 +#: ../lib/modules/inetOrgPerson.inc:3509 ../lib/modules/inetOrgPerson.inc:3576 +#: ../lib/modules/sudoRole.inc:70 ../lib/modules/sudoRole.inc:153 +#: ../lib/modules/sudoRole.inc:215 ../lib/modules/sudoRole.inc:305 +#: ../lib/modules/sudoRole.inc:805 ../lib/modules/oracleService.inc:69 +#: ../lib/modules/oracleService.inc:92 ../lib/modules/oracleService.inc:100 +#: ../lib/modules/oracleService.inc:122 ../lib/modules/oracleService.inc:172 +#: ../lib/modules/organizationalRole.inc:89 +#: ../lib/modules/organizationalRole.inc:123 +#: ../lib/modules/organizationalRole.inc:141 +#: ../lib/modules/organizationalRole.inc:163 +#: ../lib/modules/organizationalRole.inc:189 +#: ../lib/modules/organizationalRole.inc:453 ../lib/modules/fixed_ip.inc:110 +#: ../lib/modules/fixed_ip.inc:433 ../lib/modules/fixed_ip.inc:744 +#: ../lib/modules/pykotaBillingCode.inc:81 +#: ../lib/modules/pykotaBillingCode.inc:109 +#: ../lib/modules/pykotaBillingCode.inc:116 +#: ../lib/modules/pykotaBillingCode.inc:159 +#: ../lib/modules/pykotaBillingCode.inc:262 +#: ../lib/modules/windowsGroup.inc:118 ../lib/modules/windowsGroup.inc:183 +#: ../lib/modules/windowsGroup.inc:258 ../lib/modules/windowsGroup.inc:301 +#: ../lib/modules/windowsGroup.inc:746 ../lib/modules/groupOfNames.inc:89 +#: ../lib/modules/groupOfNames.inc:135 ../lib/modules/groupOfNames.inc:171 +#: ../lib/modules/groupOfNames.inc:199 ../lib/modules/groupOfNames.inc:235 +#: ../lib/modules/groupOfNames.inc:694 +msgid "Description" +msgstr "Description" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "Destination DN" +msgstr "DN de destination" + +#: ../lib/modules/device.inc:45 +msgid "Device" +msgstr "Matériel" + +#: ../lib/modules/sambaSamAccount.inc:393 +#: ../lib/modules/sambaSamAccount.inc:584 +msgid "Disable LM hashes" +msgstr "Désactiver les hachages LM" + +#: ../lib/modules/ddns.inc:89 ../lib/modules/ddns.inc:370 +msgid "Disable client updates" +msgstr "Désactiver les mises à jour clients" + +#: ../lib/modules/posixGroup.inc:417 ../lib/modules/posixGroup.inc:533 +msgid "Disable membership management" +msgstr "Désactive la gestion des appartenances" + +#: ../lib/modules/qmailUser.inc:43 +msgid "Disabled" +msgstr "Désactivé" + +#: ../lib/modules/ddns.inc:90 +msgid "Disables the client to update DNS entries." +msgstr "Désactive le client pour mettre à jour les entrées DNS." + +#: ../lib/modules/posixGroup.inc:534 +msgid "Disables the group membership management." +msgstr "Désactive la gestion des appartenances de groupe." + +#: ../lib/modules/mitKerberos.inc:172 +msgid "" +"Disables user-to-user authentication for this principal by prohibiting this " +"principal from obtaining a session key for another user." +msgstr "" +"Désactive l'authentification d'utilisateur-à-utilisateur pour ce principal " +"en lui interdisant d'obtenir une clé de session au nom d'un autre." + +#: ../lib/modules/heimdalKerberos.inc:130 +#: ../lib/modules/heimdalKerberos.inc:378 +msgid "Disallow TGT-based tickets" +msgstr "Refuse les tickets basés sur TGT" + +#: ../lib/modules/mitKerberos.inc:174 ../lib/modules/mitKerberos.inc:452 +#: ../lib/modules/heimdalKerberos.inc:148 +#: ../lib/modules/heimdalKerberos.inc:383 +msgid "Disallow all tickets" +msgstr "Refuse tous les tickets" + +#: ../templates/config/conftypes.php:317 ../help/help.inc:178 +msgid "Disallow delete" +msgstr "Interdire la suppression" + +#: ../lib/modules/mitKerberos.inc:162 ../lib/modules/mitKerberos.inc:422 +#: ../lib/modules/heimdalKerberos.inc:133 +#: ../lib/modules/heimdalKerberos.inc:353 +msgid "Disallow forwardable tickets" +msgstr "Refuse les tickets forwardables" + +#: ../lib/modules/mitKerberos.inc:159 ../lib/modules/mitKerberos.inc:437 +#: ../lib/modules/heimdalKerberos.inc:142 +#: ../lib/modules/heimdalKerberos.inc:368 +msgid "Disallow post-dated tickets" +msgstr "Refuse les tickets anti-datés" + +#: ../lib/modules/mitKerberos.inc:168 ../lib/modules/mitKerberos.inc:427 +#: ../lib/modules/heimdalKerberos.inc:136 +#: ../lib/modules/heimdalKerberos.inc:358 +msgid "Disallow proxiable tickets" +msgstr "Refuse les tickets \"proxiables\"" + +#: ../lib/modules/mitKerberos.inc:165 ../lib/modules/mitKerberos.inc:432 +#: ../lib/modules/heimdalKerberos.inc:139 +#: ../lib/modules/heimdalKerberos.inc:363 +msgid "Disallow renewable tickets" +msgstr "Refuse les tickets renouvelables" + +#: ../lib/modules/mitKerberos.inc:186 ../lib/modules/mitKerberos.inc:442 +#: ../lib/modules/heimdalKerberos.inc:145 +#: ../lib/modules/heimdalKerberos.inc:373 +msgid "Disallow service tickets" +msgstr "Refuse les tickets de service" + +#: ../lib/modules/mitKerberos.inc:171 ../lib/modules/mitKerberos.inc:447 +msgid "Disallow user-to-user authentication" +msgstr "Interdit l'authentification d'utilisateur-a-utilisateur" + +#: ../lib/modules/asteriskAccount.inc:199 +#: ../lib/modules/asteriskAccount.inc:288 +#: ../lib/modules/asteriskAccount.inc:472 +#: ../lib/modules/asteriskAccount.inc:709 +#: ../lib/modules/asteriskAccount.inc:1004 +#: ../lib/modules/asteriskAccount.inc:1277 +msgid "Disallowed codec" +msgstr "Codec refusé" + +#: ../lib/modules/sambaDomain.inc:113 ../lib/modules/sambaDomain.inc:193 +#: ../lib/modules/sambaDomain.inc:299 ../lib/modules/sambaDomain.inc:621 +msgid "Disconnect users outside logon hours" +msgstr "Déconnecte les utlisateurs en dehors des heures de connexion" + +#: ../lib/modules/sambaSamAccount.inc:237 +#: ../lib/modules/sambaSamAccount.inc:1523 +#: ../lib/modules/sambaSamAccount.inc:1927 +msgid "Disconnection time limit" +msgstr "Temps limite de déconnexion" + +#: ../lib/modules/sambaDomain.inc:114 +msgid "Disconnects users if they are logged in outside logon hours." +msgstr "" +"Déconnecte les utilisateurs si ils sont connectés en dehors des heures " +"autorisées." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +#: ../lib/modules/organizationalRole.inc:106 +#: ../lib/modules/organizationalRole.inc:153 +#: ../lib/modules/groupOfNames.inc:118 ../lib/modules/groupOfNames.inc:187 +msgid "Display format" +msgstr "Format d'affichage" + +#: ../lib/modules/customFields.inc:176 ../lib/modules/customFields.inc:509 +msgid "Display multiple groups as accordion" +msgstr "Affiche les groupes multiples en accordéon" + +#: ../lib/modules/sambaSamAccount.inc:111 +#: ../lib/modules/sambaSamAccount.inc:209 +#: ../lib/modules/sambaSamAccount.inc:258 +#: ../lib/modules/sambaSamAccount.inc:419 +#: ../lib/modules/sambaSamAccount.inc:1138 +#: ../lib/modules/sambaSamAccount.inc:1899 ../lib/modules/windowsUser.inc:123 +#: ../lib/modules/windowsUser.inc:296 ../lib/modules/windowsUser.inc:474 +#: ../lib/modules/windowsUser.inc:501 ../lib/modules/windowsUser.inc:595 +#: ../lib/modules/windowsUser.inc:703 ../lib/modules/windowsUser.inc:1589 +#: ../lib/modules/sambaGroupMapping.inc:112 +#: ../lib/modules/sambaGroupMapping.inc:146 +#: ../lib/modules/sambaGroupMapping.inc:359 +#: ../lib/modules/sambaGroupMapping.inc:540 +msgid "Display name" +msgstr "Nom pour l'affichage" + +#: ../templates/lists/changePassword.php:317 +msgid "Display on screen" +msgstr "Afficher à l'écran" + +#: ../templates/3rdParty/pla/htdocs/create.php:97 +msgid "Display the created entry" +msgstr "Afficher la nouvelle entrée" + +#: ../lib/modules.inc:503 +msgid "" +"Displayed account numbers start at \"0\". Add 2 to get the row in your " +"spreadsheet." +msgstr "" +"Numéros de comptes affichés commencent à \"0\".Ajoute 2 pour obtenir la " +"ligne dans le tableur" + +#: ../lib/modules/windowsGroup.inc:61 +msgid "Distribution" +msgstr "Distribution" + +#: ../lib/modules/passwordSelfReset.inc:140 +#: ../lib/modules/passwordSelfReset.inc:545 +msgid "Do not ask security question" +msgstr "Ne pas poser la questions de sécurité" + +#: ../templates/ou_edit.php:112 +msgid "Do you really want to delete this OU?" +msgstr "Voulez vous vraiment supprimer cette OU ?" + +#: ../templates/pdfedit/pdfmain.php:351 +msgid "Do you really want to delete this PDF structure?" +msgstr "Voulez-vous vraiment supprimer cette structure PDF ?" + +#: ../templates/profedit/profilemain.php:319 +msgid "Do you really want to delete this profile?" +msgstr "Voulez vous vraiment supprimer ce profil ?" + +#: ../lib/modules/kolabGroup.inc:285 ../lib/modules/kolabUser.inc:515 +#: ../lib/modules/kolabSharedFolder.inc:425 +msgid "Do you really want to mark this account for deletion?" +msgstr "Voulez vous vraiment marquer ce compte pour suppression ?" + +#: ../lib/modules/qmailGroup.inc:273 +msgid "Do you really want to post to this mailinglist?" +msgstr "Souhaitez-vous réellement envoyer à cette liste de diffusion ?" + +#: ../templates/delete.php:94 +msgid "Do you really want to remove the following accounts?" +msgstr "Voulez-vous vraiment supprimer le(s) compte(s) suivant(s) ?" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:59 +msgid "Do you want to create this entry?" +msgstr "Voulez-vous créer cette entrée ?" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:36 +msgid "Do you want to make these changes?" +msgstr "Voulez vous effectuer ces modifications ?" + +#: ../lib/modules/sambaSamAccount.inc:210 +#: ../lib/modules/sambaSamAccount.inc:336 +#: ../lib/modules/sambaSamAccount.inc:412 +#: ../lib/modules/sambaSamAccount.inc:536 +#: ../lib/modules/sambaSamAccount.inc:1280 +#: ../lib/modules/sambaSamAccount.inc:1774 +#: ../lib/modules/sambaSamAccount.inc:1796 +#: ../lib/modules/sambaSamAccount.inc:1905 ../lib/modules/windowsUser.inc:111 +#: ../lib/modules/windowsUser.inc:1656 +#: ../lib/modules/sambaGroupMapping.inc:158 +#: ../lib/modules/sambaGroupMapping.inc:386 +#: ../lib/modules/sambaGroupMapping.inc:576 ../lib/modules/nisnetgroup.inc:223 +#: ../lib/modules/nisnetgroup.inc:587 +msgid "Domain" +msgstr "Domaine" + +#: ../lib/modules/sambaSamAccount.inc:84 +msgid "Domain KRBTGT" +msgstr "Domaine KRBTGT" + +#: ../lib/types/smbDomain.inc:91 ../lib/modules/sambaDomain.inc:81 +#: ../lib/modules/sambaDomain.inc:151 ../lib/modules/sambaDomain.inc:185 +#: ../lib/modules/sambaDomain.inc:256 ../lib/modules/sambaDomain.inc:261 +#: ../lib/modules/sambaDomain.inc:600 +msgid "Domain SID" +msgstr "SID du Domaine" + +#: ../lib/modules/sambaGroupMapping.inc:125 +#: ../lib/modules/windowsGroup.inc:178 ../lib/modules/windowsGroup.inc:185 +#: ../lib/modules/windowsGroup.inc:191 +msgid "Domain administrators" +msgstr "Administrateurs de domaine" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:60 +#: ../lib/modules/sambaGroupMapping.inc:131 +msgid "Domain admins" +msgstr "Admins du Domaine" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:65 +msgid "Domain certificate admins" +msgstr "Admins de certificats du Domaine" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaSamAccount.inc:806 +#: ../lib/modules/sambaGroupMapping.inc:63 +msgid "Domain computers" +msgstr "Ordinateurs du Domaine" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:64 +msgid "Domain controllers" +msgstr "Controleurs de Domaine" + +#: ../lib/types/smbDomain.inc:167 +#, php-format +msgid "Domain count: %s" +msgstr "Nombre de domaines : %s" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:67 +msgid "Domain enterprise admins" +msgstr "Admins domaine de la société" + +#: ../lib/modules/sambaGroupMapping.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:377 +msgid "Domain group" +msgstr "Groupes de Domaine" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:62 +msgid "Domain guests" +msgstr "Invités du Domaine" + +#: ../lib/modules/windowsGroup.inc:64 +msgid "Domain local" +msgstr "Domaine local" + +#: ../lib/types/smbDomain.inc:92 ../lib/modules/dhcp_settings.inc:145 +#: ../lib/modules/dhcp_settings.inc:208 ../lib/modules/dhcp_settings.inc:223 +#: ../lib/modules/dhcp_settings.inc:250 ../lib/modules/dhcp_settings.inc:567 +#: ../lib/modules/dhcp_settings.inc:674 ../lib/modules/nisnetgroup.inc:154 +#: ../lib/modules/sambaDomain.inc:77 ../lib/modules/sambaDomain.inc:144 +#: ../lib/modules/sambaDomain.inc:184 ../lib/modules/sambaDomain.inc:241 +#: ../lib/modules/sambaDomain.inc:246 ../lib/modules/sambaDomain.inc:599 +msgid "Domain name" +msgstr "Nom du Domaine" + +#: ../lib/modules/nisnetgroup.inc:154 ../lib/modules/sambaDomain.inc:208 +#: ../lib/modules/sambaDomain.inc:209 +msgid "Domain name is invalid!" +msgstr "Le nom de domaine n'est pas valable !" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:68 +msgid "Domain policy admins" +msgstr "Admins de la stratégie du Domaine" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:66 +msgid "Domain schema admins" +msgstr "Admins de schema de Domaine" + +#: ../lib/modules/sambaSamAccount.inc:79 +#: ../lib/modules/sambaSamAccount.inc:2168 +#: ../lib/modules/sambaGroupMapping.inc:61 +msgid "Domain users" +msgstr "Utilisateurs du Domaine" + +#: ../lib/modules/windowsUser.inc:240 ../lib/modules/windowsUser.inc:557 +msgid "Domains" +msgstr "Domaines" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:43 +msgid "Don't stop on errors" +msgstr "Continuer en cas d'erreurs" + +#: ../templates/pdfedit/pdfpage.php:475 +msgid "Down" +msgstr "Descendre" + +#: ../templates/config/mainmanage.php:321 +msgid "Download CA certificates" +msgstr "Télécharger les certificats d'AC" + +#: ../templates/masscreate.php:256 +msgid "Download sample CSV file" +msgstr "Télécharger un exemple de fichier CSV" + +#: ../templates/multiEdit.php:162 +msgid "Dry run" +msgstr "Execution \"à blanc\"" + +#: ../templates/multiEdit.php:437 +msgid "DryRun finished." +msgstr "Exécution \"à blanc\" terminée." + +#: ../templates/serverInfo.php:124 +msgid "Dynamic subtrees" +msgstr "Sous-arbres dynamiques " + +#: ../lib/modules/eduPerson.inc:72 +msgid "EDU person" +msgstr "Personne EDU" + +#: ../lib/modules/selfRegistration.inc:80 +msgid "" +"Each line represents one LDAP attribute. Please see the manual for a syntax " +"description." +msgstr "" +"Chaque ligne représente un attribut LDAP. Veuillez vous référer au manuel " +"pour une description de la syntaxe." + +#: ../lib/modules/sambaSamAccount.inc:574 +msgid "East Australian Standard, Guam" +msgstr "East Australian Standard, Guam" + +#: ../lib/modules/sambaSamAccount.inc:566 +msgid "Eastern Europe Time, South Africa" +msgstr "Eastern Europe Time, South Africa" + +#: ../lib/modules/sambaSamAccount.inc:559 +msgid "Eastern Time (US & Canada), Bogota" +msgstr "Eastern Time (US & Canada), Bogota" + +#: ../templates/pdfedit/pdfmain.php:206 +#: ../templates/profedit/profilemain.php:195 +#: ../lib/modules/sambaSamAccount.inc:1285 +#: ../lib/modules/sambaSamAccount.inc:1290 ../lib/lists.inc:488 +msgid "Edit" +msgstr "Modifier" + +#: ../lib/modules.inc:1349 +msgid "Edit again" +msgstr "Modifier à nouveau" + +#: ../templates/config/mainmanage.php:228 ../templates/config/index.php:99 +msgid "Edit general settings" +msgstr "Editer les paramètres globaux" + +#: ../lib/modules/posixAccount.inc:1454 ../lib/modules/windowsUser.inc:786 +msgid "Edit groups" +msgstr "éditer les groupes" + +#: ../lib/modules/posixGroup.inc:223 ../lib/modules/windowsGroup.inc:382 +msgid "Edit members" +msgstr "éditer les membres" + +#: ../templates/config/index.php:125 +msgid "Edit self service" +msgstr "Editer le self-service" + +#: ../templates/config/index.php:111 +msgid "Edit server profiles" +msgstr "Editer les profils" + +#: ../lib/modules/nisnetgroup.inc:208 +msgid "Edit subgroups" +msgstr "Modifier les sous-groupes" + +#: ../lib/modules/sambaSamAccount.inc:1241 +msgid "Edit workstations" +msgstr "éditer les machines de travail" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1872 +#: ../lib/types/zarafaDynamicGroupType.inc:92 ../lib/types/user.inc:100 +#: ../lib/modules/zarafaDynamicGroup.inc:243 +#: ../lib/modules/zarafaDynamicGroup.inc:248 +#: ../lib/modules/zarafaGroup.inc:234 ../lib/modules/zarafaGroup.inc:241 +#: ../lib/modules/passwordSelfReset.inc:500 +#: ../lib/modules/nisMailAlias.inc:344 +msgid "Email" +msgstr "mail" + +#: ../lib/modules/inetOrgPerson.inc:79 +#, php-format +msgid "Email \"%s\" already in use." +msgstr "Le mail \"%s\" existe déjà." + +#: ../templates/lists/changePassword.php:283 ../lib/modules/kolabGroup.inc:87 +#: ../lib/modules/kolabGroup.inc:91 ../lib/modules/kolabGroup.inc:155 +#: ../lib/modules/kolabGroup.inc:168 ../lib/modules/kolabGroup.inc:177 +#: ../lib/modules/kolabGroup.inc:179 ../lib/modules/kolabGroup.inc:202 +#: ../lib/modules/kolabGroup.inc:423 ../lib/modules/selfRegistration.inc:400 +#: ../lib/modules/selfRegistration.inc:482 +#: ../lib/modules/zarafaDynamicGroup.inc:67 +#: ../lib/modules/zarafaDynamicGroup.inc:68 +#: ../lib/modules/zarafaDynamicGroup.inc:124 +#: ../lib/modules/zarafaDynamicGroup.inc:166 +#: ../lib/modules/zarafaDynamicGroup.inc:200 +#: ../lib/modules/zarafaDynamicGroup.inc:448 ../lib/modules/qmailUser.inc:199 +#: ../lib/modules/qmailUser.inc:299 ../lib/modules/qmailUser.inc:406 +#: ../lib/modules/qmailUser.inc:448 ../lib/modules/qmailUser.inc:492 +#: ../lib/modules/qmailUser.inc:1139 ../lib/modules/zarafaGroup.inc:69 +#: ../lib/modules/zarafaGroup.inc:70 ../lib/modules/zarafaGroup.inc:170 +#: ../lib/modules/zarafaGroup.inc:200 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:648 ../lib/modules/windowsUser.inc:140 +#: ../lib/modules/windowsUser.inc:350 ../lib/modules/windowsUser.inc:475 +#: ../lib/modules/windowsUser.inc:505 ../lib/modules/windowsUser.inc:607 +#: ../lib/modules/windowsUser.inc:716 ../lib/modules/windowsUser.inc:1593 +#: ../lib/modules/pykotaUser.inc:116 ../lib/modules/pykotaUser.inc:218 +#: ../lib/modules/pykotaUser.inc:274 ../lib/modules/pykotaUser.inc:319 +#: ../lib/modules/pykotaUser.inc:409 ../lib/modules/pykotaUser.inc:890 +#: ../lib/modules/inetOrgPerson.inc:78 ../lib/modules/inetOrgPerson.inc:79 +#: ../lib/modules/inetOrgPerson.inc:157 ../lib/modules/inetOrgPerson.inc:211 +#: ../lib/modules/inetOrgPerson.inc:449 ../lib/modules/inetOrgPerson.inc:584 +#: ../lib/modules/inetOrgPerson.inc:720 ../lib/modules/inetOrgPerson.inc:724 +#: ../lib/modules/inetOrgPerson.inc:1414 ../lib/modules/inetOrgPerson.inc:1417 +#: ../lib/modules/inetOrgPerson.inc:1903 ../lib/modules/inetOrgPerson.inc:2456 +#: ../lib/modules/inetOrgPerson.inc:3537 ../lib/modules/inetOrgPerson.inc:3584 +#: ../lib/modules/kolabSharedFolder.inc:116 +#: ../lib/modules/kolabSharedFolder.inc:181 +#: ../lib/modules/kolabSharedFolder.inc:239 +#: ../lib/modules/kolabSharedFolder.inc:259 +#: ../lib/modules/kolabSharedFolder.inc:281 +#: ../lib/modules/kolabSharedFolder.inc:558 +#: ../lib/modules/asteriskVoicemail.inc:107 +#: ../lib/modules/asteriskVoicemail.inc:140 +#: ../lib/modules/asteriskVoicemail.inc:178 +#: ../lib/modules/asteriskVoicemail.inc:254 +#: ../lib/modules/asteriskVoicemail.inc:374 ../lib/modules/qmailGroup.inc:123 +#: ../lib/modules/qmailGroup.inc:127 ../lib/modules/qmailGroup.inc:240 +#: ../lib/modules/qmailGroup.inc:371 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:457 ../lib/modules/qmailGroup.inc:1056 +#: ../lib/modules/imapAccess.inc:232 ../lib/modules/passwordSelfReset.inc:849 +#: ../lib/modules/passwordSelfReset.inc:1020 +#: ../lib/modules/windowsGroup.inc:126 ../lib/modules/windowsGroup.inc:165 +#: ../lib/modules/windowsGroup.inc:219 ../lib/modules/windowsGroup.inc:265 +#: ../lib/modules/windowsGroup.inc:285 ../lib/modules/windowsGroup.inc:303 +#: ../lib/modules/windowsGroup.inc:748 +msgid "Email address" +msgstr "Adresse mail" + +#: ../lib/modules/kolabGroup.inc:179 ../lib/modules/kolabGroup.inc:180 +msgid "Email address already exists." +msgstr "L'adresse mail existe déjà." + +#: ../lib/modules/asteriskVoicemail.inc:108 +msgid "Email address for this voicemail account." +msgstr "Adresse mail pour cette boîte vocale." + +#: ../lib/modules/qmailGroup.inc:221 ../lib/modules/qmailGroup.inc:225 +msgid "Email addresses that are allowed to send to this list." +msgstr "Les adresses mail autorisées à écrire à cette liste." + +#: ../lib/modules/qmailGroup.inc:205 ../lib/modules/qmailGroup.inc:209 +msgid "Email addresses that are member of this list." +msgstr "Les adresses mail membres de cette liste." + +#: ../lib/modules/qmailGroup.inc:213 ../lib/modules/qmailGroup.inc:217 +msgid "Email addresses that moderate this list (e.g. approve mails)." +msgstr "" +"Les adresses mail des modérateurs de cette liste (ex : pour aprouver les " +"mails)." + +#: ../lib/modules/zarafaContact.inc:83 ../lib/modules/zarafaUser.inc:124 +#: ../lib/modules/windowsUser.inc:227 ../lib/modules/windowsUser.inc:231 +#: ../lib/modules/windowsUser.inc:356 ../lib/modules/windowsUser.inc:476 +#: ../lib/modules/windowsUser.inc:506 ../lib/modules/windowsUser.inc:609 +#: ../lib/modules/windowsUser.inc:717 ../lib/modules/windowsUser.inc:1594 +#: ../lib/modules/kolabUser.inc:140 ../lib/modules/kolabSharedFolder.inc:146 +msgid "Email alias" +msgstr "Alias mail" + +#: ../lib/modules/zarafaContact.inc:84 ../lib/modules/zarafaUser.inc:125 +#: ../lib/modules/windowsUser.inc:228 ../lib/modules/windowsUser.inc:232 +#: ../lib/modules/kolabUser.inc:141 ../lib/modules/kolabSharedFolder.inc:147 +msgid "Email alias for this account." +msgstr "Alias mail pour ce compte." + +#: ../lib/modules/zarafaContact.inc:185 ../lib/modules/zarafaContact.inc:186 +#: ../lib/modules/zarafaUser.inc:417 ../lib/modules/zarafaUser.inc:418 +#: ../lib/modules/windowsUser.inc:609 ../lib/modules/windowsUser.inc:610 +#: ../lib/modules/kolabUser.inc:247 ../lib/modules/kolabSharedFolder.inc:254 +msgid "Email alias is invalid!" +msgstr "Alias maill incorrecte !" + +#: ../lib/modules/kolabUser.inc:144 ../lib/modules/kolabSharedFolder.inc:150 +msgid "Email alias list" +msgstr "Liste d'alias mail" + +#: ../lib/modules/kolabUser.inc:248 ../lib/modules/kolabSharedFolder.inc:255 +msgid "Email alias list has invalid format!" +msgstr "La Liste d'alias mail a un format incorrecte !" + +#: ../lib/types/kolabSharedFolderType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:97 +#: ../lib/modules/zarafaDynamicGroup.inc:71 +#: ../lib/modules/zarafaDynamicGroup.inc:75 +#: ../lib/modules/zarafaDynamicGroup.inc:130 +#: ../lib/modules/zarafaDynamicGroup.inc:167 +#: ../lib/modules/zarafaDynamicGroup.inc:258 +#: ../lib/modules/zarafaDynamicGroup.inc:451 +#: ../lib/modules/zarafaContact.inc:143 ../lib/modules/zarafaContact.inc:176 +#: ../lib/modules/zarafaContact.inc:207 ../lib/modules/zarafaContact.inc:566 +#: ../lib/modules/zarafaGroup.inc:73 ../lib/modules/zarafaGroup.inc:77 +#: ../lib/modules/zarafaGroup.inc:162 ../lib/modules/zarafaGroup.inc:197 +#: ../lib/modules/zarafaGroup.inc:252 ../lib/modules/zarafaGroup.inc:649 +#: ../lib/modules/zarafaUser.inc:188 ../lib/modules/zarafaUser.inc:370 +#: ../lib/modules/zarafaUser.inc:385 ../lib/modules/zarafaUser.inc:443 +#: ../lib/modules/zarafaUser.inc:1235 ../lib/modules/zarafaUser.inc:1497 +#: ../lib/modules/zarafaUser.inc:1809 ../lib/modules/kolabUser.inc:205 +#: ../lib/modules/kolabUser.inc:233 ../lib/modules/kolabUser.inc:351 +#: ../lib/modules/kolabUser.inc:764 ../lib/modules/kolabSharedFolder.inc:220 +#: ../lib/modules/kolabSharedFolder.inc:236 +#: ../lib/modules/kolabSharedFolder.inc:312 +#: ../lib/modules/kolabSharedFolder.inc:563 +msgid "Email aliases" +msgstr "Alias mail" + +#: ../templates/config/mainmanage.php:446 ../help/help.inc:156 +msgid "Email format" +msgstr "Format de mail" + +#: ../lib/modules/inetOrgPerson.inc:345 ../lib/modules/inetOrgPerson.inc:614 +#: ../lib/modules/inetOrgPerson.inc:832 ../lib/modules/inetOrgPerson.inc:1455 +#: ../lib/modules/inetOrgPerson.inc:1458 ../lib/modules/inetOrgPerson.inc:1914 +#: ../lib/modules/inetOrgPerson.inc:3555 ../lib/modules/inetOrgPerson.inc:3589 +#: ../lib/modules/passwordSelfReset.inc:503 +#: ../lib/modules/passwordSelfReset.inc:855 +#: ../lib/modules/passwordSelfReset.inc:1025 +msgid "Employee number" +msgstr "Matricule de l'employé" + +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:229 +#: ../lib/modules/inetOrgPerson.inc:353 ../lib/modules/inetOrgPerson.inc:596 +#: ../lib/modules/inetOrgPerson.inc:652 ../lib/modules/inetOrgPerson.inc:1464 +#: ../lib/modules/inetOrgPerson.inc:1467 ../lib/modules/inetOrgPerson.inc:1912 +#: ../lib/modules/inetOrgPerson.inc:3543 ../lib/modules/inetOrgPerson.inc:3586 +msgid "Employee type" +msgstr "Type d'employé" + +#: ../lib/modules/inetOrgPerson.inc:653 +msgid "Employee type: Contractor, Employee, Intern, Temp, External, ..." +msgstr "Type employé: Contrat,Employé,Interne,Temporaire,Externe,..." + +#: ../templates/lists/changePassword.php:505 +#: ../templates/lists/changePassword.php:512 ../templates/login.php:543 +msgid "Empty password submitted. Please try again." +msgstr "Vous n'avez pas fourni de mot de passe. Veuillez ré-essayer." + +#: ../lib/modules/passwordSelfReset.inc:96 +#: ../lib/modules/passwordSelfReset.inc:490 +msgid "Enable password self reset link" +msgstr "Activer le lien vers le self-service de mot de passe" + +#: ../lib/modules/selfRegistration.inc:53 +#: ../lib/modules/selfRegistration.inc:190 +msgid "Enable self registration link" +msgstr "Activer le lien d'auto-enregistremement" + +#: ../lib/modules/customFields.inc:153 +msgid "" +"Enables auto-completion for this field. All existing values of this " +"attribute will be offered as auto-complete values." +msgstr "" +"Activer l'auto-complétion pour ce champ. Toutes les valeurs existantes de ce " +"champ seront utiliser pour l'auto-complétion." + +#: ../lib/modules/ppolicy.inc:97 +msgid "" +"Enables quality checking (e.g. password length) of passwords. If set to " +"\"force\" then you need to disable password hashing in your LAM server " +"profile to change passwords with LAM." +msgstr "" +"Activer la vérification de qualité du mot de passe ( ex : longueur). Si " +"\"forcer\" est sélectionné, vous devez désactiver le hachage de mot de passe " +"dans le profil du serveur LAM pour pouvoir changer les mots de passe avec " +"LAM." + +#: ../templates/multiEdit.php:312 +#: ../templates/3rdParty/pla/lib/export_functions.php:160 +msgid "Encountered an error while performing search." +msgstr "Une erreur à été rencontrée lors de la recherche." + +#: ../templates/config/mainmanage.php:304 ../help/help.inc:160 +msgid "Encrypt session" +msgstr "Chiffrer la session" + +#: ../lib/modules/imapAccess.inc:80 ../lib/modules/imapAccess.inc:120 +msgid "Encryption protocol" +msgstr "Protocole de chiffrement" + +#: ../lib/modules/imapAccess.inc:81 +msgid "" +"Encryption protocol for connecting to IMAP server. LAM requires an encrypted " +"connection." +msgstr "" +"Protocole de chiffrement pour se connecter au serveur IMAP. LAM impose une " +"connexion crypté." + +#: ../help/help.inc:161 +msgid "" +"Encrypts sensitive data like passwords in your session. This requires the " +"PHP MCrypt extension." +msgstr "" +"Chiffre les données sensibles de la session, telles que les mots de passe. " +"Nécessite l'extension PHP MCrypt." + +#: ../templates/selfService/adminMain.php:489 ../help/help.inc:103 +msgid "Enforce language" +msgstr "Forcer la langue" + +#: ../lib/modules/sambaSamAccount.inc:552 +msgid "Eniwetok, Kwajalein" +msgstr "Eniwetok, Kwajalein" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:91 +msgid "Enter the values you would like to add:" +msgstr "Saisissez les valeurs que vous souhaitez ajouter :" + +#: ../lib/modules/eduPerson.inc:118 ../lib/modules/eduPerson.inc:122 +#: ../lib/modules/eduPerson.inc:194 ../lib/modules/eduPerson.inc:231 +#: ../lib/modules/eduPerson.inc:344 ../lib/modules/eduPerson.inc:586 +msgid "Entitlements" +msgstr "Droits" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:471 +msgid "Entries found" +msgstr "Entrées trouvées" + +#: ../templates/serverInfo.php:269 +msgid "Entries sent" +msgstr "Entrées envoyées" + +#: ../templates/3rdParty/pla/lib/export_functions.php:473 +msgid "Entry" +msgstr "Entrée" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:43 +#, php-format +msgid "Entry %s and sub-tree deleted successfully." +msgstr "Entrée %s et sous-arbre effacée correctement." + +#: ../templates/3rdParty/pla/htdocs/create.php:90 +msgid "Entry created" +msgstr "Entrée créé" + +#: ../templates/delete.php:330 +#: ../templates/3rdParty/pla/htdocs/mass_update.php:26 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:26 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:27 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:24 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:56 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:33 +msgid "Entry does not exist" +msgstr "L'entrée n'existe pas" + +#: ../lib/modules/puppetClient.inc:80 ../lib/modules/puppetClient.inc:84 +#: ../lib/modules/puppetClient.inc:128 ../lib/modules/puppetClient.inc:153 +#: ../lib/modules/puppetClient.inc:161 ../lib/modules/puppetClient.inc:239 +#: ../lib/modules/puppetClient.inc:430 +msgid "Environment" +msgstr "Environnement" + +#: ../templates/schema/schema.php:166 +msgid "Equality" +msgstr "Egalité" + +#: ../lib/modules/zarafaUser.inc:529 ../lib/modules/zarafaUser.inc:1249 +msgid "Equipment" +msgstr "Equipement" + +#: ../templates/config/mainmanage.php:408 +#: ../templates/3rdParty/pla/lib/Template.php:430 +#: ../templates/3rdParty/pla/lib/Template.php:473 +#: ../templates/3rdParty/pla/lib/Template.php:517 +#: ../templates/3rdParty/pla/lib/functions.php:511 +#: ../templates/3rdParty/pla/lib/functions.php:513 +#: ../templates/3rdParty/pla/lib/ds_myldap.php:219 +#: ../templates/3rdParty/pla/htdocs/import.php:79 +msgid "Error" +msgstr "Erreur" + +#: ../templates/3rdParty/pla/lib/functions.php:1897 +#: ../templates/3rdParty/pla/lib/functions.php:1901 +msgid "Error number" +msgstr "Erreur numéro" + +#: ../lib/modules/mitKerberos.inc:1173 ../lib/modules/heimdalKerberos.inc:1038 +msgid "Error while changing Kerberos password." +msgstr "Erreur lors du changement de mot de passe Kerberos." + +#: ../templates/delete.php:280 +#, php-format +msgid "Error while deleting DN: %s" +msgstr "Erreur à l'effacement de DN: %s" + +#: ../help/help.inc:145 +msgid "" +"Every account type needs exactly one base module. This module provides a " +"structural object class." +msgstr "" +"Chaque type de compte a besoin exactement d'un module de base.Ce module a " +"une classe d'objet structurée" + +#: ../lib/modules/customScripts.inc:67 ../lib/modules/customScripts.inc:80 +#: ../lib/modules/selfRegistration.inc:82 ../lib/modules/zarafaContact.inc:97 +#: ../lib/modules/zarafaGroup.inc:99 ../lib/modules/dhcp_settings.inc:564 +#: ../lib/modules/zarafaUser.inc:146 ../help/help.inc:74 ../help/help.inc:80 +#: ../help/help.inc:90 ../help/help.inc:95 ../help/help.inc:117 +msgid "Example" +msgstr "Exemple" + +#: ../templates/masscreate.php:302 ../templates/masscreate.php:376 +msgid "Example value" +msgstr "Valeur Exemple" + +#: ../help/help.inc:62 +msgid "Examples" +msgstr "Exemples" + +#: ../templates/config/confmain.php:319 +msgid "Execute" +msgstr "Executer" + +#: ../templates/tests/lamdaemonTest.php:269 +msgid "Execute lamdaemon" +msgstr "Lancer lamdaemon" + +#: ../lib/modules/freeRadius.inc:104 ../lib/modules/freeRadius.inc:130 +#: ../lib/modules/freeRadius.inc:209 ../lib/modules/freeRadius.inc:237 +#: ../lib/modules/freeRadius.inc:385 ../lib/modules/freeRadius.inc:543 +msgid "Expiration date" +msgstr "Date d'expiration du compte" + +#: ../lib/modules/bindDLZ.inc:204 ../lib/modules/bindDLZ.inc:307 +#: ../lib/modules/bindDLZ.inc:419 ../lib/modules/bindDLZ.inc:512 +#: ../lib/modules/bindDLZ.inc:1015 ../lib/modules/bindDLZ.inc:1544 +msgid "Expiration time" +msgstr "Délai d'expiration" + +#: ../lib/modules/asteriskAccount.inc:211 +#: ../lib/modules/asteriskAccount.inc:291 +#: ../lib/modules/asteriskAccount.inc:494 +#: ../lib/modules/asteriskAccount.inc:721 +#: ../lib/modules/asteriskAccount.inc:1007 +#: ../lib/modules/asteriskAccount.inc:1283 +msgid "Expiration timestamp" +msgstr "Horodatage d'expiration" + +#: ../lib/modules/asteriskAccount.inc:212 +msgid "Expiration timestamp (\"regseconds\" option)." +msgstr "Date d'expiration ( option \"regseconds\" )." + +#: ../lib/types/ppolicyType.inc:86 ../lib/modules/ppolicy.inc:116 +#: ../lib/modules/ppolicy.inc:148 ../lib/modules/ppolicy.inc:174 +#: ../lib/modules/ppolicy.inc:214 ../lib/modules/ppolicy.inc:479 +msgid "Expire warning" +msgstr "Avertissement d'expiration" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1081 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1084 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:305 +#: ../templates/3rdParty/pla/htdocs/export_form.php:37 +#: ../templates/3rdParty/pla/htdocs/export_form.php:53 +msgid "Export" +msgstr "Exporter" + +#: ../templates/pdfedit/pdfmain.php:221 ../templates/pdfedit/pdfmain.php:222 +#: ../help/help.inc:212 +msgid "Export PDF structure" +msgstr "Exporter la structure PDF" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:105 +msgid "Export format" +msgstr "Format d'export" + +#: ../templates/profedit/profilemain.php:209 +#: ../templates/profedit/profilemain.php:210 ../help/help.inc:194 +msgid "Export profile" +msgstr "Exporter le profil" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Export subtree" +msgstr "Exporter sous-arbre" + +#: ../templates/pdfedit/pdfmain.php:117 +#: ../templates/profedit/profilemain.php:132 +msgid "Export successful" +msgstr "Export réussi" + +#: ../templates/serverInfo.php:349 +msgid "Extended" +msgstr "Etendu" + +#: ../lib/types/asteriskExt.inc:143 +#, php-format +msgid "Extension count: %s" +msgstr "Nombre de numéros : %s" + +#: ../lib/types/asteriskExt.inc:94 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskExtension.inc:102 +#: ../lib/modules/asteriskExtension.inc:137 +#: ../lib/modules/asteriskExtension.inc:145 +#: ../lib/modules/asteriskExtension.inc:289 +#: ../lib/modules/asteriskExtension.inc:293 +#: ../lib/modules/asteriskExtension.inc:813 +msgid "Extension name" +msgstr "Nom de l'extension" + +#: ../lib/modules/asteriskExtension.inc:114 +#: ../lib/modules/asteriskExtension.inc:138 +#: ../lib/modules/asteriskExtension.inc:159 +#: ../lib/modules/asteriskExtension.inc:233 +#: ../lib/modules/asteriskExtension.inc:481 +#: ../lib/modules/asteriskExtension.inc:814 +msgid "Extension owners" +msgstr "Propriétaires de l'extension" + +#: ../lib/modules/asteriskExtension.inc:190 +msgid "Extension with this name already exists." +msgstr "Une extension du même nom existe déjà." + +#: ../templates/3rdParty/pla/htdocs/import.php:66 +msgid "Failed" +msgstr "Echoué" + +#: ../lib/modules/mitKerberos.inc:128 ../lib/modules/mitKerberos.inc:252 +#: ../lib/modules/mitKerberos.inc:298 ../lib/modules/mitKerberos.inc:345 +#: ../lib/modules/mitKerberos.inc:768 +msgid "Failed logins" +msgstr "Tentatives de connexion" + +#: ../templates/initsuff.php:152 +msgid "Failed to create entry!" +msgstr "Echec de la création d'entrée !" + +#: ../lib/profiles.inc:190 ../lib/pdfstruct.inc:224 +msgid "Failed to export!" +msgstr "Echec de l'export !" + +#: ../lib/profiles.inc:197 ../lib/pdfstruct.inc:231 +msgid "Failed to import!" +msgstr "Echec de l'import !" + +#: ../lib/types/ppolicyType.inc:85 ../lib/modules/ppolicy.inc:112 +#: ../lib/modules/ppolicy.inc:153 ../lib/modules/ppolicy.inc:173 +#: ../lib/modules/ppolicy.inc:280 ../lib/modules/ppolicy.inc:478 +msgid "Failure count interval" +msgstr "Intervalle de prise en compte des échecs" + +#: ../lib/modules/inetOrgPerson.inc:76 ../lib/modules/inetOrgPerson.inc:158 +#: ../lib/modules/inetOrgPerson.inc:208 ../lib/modules/inetOrgPerson.inc:441 +#: ../lib/modules/inetOrgPerson.inc:581 ../lib/modules/inetOrgPerson.inc:712 +#: ../lib/modules/inetOrgPerson.inc:716 ../lib/modules/inetOrgPerson.inc:1406 +#: ../lib/modules/inetOrgPerson.inc:1409 ../lib/modules/inetOrgPerson.inc:1905 +#: ../lib/modules/inetOrgPerson.inc:2511 ../lib/modules/inetOrgPerson.inc:3535 +#: ../lib/modules/inetOrgPerson.inc:3583 +msgid "Fax number" +msgstr "Numéro de fax" + +#: ../lib/modules/zarafaUser.inc:155 ../lib/modules/zarafaUser.inc:376 +#: ../lib/modules/zarafaUser.inc:638 ../lib/modules/zarafaUser.inc:1288 +#: ../lib/modules/zarafaUser.inc:1327 ../lib/modules/zarafaUser.inc:1807 +msgid "Features" +msgstr "Fonctionnalités" + +#: ../templates/config/mainmanage.php:412 +#: ../templates/3rdParty/pla/lib/functions.php:533 +#: ../templates/3rdParty/pla/tools/unserialize.php:14 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "File" +msgstr "Fichier" + +#: ../lib/pdfstruct.inc:282 +msgid "File does not exist." +msgstr "Le fichier n'existe pas." + +#: ../lib/modules/customFields.inc:160 ../lib/modules/customFields.inc:3294 +msgid "File extension" +msgstr "Extension de fichier" + +#: ../lib/modules/inetOrgPerson.inc:102 +#, php-format +msgid "File is too large. Maximum allowed size is %s kB." +msgstr "Le fichier est trop volumineux. La taille maximum autorisée est %s ko." + +#: ../lib/modules/sambaSamAccount.inc:312 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user and $group are replaced with user and group name." +msgstr "" +"Chemin (relatif au partage Netlogon) et nom du fichier a exécuter lors du " +"login. $user et $group seront remplacés respectivement par le nom " +"d'utilisateur et le nom du groupe principal." + +#: ../lib/modules/windowsUser.inc:210 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user is replaced with user name." +msgstr "" +"Nom de fichier et chemin relatif au partage Netlogon, qui doit être exécuté " +"à la connexion. $user sera remplacé par le nom d'utilisateur." + +#: ../lib/modules/zarafaServer.inc:76 ../lib/modules/zarafaServer.inc:112 +#: ../lib/modules/zarafaServer.inc:137 ../lib/modules/zarafaServer.inc:177 +#: ../lib/modules/zarafaServer.inc:219 ../lib/modules/zarafaServer.inc:356 +msgid "File path" +msgstr "Chemin de fichier" + +#: ../templates/masscreate.php:243 ../lib/tools/fileUpload.inc:44 +#: ../lib/modules/ldapPublicKey.inc:80 ../lib/modules/customFields.inc:3280 +#: ../lib/lists.inc:777 +msgid "File upload" +msgstr "Chargement de fichier" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +#: ../lib/types/zarafaAddressListType.inc:94 +#: ../lib/types/zarafaDynamicGroupType.inc:95 +#: ../lib/modules/pykotaPrinter.inc:128 ../lib/modules/pykotaPrinter.inc:425 +#: ../lib/modules/zarafaDynamicGroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:158 +#: ../lib/modules/zarafaDynamicGroup.inc:171 +#: ../lib/modules/zarafaDynamicGroup.inc:239 +#: ../lib/modules/zarafaDynamicGroup.inc:450 +#: ../lib/modules/zarafaContact.inc:91 ../lib/modules/posixGroup.inc:335 +#: ../lib/modules/posixGroup.inc:528 ../lib/modules/zarafaAddressList.inc:79 +#: ../lib/modules/zarafaAddressList.inc:134 +#: ../lib/modules/zarafaAddressList.inc:145 +#: ../lib/modules/zarafaAddressList.inc:206 +#: ../lib/modules/zarafaAddressList.inc:333 ../lib/modules/zarafaUser.inc:140 +#: ../lib/modules/sambaGroupMapping.inc:170 +#: ../lib/modules/sambaGroupMapping.inc:483 ../lib/modules/nisnetgroup.inc:104 +#: ../lib/modules/nisnetgroup.inc:477 +#: ../lib/modules/organizationalRole.inc:101 +#: ../lib/modules/organizationalRole.inc:282 +#: ../lib/modules/organizationalRole.inc:372 +#: ../lib/modules/groupOfNames.inc:113 ../lib/modules/groupOfNames.inc:339 +#: ../lib/modules/groupOfNames.inc:429 ../lib/modules/groupOfNames.inc:494 +#: ../lib/modules/groupOfNames.inc:584 ../lib/modules/nisMailAlias.inc:93 +#: ../lib/modules/nisMailAlias.inc:373 ../lib/lists.inc:379 +#: ../help/help.inc:168 +msgid "Filter" +msgstr "Filtre" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:509 +msgid "Filter performed" +msgstr "Filtre appliqué" + +#: ../templates/multiEdit.php:514 +msgid "Finished all operations." +msgstr "Terminer toutes les opérations." + +#: ../lib/types/user.inc:96 ../lib/modules/selfRegistration.inc:83 +#: ../lib/modules/selfRegistration.inc:218 ../lib/modules/windowsUser.inc:128 +#: ../lib/modules/windowsUser.inc:278 ../lib/modules/windowsUser.inc:502 +#: ../lib/modules/windowsUser.inc:597 ../lib/modules/windowsUser.inc:700 +#: ../lib/modules/windowsUser.inc:1590 ../lib/modules/inetOrgPerson.inc:66 +#: ../lib/modules/inetOrgPerson.inc:156 ../lib/modules/inetOrgPerson.inc:306 +#: ../lib/modules/inetOrgPerson.inc:538 ../lib/modules/inetOrgPerson.inc:644 +#: ../lib/modules/inetOrgPerson.inc:1170 ../lib/modules/inetOrgPerson.inc:1173 +#: ../lib/modules/inetOrgPerson.inc:1892 ../lib/modules/inetOrgPerson.inc:2434 +#: ../lib/modules/inetOrgPerson.inc:3577 +msgid "First name" +msgstr "Prénom" + +#: ../lib/modules/windowsUser.inc:597 ../lib/modules/windowsUser.inc:598 +#: ../lib/modules/inetOrgPerson.inc:66 ../lib/modules/inetOrgPerson.inc:67 +msgid "First name contains invalid characters!" +msgstr "Le nom de famille contient des caractères non valides!" + +#: ../lib/modules/windowsUser.inc:129 ../lib/modules/inetOrgPerson.inc:645 +msgid "First name of user. Only letters, - and spaces are allowed." +msgstr "" +"Prenom de l'utilisateur. Seuls les lettres les - et les espaces sont " +"autorisés." + +#: ../lib/modules/ddns.inc:85 +msgid "Fix IP addresses" +msgstr "IP fixe" + +#: ../templates/config/confmain.php:414 +msgid "Fixed list" +msgstr "Liste fixe" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:228 +msgid "Fixed range" +msgstr "Plage fixe" + +#: ../templates/pdfedit/pdfpage.php:461 +msgid "Folding marks" +msgstr "Indication d'empilement" + +#: ../templates/config/confmain.php:273 ../help/help.inc:85 +msgid "Follow referrals" +msgstr "Suivre les referrals" + +#: ../lib/modules/kolabUser.inc:125 +msgid "For automatic invitation handling." +msgstr "Pour la prise en charge automatique de l'invite" + +#: ../lib/modules/nisnetgroup.inc:101 +msgid "" +"For the upload please specify the entries in the format \"(HOST,USER," +"DOMAIN)\". Multiple entries are separated by semicolon." +msgstr "" +"Pour le chargement, veuillez préciser les entrées sous la forme \"(HOTE," +"UTILISATEUR,DOMAINE)\". Les entrées multiples sont séparées par des point-" +"virgules." + +#: ../templates/lists/changePassword.php:238 +#: ../lib/modules/mitKerberos.inc:183 ../lib/modules/mitKerberos.inc:417 +#: ../lib/modules/shadowAccount.inc:369 ../lib/modules/heimdalKerberos.inc:127 +#: ../lib/modules/heimdalKerberos.inc:348 ../lib/modules.inc:1062 +#: ../help/help.inc:206 +msgid "Force password change" +msgstr "Forcer la modification de mot de passe" + +#: ../lib/modules/passwordSelfReset.inc:787 +msgid "Forgot password?" +msgstr "Mot de passe oublié ?" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:484 ../help/help.inc:252 +msgid "Format" +msgstr "Format" + +#: ../lib/modules/qmailUser.inc:207 ../lib/modules/qmailUser.inc:277 +#: ../lib/modules/qmailUser.inc:401 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:546 ../lib/modules/qmailUser.inc:1141 +msgid "Forwarding address" +msgstr "Adresse de transfert" + +#: ../lib/modules/qmailUser.inc:208 +msgid "Forwards all incoming messages for this user to this address." +msgstr "" +"Transfere tout les nouveaux messages de l'utilisateur vers cette adresse." + +#: ../lib/modules/pykotaGroup.inc:64 ../lib/modules/pykotaUser.inc:64 +msgid "Free printing" +msgstr "Impression libre" + +#: ../lib/modules/freeRadius.inc:74 +msgid "FreeRadius" +msgstr "FreeRadius" + +#: ../lib/modules/sambaSamAccount.inc:1376 +msgid "Friday" +msgstr "Vendredi" + +#: ../templates/config/confmain.php:343 ../lib/modules/selfRegistration.inc:90 +#: ../lib/modules/selfRegistration.inc:229 +#: ../lib/modules/passwordSelfReset.inc:116 +#: ../lib/modules/passwordSelfReset.inc:537 +#: ../lib/modules/passwordSelfReset.inc:557 ../help/help.inc:246 +msgid "From address" +msgstr "Adresse de provenance" + +#: ../templates/config/confmain.php:520 +msgid "From address for password mails is invalid." +msgstr "L'adresse d'expéditeur des mails de mot de passe est incorrecte." + +#: ../lib/modules/asteriskAccount.inc:147 +#: ../lib/modules/asteriskAccount.inc:275 +#: ../lib/modules/asteriskAccount.inc:377 +#: ../lib/modules/asteriskAccount.inc:636 +#: ../lib/modules/asteriskAccount.inc:991 +#: ../lib/modules/asteriskAccount.inc:1251 +msgid "From domain" +msgstr "Domaine d'origine" + +#: ../lib/modules/asteriskAccount.inc:148 +msgid "From domain setting for this account." +msgstr "Paramètres du domaine de l'expéditeur de ce compte." + +#: ../lib/modules/asteriskAccount.inc:143 +#: ../lib/modules/asteriskAccount.inc:274 +#: ../lib/modules/asteriskAccount.inc:370 +#: ../lib/modules/asteriskAccount.inc:632 +#: ../lib/modules/asteriskAccount.inc:990 +#: ../lib/modules/asteriskAccount.inc:1249 +msgid "From user" +msgstr "De l'utilisateur" + +#: ../lib/modules/asteriskAccount.inc:144 +msgid "From user setting for this account." +msgstr "Paramètres expéditeur de ce compte." + +#: ../lib/modules/asteriskAccount.inc:151 +#: ../lib/modules/asteriskAccount.inc:276 +#: ../lib/modules/asteriskAccount.inc:384 +#: ../lib/modules/asteriskAccount.inc:640 +#: ../lib/modules/asteriskAccount.inc:992 +#: ../lib/modules/asteriskAccount.inc:1253 +msgid "Full contact" +msgstr "Nom complet de contact" + +#: ../templates/lists/changePassword.php:281 +#: ../lib/modules/asteriskVoicemail.inc:103 +#: ../lib/modules/asteriskVoicemail.inc:139 +#: ../lib/modules/asteriskVoicemail.inc:172 +#: ../lib/modules/asteriskVoicemail.inc:252 +#: ../lib/modules/asteriskVoicemail.inc:371 +msgid "Full name" +msgstr "Nom complet" + +#: ../lib/modules/asteriskVoicemail.inc:104 +msgid "Full name for Asterisk voicemail mailbox." +msgstr "Nom complet de la boîte vocale de messagerie Asterisk." + +#: ../templates/3rdParty/pla/lib/functions.php:537 +#: ../templates/3rdParty/pla/tools/unserialize.php:17 +msgid "Function" +msgstr "Fonction" + +#: ../lib/modules/windowsUser.inc:328 ../lib/modules/inetOrgPerson.inc:387 +msgid "GB-12345" +msgstr "GB-12345" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixGroup.inc:520 +msgid "GID generator" +msgstr "Générateur de GID" + +#: ../lib/types/host.inc:96 ../lib/types/group.inc:106 +#: ../lib/types/user.inc:93 ../lib/modules/qmailUser.inc:114 +#: ../lib/modules/qmailUser.inc:235 ../lib/modules/qmailUser.inc:341 +#: ../lib/modules/qmailUser.inc:421 ../lib/modules/qmailUser.inc:581 +#: ../lib/modules/qmailUser.inc:1143 ../lib/modules/posixGroup.inc:191 +#: ../lib/modules/posixGroup.inc:421 ../lib/modules/posixGroup.inc:436 +#: ../lib/modules/posixGroup.inc:480 ../lib/modules/posixGroup.inc:500 +#: ../lib/modules/posixGroup.inc:576 ../lib/modules/posixGroup.inc:599 +#: ../lib/modules/posixAccount.inc:125 ../lib/modules/posixAccount.inc:413 +#: ../lib/modules/posixAccount.inc:1853 +#: ../lib/modules/sambaGroupMapping.inc:110 +#: ../lib/modules/sambaGroupMapping.inc:538 +msgid "GID number" +msgstr "Numéro de GID" + +#: ../lib/modules/posixGroup.inc:599 +msgid "" +"GID number has changed. Please select checkbox to change GID number of users " +"and hosts." +msgstr "" +"Le numéro de GID a changé. Veuillez cocher la case pour modifier les numéros " +"de GID Utilisateurs et Machines." + +#: ../lib/modules/posixAccount.inc:125 +#, php-format +msgid "" +"GID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" +msgstr "" +"Le numéro de GID a changé. Vous devez lancer les commandes suivantes en tant " +"que root afin de conserver les droits sur les fichiers existants : 'find / -" +"gid %s -uid %s -exec chgrp %s {} \\;'" + +#: ../lib/modules/posixGroup.inc:606 +msgid "GID number has to be a numeric value!" +msgstr "Le GID doit être une valeur numérique!" + +#: ../lib/modules/qmailUser.inc:466 +msgid "GID number is already in use." +msgstr "Le GID existe déjà." + +#: ../lib/modules/posixAccount.inc:256 ../lib/modules/posixAccount.inc:356 +#: ../lib/modules/posixAccount.inc:398 ../lib/modules/posixAccount.inc:424 +#: ../lib/modules/posixAccount.inc:510 ../lib/modules/posixAccount.inc:548 +#: ../lib/modules/posixAccount.inc:1440 ../lib/modules/posixAccount.inc:1856 +msgid "Gecos" +msgstr "Gecos" + +#: ../lib/modules/windowsUser.inc:673 +msgid "General" +msgstr "Général" + +#: ../lib/modules/generalInformation.inc:58 +msgid "General information" +msgstr "Information générale" + +#: ../templates/config/mainmanage.php:477 +#: ../templates/config/confmodules.php:164 +#: ../templates/config/confmain.php:205 +#: ../templates/config/moduleSettings.php:163 +#: ../templates/config/conftypes.php:182 +#: ../templates/selfService/adminMain.php:433 +#: ../templates/profedit/profilepage.php:215 +msgid "General settings" +msgstr "Paramètres généraux" + +#: ../templates/lists/changePassword.php:308 ../help/help.inc:244 +msgid "Generate random password" +msgstr "Générer un mot de passe aléatoire" + +#: ../templates/3rdParty/pla/lib/functions.php:63 +#: ../templates/3rdParty/pla/lib/functions.php:595 +msgid "Generic Error" +msgstr "Erreur générique" + +#: ../lib/modules/windowsGroup.inc:65 +msgid "Global" +msgstr "Global" + +#: ../templates/pdfedit/pdfmain.php:322 +#: ../templates/profedit/profilemain.php:289 +msgid "Global templates" +msgstr "Modèles généraux" + +#: ../templates/schema/schema.php:128 ../templates/schema/schema.php:265 +#: ../templates/schema/schema.php:296 ../templates/schema/schema.php:321 +msgid "Go" +msgstr "Aller" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:215 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:139 +msgid "Go back" +msgstr "Retour" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1864 +msgid "Go to" +msgstr "Aller à" + +#: ../lib/types/ppolicyType.inc:82 ../lib/modules/ppolicy.inc:100 +#: ../lib/modules/ppolicy.inc:149 ../lib/modules/ppolicy.inc:170 +#: ../lib/modules/ppolicy.inc:222 ../lib/modules/ppolicy.inc:475 +msgid "Grace authentication limit" +msgstr "Période de grâce pour l'authentification" + +#: ../lib/modules/quota.inc:125 ../lib/modules/quota.inc:403 +msgid "Grace block period" +msgstr "Periode de grace d'un blocage" + +#: ../lib/modules/quota.inc:126 +msgid "" +"Grace block period. Most filesystems use a fixed maximum value of 7 days." +msgstr "" +"Periode de grace d'un blocage. La plupart des systémes de fichiers utilisent " +"une valeur fixe de 7 jours." + +#: ../lib/modules/quota.inc:148 +msgid "" +"Grace inode (files) period. Most filesystems use a fixed maximum value of 7 " +"days." +msgstr "" +"Periode de grace inode (fichiers). La plupart des systèmes de fichiers " +"utilisent une valeur fixe de 7 jours." + +#: ../lib/modules/quota.inc:147 ../lib/modules/quota.inc:407 +msgid "Grace inode period" +msgstr "Période de grace inode" + +#: ../templates/config/confmain.php:324 +#: ../templates/selfService/adminMain.php:670 +msgid "Group" +msgstr "Groupe" + +#: ../lib/types/group.inc:76 +msgid "Group accounts (e.g. Unix and Samba)" +msgstr "Comptes de Groupes (ex : Unix et Samba)" + +#: ../lib/types/gon.inc:202 ../lib/types/zarafaDynamicGroupType.inc:165 +#: ../lib/types/group.inc:240 ../lib/types/netgroup.inc:169 +#, php-format +msgid "Group count: %s" +msgstr "Nombre de groupes : %s" + +#: ../lib/types/group.inc:111 ../lib/modules/posixGroup.inc:471 +#: ../lib/modules/nisnetgroup.inc:120 +msgid "Group description" +msgstr "Description du groupe" + +#: ../lib/modules/pykotaGroup.inc:118 +msgid "Group description." +msgstr "Description du groupe." + +#: ../lib/modules/posixGroup.inc:485 +msgid "Group description. If left empty group name will be used." +msgstr "Description du groupe. Si laissé vide, le nom du groupe sera utilisé." + +#: ../lib/types/gon.inc:105 ../lib/types/gon.inc:106 +#: ../lib/types/group.inc:108 ../lib/types/group.inc:109 +msgid "Group member DNs" +msgstr "DNs des membres du groupe" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:94 +#: ../lib/types/group.inc:107 ../lib/modules/pykotaPrinter.inc:119 +#: ../lib/modules/pykotaPrinter.inc:123 ../lib/modules/pykotaPrinter.inc:186 +#: ../lib/modules/pykotaPrinter.inc:199 ../lib/modules/pykotaPrinter.inc:265 +#: ../lib/modules/pykotaPrinter.inc:607 ../lib/modules/posixGroup.inc:222 +#: ../lib/modules/posixGroup.inc:293 ../lib/modules/posixGroup.inc:424 +#: ../lib/modules/posixGroup.inc:450 ../lib/modules/posixGroup.inc:488 +#: ../lib/modules/posixGroup.inc:492 ../lib/modules/posixGroup.inc:573 +#: ../lib/modules/windowsGroup.inc:381 +msgid "Group members" +msgstr "Membres du groupe" + +#: ../lib/types/gon.inc:104 ../lib/types/zarafaDynamicGroupType.inc:91 +#: ../lib/types/group.inc:105 ../lib/types/netgroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:63 +#: ../lib/modules/zarafaDynamicGroup.inc:116 +#: ../lib/modules/zarafaDynamicGroup.inc:165 +#: ../lib/modules/zarafaDynamicGroup.inc:195 +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:220 +#: ../lib/modules/zarafaDynamicGroup.inc:447 ../lib/modules/posixGroup.inc:181 +#: ../lib/modules/posixGroup.inc:427 ../lib/modules/posixGroup.inc:459 +#: ../lib/modules/posixGroup.inc:508 ../lib/modules/posixGroup.inc:575 +#: ../lib/modules/posixGroup.inc:607 ../lib/modules/posixGroup.inc:608 +#: ../lib/modules/posixGroup.inc:609 ../lib/modules/pykotaGroup.inc:197 +#: ../lib/modules/pykotaGroup.inc:199 ../lib/modules/pykotaGroup.inc:218 +#: ../lib/modules/nisnetgroup.inc:83 ../lib/modules/nisnetgroup.inc:112 +#: ../lib/modules/nisnetgroup.inc:139 ../lib/modules/nisnetgroup.inc:151 +#: ../lib/modules/nisnetgroup.inc:193 ../lib/modules/nisnetgroup.inc:579 +#: ../lib/modules/organizationalRole.inc:85 +#: ../lib/modules/organizationalRole.inc:114 +#: ../lib/modules/organizationalRole.inc:137 +#: ../lib/modules/organizationalRole.inc:452 +#: ../lib/modules/windowsGroup.inc:114 ../lib/modules/windowsGroup.inc:176 +#: ../lib/modules/windowsGroup.inc:257 ../lib/modules/windowsGroup.inc:283 +#: ../lib/modules/windowsGroup.inc:300 ../lib/modules/windowsGroup.inc:745 +#: ../lib/modules/groupOfNames.inc:85 ../lib/modules/groupOfNames.inc:126 +#: ../lib/modules/groupOfNames.inc:167 ../lib/modules/groupOfNames.inc:693 +msgid "Group name" +msgstr "Nom du groupe" + +#: ../lib/modules/pykotaGroup.inc:199 ../lib/modules/pykotaGroup.inc:200 +#: ../lib/modules/pykotaGroup.inc:203 ../lib/modules/pykotaGroup.inc:204 +msgid "Group name already exists!" +msgstr "Ce nom de groupe existe déjà !" + +#: ../lib/modules/zarafaDynamicGroup.inc:195 +msgid "Group name already in use." +msgstr "Un groupe ayant le même nom existe déjà." + +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:197 ../lib/modules/posixGroup.inc:609 +#: ../lib/modules/posixGroup.inc:610 ../lib/modules/pykotaGroup.inc:197 +#: ../lib/modules/pykotaGroup.inc:198 ../lib/modules/pykotaGroup.inc:201 +#: ../lib/modules/pykotaGroup.inc:202 ../lib/modules/nisnetgroup.inc:151 +#: ../lib/modules/windowsGroup.inc:283 ../lib/modules/windowsGroup.inc:284 +msgid "" +"Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Le nom du groupe contient des caractères incorrectes. Les caractères valides " +"sont: a-z, A-Z, 0-9 et .-_ !" + +#: ../lib/modules/windowsGroup.inc:151 +msgid "Group name for NIS." +msgstr "Nom du groupe NIS." + +#: ../lib/modules/posixGroup.inc:608 +msgid "Group name in use. Selected next free group name." +msgstr "" +"Nom de groupe déjà utilisé. Nom de groupe disponible suivant sélectionné." + +#: ../lib/modules/zarafaDynamicGroup.inc:64 ../lib/modules/pykotaGroup.inc:114 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ ." +msgstr "" +"Le nom du groupe a créer. Les caractères autorisés sont: a-z, A-Z, 0-9 et .-" +"_ !" + +#: ../lib/modules/posixGroup.inc:509 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ . If group name is already used group name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"Nom du groupe a créer. Les caractères autorisés sont : a-z, 0-9 et .-_. Si " +"un groupe a déjà le même nom, le nouveau nom sera suffixé par un nombre. Le " +"prochain nombre disponible sera utilisé." + +#: ../lib/modules/pykotaGroup.inc:122 +msgid "Group name that is used for PyKota." +msgstr "Nom du groupe utilisé par PyKota." + +#: ../lib/modules/freeRadius.inc:96 ../lib/modules/freeRadius.inc:100 +#: ../lib/modules/freeRadius.inc:128 ../lib/modules/freeRadius.inc:154 +#: ../lib/modules/freeRadius.inc:185 ../lib/modules/freeRadius.inc:234 +#: ../lib/modules/freeRadius.inc:277 ../lib/modules/freeRadius.inc:540 +msgid "Group names" +msgstr "Noms de groupe" + +#: ../lib/modules/groupOfNames.inc:65 +msgid "Group of names" +msgstr "Groupe de noms" + +#: ../lib/types/gon.inc:75 +msgid "Group of names accounts" +msgstr "Compte Groupe de noms" + +#: ../lib/modules/groupOfUniqueNames.inc:42 +msgid "Group of unique names" +msgstr "Groupe de noms uniques" + +#: ../lib/modules/posixGroup.inc:442 ../lib/modules/posixGroup.inc:496 +msgid "Group password" +msgstr "Mot de passe du groupe" + +#: ../lib/modules/windowsGroup.inc:142 ../lib/modules/windowsGroup.inc:195 +#: ../lib/modules/windowsGroup.inc:262 ../lib/modules/windowsGroup.inc:338 +#: ../lib/modules/windowsGroup.inc:775 +msgid "Group scope" +msgstr "Périmètre de groupe" + +#: ../lib/modules/sambaGroupMapping.inc:382 +#: ../lib/modules/windowsGroup.inc:138 ../lib/modules/windowsGroup.inc:203 +#: ../lib/modules/windowsGroup.inc:261 ../lib/modules/windowsGroup.inc:341 +#: ../lib/modules/windowsGroup.inc:776 +msgid "Group type" +msgstr "Type de groupe" + +#: ../lib/types/group.inc:67 ../lib/modules/posixGroup.inc:401 +#: ../lib/modules/zarafaGroup.inc:119 ../lib/modules/windowsUser.inc:217 +#: ../lib/modules/windowsUser.inc:220 ../lib/modules/windowsUser.inc:442 +#: ../lib/modules/windowsUser.inc:523 ../lib/modules/windowsUser.inc:785 +#: ../lib/modules/windowsUser.inc:1635 ../lib/modules/windowsUser.inc:1663 +#: ../lib/modules/generalInformation.inc:110 +msgid "Groups" +msgstr "Groupes" + +#: ../lib/types/gon.inc:66 ../lib/modules/posixAccount.inc:261 +#: ../lib/modules/posixAccount.inc:364 ../lib/modules/posixAccount.inc:427 +#: ../lib/modules/posixAccount.inc:1599 ../lib/modules/posixAccount.inc:1748 +#: ../lib/modules/posixAccount.inc:1865 ../lib/modules/windowsUser.inc:1029 +#: ../lib/modules/groupOfNamesUser.inc:54 +#: ../lib/modules/groupOfNamesUser.inc:56 +#: ../lib/modules/groupOfNamesUser.inc:60 +#: ../lib/modules/groupOfNamesUser.inc:64 +#: ../lib/modules/groupOfNamesUser.inc:71 +#: ../lib/modules/groupOfNamesUser.inc:324 +#: ../lib/modules/groupOfNamesUser.inc:360 +msgid "Groups of names" +msgstr "Groupe de noms" + +#: ../lib/modules/dhcp_settings.inc:99 +msgid "H-Node (0x08)" +msgstr "Noeud-H (0x08)" + +#: ../templates/config/confmain.php:356 +#: ../lib/modules/selfRegistration.inc:235 +#: ../lib/modules/passwordSelfReset.inc:541 +#: ../lib/modules/passwordSelfReset.inc:561 ../help/help.inc:255 +msgid "HTML format" +msgstr "Format HTML" + +#: ../templates/config/confmain.php:448 +#: ../templates/selfService/adminMain.php:474 ../help/help.inc:126 +msgid "HTTP authentication" +msgstr "Authentification HTTP" + +#: ../lib/modules/zarafaServer.inc:68 ../lib/modules/zarafaServer.inc:100 +#: ../lib/modules/zarafaServer.inc:135 ../lib/modules/zarafaServer.inc:173 +#: ../lib/modules/zarafaServer.inc:195 ../lib/modules/zarafaServer.inc:354 +msgid "HTTP port" +msgstr "Port HTTP" + +#: ../lib/modules/quota.inc:635 ../lib/modules/systemQuotas.inc:384 +msgid "Hard block" +msgstr "Bloc dur" + +#: ../lib/modules/quota.inc:119 ../lib/modules/quota.inc:120 +#: ../lib/modules/quota.inc:402 ../lib/modules/quota.inc:508 +#: ../lib/modules/systemQuotas.inc:126 +msgid "Hard block limit" +msgstr "Limite de bloc dur" + +#: ../lib/modules/quota.inc:637 ../lib/modules/systemQuotas.inc:386 +msgid "Hard inode" +msgstr "Inode dur" + +#: ../lib/modules/quota.inc:142 +msgid "Hard inode (files) limit" +msgstr "Limite d'inode (fichiers) dur" + +#: ../lib/modules/quota.inc:141 ../lib/modules/quota.inc:406 +#: ../lib/modules/quota.inc:510 ../lib/modules/systemQuotas.inc:130 +msgid "Hard inode limit" +msgstr "Limite d'inode dur" + +#: ../lib/modules/generalInformation.inc:104 +msgid "Has subentries" +msgstr "A des sous-entrées" + +#: ../lib/modules/sambaSamAccount.inc:554 +msgid "Hawaii" +msgstr "Hawaii" + +#: ../lib/modules/selfRegistration.inc:106 +#: ../lib/modules/selfRegistration.inc:224 +#: ../lib/modules/passwordSelfReset.inc:156 +#: ../lib/modules/passwordSelfReset.inc:567 +msgid "Header" +msgstr "En-tête" + +#: ../templates/pdfedit/pdfpage.php:452 ../templates/pdfedit/pdfpage.php:591 +#: ../templates/pdfedit/pdfpage.php:598 +msgid "Headline" +msgstr "Début de ligne" + +#: ../lib/modules/heimdalKerberos.inc:235 +msgid "Heimdal Kerberos password change command" +msgstr "Commande de modification du mot passe Heimdal Kerberos" + +#: ../templates/main_header.php:140 ../lib/modules.inc:667 +msgid "Help" +msgstr "Aide" + +#: ../lib/modules/customFields.inc:96 ../lib/modules/customFields.inc:1716 +msgid "Help text" +msgstr "Texte d'aide" + +#: ../lib/tools/schemaBrowser.inc:53 +msgid "Here you can browse LDAP object classes and attributes." +msgstr "Ici vous pouvez naviguer dans les classes et attributs d'objets LDAP" + +#: ../lib/modules/sambaSamAccount.inc:391 +msgid "Here you can change the settings for the terminal server access." +msgstr "Changez ici les paramètres d'accès au serveur Terminal Serveur." + +#: ../lib/selfService.inc:387 +msgid "Here you can change your personal settings." +msgstr "Vous pouvez modifier ici vos paramètres personnels." + +#: ../templates/masscreate.php:130 +msgid "Here you can create multiple accounts by providing a CSV file." +msgstr "Creation de comptes multiples à l'aide d'un fichier CSV" + +#: ../lib/modules/dhcp_settings.inc:198 +msgid "Here you can enter a description for this DHCP entry." +msgstr "Déscription de l'entrée DHCP." + +#: ../lib/modules/nisnetgroup.inc:88 ../lib/modules/organizationalRole.inc:90 +#: ../lib/modules/groupOfNames.inc:90 +msgid "Here you can enter a description for this group." +msgstr "Entrer ici une description pour ce groupe" + +#: ../lib/modules/sudoRole.inc:71 +msgid "Here you can enter a description for this role." +msgstr "Déscription pour le rôle." + +#: ../lib/modules/pykotaPrinter.inc:129 ../lib/modules/zarafaContact.inc:92 +#: ../lib/modules/posixGroup.inc:529 ../lib/modules/zarafaUser.inc:141 +#: ../lib/modules/sambaGroupMapping.inc:171 ../lib/modules/nisnetgroup.inc:105 +#: ../lib/modules/organizationalRole.inc:102 +#: ../lib/modules/groupOfNames.inc:114 ../lib/modules/nisMailAlias.inc:94 +msgid "" +"Here you can enter a filter value. Only entries which contain the filter " +"text will be shown." +msgstr "" +"Saisissez un filtre. Seules les entrées contenant la valeur du filtre seront " +"affichées." + +#: ../lib/modules/posixAccount.inc:470 ../lib/modules/groupOfNamesUser.inc:65 +msgid "" +"Here you can enter a list of additional group memberships. The group names " +"are separated by commas." +msgstr "" +"Ajoutez ici la liste des autres groupes d'appartenance. Séparez les noms de " +"groupe par des virgules." + +#: ../lib/modules/organizationalRoleUser.inc:65 +msgid "" +"Here you can enter a list of roles. The role names are separated by commas." +msgstr "" +"Entrez ici une liste de rôles. Séparez les noms de rôles par des virgules." + +#: ../lib/modules/device.inc:66 +msgid "Here you can enter a serial number for this device." +msgstr "Saisissez ici le numéro de série de votre matériel." + +#: ../lib/modules/windowsUser.inc:181 ../lib/modules/windowsUser.inc:185 +msgid "Here you can enter additional web sites for the user." +msgstr "Sites web supplémentaires pour cet utilisateur." + +#: ../help/help.inc:215 +msgid "" +"Here you can enter an alternative mail address for the password. To use the " +"user's primary email address please leave the field blank." +msgstr "" +"Vous pouvez indiquer ici une adresse mail alternative pour le mot de passe. " +"Pour utiliser l'adresse principale, veuillez laisser ce champ vide." + +#: ../lib/modules/customFields.inc:81 +msgid "" +"Here you can enter one or more object classes (separated by comma). This " +"will allow you to add/remove the group's attributes including their object " +"classes." +msgstr "" +"Vous pouvez entrer ici une ou plusieurs objectClasses (séparées par des " +"virgules). Cela permet d'ajouter/supprimer les attributs du groupe ainsi que " +"ses objectClasses." + +#: ../lib/modules/inetOrgPerson.inc:801 ../lib/modules/inetOrgPerson.inc:805 +msgid "Here you can enter the user's department." +msgstr "Service de l'utilisateur." + +#: ../lib/modules/zarafaUser.inc:156 +msgid "Here you can explicitly enable and disable Zarafa features." +msgstr "Vous pouvez activer/désactiver les fonctionnalités de Zarafa ici." + +#: ../help/help.inc:213 +msgid "" +"Here you can export PDF structures to other server profiles (overwrite " +"existing). You may also export a structure to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"structure with this name." +msgstr "" +"Vous pouvez exporter le modèle PDF vers d'autres profils serveurs (ceci " +"écrasera l'existant). Il est également possible d'exporter le modèle vers le " +"modèle général. Dans ce cas, il sera copié vers tous les profils serveurs " +"qui n'ont pas encore de modèle de ce-nom." + +#: ../help/help.inc:195 +msgid "" +"Here you can export account profiles to other server profiles (overwrite " +"existing). You may also export a profile to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"profile with this name." +msgstr "" +"Ceci vous permet d'exporter des profils de compte vers d'autres profils " +"serveurs (en écrasant l'existant). Vous pouvez également exporter un profil " +"vers le profil général. Dans cas, il sera copié vers tous les profils qui " +"n'ont pas encore de profil du même nom." + +#: ../help/help.inc:211 +msgid "" +"Here you can import PDF structures from other server profiles (overwrite " +"existing)." +msgstr "" +"Ceci permet d'importer un modèle PDF depuis un autre profil serveur (en " +"écrasant l'existant)." + +#: ../help/help.inc:193 +msgid "" +"Here you can import account profiles from other server profiles (overwrite " +"existing)." +msgstr "" +"Ceci vous permet d'importer un profil de compte depuis un autre profil " +"serveur (en écrasant l'existant)." + +#: ../help/help.inc:169 +msgid "" +"Here you can input simple filter expressions (e.g. 'value' or 'v*'). The " +"filter is case-sensitive." +msgstr "" +"Mettre des expressions de filtrage ici (ex: 'valeur'ou 'v*'). Le filtre est " +"insensible à la casse." + +#: ../help/help.inc:199 +msgid "" +"Here you can load an account profile to set default settings for your " +"account. The \"default\" profile is automatically loaded for new accounts." +msgstr "" +"Charger ici un profil de compte pour établir les paramètres par défaut pour " +"ce compte.Le profil par \"defaut\" est automatiquement chargé pour les " +"nouveaux comptes." + +#: ../lib/tools/profileEditor.inc:53 +msgid "Here you can manage your account profiles." +msgstr "Gérer ici le profil de compte" + +#: ../help/help.inc:181 +msgid "Here you can overwrite the display name for this account type." +msgstr "Vous pouvez renommer le nom affiché pour ce type de compte." + +#: ../help/help.inc:201 +msgid "" +"Here you can select a PDF structure and export the account to a PDF file." +msgstr "" +"Selectionner ici une structure PDF et exporter le compte dans un fichier PDF." + +#: ../help/help.inc:151 +msgid "" +"Here you can select where LAM should save its log messages. System logging " +"will go to Syslog on Unix systems and event log on Windows. You can also " +"select an extra file." +msgstr "" +"Indiquez ici la façon dont LAM enregistrera ses logs. En choisissant log " +"système, ils iront dans le Syslog sur une machine Unix ou dans les log " +"d'évènements sous Windows. Ou vous pouvez indiquer un autre fichier de " +"destination." + +#: ../help/help.inc:112 +msgid "" +"Here you can select which plugins you want to use for account management." +msgstr "Gérer ici les plugins à utiliser pour administrer le compte" + +#: ../lib/modules/customFields.inc:169 +msgid "Here you can set a custom display name for this module." +msgstr "Vous pouvez modifier ici le nom affiché pour ce module." + +#: ../lib/modules/customFields.inc:97 +msgid "Here you can set a describing text for your custom field." +msgstr "Vous pouvez saisir une description pour votre champ personnalisé." + +#: ../help/help.inc:125 +msgid "" +"Here you can set a limit for LDAP searches. This will restrict the number of " +"results for LDAP searches. Please use this if LAM's LDAP queries produce too " +"much load." +msgstr "" +"Vous pouvez fixer ici une limite pour les recherches LDAP. Cela limite le " +"nombre maximum de résultats retournés par une recherche LDAP. Renseignez " +"cette valeur si les requêtes LDAP surchargent le serveur." + +#: ../lib/modules/customFields.inc:173 +msgid "Here you can set the URL to a custom icon (32x32px) for this module." +msgstr "" +"Vous pouvez associer ici l'URL à une icone personnalisée (32x32 px) pour ce " +"module." + +#: ../help/help.inc:237 +msgid "" +"Here you can specify additional CSS links to change the layout of the self " +"service pages. This is useful to adapt them to your corporate design. Please " +"enter one link per line." +msgstr "" +"Précisez ici les liens vers les CSS supplémentaires pour changer l'apparence " +"des pages de self-service. Ceci est utile pour les adapter à la charte " +"graphique de l'entreprise. Saissez un lien par ligne." + +#: ../help/help.inc:155 +msgid "" +"Here you can specify minimum requirements for passwords. The character " +"classes are: lowercase, uppercase, numeric and symbols." +msgstr "" +"Précisez ici les spécificités du mot de passe. Groupe de caractères: " +"minuscules, majuscules, numériques et symboles" + +#: ../lib/modules/nisnetgroup.inc:92 +msgid "" +"Here you can specify subgroups which are included in this NIS netgroup. All " +"members of the subgroups will be treated as members of this group." +msgstr "" +"Spécifiez ici les sous-groupes inclus dans le groupe réseau NIS. Tous les " +"membres du sous-groupe seront considérés comme membres de ce groupe." + +#: ../help/help.inc:129 +msgid "" +"Here you can specify the DN and password of the bind user that will be used " +"for the LDAP search. This is required if your LDAP server does not allow " +"anonymous access." +msgstr "" +"Vous pouvez indiquer ici les DN et mot de passe de l'utilisateur au nom " +"duquel on effectuera les recherches LDAP. Ceci est obligatoire si votre " +"serveur LDAP n'accepte pas les connexions anonymes." + +#: ../lib/modules/hostObject.inc:80 +msgid "" +"Here you can specify the list of host names where this account has login " +"privileges. The wildcard \"*\" represents all hosts. You may also use \"!\" " +"in front of a host name to deny access to a host." +msgstr "" +"Spécifiez ici la liste des hôtes sur lesquels le compte pourra se connecter. " +"Le méta-caractère \"*\" représente tous les hôtes. Vous pouvez également " +"utiliser \"!\" devant un nom d'hôte pour interdire l'accès à cet hôte." + +#: ../lib/modules/sambaDomain.inc:102 +msgid "" +"Here you can specify the minimum number of characters for a user password." +msgstr "" +"Vous précisez ici le nombre minimum de caractères dans un mot de passe " +"utilisateur." + +#: ../templates/lists/changePassword.php:350 +msgid "Here you can specify the new password yourself." +msgstr "Vous pouvez définir ici un nouveau mot de passe." + +#: ../lib/modules/sambaSamAccount.inc:382 +msgid "Here you can specify the shadowing mode." +msgstr "Précisez ici le mode shadow." + +#: ../lib/tools/tests.inc:53 +msgid "Here you can test if certain LAM features work on your installation." +msgstr "" +"Tester ici si les fonctionalités de LAM fonctionnent sur votre installation. " + +#: ../lib/modules/customFields.inc:165 +msgid "Here you can upload a new file." +msgstr "Ici vous pouvez charger un nouveau fichier." + +#: ../templates/config/conftypes.php:283 +#: ../lib/types/zarafaAddressListType.inc:95 +#: ../lib/types/zarafaDynamicGroupType.inc:96 +#: ../lib/modules/zarafaDynamicGroup.inc:79 +#: ../lib/modules/zarafaDynamicGroup.inc:136 +#: ../lib/modules/zarafaDynamicGroup.inc:169 +#: ../lib/modules/zarafaDynamicGroup.inc:273 +#: ../lib/modules/zarafaDynamicGroup.inc:461 +#: ../lib/modules/zarafaContact.inc:71 ../lib/modules/zarafaContact.inc:164 +#: ../lib/modules/zarafaContact.inc:172 ../lib/modules/zarafaContact.inc:247 +#: ../lib/modules/zarafaContact.inc:572 ../lib/modules/zarafaGroup.inc:85 +#: ../lib/modules/zarafaGroup.inc:146 ../lib/modules/zarafaGroup.inc:196 +#: ../lib/modules/zarafaGroup.inc:294 ../lib/modules/zarafaGroup.inc:665 +#: ../lib/modules/zarafaAddressList.inc:67 +#: ../lib/modules/zarafaAddressList.inc:112 +#: ../lib/modules/zarafaAddressList.inc:143 +#: ../lib/modules/zarafaAddressList.inc:214 +#: ../lib/modules/zarafaAddressList.inc:343 ../lib/modules/zarafaUser.inc:80 +#: ../lib/modules/zarafaUser.inc:290 ../lib/modules/zarafaUser.inc:339 +#: ../lib/modules/zarafaUser.inc:367 ../lib/modules/zarafaUser.inc:577 +#: ../lib/modules/zarafaUser.inc:1274 ../help/help.inc:174 +msgid "Hidden" +msgstr "Caché" + +#: ../help/help.inc:175 +msgid "" +"Hidden account types will not show up in LAM. This is useful if you want to " +"display e.g. only groups but still need to manage their members." +msgstr "" +"Le types de compte cachés ne seront pas visibles dans LAM. C'est utile si " +"par exemple vous souhaitez afficher les groupes seulement tout en pouvant " +"gérer leurs membres." + +#: ../lib/modules/nisMailAliasUser.inc:104 +#: ../lib/modules/nisMailAliasUser.inc:563 +#: ../lib/modules/asteriskAccount.inc:243 +#: ../lib/modules/asteriskAccount.inc:1237 ../lib/modules/qmailUser.inc:102 +#: ../lib/modules/qmailUser.inc:195 ../lib/modules/zarafaGroup.inc:108 +#: ../lib/modules/zarafaGroup.inc:134 ../lib/modules/sambaSamAccount.inc:399 +#: ../lib/modules/sambaSamAccount.inc:589 ../lib/modules/posixAccount.inc:252 +#: ../lib/modules/posixAccount.inc:441 ../lib/modules/zarafaUser.inc:132 +#: ../lib/modules/zarafaUser.inc:1781 ../lib/modules/windowsUser.inc:236 +#: ../lib/modules/windowsUser.inc:561 ../lib/modules/inetOrgPerson.inc:808 +#: ../lib/modules/inetOrgPerson.inc:3505 ../lib/modules/freeRadius.inc:112 +#: ../lib/modules/freeRadius.inc:118 ../lib/modules/zarafaServer.inc:88 +#: ../lib/modules/zarafaServer.inc:159 ../lib/modules/qmailGroup.inc:68 +#: ../lib/modules/qmailGroup.inc:119 ../lib/modules/organizationalRole.inc:81 +#: ../lib/modules/organizationalRole.inc:159 +#: ../lib/modules/passwordSelfReset.inc:160 +#: ../lib/modules/passwordSelfReset.inc:209 +#: ../lib/modules/windowsGroup.inc:110 ../lib/modules/windowsGroup.inc:161 +#: ../lib/modules/groupOfNames.inc:81 ../lib/modules/groupOfNames.inc:193 +msgid "Hidden options" +msgstr "Options cachées" + +#: ../templates/config/confmain.php:375 +msgid "Hidden tools" +msgstr "Outils cachés" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1115 +msgid "Hide" +msgstr "Masquer" + +#: ../lib/modules/customScripts.inc:88 ../lib/modules/customScripts.inc:102 +#: ../lib/modules/customScripts.inc:112 +msgid "Hide command in messages" +msgstr "Masquer les commandes dans les messages" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1116 +msgid "Hide internal attributes" +msgstr "Masquer les attributs internes" + +#: ../lib/modules/customScripts.inc:92 ../lib/modules/customScripts.inc:104 +msgid "Hide tab" +msgstr "Masquer l'onglet" + +#: ../templates/3rdParty/pla/lib/page.php:407 +msgid "Hide/Unhide the tree" +msgstr "Masquer/Afficher l'arbre" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:58 +msgid "Hint" +msgstr "Astuce" + +#: ../templates/masscreate.php:249 +msgid "" +"Hint: Format all cells as text in your spreadsheet program and turn off auto " +"correction." +msgstr "" +"Astuce : Mettre les cellules au format texte dans votre tableur et " +"désactiver l'auto correction." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1005 +msgid "Hint: To delete an attribute, empty the text field and click save." +msgstr "" +"Astuce : Pour supprimer un attribut, vider le champ de saisie et cliquez sur " +"sauvegarder." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1342 +msgid "" +"Hint: You must choose exactly one structural object class (shown in bold " +"above)" +msgstr "" +"Astuce : vous devez impérativement choisir une objectclass structurelle " +"( affichées en gras )" + +#: ../lib/modules/posixAccount.inc:535 ../lib/modules/windowsUser.inc:218 +#: ../lib/modules/groupOfNamesUser.inc:61 +msgid "Hold the CTRL-key to (de)select multiple groups." +msgstr "" +"Maintenez enfoncée la touche Ctrl pour (dé)selectionner plusieurs groupes." + +#: ../lib/modules/organizationalRoleUser.inc:61 +msgid "Hold the CTRL-key to (de)select multiple roles." +msgstr "" +"Maintenez enfoncée la touche Ctrl pour (dé)selectionner plusieurs rôles." + +#: ../lib/types/user.inc:98 ../lib/modules/sambaSamAccount.inc:230 +#: ../lib/modules/sambaSamAccount.inc:354 +#: ../lib/modules/sambaSamAccount.inc:1501 +#: ../lib/modules/sambaSamAccount.inc:1916 ../lib/modules/posixAccount.inc:100 +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:103 +#: ../lib/modules/posixAccount.inc:310 ../lib/modules/posixAccount.inc:416 +#: ../lib/modules/posixAccount.inc:473 ../lib/modules/posixAccount.inc:477 +#: ../lib/modules/posixAccount.inc:481 ../lib/modules/posixAccount.inc:518 +#: ../lib/modules/posixAccount.inc:1199 ../lib/modules/posixAccount.inc:1459 +#: ../lib/modules/posixAccount.inc:1655 ../lib/modules/posixAccount.inc:1755 +#: ../lib/modules/posixAccount.inc:1854 ../lib/modules/windowsUser.inc:247 +#: ../lib/modules/windowsUser.inc:436 ../lib/modules/windowsUser.inc:479 +#: ../lib/modules/windowsUser.inc:526 ../lib/modules/windowsUser.inc:618 +#: ../lib/modules/windowsUser.inc:768 ../lib/modules/windowsUser.inc:1629 +msgid "Home directory" +msgstr "Répertoire utilisateur" + +#: ../lib/modules/posixAccount.inc:103 +#, php-format +msgid "" +"Home directory changed. To keep home directory you have to run the following " +"command as root: 'mv %s %s'" +msgstr "" +"Le Répertoire home Utilisateur a changé. Vous devez lancer la commande " +"suivante en tant que root pour garder le répertoire utilisateur : 'mv %s %s'" + +#: ../lib/modules/sambaSamAccount.inc:214 +#: ../lib/modules/sambaSamAccount.inc:231 +#: ../lib/modules/sambaSamAccount.inc:302 +#: ../lib/modules/sambaSamAccount.inc:486 +#: ../lib/modules/sambaSamAccount.inc:594 +#: ../lib/modules/sambaSamAccount.inc:1203 +#: ../lib/modules/sambaSamAccount.inc:1509 +#: ../lib/modules/sambaSamAccount.inc:1750 +#: ../lib/modules/sambaSamAccount.inc:1901 +#: ../lib/modules/sambaSamAccount.inc:1917 ../lib/modules/windowsUser.inc:244 +#: ../lib/modules/windowsUser.inc:430 ../lib/modules/windowsUser.inc:525 +#: ../lib/modules/windowsUser.inc:766 ../lib/modules/windowsUser.inc:1630 +msgid "Home drive" +msgstr "Lettre de lecteur utilisateur" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:95 +#: ../lib/modules/sambaSamAccount.inc:217 +#: ../lib/modules/sambaSamAccount.inc:305 +#: ../lib/modules/sambaSamAccount.inc:494 +#: ../lib/modules/sambaSamAccount.inc:596 +#: ../lib/modules/sambaSamAccount.inc:1211 +#: ../lib/modules/sambaSamAccount.inc:1754 +#: ../lib/modules/sambaSamAccount.inc:1900 +msgid "Home path" +msgstr "Chemin du répertoire utilisateur" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:96 +msgid "Home path is invalid." +msgstr "Le chemin utilisateur n'est pas valable." + +#: ../lib/modules/zarafaUser.inc:129 +msgid "Home server for the user." +msgstr "Serveur de fichier de l'utilisateur." + +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:160 +#: ../lib/modules/inetOrgPerson.inc:425 ../lib/modules/inetOrgPerson.inc:575 +#: ../lib/modules/inetOrgPerson.inc:752 ../lib/modules/inetOrgPerson.inc:756 +#: ../lib/modules/inetOrgPerson.inc:1390 ../lib/modules/inetOrgPerson.inc:1393 +#: ../lib/modules/inetOrgPerson.inc:1901 ../lib/modules/inetOrgPerson.inc:2489 +#: ../lib/modules/inetOrgPerson.inc:3531 ../lib/modules/inetOrgPerson.inc:3582 +msgid "Home telephone number" +msgstr "Numéro de téléphone personnel" + +#: ../lib/modules/posixAccount.inc:100 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/windowsUser.inc:618 ../lib/modules/windowsUser.inc:619 +msgid "Homedirectory contains invalid characters." +msgstr "Le répertoire utilisateur contient des caractères non valables." + +#: ../lib/types/sudo.inc:79 ../lib/modules/asteriskAccount.inc:107 +#: ../lib/modules/asteriskAccount.inc:254 +#: ../lib/modules/asteriskAccount.inc:268 +#: ../lib/modules/asteriskAccount.inc:318 +#: ../lib/modules/asteriskAccount.inc:591 +#: ../lib/modules/asteriskAccount.inc:984 ../lib/modules/nisnetgroup.inc:217 +#: ../lib/modules/nisnetgroup.inc:585 ../lib/modules/fixed_ip.inc:580 +#: ../lib/modules/hostObject.inc:145 +msgid "Host" +msgstr "Hôte" + +#: ../lib/types/host.inc:62 +msgid "Host accounts (e.g. Samba)" +msgstr "Machine Compte (ex. Samba)" + +#: ../lib/types/host.inc:193 +#, php-format +msgid "Host count: %s" +msgstr "Nombre d'hôtes : %s" + +#: ../lib/types/host.inc:94 +msgid "Host description" +msgstr "Description Machine" + +#: ../lib/modules/account.inc:96 ../lib/modules/posixAccount.inc:549 +#: ../lib/modules/posixAccount.inc:557 +msgid "Host description. If left empty host name will be used." +msgstr "Description de la machine. Le nom d'hôte sera utilisé par défaut." + +#: ../lib/modules/hostObject.inc:91 ../lib/modules/hostObject.inc:98 +#: ../lib/modules/hostObject.inc:217 +msgid "Host list" +msgstr "Liste de Machines" + +#: ../lib/types/host.inc:91 ../lib/types/host.inc:92 ../lib/types/bind.inc:77 +#: ../lib/modules/account.inc:91 ../lib/modules/account.inc:212 +#: ../lib/modules/windowsHost.inc:74 ../lib/modules/windowsHost.inc:94 +#: ../lib/modules/windowsHost.inc:119 ../lib/modules/windowsHost.inc:131 +#: ../lib/modules/windowsHost.inc:142 ../lib/modules/windowsHost.inc:288 +#: ../lib/modules/posixAccount.inc:115 ../lib/modules/posixAccount.inc:116 +#: ../lib/modules/posixAccount.inc:118 ../lib/modules/posixAccount.inc:375 +#: ../lib/modules/posixAccount.inc:406 ../lib/modules/posixAccount.inc:544 +#: ../lib/modules/posixAccount.inc:1422 ../lib/modules/posixAccount.inc:1844 +#: ../lib/modules/bindDLZ.inc:81 ../lib/modules/bindDLZ.inc:140 +#: ../lib/modules/bindDLZ.inc:144 ../lib/modules/bindDLZ.inc:240 +#: ../lib/modules/bindDLZ.inc:294 ../lib/modules/bindDLZ.inc:410 +#: ../lib/modules/bindDLZ.inc:470 ../lib/modules/bindDLZ.inc:497 +#: ../lib/modules/bindDLZ.inc:542 ../lib/modules/bindDLZ.inc:546 +#: ../lib/modules/bindDLZ.inc:750 ../lib/modules/bindDLZ.inc:1464 +#: ../lib/modules/bindDLZ.inc:1492 ../lib/modules/nisnetgroup.inc:153 +#: ../lib/modules/nisnetgroup.inc:481 +msgid "Host name" +msgstr "Nom de machine" + +#: ../lib/modules/posixAccount.inc:122 +msgid "Host name already exists!" +msgstr "Machine déjà existante!" + +#: ../lib/modules/windowsHost.inc:131 ../lib/modules/windowsHost.inc:132 +#: ../lib/modules/posixAccount.inc:116 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/nisnetgroup.inc:153 +msgid "" +"Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Le nom de machine contient des caractères non valides. Les caractères " +"valides sont: a-z, A-Z, 0-9 et .-_ !" + +#: ../lib/modules/posixAccount.inc:118 +msgid "Host name in use. Selected next free host name." +msgstr "Nom de machine déjà utilisé. Nom libre de machine suivant sélectionné." + +#: ../lib/modules/sambaSamAccount.inc:1093 +msgid "Host name must end with $!" +msgstr "Le nom de machine doit se terminer par $ !" + +#: ../lib/modules/account.inc:92 ../lib/modules/posixAccount.inc:545 +msgid "" +"Host name of the host which should be created. Valid characters are: a-z,A-" +"Z,0-9, .-_$. Host names are always ending with $. If last character is not $ " +"it will be added. If host name is already used host name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"Nom de machine qui doit être créé. Les caractères autorisés sont: a-z,A-" +"Z,0-9, .-_$. Les noms de machine se terminent toujours par $. Si le dernier " +"caractère n'est pas $, il sera ajouté. Si le nom de machine existe déjà , il " +"sera suffixé par un chiffre. Le premier chiffre disponible suivant sera " +"utilisé." + +#: ../lib/types/host.inc:53 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:96 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:227 ../lib/modules/sudoRole.inc:78 +#: ../lib/modules/sudoRole.inc:103 ../lib/modules/sudoRole.inc:165 +#: ../lib/modules/sudoRole.inc:217 ../lib/modules/sudoRole.inc:229 +#: ../lib/modules/sudoRole.inc:343 ../lib/modules/sudoRole.inc:807 +#: ../lib/modules/fixed_ip.inc:80 ../lib/modules/hostObject.inc:69 +#: ../lib/modules/hostObject.inc:79 +msgid "Hosts" +msgstr "Machines" + +#: ../lib/modules/qmailUser.inc:352 +msgid "I am out of office." +msgstr "Je suis absent." + +#: ../lib/modules/posixGroup.inc:602 ../lib/modules/posixAccount.inc:106 +#: ../lib/modules/posixAccount.inc:1169 +msgid "ID is already in use" +msgstr "L'ID existe déjà" + +#: ../lib/modules/posixGroup.inc:600 ../lib/modules/posixGroup.inc:601 +#: ../lib/modules/posixGroup.inc:602 ../lib/modules/posixGroup.inc:724 +#: ../lib/modules/posixAccount.inc:104 ../lib/modules/posixAccount.inc:105 +#: ../lib/modules/posixAccount.inc:106 ../lib/modules/posixAccount.inc:1160 +#: ../lib/modules/posixAccount.inc:1165 ../lib/modules/posixAccount.inc:1169 +msgid "ID-Number" +msgstr "Numéro ID" + +#: ../lib/modules/zarafaUser.inc:299 ../lib/modules/zarafaUser.inc:642 +#: ../lib/modules/zarafaUser.inc:1331 +msgid "IMAP" +msgstr "IMAP" + +#: ../lib/modules/imapAccess.inc:86 ../lib/modules/imapAccess.inc:124 +msgid "IMAP admin user" +msgstr "Administrateur IMAP" + +#: ../lib/modules/imapAccess.inc:89 ../lib/modules/imapAccess.inc:131 +msgid "IMAP password input" +msgstr "Saisie du mot de passe IMAP" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ipHost.inc:55 +#: ../lib/modules/ipHost.inc:65 ../lib/modules/ipHost.inc:128 +#: ../lib/modules/asteriskAccount.inc:227 +#: ../lib/modules/asteriskAccount.inc:295 +#: ../lib/modules/asteriskAccount.inc:522 +#: ../lib/modules/asteriskAccount.inc:746 +#: ../lib/modules/asteriskAccount.inc:1011 +#: ../lib/modules/asteriskAccount.inc:1291 ../lib/modules/bindDLZ.inc:85 +#: ../lib/modules/bindDLZ.inc:89 ../lib/modules/bindDLZ.inc:248 +#: ../lib/modules/bindDLZ.inc:488 ../lib/modules/bindDLZ.inc:645 +#: ../lib/modules/bindDLZ.inc:1472 ../lib/modules/freeRadius.inc:84 +#: ../lib/modules/freeRadius.inc:122 ../lib/modules/freeRadius.inc:193 +#: ../lib/modules/freeRadius.inc:225 ../lib/modules/freeRadius.inc:281 +#: ../lib/modules/freeRadius.inc:537 ../lib/modules/fixed_ip.inc:106 +#: ../lib/modules/fixed_ip.inc:421 ../lib/modules/fixed_ip.inc:741 +msgid "IP address" +msgstr "Adresse IP" + +#: ../lib/modules/ddns.inc:98 ../lib/modules/ddns.inc:112 +#: ../lib/modules/ddns.inc:121 ../lib/modules/ddns.inc:381 +#: ../lib/modules/ddns.inc:424 +msgid "IP address of the DNS server" +msgstr "Adresse IP du serveur DNS" + +#: ../lib/modules/asteriskAccount.inc:228 +msgid "IP address of the peer. Valid only for realtime peers." +msgstr "Adresse IP du pair. Valable uniquement pour les pairs temps-réel." + +#: ../lib/modules/asteriskAccount.inc:236 +msgid "IP address or domain name of the registration server." +msgstr "Adresse IP ou nom pleinement qualifié du serveur d'enregistrement." + +#: ../lib/modules/ipHost.inc:69 ../lib/modules/ipHost.inc:84 +#: ../lib/modules/ipHost.inc:104 ../lib/modules/ipHost.inc:251 +msgid "IP addresses" +msgstr "Adresses IP" + +#: ../lib/modules/bindDLZ.inc:642 +msgid "IP addresses (\"A/AAAA\" records)" +msgstr "Adresse IP (enregistrements \"A/AAAA\")" + +#: ../lib/modules/fixed_ip.inc:119 +msgid "IP list" +msgstr "Liste des IP" + +#: ../lib/modules/customFields.inc:514 +msgid "Icon" +msgstr "Icone" + +#: ../lib/modules/passwordSelfReset.inc:144 +#: ../lib/modules/passwordSelfReset.inc:506 +msgid "Identification method" +msgstr "Méthode d'identification" + +#: ../templates/masscreate.php:298 ../templates/masscreate.php:372 +msgid "Identifier" +msgstr "Identifieur" + +#: ../lib/modules/sambaSamAccount.inc:238 +#: ../lib/modules/sambaSamAccount.inc:1527 +#: ../lib/modules/sambaSamAccount.inc:1928 +msgid "Idle time limit" +msgstr "Temps d'inactivité" + +#: ../lib/modules/freeRadius.inc:108 ../lib/modules/freeRadius.inc:132 +#: ../lib/modules/freeRadius.inc:157 ../lib/modules/freeRadius.inc:217 +#: ../lib/modules/freeRadius.inc:240 ../lib/modules/freeRadius.inc:289 +#: ../lib/modules/freeRadius.inc:541 +msgid "Idle timeout" +msgstr "Temps d'inactivité" + +#: ../lib/modules/qmailUser.inc:256 +msgid "" +"If account status is set to deleted, the earliest date when the mail message " +"store including all remaining content will be deleted from the filesystem." +msgstr "" +"Si le compte est passé en statut \"supprimé\", tous ses messages seront " +"supprimés du système de fichier." + +#: ../lib/modules/customFields.inc:177 +msgid "" +"If activated then LAM will show an accordion view if there is more than one " +"group per account type." +msgstr "" +"Si actif, LAM affichera une vue en accordéon s'il y a plus d'un groupe par " +"type de compte." + +#: ../lib/modules/ppolicyUser.inc:60 +msgid "" +"If activated then the user is forced to change his password at the next " +"login." +msgstr "" +"Oblige l'utilisateur a changer son mot de passe à la prochaine connexion." + +#: ../lib/modules/sambaSamAccount.inc:268 +msgid "If checked Unix password will also be used as Samba password." +msgstr "" +"Si selectionné, le mot de passe unix sera aussi utilisé comme mot de passe " +"samba." + +#: ../lib/modules/posixAccount.inc:527 +msgid "" +"If checked account will be deactivated by putting a \"!\" before the " +"encrypted password." +msgstr "" +"Si coché, le compte sera desactivé en mettant un \"!\" devant le mot de " +"passe crypté." + +#: ../lib/modules/sambaSamAccount.inc:274 +msgid "If checked no password will be used." +msgstr "Si coché, le compte n'aura pas de mot de passe." + +#: ../lib/modules/windowsUser.inc:199 +msgid "If checked password does not expire." +msgstr "Si coché, le mot de passe n'expire jamais." + +#: ../lib/modules/sambaSamAccount.inc:280 +msgid "If checked password does not expire. (Setting X-Flag)" +msgstr "Si sélectionné, le mot de passe n'expirera pas (paramètre X-Flag)" + +#: ../lib/modules/windowsUser.inc:196 +msgid "" +"If checked then the account is locked. You may only unlock accounts but not " +"lock them." +msgstr "" +"Si coché, le compte est bloqué. Vous pouvez uniquement débloquer des comptes " +"mais pas les bloquer." + +#: ../lib/modules/windowsUser.inc:193 +msgid "If checked then the account will be deactivated." +msgstr "Si coché, le compte sera désactivé." + +#: ../lib/modules/sambaSamAccount.inc:286 +msgid "If checked then the account will be deactivated. (Setting D-Flag)" +msgstr "Si coché, le compte sera desactivé. (paramètre D-Flag)" + +#: ../lib/modules/sambaSamAccount.inc:289 +msgid "" +"If checked then the account will be locked (setting L-Flag). You usually " +"want to use this setting to unlock user accounts which were locked because " +"of failed login attempts." +msgstr "" +"Si coché, le compte sera bloqué (param. L-Flag). Vous utilisez " +"habituellement cette option pour bloquer les utilisateurs ayants atteins le " +"nombre limite de connexions infructueuses." + +#: ../help/help.inc:177 +msgid "" +"If checked then the user will not be able to create new entries of this " +"account type." +msgstr "" +"Si coché, l'utilisateur ne pourra pas créer de nouvelle entrée pour ce type " +"de compte." + +#: ../help/help.inc:179 +msgid "" +"If checked then the user will not be able to delete entries of this account " +"type." +msgstr "" +"Si coché, l'utilisateur ne pourra pas supprimer d'entrée pour ce type de " +"compte." + +#: ../lib/modules/posixGroup.inc:481 +msgid "" +"If empty GID number will be generated automaticly depending on your " +"configuration settings." +msgstr "" +"Si vide, le numéro GID sera généré automatiquement. En fonction des " +"paramètres de Configuration" + +#: ../lib/modules/qmailUser.inc:236 +msgid "If empty GID number will be generated automaticly." +msgstr "Si vide, un numéro de GID sera généré automatiquement." + +#: ../lib/modules/qmailUser.inc:232 ../lib/modules/posixAccount.inc:462 +msgid "If empty UID number will be generated automaticly." +msgstr "Si vide, le numéro UID sera généré automatiquement." + +#: ../lib/modules/ppolicy.inc:125 +msgid "" +"If enabled the user will not be allowed to login after there have been a " +"specified number of consecutive failed login attempts." +msgstr "" +"Si activé, l'utilisateur ne pourra plus se connecter après le nombre " +"d'échecs de connexion consécutifs." + +#: ../help/help.inc:127 +msgid "" +"If enabled then LAM will use user and password that is provided by the web " +"server via HTTP authentication." +msgstr "" +"Si activé, LAM s'autentifiera via HTTP en utilisant les identifiants et mots " +"de passe fournis par le serveur web." + +#: ../help/help.inc:104 +msgid "" +"If enabled then the default language will be enforced and cannot be chosen " +"by the user." +msgstr "" +"Si activé, imposera la langue par défaut et l'utilisateur ne pourra pas la " +"modifier." + +#: ../lib/modules/ppolicy.inc:129 +msgid "" +"If enabled users must change their passwords when they first login after a " +"password is set or reset by the administrator." +msgstr "" +"Si activé, les utilisateurs doivent changer leur mot de passe lors de la " +"première connexion après la ré-initialisation du mot de passe par " +"l'administrateur." + +#: ../lib/modules/asteriskAccount.inc:216 +msgid "" +"If registration context is specified, Asterisk will dynamically create and " +"destroy a NoOp priority 1 extension for a given peer who registers or " +"unregisters with Asterisk." +msgstr "" +"Si le contexte d'enregistrement est spécifié, Asterisk créera et supprimera " +"dynamiquement une extension NoOp de priorité 1 pour un pair donné qui " +"s'inscrit ou se désinscrit d'Asterisk." + +#: ../lib/modules/sambaDomain.inc:110 +msgid "If set then users need to login to change their password." +msgstr "" +"Si positionné, les utilisateurs doivent se connecter pour changer le mot de " +"passe." + +#: ../lib/modules/sambaSamAccount.inc:271 +msgid "If set to \"true\" Unix password will also be used as Samba password." +msgstr "" +"Si Vrai, le mot de passe unix sera aussi utilisé comme mot de passe Samba." + +#: ../lib/modules/sambaSamAccount.inc:292 +msgid "If set to \"true\" account will be deactivated. (Setting D-Flag)" +msgstr "" +"Si sélectionné à \"vrai\" , le compte sera desactivé. (paramètre D-Flag)" + +#: ../lib/modules/sambaSamAccount.inc:277 +msgid "If set to \"true\" no password will be used." +msgstr "Si sélectionné à \"vrai\" , aucun mot de passe sera utilisé." + +#: ../lib/modules/sambaSamAccount.inc:283 +msgid "If set to \"true\" password does not expire. (Setting X-Flag)" +msgstr "" +"Si sélectionné à \"vrai\" , le mot de passe n'expirera pas (paramètre X-Flag)" + +#: ../lib/modules/qmailGroup.inc:197 +msgid "" +"If set to true then all incomming mails needs to come from a member of the " +"list." +msgstr "" +"Si vrai, alors seuls les mails provenant d'un membre de la liste seront " +"acceptés." + +#: ../lib/modules/customFields.inc:125 +msgid "" +"If the LDAP attribute has no value then the checkbox is set to this value." +msgstr "Si l'attribut LDAP est vide alors la case à cocher aura cette valeur." + +#: ../lib/modules/zarafaUser.inc:97 +msgid "" +"If the mailbox size reaches the soft quota limit, the user will not be able " +"to send email until the size of the mailbox is reduced." +msgstr "" +"Si la taille de la messagerie atteint la limite soft du quota, l'utilisateur " +"ne pourra plus envoyer de mail jusqu'à ce que la taille de la messagerie " +"diminue." + +#: ../lib/modules/passwordSelfReset.inc:149 +msgid "" +"If the user has a Samba 3 extension then the Samba password will also be " +"set. Otherwise, no action is taken." +msgstr "" +"Si l'utilisateur a des extensions Samba 3 le mot de passe Samba aussi sera " +"initialisé. Sinon, il n'y aura pas de changement." + +#: ../lib/modules/windowsUser.inc:145 ../lib/modules/windowsUser.inc:149 +msgid "If the user has multiple telephone numbers then please enter it here." +msgstr "" +"Si l'utilisateur a plusieurs numéros de téléphone, veuillez les saisir ici." + +#: ../lib/modules/pykotaPrinter.inc:120 ../lib/modules/pykotaPrinter.inc:124 +msgid "" +"If this entry should be a printer group then you can set the member names " +"here." +msgstr "" +"Si cette entrée doit être un groupe d'impression, vous pouvez définir la " +"liste des membres ici." + +#: ../lib/modules/qmailGroup.inc:229 +msgid "" +"If this is set to true then an incomming mail needs to be approved by the " +"sender." +msgstr "" +"Si vrai, alors un mail qui arrivent doit être approuvé par son expéditeur." + +#: ../lib/modules/qmailGroup.inc:144 ../lib/modules/qmailGroup.inc:148 +msgid "" +"If you enter one or more email addresses then mail delivery errors are " +"forwarded to these addresses instead of the sender of the original mail." +msgstr "" +"Les erreurs de livraisons de mail seront envoyées aux adresses déclarées ici " +"plutôt que retournées à l'envoyeur." + +#: ../lib/modules/sambaSamAccount.inc:331 +msgid "" +"If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" +"Si vous laissez vide LAM utilisera: uidNumber*2 + sambaAlgorithmicRidBase" + +#: ../lib/modules/zarafaServer.inc:85 +msgid "" +"If you run Zarafa behind a reverse proxy then you can specify the server URL " +"here (e.g. \"https://zproxy.example.com:237/z1\")." +msgstr "" +"Si vous utilisez Zarafa derrière un reverse-proxy vous pouvez indiquer l'URL " +"du serveur ici (ex: \"https://zproxy.example.com:237/z1\")." + +#: ../lib/modules/passwordSelfReset.inc:141 +msgid "" +"If you select this option then the user is only authenticated by his email " +"address. LAM Pro will not ask for the answer to the security question. " +"Please handle with care." +msgstr "" +"Avec cette option, l'utilisateur sera authentifié par son adresse mail " +"uniquement. LAM Pro ne demandera pas la réponse à la question de sécurité. A " +"manier avec précaution." + +#: ../lib/modules/heimdalKerberos.inc:131 +msgid "If you set this option then the user cannot request TGT-based tickets." +msgstr "" +"Cette option empêche l'utilisateur de demander des tickets basés sur TGT." + +#: ../lib/modules/mitKerberos.inc:175 ../lib/modules/heimdalKerberos.inc:149 +msgid "If you set this option then the user cannot request any tickets." +msgstr "Cette option empêche l'utilisateur de demander un ticket." + +#: ../lib/modules/mitKerberos.inc:163 ../lib/modules/heimdalKerberos.inc:134 +msgid "" +"If you set this option then the user cannot request forwardable tickets." +msgstr "" +"Cette option empêche l'utilisateur de demander un ticket \"forwardable\"." + +#: ../lib/modules/mitKerberos.inc:160 ../lib/modules/heimdalKerberos.inc:143 +msgid "If you set this option then the user cannot request post-dated tickets." +msgstr "Cette option empêche l'utilisateur de demander des tickets anti-datés." + +#: ../lib/modules/mitKerberos.inc:169 ../lib/modules/heimdalKerberos.inc:137 +msgid "If you set this option then the user cannot request proxiable tickets." +msgstr "" +"Cette option empêche l'utilisateur de demander des tickets \"proxiables\"." + +#: ../lib/modules/mitKerberos.inc:166 ../lib/modules/heimdalKerberos.inc:140 +msgid "If you set this option then the user cannot request renewable tickets." +msgstr "" +"Cette option empêche l'utilisateur de demander des tickets renouvelables." + +#: ../lib/modules/mitKerberos.inc:187 ../lib/modules/heimdalKerberos.inc:146 +msgid "If you set this option then the user cannot request service tickets." +msgstr "" +"Cette option empêche l'utilisateur de de mander des tickets de service." + +#: ../lib/modules/mitKerberos.inc:184 ../lib/modules/sambaSamAccount.inc:295 +#: ../lib/modules/windowsUser.inc:215 ../lib/modules/heimdalKerberos.inc:128 +#: ../help/help.inc:207 +msgid "" +"If you set this option then the user has to change his password at the next " +"login." +msgstr "" +"Cette option oblige l'utilisateur a changer son mot de passe lors de se " +"prochaine connexion." + +#: ../lib/modules/mitKerberos.inc:181 +msgid "" +"If you set this option then the user must preauthenticate himself using a " +"hardware device." +msgstr "" +"Cette option oblige l'utilisateur à se \"pré-authentifier\" avec un token " +"physique." + +#: ../lib/modules/mitKerberos.inc:178 ../lib/modules/heimdalKerberos.inc:152 +msgid "If you set this option then the user must preauthenticate himself." +msgstr "Cette option oblige l'utilisateur à se pré-authentifier." + +#: ../lib/modules/mitKerberos.inc:190 ../lib/modules/heimdalKerberos.inc:155 +msgid "" +"If you set this option then this account is marked as password change " +"service." +msgstr "" +"Si vous activez cette option, ce compte sera marqué comme service de " +"changement de mot de passe." + +#: ../lib/modules/selfRegistration.inc:87 +msgid "" +"If you use the object class \"inetOrgPerson\" and do not provide the \"cn\" " +"attribute then LAM will set it to the user name value." +msgstr "" +"Si vous utilisez l'objectClass \"inetOrgPerson\" et que vous ne fournissez " +"pas d'attribut \"cn\" LAM utilisera le nom d'utilisateur par défaut." + +#: ../help/help.inc:106 +msgid "" +"If you want to change the current preferences password, please enter it here." +msgstr "" +"Si vous voulez changer le mot de passe actuel des préférences, entrez le ici." + +#: ../help/help.inc:141 +msgid "" +"If you want to change your master configuration password, please enter it " +"here." +msgstr "" +"Si vous voulez changer le mot de passe principal actuel, entrez le ici." + +#: ../lib/modules/sambaGroupMapping.inc:151 +msgid "If you want to use a well known RID you can select a well known group." +msgstr "" +"Si vous souhaitez utiliser un RID connu, vous pouvez sélectionner un groupe " +"connu." + +#: ../help/help.inc:116 +msgid "" +"If your server runs on another port then add a comma and the port number " +"after the server." +msgstr "" +"Si votre serveur utilise un autre port alors écrivez le nom du serveur suivi " +"d'une virgule puis le numéro de port." + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:49 +msgid "Image not available" +msgstr "Image non disponible" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:292 +#: ../templates/3rdParty/pla/htdocs/import.php:45 +#: ../templates/3rdParty/pla/htdocs/import_form.php:19 +msgid "Import" +msgstr "Importer" + +#: ../templates/pdfedit/pdfmain.php:215 ../templates/pdfedit/pdfmain.php:216 +#: ../help/help.inc:210 +msgid "Import PDF structures" +msgstr "Importe les structures PDF" + +#: ../templates/config/mainmanage.php:344 +msgid "Import from server" +msgstr "Importer depuis le serveur" + +#: ../templates/profedit/profilemain.php:203 +#: ../templates/profedit/profilemain.php:204 ../help/help.inc:192 +msgid "Import profiles" +msgstr "Importer profils" + +#: ../templates/pdfedit/pdfmain.php:109 +#: ../templates/profedit/profilemain.php:124 +msgid "Import successful" +msgstr "Import réussi !" + +#: ../templates/config/mainmanage.php:189 +msgid "Imported certificate from server." +msgstr "Certificats importés depuis le serveur." + +#: ../templates/config/mainmanage.php:346 +msgid "Imports the certificate directly from your LDAP server." +msgstr "Importer le certificat depuis le serveur LDAP." + +#: ../lib/modules/pykotaPrinter.inc:108 +msgid "" +"In passthrough mode, users are allowed to print without any impact on their " +"quota or account balance." +msgstr "" +"En mode passthrough, les utilisateurs pourront imprimer sans impact sur leur " +"quota ou le solde de leur compte." + +#: ../lib/modules/fixed_ip.inc:115 +msgid "Inactive hosts will not be able to get an address from the DHCP server." +msgstr "Les comptes inactifs ne recevront pas d'adresse du serveur DHCP." + +#: ../templates/3rdParty/pla/htdocs/export_form.php:87 +msgid "Include system attributes" +msgstr "Inclus les attributs systèmes" + +#: ../lib/tools/serverInfo.inc:53 +msgid "Information about the LDAP server." +msgstr "Information concernant le serveur LDAP." + +#: ../lib/modules/sambaSamAccount.inc:233 +#: ../lib/modules/sambaSamAccount.inc:360 +#: ../lib/modules/sambaSamAccount.inc:1513 +#: ../lib/modules/sambaSamAccount.inc:1923 +msgid "Inherit client startup configuration" +msgstr "Hérite la configuration de démarrage du client" + +#: ../templates/schema/schema.php:396 ../templates/schema/schema.php:417 +msgid "Inherited from" +msgstr "Hérité de" + +#: ../templates/schema/schema.php:157 ../templates/schema/schema.php:353 +msgid "Inherits from" +msgstr "hérite de" + +#: ../lib/modules/pykotaUser.inc:249 +msgid "Initial payment" +msgstr "Paiement initial" + +#: ../lib/modules/sambaSamAccount.inc:234 +#: ../lib/modules/sambaSamAccount.inc:363 +#: ../lib/modules/sambaSamAccount.inc:1515 +#: ../lib/modules/sambaSamAccount.inc:1924 +msgid "Initial program" +msgstr "Programme initial" + +#: ../lib/modules/windowsUser.inc:132 ../lib/modules/windowsUser.inc:302 +#: ../lib/modules/windowsUser.inc:503 ../lib/modules/windowsUser.inc:704 +#: ../lib/modules/windowsUser.inc:1591 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:172 ../lib/modules/inetOrgPerson.inc:321 +#: ../lib/modules/inetOrgPerson.inc:617 ../lib/modules/inetOrgPerson.inc:836 +#: ../lib/modules/inetOrgPerson.inc:1187 ../lib/modules/inetOrgPerson.inc:1190 +#: ../lib/modules/inetOrgPerson.inc:1917 ../lib/modules/inetOrgPerson.inc:2681 +#: ../lib/modules/inetOrgPerson.inc:3557 ../lib/modules/inetOrgPerson.inc:3589 +msgid "Initials" +msgstr "Initiales" + +#: ../templates/serverInfo.php:282 ../templates/serverInfo.php:368 +msgid "Initiated" +msgstr "Démarré" + +#: ../lib/modules/quota.inc:57 ../lib/modules/systemQuotas.inc:105 +msgid "Inode hard quota" +msgstr "Quota dur d'inode" + +#: ../lib/modules/quota.inc:57 ../lib/modules/quota.inc:58 +#: ../lib/modules/systemQuotas.inc:105 ../lib/modules/systemQuotas.inc:106 +msgid "" +"Inode hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Le quota hard des inodes contient des caractères incorrectes. Seuls les " +"chiffres sont autorisés." + +#: ../lib/modules/quota.inc:61 ../lib/modules/systemQuotas.inc:109 +msgid "Inode quota" +msgstr "Quota inode" + +#: ../lib/modules/quota.inc:55 ../lib/modules/systemQuotas.inc:103 +msgid "Inode soft quota" +msgstr "Quota souple d'inode" + +#: ../lib/modules/quota.inc:55 ../lib/modules/quota.inc:56 +#: ../lib/modules/systemQuotas.inc:103 ../lib/modules/systemQuotas.inc:104 +msgid "" +"Inode soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Le quota soft des inodes contient des caractères incorrectes. Seuls les " +"chiffres sont autorisés." + +#: ../lib/modules/quota.inc:61 ../lib/modules/quota.inc:62 +#: ../lib/modules/systemQuotas.inc:109 ../lib/modules/systemQuotas.inc:110 +msgid "Inode soft quota must be smaller than inode hard quota." +msgstr "Quota souple doit être plus petit que quota dur." + +#: ../templates/selfService/adminMain.php:685 +msgid "Input fields" +msgstr "Champs d'entrée" + +#: ../lib/modules/asteriskAccount.inc:155 +#: ../lib/modules/asteriskAccount.inc:277 +#: ../lib/modules/asteriskAccount.inc:391 +#: ../lib/modules/asteriskAccount.inc:652 +#: ../lib/modules/asteriskAccount.inc:993 +#: ../lib/modules/asteriskAccount.inc:1255 +msgid "Insecure" +msgstr "Peu sûre" + +#: ../lib/modules/sambaSamAccount.inc:95 +msgid "Inserted user or group name in home path." +msgstr "Nom d'utilisateur ou groupe inséré dans le chemin Home." + +#: ../lib/modules/sambaSamAccount.inc:101 +msgid "Inserted user or group name in logon script." +msgstr "Nom d'utilisateur ou groupe inséré dans script de login." + +#: ../lib/modules/sambaSamAccount.inc:98 +msgid "Inserted user or group name in profile path." +msgstr "Nom d'utilisateur ou groupe inséré dans chemin profil." + +#: ../lib/modules/fixed_ip.inc:475 +msgid "Invalid MAC address." +msgstr "Adresse MAC incorrecte." + +#: ../templates/massBuildAccounts.php:201 +msgid "Invalid RDN attribute!" +msgstr "Attribut RDN incorrecte!" + +#: ../templates/3rdParty/pla/htdocs/rename.php:42 +msgid "Invalid RDN value" +msgstr "Valeur de RDN incorrecte !" + +#: ../lib/modules/fixed_ip.inc:484 +msgid "Invalid description." +msgstr "Description non valable." + +#: ../templates/3rdParty/pla/lib/import_functions.php:560 +msgid "Invalid entry" +msgstr "Entrée incorrecte" + +#: ../lib/modules/selfRegistration.inc:121 +msgid "Invalid format for the specification of additional attributes." +msgstr "Format de spécification des attributs supplémentaires non-valide." + +#: ../lib/modules/imapAccess.inc:185 +msgid "Invalid password for IMAP admin or other problem occured." +msgstr "" +"Le mot de passe de l'administrateur IMAP n'est pas correct ou un autre " +"problème est survenu." + +#: ../lib/modules/ldapPublicKey.inc:546 ../lib/modules/inetOrgPerson.inc:3287 +#: ../lib/modules/customFields.inc:1403 +msgid "Invalid request" +msgstr "Requête incorrecte" + +#: ../templates/config/mainmanage.php:198 +msgid "Invalid server name. Please enter \"server\" or \"server:port\"." +msgstr "" +"Nom de serveur invalide. Vauillez saisir \"serveur\" ou \"serveur:port\"." + +#: ../lib/modules/passwordSelfReset.inc:914 +#: ../lib/modules/passwordSelfReset.inc:1136 +#, php-format +msgid "Invalid value in field \"%s\"." +msgstr "Valeur invalide dans le champ \"%s\"." + +#: ../lib/modules/kolabUser.inc:117 ../lib/modules/kolabUser.inc:124 +#: ../lib/modules/kolabUser.inc:186 ../lib/modules/kolabUser.inc:230 +#: ../lib/modules/kolabUser.inc:315 ../lib/modules/kolabUser.inc:756 +#: ../lib/modules/kolabUser.inc:885 +msgid "Invitation policy" +msgstr "Stratégie d'invite" + +#: ../lib/modules/kolabUser.inc:128 +msgid "Invitation policy list" +msgstr "Liste de stratégie d'invite" + +#: ../lib/modules/sambaSamAccount.inc:569 +msgid "Islamabad, Karachi" +msgstr "Islamabad, Karachi" + +#: ../lib/modules/range.inc:116 +msgid "It is not possible to delete all ranges." +msgstr "Impossible de supprimer toutes les plages." + +#: ../lib/modules/posixGroup.inc:600 ../lib/modules/posixAccount.inc:105 +msgid "" +"It is possible that this ID-number is reused. This can cause several " +"problems because files with old permissions might still exist. To avoid this " +"warning set maxUID to a higher value." +msgstr "" +"Il est possible que ce numéro soit ré-utilisé. Ceci peut créer plusieurs " +"problèmes parce que des fichiers avec des vielles permissions peuvent encore " +"exister. Pour éviter cet avertissement, mettez maxUID à une plus grande " +"valeur." + +#: ../lib/modules/pykotaUser.inc:284 ../lib/modules/pykotaUser.inc:387 +#: ../lib/modules/pykotaUser.inc:1021 +msgid "Job history" +msgstr "Historique des tâches" + +#: ../lib/modules/pykotaUser.inc:156 ../lib/modules/pykotaUser.inc:289 +#: ../lib/modules/pykotaUser.inc:295 ../lib/modules/pykotaUser.inc:327 +msgid "Job suffix" +msgstr "Sufixe des tâches" + +#: ../lib/modules/inetOrgPerson.inc:89 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:226 ../lib/modules/inetOrgPerson.inc:337 +#: ../lib/modules/inetOrgPerson.inc:590 ../lib/modules/inetOrgPerson.inc:636 +#: ../lib/modules/inetOrgPerson.inc:640 ../lib/modules/inetOrgPerson.inc:1438 +#: ../lib/modules/inetOrgPerson.inc:1441 ../lib/modules/inetOrgPerson.inc:1891 +#: ../lib/modules/inetOrgPerson.inc:2692 ../lib/modules/inetOrgPerson.inc:3539 +#: ../lib/modules/inetOrgPerson.inc:3585 +msgid "Job title" +msgstr "Profession" + +#: ../lib/modules/inetOrgPerson.inc:637 ../lib/modules/inetOrgPerson.inc:641 +msgid "Job title of user: President, department manager, ..." +msgstr "Titre utilisateur: Président,responsable,chef de projet,..." + +#: ../lib/lists.inc:297 +msgid "Jump 10 pages backward" +msgstr "Retourner 10 pages en arrière" + +#: ../lib/lists.inc:317 +msgid "Jump 10 pages forward" +msgstr "Aller 10 pages en avant" + +#: ../templates/schema/schema.php:255 +msgid "Jump to a matching rule" +msgstr "Aller à une règle correspondante" + +#: ../templates/schema/schema.php:114 +msgid "Jump to an attribute type" +msgstr "Aller à un type attribut" + +#: ../templates/schema/schema.php:308 ../templates/schema/schema.php:358 +#: ../templates/schema/schema.php:373 +msgid "Jump to an object class" +msgstr "Aller à une classe d'objet" + +#: ../lib/lists.inc:292 +msgid "Jump to first page" +msgstr "Aller à la première page" + +#: ../lib/lists.inc:322 +msgid "Jump to last page" +msgstr "Aller à la dernière page" + +#: ../lib/modules/mitKerberos.inc:94 ../lib/modules/heimdalKerberos.inc:81 +msgid "Kerberos" +msgstr "Kerberos" + +#: ../lib/modules/kolabGroup.inc:74 ../lib/modules/kolabUser.inc:80 +msgid "Kolab" +msgstr "Kolab" + +#: ../lib/modules/kolabSharedFolder.inc:82 +msgid "Kolab shared folder" +msgstr "Dossier partagé Kolab" + +#: ../lib/types/kolabSharedFolderType.inc:53 +msgid "Kolab shared folders" +msgstr "Dossiers partagés Kolab" + +#: ../lib/types/kolabSharedFolderType.inc:62 +msgid "Kolab shared folders (e.g. mail folders)" +msgstr "Dossiers partagés Kolab (ex dossiers de mail)" + +#: ../lib/modules/posixGroup.inc:517 +msgid "" +"LAM checks if the entered group name and GID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique group names or " +"GIDs." +msgstr "" +"LAM vérifie si le nom de groupe saisi et le GID sont uniques. Déclarez ici " +"le suffixe LDAP utilisé pour la recherche de doublons. Par défaut, c'est le " +"suffixe de type de compte qui sera utilisé. Vous n'avez besoin de modifier " +"ce paramètre que si vous avez plusieurs profils serveur avec des OU " +"différentes mais que vous souhaitez des noms de groupe ou des GID uniques." + +#: ../lib/modules/posixAccount.inc:490 +msgid "" +"LAM checks if the entered user name and UID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique user names or " +"UIDs." +msgstr "" +"LAM vérifie si le nom d'utilisateur saisi et l'UID sont uniques. Déclarez " +"ici le suffixe LDAP a utiliser pour vérifier les doublons. Par défaut, le " +"suffixe de type de compte sera utilisé. Vous n'avez besoin de modifier cette " +"entrée que si vous avez plusieurs profils de serveur avec des OU différentes " +"mais que vous souhaitez avoir des noms d'utilisateurs et des numéro d'UID " +"uniques." + +#: ../templates/login.php:265 ../templates/config/index.php:85 +msgid "LAM configuration" +msgstr "Configuration de LAM" + +#: ../templates/massBuildAccounts.php:239 +msgid "LAM has checked your input and is now ready to create the accounts." +msgstr "LAM à contrôlé vos données et est prêt à créer les comptes." + +#: ../lib/modules/posixGroup.inc:505 ../lib/modules/posixAccount.inc:458 +#: ../lib/modules/inetOrgPerson.inc:813 ../lib/modules/customFields.inc:137 +msgid "" +"LAM supports CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 and SMD5 to generate the " +"hash value of passwords. SSHA and CRYPT are the most common but CRYPT does " +"not support passwords greater than 8 letters. We do not recommend to use " +"plain text passwords." +msgstr "" +"LAM supporte CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 et SMD5 pour générer la " +"valeur hash d'un mot de passe utilisateur. SSHA et CRYPT sont les plus " +"utilisés mais CRYPT ne supporte pas les mots de passe de plus de 8 " +"caractères. Nous déconseillons l'utilisation des mots de passe en clair." + +#: ../templates/tests/index.php:50 +msgid "LAM tests" +msgstr "tests LAM" + +#: ../lib/modules/imapAccess.inc:128 +msgid "LAM user password" +msgstr "mot de passe utilisateur pour LAM" + +#: ../templates/massDoUpload.php:132 +#, php-format +msgid "LAM was unable to create account %s! An LDAP error occured." +msgstr "LAM n'a pas pu créer le compte %s ! Une erreur LDAP s'est produite." + +#: ../lib/modules/sambaGroupMapping.inc:603 +msgid "LAM was unable to find a Samba 3 domain with this name!" +msgstr "LAM n'a pu trouver un Domaine SAMBA3 avec ce nom!" + +#: ../lib/modules/sambaSamAccount.inc:118 +msgid "LAM was unable to find a domain with this name!" +msgstr "LAM n'a pas trouvé de domaine avec ce nom!" + +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/windowsUser.inc:1449 +msgid "LAM was unable to find a group with this name!" +msgstr "LAM n'a pu trouver de groupe ayant ce nom !" + +#: ../lib/modules/posixAccount.inc:2330 ../lib/modules/posixAccount.inc:2391 +#: ../lib/modules/windowsUser.inc:1535 ../lib/modules/groupOfNamesUser.inc:454 +#, php-format +msgid "LAM was unable to modify group memberships for group: %s" +msgstr "LAM n'a pas pu modifier la liste des membres du groupe : %s" + +#: ../lib/modules/organizationalRoleUser.inc:397 +#, php-format +msgid "LAM was unable to modify memberships for role: %s" +msgstr "LAM n'a pas pu modifier la liste des membres du rôle : %s" + +#: ../lib/modules/posixGroup.inc:521 ../lib/modules/posixAccount.inc:498 +msgid "" +"LAM will automatically suggest UID/GID numbers. You can either use a fixed " +"range of numbers or an LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "" +"LAM proposera automatiquement les numéros d'UID/GID. Vous pouvez indiquer " +"une plage fixe ou une entrée LDAP contenant un oblectClass \"sambaUnixIdPool" +"\"." + +#: ../help/help.inc:219 +msgid "LAM will search for accounts in this part of the LDAP tree." +msgstr "LAM cherchera les comptes dans cette branche de l'arbre LDAP" + +#: ../lib/modules/posixAccount.inc:437 +msgid "" +"LAM will suggest a user name based on e.g. first and last name. Here you can " +"specify the suggestion. %sn% will be replaced by the last name. @givenname@ " +"will be replaced by the first character of first name. Only attributes of " +"tab Personal may be used." +msgstr "" +"LAM proposera un nom d'utilisateur basé par ex sur le prénom et le nom. Vous " +"pouvez définir ici le format. %sn% sera remplacé par le nom de famille. " +"%givenname% par le premier caractère du prénom.Seuls les attributs de " +"l'onglet Personnel peuvent être utilisé." + +#: ../help/help.inc:221 +msgid "" +"LAM will use this LDAP DN and password to search for accounts. It is " +"sufficient to specify an account with read rights. If nothing is inserted " +"then LAM will try to connect anonymously." +msgstr "" +"LAM utilisera cd DN LDAP et mot de passe pour chercher les comptes.Un compte " +"avec des droits en lecture est suffisant. Si rien est indiqué LAM tentera de " +"se connecter Anonymement." + +#: ../lib/modules/qmailUser.inc:57 +msgid "LDAP + program" +msgstr "LDAP + programme" + +#: ../templates/config/confmodules.php:97 ../templates/config/confmain.php:127 +#: ../templates/config/moduleSettings.php:96 +#: ../templates/config/conftypes.php:115 +msgid "LDAP Account Manager Configuration" +msgstr "Configuration LDAP Account Manager" + +#: ../templates/multiEdit.php:198 ../templates/config/conftypes.php:386 +msgid "LDAP Suffix is invalid!" +msgstr "Le suffixe LDAP est incorrecte !" + +#: ../templates/serverInfo.php:182 +msgid "LDAP entries" +msgstr "Entrées LDAP" + +#: ../lib/modules/qmailGroup.inc:173 ../lib/modules/qmailGroup.inc:177 +msgid "LDAP entries that are allowed to send to this list." +msgstr "Les entrées LDAP autorisées à écrire à cette liste." + +#: ../lib/modules/qmailGroup.inc:157 ../lib/modules/qmailGroup.inc:161 +msgid "LDAP entries that are member of this list." +msgstr "Les entrées LDAP membres de cette liste." + +#: ../lib/modules/qmailGroup.inc:165 ../lib/modules/qmailGroup.inc:169 +msgid "LDAP entries that moderate this list (e.g. approve mails)." +msgstr "" +"Les entrées LDAP qui modèrent cette liste (ex pour approuver les mails)." + +#: ../templates/login.php:642 ../lib/account.inc:1204 +msgid "LDAP error, server says:" +msgstr "Erreur LDAP, le serveur dit :" + +#: ../templates/multiEdit.php:115 ../templates/config/confmain.php:438 +#: ../help/help.inc:271 +msgid "LDAP filter" +msgstr "Filtre LDAP" + +#: ../lib/modules/qmailGroup.inc:189 ../lib/modules/qmailGroup.inc:193 +msgid "" +"LDAP filter to specify allowed senders of this list (e.g. " +"\"((objectclass=qmailUser)(employeeType=manager))\")." +msgstr "" +"Filtre LDAP définissant les expéditeurs autorisés de cette liste (ex : " +"\"((objectclass=qmailUser)(employeeType=manager))\")." + +#: ../lib/modules/qmailGroup.inc:181 ../lib/modules/qmailGroup.inc:185 +msgid "" +"LDAP filter to specify members of this list (e.g. \"((objectclass=qmailUser)" +"(employeeType=accountant))\")." +msgstr "" +"Filtre LDAP définissant les membres de cette liste (ex : " +"\"((objectclass=qmailUser)(employeeType=accountant))\")." + +#: ../lib/modules.inc:1328 +msgid "LDAP operation successful." +msgstr "Opération LDAP réussie" + +#: ../templates/selfService/adminMain.php:464 +msgid "LDAP password" +msgstr "Mot de passe LAM" + +#: ../templates/3rdParty/pla/lib/functions.php:1894 +msgid "LDAP said" +msgstr "LDAP a renvoyé" + +#: ../templates/config/confmain.php:415 ../help/help.inc:122 +msgid "LDAP search" +msgstr "requête LDAP" + +#: ../templates/selfService/adminMain.php:459 ../help/help.inc:222 +msgid "LDAP search attribute" +msgstr "Attribut de recherche LDAP" + +#: ../lib/account.inc:796 +msgid "LDAP search failed! Please check your preferences." +msgstr "La recherche LDAP a échouée ! Vérifiez vos préférences." + +#: ../templates/config/confmain.php:253 ../help/help.inc:124 +msgid "LDAP search limit" +msgstr "Nombre de résultats max retournée par la recherche LDAP" + +#: ../templates/login.php:460 +msgid "LDAP server" +msgstr "Serveur LDAP" + +#: ../lib/account.inc:787 +msgid "LDAP sizelimit exceeded, not all entries are shown." +msgstr "" +"limite de taille LDAP surpassée, toutes les entrées ne sont pas affichées." + +#: ../templates/multiEdit.php:82 ../templates/config/confmain.php:434 +#: ../templates/config/conftypes.php:252 +#: ../templates/selfService/adminMain.php:453 +#: ../templates/profedit/profilepage.php:202 ../help/help.inc:71 +#: ../help/help.inc:218 ../help/help.inc:269 +msgid "LDAP suffix" +msgstr "Suffixe LDAP" + +#: ../templates/massDoUpload.php:86 +msgid "LDAP upload in progress. Please wait." +msgstr "Upload LDAP en cours. Veuillez patienter." + +#: ../templates/selfService/adminMain.php:461 +msgid "LDAP user" +msgstr "Utilisateur LDAP" + +#: ../help/help.inc:220 +msgid "LDAP user and password" +msgstr "Utilisateur et mot de passe LDAP" + +#: ../templates/serverInfo.php:109 +msgid "LDAP version" +msgstr "Version de LDAP" + +#: ../templates/3rdParty/pla/lib/export_functions.php:442 +msgid "LDIF Export" +msgstr "Export LDIF" + +#: ../templates/multiEdit.php:443 +msgid "LDIF file" +msgstr "Fichier LDIF" + +#: ../templates/3rdParty/pla/lib/import_functions.php:149 +#: ../templates/3rdParty/pla/htdocs/import.php:71 +msgid "LDIF import" +msgstr "Import LDIF" + +#: ../templates/3rdParty/pla/lib/import_functions.php:170 +msgid "LDIF import only supports version 1" +msgstr "Seuls les imports LDIF en version 1 sont supprotés" + +#: ../lib/modules/customFields.inc:88 ../lib/modules/customFields.inc:513 +#: ../lib/modules/customFields.inc:1051 ../lib/modules/customFields.inc:1705 +#: ../lib/modules/customFields.inc:2960 +msgid "Label" +msgstr "Etiquette" + +#: ../templates/tests/lamdaemonTest.php:201 +msgid "" +"Lamdaemon path does not end with \".pl\". Did you enter the full path to the " +"script?" +msgstr "" +"L'extension de lamdaemon n'est pas \".pl\". Avez-vous saisi le chemin " +"complet vers le script ?" + +#: ../templates/tests/lamdaemonTest.php:185 +msgid "Lamdaemon server and path" +msgstr "chemin de lamdaemon et serveur" + +#: ../templates/config/confmain.php:334 +msgid "Lamdaemon settings" +msgstr "paramètres de lamdaemon" + +#: ../templates/tests/lamdaemonTest.php:135 +msgid "Lamdaemon successfully run." +msgstr "Lamdaemon correctement lancé." + +#: ../templates/tests/index.php:52 ../templates/tests/lamdaemonTest.php:52 +#: ../lib/tools/tests.inc:110 +msgid "Lamdaemon test" +msgstr "tester lamdaemon" + +#: ../templates/tests/lamdaemonTest.php:291 +msgid "Lamdaemon test finished." +msgstr "test de lamdaemon terminé." + +#: ../templates/tests/lamdaemonTest.php:273 +msgid "Lamdaemon version" +msgstr "version de lamdaemon" + +#: ../templates/tests/lamdaemonTest.php:283 +msgid "Lamdaemon: Quota module installed" +msgstr "Lamdaemon : module de Quota installé" + +#: ../templates/tests/lamdaemonTest.php:279 +msgid "Lamdaemon: check NSS LDAP" +msgstr "Lamdaemon : vérifier NSS LDAP" + +#: ../templates/tests/lamdaemonTest.php:286 +msgid "Lamdaemon: read quotas" +msgstr "Lamdaemon : lire les quota" + +#: ../templates/login.php:397 +#: ../templates/selfService/selfServiceLogin.php:344 +msgid "Language" +msgstr "Langue" + +#: ../templates/config/confmain.php:570 +msgid "Language is not defined!" +msgstr "La langue n'est pas définie !" + +#: ../templates/config/confmain.php:304 +msgid "Language settings" +msgstr "Paramètres de langue" + +#: ../lib/modules/mitKerberos.inc:144 ../lib/modules/mitKerberos.inc:256 +#: ../lib/modules/mitKerberos.inc:404 ../lib/modules/mitKerberos.inc:791 +msgid "Last login" +msgstr "Dernière connexion" + +#: ../lib/types/user.inc:97 ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:219 ../lib/modules/windowsUser.inc:164 +#: ../lib/modules/windowsUser.inc:284 ../lib/modules/windowsUser.inc:511 +#: ../lib/modules/windowsUser.inc:599 ../lib/modules/windowsUser.inc:701 +#: ../lib/modules/windowsUser.inc:1599 ../lib/modules/inetOrgPerson.inc:68 +#: ../lib/modules/inetOrgPerson.inc:156 ../lib/modules/inetOrgPerson.inc:312 +#: ../lib/modules/inetOrgPerson.inc:539 ../lib/modules/inetOrgPerson.inc:648 +#: ../lib/modules/inetOrgPerson.inc:1178 ../lib/modules/inetOrgPerson.inc:1181 +#: ../lib/modules/inetOrgPerson.inc:1893 ../lib/modules/inetOrgPerson.inc:2445 +#: ../lib/modules/inetOrgPerson.inc:3577 +msgid "Last name" +msgstr "Nom de famille" + +#: ../lib/modules/windowsUser.inc:599 ../lib/modules/windowsUser.inc:600 +#: ../lib/modules/inetOrgPerson.inc:68 ../lib/modules/inetOrgPerson.inc:69 +msgid "Last name contains invalid characters or is empty!" +msgstr "" +"Le nom de famille n'est pas renseigné ou contient des caractères incorrectes!" + +#: ../lib/modules/windowsUser.inc:165 ../lib/modules/inetOrgPerson.inc:649 +msgid "Last name of user. Only letters, - and spaces are allowed." +msgstr "" +"Nom de famille de l'utilisateur. Seuls les lettres, les - et les espaces " +"sont autorisés." + +#: ../lib/modules/mitKerberos.inc:140 ../lib/modules/mitKerberos.inc:255 +#: ../lib/modules/mitKerberos.inc:396 ../lib/modules/mitKerberos.inc:787 +#: ../lib/modules/sambaSamAccount.inc:396 +#: ../lib/modules/sambaSamAccount.inc:602 +#: ../lib/modules/sambaSamAccount.inc:1162 +#: ../lib/modules/sambaSamAccount.inc:2282 ../lib/modules/ppolicyUser.inc:87 +#: ../lib/modules/ppolicyUser.inc:136 ../lib/modules/ppolicyUser.inc:395 +#: ../lib/modules/shadowAccount.inc:167 ../lib/modules/shadowAccount.inc:201 +#: ../lib/modules/shadowAccount.inc:365 ../lib/modules/shadowAccount.inc:498 +#: ../lib/modules/shadowAccount.inc:668 +msgid "Last password change" +msgstr "Dernier changement de mot de passe" + +#: ../lib/modules/sambaSamAccount.inc:251 ../lib/modules/shadowAccount.inc:239 +msgid "Last password change (read-only)" +msgstr "Dernier changement de mot de passe (lecture seule)" + +#: ../lib/modules/asteriskAccount.inc:239 +#: ../lib/modules/asteriskAccount.inc:298 +#: ../lib/modules/asteriskAccount.inc:544 +#: ../lib/modules/asteriskAccount.inc:758 +#: ../lib/modules/asteriskAccount.inc:1014 +#: ../lib/modules/asteriskAccount.inc:1297 +msgid "Last qualify milliseconds" +msgstr "milisecondes depuis la dernière qualification" + +#: ../lib/modules/dhcp_settings.inc:153 ../lib/modules/dhcp_settings.inc:209 +#: ../lib/modules/dhcp_settings.inc:224 ../lib/modules/dhcp_settings.inc:256 +#: ../lib/modules/dhcp_settings.inc:569 ../lib/modules/dhcp_settings.inc:675 +msgid "Lease time" +msgstr "Bail" + +#: ../lib/modules/pykotaGroup.inc:125 ../lib/modules/pykotaGroup.inc:135 +#: ../lib/modules/pykotaGroup.inc:173 ../lib/modules/pykotaGroup.inc:182 +#: ../lib/modules/pykotaGroup.inc:227 ../lib/modules/pykotaGroup.inc:474 +#: ../lib/modules/pykotaUser.inc:128 ../lib/modules/pykotaUser.inc:166 +#: ../lib/modules/pykotaUser.inc:233 ../lib/modules/pykotaUser.inc:261 +#: ../lib/modules/pykotaUser.inc:397 ../lib/modules/pykotaUser.inc:898 +msgid "Limit type" +msgstr "Type de limite" + +#: ../templates/3rdParty/pla/htdocs/import.php:102 +msgid "Line" +msgstr "Ligne" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:121 +msgid "Line ends" +msgstr "Fin de Ligne" + +#: ../lib/modules/selfRegistration.inc:57 +#: ../lib/modules/selfRegistration.inc:197 +#: ../lib/modules/passwordSelfReset.inc:100 +#: ../lib/modules/passwordSelfReset.inc:516 +msgid "Link text" +msgstr "Texte du lien" + +#: ../templates/selfService/adminMain.php:394 +msgid "Link to self service login page for your users" +msgstr "Lien pour les utilisateurs vers la page de connexion du self-service." + +#: ../templates/config/conftypes.php:263 ../help/help.inc:87 +msgid "List attributes" +msgstr "Attributs de liste" + +#: ../templates/config/conftypes.php:394 +msgid "List attributes are invalid!" +msgstr "Liste d'attributs incorrecte !" + +#: ../lib/types/zarafaAddressListType.inc:91 +#: ../lib/modules/zarafaAddressList.inc:63 +#: ../lib/modules/zarafaAddressList.inc:104 +#: ../lib/modules/zarafaAddressList.inc:141 +#: ../lib/modules/zarafaAddressList.inc:168 +#: ../lib/modules/zarafaAddressList.inc:187 +#: ../lib/modules/zarafaAddressList.inc:331 +msgid "List name" +msgstr "Nom de liste" + +#: ../lib/modules/zarafaAddressList.inc:168 +msgid "List name already in use." +msgstr "Une liste du même nom existe déjà." + +#: ../lib/modules/sambaSamAccount.inc:315 +msgid "" +"List of Samba workstations the user is allowed to login. Empty means every " +"workstation." +msgstr "" +"Liste des stations de travail sur lesquelles l'utilisateur peut se " +"connecter. Si vide, aucune restriction." + +#: ../templates/config/confmain.php:564 +msgid "List of admin users is empty or invalid!" +msgstr "La liste des utilisateurs administrateur est vide ou non valable !" + +#: ../lib/modules/asteriskAccount.inc:204 +msgid "List of allowed codecs." +msgstr "Liste des codecs autorisés." + +#: ../lib/modules/asteriskAccount.inc:200 +msgid "List of disallowed codecs." +msgstr "Liste des codecs interdits." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:94 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:88 +msgid "List of entries to be deleted:" +msgstr "Liste des entrées a supprimer :" + +#: ../templates/config/confmain.php:430 +msgid "List of valid users" +msgstr "Liste des utilisateurs valides" + +#: ../templates/serverInfo.php:152 +msgid "Listeners" +msgstr "Listeners ( daemons en écoute )" + +#: ../lib/modules.inc:1233 ../help/help.inc:198 +msgid "Load profile" +msgstr "Chargement de profil" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:279 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1226 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +msgid "Loading" +msgstr "Chargment" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:303 +msgid "Loading export" +msgstr "Chargement de l'export" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:290 +msgid "Loading import" +msgstr "Chargement de l'import" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:497 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:233 +msgid "Loading search" +msgstr "Chargement de la recherche" + +#: ../lib/modules/inetLocalMailRecipient.inc:72 +#: ../lib/modules/inetLocalMailRecipient.inc:154 +msgid "Local address" +msgstr "Adresse locale" + +#: ../lib/modules/inetLocalMailRecipient.inc:76 +#: ../lib/modules/inetLocalMailRecipient.inc:106 +#: ../lib/modules/inetLocalMailRecipient.inc:120 +#: ../lib/modules/inetLocalMailRecipient.inc:293 +msgid "Local address list" +msgstr "Liste adresse locale" + +#: ../lib/modules/sambaGroupMapping.inc:72 +msgid "Local group" +msgstr "Groupe local" + +#: ../lib/modules/sambaGroupMapping.inc:115 +#: ../lib/modules/sambaGroupMapping.inc:166 +#: ../lib/modules/sambaGroupMapping.inc:388 +#: ../lib/modules/sambaGroupMapping.inc:555 +msgid "Local members" +msgstr "Membres locaux" + +#: ../lib/types/host.inc:97 ../lib/modules/ipHost.inc:73 +#: ../lib/modules/ipHost.inc:91 ../lib/modules/ipHost.inc:105 +#: ../lib/modules/ipHost.inc:130 ../lib/modules/ipHost.inc:252 +#: ../lib/modules/windowsHost.inc:82 ../lib/modules/windowsHost.inc:106 +#: ../lib/modules/windowsHost.inc:121 ../lib/modules/windowsHost.inc:144 +#: ../lib/modules/windowsHost.inc:290 ../lib/modules/device.inc:77 +#: ../lib/modules/device.inc:109 ../lib/modules/device.inc:129 +#: ../lib/modules/device.inc:178 ../lib/modules/device.inc:419 +#: ../lib/modules/windowsUser.inc:136 ../lib/modules/windowsUser.inc:332 +#: ../lib/modules/windowsUser.inc:504 ../lib/modules/windowsUser.inc:546 +#: ../lib/modules/windowsUser.inc:711 ../lib/modules/windowsUser.inc:1592 +#: ../lib/modules/windowsUser.inc:1734 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:187 ../lib/modules/inetOrgPerson.inc:507 +#: ../lib/modules/inetOrgPerson.inc:554 ../lib/modules/inetOrgPerson.inc:772 +#: ../lib/modules/inetOrgPerson.inc:776 ../lib/modules/inetOrgPerson.inc:1252 +#: ../lib/modules/inetOrgPerson.inc:1255 ../lib/modules/inetOrgPerson.inc:1913 +#: ../lib/modules/inetOrgPerson.inc:2588 ../lib/modules/inetOrgPerson.inc:3517 +#: ../lib/modules/inetOrgPerson.inc:3579 +msgid "Location" +msgstr "Emplacement" + +#: ../lib/modules/nisMailAliasUser.inc:93 +msgid "Location where new alias is stored." +msgstr "Lieu de stockage du nouvel alias." + +#: ../lib/types/user.inc:349 ../lib/types/user.inc:354 +msgid "Lock" +msgstr "Verrouiller" + +#: ../templates/lists/changePassword.php:426 +#: ../templates/lists/changePassword.php:446 +#: ../templates/lists/changePassword.php:448 +#: ../lib/modules/ppolicyUser.inc:150 +msgid "Lock account" +msgstr "Bloquer le compte" + +#: ../templates/lists/changePassword.php:266 +msgid "Lock account?" +msgstr "Bloquer le compte?" + +#: ../lib/modules/posixGroup.inc:208 ../lib/modules/posixAccount.inc:338 +#: ../lib/modules/posixAccount.inc:1499 ../lib/modules/inetOrgPerson.inc:1559 +msgid "Lock password" +msgstr "Bloquer le mot de passe" + +#: ../lib/types/ppolicyType.inc:83 ../lib/modules/ppolicy.inc:104 +#: ../lib/modules/ppolicy.inc:151 ../lib/modules/ppolicy.inc:171 +#: ../lib/modules/ppolicy.inc:264 ../lib/modules/ppolicy.inc:476 +#: ../lib/modules/sambaDomain.inc:133 ../lib/modules/sambaDomain.inc:198 +#: ../lib/modules/sambaDomain.inc:223 ../lib/modules/sambaDomain.inc:340 +#: ../lib/modules/sambaDomain.inc:610 +msgid "Lockout duration" +msgstr "Durée de blocage" + +#: ../lib/modules/sambaDomain.inc:223 +msgid "Lockout duration must be are natural number." +msgstr "La durée du blocage doit etre en chiffres" + +#: ../lib/modules/ppolicyUser.inc:142 +msgid "Lockout time" +msgstr "Heure de blocage" + +#: ../lib/types/ppolicyType.inc:88 ../lib/modules/ppolicy.inc:124 +#: ../lib/modules/ppolicy.inc:150 ../lib/modules/ppolicy.inc:258 +#: ../lib/modules/ppolicy.inc:495 +msgid "Lockout users" +msgstr "Bloquer les utilisateurs" + +#: ../lib/modules/sambaDomain.inc:121 ../lib/modules/sambaDomain.inc:195 +#: ../lib/modules/sambaDomain.inc:225 ../lib/modules/sambaDomain.inc:316 +#: ../lib/modules/sambaDomain.inc:607 +msgid "Lockout users after bad logon attempts" +msgstr "Nombre de tentatives infructueuses avant blocage utilisateur" + +#: ../lib/modules/sambaDomain.inc:225 +msgid "Lockout users after bad logon attempts must be between 0 and 999." +msgstr "" +"La valeur du nombre d'échecs de connexion avant blocage du compte " +"utilisateur doit être comprise entre 0 et 999." + +#: ../templates/config/mainmanage.php:423 ../help/help.inc:150 +msgid "Log destination" +msgstr "Destination du log" + +#: ../templates/config/mainmanage.php:409 ../help/help.inc:148 +msgid "Log level" +msgstr "Niveau de Log" + +#: ../templates/multiEdit.php:448 +msgid "Log output" +msgstr "Sotie du log" + +#: ../templates/main_header.php:128 +#, php-format +msgid "Logged in as: %s" +msgstr "Connecté en tant que : %s" + +#: ../templates/config/mainmanage.php:406 +msgid "Logging" +msgstr "Connexion" + +#: ../templates/login.php:433 ../templates/config/conflogin.php:62 +#: ../templates/config/mainlogin.php:72 +#: ../templates/selfService/selfServiceLogin.php:227 +#: ../templates/selfService/selfServiceLogin.php:366 +#: ../templates/selfService/adminLogin.php:64 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:530 ../help/help.inc:56 +msgid "Login" +msgstr "Connexion" + +#: ../templates/selfService/adminMain.php:500 ../help/help.inc:224 +msgid "Login attribute label" +msgstr "Etiquette de l'attribut de connexion" + +#: ../templates/selfService/adminMain.php:509 ../help/help.inc:226 +msgid "Login caption" +msgstr "Texte de connexion" + +#: ../templates/config/confmain.php:417 ../help/help.inc:120 +msgid "Login method" +msgstr "Méthode de connexion" + +#: ../lib/types/user.inc:99 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:324 ../lib/modules/posixAccount.inc:417 +#: ../lib/modules/posixAccount.inc:530 ../lib/modules/posixAccount.inc:1492 +#: ../lib/modules/posixAccount.inc:1757 ../lib/modules/posixAccount.inc:1855 +#: ../lib/modules/posixAccount.inc:2564 +msgid "Login shell" +msgstr "Shell de connexion" + +#: ../lib/modules/posixAccount.inc:193 ../lib/modules/posixAccount.inc:248 +#: ../lib/modules/posixAccount.inc:493 +msgid "Login shells" +msgstr "Shells de connexion" + +#: ../templates/pdfedit/pdfpage.php:453 +msgid "Logo" +msgstr "Logo" + +#: ../lib/pdfstruct.inc:300 +msgid "Logo file deleted." +msgstr "Fichier de logo effacé." + +#: ../lib/pdfstruct.inc:292 +#, php-format +msgid "Logo is still in use by PDF structure \"%s\" in account type \"%s\"." +msgstr "" +"Le logo est toujours utilisé par la structure PDF \"%s\" du type de compte " +"\"%s\"." + +#: ../lib/modules/sambaDomain.inc:109 ../lib/modules/sambaDomain.inc:192 +#: ../lib/modules/sambaDomain.inc:290 ../lib/modules/sambaDomain.inc:616 +msgid "Logon for password change" +msgstr "Se connecter pour changer le mot de passe" + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:339 +#: ../lib/modules/sambaSamAccount.inc:342 +#: ../lib/modules/sambaSamAccount.inc:526 +#: ../lib/modules/sambaSamAccount.inc:606 +#: ../lib/modules/sambaSamAccount.inc:1284 +#: ../lib/modules/sambaSamAccount.inc:1786 +msgid "Logon hours" +msgstr "Heures de connexion" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:223 +#: ../lib/modules/sambaSamAccount.inc:311 +#: ../lib/modules/sambaSamAccount.inc:510 +#: ../lib/modules/sambaSamAccount.inc:600 +#: ../lib/modules/sambaSamAccount.inc:1237 +#: ../lib/modules/sambaSamAccount.inc:1762 +#: ../lib/modules/sambaSamAccount.inc:1902 ../lib/modules/windowsUser.inc:209 +#: ../lib/modules/windowsUser.inc:424 ../lib/modules/windowsUser.inc:477 +#: ../lib/modules/windowsUser.inc:521 ../lib/modules/windowsUser.inc:613 +#: ../lib/modules/windowsUser.inc:756 ../lib/modules/windowsUser.inc:1628 +msgid "Logon script" +msgstr "Script de Connexion" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:102 ../lib/modules/windowsUser.inc:613 +#: ../lib/modules/windowsUser.inc:614 +msgid "Logon script is invalid!" +msgstr "Le chemin de script n'est pas valable !" + +#: ../templates/selfService/selfServiceMain.php:63 +#: ../templates/selfService/selfServiceMain.php:419 +#: ../templates/main_header.php:135 +msgid "Logout" +msgstr "Déconnexion" + +#: ../lib/modules/dhcp_settings.inc:98 +msgid "M-Node (0x04)" +msgstr "Noeud-M (0x04)" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ieee802device.inc:58 +#: ../lib/modules/ieee802device.inc:68 ../lib/modules/ieee802device.inc:79 +#: ../lib/modules/ieee802device.inc:106 ../lib/modules/fixed_ip.inc:102 +#: ../lib/modules/fixed_ip.inc:429 ../lib/modules/fixed_ip.inc:742 +msgid "MAC address" +msgstr "MAC Adresse" + +#: ../lib/modules/ieee802device.inc:72 +msgid "MAC address list" +msgstr "MAC Adresse - liste" + +#: ../lib/modules/ieee802device.inc:86 ../lib/modules/ieee802device.inc:162 +msgid "MAC addresses" +msgstr "Adresses MAC" + +#: ../lib/modules/mitKerberos.inc:268 +msgid "MIT Kerberos password change command" +msgstr "Commande de modification du mot passe MIT Kerberos" + +#: ../lib/modules/bindDLZ.inc:103 ../lib/modules/bindDLZ.inc:274 +#: ../lib/modules/bindDLZ.inc:280 ../lib/modules/bindDLZ.inc:287 +#: ../lib/modules/bindDLZ.inc:476 ../lib/modules/bindDLZ.inc:495 +msgid "MX record" +msgstr "Eregistrement MX" + +#: ../lib/modules/bindDLZ.inc:414 ../lib/modules/bindDLZ.inc:433 +#: ../lib/modules/bindDLZ.inc:1509 +msgid "MX records" +msgstr "Enregistrements MX" + +#: ../lib/modules/sambaSamAccount.inc:575 +msgid "Magadan, Solomon Islands" +msgstr "Magadan, Solomon Islands" + +#: ../lib/types/mailAlias.inc:53 ../lib/modules/nisMailAliasUser.inc:70 +#: ../lib/modules/nisMailAlias.inc:69 +msgid "Mail aliases" +msgstr "Alias mail" + +#: ../lib/modules/imapAccess.inc:100 ../lib/modules/imapAccess.inc:140 +msgid "Mail domains" +msgstr "Domaines de messagerie" + +#: ../lib/modules/inetLocalMailRecipient.inc:58 +msgid "Mail routing" +msgstr "Mèl routage" + +#: ../lib/modules/selfRegistration.inc:615 +#: ../lib/modules/selfRegistration.inc:635 +#: ../lib/modules/passwordSelfReset.inc:1546 +#: ../lib/modules/passwordSelfReset.inc:1561 +#: ../lib/modules/passwordSelfReset.inc:1594 +msgid "Mail sending failed." +msgstr "L'envoi de mail a échoué." + +#: ../lib/modules/bindDLZ.inc:132 ../lib/modules/bindDLZ.inc:136 +#: ../lib/modules/bindDLZ.inc:274 ../lib/modules/bindDLZ.inc:493 +#: ../lib/modules/bindDLZ.inc:910 ../lib/modules/bindDLZ.inc:1512 +#: ../lib/modules/kolabUser.inc:98 ../lib/modules/kolabSharedFolder.inc:98 +#: ../lib/modules/inetLocalMailRecipient.inc:80 +#: ../lib/modules/inetLocalMailRecipient.inc:85 +#: ../lib/modules/inetLocalMailRecipient.inc:112 +#: ../lib/modules/inetLocalMailRecipient.inc:121 +#: ../lib/modules/inetLocalMailRecipient.inc:148 +#: ../lib/modules/inetLocalMailRecipient.inc:294 +msgid "Mail server" +msgstr "Serveur de Mèl" + +#: ../lib/modules/bindDLZ.inc:907 +msgid "Mail servers (\"MX\" records)" +msgstr "Serveurs de mail (enregistrements \"MX\")" + +#: ../lib/account.inc:1031 +#, php-format +msgid "Mail successfully sent to %s." +msgstr "Mail correctement envoyé à %s" + +#: ../lib/modules/asteriskAccount.inc:159 +#: ../lib/modules/asteriskAccount.inc:278 +#: ../lib/modules/asteriskAccount.inc:399 +#: ../lib/modules/asteriskAccount.inc:657 +#: ../lib/modules/asteriskAccount.inc:994 +#: ../lib/modules/asteriskAccount.inc:1257 +#: ../lib/modules/asteriskVoicemail.inc:95 +#: ../lib/modules/asteriskVoicemail.inc:138 +#: ../lib/modules/asteriskVoicemail.inc:158 +#: ../lib/modules/asteriskVoicemail.inc:245 +#: ../lib/modules/asteriskVoicemail.inc:369 ../lib/modules/imapAccess.inc:63 +#: ../lib/modules/imapAccess.inc:106 ../lib/modules/imapAccess.inc:243 +msgid "Mailbox" +msgstr "Boîte de messagerie" + +#: ../lib/modules/imapAccess.inc:252 +msgid "Mailbox already exists on IMAP server." +msgstr "La boîte de messagerie existe déjà sur le serveur IMAP." + +#: ../lib/modules/imapAccess.inc:259 +msgid "Mailbox does not exist on IMAP server." +msgstr "La boîte de messagerie n'existe pas sur le serveur IMAP." + +#: ../lib/modules/kolabUser.inc:148 ../lib/modules/kolabUser.inc:192 +#: ../lib/modules/kolabUser.inc:231 ../lib/modules/kolabUser.inc:297 +#: ../lib/modules/kolabUser.inc:300 ../lib/modules/kolabUser.inc:745 +#: ../lib/modules/kolabSharedFolder.inc:154 +#: ../lib/modules/kolabSharedFolder.inc:188 +#: ../lib/modules/kolabSharedFolder.inc:238 +#: ../lib/modules/kolabSharedFolder.inc:284 +#: ../lib/modules/kolabSharedFolder.inc:287 +#: ../lib/modules/kolabSharedFolder.inc:559 +msgid "Mailbox home server" +msgstr "Mailbox Serveur " + +#: ../lib/modules/kolabUser.inc:251 +msgid "Mailbox home server name is empty!" +msgstr "Nom de serveur de Mailbox homedir est vide!" + +#: ../lib/modules/kolabUser.inc:249 ../lib/modules/kolabUser.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:257 +#: ../lib/modules/kolabSharedFolder.inc:258 +msgid "Mailbox home server name is invalid!" +msgstr "Le serveur d'hébergement des boîtes de messagerie est incorrecte !" + +#: ../lib/modules/kolabUser.inc:99 ../lib/modules/kolabUser.inc:174 +#: ../lib/modules/kolabUser.inc:199 ../lib/modules/kolabUser.inc:232 +#: ../lib/modules/kolabUser.inc:257 ../lib/modules/kolabUser.inc:310 +#: ../lib/modules/kolabUser.inc:772 +msgid "Mailbox quota" +msgstr "Quota mail" + +#: ../lib/types/mailAlias.inc:62 +msgid "Mailing aliases (e.g. NIS mail aliases)" +msgstr "Alias Mailing (ex. NIS mail aliases)" + +#: ../lib/modules/nisMailAlias.inc:82 +msgid "Mails to this name are forwarded to the recipients." +msgstr "Courriels à ce nom sont redirigés aux destinataires." + +#: ../templates/pdfedit/pdfpage.php:367 ../templates/pdfedit/pdfpage.php:678 +msgid "Main" +msgstr "Principal" + +#: ../templates/selfService/adminMain.php:515 ../help/help.inc:228 +msgid "Main page caption" +msgstr "Texte de la page principale" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:79 +msgid "Make sure your filter (above) will select all child records." +msgstr "" +"Assurez-vous que le filtre ( ci-dessus ) sélectionnera tous les " +"enregistrements fils." + +#: ../lib/modules/inetOrgPerson.inc:1516 +msgid "Manage" +msgstr "Gérer" + +#: ../templates/pdfedit/pdfmain.php:190 +msgid "Manage existing PDF structures" +msgstr "Gérer le structures PDF" + +#: ../templates/profedit/profilemain.php:175 +msgid "Manage existing profiles" +msgstr "Gestion des profils" + +#: ../templates/pdfedit/pdfmain.php:232 +msgid "Manage logos" +msgstr "Gérer les logos" + +#: ../lib/modules/kolabUser.inc:112 ../lib/modules/kolabUser.inc:170 +msgid "Manage object class \"mailrecipient\"" +msgstr "Gérer l'objectClass \"mailrecipient\"" + +#: ../lib/modules/sambaSamAccount.inc:1224 +msgid "Manage profile directory" +msgstr "Gérer le dossier des profils" + +#: ../templates/selfService/adminLogin.php:182 +msgid "Manage self service profiles" +msgstr "Gestion des profils de self-service" + +#: ../templates/config/conflogin.php:192 +msgid "Manage server profiles" +msgstr "Gestion des profils serveur" + +#: ../lib/modules/windowsHost.inc:86 ../lib/modules/windowsHost.inc:112 +#: ../lib/modules/windowsHost.inc:122 ../lib/modules/windowsHost.inc:146 +#: ../lib/modules/windowsHost.inc:295 ../lib/modules/windowsGroup.inc:146 +#: ../lib/modules/windowsGroup.inc:167 ../lib/modules/windowsGroup.inc:227 +#: ../lib/modules/windowsGroup.inc:268 ../lib/modules/windowsGroup.inc:352 +#: ../lib/modules/windowsGroup.inc:781 +msgid "Managed by" +msgstr "Géré par" + +#: ../templates/serverInfo.php:105 +msgid "Managed suffixes" +msgstr "Suffixes gérés" + +#: ../lib/modules/ipHost.inc:77 ../lib/modules/ipHost.inc:97 +#: ../lib/modules/ipHost.inc:106 ../lib/modules/ipHost.inc:154 +#: ../lib/modules/ipHost.inc:253 ../lib/modules/inetOrgPerson.inc:361 +#: ../lib/modules/inetOrgPerson.inc:605 ../lib/modules/inetOrgPerson.inc:656 +#: ../lib/modules/inetOrgPerson.inc:660 ../lib/modules/inetOrgPerson.inc:1528 +#: ../lib/modules/inetOrgPerson.inc:1894 ../lib/modules/inetOrgPerson.inc:3549 +#: ../lib/modules/inetOrgPerson.inc:3587 +msgid "Manager" +msgstr "Manager" + +#: ../lib/tools/ouEditor.inc:53 +msgid "Manages OU objects in your LDAP tree." +msgstr "Gère les Objets OU dans l'arbre LDAP." + +#: ../lib/modules/kolabUser.inc:52 +msgid "Manual" +msgstr "Manuel" + +#: ../lib/modules/kolabUser.inc:54 +msgid "Manual if conflicts" +msgstr "Manuel si conflit" + +#: ../lib/modules/customScripts.inc:172 +msgid "Manual scripts" +msgstr "Scripts manuels" + +#: ../lib/types/nisObjectType.inc:78 ../lib/modules/nisObject.inc:65 +#: ../lib/modules/nisObject.inc:96 ../lib/modules/nisObject.inc:112 +#: ../lib/modules/nisObject.inc:123 ../lib/modules/nisObject.inc:149 +#: ../lib/modules/nisObject.inc:210 +msgid "Mapping entry" +msgstr "Entrée de mappage" + +#: ../lib/modules/nisObject.inc:123 ../lib/modules/nisObject.inc:124 +msgid "" +"Mapping entry contains invalid characters. Only ASCII characters are allowed." +msgstr "" +"L'entrée de mappage contient des caractères non-valides. Seuls les " +"caractères ASCII sont autorisés." + +#: ../lib/types/nisObjectType.inc:79 ../lib/modules/nisObject.inc:69 +#: ../lib/modules/nisObject.inc:89 ../lib/modules/nisObject.inc:113 +#: ../lib/modules/nisObject.inc:143 ../lib/modules/nisObject.inc:211 +msgid "Mapping name" +msgstr "Nom de mappage" + +#: ../lib/modules/kolabGroup.inc:213 ../lib/modules/kolabGroup.inc:293 +#: ../lib/modules/kolabUser.inc:388 ../lib/modules/kolabUser.inc:519 +#: ../lib/modules/kolabSharedFolder.inc:345 +#: ../lib/modules/kolabSharedFolder.inc:433 +msgid "Mark account for deletion" +msgstr "Marquer le compte pour suppression" + +#: ../lib/modules/kolabGroup.inc:113 ../lib/modules/kolabUser.inc:178 +#: ../lib/modules/kolabSharedFolder.inc:166 +msgid "Mark for deletion" +msgstr "Marqué pour effacement" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:44 +msgid "Mass delete" +msgstr "Suppression en masse" + +#: ../templates/config/profmanage.php:311 +#: ../templates/config/mainlogin.php:158 +#: ../templates/selfService/profManage.php:247 +#: ../templates/pdfedit/pdfmain.php:290 ../templates/pdfedit/pdfmain.php:337 +#: ../templates/profedit/profilemain.php:257 +#: ../templates/profedit/profilemain.php:305 ../help/help.inc:142 +msgid "Master password" +msgstr "Mot de passe principal" + +#: ../templates/config/profmanage.php:54 +#: ../templates/selfService/profManage.php:40 +#: ../templates/pdfedit/pdfmain.php:106 ../templates/pdfedit/pdfmain.php:114 +#: ../templates/profedit/profilemain.php:121 +#: ../templates/profedit/profilemain.php:129 +msgid "Master password is wrong!" +msgstr "Mot de passe principal érroné !" + +#: ../templates/config/mainmanage.php:82 +msgid "Master passwords are different or empty!" +msgstr "Mots de passe principal différents ou vides !" + +#: ../templates/schema/schema.php:268 +msgid "Matching rule OID" +msgstr "Règle atteinte OID" + +#: ../templates/schema/schema.php:77 ../templates/schema/schema.php:78 +msgid "Matching rules" +msgstr "Règles de correspondance" + +#: ../templates/serverInfo.php:173 +msgid "Max. file descriptors" +msgstr "Nombre de descripteurs de fichiers max." + +#: ../lib/modules/posixGroup.inc:410 ../lib/modules/posixGroup.inc:604 +#: ../lib/modules/posixGroup.inc:605 +msgid "Maximum GID number" +msgstr "Numéro de GID max" + +#: ../lib/modules/posixGroup.inc:604 +msgid "Maximum GID number is invalid or empty!" +msgstr "Numéro de GID max incorrecte ou vide !" + +#: ../lib/modules/posixGroup.inc:605 +msgid "Maximum GID number must be greater than minimum GID number!" +msgstr "Le numéro de GID max doit être plus grand que le numéro de GID min ! " + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:221 ../lib/modules/posixAccount.inc:239 +msgid "Maximum UID number" +msgstr "Numéro d'UID max" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +msgid "Maximum UID number is invalid!" +msgstr "Numéro d'UID max incorrecte !" + +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +msgid "Maximum UID number must be greater than minimum UID number!" +msgstr "Le numéro d'UID max doit être plus grand que le numéro d'UID min !" + +#: ../lib/types/ppolicyType.inc:84 ../lib/modules/ppolicy.inc:108 +#: ../lib/modules/ppolicy.inc:152 ../lib/modules/ppolicy.inc:172 +#: ../lib/modules/ppolicy.inc:272 ../lib/modules/ppolicy.inc:477 +msgid "Maximum failure count" +msgstr "Nombre d'échecs max" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:128 +#: ../templates/3rdParty/pla/htdocs/import_form.php:36 +#: ../lib/modules/customFields.inc:156 ../lib/modules/customFields.inc:3299 +msgid "Maximum file size" +msgstr "Taille de fichier max" + +#: ../lib/modules/inetOrgPerson.inc:3614 +msgid "Maximum file size (kB)" +msgstr "Taille de fichier max (ko)" + +#: ../lib/modules/customFields.inc:3331 +msgid "Maximum file size must be a number. Please enter 0 for no limit." +msgstr "" +"La taille maximum de fichier doit être un nombre. Veuillez saisir 0 pour " +"illimité." + +#: ../lib/modules/inetOrgPerson.inc:3613 +msgid "Maximum height (px)" +msgstr "Hauteur maximum (px)" + +#: ../lib/types/pykotaPrinterType.inc:95 ../lib/modules/pykotaPrinter.inc:103 +#: ../lib/modules/pykotaPrinter.inc:135 ../lib/modules/pykotaPrinter.inc:159 +#: ../lib/modules/pykotaPrinter.inc:195 ../lib/modules/pykotaPrinter.inc:213 +#: ../lib/modules/pykotaPrinter.inc:233 ../lib/modules/pykotaPrinter.inc:586 +msgid "Maximum job size" +msgstr "Taille maximum des tâches" + +#: ../lib/modules/dhcp_settings.inc:157 ../lib/modules/dhcp_settings.inc:210 +#: ../lib/modules/dhcp_settings.inc:225 ../lib/modules/dhcp_settings.inc:262 +#: ../lib/modules/dhcp_settings.inc:573 ../lib/modules/dhcp_settings.inc:676 +msgid "Maximum lease time" +msgstr "Durée maximale du bail" + +#: ../templates/schema/schema.php:214 +msgid "Maximum length" +msgstr "Longueur Max." + +#: ../lib/lists.inc:1011 ../help/help.inc:97 +msgid "Maximum list entries" +msgstr "Nombre maximum d'éléments de la liste" + +#: ../lib/modules/asteriskAccount.inc:196 +msgid "" +"Maximum number of seconds of inactivity before terminating a call on hold." +msgstr "" +"Nombre de secondes d'inactivité maximum avant de clore un appel en attente." + +#: ../lib/types/ppolicyType.inc:79 ../lib/modules/shadowAccount.inc:59 +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/shadowAccount.inc:123 +#: ../lib/modules/shadowAccount.inc:172 ../lib/modules/shadowAccount.inc:189 +#: ../lib/modules/shadowAccount.inc:227 ../lib/modules/shadowAccount.inc:340 +#: ../lib/modules/shadowAccount.inc:504 ../lib/modules/ppolicy.inc:88 +#: ../lib/modules/ppolicy.inc:144 ../lib/modules/ppolicy.inc:167 +#: ../lib/modules/ppolicy.inc:168 ../lib/modules/ppolicy.inc:206 +#: ../lib/modules/ppolicy.inc:473 ../lib/modules/sambaDomain.inc:129 +#: ../lib/modules/sambaDomain.inc:197 ../lib/modules/sambaDomain.inc:220 +#: ../lib/modules/sambaDomain.inc:222 ../lib/modules/sambaDomain.inc:332 +#: ../lib/modules/sambaDomain.inc:609 +msgid "Maximum password age" +msgstr "Longévité de mot de passe maximum" + +#: ../lib/modules/inetOrgPerson.inc:3612 +msgid "Maximum width (px)" +msgstr "Largeur maximum (px)" + +#: ../lib/modules/qmailGroup.inc:80 ../lib/modules/qmailGroup.inc:204 +#: ../lib/modules/qmailGroup.inc:208 ../lib/modules/qmailGroup.inc:337 +#: ../lib/modules/qmailGroup.inc:402 ../lib/modules/qmailGroup.inc:425 +#: ../lib/modules/qmailGroup.inc:514 ../lib/modules/qmailGroup.inc:1063 +msgid "Member email addresses" +msgstr "Adresse mail du membre" + +#: ../lib/modules/qmailGroup.inc:78 ../lib/modules/qmailGroup.inc:156 +#: ../lib/modules/qmailGroup.inc:160 ../lib/modules/qmailGroup.inc:279 +#: ../lib/modules/qmailGroup.inc:381 ../lib/modules/qmailGroup.inc:516 +#: ../lib/modules/qmailGroup.inc:783 ../lib/modules/qmailGroup.inc:1062 +msgid "Member entries" +msgstr "Liste des membres" + +#: ../lib/modules/qmailGroup.inc:82 ../lib/modules/qmailGroup.inc:180 +#: ../lib/modules/qmailGroup.inc:184 ../lib/modules/qmailGroup.inc:303 +#: ../lib/modules/qmailGroup.inc:390 ../lib/modules/qmailGroup.inc:515 +#: ../lib/modules/qmailGroup.inc:1064 +msgid "Member filter" +msgstr "Filtrer les membres" + +#: ../lib/types/netgroup.inc:94 ../lib/modules/nisnetgroup.inc:95 +#: ../lib/modules/nisnetgroup.inc:99 ../lib/modules/nisnetgroup.inc:132 +#: ../lib/modules/nisnetgroup.inc:142 ../lib/modules/nisnetgroup.inc:286 +#: ../lib/modules/nisnetgroup.inc:583 ../lib/modules/organizationalRole.inc:93 +#: ../lib/modules/organizationalRole.inc:97 +#: ../lib/modules/organizationalRole.inc:130 +#: ../lib/modules/organizationalRole.inc:138 +#: ../lib/modules/organizationalRole.inc:193 +#: ../lib/modules/organizationalRole.inc:341 +#: ../lib/modules/organizationalRole.inc:461 +#: ../lib/modules/windowsGroup.inc:130 ../lib/modules/windowsGroup.inc:134 +#: ../lib/modules/windowsGroup.inc:211 ../lib/modules/windowsGroup.inc:260 +#: ../lib/modules/windowsGroup.inc:790 ../lib/modules/groupOfNames.inc:101 +#: ../lib/modules/groupOfNames.inc:105 ../lib/modules/groupOfNames.inc:151 +#: ../lib/modules/groupOfNames.inc:159 ../lib/modules/groupOfNames.inc:168 +#: ../lib/modules/groupOfNames.inc:247 ../lib/modules/groupOfNames.inc:553 +#: ../lib/modules/groupOfNames.inc:714 +msgid "Members" +msgstr "Membres" + +#: ../lib/modules/groupOfNames.inc:109 ../lib/modules/groupOfNames.inc:179 +msgid "Members are optional" +msgstr "Les membres sont facultatifs" + +#: ../lib/modules/qmailGroup.inc:94 ../lib/modules/qmailGroup.inc:196 +#: ../lib/modules/qmailGroup.inc:319 ../lib/modules/qmailGroup.inc:396 +#: ../lib/modules/qmailGroup.inc:617 ../lib/modules/qmailGroup.inc:1075 +msgid "Members only" +msgstr "Membres uniquement" + +#: ../lib/modules/qmailUser.inc:108 ../lib/modules/qmailUser.inc:143 +#: ../lib/modules/qmailUser.inc:223 ../lib/modules/qmailUser.inc:316 +#: ../lib/modules/qmailUser.inc:412 ../lib/modules/qmailUser.inc:686 +#: ../lib/modules/qmailUser.inc:1145 +msgid "Message count limit" +msgstr "Limite du nombre de message" + +#: ../lib/modules/qmailUser.inc:110 ../lib/modules/qmailUser.inc:153 +#: ../lib/modules/qmailUser.inc:227 ../lib/modules/qmailUser.inc:324 +#: ../lib/modules/qmailUser.inc:415 ../lib/modules/qmailUser.inc:697 +#: ../lib/modules/qmailUser.inc:1146 +msgid "Message size limit" +msgstr "Limite de taille de message" + +#: ../lib/modules/qmailUser.inc:120 ../lib/modules/qmailUser.inc:171 +#: ../lib/modules/qmailUser.inc:247 ../lib/modules/qmailUser.inc:366 +#: ../lib/modules/qmailUser.inc:430 ../lib/modules/qmailUser.inc:601 +#: ../lib/modules/qmailUser.inc:1149 ../lib/modules/qmailGroup.inc:139 +#: ../lib/modules/qmailGroup.inc:254 ../lib/modules/qmailGroup.inc:372 +#: ../lib/modules/qmailGroup.inc:508 ../lib/modules/qmailGroup.inc:1058 +msgid "Message store" +msgstr "Magasin de messages" + +#: ../lib/modules/sambaSamAccount.inc:562 +msgid "Mid-Atlantic" +msgstr "Mid-Atlantic" + +#: ../lib/modules/sambaSamAccount.inc:553 +msgid "Midway Island, Samoa" +msgstr "Midway Island, Samoa" + +#: ../lib/modules/windowsUser.inc:286 ../lib/modules/inetOrgPerson.inc:314 +msgid "Miller" +msgstr "Miller?" + +#: ../lib/modules/sambaDomain.inc:101 ../lib/modules/sambaDomain.inc:190 +#: ../lib/modules/sambaDomain.inc:276 ../lib/modules/sambaDomain.inc:605 +msgid "Minimal password length" +msgstr "Longueur minimum du mot de passe" + +#: ../lib/modules/posixGroup.inc:407 ../lib/modules/posixGroup.inc:603 +msgid "Minimum GID number" +msgstr "Numéro GID minimum" + +#: ../lib/modules/posixGroup.inc:603 +msgid "Minimum GID number is invalid or empty!" +msgstr "Le numéro de GID min n'est pas valable ou vide!" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:218 ../lib/modules/posixAccount.inc:236 +msgid "Minimum UID number" +msgstr "Numéro d'UID minimum" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +msgid "Minimum UID number is invalid!" +msgstr "Numéro d'UID minimal incorrecte !" + +#: ../lib/modules/passwordSelfReset.inc:92 +#: ../lib/modules/passwordSelfReset.inc:514 +msgid "Minimum answer length" +msgstr "Longueur minimum de la réponse" + +#: ../templates/config/mainmanage.php:392 +msgid "Minimum character classes" +msgstr "Nombre mini de classes de caractères" + +#: ../templates/config/mainmanage.php:388 +msgid "Minimum lowercase characters" +msgstr "Nombre mini de minuscules" + +#: ../templates/config/mainmanage.php:390 +msgid "Minimum numeric characters" +msgstr "Nombre mini de caractères numériques" + +#: ../lib/types/ppolicyType.inc:78 ../lib/modules/shadowAccount.inc:57 +#: ../lib/modules/shadowAccount.inc:118 ../lib/modules/shadowAccount.inc:171 +#: ../lib/modules/shadowAccount.inc:185 ../lib/modules/shadowAccount.inc:221 +#: ../lib/modules/shadowAccount.inc:332 ../lib/modules/shadowAccount.inc:503 +#: ../lib/modules/ppolicy.inc:84 ../lib/modules/ppolicy.inc:143 +#: ../lib/modules/ppolicy.inc:166 ../lib/modules/ppolicy.inc:198 +#: ../lib/modules/ppolicy.inc:472 ../lib/modules/sambaDomain.inc:125 +#: ../lib/modules/sambaDomain.inc:196 ../lib/modules/sambaDomain.inc:221 +#: ../lib/modules/sambaDomain.inc:324 ../lib/modules/sambaDomain.inc:608 +msgid "Minimum password age" +msgstr "Durée de validité mini du mot de passe" + +#: ../templates/config/mainmanage.php:386 ../lib/types/ppolicyType.inc:87 +#: ../lib/modules/ppolicy.inc:120 ../lib/modules/ppolicy.inc:147 +#: ../lib/modules/ppolicy.inc:175 ../lib/modules/ppolicy.inc:250 +#: ../lib/modules/ppolicy.inc:480 +msgid "Minimum password length" +msgstr "Longueur mini du mot de passe" + +#: ../templates/config/mainmanage.php:391 +msgid "Minimum symbolic characters" +msgstr "Nombre mini de symboles" + +#: ../lib/modules/bindDLZ.inc:216 ../lib/modules/bindDLZ.inc:319 +#: ../lib/modules/bindDLZ.inc:420 ../lib/modules/bindDLZ.inc:518 +#: ../lib/modules/bindDLZ.inc:1023 ../lib/modules/bindDLZ.inc:1545 +msgid "Minimum time" +msgstr "Durée minimum" + +#: ../templates/config/mainmanage.php:389 +msgid "Minimum uppercase characters" +msgstr "Nombre mini de majuscules" + +#: ../templates/3rdParty/pla/lib/import_functions.php:429 +msgid "Missing attributes for" +msgstr "Attribut manquant pour" + +#: ../templates/3rdParty/pla/lib/import_functions.php:443 +msgid "Missing modify command add, delete or replace" +msgstr "La commande modifier, ajouter, supprimer ou remplacer est manquante" + +#: ../lib/types/user.inc:207 ../lib/modules/inetOrgPerson.inc:74 +#: ../lib/modules/inetOrgPerson.inc:157 ../lib/modules/inetOrgPerson.inc:433 +#: ../lib/modules/inetOrgPerson.inc:578 ../lib/modules/inetOrgPerson.inc:704 +#: ../lib/modules/inetOrgPerson.inc:708 ../lib/modules/inetOrgPerson.inc:1398 +#: ../lib/modules/inetOrgPerson.inc:1401 ../lib/modules/inetOrgPerson.inc:1902 +#: ../lib/modules/inetOrgPerson.inc:3533 ../lib/modules/inetOrgPerson.inc:3583 +msgid "Mobile number" +msgstr "Numéro de portable" + +#: ../lib/modules/inetOrgPerson.inc:2500 +msgid "Mobile telephone number" +msgstr "Numéro de téléphone portable" + +#: ../lib/modules/qmailGroup.inc:86 ../lib/modules/qmailGroup.inc:212 +#: ../lib/modules/qmailGroup.inc:216 ../lib/modules/qmailGroup.inc:345 +#: ../lib/modules/qmailGroup.inc:405 ../lib/modules/qmailGroup.inc:427 +#: ../lib/modules/qmailGroup.inc:517 ../lib/modules/qmailGroup.inc:1066 +msgid "Moderator email addresses" +msgstr "Adresse mail du modérateur." + +#: ../lib/modules/qmailGroup.inc:84 ../lib/modules/qmailGroup.inc:164 +#: ../lib/modules/qmailGroup.inc:168 ../lib/modules/qmailGroup.inc:287 +#: ../lib/modules/qmailGroup.inc:384 ../lib/modules/qmailGroup.inc:518 +#: ../lib/modules/qmailGroup.inc:786 ../lib/modules/qmailGroup.inc:1065 +msgid "Moderator entries" +msgstr "Entrées modérateur" + +#: ../lib/modules/qmailGroup.inc:76 ../lib/modules/qmailGroup.inc:106 +#: ../lib/modules/qmailGroup.inc:200 ../lib/modules/qmailGroup.inc:329 +#: ../lib/modules/qmailGroup.inc:399 ../lib/modules/qmailGroup.inc:603 +#: ../lib/modules/qmailGroup.inc:1061 +msgid "Moderator text" +msgstr "Texte du modérateur" + +#: ../lib/modules/qmailGroup.inc:201 +msgid "" +"Moderator text that is used to specify an own approval text used if the list " +"is moderated. The usual %HEADER% magic of qmail-reply etc. can be used here." +msgstr "" +"Le texte du modérateur permet d'indiquer un texte personnalisé si la liste " +"est modérée. Les variables magiques de qmail-reply telles que %HEADER% sont " +"utilisables." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:61 +msgid "Modification not successful!" +msgstr "La modification a échoué !" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:59 +msgid "Modification successful!" +msgstr "Modification réussie!" + +#: ../lib/modules/generalInformation.inc:92 +msgid "Modification time" +msgstr "Date de modification" + +#: ../lib/modules/generalInformation.inc:88 +msgid "Modified by" +msgstr "Modifié par" + +#: ../templates/serverInfo.php:314 ../templates/serverInfo.php:387 +#: ../templates/multiEdit.php:126 +msgid "Modify" +msgstr "Modifier" + +#: ../templates/serverInfo.php:328 ../templates/serverInfo.php:393 +msgid "Modify RDN" +msgstr "Modifier le RDN" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:57 +msgid "Modify group" +msgstr "Modifier le groupe" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2110 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2111 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2114 +msgid "Modify group members" +msgstr "Modifier les membres du groupe" + +#: ../templates/3rdParty/pla/htdocs/import.php:32 +msgid "Modifying" +msgstr "Modification" + +#: ../templates/config/confmodules.php:176 +#: ../templates/config/confmain.php:217 +#: ../templates/config/moduleSettings.php:175 +#: ../templates/config/conftypes.php:194 +#: ../templates/selfService/adminMain.php:435 +msgid "Module settings" +msgstr "Paramètres du module" + +#: ../templates/config/confmodules.php:172 +#: ../templates/config/confmain.php:213 +#: ../templates/config/moduleSettings.php:171 +#: ../templates/config/conftypes.php:190 +msgid "Modules" +msgstr "Modules" + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Monday" +msgstr "Lundi" + +#: ../lib/modules/sambaSamAccount.inc:557 +msgid "Mountain Time (US & Canada)" +msgstr "Mountain Time (US & Canada)" + +#: ../lib/modules/quota.inc:105 ../lib/modules/quota.inc:399 +#: ../lib/modules/quota.inc:506 ../lib/modules/quota.inc:633 +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:122 +#: ../lib/modules/systemQuotas.inc:382 +msgid "Mountpoint" +msgstr "Point de montage" + +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:98 +msgid "Mountpoint contains invalid characters." +msgstr "Le point de montage comporte des caractères incorrectes." + +#: ../lib/modules/quota.inc:106 +msgid "Mountpoint of device with enabled quotas." +msgstr "Point de montage du périphérique avec quotas activés." + +#: ../lib/modules/customFields.inc:636 +msgid "Move down" +msgstr "Déplacer vers le bas" + +#: ../lib/modules/customFields.inc:630 +msgid "Move up" +msgstr "Déplacer vers le haut" + +#: ../templates/multiEdit.php:78 ../lib/tools/multiEdit.inc:44 +msgid "Multi edit" +msgstr "Edition multiple" + +#: ../lib/modules/customFields.inc:1910 ../lib/modules/customFields.inc:3304 +msgid "Multi value" +msgstr "Valeur multiple" + +#: ../lib/modules/customFields.inc:3162 +msgid "Multi-select fields must not contain empty values." +msgstr "Les champs de sélection-multiple ne doivent pas être vides." + +#: ../lib/modules/pykotaPrinter.inc:125 +#: ../lib/modules/zarafaDynamicGroup.inc:76 ../lib/modules/zarafaGroup.inc:78 +#: ../lib/modules/eduPerson.inc:98 ../lib/modules/eduPerson.inc:111 +#: ../lib/modules/eduPerson.inc:123 ../lib/modules/eduPerson.inc:139 +#: ../lib/modules/eduPerson.inc:147 ../lib/modules/zarafaUser.inc:164 +#: ../lib/modules/sudoRole.inc:100 ../lib/modules/sudoRole.inc:105 +#: ../lib/modules/sudoRole.inc:110 ../lib/modules/sudoRole.inc:115 +#: ../lib/modules/sudoRole.inc:120 ../lib/modules/sudoRole.inc:125 +msgid "Multiple values are separated by comma." +msgstr "Les valeur multiples sont séparées par des virgules." + +#: ../lib/modules/kolabGroup.inc:92 ../lib/modules/kolabGroup.inc:101 +#: ../lib/modules/kolabGroup.inc:110 ../lib/modules/nisMailAliasUser.inc:81 +#: ../lib/modules/nisMailAliasUser.inc:89 ../lib/modules/puppetClient.inc:85 +#: ../lib/modules/puppetClient.inc:97 ../lib/modules/puppetClient.inc:105 +#: ../lib/modules/device.inc:74 ../lib/modules/bindDLZ.inc:91 +#: ../lib/modules/bindDLZ.inc:100 ../lib/modules/bindDLZ.inc:105 +#: ../lib/modules/bindDLZ.inc:110 ../lib/modules/bindDLZ.inc:115 +#: ../lib/modules/bindDLZ.inc:120 ../lib/modules/bindDLZ.inc:125 +#: ../lib/modules/bindDLZ.inc:137 ../lib/modules/bindDLZ.inc:145 +#: ../lib/modules/bindDLZ.inc:153 ../lib/modules/bindDLZ.inc:161 +#: ../lib/modules/bindDLZ.inc:169 ../lib/modules/bindDLZ.inc:177 +#: ../lib/modules/bindDLZ.inc:185 ../lib/modules/bindDLZ.inc:193 +#: ../lib/modules/bindDLZ.inc:201 ../lib/modules/windowsUser.inc:149 +#: ../lib/modules/windowsUser.inc:185 ../lib/modules/windowsUser.inc:221 +#: ../lib/modules/windowsUser.inc:232 ../lib/modules/kolabUser.inc:158 +#: ../lib/modules/kolabUser.inc:167 ../lib/modules/inetOrgPerson.inc:641 +#: ../lib/modules/inetOrgPerson.inc:661 ../lib/modules/inetOrgPerson.inc:669 +#: ../lib/modules/inetOrgPerson.inc:677 ../lib/modules/inetOrgPerson.inc:685 +#: ../lib/modules/inetOrgPerson.inc:701 ../lib/modules/inetOrgPerson.inc:709 +#: ../lib/modules/inetOrgPerson.inc:717 ../lib/modules/inetOrgPerson.inc:725 +#: ../lib/modules/inetOrgPerson.inc:737 ../lib/modules/inetOrgPerson.inc:757 +#: ../lib/modules/inetOrgPerson.inc:769 ../lib/modules/inetOrgPerson.inc:777 +#: ../lib/modules/inetOrgPerson.inc:785 ../lib/modules/inetOrgPerson.inc:797 +#: ../lib/modules/inetOrgPerson.inc:805 ../lib/modules/inetOrgPerson.inc:821 +#: ../lib/modules/inetOrgPerson.inc:829 ../lib/modules/inetOrgPerson.inc:837 +#: ../lib/modules/systemQuotas.inc:70 ../lib/modules/freeRadius.inc:101 +#: ../lib/modules/kolabSharedFolder.inc:126 +#: ../lib/modules/kolabSharedFolder.inc:135 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/qmailGroup.inc:136 ../lib/modules/qmailGroup.inc:149 +#: ../lib/modules/qmailGroup.inc:161 ../lib/modules/qmailGroup.inc:169 +#: ../lib/modules/qmailGroup.inc:177 ../lib/modules/qmailGroup.inc:185 +#: ../lib/modules/qmailGroup.inc:193 ../lib/modules/qmailGroup.inc:209 +#: ../lib/modules/qmailGroup.inc:217 ../lib/modules/qmailGroup.inc:225 +#: ../lib/modules/groupOfNames.inc:98 +msgid "Multiple values are separated by semicolon." +msgstr "Les valeurs multiples sont séparées par des point-virgules." + +#: ../lib/modules/asteriskAccount.inc:207 +#: ../lib/modules/asteriskAccount.inc:290 +#: ../lib/modules/asteriskAccount.inc:486 +#: ../lib/modules/asteriskAccount.inc:717 +#: ../lib/modules/asteriskAccount.inc:1006 +#: ../lib/modules/asteriskAccount.inc:1281 +msgid "Music on hold" +msgstr "Musique d'attente" + +#: ../lib/modules/asteriskAccount.inc:208 +msgid "Music to play on hold." +msgstr "Musique a jouer lors de l 'attente." + +#: ../lib/modules/ipHost.inc:93 ../lib/modules/windowsHost.inc:108 +#: ../lib/modules/device.inc:111 ../lib/modules/windowsUser.inc:334 +#: ../lib/modules/inetOrgPerson.inc:395 ../lib/modules/inetOrgPerson.inc:403 +#: ../lib/modules/inetOrgPerson.inc:509 +msgid "MyCity" +msgstr "Ma ville" + +#: ../lib/modules/windowsUser.inc:316 ../lib/modules/inetOrgPerson.inc:379 +msgid "Mystreetname 42" +msgstr "Ma Rue" + +#: ../lib/modules/asteriskAccount.inc:163 +#: ../lib/modules/asteriskAccount.inc:279 +#: ../lib/modules/asteriskAccount.inc:406 +#: ../lib/modules/asteriskAccount.inc:669 +#: ../lib/modules/asteriskAccount.inc:995 +#: ../lib/modules/asteriskAccount.inc:1259 +msgid "NAT" +msgstr "NAT" + +#: ../lib/modules/asteriskAccount.inc:164 +msgid "NAT setting for this account." +msgstr "Paramètres NAT pour ce compte." + +#: ../lib/modules/windowsUser.inc:772 ../lib/modules/windowsGroup.inc:370 +msgid "NIS" +msgstr "NIS" + +#: ../lib/modules/windowsUser.inc:256 ../lib/modules/windowsUser.inc:466 +#: ../lib/modules/windowsUser.inc:481 ../lib/modules/windowsUser.inc:535 +#: ../lib/modules/windowsUser.inc:567 ../lib/modules/windowsUser.inc:777 +#: ../lib/modules/windowsUser.inc:1606 ../lib/modules/windowsGroup.inc:154 +#: ../lib/modules/windowsGroup.inc:169 ../lib/modules/windowsGroup.inc:243 +#: ../lib/modules/windowsGroup.inc:251 ../lib/modules/windowsGroup.inc:274 +#: ../lib/modules/windowsGroup.inc:375 ../lib/modules/windowsGroup.inc:750 +msgid "NIS domain" +msgstr "Domaine NIS" + +#: ../lib/modules/windowsUser.inc:257 ../lib/modules/windowsGroup.inc:155 +msgid "NIS domain name." +msgstr "Nom du domaine NIS." + +#: ../lib/modules/windowsUser.inc:252 ../lib/modules/windowsUser.inc:458 +#: ../lib/modules/windowsUser.inc:532 ../lib/modules/windowsUser.inc:566 +#: ../lib/modules/windowsUser.inc:620 ../lib/modules/windowsUser.inc:774 +#: ../lib/modules/windowsUser.inc:1605 ../lib/modules/windowsGroup.inc:150 +#: ../lib/modules/windowsGroup.inc:168 ../lib/modules/windowsGroup.inc:235 +#: ../lib/modules/windowsGroup.inc:271 ../lib/modules/windowsGroup.inc:289 +#: ../lib/modules/windowsGroup.inc:372 ../lib/modules/windowsGroup.inc:749 +msgid "NIS name" +msgstr "Nom NIS" + +#: ../lib/modules/windowsUser.inc:620 ../lib/modules/windowsUser.inc:621 +#: ../lib/modules/windowsGroup.inc:289 ../lib/modules/windowsGroup.inc:290 +msgid "" +"NIS name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Le nom NIS contient des caractères invalides. Les caractères valides sont: a-" +"z, A-Z, 0-9 et .-_ !" + +#: ../lib/modules/nisnetgroup.inc:67 +msgid "NIS net group" +msgstr "Net group NIS" + +#: ../lib/types/netgroup.inc:62 +msgid "NIS netgroup entries" +msgstr "Entrées netgroup NIS" + +#: ../lib/types/netgroup.inc:53 +msgid "NIS netgroups" +msgstr "Netgroups NIS" + +#: ../lib/modules/nisObject.inc:47 +msgid "NIS object" +msgstr "Objet NIS" + +#: ../lib/types/nisObjectType.inc:155 +#, php-format +msgid "NIS object count: %s" +msgstr "Nombre d'objets NIS : %s" + +#: ../lib/types/nisObjectType.inc:48 +msgid "NIS object entries" +msgstr "Entrées de l'objet NIS" + +#: ../lib/types/nisObjectType.inc:39 +msgid "NIS objects" +msgstr "Objets NIS" + +#: ../lib/modules/bindDLZ.inc:113 ../lib/modules/bindDLZ.inc:357 +#: ../lib/modules/bindDLZ.inc:363 ../lib/modules/bindDLZ.inc:482 +msgid "NS record" +msgstr "Enregistrements NS" + +#: ../templates/serverInfo.php:147 ../templates/masscreate.php:294 +#: ../templates/masscreate.php:368 ../templates/schema/schema.php:268 +#: ../lib/types/automountType.inc:86 ../lib/types/automountType.inc:249 +#: ../lib/types/oracleContextType.inc:77 ../lib/types/ppolicyType.inc:77 +#: ../lib/types/bind.inc:190 ../lib/modules/device.inc:61 +#: ../lib/modules/device.inc:89 ../lib/modules/device.inc:120 +#: ../lib/modules/device.inc:170 ../lib/modules/device.inc:418 +#: ../lib/modules/nisObject.inc:61 ../lib/modules/nisObject.inc:81 +#: ../lib/modules/nisObject.inc:111 ../lib/modules/nisObject.inc:137 +#: ../lib/modules/nisObject.inc:209 ../lib/modules/ppolicy.inc:80 +#: ../lib/modules/ppolicy.inc:142 ../lib/modules/ppolicy.inc:165 +#: ../lib/modules/ppolicy.inc:190 ../lib/modules/ppolicy.inc:471 +#: ../lib/modules/automount.inc:64 ../lib/modules/automount.inc:80 +#: ../lib/modules/automount.inc:103 ../lib/modules/automount.inc:128 +#: ../lib/modules/automount.inc:181 ../lib/modules/kolabSharedFolder.inc:112 +#: ../lib/modules/kolabSharedFolder.inc:174 +#: ../lib/modules/kolabSharedFolder.inc:233 +#: ../lib/modules/kolabSharedFolder.inc:261 +#: ../lib/modules/kolabSharedFolder.inc:279 +#: ../lib/modules/kolabSharedFolder.inc:557 +#: ../lib/modules/asteriskExtension.inc:822 +#: ../lib/modules/oracleService.inc:61 ../lib/modules/oracleService.inc:77 +#: ../lib/modules/oracleService.inc:98 ../lib/modules/oracleService.inc:121 +#: ../lib/modules/oracleService.inc:170 ../lib/modules/customFields.inc:84 +#: ../lib/modules/customFields.inc:1041 ../lib/modules/customFields.inc:1688 +#: ../lib/modules/organizationalRole.inc:186 +#: ../lib/modules/groupOfNames.inc:232 +msgid "Name" +msgstr "Nom" + +#: ../lib/modules/nisMailAliasUser.inc:97 +msgid "Name of new alias entry." +msgstr "Nom du nouvel alias." + +#: ../lib/modules/zarafaAddressList.inc:64 +msgid "Name of the address list which should be created." +msgstr "Nom de la liste d'adresses a créer." + +#: ../lib/modules/bindDLZ.inc:148 ../lib/modules/bindDLZ.inc:152 +#: ../lib/modules/bindDLZ.inc:357 ../lib/modules/bindDLZ.inc:499 +#: ../lib/modules/bindDLZ.inc:1162 +msgid "Name server" +msgstr "Serveur de Nom" + +#: ../lib/modules/bindDLZ.inc:424 ../lib/modules/bindDLZ.inc:1562 +msgid "Name servers" +msgstr "Serveurs de nom" + +#: ../lib/modules/bindDLZ.inc:1160 +msgid "Name servers (\"NS\" records)" +msgstr "Serveurs de nom (enregistrements \"NS\")" + +#: ../help/help.inc:189 +msgid "" +"Name under which the profile will be saved. If a profile with the same name " +"exists, it will be overwritten." +msgstr "" +"Nom sous lequel un profil doit etre sauvegardé. Si un profil avec le même " +"nom existe, il sera écrasé." + +#: ../lib/modules/namedObject.inc:45 +msgid "Named object" +msgstr "Objet nommé" + +#: ../lib/modules/dhcp_settings.inc:193 ../lib/modules/dhcp_settings.inc:216 +#: ../lib/modules/dhcp_settings.inc:610 ../lib/modules/dhcp_settings.inc:686 +#: ../lib/modules/freeRadius.inc:88 ../lib/modules/freeRadius.inc:124 +#: ../lib/modules/freeRadius.inc:138 ../lib/modules/freeRadius.inc:201 +#: ../lib/modules/freeRadius.inc:228 ../lib/modules/freeRadius.inc:285 +#: ../lib/modules/freeRadius.inc:538 +msgid "Net mask" +msgstr "Masque réseau" + +#: ../lib/modules/dhcp_settings.inc:169 ../lib/modules/dhcp_settings.inc:213 +#: ../lib/modules/dhcp_settings.inc:228 ../lib/modules/dhcp_settings.inc:280 +#: ../lib/modules/dhcp_settings.inc:581 ../lib/modules/dhcp_settings.inc:679 +msgid "Netbios name servers" +msgstr "Serveurs de nom Netbios" + +#: ../lib/modules/dhcp_settings.inc:173 ../lib/modules/dhcp_settings.inc:214 +#: ../lib/modules/dhcp_settings.inc:230 ../lib/modules/dhcp_settings.inc:286 +#: ../lib/modules/dhcp_settings.inc:591 ../lib/modules/dhcp_settings.inc:680 +msgid "Netbios node type" +msgstr "Type de noeud netbios" + +#: ../lib/types/dhcp.inc:118 ../lib/types/dhcp.inc:172 +msgid "New DHCP" +msgstr "Nouveau DHCP" + +#: ../lib/types/bind.inc:100 ../lib/types/bind.inc:161 +msgid "New DNS entry" +msgstr "Noouvelle entrée DNS" + +#: ../lib/types/nisObjectType.inc:102 ../lib/types/nisObjectType.inc:157 +msgid "New NIS object" +msgstr "Nouvel objet NIS" + +#: ../templates/ou_edit.php:77 +msgid "New OU created successfully." +msgstr "Nouvelle OU créée avec succès." + +#: ../lib/modules/windowsUser.inc:340 ../lib/modules/inetOrgPerson.inc:517 +msgid "New York" +msgstr "Paris" + +#: ../lib/types/zarafaAddressListType.inc:117 +#: ../lib/types/zarafaAddressListType.inc:146 +msgid "New address list" +msgstr "Nouvelle liste d'adresse" + +#: ../lib/types/mailAlias.inc:114 ../lib/types/mailAlias.inc:143 +#: ../lib/types/alias.inc:114 ../lib/types/alias.inc:143 +msgid "New alias" +msgstr "Nouvel Alias" + +#: ../lib/types/automountType.inc:110 ../lib/types/automountType.inc:217 +msgid "New automount entry" +msgstr "Nouvelle entrée automount" + +#: ../lib/types/automountType.inc:233 ../lib/types/automountType.inc:234 +msgid "New automount map" +msgstr "Nouveau mappage automount" + +#: ../lib/types/pykotaBillingCodeType.inc:116 +#: ../lib/types/pykotaBillingCodeType.inc:165 +msgid "New billing code" +msgstr "Nouveau compte de facturation" + +#: ../lib/types/oracleContextType.inc:101 +#: ../lib/types/oracleContextType.inc:188 +msgid "New database entry" +msgstr "Nouvelle entrée de base de donnée" + +#: ../templates/config/profmanage.php:146 +msgid "New default profile set successfully." +msgstr "Nouveau profil par défaut créé avec succès." + +#: ../lib/types/smbDomain.inc:114 ../lib/types/smbDomain.inc:169 +msgid "New domain" +msgstr "Nouveau domaine" + +#: ../lib/types/asteriskExt.inc:117 ../lib/types/asteriskExt.inc:145 +msgid "New extension" +msgstr "Nouvelle extension" + +#: ../templates/pdfedit/pdfpage.php:620 +msgid "New field" +msgstr "Nouveau Champ" + +#: ../lib/types/gon.inc:140 ../lib/types/gon.inc:204 +#: ../lib/types/zarafaDynamicGroupType.inc:119 +#: ../lib/types/zarafaDynamicGroupType.inc:167 ../lib/types/group.inc:163 +#: ../lib/types/group.inc:242 ../lib/types/netgroup.inc:116 +#: ../lib/types/netgroup.inc:171 +msgid "New group" +msgstr "Nouveau groupe" + +#: ../lib/types/host.inc:128 ../lib/types/host.inc:195 +msgid "New host" +msgstr "Nouvelle machine" + +#: ../lib/modules/inetLocalMailRecipient.inc:167 +msgid "New local address" +msgstr "Nouvelle adresse locale" + +#: ../templates/config/mainmanage.php:456 +msgid "New master password" +msgstr "Nouveau mot de passe principal" + +#: ../templates/config/mainmanage.php:79 +msgid "New master password set successfully." +msgstr "Nouveau mot de passe principal créé avec succès." + +#: ../lib/lists.inc:114 +msgid "New object" +msgstr "Nouvel Objet" + +#: ../templates/ou_edit.php:185 ../help/help.inc:263 +msgid "New organisational unit" +msgstr "Nouvelle unité organisationnelle" + +#: ../templates/config/confmain.php:451 +#: ../lib/modules/sambaSamAccount.inc:2265 +#: ../lib/modules/posixAccount.inc:2530 ../lib/modules/windowsUser.inc:1711 +#: ../lib/modules/passwordSelfReset.inc:1059 +msgid "New password" +msgstr "Nouveau mot de passe" + +#: ../templates/config/profmanage.php:133 +msgid "New password set successfully." +msgstr "Nouveau mot de passe rentré avec succès." + +#: ../lib/types/ppolicyType.inc:122 ../lib/types/ppolicyType.inc:151 +msgid "New policy" +msgstr "Nouvelle stratégie" + +#: ../lib/types/pykotaPrinterType.inc:117 +#: ../lib/types/pykotaPrinterType.inc:166 +msgid "New printer" +msgstr "Nouvelle imprimante" + +#: ../templates/config/profmanage.php:261 +#: ../templates/selfService/profManage.php:222 +msgid "New profile name" +msgstr "Nouveau nom de profil" + +#: ../lib/modules/range.inc:101 ../lib/modules/range.inc:115 +#: ../lib/modules/range.inc:454 +msgid "New range" +msgstr "Nouveau range" + +#: ../lib/modules/nisMailAlias.inc:208 +msgid "New recipient" +msgstr "Nouveau destinataire" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:81 +msgid "New required attributes" +msgstr "Nouveaux attributs obligatoires" + +#: ../lib/types/gon.inc:211 ../lib/types/group.inc:249 +msgid "New role" +msgstr "Nouveau rôle" + +#: ../templates/pdfedit/pdfpage.php:588 +msgid "New section" +msgstr "Nouvelle Section" + +#: ../lib/types/kolabSharedFolderType.inc:114 +#: ../lib/types/kolabSharedFolderType.inc:143 +msgid "New shared folder" +msgstr "Nouveau dossier partagé" + +#: ../lib/types/sudo.inc:106 ../lib/types/sudo.inc:161 +msgid "New sudo role" +msgstr "Nouveau rôle sudo" + +#: ../lib/types/user.inc:172 ../lib/types/user.inc:531 +msgid "New user" +msgstr "Nouvel utilisateur" + +#: ../lib/modules/inetOrgPerson.inc:1826 +msgid "New user certificate" +msgstr "Nouveau certificat utilisateur" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "New value" +msgstr "Nouvelle valeur" + +#: ../lib/types/bind.inc:174 ../lib/types/bind.inc:175 +msgid "New zone" +msgstr "Nouvelle zone" + +#: ../lib/modules/sambaDomain.inc:85 ../lib/modules/sambaDomain.inc:165 +#: ../lib/modules/sambaDomain.inc:186 ../lib/modules/sambaDomain.inc:361 +#: ../lib/modules/sambaDomain.inc:601 +msgid "Next RID" +msgstr "RID Suivant" + +#: ../lib/modules/sambaDomain.inc:212 ../lib/modules/sambaDomain.inc:213 +msgid "Next RID is not a number!" +msgstr "RID suivant n'est pas un numéro !" + +#: ../lib/modules/sambaDomain.inc:86 +msgid "Next RID to use when creating accounts (only used by Winbind)." +msgstr "" +"RID suivant à utiliser lors de la création de comptes (Seulement utilisé par " +"Winbind)" + +#: ../lib/modules/sambaDomain.inc:94 +msgid "Next RID to use when creating group accounts (only used by Winbind)." +msgstr "" +"RID suivant à utiliser pour la création de comptes Groupes (seulement " +"utilisé par Winbind)" + +#: ../lib/modules/sambaDomain.inc:90 +msgid "Next RID to use when creating user accounts (only used by Winbind)." +msgstr "" +"RID suivant à utiliser pour la création de comptes utilisateurs (seulement " +"utilisé par Winbind)" + +#: ../lib/modules/sambaDomain.inc:93 ../lib/modules/sambaDomain.inc:177 +#: ../lib/modules/sambaDomain.inc:188 ../lib/modules/sambaDomain.inc:377 +#: ../lib/modules/sambaDomain.inc:603 +msgid "Next group RID" +msgstr "Groupe RID suivant" + +#: ../lib/modules/sambaDomain.inc:216 ../lib/modules/sambaDomain.inc:217 +msgid "Next group RID is not a number!" +msgstr "Le prochain Rid de groupe n'est pas un nombre !" + +#: ../lib/modules/sambaDomain.inc:89 ../lib/modules/sambaDomain.inc:171 +#: ../lib/modules/sambaDomain.inc:187 ../lib/modules/sambaDomain.inc:369 +#: ../lib/modules/sambaDomain.inc:602 +msgid "Next user RID" +msgstr "RID Utilisateur suivant" + +#: ../lib/modules/sambaDomain.inc:214 ../lib/modules/sambaDomain.inc:215 +msgid "Next user RID is not a number!" +msgstr "RID utilisateur suivant n'est pas un numéro !" + +#: ../lib/modules/eduPerson.inc:101 ../lib/modules/eduPerson.inc:188 +#: ../lib/modules/eduPerson.inc:226 ../lib/modules/eduPerson.inc:342 +#: ../lib/modules/eduPerson.inc:584 +msgid "Nick names" +msgstr "Surnom" + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/pykotaPrinter.inc:52 +#: ../lib/modules/pykotaPrinter.inc:168 ../lib/modules/pykotaPrinter.inc:169 +#: ../lib/modules/pykotaPrinter.inc:170 ../lib/modules/qmailGroup.inc:321 +#: ../lib/modules/qmailGroup.inc:322 ../lib/modules/qmailGroup.inc:323 +#: ../lib/modules/qmailGroup.inc:363 ../lib/modules/qmailGroup.inc:364 +#: ../lib/modules/qmailGroup.inc:365 ../lib/modules/qmailGroup.inc:1030 +#: ../lib/modules/qmailGroup.inc:1071 ../lib/modules/qmailGroup.inc:1077 +#: ../lib/modules/imapAccess.inc:121 +msgid "No" +msgstr "Non" + +#: ../lib/types/asteriskExt.inc:144 +msgid "No Asterisk extensions found." +msgstr "Aucune extension Asterisk trouvée." + +#: ../lib/types/dhcp.inc:171 +msgid "No DHCPs found!" +msgstr "Aucun DHCP trouvé!" + +#: ../lib/types/bind.inc:160 +msgid "No DNS entries found!" +msgstr "Aucune entrée DNS trouvée !" + +#: ../lib/types/nisObjectType.inc:156 +msgid "No NIS objects found!" +msgstr "Aucun objet NIS trouvé !" + +#: ../templates/3rdParty/pla/lib/Template.php:558 +#: ../templates/3rdParty/pla/lib/Template.php:559 +msgid "No RDN attribute was selected." +msgstr "Aucun attribut RDN sélectionné." + +#: ../lib/modules/sambaSamAccount.inc:1103 +#: ../lib/modules/sambaGroupMapping.inc:341 +msgid "No Samba 3 domains found in LDAP! Please create one first." +msgstr "Pas de Domaine Samba3 trouvé dans LDAP! Créez-en un d'abord." + +#: ../lib/modules/posixAccount.inc:581 ../lib/modules/posixAccount.inc:1367 +msgid "No Unix groups found in LDAP! Please create one first." +msgstr "Aucun groupe Unix trouvé dans LDAP ! Créez-en un d'abord." + +#: ../lib/modules/qmailUser.inc:42 +msgid "No access" +msgstr "Aucun accès" + +#: ../lib/types/zarafaAddressListType.inc:145 +msgid "No address list found!" +msgstr "Aucune liste d'adresse trouvée !" + +#: ../lib/types/mailAlias.inc:142 ../lib/types/alias.inc:142 +msgid "No aliases found!" +msgstr "Aucun Alias trouvé!" + +#: ../lib/types/automountType.inc:216 +msgid "No automount entries found!" +msgstr "Aucune entrée automount trouvée !" + +#: ../lib/types/pykotaBillingCodeType.inc:164 +msgid "No billing codes found!" +msgstr "Aucun compte de facturation trouvé !" + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:36 +msgid "No binary data available" +msgstr "Pas de donnée binaire disponible" + +#: ../templates/initsuff.php:164 +msgid "No changes were made." +msgstr "Aucune modification effectuée." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:83 +#, php-format +msgid "No current value for attribute %s." +msgstr "Pas de valeur pour l'attribut %s." + +#: ../lib/types/oracleContextType.inc:187 +msgid "No database entries found!" +msgstr "Aucune entrée de base de données trouvée !" + +#: ../templates/login.php:104 +msgid "" +"No default profile set. Please set it in the server profile configuration." +msgstr "" +"Aucun profil par défaut déclaré. Merci de le définir dans le profil de " +"configuration du serveur." + +#: ../templates/schema/schema.php:144 +msgid "No description" +msgstr "Pas de description" + +#: ../lib/types/smbDomain.inc:168 +msgid "No domains found!" +msgstr "Aucun domaine trouvé!" + +#: ../lib/modules/passwordSelfReset.inc:1546 +msgid "No email address found." +msgstr "Aucune adresse mail trouvée !" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:20 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:21 +msgid "No entry was selected to delete" +msgstr "Pas d'entrée sélectionnée pour suppression" + +#: ../lib/modules/ldapPublicKey.inc:483 ../lib/modules/inetOrgPerson.inc:3221 +#: ../lib/modules/customFields.inc:3642 +msgid "No file received." +msgstr "Aucun fichier reçu." + +#: ../templates/config/mainmanage.php:161 ../lib/modules/ldapPublicKey.inc:109 +#: ../lib/modules/inetOrgPerson.inc:99 ../lib/modules/customFields.inc:3577 +msgid "No file selected." +msgstr "Pas de fichier sélectionné" + +#: ../lib/modules/qmailUser.inc:48 +msgid "No forwarding" +msgstr "Pas de transfert" + +#: ../lib/modules/posixGroup.inc:601 ../lib/modules/posixAccount.inc:104 +msgid "No free ID-Number!" +msgstr "Pas de numéro ID libre !" + +#: ../lib/types/gon.inc:203 ../lib/types/zarafaDynamicGroupType.inc:166 +#: ../lib/types/group.inc:241 ../lib/types/netgroup.inc:170 +msgid "No groups found!" +msgstr "Aucun groupe trouvé!" + +#: ../lib/types/host.inc:194 +msgid "No hosts found!" +msgstr "Pas de machines trouvés !" + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:59 +msgid "No image available" +msgstr "Aucune image disponible" + +#: ../templates/3rdParty/pla/lib/import_functions.php:94 +msgid "No import input" +msgstr "Pas de donnée d'import" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1354 +msgid "No internal attributes" +msgstr "Pas d'attributs internes" + +#: ../templates/tests/lamdaemonTest.php:195 +msgid "No lamdaemon path set, please update your LAM configuration settings." +msgstr "" +"Pas de chemin défini pour lamdaemon, merci de mettre à jour la configuration." + +#: ../templates/tests/lamdaemonTest.php:97 +#: ../templates/tests/lamdaemonTest.php:190 +msgid "No lamdaemon server set, please update your LAM configuration settings." +msgstr "" +"Pas de serveur lamdaemon défini, merci de mettre à jour la configuration." + +#: ../lib/modules/qmailUser.inc:49 +msgid "No local delivery" +msgstr "Pas de livraison locale" + +#: ../templates/config/mainmanage.php:412 +msgid "No logging" +msgstr "Pas de log" + +#: ../templates/pdfedit/pdfpage.php:429 +msgid "No logo" +msgstr "Pas de logo" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:157 +msgid "No new attributes available for this entry" +msgstr "Pas de nouvel attribut disponible pour cette entrée" + +#: ../templates/config/conftypes.php:310 ../help/help.inc:176 +msgid "No new entries" +msgstr "Aucune nouvelle entrée" + +#: ../templates/multiEdit.php:315 ../lib/lists.inc:113 +msgid "No objects found!" +msgstr "Pas d'Objet trouvé !" + +#: ../templates/config/confmodules.php:406 +msgid "No or more than one base module selected!" +msgstr "Pas ou trops de module de base sélectionné !" + +#: ../templates/config/confsave.php:53 ../templates/config/confmain.php:55 +#: ../lib/modules/passwordSelfReset.inc:1169 +msgid "No password was entered!" +msgstr "Pas de mot de passe rentré !" + +#: ../lib/types/ppolicyType.inc:150 +msgid "No policies found!" +msgstr "Aucune stratégie trouvée !" + +#: ../lib/types/pykotaPrinterType.inc:165 +msgid "No printers found!" +msgstr "Aucune imprimante trouvée !" + +#: ../templates/tests/schemaTest.php:70 +msgid "No problems found." +msgstr "Pas de problème rencontré." + +#: ../lib/modules/qmailUser.inc:50 +msgid "No program delivery" +msgstr "Pas de programme de livraison" + +#: ../lib/modules/pykotaGroup.inc:63 ../lib/modules/pykotaUser.inc:63 +msgid "No quota" +msgstr "Pas de quota" + +#: ../lib/types/gon.inc:210 ../lib/types/group.inc:248 +msgid "No roles found!" +msgstr "Aucun rôle trouvé !" + +#: ../lib/modules/customScripts.inc:215 +msgid "No scripts to run." +msgstr "Aucun script a exécuter." + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "No section text specified" +msgstr "Pas de section texte spécifié !" + +#: ../lib/modules/passwordSelfReset.inc:1199 +msgid "No security answer found." +msgstr "Aucune réponse de sécurité trouvé." + +#: ../templates/config/conflogin.php:137 +msgid "No server profiles found. Please create one." +msgstr "Pas de profil serveur trouvé. Merci d'en créer un." + +#: ../lib/types/kolabSharedFolderType.inc:142 +msgid "No shared folders found!" +msgstr "Aucun dossier partagé trouvé !" + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "No static text specified" +msgstr "Pas de texte static spécifié !" + +#: ../lib/modules/dhcp_settings.inc:318 +msgid "No subnet entered." +msgstr "Sous-réseau manquant." + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:45 +msgid "No such entry" +msgstr "Entrée inexistante" + +#: ../templates/3rdParty/pla/htdocs/compare.php:24 +#: ../templates/3rdParty/pla/htdocs/compare.php:27 +#: ../templates/3rdParty/pla/htdocs/delete.php:19 +msgid "No such entry." +msgstr "Entrée inexistante." + +#: ../templates/schema/schema.php:438 +#, php-format +msgid "No such schema item: \"%s\"" +msgstr "Schéma inexistant : \"%s\"" + +#: ../lib/types/sudo.inc:160 +msgid "No sudo roles found!" +msgstr "Aucun rôle sudo trouvé !" + +#: ../lib/types/user.inc:530 +msgid "No users found!" +msgstr "Aucun utilisateur trouvé!" + +#: ../templates/config/mainmanage.php:444 +msgid "Non-standard (\\n)" +msgstr "Non-standard (\\n)" + +#: ../lib/modules/qmailUser.inc:58 +msgid "None" +msgstr "Aucun" + +#: ../lib/modules/sudoRole.inc:133 ../lib/modules/sudoRole.inc:195 +#: ../lib/modules/sudoRole.inc:222 ../lib/modules/sudoRole.inc:281 +#: ../lib/modules/sudoRole.inc:481 ../lib/modules/sudoRole.inc:822 +msgid "Not after" +msgstr "Pas après" + +#: ../lib/modules/sudoRole.inc:128 ../lib/modules/sudoRole.inc:201 +#: ../lib/modules/sudoRole.inc:223 ../lib/modules/sudoRole.inc:283 +#: ../lib/modules/sudoRole.inc:474 ../lib/modules/sudoRole.inc:817 +msgid "Not before" +msgstr "Pas avant" + +#: ../help/help.inc:68 +msgid "Note" +msgstr "Information" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:125 +msgid "" +"Note: You may be required to enter new attributes that these object classes " +"require" +msgstr "" +"Note : il pourra vous être demandé d'entrer les nouveaux attributs " +"obligatoires pour cet objectclass" + +#: ../lib/modules/windowsGroup.inc:122 ../lib/modules/windowsGroup.inc:189 +#: ../lib/modules/windowsGroup.inc:259 ../lib/modules/windowsGroup.inc:349 +#: ../lib/modules/windowsGroup.inc:747 +msgid "Notes" +msgstr "Informations" + +#: ../templates/3rdParty/pla/lib/export_functions.php:450 +msgid "Nothing to export" +msgstr "Rien a exporter" + +#: ../templates/config/mainmanage.php:408 +msgid "Notice" +msgstr "Note" + +#: ../templates/delete.php:103 +msgid "Number of child entries" +msgstr "Nombre d'entrées fils" + +#: ../lib/modules/customFields.inc:129 +msgid "Number of columns in text area." +msgstr "Nombre de colonnes de la zone de texte." + +#: ../lib/modules/shadowAccount.inc:182 +msgid "" +"Number of days a user can login even his password has expired. -1=always." +msgstr "" +"Nombre de jours pendant lesquels un utilisateur paut se connecter bien que " +"son mot de passe ait expiré. -1 = toujours." + +#: ../lib/modules/shadowAccount.inc:186 +msgid "" +"Number of days a user has to wait until he is allowed to change his password " +"again. If set value must be >0." +msgstr "" +"Nombre de jours avant que l'utilisateur puisse changer son mot de passe à " +"nouveau. Si défini, la valeur doit être >0." + +#: ../lib/modules/shadowAccount.inc:190 +msgid "" +"Number of days after a user has to change his password again. If set value " +"must be >0." +msgstr "" +"Durée de validité du mot de passe. Le nombre de jours est soit vide soit > 0." + +#: ../lib/modules/mitKerberos.inc:129 +msgid "Number of failed logins." +msgstr "Nombre de tentatives de connexion." + +#: ../lib/modules/sambaDomain.inc:138 +msgid "Number of minutes after which the bad logon attempts are reset." +msgstr "" +"Nombre de minutes avant réinitialisation du nombre d'échecs de connexions." + +#: ../lib/modules/pykotaBillingCode.inc:90 +msgid "Number of pages printed with this billing code." +msgstr "Nombre de pages imprimées avec ce compte de facturation." + +#: ../lib/modules/customFields.inc:133 +msgid "Number of rows in text area." +msgstr "Nombre de lignes de la zone de texte." + +#: ../templates/config/mainmanage.php:395 ../help/help.inc:162 +msgid "Number of rules that must match" +msgstr "Le nombre de règles qui doivent correspondre" + +#: ../lib/modules/ppolicy.inc:85 ../lib/modules/sambaDomain.inc:126 +msgid "" +"Number of seconds after the user is allowed to change his password again." +msgstr "" +"Nombre de secondes avant que l'utilisateur puisse changer son mot de passe à " +"nouveau." + +#: ../lib/modules/ppolicy.inc:89 ../lib/modules/sambaDomain.inc:130 +msgid "Number of seconds after which the user must change his password." +msgstr "" +"Nombre de secondes avant que l'utilisateur soit obligé de changer son mot de " +"passe." + +#: ../templates/schema/schema.php:147 ../templates/schema/schema.php:344 +msgid "OID" +msgstr "OID" + +#: ../templates/ou_edit.php:83 +msgid "OU already exists!" +msgstr "OU existe déjà !" + +#: ../templates/ou_edit.php:94 +msgid "OU deleted successfully." +msgstr "OU éffacée avec succès." + +#: ../templates/ou_edit.php:152 ../lib/tools/ouEditor.inc:44 +msgid "OU editor" +msgstr "Editeur d'OU" + +#: ../templates/ou_edit.php:87 +msgid "OU is invalid!" +msgstr "OU n'est pas valable !" + +#: ../templates/ou_edit.php:131 +msgid "OU is not empty or invalid!" +msgstr "OU n'est pas vide ou non valable !" + +#: ../help/help.inc:263 ../help/help.inc:265 +msgid "OU-Editor" +msgstr "éditeur OU" + +#: ../templates/schema/schema.php:65 ../templates/schema/schema.php:66 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1324 +#: ../lib/modules/selfRegistration.inc:74 +#: ../lib/modules/selfRegistration.inc:214 ../lib/modules/customFields.inc:80 +#: ../lib/modules/customFields.inc:574 +msgid "Object classes" +msgstr "Classes d'objets" + +#: ../lib/lists.inc:112 +#, php-format +msgid "Object count: %s" +msgstr "Nombre d'objets : %s" + +#: ../templates/schema/schema.php:152 ../templates/schema/schema.php:283 +msgid "Obsolete" +msgstr "Obsolète" + +#: ../lib/modules/sambaDomain.inc:289 ../lib/modules/sambaDomain.inc:298 +#: ../lib/modules/sambaDomain.inc:307 ../lib/modules/sambaDomain.inc:614 +#: ../lib/modules/sambaDomain.inc:619 ../lib/modules/sambaDomain.inc:624 +msgid "Off" +msgstr "Etient" + +#: ../lib/modules/windowsUser.inc:152 ../lib/modules/windowsUser.inc:344 +#: ../lib/modules/windowsUser.inc:508 ../lib/modules/windowsUser.inc:541 +#: ../lib/modules/windowsUser.inc:713 ../lib/modules/windowsUser.inc:1596 +#: ../lib/modules/windowsUser.inc:1725 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:199 ../lib/modules/inetOrgPerson.inc:531 +#: ../lib/modules/inetOrgPerson.inc:566 ../lib/modules/inetOrgPerson.inc:792 +#: ../lib/modules/inetOrgPerson.inc:796 ../lib/modules/inetOrgPerson.inc:1358 +#: ../lib/modules/inetOrgPerson.inc:1361 ../lib/modules/inetOrgPerson.inc:1911 +#: ../lib/modules/inetOrgPerson.inc:2621 ../lib/modules/inetOrgPerson.inc:3525 +#: ../lib/modules/inetOrgPerson.inc:3581 +msgid "Office name" +msgstr "Nom de bureau" + +#: ../templates/lists/changePassword.php:340 +#: ../templates/lists/changePassword.php:377 +#: ../templates/lists/changePassword.php:418 +#: ../templates/lists/changePassword.php:449 +#: ../templates/tests/lamdaemonTest.php:92 ../templates/ou_edit.php:193 +#: ../templates/ou_edit.php:207 ../templates/masscreate.php:211 +#: ../templates/config/profmanage.php:254 +#: ../templates/config/profmanage.php:266 +#: ../templates/config/profmanage.php:275 +#: ../templates/config/profmanage.php:293 +#: ../templates/config/profmanage.php:302 +#: ../templates/config/profmanage.php:304 +#: ../templates/config/mainmanage.php:469 +#: ../templates/config/conflogin.php:177 ../templates/config/mainlogin.php:165 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminLogin.php:165 +#: ../templates/selfService/adminMain.php:626 +#: ../templates/selfService/adminMain.php:679 +#: ../templates/pdfedit/pdfmain.php:210 ../templates/pdfedit/pdfmain.php:217 +#: ../templates/pdfedit/pdfmain.php:223 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/profedit/profilemain.php:205 +#: ../templates/profedit/profilemain.php:211 +#: ../lib/types/automountType.inc:234 ../lib/types/user.inc:303 +#: ../lib/types/bind.inc:175 ../lib/modules/selfRegistration.inc:446 +#: ../lib/modules/zarafaContact.inc:433 ../lib/modules/zarafaGroup.inc:493 +#: ../lib/modules/device.inc:300 ../lib/modules/sambaSamAccount.inc:1431 +#: ../lib/modules/sambaSamAccount.inc:1566 ../lib/modules/zarafaUser.inc:917 +#: ../lib/modules/zarafaUser.inc:968 ../lib/modules/sambaGroupMapping.inc:508 +#: ../lib/modules/nisnetgroup.inc:479 ../lib/modules/nisnetgroup.inc:489 +#: ../lib/modules/asteriskExtension.inc:484 ../lib/modules/aliasEntry.inc:146 +#: ../lib/modules/aliasEntry.inc:166 ../lib/modules/qmailGroup.inc:862 +#: ../lib/modules/imapAccess.inc:295 ../lib/modules/organizationalRole.inc:337 +#: ../lib/modules/passwordSelfReset.inc:872 +#: ../lib/modules/passwordSelfReset.inc:1094 +#: ../lib/modules/windowsGroup.inc:603 ../lib/modules/groupOfNames.inc:394 +#: ../lib/modules/groupOfNames.inc:549 ../lib/modules/nisMailAlias.inc:375 +#: ../lib/modules/nisMailAlias.inc:384 ../lib/lists.inc:710 +#: ../lib/lists.inc:792 ../lib/modules.inc:1221 +msgid "Ok" +msgstr "Ok" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:98 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +msgid "Old value" +msgstr "Ancienne Valeur" + +#: ../lib/modules/sambaDomain.inc:289 ../lib/modules/sambaDomain.inc:298 +#: ../lib/modules/sambaDomain.inc:307 ../lib/modules/sambaDomain.inc:615 +#: ../lib/modules/sambaDomain.inc:620 ../lib/modules/sambaDomain.inc:625 +msgid "On" +msgstr "On" + +#: ../lib/modules/sambaSamAccount.inc:243 +#: ../lib/modules/sambaSamAccount.inc:384 +#: ../lib/modules/sambaSamAccount.inc:1552 +#: ../lib/modules/sambaSamAccount.inc:1962 +msgid "On broken or timed out connection" +msgstr "Sur connexions coupées ou délais dépassés" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:139 +#: ../templates/3rdParty/pla/htdocs/export_form.php:32 +msgid "One (one level beneath base)" +msgstr "One (un niveau de base)" + +#: ../lib/modules/range.inc:114 ../lib/modules/fixed_ip.inc:127 +msgid "One or more errors occured. The invalid fields are marked." +msgstr "" +"Une ou plusieurs erreurs sont survenues. Les champs incorrectes sont marqués." + +#: ../templates/3rdParty/pla/htdocs/copy.php:98 +#: ../templates/3rdParty/pla/htdocs/copy.php:155 +#, php-format +msgid "Operation not successful. DN %s has not been created." +msgstr "L'opération a échoué. Le DN %s n'a pas été créé." + +#: ../templates/serverInfo.php:277 ../templates/serverInfo.php:367 +msgid "Operation statistics" +msgstr "Statistiques d'opération" + +#: ../templates/3rdParty/pla/htdocs/copy.php:95 +#: ../templates/3rdParty/pla/htdocs/copy.php:153 +#, php-format +msgid "Operation successful. DN %s has been created." +msgstr "Opération réussie. Le DN %s a été créé." + +#: ../templates/multiEdit.php:117 ../help/help.inc:273 +msgid "Operations" +msgstr "Opérations" + +#: ../templates/schema/schema.php:384 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1575 +msgid "Optional attributes" +msgstr "Attributs optionnels" + +#: ../lib/modules/fixed_ip.inc:111 +msgid "Optional description for the PC." +msgstr "Description supplémentaire pour le PC." + +#: ../lib/types/sudo.inc:83 ../lib/modules/mitKerberos.inc:408 +#: ../lib/modules/zarafaDynamicGroup.inc:267 +#: ../lib/modules/zarafaContact.inc:241 ../lib/modules/zarafaGroup.inc:278 +#: ../lib/modules/posixAccount.inc:245 ../lib/modules/zarafaUser.inc:571 +#: ../lib/modules/windowsUser.inc:723 ../lib/modules/kolabUser.inc:379 +#: ../lib/modules/sudoRole.inc:94 ../lib/modules/sudoRole.inc:123 +#: ../lib/modules/sudoRole.inc:189 ../lib/modules/sudoRole.inc:221 +#: ../lib/modules/sudoRole.inc:233 ../lib/modules/sudoRole.inc:451 +#: ../lib/modules/sudoRole.inc:811 ../lib/modules/asteriskExtension.inc:122 +#: ../lib/modules/asteriskVoicemail.inc:115 +#: ../lib/modules/asteriskVoicemail.inc:125 +#: ../lib/modules/asteriskVoicemail.inc:142 +#: ../lib/modules/asteriskVoicemail.inc:190 +#: ../lib/modules/asteriskVoicemail.inc:258 +#: ../lib/modules/asteriskVoicemail.inc:375 ../lib/modules/qmailGroup.inc:611 +#: ../lib/modules/heimdalKerberos.inc:339 +msgid "Options" +msgstr "Options" + +#: ../lib/modules/asteriskVoicemail.inc:116 +msgid "Options for Asterisk voicemail account (e.g. sendvoicemail=yes)." +msgstr "" +"Options pour les comptes de messagerie vocale Asterisk ( ex : " +"sendvoicemail=yes)." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:39 +msgid "Or paste your LDIF here" +msgstr "Ou collez votre LDIF ici" + +#: ../lib/modules/oracleService.inc:47 +msgid "Oracle database" +msgstr "Base de données Oracle" + +#: ../lib/types/oracleContextType.inc:48 +msgid "Oracle database entries" +msgstr "Entrées de base de donnée Oracle" + +#: ../lib/types/oracleContextType.inc:39 +msgid "Oracle databases" +msgstr "Bases de données Oracle" + +#: ../lib/modules/sudoRole.inc:138 ../lib/modules/sudoRole.inc:207 +#: ../lib/modules/sudoRole.inc:224 ../lib/modules/sudoRole.inc:285 +#: ../lib/modules/sudoRole.inc:484 ../lib/modules/sudoRole.inc:812 +msgid "Order" +msgstr "Ordre" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:166 +msgid "Order by" +msgstr "Trier par" + +#: ../templates/schema/schema.php:171 +msgid "Ordering" +msgstr "Commande" + +#: ../lib/modules/eduPerson.inc:126 ../lib/modules/eduPerson.inc:200 +#: ../lib/modules/eduPerson.inc:227 ../lib/modules/eduPerson.inc:245 +#: ../lib/modules/eduPerson.inc:346 ../lib/modules/eduPerson.inc:587 +#: ../lib/modules/inetOrgPerson.inc:223 ../lib/modules/inetOrgPerson.inc:499 +#: ../lib/modules/inetOrgPerson.inc:608 ../lib/modules/inetOrgPerson.inc:824 +#: ../lib/modules/inetOrgPerson.inc:828 ../lib/modules/inetOrgPerson.inc:1499 +#: ../lib/modules/inetOrgPerson.inc:1502 ../lib/modules/inetOrgPerson.inc:1916 +#: ../lib/modules/inetOrgPerson.inc:3553 ../lib/modules/inetOrgPerson.inc:3588 +msgid "Organisation" +msgstr "Organisation" + +#: ../lib/modules/inetOrgPerson.inc:163 ../lib/modules/inetOrgPerson.inc:220 +#: ../lib/modules/inetOrgPerson.inc:491 ../lib/modules/inetOrgPerson.inc:611 +#: ../lib/modules/inetOrgPerson.inc:816 ../lib/modules/inetOrgPerson.inc:820 +#: ../lib/modules/inetOrgPerson.inc:1490 ../lib/modules/inetOrgPerson.inc:1493 +#: ../lib/modules/inetOrgPerson.inc:1915 ../lib/modules/inetOrgPerson.inc:2753 +#: ../lib/modules/inetOrgPerson.inc:3551 ../lib/modules/inetOrgPerson.inc:3588 +msgid "Organisational unit" +msgstr "Unité Organisationnelle" + +#: ../lib/modules/eduPerson.inc:134 ../lib/modules/eduPerson.inc:138 +#: ../lib/modules/eduPerson.inc:212 ../lib/modules/eduPerson.inc:228 +#: ../lib/modules/eduPerson.inc:350 ../lib/modules/eduPerson.inc:589 +msgid "Organisational units" +msgstr "Unités Organisationelles" + +#: ../lib/modules/eduPerson.inc:249 +msgid "Organisational units contains an invalid entry." +msgstr "L'unité Organisationnelle contient une entrée non valide." + +#: ../templates/multiEdit.php:98 ../templates/config/confmain.php:328 +msgid "Other" +msgstr "Autre" + +#: ../lib/modules/windowsUser.inc:144 ../lib/modules/windowsUser.inc:148 +#: ../lib/modules/windowsUser.inc:368 ../lib/modules/windowsUser.inc:507 +#: ../lib/modules/windowsUser.inc:603 ../lib/modules/windowsUser.inc:719 +#: ../lib/modules/windowsUser.inc:1595 +msgid "Other telephone numbers" +msgstr "Autres Numéros de téléphone personnel" + +#: ../lib/modules/windowsUser.inc:180 ../lib/modules/windowsUser.inc:184 +#: ../lib/modules/windowsUser.inc:380 ../lib/modules/windowsUser.inc:515 +#: ../lib/modules/windowsUser.inc:721 ../lib/modules/windowsUser.inc:1603 +msgid "Other web sites" +msgstr "Autres Sites web" + +#: ../lib/modules/customScripts.inc:84 ../lib/modules/customScripts.inc:100 +#: ../lib/modules/customScripts.inc:110 +msgid "Output may contain HTML" +msgstr "La sortie peut contenir du code HTML" + +#: ../lib/modules/customScripts.inc:264 ../lib/modules/customScripts.inc:554 +#, php-format +msgid "Output of command \"%s\" with return code %s" +msgstr "Sortie de la commande \"%s\" avec code de retour %s" + +#: ../lib/modules/pykotaUser.inc:144 ../lib/modules/pykotaUser.inc:171 +#: ../lib/modules/pykotaUser.inc:253 ../lib/modules/pykotaUser.inc:263 +#: ../lib/modules/pykotaUser.inc:324 ../lib/modules/pykotaUser.inc:402 +#: ../lib/modules/pykotaUser.inc:899 +msgid "Overcharge factor" +msgstr "Facteur de surcharge" + +#: ../lib/modules/pykotaUser.inc:145 +msgid "" +"Overcharge factor that is applied when computing the cost of a print job. " +"The number of pages is not changed." +msgstr "" +"Facteur de surcharge appliqué lors du calcul de coût des travaux " +"d'impression. Le nombre de pages est inchangé." + +#: ../templates/serverInfo.php:168 +msgid "Overlays" +msgstr "Surcouches" + +#: ../lib/modules/zarafaUser.inc:89 +msgid "Override default quota settings." +msgstr "Ecraser les parmètres de quota par défaut." + +#: ../templates/config/confmain.php:320 ../lib/types/asteriskExt.inc:96 +#: ../lib/types/asteriskExt.inc:158 +msgid "Owner" +msgstr "Propriétaire" + +#: ../lib/types/gon.inc:108 ../lib/modules/device.inc:69 +#: ../lib/modules/device.inc:73 ../lib/modules/device.inc:103 +#: ../lib/modules/device.inc:128 ../lib/modules/device.inc:180 +#: ../lib/modules/device.inc:424 ../lib/modules/groupOfNames.inc:93 +#: ../lib/modules/groupOfNames.inc:97 ../lib/modules/groupOfNames.inc:143 +#: ../lib/modules/groupOfNames.inc:174 ../lib/modules/groupOfNames.inc:197 +#: ../lib/modules/groupOfNames.inc:240 ../lib/modules/groupOfNames.inc:398 +#: ../lib/modules/groupOfNames.inc:702 +msgid "Owners" +msgstr "Propriétaires" + +#: ../lib/modules/dhcp_settings.inc:97 +msgid "P-Node (0x02)" +msgstr "Noeud-P (0x02)" + +#: ../lib/modules/fixed_ip.inc:98 ../lib/modules/fixed_ip.inc:425 +#: ../lib/modules/fixed_ip.inc:740 +msgid "PC name" +msgstr "Nom de machine" + +#: ../lib/modules/windowsHost.inc:96 +msgid "PC01" +msgstr "PC01" + +#: ../templates/pdfedit/pdfpage.php:445 ../templates/pdfedit/pdfmain.php:84 +#: ../lib/tools/pdfEdit.inc:44 +msgid "PDF editor" +msgstr "Editeur PDF" + +#: ../templates/masscreate.php:275 ../templates/pdfedit/pdfmain.php:310 +#: ../lib/lists.inc:688 ../help/help.inc:204 +msgid "PDF structure" +msgstr "Structure PDF" + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "PDF structure name not valid" +msgstr "Nom de Structure PDF non valide" + +#: ../templates/pdfedit/pdfmain.php:168 +msgid "PDF structure was successfully saved." +msgstr "structure PDF correctement sauvée." + +#: ../templates/pdfedit/pdfmain.php:277 +msgid "PDF structures" +msgstr "Structures PDF" + +#: ../templates/serverInfo.php:264 +msgid "PDUs sent" +msgstr "PDU envoyé" + +#: ../templates/config/mainmanage.php:432 ../help/help.inc:158 +msgid "PHP error reporting" +msgstr "Rapport d'erreur PHP" + +#: ../templates/config/mainmanage.php:428 +msgid "PHP system setting" +msgstr "Paramètres PHP du système" + +#: ../lib/modules/zarafaUser.inc:306 ../lib/modules/zarafaUser.inc:645 +#: ../lib/modules/zarafaUser.inc:1334 +msgid "POP3" +msgstr "POP3" + +#: ../templates/lists/changePassword.php:406 +#: ../templates/lists/changePassword.php:437 ../lib/types/user.inc:376 +#: ../lib/types/user.inc:408 +msgid "PPolicy" +msgstr "PPolicy" + +#: ../lib/modules/bindDLZ.inc:108 ../lib/modules/bindDLZ.inc:294 +#: ../lib/modules/bindDLZ.inc:300 ../lib/modules/bindDLZ.inc:478 +msgid "PTR record" +msgstr "Enregistrement PTR" + +#: ../lib/modules/bindDLZ.inc:415 ../lib/modules/bindDLZ.inc:434 +#: ../lib/modules/bindDLZ.inc:1489 +msgid "PTR records" +msgstr "Enregistrements PTR" + +#: ../lib/modules/sambaSamAccount.inc:556 +msgid "Pacific Time (US & Canada)" +msgstr "Pacific Time (US & Canada)" + +#: ../lib/modules/dhcp_settings.inc:166 +msgid "" +"Packets are sent to the default gateway if the receiver does not reside in " +"the same network. The default gateway routes them to the target network." +msgstr "" +"Les paquets sont envoyés vers la passerelle par défaut si le destinataire ne " +"réside pas sur le même réseau. La passerelle part défaut les aiguillera vers " +"le réseau cible." + +#: ../lib/types/pykotaBillingCodeType.inc:94 +#: ../lib/modules/pykotaBillingCode.inc:89 +#: ../lib/modules/pykotaBillingCode.inc:118 +#: ../lib/modules/pykotaBillingCode.inc:151 +#: ../lib/modules/pykotaBillingCode.inc:264 +msgid "Page count" +msgstr "Nombre de pages" + +#: ../templates/selfService/adminMain.php:521 ../help/help.inc:234 +msgid "Page header" +msgstr "En-tête de la page" + +#: ../templates/selfService/adminMain.php:434 +msgid "Page layout" +msgstr "Mise en page" + +#: ../lib/modules/asteriskVoicemail.inc:111 +#: ../lib/modules/asteriskVoicemail.inc:141 +#: ../lib/modules/asteriskVoicemail.inc:184 +#: ../lib/modules/asteriskVoicemail.inc:256 +#: ../lib/modules/asteriskVoicemail.inc:373 +msgid "Pager" +msgstr "téléavertisseur (pager)" + +#: ../lib/modules/asteriskVoicemail.inc:112 +msgid "Pager number for Asterisk voicemail." +msgstr "Numéro de pager pour boîte vocale Asterisk." + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:35 +msgid "Parent DN" +msgstr "DN parent" + +#: ../lib/modules/puppetClient.inc:88 ../lib/modules/puppetClient.inc:134 +#: ../lib/modules/puppetClient.inc:154 ../lib/modules/puppetClient.inc:265 +#: ../lib/modules/puppetClient.inc:431 ../lib/modules/puppetClient.inc:466 +msgid "Parent node" +msgstr "Noeud parent" + +#: ../lib/modules/puppetClient.inc:190 +msgid "Parent node not found." +msgstr "Noeud parent introuvable." + +#: ../templates/schema/schema.php:366 +msgid "Parent to" +msgstr "Parent à" + +#: ../templates/3rdParty/pla/htdocs/import.php:98 +msgid "Parse error" +msgstr "Erreur de parsing" + +#: ../lib/modules/pykotaPrinter.inc:107 ../lib/modules/pykotaPrinter.inc:166 +#: ../lib/modules/pykotaPrinter.inc:196 ../lib/modules/pykotaPrinter.inc:243 +#: ../lib/modules/pykotaPrinter.inc:595 +msgid "Passthrough" +msgstr "Passthrough" + +#: ../templates/lists/changePassword.php:356 ../templates/login.php:379 +#: ../templates/selfService/selfServiceLogin.php:323 +#: ../lib/selfService.inc:393 ../lib/modules/mitKerberos.inc:156 +#: ../lib/modules/mitKerberos.inc:242 ../lib/modules/mitKerberos.inc:257 +#: ../lib/modules/mitKerberos.inc:795 ../lib/modules/mitKerberos.inc:798 +#: ../lib/modules/selfRegistration.inc:407 +#: ../lib/modules/selfRegistration.inc:533 +#: ../lib/modules/selfRegistration.inc:536 +#: ../lib/modules/selfRegistration.inc:539 +#: ../lib/modules/asteriskAccount.inc:115 +#: ../lib/modules/asteriskAccount.inc:325 ../lib/modules/posixGroup.inc:205 +#: ../lib/modules/posixGroup.inc:598 ../lib/modules/sambaSamAccount.inc:105 +#: ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:250 +#: ../lib/modules/sambaSamAccount.inc:425 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/posixAccount.inc:110 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:332 ../lib/modules/posixAccount.inc:418 +#: ../lib/modules/posixAccount.inc:522 ../lib/modules/posixAccount.inc:1496 +#: ../lib/modules/posixAccount.inc:1868 ../lib/modules/posixAccount.inc:1871 +#: ../lib/modules/windowsUser.inc:223 ../lib/modules/windowsUser.inc:272 +#: ../lib/modules/windowsUser.inc:524 ../lib/modules/windowsUser.inc:549 +#: ../lib/modules/windowsUser.inc:615 ../lib/modules/windowsUser.inc:616 +#: ../lib/modules/windowsUser.inc:1638 ../lib/modules/windowsUser.inc:1641 +#: ../lib/modules/inetOrgPerson.inc:840 ../lib/modules/inetOrgPerson.inc:1556 +#: ../lib/modules/inetOrgPerson.inc:2052 ../lib/modules/inetOrgPerson.inc:3590 +#: ../lib/modules/asteriskVoicemail.inc:99 +#: ../lib/modules/asteriskVoicemail.inc:165 +#: ../lib/modules/customFields.inc:2444 ../lib/modules/heimdalKerberos.inc:124 +#: ../lib/modules/heimdalKerberos.inc:211 +#: ../lib/modules/heimdalKerberos.inc:223 +#: ../lib/modules/heimdalKerberos.inc:695 +#: ../lib/modules/heimdalKerberos.inc:698 ../lib/modules.inc:1043 +#: ../help/help.inc:202 +msgid "Password" +msgstr "Mot de passe" + +#: ../lib/modules/sambaSamAccount.inc:294 +#: ../lib/modules/sambaSamAccount.inc:1155 ../lib/modules/windowsUser.inc:214 +#: ../lib/modules/windowsUser.inc:410 ../lib/modules/windowsUser.inc:522 +#: ../lib/modules/windowsUser.inc:1626 +msgid "Password change at next login" +msgstr "Changer de mot de passe à la prochaine connexion" + +#: ../lib/modules/mitKerberos.inc:148 ../lib/modules/mitKerberos.inc:261 +#: ../lib/modules/heimdalKerberos.inc:118 +#: ../lib/modules/heimdalKerberos.inc:227 +msgid "Password change command" +msgstr "Commande de modification du mot passe" + +#: ../templates/lists/changePassword.php:295 +msgid "Password change options" +msgstr "Options de modification de mot de passe" + +#: ../lib/modules/ppolicyUser.inc:59 ../lib/modules/ppolicyUser.inc:74 +#: ../lib/modules/ppolicyUser.inc:132 ../lib/modules/ppolicyUser.inc:265 +msgid "Password change required" +msgstr "Changement de mot de passe obligatoire" + +#: ../lib/types/ppolicyType.inc:91 ../lib/modules/ppolicy.inc:136 +#: ../lib/modules/ppolicy.inc:156 ../lib/modules/ppolicy.inc:300 +#: ../lib/modules/ppolicy.inc:510 +msgid "Password change requires old password" +msgstr "Pour changer de mot de passe, il faut connaître l'ancien" + +#: ../lib/modules/mitKerberos.inc:189 ../lib/modules/mitKerberos.inc:467 +#: ../lib/modules/heimdalKerberos.inc:154 +#: ../lib/modules/heimdalKerberos.inc:393 +msgid "Password change service" +msgstr "Service de modification de mot de passe" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:30 +msgid "Password check" +msgstr "Vérification du mot de passe" + +#: ../lib/modules/mitKerberos.inc:297 ../lib/modules/selfRegistration.inc:536 +#: ../lib/modules/posixGroup.inc:598 ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:107 ../lib/modules/posixAccount.inc:110 +#: ../lib/modules/posixAccount.inc:111 ../lib/modules/windowsUser.inc:616 +#: ../lib/modules/inetOrgPerson.inc:105 +msgid "Password contains invalid characters. Valid characters are:" +msgstr "" +"Le mot de passe contient des caractères incorrectes. Les caractères " +"autorisés sont:" + +#: ../lib/modules/sambaSamAccount.inc:279 +#: ../lib/modules/sambaSamAccount.inc:282 +#: ../lib/modules/sambaSamAccount.inc:447 +#: ../lib/modules/sambaSamAccount.inc:1145 +#: ../lib/modules/sambaSamAccount.inc:1737 ../lib/modules/windowsUser.inc:198 +#: ../lib/modules/windowsUser.inc:394 ../lib/modules/windowsUser.inc:518 +#: ../lib/modules/windowsUser.inc:747 ../lib/modules/windowsUser.inc:1616 +msgid "Password does not expire" +msgstr "Le mot de passe n'expire jamais" + +#: ../lib/types/user.inc:103 ../lib/modules/shadowAccount.inc:61 +#: ../lib/modules/shadowAccount.inc:113 ../lib/modules/shadowAccount.inc:170 +#: ../lib/modules/shadowAccount.inc:181 ../lib/modules/shadowAccount.inc:215 +#: ../lib/modules/shadowAccount.inc:324 ../lib/modules/shadowAccount.inc:502 +msgid "Password expiration" +msgstr "Expiration du mot de passe" + +#: ../lib/modules/shadowAccount.inc:61 ../lib/modules/shadowAccount.inc:62 +msgid "Password expiration must be are natural number or -1." +msgstr "L'expiration du mot de passe doit etre un nombre ou -1." + +#: ../templates/selfService/adminMain.php:505 ../help/help.inc:238 +msgid "Password field label" +msgstr "Etiquette du champ de mot de passe" + +#: ../lib/modules/asteriskVoicemail.inc:100 +msgid "Password for voicemail mailbox." +msgstr "Mot de passe pour le boîte vocale." + +#: ../lib/modules/posixGroup.inc:504 ../lib/modules/posixGroup.inc:557 +#: ../lib/modules/posixAccount.inc:191 ../lib/modules/posixAccount.inc:247 +#: ../lib/modules/posixAccount.inc:457 ../lib/modules/inetOrgPerson.inc:812 +#: ../lib/modules/inetOrgPerson.inc:3500 ../lib/modules/customFields.inc:136 +#: ../lib/modules/customFields.inc:2458 +msgid "Password hash type" +msgstr "Le type de hash du mot de passe" + +#: ../lib/types/ppolicyType.inc:80 ../lib/modules/ppolicy.inc:92 +#: ../lib/modules/ppolicy.inc:145 ../lib/modules/ppolicy.inc:169 +#: ../lib/modules/ppolicy.inc:230 ../lib/modules/ppolicy.inc:474 +#: ../lib/modules/sambaDomain.inc:105 ../lib/modules/sambaDomain.inc:191 +#: ../lib/modules/sambaDomain.inc:283 ../lib/modules/sambaDomain.inc:606 +msgid "Password history length" +msgstr "Longueur de l'historique de mots de passes" + +#: ../templates/config/confmain.php:367 +msgid "Password mail settings" +msgstr "Paramètres mail pour les mots de passe" + +#: ../lib/modules/shadowAccount.inc:59 ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/ppolicy.inc:167 ../lib/modules/sambaDomain.inc:222 +msgid "Password maximum age must be are natural number." +msgstr "Longévité Max. du mot de passe doit etre un nombre." + +#: ../lib/modules/shadowAccount.inc:66 +msgid "Password maximum age must be bigger as password minimum age." +msgstr "" +"Longévité Max. du mot de passe doit etre plus grand que Longévité Min. du " +"mot de passe" + +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/ppolicy.inc:168 +#: ../lib/modules/sambaDomain.inc:220 +msgid "Password maximum age must be bigger than password minimum age." +msgstr "" +"Longévité Max. du mot de passe doit être plus grande que Longévité Min. du " +"mot de passe" + +#: ../lib/modules/shadowAccount.inc:57 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/ppolicy.inc:166 ../lib/modules/sambaDomain.inc:221 +msgid "Password minimum age must be are natural number." +msgstr "Longévité minimale du mot de passe doit etre un nombre." + +#: ../templates/config/mainmanage.php:401 ../help/help.inc:166 +msgid "Password must not contain part of user/first/last name" +msgstr "" +"Le mot de passe ne doit pas contenir d'élément du login, du prénom ou du nom" + +#: ../templates/config/mainmanage.php:399 ../help/help.inc:164 +msgid "Password must not contain user name" +msgstr "Le mot de passe ne doit pas contenir le nom de famille" + +#: ../lib/modules/imapAccess.inc:94 ../lib/modules/imapAccess.inc:290 +msgid "Password of IMAP admin user" +msgstr "Mot de passe de l'admin IMAP" + +#: ../lib/types/ppolicyType.inc:39 +msgid "Password policies" +msgstr "Stratégies de mot de passe" + +#: ../lib/types/ppolicyType.inc:48 +msgid "Password policies (ppolicy)" +msgstr "Stratégie de mot de passe (ppolicy)" + +#: ../templates/config/mainmanage.php:382 ../lib/types/user.inc:284 +#: ../lib/types/user.inc:837 ../lib/modules/ppolicyUser.inc:45 +#: ../lib/modules/ppolicyUser.inc:55 ../lib/modules/ppolicyUser.inc:67 +#: ../lib/modules/ppolicyUser.inc:83 ../lib/modules/ppolicyUser.inc:123 +#: ../lib/modules/ppolicyUser.inc:260 ../lib/modules/ppolicyUser.inc:293 +#: ../lib/modules/ppolicy.inc:62 ../lib/modules/sambaDomain.inc:266 +#: ../help/help.inc:154 +msgid "Password policy" +msgstr "Stratégie de mot de passe" + +#: ../lib/types/ppolicyType.inc:81 ../lib/modules/ppolicy.inc:96 +#: ../lib/modules/ppolicy.inc:146 ../lib/modules/ppolicy.inc:242 +#: ../lib/modules/ppolicy.inc:490 +msgid "Password quality check" +msgstr "Vérification de la qualité du mot de passe" + +#: ../lib/modules/passwordSelfReset.inc:539 +msgid "Password reset confirmation" +msgstr "Confirmation de la réinitialisation du mot de passe" + +#: ../lib/modules/passwordSelfReset.inc:559 +msgid "Password reset notification" +msgstr "Notification de la réinitialisation du mot de passe" + +#: ../lib/modules/passwordSelfReset.inc:66 +#: ../lib/modules/passwordSelfReset.inc:875 +#: ../lib/modules/passwordSelfReset.inc:1097 +msgid "Password self reset" +msgstr "Self-service de ré-initialisation de mot de passe" + +#: ../lib/modules/passwordSelfReset.inc:1607 +msgid "Password successfully reset." +msgstr "Mot de passe ré-initialisé avec succès." + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:108 +#: ../lib/modules/shadowAccount.inc:168 ../lib/modules/shadowAccount.inc:177 +#: ../lib/modules/shadowAccount.inc:209 ../lib/modules/shadowAccount.inc:316 +#: ../lib/modules/shadowAccount.inc:501 +msgid "Password warning" +msgstr "Avertissement du mot de passe" + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:64 +msgid "Password warning must be are natural number." +msgstr "L'avertissement mot de passe doit etre un nombre." + +#: ../templates/config/confmain.php:610 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:61 +#: ../lib/modules/passwordSelfReset.inc:1174 ../lib/modules.inc:1125 +msgid "Passwords are different!" +msgstr "Les mots de passe sont différents !" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:59 +msgid "Passwords match." +msgstr "Les mots de passe sont identiques." + +#: ../lib/types/nisObjectType.inc:77 +msgid "Path" +msgstr "Chemin" + +#: ../lib/modules/windowsUser.inc:205 +msgid "" +"Path of the user profile (UNC-path, e.g. \\\\server\\share\\user). $user is " +"replaced with user name." +msgstr "" +"Chemin du profil utilisateur (chemin UNC, pa ex : \\\\serveur\\partage" +"\\utilisateur). $user sera remplacé par le nom d'utilisateur." + +#: ../lib/modules/sambaSamAccount.inc:358 +msgid "Path of the user profile." +msgstr "Chemin du profil utilisateur" + +#: ../lib/modules/sambaSamAccount.inc:309 +msgid "" +"Path of the user profile. Can be a local absolute path or a UNC-path (\\" +"\\server\\share). $user and $group are replaced with user and group name." +msgstr "" +"Chemin du profil utilisateur. Soit un chemin local absolu soit un chemin UNC " +"(\\\\serveur\\partage). $user et $group sont remplacés par les noms " +"d'utilisateur et de groupe." + +#: ../lib/modules/imapAccess.inc:112 ../lib/modules/imapAccess.inc:146 +msgid "Path separator" +msgstr "Séparateur de chemin" + +#: ../templates/config/confmain.php:311 +msgid "Path to external script" +msgstr "Chemin vers le script externe" + +#: ../lib/modules/ddns.inc:93 ../lib/modules/ddns.inc:371 +msgid "Path to key for DNS updates" +msgstr "Chemin des clés pour mettre à jour le DNS" + +#: ../lib/modules/qmailGroup.inc:140 +msgid "" +"Path to the maildir/mbox on the mail system for sender confirmation and " +"moderation." +msgstr "" +"Chemin vers la maildir/mailbox du système de messagerie pour les " +"confirmations d'expéditeur et les modérations." + +#: ../lib/modules/qmailUser.inc:248 +msgid "Path to the maildir/mbox on the mail system." +msgstr "Chemin vers la maildir/mailbox sur le serveur de messagerie." + +#: ../lib/modules/pykotaUser.inc:152 ../lib/modules/pykotaUser.inc:326 +#: ../lib/modules/pykotaUser.inc:369 +msgid "Payment" +msgstr "Paiement" + +#: ../lib/modules/pykotaUser.inc:148 +msgid "Payment and job history" +msgstr "Paiement et historique des travaux" + +#: ../lib/modules/pykotaUser.inc:149 +msgid "Payment and job history for this user." +msgstr "Paiement et historique des tâches pour cet utilisateur." + +#: ../lib/modules/pykotaUser.inc:265 ../lib/modules/pykotaUser.inc:283 +#: ../lib/modules/pykotaUser.inc:384 ../lib/modules/pykotaUser.inc:591 +#: ../lib/modules/pykotaUser.inc:983 +msgid "Payment history" +msgstr "Historique des paiements" + +#: ../lib/tools/multiEdit.inc:53 +msgid "Performs modifications on multiple LDAP entries." +msgstr "Modifier plusieurs entrées LDAP." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:41 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:64 +msgid "Permanently delete all children also?" +msgstr "Supprimer définitivement tous les fils également ?" + +#: ../lib/modules/asteriskAccount.inc:171 +#: ../lib/modules/asteriskAccount.inc:281 +#: ../lib/modules/asteriskAccount.inc:422 +#: ../lib/modules/asteriskAccount.inc:678 +#: ../lib/modules/asteriskAccount.inc:997 +#: ../lib/modules/asteriskAccount.inc:1263 +msgid "Permit" +msgstr "Autoriser" + +#: ../lib/modules/inetOrgPerson.inc:130 +msgid "Personal" +msgstr "Personnel" + +#: ../lib/selfService.inc:389 +msgid "Personal data" +msgstr "Données personnelles" + +#: ../lib/types/user.inc:102 ../lib/types/user.inc:620 +#: ../lib/modules/inetOrgPerson.inc:159 ../lib/modules/inetOrgPerson.inc:2650 +#: ../lib/modules/inetOrgPerson.inc:2657 ../lib/modules/inetOrgPerson.inc:3563 +#: ../lib/modules/inetOrgPerson.inc:3590 ../lib/modules/inetOrgPerson.inc:3609 +msgid "Photo" +msgstr "Photo" + +#: ../lib/modules/inetOrgPerson.inc:1664 +msgid "Photo file" +msgstr "Fichier photo" + +#: ../lib/modules/inetOrgPerson.inc:1662 +msgid "Photo file (JPG format)" +msgstr "Fichier photo (format JPG)" + +#: ../lib/modules/asteriskAccount.inc:175 +#: ../lib/modules/asteriskAccount.inc:282 +#: ../lib/modules/asteriskAccount.inc:429 +#: ../lib/modules/asteriskAccount.inc:682 +#: ../lib/modules/asteriskAccount.inc:998 +#: ../lib/modules/asteriskAccount.inc:1265 +msgid "Pickup group" +msgstr "Sélectionnez un groupe" + +#: ../lib/modules/ldapPublicKey.inc:77 +msgid "Please a comma separated list of your public SSH keys." +msgstr "Entrez la liste de vos clés publiques SSH séparées par des virgules." + +#: ../lib/modules/nisMailAliasUser.inc:131 +msgid "Please activate the mail aliases type for this server profile." +msgstr "Activez le type alias de mails pour ce profil serveur." + +#: ../lib/modules/customScripts.inc:85 +msgid "" +"Please activate this option if your scripts may generate HTML output. " +"Otherwise, the output is treated as plain text." +msgstr "" +"Activez cette option si vos scripts peuvent produire des sorties en HTML. " +"Sinon les sorties seront traitées comme du texte brut." + +#: ../lib/modules/asteriskExtension.inc:193 +msgid "Please add at least one extension owner." +msgstr "Vous devez ajouter au moins un propriétaire du numéro." + +#: ../help/help.inc:157 +msgid "" +"Please change this setting only if you experience problems in receiving " +"emails from LAM. This defines the line ending of emails." +msgstr "" +"Changez ce paramètre uniquement si vous rencontrez des problèmes lors de la " +"réception des mails de LAM. Ceci définit le bas de page des mails." + +#: ../lib/modules/qmailGroup.inc:331 +msgid "Please check if this email should be sent." +msgstr "Vérifiez si ce mail doit être envoyé." + +#: ../lib/modules/sambaSamAccount.inc:1093 +msgid "Please check your settings on the Unix page!" +msgstr "Merci de vérifier vos paramètres à la page Unix !" + +#: ../lib/modules/imapAccess.inc:104 +msgid "" +"Please choose the attribute to get the IMAP user name. The default is \"mail" +"\" but you can also use \"uid\"." +msgstr "" +"Choisissez l'attribut désignant le nom d'utilisateur IMAP. Le défaut est " +"\"mail\" mais vous pouvez choisir \"uid\"." + +#: ../lib/modules/passwordSelfReset.inc:543 +msgid "Please click here to continue: @@resetLink@@" +msgstr "Veuillez cliquer sur ce lien pour continuer : @@resteLink@@" + +#: ../lib/types/user.inc:298 +msgid "Please click to lock/unlock this account." +msgstr "Cliquez pour bloquer/débloquer ce compte." + +#: ../lib/modules/pykotaPrinter.inc:219 +msgid "Please enter \"Yes\" or \"No\"." +msgstr "Veuillez saisir \"Oui\" ou \"Non\"." + +#: ../lib/modules/sambaSamAccount.inc:108 +msgid "Please enter a RID number or the name of a special account!" +msgstr "Entrez un numéro RID pour le nom du compte spécial!" + +#: ../lib/modules/asteriskAccount.inc:555 +msgid "Please enter a caller ID." +msgstr "Sasissez in ID d'appelant." + +#: ../lib/modules/imapAccess.inc:101 +msgid "" +"Please enter a comma separated list of domain names (e.g. \"company.com," +"example.com\"). LAM will only manage mailboxes from these domains." +msgstr "" +"Entrez une liste de noms de domaines séparés par des virgules ( ex : " +"\"compagnie.com,exemple.fr\"). LAM ne gèrera que les boites de messageries " +"provenant de ces domaines." + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +msgid "Please enter a comma separated list of host names!" +msgstr "Entrez une liste de machines séparée par des virgules!" + +#: ../lib/modules/asteriskExtension.inc:185 +msgid "Please enter a common name." +msgstr "Saisissez un nom d'usage." + +#: ../lib/modules/imapAccess.inc:178 +msgid "Please enter a correct list of valid mail domains." +msgstr "Saisissez une liste de noms de domaines valide." + +#: ../lib/modules/sudoRole.inc:130 ../lib/modules/sudoRole.inc:135 +#: ../lib/modules/sudoRole.inc:281 ../lib/modules/sudoRole.inc:282 +#: ../lib/modules/sudoRole.inc:283 ../lib/modules/sudoRole.inc:284 +msgid "Please enter a date in format \"DD.MM.YYYY HH:MM\" or \"DD.MM.YYYY\"." +msgstr "Saisissez une date au format \"DD.MM.YYYY HH:MM\" ou \"DD.MM.YYYY\"." + +#: ../lib/modules/customFields.inc:89 +msgid "Please enter a descriptive label for this field." +msgstr "Donnez une description pour ce champ." + +#: ../lib/modules/nisObject.inc:62 ../lib/modules/automount.inc:65 +#: ../lib/modules/sudoRole.inc:67 ../lib/modules/oracleService.inc:62 +msgid "Please enter a descriptive name for this entry." +msgstr "Donnez une description pour cette entrée." + +#: ../lib/modules/windowsGroup.inc:119 +msgid "Please enter a descriptive text for this group." +msgstr "Donnez une description pour ce groupe." + +#: ../lib/modules/windowsHost.inc:79 +msgid "Please enter a descriptive text for this host." +msgstr "Donnez une description pour cet hôte." + +#: ../lib/modules/windowsUser.inc:120 +msgid "Please enter a descriptive text for this user." +msgstr "Donnez une description pour cet utilisateur." + +#: ../lib/modules/organizationalRole.inc:173 +#: ../lib/modules/groupOfNames.inc:209 +msgid "Please enter a group name!" +msgstr "Veuillez saisir un nom de groupe !" + +#: ../lib/modules/windowsUser.inc:241 +msgid "" +"Please enter a list of Windows domains that can be selected for your user " +"accounts." +msgstr "" +"Saisissez une liste de domaines Windows sélectionnables pour les comptes " +"utilisateurs." + +#: ../lib/modules/selfRegistration.inc:120 +msgid "Please enter a list of object classes for the new accounts." +msgstr "Saisissez une liste d'objectClass pour le nouveau compte." + +#: ../lib/modules/asteriskVoicemail.inc:209 +msgid "Please enter a mailbox." +msgstr "Saisissez une boîte de messagerie." + +#: ../lib/modules/device.inc:62 +msgid "Please enter a name for this device." +msgstr "Saisissez un nom pour ce matériel." + +#: ../lib/modules/kolabSharedFolder.inc:113 +msgid "Please enter a name for this folder." +msgstr "Saisissez un nom pour ce dossier." + +#: ../lib/modules/ppolicy.inc:165 +msgid "Please enter a name for this policy." +msgstr "Saisissez un nom pour cette stratégie." + +#: ../lib/modules/kolabSharedFolder.inc:261 +msgid "Please enter a name." +msgstr "Saisissez un nom." + +#: ../lib/modules/customFields.inc:2626 +msgid "Please enter a natural number for column count." +msgstr "Saisissez une nombre entier pour le nombre de colonnes." + +#: ../lib/modules/customFields.inc:2636 +msgid "Please enter a natural number for row count." +msgstr "Saisissez un nombre entier pour le nombre de lignes." + +#: ../lib/modules/qmailUser.inc:465 ../lib/modules/qmailUser.inc:467 +msgid "Please enter a number for GID number." +msgstr "Saisissez un nombre pour le GID number." + +#: ../lib/modules/qmailUser.inc:462 ../lib/modules/qmailUser.inc:464 +msgid "Please enter a number for UID number." +msgstr "Saisissez un nombre pour l'UID number." + +#: ../lib/modules/qmailUser.inc:458 ../lib/modules/qmailUser.inc:459 +msgid "Please enter a number for message count limit." +msgstr "Saisissez un nombre pour le nombre messages max." + +#: ../lib/modules/qmailUser.inc:460 ../lib/modules/qmailUser.inc:461 +msgid "Please enter a number for message size limit." +msgstr "Saisissez un nombre pour la taille max des messages." + +#: ../lib/modules/qmailUser.inc:456 ../lib/modules/qmailUser.inc:457 +msgid "Please enter a number for quota size." +msgstr "Saisissez un nombre pour le quota." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:51 +#: ../templates/lib/141_jquery-validationEngine-lang.php:55 +#: ../lib/modules/mitKerberos.inc:298 ../lib/modules/zarafaUser.inc:408 +#: ../lib/modules/zarafaUser.inc:409 ../lib/modules/zarafaUser.inc:410 +#: ../lib/modules/zarafaUser.inc:411 ../lib/modules/zarafaUser.inc:412 +#: ../lib/modules/zarafaUser.inc:413 ../lib/modules/zarafaUser.inc:415 +#: ../lib/modules/zarafaUser.inc:416 ../lib/modules/bindDLZ.inc:469 +#: ../lib/modules/kolabUser.inc:257 ../lib/modules/kolabUser.inc:258 +#: ../lib/modules/sudoRole.inc:285 ../lib/modules/sudoRole.inc:286 +msgid "Please enter a number." +msgstr "Saisissez un nombre." + +#: ../lib/modules/ppolicy.inc:174 +msgid "Please enter a numeric value for the expire warning." +msgstr "Saisissez une valeur numérique pour l'alerte d'expiration." + +#: ../lib/modules/ppolicy.inc:173 +msgid "Please enter a numeric value for the failure count interval." +msgstr "" +"Saisissez une valeur numérique pour l'interval de prise en compte des échecs " +"d'authetification." + +#: ../lib/modules/ppolicy.inc:170 +msgid "Please enter a numeric value for the grace authentication limit." +msgstr "" +"Saisissez une valeur numérique pour le delai de grâce d'authentification." + +#: ../lib/modules/freeRadius.inc:259 ../lib/modules/freeRadius.inc:260 +msgid "Please enter a numeric value for the idle timeout." +msgstr "Saisissez une valeur numérique pour le délai d'inactivité." + +#: ../lib/modules/ppolicy.inc:171 +msgid "Please enter a numeric value for the lockout duration." +msgstr "Saisissez une valeur numérique pour la durée de bannissement." + +#: ../lib/modules/ppolicy.inc:172 +msgid "Please enter a numeric value for the maximum failure count." +msgstr "Saisissez une valeur numérique pour le nombre maximum d'échecs." + +#: ../lib/modules/ppolicy.inc:175 +msgid "Please enter a numeric value for the minimum password length." +msgstr "Saisissez une valeur numérique pour la longueur mini du mot de passe." + +#: ../lib/modules/ppolicy.inc:169 +msgid "Please enter a numeric value for the password history length." +msgstr "" +"Saisissez une valeur numérique pour la taille de l'historique des mots de " +"passe." + +#: ../lib/modules/sudoRole.inc:267 +msgid "Please enter a role name." +msgstr "Saisissez un uom de rôle." + +#: ../lib/modules/passwordSelfReset.inc:1203 +msgid "Please enter a security answer." +msgstr "Saisissez une réponse de sécurité valide." + +#: ../lib/modules/selfRegistration.inc:118 +msgid "Please enter a subject for the confirmation mails." +msgstr "Saisissez un sujet pour les mails de confirmation." + +#: ../lib/modules/kolabSharedFolder.inc:262 +msgid "Please enter a target folder." +msgstr "Sasissez un dossier cible" + +#: ../lib/modules/selfRegistration.inc:119 +msgid "" +"Please enter a text for the confirmation mails that includes the creation " +"link." +msgstr "" +"Saisissez un texte pour les mails de confirmation incluant le lien de " +"création." + +#: ../lib/modules/customFields.inc:85 +msgid "Please enter a unique name for this field." +msgstr "Saisissez un nom unique pour ce champ." + +#: ../lib/modules/ppolicy.inc:81 +msgid "Please enter a unique name for this password policy." +msgstr "Donnez un nom unique pour cette stratégie de mot de passe." + +#: ../lib/modules/kolabUser.inc:274 ../lib/modules/kolabUser.inc:280 +msgid "Please enter a user password." +msgstr "Saisissez un mot de passe utilisateur." + +#: ../lib/modules/zarafaDynamicGroup.inc:198 ../lib/modules/eduPerson.inc:245 +#: ../lib/modules/eduPerson.inc:247 ../lib/modules/zarafaAddressList.inc:169 +msgid "Please enter a valid DN in the field:" +msgstr "Saisissez un DN valide dans le champ :" + +#: ../lib/types/bind.inc:205 +msgid "Please enter a valid DNS name." +msgstr "Saisissez un nom DNS valide." + +#: ../lib/modules/customFields.inc:1189 ../lib/modules/customFields.inc:1746 +msgid "" +"Please enter a valid LDAP attribute name. Allowed characters are a-z, 0-9, _ " +"and -." +msgstr "" +"Saisissez un nom d'attribut LDAP valide. Les caractères autorisés sont : a-" +"z, 0-9, _ et -." + +#: ../templates/selfService/adminMain.php:221 +msgid "Please enter a valid LDAP suffix." +msgstr "Saisissez un sufixe LDAP valide" + +#: ../templates/selfService/adminMain.php:225 +msgid "" +"Please enter a valid LDAP user if you want to use it for all operations." +msgstr "" +"Saissez un nom d'utilisateur LDAP valide si vous souhaitez l'utiliser pour " +"toutes les opérations." + +#: ../lib/modules/qmailUser.inc:454 +msgid "Please enter a valid account status." +msgstr "Saisissez un statut de compte valide." + +#: ../lib/modules/bindDLZ.inc:522 ../lib/modules/bindDLZ.inc:523 +msgid "Please enter a valid admin email address." +msgstr "Saisissez une adresse mail d'administrateur valide." + +#: ../templates/config/confmain.php:554 +msgid "Please enter a valid bind user." +msgstr "Saisissez un nom de connexion valide." + +#: ../lib/modules/inetOrgPerson.inc:103 ../lib/modules/inetOrgPerson.inc:104 +msgid "Please enter a valid business category!" +msgstr "Veuillez saisir un nom de catégorie professionnelle valide!" + +#: ../lib/modules/posixAccount.inc:129 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/windowsUser.inc:591 ../lib/modules/windowsUser.inc:592 +#: ../lib/modules/inetOrgPerson.inc:93 ../lib/modules/inetOrgPerson.inc:94 +msgid "Please enter a valid common name!" +msgstr "Entrez un nom valide!" + +#: ../lib/modules/qmailUser.inc:471 +msgid "Please enter a valid configuration type." +msgstr "Saisissez un type de configuration valide." + +#: ../lib/modules/mitKerberos.inc:291 ../lib/modules/mitKerberos.inc:292 +#: ../lib/modules/qmailUser.inc:470 ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/heimdalKerberos.inc:255 +#: ../lib/modules/heimdalKerberos.inc:256 +msgid "Please enter a valid date in format DD-MM-YYYY." +msgstr "Entrez une date au format JJ-MM-AAAA." + +#: ../lib/modules/asteriskAccount.inc:576 +#: ../lib/modules/asteriskAccount.inc:577 +msgid "Please enter a valid default user." +msgstr "Saisissez un nom d'utilisateur par défaut valide." + +#: ../lib/modules/qmailUser.inc:455 +msgid "Please enter a valid delivery mode." +msgstr "Saisissez un mode de livraison valide." + +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:111 ../lib/modules/windowsUser.inc:595 +#: ../lib/modules/windowsUser.inc:596 +msgid "Please enter a valid display name!" +msgstr "Entrez un nom d'affichage valide!" + +#: ../lib/modules/sambaSamAccount.inc:117 ../lib/modules/windowsUser.inc:617 +msgid "Please enter a valid drive letter." +msgstr "Entrez une lettre de lecteur valide." + +#: ../lib/modules/kolabGroup.inc:177 ../lib/modules/kolabGroup.inc:178 +#: ../lib/modules/selfRegistration.inc:122 +#: ../lib/modules/selfRegistration.inc:482 +#: ../lib/modules/zarafaDynamicGroup.inc:200 +#: ../lib/modules/zarafaDynamicGroup.inc:201 ../lib/modules/qmailUser.inc:448 +#: ../lib/modules/qmailUser.inc:449 ../lib/modules/qmailUser.inc:450 +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:453 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:216 ../lib/modules/windowsUser.inc:607 +#: ../lib/modules/windowsUser.inc:608 ../lib/modules/pykotaUser.inc:319 +#: ../lib/modules/pykotaUser.inc:320 ../lib/modules/inetOrgPerson.inc:78 +#: ../lib/modules/inetOrgPerson.inc:80 +#: ../lib/modules/kolabSharedFolder.inc:259 +#: ../lib/modules/kolabSharedFolder.inc:260 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:421 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:425 +#: ../lib/modules/qmailGroup.inc:426 ../lib/modules/qmailGroup.inc:427 +#: ../lib/modules/qmailGroup.inc:428 ../lib/modules/qmailGroup.inc:429 +#: ../lib/modules/qmailGroup.inc:430 ../lib/modules/qmailGroup.inc:431 +#: ../lib/modules/qmailGroup.inc:432 ../lib/modules/passwordSelfReset.inc:232 +#: ../lib/modules/passwordSelfReset.inc:233 +#: ../lib/modules/passwordSelfReset.inc:900 +#: ../lib/modules/passwordSelfReset.inc:1122 +#: ../lib/modules/windowsGroup.inc:285 ../lib/modules/windowsGroup.inc:286 +#: ../lib/modules.inc:1170 +msgid "Please enter a valid email address!" +msgstr "Saisissez une adresse mail valide !" + +#: ../lib/modules/zarafaDynamicGroup.inc:202 +#: ../lib/modules/zarafaDynamicGroup.inc:203 +#: ../lib/modules/zarafaGroup.inc:217 ../lib/modules/zarafaGroup.inc:218 +msgid "Please enter a valid email alias." +msgstr "Saisissez une adresse mail valide." + +#: ../lib/modules/passwordSelfReset.inc:907 +#: ../lib/modules/passwordSelfReset.inc:1129 +msgid "Please enter a valid employee number." +msgstr "Saisissez un numéro d'employé valide." + +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:92 +msgid "Please enter a valid employee type!" +msgstr "Saisissez un type de contrat valide!" + +#: ../lib/modules/inetOrgPerson.inc:76 ../lib/modules/inetOrgPerson.inc:77 +msgid "Please enter a valid fax number!" +msgstr "Saisissez un numéro de fax valide!" + +#: ../lib/modules/customFields.inc:187 +msgid "" +"Please enter a valid field name. Only letters, numbers, dash and underline " +"are allowed." +msgstr "" +"Saisissez un nom de champ valide. Seuls les lettres, chiffres, tirets et " +"sous-tirets sont autorisés." + +#: ../lib/lists.inc:229 +msgid "" +"Please enter a valid filter. Only letters, numbers and \" _*$.@-\" are " +"allowed." +msgstr "" +"Saisissez un filtre valide. Seuls les lettres, chiffres et \" _*$.@-\" sont " +"autorisés." + +#: ../lib/modules/selfRegistration.inc:83 +#: ../lib/modules/selfRegistration.inc:218 +msgid "Please enter a valid first name." +msgstr "Saisissez un prénom valide." + +#: ../lib/modules/asteriskAccount.inc:570 +#: ../lib/modules/asteriskAccount.inc:571 +msgid "Please enter a valid from domain." +msgstr "Saisissez un domaine d'expéditeur valide." + +#: ../lib/modules/asteriskAccount.inc:568 +#: ../lib/modules/asteriskAccount.inc:569 +msgid "Please enter a valid from user." +msgstr "Saisissez un expéditeur valide." + +#: ../lib/modules/sambaSamAccount.inc:121 +msgid "Please enter a valid group name!" +msgstr "Veuillez saisir un nom de groupe valide !" + +#: ../lib/modules/windowsGroup.inc:287 +msgid "Please enter a valid group scope." +msgstr "Veuillez saisir un périmètre de groupe valide." + +#: ../lib/modules/windowsGroup.inc:288 +msgid "Please enter a valid group type." +msgstr "Veuillez saisir un type de groupe valide." + +#: ../lib/modules/pykotaUser.inc:327 +msgid "Please enter a valid job suffix." +msgstr "Saisissez un sufixe de tâche valide." + +#: ../lib/modules/inetOrgPerson.inc:89 ../lib/modules/inetOrgPerson.inc:90 +msgid "Please enter a valid job title!" +msgstr "Saisissez un nom de profession valide !" + +#: ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:219 +msgid "Please enter a valid last name." +msgstr "Saisissez un nom de famille valide." + +#: ../lib/modules/pykotaGroup.inc:205 ../lib/modules/pykotaUser.inc:321 +msgid "Please enter a valid limit type." +msgstr "Saisissez un type de limite valide." + +#: ../lib/modules/eduPerson.inc:253 +msgid "Please enter a valid list of affiliations." +msgstr "Saisissez une liste d'affectation valide." + +#: ../lib/modules/freeRadius.inc:255 ../lib/modules/freeRadius.inc:256 +msgid "Please enter a valid list of group names." +msgstr "Saisissez une liste de noms de groupes valide." + +#: ../lib/modules/hostObject.inc:111 +msgid "Please enter a valid list of host names." +msgstr "Saisissez une liste de noms d'hôtes valide." + +#: ../lib/modules/authorizedServiceObject.inc:130 +msgid "Please enter a valid list of service names." +msgstr "Saisissez une liste de noms de service valides." + +#: ../lib/modules/inetOrgPerson.inc:74 ../lib/modules/inetOrgPerson.inc:75 +msgid "Please enter a valid mobile number!" +msgstr "Entrez un numéro de portable valable, s'il vous plait !" + +#: ../lib/modules/pykotaPrinter.inc:215 ../lib/modules/pykotaPrinter.inc:216 +#: ../lib/modules/pykotaPrinter.inc:217 ../lib/modules/pykotaPrinter.inc:218 +#: ../lib/modules/pykotaUser.inc:322 ../lib/modules/pykotaUser.inc:323 +#: ../lib/modules/pykotaUser.inc:324 ../lib/modules/pykotaUser.inc:325 +#: ../lib/modules/pykotaUser.inc:326 +msgid "Please enter a valid number (e.g. \"1.5\")." +msgstr "Saisissez un nombre valide (par ex \"1.5\")." + +#: ../lib/modules/pykotaPrinter.inc:213 ../lib/modules/pykotaPrinter.inc:214 +msgid "Please enter a valid number." +msgstr "Saisissez un nombre valide." + +#: ../lib/modules/customFields.inc:190 +msgid "Please enter a valid object class." +msgstr "Saisissez un objectClass valide." + +#: ../lib/modules/dhcp_settings.inc:331 +msgid "Please enter a valid option." +msgstr "Saisissez une option valide." + +#: ../lib/modules/zarafaServer.inc:177 ../lib/modules/zarafaServer.inc:178 +msgid "Please enter a valid path." +msgstr "Saisissez un chemin valide." + +#: ../lib/modules/asteriskAccount.inc:572 +#: ../lib/modules/asteriskAccount.inc:573 ../lib/modules/zarafaServer.inc:173 +#: ../lib/modules/zarafaServer.inc:174 ../lib/modules/zarafaServer.inc:175 +#: ../lib/modules/zarafaServer.inc:176 +msgid "Please enter a valid port number." +msgstr "Saisissez un numéro de port valide." + +#: ../lib/modules/inetOrgPerson.inc:83 ../lib/modules/inetOrgPerson.inc:84 +msgid "Please enter a valid postal address!" +msgstr "Entrez une adresse valable, s'il vous plait !" + +#: ../lib/modules/windowsUser.inc:605 ../lib/modules/windowsUser.inc:606 +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:88 +msgid "Please enter a valid postal code!" +msgstr "Entrez un code postal valable, s'il vous plait !" + +#: ../lib/modules/eduPerson.inc:251 +msgid "Please enter a valid primary affiliation." +msgstr "Saisissez une affectation primaire valide." + +#: ../lib/modules/freeRadius.inc:253 ../lib/modules/freeRadius.inc:254 +msgid "Please enter a valid realm." +msgstr "Saisissez un royaume valide." + +#: ../lib/modules/kolabGroup.inc:181 ../lib/modules/kolabGroup.inc:182 +#: ../lib/modules/kolabUser.inc:253 ../lib/modules/kolabUser.inc:254 +#: ../lib/modules/kolabSharedFolder.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:251 +msgid "Please enter a valid recipient expression." +msgstr "Saisissez une syntaxe de destinataire valide." + +#: ../lib/modules/inetOrgPerson.inc:85 ../lib/modules/inetOrgPerson.inc:86 +msgid "Please enter a valid registered address." +msgstr "Saisissez une adresse valide." + +#: ../lib/modules/eduPerson.inc:252 +msgid "Please enter a valid scoped affiliation." +msgstr "Saisissez un champ d'application valid." + +#: ../lib/modules/kolabGroup.inc:183 ../lib/modules/kolabGroup.inc:184 +#: ../lib/modules/kolabUser.inc:255 ../lib/modules/kolabUser.inc:256 +#: ../lib/modules/kolabSharedFolder.inc:252 +#: ../lib/modules/kolabSharedFolder.inc:253 +msgid "Please enter a valid sender expression." +msgstr "Saisissez une syntaxe d'expéditeur valide." + +#: ../lib/modules/qmailUser.inc:468 ../lib/modules/qmailUser.inc:469 +#: ../lib/modules/imapAccess.inc:177 +msgid "Please enter a valid server name where the mailboxes reside." +msgstr "Entrez un nom de serveur valide hébergeant les boîte de messagerie." + +#: ../lib/modules/inetOrgPerson.inc:81 ../lib/modules/inetOrgPerson.inc:82 +msgid "Please enter a valid street name!" +msgstr "Entrez un nom de rue valable, s'il vous plait !" + +#: ../lib/modules/windowsUser.inc:601 ../lib/modules/windowsUser.inc:602 +#: ../lib/modules/windowsUser.inc:603 ../lib/modules/windowsUser.inc:604 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:71 +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:73 +msgid "Please enter a valid telephone number!" +msgstr "Entrez un numéro de téléphone valable, s'il vous plait !" + +#: ../lib/modules/passwordSelfReset.inc:921 +#: ../lib/modules/passwordSelfReset.inc:1143 +msgid "Please enter a valid user name or email address." +msgstr "Veuillez saisir un nom d'utilisateur ou une adresse mail valide." + +#: ../lib/modules/posixGroup.inc:724 ../lib/modules/posixAccount.inc:1160 +#: ../lib/modules/posixAccount.inc:1165 +#, php-format +msgid "Please enter a value between %s and %s!" +msgstr "Entrez un numéro entre %s et %s, s'il vous plait !" + +#: ../lib/modules/customFields.inc:2780 +msgid "Please enter a value for status \"checked\"." +msgstr "Saisissez une valeur pour le statut \"coché\"." + +#: ../lib/modules/customFields.inc:2787 +msgid "Please enter a value for status \"unchecked\"." +msgstr "Saisissez une valeur pour le statut \"décoché\"." + +#: ../templates/multiEdit.php:140 +msgid "Please enter a value to add." +msgstr "Saisissez une valeur à ajouter." + +#: ../templates/multiEdit.php:143 +msgid "Please enter a value to modify." +msgstr "Saisissez une valeur à modifier." + +#: ../lib/modules/customFields.inc:77 +msgid "Please enter an alias for this group." +msgstr "Saisissez un alias pour ce groupe." + +#: ../lib/modules/customFields.inc:189 +msgid "Please enter an alias name." +msgstr "Saisissez un nom d'alias." + +#: ../lib/modules/kolabUser.inc:286 ../lib/modules/imapAccess.inc:208 +#, php-format +msgid "Please enter an email address on this page: %s" +msgstr "Entrez une adresse de courriel valide sur cette page: %s" + +#: ../lib/modules/pykotaUser.inc:353 +#, php-format +msgid "Please enter an user name on this page: %s" +msgstr "Saisissez un nom d'utilisateur sur cette page : %s" + +#: ../lib/modules/windowsUser.inc:1352 ../lib/modules/windowsUser.inc:1361 +#: ../lib/modules/windowsUser.inc:1370 ../lib/modules/windowsUser.inc:1381 +msgid "Please enter either yes or no." +msgstr "Saisissez oui ou non." + +#: ../lib/modules/sudoRole.inc:273 ../lib/modules/sudoRole.inc:274 +msgid "Please enter only ASCII characters for the commands." +msgstr "Les commandes ne doivent comporter que des caractères ASCII." + +#: ../lib/modules/sudoRole.inc:271 ../lib/modules/sudoRole.inc:272 +msgid "Please enter only ASCII characters for the host names." +msgstr "Saisissez uniquement des caractères ASCII pour les noms d'hôtes." + +#: ../lib/modules/sudoRole.inc:279 ../lib/modules/sudoRole.inc:280 +msgid "Please enter only ASCII characters for the options." +msgstr "Les options ne doivent comporter que des caractères ASCII." + +#: ../lib/modules/sudoRole.inc:277 ../lib/modules/sudoRole.inc:278 +msgid "Please enter only ASCII characters for the run groups." +msgstr "Les groupes ne doivent comporter que des caractères ASCII." + +#: ../lib/modules/sudoRole.inc:275 ../lib/modules/sudoRole.inc:276 +msgid "Please enter only ASCII characters for the run users." +msgstr "Le numéro de série ne doit comporter que des caractères ASCII." + +#: ../lib/modules/device.inc:140 ../lib/modules/device.inc:141 +msgid "Please enter only ASCII characters for the serial number." +msgstr "Le numéro de série ne doit comporter que des caractères ASCII." + +#: ../lib/modules/sudoRole.inc:269 ../lib/modules/sudoRole.inc:270 +msgid "Please enter only ASCII characters for the user names." +msgstr "Le nom d'utilisateur ne doit comporter que des caractères ASCII." + +#: ../lib/modules/passwordSelfReset.inc:231 +msgid "" +"Please enter the DN and password of the administrative password self reset " +"account." +msgstr "" +"Saisissez le DN et mot de passe du compte administratif du self-service de " +"mot de passe." + +#: ../lib/modules/selfRegistration.inc:117 +msgid "" +"Please enter the DN and password of the administrative self registration " +"account." +msgstr "" +"Saisissez le DN et mot de passe du compte administratif d'auto-" +"enregistrement." + +#: ../lib/modules/posixGroup.inc:525 ../lib/modules/posixAccount.inc:502 +msgid "" +"Please enter the DN of the LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "" +"Saisissez le DN de l'entrées LDAP contenant l'objectClass \"sambaUnixIdPool" +"\"." + +#: ../lib/modules/bindDLZ.inc:86 ../lib/modules/bindDLZ.inc:90 +msgid "Please enter the IP address for this entry." +msgstr "Saisissez l'adresse IP de cette entrée." + +#: ../lib/modules/ddns.inc:99 +msgid "Please enter the IP address of your DNS server." +msgstr "Saisissez l'adresse IP de votre serveur DNS." + +#: ../lib/modules/selfRegistration.inc:62 +msgid "Please enter the LDAP DN that should be used to create new users." +msgstr "Saisissez le DN à utiliser pour créer de nouveaux utilisateur." + +#: ../lib/modules/passwordSelfReset.inc:105 +msgid "Please enter the LDAP DN that should be used to reset passwords." +msgstr "Saisissez le DN a utiliser pour ré-initialiser les mots de passe." + +#: ../lib/modules/customFields.inc:93 +msgid "Please enter the LDAP attribute name for this field." +msgstr "Saisissez le nom de l'attribut LDAP correspondant à ce champ." + +#: ../help/help.inc:123 +msgid "" +"Please enter the LDAP suffix where LAM should start to search for users. The " +"LDAP filter needs to match the given user name to exactly one DN. The value " +"\"%USER%\" will be replaced by the user name from the login page." +msgstr "" +"Entrez le suffixe LDAP à partir duquel LAM commencera sa recherche " +"d'utilisateurs. Le nom d'utilisateur fourni au filtre LDAP doit retourner un " +"unique DN. Les valeurs \"%USER%\" seront remplacées par les noms " +"d'utilisateur de la page de connexion." + +#: ../lib/modules/pykotaUser.inc:157 +msgid "" +"Please enter the LDAP suffix where the PyKota job entries are stored " +"(configuration option \"jobbase\")." +msgstr "" +"Veuillez saisir le sufixe LDAP où sont enregistrées les tâches PyKota " +"(option de configuration \"jobbase\")." + +#: ../lib/modules/asteriskExtension.inc:188 +#: ../lib/modules/asteriskVoicemail.inc:214 +msgid "Please enter the account context." +msgstr "Saisissez le contexte du compte." + +#: ../lib/modules.inc:928 +msgid "Please enter the account information on the other pages first." +msgstr "" +"Veuillez d'abord compléter les informations de compte sur les autres pages." + +#: ../lib/modules/asteriskAccount.inc:565 +msgid "Please enter the account type." +msgstr "Sélectionnez un type de compte." + +#: ../lib/modules/asteriskAccount.inc:120 +msgid "Please enter the account's type (e.g. \"friend\")." +msgstr "Saisissez un type de compte (ex : \"invité\")." + +#: ../lib/modules/asteriskExtension.inc:187 +msgid "Please enter the application data." +msgstr "Entrez les données d'application." + +#: ../lib/modules/asteriskExtension.inc:186 +msgid "Please enter the application." +msgstr "Saisissez l'application." + +#: ../lib/modules/automount.inc:69 +msgid "" +"Please enter the automount entry (e.g. \"-fstype=nfs,rw server:/home\")." +msgstr "" +"Entrées les paramètres d'automount ( ex : \"-fstype=nfs,rw server:/home\")." + +#: ../templates/login.php:292 +msgid "Please enter the configuration and create a server profile." +msgstr "Editez la configuration et créez in profil serveur." + +#: ../help/help.inc:57 +msgid "" +"Please enter the configuration password. This is NOT your LDAP password. It " +"is stored in your .conf-file. If this is the first time you log in, enter " +"\"lam\"." +msgstr "" +"Saisissez le mot de passe de configuration. Ceci n'est PAS votre mot de " +"passe LDAP. Il est stocké dans votre fichier .conf. Le mot de passe par " +"défaut est \"lam\"." + +#: ../lib/modules/oracleService.inc:66 +msgid "" +"Please enter the connection string (e.g. \"(DESCRIPTION=(ADDRESS=" +"(PROTOCOL=TCP)(HOST=server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db." +"example.com)))\")." +msgstr "" +"Saisissez la commande de connexion (ex : \"(DESCRIPTION=(ADDRESS=" +"(PROTOCOL=TCP)(HOST=server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db." +"example.com)))\")." + +#: ../lib/modules/puppetClient.inc:81 ../lib/modules/puppetClient.inc:85 +msgid "Please enter the environment name for this node (e.g. production)." +msgstr "Entrez un nom d'environnement pour ce noeud ( ex : production)." + +#: ../lib/modules/asteriskAccount.inc:559 +msgid "Please enter the extension context." +msgstr "Saisissez le contexte d'extension." + +#: ../lib/modules/asteriskExtension.inc:189 +msgid "Please enter the extension name." +msgstr "Saisissez un nom d'extension." + +#: ../lib/modules/windowsGroup.inc:115 +msgid "Please enter the group name." +msgstr "Veuillez saisir un nom de groupe." + +#: ../lib/modules/asteriskAccount.inc:562 ../lib/modules/windowsHost.inc:75 +msgid "Please enter the host name." +msgstr "Entrez un nom d'hôte valide." + +#: ../lib/modules/customScripts.inc:60 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [account type] [action] [script and arguments]" +msgstr "" +"Entrez la liste des scripts a exécuter. Chaque ligne doit être de la forme : " +"[type de compte] [action] [script et arguments]" + +#: ../lib/modules/customScripts.inc:74 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [action] [script and arguments]" +msgstr "" +"Entrez la liste des scripts a exécuter. Chaque ligne doit être de la forme : " +"[action] [script et arguments]" + +#: ../lib/modules/nisObject.inc:66 +msgid "" +"Please enter the mapping entry (e.g. \"-fstype=nfs,rw server:/projects\")." +msgstr "" +"Entrez les paramètres de mapping (ex : \"-fstype=nfs,rw server:/projects\")." + +#: ../lib/modules/nisObject.inc:70 +msgid "Please enter the mapping name for this entry (e.g. auto.home)." +msgstr "Entrez un nom de mapping pour cette entrée ( ex : auto.home )." + +#: ../help/help.inc:143 +msgid "" +"Please enter the master configuration password. This is NOT your LDAP " +"password. It is stored in your config.cfg file. If this is the first time " +"you log in, enter \"lam\"." +msgstr "" +"Entrez le mot de passe de configuration. Ceci n'est PAS votre mot de passe " +"LDAP. Il est stoqué dans votre fichier config.cfg. Si ceci est la première " +"fois que vous vous connectez, entrez \"lam\"." + +#: ../templates/config/mainlogin.php:145 +msgid "Please enter the master password to change the general preferences:" +msgstr "" +"Entrez votre mot de passe principal pour modifier les préférences générales:" + +#: ../lib/modules/qmailGroup.inc:424 +msgid "Please enter the message store." +msgstr "Saisissez le magasin de message." + +#: ../help/help.inc:131 +msgid "" +"Please enter the name of the new profile and the password to change its " +"settings. Profile names may contain letters, numbers and -/_." +msgstr "" +"Entrez le nom du nouveau profil et le mot de passe pour modifier ses " +"paramètres. Les noms de profil peuvent contenir des lettres, des nombres et " +"-/_." + +#: ../help/help.inc:133 +msgid "" +"Please enter the new name of the profile. The name may contain letters, " +"numbers and -/_." +msgstr "" +"Entrez le nom du nouveau profil. Les noms de profil peuvent contenir des " +"lettres, des nombres et -/_." + +#: ../lib/modules/selfRegistration.inc:66 +#: ../lib/modules/passwordSelfReset.inc:109 +msgid "" +"Please enter the password for the admin DN. Please note that this is saved " +"as clear-text in the self service profile." +msgstr "" +"Entrez le mot de passe du DN administrateur. Attention, il est écrit en " +"clair dans le profil du self-service." + +#: ../lib/modules/asteriskAccount.inc:116 ../lib/modules/posixAccount.inc:523 +#: ../lib/modules/windowsUser.inc:224 ../lib/modules/inetOrgPerson.inc:841 +msgid "Please enter the password which you want to set for this account." +msgstr "Entrez le mot de passe que vous souhaitez pour ce login." + +#: ../help/help.inc:203 +msgid "" +"Please enter the password which you want to set for this account. You may " +"also generate a random password (12 characters) which will be displayed on " +"your screen." +msgstr "" +"Entrez le mot de passe que vous souhaitez pour ce compte. Vous pouvez " +"également générer un mot de passe aléatoire ( 12 caractères ) qui sera " +"affichés à l'écran." + +#: ../lib/modules/posixAccount.inc:474 +msgid "Please enter the path to the user's home directory." +msgstr "Veuillez entrer le chemin du répertoire \"home\" utilisateur." + +#: ../lib/modules/zarafaServer.inc:69 +msgid "Please enter the port number for (unencrypted) HTTP connections." +msgstr "Entrez un numéro de port pour les connexions HTTP ( non-cryptées )." + +#: ../lib/modules/zarafaServer.inc:73 +msgid "Please enter the port number for encrypted connections." +msgstr "Saisissez le numéro de port des connexions chiffrées." + +#: ../lib/modules/passwordSelfReset.inc:81 +msgid "" +"Please enter the possible security questions for the password self reset." +msgstr "" +"Saisissez les questions de sécurité possible pour la ré-initialisation du " +"mot de passe." + +#: ../lib/modules/asteriskExtension.inc:191 +msgid "Please enter the priority." +msgstr "Saisissez les priorités." + +#: ../lib/modules/imapAccess.inc:110 +msgid "Please enter the quota limit of this mailbox in kilobytes." +msgstr "Merci de définir le quota de cette boite de messagerie en kilo-octets." + +#: ../lib/modules/quota.inc:154 +msgid "" +"Please enter the quota settings for this mount point. The syntax is: {soft " +"block limit},{hard block limit},{soft inode limit},{hard inode limit}" +msgstr "" +"Entrer les paramètres de quota pour ce point de montage.La syntaxe est: " +"{soft block limit},{hard block limit},{soft inode limit},{hard inode limit}" + +#: ../lib/modules/systemQuotas.inc:69 +msgid "" +"Please enter the quota settings for this user. The syntax is: {mount point}," +"{soft block limit},{hard block limit},{soft inode limit},{hard inode limit}." +msgstr "" +"Entrer les valeurs de quota pour cet utilisateur. La syntaxe est: {point de " +"montage},{limite soft de bloc},{limite hard de bloc},{limite soft d'inode}," +"{limite hard d'inode}." + +#: ../lib/modules/nisMailAlias.inc:86 +msgid "Please enter the recipients for this alias." +msgstr "Saisissez les destinataires pour cet alias." + +#: ../lib/modules/customFields.inc:109 +#, php-format +msgid "" +"Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") to validate " +"this field. For a syntax description see here." +msgstr "" +"Saisissez l'expression rationnelle (ex : \"/^[0-9a-zA-Z]+$/\") à utiliser " +"pour valider ce champ. Vous trouverez une description de la syntaxe ici." + +#: ../templates/lists/changePassword.php:517 +#: ../lib/modules/selfRegistration.inc:533 +#: ../lib/modules/sambaSamAccount.inc:105 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/windowsUser.inc:615 ../lib/modules/customFields.inc:2533 +msgid "Please enter the same password in both password fields." +msgstr "Veuillez saisir le même mot de passe dans les deux champs." + +#: ../lib/modules/passwordSelfReset.inc:77 +msgid "Please enter the security question for the password self reset." +msgstr "" +"Saisissez une question de sécurité pour la remise à zéro de mot de passe." + +#: ../lib/modules/sambaSamAccount.inc:370 +msgid "Please enter the time limit in minutes. 0 means unlimited." +msgstr "Temps limite en minutes. 0 signifie illimité" + +#: ../lib/modules/windowsUser.inc:108 ../lib/modules/windowsUser.inc:116 +msgid "Please enter the user's name." +msgstr "Veuillez saisir le nom d'utilisateur." + +#: ../lib/modules/puppetClient.inc:101 ../lib/modules/puppetClient.inc:105 +msgid "" +"Please enter your Puppet variables for this node (e.g. config_exim=true)." +msgstr "Entrez vos variables Puppet pour ce noeud ( ex : config_exim=true )." + +#: ../templates/selfService/adminLogin.php:133 +msgid "" +"Please enter your master configuration password to change the self service " +"profile:" +msgstr "" +"Veuillez saisir votre mot de passe principal de configuration pour modifier " +"le profil de self-service :" + +#: ../templates/config/conflogin.php:132 +msgid "Please enter your password to change the server preferences:" +msgstr "Entrez votre mot de passe pour modifier les preférences du serveur:" + +#: ../lib/modules/ldapPublicKey.inc:73 +msgid "Please enter your public SSH key." +msgstr "Veuillez saisir votre clé publique SSH." + +#: ../lib/modules/range.inc:402 ../lib/modules/fixed_ip.inc:404 +msgid "Please fill out the DHCP settings first." +msgstr "Veuillez d'abord compléter les paramètres de DHCP." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "Please go back and try again." +msgstr "Veuillez retourner en arrière et ré-essayer.." + +#: ../templates/masscreate.php:246 +msgid "" +"Please provide a CSV formated file with your account data. The cells in the " +"first row must be filled with the column identifiers. The following rows " +"represent one account for each row." +msgstr "" +"Indique un fichier CSV contenant les valeurs des comptes.Les cellules de la " +"première ligne doivent être remplies avec les noms de colonnes.Les lignes " +"suivantes représentent un compte pour chaque ligne." + +#: ../lib/config.inc:1768 +msgid "Please provide a file in DER or PEM format." +msgstr "Veuillez fournir un fichier au format DER ou PEM." + +#: ../templates/massBuildAccounts.php:256 +msgid "Please provide a file to upload." +msgstr "Veuillez indiquer un fichier à charger." + +#: ../lib/modules/inetOrgPerson.inc:749 +msgid "" +"Please select an image file to upload. It must be in JPG format (.jpg/.jpeg)." +msgstr "" +"Sélectionnez un fichier image à charger. Le fichier doit être au format JPEG " +"(.jpg/.jpeg)" + +#: ../lib/modules/customFields.inc:101 +msgid "Please select the field type (e.g. text field)." +msgstr "Sélectionnez le type du champ (ex : champ texte)." + +#: ../help/help.inc:270 +msgid "Please select the suffix where changes should be done." +msgstr "" +"Veuillez sélectionner le sufixe à partir duquel les modifications seront " +"appliquées." + +#: ../help/help.inc:149 +msgid "" +"Please select your prefered log level. Messages with a lower level will not " +"be logged." +msgstr "" +"Sélectionnez votre niveau de log par défaut. Les messages ayant un niveau " +"inférieur ne seront pas tracés." + +#: ../lib/modules/asteriskVoicemail.inc:228 +msgid "Please set the voicemail password with \"Set password\" before saving." +msgstr "" +"Donnez un mot de passe de boîte vocale dans \"Définir le mot de passe\" " +"avant de sauvegarder." + +#: ../lib/modules.inc:877 +#, php-format +msgid "Please set up all required attributes on page: %s" +msgstr "Remplis tous les champs obligatoires sur la page: %s" + +#: ../templates/config/profmanage.php:220 +#: ../templates/selfService/profManage.php:160 +msgid "Please set up your master configuration file (config/config.cfg) first!" +msgstr "" +"Indique le fichier de configuration principal (config/config.cfg) first!" + +#: ../lib/modules/dhcp_settings.inc:551 ../lib/modules/ddns.inc:362 +msgid "" +"Please set your LDAP suffix to an LDAP entry with object class \"dhcpService" +"\" or \"dhcpServer\"." +msgstr "" +"Indiquez le suffixe LDAP pour les entrées ayant l'objectClass \"dhcpService" +"\" ou \"dhcpServer\"." + +#: ../templates/multiEdit.php:213 +msgid "Please specify at least one operation." +msgstr "Veuillez spécifier au moins une opération." + +#: ../lib/modules/passwordSelfReset.inc:145 +msgid "Please specify how your users need to identify themselves." +msgstr "Veuillez définir la façon dont vos utilisateurs s'identifient." + +#: ../lib/modules/windowsGroup.inc:143 +msgid "Please specify the group scope." +msgstr "Veuillez spécifier le périmètre du groupe." + +#: ../lib/modules/customFields.inc:141 +msgid "" +"Please specify the possible values for this field. Each value can have a " +"descriptive label that is displayed to the user." +msgstr "" +"Indiquez les valeurs possibles pour ce champ. Chaque valeur peut avoir une " +"étiquette descriptive visible de l'utilisateur." + +#: ../help/help.inc:274 +msgid "" +"Please specify which attributes should be changed. The modify operation will " +"also add an value if the attribute does not yet exist. To delete all values " +"of an attribute please leave the value field empty." +msgstr "" +"Veuillez définir quel attribut modifier. L'opération de modification " +"ajoutera la valeur si elle n'existe pas. Pour effacer aoutes les valeurs " +"d'un attribut, laissez le champ vide." + +#: ../lib/modules/inetOrgPerson.inc:100 +msgid "Please upload a .jpg/.jpeg file." +msgstr "Veuillez charger un fichier .jpg/.jpeg." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:172 +msgid "Please wait" +msgstr "Veuillez patienter" + +#: ../lib/types/ppolicyType.inc:149 +#, php-format +msgid "Policy count: %s" +msgstr "Nombre de stratégies : %s" + +#: ../lib/modules/kolabUser.inc:246 +msgid "Policy list has invalid format!" +msgstr "Liste de stratégies a un format incorrecte !" + +#: ../lib/modules/asteriskAccount.inc:179 +#: ../lib/modules/asteriskAccount.inc:283 +#: ../lib/modules/asteriskAccount.inc:436 +#: ../lib/modules/asteriskAccount.inc:686 +#: ../lib/modules/asteriskAccount.inc:999 +#: ../lib/modules/asteriskAccount.inc:1267 ../lib/modules/bindDLZ.inc:188 +#: ../lib/modules/bindDLZ.inc:192 ../lib/modules/bindDLZ.inc:392 +#: ../lib/modules/bindDLZ.inc:505 ../lib/modules/bindDLZ.inc:1358 +#: ../lib/modules/bindDLZ.inc:1601 +msgid "Port" +msgstr "Port" + +#: ../lib/modules/asteriskAccount.inc:180 +msgid "Port number." +msgstr "Numéro de port." + +#: ../templates/pdfedit/pdfpage.php:592 ../templates/pdfedit/pdfpage.php:602 +#: ../templates/pdfedit/pdfpage.php:612 ../templates/pdfedit/pdfpage.php:627 +msgid "Position" +msgstr "Position" + +#: ../templates/masscreate.php:310 ../templates/masscreate.php:384 +#: ../lib/modules/customScripts.inc:125 ../lib/modules/customScripts.inc:127 +#: ../lib/modules/customScripts.inc:129 +#: ../lib/modules/sambaGroupMapping.inc:604 +msgid "Possible values" +msgstr "Valeurs possibles" + +#: ../lib/modules/pykotaPrinter.inc:130 ../lib/modules/posixGroup.inc:530 +#: ../lib/modules/sambaGroupMapping.inc:172 +#: ../lib/modules/organizationalRole.inc:103 +#: ../lib/modules/groupOfNames.inc:115 +msgid "" +"Possible wildcards are: \"*\" = any character, \"^\" = line start, \"$\" = " +"line end" +msgstr "" +"Les jokers autorisés sont : \"*\" pour n'importe quel caractère, \"^\" pour " +"indiquer le début de ligne, \"$\" indique la fin de ligne" + +#: ../lib/modules/windowsUser.inc:160 ../lib/modules/windowsUser.inc:320 +#: ../lib/modules/windowsUser.inc:510 ../lib/modules/windowsUser.inc:547 +#: ../lib/modules/windowsUser.inc:709 ../lib/modules/windowsUser.inc:1598 +#: ../lib/modules/windowsUser.inc:1735 ../lib/modules/inetOrgPerson.inc:159 +#: ../lib/modules/inetOrgPerson.inc:181 ../lib/modules/inetOrgPerson.inc:409 +#: ../lib/modules/inetOrgPerson.inc:548 ../lib/modules/inetOrgPerson.inc:672 +#: ../lib/modules/inetOrgPerson.inc:676 ../lib/modules/inetOrgPerson.inc:1234 +#: ../lib/modules/inetOrgPerson.inc:1237 ../lib/modules/inetOrgPerson.inc:1896 +#: ../lib/modules/inetOrgPerson.inc:2566 ../lib/modules/inetOrgPerson.inc:3513 +#: ../lib/modules/inetOrgPerson.inc:3578 +msgid "Post office box" +msgstr "Boite postale" + +#: ../lib/modules/inetOrgPerson.inc:83 ../lib/modules/inetOrgPerson.inc:158 +#: ../lib/modules/inetOrgPerson.inc:193 ../lib/modules/inetOrgPerson.inc:393 +#: ../lib/modules/inetOrgPerson.inc:560 ../lib/modules/inetOrgPerson.inc:688 +#: ../lib/modules/inetOrgPerson.inc:1278 ../lib/modules/inetOrgPerson.inc:1898 +#: ../lib/modules/inetOrgPerson.inc:2533 ../lib/modules/inetOrgPerson.inc:3521 +#: ../lib/modules/inetOrgPerson.inc:3580 +msgid "Postal address" +msgstr "Adresse postale" + +#: ../lib/modules/inetOrgPerson.inc:689 +msgid "Postal address, city" +msgstr "Adresse postale, ville." + +#: ../lib/modules/windowsUser.inc:156 ../lib/modules/windowsUser.inc:326 +#: ../lib/modules/windowsUser.inc:509 ../lib/modules/windowsUser.inc:548 +#: ../lib/modules/windowsUser.inc:605 ../lib/modules/windowsUser.inc:710 +#: ../lib/modules/windowsUser.inc:1597 ../lib/modules/windowsUser.inc:1736 +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:159 +#: ../lib/modules/inetOrgPerson.inc:184 ../lib/modules/inetOrgPerson.inc:385 +#: ../lib/modules/inetOrgPerson.inc:551 ../lib/modules/inetOrgPerson.inc:680 +#: ../lib/modules/inetOrgPerson.inc:684 ../lib/modules/inetOrgPerson.inc:1243 +#: ../lib/modules/inetOrgPerson.inc:1246 ../lib/modules/inetOrgPerson.inc:1897 +#: ../lib/modules/inetOrgPerson.inc:2555 ../lib/modules/inetOrgPerson.inc:3515 +#: ../lib/modules/inetOrgPerson.inc:3578 +msgid "Postal code" +msgstr "Code postal" + +#: ../lib/modules/puppetClient.inc:112 +msgid "Predefined classes" +msgstr "Classes prédéfinies" + +#: ../lib/modules/puppetClient.inc:116 ../lib/modules/puppetClient.inc:122 +msgid "Predefined environments" +msgstr "Environnements prédéfinis" + +#: ../lib/modules/authorizedServiceObject.inc:93 +#: ../lib/modules/authorizedServiceObject.inc:99 +msgid "Predefined services" +msgstr "Services prédéfinis" + +#: ../help/help.inc:91 +msgid "Predefined values" +msgstr "Valeurs prédéfinies" + +#: ../lib/modules/bindDLZ.inc:196 ../lib/modules/bindDLZ.inc:200 +#: ../lib/modules/bindDLZ.inc:280 ../lib/modules/bindDLZ.inc:495 +#: ../lib/modules/bindDLZ.inc:916 ../lib/modules/bindDLZ.inc:1513 +msgid "Preference" +msgstr "Préférence" + +#: ../lib/modules/imapAccess.inc:97 ../lib/modules/imapAccess.inc:143 +msgid "Prefix for mailboxes" +msgstr "Préfixe pour les boîtes de messagerie" + +#: ../lib/modules/inetOrgPerson.inc:339 +msgid "President" +msgstr "President" + +#: ../lib/modules/pykotaUser.inc:650 ../lib/modules/pykotaUser.inc:999 +msgid "Price" +msgstr "Prix" + +#: ../lib/types/pykotaPrinterType.inc:94 ../lib/modules/pykotaPrinter.inc:111 +#: ../lib/modules/pykotaPrinter.inc:174 ../lib/modules/pykotaPrinter.inc:197 +#: ../lib/modules/pykotaPrinter.inc:215 ../lib/modules/pykotaPrinter.inc:235 +#: ../lib/modules/pykotaPrinter.inc:587 +msgid "Price per job" +msgstr "Prix par tâche" + +#: ../lib/types/pykotaPrinterType.inc:93 ../lib/modules/pykotaPrinter.inc:115 +#: ../lib/modules/pykotaPrinter.inc:180 ../lib/modules/pykotaPrinter.inc:198 +#: ../lib/modules/pykotaPrinter.inc:217 ../lib/modules/pykotaPrinter.inc:237 +#: ../lib/modules/pykotaPrinter.inc:588 +msgid "Price per page" +msgstr "Prix par page" + +#: ../lib/modules/eduPerson.inc:88 ../lib/modules/eduPerson.inc:168 +#: ../lib/modules/eduPerson.inc:229 ../lib/modules/eduPerson.inc:283 +#: ../lib/modules/eduPerson.inc:581 +msgid "Primary affiliation" +msgstr "Affectation primaire" + +#: ../lib/modules/posixAccount.inc:297 ../lib/modules/posixAccount.inc:389 +#: ../lib/modules/posixAccount.inc:414 ../lib/modules/posixAccount.inc:465 +#: ../lib/modules/posixAccount.inc:514 ../lib/modules/posixAccount.inc:552 +#: ../lib/modules/posixAccount.inc:1446 ../lib/modules/posixAccount.inc:1735 +#: ../lib/modules/posixAccount.inc:1781 ../lib/modules/posixAccount.inc:1847 +msgid "Primary group" +msgstr "Groupe principal" + +#: ../lib/modules/bindDLZ.inc:229 +msgid "Primary master DNS server for this zone (e.g. \"ns1.example.com.\")." +msgstr "Seveur DNS primaire pour la zone (ex \"ns1.example.com.\")." + +#: ../lib/modules/bindDLZ.inc:228 ../lib/modules/bindDLZ.inc:338 +#: ../lib/modules/bindDLZ.inc:422 ../lib/modules/bindDLZ.inc:524 +#: ../lib/modules/bindDLZ.inc:1040 ../lib/modules/bindDLZ.inc:1547 +msgid "Primary name server" +msgstr "Serveurs de nom principal" + +#: ../lib/modules/eduPerson.inc:130 ../lib/modules/eduPerson.inc:206 +#: ../lib/modules/eduPerson.inc:232 ../lib/modules/eduPerson.inc:247 +#: ../lib/modules/eduPerson.inc:348 ../lib/modules/eduPerson.inc:588 +msgid "Primary organisational unit" +msgstr "Unité organisationnelle principale" + +#: ../lib/modules/eduPerson.inc:114 ../lib/modules/eduPerson.inc:161 +#: ../lib/modules/eduPerson.inc:230 ../lib/modules/eduPerson.inc:277 +#: ../lib/modules/eduPerson.inc:583 +msgid "Principal name" +msgstr "Nom de principal" + +#: ../lib/modules/eduPerson.inc:243 ../lib/modules/eduPerson.inc:244 +msgid "Principal name is invalid!" +msgstr "Le nom de principal n'est pas valide !" + +#: ../lib/modules/pykotaUser.inc:648 ../lib/modules/pykotaUser.inc:997 +msgid "Printer" +msgstr "Imprimante" + +#: ../lib/types/pykotaPrinterType.inc:164 +#, php-format +msgid "Printer count: %s" +msgstr "Nombre d'imprimantes : %s" + +#: ../lib/modules/pykotaPrinter.inc:100 +msgid "Printer description." +msgstr "Description des imprimantes." + +#: ../lib/modules/pykotaPrinter.inc:200 ../lib/modules/pykotaPrinter.inc:258 +#: ../lib/modules/pykotaPrinter.inc:621 +msgid "Printer groups" +msgstr "Groupe d'imprimantes" + +#: ../lib/types/pykotaPrinterType.inc:91 ../lib/modules/pykotaPrinter.inc:95 +#: ../lib/modules/pykotaPrinter.inc:146 ../lib/modules/pykotaPrinter.inc:193 +#: ../lib/modules/pykotaPrinter.inc:209 ../lib/modules/pykotaPrinter.inc:211 +#: ../lib/modules/pykotaPrinter.inc:231 ../lib/modules/pykotaPrinter.inc:584 +#: ../lib/modules/pykotaBillingCode.inc:101 +msgid "Printer name" +msgstr "Nom d'imprimante" + +#: ../lib/modules/pykotaPrinter.inc:211 ../lib/modules/pykotaPrinter.inc:212 +msgid "Printer name already exists!" +msgstr "Le nom d'imprimante existe déjà !" + +#: ../lib/modules/pykotaPrinter.inc:209 ../lib/modules/pykotaPrinter.inc:210 +msgid "" +"Printer name contains invalid characters. Valid characters are: a-z, A-Z, " +"0-9 and .-_ !" +msgstr "" +"Nom d'imprimante contient des caractères incorrectes. Les caractères valides " +"sont: a-z, A-Z, 0-9 et .-_ !" + +#: ../lib/modules/pykotaPrinter.inc:96 +msgid "" +"Printer name of the printer which should be created. Valid characters are: a-" +"z, A-Z, 0-9 and .-_ ." +msgstr "" +"Nom de l'imprimante à créer. Les caractères valides sont: a-z, A-Z, 0-9 et .-" +"_ !" + +#: ../lib/types/pykotaPrinterType.inc:53 +msgid "Printers" +msgstr "Imprimantes" + +#: ../lib/modules/bindDLZ.inc:172 ../lib/modules/bindDLZ.inc:176 +#: ../lib/modules/bindDLZ.inc:382 ../lib/modules/bindDLZ.inc:501 +#: ../lib/modules/bindDLZ.inc:1348 ../lib/modules/bindDLZ.inc:1599 +#: ../lib/modules/asteriskExtension.inc:106 +#: ../lib/modules/asteriskExtension.inc:825 +msgid "Priority" +msgstr "Priorité" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1537 +#: ../templates/3rdParty/pla/htdocs/import_form.php:44 +#: ../templates/3rdParty/pla/htdocs/export_form.php:135 +msgid "Proceed" +msgstr "Exécuter" + +#: ../templates/config/profmanage.php:112 +#: ../templates/selfService/profManage.php:85 +msgid "Profile deleted." +msgstr "Profil effacé." + +#: ../templates/profedit/profilepage.php:182 +#: ../templates/profedit/profilemain.php:94 ../lib/tools/profileEditor.inc:44 +msgid "Profile editor" +msgstr "Editeur de profil" + +#: ../templates/config/profmanage.php:159 +#: ../templates/config/profmanage.php:236 +#: ../templates/selfService/profManage.php:101 +#: ../templates/selfService/profManage.php:199 ../help/help.inc:130 +#: ../help/help.inc:132 ../help/help.inc:134 ../help/help.inc:136 +#: ../help/help.inc:138 +msgid "Profile management" +msgstr "Gestion des profils" + +#: ../templates/config/profmanage.php:240 +#: ../templates/config/profmanage.php:260 +#: ../templates/config/profmanage.php:272 +#: ../templates/config/profmanage.php:281 +#: ../templates/config/profmanage.php:301 +#: ../templates/selfService/profManage.php:203 +#: ../templates/selfService/profManage.php:217 +#: ../templates/selfService/profManage.php:233 +#: ../templates/profedit/profilepage.php:186 +#: ../templates/profedit/profilemain.php:277 +#: ../templates/profedit/profilemain.php:321 ../help/help.inc:188 +msgid "Profile name" +msgstr "Nom de profil" + +#: ../templates/config/profmanage.php:88 +#: ../templates/config/profmanage.php:107 +#: ../templates/config/profmanage.php:137 +#: ../templates/config/profmanage.php:148 +#: ../templates/selfService/profManage.php:61 +#: ../templates/selfService/profManage.php:76 +msgid "Profile name is invalid!" +msgstr "Le nom de profil n'est pas valable !" + +#: ../templates/config/profmanage.php:243 +#: ../templates/config/profmanage.php:282 +msgid "Profile password" +msgstr "Mot de passe profil" + +#: ../templates/config/profmanage.php:86 +#: ../templates/config/profmanage.php:135 +msgid "Profile passwords are different or empty!" +msgstr "Les mots de passe profil sont différents ou vides !" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:98 +#: ../lib/modules/sambaSamAccount.inc:220 +#: ../lib/modules/sambaSamAccount.inc:232 +#: ../lib/modules/sambaSamAccount.inc:308 +#: ../lib/modules/sambaSamAccount.inc:357 +#: ../lib/modules/sambaSamAccount.inc:502 +#: ../lib/modules/sambaSamAccount.inc:598 +#: ../lib/modules/sambaSamAccount.inc:1218 +#: ../lib/modules/sambaSamAccount.inc:1511 +#: ../lib/modules/sambaSamAccount.inc:1580 +#: ../lib/modules/sambaSamAccount.inc:1758 +#: ../lib/modules/sambaSamAccount.inc:1903 +#: ../lib/modules/sambaSamAccount.inc:1918 ../lib/modules/windowsUser.inc:204 +#: ../lib/modules/windowsUser.inc:418 ../lib/modules/windowsUser.inc:478 +#: ../lib/modules/windowsUser.inc:520 ../lib/modules/windowsUser.inc:611 +#: ../lib/modules/windowsUser.inc:754 ../lib/modules/windowsUser.inc:1627 +msgid "Profile path" +msgstr "Chemin de profil" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/windowsUser.inc:611 ../lib/modules/windowsUser.inc:612 +msgid "Profile path is invalid!" +msgstr "Le chemin de profil n'est pas valable !" + +#: ../templates/profedit/profilemain.php:149 +msgid "Profile was saved." +msgstr "Le profil a été sauvegardé." + +#: ../templates/profedit/profilemain.php:244 +msgid "Profiles" +msgstr "Profils" + +#: ../lib/modules/qmailUser.inc:252 +msgid "Program to execute for all incoming mails." +msgstr "Programme a exécuter à l'arrivée d'un courrier." + +#: ../templates/multiEdit.php:231 +msgid "Progress" +msgstr "progression" + +#: ../lib/modules/zarafaServer.inc:84 ../lib/modules/zarafaServer.inc:128 +#: ../lib/modules/zarafaServer.inc:141 ../lib/modules/zarafaServer.inc:163 +#: ../lib/modules/zarafaServer.inc:212 ../lib/modules/zarafaServer.inc:357 +msgid "Proxy URL" +msgstr "URL du proxy" + +#: ../lib/modules/zarafaServer.inc:80 ../lib/modules/zarafaServer.inc:118 +#: ../lib/modules/zarafaServer.inc:138 ../lib/modules/zarafaServer.inc:225 +#: ../lib/modules/zarafaServer.inc:362 +msgid "Public store" +msgstr "Magasin public" + +#: ../lib/modules/puppetClient.inc:70 +msgid "Puppet" +msgstr "Puppet" + +#: ../lib/modules/pykotaPrinter.inc:79 ../lib/modules/pykotaGroup.inc:93 +#: ../lib/modules/pykotaUser.inc:93 ../lib/modules/pykotaBillingCode.inc:61 +msgid "PyKota" +msgstr "PyKota" + +#: ../lib/types/pykotaBillingCodeType.inc:62 +msgid "PyKota billing codes" +msgstr "PyKota codes de facturation" + +#: ../lib/modules/pykotaGroup.inc:121 ../lib/modules/pykotaGroup.inc:148 +#: ../lib/modules/pykotaGroup.inc:181 ../lib/modules/pykotaGroup.inc:201 +#: ../lib/modules/pykotaGroup.inc:203 ../lib/modules/pykotaGroup.inc:467 +msgid "PyKota group name" +msgstr "Nom de groupe PyKota" + +#: ../lib/types/pykotaPrinterType.inc:62 +msgid "PyKota printers" +msgstr "Imprimantes PyKota" + +#: ../lib/modules/pykotaUser.inc:124 ../lib/modules/pykotaUser.inc:190 +#: ../lib/modules/pykotaUser.inc:260 ../lib/modules/pykotaUser.inc:315 +#: ../lib/modules/pykotaUser.inc:317 ../lib/modules/pykotaUser.inc:891 +msgid "PyKota user name" +msgstr "Nom d'utiliseur PyKota" + +#: ../lib/modules/pykotaGroup.inc:221 +msgid "Pykota group name" +msgstr "Nom du groupe PyKota" + +#: ../lib/modules/pykotaUser.inc:359 +msgid "Pykota user name" +msgstr "Nom d'utiliseur PyKota" + +#: ../lib/modules/qmailUser.inc:87 ../lib/modules/qmailGroup.inc:56 +msgid "Qmail" +msgstr "Qmail" + +#: ../lib/modules/asteriskAccount.inc:183 +#: ../lib/modules/asteriskAccount.inc:284 +#: ../lib/modules/asteriskAccount.inc:443 +#: ../lib/modules/asteriskAccount.inc:691 +#: ../lib/modules/asteriskAccount.inc:1000 +#: ../lib/modules/asteriskAccount.inc:1269 +msgid "Qualify" +msgstr "Qualifier" + +#: ../lib/modules/passwordSelfReset.inc:76 +#: ../lib/modules/passwordSelfReset.inc:170 +#: ../lib/modules/passwordSelfReset.inc:177 +#: ../lib/modules/passwordSelfReset.inc:197 +#: ../lib/modules/passwordSelfReset.inc:218 +#: ../lib/modules/passwordSelfReset.inc:258 +#: ../lib/modules/passwordSelfReset.inc:381 +#: ../lib/modules/passwordSelfReset.inc:658 +#: ../lib/modules/passwordSelfReset.inc:1043 +msgid "Question" +msgstr "Question" + +#: ../lib/modules/qmailUser.inc:668 ../lib/modules/quota.inc:87 +#: ../lib/modules/quota.inc:100 ../lib/modules/quota.inc:153 +#: ../lib/modules/pykotaGroup.inc:61 ../lib/modules/pykotaGroup.inc:175 +#: ../lib/modules/pykotaGroup.inc:176 ../lib/modules/zarafaUser.inc:481 +#: ../lib/modules/pykotaUser.inc:61 ../lib/modules/pykotaUser.inc:235 +#: ../lib/modules/pykotaUser.inc:236 ../lib/modules/systemQuotas.inc:58 +#: ../lib/modules/systemQuotas.inc:68 ../lib/modules/systemQuotas.inc:75 +#: ../lib/modules/systemQuotas.inc:81 ../lib/modules/systemQuotas.inc:88 +#: ../lib/modules/imapAccess.inc:109 ../lib/modules/imapAccess.inc:164 +msgid "Quota" +msgstr "Quota" + +#: ../lib/modules/quota.inc:698 +#, php-format +msgid "Quota for %s on %s" +msgstr "Quota pour %s sur %s" + +#: ../lib/modules/zarafaUser.inc:100 ../lib/modules/zarafaUser.inc:230 +#: ../lib/modules/zarafaUser.inc:352 ../lib/modules/zarafaUser.inc:412 +#: ../lib/modules/zarafaUser.inc:516 ../lib/modules/zarafaUser.inc:1231 +#: ../lib/modules/zarafaUser.inc:1314 ../lib/modules/zarafaUser.inc:1791 +msgid "Quota hard limit" +msgstr "Seuil hard des quota" + +#: ../lib/modules/quota.inc:63 +msgid "Quota has wrong format!" +msgstr "Mauvais format de quota!" + +#: ../lib/modules/imapAccess.inc:319 ../lib/modules/imapAccess.inc:328 +msgid "Quota limit (kB)" +msgstr "Limite de quota ( ko )" + +#: ../lib/modules/zarafaUser.inc:88 ../lib/modules/zarafaUser.inc:204 +#: ../lib/modules/zarafaUser.inc:343 ../lib/modules/zarafaUser.inc:488 +#: ../lib/modules/zarafaUser.inc:1242 ../lib/modules/zarafaUser.inc:1305 +#: ../lib/modules/zarafaUser.inc:1785 +msgid "Quota override" +msgstr "Ecraser le quota" + +#: ../lib/modules/qmailUser.inc:106 ../lib/modules/qmailUser.inc:133 +#: ../lib/modules/qmailUser.inc:219 ../lib/modules/qmailUser.inc:308 +#: ../lib/modules/qmailUser.inc:409 ../lib/modules/qmailUser.inc:675 +#: ../lib/modules/qmailUser.inc:1144 +msgid "Quota size" +msgstr "Quota" + +#: ../lib/modules/zarafaUser.inc:96 ../lib/modules/zarafaUser.inc:222 +#: ../lib/modules/zarafaUser.inc:349 ../lib/modules/zarafaUser.inc:410 +#: ../lib/modules/zarafaUser.inc:506 ../lib/modules/zarafaUser.inc:1230 +#: ../lib/modules/zarafaUser.inc:1311 ../lib/modules/zarafaUser.inc:1789 +msgid "Quota soft limit" +msgstr "Seuil soft des quota" + +#: ../lib/modules/zarafaUser.inc:92 ../lib/modules/zarafaUser.inc:214 +#: ../lib/modules/zarafaUser.inc:346 ../lib/modules/zarafaUser.inc:408 +#: ../lib/modules/zarafaUser.inc:496 ../lib/modules/zarafaUser.inc:1229 +#: ../lib/modules/zarafaUser.inc:1308 ../lib/modules/zarafaUser.inc:1787 +msgid "Quota warning limit" +msgstr "Seuil d'alerte quota" + +#: ../templates/masscreate.php:334 ../templates/profedit/profilepage.php:213 +#: ../lib/modules/selfRegistration.inc:98 +#: ../lib/modules/selfRegistration.inc:210 ../lib/modules.inc:1004 +#: ../help/help.inc:186 +msgid "RDN identifier" +msgstr "Identificateur RDN" + +#: ../lib/types/host.inc:93 +msgid "RID (Windows UID)" +msgstr "RID (Windows UID)" + +#: ../lib/modules/sambaDomain.inc:97 ../lib/modules/sambaDomain.inc:158 +#: ../lib/modules/sambaDomain.inc:189 ../lib/modules/sambaDomain.inc:383 +#: ../lib/modules/sambaDomain.inc:389 ../lib/modules/sambaDomain.inc:604 +msgid "RID base" +msgstr "Base RID" + +#: ../lib/modules/sambaDomain.inc:352 +msgid "RID settings" +msgstr "Paramètres RDN" + +#: ../lib/modules/asteriskAccount.inc:195 +#: ../lib/modules/asteriskAccount.inc:287 +#: ../lib/modules/asteriskAccount.inc:465 +#: ../lib/modules/asteriskAccount.inc:704 +#: ../lib/modules/asteriskAccount.inc:1003 +#: ../lib/modules/asteriskAccount.inc:1275 +msgid "RTP hold timeout" +msgstr "Timeout RTP hold" + +#: ../lib/modules/asteriskAccount.inc:191 +#: ../lib/modules/asteriskAccount.inc:286 +#: ../lib/modules/asteriskAccount.inc:458 +#: ../lib/modules/asteriskAccount.inc:699 +#: ../lib/modules/asteriskAccount.inc:1002 +#: ../lib/modules/asteriskAccount.inc:1273 +msgid "RTP timeout" +msgstr "Timeout RTP" + +#: ../lib/modules/customFields.inc:2928 +msgid "Radio buttons" +msgstr "Boutons radio" + +#: ../lib/modules/range.inc:92 ../lib/modules/range.inc:427 +msgid "Range from" +msgstr "Plage de" + +#: ../lib/modules/range.inc:95 ../lib/modules/range.inc:440 +msgid "Range to" +msgstr "Plage jusqu'à" + +#: ../lib/types/dhcp.inc:95 ../lib/modules/range.inc:74 +#: ../lib/modules/range.inc:106 ../lib/modules/range.inc:495 +msgid "Ranges" +msgstr "Plages" + +#: ../templates/config/confmain.php:317 +msgid "Read" +msgstr "Lecture" + +#: ../templates/config/confmain.php:262 ../templates/config/conftypes.php:290 +#: ../lib/modules/customFields.inc:104 ../lib/modules/customFields.inc:1722 +#: ../help/help.inc:182 +msgid "Read-only" +msgstr "Lecture seule" + +#: ../lib/modules/inetOrgPerson.inc:3574 +msgid "Read-only fields" +msgstr "Champs lecture-seule" + +#: ../lib/modules/customFields.inc:105 +msgid "" +"Read-only fields cannot be changed by the user. Use this if you want to show " +"an attribute just for information." +msgstr "" +"Les champs en lecture seule ne sont pas modifiables par les utilisateurs. " +"Utilisez-les pour afficher un attribut juste pour information." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2289 +msgid "Really delete value from this attribute?" +msgstr "Voulez-vous vraiment supprimer la valeur de cet attribut ?" + +#: ../lib/modules/mitKerberos.inc:120 ../lib/modules/mitKerberos.inc:152 +#: ../lib/modules/mitKerberos.inc:194 ../lib/modules/freeRadius.inc:92 +#: ../lib/modules/freeRadius.inc:126 ../lib/modules/freeRadius.inc:146 +#: ../lib/modules/freeRadius.inc:177 ../lib/modules/freeRadius.inc:231 +#: ../lib/modules/freeRadius.inc:273 ../lib/modules/freeRadius.inc:539 +#: ../lib/modules/heimdalKerberos.inc:98 +#: ../lib/modules/heimdalKerberos.inc:157 +#: ../lib/modules/heimdalKerberos.inc:163 +msgid "Realm" +msgstr "Royaume" + +#: ../lib/modules/nisMailAliasUser.inc:355 ../lib/modules/nisMailAlias.inc:181 +msgid "Recipient" +msgstr "Destinataire" + +#: ../lib/modules/nisMailAlias.inc:127 ../lib/modules/nisMailAlias.inc:128 +msgid "Recipient is invalid!" +msgstr "Le destinataire n'est pas valide !" + +#: ../lib/types/mailAlias.inc:92 ../lib/modules/nisMailAlias.inc:89 +#: ../lib/modules/nisMailAlias.inc:108 ../lib/modules/nisMailAlias.inc:116 +#: ../lib/modules/nisMailAlias.inc:476 +msgid "Recipient list" +msgstr "Liste de destinataire" + +#: ../lib/modules/nisMailAlias.inc:85 ../lib/modules/nisMailAlias.inc:184 +#: ../lib/modules/nisMailAlias.inc:202 +msgid "Recipients" +msgstr "Destinataires" + +#: ../lib/modules/sambaSamAccount.inc:244 +#: ../lib/modules/sambaSamAccount.inc:387 +#: ../lib/modules/sambaSamAccount.inc:1560 +#: ../lib/modules/sambaSamAccount.inc:1970 +msgid "Reconnect if disconnected" +msgstr "Reconnecte si déconnecté" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:63 +msgid "Recursive copy" +msgstr "Copie récursive" + +#: ../templates/3rdParty/pla/htdocs/copy.php:49 +msgid "Recursive copy progress" +msgstr "Copie récursive en cours" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:31 +msgid "Recursive delete progress" +msgstr "Effacement récursif en cours" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:65 +msgid "Recursively copy all children of this object as well." +msgstr "Copier également récursivement tous les enfants de cet objet." + +#: ../templates/config/profmanage.php:247 +#: ../templates/config/profmanage.php:286 +#: ../templates/config/mainmanage.php:459 ../templates/config/confmain.php:453 +#: ../lib/modules/selfRegistration.inc:415 +#: ../lib/modules/sambaSamAccount.inc:2268 +#: ../lib/modules/posixAccount.inc:2533 ../lib/modules/windowsUser.inc:1714 +msgid "Reenter password" +msgstr "Entrez le mot de passe à nouveau" + +#: ../templates/serverInfo.php:187 +msgid "Referrals" +msgstr "Referrals" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1051 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1054 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:249 +#: ../lib/modules/asteriskExtension.inc:454 ../lib/lists.inc:788 +msgid "Refresh" +msgstr "Rafraîchir" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +msgid "Refresh this entry" +msgstr "Rafraîchir cette entrée" + +#: ../lib/modules/bindDLZ.inc:208 ../lib/modules/bindDLZ.inc:313 +#: ../lib/modules/bindDLZ.inc:417 ../lib/modules/bindDLZ.inc:514 +#: ../lib/modules/bindDLZ.inc:1019 ../lib/modules/bindDLZ.inc:1542 +msgid "Refresh time" +msgstr "Temps de rafraîchissement" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:247 +msgid "Refreshing tree" +msgstr "Rafraîchissement de l'arbre" + +#: ../lib/modules/selfRegistration.inc:340 +msgid "Register new account" +msgstr "Enregistrer un nouveau compte" + +#: ../lib/modules/inetOrgPerson.inc:85 ../lib/modules/inetOrgPerson.inc:158 +#: ../lib/modules/inetOrgPerson.inc:196 ../lib/modules/inetOrgPerson.inc:401 +#: ../lib/modules/inetOrgPerson.inc:563 ../lib/modules/inetOrgPerson.inc:692 +#: ../lib/modules/inetOrgPerson.inc:1322 ../lib/modules/inetOrgPerson.inc:1899 +#: ../lib/modules/inetOrgPerson.inc:2544 ../lib/modules/inetOrgPerson.inc:3523 +#: ../lib/modules/inetOrgPerson.inc:3580 +msgid "Registered address" +msgstr "Adresse enregistrée" + +#: ../lib/modules/inetOrgPerson.inc:693 +msgid "Registered address, city" +msgstr "Adresse enregistrée, ville" + +#: ../lib/modules/asteriskAccount.inc:215 +#: ../lib/modules/asteriskAccount.inc:292 +#: ../lib/modules/asteriskAccount.inc:501 +#: ../lib/modules/asteriskAccount.inc:725 +#: ../lib/modules/asteriskAccount.inc:1008 +#: ../lib/modules/asteriskAccount.inc:1285 +msgid "Registration context" +msgstr "Contexte d'enregistrement" + +#: ../lib/modules/asteriskAccount.inc:219 +#: ../lib/modules/asteriskAccount.inc:293 +#: ../lib/modules/asteriskAccount.inc:508 +#: ../lib/modules/asteriskAccount.inc:729 +#: ../lib/modules/asteriskAccount.inc:1009 +#: ../lib/modules/asteriskAccount.inc:1287 +msgid "Registration extension" +msgstr "Extension d'enregistrement" + +#: ../lib/modules/asteriskAccount.inc:235 +#: ../lib/modules/asteriskAccount.inc:297 +#: ../lib/modules/asteriskAccount.inc:537 +#: ../lib/modules/asteriskAccount.inc:754 +#: ../lib/modules/asteriskAccount.inc:1013 +#: ../lib/modules/asteriskAccount.inc:1295 +msgid "Registration server" +msgstr "Serveur d'enregistrement" + +#: ../lib/modules/kolabUser.inc:53 +msgid "Reject if conflicts" +msgstr "Refuse si conflit" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +msgid "Reloading" +msgstr "Recharger" + +#: ../templates/login.php:427 +msgid "Remember user name" +msgstr "Se souvenir du nom d'utilisateur" + +#: ../templates/config/confmodules.php:310 +#: ../templates/pdfedit/pdfpage.php:477 ../lib/modules/mitKerberos.inc:688 +#: ../lib/modules/qmailUser.inc:919 ../lib/modules/windowsHost.inc:158 +#: ../lib/modules/sambaSamAccount.inc:1479 ../lib/modules/kolabUser.inc:871 +#: ../lib/modules/shadowAccount.inc:476 ../lib/modules/freeRadius.inc:429 +#: ../lib/modules/sudoRole.inc:318 ../lib/modules/sudoRole.inc:345 +#: ../lib/modules/sudoRole.inc:372 ../lib/modules/sudoRole.inc:399 +#: ../lib/modules/sudoRole.inc:426 ../lib/modules/sudoRole.inc:453 +#: ../lib/modules/heimdalKerberos.inc:598 ../lib/modules/windowsGroup.inc:364 +msgid "Remove" +msgstr "Efface" + +#: ../lib/modules/asteriskVoicemail.inc:263 +msgid "Remove Asterisk voicemail extension" +msgstr "Supprimer les extensions de messagerie vocale Asterisk" + +#: ../lib/modules/authorizedServiceObject.inc:170 +msgid "Remove Authorized Service extension" +msgstr "Supprimer les extensions Authorized Service" + +#: ../lib/modules/eduPerson.inc:355 +msgid "Remove EDU person extension" +msgstr "Supprimer les extensions de personnes EDU" + +#: ../lib/modules/freeRadius.inc:307 +msgid "Remove FreeRadius extension" +msgstr "Supprimer les extensions FreeRadius" + +#: ../lib/modules/ipHost.inc:160 +msgid "Remove IP address extension" +msgstr "Supprimer les extensions d'adresse IP" + +#: ../lib/modules/mitKerberos.inc:472 ../lib/modules/heimdalKerberos.inc:397 +msgid "Remove Kerberos extension" +msgstr "Supprimer les extensions Kerberos" + +#: ../lib/modules/puppetClient.inc:280 +msgid "Remove Puppet extension" +msgstr "Supprimer l'extensions Puppet" + +#: ../lib/modules/pykotaGroup.inc:238 ../lib/modules/pykotaUser.inc:418 +msgid "Remove PyKota extension" +msgstr "Supprimer les extensions PyKota" + +#: ../lib/modules/sambaSamAccount.inc:1306 +#: ../lib/modules/sambaGroupMapping.inc:423 +msgid "Remove Samba 3 extension" +msgstr "Supprimer les extensions Samba 3" + +#: ../lib/modules/shadowAccount.inc:375 +msgid "Remove Shadow account extension" +msgstr "Supprimer les extensions Sadow Account" + +#: ../lib/modules/posixGroup.inc:246 ../lib/modules/posixAccount.inc:1511 +msgid "Remove Unix extension" +msgstr "Supprimer les extensions Unix" + +#: ../lib/modules/zarafaContact.inc:258 ../lib/modules/zarafaGroup.inc:307 +#: ../lib/modules/zarafaUser.inc:655 ../lib/modules/zarafaServer.inc:232 +msgid "Remove Zarafa extension" +msgstr "Supprimer les extensions Zarafa" + +#: ../lib/modules/customFields.inc:457 +msgid "Remove extension" +msgstr "Supprimer l'extension" + +#: ../lib/types/user.inc:384 +msgid "Remove from all Unix groups" +msgstr "Enlever de tous les groupes Unix" + +#: ../lib/types/user.inc:388 +msgid "Remove from all group of (unique) names" +msgstr "Enlever de tous les groupe de noms (uniques)" + +#: ../lib/modules/hostObject.inc:147 +msgid "Remove host extension" +msgstr "Supprimer les extensions d'hôtes" + +#: ../lib/modules/posixGroup.inc:213 ../lib/modules/posixAccount.inc:1504 +#: ../lib/modules/inetOrgPerson.inc:1564 +msgid "Remove password" +msgstr "Suppression mot de passe" + +#: ../lib/modules/passwordSelfReset.inc:281 +msgid "Remove password self reset extension" +msgstr "Supprimer les extensions de self-service de mot de passe" + +#: ../lib/modules/qmailUser.inc:706 ../lib/modules/qmailGroup.inc:627 +msgid "Remove qmail extension" +msgstr "Supprimer l'extension qmail" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:147 +#: ../lib/modules/zarafaContact.inc:418 ../lib/modules/zarafaGroup.inc:478 +#: ../lib/modules/device.inc:281 ../lib/modules/zarafaUser.inc:902 +#: ../lib/modules/inetOrgPerson.inc:1737 ../lib/modules/qmailGroup.inc:850 +#: ../lib/modules/organizationalRole.inc:383 +#: ../lib/modules/windowsGroup.inc:584 ../lib/modules/groupOfNames.inc:440 +#: ../lib/modules/groupOfNames.inc:595 +msgid "Remove selected entries" +msgstr "Supprimer les entrées sélectionnées" + +#: ../templates/config/conftypes.php:248 +msgid "Remove this account type" +msgstr "Supprimer ce type de compte" + +#: ../lib/modules/nisMailAliasUser.inc:153 +#: ../lib/modules/nisMailAliasUser.inc:192 +msgid "Remove user from alias entry." +msgstr "Retirer l'utilisateur de cet alias." + +#: ../lib/modules/inetOrgPerson.inc:2646 +msgid "Remove/replace photo" +msgstr "Supprimer/Remplacer photo" + +#: ../templates/config/profmanage.php:264 +#: ../templates/selfService/profManage.php:225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1152 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1155 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:24 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:35 +#: ../templates/3rdParty/pla/htdocs/rename.php:53 +msgid "Rename" +msgstr "Renommer" + +#: ../templates/3rdParty/pla/htdocs/rename_form.php:28 +#, php-format +msgid "Rename %s to a new object." +msgstr "Renommer %s vers un nouvel objet." + +#: ../templates/config/profmanage.php:259 +#: ../templates/config/profmanage.php:265 +#: ../templates/selfService/profManage.php:216 +#: ../templates/selfService/profManage.php:226 ../help/help.inc:132 +msgid "Rename profile" +msgstr "Renommer le profil" + +#: ../templates/3rdParty/pla/htdocs/rename.php:48 +msgid "Rename successful!" +msgstr "Renommé avec succès !" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +msgid "Rename this entry" +msgstr "Renommer cette entrée" + +#: ../templates/config/profmanage.php:98 +#: ../templates/selfService/profManage.php:72 +msgid "Renamed profile." +msgstr "Profil renommé." + +#: ../templates/3rdParty/pla/htdocs/import.php:30 +#: ../templates/3rdParty/pla/htdocs/import.php:31 +msgid "Renaming" +msgstr "Renommage" + +#: ../lib/modules/mitKerberos.inc:132 ../lib/modules/mitKerberos.inc:196 +#: ../lib/modules/mitKerberos.inc:236 ../lib/modules/mitKerberos.inc:253 +#: ../lib/modules/mitKerberos.inc:366 ../lib/modules/mitKerberos.inc:771 +#: ../lib/modules/heimdalKerberos.inc:114 +#: ../lib/modules/heimdalKerberos.inc:165 +#: ../lib/modules/heimdalKerberos.inc:205 +#: ../lib/modules/heimdalKerberos.inc:222 +#: ../lib/modules/heimdalKerberos.inc:313 +#: ../lib/modules/heimdalKerberos.inc:691 +msgid "Renewable lifetime" +msgstr "Durée de vie renouvelable" + +#: ../lib/modules/mitKerberos.inc:295 ../lib/modules/mitKerberos.inc:296 +#: ../lib/modules/heimdalKerberos.inc:259 +#: ../lib/modules/heimdalKerberos.inc:260 +msgid "Renewable lifetime must be a number." +msgstr "La durée de vie renouvelable doit être un nombre." + +#: ../templates/lists/changePassword.php:359 +#: ../lib/modules/passwordSelfReset.inc:1067 ../lib/modules.inc:1048 +msgid "Repeat password" +msgstr "Repetez le mot de passe" + +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:1199 +msgid "Replaced $user or $group in homedir." +msgstr "$user ou $group remplacés dans le répertoire home utilisateur." + +#: ../templates/config/confmain.php:346 ../help/help.inc:257 +msgid "Reply-to address" +msgstr "Répondre à l'adresse" + +#: ../templates/config/confmain.php:523 +msgid "Reply-to address for password mails is invalid." +msgstr "" +"L'adresse \"Répondre à\" pour les envois de mot de passe par mail est " +"incorrecte." + +#: ../lib/types/ppolicyType.inc:89 ../lib/modules/ppolicy.inc:128 +#: ../lib/modules/ppolicy.inc:154 ../lib/modules/ppolicy.inc:288 +#: ../lib/modules/ppolicy.inc:500 +msgid "Require password change on first login" +msgstr "Force le changement de mot de passe à la première connexion" + +#: ../lib/modules/windowsUser.inc:201 ../lib/modules/windowsUser.inc:402 +#: ../lib/modules/windowsUser.inc:519 ../lib/modules/windowsUser.inc:750 +#: ../lib/modules/windowsUser.inc:1621 +msgid "Require smartcard" +msgstr "Nécessite une carte à puce" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 +msgid "Required attribute for object classes" +msgstr "Attribut obligatoire pour les objectClass" + +#: ../templates/schema/schema.php:383 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1567 +msgid "Required attributes" +msgstr "Attributs obligatoire" + +#: ../lib/modules/mitKerberos.inc:180 ../lib/modules/mitKerberos.inc:462 +msgid "Requires hardware authentication" +msgstr "Authentification par token physique requise" + +#: ../lib/modules/mitKerberos.inc:177 ../lib/modules/mitKerberos.inc:457 +#: ../lib/modules/heimdalKerberos.inc:151 +#: ../lib/modules/heimdalKerberos.inc:388 +msgid "Requires preauthentication" +msgstr "Pré-authentification requise" + +#: ../lib/modules/sambaSamAccount.inc:1300 +#: ../lib/modules/pykotaBillingCode.inc:93 +#: ../lib/modules/pykotaBillingCode.inc:163 +msgid "Reset" +msgstr "Réinitialiser" + +#: ../lib/modules.inc:1212 +msgid "Reset changes" +msgstr "Réinitialiser les modifications." + +#: ../lib/modules/sambaSamAccount.inc:264 +#: ../lib/modules/sambaSamAccount.inc:1299 +msgid "Reset password" +msgstr "Réinitialiser le mot de passe" + +#: ../lib/modules/sambaDomain.inc:137 ../lib/modules/sambaDomain.inc:199 +#: ../lib/modules/sambaDomain.inc:224 ../lib/modules/sambaDomain.inc:348 +#: ../lib/modules/sambaDomain.inc:611 +msgid "Reset time after lockout" +msgstr "RAZ du temps après blocage" + +#: ../lib/modules/sambaDomain.inc:224 +msgid "Reset time after lockout must be are natural number." +msgstr "RAZ du temps après blocage doit être un nombre entier." + +#: ../lib/modules/pykotaBillingCode.inc:94 +msgid "Resets the billing code's balance and page counter to 0." +msgstr "" +"Remettre à zéro le solde de compte de facturation et le compteur de page." + +#: ../lib/modules/zarafaUser.inc:523 +msgid "Resource settings" +msgstr "Paramètres de ressource" + +#: ../lib/modules/asteriskAccount.inc:187 +#: ../lib/modules/asteriskAccount.inc:285 +#: ../lib/modules/asteriskAccount.inc:450 +#: ../lib/modules/asteriskAccount.inc:695 +#: ../lib/modules/asteriskAccount.inc:1001 +#: ../lib/modules/asteriskAccount.inc:1271 +msgid "Restrict caller ID" +msgstr "Limiter à l'identifiant d'appelant" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:113 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:118 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:550 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:587 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:198 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:84 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:122 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +msgid "Retrieving DN" +msgstr "Récupération du DN" + +#: ../lib/modules/bindDLZ.inc:212 ../lib/modules/bindDLZ.inc:325 +#: ../lib/modules/bindDLZ.inc:418 ../lib/modules/bindDLZ.inc:516 +#: ../lib/modules/bindDLZ.inc:1030 ../lib/modules/bindDLZ.inc:1543 +msgid "Retry time" +msgstr "Délai de ré-essai" + +#: ../lib/modules/bindDLZ.inc:748 +msgid "Reverse DNS entries (\"PTR\" records)" +msgstr "Enregistrement DNS inverse (enregistrements \"PTR\")" + +#: ../lib/modules/ddns.inc:106 ../lib/modules/ddns.inc:114 +#: ../lib/modules/ddns.inc:135 ../lib/modules/ddns.inc:397 +#: ../lib/modules/ddns.inc:426 +msgid "Reverse zone name" +msgstr "Zone de nom inverse" + +#: ../templates/config/confmain.php:313 ../help/help.inc:118 +msgid "Rights for the home directory" +msgstr "Droits du répertoire home" + +#: ../lib/modules/organizationalRole.inc:65 +msgid "Role" +msgstr "Rôle" + +#: ../lib/types/gon.inc:209 ../lib/types/group.inc:247 +#, php-format +msgid "Role count: %s" +msgstr "Nombre de rôles : %s" + +#: ../lib/types/gon.inc:107 ../lib/types/group.inc:110 +msgid "Role member DNs" +msgstr "DNs des membres du rôle" + +#: ../lib/types/gon.inc:112 ../lib/types/group.inc:116 +#: ../lib/types/sudo.inc:77 ../lib/modules/sudoRole.inc:66 +#: ../lib/modules/sudoRole.inc:146 ../lib/modules/sudoRole.inc:214 +#: ../lib/modules/sudoRole.inc:299 ../lib/modules/sudoRole.inc:804 +msgid "Role name" +msgstr "Nom du rôle" + +#: ../lib/types/gon.inc:63 ../lib/types/group.inc:64 +#: ../lib/modules/organizationalRoleUser.inc:54 +#: ../lib/modules/organizationalRoleUser.inc:56 +#: ../lib/modules/organizationalRoleUser.inc:60 +#: ../lib/modules/organizationalRoleUser.inc:64 +#: ../lib/modules/organizationalRoleUser.inc:71 +#: ../lib/modules/organizationalRoleUser.inc:270 +#: ../lib/modules/organizationalRoleUser.inc:306 +msgid "Roles" +msgstr "Roles" + +#: ../lib/modules/zarafaUser.inc:528 ../lib/modules/zarafaUser.inc:1246 +msgid "Room" +msgstr "Bureau" + +#: ../lib/modules/inetOrgPerson.inc:160 ../lib/modules/inetOrgPerson.inc:202 +#: ../lib/modules/inetOrgPerson.inc:475 ../lib/modules/inetOrgPerson.inc:569 +#: ../lib/modules/inetOrgPerson.inc:760 ../lib/modules/inetOrgPerson.inc:1366 +#: ../lib/modules/inetOrgPerson.inc:1369 ../lib/modules/inetOrgPerson.inc:1906 +#: ../lib/modules/inetOrgPerson.inc:2577 ../lib/modules/inetOrgPerson.inc:3527 +#: ../lib/modules/inetOrgPerson.inc:3581 +msgid "Room number" +msgstr "Numéro de bureau" + +#: ../lib/modules/inetLocalMailRecipient.inc:68 +#: ../lib/modules/inetLocalMailRecipient.inc:100 +#: ../lib/modules/inetLocalMailRecipient.inc:119 +#: ../lib/modules/inetLocalMailRecipient.inc:146 +#: ../lib/modules/inetLocalMailRecipient.inc:292 +msgid "Routing address" +msgstr "Adresse de routage" + +#: ../lib/modules/customFields.inc:132 ../lib/modules/customFields.inc:2607 +msgid "Rows" +msgstr "Lignes" + +#: ../lib/modules/asteriskExtension.inc:139 +#: ../lib/modules/asteriskExtension.inc:311 +msgid "Rules" +msgstr "Règles" + +#: ../lib/modules/customScripts.inc:187 +msgid "Run" +msgstr "Exécuter " + +#: ../lib/types/sudo.inc:82 +msgid "Run group" +msgstr "Groupes d'exécution" + +#: ../lib/modules/sudoRole.inc:90 ../lib/modules/sudoRole.inc:118 +#: ../lib/modules/sudoRole.inc:183 ../lib/modules/sudoRole.inc:220 +#: ../lib/modules/sudoRole.inc:232 ../lib/modules/sudoRole.inc:424 +#: ../lib/modules/sudoRole.inc:810 +msgid "Run groups" +msgstr "Groupes d'exécution" + +#: ../lib/types/sudo.inc:81 +msgid "Run user" +msgstr "Utilisateur d'exécution" + +#: ../lib/modules/sudoRole.inc:86 ../lib/modules/sudoRole.inc:113 +#: ../lib/modules/sudoRole.inc:177 ../lib/modules/sudoRole.inc:219 +#: ../lib/modules/sudoRole.inc:231 ../lib/modules/sudoRole.inc:397 +#: ../lib/modules/sudoRole.inc:809 +msgid "Run users" +msgstr "Utilisateurs d'exécution" + +#: ../lib/modules/windowsUser.inc:304 +msgid "S.M." +msgstr "S.M." + +#: ../templates/serverInfo.php:129 +msgid "SASL mechanisms" +msgstr "Mécanisme SASL" + +#: ../lib/modules/asteriskAccount.inc:152 +msgid "SIP URI for a realtime peer." +msgstr "URI SIP pour pair temps-réel." + +#: ../lib/modules/asteriskAccount.inc:128 +msgid "SIP user agent identification." +msgstr "Identification des user agent SIP" + +#: ../lib/modules/bindDLZ.inc:307 ../lib/modules/bindDLZ.inc:313 +#: ../lib/modules/bindDLZ.inc:319 ../lib/modules/bindDLZ.inc:325 +#: ../lib/modules/bindDLZ.inc:331 ../lib/modules/bindDLZ.inc:338 +#: ../lib/modules/bindDLZ.inc:344 ../lib/modules/bindDLZ.inc:350 +#: ../lib/modules/bindDLZ.inc:416 ../lib/modules/bindDLZ.inc:417 +#: ../lib/modules/bindDLZ.inc:418 ../lib/modules/bindDLZ.inc:419 +#: ../lib/modules/bindDLZ.inc:420 ../lib/modules/bindDLZ.inc:421 +#: ../lib/modules/bindDLZ.inc:422 ../lib/modules/bindDLZ.inc:423 +#: ../lib/modules/bindDLZ.inc:480 ../lib/modules/bindDLZ.inc:512 +#: ../lib/modules/bindDLZ.inc:514 ../lib/modules/bindDLZ.inc:516 +#: ../lib/modules/bindDLZ.inc:518 ../lib/modules/bindDLZ.inc:520 +#: ../lib/modules/bindDLZ.inc:522 +msgid "SOA record" +msgstr "Enregistrement SOA" + +#: ../lib/modules/bindDLZ.inc:123 ../lib/modules/bindDLZ.inc:382 +#: ../lib/modules/bindDLZ.inc:387 ../lib/modules/bindDLZ.inc:392 +#: ../lib/modules/bindDLZ.inc:397 ../lib/modules/bindDLZ.inc:402 +#: ../lib/modules/bindDLZ.inc:486 +msgid "SRV record" +msgstr "Enregistrement SRV" + +#: ../lib/modules/bindDLZ.inc:426 ../lib/modules/bindDLZ.inc:436 +#: ../lib/modules/bindDLZ.inc:1596 +msgid "SRV records" +msgstr "Enregistrements SRV" + +#: ../templates/tests/lamdaemonTest.php:243 +msgid "SSH connection" +msgstr "Connexion SSH" + +#: ../templates/tests/lamdaemonTest.php:256 +msgid "SSH connection could be established." +msgstr "La connexion SSH a été établie correctement." + +#: ../lib/modules/ldapPublicKey.inc:62 ../lib/modules/ldapPublicKey.inc:72 +#: ../lib/modules/ldapPublicKey.inc:76 ../lib/modules/ldapPublicKey.inc:88 +#: ../lib/modules/ldapPublicKey.inc:119 +msgid "SSH public key" +msgstr "Clé publique SSH" + +#: ../lib/modules/ldapPublicKey.inc:95 ../lib/modules/ldapPublicKey.inc:99 +#: ../lib/modules/ldapPublicKey.inc:197 ../lib/modules/ldapPublicKey.inc:237 +msgid "SSH public keys" +msgstr "Clés publique SSH" + +#: ../help/help.inc:83 +msgid "SSL certificate" +msgstr "Certificat SSL" + +#: ../templates/config/mainmanage.php:308 +msgid "SSL certificates" +msgstr "Certificats SSL" + +#: ../lib/modules/zarafaServer.inc:72 ../lib/modules/zarafaServer.inc:106 +#: ../lib/modules/zarafaServer.inc:136 ../lib/modules/zarafaServer.inc:175 +#: ../lib/modules/zarafaServer.inc:203 ../lib/modules/zarafaServer.inc:355 +msgid "SSL port" +msgstr "port SSL" + +#: ../templates/lists/changePassword.php:402 +#: ../templates/lists/changePassword.php:433 +msgid "Samba" +msgstr "Samba" + +#: ../lib/types/user.inc:276 ../lib/types/user.inc:372 +#: ../lib/types/user.inc:404 ../lib/types/user.inc:829 +#: ../lib/modules/sambaSamAccount.inc:146 +#: ../lib/modules/sambaGroupMapping.inc:101 +msgid "Samba 3" +msgstr "Samba3" + +#: ../lib/modules/sambaDomain.inc:210 ../lib/modules/sambaDomain.inc:211 +msgid "Samba 3 domain SID is invalid!" +msgstr "Le SID domaine de Samba 3 n'est pas valable !" + +#: ../lib/types/smbDomain.inc:62 +msgid "Samba 3 domain entries" +msgstr "Entrées de Domaine Samba 3" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:228 +msgid "Samba ID pool" +msgstr "pool Samba ID" + +#: ../lib/modules/posixGroup.inc:413 ../lib/modules/posixGroup.inc:524 +#: ../lib/modules/posixGroup.inc:613 ../lib/modules/posixAccount.inc:131 +#: ../lib/modules/posixAccount.inc:215 ../lib/modules/posixAccount.inc:233 +#: ../lib/modules/posixAccount.inc:501 +msgid "Samba ID pool DN" +msgstr "DN du pool Samba ID" + +#: ../lib/modules/sambaSamAccount.inc:329 +#: ../lib/modules/sambaSamAccount.inc:333 +#: ../lib/modules/sambaSamAccount.inc:477 +#: ../lib/modules/sambaSamAccount.inc:543 +msgid "Samba RID" +msgstr "Samba RID" + +#: ../lib/modules/sambaGroupMapping.inc:129 +#: ../lib/modules/sambaGroupMapping.inc:154 +msgid "Samba RID number" +msgstr "Nombre RID Samba" + +#: ../lib/modules/sambaGroupMapping.inc:123 +msgid "Samba display name" +msgstr "Nom Affichage Samba" + +#: ../lib/modules/sambaDomain.inc:58 +msgid "Samba domain" +msgstr "Domaine Samba" + +#: ../lib/modules/sambaGroupMapping.inc:245 +msgid "Samba domain name" +msgstr "Nom du Domaine Samba" + +#: ../lib/types/smbDomain.inc:53 +msgid "Samba domains" +msgstr "Domaines Samba" + +#: ../lib/modules/sambaGroupMapping.inc:113 +#: ../lib/modules/sambaGroupMapping.inc:135 +#: ../lib/modules/sambaGroupMapping.inc:162 +#: ../lib/modules/sambaGroupMapping.inc:541 +msgid "Samba group type" +msgstr "Type groupe Samba" + +#: ../lib/modules/sambaSamAccount.inc:261 +msgid "Samba password" +msgstr "Mot de passe Samba" + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:226 +#: ../lib/modules/sambaSamAccount.inc:314 +#: ../lib/modules/sambaSamAccount.inc:317 +#: ../lib/modules/sambaSamAccount.inc:518 +#: ../lib/modules/sambaSamAccount.inc:604 +#: ../lib/modules/sambaSamAccount.inc:1240 +#: ../lib/modules/sambaSamAccount.inc:1766 +#: ../lib/modules/sambaSamAccount.inc:1904 +msgid "Samba workstations" +msgstr "Machines clientes" + +#: ../lib/modules/sambaSamAccount.inc:1376 +msgid "Saturday" +msgstr "Samedi" + +#: ../templates/config/confmodules.php:224 +#: ../templates/config/confmain.php:468 +#: ../templates/config/moduleSettings.php:238 +#: ../templates/config/conftypes.php:338 +#: ../templates/selfService/selfServiceMain.php:416 +#: ../templates/selfService/adminMain.php:745 +#: ../templates/pdfedit/pdfpage.php:636 +#: ../templates/profedit/profilepage.php:238 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1243 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1247 +#: ../lib/modules/inetOrgPerson.inc:2801 ../lib/modules/customFields.inc:3456 +#: ../lib/modules.inc:1206 +msgid "Save" +msgstr "Sauvegarder" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +msgid "Save a dump of this object" +msgstr "Sauvegarder un dump de cet objet" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1244 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Save a dump of this object and all of its children" +msgstr "Sauvegarder un dump de cet objet et de tous ses enfants" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:90 +msgid "Save as file" +msgstr "Sauver en fichier" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:172 +msgid "Save changes" +msgstr "Sauvegarder les modifications" + +#: ../lib/tools/schemaBrowser.inc:44 +msgid "Schema browser" +msgstr "Explorateur de schéma" + +#: ../templates/serverInfo.php:119 +msgid "Schema suffix" +msgstr "Suffixe de schéma" + +#: ../templates/tests/schemaTest.php:55 ../templates/tests/index.php:58 +#: ../lib/tools/tests.inc:116 +msgid "Schema test" +msgstr "Test de schéma" + +#: ../lib/modules/eduPerson.inc:92 ../lib/modules/eduPerson.inc:96 +#: ../lib/modules/eduPerson.inc:175 ../lib/modules/eduPerson.inc:233 +#: ../lib/modules/eduPerson.inc:285 ../lib/modules/eduPerson.inc:582 +msgid "Scoped affiliations" +msgstr "Portée d'affectations" + +#: ../help/help.inc:101 +msgid "Script path" +msgstr "Chemin de script" + +#: ../templates/config/confmain.php:573 +msgid "Script path is invalid!" +msgstr "Le chemin de script n'est pas valable !" + +#: ../templates/config/confmain.php:592 +msgid "Script rights are invalid!" +msgstr "Droits du script incorrects!" + +#: ../templates/config/confmain.php:576 +msgid "Script server is invalid!" +msgstr "Le serveur de script n'est pas valable !" + +#: ../help/help.inc:114 +msgid "Script servers" +msgstr "Serveurs de script" + +#: ../templates/serverInfo.php:300 ../templates/serverInfo.php:380 +#: ../templates/3rdParty/pla/lib/QueryRender.php:75 +#: ../templates/3rdParty/pla/lib/QueryRender.php:180 +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:619 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:235 +msgid "Search" +msgstr "Rechercher" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +#: ../templates/3rdParty/pla/lib/QueryRender.php:190 +msgid "Search Results" +msgstr "Résultats de recherche" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +#: ../templates/3rdParty/pla/lib/export_functions.php:201 +#: ../templates/3rdParty/pla/htdocs/export_form.php:81 +msgid "Search filter" +msgstr "Filtre de recherche" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:293 +msgid "Search returned no results" +msgstr "La recherche n'a renvoyé aucun résultat" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +#: ../templates/3rdParty/pla/lib/export_functions.php:200 +#: ../templates/3rdParty/pla/htdocs/export_form.php:67 +msgid "Search scope" +msgstr "Scope de recherche" + +#: ../lib/modules/asteriskExtension.inc:457 +msgid "Search tree suffix for users" +msgstr "Suffixe de recherche pour les utilisateurs" + +#: ../templates/pdfedit/pdfpage.php:608 +msgid "Section" +msgstr "Section" + +#: ../lib/modules/windowsGroup.inc:60 +msgid "Security" +msgstr "Sécurité" + +#: ../templates/3rdParty/pla/lib/Template.php:397 +#: ../templates/3rdParty/pla/lib/Template.php:422 +#: ../templates/3rdParty/pla/lib/Template.php:427 +#: ../templates/3rdParty/pla/lib/Template.php:484 +#: ../templates/3rdParty/pla/lib/Template.php:509 +#: ../templates/3rdParty/pla/lib/Template.php:514 +msgid "Security error: The file being uploaded may be malicious." +msgstr "" +"Erreur de sécurité : Le fichier en cours de téléchargement pourrait être " +"malveillant." + +#: ../lib/modules/zarafaGroup.inc:81 ../lib/modules/zarafaGroup.inc:178 +#: ../lib/modules/zarafaGroup.inc:203 ../lib/modules/zarafaGroup.inc:285 +#: ../lib/modules/zarafaGroup.inc:655 +msgid "Security group" +msgstr "Groupes de sécurité" + +#: ../lib/modules/windowsGroup.inc:139 +msgid "" +"Security groups are used for permission management and distribution groups " +"as email lists." +msgstr "" +"Les groupes de sécurité sont utilisés pour les ACL et les groupes de " +"distributions pour les listes de diffusion." + +#: ../lib/modules/passwordSelfReset.inc:80 +#: ../lib/modules/passwordSelfReset.inc:205 +#: ../lib/modules/passwordSelfReset.inc:527 +msgid "Security questions" +msgstr "Questions de sécurité" + +#: ../templates/config/mainmanage.php:295 ../templates/config/confmain.php:458 +msgid "Security settings" +msgstr "Paramètres de sécurité" + +#: ../templates/help.php:94 +msgid "See also" +msgstr "Voir aussi" + +#: ../lib/account.inc:790 +msgid "See the manual for instructions to solve this problem." +msgstr "" +"Vous trouverez dans la documentation les instructions pour résoudre ce " +"problème." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:494 +msgid "Select a template for the creation process" +msgstr "Sélectionne un modèle pour le process de création" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:498 +msgid "Select a template to edit the entry" +msgstr "Sélectionner un modèle pour modifier l'entrée" + +#: ../lib/lists.inc:354 ../lib/lists.inc:471 +msgid "Select all" +msgstr "Tout sélectionner" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:31 +msgid "Select an LDIF file" +msgstr "Choisir un fichier LDIF" + +#: ../lib/modules/nisnetgroup.inc:240 ../lib/modules/nisnetgroup.inc:269 +msgid "Select host" +msgstr "Choisissez un hôte" + +#: ../lib/modules/customFields.inc:3126 +msgid "Select list" +msgstr "Liste de sélection" + +#: ../lib/modules/nisMailAlias.inc:194 ../lib/modules/nisMailAlias.inc:215 +msgid "Select mail" +msgstr "Sélectionner un mail" + +#: ../lib/modules/nisMailAliasUser.inc:101 +msgid "Select one or more alias entries from the list to add the recipient." +msgstr "" +"Choisissez dans la liste un ou plusieurs alias au(x)quel(s) ajouter le " +"destinataire." + +#: ../lib/modules/nisnetgroup.inc:246 ../lib/modules/nisnetgroup.inc:275 +#: ../lib/modules/nisMailAlias.inc:195 ../lib/modules/nisMailAlias.inc:216 +msgid "Select user" +msgstr "Sélectionnez un utilisateur" + +#: ../lib/modules/posixAccount.inc:1567 ../lib/modules/posixAccount.inc:1600 +#: ../lib/modules/windowsUser.inc:1030 ../lib/modules/nisnetgroup.inc:384 +#: ../lib/modules/groupOfNamesUser.inc:131 +msgid "Selected groups" +msgstr "Groupes sélectionnés" + +#: ../templates/masscreate.php:159 ../templates/config/confmodules.php:299 +msgid "Selected modules" +msgstr "Modules sélectionnés" + +#: ../lib/modules/organizationalRoleUser.inc:116 +msgid "Selected roles" +msgstr "Rôles sélectionnés" + +#: ../lib/modules/posixGroup.inc:295 ../lib/modules/asteriskExtension.inc:461 +msgid "Selected users" +msgstr "Utilisateur(s) Sélectionné(s)" + +#: ../templates/selfService/adminMain.php:336 +msgid "Self service configuration" +msgstr "Configuration du self-service" + +#: ../templates/selfService/adminMain.php:389 +msgid "Self service configuration editor" +msgstr "Editeur de configuration du self-service" + +#: ../templates/selfService/adminMain.php:395 +msgid "Self service login" +msgstr "Connexion self-service" + +#: ../lib/modules/passwordSelfReset.inc:504 +msgid "Self service login attribute" +msgstr "Attributs de connexion au self-service" + +#: ../templates/selfService/adminMain.php:381 +msgid "Self service profile" +msgstr "Profils de self-service" + +#: ../lib/modules/passwordSelfReset.inc:130 +#: ../lib/modules/passwordSelfReset.inc:531 +msgid "Send confirmation mail" +msgstr "Envoie un mail de confirmation" + +#: ../lib/modules/passwordSelfReset.inc:112 +#: ../lib/modules/passwordSelfReset.inc:551 +msgid "Send notification mail" +msgstr "Envoie un mail d'information" + +#: ../lib/modules/inetOrgPerson.inc:456 ../lib/modules/inetOrgPerson.inc:729 +msgid "Send password via mail" +msgstr "Envoyer le mot de passe par mail" + +#: ../templates/lists/changePassword.php:319 +#: ../templates/lists/changePassword.php:364 ../lib/modules.inc:1066 +#: ../help/help.inc:208 +msgid "Send via mail" +msgstr "Envoyer par mail" + +#: ../lib/modules/qmailGroup.inc:90 ../lib/modules/qmailGroup.inc:220 +#: ../lib/modules/qmailGroup.inc:224 ../lib/modules/qmailGroup.inc:353 +#: ../lib/modules/qmailGroup.inc:408 ../lib/modules/qmailGroup.inc:429 +#: ../lib/modules/qmailGroup.inc:519 ../lib/modules/qmailGroup.inc:1068 +msgid "Sender email addresses" +msgstr "Adresse mail de l'expéditeur." + +#: ../lib/modules/qmailGroup.inc:88 ../lib/modules/qmailGroup.inc:172 +#: ../lib/modules/qmailGroup.inc:176 ../lib/modules/qmailGroup.inc:295 +#: ../lib/modules/qmailGroup.inc:387 ../lib/modules/qmailGroup.inc:521 +#: ../lib/modules/qmailGroup.inc:790 ../lib/modules/qmailGroup.inc:1067 +msgid "Sender entries" +msgstr "Entrées d'expéditeur" + +#: ../lib/modules/qmailGroup.inc:92 ../lib/modules/qmailGroup.inc:188 +#: ../lib/modules/qmailGroup.inc:192 ../lib/modules/qmailGroup.inc:311 +#: ../lib/modules/qmailGroup.inc:393 ../lib/modules/qmailGroup.inc:520 +#: ../lib/modules/qmailGroup.inc:1069 +msgid "Sender filter" +msgstr "Filtre d'expéditeur" + +#: ../lib/modules/passwordSelfReset.inc:113 +msgid "Sends a mail to the user to inform him about the password change." +msgstr "" +"Envoie un courrier à l'utilisateur pour l'informer du changement de mot de " +"passe." + +#: ../lib/modules/passwordSelfReset.inc:131 +msgid "" +"Sends a mail to the user to validate his email address before the password " +"change." +msgstr "" +"Envoie un mail à l'utilisateur pour confirmer son adresse mail avant de " +"modifier le mot de passe." + +#: ../lib/modules/inetOrgPerson.inc:730 ../help/help.inc:209 +msgid "" +"Sends the password to the user via mail. Please edit your LAM server profile " +"to setup the mail settings." +msgstr "" +"Envoyer le mot de passe à l'utilisateur par mail. Les paramètres de mail " +"sont configurés dans votre profil de serveur LAM." + +#: ../templates/config/mainmanage.php:358 ../lib/modules/device.inc:65 +#: ../lib/modules/device.inc:97 ../lib/modules/device.inc:127 +#: ../lib/modules/device.inc:175 ../lib/modules/device.inc:420 +#: ../lib/modules/bindDLZ.inc:220 ../lib/modules/bindDLZ.inc:350 +#: ../lib/modules/bindDLZ.inc:416 ../lib/modules/bindDLZ.inc:520 +#: ../lib/modules/bindDLZ.inc:1048 ../lib/modules/bindDLZ.inc:1541 +msgid "Serial number" +msgstr "Numéro de série" + +#: ../templates/tests/lamdaemonTest.php:72 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:166 +#: ../templates/3rdParty/pla/htdocs/import.php:47 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:110 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +#: ../templates/3rdParty/pla/htdocs/export_form.php:56 +#: ../lib/modules/kolabGroup.inc:289 ../lib/modules/bindDLZ.inc:164 +#: ../lib/modules/bindDLZ.inc:168 ../lib/modules/bindDLZ.inc:397 +#: ../lib/modules/bindDLZ.inc:507 ../lib/modules/bindDLZ.inc:1366 +#: ../lib/modules/bindDLZ.inc:1602 ../lib/modules/kolabSharedFolder.inc:429 +msgid "Server" +msgstr "Serveur" + +#: ../templates/config/confmain.php:238 +#: ../templates/selfService/adminMain.php:446 ../lib/modules/qmailUser.inc:118 +#: ../lib/modules/qmailUser.inc:163 ../lib/modules/qmailUser.inc:243 +#: ../lib/modules/qmailUser.inc:358 ../lib/modules/qmailUser.inc:427 +#: ../lib/modules/qmailUser.inc:592 ../lib/modules/qmailUser.inc:1148 +#: ../lib/modules/imapAccess.inc:77 ../lib/modules/imapAccess.inc:117 +#: ../help/help.inc:58 +msgid "Server address" +msgstr "Adresse du serveur" + +#: ../templates/config/confmain.php:501 +#: ../templates/selfService/adminMain.php:217 +msgid "Server address is invalid!" +msgstr "Adresse du serveur icorrecte !" + +#: ../templates/serverInfo.php:103 ../lib/tools/serverInfo.inc:44 +msgid "Server information" +msgstr "Informations serveur" + +#: ../templates/config/confmain.php:310 +msgid "Server list" +msgstr "Liste de serveur" + +#: ../templates/login.php:468 ../templates/config/confmodules.php:137 +#: ../templates/config/confmain.php:167 +#: ../templates/config/moduleSettings.php:136 +#: ../templates/config/conftypes.php:155 ../lib/modules/imapAccess.inc:130 +msgid "Server profile" +msgstr "Profil du serveur" + +#: ../templates/config/confmain.php:280 +#: ../templates/selfService/adminMain.php:491 +msgid "Server settings" +msgstr "Paramètres du serveur" + +#: ../templates/serverInfo.php:180 +msgid "Server statistics" +msgstr "Statistiques du serveur" + +#: ../templates/serverInfo.php:205 ../templates/serverInfo.php:211 +msgid "Server time" +msgstr "Heure du serveur" + +#: ../lib/modules/zarafaServer.inc:145 +msgid "Servers" +msgstr "Serveurs" + +#: ../lib/modules/authorizedServiceObject.inc:82 +msgid "Service name (e.g. sshd, imap, ftp). Enter one service per entry." +msgstr "Nom de service ( ex : sshd, imap, ftp). Entrez un service par champ." + +#: ../lib/modules/bindDLZ.inc:1340 +msgid "Services (\"SRV\" records)" +msgstr "Services (enregistrements \"SRV\")" + +#: ../templates/config/mainmanage.php:298 ../help/help.inc:146 +msgid "Session timeout" +msgstr "Durée de la session" + +#: ../lib/modules/aliasEntry.inc:108 +msgid "Set" +msgstr "Set" + +#: ../lib/modules/sambaSamAccount.inc:1467 +#: ../lib/modules/sambaSamAccount.inc:1470 +#: ../lib/modules/sambaSamAccount.inc:1473 +#: ../lib/modules/shadowAccount.inc:464 ../lib/modules/shadowAccount.inc:467 +#: ../lib/modules/shadowAccount.inc:470 +msgid "Set also for Kerberos" +msgstr "Appliquer pour Kerberos également" + +#: ../lib/modules/mitKerberos.inc:682 ../lib/modules/shadowAccount.inc:461 +#: ../lib/modules/heimdalKerberos.inc:592 +msgid "Set also for Samba 3" +msgstr "Appliquer pour Samba 3 également" + +#: ../lib/modules/mitKerberos.inc:679 ../lib/modules/sambaSamAccount.inc:1464 +#: ../lib/modules/heimdalKerberos.inc:589 +msgid "Set also for Shadow" +msgstr "Appliquer pour Shadow également" + +#: ../lib/modules.inc:1219 ../lib/modules.inc:1221 +msgid "Set password" +msgstr "Définir le mot de passe" + +#: ../lib/modules/posixAccount.inc:269 ../lib/modules/posixAccount.inc:445 +msgid "Set primary group as memberUid" +msgstr "Ajouter l'utilisateur aux membres du groupe principal" + +#: ../templates/config/profmanage.php:280 +#: ../templates/config/profmanage.php:291 +#: ../templates/config/profmanage.php:292 ../help/help.inc:136 +msgid "Set profile password" +msgstr "Donnez le mot de passe profil" + +#: ../lib/modules.inc:1222 +msgid "Set random password" +msgstr "Mot de passe aléatoire" + +#: ../templates/lists/changePassword.php:347 +msgid "Set specific password" +msgstr "Mot de passe défini" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +msgid "Set the search results to 0 to retrieve all available records." +msgstr "Fixez le nombre de résultats a retourner à 0 pour tout afficher." + +#: ../templates/selfService/adminMain.php:593 +msgid "Set this field read-only." +msgstr "Champ en lecture seule." + +#: ../lib/modules/groupOfNames.inc:110 +msgid "" +"Set this only if your LDAP schema allows that groups may not have any " +"members (e.g. if you use OpenDJ)." +msgstr "" +"Choisissez ceci uniquement si votre schéma LDAP autorise les groupes sans " +"aucun membre ( ex : si vous utilez OpenDJ )." + +#: ../lib/modules/nisMailAliasUser.inc:77 +#: ../lib/modules/nisMailAliasUser.inc:81 +msgid "Sets the alias names linked to the current user name." +msgstr "Définit l'alias lié à l'utilisateur courant." + +#: ../lib/modules/nisMailAliasUser.inc:85 +#: ../lib/modules/nisMailAliasUser.inc:89 +msgid "Sets the alias names linked to the user's email address." +msgstr "Définit le nom de l'alias lié à l'adresse mail de l'utilisateur." + +#: ../lib/modules/bindDLZ.inc:217 +msgid "" +"Sets the default timeout (in seconds) for entries without explicit timeout " +"value." +msgstr "" +"Définit le timeout par défaut (en secondes) pour les entrées n'ayant pas de " +"valeur de timeout." + +#: ../lib/modules/qmailUser.inc:216 +msgid "Sets the delivery mode (e.g. disable mail forwarding)." +msgstr "Détermine le mode de livraison (ex désactive le transfert)." + +#: ../lib/modules/posixGroup.inc:497 +msgid "Sets the group password." +msgstr "Configure le mot de passe Groupe" + +#: ../lib/modules/bindDLZ.inc:197 ../lib/modules/bindDLZ.inc:201 +msgid "" +"Sets the preference for the mail server. Lower values have higher priority." +msgstr "" +"Détermine l'ordre de préférence des serveurs de mail. Les valeurs les plus " +"faibles ont la priorité la plus haute." + +#: ../help/help.inc:183 +msgid "Sets this account type to read-only." +msgstr "Définit ce type de compte en lecture-seule." + +#: ../lib/modules/shadowAccount.inc:91 +msgid "Shadow" +msgstr "Shadow" + +#: ../lib/modules/sambaSamAccount.inc:242 +#: ../lib/modules/sambaSamAccount.inc:381 +#: ../lib/modules/sambaSamAccount.inc:1544 +#: ../lib/modules/sambaSamAccount.inc:1954 +msgid "Shadowing" +msgstr "Shadowing" + +#: ../lib/types/kolabSharedFolderType.inc:141 +#, php-format +msgid "Shared folder count: %s" +msgstr "Nombre de dossiers partagés : %s" + +#: ../lib/modules/kolabSharedFolder.inc:57 +msgid "Shared mail folder" +msgstr "Dossier de mail partagé" + +#: ../lib/modules/zarafaUser.inc:112 ../lib/modules/zarafaUser.inc:265 +#: ../lib/modules/zarafaUser.inc:358 ../lib/modules/zarafaUser.inc:585 +#: ../lib/modules/zarafaUser.inc:1268 ../lib/modules/zarafaUser.inc:1795 +msgid "Shared store only" +msgstr "Magasin partgé uniquement" + +#: ../lib/modules/ddns.inc:82 +msgid "Should DDNS (Dynamic DNS) be activated?" +msgstr "Souhaitez-vous activer DDNS ( DNS Dynamique ) ?" + +#: ../lib/modules/ddns.inc:86 +msgid "Should fix IP addresses be added to the DNS server?" +msgstr "Doit-on ajouter des addresse IP fixes dans le serveur DNS ?" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1121 +msgid "Show" +msgstr "Afficher" + +#: ../templates/massBuildAccounts.php:243 +msgid "Show LDIF file" +msgstr "Montre fichier LDIF" + +#: ../lib/types/user.inc:683 +msgid "Show account status" +msgstr "Afficher le statut du compte" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +#: ../templates/3rdParty/pla/htdocs/export_form.php:84 +msgid "Show attributes" +msgstr "Afficher les attributs" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1122 +msgid "Show internal attributes" +msgstr "Montre les attributs internes" + +#: ../lib/modules/asteriskExtension.inc:453 +msgid "Show only Asterisk accounts" +msgstr "Afficher uniquement les comptes Asterisk" + +#: ../lib/types/group.inc:423 +msgid "Show primary group members as normal group members" +msgstr "" +"Afficher les membres du groupes principal comme des membres ordinaires du " +"groupe." + +#: ../templates/schema/schema.php:194 +msgid "Single valued" +msgstr "Valeur seule" + +#: ../lib/modules/pykotaUser.inc:652 ../lib/modules/pykotaUser.inc:1001 +msgid "Size" +msgstr "Taille" + +#: ../lib/modules/qmailUser.inc:228 +msgid "Size limit in bytes for a single mail. Larger mails will be bounced." +msgstr "" +"Limite de taille en octets pour un mail. Les courriers plus volumineux " +"seront retournés." + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Skip" +msgstr "Passer" + +#: ../lib/modules/quota.inc:634 ../lib/modules/systemQuotas.inc:383 +msgid "Soft block" +msgstr "Bloc souple" + +#: ../lib/modules/quota.inc:113 ../lib/modules/quota.inc:401 +#: ../lib/modules/quota.inc:507 ../lib/modules/systemQuotas.inc:124 +msgid "Soft block limit" +msgstr "Limite de bloc souple" + +#: ../lib/modules/quota.inc:114 +msgid "Soft block limit." +msgstr "Limite de bloc souple" + +#: ../lib/modules/quota.inc:636 ../lib/modules/systemQuotas.inc:385 +msgid "Soft inode" +msgstr "Inode souple" + +#: ../lib/modules/quota.inc:136 +msgid "Soft inode (files) limit." +msgstr "Limite souple d'inodes (fichiers)." + +#: ../lib/modules/quota.inc:135 ../lib/modules/quota.inc:405 +#: ../lib/modules/quota.inc:509 ../lib/modules/systemQuotas.inc:128 +msgid "Soft inode limit" +msgstr "Limite d'inode souple" + +#: ../lib/modules/imapAccess.inc:98 +msgid "" +"Some IMAP servers store mailboxes with a prefix (e.g. \"user\" for Cyrus " +"which results in \"user.username\")." +msgstr "" +"Certains serveurs IMAP nomment les boîtes de messagerie avec un préfixe " +"( ex : \"user\" dans Cyrus, ce qui donne \"user.nom_d_utilisateur\")." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1019 +#, php-format +msgid "Some attributes (%s) were modified and are highlighted below." +msgstr "Des attributs (%s) ont étés modifiés et sont surlignés ci-dessous." + +#: ../lib/modules.inc:876 +msgid "Some required information is missing" +msgstr "Des informations obligatoires sont manquantes" + +#: ../templates/help.php:123 +#, php-format +msgid "" +"Sorry this help id ({bold}%s{endbold}) is not available for this module " +"({bold}%s{endbold})." +msgstr "" +"Désolé, le numéro d'aide: ({bold}%s{endbold}) n'est pas disponible pour ce " +"module ({bold}%s{endbold})" + +#: ../templates/help.php:136 +#, php-format +msgid "Sorry this help number ({bold}%s{endbold}) is not available." +msgstr "Désolé, ce numéro d'aide ({bold}%s{endbold}) n'existe pas." + +#: ../lib/modules/sambaSamAccount.inc:326 +#: ../lib/modules/sambaSamAccount.inc:1277 +msgid "Special user" +msgstr "Utilisateurs Spécial" + +#: ../lib/modules/zarafaDynamicGroup.inc:92 +#: ../lib/modules/zarafaAddressList.inc:80 +msgid "" +"Specifies a filter that matches the members (e.g. \"(mail=*@zarafa.nl)\")." +msgstr "" +"Définit un filtre pour retrouver les membres ( ex : \"(mail=*@zarafa.nl)\")." + +#: ../lib/modules/groupOfNames.inc:119 +msgid "Specifies how members and owners are displayed." +msgstr "Définit l'affichage des membres et des propriétaires." + +#: ../lib/modules/organizationalRole.inc:107 +msgid "Specifies how members are displayed." +msgstr "Définit la façon d'afficher les membres." + +#: ../help/help.inc:86 +msgid "" +"Specifies if LAM should automatically follow referrals. Activate if you use " +"referrals in your LDAP directory." +msgstr "" +"Définit si LAM doit suivre les referrals. Activer cette option si vous " +"utilisez les referrals dans LDAP." + +#: ../help/help.inc:260 +msgid "" +"Specifies if password mails may be sent to mail addresses other than the " +"user's LDAP mail address." +msgstr "" +"Définit si le mot de passe peut être envoyé par mail à une adresse autre que " +"celle qui est renseignée dans LDAP." + +#: ../help/help.inc:256 +msgid "Specifies if the mail should be sent as text or HTML." +msgstr "Définit si l'mail doit être envoyé au format texte ou HTML." + +#: ../help/help.inc:167 +msgid "" +"Specifies if the password must not contain 3 or more characters of the user/" +"first/last name." +msgstr "" +"Définit si le mot de passe ne doit pas contenir plus de 3 caractères du " +"login du prénom ou du nom." + +#: ../help/help.inc:165 +msgid "Specifies if the password must not contain the user name." +msgstr "Définit si le mot de passe ne doit pas contenir le nom de famille." + +#: ../lib/modules/asteriskAccount.inc:224 +msgid "Specifies if the user can call forward." +msgstr "Définit si l'utilisateur peut faire un renvoi d'appel." + +#: ../lib/modules/zarafaGroup.inc:82 +msgid "Specifies if this group has security possibilities." +msgstr "Définit si ce groupe a des permissions de sécurité." + +#: ../lib/modules/zarafaServer.inc:81 +msgid "" +"Specifies if this server contains the public store. This may be changed only " +"for new entries." +msgstr "" +"Définit si ce serveur héberge le magasin public. Ne peut être défini qu'a la " +"création." + +#: ../lib/modules/dhcp_settings.inc:202 +msgid "Specifies if unknown clients are allowed." +msgstr "Définit si les utilisateurs inconnus sont autorisés." + +#: ../lib/modules/ppolicy.inc:133 +msgid "Specifies if users are allowed to change their own passwords or not." +msgstr "" +"Indique si les utilisateurs sont autorisés ou non a modifier leur mot de " +"passe." + +#: ../lib/modules/zarafaDynamicGroup.inc:88 +#: ../lib/modules/zarafaAddressList.inc:76 +msgid "" +"Specifies the LDAP base where to search for members (e.g. \"ou=zarafa," +"dc=company,dc=com\")." +msgstr "" +"Définit la base LDAP à partir de laquelle rechercher les membres ( ex : " +"\"ou=zarafa,dc=compangnie,dc=com\")." + +#: ../lib/modules/customFields.inc:161 +msgid "Specifies the allowed file extension. This is checked at upload time." +msgstr "" +"Définit les extensions de fichier autorisées. Ceci est vérifié au moment du " +"chargement." + +#: ../lib/modules/zarafaContact.inc:96 ../lib/modules/zarafaGroup.inc:98 +#: ../lib/modules/zarafaUser.inc:145 +msgid "" +"Specifies the attribute that should be used to reference the entries. If you " +"would like to reference also groups then this must be set to \"dn\"." +msgstr "" +"Définit l'attribut a utiliser pour indiquer référencer entrée. Si vous " +"souhaitez également référencer des groupes, indiquez \"dn\" ici." + +#: ../lib/modules/zarafaUser.inc:121 +msgid "Specifies the capacity of this resource." +msgstr "Définit la capacité de cette ressource." + +#: ../lib/modules/kolabSharedFolder.inc:163 +msgid "Specifies the folder type (e.g. shared mail folder)." +msgstr "Décrit le type de dossier (par ex dossier de mail partagé)." + +#: ../lib/modules/customFields.inc:157 +msgid "Specifies the maximum allowed file size in bytes." +msgstr "Définit maximale autorisée en bytes pour les fichiers." + +#: ../lib/modules/mitKerberos.inc:137 ../lib/modules/heimdalKerberos.inc:111 +msgid "Specifies the maximum lifetime of a ticket in days." +msgstr "Définit la durée de vie maximum d'un ticket en jours." + +#: ../lib/modules/ppolicy.inc:117 +msgid "" +"Specifies the maximum number of seconds before a password is due to expire " +"that expiration warning messages will be returned to a user." +msgstr "" +"Définit le délai en secondes avant expiration du mot de passe et un message " +"d'alerte sera envoyé à l'utilisateur." + +#: ../lib/modules/freeRadius.inc:109 +msgid "" +"Specifies the maximum number of seconds that a connection can be idle before " +"the session is terminated." +msgstr "" +"Définit le délai maximum d'inactivité ( en secondes ) avant de clore une " +"session." + +#: ../lib/modules/mitKerberos.inc:133 ../lib/modules/heimdalKerberos.inc:115 +msgid "Specifies the maximum renewable lifetime of a ticket in days." +msgstr "Définit la durée de renouvellement maximum d'un ticket en jours." + +#: ../lib/modules/ppolicy.inc:121 +msgid "" +"Specifies the minimum number of characters that will be accepted in a " +"password." +msgstr "" +"Définit le nombre minimum de caractère que doit comporter un mot de passe." + +#: ../help/help.inc:163 +msgid "Specifies the number of above password rules that must be fulfilled." +msgstr "" +"Définit le nombre de règle de mot de passe ci-dessus qui doivent être " +"remplies." + +#: ../lib/modules/ppolicy.inc:109 +msgid "" +"Specifies the number of consecutive failed login attempts after which the " +"password may not be used to login." +msgstr "" +"Définit le nombre de tentatives consécutives de connexions ratées avant " +"blocage du compte." + +#: ../lib/modules/ppolicy.inc:93 +msgid "" +"Specifies the number of previously used passwords which should be saved in " +"the password history. New passwords can only be set if they are not in the " +"password history." +msgstr "" +"Définit le nombre de mot de passe a conserver dans l'historique. Un nouveau " +"mot de passe ne sera accepté que s'il n'est pas présent dans l'historique." + +#: ../lib/modules/ppolicy.inc:113 +msgid "" +"Specifies the number of seconds after which old consecutive failed login " +"attempts are purged from the failure counter, even though no successful " +"authentication has occurred." +msgstr "" +"Définit la durée en secondes après laquelle le compte est débloqué ( suite à " +"un trop grand nombre de tentatives de connexions ratées )." + +#: ../lib/modules/ppolicy.inc:105 +msgid "" +"Specifies the number of seconds during which the password cannot be used to " +"login due to too many consecutive failed bind attempts." +msgstr "" +"Définit la durée en secondes, pendant laquelle le mot de passe sera bloqué, " +"suite à un trop grand nombre de tentatives d'authentification." + +#: ../lib/modules/eduPerson.inc:93 ../lib/modules/eduPerson.inc:97 +msgid "" +"Specifies the person's affiliation within a particular security domain in " +"broad categories such as student, faculty, staff, alum, etc." +msgstr "" +"Définit l'affectation d'un utilisateur à un domaine de sécurité particulier, " +"dans une catégorie générale de type Etudiant, Université, Equipe technique, " +"etc." + +#: ../lib/modules/eduPerson.inc:89 +msgid "" +"Specifies the person's primary relationship to the institution in broad " +"categories such as student, faculty, staff, alum, etc." +msgstr "" +"Définit la relation principale de l'utilisateur avec l'institution dans des " +"catégories générales de type Etudiant, Université, Equipe technique, etc." + +#: ../lib/modules/eduPerson.inc:106 ../lib/modules/eduPerson.inc:110 +msgid "" +"Specifies the person's relationships to the institution in broad categories " +"such as student, faculty, staff, alum, etc." +msgstr "" +"Définit les relations des personnes avec l'institution dans des catégories " +"générales de type Etudiant, Université, Equipe technique, etc." + +#: ../lib/modules/bindDLZ.inc:173 ../lib/modules/bindDLZ.inc:177 +msgid "" +"Specifies the priority of this entry (lower value means more preferred)." +msgstr "" +"Définit la priorité de cette entrée (les valeurs les plus faibles sont " +"prioritaires)." + +#: ../lib/modules/pykotaGroup.inc:126 ../lib/modules/pykotaUser.inc:129 +msgid "" +"Specifies the type of limit for printing if any. Please note that in " +"contrast to \"Free printing\" the option \"No quota\" includes accounting." +msgstr "" +"Définit le type de limite d'impression éventuelle. Veuillez noter que " +"contrairement à \"Impression libre\" l'option \"Sans quota\" intégre la " +"comptabilisation." + +#: ../lib/modules/bindDLZ.inc:189 ../lib/modules/bindDLZ.inc:193 +msgid "Specifies the used port for this entry." +msgstr "Définit le port utilisé pour cette entrée." + +#: ../lib/modules/asteriskAccount.inc:176 +msgid "Specifies the user's pickup group." +msgstr "Specifies the user's pickup group." + +#: ../lib/modules/bindDLZ.inc:181 ../lib/modules/bindDLZ.inc:185 +msgid "Specifies the weight of this entry (relative value)." +msgstr "Définit le poids de cette entrée (valeur relative)." + +#: ../lib/modules/zarafaUser.inc:109 +msgid "" +"Specifies whether the user is an admin. System administrators may " +"additionally create, modify and delete companies." +msgstr "" +"Définit si l'utilisateur est un admin. Les Administrateurs système peuvent " +"également créer, modifier et supprimer des entreprises." + +#: ../lib/modules/ppolicy.inc:137 +msgid "" +"Specifies whether the user's existing password must be sent along with their " +"new password when changing a password. Attention, LAM does not support " +"password changes which require the old password." +msgstr "" +"Définit si le mot de passe actuel de l'utilisateur doit également être " +"envoyé avec le nouveau lors d'un changement de mot de passe. Attention, LAM " +"ne gère pas les changement de mot de passe qui vérifient l'ancien mot de " +"passe." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1460 +msgid "Specify attributes and values" +msgstr "Spécifier les attributs et valeurs" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +msgid "Standard LDAP search filter. Example: (&(sn=Smith)(givenName=David))" +msgstr "" +"Filtre de recherche LDAP standard. Exemple : (&(sn=Smith)(givenName=David))" + +#: ../templates/serverInfo.php:193 ../templates/serverInfo.php:199 +msgid "Start time" +msgstr "Date de début" + +#: ../lib/modules/windowsUser.inc:168 ../lib/modules/windowsUser.inc:338 +#: ../lib/modules/windowsUser.inc:512 ../lib/modules/windowsUser.inc:545 +#: ../lib/modules/windowsUser.inc:712 ../lib/modules/windowsUser.inc:1600 +#: ../lib/modules/windowsUser.inc:1733 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:190 ../lib/modules/inetOrgPerson.inc:515 +#: ../lib/modules/inetOrgPerson.inc:557 ../lib/modules/inetOrgPerson.inc:780 +#: ../lib/modules/inetOrgPerson.inc:784 ../lib/modules/inetOrgPerson.inc:1261 +#: ../lib/modules/inetOrgPerson.inc:1264 ../lib/modules/inetOrgPerson.inc:1910 +#: ../lib/modules/inetOrgPerson.inc:2599 ../lib/modules/inetOrgPerson.inc:3519 +#: ../lib/modules/inetOrgPerson.inc:3579 +msgid "State" +msgstr "Pays" + +#: ../templates/pdfedit/pdfpage.php:538 ../templates/pdfedit/pdfpage.php:540 +msgid "Static text" +msgstr "Texte Static" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1455 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1467 +#, php-format +msgid "Step %s of %s" +msgstr "Pas de %s sur %s" + +#: ../lib/modules/windowsUser.inc:280 ../lib/modules/inetOrgPerson.inc:308 +msgid "Steve" +msgstr "Steve" + +#: ../lib/modules/sambaSamAccount.inc:421 ../lib/modules/posixAccount.inc:350 +#: ../lib/modules/windowsUser.inc:292 ../lib/modules/windowsUser.inc:298 +#: ../lib/modules/pykotaUser.inc:201 ../lib/modules/inetOrgPerson.inc:2037 +#: ../lib/modules/asteriskVoicemail.inc:174 +msgid "Steve Miller" +msgstr "Steve Miller" + +#: ../lib/modules/posixAccount.inc:358 +msgid "Steve Miller,Room 2.14,123-123-1234,123-123-1234" +msgstr "Steve Miller,Chambre 2.14,123-123-1234,123-123-1234" + +#: ../lib/modules/eduPerson.inc:190 +msgid "Steve, Stevo" +msgstr "Steve, Stevo" + +#: ../lib/modules/imapAccess.inc:91 +msgid "" +"Storing the password in your server profile is also possible but not " +"recommended." +msgstr "" +"Il est possible d'enregistrer le mot de passe dans votre profil serveur mais " +"ceci n'est PAS recommandé." + +#: ../lib/modules/windowsUser.inc:172 ../lib/modules/windowsUser.inc:314 +#: ../lib/modules/windowsUser.inc:513 ../lib/modules/windowsUser.inc:544 +#: ../lib/modules/windowsUser.inc:708 ../lib/modules/windowsUser.inc:1601 +#: ../lib/modules/windowsUser.inc:1732 ../lib/modules/inetOrgPerson.inc:81 +#: ../lib/modules/inetOrgPerson.inc:158 ../lib/modules/inetOrgPerson.inc:178 +#: ../lib/modules/inetOrgPerson.inc:377 ../lib/modules/inetOrgPerson.inc:545 +#: ../lib/modules/inetOrgPerson.inc:664 ../lib/modules/inetOrgPerson.inc:668 +#: ../lib/modules/inetOrgPerson.inc:1225 ../lib/modules/inetOrgPerson.inc:1228 +#: ../lib/modules/inetOrgPerson.inc:1895 ../lib/modules/inetOrgPerson.inc:2522 +#: ../lib/modules/inetOrgPerson.inc:3511 ../lib/modules/inetOrgPerson.inc:3576 +msgid "Street" +msgstr "Rue" + +#: ../templates/pdfedit/pdfpage.php:449 ../templates/pdfedit/pdfmain.php:353 +msgid "Structure name" +msgstr "Nom de Structure" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:136 +#: ../templates/3rdParty/pla/htdocs/export_form.php:33 +msgid "Sub (entire subtree)" +msgstr "Sub (tout le sous arbre)" + +#: ../lib/types/netgroup.inc:93 ../lib/modules/nisnetgroup.inc:91 +#: ../lib/modules/nisnetgroup.inc:126 ../lib/modules/nisnetgroup.inc:141 +#: ../lib/modules/nisnetgroup.inc:209 ../lib/modules/nisnetgroup.inc:383 +#: ../lib/modules/nisnetgroup.inc:581 +msgid "Subgroups" +msgstr "Sous-groupes" + +#: ../templates/config/confmain.php:349 ../lib/modules/selfRegistration.inc:94 +#: ../lib/modules/selfRegistration.inc:231 +#: ../lib/modules/passwordSelfReset.inc:120 +#: ../lib/modules/passwordSelfReset.inc:539 +#: ../lib/modules/passwordSelfReset.inc:559 ../help/help.inc:248 +msgid "Subject" +msgstr "Sujet" + +#: ../lib/types/dhcp.inc:94 ../lib/modules/dhcp_settings.inc:149 +#: ../lib/modules/dhcp_settings.inc:207 ../lib/modules/dhcp_settings.inc:222 +#: ../lib/modules/dhcp_settings.inc:242 ../lib/modules/dhcp_settings.inc:561 +#: ../lib/modules/dhcp_settings.inc:685 +msgid "Subnet" +msgstr "Sous-réseau" + +#: ../lib/modules/dhcp_settings.inc:189 ../lib/modules/dhcp_settings.inc:215 +#: ../lib/modules/dhcp_settings.inc:233 ../lib/modules/dhcp_settings.inc:300 +#: ../lib/modules/dhcp_settings.inc:606 ../lib/modules/dhcp_settings.inc:681 +msgid "Subnet mask" +msgstr "Masque de sous-réseau" + +#: ../templates/schema/schema.php:176 +msgid "Substring Rule" +msgstr "Règle suffixe" + +#: ../templates/3rdParty/pla/htdocs/import.php:63 +#: ../templates/3rdParty/pla/htdocs/copy.php:56 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:68 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:85 +msgid "Success" +msgstr "Succès" + +#: ../templates/3rdParty/pla/htdocs/delete.php:32 +#, php-format +msgid "Successfully deleted DN %s" +msgstr "DN %s supprimé avec succès." + +#: ../lib/modules/sudoRole.inc:48 +msgid "Sudo role" +msgstr "Rôle sudo" + +#: ../lib/types/sudo.inc:159 +#, php-format +msgid "Sudo role count: %s" +msgstr "Nombre de rôles sudo : %s" + +#: ../lib/types/sudo.inc:48 +msgid "Sudo role management" +msgstr "Gestion des rôles sudo" + +#: ../lib/types/sudo.inc:39 +msgid "Sudo roles" +msgstr "Rôles sudo" + +#: ../lib/modules/sudoRole.inc:139 +msgid "Sudo roles with higher order numbers are used if multiple roles match." +msgstr "" +"Les rôles sudo ayant un ordre plus élevé seront utilisées si plusieurs rôles " +"correspondent." + +#: ../lib/modules/nisMailAliasUser.inc:92 +#: ../lib/modules/nisMailAliasUser.inc:362 ../lib/modules.inc:988 +msgid "Suffix" +msgstr "Suffixe" + +#: ../lib/modules/posixGroup.inc:416 ../lib/modules/posixGroup.inc:516 +msgid "Suffix for GID/group name check" +msgstr "Suffixe pour vérification du GID/Nom de groupe" + +#: ../lib/modules/posixAccount.inc:224 ../lib/modules/posixAccount.inc:242 +#: ../lib/modules/posixAccount.inc:489 +msgid "Suffix for UID/user name check" +msgstr "Suffixe pour vérification de l'UID/Nom de groupe" + +#: ../lib/modules/selfRegistration.inc:102 +#: ../lib/modules/selfRegistration.inc:212 +msgid "Suffix for new users" +msgstr "Sufixe pour les nouveaux utilisateurs" + +#: ../lib/modules/sambaSamAccount.inc:1376 +msgid "Sunday" +msgstr "Dimanche" + +#: ../templates/selfService/adminMain.php:602 +msgid "Switch back to default label." +msgstr "Revenir à l'étiquette par défaut." + +#: ../templates/3rdParty/pla/htdocs/compare.php:72 +msgid "Switch entries" +msgstr "Intervertir les entrées" + +#: ../lib/modules/asteriskAccount.inc:96 +#: ../lib/modules/asteriskVoicemail.inc:84 +msgid "Sync Asterisk password with Unix password" +msgstr "Synchroniser les mots de passe Asterisk et Unix" + +#: ../lib/modules/heimdalKerberos.inc:242 +msgid "Sync Heimdal Kerberos password with Unix password" +msgstr "Synchroniser les mots de passe Heimdal Kerberos et Unix" + +#: ../lib/modules/mitKerberos.inc:277 +msgid "Sync MIT Kerberos password with Unix password" +msgstr "Synchroniser les mots de passe MIT Kerberos et Unix" + +#: ../lib/modules/passwordSelfReset.inc:148 +#: ../lib/modules/passwordSelfReset.inc:529 +msgid "Sync Samba 3 password" +msgstr "Synchroniser le mot de passe Samba 3" + +#: ../lib/modules/sambaSamAccount.inc:248 +msgid "Sync Samba LM password with Unix password" +msgstr "Syncroniser les Mots de passe LM Samba avec Unix" + +#: ../lib/modules/sambaSamAccount.inc:247 +msgid "Sync Samba NT password with Unix password" +msgstr "Syncroniser les Mots de passe Samba NT avec Unix" + +#: ../lib/modules/customFields.inc:1111 +msgid "Sync fields with page layout" +msgstr "Synchroniser les champs et la structure de la page" + +#: ../templates/schema/schema.php:181 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:142 +msgid "Syntax" +msgstr "Syntaxe" + +#: ../templates/schema/schema.php:89 +msgid "Syntax OID" +msgstr "Syntaxe OID" + +#: ../templates/schema/schema.php:73 ../templates/schema/schema.php:74 +msgid "Syntaxes" +msgstr "Syntaxes" + +#: ../lib/modules/zarafaUser.inc:602 ../lib/modules/zarafaUser.inc:1259 +msgid "System administrator" +msgstr "Administrateur système" + +#: ../templates/config/mainmanage.php:412 +msgid "System logging" +msgstr "Log système" + +#: ../help/help.inc:60 +msgid "TLS cannot be combined with ldaps://." +msgstr "TLS et ldaps:// sont mutuellement exclusifs." + +#: ../lib/modules/bindDLZ.inc:118 ../lib/modules/bindDLZ.inc:370 +#: ../lib/modules/bindDLZ.inc:375 ../lib/modules/bindDLZ.inc:484 +msgid "TXT record" +msgstr "Eregistrement TXT" + +#: ../lib/modules/bindDLZ.inc:425 ../lib/modules/bindDLZ.inc:435 +#: ../lib/modules/bindDLZ.inc:1569 +msgid "TXT records" +msgstr "Enregistrements TXT" + +#: ../lib/modules/kolabSharedFolder.inc:158 +#: ../lib/modules/kolabSharedFolder.inc:194 +#: ../lib/modules/kolabSharedFolder.inc:240 +#: ../lib/modules/kolabSharedFolder.inc:262 +#: ../lib/modules/kolabSharedFolder.inc:292 +#: ../lib/modules/kolabSharedFolder.inc:560 +msgid "Target IMAP folder" +msgstr "Dossier cible IMAP" + +#: ../lib/modules/kolabUser.inc:245 +msgid "Target of invitation policy is invalid!" +msgstr "Cible de stratégie d'invite incorrecte!" + +#: ../templates/pdfedit/pdfmain.php:317 +#: ../templates/profedit/profilemain.php:284 +msgid "Target server profile" +msgstr "Profil serveur de destination" + +#: ../templates/help.php:89 ../lib/modules.inc:660 +msgid "Technical name" +msgstr "Nom technique" + +#: ../templates/lists/changePassword.php:285 ../lib/types/user.inc:203 +#: ../lib/modules/windowsUser.inc:176 ../lib/modules/windowsUser.inc:362 +#: ../lib/modules/windowsUser.inc:514 ../lib/modules/windowsUser.inc:542 +#: ../lib/modules/windowsUser.inc:601 ../lib/modules/windowsUser.inc:718 +#: ../lib/modules/windowsUser.inc:1602 ../lib/modules/windowsUser.inc:1726 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:157 +#: ../lib/modules/inetOrgPerson.inc:205 ../lib/modules/inetOrgPerson.inc:417 +#: ../lib/modules/inetOrgPerson.inc:572 ../lib/modules/inetOrgPerson.inc:696 +#: ../lib/modules/inetOrgPerson.inc:700 ../lib/modules/inetOrgPerson.inc:1382 +#: ../lib/modules/inetOrgPerson.inc:1385 ../lib/modules/inetOrgPerson.inc:1900 +#: ../lib/modules/inetOrgPerson.inc:2478 ../lib/modules/inetOrgPerson.inc:3529 +#: ../lib/modules/inetOrgPerson.inc:3582 +msgid "Telephone number" +msgstr "Numéro de téléphone" + +#: ../lib/modules/inetOrgPerson.inc:355 +msgid "Temp" +msgstr "Temp" + +#: ../lib/modules/windowsUser.inc:310 ../lib/modules/pykotaUser.inc:228 +#: ../lib/modules/inetOrgPerson.inc:331 +msgid "Temp, contract till December" +msgstr "Temp, contrat jusqu'en Décembre" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +msgid "Template" +msgstr "Modèle" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:520 +msgid "Templates" +msgstr "Modèles" + +#: ../lib/modules/sambaSamAccount.inc:390 +#: ../lib/modules/sambaSamAccount.inc:608 +#: ../lib/modules/sambaSamAccount.inc:1289 +msgid "Terminal server options" +msgstr "Options de Terminal Serveur" + +#: ../lib/tools/tests.inc:44 +msgid "Tests" +msgstr "Tests" + +#: ../templates/config/confmain.php:364 ../lib/modules/selfRegistration.inc:69 +#: ../lib/modules/selfRegistration.inc:238 ../lib/modules/bindDLZ.inc:156 +#: ../lib/modules/bindDLZ.inc:160 ../lib/modules/bindDLZ.inc:370 +#: ../lib/modules/bindDLZ.inc:1238 ../lib/modules/bindDLZ.inc:1572 +#: ../lib/modules/passwordSelfReset.inc:124 +#: ../lib/modules/passwordSelfReset.inc:134 +#: ../lib/modules/passwordSelfReset.inc:543 +#: ../lib/modules/passwordSelfReset.inc:563 ../help/help.inc:250 +msgid "Text" +msgstr "Texte" + +#: ../lib/modules/bindDLZ.inc:1235 +msgid "Text (\"TXT\" records)" +msgstr "Texte (enregistrements \"TXT\")" + +#: ../lib/modules/customFields.inc:2587 +msgid "Text area" +msgstr "Zone de texte" + +#: ../templates/pdfedit/pdfpage.php:617 ../lib/modules/customFields.inc:1885 +msgid "Text field" +msgstr "Champ texte" + +#: ../lib/modules/eduPerson.inc:115 +msgid "" +"The \"NetID\" of the person for the purposes of inter-institutional " +"authentication. It should be represented in the form \"user@scope\" where " +"scope defines a local security domain." +msgstr "" +"Le \"NetID\" de la personne pour les besoins d'authentification croisée. Il " +"devrait être présenté sous la forme \"utilisateur@royaume\" où royaume " +"définit le domaine de sécurité local." + +#: ../lib/modules/dhcp_settings.inc:336 +msgid "The DHCP ranges were changed to fit for the new subnet." +msgstr "" +"Les plages du DHCP ont été modifiées pour correspondre au nouveau sous-" +"réseau." + +#: ../lib/modules/eduPerson.inc:127 +msgid "" +"The DN of the directory entry representing the institution with which the " +"person is associated." +msgstr "" +"Le DN de l'entrée d'annuaire représentant l'institution à laquelle " +"l'utilisateur est associé." + +#: ../lib/modules/eduPerson.inc:131 +msgid "" +"The DN of the directory entry representing the person's primary " +"organisational unit." +msgstr "" +"Le DN de l'entrée d'annuaire représentant l'unité organisationelle primaire " +"de la personne." + +#: ../lib/modules/eduPerson.inc:135 ../lib/modules/eduPerson.inc:139 +msgid "" +"The DNs of the directory entries representing the person's organisational " +"units." +msgstr "" +"Les DNs des entrées d'annuaire représentant les unités organisationnelles de " +"la personne." + +#: ../lib/modules/posixGroup.inc:513 +msgid "" +"The ID of this group was changed. You can update all user and host entries " +"to the new group ID." +msgstr "" +"L'ID de ce groupe a été modifié. Vous pouvez affecter au nouveau groupe tous " +"les utilisateurs et les hôtes membres de l'ancien groupe." + +#: ../lib/modules/imapAccess.inc:179 +msgid "The IMAP admin password is empty." +msgstr "Le mot de passe de l'administrateur IMAP est vide." + +#: ../templates/config/mainmanage.php:100 +#: ../templates/config/mainmanage.php:122 ../lib/modules/bindDLZ.inc:488 +#: ../lib/modules/bindDLZ.inc:489 +#, php-format +msgid "The IP address %s is invalid!" +msgstr "L'adresse IP %s est incorrecte !" + +#: ../lib/modules/fixed_ip.inc:498 +msgid "The IP address does not match the subnet." +msgstr "L'adresse IP ne correspond pas au sous-réseau." + +#: ../lib/modules/fixed_ip.inc:501 +msgid "The IP address is already in use." +msgstr "L'adresse IP est déjà affectée." + +#: ../lib/modules/ipHost.inc:115 ../lib/modules/ipHost.inc:116 +#: ../lib/modules/asteriskAccount.inc:574 +#: ../lib/modules/asteriskAccount.inc:575 ../lib/modules/ppolicyUser.inc:96 +#: ../lib/modules/range.inc:418 ../lib/modules/range.inc:435 +#: ../lib/modules/freeRadius.inc:249 ../lib/modules/freeRadius.inc:250 +#: ../lib/modules/fixed_ip.inc:493 +msgid "The IP address is invalid." +msgstr "L'adresse IP n'est pas valide." + +#: ../lib/modules/fixed_ip.inc:107 +msgid "The IP address of the PC." +msgstr "L'adresse IP de la machine." + +#: ../lib/modules/dhcp_settings.inc:162 +msgid "" +"The IP addresses of the DNS servers. Multiple addresses are separated by \"," +"\". Example: 192.168.0.10, 192.168.0.11" +msgstr "" +"Les adresses IP des serveurs DNS.Les adresses multiples sont séparées par " +"des \",\". Exemple : 192.168.0.10, 192.168.0.11" + +#: ../lib/modules/dhcp_settings.inc:170 +msgid "" +"The IP addresses of the Netbios name servers (e.g. \"123.123.123.123, " +"123.123.123.124\")." +msgstr "" +"Les dresses IP des serveurs de nom Netbios ( ex : \"192.168.0.20, " +"192.168.0.21\" )." + +#: ../lib/modules/range.inc:422 ../lib/modules/range.inc:437 +msgid "The IP does not match the subnet." +msgstr "L'IP ne correspond pas au sous-réseau." + +#: ../lib/modules/mitKerberos.inc:153 ../lib/modules/heimdalKerberos.inc:158 +msgid "The Kerberos realm for this account." +msgstr "Le royaume Kerberos de ce compte." + +#: ../lib/modules/heimdalKerberos.inc:99 +msgid "The Kerberos realm of this user." +msgstr "Le royaume Kerberos de cet utilisateur." + +#: ../lib/modules/fixed_ip.inc:103 +msgid "The MAC address of the PC. Example: 11:22:33:44:55:aa" +msgstr "Adresse MAC de la machine. Exemple : 11:22:33:44:55:aa" + +#: ../lib/modules/dhcp_settings.inc:328 ../lib/modules/dhcp_settings.inc:329 +msgid "The Netbios server is invalid." +msgstr "Le serveur Netbios n'est pas valide." + +#: ../lib/modules/fixed_ip.inc:456 +msgid "The PC name may not be longer than 20 characters." +msgstr "Le nom de l'hôte ne doit pas dépasser 20 caractères." + +#: ../lib/modules/fixed_ip.inc:465 +msgid "The PC name may only contain A-Z, a-z and 0-9." +msgstr "Le nom d'hôte ne peut contenir que des A-Z,a-z et 0-9." + +#: ../lib/modules/fixed_ip.inc:459 +msgid "The PC name needs to be at least 2 characters long." +msgstr "Le nom de machine doit comporter au minimum 2 caratères." + +#: ../help/help.inc:205 +msgid "" +"The PDF structure defines what information is exported as PDF file and how " +"the pages are structured. You can manage the PDF structures in the PDF " +"editor (under \"Tools\")." +msgstr "" +"La structure PDF définit les informations qui seront exportées dans un " +"fichier PDF et la mise en page. Vous pouvez gérer la structure PDF dans " +"l'éditeur ( dans le menu \"Outils\" )." + +#: ../templates/3rdParty/pla/htdocs/create.php:44 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:38 +#: ../lib/modules/selfRegistration.inc:571 +msgid "The RDN field is empty." +msgstr "Le champ du RDN est vide !" + +#: ../lib/modules/freeRadius.inc:93 +msgid "The Radius realm of this account." +msgstr "Le royaume Radius de ce compte." + +#: ../lib/modules/sambaDomain.inc:82 +msgid "The SID of your Samba server. Get it with \"net getlocalsid\"." +msgstr "Le SID de votre serveur Samba. Récuperez le avec \"net getlocalsid\"." + +#: ../templates/selfService/selfServiceLogin.php:141 +#: ../templates/selfService/selfServiceMain.php:168 +msgid "The TLS encryption could not be started." +msgstr "Le chiffrement TLS n'a pas pu démarrer." + +#: ../lib/modules/posixAccount.inc:99 +msgid "" +"The UID ranges for users and hosts overlap! This is a problem because LAM " +"uses the highest UID in use + 1 for new accounts. Please set the minimum UID " +"to equal values or use independent ranges." +msgstr "" +"L'intervale UID pour Utilisateurs et Machines dépasse! LAM utilise le plus " +"haut UID en utilisation +1 pour les nouveaux comptes. Mettre le Minimum UID " +"à une valeur égale ou utilise un intervale independant." + +#: ../lib/modules/zarafaServer.inc:77 +msgid "The Unix socket or named pipe to the server." +msgstr "Socket unix ou tube nommé vers le serveur." + +#: ../lib/modules/asteriskVoicemail.inc:215 +#: ../lib/modules/asteriskVoicemail.inc:216 +msgid "The account context is invalid." +msgstr "Le contexte du compte n'est pas valide." + +#: ../lib/modules/asteriskAccount.inc:112 +#: ../lib/modules/asteriskExtension.inc:99 +#: ../lib/modules/asteriskVoicemail.inc:92 +msgid "The account context stores information about the dial plan." +msgstr "" +"Le contexte de compte contient les informations sur le plan de numérotation." + +#: ../lib/modules/asteriskAccount.inc:566 +#: ../lib/modules/asteriskAccount.inc:567 +msgid "The account type is invalid." +msgstr "Le type de compte n'est pas valide." + +#: ../lib/modules/freeRadius.inc:105 +msgid "The account will be locked after this date." +msgstr "Le compte sera bloqué à partir de cette date." + +#: ../help/help.inc:191 +msgid "The account will be saved under this LDAP suffix." +msgstr "Le compte sera sauvegardé sous ce suffixe LDAP." + +#: ../lib/modules/bindDLZ.inc:490 ../lib/modules/bindDLZ.inc:491 +#, php-format +msgid "The alias name \"%s\" is invalid." +msgstr "L'alias de nom \"%s\" n'est pas valide." + +#: ../lib/modules/bindDLZ.inc:129 +msgid "The alias name for this entry." +msgstr "Nom de l'alias pour cette entrée." + +#: ../lib/modules/passwordSelfReset.inc:230 +#, php-format +msgid "The answer needs to be at least %s characters long." +msgstr "La réponse doit comporter au moins %s caractères." + +#: ../lib/modules/passwordSelfReset.inc:1211 +msgid "The answer to the security question is wrong." +msgstr "Mauvaise réponse à la question de sécurité." + +#: ../templates/tests/schemaTest.php:128 +#, php-format +msgid "" +"The attribute %s is not supported for the object class %s by your LDAP " +"server." +msgstr "" +"L'attribut %s n'est pas supporté par l'objectClass %s de votre serveur LDAP." + +#: ../templates/3rdParty/pla/lib/import_functions.php:531 +#, php-format +msgid "The attribute to modify doesn't match the one specified by %s." +msgstr "Les attributs a modifier ne correspondent pas à ceux spécifiés par %s." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:31 +msgid "The attribute value does not exist" +msgstr "La valeur de l'attribut n'existe pas" + +#: ../lib/modules/asteriskAccount.inc:556 +#: ../lib/modules/asteriskAccount.inc:558 +msgid "The caller ID format is invalid." +msgstr "Le format de l'ID de l'appelant n'est pas valide." + +#: ../lib/modules/puppetClient.inc:186 ../lib/modules/puppetClient.inc:187 +msgid "The class names may only contain ASCII characters." +msgstr "Le nom de classe ne peut contenir que des caractères ASCII." + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:404 +msgid "The config file is not writable." +msgstr "Le fichier de configuration n'est pas modifiable." + +#: ../templates/3rdParty/pla/htdocs/create.php:29 +#: ../templates/3rdParty/pla/htdocs/copy.php:34 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:23 +#, php-format +msgid "The container you specified (%s) does not exist. Please try again." +msgstr "Le container spécifié (%s) n'existe pas. essayez de nouveau." + +#: ../lib/modules/dhcp_settings.inc:326 ../lib/modules/dhcp_settings.inc:327 +msgid "The default gateway is invalid." +msgstr "La passerelle par défaut n'est pas valide." + +#: ../lib/modules/qmailUser.inc:260 +msgid "The default interpretation of .qmail files." +msgstr "La traduction par défaut des fichiers .qmail." + +#: ../templates/3rdParty/pla/htdocs/copy.php:31 +#, php-format +msgid "The destination entry (%s) already exists." +msgstr "L'entrée de destination (%s) existe déjà." + +#: ../lib/modules/dhcp_settings.inc:338 ../lib/modules/dhcp_settings.inc:339 +msgid "" +"The domain name includes invalid characters. Valid characters are A-Z, a-z, " +"0-9, \".\", \"_\",\"-\"." +msgstr "" +"Le nom de domaine contient des caractères non-valides. Les caractères " +"autorisés sont a-z, A-Z, 0-9 et -." + +#: ../lib/modules/dhcp_settings.inc:146 +msgid "The domain name of the subnet." +msgstr "Domaine du sous-réseau." + +#: ../lib/modules/asteriskVoicemail.inc:220 +#: ../lib/modules/asteriskVoicemail.inc:221 +msgid "The email address is invalid." +msgstr "L'adresse mail n'est pas valide." + +#: ../lib/modules/range.inc:96 +msgid "The ending IP address of the range." +msgstr "Dernière adresse IP de la plage." + +#: ../lib/modules/dhcp_settings.inc:330 +msgid "The entered Netbios node type does not exist." +msgstr "Le type de noeud netbios indiqué n'existe pas." + +#: ../templates/3rdParty/pla/htdocs/update.php:27 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:22 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:21 +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:24 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:23 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:20 +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:24 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:20 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:27 +#, php-format +msgid "The entry (%s) does not exist." +msgstr "L'entrée (%s) n'existe pas." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:27 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:28 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:34 +msgid "The entry does not exist and will be ignored" +msgstr "L'entrée sera ignorée car elle n'existe pas" + +#: ../lib/modules/puppetClient.inc:184 ../lib/modules/puppetClient.inc:185 +msgid "The environment name may only contain ASCII characters." +msgstr "Le nom d'environnement ne peut contenir que des caractères ASCII." + +#: ../lib/modules/shadowAccount.inc:67 +msgid "The expiration date is invalid." +msgstr "La date d'expiration est incorrecte." + +#: ../lib/modules/freeRadius.inc:257 ../lib/modules/freeRadius.inc:258 +msgid "The expiration date must be in format DD.MM.YYYY HH:MM." +msgstr "La date d'expiration du compte doit être au format: JJ.MM.AAAA HH:MM." + +#: ../lib/modules/bindDLZ.inc:512 ../lib/modules/bindDLZ.inc:513 +#, php-format +msgid "The expiration time \"%s\" must be a number." +msgstr "La durée de vie \"%s\" doit être un nombre." + +#: ../lib/modules/asteriskAccount.inc:560 +#: ../lib/modules/asteriskAccount.inc:561 +msgid "The extension context is invalid." +msgstr "Le contexte des extension n'est pas valide." + +#: ../lib/pdfstruct.inc:262 +msgid "The file must not exeed 2000x300px." +msgstr "Le fichier ne doit pas dépasser 2000x300px." + +#: ../lib/pdfstruct.inc:249 +msgid "The file name must end with \".png\" or \".jpg\"." +msgstr "Le fichier doit avoir l'extension \".png\" ou \".jpg\"." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "The file you chose is either empty or does not exist." +msgstr "Le fichier sélectionné est vide ou n'existe pas." + +#: ../templates/3rdParty/pla/lib/Template.php:412 +#: ../templates/3rdParty/pla/lib/Template.php:499 +msgid "" +"The file you selected was only partially uploaded, likley due to a network " +"error." +msgstr "" +"Chargement partiel du fichier, certainement causé par une problème réseau." + +#: ../templates/3rdParty/pla/lib/Template.php:402 +#: ../templates/3rdParty/pla/lib/Template.php:407 +#: ../templates/3rdParty/pla/lib/Template.php:489 +#: ../templates/3rdParty/pla/lib/Template.php:494 +msgid "" +"The file you uploaded is too large. Please check php.ini, upload_max_size " +"setting" +msgstr "" +"Le fichier chargé est trop volumineux. Vérifiez le paramètre upload_max_size " +"de php.ini" + +#: ../lib/modules/kolabSharedFolder.inc:159 +msgid "" +"The folder on the server where the shared folder is located (e.g. user/" +"myfolder@example.com)." +msgstr "" +"Les dossier de destination du dossiers partagé sur le serveur (ex " +"ustilisateur/mondossier@example.com)." + +#: ../lib/modules/kolabSharedFolder.inc:117 +msgid "The folder's email address." +msgstr "Adresse mail du dossier." + +#: ../templates/initsuff.php:180 +msgid "" +"The following suffixes are missing in LDAP. LAM can create them for you." +msgstr "" +"Les suffixes suivants sont absent du LDAP. LAM peut les créer pour vous." + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:120 +msgid "The format of the logon hours field is invalid!" +msgstr "Le format des heures de connexion est incorrecte !" + +#: ../lib/modules/customScripts.inc:123 +msgid "The format of this custom script setting is invalid." +msgstr "Le format de ce script personnalisé n'est pas correcte." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +msgid "The format to show the query results" +msgstr "Format d'affichage des résultats de la requête" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "" +"The full DN of the new entry to be created when copying the source entry" +msgstr "" +"Le DN complet de la nouvelle entrée qui sera créé par copie de la source" + +#: ../lib/modules/asteriskVoicemail.inc:218 +#: ../lib/modules/asteriskVoicemail.inc:219 +msgid "The full name is invalid." +msgstr "Le nom complet n'est pas valide." + +#: ../templates/login.php:583 +msgid "The given user name matches multiple LDAP entries." +msgstr "Le nom d'utilisateur existe déjà dans LDAP." + +#: ../lib/modules/ppolicy.inc:101 +msgid "" +"The grace authentication limit specifies the number of times that an expired " +"password may be used to login." +msgstr "" +"La période de grâce définit le temps pendant lequel on peut continuer a " +"utiliser un mot de passe expirée." + +#: ../lib/modules/windowsGroup.inc:147 +msgid "The group is managed by this contact person." +msgstr "Le group est administré par cette personne." + +#: ../lib/modules/freeRadius.inc:97 ../lib/modules/freeRadius.inc:101 +msgid "The group names for this account." +msgstr "Les groupes d'appartenance de ce compte." + +#: ../lib/modules/windowsUser.inc:221 +msgid "The groups for this account. You can insert a group name or DN." +msgstr "" +"Les groupes de ce compte. Vous pouvez saisir un nom de groupe ou un DN." + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "The headline for a new section must contain at least one character." +msgstr "" +"Le début de ligne pour une nouvelle section doit contenir au moins un " +"caractère." + +#: ../lib/modules/sambaSamAccount.inc:303 ../lib/modules/windowsUser.inc:245 +msgid "The home directory will be connected under this drive letter." +msgstr "" +"Le répertoire HOME de l'utilisateur sera connecté sur cette lettre de lecteur" + +#: ../lib/modules/windowsHost.inc:87 +msgid "The host is managed by this contact person." +msgstr "L'hôte est administré par cette personne." + +#: ../lib/modules/bindDLZ.inc:497 ../lib/modules/bindDLZ.inc:498 +#: ../lib/modules/bindDLZ.inc:524 ../lib/modules/bindDLZ.inc:525 +#, php-format +msgid "The host name \"%s\" is invalid." +msgstr "Le nom d'hôte \"%s\" n'est pas valide." + +#: ../lib/modules/bindDLZ.inc:82 ../lib/modules/bindDLZ.inc:141 +#: ../lib/modules/bindDLZ.inc:145 +msgid "The host name for this entry." +msgstr "Le nom d'hôte pour cette entrée." + +#: ../lib/modules/asteriskAccount.inc:563 +#: ../lib/modules/asteriskAccount.inc:564 ../lib/modules/bindDLZ.inc:470 +#: ../lib/modules/bindDLZ.inc:471 +msgid "The host name is invalid." +msgstr "Le nom d'hôte n'est pas valide." + +#: ../lib/modules/windowsUser.inc:133 ../lib/modules/inetOrgPerson.inc:837 +msgid "The initials of the user's first names." +msgstr "Les initiales de l'utilisateur." + +#: ../lib/modules/ddns.inc:94 +msgid "" +"The key enables the DHCP server to perform DNS updates. The key is generated " +"with \"genDDNSkey\"." +msgstr "" +"La clé autorise le serveur DHCP a effectuer des mises à jour DNS. La clé est " +"générée avec \"genDDNSkey\"" + +#: ../lib/modules/dhcp_settings.inc:324 ../lib/modules/dhcp_settings.inc:325 +msgid "The lease time is invalid." +msgstr "La durée du bail n'est pas valide." + +#: ../lib/modules/dhcp_settings.inc:154 +msgid "" +"The lease time specifies after how many seconds the client should request a " +"new IP address." +msgstr "" +"Le bail définit la durée au-delà de laquelle le client devra renouveler sa " +"demande d'adresse IP." + +#: ../lib/modules/sudoRole.inc:83 ../lib/modules/sudoRole.inc:109 +msgid "The list of commands which may be run." +msgstr "Liste des commandes autorisées." + +#: ../lib/modules/puppetClient.inc:93 ../lib/modules/puppetClient.inc:97 +msgid "The list of configured Puppet classes for this node (e.g. ntp)." +msgstr "La liste des classes puppet configurées pour ce noeud ( ex : ntp)." + +#: ../lib/modules/sudoRole.inc:79 ../lib/modules/sudoRole.inc:104 +msgid "The list of hosts from which the user may run the commands." +msgstr "Liste des hôtes autorisé a exécuter les commandes" + +#: ../lib/modules/customFields.inc:3013 +msgid "The list of labels contains duplicates." +msgstr "La liste des étiquettes contient des doublons." + +#: ../lib/modules/sudoRole.inc:75 ../lib/modules/sudoRole.inc:99 +msgid "The list of users who own this sudo role and may run the commands." +msgstr "" +"Liste des utilisateurs détenteurs de cette règle sudo et autorisés a " +"exécuter les commandes." + +#: ../lib/modules/customFields.inc:3010 +msgid "The list of values contains duplicates." +msgstr "La liste de valeurs contient des doublons." + +#: ../lib/modules/qmailGroup.inc:132 ../lib/modules/qmailGroup.inc:136 +msgid "The list's alternate email address." +msgstr "Adresse mail alternative de la liste." + +#: ../lib/modules/kolabGroup.inc:88 ../lib/modules/kolabGroup.inc:92 +#: ../lib/modules/qmailGroup.inc:124 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/windowsGroup.inc:127 +msgid "The list's email address." +msgstr "Adresse mail de la liste." + +#: ../templates/config/mainmanage.php:147 +msgid "" +"The log file is empty or contains invalid characters! Valid characters are: " +"a-z, A-Z, 0-9, /, \\, ., :, _ and -." +msgstr "" +"Le fichier de log est vide ou contient des caractères non valides! les " +"caractères valides sont: a-z, A-Z, 0-9, /, \\, ., :, _ and -." + +#: ../lib/modules/imapAccess.inc:87 +msgid "" +"The login name of your IMAP user who has rights to create/delete mailboxes." +msgstr "" +"Nom de connexion de l'utilisateur IMAP ayant les droits de création/" +"suppression des boîtes de messagerie." + +#: ../lib/modules/bindDLZ.inc:133 ../lib/modules/bindDLZ.inc:137 +msgid "The mail server for this entry." +msgstr "Serveur de courriel pour cette entrée." + +#: ../lib/modules/qmailUser.inc:244 +msgid "The mail server that contains the message store." +msgstr "Serveur de messagerie hébergeant les boîtes." + +#: ../lib/modules/passwordSelfReset.inc:234 +msgid "" +"The mail text for confirmation mails must include the wildcard @@resetLink@@." +msgstr "Le texte du mail de confirmation doit contenir le joker @@resetLink@@." + +#: ../help/help.inc:251 +msgid "The mail text of all password mails." +msgstr "Le texte du courrier informant des changement de mot de passe." + +#: ../lib/modules/selfRegistration.inc:70 +msgid "The mail text of the confirmation mail." +msgstr "Le message du mail de confirmation." + +#: ../lib/modules/passwordSelfReset.inc:125 +#: ../lib/modules/passwordSelfReset.inc:135 +msgid "The mail text of the mails." +msgstr "Le contenu du mail." + +#: ../lib/modules/asteriskVoicemail.inc:210 +#: ../lib/modules/asteriskVoicemail.inc:212 +msgid "The mailbox format is invalid." +msgstr "Le format de boîte de messagerie n'est pas valide." + +#: ../lib/modules/dhcp_settings.inc:332 ../lib/modules/dhcp_settings.inc:333 +msgid "The maximum lease time is invalid." +msgstr "La durée maximum du bail n'est pas valide." + +#: ../lib/modules/dhcp_settings.inc:158 +msgid "" +"The maximum lease time specifies after how many seconds the client must " +"request a new IP address." +msgstr "" +"La durée de bail maximum indique au bout de combien de temps le client doit " +"renouveler sa demande d'adresse IP." + +#: ../lib/modules/kolabUser.inc:175 +msgid "The maximum mailbox size in MB." +msgstr "Taille maximum de la mailbox en Mo." + +#: ../lib/modules/qmailUser.inc:224 +msgid "The maximum number of mails that can be stored in the user's mailbox." +msgstr "Nombre maximum de mail pouvant être stockés dans une mailbox." + +#: ../lib/modules/pykotaPrinter.inc:104 +msgid "" +"The maximum number of pages per job allowed on the printer. 0 means " +"unlimited." +msgstr "" +"Le nombre de page maximum autorisé par tâche sur l'imprimante. 0 étant " +"illimité." + +#: ../lib/modules/bindDLZ.inc:518 ../lib/modules/bindDLZ.inc:519 +#, php-format +msgid "The minimum time \"%s\" must be a number." +msgstr "La durée minimum \"%s\" doit être un nombre." + +#: ../lib/modules.inc:927 +#, php-format +msgid "The module %s is not yet ready." +msgstr "Le module %s n'est pas encore pret." + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "" +"The name for that PDF-structure you submitted is not valid. A valid name " +"must consist of the following characters: 'a-z','A-Z','0-9','_','-'." +msgstr "" +"Le nom proposé pour cette structure PDF n'est pas valide. Un nom valide ne " +"doit contenir que les caractères : 'a-z','A-Z','0-9','_','-','.'." + +#: ../lib/modules/asteriskExtension.inc:111 +msgid "" +"The name of a command to execute. The available commands may be listed at " +"the Asterisk command line by executing \"core show applications\"." +msgstr "" +"Nom d'une commande a exécuter. Les commandes disponibles sont visibles à " +"partir de la ligne de commande Asterisk en saisissant \"core show " +"applications\"." + +#: ../lib/modules/fixed_ip.inc:99 +msgid "The name of the PC." +msgstr "Nom de machine." + +#: ../lib/modules/asteriskExtension.inc:103 +msgid "The name of the extension (e.g. voicemail or sip)." +msgstr "Nom des extensions ( ex : messagerie vocale ou sip )." + +#: ../lib/modules/kolabUser.inc:149 ../lib/modules/kolabSharedFolder.inc:155 +msgid "The name of the server where the mailbox is located." +msgstr "Le nom du serveur ou se trouve la mailbox" + +#: ../lib/modules/dhcp_settings.inc:150 +msgid "The name of the subnet. Example: 192.168.10.0" +msgstr "Nom du sous-réseau. Exemple : 192.168.10.0" + +#: ../lib/modules/sambaDomain.inc:78 +msgid "The name of your Windows domain or workgroup." +msgstr "Le nom de votre domaine Windows ou groupe de travail." + +#: ../lib/modules/bindDLZ.inc:499 ../lib/modules/bindDLZ.inc:500 +#, php-format +msgid "The name server \"%s\" is invalid." +msgstr "Le serveur de nom \"%s\" n'est pas valide." + +#: ../lib/modules/bindDLZ.inc:149 ../lib/modules/bindDLZ.inc:153 +msgid "The name server for this zone." +msgstr "Le nom de serveur pour cette zone." + +#: ../lib/modules/freeRadius.inc:89 +msgid "The net mask for the IP address." +msgstr "Masque de réseau de l'dresse IP." + +#: ../lib/modules/dhcp_settings.inc:194 +msgid "" +"The net mask is derived from the subnet mask. LAM will calculate it " +"automatically." +msgstr "" +"Le masque de réseau est déduite du masque de sous-réseau. LAM le calculera " +"automatiquement." + +#: ../lib/modules/freeRadius.inc:251 ../lib/modules/freeRadius.inc:252 +msgid "The net mask is invalid." +msgstr "Le masque réseau n'est pas valide." + +#: ../lib/modules.inc:1177 +msgid "" +"The new password will be stored in the directory after you save this account." +msgstr "" +"Le nouveau mot de passe sera stocké dans l'annuaire après enregistrement du " +"compte." + +#: ../lib/modules/asteriskAccount.inc:240 +msgid "The number of milliseconds for the last qualify." +msgstr "Nombre de milisecondes depuis le dernier test de qualification." + +#: ../lib/modules/bindDLZ.inc:509 +msgid "The number of priority, weight, port and server entries must be equal." +msgstr "" +"Le nombre de priorité, poids, port et entrées serveur doivent être égales." + +#: ../help/help.inc:121 +msgid "" +"The number of users who may login to LAM is restricted. This can be either a " +"fixed list of DNs or LAM can search LDAP to find a DN which matches the " +"given user name." +msgstr "" +"Le nombre d'utilisateurs autorisés a se connecter à LAM est limité. Vous " +"pouvez indiquer un DN ou laisser LAM chercher dans LDAP le DN correspondant " +"au nom d'utilisateur que vous indiquez." + +#: ../templates/tests/schemaTest.php:114 +#, php-format +msgid "The object class %s is not supported by your LDAP server." +msgstr "La classe de l'objet %s n'est pas supportée par votre serveur LDAP" + +#: ../lib/modules/windowsUser.inc:153 ../lib/modules/inetOrgPerson.inc:793 +#: ../lib/modules/inetOrgPerson.inc:797 +msgid "The office name of the user (e.g. YourCompany, Human Resources)." +msgstr "" +"Le nom de bureau de l'utilisateur (ex. Entreprise, Ressources Humaines)." + +#: ../templates/selfService/selfServiceMain.php:331 ../lib/modules.inc:1803 +msgid "The operation was stopped because of the above errors." +msgstr "L'opération a été interrompue en raison des erreurs ci-dessus." + +#: ../lib/modules/asteriskVoicemail.inc:224 +#: ../lib/modules/asteriskVoicemail.inc:225 +msgid "The options have bad format." +msgstr "Les options sont malformées." + +#: ../lib/modules/device.inc:70 ../lib/modules/device.inc:74 +msgid "The owners of this device." +msgstr "Les propriétaires du matériel." + +#: ../lib/modules/groupOfNames.inc:94 ../lib/modules/groupOfNames.inc:98 +msgid "The owners of this group." +msgstr "Les propriétaires du groupe." + +#: ../lib/modules/asteriskVoicemail.inc:222 +#: ../lib/modules/asteriskVoicemail.inc:223 +msgid "The pager number has bad format." +msgstr "Le numéro de pager n'est pas au bon format." + +#: ../lib/modules/heimdalKerberos.inc:121 +msgid "The parameter @@password@@ will be replaced with the new password." +msgstr "Le paramètre @@password@@ sera remplacé par le nouveau mot de passe." + +#: ../lib/modules/heimdalKerberos.inc:120 +msgid "The parameter @@principal@@ will be replaced with the principal name." +msgstr "Le paramètre @@principal@@ sera remplacé par le nom du principal." + +#: ../templates/config/confsave.php:71 ../templates/config/confmain.php:73 +#: ../templates/config/mainlogin.php:61 +#: ../templates/selfService/adminLogin.php:54 +msgid "The password is invalid! Please try again." +msgstr "Mot de passe incorrect! Veuillez ré-essayer." + +#: ../lib/security.inc:335 +#, php-format +msgid "The password is too short. You have to enter at least %s characters." +msgstr "" +"Ce mot de passe est trop court. Vous devez entrer au moins %s caractères." + +#: ../lib/security.inc:423 +#, php-format +msgid "" +"The password is too weak. It needs to match at least %s password complexity " +"rules." +msgstr "" +"Le mot de passe est trop faible. Il doit respecter au moins %s règles de " +"complexité de mot de passe." + +#: ../lib/security.inc:413 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s different character " +"classes (upper/lower case, numbers and symbols)." +msgstr "" +"Ce mot de passe est trop simple. Vous devez entrer au moins %s caractères " +"différents (minuscules/majuscules, nombres et symboles)" + +#: ../lib/security.inc:360 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s lower case " +"characters." +msgstr "" +"Ce mot de passe est trop simple. Vous devez entrer au moins %s caractères " +"minuscultes." + +#: ../lib/security.inc:380 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s numeric characters." +msgstr "" +"Ce mot de passe est trop simple. Vous devez entrer au moins %s caractères " +"numériques." + +#: ../lib/security.inc:390 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s symbolic characters." +msgstr "" +"Ce mot de passe est trop simple. Vous devez entrer au moins %s caractères " +"symboliques." + +#: ../lib/security.inc:370 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s upper case " +"characters." +msgstr "" +"Ce mot de passe est trop simple. Vous devez entrer au moins %s caractères " +"majuscules." + +#: ../lib/security.inc:442 +msgid "" +"The password is too weak. You may not use parts of the user name for the " +"password." +msgstr "" +"Ce mot de passe est trop faible. Vous ne pouvez pas utiliser une partie du " +"nm d'utilisateur pour le mot de passe." + +#: ../lib/security.inc:452 +msgid "" +"The password is too weak. You may not use parts of user attributes for the " +"password." +msgstr "" +"Ce mot de passe est trop faible. Vous ne pouvez pas utiliser d'éléments " +"d'attibuts de l'utilisateur pour le mot de passe." + +#: ../lib/security.inc:430 +msgid "" +"The password is too weak. You may not use the user name as part of the " +"password." +msgstr "" +"Ce mot de passe est trop faible. Vous ne pouvez pas utiliser le nom " +"d'utilisateur comme partie du mot de passe." + +#: ../lib/modules/imapAccess.inc:95 +msgid "" +"The password of your IMAP admin user. The login name for the IMAP admin user " +"is stored in the LAM server profile." +msgstr "" +"Mot de passe du compte administrateur IMAP. Le nom du compte administrateur " +"IMAP est stocké dans le profil de serveur LAM." + +#: ../templates/lists/changePassword.php:600 ../lib/modules.inc:1120 +msgid "The password was set to:" +msgstr "Le mot de passe est :" + +#: ../lib/modules/bindDLZ.inc:505 ../lib/modules/bindDLZ.inc:506 +#, php-format +msgid "The port \"%s\" is invalid." +msgstr "Le port \"%s\" n'est pas valable." + +#: ../lib/modules/windowsUser.inc:161 ../lib/modules/inetOrgPerson.inc:673 +#: ../lib/modules/inetOrgPerson.inc:677 +msgid "The post office box of the user's address." +msgstr "La boîte postale de l'adresse utilisateur." + +#: ../lib/modules/windowsUser.inc:157 ../lib/modules/inetOrgPerson.inc:681 +#: ../lib/modules/inetOrgPerson.inc:685 +msgid "The postal code of the user's address." +msgstr "Code postal de l'adresse de l'utilisateur." + +#: ../lib/modules/bindDLZ.inc:495 ../lib/modules/bindDLZ.inc:496 +#, php-format +msgid "The preference \"%s\" must be a number." +msgstr "La péférence \"%s\" doit être un nombre." + +#: ../lib/modules/pykotaPrinter.inc:116 +msgid "The price for each page of a print job." +msgstr "Le prix à la page d'une tâche d'impression." + +#: ../lib/modules/pykotaPrinter.inc:112 +msgid "The price for each print job." +msgstr "Le prix de la tâche d'impression." + +#: ../lib/modules/posixAccount.inc:466 +msgid "" +"The primary group for this account. You can insert a GID number or a group " +"name." +msgstr "" +"Groupe principal pour ce compte.Vous pouvez insérer un numéro de GID ou un " +"nom de groupe." + +#: ../lib/modules/posixAccount.inc:553 +msgid "The primary group the host should be member of." +msgstr "Le groupe principal de la machine." + +#: ../lib/modules/posixAccount.inc:515 +msgid "The primary group the user should be member of." +msgstr "Le groupe principal de l'utilisateur." + +#: ../lib/modules/bindDLZ.inc:501 ../lib/modules/bindDLZ.inc:502 +#, php-format +msgid "The priority \"%s\" is invalid." +msgstr "La priorité \"%s\" n'est pas valable." + +#: ../lib/modules/asteriskExtension.inc:107 +msgid "" +"The priority is a sequence number used to order the execution of commands. " +"Commands are executed beginning with the lowest sequence number." +msgstr "" +"La priorité est une numéro de séquence qui permet d'ordonner l'exécution des " +"commandes. La commande ayant le numéro de séquence le plus faible sera " +"exécuté en premier." + +#: ../lib/modules/range.inc:424 +msgid "The range conflicts with another range." +msgstr "La plage est en conflit avec une autre plage." + +#: ../lib/modules/range.inc:420 +msgid "The range end needs to be greater than the range start." +msgstr "La fin de la plage doit être plus grand que le début de la plage." + +#: ../lib/modules/bindDLZ.inc:514 ../lib/modules/bindDLZ.inc:515 +#, php-format +msgid "The refresh time \"%s\" must be a number." +msgstr "La durée de rafraichissement \"%s\" doit être un nombre." + +#: ../lib/modules/bindDLZ.inc:516 ../lib/modules/bindDLZ.inc:517 +#, php-format +msgid "The retry time \"%s\" must be a number." +msgstr "La durée de ré-essai \"%s\" doit être un nombre." + +#: ../lib/modules/inetOrgPerson.inc:761 +msgid "The room number of the employee's office." +msgstr "Le numéro de bureau de l'employé." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +msgid "The scope in which to search" +msgstr "Périmètre de la recherche" + +#: ../lib/modules/customScripts.inc:64 ../lib/modules/customScripts.inc:77 +msgid "" +"The scripts will be run on your web server in the user context of your web " +"server (e.g. apache/www-data)." +msgstr "" +"Le script sera exécuté sur votre serveur web dans le contexte d'exécution du " +"serveur web ( ex : apache/www-data )." + +#: ../lib/modules/nisMailAliasUser.inc:105 +#: ../lib/modules/asteriskAccount.inc:244 ../lib/modules/qmailUser.inc:196 +#: ../lib/modules/zarafaGroup.inc:109 ../lib/modules/sambaSamAccount.inc:400 +#: ../lib/modules/posixAccount.inc:442 ../lib/modules/zarafaUser.inc:133 +#: ../lib/modules/windowsUser.inc:237 ../lib/modules/inetOrgPerson.inc:809 +#: ../lib/modules/freeRadius.inc:113 ../lib/modules/zarafaServer.inc:89 +#: ../lib/modules/qmailGroup.inc:120 ../lib/modules/organizationalRole.inc:82 +#: ../lib/modules/passwordSelfReset.inc:161 +#: ../lib/modules/windowsGroup.inc:111 ../lib/modules/groupOfNames.inc:82 +msgid "" +"The selected options will not be managed inside LAM. You can use this to " +"reduce the number of displayed input fields." +msgstr "" +"Les options sélectionnées ne seront pas gérées dans LAM. Ceci permet de " +"réduire le nombre de champs de saisie." + +#: ../lib/modules/bindDLZ.inc:520 ../lib/modules/bindDLZ.inc:521 +#, php-format +msgid "The serial number \"%s\" must be a number." +msgstr "Le numéro de série \"%s\" doit être un nombre." + +#: ../lib/modules/bindDLZ.inc:221 +msgid "The serial number should be updated after each zone change." +msgstr "" +"Le numéro de série doit être mis à jour après chaque modification de zone." + +#: ../lib/modules/bindDLZ.inc:493 ../lib/modules/bindDLZ.inc:494 +#: ../lib/modules/bindDLZ.inc:507 ../lib/modules/bindDLZ.inc:508 +#, php-format +msgid "The server name \"%s\" is invalid." +msgstr "Le nom de serveur \"%s\" n'est pas valide." + +#: ../templates/3rdParty/pla/htdocs/copy.php:38 +msgid "The source and destination DN are the same." +msgstr "Le DN source et destination sont identiques." + +#: ../lib/modules/range.inc:93 +msgid "The starting IP address of the range." +msgstr "L'adresse de début de la plage IP." + +#: ../lib/modules/windowsUser.inc:169 ../lib/modules/inetOrgPerson.inc:781 +#: ../lib/modules/inetOrgPerson.inc:785 +msgid "The state where the user resides or works." +msgstr "Le pays ou l'utilisateur réside." + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "The static text must contain at least one character." +msgstr "Ce texte static doit contenir au moins un caractère." + +#: ../lib/modules/windowsUser.inc:173 ../lib/modules/inetOrgPerson.inc:665 +#: ../lib/modules/inetOrgPerson.inc:669 +msgid "The street name of the user's address." +msgstr "Rue de l'adresse utilisateur." + +#: ../help/help.inc:249 +msgid "The subject of all password mails." +msgstr "Le sujet des mails de changement de mot de passe." + +#: ../lib/modules/selfRegistration.inc:95 +#: ../lib/modules/passwordSelfReset.inc:121 +msgid "The subject of the mails." +msgstr "Le sujet des mails." + +#: ../lib/modules/dhcp_settings.inc:319 +msgid "The subnet is already in use." +msgstr "Un sous-réseau identique existe déjà." + +#: ../lib/modules/dhcp_settings.inc:320 ../lib/modules/dhcp_settings.inc:321 +msgid "The subnet is invalid." +msgstr "Le sous-réseau n'est pas valide." + +#: ../lib/modules/dhcp_settings.inc:334 ../lib/modules/dhcp_settings.inc:335 +msgid "The subnet mask is invalid." +msgstr "Le masque de sous-réseau n'est pas valide." + +#: ../lib/modules/dhcp_settings.inc:190 +msgid "The subnet mask of the network." +msgstr "Masque de sous-réseau." + +#: ../lib/modules/sudoRole.inc:134 +msgid "The sudo command is not valid after this date." +msgstr "La commande sudo n'est plus valable après cette date." + +#: ../lib/modules/sudoRole.inc:129 +msgid "The sudo command is not valid before this date." +msgstr "La commande sudo n'est pas valable avant cette date." + +#: ../lib/modules/sudoRole.inc:91 ../lib/modules/sudoRole.inc:119 +msgid "The sudo commands are executed with these group memberships." +msgstr "Les commandes sudo seront exécutées avec les droits de ces groupes." + +#: ../lib/modules/sudoRole.inc:87 ../lib/modules/sudoRole.inc:114 +msgid "The sudo commands may be run as these users (e.g. root)." +msgstr "" +"Les commandes sudo peuvent être exécutées en tant que ces utilisateurs " +"( ex : root )." + +#: ../lib/modules/bindDLZ.inc:213 +msgid "" +"The time (in seconds) a secondary server should wait before retrying a zone " +"refresh." +msgstr "" +"Le temps (en secondes) pendant lequel le serveur secondaire doit attendre " +"avant de ré-essayer de rafraîchir la zone." + +#: ../lib/modules/bindDLZ.inc:209 +msgid "" +"The time (in seconds) that a secondary server should wait before checking " +"for zone updates." +msgstr "" +"Le temps (en secondes) pendant le serveur doit attendre avant de vérifier " +"les mises à jour de la zone." + +#: ../lib/modules/bindDLZ.inc:205 +msgid "" +"The time (in seconds) that zone data is kept on a secondary server without " +"receiving a zone refresh." +msgstr "" +"Le temps (en secondes) pendant lesquelles les données sont conservées sur un " +"serveur secondaire sans recevoir de rafraichissement de zone." + +#: ../lib/modules/bindDLZ.inc:472 ../lib/modules/bindDLZ.inc:473 +#: ../lib/modules/bindDLZ.inc:474 ../lib/modules/bindDLZ.inc:475 +#: ../lib/modules/bindDLZ.inc:476 ../lib/modules/bindDLZ.inc:477 +#: ../lib/modules/bindDLZ.inc:478 ../lib/modules/bindDLZ.inc:479 +#: ../lib/modules/bindDLZ.inc:480 ../lib/modules/bindDLZ.inc:481 +#: ../lib/modules/bindDLZ.inc:482 ../lib/modules/bindDLZ.inc:483 +#: ../lib/modules/bindDLZ.inc:484 ../lib/modules/bindDLZ.inc:485 +#: ../lib/modules/bindDLZ.inc:486 ../lib/modules/bindDLZ.inc:487 +#, php-format +msgid "The timeout \"%s\" must be a number." +msgstr "Le timeout \"%s\" doit être un nombre." + +#: ../lib/modules/bindDLZ.inc:95 ../lib/modules/bindDLZ.inc:99 +#: ../lib/modules/bindDLZ.inc:104 ../lib/modules/bindDLZ.inc:109 +#: ../lib/modules/bindDLZ.inc:114 ../lib/modules/bindDLZ.inc:119 +#: ../lib/modules/bindDLZ.inc:124 +msgid "" +"The timeout specifies how long (in seconds) a record can be cached by " +"caching DNS servers." +msgstr "" +"Le timeout détermine pendant combien de temps (en secondes) un " +"enregistrement est conservé en cache par le serveur DNS." + +#: ../lib/modules/customFields.inc:3562 ../lib/modules/customFields.inc:3649 +#, php-format +msgid "The uploaded file does not have the correct file extension (%s)." +msgstr "Le fichier chargé n'a pas l'extensions de fichier correctes (%s)." + +#: ../lib/modules/customFields.inc:3558 ../lib/modules/customFields.inc:3645 +#, php-format +msgid "The uploaded file is too large (> %s bytes)." +msgstr "Le fichier chargé est trop volumineux (> %s octets)" + +#: ../templates/3rdParty/pla/lib/import_functions.php:396 +msgid "The url attribute value should begin with file://." +msgstr "La valeur de l'attribut url doit commencer par file://" + +#: ../lib/modules/zarafaUser.inc:113 +msgid "The user account is non-active and login is disabled." +msgstr "Le compte utilisateur est inactif et ne peut pas se connecter." + +#: ../lib/modules/windowsUser.inc:202 +msgid "The user must log on using a smart card." +msgstr "L'utilisteur doit utiliser une carte à puce pour s'authentifier." + +#: ../lib/modules/zarafaUser.inc:93 +msgid "The user will get warned when his mailbox reaches this limit." +msgstr "" +"L'utilisateur recevra un message d'alerte quand sa boîte de messagerie " +"atteindra cette limite." + +#: ../lib/modules/qmailUser.inc:204 +msgid "The user's alternate email address." +msgstr "Adresse mail alternative de l'utilisateur." + +#: ../lib/modules/asteriskAccount.inc:136 +msgid "The user's call groups." +msgstr "Les groupes d'appel de l'utilisateur." + +#: ../lib/modules/qmailUser.inc:200 ../lib/modules/windowsUser.inc:141 +#: ../lib/modules/pykotaUser.inc:117 ../lib/modules/inetOrgPerson.inc:721 +#: ../lib/modules/inetOrgPerson.inc:725 +msgid "The user's email address." +msgstr "L'adresse mail de l'utilisateur." + +#: ../lib/modules/inetOrgPerson.inc:713 ../lib/modules/inetOrgPerson.inc:717 +msgid "The user's fax number." +msgstr "Numéro de fax de l'utilisateur." + +#: ../lib/modules/inetOrgPerson.inc:705 ../lib/modules/inetOrgPerson.inc:709 +msgid "The user's mobile number." +msgstr "Numéro de portable de l'utilisateur." + +#: ../lib/modules/inetOrgPerson.inc:825 ../lib/modules/inetOrgPerson.inc:829 +msgid "The user's organisation name." +msgstr "L'organisation à laquelle appartient l'utilisateur." + +#: ../lib/modules/inetOrgPerson.inc:817 ../lib/modules/inetOrgPerson.inc:821 +msgid "The user's organisational unit." +msgstr "Unité organisationnelle de l'utilisateur." + +#: ../lib/modules/inetOrgPerson.inc:753 ../lib/modules/inetOrgPerson.inc:757 +msgid "The user's private telephone number." +msgstr "Numéro de téléphone personnel." + +#: ../lib/modules/windowsUser.inc:177 ../lib/modules/inetOrgPerson.inc:697 +#: ../lib/modules/inetOrgPerson.inc:701 +msgid "The user's telephone number." +msgstr "Numéro de téléphone de l'utilisateur." + +#: ../lib/modules/inetOrgPerson.inc:833 +msgid "The user's unique employee number." +msgstr "Le matricule de l'utilisateur." + +#: ../lib/modules/windowsUser.inc:189 ../lib/modules/inetOrgPerson.inc:733 +#: ../lib/modules/inetOrgPerson.inc:737 +msgid "The user's web site (e.g. http://www.company.com)." +msgstr "Site web de l'utilisateur (ex : http://www.société.com)." + +#: ../lib/modules/sambaSamAccount.inc:122 +msgid "" +"The value for the Samba 3 field \"User can/must change password\" needs to " +"be a number." +msgstr "" +"Les valeurs du champ Samba 3 \"L'utilisateur peut/doit changer de mot de " +"passe\" doit être numérique." + +#: ../lib/modules/puppetClient.inc:188 ../lib/modules/puppetClient.inc:189 +msgid "The variables may only contain ASCII characters." +msgstr "Les variables ne peuvent contenir que des caractères ASCII." + +#: ../lib/modules/asteriskVoicemail.inc:226 +#: ../lib/modules/asteriskVoicemail.inc:227 +msgid "The voicemail context name is invalid." +msgstr "Le nom du contexte de boîte vocale n'est pas valable." + +#: ../lib/modules/bindDLZ.inc:503 ../lib/modules/bindDLZ.inc:504 +#, php-format +msgid "The weight \"%s\" is invalid." +msgstr "Le poids \"%s\" n'est pas valable." + +#: ../templates/3rdParty/pla/htdocs/create.php:42 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:36 +msgid "The were no attributes marked as an RDN attribute." +msgstr "Aucun attribut marqué comme attribut de RDN." + +#: ../lib/modules/selfRegistration.inc:71 +msgid "The wildcard for the account creation link is @@creationLink@@." +msgstr "" +"Le métacaratère/joker pour le lien de d'auto-enregistrement est " +"@@creationLink@@." + +#: ../lib/modules/passwordSelfReset.inc:127 ../help/help.inc:254 +msgid "The wildcard for the new password is @@newPassword@@." +msgstr "L'alias du nouveau mot de passe est @@nouveaupass@@." + +#: ../lib/modules/passwordSelfReset.inc:137 +msgid "The wildcard for the reset link is @@resetLink@@." +msgstr "" +"Le métacaratère/joker pour le lien de réinitialisation est @@resetLink@@." + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:60 +#, php-format +msgid "There are %s members in group %s:" +msgstr "Il y a %s membres dans le groupe %s :" + +#: ../lib/modules/posixGroup.inc:612 ../lib/modules/sambaGroupMapping.inc:605 +msgid "There are still users who have this group as their primary group." +msgstr "Des utilisateurs ont encore ce groupe comme groupe principal." + +#: ../lib/modules/sambaGroupMapping.inc:602 +msgid "There can be only one group of this type." +msgstr "Il ne peut y avoir qu'un groupe de ce type." + +#: ../lib/modules/asteriskAccount.inc:557 +msgid "There is already another user with this caller ID." +msgstr "Il y a déjà un utilisateur ayant le même ID d'appel." + +#: ../lib/modules/asteriskVoicemail.inc:211 +msgid "There is already another user with this mailbox name." +msgstr "Il existe déjà une boîte de messagerie ayant le même nom." + +#: ../templates/massDoUpload.php:258 +msgid "There were errors while uploading:" +msgstr "Il y a eu des erreurs à l'Upload:" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:80 +#, php-format +msgid "There will be %s updates done with this mass update" +msgstr "Cette modification de masse va effectuer %s mises à jour" + +#: ../lib/modules/posixGroup.inc:501 +msgid "" +"These are the minimum and maximum numbers to use for group IDs when creating " +"new group accounts. New group accounts will always get the highest number in " +"use plus one." +msgstr "" +"Valeurs minimum et maximum utilisables pour les numéros de GID lors de la " +"création de nouveaux groupes. Le nouveau groupe aura toujours le numéro le " +"plus élévé en cours d'utilisation plus un." + +#: ../lib/modules/posixAccount.inc:454 +msgid "" +"These are the minimum and maximum numbers to use for machine IDs when " +"creating new accounts for hosts. The range should be different from that of " +"users. New host accounts will always get the highest number in use plus one." +msgstr "" +"Ce sont les numéros d'ID minimum et maximum autorisés pour la création de " +"nouveaux comptes machines. Les plages devraient être différentes de celles " +"des Utilisateurs. Un nouveau compte machine prendra toujours le plus grand " +"numéro utilisé plus un." + +#: ../lib/modules/posixAccount.inc:450 +msgid "" +"These are the minimum and maximum numbers to use for user IDs when creating " +"new user accounts. The range should be different from that of machines. New " +"user accounts will always get the highest number in use plus one." +msgstr "" +"Ceux-ci sont les nombres minimum et maximum à utiliser pour les IDs " +"d'utilisateurs pour la création de nouveaux comptes utilisateurs. Un nouveau " +"groupe aura toujours le nombre utilisé le plus élévé plus un." + +#: ../lib/modules/inetOrgPerson.inc:845 +msgid "These are the user's certificates." +msgstr "Les certificats utilisateurs." + +#: ../lib/modules/puppetClient.inc:113 +msgid "" +"These classes will be available as autocompletion hints when adding new " +"classes." +msgstr "" +"Ces classes seront disponible comme info d'autocomplétion lors de l'ajout de " +"nouvelle classe." + +#: ../lib/modules/nisnetgroup.inc:96 ../lib/modules/nisnetgroup.inc:100 +msgid "" +"These entries specify the members of the netgroup. You can limit the set to " +"a host name, a user name, a domain name or any combination of them." +msgstr "" +"Ces entrées détaillent les membres du netgroup. Il est possible de limiter " +"au nom d'hôte, nom d'utilisateur, nom de domaine ou à une combinaison de ces " +"données." + +#: ../lib/modules/puppetClient.inc:117 +msgid "" +"These environments will be available as autocompletion hints when setting " +"the environment." +msgstr "" +"Ces environnements seront affichés comme exemples lors de la déclaration " +"d'un environnement." + +#: ../lib/modules/asteriskExtension.inc:123 +msgid "" +"These options change the list of potential extension owners below. You can " +"select to show Asterisk accounts or all users. It is also possible to search " +"the tree suffix if you have users which are not in the standard user suffix." +msgstr "" +"Ces options modifient la liste des possibles potentiels d'extension ci-" +"dessous. Vous pouvez afficher les comptes Asterisk ou tous les utilisateurs. " +"Il est également possible de rechercher dans une branche différente si vous " +"avez des utilisateurs dans des branches différentes." + +#: ../lib/modules/authorizedServiceObject.inc:94 +msgid "These services will show up as hint if you enter a new service." +msgstr "" +"Ces services seront proposés lors de la définition d'un nouveau service." + +#: ../lib/modules/posixAccount.inc:124 +msgid "" +"This GID number is invalid! Please provide either a number or a group name." +msgstr "" +"Ce numéro de GID est incorrect ! Veuillez saisir un nombre ou un nom de " +"groupe." + +#: ../help/help.inc:235 +msgid "" +"This HTML code will be placed on top of all self service pages. E.g. you can " +"use this to place your custom logo. Any HTML code is permitted." +msgstr "" +"Ce code HTML sera placé en haut de chaque page du self-service. Vous pouvez " +"par exemple insérer votre logo. Tout code HTML est autorisé." + +#: ../lib/modules/fixed_ip.inc:462 +msgid "This PC name already exists." +msgstr "Une machine ayant le même nom existe déjà." + +#: ../lib/modules/kolabGroup.inc:197 ../lib/modules/kolabUser.inc:292 +#: ../lib/modules/kolabSharedFolder.inc:274 +msgid "This account is marked for deletion." +msgstr "Ce compte est marqué pour effacement." + +#: ../lib/modules/sambaSamAccount.inc:327 +msgid "" +"This allows you to define this account as a special user like administrator " +"or guest." +msgstr "" +"Ceci permet de définir ce compte comme utilisateur spécial comme " +"administrateur ou anonyme." + +#: ../templates/3rdParty/pla/lib/PageRender.php:376 +msgid "This attribute is not defined in the LDAP schema" +msgstr "Attribut non défini dans le schéma LDAP" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1988 +msgid "This attribute is required" +msgstr "Cet attribut est obligatoire" + +#: ../templates/3rdParty/pla/lib/PageRender.php:458 +msgid "This attribute is required for the RDN." +msgstr "Cet attribut est obligatoire pour le RDN." + +#: ../lib/modules/inetOrgPerson.inc:789 +msgid "This can be used to specify if the user has a car license." +msgstr "Numéro de permis de conduire de l'utilisateur." + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:64 +msgid "This change requires to add new attributes." +msgstr "Cette modification impose l'ajout de nouveaux attributs." + +#: ../help/help.inc:137 +msgid "This changes the password of the selected profile." +msgstr "Ceci change le mot de passe du profil sélectionné." + +#: ../help/help.inc:139 +msgid "This changes the profile which is selected by default at login." +msgstr "Ceci change le profil qui sera sélectionné par défaut." + +#: ../templates/massBuildAccounts.php:177 +msgid "" +"This column is defined to include unique entries but duplicates were found:" +msgstr "" +"Cette colonne est définie pour inclure des entrées unique,doublons trouvés:" + +#: ../lib/modules/heimdalKerberos.inc:119 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -K /etc/heimdal/apache.keytab -p " +"admin/admin passwd -p @@password@@ @@principal@@\"." +msgstr "" +"Cette commande sera appelée pour changer le mot de passe Kerberos. " +"Habituellement, elle est de la forme \"/usr/sbin/kadmin -K /etc/heimdal/" +"apache.keytab -p admin/admin passwd -p @@password@@ @@principal@@\"." + +#: ../lib/modules/mitKerberos.inc:149 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -k -t /home/www-data/apache.keytab " +"-p realm/changepwd\"." +msgstr "" +"Cette commande sera appelée pour changer le mot de passe Kerberos. " +"Habituellement, elle est de la forme \"/usr/sbin/kadmin -k -t /home/www-data/" +"apache.keytab -p realm/changepwd\"." + +#: ../lib/modules/customScripts.inc:124 +msgid "This custom script setting includes an invalid account type." +msgstr "" +"Ces paramètres des scripts personnalisés contiennent une type de compte " +"incorrecte." + +#: ../lib/modules/customScripts.inc:126 ../lib/modules/customScripts.inc:128 +msgid "This custom script setting includes an invalid action type." +msgstr "" +"Ces paramètres de scripts personnalisés contiennent un type d'action " +"incorrecte." + +#: ../help/help.inc:100 +msgid "" +"This defines the language of the login window and sets this language as the " +"default language. Users can change the language at login." +msgstr "" +"Définit la langue de l'écran de connexion et la langue par défaut. Les " +"utilisateurs peuvent changer cette langue lors de la connexion." + +#: ../help/help.inc:119 +msgid "" +"This defines the rights for the home directories which are created by " +"lamdaemon." +msgstr "" +"Ceci défini les droits pour le répertoire home qui est créé par lamdaemon." + +#: ../lib/modules/asteriskExtension.inc:95 +msgid "" +"This defines what application Asterisk has to start for this user (e.g. SIP/" +"user1)." +msgstr "" +"Définit les applications qu'Asterisk doit lancer pour cet utilisateur ( ex : " +"SIP/user1 )." + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:85 +#, php-format +msgid "This deletion request also includes %s child entries." +msgstr "La requête de suppression inclut %s entrées filles." + +#: ../lib/modules/device.inc:78 +msgid "This describes the location of the device." +msgstr "Décrit l'emplacement du matériel." + +#: ../lib/modules/ipHost.inc:74 +msgid "This describes the location of the host." +msgstr "Décrit l'emplacement de l'hôte." + +#: ../lib/modules/windowsUser.inc:137 ../lib/modules/inetOrgPerson.inc:773 +#: ../lib/modules/inetOrgPerson.inc:777 +msgid "This describes the location of the user." +msgstr "Décrit la localisation de l'utilisateur." + +#: ../lib/lamPDF.inc:126 +msgid "This document was automatically created by LDAP Account Manager" +msgstr "Ce document a été créé automatiquement par LDAP Account Manager." + +#: ../help/help.inc:258 +msgid "" +"This email address will be set as reply-to address of all password mails." +msgstr "" +"Cette adress mail sera l'adresse de réponse de tous les mails de mot de " +"passe." + +#: ../help/help.inc:247 +msgid "" +"This email address will be set as sender address of all password mails. If " +"empty the system default (php.ini) will be used." +msgstr "" +"Cette adress mail sera l'adresse d'expéditeur de tous les mails de mot de " +"passe. Si vide, celle du système (dans php.ini) sera utilisée." + +#: ../lib/modules/selfRegistration.inc:91 +#: ../lib/modules/passwordSelfReset.inc:117 +msgid "" +"This email address will be set as sender address of the mails. If empty the " +"system default (php.ini) will be used." +msgstr "" +"Cette adress mail sera l'adresse d'expéditeur des mails. Si vide, celle par " +"défaut du système (dans php.ini) sera utilisée." + +#: ../lib/modules/passwordSelfReset.inc:97 +msgid "This enables the password self reset function." +msgstr "Autorise la ré-initialisation du mot de passe par l'utilisateur." + +#: ../lib/modules/selfRegistration.inc:54 +msgid "This enables the self registration function." +msgstr "Ceci active la fonction d'auto-enregistrement." + +#: ../templates/3rdParty/pla/htdocs/compare.php:79 +msgid "This entry has no attributes" +msgstr "Cette entrée n'a pas d'attributs" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:57 +#, php-format +msgid "This entry is the root of a sub-tree containing %s entries." +msgstr "Cette entrée est la racine d'un sous-arbre contenant %s entrées." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:47 +#: ../lib/modules/selfRegistration.inc:512 +msgid "This field is required." +msgstr "Ce champ est obligatoire." + +#: ../lib/modules/customFields.inc:188 +msgid "This field name already exists. Please choose a different one." +msgstr "Le nom de champ existe déjà. Veuillez en choisir un autre nom." + +#: ../lib/modules/posixAccount.inc:126 +msgid "This gecos value is invalid!" +msgstr "Cette valeur est incorrecte !" + +#: ../lib/modules/ipHost.inc:70 +msgid "This is a comma separated list of IP addresses." +msgstr "Liste d'adresses IP séparées par des virgules." + +#: ../lib/modules/ieee802device.inc:73 +msgid "This is a comma separated list of MAC addresses." +msgstr "C'est une liste de MAC Adresses séparée par des virgules" + +#: ../lib/modules/kolabUser.inc:137 ../lib/modules/kolabSharedFolder.inc:143 +msgid "This is a comma separated list of delegates." +msgstr "Liste de délégués séparés par une virgule" + +#: ../lib/modules/kolabUser.inc:145 ../lib/modules/kolabSharedFolder.inc:151 +msgid "This is a comma separated list of eMail aliases." +msgstr "Liste d'alias de courriel séparés par des virgules" + +#: ../lib/modules/kolabUser.inc:129 +msgid "This is a comma separated list of invitation policies." +msgstr "Liste de stratégies d'invite séparés par des virgules" + +#: ../lib/modules/nisMailAlias.inc:90 +msgid "This is a comma separated list of recipients." +msgstr "Liste de destinataires séparés par des virgules" + +#: ../lib/modules/inetLocalMailRecipient.inc:77 +msgid "This is a comma separated list of the users public email addresses." +msgstr "" +"Liste d'adresses mèl publiques d'utilisateurs séparées par des virgules" + +#: ../help/help.inc:153 +msgid "" +"This is a list of IP addresses from hosts who may access LAM. You can use \"*" +"\" as wildcard (e.g. 192.168.0.*)." +msgstr "" +"Liste d'adresses IP de machines pouvant accéder à LAM. Vous pouvez utiliser " +"\"*\" comme wildcard (ex. 192.168.0.*)." + +#: ../lib/modules/selfRegistration.inc:79 +msgid "" +"This is a list of additional attributes that the user can enter. Please note " +"that user name, password and email address are mandatory anyway and need not " +"be specified." +msgstr "" +"Ceci est une liste d'attributs supplémentaires que l'utilisateur peut " +"ajouter. Veuillez noter que le nom d'utilisateur, le mot de passe et " +"l'adresse mail sont obligatoires, il est inutile de les indiquer." + +#: ../lib/modules/organizationalRole.inc:94 +#: ../lib/modules/windowsGroup.inc:131 ../lib/modules/groupOfNames.inc:102 +msgid "This is a list of members of this group." +msgstr "Ceci est une liste des membres de ce groupe." + +#: ../lib/modules/organizationalRole.inc:98 +#: ../lib/modules/windowsGroup.inc:135 ../lib/modules/groupOfNames.inc:106 +msgid "" +"This is a list of members of this group. Multiple members are separated by " +"semicolons." +msgstr "" +"Ceci est une liste des membres de ce groupe. séparés par des points-virgules." + +#: ../lib/modules/eduPerson.inc:102 +msgid "This is a list of nick names for this user." +msgstr "Liste de surnoms l'utilisateur." + +#: ../lib/modules/selfRegistration.inc:75 +msgid "" +"This is a list of object classes that are used to build the new user " +"accounts. Please enter one object class in each line." +msgstr "" +"Ceci est la liste des objectClass utilisées pour créer le nouveau compte " +"utilisateur. Veuillez saisir un objectClass par ligne." + +#: ../help/help.inc:115 +msgid "" +"This is a list of the servers where the lamdaemon scripts are stored. LDAP " +"Account Manager will make a SSH connection to the servers with the user name " +"and password provided at login. Multiple servers are separated by " +"semicolons. You can append a descriptive name after a colon." +msgstr "" +"Ceci est une liste de serveurs ou le script lamdaemon.pl réside. LDAP " +"Account Manager fera une connexion SSH à ces serveurs avec le nom " +"d'utilisateur et le mot de passe fournis à la connexion.séparés par des " +"points-virgules.Vous pouvez ajouter un libellé descriptif." + +#: ../help/help.inc:93 +msgid "" +"This is a list of valid DN entries of all users that are allowed to login to " +"LDAP Account Manager. Please enter one DN per line." +msgstr "" +"Ceci est la liste des entrées DNs valables de tout les utilisateurs qui sont " +"autorisés à se connecter à LDAP Account Manager. Entrer un DN par ligne." + +#: ../templates/3rdParty/pla/lib/PageRender.php:881 +msgid "This is a structural ObjectClass and cannot be removed." +msgstr "Cette objectClass est structurelle et ne peut pas être supprimée." + +#: ../lib/modules/nisObject.inc:74 ../lib/modules/automount.inc:73 +#: ../lib/modules/oracleService.inc:70 +msgid "This is an optional description for this entry." +msgstr "Description facultative supplémentaire pour cette entrée." + +#: ../help/help.inc:223 +msgid "" +"This is needed to find the LDAP DNs of your user accounts. E.g. if you use " +"\"uid\" and your user inputs \"miller\" then LAM will search for an account " +"with uid=miller." +msgstr "" +"Ceci est obligatoire pour trouver le DN LDAP des comptes utilisateurs.Ex. si " +"vous utilisez \"uid\" et l'utilisateur entre \"dupont\" alors LAM cherchera " +"un compte avec uid=dupont. " + +#: ../lib/modules/zarafaDynamicGroup.inc:199 ../lib/modules/ipHost.inc:117 +#: ../lib/modules/posixGroup.inc:613 ../lib/modules/device.inc:142 +#: ../lib/modules/eduPerson.inc:246 ../lib/modules/eduPerson.inc:248 +#: ../lib/modules/zarafaAddressList.inc:170 +#: ../lib/modules/posixAccount.inc:131 ../lib/modules/inetOrgPerson.inc:98 +#: ../lib/modules/aliasEntry.inc:86 ../lib/modules/qmailGroup.inc:433 +#: ../lib/modules/qmailGroup.inc:434 ../lib/modules/qmailGroup.inc:435 +msgid "This is not a valid DN!" +msgstr "DN incorrecte !" + +#: ../lib/modules/sambaSamAccount.inc:109 +msgid "This is not a valid RID number!" +msgstr "Ce numéro de RID n'est pas valable !" + +#: ../lib/modules/sambaGroupMapping.inc:604 +msgid "This is not a valid Samba 3 group type!" +msgstr "Ce n'est pas un groupe Samba3 valide!" + +#: ../lib/modules/eduPerson.inc:250 +msgid "This is not a valid list of DNs!" +msgstr "Cette liste de DNs n'est pas valide !" + +#: ../lib/modules/qmailGroup.inc:436 ../lib/modules/qmailGroup.inc:437 +msgid "This is not a valid option." +msgstr "Cette option est incorrecte." + +#: ../lib/modules/inetLocalMailRecipient.inc:73 +msgid "This is one of the users public email addresses." +msgstr "Une des adresses mèl publique utilisateurs." + +#: ../help/help.inc:84 +msgid "" +"This is only needed for TLS/SSL connections. By default, LAM will use the " +"certificate authorities installed on your system. If you have a private CA " +"in your company you can upload your CA certificates here and override the " +"system certificates." +msgstr "" +"Ceci est nécessaire uniquement pour les connexions TLS/SSL. Par défaut, LAM " +"utilisera les autorités de certification installées sur le système. Si vous " +"utilisez une AC privée, vous pouvez ajouter le certificat de votre AC ici et " +"surcharger les certificats du système." + +#: ../lib/modules/asteriskAccount.inc:104 +msgid "" +"This is the ID of the user in the Asterisk database. It may contain digits " +"and letters (e.g. user1 or 200134)." +msgstr "" +"L'ID de l'utilisateur dans la base de donnée Asterisk. Il peut être composé " +"de lettres ou de chiffres ( ex : user1 ou 200134 )" + +#: ../lib/modules/freeRadius.inc:85 +msgid "This is the IP address for the user (e.g. 123.123.123.123)." +msgstr "Adresse IP de l'utilisateur (ex : 123.123.123.123)." + +#: ../lib/modules/ipHost.inc:66 +msgid "" +"This is the IP address of the network card of the device (e.g. " +"123.123.123.123)." +msgstr "Adresse IP de la carte réseau (ex : 123.123.123.123 )." + +#: ../lib/modules/ipHost.inc:78 +msgid "This is the LDAP DN of the host's manager." +msgstr "DN de l'administrateur de l'hôte." + +#: ../lib/modules/inetOrgPerson.inc:657 ../lib/modules/inetOrgPerson.inc:661 +msgid "" +"This is the LDAP DN of the user's manager. Use this property to represent " +"hierarchies in your company." +msgstr "" +"Il s'agit du DN LDAP de l'utilisateur manager. Utilisez cette propriété pour " +"représenter la hiérarchie dans l'entreprise." + +#: ../lib/modules/customFields.inc:117 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an activated " +"state. The value is case-insensitive." +msgstr "" +"Ceci est la valeur d'un attribut LDAP qui bascule la case à cocher dans " +"l'état \"sélectionné\". Cette valeur est sensible à la casse." + +#: ../lib/modules/customFields.inc:121 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an deactivated " +"state. The value is case-insensitive." +msgstr "" +"Ceci est la valeur d'un attribut LDAP qui bascule la case à cocher dans " +"l'état \"dé-sélectionné\". Cette valeur est sensible à la casse." + +#: ../lib/modules/ieee802device.inc:69 +msgid "" +"This is the MAC address of the network card of the device (e.g. 00:01:02:DE:" +"EF:18)." +msgstr "" +"C'est la MAC adresse de la carte réseau du périphérique (ex. 00:01:02:DE:" +"EF:18)." + +#: ../lib/modules/sambaSamAccount.inc:324 +msgid "This is the SID of the user's primary Windows group." +msgstr "Le SID du Groupe principal Windows de l'Utilisateur." + +#: ../help/help.inc:102 +msgid "" +"This is the absolute path to an external script for setting quotas and " +"creating home directories." +msgstr "" +"Ceci est le chemin absolu vers un script externe pour le paramétrage des " +"quotas et la création des répertoires utilisateurs." + +#: ../lib/modules/mitKerberos.inc:157 ../lib/modules/heimdalKerberos.inc:125 +msgid "This is the account's Kerberos password." +msgstr "Ceci est le mot de passe Kerberos du compte." + +#: ../lib/modules/sambaSamAccount.inc:262 +msgid "This is the account's Windows password." +msgstr "C'est le mot de passe Windows du Compte" + +#: ../lib/modules/sambaSamAccount.inc:259 ../lib/modules/windowsUser.inc:124 +msgid "This is the account's full name on Windows systems." +msgstr "C'est le Nom complet du compte sur le système Windows" + +#: ../lib/modules/ppolicyUser.inc:56 +msgid "This is the active password policy for this account." +msgstr "La stratégie de mot de passe active pour ce compte." + +#: ../lib/modules/passwordSelfReset.inc:85 +msgid "" +"This is the answer to the security question. It allows users to reset their " +"password." +msgstr "" +"Ceci est la réponse à la question de sécurité. Elle permet à l'utilisateur " +"de ré-initialiser son mot de passe." + +#: ../lib/modules/mitKerberos.inc:145 +msgid "This is the date of the user's last login." +msgstr "Date de dernière connexion de l'utilisateur." + +#: ../lib/modules/mitKerberos.inc:125 ../lib/modules/heimdalKerberos.inc:103 +msgid "This is the date when the account will expire." +msgstr "Ceci est la date d'expiration du compte." + +#: ../lib/modules/sambaSamAccount.inc:346 ../lib/modules/shadowAccount.inc:194 +msgid "This is the date when the account will expire. Format: DD-MM-YYYY" +msgstr "Date d'expiration du compte. Format: JJ-MM-AAAA" + +#: ../lib/modules/mitKerberos.inc:141 ../lib/modules/sambaSamAccount.inc:397 +msgid "This is the date when the user changed his password." +msgstr "Date de dernier changement de mot de passe utilisateur." + +#: ../lib/modules/shadowAccount.inc:202 +msgid "" +"This is the date when the user changed his password. If you specify a " +"maximum password age then you can force a password change here." +msgstr "" +"Date de la dernière modification du mot de passe.Si vous avez spécifié une " +"durée maximum de mot de passe, vous pouvez forcer le changement en modifiant " +"cette date." + +#: ../lib/modules/sambaGroupMapping.inc:147 +msgid "This is the group name which will be shown in Windows." +msgstr "C'est le Nom du groupe qui sera vu dans Windows" + +#: ../lib/modules/windowsHost.inc:83 +msgid "This is the host's location (e.g. Munich, server room 3)." +msgstr "L'emplacement de l'hôte (par ex : Munich, salle serveur 3)." + +#: ../help/help.inc:187 +msgid "" +"This is the identifier for the relative DN value. It must be one of the " +"given allowed LDAP attributes (e.g. user accounts usually use \"uid\" while " +"groups use \"cn\")." +msgstr "" +"C'est l'identificateur pour la Valeur DN relative.Elle doit être une de " +"celles autorisées des Attributs LDAP (ex. comptes utilisateurs utilisent " +"\"uid\" tandis que groupes utilisent \"cn\")" + +#: ../lib/modules/selfRegistration.inc:99 +msgid "" +"This is the identifier for the relative DN value. LAM will use \"uid\" by " +"default." +msgstr "" +"Quel attribut utiliser comme identifiant du RDN. LAM utilisera \"uid\" par " +"défaut." + +#: ../lib/modules/passwordSelfReset.inc:101 +msgid "" +"This is the label for the link to the password self reset. If empty \"Forgot " +"password?\" will be used." +msgstr "" +"Nom du lien vers la page de changement de mot de passe. Par défaut, " +"l'intitulé sera \"Mot de passe oublié ?\"." + +#: ../lib/modules/selfRegistration.inc:58 +msgid "" +"This is the label for the link to the self registration. If empty \"Register " +"new account\" will be used." +msgstr "" +"Ceci est le message de description du lien vers la page d'auto-" +"enregistrement. Si laissé vide, le texte par défaut : \"Enregistrer un " +"nouveau compte\" sera utilisé." + +#: ../help/help.inc:88 +msgid "" +"This is the list of attributes to show in the account list. The entries can " +"either be predefined values, \"#attribute\", or individual ones, \"attribute:" +"description\". Several entries are separated by semicolons." +msgstr "" +"Ceci est la liste des attributs à afficher dans la liste utilisateurs. Les " +"entrées peuvent etre des valeurs prédéfinies, \"#attribut\" ou " +"individuelles, \"#attribut:description\". Entrées séparées par des point-" +"virgules." + +#: ../lib/modules/posixAccount.inc:494 +msgid "This is the list of valid login shells." +msgstr "Liste des shell de login valides." + +#: ../lib/modules/asteriskAccount.inc:108 +msgid "" +"This is the machine id (e.g. IP address or host name) from which the user " +"can call/receive calls." +msgstr "" +"Identifiant de la machine ( ex : adresse IP, nom d'hôte ) depuis laquelle " +"l'utilisateur peut envoyer/recevoir des appels." + +#: ../lib/modules/inetLocalMailRecipient.inc:81 +msgid "This is the mail server for the user." +msgstr "Serveur de courriel pour cet utilisateur." + +#: ../lib/modules/qmailUser.inc:220 +msgid "This is the mailbox size limit in bytes." +msgstr "Taille max de la mailbox en octets." + +#: ../lib/modules/passwordSelfReset.inc:93 +msgid "This is the minimum length for answers to the security question." +msgstr "Longueur minimum de la réponse à la question de sécurite." + +#: ../lib/modules/nisnetgroup.inc:84 ../lib/modules/organizationalRole.inc:86 +#: ../lib/modules/groupOfNames.inc:86 +msgid "This is the name of this group." +msgstr "Ceci est le nom de ce groupe." + +#: ../lib/modules/posixAccount.inc:561 +msgid "" +"This is the natural name of the host. If empty, the host name will be used." +msgstr "Nom courant du serveur. Si vide, le nom d'usage sera utilisé." + +#: ../lib/modules/pykotaUser.inc:109 +msgid "This is the natural name of the user." +msgstr "Nom d'usage de l'utilisateur." + +#: ../lib/modules/inetOrgPerson.inc:741 +msgid "" +"This is the natural name of the user. If empty, the first and last name is " +"used." +msgstr "Nom courant de l'utilisateur. Si vide, le prenom et nom sont utilisés." + +#: ../lib/modules/posixAccount.inc:539 ../lib/modules/windowsUser.inc:103 +msgid "" +"This is the natural name of the user. If empty, the first and last name or " +"user name is used." +msgstr "" +"Il s'agit du nom courant de l'utilisateur. Si vide, le prénom et nom ou nom " +"utilisateur est utilisé." + +#: ../lib/modules/sambaDomain.inc:122 +msgid "" +"This is the number of bad logon attempts (0 - 999) before the account is " +"deactivated. 0 means unlimited attempts." +msgstr "" +"Nombre d'échecs de connexion (0 - 999) avant désactivation du compte. 0 " +"signifiant illimité." + +#: ../lib/modules/sambaDomain.inc:106 +msgid "" +"This is the number of passwords which are saved to prevent that users reuse " +"old passwords." +msgstr "" +"Nombre de mots de passes qui sont enregistrés pour empecher qu'un " +"utilisateur réutilise des anciens mots de passe." + +#: ../help/help.inc:98 +msgid "" +"This is the number of rows to show in the account list. If more entries are " +"found the list will be split into several pages." +msgstr "" +"Nombre de lignes à montrer dans la liste utilisateur. Si plus d'entrées sont " +"trouvées, la liste sera divisée en plusieurs pages." + +#: ../lib/modules/sambaSamAccount.inc:355 +msgid "This is the path to the user's home directory." +msgstr "Chemin du HOMEDIR de l'utilisateur" + +#: ../lib/modules/sambaGroupMapping.inc:155 +msgid "" +"This is the relative ID (similar to UID on Unix) for Windows accounts. If " +"you leave this empty LAM will calculate the RID from the UID. This can be " +"either a number or the name of a special group:" +msgstr "" +"Il s'agit de l'ID relative (équivalent a UID sous UNIX) pour les comptes " +"Windows. Si tu laisses cette entrée vide LAM calculera le RID depuis le UID. " +"Il est soit un nombre soit le nom d'un groupe spécial:" + +#: ../lib/modules/sambaSamAccount.inc:330 +msgid "" +"This is the relative ID number for your Windows account. You can either " +"enter a number or one of these special accounts: " +msgstr "" +"Nombre ID relatif pour le compte windows.Entrez soit un nombre soit l'un des " +"comptes spéciaux:" + +#: ../lib/modules/sambaSamAccount.inc:334 +msgid "" +"This is the relative ID number for your host account. If you leave this " +"empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" +"Nombre ID relatif pour le compte machine.Si vous laissez vide LAM utilisera: " +"uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../lib/modules/imapAccess.inc:113 +msgid "" +"This is the separator for the mailbox path. Usually, this is \".\" but e.g. " +"Cyrus with \"unixhierarchysep\" will require \"/\"." +msgstr "" +"Ceci est le séparateur de chemin de mailbox. Habituellement, c'est un \".\" " +"mais Cyrus par exemple avec l'option \"unixhierarchysep\" implique le \"/\" " +"comme séparateur." + +#: ../help/help.inc:59 +msgid "" +"This is the server address of your LDAP server. Use ldap:// for unencrypted " +"LDAP connections or TLS encrypted connections. LDAP+SSL (LDAPS) encrypted " +"connections are specified with ldaps://. The port value is optional." +msgstr "" +"Adresse du serveur LDAP. Utilisez ldap:// pour les connexions LDAP en clair " +"ou TLS et ldaps:// pour les connexions cryptés. Le numéro de port est " +"facultatif." + +#: ../help/help.inc:78 +msgid "This is the suffix for the LDAP tree viewer." +msgstr "Suffixe pour le navigateur d'arborescence LDAP" + +#: ../help/help.inc:72 +msgid "" +"This is the suffix of the LDAP tree from where to search for LDAP entries. " +"Only entries in this subtree will be displayed in the account list. When " +"creating a new accont this will be the DN where it is saved." +msgstr "" +"Ceci est le suffixe de l'arbre LDAP dans lequel on cherchera les données. . " +"Seules les entrées dans ce sous-arbre seront affichées dans la liste " +"utilisateurs. Lors de la création d'un nouveau compte, le DN sera celui " +"indiqué." + +#: ../lib/modules/inetLocalMailRecipient.inc:69 +msgid "This is the target email address for the user's mails." +msgstr "Cible d'adresse de courriel pour les mèls utilisateur." + +#: ../lib/modules/customScripts.inc:53 ../lib/modules/uidObject.inc:60 +#: ../lib/modules/aliasEntry.inc:62 +msgid "This is the target of this alias entry." +msgstr "Cible de cet alias." + +#: ../lib/modules/sambaDomain.inc:134 +msgid "" +"This is the time (in minutes) for which the user may not log in after the " +"account was locked. -1 means forever." +msgstr "" +"Temps (en minutes) avant lequel l'utilisateur ne peut pas se connecter après " +"que sont compte ait été bloqué.-1 veut dire toujours." + +#: ../help/help.inc:147 +msgid "" +"This is the time (in minutes) of inactivity after which a user is " +"automatically logged off." +msgstr "" +"C'est le temps (en minutes) d'inactivité après la déconnexion de " +"l'utilisateur." + +#: ../help/help.inc:108 +msgid "" +"This is the time in minutes which LAM caches its LDAP searches. Shorter " +"times will stress LDAP more but decrease the possibility that changes are " +"not identified." +msgstr "" +"Ceci est le temps en minutes pendant lequel LAN mettra en cache ses " +"recherches LDAP. Des temps plus courts chargeront plus LDAP mais reduiront " +"la possibilité que les changements ne soient pas identifiés." + +#: ../lib/modules/sambaSamAccount.inc:349 +msgid "" +"This is the time zone of your Samba server. LAM needs this information to " +"display the logon hours correctly." +msgstr "" +"Fuseau horaire du serveur Samba. LAM a besoin de cette information pour " +"afficher les heures de connexion correctement." + +#: ../lib/modules/sambaSamAccount.inc:321 +msgid "This is the user's primary Windows group." +msgstr "Groupe Principal Windows de l'Utilisateur." + +#: ../lib/modules/puppetClient.inc:89 +msgid "" +"This is this node's parent. All classes and variables are inherited from " +"this node." +msgstr "" +"Ceci est le parent de ce noeud. Toutes les classes et variables sont " +"héritées de ce noeud." + +#: ../lib/modules/asteriskAccount.inc:156 +msgid "" +"This is typically used to allow incoming calls (e.g. from FWD) while having " +"a type=friend entry defined with username and password." +msgstr "" +"Utilisé typiquement pour autoriser les appels entrants ( ex : de FWD ) si " +"une entrée type=ami a été défini avec un nom d'utilisateur et un mot de " +"passe." + +#: ../lib/modules/zarafaUser.inc:117 +msgid "This is used to mark this account as resource." +msgstr "Permet d'indiquer que ce compte est une ressource." + +#: ../lib/modules/posixAccount.inc:127 +msgid "This login shell is invalid!" +msgstr "Le shell de login est incorrecte !" + +#: ../lib/modules/inetLocalMailRecipient.inc:232 +msgid "This mail address is already in use:" +msgstr "Cette adresse mail est déjà utilisée:" + +#: ../lib/modules/imapAccess.inc:107 +msgid "This mailbox will be created/deleted." +msgstr "Cette boîte de messagerie sera créée/supprimée." + +#: ../lib/modules.inc:1237 +msgid "This may overwrite existing values with profile data. Continue?" +msgstr "Ceci pourrait écraser des données existantes. Voulez-vous continuer ?" + +#: ../lib/modules/customFields.inc:113 +msgid "" +"This message is shown when the field value does not match the validation " +"expression." +msgstr "" +"Ce message est affiché lorsque la valeur du champ ne passe pas le test de " +"l'expression de validation." + +#: ../templates/schema/schema.php:350 +msgid "This object class is obsolete." +msgstr "Cette classe d'objet est obsolète." + +#: ../lib/modules/imapAccess.inc:84 +msgid "" +"This option allows you to disable the certificate check of your IMAP server " +"certificate. Disabling the certificate check is not recommended." +msgstr "" +"Cette option permet de désactiver la vérification de certificat du serveur " +"IMAP. Il n'est pas recommandé de désactiver la vérification du certificat." + +#: ../lib/modules/sambaSamAccount.inc:340 +msgid "This option defines the allowed logon hours for this account." +msgstr "" +"Cette option définit les heures de connexion autorisées pour ce compte." + +#: ../lib/modules/sambaSamAccount.inc:343 +msgid "" +"This option defines the allowed logon hours for this account. The format is " +"the same as for the LDAP attribute. The 24*7 hours are represented as 168 " +"bit which are saved as 21 hex (21*8 = 168) values. The first bit represents " +"Sunday 0:00 - 0:59 in GMT." +msgstr "" +"Cette option définit les heures de connexions autorisées pour ce compte.Le " +"format est le meme que l'attribut LDAP.Les 24*7 heures sont représentées " +"comme 168 bits valeurs sauvées en 21 hex (21*8 = 168). Le premier bit " +"représente Dimanche 0:00 - 0:59 en GMT." + +#: ../lib/modules/asteriskExtension.inc:192 +msgid "This pair of extension name and priority already exists." +msgstr "Ce couple extension/priorité existe déjà." + +#: ../lib/modules/sambaSamAccount.inc:364 +msgid "This program is run after the login." +msgstr "Ce programme est lancé après la connexion" + +#: ../lib/modules/sambaSamAccount.inc:388 +msgid "This specifies the reconnect policy." +msgstr "Ceci spécifie la stratégie de reconnexion" + +#: ../lib/modules/zarafaDynamicGroup.inc:96 +#: ../lib/modules/zarafaContact.inc:107 ../lib/modules/zarafaGroup.inc:113 +#: ../lib/modules/zarafaAddressList.inc:84 ../lib/modules/zarafaUser.inc:172 +#: ../lib/modules/zarafaServer.inc:93 +msgid "" +"This specifies the used Zarafa LDAP schema. Select LDAP for e.g. OpenLDAP, " +"Apache Directory, OpenDJ and other non-Windows based LDAP servers. If you " +"run Zarafa against Samba 4 or Active Directory please select Active " +"Directory." +msgstr "" +"Spécifie le schéma ldap utilisé pour Zarafa. Sélectionner LDAP pour " +"OpenLDAP, Apache Directory, OpenDJ et tout autres serveur LDAP non Windows. " +"Si vous utilisez Zarafa avec Samba4 ou Active Directory, sélectionnez Active " +"Directory." + +#: ../lib/modules/sambaSamAccount.inc:385 +msgid "This specifies what to do when the client connection is broken." +msgstr "Ceci spécifie quoi faire lorsque la connexion cliente est coupée" + +#: ../help/help.inc:227 +msgid "" +"This text is displayed on top of the self service login page. You can also " +"input HTML code here." +msgstr "" +"Ce texte est affiché en en-tête de la page de connexion du self-service.Vous " +"pouvez y insérer du code HTML." + +#: ../help/help.inc:229 +msgid "" +"This text is displayed on top of the self service main page. You can also " +"input HTML code here." +msgstr "" +"Ce texte est affiché en en-tête de la page principale du self-service.Vous " +"pouvez aussi insérer du code HTML." + +#: ../help/help.inc:239 +msgid "" +"This text is placed as label for the password field on the login page. LAM " +"will use \"Password\" if you do not enter any text." +msgstr "" +"Ce texte sera utilisé comme étiquette pour le champ mot de passe de la page " +"de connexion. LAM utilisera \"Password\" par défaut." + +#: ../help/help.inc:225 +msgid "" +"This text should shortly describe your selected LDAP search attribute (e.g. " +"email or user name)." +msgstr "" +"Ce texte décrit brièvement l'attribut sélectionné de recherche LDAP(ex. mail " +"ou nom)." + +#: ../lib/modules/selfRegistration.inc:107 +#: ../lib/modules/passwordSelfReset.inc:157 +msgid "This text will be printed on top of the page." +msgstr "Ce texte sera imprimé en haut de la page." + +#: ../lib/modules/qmailUser.inc:240 +msgid "" +"This text will be sent as reply to all incoming mails if the delivery mode " +"is set to autoreply." +msgstr "" +"Ceci est le message qui sera envoyé en réponse à tout nouvel mail si le mode " +"de livraison est déclaré à \"réponse automatique\"." + +#: ../lib/tools/pdfEdit.inc:53 +msgid "This tool allows you to customize the PDF pages." +msgstr "Cet outil vous permet de configurer les pages PDF" + +#: ../templates/lists/changePassword.php:46 +#: ../templates/lists/changePassword.php:243 +msgid "This user is not supported or was not found." +msgstr "Cet utilisateur n'est pas supporté ou est introuvable." + +#: ../lib/modules/windowsUser.inc:116 +msgid "This user name is only used for old Windows versions (e.g. NT4, W98)." +msgstr "" +"Ce nom d'utilisateur sert uniquement pour les anciennes versions de Windows " +"(ex NT4, W09)." + +#: ../templates/lists/userlink.php:61 +msgid "This user was not found!" +msgstr "Cet utilisateur est introuvable !" + +#: ../lib/modules/zarafaUser.inc:414 +msgid "This value can only be \"Room\" or \"Equipment\"." +msgstr "Les valeurs autorisées sont \"Room\" ou \"Equipment\"." + +#: ../lib/modules/zarafaDynamicGroup.inc:204 +#: ../lib/modules/zarafaDynamicGroup.inc:205 +#: ../lib/modules/zarafaContact.inc:189 ../lib/modules/zarafaContact.inc:190 +#: ../lib/modules/zarafaGroup.inc:219 ../lib/modules/zarafaGroup.inc:220 +#: ../lib/modules/zarafaGroup.inc:221 ../lib/modules/zarafaAddressList.inc:171 +#: ../lib/modules/zarafaAddressList.inc:172 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 ../lib/modules/posixAccount.inc:128 +#: ../lib/modules/zarafaUser.inc:421 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:424 ../lib/modules/zarafaUser.inc:425 +#: ../lib/modules/zarafaUser.inc:426 ../lib/modules/zarafaUser.inc:427 +#: ../lib/modules/ppolicyUser.inc:97 ../lib/modules/inetOrgPerson.inc:106 +#: ../lib/modules/zarafaServer.inc:179 +msgid "This value can only be \"true\" or \"false\"." +msgstr "Les valeurs autorisées sont \"vrai\" ou \"faux\"." + +#: ../lib/modules/zarafaUser.inc:422 +msgid "This value can only be \"true\", \"false\" or \"system\"." +msgstr "Les valeurs autorisées sont \"vrai\", \"faux\" ou \"system\"." + +#: ../lib/modules/posixGroup.inc:611 +msgid "This value must be a list of user names separated by semicolons." +msgstr "" +"Cette valeur doit être une liste de noms séparée par des point-virgules." + +#: ../help/help.inc:264 +msgid "This will create a new organisational unit under the selected one." +msgstr "" +"Ceci va créer une nouvelle unité organisationnelle sous celle sélectionnée." + +#: ../lib/modules/posixAccount.inc:482 +msgid "This will create the user's home directory on the specified server." +msgstr "" +"Cela créera le répertoire home de l'utilisateur sur le serveur spécifié. " + +#: ../help/help.inc:266 +msgid "" +"This will delete the selected organisational unit. The OU has to be empty." +msgstr "" +"Ceci va supprimer l'unité organisationnelle sélectionnée. L'OU doit être " +"vide." + +#: ../help/help.inc:135 +msgid "This will delete the selected profile." +msgstr "Ceci va supprimer le profil sélectionné." + +#: ../lib/modules/kolabGroup.inc:118 ../lib/modules/puppetClient.inc:109 +#: ../lib/modules/qmailUser.inc:264 ../lib/modules/zarafaContact.inc:88 +#: ../lib/modules/posixGroup.inc:538 ../lib/modules/eduPerson.inc:151 +#: ../lib/modules/pykotaGroup.inc:130 ../lib/modules/sambaSamAccount.inc:403 +#: ../lib/modules/posixAccount.inc:433 ../lib/modules/zarafaUser.inc:137 +#: ../lib/modules/pykotaUser.inc:161 ../lib/modules/shadowAccount.inc:198 +#: ../lib/modules/qmailGroup.inc:233 +#: ../lib/modules/authorizedServiceObject.inc:90 +#: ../lib/modules/passwordSelfReset.inc:153 ../lib/modules/hostObject.inc:84 +msgid "This will enable the extension automatically if this profile is loaded." +msgstr "Ceci active automatiquement l'extension quand le profil est chargé." + +#: ../lib/modules/customScripts.inc:93 +msgid "" +"This will hide the custom scripts tab when you edit an account. Manual " +"actions are not possible when the tab is not visible." +msgstr "" +"Ceci masquera l'onglet des scripts personnalisés. Les lancements manuels ne " +"sont pas possibles lorsque l'onglet n'est pas visible." + +#: ../lib/modules/sambaSamAccount.inc:265 +msgid "This will reset the host's password to a default value." +msgstr "Ceci va réinitialiser le mot de passe à la valeur par défaut." + +#: ../templates/lists/changePassword.php:311 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail." +msgstr "" +"Ceci génère un mot de passe aléatoire et l'affiche à l'écran ou l'envoi par " +"mail à l'utilisateur." + +#: ../help/help.inc:245 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail. Please edit your LAM server profile to setup the mail " +"settings." +msgstr "" +"Ceci génère un mot de passe aléatoire et l'affiche à l'écran ou l'envoi par " +"mail à l'utilisateur. Déclarez vos paramètres de messagerie dans le profil " +"de votre serveur LAM." + +#: ../lib/modules/kolabGroup.inc:114 ../lib/modules/kolabUser.inc:179 +#: ../lib/modules/kolabSharedFolder.inc:167 +msgid "" +"This will set a special flag on the account which tells Kolabd to remove it. " +"Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes)." +msgstr "" +"Ceci positionne un attribut spécial sur le compte qui indique à Kolabd de le " +"supprimer. Utiliser ceci pour supprimer proprement les comptes Kolab (ex. " +"ceci supprime les mailbox)." + +#: ../lib/modules/qmailUser.inc:212 +msgid "" +"This will set the user's account status. You may disable the mail account " +"here." +msgstr "" +"Ceci définit le statut du compte utilisateur. Vous pouvez désactiver un " +"compte mail ici." + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Thursday" +msgstr "Jeudi" + +#: ../lib/modules/mitKerberos.inc:136 ../lib/modules/mitKerberos.inc:195 +#: ../lib/modules/mitKerberos.inc:230 ../lib/modules/mitKerberos.inc:254 +#: ../lib/modules/mitKerberos.inc:355 ../lib/modules/mitKerberos.inc:775 +#: ../lib/modules/heimdalKerberos.inc:110 +#: ../lib/modules/heimdalKerberos.inc:164 +#: ../lib/modules/heimdalKerberos.inc:199 +#: ../lib/modules/heimdalKerberos.inc:221 +#: ../lib/modules/heimdalKerberos.inc:302 +#: ../lib/modules/heimdalKerberos.inc:687 +msgid "Ticket lifetime" +msgstr "Durée de vie d'un ticket" + +#: ../lib/modules/mitKerberos.inc:293 ../lib/modules/mitKerberos.inc:294 +#: ../lib/modules/heimdalKerberos.inc:257 +#: ../lib/modules/heimdalKerberos.inc:258 +msgid "Ticket lifetime must be a number." +msgstr "La durée de vie d'un ticket doit être un nombre." + +#: ../lib/modules/sambaSamAccount.inc:1397 +msgid "Time" +msgstr "Temps" + +#: ../lib/modules/sambaSamAccount.inc:369 +msgid "Time limit" +msgstr "Limite de temps" + +#: ../lib/modules/sambaSamAccount.inc:348 +#: ../lib/modules/sambaSamAccount.inc:579 +msgid "Time zone" +msgstr "Fuseau Horaire" + +#: ../lib/modules/bindDLZ.inc:94 ../lib/modules/bindDLZ.inc:98 +#: ../lib/modules/bindDLZ.inc:103 ../lib/modules/bindDLZ.inc:108 +#: ../lib/modules/bindDLZ.inc:113 ../lib/modules/bindDLZ.inc:118 +#: ../lib/modules/bindDLZ.inc:123 ../lib/modules/bindDLZ.inc:254 +#: ../lib/modules/bindDLZ.inc:267 ../lib/modules/bindDLZ.inc:287 +#: ../lib/modules/bindDLZ.inc:300 ../lib/modules/bindDLZ.inc:331 +#: ../lib/modules/bindDLZ.inc:363 ../lib/modules/bindDLZ.inc:375 +#: ../lib/modules/bindDLZ.inc:402 ../lib/modules/bindDLZ.inc:423 +#: ../lib/modules/bindDLZ.inc:469 ../lib/modules/bindDLZ.inc:472 +#: ../lib/modules/bindDLZ.inc:474 ../lib/modules/bindDLZ.inc:476 +#: ../lib/modules/bindDLZ.inc:478 ../lib/modules/bindDLZ.inc:480 +#: ../lib/modules/bindDLZ.inc:482 ../lib/modules/bindDLZ.inc:484 +#: ../lib/modules/bindDLZ.inc:486 ../lib/modules/bindDLZ.inc:651 +#: ../lib/modules/bindDLZ.inc:754 ../lib/modules/bindDLZ.inc:833 +#: ../lib/modules/bindDLZ.inc:922 ../lib/modules/bindDLZ.inc:1034 +#: ../lib/modules/bindDLZ.inc:1166 ../lib/modules/bindDLZ.inc:1244 +#: ../lib/modules/bindDLZ.inc:1370 ../lib/modules/bindDLZ.inc:1473 +#: ../lib/modules/bindDLZ.inc:1493 ../lib/modules/bindDLZ.inc:1514 +#: ../lib/modules/bindDLZ.inc:1548 ../lib/modules/bindDLZ.inc:1573 +#: ../lib/modules/bindDLZ.inc:1603 +msgid "Timeout" +msgstr "Timeout" + +#: ../lib/modules/bindDLZ.inc:430 +msgid "Timeouts" +msgstr "Timeouts" + +#: ../lib/modules/pykotaUser.inc:654 ../lib/modules/pykotaUser.inc:1003 +msgid "Title" +msgstr "Titre" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:45 +msgid "To" +msgstr "A" + +#: ../lib/modules/posixAccount.inc:531 +msgid "To disable login use /bin/false." +msgstr "Pour désactiver les connexions, déclarer ici /bin/fasle." + +#: ../lib/modules/sambaSamAccount.inc:573 +msgid "Tokyo, Seoul, Osaka, Yakutsk" +msgstr "Tokyo, Seoul, Osaka, Yakutsk" + +#: ../templates/config/confmain.php:406 +msgid "Tool settings" +msgstr "Paramètre des outils" + +#: ../templates/tools.php:63 ../templates/main_header.php:147 +msgid "Tools" +msgstr "Outils" + +#: ../templates/serverInfo.php:357 +msgid "Total" +msgstr "Total" + +#: ../templates/serverInfo.php:242 ../templates/serverInfo.php:247 +msgid "Total connections" +msgstr "Nombre de connexions totales" + +#: ../templates/3rdParty/pla/lib/export_functions.php:202 +msgid "Total entries" +msgstr "Entrées total" + +#: ../lib/modules/pykotaUser.inc:141 +msgid "Total money paid by the user." +msgstr "Somme payée par l'utilisateur." + +#: ../lib/modules/pykotaUser.inc:140 ../lib/modules/pykotaUser.inc:264 +#: ../lib/modules/pykotaUser.inc:586 ../lib/modules/pykotaUser.inc:901 +#: ../lib/modules/pykotaUser.inc:954 +msgid "Total paid" +msgstr "Somme payée" + +#: ../lib/modules/pykotaUser.inc:282 +msgid "Total paid (read-only)" +msgstr "Total réglé (lecture seule)" + +#: ../lib/types/user.inc:682 +msgid "Translate GID number to group name" +msgstr "Convertir le numéro de GID en nom de groupe" + +#: ../templates/config/confmain.php:247 ../help/help.inc:77 +msgid "Tree suffix" +msgstr "Suffixe arborescence" + +#: ../templates/multiEdit.php:92 ../templates/main_header.php:178 +msgid "Tree view" +msgstr "Vue arborescente" + +#: ../templates/config/confmain.php:567 +msgid "TreeSuffix is invalid!" +msgstr "Suffixe d'arborescence incorrecte !" + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Tuesday" +msgstr "Mardi" + +#: ../templates/multiEdit.php:118 ../templates/selfService/profManage.php:206 +#: ../templates/schema/schema.php:348 ../lib/modules/zarafaUser.inc:116 +#: ../lib/modules/zarafaUser.inc:238 ../lib/modules/zarafaUser.inc:361 +#: ../lib/modules/zarafaUser.inc:535 ../lib/modules/zarafaUser.inc:1251 +#: ../lib/modules/zarafaUser.inc:1797 ../lib/modules/kolabSharedFolder.inc:162 +#: ../lib/modules/kolabSharedFolder.inc:201 +#: ../lib/modules/kolabSharedFolder.inc:241 +#: ../lib/modules/kolabSharedFolder.inc:302 +#: ../lib/modules/kolabSharedFolder.inc:571 +#: ../lib/modules/customFields.inc:100 ../lib/modules/customFields.inc:1070 +#: ../lib/modules/customFields.inc:1702 +msgid "Type" +msgstr "Type" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:210 ../lib/modules/posixAccount.inc:228 +#: ../lib/modules/posixAccount.inc:497 +msgid "UID generator" +msgstr "Générateur d'UID" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID has changed. Do you want to change home directory?" +msgstr "UID modifié. Voulez-vous changer de répertoire home ?" + +#: ../lib/modules/posixAccount.inc:107 +msgid "" +"UID must be a number. It has to be inside the UID range which is defined in " +"your configuration profile." +msgstr "" +"UID doit être un nombre.Il doit être compris dans l'intervale UID qui est " +"défini dans le profil de configu" + +#: ../lib/types/host.inc:95 ../lib/types/user.inc:92 +#: ../lib/modules/qmailUser.inc:112 ../lib/modules/qmailUser.inc:231 +#: ../lib/modules/qmailUser.inc:332 ../lib/modules/qmailUser.inc:418 +#: ../lib/modules/qmailUser.inc:570 ../lib/modules/qmailUser.inc:1142 +#: ../lib/modules/posixAccount.inc:108 ../lib/modules/posixAccount.inc:291 +#: ../lib/modules/posixAccount.inc:383 ../lib/modules/posixAccount.inc:412 +#: ../lib/modules/posixAccount.inc:449 ../lib/modules/posixAccount.inc:453 +#: ../lib/modules/posixAccount.inc:461 ../lib/modules/posixAccount.inc:1433 +#: ../lib/modules/posixAccount.inc:1852 +msgid "UID number" +msgstr "Numéro UID" + +#: ../lib/modules/posixAccount.inc:108 +#, php-format +msgid "" +"UID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -uid %s -exec chown %s {} \\;'" +msgstr "" +"Le numéro d'UID a changé. Vous devez lancer la commande suivante en tant que " +"root pour conserver les droits sur les fichiers existants: 'find / -uid %s -" +"exec chown %s {} \\;'" + +#: ../lib/modules/qmailUser.inc:463 +msgid "UID number is already in use." +msgstr "L'UID number existe déjà." + +#: ../lib/modules/posixAccount.inc:99 +msgid "UID ranges for Unix accounts" +msgstr "Intervale UID pour les comptes Unix" + +#: ../lib/modules/sambaSamAccount.inc:306 +msgid "" +"UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced " +"with user and group name." +msgstr "" +"Chemin UNC (\\\\Serveur\\partage) des homedir. $user et $group sont " +"remplacés par les noms utilisateurs et groupe." + +#: ../lib/modules/windowsUser.inc:248 +msgid "" +"UNC-path (\\\\server\\share\\) of home directory. If no home drive is set " +"then this directory must start with a drive letter (e.g. \"c:\\dir\\user\")." +msgstr "" +"Chemin UNC (\\\\serveur\\partage) du dossier home. Si aucun partage home " +"n'est défini, le dossier doit commencer par une lettre de lecteur (ex \"c:" +"\\dossier\\utilisateur\")." + +#: ../lib/modules/eduPerson.inc:119 ../lib/modules/eduPerson.inc:123 +msgid "" +"URI (either URN or URL) that indicates a set of rights to specific resources." +msgstr "" +"URI ( URN ou URL ) indiquant un ensemble de droits pour une ressource " +"spécifique." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1883 +msgid "URL" +msgstr "URL" + +#: ../lib/modules/bindDLZ.inc:1687 ../lib/modules/bindDLZ.inc:2302 +msgid "Unable to add DNS record." +msgstr "Impossible d'ajouter l'entrée DNS." + +#: ../lib/modules/imapAccess.inc:180 +msgid "Unable to change ACL on IMAP server for mailbox deletion." +msgstr "" +"Impossible de modifier l'ACL sur le serveur IMAP pour la suppression de " +"boîte de messagerie." + +#: ../lib/modules/mitKerberos.inc:1155 ../lib/modules/mitKerberos.inc:1159 +#: ../lib/modules/heimdalKerberos.inc:1024 +msgid "Unable to change Kerberos password." +msgstr "Impossible de modifier le mot de passe Kerberos." + +#: ../lib/modules/windowsUser.inc:1847 ../lib/modules/windowsUser.inc:1873 +msgid "Unable to change password." +msgstr "Impossible de modifier le mot de passe." + +#: ../templates/selfService/selfServiceMain.php:338 +msgid "" +"Unable to change your account. Maybe you do not have enough rights to change " +"the settings." +msgstr "" +"Impossible de modifier ce compte. Vos autorisations ne sont peut-être pas " +"suffisantes pour modifier les données." + +#: ../templates/selfService/selfServiceMain.php:335 +msgid "" +"Unable to change your account. Your changes might violate the password " +"policy." +msgstr "" +"Impossible de modifier votre compte. Il se peut que les modifications " +"contreviennent à la stratégie de mot de passe." + +#: ../templates/tests/lamdaemonTest.php:261 ../lib/lamdaemon.inc:76 +#: ../lib/lamdaemon.inc:81 +msgid "Unable to connect to remote server!" +msgstr "Impossible de se connecter au serveur distant !" + +#: ../templates/massDoUpload.php:193 +msgid "Unable to create ZIP file for PDF export." +msgstr "Impossible de créer le fichier ZIP pour l'export PDF." + +#: ../lib/modules/selfRegistration.inc:699 +#: ../lib/modules/selfRegistration.inc:703 +msgid "Unable to create account." +msgstr "Impossible de créer le compte." + +#: ../lib/modules/imapAccess.inc:182 +msgid "Unable to create mailbox on IMAP server." +msgstr "Impossible de créer la boîte de messagerie sur le serveur IMAP." + +#: ../templates/ou_edit.php:80 +msgid "Unable to create new OU!" +msgstr "Impossible de créer un nouveau OU !" + +#: ../lib/types/automountType.inc:270 +msgid "Unable to create new automount map." +msgstr "Impossible de créer un nouveau mappage automount." + +#: ../templates/config/profmanage.php:82 +#: ../templates/selfService/profManage.php:59 +msgid "Unable to create new profile!" +msgstr "Impossible de créer un nouveau profil !" + +#: ../lib/types/bind.inc:215 +msgid "Unable to create new zone." +msgstr "Impossible de créer la nouvelle zone." + +#: ../lib/modules/bindDLZ.inc:1677 +#, php-format +msgid "Unable to delete DNS record \"%s\"." +msgstr "Impossible de supprimer l'enregistrement DNS \"%s\"." + +#: ../templates/ou_edit.php:97 +msgid "Unable to delete OU!" +msgstr "Impossible de supprimer l'OU !" + +#: ../templates/pdfedit/pdfmain.php:94 +msgid "Unable to delete PDF structure!" +msgstr "Impossible de supprimer la structure PDF !" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:25 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:57 +msgid "Unable to delete entry, it does not exist" +msgstr "Impossible de supprimer l'entrée inexistante" + +#: ../lib/pdfstruct.inc:291 ../lib/pdfstruct.inc:303 +msgid "Unable to delete logo file." +msgstr "Impossible de supprimer le fichier de logo." + +#: ../lib/modules/imapAccess.inc:181 +msgid "Unable to delete mailbox from IMAP server." +msgstr "Impossible de supprimer la boîte de messagerie du serveur IMAP." + +#: ../templates/config/profmanage.php:123 +#: ../templates/selfService/profManage.php:87 +#: ../templates/profedit/profilemain.php:108 ../lib/config.inc:154 +#: ../lib/config.inc:166 ../lib/config.inc:173 ../lib/config.inc:181 +msgid "Unable to delete profile!" +msgstr "Impossible de supprimer un profil !" + +#: ../lib/modules/pykotaPrinter.inc:220 +#, php-format +msgid "Unable to find a printer with name \"%s\"." +msgstr "Impossible de trouver une imprimante nommée \"%s\"." + +#: ../lib/modules/posixAccount.inc:2072 ../lib/modules/posixAccount.inc:2081 +#: ../lib/modules/posixAccount.inc:2347 ../lib/modules/nisnetgroup.inc:543 +#: ../lib/modules/groupOfNamesUser.inc:388 +msgid "Unable to find group in LDAP." +msgstr "Impossible de trouver le groupe dans LDAP." + +#: ../lib/modules/passwordSelfReset.inc:950 +msgid "Unable to find password security answer for this account." +msgstr "" +"Impossible de trouver une réponse de sécurité pour le mot de passe de ce " +"compte." + +#: ../lib/modules/passwordSelfReset.inc:942 +#: ../lib/modules/passwordSelfReset.inc:1161 +msgid "Unable to find password security question for this account." +msgstr "" +"Impossible de trouver une question de sécurité pour le mot de passe de ce " +"compte." + +#: ../lib/modules/organizationalRoleUser.inc:334 +msgid "Unable to find role in LDAP." +msgstr "Impossible de trouver le rôle dans LDAP." + +#: ../templates/login.php:591 ../templates/login.php:597 +msgid "Unable to find the user name in LDAP." +msgstr "Impossible de trouver le nom d'utilisateur dans LDAP." + +#: ../lib/modules/passwordSelfReset.inc:933 +#: ../lib/modules/passwordSelfReset.inc:1242 +msgid "Unable to find user account." +msgstr "Impossible de trouver le compte utilisateur." + +#: ../templates/config/mainmanage.php:194 +msgid "Unable to import server certificate. Please use the upload function." +msgstr "" +"Impossible d'importer le certificat du serveur. Veuillez utiliser la " +"fonction chargement." + +#: ../lib/modules.inc:1521 ../lib/modules.inc:1525 +msgid "Unable to load LDAP entry:" +msgstr "Impossible de charger l'entrée LDAP:" + +#: ../lib/profiles.inc:98 ../lib/profiles.inc:102 ../lib/selfService.inc:196 +#: ../lib/selfService.inc:200 +msgid "Unable to load profile!" +msgstr "Impossible de charger le profil !" + +#: ../lib/modules/imapAccess.inc:183 +msgid "Unable to locate mailbox on IMAP." +msgstr "Impossible de trouver la boîte de messagerie sur IMAP." + +#: ../lib/modules/inetOrgPerson.inc:101 +msgid "Unable to process this file." +msgstr "Impossible de traiter ce fichier." + +#: ../templates/3rdParty/pla/lib/import_functions.php:388 +#: ../templates/3rdParty/pla/lib/import_functions.php:393 +msgid "Unable to read file." +msgstr "Impossible de lire le fichier." + +#: ../lib/modules/selfRegistration.inc:692 +msgid "Unable to register your new account. Please try again." +msgstr "Impossible d'enregistrer le nouveau compte. Veuillez ré-essayer." + +#: ../lib/modules/passwordSelfReset.inc:1440 +#: ../lib/modules/passwordSelfReset.inc:1449 +#: ../lib/modules/passwordSelfReset.inc:1455 +#: ../lib/modules/passwordSelfReset.inc:1464 +msgid "Unable to reset password." +msgstr "Impossible de ré-initialiser le mot de passe." + +#: ../templates/3rdParty/pla/lib/functions.php:1945 +msgid "Unable to retrieve image" +msgstr "Impossible de récupérer l'image" + +#: ../templates/tests/schemaTest.php:61 ../templates/schema/schema.php:93 +#: ../templates/schema/schema.php:111 ../templates/schema/schema.php:272 +#: ../templates/schema/schema.php:306 +msgid "Unable to retrieve schema!" +msgstr "Impossible de récupérer le schema!" + +#: ../templates/selfService/adminMain.php:283 +#: ../templates/profedit/profilepage.php:124 +msgid "Unable to save profile!" +msgstr "Impossible de sauvegarder le profil !" + +#: ../lib/account.inc:999 ../lib/account.inc:1037 +msgid "Unable to send mail!" +msgstr "Impossible d'envoyer le mail !" + +#: ../lib/modules/bindDLZ.inc:1712 +#, php-format +msgid "Unable to update DNS record \"%s\"." +msgstr "Impossible de mettre à jour l'enregistrement DNS \"%s\"." + +#: ../lib/pdfstruct.inc:249 ../lib/pdfstruct.inc:259 ../lib/pdfstruct.inc:262 +msgid "Unable to upload logo file." +msgstr "Impossible de charger le fichier de logo." + +#: ../lib/modules/passwordSelfReset.inc:999 +#: ../lib/modules/passwordSelfReset.inc:1254 +msgid "Unable to verify your password reset request. Please try again." +msgstr "" +"Impossible de vérifier votre demande de réinitalisation de mot de passe. " +"Merci de réessayer." + +#: ../lib/modules/selfRegistration.inc:726 +msgid "Unable to verify your user creation request. Please try again." +msgstr "" +"Impossible de vérifier votre demande de création de compte. Veuillez ré-" +"essayer." + +#: ../templates/serverInfo.php:293 +msgid "Unbind" +msgstr "Déconnexion" + +#: ../lib/modules/windowsGroup.inc:66 +msgid "Universal" +msgstr "Universel" + +#: ../templates/lists/changePassword.php:398 +#: ../templates/lists/changePassword.php:429 ../lib/types/user.inc:268 +#: ../lib/types/user.inc:368 ../lib/types/user.inc:400 +#: ../lib/types/user.inc:821 ../lib/modules/posixGroup.inc:373 +#: ../lib/modules/posixAccount.inc:168 +msgid "Unix" +msgstr "Unix" + +#: ../templates/tests/lamdaemonTest.php:214 +msgid "Unix account" +msgstr "Compte Unix" + +#: ../lib/modules/posixAccount.inc:263 ../lib/modules/posixAccount.inc:1566 +msgid "Unix groups" +msgstr "Groupes unix" + +#: ../lib/modules/dhcp_settings.inc:201 ../lib/modules/dhcp_settings.inc:218 +#: ../lib/modules/dhcp_settings.inc:294 ../lib/modules/dhcp_settings.inc:602 +#: ../lib/modules/dhcp_settings.inc:682 +msgid "Unknown clients" +msgstr "Clients inconnus" + +#: ../lib/modules/kolabUser.inc:252 ../lib/modules/kolabSharedFolder.inc:256 +#, php-format +msgid "Unknown delegate address: %s" +msgstr "Adresse de délégation inconnue : %s" + +#: ../templates/3rdParty/pla/lib/import_functions.php:233 +msgid "Unkown change type" +msgstr "Type de modification inconnu" + +#: ../lib/types/user.inc:349 ../lib/types/user.inc:354 +#: ../lib/modules/windowsUser.inc:732 +msgid "Unlock" +msgstr "Débloquer" + +#: ../templates/lists/changePassword.php:205 +#: ../templates/lists/changePassword.php:395 +#: ../templates/lists/changePassword.php:415 +#: ../templates/lists/changePassword.php:417 +#: ../lib/modules/ppolicyUser.inc:146 +msgid "Unlock account" +msgstr "Débloquer le compte" + +#: ../templates/lists/changePassword.php:265 +msgid "Unlock account?" +msgstr "Débloquer le compte?" + +#: ../lib/modules/posixGroup.inc:211 ../lib/modules/posixAccount.inc:1502 +#: ../lib/modules/inetOrgPerson.inc:1562 +msgid "Unlock password" +msgstr "Déblocage Mot de passe" + +#: ../templates/masscreate.php:107 ../templates/config/confmodules.php:386 +msgid "Unsolved dependency:" +msgstr "Dépendance non résolue :" + +#: ../templates/pdfedit/pdfpage.php:473 +msgid "Up" +msgstr "Dessus" + +#: ../templates/lists/changePassword.php:220 +msgid "Update Samba password timestamp" +msgstr "Mettre à jour l'horodatages de mot de passe Samba" + +#: ../lib/modules/sambaSamAccount.inc:249 +msgid "Update attribute \"sambaPwdLastSet\" on password change" +msgstr "" +"Mettre à jour l'attribut \"sambaPwdLastSet\" lors des changement de mot de " +"passe" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1440 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:194 +msgid "Update object" +msgstr "Mettre à jour l'objet" + +#: ../lib/modules/imapAccess.inc:322 ../lib/modules/imapAccess.inc:331 +msgid "Update quota" +msgstr "Mettre à jour les quota" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:165 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:129 +msgid "Update values" +msgstr "Mettre à jour valeures" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:118 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:118 +msgid "Updating object" +msgstr "Mise à jour de l'objet" + +#: ../templates/config/mainmanage.php:334 ../templates/pdfedit/pdfmain.php:247 +#: ../lib/modules/ldapPublicKey.inc:126 ../lib/modules/inetOrgPerson.inc:1830 +msgid "Upload" +msgstr "Charger" + +#: ../templates/config/mainmanage.php:336 +msgid "Upload CA certificate in DER/PEM format." +msgstr "Charger le certificat d'AC au format DER/PEM." + +#: ../lib/modules/ldapPublicKey.inc:81 +msgid "Upload a file with one or more keys. Each line contains one key." +msgstr "" +"Charger un fichier contenant une ou plusieurs clés. Chaque ligne contenant " +"une clé." + +#: ../templates/massBuildAccounts.php:242 +msgid "Upload accounts to LDAP" +msgstr "Upload comptes dans LDAP" + +#: ../lib/modules/ldapPublicKey.inc:122 ../lib/modules/customFields.inc:164 +#: ../lib/modules/customFields.inc:3428 +msgid "Upload file" +msgstr "Charger le fichier" + +#: ../templates/masscreate.php:277 +msgid "Upload file and create accounts" +msgstr "Charge le fichier et crée les comptes" + +#: ../templates/massDoUpload.php:254 ../lib/lists.inc:1071 +msgid "Upload has finished" +msgstr "Chargement terminé" + +#: ../lib/modules.inc:504 +#, php-format +msgid "Upload was stopped after errors in %s module!" +msgstr "Upload interrompu après erreurs dans %s module !" + +#: ../lib/pdfstruct.inc:256 +msgid "Uploaded logo file." +msgstr "Fichier de logo chargé." + +#: ../templates/serverInfo.php:222 +msgid "Uptime" +msgstr "Uptime" + +#: ../templates/schema/schema.php:209 +msgid "Usage" +msgstr "Utilisation" + +#: ../lib/modules/authorizedServiceObject.inc:82 +#: ../lib/modules/authorizedServiceObject.inc:86 +msgid "Use * for all services." +msgstr "Utilisez * pour tous les services." + +#: ../lib/modules/sambaSamAccount.inc:267 +#: ../lib/modules/sambaSamAccount.inc:270 +#: ../lib/modules/sambaSamAccount.inc:431 +msgid "Use Unix password" +msgstr "Utilisez le mot de passe unix" + +#: ../templates/selfService/adminMain.php:469 ../help/help.inc:242 +msgid "Use for all operations" +msgstr "Appliquer à toutes les opérations" + +#: ../lib/modules/sambaSamAccount.inc:273 +#: ../lib/modules/sambaSamAccount.inc:276 +#: ../lib/modules/sambaSamAccount.inc:439 +#: ../lib/modules/sambaSamAccount.inc:1143 +#: ../lib/modules/sambaSamAccount.inc:1733 +msgid "Use no password" +msgstr "Pas de mot de passe" + +#: ../help/help.inc:272 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of entries to modify." +msgstr "" +"Saisissez un filtre LDAP supplémentaire (ex : \"(cn!=admin)\") pour réduire " +"le nombre d'entrées à modifier." + +#: ../help/help.inc:171 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of visible elements for this account type." +msgstr "" +"Saisissez un filtre LDAP supplémentaire (ex : \"(cn!=admin)\") pour réduire " +"le nombre d'éléments visibles pour ce type de compte." + +#: ../help/help.inc:241 +msgid "" +"Use this to enter an additional LDAP filter (e.g. " +"\"(objectClass=passwordSelfReset)\") to reduce the number of accounts who " +"may use self service." +msgstr "" +"Saisissez un filtre LDAP supplémentaire (ex : " +"\"(objectClass=passwordSelfReset)\") pour réduire le nombre de comptes " +"utilisant le self-service de mot de passe." + +#: ../lib/modules/asteriskAccount.inc:188 +msgid "Use this to hide the caller ID." +msgstr "Masquer l'identifiant d'appel." + +#: ../lib/modules/zarafaDynamicGroup.inc:80 +#: ../lib/modules/zarafaContact.inc:72 ../lib/modules/zarafaGroup.inc:86 +#: ../lib/modules/zarafaAddressList.inc:68 ../lib/modules/zarafaUser.inc:81 +msgid "Use this to hide this entry from the address book." +msgstr "Masquer l'entrée dans le carnet d'adresse." + +#: ../lib/modules/sambaGroupMapping.inc:167 +msgid "" +"Use this to specify other groups or accounts from other domains as group " +"members." +msgstr "" +"Utilisez ceci pour déclarer d'autres groupes ou comptes d'autres domaines " +"comme membres de groupe." + +#: ../lib/modules/imapAccess.inc:87 +msgid "" +"Use wildcards like $uid$ for LDAP attributes of the current LAM admin user." +msgstr "" +"Utiliser les joker tels que $uid$ pour les attibuts LDAP de l'administrateur " +"LAM." + +#: ../lib/modules/pykotaBillingCode.inc:86 +msgid "Used balance for the billing code." +msgstr "Solde pour le compte de facturation." + +#: ../lib/modules/quota.inc:109 ../lib/modules/quota.inc:400 +msgid "Used blocks" +msgstr "Blocs utilisés" + +#: ../lib/modules/quota.inc:110 +msgid "Used blocks. 1000 blocks are usually 1MB" +msgstr "Blocs utilisés. 1000 blocs representent d'habitude 1 MB." + +#: ../templates/schema/schema.php:268 +msgid "Used by attributes" +msgstr "Utilisés par les attributs" + +#: ../templates/schema/schema.php:237 +msgid "Used by object classes" +msgstr "Utilisés par les classes d'objet" + +#: ../lib/modules/sambaDomain.inc:98 +msgid "Used for calculating RIDs from UID/GID. Do not change if unsure." +msgstr "" +"Utilisé pour calculer les RIDs à partir des UID/GID. Ne changez rien sans " +"etre sur de ce que vous faites." + +#: ../lib/modules/asteriskAccount.inc:220 +msgid "Used for registration context." +msgstr "Utilisé pour le contexte d'enregistrement." + +#: ../lib/modules/quota.inc:131 ../lib/modules/quota.inc:404 +msgid "Used inodes" +msgstr "Inodes utilisés" + +#: ../lib/modules/quota.inc:132 +msgid "Used inodes (files)" +msgstr "Inodes utilisés (fichiers)" + +#: ../lib/modules/asteriskAccount.inc:192 +msgid "Used to automatically hangup the call if no RTP traffic is received." +msgstr "Raccroche automatiquement lorsqu'il n'y a aucun trafic RTP." + +#: ../lib/modules/asteriskAccount.inc:168 +#: ../lib/modules/asteriskAccount.inc:172 +msgid "" +"Used to limit SIP traffic to and from this peer to a certain IP or network." +msgstr "Limite le trafic SIP entre cet hôte et une adresse IP ou un réseau." + +#: ../lib/modules/asteriskAccount.inc:184 +msgid "Used to regularly check that a device is still online." +msgstr "Permet de vérifier régulièrement qu'un hôte est en ligne." + +#: ../lib/types/sudo.inc:78 ../lib/modules/nisnetgroup.inc:220 +#: ../lib/modules/nisnetgroup.inc:586 ../lib/modules/nisMailAlias.inc:350 +msgid "User" +msgstr "Utilisateur" + +#: ../lib/types/user.inc:62 +msgid "User accounts (e.g. Unix, Samba and Kolab)" +msgstr "Comptes Utilisateurs (ex. Unix, Samba et Kolab)" + +#: ../lib/modules/asteriskAccount.inc:127 +#: ../lib/modules/asteriskAccount.inc:270 +#: ../lib/modules/asteriskAccount.inc:340 +#: ../lib/modules/asteriskAccount.inc:598 +#: ../lib/modules/asteriskAccount.inc:986 +#: ../lib/modules/asteriskAccount.inc:1241 +msgid "User agent" +msgstr "User agent" + +#: ../lib/modules/sambaSamAccount.inc:297 +#: ../lib/modules/sambaSamAccount.inc:1167 +msgid "User can change password" +msgstr "L'utilisateur peut changer de mot de passe." + +#: ../lib/modules/inetOrgPerson.inc:163 ../lib/modules/inetOrgPerson.inc:844 +#: ../lib/modules/inetOrgPerson.inc:1507 ../lib/modules/inetOrgPerson.inc:2719 +#: ../lib/modules/inetOrgPerson.inc:3561 +msgid "User certificates" +msgstr "Certificats utilisateur" + +#: ../lib/types/user.inc:529 +#, php-format +msgid "User count: %s" +msgstr "Nombre d'utilisateurs : %s" + +#: ../lib/modules/pykotaUser.inc:121 +msgid "User description." +msgstr "Description de l'utilisateur." + +#: ../lib/modules/posixAccount.inc:511 +msgid "User description. If left empty first and last name will be used." +msgstr "" +"Description de l'utilisateur. Les noms et prénoms seront utilisés par défaut." + +#: ../lib/modules/inetOrgPerson.inc:633 +msgid "User description. If left empty sur- and give name will be used." +msgstr "" +"Description de l'utilisateur. Les noms et prénoms seront utilisés par défaut." + +#: ../lib/modules/account.inc:106 +msgid "User description. If left empty user name will be used." +msgstr "Description utilisateur. Si vide le nom d'utilisateur sera utilisé." + +#: ../templates/schema/schema.php:204 +msgid "User modification" +msgstr "Modification utilisateur" + +#: ../lib/modules/mitKerberos.inc:224 ../lib/modules/mitKerberos.inc:250 +#: ../lib/modules/mitKerberos.inc:374 ../lib/modules/mitKerberos.inc:639 +#: ../lib/modules/mitKerberos.inc:779 ../lib/modules/sambaSamAccount.inc:299 +#: ../lib/modules/sambaSamAccount.inc:1173 ../lib/modules/windowsUser.inc:741 +#: ../lib/modules/heimdalKerberos.inc:106 +#: ../lib/modules/heimdalKerberos.inc:193 +#: ../lib/modules/heimdalKerberos.inc:220 +#: ../lib/modules/heimdalKerberos.inc:332 +#: ../lib/modules/heimdalKerberos.inc:549 +#: ../lib/modules/heimdalKerberos.inc:683 +msgid "User must change password" +msgstr "L'utilisateur doit changer de mot de passe" + +#: ../templates/lists/changePassword.php:276 ../templates/login.php:334 +#: ../lib/types/alias.inc:91 ../lib/types/user.inc:91 +#: ../lib/selfService.inc:385 ../lib/modules/mitKerberos.inc:116 +#: ../lib/modules/mitKerberos.inc:211 ../lib/modules/mitKerberos.inc:249 +#: ../lib/modules/mitKerberos.inc:343 ../lib/modules/mitKerberos.inc:766 +#: ../lib/modules/selfRegistration.inc:393 +#: ../lib/modules/selfRegistration.inc:467 +#: ../lib/modules/selfRegistration.inc:475 ../lib/modules/account.inc:85 +#: ../lib/modules/account.inc:101 ../lib/modules/account.inc:124 +#: ../lib/modules/account.inc:126 ../lib/modules/account.inc:127 +#: ../lib/modules/account.inc:210 ../lib/modules/account.inc:230 +#: ../lib/modules/account.inc:254 ../lib/modules/uidObject.inc:45 +#: ../lib/modules/uidObject.inc:67 ../lib/modules/uidObject.inc:76 +#: ../lib/modules/uidObject.inc:85 ../lib/modules/uidObject.inc:100 +#: ../lib/modules/uidObject.inc:161 ../lib/modules/posixAccount.inc:113 +#: ../lib/modules/posixAccount.inc:114 ../lib/modules/posixAccount.inc:117 +#: ../lib/modules/posixAccount.inc:283 ../lib/modules/posixAccount.inc:409 +#: ../lib/modules/posixAccount.inc:506 ../lib/modules/posixAccount.inc:1420 +#: ../lib/modules/posixAccount.inc:1842 ../lib/modules/windowsUser.inc:107 +#: ../lib/modules/windowsUser.inc:264 ../lib/modules/windowsUser.inc:498 +#: ../lib/modules/windowsUser.inc:589 ../lib/modules/windowsUser.inc:689 +#: ../lib/modules/windowsUser.inc:1585 ../lib/modules/pykotaUser.inc:112 +#: ../lib/modules/pykotaUser.inc:208 ../lib/modules/pykotaUser.inc:268 +#: ../lib/modules/pykotaUser.inc:311 ../lib/modules/pykotaUser.inc:313 +#: ../lib/modules/pykotaUser.inc:340 ../lib/modules/pykotaUser.inc:889 +#: ../lib/modules/nisnetgroup.inc:152 ../lib/modules/nisnetgroup.inc:482 +#: ../lib/modules/inetOrgPerson.inc:95 ../lib/modules/inetOrgPerson.inc:163 +#: ../lib/modules/inetOrgPerson.inc:624 ../lib/modules/inetOrgPerson.inc:744 +#: ../lib/modules/inetOrgPerson.inc:1161 ../lib/modules/inetOrgPerson.inc:1164 +#: ../lib/modules/inetOrgPerson.inc:1908 ../lib/modules/inetOrgPerson.inc:2043 +#: ../lib/modules/inetOrgPerson.inc:2777 ../lib/modules/inetOrgPerson.inc:3569 +#: ../lib/modules/inetOrgPerson.inc:3594 +#: ../lib/modules/passwordSelfReset.inc:499 +#: ../lib/modules/passwordSelfReset.inc:843 +#: ../lib/modules/passwordSelfReset.inc:1015 +#: ../lib/modules/heimdalKerberos.inc:94 +#: ../lib/modules/heimdalKerberos.inc:180 +#: ../lib/modules/heimdalKerberos.inc:218 +#: ../lib/modules/heimdalKerberos.inc:293 +#: ../lib/modules/heimdalKerberos.inc:676 +msgid "User name" +msgstr "Nom d'utilisateur" + +#: ../lib/modules/windowsUser.inc:115 ../lib/modules/windowsUser.inc:449 +#: ../lib/modules/windowsUser.inc:529 ../lib/modules/windowsUser.inc:565 +#: ../lib/modules/windowsUser.inc:593 ../lib/modules/windowsUser.inc:698 +#: ../lib/modules/windowsUser.inc:1587 +msgid "User name (pre W2K)" +msgstr "Nom d'utilisateur (avant Windows 2000)" + +#: ../lib/modules/selfRegistration.inc:475 ../lib/modules/posixAccount.inc:121 +#: ../lib/modules/pykotaUser.inc:313 ../lib/modules/pykotaUser.inc:314 +#: ../lib/modules/pykotaUser.inc:317 ../lib/modules/pykotaUser.inc:318 +#: ../lib/modules/inetOrgPerson.inc:97 +msgid "User name already exists!" +msgstr "Nom utilisateur existe déjà !" + +#: ../lib/modules/passwordSelfReset.inc:501 +msgid "User name and email address" +msgstr "Nom d'utilisateur et adresse mail" + +#: ../lib/modules/imapAccess.inc:103 ../lib/modules/imapAccess.inc:144 +msgid "User name attribute" +msgstr "Attribut Nom d'utilisateur" + +#: ../lib/modules/mitKerberos.inc:289 ../lib/modules/mitKerberos.inc:290 +#: ../lib/modules/selfRegistration.inc:467 ../lib/modules/account.inc:124 +#: ../lib/modules/account.inc:125 ../lib/modules/account.inc:127 +#: ../lib/modules/zarafaContact.inc:187 ../lib/modules/zarafaContact.inc:188 +#: ../lib/modules/uidObject.inc:85 ../lib/modules/zarafaGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:223 ../lib/modules/posixAccount.inc:114 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/zarafaUser.inc:419 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/windowsUser.inc:589 +#: ../lib/modules/windowsUser.inc:590 ../lib/modules/windowsUser.inc:593 +#: ../lib/modules/windowsUser.inc:594 ../lib/modules/pykotaUser.inc:311 +#: ../lib/modules/pykotaUser.inc:312 ../lib/modules/pykotaUser.inc:315 +#: ../lib/modules/pykotaUser.inc:316 ../lib/modules/nisnetgroup.inc:152 +#: ../lib/modules/inetOrgPerson.inc:95 ../lib/modules/inetOrgPerson.inc:96 +#: ../lib/modules/passwordSelfReset.inc:893 +#: ../lib/modules/passwordSelfReset.inc:1115 +#: ../lib/modules/heimdalKerberos.inc:253 +#: ../lib/modules/heimdalKerberos.inc:254 +msgid "" +"User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Nom d'utilisateur contient des caractères incorrectes. Les caractères " +"valides sont: a-z, A-Z, 0-9 et .-_ !" + +#: ../lib/modules/windowsUser.inc:253 +msgid "User name for NIS." +msgstr "Nom d'utilisateur NIS." + +#: ../lib/modules/posixAccount.inc:117 +msgid "User name in use. Selected next free user name." +msgstr "Nom d'utilisateur déjà utilisé. Nom disponible suivant sélectionné." + +#: ../lib/modules/mitKerberos.inc:117 ../lib/modules/account.inc:102 +#: ../lib/modules/pykotaUser.inc:113 ../lib/modules/inetOrgPerson.inc:745 +#: ../lib/modules/heimdalKerberos.inc:95 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_." +msgstr "" +"Le nom de login de l'utilisateur a créer. Les caractères autorisés sont: a-" +"z, A-Z, 0-9 @.-_" + +#: ../lib/modules/posixAccount.inc:507 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_. If user name is already used user name will be expanded with a " +"number. The next free number will be used." +msgstr "" +"Nom de l'utilisateur a créer. Les caractères autorisés sont : a-z,A-Z,0-9, " +"@.-_. Si un nom d'utilisateur identique existe déjà, le nom sera complété " +"par une nombre. Le premier nombre disponible sera utilisé." + +#: ../lib/modules/passwordSelfReset.inc:502 +#: ../lib/modules/passwordSelfReset.inc:867 +#: ../lib/modules/passwordSelfReset.inc:1035 +msgid "User name or email address" +msgstr "Nom d'utilisateur ou adresse mail" + +#: ../lib/modules/posixAccount.inc:270 ../lib/modules/posixAccount.inc:436 +msgid "User name suggestion" +msgstr "Nom d'utilisateur proposé" + +#: ../lib/modules/pykotaUser.inc:125 +msgid "User name that is used for PyKota." +msgstr "Nom d'utilisateur utilisé pour PYKota." + +#: ../lib/modules/windowsUser.inc:752 +msgid "User profile" +msgstr "Profil utilisateur" + +#: ../lib/modules/selfRegistration.inc:45 +msgid "User self registration" +msgstr "Service d'auto-enregistrement" + +#: ../lib/modules/zarafaUser.inc:128 ../lib/modules/zarafaUser.inc:275 +#: ../lib/modules/zarafaUser.inc:373 ../lib/modules/zarafaUser.inc:614 +#: ../lib/modules/zarafaUser.inc:1233 ../lib/modules/zarafaUser.inc:1322 +#: ../lib/modules/zarafaUser.inc:1805 +msgid "User server" +msgstr "Serveur de script" + +#: ../lib/types/user.inc:53 ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:97 +#: ../lib/modules/posixAccount.inc:209 ../lib/modules/zarafaUser.inc:1779 +#: ../lib/modules/sudoRole.inc:74 ../lib/modules/sudoRole.inc:98 +#: ../lib/modules/sudoRole.inc:159 ../lib/modules/sudoRole.inc:216 +#: ../lib/modules/sudoRole.inc:228 ../lib/modules/sudoRole.inc:316 +#: ../lib/modules/sudoRole.inc:806 +msgid "Users" +msgstr "Utilisateurs" + +#: ../lib/modules/zarafaContact.inc:80 ../lib/modules/zarafaGroup.inc:94 +#: ../lib/modules/zarafaUser.inc:105 +msgid "Users or groups that may directly send email as this user." +msgstr "" +"Utilisateurs ou groupes pouvant envoyer des mails en tant que cet " +"utilisateur." + +#: ../lib/modules/posixGroup.inc:489 +msgid "" +"Users who are member of the current group. Users who have set their primary " +"group to this group will not be shown." +msgstr "" +"Utilisateurs qui sont membres du groupe courant. Les utilisateurs qui ont " +"leur groupe principal comme celui-là ne sont pas visibles.." + +#: ../lib/modules/posixGroup.inc:493 +msgid "" +"Users who will become member of the current group. User names are separated " +"by semicolons." +msgstr "" +"Utilisateurs qui deviendront membres du groupe courant.Noms séparés par " +"point-virgule." + +#: ../templates/tests/lamdaemonTest.php:207 +#, php-format +msgid "Using %s as lamdaemon remote server." +msgstr "Utilisation de %s comme serveur lamdaemon distant." + +#: ../templates/tests/lamdaemonTest.php:229 +#, php-format +msgid "Using %s to connect to remote server." +msgstr "Utilisation de %s pour se connecter au serveur distant !" + +#: ../lib/modules/posixAccount.inc:446 +msgid "" +"Usually, users are not added to groups as memberUid if they have this group " +"as primary group. If your application ignores primary groups then you can " +"select this option to override this behaviour." +msgstr "" +"Normalement, les utilisateurs ne sont pas ajoutés aux groupes comme " +"memberUid si ils ont le groupe comme groupe principal. Si votre application " +"ignore les groupes primaires alors choisissez cette option pour passer outre " +"cette fonctionalité." + +#: ../templates/3rdParty/pla/lib/export_functions.php:543 +msgid "VCARD 2.1 Export" +msgstr "Export VCARD 2.1" + +#: ../templates/config/mainmanage.php:360 +msgid "Valid to" +msgstr "Valable jusqu'à" + +#: ../help/help.inc:92 +msgid "Valid users" +msgstr "Utilisateurs valables" + +#: ../lib/modules/imapAccess.inc:83 ../lib/modules/imapAccess.inc:121 +msgid "Validate server certificate" +msgstr "Vérifier le certificat serveur" + +#: ../lib/modules/customFields.inc:108 ../lib/modules/customFields.inc:1899 +msgid "Validation expression" +msgstr "Expression de validation" + +#: ../lib/modules/customFields.inc:112 ../lib/modules/customFields.inc:1904 +msgid "Validation message" +msgstr "Message de validation" + +#: ../templates/multiEdit.php:120 ../lib/modules/customFields.inc:2959 +msgid "Value" +msgstr "Valeur" + +#: ../lib/modules/customFields.inc:116 ../lib/modules/customFields.inc:2749 +msgid "Value for \"checked\"" +msgstr "Valeur pour \"sélectionné\"" + +#: ../lib/modules/customFields.inc:120 ../lib/modules/customFields.inc:2755 +msgid "Value for \"unchecked\"" +msgstr "Valeur pour \"dé-sélectionné\"" + +#: ../lib/modules/customFields.inc:140 ../lib/modules/customFields.inc:2955 +msgid "Value mapping" +msgstr "Correspondance de valeurs" + +#: ../templates/3rdParty/pla/lib/import_functions.php:512 +msgid "Value to delete does not exist in DN" +msgstr "La valeur a supprimer n'existe pas dans le DN" + +#: ../lib/modules/puppetClient.inc:100 ../lib/modules/puppetClient.inc:104 +#: ../lib/modules/puppetClient.inc:146 ../lib/modules/puppetClient.inc:156 +#: ../lib/modules/puppetClient.inc:169 ../lib/modules/puppetClient.inc:277 +#: ../lib/modules/puppetClient.inc:439 +msgid "Variables" +msgstr "Variables" + +#: ../templates/serverInfo.php:134 +msgid "Vendor name" +msgstr "Nom du fabricant" + +#: ../templates/serverInfo.php:140 +msgid "Vendor version" +msgstr "Version" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +#, php-format +msgid "View %s children" +msgstr "Voir %s enfants" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +msgid "View 1 child" +msgstr "Voir 1 fils" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1230 +msgid "View the children of this object" +msgstr "Voir les enfants de l'objet" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1028 +msgid "Viewing entry in read-only mode." +msgstr "Affichage des entrées en lecture seule." + +#: ../lib/modules/asteriskVoicemail.inc:119 +#: ../lib/modules/asteriskVoicemail.inc:126 +#: ../lib/modules/asteriskVoicemail.inc:143 +#: ../lib/modules/asteriskVoicemail.inc:196 +#: ../lib/modules/asteriskVoicemail.inc:260 +#: ../lib/modules/asteriskVoicemail.inc:372 +msgid "Voicemail context" +msgstr "Contexte de messagerie vocale" + +#: ../lib/modules/asteriskVoicemail.inc:96 +msgid "Voicemail mailbox for this account." +msgstr "Messagerie vocale de ce compte." + +#: ../templates/login.php:496 +msgid "Want more features? Get LAM Pro!" +msgstr "Vous voulez plus de fonctionnalités? Procurez-vous LAM Pro !" + +#: ../templates/config/mainmanage.php:408 +#: ../templates/3rdParty/pla/lib/page.php:76 +msgid "Warning" +msgstr "Avertissement" + +#: ../templates/delete.php:234 ../lib/modules/nisMailAliasUser.inc:505 +#: ../lib/modules/posixAccount.inc:850 ../lib/modules/posixAccount.inc:903 +#: ../lib/modules/organizationalRoleUser.inc:201 +#: ../lib/modules/organizationalRoleUser.inc:218 +#: ../lib/modules/windowsUser.inc:1123 ../lib/modules/groupOfNamesUser.inc:217 +#: ../lib/modules/groupOfNamesUser.inc:264 ../lib/modules.inc:1900 +#, php-format +msgid "Was unable to add attributes to DN: %s." +msgstr "Impossible d'ajouter attribut au DN:%s." + +#: ../lib/modules/nisMailAliasUser.inc:494 ../lib/modules.inc:1863 +#, php-format +msgid "Was unable to create DN: %s." +msgstr "Impossible de créer DN: %s." + +#: ../templates/delete.php:344 ../templates/delete.php:353 +#: ../lib/modules/nisMailAliasUser.inc:471 +#, php-format +msgid "Was unable to delete DN: %s." +msgstr "Impossible de supprimer le DN : %s." + +#: ../templates/lists/changePassword.php:749 +#: ../templates/lists/changePassword.php:787 +#: ../templates/lists/changePassword.php:833 ../templates/delete.php:225 +#, php-format +msgid "Was unable to modify attributes from DN: %s." +msgstr "Impossible de modifier les attributs du DN : %s." + +#: ../lib/modules/posixAccount.inc:888 ../lib/modules/windowsUser.inc:1149 +#: ../lib/modules/windowsUser.inc:1558 ../lib/modules/groupOfNamesUser.inc:249 +#: ../lib/modules.inc:1882 +#, php-format +msgid "Was unable to modify attributes of DN: %s." +msgstr "Impossible de modifier les attributs du DN : %s." + +#: ../templates/delete.php:243 ../lib/modules/nisMailAliasUser.inc:482 +#: ../lib/modules/posixAccount.inc:858 ../lib/modules/posixAccount.inc:920 +#: ../lib/modules/organizationalRoleUser.inc:206 +#: ../lib/modules/organizationalRoleUser.inc:229 +#: ../lib/modules/windowsUser.inc:1136 ../lib/modules/groupOfNamesUser.inc:222 +#: ../lib/modules/groupOfNamesUser.inc:278 ../lib/modules.inc:1913 +#, php-format +msgid "Was unable to remove attributes from DN: %s." +msgstr "Impossible de supprimer les attributs du DN : %s." + +#: ../lib/modules/asteriskExtension.inc:905 ../lib/modules.inc:1843 +#, php-format +msgid "Was unable to rename DN: %s." +msgstr "Impossible de renommer le DN: %s." + +#: ../lib/modules/windowsUser.inc:188 ../lib/modules/windowsUser.inc:374 +#: ../lib/modules/windowsUser.inc:516 ../lib/modules/windowsUser.inc:543 +#: ../lib/modules/windowsUser.inc:720 ../lib/modules/windowsUser.inc:1604 +#: ../lib/modules/windowsUser.inc:1727 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:214 ../lib/modules/inetOrgPerson.inc:467 +#: ../lib/modules/inetOrgPerson.inc:587 ../lib/modules/inetOrgPerson.inc:732 +#: ../lib/modules/inetOrgPerson.inc:736 ../lib/modules/inetOrgPerson.inc:1422 +#: ../lib/modules/inetOrgPerson.inc:1425 ../lib/modules/inetOrgPerson.inc:1918 +#: ../lib/modules/inetOrgPerson.inc:2467 ../lib/modules/inetOrgPerson.inc:3559 +#: ../lib/modules/inetOrgPerson.inc:3584 +msgid "Web site" +msgstr "Site web" + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Wednesday" +msgstr "Mercredi" + +#: ../lib/modules/bindDLZ.inc:180 ../lib/modules/bindDLZ.inc:184 +#: ../lib/modules/bindDLZ.inc:387 ../lib/modules/bindDLZ.inc:503 +#: ../lib/modules/bindDLZ.inc:1353 ../lib/modules/bindDLZ.inc:1600 +msgid "Weight" +msgstr "Poids" + +#: ../lib/selfService.inc:384 +msgid "Welcome to LAM self service. Please enter your user name and password." +msgstr "" +"Bienvenue dans le self-service de LAM. Veuillez saisir votre nom " +"d'utilisateur ainsi que le mot de passe." + +#: ../lib/modules/sambaSamAccount.inc:564 +msgid "Western Europe Time, London, Lisbon" +msgstr "Fuseau d'Europe de l'ouest, Londres, Lisbone" + +#: ../lib/modules/passwordSelfReset.inc:179 +msgid "What is the name of your favourite pet?" +msgstr "Quel est le nom de votre animal de compagnie ?" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +msgid "" +"When performing a recursive copy, only copy those entries which match this " +"filter." +msgstr "" +"Lors d'une copie récursive, copier uniquement les entrées correspondant au " +"filtre." + +#: ../lib/modules/zarafaUser.inc:101 +msgid "" +"When the hard quota limit is reached, email can not be delivered to that " +"user anymore." +msgstr "" +"Lorsque le quota hard est atteint, l'utilisateur ne pourra plus recevoir de " +"mail." + +#: ../help/help.inc:70 +msgid "" +"When using ldaps:// or TLS be sure to use exactly the same IP/domain name as " +"in your certificate!" +msgstr "" +"Lors de l'utilisation de ldaps:// ou TLS vérifiez que vous utilisez " +"exactement la même adresse IP ou nom de domaine que dans le certificat !" + +#: ../templates/lists/changePassword.php:410 +#: ../templates/lists/changePassword.php:441 ../lib/types/user.inc:292 +#: ../lib/types/user.inc:380 ../lib/types/user.inc:412 +#: ../lib/types/user.inc:845 ../lib/modules/windowsHost.inc:64 +#: ../lib/modules/windowsUser.inc:89 ../lib/modules/windowsGroup.inc:99 +msgid "Windows" +msgstr "Windows" + +#: ../lib/modules/sambaSamAccount.inc:337 ../lib/modules/windowsUser.inc:112 +msgid "Windows domain name of account." +msgstr "Nom de domaine windows du compte." + +#: ../lib/modules/sambaSamAccount.inc:211 +#: ../lib/modules/sambaSamAccount.inc:470 +#: ../lib/modules/sambaSamAccount.inc:1261 +#: ../lib/modules/sambaSamAccount.inc:1781 +#: ../lib/modules/sambaSamAccount.inc:1906 +#: ../lib/modules/sambaGroupMapping.inc:111 +#: ../lib/modules/sambaGroupMapping.inc:374 +#: ../lib/modules/sambaGroupMapping.inc:539 +msgid "Windows group" +msgstr "Groupe windows" + +#: ../lib/modules/sambaGroupMapping.inc:150 +msgid "Windows group name" +msgstr "Nom du groupe Windows" + +#: ../lib/modules/sambaGroupMapping.inc:163 +msgid "Windows group type." +msgstr "Type de groupe windows" + +#: ../lib/modules/sambaSamAccount.inc:394 +msgid "" +"Windows password hashes are saved by default as NT and LM hashes. LM hashes " +"are insecure and only needed for old versions of Windows. You should disable " +"them unless you really need them." +msgstr "" +"Les hachage de mot de passe windows sont sauvegardé par défaut sous forme NT " +"et LM. Les hachage LM ne sont pas sûrs et ne sont utiles que pour les " +"anciennes versions de windows. Vous ne devriez les garder qu'en cas " +"d'absolue nécessité." + +#: ../lib/modules/sambaSamAccount.inc:320 +msgid "Windows primary group" +msgstr "Groupe principal windows" + +#: ../lib/modules/sambaSamAccount.inc:323 +msgid "Windows primary group SID" +msgstr "SID du groupe principal windows" + +#: ../lib/modules/sambaGroupMapping.inc:159 +msgid "Windows-Domain name of group." +msgstr "Nom de domaine windows du groupe." + +#: ../lib/modules/inetOrgPerson.inc:1433 +msgid "Work details" +msgstr "Détails d'activité" + +#: ../lib/modules/sambaDomain.inc:146 +msgid "Workgroup" +msgstr "Groupe de travail" + +#: ../lib/modules/sambaSamAccount.inc:235 +#: ../lib/modules/sambaSamAccount.inc:366 +#: ../lib/modules/sambaSamAccount.inc:1517 +#: ../lib/modules/sambaSamAccount.inc:1925 +msgid "Working directory" +msgstr "Répertoire de travail" + +#: ../lib/modules/sambaSamAccount.inc:367 +msgid "Working directory of initial program." +msgstr "Répertoire de travail du programme initial" + +#: ../templates/config/confmain.php:318 +msgid "Write" +msgstr "Ecrire" + +#: ../templates/config/confmain.php:260 +msgid "Write access" +msgstr "Accès en écriture" + +#: ../templates/login.php:579 ../templates/login.php:637 +#: ../templates/selfService/selfServiceLogin.php:160 +#: ../templates/selfService/selfServiceLogin.php:186 +msgid "Wrong password/user name combination. Please try again." +msgstr "" +"Erreur dans le nom d'utilisateur ou le mot de passe. Veuillez réessayer." + +#: ../lib/modules/imapAccess.inc:188 +msgid "Wrong quota format. Quota must be numeric." +msgstr "Mauvais format. Le Quota doit être numérique." + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/pykotaPrinter.inc:51 +#: ../lib/modules/pykotaPrinter.inc:170 ../lib/modules/qmailGroup.inc:322 +#: ../lib/modules/qmailGroup.inc:364 ../lib/modules/qmailGroup.inc:1030 +#: ../lib/modules/qmailGroup.inc:1031 ../lib/modules/qmailGroup.inc:1073 +#: ../lib/modules/qmailGroup.inc:1079 ../lib/modules/imapAccess.inc:121 +msgid "Yes" +msgstr "Oui" + +#: ../templates/lists/changePassword.php:528 +#: ../lib/modules/ppolicyUser.inc:344 ../lib/modules/ppolicyUser.inc:421 +msgid "You are reusing an old password. Please choose a different password." +msgstr "Vous réutilisez un ancien mot de passe. Veuillez en choisir un autre." + +#: ../lib/modules/account.inc:126 ../lib/modules/posixGroup.inc:607 +#: ../lib/modules/posixAccount.inc:113 ../lib/modules/posixAccount.inc:115 +msgid "" +"You are using capital letters. This can cause problems because Windows is " +"not case-sensitive." +msgstr "" +"Vous utilisez des lettres majuscule. Ceci peut poser des problèmes car " +"Windows y est insensible." + +#: ../lib/lists.inc:1073 +#, php-format +msgid "" +"You can download your PDF files {link=%s}{color=#d2131a}here{endcolor}" +"{endlink}." +msgstr "" +"Vous pouvez télécharger votre fichier PDF {link=%s}{color=#d2131a}ici" +"{endcolor}{endlink}." + +#: ../templates/initsuff.php:181 +msgid "" +"You can setup the LDAP suffixes for all account types in your LAM server " +"profile on tab \"Account types\"." +msgstr "" +"Vous pouvez définir les sufixes LDAP pour tous vos types de comptes dans le " +"profil de votre serveur LAM, à l'onglet \"Types de comptes\"." + +#: ../help/help.inc:110 +msgid "" +"You can specify if LAM allows full write access, password changes or only " +"read access." +msgstr "" +"Indiquer si LAM autorise l'accès en écriture, le changement de mot de passe " +"ou la lecture seule." + +#: ../lib/modules/windowsUser.inc:104 ../lib/modules/windowsUser.inc:125 +#: ../lib/modules/windowsUser.inc:141 ../lib/modules/windowsUser.inc:206 +#: ../lib/modules/windowsUser.inc:211 ../lib/modules/windowsUser.inc:228 +#: ../lib/modules/windowsUser.inc:233 ../lib/modules/windowsUser.inc:249 +#: ../lib/modules/inetOrgPerson.inc:721 ../lib/modules/inetOrgPerson.inc:726 +msgid "" +"You can use \"$user\", \"$firstname\" and \"$lastname\" as wildcards for " +"user name, first and last name." +msgstr "" +"Il est possible d'utiliser \"$user\", \"$firstname\" et \"$lastname\" comme " +"variables génériques respectivement pour le nom d'utilisateur, son prénom et " +"son nom de famille." + +#: ../help/help.inc:172 +msgid "" +"You can use the wildcard @@LOGIN_DN@@ which will be substituted with the DN " +"of the user who is currently logged in to LAM." +msgstr "" +"Vous pouvez utiliser le joker @@LOGIN_DN@@ qui sera remplacé par le DN de " +"l'utilisateur actuellement connecté à LAM." + +#: ../lib/modules/zarafaDynamicGroup.inc:84 +#: ../lib/modules/zarafaContact.inc:76 ../lib/modules/zarafaGroup.inc:90 +#: ../lib/modules/zarafaAddressList.inc:72 ../lib/modules/zarafaUser.inc:85 +msgid "You can use this to temporarily deactivate the Zarafa extension." +msgstr "Vous pouvez désactiver temporairement ici les extensions Zarafa." + +#: ../lib/modules/passwordSelfReset.inc:126 +#: ../lib/modules/passwordSelfReset.inc:136 ../help/help.inc:253 +msgid "" +"You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. " +"@@uid@@ for the user name)." +msgstr "" +"Vous pouvez utiliser les masques pour les attributs LDAP sous la forme " +"@@attribute@@ (ex. @@uid@@ pour le nom utilisateur)" + +#: ../lib/modules/customScripts.inc:65 ../lib/modules/customScripts.inc:78 +msgid "" +"You can use wildcards in the format $wildcard$ which are replaced by the " +"LDAP attribute with the same name. For multi-value attributes the values " +"will be separated by commas." +msgstr "" +"Vous pouvez utiliser les meta-caractères sous la forme $meta-caractère$ qui " +"seront remplacés par les attributs LDAP de même nom. Pour les attributs " +"multi-valué les valeurs seront séparées par des virgules." + +#: ../lib/modules/zarafaContact.inc:191 +msgid "" +"You cannot add the Zarafa and Zarafa contact extension at the same time." +msgstr "" +"Vous ne pouvez pas ajouter à la fois le module Zarafa et les Extensions de " +"contact Zarafa." + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:52 +msgid "You cannot perform updates while server is in read-only mode" +msgstr "" +"Il n'est pas possible de faire de mise à jour quand le serveur est en " +"lecture-seule" + +#: ../templates/3rdParty/pla/htdocs/rename.php:26 +msgid "You cannot rename an entry which has child entries." +msgstr "Il n'est pas possible de renommer une entrée ayant des descendants." + +#: ../templates/config/confmain.php:505 +msgid "" +"You cannot use SSL and TLS encryption at the same time. Please use either " +"\"ldaps://\" or TLS." +msgstr "" +"Vous ne pouvez pas utiliser à la fois le cryptage SSL et TLS. Merci " +"d'utiliser \"ldaps://\" ou TLS." + +#: ../templates/3rdParty/pla/htdocs/rename.php:32 +msgid "You did not change the RDN" +msgstr "Le RDN n'a pas été modifié" + +#: ../templates/tests/schemaTest.php:61 +msgid "" +"You do not have the required access rights or the LDAP schema is not " +"published by your server." +msgstr "" +"Vous n'avez pas les droits suffisants ou le schema LDAP n'est pas publié par " +"votre serveur." + +#: ../lib/modules/dhcp_settings.inc:322 ../lib/modules/dhcp_settings.inc:323 +msgid "You entered one or more invalid DNS servers." +msgstr "Le(s) serveur(s) DNS que vous avez saisi sont incorrectes." + +#: ../templates/3rdParty/pla/lib/Template.php:417 +#: ../templates/3rdParty/pla/lib/Template.php:504 +msgid "You left the attribute value blank. Please go back and try again." +msgstr "Valeur d'attribut vide. Retournez en arrière puis ré-essayez." + +#: ../templates/3rdParty/pla/htdocs/create.php:51 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:45 +#, php-format +msgid "You left the value blank for required attribute (%s)." +msgstr "Vous n'avez pas renseigné l'attribut obligatoire (%s)." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:171 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:209 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:133 +msgid "You made no changes" +msgstr "Vous n'avez pas fait de modification" + +#: ../templates/config/mainmanage.php:172 +#: ../templates/config/mainmanage.php:178 +#: ../templates/config/mainmanage.php:190 +msgid "You might need to restart your webserver for changes to take effect." +msgstr "" +"Il peut être nécessaire de redémarrer votre serveur web pour que les " +"modifications soient appliquées." + +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#, php-format +msgid "You might want to use %s instead of %s." +msgstr "Peut-être voulez-vous utiliser %s au lieu de %s." + +#: ../templates/3rdParty/pla/lib/import_functions.php:95 +msgid "You must either upload a file or provide an import in the text box." +msgstr "" +"Vous devez soit charger un fichier soit fournir un import dans la zone de " +"texte." + +#: ../lib/modules/groupOfNames.inc:210 ../lib/modules/groupOfNames.inc:211 +msgid "You need to add at least one member to this group." +msgstr "Vous devez ajouter au moins un membre de ce groupe." + +#: ../lib/modules/passwordSelfReset.inc:229 +msgid "You specified an answer but no security question." +msgstr "Vous avez indiqué une réponse mais pas la question de sécurité." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1136 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "You will be prompted to confirm this decision" +msgstr "Vous verrez une demande de confirmation" + +#: ../lib/modules/imapAccess.inc:184 +msgid "Your IMAP domains and email address domain do not match." +msgstr "" +"Vos domaines IMAP et le domaine de l'adresse mail ne correspondent pas." + +#: ../templates/tests/lamdaemonTest.php:234 +#, php-format +msgid "" +"Your LAM admin user (%s) must be a valid Unix account to work with lamdaemon!" +msgstr "" +"Votre Administrateur de LAM (%s) doit etre un compte Unix correct pour " +"fonctionner avec lamdaemon !" + +#: ../lib/lamdaemon.inc:61 ../lib/lamdaemon.inc:66 +msgid "" +"Your LAM admin user must be a valid Unix account to work with lamdaemon!" +msgstr "" +"Votre utilisateur administrateur de LAM doit etre un utilisateur Unix " +"valable pour fonctionner avec lamdaemon!" + +#: ../lib/modules/imapAccess.inc:186 +msgid "Your LAM login password was not accepted by the IMAP server." +msgstr "Votre mot de passe de connexion LAM a été refusé par le serveur IMAP." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:125 +msgid "" +"Your PHP configuration has disabled file uploads. Please check php.ini " +"before proceeding." +msgstr "" +"Votre configuration PHP interdit l'envoi de fichier. Vérifiez php.ini avant " +"de continuer." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:16 +msgid "" +"Your PHP.INI does not have file_uploads = ON. Please enable file uploads in " +"PHP." +msgstr "" +"Vous n'avez pas l'option file_uploads = ON dans php.ini . Vous devez " +"l'ajouter." + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:404 +msgid "" +"Your changes cannot be saved until you make the file writable for the " +"webserver user." +msgstr "" +"Vos modifications ne pourront pas être sauvegardées tant que le fichier ne " +"sera pas modifiable par le groupe du service web." + +#: ../lib/modules/selfRegistration.inc:721 +msgid "" +"Your new account was created but post processing failed. Please contact your " +"local administrator." +msgstr "" +"Le nouveau compte a été créé mais le post-traitement a échoué. Veuillez " +"contacter votre administrateur." + +#: ../lib/modules/selfRegistration.inc:718 +msgid "" +"Your new account was successfully created. Please return to login to change " +"your user data." +msgstr "" +"Votre nouveau compte a été créé avec succès. Veuillez vous re-connecter pour " +"modifier vos données personnelles." + +#: ../lib/account.inc:1202 ../lib/modules/windowsUser.inc:1870 +msgid "" +"Your password does not meet the password strength qualifications. Please " +"retry with another one." +msgstr "Votre mot de passe n'est pas suffisemment sûr. Merci de le modifier." + +#: ../lib/modules/passwordSelfReset.inc:563 +msgid "Your password was changed to @@newPassword@@." +msgstr "Votre nouveau mot de passe est : @@newPassword@@." + +#: ../lib/security.inc:192 +msgid "Your session expired, click here to go back to the login page." +msgstr "" +"Votre session a expirée, cliquez ici pour retourner à la page de connexion." + +#: ../templates/login.php:296 +#: ../templates/selfService/selfServiceLogin.php:113 +msgid "Your session expired, please log in again." +msgstr "Votre session a expiré, veuillez vous reconnecter." + +#: ../templates/login.php:301 ../templates/login.php:306 +#: ../templates/login.php:315 +msgid "Your settings were successfully saved." +msgstr "Paramètres enregistrés avec succès." + +#: ../lib/modules/windowsUser.inc:346 ../lib/modules/inetOrgPerson.inc:501 +#: ../lib/modules/inetOrgPerson.inc:533 +msgid "YourCompany" +msgstr "VotreEntreprise" + +#: ../lib/modules/zarafaGroup.inc:56 ../lib/modules/zarafaUser.inc:61 +#: ../lib/modules/zarafaServer.inc:56 +msgid "Zarafa" +msgstr "Zarafa" + +#: ../lib/modules/zarafaAddressList.inc:51 +msgid "Zarafa address list" +msgstr "Liste adresse Zarafa" + +#: ../lib/types/zarafaAddressListType.inc:53 +#: ../lib/types/zarafaAddressListType.inc:62 +msgid "Zarafa address lists" +msgstr "Liste d'adresses Zarafa" + +#: ../lib/modules/zarafaContact.inc:56 +msgid "Zarafa contact" +msgstr "Contact Zarafa" + +#: ../lib/modules/zarafaDynamicGroup.inc:51 +msgid "Zarafa dynamic group" +msgstr "Groupe dynamique Zarafa" + +#: ../lib/types/zarafaDynamicGroupType.inc:53 +#: ../lib/types/zarafaDynamicGroupType.inc:62 +msgid "Zarafa dynamic groups" +msgstr "Groupes dynamiques Zarafa" + +#: ../lib/modules/zarafaDynamicGroup.inc:95 +#: ../lib/modules/zarafaDynamicGroup.inc:183 +#: ../lib/modules/zarafaContact.inc:106 ../lib/modules/zarafaContact.inc:123 +#: ../lib/modules/zarafaGroup.inc:112 ../lib/modules/zarafaGroup.inc:127 +#: ../lib/modules/zarafaAddressList.inc:83 +#: ../lib/modules/zarafaAddressList.inc:156 ../lib/modules/zarafaUser.inc:171 +#: ../lib/modules/zarafaUser.inc:394 ../lib/modules/zarafaUser.inc:1773 +#: ../lib/modules/zarafaServer.inc:92 ../lib/modules/zarafaServer.inc:153 +msgid "Zarafa schema" +msgstr "Schéma Zarafa" + +#: ../lib/modules/zarafaUser.inc:160 ../lib/modules/zarafaUser.inc:164 +msgid "Zarafa will store the user's archives on these servers." +msgstr "Zarafa stockera les archives de l'utilisateur sur ces serveurs." + +#: ../lib/types/bind.inc:78 ../lib/modules/ddns.inc:102 +#: ../lib/modules/ddns.inc:113 ../lib/modules/ddns.inc:128 +#: ../lib/modules/ddns.inc:394 ../lib/modules/ddns.inc:425 +msgid "Zone name" +msgstr "Nom de zone" + +#: ../lib/modules/ddns.inc:103 +msgid "Zone name for the DNS server (e.g. company.local)." +msgstr "Nom de zone pour le serveur DNS ( ex : entreprise.local )." + +#: ../lib/modules/sambaSamAccount.inc:496 ../lib/modules/windowsUser.inc:438 +msgid "\\\\server\\homes\\smiller" +msgstr "\\\\serveur\\homes\\smiller" + +#: ../lib/modules/sambaSamAccount.inc:504 ../lib/modules/windowsUser.inc:420 +msgid "\\\\server\\profiles\\smiller" +msgstr "\\\\serveur\\profils\\smiller" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "add value" +msgstr "Ajout valeur" + +#: ../lib/modules/zarafaDynamicGroup.inc:118 ../lib/modules/posixGroup.inc:461 +#: ../lib/modules/zarafaAddressList.inc:106 ../lib/modules/pykotaGroup.inc:150 +#: ../lib/modules/pykotaGroup.inc:159 ../lib/modules/nisnetgroup.inc:114 +#: ../lib/modules/organizationalRole.inc:116 +#: ../lib/modules/windowsGroup.inc:237 ../lib/modules/groupOfNames.inc:128 +msgid "adminstrators" +msgstr "Administrateurs" + +#: ../templates/config/mainmanage.php:394 +#: ../templates/config/mainmanage.php:430 +msgid "all" +msgstr "tout" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:112 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:95 +msgid "attribute deleted" +msgstr "attribut supprimé" + +#: ../lib/modules/sudoRole.inc:148 +msgid "backupRootFileSystem" +msgstr "backupRootFileSystem" + +#: ../lib/modules/pykotaBillingCode.inc:103 +msgid "billingCode01" +msgstr "billingCode01" + +#: ../templates/3rdParty/pla/lib/functions.php:2298 +msgid "browse" +msgstr "explorer" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "bytes" +msgstr "octets" + +#: ../templates/schema/schema.php:220 +msgid "character" +msgstr "caractère" + +#: ../templates/schema/schema.php:219 +msgid "characters" +msgstr "caractères" + +#: ../lib/modules/freeRadius.inc:179 +msgid "company.com" +msgstr "société.com" + +#: ../templates/3rdParty/pla/lib/PageRender.php:619 +#: ../templates/3rdParty/pla/lib/PageRender.php:988 +msgid "confirm" +msgstr "confirmer" + +#: ../help/help.inc:82 +msgid "dc=yourcompany,dc=com" +msgstr "dc=masociété,dc=fr" + +#: ../templates/config/mainmanage.php:429 ../lib/modules/ppolicyUser.inc:122 +msgid "default" +msgstr "défaut" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:205 +msgid "delete" +msgstr "supprimer" + +#: ../templates/3rdParty/pla/lib/PageRender.php:677 +msgid "delete attribute" +msgstr "efface attribut" + +#: ../lib/modules/sambaSamAccount.inc:1538 +#: ../lib/modules/sambaSamAccount.inc:1945 ../lib/modules/zarafaUser.inc:619 +#: ../lib/modules/zarafaUser.inc:1285 ../lib/modules/zarafaUser.inc:1326 +msgid "disabled" +msgstr "désactivé" + +#: ../lib/modules/sambaSamAccount.inc:1549 +#: ../lib/modules/sambaSamAccount.inc:1956 +msgid "disconnect" +msgstr "déconnecte" + +#: ../lib/modules/windowsUser.inc:468 ../lib/modules/windowsGroup.inc:245 +msgid "domain" +msgstr "domaine" + +#: ../templates/3rdParty/pla/lib/PageRender.php:664 +msgid "download value" +msgstr "télécharge valeur" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:206 +msgid "edit" +msgstr "modifier" + +#: ../lib/modules/zarafaUser.inc:619 ../lib/modules/zarafaUser.inc:1280 +#: ../lib/modules/zarafaUser.inc:1326 +msgid "enabled" +msgstr "activé" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:481 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:307 +msgid "export" +msgstr "exporter" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:123 +msgid "false" +msgstr "faux" + +#: ../lib/modules/ppolicy.inc:37 +msgid "force" +msgstr "forcer" + +#: ../lib/modules/sambaSamAccount.inc:1557 +#: ../lib/modules/sambaSamAccount.inc:1964 +msgid "from any client" +msgstr "de n'importe quel client" + +#: ../lib/modules/sambaSamAccount.inc:1558 +#: ../lib/modules/sambaSamAccount.inc:1965 +msgid "from previous client only" +msgstr "depuis les clients précédents uniquement" + +#: ../lib/modules/posixAccount.inc:306 ../lib/modules/posixAccount.inc:366 +#: ../lib/modules/nisnetgroup.inc:128 ../lib/modules/groupOfNamesUser.inc:73 +msgid "group01,group02" +msgstr "group01,group02" + +#: ../lib/modules/freeRadius.inc:187 +msgid "group01;group02" +msgstr "groupe01;groupe02" + +#: ../lib/modules/zarafaDynamicGroup.inc:132 +#: ../lib/modules/zarafaGroup.inc:164 +msgid "group1@company.com,group2@company.com" +msgstr "groupe1@entreprise.com,groupe2@entreprise.com" + +#: ../lib/modules/zarafaDynamicGroup.inc:126 +#: ../lib/modules/zarafaGroup.inc:172 ../lib/modules/windowsGroup.inc:221 +msgid "group@company.com" +msgstr "groupe@société.com" + +#: ../templates/3rdParty/pla/lib/PageRender.php:471 +msgid "hint" +msgstr "astuce" + +#: ../lib/modules/quota.inc:198 ../lib/modules/quota.inc:200 +msgid "hours" +msgstr "heures" + +#: ../lib/modules/windowsUser.inc:376 ../lib/modules/windowsUser.inc:382 +#: ../lib/modules/inetOrgPerson.inc:469 +msgid "http://www.company.com" +msgstr "http://www.société.com" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:294 +msgid "import" +msgstr "importer" + +#: ../lib/modules/sambaSamAccount.inc:1542 +#: ../lib/modules/sambaSamAccount.inc:1949 +msgid "input off, notify off" +msgstr "entrée à off, notification à off" + +#: ../lib/modules/sambaSamAccount.inc:1541 +#: ../lib/modules/sambaSamAccount.inc:1948 +msgid "input off, notify on" +msgstr "entrée à off, notification à on" + +#: ../lib/modules/sambaSamAccount.inc:1540 +#: ../lib/modules/sambaSamAccount.inc:1947 +msgid "input on, notify off" +msgstr "entrée à on, notification à off" + +#: ../lib/modules/sambaSamAccount.inc:1539 +#: ../lib/modules/sambaSamAccount.inc:1946 +msgid "input on, notify on" +msgstr "entrée à on, notification à on" + +#: ../help/help.inc:64 +msgid "" +"ldap://localhost:389 connects to localhost using a standard LDAP connection " +"on port 389" +msgstr "" +"ldap://localhost:389 fait une connexion sur localhost en utilisant une " +"connexion LDAP standard sur le port 389" + +#: ../help/help.inc:66 +msgid "" +"ldaps://ldap.domain.com connects to ldap.domain.com using an encrypted LDAP " +"connection." +msgstr "" +"ldaps://ldap.domain.com se connecte à ldap.domain.com en utilisant un canal " +"chiffré." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:100 +msgid "list" +msgstr "liste" + +#: ../templates/3rdParty/pla/lib/config_default.php:494 +#: ../templates/3rdParty/pla/lib/ds.php:318 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:529 +msgid "login" +msgstr "login" + +#: ../lib/modules/posixAccount.inc:391 +msgid "machines" +msgstr "machines" + +#: ../lib/modules/inetLocalMailRecipient.inc:114 +msgid "mail.yourdomain.org" +msgstr "mail.votredomaine.org" + +#: ../lib/modules/sambaSamAccount.inc:415 +#: ../lib/modules/sambaSamAccount.inc:539 +msgid "mydomain" +msgstr "MonDomaine" + +#: ../lib/modules/sambaSamAccount.inc:472 +msgid "mygroup" +msgstr "mongroupe" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:504 +msgid "new" +msgstr "nouveau" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:454 +#: ../lib/modules/zarafaDynamicGroup.inc:457 +#: ../lib/modules/zarafaContact.inc:568 ../lib/modules/zarafaGroup.inc:651 +#: ../lib/modules/zarafaGroup.inc:658 ../lib/modules/zarafaGroup.inc:661 +#: ../lib/modules/zarafaAddressList.inc:336 +#: ../lib/modules/zarafaAddressList.inc:339 +#: ../lib/modules/sambaSamAccount.inc:583 +#: ../lib/modules/sambaSamAccount.inc:1913 +#: ../lib/modules/sambaSamAccount.inc:1921 +#: ../lib/modules/sambaSamAccount.inc:1931 +#: ../lib/modules/sambaSamAccount.inc:1936 +#: ../lib/modules/sambaSamAccount.inc:1941 ../lib/modules/zarafaUser.inc:602 +#: ../lib/modules/zarafaUser.inc:1238 ../lib/modules/zarafaUser.inc:1253 +#: ../lib/modules/zarafaUser.inc:1264 ../lib/modules/zarafaUser.inc:1270 +#: ../lib/modules/windowsUser.inc:388 ../lib/modules/windowsUser.inc:389 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:396 +#: ../lib/modules/windowsUser.inc:397 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:404 ../lib/modules/windowsUser.inc:405 +#: ../lib/modules/windowsUser.inc:406 ../lib/modules/windowsUser.inc:412 +#: ../lib/modules/windowsUser.inc:413 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:1173 ../lib/modules/windowsUser.inc:1607 +#: ../lib/modules/windowsUser.inc:1612 ../lib/modules/windowsUser.inc:1617 +#: ../lib/modules/windowsUser.inc:1622 ../lib/modules/ppolicy.inc:35 +#: ../lib/modules/ppolicy.inc:481 ../lib/modules/ppolicy.inc:491 +#: ../lib/modules/ppolicy.inc:496 ../lib/modules/ppolicy.inc:503 +#: ../lib/modules/ppolicy.inc:506 ../lib/modules/generalInformation.inc:100 +#: ../lib/modules/zarafaServer.inc:358 ../lib/modules/customFields.inc:2890 +#: ../lib/modules/fixed_ip.inc:752 +msgid "no" +msgstr "non" + +#: ../templates/3rdParty/pla/lib/functions.php:1902 +msgid "no description available" +msgstr "aucune description disponible" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:68 +msgid "no entries" +msgstr "pas d'entrée" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:84 +msgid "no new attributes available for this entry" +msgstr "pas de nouvel attribut disponible pour cette entrée" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:135 +msgid "no new binary attributes available for this entry" +msgstr "pas de nouvel attribut binaire disponible pour cette entrée" + +#: ../templates/schema/schema.php:160 ../templates/schema/schema.php:229 +#: ../templates/schema/schema.php:240 ../templates/schema/schema.php:289 +#: ../templates/schema/schema.php:355 ../templates/schema/schema.php:370 +#: ../templates/schema/schema.php:404 ../templates/schema/schema.php:426 +#: ../templates/3rdParty/pla/lib/functions.php:2612 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1573 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1581 +msgid "none" +msgstr "rien" + +#: ../templates/3rdParty/pla/lib/PageRender.php:1109 +msgid "none, remove value" +msgstr "rien, efface valeur" + +#: ../templates/schema/schema.php:216 +msgid "not applicable" +msgstr "non applicable" + +#: ../templates/schema/schema.php:167 ../templates/schema/schema.php:172 +#: ../templates/schema/schema.php:177 ../templates/schema/schema.php:210 +msgid "not specified" +msgstr "Non spécifié" + +#: ../help/help.inc:76 +msgid "" +"ou=People,dc=yourcompany,dc=com will read and store all accounts in this " +"subtree." +msgstr "" +"ou=People,dc=yourcompany,dc=com lira et mettra vos comptes dans ce sous-" +"arbre." + +#: ../lib/modules/eduPerson.inc:202 ../lib/modules/eduPerson.inc:208 +#: ../lib/modules/eduPerson.inc:214 +msgid "ou=accounts,dc=yourdomain,dc=org" +msgstr "ou=utilisateurs,dc=masociété,dc=fr" + +#: ../lib/modules/posixAccount.inc:377 +msgid "pc01$" +msgstr "pc01$" + +#: ../lib/modules/posixAccount.inc:400 +msgid "pc01,Room 2.34" +msgstr "pc01,Bureau 2.34" + +#: ../lib/modules/hostObject.inc:93 +msgid "pc01,pc02" +msgstr "pc01,pc02" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +msgid "pixels" +msgstr "pixels" + +#: ../lib/modules/pykotaPrinter.inc:148 +msgid "printer01" +msgstr "printer01" + +#: ../lib/modules/pykotaPrinter.inc:188 +msgid "printergroup1" +msgstr "printergroup1" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:54 +msgid "read only" +msgstr "lecture seule" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:251 +msgid "refresh" +msgstr "rafraîchir" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2126 +msgid "rename" +msgstr "renommer" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 ../lib/html.inc:797 +#: ../lib/html.inc:1708 ../lib/html.inc:2285 +msgid "required" +msgstr "requis" + +#: ../lib/modules/sambaSamAccount.inc:1550 +#: ../lib/modules/sambaSamAccount.inc:1957 +msgid "reset" +msgstr "Réinitialisation" + +#: ../lib/modules/organizationalRoleUser.inc:73 +msgid "role01,role02" +msgstr "role01,role02" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:237 +msgid "search" +msgstr "rechercher" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:472 +msgid "seconds" +msgstr "secondes" + +#: ../lib/modules/mitKerberos.inc:244 ../lib/modules/asteriskAccount.inc:327 +#: ../lib/modules/posixGroup.inc:444 ../lib/modules/sambaSamAccount.inc:427 +#: ../lib/modules/posixAccount.inc:334 ../lib/modules/windowsUser.inc:274 +#: ../lib/modules/inetOrgPerson.inc:2054 +#: ../lib/modules/asteriskVoicemail.inc:167 +#: ../lib/modules/heimdalKerberos.inc:213 +msgid "secret" +msgstr "secret" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1263 +msgid "select the rdn attribute" +msgstr "sélectionner l'attribut RDN" + +#: ../lib/modules/mitKerberos.inc:213 ../lib/modules/uidObject.inc:69 +#: ../lib/modules/posixAccount.inc:285 ../lib/modules/windowsUser.inc:266 +#: ../lib/modules/windowsUser.inc:451 ../lib/modules/windowsUser.inc:460 +#: ../lib/modules/pykotaUser.inc:192 ../lib/modules/pykotaUser.inc:210 +#: ../lib/modules/inetOrgPerson.inc:2045 +#: ../lib/modules/heimdalKerberos.inc:182 ../lib/modules/nisMailAlias.inc:110 +msgid "smiller" +msgstr "smiller" + +#: ../lib/modules/inetLocalMailRecipient.inc:102 +msgid "smiller@otherdomain.org" +msgstr "smiller@otherdomain.org" + +#: ../lib/modules/inetLocalMailRecipient.inc:108 +msgid "smiller@yourdomain.org" +msgstr "smiller@yourdomain.org" + +#: ../lib/modules/ldapPublicKey.inc:90 +msgid "ssh-dss 234234 user@host" +msgstr "ssh-dss 234234 user@host" + +#: ../templates/3rdParty/pla/lib/PageRender.php:882 +msgid "structural" +msgstr "structurel" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:102 +msgid "table" +msgstr "table" + +#: ../lib/modules/asteriskExtension.inc:154 +msgid "test" +msgstr "test" + +#: ../lib/modules/asteriskExtension.inc:174 +msgid "test-start" +msgstr "lancement de test" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:122 +msgid "true" +msgstr "vrai" + +#: ../lib/modules/ipHost.inc:99 ../lib/modules/inetOrgPerson.inc:363 +#: ../lib/modules/aliasEntry.inc:71 ../lib/modules/qmailGroup.inc:281 +#: ../lib/modules/qmailGroup.inc:289 ../lib/modules/qmailGroup.inc:297 +msgid "uid=smiller,ou=People,dc=company,dc=com" +msgstr "uid=smiller,ou=utilisateur,dc=masociété,dc=fr" + +#: ../templates/config/mainmanage.php:312 +msgid "use custom CA certificates" +msgstr "utiliser des certificats AC personnaliés" + +#: ../templates/config/mainmanage.php:309 +msgid "use system certificates" +msgstr "utiliser les certificats d'AC du système" + +#: ../lib/modules/posixGroup.inc:452 +msgid "user01,user02,user03" +msgstr "user01,user02,user03" + +#: ../lib/modules/qmailUser.inc:273 ../lib/modules/qmailUser.inc:279 +#: ../lib/modules/qmailUser.inc:301 ../lib/modules/eduPerson.inc:163 +#: ../lib/modules/windowsUser.inc:352 ../lib/modules/windowsUser.inc:358 +#: ../lib/modules/pykotaUser.inc:220 ../lib/modules/inetOrgPerson.inc:451 +#: ../lib/modules/kolabSharedFolder.inc:183 +#: ../lib/modules/asteriskVoicemail.inc:180 ../lib/modules/qmailGroup.inc:339 +#: ../lib/modules/qmailGroup.inc:347 ../lib/modules/qmailGroup.inc:355 +msgid "user@company.com" +msgstr "utilisateur@société.com" + +#: ../lib/modules/posixAccount.inc:299 +msgid "users" +msgstr "utilisateurs" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:59 +msgid "view entries" +msgstr "voir les entrées" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +msgid "with " +msgstr "avec " + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:452 +#: ../lib/modules/zarafaDynamicGroup.inc:459 +#: ../lib/modules/zarafaContact.inc:570 ../lib/modules/zarafaGroup.inc:653 +#: ../lib/modules/zarafaGroup.inc:656 ../lib/modules/zarafaGroup.inc:663 +#: ../lib/modules/zarafaAddressList.inc:334 +#: ../lib/modules/zarafaAddressList.inc:341 +#: ../lib/modules/sambaSamAccount.inc:583 +#: ../lib/modules/sambaSamAccount.inc:1911 +#: ../lib/modules/sambaSamAccount.inc:1919 +#: ../lib/modules/sambaSamAccount.inc:1929 +#: ../lib/modules/sambaSamAccount.inc:1934 +#: ../lib/modules/sambaSamAccount.inc:1939 ../lib/modules/zarafaUser.inc:602 +#: ../lib/modules/zarafaUser.inc:1240 ../lib/modules/zarafaUser.inc:1256 +#: ../lib/modules/zarafaUser.inc:1266 ../lib/modules/zarafaUser.inc:1272 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:406 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:1173 ../lib/modules/windowsUser.inc:1512 +#: ../lib/modules/windowsUser.inc:1609 ../lib/modules/windowsUser.inc:1614 +#: ../lib/modules/windowsUser.inc:1619 ../lib/modules/windowsUser.inc:1624 +#: ../lib/modules/ppolicy.inc:36 ../lib/modules/ppolicy.inc:493 +#: ../lib/modules/ppolicy.inc:498 ../lib/modules/ppolicy.inc:501 +#: ../lib/modules/ppolicy.inc:508 ../lib/modules/inetOrgPerson.inc:525 +#: ../lib/modules/generalInformation.inc:102 +#: ../lib/modules/zarafaServer.inc:360 ../lib/modules/customFields.inc:2890 +#: ../lib/modules/fixed_ip.inc:750 +msgid "yes" +msgstr "Oui" + +#~ msgid "Mycity" +#~ msgstr "Ma ville" + +#~ msgid "The IP address \"%s\" is invalid." +#~ msgstr "L'adresse IP %s est incorrecte." + +#~ msgid "" +#~ "You cannot add the Kolab group and shared folder extension at the same " +#~ "time." +#~ msgstr "" +#~ "Vous ne pouvez pas ajouter à la fois le groupe Kolab et l'extension de " +#~ "dossier partagé." + +#~ msgid "" +#~ "Each line represents one LDAP attribute. The options are separated by \"::" +#~ "\". The first option specifies if the attribute is mandatory. It can have " +#~ "the values \"optional\" and \"required\"." +#~ msgstr "" +#~ "Chaque ligne représente un attribut LDAP. Les options sont séparées par " +#~ "\"::\". La première option indique si l'attribut est obligatoire. Il peut " +#~ "prendre les valeurs \"optional\" et \"required\"." + +#~ msgid "New Authorized Service" +#~ msgstr "Nouveau Service Autorisé" + +#~ msgid "New IP address" +#~ msgstr "Nouvelle adresse IP" + +#~ msgid "New MAC address" +#~ msgstr "Nouvelle MAC Address" + +#~ msgid "New SSH public key" +#~ msgstr "Nouvelle clé publique SSH" + +#~ msgid "Options four and five are used for input validation." +#~ msgstr "Les options quatre et cinq sont utilisées pour vérifier la saisie." + +#~ msgid "" +#~ "Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") and an " +#~ "error message if the value does not match it. For a syntax description " +#~ "see here." +#~ msgstr "" +#~ "Saisissez l'expression rationnelle (ex : \"/^[0-9a-zA-Z]+$/\") et le " +#~ "message d'erreur à afficher si la valeur ne correspond pas. Vous " +#~ "trouverez une description de la syntaxe ici." + +#~ msgid "" +#~ "The second option is the LDAP attribute name and the third one is a " +#~ "descriptive label for it." +#~ msgstr "" +#~ "La seconde option est le nom de l'attribut LDAP et la troisième est une " +#~ "texte descriptif." + +#~ msgid "User ID" +#~ msgstr "ID Utilisateur" + +#~ msgid "Deleted account" +#~ msgstr "Compte supprimé" + +#~ msgid "Invalid account" +#~ msgstr "Compte erroné" + +#~ msgid "" +#~ "Password contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +#~ "and #*,.;:_-+!%&/|?{[()]}=@$ !" +#~ msgstr "" +#~ "Le mot de passe contient des caractères non valides. Les caractères " +#~ "valables sont: a-z, A-Z, 0-9 et #*,.;:_-+!$%&/|?{[()]}=@$ !" + +#~ msgid "Sync Asterisk voicemail password with Unix password" +#~ msgstr "Synchroniser les mots de passe de boîte vocale Asterisk et Unix" + +#~ msgid "Sync Kerberos password with Unix password" +#~ msgstr "Synchroniser les mots de passe Kerberos et Unix" + +#~ msgid "The domain name needs to have at least 3 characters." +#~ msgstr "Le nom de domaine doit comporter au minimum 3 caractères." + +#~ msgid "" +#~ "To disable login use /bin/false. The list of shells is read from lam/" +#~ "config/shells" +#~ msgstr "" +#~ "Pour désactiver les logins, utilisez /bin/false. La liste des shells est " +#~ "lue depuis lam/config/shells." + +#~ msgid "Unable to read sambaSID attribute." +#~ msgstr "Impossible de lire l'attribut sambaSID." + +#~ msgid "" +#~ "Unable to sync the time when the user can/must change his password " +#~ "because no domain was found." +#~ msgstr "" +#~ "Impossible de rafraîchir les dates ou l'utilisateur peut/doit changer de " +#~ "mot de passe car aucun domaine n'a été trouvé." + +#~ msgid "" +#~ "You are using a capital letters. This can cause problems because Windows " +#~ "isn't case-sensitive." +#~ msgstr "" +#~ "Vous utilisez des lettres majuscule. Ceci peut poser des problèmes car " +#~ "Windows y est insensible." + +#~ msgid "" +#~ "You are using a capital letters. This can cause problems because windows " +#~ "isn't case-sensitive." +#~ msgstr "" +#~ "Vous utilisez une lettre majuscule. Ceci peut poser des problèmes car " +#~ "windows est insensible à la casse." + +#~ msgid "Country" +#~ msgstr "Pays" + +#~ msgid "Country name is invalid!" +#~ msgstr "Nom de pays non valide !" + +#~ msgid "Free/Busy interval" +#~ msgstr "Libre/Occupé interval" + +#~ msgid "Free/Busy interval must be a number!" +#~ msgstr "Interval Libre/Occupé doit etre un nombre !" + +#~ msgid "Germany" +#~ msgstr "Allemagne" + +#~ msgid "Mail quota must be a number!" +#~ msgstr "Quota Mail doit etre un nombre!" + +#~ msgid "" +#~ "The Cyrus mail quota for users in MBytes, leave blank for unlimited space." +#~ msgstr "" +#~ "Quota mail Cyrus en MBytes pour utilisateurs,laisser vide pour illimité." + +#~ msgid "" +#~ "This is the time limit (in days) for other users who want to check future " +#~ "appointments. If you leave this blank the default (60 days) will be set." +#~ msgstr "" +#~ "Limite de temps (en jours) pour les autres utilisateurs qui vont vérifier " +#~ "les futurs RDV.60 jours si laissé vide." + +#~ msgid "YourCompany, Human Resources" +#~ msgstr "Entreprise, Ressources humaines" + +#~ msgid "%s DHCP(s) found" +#~ msgstr "%s DHCP(s) trouvé(s)" + +#~ msgid "%s NIS object(s) found" +#~ msgstr "%s Objet(s) NIS trouvé(s)" + +#~ msgid "%s address list(s) found" +#~ msgstr "%s liste(s) d'adresse(s) trouvée(s)" + +#~ msgid "%s alias(es) found" +#~ msgstr "%s alias trouvé(s)" + +#~ msgid "%s automount entry(ies) found" +#~ msgstr "%s entrée(s) automount trouvée(s)" + +#~ msgid "%s domain(s) found" +#~ msgstr "%s domaine(s) trouvé(s)" + +#~ msgid "%s extension(s) found" +#~ msgstr "%s extension(s) trouvée(s)" + +#~ msgid "%s group(s) found" +#~ msgstr "%s groupe(s) trouvé(s)" + +#~ msgid "%s host(s) found" +#~ msgstr "%s machine(s) Samba trouvée(s)" + +#~ msgid "%s object(s) found" +#~ msgstr "%s objet(s) trouvé(s)" + +#~ msgid "%s policy(ies) found" +#~ msgstr "%s stratégie(s) trouvée(s)" + +#~ msgid "%s sudo role(s) found" +#~ msgstr "%s rôle(s) sudo trouvé(s)" + +#~ msgid "%s user(s) found" +#~ msgstr "%s utilisateur(s) trouvé(s)" + +#~ msgid "Add phpGroupWare extension" +#~ msgstr "Ajouter l'extension phpGroupWare" + +#~ msgid "Delete DHCP(s)" +#~ msgstr "Supprimer le(s) DHCP(s)" + +#~ msgid "Delete group(s)" +#~ msgstr "Supprimerr le(s) Groupe(s)" + +#~ msgid "Delete host(s)" +#~ msgstr "Supprimer la(/les) Machine(s)" + +#~ msgid "Delete object" +#~ msgstr "Supprimer l'Objet" + +#~ msgid "Delete user(s)" +#~ msgstr "Supprimer le(s) Utilisateur(s)" + +#~ msgid "Here you can specify if the account is active or inactive." +#~ msgstr "Précisez ici si le compte est actif ou non" + +#~ msgid "Host(s)" +#~ msgstr "Hôte(s)" + +#~ msgid "" +#~ "If you set this to \"true\" then the phpGroupware extension will be added." +#~ msgstr "" +#~ "Si sélectionné à \"vrai\" alors l' extension phpGroupware sera ajoutée." + +#~ msgid "" +#~ "In order to add these objectClass(es) to this entry, you must specify " +#~ "%s new attributes that this object class requires." +#~ msgstr "" +#~ "Pour ajouter ces objectclass(es) à cette entrée, vous devez spécifier " +#~ "%s nouveaux attributs exigés par cet objectclass." + +#~ msgid "Last login from" +#~ msgstr "Dernière connexion depuis" + +#~ msgid "No extension(s) found!" +#~ msgstr "Aucune extension trouvée !" + +#~ msgid "Please enter \"active\" or \"inactive\"." +#~ msgstr "Entrez soit \"actif\" ou \"inactif\"." + +#~ msgid "Reenter new master password" +#~ msgstr "Re-saisissez le nouveau mot de passe principal" + +#~ msgid "Reenter profile password" +#~ msgstr "Redonnez le mot de passe profil" + +#~ msgid "Remove phpGroupWare extension" +#~ msgstr "Enlever l' extension phpGroupWare" + +#~ msgid "Run group(s)" +#~ msgstr "Groupe(s) d'exécution" + +#~ msgid "SSH public key(s)" +#~ msgstr "Clé(s) publique SSH" + +#~ msgid "The password(s) were set to:" +#~ msgstr "Le(s) mot(s) de passe sont positionnés à :" + +#~ msgid "Unlock Samba account" +#~ msgstr "Débloquer le compte Samba" + +#~ msgid "" +#~ "User name of the user who should be created. Valid characters are: a-z,A-" +#~ "Z,0-9, .-_. If user name is already used user name will be expanded with " +#~ "a number. The next free number will be used. Warning: Older systems have " +#~ "problems with user names longer than 8 characters. You can not log in to " +#~ "Windows if user name is longer than 16 characters." +#~ msgstr "" +#~ "Identifiant de connexion a créer. Les caractères valides sont: a-z,A-" +#~ "Z,0-9 et .-_. Si un nom de connexion identique existe déjà, il sera " +#~ "suffixé par un nombre autoincrémenté. Le premier chiffre disponible sera " +#~ "utilisé. Avertissement : Les systèmes anciens peuvent avoir des problèmes " +#~ "avec les noms de connexion comportant plus de 8 caractères. Vous ne " +#~ "pourrez pas vous connecter sur Windows si le nom de connexion fait plus " +#~ "de 16 caractères." + +#~ msgid "User(s)" +#~ msgstr "Utilisateur(s)" + +#~ msgid "active" +#~ msgstr "actif" + +#~ msgid "inactive" +#~ msgstr "Inactif" + +#~ msgid "(example: cn=MyNewPerson)" +#~ msgstr "(exemple: cn=MaNvlePersonne)" + +#~ msgid "(hint: do not include \"ou=\")" +#~ msgstr "(Astuce: ne pas inclure \"ou=\")" + +#~ msgid "Account lists - Filters" +#~ msgstr "Liste de Logins - Filtres" + +#~ msgid "Account suffix" +#~ msgstr "Suffix du compte" + +#~ msgid "Account type selection" +#~ msgstr "Sélection Type de Compte" + +#~ msgid "Adding attribute failed!" +#~ msgstr "Ajout attribut échoué!" + +#~ msgid "All following lines form the mail body." +#~ msgstr "Les lignes suivantes forment le corps du mail" + +#~ msgid "Back to Login" +#~ msgstr "Retour vers Connection" + +#~ msgid "Back to OU-Editor" +#~ msgstr "Retour à l'éditeur OU" + +#~ msgid "Back to PDF Editor" +#~ msgstr "Retour à l'éditeur PDF" + +#~ msgid "Back to profile editor" +#~ msgstr "Retour à l'éditeur de profils" + +#~ msgid "Cache timeout is invalid!" +#~ msgstr "Le timeout du cache n'est pas valable !" + +#~ msgid "Choose a server for the home directory!" +#~ msgstr "Choisissez un serveur pour le répertoire Home!" + +#~ msgid "Configuration wizard" +#~ msgstr "Assistant de configuration" + +#~ msgid "Container DN" +#~ msgstr "Conteneur DN" + +#~ msgid "Create PDF for all aliases" +#~ msgstr "Créer un PDF pour tout les Alias" + +#~ msgid "Create PDF for all domains" +#~ msgstr "Créer un PDF pour tous les Domaines" + +#~ msgid "Create PDF for all hosts" +#~ msgstr "Créer un PDF pour tout les machines" + +#~ msgid "Create PDF for all objects" +#~ msgstr "Créer un PDF pour tous les Objets" + +#~ msgid "Create PDF for selected alias(es)" +#~ msgstr "Créer un PDF pour le(s) Alias séléctionné(s)" + +#~ msgid "Create PDF for selected domain(s)" +#~ msgstr "Créer un PDF pour le(s) Domaine(s) sélectionné(s)" + +#~ msgid "Create PDF for selected group(s)" +#~ msgstr "Créer un PDF pour le(s) groupe(s) séléctionné(s)" + +#~ msgid "Create PDF for selected object(s)" +#~ msgstr "Créer un PDF pour le(s) Objets sélectionné(s)" + +#~ msgid "Create PDF for selected user(s)" +#~ msgstr "Créer un PDF pour le(s) utilisateur(s) séléctionné(s)" + +#~ msgid "Delegates has invalid format!" +#~ msgstr "Format invalide pour les Délégués!" + +#~ msgid "Delete %s" +#~ msgstr "Effacer %s" + +#~ msgid "Delete Kolab account" +#~ msgstr "Effacer le compte Kolab" + +#~ msgid "Deleting. Please stand by ..." +#~ msgstr "Effacement effectué ..." + +#~ msgid "Donate" +#~ msgstr "Donation" + +#~ msgid "Drive letter assigned on windows workstations as homedirectory." +#~ msgstr "" +#~ "Lettre de lecteur attribuée comme répertoire home utilisateur sur les " +#~ "stations Windows." + +#~ msgid "Edit account types" +#~ msgstr "Editer type de Compte" + +#~ msgid "Edit modules" +#~ msgstr "éditer les modules" + +#~ msgid "Entry %s deleted successfully." +#~ msgstr "Entrée %s effacée avec succès." + +#~ msgid "" +#~ "File name and path relative to the netlogon-share which should be " +#~ "executed on logon. $user and $group are replaced with user and group name." +#~ msgstr "" +#~ "Nom de fichier et de chemin relatif au partage netlogon qui doit etre " +#~ "exécuté au login. $user et $group sont remplacés par les noms " +#~ "d'utilisateur et de groupe." + +#~ msgid "File upload failed!" +#~ msgstr "Upload de fichier échoué!" + +#~ msgid "" +#~ "Here is a list of possible columns. The red columns must be included in " +#~ "the CSV file and filled with data for all accounts." +#~ msgstr "" +#~ "Ici une liste des colonnes possibles. Les colonnes en rouge doivent etre " +#~ "incluses dans le fichier CVS et rempli avec les informations pour tous " +#~ "les comptes." + +#~ msgid "" +#~ "Host name contains invalid characters. Valid characters are: a-z, A-Z, " +#~ "0-9 and .-_ ! Host name must end with $ !" +#~ msgstr "" +#~ "Le nom de machine contient des caractères non valides. Les caractères " +#~ "valides sont: a-z, A-Z, 0-9 et .-_ ! Le nom doit finir par $ !" + +#~ msgid "I am sure" +#~ msgstr "Je suis sur" + +#~ msgid "If checked account will be deactivated. (Setting D-Flag)" +#~ msgstr "Si sélectionné, le compte sera desactivé. (paramètre D-Flag)" + +#~ msgid "" +#~ "If you decide to send the password via mail then the mail template " +#~ "\"config/passwordMailTemplate.txt\" will be used." +#~ msgstr "" +#~ "Si vous décidez d' envoyer le mot de passe par mail alors le modèle de " +#~ "mail \"config/passwordMailTemplate.txt\" sera utilisé." + +#~ msgid "" +#~ "If you want to create domain administrators or other special users use " +#~ "this option." +#~ msgstr "" +#~ "Si tu veux créer des administrateurs du domaine ou des utilisateurs " +#~ "spéciaux utilises cette option." + +#~ msgid "" +#~ "LAM can recursively delete this entry and all of its children. See below " +#~ "for a list of all the entries that this action will delete. Do you want " +#~ "to do this?" +#~ msgstr "" +#~ "LAM peut effacer récursivement cette entrée et tous les fils. Voir ci-" +#~ "dessous pour une liste de toutes les entrées que cette action effacera. " +#~ "Voulez-vous vraiment faire cela ?" + +#~ msgid "LDAP" +#~ msgstr "LDAP" + +#~ msgid "" +#~ "LDAP DN (e.g. dc=company,dc=com) of accounts. This is used to find " +#~ "possible delegation candidates." +#~ msgstr "" +#~ "LDAP DN (ex. dc=company,dc=com) des comptes. Ceci est utilisé pour " +#~ "trouver des candidats à délégation." + +#~ msgid "Link to login page for this self service profile" +#~ msgstr "Lien vers la page de connection pour ce profil de service auto" + +#~ msgid "Mode" +#~ msgstr "Mode" + +#~ msgid "Module selection" +#~ msgstr "Sélection Module" + +#~ msgid "Next" +#~ msgstr "Suivant" + +#~ msgid "" +#~ "Note: You will get an \"inappropriate matching\" error if you have not " +#~ "setup an EQUALITY rule on your LDAP server for this attribute." +#~ msgstr "" +#~ "Note: Vous aurez une erreur \"correspondance inapproprié\" si vous n' " +#~ "avez pas paramétré une règle d' EGALITE sur votre serveur LDAP pour cet " +#~ "attribut." + +#~ msgid "Optional binary attributes" +#~ msgstr "Attributs binaires optionnels" + +#~ msgid "" +#~ "Please enter a comma separated list of host names where this user is " +#~ "allowed to log in. If you enable host restrictions for your servers then " +#~ "\"*\" means every host and an empty field means no host." +#~ msgstr "" +#~ "Entrer la liste des stations séparée par des virgules vers lesquelles " +#~ "l'utilisateur peut se connecter. Si vous activez les restrictions de " +#~ "machines pour vos serveurs alors \"*\" signifie tous et un champ vide " +#~ "signifie aucun." + +#~ msgid "Please enter the same password in both password-fields." +#~ msgstr "Entrez le même mot de passe dans les deux champs mot de passe." + +#~ msgid "" +#~ "Please install the SSH2 module for PHP and activate it in your php.ini!" +#~ msgstr "" +#~ "installez le module SSH2 pour PHP et activez là dans votre fichier PHP." +#~ "INI !" + +#~ msgid "Please select your user name and enter your password to log in." +#~ msgstr "Entrez votre nom et mot de passe pour vous connecter." + +#~ msgid "RDN" +#~ msgstr "RDN" + +#~ msgid "Really create this new OU?" +#~ msgstr "Vraiment créer cette nouvelle OU?" + +#~ msgid "Relative distinguished name" +#~ msgstr "Nom relatif" + +#~ msgid "SSH2 module" +#~ msgstr "Module SSH2" + +#~ msgid "SSH2 module is installed." +#~ msgstr "Module SSH2 installé" + +#~ msgid "Samba 2" +#~ msgstr "Samba2" + +#~ msgid "Scope" +#~ msgstr "Etendue" + +#~ msgid "Sudo is not setup correctly!" +#~ msgstr "Sudo n' est pas installé correctement!" + +#~ msgid "Text for user PDF" +#~ msgstr "Texte pour le PDF utilisateur" + +#~ msgid "There are new required attributes which need to be set." +#~ msgstr "De nouveau attributs obligatoires doivent etre renseignés." + +#~ msgid "" +#~ "This is an example how it would look in your spreadsheet program before " +#~ "you convert to CSV:" +#~ msgstr "" +#~ "Ceci est un exemple de ce cela donne dans un Tableur avant que tu le " +#~ "convertisse en CSV" + +#~ msgid "This value can only be \\\"true\\\" or \\\"false\\\"!" +#~ msgstr "Cette valeur est \"vraie\" ou \"fausse\"!" + +#~ msgid "Timeout while executing lamdaemon commands!" +#~ msgstr "Délai dépassé à l' éxecution des commandes lamdaemon!" + +#~ msgid "" +#~ "Unable to load available languages. Setting English as default language. " +#~ "For further instructions please contact the Admin of this site." +#~ msgstr "" +#~ "Impossible de charger des langues supplémentaires. L'Anglais sera utilisé " +#~ "en langue par défaut. Pour plus d'instructions, contactez " +#~ "l'administrateur de votre site." + +#~ msgid "Unix workstations" +#~ msgstr "Machines de travail Unix" + +#~ msgid "Unix workstations are invalid!" +#~ msgstr "Les machines de travail Unix sont invalides!" + +#~ msgid "Using template:" +#~ msgstr "Modèle utilisé:" + +#~ msgid "Was unable to modify attribtues from DN: %s." +#~ msgstr "Impossible de modifier attributs du DN: %s." + +#~ msgid "Windows group RID" +#~ msgstr "RID groupe windows" + +#~ msgid "" +#~ "You did not select any object classes for this object. Please go back and " +#~ "do so." +#~ msgstr "" +#~ "Vous n' avez pas sélectionné de classe d' objet pour cet objet.retournez " +#~ "en arrière et sélectionnez en une." + +#~ msgid "You have been logged off from LDAP Account Manager." +#~ msgstr "Vous avez été déconnecté de LDAP Account Manager." + +#~ msgid "You have to activate the \"I am sure\" checkbox." +#~ msgstr "Vous devez activer la case à cocher \"Je suis sur\"" + +#~ msgid "jpegPhoto contains errors" +#~ msgstr "erreurs sur jpegPhoto" + +#~ msgid "Add Neofonie attributes" +#~ msgstr "Ajouter Attribut Neofonie" + +#~ msgid "Add section or static text" +#~ msgstr "Ajout section ou texte statique" + +#~ msgid "Available PDF fields" +#~ msgstr "Champs PDF disponibles" + +#~ msgid "Birth date" +#~ msgstr "Date de Naissance" + +#~ msgid "ComBots IDs" +#~ msgstr "Ids ComBots" + +#~ msgid "Date when the employee was initially employed." +#~ msgstr "Date de début de contrat de l' employé." + +#~ msgid "Employee skills" +#~ msgstr "adresse employé" + +#~ msgid "Employment date" +#~ msgstr "date d' embauche" + +#~ msgid "Group 1, Group 2" +#~ msgstr "group 1,group 2" + +#~ msgid "IT" +#~ msgstr "IT" + +#~ msgid "Job position of this user (e.g. developer, temp, ...)." +#~ msgstr "grade de cet utilisateur (par ex. devel., stagiaire, ...)" + +#~ msgid "List of ComBots IDs." +#~ msgstr "Liste des ComBots IDs" + +#~ msgid "List of Jabber IDs." +#~ msgstr "Liste des Jabber IDs" + +#~ msgid "List of project groups of this user." +#~ msgstr "Liste groupe de projet de cet utilisateur." + +#~ msgid "List of projects the user is working on." +#~ msgstr "Liste des projets ou l' utilisateur travaille" + +#~ msgid "List of special skills that the user has." +#~ msgstr "Liste des aptitudes spéciales de l' utilisateur" + +#~ msgid "Page settings" +#~ msgstr "Paramètres de page" + +#~ msgid "Please enter a valid date (format DD.MM.YYYY)!" +#~ msgstr "Entrez une date valable au format JJ-MM-AAAA." + +#~ msgid "Project 1, Project 2" +#~ msgstr "Projet 1, Projet 2" + +#~ msgid "Project groups" +#~ msgstr "Groupes de projet" + +#~ msgid "Quake ID" +#~ msgstr "Quake ID" + +#~ msgid "The department where the employee is employed." +#~ msgstr "Le nom du service de l' employé." + +#~ msgid "This is the user's Quake ID." +#~ msgstr "Quake ID de l' utilisateur." + +#~ msgid "This is the user's login name for the wiki." +#~ msgstr "Nom de login de l' utilisateur of the wifi." + +#~ msgid "required for Samba 3 accounts" +#~ msgstr "requis pour un schema Samba 3" + +#~ msgid "Apply" +#~ msgstr "Appliquer" + +#~ msgid "Create account" +#~ msgstr "Créer compte" + +#~ msgid "Edit logon hours" +#~ msgstr "Editer les heures de connexion" + +#~ msgid "Here you can define to deactivate accounts after bad logon attempts." +#~ msgstr "" +#~ "Vous désactivez ici les comptes après des connections infructueuses." + +#~ msgid "Max list entries is invalid!" +#~ msgstr "Nombre d'entrées de liste max est invalide !" + +#~ msgid "Please select page:" +#~ msgstr "Sélectionnez une page :" + +#~ msgid "Save account" +#~ msgstr "Sauver le compte" + +#~ msgid "This saves your account to the LDAP database." +#~ msgstr "Ceci sauvegarde le compte dans la base LDAP." + +#~ msgid "Delete Account" +#~ msgstr "effacer le compte" + +#~ msgid "GID ranges for Unix groups" +#~ msgstr "Rang GID pour groupes Unix" + +#~ msgid "Maximum GID number for Unix groups" +#~ msgstr "Nombre GID maximum pour groupes unix" + +#~ msgid "Maximum UID number for Unix accounts (hosts)" +#~ msgstr "Nombre UID Maximum pour les comptes Unix (Machines)" + +#~ msgid "Maximum UID number for Unix accounts (users)" +#~ msgstr "Nombre UID Maximum pour les comptes Unix (Utilisateurs)" + +#~ msgid "Minimum GID number for Unix groups" +#~ msgstr "Numéro GID minimum pour Groupes Unix" + +#~ msgid "Minimum UID number for Unix accounts (hosts)" +#~ msgstr "Nombre Minimum UID pour les comptes Unix (Machines)" + +#~ msgid "Password hash type for Unix accounts" +#~ msgstr "Le type de hash du mot de passe pour comptes Unix" + +#~ msgid "Password hash type for Unix groups" +#~ msgstr "Type de hash du mot de passe pour groupes Unix" + +#~ msgid "Samba 3 settings" +#~ msgstr "Paramètres Samba 3" + +#~ msgid "Server of external script" +#~ msgstr "Serveur de scripte externe" + +#~ msgid "" +#~ "Use it at your own risk and read the documentation for lamdaemon before " +#~ "you use it!" +#~ msgstr "" +#~ "Utilisez le à vos risques et périls et lisez la documentation pour " +#~ "lamdaemon avant de l'utiliser !" + +#~ msgid "This will set no password which prevents logins with this account." +#~ msgstr "" +#~ "Ceci va positionner un mot de passe vide pour empecher les connections " +#~ "avec ce compte utilisateur." + +#~ msgid "Use unix password" +#~ msgstr "Utilisez un mot de passe unix" + +#~ msgid "You cannot use this password options at the same time." +#~ msgstr "Tu ne peux utiliser ces options de mot de passe à la fois." + +#~ msgid "A required PHP extension is missing!" +#~ msgstr "Une extension PHP indispensable est manquante!" + +#~ msgid "Changed value %s because only numeric values are allowed." +#~ msgstr "Valeur %s changée car seul les valeurs numériques sont autorisées" + +#~ msgid "Invalid password" +#~ msgstr "Password invalide" + +#~ msgid "Invalid/Missing Message type" +#~ msgstr "Type de message non valable/manquant" + +#~ msgid "" +#~ "Please report this error to the Bug-Tracker at {link=http://lam." +#~ "sourceforge.net}LDAP Account Manager Development Team{endlink}. The error " +#~ "number is {bold}0001:Invalid/Missing Message type.{endbold} Thank you." +#~ msgstr "" +#~ "Faites un rapport de cette erreur au Bug-Tracker à {link=http://lam." +#~ "sourceforge.net}l'equipe de developeurs LDAP Account Manager{endlink}. Le " +#~ "numéro d'erreur est {bold}0001:Message de type Invalid/Manquant.{endbold} " +#~ "Merci." + +#~ msgid "Server Address is empty!" +#~ msgstr "Le serveur d'adresse est vide !" + +#~ msgid "Abort" +#~ msgstr "Abandon" + +#~ msgid "Master Password:" +#~ msgstr "Mot de passe principal:" + +#~ msgid "ObjectClass %s required but not defined in LDAP." +#~ msgstr "ObjectClass %s obligatoire mais non définie dans LDAP" + +#~ msgid "Submit" +#~ msgstr "Soumettre" + +#~ msgid "Users who are member of the current group." +#~ msgstr "Utilisateurs qui sont membres du groupe courant." + +#~ msgid "Back to preferences..." +#~ msgstr "Retour vers les préférences..." + +#~ msgid "User/Group/Host suffix" +#~ msgstr "Suffixe Utilisateur/Groupe/Machine" + +#~ msgid "Algorithmic RID Base" +#~ msgstr "Base Algorithmique du RID" + +#~ msgid "Attributes in Group List" +#~ msgstr "Attributs dans la liste Groupes" + +#~ msgid "Attributes in User List" +#~ msgstr "Attributs dans la liste Utilisateurs" + +#~ msgid "Create group accounts" +#~ msgstr "Création groupes" + +#~ msgid "Create host accounts" +#~ msgstr "Création machines" + +#~ msgid "Create user accounts" +#~ msgstr "Création utilisateurs" + +#~ msgid "Do you really want to delete domain(s):" +#~ msgstr "Voulez vous vraiment effacer le(s) domaine(s) ?" + +#~ msgid "Domain Settings" +#~ msgstr "Paramètres du Domaine" + +#~ msgid "Domain deleted successfully." +#~ msgstr "OU éffacée avec succes." + +#~ msgid "Domain has been modified." +#~ msgstr "Le Domaine a été modifié" + +#~ msgid "DomainSuffix" +#~ msgstr "Suffixe de domaine" + +#~ msgid "Failed to add domain!" +#~ msgstr "Echec de l'ajout de domaine !" + +#~ msgid "Failed to modify domain!" +#~ msgstr "Echec de modification du Domaine!" + +#~ msgid "Group list attributes are invalid!" +#~ msgstr "La liste des attributs de groupe est invalide !" + +#~ msgid "Group profiles" +#~ msgstr "Profils de Groupe" + +#~ msgid "GroupSuffix" +#~ msgstr "Suffixe de Groupe" + +#~ msgid "GroupSuffix is invalid!" +#~ msgstr "Suffixe de Groupe est invalide !" + +#~ msgid "Host list attributes are invalid!" +#~ msgstr "Les attributs de liste de machines ne sont pas valables !" + +#~ msgid "HostSuffix" +#~ msgstr "Suffix Machine" + +#~ msgid "HostSuffix is invalid!" +#~ msgstr "Suffix Machine n'est pas valable !" + +#~ msgid "LAM Internal Error" +#~ msgstr "Erreur interne LAM" + +#~ msgid "Manages Samba 3 domain accounts." +#~ msgstr "Gère les comptes de domaine Samba3." + +#~ msgid "Next RID to use when creating groups." +#~ msgstr "RID suivant à utiliser lors de la création de groupes." + +#~ msgid "Samba Hosts" +#~ msgstr "Machines Samba" + +#~ msgid "Saving group modules failed!" +#~ msgstr "Echec de l' enregistrement du module groupe !" + +#~ msgid "Saving host modules failed!" +#~ msgstr "Enregistrement des modules machine echoué!" + +#~ msgid "Saving user modules failed!" +#~ msgstr "La sauveagrde des modules Utilisateurs a échouée !" + +#~ msgid "The following settings were saved to profile:" +#~ msgstr "Les paramètres suivants ont été sauvegardés dans le profile :" + +#~ msgid "This Samba 3 domain is already present!" +#~ msgstr "Ce domaine Samba 3 est déjà présent !" + +#~ msgid "TreeSuffix" +#~ msgstr "Arborescence Suffixe" + +#~ msgid "User modules" +#~ msgstr "Modules Utilisateurs" + +#~ msgid "UserSuffix" +#~ msgstr "Suffixe Utilisateur" + +#~ msgid "UserSuffix is invalid!" +#~ msgstr "Suffixe Utilisateur n'est pas valable !" + +#~ msgid "Wrong or missing type!" +#~ msgstr "Mauvais type ou type vide !" + +#~ msgid "Group information page" +#~ msgstr "Page d'information de groupe" + +#~ msgid "Host information page" +#~ msgstr "Page d'informations de machines" + +#~ msgid "Bottom" +#~ msgstr "Bas" + +#~ msgid "Driveletter assigned on windows workstations as homedirectory." +#~ msgstr "" +#~ "Lettre de lecteur attribuée comme répertoire utilisateur sur les stations " +#~ "Windows." + +#~ msgid "Expand suffix with primary groupname" +#~ msgstr "Suffix developpé avec le nom de Groupe primaire" + +#~ msgid "Group suffix" +#~ msgstr "Suffixe de groupe" + +#~ msgid "Groupname" +#~ msgstr "Nom de groupe" + +#~ msgid "Guest" +#~ msgstr "Anonyme" + +#~ msgid "Hostname" +#~ msgstr "Nom de machine" + +#~ msgid "" +#~ "If a not yet existing group is defined in csv-file, a new group in the " +#~ "selected group suffix will be created." +#~ msgstr "" +#~ "Si un groupe qui n'existe pas encore est défini dans le fichier csv, un " +#~ "nouveau groupe dans le suffixe groupe sera créé." + +#~ msgid "" +#~ "If a not yet existing group is defined in csv-file, a new group with the " +#~ "selected group profile will be created." +#~ msgstr "" +#~ "Si un groupe qui n'existe pas encore est défini dans le fichier csv, " +#~ "unnouveau groupe avec le profil groupe sélectionné sera créé." + +#~ msgid "If checked unix password will also be used as samba password." +#~ msgstr "" +#~ "Si sélectionné, le mot de passe unix sera aussi utilisé comme mot de " +#~ "passe samba." + +#~ msgid "" +#~ "If selected users will be added with OUs expanded with their primary " +#~ "group. E.g. if a user is in group admin the user suffix will be ou=admin," +#~ "+user suffix." +#~ msgstr "" +#~ "Si sélectionné, les utilisateurs seront ajoutés avec les OUs développés " +#~ "avec leurs groupes primaires. E.g. si un utilisateur est dans le groupe " +#~ "admin, son suffixe utilisateur sera ou=admin,+ suffixe utilisateur." + +#~ msgid "Inserted user- or groupname in scriptpath." +#~ msgstr "Nom d'utilisateur ou groupe inséré dans chemin script." + +#~ msgid "Left" +#~ msgstr "Gauche" + +#~ msgid "Maximize with correct ratio" +#~ msgstr "Agrandir avec le ratio correct" + +#~ msgid "Password warn" +#~ msgstr "Avertissement mot de passe" + +#~ msgid "Position in ldap-tree where the group should be created." +#~ msgstr "Position dans l'arbre LDAP ou le groupe doit etre créé." + +#~ msgid "Position in ldap-tree where the host should be created." +#~ msgstr "Position dans l'arbre ou la machine doit etre créée." + +#~ msgid "Position in ldap-tree where the user should be created." +#~ msgstr "Position dans l'arbre ou l'utilisateur doit etre créé." + +#~ msgid "There can be only one administrator per domain." +#~ msgstr "Il ne peut y avoir qu'un administrateur par Domaine." + +#~ msgid "There can be only one guest per domain." +#~ msgstr "Il ne peut y avoir qu' un Invité par Domaine" + +#~ msgid "" +#~ "This will make a profile of the current account. The saved values are the " +#~ "same as in the profile editor. Profile names may contain the letters a-z, " +#~ "0-9 and -_." +#~ msgstr "" +#~ "Ceci va créer un profil du compte courant. Les valeurs sauvegardées sont " +#~ "les mêmes que dans l'editeur de profil. Les noms de profil peuvent " +#~ "contenir les lettres a-z, 0-9 et -_." + +#~ msgid "UP" +#~ msgstr "UP" + +#~ msgid "" +#~ "Unable to load available languages. Setting English as default language. " +#~ "For further instructions please contact the admin of this site." +#~ msgstr "" +#~ "Impossible de charger les langues disponibles. Anglais définit par " +#~ "défaut. Pour plus d'instructions, contactez l'administrateur ." + +#~ msgid "Users also being member of the current group." +#~ msgstr "Utilisateurs déjà membres du groupe actuel." + +#~ msgid "Windows clients will show display name as group description." +#~ msgstr "" +#~ "Les clients windows auront le nom d'affichage en tant que description de " +#~ "groupe." + +#~ msgid "Windows domain" +#~ msgstr "Domaine Windows" + +#~ msgid "Windows domain of host." +#~ msgstr "Domaine windows de la machine." + +#~ msgid "Windows groupname" +#~ msgstr "Nom de groupe Windows" + +#~ msgid "Windows-Domain of group." +#~ msgstr "Domaine Windows du groupe." + +#~ msgid "Windows-Domain of user." +#~ msgstr "Domaine Windows de l'utilisateur." + +#~ msgid "" +#~ "You can select a previous defined profile here. This will set all fields " +#~ "to the profile values." +#~ msgstr "" +#~ "Vous pouvez sélectionner un profil défini précédemment ici. Ceci mettra " +#~ "tous les champs aux valeurs du profil." + +#~ msgid "right" +#~ msgstr "droite" + +#~ msgid "Enter Username and Password for Account" +#~ msgstr "Entrez le nom d'utilisateur et son mot de passe pour le Compte" + +#~ msgid "No groups found in ldap." +#~ msgstr "Pas de groupes trouvés dans LDAP!" diff --git a/lam/locale/hu_HU/LC_MESSAGES/messages.mo b/lam/locale/hu_HU/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..b6ea0600 Binary files /dev/null and b/lam/locale/hu_HU/LC_MESSAGES/messages.mo differ diff --git a/lam/locale/hu_HU/LC_MESSAGES/messages.po b/lam/locale/hu_HU/LC_MESSAGES/messages.po new file mode 100644 index 00000000..5a6d3c2f --- /dev/null +++ b/lam/locale/hu_HU/LC_MESSAGES/messages.po @@ -0,0 +1,9588 @@ +# translation of messages.po to Hungarian +# $Id: messages.po,v 1.2 2004/10/01 12:29:59 gruberroland Exp $ +# +# +# LDAP Account Manager +# +# Ezt a verziot forditotta: Kakasy Gergely +# Utolso modositas: 2010. jan. 9. +# Kodolas: utf-8 +# +# Kakasy Gergely , 2006, 2007. +msgid "" +msgstr "" +"Project-Id-Version: messages\n" +"Report-Msgid-Bugs-To: post@rolandgruber.de\n" +"POT-Creation-Date: 2004-01-14 17:45+0200\n" +"PO-Revision-Date: 2011-01-20 14:14+0100\n" +"Last-Translator: Kakasy Gergely \n" +"Language-Team: Hungarian\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../lib/modules/zarafaUser.inc:88 +#: ../lib/modules/zarafaUser.inc:142 +#: ../lib/modules/zarafaUser.inc:170 +#: ../lib/modules/zarafaUser.inc:305 +#: ../lib/modules/zarafaUser.inc:343 +#: ../lib/modules/zarafaUser.inc:385 +#: ../lib/modules/zarafaUser.inc:1080 +msgid "\"Send as\" privileges" +msgstr "\"Meghatalmazott feladó\" jogosultságok" + +#: ../lib/modules/posixAccount.inc:367 +msgid "$user and $group will be replaced with user name and primary group name." +msgstr "$user és $group a felhasználónévvel vagy az elsődleges csoportnévvel lesz helyettesítve." + +#: ../lib/types/dhcp.inc:162 +#, php-format +msgid "%s DHCP(s) found" +msgstr "%s DHCP-t találtam" + +#: ../lib/types/nisObjectType.inc:144 +#, php-format +msgid "%s NIS object(s) found" +msgstr "%s NIS objektumot találtam" + +#: ../lib/types/mailAlias.inc:135 +#: ../lib/types/alias.inc:135 +#, php-format +msgid "%s alias(es) found" +msgstr "%s álnevet találtam" + +#: ../lib/types/smbDomain.inc:156 +#, php-format +msgid "%s domain(s) found" +msgstr "%s tartományt találtam" + +#: ../lib/types/asteriskExt.inc:137 +#, php-format +msgid "%s extension(s) found" +msgstr "%s kiterjesztést találtam" + +#: ../lib/types/gon.inc:158 +#: ../lib/types/group.inc:174 +#: ../lib/types/netgroup.inc:158 +#, php-format +msgid "%s group(s) found" +msgstr "%s csoportot találtam" + +#: ../lib/types/host.inc:161 +#, php-format +msgid "%s host(s) found" +msgstr "%s gazdaállomást találtam" + +#: ../lib/lists.inc:106 +#, php-format +msgid "%s object(s) found" +msgstr "%s objektumot találtam" + +#: ../lib/types/ppolicyType.inc:143 +#, php-format +msgid "%s policy(ies) found" +msgstr "%s irányelvet találtam" + +#: ../lib/types/sudo.inc:148 +#, php-format +msgid "%s sudo role(s) found" +msgstr "%s sudo szerepet találtam" + +#: ../lib/types/user.inc:195 +#, php-format +msgid "%s user(s) found" +msgstr "%s felhasználót találtam" + +#: ../templates/tree/templates/creation/custom.php:63 +msgid "(example: cn=MyNewPerson)" +msgstr "(példa: cn=AzÚjSzemélyem)" + +#: ../templates/tree/templates/creation/new_ou_template.php:60 +msgid "(hint: do not include \"ou=\")" +msgstr "(tanács: ne használja az \"ou=\"-t)" + +#: ../lib/modules/nisnetgroup.inc:124 +msgid "(host1,user1,example.com);(host2,user2,example.com)" +msgstr "(gazdaállomás1,felhasználó1,példa.com);(gazdaállomás2,felhasználó2,példa.com)" + +#: ../templates/tree/add_attr_form.php:136 +msgid "(no new attributes available for this entry)" +msgstr "(ehhez a bejegyzéshez nincsenek új attribútumok)" + +#: ../templates/tree/add_attr_form.php:174 +msgid "(no new binary attributes available for this entry)" +msgstr "(ehhez a bejegyzéshez nincsenek új bináris attribútumok)" + +#: ../lib/modules/posixAccount.inc:225 +msgid "/home/smiller" +msgstr "/home/imolnar" + +#: ../lib/modules/inetOrgPerson.inc:324 +#: ../lib/modules/asteriskVoicemail.inc:177 +msgid "123-123-1234" +msgstr "123-123-1234" + +#: ../lib/modules/inetOrgPerson.inc:340 +msgid "123-123-1235" +msgstr "123-123-1235" + +#: ../lib/modules/inetOrgPerson.inc:348 +msgid "123-123-1236" +msgstr "123-123-1236" + +#: ../lib/modules/inetOrgPerson.inc:332 +msgid "123-124-1234" +msgstr "123-124-1234" + +#: ../lib/modules/inetOrgPerson.inc:316 +msgid "12345" +msgstr "12345" + +#: ../lib/modules/dhcp_settings.inc:146 +msgid "" +"B-Node (0x01): Broadcast.
    The client tries to find other workstations via broadcasting\n" +"(works only inside the same collision domain, viz. the same subnet).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"The client contacts a Netbios name server (NBNS) from Microsoft Windows Name Service (WINS) for name resolution.

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"The node tries broadcasting first. If that fails then it tries WINS.

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"The node tries WINS first. If that fails it tries broadcasting.

    \n" +"\n" +"By default, the nodes are configured as H-Nodes which fits for small networks. In large networks Point-to-Point (0x02) should be used." +msgstr "" +"B-Node (0x01): Broadcast.
    A kliens broadcast útján próbál más munkaállomásokat találni\n" +"(ez csak ugyanazon collision tartományon belül, pontosabban azonos alhálózaton működik).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"A kliens a Microsoft Windows Name Service (WINS) egy Netbios névszerveréhez (NBNS) csatlakozik a névfeloldásért.

    \n" +"\n" +"M-Node (0x04): Vegyes
    \n" +"Az állomás először broadcast-tal próbálkozik. Amennyiben ez sikertelen, akkor a WINS-t próbálja.

    \n" +"\n" +"H-Node (0x08): Hibrid
    \n" +"Az állomás először a WINS-t próbálja. Amennyiben ez sikertelen, akkor a broadcast-tal próbálkozik.

    \n" +"\n" +"Alapértelmezés szerint az állomások H-Node-okként vannak beállítva, ami a kis hálózatokhoz megfelelő. Nagy hálózatokban a Point-to-Point (0x02) beállítást kell használni." + +#: ../lib/modules/device.inc:71 +msgid "A description for this device." +msgstr "Leírás az eszközről." + +#: ../lib/modules/sudoRole.inc:84 +#: ../lib/modules/sudoRole.inc:113 +msgid "A list of options (e.g. NOPASSWD)." +msgstr "Egy beállítási lista (pl. NOPASSWD)." + +#: ../templates/massBuildAccounts.php:115 +msgid "A required column is missing in your CSV file." +msgstr "Egy szükséges oszlop hiányzik az Ön CSV fájljából." + +#: ../lib/modules/kolabUser.inc:132 +msgid "A user may define who is allowed to act on behalf of herself. This property is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "A felhasználó meghatározhatja, ki az, aki önhatalmúlag tevékenykedhet. Ez a tulajdonság akkor kerül ellenőrzésre, amikor a Kolab smtp daemon-t (Postfix) használjuk e-mail-ek küldésére." + +#: ../lib/modules/sambaSamAccount.inc:543 +msgid "Abu Dhabi, Muscat, Baku" +msgstr "Abu Dhabi, Maszkat, Baku" + +#: ../templates/config/confmain.php:256 +#: ../help/help.inc:99 +msgid "Access level" +msgstr "Hozzáférési szint" + +#: ../lib/modules/account.inc:58 +msgid "Account" +msgstr "Fiók" + +#: ../templates/massBuildAccounts.php:170 +#: ../lib/modules/ipHost.inc:109 +#: ../lib/modules/ipHost.inc:110 +#: ../lib/modules/asteriskAccount.inc:169 +#: ../lib/modules/asteriskAccount.inc:172 +#: ../lib/modules/asteriskAccount.inc:175 +#: ../lib/modules/account.inc:118 +#: ../lib/modules/ieee802device.inc:89 +#: ../lib/modules/posixGroup.inc:481 +#: ../lib/modules/posixGroup.inc:485 +#: ../lib/modules/posixGroup.inc:486 +#: ../lib/modules/zarafaGroup.inc:138 +#: ../lib/modules/zarafaGroup.inc:140 +#: ../lib/modules/zarafaGroup.inc:141 +#: ../lib/modules/zarafaGroup.inc:142 +#: ../lib/modules/zarafaGroup.inc:143 +#: ../lib/modules/device.inc:123 +#: ../lib/modules/device.inc:124 +#: ../lib/modules/dhcp_settings.inc:275 +#: ../lib/modules/dhcp_settings.inc:277 +#: ../lib/modules/dhcp_settings.inc:279 +#: ../lib/modules/dhcp_settings.inc:281 +#: ../lib/modules/dhcp_settings.inc:283 +#: ../lib/modules/dhcp_settings.inc:284 +#: ../lib/modules/dhcp_settings.inc:286 +#: ../lib/modules/dhcp_settings.inc:288 +#: ../lib/modules/dhcp_settings.inc:293 +#: ../lib/modules/dhcp_settings.inc:294 +#: ../lib/modules/eduPerson.inc:214 +#: ../lib/modules/eduPerson.inc:216 +#: ../lib/modules/eduPerson.inc:218 +#: ../lib/modules/eduPerson.inc:220 +#: ../lib/modules/eduPerson.inc:221 +#: ../lib/modules/eduPerson.inc:222 +#: ../lib/modules/eduPerson.inc:223 +#: ../lib/modules/quota.inc:51 +#: ../lib/modules/quota.inc:53 +#: ../lib/modules/quota.inc:55 +#: ../lib/modules/quota.inc:57 +#: ../lib/modules/quota.inc:59 +#: ../lib/modules/quota.inc:61 +#: ../lib/modules/quota.inc:62 +#: ../lib/modules/sambaSamAccount.inc:88 +#: ../lib/modules/sambaSamAccount.inc:91 +#: ../lib/modules/sambaSamAccount.inc:94 +#: ../lib/modules/sambaSamAccount.inc:96 +#: ../lib/modules/sambaSamAccount.inc:97 +#: ../lib/modules/sambaSamAccount.inc:98 +#: ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:102 +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:105 +#: ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:107 +#: ../lib/modules/sambaSamAccount.inc:108 +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:111 +#: ../lib/modules/posixAccount.inc:70 +#: ../lib/modules/posixAccount.inc:75 +#: ../lib/modules/posixAccount.inc:79 +#: ../lib/modules/posixAccount.inc:87 +#: ../lib/modules/posixAccount.inc:88 +#: ../lib/modules/posixAccount.inc:89 +#: ../lib/modules/posixAccount.inc:90 +#: ../lib/modules/posixAccount.inc:91 +#: ../lib/modules/posixAccount.inc:92 +#: ../lib/modules/posixAccount.inc:94 +#: ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:96 +#: ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/zarafaUser.inc:333 +#: ../lib/modules/zarafaUser.inc:335 +#: ../lib/modules/zarafaUser.inc:337 +#: ../lib/modules/zarafaUser.inc:338 +#: ../lib/modules/zarafaUser.inc:340 +#: ../lib/modules/zarafaUser.inc:342 +#: ../lib/modules/zarafaUser.inc:344 +#: ../lib/modules/zarafaUser.inc:345 +#: ../lib/modules/zarafaUser.inc:346 +#: ../lib/modules/zarafaUser.inc:347 +#: ../lib/modules/zarafaUser.inc:348 +#: ../lib/modules/zarafaUser.inc:349 +#: ../lib/modules/ppolicyUser.inc:86 +#: ../lib/modules/kolabUser.inc:230 +#: ../lib/modules/kolabUser.inc:232 +#: ../lib/modules/kolabUser.inc:234 +#: ../lib/modules/kolabUser.inc:236 +#: ../lib/modules/kolabUser.inc:238 +#: ../lib/modules/kolabUser.inc:240 +#: ../lib/modules/kolabUser.inc:242 +#: ../lib/modules/phpGroupwareUser.inc:134 +#: ../lib/modules/phpGroupwareUser.inc:135 +#: ../lib/modules/ddns.inc:151 +#: ../lib/modules/nisObject.inc:117 +#: ../lib/modules/sambaGroupMapping.inc:441 +#: ../lib/modules/sambaGroupMapping.inc:442 +#: ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/shadowAccount.inc:62 +#: ../lib/modules/shadowAccount.inc:64 +#: ../lib/modules/shadowAccount.inc:66 +#: ../lib/modules/shadowAccount.inc:67 +#: ../lib/modules/sambaDomain.inc:202 +#: ../lib/modules/sambaDomain.inc:204 +#: ../lib/modules/sambaDomain.inc:206 +#: ../lib/modules/sambaDomain.inc:208 +#: ../lib/modules/sambaDomain.inc:210 +#: ../lib/modules/sambaDomain.inc:212 +#: ../lib/modules/inetOrgPerson.inc:48 +#: ../lib/modules/inetOrgPerson.inc:50 +#: ../lib/modules/inetOrgPerson.inc:52 +#: ../lib/modules/inetOrgPerson.inc:54 +#: ../lib/modules/inetOrgPerson.inc:56 +#: ../lib/modules/inetOrgPerson.inc:58 +#: ../lib/modules/inetOrgPerson.inc:60 +#: ../lib/modules/inetOrgPerson.inc:62 +#: ../lib/modules/inetOrgPerson.inc:64 +#: ../lib/modules/inetOrgPerson.inc:66 +#: ../lib/modules/inetOrgPerson.inc:68 +#: ../lib/modules/inetOrgPerson.inc:70 +#: ../lib/modules/inetOrgPerson.inc:72 +#: ../lib/modules/inetOrgPerson.inc:74 +#: ../lib/modules/inetOrgPerson.inc:75 +#: ../lib/modules/inetOrgPerson.inc:76 +#: ../lib/modules/inetOrgPerson.inc:79 +#: ../lib/modules/sudoRole.inc:224 +#: ../lib/modules/sudoRole.inc:226 +#: ../lib/modules/sudoRole.inc:228 +#: ../lib/modules/sudoRole.inc:230 +#: ../lib/modules/sudoRole.inc:232 +#: ../lib/modules/sudoRole.inc:234 +#: ../lib/modules/zarafaServer.inc:121 +#: ../lib/modules/zarafaServer.inc:123 +#: ../lib/modules/zarafaServer.inc:125 +#: ../lib/modules/zarafaServer.inc:126 +#: ../lib/modules/asteriskVoicemail.inc:206 +#: ../lib/modules/asteriskVoicemail.inc:212 +#: ../lib/modules/asteriskVoicemail.inc:214 +#: ../lib/modules/inetLocalMailRecipient.inc:124 +#: ../lib/modules/inetLocalMailRecipient.inc:126 +#: ../lib/modules/inetLocalMailRecipient.inc:128 +#: ../lib/modules/aliasEntry.inc:79 +#: ../lib/modules/nisMailAlias.inc:107 +#: ../lib/modules/nisMailAlias.inc:109 +#: ../lib/modules/hostObject.inc:104 +#, php-format +msgid "Account %s:" +msgstr "%s fiók:" + +#: ../lib/modules/asteriskAccount.inc:91 +#: ../lib/modules/asteriskAccount.inc:114 +#: ../lib/modules/asteriskAccount.inc:124 +#: ../lib/modules/asteriskAccount.inc:140 +#: ../lib/modules/asteriskAccount.inc:211 +#: ../lib/modules/asteriskAccount.inc:295 +#: ../lib/modules/asteriskExtension.inc:82 +#: ../lib/modules/asteriskExtension.inc:112 +#: ../lib/modules/asteriskExtension.inc:124 +#: ../lib/modules/asteriskExtension.inc:169 +#: ../lib/modules/asteriskExtension.inc:221 +#: ../lib/modules/asteriskExtension.inc:469 +#: ../lib/modules/asteriskVoicemail.inc:82 +#: ../lib/modules/asteriskVoicemail.inc:118 +#: ../lib/modules/asteriskVoicemail.inc:128 +#: ../lib/modules/asteriskVoicemail.inc:142 +#: ../lib/modules/asteriskVoicemail.inc:244 +#: ../lib/modules/asteriskVoicemail.inc:394 +msgid "Account context" +msgstr "Fiók környezete" + +#: ../templates/masscreate.php:116 +msgid "Account creation via file upload" +msgstr "Fiók létrehozása fájl feltöltésével" + +#: ../lib/modules/posixAccount.inc:374 +msgid "Account deactivated" +msgstr "Fiók letiltva" + +#: ../templates/lists/changePassword.php:213 +msgid "Account details" +msgstr "Fiók részletes adatai" + +#: ../lib/modules/sambaSamAccount.inc:323 +#: ../lib/modules/sambaSamAccount.inc:438 +#: ../lib/modules/sambaSamAccount.inc:1098 +#: ../lib/modules/sambaSamAccount.inc:1345 +#: ../lib/modules/sambaSamAccount.inc:1472 +#: ../lib/modules/phpGroupwareUser.inc:82 +#: ../lib/modules/phpGroupwareUser.inc:97 +#: ../lib/modules/phpGroupwareUser.inc:121 +#: ../lib/modules/phpGroupwareUser.inc:152 +#: ../lib/modules/phpGroupwareUser.inc:233 +#: ../lib/modules/phpGroupwareUser.inc:342 +#: ../lib/modules/shadowAccount.inc:121 +#: ../lib/modules/shadowAccount.inc:184 +#: ../lib/modules/shadowAccount.inc:224 +#: ../lib/modules/shadowAccount.inc:336 +#: ../lib/modules/shadowAccount.inc:404 +#: ../lib/modules/shadowAccount.inc:431 +msgid "Account expiration date" +msgstr "Fiók lejáratának dátuma" + +#: ../lib/modules/shadowAccount.inc:162 +msgid "Account inactive" +msgstr "Fiók használaton kívül" + +#: ../lib/modules/sambaSamAccount.inc:263 +#: ../lib/modules/sambaSamAccount.inc:269 +#: ../lib/modules/sambaSamAccount.inc:430 +#: ../lib/modules/sambaSamAccount.inc:1066 +#: ../lib/modules/sambaSamAccount.inc:1468 +msgid "Account is deactivated" +msgstr "Fiók letiltva" + +#: ../lib/modules/sambaSamAccount.inc:266 +#: ../lib/modules/sambaSamAccount.inc:1072 +msgid "Account is locked" +msgstr "Fiók zárolva" + +#: ../templates/delete.php:86 +msgid "Account name:" +msgstr "Fiók neve" + +#: ../lib/modules/phpGroupwareUser.inc:78 +#: ../lib/modules/phpGroupwareUser.inc:96 +#: ../lib/modules/phpGroupwareUser.inc:114 +#: ../lib/modules/phpGroupwareUser.inc:161 +#: ../lib/modules/phpGroupwareUser.inc:337 +msgid "Account status" +msgstr "Fiók állapota" + +#: ../templates/masscreate.php:130 +#: ../templates/pdfedit/pdfdelete.php:85 +#: ../lib/modules/groupOfNames.inc:228 +msgid "Account type" +msgstr "Fiók típusa" + +#: ../templates/config/confmodules.php:169 +#: ../templates/config/confmain.php:202 +#: ../templates/config/moduleSettings.php:168 +#: ../templates/config/conftypes.php:187 +msgid "Account types" +msgstr "Fiók típusok" + +#: ../help/help.inc:101 +msgid "Account types and modules" +msgstr "Fióktípusok és modulok" + +#: ../help/help.inc:103 +msgid "Account types define which sorts of LDAP entries (e.g. users and groups) should be managed. The account modules define which properties (e.g. Unix and Samba) can be edited." +msgstr "A fióktípusok határozzák meg, hogy milyen fajta LDAP bejegyzéseket (pl. felhasználók és csoportok) kell beállítani. A fiókmodulok azt határozzák meg, hogy mely tulajdonságok (pl. Unix és Samba) szerkeszthetőek." + +#: ../lib/modules.inc:1532 +msgid "Account was created successfully." +msgstr "Fiók sikeresen létrehozva." + +#: ../templates/lists/changePassword.php:555 +#: ../lib/modules.inc:1535 +msgid "Account was modified successfully." +msgstr "Fiók sikeresen módosítva." + +#: ../lib/modules/customScripts.inc:128 +msgid "Action type" +msgstr "Teendő típusa" + +#: ../lib/modules/ddns.inc:87 +#: ../lib/modules/ddns.inc:342 +msgid "Activate DynDNS" +msgstr "DynDNS bekapcsolása" + +#: ../templates/config/confmain.php:236 +msgid "Activate TLS" +msgstr "TLS aktiválása" + +#: ../lib/modules/sambaSamAccount.inc:330 +msgid "Activate this checkbox to allow this user to use the terminal service." +msgstr "A jelölõnégyzet megjelölésével engedélyezi a felhasználó számára a terminálszolgáltatás használatát." + +#: ../lib/modules/sambaSamAccount.inc:351 +msgid "Activate this checkbox to connect drives from the client machine." +msgstr "A jelölőnégyzet megjelölésével meghajtókat csatlakoztat a kliens gépről." + +#: ../lib/modules/sambaSamAccount.inc:354 +msgid "Activate this checkbox to connect printers from the client machine." +msgstr "A jelölőnégyzet megjelölésével nyomtatókat csatlakoztat a kliens gépről." + +#: ../lib/modules/sambaSamAccount.inc:339 +msgid "Activate this checkbox to inherit the initial program and working directory from the client machine." +msgstr "A jelölõnégyzet megjelölésével a belépéskor induló program és a munkakönyvtár a kliensgépről öröklődnek." + +#: ../lib/modules/sambaSamAccount.inc:357 +msgid "Activate this checkbox to set the client's printer as default printer." +msgstr "A jelölõnégyzet megjelölésével a kliens nyomtatója lesz az alapértelmezett nyomtató." + +#: ../lib/modules/posixAccount.inc:346 +msgid "Activating this checkbox will remove the user's home directory." +msgstr "A jelölõnégyzet megjelölésével törli a felhasználó home könyvtárát." + +#: ../lib/modules/zarafaGroup.inc:79 +#: ../lib/modules/zarafaGroup.inc:115 +#: ../lib/modules/zarafaGroup.inc:125 +#: ../lib/modules/zarafaGroup.inc:201 +#: ../lib/modules/zarafaGroup.inc:428 +#: ../lib/modules/zarafaUser.inc:68 +#: ../lib/modules/zarafaUser.inc:150 +#: ../lib/modules/zarafaUser.inc:229 +#: ../lib/modules/zarafaUser.inc:511 +msgid "Active" +msgstr "Aktív" + +#: ../templates/config/conftypes.php:233 +msgid "Active account types" +msgstr "Aktív fióktípusok" + +#: ../templates/tree/add_value_form.php:157 +#: ../templates/tree/add_value_form.php:182 +#: ../templates/tree/add_oclass_form.php:144 +#: ../templates/tree/add_attr_form.php:130 +#: ../templates/tree/add_attr_form.php:162 +#: ../templates/config/confmodules.php:284 +#: ../templates/config/conftypes.php:224 +#: ../templates/pdfedit/pdfpage.php:543 +#: ../templates/pdfedit/pdfpage.php:553 +#: ../templates/pdfedit/pdfpage.php:563 +#: ../templates/pdfedit/pdfpage.php:577 +#: ../lib/modules/kolabUser.inc:867 +#: ../lib/modules/kolabUser.inc:901 +#: ../lib/modules/nisnetgroup.inc:271 +#: ../lib/modules/sudoRole.inc:269 +#: ../lib/modules/sudoRole.inc:296 +#: ../lib/modules/sudoRole.inc:323 +#: ../lib/modules/sudoRole.inc:350 +#: ../lib/modules/sudoRole.inc:377 +#: ../lib/modules/sudoRole.inc:404 +#: ../lib/modules/groupOfNames.inc:169 +#: ../lib/modules/groupOfNames.inc:311 +msgid "Add" +msgstr "Hozzáadás" + +#: ../lib/modules/asteriskAccount.inc:216 +msgid "Add Asterisk account" +msgstr "Asterisk fiók hozzáadása" + +#: ../lib/modules/asteriskVoicemail.inc:288 +msgid "Add Asterisk voicemail extension" +msgstr "Asterisk hangposta kiterjesztés hozzáadása" + +#: ../lib/modules/eduPerson.inc:384 +msgid "Add EDU person extension" +msgstr "EDU személyi kiterjesztés hozzáadása" + +#: ../lib/modules/ipHost.inc:181 +msgid "Add IP address extension" +msgstr "IP cím kiterjesztés hozzáadása" + +#: ../lib/modules/kolabUser.inc:394 +msgid "Add Kolab extension" +msgstr "Kolab kiterjesztés hozzáadása" + +#: ../lib/modules/sambaSamAccount.inc:1209 +#: ../lib/modules/sambaGroupMapping.inc:293 +msgid "Add Samba 3 extension" +msgstr "Samba 3 kiterjesztés hozzáadása" + +#: ../lib/modules/shadowAccount.inc:364 +msgid "Add Shadow account extension" +msgstr "Árnyékfiók kiterjesztés hozzáadása" + +#: ../lib/modules/zarafaGroup.inc:211 +#: ../lib/modules/zarafaUser.inc:360 +#: ../lib/modules/zarafaServer.inc:172 +msgid "Add Zarafa extension" +msgstr "Zarafa kiterjesztés hozzáadása" + +#: ../lib/modules/groupOfNames.inc:353 +msgid "Add entries of this type:" +msgstr "Ilyen típusú bejegyzések hozzáadása:" + +#: ../lib/modules/ddns.inc:343 +msgid "Add fix IP addresses to DNS" +msgstr "Fix IP címek hozzáadása a DNS-hez" + +#: ../lib/modules/hostObject.inc:161 +msgid "Add host extension" +msgstr "Gazdaállomás kiterjesztés hozzáadása" + +#: ../templates/selfService/adminMain.php:552 +#: ../help/help.inc:178 +msgid "Add input field" +msgstr "Beviteli mező hozzáadása" + +#: ../templates/tree/edit.php:127 +#: ../templates/tree/add_value_form.php:95 +#: ../templates/tree/add_attr_form.php:72 +#: ../templates/tree/add_attr_form.php:109 +#, php-format +msgid "Add new attribute" +msgstr "Új attribútum hozzáadása" + +#: ../templates/tree/add_attr_form.php:142 +msgid "Add new binary attribute" +msgstr "Új bináris attribútum hozzáadása" + +#: ../templates/selfService/adminMain.php:537 +#: ../help/help.inc:176 +msgid "Add new group" +msgstr "Új csoport hozzáadása" + +#: ../lib/modules/inetOrgPerson.inc:547 +#: ../lib/modules/inetOrgPerson.inc:969 +#: ../lib/modules/inetOrgPerson.inc:1004 +#: ../lib/modules/inetOrgPerson.inc:1514 +msgid "Add photo" +msgstr "Fénykép hozzáadása" + +#: ../lib/modules/phpGroupwareGroup.inc:73 +#: ../lib/modules/phpGroupwareGroup.inc:83 +#: ../lib/modules/phpGroupwareGroup.inc:103 +#: ../lib/modules/phpGroupwareUser.inc:74 +#: ../lib/modules/phpGroupwareUser.inc:107 +#: ../lib/modules/phpGroupwareUser.inc:191 +msgid "Add phpGroupWare extension" +msgstr "PhpGroupWare kiterjesztés hozzáadása" + +#: ../templates/config/profmanage.php:206 +#: ../templates/selfService/profManage.php:168 +#: ../help/help.inc:116 +msgid "Add profile" +msgstr "Profil hozzáadása" + +#: ../templates/tree/add_value.php:97 +msgid "Adding attribute failed!" +msgstr "Az attribútum hozzáadása nem sikerült!" + +#: ../lib/modules/range.inc:108 +msgid "Adding the range failed because errors occured." +msgstr "A tartomány hozzáadása hiba következtében nem sikerült." + +#: ../templates/selfService/adminMain.php:455 +#: ../help/help.inc:182 +msgid "Additional CSS links" +msgstr "További CSS linkek" + +#: ../lib/modules/zarafaGroup.inc:64 +#: ../lib/modules/zarafaGroup.inc:68 +msgid "Additional email addresses for this entry." +msgstr "További email címek ehhez a bejegyzéshez." + +#: ../lib/modules/posixAccount.inc:217 +#: ../lib/modules/posixAccount.inc:304 +#: ../lib/modules/posixAccount.inc:337 +#: ../lib/modules/posixAccount.inc:382 +#: ../lib/modules/posixAccount.inc:961 +#: ../lib/modules/posixAccount.inc:1037 +#: ../lib/modules/posixAccount.inc:1080 +#: ../lib/modules/posixAccount.inc:1150 +msgid "Additional groups" +msgstr "További csoportok" + +#: ../templates/massDoUpload.php:103 +msgid "Additional tasks for module:" +msgstr "A modul további feladatai:" + +#: ../lib/modules/imapAccess.inc:67 +msgid "Address of IMAP server (e.g. mail.example.org)." +msgstr "IMAP szerver címe (pl.: mail.pelda.org)." + +#: ../help/help.inc:177 +msgid "Adds a new group element to the list of self service options. Use this to structure the input fields." +msgstr "Új csoportelemet ad az önkiszolgáló beállítások listájához. Használja ezt a beviteli mezők struktúrálásához." + +#: ../help/help.inc:179 +msgid "Adds a new self service option to the selected group element." +msgstr "A kiválasztott csoportelemhez új önkiszolgáló beállítási lehetőséget ad." + +#: ../lib/modules/range.inc:95 +msgid "Adds input fields for a new IP range." +msgstr "Beviteli mezőket ad hozzá egy új IP tartomány számára." + +#: ../lib/modules/zarafaUser.inc:92 +#: ../lib/modules/zarafaUser.inc:256 +#: ../lib/modules/zarafaUser.inc:290 +#: ../lib/modules/zarafaUser.inc:487 +#: ../lib/modules/zarafaUser.inc:1062 +msgid "Admin" +msgstr "Adminisztrátor" + +#: ../lib/modules/inetOrgPerson.inc:284 +#: ../lib/modules/inetOrgPerson.inc:372 +msgid "Administration" +msgstr "Adminisztráció" + +#: ../lib/modules/posixGroup.inc:378 +#: ../lib/modules/nisnetgroup.inc:112 +#: ../lib/modules/groupOfNames.inc:93 +msgid "Administrators group" +msgstr "Adminisztrátorok csoportja" + +#: ../lib/modules/eduPerson.inc:90 +#: ../lib/modules/eduPerson.inc:94 +#: ../lib/modules/eduPerson.inc:158 +#: ../lib/modules/eduPerson.inc:196 +#: ../lib/modules/eduPerson.inc:273 +#: ../lib/modules/eduPerson.inc:663 +msgid "Affiliations" +msgstr "Kapcsolatok" + +#: ../lib/modules/sambaSamAccount.inc:530 +msgid "Alaska" +msgstr "Alaszka" + +#: ../lib/modules/sambaDomain.inc:211 +#: ../lib/modules/sambaDomain.inc:212 +msgid "Algorithmic RID base is not a number!" +msgstr "Az algoritmikus RID alap nem szám!" + +#: ../lib/modules/aliasEntry.inc:38 +msgid "Alias" +msgstr "Álnév" + +#: ../lib/types/alias.inc:62 +msgid "Alias entries" +msgstr "Álnév bejegyzések" + +#: ../lib/modules/nisMailAlias.inc:106 +#: ../lib/modules/nisMailAlias.inc:107 +msgid "Alias is empty or invalid!" +msgstr "Az álnév üres vagy érvénytelen!" + +#: ../lib/types/mailAlias.inc:91 +#: ../lib/modules/nisMailAlias.inc:67 +#: ../lib/modules/nisMailAlias.inc:82 +#: ../lib/modules/nisMailAlias.inc:96 +#: ../lib/modules/nisMailAlias.inc:143 +#: ../lib/modules/nisMailAlias.inc:283 +msgid "Alias name" +msgstr "Álnév" + +#: ../lib/types/alias.inc:92 +#: ../lib/modules/customScripts.inc:45 +#: ../lib/modules/uidObject.inc:52 +#: ../lib/modules/aliasEntry.inc:54 +#: ../lib/modules/aliasEntry.inc:62 +#: ../lib/modules/aliasEntry.inc:70 +#: ../lib/modules/aliasEntry.inc:92 +#: ../lib/modules/aliasEntry.inc:101 +#: ../lib/modules/aliasEntry.inc:231 +msgid "Aliased entry" +msgstr "Álnévvel ellátott bejegyzés" + +#: ../templates/schema/schema.php:224 +#: ../lib/types/alias.inc:53 +#: ../lib/modules/zarafaUser.inc:152 +#: ../lib/modules/zarafaUser.inc:320 +#: ../lib/modules/zarafaUser.inc:1086 +msgid "Aliases" +msgstr "Álnevek" + +#: ../lib/lists.inc:637 +#, php-format +msgid "All accounts (%s)" +msgstr "Összes fiók (%s)" + +#: ../templates/selfService/selfServiceMain.php:293 +#: ../templates/initsuff.php:157 +msgid "All changes were successful." +msgstr "Minden változtatás sikeres volt." + +#: ../help/help.inc:189 +msgid "All following lines form the mail body." +msgstr "Minden ezt követő sor a levél szövegtörzséből." + +#: ../lib/lists.inc:636 +#, php-format +msgid "All selected accounts (%s)" +msgstr "Összes kiválasztott fiók (%s)" + +#: ../lib/modules/sambaDomain.inc:110 +#: ../lib/modules/sambaDomain.inc:187 +#: ../lib/modules/sambaDomain.inc:301 +#: ../lib/modules/sambaDomain.inc:654 +msgid "Allow machine password changes" +msgstr "Az egyes gépek számára engedélyezett a jelszó megváltoztatása" + +#: ../lib/types/ppolicyType.inc:90 +#: ../lib/modules/ppolicy.inc:124 +#: ../lib/modules/ppolicy.inc:147 +#: ../lib/modules/ppolicy.inc:268 +#: ../lib/modules/ppolicy.inc:479 +msgid "Allow password change" +msgstr "Jelszó megváltoztatásának engedélyezése" + +#: ../lib/modules/sambaSamAccount.inc:211 +#: ../lib/modules/sambaSamAccount.inc:329 +#: ../lib/modules/sambaSamAccount.inc:1384 +#: ../lib/modules/sambaSamAccount.inc:1664 +msgid "Allow terminal server login" +msgstr "A terminálszerverre való belépés engedélyezett" + +#: ../templates/config/mainmanage.php:194 +#: ../lib/types/user.inc:95 +#: ../help/help.inc:138 +msgid "Allowed hosts" +msgstr "Engedélyezett gazdagépek" + +#: ../lib/modules/sambaSamAccount.inc:1235 +#: ../lib/modules/sambaSamAccount.inc:1236 +msgid "Allowed workstations" +msgstr "Engedélyezett munkaállomások" + +#: ../lib/modules/sambaSamAccount.inc:545 +msgid "Almaty, Dhaka, Colombo" +msgstr "Almati, Dhaka, Colombo" + +#: ../lib/modules/kolabUser.inc:50 +msgid "Always accept" +msgstr "Mindig elfogad" + +#: ../lib/modules/kolabUser.inc:51 +msgid "Always reject" +msgstr "Mindig elutasít" + +#: ../templates/tree/edit.php:140 +#, php-format +msgid "An attribute (%s) was modified and is highlighted below." +msgstr "Egy attribútum (%s) módosult, ez lentebb kiemelten látszik." + +#: ../lib/modules/sudoRole.inc:222 +msgid "An sudo role with this name already exists. Please choose another name." +msgstr "Egy sudo szerep már létezik ezen a néven. Kérem, válasszon másik nevet!" + +#: ../lib/modules/kolabUser.inc:330 +#: ../lib/modules/kolabUser.inc:790 +#: ../lib/modules/kolabUser.inc:888 +msgid "Anyone" +msgstr "Bárki" + +#: ../lib/modules/asteriskExtension.inc:94 +#: ../lib/modules/asteriskExtension.inc:114 +#: ../lib/modules/asteriskExtension.inc:127 +#: ../lib/modules/asteriskExtension.inc:156 +#: ../lib/modules/asteriskExtension.inc:245 +#: ../lib/modules/asteriskExtension.inc:475 +msgid "Application" +msgstr "Alkalmazás" + +#: ../lib/modules/asteriskExtension.inc:78 +#: ../lib/modules/asteriskExtension.inc:123 +#: ../lib/modules/asteriskExtension.inc:163 +#: ../lib/modules/asteriskExtension.inc:253 +#: ../lib/modules/asteriskExtension.inc:472 +msgid "Application data" +msgstr "Alkalmazási adat" + +#: ../templates/tree/delete_form.php:149 +msgid "Are you sure you want to permanently delete this object?" +msgstr "Valóban véglegesen törölni kívánja ezt az objektumot?" + +#: ../lib/modules/imapAccess.inc:105 +msgid "Ask" +msgstr "Kérdezzen" + +#: ../lib/modules/asteriskAccount.inc:66 +msgid "Asterisk" +msgstr "Asterisk" + +#: ../lib/modules/asteriskExtension.inc:63 +msgid "Asterisk extension" +msgstr "Asterisk kiterjesztés" + +#: ../lib/types/asteriskExt.inc:54 +msgid "Asterisk extensions" +msgstr "Asterisk kiterjesztések" + +#: ../lib/types/asteriskExt.inc:63 +msgid "Asterisk extensions entries" +msgstr "Asterisk kiterjesztések bejegyzései" + +#: ../lib/modules/asteriskAccount.inc:99 +#: ../lib/modules/asteriskAccount.inc:105 +#: ../lib/modules/asteriskAccount.inc:109 +msgid "Asterisk realm" +msgstr "Asterisk tartomány" + +#: ../lib/modules/asteriskVoicemail.inc:64 +msgid "Asterisk voicemail" +msgstr "Asterisk hangposta" + +#: ../lib/modules/asteriskVoicemail.inc:111 +msgid "Asterisk voicemail context." +msgstr "Asterisk hangposta környezet." + +#: ../lib/modules/sambaSamAccount.inc:535 +msgid "Atlantic time (Canada), Caracas" +msgstr "Atlanti idő (Kanada), Caracas" + +#: ../templates/tree/update_confirm.php:152 +msgid "Attribute" +msgstr "Attribútum" + +#: ../templates/schema/schema.php:67 +#: ../templates/schema/schema.php:68 +msgid "Attribute types" +msgstr "Attribútum típusok" + +#: ../lib/modules/sambaSamAccount.inc:551 +msgid "Auckland, Fiji, Kamchatka" +msgstr "Auckland, Fidzsi, Kamcsatka" + +#: ../lib/modules/asteriskAccount.inc:100 +msgid "Authentication realm for Asterisk server (default: asterisk). This value set in sip.conf (option: \"realm\")." +msgstr "Azonosítási tartomány az Asterisk szerver részére (alapértelmezett: asterisk). Az érték a sip.conf-ban van beállítva (beállítási pont: \"realm\")." + +#: ../lib/modules/eduPerson.inc:127 +#: ../lib/modules/eduPerson.inc:132 +#: ../lib/modules/sambaSamAccount.inc:147 +#: ../lib/modules/sambaSamAccount.inc:377 +#: ../lib/modules/zarafaUser.inc:120 +#: ../lib/modules/zarafaUser.inc:1097 +#: ../lib/modules/phpGroupwareUser.inc:86 +#: ../lib/modules/phpGroupwareUser.inc:92 +#: ../lib/modules/shadowAccount.inc:99 +#: ../lib/modules/shadowAccount.inc:188 +#: ../lib/modules/hostObject.inc:76 +#: ../lib/modules/hostObject.inc:94 +msgid "Automatically add this extension" +msgstr "E kiterjesztés automatikus hozzáadása" + +#: ../templates/config/conftypes.php:216 +#: ../lib/modules/customScripts.inc:54 +msgid "Available account types" +msgstr "Rendelkezésre álló fióktípusok" + +#: ../lib/modules/customScripts.inc:55 +#: ../lib/modules/customScripts.inc:67 +msgid "Available actions" +msgstr "Rendelkezésre álló teendők" + +#: ../lib/modules/posixAccount.inc:1040 +#: ../lib/modules/nisnetgroup.inc:375 +msgid "Available groups" +msgstr "Rendelkezésre álló csoportok" + +#: ../templates/config/confmodules.php:293 +msgid "Available modules" +msgstr "Rendelkezésre álló modulok" + +#: ../lib/modules/posixGroup.inc:242 +#: ../lib/modules/asteriskExtension.inc:310 +msgid "Available users" +msgstr "Rendelkezésre álló felhasználók" + +#: ../lib/modules/sambaSamAccount.inc:1238 +msgid "Available workstations" +msgstr "Rendelkezésre álló munkaállomások" + +#: ../lib/modules/sambaSamAccount.inc:538 +msgid "Azores, Cape Verde Islands" +msgstr "Azori-szigetek, Zöld-foki-szigetek" + +#: ../lib/modules/dhcp_settings.inc:87 +msgid "B-Node (0x01)" +msgstr "B-Node (0x01)" + +#: ../templates/tree/update_confirm.php:255 +#: ../templates/massBuildAccounts.php:227 +#: ../lib/modules/posixGroup.inc:266 +#: ../lib/modules/sambaSamAccount.inc:1255 +#: ../lib/modules/posixAccount.inc:1058 +#: ../lib/modules/nisnetgroup.inc:389 +#: ../lib/modules/inetOrgPerson.inc:1005 +#: ../lib/modules/groupOfNames.inc:360 +msgid "Back" +msgstr "Vissza" + +#: ../lib/types/dhcp.inc:47 +msgid "Back to DHCP list" +msgstr "Vissza a DHCP listához" + +#: ../lib/types/nisObjectType.inc:30 +msgid "Back to NIS object list" +msgstr "Vissza a NIS objektumlistához" + +#: ../lib/baseType.inc:46 +msgid "Back to account list" +msgstr "Vissza a fióklistához" + +#: ../lib/types/mailAlias.inc:44 +#: ../lib/types/alias.inc:44 +msgid "Back to alias list" +msgstr "Vissza az álnév-listához" + +#: ../lib/types/smbDomain.inc:44 +msgid "Back to domain list" +msgstr "Vissza a tartománylistához" + +#: ../lib/types/asteriskExt.inc:45 +msgid "Back to extensions list" +msgstr "Vissza a kiterjesztéslistához" + +#: ../templates/lists/userlink.php:63 +#: ../lib/types/gon.inc:44 +#: ../lib/types/group.inc:45 +#: ../lib/types/netgroup.inc:44 +msgid "Back to group list" +msgstr "Vissza a csoportlistához" + +#: ../lib/types/host.inc:44 +msgid "Back to host list" +msgstr "Vissza a gazdaállomás-listához" + +#: ../templates/delete.php:269 +msgid "Back to list" +msgstr "Vissza a listához" + +#: ../templates/config/mainmanage.php:155 +#: ../templates/config/index.php:71 +#: ../templates/config/conflogin.php:109 +#: ../templates/config/mainlogin.php:114 +#: ../templates/selfService/adminLogin.php:109 +msgid "Back to login" +msgstr "Vissza a bejelentkezéshez" + +#: ../lib/types/ppolicyType.inc:30 +msgid "Back to policy list" +msgstr "Vissza az irányelv listához" + +#: ../templates/config/profmanage.php:73 +#: ../templates/selfService/profManage.php:73 +msgid "Back to profile login" +msgstr "Vissza a belépés profilhoz" + +#: ../lib/types/sudo.inc:30 +msgid "Back to sudo role list" +msgstr "Vissza a sudo szerep listához" + +#: ../lib/types/user.inc:44 +msgid "Back to user list" +msgstr "Vissza a felhasználólistához" + +#: ../lib/modules/sudoRole.inc:130 +msgid "Backup script" +msgstr "Háttértár szkript" + +#: ../lib/modules/sambaSamAccount.inc:542 +msgid "Baghdad, Riyadh, Moscow" +msgstr "Bagdad, Rijád, Moszkva" + +#: ../lib/modules/sambaSamAccount.inc:546 +msgid "Bangkok, Hanoi, Jakarta" +msgstr "Bangkok, Hanoi, Jakarta" + +#: ../templates/tree/export_form.php:74 +msgid "Base (base DN only)" +msgstr "Alap (csak az alap DN)" + +#: ../templates/tree/export_form.php:99 +msgid "Base DN" +msgstr "Alap DN" + +#: ../templates/config/confmodules.php:214 +#: ../help/help.inc:130 +msgid "Base module" +msgstr "Alapmodul" + +#: ../templates/pdfedit/pdfpage.php:434 +msgid "Beginning" +msgstr "Kezdet" + +#: ../lib/modules/sambaSamAccount.inc:547 +msgid "Beijing, Perth, Singapore" +msgstr "Peking, Perth, Szingapúr" + +#: ../templates/tree/edit.php:176 +#: ../templates/tree/edit.php:305 +msgid "Binary value" +msgstr "Bináris érték" + +#: ../lib/modules/quota.inc:52 +msgid "Block hard quota" +msgstr "Blokk keménykvóta" + +#: ../lib/modules/quota.inc:52 +#: ../lib/modules/quota.inc:53 +msgid "Block hard quota contains invalid characters. Only natural numbers are allowed." +msgstr "A blokk keménykvóta érvénytelen karaktereket tartalmaz. Csak természetes számok használhatóak." + +#: ../lib/modules/quota.inc:58 +msgid "Block quota" +msgstr "Blokk kvóta" + +#: ../lib/modules/quota.inc:50 +msgid "Block soft quota" +msgstr "Blokk lágykvóta" + +#: ../lib/modules/quota.inc:50 +#: ../lib/modules/quota.inc:51 +msgid "Block soft quota contains invalid characters. Only natural numbers are allowed." +msgstr "A blokk lágykvóta érvénytelen karaktereket tartalmaz. Csak természetes számok használhatóak." + +#: ../lib/modules/quota.inc:58 +#: ../lib/modules/quota.inc:59 +msgid "Block soft quota must be smaller than block hard quota." +msgstr "A blokk lágykvóta kisebb kell legyen, mint a blokk keménykvóta." + +#: ../lib/modules/sambaSamAccount.inc:536 +msgid "Brazil, Buenos Aires" +msgstr "Brazília, Buenos Aires" + +#: ../lib/modules/sambaGroupMapping.inc:73 +msgid "Builtin group" +msgstr "Beépített csoport" + +#: ../lib/modules/inetOrgPerson.inc:78 +#: ../lib/modules/inetOrgPerson.inc:124 +#: ../lib/modules/inetOrgPerson.inc:213 +#: ../lib/modules/inetOrgPerson.inc:282 +#: ../lib/modules/inetOrgPerson.inc:464 +#: ../lib/modules/inetOrgPerson.inc:559 +#: ../lib/modules/inetOrgPerson.inc:935 +#: ../lib/modules/inetOrgPerson.inc:1045 +#: ../lib/modules/inetOrgPerson.inc:1492 +msgid "Business category" +msgstr "Üzleti kategória" + +#: ../lib/modules/inetOrgPerson.inc:560 +msgid "Business category (e.g. Administration, IT-Services, Manangement, ...)" +msgstr "Üzleti kategória (pl. Adminisztráció, IT-részleg, Menedzsment, ...)" + +#: ../lib/modules/customScripts.inc:81 +msgid "By default, LAM will show the executed command along with any output of it. If you want to hide the command and only show the output then activate this option." +msgstr "Alapértelmezés szerint a LAM megmutatja a végrehajtott utasítást annak bármilyen kimeneti értékével együtt. Ha az utasítást el akarja rejteni, és csak a kimenetet kívánja megjeleníteni, akkor aktiválja ezt a beállítást." + +#: ../templates/masscreate.php:239 +msgid "CSV file" +msgstr "CSV fájl" + +#: ../help/help.inc:97 +msgid "Cache timeout" +msgstr "Cache időtúllépés" + +#: ../lib/modules/asteriskAccount.inc:83 +#: ../lib/modules/asteriskAccount.inc:123 +#: ../lib/modules/asteriskAccount.inc:133 +#: ../lib/modules/asteriskAccount.inc:195 +#: ../lib/modules/asteriskAccount.inc:294 +msgid "Caller ID" +msgstr "Hívó ID" + +#: ../lib/modules/sambaSamAccount.inc:284 +#: ../lib/modules/sambaSamAccount.inc:287 +#: ../lib/modules/sambaSamAccount.inc:290 +#: ../lib/modules/sambaSamAccount.inc:296 +#: ../lib/modules/posixAccount.inc:383 +#: ../lib/modules/sambaGroupMapping.inc:369 +#: ../lib/modules/shadowAccount.inc:169 +#: ../lib/modules/shadowAccount.inc:173 +#: ../lib/modules/shadowAccount.inc:177 +#: ../lib/modules/shadowAccount.inc:181 +msgid "Can be left empty." +msgstr "Üresen hagyható." + +#: ../templates/tree/update_confirm.php:241 +#: ../templates/tree/delete_form.php:119 +#: ../templates/tree/delete_form.php:168 +#: ../templates/ou_edit.php:118 +#: ../templates/config/mainmanage.php:253 +#: ../templates/config/confmodules.php:145 +#: ../templates/config/confmain.php:178 +#: ../templates/config/moduleSettings.php:144 +#: ../templates/config/conftypes.php:163 +#: ../templates/selfService/adminMain.php:301 +#: ../templates/pdfedit/pdfdelete.php:96 +#: ../templates/pdfedit/pdfpage.php:585 +#: ../templates/delete.php:108 +#: ../templates/profedit/profiledelete.php:92 +#: ../templates/profedit/profilepage.php:228 +#: ../templates/initsuff.php:189 +#: ../lib/modules/device.inc:234 +#: ../lib/modules/device.inc:259 +#: ../lib/modules/sambaSamAccount.inc:1330 +#: ../lib/modules/sambaSamAccount.inc:1366 +#: ../lib/modules/sambaSamAccount.inc:1446 +#: ../lib/modules/zarafaUser.inc:757 +#: ../lib/modules/kolabUser.inc:563 +#: ../lib/modules/phpGroupwareUser.inc:261 +#: ../lib/modules/shadowAccount.inc:416 +#: ../lib/modules/nisnetgroup.inc:479 +#: ../lib/modules/aliasEntry.inc:142 +#: ../lib/modules/aliasEntry.inc:162 +#: ../lib/modules/groupOfNames.inc:234 +#: ../lib/modules/groupOfNames.inc:258 +#: ../lib/modules/groupOfNames.inc:312 +#: ../lib/lists.inc:646 +#: ../lib/lists.inc:897 +#: ../lib/modules.inc:1363 +msgid "Cancel" +msgstr "Mégsem" + +#: ../templates/login.php:460 +#: ../templates/login.php:518 +#: ../templates/login.php:523 +#: ../templates/selfService/selfServiceLogin.php:120 +#: ../templates/selfService/selfServiceLogin.php:124 +#: ../templates/selfService/selfServiceMain.php:174 +msgid "Cannot connect to specified LDAP server. Please try again." +msgstr "Nem tudok csatlakozni a megadott LDAP szerverhez. Kérem, próbálja újra." + +#: ../templates/login.php:247 +#: ../lib/config.inc:1234 +msgid "Cannot open config file!" +msgstr "Nem tudom megnyitni a konfigurációs fájlt!" + +#: ../lib/modules/zarafaUser.inc:104 +#: ../lib/modules/zarafaUser.inc:148 +#: ../lib/modules/zarafaUser.inc:221 +#: ../lib/modules/zarafaUser.inc:314 +#: ../lib/modules/zarafaUser.inc:339 +#: ../lib/modules/zarafaUser.inc:477 +#: ../lib/modules/zarafaUser.inc:1050 +msgid "Capacity" +msgstr "Kapacitás" + +#: ../templates/selfService/adminMain.php:402 +msgid "Captions and labels" +msgstr "Feliratok és címkék" + +#: ../lib/modules/inetOrgPerson.inc:123 +#: ../lib/modules/inetOrgPerson.inc:209 +#: ../lib/modules/inetOrgPerson.inc:394 +#: ../lib/modules/inetOrgPerson.inc:458 +#: ../lib/modules/inetOrgPerson.inc:571 +#: ../lib/modules/inetOrgPerson.inc:925 +#: ../lib/modules/inetOrgPerson.inc:1047 +#: ../lib/modules/inetOrgPerson.inc:1478 +msgid "Car license" +msgstr "Autóvezetői engedély" + +#: ../lib/modules/sambaSamAccount.inc:540 +msgid "Central Europe Time, Paris, Berlin" +msgstr "Közép-európai idő, Párizs, Berlin" + +#: ../lib/modules/sambaSamAccount.inc:533 +msgid "Central Time (US & Canada), Mexico City" +msgstr "Középidő (Amerikai Egyesült Államok és Kanada), Mexikóváros" + +#: ../templates/selfService/adminMain.php:480 +#: ../templates/pdfedit/pdfpage.php:484 +#: ../templates/pdfedit/pdfpage.php:493 +#: ../lib/modules/device.inc:178 +#: ../lib/modules/sambaSamAccount.inc:1101 +#: ../lib/modules/sambaSamAccount.inc:1362 +#: ../lib/modules/phpGroupwareUser.inc:154 +#: ../lib/modules/phpGroupwareUser.inc:256 +#: ../lib/modules/shadowAccount.inc:339 +#: ../lib/modules/shadowAccount.inc:412 +#: ../lib/modules/asteriskExtension.inc:256 +#: ../lib/modules/aliasEntry.inc:94 +#: ../lib/modules/groupOfNames.inc:159 +#: ../lib/modules/groupOfNames.inc:174 +msgid "Change" +msgstr "Változtatás" + +#: ../lib/modules/posixGroup.inc:206 +#: ../lib/modules/posixGroup.inc:417 +msgid "Change GID number of users and hosts" +msgstr "Felhasználók és gazdaállomások GID-értékének megváltoztatása" + +#: ../templates/config/profmanage.php:358 +#: ../help/help.inc:124 +msgid "Change default profile" +msgstr "Alapértelmezett profil módosítása" + +#: ../lib/lists.inc:888 +msgid "Change list settings" +msgstr "Lista beállítások változtatása" + +#: ../templates/config/mainmanage.php:245 +#: ../help/help.inc:126 +msgid "Change master password" +msgstr "Mesterjelszó módosítása" + +#: ../templates/lists/changePassword.php:205 +#: ../templates/lists/changePassword.php:261 +#: ../templates/lists/changePassword.php:292 +#: ../lib/types/user.inc:307 +#: ../help/help.inc:95 +msgid "Change password" +msgstr "Jelszó módosítása" + +#: ../templates/config/confmain.php:253 +msgid "Change passwords" +msgstr "Jelszavak módosítása" + +#: ../lib/types/dhcp.inc:281 +#: ../lib/lists.inc:719 +msgid "Change settings" +msgstr "Beállítások módosítása" + +#: ../lib/modules/posixAccount.inc:828 +msgid "Changed value because only ASCII characters are allowed." +msgstr "Az érték változott, mert csak ASCII karakterek elfogadhatóak." + +#: ../templates/tests/index.php:52 +#: ../lib/tools/tests.inc:112 +msgid "Check if quotas and homedirectories can be managed." +msgstr "Ellenőrizze, hogy a kvóták és a home könyvtárak beállíthatóak -e." + +#: ../templates/tests/index.php:58 +#: ../lib/tools/tests.inc:118 +msgid "Check if the LDAP schema fits the requirements of the selected account modules." +msgstr "Ellenőrízze, hogy az LDAP séma megfelel -e a választott fiókmodulok követelményeinek." + +#: ../templates/tests/lamdaemonTest.php:85 +msgid "Check quotas" +msgstr "Ellenőrízze a kvótákat" + +#: ../templates/masscreate.php:233 +msgid "Check your input carefully. LAM will only do some basic checks on the upload data." +msgstr "Alaposan ellenőrizze a bevitt adatokat! A LAM csak néhány alapvető vizsgálatot végez a feltöltött adatokon." + +#: ../lib/modules/posixAccount.inc:99 +msgid "Choose a server for the home directory!" +msgstr "Válasszon szervert a home könyvtár számára!" + +#: ../templates/tree/create_form.php:76 +msgid "Choose a template" +msgstr "Válasszon egy sablont" + +#: ../lib/modules/imapAccess.inc:79 +msgid "Choose the way how to provide the IMAP admin password. You can use the same password as for the LAM login or LAM will ask you for a password when it is required." +msgstr "Döntse el, hogyan adja meg az IMAP adminisztrátor jelszavát. Használhatja ugyanazt a jelszót, mint a LAM bejelentkezésnél, vagy a LAM kérni fog Öntől egy jelszót, amikor szükséges." + +#: ../templates/tree/create.php:169 +#: ../lib/config.inc:158 +msgid "Click here if you are not directed to the next page." +msgstr "Kattintson ide, ha nem irányítódik automatikusan a következő oldalra." + +#: ../lib/types/user.inc:278 +msgid "Click to switch between thumbnail and original size." +msgstr "Kattintson ide az előnézet és az eredeti méret közötti váltáshoz." + +#: ../lib/modules/sambaSamAccount.inc:223 +#: ../lib/modules/sambaSamAccount.inc:356 +#: ../lib/modules/sambaSamAccount.inc:1414 +#: ../lib/modules/sambaSamAccount.inc:1692 +msgid "Client printer is default" +msgstr "A kliens nyomtatója az alapértelmezés szerinti" + +#: ../templates/schema/schema.php:197 +msgid "Collective" +msgstr "Kollektíva" + +#: ../templates/masscreate.php:250 +msgid "Columns" +msgstr "Oszlopok" + +#: ../lib/modules/sambaSamAccount.inc:296 +msgid "Comma separated list of Samba workstations the user is allowed to login. Empty means every workstation." +msgstr "Azon Samba munkaállomások vesszővel elválasztott listája, melyekre a felhasználó bejelentkezhet. Ha üresen marad, minden munkaállomásra való bejelentkezés engedélyezett." + +#: ../lib/types/sudo.inc:80 +#: ../lib/modules/customScripts.inc:129 +msgid "Command" +msgstr "Utasítás" + +#: ../lib/modules/sudoRole.inc:71 +#: ../lib/modules/sudoRole.inc:97 +#: ../lib/modules/sudoRole.inc:146 +#: ../lib/modules/sudoRole.inc:175 +#: ../lib/modules/sudoRole.inc:184 +#: ../lib/modules/sudoRole.inc:318 +#: ../lib/modules/sudoRole.inc:693 +msgid "Commands" +msgstr "Parancsok" + +#: ../templates/tree/update_confirm.php:234 +msgid "Commit" +msgstr "Elküldés" + +#: ../lib/modules/posixAccount.inc:97 +#: ../lib/modules/posixAccount.inc:198 +#: ../lib/modules/posixAccount.inc:307 +#: ../lib/modules/posixAccount.inc:386 +#: ../lib/modules/posixAccount.inc:408 +#: ../lib/modules/posixAccount.inc:939 +#: ../lib/modules/posixAccount.inc:1145 +#: ../lib/modules/inetOrgPerson.inc:71 +#: ../lib/modules/inetOrgPerson.inc:477 +#: ../lib/modules/inetOrgPerson.inc:539 +#: ../lib/modules/inetOrgPerson.inc:834 +#: ../lib/modules/inetOrgPerson.inc:1043 +#: ../lib/modules/inetOrgPerson.inc:1097 +#: ../lib/modules/asteriskExtension.inc:102 +#: ../lib/modules/asteriskExtension.inc:129 +#: ../lib/modules/asteriskExtension.inc:149 +#: ../lib/modules/asteriskExtension.inc:213 +#: ../lib/modules/asteriskExtension.inc:487 +msgid "Common name" +msgstr "Szokványos név" + +#: ../lib/modules/asteriskExtension.inc:103 +msgid "Common name of the Asterisk extension." +msgstr "Az Asterisk kiterjesztés szokványos elnevezése" + +#: ../templates/serverInfo.php:103 +msgid "Config suffix" +msgstr "Beállításokat tartalmazó utótag" + +#: ../templates/config/index.php:50 +msgid "Configuration overview" +msgstr "A beállítások áttekintése" + +#: ../templates/config/confmodules.php:373 +msgid "Conflicting module:" +msgstr "Ütköző modul:" + +#: ../lib/modules/sambaSamAccount.inc:221 +#: ../lib/modules/sambaSamAccount.inc:350 +#: ../lib/modules/sambaSamAccount.inc:1410 +#: ../lib/modules/sambaSamAccount.inc:1682 +msgid "Connect client drives" +msgstr "Csatlakoztassa a kliens meghajtókat" + +#: ../lib/modules/sambaSamAccount.inc:222 +#: ../lib/modules/sambaSamAccount.inc:353 +#: ../lib/modules/sambaSamAccount.inc:1412 +#: ../lib/modules/sambaSamAccount.inc:1687 +msgid "Connect client printers" +msgstr "Csatlakoztassa a kliens nyomtatókat" + +#: ../lib/modules/sambaSamAccount.inc:218 +#: ../lib/modules/sambaSamAccount.inc:1404 +#: ../lib/modules/sambaSamAccount.inc:1675 +msgid "Connection time limit" +msgstr "Kapcsolat időkorlátja" + +#: ../templates/tree/templates/creation/custom.php:66 +#: ../templates/tree/templates/creation/new_ou_template.php:105 +msgid "Container" +msgstr "Konténer" + +#: ../templates/tree/templates/creation/new_ou_template.php:64 +msgid "Container DN" +msgstr "Konténer DN" + +#: ../templates/tree/delete_attr.php:82 +msgid "Could not perform ldap_modify operation." +msgstr "Nem sikerült végrehajtani az ldap_modify műveletet." + +#: ../templates/config/profmanage.php:137 +#: ../templates/selfService/profManage.php:116 +msgid "Could not rename file!" +msgstr "Nem tudtam átnevezni a fájlt!" + +#: ../templates/pdfedit/pdfpage.php:99 +msgid "Could not save PDF structure, access denied." +msgstr "Nem sikerült a PDF struktúrát elmenteni, a hozzáférés megtagadva." + +#: ../lib/modules/kolabUser.inc:86 +#: ../lib/modules/kolabUser.inc:147 +#: ../lib/modules/kolabUser.inc:176 +#: ../lib/modules/kolabUser.inc:215 +#: ../lib/modules/kolabUser.inc:285 +#: ../lib/modules/kolabUser.inc:766 +msgid "Country" +msgstr "Ország" + +#: ../lib/modules/kolabUser.inc:233 +#: ../lib/modules/kolabUser.inc:234 +msgid "Country name is invalid!" +msgstr "Érvénytelen országnév!" + +#: ../templates/tree/templates/creation/custom.php:234 +#: ../templates/tree/templates/creation/new_ou_template.php:107 +#: ../templates/pdfedit/pdfmain.php:141 +#: ../templates/profedit/profilemain.php:135 +#: ../templates/initsuff.php:188 +msgid "Create" +msgstr "Létrehoz" + +#: ../templates/tree/creation_template.php:85 +#: ../templates/tree/create_form.php:75 +msgid "Create Object" +msgstr "Objektum létrehozása" + +#: ../lib/lists.inc:435 +#: ../lib/lists.inc:621 +#: ../lib/modules.inc:1549 +#: ../help/help.inc:156 +msgid "Create PDF file" +msgstr "PDF fájl létrehozása" + +#: ../templates/pdfedit/pdfmain.php:134 +msgid "Create a new PDF structure" +msgstr "Új PDF szerkezet létrehozása" + +#: ../templates/profedit/profilemain.php:123 +msgid "Create a new profile" +msgstr "Új profil létrehozása" + +#: ../lib/types/dhcp.inc:46 +msgid "Create another DHCP entry" +msgstr "Másik DHCP bejegyzés létrehozása" + +#: ../lib/types/nisObjectType.inc:29 +msgid "Create another NIS object" +msgstr "Másik NIS objektum létrehozása" + +#: ../lib/baseType.inc:45 +msgid "Create another account" +msgstr "Másik fiók létrehozása" + +#: ../lib/types/mailAlias.inc:43 +#: ../lib/types/alias.inc:43 +msgid "Create another alias" +msgstr "Másik álnév létrehozása" + +#: ../lib/types/smbDomain.inc:43 +msgid "Create another domain" +msgstr "Másik tartomány létrehozása" + +#: ../lib/types/asteriskExt.inc:44 +msgid "Create another extension" +msgstr "Másik kiterjesztés létrehozása" + +#: ../lib/types/gon.inc:43 +#: ../lib/types/group.inc:44 +#: ../lib/types/netgroup.inc:43 +msgid "Create another group" +msgstr "Másik csoport létrehozása" + +#: ../lib/types/host.inc:43 +msgid "Create another host" +msgstr "Másik gazdaállomás létrehozása" + +#: ../lib/types/ppolicyType.inc:29 +msgid "Create another policy" +msgstr "Másik irányelv létrehozása" + +#: ../lib/types/sudo.inc:29 +msgid "Create another sudo role" +msgstr "Másik sudo szerep létrehozása" + +#: ../lib/types/user.inc:43 +msgid "Create another user" +msgstr "Másik felhasználó létrehozása" + +#: ../lib/lists.inc:626 +msgid "Create for" +msgstr "Létrehozás a következő részére" + +#: ../lib/modules/posixAccount.inc:230 +#: ../lib/modules/posixAccount.inc:977 +#: ../lib/modules/posixAccount.inc:1089 +msgid "Create home directory" +msgstr "Home könyvtár létrehozása" + +#: ../lib/modules/imapAccess.inc:196 +msgid "Create mailbox" +msgstr "Postafiók létrehozása" + +#: ../templates/tree/edit.php:125 +#: ../templates/tree/tree.php:189 +#: ../templates/tree/tree.php:191 +#: ../templates/tree/tree.php:192 +#: ../lib/tree.inc:92 +#: ../lib/tree.inc:93 +#: ../lib/tree.inc:157 +#: ../lib/tree.inc:159 +#: ../lib/tree.inc:160 +msgid "Create new entry" +msgstr "Új bejegyzés létrehozása" + +#: ../templates/config/profmanage.php:119 +#: ../templates/selfService/profManage.php:99 +msgid "Created new profile." +msgstr "Új profil létrehozva." + +#: ../lib/tools/fileUpload.inc:53 +msgid "Creates accounts by uploading a CSV formated file." +msgstr "Fiókok létrehozása CSV formátumú fájl feltöltésével." + +#: ../templates/tree/add_value_form.php:101 +msgid "Current list of values for attribute:" +msgstr "Az attribútum értékeinek jelenlegi listája:" + +#: ../templates/tree/templates/templates.inc:51 +msgid "Custom" +msgstr "Egyedi" + +#: ../lib/modules/customScripts.inc:41 +#: ../lib/modules/customScripts.inc:52 +#: ../lib/modules/customScripts.inc:65 +#: ../lib/modules/customScripts.inc:86 +#: ../lib/modules/customScripts.inc:95 +msgid "Custom scripts" +msgstr "Egyedi szkriptek" + +#: ../lib/modules/ddns.inc:69 +msgid "DDNS" +msgstr "DDNS" + +#: ../lib/modules/ddns.inc:352 +msgid "DDNS ist not activated. You can activate it in the DHCP settings (DDNS)." +msgstr "A DDNS nincsen bekapcsolva. Bekapcsolhatja a DHCP beállításoknál (DDNS). " + +#: ../lib/types/dhcp.inc:56 +msgid "DHCP" +msgstr "DHCP" + +#: ../lib/types/dhcp.inc:65 +msgid "DHCP administration" +msgstr "DHCP adminisztráció" + +#: ../lib/types/dhcp.inc:165 +#: ../lib/modules/dhcp_settings.inc:106 +msgid "DHCP settings" +msgstr "DHCP beállítások" + +#: ../templates/tree/edit.php:92 +#: ../templates/tree/add_value_form.php:99 +#: ../templates/tree/add_oclass_form.php:124 +#: ../templates/tree/update_confirm.php:79 +#: ../templates/tree/add_attr_form.php:73 +#: ../templates/tree/delete_form.php:77 +#: ../templates/tree/delete_form.php:151 +#: ../templates/delete.php:87 +#: ../lib/modules.inc:382 +#: ../lib/modules.inc:2059 +msgid "DN" +msgstr "DN" + +#: ../templates/masscreate.php:274 +msgid "DN settings" +msgstr "DN beállítások" + +#: ../templates/masscreate.php:281 +#: ../help/help.inc:150 +msgid "DN suffix" +msgstr "DN utótag" + +#: ../lib/modules/dhcp_settings.inc:175 +#: ../lib/modules/dhcp_settings.inc:189 +#: ../lib/modules/dhcp_settings.inc:228 +#: ../lib/modules/dhcp_settings.inc:526 +#: ../lib/modules/dhcp_settings.inc:613 +msgid "DNS" +msgstr "DNS" + +#: ../lib/modules/dhcp_settings.inc:136 +msgid "DNS (Domain Name System)" +msgstr "DNS (Domain Name System)" + +#: ../lib/modules/asteriskExtension.inc:99 +msgid "DNs of the extension owners" +msgstr "A kiterjesztés tulajdonosainak DN-jei" + +#: ../lib/export.inc:513 +#, php-format +msgid "DSML Export for: %s" +msgstr "DSML exportálás a következőnek: %s" + +#: ../templates/tree/templates/creation/custom.php:96 +msgid "Data field for RDN is empty!" +msgstr "Az RDN adatmezeje üres!" + +#: ../lib/modules/sambaSamAccount.inc:276 +msgid "Date after the user is able to change his password." +msgstr "Az a dátum, mely után a felhasználó meg tudja változtatni jelszavát." + +#: ../lib/modules/sambaSamAccount.inc:278 +msgid "Date after the user must change his password." +msgstr "Az a dátum, mely után a felhasználónak meg kell változtatnia jelszavát." + +#: ../lib/modules/shadowAccount.inc:169 +msgid "Days before password is to expire that user is warned of pending password expiration. If set value must be >0." +msgstr "Az a szám, ahány nappal korábban a felhasználó értesítést kap arról, hogy jelszava lejár. Ha beállítja, az érték 0-nál nagyobb legyen." + +#: ../templates/config/mainmanage.php:215 +msgid "Debug" +msgstr "Nyomkövetés" + +#: ../lib/modules/dhcp_settings.inc:139 +#: ../lib/modules/dhcp_settings.inc:176 +#: ../lib/modules/dhcp_settings.inc:190 +#: ../lib/modules/dhcp_settings.inc:234 +#: ../lib/modules/dhcp_settings.inc:528 +#: ../lib/modules/dhcp_settings.inc:614 +msgid "Default gateway" +msgstr "Alapértelmezett átjáró (gateway)" + +#: ../templates/config/confmain.php:278 +#: ../help/help.inc:91 +msgid "Default language" +msgstr "Alapértelmezett nyelv" + +#: ../templates/masscreate.php:266 +msgid "Default value" +msgstr "Alapértelmezett érték" + +#: ../lib/modules/sambaDomain.inc:111 +msgid "Defines if workstations may change their passwords." +msgstr "Meghatározza, hogy a munkaállomások megváltoztathatják -e jelszavukat." + +#: ../lib/modules/kolabUser.inc:117 +#: ../lib/modules/kolabUser.inc:131 +#: ../lib/modules/kolabUser.inc:135 +#: ../lib/modules/kolabUser.inc:195 +#: ../lib/modules/kolabUser.inc:218 +#: ../lib/modules/kolabUser.inc:370 +#: ../lib/modules/kolabUser.inc:804 +#: ../lib/modules/kolabUser.inc:868 +msgid "Delegates" +msgstr "Meghatalmazottak" + +#: ../templates/tree/edit.php:112 +#: ../templates/tree/delete_form.php:159 +#: ../templates/ou_edit.php:117 +#: ../templates/pdfedit/pdfdelete.php:95 +#: ../templates/pdfedit/pdfmain.php:161 +#: ../templates/delete.php:107 +#: ../templates/profedit/profilemain.php:160 +#: ../lib/tree.inc:1176 +#: ../lib/modules/kolabUser.inc:864 +#: ../lib/modules/nisnetgroup.inc:242 +#: ../lib/lists.inc:429 +msgid "Delete" +msgstr "Törlés" + +#: ../templates/tree/delete_form.php:76 +#, php-format +msgid "Delete %s" +msgstr "%s törlése" + +#: ../lib/types/dhcp.inc:166 +msgid "Delete DHCP(s)" +msgstr "DHCP(k) törlése" + +#: ../lib/types/nisObjectType.inc:147 +msgid "Delete NIS object(s)" +msgstr "NIS objektum(ok) törlése" + +#: ../lib/types/mailAlias.inc:138 +#: ../lib/types/alias.inc:138 +msgid "Delete alias(es)" +msgstr "Álnév törlése" + +#: ../templates/tree/delete_form.php:111 +#, php-format +msgid "Delete all %s objects" +msgstr "Az összes %s objektum törlése" + +#: ../lib/types/smbDomain.inc:159 +msgid "Delete domain(s)" +msgstr "Tartomány(ok) törlése" + +#: ../lib/types/asteriskExt.inc:140 +msgid "Delete extension(s)" +msgstr "Kiterjesztés(ek) törlése" + +#: ../lib/types/gon.inc:161 +#: ../lib/types/group.inc:177 +#: ../lib/types/netgroup.inc:161 +msgid "Delete group(s)" +msgstr "Csoport(ok) törlése" + +#: ../lib/modules/posixAccount.inc:1012 +msgid "Delete home directory" +msgstr "A home könyvtár törlése" + +#: ../lib/types/host.inc:164 +msgid "Delete host(s)" +msgstr "Gazdaállomás(ok) törlése" + +#: ../lib/modules/imapAccess.inc:189 +msgid "Delete mailbox" +msgstr "Postafiók törlése" + +#: ../lib/lists.inc:109 +msgid "Delete object" +msgstr "Objektum törlése" + +#: ../templates/ou_edit.php:191 +#: ../help/help.inc:205 +msgid "Delete organizational unit" +msgstr "Szervezeti egység törlése" + +#: ../lib/modules/inetOrgPerson.inc:972 +msgid "Delete photo" +msgstr "Fénykép törlése" + +#: ../lib/types/ppolicyType.inc:146 +msgid "Delete policy(ies)" +msgstr "Irányelv(ek) törlése" + +#: ../templates/config/profmanage.php:286 +#: ../templates/selfService/profManage.php:262 +#: ../help/help.inc:120 +msgid "Delete profile" +msgstr "Profil törlése" + +#: ../lib/modules/range.inc:91 +#: ../lib/modules/range.inc:109 +#: ../lib/modules/range.inc:435 +msgid "Delete range" +msgstr "Számtartomány törlése" + +#: ../lib/types/sudo.inc:151 +msgid "Delete sudo role(s)" +msgstr "Sudo szerep(ek) törlése" + +#: ../lib/types/user.inc:198 +msgid "Delete user(s)" +msgstr "Felhasználó(k) törlése" + +#: ../templates/delete.php:253 +#, php-format +msgid "Deleted DN: %s" +msgstr "Törölt DN: %s" + +#: ../templates/pdfedit/pdfmain.php:128 +msgid "Deleted PDF structure." +msgstr "Törölt PDF szerkezet." + +#: ../lib/modules/sambaGroupMapping.inc:74 +msgid "Deleted account" +msgstr "Törölt fiók" + +#: ../templates/profedit/profilemain.php:117 +msgid "Deleted profile." +msgstr "Törölt profil." + +#: ../lib/modules/range.inc:92 +msgid "Deletes an IP range." +msgstr "Egy IP tartományt töröl." + +#: ../templates/tree/rdelete.php:74 +#: ../templates/tree/rdelete.php:136 +#: ../templates/tree/rdelete.php:148 +#, php-format +msgid "Deleting %s" +msgstr "%s törlése" + +#: ../lib/lists.inc:937 +msgid "Deletion was successful." +msgstr "A törlés sikerült." + +#: ../lib/modules/inetOrgPerson.inc:125 +#: ../lib/modules/inetOrgPerson.inc:132 +#: ../lib/modules/inetOrgPerson.inc:215 +#: ../lib/modules/inetOrgPerson.inc:370 +#: ../lib/modules/inetOrgPerson.inc:467 +#: ../lib/modules/inetOrgPerson.inc:579 +#: ../lib/modules/inetOrgPerson.inc:940 +#: ../lib/modules/inetOrgPerson.inc:1053 +#: ../lib/modules/inetOrgPerson.inc:1524 +msgid "Department(s)" +msgstr "Részleg(ek)" + +#: ../templates/tree/add_value_form.php:186 +#: ../templates/schema/schema.php:87 +#: ../templates/schema/schema.php:141 +#: ../templates/schema/schema.php:344 +#: ../lib/types/nisObjectType.inc:80 +#: ../lib/types/user.inc:101 +#: ../lib/types/sudo.inc:84 +#: ../lib/types/dhcp.inc:96 +#: ../lib/types/netgroup.inc:92 +#: ../lib/modules/account.inc:75 +#: ../lib/modules/account.inc:88 +#: ../lib/modules/account.inc:98 +#: ../lib/modules/account.inc:106 +#: ../lib/modules/account.inc:220 +#: ../lib/modules/account.inc:231 +#: ../lib/modules/posixGroup.inc:185 +#: ../lib/modules/posixGroup.inc:337 +#: ../lib/modules/posixGroup.inc:389 +#: ../lib/modules/posixGroup.inc:456 +#: ../lib/modules/device.inc:70 +#: ../lib/modules/device.inc:103 +#: ../lib/modules/device.inc:113 +#: ../lib/modules/device.inc:159 +#: ../lib/modules/device.inc:394 +#: ../lib/modules/dhcp_settings.inc:166 +#: ../lib/modules/dhcp_settings.inc:181 +#: ../lib/modules/dhcp_settings.inc:261 +#: ../lib/modules/dhcp_settings.inc:560 +#: ../lib/modules/dhcp_settings.inc:619 +#: ../lib/modules/posixAccount.inc:404 +#: ../lib/modules/nisObject.inc:66 +#: ../lib/modules/nisObject.inc:96 +#: ../lib/modules/nisObject.inc:107 +#: ../lib/modules/nisObject.inc:148 +#: ../lib/modules/nisObject.inc:213 +#: ../lib/modules/sambaGroupMapping.inc:325 +#: ../lib/modules/sambaGroupMapping.inc:394 +#: ../lib/modules/nisnetgroup.inc:77 +#: ../lib/modules/nisnetgroup.inc:130 +#: ../lib/modules/nisnetgroup.inc:188 +#: ../lib/modules/nisnetgroup.inc:573 +#: ../lib/modules/inetOrgPerson.inc:179 +#: ../lib/modules/inetOrgPerson.inc:250 +#: ../lib/modules/inetOrgPerson.inc:413 +#: ../lib/modules/inetOrgPerson.inc:483 +#: ../lib/modules/inetOrgPerson.inc:841 +#: ../lib/modules/inetOrgPerson.inc:1028 +#: ../lib/modules/sudoRole.inc:59 +#: ../lib/modules/sudoRole.inc:128 +#: ../lib/modules/sudoRole.inc:172 +#: ../lib/modules/sudoRole.inc:253 +#: ../lib/modules/sudoRole.inc:684 +#: ../lib/modules/groupOfNames.inc:64 +#: ../lib/modules/groupOfNames.inc:91 +#: ../lib/modules/groupOfNames.inc:112 +#: ../lib/modules/groupOfNames.inc:150 +#: ../lib/modules/groupOfNames.inc:451 +msgid "Description" +msgstr "Leírás" + +#: ../lib/modules/device.inc:38 +msgid "Device" +msgstr "Eszköz" + +#: ../lib/modules/sambaSamAccount.inc:371 +#: ../lib/modules/sambaSamAccount.inc:559 +msgid "Disable LM hashes" +msgstr "LM hash-ek kikapcsolása" + +#: ../lib/modules/ddns.inc:93 +#: ../lib/modules/ddns.inc:344 +msgid "Disable client updates" +msgstr "A kliensek frissítésének kikapcsolása" + +#: ../lib/modules/ddns.inc:94 +msgid "Disables the client to update DNS entries." +msgstr "Kikapcsolja a kliensek DNS bejegyzésekre vonatkozó frissítését." + +#: ../lib/modules/sambaDomain.inc:106 +#: ../lib/modules/sambaDomain.inc:186 +#: ../lib/modules/sambaDomain.inc:292 +#: ../lib/modules/sambaDomain.inc:649 +msgid "Disconnect users outside logon hours" +msgstr "A felhasználókat a megengedett kapcsolódási időn kívül kilépteti." + +#: ../lib/modules/sambaSamAccount.inc:219 +#: ../lib/modules/sambaSamAccount.inc:1406 +#: ../lib/modules/sambaSamAccount.inc:1676 +msgid "Disconnection time limit" +msgstr "Lekapcsolódás időkorlátja" + +#: ../lib/modules/sambaDomain.inc:107 +msgid "Disconnects users if they are logged in outside logon hours." +msgstr "A felhasználókat kilépteti, ha a megengedett kapcsolódási időn kívül vannak bejelentkezve." + +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:191 +#: ../lib/modules/sambaSamAccount.inc:236 +#: ../lib/modules/sambaSamAccount.inc:394 +#: ../lib/modules/sambaSamAccount.inc:1057 +#: ../lib/modules/sambaSamAccount.inc:1633 +#: ../lib/modules/sambaGroupMapping.inc:263 +#: ../lib/modules/sambaGroupMapping.inc:323 +#: ../lib/modules/sambaGroupMapping.inc:356 +#: ../lib/modules/sambaGroupMapping.inc:392 +msgid "Display name" +msgstr "Megjelenített név" + +#: ../templates/lists/changePassword.php:252 +msgid "Display on screen" +msgstr "Képernyőn mutatás" + +#: ../lib/modules.inc:475 +msgid "Displayed account numbers start at \"0\". Add 2 to get the row in your spreadsheet." +msgstr "A kijelzett fiókok \"0\"-nál kezdődnek. Adjon 2-őt az értékhez, hogy megkapja a táblázatban az ennek megfelelő sor számát." + +#: ../templates/ou_edit.php:109 +msgid "Do you really want to delete this OU?" +msgstr "Valóban törölni kívánja ezt az OU-t?" + +#: ../templates/pdfedit/pdfdelete.php:81 +msgid "Do you really want to delete this PDF structure?" +msgstr "Valóban törölni kívánja ezt a PDF szerkezetet?" + +#: ../templates/profedit/profiledelete.php:81 +msgid "Do you really want to delete this profile?" +msgstr "Valóban törölni kívánja ezt a profilt?" + +#: ../lib/modules/kolabUser.inc:558 +msgid "Do you really want to mark this account for deletion?" +msgstr "Valóban törlésre kívánja jelölni ezt a fiókot?" + +#: ../templates/delete.php:81 +msgid "Do you really want to remove the following accounts?" +msgstr "Valóban törölni kívánja a következő fiókokat?" + +#: ../templates/tree/update_confirm.php:146 +msgid "Do you want to make these changes?" +msgstr "Valóban érvényesíti ezeket a változásokat?" + +#: ../lib/modules/sambaSamAccount.inc:192 +#: ../lib/modules/sambaSamAccount.inc:314 +#: ../lib/modules/sambaSamAccount.inc:387 +#: ../lib/modules/sambaSamAccount.inc:511 +#: ../lib/modules/sambaSamAccount.inc:1178 +#: ../lib/modules/sambaSamAccount.inc:1507 +#: ../lib/modules/sambaSamAccount.inc:1529 +#: ../lib/modules/sambaSamAccount.inc:1651 +#: ../lib/modules/sambaGroupMapping.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:290 +#: ../lib/modules/sambaGroupMapping.inc:368 +#: ../lib/modules/sambaGroupMapping.inc:414 +#: ../lib/modules/nisnetgroup.inc:212 +#: ../lib/modules/nisnetgroup.inc:583 +msgid "Domain" +msgstr "Tartomány" + +#: ../lib/types/smbDomain.inc:91 +#: ../lib/modules/sambaDomain.inc:74 +#: ../lib/modules/sambaDomain.inc:144 +#: ../lib/modules/sambaDomain.inc:178 +#: ../lib/modules/sambaDomain.inc:249 +#: ../lib/modules/sambaDomain.inc:254 +#: ../lib/modules/sambaDomain.inc:621 +msgid "Domain SID" +msgstr "Tartomány SID" + +#: ../lib/modules/sambaGroupMapping.inc:335 +msgid "Domain administrators" +msgstr "Tartomány adminisztrátorok" + +#: ../lib/modules/sambaSamAccount.inc:74 +#: ../lib/modules/sambaGroupMapping.inc:58 +#: ../lib/modules/sambaGroupMapping.inc:341 +msgid "Domain admins" +msgstr "Tartomány adminisztrátorok" + +#: ../lib/modules/sambaSamAccount.inc:75 +#: ../lib/modules/sambaGroupMapping.inc:63 +msgid "Domain certificate admins" +msgstr "Tartomány bizonyítványának adminisztrátorai" + +#: ../lib/modules/sambaSamAccount.inc:75 +#: ../lib/modules/sambaSamAccount.inc:772 +#: ../lib/modules/sambaGroupMapping.inc:61 +msgid "Domain computers" +msgstr "Tartomány gépei" + +#: ../lib/modules/sambaSamAccount.inc:75 +#: ../lib/modules/sambaGroupMapping.inc:62 +msgid "Domain controllers" +msgstr "Tartomány ellenőrei" + +#: ../lib/modules/sambaSamAccount.inc:76 +#: ../lib/modules/sambaGroupMapping.inc:65 +msgid "Domain enterprise admins" +msgstr "Tartomány Enterprise adminisztrátorok" + +#: ../lib/modules/sambaGroupMapping.inc:70 +#: ../lib/modules/sambaGroupMapping.inc:281 +msgid "Domain group" +msgstr "Tartomány csoport" + +#: ../lib/modules/sambaSamAccount.inc:74 +#: ../lib/modules/sambaGroupMapping.inc:60 +msgid "Domain guests" +msgstr "Tartomány vendégek" + +#: ../lib/types/smbDomain.inc:92 +#: ../lib/modules/dhcp_settings.inc:124 +#: ../lib/modules/dhcp_settings.inc:172 +#: ../lib/modules/dhcp_settings.inc:186 +#: ../lib/modules/dhcp_settings.inc:210 +#: ../lib/modules/dhcp_settings.inc:520 +#: ../lib/modules/dhcp_settings.inc:610 +#: ../lib/modules/nisnetgroup.inc:144 +#: ../lib/modules/sambaDomain.inc:70 +#: ../lib/modules/sambaDomain.inc:137 +#: ../lib/modules/sambaDomain.inc:177 +#: ../lib/modules/sambaDomain.inc:234 +#: ../lib/modules/sambaDomain.inc:239 +#: ../lib/modules/sambaDomain.inc:618 +msgid "Domain name" +msgstr "Tartománynév" + +#: ../lib/modules/nisnetgroup.inc:144 +#: ../lib/modules/sambaDomain.inc:201 +#: ../lib/modules/sambaDomain.inc:202 +msgid "Domain name is invalid!" +msgstr "Érvénytelen tartománynév!" + +#: ../lib/modules/sambaSamAccount.inc:76 +#: ../lib/modules/sambaGroupMapping.inc:66 +msgid "Domain policy admins" +msgstr "Tartomány irányelveinek adminisztrátorai" + +#: ../lib/modules/sambaSamAccount.inc:76 +#: ../lib/modules/sambaGroupMapping.inc:64 +msgid "Domain schema admins" +msgstr "Tartomány séma adminisztrátorai" + +#: ../lib/modules/sambaSamAccount.inc:74 +#: ../lib/modules/sambaSamAccount.inc:1957 +#: ../lib/modules/sambaGroupMapping.inc:59 +msgid "Domain users" +msgstr "Tartomány felhasználói" + +#: ../templates/pdfedit/pdfpage.php:459 +msgid "Down" +msgstr "Lefelé" + +#: ../templates/masscreate.php:243 +msgid "Download sample CSV file" +msgstr "Minta CSV fájl letöltése" + +#: ../templates/serverInfo.php:113 +msgid "Dynamic subtrees" +msgstr "Dinamikus al-fák" + +#: ../lib/modules/eduPerson.inc:64 +msgid "EDU person" +msgstr "EDU személy" + +#: ../lib/modules/sambaSamAccount.inc:549 +msgid "East Australian Standard, Guam" +msgstr "Közép-ausztrál idő, Guam" + +#: ../lib/modules/sambaSamAccount.inc:541 +msgid "Eastern Europe Time, South Africa" +msgstr "Kelet-európai idő, Dél-Afrika" + +#: ../lib/modules/sambaSamAccount.inc:534 +msgid "Eastern Time (US & Canada), Bogota" +msgstr "Keleti idő (Amerikai Egyesült Államok és Kanada), Bogota" + +#: ../templates/pdfedit/pdfmain.php:158 +#: ../templates/profedit/profilemain.php:157 +#: ../lib/modules/sambaSamAccount.inc:1183 +#: ../lib/modules/sambaSamAccount.inc:1188 +#: ../lib/lists.inc:423 +msgid "Edit" +msgstr "Szerkesztés" + +#: ../templates/config/mainmanage.php:134 +#: ../templates/config/index.php:91 +msgid "Edit general settings" +msgstr "Általános beállítások szerkesztése" + +#: ../lib/modules/posixAccount.inc:962 +msgid "Edit groups" +msgstr "Csoportok szerkesztése" + +#: ../lib/modules/posixGroup.inc:189 +msgid "Edit members" +msgstr "Tagok szerkesztése" + +#: ../templates/config/index.php:117 +msgid "Edit self service" +msgstr "Önkiszolgáló szerkesztése" + +#: ../templates/config/index.php:103 +msgid "Edit server profiles" +msgstr "Szerverprofil szerkesztése" + +#: ../lib/modules/nisnetgroup.inc:197 +msgid "Edit subgroups" +msgstr "Alcsoportok szerkesztése" + +#: ../lib/modules/sambaSamAccount.inc:1139 +msgid "Edit workstations" +msgstr "Munkaállomások szerkesztése" + +#: ../lib/types/user.inc:100 +#: ../lib/modules/zarafaGroup.inc:154 +#: ../lib/modules/zarafaGroup.inc:160 +msgid "Email" +msgstr "Email" + +#: ../templates/lists/changePassword.php:236 +#: ../lib/modules/zarafaGroup.inc:59 +#: ../lib/modules/zarafaGroup.inc:60 +#: ../lib/modules/zarafaGroup.inc:87 +#: ../lib/modules/zarafaGroup.inc:124 +#: ../lib/modules/zarafaGroup.inc:137 +#: ../lib/modules/zarafaGroup.inc:413 +#: ../lib/modules/inetOrgPerson.inc:59 +#: ../lib/modules/inetOrgPerson.inc:120 +#: ../lib/modules/inetOrgPerson.inc:205 +#: ../lib/modules/inetOrgPerson.inc:354 +#: ../lib/modules/inetOrgPerson.inc:452 +#: ../lib/modules/inetOrgPerson.inc:535 +#: ../lib/modules/inetOrgPerson.inc:536 +#: ../lib/modules/inetOrgPerson.inc:912 +#: ../lib/modules/inetOrgPerson.inc:1042 +#: ../lib/modules/inetOrgPerson.inc:1394 +#: ../lib/modules/asteriskVoicemail.inc:98 +#: ../lib/modules/asteriskVoicemail.inc:131 +#: ../lib/modules/asteriskVoicemail.inc:169 +#: ../lib/modules/asteriskVoicemail.inc:261 +#: ../lib/modules/asteriskVoicemail.inc:410 +#: ../lib/modules/imapAccess.inc:165 +msgid "Email address" +msgstr "Email cím" + +#: ../lib/modules/asteriskVoicemail.inc:99 +msgid "Email address for this voicemail account." +msgstr "Email cím ehhez a hangposta fiókhoz." + +#: ../lib/modules/zarafaUser.inc:108 +#: ../lib/modules/zarafaUser.inc:162 +#: ../lib/modules/kolabUser.inc:139 +msgid "Email alias" +msgstr "Email álnév" + +#: ../lib/modules/zarafaUser.inc:109 +#: ../lib/modules/kolabUser.inc:140 +msgid "Email alias for this account." +msgstr "Email álnév ehhez a fiókhoz." + +#: ../lib/modules/zarafaUser.inc:341 +#: ../lib/modules/zarafaUser.inc:342 +#: ../lib/modules/kolabUser.inc:231 +msgid "Email alias is invalid!" +msgstr "Az email álnév érvénytelen!" + +#: ../lib/modules/kolabUser.inc:143 +msgid "Email alias list" +msgstr "Email álnevek listája" + +#: ../lib/modules/kolabUser.inc:232 +msgid "Email alias list has invalid format!" +msgstr "Az email álnevek listája érvénytelen formátumú!" + +#: ../lib/modules/zarafaGroup.inc:63 +#: ../lib/modules/zarafaGroup.inc:67 +#: ../lib/modules/zarafaGroup.inc:93 +#: ../lib/modules/zarafaGroup.inc:127 +#: ../lib/modules/zarafaGroup.inc:170 +#: ../lib/modules/zarafaGroup.inc:418 +#: ../lib/modules/zarafaUser.inc:365 +#: ../lib/modules/kolabUser.inc:189 +#: ../lib/modules/kolabUser.inc:217 +#: ../lib/modules/kolabUser.inc:350 +#: ../lib/modules/kolabUser.inc:800 +msgid "Email aliases" +msgstr "Email álnevek" + +#: ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:141 +#: ../lib/modules/inetOrgPerson.inc:211 +#: ../lib/modules/inetOrgPerson.inc:266 +#: ../lib/modules/inetOrgPerson.inc:461 +#: ../lib/modules/inetOrgPerson.inc:499 +#: ../lib/modules/inetOrgPerson.inc:930 +#: ../lib/modules/inetOrgPerson.inc:1032 +msgid "Employee type" +msgstr "Alkalmazott típusa" + +#: ../lib/modules/inetOrgPerson.inc:500 +msgid "Employee type: Contractor, Employee, Intern, Temp, External, ..." +msgstr "Alkalmazott típusa: vállalkozó, alkalmazott, belső, ideiglenes, külső, ..." + +#: ../templates/lists/changePassword.php:337 +#: ../templates/lists/changePassword.php:344 +#: ../templates/login.php:437 +msgid "Empty password submitted. Please try again." +msgstr "Üres jelszó. Kérem, próbálja újra." + +#: ../lib/modules/ppolicy.inc:89 +msgid "Enables quality checking (e.g. password length) of passwords. If set to \"force\" then you need to disable password hashing in your LAM server profile to change passwords with LAM." +msgstr "Minőségellenőrzés bekapcsolása a jelszavakhoz (pl. jelszó hossza). Ha \"force\" érték kerül beállításra, akkor a LAM szerver profiljában ki kell kapcsolnia a jelszavak hash-elését ahhoz, hogy a LAM-mal lehessen jelszót változtatni." + +#: ../templates/tree/download_binary_attr.php:71 +msgid "Encountered an error while performing search." +msgstr "Hiba történt a keresés közben." + +#: ../lib/modules/imapAccess.inc:69 +#: ../lib/modules/imapAccess.inc:98 +msgid "Encryption protocol" +msgstr "Titkosítási protokoll" + +#: ../lib/modules/imapAccess.inc:70 +msgid "Encryption protocol for connecting to IMAP server. LAM requires an encrypted connection." +msgstr "Az IMAP szerverhez kapcsolódás során használt titkosítási protokoll. A LAM titkosított kapcsolatot igényel." + +#: ../lib/modules/sambaSamAccount.inc:527 +msgid "Eniwetok, Kwajalein" +msgstr "Eniwetok, Kwajalein" + +#: ../templates/tree/add_value_form.php:137 +msgid "Enter the value you would like to add:" +msgstr "Adja meg az értéket, amit hozzá kíván adni:" + +#: ../lib/modules/eduPerson.inc:103 +#: ../lib/modules/eduPerson.inc:107 +#: ../lib/modules/eduPerson.inc:171 +#: ../lib/modules/eduPerson.inc:202 +#: ../lib/modules/eduPerson.inc:321 +#: ../lib/modules/eduPerson.inc:667 +msgid "Entitlements" +msgstr "Jogosultságok" + +#: ../lib/export.inc:409 +msgid "Entry" +msgstr "Bejegyzés" + +#: ../templates/tree/rdelete.php:118 +#, php-format +msgid "Entry %s and sub-tree deleted successfully." +msgstr "A(z) %s bejegyzés és az al-fa sikeresen törölve." + +#: ../templates/tree/delete.php:107 +#, php-format +msgid "Entry %s deleted successfully." +msgstr "A(z) %s bejegyzés sikeresen törölve." + +#: ../templates/schema/schema.php:164 +msgid "Equality" +msgstr "Egyenlőség" + +#: ../lib/modules/zarafaUser.inc:461 +#: ../lib/modules/zarafaUser.inc:1042 +msgid "Equipment" +msgstr "Berendezés" + +#: ../templates/config/mainmanage.php:215 +msgid "Error" +msgstr "Hiba" + +#: ../templates/delete.php:261 +#, php-format +msgid "Error while deleting DN: %s" +msgstr "Hiba a következő DN törlésekor: %s" + +#: ../help/help.inc:131 +msgid "Every account type needs exactly one base module. This module provides a structural object class." +msgstr "Minden fióktípushoz pontosan egy alapmodul szükséges. Ez a modul strukturális objektumosztályt képez." + +#: ../lib/modules/customScripts.inc:60 +#: ../lib/modules/customScripts.inc:72 +#: ../lib/modules/dhcp_settings.inc:517 +#: ../help/help.inc:70 +#: ../help/help.inc:76 +#: ../help/help.inc:82 +#: ../help/help.inc:87 +#: ../help/help.inc:107 +msgid "Example" +msgstr "Példa" + +#: ../templates/masscreate.php:262 +msgid "Example value" +msgstr "Példaérték" + +#: ../help/help.inc:58 +msgid "Examples" +msgstr "Példák" + +#: ../templates/config/confmain.php:300 +msgid "Execute" +msgstr "Végrehajt" + +#: ../templates/tests/lamdaemonTest.php:261 +msgid "Execute lamdaemon" +msgstr "A lamdaemon végrehajtása" + +#: ../lib/types/ppolicyType.inc:86 +#: ../lib/modules/ppolicy.inc:108 +#: ../lib/modules/ppolicy.inc:140 +#: ../lib/modules/ppolicy.inc:166 +#: ../lib/modules/ppolicy.inc:202 +#: ../lib/modules/ppolicy.inc:463 +msgid "Expire warning" +msgstr "Lejárati figyelmeztetés" + +#: ../templates/tree/edit.php:116 +#: ../templates/tree/export_form.php:88 +#: ../templates/tree/export_form.php:96 +msgid "Export" +msgstr "Exportálás" + +#: ../templates/tree/export_form.php:135 +msgid "Export format" +msgstr "Formátum exportálása" + +#: ../lib/types/asteriskExt.inc:92 +#: ../lib/modules/asteriskExtension.inc:86 +#: ../lib/modules/asteriskExtension.inc:125 +#: ../lib/modules/asteriskExtension.inc:135 +#: ../lib/modules/asteriskExtension.inc:229 +#: ../lib/modules/asteriskExtension.inc:481 +msgid "Extension name" +msgstr "Kiterjesztés neve" + +#: ../lib/modules/asteriskExtension.inc:98 +#: ../lib/modules/asteriskExtension.inc:128 +#: ../lib/modules/asteriskExtension.inc:176 +#: ../lib/modules/asteriskExtension.inc:255 +#: ../lib/modules/asteriskExtension.inc:327 +#: ../lib/modules/asteriskExtension.inc:484 +msgid "Extension owners" +msgstr "Kiterjesztés tulajdonosai" + +#: ../templates/tree/add_attr.php:132 +msgid "Failed to add the attribute." +msgstr "Nem sikerült az attribútumot hozzáadni!" + +#: ../templates/initsuff.php:151 +msgid "Failed to create entry!" +msgstr "Nem sikerült a bejegyzést létrehozni!" + +#: ../templates/tree/rdelete.php:121 +#: ../templates/tree/rdelete.php:142 +#: ../templates/tree/rdelete.php:154 +#, php-format +msgid "Failed to delete entry %s" +msgstr "Nem sikerült a(z) %s bejegyzést törölni!" + +#: ../lib/types/ppolicyType.inc:85 +#: ../lib/modules/ppolicy.inc:104 +#: ../lib/modules/ppolicy.inc:145 +#: ../lib/modules/ppolicy.inc:165 +#: ../lib/modules/ppolicy.inc:256 +#: ../lib/modules/ppolicy.inc:462 +msgid "Failure count interval" +msgstr "Hibaszámláló intervallum" + +#: ../lib/modules/inetOrgPerson.inc:57 +#: ../lib/modules/inetOrgPerson.inc:121 +#: ../lib/modules/inetOrgPerson.inc:203 +#: ../lib/modules/inetOrgPerson.inc:346 +#: ../lib/modules/inetOrgPerson.inc:449 +#: ../lib/modules/inetOrgPerson.inc:531 +#: ../lib/modules/inetOrgPerson.inc:532 +#: ../lib/modules/inetOrgPerson.inc:907 +#: ../lib/modules/inetOrgPerson.inc:1041 +#: ../lib/modules/inetOrgPerson.inc:1422 +msgid "Fax number" +msgstr "Fax-szám" + +#: ../templates/config/mainmanage.php:219 +msgid "File" +msgstr "Fájl" + +#: ../lib/modules/sambaSamAccount.inc:290 +msgid "File name and path relative to netlogon-share which should be executed on logon. $user and $group are replaced with user and group name." +msgstr "A belépéskor végrehajtandó fájl neve és elérési útja netlogon-share-hez viszonyítva. A $user és $group változók a felhasználó- és csoportnévvel lesznek helyettesítve." + +#: ../lib/modules/zarafaServer.inc:69 +#: ../lib/modules/zarafaServer.inc:93 +#: ../lib/modules/zarafaServer.inc:110 +#: ../lib/modules/zarafaServer.inc:124 +#: ../lib/modules/zarafaServer.inc:154 +#: ../lib/modules/zarafaServer.inc:320 +msgid "File path" +msgstr "Fájl elérési útvonala" + +#: ../templates/masscreate.php:229 +#: ../lib/tools/fileUpload.inc:44 +#: ../lib/types/dhcp.inc:245 +#: ../lib/lists.inc:689 +msgid "File upload" +msgstr "Fájl feltöltése" + +#: ../templates/tree/add_attr.php:95 +msgid "File upload failed!" +msgstr "A fájl feltöltése nem sikerült!" + +#: ../lib/modules/zarafaUser.inc:123 +#: ../lib/modules/zarafaUser.inc:747 +#: ../lib/modules/nisnetgroup.inc:94 +#: ../lib/modules/nisnetgroup.inc:466 +#: ../lib/lists.inc:348 +#: ../help/help.inc:142 +msgid "Filter" +msgstr "Szűrő" + +#: ../lib/types/user.inc:96 +#: ../lib/modules/inetOrgPerson.inc:47 +#: ../lib/modules/inetOrgPerson.inc:119 +#: ../lib/modules/inetOrgPerson.inc:235 +#: ../lib/modules/inetOrgPerson.inc:409 +#: ../lib/modules/inetOrgPerson.inc:491 +#: ../lib/modules/inetOrgPerson.inc:825 +#: ../lib/modules/inetOrgPerson.inc:1030 +#: ../lib/modules/inetOrgPerson.inc:1380 +msgid "First name" +msgstr "Keresztnév" + +#: ../lib/modules/inetOrgPerson.inc:47 +#: ../lib/modules/inetOrgPerson.inc:48 +msgid "First name contains invalid characters!" +msgstr "A keresztnév érvénytelen karaktereket tartalmaz!" + +#: ../lib/modules/inetOrgPerson.inc:492 +msgid "First name of user. Only letters, - and spaces are allowed." +msgstr "A felhasználó keresztneve. Csak betűk, a \"-\", és szóközök használhatóak." + +#: ../lib/modules/ddns.inc:90 +msgid "Fix IP addresses" +msgstr "Fix IP címek" + +#: ../templates/config/confmain.php:342 +msgid "Fixed list" +msgstr "Fix lista" + +#: ../lib/modules/kolabUser.inc:124 +msgid "For automatic invitation handling." +msgstr "Automatikus meghívás-kezeléshez." + +#: ../lib/modules/nisnetgroup.inc:91 +msgid "For the upload please specify the entries in the format \"(HOST,USER,DOMAIN)\". Multiple entries are separated by semicolon." +msgstr "A feltöltéshez kérem, hogy a bejegyzéseket \"(GAZDAALLOMAS,FELHASZNALO,TARTOMANY)\" formában adja meg. Több bejegyzést kettősponttal kell elválasztani." + +#: ../lib/modules/shadowAccount.inc:353 +msgid "Force password change" +msgstr "Jelszó megváltoztatásának kényszerítése" + +#: ../help/help.inc:187 +#: ../help/help.inc:198 +msgid "Format" +msgstr "Formátum" + +#: ../lib/modules/kolabUser.inc:87 +#: ../lib/modules/kolabUser.inc:116 +#: ../lib/modules/kolabUser.inc:155 +#: ../lib/modules/kolabUser.inc:201 +#: ../lib/modules/kolabUser.inc:219 +#: ../lib/modules/kolabUser.inc:312 +#: ../lib/modules/kolabUser.inc:778 +#: ../lib/modules/kolabUser.inc:830 +msgid "Free/Busy interval" +msgstr "Szabad/Foglalt intervallum" + +#: ../lib/modules/kolabUser.inc:239 +#: ../lib/modules/kolabUser.inc:240 +msgid "Free/Busy interval must be a number!" +msgstr "A szabad/foglalt intervallumnak számnak kell lennie!" + +#: ../lib/modules/sambaSamAccount.inc:1274 +msgid "Friday" +msgstr "Péntek" + +#: ../templates/config/confmain.php:324 +#: ../help/help.inc:192 +msgid "From address" +msgstr "Feladó címe" + +#: ../templates/config/confmain.php:412 +msgid "From address for password mails is invalid." +msgstr "A jelszavakat tartalmazó levelek feladója érvénytelen." + +#: ../templates/lists/changePassword.php:232 +#: ../lib/modules/asteriskVoicemail.inc:94 +#: ../lib/modules/asteriskVoicemail.inc:130 +#: ../lib/modules/asteriskVoicemail.inc:163 +#: ../lib/modules/asteriskVoicemail.inc:255 +#: ../lib/modules/asteriskVoicemail.inc:398 +msgid "Full name" +msgstr "Teljes név" + +#: ../lib/modules/asteriskVoicemail.inc:95 +msgid "Full name for Asterisk voicemail mailbox." +msgstr "Teljes név az Asterisk hangposta leveles postafiókjához." + +#: ../lib/modules/inetOrgPerson.inc:300 +msgid "GB-12345" +msgstr "GB-12345" + +#: ../lib/types/host.inc:96 +#: ../lib/types/group.inc:93 +#: ../lib/types/user.inc:93 +#: ../lib/modules/posixGroup.inc:176 +#: ../lib/modules/posixGroup.inc:330 +#: ../lib/modules/posixGroup.inc:343 +#: ../lib/modules/posixGroup.inc:385 +#: ../lib/modules/posixGroup.inc:405 +#: ../lib/modules/posixGroup.inc:454 +#: ../lib/modules/posixGroup.inc:474 +#: ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/posixAccount.inc:301 +#: ../lib/modules/posixAccount.inc:1147 +#: ../lib/modules/sambaGroupMapping.inc:321 +#: ../lib/modules/sambaGroupMapping.inc:390 +msgid "GID number" +msgstr "GID-érték (Csoportazonosító)" + +#: ../lib/modules/posixGroup.inc:474 +msgid "GID number has changed. Please select checkbox to change GID number of users and hosts." +msgstr "A GID-érték megváltozott. Kérem, jelölje be a megfelelő jelölőnégyzetet a felhasználók és gazdaállomások csoportazonosító számának megváltoztatásához." + +#: ../lib/modules/posixAccount.inc:93 +#, php-format +msgid "GID number has changed. To keep file ownership you have to run the following command as root: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" +msgstr "A GID-érték megváltozott. Root-ként kell futtatnia a következő utasítást, hogy a jelenleg érvényes fájl-engedélyeket megtartsa: 'find / -gid %s -uid %s -exec chgrp %s {} \\;' " + +#: ../lib/modules/posixGroup.inc:481 +msgid "GID number has to be a numeric value!" +msgstr "A GID-értéknek numerikus értéknek kell lennie!" + +#: ../lib/modules/posixAccount.inc:259 +#: ../lib/modules/posixAccount.inc:291 +#: ../lib/modules/posixAccount.inc:302 +#: ../lib/modules/posixAccount.inc:358 +#: ../lib/modules/posixAccount.inc:396 +#: ../lib/modules/posixAccount.inc:950 +#: ../lib/modules/posixAccount.inc:1148 +msgid "Gecos" +msgstr "Gecos" + +#: ../templates/config/confmodules.php:165 +#: ../templates/config/confmain.php:198 +#: ../templates/config/moduleSettings.php:164 +#: ../templates/config/conftypes.php:183 +#: ../templates/profedit/profilepage.php:202 +msgid "General settings" +msgstr "Általános beállítások" + +#: ../templates/lists/changePassword.php:248 +#: ../help/help.inc:184 +msgid "Generate random password" +msgstr "Hozzon létre véletlenszerű jelszót" + +#: ../lib/modules/kolabUser.inc:178 +msgid "Germany" +msgstr "Németország" + +#: ../templates/schema/schema.php:126 +#: ../templates/schema/schema.php:263 +#: ../templates/schema/schema.php:294 +#: ../templates/schema/schema.php:319 +msgid "Go" +msgstr "Mehet" + +#: ../lib/types/ppolicyType.inc:82 +#: ../lib/modules/ppolicy.inc:92 +#: ../lib/modules/ppolicy.inc:141 +#: ../lib/modules/ppolicy.inc:162 +#: ../lib/modules/ppolicy.inc:208 +#: ../lib/modules/ppolicy.inc:459 +msgid "Grace authentication limit" +msgstr "Grace azonosítási határ" + +#: ../lib/modules/quota.inc:117 +#: ../lib/modules/quota.inc:390 +msgid "Grace block period" +msgstr "Grace blokk periódus" + +#: ../lib/modules/quota.inc:118 +msgid "Grace block period. Most filesystems use a fixed maximum value of 7 days." +msgstr "Grace blokk periódus. A legtöbb fájlrendszer rögzített maximum értéke 7 nap." + +#: ../lib/modules/quota.inc:140 +msgid "Grace inode (files) period. Most filesystems use a fixed maximum value of 7 days." +msgstr "Grace inode (fájlok) periódus. A legtöbb fájlrendszer rögzített maximum értéke 7 nap." + +#: ../lib/modules/quota.inc:139 +#: ../lib/modules/quota.inc:394 +msgid "Grace inode period" +msgstr "Grace inode periódus" + +#: ../templates/config/confmain.php:305 +#: ../templates/selfService/adminMain.php:578 +msgid "Group" +msgstr "Csoport" + +#: ../lib/types/group.inc:63 +msgid "Group accounts (e.g. Unix and Samba)" +msgstr "Csoport fiókok (pl. Unix és Samba)" + +#: ../lib/types/group.inc:96 +#: ../lib/modules/posixGroup.inc:376 +#: ../lib/modules/nisnetgroup.inc:110 +msgid "Group description" +msgstr "Csoport leírása" + +#: ../lib/modules/posixGroup.inc:390 +msgid "Group description. If left empty group name will be used." +msgstr "Csoport leírása. Ha üresen hagyja, a csoport nevét használom helyette." + +#: ../lib/types/gon.inc:92 +#: ../lib/types/gon.inc:93 +#: ../lib/types/group.inc:95 +msgid "Group member DNs" +msgstr "Csoporttagok DN-jei" + +#: ../lib/types/group.inc:94 +#: ../lib/modules/posixGroup.inc:188 +#: ../lib/modules/posixGroup.inc:238 +#: ../lib/modules/posixGroup.inc:331 +#: ../lib/modules/posixGroup.inc:349 +#: ../lib/modules/posixGroup.inc:393 +#: ../lib/modules/posixGroup.inc:397 +#: ../lib/modules/posixGroup.inc:455 +msgid "Group members" +msgstr "A csoport tagjai" + +#: ../lib/types/gon.inc:91 +#: ../lib/types/group.inc:92 +#: ../lib/types/netgroup.inc:91 +#: ../lib/modules/posixGroup.inc:166 +#: ../lib/modules/posixGroup.inc:334 +#: ../lib/modules/posixGroup.inc:364 +#: ../lib/modules/posixGroup.inc:413 +#: ../lib/modules/posixGroup.inc:453 +#: ../lib/modules/posixGroup.inc:482 +#: ../lib/modules/posixGroup.inc:483 +#: ../lib/modules/posixGroup.inc:484 +#: ../lib/modules/nisnetgroup.inc:73 +#: ../lib/modules/nisnetgroup.inc:102 +#: ../lib/modules/nisnetgroup.inc:129 +#: ../lib/modules/nisnetgroup.inc:141 +#: ../lib/modules/nisnetgroup.inc:182 +#: ../lib/modules/nisnetgroup.inc:571 +#: ../lib/modules/groupOfNames.inc:60 +#: ../lib/modules/groupOfNames.inc:84 +#: ../lib/modules/groupOfNames.inc:111 +#: ../lib/modules/groupOfNames.inc:447 +msgid "Group name" +msgstr "Csoportnév" + +#: ../lib/modules/posixGroup.inc:484 +#: ../lib/modules/posixGroup.inc:485 +#: ../lib/modules/nisnetgroup.inc:141 +msgid "Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !" +msgstr "A csoportnév érvénytelen karaktereket tartalmaz. Érvényes karakterek: a-z, A-Z, 0-9 és .-_!" + +#: ../lib/modules/posixGroup.inc:483 +msgid "Group name in use. Selected next free group name." +msgstr "A csoportnév már létezik. A legközelebbi, még nem használt csoportnevet választom helyette." + +#: ../lib/modules/posixGroup.inc:414 +msgid "Group name of the group which should be created. Valid characters are: a-z, A-Z, 0-9 and .-_ . If group name is already used group name will be expanded with a number. The next free number will be used." +msgstr "A létrehozásra kerülő csoport neve. Érvényes karakterek: a-z, A-Z, 0-9 és .-_. Ha a csoportnév már létezik, egy számmmal lesz kiegészítve. A legközelebbi, még nem használt számmal." + +#: ../lib/types/gon.inc:53 +#: ../lib/modules/groupOfNames.inc:44 +msgid "Group of names" +msgstr "Névcsoport" + +#: ../lib/types/gon.inc:62 +msgid "Group of names accounts" +msgstr "Névcsoport fiók" + +#: ../lib/modules/groupOfUniqueNames.inc:42 +msgid "Group of unique names" +msgstr "Egyedi nevek csoportja" + +#: ../lib/modules/posixGroup.inc:355 +#: ../lib/modules/posixGroup.inc:401 +msgid "Group password" +msgstr "Csoportjelszó" + +#: ../lib/modules/sambaGroupMapping.inc:286 +msgid "Group type" +msgstr "Csoporttípus" + +#: ../lib/types/group.inc:54 +#: ../lib/modules/posixGroup.inc:302 +msgid "Groups" +msgstr "Csoportok" + +#: ../lib/modules/dhcp_settings.inc:90 +msgid "H-Node (0x08)" +msgstr "H-Node (0x08)" + +#: ../lib/modules/zarafaServer.inc:61 +#: ../lib/modules/zarafaServer.inc:81 +#: ../lib/modules/zarafaServer.inc:108 +#: ../lib/modules/zarafaServer.inc:120 +#: ../lib/modules/zarafaServer.inc:142 +#: ../lib/modules/zarafaServer.inc:310 +msgid "HTTP port" +msgstr "HTTP port" + +#: ../lib/modules/quota.inc:617 +msgid "Hard block" +msgstr "Kemény blokk" + +#: ../lib/modules/quota.inc:111 +#: ../lib/modules/quota.inc:112 +#: ../lib/modules/quota.inc:389 +#: ../lib/modules/quota.inc:490 +msgid "Hard block limit" +msgstr "Kemény blokk határa" + +#: ../lib/modules/quota.inc:619 +msgid "Hard inode" +msgstr "Kemény inode" + +#: ../lib/modules/quota.inc:134 +msgid "Hard inode (files) limit" +msgstr "Kemény inode (fájlok) határa" + +#: ../lib/modules/quota.inc:133 +#: ../lib/modules/quota.inc:393 +#: ../lib/modules/quota.inc:492 +msgid "Hard inode limit" +msgstr "Kemény inode határa" + +#: ../lib/modules/sambaSamAccount.inc:529 +msgid "Hawaii" +msgstr "Hawaii" + +#: ../templates/pdfedit/pdfpage.php:445 +#: ../templates/pdfedit/pdfpage.php:538 +#: ../templates/pdfedit/pdfpage.php:545 +msgid "Headline" +msgstr "Fejléc" + +#: ../lib/modules.inc:952 +msgid "Help" +msgstr "Segítség" + +#: ../lib/tools/schemaBrowser.inc:53 +msgid "Here you can browse LDAP object classes and attributes." +msgstr "Itt megtekintheti az LDAP objektumosztályokat és attribútumokat." + +#: ../lib/modules/sambaSamAccount.inc:369 +msgid "Here you can change the settings for the terminal server access." +msgstr "Itt változtathat a terminálszerver elérésének beállításain." + +#: ../templates/masscreate.php:121 +msgid "Here you can create multiple accounts by providing a CSV file." +msgstr "Itt egy CSV fájl megadásával több fiókot hozhat létre." + +#: ../lib/modules/dhcp_settings.inc:167 +msgid "Here you can enter a description for this DHCP entry." +msgstr "Itt adhat leírást erről a DHCP bejegyzésről." + +#: ../lib/modules/nisnetgroup.inc:78 +#: ../lib/modules/groupOfNames.inc:65 +msgid "Here you can enter a description for this group." +msgstr "Itt adhat leírást erről a csoportról." + +#: ../lib/modules/sudoRole.inc:60 +msgid "Here you can enter a description for this role." +msgstr "Itt adhat leírást erről a szerepről." + +#: ../lib/modules/zarafaUser.inc:124 +#: ../lib/modules/nisnetgroup.inc:95 +msgid "Here you can enter a filter value. Only entries which contain the filter text will be shown." +msgstr "Itt szűrő értéket adhat meg. Csak azok a bejegyzések látszanak majd, melyek tartalmazzák a szűrő szöveget." + +#: ../lib/modules/posixAccount.inc:338 +msgid "Here you can enter a list of additional group memberships. The group names are separated by commas." +msgstr "Itt további csoporttagságok listáját adhatja meg. A csoportneveket vesszővel kell elválasztani." + +#: ../lib/modules/device.inc:59 +msgid "Here you can enter a serial number for this device." +msgstr "Itt megadhatja az eszköz sorozatszámát." + +#: ../lib/modules/inetOrgPerson.inc:580 +msgid "Here you can enter the user's department(s). Multiple entries are separated by semicolons." +msgstr "Itt megadhatja a felhasználó részlegét (részlegeit). Több bejegyzést pontosvesszővel kell elválasztani." + +#: ../help/help.inc:143 +msgid "Here you can input simple filter expressions (e.g. 'value' or 'v*'). The filter is case-sensitive." +msgstr "Itt egyszerű szűrő kifejezéseket adhat meg (pl. 'érték' vagy 'é*'). A szűrő megkülönbözteti a kis- és nagybetűket." + +#: ../help/help.inc:155 +msgid "Here you can load an account profile to set default settings for your account. The \"default\" profile is automatically loaded for new accounts." +msgstr "Itt betölthet egy fiók-profilt, amellyel beállíthatja fiókjának alapértelmezéseit. Az \"alapértelmezett\" (\"default\") profil az új fiókokhoz automatikusan betöltõdik." + +#: ../lib/tools/profileEditor.inc:53 +msgid "Here you can manage your account profiles." +msgstr "Itt beállíthatja fiókjához tartozó profiljait." + +#: ../help/help.inc:157 +msgid "Here you can select a PDF structure and export the account to a PDF file." +msgstr "Itt kiválaszthat egy PDF szerkezetet, és a fiókot egy PDF fájlba exportálhatja. " + +#: ../help/help.inc:137 +msgid "Here you can select where LAM should save its log messages. System logging will go to Syslog on Unix systems and event log on Windows. You can also select an extra file." +msgstr "Itt állíthatja be, hogy a LAM hová mentse a naplózott üzeneteket. A rendszer naplózása Unix rendszereken a Syslog-ba, Windows rendszereken az Eseménynaplóba történik. Ám Ön választhat külön fájlt is." + +#: ../help/help.inc:102 +msgid "Here you can select which plugins you want to use for account management." +msgstr "Itt kiválaszthatja, mely plugin-okat szeretné használni fiókjának beállításai során." + +#: ../help/help.inc:115 +msgid "Here you can set a limit for LDAP searches. This will restrict the number of results for LDAP searches. Please use this if LAM's LDAP queries produce too much load." +msgstr "Itt az LDAP keresésekhez állíthat be korlátozást. Ez az LDAP keresési eredmények számát korlátozza. Kérem, használja ezt, ha a LAM LDAP lekérdezései túl magas terhelést okoznak." + +#: ../help/help.inc:183 +msgid "Here you can specify additional CSS links to change the layout of the self service pages. This is useful to adapt them to your corporate design. Please enter one link per line." +msgstr "Itt további CSS linkeket adhat meg, hogy megváltoztassa az önkiszolgáló oldalak elrendezését. Ez hasznos az egységes arculathoz illesztés szempontjából. Kérem, hogy soronként egy linket adjon meg." + +#: ../lib/modules/phpGroupwareUser.inc:79 +msgid "Here you can specify if the account is active or inactive." +msgstr "Itt állíthatja be, hogy a fiók aktív vagy használaton kívüli -e." + +#: ../help/help.inc:141 +msgid "Here you can specify minimum requirements for passwords. The character classes are: lowercase, uppercase, numeric and symbols." +msgstr "Itt adhatja meg a felhasználói jelszavakra vonatkozó minimális követelményeket. A karaktertípusok a következők: kisbetűs, nagybetűs, numerikus és szimbólum." + +#: ../lib/modules/nisnetgroup.inc:82 +msgid "Here you can specify subgroups which are included in this NIS netgroup. All members of the subgroups will be treated as members of this group." +msgstr "Itt adhat meg al-csoportokat, melyeket ez a NIS hálózati csoport magába foglal. Az al-csoportok minden tagja e csoport tagjaként szerepel majd." + +#: ../lib/modules/hostObject.inc:73 +msgid "Here you can specify the list of host names where this account has login privileges. The wildcard \"*\" represents all hosts. You may also use \"!\" in front of a host name to deny access to a host." +msgstr "Itt adhatja meg azoknak a gazdaállomásoknak a nevét, melyekre ez fiók belépni jogosult. A \"*\" helyettesítő karakter az összes gazdaállomást jelenti. Gazdaállomáshoz való hozzáférés tiltásához a gazda neve elé helyezheti a \"!\" karaktert." + +#: ../lib/modules/sambaDomain.inc:95 +msgid "Here you can specify the minimum number of characters for a user password." +msgstr "Itt adhatja meg a felhasználói jelszavakhoz megkövetelt minimális karakterszámot." + +#: ../templates/lists/changePassword.php:268 +msgid "Here you can specify the new password yourself." +msgstr "Itt saját maga adhatja meg az új jelszót." + +#: ../lib/modules/sambaSamAccount.inc:360 +msgid "Here you can specify the shadowing mode." +msgstr "Itt megadhatja az árnyékolás (shadowing) módját." + +#: ../lib/tools/tests.inc:53 +msgid "Here you can test if certain LAM features work on your installation." +msgstr "Itt kipróbálhatja, hogy bizonyos LAM funkciók működnek -e az Ön rendszerén." + +#: ../lib/modules/zarafaGroup.inc:75 +#: ../lib/modules/zarafaGroup.inc:107 +#: ../lib/modules/zarafaGroup.inc:126 +#: ../lib/modules/zarafaGroup.inc:193 +#: ../lib/modules/zarafaGroup.inc:433 +#: ../lib/modules/zarafaUser.inc:64 +#: ../lib/modules/zarafaUser.inc:264 +#: ../lib/modules/zarafaUser.inc:289 +#: ../lib/modules/zarafaUser.inc:317 +#: ../lib/modules/zarafaUser.inc:494 +#: ../lib/modules/zarafaUser.inc:1074 +msgid "Hidden" +msgstr "Rejtett" + +#: ../lib/modules/sambaSamAccount.inc:374 +#: ../lib/modules/sambaSamAccount.inc:562 +#: ../lib/modules/zarafaUser.inc:116 +#: ../lib/modules/zarafaUser.inc:130 +#: ../lib/modules/inetOrgPerson.inc:175 +#: ../lib/modules/inetOrgPerson.inc:583 +msgid "Hidden options" +msgstr "Rejtett beállítások" + +#: ../lib/modules/customScripts.inc:80 +#: ../lib/modules/customScripts.inc:90 +#: ../lib/modules/customScripts.inc:99 +msgid "Hide command in messages" +msgstr "Utasítás elrejtése üzenetekben" + +#: ../templates/tree/edit.php:101 +msgid "Hide internal attributes" +msgstr "A belső attribútumok elrejtése" + +#: ../templates/masscreate.php:235 +msgid "Hint: Format all cells as text in your spreadsheet program and turn off auto correction." +msgstr "Tanács: minden cellát szövegként formázzon az Ön által használt táblázatkezelőben, és kapcsolja ki az automatikus javítást." + +#: ../templates/tree/edit.php:121 +msgid "Hint: To delete an attribute, empty the text field and click save." +msgstr "Tanács: attribútum törléséhez ürítse ki a szövegmezőt és kattintson a Mentés-re." + +#: ../lib/modules/posixAccount.inc:383 +msgid "Hold the CTRL-key to (de)select multiple groups." +msgstr "Tartsa lenyomva a CTRL-billentyűt több csoport kijelöléséhez, illetve a kijelölés megszűntetéséhez." + +#: ../lib/types/user.inc:98 +#: ../lib/modules/sambaSamAccount.inc:212 +#: ../lib/modules/sambaSamAccount.inc:332 +#: ../lib/modules/sambaSamAccount.inc:1386 +#: ../lib/modules/sambaSamAccount.inc:1665 +#: ../lib/modules/posixAccount.inc:68 +#: ../lib/modules/posixAccount.inc:69 +#: ../lib/modules/posixAccount.inc:71 +#: ../lib/modules/posixAccount.inc:99 +#: ../lib/modules/posixAccount.inc:223 +#: ../lib/modules/posixAccount.inc:305 +#: ../lib/modules/posixAccount.inc:341 +#: ../lib/modules/posixAccount.inc:345 +#: ../lib/modules/posixAccount.inc:349 +#: ../lib/modules/posixAccount.inc:366 +#: ../lib/modules/posixAccount.inc:756 +#: ../lib/modules/posixAccount.inc:965 +#: ../lib/modules/posixAccount.inc:1084 +#: ../lib/modules/posixAccount.inc:1151 +msgid "Home directory" +msgstr "Home könyvtár" + +#: ../lib/modules/posixAccount.inc:71 +#, php-format +msgid "Home directory changed. To keep home directory you have to run the following command as root: 'mv %s %s'" +msgstr "A home könyvtár megváltozott. Hogy megtartsa azt, root-ként kell futtatnia a következő utasítást: 'mv %s %s'" + +#: ../lib/modules/posixAccount.inc:1096 +msgid "Home directory server" +msgstr "Home könyvtár szerver" + +#: ../lib/modules/sambaSamAccount.inc:196 +#: ../lib/modules/sambaSamAccount.inc:213 +#: ../lib/modules/sambaSamAccount.inc:280 +#: ../lib/modules/sambaSamAccount.inc:461 +#: ../lib/modules/sambaSamAccount.inc:566 +#: ../lib/modules/sambaSamAccount.inc:1112 +#: ../lib/modules/sambaSamAccount.inc:1394 +#: ../lib/modules/sambaSamAccount.inc:1483 +#: ../lib/modules/sambaSamAccount.inc:1639 +#: ../lib/modules/sambaSamAccount.inc:1666 +msgid "Home drive" +msgstr "Home meghajtó" + +#: ../lib/modules/sambaSamAccount.inc:86 +#: ../lib/modules/sambaSamAccount.inc:87 +#: ../lib/modules/sambaSamAccount.inc:199 +#: ../lib/modules/sambaSamAccount.inc:283 +#: ../lib/modules/sambaSamAccount.inc:469 +#: ../lib/modules/sambaSamAccount.inc:567 +#: ../lib/modules/sambaSamAccount.inc:1120 +#: ../lib/modules/sambaSamAccount.inc:1487 +#: ../lib/modules/sambaSamAccount.inc:1636 +msgid "Home path" +msgstr "A home könyvtár elérési útvonala" + +#: ../lib/modules/sambaSamAccount.inc:86 +#: ../lib/modules/sambaSamAccount.inc:88 +msgid "Home path is invalid." +msgstr "A home könyvtár elérési útvonala érvénytelen." + +#: ../lib/modules/zarafaUser.inc:113 +msgid "Home server for the user." +msgstr "A felhasználó home szervere." + +#: ../lib/modules/inetOrgPerson.inc:53 +#: ../lib/modules/inetOrgPerson.inc:123 +#: ../lib/modules/inetOrgPerson.inc:199 +#: ../lib/modules/inetOrgPerson.inc:330 +#: ../lib/modules/inetOrgPerson.inc:443 +#: ../lib/modules/inetOrgPerson.inc:551 +#: ../lib/modules/inetOrgPerson.inc:897 +#: ../lib/modules/inetOrgPerson.inc:1039 +#: ../lib/modules/inetOrgPerson.inc:1408 +msgid "Home telephone number" +msgstr "Otthoni telefonszám" + +#: ../lib/modules/posixAccount.inc:68 +#: ../lib/modules/posixAccount.inc:70 +msgid "Homedirectory contains invalid characters." +msgstr "A home könyvtár érvénytelen karaktereket tartalmaz." + +#: ../lib/modules/asteriskAccount.inc:87 +#: ../lib/modules/asteriskAccount.inc:113 +#: ../lib/modules/asteriskAccount.inc:125 +#: ../lib/modules/asteriskAccount.inc:147 +#: ../lib/modules/asteriskAccount.inc:203 +#: ../lib/modules/asteriskAccount.inc:296 +#: ../lib/modules/nisnetgroup.inc:206 +#: ../lib/modules/nisnetgroup.inc:581 +#: ../lib/modules/hostObject.inc:142 +msgid "Host" +msgstr "Gazdaállomás" + +#: ../lib/types/host.inc:62 +msgid "Host accounts (e.g. Samba)" +msgstr "Gazdaállomás fiókok (pl. Samba)" + +#: ../lib/types/host.inc:94 +msgid "Host description" +msgstr "Gazdaállomás leírása" + +#: ../lib/modules/account.inc:89 +#: ../lib/modules/posixAccount.inc:397 +#: ../lib/modules/posixAccount.inc:405 +msgid "Host description. If left empty host name will be used." +msgstr "A gazdaállomás leírása. Ha üresen hagyja, a gazda nevét használom helyette." + +#: ../lib/modules/hostObject.inc:84 +#: ../lib/modules/hostObject.inc:91 +#: ../lib/modules/hostObject.inc:255 +msgid "Host list" +msgstr "Gazdaállomások listája" + +#: ../lib/types/host.inc:91 +#: ../lib/types/host.inc:92 +#: ../lib/modules/account.inc:84 +#: ../lib/modules/account.inc:208 +#: ../lib/modules/posixAccount.inc:83 +#: ../lib/modules/posixAccount.inc:84 +#: ../lib/modules/posixAccount.inc:86 +#: ../lib/modules/posixAccount.inc:270 +#: ../lib/modules/posixAccount.inc:392 +#: ../lib/modules/nisnetgroup.inc:143 +#: ../lib/modules/nisnetgroup.inc:470 +msgid "Host name" +msgstr "Gazdaállomás neve" + +#: ../lib/modules/posixAccount.inc:90 +msgid "Host name already exists!" +msgstr "A gazdanév már létezik!" + +#: ../lib/modules/posixAccount.inc:84 +#: ../lib/modules/posixAccount.inc:88 +#: ../lib/modules/nisnetgroup.inc:143 +msgid "Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !" +msgstr "A gazdanév érvénytelen karaktereket tartalmaz. Érvényes karakterek: a-z, A-Z, 0-9 és .-_ !" + +#: ../lib/modules/posixAccount.inc:86 +msgid "Host name in use. Selected next free host name." +msgstr "A gazdanév már létezik. A legközelebbi, nem használt gazdanevet választom helyette." + +#: ../lib/modules/sambaSamAccount.inc:1026 +msgid "Host name must end with $!" +msgstr "A gazdaállomás neve $ -ra kell végződjön!" + +#: ../lib/modules/account.inc:85 +#: ../lib/modules/posixAccount.inc:393 +msgid "Host name of the host which should be created. Valid characters are: a-z,A-Z,0-9, .-_$. Host names are always ending with $. If last character is not $ it will be added. If host name is already used host name will be expanded with a number. The next free number will be used." +msgstr "A létrehozásra kerülő gazdaállomás neve. Érvényes karakterek: a-z,A-Z,0-9, .-_$. A gazdanevek mindig $ karakterrel végződnek. Ha az utolsó karakter nem $, akkor ez automatikusan hozzáadódik. Ha a gazdanév már létezik, a név egy számmmal lesz kiegészítve. A legközelebbi, még nem használt számmal." + +#: ../lib/types/sudo.inc:79 +msgid "Host(s)" +msgstr "Gazdaállomás(ok)" + +#: ../lib/types/host.inc:53 +#: ../lib/modules/posixAccount.inc:63 +#: ../lib/modules/posixAccount.inc:64 +#: ../lib/modules/posixAccount.inc:66 +#: ../lib/modules/posixAccount.inc:169 +#: ../lib/modules/sudoRole.inc:67 +#: ../lib/modules/sudoRole.inc:92 +#: ../lib/modules/sudoRole.inc:140 +#: ../lib/modules/sudoRole.inc:174 +#: ../lib/modules/sudoRole.inc:183 +#: ../lib/modules/sudoRole.inc:291 +#: ../lib/modules/sudoRole.inc:690 +#: ../lib/modules/fixed_ip.inc:69 +#: ../lib/modules/hostObject.inc:62 +#: ../lib/modules/hostObject.inc:72 +msgid "Hosts" +msgstr "Gazdaállomások" + +#: ../templates/lists/changePassword.php:259 +msgid "I am sure" +msgstr "Biztos vagyok benne" + +#: ../lib/modules/posixGroup.inc:477 +#: ../lib/modules/posixAccount.inc:74 +#: ../lib/modules/posixAccount.inc:738 +msgid "ID is already in use" +msgstr "Az ID már használatban van" + +#: ../lib/modules/posixGroup.inc:475 +#: ../lib/modules/posixGroup.inc:476 +#: ../lib/modules/posixGroup.inc:477 +#: ../lib/modules/posixGroup.inc:575 +#: ../lib/modules/posixAccount.inc:72 +#: ../lib/modules/posixAccount.inc:73 +#: ../lib/modules/posixAccount.inc:74 +#: ../lib/modules/posixAccount.inc:736 +#: ../lib/modules/posixAccount.inc:738 +msgid "ID-Number" +msgstr "ID-érték" + +#: ../lib/modules/imapAccess.inc:75 +#: ../lib/modules/imapAccess.inc:102 +msgid "IMAP admin user" +msgstr "IMAP adminisztrátor felhasználó" + +#: ../lib/modules/imapAccess.inc:78 +#: ../lib/modules/imapAccess.inc:105 +msgid "IMAP password input" +msgstr "IMAP jelszó bevitele" + +#: ../lib/types/dhcp.inc:96 +#: ../lib/modules/ipHost.inc:48 +#: ../lib/modules/ipHost.inc:58 +#: ../lib/modules/ipHost.inc:127 +#: ../lib/modules/fixed_ip.inc:93 +#: ../lib/modules/fixed_ip.inc:338 +#: ../lib/modules/fixed_ip.inc:513 +msgid "IP address" +msgstr "IP-cím" + +#: ../lib/modules/ddns.inc:100 +#: ../lib/modules/ddns.inc:111 +#: ../lib/modules/ddns.inc:120 +#: ../lib/modules/ddns.inc:356 +#: ../lib/modules/ddns.inc:399 +msgid "IP address of the DNS server" +msgstr "A DNS szerver IP-címe" + +#: ../lib/modules/ipHost.inc:62 +#: ../lib/modules/ipHost.inc:77 +#: ../lib/modules/ipHost.inc:97 +#: ../lib/modules/ipHost.inc:309 +msgid "IP address(es)" +msgstr "IP cím(ek)" + +#: ../lib/modules/fixed_ip.inc:97 +msgid "IP list" +msgstr "IP lista" + +#: ../templates/masscreate.php:258 +msgid "Identifier" +msgstr "Azonosító" + +#: ../lib/modules/sambaSamAccount.inc:220 +#: ../lib/modules/sambaSamAccount.inc:1408 +#: ../lib/modules/sambaSamAccount.inc:1677 +msgid "Idle time limit" +msgstr "Üresjárati időkorlát" + +#: ../lib/modules/ppolicyUser.inc:53 +msgid "If activated then the user is forced to change his password at the next login." +msgstr "Ha aktív, akkor a felhasználónak a legközelebbi belépéskor meg kell változtatnia jelszavát." + +#: ../lib/modules/sambaSamAccount.inc:246 +msgid "If checked Unix password will also be used as Samba password." +msgstr "Ha bejelöli, a Unix jelszó szolgál majd Samba jelszóként is." + +#: ../lib/modules/posixAccount.inc:375 +msgid "If checked account will be deactivated by putting a \"!\" before the encrypted password." +msgstr "Ha bejelöli, a fiók letiltásra kerül a titkosított jelszó elé helyezett \"!\" karakterrel." + +#: ../lib/modules/sambaSamAccount.inc:252 +msgid "If checked no password will be used." +msgstr "Ha bejelöli, akkor ide nem tartozik majd jelszó." + +#: ../lib/modules/sambaSamAccount.inc:258 +msgid "If checked password does not expire. (Setting X-Flag)" +msgstr "Ha bejelöli, a jelszavak nem járnak le sohasem. (Az X-Flag beállítása)" + +#: ../lib/modules/sambaSamAccount.inc:264 +msgid "If checked then the account will be deactivated. (Setting D-Flag)" +msgstr "Ha bejelöli, akkor a fiókot letiltom. (A D-Flag beállítása)" + +#: ../lib/modules/sambaSamAccount.inc:267 +msgid "If checked then the account will be locked (setting L-Flag). You usually want to use this setting to unlock user accounts which were locked because of failed login attempts." +msgstr "Ha bejelöli, a fiók zárolva lesz (az L-Flag beállítása). Valószínűleg erre a beállításra van szüksége, ha olyan fiókokat akar újra megnyitni, melyek sikertelen belépési kísérletek miatt zárolódtak. " + +#: ../lib/modules/posixGroup.inc:386 +msgid "If empty GID number will be generated automaticly depending on your configuration settings." +msgstr "Ha üresen hagyja, a GID-érték az Ön beállításaitól függően automatikusan keletkezik." + +#: ../lib/modules/posixAccount.inc:330 +msgid "If empty UID number will be generated automaticly." +msgstr "Ha üresen hagyja, az UID-érték automatikusan keletkezik." + +#: ../lib/modules/ppolicy.inc:117 +msgid "If enabled the user will not be allowed to login after there have been a specified number of consecutive failed login attempts." +msgstr "Ha bekapcsolja, akkor a felhasználó nem fog tudni bejelentkezni az előzetesen meghatározott számú, egymást követő sikertelen bejelentkezési kísérlet után." + +#: ../lib/modules/ppolicy.inc:121 +msgid "If enabled users must change their passwords when they first login after a password is set or reset by the administrator." +msgstr "Ha bekapcsolja, a felhasználóknak meg kell változtatniuk jelszavukat az első olyan bejelentkezésük után, amit megelőzően a jelszót az adminisztrátor állította be vagy vissza." + +#: ../lib/modules/sambaDomain.inc:103 +msgid "If set then users need to login to change their password." +msgstr "Ha ez a beállítás érvényes, akkor a felhasználóknak be kell jelentkezniük jelszavuk megváltoztatásához." + +#: ../lib/modules/sambaSamAccount.inc:249 +msgid "If set to \"true\" Unix password will also be used as Samba password." +msgstr "Ha értéke \"true\", a Unix jelszó szolgál majd samba jelszóként is." + +#: ../lib/modules/sambaSamAccount.inc:270 +msgid "If set to \"true\" account will be deactivated. (Setting D-Flag)" +msgstr "Ha értéke \"true\", akkor a fiókot letiltja. (A D-Flag beállítása)" + +#: ../lib/modules/sambaSamAccount.inc:255 +msgid "If set to \"true\" no password will be used." +msgstr "Ha értéke \"true\", akkor semmilyen jelszó nem lesz használatos." + +#: ../lib/modules/sambaSamAccount.inc:261 +msgid "If set to \"true\" password does not expire. (Setting X-Flag)" +msgstr "Ha értéke \"true\", a jelszavak nem járnak le sohasem. (Az X-Flag beállítása)" + +#: ../lib/modules/zarafaUser.inc:81 +msgid "If the mailbox size reaches the soft quota limit, the user will not be able to send email until the size of the mailbox is reduced." +msgstr "Ha a postafiók mérete eléri a lágy kvóta határt, akkor a felhasználó nem tud emailt küldeni addig, amíg a postafiók mérete nem csökkent." + +#: ../help/help.inc:186 +msgid "If you decide to send the password via mail then the mail template \"config/passwordMailTemplate.txt\" will be used." +msgstr "Ha úgy dönt, hogy a jelszót postai úton küldi el, akkor a \"config/passwordMailTemplate.txt\" levélsablont használom." + +#: ../lib/modules/sambaSamAccount.inc:309 +msgid "If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "Ha üresen hagyja, a LAM a következőt veszi figyelembe: uidSzám*2+sambaAlgoritmikusRidAlap" + +#: ../lib/modules/sambaSamAccount.inc:273 +msgid "If you set this option then the user has to change his password at the next login." +msgstr "Ha ezt bejelöli, akkor a felhasználónak a legközelebbi belépéskor meg kell változtatnia jelszavát." + +#: ../lib/modules/phpGroupwareGroup.inc:74 +#: ../lib/modules/phpGroupwareUser.inc:75 +msgid "If you set this to \"true\" then the phpGroupware extension will be added." +msgstr "Ha \"true\" értéket állít be, akkor phpGroupware kiterjesztés hozzáadásra kerül." + +#: ../help/help.inc:96 +msgid "If you want to change the current preferences password, please enter it here." +msgstr "Ha a jelenlegi beállításokat védő jelszót meg akarja változtatni, kérem, most adja meg." + +#: ../help/help.inc:127 +msgid "If you want to change your master configuration password, please enter it here." +msgstr "Ha a mester beállításokat védő jelszót meg akarja változtatni, kérem, most adja meg." + +#: ../lib/modules/sambaGroupMapping.inc:361 +msgid "If you want to use a well known RID you can selcet a well known group." +msgstr "Ha egy jól ismert RID-et akar használni, egy jól ismert csoportot választhat." + +#: ../help/help.inc:106 +msgid "If your server runs on another port then add a comma and the port number after the server." +msgstr "Ha a szervere másik porton működik, akkor a szerver után egy vesszőt tegyen és adja meg a port számát." + +#: ../templates/tree/export_form.php:120 +msgid "Include system attributes" +msgstr "A rendszer attribútumainak figyelembe vétele" + +#: ../lib/tools/serverInfo.inc:53 +msgid "Information about the LDAP server." +msgstr "Információ az LDAP szerverről." + +#: ../lib/modules/sambaSamAccount.inc:215 +#: ../lib/modules/sambaSamAccount.inc:338 +#: ../lib/modules/sambaSamAccount.inc:1398 +#: ../lib/modules/sambaSamAccount.inc:1672 +msgid "Inherit client startup configuration" +msgstr "Öröklődjenek a kliens indítási beállításai" + +#: ../templates/schema/schema.php:394 +#: ../templates/schema/schema.php:415 +msgid "Inherited from" +msgstr "Innen örökölve" + +#: ../templates/schema/schema.php:155 +#: ../templates/schema/schema.php:351 +msgid "Inherits from" +msgstr "Innen örököl" + +#: ../lib/modules/sambaSamAccount.inc:216 +#: ../lib/modules/sambaSamAccount.inc:341 +#: ../lib/modules/sambaSamAccount.inc:1400 +#: ../lib/modules/sambaSamAccount.inc:1673 +msgid "Initial program" +msgstr "Belépéskor induló program" + +#: ../lib/modules/quota.inc:56 +msgid "Inode hard quota" +msgstr "Inode keménykvóta" + +#: ../lib/modules/quota.inc:56 +#: ../lib/modules/quota.inc:57 +msgid "Inode hard quota contains invalid characters. Only natural numbers are allowed." +msgstr "Az inode keménykvóta érvénytelen karaktereket tartalmaz. Csak természetes számok használhatóak." + +#: ../lib/modules/quota.inc:60 +msgid "Inode quota" +msgstr "Inode kvóta" + +#: ../lib/modules/quota.inc:54 +msgid "Inode soft quota" +msgstr "Inode lágykvóta" + +#: ../lib/modules/quota.inc:54 +#: ../lib/modules/quota.inc:55 +msgid "Inode soft quota contains invalid characters. Only natural numbers are allowed." +msgstr "Az inode lágykvóta érvénytelen karaktereket tartalmaz. Csak természetes számok használhatóak." + +#: ../lib/modules/quota.inc:60 +#: ../lib/modules/quota.inc:61 +msgid "Inode soft quota must be smaller than inode hard quota." +msgstr "Az inode lágykvóta mindig kisebb kell legyen, mint az inode keménykvóta." + +#: ../templates/selfService/adminMain.php:471 +msgid "Input fields" +msgstr "Beviteli mezők" + +#: ../lib/modules/sambaSamAccount.inc:87 +msgid "Inserted user or group name in home path." +msgstr "A felhasználó- vagy csoportnév a home könyvtár elérési útvonalába illesztve." + +#: ../lib/modules/sambaSamAccount.inc:93 +msgid "Inserted user or group name in logon script." +msgstr "A felhasználó- vagy csoportnév a logon szkriptbe illesztve." + +#: ../lib/modules/sambaSamAccount.inc:90 +msgid "Inserted user or group name in profile path." +msgstr "A felhasználó- vagy csoportnév a profil elérési útvonalába illesztve." + +#: ../lib/modules/fixed_ip.inc:375 +msgid "Invalid MAC address." +msgstr "Érvénytelen MAC-cím." + +#: ../templates/massBuildAccounts.php:170 +msgid "Invalid RDN attribute!" +msgstr "Érvénytelen RDN attribútum!" + +#: ../lib/modules/sambaGroupMapping.inc:75 +msgid "Invalid account" +msgstr "Érvénytelen fiók" + +#: ../lib/modules/imapAccess.inc:140 +msgid "Invalid password for IMAP admin or other problem occured." +msgstr "Az IMAP adminisztrátor jelszava érvénytelen, vagy más hiba történt." + +#: ../lib/modules/kolabUser.inc:118 +#: ../lib/modules/kolabUser.inc:123 +#: ../lib/modules/kolabUser.inc:170 +#: ../lib/modules/kolabUser.inc:214 +#: ../lib/modules/kolabUser.inc:315 +#: ../lib/modules/kolabUser.inc:790 +#: ../lib/modules/kolabUser.inc:902 +msgid "Invitation policy" +msgstr "Meghívási irányelv" + +#: ../lib/modules/kolabUser.inc:127 +msgid "Invitation policy list" +msgstr "Meghívási irányelv-lista" + +#: ../lib/modules/sambaSamAccount.inc:544 +msgid "Islamabad, Karachi" +msgstr "Iszlámábád, Karachi" + +#: ../lib/modules/range.inc:109 +msgid "It is not possible to delete all ranges." +msgstr "Nem lehet minden tartományt törölni." + +#: ../lib/modules/posixGroup.inc:475 +#: ../lib/modules/posixAccount.inc:73 +msgid "It is possible that this ID-number is reused. This can cause several problems because files with old permissions might still exist. To avoid this warning set maxUID to a higher value." +msgstr "Lehetséges, hogy ez az ID-érték egyszer már használatban volt. Ez különböző problémákat okozhat, mert lehetséges, hogy léteznek fájlok régi engedélyekkel. Hogy ne legyen szükség ilyen figyelmeztetésre, állítsa a maxUID értékét magasabbra." + +#: ../lib/modules/inetOrgPerson.inc:67 +#: ../lib/modules/inetOrgPerson.inc:138 +#: ../lib/modules/inetOrgPerson.inc:207 +#: ../lib/modules/inetOrgPerson.inc:258 +#: ../lib/modules/inetOrgPerson.inc:455 +#: ../lib/modules/inetOrgPerson.inc:487 +#: ../lib/modules/inetOrgPerson.inc:920 +#: ../lib/modules/inetOrgPerson.inc:1029 +msgid "Job title" +msgstr "Munka címe" + +#: ../lib/modules/inetOrgPerson.inc:488 +msgid "Job title of user: President, department manager, ..." +msgstr "A felhasználó beosztás szerinti megszółítása: elnök, részlegvezető, ..." + +#: ../lib/lists.inc:285 +msgid "Jump 10 pages backward" +msgstr "10 oldalnyi ugrás visszafelé" + +#: ../lib/lists.inc:305 +msgid "Jump 10 pages forward" +msgstr "10 oldalnyi ugrás előre" + +#: ../templates/schema/schema.php:253 +msgid "Jump to a matching rule" +msgstr "Illeszkedő szabályra ugrás" + +#: ../templates/schema/schema.php:112 +msgid "Jump to an attribute type" +msgstr "Attribútum típusra ugrás" + +#: ../templates/schema/schema.php:306 +#: ../templates/schema/schema.php:356 +#: ../templates/schema/schema.php:371 +msgid "Jump to an object class" +msgstr "Objektumosztályra ugrás" + +#: ../lib/lists.inc:280 +msgid "Jump to first page" +msgstr "Az első oldalra ugrás" + +#: ../lib/lists.inc:310 +msgid "Jump to last page" +msgstr "Az utolsó oldalra ugrás" + +#: ../lib/modules/kolabUser.inc:73 +msgid "Kolab" +msgstr "Kolab" + +#: ../templates/tree/delete_form.php:100 +#, php-format +msgid "LAM can recursively delete this entry and all of its children. See below for a list of all the entries that this action will delete. Do you want to do this?" +msgstr "Az LAM rekurzív módon törölheti ezt a bejegyzést és ennek minden gyermekét. Tekintse meg az alábbi listát azokról a bejegyzésekről, amit most törölni készül. Ezt kívánja?" + +#: ../templates/login.php:207 +#: ../templates/config/index.php:77 +msgid "LAM configuration" +msgstr "LAM beállítás" + +#: ../templates/massBuildAccounts.php:196 +msgid "LAM has checked your input and is now ready to create the accounts." +msgstr "A LAM ellenőrízte az Ön által bevitt adatokat, és készen áll a fiókok létrehozására." + +#: ../lib/modules/posixGroup.inc:410 +#: ../lib/modules/posixAccount.inc:326 +#: ../lib/modules/inetOrgPerson.inc:588 +msgid "LAM supports CRYPT, SHA, SSHA, MD5 and SMD5 to generate the hash value of passwords. SSHA and CRYPT are the most common but CRYPT does not support passwords greater than 8 letters. We do not recommend to use plain text passwords." +msgstr "A LAM támogatja a CRYPT-et, az SHA-t, az SSHA-t, az MD5-öt és az SMD5-öt a jelszavak hash értékének létrehozásához. Az SSHA és a CRYPT a legelterjedtebbek, ám a CRYPT nem támogat 8 betűnél hosszabb jelszavakat. Nem javasoljuk a sima szöveges (plain text) jelszavak használatát." + +#: ../templates/tests/index.php:48 +msgid "LAM tests" +msgstr "LAM tesztek" + +#: ../lib/modules/imapAccess.inc:105 +msgid "LAM user password" +msgstr "LAM felhasználói jelszó" + +#: ../templates/tree/create.php:184 +#: ../templates/massDoUpload.php:87 +#, php-format +msgid "LAM was unable to create account %s! An LDAP error occured." +msgstr "A LAM nem tudta létrehozni a(z) %s fiókot! LDAP hiba történt." + +#: ../lib/modules/sambaGroupMapping.inc:441 +msgid "LAM was unable to find a Samba 3 domain with this name!" +msgstr "A LAM nem talált ilyen nevű Samba 3 tartományt!" + +#: ../lib/modules/sambaSamAccount.inc:108 +msgid "LAM was unable to find a domain with this name!" +msgstr "A LAM nem talált ilyen nevű tartományt!" + +#: ../lib/modules/posixAccount.inc:91 +msgid "LAM was unable to find a group with this name!" +msgstr "A LAM nem talált ilyen nevű csoportot!" + +#: ../lib/modules/posixAccount.inc:1549 +#, php-format +msgid "LAM was unable to modify group memberships for group: %s" +msgstr "A LAM nem tudta a(z) %s csoport tagsági viszonyait megváltoztatni!" + +#: ../help/help.inc:165 +msgid "LAM will search for accounts in this part of the LDAP tree." +msgstr "A LAM az LDAP-fa e részén fog fiókok után keresni." + +#: ../help/help.inc:167 +msgid "LAM will use this LDAP DN and password to search for accounts. It is sufficient to specify an account with read rights. If nothing is inserted then LAM will try to connect anonymously." +msgstr "A LAM ezt az LDAP DN-t és jelszót fogja használni a fiókok keresésekor. Elég, ha csak olvasási jogosultsággal bíró fiókot ad meg. Ha semmit nem ad meg, a LAM névtelenül (anonim módon) próbál majd csatlakozni." + +#: ../templates/config/confmodules.php:97 +#: ../templates/config/confmain.php:122 +#: ../templates/config/moduleSettings.php:96 +#: ../templates/config/conftypes.php:115 +msgid "LDAP Account Manager Configuration" +msgstr "Az LDAP Account Manager beállítása" + +#: ../templates/config/conftypes.php:322 +msgid "LDAP Suffix is invalid!" +msgstr "Az LDAP utótag érvénytelen!" + +#: ../templates/login.php:533 +msgid "LDAP error, server says:" +msgstr "LDAP hiba, a szerver azt válaszolja:" + +#: ../templates/config/confmain.php:359 +msgid "LDAP filter" +msgstr "LDAP szűrő" + +#: ../lib/modules.inc:1540 +msgid "LDAP operation successful." +msgstr "Sikeres LDAP mûvelet." + +#: ../templates/selfService/adminMain.php:369 +msgid "LDAP password" +msgstr "LDAP jelszó" + +#: ../templates/config/confmain.php:343 +#: ../help/help.inc:112 +msgid "LDAP search" +msgstr "LDAP keresés" + +#: ../templates/selfService/adminMain.php:380 +#: ../help/help.inc:168 +msgid "LDAP search attribute" +msgstr "LDAP keresési attribútumok" + +#: ../lib/account.inc:641 +msgid "LDAP search failed! Please check your preferences." +msgstr "LDAP keresés sikertelen! Kérem, ellenőrizze a beállításait." + +#: ../templates/config/confmain.php:246 +#: ../help/help.inc:114 +msgid "LDAP search limit" +msgstr "LDAP keresés határa" + +#: ../templates/login.php:361 +msgid "LDAP server" +msgstr "LDAP szerver" + +#: ../lib/account.inc:632 +msgid "LDAP sizelimit exceeded, not all entries are shown." +msgstr "Túlléptük az LDAP mérethatárt, nem látszik minden bejegyzés." + +#: ../templates/config/confmain.php:355 +#: ../templates/config/conftypes.php:244 +#: ../templates/selfService/adminMain.php:345 +#: ../templates/profedit/profilepage.php:189 +#: ../help/help.inc:67 +#: ../help/help.inc:164 +msgid "LDAP suffix" +msgstr "LDAP utótag" + +#: ../templates/massDoUpload.php:70 +msgid "LDAP upload in progress. Please wait." +msgstr "Az LDAP feltöltés folyamatban van. Kérem várjon." + +#: ../templates/selfService/adminMain.php:357 +msgid "LDAP user" +msgstr "LDAP felhasználó" + +#: ../help/help.inc:166 +msgid "LDAP user and password" +msgstr "LDAP felhasználónév és jelszó" + +#: ../templates/serverInfo.php:98 +msgid "LDAP version" +msgstr "LDAP verzió" + +#: ../lib/export.inc:443 +#, php-format +msgid "LDIF Export for: %s" +msgstr "LDIF exportálás a következőnek: %s" + +#: ../lib/types/asteriskExt.inc:93 +msgid "Label" +msgstr "Címke" + +#: ../templates/tests/lamdaemonTest.php:183 +msgid "Lamdaemon server and path" +msgstr "Lamdaemon szerver és elérési út (path)" + +#: ../templates/config/confmain.php:315 +msgid "Lamdaemon settings" +msgstr "Lamdaemon beállítások" + +#: ../templates/tests/lamdaemonTest.php:133 +msgid "Lamdaemon successfully run." +msgstr "Lamdaemon sikeresen futtatva." + +#: ../templates/tests/index.php:50 +#: ../templates/tests/lamdaemonTest.php:50 +#: ../lib/tools/tests.inc:110 +msgid "Lamdaemon test" +msgstr "Lamdaemon teszt" + +#: ../templates/tests/lamdaemonTest.php:283 +msgid "Lamdaemon test finished." +msgstr "A Lamdaemon teszt befejeződött." + +#: ../templates/tests/lamdaemonTest.php:265 +msgid "Lamdaemon version" +msgstr "Lamdaemon verzió" + +#: ../templates/tests/lamdaemonTest.php:275 +msgid "Lamdaemon: Quota module installed" +msgstr "Lamdaemon: a kvóta modul telepítve van" + +#: ../templates/tests/lamdaemonTest.php:271 +msgid "Lamdaemon: check NSS LDAP" +msgstr "Lamdaemon: ellenőrízze az NSS LDAP-t" + +#: ../templates/tests/lamdaemonTest.php:278 +msgid "Lamdaemon: read quotas" +msgstr "Lamdaemon: a kvóták beolvasva" + +#: ../templates/login.php:306 +msgid "Language" +msgstr "Nyelv" + +#: ../templates/config/confmain.php:434 +msgid "Language is not defined!" +msgstr "Nincs megadva a nyelv!" + +#: ../templates/config/confmain.php:285 +msgid "Language settings" +msgstr "Nyelvi beállítások" + +#: ../lib/modules/phpGroupwareUser.inc:99 +#: ../lib/modules/phpGroupwareUser.inc:174 +#: ../lib/modules/phpGroupwareUser.inc:350 +msgid "Last login" +msgstr "Utolsó bejelentkezés" + +#: ../lib/modules/phpGroupwareUser.inc:98 +#: ../lib/modules/phpGroupwareUser.inc:181 +#: ../lib/modules/phpGroupwareUser.inc:345 +msgid "Last login from" +msgstr "Utolsó bejelentkezés innen: " + +#: ../lib/types/user.inc:97 +#: ../lib/modules/inetOrgPerson.inc:49 +#: ../lib/modules/inetOrgPerson.inc:119 +#: ../lib/modules/inetOrgPerson.inc:241 +#: ../lib/modules/inetOrgPerson.inc:410 +#: ../lib/modules/inetOrgPerson.inc:495 +#: ../lib/modules/inetOrgPerson.inc:828 +#: ../lib/modules/inetOrgPerson.inc:1031 +#: ../lib/modules/inetOrgPerson.inc:1387 +msgid "Last name" +msgstr "Vezetéknév" + +#: ../lib/modules/inetOrgPerson.inc:49 +#: ../lib/modules/inetOrgPerson.inc:50 +msgid "Last name contains invalid characters or is empty!" +msgstr "A vezetéknév érvénytelen karaktereket tartalmaz vagy üresen maradt!" + +#: ../lib/modules/inetOrgPerson.inc:496 +msgid "Last name of user. Only letters, - and spaces are allowed." +msgstr "A felhasználó vezetékneve. Csak betűk, a \"-\" és szóközök használhatóak." + +#: ../lib/modules/shadowAccount.inc:160 +#: ../lib/modules/shadowAccount.inc:192 +#: ../lib/modules/shadowAccount.inc:349 +#: ../lib/modules/shadowAccount.inc:428 +msgid "Last password change" +msgstr "A jelszó utolsó megváltoztatása" + +#: ../lib/modules/dhcp_settings.inc:130 +#: ../lib/modules/dhcp_settings.inc:173 +#: ../lib/modules/dhcp_settings.inc:187 +#: ../lib/modules/dhcp_settings.inc:216 +#: ../lib/modules/dhcp_settings.inc:522 +#: ../lib/modules/dhcp_settings.inc:611 +msgid "Lease time" +msgstr "Bérleti idő" + +#: ../templates/tree/export_form.php:148 +msgid "Line ends" +msgstr "Sorvégek" + +#: ../templates/selfService/adminMain.php:295 +msgid "Link to self service login page for your users" +msgstr "Link a felhasználók önkiszolgáló bejelentkezési oldalára" + +#: ../templates/config/conftypes.php:259 +#: ../help/help.inc:79 +msgid "List attributes" +msgstr "Lista attribútumok" + +#: ../templates/config/conftypes.php:329 +msgid "List attributes are invalid!" +msgstr "A lista attribútumok érvénytelenek!" + +#: ../lib/modules/sambaSamAccount.inc:293 +msgid "List of Samba workstations the user is allowed to login. Empty means every workstation." +msgstr "Azon Samba munkaállomások listája, melyekre a felhasználó bejelentkezhet. Ha üresen marad, minden munkaállomásra való bejelentkezés engedélyezett. " + +#: ../templates/config/confmain.php:428 +msgid "List of admin users is empty or invalid!" +msgstr "Az adminisztrátor felhasználók listája üres vagy érvénytelen!" + +#: ../templates/tree/delete_form.php:130 +msgid "List of entries to be deleted:" +msgstr "A törlésre kerülő bejegyzések listája:" + +#: ../templates/config/confmain.php:351 +msgid "List of valid users" +msgstr "Az érvényes felhasználók listája" + +#: ../lib/modules.inc:1452 +#: ../help/help.inc:154 +msgid "Load profile" +msgstr "Profil betöltése" + +#: ../lib/modules/inetLocalMailRecipient.inc:65 +#: ../lib/modules/inetLocalMailRecipient.inc:150 +msgid "Local address" +msgstr "Helyi cím" + +#: ../lib/modules/inetLocalMailRecipient.inc:69 +#: ../lib/modules/inetLocalMailRecipient.inc:99 +#: ../lib/modules/inetLocalMailRecipient.inc:113 +#: ../lib/modules/inetLocalMailRecipient.inc:303 +msgid "Local address list" +msgstr "Helyi cím-lista" + +#: ../lib/modules/sambaGroupMapping.inc:72 +msgid "Local group" +msgstr "Helyi csoport" + +#: ../lib/modules/ipHost.inc:66 +#: ../lib/modules/ipHost.inc:84 +#: ../lib/modules/ipHost.inc:98 +#: ../lib/modules/ipHost.inc:149 +#: ../lib/modules/ipHost.inc:312 +#: ../lib/modules/device.inc:66 +#: ../lib/modules/device.inc:97 +#: ../lib/modules/device.inc:112 +#: ../lib/modules/device.inc:173 +#: ../lib/modules/device.inc:382 +#: ../lib/modules/inetOrgPerson.inc:124 +#: ../lib/modules/inetOrgPerson.inc:129 +#: ../lib/modules/inetOrgPerson.inc:187 +#: ../lib/modules/inetOrgPerson.inc:378 +#: ../lib/modules/inetOrgPerson.inc:425 +#: ../lib/modules/inetOrgPerson.inc:563 +#: ../lib/modules/inetOrgPerson.inc:864 +#: ../lib/modules/inetOrgPerson.inc:1048 +#: ../lib/modules/inetOrgPerson.inc:1464 +msgid "Location" +msgstr "Hely" + +#: ../lib/modules/posixGroup.inc:196 +#: ../lib/modules/posixAccount.inc:251 +#: ../lib/modules/posixAccount.inc:991 +msgid "Lock password" +msgstr "Jelszó zárolása" + +#: ../lib/types/ppolicyType.inc:83 +#: ../lib/modules/ppolicy.inc:96 +#: ../lib/modules/ppolicy.inc:143 +#: ../lib/modules/ppolicy.inc:163 +#: ../lib/modules/ppolicy.inc:244 +#: ../lib/modules/ppolicy.inc:460 +#: ../lib/modules/sambaDomain.inc:126 +#: ../lib/modules/sambaDomain.inc:191 +#: ../lib/modules/sambaDomain.inc:216 +#: ../lib/modules/sambaDomain.inc:327 +#: ../lib/modules/sambaDomain.inc:666 +msgid "Lockout duration" +msgstr "A kizárás időtartama" + +#: ../lib/modules/sambaDomain.inc:216 +msgid "Lockout duration must be are natural number." +msgstr "A kizárás időtartamának értéke csak természetes szám lehet." + +#: ../lib/types/ppolicyType.inc:88 +#: ../lib/modules/ppolicy.inc:116 +#: ../lib/modules/ppolicy.inc:142 +#: ../lib/modules/ppolicy.inc:238 +#: ../lib/modules/ppolicy.inc:469 +msgid "Lockout users" +msgstr "Felhasználók kizárása" + +#: ../lib/modules/sambaDomain.inc:114 +#: ../lib/modules/sambaDomain.inc:188 +#: ../lib/modules/sambaDomain.inc:218 +#: ../lib/modules/sambaDomain.inc:309 +#: ../lib/modules/sambaDomain.inc:657 +msgid "Lockout users after bad logon attempts" +msgstr "Felhasználók kizárása a sikertelen belépési kísérletek után." + +#: ../lib/modules/sambaDomain.inc:218 +msgid "Lockout users after bad logon attempts must be between 0 and 999." +msgstr "A felhasználók sikertelen belépési kísérletek miatti kizárásához 0 és 999 közötti értéket kell megadni." + +#: ../templates/config/mainmanage.php:230 +#: ../help/help.inc:136 +msgid "Log destination" +msgstr "A kiindulási pont (destination) naplózása" + +#: ../templates/config/mainmanage.php:216 +#: ../help/help.inc:134 +msgid "Log level" +msgstr "Naplózás szintje" + +#: ../templates/config/mainmanage.php:233 +msgid "Logging" +msgstr "Naplózás" + +#: ../templates/login.php:332 +#: ../templates/config/conflogin.php:62 +#: ../templates/config/mainlogin.php:70 +#: ../templates/selfService/selfServiceLogin.php:138 +#: ../templates/selfService/adminLogin.php:64 +#: ../help/help.inc:52 +msgid "Login" +msgstr "Bejelentkezés" + +#: ../templates/selfService/adminMain.php:406 +#: ../help/help.inc:170 +msgid "Login attribute label" +msgstr "Bejelentkezési attribútum címkéje" + +#: ../templates/selfService/adminMain.php:419 +#: ../help/help.inc:172 +msgid "Login caption" +msgstr "Bejelentkezés szövege" + +#: ../templates/config/confmain.php:345 +#: ../help/help.inc:110 +msgid "Login method" +msgstr "Bejelentkezés módja" + +#: ../lib/types/user.inc:99 +#: ../lib/modules/posixAccount.inc:237 +#: ../lib/modules/posixAccount.inc:306 +#: ../lib/modules/posixAccount.inc:378 +#: ../lib/modules/posixAccount.inc:984 +#: ../lib/modules/posixAccount.inc:1086 +#: ../lib/modules/posixAccount.inc:1152 +msgid "Login shell" +msgstr "Bejelentkező shell" + +#: ../templates/pdfedit/pdfpage.php:446 +msgid "Logo" +msgstr "Logó" + +#: ../lib/modules/sambaDomain.inc:102 +#: ../lib/modules/sambaDomain.inc:185 +#: ../lib/modules/sambaDomain.inc:283 +#: ../lib/modules/sambaDomain.inc:644 +msgid "Logon for password change" +msgstr "Bejelentkezés a jelszó megváltoztatásához" + +#: ../lib/modules/sambaSamAccount.inc:109 +#: ../lib/modules/sambaSamAccount.inc:317 +#: ../lib/modules/sambaSamAccount.inc:320 +#: ../lib/modules/sambaSamAccount.inc:501 +#: ../lib/modules/sambaSamAccount.inc:572 +#: ../lib/modules/sambaSamAccount.inc:1182 +#: ../lib/modules/sambaSamAccount.inc:1519 +msgid "Logon hours" +msgstr "Belépési órák" + +#: ../lib/modules/sambaSamAccount.inc:92 +#: ../lib/modules/sambaSamAccount.inc:93 +#: ../lib/modules/sambaSamAccount.inc:205 +#: ../lib/modules/sambaSamAccount.inc:289 +#: ../lib/modules/sambaSamAccount.inc:485 +#: ../lib/modules/sambaSamAccount.inc:570 +#: ../lib/modules/sambaSamAccount.inc:1135 +#: ../lib/modules/sambaSamAccount.inc:1495 +#: ../lib/modules/sambaSamAccount.inc:1642 +msgid "Logon script" +msgstr "Bejelentkezési script" + +#: ../lib/modules/sambaSamAccount.inc:92 +#: ../lib/modules/sambaSamAccount.inc:94 +msgid "Logon script is invalid!" +msgstr "A bejelentkezési script érvénytelen!" + +#: ../templates/selfService/selfServiceMain.php:53 +#: ../templates/selfService/selfServiceMain.php:127 +#: ../templates/main_header.php:96 +msgid "Logout" +msgstr "Kijelentkezés" + +#: ../lib/modules/dhcp_settings.inc:89 +msgid "M-Node (0x04)" +msgstr "M-Node (0x04)" + +#: ../lib/types/dhcp.inc:96 +#: ../lib/modules/ieee802device.inc:51 +#: ../lib/modules/ieee802device.inc:61 +#: ../lib/modules/ieee802device.inc:72 +#: ../lib/modules/ieee802device.inc:104 +#: ../lib/modules/fixed_ip.inc:90 +#: ../lib/modules/fixed_ip.inc:334 +#: ../lib/modules/fixed_ip.inc:513 +msgid "MAC address" +msgstr "MAC-cím" + +#: ../lib/modules/ieee802device.inc:65 +msgid "MAC address list" +msgstr "MAC-cím lista" + +#: ../lib/modules/ieee802device.inc:79 +#: ../lib/modules/ieee802device.inc:206 +msgid "MAC address(es)" +msgstr "MAC-cím(ek)" + +#: ../lib/modules/sambaSamAccount.inc:550 +msgid "Magadan, Solomon Islands" +msgstr "Magadan, Salamon-szigetek" + +#: ../lib/types/mailAlias.inc:53 +#: ../lib/modules/nisMailAlias.inc:55 +msgid "Mail aliases" +msgstr "Levelezési álnevek" + +#: ../lib/modules/imapAccess.inc:87 +#: ../lib/modules/imapAccess.inc:109 +msgid "Mail domain(s)" +msgstr "Levelező tartomány(ok)" + +#: ../lib/modules/kolabUser.inc:88 +#: ../lib/modules/kolabUser.inc:159 +#: ../lib/modules/kolabUser.inc:207 +#: ../lib/modules/kolabUser.inc:220 +#: ../lib/modules/kolabUser.inc:306 +#: ../lib/modules/kolabUser.inc:774 +msgid "Mail quota" +msgstr "Postai kvóta" + +#: ../lib/modules/kolabUser.inc:241 +#: ../lib/modules/kolabUser.inc:242 +msgid "Mail quota must be a number!" +msgstr "A postai kvótának számnak kell lennie!" + +#: ../lib/modules/inetLocalMailRecipient.inc:51 +msgid "Mail routing" +msgstr "Levelező útvonal" + +#: ../lib/modules/kolabUser.inc:85 +#: ../lib/modules/inetLocalMailRecipient.inc:73 +#: ../lib/modules/inetLocalMailRecipient.inc:78 +#: ../lib/modules/inetLocalMailRecipient.inc:105 +#: ../lib/modules/inetLocalMailRecipient.inc:114 +#: ../lib/modules/inetLocalMailRecipient.inc:145 +#: ../lib/modules/inetLocalMailRecipient.inc:306 +msgid "Mail server" +msgstr "Levélszerver" + +#: ../templates/lists/changePassword.php:452 +#, php-format +msgid "Mail successfully sent to %s." +msgstr "A levél sikeresen elküldve %s részére." + +#: ../lib/modules/asteriskVoicemail.inc:86 +#: ../lib/modules/asteriskVoicemail.inc:129 +#: ../lib/modules/asteriskVoicemail.inc:149 +#: ../lib/modules/asteriskVoicemail.inc:236 +#: ../lib/modules/asteriskVoicemail.inc:390 +#: ../lib/modules/imapAccess.inc:52 +#: ../lib/modules/imapAccess.inc:90 +#: ../lib/modules/imapAccess.inc:177 +msgid "Mailbox" +msgstr "Postafiók" + +#: ../lib/modules/imapAccess.inc:185 +msgid "Mailbox already exists on IMAP server." +msgstr "A postafiók már létezik az IMAP szerveren." + +#: ../lib/modules/imapAccess.inc:192 +msgid "Mailbox does not exist on IMAP server." +msgstr "A postafiók nem létezik az IMAP szerveren." + +#: ../lib/modules/kolabUser.inc:151 +#: ../lib/modules/kolabUser.inc:182 +#: ../lib/modules/kolabUser.inc:216 +#: ../lib/modules/kolabUser.inc:292 +#: ../lib/modules/kolabUser.inc:297 +#: ../lib/modules/kolabUser.inc:770 +msgid "Mailbox home server" +msgstr "Postafiók home szerver" + +#: ../lib/modules/kolabUser.inc:237 +msgid "Mailbox home server name is empty!" +msgstr "A postafiók home szerverének neve üresen maradt!" + +#: ../lib/modules/kolabUser.inc:235 +#: ../lib/modules/kolabUser.inc:236 +msgid "Mailbox home server name is invalid!" +msgstr "A postafiók home szerverének neve érvénytelen!" + +#: ../lib/types/mailAlias.inc:62 +msgid "Mailing aliases (e.g. NIS mail aliases)" +msgstr "Levelezési álnevek (pl. NIS levelezési álnevek)" + +#: ../lib/modules/nisMailAlias.inc:68 +msgid "Mails to this name are forwarded to the recipients." +msgstr "Az erre a névre érkező levelek a címzetteknek továbbítódnak." + +#: ../templates/pdfedit/pdfpage.php:360 +#: ../templates/pdfedit/pdfpage.php:615 +msgid "Main" +msgstr "Főoldal" + +#: ../templates/selfService/adminMain.php:432 +#: ../help/help.inc:174 +msgid "Main page caption" +msgstr "A főoldal szövege" + +#: ../templates/pdfedit/pdfmain.php:146 +msgid "Manage existing PDF structures" +msgstr "Létező PDF szerkezetek beállítása" + +#: ../templates/profedit/profilemain.php:141 +msgid "Manage existing profiles" +msgstr "Létező profilok beállítása" + +#: ../templates/selfService/adminLogin.php:164 +msgid "Manage self service profiles" +msgstr "Önkiszolgáló profilok beállítása" + +#: ../templates/config/conflogin.php:171 +msgid "Manage server profiles" +msgstr "Szerverprofilok beállítása" + +#: ../templates/serverInfo.php:94 +msgid "Managed suffixes" +msgstr "Kezelt utótagok" + +#: ../lib/modules/ipHost.inc:70 +#: ../lib/modules/ipHost.inc:90 +#: ../lib/modules/ipHost.inc:99 +#: ../lib/modules/ipHost.inc:170 +#: ../lib/modules/ipHost.inc:315 +#: ../lib/modules/inetOrgPerson.inc:217 +#: ../lib/modules/inetOrgPerson.inc:274 +#: ../lib/modules/inetOrgPerson.inc:470 +#: ../lib/modules/inetOrgPerson.inc:503 +#: ../lib/modules/inetOrgPerson.inc:950 +#: ../lib/modules/inetOrgPerson.inc:1033 +msgid "Manager" +msgstr "Menedzser" + +#: ../lib/tools/ouEditor.inc:53 +msgid "Manages OU objects in your LDAP tree." +msgstr "Az LDAP fában levő OU objektumok beállítása." + +#: ../lib/modules/kolabUser.inc:52 +msgid "Manual" +msgstr "Kézi fogadás" + +#: ../lib/modules/kolabUser.inc:54 +msgid "Manual if conflicts" +msgstr "Ütközés esetén kézi fogadás" + +#: ../lib/types/nisObjectType.inc:78 +#: ../lib/modules/nisObject.inc:58 +#: ../lib/modules/nisObject.inc:89 +#: ../lib/modules/nisObject.inc:105 +#: ../lib/modules/nisObject.inc:116 +#: ../lib/modules/nisObject.inc:142 +#: ../lib/modules/nisObject.inc:211 +msgid "Mapping entry" +msgstr "Térkép bejegyzés" + +#: ../lib/modules/nisObject.inc:116 +#: ../lib/modules/nisObject.inc:117 +msgid "Mapping entry contains invalid characters. Only ASCII characters are allowed." +msgstr "A térkép bejegyzés érvénytelen karaktereket tartalmaz. Csak ASCII karakterek fogadhatóak el." + +#: ../lib/types/nisObjectType.inc:79 +#: ../lib/modules/nisObject.inc:62 +#: ../lib/modules/nisObject.inc:82 +#: ../lib/modules/nisObject.inc:106 +#: ../lib/modules/nisObject.inc:136 +#: ../lib/modules/nisObject.inc:212 +msgid "Mapping name" +msgstr "Térkép szerinti elnevezés" + +#: ../lib/modules/kolabUser.inc:388 +#: ../lib/modules/kolabUser.inc:562 +msgid "Mark account for deletion" +msgstr "A fiók törlésre jelölése" + +#: ../lib/modules/kolabUser.inc:163 +msgid "Mark for deletion" +msgstr "Törlésre jelölés" + +#: ../templates/config/profmanage.php:377 +#: ../templates/selfService/profManage.php:280 +#: ../help/help.inc:128 +msgid "Master password" +msgstr "Mesterjelszó" + +#: ../templates/config/profmanage.php:98 +#: ../templates/selfService/profManage.php:87 +msgid "Master password is wrong!" +msgstr "Hibás mesterjelszó!" + +#: ../templates/config/mainmanage.php:77 +msgid "Master passwords are different or empty!" +msgstr "A mesterjelszavak nem egyeznek vagy üres(ek)!" + +#: ../templates/schema/schema.php:266 +msgid "Matching rule OID" +msgstr "Illeszkedő szabály OID" + +#: ../templates/schema/schema.php:75 +#: ../templates/schema/schema.php:76 +msgid "Matching rules" +msgstr "Illeszkedő szabályok" + +#: ../lib/modules/posixGroup.inc:306 +#: ../lib/modules/posixGroup.inc:479 +#: ../lib/modules/posixGroup.inc:480 +msgid "Maximum GID number" +msgstr "A legnagyobb GID-érték" + +#: ../lib/modules/posixGroup.inc:479 +msgid "Maximum GID number is invalid or empty!" +msgstr "A legnagyobb GID-érték érvénytelen vagy üres!" + +#: ../lib/modules/posixGroup.inc:480 +msgid "Maximum GID number must be greater than minimum GID number!" +msgstr "A legnagyobb GID-érték nagyobb kell legyen, mint a minimális GID-érték!" + +#: ../lib/modules/posixAccount.inc:62 +#: ../lib/modules/posixAccount.inc:64 +#: ../lib/modules/posixAccount.inc:65 +#: ../lib/modules/posixAccount.inc:66 +#: ../lib/modules/posixAccount.inc:164 +#: ../lib/modules/posixAccount.inc:173 +msgid "Maximum UID number" +msgstr "Legnagyobb UID-érték" + +#: ../lib/modules/posixAccount.inc:62 +#: ../lib/modules/posixAccount.inc:64 +msgid "Maximum UID number is invalid!" +msgstr "A legnagyobb UID-érték érvénytelen!" + +#: ../lib/modules/posixAccount.inc:65 +#: ../lib/modules/posixAccount.inc:66 +msgid "Maximum UID number must be greater than minimum UID number!" +msgstr "A legnagyobb UID-érték nagyobb kell legyen, mint a minimális UID-érték!" + +#: ../lib/types/ppolicyType.inc:84 +#: ../lib/modules/ppolicy.inc:100 +#: ../lib/modules/ppolicy.inc:144 +#: ../lib/modules/ppolicy.inc:164 +#: ../lib/modules/ppolicy.inc:250 +#: ../lib/modules/ppolicy.inc:461 +msgid "Maximum failure count" +msgstr "Maximális hibaszám" + +#: ../templates/tree/add_attr_form.php:167 +#, php-format +msgid "Maximum file size: %s" +msgstr "Maximális fájlméret: %s" + +#: ../lib/modules/dhcp_settings.inc:133 +#: ../lib/modules/dhcp_settings.inc:174 +#: ../lib/modules/dhcp_settings.inc:188 +#: ../lib/modules/dhcp_settings.inc:222 +#: ../lib/modules/dhcp_settings.inc:524 +#: ../lib/modules/dhcp_settings.inc:612 +msgid "Maximum lease time" +msgstr "Leghosszabb bérleti idő" + +#: ../templates/tree/add_value_form.php:194 +#: ../templates/schema/schema.php:212 +msgid "Maximum length" +msgstr "Maximális hossz" + +#: ../lib/lists.inc:868 +#: ../help/help.inc:89 +msgid "Maximum list entries" +msgstr "Legtöbb listabejegyzés száma" + +#: ../lib/types/ppolicyType.inc:79 +#: ../lib/modules/shadowAccount.inc:59 +#: ../lib/modules/shadowAccount.inc:65 +#: ../lib/modules/shadowAccount.inc:116 +#: ../lib/modules/shadowAccount.inc:180 +#: ../lib/modules/shadowAccount.inc:218 +#: ../lib/modules/shadowAccount.inc:325 +#: ../lib/modules/shadowAccount.inc:433 +#: ../lib/modules/ppolicy.inc:80 +#: ../lib/modules/ppolicy.inc:136 +#: ../lib/modules/ppolicy.inc:159 +#: ../lib/modules/ppolicy.inc:160 +#: ../lib/modules/ppolicy.inc:196 +#: ../lib/modules/ppolicy.inc:447 +#: ../lib/modules/sambaDomain.inc:122 +#: ../lib/modules/sambaDomain.inc:190 +#: ../lib/modules/sambaDomain.inc:213 +#: ../lib/modules/sambaDomain.inc:215 +#: ../lib/modules/sambaDomain.inc:321 +#: ../lib/modules/sambaDomain.inc:663 +msgid "Maximum password age" +msgstr "A jelszó lejárásának legkésőbbi időpontja" + +#: ../lib/types/netgroup.inc:94 +#: ../lib/modules/nisnetgroup.inc:85 +#: ../lib/modules/nisnetgroup.inc:89 +#: ../lib/modules/nisnetgroup.inc:122 +#: ../lib/modules/nisnetgroup.inc:132 +#: ../lib/modules/nisnetgroup.inc:275 +#: ../lib/modules/nisnetgroup.inc:579 +#: ../lib/modules/groupOfNames.inc:72 +#: ../lib/modules/groupOfNames.inc:76 +#: ../lib/modules/groupOfNames.inc:103 +#: ../lib/modules/groupOfNames.inc:114 +#: ../lib/modules/groupOfNames.inc:173 +#: ../lib/modules/groupOfNames.inc:459 +msgid "Members" +msgstr "Tagok" + +#: ../lib/modules/sambaSamAccount.inc:537 +msgid "Mid-Atlantic" +msgstr "Közép-atlanti" + +#: ../lib/modules/sambaSamAccount.inc:528 +msgid "Midway Island, Samoa" +msgstr "Midway-szigetek, Szamoa" + +#: ../lib/modules/inetOrgPerson.inc:243 +msgid "Miller" +msgstr "Molnár" + +#: ../lib/modules/sambaDomain.inc:94 +#: ../lib/modules/sambaDomain.inc:183 +#: ../lib/modules/sambaDomain.inc:269 +#: ../lib/modules/sambaDomain.inc:636 +msgid "Minimal password length" +msgstr "Minimális jelszóhossz" + +#: ../lib/modules/posixGroup.inc:303 +#: ../lib/modules/posixGroup.inc:478 +msgid "Minimum GID number" +msgstr "A minimális GID-érték" + +#: ../lib/modules/posixGroup.inc:478 +msgid "Minimum GID number is invalid or empty!" +msgstr "A minimális GID-érték érvénytelen vagy üres!" + +#: ../lib/modules/posixAccount.inc:61 +#: ../lib/modules/posixAccount.inc:63 +#: ../lib/modules/posixAccount.inc:161 +#: ../lib/modules/posixAccount.inc:170 +msgid "Minimum UID number" +msgstr "Minimális UID-érték" + +#: ../lib/modules/posixAccount.inc:61 +#: ../lib/modules/posixAccount.inc:63 +msgid "Minimum UID number is invalid!" +msgstr "A legkisebb UID-érték érvénytelen!" + +#: ../templates/config/mainmanage.php:208 +msgid "Minimum character classes" +msgstr "Legkevesebb karaktertípus" + +#: ../templates/config/mainmanage.php:204 +msgid "Minimum lowercase characters" +msgstr "Legkevesebb kisbetűs karakter" + +#: ../templates/config/mainmanage.php:206 +msgid "Minimum numeric characters" +msgstr "Legkevesebb numerikus karakter" + +#: ../lib/types/ppolicyType.inc:78 +#: ../lib/modules/shadowAccount.inc:57 +#: ../lib/modules/shadowAccount.inc:111 +#: ../lib/modules/shadowAccount.inc:176 +#: ../lib/modules/shadowAccount.inc:212 +#: ../lib/modules/shadowAccount.inc:318 +#: ../lib/modules/shadowAccount.inc:432 +#: ../lib/modules/ppolicy.inc:76 +#: ../lib/modules/ppolicy.inc:135 +#: ../lib/modules/ppolicy.inc:158 +#: ../lib/modules/ppolicy.inc:190 +#: ../lib/modules/ppolicy.inc:446 +#: ../lib/modules/sambaDomain.inc:118 +#: ../lib/modules/sambaDomain.inc:189 +#: ../lib/modules/sambaDomain.inc:214 +#: ../lib/modules/sambaDomain.inc:315 +#: ../lib/modules/sambaDomain.inc:660 +msgid "Minimum password age" +msgstr "A jelszót minimum eddig kell használni" + +#: ../templates/config/mainmanage.php:203 +#: ../lib/types/ppolicyType.inc:87 +#: ../lib/modules/ppolicy.inc:112 +#: ../lib/modules/ppolicy.inc:139 +#: ../lib/modules/ppolicy.inc:167 +#: ../lib/modules/ppolicy.inc:232 +#: ../lib/modules/ppolicy.inc:464 +msgid "Minimum password length" +msgstr "Minimális jelszóhossz" + +#: ../templates/config/mainmanage.php:207 +msgid "Minimum symbolic characters" +msgstr "Legkevesebb szimbolikus karakter" + +#: ../templates/config/mainmanage.php:205 +msgid "Minimum uppercase characters" +msgstr "Legkevesebb nagybetűs karakter" + +#: ../lib/types/user.inc:158 +#: ../lib/modules/inetOrgPerson.inc:55 +#: ../lib/modules/inetOrgPerson.inc:120 +#: ../lib/modules/inetOrgPerson.inc:201 +#: ../lib/modules/inetOrgPerson.inc:338 +#: ../lib/modules/inetOrgPerson.inc:446 +#: ../lib/modules/inetOrgPerson.inc:527 +#: ../lib/modules/inetOrgPerson.inc:528 +#: ../lib/modules/inetOrgPerson.inc:902 +#: ../lib/modules/inetOrgPerson.inc:1040 +msgid "Mobile number" +msgstr "Mobiltelefon száma" + +#: ../lib/modules/inetOrgPerson.inc:1415 +msgid "Mobile telephone number" +msgstr "Mobiltelefon száma" + +#: ../templates/config/confmodules.php:177 +#: ../templates/config/confmain.php:210 +#: ../templates/config/moduleSettings.php:176 +#: ../templates/config/conftypes.php:195 +msgid "Module settings" +msgstr "Modul beállítások" + +#: ../templates/config/confmodules.php:173 +#: ../templates/config/confmain.php:206 +#: ../templates/config/moduleSettings.php:172 +#: ../templates/config/conftypes.php:191 +msgid "Modules" +msgstr "Modulok" + +#: ../lib/modules/sambaSamAccount.inc:1273 +msgid "Monday" +msgstr "Hétfő" + +#: ../lib/modules/sambaSamAccount.inc:532 +msgid "Mountain Time (US & Canada)" +msgstr "Hegyi idő (Amerikai Egyesült Államok és Kanada)" + +#: ../lib/modules/quota.inc:97 +#: ../lib/modules/quota.inc:386 +#: ../lib/modules/quota.inc:488 +#: ../lib/modules/quota.inc:615 +msgid "Mountpoint" +msgstr "Csatolási pont" + +#: ../lib/modules/quota.inc:98 +msgid "Mountpoint of device with enabled quotas." +msgstr "Kvótákkal szabályozott eszköz csatolási pontja." + +#: ../lib/modules/zarafaGroup.inc:68 +#: ../lib/modules/eduPerson.inc:96 +#: ../lib/modules/eduPerson.inc:108 +#: ../lib/modules/eduPerson.inc:124 +#: ../lib/modules/sudoRole.inc:89 +#: ../lib/modules/sudoRole.inc:94 +#: ../lib/modules/sudoRole.inc:99 +#: ../lib/modules/sudoRole.inc:104 +#: ../lib/modules/sudoRole.inc:109 +#: ../lib/modules/sudoRole.inc:114 +msgid "Multiple values are separated by comma." +msgstr "Több értéket vesszővel kell elválasztani." + +#: ../lib/modules/ipHost.inc:86 +#: ../lib/modules/device.inc:99 +#: ../lib/modules/inetOrgPerson.inc:380 +msgid "MyCity" +msgstr "Városom" + +#: ../lib/modules/inetOrgPerson.inc:308 +msgid "Mycity" +msgstr "Városom" + +#: ../lib/modules/inetOrgPerson.inc:292 +msgid "Mystreetname 42" +msgstr "Utcanév 42" + +#: ../lib/modules/nisnetgroup.inc:57 +msgid "NIS net group" +msgstr "NIS hálózati csoport" + +#: ../lib/types/netgroup.inc:62 +msgid "NIS netgroup entries" +msgstr "NIS hálózati csoport bejegyzései" + +#: ../lib/types/netgroup.inc:53 +msgid "NIS netgroups" +msgstr "NIS hálózati csoportok" + +#: ../lib/modules/nisObject.inc:40 +msgid "NIS object" +msgstr "NIS objektum" + +#: ../lib/types/nisObjectType.inc:48 +msgid "NIS object entries" +msgstr "NIS objektum bejegyzések" + +#: ../lib/types/nisObjectType.inc:39 +msgid "NIS objects" +msgstr "NIS objektumok" + +#: ../templates/tree/templates/creation/new_ou_template.php:59 +#: ../templates/tree/templates/creation/new_ou_template.php:104 +#: ../templates/schema/schema.php:266 +#: ../templates/pdfedit/pdfdelete.php:88 +#: ../lib/types/ppolicyType.inc:77 +#: ../lib/modules/device.inc:54 +#: ../lib/modules/device.inc:78 +#: ../lib/modules/device.inc:109 +#: ../lib/modules/device.inc:151 +#: ../lib/modules/device.inc:370 +#: ../lib/modules/nisObject.inc:54 +#: ../lib/modules/nisObject.inc:74 +#: ../lib/modules/nisObject.inc:104 +#: ../lib/modules/nisObject.inc:130 +#: ../lib/modules/nisObject.inc:210 +#: ../lib/modules/ppolicy.inc:72 +#: ../lib/modules/ppolicy.inc:134 +#: ../lib/modules/ppolicy.inc:157 +#: ../lib/modules/ppolicy.inc:182 +#: ../lib/modules/ppolicy.inc:445 +#: ../lib/modules/groupOfNames.inc:142 +msgid "Name" +msgstr "Név" + +#: ../help/help.inc:149 +msgid "Name under which the profile will be saved. If a profile with the same name exists, it will be overwritten." +msgstr "Név, mellyel a profil el lesz mentve. Ha már van ilyen nevű profil, az új profil felülírja azt." + +#: ../lib/modules/dhcp_settings.inc:163 +#: ../lib/modules/dhcp_settings.inc:180 +#: ../lib/modules/dhcp_settings.inc:550 +#: ../lib/modules/dhcp_settings.inc:618 +msgid "Net mask" +msgstr "Hálózati maszk" + +#: ../lib/modules/dhcp_settings.inc:142 +#: ../lib/modules/dhcp_settings.inc:177 +#: ../lib/modules/dhcp_settings.inc:191 +#: ../lib/modules/dhcp_settings.inc:240 +#: ../lib/modules/dhcp_settings.inc:530 +#: ../lib/modules/dhcp_settings.inc:615 +msgid "Netbios name servers" +msgstr "Netbios névszerver" + +#: ../lib/modules/dhcp_settings.inc:145 +#: ../lib/modules/dhcp_settings.inc:178 +#: ../lib/modules/dhcp_settings.inc:193 +#: ../lib/modules/dhcp_settings.inc:246 +#: ../lib/modules/dhcp_settings.inc:540 +#: ../lib/modules/dhcp_settings.inc:616 +msgid "Netbios node type" +msgstr "Netbios állomás típus" + +#: ../lib/types/dhcp.inc:108 +#: ../lib/types/dhcp.inc:164 +msgid "New DHCP" +msgstr "Új DHCP" + +#: ../lib/modules/ipHost.inc:139 +msgid "New IP address" +msgstr "Új IP cím" + +#: ../lib/modules/ieee802device.inc:114 +msgid "New MAC address" +msgstr "Új MAC-cím" + +#: ../lib/types/nisObjectType.inc:92 +#: ../lib/types/nisObjectType.inc:146 +msgid "New NIS object" +msgstr "Új NIS objektum" + +#: ../templates/ou_edit.php:74 +msgid "New OU created successfully." +msgstr "Az új OU sikeresen létrehozva." + +#: ../lib/modules/ldapPublicKey.inc:108 +msgid "New SSH public key" +msgstr "Új SSH publikus kulcs" + +#: ../lib/modules/inetOrgPerson.inc:388 +msgid "New York" +msgstr "New York" + +#: ../lib/types/mailAlias.inc:104 +#: ../lib/types/mailAlias.inc:137 +#: ../lib/types/alias.inc:104 +#: ../lib/types/alias.inc:137 +msgid "New alias" +msgstr "Új álnév" + +#: ../templates/config/profmanage.php:165 +msgid "New default profile set successfully." +msgstr "Az új alapértelmezett profil sikeresen beállítva." + +#: ../lib/types/smbDomain.inc:104 +#: ../lib/types/smbDomain.inc:158 +msgid "New domain" +msgstr "Új tartomány" + +#: ../lib/types/asteriskExt.inc:106 +#: ../lib/types/asteriskExt.inc:139 +msgid "New extension" +msgstr "Új kiterjesztés" + +#: ../templates/pdfedit/pdfpage.php:567 +msgid "New field" +msgstr "Új mező" + +#: ../lib/types/gon.inc:106 +#: ../lib/types/gon.inc:160 +#: ../lib/types/group.inc:108 +#: ../lib/types/group.inc:176 +#: ../lib/types/netgroup.inc:106 +#: ../lib/types/netgroup.inc:160 +msgid "New group" +msgstr "Új csoport" + +#: ../lib/types/host.inc:108 +#: ../lib/types/host.inc:163 +#: ../lib/modules/hostObject.inc:149 +msgid "New host" +msgstr "Új gazdaállomás" + +#: ../lib/modules/inetLocalMailRecipient.inc:156 +msgid "New local address" +msgstr "Új helyi cím" + +#: ../templates/config/mainmanage.php:239 +msgid "New master password" +msgstr "Új mesterjelszó" + +#: ../templates/config/mainmanage.php:74 +msgid "New master password set successfully." +msgstr "Az új mesterjelszó sikeresen beállítva." + +#: ../lib/lists.inc:108 +msgid "New object" +msgstr "Új objektum" + +#: ../templates/tree/templates/creation/new_ou_template.php:47 +#: ../templates/ou_edit.php:177 +#: ../help/help.inc:203 +msgid "New organizational unit" +msgstr "Új szervezeti egység" + +#: ../lib/modules/groupOfNames.inc:251 +msgid "New owner" +msgstr "Új tulajdonos" + +#: ../templates/config/confmain.php:364 +#: ../lib/modules/posixAccount.inc:1683 +msgid "New password" +msgstr "Új jelszó" + +#: ../templates/config/profmanage.php:155 +msgid "New password set successfully." +msgstr "Az új jelszó sikeresen beállítva." + +#: ../lib/types/ppolicyType.inc:112 +#: ../lib/types/ppolicyType.inc:145 +msgid "New policy" +msgstr "Új irányelv" + +#: ../lib/modules/range.inc:94 +#: ../lib/modules/range.inc:108 +#: ../lib/modules/range.inc:444 +msgid "New range" +msgstr "Új tartomány" + +#: ../lib/modules/nisMailAlias.inc:158 +msgid "New recipient" +msgstr "Új címzett" + +#: ../templates/tree/add_oclass_form.php:134 +msgid "New required attributes:" +msgstr "Új szükséges attribútumok:" + +#: ../templates/pdfedit/pdfpage.php:535 +msgid "New section" +msgstr "Új szekció" + +#: ../lib/types/sudo.inc:96 +#: ../lib/types/sudo.inc:150 +msgid "New sudo role" +msgstr "Új sudo szerep" + +#: ../lib/types/user.inc:114 +#: ../lib/types/user.inc:197 +msgid "New user" +msgstr "Új felhasználó" + +#: ../templates/tree/update_confirm.php:154 +msgid "New value" +msgstr "Új érték" + +#: ../templates/tree/create_form.php:138 +#: ../templates/tree/templates/creation/custom.php:86 +#: ../templates/tree/templates/creation/new_ou_template.php:69 +msgid "Next" +msgstr "Következő" + +#: ../lib/modules/sambaDomain.inc:78 +#: ../lib/modules/sambaDomain.inc:158 +#: ../lib/modules/sambaDomain.inc:179 +#: ../lib/modules/sambaDomain.inc:344 +#: ../lib/modules/sambaDomain.inc:624 +msgid "Next RID" +msgstr "Következő RID" + +#: ../lib/modules/sambaDomain.inc:205 +#: ../lib/modules/sambaDomain.inc:206 +msgid "Next RID is not a number!" +msgstr "A következő RID értéke nem szám!" + +#: ../lib/modules/sambaDomain.inc:79 +msgid "Next RID to use when creating accounts (only used by Winbind)." +msgstr "A következő RID, melyet fiókok létrehozásakor használni kell (csak a Winbind használja)" + +#: ../lib/modules/sambaDomain.inc:87 +msgid "Next RID to use when creating group accounts (only used by Winbind)." +msgstr "A következő RID, melyet csoport fiókok létrehozásakor használni kell (csak a Winbind használja)." + +#: ../lib/modules/sambaDomain.inc:83 +msgid "Next RID to use when creating user accounts (only used by Winbind)." +msgstr "A következő RID, melyet felhasználói fiókok létrehozásakor használni kell (csak a Winbind használja)." + +#: ../lib/modules/sambaDomain.inc:86 +#: ../lib/modules/sambaDomain.inc:170 +#: ../lib/modules/sambaDomain.inc:181 +#: ../lib/modules/sambaDomain.inc:356 +#: ../lib/modules/sambaDomain.inc:630 +msgid "Next group RID" +msgstr "Következő csoport RID" + +#: ../lib/modules/sambaDomain.inc:209 +#: ../lib/modules/sambaDomain.inc:210 +msgid "Next group RID is not a number!" +msgstr "A következő csoport RID-je nem szám!" + +#: ../lib/modules/sambaDomain.inc:82 +#: ../lib/modules/sambaDomain.inc:164 +#: ../lib/modules/sambaDomain.inc:180 +#: ../lib/modules/sambaDomain.inc:350 +#: ../lib/modules/sambaDomain.inc:627 +msgid "Next user RID" +msgstr "Következő felhasználó RID " + +#: ../lib/modules/sambaDomain.inc:207 +#: ../lib/modules/sambaDomain.inc:208 +msgid "Next user RID is not a number!" +msgstr "A következő felhasználó RID-je nem szám!" + +#: ../lib/modules/eduPerson.inc:86 +#: ../lib/modules/eduPerson.inc:165 +#: ../lib/modules/eduPerson.inc:197 +#: ../lib/modules/eduPerson.inc:297 +#: ../lib/modules/eduPerson.inc:659 +msgid "Nick names" +msgstr "Becenevek" + +#: ../templates/schema/schema.php:151 +#: ../templates/schema/schema.php:193 +#: ../templates/schema/schema.php:198 +#: ../templates/schema/schema.php:203 +#: ../lib/modules/imapAccess.inc:99 +msgid "No" +msgstr "Nem" + +#: ../lib/types/dhcp.inc:163 +msgid "No DHCPs found!" +msgstr "Nem találtam DHCP-ket!" + +#: ../lib/types/nisObjectType.inc:145 +msgid "No NIS objects found!" +msgstr "Nem találtam NIS objektumokat!" + +#: ../lib/modules/sambaSamAccount.inc:1032 +#: ../lib/modules/sambaGroupMapping.inc:245 +msgid "No Samba 3 domains found in LDAP! Please create one first." +msgstr "Nem találtam Samba 3 tartományokat az LDAP-ban! Kérem, készítsen egyet!" + +#: ../lib/modules/posixAccount.inc:430 +#: ../lib/modules/posixAccount.inc:891 +msgid "No Unix groups found in LDAP! Please create one first." +msgstr "Nem találtam Unix csoportokat az LDAP-ban! Kérem, készítsen egyet!" + +#: ../lib/types/mailAlias.inc:136 +#: ../lib/types/alias.inc:136 +msgid "No aliases found!" +msgstr "Nem találtam álneveket!" + +#: ../templates/initsuff.php:163 +msgid "No changes were made." +msgstr "Nem történt változtatás." + +#: ../templates/schema/schema.php:142 +msgid "No description" +msgstr "Nincs leírás" + +#: ../lib/types/smbDomain.inc:157 +msgid "No domains found!" +msgstr "Nem találtam tartományokat!" + +#: ../lib/types/asteriskExt.inc:138 +msgid "No extension(s) found!" +msgstr "Nem találtam kiterjesztés(eke)t!" + +#: ../lib/modules/inetOrgPerson.inc:77 +msgid "No file selected." +msgstr "Nincs kiválasztott fájl." + +#: ../lib/modules/posixGroup.inc:476 +#: ../lib/modules/posixAccount.inc:72 +msgid "No free ID-Number!" +msgstr "Nincs szabad ID-érték!" + +#: ../lib/types/gon.inc:159 +#: ../lib/types/group.inc:175 +#: ../lib/types/netgroup.inc:159 +msgid "No groups found!" +msgstr "Nem találtam csoportokat!" + +#: ../lib/types/host.inc:162 +msgid "No hosts found!" +msgstr "Nem találtam gazdaállomásokat!" + +#: ../templates/tree/edit.php:193 +msgid "No internal attributes" +msgstr "Nincsenek belső attribútumok" + +#: ../templates/tests/lamdaemonTest.php:193 +msgid "No lamdaemon path set, please update your LAM configuration settings." +msgstr "Nincs beállítva a lamdaemon elérési útja (path), kérem, frissítse a LAM beállításait." + +#: ../templates/tests/lamdaemonTest.php:95 +#: ../templates/tests/lamdaemonTest.php:188 +msgid "No lamdaemon server set, please update your LAM configuration settings." +msgstr "Nincs lamdaemon szerver beállítva, kérem, frissítse a LAM beállításait." + +#: ../templates/config/mainmanage.php:219 +msgid "No logging" +msgstr "Nincs naplózás" + +#: ../templates/pdfedit/pdfpage.php:422 +msgid "No logo" +msgstr "Nincs logó" + +#: ../lib/lists.inc:107 +msgid "No objects found!" +msgstr "Nem találtam objektumokat!" + +#: ../templates/config/confmodules.php:385 +msgid "No or more than one base module selected!" +msgstr "Nem választott alapmodult, vagy egynél többet választott!" + +#: ../templates/config/confsave.php:53 +#: ../templates/config/confmain.php:54 +msgid "No password was entered!" +msgstr "Nem adott meg jelszót!" + +#: ../lib/types/ppolicyType.inc:144 +msgid "No policies found!" +msgstr "Nem találtam irányelvet!" + +#: ../templates/tests/schemaTest.php:68 +msgid "No problems found." +msgstr "Semmilyen gond nincs." + +#: ../lib/modules/customScripts.inc:160 +msgid "No scripts to run." +msgstr "Nincs futtatni kívánt szkript." + +#: ../templates/pdfedit/pdfpage.php:119 +msgid "No section text specified" +msgstr "Nem határozott meg szekció szöveget!" + +#: ../templates/config/conflogin.php:128 +msgid "No server profiles found. Please create one." +msgstr "Nem találtam szerverprofilt. Kérem, készítsen egyet!" + +#: ../templates/pdfedit/pdfpage.php:107 +msgid "No static text specified" +msgstr "Nem határozott meg statikus szöveget!" + +#: ../lib/modules/dhcp_settings.inc:272 +msgid "No subnet entered." +msgstr "Nincs alhálózat megadva." + +#: ../templates/tree/edit.php:81 +msgid "No such entry!" +msgstr "Nincs ilyen bejegyzés!" + +#: ../templates/schema/schema.php:436 +#, php-format +msgid "No such schema item: \"%s\"" +msgstr "Nincs ilyen sémaelem: \"%s\"" + +#: ../lib/types/sudo.inc:149 +msgid "No sudo roles found!" +msgstr "Nem találtam sudo szerepeket!" + +#: ../lib/types/user.inc:196 +msgid "No users found!" +msgstr "Nem találtam felhasználókat!" + +#: ../help/help.inc:64 +msgid "Note" +msgstr "Megjegyzés" + +#: ../templates/tree/add_value_form.php:115 +msgid "Note: You will get an \"inappropriate matching\" error if you have not setup an EQUALITY rule on your LDAP server for this attribute." +msgstr "Megjegyzés: \"Nem megfelelő illeszkedés\" hibát okoz, ha nem állított be EGYENLŐSÉG szabályt ehhez az attribútumhoz az Ön LDAP szerverén." + +#: ../templates/config/mainmanage.php:215 +msgid "Notice" +msgstr "Megjegyzés" + +#: ../templates/delete.php:90 +msgid "Number of child entries" +msgstr "A gyermekbejegyzések száma" + +#: ../lib/modules/shadowAccount.inc:173 +msgid "Number of days a user can login even his password has expired. -1=always." +msgstr "Ahány napig a felhasználó beléphet jelszavának lejárta után. -1=mindig." + +#: ../lib/modules/shadowAccount.inc:177 +msgid "Number of days a user has to wait until he is allowed to change his password again. If set value must be >0." +msgstr "Ahány napig a felhasználónak várnia kell, hogy jelszavát újra megváltoztathassa. Ha beállítja, 0-nál nagyobb értéket kell megadnia." + +#: ../lib/modules/shadowAccount.inc:181 +msgid "Number of days after a user has to change his password again. If set value must be >0." +msgstr "Ahány nap után a felhasználónak ismételten meg _kell_ változtatnia jelszavát. Ha beállítja, 0-nál nagyobb értéket kell megadnia." + +#: ../lib/modules/sambaDomain.inc:131 +msgid "Number of minutes after which the bad logon attempts are reset." +msgstr "Ennyi perc elteltével a sikertelen bejelentkezési kísérletek a kezdeti állapotra állnak vissza." + +#: ../lib/modules/ppolicy.inc:77 +#: ../lib/modules/sambaDomain.inc:119 +msgid "Number of seconds after the user is allowed to change his password again." +msgstr "Ennyi másodperc elteltével a felhasználó újra megváltoztathatja jelszavát." + +#: ../lib/modules/ppolicy.inc:81 +#: ../lib/modules/sambaDomain.inc:123 +msgid "Number of seconds after which the user must change his password." +msgstr "Ahány másodperc után a felhasználónak meg _kell_ változtatnia jelszavát." + +#: ../templates/schema/schema.php:145 +#: ../templates/schema/schema.php:342 +msgid "OID" +msgstr "OID" + +#: ../templates/ou_edit.php:80 +msgid "OU already exists!" +msgstr "Az OU már létezik!" + +#: ../templates/ou_edit.php:91 +msgid "OU deleted successfully." +msgstr "Az OU sikeresen törölve." + +#: ../templates/ou_edit.php:149 +#: ../lib/tools/ouEditor.inc:44 +msgid "OU editor" +msgstr "OU szerkesztő" + +#: ../templates/ou_edit.php:84 +msgid "OU is invalid!" +msgstr "Az OU érvénytelen!" + +#: ../templates/ou_edit.php:128 +msgid "OU is not empty or invalid!" +msgstr "Az OU nem üres vagy érvénytelen!" + +#: ../help/help.inc:203 +#: ../help/help.inc:205 +msgid "OU-Editor" +msgstr "OU szerkesztő" + +#: ../templates/tree/templates/creation/custom.php:70 +#: ../templates/schema/schema.php:63 +#: ../templates/schema/schema.php:64 +msgid "Object classes" +msgstr "Objektumosztályok" + +#: ../templates/schema/schema.php:150 +#: ../templates/schema/schema.php:281 +msgid "Obsolete" +msgstr "Elavult" + +#: ../lib/modules/sambaDomain.inc:282 +#: ../lib/modules/sambaDomain.inc:291 +#: ../lib/modules/sambaDomain.inc:300 +#: ../lib/modules/sambaDomain.inc:642 +#: ../lib/modules/sambaDomain.inc:647 +#: ../lib/modules/sambaDomain.inc:652 +msgid "Off" +msgstr "Kikapcsolás" + +#: ../lib/modules/inetOrgPerson.inc:124 +#: ../lib/modules/inetOrgPerson.inc:193 +#: ../lib/modules/inetOrgPerson.inc:402 +#: ../lib/modules/inetOrgPerson.inc:434 +#: ../lib/modules/inetOrgPerson.inc:575 +#: ../lib/modules/inetOrgPerson.inc:879 +#: ../lib/modules/inetOrgPerson.inc:1050 +#: ../lib/modules/inetOrgPerson.inc:1485 +msgid "Office name" +msgstr "Munkahely neve" + +#: ../templates/tree/export_form.php:165 +#: ../templates/tests/lamdaemonTest.php:90 +#: ../templates/ou_edit.php:185 +#: ../templates/ou_edit.php:199 +#: ../templates/masscreate.php:195 +#: ../templates/config/profmanage.php:382 +#: ../templates/config/mainmanage.php:252 +#: ../templates/config/conflogin.php:158 +#: ../templates/config/conflogin.php:159 +#: ../templates/config/mainlogin.php:155 +#: ../templates/selfService/selfServiceLogin.php:240 +#: ../templates/selfService/profManage.php:285 +#: ../templates/selfService/adminLogin.php:152 +#: ../templates/selfService/adminLogin.php:153 +#: ../templates/selfService/adminMain.php:541 +#: ../templates/selfService/adminMain.php:584 +#: ../templates/profedit/profiledelete.php:91 +#: ../lib/modules/device.inc:233 +#: ../lib/modules/device.inc:258 +#: ../lib/modules/sambaSamAccount.inc:1329 +#: ../lib/modules/sambaSamAccount.inc:1445 +#: ../lib/modules/zarafaUser.inc:749 +#: ../lib/modules/zarafaUser.inc:756 +#: ../lib/modules/nisnetgroup.inc:468 +#: ../lib/modules/nisnetgroup.inc:478 +#: ../lib/modules/asteriskExtension.inc:330 +#: ../lib/modules/aliasEntry.inc:141 +#: ../lib/modules/aliasEntry.inc:161 +#: ../lib/modules/imapAccess.inc:221 +#: ../lib/modules/groupOfNames.inc:233 +#: ../lib/modules/groupOfNames.inc:257 +#: ../lib/modules/groupOfNames.inc:357 +#: ../lib/lists.inc:645 +#: ../lib/lists.inc:896 +#: ../lib/modules.inc:1362 +msgid "Ok" +msgstr "Rendben" + +#: ../templates/tree/update_confirm.php:153 +msgid "Old value" +msgstr "Régi érték" + +#: ../lib/modules/sambaDomain.inc:282 +#: ../lib/modules/sambaDomain.inc:291 +#: ../lib/modules/sambaDomain.inc:300 +#: ../lib/modules/sambaDomain.inc:643 +#: ../lib/modules/sambaDomain.inc:648 +#: ../lib/modules/sambaDomain.inc:653 +msgid "On" +msgstr "Bekapcsolás" + +#: ../lib/modules/sambaSamAccount.inc:225 +#: ../lib/modules/sambaSamAccount.inc:362 +#: ../lib/modules/sambaSamAccount.inc:1431 +#: ../lib/modules/sambaSamAccount.inc:1711 +msgid "On broken or timed out connection" +msgstr "A kapcsolat megszakadt vagy időtúllépés történt." + +#: ../templates/tree/export_form.php:75 +msgid "One (one level beneath base)" +msgstr "Egy (egy szinttel az alap alatt)" + +#: ../lib/modules/range.inc:107 +#: ../lib/modules/fixed_ip.inc:105 +msgid "One or more errors occured. The invalid fields are marked." +msgstr "Egy vagy több hiba történt. Az érvénytelen mezőket megjelöltem." + +#: ../templates/tree/templates/creation/custom.php:209 +#: ../templates/schema/schema.php:382 +msgid "Optional attributes" +msgstr "Szabadon választható attribútumok" + +#: ../templates/tree/templates/creation/custom.php:225 +msgid "Optional binary attributes" +msgstr "Szabadon választható bináris attribútumok" + +#: ../templates/lists/changePassword.php:217 +#: ../lib/types/sudo.inc:83 +#: ../lib/modules/zarafaGroup.inc:179 +#: ../lib/modules/posixAccount.inc:178 +#: ../lib/modules/zarafaUser.inc:481 +#: ../lib/modules/sudoRole.inc:83 +#: ../lib/modules/sudoRole.inc:112 +#: ../lib/modules/sudoRole.inc:164 +#: ../lib/modules/sudoRole.inc:178 +#: ../lib/modules/sudoRole.inc:187 +#: ../lib/modules/sudoRole.inc:399 +#: ../lib/modules/sudoRole.inc:702 +#: ../lib/modules/asteriskExtension.inc:106 +#: ../lib/modules/asteriskVoicemail.inc:106 +#: ../lib/modules/asteriskVoicemail.inc:116 +#: ../lib/modules/asteriskVoicemail.inc:133 +#: ../lib/modules/asteriskVoicemail.inc:181 +#: ../lib/modules/asteriskVoicemail.inc:273 +#: ../lib/modules/asteriskVoicemail.inc:414 +msgid "Options" +msgstr "Lehetőségek" + +#: ../lib/modules/asteriskVoicemail.inc:107 +msgid "Options for Asterisk voicemail account (e.g. sendvoicemail=yes)." +msgstr "Beállítások az Asterisk hangposta fiókjához (pl. sendvoicemail=yes)." + +#: ../templates/schema/schema.php:169 +msgid "Ordering" +msgstr "Rendelés" + +#: ../lib/modules/eduPerson.inc:111 +#: ../lib/modules/eduPerson.inc:177 +#: ../lib/modules/eduPerson.inc:198 +#: ../lib/modules/eduPerson.inc:215 +#: ../lib/modules/eduPerson.inc:339 +#: ../lib/modules/eduPerson.inc:670 +msgid "Organization" +msgstr "Szervezet" + +#: ../templates/tree/templates/templates.inc:46 +msgid "Organizational unit" +msgstr "Szervezeti egység" + +#: ../lib/modules/eduPerson.inc:119 +#: ../lib/modules/eduPerson.inc:123 +#: ../lib/modules/eduPerson.inc:189 +#: ../lib/modules/eduPerson.inc:199 +#: ../lib/modules/eduPerson.inc:363 +#: ../lib/modules/eduPerson.inc:676 +msgid "Organizational units" +msgstr "Szervezeti egységek" + +#: ../lib/modules/eduPerson.inc:219 +msgid "Organizational units contains an invalid entry." +msgstr "Érvénytelen bejegyzés a Szervezeti egységeknél." + +#: ../templates/config/confmain.php:309 +msgid "Other" +msgstr "Egyéb" + +#: ../lib/modules/customScripts.inc:76 +#: ../lib/modules/customScripts.inc:88 +#: ../lib/modules/customScripts.inc:97 +msgid "Output may contain HTML" +msgstr "A kimenet tartalmazhat HTML-t" + +#: ../lib/modules/customScripts.inc:407 +#, php-format +msgid "Output of command \"%s\" with return code %s" +msgstr "A \"%s\" utasítás kimenete %s értéket adott vissza." + +#: ../lib/modules/zarafaUser.inc:73 +msgid "Override default quota settings." +msgstr "Az alapértelmezett kvóta-beállítások felülbírálása." + +#: ../templates/config/confmain.php:301 +#: ../lib/types/gon.inc:94 +#: ../lib/modules/device.inc:62 +#: ../lib/modules/device.inc:91 +#: ../lib/modules/device.inc:111 +#: ../lib/modules/device.inc:176 +#: ../lib/modules/device.inc:183 +#: ../lib/modules/device.inc:376 +#: ../lib/modules/groupOfNames.inc:68 +#: ../lib/modules/groupOfNames.inc:97 +#: ../lib/modules/groupOfNames.inc:113 +#: ../lib/modules/groupOfNames.inc:153 +#: ../lib/modules/groupOfNames.inc:168 +#: ../lib/modules/groupOfNames.inc:455 +msgid "Owner" +msgstr "Tulajdonos" + +#: ../lib/modules/dhcp_settings.inc:88 +msgid "P-Node (0x02)" +msgstr "P-Node (0x02)" + +#: ../lib/modules/fixed_ip.inc:87 +#: ../lib/modules/fixed_ip.inc:330 +#: ../lib/modules/fixed_ip.inc:513 +msgid "PC name" +msgstr "PC neve" + +#: ../templates/pdfedit/pdfpage.php:438 +#: ../templates/pdfedit/pdfmain.php:115 +#: ../lib/tools/pdfEdit.inc:44 +msgid "PDF editor" +msgstr "PDF szerkesztő" + +#: ../lib/lists.inc:623 +#: ../help/help.inc:160 +msgid "PDF structure" +msgstr "PDF szerkezet" + +#: ../templates/pdfedit/pdfpage.php:90 +msgid "PDF structure name not valid" +msgstr "A PDF szerkezet neve érvénytelen" + +#: ../templates/pdfedit/pdfmain.php:118 +msgid "PDF structure was successfully saved." +msgstr "A PDF szerkezet sikeresen elmentve." + +#: ../lib/modules/sambaSamAccount.inc:531 +msgid "Pacific Time (US & Canada)" +msgstr "Csendes-óceáni idő (Amerikai Egyesült Államok és Kanada)" + +#: ../lib/modules/dhcp_settings.inc:140 +msgid "Packets are sent to the default gateway if the receiver does not reside in the same network. The default gateway routes them to the target network." +msgstr "A csomagok az alapértelmezett átjáróhoz kerülnek, ha a célállomás nem ugyanazon a hálózaton van. Az alapértelmezett átjáró juttatja el őket a célhálózatba." + +#: ../templates/selfService/adminMain.php:445 +#: ../help/help.inc:180 +msgid "Page header" +msgstr "Lap fejléce" + +#: ../lib/modules/asteriskVoicemail.inc:102 +#: ../lib/modules/asteriskVoicemail.inc:132 +#: ../lib/modules/asteriskVoicemail.inc:175 +#: ../lib/modules/asteriskVoicemail.inc:267 +#: ../lib/modules/asteriskVoicemail.inc:406 +msgid "Pager" +msgstr "Pager" + +#: ../lib/modules/asteriskVoicemail.inc:103 +msgid "Pager number for Asterisk voicemail." +msgstr "Oldalszám az Asterisk hangpostához." + +#: ../templates/schema/schema.php:364 +msgid "Parent to" +msgstr "Ennek a szülője" + +#: ../templates/lists/changePassword.php:272 +#: ../templates/login.php:296 +#: ../templates/selfService/selfServiceLogin.php:226 +#: ../lib/modules/asteriskAccount.inc:95 +#: ../lib/modules/asteriskAccount.inc:154 +#: ../lib/modules/posixGroup.inc:193 +#: ../lib/modules/posixGroup.inc:473 +#: ../lib/modules/sambaSamAccount.inc:400 +#: ../lib/modules/posixAccount.inc:77 +#: ../lib/modules/posixAccount.inc:78 +#: ../lib/modules/posixAccount.inc:143 +#: ../lib/modules/posixAccount.inc:245 +#: ../lib/modules/posixAccount.inc:308 +#: ../lib/modules/posixAccount.inc:370 +#: ../lib/modules/posixAccount.inc:988 +#: ../lib/modules/posixAccount.inc:1155 +#: ../lib/modules/asteriskVoicemail.inc:90 +#: ../lib/modules/asteriskVoicemail.inc:156 +#: ../lib/modules.inc:1333 +#: ../help/help.inc:158 +msgid "Password" +msgstr "Jelszó" + +#: ../lib/modules/sambaSamAccount.inc:272 +#: ../lib/modules/sambaSamAccount.inc:1074 +msgid "Password change at next login" +msgstr "A jelszó megváltoztatása legközelebbi belépéskor" + +#: ../lib/modules/ppolicyUser.inc:52 +#: ../lib/modules/ppolicyUser.inc:67 +#: ../lib/modules/ppolicyUser.inc:121 +msgid "Password change required" +msgstr "A jelszó megváltoztatása szükséges" + +#: ../lib/types/ppolicyType.inc:91 +#: ../lib/modules/ppolicy.inc:128 +#: ../lib/modules/ppolicy.inc:148 +#: ../lib/modules/ppolicy.inc:274 +#: ../lib/modules/ppolicy.inc:484 +msgid "Password change requires old password" +msgstr "A jelszó megváltoztatásához a régi jelszó szükséges" + +#: ../lib/modules/posixGroup.inc:473 +#: ../lib/modules/sambaSamAccount.inc:97 +#: ../lib/modules/posixAccount.inc:78 +#: ../lib/modules/posixAccount.inc:79 +msgid "Password contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and #*,.;:_-+!%&/|?{[()]}=@$ !" +msgstr "A jelszó érvénytelen karaktereket tartalmaz. Érvényes karakterek: a-z, A-Z, 0-9 és #*,.;:_-+!%&/|?{[()]}=@$ !" + +#: ../lib/modules/sambaSamAccount.inc:257 +#: ../lib/modules/sambaSamAccount.inc:260 +#: ../lib/modules/sambaSamAccount.inc:422 +#: ../lib/modules/sambaSamAccount.inc:1064 +#: ../lib/modules/sambaSamAccount.inc:1470 +msgid "Password does not expire" +msgstr "A jelszó nem jár le" + +#: ../lib/modules/shadowAccount.inc:61 +#: ../lib/modules/shadowAccount.inc:106 +#: ../lib/modules/shadowAccount.inc:163 +#: ../lib/modules/shadowAccount.inc:172 +#: ../lib/modules/shadowAccount.inc:206 +#: ../lib/modules/shadowAccount.inc:311 +#: ../lib/modules/shadowAccount.inc:430 +msgid "Password expiration" +msgstr "A jelszó lejárata" + +#: ../lib/modules/shadowAccount.inc:61 +#: ../lib/modules/shadowAccount.inc:62 +msgid "Password expiration must be are natural number or -1." +msgstr "A jelszó lejárásához megadott érték csak természetes szám lehet, vagy -1. " + +#: ../lib/modules/asteriskVoicemail.inc:91 +msgid "Password for voicemail mailbox." +msgstr "Jelszó a hangposta leveles postafiókjához." + +#: ../lib/modules/posixGroup.inc:409 +#: ../lib/modules/posixGroup.inc:437 +#: ../lib/modules/posixAccount.inc:147 +#: ../lib/modules/posixAccount.inc:180 +#: ../lib/modules/posixAccount.inc:325 +#: ../lib/modules/inetOrgPerson.inc:226 +#: ../lib/modules/inetOrgPerson.inc:587 +msgid "Password hash type" +msgstr "A jelszó hash-ének típusa" + +#: ../lib/types/ppolicyType.inc:80 +#: ../lib/modules/ppolicy.inc:84 +#: ../lib/modules/ppolicy.inc:137 +#: ../lib/modules/ppolicy.inc:161 +#: ../lib/modules/ppolicy.inc:214 +#: ../lib/modules/ppolicy.inc:448 +#: ../lib/modules/sambaDomain.inc:98 +#: ../lib/modules/sambaDomain.inc:184 +#: ../lib/modules/sambaDomain.inc:276 +#: ../lib/modules/sambaDomain.inc:639 +msgid "Password history length" +msgstr "A jelszó-előzmények hossza" + +#: ../templates/config/confmain.php:333 +msgid "Password mail settings" +msgstr "A jelszavakat tartalmazó levelek beállításai" + +#: ../lib/modules/shadowAccount.inc:59 +#: ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/ppolicy.inc:159 +#: ../lib/modules/sambaDomain.inc:215 +msgid "Password maximum age must be are natural number." +msgstr "A jelszó maximális érvényességi ideje csak természetes szám lehet." + +#: ../lib/modules/shadowAccount.inc:66 +msgid "Password maximum age must be bigger as password minimum age." +msgstr "A jelszó maximális érvényességi idejének nagyobbnak kell lennie a minimális érvényességi időnél." + +#: ../lib/modules/shadowAccount.inc:65 +#: ../lib/modules/ppolicy.inc:160 +#: ../lib/modules/sambaDomain.inc:213 +msgid "Password maximum age must be bigger than password minimum age." +msgstr "A jelszó maximális érvényességi idejének nagyobbnak kell lennie a minimális érvényességi időnél." + +#: ../lib/modules/shadowAccount.inc:57 +#: ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/ppolicy.inc:158 +#: ../lib/modules/sambaDomain.inc:214 +msgid "Password minimum age must be are natural number." +msgstr "A jelszó minimális érvényességi ideje csak természetes szám lehet." + +#: ../lib/modules/imapAccess.inc:81 +#: ../lib/modules/imapAccess.inc:216 +msgid "Password of IMAP admin user" +msgstr "Az IMAP adminisztrátor felhasználó jelszava" + +#: ../lib/types/ppolicyType.inc:39 +msgid "Password policies" +msgstr "Jelszó irányelvek" + +#: ../lib/types/ppolicyType.inc:48 +msgid "Password policies (ppolicy)" +msgstr "Jelszó irányelvek (ppolicy)" + +#: ../templates/config/mainmanage.php:209 +#: ../lib/modules/ppolicyUser.inc:38 +#: ../lib/modules/ppolicyUser.inc:48 +#: ../lib/modules/ppolicyUser.inc:60 +#: ../lib/modules/ppolicyUser.inc:76 +#: ../lib/modules/ppolicyUser.inc:112 +#: ../lib/modules/ppolicyUser.inc:203 +#: ../lib/modules/ppolicyUser.inc:231 +#: ../lib/modules/ppolicy.inc:54 +#: ../lib/modules/sambaDomain.inc:259 +#: ../help/help.inc:140 +msgid "Password policy" +msgstr "Jelszó irányelv" + +#: ../lib/types/ppolicyType.inc:81 +#: ../lib/modules/ppolicy.inc:88 +#: ../lib/modules/ppolicy.inc:138 +#: ../lib/modules/ppolicy.inc:224 +#: ../lib/modules/ppolicy.inc:458 +msgid "Password quality check" +msgstr "Jelszó minőségellenőrzés" + +#: ../lib/modules/shadowAccount.inc:63 +#: ../lib/modules/shadowAccount.inc:101 +#: ../lib/modules/shadowAccount.inc:161 +#: ../lib/modules/shadowAccount.inc:168 +#: ../lib/modules/shadowAccount.inc:200 +#: ../lib/modules/shadowAccount.inc:304 +#: ../lib/modules/shadowAccount.inc:429 +msgid "Password warning" +msgstr "Jelszó-figyelmeztetés" + +#: ../lib/modules/shadowAccount.inc:63 +#: ../lib/modules/shadowAccount.inc:64 +msgid "Password warning must be are natural number." +msgstr "A jelszó-figyelmeztetés értéke csak természetes szám lehet." + +#: ../templates/config/confmain.php:461 +#: ../lib/modules.inc:1394 +msgid "Passwords are different!" +msgstr "A jelszavak különbözőek!" + +#: ../lib/types/nisObjectType.inc:77 +msgid "Path" +msgstr "Elérési útvonal" + +#: ../lib/modules/sambaSamAccount.inc:336 +msgid "Path of the user profile." +msgstr "A felhasználói profil elérési útvonala." + +#: ../lib/modules/sambaSamAccount.inc:287 +msgid "Path of the user profile. Can be a local absolute path or a UNC-path (\\\\server\\share). $user and $group are replaced with user and group name." +msgstr "A felhasználói profil elérési útvonala. Helyi abszolút elérési útvonal vagy UNC elérési útvonal is lehet (\\\\server\\share). A $user és $group változók a felhasználó-és csoportnévvel lesznek helyettesítve." + +#: ../templates/config/confmain.php:292 +msgid "Path to external script" +msgstr "A külső szkript elérési útvonala" + +#: ../lib/modules/ddns.inc:96 +#: ../lib/modules/ddns.inc:345 +msgid "Path to key for DNS updates" +msgstr "A DNS frissítéséhez szükséges kulcs elérési útvonala" + +#: ../templates/tree/delete_form.php:81 +msgid "Permanently delete all children, too?" +msgstr "Az összes gyermeket is véglegesen törli?" + +#: ../lib/modules/inetOrgPerson.inc:96 +msgid "Personal" +msgstr "Személyes adatok" + +#: ../lib/types/user.inc:102 +#: ../lib/types/user.inc:279 +#: ../lib/modules/inetOrgPerson.inc:122 +#: ../lib/modules/inetOrgPerson.inc:1508 +#: ../lib/modules/inetOrgPerson.inc:1515 +msgid "Photo" +msgstr "Fénykép" + +#: ../lib/modules/inetOrgPerson.inc:1002 +msgid "Photo file (JPG format)" +msgstr "Fénykép fájl (JPG formátum)" + +#: ../lib/modules/ldapPublicKey.inc:67 +msgid "Please a comma separated list of your public SSH keys." +msgstr "Kérem, adja meg nyilvános SSH kulcsait, vesszőkkel elválasztva! " + +#: ../lib/modules/customScripts.inc:77 +msgid "Please activate this option if your scripts may generate HTML output. Otherwise, the output is treated as plain text." +msgstr "Kérem, kapcsolja be ezt a beállítást ha szkriptjei HTML kimenetet készíthetnek. Enélkül a kimenet sima szövegnek számít majd." + +#: ../lib/modules/asteriskExtension.inc:198 +msgid "Please add at least one member." +msgstr "Kérem, hogy legalább egy tagot adjon hozzá." + +#: ../lib/modules/sambaSamAccount.inc:1026 +msgid "Please check your settings on the Unix page!" +msgstr "Kérem, ellenőrízze beállításait a Unix oldalon!" + +#: ../lib/modules/phpGroupwareUser.inc:134 +msgid "Please enter \"active\" or \"inactive\"." +msgstr "Kérem, hogy \"active\" vagy \"inactive\" értéket adjon meg!" + +#: ../lib/modules/sambaSamAccount.inc:98 +msgid "Please enter a RID number or the name of a special account!" +msgstr "Kérem, adjon meg RID számot vagy egy különleges fiók nevét!" + +#: ../lib/modules/asteriskAccount.inc:166 +msgid "Please enter a caller ID." +msgstr "Kérem, adjon meg hívó ID-t." + +#: ../lib/modules/imapAccess.inc:88 +msgid "Please enter a comma separated list of domain names (e.g. \"company.com,example.com\"). LAM will only manage mailboxes from these domains." +msgstr "Kérem, adjon meg vesszőkkel elválasztott tartománynevekből álló listát (pl. \"ceg.com,pelda.com\".) A LAM csak ezeken a tartományokon lévő postafiókokat fog kezelni." + +#: ../lib/modules/sambaSamAccount.inc:95 +#: ../lib/modules/sambaSamAccount.inc:96 +msgid "Please enter a comma separated list of host names!" +msgstr "Kérem, adjon meg gazdaállomások vesszőkkel elválasztott nevéből álló listát!" + +#: ../lib/modules/asteriskExtension.inc:191 +msgid "Please enter a common name." +msgstr "Kérem, adjon meg egy szokványos elnevezést!" + +#: ../lib/modules/imapAccess.inc:134 +msgid "Please enter a correct list of valid mail domains." +msgstr "Kérem, adjon meg előírásoknak megfelelő listát az érvényes levelező tartományokból." + +#: ../lib/modules/nisObject.inc:55 +#: ../lib/modules/sudoRole.inc:56 +msgid "Please enter a descriptive name for this entry." +msgstr "Kérem, adjon leíró nevet ehhez a bejegyzéshez." + +#: ../lib/modules/groupOfNames.inc:123 +msgid "Please enter a group name!" +msgstr "Kérem, adjon meg egy csoportnevet!" + +#: ../lib/modules/asteriskVoicemail.inc:200 +msgid "Please enter a mailbox." +msgstr "Kérem, adjon meg postafiókot." + +#: ../lib/modules/device.inc:55 +msgid "Please enter a name for this device." +msgstr "Kérem, adjon nevet ehhez az eszközhöz." + +#: ../lib/modules/ppolicy.inc:157 +msgid "Please enter a name for this policy." +msgstr "Kérem, adjon nevet ehhez a irányelvhez." + +#: ../lib/modules/zarafaUser.inc:332 +#: ../lib/modules/zarafaUser.inc:333 +#: ../lib/modules/zarafaUser.inc:334 +#: ../lib/modules/zarafaUser.inc:335 +#: ../lib/modules/zarafaUser.inc:336 +#: ../lib/modules/zarafaUser.inc:337 +#: ../lib/modules/zarafaUser.inc:339 +#: ../lib/modules/zarafaUser.inc:340 +msgid "Please enter a number." +msgstr "Kérem, adjon meg egy számot." + +#: ../lib/modules/ppolicy.inc:166 +msgid "Please enter a numeric value for the expire warning." +msgstr "Kérem, adjon numerikus értéket a lejárati figyelmeztetéshez." + +#: ../lib/modules/ppolicy.inc:165 +msgid "Please enter a numeric value for the failure count interval." +msgstr "Kérem, adjon numerikus értéket a hibaszámláló intervallumához." + +#: ../lib/modules/ppolicy.inc:162 +msgid "Please enter a numeric value for the grace authentication limit." +msgstr "Kérem, adjon numerikus értéket a grace azonosítási korláthoz." + +#: ../lib/modules/ppolicy.inc:163 +msgid "Please enter a numeric value for the lockout duration." +msgstr "Kérem, adjon numerikus értéket a kizárási időtartamhoz." + +#: ../lib/modules/ppolicy.inc:164 +msgid "Please enter a numeric value for the maximum failure count." +msgstr "Kérem, adjon numerikus értéket a maximális hibaszámhoz." + +#: ../lib/modules/ppolicy.inc:167 +msgid "Please enter a numeric value for the minimum password length." +msgstr "Kérem, adjon numerikus értéket a minimális jelszó-hosszhoz." + +#: ../lib/modules/ppolicy.inc:161 +msgid "Please enter a numeric value for the password history length." +msgstr "Kérem, adjon numerikus értéket a jelszó-előzmények hosszához." + +#: ../lib/modules/sudoRole.inc:221 +msgid "Please enter a role name." +msgstr "Kérem, adjon meg szerep-nevet." + +#: ../lib/modules/ppolicy.inc:73 +msgid "Please enter a unique name for this password policy." +msgstr "Kérem, adjon egyedi nevet ehhez a jelszó-irányelvhez." + +#: ../lib/modules/kolabUser.inc:258 +#: ../lib/modules/kolabUser.inc:264 +msgid "Please enter a user password." +msgstr "Kérem, adjon meg felhasználói jelszót." + +#: ../lib/modules/eduPerson.inc:215 +#: ../lib/modules/eduPerson.inc:217 +msgid "Please enter a valid DN in the field:" +msgstr "Kérem, adjon meg érvényes DN-t e mezőben:" + +#: ../lib/modules/inetOrgPerson.inc:78 +#: ../lib/modules/inetOrgPerson.inc:79 +msgid "Please enter a valid business category!" +msgstr "Kérem, adjon meg érvényes üzleti kategóriát!" + +#: ../lib/modules/posixAccount.inc:97 +#: ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/inetOrgPerson.inc:71 +#: ../lib/modules/inetOrgPerson.inc:72 +msgid "Please enter a valid common name!" +msgstr "Kérem, a szokványos elnevezést érvényes formában adja meg!" + +#: ../lib/modules/sambaSamAccount.inc:106 +msgid "Please enter a valid date in format DD-MM-YYYY." +msgstr "Kérem, adjon meg érvényes dátumot NN-HH-ÉÉÉÉ formában." + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:101 +msgid "Please enter a valid display name!" +msgstr "Kérem, adjon meg érvényes megjelenített nevet!" + +#: ../lib/modules/sambaSamAccount.inc:107 +msgid "Please enter a valid drive letter." +msgstr "Kérem, adjon meg érvényes meghajtó-betűjelet!" + +#: ../lib/modules/zarafaGroup.inc:137 +#: ../lib/modules/zarafaGroup.inc:138 +#: ../lib/modules/inetOrgPerson.inc:59 +#: ../lib/modules/inetOrgPerson.inc:60 +msgid "Please enter a valid email address!" +msgstr "Kérem, adjon meg érvényes email címet!" + +#: ../lib/modules/zarafaGroup.inc:139 +#: ../lib/modules/zarafaGroup.inc:140 +msgid "Please enter a valid email alias." +msgstr "Kérem, adjon meg érvényes email álnevet." + +#: ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:70 +msgid "Please enter a valid employee type!" +msgstr "Kérem adjon meg érvényes alkalmazott-típust!" + +#: ../lib/modules/inetOrgPerson.inc:57 +#: ../lib/modules/inetOrgPerson.inc:58 +msgid "Please enter a valid fax number!" +msgstr "Kérem, adjon érvényes fax-számot!" + +#: ../lib/lists.inc:222 +msgid "Please enter a valid filter. Only letters, numbers and \" _*$.-\" are allowed." +msgstr "Kérem, adjon meg érvényes szűrőt. Csak betűk, számok és a \" _*$.-\" karakterek használhatóak." + +#: ../lib/modules/sambaSamAccount.inc:111 +msgid "Please enter a valid group name!" +msgstr "Kérem, adjon meg érvényes csoportnevet!" + +#: ../lib/modules/inetOrgPerson.inc:67 +#: ../lib/modules/inetOrgPerson.inc:68 +msgid "Please enter a valid job title!" +msgstr "Kérem, adjon meg érvényes beosztás-megnevezést!" + +#: ../lib/modules/eduPerson.inc:223 +msgid "Please enter a valid list of affiliations." +msgstr "Kérem, adjon meg érvényes kapcsolati listát." + +#: ../lib/modules/hostObject.inc:104 +msgid "Please enter a valid list of host names." +msgstr "Kérem, adjon meg érvényes gazdanév-listát." + +#: ../lib/modules/inetOrgPerson.inc:55 +#: ../lib/modules/inetOrgPerson.inc:56 +msgid "Please enter a valid mobile number!" +msgstr "Kérem, adjon meg érvényes mobiltelefonszámot!" + +#: ../lib/modules/zarafaServer.inc:124 +#: ../lib/modules/zarafaServer.inc:125 +msgid "Please enter a valid path." +msgstr "Kérem, adjon meg érvényes elérési útvonalat (path)." + +#: ../lib/modules/zarafaServer.inc:120 +#: ../lib/modules/zarafaServer.inc:121 +#: ../lib/modules/zarafaServer.inc:122 +#: ../lib/modules/zarafaServer.inc:123 +msgid "Please enter a valid port number." +msgstr "Kérem, adjon meg érvényes port számot." + +#: ../lib/modules/inetOrgPerson.inc:63 +#: ../lib/modules/inetOrgPerson.inc:64 +msgid "Please enter a valid postal address!" +msgstr "Kérem, adjon meg érvényes levelezési címet!" + +#: ../lib/modules/inetOrgPerson.inc:65 +#: ../lib/modules/inetOrgPerson.inc:66 +msgid "Please enter a valid postal code!" +msgstr "Kérem, adjon meg érvényes irányítószámot!" + +#: ../lib/modules/eduPerson.inc:221 +msgid "Please enter a valid primary affiliation." +msgstr "Kérem, adjon meg érvényes elsődleges kapcsolatot." + +#: ../lib/modules/eduPerson.inc:222 +msgid "Please enter a valid scoped affiliation." +msgstr "Kérem, adjon meg érvényes célzott kapcsolatot." + +#: ../lib/modules/imapAccess.inc:133 +msgid "Please enter a valid server name where the mailboxes reside." +msgstr "Kérem, adjon érvényes szerver nevet, ahol a postafiókok vannak." + +#: ../lib/modules/inetOrgPerson.inc:61 +#: ../lib/modules/inetOrgPerson.inc:62 +msgid "Please enter a valid street name!" +msgstr "Kérem, adjon meg érvényes utcanévet!" + +#: ../lib/modules/inetOrgPerson.inc:51 +#: ../lib/modules/inetOrgPerson.inc:52 +#: ../lib/modules/inetOrgPerson.inc:53 +#: ../lib/modules/inetOrgPerson.inc:54 +msgid "Please enter a valid telephone number!" +msgstr "Kérem, adjon meg érvényes telefonszámot!" + +#: ../lib/modules/posixGroup.inc:575 +#: ../lib/modules/posixAccount.inc:736 +#, php-format +msgid "Please enter a value between %s and %s!" +msgstr "Kérem adjon meg %s és %s közötti értéket!" + +#: ../lib/modules/kolabUser.inc:270 +#: ../lib/modules/imapAccess.inc:157 +#, php-format +msgid "Please enter an email address on this page: %s" +msgstr "Kérem, adjon meg e-mail címet ezen az oldalon: %s" + +#: ../lib/modules/sudoRole.inc:227 +#: ../lib/modules/sudoRole.inc:228 +msgid "Please enter only ASCII characters for the commands." +msgstr "Kérem, hogy a parancsokhoz csak ASCII karaktereket adjon meg." + +#: ../lib/modules/sudoRole.inc:225 +#: ../lib/modules/sudoRole.inc:226 +msgid "Please enter only ASCII characters for the host names." +msgstr "Kérem, hogy a gazdaállomások nevéhez csak ASCII karaktereket adjon meg." + +#: ../lib/modules/sudoRole.inc:233 +#: ../lib/modules/sudoRole.inc:234 +msgid "Please enter only ASCII characters for the options." +msgstr "Kérem, hogy a beállításokhoz csak ASCII karaktereket adjon meg." + +#: ../lib/modules/sudoRole.inc:231 +#: ../lib/modules/sudoRole.inc:232 +msgid "Please enter only ASCII characters for the run groups." +msgstr "Kérem, hogy a futtató csoportokhoz csak ASCII karaktereket adjon meg." + +#: ../lib/modules/sudoRole.inc:229 +#: ../lib/modules/sudoRole.inc:230 +msgid "Please enter only ASCII characters for the run users." +msgstr "Kérem, hogy a futtató felhasználókhoz csak ASCII karaktereket adjon meg." + +#: ../lib/modules/device.inc:122 +#: ../lib/modules/device.inc:123 +msgid "Please enter only ASCII characters for the serial number." +msgstr "Kérem, hogy a sorozatszámhoz csak ASCII karaktereket adjon meg." + +#: ../lib/modules/sudoRole.inc:223 +#: ../lib/modules/sudoRole.inc:224 +msgid "Please enter only ASCII characters for the user names." +msgstr "Kérem, hogy a felhasználónevekhez csak ASCII karaktereket adjon meg." + +#: ../lib/modules/ddns.inc:101 +msgid "Please enter the IP address of your DNS server." +msgstr "Kérem, adja meg DNS szerverének IP-címét!" + +#: ../help/help.inc:113 +msgid "Please enter the LDAP suffix where LAM should start to search for users. The LDAP filter needs to match the given user name to exactly one DN. The value \"%USER%\" will be replaced by the user name from the login page." +msgstr "Kérem, adja meg az LDAP utótagot, ahol a LAM a felhasználók keresését kezdheti. Az LDAP szűrő a megadott felhasználó nevet pontosan egy DN-hez kell illessze. A \"%USER%\" érték a bejelentkezési oldalon szereplő felhasználó névvel lesz helyettesítve." + +#: ../lib/modules/asteriskVoicemail.inc:204 +msgid "Please enter the account context." +msgstr "Kérem, hogy adja meg a fiók környezetét." + +#: ../lib/modules.inc:1210 +msgid "Please enter the account information on the other pages first." +msgstr "Kérem, elõbb a többi oldalon adja meg a fiók adatait." + +#: ../lib/modules/asteriskExtension.inc:193 +msgid "Please enter the application data." +msgstr "Kérem, adja meg az alkalmazási adatot." + +#: ../lib/modules/asteriskExtension.inc:192 +msgid "Please enter the application." +msgstr "Kérem, adja meg az alkalmazást." + +#: ../help/help.inc:53 +msgid "Please enter the configuration password. This is NOT your LDAP password. It is stored in your .conf-file. If this is the first time you log in, enter \"lam\"." +msgstr "Kérem adja meg a beállítást védő jelszót. Ez NEM az ön LDAP jelszava. Ez az ön .conf-fájljában tárolódik. Ha most lép be először, akkor az \"lam\"-et használja." + +#: ../lib/modules/asteriskAccount.inc:170 +#: ../lib/modules/asteriskExtension.inc:194 +msgid "Please enter the extension context." +msgstr "Kérem, hogy adja meg a kiterjesztés környezetét." + +#: ../lib/modules/asteriskExtension.inc:195 +msgid "Please enter the extension name." +msgstr "Kérem, adja meg a kiterjesztés nevét." + +#: ../lib/modules/asteriskAccount.inc:173 +msgid "Please enter the host name." +msgstr "Kérem, adja meg a gazdaállomás nevét." + +#: ../lib/modules/customScripts.inc:53 +msgid "Please enter the list of scripts which should be run. Each line has the following format: [account type] [action] [script and arguments]" +msgstr "Kérem, adja meg a futtatni kívánt szkriptek listáját. Minden sor formátuma a következő: [fiók típusa] [teendő] [szkript és argumentumok]" + +#: ../lib/modules/customScripts.inc:66 +msgid "Please enter the list of scripts which should be run. Each line has the following format: [action] [script and arguments]" +msgstr "Kérem, adja meg a futtatni kívánt szkriptek listáját. Minden sor formátuma a következő: [teendő] [szkript és argumentumok]" + +#: ../lib/modules/nisObject.inc:59 +msgid "Please enter the mapping entry (e.g. \"-fstype=nfs,rw server:/projects\")." +msgstr "Kérem, adja meg a térkép bejegyzést (pl. \"-fstype=nfs,rw server:/projects\")." + +#: ../lib/modules/nisObject.inc:63 +msgid "Please enter the mapping name for this entry (e.g. auto.home)." +msgstr "Kérem, adja meg a bejegyzés térkép szerinti elnevezését (pl. auto.home)." + +#: ../help/help.inc:129 +msgid "Please enter the master configuration password. This is NOT your LDAP password. It is stored in your config.cfg file. If this is the first time you log in, enter \"lam\"." +msgstr "Kérem, adja meg a mester beállításokat védő jelszót. Ez NEM az ön LDAP jelszava. Ez az ön config.cfg fájljában tárolódik. Ha most lép be először, akkor az \"lam\"-et használja." + +#: ../templates/config/mainlogin.php:135 +msgid "Please enter the master password to change the general preferences:" +msgstr "Kérem adja meg a mesterjelszót az általános beállítások módosításához:" + +#: ../help/help.inc:117 +msgid "Please enter the name of the new profile and the password to change its settings. Profile names may contain letters, numbers and -/_." +msgstr "Kérem adja meg az új profil nevét és a beállítások megváltoztatásához szükséges jelszót. A profilnevek betűket, számokat és -/_ karaktereket tartalmazhatnak. " + +#: ../help/help.inc:119 +msgid "Please enter the new name of the profile. The name may contain letters, numbers and -/_." +msgstr "Kérem adja meg az új profilnevet. A név betűket, számokat és a -/_ karaktereket tartalmazhatja." + +#: ../lib/modules/asteriskAccount.inc:96 +#: ../lib/modules/posixAccount.inc:371 +msgid "Please enter the password which you want to set for this account." +msgstr "Kérem, adja meg az ehhez a fiókhoz szánt jelszót." + +#: ../help/help.inc:159 +msgid "Please enter the password which you want to set for this account. You may also generate a random password (12 characters) which will be displayed on your screen." +msgstr "Kérem, adja meg a fiókhoz beállítani kívánt jelszót. Véletlenszerű jelszót is generálhat (12 karakter), mely megjelenik az Ön képernyőjén. " + +#: ../lib/modules/posixAccount.inc:342 +msgid "Please enter the path to the user's home directory." +msgstr "Kérem, adja meg a felhasználó home könyvtárának elérési útvonalát!" + +#: ../lib/modules/zarafaServer.inc:62 +msgid "Please enter the port number for (unencrypted) HTTP connections." +msgstr "Kérem, adja meg a port számát a (titkosítatlan) HTTP kapcsolatokhoz." + +#: ../lib/modules/zarafaServer.inc:66 +msgid "Please enter the port number for encrypted connections." +msgstr "Kérem, adja meg a port számát a titkosítatlan kapcsolatokhoz." + +#: ../lib/modules/asteriskExtension.inc:196 +msgid "Please enter the priority." +msgstr "Kérem, adja meg a prioritást." + +#: ../lib/modules/quota.inc:146 +msgid "Please enter the quota settings for this mount point. The syntax is: {soft block limit},{hard block limit},{soft inode limit},{hard inode limit}" +msgstr "Kérem, adja meg a csatolási pont kvótaértékeit! Szintaxis: {lágy blokk határ},{kemény blokk határ},{lágy inode határ},{kemény inode határ}" + +#: ../templates/lists/changePassword.php:349 +#: ../lib/modules/posixAccount.inc:77 +msgid "Please enter the same password in both password fields." +msgstr "Kérem, egyező jelszót írjon a két jelszó-mezőbe. " + +#: ../lib/modules/sambaSamAccount.inc:348 +msgid "Please enter the time limit in minutes. 0 means unlimited." +msgstr "Kérem, hogy az időkorlátot percekben adja meg. A 0 korlátlan időt jelent." + +#: ../templates/selfService/adminLogin.php:127 +msgid "Please enter your master configuration password to change the self service profile:" +msgstr "Kérem, adja meg a mesterbeállításokat védő jelszót az önkiszolgáló profil módosításához:" + +#: ../templates/config/conflogin.php:123 +msgid "Please enter your password to change the server preferences:" +msgstr "Kérem, adja meg a jelszót a szerver beállításainak módosításához:" + +#: ../lib/modules/ldapPublicKey.inc:63 +msgid "Please enter your public SSH key." +msgstr "Kérem, adja meg nyilvános SSH-kulcsát." + +#: ../lib/modules/range.inc:394 +#: ../lib/modules/fixed_ip.inc:324 +msgid "Please fill out the DHCP settings first." +msgstr "Kérem, hogy először a DHCP beállításokat adja meg!" + +#: ../templates/masscreate.php:232 +msgid "Please provide a CSV formated file with your account data. The cells in the first row must be filled with the column identifiers. The following rows represent one account for each row." +msgstr "Kérem, adjon meg fiókjának adatait tartalmazó, CSV formátumú fájlt. Az első sor celláit az oszlopok azonosítóival kell kitölteni. A következő sorok egyenként egy-egy fiókot jelentenek." + +#: ../templates/massBuildAccounts.php:210 +msgid "Please provide a file to upload." +msgstr "Kérem, adjon meg egy fájlt a feltöltéshez." + +#: ../lib/modules/inetOrgPerson.inc:548 +msgid "Please select an image file to upload. It must be in JPG format (.jpg/.jpeg)." +msgstr "Kérem, válasszon a feltöltéshez egy kép fájlt. Ennek JPG formában kell lennie (.jpg/.jpeg)." + +#: ../help/help.inc:135 +msgid "Please select your prefered log level. Messages with a lower level will not be logged." +msgstr "Kérem, válassza ki a kívánt naplózási szintet. Ennél alacsonyabb szintű üzenetek nem kerülnek a naplóba." + +#: ../lib/modules/asteriskVoicemail.inc:215 +msgid "Please set the voicemail password with \"Set password\" before saving." +msgstr "Kérem, állítsa be mentés előtt a hangposta jelszavát a \"Jelszó beállítása\" használatával." + +#: ../lib/modules.inc:1165 +#, php-format +msgid "Please set up all required attributes on page: %s" +msgstr "Kérem, állítsa be az összes szükséges attribútumot a következő oldalon: %s" + +#: ../templates/config/profmanage.php:182 +#: ../templates/selfService/profManage.php:144 +msgid "Please set up your master configuration file (config/config.cfg) first!" +msgstr "Kérem, először állítsa be a mesterbeállítási fájlját (config/config.cfg) !" + +#: ../lib/modules/dhcp_settings.inc:503 +#: ../lib/modules/ddns.inc:336 +msgid "Please set your LDAP suffix to an LDAP entry with object class \"dhcpServer\"." +msgstr "Kérem, adja meg az Ön LDAP utótagját egy \"dhcpServer\" objektum osztályú LDAP bejegyzéshez." + +#: ../lib/modules/kolabUser.inc:230 +msgid "Policy list has invalid format!" +msgstr "Az irányelv lista érvénytelen formájú!" + +#: ../templates/pdfedit/pdfpage.php:539 +#: ../templates/pdfedit/pdfpage.php:549 +#: ../templates/pdfedit/pdfpage.php:559 +#: ../templates/pdfedit/pdfpage.php:574 +msgid "Position" +msgstr "Pozíció" + +#: ../templates/masscreate.php:270 +#: ../lib/modules/customScripts.inc:112 +#: ../lib/modules/customScripts.inc:114 +#: ../lib/modules/customScripts.inc:116 +#: ../lib/modules/sambaGroupMapping.inc:442 +msgid "Possible values" +msgstr "Lehetséges értékek" + +#: ../lib/modules/inetOrgPerson.inc:122 +#: ../lib/modules/inetOrgPerson.inc:183 +#: ../lib/modules/inetOrgPerson.inc:314 +#: ../lib/modules/inetOrgPerson.inc:419 +#: ../lib/modules/inetOrgPerson.inc:511 +#: ../lib/modules/inetOrgPerson.inc:512 +#: ../lib/modules/inetOrgPerson.inc:854 +#: ../lib/modules/inetOrgPerson.inc:1035 +#: ../lib/modules/inetOrgPerson.inc:1450 +msgid "Post office box" +msgstr "Postaláda" + +#: ../lib/modules/inetOrgPerson.inc:63 +#: ../lib/modules/inetOrgPerson.inc:121 +#: ../lib/modules/inetOrgPerson.inc:191 +#: ../lib/modules/inetOrgPerson.inc:306 +#: ../lib/modules/inetOrgPerson.inc:431 +#: ../lib/modules/inetOrgPerson.inc:519 +#: ../lib/modules/inetOrgPerson.inc:874 +#: ../lib/modules/inetOrgPerson.inc:1037 +#: ../lib/modules/inetOrgPerson.inc:1436 +msgid "Postal address" +msgstr "Levelezési cím" + +#: ../lib/modules/inetOrgPerson.inc:520 +msgid "Postal address, city" +msgstr "Levelezési cím, településnév" + +#: ../lib/modules/inetOrgPerson.inc:65 +#: ../lib/modules/inetOrgPerson.inc:122 +#: ../lib/modules/inetOrgPerson.inc:185 +#: ../lib/modules/inetOrgPerson.inc:298 +#: ../lib/modules/inetOrgPerson.inc:422 +#: ../lib/modules/inetOrgPerson.inc:515 +#: ../lib/modules/inetOrgPerson.inc:516 +#: ../lib/modules/inetOrgPerson.inc:859 +#: ../lib/modules/inetOrgPerson.inc:1036 +#: ../lib/modules/inetOrgPerson.inc:1443 +msgid "Postal code" +msgstr "Irányítószám" + +#: ../help/help.inc:83 +msgid "Predefined values" +msgstr "Előre meghatározott értékek" + +#: ../lib/modules/imapAccess.inc:84 +#: ../lib/modules/imapAccess.inc:108 +msgid "Prefix for mailboxes" +msgstr "Előtag postafiókokhoz" + +#: ../lib/modules/inetOrgPerson.inc:260 +msgid "President" +msgstr "Elnök" + +#: ../lib/modules/eduPerson.inc:78 +#: ../lib/modules/eduPerson.inc:145 +#: ../lib/modules/eduPerson.inc:200 +#: ../lib/modules/eduPerson.inc:245 +#: ../lib/modules/eduPerson.inc:649 +msgid "Primary affiliation" +msgstr "Elsődleges kapcsolat" + +#: ../lib/modules/posixGroup.inc:487 +#: ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:284 +#: ../lib/modules/posixAccount.inc:303 +#: ../lib/modules/posixAccount.inc:333 +#: ../lib/modules/posixAccount.inc:362 +#: ../lib/modules/posixAccount.inc:400 +#: ../lib/modules/posixAccount.inc:955 +#: ../lib/modules/posixAccount.inc:1078 +#: ../lib/modules/posixAccount.inc:1101 +#: ../lib/modules/posixAccount.inc:1149 +msgid "Primary group" +msgstr "Elsődleges csoport" + +#: ../lib/modules/eduPerson.inc:115 +#: ../lib/modules/eduPerson.inc:183 +#: ../lib/modules/eduPerson.inc:203 +#: ../lib/modules/eduPerson.inc:217 +#: ../lib/modules/eduPerson.inc:347 +#: ../lib/modules/eduPerson.inc:673 +msgid "Primary organizational unit" +msgstr "Elsődleges szervezeti egység" + +#: ../lib/modules/eduPerson.inc:99 +#: ../lib/modules/eduPerson.inc:138 +#: ../lib/modules/eduPerson.inc:201 +#: ../lib/modules/eduPerson.inc:239 +#: ../lib/modules/eduPerson.inc:655 +msgid "Principal name" +msgstr "Felhasználónév" + +#: ../lib/modules/eduPerson.inc:213 +#: ../lib/modules/eduPerson.inc:214 +msgid "Principal name is invalid!" +msgstr "A felhasználónév érvénytelen!" + +#: ../lib/types/asteriskExt.inc:94 +#: ../lib/modules/asteriskExtension.inc:90 +#: ../lib/modules/asteriskExtension.inc:113 +#: ../lib/modules/asteriskExtension.inc:126 +#: ../lib/modules/asteriskExtension.inc:142 +#: ../lib/modules/asteriskExtension.inc:237 +#: ../lib/modules/asteriskExtension.inc:478 +msgid "Priority" +msgstr "Prioritás" + +#: ../lib/modules/inetOrgPerson.inc:552 +msgid "Private telephone number" +msgstr "Magántelefonszám" + +#: ../templates/config/profmanage.php:144 +#: ../templates/selfService/profManage.php:127 +msgid "Profile deleted." +msgstr "Profil törölve." + +#: ../templates/profedit/profilepage.php:171 +#: ../templates/profedit/profilemain.php:104 +#: ../lib/tools/profileEditor.inc:44 +msgid "Profile editor" +msgstr "Profil szerkesztő" + +#: ../templates/config/profmanage.php:52 +#: ../templates/config/profmanage.php:195 +#: ../templates/selfService/profManage.php:38 +#: ../templates/selfService/profManage.php:157 +#: ../help/help.inc:116 +#: ../help/help.inc:118 +#: ../help/help.inc:120 +#: ../help/help.inc:122 +#: ../help/help.inc:124 +msgid "Profile management" +msgstr "Profil beállítások" + +#: ../templates/config/profmanage.php:210 +#: ../templates/config/profmanage.php:259 +#: ../templates/selfService/profManage.php:172 +#: ../templates/selfService/profManage.php:225 +#: ../templates/profedit/profiledelete.php:85 +#: ../templates/profedit/profilepage.php:175 +#: ../help/help.inc:148 +msgid "Profile name" +msgstr "Profilnév" + +#: ../templates/config/profmanage.php:128 +#: ../templates/config/profmanage.php:139 +#: ../templates/selfService/profManage.php:103 +#: ../templates/selfService/profManage.php:118 +msgid "Profile name is invalid!" +msgstr "A profilnév érvénytelen!" + +#: ../templates/config/profmanage.php:223 +#: ../templates/config/profmanage.php:317 +msgid "Profile password" +msgstr "Profiljelszó" + +#: ../templates/config/profmanage.php:126 +#: ../templates/config/profmanage.php:157 +msgid "Profile passwords are different or empty!" +msgstr "A profiljelszavak különböznek vagy üresek!" + +#: ../lib/modules/sambaSamAccount.inc:89 +#: ../lib/modules/sambaSamAccount.inc:90 +#: ../lib/modules/sambaSamAccount.inc:202 +#: ../lib/modules/sambaSamAccount.inc:214 +#: ../lib/modules/sambaSamAccount.inc:286 +#: ../lib/modules/sambaSamAccount.inc:335 +#: ../lib/modules/sambaSamAccount.inc:477 +#: ../lib/modules/sambaSamAccount.inc:568 +#: ../lib/modules/sambaSamAccount.inc:1127 +#: ../lib/modules/sambaSamAccount.inc:1396 +#: ../lib/modules/sambaSamAccount.inc:1491 +#: ../lib/modules/sambaSamAccount.inc:1645 +#: ../lib/modules/sambaSamAccount.inc:1667 +msgid "Profile path" +msgstr "Profil elérési útvonala" + +#: ../lib/modules/sambaSamAccount.inc:89 +#: ../lib/modules/sambaSamAccount.inc:91 +msgid "Profile path is invalid!" +msgstr "A profil elérési útvonala érvénytelen!" + +#: ../templates/profedit/profilemain.php:107 +msgid "Profile was saved." +msgstr "Profil elmentve." + +#: ../lib/modules/zarafaServer.inc:73 +#: ../lib/modules/zarafaServer.inc:99 +#: ../lib/modules/zarafaServer.inc:111 +#: ../lib/modules/zarafaServer.inc:160 +#: ../lib/modules/zarafaServer.inc:325 +msgid "Public store" +msgstr "Nyilvános fiók" + +#: ../lib/modules/quota.inc:79 +#: ../lib/modules/quota.inc:92 +#: ../lib/modules/quota.inc:145 +#: ../lib/modules/zarafaUser.inc:419 +msgid "Quota" +msgstr "Kvóta" + +#: ../lib/modules/quota.inc:680 +#, php-format +msgid "Quota for %s on %s" +msgstr "Kvóta %s részére a %s -en." + +#: ../lib/modules/zarafaUser.inc:84 +#: ../lib/modules/zarafaUser.inc:140 +#: ../lib/modules/zarafaUser.inc:204 +#: ../lib/modules/zarafaUser.inc:302 +#: ../lib/modules/zarafaUser.inc:336 +#: ../lib/modules/zarafaUser.inc:450 +#: ../lib/modules/zarafaUser.inc:1035 +#: ../lib/modules/zarafaUser.inc:1109 +msgid "Quota hard limit" +msgstr "Kvóta kemény határa" + +#: ../lib/modules/quota.inc:62 +msgid "Quota has wrong format!" +msgstr "A kvóta formája érvénytelen!" + +#: ../lib/modules/zarafaUser.inc:72 +#: ../lib/modules/zarafaUser.inc:134 +#: ../lib/modules/zarafaUser.inc:178 +#: ../lib/modules/zarafaUser.inc:293 +#: ../lib/modules/zarafaUser.inc:426 +#: ../lib/modules/zarafaUser.inc:1017 +#: ../lib/modules/zarafaUser.inc:1100 +msgid "Quota override" +msgstr "Kvóta felülbírálása" + +#: ../lib/modules/zarafaUser.inc:80 +#: ../lib/modules/zarafaUser.inc:138 +#: ../lib/modules/zarafaUser.inc:196 +#: ../lib/modules/zarafaUser.inc:299 +#: ../lib/modules/zarafaUser.inc:334 +#: ../lib/modules/zarafaUser.inc:442 +#: ../lib/modules/zarafaUser.inc:1029 +#: ../lib/modules/zarafaUser.inc:1106 +msgid "Quota soft limit" +msgstr "Kvóta lágy határa" + +#: ../lib/modules/zarafaUser.inc:76 +#: ../lib/modules/zarafaUser.inc:136 +#: ../lib/modules/zarafaUser.inc:188 +#: ../lib/modules/zarafaUser.inc:296 +#: ../lib/modules/zarafaUser.inc:332 +#: ../lib/modules/zarafaUser.inc:434 +#: ../lib/modules/zarafaUser.inc:1023 +#: ../lib/modules/zarafaUser.inc:1103 +msgid "Quota warning limit" +msgstr "Kvóta figyelmeztetés határa" + +#: ../templates/tree/templates/creation/custom.php:62 +msgid "RDN" +msgstr "RDN" + +#: ../templates/masscreate.php:298 +#: ../templates/profedit/profilepage.php:200 +#: ../lib/modules.inc:1275 +#: ../help/help.inc:146 +msgid "RDN identifier" +msgstr "RDN azonosító" + +#: ../lib/types/host.inc:93 +msgid "RID (Windows UID)" +msgstr "RID (Windows UID)" + +#: ../lib/modules/sambaDomain.inc:90 +#: ../lib/modules/sambaDomain.inc:151 +#: ../lib/modules/sambaDomain.inc:182 +#: ../lib/modules/sambaDomain.inc:360 +#: ../lib/modules/sambaDomain.inc:365 +#: ../lib/modules/sambaDomain.inc:633 +msgid "RID base" +msgstr "RID alap" + +#: ../lib/modules/sambaDomain.inc:335 +msgid "RID settings" +msgstr "RID beállítások" + +#: ../lib/modules/range.inc:85 +#: ../lib/modules/range.inc:418 +msgid "Range from" +msgstr "Tartomány innentől" + +#: ../lib/modules/range.inc:88 +#: ../lib/modules/range.inc:430 +msgid "Range to" +msgstr "Tartomány eddig" + +#: ../lib/types/dhcp.inc:95 +#: ../lib/modules/range.inc:67 +#: ../lib/modules/range.inc:99 +#: ../lib/modules/range.inc:482 +msgid "Ranges" +msgstr "Tartományok" + +#: ../templates/config/confmain.php:298 +msgid "Read" +msgstr "Olvasás" + +#: ../templates/config/confmain.php:254 +msgid "Read only" +msgstr "Csak olvasás" + +#: ../templates/tree/templates/creation/new_ou_template.php:99 +msgid "Really create this new OU?" +msgstr "Valóban létrehozza ezt az új OU-t?" + +#: ../templates/tree/edit.php:527 +msgid "Really delete attribute?" +msgstr "Valóban törli az összes attribútumot?" + +#: ../lib/modules/nisMailAlias.inc:71 +#: ../lib/modules/nisMailAlias.inc:151 +msgid "Recipient" +msgstr "Címzett" + +#: ../lib/modules/nisMailAlias.inc:108 +#: ../lib/modules/nisMailAlias.inc:109 +msgid "Recipient is invalid!" +msgstr "A címzett érvénytelen!" + +#: ../lib/types/mailAlias.inc:92 +#: ../lib/modules/nisMailAlias.inc:75 +#: ../lib/modules/nisMailAlias.inc:89 +#: ../lib/modules/nisMailAlias.inc:97 +#: ../lib/modules/nisMailAlias.inc:286 +msgid "Recipient list" +msgstr "Címzettek listája" + +#: ../lib/modules/sambaSamAccount.inc:226 +#: ../lib/modules/sambaSamAccount.inc:365 +#: ../lib/modules/sambaSamAccount.inc:1439 +#: ../lib/modules/sambaSamAccount.inc:1719 +msgid "Reconnect if disconnected" +msgstr "Lekapcsolódás esetén újrakapcsolódás" + +#: ../templates/tree/rdelete.php:75 +msgid "Recursive delete progress" +msgstr "Rekurzív törlési művelet" + +#: ../templates/config/mainmanage.php:242 +msgid "Reenter new master password" +msgstr "Új mesterjelszó megismétlése" + +#: ../templates/config/confmain.php:366 +#: ../lib/modules/posixAccount.inc:1685 +msgid "Reenter password" +msgstr "Jelszó ismétlése" + +#: ../templates/config/profmanage.php:232 +#: ../templates/config/profmanage.php:330 +msgid "Reenter profile password" +msgstr "Profil jelszó megismétlése" + +#: ../templates/tree/edit.php:98 +#: ../lib/tree.inc:88 +#: ../lib/tree.inc:89 +#: ../lib/types/dhcp.inc:279 +#: ../lib/modules/asteriskExtension.inc:301 +#: ../lib/lists.inc:717 +msgid "Refresh" +msgstr "Frissítés" + +#: ../lib/modules/kolabUser.inc:53 +msgid "Reject if conflicts" +msgstr "Ütközés esetén visszautasítás" + +#: ../templates/tree/templates/creation/custom.php:62 +msgid "Relative distinguished name" +msgstr "Relatív megkülönböztetett név" + +#: ../templates/config/confmodules.php:289 +#: ../templates/pdfedit/pdfpage.php:461 +#: ../lib/modules/sambaSamAccount.inc:1364 +#: ../lib/modules/kolabUser.inc:895 +#: ../lib/modules/phpGroupwareUser.inc:259 +#: ../lib/modules/shadowAccount.inc:414 +#: ../lib/modules/sudoRole.inc:266 +#: ../lib/modules/sudoRole.inc:293 +#: ../lib/modules/sudoRole.inc:320 +#: ../lib/modules/sudoRole.inc:347 +#: ../lib/modules/sudoRole.inc:374 +#: ../lib/modules/sudoRole.inc:401 +#: ../lib/modules/groupOfNames.inc:160 +msgid "Remove" +msgstr "Törlés" + +#: ../lib/modules/asteriskVoicemail.inc:282 +msgid "Remove Asterisk voicemail extension" +msgstr "Asterisk hangposta kiterjesztés eltávolítása" + +#: ../lib/modules/eduPerson.inc:379 +msgid "Remove EDU person extension" +msgstr "EDU személyi kiterjesztés eltávolítása" + +#: ../lib/modules/ipHost.inc:176 +msgid "Remove IP address extension" +msgstr "IP cím kiterjesztés eltávolítása" + +#: ../lib/modules/sambaSamAccount.inc:1204 +msgid "Remove Samba 3 extension" +msgstr "Samba 3 kiterjesztés eltávolítása" + +#: ../lib/modules/shadowAccount.inc:359 +msgid "Remove Shadow account extension" +msgstr "Árnyékfiók kiterjesztés törlése" + +#: ../lib/modules/zarafaGroup.inc:206 +#: ../lib/modules/zarafaUser.inc:526 +#: ../lib/modules/zarafaServer.inc:167 +msgid "Remove Zarafa extension" +msgstr "Zarafa kiterjesztés eltávolítása" + +#: ../lib/modules/hostObject.inc:156 +msgid "Remove host extension" +msgstr "Gazdaállomás kiterjesztés eltávolítása" + +#: ../lib/modules/posixGroup.inc:201 +#: ../lib/modules/posixAccount.inc:996 +msgid "Remove password" +msgstr "Jelszó törlése" + +#: ../lib/modules/phpGroupwareGroup.inc:100 +#: ../lib/modules/phpGroupwareUser.inc:186 +msgid "Remove phpGroupWare extension" +msgstr "A phpGroupWare kiterjesztés eltávolítása" + +#: ../lib/modules/groupOfNames.inc:338 +msgid "Remove selected entries" +msgstr "A kiválasztott bejegyzések törlése" + +#: ../templates/config/conftypes.php:268 +msgid "Remove this account type" +msgstr "A fióktípus törlése" + +#: ../lib/modules/inetOrgPerson.inc:1505 +msgid "Remove/replace photo" +msgstr "Fotó eltávolítása / cseréje" + +#: ../templates/config/profmanage.php:255 +#: ../templates/selfService/profManage.php:221 +#: ../help/help.inc:118 +msgid "Rename profile" +msgstr "Profil átnevezése" + +#: ../templates/config/profmanage.php:135 +#: ../templates/selfService/profManage.php:114 +msgid "Renamed profile." +msgstr "Profil átnevezve." + +#: ../templates/lists/changePassword.php:280 +#: ../lib/modules.inc:1338 +msgid "Repeat password" +msgstr "Ismételje meg a jelszót" + +#: ../lib/modules/posixAccount.inc:69 +#: ../lib/modules/posixAccount.inc:756 +msgid "Replaced $user or $group in homedir." +msgstr "A home könyvtárban a $user vagy $group értéke átállítva." + +#: ../lib/types/ppolicyType.inc:89 +#: ../lib/modules/ppolicy.inc:120 +#: ../lib/modules/ppolicy.inc:146 +#: ../lib/modules/ppolicy.inc:262 +#: ../lib/modules/ppolicy.inc:474 +msgid "Require password change on first login" +msgstr "Jelszóváltoztatás szükséges az első belépéskor" + +#: ../templates/tree/edit.php:246 +#, php-format +msgid "Required attribute for objectClass(es) %s" +msgstr "A(z) %s objektumOsztályhoz szükséges attribútum" + +#: ../templates/tree/templates/creation/custom.php:187 +#: ../templates/schema/schema.php:381 +msgid "Required attributes" +msgstr "Szükséges attribútumok" + +#: ../lib/modules/sambaSamAccount.inc:1198 +msgid "Reset" +msgstr "Visszaállítás" + +#: ../lib/modules.inc:1431 +msgid "Reset changes" +msgstr "Módosítások visszaállítása" + +#: ../lib/modules/sambaSamAccount.inc:242 +#: ../lib/modules/sambaSamAccount.inc:1197 +msgid "Reset password" +msgstr "Jelszó visszaállítása" + +#: ../lib/modules/sambaDomain.inc:130 +#: ../lib/modules/sambaDomain.inc:192 +#: ../lib/modules/sambaDomain.inc:217 +#: ../lib/modules/sambaDomain.inc:333 +#: ../lib/modules/sambaDomain.inc:669 +msgid "Reset time after lockout" +msgstr "A kizárás feloldásáig szükséges idő" + +#: ../lib/modules/sambaDomain.inc:217 +msgid "Reset time after lockout must be are natural number." +msgstr "A kizárás feloldásához szükséges idő csak természetes szám lehet." + +#: ../lib/modules/zarafaUser.inc:455 +msgid "Resource settings" +msgstr "Forrás beállítások" + +#: ../lib/modules/ddns.inc:106 +#: ../lib/modules/ddns.inc:113 +#: ../lib/modules/ddns.inc:134 +#: ../lib/modules/ddns.inc:374 +#: ../lib/modules/ddns.inc:401 +msgid "Reverse zone names" +msgstr "Fordított (reverz) zóna nevei" + +#: ../templates/config/confmain.php:294 +#: ../help/help.inc:108 +msgid "Rights for the home directory" +msgstr "Home könyvtár jogai" + +#: ../lib/types/sudo.inc:77 +#: ../lib/modules/sudoRole.inc:55 +#: ../lib/modules/sudoRole.inc:121 +#: ../lib/modules/sudoRole.inc:171 +#: ../lib/modules/sudoRole.inc:247 +#: ../lib/modules/sudoRole.inc:682 +msgid "Role name" +msgstr "Szerepnév" + +#: ../lib/modules/zarafaUser.inc:460 +#: ../lib/modules/zarafaUser.inc:1039 +msgid "Room" +msgstr "Szoba" + +#: ../lib/modules/inetOrgPerson.inc:123 +#: ../lib/modules/inetOrgPerson.inc:195 +#: ../lib/modules/inetOrgPerson.inc:362 +#: ../lib/modules/inetOrgPerson.inc:437 +#: ../lib/modules/inetOrgPerson.inc:555 +#: ../lib/modules/inetOrgPerson.inc:884 +#: ../lib/modules/inetOrgPerson.inc:1044 +#: ../lib/modules/inetOrgPerson.inc:1457 +msgid "Room number" +msgstr "Szobaszám" + +#: ../lib/modules/inetLocalMailRecipient.inc:61 +#: ../lib/modules/inetLocalMailRecipient.inc:93 +#: ../lib/modules/inetLocalMailRecipient.inc:112 +#: ../lib/modules/inetLocalMailRecipient.inc:141 +#: ../lib/modules/inetLocalMailRecipient.inc:300 +msgid "Routing address" +msgstr "Útvonal címe" + +#: ../lib/types/sudo.inc:82 +msgid "Run group(s)" +msgstr "Futtató csoport(ok)" + +#: ../lib/modules/sudoRole.inc:79 +#: ../lib/modules/sudoRole.inc:107 +#: ../lib/modules/sudoRole.inc:158 +#: ../lib/modules/sudoRole.inc:177 +#: ../lib/modules/sudoRole.inc:186 +#: ../lib/modules/sudoRole.inc:372 +#: ../lib/modules/sudoRole.inc:699 +msgid "Run groups" +msgstr "Futtató csoportok" + +#: ../lib/types/sudo.inc:81 +msgid "Run user" +msgstr "Futtató felhasználó" + +#: ../lib/modules/sudoRole.inc:75 +#: ../lib/modules/sudoRole.inc:102 +#: ../lib/modules/sudoRole.inc:152 +#: ../lib/modules/sudoRole.inc:176 +#: ../lib/modules/sudoRole.inc:185 +#: ../lib/modules/sudoRole.inc:345 +#: ../lib/modules/sudoRole.inc:696 +msgid "Run users" +msgstr "Futtató felhasználók" + +#: ../templates/serverInfo.php:118 +msgid "SASL mechanisms" +msgstr "SASL mechanizmusok" + +#: ../templates/tests/lamdaemonTest.php:235 +msgid "SSH connection" +msgstr "SSH kapcsolat" + +#: ../templates/tests/lamdaemonTest.php:248 +msgid "SSH connection could be established." +msgstr "SSH kapcsolat létrehozható" + +#: ../lib/modules/ldapPublicKey.inc:52 +#: ../lib/modules/ldapPublicKey.inc:62 +#: ../lib/modules/ldapPublicKey.inc:66 +#: ../lib/modules/ldapPublicKey.inc:74 +#: ../lib/modules/ldapPublicKey.inc:98 +msgid "SSH public key" +msgstr "SSH nyilvános kulcs" + +#: ../lib/modules/ldapPublicKey.inc:81 +#: ../lib/modules/ldapPublicKey.inc:176 +msgid "SSH public key(s)" +msgstr "SSH nyilvános kulcsok" + +#: ../lib/modules/zarafaServer.inc:65 +#: ../lib/modules/zarafaServer.inc:87 +#: ../lib/modules/zarafaServer.inc:109 +#: ../lib/modules/zarafaServer.inc:122 +#: ../lib/modules/zarafaServer.inc:148 +#: ../lib/modules/zarafaServer.inc:315 +msgid "SSL port" +msgstr "SSL port" + +#: ../lib/modules/sambaSamAccount.inc:129 +#: ../lib/modules/sambaGroupMapping.inc:312 +msgid "Samba 3" +msgstr "Samba 3" + +#: ../lib/modules/sambaDomain.inc:203 +#: ../lib/modules/sambaDomain.inc:204 +msgid "Samba 3 domain SID is invalid!" +msgstr "A Samba 3 tartomány SID érvénytelen!" + +#: ../lib/types/smbDomain.inc:62 +msgid "Samba 3 domain entries" +msgstr "Samba 3 tartomány-bejegyzések" + +#: ../lib/modules/sambaSamAccount.inc:307 +#: ../lib/modules/sambaSamAccount.inc:311 +#: ../lib/modules/sambaSamAccount.inc:452 +#: ../lib/modules/sambaSamAccount.inc:518 +msgid "Samba RID" +msgstr "Samba RID" + +#: ../lib/modules/sambaGroupMapping.inc:339 +#: ../lib/modules/sambaGroupMapping.inc:364 +msgid "Samba RID number" +msgstr "Samba RID-érték" + +#: ../lib/modules/sambaGroupMapping.inc:333 +msgid "Samba display name" +msgstr "Samba megjelenített név" + +#: ../lib/modules/sambaDomain.inc:51 +msgid "Samba domain" +msgstr "Samba tartomány" + +#: ../lib/modules/sambaGroupMapping.inc:149 +msgid "Samba domain name" +msgstr "Samba tartománynév" + +#: ../lib/types/smbDomain.inc:53 +msgid "Samba domains" +msgstr "Samba tartományok" + +#: ../lib/modules/sambaGroupMapping.inc:324 +#: ../lib/modules/sambaGroupMapping.inc:345 +#: ../lib/modules/sambaGroupMapping.inc:372 +#: ../lib/modules/sambaGroupMapping.inc:393 +msgid "Samba group type" +msgstr "Samba csoporttípus" + +#: ../lib/modules/sambaSamAccount.inc:239 +msgid "Samba password" +msgstr "Samba jelszó" + +#: ../lib/modules/sambaSamAccount.inc:95 +#: ../lib/modules/sambaSamAccount.inc:208 +#: ../lib/modules/sambaSamAccount.inc:292 +#: ../lib/modules/sambaSamAccount.inc:295 +#: ../lib/modules/sambaSamAccount.inc:493 +#: ../lib/modules/sambaSamAccount.inc:571 +#: ../lib/modules/sambaSamAccount.inc:1138 +#: ../lib/modules/sambaSamAccount.inc:1499 +#: ../lib/modules/sambaSamAccount.inc:1648 +msgid "Samba workstations" +msgstr "Samba munkaállomások" + +#: ../lib/modules/sambaSamAccount.inc:1274 +msgid "Saturday" +msgstr "Szombat" + +#: ../templates/tree/edit.php:512 +#: ../templates/config/confmodules.php:142 +#: ../templates/config/confmain.php:175 +#: ../templates/config/moduleSettings.php:141 +#: ../templates/config/conftypes.php:160 +#: ../templates/selfService/selfServiceMain.php:126 +#: ../templates/selfService/adminMain.php:300 +#: ../templates/pdfedit/pdfpage.php:583 +#: ../templates/profedit/profilepage.php:225 +#: ../lib/modules.inc:1428 +msgid "Save" +msgstr "Mentés" + +#: ../templates/tree/export_form.php:124 +msgid "Save as file" +msgstr "Fájlként mentés" + +#: ../lib/tools/schemaBrowser.inc:44 +msgid "Schema browser" +msgstr "Sémaáttekintő" + +#: ../templates/serverInfo.php:108 +msgid "Schema suffix" +msgstr "Séma utótag" + +#: ../templates/tests/schemaTest.php:53 +#: ../templates/tests/index.php:56 +#: ../lib/tools/tests.inc:116 +msgid "Schema test" +msgstr "Séma teszt" + +#: ../lib/modules/eduPerson.inc:82 +#: ../lib/modules/eduPerson.inc:152 +#: ../lib/modules/eduPerson.inc:204 +#: ../lib/modules/eduPerson.inc:254 +#: ../lib/modules/eduPerson.inc:652 +msgid "Scoped affiliation" +msgstr "Célzott kapcsolat" + +#: ../help/help.inc:93 +msgid "Script path" +msgstr "Script elérési útvonala" + +#: ../templates/config/confmain.php:437 +msgid "Script path is invalid!" +msgstr "Script elérési útvonala érvénytelen!" + +#: ../templates/config/confmain.php:456 +msgid "Script rights are invalid!" +msgstr "Szkript jogok érvénytelenek!" + +#: ../templates/config/confmain.php:440 +msgid "Script server is invalid!" +msgstr "Script szerver érvénytelen!" + +#: ../help/help.inc:104 +msgid "Script servers" +msgstr "Szkript szerverek" + +#: ../templates/tree/export_form.php:115 +#: ../lib/export.inc:445 +#: ../lib/export.inc:515 +msgid "Search filter" +msgstr "Keresési szűrő" + +#: ../templates/tree/export_form.php:103 +#: ../lib/export.inc:444 +#: ../lib/export.inc:514 +msgid "Search scope" +msgstr "Keresés célja" + +#: ../lib/modules/asteriskExtension.inc:304 +msgid "Search tree suffix for users" +msgstr "Keresési fa utótag felhasználók részére" + +#: ../templates/pdfedit/pdfpage.php:555 +msgid "Section" +msgstr "Szekció" + +#: ../lib/modules/zarafaGroup.inc:71 +#: ../lib/modules/zarafaGroup.inc:99 +#: ../lib/modules/zarafaGroup.inc:128 +#: ../lib/modules/zarafaGroup.inc:185 +#: ../lib/modules/zarafaGroup.inc:423 +msgid "Security group" +msgstr "Biztonsági csoport" + +#: ../templates/config/mainmanage.php:195 +#: ../templates/config/confmain.php:370 +msgid "Security settings" +msgstr "Biztonsági beállítások" + +#: ../templates/help.php:91 +msgid "See also" +msgstr "Lásd még" + +#: ../lib/account.inc:635 +msgid "See the manual for instructions to solve this problem." +msgstr "A probléma megoldásához olvassa el a használati utasítást." + +#: ../templates/tree/create_form.php:77 +msgid "Select a template for the creation process" +msgstr "Válasszon sablont a létrehozási művelethez" + +#: ../lib/lists.inc:406 +msgid "Select all" +msgstr "Összes kijelölése" + +#: ../lib/modules/nisnetgroup.inc:229 +#: ../lib/modules/nisnetgroup.inc:258 +msgid "Select host" +msgstr "Válasszon gazdaállomást" + +#: ../lib/modules/zarafaUser.inc:397 +#: ../lib/modules/zarafaUser.inc:410 +#: ../lib/modules/nisnetgroup.inc:235 +#: ../lib/modules/nisnetgroup.inc:264 +msgid "Select user" +msgstr "Válasszon felhasználót" + +#: ../lib/modules/posixAccount.inc:1038 +#: ../lib/modules/nisnetgroup.inc:373 +msgid "Selected groups" +msgstr "Kiválasztott csoportok" + +#: ../templates/masscreate.php:149 +#: ../templates/config/confmodules.php:278 +msgid "Selected modules" +msgstr "Kiválasztott modulok" + +#: ../lib/modules/posixGroup.inc:240 +#: ../lib/modules/asteriskExtension.inc:308 +msgid "Selected users" +msgstr "Kiválasztott felhasználók" + +#: ../templates/selfService/adminMain.php:244 +msgid "Self service configuration" +msgstr "Az önkiszolgáló beállításai" + +#: ../templates/selfService/adminMain.php:285 +msgid "Self service configuration editor" +msgstr "Az önkiszolgáló beállításainak szerkesztése" + +#: ../templates/selfService/adminMain.php:296 +msgid "Self service login" +msgstr "Önkiszolgáló belépés" + +#: ../templates/lists/changePassword.php:257 +#: ../templates/lists/changePassword.php:289 +msgid "Send via mail" +msgstr "Küldés levélben" + +#: ../lib/modules/device.inc:58 +#: ../lib/modules/device.inc:85 +#: ../lib/modules/device.inc:110 +#: ../lib/modules/device.inc:165 +#: ../lib/modules/device.inc:388 +msgid "Serial number" +msgstr "Sorozatszám" + +#: ../templates/tests/lamdaemonTest.php:70 +msgid "Server" +msgstr "Szerver" + +#: ../templates/config/confmain.php:231 +#: ../templates/selfService/adminMain.php:331 +#: ../lib/modules/imapAccess.inc:66 +#: ../lib/modules/imapAccess.inc:95 +#: ../help/help.inc:54 +msgid "Server address" +msgstr "Szervercím" + +#: ../templates/config/confmain.php:402 +#: ../templates/selfService/adminMain.php:95 +msgid "Server address is invalid!" +msgstr "A szervercím érvénytelen!" + +#: ../templates/serverInfo.php:92 +#: ../lib/tools/serverInfo.inc:44 +msgid "Server information" +msgstr "Szerver információ" + +#: ../templates/config/confmain.php:291 +msgid "Server list" +msgstr "Szerver lista" + +#: ../templates/login.php:372 +msgid "Server profile" +msgstr "Szerverprofil" + +#: ../templates/config/confmain.php:260 +#: ../templates/selfService/adminMain.php:328 +msgid "Server settings" +msgstr "Szerver beállítások" + +#: ../templates/config/mainmanage.php:193 +#: ../help/help.inc:132 +msgid "Session timeout" +msgstr "Session időtúllépés" + +#: ../lib/modules/device.inc:184 +#: ../lib/modules/aliasEntry.inc:102 +msgid "Set" +msgstr "Beállítás" + +#: ../lib/modules.inc:1321 +#: ../lib/modules.inc:1435 +msgid "Set password" +msgstr "Jelszó beállítása" + +#: ../lib/modules/posixAccount.inc:181 +#: ../lib/modules/posixAccount.inc:313 +msgid "Set primary group as memberUid" +msgstr "Az elsődleges csoport beállítása memberUid-ként." + +#: ../templates/config/profmanage.php:313 +#: ../help/help.inc:122 +msgid "Set profile password" +msgstr "A profilhoz tartozó jelszó beállítása" + +#: ../lib/modules.inc:1364 +msgid "Set random password" +msgstr "Véletlenszerű jelszó beállítása" + +#: ../templates/lists/changePassword.php:267 +msgid "Set specific password" +msgstr "Meghatározott jelszó beállítása" + +#: ../lib/modules/posixGroup.inc:402 +msgid "Sets the group password." +msgstr "A csoportjelszó beállítása" + +#: ../lib/modules/shadowAccount.inc:84 +msgid "Shadow" +msgstr "Árnyék (Shadow)" + +#: ../lib/modules/sambaSamAccount.inc:224 +#: ../lib/modules/sambaSamAccount.inc:359 +#: ../lib/modules/sambaSamAccount.inc:1423 +#: ../lib/modules/sambaSamAccount.inc:1703 +msgid "Shadowing" +msgstr "Árnyékolás (Shadowing)" + +#: ../lib/modules/zarafaUser.inc:96 +#: ../lib/modules/zarafaUser.inc:144 +#: ../lib/modules/zarafaUser.inc:239 +#: ../lib/modules/zarafaUser.inc:308 +#: ../lib/modules/zarafaUser.inc:502 +#: ../lib/modules/zarafaUser.inc:1068 +msgid "Shared store only" +msgstr "Csak megosztott fiók" + +#: ../lib/modules/ddns.inc:88 +msgid "Should DDNS (Dynamic DNS) be activated?" +msgstr "Bekapcsoljam a DDNS-t (Dinamikus DNS)?" + +#: ../lib/modules/ddns.inc:91 +msgid "Should fix IP addresses be added to the DNS server?" +msgstr "Hozzáadjam a fix IP-címeket a DNS szerverhez?" + +#: ../templates/massBuildAccounts.php:201 +msgid "Show LDIF file" +msgstr "Mutassa az LDIF fájlt" + +#: ../templates/tree/edit.php:104 +msgid "Show internal attributes" +msgstr "A belső attribútumok mutatása" + +#: ../lib/modules/asteriskExtension.inc:300 +msgid "Show only Asterisk accounts" +msgstr "Csak Asterisk fiókok megjelenítése" + +#: ../lib/types/group.inc:299 +msgid "Show primary group members as normal group members" +msgstr "Az elsődleges csoporttagok normál csoporttagokként mutatása" + +#: ../templates/schema/schema.php:192 +msgid "Single valued" +msgstr "Egy értékekkel ellátott" + +#: ../lib/modules/quota.inc:616 +msgid "Soft block" +msgstr "Lágy blokk" + +#: ../lib/modules/quota.inc:105 +#: ../lib/modules/quota.inc:388 +#: ../lib/modules/quota.inc:489 +msgid "Soft block limit" +msgstr "Lágy blokk határa" + +#: ../lib/modules/quota.inc:106 +msgid "Soft block limit." +msgstr "Lágy blokk határa." + +#: ../lib/modules/quota.inc:618 +msgid "Soft inode" +msgstr "Lágy inode" + +#: ../lib/modules/quota.inc:128 +msgid "Soft inode (files) limit." +msgstr "Lágy inode (fájlok) határa." + +#: ../lib/modules/quota.inc:127 +#: ../lib/modules/quota.inc:392 +#: ../lib/modules/quota.inc:491 +msgid "Soft inode limit" +msgstr "Lágy inode határa" + +#: ../lib/modules/imapAccess.inc:85 +msgid "Some IMAP servers store mailboxes with a prefix (e.g. \"user\" for Cyrus which results in \"user.username\")." +msgstr "Néhány IMAP szerver a postafiókokat előtaggal tárolja (pl. \"felhasznalo\" a Cyrus-ban \"felhasznalo.felhasznalonev\" lesz)." + +#: ../templates/tree/edit.php:138 +#, php-format +msgid "Some attributes (%s) were modified and are highlighted below." +msgstr "Néhány attribútum (%s) módosult, ezek vannak lejjebb kiemelve." + +#: ../lib/modules.inc:1164 +msgid "Some required information is missing" +msgstr "Valamilyen szükséges információ hiányzik" + +#: ../templates/help.php:121 +#, php-format +msgid "Sorry this help id ({bold}%s{endbold}) is not available for this module ({bold}%s{endbold})." +msgstr "Sajnos ez a súgó-azonosító ({bold}%s{endbold}) nem áll rendelkezésreehhez a modulhoz({bold}%s{endbold})." + +#: ../templates/help.php:135 +#, php-format +msgid "Sorry this help number ({bold}%d{endbold}) is not available." +msgstr "Sajnos ez a súgó-szám ({bold}%d{endbold}) nem áll rendelkezésre." + +#: ../lib/modules/sambaSamAccount.inc:304 +#: ../lib/modules/sambaSamAccount.inc:1175 +msgid "Special user" +msgstr "Különleges felhasználó" + +#: ../lib/modules/zarafaGroup.inc:72 +msgid "Specifies if this group has security possibilities." +msgstr "Meghatározza, hogy a csoport végezhet -e biztonsági beállításokat." + +#: ../lib/modules/zarafaServer.inc:74 +msgid "Specifies if this server contains the public store. This may be changed only for new entries." +msgstr "Meghatározza, hogy ezen a szerveren van -e a nyilvános fiók. Csak új bejegyzéseknél változtatható." + +#: ../lib/modules/ppolicy.inc:125 +msgid "Specifies if users are allowed to change their own passwords or not." +msgstr "Meghatározza, hogy a felhasználók megváltoztathatják -e jelszavukat." + +#: ../lib/modules/zarafaUser.inc:105 +msgid "Specifies the capacity of this resource." +msgstr "A forrás kapacitásának meghatározása." + +#: ../lib/modules/ppolicy.inc:109 +msgid "Specifies the maximum number of seconds before a password is due to expire that expiration warning messages will be returned to a user." +msgstr "Meghatározza a másodpercek maximális számát a jelszó lejárta előtt, amikor a felhasználó figyelmeztető üzenetet kap." + +#: ../lib/modules/ppolicy.inc:113 +msgid "Specifies the minimum number of characters that will be accepted in a password." +msgstr "Meghatározza a jelszavakhoz megkövetelt minimális karakterszámot." + +#: ../lib/modules/ppolicy.inc:101 +msgid "Specifies the number of consecutive failed login attempts after which the password may not be used to login." +msgstr "Meghatározza az egymást követő sikertelen bejelentkezések számát, mely után a jelszó nem használható bejelentkezéshez." + +#: ../lib/modules/ppolicy.inc:85 +msgid "Specifies the number of previously used passwords which should be saved in the password history. New passwords can only be set if they are not in the password history." +msgstr "Meghatározza az előzetesen használt jelszavak számát, melyek a jelszó-előzményekben kerülnek mentésre. Csak olyan új jelszavak használhatóak, melyek nem szerepelnek a jelszó-előzményekben." + +#: ../lib/modules/ppolicy.inc:105 +msgid "Specifies the number of seconds after which old consecutive failed login attempts are purged from the failure counter, even though no successful authentication has occurred." +msgstr "Meghatározza a másodpercek számát, mely után a régi egymást követő, sikertelen bejelentkezési kísérletek törlésre kerülnek a hibaszámlálóból, akkor is, ha nem történt sikeres azonosítás." + +#: ../lib/modules/ppolicy.inc:97 +msgid "Specifies the number of seconds during which the password cannot be used to login due to too many consecutive failed bind attempts." +msgstr "Meghatározza a másodpercek számát, mely alatt a jelszó nem használható bejelentkezéshez a túl magas számú, egymást követő sikertelen kapcsolódási kísérlet miatt." + +#: ../lib/modules/eduPerson.inc:83 +msgid "Specifies the person's affiliation within a particular security domain in broad categories such as student, faculty, staff, alum, etc." +msgstr "Meghatározza a személy kapcsolatát egy bizonyos biztonsági tartományban olyan tág kategóriákon belül, mint tanuló, tanszék, személyzet, öregdiák, stb." + +#: ../lib/modules/eduPerson.inc:79 +msgid "Specifies the person's primary relationship to the institution in broad categories such as student, faculty, staff, alum, etc." +msgstr "Meghatározza a személy elsődleges kapcsolatát az intézményhez, olyan tág kategóriákon belül, mint tanuló, tanszék, személyzet, öregdiák, stb." + +#: ../lib/modules/eduPerson.inc:91 +#: ../lib/modules/eduPerson.inc:95 +msgid "Specifies the person's relationship(s) to the institution in broad categories such as student, faculty, staff, alum, etc." +msgstr "Meghatározza a személy kapcsolatait az intézményhez, olyan tág kategóriákon belül, mint tanuló, tanszék, személyzet, öregdiák, stb." + +#: ../lib/modules/zarafaUser.inc:93 +msgid "Specifies whether the user is an admin." +msgstr "Meghatározza, hogy a felhasználó adminisztrátor -e." + +#: ../lib/modules/ppolicy.inc:129 +msgid "Specifies whether the user's existing password must be sent along with their new password when changing a password. Attention, LAM does not support password changes which require the old password." +msgstr "Meghatározza, hogy a felhasználó jelenlegi jelszavát el kell -e küldeni az új jelszóval a jelszóváltás során. Figyelem, a LAM nem támogatja az olyan jelszóváltást, melyhez a régi jelszó is szükséges." + +#: ../lib/modules/inetOrgPerson.inc:124 +#: ../lib/modules/inetOrgPerson.inc:135 +#: ../lib/modules/inetOrgPerson.inc:189 +#: ../lib/modules/inetOrgPerson.inc:386 +#: ../lib/modules/inetOrgPerson.inc:428 +#: ../lib/modules/inetOrgPerson.inc:567 +#: ../lib/modules/inetOrgPerson.inc:869 +#: ../lib/modules/inetOrgPerson.inc:1049 +#: ../lib/modules/inetOrgPerson.inc:1471 +msgid "State" +msgstr "Állam" + +#: ../templates/pdfedit/pdfpage.php:505 +#: ../templates/pdfedit/pdfpage.php:507 +msgid "Static text" +msgstr "Statikus szöveg" + +#: ../templates/tree/templates/creation/custom.php:54 +msgid "Step 1 of 2: Name and object class(es)" +msgstr "Első lépés a kettőből: Név és objektum osztály" + +#: ../templates/tree/templates/creation/custom.php:177 +msgid "Step 2 of 2: Specify attributes and values" +msgstr "Második lépés a kettőből: Az attribútumok és értékek meghatározása" + +#: ../lib/modules/inetOrgPerson.inc:237 +msgid "Steve" +msgstr "István" + +#: ../lib/modules/sambaSamAccount.inc:396 +#: ../lib/modules/posixAccount.inc:200 +#: ../lib/modules/inetOrgPerson.inc:1099 +#: ../lib/modules/asteriskVoicemail.inc:165 +msgid "Steve Miller" +msgstr "Molnár István" + +#: ../lib/modules/posixAccount.inc:261 +msgid "Steve Miller,Room 2.14,123-123-1234,123-123-1234" +msgstr "Molnár István, Szobaszám 2.14,123-123-1234,123-123-1234" + +#: ../lib/modules/eduPerson.inc:167 +msgid "Steve, Stevo" +msgstr "István, Pista" + +#: ../lib/modules/inetOrgPerson.inc:61 +#: ../lib/modules/inetOrgPerson.inc:121 +#: ../lib/modules/inetOrgPerson.inc:181 +#: ../lib/modules/inetOrgPerson.inc:290 +#: ../lib/modules/inetOrgPerson.inc:416 +#: ../lib/modules/inetOrgPerson.inc:507 +#: ../lib/modules/inetOrgPerson.inc:508 +#: ../lib/modules/inetOrgPerson.inc:849 +#: ../lib/modules/inetOrgPerson.inc:1034 +#: ../lib/modules/inetOrgPerson.inc:1429 +msgid "Street" +msgstr "Utca" + +#: ../templates/pdfedit/pdfpage.php:442 +msgid "Structure name" +msgstr "Szerkezet neve" + +#: ../templates/tree/export_form.php:76 +msgid "Sub (entire subtree)" +msgstr "Sub (az egész al-fa)" + +#: ../lib/types/netgroup.inc:93 +#: ../lib/modules/nisnetgroup.inc:81 +#: ../lib/modules/nisnetgroup.inc:116 +#: ../lib/modules/nisnetgroup.inc:131 +#: ../lib/modules/nisnetgroup.inc:198 +#: ../lib/modules/nisnetgroup.inc:372 +#: ../lib/modules/nisnetgroup.inc:576 +msgid "Subgroups" +msgstr "Alcsoportok" + +#: ../templates/config/confmain.php:327 +#: ../help/help.inc:194 +msgid "Subject" +msgstr "Tárgy" + +#: ../lib/types/dhcp.inc:94 +#: ../lib/modules/dhcp_settings.inc:127 +#: ../lib/modules/dhcp_settings.inc:171 +#: ../lib/modules/dhcp_settings.inc:185 +#: ../lib/modules/dhcp_settings.inc:202 +#: ../lib/modules/dhcp_settings.inc:514 +#: ../lib/modules/dhcp_settings.inc:609 +msgid "Subnet" +msgstr "Alhálózat" + +#: ../lib/modules/dhcp_settings.inc:160 +#: ../lib/modules/dhcp_settings.inc:179 +#: ../lib/modules/dhcp_settings.inc:196 +#: ../lib/modules/dhcp_settings.inc:254 +#: ../lib/modules/dhcp_settings.inc:546 +#: ../lib/modules/dhcp_settings.inc:617 +msgid "Subnet mask" +msgstr "Alhálózati maszk" + +#: ../templates/schema/schema.php:174 +msgid "Substring Rule" +msgstr "Substring szabály" + +#: ../templates/tree/rdelete.php:139 +#: ../templates/tree/rdelete.php:151 +msgid "Success" +msgstr "Sikerült" + +#: ../lib/modules/sudoRole.inc:38 +msgid "Sudo role" +msgstr "Sudo szerep" + +#: ../lib/types/sudo.inc:48 +msgid "Sudo role management" +msgstr "Sudo szerep kezelés" + +#: ../lib/types/sudo.inc:39 +msgid "Sudo roles" +msgstr "Sudo szerepek" + +#: ../lib/lists.inc:660 +#: ../lib/modules.inc:1257 +msgid "Suffix" +msgstr "Utótag" + +#: ../lib/modules/sambaSamAccount.inc:1274 +msgid "Sunday" +msgstr "Vasárnap" + +#: ../templates/lists/changePassword.php:193 +#: ../lib/modules/asteriskAccount.inc:78 +#: ../lib/modules/asteriskVoicemail.inc:77 +msgid "Sync Asterisk password with Unix password" +msgstr "Az Asterisk jelszó szinkronizálása a Unix jelszóval" + +#: ../templates/lists/changePassword.php:196 +msgid "Sync Asterisk voicemail password with Unix password" +msgstr "Az Asterisk hangposta jelszó szinkronizálása a Unix jelszóval" + +#: ../templates/lists/changePassword.php:184 +#: ../lib/modules/sambaSamAccount.inc:230 +msgid "Sync Samba LM password with Unix password" +msgstr "A Samba LM jelszavának szinkronizálása a Unix jelszóval" + +#: ../templates/lists/changePassword.php:183 +#: ../lib/modules/sambaSamAccount.inc:229 +msgid "Sync Samba NT password with Unix password" +msgstr "A Samba NT jelszavának szinkronizálása a Unix jelszóval" + +#: ../templates/tree/add_value_form.php:190 +#: ../templates/schema/schema.php:179 +msgid "Syntax" +msgstr "Szintaxis" + +#: ../templates/schema/schema.php:87 +msgid "Syntax OID" +msgstr "Szintaxis OID" + +#: ../templates/schema/schema.php:71 +#: ../templates/schema/schema.php:72 +msgid "Syntaxes" +msgstr "Szintaxisok" + +#: ../templates/config/mainmanage.php:219 +msgid "System logging" +msgstr "Rendszernapló" + +#: ../help/help.inc:56 +msgid "TLS cannot be combined with ldaps://." +msgstr "A TLS nem használható az ldaps:// -sel együtt." + +#: ../lib/modules/kolabUser.inc:229 +msgid "Target of invitation policy is invalid!" +msgstr "A meghívási irányelv célja érvénytelen!" + +#: ../templates/lists/changePassword.php:240 +#: ../lib/types/user.inc:154 +#: ../lib/modules/inetOrgPerson.inc:51 +#: ../lib/modules/inetOrgPerson.inc:120 +#: ../lib/modules/inetOrgPerson.inc:197 +#: ../lib/modules/inetOrgPerson.inc:322 +#: ../lib/modules/inetOrgPerson.inc:440 +#: ../lib/modules/inetOrgPerson.inc:523 +#: ../lib/modules/inetOrgPerson.inc:524 +#: ../lib/modules/inetOrgPerson.inc:892 +#: ../lib/modules/inetOrgPerson.inc:1038 +#: ../lib/modules/inetOrgPerson.inc:1401 +msgid "Telephone number" +msgstr "Telefonszám" + +# +#: ../lib/modules/inetOrgPerson.inc:268 +msgid "Temp" +msgstr "Szerződéses" + +# +#: ../lib/modules/inetOrgPerson.inc:252 +msgid "Temp, contract until december" +msgstr "Szerződéses, decemberig szerződve" + +#: ../templates/tree/create_form.php:83 +msgid "Template" +msgstr "Sablon" + +#: ../lib/modules/sambaSamAccount.inc:368 +#: ../lib/modules/sambaSamAccount.inc:574 +#: ../lib/modules/sambaSamAccount.inc:1187 +msgid "Terminal server options" +msgstr "Terminál szerver beállításai" + +#: ../lib/tools/tests.inc:44 +msgid "Tests" +msgstr "Tesztek" + +#: ../templates/config/confmain.php:330 +#: ../help/help.inc:196 +msgid "Text" +msgstr "Szöveg" + +#: ../templates/pdfedit/pdfpage.php:564 +msgid "Text field" +msgstr "Szövegmező" + +#: ../lib/modules/eduPerson.inc:100 +msgid "The \"NetID\" of the person for the purposes of inter-institutional authentication. It should be represented in the form \"user@scope\" where scope defines a local security domain." +msgstr "A személy \"NetID\" -je az intézményen belüli azonosításhoz. A \"felhasználó@cél\" formában kell megadni, ahol a \"cel\" egy helyi biztonsági tartományt ad meg." + +#: ../lib/modules/kolabUser.inc:160 +msgid "The Cyrus mail quota for users in MBytes, leave blank for unlimited space." +msgstr "A felhasználók Cyrus postai kvótája, MByte-okban megadva. Ha nem kíván kvótát beállítani, hagyja üresen." + +#: ../lib/modules/dhcp_settings.inc:289 +msgid "The DHCP ranges were changed to fit for the new subnet." +msgstr "A DHCP tartományokat megváltoztattam az új alhálózatnak megfelelően." + +#: ../lib/modules/eduPerson.inc:112 +msgid "The DN of the directory entry representing the institution with which the person is associated." +msgstr "A könyvtár bejegyzés DN-je, mely azt az intézményt mutatja, amelyhez a személy kapcsolódik." + +#: ../lib/modules/eduPerson.inc:116 +msgid "The DN of the directory entry representing the person's primary organizational unit." +msgstr "A könyvtár bejegyzés DN-je, mely a személy elsődleges szervezeti egységét mutatja." + +#: ../lib/modules/eduPerson.inc:120 +#: ../lib/modules/eduPerson.inc:124 +msgid "The DNs of the directory entries representing the person's organizational units." +msgstr "A könyvtár bejegyzések DN-jei, melyek a személy szervezeti egységeit mutatják." + +#: ../lib/modules/posixGroup.inc:418 +msgid "The ID of this group was changed. You can update all user and host entries to the new group ID." +msgstr "A csoport ID-je változott. Minden felhasználói és gazdagép bejegyzést frissíthet az új csoport ID-nek megfelelően." + +#: ../templates/config/mainmanage.php:95 +#, php-format +msgid "The IP address %s is invalid!" +msgstr "A(z) %s IP-cím érvénytelen!" + +#: ../lib/modules/fixed_ip.inc:389 +msgid "The IP address does not match the subnet." +msgstr "Az IP-cím nem illik az alhálózatba." + +#: ../lib/modules/fixed_ip.inc:392 +msgid "The IP address is already in use." +msgstr "Az IP-cím már foglalt." + +#: ../lib/modules/range.inc:408 +#: ../lib/modules/range.inc:424 +#: ../lib/modules/fixed_ip.inc:384 +msgid "The IP address is invalid." +msgstr "Az IP-cím érvénytelen." + +#: ../lib/modules/fixed_ip.inc:94 +msgid "The IP address of the PC." +msgstr "A PC IP-címe." + +#: ../lib/modules/dhcp_settings.inc:137 +msgid "The IP address(es) of the DNS servers. Multiple addresses are separated by \",\". Example: 192.168.0.10, 192.168.0.11" +msgstr "A DNS szerverek IP-címe(i). Több cím elválasztására a \",\" szolgál. Például: 192.168.0.10, 192.168.0.11" + +#: ../lib/modules/dhcp_settings.inc:143 +msgid "The IP addresses of the Netbios name servers (e.g. \"123.123.123.123, 123.123.123.124\")." +msgstr "A Netbios névszerverek IP-címei (pl.: \"123.123.123.123, 123.123.123.124\")." + +#: ../lib/modules/range.inc:412 +#: ../lib/modules/range.inc:426 +msgid "The IP does not match the subnet." +msgstr "Az IP nem illik az alhálózatba." + +#: ../lib/modules/fixed_ip.inc:91 +msgid "The MAC address of the PC. Example: 11:22:33:44:55:aa" +msgstr "A PC MAC-címe. Például: 11:22:33:44:55:aa" + +#: ../lib/modules/dhcp_settings.inc:282 +#: ../lib/modules/dhcp_settings.inc:283 +msgid "The Netbios server is invalid." +msgstr "A Netbios szerver érvénytelen." + +#: ../lib/modules/fixed_ip.inc:356 +msgid "The PC name may not be longer than 20 characters." +msgstr "A PC neve nem lehet hosszabb 20 karakternél." + +#: ../lib/modules/fixed_ip.inc:365 +msgid "The PC name may only contain A-Z, a-z and 0-9." +msgstr "A PC neve csak ezeket tartalmazhatja: A-Z, a-z és 0-9." + +#: ../lib/modules/fixed_ip.inc:359 +msgid "The PC name needs to be at least 2 characters long." +msgstr "A PC nevének minimum 2 karakterből kell állnia." + +#: ../help/help.inc:161 +msgid "The PDF structure defines what information is exported as PDF file and how the pages are structured. You can manage the PDF structures in the PDF editor (under \"Tools\")." +msgstr "A PDF szerkezet meghatározza, hogy milyen információ kerül PDF fájlként exportálásra, és az oldalak miként lesznek tagolva. A PDF szerkezeteket a PDF szerkesztőben érheti el (az \"Eszközök\" alatt)." + +#: ../lib/modules/sambaDomain.inc:75 +msgid "The SID of your Samba server. Get it with \"net getlocalsid\"." +msgstr "Az ön Samba szerverének SID száma. A \"net getlocalsid\"-del kapja meg." + +#: ../lib/modules/posixAccount.inc:67 +msgid "The UID ranges for users and hosts overlap! This is a problem because LAM uses the highest UID in use + 1 for new accounts. Please set the minimum UID to equal values or use independent ranges." +msgstr "A felhasználókra és a gazdaállomásokra vonatkozó UID-értékektartományai átfedést mutatnak! Ez azért gond, mert a LAM új fiókok létrehozásakor a használatban levő UID-értéket 1-el megnöveli az új fiók részére. Kérem, állítsa a minimális UID-értékeket egyenlő értékre, vagy használjon egymástól független tartományokat!" + +#: ../lib/modules/zarafaServer.inc:70 +msgid "The Unix socket or named pipe to the server." +msgstr "A Unix socket vagy named pipe a szerverhez." + +#: ../lib/modules/asteriskVoicemail.inc:205 +#: ../lib/modules/asteriskVoicemail.inc:206 +msgid "The account context is invalid." +msgstr "A fiók környezete érvénytelen." + +#: ../lib/modules/asteriskAccount.inc:92 +#: ../lib/modules/asteriskExtension.inc:83 +#: ../lib/modules/asteriskVoicemail.inc:83 +msgid "The account context stores information about the dial plan." +msgstr "A fiók környezete információt tárol a tárcsázási tervről." + +#: ../help/help.inc:151 +msgid "The account will be saved under this LDAP suffix." +msgstr "Az új fiók ez alatt az LDAP-utótag alatt lesz elmentve." + +#: ../templates/tests/schemaTest.php:123 +#, php-format +msgid "The attribute %s is not supported for the object class(es) %s by your LDAP server." +msgstr "A %s attribútum nem támogatott az Ön LDAP szerverének %s objektum osztályához." + +#: ../lib/modules/asteriskAccount.inc:167 +#: ../lib/modules/asteriskAccount.inc:169 +msgid "The caller ID format is invalid." +msgstr "A hívó ID formátuma érvénytelen." + +#: ../templates/tree/templates/creation/custom.php:99 +#, php-format +msgid "The container you specified (%s) does not exist. Please try again." +msgstr "Az Ön által megadott konténer (%s) nem létezik. Kérem, próbálja újra." + +#: ../lib/modules/kolabUser.inc:148 +msgid "The country name of the user." +msgstr "A felhasználó országának neve." + +#: ../lib/modules/dhcp_settings.inc:280 +#: ../lib/modules/dhcp_settings.inc:281 +msgid "The default gateway is invalid." +msgstr "Az alapértelmezett átjáró érvénytelen." + +#: ../lib/modules/dhcp_settings.inc:292 +#: ../lib/modules/dhcp_settings.inc:294 +msgid "The domain name includes invalid characters. Valid characters are A-Z, a-z, 0-9, \".\", \"_\",\"-\"." +msgstr "A tartománynév érvénytelen karaktert tartalmaz. Érvényes karakterek: A-Z, a-z, 0-9, \".\", \"_\",\"-\"." + +#: ../lib/modules/dhcp_settings.inc:291 +#: ../lib/modules/dhcp_settings.inc:293 +msgid "The domain name needs to have at least 3 characters." +msgstr "A tartománynévnek minimum 3 karakterből kell állnia." + +#: ../lib/modules/dhcp_settings.inc:125 +msgid "The domain name of the subnet." +msgstr "Az alhálózat tartományneve." + +#: ../lib/modules/asteriskVoicemail.inc:209 +msgid "The email address is invalid." +msgstr "Az email cím érvénytelen." + +#: ../lib/modules/range.inc:89 +msgid "The ending IP address of the range." +msgstr "A tartomány utolsó IP-címe." + +#: ../lib/modules/dhcp_settings.inc:284 +msgid "The entered Netbios node type does not exist." +msgstr "A megadott Netbios állomástípus nem létezik." + +#: ../lib/modules/phpGroupwareUser.inc:135 +#: ../lib/modules/shadowAccount.inc:67 +msgid "The expiration date is invalid." +msgstr "A lejárat dátuma érvénytelen!" + +#: ../lib/modules/asteriskAccount.inc:171 +#: ../lib/modules/asteriskAccount.inc:172 +msgid "The extension context is invalid." +msgstr "A kiterjesztés környezete érvénytelen." + +#: ../help/help.inc:188 +msgid "The first line is the subject." +msgstr "Az első sor a tárgy." + +#: ../templates/initsuff.php:179 +msgid "The following suffix(es) are missing in LDAP. LAM can create them for you." +msgstr "A következő utótagok hiányoznak az LDAP-ban. A LAM elkészítheti ezeket önnek." + +#: ../lib/modules/sambaSamAccount.inc:109 +#: ../lib/modules/sambaSamAccount.inc:110 +msgid "The format of the logon hours field is invalid!" +msgstr "A belépési órák formátuma érvénytelen!" + +#: ../lib/modules/customScripts.inc:110 +msgid "The format of this custom script setting is invalid." +msgstr "Az egyedi szkript formátuma érvénytelen!" + +#: ../lib/modules/asteriskVoicemail.inc:208 +msgid "The full name is invalid." +msgstr "A teljes név érvénytelen." + +#: ../templates/login.php:474 +msgid "The given user name matches multiple LDAP entries." +msgstr "A megadott felhasználó név több LDAP bejegyzéshez illeszkedik." + +#: ../lib/modules/ppolicy.inc:93 +msgid "The grace authentication limit specifies the number of times that an expired password may be used to login." +msgstr "A grace azonosítási korlát határozza meg, hogy lejárt jelszó hány alkalommal használható belépéshez." + +#: ../templates/pdfedit/pdfpage.php:119 +msgid "The headline for a new section must contain at least one character." +msgstr "Az új szekció fejléce legalább egy karaktert kell tartalmazzon." + +#: ../lib/modules/sambaSamAccount.inc:281 +msgid "The home directory will be connected under this drive letter." +msgstr "A home könyvtár e betűjelű meghajtóhoz lesz csatlakoztatva." + +#: ../lib/modules/asteriskAccount.inc:174 +#: ../lib/modules/asteriskAccount.inc:175 +msgid "The host name is invalid." +msgstr "A gazdaállomás neve érvénytelen." + +#: ../lib/modules/ddns.inc:97 +msgid "The key enables the DHCP server to perform DNS updates. The key is generated with \"genDDNSkey\"." +msgstr "A kulcs teszi lehetővé a DHCP szervernek a DNS frissítését. A kulcsot a \"genDDNSkey\". állítja elő." + +#: ../lib/modules/dhcp_settings.inc:278 +#: ../lib/modules/dhcp_settings.inc:279 +msgid "The lease time is invalid." +msgstr "A bérleti idő érvénytelen." + +#: ../lib/modules/dhcp_settings.inc:131 +msgid "The lease time specifies after how many seconds the client should request a new IP address." +msgstr "A bérleti idő határozza meg, hogy a kliens hány másodperc elteltével kérjen új IP-címet." + +#: ../lib/modules/sudoRole.inc:72 +#: ../lib/modules/sudoRole.inc:98 +msgid "The list of commands which may be run." +msgstr "A futtatható parancsok listája." + +#: ../lib/modules/sudoRole.inc:68 +#: ../lib/modules/sudoRole.inc:93 +msgid "The list of hosts from which the user may run the commands." +msgstr "A gazdaállomások listája, melyekről a felhasználó a parancsokat futtathatja." + +#: ../lib/modules/sudoRole.inc:64 +#: ../lib/modules/sudoRole.inc:88 +msgid "The list of users who own this sudo role and may run the commands." +msgstr "A felhasználók listája, akikhez ez a sudo szerep tartozik és a parancsokat futtathatják." + +#: ../templates/config/mainmanage.php:111 +msgid "The log file is empty or contains invalid characters! Valid characters are: a-z, A-Z, 0-9, /, \\, ., :, _ and -." +msgstr "A naplófájl üres vagy érvénytelen karaktereket tartalmaz! Érvényes karakterek: a-z, A-Z, 0-9, /, \\, ., :, _ and -. " + +#: ../lib/modules/imapAccess.inc:76 +msgid "The login name of your IMAP user who has rights to create/delete mailboxes." +msgstr "A postafiókok létrehozására/törlésére jogosult IMAP felhasználójának belépési (login) neve." + +#: ../help/help.inc:197 +msgid "The mail text of all password mails. If empty the content of \"config/passwordMailTemplate.txt\" starting at the second line will be used." +msgstr "A jelszavakat tartalmazó levelek szövege. Ha üresen marad, akkor a \"config/passwordMailTemplate.txt\" tartalma lesz az, a második sortól kezdődően." + +#: ../lib/modules/asteriskVoicemail.inc:201 +msgid "The mailbox format is invalid." +msgstr "A postafiók formátuma érvénytelen." + +#: ../lib/modules/dhcp_settings.inc:285 +#: ../lib/modules/dhcp_settings.inc:286 +msgid "The maximum lease time is invalid." +msgstr "A leghosszabb bérleti idő érvénytelen." + +#: ../lib/modules/dhcp_settings.inc:134 +msgid "The maximum lease time specifies after how many seconds the client must request a new IP address." +msgstr "A maximális bérleti idő határozza meg, hogy a kliensnek hány másodperc elteltével kell új IP-címet kérnie." + +#: ../lib/modules.inc:1209 +#, php-format +msgid "The module %s is not yet ready." +msgstr "A(z) %s modul még nem készült el." + +#: ../templates/pdfedit/pdfpage.php:90 +msgid "The name for that PDF-structure you submitted is not valid. A valid name must consist of the following characters: 'a-z','A-Z','0-9','_','-'." +msgstr "A PDF-szerkezet neve, amit megadott, érvénytelen. Egy érvényes névnek a következő karakterekből kell állnia: 'a-z','A-Z','0-9','_','-'." + +#: ../lib/modules/asteriskExtension.inc:95 +msgid "The name of a command to execute. The available commands may be listed at the Asterisk command line by executing \"core show applications\"." +msgstr "A végrehajtani kívánt utasítás neve. A használható utasítások listázhatóak az Asterisk parancssoron a \"core show applications\" utasítás végrehajtásával." + +#: ../lib/modules/fixed_ip.inc:88 +msgid "The name of the PC." +msgstr "A PC neve." + +#: ../lib/modules/asteriskExtension.inc:87 +msgid "The name of the extension (e.g. voicemail or sip)." +msgstr "A kiterjesztés neve (pl. voicemail vagy sip)." + +#: ../lib/modules/kolabUser.inc:152 +msgid "The name of the server where the mailbox is located." +msgstr "Annak a szervernek a neve, ahol a postafiók található." + +#: ../lib/modules/dhcp_settings.inc:128 +msgid "The name of the subnet. Example: 192.168.10.0" +msgstr "Az alhálózat neve. Például: 192.168.10.0" + +#: ../lib/modules/sambaDomain.inc:71 +msgid "The name of your Windows domain or workgroup." +msgstr "Az Ön Windows tartományának vagy munkacsoportjának neve." + +#: ../lib/modules/dhcp_settings.inc:164 +msgid "The net mask is derived from the subnet mask. LAM will calculate it automatically." +msgstr "A hálózati maszk az alhálózati maszkból következik. A LAM automatikusan kiszámítja." + +#: ../lib/modules.inc:1101 +msgid "The new password will be stored in the directory after you save this account." +msgstr "Az új jelszó a könyvtárban kerül tárolásra, miután Ön menti a fiókot." + +#: ../help/help.inc:111 +msgid "The number of users who may login to LAM is restricted. This can be either a fixed list of DNs or LAM can search LDAP to find a DN which matches the given user name." +msgstr "Azoknak a felhasználóknak a száma, akik bejelentkezhetnek a LAM-ba, korlátozott. Ehhez megadható DN-ekből álló fix lista, vagy a LAM is végezhet LDAP keresést, hogy megtaláljon egy, a megadott felhasználó névhez illeszkedő DN-t." + +#: ../templates/tests/schemaTest.php:112 +#, php-format +msgid "The object class %s is not supported by your LDAP server." +msgstr "A %s objektum osztályt az Ön LDAP szervere nem támogatja." + +#: ../lib/modules/inetOrgPerson.inc:576 +msgid "The office name of the user (e.g. YourCompany, Human Resources)." +msgstr "A felhasználó munkahelyének neve (pl. AzÖnCége, Humán Erőforrás Osztály)." + +#: ../templates/selfService/selfServiceMain.php:270 +#: ../lib/modules.inc:1949 +msgid "The operation was stopped because of the above errors." +msgstr "A művelet megállt a fenti hibák miatt." + +#: ../lib/modules/asteriskVoicemail.inc:211 +#: ../lib/modules/asteriskVoicemail.inc:212 +msgid "The options have bad format." +msgstr "A beállítások formátuma rossz." + +#: ../lib/modules/device.inc:63 +msgid "The owner of this device." +msgstr "Az eszköz tulajdonosa." + +#: ../lib/modules/groupOfNames.inc:69 +msgid "The owner of this group." +msgstr "A csoport tulajdonosa." + +#: ../lib/modules/asteriskVoicemail.inc:210 +msgid "The pager number has bad format." +msgstr "Az oldalszám formátuma rossz." + +#: ../templates/config/confsave.php:71 +#: ../templates/config/confmain.php:72 +#: ../templates/config/mainlogin.php:59 +#: ../templates/selfService/adminLogin.php:54 +msgid "The password is invalid! Please try again." +msgstr "Érvénytelen jelszó! Kérem próbálja újra." + +#: ../lib/security.inc:237 +#, php-format +msgid "The password is too short. You have to enter at least %s characters." +msgstr "A jelszó túl rövid. Legalább %s karaktert kell megadnia." + +#: ../lib/security.inc:289 +#, php-format +msgid "The password is too weak. You have to enter at least %s different character classes (upper/lower case, numbers and symbols)." +msgstr "A jelszó túl gyenge. Legalább %s különböző típusú karaktert (kis/nagybetű, számok és szimbólumok) kell megadnia." + +#: ../lib/security.inc:260 +#, php-format +msgid "The password is too weak. You have to enter at least %s lower case characters." +msgstr "A jelszó túl gyenge. Legalább %s kisbetűt kell megadnia." + +#: ../lib/security.inc:268 +#, php-format +msgid "The password is too weak. You have to enter at least %s numeric characters." +msgstr "A jelszó túl gyenge. Legalább %s numerikus karaktert kell megadnia." + +#: ../lib/security.inc:272 +#, php-format +msgid "The password is too weak. You have to enter at least %s symbolic characters." +msgstr "A jelszó túl gyenge. Legalább %s szimbolikus karaktert kell megadnia." + +#: ../lib/security.inc:264 +#, php-format +msgid "The password is too weak. You have to enter at least %s upper case characters." +msgstr "A jelszó túl gyenge. Legalább %s nagybetűt kell megadnia." + +#: ../lib/modules/imapAccess.inc:82 +msgid "The password of your IMAP admin user. The login name for the IMAP admin user is stored in the LAM server profile." +msgstr "IMAP adminisztrátorának jelszava. Az IMAP adminisztrátor belépési (login) neve a LAM szerver profilban van eltárolva." + +#: ../lib/modules.inc:1389 +msgid "The password was set to:" +msgstr "A jelszó erre lett beállítva:" + +#: ../templates/lists/changePassword.php:412 +msgid "The password(s) were set to:" +msgstr "A jelszó erre lett beállítva:" + +#: ../lib/modules/posixAccount.inc:334 +msgid "The primary group for this account. You can insert a GID number or a group name." +msgstr "A fiókhoz tartozó elsődleges csoport neve. Megadhat GID-számot vagy csoportnevet." + +#: ../lib/modules/posixAccount.inc:401 +msgid "The primary group the host should be member of." +msgstr "A gazdaállomás elsődleges csoportja." + +#: ../lib/modules/posixAccount.inc:363 +msgid "The primary group the user should be member of." +msgstr "A felhasználó elsődleges csoportja." + +#: ../lib/modules/asteriskExtension.inc:91 +msgid "The priority is a sequence number used to order the execution of commands. Commands are executed beginning with the lowest sequence number." +msgstr "A prioritás egy szekvenciaszám, mely az utasítások végrehajtási sorrendjének meghatározására szolgál. Az utasítások a legalacsonyabb szekvenciaszámmal kezdve kerülnek végrehajtásra." + +#: ../lib/modules/range.inc:414 +msgid "The range conflicts with another range." +msgstr "A tartomány egy másik tartománnyal ütközik." + +#: ../lib/modules/range.inc:410 +msgid "The range end needs to be greater than the range start." +msgstr "A tartomány vége csak magasabb lehet, mint a kezdete." + +#: ../lib/modules/inetOrgPerson.inc:556 +msgid "The room number of the employee's office." +msgstr "Az alkalmazott irodájának szobaszáma." + +#: ../lib/modules/customScripts.inc:57 +#: ../lib/modules/customScripts.inc:69 +msgid "The scripts will be run on your web server in the user context of your web server (e.g. apache/www-data)." +msgstr "A szkiptek az Ön web szerverén futnak majd, az Ön web szerverének felhasználói környezetében (pl. apache/www-data)." + +#: ../lib/modules/sambaSamAccount.inc:375 +#: ../lib/modules/zarafaUser.inc:117 +#: ../lib/modules/inetOrgPerson.inc:584 +msgid "The selected options will not be managed inside LAM. You can use this to reduce the number of displayed input fields." +msgstr "A kiválasztott beállítások a LAM-on belül nem lesznek kezelve. Ezzel csökkentheti a megjelenő beviteli mezők számát." + +#: ../lib/modules/range.inc:86 +msgid "The starting IP address of the range." +msgstr "A tartomány kezdő IP-címe." + +#: ../lib/modules/inetOrgPerson.inc:568 +msgid "The state where the user resides or works." +msgstr "Az állam, ahol a felhasználó tartózkodik vagy dolgozik." + +#: ../templates/pdfedit/pdfpage.php:107 +msgid "The static text must contain at least one character." +msgstr "A statikus szövegnek minimum egy karakterből kell állnia." + +#: ../help/help.inc:195 +msgid "The subject of all password mails. If empty the first line of \"config/passwordMailTemplate.txt\" will be used." +msgstr "A jelszavakat tartalmazó levelek tárgya. Ha üresen marad, akkor a \"config/passwordMailTemplate.txt\" első sora lesz az." + +#: ../lib/modules/dhcp_settings.inc:273 +msgid "The subnet is already in use." +msgstr "Az alhálózat már foglalt." + +#: ../lib/modules/dhcp_settings.inc:274 +#: ../lib/modules/dhcp_settings.inc:275 +msgid "The subnet is invalid." +msgstr "Az alhálózat érvénytelen." + +#: ../lib/modules/dhcp_settings.inc:287 +#: ../lib/modules/dhcp_settings.inc:288 +msgid "The subnet mask is invalid." +msgstr "Az alhálózat maszkja érvénytelen." + +#: ../lib/modules/dhcp_settings.inc:161 +msgid "The subnet mask of the network." +msgstr "A hálózat alhálózati maszkja." + +#: ../lib/modules/sudoRole.inc:80 +#: ../lib/modules/sudoRole.inc:108 +msgid "The sudo commands are executed with these group memberships." +msgstr "A sudo parancsok ezekkel a csoporttagságokkal kerülnek végrehajtásra." + +#: ../lib/modules/sudoRole.inc:76 +#: ../lib/modules/sudoRole.inc:103 +msgid "The sudo commands may be run as these users (e.g. root)." +msgstr "A sudo parancsokat ezek a felhasználók futtathatják (pl. root)." + +#: ../lib/modules/zarafaUser.inc:97 +msgid "The user account is non-active and login is disabled." +msgstr "A felhasználói fiók nem aktív és a belépés le van tiltva." + +#: ../lib/modules/zarafaUser.inc:77 +msgid "The user will get warned when his mailbox reaches this limit." +msgstr "A felhasználó figyelmeztetést kap, amikor a postafiókja eléri ezt a határt." + +#: ../lib/modules/sambaSamAccount.inc:112 +msgid "The value for the Samba 3 field \"User can/must change password\" needs to be a number." +msgstr "A Samba 3 \"A felhasználó megváltoztathatja/köteles megváltoztatni jelszavát\" mezejének értéke szám kell, hogy legyen." + +#: ../lib/modules/asteriskVoicemail.inc:213 +#: ../lib/modules/asteriskVoicemail.inc:214 +msgid "The voicemail context name is invalid." +msgstr "A hangposta környezetének neve érvénytelen." + +#: ../help/help.inc:191 +#: ../help/help.inc:200 +msgid "The wildcard for the new password is @@newPassword@@." +msgstr "Az új jelszó helyettesítő karaktere @@newPassword@@." + +#: ../templates/tree/add_oclass_form.php:125 +msgid "There are new required attributes which need to be set." +msgstr "Új, szükséges attribútumok vannak, melyeket be kell állítani." + +#: ../lib/modules/posixGroup.inc:487 +msgid "There are still users who have this group as their primary group." +msgstr "Még mindig vannak felhasználók, akiknek ez az elsődleges csoportja." + +#: ../lib/modules/sambaGroupMapping.inc:440 +msgid "There can be only one group of this type." +msgstr "Csak egy ilyen csoport lehet." + +#: ../lib/modules/asteriskAccount.inc:168 +msgid "There is already another user with this caller ID." +msgstr "Már létezik másik felhasználó ezzel az ID-vel." + +#: ../lib/modules/asteriskVoicemail.inc:202 +msgid "There is already another user with this mailbox name." +msgstr "Már létezik másik felhasználó ezzel a postafiók-névvel." + +#: ../templates/massDoUpload.php:129 +msgid "There were errors while uploading:" +msgstr "Hibák történtek a feltöltés közben:" + +#: ../lib/modules/posixGroup.inc:406 +msgid "These are the minimum and maximum numbers to use for group IDs when creating new group accounts. New group accounts will always get the highest number in use plus one." +msgstr "Ezek a minimális és maximális számértékek, melyek a csoport ID-khez használhatóak új csoport-fiókok létrehozásakor. Az új csoport-fiókok mindig a már felhasznált legnagyobb számot 1-el megnövelt értéket kapják." + +#: ../lib/modules/posixAccount.inc:322 +msgid "These are the minimum and maximum numbers to use for machine IDs when creating new accounts for hosts. The range should be different from that of users. New host accounts will always get the highest number in use plus one." +msgstr "Ezek a minimális és maximális számértékek, melyek a gép ID-khez használhatóak új fiókok létrehozásakor a gazdaállomásokon. A tartománynak a felhasználók esetében használt tartománytól el kell térnie. Az új gazdagép-fiókok mindig a már felhasznált legnagyobb szám 1-el megnövelt értékét kapják." + +#: ../lib/modules/posixAccount.inc:318 +msgid "These are the minimum and maximum numbers to use for user IDs when creating new user accounts. The range should be different from that of machines. New user accounts will always get the highest number in use plus one." +msgstr "Ezek a minimális és maximális számértékek, melyek a felhasználói ID-khez használhatóak új felhasználói fiókok létrehozásakor. A tartománynak a gépek esetében használt tartománytól el kell térnie. Az új felhasználói fiókok mindig a már felhasznált legnagyobb szám 1-el megnövelt értékét kapják." + +#: ../lib/modules/nisnetgroup.inc:86 +#: ../lib/modules/nisnetgroup.inc:90 +msgid "These entries specify the members of the netgroup. You can limit the set to a host name, a user name, a domain name or any combination of them." +msgstr "Ezek a bejegyzések határozzák meg a hálózati csoport tagjait. Korlátozhatja egy gazdaállomás nevére, egy felhasználó névre, egy tartomány névre vagy ezek bármilyen kombinációjára." + +#: ../lib/modules/asteriskExtension.inc:107 +msgid "These options change the list of potential extension owners below. You can select to show Asterisk accounts or all users. It is also possible to search the tree suffix if you have users which are not in the standard user suffix." +msgstr "Ezek a beállítások megváltoztatják az alábbi, potenciális kiterjesztés-birtokosok listáját. Kiválaszthatja, hogy csak az Asterisk fiókok jelenjenek meg vagy pedig minden felhasználó. Az utótag-fán is végezhető keresés, ha vannak olyan felhasználói, akik nem a standard felhasználói utótagban vannak." + +#: ../lib/modules/posixAccount.inc:92 +msgid "This GID number is invalid! Please provide either a number or a group name." +msgstr "Ez a GID-érték érvénytelen! Kérem, adjon meg egy számot vagyegy csoportnevet!" + +#: ../help/help.inc:181 +msgid "This HTML code will be placed on top of all self service pages. E.g. you can use this to place your custom logo. Any HTML code is permitted." +msgstr "Ez a HTML kód kerül majd minden önkiszolgáló oldal tetejére. Használhatja pl. egyedi logójának elhelyezésére. Bármilyen HTML kódot megadhat." + +#: ../lib/modules/fixed_ip.inc:362 +msgid "This PC name already exists." +msgstr "A PC neve már létezik." + +#: ../lib/modules/kolabUser.inc:276 +msgid "This account is marked for deletion." +msgstr "A fiók törlésre lett jelölve." + +#: ../lib/modules/sambaSamAccount.inc:305 +msgid "This allows you to define this account as a special user like administrator or guest." +msgstr "Ezzel olyan különleges felhasználói fiókot hozhat létre, mint például az adminisztrátori vagy a vendég." + +#: ../lib/modules/inetOrgPerson.inc:572 +msgid "This can be used to specify if the user has a car license." +msgstr "Ezzel lehet meghatározni, hogy a felhasználónak van -e autóvezetői jogosítványa." + +#: ../help/help.inc:123 +msgid "This changes the password of the selected profile." +msgstr "Ez a kiválasztott profil jelszavát változtatja meg." + +#: ../help/help.inc:125 +msgid "This changes the profile which is selected by default at login." +msgstr "Ez a belépéskor alapértelmezés szerint kiválasztott profilt változtatja meg." + +#: ../templates/massBuildAccounts.php:150 +msgid "This column is defined to include unique entries but duplicates were found:" +msgstr "Ez az oszlop egyedi bejegyzések részére szolgál, de a következő egyezések jelentkeznek:" + +#: ../lib/modules/customScripts.inc:111 +msgid "This custom script setting includes an invalid account type." +msgstr "Ez az egyedi szkript beállítás érvénytelen fiók típust tartalmaz." + +#: ../lib/modules/customScripts.inc:113 +#: ../lib/modules/customScripts.inc:115 +msgid "This custom script setting includes an invalid action type." +msgstr "Ez az egyedi szkript beállítás érvénytelen teendő típust tartalmaz." + +#: ../help/help.inc:92 +msgid "This defines the language of the login window and sets this language as the default language. Users can change the language at login." +msgstr "A bejelentkezési ablak nyelvének beállítása, mely egyben az alapértelmezett nyelv lesz. A felhasználók belépéskor ezt maguknak átállíthatják." + +#: ../help/help.inc:109 +msgid "This defines the rights for the home directories which are created by lamdaemon." +msgstr "Meghatározza a lamdaemon által létrehozott home könyvtárakra vonatkozó jogokat." + +#: ../lib/modules/asteriskExtension.inc:79 +msgid "This defines what application Asterisk has to start for this user (e.g. SIP/user1)." +msgstr "Ez határozza meg, hogy az Asterisk milyen alkalmazást indítson el e felhasználó részére (pl. SIP/felhasznalo1)." + +#: ../lib/modules/device.inc:67 +msgid "This describes the location of the device." +msgstr "Megmondja az eszköz helyét." + +#: ../lib/modules/ipHost.inc:67 +msgid "This describes the location of the host." +msgstr "Leírja a gazda helyét." + +#: ../lib/modules/inetOrgPerson.inc:564 +msgid "This describes the location of the user." +msgstr "Megmondja a felhasználó helyét." + +#: ../lib/lamPDF.inc:113 +msgid "This document was automatically created by LDAP Account Manager" +msgstr "Ezt a dokumentumot az LDAP Account Manager automatikusan hozta létre." + +#: ../help/help.inc:193 +msgid "This email address will be set as sender address of all password mails. If empty the system default (php.ini) will be used." +msgstr "Ez az email cím lesz a jelszavakat tartalmazó levelek feladója. Ha üresen marad, akkor a rendszer alapértelmezése (php.ini) szerinti lesz használatban." + +#: ../templates/tree/edit.php:210 +msgid "This entry has no attributes" +msgstr "Ehhez a bejegyzéshez nincs attribútum" + +#: ../templates/tree/delete_form.php:96 +#, php-format +msgid "This entry is the root of a sub-tree containing %s entries." +msgstr "Ez a bejegyzés egy olyan al-fa gyökere, mely %s bejegyzést tartalmaz." + +#: ../lib/modules/posixAccount.inc:94 +msgid "This gecos value is invalid!" +msgstr "A gecos értéke érvénytelen!" + +#: ../lib/modules/ipHost.inc:63 +msgid "This is a comma separated list of IP addresses." +msgstr "Vesszővel elválasztott IP címekből álló lista." + +#: ../lib/modules/ieee802device.inc:66 +msgid "This is a comma separated list of MAC addresses." +msgstr "Ez vesszővel elválasztott MAC-címekből álló lista." + +#: ../lib/modules/kolabUser.inc:136 +msgid "This is a comma separated list of delegates." +msgstr "A meghatalmazottak listája, vesszővel elválasztva." + +#: ../lib/modules/kolabUser.inc:144 +msgid "This is a comma separated list of eMail aliases." +msgstr "E-mail álnevek listája, vesszővel elválasztva." + +#: ../lib/modules/kolabUser.inc:128 +msgid "This is a comma separated list of invitation policies." +msgstr "A meghívási irányelvek listája, vesszővel elválasztva." + +#: ../lib/modules/nisMailAlias.inc:76 +msgid "This is a comma separated list of recipients." +msgstr "A címzettek listája, vesszővel elválasztva." + +#: ../lib/modules/inetLocalMailRecipient.inc:70 +msgid "This is a comma separated list of the users public email addresses." +msgstr "A nyilvános e-mail címek listája, vesszővel elválasztva." + +#: ../help/help.inc:139 +msgid "This is a list of IP addresses from hosts who may access LAM. You can use \"*\" as wildcard (e.g. 192.168.0.*)." +msgstr "Ez azoknak a gazdaállomásoknak a listája, akik elérhetik a LAM-ot. A \"*\"-ot használhatja helyettesítő karakterként (pl. 192.168.0.*)." + +#: ../lib/modules/groupOfNames.inc:73 +msgid "This is a list of members of this group." +msgstr "E csoport tagjainak listája." + +#: ../lib/modules/groupOfNames.inc:77 +msgid "This is a list of members of this group. Multiple members are separated by semicolons." +msgstr "A csoport tagjainak listája. A tagneveket pontosvesszővel kell elválasztani." + +#: ../lib/modules/eduPerson.inc:87 +msgid "This is a list of nick names for this user." +msgstr "E felhasználó beceneveinek listája." + +#: ../help/help.inc:105 +msgid "This is a list of the servers where the lamdaemon scripts are stored. LDAP Account Manager will make a SSH connection to the servers with the user name and password provided at login. Multiple servers are separated by semicolons. You can append a descriptive name after a colon." +msgstr "Azon szerverek listája, ahol a lamdaemon szkriptek tárolódnak. Az LDAP Account Manager SSH kapcsolatot létesít ezen szerverekkel, a belépéskor (login) megadott felhasználónév és jelszó használatával. Több szervert pontosvesszővel kell elválasztani. Leírást vessző után lehet beírni." + +#: ../help/help.inc:85 +msgid "This is a list of valid DN entries of all users that are allowed to login to LDAP Account Manager. Please enter one DN per line." +msgstr "Azon felhasználók érvényes DN bejegyzéseinek listája, akik az LDAP Account Manager-be beléphetnek. Kérem, egy sorba csak egy DN-t írjon! " + +#: ../lib/modules/nisObject.inc:67 +msgid "This is an optional description for this entry." +msgstr "Szabadon választható leírás ehhez a bejegyzéshez." + +#: ../help/help.inc:169 +msgid "This is needed to find the LDAP DNs of your user accounts. E.g. if you use \"uid\" and your user inputs \"miller\" then LAM will search for an account with uid=miller." +msgstr "Ez szükséges ahhoz, hogy a felhasználói fiók LDAP DN-jeit megtaláljuk. Pl. ha az uid-et használja és a \"molnar\" értéket adja meg, akkor a LAM olyan fiókot keres, ahol az uid=molnar." + +#: ../lib/modules/ipHost.inc:110 +#: ../lib/modules/device.inc:124 +#: ../lib/modules/eduPerson.inc:216 +#: ../lib/modules/eduPerson.inc:218 +#: ../lib/modules/inetOrgPerson.inc:76 +#: ../lib/modules/aliasEntry.inc:79 +msgid "This is not a valid DN!" +msgstr "Ez a DN nem érvényes!" + +#: ../lib/modules/sambaSamAccount.inc:99 +msgid "This is not a valid RID number!" +msgstr "Ez az RID szám nem érvényes!" + +#: ../lib/modules/sambaGroupMapping.inc:442 +msgid "This is not a valid Samba 3 group type!" +msgstr "Ez a Samba 3 csoporttípus nem érvényes!" + +#: ../lib/modules/eduPerson.inc:220 +msgid "This is not a valid list of DNs!" +msgstr "Ez nem érvényes DN lista!" + +#: ../lib/modules/inetLocalMailRecipient.inc:66 +msgid "This is one of the users public email addresses." +msgstr "Ez a felhasználók nyilvános e-mail címeinek egyike." + +#: ../lib/modules/nisMailAlias.inc:72 +msgid "This is one recipient for this alias." +msgstr "Egy címzett, aki ehhez az álnévhez tartozik." + +#: ../lib/modules/asteriskAccount.inc:84 +msgid "This is the ID of the user in the Asterisk database. It may contain digits and letters (e.g. user1 or 200134)." +msgstr "Ez a felhasználó ID-je az Asterisk adatbázisában. Számjegyeket és betűket tartalmazhat (pl. felhasznalo1 vagy 200134)." + +#: ../lib/modules/ipHost.inc:59 +msgid "This is the IP address of the network card of the device (e.g. 123.123.123.123)." +msgstr "Ez az eszköz hálózati kártyájának IP címe (pl. 123.123.123.123)." + +#: ../lib/modules/ipHost.inc:71 +msgid "This is the LDAP DN of the host's manager." +msgstr "Ez a gazda menedzserének LDAP DN-je." + +#: ../lib/modules/inetOrgPerson.inc:504 +msgid "This is the LDAP DN of the user's manager. Use this property to represent hierarchies in your company." +msgstr "Ez a felhasználó menedzseréhez tartozó LDAP DN. A cégén belüli hierarchia ábrázolására használja." + +#: ../lib/modules/ieee802device.inc:62 +msgid "This is the MAC address of the network card of the device (e.g. 00:01:02:DE:EF:18)." +msgstr "Ez az eszköz hálózati kártyájának MAC-címe (pl. 00:01:02:DE:EF:18)." + +#: ../lib/modules/sambaSamAccount.inc:302 +msgid "This is the SID of the user's primary Windows group." +msgstr "Ez a felhasználó elsődleges Windows csoportjának SID-je." + +#: ../help/help.inc:94 +msgid "This is the absolute path to an external script for setting quotas and creating home directories." +msgstr "Ez az abszolút elérési útvonala a külső szkriptnek, mely a kvóták és a home könyvtárak beállítására szolgál." + +#: ../lib/modules/sambaSamAccount.inc:240 +msgid "This is the account's Windows password." +msgstr "Ez a fiók Windows-jelszava." + +#: ../lib/modules/sambaSamAccount.inc:237 +msgid "This is the account's full name on Windows systems." +msgstr "Ez a fiók teljes neve a Windows rendszerekben." + +#: ../lib/modules/ppolicyUser.inc:49 +msgid "This is the active password policy for this account." +msgstr "Ez az aktív jelszó-irányelv ehhez a fiókhoz." + +#: ../lib/modules/sambaSamAccount.inc:324 +#: ../lib/modules/phpGroupwareUser.inc:83 +#: ../lib/modules/shadowAccount.inc:185 +msgid "This is the date when the account will expire. Format: DD-MM-YYYY" +msgstr "A fiók lejáratának dátuma. Formátum: NN-HH-ÉÉÉÉ" + +#: ../lib/modules/shadowAccount.inc:193 +msgid "This is the date when the user changed his password. If you specify a maximum password age then you can force a password change here." +msgstr "Ez az a dátum, amikor a felhasználó megváltoztatta jelszavát. Ha megadott a jelszó lejártára vonatkozó legkésőbbi időpontot, akkor itt kényszerítheti a jelszó megváltoztatását." + +#: ../lib/modules/sambaGroupMapping.inc:357 +msgid "This is the group name which will be shown in Windows." +msgstr "Ez a csoportnév, ami majd a Windows-ban látszik." + +#: ../help/help.inc:147 +msgid "This is the identifier for the relative DN value. It must be one of the given allowed LDAP attributes (e.g. user accounts usually use \"uid\" while groups use \"cn\")." +msgstr "Ez a relatív DN-érték azonosítója. A megadott LDAP attribútumok egyike kell legyen (pl. a felhasználói fiókok gyakran \"uid\"-ot használnak, míg a csoportok a \"cn\"-t)." + +#: ../help/help.inc:80 +msgid "This is the list of attributes to show in the account list. The entries can either be predefined values, \"#attribute\", or individual ones, \"attribute:description\". Several entries are separated by semicolons." +msgstr "Ez azon attribútumok listája, melyeknek látszódniuk kell a fióklistán. A bejegyzések vagy előre meghatározott értékek , \"#attribútum\", vagy egyedi értékek, \"attribútum:leírás\" formában. A különböző bejegyzéseket pontosvesszővel kell elválasztani." + +#: ../lib/modules/asteriskAccount.inc:88 +msgid "This is the machine id (e.g. IP address or host name) from which the user can call/receive calls." +msgstr "Ez a gép ID-je (pl. IP cím vagy gazdaállomás neve), melyről a felhasználó hívásokat kezdeményezhet, illetve fogadhat." + +#: ../lib/modules/inetLocalMailRecipient.inc:74 +msgid "This is the mail server for the user." +msgstr "Ez a felhasználó levélszervere." + +#: ../lib/modules/nisnetgroup.inc:74 +#: ../lib/modules/groupOfNames.inc:61 +msgid "This is the name of this group." +msgstr "A csoport neve." + +#: ../lib/modules/posixAccount.inc:409 +msgid "This is the natural name of the host. If empty, the host name will be used." +msgstr "A gazdaállomás természetes neve. Ha üresen hagyja, az állomás nevét használom helyette. " + +#: ../lib/modules/inetOrgPerson.inc:540 +msgid "This is the natural name of the user. If empty, the first and last name is used." +msgstr "A felhasználó ténylegesen használt neve. Ha üresen hagyja, a kereszt- és vezetéknév szolgál majd erre." + +#: ../lib/modules/posixAccount.inc:387 +msgid "This is the natural name of the user. If empty, the first and last name or user name is used." +msgstr "A felhasználó ténylegesen használt neve. Ha üresen hagyja, a kereszt- és vezetéknév, vagy a felhasználónév szolgál majd erre." + +#: ../lib/modules/sambaDomain.inc:115 +msgid "This is the number of bad logon attempts (0 - 999) before the account is deactivated. 0 means unlimited attempts." +msgstr "A sikertelen belépési kísérletek száma (0 - 999), mely után a fiók letiltásra kerül. A 0 korlátlan számú próbálkozást jelent." + +#: ../lib/modules/sambaDomain.inc:99 +msgid "This is the number of passwords which are saved to prevent that users reuse old passwords." +msgstr "Ennyi jelszó kerül elmentésre, melyek segítségével megakadályozzuk, hogy a felhasználók régi jelszavakat használjanak újra." + +#: ../help/help.inc:90 +msgid "This is the number of rows to show in the account list. If more entries are found the list will be split into several pages." +msgstr "Ennyi sor lesz majd látható a fióklistában. Ennél több bejegyzésnél a lista több oldalra lesz osztva." + +#: ../lib/modules/sambaSamAccount.inc:333 +msgid "This is the path to the user's home directory." +msgstr "A felhasználó home könyvtárának elérési útvonala." + +#: ../lib/modules/sambaGroupMapping.inc:365 +msgid "This is the relative ID (similar to UID on Unix) for Windows accounts. If you leave this empty LAM will calculate the RID from the UID. This can be either a number or the name of a special group:" +msgstr "Ez a relatív ID a Windows fiókokhoz (a Unix UID-jéhez hasonló). Ha üresen hagyja, a LAM az RID-et az UID-ből számítja majd ki. Lehet szám vagy a következő különleges csoportok nevének egyike: " + +#: ../lib/modules/sambaSamAccount.inc:308 +msgid "This is the relative ID number for your Windows account. You can either enter a number or one of these special accounts: " +msgstr "Ez a relatív ID szám az Ön Windows fiókjához. Megadhat egy számot, vagy egyet ezek közül a különleges fiókok közül:" + +#: ../lib/modules/sambaSamAccount.inc:312 +msgid "This is the relative ID number for your host account. If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "Ez az Ön gazdaállomásán levő fiókhoz tartozó relatív ID szám. Ha üresen hagyja, a LAM a következőt veszi figyelembe: uidSzám*2 + sambaAlgoritmikusRidAlap." + +#: ../help/help.inc:55 +msgid "This is the server address of your LDAP server. Use ldap:// for unencrypted LDAP connections or TLS encrypted connections. LDAP+SSL (LDAPS) encrypted connections are specified with ldaps://. The port value is optional." +msgstr "Ez a szervercíme az Ön LDAP szerverének. Használja az ldap:// formátumot a titkosítás nélküli LDAP kapcsolatokhoz vagy a TLS titkosítású kapcsolatokhoz. Az LDAP+SSL (LDAPS) titkosítású kapcsolatokat az ldaps:// határozza meg. A port értéke elhagyható." + +#: ../help/help.inc:74 +msgid "This is the suffix for the LDAP tree viewer." +msgstr "Ez az LDAP fa-áttekintő utótagja." + +#: ../help/help.inc:68 +msgid "This is the suffix of the LDAP tree from where to search for LDAP entries. Only entries in this subtree will be displayed in the account list. When creating a new accont this will be the DN where it is saved." +msgstr "Ez az utótagja az LDAP fának ahonnan az LDAP bejegyzések keresése kezdődik. Csak az ezen az al-fán található bejegyzések szerepelnek majd a fióklistán. Új fiók létrehozásakor ez lesz a DN, ahová a fiók elmentődik." + +#: ../lib/modules/inetLocalMailRecipient.inc:62 +msgid "This is the target email address for the user's mails." +msgstr "Ez a felhasználó leveleihez tartozó e-mail cím." + +#: ../lib/modules/customScripts.inc:46 +#: ../lib/modules/uidObject.inc:53 +#: ../lib/modules/aliasEntry.inc:55 +msgid "This is the target of this alias entry." +msgstr "Az, akire ez az álnév vonatkozik." + +#: ../lib/modules/sambaDomain.inc:127 +msgid "This is the time (in minutes) for which the user may not log in after the account was locked. -1 means forever." +msgstr "Ennyi ideig (percben mérve) nem léphet be az a felhasználó, akinek fiókja zárolva lett. A -1 jelentése: örökké." + +#: ../help/help.inc:133 +msgid "This is the time (in minutes) of inactivity after which a user is automatically logged off." +msgstr "Ennyi inaktív idő elteltével (percben mérve) a felhasználó automatikusan kiléptetésre kerül." + +#: ../help/help.inc:98 +msgid "This is the time in minutes which LAM caches its LDAP searches. Shorter times will stress LDAP more but decrease the possibility that changes are not identified." +msgstr "Ez az a percekben mért idő, amennyit az LAM cache-el az LDAP keresés során. Rövidebb időértékek jobban terhelik az LDAP-t, de csökkentik annak valószínűségét, hogy a változások nem kerülnek felismerésre." + +#: ../lib/modules/kolabUser.inc:156 +msgid "This is the time limit (in days) for other users who want to check future appointments. If you leave this blank the default (60 days) will be set." +msgstr "Időbeli korlát (napokban megadva) azoknak az egyéb felhasználóknak, akik a jövőbeli találkozókat akarják ellenőrízni. Ha üresen hagyja, az alapértelmezett érték (60 nap) lesz érvényben." + +#: ../lib/modules/sambaSamAccount.inc:327 +msgid "This is the time zone of your Samba server. LAM needs this information to display the logon hours correctly." +msgstr "Ez az Ön Samba szerverének időzónája. A LAM-nak szüksége van erre, hogy helyesen mutassa a belépések óráit." + +#: ../lib/modules/sambaSamAccount.inc:299 +msgid "This is the user's primary Windows group." +msgstr "Ez a felhasználó elsődleges Windows csoportja." + +#: ../lib/modules/zarafaUser.inc:101 +msgid "This is used to mark this account as resource." +msgstr "Ezzel a fiókot forrásnak jelöli." + +#: ../lib/modules/posixAccount.inc:95 +msgid "This login shell is invalid!" +msgstr "A belépési (login) shell érvénytelen!" + +#: ../lib/modules/inetLocalMailRecipient.inc:221 +msgid "This mail address is already in use:" +msgstr "Ez a postai cím már foglalt:" + +#: ../lib/modules/imapAccess.inc:91 +msgid "This mailbox will be created/deleted." +msgstr "A postafiók létrehozása/törlése megtörténik." + +#: ../lib/lamdaemon.inc:46 +msgid "This module requires the PHP ssh2 extension." +msgstr "Ez a modul a PHP ssh2 kiterjesztést igényli." + +#: ../templates/schema/schema.php:348 +msgid "This object class is obsolete." +msgstr "Ez az objektumosztály elavult." + +#: ../lib/modules/imapAccess.inc:73 +msgid "This option allows you to disable the certificate check of your IMAP server certificate. Disabling the certificate check is not recommended." +msgstr "E beállítással kikapcsolhatja az IMAP szerver bizonyítványára vonatkozó ellenőrzést. A bizonyítvány ellenőrzésének kikapcsolása nem javasolt." + +#: ../lib/modules/sambaSamAccount.inc:318 +msgid "This option defines the allowed logon hours for this account." +msgstr "Ez a beállítás adja meg, hogy mikor lehet ezzel a fiókkal belépni." + +#: ../lib/modules/sambaSamAccount.inc:321 +msgid "This option defines the allowed logon hours for this account. The format is the same as for the LDAP attribute. The 24*7 hours are represented as 168 bit which are saved as 21 hex (21*8 = 168) values. The first bit represents Sunday 0:00 - 0:59 in GMT." +msgstr "Ez a beállítás megadja a fióknak engedélyezett belépési időt. Formátuma ugyanaz, mint az LDAP attribútumé. A 24*7 óra 168 bites értékként jelenik meg, amely 21 hex (21*8=168) értékként kerül elmentésre. Az első bit jelenentése: vasárnap 0:00-0:59 GMT szerint." + +#: ../lib/modules/asteriskExtension.inc:197 +msgid "This pair of extension name and priority already exists." +msgstr "Ez a kiterjesztési név pár és prioritás már létezik." + +#: ../lib/modules/sambaSamAccount.inc:342 +msgid "This program is run after the login." +msgstr "Ez a program a belépés után fut." + +#: ../lib/modules/sambaSamAccount.inc:366 +msgid "This specifies the reconnect policy." +msgstr "Meghatározza az újracsatlakozás irányelvét." + +#: ../lib/modules/sambaSamAccount.inc:363 +msgid "This specifies what to do when the client connection is broken." +msgstr "Meghatározza, hogy mi a teendő, ha a kliens kapcsolata megszakad." + +#: ../help/help.inc:173 +msgid "This text is displayed on top of the self service login page. You can also input HTML code here." +msgstr "Ez a szöveg látszik majd az önkiszolgálóra való bejelentkezési oldal tetején. HTML kódot is megadhat." + +#: ../help/help.inc:175 +msgid "This text is displayed on top of the self service main page. You can also input HTML code here." +msgstr "Ez a szöveg látszik majd az önkiszolgáló-főoldalon. HTML kódot is megadhat." + +#: ../help/help.inc:171 +msgid "This text should shortly describe your selected LDAP search attribute (e.g. email or user name)." +msgstr "Ez a szöveg röviden leírja a kiválasztott LDAP keresési attribútumot (pl. e-mail vagy felhasználói név)." + +#: ../lib/tools/pdfEdit.inc:53 +msgid "This tool allows you to customize the PDF pages." +msgstr "Ezzel az eszközzel testreszabhatja a PDF-oldalakat." + +#: ../templates/lists/userlink.php:61 +#: ../templates/lists/changePassword.php:44 +msgid "This user was not found!" +msgstr "A felhasználó nem található!" + +#: ../lib/modules/zarafaUser.inc:338 +msgid "This value can only be \"Room\" or \"Equipment\"." +msgstr "Ez az érték csak \"Szoba\" vagy \"Berendezés\" lehet." + +#: ../lib/modules/zarafaGroup.inc:141 +#: ../lib/modules/zarafaGroup.inc:142 +#: ../lib/modules/zarafaGroup.inc:143 +#: ../lib/modules/sambaSamAccount.inc:102 +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:105 +#: ../lib/modules/posixAccount.inc:96 +#: ../lib/modules/zarafaUser.inc:345 +#: ../lib/modules/zarafaUser.inc:346 +#: ../lib/modules/zarafaUser.inc:347 +#: ../lib/modules/zarafaUser.inc:348 +#: ../lib/modules/zarafaUser.inc:349 +#: ../lib/modules/ppolicyUser.inc:86 +#: ../lib/modules/zarafaServer.inc:126 +msgid "This value can only be \"true\" or \"false\"." +msgstr "Ez az érték csak \"true\" vagy \"false\" lehet." + +#: ../lib/modules/posixGroup.inc:486 +msgid "This value must be a list of user names separated by semicolons." +msgstr "Ennek pontosvesszőkkel elválasztott felhasználónevekből álló listának kell lennie." + +#: ../help/help.inc:204 +msgid "This will create a new organizational unit under the selected one." +msgstr "Ezzel egy új szervezeti egység keletkezik a kijelölt alatt." + +#: ../lib/modules/posixAccount.inc:350 +msgid "This will create the user's home directory on the specified server." +msgstr "A felhasználó home könyvtárát létrehozza a megadott szerveren." + +#: ../help/help.inc:206 +msgid "This will delete the selected organizational unit. The OU has to be empty." +msgstr "Ezzel törli a kiválasztott szervezeti egységet. Az OU-nak üresnek kell lennie." + +#: ../help/help.inc:121 +msgid "This will delete the selected profile." +msgstr "Ezzel törli a kiválasztott profilt." + +#: ../lib/modules/eduPerson.inc:128 +#: ../lib/modules/sambaSamAccount.inc:378 +#: ../lib/modules/zarafaUser.inc:121 +#: ../lib/modules/phpGroupwareUser.inc:87 +#: ../lib/modules/shadowAccount.inc:189 +#: ../lib/modules/hostObject.inc:77 +msgid "This will enable the extension automatically if this profile is loaded." +msgstr "Ez automatikusan bekapcsolja a kiterjesztést amikor ez a profil betöltésre kerül." + +#: ../lib/modules/sambaSamAccount.inc:243 +msgid "This will reset the host's password to a default value." +msgstr "Ezzel visszaállítja a gazdaállomás jelszavát az alapértelmezésre." + +#: ../templates/lists/changePassword.php:249 +#: ../help/help.inc:185 +msgid "This will set a random password and display it on the screen or send it the user via mail." +msgstr "Véletlenszerű jelszót állít be és kiírja a képernyőre vagy levélben elküldi a felhasználónak." + +#: ../lib/modules/kolabUser.inc:164 +msgid "This will set a special flag on the account which tells Kolabd to remove it. Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes)." +msgstr "Ez egy különleges flag-et állít be a fiókhoz, amely a Kolabd-t utasítja a törlésre. Ezt használja, ha Kolab fiókokat kíván tisztán törölni (pl. a postafiókok megszüntetésére)." + +#: ../lib/modules/sambaSamAccount.inc:1273 +msgid "Thursday" +msgstr "Csütörtök" + +#: ../lib/modules/sambaSamAccount.inc:1295 +msgid "Time" +msgstr "A kapcsolat hibás vagy időtúllépés miatt megszakadt" + +#: ../lib/modules/sambaSamAccount.inc:347 +msgid "Time limit" +msgstr "Időkorlát" + +#: ../lib/modules/sambaSamAccount.inc:326 +#: ../lib/modules/sambaSamAccount.inc:554 +msgid "Time zone" +msgstr "Időzóna" + +#: ../lib/lamdaemon.inc:75 +msgid "Timeout while executing lamdaemon commands!" +msgstr "Időtúllépés történt a lamdaemon utasítások végrehajtása alatt!" + +#: ../lib/modules/posixAccount.inc:379 +msgid "To disable login use /bin/false. The list of shells is read from lam/config/shells" +msgstr "A belépés letiltásához használja a /bin/false-ot. A shell-ek listáját a /lam/config/shells fájlból olvasom." + +#: ../lib/modules/sambaSamAccount.inc:548 +msgid "Tokyo, Seoul, Osaka, Yakutsk" +msgstr "Tokió, Szöul, Oszaka, Jakutszk" + +#: ../templates/tools.php:63 +#: ../templates/main_header.php:98 +msgid "Tools" +msgstr "Eszközök" + +#: ../lib/export.inc:446 +#: ../lib/export.inc:516 +msgid "Total entries" +msgstr "Összes bejegyzés száma" + +#: ../lib/types/user.inc:320 +msgid "Translate GID number to group name" +msgstr "A GID-érték lefordítása csoportnévre" + +#: ../templates/config/confmain.php:240 +#: ../help/help.inc:73 +msgid "Tree suffix" +msgstr "Fa utótag" + +#: ../templates/main_header.php:128 +msgid "Tree view" +msgstr "Fa nézet" + +#: ../templates/config/confmain.php:431 +msgid "TreeSuffix is invalid!" +msgstr "A FaUtótag érvénytelen!" + +#: ../lib/modules/sambaSamAccount.inc:1273 +msgid "Tuesday" +msgstr "Kedd" + +#: ../templates/selfService/profManage.php:175 +#: ../templates/schema/schema.php:346 +#: ../lib/modules/zarafaUser.inc:100 +#: ../lib/modules/zarafaUser.inc:146 +#: ../lib/modules/zarafaUser.inc:212 +#: ../lib/modules/zarafaUser.inc:311 +#: ../lib/modules/zarafaUser.inc:467 +#: ../lib/modules/zarafaUser.inc:1044 +msgid "Type" +msgstr "Típus" + +#: ../lib/modules/posixAccount.inc:80 +msgid "UID" +msgstr "UID (Felhasználói azonosító)" + +#: ../lib/modules/posixAccount.inc:80 +msgid "UID has changed. Do you want to change home directory?" +msgstr "Az UID megváltozott. Szeretné a home könyvtárat megváltoztatni?" + +#: ../lib/modules/posixAccount.inc:75 +msgid "UID must be a number. It has to be inside the UID range which is defined in your configuration profile." +msgstr "Az UID-nak számnak kell lennie. Az értéknek azon a tartományon belülkell lennie, amit a beállítási profiljában meghatározott." + +#: ../lib/types/host.inc:95 +#: ../lib/types/user.inc:92 +#: ../lib/modules/posixAccount.inc:76 +#: ../lib/modules/posixAccount.inc:204 +#: ../lib/modules/posixAccount.inc:278 +#: ../lib/modules/posixAccount.inc:300 +#: ../lib/modules/posixAccount.inc:317 +#: ../lib/modules/posixAccount.inc:321 +#: ../lib/modules/posixAccount.inc:329 +#: ../lib/modules/posixAccount.inc:944 +#: ../lib/modules/posixAccount.inc:1146 +msgid "UID number" +msgstr "UID-érték" + +#: ../lib/modules/posixAccount.inc:76 +#, php-format +msgid "UID number has changed. To keep file ownership you have to run the following command as root: 'find / -uid %s -exec chown %s {} \\;'" +msgstr "Az UID-érték megváltozott. Root-ként kell futtatnia a következő utasítást hogy megtartsa a jelenlegi fájlengedélyeket.: 'find / -uid %s -exec chown %s {} \\;'" + +#: ../lib/modules/posixAccount.inc:67 +msgid "UID ranges for Unix accounts" +msgstr "Kérem, adja meg az UID-tartományokat a Unix-fiókokhoz:" + +#: ../lib/modules/sambaSamAccount.inc:284 +msgid "UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced with user and group name." +msgstr "A home könyvtár UNC elérési útvonala (\\\\server\\share). A $user és a $group a felhasználó-és csoportnévvel helyettesítődnek." + +#: ../lib/modules/eduPerson.inc:104 +#: ../lib/modules/eduPerson.inc:108 +msgid "URI (either URN or URL) that indicates a set of rights to specific resources." +msgstr "URI (URN vagy URL), mely jogosultságokat mutat bizonyos erőforrásokhoz." + +#: ../lib/modules/imapAccess.inc:135 +msgid "Unable to change ACL on IMAP server for mailbox deletion." +msgstr "Nem sikerült megváltoztatni az ACL-t az IMAP szerveren postafiók-törléshez." + +#: ../templates/selfService/selfServiceMain.php:273 +msgid "Unable to change your account. Maybe you do not have enough rights to change the settings." +msgstr "Nem sikerült a fiók megváltoztatása. Talán nincsenek meg a jogosultságai a beállítások megváltoztatásához." + +#: ../templates/tests/lamdaemonTest.php:253 +#: ../lib/lamdaemon.inc:88 +#: ../lib/lamdaemon.inc:93 +#: ../lib/lamdaemon.inc:140 +#: ../lib/lamdaemon.inc:145 +msgid "Unable to connect to remote server!" +msgstr "Nem sikerült a távoli szerverhez kapcsolódni!" + +#: ../lib/modules/imapAccess.inc:137 +msgid "Unable to create mailbox on IMAP server." +msgstr "Nem sikerült postafiókot létrehozni az IMAP szerveren." + +#: ../templates/ou_edit.php:77 +msgid "Unable to create new OU!" +msgstr "Nem tudok új OU-t létrehozni!" + +#: ../templates/config/profmanage.php:122 +#: ../templates/selfService/profManage.php:101 +msgid "Unable to create new profile!" +msgstr "Az új profilt nem lehet létrehozni!" + +#: ../templates/ou_edit.php:94 +msgid "Unable to delete OU!" +msgstr "Nem tudom törölni az OU-t!" + +#: ../templates/pdfedit/pdfmain.php:123 +msgid "Unable to delete PDF structure!" +msgstr "A PDF szerkezetet nem lehet törölni!" + +#: ../lib/modules/imapAccess.inc:136 +msgid "Unable to delete mailbox from IMAP server." +msgstr "Nem sikerült postafiókot törölni az IMAP szerveren." + +#: ../templates/config/profmanage.php:146 +#: ../templates/selfService/profManage.php:129 +#: ../templates/profedit/profilemain.php:112 +msgid "Unable to delete profile!" +msgstr "A profilt nem lehet törölni!" + +#: ../lib/modules/posixAccount.inc:1332 +#: ../lib/modules/posixAccount.inc:1566 +#: ../lib/modules/nisnetgroup.inc:534 +msgid "Unable to find group in LDAP." +msgstr "Nem találom a csoportot az LDAP-ban." + +#: ../templates/login.php:482 +#: ../templates/login.php:488 +msgid "Unable to find the user name in LDAP." +msgstr "Nem találom a felhasználó nevet az LDAP-ban." + +#: ../lib/modules.inc:1710 +#: ../lib/modules.inc:1714 +msgid "Unable to load LDAP entry:" +msgstr "Nem tudom betölteni az LDAP bejegyzést:" + +#: ../lib/profiles.inc:91 +#: ../lib/profiles.inc:95 +#: ../lib/selfService.inc:174 +#: ../lib/selfService.inc:178 +msgid "Unable to load profile!" +msgstr "Nem tudom betölteni a profilt!" + +#: ../lib/modules/imapAccess.inc:138 +msgid "Unable to locate mailbox on IMAP." +msgstr "Nem találom a postafiókot az IMAP szerveren." + +#: ../templates/lists/changePassword.php:505 +msgid "Unable to read sambaSID attribute." +msgstr "Nem sikerült a sambaSID attribútum olvasása!" + +#: ../templates/tests/schemaTest.php:59 +#: ../templates/schema/schema.php:91 +#: ../templates/schema/schema.php:109 +#: ../templates/schema/schema.php:270 +#: ../templates/schema/schema.php:304 +msgid "Unable to retrieve schema!" +msgstr "Nem érem el a sémát!" + +#: ../templates/selfService/adminMain.php:141 +#: ../templates/profedit/profilepage.php:113 +msgid "Unable to save profile!" +msgstr "Nem tudom elmenteni a profilt!" + +#: ../templates/lists/changePassword.php:458 +msgid "Unable to send mail!" +msgstr "Nem sikerült a levelet elküldeni!" + +#: ../templates/lists/changePassword.php:500 +#: ../templates/lists/changePassword.php:517 +msgid "Unable to sync the time when the user can/must change his password because no domain was found." +msgstr "Nem sikerült az időpontot szinkronizálni, mikor a felhasználó megváltoztathatja/meg kell változtassa jelszavát, ugyanis nem találtam egy tartományt sem." + +#: ../lib/modules/posixGroup.inc:289 +#: ../lib/modules/posixAccount.inc:129 +msgid "Unix" +msgstr "Unix" + +#: ../templates/tests/lamdaemonTest.php:206 +msgid "Unix account" +msgstr "Unix fiók" + +#: ../lib/modules/kolabUser.inc:238 +#, php-format +msgid "Unknown delegate address: %s" +msgstr "Ismeretlen kijelölt cím: %s" + +#: ../templates/lists/changePassword.php:187 +msgid "Unlock Samba account" +msgstr "Samba fiók zárolásának feloldása" + +#: ../lib/modules/posixGroup.inc:199 +#: ../lib/modules/posixAccount.inc:994 +msgid "Unlock password" +msgstr "Jelszó feloldása" + +#: ../templates/masscreate.php:98 +#: ../templates/config/confmodules.php:365 +msgid "Unsolved dependency:" +msgstr "Megoldatlan függőség:" + +#: ../templates/pdfedit/pdfpage.php:457 +msgid "Up" +msgstr "fel" + +#: ../templates/lists/changePassword.php:190 +msgid "Update Samba password timestamps" +msgstr "Samba jelszó dátumainak frissítése" + +#: ../lib/modules/sambaSamAccount.inc:231 +msgid "Update attribute \"sambaPwdLastSet\" on password change" +msgstr "A jelszó változtatásakor a \"sambaPwdLastSet\" attribútum frissítése" + +#: ../templates/massBuildAccounts.php:199 +msgid "Upload accounts to LDAP" +msgstr "A fiókok feltöltése az LDAP-ba" + +#: ../templates/masscreate.php:241 +msgid "Upload file and create accounts" +msgstr "Fájl feltöltése és fiókok létrehozása" + +#: ../templates/massDoUpload.php:125 +#: ../lib/lists.inc:940 +msgid "Upload has finished" +msgstr "A feltöltés befejeződött." + +#: ../lib/modules.inc:476 +#, php-format +msgid "Upload was stopped after errors in %s module!" +msgstr "A feltöltés leállítva a(z) %s modulban történt hiba után!" + +#: ../templates/schema/schema.php:207 +msgid "Usage" +msgstr "Használat" + +#: ../lib/modules/sambaSamAccount.inc:245 +#: ../lib/modules/sambaSamAccount.inc:248 +#: ../lib/modules/sambaSamAccount.inc:406 +msgid "Use Unix password" +msgstr "Unix jelszó használata" + +#: ../lib/modules/sambaSamAccount.inc:251 +#: ../lib/modules/sambaSamAccount.inc:254 +#: ../lib/modules/sambaSamAccount.inc:414 +#: ../lib/modules/sambaSamAccount.inc:1062 +#: ../lib/modules/sambaSamAccount.inc:1466 +msgid "Use no password" +msgstr "Jelszó nélküli használat" + +#: ../lib/modules/zarafaGroup.inc:76 +#: ../lib/modules/zarafaUser.inc:65 +msgid "Use this to hide this entry from the address book." +msgstr "Használja ezt, ha a bejegyzést el akarja rejteni a címjegyzék elől." + +#: ../lib/modules/quota.inc:101 +#: ../lib/modules/quota.inc:387 +msgid "Used blocks" +msgstr "Használt blokkok" + +#: ../lib/modules/quota.inc:102 +msgid "Used blocks. 1000 blocks are usually 1MB" +msgstr "Használt blokkok. Általában 1000 blokk számít 1 MB-nek" + +#: ../templates/schema/schema.php:266 +msgid "Used by attributes" +msgstr "Attribútumok használják" + +#: ../templates/schema/schema.php:235 +msgid "Used by object classes" +msgstr "Az ezt használó objektumosztályok" + +#: ../lib/modules/sambaDomain.inc:91 +msgid "Used for calculating RIDs from UID/GID. Do not change if unsure." +msgstr "A RID-ek UID/GID-ből történő kiszámításához használatos. Ha bizonytalan, ne változtassa meg." + +#: ../lib/modules/quota.inc:123 +#: ../lib/modules/quota.inc:391 +msgid "Used inodes" +msgstr "Használt inode-ok" + +#: ../lib/modules/quota.inc:124 +msgid "Used inodes (files)" +msgstr "Használt inode-ok (fájlok)" + +#: ../lib/modules/sambaGroupMapping.inc:69 +#: ../lib/modules/nisnetgroup.inc:209 +#: ../lib/modules/nisnetgroup.inc:582 +msgid "User" +msgstr "Felhasználó" + +#: ../lib/types/user.inc:91 +msgid "User ID" +msgstr "Felhasználó ID" + +#: ../lib/types/user.inc:62 +msgid "User accounts (e.g. Unix, Samba and Kolab)" +msgstr "Felhasználói fiókok (pl. Unix, Samba, Kolab)" + +#: ../lib/modules/sambaSamAccount.inc:275 +#: ../lib/modules/sambaSamAccount.inc:1076 +msgid "User can change password" +msgstr "A felhasználó módosíthatja a jelszavát" + +#: ../lib/modules/posixAccount.inc:359 +msgid "User description. If left empty first and last name will be used." +msgstr "A felhasználó leírása. Ha üresen hagyja, a keresztnév és vezetéknév szolgál majd erre." + +#: ../lib/modules/inetOrgPerson.inc:484 +msgid "User description. If left empty sur- and give name will be used." +msgstr "A felhasználó leírása. Ha üresen hagyja, a keresztnév és vezetéknév szolgál erre." + +#: ../lib/modules/account.inc:99 +msgid "User description. If left empty user name will be used." +msgstr "A felhasználó leírása. Ha üresen hagyja, a felhasználónevet használom helyette. " + +#: ../templates/schema/schema.php:202 +msgid "User modification" +msgstr "Felhasználó módosítása" + +#: ../lib/modules/sambaSamAccount.inc:277 +#: ../lib/modules/sambaSamAccount.inc:1082 +msgid "User must change password" +msgstr "A felhasználónak módosítania kell a jelszavát" + +#: ../templates/lists/changePassword.php:223 +#: ../templates/login.php:272 +#: ../lib/types/alias.inc:91 +#: ../lib/types/user.inc:94 +#: ../lib/modules/account.inc:78 +#: ../lib/modules/account.inc:94 +#: ../lib/modules/account.inc:117 +#: ../lib/modules/account.inc:119 +#: ../lib/modules/account.inc:120 +#: ../lib/modules/account.inc:206 +#: ../lib/modules/account.inc:232 +#: ../lib/modules/account.inc:256 +#: ../lib/modules/uidObject.inc:38 +#: ../lib/modules/uidObject.inc:60 +#: ../lib/modules/uidObject.inc:69 +#: ../lib/modules/uidObject.inc:78 +#: ../lib/modules/uidObject.inc:93 +#: ../lib/modules/uidObject.inc:155 +#: ../lib/modules/posixAccount.inc:81 +#: ../lib/modules/posixAccount.inc:82 +#: ../lib/modules/posixAccount.inc:85 +#: ../lib/modules/posixAccount.inc:190 +#: ../lib/modules/posixAccount.inc:299 +#: ../lib/modules/posixAccount.inc:354 +#: ../lib/modules/posixAccount.inc:933 +#: ../lib/modules/posixAccount.inc:1144 +#: ../lib/modules/zarafaUser.inc:751 +#: ../lib/modules/nisnetgroup.inc:142 +#: ../lib/modules/nisnetgroup.inc:471 +#: ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:476 +#: ../lib/modules/inetOrgPerson.inc:543 +#: ../lib/modules/inetOrgPerson.inc:821 +#: ../lib/modules/inetOrgPerson.inc:1046 +#: ../lib/modules/inetOrgPerson.inc:1104 +msgid "User name" +msgstr "Felhasználónév" + +#: ../lib/modules/posixAccount.inc:89 +#: ../lib/modules/inetOrgPerson.inc:75 +msgid "User name already exists!" +msgstr "A felhasználónév már létezik!" + +#: ../lib/modules/account.inc:117 +#: ../lib/modules/account.inc:118 +#: ../lib/modules/account.inc:120 +#: ../lib/modules/uidObject.inc:78 +#: ../lib/modules/posixAccount.inc:82 +#: ../lib/modules/posixAccount.inc:87 +#: ../lib/modules/zarafaUser.inc:343 +#: ../lib/modules/zarafaUser.inc:344 +#: ../lib/modules/nisnetgroup.inc:142 +#: ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:74 +msgid "User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !" +msgstr "A felhasználónév érvénytelen karaktereket tartalmaz. Érvényes karakterek: a-z, A-Z, 0-9 és .-_ !" + +#: ../lib/modules/posixAccount.inc:85 +msgid "User name in use. Selected next free user name." +msgstr "Ez a felhasználónév már használatban van. A legközelebb álló, még nem használt felhasználónevet választom helyette." + +#: ../lib/modules/account.inc:95 +#: ../lib/modules/posixAccount.inc:355 +#: ../lib/modules/inetOrgPerson.inc:544 +msgid "User name of the user who should be created. Valid characters are: a-z,A-Z,0-9, .-_. If user name is already used user name will be expanded with a number. The next free number will be used. Warning: Older systems have problems with user names longer than 8 characters. You can not log in to Windows if user name is longer than 16 characters." +msgstr "A létrehozásra kerülő felhasználó felhasználói neve. Használható karakterek: a-z,A-Z,0-9, .-_. Ha a felhasználónév már használatban van, számmal lesz megtoldva. A legközelebbi, nem használt számmal. Figyelem: Régebbi rendszereken problémát jelenthetnek a 8-nál több karakterből álló felhasználónevek. Windows-ba nem fog tudni bejelentkezni, ha a felhasználónév 16 karakternél hosszabb." + +#: ../lib/modules/zarafaUser.inc:112 +#: ../lib/modules/zarafaUser.inc:154 +#: ../lib/modules/zarafaUser.inc:249 +#: ../lib/modules/zarafaUser.inc:323 +#: ../lib/modules/zarafaUser.inc:522 +#: ../lib/modules/zarafaUser.inc:1056 +#: ../lib/modules/zarafaUser.inc:1114 +msgid "User server" +msgstr "Felhasználói szerver" + +#: ../lib/types/sudo.inc:78 +msgid "User(s)" +msgstr "Felhasználó(k)" + +#: ../lib/types/user.inc:53 +#: ../lib/modules/posixAccount.inc:61 +#: ../lib/modules/posixAccount.inc:62 +#: ../lib/modules/posixAccount.inc:65 +#: ../lib/modules/posixAccount.inc:160 +#: ../lib/modules/sudoRole.inc:63 +#: ../lib/modules/sudoRole.inc:87 +#: ../lib/modules/sudoRole.inc:134 +#: ../lib/modules/sudoRole.inc:173 +#: ../lib/modules/sudoRole.inc:182 +#: ../lib/modules/sudoRole.inc:264 +#: ../lib/modules/sudoRole.inc:687 +msgid "Users" +msgstr "Felhasználók" + +#: ../lib/modules/zarafaUser.inc:89 +msgid "Users or groups that may directly send email as this user." +msgstr "Felhasználók vagy csoportok, akik közvetlenül küldhetnek emailt e felhasználó nevében." + +#: ../lib/modules/posixGroup.inc:394 +msgid "Users who are member of the current group. Users who have set their primary group to this group will not be shown." +msgstr "A felhasználók, akik ennek a csoportnak tagjai. Azok, akiknek ez az elsődleges csoportjuk, itt nem látszanak majd." + +#: ../lib/modules/posixGroup.inc:398 +msgid "Users who will become member of the current group. User names are separated by semicolons." +msgstr "A felhasználók, akik a jelenlegi csoport tagjai lesznek. A felhasználóneveket pontosvesszővel kell elválasztani." + +#: ../templates/tests/lamdaemonTest.php:199 +#, php-format +msgid "Using %s as lamdaemon remote server." +msgstr "A(z) %s lamdaemon-t használom távoli szerverként." + +#: ../templates/tests/lamdaemonTest.php:221 +#, php-format +msgid "Using %s to connect to remote server." +msgstr "A(z) %s használatával kapcsolódok a távoli szerverhez." + +#: ../templates/tree/creation_template.php:86 +msgid "Using template:" +msgstr "A használt sablon:" + +#: ../lib/modules/posixAccount.inc:314 +msgid "Usually, users are not added to groups as memberUid if they have this group as primary group. If your application ignores primary groups then you can select this option to override this behaviour." +msgstr "A felhasználók általában nem a memberUid szerint lesznek csoportok tagjai, ha ez a csoport az elsődleges csoportjuk. Ha az Ön alkalmazása figyelmen kívül hagyja az elsődleges csoportokat, akkor ezt ezen opció használatával bírálhatja felül." + +#: ../help/help.inc:84 +msgid "Valid users" +msgstr "Elfogadott felhasználók" + +#: ../lib/modules/imapAccess.inc:72 +#: ../lib/modules/imapAccess.inc:99 +msgid "Validate server certificate" +msgstr "Érvényes szerver bizonyítvány" + +#: ../templates/serverInfo.php:123 +msgid "Vendor name" +msgstr "Forgalmazó neve" + +#: ../templates/serverInfo.php:129 +msgid "Vendor version" +msgstr "Forgalmazói változat" + +#: ../lib/modules/asteriskVoicemail.inc:110 +#: ../lib/modules/asteriskVoicemail.inc:117 +#: ../lib/modules/asteriskVoicemail.inc:134 +#: ../lib/modules/asteriskVoicemail.inc:187 +#: ../lib/modules/asteriskVoicemail.inc:279 +#: ../lib/modules/asteriskVoicemail.inc:402 +msgid "Voicemail context" +msgstr "Hangposta környezet" + +#: ../lib/modules/asteriskVoicemail.inc:87 +msgid "Voicemail mailbox for this account." +msgstr "Hangposta postafiók ehhez a fiókhoz." + +#: ../templates/login.php:405 +msgid "Want more features? Get LAM Pro!" +msgstr "Még több eszközt szeretne? Használja a LAM Pro-t!" + +#: ../templates/config/mainmanage.php:215 +msgid "Warning" +msgstr "Figyelem" + +#: ../templates/delete.php:216 +#: ../lib/modules.inc:2013 +#, php-format +msgid "Was unable to add attribtues to DN: %s." +msgstr "Nem tudtam attribútumokat adni a következõ DN-hez: %s." + +#: ../lib/modules.inc:1983 +#, php-format +msgid "Was unable to create DN: %s." +msgstr "Nem tudtam létrehozni a következő DN-t: %s." + +#: ../templates/tree/delete.php:113 +#: ../templates/delete.php:319 +#: ../templates/delete.php:328 +#, php-format +msgid "Was unable to delete DN: %s." +msgstr "Nem tudtam törölni a következő DN-t: %s." + +#: ../templates/tree/update.php:109 +#: ../templates/tree/add_oclass.php:93 +#: ../templates/tree/add_oclass_form.php:162 +#: ../templates/delete.php:207 +#: ../lib/modules.inc:2001 +#, php-format +msgid "Was unable to modify attribtues from DN: %s." +msgstr "Nem tudtam attribútumokat módosítani a következő DN-ből: %s." + +#: ../templates/lists/changePassword.php:545 +#, php-format +msgid "Was unable to modify attributes from DN: %s." +msgstr "Nem sikerült attribútumokat módosítani a következő DN-ből: %s." + +#: ../templates/delete.php:225 +#: ../lib/modules.inc:2025 +#, php-format +msgid "Was unable to remove attribtues from DN: %s." +msgstr "Nem tudtam attribútumokat törölni a következő DN-ből: %s." + +#: ../lib/modules.inc:1964 +#, php-format +msgid "Was unable to rename DN: %s." +msgstr "Nem sikerült átnevezni a következő DN-t: %s." + +#: ../lib/modules/sambaSamAccount.inc:1273 +msgid "Wednesday" +msgstr "Szerda" + +#: ../lib/modules/sambaSamAccount.inc:539 +msgid "Western Europe Time, London, Lisbon" +msgstr "Nyugat-európai idő, London, Lisszabon" + +#: ../lib/modules/zarafaUser.inc:85 +msgid "When the hard quota limit is reached, email can not be delivered to that user anymore." +msgstr "Amikor a kemény kvóta határt elérte, a felhasználó nem kaphat emailt." + +#: ../help/help.inc:66 +msgid "When using ldaps:// or TLS be sure to use exactly the same IP/domain name as in your certificate!" +msgstr "Ha az ldaps://-t vagy a TLS-t használja, ügyeljen, hogy ugyanazt az IP/tartomány nevet használja, mint ami a bizonyítványában szerepel!" + +#: ../lib/modules/sambaSamAccount.inc:315 +msgid "Windows domain name of account." +msgstr "A csoport Windows-tartományi neve." + +#: ../lib/modules/sambaSamAccount.inc:193 +#: ../lib/modules/sambaSamAccount.inc:445 +#: ../lib/modules/sambaSamAccount.inc:1159 +#: ../lib/modules/sambaSamAccount.inc:1514 +#: ../lib/modules/sambaSamAccount.inc:1654 +#: ../lib/modules/sambaGroupMapping.inc:278 +#: ../lib/modules/sambaGroupMapping.inc:322 +#: ../lib/modules/sambaGroupMapping.inc:391 +msgid "Windows group" +msgstr "Windows csoport" + +#: ../lib/modules/sambaGroupMapping.inc:360 +msgid "Windows group name" +msgstr "Windows csoportnév" + +#: ../lib/modules/sambaGroupMapping.inc:373 +msgid "Windows group type." +msgstr "Windows csoporttípus" + +#: ../lib/modules/sambaSamAccount.inc:372 +msgid "Windows password hashes are saved by default as NT and LM hashes. LM hashes are insecure and only needed for old versions of Windows. You should disable them unless you really need them." +msgstr "A Windows jelszavak hash-ei alapértelemzés szerint NT és LM hash-ként kerülnek mentésre. Az LM hash-ek nem biztonságosak, és csak a Windows régi változataihoz szükségesek. Kapcsolja ki ezeket, ha nincs kifejezetten szüksége rájuk." + +#: ../lib/modules/sambaSamAccount.inc:298 +msgid "Windows primary group" +msgstr "Windows elsődleges csoport" + +#: ../lib/modules/sambaSamAccount.inc:301 +msgid "Windows primary group SID" +msgstr "Windows elsődleges csoport SID" + +#: ../lib/modules/sambaGroupMapping.inc:369 +msgid "Windows-Domain name of group." +msgstr "A csoport Windows-tartományi neve." + +#: ../lib/modules/sambaDomain.inc:139 +msgid "Workgroup" +msgstr "Munkacsoport" + +#: ../lib/modules/sambaSamAccount.inc:217 +#: ../lib/modules/sambaSamAccount.inc:344 +#: ../lib/modules/sambaSamAccount.inc:1402 +#: ../lib/modules/sambaSamAccount.inc:1674 +msgid "Working directory" +msgstr "Munkakönyvtár" + +#: ../lib/modules/sambaSamAccount.inc:345 +msgid "Working directory of initial program." +msgstr "A belépéskor induló program munkakönyvtára." + +#: ../templates/config/confmain.php:299 +msgid "Write" +msgstr "Írás" + +#: ../templates/config/confmain.php:252 +msgid "Write access" +msgstr "Írási jog" + +#: ../templates/login.php:470 +#: ../templates/login.php:528 +#: ../templates/selfService/selfServiceLogin.php:98 +#: ../templates/selfService/selfServiceLogin.php:116 +msgid "Wrong password/user name combination. Please try again." +msgstr "Rossz jelszó/felhasználónév kombináció. Próbálja újra." + +#: ../templates/schema/schema.php:151 +#: ../templates/schema/schema.php:193 +#: ../templates/schema/schema.php:198 +#: ../templates/schema/schema.php:203 +#: ../lib/modules/imapAccess.inc:99 +msgid "Yes" +msgstr "Igen" + +#: ../lib/modules/posixGroup.inc:482 +msgid "You are using a capital letters. This can cause problems because Windows isn't case-sensitive." +msgstr "Nagy betűket használ. Ez gondokat jelenthet, mert a Windows nem különbözteti meg a kis- és nagybetűket." + +#: ../lib/modules/account.inc:119 +msgid "You are using a capital letters. This can cause problems because windows isn't case-sensitive." +msgstr "Nagy betűket használ. Ez gondokat jelenthet, mert a Windows nem különbözteti meg a kis- és nagybetűket." + +#: ../lib/modules/posixAccount.inc:81 +#: ../lib/modules/posixAccount.inc:83 +msgid "You are using capital letters. This can cause problems because Windows is not case-sensitive." +msgstr "Nagy betűket használ. Ez gondokat okozhat, mert a Windows nem különbözteti meg a kis- és nagybetűket." + +#: ../help/help.inc:100 +msgid "You can specify if LAM allows full write access, password changes or only read access." +msgstr "Meghatározhatja, hogy a LAM teljes írási, jelszó változtatási, vagy pedig csak olvasási jogot engedélyezzen." + +#: ../lib/modules/zarafaGroup.inc:80 +#: ../lib/modules/zarafaUser.inc:69 +msgid "You can use this to temporarily deactivate the Zarafa extension." +msgstr "Használja ezt a Zarafa kiterjesztés ideiglenes kikapcsolásához." + +#: ../help/help.inc:190 +#: ../help/help.inc:199 +msgid "You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. @@uid@@ for the user name)." +msgstr "Használhat helyettesítő jeleket az LDAP attribútumokhoz a @@attribute@@ formában (pl. @@uid@@ a felhasználó nevéhez)." + +#: ../lib/modules/customScripts.inc:58 +#: ../lib/modules/customScripts.inc:70 +msgid "You can use wildcards in the format $wildcard$ which are replaced by the LDAP attribute with the same name. For multi-value attributes the values will be separated by commas." +msgstr "Helyettesítő karaktereket használhat a $helyettesito$ formában, melyek az azonos nevű LDAP attribútummal lesznek helyettesítve. Többértékű attribútumok esetén az értékek vesszővel lesznek elválasztva." + +#: ../templates/tree/templates/creation/custom.php:106 +msgid "You did not select any object classes for this object. Please go back and do so." +msgstr "Nem választott semmilyen objektumosztályt ehhez az objektumhoz. Kérem, lépjen vissza és tegye meg." + +#: ../templates/tests/schemaTest.php:59 +msgid "You do not have the required access rights or the LDAP schema is not published by your server." +msgstr "Nincsenek meg a szükséges hozzáférési jogosultságai vagy az Ön szervere nem kínálja fel az LDAP sémát." + +#: ../lib/modules/dhcp_settings.inc:276 +#: ../lib/modules/dhcp_settings.inc:277 +msgid "You entered one or more invalid DNS servers." +msgstr "Egy vagy több érvénytelen DNS szervert adott meg." + +#: ../templates/lists/changePassword.php:391 +msgid "You have to activate the \"I am sure\" checkbox." +msgstr "Be kell jelölnie a \"Biztos vagyok benne\" jelölőnégyzetet." + +#: ../templates/tree/add_attr.php:79 +msgid "You left the attribute value blank. Please go back and try again." +msgstr "Az attribútum értékét üresen hagyta. Kérem, lépjen vissza és próbálkozzon újra." + +#: ../templates/tree/create.php:85 +#, php-format +msgid "You left the value blank for required attribute: %s." +msgstr "Ehhez a szükséges attribútumhoz tartozó értéket üresen hagyta: %s." + +#: ../templates/tree/update_confirm.php:254 +msgid "You made no changes." +msgstr "Semmit nem változtatott." + +#: ../lib/modules/groupOfNames.inc:124 +#: ../lib/modules/groupOfNames.inc:125 +msgid "You need to add at least one member to this group." +msgstr "A csoporthoz legalább egy tagot hozzá kell adni." + +#: ../lib/modules/imapAccess.inc:139 +msgid "Your IMAP domain(s) and email address domain do not match." +msgstr "IMAP tartománya(i) és email címének tartománya nem egyeznek." + +#: ../templates/tests/lamdaemonTest.php:226 +#, php-format +msgid "Your LAM admin user (%s) must be a valid Unix account to work with lamdaemon!" +msgstr "A(z) (%s) LAM adminisztrátornak érvényes Unix fióknak kell lennie, hogy a lamdaemon-nal tudjon dolgozni!" + +#: ../lib/lamdaemon.inc:60 +#: ../lib/lamdaemon.inc:65 +#: ../lib/lamdaemon.inc:125 +#: ../lib/lamdaemon.inc:130 +msgid "Your LAM admin user must be a valid Unix account to work with lamdaemon!" +msgstr "A LAM adminisztrátornak érvényes Unix fióknak kell lennie, hogy a lamdaemon-nal tudjon dolgozni!" + +#: ../templates/tree/add_attr_form.php:165 +msgid "Your PHP configuration has disabled file uploads. Please check php.ini before proceeding." +msgstr "Az Ön PHP beállításai nem teszik lehetővé a fájlfeltöltést. Kérem, ellenőrizze a php.ini-t, mielőtt folytatja." + +#: ../lib/security.inc:145 +msgid "Your session expired, click here to go back to the login page." +msgstr "A belépési ideje lejárt, kattintson ide, hogy a belépési oldalra visszatérjen." + +#: ../templates/login.php:233 +msgid "Your session expired, please log in again." +msgstr "A belépési ideje lejárt, kérem, jelentkezzen be újra!" + +#: ../templates/login.php:238 +#: ../templates/login.php:243 +#: ../templates/login.php:252 +msgid "Your settings were successfully saved." +msgstr "Beállításait sikeresen elmentette." + +#: ../lib/modules/inetOrgPerson.inc:404 +msgid "YourCompany, Human Resources" +msgstr "AzÖnCége, Humán Erőforrás Osztály" + +#: ../lib/modules/zarafaGroup.inc:49 +#: ../lib/modules/zarafaUser.inc:49 +#: ../lib/modules/zarafaServer.inc:49 +msgid "Zarafa" +msgstr "Zarafa" + +#: ../lib/modules/ddns.inc:103 +#: ../lib/modules/ddns.inc:112 +#: ../lib/modules/ddns.inc:127 +#: ../lib/modules/ddns.inc:370 +#: ../lib/modules/ddns.inc:400 +msgid "Zone names" +msgstr "Zóna nevek" + +#: ../lib/modules/ddns.inc:104 +msgid "Zone names for the DNS server (e.g. company.local)." +msgstr "A DNS szerverek zóna nevei (pl. cég.helyi)." + +#: ../templates/tree/update_confirm.php:192 +#: ../templates/tree/update_confirm.php:204 +msgid "[attribute deleted]" +msgstr "[attribútum törölve]" + +#: ../lib/modules/sambaSamAccount.inc:471 +msgid "\\\\server\\homes\\smiller" +msgstr "\\\\server\\homes\\imolnar" + +#: ../lib/modules/sambaSamAccount.inc:479 +msgid "\\\\server\\profiles\\smiller" +msgstr "\\\\server\\profiles\\imolnar" + +#: ../lib/modules/phpGroupwareUser.inc:162 +#: ../lib/modules/phpGroupwareUser.inc:332 +msgid "active" +msgstr "aktív" + +#: ../templates/tree/edit.php:494 +msgid "add value" +msgstr "érték hozzáadás" + +#: ../lib/modules/posixGroup.inc:366 +#: ../lib/modules/nisnetgroup.inc:104 +#: ../lib/modules/groupOfNames.inc:86 +msgid "adminstrators" +msgstr "adminisztrátorok" + +#: ../lib/modules/sudoRole.inc:123 +msgid "backupRootFileSystem" +msgstr "háttértárGyökérFájlRenszer" + +#: ../templates/schema/schema.php:218 +msgid "character" +msgstr "karakter" + +#: ../templates/schema/schema.php:217 +msgid "characters" +msgstr "karakterek" + +#: ../help/help.inc:78 +msgid "dc=yourcompany,dc=com" +msgstr "dc=azöncége,dc=com" + +#: ../lib/modules/ppolicyUser.inc:111 +msgid "default" +msgstr "alapértelmezett" + +#: ../templates/tree/edit.php:314 +msgid "delete attribute" +msgstr "attribútum törlés" + +#: ../lib/modules/sambaSamAccount.inc:1417 +#: ../lib/modules/sambaSamAccount.inc:1694 +msgid "disabled" +msgstr "kikapcsolva" + +#: ../lib/modules/sambaSamAccount.inc:1428 +#: ../lib/modules/sambaSamAccount.inc:1705 +msgid "disconnect" +msgstr "lekapcsolás" + +#: ../templates/tree/edit.php:179 +#: ../templates/tree/edit.php:181 +#: ../templates/tree/edit.php:308 +#: ../templates/tree/edit.php:310 +#: ../templates/tree/add_value_form.php:107 +#: ../templates/tree/add_value_form.php:110 +msgid "download value" +msgstr "érték letöltése" + +#: ../templates/tree/edit.php:391 +msgid "false" +msgstr "hamis" + +#: ../lib/modules/ppolicy.inc:36 +msgid "force" +msgstr "kényszerítés" + +#: ../lib/modules/sambaSamAccount.inc:1436 +#: ../lib/modules/sambaSamAccount.inc:1713 +msgid "from any client" +msgstr "bármely kliensről" + +#: ../lib/modules/sambaSamAccount.inc:1437 +#: ../lib/modules/sambaSamAccount.inc:1714 +msgid "from previous client only" +msgstr "csak az előző kliensről" + +#: ../lib/modules/posixAccount.inc:219 +#: ../lib/modules/nisnetgroup.inc:118 +msgid "group01,group02" +msgstr "csoport01, csoport02" + +#: ../lib/modules/zarafaGroup.inc:95 +msgid "group1@company.com,group2@company.com" +msgstr "csoport1@cegnev.com,csoport2@cegnev.com" + +#: ../lib/modules/zarafaGroup.inc:89 +msgid "group@company.com" +msgstr "csoport@ceg.com" + +#: ../lib/modules/quota.inc:190 +#: ../lib/modules/quota.inc:192 +msgid "hours" +msgstr "órák" + +#: ../lib/modules/phpGroupwareUser.inc:162 +#: ../lib/modules/phpGroupwareUser.inc:335 +msgid "inactive" +msgstr "használaton kívüli" + +#: ../lib/modules/sambaSamAccount.inc:1421 +#: ../lib/modules/sambaSamAccount.inc:1698 +msgid "input off, notify off" +msgstr "bevitel kikapcsolva, figyelmeztetés kikapcsolva" + +#: ../lib/modules/sambaSamAccount.inc:1420 +#: ../lib/modules/sambaSamAccount.inc:1697 +msgid "input off, notify on" +msgstr "bevitel kikapcsolva, figyelmeztetés bekapcsolva" + +#: ../lib/modules/sambaSamAccount.inc:1419 +#: ../lib/modules/sambaSamAccount.inc:1696 +msgid "input on, notify off" +msgstr "bevitel bekapcsolva, figyelmeztetés kikapcsolva" + +#: ../lib/modules/sambaSamAccount.inc:1418 +#: ../lib/modules/sambaSamAccount.inc:1695 +msgid "input on, notify on" +msgstr "bevitel bekapcsolva, figyelmeztetés bekapcsolva" + +#: ../lib/tree.inc:1175 +msgid "jpegPhoto contains errors" +msgstr "jpegPhoto hibás" + +#: ../help/help.inc:60 +msgid "ldap://localhost:389 connects to localhost using a standard LDAP connection on port 389" +msgstr "ldap://localhost:839 kapcsolódik localhost-hoz szabályos LDAP kapcsolattal a 389-es porton" + +#: ../help/help.inc:62 +msgid "ldaps://ldap.domain.com connects to ldap.domain.com using an encrypted LDAP connection." +msgstr "ldaps://ldap.domain.com kapcsolódik az ldap.domain.com-hoz titkosítás nélküli LDAP kapcsolatottal." + +#: ../lib/modules/posixAccount.inc:286 +msgid "machines" +msgstr "gépek" + +#: ../lib/modules/inetLocalMailRecipient.inc:107 +msgid "mail.yourdomain.org" +msgstr "mail.azöncége.org" + +#: ../lib/modules/sambaSamAccount.inc:390 +#: ../lib/modules/sambaSamAccount.inc:514 +msgid "mydomain" +msgstr "tartományom" + +#: ../lib/modules/sambaSamAccount.inc:447 +msgid "mygroup" +msgstr "csoportom" + +#: ../templates/config/confmain.php:235 +#: ../lib/modules/zarafaGroup.inc:419 +#: ../lib/modules/zarafaGroup.inc:426 +#: ../lib/modules/zarafaGroup.inc:429 +#: ../lib/modules/sambaSamAccount.inc:558 +#: ../lib/modules/sambaSamAccount.inc:1662 +#: ../lib/modules/sambaSamAccount.inc:1670 +#: ../lib/modules/sambaSamAccount.inc:1680 +#: ../lib/modules/sambaSamAccount.inc:1685 +#: ../lib/modules/sambaSamAccount.inc:1690 +#: ../lib/modules/zarafaUser.inc:1013 +#: ../lib/modules/zarafaUser.inc:1058 +#: ../lib/modules/zarafaUser.inc:1064 +#: ../lib/modules/zarafaUser.inc:1070 +#: ../lib/modules/ppolicy.inc:34 +#: ../lib/modules/ppolicy.inc:449 +#: ../lib/modules/ppolicy.inc:465 +#: ../lib/modules/ppolicy.inc:470 +#: ../lib/modules/ppolicy.inc:477 +#: ../lib/modules/ppolicy.inc:480 +#: ../lib/modules/zarafaServer.inc:321 +msgid "no" +msgstr "nem" + +#: ../templates/tree/templates/creation/custom.php:189 +#: ../templates/tree/templates/creation/custom.php:212 +#: ../templates/schema/schema.php:158 +#: ../templates/schema/schema.php:227 +#: ../templates/schema/schema.php:238 +#: ../templates/schema/schema.php:287 +#: ../templates/schema/schema.php:353 +#: ../templates/schema/schema.php:368 +#: ../templates/schema/schema.php:402 +#: ../templates/schema/schema.php:424 +msgid "none" +msgstr "semmi" + +#: ../templates/tree/edit.php:392 +msgid "none, remove value" +msgstr "semmi, érték törlése" + +#: ../templates/schema/schema.php:214 +msgid "not applicable" +msgstr "nem alkalmazható" + +#: ../templates/schema/schema.php:165 +#: ../templates/schema/schema.php:170 +#: ../templates/schema/schema.php:175 +#: ../templates/schema/schema.php:208 +msgid "not specified" +msgstr "nem meghatározott" + +#: ../help/help.inc:72 +msgid "ou=People,dc=yourcompany,dc=com will read and store all accounts in this subtree." +msgstr "ou=emberek,dc=AzÖnCége,dc=com minden fiókot ezen az al-fán olvas és tárol." + +#: ../lib/modules/eduPerson.inc:179 +#: ../lib/modules/eduPerson.inc:185 +#: ../lib/modules/eduPerson.inc:191 +msgid "ou=accounts,dc=yourdomain,dc=org" +msgstr "ou=fiókok,dc=AzÖnTartománya,dc=org" + +#: ../lib/modules/posixAccount.inc:272 +msgid "pc01$" +msgstr "pc01$" + +#: ../lib/modules/posixAccount.inc:293 +msgid "pc01,Room 2.34" +msgstr "pc01,Terem 2.34" + +#: ../lib/modules/hostObject.inc:86 +msgid "pc01,pc02" +msgstr "pc01,pc02" + +#: ../templates/tree/edit.php:246 +#: ../templates/config/confmain.php:374 +#: ../templates/selfService/adminMain.php:615 +msgid "required" +msgstr "szükséges" + +#: ../lib/modules/sambaSamAccount.inc:1429 +#: ../lib/modules/sambaSamAccount.inc:1706 +msgid "reset" +msgstr "Visszaállítás" + +#: ../lib/modules/asteriskAccount.inc:156 +#: ../lib/modules/posixGroup.inc:357 +#: ../lib/modules/sambaSamAccount.inc:402 +#: ../lib/modules/posixAccount.inc:247 +#: ../lib/modules/asteriskVoicemail.inc:158 +msgid "secret" +msgstr "titok" + +#: ../lib/modules/uidObject.inc:62 +#: ../lib/modules/posixAccount.inc:192 +#: ../lib/modules/inetOrgPerson.inc:1106 +#: ../lib/modules/nisMailAlias.inc:91 +msgid "smiller" +msgstr "imolnar" + +#: ../lib/modules/inetLocalMailRecipient.inc:95 +msgid "smiller@otherdomain.org" +msgstr "imolnar@mastartomany.org" + +#: ../lib/modules/inetLocalMailRecipient.inc:101 +msgid "smiller@yourdomain.org" +msgstr "imolnar@azontartomanya.org" + +#: ../lib/modules/ldapPublicKey.inc:76 +msgid "ssh-dss 234234 user@host" +msgstr "ssh-dss 234234 felhasznalo@gazdaallomas" + +#: ../templates/tree/edit.php:437 +msgid "structural" +msgstr "strukturális" + +#: ../lib/modules/asteriskExtension.inc:171 +msgid "test" +msgstr "Teszt" + +#: ../lib/modules/asteriskExtension.inc:165 +msgid "test-start" +msgstr "Teszt indítás" + +#: ../templates/tree/edit.php:389 +msgid "true" +msgstr "igaz" + +#: ../lib/modules/ipHost.inc:92 +#: ../lib/modules/inetOrgPerson.inc:276 +#: ../lib/modules/aliasEntry.inc:64 +msgid "uid=smiller,ou=People,dc=company,dc=com" +msgstr "uid=imolnar,ou=emberek,dc=cég,dc=com" + +#: ../lib/modules/posixGroup.inc:351 +msgid "user01,user02,user03" +msgstr "felhasználó01, felhasználó02, felhasználó03" + +#: ../lib/modules/eduPerson.inc:140 +#: ../lib/modules/inetOrgPerson.inc:356 +#: ../lib/modules/asteriskVoicemail.inc:171 +msgid "user@company.com" +msgstr "felhasznalo@ceg.com" + +#: ../lib/modules/posixAccount.inc:212 +msgid "users" +msgstr "felhasználók" + +#: ../templates/config/confmain.php:235 +#: ../lib/modules/zarafaGroup.inc:421 +#: ../lib/modules/zarafaGroup.inc:424 +#: ../lib/modules/zarafaGroup.inc:431 +#: ../lib/modules/sambaSamAccount.inc:558 +#: ../lib/modules/sambaSamAccount.inc:1660 +#: ../lib/modules/sambaSamAccount.inc:1668 +#: ../lib/modules/sambaSamAccount.inc:1678 +#: ../lib/modules/sambaSamAccount.inc:1683 +#: ../lib/modules/sambaSamAccount.inc:1688 +#: ../lib/modules/zarafaUser.inc:1015 +#: ../lib/modules/zarafaUser.inc:1060 +#: ../lib/modules/zarafaUser.inc:1066 +#: ../lib/modules/zarafaUser.inc:1072 +#: ../lib/modules/ppolicy.inc:35 +#: ../lib/modules/ppolicy.inc:467 +#: ../lib/modules/ppolicy.inc:472 +#: ../lib/modules/ppolicy.inc:475 +#: ../lib/modules/ppolicy.inc:482 +#: ../lib/modules/inetOrgPerson.inc:396 +#: ../lib/modules/zarafaServer.inc:323 +msgid "yes" +msgstr "igen" + +#~ msgid "" +#~ "Attention: The DHCP service needs to be restarted after changes in DDNS." +#~ msgstr "" +#~ "Figyelem: A DHCP szolgáltatást újra kell indítani a DDNS-en végrehajtott " +#~ "változtatások után." +#~ msgid "Back to Login" +#~ msgstr "Vissza a Bejelentkezéshez" +#~ msgid "Cache timeout is invalid!" +#~ msgstr "A cache időtúllépés érvénytelen!" +#~ msgid "Change profile" +#~ msgstr "Profil módosítása" +#~ msgid "Delegates has invalid format!" +#~ msgstr "A meghatalmazottak formátuma érvénytelen!" +#~ msgid "Delete Kolab account" +#~ msgstr "Kolab fiók törlése" +#~ msgid "Deleting. Please stand by ..." +#~ msgstr "Törlés folyamatban. Kérem várjon ..." +#~ msgid "Fixed IP" +#~ msgstr "Fix IP" +#~ msgid "" +#~ "Here is a list of possible columns. The red columns must be included in " +#~ "the CSV file and filled with data for all accounts." +#~ msgstr "" +#~ "Ez egy, a létrehozható oszlopokból álló lista. A piros oszlopoknak " +#~ "szerepelniük kell a CSV fájlban és minden fiók részére ki kell őket " +#~ "tölteni." +#~ msgid "LDAP" +#~ msgstr "LDAP" +#~ msgid "Please confirm:" +#~ msgstr "Kérem erősítse meg:" +#~ msgid "Please select your user name and enter your password to log in." +#~ msgstr "" +#~ "Kérem, válassza ki a felhasználónevet és adja meg jelszavát a belépéshez." +#~ msgid "Text for user PDF" +#~ msgstr "Szöveg a felhasználók PDF-jeihez" +#~ msgid "The domain name needs to be shorter than 15 characters." +#~ msgstr "A tartománynévnek 15 karakternél rövidebbnek kell lennie." +#~ msgid "" +#~ "This is an example how it would look in your spreadsheet program before " +#~ "you convert to CSV:" +#~ msgstr "" +#~ "Ez egy példa, hogy mi látszódna az Ön táblázatkezelő programjában mielőtt " +#~ "CSV-re konvertálja:" +#~ msgid "This text will appear on top of every user PDF file." +#~ msgstr "" +#~ "Ez a szöveg jelenik majd meg minden felhasználó PDF fájljának tetején." +#~ msgid "This value can only be \\\"true\\\" or \\\"false\\\"!" +#~ msgstr "Ez az érték csak \\\"true\\\" vagy \\\"false\\\" lehet." +#~ msgid "" +#~ "Unable to load available languages. Setting English as default language. " +#~ "For further instructions please contact the Admin of this site." +#~ msgstr "" +#~ "Nem tudom betölteni az elérhető nyelveket. Az angolt állítom be " +#~ "alapértelmezett nyelvnek. További teendőkért kérem forduljon az oldal " +#~ "adminisztrátorához." +#~ msgid "Add Samba 3 account" +#~ msgstr "Samba 3 fiók hozzáadása" +#~ msgid "Back to OU-Editor" +#~ msgstr "Vissza az OU-szerkesztőbe" +#~ msgid "Back to PDF Editor" +#~ msgstr "Vissza a PDF-szerkesztőbe" +#~ msgid "Back to profile editor" +#~ msgstr "Vissza a profilszerkesztőbe" +#~ msgid "Change suffix" +#~ msgstr "Utótag módosítása" +#~ msgid "Delete PDF structure" +#~ msgstr "PDF szerkezet törlése" +#~ msgid "Delete operation canceled." +#~ msgstr "A törlési művelet megszakítva." +#~ msgid "Donate" +#~ msgstr "Adakozás" +#~ msgid "Link to login page for this self service profile" +#~ msgstr "Hivatkozás az önkiszolgáló profil részére a bejelentkezési oldalra" +#~ msgid "Mode" +#~ msgstr "Mód" +#~ msgid "" +#~ "Please enter a comma separated list of host names where this user is " +#~ "allowed to log in. If you enable host restrictions for your servers then " +#~ "\"*\" means every host and an empty field means no host." +#~ msgstr "" +#~ "Kérem, adja meg azon gazdaállomások nevének listáját, melyekre a " +#~ "felhasználó bejelentkezhet. A neveket vesszővel kell elválasztani. Ha a " +#~ "szervereken a gazdaállomásokra megszorításokat alkalmaz, akkor a \"*\" " +#~ "jelentése minden gazdaállomás, az üresen maradó mező pedig egy állomást " +#~ "sem engedélyez." +#~ msgid "Please enter the mount point for this entry (e.g. /home)." +#~ msgstr "Kérem, adja meg a bejegyzés csatolási pontját (pl. /home)." +#~ msgid "Please enter the same password in both password-fields." +#~ msgstr "Kérem, egyező jelszót írjon a két jelszó-mezőbe." +#~ msgid "" +#~ "Please install the SSH2 module for PHP and activate it in your php.ini!" +#~ msgstr "" +#~ "Kérem, telepítse az SSH2 modult a PHP-hoz és aktiválja azt a php.ini-ben!" +#~ msgid "Please select your account type:" +#~ msgstr "Kérem, válassza ki fiókjának típusát:" +#~ msgid "SSH2 module" +#~ msgstr "SSH2 modul" +#~ msgid "SSH2 module is installed." +#~ msgstr "Az SSH2 modul telepítve van." +#~ msgid "Scope" +#~ msgstr "Cél" +#~ msgid "Script settings" +#~ msgstr "Script beállítások" +#~ msgid "Sudo is not setup correctly!" +#~ msgstr "A sudo nincs jól beállítva!" +#~ msgid "" +#~ "This is the number of seconds after when the user may or has to change " +#~ "his password." +#~ msgstr "" +#~ "Ahány másodperc után a felhasználó megváltoztathatja, vagy meg kell " +#~ "változtassa jelszavát." +#~ msgid "Unix workstations" +#~ msgstr "Unix munkaállomások" +#~ msgid "Unix workstations are invalid!" +#~ msgstr "A Unix munkaállomások érvénytelenek." +#~ msgid "Unknown error" +#~ msgstr "Ismeretlen hiba" +#~ msgid "Update attribute \"sambaPwdCanChange\" on password change" +#~ msgstr "" +#~ "A jelszó változtatásakor a \"sambaPwdCanChange\" attribútum frissítése" +#~ msgid "Update attribute \"sambaPwdMustChange\" on password change" +#~ msgstr "" +#~ "A jelszó változtatásakor a \"sambaPwdMustChange\" attribútum frissítése" +#~ msgid "User can/must change password" +#~ msgstr "A felhasználó megváltoztathatja/köteles megváltoztatni jelszavát" +#~ msgid "You have been logged off from LDAP Account Manager." +#~ msgstr "Kijelentkezett az LDAP Account Manager alkalmazásból." +#~ msgid "Account lists - Filters" +#~ msgstr "Fióklisták - Szűrők" +#~ msgid "Account type selection" +#~ msgstr "Fiók típusának kiválasztása" +#~ msgid "Add IP" +#~ msgstr "IP hozzáadása" +#~ msgid "Adding of a fixed IP failed because of errors." +#~ msgstr "Egy fix IP cím hozzáadása hiba következtében nem sikerült." +#~ msgid "Adds input fields for a new fixed IP address." +#~ msgstr "Beviteli mezőket ad hozzá új fix IP cím számára." +#~ msgid "Configuration wizard" +#~ msgstr "Beállításvarázsló" +#~ msgid "Delete IP" +#~ msgstr "IP törlése" +#~ msgid "Deletes a fixed IP address." +#~ msgstr "Egy fix IP címet töröl." +#~ msgid "" +#~ "Domain name contains invalid characters. Valid characters are: a-z, A-Z, " +#~ "0-9 and -." +#~ msgstr "" +#~ "A tartománynév érvénytelen karaktert tartalmaz. Érvényes karakterek: a-z, " +#~ "A-Z, 0-9 és -." +#~ msgid "Drive letter assigned on windows workstations as homedirectory." +#~ msgstr "E betűjelű meghajtó home könyvtár a Windows munkaállomásokon." +#~ msgid "Edit account types" +#~ msgstr "Fióktípusok szerkesztése" +#~ msgid "Edit modules" +#~ msgstr "Modulok szerkesztése" +#~ msgid "" +#~ "File name and path relative to the netlogon-share which should be " +#~ "executed on logon. $user and $group are replaced with user and group name." +#~ msgstr "" +#~ "A belépéskor végrehajtandó fájl neve és elérési útja a netlogon-share-hez " +#~ "viszonyítva. A $user és $group változók a felhasználó- és csoportnévvel " +#~ "lesznek helyettesítve." +#~ msgid "" +#~ "Host name contains invalid characters. Valid characters are: a-z, A-Z, " +#~ "0-9 and .-_ ! Host name must end with $ !" +#~ msgstr "" +#~ "A gazdanév érvénytelen karaktereket tartalmaz. Érvényes karakterek: a-z, " +#~ "A-Z, 0-9 és .-_ ! A gazdanév $-ra kell végződjön!" +#~ msgid "If checked account will be deactivated. (Setting D-Flag)" +#~ msgstr "Ha bejelöli, a fiókot letiltom. (A D-Flag beállítása)" +#~ msgid "" +#~ "If you want to create domain administrators or other special users use " +#~ "this option." +#~ msgstr "" +#~ "Ha tartományi adminisztrátorokat vagy egyéb, különleges felhasználókat " +#~ "akar létrehozni, használja ezt az opciót." +#~ msgid "Samba 2" +#~ msgstr "Samba 2" +#~ msgid "The net mask was invalid and was corrected." +#~ msgstr "A hálózati maszk érvénytelen volt és ki lett javítva." +#~ msgid "The netmask was set." +#~ msgstr "A hálózati maszk beállítva." +#~ msgid "This is the RID of the user's primary Windows group." +#~ msgstr "Ez a felhasználó elsődleges Windows csoportjának RID-je." +#~ msgid "Windows group RID" +#~ msgstr "Windows csoport RID" +#~ msgid "Add section or static text" +#~ msgstr "Szekció vagy statikus szöveg hozzáadása" +#~ msgid "Apply" +#~ msgstr "Alkalmaz" +#~ msgid "Available PDF fields" +#~ msgstr "Rendelkezésre álló PDF mezők" +#~ msgid "Create PDF for all aliases" +#~ msgstr "PDF létrehozása az összes álnévhez" +#~ msgid "Create PDF for all domains" +#~ msgstr "PDF létrehozása az összes tartományhoz" +#~ msgid "Create PDF for all groups" +#~ msgstr "PDF létrehozása az összes csoporthoz" +#~ msgid "Create PDF for all hosts" +#~ msgstr "PDF létrehozása az összes gazdaállomáshoz" +#~ msgid "Create PDF for all objects" +#~ msgstr "PDF létrehozása az összes objektumhoz" +#~ msgid "Create PDF for all users" +#~ msgstr "PDF létrehozása az összes felhasználóhoz" +#~ msgid "Create PDF for selected alias(es)" +#~ msgstr "PDF létrehozása a kiválasztott álnévhez" +#~ msgid "Create PDF for selected domain(s)" +#~ msgstr "PDF létrehozása a kiválasztott tartományhoz" +#~ msgid "Create PDF for selected group(s)" +#~ msgstr "PDF létrehozása a kiválasztott csoporthoz" +#~ msgid "Create PDF for selected host(s)" +#~ msgstr "PDF létrehozása a kiválasztott gazdaállomáshoz" +#~ msgid "Create PDF for selected object(s)" +#~ msgstr "PDF létrehozása a kiválasztott objektumhoz" +#~ msgid "Create PDF for selected user(s)" +#~ msgstr "PDF létrehozása a kiválasztott felhasználó(k)hoz" +#~ msgid "Create account" +#~ msgstr "Fiók létrehozása" +#~ msgid "Edit PDF structure" +#~ msgstr "PDF szerkezet szerkesztése" +#~ msgid "Edit logon hours" +#~ msgstr "Belépési órák beállítása" +#~ msgid "Edit profile" +#~ msgstr "Profil szerkesztése" +#~ msgid "Max list entries is invalid!" +#~ msgstr "A maximális listabejegyzés érvénytelen!" +#~ msgid "Modify account" +#~ msgstr "Fiók módosítása" +#~ msgid "PDF structures" +#~ msgstr "PDF szerkezetek" +#~ msgid "Please select page:" +#~ msgstr "Kérem, válassza ki az oldalt:" +#~ msgid "Server of external script" +#~ msgstr "A külső script szervere" +#~ msgid "This saves your account to the LDAP database." +#~ msgstr "Ezzel menti fiókját az LDAP adatbázisba." +#~ msgid "" +#~ "Use it at your own risk and read the documentation for lamdaemon before " +#~ "you use it!" +#~ msgstr "" +#~ "Használja saját felelősségére és olvassa el a lamdaemon leírását a " +#~ "használat előtt!" + diff --git a/lam/locale/it_IT/LC_MESSAGES/messages.mo b/lam/locale/it_IT/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..1897e177 Binary files /dev/null and b/lam/locale/it_IT/LC_MESSAGES/messages.mo differ diff --git a/lam/locale/it_IT/LC_MESSAGES/messages.po b/lam/locale/it_IT/LC_MESSAGES/messages.po new file mode 100644 index 00000000..5aafdcc4 --- /dev/null +++ b/lam/locale/it_IT/LC_MESSAGES/messages.po @@ -0,0 +1,16252 @@ +# LDAP Account Manager +# +# Translators: +# Francesco Tombolini , 2011-2014 +# Massimiliano Ferrero , 2005, 2006, 2007, 2008, 2011 +# gruberroland , 2013 +msgid "" +msgstr "" +"Project-Id-Version: LDAP Account Manager\n" +"Report-Msgid-Bugs-To: post@rolandgruber.de\n" +"PO-Revision-Date: 2014-06-09 08:13+0000\n" +"Last-Translator: Francesco Tombolini \n" +"Language-Team: Italian (http://www.transifex.com/projects/p/lam/language/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../lib/modules/zarafaContact.inc:95 ../lib/modules/zarafaContact.inc:98 +#: ../lib/modules/zarafaContact.inc:101 ../lib/modules/zarafaContact.inc:126 +#: ../lib/modules/zarafaGroup.inc:97 ../lib/modules/zarafaGroup.inc:100 +#: ../lib/modules/zarafaGroup.inc:103 ../lib/modules/zarafaGroup.inc:130 +#: ../lib/modules/zarafaUser.inc:144 ../lib/modules/zarafaUser.inc:147 +#: ../lib/modules/zarafaUser.inc:150 ../lib/modules/zarafaUser.inc:1812 +msgid "\"Send as\" attribute" +msgstr "\"Invia come\" attributo" + +#: ../lib/modules/zarafaContact.inc:79 ../lib/modules/zarafaContact.inc:150 +#: ../lib/modules/zarafaContact.inc:173 ../lib/modules/zarafaContact.inc:187 +#: ../lib/modules/zarafaContact.inc:226 ../lib/modules/zarafaContact.inc:355 +#: ../lib/modules/zarafaContact.inc:565 ../lib/modules/zarafaGroup.inc:93 +#: ../lib/modules/zarafaGroup.inc:138 ../lib/modules/zarafaGroup.inc:188 +#: ../lib/modules/zarafaGroup.inc:206 ../lib/modules/zarafaGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:263 ../lib/modules/zarafaGroup.inc:415 +#: ../lib/modules/zarafaGroup.inc:650 ../lib/modules/zarafaUser.inc:104 +#: ../lib/modules/zarafaUser.inc:196 ../lib/modules/zarafaUser.inc:355 +#: ../lib/modules/zarafaUser.inc:382 ../lib/modules/zarafaUser.inc:419 +#: ../lib/modules/zarafaUser.inc:463 ../lib/modules/zarafaUser.inc:839 +#: ../lib/modules/zarafaUser.inc:1234 ../lib/modules/zarafaUser.inc:1465 +#: ../lib/modules/zarafaUser.inc:1793 +msgid "\"Send as\" privileges" +msgstr "\"Invia come\" privilegio" + +#: ../lib/modules/posixAccount.inc:519 +msgid "" +"$user and $group will be replaced with user name and primary group name." +msgstr "$user e $group saranno sostituiti con nome utente e nome del gruppo primario." + +#: ../lib/modules/nisnetgroup.inc:134 +msgid "(host1,user1,example.com);(host2,user2,example.com)" +msgstr "(computer1,utente1,esempio.it);(computer2,utente2,esempio.it)" + +#: ../lib/modules/qmailUser.inc:368 ../lib/modules/posixAccount.inc:312 +msgid "/home/smiller" +msgstr "/home/smiller" + +#: ../lib/modules/inetOrgPerson.inc:419 +#: ../lib/modules/asteriskVoicemail.inc:186 +msgid "123-123-1234" +msgstr "123-123-1234" + +#: ../lib/modules/inetOrgPerson.inc:435 +msgid "123-123-1235" +msgstr "123-123-1235" + +#: ../lib/modules/inetOrgPerson.inc:443 +msgid "123-123-1236" +msgstr "123-123-1236" + +#: ../lib/modules/windowsUser.inc:364 ../lib/modules/windowsUser.inc:370 +#: ../lib/modules/inetOrgPerson.inc:427 +msgid "123-124-1234" +msgstr "123-124-1234" + +#: ../lib/modules/windowsUser.inc:322 ../lib/modules/inetOrgPerson.inc:411 +msgid "12345" +msgstr "12345" + +#: ../lib/modules/dhcp_settings.inc:174 +msgid "" +"B-Node (0x01): Broadcast.
    The client tries to find other workstations via broadcasting\n" +"(works only inside the same collision domain, viz. the same subnet).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"The client contacts a Netbios name server (NBNS) from Microsoft Windows Name Service (WINS) for name resolution.

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"The node tries broadcasting first. If that fails then it tries WINS.

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"The node tries WINS first. If that fails it tries broadcasting.

    \n" +"\n" +"By default, the nodes are configured as H-Nodes which fits for small networks. In large networks Point-to-Point (0x02) should be used." +msgstr "Nodo-B (0x01): Broadcast.
    Il client cerca di trovare gli altri computer tramite broadcast\n(funziona solo all'interno di un dominio di collisione, cioè della stessa subnet).

    \n\nNodo-P (0x02): Punto-punto
    \nIl client contatta un server dei nomi Netbios (NBNS) del servizio dei Nomi di Microsoft Windows (WINS) per la risoluzione del nome.

    \n\nNodo-M (0x04): Misto
    \nIl nodo prova prima il broadcast. Se questo fallisce allora prova il WINS.

    \n\nNodo-H (0x08): Ibrido
    \nIl nodo prova prima il WINS. Se questo fallisce allora prova il broadcast.

    \n\nPer impostazione predefinita i nodi sono configurati come Nodi-H il che va bene per reti piccole. In grosse reti bisognerebbe usare Punto-punto (0x02)." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:145 +#, php-format +msgid "Maximum length: %s characters" +msgstr "Massima lunghezza: %s caratteri" + +#: ../lib/modules/bindDLZ.inc:492 +msgid "A CNAME record allows no other records." +msgstr "Un record CNAME non permette altre voci." + +#: ../lib/modules/bindDLZ.inc:526 +msgid "A NS record allows no other records except SOA/MX/A records." +msgstr "Un record NS non permette record diversi da SOA/MX/A." + +#: ../lib/modules/bindDLZ.inc:510 +msgid "A SOA record allows no other records except NS/MX/A records." +msgstr "Un record SOA no permette record diversi da NS/MX/A." + +#: ../lib/modules/bindDLZ.inc:511 +msgid "A SOA record requires that the host name is set to \"@\"." +msgstr "Un record SOA necessita che il nome dell'host sia impostato su \"@\"." + +#: ../lib/modules/selfRegistration.inc:631 +#: ../lib/modules/passwordSelfReset.inc:1590 +msgid "" +"A confirmation mail was sent. Please click on the link in the mail to " +"proceed." +msgstr "Un email di conferma è stata spedita. Cliccate sul link nell'email per procedere." + +#: ../lib/modules/device.inc:82 +msgid "A description for this device." +msgstr "Una descrizione per questo dispositivo." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +msgid "A list of attributes to display in the results (comma-separated)" +msgstr "Un elenco di attributi da mostrare nei risultati (separati da virgola)" + +#: ../lib/modules/sudoRole.inc:95 ../lib/modules/sudoRole.inc:124 +msgid "A list of options (e.g. !authenticate)." +msgstr "Un elenco di opzioni (es. !authenticate)." + +#: ../templates/massBuildAccounts.php:135 +msgid "A required column is missing in your CSV file." +msgstr "Una colonna obbligatoria risulta mancante nel file CSV." + +#: ../lib/modules/bindDLZ.inc:165 ../lib/modules/bindDLZ.inc:169 +msgid "A server name for this service (e.g. \"ldap.example.com.\")." +msgstr "Il nome di un server per questo servizio (es. \"ldap.example.com.\")." + +#: ../lib/modules/bindDLZ.inc:157 ../lib/modules/bindDLZ.inc:161 +msgid "A text value for this host." +msgstr "Un valore testuale per questo host." + +#: ../lib/modules/kolabUser.inc:133 +msgid "" +"A user may define who is allowed to act on behalf of herself. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "Un utente può definire chi è autorizzato ad agire per suo conto. Questa proprietà viene controllata se si utilizza il demone smtp di Kolab (Postfix) per inviare email." + +#: ../templates/3rdParty/pla/lib/import_functions.php:593 +msgid "A valid deleteoldrdn attribute should be specified" +msgstr "Deve essere specificato un valido attributo deleteoldrdn" + +#: ../templates/3rdParty/pla/lib/import_functions.php:237 +msgid "A valid dn line is required" +msgstr "E' necessaria una linea dn valida" + +#: ../templates/3rdParty/pla/lib/import_functions.php:596 +msgid "A valid newrdn attribute should be specified" +msgstr "Deve essere specificato un attributo newrdn valido" + +#: ../templates/3rdParty/pla/lib/import_functions.php:587 +msgid "A valid newsuperior attribute should be specified" +msgstr "Un nuovo attributo superiore valido dovrebbe essere specificato" + +#: ../lib/modules/bindDLZ.inc:89 ../lib/modules/bindDLZ.inc:98 +#: ../lib/modules/bindDLZ.inc:248 ../lib/modules/bindDLZ.inc:254 +#: ../lib/modules/bindDLZ.inc:472 +msgid "A/AAAA record" +msgstr "A/AAAA record" + +#: ../lib/modules/bindDLZ.inc:411 ../lib/modules/bindDLZ.inc:431 +#: ../lib/modules/bindDLZ.inc:1469 +msgid "A/AAAA records" +msgstr "A/AAAA records" + +#: ../lib/modules/asteriskAccount.inc:131 +#: ../lib/modules/asteriskAccount.inc:271 +#: ../lib/modules/asteriskAccount.inc:347 +#: ../lib/modules/asteriskAccount.inc:610 +#: ../lib/modules/asteriskAccount.inc:987 +#: ../lib/modules/asteriskAccount.inc:1243 +msgid "AMA flags" +msgstr "AMA flags" + +#: ../templates/serverInfo.php:342 +msgid "Abandon" +msgstr "Abbandonare" + +#: ../templates/lists/changePassword.php:714 +msgid "Aborted password change." +msgstr "Cambiamento password annullato." + +#: ../lib/modules/sambaSamAccount.inc:568 +msgid "Abu Dhabi, Muscat, Baku" +msgstr "Abu Dhabi, Muscat, Baku" + +#: ../templates/config/confmain.php:264 ../help/help.inc:109 +msgid "Access level" +msgstr "Livello di accesso" + +#: ../lib/modules/account.inc:65 +msgid "Account" +msgstr "Account" + +#: ../templates/massBuildAccounts.php:201 ../lib/modules/kolabGroup.inc:178 +#: ../lib/modules/kolabGroup.inc:180 ../lib/modules/kolabGroup.inc:182 +#: ../lib/modules/kolabGroup.inc:184 ../lib/modules/pykotaPrinter.inc:210 +#: ../lib/modules/pykotaPrinter.inc:212 ../lib/modules/pykotaPrinter.inc:214 +#: ../lib/modules/pykotaPrinter.inc:216 ../lib/modules/pykotaPrinter.inc:218 +#: ../lib/modules/pykotaPrinter.inc:219 ../lib/modules/pykotaPrinter.inc:220 +#: ../lib/modules/mitKerberos.inc:290 ../lib/modules/mitKerberos.inc:291 +#: ../lib/modules/mitKerberos.inc:292 ../lib/modules/mitKerberos.inc:294 +#: ../lib/modules/mitKerberos.inc:296 ../lib/modules/mitKerberos.inc:297 +#: ../lib/modules/zarafaDynamicGroup.inc:197 +#: ../lib/modules/zarafaDynamicGroup.inc:199 +#: ../lib/modules/zarafaDynamicGroup.inc:201 +#: ../lib/modules/zarafaDynamicGroup.inc:203 +#: ../lib/modules/zarafaDynamicGroup.inc:204 +#: ../lib/modules/zarafaDynamicGroup.inc:205 ../lib/modules/ipHost.inc:116 +#: ../lib/modules/ipHost.inc:117 ../lib/modules/asteriskAccount.inc:558 +#: ../lib/modules/asteriskAccount.inc:561 +#: ../lib/modules/asteriskAccount.inc:564 +#: ../lib/modules/asteriskAccount.inc:567 +#: ../lib/modules/asteriskAccount.inc:569 +#: ../lib/modules/asteriskAccount.inc:571 +#: ../lib/modules/asteriskAccount.inc:573 +#: ../lib/modules/asteriskAccount.inc:575 +#: ../lib/modules/asteriskAccount.inc:577 ../lib/modules/account.inc:125 +#: ../lib/modules/ieee802device.inc:96 ../lib/modules/puppetClient.inc:185 +#: ../lib/modules/puppetClient.inc:187 ../lib/modules/puppetClient.inc:189 +#: ../lib/modules/puppetClient.inc:190 ../lib/modules/qmailUser.inc:449 +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:453 +#: ../lib/modules/qmailUser.inc:454 ../lib/modules/qmailUser.inc:455 +#: ../lib/modules/qmailUser.inc:457 ../lib/modules/qmailUser.inc:459 +#: ../lib/modules/qmailUser.inc:461 ../lib/modules/qmailUser.inc:464 +#: ../lib/modules/qmailUser.inc:467 ../lib/modules/qmailUser.inc:469 +#: ../lib/modules/qmailUser.inc:470 ../lib/modules/qmailUser.inc:471 +#: ../lib/modules/zarafaContact.inc:186 ../lib/modules/zarafaContact.inc:188 +#: ../lib/modules/zarafaContact.inc:189 ../lib/modules/zarafaContact.inc:190 +#: ../lib/modules/zarafaContact.inc:191 ../lib/modules/windowsHost.inc:132 +#: ../lib/modules/posixGroup.inc:606 ../lib/modules/posixGroup.inc:610 +#: ../lib/modules/posixGroup.inc:611 ../lib/modules/zarafaGroup.inc:216 +#: ../lib/modules/zarafaGroup.inc:218 ../lib/modules/zarafaGroup.inc:219 +#: ../lib/modules/zarafaGroup.inc:220 ../lib/modules/zarafaGroup.inc:221 +#: ../lib/modules/zarafaGroup.inc:223 ../lib/modules/device.inc:141 +#: ../lib/modules/device.inc:142 ../lib/modules/dhcp_settings.inc:321 +#: ../lib/modules/dhcp_settings.inc:323 ../lib/modules/dhcp_settings.inc:325 +#: ../lib/modules/dhcp_settings.inc:327 ../lib/modules/dhcp_settings.inc:329 +#: ../lib/modules/dhcp_settings.inc:330 ../lib/modules/dhcp_settings.inc:331 +#: ../lib/modules/dhcp_settings.inc:333 ../lib/modules/dhcp_settings.inc:335 +#: ../lib/modules/dhcp_settings.inc:339 ../lib/modules/eduPerson.inc:244 +#: ../lib/modules/eduPerson.inc:246 ../lib/modules/eduPerson.inc:248 +#: ../lib/modules/eduPerson.inc:250 ../lib/modules/eduPerson.inc:251 +#: ../lib/modules/eduPerson.inc:252 ../lib/modules/eduPerson.inc:253 +#: ../lib/modules/quota.inc:52 ../lib/modules/quota.inc:54 +#: ../lib/modules/quota.inc:56 ../lib/modules/quota.inc:58 +#: ../lib/modules/quota.inc:60 ../lib/modules/quota.inc:62 +#: ../lib/modules/quota.inc:63 ../lib/modules/zarafaAddressList.inc:170 +#: ../lib/modules/zarafaAddressList.inc:171 +#: ../lib/modules/zarafaAddressList.inc:172 ../lib/modules/pykotaGroup.inc:198 +#: ../lib/modules/pykotaGroup.inc:200 ../lib/modules/pykotaGroup.inc:202 +#: ../lib/modules/pykotaGroup.inc:204 ../lib/modules/pykotaGroup.inc:205 +#: ../lib/modules/sambaSamAccount.inc:96 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:102 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:107 +#: ../lib/modules/sambaSamAccount.inc:108 +#: ../lib/modules/sambaSamAccount.inc:109 +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 +#: ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/sambaSamAccount.inc:117 +#: ../lib/modules/sambaSamAccount.inc:118 +#: ../lib/modules/sambaSamAccount.inc:120 +#: ../lib/modules/sambaSamAccount.inc:121 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/posixAccount.inc:107 ../lib/modules/posixAccount.inc:111 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/posixAccount.inc:124 +#: ../lib/modules/posixAccount.inc:126 ../lib/modules/posixAccount.inc:127 +#: ../lib/modules/posixAccount.inc:128 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/zarafaUser.inc:409 ../lib/modules/zarafaUser.inc:411 +#: ../lib/modules/zarafaUser.inc:413 ../lib/modules/zarafaUser.inc:414 +#: ../lib/modules/zarafaUser.inc:416 ../lib/modules/zarafaUser.inc:418 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/zarafaUser.inc:421 +#: ../lib/modules/zarafaUser.inc:422 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:424 ../lib/modules/zarafaUser.inc:425 +#: ../lib/modules/zarafaUser.inc:426 ../lib/modules/zarafaUser.inc:427 +#: ../lib/modules/ppolicyUser.inc:97 ../lib/modules/bindDLZ.inc:471 +#: ../lib/modules/bindDLZ.inc:473 ../lib/modules/bindDLZ.inc:475 +#: ../lib/modules/bindDLZ.inc:477 ../lib/modules/bindDLZ.inc:479 +#: ../lib/modules/bindDLZ.inc:481 ../lib/modules/bindDLZ.inc:483 +#: ../lib/modules/bindDLZ.inc:485 ../lib/modules/bindDLZ.inc:487 +#: ../lib/modules/bindDLZ.inc:489 ../lib/modules/bindDLZ.inc:491 +#: ../lib/modules/bindDLZ.inc:492 ../lib/modules/bindDLZ.inc:494 +#: ../lib/modules/bindDLZ.inc:496 ../lib/modules/bindDLZ.inc:498 +#: ../lib/modules/bindDLZ.inc:500 ../lib/modules/bindDLZ.inc:502 +#: ../lib/modules/bindDLZ.inc:504 ../lib/modules/bindDLZ.inc:506 +#: ../lib/modules/bindDLZ.inc:508 ../lib/modules/bindDLZ.inc:509 +#: ../lib/modules/bindDLZ.inc:510 ../lib/modules/bindDLZ.inc:511 +#: ../lib/modules/bindDLZ.inc:513 ../lib/modules/bindDLZ.inc:515 +#: ../lib/modules/bindDLZ.inc:517 ../lib/modules/bindDLZ.inc:519 +#: ../lib/modules/bindDLZ.inc:521 ../lib/modules/bindDLZ.inc:523 +#: ../lib/modules/bindDLZ.inc:525 ../lib/modules/bindDLZ.inc:526 +#: ../lib/modules/windowsUser.inc:590 ../lib/modules/windowsUser.inc:592 +#: ../lib/modules/windowsUser.inc:594 ../lib/modules/windowsUser.inc:596 +#: ../lib/modules/windowsUser.inc:598 ../lib/modules/windowsUser.inc:600 +#: ../lib/modules/windowsUser.inc:602 ../lib/modules/windowsUser.inc:604 +#: ../lib/modules/windowsUser.inc:606 ../lib/modules/windowsUser.inc:608 +#: ../lib/modules/windowsUser.inc:610 ../lib/modules/windowsUser.inc:612 +#: ../lib/modules/windowsUser.inc:614 ../lib/modules/windowsUser.inc:617 +#: ../lib/modules/windowsUser.inc:619 ../lib/modules/windowsUser.inc:621 +#: ../lib/modules/windowsUser.inc:1352 ../lib/modules/windowsUser.inc:1361 +#: ../lib/modules/windowsUser.inc:1370 ../lib/modules/windowsUser.inc:1381 +#: ../lib/modules/windowsUser.inc:1448 ../lib/modules/kolabUser.inc:246 +#: ../lib/modules/kolabUser.inc:248 ../lib/modules/kolabUser.inc:250 +#: ../lib/modules/kolabUser.inc:252 ../lib/modules/kolabUser.inc:254 +#: ../lib/modules/kolabUser.inc:256 ../lib/modules/kolabUser.inc:258 +#: ../lib/modules/ddns.inc:152 ../lib/modules/nisObject.inc:124 +#: ../lib/modules/sambaGroupMapping.inc:603 +#: ../lib/modules/sambaGroupMapping.inc:604 ../lib/modules/pykotaUser.inc:312 +#: ../lib/modules/pykotaUser.inc:314 ../lib/modules/pykotaUser.inc:316 +#: ../lib/modules/pykotaUser.inc:318 ../lib/modules/pykotaUser.inc:320 +#: ../lib/modules/pykotaUser.inc:321 ../lib/modules/pykotaUser.inc:323 +#: ../lib/modules/pykotaUser.inc:325 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/shadowAccount.inc:60 ../lib/modules/shadowAccount.inc:62 +#: ../lib/modules/shadowAccount.inc:64 ../lib/modules/shadowAccount.inc:66 +#: ../lib/modules/shadowAccount.inc:67 ../lib/modules/automount.inc:115 +#: ../lib/modules/sambaDomain.inc:209 ../lib/modules/sambaDomain.inc:211 +#: ../lib/modules/sambaDomain.inc:213 ../lib/modules/sambaDomain.inc:215 +#: ../lib/modules/sambaDomain.inc:217 ../lib/modules/sambaDomain.inc:219 +#: ../lib/modules/inetOrgPerson.inc:67 ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:71 ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:75 ../lib/modules/inetOrgPerson.inc:77 +#: ../lib/modules/inetOrgPerson.inc:80 ../lib/modules/inetOrgPerson.inc:82 +#: ../lib/modules/inetOrgPerson.inc:84 ../lib/modules/inetOrgPerson.inc:86 +#: ../lib/modules/inetOrgPerson.inc:88 ../lib/modules/inetOrgPerson.inc:90 +#: ../lib/modules/inetOrgPerson.inc:92 ../lib/modules/inetOrgPerson.inc:94 +#: ../lib/modules/inetOrgPerson.inc:96 ../lib/modules/inetOrgPerson.inc:97 +#: ../lib/modules/inetOrgPerson.inc:98 ../lib/modules/inetOrgPerson.inc:104 +#: ../lib/modules/inetOrgPerson.inc:105 ../lib/modules/inetOrgPerson.inc:106 +#: ../lib/modules/systemQuotas.inc:98 ../lib/modules/systemQuotas.inc:100 +#: ../lib/modules/systemQuotas.inc:102 ../lib/modules/systemQuotas.inc:104 +#: ../lib/modules/systemQuotas.inc:106 ../lib/modules/systemQuotas.inc:108 +#: ../lib/modules/systemQuotas.inc:110 ../lib/modules/freeRadius.inc:250 +#: ../lib/modules/freeRadius.inc:252 ../lib/modules/freeRadius.inc:254 +#: ../lib/modules/freeRadius.inc:256 ../lib/modules/freeRadius.inc:258 +#: ../lib/modules/freeRadius.inc:260 ../lib/modules/sudoRole.inc:270 +#: ../lib/modules/sudoRole.inc:272 ../lib/modules/sudoRole.inc:274 +#: ../lib/modules/sudoRole.inc:276 ../lib/modules/sudoRole.inc:278 +#: ../lib/modules/sudoRole.inc:280 ../lib/modules/sudoRole.inc:282 +#: ../lib/modules/sudoRole.inc:284 ../lib/modules/sudoRole.inc:286 +#: ../lib/modules/kolabSharedFolder.inc:251 +#: ../lib/modules/kolabSharedFolder.inc:253 +#: ../lib/modules/kolabSharedFolder.inc:255 +#: ../lib/modules/kolabSharedFolder.inc:256 +#: ../lib/modules/kolabSharedFolder.inc:258 +#: ../lib/modules/kolabSharedFolder.inc:260 +#: ../lib/modules/zarafaServer.inc:174 ../lib/modules/zarafaServer.inc:176 +#: ../lib/modules/zarafaServer.inc:178 ../lib/modules/zarafaServer.inc:179 +#: ../lib/modules/asteriskVoicemail.inc:212 +#: ../lib/modules/asteriskVoicemail.inc:216 +#: ../lib/modules/asteriskVoicemail.inc:219 +#: ../lib/modules/asteriskVoicemail.inc:221 +#: ../lib/modules/asteriskVoicemail.inc:223 +#: ../lib/modules/asteriskVoicemail.inc:225 +#: ../lib/modules/asteriskVoicemail.inc:227 +#: ../lib/modules/inetLocalMailRecipient.inc:131 +#: ../lib/modules/inetLocalMailRecipient.inc:133 +#: ../lib/modules/inetLocalMailRecipient.inc:135 +#: ../lib/modules/aliasEntry.inc:86 ../lib/modules/qmailGroup.inc:421 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:426 +#: ../lib/modules/qmailGroup.inc:428 ../lib/modules/qmailGroup.inc:430 +#: ../lib/modules/qmailGroup.inc:432 ../lib/modules/qmailGroup.inc:433 +#: ../lib/modules/qmailGroup.inc:434 ../lib/modules/qmailGroup.inc:435 +#: ../lib/modules/qmailGroup.inc:436 ../lib/modules/qmailGroup.inc:437 +#: ../lib/modules/authorizedServiceObject.inc:130 +#: ../lib/modules/passwordSelfReset.inc:233 +#: ../lib/modules/heimdalKerberos.inc:254 +#: ../lib/modules/heimdalKerberos.inc:255 +#: ../lib/modules/heimdalKerberos.inc:256 +#: ../lib/modules/heimdalKerberos.inc:258 +#: ../lib/modules/heimdalKerberos.inc:260 +#: ../lib/modules/pykotaBillingCode.inc:128 +#: ../lib/modules/pykotaBillingCode.inc:130 +#: ../lib/modules/windowsGroup.inc:284 ../lib/modules/windowsGroup.inc:286 +#: ../lib/modules/windowsGroup.inc:287 ../lib/modules/windowsGroup.inc:288 +#: ../lib/modules/windowsGroup.inc:290 ../lib/modules/nisMailAlias.inc:126 +#: ../lib/modules/nisMailAlias.inc:128 ../lib/modules/hostObject.inc:111 +#, php-format +msgid "Account %s:" +msgstr "Account %s:" + +#: ../lib/types/asteriskExt.inc:95 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskAccount.inc:111 +#: ../lib/modules/asteriskAccount.inc:255 +#: ../lib/modules/asteriskAccount.inc:267 +#: ../lib/modules/asteriskAccount.inc:311 +#: ../lib/modules/asteriskAccount.inc:593 +#: ../lib/modules/asteriskAccount.inc:983 +#: ../lib/modules/asteriskExtension.inc:98 +#: ../lib/modules/asteriskExtension.inc:129 +#: ../lib/modules/asteriskExtension.inc:136 +#: ../lib/modules/asteriskExtension.inc:152 +#: ../lib/modules/asteriskExtension.inc:306 +#: ../lib/modules/asteriskExtension.inc:812 +#: ../lib/modules/asteriskVoicemail.inc:91 +#: ../lib/modules/asteriskVoicemail.inc:127 +#: ../lib/modules/asteriskVoicemail.inc:137 +#: ../lib/modules/asteriskVoicemail.inc:151 +#: ../lib/modules/asteriskVoicemail.inc:247 +#: ../lib/modules/asteriskVoicemail.inc:370 +msgid "Account context" +msgstr "Contesto account" + +#: ../lib/modules/selfRegistration.inc:449 +msgid "Account creation" +msgstr "Creazione account" + +#: ../lib/modules/selfRegistration.inc:231 +msgid "Account creation confirmation" +msgstr "Conferma creazione account" + +#: ../templates/masscreate.php:125 +msgid "Account creation via file upload" +msgstr "Creazione account mediante caricamento file" + +#: ../lib/modules/posixAccount.inc:526 +msgid "Account deactivated" +msgstr "Account disabilitato" + +#: ../templates/lists/changePassword.php:275 +msgid "Account details" +msgstr "Dettagli dell'account" + +#: ../lib/types/user.inc:104 ../lib/modules/mitKerberos.inc:124 +#: ../lib/modules/mitKerberos.inc:218 ../lib/modules/mitKerberos.inc:251 +#: ../lib/modules/mitKerberos.inc:385 ../lib/modules/mitKerberos.inc:634 +#: ../lib/modules/mitKerberos.inc:783 ../lib/modules/sambaSamAccount.inc:345 +#: ../lib/modules/sambaSamAccount.inc:463 +#: ../lib/modules/sambaSamAccount.inc:1189 +#: ../lib/modules/sambaSamAccount.inc:1447 +#: ../lib/modules/sambaSamAccount.inc:1739 +#: ../lib/modules/shadowAccount.inc:128 ../lib/modules/shadowAccount.inc:193 +#: ../lib/modules/shadowAccount.inc:233 ../lib/modules/shadowAccount.inc:352 +#: ../lib/modules/shadowAccount.inc:453 ../lib/modules/shadowAccount.inc:499 +#: ../lib/modules/heimdalKerberos.inc:102 +#: ../lib/modules/heimdalKerberos.inc:187 +#: ../lib/modules/heimdalKerberos.inc:219 +#: ../lib/modules/heimdalKerberos.inc:321 +#: ../lib/modules/heimdalKerberos.inc:544 +#: ../lib/modules/heimdalKerberos.inc:679 +msgid "Account expiration date" +msgstr "Data di scadenza dell'account" + +#: ../lib/modules/shadowAccount.inc:169 +msgid "Account inactive" +msgstr "Account inattivo" + +#: ../lib/modules/sambaSamAccount.inc:285 +#: ../lib/modules/sambaSamAccount.inc:291 +#: ../lib/modules/sambaSamAccount.inc:455 +#: ../lib/modules/sambaSamAccount.inc:1147 +#: ../lib/modules/sambaSamAccount.inc:1735 ../lib/modules/windowsUser.inc:192 +#: ../lib/modules/windowsUser.inc:386 ../lib/modules/windowsUser.inc:517 +#: ../lib/modules/windowsUser.inc:744 ../lib/modules/windowsUser.inc:1611 +msgid "Account is deactivated" +msgstr "L'account è disabilitato" + +#: ../lib/modules/sambaSamAccount.inc:288 +#: ../lib/modules/sambaSamAccount.inc:1153 ../lib/modules/windowsUser.inc:195 +#: ../lib/modules/windowsUser.inc:725 +msgid "Account is locked" +msgstr "L'account è bloccato" + +#: ../templates/delete.php:99 +msgid "Account name:" +msgstr "Nome account:" + +#: ../lib/types/user.inc:305 ../lib/types/user.inc:714 +#: ../lib/types/user.inc:848 ../lib/modules/qmailUser.inc:211 +#: ../lib/modules/qmailUser.inc:283 ../lib/modules/qmailUser.inc:402 +#: ../lib/modules/qmailUser.inc:609 ../lib/modules/qmailUser.inc:1157 +msgid "Account status" +msgstr "Stato account" + +#: ../templates/masscreate.php:152 ../lib/modules/asteriskAccount.inc:119 +#: ../lib/modules/asteriskAccount.inc:256 +#: ../lib/modules/asteriskAccount.inc:269 +#: ../lib/modules/asteriskAccount.inc:331 +#: ../lib/modules/asteriskAccount.inc:595 +#: ../lib/modules/asteriskAccount.inc:985 ../lib/modules/customFields.inc:524 +#: ../lib/modules/customFields.inc:566 +msgid "Account type" +msgstr "Tipo di account" + +#: ../templates/config/confmodules.php:168 +#: ../templates/config/confmain.php:209 +#: ../templates/config/moduleSettings.php:167 +#: ../templates/config/conftypes.php:186 +msgid "Account types" +msgstr "Tipi di account" + +#: ../help/help.inc:111 +msgid "Account types and modules" +msgstr "Tipi di account e moduli" + +#: ../help/help.inc:113 +msgid "" +"Account types define which sorts of LDAP entries (e.g. users and groups) " +"should be managed. The account modules define which properties (e.g. Unix " +"and Samba) can be edited." +msgstr "Le tipologie di account definiscono quali tipi di oggetti LDAP (es. utenti e gruppi) dovrebbero essere gestiti. I moduli degli account definiscono quali proprietà (es. Unix e Samba) possono essere modificate." + +#: ../lib/modules.inc:1307 +msgid "Account was created successfully." +msgstr "Account creato correttamente." + +#: ../templates/lists/changePassword.php:744 +#: ../templates/lists/changePassword.php:796 +#: ../templates/lists/changePassword.php:842 ../lib/modules.inc:1310 +msgid "Account was modified successfully." +msgstr "Account modificato correttamente." + +#: ../lib/modules/customScripts.inc:168 +msgid "Action type" +msgstr "Tipo di azione" + +#: ../lib/modules/ddns.inc:81 ../lib/modules/ddns.inc:368 +msgid "Activate DynDNS" +msgstr "Attiva DynDNS" + +#: ../templates/config/confmain.php:243 +#: ../templates/selfService/adminMain.php:451 +msgid "Activate TLS" +msgstr "Attiva TLS" + +#: ../lib/modules/sambaSamAccount.inc:352 +msgid "Activate this checkbox to allow this user to use the terminal service." +msgstr "Selezionare questa casella per permettere a questo utente di usare il servizio terminal." + +#: ../lib/modules/sambaSamAccount.inc:373 +msgid "Activate this checkbox to connect drives from the client machine." +msgstr "Selezionare questa casella per connettere dischi dal computer client." + +#: ../lib/modules/sambaSamAccount.inc:376 +msgid "Activate this checkbox to connect printers from the client machine." +msgstr "Selezionare questa casella per connettere stampanti dal computer client." + +#: ../lib/modules/sambaSamAccount.inc:361 +msgid "" +"Activate this checkbox to inherit the initial program and working directory " +"from the client machine." +msgstr "Selezionare questa casella per ereditare la directory iniziale e di lavoro per il programma dal computer client." + +#: ../lib/modules/sambaSamAccount.inc:379 +msgid "Activate this checkbox to set the client's printer as default printer." +msgstr "Selezionare questa casella per impostare la stampante del client come stampante predefinita." + +#: ../lib/modules/posixAccount.inc:478 +msgid "Activating this checkbox will remove the user's home directory." +msgstr "Selezionando questa casella la home directory dell'utente verrà rimossa." + +#: ../lib/types/zarafaAddressListType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:93 +#: ../lib/modules/zarafaDynamicGroup.inc:83 +#: ../lib/modules/zarafaDynamicGroup.inc:144 +#: ../lib/modules/zarafaDynamicGroup.inc:168 +#: ../lib/modules/zarafaDynamicGroup.inc:281 +#: ../lib/modules/zarafaDynamicGroup.inc:456 ../lib/modules/qmailUser.inc:41 +#: ../lib/modules/qmailUser.inc:285 ../lib/modules/zarafaContact.inc:75 +#: ../lib/modules/zarafaContact.inc:156 ../lib/modules/zarafaContact.inc:254 +#: ../lib/modules/zarafaGroup.inc:89 ../lib/modules/zarafaGroup.inc:154 +#: ../lib/modules/zarafaGroup.inc:195 ../lib/modules/zarafaGroup.inc:302 +#: ../lib/modules/zarafaGroup.inc:660 ../lib/modules/zarafaAddressList.inc:71 +#: ../lib/modules/zarafaAddressList.inc:120 +#: ../lib/modules/zarafaAddressList.inc:142 +#: ../lib/modules/zarafaAddressList.inc:222 +#: ../lib/modules/zarafaAddressList.inc:338 ../lib/modules/zarafaUser.inc:84 +#: ../lib/modules/zarafaUser.inc:255 ../lib/modules/zarafaUser.inc:594 +#: ../lib/modules/zarafaUser.inc:1801 ../lib/modules/fixed_ip.inc:114 +#: ../lib/modules/fixed_ip.inc:438 ../lib/modules/fixed_ip.inc:743 +msgid "Active" +msgstr "Attivo" + +#: ../templates/config/conftypes.php:232 +msgid "Active account types" +msgstr "Tipi di account attivi" + +#: ../templates/serverInfo.php:307 ../templates/serverInfo.php:384 +#: ../templates/multiEdit.php:126 ../templates/config/profmanage.php:252 +#: ../templates/config/confmodules.php:305 +#: ../templates/config/conftypes.php:223 +#: ../templates/selfService/profManage.php:209 +#: ../templates/pdfedit/pdfpage.php:596 ../templates/pdfedit/pdfpage.php:606 +#: ../templates/pdfedit/pdfpage.php:616 ../templates/pdfedit/pdfpage.php:630 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1206 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1210 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:78 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:121 +#: ../lib/modules/pykotaPrinter.inc:269 ../lib/modules/pykotaPrinter.inc:430 +#: ../lib/modules/nisMailAliasUser.inc:162 +#: ../lib/modules/nisMailAliasUser.inc:201 +#: ../lib/modules/nisMailAliasUser.inc:387 +#: ../lib/modules/zarafaContact.inc:390 ../lib/modules/zarafaGroup.inc:450 +#: ../lib/modules/device.inc:253 ../lib/modules/zarafaUser.inc:874 +#: ../lib/modules/zarafaUser.inc:1462 ../lib/modules/zarafaUser.inc:1494 +#: ../lib/modules/bindDLZ.inc:668 ../lib/modules/bindDLZ.inc:760 +#: ../lib/modules/bindDLZ.inc:840 ../lib/modules/bindDLZ.inc:944 +#: ../lib/modules/bindDLZ.inc:1060 ../lib/modules/bindDLZ.inc:1172 +#: ../lib/modules/bindDLZ.inc:1268 ../lib/modules/bindDLZ.inc:1382 +#: ../lib/modules/kolabUser.inc:835 ../lib/modules/kolabUser.inc:883 +#: ../lib/modules/sambaGroupMapping.inc:392 +#: ../lib/modules/sambaGroupMapping.inc:489 ../lib/modules/pykotaUser.inc:377 +#: ../lib/modules/ldapPublicKey.inc:267 ../lib/modules/ldapPublicKey.inc:277 +#: ../lib/modules/nisnetgroup.inc:282 ../lib/modules/inetOrgPerson.inc:1709 +#: ../lib/modules/sudoRole.inc:321 ../lib/modules/sudoRole.inc:348 +#: ../lib/modules/sudoRole.inc:375 ../lib/modules/sudoRole.inc:402 +#: ../lib/modules/sudoRole.inc:429 ../lib/modules/sudoRole.inc:456 +#: ../lib/modules/customFields.inc:1083 ../lib/modules/customFields.inc:2091 +#: ../lib/modules/customFields.inc:2101 ../lib/modules/qmailGroup.inc:822 +#: ../lib/modules/organizationalRole.inc:317 ../lib/modules/fixed_ip.inc:586 +#: ../lib/modules/windowsGroup.inc:556 ../lib/modules/groupOfNames.inc:374 +#: ../lib/modules/groupOfNames.inc:529 +msgid "Add" +msgstr "Aggiungi" + +#: ../lib/modules/asteriskAccount.inc:762 +msgid "Add Asterisk account" +msgstr "Aggiungi account Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:269 +msgid "Add Asterisk voicemail extension" +msgstr "Aggiungi estensione voicemail Asterisk" + +#: ../lib/modules/authorizedServiceObject.inc:175 +msgid "Add Authorized Service extension" +msgstr "Aggiungi estensione servizio autorizzato" + +#: ../lib/modules/eduPerson.inc:360 +msgid "Add EDU person extension" +msgstr "Aggiungi estensione persona EDU" + +#: ../lib/modules/freeRadius.inc:312 +msgid "Add FreeRadius extension" +msgstr "Aggiungi estensione FreeRadius" + +#: ../lib/modules/ipHost.inc:165 +msgid "Add IP address extension" +msgstr "Aggiungi estensione indirizzo IP" + +#: ../lib/modules/mitKerberos.inc:478 ../lib/modules/heimdalKerberos.inc:402 +msgid "Add Kerberos extension" +msgstr "Aggiungere estensione Kerberos" + +#: ../lib/modules/kolabGroup.inc:121 ../lib/modules/kolabGroup.inc:133 +#: ../lib/modules/kolabGroup.inc:220 ../lib/modules/kolabUser.inc:394 +msgid "Add Kolab extension" +msgstr "Aggiungi estensione Kolab" + +#: ../lib/modules/puppetClient.inc:224 +msgid "Add Puppet extension" +msgstr "Aggiungi estensione Puppet" + +#: ../lib/modules/pykotaGroup.inc:245 ../lib/modules/pykotaUser.inc:425 +msgid "Add PyKota extension" +msgstr "Aggiungi estensione PyKota" + +#: ../lib/modules/sambaSamAccount.inc:1311 +#: ../lib/modules/sambaGroupMapping.inc:428 +msgid "Add Samba 3 extension" +msgstr "Aggiungi estensione Samba 3" + +#: ../lib/modules/shadowAccount.inc:380 +msgid "Add Shadow account extension" +msgstr "Aggiungi estensione account Shadow" + +#: ../lib/modules/posixGroup.inc:253 ../lib/modules/posixAccount.inc:1518 +msgid "Add Unix extension" +msgstr "Aggiungi estensione Unix" + +#: ../lib/modules/zarafaContact.inc:134 ../lib/modules/zarafaContact.inc:202 +msgid "Add Zarafa contact extension" +msgstr "Aggiungere estensione di contatto Zarafa" + +#: ../lib/modules/zarafaContact.inc:110 ../lib/modules/zarafaContact.inc:111 +#: ../lib/modules/zarafaGroup.inc:312 ../lib/modules/zarafaUser.inc:167 +#: ../lib/modules/zarafaUser.inc:168 ../lib/modules/zarafaUser.inc:179 +#: ../lib/modules/zarafaUser.inc:438 ../lib/modules/zarafaServer.inc:237 +msgid "Add Zarafa extension" +msgstr "Aggiungi estensione Zarafa" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add all" +msgstr "Aggiungi tutto" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2073 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2091 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "Add an additional value to attribute" +msgstr "Aggiungi un nuovo valore all'attributo" + +#: ../lib/modules/asteriskExtension.inc:350 +msgid "Add another rule" +msgstr "Aggiungere un altra regola" + +#: ../lib/modules/inetOrgPerson.inc:1744 +#: ../lib/modules/organizationalRole.inc:322 +#: ../lib/modules/groupOfNames.inc:379 ../lib/modules/groupOfNames.inc:534 +msgid "Add entries" +msgstr "Aggiungere voci" + +#: ../lib/modules/zarafaContact.inc:429 ../lib/modules/zarafaGroup.inc:489 +#: ../lib/modules/device.inc:296 ../lib/modules/zarafaUser.inc:913 +#: ../lib/modules/sambaGroupMapping.inc:504 ../lib/modules/qmailGroup.inc:858 +#: ../lib/modules/organizationalRole.inc:333 +#: ../lib/modules/windowsGroup.inc:599 ../lib/modules/groupOfNames.inc:390 +#: ../lib/modules/groupOfNames.inc:545 +msgid "Add entries of this type:" +msgstr "Aggiungi oggetti di questo tipo:" + +#: ../lib/modules/fixed_ip.inc:544 +msgid "Add existing host" +msgstr "Aggiungi host esistente" + +#: ../lib/modules/customFields.inc:439 +msgid "Add extension" +msgstr "Aggiungi estensione" + +#: ../lib/modules/ddns.inc:369 +msgid "Add fix IP addresses to DNS" +msgstr "Aggiungi indirizzi IP fissi al DNS" + +#: ../lib/modules/hostObject.inc:152 +msgid "Add host extension" +msgstr "Aggiungi estensione computer" + +#: ../templates/selfService/adminMain.php:631 ../help/help.inc:232 +msgid "Add input field" +msgstr "Aggiungi campo di inserimento dati" + +#: ../templates/multiEdit.php:148 +msgid "Add more fields" +msgstr "Aggiungi più campi" + +#: ../lib/modules/customFields.inc:2973 +msgid "Add more mapping fields" +msgstr "Aggiungi più campi" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:37 +#, php-format +msgid "Add new %s value to %s" +msgstr "Add nuovo valore %s a %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1208 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:29 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:48 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:166 +msgid "Add new attribute" +msgstr "Aggiungi un nuovo attributo" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1207 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +msgid "Add new attribute to this object" +msgstr "Aggiungi un nuovo attributo a questo oggetto" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:89 +msgid "Add new binary attribute" +msgstr "Aggiungi un nuovo attributo binario" + +#: ../lib/modules/customFields.inc:1082 ../lib/modules/customFields.inc:1083 +msgid "Add new field" +msgstr "Aggiungi nuovo campo" + +#: ../templates/selfService/adminMain.php:623 ../help/help.inc:230 +msgid "Add new group" +msgstr "Aggiungi un nuovo gruppo" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:117 +msgid "Add new object class" +msgstr "Aggiungi una nuova classe di oggetti" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:60 +#, php-format +msgid "Add new object class to %s" +msgstr "Aggiungi una nuova classe di oggetti a %s" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:94 +msgid "Add object class and attributes" +msgstr "Aggiungi classi di oggetti ed attributi" + +#: ../lib/modules/passwordSelfReset.inc:245 +msgid "Add password self reset extension" +msgstr "Aggiungi estensione auto password reset" + +#: ../lib/modules/inetOrgPerson.inc:748 ../lib/modules/inetOrgPerson.inc:1585 +#: ../lib/modules/inetOrgPerson.inc:1668 ../lib/modules/inetOrgPerson.inc:2656 +msgid "Add photo" +msgstr "Aggiungi foto" + +#: ../templates/config/profmanage.php:239 +#: ../templates/config/profmanage.php:253 +#: ../templates/selfService/profManage.php:202 +#: ../templates/selfService/profManage.php:210 ../help/help.inc:130 +msgid "Add profile" +msgstr "Aggiungi un profilo" + +#: ../lib/modules/qmailUser.inc:712 ../lib/modules/qmailGroup.inc:633 +msgid "Add qmail extension" +msgstr "Aggiungi estensione qmail" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add selected" +msgstr "Aggiungi quanto selezionato" + +#: ../lib/modules/nisMailAliasUser.inc:374 +msgid "Add to existing alias" +msgstr "Aggiungi ad alias esistente" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:149 +msgid "Add value" +msgstr "Aggiungi valore" + +#: ../templates/3rdParty/pla/htdocs/import.php:28 +msgid "Adding" +msgstr "Aggiunta" + +#: ../lib/modules/range.inc:115 +msgid "Adding the range failed because errors occured." +msgstr "L'aggiunta dell'intervallo è fallita perché si sono verificati degli errori." + +#: ../templates/selfService/adminMain.php:527 ../help/help.inc:236 +msgid "Additional CSS links" +msgstr "Collegamenti CSS aggiuntivi" + +#: ../templates/config/conftypes.php:274 +#: ../templates/selfService/adminMain.php:472 ../help/help.inc:170 +#: ../help/help.inc:240 +msgid "Additional LDAP filter" +msgstr "Filtri LDAP aggiuntivi" + +#: ../lib/modules/zarafaDynamicGroup.inc:72 +#: ../lib/modules/zarafaDynamicGroup.inc:76 ../lib/modules/zarafaGroup.inc:74 +#: ../lib/modules/zarafaGroup.inc:78 +msgid "Additional email addresses for this entry." +msgstr "Indirizzo email aggiuntivo per questa voce." + +#: ../lib/modules/posixAccount.inc:304 ../lib/modules/posixAccount.inc:415 +#: ../lib/modules/posixAccount.inc:469 ../lib/modules/posixAccount.inc:534 +#: ../lib/modules/posixAccount.inc:1453 ../lib/modules/posixAccount.inc:1737 +#: ../lib/modules/posixAccount.inc:1848 +msgid "Additional groups" +msgstr "Gruppi aggiuntivi" + +#: ../lib/modules/windowsGroup.inc:123 +msgid "Additional notes to describe this entry." +msgstr "Note aggiuntive per descrivere questa voce." + +#: ../templates/config/mainmanage.php:440 +msgid "Additional options" +msgstr "Opzioni aggiuntive" + +#: ../templates/massDoUpload.php:160 +msgid "Additional tasks for module:" +msgstr "Task aggiuntivi per il modulo:" + +#: ../lib/modules/windowsUser.inc:707 ../lib/modules/inetOrgPerson.inc:1219 +msgid "Address" +msgstr "Indirizzo" + +#: ../lib/types/zarafaAddressListType.inc:144 +#, php-format +msgid "Address list count: %s" +msgstr "Conteggio elenco indirizzi: %s" + +#: ../lib/modules/imapAccess.inc:78 +msgid "Address of IMAP server (e.g. mail.example.org)." +msgstr "Indirizzo del server IMAP (es. mail.esempio.it)." + +#: ../help/help.inc:231 +msgid "" +"Adds a new group element to the list of self service options. Use this to " +"structure the input fields." +msgstr "Aggiungi un nuovo gruppo alla lista delle opzioni fai-da-te. Utilizzarlo per organizzare i campi di inserimento dati." + +#: ../help/help.inc:233 +msgid "Adds a new self service option to the selected group element." +msgstr "Aggiungi una nuova opzione fai-da-te al gruppo selezionato." + +#: ../lib/modules/range.inc:102 +msgid "Adds input fields for a new IP range." +msgstr "Aggiungi i campi di input per un nuovo intervallo di IP." + +#: ../lib/modules/pykotaUser.inc:153 +msgid "Adds the amount to the user's balance. You can also specify a comment." +msgstr "Aggiunge l'ammontare del bilancio utente. Puoi anche specificare un commento." + +#: ../lib/modules/kolabUser.inc:171 +msgid "Adds the object class \"mailrecipient\" to all user accounts." +msgstr "Aggiunge la classe di oggetti \"mailrecipient\" a tutti gli a account utente." + +#: ../lib/modules/kolabGroup.inc:122 +msgid "Adds this Kolab extension." +msgstr "Aggiungi questa estensione Kolab." + +#: ../lib/modules/zarafaUser.inc:108 ../lib/modules/zarafaUser.inc:282 +#: ../lib/modules/zarafaUser.inc:340 ../lib/modules/zarafaUser.inc:603 +#: ../lib/modules/zarafaUser.inc:1262 +msgid "Admin" +msgstr "Admin" + +#: ../lib/modules/selfRegistration.inc:61 +#: ../lib/modules/selfRegistration.inc:199 +#: ../lib/modules/passwordSelfReset.inc:104 +#: ../lib/modules/passwordSelfReset.inc:518 +msgid "Admin DN" +msgstr "DN Admin" + +#: ../lib/modules/bindDLZ.inc:224 ../lib/modules/bindDLZ.inc:344 +#: ../lib/modules/bindDLZ.inc:421 ../lib/modules/bindDLZ.inc:522 +#: ../lib/modules/bindDLZ.inc:1044 ../lib/modules/bindDLZ.inc:1546 +msgid "Admin email" +msgstr "Email admin" + +#: ../lib/modules/selfRegistration.inc:65 +#: ../lib/modules/selfRegistration.inc:204 ../lib/modules/imapAccess.inc:136 +#: ../lib/modules/passwordSelfReset.inc:108 +#: ../lib/modules/passwordSelfReset.inc:522 +msgid "Admin password" +msgstr "Admin password" + +#: ../lib/modules/inetOrgPerson.inc:371 ../lib/modules/inetOrgPerson.inc:485 +#: ../lib/modules/inetOrgPerson.inc:493 +msgid "Administration" +msgstr "Amministrazione" + +#: ../lib/modules/posixGroup.inc:473 ../lib/modules/pykotaGroup.inc:168 +#: ../lib/modules/nisnetgroup.inc:122 +#: ../lib/modules/organizationalRole.inc:125 +#: ../lib/modules/groupOfNames.inc:137 +msgid "Administrators group" +msgstr "Gruppo degli amministratori" + +#: ../templates/config/confmain.php:276 ../templates/config/conftypes.php:320 +#: ../lib/modules/posixAccount.inc:271 ../lib/modules/inetOrgPerson.inc:3616 +msgid "Advanced options" +msgstr "Opzioni avanzate" + +#: ../lib/modules/eduPerson.inc:105 ../lib/modules/eduPerson.inc:109 +#: ../lib/modules/eduPerson.inc:181 ../lib/modules/eduPerson.inc:225 +#: ../lib/modules/eduPerson.inc:328 ../lib/modules/eduPerson.inc:585 +msgid "Affiliations" +msgstr "Affiliazioni" + +#: ../lib/modules/sambaSamAccount.inc:555 +msgid "Alaska" +msgstr "Alaska" + +#: ../lib/modules/sambaDomain.inc:218 ../lib/modules/sambaDomain.inc:219 +msgid "Algorithmic RID base is not a number!" +msgstr "La base RID algoritmica non è un numero!" + +#: ../lib/modules/customFields.inc:76 ../lib/modules/customFields.inc:528 +#: ../lib/modules/customFields.inc:569 ../lib/modules/aliasEntry.inc:45 +msgid "Alias" +msgstr "Alias" + +#: ../lib/types/mailAlias.inc:141 ../lib/types/alias.inc:141 +#, php-format +msgid "Alias count: %s" +msgstr "Conteggio alias: %s" + +#: ../lib/types/alias.inc:62 +msgid "Alias entries" +msgstr "Valori alias" + +#: ../lib/modules/nisMailAlias.inc:125 ../lib/modules/nisMailAlias.inc:126 +msgid "Alias is empty or invalid!" +msgstr "Alias vuoto o non valido!" + +#: ../lib/types/mailAlias.inc:91 ../lib/modules/nisMailAliasUser.inc:96 +#: ../lib/modules/nisMailAliasUser.inc:364 ../lib/modules/bindDLZ.inc:128 +#: ../lib/modules/bindDLZ.inc:261 ../lib/modules/bindDLZ.inc:412 +#: ../lib/modules/bindDLZ.inc:490 ../lib/modules/bindDLZ.inc:829 +#: ../lib/modules/bindDLZ.inc:1531 ../lib/modules/nisMailAlias.inc:81 +#: ../lib/modules/nisMailAlias.inc:101 ../lib/modules/nisMailAlias.inc:115 +#: ../lib/modules/nisMailAlias.inc:163 ../lib/modules/nisMailAlias.inc:475 +msgid "Alias name" +msgstr "Nome alias" + +#: ../lib/modules/bindDLZ.inc:827 +msgid "Alias name (\"CNAME\" record)" +msgstr "Nome alias (record \"CNAME\")" + +#: ../lib/modules/nisMailAliasUser.inc:120 +msgid "Alias name already exists." +msgstr "Il nome alias esiste già." + +#: ../lib/modules/nisMailAliasUser.inc:119 +msgid "Alias name is invalid." +msgstr "Il nome alias non è valido." + +#: ../lib/modules/nisMailAliasUser.inc:100 +#: ../lib/modules/nisMailAliasUser.inc:110 +#: ../lib/modules/nisMailAliasUser.inc:382 +#: ../lib/modules/nisMailAliasUser.inc:541 +msgid "Alias names" +msgstr "Nomi alias" + +#: ../lib/modules/nisMailAliasUser.inc:84 +#: ../lib/modules/nisMailAliasUser.inc:88 +msgid "Alias names with email address" +msgstr "Nomi alias con indirizzo email" + +#: ../lib/modules/nisMailAliasUser.inc:76 +#: ../lib/modules/nisMailAliasUser.inc:80 +msgid "Alias names with user name" +msgstr "Nomi alias con nome utente" + +#: ../lib/modules/bindDLZ.inc:413 ../lib/modules/bindDLZ.inc:1532 +msgid "Alias timeout" +msgstr "Timeout alias" + +#: ../lib/types/alias.inc:92 ../lib/modules/customScripts.inc:52 +#: ../lib/modules/uidObject.inc:59 ../lib/modules/aliasEntry.inc:61 +#: ../lib/modules/aliasEntry.inc:69 ../lib/modules/aliasEntry.inc:77 +#: ../lib/modules/aliasEntry.inc:98 ../lib/modules/aliasEntry.inc:107 +#: ../lib/modules/aliasEntry.inc:228 +msgid "Aliased entry" +msgstr "Oggetto al quale l'alias si riferisce" + +#: ../templates/schema/schema.php:226 ../lib/types/alias.inc:53 +msgid "Aliases" +msgstr "Alias" + +#: ../lib/modules/nisMailAliasUser.inc:169 +#: ../lib/modules/nisMailAliasUser.inc:569 +msgid "Aliases for email" +msgstr "Alias per le email" + +#: ../lib/modules/nisMailAliasUser.inc:139 +#: ../lib/modules/nisMailAliasUser.inc:567 +msgid "Aliases for user name" +msgstr "Alias per i nomi utente" + +#: ../lib/lists.inc:702 +#, php-format +msgid "All accounts (%s)" +msgstr "Tutti gli account (%s)" + +#: ../templates/selfService/selfServiceMain.php:368 +#: ../templates/initsuff.php:158 +msgid "All changes were successful." +msgstr "Tutte le modifiche sono state effettuate correttamente." + +#: ../lib/lists.inc:701 +#, php-format +msgid "All selected accounts (%s)" +msgstr "Tutti gli account selezionati (%s)" + +#: ../lib/modules/dhcp_settings.inc:103 +msgid "Allow" +msgstr "Permetti" + +#: ../templates/config/confmain.php:362 ../help/help.inc:259 +msgid "Allow alternate address" +msgstr "Permetti indirizzi alternativi" + +#: ../lib/modules/sambaDomain.inc:117 ../lib/modules/sambaDomain.inc:194 +#: ../lib/modules/sambaDomain.inc:308 ../lib/modules/sambaDomain.inc:626 +msgid "Allow machine password changes" +msgstr "Permette di cambiare la password dei computer" + +#: ../lib/modules/customFields.inc:144 ../lib/modules/customFields.inc:148 +#: ../lib/modules/customFields.inc:3140 +msgid "Allow multiple values" +msgstr "Permetti valori multipli" + +#: ../lib/types/ppolicyType.inc:90 ../lib/modules/ppolicy.inc:132 +#: ../lib/modules/ppolicy.inc:155 ../lib/modules/ppolicy.inc:294 +#: ../lib/modules/ppolicy.inc:505 +msgid "Allow password change" +msgstr "Permette di cambiare la password" + +#: ../lib/modules/sambaSamAccount.inc:229 +#: ../lib/modules/sambaSamAccount.inc:351 +#: ../lib/modules/sambaSamAccount.inc:1499 +#: ../lib/modules/sambaSamAccount.inc:1915 +msgid "Allow terminal server login" +msgstr "Permetti i login terminal server" + +#: ../templates/selfService/adminMain.php:589 +msgid "Allow user input for this field." +msgstr "Permetti input utente per questo campo." + +#: ../lib/modules/asteriskAccount.inc:203 +#: ../lib/modules/asteriskAccount.inc:289 +#: ../lib/modules/asteriskAccount.inc:479 +#: ../lib/modules/asteriskAccount.inc:713 +#: ../lib/modules/asteriskAccount.inc:1005 +#: ../lib/modules/asteriskAccount.inc:1279 +msgid "Allowed codec" +msgstr "Codec accettati" + +#: ../templates/config/mainmanage.php:299 ../lib/types/user.inc:95 +#: ../help/help.inc:152 +msgid "Allowed hosts" +msgstr "Computer accettati" + +#: ../templates/config/mainmanage.php:301 +msgid "Allowed hosts (self service)" +msgstr "Host consentiti (self service)" + +#: ../lib/modules/kolabGroup.inc:95 ../lib/modules/kolabGroup.inc:99 +#: ../lib/modules/kolabGroup.inc:141 ../lib/modules/kolabGroup.inc:164 +#: ../lib/modules/kolabGroup.inc:181 ../lib/modules/kolabGroup.inc:205 +#: ../lib/modules/kolabGroup.inc:424 ../lib/modules/kolabUser.inc:152 +#: ../lib/modules/kolabUser.inc:156 ../lib/modules/kolabUser.inc:217 +#: ../lib/modules/kolabUser.inc:235 ../lib/modules/kolabUser.inc:253 +#: ../lib/modules/kolabUser.inc:381 ../lib/modules/kolabUser.inc:766 +#: ../lib/modules/kolabSharedFolder.inc:120 +#: ../lib/modules/kolabSharedFolder.inc:124 +#: ../lib/modules/kolabSharedFolder.inc:208 +#: ../lib/modules/kolabSharedFolder.inc:234 +#: ../lib/modules/kolabSharedFolder.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:307 +#: ../lib/modules/kolabSharedFolder.inc:561 +msgid "Allowed recipients" +msgstr "Destinatari consentiti" + +#: ../lib/modules/kolabGroup.inc:104 ../lib/modules/kolabGroup.inc:108 +#: ../lib/modules/kolabGroup.inc:147 ../lib/modules/kolabGroup.inc:165 +#: ../lib/modules/kolabGroup.inc:183 ../lib/modules/kolabGroup.inc:207 +#: ../lib/modules/kolabGroup.inc:425 ../lib/modules/kolabUser.inc:161 +#: ../lib/modules/kolabUser.inc:165 ../lib/modules/kolabUser.inc:223 +#: ../lib/modules/kolabUser.inc:236 ../lib/modules/kolabUser.inc:255 +#: ../lib/modules/kolabUser.inc:383 ../lib/modules/kolabUser.inc:767 +#: ../lib/modules/kolabSharedFolder.inc:129 +#: ../lib/modules/kolabSharedFolder.inc:133 +#: ../lib/modules/kolabSharedFolder.inc:214 +#: ../lib/modules/kolabSharedFolder.inc:235 +#: ../lib/modules/kolabSharedFolder.inc:252 +#: ../lib/modules/kolabSharedFolder.inc:309 +#: ../lib/modules/kolabSharedFolder.inc:562 +msgid "Allowed senders" +msgstr "Mittenti consentiti" + +#: ../lib/modules/sambaSamAccount.inc:1337 +#: ../lib/modules/sambaSamAccount.inc:1338 +msgid "Allowed workstations" +msgstr "Postazioni di lavoro accettate" + +#: ../lib/modules/customFields.inc:149 +msgid "Allows to enter multiple values for this attribute." +msgstr "Permetti di inserire valori multipli per questo attributo." + +#: ../lib/modules/customFields.inc:145 +msgid "Allows to select multiple values from the list." +msgstr "Permette di selezionare più valori dall'elenco" + +#: ../lib/modules/sambaSamAccount.inc:570 +msgid "Almaty, Dhaka, Colombo" +msgstr "Almaty, Dhaka, Colombo" + +#: ../templates/lists/changePassword.php:334 +#: ../templates/lists/changePassword.php:370 ../lib/modules/qmailUser.inc:203 +#: ../lib/modules/qmailUser.inc:271 ../lib/modules/qmailUser.inc:400 +#: ../lib/modules/qmailUser.inc:450 ../lib/modules/qmailUser.inc:520 +#: ../lib/modules/qmailUser.inc:1140 ../lib/modules/qmailGroup.inc:131 +#: ../lib/modules/qmailGroup.inc:135 ../lib/modules/qmailGroup.inc:247 +#: ../lib/modules/qmailGroup.inc:370 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:484 ../lib/modules/qmailGroup.inc:1057 +msgid "Alternate address" +msgstr "Indirizzo alternativo" + +#: ../lib/modules.inc:1071 ../lib/modules.inc:1170 ../help/help.inc:214 +msgid "Alternate recipient" +msgstr "Destinatario alternativo" + +#: ../lib/modules/kolabUser.inc:50 +msgid "Always accept" +msgstr "Accetta sempre" + +#: ../lib/modules/kolabUser.inc:51 +msgid "Always reject" +msgstr "Rifiuta sempre" + +#: ../lib/modules/pykotaUser.inc:372 ../lib/modules/pykotaUser.inc:597 +#: ../lib/modules/pykotaUser.inc:906 ../lib/modules/pykotaUser.inc:965 +msgid "Amount" +msgstr "Ammontare" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1018 +#, php-format +msgid "An attribute (%s) was modified and is highlighted below." +msgstr "Un attributo (%s) è stato modificato ed è evidenziato di seguito." + +#: ../lib/modules/sudoRole.inc:268 +msgid "" +"An sudo role with this name already exists. Please choose another name." +msgstr "Esiste già un ruolo sudo con questo nome. Si prega di scegliere un altro nome." + +#: ../lib/modules/passwordSelfReset.inc:84 +#: ../lib/modules/passwordSelfReset.inc:183 +#: ../lib/modules/passwordSelfReset.inc:198 +#: ../lib/modules/passwordSelfReset.inc:219 +#: ../lib/modules/passwordSelfReset.inc:265 +#: ../lib/modules/passwordSelfReset.inc:384 +#: ../lib/modules/passwordSelfReset.inc:663 +#: ../lib/modules/passwordSelfReset.inc:1046 +msgid "Answer" +msgstr "Risposta" + +#: ../lib/modules/kolabUser.inc:331 ../lib/modules/kolabUser.inc:756 +#: ../lib/modules/kolabUser.inc:858 ../lib/modules/kolabUser.inc:861 +msgid "Anyone" +msgstr "Qualunque" + +#: ../lib/modules/customFields.inc:506 +msgid "Appearance" +msgstr "Apparenza" + +#: ../lib/modules/asteriskExtension.inc:110 +#: ../lib/modules/asteriskExtension.inc:165 +#: ../lib/modules/asteriskExtension.inc:366 +#: ../lib/modules/asteriskExtension.inc:823 +msgid "Application" +msgstr "Applicazione" + +#: ../lib/modules/asteriskExtension.inc:94 +#: ../lib/modules/asteriskExtension.inc:172 +#: ../lib/modules/asteriskExtension.inc:374 +#: ../lib/modules/asteriskExtension.inc:824 +msgid "Application data" +msgstr "Dato applicazione" + +#: ../templates/multiEdit.php:166 +msgid "Apply changes" +msgstr "Applica i cambiamenti" + +#: ../lib/modules/zarafaUser.inc:159 ../lib/modules/zarafaUser.inc:163 +#: ../lib/modules/zarafaUser.inc:315 ../lib/modules/zarafaUser.inc:379 +#: ../lib/modules/zarafaUser.inc:554 ../lib/modules/zarafaUser.inc:957 +#: ../lib/modules/zarafaUser.inc:1236 ../lib/modules/zarafaUser.inc:1317 +#: ../lib/modules/zarafaUser.inc:1803 +msgid "Archive servers" +msgstr "Server archivio" + +#: ../lib/modules/zarafaUser.inc:552 +msgid "Archiving" +msgstr "Archiviazione" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:53 +msgid "Are you sure you want to permanently delete these objects?" +msgstr "Siete sicuri di voler cancellare definitivamente questi oggetti?" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:107 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:51 +msgid "Are you sure you want to permanently delete this object?" +msgstr "Siete sicuri di voler cancellare definitivamente questo oggetto?" + +#: ../lib/modules/imapAccess.inc:129 +msgid "Ask" +msgstr "Chiedi" + +#: ../lib/modules/eduPerson.inc:142 ../lib/modules/eduPerson.inc:146 +#: ../lib/modules/eduPerson.inc:218 ../lib/modules/eduPerson.inc:234 +#: ../lib/modules/eduPerson.inc:352 ../lib/modules/eduPerson.inc:590 +msgid "Assurance profiles" +msgstr "Profili di assicurazione" + +#: ../lib/modules/eduPerson.inc:143 ../lib/modules/eduPerson.inc:147 +msgid "" +"Assurance profiles are the set of standards that are met by an identity " +"assertion." +msgstr "I profili di assicurazione sono un insieme di standard che sono corrisposti da un asserzione di identità." + +#: ../lib/modules/asteriskAccount.inc:73 +msgid "Asterisk" +msgstr "Asterisk" + +#: ../lib/modules/asteriskAccount.inc:132 +msgid "Asterisk AMA (Automated Message Accounting) flags." +msgstr "Flag Asterisk AMA (Automated Message Accounting)." + +#: ../lib/modules/asteriskExtension.inc:79 +msgid "Asterisk extension" +msgstr "Estensione Asterisk" + +#: ../lib/types/asteriskExt.inc:56 +msgid "Asterisk extensions" +msgstr "Estensioni Asterisk" + +#: ../lib/types/asteriskExt.inc:65 +msgid "Asterisk extensions entries" +msgstr "Voci estensioni Asterisk" + +#: ../lib/modules/asteriskAccount.inc:123 +#: ../lib/modules/asteriskAccount.inc:249 +#: ../lib/modules/asteriskAccount.inc:1233 +msgid "Asterisk realm" +msgstr "Reame Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:71 +msgid "Asterisk voicemail" +msgstr "Voicemail Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:120 +msgid "Asterisk voicemail context." +msgstr "Contesto voicemail Asterisk." + +#: ../lib/modules/sambaSamAccount.inc:560 +msgid "Atlantic time (Canada), Caracas" +msgstr "Atlantico (Canada), Caracas" + +#: ../templates/3rdParty/pla/lib/import_functions.php:455 +msgid "Attempting to delete a non existent attribute" +msgstr "Si è tentato di cancellare un attributo inesistente" + +#: ../templates/3rdParty/pla/lib/import_functions.php:466 +msgid "Attempting to replace a non existant attribute" +msgstr "Si è tentato di sostituire un attributo inesistente" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Attribute" +msgstr "Attributo" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:137 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:72 +msgid "Attribute doesn't exist" +msgstr "L'attributo non esiste" + +#: ../templates/multiEdit.php:119 ../lib/modules/customFields.inc:92 +#: ../lib/modules/customFields.inc:1060 ../lib/modules/customFields.inc:1710 +msgid "Attribute name" +msgstr "Nome attributo" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:117 +msgid "Attribute not available" +msgstr "L'attributo non è disponibile" + +#: ../templates/3rdParty/pla/lib/import_functions.php:535 +msgid "Attribute not valid" +msgstr "L'attributo non è valido" + +#: ../templates/schema/schema.php:69 ../templates/schema/schema.php:70 +msgid "Attribute types" +msgstr "Tipi di attributo" + +#: ../lib/modules/selfRegistration.inc:78 +#: ../lib/modules/selfRegistration.inc:220 +msgid "Attributes" +msgstr "Attributi" + +#: ../lib/modules/sambaSamAccount.inc:576 +msgid "Auckland, Fiji, Kamchatka" +msgstr "Auckland, Fiji, Kamchatka" + +#: ../lib/modules/asteriskAccount.inc:124 +msgid "" +"Authentication realm for Asterisk server (default: asterisk). This value set" +" in sip.conf (option: \"realm\")." +msgstr "Reame di autenticazione per il server Asterisk (predefinito: asterisk). Questi valori sono impostati in sip.conf (opzione: \"realm\")." + +#: ../lib/modules/asteriskAccount.inc:232 +msgid "Authentication user for outbound proxies." +msgstr "Utente di autenticazione per proxy esterni." + +#: ../lib/modules/bindDLZ.inc:1013 +msgid "Authoritative information (\"SOA\" record)" +msgstr "Informazioni di autorizzazione (record \"SOA\")" + +#: ../lib/modules/authorizedServiceObject.inc:71 +#: ../lib/modules/authorizedServiceObject.inc:81 +#: ../lib/modules/authorizedServiceObject.inc:85 +#: ../lib/modules/authorizedServiceObject.inc:105 +#: ../lib/modules/authorizedServiceObject.inc:112 +#: ../lib/modules/authorizedServiceObject.inc:116 +#: ../lib/modules/authorizedServiceObject.inc:168 +#: ../lib/modules/authorizedServiceObject.inc:243 +msgid "Authorized Services" +msgstr "Servizi autorizzati" + +#: ../lib/modules/authorizedServiceObject.inc:129 +msgid "Authorized services are invalid." +msgstr "I servizi autorizzati non sono validi." + +#: ../lib/modules/customFields.inc:152 ../lib/modules/customFields.inc:1917 +msgid "Auto-completion" +msgstr "Auto-completamento" + +#: ../lib/modules/bindDLZ.inc:232 ../lib/modules/bindDLZ.inc:2526 +msgid "Automatic PTR changes" +msgstr "Cambio automatico PTR" + +#: ../lib/modules/customScripts.inc:167 +msgid "Automatical scripts" +msgstr "Script automatico" + +#: ../lib/modules/kolabGroup.inc:117 ../lib/modules/kolabGroup.inc:127 +#: ../lib/modules/puppetClient.inc:108 ../lib/modules/puppetClient.inc:160 +#: ../lib/modules/qmailUser.inc:131 ../lib/modules/qmailUser.inc:263 +#: ../lib/modules/zarafaContact.inc:87 ../lib/modules/zarafaContact.inc:583 +#: ../lib/modules/posixGroup.inc:396 ../lib/modules/posixGroup.inc:537 +#: ../lib/modules/eduPerson.inc:150 ../lib/modules/eduPerson.inc:155 +#: ../lib/modules/pykotaGroup.inc:129 ../lib/modules/pykotaGroup.inc:140 +#: ../lib/modules/sambaSamAccount.inc:165 +#: ../lib/modules/sambaSamAccount.inc:402 ../lib/modules/posixAccount.inc:432 +#: ../lib/modules/posixAccount.inc:1784 ../lib/modules/zarafaUser.inc:136 +#: ../lib/modules/zarafaUser.inc:1303 ../lib/modules/pykotaUser.inc:160 +#: ../lib/modules/pykotaUser.inc:173 ../lib/modules/shadowAccount.inc:106 +#: ../lib/modules/shadowAccount.inc:197 ../lib/modules/customFields.inc:856 +#: ../lib/modules/qmailGroup.inc:101 ../lib/modules/qmailGroup.inc:232 +#: ../lib/modules/authorizedServiceObject.inc:89 +#: ../lib/modules/authorizedServiceObject.inc:117 +#: ../lib/modules/passwordSelfReset.inc:152 +#: ../lib/modules/passwordSelfReset.inc:167 ../lib/modules/hostObject.inc:83 +#: ../lib/modules/hostObject.inc:101 +msgid "Automatically add this extension" +msgstr "Aggiungi questa estensione automaticamente" + +#: ../lib/modules/bindDLZ.inc:233 +msgid "" +"Automatically adds and removes PTR entries when A/AAAA records are created " +"or deleted." +msgstr "Aggiunge automaticamente e rimuove i record PTR quando i record A/AAAA sono creati o eliminati." + +#: ../lib/types/automountType.inc:48 ../lib/types/automountType.inc:57 +msgid "Automount entries" +msgstr "Voci automount" + +#: ../lib/types/automountType.inc:87 ../lib/modules/automount.inc:50 +#: ../lib/modules/automount.inc:68 ../lib/modules/automount.inc:88 +#: ../lib/modules/automount.inc:104 ../lib/modules/automount.inc:114 +#: ../lib/modules/automount.inc:131 ../lib/modules/automount.inc:182 +msgid "Automount entry" +msgstr "Voce automount" + +#: ../lib/modules/automount.inc:114 ../lib/modules/automount.inc:115 +msgid "" +"Automount entry contains invalid characters. Only ASCII characters are " +"allowed." +msgstr "La voce di automount contiene caratteri non validi. Sono consentiti solo caratteri ASCII." + +#: ../lib/types/automountType.inc:215 +#, php-format +msgid "Automount entry count: %s" +msgstr "Conteggio voci di automount: %s" + +#: ../lib/modules/qmailUser.inc:51 +msgid "Autoreply" +msgstr "Risposta automatica" + +#: ../lib/modules/qmailUser.inc:116 ../lib/modules/qmailUser.inc:239 +#: ../lib/modules/qmailUser.inc:350 ../lib/modules/qmailUser.inc:424 +#: ../lib/modules/qmailUser.inc:639 ../lib/modules/qmailUser.inc:1147 +msgid "Autoreply text" +msgstr "Testo risposta automatica" + +#: ../templates/config/conftypes.php:215 ../lib/modules/customScripts.inc:61 +msgid "Available account types" +msgstr "Tipi di account disponibili" + +#: ../lib/modules/customScripts.inc:62 ../lib/modules/customScripts.inc:75 +msgid "Available actions" +msgstr "Azioni disponibili" + +#: ../lib/modules/posixAccount.inc:1569 ../lib/modules/posixAccount.inc:1602 +#: ../lib/modules/windowsUser.inc:1032 ../lib/modules/nisnetgroup.inc:386 +#: ../lib/modules/groupOfNamesUser.inc:133 +msgid "Available groups" +msgstr "Gruppi disponibili" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:93 +msgid "Available members" +msgstr "Membri disponibili" + +#: ../templates/config/confmodules.php:314 +msgid "Available modules" +msgstr "Moduli disponibili" + +#: ../lib/modules/organizationalRoleUser.inc:118 +msgid "Available roles" +msgstr "Ruoli disponibili" + +#: ../lib/modules/posixGroup.inc:297 ../lib/modules/asteriskExtension.inc:463 +msgid "Available users" +msgstr "Utenti disponibili" + +#: ../lib/modules/sambaSamAccount.inc:1340 +msgid "Available workstations" +msgstr "Postazioni di lavoro disponibili" + +#: ../lib/modules/sambaSamAccount.inc:563 +msgid "Azores, Cape Verde Islands" +msgstr "Azzorre, Isole di Capo Verde" + +#: ../lib/modules/dhcp_settings.inc:96 +msgid "B-Node (0x01)" +msgstr "Nodo-B (0x01)" + +#: ../templates/massBuildAccounts.php:276 ../lib/modules/zarafaContact.inc:436 +#: ../lib/modules/posixGroup.inc:342 ../lib/modules/zarafaGroup.inc:496 +#: ../lib/modules/device.inc:303 ../lib/modules/sambaSamAccount.inc:1357 +#: ../lib/modules/sambaSamAccount.inc:1641 +#: ../lib/modules/posixAccount.inc:1642 ../lib/modules/posixAccount.inc:1716 +#: ../lib/modules/zarafaUser.inc:920 ../lib/modules/zarafaUser.inc:969 +#: ../lib/modules/windowsUser.inc:1076 +#: ../lib/modules/sambaGroupMapping.inc:511 ../lib/modules/pykotaUser.inc:618 +#: ../lib/modules/pykotaUser.inc:675 ../lib/modules/nisnetgroup.inc:400 +#: ../lib/modules/inetOrgPerson.inc:1669 ../lib/modules/inetOrgPerson.inc:1745 +#: ../lib/modules/inetOrgPerson.inc:1835 ../lib/modules/qmailGroup.inc:865 +#: ../lib/modules/organizationalRole.inc:389 +#: ../lib/modules/windowsGroup.inc:606 ../lib/modules/groupOfNames.inc:447 +#: ../lib/modules/groupOfNames.inc:601 +msgid "Back" +msgstr "Indietro" + +#: ../lib/types/dhcp.inc:47 +msgid "Back to DHCP list" +msgstr "Torna alla lista DHCP" + +#: ../lib/types/bind.inc:30 +msgid "Back to DNS list" +msgstr "Ritorna all'elenco DNS" + +#: ../lib/types/nisObjectType.inc:30 +msgid "Back to NIS object list" +msgstr "Torna alla lista degli oggetti NIS" + +#: ../lib/baseType.inc:48 +msgid "Back to account list" +msgstr "Torna alla lista degli account" + +#: ../lib/types/zarafaAddressListType.inc:44 +msgid "Back to address list" +msgstr "Torna alla lista degli indirizzi" + +#: ../lib/types/mailAlias.inc:44 ../lib/types/alias.inc:44 +msgid "Back to alias list" +msgstr "Torna alla lista degli alias" + +#: ../lib/types/automountType.inc:35 +msgid "Back to automount list" +msgstr "Torna alla lista degli automount" + +#: ../lib/types/pykotaBillingCodeType.inc:44 +msgid "Back to billing code list" +msgstr "Ritorna all'elenco codici di pagamento" + +#: ../lib/types/oracleContextType.inc:30 +msgid "Back to database list" +msgstr "Ritorna all'elenco dei database" + +#: ../lib/types/smbDomain.inc:44 +msgid "Back to domain list" +msgstr "Torna alla lista dei domini" + +#: ../lib/types/asteriskExt.inc:47 +msgid "Back to extensions list" +msgstr "Torna alla lista delle estensioni" + +#: ../templates/lists/userlink.php:63 ../lib/types/gon.inc:44 +#: ../lib/types/zarafaDynamicGroupType.inc:44 ../lib/types/group.inc:45 +#: ../lib/types/netgroup.inc:44 +msgid "Back to group list" +msgstr "Torna alla lista dei gruppi" + +#: ../lib/types/host.inc:44 +msgid "Back to host list" +msgstr "Torna alla lista dei computer" + +#: ../templates/delete.php:289 +msgid "Back to list" +msgstr "Torna alla lista" + +#: ../templates/config/mainmanage.php:257 ../templates/config/index.php:79 +#: ../templates/config/index.php:133 ../templates/config/conflogin.php:117 +#: ../templates/config/conflogin.php:201 ../templates/config/mainlogin.php:124 +#: ../templates/config/mainlogin.php:178 +#: ../templates/selfService/selfServiceSP.php:139 +#: ../templates/selfService/adminLogin.php:114 +#: ../templates/selfService/adminLogin.php:191 +msgid "Back to login" +msgstr "Torna al login" + +#: ../lib/types/ppolicyType.inc:30 +msgid "Back to policy list" +msgstr "Torna alla lista delle policy" + +#: ../lib/types/pykotaPrinterType.inc:44 +msgid "Back to printer list" +msgstr "Ritorna all'elenco stampanti" + +#: ../templates/config/profmanage.php:188 +#: ../templates/config/profmanage.php:326 +#: ../templates/selfService/profManage.php:144 +#: ../templates/selfService/profManage.php:262 +msgid "Back to profile login" +msgstr "Torna al login del profilo" + +#: ../lib/types/gon.inc:49 ../lib/types/group.inc:50 +msgid "Back to role list" +msgstr "Ritorna all'elenco dei ruoli" + +#: ../lib/types/kolabSharedFolderType.inc:44 +msgid "Back to shared folder list" +msgstr "Ritorna all'elenco delle cartelle condivise" + +#: ../lib/types/sudo.inc:30 +msgid "Back to sudo role list" +msgstr "Torna alla lista dei ruoli sudo" + +#: ../lib/types/user.inc:44 +msgid "Back to user list" +msgstr "Torna alla lista degli utenti" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:64 +msgid "Back up" +msgstr "Back up" + +#: ../templates/serverInfo.php:163 +msgid "Backends" +msgstr "Backends" + +#: ../lib/modules/passwordSelfReset.inc:88 +#: ../lib/modules/passwordSelfReset.inc:191 +#: ../lib/modules/passwordSelfReset.inc:201 +#: ../lib/modules/passwordSelfReset.inc:213 +#: ../lib/modules/passwordSelfReset.inc:220 +#: ../lib/modules/passwordSelfReset.inc:276 +#: ../lib/modules/passwordSelfReset.inc:387 +#: ../lib/modules/passwordSelfReset.inc:675 +msgid "Backup email" +msgstr "Backup email" + +#: ../lib/modules/passwordSelfReset.inc:89 +msgid "" +"Backup email address for password reset mails. Useful if user password " +"grants access to standard mailbox." +msgstr "Indirizzo email di backup per il reset della password. Utile se la password dell'utente garantisce l'accesso alle mailbox standard." + +#: ../lib/modules/sudoRole.inc:155 +msgid "Backup script" +msgstr "Script di backup" + +#: ../lib/modules/sambaSamAccount.inc:567 +msgid "Baghdad, Riyadh, Moscow" +msgstr "Baghdad, Riyadh, Mosca" + +#: ../lib/types/pykotaBillingCodeType.inc:93 ../lib/modules/pykotaGroup.inc:62 +#: ../lib/modules/pykotaUser.inc:62 ../lib/modules/pykotaUser.inc:132 +#: ../lib/modules/pykotaUser.inc:170 ../lib/modules/pykotaUser.inc:241 +#: ../lib/modules/pykotaUser.inc:262 ../lib/modules/pykotaUser.inc:322 +#: ../lib/modules/pykotaUser.inc:365 ../lib/modules/pykotaUser.inc:900 +#: ../lib/modules/pykotaUser.inc:947 ../lib/modules/pykotaBillingCode.inc:85 +#: ../lib/modules/pykotaBillingCode.inc:117 +#: ../lib/modules/pykotaBillingCode.inc:143 +#: ../lib/modules/pykotaBillingCode.inc:263 +msgid "Balance" +msgstr "Bilancio" + +#: ../lib/modules/pykotaUser.inc:281 +msgid "Balance (read-only)" +msgstr "Bilancio (sola-lettura)" + +#: ../lib/modules/pykotaUser.inc:136 ../lib/modules/pykotaUser.inc:247 +msgid "Balance comment" +msgstr "Commento bilancio" + +#: ../lib/modules/sambaSamAccount.inc:571 +msgid "Bangkok, Hanoi, Jakarta" +msgstr "Bangkok, Hanoi, Jakarta" + +#: ../lib/types/zarafaAddressListType.inc:93 +#: ../lib/types/zarafaDynamicGroupType.inc:94 +#: ../lib/modules/zarafaDynamicGroup.inc:87 +#: ../lib/modules/zarafaDynamicGroup.inc:101 +#: ../lib/modules/zarafaDynamicGroup.inc:152 +#: ../lib/modules/zarafaDynamicGroup.inc:170 +#: ../lib/modules/zarafaDynamicGroup.inc:198 +#: ../lib/modules/zarafaDynamicGroup.inc:231 +#: ../lib/modules/zarafaDynamicGroup.inc:449 +#: ../lib/modules/zarafaAddressList.inc:75 +#: ../lib/modules/zarafaAddressList.inc:89 +#: ../lib/modules/zarafaAddressList.inc:128 +#: ../lib/modules/zarafaAddressList.inc:144 +#: ../lib/modules/zarafaAddressList.inc:169 +#: ../lib/modules/zarafaAddressList.inc:198 +#: ../lib/modules/zarafaAddressList.inc:332 +msgid "Base" +msgstr "Base" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:142 +#: ../templates/3rdParty/pla/htdocs/export_form.php:31 +msgid "Base (base dn only)" +msgstr "Base (solo il DN base)" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:121 +#: ../templates/3rdParty/pla/lib/QueryRender.php:506 +#: ../templates/3rdParty/pla/htdocs/export_form.php:59 +msgid "Base DN" +msgstr "DN base" + +#: ../templates/config/confmodules.php:212 ../help/help.inc:144 +msgid "Base module" +msgstr "Modulo base" + +#: ../templates/pdfedit/pdfpage.php:441 +msgid "Beginning" +msgstr "Inizio" + +#: ../lib/modules/sambaSamAccount.inc:572 +msgid "Beijing, Perth, Singapore" +msgstr "Beijing, Perth, Singapore" + +#: ../lib/types/pykotaBillingCodeType.inc:91 +#: ../lib/modules/pykotaBillingCode.inc:77 +#: ../lib/modules/pykotaBillingCode.inc:115 +#: ../lib/modules/pykotaBillingCode.inc:127 +#: ../lib/modules/pykotaBillingCode.inc:129 +#: ../lib/modules/pykotaBillingCode.inc:141 +#: ../lib/modules/pykotaBillingCode.inc:261 +msgid "Billing code" +msgstr "Codice bilancio" + +#: ../lib/modules/pykotaBillingCode.inc:129 +#: ../lib/modules/pykotaBillingCode.inc:130 +msgid "Billing code already exists!" +msgstr "Il codice di fatturazione esiste già!" + +#: ../lib/modules/pykotaBillingCode.inc:127 +#: ../lib/modules/pykotaBillingCode.inc:128 +msgid "" +"Billing code contains invalid characters. Valid characters are: a-z, A-Z, " +"0-9 and .-_ !" +msgstr "Il codice di fatturazione contiene caratteri non validi. I caratteri validi sono: a-z, A-Z, 0-9 e .-_ !" + +#: ../lib/types/pykotaBillingCodeType.inc:163 +#, php-format +msgid "Billing code count: %s" +msgstr "Il codice del conto di fatturazione: %s" + +#: ../lib/modules/pykotaBillingCode.inc:82 +msgid "Billing code description." +msgstr "Descrizione del codice di fatturazione." + +#: ../lib/modules/pykotaBillingCode.inc:78 +msgid "" +"Billing code name which should be created. Valid characters are: a-z, A-Z, " +"0-9 and .-_ ." +msgstr "Il nome del codice di fatturazione che dovrebbe essere creato. I caratteri validi sono a-z, A-Z, 0-9 e .-_ ." + +#: ../lib/types/pykotaBillingCodeType.inc:53 +msgid "Billing codes" +msgstr "Codici di fatturazione" + +#: ../templates/3rdParty/pla/lib/PageRender.php:644 +#: ../templates/3rdParty/pla/lib/PageRender.php:648 +msgid "Binary value" +msgstr "Valore binario" + +#: ../templates/serverInfo.php:286 ../templates/serverInfo.php:375 +msgid "Bind" +msgstr "Bind" + +#: ../lib/types/bind.inc:39 +msgid "Bind DNS" +msgstr "Bind DNS" + +#: ../lib/types/bind.inc:48 +msgid "Bind DNS entries" +msgstr "Voci DNS bind" + +#: ../templates/config/confmain.php:444 +msgid "Bind password" +msgstr "Password di connessione" + +#: ../templates/config/confmain.php:442 +msgid "Bind user" +msgstr "Utente di connessione" + +#: ../help/help.inc:128 +msgid "Bind user and password" +msgstr "Utente e password di connessione" + +#: ../lib/modules/quota.inc:53 ../lib/modules/systemQuotas.inc:101 +msgid "Block hard quota" +msgstr "Quota di blocco hard" + +#: ../lib/modules/quota.inc:53 ../lib/modules/quota.inc:54 +#: ../lib/modules/systemQuotas.inc:101 ../lib/modules/systemQuotas.inc:102 +msgid "" +"Block hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "La quota di blocco hard contiene dei caratteri non validi. Sono accettati solo numeri naturali." + +#: ../lib/modules/quota.inc:59 ../lib/modules/systemQuotas.inc:107 +msgid "Block quota" +msgstr "Quota di blocco" + +#: ../lib/modules/quota.inc:51 ../lib/modules/systemQuotas.inc:99 +msgid "Block soft quota" +msgstr "Quota di blocco Soft" + +#: ../lib/modules/quota.inc:51 ../lib/modules/quota.inc:52 +#: ../lib/modules/systemQuotas.inc:99 ../lib/modules/systemQuotas.inc:100 +msgid "" +"Block soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "La quota di blocco Soft contiene dei caratteri non validi. Sono accettati solo numeri naturali." + +#: ../lib/modules/quota.inc:59 ../lib/modules/quota.inc:60 +#: ../lib/modules/systemQuotas.inc:107 ../lib/modules/systemQuotas.inc:108 +msgid "Block soft quota must be smaller than block hard quota." +msgstr "La quota soft deve essere più piccola della quota hard." + +#: ../lib/modules/qmailGroup.inc:72 ../lib/modules/qmailGroup.inc:143 +#: ../lib/modules/qmailGroup.inc:147 ../lib/modules/qmailGroup.inc:263 +#: ../lib/modules/qmailGroup.inc:375 ../lib/modules/qmailGroup.inc:431 +#: ../lib/modules/qmailGroup.inc:522 ../lib/modules/qmailGroup.inc:1059 +msgid "Bounce admin email" +msgstr "Email amministrativa di bounce" + +#: ../lib/modules/sambaSamAccount.inc:561 +msgid "Brazil, Buenos Aires" +msgstr "Brasile, Buenos Aires" + +#: ../templates/3rdParty/pla/htdocs/copy.php:53 +msgid "Building snapshot of tree to copy" +msgstr "Creazione dello snapshot dell'albero da copiare" + +#: ../lib/modules/sambaGroupMapping.inc:73 +msgid "Builtin group" +msgstr "Gruppi predefiniti" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:63 +msgid "Bulk edit the following DNs" +msgstr "Modifica in blocco i seguenti DN" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:48 +msgid "Bulk update the following DNs" +msgstr "Aggiorna in blocco i seguenti DN" + +#: ../lib/modules/inetOrgPerson.inc:103 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:232 ../lib/modules/inetOrgPerson.inc:369 +#: ../lib/modules/inetOrgPerson.inc:599 ../lib/modules/inetOrgPerson.inc:764 +#: ../lib/modules/inetOrgPerson.inc:768 ../lib/modules/inetOrgPerson.inc:1473 +#: ../lib/modules/inetOrgPerson.inc:1476 ../lib/modules/inetOrgPerson.inc:1907 +#: ../lib/modules/inetOrgPerson.inc:2632 ../lib/modules/inetOrgPerson.inc:3545 +#: ../lib/modules/inetOrgPerson.inc:3586 +msgid "Business category" +msgstr "Tipo di attività" + +#: ../lib/modules/inetOrgPerson.inc:765 ../lib/modules/inetOrgPerson.inc:769 +msgid "Business category (e.g. Administration, IT-Services, Manangement, ...)" +msgstr "Tipo di attività (es. Amministrazione, Servizi IT, Gestione, ...)" + +#: ../help/help.inc:173 +msgid "" +"By default LAM will show all accounts that match the selected account " +"modules." +msgstr "Per impostazione predefinita LAM mostrerà tutti gli account corrispondenti ai moduli account selezionati." + +#: ../help/help.inc:243 +msgid "" +"By default all modifications are done as the user that authenticated in self" +" service. If active then LAM will use the connection user for all LDAP " +"modifications and searches." +msgstr "Per impostazione predefinita tutte le modifiche sono fatte dall'utente che si è autenticato nel servizio self service. Se attivo LAM userà la connessione per tutte le ricerche e modifiche LDAP." + +#: ../lib/modules/selfRegistration.inc:103 +msgid "" +"By default all users are created in the self service LDAP suffix. You can " +"enter an alternative suffix here." +msgstr "Per impostazione predefinita tutti gli utenti sono creati nel suffisso LDAP self service. Puoi inserire un suffisso alternativo qui." + +#: ../lib/modules/customScripts.inc:89 +msgid "" +"By default, LAM will show the executed command along with any output of it. " +"If you want to hide the command and only show the output then activate this " +"option." +msgstr "Per impostazione predefinita, LAM mostrerà il comando eseguito assieme ad un qualsiasi output emesso. Se si vuole nascondere il comando e mostrare solo l'output attivare questa opzione." + +#: ../templates/serverInfo.php:253 ../templates/serverInfo.php:259 +msgid "Bytes sent" +msgstr "Bytes inviati" + +#: ../lib/modules/bindDLZ.inc:261 ../lib/modules/bindDLZ.inc:267 +#: ../lib/modules/bindDLZ.inc:474 ../lib/modules/bindDLZ.inc:490 +msgid "CNAME record" +msgstr "Record CNAME" + +#: ../lib/modules/bindDLZ.inc:432 +msgid "CNAME records" +msgstr "Records CNAME" + +#: ../templates/masscreate.php:253 +msgid "CSV file" +msgstr "File CSV" + +#: ../help/help.inc:107 +msgid "Cache timeout" +msgstr "Scadenza della cache" + +#: ../lib/modules/asteriskAccount.inc:135 +#: ../lib/modules/asteriskAccount.inc:272 +#: ../lib/modules/asteriskAccount.inc:355 +#: ../lib/modules/asteriskAccount.inc:615 +#: ../lib/modules/asteriskAccount.inc:988 +#: ../lib/modules/asteriskAccount.inc:1245 +msgid "Call groups" +msgstr "Gruppi di chiamata" + +#: ../lib/modules/asteriskAccount.inc:103 +#: ../lib/modules/asteriskAccount.inc:266 +#: ../lib/modules/asteriskAccount.inc:304 +#: ../lib/modules/asteriskAccount.inc:589 +#: ../lib/modules/asteriskAccount.inc:982 +msgid "Caller ID" +msgstr "ID del chiamante" + +#: ../lib/modules/sambaSamAccount.inc:306 +#: ../lib/modules/sambaSamAccount.inc:309 +#: ../lib/modules/sambaSamAccount.inc:312 +#: ../lib/modules/sambaSamAccount.inc:318 ../lib/modules/posixAccount.inc:535 +#: ../lib/modules/organizationalRoleUser.inc:61 +#: ../lib/modules/windowsUser.inc:205 ../lib/modules/windowsUser.inc:210 +#: ../lib/modules/sambaGroupMapping.inc:159 +#: ../lib/modules/shadowAccount.inc:178 ../lib/modules/shadowAccount.inc:182 +#: ../lib/modules/shadowAccount.inc:186 ../lib/modules/shadowAccount.inc:190 +#: ../lib/modules/groupOfNamesUser.inc:61 +msgid "Can be left empty." +msgstr "Può essere lasciato vuoto." + +#: ../lib/modules/asteriskAccount.inc:223 +#: ../lib/modules/asteriskAccount.inc:294 +#: ../lib/modules/asteriskAccount.inc:515 +#: ../lib/modules/asteriskAccount.inc:741 +#: ../lib/modules/asteriskAccount.inc:1010 +#: ../lib/modules/asteriskAccount.inc:1289 +msgid "Can call forward" +msgstr "Può deviare la chiamata" + +#: ../templates/lists/changePassword.php:340 +#: ../templates/lists/changePassword.php:377 +#: ../templates/lists/changePassword.php:418 +#: ../templates/lists/changePassword.php:449 ../templates/ou_edit.php:121 +#: ../templates/config/profmanage.php:254 +#: ../templates/config/profmanage.php:266 +#: ../templates/config/profmanage.php:275 +#: ../templates/config/profmanage.php:293 +#: ../templates/config/profmanage.php:304 +#: ../templates/config/mainmanage.php:470 +#: ../templates/config/confmodules.php:227 +#: ../templates/config/confmain.php:471 +#: ../templates/config/moduleSettings.php:241 +#: ../templates/config/conftypes.php:341 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminMain.php:748 +#: ../templates/pdfedit/pdfpage.php:638 ../templates/pdfedit/pdfmain.php:210 +#: ../templates/pdfedit/pdfmain.php:217 ../templates/pdfedit/pdfmain.php:223 +#: ../templates/delete.php:121 ../templates/profedit/profilepage.php:241 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/profedit/profilemain.php:205 +#: ../templates/profedit/profilemain.php:211 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:197 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:83 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:136 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:121 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:119 +#: ../templates/initsuff.php:191 ../lib/types/automountType.inc:234 +#: ../lib/types/user.inc:303 ../lib/types/bind.inc:175 +#: ../lib/modules/kolabGroup.inc:294 ../lib/modules/pykotaPrinter.inc:431 +#: ../lib/modules/mitKerberos.inc:690 ../lib/modules/qmailUser.inc:921 +#: ../lib/modules/zarafaContact.inc:391 ../lib/modules/windowsHost.inc:226 +#: ../lib/modules/zarafaGroup.inc:451 ../lib/modules/device.inc:254 +#: ../lib/modules/sambaSamAccount.inc:1432 +#: ../lib/modules/sambaSamAccount.inc:1481 +#: ../lib/modules/sambaSamAccount.inc:1567 ../lib/modules/zarafaUser.inc:875 +#: ../lib/modules/kolabUser.inc:520 ../lib/modules/sambaGroupMapping.inc:490 +#: ../lib/modules/shadowAccount.inc:478 ../lib/modules/nisnetgroup.inc:490 +#: ../lib/modules/inetOrgPerson.inc:1710 ../lib/modules/freeRadius.inc:431 +#: ../lib/modules/kolabSharedFolder.inc:434 +#: ../lib/modules/customFields.inc:1084 ../lib/modules/aliasEntry.inc:147 +#: ../lib/modules/aliasEntry.inc:167 ../lib/modules/qmailGroup.inc:823 +#: ../lib/modules/organizationalRole.inc:318 ../lib/modules/fixed_ip.inc:587 +#: ../lib/modules/heimdalKerberos.inc:600 ../lib/modules/windowsGroup.inc:505 +#: ../lib/modules/windowsGroup.inc:557 ../lib/modules/groupOfNames.inc:375 +#: ../lib/modules/groupOfNames.inc:530 ../lib/modules/nisMailAlias.inc:385 +#: ../lib/lists.inc:711 ../lib/lists.inc:792 ../lib/modules.inc:1222 +msgid "Cancel" +msgstr "Annulla" + +#: ../templates/login.php:569 ../templates/login.php:627 +#: ../templates/login.php:632 +#: ../templates/selfService/selfServiceLogin.php:141 +#: ../templates/selfService/selfServiceLogin.php:190 +#: ../templates/selfService/selfServiceLogin.php:195 +#: ../templates/selfService/selfServiceMain.php:168 +#: ../templates/selfService/selfServiceMain.php:189 +#: ../lib/modules/selfRegistration.inc:699 +msgid "Cannot connect to specified LDAP server. Please try again." +msgstr "Impossibile collegarsi al server LDAP specificato. Riprovare." + +#: ../templates/login.php:310 ../lib/config.inc:1641 +msgid "Cannot open config file!" +msgstr "Impossibile aprire il file di configurazione!" + +#: ../lib/modules/imapAccess.inc:187 +msgid "Cannot update quota." +msgstr "Impossibile aggiornare la quota." + +#: ../lib/config.inc:1653 ../lib/config.inc:1661 +msgid "" +"Cannot write certificate file. Please check the permissions of " +"config/serverCerts.pem." +msgstr "Impossibile scrivere il file certificato. Si prega di controllare i permessi di " + +#: ../lib/modules/zarafaUser.inc:120 ../lib/modules/zarafaUser.inc:247 +#: ../lib/modules/zarafaUser.inc:364 ../lib/modules/zarafaUser.inc:415 +#: ../lib/modules/zarafaUser.inc:545 ../lib/modules/zarafaUser.inc:1232 +#: ../lib/modules/zarafaUser.inc:1799 +msgid "Capacity" +msgstr "Capacità" + +#: ../templates/selfService/adminMain.php:528 +msgid "Captions and labels" +msgstr "Titoli e nomi dei campi" + +#: ../lib/modules/inetOrgPerson.inc:160 ../lib/modules/inetOrgPerson.inc:523 +#: ../lib/modules/inetOrgPerson.inc:593 ../lib/modules/inetOrgPerson.inc:788 +#: ../lib/modules/inetOrgPerson.inc:1446 ../lib/modules/inetOrgPerson.inc:1449 +#: ../lib/modules/inetOrgPerson.inc:1909 ../lib/modules/inetOrgPerson.inc:2610 +#: ../lib/modules/inetOrgPerson.inc:3541 ../lib/modules/inetOrgPerson.inc:3585 +msgid "Car license" +msgstr "Patente" + +#: ../lib/modules/sambaSamAccount.inc:565 +msgid "Central Europe Time, Paris, Berlin" +msgstr "Europa Centrale, Parigi, Berlino" + +#: ../lib/modules/sambaSamAccount.inc:558 +msgid "Central Time (US & Canada), Mexico City" +msgstr "America centrale (Stati uniti e Canada), Città del Messico" + +#: ../templates/selfService/adminMain.php:546 +#: ../lib/modules/mitKerberos.inc:377 ../lib/modules/mitKerberos.inc:388 +#: ../lib/modules/mitKerberos.inc:686 ../lib/modules/qmailUser.inc:661 +#: ../lib/modules/qmailUser.inc:917 ../lib/modules/zarafaContact.inc:229 +#: ../lib/modules/windowsHost.inc:155 ../lib/modules/windowsHost.inc:225 +#: ../lib/modules/zarafaGroup.inc:266 ../lib/modules/device.inc:181 +#: ../lib/modules/sambaSamAccount.inc:1192 +#: ../lib/modules/sambaSamAccount.inc:1477 ../lib/modules/zarafaUser.inc:466 +#: ../lib/modules/zarafaUser.inc:557 ../lib/modules/shadowAccount.inc:355 +#: ../lib/modules/shadowAccount.inc:474 ../lib/modules/inetOrgPerson.inc:1533 +#: ../lib/modules/freeRadius.inc:301 ../lib/modules/freeRadius.inc:427 +#: ../lib/modules/asteriskExtension.inc:236 ../lib/modules/aliasEntry.inc:100 +#: ../lib/modules/qmailGroup.inc:572 ../lib/modules/organizationalRole.inc:194 +#: ../lib/modules/passwordSelfReset.inc:271 +#: ../lib/modules/heimdalKerberos.inc:324 +#: ../lib/modules/heimdalKerberos.inc:335 +#: ../lib/modules/heimdalKerberos.inc:596 ../lib/modules/windowsGroup.inc:361 +#: ../lib/modules/windowsGroup.inc:504 ../lib/modules/groupOfNames.inc:241 +#: ../lib/modules/groupOfNames.inc:248 +msgid "Change" +msgstr "Modifica" + +#: ../templates/lists/changePassword.php:223 +msgid "Change Asterisk password" +msgstr "Cambio password Asterisk" + +#: ../templates/lists/changePassword.php:235 +msgid "Change Asterisk voicemail password" +msgstr "Cambia la password della voicemail Asterisk" + +#: ../lib/modules/posixGroup.inc:218 ../lib/modules/posixGroup.inc:512 +msgid "Change GID number of users and hosts" +msgstr "Modifica il numero di GID di utenti e computer" + +#: ../templates/lists/changePassword.php:226 +#: ../templates/lists/changePassword.php:229 +msgid "Change Kerberos password" +msgstr "Cambio password Kerberos" + +#: ../templates/lists/changePassword.php:216 +msgid "Change Samba LM password" +msgstr "Cambio password Samba LM" + +#: ../templates/lists/changePassword.php:214 +msgid "Change Samba NT password" +msgstr "Cambio password Samba NT" + +#: ../templates/lists/changePassword.php:208 +msgid "Change Unix password" +msgstr "Cambio password Unix" + +#: ../templates/lists/changePassword.php:232 +msgid "Change Windows password" +msgstr "Cambia la password di Windows" + +#: ../lib/types/user.inc:303 +msgid "Change account status" +msgstr "Cambia status account" + +#: ../templates/config/profmanage.php:300 +#: ../templates/config/profmanage.php:303 ../help/help.inc:138 +msgid "Change default profile" +msgstr "Modifica il profilo predefinito" + +#: ../templates/selfService/adminMain.php:607 +msgid "Change field label." +msgstr "Cambia etichetta del campo." + +#: ../lib/lists.inc:792 +msgid "Change list settings" +msgstr "Modifica le impostazioni della lista" + +#: ../templates/config/mainmanage.php:454 ../help/help.inc:140 +msgid "Change master password" +msgstr "Modifica la password principale" + +#: ../templates/lists/changePassword.php:211 +#: ../templates/lists/changePassword.php:256 +#: ../templates/lists/changePassword.php:337 +#: ../templates/lists/changePassword.php:339 +#: ../templates/lists/changePassword.php:374 +#: ../templates/lists/changePassword.php:376 ../lib/types/user.inc:669 +#: ../help/help.inc:105 +msgid "Change password" +msgstr "Modifica la password" + +#: ../templates/lists/changePassword.php:263 +#: ../templates/lists/changePassword.php:264 +msgid "Change password now?" +msgstr "Modifica la password adesso?" + +#: ../templates/config/confmain.php:261 +msgid "Change passwords" +msgstr "Modifica le password" + +#: ../lib/lists.inc:793 +msgid "Change settings" +msgstr "Modifica le impostazioni" + +#: ../lib/modules/posixAccount.inc:1225 +msgid "Changed value because only ASCII characters are allowed." +msgstr "Modificato il valore perchè sono accettati solo caratteri ASCII." + +#: ../lib/modules/passwordSelfReset.inc:185 +msgid "Charlie" +msgstr "Charlie" + +#: ../lib/modules/posixAccount.inc:1485 +msgid "Check home directories" +msgstr "Verifica le home directory" + +#: ../templates/tests/index.php:54 ../lib/tools/tests.inc:112 +msgid "Check if quotas and homedirectories can be managed." +msgstr "Verifica se le quota e le home directory possono essere gestite." + +#: ../templates/tests/index.php:60 ../lib/tools/tests.inc:118 +msgid "" +"Check if the LDAP schema fits the requirements of the selected account " +"modules." +msgstr "Verifica se lo schema LDAP rispetta i requisiti dei moduli degli account selezionati." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2401 +msgid "Check password" +msgstr "Verifica la password" + +#: ../templates/tests/lamdaemonTest.php:87 +msgid "Check quotas" +msgstr "Verifica le quota" + +#: ../templates/masscreate.php:247 +msgid "" +"Check your input carefully. LAM will only do some basic checks on the upload" +" data." +msgstr "Controllate i dati inseriti attentamente. LAM effettuerà solo alcuni controlli di base sui dati inseriti." + +#: ../lib/modules/customFields.inc:2735 +msgid "Checkbox" +msgstr "Conferma" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1224 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1229 +msgid "Children" +msgstr "Figlio" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:23 +msgid "Choose entry" +msgstr "Scelta voce" + +#: ../lib/modules/imapAccess.inc:90 +msgid "" +"Choose the way how to provide the IMAP admin password. You can use the same " +"password as for the LAM login or LAM will ask you for a password when it is " +"required." +msgstr "Scegliere il modo di fornire la password IMAP di admin. E' possibile utilizzare la stessa password di accesso di LAM o LAM richiederà una password quando necessario." + +#: ../lib/modules/puppetClient.inc:92 ../lib/modules/puppetClient.inc:96 +#: ../lib/modules/puppetClient.inc:140 ../lib/modules/puppetClient.inc:155 +#: ../lib/modules/puppetClient.inc:168 ../lib/modules/puppetClient.inc:271 +#: ../lib/modules/puppetClient.inc:433 +msgid "Classes" +msgstr "Classi" + +#: ../lib/lists.inc:384 +msgid "Clear filter" +msgstr "Cancella filtro" + +#: ../lib/config.inc:224 +msgid "Click here if you are not directed to the next page." +msgstr "Selezionare questo collegamento se non si è ridiretti alla pagina successiva." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2349 +msgid "Click to popup a dialog to select a date graphically" +msgstr "Clicca per aprire un popup di dialogo per la selezionare grafica della data" + +#: ../templates/3rdParty/pla/lib/functions.php:2293 +msgid "Click to popup a dialog to select an entry (DN) graphically" +msgstr "Clicca per aprire un popup di dialogo per selezionare graficamente un oggetto (DN)" + +#: ../lib/types/user.inc:619 +msgid "Click to switch between thumbnail and original size." +msgstr "Clicca per passare fra miniatura e dimensione originale." + +#: ../lib/modules/sambaSamAccount.inc:241 +#: ../lib/modules/sambaSamAccount.inc:378 +#: ../lib/modules/sambaSamAccount.inc:1535 +#: ../lib/modules/sambaSamAccount.inc:1943 +msgid "Client printer is default" +msgstr "La stampante del client é quella predefinita" + +#: ../templates/schema/schema.php:199 +msgid "Collective" +msgstr "Collettivo" + +#: ../lib/modules/pykotaPrinter.inc:155 +msgid "Color laser printer" +msgstr "Stampante laser a colori" + +#: ../templates/masscreate.php:284 ../lib/modules/customFields.inc:128 +#: ../lib/modules/customFields.inc:2601 +msgid "Columns" +msgstr "Colonne" + +#: ../lib/modules/sambaSamAccount.inc:318 +msgid "" +"Comma separated list of Samba workstations the user is allowed to login. " +"Empty means every workstation." +msgstr "Lista separata da virgole di computer Samba sui quali l'utente si può collegare. Se vuota si può collegare su tutti i computer." + +#: ../lib/modules/authorizedServiceObject.inc:86 +msgid "Comma separated list of services (e.g. sshd, imap, ftp)." +msgstr "Elenco di servizi separati da virgola (es. sshd, imap, ftp)." + +#: ../lib/types/sudo.inc:80 ../lib/modules/customScripts.inc:169 +msgid "Command" +msgstr "Comando" + +#: ../lib/modules/sudoRole.inc:82 ../lib/modules/sudoRole.inc:108 +#: ../lib/modules/sudoRole.inc:171 ../lib/modules/sudoRole.inc:218 +#: ../lib/modules/sudoRole.inc:230 ../lib/modules/sudoRole.inc:370 +#: ../lib/modules/sudoRole.inc:808 +msgid "Commands" +msgstr "Comandi" + +#: ../lib/modules/pykotaUser.inc:375 ../lib/modules/pykotaUser.inc:599 +#: ../lib/modules/pykotaUser.inc:907 ../lib/modules/pykotaUser.inc:967 +msgid "Comment" +msgstr "Commento" + +#: ../lib/modules/pykotaUser.inc:137 +msgid "Comment for initial balance." +msgstr "Commento per il bilancio iniziale." + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:117 +msgid "Commit" +msgstr "Salva" + +#: ../lib/modules/posixAccount.inc:438 +msgid "Common examples are \"@givenname@%sn%\" or \"%givenname%.%sn%\"." +msgstr "Esempi comuni sono \"@givenname@%sn%\" o \"%givenname%.%sn%\"." + +#: ../templates/config/mainmanage.php:362 ../lib/types/user.inc:94 +#: ../lib/modules/pykotaGroup.inc:113 ../lib/modules/pykotaGroup.inc:157 +#: ../lib/modules/pykotaGroup.inc:185 ../lib/modules/pykotaGroup.inc:466 +#: ../lib/modules/posixAccount.inc:129 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:348 ../lib/modules/posixAccount.inc:421 +#: ../lib/modules/posixAccount.inc:538 ../lib/modules/posixAccount.inc:560 +#: ../lib/modules/posixAccount.inc:1429 ../lib/modules/posixAccount.inc:1851 +#: ../lib/modules/posixAccount.inc:2552 ../lib/modules/windowsUser.inc:102 +#: ../lib/modules/windowsUser.inc:290 ../lib/modules/windowsUser.inc:473 +#: ../lib/modules/windowsUser.inc:499 ../lib/modules/windowsUser.inc:591 +#: ../lib/modules/windowsUser.inc:702 ../lib/modules/windowsUser.inc:1586 +#: ../lib/modules/pykotaUser.inc:108 ../lib/modules/pykotaUser.inc:199 +#: ../lib/modules/pykotaUser.inc:271 ../lib/modules/pykotaUser.inc:405 +#: ../lib/modules/pykotaUser.inc:888 ../lib/modules/inetOrgPerson.inc:93 +#: ../lib/modules/inetOrgPerson.inc:626 ../lib/modules/inetOrgPerson.inc:740 +#: ../lib/modules/inetOrgPerson.inc:1197 ../lib/modules/inetOrgPerson.inc:1200 +#: ../lib/modules/inetOrgPerson.inc:1904 ../lib/modules/inetOrgPerson.inc:2035 +#: ../lib/modules/inetOrgPerson.inc:3595 +#: ../lib/modules/asteriskExtension.inc:118 +msgid "Common name" +msgstr "Nome Comune" + +#: ../lib/modules/asteriskExtension.inc:119 +msgid "Common name of the Asterisk extension." +msgstr "Nome comune dell'estensione Asterisk." + +#: ../templates/serverInfo.php:335 ../templates/serverInfo.php:396 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1172 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:60 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:39 +msgid "Compare" +msgstr "Compara" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:28 +#, php-format +msgid "Compare another DN with %s" +msgstr "Compara un altro DN con %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1169 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +msgid "Compare this DN with another" +msgstr "Compara questo DN con un altro" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +msgid "Compare with another entry" +msgstr "Compara con un altro oggetto" + +#: ../templates/3rdParty/pla/htdocs/compare.php:42 +msgid "Comparing the following DNs" +msgstr "Comparazione dei seguenti DN" + +#: ../templates/serverInfo.php:284 ../templates/serverInfo.php:371 +msgid "Completed" +msgstr "Completata" + +#: ../templates/serverInfo.php:114 +msgid "Config suffix" +msgstr "Configura suffisso" + +#: ../templates/config/index.php:50 +msgid "Configuration overview" +msgstr "Riepilogo della configurazione" + +#: ../lib/modules/qmailUser.inc:126 ../lib/modules/qmailUser.inc:179 +#: ../lib/modules/qmailUser.inc:259 ../lib/modules/qmailUser.inc:392 +#: ../lib/modules/qmailUser.inc:439 ../lib/modules/qmailUser.inc:619 +#: ../lib/modules/qmailUser.inc:1178 +msgid "Configuration type" +msgstr "Tipo configurazione" + +#: ../lib/modules/qmailGroup.inc:96 ../lib/modules/qmailGroup.inc:228 +#: ../lib/modules/qmailGroup.inc:361 ../lib/modules/qmailGroup.inc:411 +#: ../lib/modules/qmailGroup.inc:623 ../lib/modules/qmailGroup.inc:1081 +msgid "Confirm sender" +msgstr "Conferma mittente" + +#: ../lib/modules/selfRegistration.inc:228 +msgid "Confirmation mail settings" +msgstr "Impostazioni email di conferma" + +#: ../lib/modules/qmailGroup.inc:74 ../lib/modules/qmailGroup.inc:103 +#: ../lib/modules/qmailGroup.inc:152 ../lib/modules/qmailGroup.inc:271 +#: ../lib/modules/qmailGroup.inc:378 ../lib/modules/qmailGroup.inc:591 +#: ../lib/modules/qmailGroup.inc:1060 +msgid "Confirmation text" +msgstr "Testo di conferma" + +#: ../lib/modules/qmailGroup.inc:153 +msgid "" +"Confirmation text that is used if sender-confirmation is used. The usual " +"%HEADER% magic of qmail-reply etc. can be used here." +msgstr "Testo utilizzato come testo di conferma. Il solito %HEADER% magico di qmail-reply etc. può essere usato qui." + +#: ../templates/config/confmodules.php:394 +msgid "Conflicting module:" +msgstr "Modulo in conflitto:" + +#: ../lib/modules/sambaSamAccount.inc:239 +#: ../lib/modules/sambaSamAccount.inc:372 +#: ../lib/modules/sambaSamAccount.inc:1531 +#: ../lib/modules/sambaSamAccount.inc:1933 +msgid "Connect client drives" +msgstr "Connetti i dischi del client" + +#: ../lib/modules/sambaSamAccount.inc:240 +#: ../lib/modules/sambaSamAccount.inc:375 +#: ../lib/modules/sambaSamAccount.inc:1533 +#: ../lib/modules/sambaSamAccount.inc:1938 +msgid "Connect client printers" +msgstr "Connetti le stampanti del cliente" + +#: ../templates/serverInfo.php:230 +msgid "Connection statistics" +msgstr "Statistiche di connessione" + +#: ../lib/types/oracleContextType.inc:78 ../lib/modules/oracleService.inc:65 +#: ../lib/modules/oracleService.inc:85 ../lib/modules/oracleService.inc:99 +#: ../lib/modules/oracleService.inc:123 ../lib/modules/oracleService.inc:171 +msgid "Connection string" +msgstr "Stringa di connessione" + +#: ../lib/modules/sambaSamAccount.inc:236 +#: ../lib/modules/sambaSamAccount.inc:1519 +#: ../lib/modules/sambaSamAccount.inc:1926 +msgid "Connection time limit" +msgstr "Tempo massimo di connessione" + +#: ../lib/modules/bindDLZ.inc:225 +msgid "Contact address for this zone (e.g. \"root.example.com.\")." +msgstr "Indirizzo di contatto per questa zona (es. \"root.example.com.\")." + +#: ../lib/modules/windowsUser.inc:715 ../lib/modules/inetOrgPerson.inc:1377 +msgid "Contact data" +msgstr "Dato di contatto" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:721 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1301 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +msgid "Container" +msgstr "Contenitore" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1458 +msgid "Container and object classes" +msgstr "Contenitore e classi di oggetti" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:27 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:88 +#: ../templates/3rdParty/pla/htdocs/copy.php:108 +msgid "Copy" +msgstr "Copia" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:32 +#, php-format +msgid "Copy %s to a new object." +msgstr "Copia %s in un nuovo oggetto." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1098 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1102 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1103 +msgid "Copy or move this entry" +msgstr "Copia o sposta questo oggetto" + +#: ../templates/3rdParty/pla/htdocs/copy.php:130 +#, php-format +msgid "Copy successful. DN %s has been created." +msgstr "Copia avvenuta con successo. Il DN %s è stato creato." + +#: ../templates/3rdParty/pla/htdocs/copy.php:48 +msgid "Copying" +msgstr "Copia in corso" + +#: ../templates/3rdParty/pla/htdocs/import.php:37 +msgid "Could not add object" +msgstr "Impossibile aggiungere l'oggetto" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:370 +msgid "Could not add the object to the LDAP server." +msgstr "Impossibile aggiungere l'oggetto al server LDAP." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:30 +msgid "Could not delete attribute value." +msgstr "Impossibile cancellare il valore dell'attributo." + +#: ../templates/3rdParty/pla/htdocs/import.php:38 +msgid "Could not delete object" +msgstr "Impossibile cancellare l'oggetto" + +#: ../templates/3rdParty/pla/htdocs/delete.php:37 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:47 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:73 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:90 +msgid "Could not delete the entry." +msgstr "Impossibile cancellare l'oggetto." + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:37 +#, php-format +msgid "Could not fetch binary data from LDAP server for attribute [%s]." +msgstr "Impossibile recuperare il dato binario dal server LDAP per l'attributo [%s]." + +#: ../templates/3rdParty/pla/lib/functions.php:1946 +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:60 +#, php-format +msgid "Could not fetch jpeg data from LDAP server for attribute [%s]." +msgstr "Impossibile recuperare il dato jpeg dal server LDAP per l'attributo [%s]." + +#: ../templates/3rdParty/pla/htdocs/import.php:41 +msgid "Could not modify object" +msgstr "Impossibile modificare l'oggetto" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:528 +msgid "Could not perform ldap_modify operation." +msgstr "Impossibile effettuare l'operazione ldap_modify." + +#: ../templates/config/profmanage.php:100 +#: ../templates/selfService/profManage.php:74 +msgid "Could not rename file!" +msgstr "Impossibile rinominare il file!" + +#: ../templates/3rdParty/pla/htdocs/import.php:39 +#: ../templates/3rdParty/pla/htdocs/import.php:40 +#: ../templates/3rdParty/pla/htdocs/rename.php:60 +msgid "Could not rename the entry." +msgstr "Impossibile rinominare l'oggetto." + +#: ../templates/pdfedit/pdfpage.php:117 +msgid "Could not save PDF structure, access denied." +msgstr "Impossibile salvare la struttura PDF, accesso negato." + +#: ../templates/pdfedit/pdfmain.php:182 +#: ../templates/profedit/profilemain.php:168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1185 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1189 +#: ../templates/initsuff.php:190 ../lib/modules/nisMailAliasUser.inc:366 +#: ../lib/modules/sambaSamAccount.inc:1620 +#: ../lib/modules/posixAccount.inc:1695 +msgid "Create" +msgstr "Crea" + +#: ../lib/lists.inc:500 ../lib/lists.inc:686 ../lib/modules.inc:1341 +#: ../help/help.inc:200 +msgid "Create PDF file" +msgstr "Crea il file PDF" + +#: ../templates/massDoUpload.php:202 ../templates/masscreate.php:264 +msgid "Create PDF files" +msgstr "Creare file PDF" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1186 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1190 +msgid "Create a child entry" +msgstr "Crea un oggetto figlio" + +#: ../templates/pdfedit/pdfmain.php:175 +msgid "Create a new PDF structure" +msgstr "Crea una nuova struttura PDF" + +#: ../templates/profedit/profilemain.php:156 +msgid "Create a new profile" +msgstr "Crea un nuovo profilo" + +#: ../lib/types/dhcp.inc:46 +msgid "Create another DHCP entry" +msgstr "Crea un nuovo oggetto DHCP" + +#: ../lib/types/bind.inc:29 +msgid "Create another DNS entry" +msgstr "Crea un'altra voce DNS" + +#: ../lib/types/nisObjectType.inc:29 +msgid "Create another NIS object" +msgstr "Crea un altro oggetto NIS" + +#: ../lib/baseType.inc:47 +msgid "Create another account" +msgstr "Crea un altro account" + +#: ../lib/types/zarafaAddressListType.inc:43 +msgid "Create another address list" +msgstr "Crea un altro elenco indirizzi" + +#: ../lib/types/mailAlias.inc:43 ../lib/types/alias.inc:43 +msgid "Create another alias" +msgstr "Crea un altro alias" + +#: ../lib/types/automountType.inc:34 +msgid "Create another automount entry" +msgstr "Crea un altra voce di automount" + +#: ../lib/types/pykotaBillingCodeType.inc:43 +msgid "Create another billing code" +msgstr "Crea un altro codice di fatturazione" + +#: ../lib/types/oracleContextType.inc:29 +msgid "Create another database entry" +msgstr "Crea un altra voce database" + +#: ../lib/types/smbDomain.inc:43 +msgid "Create another domain" +msgstr "Crea un altro dominio" + +#: ../templates/3rdParty/pla/htdocs/create.php:100 +msgid "Create another entry" +msgstr "Crea un nuovo oggetto" + +#: ../lib/types/asteriskExt.inc:46 +msgid "Create another extension" +msgstr "Crea un altra estensione" + +#: ../lib/types/gon.inc:43 ../lib/types/zarafaDynamicGroupType.inc:43 +#: ../lib/types/group.inc:44 ../lib/types/netgroup.inc:43 +msgid "Create another group" +msgstr "Crea un altro gruppo" + +#: ../lib/types/host.inc:43 +msgid "Create another host" +msgstr "Crea un altro computer" + +#: ../lib/types/ppolicyType.inc:29 +msgid "Create another policy" +msgstr "Crea un altra policy" + +#: ../lib/types/pykotaPrinterType.inc:43 +msgid "Create another printer" +msgstr "Crea un'altra stampante" + +#: ../lib/types/gon.inc:48 ../lib/types/group.inc:49 +msgid "Create another role" +msgstr "Crea un altro ruolo" + +#: ../lib/types/kolabSharedFolderType.inc:43 +msgid "Create another shared folder" +msgstr "Crea un'altra cartella condivisa" + +#: ../lib/types/sudo.inc:29 +msgid "Create another sudo role" +msgstr "Crea un altro ruolo sudo" + +#: ../lib/types/user.inc:43 +msgid "Create another user" +msgstr "Crea un altro utente" + +#: ../lib/lists.inc:691 +msgid "Create for" +msgstr "Crea per" + +#: ../lib/modules/posixAccount.inc:317 ../lib/modules/posixAccount.inc:1471 +#: ../lib/modules/posixAccount.inc:1760 +msgid "Create home directory" +msgstr "Crea la home directory" + +#: ../lib/modules/imapAccess.inc:263 +msgid "Create mailbox" +msgstr "Crea la mailbox" + +#: ../lib/modules/nisMailAliasUser.inc:359 +msgid "Create new alias" +msgstr "Crea un nuovo alias" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:278 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:281 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:283 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:506 +msgid "Create new entry here" +msgstr "Crea un nuovo oggetto qui" + +#: ../lib/modules/customFields.inc:72 ../lib/modules/customFields.inc:519 +#: ../lib/modules/customFields.inc:532 +msgid "Create new group" +msgstr "Crea un nuovo gruppo" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:698 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1541 +#: ../templates/3rdParty/pla/htdocs/create.php:84 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:52 +msgid "Create object" +msgstr "Crea oggetto" + +#: ../lib/modules/generalInformation.inc:76 +msgid "Created by" +msgstr "Creato da" + +#: ../lib/types/automountType.inc:273 +msgid "Created new automount map." +msgstr "Crea una nuova mappa automount." + +#: ../templates/config/profmanage.php:77 +#: ../templates/selfService/profManage.php:55 +msgid "Created new profile." +msgstr "Crea un nuovo profilo." + +#: ../lib/types/bind.inc:240 +msgid "Created new zone." +msgstr "Nuova zona creata." + +#: ../lib/modules/customFields.inc:73 +msgid "" +"Creates a new group for the given account type. Groups build a container for" +" object classes and attributes." +msgstr "Crea un nuovo gruppo per il tipo di account dato. I gruppi costituiscono un contenitore per le classi di oggetti ed attributi." + +#: ../lib/tools/fileUpload.inc:53 +msgid "Creates accounts by uploading a CSV formated file." +msgstr "Crea account caricando un file in formato CSV." + +#: ../templates/3rdParty/pla/htdocs/create.php:77 +#, php-format +msgid "Creation successful. DN %s has been created." +msgstr "La creazione ha avuto successo. Il DN %s è stato creato." + +#: ../lib/modules/generalInformation.inc:80 +msgid "Creation time" +msgstr "Tempo di creazione" + +#: ../lib/modules/pykotaUser.inc:133 +msgid "Current account balance for the user." +msgstr "Saldo del conto per l'utente." + +#: ../templates/serverInfo.php:232 ../templates/serverInfo.php:237 +msgid "Current connections" +msgstr "Connessioni attuali" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:65 +#, php-format +msgid "Current list of %s values for attribute %s:" +msgstr "Elenco attuale dei valori %s per l'attributo %s:" + +#: ../lib/modules/imapAccess.inc:317 +msgid "Current usage (kB)" +msgstr "Uso corrente (kb)" + +#: ../lib/modules/customFields.inc:1097 ../lib/modules/customFields.inc:1420 +msgid "Custom fields" +msgstr "Campi personalizzati" + +#: ../lib/modules/customFields.inc:172 +msgid "Custom icon" +msgstr "Icona personalizzata" + +#: ../templates/config/conftypes.php:300 ../lib/modules/customFields.inc:168 +#: ../help/help.inc:180 +msgid "Custom label" +msgstr "Etichetta personalizzata" + +#: ../lib/modules/customScripts.inc:48 ../lib/modules/customScripts.inc:59 +#: ../lib/modules/customScripts.inc:73 ../lib/modules/customScripts.inc:98 +#: ../lib/modules/customScripts.inc:108 +msgid "Custom scripts" +msgstr "Script personalizzati" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1097 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1101 +msgid "Cut" +msgstr "Taglia" + +#: ../lib/modules/ddns.inc:63 +msgid "DDNS" +msgstr "DDNS" + +#: ../lib/modules/ddns.inc:377 +msgid "" +"DDNS ist not activated. You can activate it in the DHCP settings (DDNS)." +msgstr "DDNS non è attivo. È possibile attivarlo nelle impostazioni del DHCP (DDNS)." + +#: ../lib/types/dhcp.inc:56 +msgid "DHCP" +msgstr "DHCP" + +#: ../lib/types/dhcp.inc:65 +msgid "DHCP administration" +msgstr "Amministrazione del DHCP" + +#: ../lib/types/dhcp.inc:170 +#, php-format +msgid "DHCP count: %s" +msgstr "Conteggio DHCP: %s" + +#: ../lib/types/dhcp.inc:173 ../lib/modules/dhcp_settings.inc:127 +msgid "DHCP settings" +msgstr "Impostazioni del DHCP" + +#: ../templates/delete.php:100 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:734 +#: ../templates/3rdParty/pla/lib/PageRender.php:110 +#: ../templates/3rdParty/pla/htdocs/compare.php:52 +#: ../templates/3rdParty/pla/htdocs/compare.php:58 +#: ../templates/3rdParty/pla/htdocs/create.php:92 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:35 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:112 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:57 ../lib/modules.inc:410 +#: ../lib/modules.inc:1956 +msgid "DN" +msgstr "DN" + +#: ../templates/3rdParty/pla/lib/import_functions.php:210 +#: ../templates/3rdParty/pla/lib/import_functions.php:222 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1866 +msgid "DN does not exist" +msgstr "Il DN non esiste" + +#: ../templates/masscreate.php:288 +msgid "DN settings" +msgstr "Impostazioni DN" + +#: ../templates/masscreate.php:317 ../help/help.inc:190 +msgid "DN suffix" +msgstr "Suffisso DN" + +#: ../lib/modules/dhcp_settings.inc:211 ../lib/modules/dhcp_settings.inc:226 +#: ../lib/modules/dhcp_settings.inc:268 ../lib/modules/dhcp_settings.inc:577 +#: ../lib/modules/dhcp_settings.inc:677 +msgid "DNS" +msgstr "DNS" + +#: ../lib/modules/dhcp_settings.inc:161 +msgid "DNS (Domain Name System)" +msgstr "DNS (Sistema dei Nomi di Dominio)" + +#: ../lib/modules/bindDLZ.inc:67 +msgid "DNS entry" +msgstr "Voce DNS" + +#: ../lib/types/bind.inc:159 +#, php-format +msgid "DNS entry count: %s" +msgstr "Conteggio record DNS: %s" + +#: ../lib/modules/asteriskExtension.inc:115 +msgid "DNs of the extension owners" +msgstr "DN dei proprietari delle estensioni" + +#: ../templates/3rdParty/pla/lib/export_functions.php:343 +msgid "DSML V.1 Export" +msgstr "Esporta DSML V.1" + +#: ../lib/modules/asteriskAccount.inc:273 +#: ../lib/modules/asteriskAccount.inc:362 +#: ../lib/modules/asteriskAccount.inc:627 +#: ../lib/modules/asteriskAccount.inc:1247 +msgid "DTFM flags" +msgstr "Flag DTFM" + +#: ../lib/modules/asteriskAccount.inc:139 +#: ../lib/modules/asteriskAccount.inc:989 +msgid "DTMF mode" +msgstr "Modo DTMF" + +#: ../lib/modules/asteriskAccount.inc:140 +msgid "DTMF mode for SIP client configuration." +msgstr "Modo DTMF per la configurazione client SIP." + +#: ../templates/3rdParty/pla/htdocs/import.php:103 +msgid "Data" +msgstr "Dati" + +#: ../lib/types/oracleContextType.inc:186 +#, php-format +msgid "Database count: %s" +msgstr "Conteggio database: %s" + +#: ../lib/modules/pykotaUser.inc:595 ../lib/modules/pykotaUser.inc:646 +#: ../lib/modules/pykotaUser.inc:905 ../lib/modules/pykotaUser.inc:963 +#: ../lib/modules/pykotaUser.inc:995 +msgid "Date" +msgstr "Data" + +#: ../lib/modules/sambaSamAccount.inc:298 +msgid "Date after the user is able to change his password." +msgstr "Data dopo la quale l'utente può cambiare la sua password." + +#: ../lib/modules/mitKerberos.inc:121 ../lib/modules/sambaSamAccount.inc:300 +#: ../lib/modules/heimdalKerberos.inc:107 +msgid "Date after the user must change his password." +msgstr "Data dopo la quale l'utente deve cambiare la sua password." + +#: ../lib/modules/shadowAccount.inc:178 +msgid "" +"Days before password is to expire that user is warned of pending password " +"expiration. If set value must be >0." +msgstr "Giorni prima della scadenza della password per cui l'utente riceve un avviso di scadenza. Se impostato deve essere >0." + +#: ../templates/config/mainmanage.php:408 +msgid "Debug" +msgstr "Debug" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:592 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +#: ../lib/modules/qmailUser.inc:47 ../lib/modules/qmailUser.inc:292 +#: ../lib/modules/qmailUser.inc:1060 +msgid "Default" +msgstr "Predefinito" + +#: ../templates/config/mainmanage.php:443 +msgid "Default (\\r\\n)" +msgstr "Predefinito (\\r\\n)" + +#: ../lib/modules/dhcp_settings.inc:165 ../lib/modules/dhcp_settings.inc:212 +#: ../lib/modules/dhcp_settings.inc:227 ../lib/modules/dhcp_settings.inc:274 +#: ../lib/modules/dhcp_settings.inc:579 ../lib/modules/dhcp_settings.inc:678 +msgid "Default gateway" +msgstr "Router predefinito" + +#: ../templates/config/confmain.php:297 +#: ../templates/selfService/adminMain.php:485 ../help/help.inc:99 +msgid "Default language" +msgstr "Linguaggio predefinito" + +#: ../lib/modules/asteriskAccount.inc:231 +#: ../lib/modules/asteriskAccount.inc:296 +#: ../lib/modules/asteriskAccount.inc:530 +#: ../lib/modules/asteriskAccount.inc:750 +#: ../lib/modules/asteriskAccount.inc:1012 +#: ../lib/modules/asteriskAccount.inc:1293 +msgid "Default user" +msgstr "Utente predefinito" + +#: ../templates/masscreate.php:306 ../templates/masscreate.php:380 +#: ../lib/modules/customFields.inc:124 ../lib/modules/customFields.inc:2761 +msgid "Default value" +msgstr "Valore predefinito" + +#: ../help/help.inc:159 +msgid "" +"Defines if the PHP error reporting setting from php.ini is used or the " +"setting preferred by LAM (\"E_ALL & ~E_NOTICE\"). If you do not develop LAM " +"modules please use the default. This will prevent displaying messages that " +"are useful only for developers." +msgstr "Definisce se è utilizzata l'impostazione di notifica degli errori di PHP da php.ini o l'impostazione preferita da LAM (\"E_ALL & ~E_NOTICE\"). Se non si sviluppano moduli LAM utilizzare la predefinita. Questo preverrà la visualizzazione di messaggi utili ai programmatori." + +#: ../lib/modules/sambaDomain.inc:118 +msgid "Defines if workstations may change their passwords." +msgstr "Definisce se le password dei computer possono essere cambiate" + +#: ../lib/modules/asteriskAccount.inc:160 +msgid "" +"Defines the mailbox to check for message waiting indication (MWI) for this " +"peer." +msgstr "Defines la mailbox da controllare per messaggi che attendono indicazioni (MWI) per questo peer." + +#: ../lib/types/kolabSharedFolderType.inc:91 ../lib/modules/kolabUser.inc:116 +#: ../lib/modules/kolabUser.inc:132 ../lib/modules/kolabUser.inc:136 +#: ../lib/modules/kolabUser.inc:211 ../lib/modules/kolabUser.inc:234 +#: ../lib/modules/kolabUser.inc:359 ../lib/modules/kolabUser.inc:765 +#: ../lib/modules/kolabUser.inc:837 ../lib/modules/kolabSharedFolder.inc:138 +#: ../lib/modules/kolabSharedFolder.inc:142 +#: ../lib/modules/kolabSharedFolder.inc:226 +#: ../lib/modules/kolabSharedFolder.inc:237 +#: ../lib/modules/kolabSharedFolder.inc:320 +#: ../lib/modules/kolabSharedFolder.inc:564 +msgid "Delegates" +msgstr "Delegati" + +#: ../lib/modules/kolabSharedFolder.inc:139 +msgid "" +"Delegates are allowed to act on behalf of the shared folder. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "Ai delegati è consentito di agire verso le cartelle condivise. Questa proprietà è selezionata quando si usa il demone smtp di Kolab (Postfix) per inviare le email." + +#: ../templates/serverInfo.php:321 ../templates/serverInfo.php:390 +#: ../templates/multiEdit.php:126 ../templates/ou_edit.php:120 +#: ../templates/config/profmanage.php:273 +#: ../templates/selfService/profManage.php:238 +#: ../templates/pdfedit/pdfmain.php:209 ../templates/pdfedit/pdfmain.php:210 +#: ../templates/pdfedit/pdfmain.php:243 ../templates/delete.php:120 +#: ../templates/profedit/profilemain.php:198 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:33 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:124 +#: ../lib/modules/pykotaPrinter.inc:281 +#: ../lib/modules/sambaSamAccount.inc:1613 +#: ../lib/modules/posixAccount.inc:1688 ../lib/modules/zarafaUser.inc:1434 +#: ../lib/modules/zarafaUser.inc:1486 ../lib/modules/bindDLZ.inc:1055 +#: ../lib/modules/bindDLZ.inc:1376 ../lib/modules/kolabUser.inc:827 +#: ../lib/modules/sambaGroupMapping.inc:405 +#: ../lib/modules/ldapPublicKey.inc:262 ../lib/modules/nisnetgroup.inc:253 +#: ../lib/modules/inetOrgPerson.inc:2805 ../lib/modules/customFields.inc:2086 +#: ../lib/modules/customFields.inc:3462 ../lib/lists.inc:494 +msgid "Delete" +msgstr "Cancella" + +#: ../templates/3rdParty/pla/htdocs/delete.php:31 +msgid "Delete DN" +msgstr "Cancella DN" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:30 +msgid "Delete LDAP entries" +msgstr "Rimuovere gli oggetti LDAP" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:77 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:84 +msgid "Delete after copy (move):" +msgstr "Cancellazione dopo la copia (sposta):" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:72 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:110 +#, php-format +msgid "Delete all %s objects" +msgstr "Cancella tutti gli oggetti %s" + +#: ../templates/config/mainmanage.php:324 +msgid "Delete all CA certificates" +msgstr "Cancella tutti i certificati CA" + +#: ../lib/modules/customFields.inc:624 +msgid "Delete group" +msgstr "Elimina gruppo" + +#: ../lib/modules/posixAccount.inc:1532 +msgid "Delete home directory" +msgstr "Cancella la home directory" + +#: ../lib/modules/imapAccess.inc:256 +msgid "Delete mailbox" +msgstr "Cancella la mailbox" + +#: ../templates/ou_edit.php:199 ../help/help.inc:265 +msgid "Delete organisational unit" +msgstr "Cancella l'unità organizzativa" + +#: ../templates/3rdParty/pla/lib/functions.php:2014 +#: ../lib/modules/inetOrgPerson.inc:1588 +msgid "Delete photo" +msgstr "Cancella la foto" + +#: ../templates/config/profmanage.php:271 +#: ../templates/config/profmanage.php:274 +#: ../templates/selfService/profManage.php:232 +#: ../templates/selfService/profManage.php:239 ../help/help.inc:134 +msgid "Delete profile" +msgstr "Cancella il profilo" + +#: ../lib/modules/range.inc:98 ../lib/modules/range.inc:116 +#: ../lib/modules/range.inc:445 +msgid "Delete range" +msgstr "Cancella l'intervallo" + +#: ../lib/modules/asteriskExtension.inc:316 +#: ../lib/modules/asteriskExtension.inc:339 +msgid "Delete rule" +msgstr "Eliminare regola" + +#: ../lib/types/dhcp.inc:174 +msgid "Delete selected DHCP entries" +msgstr "Eliminare le voci DHCP selezionate" + +#: ../lib/types/bind.inc:162 +msgid "Delete selected DNS entries" +msgstr "Elimina i record DNS selezionati" + +#: ../lib/types/nisObjectType.inc:158 +msgid "Delete selected NIS objects" +msgstr "Eliminare oggetti NIS selezionati" + +#: ../lib/types/zarafaAddressListType.inc:147 +msgid "Delete selected address lists" +msgstr "Eliminare elenchi di indirizzi selezionati" + +#: ../lib/types/mailAlias.inc:144 ../lib/types/alias.inc:144 +msgid "Delete selected aliases" +msgstr "Eliminare gli alias selezionati" + +#: ../lib/types/automountType.inc:218 +msgid "Delete selected automount entries" +msgstr "Eliminare le voci di automount selezionate" + +#: ../lib/types/pykotaBillingCodeType.inc:166 +msgid "Delete selected billing codes" +msgstr "Elimina i codici di pagamento selezionati" + +#: ../lib/types/oracleContextType.inc:189 +msgid "Delete selected database entries" +msgstr "Elimina le voci database selezionate" + +#: ../lib/types/smbDomain.inc:170 +msgid "Delete selected domains" +msgstr "Eliminare i domini selezionati" + +#: ../lib/types/asteriskExt.inc:146 +msgid "Delete selected extensions" +msgstr "Eliminare le estensioni selezionate" + +#: ../lib/types/gon.inc:205 ../lib/types/zarafaDynamicGroupType.inc:168 +#: ../lib/types/group.inc:243 ../lib/types/netgroup.inc:172 +msgid "Delete selected groups" +msgstr "Eliminare i gruppi selezionati" + +#: ../lib/types/host.inc:196 +msgid "Delete selected hosts" +msgstr "Eliminare gli host selezionati" + +#: ../lib/lists.inc:115 +msgid "Delete selected objects" +msgstr "Eliminare gli oggetti selezionati" + +#: ../lib/types/ppolicyType.inc:152 +msgid "Delete selected policies" +msgstr "Eliminare le policy selezionate" + +#: ../lib/types/pykotaPrinterType.inc:167 +msgid "Delete selected printers" +msgstr "Elimina le stampanti selezionate" + +#: ../lib/types/gon.inc:212 ../lib/types/group.inc:250 +msgid "Delete selected roles" +msgstr "Elimina i ruoli selezionati" + +#: ../lib/types/kolabSharedFolderType.inc:144 +msgid "Delete selected shared folders" +msgstr "Elimina le cartelle condivise selezionate" + +#: ../lib/types/sudo.inc:162 +msgid "Delete selected sudo roles" +msgstr "Eliminare le regole sudo selezionate" + +#: ../lib/types/user.inc:532 +msgid "Delete selected users" +msgstr "Eliminare gli utenti selezionati" + +#: ../templates/3rdParty/pla/htdocs/copy.php:146 +#, php-format +msgid "Delete successful: %s" +msgstr "Cancellazione effettuata con successo: %s" + +#: ../lib/modules/posixAccount.inc:485 ../lib/modules/posixAccount.inc:1538 +msgid "Delete sudo rights" +msgstr "Elimina i diritti sudo" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "Delete this entry" +msgstr "Cancella questo oggetto" + +#: ../lib/modules/nisMailAliasUser.inc:156 +#: ../lib/modules/nisMailAliasUser.inc:195 +#, php-format +msgid "Delete whole alias entry which includes %s recipients." +msgstr "Elimina completamente le voci alias che includono %s destinatari." + +#: ../lib/modules/qmailUser.inc:44 +msgid "Deleted" +msgstr "Eliminato" + +#: ../templates/delete.php:272 +#, php-format +msgid "Deleted DN: %s" +msgstr "Cancellato DN: %s" + +#: ../templates/pdfedit/pdfmain.php:89 +msgid "Deleted PDF structure." +msgstr "Struttura PDF cancellata." + +#: ../templates/profedit/profilemain.php:103 +msgid "Deleted profile." +msgstr "Profilo cancellato." + +#: ../lib/modules/range.inc:99 +msgid "Deletes an IP range." +msgstr "Cancella un intervallo di indirizzi IP." + +#: ../lib/modules/posixAccount.inc:486 +msgid "Deletes the user from all existing sudo rights." +msgstr "Elimina l'utente da tutti i diritti sudo esistenti." + +#: ../templates/3rdParty/pla/htdocs/import.php:29 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:65 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:82 +msgid "Deleting" +msgstr "Cancellazione" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:73 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:125 +msgid "Deleting objects" +msgstr "Eliminazione oggetti in corso" + +#: ../lib/modules/qmailUser.inc:124 ../lib/modules/qmailUser.inc:255 +#: ../lib/modules/qmailUser.inc:382 ../lib/modules/qmailUser.inc:436 +#: ../lib/modules/qmailUser.inc:658 ../lib/modules/qmailUser.inc:899 +#: ../lib/modules/qmailUser.inc:1170 +msgid "Deletion date" +msgstr "Data di cancellazione" + +#: ../lib/lists.inc:1068 +msgid "Deletion was successful." +msgstr "Cancellazione completata con successo." + +#: ../lib/modules/qmailUser.inc:215 ../lib/modules/qmailUser.inc:290 +#: ../lib/modules/qmailUser.inc:403 ../lib/modules/qmailUser.inc:629 +#: ../lib/modules/qmailUser.inc:1164 +msgid "Delivery mode" +msgstr "Modalità di spedizione" + +#: ../lib/modules/qmailUser.inc:122 ../lib/modules/qmailUser.inc:175 +#: ../lib/modules/qmailUser.inc:251 ../lib/modules/qmailUser.inc:374 +#: ../lib/modules/qmailUser.inc:433 ../lib/modules/qmailUser.inc:648 +#: ../lib/modules/qmailUser.inc:1150 +msgid "Delivery program" +msgstr "Programma di spedizione" + +#: ../lib/modules/asteriskAccount.inc:167 +#: ../lib/modules/asteriskAccount.inc:280 +#: ../lib/modules/asteriskAccount.inc:414 +#: ../lib/modules/asteriskAccount.inc:674 +#: ../lib/modules/asteriskAccount.inc:996 +#: ../lib/modules/asteriskAccount.inc:1261 +#: ../lib/modules/dhcp_settings.inc:104 +msgid "Deny" +msgstr "Nega" + +#: ../lib/modules/pykotaGroup.inc:65 ../lib/modules/pykotaUser.inc:65 +msgid "Deny printing" +msgstr "Nega la stampa" + +#: ../lib/modules/inetOrgPerson.inc:162 ../lib/modules/inetOrgPerson.inc:217 +#: ../lib/modules/inetOrgPerson.inc:483 ../lib/modules/inetOrgPerson.inc:602 +#: ../lib/modules/inetOrgPerson.inc:800 ../lib/modules/inetOrgPerson.inc:804 +#: ../lib/modules/inetOrgPerson.inc:1481 ../lib/modules/inetOrgPerson.inc:1484 +#: ../lib/modules/inetOrgPerson.inc:1919 ../lib/modules/inetOrgPerson.inc:2670 +#: ../lib/modules/inetOrgPerson.inc:3547 ../lib/modules/inetOrgPerson.inc:3587 +msgid "Department" +msgstr "Dipartimento" + +#: ../lib/modules/kolabGroup.inc:105 ../lib/modules/kolabGroup.inc:109 +#: ../lib/modules/kolabUser.inc:162 ../lib/modules/kolabUser.inc:166 +#: ../lib/modules/kolabSharedFolder.inc:130 +#: ../lib/modules/kolabSharedFolder.inc:134 +msgid "" +"Describes the allowed or disallowed SMTP addresses sending mail to this " +"account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "Descrive gli indirizzi SMTP consentiti o non consentiti che possono inviare mail a questo account (es. \"dominio.tld\" o \"-user@domain.tld\")." + +#: ../lib/modules/kolabGroup.inc:96 ../lib/modules/kolabGroup.inc:100 +#: ../lib/modules/kolabUser.inc:153 ../lib/modules/kolabUser.inc:157 +#: ../lib/modules/kolabSharedFolder.inc:121 +#: ../lib/modules/kolabSharedFolder.inc:125 +msgid "" +"Describes the allowed or disallowed SMTP recipient addresses for mail sent " +"by this account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "Descrive gli indirizzi SMTP consentiti o non consentiti che possono ricevere mail da questo account (es. \"dominio.tld\" o \"-user@domain.tld\")." + +#: ../templates/schema/schema.php:89 ../templates/schema/schema.php:143 +#: ../templates/schema/schema.php:346 +#: ../templates/3rdParty/pla/lib/functions.php:1898 +#: ../templates/3rdParty/pla/lib/functions.php:1902 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:139 +#: ../templates/3rdParty/pla/htdocs/import.php:101 +#: ../lib/types/automountType.inc:88 ../lib/types/nisObjectType.inc:80 +#: ../lib/types/oracleContextType.inc:79 +#: ../lib/types/pykotaBillingCodeType.inc:92 ../lib/types/user.inc:101 +#: ../lib/types/pykotaPrinterType.inc:92 ../lib/types/sudo.inc:84 +#: ../lib/types/dhcp.inc:96 ../lib/types/netgroup.inc:92 +#: ../lib/modules/pykotaPrinter.inc:99 ../lib/modules/pykotaPrinter.inc:153 +#: ../lib/modules/pykotaPrinter.inc:194 ../lib/modules/pykotaPrinter.inc:248 +#: ../lib/modules/pykotaPrinter.inc:585 ../lib/modules/account.inc:82 +#: ../lib/modules/account.inc:95 ../lib/modules/account.inc:105 +#: ../lib/modules/account.inc:113 ../lib/modules/account.inc:218 +#: ../lib/modules/account.inc:229 ../lib/modules/windowsHost.inc:78 +#: ../lib/modules/windowsHost.inc:101 ../lib/modules/windowsHost.inc:120 +#: ../lib/modules/windowsHost.inc:143 ../lib/modules/windowsHost.inc:289 +#: ../lib/modules/posixGroup.inc:201 ../lib/modules/posixGroup.inc:430 +#: ../lib/modules/posixGroup.inc:484 ../lib/modules/posixGroup.inc:577 +#: ../lib/modules/device.inc:81 ../lib/modules/device.inc:115 +#: ../lib/modules/device.inc:130 ../lib/modules/device.inc:173 +#: ../lib/modules/device.inc:421 ../lib/modules/dhcp_settings.inc:197 +#: ../lib/modules/dhcp_settings.inc:217 ../lib/modules/dhcp_settings.inc:307 +#: ../lib/modules/dhcp_settings.inc:620 ../lib/modules/dhcp_settings.inc:684 +#: ../lib/modules/pykotaGroup.inc:117 ../lib/modules/pykotaGroup.inc:166 +#: ../lib/modules/pykotaGroup.inc:188 ../lib/modules/pykotaGroup.inc:233 +#: ../lib/modules/pykotaGroup.inc:468 ../lib/modules/posixAccount.inc:556 +#: ../lib/modules/windowsUser.inc:119 ../lib/modules/windowsUser.inc:308 +#: ../lib/modules/windowsUser.inc:500 ../lib/modules/windowsUser.inc:705 +#: ../lib/modules/windowsUser.inc:1588 ../lib/modules/nisObject.inc:73 +#: ../lib/modules/nisObject.inc:103 ../lib/modules/nisObject.inc:114 +#: ../lib/modules/nisObject.inc:155 ../lib/modules/nisObject.inc:212 +#: ../lib/modules/sambaGroupMapping.inc:114 +#: ../lib/modules/sambaGroupMapping.inc:542 ../lib/modules/pykotaUser.inc:120 +#: ../lib/modules/pykotaUser.inc:226 ../lib/modules/pykotaUser.inc:277 +#: ../lib/modules/pykotaUser.inc:413 ../lib/modules/pykotaUser.inc:892 +#: ../lib/modules/automount.inc:72 ../lib/modules/automount.inc:95 +#: ../lib/modules/automount.inc:105 ../lib/modules/automount.inc:132 +#: ../lib/modules/automount.inc:183 ../lib/modules/nisnetgroup.inc:87 +#: ../lib/modules/nisnetgroup.inc:140 ../lib/modules/nisnetgroup.inc:199 +#: ../lib/modules/nisnetgroup.inc:580 ../lib/modules/inetOrgPerson.inc:163 +#: ../lib/modules/inetOrgPerson.inc:175 ../lib/modules/inetOrgPerson.inc:329 +#: ../lib/modules/inetOrgPerson.inc:542 ../lib/modules/inetOrgPerson.inc:632 +#: ../lib/modules/inetOrgPerson.inc:1207 ../lib/modules/inetOrgPerson.inc:1210 +#: ../lib/modules/inetOrgPerson.inc:1890 ../lib/modules/inetOrgPerson.inc:2765 +#: ../lib/modules/inetOrgPerson.inc:3509 ../lib/modules/inetOrgPerson.inc:3576 +#: ../lib/modules/sudoRole.inc:70 ../lib/modules/sudoRole.inc:153 +#: ../lib/modules/sudoRole.inc:215 ../lib/modules/sudoRole.inc:305 +#: ../lib/modules/sudoRole.inc:805 ../lib/modules/oracleService.inc:69 +#: ../lib/modules/oracleService.inc:92 ../lib/modules/oracleService.inc:100 +#: ../lib/modules/oracleService.inc:122 ../lib/modules/oracleService.inc:172 +#: ../lib/modules/organizationalRole.inc:89 +#: ../lib/modules/organizationalRole.inc:123 +#: ../lib/modules/organizationalRole.inc:141 +#: ../lib/modules/organizationalRole.inc:163 +#: ../lib/modules/organizationalRole.inc:189 +#: ../lib/modules/organizationalRole.inc:453 ../lib/modules/fixed_ip.inc:110 +#: ../lib/modules/fixed_ip.inc:433 ../lib/modules/fixed_ip.inc:744 +#: ../lib/modules/pykotaBillingCode.inc:81 +#: ../lib/modules/pykotaBillingCode.inc:109 +#: ../lib/modules/pykotaBillingCode.inc:116 +#: ../lib/modules/pykotaBillingCode.inc:159 +#: ../lib/modules/pykotaBillingCode.inc:262 +#: ../lib/modules/windowsGroup.inc:118 ../lib/modules/windowsGroup.inc:183 +#: ../lib/modules/windowsGroup.inc:258 ../lib/modules/windowsGroup.inc:301 +#: ../lib/modules/windowsGroup.inc:746 ../lib/modules/groupOfNames.inc:89 +#: ../lib/modules/groupOfNames.inc:135 ../lib/modules/groupOfNames.inc:171 +#: ../lib/modules/groupOfNames.inc:199 ../lib/modules/groupOfNames.inc:235 +#: ../lib/modules/groupOfNames.inc:694 +msgid "Description" +msgstr "Descrizione" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "Destination DN" +msgstr "Destinazione DN" + +#: ../lib/modules/device.inc:45 +msgid "Device" +msgstr "Dispositivo" + +#: ../lib/modules/sambaSamAccount.inc:393 +#: ../lib/modules/sambaSamAccount.inc:584 +msgid "Disable LM hashes" +msgstr "Disabilita hash LM" + +#: ../lib/modules/ddns.inc:89 ../lib/modules/ddns.inc:370 +msgid "Disable client updates" +msgstr "Disabilita gli aggiornamenti dei client" + +#: ../lib/modules/posixGroup.inc:417 ../lib/modules/posixGroup.inc:533 +msgid "Disable membership management" +msgstr "Disabilita la gestione dei membri" + +#: ../lib/modules/qmailUser.inc:43 +msgid "Disabled" +msgstr "Disabilitato" + +#: ../lib/modules/ddns.inc:90 +msgid "Disables the client to update DNS entries." +msgstr "Disabilita gli aggiornamenti dei client ai record DNS." + +#: ../lib/modules/posixGroup.inc:534 +msgid "Disables the group membership management." +msgstr "Disabilita la gestione dei membri del gruppo." + +#: ../lib/modules/mitKerberos.inc:172 +msgid "" +"Disables user-to-user authentication for this principal by prohibiting this " +"principal from obtaining a session key for another user." +msgstr "Disabilita l'autenticazione da utente-a-utente per questo direttore impedendogli di ottenere una chiave di sessione di un altro utente." + +#: ../lib/modules/heimdalKerberos.inc:130 +#: ../lib/modules/heimdalKerberos.inc:378 +msgid "Disallow TGT-based tickets" +msgstr "Non permettere ticket basati su TGT" + +#: ../lib/modules/mitKerberos.inc:174 ../lib/modules/mitKerberos.inc:452 +#: ../lib/modules/heimdalKerberos.inc:148 +#: ../lib/modules/heimdalKerberos.inc:383 +msgid "Disallow all tickets" +msgstr "Non permettere alcun ticket" + +#: ../templates/config/conftypes.php:317 ../help/help.inc:178 +msgid "Disallow delete" +msgstr "Non permettere l'eliminazione" + +#: ../lib/modules/mitKerberos.inc:162 ../lib/modules/mitKerberos.inc:422 +#: ../lib/modules/heimdalKerberos.inc:133 +#: ../lib/modules/heimdalKerberos.inc:353 +msgid "Disallow forwardable tickets" +msgstr "Non permettere ticket inoltrabili" + +#: ../lib/modules/mitKerberos.inc:159 ../lib/modules/mitKerberos.inc:437 +#: ../lib/modules/heimdalKerberos.inc:142 +#: ../lib/modules/heimdalKerberos.inc:368 +msgid "Disallow post-dated tickets" +msgstr "Non permettere ticket post-datati" + +#: ../lib/modules/mitKerberos.inc:168 ../lib/modules/mitKerberos.inc:427 +#: ../lib/modules/heimdalKerberos.inc:136 +#: ../lib/modules/heimdalKerberos.inc:358 +msgid "Disallow proxiable tickets" +msgstr "Non permettere ticket proxabili" + +#: ../lib/modules/mitKerberos.inc:165 ../lib/modules/mitKerberos.inc:432 +#: ../lib/modules/heimdalKerberos.inc:139 +#: ../lib/modules/heimdalKerberos.inc:363 +msgid "Disallow renewable tickets" +msgstr "Non permettere ticket rinnovabili" + +#: ../lib/modules/mitKerberos.inc:186 ../lib/modules/mitKerberos.inc:442 +#: ../lib/modules/heimdalKerberos.inc:145 +#: ../lib/modules/heimdalKerberos.inc:373 +msgid "Disallow service tickets" +msgstr "Non permettere il servizio dei ticket" + +#: ../lib/modules/mitKerberos.inc:171 ../lib/modules/mitKerberos.inc:447 +msgid "Disallow user-to-user authentication" +msgstr "Non permettere l'autenticazione da utente-a-utente" + +#: ../lib/modules/asteriskAccount.inc:199 +#: ../lib/modules/asteriskAccount.inc:288 +#: ../lib/modules/asteriskAccount.inc:472 +#: ../lib/modules/asteriskAccount.inc:709 +#: ../lib/modules/asteriskAccount.inc:1004 +#: ../lib/modules/asteriskAccount.inc:1277 +msgid "Disallowed codec" +msgstr "Non permettere il codec" + +#: ../lib/modules/sambaDomain.inc:113 ../lib/modules/sambaDomain.inc:193 +#: ../lib/modules/sambaDomain.inc:299 ../lib/modules/sambaDomain.inc:621 +msgid "Disconnect users outside logon hours" +msgstr "Disconnetti gli utenti al di fuori delle ore di logon" + +#: ../lib/modules/sambaSamAccount.inc:237 +#: ../lib/modules/sambaSamAccount.inc:1523 +#: ../lib/modules/sambaSamAccount.inc:1927 +msgid "Disconnection time limit" +msgstr "Tempo massimo di disconnessione" + +#: ../lib/modules/sambaDomain.inc:114 +msgid "Disconnects users if they are logged in outside logon hours." +msgstr "Disconnetti gli utenti se sono collegati al di fuori delle ore di logon." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +#: ../lib/modules/organizationalRole.inc:106 +#: ../lib/modules/organizationalRole.inc:153 +#: ../lib/modules/groupOfNames.inc:118 ../lib/modules/groupOfNames.inc:187 +msgid "Display format" +msgstr "Formato visualizzato" + +#: ../lib/modules/customFields.inc:176 ../lib/modules/customFields.inc:509 +msgid "Display multiple groups as accordion" +msgstr "Mostra molteplici gruppi a fisarmonica" + +#: ../lib/modules/sambaSamAccount.inc:111 +#: ../lib/modules/sambaSamAccount.inc:209 +#: ../lib/modules/sambaSamAccount.inc:258 +#: ../lib/modules/sambaSamAccount.inc:419 +#: ../lib/modules/sambaSamAccount.inc:1138 +#: ../lib/modules/sambaSamAccount.inc:1899 ../lib/modules/windowsUser.inc:123 +#: ../lib/modules/windowsUser.inc:296 ../lib/modules/windowsUser.inc:474 +#: ../lib/modules/windowsUser.inc:501 ../lib/modules/windowsUser.inc:595 +#: ../lib/modules/windowsUser.inc:703 ../lib/modules/windowsUser.inc:1589 +#: ../lib/modules/sambaGroupMapping.inc:112 +#: ../lib/modules/sambaGroupMapping.inc:146 +#: ../lib/modules/sambaGroupMapping.inc:359 +#: ../lib/modules/sambaGroupMapping.inc:540 +msgid "Display name" +msgstr "Nome visualizzato" + +#: ../templates/lists/changePassword.php:317 +msgid "Display on screen" +msgstr "Mostra sullo schermo" + +#: ../templates/3rdParty/pla/htdocs/create.php:97 +msgid "Display the created entry" +msgstr "Mostra l'oggetto creato" + +#: ../lib/modules.inc:503 +msgid "" +"Displayed account numbers start at \"0\". Add 2 to get the row in your " +"spreadsheet." +msgstr "I numeri degli account visualizzati iniziano da \"0\". Aggiungere 2 per ottenere la riga del foglio di calcolo." + +#: ../lib/modules/windowsGroup.inc:61 +msgid "Distribution" +msgstr "Distribuzione" + +#: ../lib/modules/passwordSelfReset.inc:140 +#: ../lib/modules/passwordSelfReset.inc:545 +msgid "Do not ask security question" +msgstr "Non chiedere domanda di sicurezza" + +#: ../templates/ou_edit.php:112 +msgid "Do you really want to delete this OU?" +msgstr "Volete davvero cancellare questa OU?" + +#: ../templates/pdfedit/pdfmain.php:351 +msgid "Do you really want to delete this PDF structure?" +msgstr "Volete davvero cancellare questa struttura PDF?" + +#: ../templates/profedit/profilemain.php:319 +msgid "Do you really want to delete this profile?" +msgstr "Volete davvero cancellare questo profilo?" + +#: ../lib/modules/kolabGroup.inc:285 ../lib/modules/kolabUser.inc:515 +#: ../lib/modules/kolabSharedFolder.inc:425 +msgid "Do you really want to mark this account for deletion?" +msgstr "Volete davvero selezionare questo account per la cancellazione?" + +#: ../lib/modules/qmailGroup.inc:273 +msgid "Do you really want to post to this mailinglist?" +msgstr "Si vuole veramente postare a questa mailinglist?" + +#: ../templates/delete.php:94 +msgid "Do you really want to remove the following accounts?" +msgstr "Volete davvero rimuovere i seguenti account?" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:59 +msgid "Do you want to create this entry?" +msgstr "Volete creare questo oggetto?" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:36 +msgid "Do you want to make these changes?" +msgstr "Volete effettuare queste modifiche?" + +#: ../lib/modules/sambaSamAccount.inc:210 +#: ../lib/modules/sambaSamAccount.inc:336 +#: ../lib/modules/sambaSamAccount.inc:412 +#: ../lib/modules/sambaSamAccount.inc:536 +#: ../lib/modules/sambaSamAccount.inc:1280 +#: ../lib/modules/sambaSamAccount.inc:1774 +#: ../lib/modules/sambaSamAccount.inc:1796 +#: ../lib/modules/sambaSamAccount.inc:1905 ../lib/modules/windowsUser.inc:111 +#: ../lib/modules/windowsUser.inc:1656 +#: ../lib/modules/sambaGroupMapping.inc:158 +#: ../lib/modules/sambaGroupMapping.inc:386 +#: ../lib/modules/sambaGroupMapping.inc:576 ../lib/modules/nisnetgroup.inc:223 +#: ../lib/modules/nisnetgroup.inc:587 +msgid "Domain" +msgstr "Dominio" + +#: ../lib/modules/sambaSamAccount.inc:84 +msgid "Domain KRBTGT" +msgstr "Dominio KRBTGT" + +#: ../lib/types/smbDomain.inc:91 ../lib/modules/sambaDomain.inc:81 +#: ../lib/modules/sambaDomain.inc:151 ../lib/modules/sambaDomain.inc:185 +#: ../lib/modules/sambaDomain.inc:256 ../lib/modules/sambaDomain.inc:261 +#: ../lib/modules/sambaDomain.inc:600 +msgid "Domain SID" +msgstr "SID del dominio" + +#: ../lib/modules/sambaGroupMapping.inc:125 +#: ../lib/modules/windowsGroup.inc:178 ../lib/modules/windowsGroup.inc:185 +#: ../lib/modules/windowsGroup.inc:191 +msgid "Domain administrators" +msgstr "Amministratori del dominio" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:60 +#: ../lib/modules/sambaGroupMapping.inc:131 +msgid "Domain admins" +msgstr "Amministratori di dominio" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:65 +msgid "Domain certificate admins" +msgstr "Amministratori di dominio certificati" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaSamAccount.inc:806 +#: ../lib/modules/sambaGroupMapping.inc:63 +msgid "Domain computers" +msgstr "Computer del dominio" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:64 +msgid "Domain controllers" +msgstr "Controllori di dominio" + +#: ../lib/types/smbDomain.inc:167 +#, php-format +msgid "Domain count: %s" +msgstr "Conteggio domini: %s" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:67 +msgid "Domain enterprise admins" +msgstr "Amministratori di dominio enterprise" + +#: ../lib/modules/sambaGroupMapping.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:377 +msgid "Domain group" +msgstr "Gruppo del dominio" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:62 +msgid "Domain guests" +msgstr "Ospiti del dominio" + +#: ../lib/modules/windowsGroup.inc:64 +msgid "Domain local" +msgstr "Dominio locale" + +#: ../lib/types/smbDomain.inc:92 ../lib/modules/dhcp_settings.inc:145 +#: ../lib/modules/dhcp_settings.inc:208 ../lib/modules/dhcp_settings.inc:223 +#: ../lib/modules/dhcp_settings.inc:250 ../lib/modules/dhcp_settings.inc:567 +#: ../lib/modules/dhcp_settings.inc:674 ../lib/modules/nisnetgroup.inc:154 +#: ../lib/modules/sambaDomain.inc:77 ../lib/modules/sambaDomain.inc:144 +#: ../lib/modules/sambaDomain.inc:184 ../lib/modules/sambaDomain.inc:241 +#: ../lib/modules/sambaDomain.inc:246 ../lib/modules/sambaDomain.inc:599 +msgid "Domain name" +msgstr "Nome del dominio" + +#: ../lib/modules/nisnetgroup.inc:154 ../lib/modules/sambaDomain.inc:208 +#: ../lib/modules/sambaDomain.inc:209 +msgid "Domain name is invalid!" +msgstr "Il nome del dominio non è valido!" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:68 +msgid "Domain policy admins" +msgstr "Amministratori delle policy del dominio" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:66 +msgid "Domain schema admins" +msgstr "Amministratori dello schema del dominio" + +#: ../lib/modules/sambaSamAccount.inc:79 +#: ../lib/modules/sambaSamAccount.inc:2168 +#: ../lib/modules/sambaGroupMapping.inc:61 +msgid "Domain users" +msgstr "Utenti del dominio" + +#: ../lib/modules/windowsUser.inc:240 ../lib/modules/windowsUser.inc:557 +msgid "Domains" +msgstr "Domini" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:43 +msgid "Don't stop on errors" +msgstr "Non fermarti agli errori" + +#: ../templates/pdfedit/pdfpage.php:475 +msgid "Down" +msgstr "Giù" + +#: ../templates/config/mainmanage.php:321 +msgid "Download CA certificates" +msgstr "Scarica certificati CA" + +#: ../templates/masscreate.php:256 +msgid "Download sample CSV file" +msgstr "Scarica un file CSV di esempio" + +#: ../templates/multiEdit.php:162 +msgid "Dry run" +msgstr "Prova generale" + +#: ../templates/multiEdit.php:437 +msgid "DryRun finished." +msgstr "Prova generale terminata." + +#: ../templates/serverInfo.php:124 +msgid "Dynamic subtrees" +msgstr "Sottoalbero dinamico" + +#: ../lib/modules/eduPerson.inc:72 +msgid "EDU person" +msgstr "Persona EDU" + +#: ../lib/modules/selfRegistration.inc:80 +msgid "" +"Each line represents one LDAP attribute. Please see the manual for a syntax " +"description." +msgstr "Ciascuna linea rappresenta un attributo LDAP. Vedere il manuale per la descrizione della sintassi." + +#: ../lib/modules/sambaSamAccount.inc:574 +msgid "East Australian Standard, Guam" +msgstr "Australia dell'est, Guam" + +#: ../lib/modules/sambaSamAccount.inc:566 +msgid "Eastern Europe Time, South Africa" +msgstr "Europa Orientale, Sud Africa" + +#: ../lib/modules/sambaSamAccount.inc:559 +msgid "Eastern Time (US & Canada), Bogota" +msgstr "America dell'est (Stati uniti e Canada), Bogotà" + +#: ../templates/pdfedit/pdfmain.php:206 +#: ../templates/profedit/profilemain.php:195 +#: ../lib/modules/sambaSamAccount.inc:1285 +#: ../lib/modules/sambaSamAccount.inc:1290 ../lib/lists.inc:488 +msgid "Edit" +msgstr "Modifica" + +#: ../lib/modules.inc:1349 +msgid "Edit again" +msgstr "Modifica nuovamente" + +#: ../templates/config/mainmanage.php:228 ../templates/config/index.php:99 +msgid "Edit general settings" +msgstr "Modifica le impostazioni generali" + +#: ../lib/modules/posixAccount.inc:1454 ../lib/modules/windowsUser.inc:786 +msgid "Edit groups" +msgstr "Modifica i gruppi" + +#: ../lib/modules/posixGroup.inc:223 ../lib/modules/windowsGroup.inc:382 +msgid "Edit members" +msgstr "Modifica i membri" + +#: ../templates/config/index.php:125 +msgid "Edit self service" +msgstr "Modifica le opzioni fai-da-te" + +#: ../templates/config/index.php:111 +msgid "Edit server profiles" +msgstr "Modifica i profili del server" + +#: ../lib/modules/nisnetgroup.inc:208 +msgid "Edit subgroups" +msgstr "Modifica i sottogruppi" + +#: ../lib/modules/sambaSamAccount.inc:1241 +msgid "Edit workstations" +msgstr "Modifica i computer" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1872 +#: ../lib/types/zarafaDynamicGroupType.inc:92 ../lib/types/user.inc:100 +#: ../lib/modules/zarafaDynamicGroup.inc:243 +#: ../lib/modules/zarafaDynamicGroup.inc:248 +#: ../lib/modules/zarafaGroup.inc:234 ../lib/modules/zarafaGroup.inc:241 +#: ../lib/modules/passwordSelfReset.inc:500 +#: ../lib/modules/nisMailAlias.inc:344 +msgid "Email" +msgstr "Email" + +#: ../lib/modules/inetOrgPerson.inc:79 +#, php-format +msgid "Email \"%s\" already in use." +msgstr "L'email \"%s\" è già utilizzata." + +#: ../templates/lists/changePassword.php:283 ../lib/modules/kolabGroup.inc:87 +#: ../lib/modules/kolabGroup.inc:91 ../lib/modules/kolabGroup.inc:155 +#: ../lib/modules/kolabGroup.inc:168 ../lib/modules/kolabGroup.inc:177 +#: ../lib/modules/kolabGroup.inc:179 ../lib/modules/kolabGroup.inc:202 +#: ../lib/modules/kolabGroup.inc:423 ../lib/modules/selfRegistration.inc:400 +#: ../lib/modules/selfRegistration.inc:482 +#: ../lib/modules/zarafaDynamicGroup.inc:67 +#: ../lib/modules/zarafaDynamicGroup.inc:68 +#: ../lib/modules/zarafaDynamicGroup.inc:124 +#: ../lib/modules/zarafaDynamicGroup.inc:166 +#: ../lib/modules/zarafaDynamicGroup.inc:200 +#: ../lib/modules/zarafaDynamicGroup.inc:448 ../lib/modules/qmailUser.inc:199 +#: ../lib/modules/qmailUser.inc:299 ../lib/modules/qmailUser.inc:406 +#: ../lib/modules/qmailUser.inc:448 ../lib/modules/qmailUser.inc:492 +#: ../lib/modules/qmailUser.inc:1139 ../lib/modules/zarafaGroup.inc:69 +#: ../lib/modules/zarafaGroup.inc:70 ../lib/modules/zarafaGroup.inc:170 +#: ../lib/modules/zarafaGroup.inc:200 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:648 ../lib/modules/windowsUser.inc:140 +#: ../lib/modules/windowsUser.inc:350 ../lib/modules/windowsUser.inc:475 +#: ../lib/modules/windowsUser.inc:505 ../lib/modules/windowsUser.inc:607 +#: ../lib/modules/windowsUser.inc:716 ../lib/modules/windowsUser.inc:1593 +#: ../lib/modules/pykotaUser.inc:116 ../lib/modules/pykotaUser.inc:218 +#: ../lib/modules/pykotaUser.inc:274 ../lib/modules/pykotaUser.inc:319 +#: ../lib/modules/pykotaUser.inc:409 ../lib/modules/pykotaUser.inc:890 +#: ../lib/modules/inetOrgPerson.inc:78 ../lib/modules/inetOrgPerson.inc:79 +#: ../lib/modules/inetOrgPerson.inc:157 ../lib/modules/inetOrgPerson.inc:211 +#: ../lib/modules/inetOrgPerson.inc:449 ../lib/modules/inetOrgPerson.inc:584 +#: ../lib/modules/inetOrgPerson.inc:720 ../lib/modules/inetOrgPerson.inc:724 +#: ../lib/modules/inetOrgPerson.inc:1414 ../lib/modules/inetOrgPerson.inc:1417 +#: ../lib/modules/inetOrgPerson.inc:1903 ../lib/modules/inetOrgPerson.inc:2456 +#: ../lib/modules/inetOrgPerson.inc:3537 ../lib/modules/inetOrgPerson.inc:3584 +#: ../lib/modules/kolabSharedFolder.inc:116 +#: ../lib/modules/kolabSharedFolder.inc:181 +#: ../lib/modules/kolabSharedFolder.inc:239 +#: ../lib/modules/kolabSharedFolder.inc:259 +#: ../lib/modules/kolabSharedFolder.inc:281 +#: ../lib/modules/kolabSharedFolder.inc:558 +#: ../lib/modules/asteriskVoicemail.inc:107 +#: ../lib/modules/asteriskVoicemail.inc:140 +#: ../lib/modules/asteriskVoicemail.inc:178 +#: ../lib/modules/asteriskVoicemail.inc:254 +#: ../lib/modules/asteriskVoicemail.inc:374 ../lib/modules/qmailGroup.inc:123 +#: ../lib/modules/qmailGroup.inc:127 ../lib/modules/qmailGroup.inc:240 +#: ../lib/modules/qmailGroup.inc:371 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:457 ../lib/modules/qmailGroup.inc:1056 +#: ../lib/modules/imapAccess.inc:232 ../lib/modules/passwordSelfReset.inc:849 +#: ../lib/modules/passwordSelfReset.inc:1020 +#: ../lib/modules/windowsGroup.inc:126 ../lib/modules/windowsGroup.inc:165 +#: ../lib/modules/windowsGroup.inc:219 ../lib/modules/windowsGroup.inc:265 +#: ../lib/modules/windowsGroup.inc:285 ../lib/modules/windowsGroup.inc:303 +#: ../lib/modules/windowsGroup.inc:748 +msgid "Email address" +msgstr "Indirizzo email" + +#: ../lib/modules/kolabGroup.inc:179 ../lib/modules/kolabGroup.inc:180 +msgid "Email address already exists." +msgstr "L'indirizzo email esiste già." + +#: ../lib/modules/asteriskVoicemail.inc:108 +msgid "Email address for this voicemail account." +msgstr "Alias email per questo account voicemail." + +#: ../lib/modules/qmailGroup.inc:221 ../lib/modules/qmailGroup.inc:225 +msgid "Email addresses that are allowed to send to this list." +msgstr "Indirizzi email autorizzati ad inviare a questa lista." + +#: ../lib/modules/qmailGroup.inc:205 ../lib/modules/qmailGroup.inc:209 +msgid "Email addresses that are member of this list." +msgstr "Indirizzi email membri di questa lista." + +#: ../lib/modules/qmailGroup.inc:213 ../lib/modules/qmailGroup.inc:217 +msgid "Email addresses that moderate this list (e.g. approve mails)." +msgstr "Indirizzi email che moderano questa lista (es. approvano le email)." + +#: ../lib/modules/zarafaContact.inc:83 ../lib/modules/zarafaUser.inc:124 +#: ../lib/modules/windowsUser.inc:227 ../lib/modules/windowsUser.inc:231 +#: ../lib/modules/windowsUser.inc:356 ../lib/modules/windowsUser.inc:476 +#: ../lib/modules/windowsUser.inc:506 ../lib/modules/windowsUser.inc:609 +#: ../lib/modules/windowsUser.inc:717 ../lib/modules/windowsUser.inc:1594 +#: ../lib/modules/kolabUser.inc:140 ../lib/modules/kolabSharedFolder.inc:146 +msgid "Email alias" +msgstr "Alias email" + +#: ../lib/modules/zarafaContact.inc:84 ../lib/modules/zarafaUser.inc:125 +#: ../lib/modules/windowsUser.inc:228 ../lib/modules/windowsUser.inc:232 +#: ../lib/modules/kolabUser.inc:141 ../lib/modules/kolabSharedFolder.inc:147 +msgid "Email alias for this account." +msgstr "Alias email per questo account." + +#: ../lib/modules/zarafaContact.inc:185 ../lib/modules/zarafaContact.inc:186 +#: ../lib/modules/zarafaUser.inc:417 ../lib/modules/zarafaUser.inc:418 +#: ../lib/modules/windowsUser.inc:609 ../lib/modules/windowsUser.inc:610 +#: ../lib/modules/kolabUser.inc:247 ../lib/modules/kolabSharedFolder.inc:254 +msgid "Email alias is invalid!" +msgstr "L'alias email non è valido!" + +#: ../lib/modules/kolabUser.inc:144 ../lib/modules/kolabSharedFolder.inc:150 +msgid "Email alias list" +msgstr "Lista degli alias email" + +#: ../lib/modules/kolabUser.inc:248 ../lib/modules/kolabSharedFolder.inc:255 +msgid "Email alias list has invalid format!" +msgstr "La lista degli alias email ha un formato non valido!" + +#: ../lib/types/kolabSharedFolderType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:97 +#: ../lib/modules/zarafaDynamicGroup.inc:71 +#: ../lib/modules/zarafaDynamicGroup.inc:75 +#: ../lib/modules/zarafaDynamicGroup.inc:130 +#: ../lib/modules/zarafaDynamicGroup.inc:167 +#: ../lib/modules/zarafaDynamicGroup.inc:258 +#: ../lib/modules/zarafaDynamicGroup.inc:451 +#: ../lib/modules/zarafaContact.inc:143 ../lib/modules/zarafaContact.inc:176 +#: ../lib/modules/zarafaContact.inc:207 ../lib/modules/zarafaContact.inc:566 +#: ../lib/modules/zarafaGroup.inc:73 ../lib/modules/zarafaGroup.inc:77 +#: ../lib/modules/zarafaGroup.inc:162 ../lib/modules/zarafaGroup.inc:197 +#: ../lib/modules/zarafaGroup.inc:252 ../lib/modules/zarafaGroup.inc:649 +#: ../lib/modules/zarafaUser.inc:188 ../lib/modules/zarafaUser.inc:370 +#: ../lib/modules/zarafaUser.inc:385 ../lib/modules/zarafaUser.inc:443 +#: ../lib/modules/zarafaUser.inc:1235 ../lib/modules/zarafaUser.inc:1497 +#: ../lib/modules/zarafaUser.inc:1809 ../lib/modules/kolabUser.inc:205 +#: ../lib/modules/kolabUser.inc:233 ../lib/modules/kolabUser.inc:351 +#: ../lib/modules/kolabUser.inc:764 ../lib/modules/kolabSharedFolder.inc:220 +#: ../lib/modules/kolabSharedFolder.inc:236 +#: ../lib/modules/kolabSharedFolder.inc:312 +#: ../lib/modules/kolabSharedFolder.inc:563 +msgid "Email aliases" +msgstr "Alias email" + +#: ../templates/config/mainmanage.php:446 ../help/help.inc:156 +msgid "Email format" +msgstr "Formato email" + +#: ../lib/modules/inetOrgPerson.inc:345 ../lib/modules/inetOrgPerson.inc:614 +#: ../lib/modules/inetOrgPerson.inc:832 ../lib/modules/inetOrgPerson.inc:1455 +#: ../lib/modules/inetOrgPerson.inc:1458 ../lib/modules/inetOrgPerson.inc:1914 +#: ../lib/modules/inetOrgPerson.inc:3555 ../lib/modules/inetOrgPerson.inc:3589 +#: ../lib/modules/passwordSelfReset.inc:503 +#: ../lib/modules/passwordSelfReset.inc:855 +#: ../lib/modules/passwordSelfReset.inc:1025 +msgid "Employee number" +msgstr "Numero del dipendente" + +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:229 +#: ../lib/modules/inetOrgPerson.inc:353 ../lib/modules/inetOrgPerson.inc:596 +#: ../lib/modules/inetOrgPerson.inc:652 ../lib/modules/inetOrgPerson.inc:1464 +#: ../lib/modules/inetOrgPerson.inc:1467 ../lib/modules/inetOrgPerson.inc:1912 +#: ../lib/modules/inetOrgPerson.inc:3543 ../lib/modules/inetOrgPerson.inc:3586 +msgid "Employee type" +msgstr "Tipo di dipendente" + +#: ../lib/modules/inetOrgPerson.inc:653 +msgid "Employee type: Contractor, Employee, Intern, Temp, External, ..." +msgstr "Tipo di dipendente: a contratto, a tempo indeterminato, consulente, ..." + +#: ../templates/lists/changePassword.php:505 +#: ../templates/lists/changePassword.php:512 ../templates/login.php:543 +msgid "Empty password submitted. Please try again." +msgstr "E' stata inserita una password vuota. Riprovare." + +#: ../lib/modules/passwordSelfReset.inc:96 +#: ../lib/modules/passwordSelfReset.inc:490 +msgid "Enable password self reset link" +msgstr "Abilita link auto password reset" + +#: ../lib/modules/selfRegistration.inc:53 +#: ../lib/modules/selfRegistration.inc:190 +msgid "Enable self registration link" +msgstr "Abilita il link di auto registrazione" + +#: ../lib/modules/customFields.inc:153 +msgid "" +"Enables auto-completion for this field. All existing values of this " +"attribute will be offered as auto-complete values." +msgstr "Abilita l'auto completamento per questo campo. Tutti i valori esistenti di questo attributo saranno offerti come valori di auto completamento." + +#: ../lib/modules/ppolicy.inc:97 +msgid "" +"Enables quality checking (e.g. password length) of passwords. If set to " +"\"force\" then you need to disable password hashing in your LAM server " +"profile to change passwords with LAM." +msgstr "Abilita il controllo della qualità sulle passwords (es. lunghezza della password). Se impostato a \"forza\" dovete disabilitare il password hashing nel profilo del server LAM per cambiare la password con LAM." + +#: ../templates/multiEdit.php:312 +#: ../templates/3rdParty/pla/lib/export_functions.php:160 +msgid "Encountered an error while performing search." +msgstr "Si è verificato un errore durante la ricerca." + +#: ../templates/config/mainmanage.php:304 ../help/help.inc:160 +msgid "Encrypt session" +msgstr "Cifra la sessione" + +#: ../lib/modules/imapAccess.inc:80 ../lib/modules/imapAccess.inc:120 +msgid "Encryption protocol" +msgstr "Protocollo di cifratura" + +#: ../lib/modules/imapAccess.inc:81 +msgid "" +"Encryption protocol for connecting to IMAP server. LAM requires an encrypted" +" connection." +msgstr "Il protocollo di crittazione per connettersi al server IMAP. LAM necessita di una connessione cifrata" + +#: ../help/help.inc:161 +msgid "" +"Encrypts sensitive data like passwords in your session. This requires the " +"PHP MCrypt extension." +msgstr "Cifra i dati sensibili come le password nella tua sessione. Questo richiede l'estensione PHP MCrypt." + +#: ../templates/selfService/adminMain.php:489 ../help/help.inc:103 +msgid "Enforce language" +msgstr "Forza lingua" + +#: ../lib/modules/sambaSamAccount.inc:552 +msgid "Eniwetok, Kwajalein" +msgstr "Eniwetok, Kwajalein" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:91 +msgid "Enter the values you would like to add:" +msgstr "Immettere i valori che volete aggiungere:" + +#: ../lib/modules/eduPerson.inc:118 ../lib/modules/eduPerson.inc:122 +#: ../lib/modules/eduPerson.inc:194 ../lib/modules/eduPerson.inc:231 +#: ../lib/modules/eduPerson.inc:344 ../lib/modules/eduPerson.inc:586 +msgid "Entitlements" +msgstr "Diritti" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:471 +msgid "Entries found" +msgstr "Oggetti individuati" + +#: ../templates/serverInfo.php:269 +msgid "Entries sent" +msgstr "Oggetti inviati" + +#: ../templates/3rdParty/pla/lib/export_functions.php:473 +msgid "Entry" +msgstr "Oggetto" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:43 +#, php-format +msgid "Entry %s and sub-tree deleted successfully." +msgstr "Oggetto %s e il sotto-albero cancellati correttamente." + +#: ../templates/3rdParty/pla/htdocs/create.php:90 +msgid "Entry created" +msgstr "Oggetto creato" + +#: ../templates/delete.php:330 +#: ../templates/3rdParty/pla/htdocs/mass_update.php:26 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:26 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:27 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:24 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:56 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:33 +msgid "Entry does not exist" +msgstr "L'oggetto non esiste" + +#: ../lib/modules/puppetClient.inc:80 ../lib/modules/puppetClient.inc:84 +#: ../lib/modules/puppetClient.inc:128 ../lib/modules/puppetClient.inc:153 +#: ../lib/modules/puppetClient.inc:161 ../lib/modules/puppetClient.inc:239 +#: ../lib/modules/puppetClient.inc:430 +msgid "Environment" +msgstr "Ambiente" + +#: ../templates/schema/schema.php:166 +msgid "Equality" +msgstr "Uguaglianza" + +#: ../lib/modules/zarafaUser.inc:529 ../lib/modules/zarafaUser.inc:1249 +msgid "Equipment" +msgstr "Equipaggiamento" + +#: ../templates/config/mainmanage.php:408 +#: ../templates/3rdParty/pla/lib/Template.php:430 +#: ../templates/3rdParty/pla/lib/Template.php:473 +#: ../templates/3rdParty/pla/lib/Template.php:517 +#: ../templates/3rdParty/pla/lib/functions.php:511 +#: ../templates/3rdParty/pla/lib/functions.php:513 +#: ../templates/3rdParty/pla/lib/ds_myldap.php:219 +#: ../templates/3rdParty/pla/htdocs/import.php:79 +msgid "Error" +msgstr "Errore" + +#: ../templates/3rdParty/pla/lib/functions.php:1897 +#: ../templates/3rdParty/pla/lib/functions.php:1901 +msgid "Error number" +msgstr "Errore numero" + +#: ../lib/modules/mitKerberos.inc:1173 ../lib/modules/heimdalKerberos.inc:1038 +msgid "Error while changing Kerberos password." +msgstr "Si è verificato un errore durante il cambiamento della password Kerberos." + +#: ../templates/delete.php:280 +#, php-format +msgid "Error while deleting DN: %s" +msgstr "Errore durante la cancellazione del DN: %s" + +#: ../help/help.inc:145 +msgid "" +"Every account type needs exactly one base module. This module provides a " +"structural object class." +msgstr "Ogni tipo di account ha bisogno di un solo modulo base. Questo modulo fornisce una classe oggetto strutturale." + +#: ../lib/modules/customScripts.inc:67 ../lib/modules/customScripts.inc:80 +#: ../lib/modules/selfRegistration.inc:82 ../lib/modules/zarafaContact.inc:97 +#: ../lib/modules/zarafaGroup.inc:99 ../lib/modules/dhcp_settings.inc:564 +#: ../lib/modules/zarafaUser.inc:146 ../help/help.inc:74 ../help/help.inc:80 +#: ../help/help.inc:90 ../help/help.inc:95 ../help/help.inc:117 +msgid "Example" +msgstr "Esempio" + +#: ../templates/masscreate.php:302 ../templates/masscreate.php:376 +msgid "Example value" +msgstr "Valore di esempio" + +#: ../help/help.inc:62 +msgid "Examples" +msgstr "Esempi" + +#: ../templates/config/confmain.php:319 +msgid "Execute" +msgstr "Esegui" + +#: ../templates/tests/lamdaemonTest.php:269 +msgid "Execute lamdaemon" +msgstr "Esegui lamdaemon" + +#: ../lib/modules/freeRadius.inc:104 ../lib/modules/freeRadius.inc:130 +#: ../lib/modules/freeRadius.inc:209 ../lib/modules/freeRadius.inc:237 +#: ../lib/modules/freeRadius.inc:385 ../lib/modules/freeRadius.inc:543 +msgid "Expiration date" +msgstr "Data di scadenza" + +#: ../lib/modules/bindDLZ.inc:204 ../lib/modules/bindDLZ.inc:307 +#: ../lib/modules/bindDLZ.inc:419 ../lib/modules/bindDLZ.inc:512 +#: ../lib/modules/bindDLZ.inc:1015 ../lib/modules/bindDLZ.inc:1544 +msgid "Expiration time" +msgstr "Tempo di scadenza" + +#: ../lib/modules/asteriskAccount.inc:211 +#: ../lib/modules/asteriskAccount.inc:291 +#: ../lib/modules/asteriskAccount.inc:494 +#: ../lib/modules/asteriskAccount.inc:721 +#: ../lib/modules/asteriskAccount.inc:1007 +#: ../lib/modules/asteriskAccount.inc:1283 +msgid "Expiration timestamp" +msgstr "Timestamp di scadenza" + +#: ../lib/modules/asteriskAccount.inc:212 +msgid "Expiration timestamp (\"regseconds\" option)." +msgstr "Timestamp di scadenza (opzione \"regseconds\")" + +#: ../lib/types/ppolicyType.inc:86 ../lib/modules/ppolicy.inc:116 +#: ../lib/modules/ppolicy.inc:148 ../lib/modules/ppolicy.inc:174 +#: ../lib/modules/ppolicy.inc:214 ../lib/modules/ppolicy.inc:479 +msgid "Expire warning" +msgstr "Avvertimento scadenza" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1081 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1084 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:305 +#: ../templates/3rdParty/pla/htdocs/export_form.php:37 +#: ../templates/3rdParty/pla/htdocs/export_form.php:53 +msgid "Export" +msgstr "Esporta" + +#: ../templates/pdfedit/pdfmain.php:221 ../templates/pdfedit/pdfmain.php:222 +#: ../help/help.inc:212 +msgid "Export PDF structure" +msgstr "Esporta struttura PDF" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:105 +msgid "Export format" +msgstr "Formato di esportazione" + +#: ../templates/profedit/profilemain.php:209 +#: ../templates/profedit/profilemain.php:210 ../help/help.inc:194 +msgid "Export profile" +msgstr "Esporta profilo" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Export subtree" +msgstr "Esporta sottoalbero" + +#: ../templates/pdfedit/pdfmain.php:117 +#: ../templates/profedit/profilemain.php:132 +msgid "Export successful" +msgstr "Esportazione avvenuta con successo" + +#: ../templates/serverInfo.php:349 +msgid "Extended" +msgstr "Esteso" + +#: ../lib/types/asteriskExt.inc:143 +#, php-format +msgid "Extension count: %s" +msgstr "Conteggio estensioni: %s" + +#: ../lib/types/asteriskExt.inc:94 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskExtension.inc:102 +#: ../lib/modules/asteriskExtension.inc:137 +#: ../lib/modules/asteriskExtension.inc:145 +#: ../lib/modules/asteriskExtension.inc:289 +#: ../lib/modules/asteriskExtension.inc:293 +#: ../lib/modules/asteriskExtension.inc:813 +msgid "Extension name" +msgstr "Nome estensione" + +#: ../lib/modules/asteriskExtension.inc:114 +#: ../lib/modules/asteriskExtension.inc:138 +#: ../lib/modules/asteriskExtension.inc:159 +#: ../lib/modules/asteriskExtension.inc:233 +#: ../lib/modules/asteriskExtension.inc:481 +#: ../lib/modules/asteriskExtension.inc:814 +msgid "Extension owners" +msgstr "Proprietari estensione" + +#: ../lib/modules/asteriskExtension.inc:190 +msgid "Extension with this name already exists." +msgstr "Estensioni con questo nome esistono già" + +#: ../templates/3rdParty/pla/htdocs/import.php:66 +msgid "Failed" +msgstr "Fallito" + +#: ../lib/modules/mitKerberos.inc:128 ../lib/modules/mitKerberos.inc:252 +#: ../lib/modules/mitKerberos.inc:298 ../lib/modules/mitKerberos.inc:345 +#: ../lib/modules/mitKerberos.inc:768 +msgid "Failed logins" +msgstr "Login falliti" + +#: ../templates/initsuff.php:152 +msgid "Failed to create entry!" +msgstr "Impossibile creare l'oggetto!" + +#: ../lib/profiles.inc:190 ../lib/pdfstruct.inc:224 +msgid "Failed to export!" +msgstr "Esportazione fallita!" + +#: ../lib/profiles.inc:197 ../lib/pdfstruct.inc:231 +msgid "Failed to import!" +msgstr "Importazione fallita!" + +#: ../lib/types/ppolicyType.inc:85 ../lib/modules/ppolicy.inc:112 +#: ../lib/modules/ppolicy.inc:153 ../lib/modules/ppolicy.inc:173 +#: ../lib/modules/ppolicy.inc:280 ../lib/modules/ppolicy.inc:478 +msgid "Failure count interval" +msgstr "Conteggio intervallo fallito" + +#: ../lib/modules/inetOrgPerson.inc:76 ../lib/modules/inetOrgPerson.inc:158 +#: ../lib/modules/inetOrgPerson.inc:208 ../lib/modules/inetOrgPerson.inc:441 +#: ../lib/modules/inetOrgPerson.inc:581 ../lib/modules/inetOrgPerson.inc:712 +#: ../lib/modules/inetOrgPerson.inc:716 ../lib/modules/inetOrgPerson.inc:1406 +#: ../lib/modules/inetOrgPerson.inc:1409 ../lib/modules/inetOrgPerson.inc:1905 +#: ../lib/modules/inetOrgPerson.inc:2511 ../lib/modules/inetOrgPerson.inc:3535 +#: ../lib/modules/inetOrgPerson.inc:3583 +msgid "Fax number" +msgstr "Numero di fax" + +#: ../lib/modules/zarafaUser.inc:155 ../lib/modules/zarafaUser.inc:376 +#: ../lib/modules/zarafaUser.inc:638 ../lib/modules/zarafaUser.inc:1288 +#: ../lib/modules/zarafaUser.inc:1327 ../lib/modules/zarafaUser.inc:1807 +msgid "Features" +msgstr "Caratteristiche" + +#: ../templates/config/mainmanage.php:412 +#: ../templates/3rdParty/pla/lib/functions.php:533 +#: ../templates/3rdParty/pla/tools/unserialize.php:14 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "File" +msgstr "File" + +#: ../lib/pdfstruct.inc:282 +msgid "File does not exist." +msgstr "Il file non esiste." + +#: ../lib/modules/customFields.inc:160 ../lib/modules/customFields.inc:3294 +msgid "File extension" +msgstr "Estensione file" + +#: ../lib/modules/inetOrgPerson.inc:102 +#, php-format +msgid "File is too large. Maximum allowed size is %s kB." +msgstr "Il file è troppo grande. La massima dimensione consentita è %s kB." + +#: ../lib/modules/sambaSamAccount.inc:312 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user and $group are replaced with user and group name." +msgstr "Nome file e percorso che dovrebbe essere eseguito al logon, relativi alla convisione netlogon. $user e $group vengono sostituiti dal nome utente e dal gruppo." + +#: ../lib/modules/windowsUser.inc:210 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user is replaced with user name." +msgstr "Nome del file e percorso relativo alla condivisione netlogon che dovrebbe essere eseguita all'accesso. $user viene sostituito con il nome utente." + +#: ../lib/modules/zarafaServer.inc:76 ../lib/modules/zarafaServer.inc:112 +#: ../lib/modules/zarafaServer.inc:137 ../lib/modules/zarafaServer.inc:177 +#: ../lib/modules/zarafaServer.inc:219 ../lib/modules/zarafaServer.inc:356 +msgid "File path" +msgstr "Percorso del file" + +#: ../templates/masscreate.php:243 ../lib/tools/fileUpload.inc:44 +#: ../lib/modules/ldapPublicKey.inc:80 ../lib/modules/customFields.inc:3280 +#: ../lib/lists.inc:777 +msgid "File upload" +msgstr "Caricamento file" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +#: ../lib/types/zarafaAddressListType.inc:94 +#: ../lib/types/zarafaDynamicGroupType.inc:95 +#: ../lib/modules/pykotaPrinter.inc:128 ../lib/modules/pykotaPrinter.inc:425 +#: ../lib/modules/zarafaDynamicGroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:158 +#: ../lib/modules/zarafaDynamicGroup.inc:171 +#: ../lib/modules/zarafaDynamicGroup.inc:239 +#: ../lib/modules/zarafaDynamicGroup.inc:450 +#: ../lib/modules/zarafaContact.inc:91 ../lib/modules/posixGroup.inc:335 +#: ../lib/modules/posixGroup.inc:528 ../lib/modules/zarafaAddressList.inc:79 +#: ../lib/modules/zarafaAddressList.inc:134 +#: ../lib/modules/zarafaAddressList.inc:145 +#: ../lib/modules/zarafaAddressList.inc:206 +#: ../lib/modules/zarafaAddressList.inc:333 ../lib/modules/zarafaUser.inc:140 +#: ../lib/modules/sambaGroupMapping.inc:170 +#: ../lib/modules/sambaGroupMapping.inc:483 ../lib/modules/nisnetgroup.inc:104 +#: ../lib/modules/nisnetgroup.inc:477 +#: ../lib/modules/organizationalRole.inc:101 +#: ../lib/modules/organizationalRole.inc:282 +#: ../lib/modules/organizationalRole.inc:372 +#: ../lib/modules/groupOfNames.inc:113 ../lib/modules/groupOfNames.inc:339 +#: ../lib/modules/groupOfNames.inc:429 ../lib/modules/groupOfNames.inc:494 +#: ../lib/modules/groupOfNames.inc:584 ../lib/modules/nisMailAlias.inc:93 +#: ../lib/modules/nisMailAlias.inc:373 ../lib/lists.inc:379 +#: ../help/help.inc:168 +msgid "Filter" +msgstr "Filtro" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:509 +msgid "Filter performed" +msgstr "Filtro applicato" + +#: ../templates/multiEdit.php:514 +msgid "Finished all operations." +msgstr "Tutte le operazioni sono terminate." + +#: ../lib/types/user.inc:96 ../lib/modules/selfRegistration.inc:83 +#: ../lib/modules/selfRegistration.inc:218 ../lib/modules/windowsUser.inc:128 +#: ../lib/modules/windowsUser.inc:278 ../lib/modules/windowsUser.inc:502 +#: ../lib/modules/windowsUser.inc:597 ../lib/modules/windowsUser.inc:700 +#: ../lib/modules/windowsUser.inc:1590 ../lib/modules/inetOrgPerson.inc:66 +#: ../lib/modules/inetOrgPerson.inc:156 ../lib/modules/inetOrgPerson.inc:306 +#: ../lib/modules/inetOrgPerson.inc:538 ../lib/modules/inetOrgPerson.inc:644 +#: ../lib/modules/inetOrgPerson.inc:1170 ../lib/modules/inetOrgPerson.inc:1173 +#: ../lib/modules/inetOrgPerson.inc:1892 ../lib/modules/inetOrgPerson.inc:2434 +#: ../lib/modules/inetOrgPerson.inc:3577 +msgid "First name" +msgstr "Nome" + +#: ../lib/modules/windowsUser.inc:597 ../lib/modules/windowsUser.inc:598 +#: ../lib/modules/inetOrgPerson.inc:66 ../lib/modules/inetOrgPerson.inc:67 +msgid "First name contains invalid characters!" +msgstr "Il nome contiene dei caratteri non validi!" + +#: ../lib/modules/windowsUser.inc:129 ../lib/modules/inetOrgPerson.inc:645 +msgid "First name of user. Only letters, - and spaces are allowed." +msgstr "Nome dell'utente. Solo ammesse solo lettere, - e spazi." + +#: ../lib/modules/ddns.inc:85 +msgid "Fix IP addresses" +msgstr "Fissa l'indirizzo IP" + +#: ../templates/config/confmain.php:414 +msgid "Fixed list" +msgstr "Lista fissa" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:228 +msgid "Fixed range" +msgstr "Gamma fissa" + +#: ../templates/pdfedit/pdfpage.php:461 +msgid "Folding marks" +msgstr "Segni di piegatura" + +#: ../templates/config/confmain.php:273 ../help/help.inc:85 +msgid "Follow referrals" +msgstr "Segui referenti" + +#: ../lib/modules/kolabUser.inc:125 +msgid "For automatic invitation handling." +msgstr "Per la gestione automatica degli inviti." + +#: ../lib/modules/nisnetgroup.inc:101 +msgid "" +"For the upload please specify the entries in the format " +"\"(HOST,USER,DOMAIN)\". Multiple entries are separated by semicolon." +msgstr "Per il carimento specificare i valori nel formato \"(COMPUTER,UTENTE,DOMINIO)\". Valori diversi vanno separati con un punto e virgola." + +#: ../templates/lists/changePassword.php:238 +#: ../lib/modules/mitKerberos.inc:183 ../lib/modules/mitKerberos.inc:417 +#: ../lib/modules/shadowAccount.inc:369 ../lib/modules/heimdalKerberos.inc:127 +#: ../lib/modules/heimdalKerberos.inc:348 ../lib/modules.inc:1062 +#: ../help/help.inc:206 +msgid "Force password change" +msgstr "Forzare il cambio della password" + +#: ../lib/modules/passwordSelfReset.inc:787 +msgid "Forgot password?" +msgstr "Password dimenticata?" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:484 ../help/help.inc:252 +msgid "Format" +msgstr "Formato" + +#: ../lib/modules/qmailUser.inc:207 ../lib/modules/qmailUser.inc:277 +#: ../lib/modules/qmailUser.inc:401 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:546 ../lib/modules/qmailUser.inc:1141 +msgid "Forwarding address" +msgstr "Indirizzo di inoltro" + +#: ../lib/modules/qmailUser.inc:208 +msgid "Forwards all incoming messages for this user to this address." +msgstr "Inoltra tutti i messaggi in arrivo per questo utente a questo indirizzo." + +#: ../lib/modules/pykotaGroup.inc:64 ../lib/modules/pykotaUser.inc:64 +msgid "Free printing" +msgstr "Stampa libera" + +#: ../lib/modules/freeRadius.inc:74 +msgid "FreeRadius" +msgstr "FreeRadius" + +#: ../lib/modules/sambaSamAccount.inc:1376 +msgid "Friday" +msgstr "Venerdì" + +#: ../templates/config/confmain.php:343 ../lib/modules/selfRegistration.inc:90 +#: ../lib/modules/selfRegistration.inc:229 +#: ../lib/modules/passwordSelfReset.inc:116 +#: ../lib/modules/passwordSelfReset.inc:537 +#: ../lib/modules/passwordSelfReset.inc:557 ../help/help.inc:246 +msgid "From address" +msgstr "Dall'indirizzo" + +#: ../templates/config/confmain.php:520 +msgid "From address for password mails is invalid." +msgstr "Indirizzo from per l'email della password non valido." + +#: ../lib/modules/asteriskAccount.inc:147 +#: ../lib/modules/asteriskAccount.inc:275 +#: ../lib/modules/asteriskAccount.inc:377 +#: ../lib/modules/asteriskAccount.inc:636 +#: ../lib/modules/asteriskAccount.inc:991 +#: ../lib/modules/asteriskAccount.inc:1251 +msgid "From domain" +msgstr "Dominio from" + +#: ../lib/modules/asteriskAccount.inc:148 +msgid "From domain setting for this account." +msgstr "Impostazioni dominio from per questo account." + +#: ../lib/modules/asteriskAccount.inc:143 +#: ../lib/modules/asteriskAccount.inc:274 +#: ../lib/modules/asteriskAccount.inc:370 +#: ../lib/modules/asteriskAccount.inc:632 +#: ../lib/modules/asteriskAccount.inc:990 +#: ../lib/modules/asteriskAccount.inc:1249 +msgid "From user" +msgstr "Utente from" + +#: ../lib/modules/asteriskAccount.inc:144 +msgid "From user setting for this account." +msgstr "Impostazione utente from per questo account." + +#: ../lib/modules/asteriskAccount.inc:151 +#: ../lib/modules/asteriskAccount.inc:276 +#: ../lib/modules/asteriskAccount.inc:384 +#: ../lib/modules/asteriskAccount.inc:640 +#: ../lib/modules/asteriskAccount.inc:992 +#: ../lib/modules/asteriskAccount.inc:1253 +msgid "Full contact" +msgstr "Contatto principale" + +#: ../templates/lists/changePassword.php:281 +#: ../lib/modules/asteriskVoicemail.inc:103 +#: ../lib/modules/asteriskVoicemail.inc:139 +#: ../lib/modules/asteriskVoicemail.inc:172 +#: ../lib/modules/asteriskVoicemail.inc:252 +#: ../lib/modules/asteriskVoicemail.inc:371 +msgid "Full name" +msgstr "Nome completo" + +#: ../lib/modules/asteriskVoicemail.inc:104 +msgid "Full name for Asterisk voicemail mailbox." +msgstr "Nome completo per la mailbox voicemail Asterisk." + +#: ../templates/3rdParty/pla/lib/functions.php:537 +#: ../templates/3rdParty/pla/tools/unserialize.php:17 +msgid "Function" +msgstr "Funzione" + +#: ../lib/modules/windowsUser.inc:328 ../lib/modules/inetOrgPerson.inc:387 +msgid "GB-12345" +msgstr "GB-12345" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixGroup.inc:520 +msgid "GID generator" +msgstr "Generatore di GID" + +#: ../lib/types/host.inc:96 ../lib/types/group.inc:106 +#: ../lib/types/user.inc:93 ../lib/modules/qmailUser.inc:114 +#: ../lib/modules/qmailUser.inc:235 ../lib/modules/qmailUser.inc:341 +#: ../lib/modules/qmailUser.inc:421 ../lib/modules/qmailUser.inc:581 +#: ../lib/modules/qmailUser.inc:1143 ../lib/modules/posixGroup.inc:191 +#: ../lib/modules/posixGroup.inc:421 ../lib/modules/posixGroup.inc:436 +#: ../lib/modules/posixGroup.inc:480 ../lib/modules/posixGroup.inc:500 +#: ../lib/modules/posixGroup.inc:576 ../lib/modules/posixGroup.inc:599 +#: ../lib/modules/posixAccount.inc:125 ../lib/modules/posixAccount.inc:413 +#: ../lib/modules/posixAccount.inc:1853 +#: ../lib/modules/sambaGroupMapping.inc:110 +#: ../lib/modules/sambaGroupMapping.inc:538 +msgid "GID number" +msgstr "Numero GID" + +#: ../lib/modules/posixGroup.inc:599 +msgid "" +"GID number has changed. Please select checkbox to change GID number of users" +" and hosts." +msgstr "Il GID è cambiato. Selezionare la casella per cambiare il GID degli utenti e dei computer." + +#: ../lib/modules/posixAccount.inc:125 +#, php-format +msgid "" +"GID number has changed. To keep file ownership you have to run the following" +" command as root: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" +msgstr "Il GID è cambiato. Per mantenere la proprietà dei file dovete eseguire il seguente comando come root: find / -gid %s -uid %s -exec chgrp %s {} \\;'" + +#: ../lib/modules/posixGroup.inc:606 +msgid "GID number has to be a numeric value!" +msgstr "Il numero GID deve essere un valore numerico!" + +#: ../lib/modules/qmailUser.inc:466 +msgid "GID number is already in use." +msgstr "Numero GID già utilizzato." + +#: ../lib/modules/posixAccount.inc:256 ../lib/modules/posixAccount.inc:356 +#: ../lib/modules/posixAccount.inc:398 ../lib/modules/posixAccount.inc:424 +#: ../lib/modules/posixAccount.inc:510 ../lib/modules/posixAccount.inc:548 +#: ../lib/modules/posixAccount.inc:1440 ../lib/modules/posixAccount.inc:1856 +msgid "Gecos" +msgstr "Gecos" + +#: ../lib/modules/windowsUser.inc:673 +msgid "General" +msgstr "Generale" + +#: ../lib/modules/generalInformation.inc:58 +msgid "General information" +msgstr "Informazioni generali" + +#: ../templates/config/mainmanage.php:477 +#: ../templates/config/confmodules.php:164 +#: ../templates/config/confmain.php:205 +#: ../templates/config/moduleSettings.php:163 +#: ../templates/config/conftypes.php:182 +#: ../templates/selfService/adminMain.php:433 +#: ../templates/profedit/profilepage.php:215 +msgid "General settings" +msgstr "Impostazioni generali" + +#: ../templates/lists/changePassword.php:308 ../help/help.inc:244 +msgid "Generate random password" +msgstr "Genera una password casuale" + +#: ../templates/3rdParty/pla/lib/functions.php:63 +#: ../templates/3rdParty/pla/lib/functions.php:595 +msgid "Generic Error" +msgstr "Errore generico" + +#: ../lib/modules/windowsGroup.inc:65 +msgid "Global" +msgstr "Globale" + +#: ../templates/pdfedit/pdfmain.php:322 +#: ../templates/profedit/profilemain.php:289 +msgid "Global templates" +msgstr "Modelli globali" + +#: ../templates/schema/schema.php:128 ../templates/schema/schema.php:265 +#: ../templates/schema/schema.php:296 ../templates/schema/schema.php:321 +msgid "Go" +msgstr "Avanti" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:215 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:139 +msgid "Go back" +msgstr "Indietro" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1864 +msgid "Go to" +msgstr "Vai a" + +#: ../lib/types/ppolicyType.inc:82 ../lib/modules/ppolicy.inc:100 +#: ../lib/modules/ppolicy.inc:149 ../lib/modules/ppolicy.inc:170 +#: ../lib/modules/ppolicy.inc:222 ../lib/modules/ppolicy.inc:475 +msgid "Grace authentication limit" +msgstr "Grazia limite autenticazione" + +#: ../lib/modules/quota.inc:125 ../lib/modules/quota.inc:403 +msgid "Grace block period" +msgstr "Periodo di grazia per il blocco" + +#: ../lib/modules/quota.inc:126 +msgid "" +"Grace block period. Most filesystems use a fixed maximum value of 7 days." +msgstr "Periodo di grazia per il blocco. Molti filesystem usano un valore fisso massimo di 7 giorni." + +#: ../lib/modules/quota.inc:148 +msgid "" +"Grace inode (files) period. Most filesystems use a fixed maximum value of 7 " +"days." +msgstr "Periodo di grazia per gli inode (file). Molti filesystem usano un valore fisso massimo di 7 giorni." + +#: ../lib/modules/quota.inc:147 ../lib/modules/quota.inc:407 +msgid "Grace inode period" +msgstr "Periodo di grazia per gli inode" + +#: ../templates/config/confmain.php:324 +#: ../templates/selfService/adminMain.php:670 +msgid "Group" +msgstr "Gruppo" + +#: ../lib/types/group.inc:76 +msgid "Group accounts (e.g. Unix and Samba)" +msgstr "Account di gruppo (Es. Unix e Samba)" + +#: ../lib/types/gon.inc:202 ../lib/types/zarafaDynamicGroupType.inc:165 +#: ../lib/types/group.inc:240 ../lib/types/netgroup.inc:169 +#, php-format +msgid "Group count: %s" +msgstr "Conteggio gruppi: %s" + +#: ../lib/types/group.inc:111 ../lib/modules/posixGroup.inc:471 +#: ../lib/modules/nisnetgroup.inc:120 +msgid "Group description" +msgstr "Descrizione del gruppo" + +#: ../lib/modules/pykotaGroup.inc:118 +msgid "Group description." +msgstr "Descrizione gruppo." + +#: ../lib/modules/posixGroup.inc:485 +msgid "Group description. If left empty group name will be used." +msgstr "Descrizione del gruppo. Se lasciata vuota sarà utilizzato il nome del gruppo." + +#: ../lib/types/gon.inc:105 ../lib/types/gon.inc:106 +#: ../lib/types/group.inc:108 ../lib/types/group.inc:109 +msgid "Group member DNs" +msgstr "DN dei membri del gruppo" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:94 +#: ../lib/types/group.inc:107 ../lib/modules/pykotaPrinter.inc:119 +#: ../lib/modules/pykotaPrinter.inc:123 ../lib/modules/pykotaPrinter.inc:186 +#: ../lib/modules/pykotaPrinter.inc:199 ../lib/modules/pykotaPrinter.inc:265 +#: ../lib/modules/pykotaPrinter.inc:607 ../lib/modules/posixGroup.inc:222 +#: ../lib/modules/posixGroup.inc:293 ../lib/modules/posixGroup.inc:424 +#: ../lib/modules/posixGroup.inc:450 ../lib/modules/posixGroup.inc:488 +#: ../lib/modules/posixGroup.inc:492 ../lib/modules/posixGroup.inc:573 +#: ../lib/modules/windowsGroup.inc:381 +msgid "Group members" +msgstr "Membri del gruppo" + +#: ../lib/types/gon.inc:104 ../lib/types/zarafaDynamicGroupType.inc:91 +#: ../lib/types/group.inc:105 ../lib/types/netgroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:63 +#: ../lib/modules/zarafaDynamicGroup.inc:116 +#: ../lib/modules/zarafaDynamicGroup.inc:165 +#: ../lib/modules/zarafaDynamicGroup.inc:195 +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:220 +#: ../lib/modules/zarafaDynamicGroup.inc:447 ../lib/modules/posixGroup.inc:181 +#: ../lib/modules/posixGroup.inc:427 ../lib/modules/posixGroup.inc:459 +#: ../lib/modules/posixGroup.inc:508 ../lib/modules/posixGroup.inc:575 +#: ../lib/modules/posixGroup.inc:607 ../lib/modules/posixGroup.inc:608 +#: ../lib/modules/posixGroup.inc:609 ../lib/modules/pykotaGroup.inc:197 +#: ../lib/modules/pykotaGroup.inc:199 ../lib/modules/pykotaGroup.inc:218 +#: ../lib/modules/nisnetgroup.inc:83 ../lib/modules/nisnetgroup.inc:112 +#: ../lib/modules/nisnetgroup.inc:139 ../lib/modules/nisnetgroup.inc:151 +#: ../lib/modules/nisnetgroup.inc:193 ../lib/modules/nisnetgroup.inc:579 +#: ../lib/modules/organizationalRole.inc:85 +#: ../lib/modules/organizationalRole.inc:114 +#: ../lib/modules/organizationalRole.inc:137 +#: ../lib/modules/organizationalRole.inc:452 +#: ../lib/modules/windowsGroup.inc:114 ../lib/modules/windowsGroup.inc:176 +#: ../lib/modules/windowsGroup.inc:257 ../lib/modules/windowsGroup.inc:283 +#: ../lib/modules/windowsGroup.inc:300 ../lib/modules/windowsGroup.inc:745 +#: ../lib/modules/groupOfNames.inc:85 ../lib/modules/groupOfNames.inc:126 +#: ../lib/modules/groupOfNames.inc:167 ../lib/modules/groupOfNames.inc:693 +msgid "Group name" +msgstr "Nome del gruppo" + +#: ../lib/modules/pykotaGroup.inc:199 ../lib/modules/pykotaGroup.inc:200 +#: ../lib/modules/pykotaGroup.inc:203 ../lib/modules/pykotaGroup.inc:204 +msgid "Group name already exists!" +msgstr "Il nome del gruppo esiste già!" + +#: ../lib/modules/zarafaDynamicGroup.inc:195 +msgid "Group name already in use." +msgstr "Il nome del gruppo è già stato utilizzato." + +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:197 ../lib/modules/posixGroup.inc:609 +#: ../lib/modules/posixGroup.inc:610 ../lib/modules/pykotaGroup.inc:197 +#: ../lib/modules/pykotaGroup.inc:198 ../lib/modules/pykotaGroup.inc:201 +#: ../lib/modules/pykotaGroup.inc:202 ../lib/modules/nisnetgroup.inc:151 +#: ../lib/modules/windowsGroup.inc:283 ../lib/modules/windowsGroup.inc:284 +msgid "" +"Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "Il nome del gruppo contiene dei caratteri non validi. I caratteri ammessi sono: a-z, A-Z, 0-9 e .-_ !" + +#: ../lib/modules/windowsGroup.inc:151 +msgid "Group name for NIS." +msgstr "Nomi del gruppo per NIS." + +#: ../lib/modules/posixGroup.inc:608 +msgid "Group name in use. Selected next free group name." +msgstr "Il nome del gruppo è già stato utilizzato. Selezionato il prossimo nome libero." + +#: ../lib/modules/zarafaDynamicGroup.inc:64 ../lib/modules/pykotaGroup.inc:114 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ ." +msgstr "Nome del gruppo che deve essere creato. I caratteri ammessi sono: a-z, A-Z, 0-9 e .-_ ." + +#: ../lib/modules/posixGroup.inc:509 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ . If group name is already used group name will be expanded" +" with a number. The next free number will be used." +msgstr "Nome del gruppo che deve essere creato. I caratteri ammessi sono: a-z, A-Z, 0-9 e .-_. Se il nome del gruppo è già utilizzato, il nome verrà esteso con un numero. Sarà utilizzato il prossimo numero libero." + +#: ../lib/modules/pykotaGroup.inc:122 +msgid "Group name that is used for PyKota." +msgstr "Il nome del gruppo usato da PyKota." + +#: ../lib/modules/freeRadius.inc:96 ../lib/modules/freeRadius.inc:100 +#: ../lib/modules/freeRadius.inc:128 ../lib/modules/freeRadius.inc:154 +#: ../lib/modules/freeRadius.inc:185 ../lib/modules/freeRadius.inc:234 +#: ../lib/modules/freeRadius.inc:277 ../lib/modules/freeRadius.inc:540 +msgid "Group names" +msgstr "Gruppo di nomi" + +#: ../lib/modules/groupOfNames.inc:65 +msgid "Group of names" +msgstr "Gruppo di nomi" + +#: ../lib/types/gon.inc:75 +msgid "Group of names accounts" +msgstr "Gruppo di nomi account" + +#: ../lib/modules/groupOfUniqueNames.inc:42 +msgid "Group of unique names" +msgstr "Gruppo di nomi univoci" + +#: ../lib/modules/posixGroup.inc:442 ../lib/modules/posixGroup.inc:496 +msgid "Group password" +msgstr "Password di gruppo" + +#: ../lib/modules/windowsGroup.inc:142 ../lib/modules/windowsGroup.inc:195 +#: ../lib/modules/windowsGroup.inc:262 ../lib/modules/windowsGroup.inc:338 +#: ../lib/modules/windowsGroup.inc:775 +msgid "Group scope" +msgstr "Scopo del gruppo" + +#: ../lib/modules/sambaGroupMapping.inc:382 +#: ../lib/modules/windowsGroup.inc:138 ../lib/modules/windowsGroup.inc:203 +#: ../lib/modules/windowsGroup.inc:261 ../lib/modules/windowsGroup.inc:341 +#: ../lib/modules/windowsGroup.inc:776 +msgid "Group type" +msgstr "Tipo del gruppo" + +#: ../lib/types/group.inc:67 ../lib/modules/posixGroup.inc:401 +#: ../lib/modules/zarafaGroup.inc:119 ../lib/modules/windowsUser.inc:217 +#: ../lib/modules/windowsUser.inc:220 ../lib/modules/windowsUser.inc:442 +#: ../lib/modules/windowsUser.inc:523 ../lib/modules/windowsUser.inc:785 +#: ../lib/modules/windowsUser.inc:1635 ../lib/modules/windowsUser.inc:1663 +#: ../lib/modules/generalInformation.inc:110 +msgid "Groups" +msgstr "Gruppi" + +#: ../lib/types/gon.inc:66 ../lib/modules/posixAccount.inc:261 +#: ../lib/modules/posixAccount.inc:364 ../lib/modules/posixAccount.inc:427 +#: ../lib/modules/posixAccount.inc:1599 ../lib/modules/posixAccount.inc:1748 +#: ../lib/modules/posixAccount.inc:1865 ../lib/modules/windowsUser.inc:1029 +#: ../lib/modules/groupOfNamesUser.inc:54 +#: ../lib/modules/groupOfNamesUser.inc:56 +#: ../lib/modules/groupOfNamesUser.inc:60 +#: ../lib/modules/groupOfNamesUser.inc:64 +#: ../lib/modules/groupOfNamesUser.inc:71 +#: ../lib/modules/groupOfNamesUser.inc:324 +#: ../lib/modules/groupOfNamesUser.inc:360 +msgid "Groups of names" +msgstr "Gruppo di nomi" + +#: ../lib/modules/dhcp_settings.inc:99 +msgid "H-Node (0x08)" +msgstr "Nodo-H (0x08)" + +#: ../templates/config/confmain.php:356 +#: ../lib/modules/selfRegistration.inc:235 +#: ../lib/modules/passwordSelfReset.inc:541 +#: ../lib/modules/passwordSelfReset.inc:561 ../help/help.inc:255 +msgid "HTML format" +msgstr "Formato HTML" + +#: ../templates/config/confmain.php:448 +#: ../templates/selfService/adminMain.php:474 ../help/help.inc:126 +msgid "HTTP authentication" +msgstr "Autenticazione HTTP" + +#: ../lib/modules/zarafaServer.inc:68 ../lib/modules/zarafaServer.inc:100 +#: ../lib/modules/zarafaServer.inc:135 ../lib/modules/zarafaServer.inc:173 +#: ../lib/modules/zarafaServer.inc:195 ../lib/modules/zarafaServer.inc:354 +msgid "HTTP port" +msgstr "Porta HTTP" + +#: ../lib/modules/quota.inc:635 ../lib/modules/systemQuotas.inc:384 +msgid "Hard block" +msgstr "Blocco hard" + +#: ../lib/modules/quota.inc:119 ../lib/modules/quota.inc:120 +#: ../lib/modules/quota.inc:402 ../lib/modules/quota.inc:508 +#: ../lib/modules/systemQuotas.inc:126 +msgid "Hard block limit" +msgstr "Limite di blocco hard" + +#: ../lib/modules/quota.inc:637 ../lib/modules/systemQuotas.inc:386 +msgid "Hard inode" +msgstr "Hard inode" + +#: ../lib/modules/quota.inc:142 +msgid "Hard inode (files) limit" +msgstr "Limite hard degli inode (file)" + +#: ../lib/modules/quota.inc:141 ../lib/modules/quota.inc:406 +#: ../lib/modules/quota.inc:510 ../lib/modules/systemQuotas.inc:130 +msgid "Hard inode limit" +msgstr "Limite hard degli inode" + +#: ../lib/modules/generalInformation.inc:104 +msgid "Has subentries" +msgstr "Ha voci subordinate" + +#: ../lib/modules/sambaSamAccount.inc:554 +msgid "Hawaii" +msgstr "Hawaii" + +#: ../lib/modules/selfRegistration.inc:106 +#: ../lib/modules/selfRegistration.inc:224 +#: ../lib/modules/passwordSelfReset.inc:156 +#: ../lib/modules/passwordSelfReset.inc:567 +msgid "Header" +msgstr "Header" + +#: ../templates/pdfedit/pdfpage.php:452 ../templates/pdfedit/pdfpage.php:591 +#: ../templates/pdfedit/pdfpage.php:598 +msgid "Headline" +msgstr "Testata" + +#: ../lib/modules/heimdalKerberos.inc:235 +msgid "Heimdal Kerberos password change command" +msgstr "Comando di cambio password Kerberos di Heimdal " + +#: ../templates/main_header.php:140 ../lib/modules.inc:667 +msgid "Help" +msgstr "Aiuto" + +#: ../lib/modules/customFields.inc:96 ../lib/modules/customFields.inc:1716 +msgid "Help text" +msgstr "Testo di aiuto" + +#: ../lib/tools/schemaBrowser.inc:53 +msgid "Here you can browse LDAP object classes and attributes." +msgstr "Questo strumento vi permette di esaminare le classi degli oggetti e gli attributi di LDAP." + +#: ../lib/modules/sambaSamAccount.inc:391 +msgid "Here you can change the settings for the terminal server access." +msgstr "Qui si possono modificare le impostazioni per l'accesso a terminal server." + +#: ../lib/selfService.inc:387 +msgid "Here you can change your personal settings." +msgstr "Qui potete cambiare le vostre impostazioni personali." + +#: ../templates/masscreate.php:130 +msgid "Here you can create multiple accounts by providing a CSV file." +msgstr "In questa pagina è possibile creare più account fornendo un file CSV." + +#: ../lib/modules/dhcp_settings.inc:198 +msgid "Here you can enter a description for this DHCP entry." +msgstr "Qui si può inserire la descrizione per questo oggetto DHCP." + +#: ../lib/modules/nisnetgroup.inc:88 ../lib/modules/organizationalRole.inc:90 +#: ../lib/modules/groupOfNames.inc:90 +msgid "Here you can enter a description for this group." +msgstr "Qui si può inserire una descrizione per questo gruppo." + +#: ../lib/modules/sudoRole.inc:71 +msgid "Here you can enter a description for this role." +msgstr "Qui si può inserire una descrizione per questo ruolo." + +#: ../lib/modules/pykotaPrinter.inc:129 ../lib/modules/zarafaContact.inc:92 +#: ../lib/modules/posixGroup.inc:529 ../lib/modules/zarafaUser.inc:141 +#: ../lib/modules/sambaGroupMapping.inc:171 ../lib/modules/nisnetgroup.inc:105 +#: ../lib/modules/organizationalRole.inc:102 +#: ../lib/modules/groupOfNames.inc:114 ../lib/modules/nisMailAlias.inc:94 +msgid "" +"Here you can enter a filter value. Only entries which contain the filter " +"text will be shown." +msgstr "Qui è possibile inserire un valore di filtro. Verranno mostrati solo gli oggetti che contengono il testo indicato." + +#: ../lib/modules/posixAccount.inc:470 ../lib/modules/groupOfNamesUser.inc:65 +msgid "" +"Here you can enter a list of additional group memberships. The group names " +"are separated by commas." +msgstr "In questo campo è possibile inserire un lista aggiuntiva di gruppi ai quali l'utente appartiene. I nomi dei gruppi devono essere separati da virgole." + +#: ../lib/modules/organizationalRoleUser.inc:65 +msgid "" +"Here you can enter a list of roles. The role names are separated by commas." +msgstr "Qui puoi immettere un elenco di ruoli. I nomi dei ruoli sono separati da virgole." + +#: ../lib/modules/device.inc:66 +msgid "Here you can enter a serial number for this device." +msgstr "Qui si può inserire un numero seriale per questo dispositivo." + +#: ../lib/modules/windowsUser.inc:181 ../lib/modules/windowsUser.inc:185 +msgid "Here you can enter additional web sites for the user." +msgstr "Qui è possibile inserire ulteriori siti web per l'utente." + +#: ../help/help.inc:215 +msgid "" +"Here you can enter an alternative mail address for the password. To use the " +"user's primary email address please leave the field blank." +msgstr "Qui è possibile inserire un indirizzo email alternativo per la password. Per utilizzare l'indirizzo primario dell'utente, lasciare il campo vuoto." + +#: ../lib/modules/customFields.inc:81 +msgid "" +"Here you can enter one or more object classes (separated by comma). This " +"will allow you to add/remove the group's attributes including their object " +"classes." +msgstr "Qui puoi immettere uno o più classi di oggetti (separati da una virgola). Ciò ti permetterà di aggiungere/rimuovere gli attributi dei gruppi incluse le loro classi di oggetti." + +#: ../lib/modules/inetOrgPerson.inc:801 ../lib/modules/inetOrgPerson.inc:805 +msgid "Here you can enter the user's department." +msgstr "Qui potete inserire il nome del dipartimento dell'utente." + +#: ../lib/modules/zarafaUser.inc:156 +msgid "Here you can explicitly enable and disable Zarafa features." +msgstr "Qui è possibile abilitare e disabilitare in modo esplicito le caratteristiche di Zarafa." + +#: ../help/help.inc:213 +msgid "" +"Here you can export PDF structures to other server profiles (overwrite " +"existing). You may also export a structure to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"structure with this name." +msgstr "Qui potrete esportare le strutture PDF su altri profili server (sovrascrivendo gli esistenti). Potrete anche esportare una struttura nei modelli globali. In questo caso esso sarà sempre copiato in tutti i profili server che non posseggono ancora una struttura con questo nome." + +#: ../help/help.inc:195 +msgid "" +"Here you can export account profiles to other server profiles (overwrite " +"existing). You may also export a profile to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"profile with this name." +msgstr "Qui potrete esportare i profili account in altri profili server (sovrascrivendo gli esistenti). Potrete anche esportare un profilo nei modelli globali. In questo caso esso sarà sempre copiato in tutti i profili server che non posseggono ancora un profilo con questo nome." + +#: ../help/help.inc:211 +msgid "" +"Here you can import PDF structures from other server profiles (overwrite " +"existing)." +msgstr "Qui potrete importare strutture PDF da altri profili server (sovrascrivendo gli esistenti)." + +#: ../help/help.inc:193 +msgid "" +"Here you can import account profiles from other server profiles (overwrite " +"existing)." +msgstr "Qui potrete importare i profili account da altri profili server (sovrascrivendo gli esistenti)." + +#: ../help/help.inc:169 +msgid "" +"Here you can input simple filter expressions (e.g. 'value' or 'v*'). The " +"filter is case-sensitive." +msgstr "Qui possono essere inseriti semplici filtri (es. 'valore' o 'v*'). I filtri sono sensibili a maiuscole e minuscole." + +#: ../help/help.inc:199 +msgid "" +"Here you can load an account profile to set default settings for your " +"account. The \"default\" profile is automatically loaded for new accounts." +msgstr "Qui è possibile caricare un profilo per gli account con le impostazioni predefinite per i vostri account. Il profilo \"predefinito\" viene caricato automaticamente per i nuovi account." + +#: ../lib/tools/profileEditor.inc:53 +msgid "Here you can manage your account profiles." +msgstr "Qui è possibile gestire i profili degli account." + +#: ../help/help.inc:181 +msgid "Here you can overwrite the display name for this account type." +msgstr "Qui è possibile sovrascrivere il nome visualizzato per questo tipo di account." + +#: ../help/help.inc:201 +msgid "" +"Here you can select a PDF structure and export the account to a PDF file." +msgstr "Qui è possibile sezionare una struttura PDF ed esportare l'account in un file PDF." + +#: ../help/help.inc:151 +msgid "" +"Here you can select where LAM should save its log messages. System logging " +"will go to Syslog on Unix systems and event log on Windows. You can also " +"select an extra file." +msgstr "Qui è possibile selezionare dove LAM deve salvare i messaggi di log. Log di sistema invierà i messaggi a Syslog sui sistemi Unix e al Registro Eventi su Windows. È anche possibile scegliere un file esterno." + +#: ../help/help.inc:112 +msgid "" +"Here you can select which plugins you want to use for account management." +msgstr "Qui è possibile selezionare quali plugin volete utilizzare per la gestione degli account." + +#: ../lib/modules/customFields.inc:169 +msgid "Here you can set a custom display name for this module." +msgstr "Qui è possibile impostare un nome di visualizzazione personalizzato per questo modulo." + +#: ../lib/modules/customFields.inc:97 +msgid "Here you can set a describing text for your custom field." +msgstr "Qui si può impostare un testo di descrizione per il campo personalizzato." + +#: ../help/help.inc:125 +msgid "" +"Here you can set a limit for LDAP searches. This will restrict the number of" +" results for LDAP searches. Please use this if LAM's LDAP queries produce " +"too much load." +msgstr "Qui potete impostare un limite per le ricerche LDAP. Quersto restringerà il numero di risultati per le ricerche LDAP. Si prega di usarlo se le query LDAP di LAM producono un carico eccessivo." + +#: ../lib/modules/customFields.inc:173 +msgid "Here you can set the URL to a custom icon (32x32px) for this module." +msgstr "Qui è possibile impostare l'URL di un icona personalizzata (32x32px) per questo modulo." + +#: ../help/help.inc:237 +msgid "" +"Here you can specify additional CSS links to change the layout of the self " +"service pages. This is useful to adapt them to your corporate design. Please" +" enter one link per line." +msgstr "Qui è possibile specificare collegamenti a CSS aggiuntivi per cambiare l'aspetto delle pagine di auto-aiuto. Può essere utilizzato per adattarle alle pagine aziendali. Inserire un collegamento per linea." + +#: ../help/help.inc:155 +msgid "" +"Here you can specify minimum requirements for passwords. The character " +"classes are: lowercase, uppercase, numeric and symbols." +msgstr "Qui è possibile indicare i requisiti minimi per le password. Le classi di caratteri sono: minuscoli, maiuscoli, numerici e simboli." + +#: ../lib/modules/nisnetgroup.inc:92 +msgid "" +"Here you can specify subgroups which are included in this NIS netgroup. All " +"members of the subgroups will be treated as members of this group." +msgstr "Qui è possibile specificare dei sottogruppi che vengono inclusi in questo gruppo NIS di rete. Tutti i membri del sottogruppo saranno considerati membri di questo gruppo." + +#: ../help/help.inc:129 +msgid "" +"Here you can specify the DN and password of the bind user that will be used " +"for the LDAP search. This is required if your LDAP server does not allow " +"anonymous access." +msgstr "Qui potete specificare il DN e la password con cui verrà effettuato il collegamento che sarà utilizzato per le ricerche LDAP. E' necessario se il vostro server LDAP non permette l'accesso anonimo." + +#: ../lib/modules/hostObject.inc:80 +msgid "" +"Here you can specify the list of host names where this account has login " +"privileges. The wildcard \"*\" represents all hosts. You may also use \"!\" " +"in front of a host name to deny access to a host." +msgstr "Qui potete specificare l'elenco dei nomi degli host dove questo account possiede i privilegi di login. Il carattere giolly \"*\" rappresenta tutti gli hosts. Potete anche usare \"!\" all'inizio di un nome di un computer per negare l'accesso ad un computer. " + +#: ../lib/modules/sambaDomain.inc:102 +msgid "" +"Here you can specify the minimum number of characters for a user password." +msgstr "Qui è possibile indicare il numero minimo di caratteri per la password di un utente." + +#: ../templates/lists/changePassword.php:350 +msgid "Here you can specify the new password yourself." +msgstr "Qui è possibile indicare la nuova password." + +#: ../lib/modules/sambaSamAccount.inc:382 +msgid "Here you can specify the shadowing mode." +msgstr "Qui é possibile specificate la modalità di shadowing." + +#: ../lib/tools/tests.inc:53 +msgid "Here you can test if certain LAM features work on your installation." +msgstr "Con questo strumento è possibile veririficare se certe caratteristiche di LAM funzionano nella vostra installazione." + +#: ../lib/modules/customFields.inc:165 +msgid "Here you can upload a new file." +msgstr "Qui puoi eseguire l'upload di un nuovo file" + +#: ../templates/config/conftypes.php:283 +#: ../lib/types/zarafaAddressListType.inc:95 +#: ../lib/types/zarafaDynamicGroupType.inc:96 +#: ../lib/modules/zarafaDynamicGroup.inc:79 +#: ../lib/modules/zarafaDynamicGroup.inc:136 +#: ../lib/modules/zarafaDynamicGroup.inc:169 +#: ../lib/modules/zarafaDynamicGroup.inc:273 +#: ../lib/modules/zarafaDynamicGroup.inc:461 +#: ../lib/modules/zarafaContact.inc:71 ../lib/modules/zarafaContact.inc:164 +#: ../lib/modules/zarafaContact.inc:172 ../lib/modules/zarafaContact.inc:247 +#: ../lib/modules/zarafaContact.inc:572 ../lib/modules/zarafaGroup.inc:85 +#: ../lib/modules/zarafaGroup.inc:146 ../lib/modules/zarafaGroup.inc:196 +#: ../lib/modules/zarafaGroup.inc:294 ../lib/modules/zarafaGroup.inc:665 +#: ../lib/modules/zarafaAddressList.inc:67 +#: ../lib/modules/zarafaAddressList.inc:112 +#: ../lib/modules/zarafaAddressList.inc:143 +#: ../lib/modules/zarafaAddressList.inc:214 +#: ../lib/modules/zarafaAddressList.inc:343 ../lib/modules/zarafaUser.inc:80 +#: ../lib/modules/zarafaUser.inc:290 ../lib/modules/zarafaUser.inc:339 +#: ../lib/modules/zarafaUser.inc:367 ../lib/modules/zarafaUser.inc:577 +#: ../lib/modules/zarafaUser.inc:1274 ../help/help.inc:174 +msgid "Hidden" +msgstr "Nascosto" + +#: ../help/help.inc:175 +msgid "" +"Hidden account types will not show up in LAM. This is useful if you want to " +"display e.g. only groups but still need to manage their members." +msgstr "I tipi di account nascosti non vengono mostrati in LAM. Questo è utile se volete mostrare ad esempio, solo i gruppi ma volete gestire separatamente i membri." + +#: ../lib/modules/nisMailAliasUser.inc:104 +#: ../lib/modules/nisMailAliasUser.inc:563 +#: ../lib/modules/asteriskAccount.inc:243 +#: ../lib/modules/asteriskAccount.inc:1237 ../lib/modules/qmailUser.inc:102 +#: ../lib/modules/qmailUser.inc:195 ../lib/modules/zarafaGroup.inc:108 +#: ../lib/modules/zarafaGroup.inc:134 ../lib/modules/sambaSamAccount.inc:399 +#: ../lib/modules/sambaSamAccount.inc:589 ../lib/modules/posixAccount.inc:252 +#: ../lib/modules/posixAccount.inc:441 ../lib/modules/zarafaUser.inc:132 +#: ../lib/modules/zarafaUser.inc:1781 ../lib/modules/windowsUser.inc:236 +#: ../lib/modules/windowsUser.inc:561 ../lib/modules/inetOrgPerson.inc:808 +#: ../lib/modules/inetOrgPerson.inc:3505 ../lib/modules/freeRadius.inc:112 +#: ../lib/modules/freeRadius.inc:118 ../lib/modules/zarafaServer.inc:88 +#: ../lib/modules/zarafaServer.inc:159 ../lib/modules/qmailGroup.inc:68 +#: ../lib/modules/qmailGroup.inc:119 ../lib/modules/organizationalRole.inc:81 +#: ../lib/modules/organizationalRole.inc:159 +#: ../lib/modules/passwordSelfReset.inc:160 +#: ../lib/modules/passwordSelfReset.inc:209 +#: ../lib/modules/windowsGroup.inc:110 ../lib/modules/windowsGroup.inc:161 +#: ../lib/modules/groupOfNames.inc:81 ../lib/modules/groupOfNames.inc:193 +msgid "Hidden options" +msgstr "Opzioni nascoste" + +#: ../templates/config/confmain.php:375 +msgid "Hidden tools" +msgstr "Strumenti nascosti" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1115 +msgid "Hide" +msgstr "Nascondi" + +#: ../lib/modules/customScripts.inc:88 ../lib/modules/customScripts.inc:102 +#: ../lib/modules/customScripts.inc:112 +msgid "Hide command in messages" +msgstr "Nascondi i comandi nei messaggi" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1116 +msgid "Hide internal attributes" +msgstr "Nascondi gli attributi interni" + +#: ../lib/modules/customScripts.inc:92 ../lib/modules/customScripts.inc:104 +msgid "Hide tab" +msgstr "Nascondi tab" + +#: ../templates/3rdParty/pla/lib/page.php:407 +msgid "Hide/Unhide the tree" +msgstr "Nascondi/Mostra l'albero" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:58 +msgid "Hint" +msgstr "Suggerimento" + +#: ../templates/masscreate.php:249 +msgid "" +"Hint: Format all cells as text in your spreadsheet program and turn off auto" +" correction." +msgstr "Suggerimento: nel vostro foglio di calcolo formattate tutte le celle come testo e disattivate l'autocorrezione." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1005 +msgid "Hint: To delete an attribute, empty the text field and click save." +msgstr "Suggerimento: per cancellare un attributo, svuotare il campo di testo e selezionare salva." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1342 +msgid "" +"Hint: You must choose exactly one structural object class (shown in bold " +"above)" +msgstr "Suggerimento: Dovete scegliere esattamente " + +#: ../lib/modules/posixAccount.inc:535 ../lib/modules/windowsUser.inc:218 +#: ../lib/modules/groupOfNamesUser.inc:61 +msgid "Hold the CTRL-key to (de)select multiple groups." +msgstr "Tenere premuto il tasto CTRL per (de)selezionare più gruppi." + +#: ../lib/modules/organizationalRoleUser.inc:61 +msgid "Hold the CTRL-key to (de)select multiple roles." +msgstr "Premere il tasto CTRL per (de)selezionare molteplici ruoli." + +#: ../lib/types/user.inc:98 ../lib/modules/sambaSamAccount.inc:230 +#: ../lib/modules/sambaSamAccount.inc:354 +#: ../lib/modules/sambaSamAccount.inc:1501 +#: ../lib/modules/sambaSamAccount.inc:1916 ../lib/modules/posixAccount.inc:100 +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:103 +#: ../lib/modules/posixAccount.inc:310 ../lib/modules/posixAccount.inc:416 +#: ../lib/modules/posixAccount.inc:473 ../lib/modules/posixAccount.inc:477 +#: ../lib/modules/posixAccount.inc:481 ../lib/modules/posixAccount.inc:518 +#: ../lib/modules/posixAccount.inc:1199 ../lib/modules/posixAccount.inc:1459 +#: ../lib/modules/posixAccount.inc:1655 ../lib/modules/posixAccount.inc:1755 +#: ../lib/modules/posixAccount.inc:1854 ../lib/modules/windowsUser.inc:247 +#: ../lib/modules/windowsUser.inc:436 ../lib/modules/windowsUser.inc:479 +#: ../lib/modules/windowsUser.inc:526 ../lib/modules/windowsUser.inc:618 +#: ../lib/modules/windowsUser.inc:768 ../lib/modules/windowsUser.inc:1629 +msgid "Home directory" +msgstr "Home directory" + +#: ../lib/modules/posixAccount.inc:103 +#, php-format +msgid "" +"Home directory changed. To keep home directory you have to run the following" +" command as root: 'mv %s %s'" +msgstr "La home directory è cambiata. Per conservare la home directory è necessario eseguire il seguente comando come root: 'mv %s %s'" + +#: ../lib/modules/sambaSamAccount.inc:214 +#: ../lib/modules/sambaSamAccount.inc:231 +#: ../lib/modules/sambaSamAccount.inc:302 +#: ../lib/modules/sambaSamAccount.inc:486 +#: ../lib/modules/sambaSamAccount.inc:594 +#: ../lib/modules/sambaSamAccount.inc:1203 +#: ../lib/modules/sambaSamAccount.inc:1509 +#: ../lib/modules/sambaSamAccount.inc:1750 +#: ../lib/modules/sambaSamAccount.inc:1901 +#: ../lib/modules/sambaSamAccount.inc:1917 ../lib/modules/windowsUser.inc:244 +#: ../lib/modules/windowsUser.inc:430 ../lib/modules/windowsUser.inc:525 +#: ../lib/modules/windowsUser.inc:766 ../lib/modules/windowsUser.inc:1630 +msgid "Home drive" +msgstr "Lettera del disco home" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:95 +#: ../lib/modules/sambaSamAccount.inc:217 +#: ../lib/modules/sambaSamAccount.inc:305 +#: ../lib/modules/sambaSamAccount.inc:494 +#: ../lib/modules/sambaSamAccount.inc:596 +#: ../lib/modules/sambaSamAccount.inc:1211 +#: ../lib/modules/sambaSamAccount.inc:1754 +#: ../lib/modules/sambaSamAccount.inc:1900 +msgid "Home path" +msgstr "Percorso della home" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:96 +msgid "Home path is invalid." +msgstr "Il percorso della home non è valido." + +#: ../lib/modules/zarafaUser.inc:129 +msgid "Home server for the user." +msgstr "Home server per l'utente." + +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:160 +#: ../lib/modules/inetOrgPerson.inc:425 ../lib/modules/inetOrgPerson.inc:575 +#: ../lib/modules/inetOrgPerson.inc:752 ../lib/modules/inetOrgPerson.inc:756 +#: ../lib/modules/inetOrgPerson.inc:1390 ../lib/modules/inetOrgPerson.inc:1393 +#: ../lib/modules/inetOrgPerson.inc:1901 ../lib/modules/inetOrgPerson.inc:2489 +#: ../lib/modules/inetOrgPerson.inc:3531 ../lib/modules/inetOrgPerson.inc:3582 +msgid "Home telephone number" +msgstr "Numero telefonico di casa" + +#: ../lib/modules/posixAccount.inc:100 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/windowsUser.inc:618 ../lib/modules/windowsUser.inc:619 +msgid "Homedirectory contains invalid characters." +msgstr "La home directory contiene dei caratteri non validi." + +#: ../lib/types/sudo.inc:79 ../lib/modules/asteriskAccount.inc:107 +#: ../lib/modules/asteriskAccount.inc:254 +#: ../lib/modules/asteriskAccount.inc:268 +#: ../lib/modules/asteriskAccount.inc:318 +#: ../lib/modules/asteriskAccount.inc:591 +#: ../lib/modules/asteriskAccount.inc:984 ../lib/modules/nisnetgroup.inc:217 +#: ../lib/modules/nisnetgroup.inc:585 ../lib/modules/fixed_ip.inc:580 +#: ../lib/modules/hostObject.inc:145 +msgid "Host" +msgstr "Computer" + +#: ../lib/types/host.inc:62 +msgid "Host accounts (e.g. Samba)" +msgstr "Account computer (es. Samba)" + +#: ../lib/types/host.inc:193 +#, php-format +msgid "Host count: %s" +msgstr "Conteggio host: %s" + +#: ../lib/types/host.inc:94 +msgid "Host description" +msgstr "Descrizione del computer" + +#: ../lib/modules/account.inc:96 ../lib/modules/posixAccount.inc:549 +#: ../lib/modules/posixAccount.inc:557 +msgid "Host description. If left empty host name will be used." +msgstr "Descrizione del computer. Se lasciata vuota sarà utilizzato il nome del computer." + +#: ../lib/modules/hostObject.inc:91 ../lib/modules/hostObject.inc:98 +#: ../lib/modules/hostObject.inc:217 +msgid "Host list" +msgstr "Lista dei computer" + +#: ../lib/types/host.inc:91 ../lib/types/host.inc:92 ../lib/types/bind.inc:77 +#: ../lib/modules/account.inc:91 ../lib/modules/account.inc:212 +#: ../lib/modules/windowsHost.inc:74 ../lib/modules/windowsHost.inc:94 +#: ../lib/modules/windowsHost.inc:119 ../lib/modules/windowsHost.inc:131 +#: ../lib/modules/windowsHost.inc:142 ../lib/modules/windowsHost.inc:288 +#: ../lib/modules/posixAccount.inc:115 ../lib/modules/posixAccount.inc:116 +#: ../lib/modules/posixAccount.inc:118 ../lib/modules/posixAccount.inc:375 +#: ../lib/modules/posixAccount.inc:406 ../lib/modules/posixAccount.inc:544 +#: ../lib/modules/posixAccount.inc:1422 ../lib/modules/posixAccount.inc:1844 +#: ../lib/modules/bindDLZ.inc:81 ../lib/modules/bindDLZ.inc:140 +#: ../lib/modules/bindDLZ.inc:144 ../lib/modules/bindDLZ.inc:240 +#: ../lib/modules/bindDLZ.inc:294 ../lib/modules/bindDLZ.inc:410 +#: ../lib/modules/bindDLZ.inc:470 ../lib/modules/bindDLZ.inc:497 +#: ../lib/modules/bindDLZ.inc:542 ../lib/modules/bindDLZ.inc:546 +#: ../lib/modules/bindDLZ.inc:750 ../lib/modules/bindDLZ.inc:1464 +#: ../lib/modules/bindDLZ.inc:1492 ../lib/modules/nisnetgroup.inc:153 +#: ../lib/modules/nisnetgroup.inc:481 +msgid "Host name" +msgstr "Nome del computer" + +#: ../lib/modules/posixAccount.inc:122 +msgid "Host name already exists!" +msgstr "Il nome del computer esiste già!" + +#: ../lib/modules/windowsHost.inc:131 ../lib/modules/windowsHost.inc:132 +#: ../lib/modules/posixAccount.inc:116 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/nisnetgroup.inc:153 +msgid "" +"Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "Il nome del computer contiene dei caratteri non validi. I caratteri ammessi sono: a-z, A-Z, 0-9 e .-_ !" + +#: ../lib/modules/posixAccount.inc:118 +msgid "Host name in use. Selected next free host name." +msgstr "Il nome del computer è già stato utilizzato. Selezionato il prossimo nome libero." + +#: ../lib/modules/sambaSamAccount.inc:1093 +msgid "Host name must end with $!" +msgstr "Il nome del computer deve finire con $!" + +#: ../lib/modules/account.inc:92 ../lib/modules/posixAccount.inc:545 +msgid "" +"Host name of the host which should be created. Valid characters are: " +"a-z,A-Z,0-9, .-_$. Host names are always ending with $. If last character is" +" not $ it will be added. If host name is already used host name will be " +"expanded with a number. The next free number will be used." +msgstr "Nome del computer che deve essere creato. I caratteri ammessi sono: a-z,A-Z, 0-9, .-_$. I nomi dei computer terminano sempre con $. Se l'ultimo carattere non è $ esso verrà aggiunto. Se il nome del computer è già utilizzato verrà esteso con un numero in fondo. Sarà utilizzato il prossimo numero libero." + +#: ../lib/types/host.inc:53 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:96 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:227 ../lib/modules/sudoRole.inc:78 +#: ../lib/modules/sudoRole.inc:103 ../lib/modules/sudoRole.inc:165 +#: ../lib/modules/sudoRole.inc:217 ../lib/modules/sudoRole.inc:229 +#: ../lib/modules/sudoRole.inc:343 ../lib/modules/sudoRole.inc:807 +#: ../lib/modules/fixed_ip.inc:80 ../lib/modules/hostObject.inc:69 +#: ../lib/modules/hostObject.inc:79 +msgid "Hosts" +msgstr "Computer" + +#: ../lib/modules/qmailUser.inc:352 +msgid "I am out of office." +msgstr "Sono fuori ufficio." + +#: ../lib/modules/posixGroup.inc:602 ../lib/modules/posixAccount.inc:106 +#: ../lib/modules/posixAccount.inc:1169 +msgid "ID is already in use" +msgstr "L'ID è già stato utilizzato" + +#: ../lib/modules/posixGroup.inc:600 ../lib/modules/posixGroup.inc:601 +#: ../lib/modules/posixGroup.inc:602 ../lib/modules/posixGroup.inc:724 +#: ../lib/modules/posixAccount.inc:104 ../lib/modules/posixAccount.inc:105 +#: ../lib/modules/posixAccount.inc:106 ../lib/modules/posixAccount.inc:1160 +#: ../lib/modules/posixAccount.inc:1165 ../lib/modules/posixAccount.inc:1169 +msgid "ID-Number" +msgstr "Numero-ID" + +#: ../lib/modules/zarafaUser.inc:299 ../lib/modules/zarafaUser.inc:642 +#: ../lib/modules/zarafaUser.inc:1331 +msgid "IMAP" +msgstr "IMAP" + +#: ../lib/modules/imapAccess.inc:86 ../lib/modules/imapAccess.inc:124 +msgid "IMAP admin user" +msgstr "Utente amministratore IMAP" + +#: ../lib/modules/imapAccess.inc:89 ../lib/modules/imapAccess.inc:131 +msgid "IMAP password input" +msgstr "Input password IMAP" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ipHost.inc:55 +#: ../lib/modules/ipHost.inc:65 ../lib/modules/ipHost.inc:128 +#: ../lib/modules/asteriskAccount.inc:227 +#: ../lib/modules/asteriskAccount.inc:295 +#: ../lib/modules/asteriskAccount.inc:522 +#: ../lib/modules/asteriskAccount.inc:746 +#: ../lib/modules/asteriskAccount.inc:1011 +#: ../lib/modules/asteriskAccount.inc:1291 ../lib/modules/bindDLZ.inc:85 +#: ../lib/modules/bindDLZ.inc:89 ../lib/modules/bindDLZ.inc:248 +#: ../lib/modules/bindDLZ.inc:488 ../lib/modules/bindDLZ.inc:645 +#: ../lib/modules/bindDLZ.inc:1472 ../lib/modules/freeRadius.inc:84 +#: ../lib/modules/freeRadius.inc:122 ../lib/modules/freeRadius.inc:193 +#: ../lib/modules/freeRadius.inc:225 ../lib/modules/freeRadius.inc:281 +#: ../lib/modules/freeRadius.inc:537 ../lib/modules/fixed_ip.inc:106 +#: ../lib/modules/fixed_ip.inc:421 ../lib/modules/fixed_ip.inc:741 +msgid "IP address" +msgstr "Indirizzo IP" + +#: ../lib/modules/ddns.inc:98 ../lib/modules/ddns.inc:112 +#: ../lib/modules/ddns.inc:121 ../lib/modules/ddns.inc:381 +#: ../lib/modules/ddns.inc:424 +msgid "IP address of the DNS server" +msgstr "Indirizzo IP del server DNS" + +#: ../lib/modules/asteriskAccount.inc:228 +msgid "IP address of the peer. Valid only for realtime peers." +msgstr "Indirizzo IP del peer. Valido solo per i peer realtime." + +#: ../lib/modules/asteriskAccount.inc:236 +msgid "IP address or domain name of the registration server." +msgstr "Indirizzo IP o nome di dominio del server di registrazione." + +#: ../lib/modules/ipHost.inc:69 ../lib/modules/ipHost.inc:84 +#: ../lib/modules/ipHost.inc:104 ../lib/modules/ipHost.inc:251 +msgid "IP addresses" +msgstr "Indirizzi IP" + +#: ../lib/modules/bindDLZ.inc:642 +msgid "IP addresses (\"A/AAAA\" records)" +msgstr "Indirizzi IP " + +#: ../lib/modules/fixed_ip.inc:119 +msgid "IP list" +msgstr "Lista IP" + +#: ../lib/modules/customFields.inc:514 +msgid "Icon" +msgstr "Icona" + +#: ../lib/modules/passwordSelfReset.inc:144 +#: ../lib/modules/passwordSelfReset.inc:506 +msgid "Identification method" +msgstr "Metodo di identificazione" + +#: ../templates/masscreate.php:298 ../templates/masscreate.php:372 +msgid "Identifier" +msgstr "Identificativo" + +#: ../lib/modules/sambaSamAccount.inc:238 +#: ../lib/modules/sambaSamAccount.inc:1527 +#: ../lib/modules/sambaSamAccount.inc:1928 +msgid "Idle time limit" +msgstr "Tempo massimo di inattività" + +#: ../lib/modules/freeRadius.inc:108 ../lib/modules/freeRadius.inc:132 +#: ../lib/modules/freeRadius.inc:157 ../lib/modules/freeRadius.inc:217 +#: ../lib/modules/freeRadius.inc:240 ../lib/modules/freeRadius.inc:289 +#: ../lib/modules/freeRadius.inc:541 +msgid "Idle timeout" +msgstr "Timeout di inattività" + +#: ../lib/modules/qmailUser.inc:256 +msgid "" +"If account status is set to deleted, the earliest date when the mail message" +" store including all remaining content will be deleted from the filesystem." +msgstr "Se lo stato di un account è impostato su cancellato, la prima data in cui the earliest date when the mail message store including all remaining content will be deleted from the filesystem." + +#: ../lib/modules/customFields.inc:177 +msgid "" +"If activated then LAM will show an accordion view if there is more than one " +"group per account type." +msgstr "Se attivato, LAM mostrerà una vista a fisarmonica se c'è più di un gruppo per tipo di account." + +#: ../lib/modules/ppolicyUser.inc:60 +msgid "" +"If activated then the user is forced to change his password at the next " +"login." +msgstr "Se attivata l'utente sarà forzato a cambiare la sua password al prossimo login." + +#: ../lib/modules/sambaSamAccount.inc:268 +msgid "If checked Unix password will also be used as Samba password." +msgstr "Se selezionato la password unix sarà utilizzata anche come password Samba." + +#: ../lib/modules/posixAccount.inc:527 +msgid "" +"If checked account will be deactivated by putting a \"!\" before the " +"encrypted password." +msgstr "Se selezionato l'account sarà disabilitato inserendo un \"!\" prima della password crittografata." + +#: ../lib/modules/sambaSamAccount.inc:274 +msgid "If checked no password will be used." +msgstr "Se selezionato non sarà utilizzata nessuna password." + +#: ../lib/modules/windowsUser.inc:199 +msgid "If checked password does not expire." +msgstr "Se contrassegnato la password non scadrà." + +#: ../lib/modules/sambaSamAccount.inc:280 +msgid "If checked password does not expire. (Setting X-Flag)" +msgstr "Se selezionato la password non ha una data di scadenza (Viene impostato il flag X)" + +#: ../lib/modules/windowsUser.inc:196 +msgid "" +"If checked then the account is locked. You may only unlock accounts but not " +"lock them." +msgstr "Se contrassegnato l'account è bloccato. E' possibile solo sbloccare gli account, ma non bloccarli." + +#: ../lib/modules/windowsUser.inc:193 +msgid "If checked then the account will be deactivated." +msgstr "Se contrassegnato l'account sarà disattivato." + +#: ../lib/modules/sambaSamAccount.inc:286 +msgid "If checked then the account will be deactivated. (Setting D-Flag)" +msgstr "Se selezionato l'account sarà disattivato. (Viene impostato il flag D)" + +#: ../lib/modules/sambaSamAccount.inc:289 +msgid "" +"If checked then the account will be locked (setting L-Flag). You usually " +"want to use this setting to unlock user accounts which were locked because " +"of failed login attempts." +msgstr "Se selezionato l'account sarà bloccato. (Viene impostato il flag L). Di solito si usa questa opzione per sbloccare degli account utente che sono stati bloccati per tentativi di login falliti." + +#: ../help/help.inc:177 +msgid "" +"If checked then the user will not be able to create new entries of this " +"account type." +msgstr "Se contrassegnato l'utente non sarà in grado di creare nuove voci di questo tipo di account." + +#: ../help/help.inc:179 +msgid "" +"If checked then the user will not be able to delete entries of this account " +"type." +msgstr "Se contrassegnato l'utente non sarà in grado di cancellare le voci di questo tipo di account." + +#: ../lib/modules/posixGroup.inc:481 +msgid "" +"If empty GID number will be generated automaticly depending on your " +"configuration settings." +msgstr "Se lasciato vuoto il GID sarà generato automaticamente a seconda delle vostre impostazioni di configurazione." + +#: ../lib/modules/qmailUser.inc:236 +msgid "If empty GID number will be generated automaticly." +msgstr "Se vuoto il numero GID verrà generato automaticamente." + +#: ../lib/modules/qmailUser.inc:232 ../lib/modules/posixAccount.inc:462 +msgid "If empty UID number will be generated automaticly." +msgstr "Se lasciato vuoto l'UID sarà generato automaticamente." + +#: ../lib/modules/ppolicy.inc:125 +msgid "" +"If enabled the user will not be allowed to login after there have been a " +"specified number of consecutive failed login attempts." +msgstr "Se abilitata all'utente non sarà consentito l'accesso dopo uno specificato numero di tentativi consecutivi di accesso falliti." + +#: ../help/help.inc:127 +msgid "" +"If enabled then LAM will use user and password that is provided by the web " +"server via HTTP authentication." +msgstr "Se abilitato LAM userà l'utente e la password fornita dal web server mediante l'autenticazione HTTP." + +#: ../help/help.inc:104 +msgid "" +"If enabled then the default language will be enforced and cannot be chosen " +"by the user." +msgstr "Se abilitato, la lingua predefinita sarà forzata e non potrà essere scelta dall'utente." + +#: ../lib/modules/ppolicy.inc:129 +msgid "" +"If enabled users must change their passwords when they first login after a " +"password is set or reset by the administrator." +msgstr "Se abilitata l'utente dovrà cambiare la password al primo accesso, dopo che la password è stata impostata o resettata dall'amministratore." + +#: ../lib/modules/asteriskAccount.inc:216 +msgid "" +"If registration context is specified, Asterisk will dynamically create and " +"destroy a NoOp priority 1 extension for a given peer who registers or " +"unregisters with Asterisk." +msgstr "Se il contesto di registrazione è specificato, Asterisk creerà e distruggerà dinamicamente una priorità NoOp estensione 1 per un peer dato che si registra o rimuove con Asterisk." + +#: ../lib/modules/sambaDomain.inc:110 +msgid "If set then users need to login to change their password." +msgstr "Se selezionato l'utente deve effettuare il login per cambiare la password." + +#: ../lib/modules/sambaSamAccount.inc:271 +msgid "If set to \"true\" Unix password will also be used as Samba password." +msgstr "Se impostato a \"vero\" la password Unix sarà utilizzata anche come password Samba." + +#: ../lib/modules/sambaSamAccount.inc:292 +msgid "If set to \"true\" account will be deactivated. (Setting D-Flag)" +msgstr "Se impostato a \"vero\" l'account sarà disabilitato. (Viene impostato il flag D)" + +#: ../lib/modules/sambaSamAccount.inc:277 +msgid "If set to \"true\" no password will be used." +msgstr "Se impostato a \"vero\" non sarà utilizzata nessuna password." + +#: ../lib/modules/sambaSamAccount.inc:283 +msgid "If set to \"true\" password does not expire. (Setting X-Flag)" +msgstr "Se impostato a \"vero\" la password non ha una data di scadenza (Viene impostato il flag X)" + +#: ../lib/modules/qmailGroup.inc:197 +msgid "" +"If set to true then all incomming mails needs to come from a member of the " +"list." +msgstr "Se impostato a true, tutte le email in arrivo dovranno provenire da un membro della lista." + +#: ../lib/modules/customFields.inc:125 +msgid "" +"If the LDAP attribute has no value then the checkbox is set to this value." +msgstr "Se l'attributo LDAP non ha valore allora la checkbox è impostata a questo valore." + +#: ../lib/modules/zarafaUser.inc:97 +msgid "" +"If the mailbox size reaches the soft quota limit, the user will not be able " +"to send email until the size of the mailbox is reduced." +msgstr "Se la dimensione della mailbox raggiunge il limite della quota soft, l'utente non sarà in grado di inviare email finché la dimensione della mailbox non sarà ridotta." + +#: ../lib/modules/passwordSelfReset.inc:149 +msgid "" +"If the user has a Samba 3 extension then the Samba password will also be " +"set. Otherwise, no action is taken." +msgstr "Se l'utente ha un estensione Samba 3 allora anche la password Samba verrà impostata. Altrimenti non verrà intrapresa alcuna azione." + +#: ../lib/modules/windowsUser.inc:145 ../lib/modules/windowsUser.inc:149 +msgid "If the user has multiple telephone numbers then please enter it here." +msgstr "Se l'utente possiede molti numeri di telefono, immetteteli qui." + +#: ../lib/modules/pykotaPrinter.inc:120 ../lib/modules/pykotaPrinter.inc:124 +msgid "" +"If this entry should be a printer group then you can set the member names " +"here." +msgstr "Se questa voce sarà un gruppo stampante, si potranno specificare i membri qui. " + +#: ../lib/modules/qmailGroup.inc:229 +msgid "" +"If this is set to true then an incomming mail needs to be approved by the " +"sender." +msgstr "Se è impostato a true allora un messaggio di posta in arrivo deve essere approvato da parte del mittente." + +#: ../lib/modules/qmailGroup.inc:144 ../lib/modules/qmailGroup.inc:148 +msgid "" +"If you enter one or more email addresses then mail delivery errors are " +"forwarded to these addresses instead of the sender of the original mail." +msgstr "Se immettete uno o più indirizzi email, gli errori di spedizione saranno notificati a questi indirizzi invece che al mittente originale dell'email." + +#: ../lib/modules/sambaSamAccount.inc:331 +msgid "" +"If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "Se lasciato vuoto LAM utilizzerà: uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../lib/modules/zarafaServer.inc:85 +msgid "" +"If you run Zarafa behind a reverse proxy then you can specify the server URL" +" here (e.g. \"https://zproxy.example.com:237/z1\")." +msgstr "Se eseguite Zarafa dietro ad un proxy reverso allora potete specificare qui l'URL del server (es. \"https://zproxy.example.com:237/z1\")." + +#: ../lib/modules/passwordSelfReset.inc:141 +msgid "" +"If you select this option then the user is only authenticated by his email " +"address. LAM Pro will not ask for the answer to the security question. " +"Please handle with care." +msgstr "Se selezionate questa opzione l'utente sarà autenticato mediante il suo indirizzo email. LAM Pro non chiederà una risposta alla domanda di sicurezza. Gestite questa opzione con attenzione." + +#: ../lib/modules/heimdalKerberos.inc:131 +msgid "If you set this option then the user cannot request TGT-based tickets." +msgstr "Se impostate questa opzione, l'utente non potrà richiedere ticket basati su TGT." + +#: ../lib/modules/mitKerberos.inc:175 ../lib/modules/heimdalKerberos.inc:149 +msgid "If you set this option then the user cannot request any tickets." +msgstr "Se impostate questa opzione l'utente non potrà richiedere alcun ticket." + +#: ../lib/modules/mitKerberos.inc:163 ../lib/modules/heimdalKerberos.inc:134 +msgid "" +"If you set this option then the user cannot request forwardable tickets." +msgstr "Se impostate questa opzione l'utente non potrà richiedere tickets inoltrabili." + +#: ../lib/modules/mitKerberos.inc:160 ../lib/modules/heimdalKerberos.inc:143 +msgid "" +"If you set this option then the user cannot request post-dated tickets." +msgstr "Se impostate questa opzione l'utente non potrà richiedere tickets post-datati." + +#: ../lib/modules/mitKerberos.inc:169 ../lib/modules/heimdalKerberos.inc:137 +msgid "If you set this option then the user cannot request proxiable tickets." +msgstr "Se impostate questa opzione l'utente non potrà richiedere tickets proxabili." + +#: ../lib/modules/mitKerberos.inc:166 ../lib/modules/heimdalKerberos.inc:140 +msgid "If you set this option then the user cannot request renewable tickets." +msgstr "Se impostate questa opzione l'utente non potrà richiedere tickets rinnovabili." + +#: ../lib/modules/mitKerberos.inc:187 ../lib/modules/heimdalKerberos.inc:146 +msgid "If you set this option then the user cannot request service tickets." +msgstr "Se impostate questa opzione l'utente non potrà richiedere tickets di servizio." + +#: ../lib/modules/mitKerberos.inc:184 ../lib/modules/sambaSamAccount.inc:295 +#: ../lib/modules/windowsUser.inc:215 ../lib/modules/heimdalKerberos.inc:128 +#: ../help/help.inc:207 +msgid "" +"If you set this option then the user has to change his password at the next " +"login." +msgstr "Se viene impostata questa opzione l'utente dovrà cambiare la sua password al prossimo login." + +#: ../lib/modules/mitKerberos.inc:181 +msgid "" +"If you set this option then the user must preauthenticate himself using a " +"hardware device." +msgstr "Se questa opzione è impostata, sarà necessario che l'utente si pre-autentichi per utilizzare un dispositivo hardware." + +#: ../lib/modules/mitKerberos.inc:178 ../lib/modules/heimdalKerberos.inc:152 +msgid "If you set this option then the user must preauthenticate himself." +msgstr "Se impostate questa opzione l'utente dovrà pre-autenticarsi." + +#: ../lib/modules/mitKerberos.inc:190 ../lib/modules/heimdalKerberos.inc:155 +msgid "" +"If you set this option then this account is marked as password change " +"service." +msgstr "Se impostate questa opzione questo utente sarà marcato come servizio di cambio password." + +#: ../lib/modules/selfRegistration.inc:87 +msgid "" +"If you use the object class \"inetOrgPerson\" and do not provide the \"cn\" " +"attribute then LAM will set it to the user name value." +msgstr "Se usate la classe di oggetti \"inetOrgPerson\" e non fornit l'attributo \"cn\" LAM lo imposterà al valore user name." + +#: ../help/help.inc:106 +msgid "" +"If you want to change the current preferences password, please enter it " +"here." +msgstr "Se desiderate cambiare la password corrente per le impostazioni, inserirla qui." + +#: ../help/help.inc:141 +msgid "" +"If you want to change your master configuration password, please enter it " +"here." +msgstr "Se desiderate cambiare la password principale di configurazione, inserirla qui." + +#: ../lib/modules/sambaGroupMapping.inc:151 +msgid "If you want to use a well known RID you can select a well known group." +msgstr "Se volete utilizzare un RID ben conosciuto, potete selezionare un gruppo ben conosciuto." + +#: ../help/help.inc:116 +msgid "" +"If your server runs on another port then add a comma and the port number " +"after the server." +msgstr "Se il vostro server lavora su un'altra porta allora aggiungete una virgola e il numero della porta dopo il server." + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:49 +msgid "Image not available" +msgstr "Immagine non disponibile" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:292 +#: ../templates/3rdParty/pla/htdocs/import.php:45 +#: ../templates/3rdParty/pla/htdocs/import_form.php:19 +msgid "Import" +msgstr "Importa" + +#: ../templates/pdfedit/pdfmain.php:215 ../templates/pdfedit/pdfmain.php:216 +#: ../help/help.inc:210 +msgid "Import PDF structures" +msgstr "Importa strutture PDF" + +#: ../templates/config/mainmanage.php:344 +msgid "Import from server" +msgstr "Importa dal server" + +#: ../templates/profedit/profilemain.php:203 +#: ../templates/profedit/profilemain.php:204 ../help/help.inc:192 +msgid "Import profiles" +msgstr "Importa profili" + +#: ../templates/pdfedit/pdfmain.php:109 +#: ../templates/profedit/profilemain.php:124 +msgid "Import successful" +msgstr "Importazione effettuata con successo" + +#: ../templates/config/mainmanage.php:189 +msgid "Imported certificate from server." +msgstr "Importa certificati dal server." + +#: ../templates/config/mainmanage.php:346 +msgid "Imports the certificate directly from your LDAP server." +msgstr "Importa i certificati direttamente dal tuo server LDAP." + +#: ../lib/modules/pykotaPrinter.inc:108 +msgid "" +"In passthrough mode, users are allowed to print without any impact on their " +"quota or account balance." +msgstr "In modalità passthrough, gli utenti avranno il permesso di stampare senza impattare la loro quota o bilancio dell'acount." + +#: ../lib/modules/fixed_ip.inc:115 +msgid "" +"Inactive hosts will not be able to get an address from the DHCP server." +msgstr "Gli hosts inattivi non saranno in grado di ottenere un indirizzo dal server DHCP." + +#: ../templates/3rdParty/pla/htdocs/export_form.php:87 +msgid "Include system attributes" +msgstr "Includi gli attributi di sistema" + +#: ../lib/tools/serverInfo.inc:53 +msgid "Information about the LDAP server." +msgstr "Informazioni sul server LDAP." + +#: ../lib/modules/sambaSamAccount.inc:233 +#: ../lib/modules/sambaSamAccount.inc:360 +#: ../lib/modules/sambaSamAccount.inc:1513 +#: ../lib/modules/sambaSamAccount.inc:1923 +msgid "Inherit client startup configuration" +msgstr "Eredita la configurazione iniziale del client" + +#: ../templates/schema/schema.php:396 ../templates/schema/schema.php:417 +msgid "Inherited from" +msgstr "Ereditato da" + +#: ../templates/schema/schema.php:157 ../templates/schema/schema.php:353 +msgid "Inherits from" +msgstr "Eredita da" + +#: ../lib/modules/pykotaUser.inc:249 +msgid "Initial payment" +msgstr "Pagamento iniziale" + +#: ../lib/modules/sambaSamAccount.inc:234 +#: ../lib/modules/sambaSamAccount.inc:363 +#: ../lib/modules/sambaSamAccount.inc:1515 +#: ../lib/modules/sambaSamAccount.inc:1924 +msgid "Initial program" +msgstr "Programma iniziale" + +#: ../lib/modules/windowsUser.inc:132 ../lib/modules/windowsUser.inc:302 +#: ../lib/modules/windowsUser.inc:503 ../lib/modules/windowsUser.inc:704 +#: ../lib/modules/windowsUser.inc:1591 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:172 ../lib/modules/inetOrgPerson.inc:321 +#: ../lib/modules/inetOrgPerson.inc:617 ../lib/modules/inetOrgPerson.inc:836 +#: ../lib/modules/inetOrgPerson.inc:1187 ../lib/modules/inetOrgPerson.inc:1190 +#: ../lib/modules/inetOrgPerson.inc:1917 ../lib/modules/inetOrgPerson.inc:2681 +#: ../lib/modules/inetOrgPerson.inc:3557 ../lib/modules/inetOrgPerson.inc:3589 +msgid "Initials" +msgstr "Iniziali" + +#: ../templates/serverInfo.php:282 ../templates/serverInfo.php:368 +msgid "Initiated" +msgstr "Iniziato" + +#: ../lib/modules/quota.inc:57 ../lib/modules/systemQuotas.inc:105 +msgid "Inode hard quota" +msgstr "Hard quota inode" + +#: ../lib/modules/quota.inc:57 ../lib/modules/quota.inc:58 +#: ../lib/modules/systemQuotas.inc:105 ../lib/modules/systemQuotas.inc:106 +msgid "" +"Inode hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "La hard quota degli inode contiene dei caratteri non validi. Sono amessi solo numeri naturali." + +#: ../lib/modules/quota.inc:61 ../lib/modules/systemQuotas.inc:109 +msgid "Inode quota" +msgstr "Quota degli inode" + +#: ../lib/modules/quota.inc:55 ../lib/modules/systemQuotas.inc:103 +msgid "Inode soft quota" +msgstr "Soft quota degli inode" + +#: ../lib/modules/quota.inc:55 ../lib/modules/quota.inc:56 +#: ../lib/modules/systemQuotas.inc:103 ../lib/modules/systemQuotas.inc:104 +msgid "" +"Inode soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "La soft quota degli inode contiene dei caratteri non validi. Sono ammessi solo numeri naturali." + +#: ../lib/modules/quota.inc:61 ../lib/modules/quota.inc:62 +#: ../lib/modules/systemQuotas.inc:109 ../lib/modules/systemQuotas.inc:110 +msgid "Inode soft quota must be smaller than inode hard quota." +msgstr "La soft quota degli inode deve essere più piccola della hard quota degli inode." + +#: ../templates/selfService/adminMain.php:685 +msgid "Input fields" +msgstr "Campi di inserimento dati" + +#: ../lib/modules/asteriskAccount.inc:155 +#: ../lib/modules/asteriskAccount.inc:277 +#: ../lib/modules/asteriskAccount.inc:391 +#: ../lib/modules/asteriskAccount.inc:652 +#: ../lib/modules/asteriskAccount.inc:993 +#: ../lib/modules/asteriskAccount.inc:1255 +msgid "Insecure" +msgstr "Non sicura" + +#: ../lib/modules/sambaSamAccount.inc:95 +msgid "Inserted user or group name in home path." +msgstr "Inserito il nome dell'utente o del gruppo nel percorso della home." + +#: ../lib/modules/sambaSamAccount.inc:101 +msgid "Inserted user or group name in logon script." +msgstr "Inserito il nome dell'utente o del gruppo nello script di logon." + +#: ../lib/modules/sambaSamAccount.inc:98 +msgid "Inserted user or group name in profile path." +msgstr "Inserito il nome dell'utente o del gruppo nel percorso del profilo." + +#: ../lib/modules/fixed_ip.inc:475 +msgid "Invalid MAC address." +msgstr "Indirizzo MAC non valido." + +#: ../templates/massBuildAccounts.php:201 +msgid "Invalid RDN attribute!" +msgstr "Attributo RDN non valido!" + +#: ../templates/3rdParty/pla/htdocs/rename.php:42 +msgid "Invalid RDN value" +msgstr "Valore RDN non valido" + +#: ../lib/modules/fixed_ip.inc:484 +msgid "Invalid description." +msgstr "Descrizione non valida." + +#: ../templates/3rdParty/pla/lib/import_functions.php:560 +msgid "Invalid entry" +msgstr "Oggetto non valido" + +#: ../lib/modules/selfRegistration.inc:121 +msgid "Invalid format for the specification of additional attributes." +msgstr "Formato non valido per la specificazione di attributi aggiuntivi." + +#: ../lib/modules/imapAccess.inc:185 +msgid "Invalid password for IMAP admin or other problem occured." +msgstr "Password non valida per l'amministratore IMAP o si è incorsi in un altro problema." + +#: ../lib/modules/ldapPublicKey.inc:546 ../lib/modules/inetOrgPerson.inc:3287 +#: ../lib/modules/customFields.inc:1403 +msgid "Invalid request" +msgstr "Richiesta non valida" + +#: ../templates/config/mainmanage.php:198 +msgid "Invalid server name. Please enter \"server\" or \"server:port\"." +msgstr "Nome del server non valido. Immettere \"server\" o \"server:porta\"." + +#: ../lib/modules/passwordSelfReset.inc:914 +#: ../lib/modules/passwordSelfReset.inc:1136 +#, php-format +msgid "Invalid value in field \"%s\"." +msgstr "Valore non valido nel campo \"%s\"." + +#: ../lib/modules/kolabUser.inc:117 ../lib/modules/kolabUser.inc:124 +#: ../lib/modules/kolabUser.inc:186 ../lib/modules/kolabUser.inc:230 +#: ../lib/modules/kolabUser.inc:315 ../lib/modules/kolabUser.inc:756 +#: ../lib/modules/kolabUser.inc:885 +msgid "Invitation policy" +msgstr "Policy di invito" + +#: ../lib/modules/kolabUser.inc:128 +msgid "Invitation policy list" +msgstr "Lista delle policy di invito" + +#: ../lib/modules/sambaSamAccount.inc:569 +msgid "Islamabad, Karachi" +msgstr "Islamabad, Karachi" + +#: ../lib/modules/range.inc:116 +msgid "It is not possible to delete all ranges." +msgstr "Non è possibile cancellare tutti gli intervalli." + +#: ../lib/modules/posixGroup.inc:600 ../lib/modules/posixAccount.inc:105 +msgid "" +"It is possible that this ID-number is reused. This can cause several " +"problems because files with old permissions might still exist. To avoid this" +" warning set maxUID to a higher value." +msgstr "è possibile che questo ID venga riutilizzato. Questo può causare diversi problemi perchè potrebbero esistere ancora dei file i vecchi permessi. Per evitare questo impostare maxUID ad un valore più alto." + +#: ../lib/modules/pykotaUser.inc:284 ../lib/modules/pykotaUser.inc:387 +#: ../lib/modules/pykotaUser.inc:1021 +msgid "Job history" +msgstr "Storia dei lavori" + +#: ../lib/modules/pykotaUser.inc:156 ../lib/modules/pykotaUser.inc:289 +#: ../lib/modules/pykotaUser.inc:295 ../lib/modules/pykotaUser.inc:327 +msgid "Job suffix" +msgstr "Suffisso dei lavori" + +#: ../lib/modules/inetOrgPerson.inc:89 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:226 ../lib/modules/inetOrgPerson.inc:337 +#: ../lib/modules/inetOrgPerson.inc:590 ../lib/modules/inetOrgPerson.inc:636 +#: ../lib/modules/inetOrgPerson.inc:640 ../lib/modules/inetOrgPerson.inc:1438 +#: ../lib/modules/inetOrgPerson.inc:1441 ../lib/modules/inetOrgPerson.inc:1891 +#: ../lib/modules/inetOrgPerson.inc:2692 ../lib/modules/inetOrgPerson.inc:3539 +#: ../lib/modules/inetOrgPerson.inc:3585 +msgid "Job title" +msgstr "Titolo di lavoro" + +#: ../lib/modules/inetOrgPerson.inc:637 ../lib/modules/inetOrgPerson.inc:641 +msgid "Job title of user: President, department manager, ..." +msgstr "Titolo di lavoro dell'utente: presidente, direttore di dipartimento, ..." + +#: ../lib/lists.inc:297 +msgid "Jump 10 pages backward" +msgstr "Salta indietro di 10 pagine" + +#: ../lib/lists.inc:317 +msgid "Jump 10 pages forward" +msgstr "Salta 10 pagine avanti" + +#: ../templates/schema/schema.php:255 +msgid "Jump to a matching rule" +msgstr "Vai ad una regola corrispondente" + +#: ../templates/schema/schema.php:114 +msgid "Jump to an attribute type" +msgstr "Vai ad un tipo di attributo" + +#: ../templates/schema/schema.php:308 ../templates/schema/schema.php:358 +#: ../templates/schema/schema.php:373 +msgid "Jump to an object class" +msgstr "Vai ad una classe di oggetti" + +#: ../lib/lists.inc:292 +msgid "Jump to first page" +msgstr "Salta alla prima pagina" + +#: ../lib/lists.inc:322 +msgid "Jump to last page" +msgstr "Salta all'ultima pagina" + +#: ../lib/modules/mitKerberos.inc:94 ../lib/modules/heimdalKerberos.inc:81 +msgid "Kerberos" +msgstr "Kerberos" + +#: ../lib/modules/kolabGroup.inc:74 ../lib/modules/kolabUser.inc:80 +msgid "Kolab" +msgstr "Kolab" + +#: ../lib/modules/kolabSharedFolder.inc:82 +msgid "Kolab shared folder" +msgstr "Cartella condivisa Kolab" + +#: ../lib/types/kolabSharedFolderType.inc:53 +msgid "Kolab shared folders" +msgstr "Cartelle condivise Kolab" + +#: ../lib/types/kolabSharedFolderType.inc:62 +msgid "Kolab shared folders (e.g. mail folders)" +msgstr "Cartelle condivise Kolab (es. cartelle email)" + +#: ../lib/modules/posixGroup.inc:517 +msgid "" +"LAM checks if the entered group name and GID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique group names or " +"GIDs." +msgstr "LAM verifica se il nome del gruppo immesso ed il GID sono unici. Qui è possibile inserire il suffisso LDAP utilizzato per cercare i duplicati. Per impostazione predefinita vengono utilizzati tipo di account suffisso. E' necessario cambiare questi valori se utilizzate profili di server multipli con differenti OU ma vi occorrono nomi di gruppi o GID unici." + +#: ../lib/modules/posixAccount.inc:490 +msgid "" +"LAM checks if the entered user name and UID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique user names or " +"UIDs." +msgstr "LAM verifica se il nome utente immesso e l'UID sono unici. Qui è possibile inserire il suffisso LDAP utilizzato per cercare i duplicati. Per impostazione predefinita vengono utilizzati tipo di account suffisso. E' necessario cambiare questi valori se utilizzate profili di server multipli con differenti OU ma vi occorrono nomi utente o UID unici." + +#: ../templates/login.php:265 ../templates/config/index.php:85 +msgid "LAM configuration" +msgstr "Configurazione di LAM" + +#: ../templates/massBuildAccounts.php:239 +msgid "LAM has checked your input and is now ready to create the accounts." +msgstr "LAM ha controllato i vostri dati ed è ora pronto per creare gli account." + +#: ../lib/modules/posixGroup.inc:505 ../lib/modules/posixAccount.inc:458 +#: ../lib/modules/inetOrgPerson.inc:813 ../lib/modules/customFields.inc:137 +msgid "" +"LAM supports CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 and SMD5 to generate the " +"hash value of passwords. SSHA and CRYPT are the most common but CRYPT does " +"not support passwords greater than 8 letters. We do not recommend to use " +"plain text passwords." +msgstr "LAM supporta CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 ed SMD5 per generare i valori di hash delle password. SSHA e CRYPT sono i più comuni ma CRYPT non supporta password più grandi di 8 lettere. Vi raccomandiamo di non utilizzare password in chiaro." + +#: ../templates/tests/index.php:50 +msgid "LAM tests" +msgstr "Verifiche sul funzionamento di LAM" + +#: ../lib/modules/imapAccess.inc:128 +msgid "LAM user password" +msgstr "Password utente LAM" + +#: ../templates/massDoUpload.php:132 +#, php-format +msgid "LAM was unable to create account %s! An LDAP error occured." +msgstr "LAM non è stato in grado di creare l'account %s! Si è verificato un errore LDAP." + +#: ../lib/modules/sambaGroupMapping.inc:603 +msgid "LAM was unable to find a Samba 3 domain with this name!" +msgstr "LAM non è riuscito a trovare un dominio Samba 3 con questo nome!" + +#: ../lib/modules/sambaSamAccount.inc:118 +msgid "LAM was unable to find a domain with this name!" +msgstr "LAM non è riuscito a trovare un dominio con questo nome!" + +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/windowsUser.inc:1449 +msgid "LAM was unable to find a group with this name!" +msgstr "LAM non è riuscito a trovare un gruppo con questo nome!" + +#: ../lib/modules/posixAccount.inc:2330 ../lib/modules/posixAccount.inc:2391 +#: ../lib/modules/windowsUser.inc:1535 ../lib/modules/groupOfNamesUser.inc:454 +#, php-format +msgid "LAM was unable to modify group memberships for group: %s" +msgstr "LAM non è riuscito a modificare l'appartenenza al gruppo per il gruppo: %s" + +#: ../lib/modules/organizationalRoleUser.inc:397 +#, php-format +msgid "LAM was unable to modify memberships for role: %s" +msgstr "LAM non è in grado di modificare l'appartenenza per il ruolo: %s" + +#: ../lib/modules/posixGroup.inc:521 ../lib/modules/posixAccount.inc:498 +msgid "" +"LAM will automatically suggest UID/GID numbers. You can either use a fixed " +"range of numbers or an LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "LAM suggerirà automaticamente numeri UID/GID. E' possibile utilizzare sia una gamma fissa di numeri o una voce LDAP con object class \"sambaUnixIdPool\"." + +#: ../help/help.inc:219 +msgid "LAM will search for accounts in this part of the LDAP tree." +msgstr "LAM cercherà gli account in questa porzione dell'albero LDAP." + +#: ../lib/modules/posixAccount.inc:437 +msgid "" +"LAM will suggest a user name based on e.g. first and last name. Here you can" +" specify the suggestion. %sn% will be replaced by the last name. @givenname@" +" will be replaced by the first character of first name. Only attributes of " +"tab Personal may be used." +msgstr "LAM suggerirà un user name basato su es. nome e cognome. Qui è possibile specificare il\nsuggerimento. %sn% wsarà sostituito dal cognome. @givenname@ sarà sostituito dal primo carattere del nome. Possono essere utilizzati solo gli attributi della sezione Personale." + +#: ../help/help.inc:221 +msgid "" +"LAM will use this LDAP DN and password to search for accounts. It is " +"sufficient to specify an account with read rights. If nothing is inserted " +"then LAM will try to connect anonymously." +msgstr "LAM userà questo DN LDAP e questa password per cercare gli account. È sufficiente indicare un account con diritti di lettura. Se non viene inserito nulla LAM tenterà di connettersi in modo anonimo." + +#: ../lib/modules/qmailUser.inc:57 +msgid "LDAP + program" +msgstr "LDAP + programma" + +#: ../templates/config/confmodules.php:97 ../templates/config/confmain.php:127 +#: ../templates/config/moduleSettings.php:96 +#: ../templates/config/conftypes.php:115 +msgid "LDAP Account Manager Configuration" +msgstr "Configurazione di LDAP Account Manager" + +#: ../templates/multiEdit.php:198 ../templates/config/conftypes.php:386 +msgid "LDAP Suffix is invalid!" +msgstr "Il suffisso LDAP non è valido!" + +#: ../templates/serverInfo.php:182 +msgid "LDAP entries" +msgstr "Voci LDAP" + +#: ../lib/modules/qmailGroup.inc:173 ../lib/modules/qmailGroup.inc:177 +msgid "LDAP entries that are allowed to send to this list." +msgstr "Voci LDAP a cui è permesso spedire a questa lista." + +#: ../lib/modules/qmailGroup.inc:157 ../lib/modules/qmailGroup.inc:161 +msgid "LDAP entries that are member of this list." +msgstr "Voci LDAP che appartengono a questa lista." + +#: ../lib/modules/qmailGroup.inc:165 ../lib/modules/qmailGroup.inc:169 +msgid "LDAP entries that moderate this list (e.g. approve mails)." +msgstr "Voci LDAP che moderano questa lista (es. approvano email)." + +#: ../templates/login.php:642 ../lib/account.inc:1204 +msgid "LDAP error, server says:" +msgstr "Errore LDAP, il server ha risposto:" + +#: ../templates/multiEdit.php:115 ../templates/config/confmain.php:438 +#: ../help/help.inc:271 +msgid "LDAP filter" +msgstr "Filtro LDAP" + +#: ../lib/modules/qmailGroup.inc:189 ../lib/modules/qmailGroup.inc:193 +msgid "" +"LDAP filter to specify allowed senders of this list (e.g. " +"\"((objectclass=qmailUser)(employeeType=manager))\")." +msgstr "Filtro LDAP per specificare i mittenti autorizzati a questa lista (es. \"((objectclass=qmailUser)(employeeType=manager))\")." + +#: ../lib/modules/qmailGroup.inc:181 ../lib/modules/qmailGroup.inc:185 +msgid "" +"LDAP filter to specify members of this list (e.g. " +"\"((objectclass=qmailUser)(employeeType=accountant))\")." +msgstr "Filtro LDAP per specificare i membri di questa lista (es. \"((objectclass=qmailUser)(employeeType=accountant))\")." + +#: ../lib/modules.inc:1328 +msgid "LDAP operation successful." +msgstr "Operazione LDAP completata con successo." + +#: ../templates/selfService/adminMain.php:464 +msgid "LDAP password" +msgstr "Password LDAP" + +#: ../templates/3rdParty/pla/lib/functions.php:1894 +msgid "LDAP said" +msgstr "Risposta LDAP" + +#: ../templates/config/confmain.php:415 ../help/help.inc:122 +msgid "LDAP search" +msgstr "Ricerca LDAP" + +#: ../templates/selfService/adminMain.php:459 ../help/help.inc:222 +msgid "LDAP search attribute" +msgstr "Attributo di ricerca LDAP" + +#: ../lib/account.inc:796 +msgid "LDAP search failed! Please check your preferences." +msgstr "Ricerca LDAP fallita! Controllate le vostre impostazioni." + +#: ../templates/config/confmain.php:253 ../help/help.inc:124 +msgid "LDAP search limit" +msgstr "Limite di ricerca LDAP" + +#: ../templates/login.php:460 +msgid "LDAP server" +msgstr "Server LDAP" + +#: ../lib/account.inc:787 +msgid "LDAP sizelimit exceeded, not all entries are shown." +msgstr "Limite di dimensione LDAP raggiunto, non tutti i risultati saranno visualizzati." + +#: ../templates/multiEdit.php:82 ../templates/config/confmain.php:434 +#: ../templates/config/conftypes.php:252 +#: ../templates/selfService/adminMain.php:453 +#: ../templates/profedit/profilepage.php:202 ../help/help.inc:71 +#: ../help/help.inc:218 ../help/help.inc:269 +msgid "LDAP suffix" +msgstr "Suffisso LDAP" + +#: ../templates/massDoUpload.php:86 +msgid "LDAP upload in progress. Please wait." +msgstr "Caricamento LDAP in corso. Attendere." + +#: ../templates/selfService/adminMain.php:461 +msgid "LDAP user" +msgstr "Utente LDAP" + +#: ../help/help.inc:220 +msgid "LDAP user and password" +msgstr "Utente e password LDAP" + +#: ../templates/serverInfo.php:109 +msgid "LDAP version" +msgstr "Versione LDAP" + +#: ../templates/3rdParty/pla/lib/export_functions.php:442 +msgid "LDIF Export" +msgstr "Esporta LDIF" + +#: ../templates/multiEdit.php:443 +msgid "LDIF file" +msgstr "File LDIF" + +#: ../templates/3rdParty/pla/lib/import_functions.php:149 +#: ../templates/3rdParty/pla/htdocs/import.php:71 +msgid "LDIF import" +msgstr "Importa LDIF" + +#: ../templates/3rdParty/pla/lib/import_functions.php:170 +msgid "LDIF import only supports version 1" +msgstr "L'importazione LDIF supporta solo la versione 1" + +#: ../lib/modules/customFields.inc:88 ../lib/modules/customFields.inc:513 +#: ../lib/modules/customFields.inc:1051 ../lib/modules/customFields.inc:1705 +#: ../lib/modules/customFields.inc:2960 +msgid "Label" +msgstr "Etichetta" + +#: ../templates/tests/lamdaemonTest.php:201 +msgid "" +"Lamdaemon path does not end with \".pl\". Did you enter the full path to the" +" script?" +msgstr "Il percorso del lamdaemon non termina con \".pl\". E' stato immesso un percorso completo allo script?" + +#: ../templates/tests/lamdaemonTest.php:185 +msgid "Lamdaemon server and path" +msgstr "Server e percorso per Lamdaemon" + +#: ../templates/config/confmain.php:334 +msgid "Lamdaemon settings" +msgstr "Impostazioni Lamdaemon" + +#: ../templates/tests/lamdaemonTest.php:135 +msgid "Lamdaemon successfully run." +msgstr "Lamdaemon eseguito correttamente." + +#: ../templates/tests/index.php:52 ../templates/tests/lamdaemonTest.php:52 +#: ../lib/tools/tests.inc:110 +msgid "Lamdaemon test" +msgstr "Verifica di Lamdaemon" + +#: ../templates/tests/lamdaemonTest.php:291 +msgid "Lamdaemon test finished." +msgstr "Verifica di Lamdaemon completata." + +#: ../templates/tests/lamdaemonTest.php:273 +msgid "Lamdaemon version" +msgstr "Versione Lamdaemon" + +#: ../templates/tests/lamdaemonTest.php:283 +msgid "Lamdaemon: Quota module installed" +msgstr "Lamdaemon: modulo per la quota installato" + +#: ../templates/tests/lamdaemonTest.php:279 +msgid "Lamdaemon: check NSS LDAP" +msgstr "Lamdaemon: controllo NSS LDAP" + +#: ../templates/tests/lamdaemonTest.php:286 +msgid "Lamdaemon: read quotas" +msgstr "Lamdaemon: lettura delle quota" + +#: ../templates/login.php:397 +#: ../templates/selfService/selfServiceLogin.php:344 +msgid "Language" +msgstr "Linguaggio" + +#: ../templates/config/confmain.php:570 +msgid "Language is not defined!" +msgstr "Linguaggio non definito!" + +#: ../templates/config/confmain.php:304 +msgid "Language settings" +msgstr "Impostazioni linguaggio" + +#: ../lib/modules/mitKerberos.inc:144 ../lib/modules/mitKerberos.inc:256 +#: ../lib/modules/mitKerberos.inc:404 ../lib/modules/mitKerberos.inc:791 +msgid "Last login" +msgstr "Ultimo accesso" + +#: ../lib/types/user.inc:97 ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:219 ../lib/modules/windowsUser.inc:164 +#: ../lib/modules/windowsUser.inc:284 ../lib/modules/windowsUser.inc:511 +#: ../lib/modules/windowsUser.inc:599 ../lib/modules/windowsUser.inc:701 +#: ../lib/modules/windowsUser.inc:1599 ../lib/modules/inetOrgPerson.inc:68 +#: ../lib/modules/inetOrgPerson.inc:156 ../lib/modules/inetOrgPerson.inc:312 +#: ../lib/modules/inetOrgPerson.inc:539 ../lib/modules/inetOrgPerson.inc:648 +#: ../lib/modules/inetOrgPerson.inc:1178 ../lib/modules/inetOrgPerson.inc:1181 +#: ../lib/modules/inetOrgPerson.inc:1893 ../lib/modules/inetOrgPerson.inc:2445 +#: ../lib/modules/inetOrgPerson.inc:3577 +msgid "Last name" +msgstr "Cognome" + +#: ../lib/modules/windowsUser.inc:599 ../lib/modules/windowsUser.inc:600 +#: ../lib/modules/inetOrgPerson.inc:68 ../lib/modules/inetOrgPerson.inc:69 +msgid "Last name contains invalid characters or is empty!" +msgstr "Il cognome contiene dei caratteri non validi oppure è vuoto!" + +#: ../lib/modules/windowsUser.inc:165 ../lib/modules/inetOrgPerson.inc:649 +msgid "Last name of user. Only letters, - and spaces are allowed." +msgstr "Nome dell'utente. Sono accettati solo lettere, - e spazi." + +#: ../lib/modules/mitKerberos.inc:140 ../lib/modules/mitKerberos.inc:255 +#: ../lib/modules/mitKerberos.inc:396 ../lib/modules/mitKerberos.inc:787 +#: ../lib/modules/sambaSamAccount.inc:396 +#: ../lib/modules/sambaSamAccount.inc:602 +#: ../lib/modules/sambaSamAccount.inc:1162 +#: ../lib/modules/sambaSamAccount.inc:2282 ../lib/modules/ppolicyUser.inc:87 +#: ../lib/modules/ppolicyUser.inc:136 ../lib/modules/ppolicyUser.inc:395 +#: ../lib/modules/shadowAccount.inc:167 ../lib/modules/shadowAccount.inc:201 +#: ../lib/modules/shadowAccount.inc:365 ../lib/modules/shadowAccount.inc:498 +#: ../lib/modules/shadowAccount.inc:668 +msgid "Last password change" +msgstr "Ultimo cambiamento password" + +#: ../lib/modules/sambaSamAccount.inc:251 ../lib/modules/shadowAccount.inc:239 +msgid "Last password change (read-only)" +msgstr "Ultimo cambio password (sola-lettura)" + +#: ../lib/modules/asteriskAccount.inc:239 +#: ../lib/modules/asteriskAccount.inc:298 +#: ../lib/modules/asteriskAccount.inc:544 +#: ../lib/modules/asteriskAccount.inc:758 +#: ../lib/modules/asteriskAccount.inc:1014 +#: ../lib/modules/asteriskAccount.inc:1297 +msgid "Last qualify milliseconds" +msgstr "Ultima qualifica in millisecondi" + +#: ../lib/modules/dhcp_settings.inc:153 ../lib/modules/dhcp_settings.inc:209 +#: ../lib/modules/dhcp_settings.inc:224 ../lib/modules/dhcp_settings.inc:256 +#: ../lib/modules/dhcp_settings.inc:569 ../lib/modules/dhcp_settings.inc:675 +msgid "Lease time" +msgstr "Durata del prestito (lease)" + +#: ../lib/modules/pykotaGroup.inc:125 ../lib/modules/pykotaGroup.inc:135 +#: ../lib/modules/pykotaGroup.inc:173 ../lib/modules/pykotaGroup.inc:182 +#: ../lib/modules/pykotaGroup.inc:227 ../lib/modules/pykotaGroup.inc:474 +#: ../lib/modules/pykotaUser.inc:128 ../lib/modules/pykotaUser.inc:166 +#: ../lib/modules/pykotaUser.inc:233 ../lib/modules/pykotaUser.inc:261 +#: ../lib/modules/pykotaUser.inc:397 ../lib/modules/pykotaUser.inc:898 +msgid "Limit type" +msgstr "Tipo limite" + +#: ../templates/3rdParty/pla/htdocs/import.php:102 +msgid "Line" +msgstr "Linea" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:121 +msgid "Line ends" +msgstr "Fine della linea" + +#: ../lib/modules/selfRegistration.inc:57 +#: ../lib/modules/selfRegistration.inc:197 +#: ../lib/modules/passwordSelfReset.inc:100 +#: ../lib/modules/passwordSelfReset.inc:516 +msgid "Link text" +msgstr "Testo link" + +#: ../templates/selfService/adminMain.php:394 +msgid "Link to self service login page for your users" +msgstr "Link alla pagina fai-da-te per i tuoi utenti" + +#: ../templates/config/conftypes.php:263 ../help/help.inc:87 +msgid "List attributes" +msgstr "Lista degli attributi" + +#: ../templates/config/conftypes.php:394 +msgid "List attributes are invalid!" +msgstr "Gli attributi della lista non sono validi!" + +#: ../lib/types/zarafaAddressListType.inc:91 +#: ../lib/modules/zarafaAddressList.inc:63 +#: ../lib/modules/zarafaAddressList.inc:104 +#: ../lib/modules/zarafaAddressList.inc:141 +#: ../lib/modules/zarafaAddressList.inc:168 +#: ../lib/modules/zarafaAddressList.inc:187 +#: ../lib/modules/zarafaAddressList.inc:331 +msgid "List name" +msgstr "Nome elenco" + +#: ../lib/modules/zarafaAddressList.inc:168 +msgid "List name already in use." +msgstr "Il nome elenco è già stato utilizzato." + +#: ../lib/modules/sambaSamAccount.inc:315 +msgid "" +"List of Samba workstations the user is allowed to login. Empty means every " +"workstation." +msgstr "Lista dei computer samba nei quali l'utente può eseguire il login. Vuota significa qualunque computer." + +#: ../templates/config/confmain.php:564 +msgid "List of admin users is empty or invalid!" +msgstr "La lista degli utenti amministratori è vuota o non valida!" + +#: ../lib/modules/asteriskAccount.inc:204 +msgid "List of allowed codecs." +msgstr "Lista dei codec ammessi." + +#: ../lib/modules/asteriskAccount.inc:200 +msgid "List of disallowed codecs." +msgstr "Lista decodec non ammessi." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:94 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:88 +msgid "List of entries to be deleted:" +msgstr "Lista degli oggetti da cancellare:" + +#: ../templates/config/confmain.php:430 +msgid "List of valid users" +msgstr "Lista degli utenti validi" + +#: ../templates/serverInfo.php:152 +msgid "Listeners" +msgstr "Listeners" + +#: ../lib/modules.inc:1233 ../help/help.inc:198 +msgid "Load profile" +msgstr "Carica il profilo" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:279 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1226 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +msgid "Loading" +msgstr "Caricamento" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:303 +msgid "Loading export" +msgstr "Caricamento esportazione" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:290 +msgid "Loading import" +msgstr "Caricamento importazione" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:497 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:233 +msgid "Loading search" +msgstr "Caricamento ricerca" + +#: ../lib/modules/inetLocalMailRecipient.inc:72 +#: ../lib/modules/inetLocalMailRecipient.inc:154 +msgid "Local address" +msgstr "Indirizzo locale" + +#: ../lib/modules/inetLocalMailRecipient.inc:76 +#: ../lib/modules/inetLocalMailRecipient.inc:106 +#: ../lib/modules/inetLocalMailRecipient.inc:120 +#: ../lib/modules/inetLocalMailRecipient.inc:293 +msgid "Local address list" +msgstr "Lista indirizzi locali" + +#: ../lib/modules/sambaGroupMapping.inc:72 +msgid "Local group" +msgstr "Gruppo locale" + +#: ../lib/modules/sambaGroupMapping.inc:115 +#: ../lib/modules/sambaGroupMapping.inc:166 +#: ../lib/modules/sambaGroupMapping.inc:388 +#: ../lib/modules/sambaGroupMapping.inc:555 +msgid "Local members" +msgstr "Membri locali" + +#: ../lib/types/host.inc:97 ../lib/modules/ipHost.inc:73 +#: ../lib/modules/ipHost.inc:91 ../lib/modules/ipHost.inc:105 +#: ../lib/modules/ipHost.inc:130 ../lib/modules/ipHost.inc:252 +#: ../lib/modules/windowsHost.inc:82 ../lib/modules/windowsHost.inc:106 +#: ../lib/modules/windowsHost.inc:121 ../lib/modules/windowsHost.inc:144 +#: ../lib/modules/windowsHost.inc:290 ../lib/modules/device.inc:77 +#: ../lib/modules/device.inc:109 ../lib/modules/device.inc:129 +#: ../lib/modules/device.inc:178 ../lib/modules/device.inc:419 +#: ../lib/modules/windowsUser.inc:136 ../lib/modules/windowsUser.inc:332 +#: ../lib/modules/windowsUser.inc:504 ../lib/modules/windowsUser.inc:546 +#: ../lib/modules/windowsUser.inc:711 ../lib/modules/windowsUser.inc:1592 +#: ../lib/modules/windowsUser.inc:1734 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:187 ../lib/modules/inetOrgPerson.inc:507 +#: ../lib/modules/inetOrgPerson.inc:554 ../lib/modules/inetOrgPerson.inc:772 +#: ../lib/modules/inetOrgPerson.inc:776 ../lib/modules/inetOrgPerson.inc:1252 +#: ../lib/modules/inetOrgPerson.inc:1255 ../lib/modules/inetOrgPerson.inc:1913 +#: ../lib/modules/inetOrgPerson.inc:2588 ../lib/modules/inetOrgPerson.inc:3517 +#: ../lib/modules/inetOrgPerson.inc:3579 +msgid "Location" +msgstr "Sede" + +#: ../lib/modules/nisMailAliasUser.inc:93 +msgid "Location where new alias is stored." +msgstr "Luogo dove viene registrato l'alias." + +#: ../lib/types/user.inc:349 ../lib/types/user.inc:354 +msgid "Lock" +msgstr "Blocco" + +#: ../templates/lists/changePassword.php:426 +#: ../templates/lists/changePassword.php:446 +#: ../templates/lists/changePassword.php:448 +#: ../lib/modules/ppolicyUser.inc:150 +msgid "Lock account" +msgstr "Blocca account" + +#: ../templates/lists/changePassword.php:266 +msgid "Lock account?" +msgstr "Blocca account?" + +#: ../lib/modules/posixGroup.inc:208 ../lib/modules/posixAccount.inc:338 +#: ../lib/modules/posixAccount.inc:1499 ../lib/modules/inetOrgPerson.inc:1559 +msgid "Lock password" +msgstr "Blocca la password" + +#: ../lib/types/ppolicyType.inc:83 ../lib/modules/ppolicy.inc:104 +#: ../lib/modules/ppolicy.inc:151 ../lib/modules/ppolicy.inc:171 +#: ../lib/modules/ppolicy.inc:264 ../lib/modules/ppolicy.inc:476 +#: ../lib/modules/sambaDomain.inc:133 ../lib/modules/sambaDomain.inc:198 +#: ../lib/modules/sambaDomain.inc:223 ../lib/modules/sambaDomain.inc:340 +#: ../lib/modules/sambaDomain.inc:610 +msgid "Lockout duration" +msgstr "Durata del blocco" + +#: ../lib/modules/sambaDomain.inc:223 +msgid "Lockout duration must be are natural number." +msgstr "La durata del blocco deve essere un numero naturale." + +#: ../lib/modules/ppolicyUser.inc:142 +msgid "Lockout time" +msgstr "Durata del blocco" + +#: ../lib/types/ppolicyType.inc:88 ../lib/modules/ppolicy.inc:124 +#: ../lib/modules/ppolicy.inc:150 ../lib/modules/ppolicy.inc:258 +#: ../lib/modules/ppolicy.inc:495 +msgid "Lockout users" +msgstr "Utenti bloccati" + +#: ../lib/modules/sambaDomain.inc:121 ../lib/modules/sambaDomain.inc:195 +#: ../lib/modules/sambaDomain.inc:225 ../lib/modules/sambaDomain.inc:316 +#: ../lib/modules/sambaDomain.inc:607 +msgid "Lockout users after bad logon attempts" +msgstr "Blocca gli utenti dopo un certo numero di tentativi falliti di logon" + +#: ../lib/modules/sambaDomain.inc:225 +msgid "Lockout users after bad logon attempts must be between 0 and 999." +msgstr "Blocca gli utenti dopo un certo numero di tentativi falliti di logon, deve essere compreso tra 0 e 999." + +#: ../templates/config/mainmanage.php:423 ../help/help.inc:150 +msgid "Log destination" +msgstr "Destinazione del log" + +#: ../templates/config/mainmanage.php:409 ../help/help.inc:148 +msgid "Log level" +msgstr "Livello di log" + +#: ../templates/multiEdit.php:448 +msgid "Log output" +msgstr "Output log" + +#: ../templates/main_header.php:128 +#, php-format +msgid "Logged in as: %s" +msgstr "Collegato come: %s" + +#: ../templates/config/mainmanage.php:406 +msgid "Logging" +msgstr "Registrazione dei messaggi di log" + +#: ../templates/login.php:433 ../templates/config/conflogin.php:62 +#: ../templates/config/mainlogin.php:72 +#: ../templates/selfService/selfServiceLogin.php:227 +#: ../templates/selfService/selfServiceLogin.php:366 +#: ../templates/selfService/adminLogin.php:64 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:530 ../help/help.inc:56 +msgid "Login" +msgstr "Login" + +#: ../templates/selfService/adminMain.php:500 ../help/help.inc:224 +msgid "Login attribute label" +msgstr "Nome dell'attributo di login" + +#: ../templates/selfService/adminMain.php:509 ../help/help.inc:226 +msgid "Login caption" +msgstr "Titolo della pagina di login" + +#: ../templates/config/confmain.php:417 ../help/help.inc:120 +msgid "Login method" +msgstr "Metodo di login" + +#: ../lib/types/user.inc:99 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:324 ../lib/modules/posixAccount.inc:417 +#: ../lib/modules/posixAccount.inc:530 ../lib/modules/posixAccount.inc:1492 +#: ../lib/modules/posixAccount.inc:1757 ../lib/modules/posixAccount.inc:1855 +#: ../lib/modules/posixAccount.inc:2564 +msgid "Login shell" +msgstr "Shell di login" + +#: ../lib/modules/posixAccount.inc:193 ../lib/modules/posixAccount.inc:248 +#: ../lib/modules/posixAccount.inc:493 +msgid "Login shells" +msgstr "Shell di login" + +#: ../templates/pdfedit/pdfpage.php:453 +msgid "Logo" +msgstr "Logo" + +#: ../lib/pdfstruct.inc:300 +msgid "Logo file deleted." +msgstr "File logo eliminato." + +#: ../lib/pdfstruct.inc:292 +#, php-format +msgid "Logo is still in use by PDF structure \"%s\" in account type \"%s\"." +msgstr "Il logo è ancora utilizzato dalla struttura PDF \"%s\" nell'accout tipo \"%s$." + +#: ../lib/modules/sambaDomain.inc:109 ../lib/modules/sambaDomain.inc:192 +#: ../lib/modules/sambaDomain.inc:290 ../lib/modules/sambaDomain.inc:616 +msgid "Logon for password change" +msgstr "Effettuare il logon per cambiare la password" + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:339 +#: ../lib/modules/sambaSamAccount.inc:342 +#: ../lib/modules/sambaSamAccount.inc:526 +#: ../lib/modules/sambaSamAccount.inc:606 +#: ../lib/modules/sambaSamAccount.inc:1284 +#: ../lib/modules/sambaSamAccount.inc:1786 +msgid "Logon hours" +msgstr "Ore di logon" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:223 +#: ../lib/modules/sambaSamAccount.inc:311 +#: ../lib/modules/sambaSamAccount.inc:510 +#: ../lib/modules/sambaSamAccount.inc:600 +#: ../lib/modules/sambaSamAccount.inc:1237 +#: ../lib/modules/sambaSamAccount.inc:1762 +#: ../lib/modules/sambaSamAccount.inc:1902 ../lib/modules/windowsUser.inc:209 +#: ../lib/modules/windowsUser.inc:424 ../lib/modules/windowsUser.inc:477 +#: ../lib/modules/windowsUser.inc:521 ../lib/modules/windowsUser.inc:613 +#: ../lib/modules/windowsUser.inc:756 ../lib/modules/windowsUser.inc:1628 +msgid "Logon script" +msgstr "Script di logon" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:102 ../lib/modules/windowsUser.inc:613 +#: ../lib/modules/windowsUser.inc:614 +msgid "Logon script is invalid!" +msgstr "Lo script di logon non è valido!" + +#: ../templates/selfService/selfServiceMain.php:63 +#: ../templates/selfService/selfServiceMain.php:419 +#: ../templates/main_header.php:135 +msgid "Logout" +msgstr "Scollegarsi" + +#: ../lib/modules/dhcp_settings.inc:98 +msgid "M-Node (0x04)" +msgstr "Nodo-M (0x04)" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ieee802device.inc:58 +#: ../lib/modules/ieee802device.inc:68 ../lib/modules/ieee802device.inc:79 +#: ../lib/modules/ieee802device.inc:106 ../lib/modules/fixed_ip.inc:102 +#: ../lib/modules/fixed_ip.inc:429 ../lib/modules/fixed_ip.inc:742 +msgid "MAC address" +msgstr "Indirizzo MAC" + +#: ../lib/modules/ieee802device.inc:72 +msgid "MAC address list" +msgstr "Lista di indirizzi MAC" + +#: ../lib/modules/ieee802device.inc:86 ../lib/modules/ieee802device.inc:162 +msgid "MAC addresses" +msgstr "Indirizzi MAC" + +#: ../lib/modules/mitKerberos.inc:268 +msgid "MIT Kerberos password change command" +msgstr "Comando cambio password Kerberos del MIT" + +#: ../lib/modules/bindDLZ.inc:103 ../lib/modules/bindDLZ.inc:274 +#: ../lib/modules/bindDLZ.inc:280 ../lib/modules/bindDLZ.inc:287 +#: ../lib/modules/bindDLZ.inc:476 ../lib/modules/bindDLZ.inc:495 +msgid "MX record" +msgstr "Record MX" + +#: ../lib/modules/bindDLZ.inc:414 ../lib/modules/bindDLZ.inc:433 +#: ../lib/modules/bindDLZ.inc:1509 +msgid "MX records" +msgstr "Records MX" + +#: ../lib/modules/sambaSamAccount.inc:575 +msgid "Magadan, Solomon Islands" +msgstr "Magadan, Isole Salomone" + +#: ../lib/types/mailAlias.inc:53 ../lib/modules/nisMailAliasUser.inc:70 +#: ../lib/modules/nisMailAlias.inc:69 +msgid "Mail aliases" +msgstr "Alias mail" + +#: ../lib/modules/imapAccess.inc:100 ../lib/modules/imapAccess.inc:140 +msgid "Mail domains" +msgstr "Domini mail" + +#: ../lib/modules/inetLocalMailRecipient.inc:58 +msgid "Mail routing" +msgstr "Instradamento mail" + +#: ../lib/modules/selfRegistration.inc:615 +#: ../lib/modules/selfRegistration.inc:635 +#: ../lib/modules/passwordSelfReset.inc:1546 +#: ../lib/modules/passwordSelfReset.inc:1561 +#: ../lib/modules/passwordSelfReset.inc:1594 +msgid "Mail sending failed." +msgstr "Invio mail fallito." + +#: ../lib/modules/bindDLZ.inc:132 ../lib/modules/bindDLZ.inc:136 +#: ../lib/modules/bindDLZ.inc:274 ../lib/modules/bindDLZ.inc:493 +#: ../lib/modules/bindDLZ.inc:910 ../lib/modules/bindDLZ.inc:1512 +#: ../lib/modules/kolabUser.inc:98 ../lib/modules/kolabSharedFolder.inc:98 +#: ../lib/modules/inetLocalMailRecipient.inc:80 +#: ../lib/modules/inetLocalMailRecipient.inc:85 +#: ../lib/modules/inetLocalMailRecipient.inc:112 +#: ../lib/modules/inetLocalMailRecipient.inc:121 +#: ../lib/modules/inetLocalMailRecipient.inc:148 +#: ../lib/modules/inetLocalMailRecipient.inc:294 +msgid "Mail server" +msgstr "Server di mail" + +#: ../lib/modules/bindDLZ.inc:907 +msgid "Mail servers (\"MX\" records)" +msgstr "Mail servers (\"MX\" records)" + +#: ../lib/account.inc:1031 +#, php-format +msgid "Mail successfully sent to %s." +msgstr "Mail inviata correttamente a %s." + +#: ../lib/modules/asteriskAccount.inc:159 +#: ../lib/modules/asteriskAccount.inc:278 +#: ../lib/modules/asteriskAccount.inc:399 +#: ../lib/modules/asteriskAccount.inc:657 +#: ../lib/modules/asteriskAccount.inc:994 +#: ../lib/modules/asteriskAccount.inc:1257 +#: ../lib/modules/asteriskVoicemail.inc:95 +#: ../lib/modules/asteriskVoicemail.inc:138 +#: ../lib/modules/asteriskVoicemail.inc:158 +#: ../lib/modules/asteriskVoicemail.inc:245 +#: ../lib/modules/asteriskVoicemail.inc:369 ../lib/modules/imapAccess.inc:63 +#: ../lib/modules/imapAccess.inc:106 ../lib/modules/imapAccess.inc:243 +msgid "Mailbox" +msgstr "Mailbox" + +#: ../lib/modules/imapAccess.inc:252 +msgid "Mailbox already exists on IMAP server." +msgstr "La mailbox sul server IMAP esiste già." + +#: ../lib/modules/imapAccess.inc:259 +msgid "Mailbox does not exist on IMAP server." +msgstr "La mailbox sul server IMAP non esiste." + +#: ../lib/modules/kolabUser.inc:148 ../lib/modules/kolabUser.inc:192 +#: ../lib/modules/kolabUser.inc:231 ../lib/modules/kolabUser.inc:297 +#: ../lib/modules/kolabUser.inc:300 ../lib/modules/kolabUser.inc:745 +#: ../lib/modules/kolabSharedFolder.inc:154 +#: ../lib/modules/kolabSharedFolder.inc:188 +#: ../lib/modules/kolabSharedFolder.inc:238 +#: ../lib/modules/kolabSharedFolder.inc:284 +#: ../lib/modules/kolabSharedFolder.inc:287 +#: ../lib/modules/kolabSharedFolder.inc:559 +msgid "Mailbox home server" +msgstr "Server delle caselle email" + +#: ../lib/modules/kolabUser.inc:251 +msgid "Mailbox home server name is empty!" +msgstr "Il nome del server delle caselle email è vuoto!" + +#: ../lib/modules/kolabUser.inc:249 ../lib/modules/kolabUser.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:257 +#: ../lib/modules/kolabSharedFolder.inc:258 +msgid "Mailbox home server name is invalid!" +msgstr "Il nome del server delle caselle email non è valido!" + +#: ../lib/modules/kolabUser.inc:99 ../lib/modules/kolabUser.inc:174 +#: ../lib/modules/kolabUser.inc:199 ../lib/modules/kolabUser.inc:232 +#: ../lib/modules/kolabUser.inc:257 ../lib/modules/kolabUser.inc:310 +#: ../lib/modules/kolabUser.inc:772 +msgid "Mailbox quota" +msgstr "Quota mailbox" + +#: ../lib/types/mailAlias.inc:62 +msgid "Mailing aliases (e.g. NIS mail aliases)" +msgstr "Alias di mail (es. Alias di mail NIS)" + +#: ../lib/modules/nisMailAlias.inc:82 +msgid "Mails to this name are forwarded to the recipients." +msgstr "Le mail a questo nome vengono inoltrate ai destinatari." + +#: ../templates/pdfedit/pdfpage.php:367 ../templates/pdfedit/pdfpage.php:678 +msgid "Main" +msgstr "Principale" + +#: ../templates/selfService/adminMain.php:515 ../help/help.inc:228 +msgid "Main page caption" +msgstr "Titolo della pagina principale" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:79 +msgid "Make sure your filter (above) will select all child records." +msgstr "Assicurati che il filtro (sopra) includa tutti i record figli." + +#: ../lib/modules/inetOrgPerson.inc:1516 +msgid "Manage" +msgstr "Gestisci" + +#: ../templates/pdfedit/pdfmain.php:190 +msgid "Manage existing PDF structures" +msgstr "Gestisci le strutture PDF esistenti" + +#: ../templates/profedit/profilemain.php:175 +msgid "Manage existing profiles" +msgstr "Gestione profili esistenti" + +#: ../templates/pdfedit/pdfmain.php:232 +msgid "Manage logos" +msgstr "Gestione loghi" + +#: ../lib/modules/kolabUser.inc:112 ../lib/modules/kolabUser.inc:170 +msgid "Manage object class \"mailrecipient\"" +msgstr "Gestione classe oggetto \"mailrecipient\"" + +#: ../lib/modules/sambaSamAccount.inc:1224 +msgid "Manage profile directory" +msgstr "Gestisci le directory del profilo" + +#: ../templates/selfService/adminLogin.php:182 +msgid "Manage self service profiles" +msgstr "Gestione profili fai-da-te" + +#: ../templates/config/conflogin.php:192 +msgid "Manage server profiles" +msgstr "Gestione profili" + +#: ../lib/modules/windowsHost.inc:86 ../lib/modules/windowsHost.inc:112 +#: ../lib/modules/windowsHost.inc:122 ../lib/modules/windowsHost.inc:146 +#: ../lib/modules/windowsHost.inc:295 ../lib/modules/windowsGroup.inc:146 +#: ../lib/modules/windowsGroup.inc:167 ../lib/modules/windowsGroup.inc:227 +#: ../lib/modules/windowsGroup.inc:268 ../lib/modules/windowsGroup.inc:352 +#: ../lib/modules/windowsGroup.inc:781 +msgid "Managed by" +msgstr "Gestito da" + +#: ../templates/serverInfo.php:105 +msgid "Managed suffixes" +msgstr "Suffissi gestiti" + +#: ../lib/modules/ipHost.inc:77 ../lib/modules/ipHost.inc:97 +#: ../lib/modules/ipHost.inc:106 ../lib/modules/ipHost.inc:154 +#: ../lib/modules/ipHost.inc:253 ../lib/modules/inetOrgPerson.inc:361 +#: ../lib/modules/inetOrgPerson.inc:605 ../lib/modules/inetOrgPerson.inc:656 +#: ../lib/modules/inetOrgPerson.inc:660 ../lib/modules/inetOrgPerson.inc:1528 +#: ../lib/modules/inetOrgPerson.inc:1894 ../lib/modules/inetOrgPerson.inc:3549 +#: ../lib/modules/inetOrgPerson.inc:3587 +msgid "Manager" +msgstr "Amministratore" + +#: ../lib/tools/ouEditor.inc:53 +msgid "Manages OU objects in your LDAP tree." +msgstr "Gestisce gli oggetti OU nel vostro albero LDAP." + +#: ../lib/modules/kolabUser.inc:52 +msgid "Manual" +msgstr "Manuale" + +#: ../lib/modules/kolabUser.inc:54 +msgid "Manual if conflicts" +msgstr "Manuale se in conflitto" + +#: ../lib/modules/customScripts.inc:172 +msgid "Manual scripts" +msgstr "Script manuali" + +#: ../lib/types/nisObjectType.inc:78 ../lib/modules/nisObject.inc:65 +#: ../lib/modules/nisObject.inc:96 ../lib/modules/nisObject.inc:112 +#: ../lib/modules/nisObject.inc:123 ../lib/modules/nisObject.inc:149 +#: ../lib/modules/nisObject.inc:210 +msgid "Mapping entry" +msgstr "Voce di mappatura" + +#: ../lib/modules/nisObject.inc:123 ../lib/modules/nisObject.inc:124 +msgid "" +"Mapping entry contains invalid characters. Only ASCII characters are " +"allowed." +msgstr "La mappatura contiene caratteri non validi. Sono consentiti solo i caratteri ASCII." + +#: ../lib/types/nisObjectType.inc:79 ../lib/modules/nisObject.inc:69 +#: ../lib/modules/nisObject.inc:89 ../lib/modules/nisObject.inc:113 +#: ../lib/modules/nisObject.inc:143 ../lib/modules/nisObject.inc:211 +msgid "Mapping name" +msgstr "Nome della mappatura" + +#: ../lib/modules/kolabGroup.inc:213 ../lib/modules/kolabGroup.inc:293 +#: ../lib/modules/kolabUser.inc:388 ../lib/modules/kolabUser.inc:519 +#: ../lib/modules/kolabSharedFolder.inc:345 +#: ../lib/modules/kolabSharedFolder.inc:433 +msgid "Mark account for deletion" +msgstr "Impostare l'account per la cancellazione" + +#: ../lib/modules/kolabGroup.inc:113 ../lib/modules/kolabUser.inc:178 +#: ../lib/modules/kolabSharedFolder.inc:166 +msgid "Mark for deletion" +msgstr "Impostare per la cancellazione" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:44 +msgid "Mass delete" +msgstr "Eliminazione massiva" + +#: ../templates/config/profmanage.php:311 +#: ../templates/config/mainlogin.php:158 +#: ../templates/selfService/profManage.php:247 +#: ../templates/pdfedit/pdfmain.php:290 ../templates/pdfedit/pdfmain.php:337 +#: ../templates/profedit/profilemain.php:257 +#: ../templates/profedit/profilemain.php:305 ../help/help.inc:142 +msgid "Master password" +msgstr "Password principale" + +#: ../templates/config/profmanage.php:54 +#: ../templates/selfService/profManage.php:40 +#: ../templates/pdfedit/pdfmain.php:106 ../templates/pdfedit/pdfmain.php:114 +#: ../templates/profedit/profilemain.php:121 +#: ../templates/profedit/profilemain.php:129 +msgid "Master password is wrong!" +msgstr "La password principale è sbagliata!" + +#: ../templates/config/mainmanage.php:82 +msgid "Master passwords are different or empty!" +msgstr "Le password principali sono diverse o vuote!" + +#: ../templates/schema/schema.php:268 +msgid "Matching rule OID" +msgstr "Regola corrispondente OID" + +#: ../templates/schema/schema.php:77 ../templates/schema/schema.php:78 +msgid "Matching rules" +msgstr "Regole corrispondenti" + +#: ../templates/serverInfo.php:173 +msgid "Max. file descriptors" +msgstr "File descriptors max." + +#: ../lib/modules/posixGroup.inc:410 ../lib/modules/posixGroup.inc:604 +#: ../lib/modules/posixGroup.inc:605 +msgid "Maximum GID number" +msgstr "GID massimo" + +#: ../lib/modules/posixGroup.inc:604 +msgid "Maximum GID number is invalid or empty!" +msgstr "Il GID massimo non è valido o vuoto!" + +#: ../lib/modules/posixGroup.inc:605 +msgid "Maximum GID number must be greater than minimum GID number!" +msgstr "Il GID massimo deve essere più grande del minimo!" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:221 ../lib/modules/posixAccount.inc:239 +msgid "Maximum UID number" +msgstr "UID massimo" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +msgid "Maximum UID number is invalid!" +msgstr "Lo UID massimo non è valido!" + +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +msgid "Maximum UID number must be greater than minimum UID number!" +msgstr "Lo UID massimo deve essere più grande del minimo!" + +#: ../lib/types/ppolicyType.inc:84 ../lib/modules/ppolicy.inc:108 +#: ../lib/modules/ppolicy.inc:152 ../lib/modules/ppolicy.inc:172 +#: ../lib/modules/ppolicy.inc:272 ../lib/modules/ppolicy.inc:477 +msgid "Maximum failure count" +msgstr "Massimo conteggio di fallimenti" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:128 +#: ../templates/3rdParty/pla/htdocs/import_form.php:36 +#: ../lib/modules/customFields.inc:156 ../lib/modules/customFields.inc:3299 +msgid "Maximum file size" +msgstr "Dimensione massima dei file" + +#: ../lib/modules/inetOrgPerson.inc:3614 +msgid "Maximum file size (kB)" +msgstr "Dimensione massima file (kB)" + +#: ../lib/modules/customFields.inc:3331 +msgid "Maximum file size must be a number. Please enter 0 for no limit." +msgstr "La dimensione massima del file deve essere un numero. Immettere 0 per nessun limite." + +#: ../lib/modules/inetOrgPerson.inc:3613 +msgid "Maximum height (px)" +msgstr "Altezza massima (px)" + +#: ../lib/types/pykotaPrinterType.inc:95 ../lib/modules/pykotaPrinter.inc:103 +#: ../lib/modules/pykotaPrinter.inc:135 ../lib/modules/pykotaPrinter.inc:159 +#: ../lib/modules/pykotaPrinter.inc:195 ../lib/modules/pykotaPrinter.inc:213 +#: ../lib/modules/pykotaPrinter.inc:233 ../lib/modules/pykotaPrinter.inc:586 +msgid "Maximum job size" +msgstr "Dimensione massima lavoro" + +#: ../lib/modules/dhcp_settings.inc:157 ../lib/modules/dhcp_settings.inc:210 +#: ../lib/modules/dhcp_settings.inc:225 ../lib/modules/dhcp_settings.inc:262 +#: ../lib/modules/dhcp_settings.inc:573 ../lib/modules/dhcp_settings.inc:676 +msgid "Maximum lease time" +msgstr "Durata massima del prestito (lease)" + +#: ../templates/schema/schema.php:214 +msgid "Maximum length" +msgstr "Lunghezza massima" + +#: ../lib/lists.inc:1011 ../help/help.inc:97 +msgid "Maximum list entries" +msgstr "Numero massimo di valori nella lista" + +#: ../lib/modules/asteriskAccount.inc:196 +msgid "" +"Maximum number of seconds of inactivity before terminating a call on hold." +msgstr "Numero massimo di secondi di inattività prima di terminare una chiamata in attesa." + +#: ../lib/types/ppolicyType.inc:79 ../lib/modules/shadowAccount.inc:59 +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/shadowAccount.inc:123 +#: ../lib/modules/shadowAccount.inc:172 ../lib/modules/shadowAccount.inc:189 +#: ../lib/modules/shadowAccount.inc:227 ../lib/modules/shadowAccount.inc:340 +#: ../lib/modules/shadowAccount.inc:504 ../lib/modules/ppolicy.inc:88 +#: ../lib/modules/ppolicy.inc:144 ../lib/modules/ppolicy.inc:167 +#: ../lib/modules/ppolicy.inc:168 ../lib/modules/ppolicy.inc:206 +#: ../lib/modules/ppolicy.inc:473 ../lib/modules/sambaDomain.inc:129 +#: ../lib/modules/sambaDomain.inc:197 ../lib/modules/sambaDomain.inc:220 +#: ../lib/modules/sambaDomain.inc:222 ../lib/modules/sambaDomain.inc:332 +#: ../lib/modules/sambaDomain.inc:609 +msgid "Maximum password age" +msgstr "Scadenza password massima" + +#: ../lib/modules/inetOrgPerson.inc:3612 +msgid "Maximum width (px)" +msgstr "Larghezza massima (px)" + +#: ../lib/modules/qmailGroup.inc:80 ../lib/modules/qmailGroup.inc:204 +#: ../lib/modules/qmailGroup.inc:208 ../lib/modules/qmailGroup.inc:337 +#: ../lib/modules/qmailGroup.inc:402 ../lib/modules/qmailGroup.inc:425 +#: ../lib/modules/qmailGroup.inc:514 ../lib/modules/qmailGroup.inc:1063 +msgid "Member email addresses" +msgstr "Indirizzo email del membro" + +#: ../lib/modules/qmailGroup.inc:78 ../lib/modules/qmailGroup.inc:156 +#: ../lib/modules/qmailGroup.inc:160 ../lib/modules/qmailGroup.inc:279 +#: ../lib/modules/qmailGroup.inc:381 ../lib/modules/qmailGroup.inc:516 +#: ../lib/modules/qmailGroup.inc:783 ../lib/modules/qmailGroup.inc:1062 +msgid "Member entries" +msgstr "Voci dei membri" + +#: ../lib/modules/qmailGroup.inc:82 ../lib/modules/qmailGroup.inc:180 +#: ../lib/modules/qmailGroup.inc:184 ../lib/modules/qmailGroup.inc:303 +#: ../lib/modules/qmailGroup.inc:390 ../lib/modules/qmailGroup.inc:515 +#: ../lib/modules/qmailGroup.inc:1064 +msgid "Member filter" +msgstr "Filtro dei membri" + +#: ../lib/types/netgroup.inc:94 ../lib/modules/nisnetgroup.inc:95 +#: ../lib/modules/nisnetgroup.inc:99 ../lib/modules/nisnetgroup.inc:132 +#: ../lib/modules/nisnetgroup.inc:142 ../lib/modules/nisnetgroup.inc:286 +#: ../lib/modules/nisnetgroup.inc:583 ../lib/modules/organizationalRole.inc:93 +#: ../lib/modules/organizationalRole.inc:97 +#: ../lib/modules/organizationalRole.inc:130 +#: ../lib/modules/organizationalRole.inc:138 +#: ../lib/modules/organizationalRole.inc:193 +#: ../lib/modules/organizationalRole.inc:341 +#: ../lib/modules/organizationalRole.inc:461 +#: ../lib/modules/windowsGroup.inc:130 ../lib/modules/windowsGroup.inc:134 +#: ../lib/modules/windowsGroup.inc:211 ../lib/modules/windowsGroup.inc:260 +#: ../lib/modules/windowsGroup.inc:790 ../lib/modules/groupOfNames.inc:101 +#: ../lib/modules/groupOfNames.inc:105 ../lib/modules/groupOfNames.inc:151 +#: ../lib/modules/groupOfNames.inc:159 ../lib/modules/groupOfNames.inc:168 +#: ../lib/modules/groupOfNames.inc:247 ../lib/modules/groupOfNames.inc:553 +#: ../lib/modules/groupOfNames.inc:714 +msgid "Members" +msgstr "Membri" + +#: ../lib/modules/groupOfNames.inc:109 ../lib/modules/groupOfNames.inc:179 +msgid "Members are optional" +msgstr "I membri sono opzionali" + +#: ../lib/modules/qmailGroup.inc:94 ../lib/modules/qmailGroup.inc:196 +#: ../lib/modules/qmailGroup.inc:319 ../lib/modules/qmailGroup.inc:396 +#: ../lib/modules/qmailGroup.inc:617 ../lib/modules/qmailGroup.inc:1075 +msgid "Members only" +msgstr "Solo i membri" + +#: ../lib/modules/qmailUser.inc:108 ../lib/modules/qmailUser.inc:143 +#: ../lib/modules/qmailUser.inc:223 ../lib/modules/qmailUser.inc:316 +#: ../lib/modules/qmailUser.inc:412 ../lib/modules/qmailUser.inc:686 +#: ../lib/modules/qmailUser.inc:1145 +msgid "Message count limit" +msgstr "Limite quantità messaggi" + +#: ../lib/modules/qmailUser.inc:110 ../lib/modules/qmailUser.inc:153 +#: ../lib/modules/qmailUser.inc:227 ../lib/modules/qmailUser.inc:324 +#: ../lib/modules/qmailUser.inc:415 ../lib/modules/qmailUser.inc:697 +#: ../lib/modules/qmailUser.inc:1146 +msgid "Message size limit" +msgstr "Limite dimensione messaggi" + +#: ../lib/modules/qmailUser.inc:120 ../lib/modules/qmailUser.inc:171 +#: ../lib/modules/qmailUser.inc:247 ../lib/modules/qmailUser.inc:366 +#: ../lib/modules/qmailUser.inc:430 ../lib/modules/qmailUser.inc:601 +#: ../lib/modules/qmailUser.inc:1149 ../lib/modules/qmailGroup.inc:139 +#: ../lib/modules/qmailGroup.inc:254 ../lib/modules/qmailGroup.inc:372 +#: ../lib/modules/qmailGroup.inc:508 ../lib/modules/qmailGroup.inc:1058 +msgid "Message store" +msgstr "Archivio messaggi" + +#: ../lib/modules/sambaSamAccount.inc:562 +msgid "Mid-Atlantic" +msgstr "Centro Atlantico" + +#: ../lib/modules/sambaSamAccount.inc:553 +msgid "Midway Island, Samoa" +msgstr "Isole Midway, Samoa" + +#: ../lib/modules/windowsUser.inc:286 ../lib/modules/inetOrgPerson.inc:314 +msgid "Miller" +msgstr "Miller" + +#: ../lib/modules/sambaDomain.inc:101 ../lib/modules/sambaDomain.inc:190 +#: ../lib/modules/sambaDomain.inc:276 ../lib/modules/sambaDomain.inc:605 +msgid "Minimal password length" +msgstr "Lunghezza minima della password" + +#: ../lib/modules/posixGroup.inc:407 ../lib/modules/posixGroup.inc:603 +msgid "Minimum GID number" +msgstr "GID minimo" + +#: ../lib/modules/posixGroup.inc:603 +msgid "Minimum GID number is invalid or empty!" +msgstr "Il GID minimo non è valido o vuoto!" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:218 ../lib/modules/posixAccount.inc:236 +msgid "Minimum UID number" +msgstr "UID minimo" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +msgid "Minimum UID number is invalid!" +msgstr "Lo UID minimo non è valido!" + +#: ../lib/modules/passwordSelfReset.inc:92 +#: ../lib/modules/passwordSelfReset.inc:514 +msgid "Minimum answer length" +msgstr "Lunghezza minima della risposta" + +#: ../templates/config/mainmanage.php:392 +msgid "Minimum character classes" +msgstr "Numero minimo di classi di caratteri" + +#: ../templates/config/mainmanage.php:388 +msgid "Minimum lowercase characters" +msgstr "Numero minimo di caratteri minuscoli" + +#: ../templates/config/mainmanage.php:390 +msgid "Minimum numeric characters" +msgstr "Numero minimo di caratteri numerici" + +#: ../lib/types/ppolicyType.inc:78 ../lib/modules/shadowAccount.inc:57 +#: ../lib/modules/shadowAccount.inc:118 ../lib/modules/shadowAccount.inc:171 +#: ../lib/modules/shadowAccount.inc:185 ../lib/modules/shadowAccount.inc:221 +#: ../lib/modules/shadowAccount.inc:332 ../lib/modules/shadowAccount.inc:503 +#: ../lib/modules/ppolicy.inc:84 ../lib/modules/ppolicy.inc:143 +#: ../lib/modules/ppolicy.inc:166 ../lib/modules/ppolicy.inc:198 +#: ../lib/modules/ppolicy.inc:472 ../lib/modules/sambaDomain.inc:125 +#: ../lib/modules/sambaDomain.inc:196 ../lib/modules/sambaDomain.inc:221 +#: ../lib/modules/sambaDomain.inc:324 ../lib/modules/sambaDomain.inc:608 +msgid "Minimum password age" +msgstr "Scadenza password minima" + +#: ../templates/config/mainmanage.php:386 ../lib/types/ppolicyType.inc:87 +#: ../lib/modules/ppolicy.inc:120 ../lib/modules/ppolicy.inc:147 +#: ../lib/modules/ppolicy.inc:175 ../lib/modules/ppolicy.inc:250 +#: ../lib/modules/ppolicy.inc:480 +msgid "Minimum password length" +msgstr "Lunghezza minima della password" + +#: ../templates/config/mainmanage.php:391 +msgid "Minimum symbolic characters" +msgstr "Numero minimo di simboli" + +#: ../lib/modules/bindDLZ.inc:216 ../lib/modules/bindDLZ.inc:319 +#: ../lib/modules/bindDLZ.inc:420 ../lib/modules/bindDLZ.inc:518 +#: ../lib/modules/bindDLZ.inc:1023 ../lib/modules/bindDLZ.inc:1545 +msgid "Minimum time" +msgstr "Tempo minimo" + +#: ../templates/config/mainmanage.php:389 +msgid "Minimum uppercase characters" +msgstr "Numero minimo di caratteri maiuscoli" + +#: ../templates/3rdParty/pla/lib/import_functions.php:429 +msgid "Missing attributes for" +msgstr "Attributi mancanti per" + +#: ../templates/3rdParty/pla/lib/import_functions.php:443 +msgid "Missing modify command add, delete or replace" +msgstr "Comando di modifica mancante aggiungere, eliminare o sostituire" + +#: ../lib/types/user.inc:207 ../lib/modules/inetOrgPerson.inc:74 +#: ../lib/modules/inetOrgPerson.inc:157 ../lib/modules/inetOrgPerson.inc:433 +#: ../lib/modules/inetOrgPerson.inc:578 ../lib/modules/inetOrgPerson.inc:704 +#: ../lib/modules/inetOrgPerson.inc:708 ../lib/modules/inetOrgPerson.inc:1398 +#: ../lib/modules/inetOrgPerson.inc:1401 ../lib/modules/inetOrgPerson.inc:1902 +#: ../lib/modules/inetOrgPerson.inc:3533 ../lib/modules/inetOrgPerson.inc:3583 +msgid "Mobile number" +msgstr "Numero di cellulare" + +#: ../lib/modules/inetOrgPerson.inc:2500 +msgid "Mobile telephone number" +msgstr "Numero di cellulare" + +#: ../lib/modules/qmailGroup.inc:86 ../lib/modules/qmailGroup.inc:212 +#: ../lib/modules/qmailGroup.inc:216 ../lib/modules/qmailGroup.inc:345 +#: ../lib/modules/qmailGroup.inc:405 ../lib/modules/qmailGroup.inc:427 +#: ../lib/modules/qmailGroup.inc:517 ../lib/modules/qmailGroup.inc:1066 +msgid "Moderator email addresses" +msgstr "Indirizzo email del moderatore" + +#: ../lib/modules/qmailGroup.inc:84 ../lib/modules/qmailGroup.inc:164 +#: ../lib/modules/qmailGroup.inc:168 ../lib/modules/qmailGroup.inc:287 +#: ../lib/modules/qmailGroup.inc:384 ../lib/modules/qmailGroup.inc:518 +#: ../lib/modules/qmailGroup.inc:786 ../lib/modules/qmailGroup.inc:1065 +msgid "Moderator entries" +msgstr "Voci dei moderatori" + +#: ../lib/modules/qmailGroup.inc:76 ../lib/modules/qmailGroup.inc:106 +#: ../lib/modules/qmailGroup.inc:200 ../lib/modules/qmailGroup.inc:329 +#: ../lib/modules/qmailGroup.inc:399 ../lib/modules/qmailGroup.inc:603 +#: ../lib/modules/qmailGroup.inc:1061 +msgid "Moderator text" +msgstr "Testo del moderatore" + +#: ../lib/modules/qmailGroup.inc:201 +msgid "" +"Moderator text that is used to specify an own approval text used if the list" +" is moderated. The usual %HEADER% magic of qmail-reply etc. can be used " +"here." +msgstr "Il testo del moderatore è utilizzato per specificare un proprio testo che mostri che la lista è moderata. Il solito %HEADER% magico di qmail-reply etc. può essere utilizzato qui." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:61 +msgid "Modification not successful!" +msgstr "La modifica non ha avuto successo!" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:59 +msgid "Modification successful!" +msgstr "Modifica completata con successo!" + +#: ../lib/modules/generalInformation.inc:92 +msgid "Modification time" +msgstr "Tempo di modifica" + +#: ../lib/modules/generalInformation.inc:88 +msgid "Modified by" +msgstr "Modificato da" + +#: ../templates/serverInfo.php:314 ../templates/serverInfo.php:387 +#: ../templates/multiEdit.php:126 +msgid "Modify" +msgstr "Modifica" + +#: ../templates/serverInfo.php:328 ../templates/serverInfo.php:393 +msgid "Modify RDN" +msgstr "Modifica RDN" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:57 +msgid "Modify group" +msgstr "Modifica gruppo" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2110 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2111 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2114 +msgid "Modify group members" +msgstr "Modifica membri del gruppo" + +#: ../templates/3rdParty/pla/htdocs/import.php:32 +msgid "Modifying" +msgstr "Modifica in corso" + +#: ../templates/config/confmodules.php:176 +#: ../templates/config/confmain.php:217 +#: ../templates/config/moduleSettings.php:175 +#: ../templates/config/conftypes.php:194 +#: ../templates/selfService/adminMain.php:435 +msgid "Module settings" +msgstr "Impostazioni modulo" + +#: ../templates/config/confmodules.php:172 +#: ../templates/config/confmain.php:213 +#: ../templates/config/moduleSettings.php:171 +#: ../templates/config/conftypes.php:190 +msgid "Modules" +msgstr "Moduli" + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Monday" +msgstr "Luned" + +#: ../lib/modules/sambaSamAccount.inc:557 +msgid "Mountain Time (US & Canada)" +msgstr "Fuso delle montagne (Stati uniti e Canada)" + +#: ../lib/modules/quota.inc:105 ../lib/modules/quota.inc:399 +#: ../lib/modules/quota.inc:506 ../lib/modules/quota.inc:633 +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:122 +#: ../lib/modules/systemQuotas.inc:382 +msgid "Mountpoint" +msgstr "Punto di mount" + +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:98 +msgid "Mountpoint contains invalid characters." +msgstr "Il mountpoint contiene dei caratteri non validi." + +#: ../lib/modules/quota.inc:106 +msgid "Mountpoint of device with enabled quotas." +msgstr "Punto di mount del device con le quota abilitate" + +#: ../lib/modules/customFields.inc:636 +msgid "Move down" +msgstr "Muovi in basso" + +#: ../lib/modules/customFields.inc:630 +msgid "Move up" +msgstr "Muovi in alto" + +#: ../templates/multiEdit.php:78 ../lib/tools/multiEdit.inc:44 +msgid "Multi edit" +msgstr "Editing multiplo" + +#: ../lib/modules/customFields.inc:1910 ../lib/modules/customFields.inc:3304 +msgid "Multi value" +msgstr "Valori multipli" + +#: ../lib/modules/customFields.inc:3162 +msgid "Multi-select fields must not contain empty values." +msgstr "I campi a selezione multipla non possono contenere valori vuoti." + +#: ../lib/modules/pykotaPrinter.inc:125 +#: ../lib/modules/zarafaDynamicGroup.inc:76 ../lib/modules/zarafaGroup.inc:78 +#: ../lib/modules/eduPerson.inc:98 ../lib/modules/eduPerson.inc:111 +#: ../lib/modules/eduPerson.inc:123 ../lib/modules/eduPerson.inc:139 +#: ../lib/modules/eduPerson.inc:147 ../lib/modules/zarafaUser.inc:164 +#: ../lib/modules/sudoRole.inc:100 ../lib/modules/sudoRole.inc:105 +#: ../lib/modules/sudoRole.inc:110 ../lib/modules/sudoRole.inc:115 +#: ../lib/modules/sudoRole.inc:120 ../lib/modules/sudoRole.inc:125 +msgid "Multiple values are separated by comma." +msgstr "Valori multipli sono separati da una virgola." + +#: ../lib/modules/kolabGroup.inc:92 ../lib/modules/kolabGroup.inc:101 +#: ../lib/modules/kolabGroup.inc:110 ../lib/modules/nisMailAliasUser.inc:81 +#: ../lib/modules/nisMailAliasUser.inc:89 ../lib/modules/puppetClient.inc:85 +#: ../lib/modules/puppetClient.inc:97 ../lib/modules/puppetClient.inc:105 +#: ../lib/modules/device.inc:74 ../lib/modules/bindDLZ.inc:91 +#: ../lib/modules/bindDLZ.inc:100 ../lib/modules/bindDLZ.inc:105 +#: ../lib/modules/bindDLZ.inc:110 ../lib/modules/bindDLZ.inc:115 +#: ../lib/modules/bindDLZ.inc:120 ../lib/modules/bindDLZ.inc:125 +#: ../lib/modules/bindDLZ.inc:137 ../lib/modules/bindDLZ.inc:145 +#: ../lib/modules/bindDLZ.inc:153 ../lib/modules/bindDLZ.inc:161 +#: ../lib/modules/bindDLZ.inc:169 ../lib/modules/bindDLZ.inc:177 +#: ../lib/modules/bindDLZ.inc:185 ../lib/modules/bindDLZ.inc:193 +#: ../lib/modules/bindDLZ.inc:201 ../lib/modules/windowsUser.inc:149 +#: ../lib/modules/windowsUser.inc:185 ../lib/modules/windowsUser.inc:221 +#: ../lib/modules/windowsUser.inc:232 ../lib/modules/kolabUser.inc:158 +#: ../lib/modules/kolabUser.inc:167 ../lib/modules/inetOrgPerson.inc:641 +#: ../lib/modules/inetOrgPerson.inc:661 ../lib/modules/inetOrgPerson.inc:669 +#: ../lib/modules/inetOrgPerson.inc:677 ../lib/modules/inetOrgPerson.inc:685 +#: ../lib/modules/inetOrgPerson.inc:701 ../lib/modules/inetOrgPerson.inc:709 +#: ../lib/modules/inetOrgPerson.inc:717 ../lib/modules/inetOrgPerson.inc:725 +#: ../lib/modules/inetOrgPerson.inc:737 ../lib/modules/inetOrgPerson.inc:757 +#: ../lib/modules/inetOrgPerson.inc:769 ../lib/modules/inetOrgPerson.inc:777 +#: ../lib/modules/inetOrgPerson.inc:785 ../lib/modules/inetOrgPerson.inc:797 +#: ../lib/modules/inetOrgPerson.inc:805 ../lib/modules/inetOrgPerson.inc:821 +#: ../lib/modules/inetOrgPerson.inc:829 ../lib/modules/inetOrgPerson.inc:837 +#: ../lib/modules/systemQuotas.inc:70 ../lib/modules/freeRadius.inc:101 +#: ../lib/modules/kolabSharedFolder.inc:126 +#: ../lib/modules/kolabSharedFolder.inc:135 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/qmailGroup.inc:136 ../lib/modules/qmailGroup.inc:149 +#: ../lib/modules/qmailGroup.inc:161 ../lib/modules/qmailGroup.inc:169 +#: ../lib/modules/qmailGroup.inc:177 ../lib/modules/qmailGroup.inc:185 +#: ../lib/modules/qmailGroup.inc:193 ../lib/modules/qmailGroup.inc:209 +#: ../lib/modules/qmailGroup.inc:217 ../lib/modules/qmailGroup.inc:225 +#: ../lib/modules/groupOfNames.inc:98 +msgid "Multiple values are separated by semicolon." +msgstr "I valori multipli sono separati da un punto e virgola." + +#: ../lib/modules/asteriskAccount.inc:207 +#: ../lib/modules/asteriskAccount.inc:290 +#: ../lib/modules/asteriskAccount.inc:486 +#: ../lib/modules/asteriskAccount.inc:717 +#: ../lib/modules/asteriskAccount.inc:1006 +#: ../lib/modules/asteriskAccount.inc:1281 +msgid "Music on hold" +msgstr "Musica di attesa" + +#: ../lib/modules/asteriskAccount.inc:208 +msgid "Music to play on hold." +msgstr "Musica da suonare in attesa." + +#: ../lib/modules/ipHost.inc:93 ../lib/modules/windowsHost.inc:108 +#: ../lib/modules/device.inc:111 ../lib/modules/windowsUser.inc:334 +#: ../lib/modules/inetOrgPerson.inc:395 ../lib/modules/inetOrgPerson.inc:403 +#: ../lib/modules/inetOrgPerson.inc:509 +msgid "MyCity" +msgstr "Miacittà" + +#: ../lib/modules/windowsUser.inc:316 ../lib/modules/inetOrgPerson.inc:379 +msgid "Mystreetname 42" +msgstr "Mioindirizzo 42" + +#: ../lib/modules/asteriskAccount.inc:163 +#: ../lib/modules/asteriskAccount.inc:279 +#: ../lib/modules/asteriskAccount.inc:406 +#: ../lib/modules/asteriskAccount.inc:669 +#: ../lib/modules/asteriskAccount.inc:995 +#: ../lib/modules/asteriskAccount.inc:1259 +msgid "NAT" +msgstr "NAT" + +#: ../lib/modules/asteriskAccount.inc:164 +msgid "NAT setting for this account." +msgstr "Impostazioni NAT per questo account." + +#: ../lib/modules/windowsUser.inc:772 ../lib/modules/windowsGroup.inc:370 +msgid "NIS" +msgstr "NIS" + +#: ../lib/modules/windowsUser.inc:256 ../lib/modules/windowsUser.inc:466 +#: ../lib/modules/windowsUser.inc:481 ../lib/modules/windowsUser.inc:535 +#: ../lib/modules/windowsUser.inc:567 ../lib/modules/windowsUser.inc:777 +#: ../lib/modules/windowsUser.inc:1606 ../lib/modules/windowsGroup.inc:154 +#: ../lib/modules/windowsGroup.inc:169 ../lib/modules/windowsGroup.inc:243 +#: ../lib/modules/windowsGroup.inc:251 ../lib/modules/windowsGroup.inc:274 +#: ../lib/modules/windowsGroup.inc:375 ../lib/modules/windowsGroup.inc:750 +msgid "NIS domain" +msgstr "Dominio NIS" + +#: ../lib/modules/windowsUser.inc:257 ../lib/modules/windowsGroup.inc:155 +msgid "NIS domain name." +msgstr "Nome dominio NIS." + +#: ../lib/modules/windowsUser.inc:252 ../lib/modules/windowsUser.inc:458 +#: ../lib/modules/windowsUser.inc:532 ../lib/modules/windowsUser.inc:566 +#: ../lib/modules/windowsUser.inc:620 ../lib/modules/windowsUser.inc:774 +#: ../lib/modules/windowsUser.inc:1605 ../lib/modules/windowsGroup.inc:150 +#: ../lib/modules/windowsGroup.inc:168 ../lib/modules/windowsGroup.inc:235 +#: ../lib/modules/windowsGroup.inc:271 ../lib/modules/windowsGroup.inc:289 +#: ../lib/modules/windowsGroup.inc:372 ../lib/modules/windowsGroup.inc:749 +msgid "NIS name" +msgstr "Nome NIS" + +#: ../lib/modules/windowsUser.inc:620 ../lib/modules/windowsUser.inc:621 +#: ../lib/modules/windowsGroup.inc:289 ../lib/modules/windowsGroup.inc:290 +msgid "" +"NIS name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "Il nome NIS contiene caratteri non valid. I caratteri validi sono: a-z, A-Z, 0-9 e .-_ !" + +#: ../lib/modules/nisnetgroup.inc:67 +msgid "NIS net group" +msgstr "Gruppo di rete NIS" + +#: ../lib/types/netgroup.inc:62 +msgid "NIS netgroup entries" +msgstr "Oggetti gruppi di rete NIS" + +#: ../lib/types/netgroup.inc:53 +msgid "NIS netgroups" +msgstr "Gruppi di rete NIS" + +#: ../lib/modules/nisObject.inc:47 +msgid "NIS object" +msgstr "Oggetto NIS" + +#: ../lib/types/nisObjectType.inc:155 +#, php-format +msgid "NIS object count: %s" +msgstr "Conteggio oggetti NIS: %s" + +#: ../lib/types/nisObjectType.inc:48 +msgid "NIS object entries" +msgstr "Voci di oggetti NIS" + +#: ../lib/types/nisObjectType.inc:39 +msgid "NIS objects" +msgstr "Oggetti NIS" + +#: ../lib/modules/bindDLZ.inc:113 ../lib/modules/bindDLZ.inc:357 +#: ../lib/modules/bindDLZ.inc:363 ../lib/modules/bindDLZ.inc:482 +msgid "NS record" +msgstr "Record NS" + +#: ../templates/serverInfo.php:147 ../templates/masscreate.php:294 +#: ../templates/masscreate.php:368 ../templates/schema/schema.php:268 +#: ../lib/types/automountType.inc:86 ../lib/types/automountType.inc:249 +#: ../lib/types/oracleContextType.inc:77 ../lib/types/ppolicyType.inc:77 +#: ../lib/types/bind.inc:190 ../lib/modules/device.inc:61 +#: ../lib/modules/device.inc:89 ../lib/modules/device.inc:120 +#: ../lib/modules/device.inc:170 ../lib/modules/device.inc:418 +#: ../lib/modules/nisObject.inc:61 ../lib/modules/nisObject.inc:81 +#: ../lib/modules/nisObject.inc:111 ../lib/modules/nisObject.inc:137 +#: ../lib/modules/nisObject.inc:209 ../lib/modules/ppolicy.inc:80 +#: ../lib/modules/ppolicy.inc:142 ../lib/modules/ppolicy.inc:165 +#: ../lib/modules/ppolicy.inc:190 ../lib/modules/ppolicy.inc:471 +#: ../lib/modules/automount.inc:64 ../lib/modules/automount.inc:80 +#: ../lib/modules/automount.inc:103 ../lib/modules/automount.inc:128 +#: ../lib/modules/automount.inc:181 ../lib/modules/kolabSharedFolder.inc:112 +#: ../lib/modules/kolabSharedFolder.inc:174 +#: ../lib/modules/kolabSharedFolder.inc:233 +#: ../lib/modules/kolabSharedFolder.inc:261 +#: ../lib/modules/kolabSharedFolder.inc:279 +#: ../lib/modules/kolabSharedFolder.inc:557 +#: ../lib/modules/asteriskExtension.inc:822 +#: ../lib/modules/oracleService.inc:61 ../lib/modules/oracleService.inc:77 +#: ../lib/modules/oracleService.inc:98 ../lib/modules/oracleService.inc:121 +#: ../lib/modules/oracleService.inc:170 ../lib/modules/customFields.inc:84 +#: ../lib/modules/customFields.inc:1041 ../lib/modules/customFields.inc:1688 +#: ../lib/modules/organizationalRole.inc:186 +#: ../lib/modules/groupOfNames.inc:232 +msgid "Name" +msgstr "Nome" + +#: ../lib/modules/nisMailAliasUser.inc:97 +msgid "Name of new alias entry." +msgstr "Nome voce nuovo alias." + +#: ../lib/modules/zarafaAddressList.inc:64 +msgid "Name of the address list which should be created." +msgstr "Nome dell'elenco indirizzo che dovrebbe essere creato." + +#: ../lib/modules/bindDLZ.inc:148 ../lib/modules/bindDLZ.inc:152 +#: ../lib/modules/bindDLZ.inc:357 ../lib/modules/bindDLZ.inc:499 +#: ../lib/modules/bindDLZ.inc:1162 +msgid "Name server" +msgstr "Name Server" + +#: ../lib/modules/bindDLZ.inc:424 ../lib/modules/bindDLZ.inc:1562 +msgid "Name servers" +msgstr "Name servers" + +#: ../lib/modules/bindDLZ.inc:1160 +msgid "Name servers (\"NS\" records)" +msgstr "Name servers (\"NS\" records)" + +#: ../help/help.inc:189 +msgid "" +"Name under which the profile will be saved. If a profile with the same name " +"exists, it will be overwritten." +msgstr "Nome con il quale il profilo sarà salvato. Se esiste già un profilo con lo stesso nome sarà sovrascritto." + +#: ../lib/modules/namedObject.inc:45 +msgid "Named object" +msgstr "Denominazione oggetto" + +#: ../lib/modules/dhcp_settings.inc:193 ../lib/modules/dhcp_settings.inc:216 +#: ../lib/modules/dhcp_settings.inc:610 ../lib/modules/dhcp_settings.inc:686 +#: ../lib/modules/freeRadius.inc:88 ../lib/modules/freeRadius.inc:124 +#: ../lib/modules/freeRadius.inc:138 ../lib/modules/freeRadius.inc:201 +#: ../lib/modules/freeRadius.inc:228 ../lib/modules/freeRadius.inc:285 +#: ../lib/modules/freeRadius.inc:538 +msgid "Net mask" +msgstr "Maschera della rete (Net mask)" + +#: ../lib/modules/dhcp_settings.inc:169 ../lib/modules/dhcp_settings.inc:213 +#: ../lib/modules/dhcp_settings.inc:228 ../lib/modules/dhcp_settings.inc:280 +#: ../lib/modules/dhcp_settings.inc:581 ../lib/modules/dhcp_settings.inc:679 +msgid "Netbios name servers" +msgstr "Server dei nomi Netbios" + +#: ../lib/modules/dhcp_settings.inc:173 ../lib/modules/dhcp_settings.inc:214 +#: ../lib/modules/dhcp_settings.inc:230 ../lib/modules/dhcp_settings.inc:286 +#: ../lib/modules/dhcp_settings.inc:591 ../lib/modules/dhcp_settings.inc:680 +msgid "Netbios node type" +msgstr "Tipo di nodo Netbios" + +#: ../lib/types/dhcp.inc:118 ../lib/types/dhcp.inc:172 +msgid "New DHCP" +msgstr "Nuovo DHCP" + +#: ../lib/types/bind.inc:100 ../lib/types/bind.inc:161 +msgid "New DNS entry" +msgstr "Nuova voce DNS" + +#: ../lib/types/nisObjectType.inc:102 ../lib/types/nisObjectType.inc:157 +msgid "New NIS object" +msgstr "Nuovo oggetto NIS" + +#: ../templates/ou_edit.php:77 +msgid "New OU created successfully." +msgstr "Nuova OU creata correttamente." + +#: ../lib/modules/windowsUser.inc:340 ../lib/modules/inetOrgPerson.inc:517 +msgid "New York" +msgstr "New York" + +#: ../lib/types/zarafaAddressListType.inc:117 +#: ../lib/types/zarafaAddressListType.inc:146 +msgid "New address list" +msgstr "Nuovo elenco indirizzi" + +#: ../lib/types/mailAlias.inc:114 ../lib/types/mailAlias.inc:143 +#: ../lib/types/alias.inc:114 ../lib/types/alias.inc:143 +msgid "New alias" +msgstr "Nuovo alias" + +#: ../lib/types/automountType.inc:110 ../lib/types/automountType.inc:217 +msgid "New automount entry" +msgstr "Nuova voce di automount" + +#: ../lib/types/automountType.inc:233 ../lib/types/automountType.inc:234 +msgid "New automount map" +msgstr "Nuova mappatura di automount" + +#: ../lib/types/pykotaBillingCodeType.inc:116 +#: ../lib/types/pykotaBillingCodeType.inc:165 +msgid "New billing code" +msgstr "Nuovo codice di fatturazione" + +#: ../lib/types/oracleContextType.inc:101 +#: ../lib/types/oracleContextType.inc:188 +msgid "New database entry" +msgstr "Nuova voce database" + +#: ../templates/config/profmanage.php:146 +msgid "New default profile set successfully." +msgstr "Nuovo profilo predefinito impostato correttamente." + +#: ../lib/types/smbDomain.inc:114 ../lib/types/smbDomain.inc:169 +msgid "New domain" +msgstr "Nuovo dominio" + +#: ../lib/types/asteriskExt.inc:117 ../lib/types/asteriskExt.inc:145 +msgid "New extension" +msgstr "Nuova estensione" + +#: ../templates/pdfedit/pdfpage.php:620 +msgid "New field" +msgstr "Nuovo campo" + +#: ../lib/types/gon.inc:140 ../lib/types/gon.inc:204 +#: ../lib/types/zarafaDynamicGroupType.inc:119 +#: ../lib/types/zarafaDynamicGroupType.inc:167 ../lib/types/group.inc:163 +#: ../lib/types/group.inc:242 ../lib/types/netgroup.inc:116 +#: ../lib/types/netgroup.inc:171 +msgid "New group" +msgstr "Nuovo gruppo" + +#: ../lib/types/host.inc:128 ../lib/types/host.inc:195 +msgid "New host" +msgstr "Nuovo computer" + +#: ../lib/modules/inetLocalMailRecipient.inc:167 +msgid "New local address" +msgstr "Nuovo indirizzo locale" + +#: ../templates/config/mainmanage.php:456 +msgid "New master password" +msgstr "Nuova password principale" + +#: ../templates/config/mainmanage.php:79 +msgid "New master password set successfully." +msgstr "Nuova password principale impostata correttamente." + +#: ../lib/lists.inc:114 +msgid "New object" +msgstr "Nuovo oggetto" + +#: ../templates/ou_edit.php:185 ../help/help.inc:263 +msgid "New organisational unit" +msgstr "Nuova unità organizzativa" + +#: ../templates/config/confmain.php:451 +#: ../lib/modules/sambaSamAccount.inc:2265 +#: ../lib/modules/posixAccount.inc:2530 ../lib/modules/windowsUser.inc:1711 +#: ../lib/modules/passwordSelfReset.inc:1059 +msgid "New password" +msgstr "Nuova password" + +#: ../templates/config/profmanage.php:133 +msgid "New password set successfully." +msgstr "Nuova password impostata correttamente." + +#: ../lib/types/ppolicyType.inc:122 ../lib/types/ppolicyType.inc:151 +msgid "New policy" +msgstr "Nuova policy" + +#: ../lib/types/pykotaPrinterType.inc:117 +#: ../lib/types/pykotaPrinterType.inc:166 +msgid "New printer" +msgstr "Nuova stampante" + +#: ../templates/config/profmanage.php:261 +#: ../templates/selfService/profManage.php:222 +msgid "New profile name" +msgstr "Nome del nuovo profilo" + +#: ../lib/modules/range.inc:101 ../lib/modules/range.inc:115 +#: ../lib/modules/range.inc:454 +msgid "New range" +msgstr "Nuovo intervallo" + +#: ../lib/modules/nisMailAlias.inc:208 +msgid "New recipient" +msgstr "Nuovo destinatario" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:81 +msgid "New required attributes" +msgstr "Nuovi attributi obbligatori" + +#: ../lib/types/gon.inc:211 ../lib/types/group.inc:249 +msgid "New role" +msgstr "Nuovo ruolo" + +#: ../templates/pdfedit/pdfpage.php:588 +msgid "New section" +msgstr "Nuova sezione" + +#: ../lib/types/kolabSharedFolderType.inc:114 +#: ../lib/types/kolabSharedFolderType.inc:143 +msgid "New shared folder" +msgstr "Nuova cartella condivisa" + +#: ../lib/types/sudo.inc:106 ../lib/types/sudo.inc:161 +msgid "New sudo role" +msgstr "Nuovo ruolo sudo" + +#: ../lib/types/user.inc:172 ../lib/types/user.inc:531 +msgid "New user" +msgstr "Nuovo utente" + +#: ../lib/modules/inetOrgPerson.inc:1826 +msgid "New user certificate" +msgstr "Nuovo certificato utente" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "New value" +msgstr "Nuovo valore" + +#: ../lib/types/bind.inc:174 ../lib/types/bind.inc:175 +msgid "New zone" +msgstr "Nuova zona" + +#: ../lib/modules/sambaDomain.inc:85 ../lib/modules/sambaDomain.inc:165 +#: ../lib/modules/sambaDomain.inc:186 ../lib/modules/sambaDomain.inc:361 +#: ../lib/modules/sambaDomain.inc:601 +msgid "Next RID" +msgstr "Prossimo RID" + +#: ../lib/modules/sambaDomain.inc:212 ../lib/modules/sambaDomain.inc:213 +msgid "Next RID is not a number!" +msgstr "Il prossimo RID non è un numero!" + +#: ../lib/modules/sambaDomain.inc:86 +msgid "Next RID to use when creating accounts (only used by Winbind)." +msgstr "Prossimo RID da utilizzare per la creazione di account (usato solo da Winbind)." + +#: ../lib/modules/sambaDomain.inc:94 +msgid "Next RID to use when creating group accounts (only used by Winbind)." +msgstr "Prossimo RID da utilizzare per la creazione di account utente (usato solo da Winbind)." + +#: ../lib/modules/sambaDomain.inc:90 +msgid "Next RID to use when creating user accounts (only used by Winbind)." +msgstr "Prossimo RID da utilizzare per la creazione di account utente (usato solo da Winbind)." + +#: ../lib/modules/sambaDomain.inc:93 ../lib/modules/sambaDomain.inc:177 +#: ../lib/modules/sambaDomain.inc:188 ../lib/modules/sambaDomain.inc:377 +#: ../lib/modules/sambaDomain.inc:603 +msgid "Next group RID" +msgstr "Prossimo RID gruppi" + +#: ../lib/modules/sambaDomain.inc:216 ../lib/modules/sambaDomain.inc:217 +msgid "Next group RID is not a number!" +msgstr "Il prossimo RID gruppi non è un numero!" + +#: ../lib/modules/sambaDomain.inc:89 ../lib/modules/sambaDomain.inc:171 +#: ../lib/modules/sambaDomain.inc:187 ../lib/modules/sambaDomain.inc:369 +#: ../lib/modules/sambaDomain.inc:602 +msgid "Next user RID" +msgstr "Prossimo RID utenti" + +#: ../lib/modules/sambaDomain.inc:214 ../lib/modules/sambaDomain.inc:215 +msgid "Next user RID is not a number!" +msgstr "Il prossimo RID utenti non è un numero!" + +#: ../lib/modules/eduPerson.inc:101 ../lib/modules/eduPerson.inc:188 +#: ../lib/modules/eduPerson.inc:226 ../lib/modules/eduPerson.inc:342 +#: ../lib/modules/eduPerson.inc:584 +msgid "Nick names" +msgstr "Soprannomi" + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/pykotaPrinter.inc:52 +#: ../lib/modules/pykotaPrinter.inc:168 ../lib/modules/pykotaPrinter.inc:169 +#: ../lib/modules/pykotaPrinter.inc:170 ../lib/modules/qmailGroup.inc:321 +#: ../lib/modules/qmailGroup.inc:322 ../lib/modules/qmailGroup.inc:323 +#: ../lib/modules/qmailGroup.inc:363 ../lib/modules/qmailGroup.inc:364 +#: ../lib/modules/qmailGroup.inc:365 ../lib/modules/qmailGroup.inc:1030 +#: ../lib/modules/qmailGroup.inc:1071 ../lib/modules/qmailGroup.inc:1077 +#: ../lib/modules/imapAccess.inc:121 +msgid "No" +msgstr "No" + +#: ../lib/types/asteriskExt.inc:144 +msgid "No Asterisk extensions found." +msgstr "Nessuna estensione Asterisk trovata." + +#: ../lib/types/dhcp.inc:171 +msgid "No DHCPs found!" +msgstr "Non è stato trovato nessun DHCP!" + +#: ../lib/types/bind.inc:160 +msgid "No DNS entries found!" +msgstr "Nessuna voce DNS individuata!" + +#: ../lib/types/nisObjectType.inc:156 +msgid "No NIS objects found!" +msgstr "Non è stato trovato nessun oggetto NIS!" + +#: ../templates/3rdParty/pla/lib/Template.php:558 +#: ../templates/3rdParty/pla/lib/Template.php:559 +msgid "No RDN attribute was selected." +msgstr "Non è stato selezionato alcun attributo RDN." + +#: ../lib/modules/sambaSamAccount.inc:1103 +#: ../lib/modules/sambaGroupMapping.inc:341 +msgid "No Samba 3 domains found in LDAP! Please create one first." +msgstr "Non è stato trovato nessun dominio Samba 3 in LDAP! Crearne uno." + +#: ../lib/modules/posixAccount.inc:581 ../lib/modules/posixAccount.inc:1367 +msgid "No Unix groups found in LDAP! Please create one first." +msgstr "Non è stato trovato nessun profilo di configurazione. Crearne uno." + +#: ../lib/modules/qmailUser.inc:42 +msgid "No access" +msgstr "Nessun accesso" + +#: ../lib/types/zarafaAddressListType.inc:145 +msgid "No address list found!" +msgstr "Non è stato trovato nessun elenco indirizzi!" + +#: ../lib/types/mailAlias.inc:142 ../lib/types/alias.inc:142 +msgid "No aliases found!" +msgstr "Non è stato trovato nessun alias!" + +#: ../lib/types/automountType.inc:216 +msgid "No automount entries found!" +msgstr "Non è stata trovata nessuna voce automount!" + +#: ../lib/types/pykotaBillingCodeType.inc:164 +msgid "No billing codes found!" +msgstr "Nessun codice di fatturazione individuato!" + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:36 +msgid "No binary data available" +msgstr "Nessun dato binario disponibile" + +#: ../templates/initsuff.php:164 +msgid "No changes were made." +msgstr "Non è stata effettuata nessuna modifica." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:83 +#, php-format +msgid "No current value for attribute %s." +msgstr "Lista corrente dei valori per l'attributo %s." + +#: ../lib/types/oracleContextType.inc:187 +msgid "No database entries found!" +msgstr "Nessuna voce database individuata!" + +#: ../templates/login.php:104 +msgid "" +"No default profile set. Please set it in the server profile configuration." +msgstr "Nessun profilo impostato. Si prega di impostarlo nella configurazione dei profili dei server." + +#: ../templates/schema/schema.php:144 +msgid "No description" +msgstr "Nessuna descrizione" + +#: ../lib/types/smbDomain.inc:168 +msgid "No domains found!" +msgstr "Nessun dominio trovato!" + +#: ../lib/modules/passwordSelfReset.inc:1546 +msgid "No email address found." +msgstr "Nessun indirizzo email trovato." + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:20 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:21 +msgid "No entry was selected to delete" +msgstr "Non è stato selezionato alcun oggetto da cancellare" + +#: ../lib/modules/ldapPublicKey.inc:483 ../lib/modules/inetOrgPerson.inc:3221 +#: ../lib/modules/customFields.inc:3642 +msgid "No file received." +msgstr "File non ricevuto." + +#: ../templates/config/mainmanage.php:161 ../lib/modules/ldapPublicKey.inc:109 +#: ../lib/modules/inetOrgPerson.inc:99 ../lib/modules/customFields.inc:3577 +msgid "No file selected." +msgstr "Nessun file selezionato." + +#: ../lib/modules/qmailUser.inc:48 +msgid "No forwarding" +msgstr "Non inoltrare" + +#: ../lib/modules/posixGroup.inc:601 ../lib/modules/posixAccount.inc:104 +msgid "No free ID-Number!" +msgstr "Non ci sono ID liberi!" + +#: ../lib/types/gon.inc:203 ../lib/types/zarafaDynamicGroupType.inc:166 +#: ../lib/types/group.inc:241 ../lib/types/netgroup.inc:170 +msgid "No groups found!" +msgstr "Non è stato trovato nessun gruppo!" + +#: ../lib/types/host.inc:194 +msgid "No hosts found!" +msgstr "Non è stato trovato nessun computer!" + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:59 +msgid "No image available" +msgstr "Nessuna immagine disponibile" + +#: ../templates/3rdParty/pla/lib/import_functions.php:94 +msgid "No import input" +msgstr "Nessun input d'importazione" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1354 +msgid "No internal attributes" +msgstr "Nessun attributo interno" + +#: ../templates/tests/lamdaemonTest.php:195 +msgid "No lamdaemon path set, please update your LAM configuration settings." +msgstr "Non è stato impostato un percorso per lamdaemon, aggiornate la vostra configurazione di LAM." + +#: ../templates/tests/lamdaemonTest.php:97 +#: ../templates/tests/lamdaemonTest.php:190 +msgid "" +"No lamdaemon server set, please update your LAM configuration settings." +msgstr "Non è stato impostato un server per lamdaemon, aggiornate la vostra configurazione di LAM." + +#: ../lib/modules/qmailUser.inc:49 +msgid "No local delivery" +msgstr "Nessuna spedizione locale" + +#: ../templates/config/mainmanage.php:412 +msgid "No logging" +msgstr "Nessun log" + +#: ../templates/pdfedit/pdfpage.php:429 +msgid "No logo" +msgstr "Nessun Logo" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:157 +msgid "No new attributes available for this entry" +msgstr "Nessun nuovo attributo disponibile per questo oggetto" + +#: ../templates/config/conftypes.php:310 ../help/help.inc:176 +msgid "No new entries" +msgstr "Nessuna nuova voce" + +#: ../templates/multiEdit.php:315 ../lib/lists.inc:113 +msgid "No objects found!" +msgstr "Non è stato trovato nessun oggetto!" + +#: ../templates/config/confmodules.php:406 +msgid "No or more than one base module selected!" +msgstr "Non può essere selezionato più di un modulo base!" + +#: ../templates/config/confsave.php:53 ../templates/config/confmain.php:55 +#: ../lib/modules/passwordSelfReset.inc:1169 +msgid "No password was entered!" +msgstr "Non è stata inserita la password!" + +#: ../lib/types/ppolicyType.inc:150 +msgid "No policies found!" +msgstr "Nessuna policy trovata!" + +#: ../lib/types/pykotaPrinterType.inc:165 +msgid "No printers found!" +msgstr "Nessuna stampante individuata!" + +#: ../templates/tests/schemaTest.php:70 +msgid "No problems found." +msgstr "Non è stato riscontrato nessun problema." + +#: ../lib/modules/qmailUser.inc:50 +msgid "No program delivery" +msgstr "Nessun programma di spedizione" + +#: ../lib/modules/pykotaGroup.inc:63 ../lib/modules/pykotaUser.inc:63 +msgid "No quota" +msgstr "Nessuna quota" + +#: ../lib/types/gon.inc:210 ../lib/types/group.inc:248 +msgid "No roles found!" +msgstr "Nessun ruolo individuato!" + +#: ../lib/modules/customScripts.inc:215 +msgid "No scripts to run." +msgstr "Nessun script da eseguire." + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "No section text specified" +msgstr "Non è stato inserito nessun testo di sezione" + +#: ../lib/modules/passwordSelfReset.inc:1199 +msgid "No security answer found." +msgstr "Non è stata trovata nessuna risposta di sicurezza." + +#: ../templates/config/conflogin.php:137 +msgid "No server profiles found. Please create one." +msgstr "Non è stato trovato nessun profilo del server. Crearne uno." + +#: ../lib/types/kolabSharedFolderType.inc:142 +msgid "No shared folders found!" +msgstr "Nessuna cartella condivisa individuata!" + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "No static text specified" +msgstr "Non è stato inserito nessun testo statico" + +#: ../lib/modules/dhcp_settings.inc:318 +msgid "No subnet entered." +msgstr "Non è stata inserita la sottorete!" + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:45 +msgid "No such entry" +msgstr "Oggetto inesistente" + +#: ../templates/3rdParty/pla/htdocs/compare.php:24 +#: ../templates/3rdParty/pla/htdocs/compare.php:27 +#: ../templates/3rdParty/pla/htdocs/delete.php:19 +msgid "No such entry." +msgstr "Oggetto inesistente." + +#: ../templates/schema/schema.php:438 +#, php-format +msgid "No such schema item: \"%s\"" +msgstr "Il seguente oggetto non è presente nello schema: \"%s\"" + +#: ../lib/types/sudo.inc:160 +msgid "No sudo roles found!" +msgstr "Nessun ruolo sudo trovato!" + +#: ../lib/types/user.inc:530 +msgid "No users found!" +msgstr "Non è stato trovato nessun utente!" + +#: ../templates/config/mainmanage.php:444 +msgid "Non-standard (\\n)" +msgstr "Non-standard (\\n)" + +#: ../lib/modules/qmailUser.inc:58 +msgid "None" +msgstr "Nulla" + +#: ../lib/modules/sudoRole.inc:133 ../lib/modules/sudoRole.inc:195 +#: ../lib/modules/sudoRole.inc:222 ../lib/modules/sudoRole.inc:281 +#: ../lib/modules/sudoRole.inc:481 ../lib/modules/sudoRole.inc:822 +msgid "Not after" +msgstr "Non dopo" + +#: ../lib/modules/sudoRole.inc:128 ../lib/modules/sudoRole.inc:201 +#: ../lib/modules/sudoRole.inc:223 ../lib/modules/sudoRole.inc:283 +#: ../lib/modules/sudoRole.inc:474 ../lib/modules/sudoRole.inc:817 +msgid "Not before" +msgstr "Non prima" + +#: ../help/help.inc:68 +msgid "Note" +msgstr "Nota" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:125 +msgid "" +"Note: You may be required to enter new attributes that these object classes " +"require" +msgstr "Nota: Potrebbe essere necessario immettere nuovi attributi necessari a questa classe di oggetti" + +#: ../lib/modules/windowsGroup.inc:122 ../lib/modules/windowsGroup.inc:189 +#: ../lib/modules/windowsGroup.inc:259 ../lib/modules/windowsGroup.inc:349 +#: ../lib/modules/windowsGroup.inc:747 +msgid "Notes" +msgstr "Note" + +#: ../templates/3rdParty/pla/lib/export_functions.php:450 +msgid "Nothing to export" +msgstr "Nulla da esportare" + +#: ../templates/config/mainmanage.php:408 +msgid "Notice" +msgstr "Nota (notice)" + +#: ../templates/delete.php:103 +msgid "Number of child entries" +msgstr "Numero di oggetti figli" + +#: ../lib/modules/customFields.inc:129 +msgid "Number of columns in text area." +msgstr "Numero di colonne nell'area di testo." + +#: ../lib/modules/shadowAccount.inc:182 +msgid "" +"Number of days a user can login even his password has expired. -1=always." +msgstr "Numero di giorni per i quali un utente può collegarsi dopo la scadenza della password: -1 = sempre." + +#: ../lib/modules/shadowAccount.inc:186 +msgid "" +"Number of days a user has to wait until he is allowed to change his password" +" again. If set value must be >0." +msgstr "Numero di giorni per i quali un utente deve attendere prima di poter cambiare nuovamente la sua password. Se impostato il valore deve essere >0." + +#: ../lib/modules/shadowAccount.inc:190 +msgid "" +"Number of days after a user has to change his password again. If set value " +"must be >0." +msgstr "Numero di giorni dopo i quali un utente deve cambiare nuovamente la password. Se impostato il valore deve essere >0." + +#: ../lib/modules/mitKerberos.inc:129 +msgid "Number of failed logins." +msgstr "Numero di accessi falliti." + +#: ../lib/modules/sambaDomain.inc:138 +msgid "Number of minutes after which the bad logon attempts are reset." +msgstr "Numero di minuti dopo i quali i tentaviti di logon falliti vengono azzerati." + +#: ../lib/modules/pykotaBillingCode.inc:90 +msgid "Number of pages printed with this billing code." +msgstr "Numero di pagine stampate con questo codice di pagamento. " + +#: ../lib/modules/customFields.inc:133 +msgid "Number of rows in text area." +msgstr "Numero di righe nell'area di testo." + +#: ../templates/config/mainmanage.php:395 ../help/help.inc:162 +msgid "Number of rules that must match" +msgstr "Numero delle regole che debbono coincidere" + +#: ../lib/modules/ppolicy.inc:85 ../lib/modules/sambaDomain.inc:126 +msgid "" +"Number of seconds after the user is allowed to change his password again." +msgstr "Numero di secondi dopo i quali ad un utente è permesso cambiare nuovamente la password." + +#: ../lib/modules/ppolicy.inc:89 ../lib/modules/sambaDomain.inc:130 +msgid "Number of seconds after which the user must change his password." +msgstr "Numero di secondi dopo i quali un utente deve cambiare la propria password." + +#: ../templates/schema/schema.php:147 ../templates/schema/schema.php:344 +msgid "OID" +msgstr "OID" + +#: ../templates/ou_edit.php:83 +msgid "OU already exists!" +msgstr "La OU esiste già!" + +#: ../templates/ou_edit.php:94 +msgid "OU deleted successfully." +msgstr "OU cancellata correttamente!" + +#: ../templates/ou_edit.php:152 ../lib/tools/ouEditor.inc:44 +msgid "OU editor" +msgstr "Editor delle OU" + +#: ../templates/ou_edit.php:87 +msgid "OU is invalid!" +msgstr "La OU non è valida!" + +#: ../templates/ou_edit.php:131 +msgid "OU is not empty or invalid!" +msgstr "La OU non è vuota o non è valida!" + +#: ../help/help.inc:263 ../help/help.inc:265 +msgid "OU-Editor" +msgstr "Editor delle OU" + +#: ../templates/schema/schema.php:65 ../templates/schema/schema.php:66 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1324 +#: ../lib/modules/selfRegistration.inc:74 +#: ../lib/modules/selfRegistration.inc:214 ../lib/modules/customFields.inc:80 +#: ../lib/modules/customFields.inc:574 +msgid "Object classes" +msgstr "Classi di oggetti" + +#: ../lib/lists.inc:112 +#, php-format +msgid "Object count: %s" +msgstr "Conteggio oggetti: %s" + +#: ../templates/schema/schema.php:152 ../templates/schema/schema.php:283 +msgid "Obsolete" +msgstr "Obsoleto" + +#: ../lib/modules/sambaDomain.inc:289 ../lib/modules/sambaDomain.inc:298 +#: ../lib/modules/sambaDomain.inc:307 ../lib/modules/sambaDomain.inc:614 +#: ../lib/modules/sambaDomain.inc:619 ../lib/modules/sambaDomain.inc:624 +msgid "Off" +msgstr "Non attivo" + +#: ../lib/modules/windowsUser.inc:152 ../lib/modules/windowsUser.inc:344 +#: ../lib/modules/windowsUser.inc:508 ../lib/modules/windowsUser.inc:541 +#: ../lib/modules/windowsUser.inc:713 ../lib/modules/windowsUser.inc:1596 +#: ../lib/modules/windowsUser.inc:1725 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:199 ../lib/modules/inetOrgPerson.inc:531 +#: ../lib/modules/inetOrgPerson.inc:566 ../lib/modules/inetOrgPerson.inc:792 +#: ../lib/modules/inetOrgPerson.inc:796 ../lib/modules/inetOrgPerson.inc:1358 +#: ../lib/modules/inetOrgPerson.inc:1361 ../lib/modules/inetOrgPerson.inc:1911 +#: ../lib/modules/inetOrgPerson.inc:2621 ../lib/modules/inetOrgPerson.inc:3525 +#: ../lib/modules/inetOrgPerson.inc:3581 +msgid "Office name" +msgstr "Nome dell'ufficio" + +#: ../templates/lists/changePassword.php:340 +#: ../templates/lists/changePassword.php:377 +#: ../templates/lists/changePassword.php:418 +#: ../templates/lists/changePassword.php:449 +#: ../templates/tests/lamdaemonTest.php:92 ../templates/ou_edit.php:193 +#: ../templates/ou_edit.php:207 ../templates/masscreate.php:211 +#: ../templates/config/profmanage.php:254 +#: ../templates/config/profmanage.php:266 +#: ../templates/config/profmanage.php:275 +#: ../templates/config/profmanage.php:293 +#: ../templates/config/profmanage.php:302 +#: ../templates/config/profmanage.php:304 +#: ../templates/config/mainmanage.php:469 +#: ../templates/config/conflogin.php:177 ../templates/config/mainlogin.php:165 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminLogin.php:165 +#: ../templates/selfService/adminMain.php:626 +#: ../templates/selfService/adminMain.php:679 +#: ../templates/pdfedit/pdfmain.php:210 ../templates/pdfedit/pdfmain.php:217 +#: ../templates/pdfedit/pdfmain.php:223 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/profedit/profilemain.php:205 +#: ../templates/profedit/profilemain.php:211 +#: ../lib/types/automountType.inc:234 ../lib/types/user.inc:303 +#: ../lib/types/bind.inc:175 ../lib/modules/selfRegistration.inc:446 +#: ../lib/modules/zarafaContact.inc:433 ../lib/modules/zarafaGroup.inc:493 +#: ../lib/modules/device.inc:300 ../lib/modules/sambaSamAccount.inc:1431 +#: ../lib/modules/sambaSamAccount.inc:1566 ../lib/modules/zarafaUser.inc:917 +#: ../lib/modules/zarafaUser.inc:968 ../lib/modules/sambaGroupMapping.inc:508 +#: ../lib/modules/nisnetgroup.inc:479 ../lib/modules/nisnetgroup.inc:489 +#: ../lib/modules/asteriskExtension.inc:484 ../lib/modules/aliasEntry.inc:146 +#: ../lib/modules/aliasEntry.inc:166 ../lib/modules/qmailGroup.inc:862 +#: ../lib/modules/imapAccess.inc:295 ../lib/modules/organizationalRole.inc:337 +#: ../lib/modules/passwordSelfReset.inc:872 +#: ../lib/modules/passwordSelfReset.inc:1094 +#: ../lib/modules/windowsGroup.inc:603 ../lib/modules/groupOfNames.inc:394 +#: ../lib/modules/groupOfNames.inc:549 ../lib/modules/nisMailAlias.inc:375 +#: ../lib/modules/nisMailAlias.inc:384 ../lib/lists.inc:710 +#: ../lib/lists.inc:792 ../lib/modules.inc:1221 +msgid "Ok" +msgstr "Ok" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:98 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +msgid "Old value" +msgstr "Vecchio valore" + +#: ../lib/modules/sambaDomain.inc:289 ../lib/modules/sambaDomain.inc:298 +#: ../lib/modules/sambaDomain.inc:307 ../lib/modules/sambaDomain.inc:615 +#: ../lib/modules/sambaDomain.inc:620 ../lib/modules/sambaDomain.inc:625 +msgid "On" +msgstr "Attivo" + +#: ../lib/modules/sambaSamAccount.inc:243 +#: ../lib/modules/sambaSamAccount.inc:384 +#: ../lib/modules/sambaSamAccount.inc:1552 +#: ../lib/modules/sambaSamAccount.inc:1962 +msgid "On broken or timed out connection" +msgstr "Su connessione interrotta o scaduta" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:139 +#: ../templates/3rdParty/pla/htdocs/export_form.php:32 +msgid "One (one level beneath base)" +msgstr "Uno (un livello sotto la base)" + +#: ../lib/modules/range.inc:114 ../lib/modules/fixed_ip.inc:127 +msgid "One or more errors occured. The invalid fields are marked." +msgstr "Si sono verificati uno o più errori. I campi non validi sono stati evidenziati." + +#: ../templates/3rdParty/pla/htdocs/copy.php:98 +#: ../templates/3rdParty/pla/htdocs/copy.php:155 +#, php-format +msgid "Operation not successful. DN %s has not been created." +msgstr "L'operazione non ha avuto successo. Il DN %s non è stato creato." + +#: ../templates/serverInfo.php:277 ../templates/serverInfo.php:367 +msgid "Operation statistics" +msgstr "Statistica operazione" + +#: ../templates/3rdParty/pla/htdocs/copy.php:95 +#: ../templates/3rdParty/pla/htdocs/copy.php:153 +#, php-format +msgid "Operation successful. DN %s has been created." +msgstr "Operazione eseguita con successo. Il DN %s è stato creato." + +#: ../templates/multiEdit.php:117 ../help/help.inc:273 +msgid "Operations" +msgstr "Operazioni" + +#: ../templates/schema/schema.php:384 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1575 +msgid "Optional attributes" +msgstr "Attributi opzionali" + +#: ../lib/modules/fixed_ip.inc:111 +msgid "Optional description for the PC." +msgstr "Descrizione opzionale per il PC." + +#: ../lib/types/sudo.inc:83 ../lib/modules/mitKerberos.inc:408 +#: ../lib/modules/zarafaDynamicGroup.inc:267 +#: ../lib/modules/zarafaContact.inc:241 ../lib/modules/zarafaGroup.inc:278 +#: ../lib/modules/posixAccount.inc:245 ../lib/modules/zarafaUser.inc:571 +#: ../lib/modules/windowsUser.inc:723 ../lib/modules/kolabUser.inc:379 +#: ../lib/modules/sudoRole.inc:94 ../lib/modules/sudoRole.inc:123 +#: ../lib/modules/sudoRole.inc:189 ../lib/modules/sudoRole.inc:221 +#: ../lib/modules/sudoRole.inc:233 ../lib/modules/sudoRole.inc:451 +#: ../lib/modules/sudoRole.inc:811 ../lib/modules/asteriskExtension.inc:122 +#: ../lib/modules/asteriskVoicemail.inc:115 +#: ../lib/modules/asteriskVoicemail.inc:125 +#: ../lib/modules/asteriskVoicemail.inc:142 +#: ../lib/modules/asteriskVoicemail.inc:190 +#: ../lib/modules/asteriskVoicemail.inc:258 +#: ../lib/modules/asteriskVoicemail.inc:375 ../lib/modules/qmailGroup.inc:611 +#: ../lib/modules/heimdalKerberos.inc:339 +msgid "Options" +msgstr "Opzioni" + +#: ../lib/modules/asteriskVoicemail.inc:116 +msgid "Options for Asterisk voicemail account (e.g. sendvoicemail=yes)." +msgstr "Opzioni per gli account voicemail Asterisk (es. sendvoicemail=yes)." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:39 +msgid "Or paste your LDIF here" +msgstr "O incolla il tuo LDIF qui" + +#: ../lib/modules/oracleService.inc:47 +msgid "Oracle database" +msgstr "Database Oracle" + +#: ../lib/types/oracleContextType.inc:48 +msgid "Oracle database entries" +msgstr "Voci database Oracle" + +#: ../lib/types/oracleContextType.inc:39 +msgid "Oracle databases" +msgstr "Database Oracle" + +#: ../lib/modules/sudoRole.inc:138 ../lib/modules/sudoRole.inc:207 +#: ../lib/modules/sudoRole.inc:224 ../lib/modules/sudoRole.inc:285 +#: ../lib/modules/sudoRole.inc:484 ../lib/modules/sudoRole.inc:812 +msgid "Order" +msgstr "Ordine" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:166 +msgid "Order by" +msgstr "Ordina per" + +#: ../templates/schema/schema.php:171 +msgid "Ordering" +msgstr "Ordinamento" + +#: ../lib/modules/eduPerson.inc:126 ../lib/modules/eduPerson.inc:200 +#: ../lib/modules/eduPerson.inc:227 ../lib/modules/eduPerson.inc:245 +#: ../lib/modules/eduPerson.inc:346 ../lib/modules/eduPerson.inc:587 +#: ../lib/modules/inetOrgPerson.inc:223 ../lib/modules/inetOrgPerson.inc:499 +#: ../lib/modules/inetOrgPerson.inc:608 ../lib/modules/inetOrgPerson.inc:824 +#: ../lib/modules/inetOrgPerson.inc:828 ../lib/modules/inetOrgPerson.inc:1499 +#: ../lib/modules/inetOrgPerson.inc:1502 ../lib/modules/inetOrgPerson.inc:1916 +#: ../lib/modules/inetOrgPerson.inc:3553 ../lib/modules/inetOrgPerson.inc:3588 +msgid "Organisation" +msgstr "Organizzazione" + +#: ../lib/modules/inetOrgPerson.inc:163 ../lib/modules/inetOrgPerson.inc:220 +#: ../lib/modules/inetOrgPerson.inc:491 ../lib/modules/inetOrgPerson.inc:611 +#: ../lib/modules/inetOrgPerson.inc:816 ../lib/modules/inetOrgPerson.inc:820 +#: ../lib/modules/inetOrgPerson.inc:1490 ../lib/modules/inetOrgPerson.inc:1493 +#: ../lib/modules/inetOrgPerson.inc:1915 ../lib/modules/inetOrgPerson.inc:2753 +#: ../lib/modules/inetOrgPerson.inc:3551 ../lib/modules/inetOrgPerson.inc:3588 +msgid "Organisational unit" +msgstr "Unità organizzativa" + +#: ../lib/modules/eduPerson.inc:134 ../lib/modules/eduPerson.inc:138 +#: ../lib/modules/eduPerson.inc:212 ../lib/modules/eduPerson.inc:228 +#: ../lib/modules/eduPerson.inc:350 ../lib/modules/eduPerson.inc:589 +msgid "Organisational units" +msgstr "Unità organizzative" + +#: ../lib/modules/eduPerson.inc:249 +msgid "Organisational units contains an invalid entry." +msgstr "Le unità organizzative contengono un oggetto non valido." + +#: ../templates/multiEdit.php:98 ../templates/config/confmain.php:328 +msgid "Other" +msgstr "Altro" + +#: ../lib/modules/windowsUser.inc:144 ../lib/modules/windowsUser.inc:148 +#: ../lib/modules/windowsUser.inc:368 ../lib/modules/windowsUser.inc:507 +#: ../lib/modules/windowsUser.inc:603 ../lib/modules/windowsUser.inc:719 +#: ../lib/modules/windowsUser.inc:1595 +msgid "Other telephone numbers" +msgstr "Altri numeri di telefono" + +#: ../lib/modules/windowsUser.inc:180 ../lib/modules/windowsUser.inc:184 +#: ../lib/modules/windowsUser.inc:380 ../lib/modules/windowsUser.inc:515 +#: ../lib/modules/windowsUser.inc:721 ../lib/modules/windowsUser.inc:1603 +msgid "Other web sites" +msgstr "Altri siti web" + +#: ../lib/modules/customScripts.inc:84 ../lib/modules/customScripts.inc:100 +#: ../lib/modules/customScripts.inc:110 +msgid "Output may contain HTML" +msgstr "L'output può contenere HTML" + +#: ../lib/modules/customScripts.inc:264 ../lib/modules/customScripts.inc:554 +#, php-format +msgid "Output of command \"%s\" with return code %s" +msgstr "Output del comando \"%s\" con codice di ritorno %s" + +#: ../lib/modules/pykotaUser.inc:144 ../lib/modules/pykotaUser.inc:171 +#: ../lib/modules/pykotaUser.inc:253 ../lib/modules/pykotaUser.inc:263 +#: ../lib/modules/pykotaUser.inc:324 ../lib/modules/pykotaUser.inc:402 +#: ../lib/modules/pykotaUser.inc:899 +msgid "Overcharge factor" +msgstr "Fattore ricarico" + +#: ../lib/modules/pykotaUser.inc:145 +msgid "" +"Overcharge factor that is applied when computing the cost of a print job. " +"The number of pages is not changed." +msgstr "Il fattore di ricarico che è applicato quando si computa il costo di un lavoro di stampa. Il numero di pagine non viene cambiato." + +#: ../templates/serverInfo.php:168 +msgid "Overlays" +msgstr "Sovrapposizioni" + +#: ../lib/modules/zarafaUser.inc:89 +msgid "Override default quota settings." +msgstr "Supera le impostazioni di quota predefinite." + +#: ../templates/config/confmain.php:320 ../lib/types/asteriskExt.inc:96 +#: ../lib/types/asteriskExt.inc:158 +msgid "Owner" +msgstr "Proprietario" + +#: ../lib/types/gon.inc:108 ../lib/modules/device.inc:69 +#: ../lib/modules/device.inc:73 ../lib/modules/device.inc:103 +#: ../lib/modules/device.inc:128 ../lib/modules/device.inc:180 +#: ../lib/modules/device.inc:424 ../lib/modules/groupOfNames.inc:93 +#: ../lib/modules/groupOfNames.inc:97 ../lib/modules/groupOfNames.inc:143 +#: ../lib/modules/groupOfNames.inc:174 ../lib/modules/groupOfNames.inc:197 +#: ../lib/modules/groupOfNames.inc:240 ../lib/modules/groupOfNames.inc:398 +#: ../lib/modules/groupOfNames.inc:702 +msgid "Owners" +msgstr "Proprietari" + +#: ../lib/modules/dhcp_settings.inc:97 +msgid "P-Node (0x02)" +msgstr "Nodo-P (0x02)" + +#: ../lib/modules/fixed_ip.inc:98 ../lib/modules/fixed_ip.inc:425 +#: ../lib/modules/fixed_ip.inc:740 +msgid "PC name" +msgstr "Nome del PC" + +#: ../lib/modules/windowsHost.inc:96 +msgid "PC01" +msgstr "PC01" + +#: ../templates/pdfedit/pdfpage.php:445 ../templates/pdfedit/pdfmain.php:84 +#: ../lib/tools/pdfEdit.inc:44 +msgid "PDF editor" +msgstr "Editor PDF" + +#: ../templates/masscreate.php:275 ../templates/pdfedit/pdfmain.php:310 +#: ../lib/lists.inc:688 ../help/help.inc:204 +msgid "PDF structure" +msgstr "Struttura PDF" + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "PDF structure name not valid" +msgstr "Nome della struttura PDF non valido" + +#: ../templates/pdfedit/pdfmain.php:168 +msgid "PDF structure was successfully saved." +msgstr "La struttura PDF è stata salvata correttamente." + +#: ../templates/pdfedit/pdfmain.php:277 +msgid "PDF structures" +msgstr "Strutture PDF" + +#: ../templates/serverInfo.php:264 +msgid "PDUs sent" +msgstr "PDU inviato" + +#: ../templates/config/mainmanage.php:432 ../help/help.inc:158 +msgid "PHP error reporting" +msgstr "Segnalazioni di errore PHP" + +#: ../templates/config/mainmanage.php:428 +msgid "PHP system setting" +msgstr "Impostazioni di sistema PHP" + +#: ../lib/modules/zarafaUser.inc:306 ../lib/modules/zarafaUser.inc:645 +#: ../lib/modules/zarafaUser.inc:1334 +msgid "POP3" +msgstr "POP3" + +#: ../templates/lists/changePassword.php:406 +#: ../templates/lists/changePassword.php:437 ../lib/types/user.inc:376 +#: ../lib/types/user.inc:408 +msgid "PPolicy" +msgstr "PPolicy" + +#: ../lib/modules/bindDLZ.inc:108 ../lib/modules/bindDLZ.inc:294 +#: ../lib/modules/bindDLZ.inc:300 ../lib/modules/bindDLZ.inc:478 +msgid "PTR record" +msgstr "Record PTR" + +#: ../lib/modules/bindDLZ.inc:415 ../lib/modules/bindDLZ.inc:434 +#: ../lib/modules/bindDLZ.inc:1489 +msgid "PTR records" +msgstr "Records PTR" + +#: ../lib/modules/sambaSamAccount.inc:556 +msgid "Pacific Time (US & Canada)" +msgstr "Pacifico (Stati uniti e Canada)" + +#: ../lib/modules/dhcp_settings.inc:166 +msgid "" +"Packets are sent to the default gateway if the receiver does not reside in " +"the same network. The default gateway routes them to the target network." +msgstr "I pacchetti sono inviati al router di default se il destinatario non risiede nella stessa rete. Il router di default li instrada nella rete di destinazione." + +#: ../lib/types/pykotaBillingCodeType.inc:94 +#: ../lib/modules/pykotaBillingCode.inc:89 +#: ../lib/modules/pykotaBillingCode.inc:118 +#: ../lib/modules/pykotaBillingCode.inc:151 +#: ../lib/modules/pykotaBillingCode.inc:264 +msgid "Page count" +msgstr "Conteggio pagine" + +#: ../templates/selfService/adminMain.php:521 ../help/help.inc:234 +msgid "Page header" +msgstr "Intestazione di pagina" + +#: ../templates/selfService/adminMain.php:434 +msgid "Page layout" +msgstr "Layout di pagina" + +#: ../lib/modules/asteriskVoicemail.inc:111 +#: ../lib/modules/asteriskVoicemail.inc:141 +#: ../lib/modules/asteriskVoicemail.inc:184 +#: ../lib/modules/asteriskVoicemail.inc:256 +#: ../lib/modules/asteriskVoicemail.inc:373 +msgid "Pager" +msgstr "Cercapersone" + +#: ../lib/modules/asteriskVoicemail.inc:112 +msgid "Pager number for Asterisk voicemail." +msgstr "Numero cercapersone per la voicemail Asterisk." + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:35 +msgid "Parent DN" +msgstr "DN padre" + +#: ../lib/modules/puppetClient.inc:88 ../lib/modules/puppetClient.inc:134 +#: ../lib/modules/puppetClient.inc:154 ../lib/modules/puppetClient.inc:265 +#: ../lib/modules/puppetClient.inc:431 ../lib/modules/puppetClient.inc:466 +msgid "Parent node" +msgstr "Nodo padre" + +#: ../lib/modules/puppetClient.inc:190 +msgid "Parent node not found." +msgstr "Nodo padre non trovato." + +#: ../templates/schema/schema.php:366 +msgid "Parent to" +msgstr "Padre di" + +#: ../templates/3rdParty/pla/htdocs/import.php:98 +msgid "Parse error" +msgstr "Errore di filtraggio" + +#: ../lib/modules/pykotaPrinter.inc:107 ../lib/modules/pykotaPrinter.inc:166 +#: ../lib/modules/pykotaPrinter.inc:196 ../lib/modules/pykotaPrinter.inc:243 +#: ../lib/modules/pykotaPrinter.inc:595 +msgid "Passthrough" +msgstr "Passthrough" + +#: ../templates/lists/changePassword.php:356 ../templates/login.php:379 +#: ../templates/selfService/selfServiceLogin.php:323 +#: ../lib/selfService.inc:393 ../lib/modules/mitKerberos.inc:156 +#: ../lib/modules/mitKerberos.inc:242 ../lib/modules/mitKerberos.inc:257 +#: ../lib/modules/mitKerberos.inc:795 ../lib/modules/mitKerberos.inc:798 +#: ../lib/modules/selfRegistration.inc:407 +#: ../lib/modules/selfRegistration.inc:533 +#: ../lib/modules/selfRegistration.inc:536 +#: ../lib/modules/selfRegistration.inc:539 +#: ../lib/modules/asteriskAccount.inc:115 +#: ../lib/modules/asteriskAccount.inc:325 ../lib/modules/posixGroup.inc:205 +#: ../lib/modules/posixGroup.inc:598 ../lib/modules/sambaSamAccount.inc:105 +#: ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:250 +#: ../lib/modules/sambaSamAccount.inc:425 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/posixAccount.inc:110 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:332 ../lib/modules/posixAccount.inc:418 +#: ../lib/modules/posixAccount.inc:522 ../lib/modules/posixAccount.inc:1496 +#: ../lib/modules/posixAccount.inc:1868 ../lib/modules/posixAccount.inc:1871 +#: ../lib/modules/windowsUser.inc:223 ../lib/modules/windowsUser.inc:272 +#: ../lib/modules/windowsUser.inc:524 ../lib/modules/windowsUser.inc:549 +#: ../lib/modules/windowsUser.inc:615 ../lib/modules/windowsUser.inc:616 +#: ../lib/modules/windowsUser.inc:1638 ../lib/modules/windowsUser.inc:1641 +#: ../lib/modules/inetOrgPerson.inc:840 ../lib/modules/inetOrgPerson.inc:1556 +#: ../lib/modules/inetOrgPerson.inc:2052 ../lib/modules/inetOrgPerson.inc:3590 +#: ../lib/modules/asteriskVoicemail.inc:99 +#: ../lib/modules/asteriskVoicemail.inc:165 +#: ../lib/modules/customFields.inc:2444 ../lib/modules/heimdalKerberos.inc:124 +#: ../lib/modules/heimdalKerberos.inc:211 +#: ../lib/modules/heimdalKerberos.inc:223 +#: ../lib/modules/heimdalKerberos.inc:695 +#: ../lib/modules/heimdalKerberos.inc:698 ../lib/modules.inc:1043 +#: ../help/help.inc:202 +msgid "Password" +msgstr "Password" + +#: ../lib/modules/sambaSamAccount.inc:294 +#: ../lib/modules/sambaSamAccount.inc:1155 ../lib/modules/windowsUser.inc:214 +#: ../lib/modules/windowsUser.inc:410 ../lib/modules/windowsUser.inc:522 +#: ../lib/modules/windowsUser.inc:1626 +msgid "Password change at next login" +msgstr "Cambia la password al prossimo login" + +#: ../lib/modules/mitKerberos.inc:148 ../lib/modules/mitKerberos.inc:261 +#: ../lib/modules/heimdalKerberos.inc:118 +#: ../lib/modules/heimdalKerberos.inc:227 +msgid "Password change command" +msgstr "Comando per il cambio della password" + +#: ../templates/lists/changePassword.php:295 +msgid "Password change options" +msgstr "Opzioni di cambio password" + +#: ../lib/modules/ppolicyUser.inc:59 ../lib/modules/ppolicyUser.inc:74 +#: ../lib/modules/ppolicyUser.inc:132 ../lib/modules/ppolicyUser.inc:265 +msgid "Password change required" +msgstr "Cambio password obbligatorio" + +#: ../lib/types/ppolicyType.inc:91 ../lib/modules/ppolicy.inc:136 +#: ../lib/modules/ppolicy.inc:156 ../lib/modules/ppolicy.inc:300 +#: ../lib/modules/ppolicy.inc:510 +msgid "Password change requires old password" +msgstr "Il cambio della password richiede la vecchia password" + +#: ../lib/modules/mitKerberos.inc:189 ../lib/modules/mitKerberos.inc:467 +#: ../lib/modules/heimdalKerberos.inc:154 +#: ../lib/modules/heimdalKerberos.inc:393 +msgid "Password change service" +msgstr "Servizio di cambio password" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:30 +msgid "Password check" +msgstr "Verifica password" + +#: ../lib/modules/mitKerberos.inc:297 ../lib/modules/selfRegistration.inc:536 +#: ../lib/modules/posixGroup.inc:598 ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:107 ../lib/modules/posixAccount.inc:110 +#: ../lib/modules/posixAccount.inc:111 ../lib/modules/windowsUser.inc:616 +#: ../lib/modules/inetOrgPerson.inc:105 +msgid "Password contains invalid characters. Valid characters are:" +msgstr "La password contiene caratteri non validi. I caratteri validi sono:" + +#: ../lib/modules/sambaSamAccount.inc:279 +#: ../lib/modules/sambaSamAccount.inc:282 +#: ../lib/modules/sambaSamAccount.inc:447 +#: ../lib/modules/sambaSamAccount.inc:1145 +#: ../lib/modules/sambaSamAccount.inc:1737 ../lib/modules/windowsUser.inc:198 +#: ../lib/modules/windowsUser.inc:394 ../lib/modules/windowsUser.inc:518 +#: ../lib/modules/windowsUser.inc:747 ../lib/modules/windowsUser.inc:1616 +msgid "Password does not expire" +msgstr "La password non scade" + +#: ../lib/types/user.inc:103 ../lib/modules/shadowAccount.inc:61 +#: ../lib/modules/shadowAccount.inc:113 ../lib/modules/shadowAccount.inc:170 +#: ../lib/modules/shadowAccount.inc:181 ../lib/modules/shadowAccount.inc:215 +#: ../lib/modules/shadowAccount.inc:324 ../lib/modules/shadowAccount.inc:502 +msgid "Password expiration" +msgstr "Scadenza password" + +#: ../lib/modules/shadowAccount.inc:61 ../lib/modules/shadowAccount.inc:62 +msgid "Password expiration must be are natural number or -1." +msgstr "La scadenza password deve essere un numero naturale o -1" + +#: ../templates/selfService/adminMain.php:505 ../help/help.inc:238 +msgid "Password field label" +msgstr "Etichetta campo password" + +#: ../lib/modules/asteriskVoicemail.inc:100 +msgid "Password for voicemail mailbox." +msgstr "Password per la mailbox voicemail." + +#: ../lib/modules/posixGroup.inc:504 ../lib/modules/posixGroup.inc:557 +#: ../lib/modules/posixAccount.inc:191 ../lib/modules/posixAccount.inc:247 +#: ../lib/modules/posixAccount.inc:457 ../lib/modules/inetOrgPerson.inc:812 +#: ../lib/modules/inetOrgPerson.inc:3500 ../lib/modules/customFields.inc:136 +#: ../lib/modules/customFields.inc:2458 +msgid "Password hash type" +msgstr "Tipo di codifica della password" + +#: ../lib/types/ppolicyType.inc:80 ../lib/modules/ppolicy.inc:92 +#: ../lib/modules/ppolicy.inc:145 ../lib/modules/ppolicy.inc:169 +#: ../lib/modules/ppolicy.inc:230 ../lib/modules/ppolicy.inc:474 +#: ../lib/modules/sambaDomain.inc:105 ../lib/modules/sambaDomain.inc:191 +#: ../lib/modules/sambaDomain.inc:283 ../lib/modules/sambaDomain.inc:606 +msgid "Password history length" +msgstr "Numero di password ricordate" + +#: ../templates/config/confmain.php:367 +msgid "Password mail settings" +msgstr "Impostazioni password della posta" + +#: ../lib/modules/shadowAccount.inc:59 ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/ppolicy.inc:167 ../lib/modules/sambaDomain.inc:222 +msgid "Password maximum age must be are natural number." +msgstr "L'età massima della password deve essere un numero naturale." + +#: ../lib/modules/shadowAccount.inc:66 +msgid "Password maximum age must be bigger as password minimum age." +msgstr "L'età massima della password deve essere più grande dell'età minima." + +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/ppolicy.inc:168 +#: ../lib/modules/sambaDomain.inc:220 +msgid "Password maximum age must be bigger than password minimum age." +msgstr "L'età massima della password deve essere più grande dell'età minima." + +#: ../lib/modules/shadowAccount.inc:57 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/ppolicy.inc:166 ../lib/modules/sambaDomain.inc:221 +msgid "Password minimum age must be are natural number." +msgstr "L'età minima della password deve essere un numero naturale." + +#: ../templates/config/mainmanage.php:401 ../help/help.inc:166 +msgid "Password must not contain part of user/first/last name" +msgstr "Le password non devono contenere parte del cognome/nome dell'utente" + +#: ../templates/config/mainmanage.php:399 ../help/help.inc:164 +msgid "Password must not contain user name" +msgstr "La password non deve contenere il nome utente" + +#: ../lib/modules/imapAccess.inc:94 ../lib/modules/imapAccess.inc:290 +msgid "Password of IMAP admin user" +msgstr "Password dell'utente admin IMAP" + +#: ../lib/types/ppolicyType.inc:39 +msgid "Password policies" +msgstr "Policy della password" + +#: ../lib/types/ppolicyType.inc:48 +msgid "Password policies (ppolicy)" +msgstr "Policy della password (ppolicy)" + +#: ../templates/config/mainmanage.php:382 ../lib/types/user.inc:284 +#: ../lib/types/user.inc:837 ../lib/modules/ppolicyUser.inc:45 +#: ../lib/modules/ppolicyUser.inc:55 ../lib/modules/ppolicyUser.inc:67 +#: ../lib/modules/ppolicyUser.inc:83 ../lib/modules/ppolicyUser.inc:123 +#: ../lib/modules/ppolicyUser.inc:260 ../lib/modules/ppolicyUser.inc:293 +#: ../lib/modules/ppolicy.inc:62 ../lib/modules/sambaDomain.inc:266 +#: ../help/help.inc:154 +msgid "Password policy" +msgstr "Policy della password" + +#: ../lib/types/ppolicyType.inc:81 ../lib/modules/ppolicy.inc:96 +#: ../lib/modules/ppolicy.inc:146 ../lib/modules/ppolicy.inc:242 +#: ../lib/modules/ppolicy.inc:490 +msgid "Password quality check" +msgstr "Verifica qualità della password" + +#: ../lib/modules/passwordSelfReset.inc:539 +msgid "Password reset confirmation" +msgstr "Conferma reset della password" + +#: ../lib/modules/passwordSelfReset.inc:559 +msgid "Password reset notification" +msgstr "Notifica reset della password" + +#: ../lib/modules/passwordSelfReset.inc:66 +#: ../lib/modules/passwordSelfReset.inc:875 +#: ../lib/modules/passwordSelfReset.inc:1097 +msgid "Password self reset" +msgstr "Auto reset della password" + +#: ../lib/modules/passwordSelfReset.inc:1607 +msgid "Password successfully reset." +msgstr "Password resettata con successo." + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:108 +#: ../lib/modules/shadowAccount.inc:168 ../lib/modules/shadowAccount.inc:177 +#: ../lib/modules/shadowAccount.inc:209 ../lib/modules/shadowAccount.inc:316 +#: ../lib/modules/shadowAccount.inc:501 +msgid "Password warning" +msgstr "Avvertimento password" + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:64 +msgid "Password warning must be are natural number." +msgstr "L'avvertimento password deve essere un numero naturale." + +#: ../templates/config/confmain.php:610 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:61 +#: ../lib/modules/passwordSelfReset.inc:1174 ../lib/modules.inc:1125 +msgid "Passwords are different!" +msgstr "Le password sono diverse!" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:59 +msgid "Passwords match." +msgstr "Le password coincidono." + +#: ../lib/types/nisObjectType.inc:77 +msgid "Path" +msgstr "Percorso" + +#: ../lib/modules/windowsUser.inc:205 +msgid "" +"Path of the user profile (UNC-path, e.g. \\\\server\\share\\user). $user is " +"replaced with user name." +msgstr "Percorso del profilo utente (percorso-UNC, es. \\\\server\\share\\user). $user sarà sostituito con l'user name." + +#: ../lib/modules/sambaSamAccount.inc:358 +msgid "Path of the user profile." +msgstr "Percorso del profilo utente." + +#: ../lib/modules/sambaSamAccount.inc:309 +msgid "" +"Path of the user profile. Can be a local absolute path or a UNC-path " +"(\\\\server\\share). $user and $group are replaced with user and group name." +msgstr "Percorso del profilo utente. Può essere un percorso locale assoluto o un percorso UNC (\\\\server\\share). $user e $group vengono sostituiti con il nome dell'utente e del gruppo." + +#: ../lib/modules/imapAccess.inc:112 ../lib/modules/imapAccess.inc:146 +msgid "Path separator" +msgstr "Separatore percorso" + +#: ../templates/config/confmain.php:311 +msgid "Path to external script" +msgstr "Percorso per lo script esterno" + +#: ../lib/modules/ddns.inc:93 ../lib/modules/ddns.inc:371 +msgid "Path to key for DNS updates" +msgstr "Percorso della chiave per gli aggiornamenti DNS" + +#: ../lib/modules/qmailGroup.inc:140 +msgid "" +"Path to the maildir/mbox on the mail system for sender confirmation and " +"moderation." +msgstr "Percorso della maildir/mbox sul sistema di email per la conferma del mittente e la moderazione." + +#: ../lib/modules/qmailUser.inc:248 +msgid "Path to the maildir/mbox on the mail system." +msgstr "Percorso alla maildir/mbox sul sistema di posta" + +#: ../lib/modules/pykotaUser.inc:152 ../lib/modules/pykotaUser.inc:326 +#: ../lib/modules/pykotaUser.inc:369 +msgid "Payment" +msgstr "Pagamento" + +#: ../lib/modules/pykotaUser.inc:148 +msgid "Payment and job history" +msgstr "Pagamento e storia dei lavori" + +#: ../lib/modules/pykotaUser.inc:149 +msgid "Payment and job history for this user." +msgstr "Pagamento e storia dei lavori per questo utente." + +#: ../lib/modules/pykotaUser.inc:265 ../lib/modules/pykotaUser.inc:283 +#: ../lib/modules/pykotaUser.inc:384 ../lib/modules/pykotaUser.inc:591 +#: ../lib/modules/pykotaUser.inc:983 +msgid "Payment history" +msgstr "Storia pagamento" + +#: ../lib/tools/multiEdit.inc:53 +msgid "Performs modifications on multiple LDAP entries." +msgstr "Esegue modifiche su molteplici voci LDAP." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:41 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:64 +msgid "Permanently delete all children also?" +msgstr "Cancellare definitivamente anche tutti i figli?" + +#: ../lib/modules/asteriskAccount.inc:171 +#: ../lib/modules/asteriskAccount.inc:281 +#: ../lib/modules/asteriskAccount.inc:422 +#: ../lib/modules/asteriskAccount.inc:678 +#: ../lib/modules/asteriskAccount.inc:997 +#: ../lib/modules/asteriskAccount.inc:1263 +msgid "Permit" +msgstr "Permetti" + +#: ../lib/modules/inetOrgPerson.inc:130 +msgid "Personal" +msgstr "Personale" + +#: ../lib/selfService.inc:389 +msgid "Personal data" +msgstr "Dati personali" + +#: ../lib/types/user.inc:102 ../lib/types/user.inc:620 +#: ../lib/modules/inetOrgPerson.inc:159 ../lib/modules/inetOrgPerson.inc:2650 +#: ../lib/modules/inetOrgPerson.inc:2657 ../lib/modules/inetOrgPerson.inc:3563 +#: ../lib/modules/inetOrgPerson.inc:3590 ../lib/modules/inetOrgPerson.inc:3609 +msgid "Photo" +msgstr "Foto" + +#: ../lib/modules/inetOrgPerson.inc:1664 +msgid "Photo file" +msgstr "File foto" + +#: ../lib/modules/inetOrgPerson.inc:1662 +msgid "Photo file (JPG format)" +msgstr "File della foto (formato JPG)" + +#: ../lib/modules/asteriskAccount.inc:175 +#: ../lib/modules/asteriskAccount.inc:282 +#: ../lib/modules/asteriskAccount.inc:429 +#: ../lib/modules/asteriskAccount.inc:682 +#: ../lib/modules/asteriskAccount.inc:998 +#: ../lib/modules/asteriskAccount.inc:1265 +msgid "Pickup group" +msgstr "Seleziona un gruppo" + +#: ../lib/modules/ldapPublicKey.inc:77 +msgid "Please a comma separated list of your public SSH keys." +msgstr "Inserire una lista di computer separati da virgola!" + +#: ../lib/modules/nisMailAliasUser.inc:131 +msgid "Please activate the mail aliases type for this server profile." +msgstr "Attivare gli alias email per questo profilo server." + +#: ../lib/modules/customScripts.inc:85 +msgid "" +"Please activate this option if your scripts may generate HTML output. " +"Otherwise, the output is treated as plain text." +msgstr "Si prega di attivare questa opzione se i tuoi script possono generare output HTML. Altrimenti, l'output è trattato come testo semplice." + +#: ../lib/modules/asteriskExtension.inc:193 +msgid "Please add at least one extension owner." +msgstr "Aggiungere almeno un proprietario dell'estensione." + +#: ../help/help.inc:157 +msgid "" +"Please change this setting only if you experience problems in receiving " +"emails from LAM. This defines the line ending of emails." +msgstr "Si prega di cambiare questa impostazione solo se si riscontrano problemi nel ricevere email da LAM. Questo definisce la fine linea delle email." + +#: ../lib/modules/qmailGroup.inc:331 +msgid "Please check if this email should be sent." +msgstr "Controllare se questa email deve essere inviata." + +#: ../lib/modules/sambaSamAccount.inc:1093 +msgid "Please check your settings on the Unix page!" +msgstr "Controllare le impostazioni sulla pagina Unix!" + +#: ../lib/modules/imapAccess.inc:104 +msgid "" +"Please choose the attribute to get the IMAP user name. The default is " +"\"mail\" but you can also use \"uid\"." +msgstr "Si prega di scegliere l'attributo per ottenere il nome utente IMAP. Il predefinito è \"mail\" ma è possibile scegliere anche \"uid\"." + +#: ../lib/modules/passwordSelfReset.inc:543 +msgid "Please click here to continue: @@resetLink@@" +msgstr "Premere qui per continuare: @@resetLink@@" + +#: ../lib/types/user.inc:298 +msgid "Please click to lock/unlock this account." +msgstr "Cliccare per bloccare/sbloccare questo account." + +#: ../lib/modules/pykotaPrinter.inc:219 +msgid "Please enter \"Yes\" or \"No\"." +msgstr "Si prega di immettere \"Si\" o \"No\"." + +#: ../lib/modules/sambaSamAccount.inc:108 +msgid "Please enter a RID number or the name of a special account!" +msgstr "Inserire un RID o il nome di un account speciale!" + +#: ../lib/modules/asteriskAccount.inc:555 +msgid "Please enter a caller ID." +msgstr "Inserire un ID del chiamante." + +#: ../lib/modules/imapAccess.inc:101 +msgid "" +"Please enter a comma separated list of domain names (e.g. " +"\"company.com,example.com\"). LAM will only manage mailboxes from these " +"domains." +msgstr "Si prega di inserire un elenco separato da virgole di nomi di dominio (es. \"compagnia.it, esempio.it\"). LAM gestirà solo le mailbox per questi domini." + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +msgid "Please enter a comma separated list of host names!" +msgstr "Inserire una lista di computer separati da virgola!" + +#: ../lib/modules/asteriskExtension.inc:185 +msgid "Please enter a common name." +msgstr "Inserire un name." + +#: ../lib/modules/imapAccess.inc:178 +msgid "Please enter a correct list of valid mail domains." +msgstr "Inserire una lista corretta di domini di posta." + +#: ../lib/modules/sudoRole.inc:130 ../lib/modules/sudoRole.inc:135 +#: ../lib/modules/sudoRole.inc:281 ../lib/modules/sudoRole.inc:282 +#: ../lib/modules/sudoRole.inc:283 ../lib/modules/sudoRole.inc:284 +msgid "Please enter a date in format \"DD.MM.YYYY HH:MM\" or \"DD.MM.YYYY\"." +msgstr "Si prega di inserire la data nel formato \"DD.MM.YYYY HH:MM\" o \"DD.MM.YYYY\"." + +#: ../lib/modules/customFields.inc:89 +msgid "Please enter a descriptive label for this field." +msgstr "Immettere un etichetta descrittiva per questo campo." + +#: ../lib/modules/nisObject.inc:62 ../lib/modules/automount.inc:65 +#: ../lib/modules/sudoRole.inc:67 ../lib/modules/oracleService.inc:62 +msgid "Please enter a descriptive name for this entry." +msgstr "Inserire un nome descrittivo per questo oggetto." + +#: ../lib/modules/windowsGroup.inc:119 +msgid "Please enter a descriptive text for this group." +msgstr "Immettere un testo descrittivo per questo gruppo." + +#: ../lib/modules/windowsHost.inc:79 +msgid "Please enter a descriptive text for this host." +msgstr "Immettere un testo descrittivo per questo host." + +#: ../lib/modules/windowsUser.inc:120 +msgid "Please enter a descriptive text for this user." +msgstr "Immettere un testo descrittivo per questo utente." + +#: ../lib/modules/organizationalRole.inc:173 +#: ../lib/modules/groupOfNames.inc:209 +msgid "Please enter a group name!" +msgstr "Inserire un nome di gruppo!" + +#: ../lib/modules/windowsUser.inc:241 +msgid "" +"Please enter a list of Windows domains that can be selected for your user " +"accounts." +msgstr "Immettere un elenco di domini Windows che possono essere selezionati per gli account utente." + +#: ../lib/modules/selfRegistration.inc:120 +msgid "Please enter a list of object classes for the new accounts." +msgstr "Immettere un elenco di classi di oggetti per i nuovi account." + +#: ../lib/modules/asteriskVoicemail.inc:209 +msgid "Please enter a mailbox." +msgstr "Inserire una mailbox." + +#: ../lib/modules/device.inc:62 +msgid "Please enter a name for this device." +msgstr "Inserire un nome per questo dispositivo." + +#: ../lib/modules/kolabSharedFolder.inc:113 +msgid "Please enter a name for this folder." +msgstr "Immettere un nome per questa cartella." + +#: ../lib/modules/ppolicy.inc:165 +msgid "Please enter a name for this policy." +msgstr "Inserire un nome per questa policy." + +#: ../lib/modules/kolabSharedFolder.inc:261 +msgid "Please enter a name." +msgstr "Immettere un nome." + +#: ../lib/modules/customFields.inc:2626 +msgid "Please enter a natural number for column count." +msgstr "Immettere un numero naturale per il conteggio delle colonne." + +#: ../lib/modules/customFields.inc:2636 +msgid "Please enter a natural number for row count." +msgstr "Immettere un numero naturale per il numero delle righe." + +#: ../lib/modules/qmailUser.inc:465 ../lib/modules/qmailUser.inc:467 +msgid "Please enter a number for GID number." +msgstr "Immettere un numero GID." + +#: ../lib/modules/qmailUser.inc:462 ../lib/modules/qmailUser.inc:464 +msgid "Please enter a number for UID number." +msgstr "Immettere un numero UID." + +#: ../lib/modules/qmailUser.inc:458 ../lib/modules/qmailUser.inc:459 +msgid "Please enter a number for message count limit." +msgstr "Immettere un limite massimo per i messaggi." + +#: ../lib/modules/qmailUser.inc:460 ../lib/modules/qmailUser.inc:461 +msgid "Please enter a number for message size limit." +msgstr "Immettere una dimensione massima per i messaggi." + +#: ../lib/modules/qmailUser.inc:456 ../lib/modules/qmailUser.inc:457 +msgid "Please enter a number for quota size." +msgstr "Immettere una dimensione massima di quota." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:51 +#: ../templates/lib/141_jquery-validationEngine-lang.php:55 +#: ../lib/modules/mitKerberos.inc:298 ../lib/modules/zarafaUser.inc:408 +#: ../lib/modules/zarafaUser.inc:409 ../lib/modules/zarafaUser.inc:410 +#: ../lib/modules/zarafaUser.inc:411 ../lib/modules/zarafaUser.inc:412 +#: ../lib/modules/zarafaUser.inc:413 ../lib/modules/zarafaUser.inc:415 +#: ../lib/modules/zarafaUser.inc:416 ../lib/modules/bindDLZ.inc:469 +#: ../lib/modules/kolabUser.inc:257 ../lib/modules/kolabUser.inc:258 +#: ../lib/modules/sudoRole.inc:285 ../lib/modules/sudoRole.inc:286 +msgid "Please enter a number." +msgstr "Inserire un numero." + +#: ../lib/modules/ppolicy.inc:174 +msgid "Please enter a numeric value for the expire warning." +msgstr "Inserire un valore numerico per l'avviso di scadenza." + +#: ../lib/modules/ppolicy.inc:173 +msgid "Please enter a numeric value for the failure count interval." +msgstr "Inserire un valore numerico per l'intervallo di conteggio dei fallimenti." + +#: ../lib/modules/ppolicy.inc:170 +msgid "Please enter a numeric value for the grace authentication limit." +msgstr "Inserire un valore numerico per il limite di grazia di autenticazione." + +#: ../lib/modules/freeRadius.inc:259 ../lib/modules/freeRadius.inc:260 +msgid "Please enter a numeric value for the idle timeout." +msgstr "Si prega di inserire un valore numerico per il timeout di inattività." + +#: ../lib/modules/ppolicy.inc:171 +msgid "Please enter a numeric value for the lockout duration." +msgstr "Inserire un valore numerico per la durata del blocco di accesso." + +#: ../lib/modules/ppolicy.inc:172 +msgid "Please enter a numeric value for the maximum failure count." +msgstr "Inserire un valore numerico per il conteggio massimo di fallimenti." + +#: ../lib/modules/ppolicy.inc:175 +msgid "Please enter a numeric value for the minimum password length." +msgstr "Inserire un valore numerico per la lunghezza minima della password." + +#: ../lib/modules/ppolicy.inc:169 +msgid "Please enter a numeric value for the password history length." +msgstr "Inserire una valore numerico per la lunghezza della storia delle password." + +#: ../lib/modules/sudoRole.inc:267 +msgid "Please enter a role name." +msgstr "Inserire un nome di ruolo." + +#: ../lib/modules/passwordSelfReset.inc:1203 +msgid "Please enter a security answer." +msgstr "Inserire una risposta di sicurezza." + +#: ../lib/modules/selfRegistration.inc:118 +msgid "Please enter a subject for the confirmation mails." +msgstr "Immettere un soggetto per le email di conferma." + +#: ../lib/modules/kolabSharedFolder.inc:262 +msgid "Please enter a target folder." +msgstr "Immettere una cartella di destinazione." + +#: ../lib/modules/selfRegistration.inc:119 +msgid "" +"Please enter a text for the confirmation mails that includes the creation " +"link." +msgstr "Immettere un testo per le email di conferma che includa il link di creazione." + +#: ../lib/modules/customFields.inc:85 +msgid "Please enter a unique name for this field." +msgstr "Immettere un nome univoco per questo campo." + +#: ../lib/modules/ppolicy.inc:81 +msgid "Please enter a unique name for this password policy." +msgstr "Inserire un nome univoco per questa politica di password." + +#: ../lib/modules/kolabUser.inc:274 ../lib/modules/kolabUser.inc:280 +msgid "Please enter a user password." +msgstr "Inserire una password per l'utente." + +#: ../lib/modules/zarafaDynamicGroup.inc:198 ../lib/modules/eduPerson.inc:245 +#: ../lib/modules/eduPerson.inc:247 ../lib/modules/zarafaAddressList.inc:169 +msgid "Please enter a valid DN in the field:" +msgstr "Inserire un DN valido nel campo:" + +#: ../lib/types/bind.inc:205 +msgid "Please enter a valid DNS name." +msgstr "Immettere un nome DNS valido." + +#: ../lib/modules/customFields.inc:1189 ../lib/modules/customFields.inc:1746 +msgid "" +"Please enter a valid LDAP attribute name. Allowed characters are a-z, 0-9, _" +" and -." +msgstr "Immettere un nome di attributo LDAP valido. I caratteri consentiti sono a-z, 0-9, _ e -." + +#: ../templates/selfService/adminMain.php:221 +msgid "Please enter a valid LDAP suffix." +msgstr "Immettere un suffisso LDAP valido." + +#: ../templates/selfService/adminMain.php:225 +msgid "" +"Please enter a valid LDAP user if you want to use it for all operations." +msgstr "Immettere un utente LDAP valido se si vuole usarlo per tutte le operazioni." + +#: ../lib/modules/qmailUser.inc:454 +msgid "Please enter a valid account status." +msgstr "Immettere uno stato dell'account valido." + +#: ../lib/modules/bindDLZ.inc:522 ../lib/modules/bindDLZ.inc:523 +msgid "Please enter a valid admin email address." +msgstr "Immettere un indirizzo email di admin valido." + +#: ../templates/config/confmain.php:554 +msgid "Please enter a valid bind user." +msgstr "Immettere un utente di collegamento valido." + +#: ../lib/modules/inetOrgPerson.inc:103 ../lib/modules/inetOrgPerson.inc:104 +msgid "Please enter a valid business category!" +msgstr "Inserire un tipo di attività valida!" + +#: ../lib/modules/posixAccount.inc:129 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/windowsUser.inc:591 ../lib/modules/windowsUser.inc:592 +#: ../lib/modules/inetOrgPerson.inc:93 ../lib/modules/inetOrgPerson.inc:94 +msgid "Please enter a valid common name!" +msgstr "Inserire un nome valido!" + +#: ../lib/modules/qmailUser.inc:471 +msgid "Please enter a valid configuration type." +msgstr "Immettere un tipo di configurazione valida." + +#: ../lib/modules/mitKerberos.inc:291 ../lib/modules/mitKerberos.inc:292 +#: ../lib/modules/qmailUser.inc:470 ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/heimdalKerberos.inc:255 +#: ../lib/modules/heimdalKerberos.inc:256 +msgid "Please enter a valid date in format DD-MM-YYYY." +msgstr "Inserire una data valida nel formato GG-MM-AAAA." + +#: ../lib/modules/asteriskAccount.inc:576 +#: ../lib/modules/asteriskAccount.inc:577 +msgid "Please enter a valid default user." +msgstr "Inserire un utente predefinito valido." + +#: ../lib/modules/qmailUser.inc:455 +msgid "Please enter a valid delivery mode." +msgstr "Immettere una modalità di spedizione valida." + +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:111 ../lib/modules/windowsUser.inc:595 +#: ../lib/modules/windowsUser.inc:596 +msgid "Please enter a valid display name!" +msgstr "Inserire un nome visualizzato valido!" + +#: ../lib/modules/sambaSamAccount.inc:117 ../lib/modules/windowsUser.inc:617 +msgid "Please enter a valid drive letter." +msgstr "Inserire una lettera di disco valida." + +#: ../lib/modules/kolabGroup.inc:177 ../lib/modules/kolabGroup.inc:178 +#: ../lib/modules/selfRegistration.inc:122 +#: ../lib/modules/selfRegistration.inc:482 +#: ../lib/modules/zarafaDynamicGroup.inc:200 +#: ../lib/modules/zarafaDynamicGroup.inc:201 ../lib/modules/qmailUser.inc:448 +#: ../lib/modules/qmailUser.inc:449 ../lib/modules/qmailUser.inc:450 +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:453 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:216 ../lib/modules/windowsUser.inc:607 +#: ../lib/modules/windowsUser.inc:608 ../lib/modules/pykotaUser.inc:319 +#: ../lib/modules/pykotaUser.inc:320 ../lib/modules/inetOrgPerson.inc:78 +#: ../lib/modules/inetOrgPerson.inc:80 +#: ../lib/modules/kolabSharedFolder.inc:259 +#: ../lib/modules/kolabSharedFolder.inc:260 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:421 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:425 +#: ../lib/modules/qmailGroup.inc:426 ../lib/modules/qmailGroup.inc:427 +#: ../lib/modules/qmailGroup.inc:428 ../lib/modules/qmailGroup.inc:429 +#: ../lib/modules/qmailGroup.inc:430 ../lib/modules/qmailGroup.inc:431 +#: ../lib/modules/qmailGroup.inc:432 ../lib/modules/passwordSelfReset.inc:232 +#: ../lib/modules/passwordSelfReset.inc:233 +#: ../lib/modules/passwordSelfReset.inc:900 +#: ../lib/modules/passwordSelfReset.inc:1122 +#: ../lib/modules/windowsGroup.inc:285 ../lib/modules/windowsGroup.inc:286 +#: ../lib/modules.inc:1170 +msgid "Please enter a valid email address!" +msgstr "Inserire un indirizzo email valido!" + +#: ../lib/modules/zarafaDynamicGroup.inc:202 +#: ../lib/modules/zarafaDynamicGroup.inc:203 +#: ../lib/modules/zarafaGroup.inc:217 ../lib/modules/zarafaGroup.inc:218 +msgid "Please enter a valid email alias." +msgstr "Inserire un alias email valido!" + +#: ../lib/modules/passwordSelfReset.inc:907 +#: ../lib/modules/passwordSelfReset.inc:1129 +msgid "Please enter a valid employee number." +msgstr "Immettere un numero di matricola valido." + +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:92 +msgid "Please enter a valid employee type!" +msgstr "Inserire un tipo di dipendente valido!" + +#: ../lib/modules/inetOrgPerson.inc:76 ../lib/modules/inetOrgPerson.inc:77 +msgid "Please enter a valid fax number!" +msgstr "Inserire un numero di fax valido!" + +#: ../lib/modules/customFields.inc:187 +msgid "" +"Please enter a valid field name. Only letters, numbers, dash and underline " +"are allowed." +msgstr "Immettere un nome di campo valido. Solo lettere, numeri, trattino e trattino sottolineato sono ammessi." + +#: ../lib/lists.inc:229 +msgid "" +"Please enter a valid filter. Only letters, numbers and \" _*$.@-\" are " +"allowed." +msgstr "Si prega di inserire un filtro valido. Soltanto lettere, numeri e \"_*$.@-\" sono ammessi." + +#: ../lib/modules/selfRegistration.inc:83 +#: ../lib/modules/selfRegistration.inc:218 +msgid "Please enter a valid first name." +msgstr "Immettere un nome valido." + +#: ../lib/modules/asteriskAccount.inc:570 +#: ../lib/modules/asteriskAccount.inc:571 +msgid "Please enter a valid from domain." +msgstr "Inserire un dominio from valido." + +#: ../lib/modules/asteriskAccount.inc:568 +#: ../lib/modules/asteriskAccount.inc:569 +msgid "Please enter a valid from user." +msgstr "Inserire un utente from valido!" + +#: ../lib/modules/sambaSamAccount.inc:121 +msgid "Please enter a valid group name!" +msgstr "Inserire un nome di gruppo valido!" + +#: ../lib/modules/windowsGroup.inc:287 +msgid "Please enter a valid group scope." +msgstr "Immettere uno scopo di gruppo valido." + +#: ../lib/modules/windowsGroup.inc:288 +msgid "Please enter a valid group type." +msgstr "Immettere un tipo di gruppo valido." + +#: ../lib/modules/pykotaUser.inc:327 +msgid "Please enter a valid job suffix." +msgstr "Immettere un suffisso per i lavori valido." + +#: ../lib/modules/inetOrgPerson.inc:89 ../lib/modules/inetOrgPerson.inc:90 +msgid "Please enter a valid job title!" +msgstr "Inserire un titolo di lavoro valido!" + +#: ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:219 +msgid "Please enter a valid last name." +msgstr "Immettere un cognome valido." + +#: ../lib/modules/pykotaGroup.inc:205 ../lib/modules/pykotaUser.inc:321 +msgid "Please enter a valid limit type." +msgstr "Immettere un tipo di limite valido." + +#: ../lib/modules/eduPerson.inc:253 +msgid "Please enter a valid list of affiliations." +msgstr "Inserire una lista valida di affiliazioni." + +#: ../lib/modules/freeRadius.inc:255 ../lib/modules/freeRadius.inc:256 +msgid "Please enter a valid list of group names." +msgstr "Si prega di inserire un elenco di nomi di gruppi validi." + +#: ../lib/modules/hostObject.inc:111 +msgid "Please enter a valid list of host names." +msgstr "Inserire una lista di nomi di computer valida." + +#: ../lib/modules/authorizedServiceObject.inc:130 +msgid "Please enter a valid list of service names." +msgstr "Inserire una lista di nomi di servizi valida." + +#: ../lib/modules/inetOrgPerson.inc:74 ../lib/modules/inetOrgPerson.inc:75 +msgid "Please enter a valid mobile number!" +msgstr "Inserire un numero di cellulare valido!" + +#: ../lib/modules/pykotaPrinter.inc:215 ../lib/modules/pykotaPrinter.inc:216 +#: ../lib/modules/pykotaPrinter.inc:217 ../lib/modules/pykotaPrinter.inc:218 +#: ../lib/modules/pykotaUser.inc:322 ../lib/modules/pykotaUser.inc:323 +#: ../lib/modules/pykotaUser.inc:324 ../lib/modules/pykotaUser.inc:325 +#: ../lib/modules/pykotaUser.inc:326 +msgid "Please enter a valid number (e.g. \"1.5\")." +msgstr "Immettere un numero valido (es. \"1.5\")" + +#: ../lib/modules/pykotaPrinter.inc:213 ../lib/modules/pykotaPrinter.inc:214 +msgid "Please enter a valid number." +msgstr "Immettere un numero valido." + +#: ../lib/modules/customFields.inc:190 +msgid "Please enter a valid object class." +msgstr "Immettere una classe di oggetti valida." + +#: ../lib/modules/dhcp_settings.inc:331 +msgid "Please enter a valid option." +msgstr "Immettere un opzione valida." + +#: ../lib/modules/zarafaServer.inc:177 ../lib/modules/zarafaServer.inc:178 +msgid "Please enter a valid path." +msgstr "Inserire un percorso valido." + +#: ../lib/modules/asteriskAccount.inc:572 +#: ../lib/modules/asteriskAccount.inc:573 ../lib/modules/zarafaServer.inc:173 +#: ../lib/modules/zarafaServer.inc:174 ../lib/modules/zarafaServer.inc:175 +#: ../lib/modules/zarafaServer.inc:176 +msgid "Please enter a valid port number." +msgstr "Inserire un numero di porta valido." + +#: ../lib/modules/inetOrgPerson.inc:83 ../lib/modules/inetOrgPerson.inc:84 +msgid "Please enter a valid postal address!" +msgstr "Inserire un indirizzo postale valido!" + +#: ../lib/modules/windowsUser.inc:605 ../lib/modules/windowsUser.inc:606 +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:88 +msgid "Please enter a valid postal code!" +msgstr "Inserire un CAP valido!" + +#: ../lib/modules/eduPerson.inc:251 +msgid "Please enter a valid primary affiliation." +msgstr "Inserire un'affiliazione primaria valida." + +#: ../lib/modules/freeRadius.inc:253 ../lib/modules/freeRadius.inc:254 +msgid "Please enter a valid realm." +msgstr "Inserisci un regno valido." + +#: ../lib/modules/kolabGroup.inc:181 ../lib/modules/kolabGroup.inc:182 +#: ../lib/modules/kolabUser.inc:253 ../lib/modules/kolabUser.inc:254 +#: ../lib/modules/kolabSharedFolder.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:251 +msgid "Please enter a valid recipient expression." +msgstr "Immettere un espressione destinatario valida." + +#: ../lib/modules/inetOrgPerson.inc:85 ../lib/modules/inetOrgPerson.inc:86 +msgid "Please enter a valid registered address." +msgstr "Si prega di inserire un indirizzo di registrazione valido." + +#: ../lib/modules/eduPerson.inc:252 +msgid "Please enter a valid scoped affiliation." +msgstr "Inserire un'affiliazione con ambito valida." + +#: ../lib/modules/kolabGroup.inc:183 ../lib/modules/kolabGroup.inc:184 +#: ../lib/modules/kolabUser.inc:255 ../lib/modules/kolabUser.inc:256 +#: ../lib/modules/kolabSharedFolder.inc:252 +#: ../lib/modules/kolabSharedFolder.inc:253 +msgid "Please enter a valid sender expression." +msgstr "Immettere un espressione di mittente valida." + +#: ../lib/modules/qmailUser.inc:468 ../lib/modules/qmailUser.inc:469 +#: ../lib/modules/imapAccess.inc:177 +msgid "Please enter a valid server name where the mailboxes reside." +msgstr "Inserire un nome di server valido su cui risiedono le mailbox." + +#: ../lib/modules/inetOrgPerson.inc:81 ../lib/modules/inetOrgPerson.inc:82 +msgid "Please enter a valid street name!" +msgstr "Inserire un indirizzo valido!" + +#: ../lib/modules/windowsUser.inc:601 ../lib/modules/windowsUser.inc:602 +#: ../lib/modules/windowsUser.inc:603 ../lib/modules/windowsUser.inc:604 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:71 +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:73 +msgid "Please enter a valid telephone number!" +msgstr "Inserire un numero di telefono valido!" + +#: ../lib/modules/passwordSelfReset.inc:921 +#: ../lib/modules/passwordSelfReset.inc:1143 +msgid "Please enter a valid user name or email address." +msgstr "Immettere un user name valido od un indirizzo email." + +#: ../lib/modules/posixGroup.inc:724 ../lib/modules/posixAccount.inc:1160 +#: ../lib/modules/posixAccount.inc:1165 +#, php-format +msgid "Please enter a value between %s and %s!" +msgstr "Inserire un valore compreso tra %s e %s!" + +#: ../lib/modules/customFields.inc:2780 +msgid "Please enter a value for status \"checked\"." +msgstr "Immettere un valore per lo status \"selezionato\"." + +#: ../lib/modules/customFields.inc:2787 +msgid "Please enter a value for status \"unchecked\"." +msgstr "Immettere un valore per lo stato \"non selezionato\"." + +#: ../templates/multiEdit.php:140 +msgid "Please enter a value to add." +msgstr "Immettere un valore da aggiungere." + +#: ../templates/multiEdit.php:143 +msgid "Please enter a value to modify." +msgstr "Immettere un valore da modificare." + +#: ../lib/modules/customFields.inc:77 +msgid "Please enter an alias for this group." +msgstr "Immettere un alias per questo gruppo." + +#: ../lib/modules/customFields.inc:189 +msgid "Please enter an alias name." +msgstr "Immettere un nome alias." + +#: ../lib/modules/kolabUser.inc:286 ../lib/modules/imapAccess.inc:208 +#, php-format +msgid "Please enter an email address on this page: %s" +msgstr "Inserire un indirizzo eMail in questa pagina: %s" + +#: ../lib/modules/pykotaUser.inc:353 +#, php-format +msgid "Please enter an user name on this page: %s" +msgstr "Immettere un username su questa pagina: %s" + +#: ../lib/modules/windowsUser.inc:1352 ../lib/modules/windowsUser.inc:1361 +#: ../lib/modules/windowsUser.inc:1370 ../lib/modules/windowsUser.inc:1381 +msgid "Please enter either yes or no." +msgstr "Immettere si o no." + +#: ../lib/modules/sudoRole.inc:273 ../lib/modules/sudoRole.inc:274 +msgid "Please enter only ASCII characters for the commands." +msgstr "Inserire solo caratteri ASCII per i comandi." + +#: ../lib/modules/sudoRole.inc:271 ../lib/modules/sudoRole.inc:272 +msgid "Please enter only ASCII characters for the host names." +msgstr "Inserire solo caratteri ASCII per i nomi dei computer." + +#: ../lib/modules/sudoRole.inc:279 ../lib/modules/sudoRole.inc:280 +msgid "Please enter only ASCII characters for the options." +msgstr "Inserire solo caratteri ASCII per le opzioni." + +#: ../lib/modules/sudoRole.inc:277 ../lib/modules/sudoRole.inc:278 +msgid "Please enter only ASCII characters for the run groups." +msgstr "Inserire solo caratteri ASCII per i gruppi di esercizio." + +#: ../lib/modules/sudoRole.inc:275 ../lib/modules/sudoRole.inc:276 +msgid "Please enter only ASCII characters for the run users." +msgstr "Inserire solo caratteri ASCII per gli utenti in esercizio." + +#: ../lib/modules/device.inc:140 ../lib/modules/device.inc:141 +msgid "Please enter only ASCII characters for the serial number." +msgstr "Inserire solo caratteri ASCII per i numeri seriali." + +#: ../lib/modules/sudoRole.inc:269 ../lib/modules/sudoRole.inc:270 +msgid "Please enter only ASCII characters for the user names." +msgstr "Inserire solo caratteri ASCII per i nomi utente." + +#: ../lib/modules/passwordSelfReset.inc:231 +msgid "" +"Please enter the DN and password of the administrative password self reset " +"account." +msgstr "Inserire il DN e la password dell'account amministrativo per il self reset." + +#: ../lib/modules/selfRegistration.inc:117 +msgid "" +"Please enter the DN and password of the administrative self registration " +"account." +msgstr "Immettere il DN e la password dell'account amministrativo di auto registrazione." + +#: ../lib/modules/posixGroup.inc:525 ../lib/modules/posixAccount.inc:502 +msgid "" +"Please enter the DN of the LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "Immettere il DN della voce LDAP con object class \"sambaUnixIdPool\"." + +#: ../lib/modules/bindDLZ.inc:86 ../lib/modules/bindDLZ.inc:90 +msgid "Please enter the IP address for this entry." +msgstr "Immettere l'indirizzo IP per questa voce." + +#: ../lib/modules/ddns.inc:99 +msgid "Please enter the IP address of your DNS server." +msgstr "Inserire L'indirizzo IP del vostro server DNS." + +#: ../lib/modules/selfRegistration.inc:62 +msgid "Please enter the LDAP DN that should be used to create new users." +msgstr "Immettere il DN LDAP che dovrà essere utilizzato per creare i nuovi utenti." + +#: ../lib/modules/passwordSelfReset.inc:105 +msgid "Please enter the LDAP DN that should be used to reset passwords." +msgstr "Inserire il DN LDAP che dovrà essere usato per resettare le passwords." + +#: ../lib/modules/customFields.inc:93 +msgid "Please enter the LDAP attribute name for this field." +msgstr "Immettere il nome dell'attributo LDAP per questo campo." + +#: ../help/help.inc:123 +msgid "" +"Please enter the LDAP suffix where LAM should start to search for users. The" +" LDAP filter needs to match the given user name to exactly one DN. The value" +" \"%USER%\" will be replaced by the user name from the login page." +msgstr "Inserire il suffisso LDAP a partire dal quale LAM deve cercare gli utenti. Il filtro LDAP deve far corrispondere il nome utente indicato esattamente ad un DN. Il valore \"%USER%\" sarà sostituito con il nome dell'utente indicato nella pagina di login." + +#: ../lib/modules/pykotaUser.inc:157 +msgid "" +"Please enter the LDAP suffix where the PyKota job entries are stored " +"(configuration option \"jobbase\")." +msgstr "Immettere il suffisso LDAP dove sono stoccate le voci dei lavori PyKota (opzione di configurazione \"jobbase\")." + +#: ../lib/modules/asteriskExtension.inc:188 +#: ../lib/modules/asteriskVoicemail.inc:214 +msgid "Please enter the account context." +msgstr "Inserire il contesto dell'account." + +#: ../lib/modules.inc:928 +msgid "Please enter the account information on the other pages first." +msgstr "Inserire prima le informazioni sull'account nelle altre pagine." + +#: ../lib/modules/asteriskAccount.inc:565 +msgid "Please enter the account type." +msgstr "Inserire il tipo di account." + +#: ../lib/modules/asteriskAccount.inc:120 +msgid "Please enter the account's type (e.g. \"friend\")." +msgstr "Inserire il tipo di account (es. \"amico\")." + +#: ../lib/modules/asteriskExtension.inc:187 +msgid "Please enter the application data." +msgstr "Inserire il dato dell'applicazione." + +#: ../lib/modules/asteriskExtension.inc:186 +msgid "Please enter the application." +msgstr "Inserire l'applicazione." + +#: ../lib/modules/automount.inc:69 +msgid "Please enter the automount entry (e.g. \"-fstype=nfs,rw server:/home\")." +msgstr "Inserire la voce di automount (es. \"-fstype=nfs,rw server:/home\")" + +#: ../templates/login.php:292 +msgid "Please enter the configuration and create a server profile." +msgstr "Si prega di inserire la configurazione e creare un profilo per il server." + +#: ../help/help.inc:57 +msgid "" +"Please enter the configuration password. This is NOT your LDAP password. It " +"is stored in your .conf-file. If this is the first time you log in, enter " +"\"lam\"." +msgstr "Inserire la password di configurazione. Questa NON è la password LDAP. Viene immagazzinata nel file .conf. Se questa è la prima volta che vi collegate inserite \"lam\"." + +#: ../lib/modules/oracleService.inc:66 +msgid "" +"Please enter the connection string (e.g. " +"\"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db.example.com)))\")." +msgstr "Immettere la stringa di connessione (es. \"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db.example.com)))\")." + +#: ../lib/modules/puppetClient.inc:81 ../lib/modules/puppetClient.inc:85 +msgid "Please enter the environment name for this node (e.g. production)." +msgstr "Immettere il nome dell'ambiente per questo nodo (es. produzione)." + +#: ../lib/modules/asteriskAccount.inc:559 +msgid "Please enter the extension context." +msgstr "Inserire il contesto dell'estensione." + +#: ../lib/modules/asteriskExtension.inc:189 +msgid "Please enter the extension name." +msgstr "Inserire il nome dell'estensione." + +#: ../lib/modules/windowsGroup.inc:115 +msgid "Please enter the group name." +msgstr "Immettere il nome del gruppo." + +#: ../lib/modules/asteriskAccount.inc:562 ../lib/modules/windowsHost.inc:75 +msgid "Please enter the host name." +msgstr "Inserire un nome di computer." + +#: ../lib/modules/customScripts.inc:60 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [account type] [action] [script and arguments]" +msgstr "Inserire l'elenco degli script che dovrebbero essere eseguiti. Ciascuna linea avrà il seguente formato: [tipo account] [azione] [script ed argomenti]" + +#: ../lib/modules/customScripts.inc:74 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [action] [script and arguments]" +msgstr "Inserire l'elenco degli script che dovrebbero essere eseguiti. Ciascuna linea avrà il seguente formato: [azione] [script ed argomenti]" + +#: ../lib/modules/nisObject.inc:66 +msgid "Please enter the mapping entry (e.g. \"-fstype=nfs,rw server:/projects\")." +msgstr "Inserire una voce per la mappatura (es. \"-fstype=nfs,rw server:/projects\")." + +#: ../lib/modules/nisObject.inc:70 +msgid "Please enter the mapping name for this entry (e.g. auto.home)." +msgstr "Inserire un nome di mappatura per questa voce (es. auto.home)." + +#: ../help/help.inc:143 +msgid "" +"Please enter the master configuration password. This is NOT your LDAP " +"password. It is stored in your config.cfg file. If this is the first time " +"you log in, enter \"lam\"." +msgstr "Inserire la password principale. Questa NON è la password LDAP. Viene immagazzinata nel file config.cfg. Se questa è la prima volta che vi collegate inserite \"lam\"." + +#: ../templates/config/mainlogin.php:145 +msgid "Please enter the master password to change the general preferences:" +msgstr "Inserire la password principale per cambiare le impostazioni generali:" + +#: ../lib/modules/qmailGroup.inc:424 +msgid "Please enter the message store." +msgstr "Inserire il sistema di store del messaggio." + +#: ../help/help.inc:131 +msgid "" +"Please enter the name of the new profile and the password to change its " +"settings. Profile names may contain letters, numbers and -/_." +msgstr "Inserire il nome del nuovo profilo e la password per cambiare le sue impostazioni. I nomi dei profili possono contenere lettere, numeri e -/_." + +#: ../help/help.inc:133 +msgid "" +"Please enter the new name of the profile. The name may contain letters, " +"numbers and -/_." +msgstr "Inserire il nuovo nome del profilo. Il nome può contenere lettere, numeri e -/_." + +#: ../lib/modules/selfRegistration.inc:66 +#: ../lib/modules/passwordSelfReset.inc:109 +msgid "" +"Please enter the password for the admin DN. Please note that this is saved " +"as clear-text in the self service profile." +msgstr "Immettere la password per il DN admin. Notare che sarà salvata in chiaro nel profilo self service." + +#: ../lib/modules/asteriskAccount.inc:116 ../lib/modules/posixAccount.inc:523 +#: ../lib/modules/windowsUser.inc:224 ../lib/modules/inetOrgPerson.inc:841 +msgid "Please enter the password which you want to set for this account." +msgstr "Inserire la stessa password in entrambi i campi password." + +#: ../help/help.inc:203 +msgid "" +"Please enter the password which you want to set for this account. You may " +"also generate a random password (12 characters) which will be displayed on " +"your screen." +msgstr "Inserire la password che si desidera impostare per questo account. Potreste anche generarne una casuale (12 caratteri) che sarà mostrata a schermo." + +#: ../lib/modules/posixAccount.inc:474 +msgid "Please enter the path to the user's home directory." +msgstr "Inserire il percorso alla home directory dell'utente." + +#: ../lib/modules/zarafaServer.inc:69 +msgid "Please enter the port number for (unencrypted) HTTP connections." +msgstr "Inserire il numero di porta per le connessioni HTTP (non cifrate)." + +#: ../lib/modules/zarafaServer.inc:73 +msgid "Please enter the port number for encrypted connections." +msgstr "Inserire il numero di porta per le connessioni cifrate." + +#: ../lib/modules/passwordSelfReset.inc:81 +msgid "" +"Please enter the possible security questions for the password self reset." +msgstr "Inserire le possibili domande di sicurezza per l'autoreset della password." + +#: ../lib/modules/asteriskExtension.inc:191 +msgid "Please enter the priority." +msgstr "Inserire la priorità." + +#: ../lib/modules/imapAccess.inc:110 +msgid "Please enter the quota limit of this mailbox in kilobytes." +msgstr "Inserire il limite di quota di questa mailbox in kilobytes." + +#: ../lib/modules/quota.inc:154 +msgid "" +"Please enter the quota settings for this mount point. The syntax is: {soft " +"block limit},{hard block limit},{soft inode limit},{hard inode limit}" +msgstr "Inserire le impostazioni di quota per questo punto di mount. La sintassi è: {limite di blocco soft},{limite di blocco hard},{limite degli inode soft},{limite degli inode hard}" + +#: ../lib/modules/systemQuotas.inc:69 +msgid "" +"Please enter the quota settings for this user. The syntax is: {mount " +"point},{soft block limit},{hard block limit},{soft inode limit},{hard inode " +"limit}." +msgstr "Inserire le impostazioni di quota per questo utente. La sintassi è: {punto di montaggio},{limite di blocco soft},{limite blocco hard},{limite inode soft}, {limite inode hard}." + +#: ../lib/modules/nisMailAlias.inc:86 +msgid "Please enter the recipients for this alias." +msgstr "Immettere i destinatari per questo alias." + +#: ../lib/modules/customFields.inc:109 +#, php-format +msgid "" +"Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") to validate " +"this field. For a syntax description see here." +msgstr "Immettere l'espressione regolare (es. \"/^[0-9a-zA-Z]+$/\") per validare questo campo. Per la descrizione sulla sintassi vedere qui." + +#: ../templates/lists/changePassword.php:517 +#: ../lib/modules/selfRegistration.inc:533 +#: ../lib/modules/sambaSamAccount.inc:105 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/windowsUser.inc:615 ../lib/modules/customFields.inc:2533 +msgid "Please enter the same password in both password fields." +msgstr "Inserire la stessa password in entrambi i campi password." + +#: ../lib/modules/passwordSelfReset.inc:77 +msgid "Please enter the security question for the password self reset." +msgstr "Inserire la domanda di sicurezza per l'auto reset della password." + +#: ../lib/modules/sambaSamAccount.inc:370 +msgid "Please enter the time limit in minutes. 0 means unlimited." +msgstr "Inserire il tempo massimo in minuti. 0 significa illimitato." + +#: ../lib/modules/windowsUser.inc:108 ../lib/modules/windowsUser.inc:116 +msgid "Please enter the user's name." +msgstr "Immettere il nome dell'utente." + +#: ../lib/modules/puppetClient.inc:101 ../lib/modules/puppetClient.inc:105 +msgid "" +"Please enter your Puppet variables for this node (e.g. config_exim=true)." +msgstr "Immettere le variabili puppet per questo noto (es. config_exim=true)." + +#: ../templates/selfService/adminLogin.php:133 +msgid "" +"Please enter your master configuration password to change the self service " +"profile:" +msgstr "Immettere la password di configurazione principale per cambiare il profilo self service:" + +#: ../templates/config/conflogin.php:132 +msgid "Please enter your password to change the server preferences:" +msgstr "Inserire la password per cambiare le impostazioni del server:" + +#: ../lib/modules/ldapPublicKey.inc:73 +msgid "Please enter your public SSH key." +msgstr "Inserire la vostra chiave SSH pubblica." + +#: ../lib/modules/range.inc:402 ../lib/modules/fixed_ip.inc:404 +msgid "Please fill out the DHCP settings first." +msgstr "Inserire prima le impostazioni del DHCP." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "Please go back and try again." +msgstr "Tornare indietro e riprovare." + +#: ../templates/masscreate.php:246 +msgid "" +"Please provide a CSV formated file with your account data. The cells in the " +"first row must be filled with the column identifiers. The following rows " +"represent one account for each row." +msgstr "Fornite un file in formato CSV con i dati dei vostri account. Le celle della prima riga devono contenere gli identificatori di colonna. Le righe seguenti rappresentano un account per riga." + +#: ../lib/config.inc:1768 +msgid "Please provide a file in DER or PEM format." +msgstr "Fornire un file in formato DER o PEM." + +#: ../templates/massBuildAccounts.php:256 +msgid "Please provide a file to upload." +msgstr "Selezionare un file da caricare." + +#: ../lib/modules/inetOrgPerson.inc:749 +msgid "" +"Please select an image file to upload. It must be in JPG format " +"(.jpg/.jpeg)." +msgstr "Selezionare un'immagine da inviare. Deve essere in formato JPG (.jpg/.jpeg)." + +#: ../lib/modules/customFields.inc:101 +msgid "Please select the field type (e.g. text field)." +msgstr "Selezionare il tipo di campo (es. campo testo)." + +#: ../help/help.inc:270 +msgid "Please select the suffix where changes should be done." +msgstr "Selezionare il suffisso dove devono essere fatte le modifiche." + +#: ../help/help.inc:149 +msgid "" +"Please select your prefered log level. Messages with a lower level will not " +"be logged." +msgstr "Selezionare il livello di log desiderato. I messaggi con un livello più basso non saranno registrati." + +#: ../lib/modules/asteriskVoicemail.inc:228 +msgid "Please set the voicemail password with \"Set password\" before saving." +msgstr "Impostare la password della voicemail con \"Imposta password\" prima di salvare." + +#: ../lib/modules.inc:877 +#, php-format +msgid "Please set up all required attributes on page: %s" +msgstr "Impostare tutti gli attributi obbligatori nella(e) pagina(e): %s" + +#: ../templates/config/profmanage.php:220 +#: ../templates/selfService/profManage.php:160 +msgid "" +"Please set up your master configuration file (config/config.cfg) first!" +msgstr "Prima impostare il vostro file di configurazione principale (config/config.cfg)!" + +#: ../lib/modules/dhcp_settings.inc:551 ../lib/modules/ddns.inc:362 +msgid "" +"Please set your LDAP suffix to an LDAP entry with object class " +"\"dhcpService\" or \"dhcpServer\"." +msgstr "Impostare il suffisso LDAP di una voce LDAP con object class \"dhcpService\" o \"dhcpServer\"." + +#: ../templates/multiEdit.php:213 +msgid "Please specify at least one operation." +msgstr "Specificare almeno un operazione." + +#: ../lib/modules/passwordSelfReset.inc:145 +msgid "Please specify how your users need to identify themselves." +msgstr "Specificare come sarà necessario che gli utenti si identifichino da soli." + +#: ../lib/modules/windowsGroup.inc:143 +msgid "Please specify the group scope." +msgstr "Specificare lo scopo del gruppo." + +#: ../lib/modules/customFields.inc:141 +msgid "" +"Please specify the possible values for this field. Each value can have a " +"descriptive label that is displayed to the user." +msgstr "Specificare i valori possibili per questo campo. Ciascun valore può avere un etichetta descrittiva che sarà mostrata all'utente." + +#: ../help/help.inc:274 +msgid "" +"Please specify which attributes should be changed. The modify operation will" +" also add an value if the attribute does not yet exist. To delete all values" +" of an attribute please leave the value field empty." +msgstr "Specificare quali attributi devono essere cambiati. Le operazioni di modifica aggiungeranno un valore anche se l'attributo non esiste. Per cancellare tutti i valori di un attributo lasciare il campo vuoto." + +#: ../lib/modules/inetOrgPerson.inc:100 +msgid "Please upload a .jpg/.jpeg file." +msgstr "Eseguire l'upload di un file .jpg/.jpeg." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:172 +msgid "Please wait" +msgstr "Attendere" + +#: ../lib/types/ppolicyType.inc:149 +#, php-format +msgid "Policy count: %s" +msgstr "Conteggio policy: %s" + +#: ../lib/modules/kolabUser.inc:246 +msgid "Policy list has invalid format!" +msgstr "La lista delle policy ha un formato non valido!" + +#: ../lib/modules/asteriskAccount.inc:179 +#: ../lib/modules/asteriskAccount.inc:283 +#: ../lib/modules/asteriskAccount.inc:436 +#: ../lib/modules/asteriskAccount.inc:686 +#: ../lib/modules/asteriskAccount.inc:999 +#: ../lib/modules/asteriskAccount.inc:1267 ../lib/modules/bindDLZ.inc:188 +#: ../lib/modules/bindDLZ.inc:192 ../lib/modules/bindDLZ.inc:392 +#: ../lib/modules/bindDLZ.inc:505 ../lib/modules/bindDLZ.inc:1358 +#: ../lib/modules/bindDLZ.inc:1601 +msgid "Port" +msgstr "Porta" + +#: ../lib/modules/asteriskAccount.inc:180 +msgid "Port number." +msgstr "Numero di porta." + +#: ../templates/pdfedit/pdfpage.php:592 ../templates/pdfedit/pdfpage.php:602 +#: ../templates/pdfedit/pdfpage.php:612 ../templates/pdfedit/pdfpage.php:627 +msgid "Position" +msgstr "Posizione" + +#: ../templates/masscreate.php:310 ../templates/masscreate.php:384 +#: ../lib/modules/customScripts.inc:125 ../lib/modules/customScripts.inc:127 +#: ../lib/modules/customScripts.inc:129 +#: ../lib/modules/sambaGroupMapping.inc:604 +msgid "Possible values" +msgstr "Valori possibili" + +#: ../lib/modules/pykotaPrinter.inc:130 ../lib/modules/posixGroup.inc:530 +#: ../lib/modules/sambaGroupMapping.inc:172 +#: ../lib/modules/organizationalRole.inc:103 +#: ../lib/modules/groupOfNames.inc:115 +msgid "" +"Possible wildcards are: \"*\" = any character, \"^\" = line start, \"$\" = " +"line end" +msgstr "Possibili caratteri giolly sono: \"*\" = qualsiasi carattere, \"^\" = inizio linea, \"$\" = fine linea" + +#: ../lib/modules/windowsUser.inc:160 ../lib/modules/windowsUser.inc:320 +#: ../lib/modules/windowsUser.inc:510 ../lib/modules/windowsUser.inc:547 +#: ../lib/modules/windowsUser.inc:709 ../lib/modules/windowsUser.inc:1598 +#: ../lib/modules/windowsUser.inc:1735 ../lib/modules/inetOrgPerson.inc:159 +#: ../lib/modules/inetOrgPerson.inc:181 ../lib/modules/inetOrgPerson.inc:409 +#: ../lib/modules/inetOrgPerson.inc:548 ../lib/modules/inetOrgPerson.inc:672 +#: ../lib/modules/inetOrgPerson.inc:676 ../lib/modules/inetOrgPerson.inc:1234 +#: ../lib/modules/inetOrgPerson.inc:1237 ../lib/modules/inetOrgPerson.inc:1896 +#: ../lib/modules/inetOrgPerson.inc:2566 ../lib/modules/inetOrgPerson.inc:3513 +#: ../lib/modules/inetOrgPerson.inc:3578 +msgid "Post office box" +msgstr "Casella postale" + +#: ../lib/modules/inetOrgPerson.inc:83 ../lib/modules/inetOrgPerson.inc:158 +#: ../lib/modules/inetOrgPerson.inc:193 ../lib/modules/inetOrgPerson.inc:393 +#: ../lib/modules/inetOrgPerson.inc:560 ../lib/modules/inetOrgPerson.inc:688 +#: ../lib/modules/inetOrgPerson.inc:1278 ../lib/modules/inetOrgPerson.inc:1898 +#: ../lib/modules/inetOrgPerson.inc:2533 ../lib/modules/inetOrgPerson.inc:3521 +#: ../lib/modules/inetOrgPerson.inc:3580 +msgid "Postal address" +msgstr "Indirizzo postale" + +#: ../lib/modules/inetOrgPerson.inc:689 +msgid "Postal address, city" +msgstr "Indirizzo postale, città" + +#: ../lib/modules/windowsUser.inc:156 ../lib/modules/windowsUser.inc:326 +#: ../lib/modules/windowsUser.inc:509 ../lib/modules/windowsUser.inc:548 +#: ../lib/modules/windowsUser.inc:605 ../lib/modules/windowsUser.inc:710 +#: ../lib/modules/windowsUser.inc:1597 ../lib/modules/windowsUser.inc:1736 +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:159 +#: ../lib/modules/inetOrgPerson.inc:184 ../lib/modules/inetOrgPerson.inc:385 +#: ../lib/modules/inetOrgPerson.inc:551 ../lib/modules/inetOrgPerson.inc:680 +#: ../lib/modules/inetOrgPerson.inc:684 ../lib/modules/inetOrgPerson.inc:1243 +#: ../lib/modules/inetOrgPerson.inc:1246 ../lib/modules/inetOrgPerson.inc:1897 +#: ../lib/modules/inetOrgPerson.inc:2555 ../lib/modules/inetOrgPerson.inc:3515 +#: ../lib/modules/inetOrgPerson.inc:3578 +msgid "Postal code" +msgstr "CAP" + +#: ../lib/modules/puppetClient.inc:112 +msgid "Predefined classes" +msgstr "Classi predefinite" + +#: ../lib/modules/puppetClient.inc:116 ../lib/modules/puppetClient.inc:122 +msgid "Predefined environments" +msgstr "Ambienti predefiniti" + +#: ../lib/modules/authorizedServiceObject.inc:93 +#: ../lib/modules/authorizedServiceObject.inc:99 +msgid "Predefined services" +msgstr "Servizi predefiniti" + +#: ../help/help.inc:91 +msgid "Predefined values" +msgstr "Valori predefiniti" + +#: ../lib/modules/bindDLZ.inc:196 ../lib/modules/bindDLZ.inc:200 +#: ../lib/modules/bindDLZ.inc:280 ../lib/modules/bindDLZ.inc:495 +#: ../lib/modules/bindDLZ.inc:916 ../lib/modules/bindDLZ.inc:1513 +msgid "Preference" +msgstr "Preferenze" + +#: ../lib/modules/imapAccess.inc:97 ../lib/modules/imapAccess.inc:143 +msgid "Prefix for mailboxes" +msgstr "Prefisso per le mailbox" + +#: ../lib/modules/inetOrgPerson.inc:339 +msgid "President" +msgstr "Presidente" + +#: ../lib/modules/pykotaUser.inc:650 ../lib/modules/pykotaUser.inc:999 +msgid "Price" +msgstr "Prezzo" + +#: ../lib/types/pykotaPrinterType.inc:94 ../lib/modules/pykotaPrinter.inc:111 +#: ../lib/modules/pykotaPrinter.inc:174 ../lib/modules/pykotaPrinter.inc:197 +#: ../lib/modules/pykotaPrinter.inc:215 ../lib/modules/pykotaPrinter.inc:235 +#: ../lib/modules/pykotaPrinter.inc:587 +msgid "Price per job" +msgstr "Prezzo per lavoro" + +#: ../lib/types/pykotaPrinterType.inc:93 ../lib/modules/pykotaPrinter.inc:115 +#: ../lib/modules/pykotaPrinter.inc:180 ../lib/modules/pykotaPrinter.inc:198 +#: ../lib/modules/pykotaPrinter.inc:217 ../lib/modules/pykotaPrinter.inc:237 +#: ../lib/modules/pykotaPrinter.inc:588 +msgid "Price per page" +msgstr "Prezzo per pagina" + +#: ../lib/modules/eduPerson.inc:88 ../lib/modules/eduPerson.inc:168 +#: ../lib/modules/eduPerson.inc:229 ../lib/modules/eduPerson.inc:283 +#: ../lib/modules/eduPerson.inc:581 +msgid "Primary affiliation" +msgstr "Affiliazione primaria" + +#: ../lib/modules/posixAccount.inc:297 ../lib/modules/posixAccount.inc:389 +#: ../lib/modules/posixAccount.inc:414 ../lib/modules/posixAccount.inc:465 +#: ../lib/modules/posixAccount.inc:514 ../lib/modules/posixAccount.inc:552 +#: ../lib/modules/posixAccount.inc:1446 ../lib/modules/posixAccount.inc:1735 +#: ../lib/modules/posixAccount.inc:1781 ../lib/modules/posixAccount.inc:1847 +msgid "Primary group" +msgstr "Gruppo primario" + +#: ../lib/modules/bindDLZ.inc:229 +msgid "Primary master DNS server for this zone (e.g. \"ns1.example.com.\")." +msgstr "Master DNS primario per questa zona (es. \"ns1.example.com.\")." + +#: ../lib/modules/bindDLZ.inc:228 ../lib/modules/bindDLZ.inc:338 +#: ../lib/modules/bindDLZ.inc:422 ../lib/modules/bindDLZ.inc:524 +#: ../lib/modules/bindDLZ.inc:1040 ../lib/modules/bindDLZ.inc:1547 +msgid "Primary name server" +msgstr "Server dei nomi primario" + +#: ../lib/modules/eduPerson.inc:130 ../lib/modules/eduPerson.inc:206 +#: ../lib/modules/eduPerson.inc:232 ../lib/modules/eduPerson.inc:247 +#: ../lib/modules/eduPerson.inc:348 ../lib/modules/eduPerson.inc:588 +msgid "Primary organisational unit" +msgstr "Unità organizzativa primaria" + +#: ../lib/modules/eduPerson.inc:114 ../lib/modules/eduPerson.inc:161 +#: ../lib/modules/eduPerson.inc:230 ../lib/modules/eduPerson.inc:277 +#: ../lib/modules/eduPerson.inc:583 +msgid "Principal name" +msgstr "Nome principale" + +#: ../lib/modules/eduPerson.inc:243 ../lib/modules/eduPerson.inc:244 +msgid "Principal name is invalid!" +msgstr "Il nome principale non è valido!" + +#: ../lib/modules/pykotaUser.inc:648 ../lib/modules/pykotaUser.inc:997 +msgid "Printer" +msgstr "Stampante" + +#: ../lib/types/pykotaPrinterType.inc:164 +#, php-format +msgid "Printer count: %s" +msgstr "Conteggio stampante: %s" + +#: ../lib/modules/pykotaPrinter.inc:100 +msgid "Printer description." +msgstr "Descrizione stampante." + +#: ../lib/modules/pykotaPrinter.inc:200 ../lib/modules/pykotaPrinter.inc:258 +#: ../lib/modules/pykotaPrinter.inc:621 +msgid "Printer groups" +msgstr "Gruppi stampante" + +#: ../lib/types/pykotaPrinterType.inc:91 ../lib/modules/pykotaPrinter.inc:95 +#: ../lib/modules/pykotaPrinter.inc:146 ../lib/modules/pykotaPrinter.inc:193 +#: ../lib/modules/pykotaPrinter.inc:209 ../lib/modules/pykotaPrinter.inc:211 +#: ../lib/modules/pykotaPrinter.inc:231 ../lib/modules/pykotaPrinter.inc:584 +#: ../lib/modules/pykotaBillingCode.inc:101 +msgid "Printer name" +msgstr "Nome stampante" + +#: ../lib/modules/pykotaPrinter.inc:211 ../lib/modules/pykotaPrinter.inc:212 +msgid "Printer name already exists!" +msgstr "Il nome della stampante esiste già!" + +#: ../lib/modules/pykotaPrinter.inc:209 ../lib/modules/pykotaPrinter.inc:210 +msgid "" +"Printer name contains invalid characters. Valid characters are: a-z, A-Z, " +"0-9 and .-_ !" +msgstr "Il nome della stampante contiene caratteri non validi. Caratteri validi sono: a-z, A-Z, 0-9 and .-_ !" + +#: ../lib/modules/pykotaPrinter.inc:96 +msgid "" +"Printer name of the printer which should be created. Valid characters are: " +"a-z, A-Z, 0-9 and .-_ ." +msgstr "Il nome della stampante che dovrebbe essere creata. Caratteri validi sono: a-z, A-Z, 0-9 and .-_ !" + +#: ../lib/types/pykotaPrinterType.inc:53 +msgid "Printers" +msgstr "Stampanti" + +#: ../lib/modules/bindDLZ.inc:172 ../lib/modules/bindDLZ.inc:176 +#: ../lib/modules/bindDLZ.inc:382 ../lib/modules/bindDLZ.inc:501 +#: ../lib/modules/bindDLZ.inc:1348 ../lib/modules/bindDLZ.inc:1599 +#: ../lib/modules/asteriskExtension.inc:106 +#: ../lib/modules/asteriskExtension.inc:825 +msgid "Priority" +msgstr "Priorità" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1537 +#: ../templates/3rdParty/pla/htdocs/import_form.php:44 +#: ../templates/3rdParty/pla/htdocs/export_form.php:135 +msgid "Proceed" +msgstr "Procedere" + +#: ../templates/config/profmanage.php:112 +#: ../templates/selfService/profManage.php:85 +msgid "Profile deleted." +msgstr "Profilo cancellato." + +#: ../templates/profedit/profilepage.php:182 +#: ../templates/profedit/profilemain.php:94 ../lib/tools/profileEditor.inc:44 +msgid "Profile editor" +msgstr "Editor dei profili" + +#: ../templates/config/profmanage.php:159 +#: ../templates/config/profmanage.php:236 +#: ../templates/selfService/profManage.php:101 +#: ../templates/selfService/profManage.php:199 ../help/help.inc:130 +#: ../help/help.inc:132 ../help/help.inc:134 ../help/help.inc:136 +#: ../help/help.inc:138 +msgid "Profile management" +msgstr "Gestione dei profili" + +#: ../templates/config/profmanage.php:240 +#: ../templates/config/profmanage.php:260 +#: ../templates/config/profmanage.php:272 +#: ../templates/config/profmanage.php:281 +#: ../templates/config/profmanage.php:301 +#: ../templates/selfService/profManage.php:203 +#: ../templates/selfService/profManage.php:217 +#: ../templates/selfService/profManage.php:233 +#: ../templates/profedit/profilepage.php:186 +#: ../templates/profedit/profilemain.php:277 +#: ../templates/profedit/profilemain.php:321 ../help/help.inc:188 +msgid "Profile name" +msgstr "Nome del profilo" + +#: ../templates/config/profmanage.php:88 +#: ../templates/config/profmanage.php:107 +#: ../templates/config/profmanage.php:137 +#: ../templates/config/profmanage.php:148 +#: ../templates/selfService/profManage.php:61 +#: ../templates/selfService/profManage.php:76 +msgid "Profile name is invalid!" +msgstr "Il nome del profilo non è valido!" + +#: ../templates/config/profmanage.php:243 +#: ../templates/config/profmanage.php:282 +msgid "Profile password" +msgstr "Password del profilo" + +#: ../templates/config/profmanage.php:86 +#: ../templates/config/profmanage.php:135 +msgid "Profile passwords are different or empty!" +msgstr "Le password del profilo sono diverse o vuote!" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:98 +#: ../lib/modules/sambaSamAccount.inc:220 +#: ../lib/modules/sambaSamAccount.inc:232 +#: ../lib/modules/sambaSamAccount.inc:308 +#: ../lib/modules/sambaSamAccount.inc:357 +#: ../lib/modules/sambaSamAccount.inc:502 +#: ../lib/modules/sambaSamAccount.inc:598 +#: ../lib/modules/sambaSamAccount.inc:1218 +#: ../lib/modules/sambaSamAccount.inc:1511 +#: ../lib/modules/sambaSamAccount.inc:1580 +#: ../lib/modules/sambaSamAccount.inc:1758 +#: ../lib/modules/sambaSamAccount.inc:1903 +#: ../lib/modules/sambaSamAccount.inc:1918 ../lib/modules/windowsUser.inc:204 +#: ../lib/modules/windowsUser.inc:418 ../lib/modules/windowsUser.inc:478 +#: ../lib/modules/windowsUser.inc:520 ../lib/modules/windowsUser.inc:611 +#: ../lib/modules/windowsUser.inc:754 ../lib/modules/windowsUser.inc:1627 +msgid "Profile path" +msgstr "Percorso del profilo" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/windowsUser.inc:611 ../lib/modules/windowsUser.inc:612 +msgid "Profile path is invalid!" +msgstr "Il percorso del profilo non è valido!" + +#: ../templates/profedit/profilemain.php:149 +msgid "Profile was saved." +msgstr "Il profilo è stato salvato." + +#: ../templates/profedit/profilemain.php:244 +msgid "Profiles" +msgstr "Profili" + +#: ../lib/modules/qmailUser.inc:252 +msgid "Program to execute for all incoming mails." +msgstr "Programma da eseguire per tutte le email in arrivo." + +#: ../templates/multiEdit.php:231 +msgid "Progress" +msgstr "Progresso" + +#: ../lib/modules/zarafaServer.inc:84 ../lib/modules/zarafaServer.inc:128 +#: ../lib/modules/zarafaServer.inc:141 ../lib/modules/zarafaServer.inc:163 +#: ../lib/modules/zarafaServer.inc:212 ../lib/modules/zarafaServer.inc:357 +msgid "Proxy URL" +msgstr "URL proxy" + +#: ../lib/modules/zarafaServer.inc:80 ../lib/modules/zarafaServer.inc:118 +#: ../lib/modules/zarafaServer.inc:138 ../lib/modules/zarafaServer.inc:225 +#: ../lib/modules/zarafaServer.inc:362 +msgid "Public store" +msgstr "Spazio pubblico" + +#: ../lib/modules/puppetClient.inc:70 +msgid "Puppet" +msgstr "Puppet" + +#: ../lib/modules/pykotaPrinter.inc:79 ../lib/modules/pykotaGroup.inc:93 +#: ../lib/modules/pykotaUser.inc:93 ../lib/modules/pykotaBillingCode.inc:61 +msgid "PyKota" +msgstr "PyKota" + +#: ../lib/types/pykotaBillingCodeType.inc:62 +msgid "PyKota billing codes" +msgstr "PyKota codici di addebito" + +#: ../lib/modules/pykotaGroup.inc:121 ../lib/modules/pykotaGroup.inc:148 +#: ../lib/modules/pykotaGroup.inc:181 ../lib/modules/pykotaGroup.inc:201 +#: ../lib/modules/pykotaGroup.inc:203 ../lib/modules/pykotaGroup.inc:467 +msgid "PyKota group name" +msgstr "Nome gruppo PyKota " + +#: ../lib/types/pykotaPrinterType.inc:62 +msgid "PyKota printers" +msgstr "Stampanti PyKota " + +#: ../lib/modules/pykotaUser.inc:124 ../lib/modules/pykotaUser.inc:190 +#: ../lib/modules/pykotaUser.inc:260 ../lib/modules/pykotaUser.inc:315 +#: ../lib/modules/pykotaUser.inc:317 ../lib/modules/pykotaUser.inc:891 +msgid "PyKota user name" +msgstr "Nome utente PyKota " + +#: ../lib/modules/pykotaGroup.inc:221 +msgid "Pykota group name" +msgstr "Nome gruppo PyKota " + +#: ../lib/modules/pykotaUser.inc:359 +msgid "Pykota user name" +msgstr "nome utente PyKota " + +#: ../lib/modules/qmailUser.inc:87 ../lib/modules/qmailGroup.inc:56 +msgid "Qmail" +msgstr "Qmail" + +#: ../lib/modules/asteriskAccount.inc:183 +#: ../lib/modules/asteriskAccount.inc:284 +#: ../lib/modules/asteriskAccount.inc:443 +#: ../lib/modules/asteriskAccount.inc:691 +#: ../lib/modules/asteriskAccount.inc:1000 +#: ../lib/modules/asteriskAccount.inc:1269 +msgid "Qualify" +msgstr "Qualifica" + +#: ../lib/modules/passwordSelfReset.inc:76 +#: ../lib/modules/passwordSelfReset.inc:170 +#: ../lib/modules/passwordSelfReset.inc:177 +#: ../lib/modules/passwordSelfReset.inc:197 +#: ../lib/modules/passwordSelfReset.inc:218 +#: ../lib/modules/passwordSelfReset.inc:258 +#: ../lib/modules/passwordSelfReset.inc:381 +#: ../lib/modules/passwordSelfReset.inc:658 +#: ../lib/modules/passwordSelfReset.inc:1043 +msgid "Question" +msgstr "Domanda" + +#: ../lib/modules/qmailUser.inc:668 ../lib/modules/quota.inc:87 +#: ../lib/modules/quota.inc:100 ../lib/modules/quota.inc:153 +#: ../lib/modules/pykotaGroup.inc:61 ../lib/modules/pykotaGroup.inc:175 +#: ../lib/modules/pykotaGroup.inc:176 ../lib/modules/zarafaUser.inc:481 +#: ../lib/modules/pykotaUser.inc:61 ../lib/modules/pykotaUser.inc:235 +#: ../lib/modules/pykotaUser.inc:236 ../lib/modules/systemQuotas.inc:58 +#: ../lib/modules/systemQuotas.inc:68 ../lib/modules/systemQuotas.inc:75 +#: ../lib/modules/systemQuotas.inc:81 ../lib/modules/systemQuotas.inc:88 +#: ../lib/modules/imapAccess.inc:109 ../lib/modules/imapAccess.inc:164 +msgid "Quota" +msgstr "Quota" + +#: ../lib/modules/quota.inc:698 +#, php-format +msgid "Quota for %s on %s" +msgstr "Quota per %s su %s" + +#: ../lib/modules/zarafaUser.inc:100 ../lib/modules/zarafaUser.inc:230 +#: ../lib/modules/zarafaUser.inc:352 ../lib/modules/zarafaUser.inc:412 +#: ../lib/modules/zarafaUser.inc:516 ../lib/modules/zarafaUser.inc:1231 +#: ../lib/modules/zarafaUser.inc:1314 ../lib/modules/zarafaUser.inc:1791 +msgid "Quota hard limit" +msgstr "Limite quota hard" + +#: ../lib/modules/quota.inc:63 +msgid "Quota has wrong format!" +msgstr "La quota ha un formato non valido!" + +#: ../lib/modules/imapAccess.inc:319 ../lib/modules/imapAccess.inc:328 +msgid "Quota limit (kB)" +msgstr "Limite quota (kb)" + +#: ../lib/modules/zarafaUser.inc:88 ../lib/modules/zarafaUser.inc:204 +#: ../lib/modules/zarafaUser.inc:343 ../lib/modules/zarafaUser.inc:488 +#: ../lib/modules/zarafaUser.inc:1242 ../lib/modules/zarafaUser.inc:1305 +#: ../lib/modules/zarafaUser.inc:1785 +msgid "Quota override" +msgstr "Superamento quota" + +#: ../lib/modules/qmailUser.inc:106 ../lib/modules/qmailUser.inc:133 +#: ../lib/modules/qmailUser.inc:219 ../lib/modules/qmailUser.inc:308 +#: ../lib/modules/qmailUser.inc:409 ../lib/modules/qmailUser.inc:675 +#: ../lib/modules/qmailUser.inc:1144 +msgid "Quota size" +msgstr "Dimensione quota" + +#: ../lib/modules/zarafaUser.inc:96 ../lib/modules/zarafaUser.inc:222 +#: ../lib/modules/zarafaUser.inc:349 ../lib/modules/zarafaUser.inc:410 +#: ../lib/modules/zarafaUser.inc:506 ../lib/modules/zarafaUser.inc:1230 +#: ../lib/modules/zarafaUser.inc:1311 ../lib/modules/zarafaUser.inc:1789 +msgid "Quota soft limit" +msgstr "Limite quota soft" + +#: ../lib/modules/zarafaUser.inc:92 ../lib/modules/zarafaUser.inc:214 +#: ../lib/modules/zarafaUser.inc:346 ../lib/modules/zarafaUser.inc:408 +#: ../lib/modules/zarafaUser.inc:496 ../lib/modules/zarafaUser.inc:1229 +#: ../lib/modules/zarafaUser.inc:1308 ../lib/modules/zarafaUser.inc:1787 +msgid "Quota warning limit" +msgstr "Limite avviso quota" + +#: ../templates/masscreate.php:334 ../templates/profedit/profilepage.php:213 +#: ../lib/modules/selfRegistration.inc:98 +#: ../lib/modules/selfRegistration.inc:210 ../lib/modules.inc:1004 +#: ../help/help.inc:186 +msgid "RDN identifier" +msgstr "Identificatore RDN" + +#: ../lib/types/host.inc:93 +msgid "RID (Windows UID)" +msgstr "RID (Windows UID)" + +#: ../lib/modules/sambaDomain.inc:97 ../lib/modules/sambaDomain.inc:158 +#: ../lib/modules/sambaDomain.inc:189 ../lib/modules/sambaDomain.inc:383 +#: ../lib/modules/sambaDomain.inc:389 ../lib/modules/sambaDomain.inc:604 +msgid "RID base" +msgstr "Base RID" + +#: ../lib/modules/sambaDomain.inc:352 +msgid "RID settings" +msgstr "Impostazioni RID" + +#: ../lib/modules/asteriskAccount.inc:195 +#: ../lib/modules/asteriskAccount.inc:287 +#: ../lib/modules/asteriskAccount.inc:465 +#: ../lib/modules/asteriskAccount.inc:704 +#: ../lib/modules/asteriskAccount.inc:1003 +#: ../lib/modules/asteriskAccount.inc:1275 +msgid "RTP hold timeout" +msgstr "Scadenza attesa RTP" + +#: ../lib/modules/asteriskAccount.inc:191 +#: ../lib/modules/asteriskAccount.inc:286 +#: ../lib/modules/asteriskAccount.inc:458 +#: ../lib/modules/asteriskAccount.inc:699 +#: ../lib/modules/asteriskAccount.inc:1002 +#: ../lib/modules/asteriskAccount.inc:1273 +msgid "RTP timeout" +msgstr "Scadenza RTP" + +#: ../lib/modules/customFields.inc:2928 +msgid "Radio buttons" +msgstr "Bottoni radio" + +#: ../lib/modules/range.inc:92 ../lib/modules/range.inc:427 +msgid "Range from" +msgstr "Intervallo da" + +#: ../lib/modules/range.inc:95 ../lib/modules/range.inc:440 +msgid "Range to" +msgstr "Intervallo a" + +#: ../lib/types/dhcp.inc:95 ../lib/modules/range.inc:74 +#: ../lib/modules/range.inc:106 ../lib/modules/range.inc:495 +msgid "Ranges" +msgstr "Intervalli" + +#: ../templates/config/confmain.php:317 +msgid "Read" +msgstr "Lettura" + +#: ../templates/config/confmain.php:262 ../templates/config/conftypes.php:290 +#: ../lib/modules/customFields.inc:104 ../lib/modules/customFields.inc:1722 +#: ../help/help.inc:182 +msgid "Read-only" +msgstr "Sola-lettura" + +#: ../lib/modules/inetOrgPerson.inc:3574 +msgid "Read-only fields" +msgstr "Campi di sola lettura" + +#: ../lib/modules/customFields.inc:105 +msgid "" +"Read-only fields cannot be changed by the user. Use this if you want to show" +" an attribute just for information." +msgstr "I campi di sola-lettura non potranno essere cambiati dall'utente. Usateli se volete mostrare un attributo per informazione." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2289 +msgid "Really delete value from this attribute?" +msgstr "Volete davvero cancellare il valore da questo attributo?" + +#: ../lib/modules/mitKerberos.inc:120 ../lib/modules/mitKerberos.inc:152 +#: ../lib/modules/mitKerberos.inc:194 ../lib/modules/freeRadius.inc:92 +#: ../lib/modules/freeRadius.inc:126 ../lib/modules/freeRadius.inc:146 +#: ../lib/modules/freeRadius.inc:177 ../lib/modules/freeRadius.inc:231 +#: ../lib/modules/freeRadius.inc:273 ../lib/modules/freeRadius.inc:539 +#: ../lib/modules/heimdalKerberos.inc:98 +#: ../lib/modules/heimdalKerberos.inc:157 +#: ../lib/modules/heimdalKerberos.inc:163 +msgid "Realm" +msgstr "Regno" + +#: ../lib/modules/nisMailAliasUser.inc:355 ../lib/modules/nisMailAlias.inc:181 +msgid "Recipient" +msgstr "Destinatario" + +#: ../lib/modules/nisMailAlias.inc:127 ../lib/modules/nisMailAlias.inc:128 +msgid "Recipient is invalid!" +msgstr "Il destinatario non è valido!" + +#: ../lib/types/mailAlias.inc:92 ../lib/modules/nisMailAlias.inc:89 +#: ../lib/modules/nisMailAlias.inc:108 ../lib/modules/nisMailAlias.inc:116 +#: ../lib/modules/nisMailAlias.inc:476 +msgid "Recipient list" +msgstr "Lista dei destinatari" + +#: ../lib/modules/nisMailAlias.inc:85 ../lib/modules/nisMailAlias.inc:184 +#: ../lib/modules/nisMailAlias.inc:202 +msgid "Recipients" +msgstr "Destinatari" + +#: ../lib/modules/sambaSamAccount.inc:244 +#: ../lib/modules/sambaSamAccount.inc:387 +#: ../lib/modules/sambaSamAccount.inc:1560 +#: ../lib/modules/sambaSamAccount.inc:1970 +msgid "Reconnect if disconnected" +msgstr "Riconnetti se disconnesso" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:63 +msgid "Recursive copy" +msgstr "Copia ricorsiva" + +#: ../templates/3rdParty/pla/htdocs/copy.php:49 +msgid "Recursive copy progress" +msgstr "Avanzamento della copia ricorsiva" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:31 +msgid "Recursive delete progress" +msgstr "Avanzamento della cancellazione ricorsiva" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:65 +msgid "Recursively copy all children of this object as well." +msgstr "Copia ricorsivamente anche tutti i figli di questo oggetto." + +#: ../templates/config/profmanage.php:247 +#: ../templates/config/profmanage.php:286 +#: ../templates/config/mainmanage.php:459 ../templates/config/confmain.php:453 +#: ../lib/modules/selfRegistration.inc:415 +#: ../lib/modules/sambaSamAccount.inc:2268 +#: ../lib/modules/posixAccount.inc:2533 ../lib/modules/windowsUser.inc:1714 +msgid "Reenter password" +msgstr "Reinserire la password" + +#: ../templates/serverInfo.php:187 +msgid "Referrals" +msgstr "Riferimenti" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1051 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1054 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:249 +#: ../lib/modules/asteriskExtension.inc:454 ../lib/lists.inc:788 +msgid "Refresh" +msgstr "Aggiorna" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +msgid "Refresh this entry" +msgstr "Aggiorna questo oggetto" + +#: ../lib/modules/bindDLZ.inc:208 ../lib/modules/bindDLZ.inc:313 +#: ../lib/modules/bindDLZ.inc:417 ../lib/modules/bindDLZ.inc:514 +#: ../lib/modules/bindDLZ.inc:1019 ../lib/modules/bindDLZ.inc:1542 +msgid "Refresh time" +msgstr "Tempo di rinnovo" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:247 +msgid "Refreshing tree" +msgstr "Aggiornamento albero " + +#: ../lib/modules/selfRegistration.inc:340 +msgid "Register new account" +msgstr "Registra nuovo account" + +#: ../lib/modules/inetOrgPerson.inc:85 ../lib/modules/inetOrgPerson.inc:158 +#: ../lib/modules/inetOrgPerson.inc:196 ../lib/modules/inetOrgPerson.inc:401 +#: ../lib/modules/inetOrgPerson.inc:563 ../lib/modules/inetOrgPerson.inc:692 +#: ../lib/modules/inetOrgPerson.inc:1322 ../lib/modules/inetOrgPerson.inc:1899 +#: ../lib/modules/inetOrgPerson.inc:2544 ../lib/modules/inetOrgPerson.inc:3523 +#: ../lib/modules/inetOrgPerson.inc:3580 +msgid "Registered address" +msgstr "Sede legale" + +#: ../lib/modules/inetOrgPerson.inc:693 +msgid "Registered address, city" +msgstr "Sede legale, città" + +#: ../lib/modules/asteriskAccount.inc:215 +#: ../lib/modules/asteriskAccount.inc:292 +#: ../lib/modules/asteriskAccount.inc:501 +#: ../lib/modules/asteriskAccount.inc:725 +#: ../lib/modules/asteriskAccount.inc:1008 +#: ../lib/modules/asteriskAccount.inc:1285 +msgid "Registration context" +msgstr "Contesto di registrazione" + +#: ../lib/modules/asteriskAccount.inc:219 +#: ../lib/modules/asteriskAccount.inc:293 +#: ../lib/modules/asteriskAccount.inc:508 +#: ../lib/modules/asteriskAccount.inc:729 +#: ../lib/modules/asteriskAccount.inc:1009 +#: ../lib/modules/asteriskAccount.inc:1287 +msgid "Registration extension" +msgstr "Estensione di registrazione" + +#: ../lib/modules/asteriskAccount.inc:235 +#: ../lib/modules/asteriskAccount.inc:297 +#: ../lib/modules/asteriskAccount.inc:537 +#: ../lib/modules/asteriskAccount.inc:754 +#: ../lib/modules/asteriskAccount.inc:1013 +#: ../lib/modules/asteriskAccount.inc:1295 +msgid "Registration server" +msgstr "Server di registrazione" + +#: ../lib/modules/kolabUser.inc:53 +msgid "Reject if conflicts" +msgstr "Rifiuta se in conflitto" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +msgid "Reloading" +msgstr "Ricaricamento" + +#: ../templates/login.php:427 +msgid "Remember user name" +msgstr "Ricorda il nome utente" + +#: ../templates/config/confmodules.php:310 +#: ../templates/pdfedit/pdfpage.php:477 ../lib/modules/mitKerberos.inc:688 +#: ../lib/modules/qmailUser.inc:919 ../lib/modules/windowsHost.inc:158 +#: ../lib/modules/sambaSamAccount.inc:1479 ../lib/modules/kolabUser.inc:871 +#: ../lib/modules/shadowAccount.inc:476 ../lib/modules/freeRadius.inc:429 +#: ../lib/modules/sudoRole.inc:318 ../lib/modules/sudoRole.inc:345 +#: ../lib/modules/sudoRole.inc:372 ../lib/modules/sudoRole.inc:399 +#: ../lib/modules/sudoRole.inc:426 ../lib/modules/sudoRole.inc:453 +#: ../lib/modules/heimdalKerberos.inc:598 ../lib/modules/windowsGroup.inc:364 +msgid "Remove" +msgstr "Rimuovi" + +#: ../lib/modules/asteriskVoicemail.inc:263 +msgid "Remove Asterisk voicemail extension" +msgstr "Rimuovi l'estensione voicemail Asterisk" + +#: ../lib/modules/authorizedServiceObject.inc:170 +msgid "Remove Authorized Service extension" +msgstr "Rimuovi l'estensione servizio autorizzato" + +#: ../lib/modules/eduPerson.inc:355 +msgid "Remove EDU person extension" +msgstr "Rimuovi estensione persona EDU" + +#: ../lib/modules/freeRadius.inc:307 +msgid "Remove FreeRadius extension" +msgstr "Rimuovere estensione FreeRadius" + +#: ../lib/modules/ipHost.inc:160 +msgid "Remove IP address extension" +msgstr "Rimuovi l'estensione indirizzo IP" + +#: ../lib/modules/mitKerberos.inc:472 ../lib/modules/heimdalKerberos.inc:397 +msgid "Remove Kerberos extension" +msgstr "Rimuovere estensione kerberos" + +#: ../lib/modules/puppetClient.inc:280 +msgid "Remove Puppet extension" +msgstr "Rimuovi estensione Puppet" + +#: ../lib/modules/pykotaGroup.inc:238 ../lib/modules/pykotaUser.inc:418 +msgid "Remove PyKota extension" +msgstr "Rimuovere l'estensione PyKota " + +#: ../lib/modules/sambaSamAccount.inc:1306 +#: ../lib/modules/sambaGroupMapping.inc:423 +msgid "Remove Samba 3 extension" +msgstr "Rimuovi l'estensione Samba 3" + +#: ../lib/modules/shadowAccount.inc:375 +msgid "Remove Shadow account extension" +msgstr "Rimuovi l'estensione account Shadow" + +#: ../lib/modules/posixGroup.inc:246 ../lib/modules/posixAccount.inc:1511 +msgid "Remove Unix extension" +msgstr "Rimuovere estensione Unix" + +#: ../lib/modules/zarafaContact.inc:258 ../lib/modules/zarafaGroup.inc:307 +#: ../lib/modules/zarafaUser.inc:655 ../lib/modules/zarafaServer.inc:232 +msgid "Remove Zarafa extension" +msgstr "Rimuovi l'estensione Zarafa" + +#: ../lib/modules/customFields.inc:457 +msgid "Remove extension" +msgstr "Rimuovi estensione" + +#: ../lib/types/user.inc:384 +msgid "Remove from all Unix groups" +msgstr "Rimuovi da tutti i gruppi unix" + +#: ../lib/types/user.inc:388 +msgid "Remove from all group of (unique) names" +msgstr "Rimuovi da tutti i gruppi di nomi (unici)" + +#: ../lib/modules/hostObject.inc:147 +msgid "Remove host extension" +msgstr "Rimuovi l'estensione Computer" + +#: ../lib/modules/posixGroup.inc:213 ../lib/modules/posixAccount.inc:1504 +#: ../lib/modules/inetOrgPerson.inc:1564 +msgid "Remove password" +msgstr "Rimuovere la password" + +#: ../lib/modules/passwordSelfReset.inc:281 +msgid "Remove password self reset extension" +msgstr "Rimuovi l'estensione auto password reset" + +#: ../lib/modules/qmailUser.inc:706 ../lib/modules/qmailGroup.inc:627 +msgid "Remove qmail extension" +msgstr "Rimuovi estensione qmail" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:147 +#: ../lib/modules/zarafaContact.inc:418 ../lib/modules/zarafaGroup.inc:478 +#: ../lib/modules/device.inc:281 ../lib/modules/zarafaUser.inc:902 +#: ../lib/modules/inetOrgPerson.inc:1737 ../lib/modules/qmailGroup.inc:850 +#: ../lib/modules/organizationalRole.inc:383 +#: ../lib/modules/windowsGroup.inc:584 ../lib/modules/groupOfNames.inc:440 +#: ../lib/modules/groupOfNames.inc:595 +msgid "Remove selected entries" +msgstr "Rimuovere gli oggetti selezionati" + +#: ../templates/config/conftypes.php:248 +msgid "Remove this account type" +msgstr "Rimuovere questo tipo di account" + +#: ../lib/modules/nisMailAliasUser.inc:153 +#: ../lib/modules/nisMailAliasUser.inc:192 +msgid "Remove user from alias entry." +msgstr "Rimuove l'utente dalla voce alias." + +#: ../lib/modules/inetOrgPerson.inc:2646 +msgid "Remove/replace photo" +msgstr "Rimuovi/sostituisci la foto" + +#: ../templates/config/profmanage.php:264 +#: ../templates/selfService/profManage.php:225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1152 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1155 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:24 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:35 +#: ../templates/3rdParty/pla/htdocs/rename.php:53 +msgid "Rename" +msgstr "Rinomina" + +#: ../templates/3rdParty/pla/htdocs/rename_form.php:28 +#, php-format +msgid "Rename %s to a new object." +msgstr "Rinomina %s in un nuovo oggetto." + +#: ../templates/config/profmanage.php:259 +#: ../templates/config/profmanage.php:265 +#: ../templates/selfService/profManage.php:216 +#: ../templates/selfService/profManage.php:226 ../help/help.inc:132 +msgid "Rename profile" +msgstr "Rinomina il profilo" + +#: ../templates/3rdParty/pla/htdocs/rename.php:48 +msgid "Rename successful!" +msgstr "Rinomina eseguita con successo!" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +msgid "Rename this entry" +msgstr "Rinomina questo oggetto" + +#: ../templates/config/profmanage.php:98 +#: ../templates/selfService/profManage.php:72 +msgid "Renamed profile." +msgstr "Profilo rinominato." + +#: ../templates/3rdParty/pla/htdocs/import.php:30 +#: ../templates/3rdParty/pla/htdocs/import.php:31 +msgid "Renaming" +msgstr "Rinomina" + +#: ../lib/modules/mitKerberos.inc:132 ../lib/modules/mitKerberos.inc:196 +#: ../lib/modules/mitKerberos.inc:236 ../lib/modules/mitKerberos.inc:253 +#: ../lib/modules/mitKerberos.inc:366 ../lib/modules/mitKerberos.inc:771 +#: ../lib/modules/heimdalKerberos.inc:114 +#: ../lib/modules/heimdalKerberos.inc:165 +#: ../lib/modules/heimdalKerberos.inc:205 +#: ../lib/modules/heimdalKerberos.inc:222 +#: ../lib/modules/heimdalKerberos.inc:313 +#: ../lib/modules/heimdalKerberos.inc:691 +msgid "Renewable lifetime" +msgstr "Durata rinnovabile" + +#: ../lib/modules/mitKerberos.inc:295 ../lib/modules/mitKerberos.inc:296 +#: ../lib/modules/heimdalKerberos.inc:259 +#: ../lib/modules/heimdalKerberos.inc:260 +msgid "Renewable lifetime must be a number." +msgstr "La durata rinnovabile deve essere un numero." + +#: ../templates/lists/changePassword.php:359 +#: ../lib/modules/passwordSelfReset.inc:1067 ../lib/modules.inc:1048 +msgid "Repeat password" +msgstr "Ripetere la password" + +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:1199 +msgid "Replaced $user or $group in homedir." +msgstr "Sostituito $user o $group nella homedir." + +#: ../templates/config/confmain.php:346 ../help/help.inc:257 +msgid "Reply-to address" +msgstr "Indirizzo di risposta" + +#: ../templates/config/confmain.php:523 +msgid "Reply-to address for password mails is invalid." +msgstr "Indirizzo di risposta per l'email della password non valida." + +#: ../lib/types/ppolicyType.inc:89 ../lib/modules/ppolicy.inc:128 +#: ../lib/modules/ppolicy.inc:154 ../lib/modules/ppolicy.inc:288 +#: ../lib/modules/ppolicy.inc:500 +msgid "Require password change on first login" +msgstr "Richiedi il cambio della password al primo login" + +#: ../lib/modules/windowsUser.inc:201 ../lib/modules/windowsUser.inc:402 +#: ../lib/modules/windowsUser.inc:519 ../lib/modules/windowsUser.inc:750 +#: ../lib/modules/windowsUser.inc:1621 +msgid "Require smartcard" +msgstr "Smartcard obbligatoria" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 +msgid "Required attribute for object classes" +msgstr "Attributo necessario per la classe di oggetto" + +#: ../templates/schema/schema.php:383 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1567 +msgid "Required attributes" +msgstr "Attributi obbligatori" + +#: ../lib/modules/mitKerberos.inc:180 ../lib/modules/mitKerberos.inc:462 +msgid "Requires hardware authentication" +msgstr "Richiedi autenticazione hardware" + +#: ../lib/modules/mitKerberos.inc:177 ../lib/modules/mitKerberos.inc:457 +#: ../lib/modules/heimdalKerberos.inc:151 +#: ../lib/modules/heimdalKerberos.inc:388 +msgid "Requires preauthentication" +msgstr "Pre-autenticazione necessaria" + +#: ../lib/modules/sambaSamAccount.inc:1300 +#: ../lib/modules/pykotaBillingCode.inc:93 +#: ../lib/modules/pykotaBillingCode.inc:163 +msgid "Reset" +msgstr "Azzera" + +#: ../lib/modules.inc:1212 +msgid "Reset changes" +msgstr "Azzera i cambiamenti" + +#: ../lib/modules/sambaSamAccount.inc:264 +#: ../lib/modules/sambaSamAccount.inc:1299 +msgid "Reset password" +msgstr "Azzera la password" + +#: ../lib/modules/sambaDomain.inc:137 ../lib/modules/sambaDomain.inc:199 +#: ../lib/modules/sambaDomain.inc:224 ../lib/modules/sambaDomain.inc:348 +#: ../lib/modules/sambaDomain.inc:611 +msgid "Reset time after lockout" +msgstr "Tempo dopo il quale il blocco viene rimosso" + +#: ../lib/modules/sambaDomain.inc:224 +msgid "Reset time after lockout must be are natural number." +msgstr "Il tempo dopo il quale il blocco viene rimosso deve essere un numero naturale." + +#: ../lib/modules/pykotaBillingCode.inc:94 +msgid "Resets the billing code's balance and page counter to 0." +msgstr "Reimpostare il bilancio del codice di addebito e contatore di pagina a 0." + +#: ../lib/modules/zarafaUser.inc:523 +msgid "Resource settings" +msgstr "Impostazioni risorsa" + +#: ../lib/modules/asteriskAccount.inc:187 +#: ../lib/modules/asteriskAccount.inc:285 +#: ../lib/modules/asteriskAccount.inc:450 +#: ../lib/modules/asteriskAccount.inc:695 +#: ../lib/modules/asteriskAccount.inc:1001 +#: ../lib/modules/asteriskAccount.inc:1271 +msgid "Restrict caller ID" +msgstr "Restrizioni ID chiamante" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:113 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:118 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:550 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:587 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:198 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:84 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:122 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +msgid "Retrieving DN" +msgstr "Recupero DN" + +#: ../lib/modules/bindDLZ.inc:212 ../lib/modules/bindDLZ.inc:325 +#: ../lib/modules/bindDLZ.inc:418 ../lib/modules/bindDLZ.inc:516 +#: ../lib/modules/bindDLZ.inc:1030 ../lib/modules/bindDLZ.inc:1543 +msgid "Retry time" +msgstr "Tempo di riprova" + +#: ../lib/modules/bindDLZ.inc:748 +msgid "Reverse DNS entries (\"PTR\" records)" +msgstr "Voci DNS reverse (records \"PTR\")" + +#: ../lib/modules/ddns.inc:106 ../lib/modules/ddns.inc:114 +#: ../lib/modules/ddns.inc:135 ../lib/modules/ddns.inc:397 +#: ../lib/modules/ddns.inc:426 +msgid "Reverse zone name" +msgstr "Nome zona inverso" + +#: ../templates/config/confmain.php:313 ../help/help.inc:118 +msgid "Rights for the home directory" +msgstr "Permessi per la home directory" + +#: ../lib/modules/organizationalRole.inc:65 +msgid "Role" +msgstr "Ruolo" + +#: ../lib/types/gon.inc:209 ../lib/types/group.inc:247 +#, php-format +msgid "Role count: %s" +msgstr "Conteggio ruoli: %s" + +#: ../lib/types/gon.inc:107 ../lib/types/group.inc:110 +msgid "Role member DNs" +msgstr "DN del membro del ruolo" + +#: ../lib/types/gon.inc:112 ../lib/types/group.inc:116 +#: ../lib/types/sudo.inc:77 ../lib/modules/sudoRole.inc:66 +#: ../lib/modules/sudoRole.inc:146 ../lib/modules/sudoRole.inc:214 +#: ../lib/modules/sudoRole.inc:299 ../lib/modules/sudoRole.inc:804 +msgid "Role name" +msgstr "Nome del ruolo" + +#: ../lib/types/gon.inc:63 ../lib/types/group.inc:64 +#: ../lib/modules/organizationalRoleUser.inc:54 +#: ../lib/modules/organizationalRoleUser.inc:56 +#: ../lib/modules/organizationalRoleUser.inc:60 +#: ../lib/modules/organizationalRoleUser.inc:64 +#: ../lib/modules/organizationalRoleUser.inc:71 +#: ../lib/modules/organizationalRoleUser.inc:270 +#: ../lib/modules/organizationalRoleUser.inc:306 +msgid "Roles" +msgstr "Ruoli" + +#: ../lib/modules/zarafaUser.inc:528 ../lib/modules/zarafaUser.inc:1246 +msgid "Room" +msgstr "Stanza" + +#: ../lib/modules/inetOrgPerson.inc:160 ../lib/modules/inetOrgPerson.inc:202 +#: ../lib/modules/inetOrgPerson.inc:475 ../lib/modules/inetOrgPerson.inc:569 +#: ../lib/modules/inetOrgPerson.inc:760 ../lib/modules/inetOrgPerson.inc:1366 +#: ../lib/modules/inetOrgPerson.inc:1369 ../lib/modules/inetOrgPerson.inc:1906 +#: ../lib/modules/inetOrgPerson.inc:2577 ../lib/modules/inetOrgPerson.inc:3527 +#: ../lib/modules/inetOrgPerson.inc:3581 +msgid "Room number" +msgstr "Numero di stanza" + +#: ../lib/modules/inetLocalMailRecipient.inc:68 +#: ../lib/modules/inetLocalMailRecipient.inc:100 +#: ../lib/modules/inetLocalMailRecipient.inc:119 +#: ../lib/modules/inetLocalMailRecipient.inc:146 +#: ../lib/modules/inetLocalMailRecipient.inc:292 +msgid "Routing address" +msgstr "Indirizzo di instradamento" + +#: ../lib/modules/customFields.inc:132 ../lib/modules/customFields.inc:2607 +msgid "Rows" +msgstr "Righe" + +#: ../lib/modules/asteriskExtension.inc:139 +#: ../lib/modules/asteriskExtension.inc:311 +msgid "Rules" +msgstr "Regole" + +#: ../lib/modules/customScripts.inc:187 +msgid "Run" +msgstr "Esegui" + +#: ../lib/types/sudo.inc:82 +msgid "Run group" +msgstr "Gruppo esecuzione" + +#: ../lib/modules/sudoRole.inc:90 ../lib/modules/sudoRole.inc:118 +#: ../lib/modules/sudoRole.inc:183 ../lib/modules/sudoRole.inc:220 +#: ../lib/modules/sudoRole.inc:232 ../lib/modules/sudoRole.inc:424 +#: ../lib/modules/sudoRole.inc:810 +msgid "Run groups" +msgstr "Gruppi in esercizio" + +#: ../lib/types/sudo.inc:81 +msgid "Run user" +msgstr "Utente in esercizio" + +#: ../lib/modules/sudoRole.inc:86 ../lib/modules/sudoRole.inc:113 +#: ../lib/modules/sudoRole.inc:177 ../lib/modules/sudoRole.inc:219 +#: ../lib/modules/sudoRole.inc:231 ../lib/modules/sudoRole.inc:397 +#: ../lib/modules/sudoRole.inc:809 +msgid "Run users" +msgstr "Utenti in esercizio" + +#: ../lib/modules/windowsUser.inc:304 +msgid "S.M." +msgstr "S.M." + +#: ../templates/serverInfo.php:129 +msgid "SASL mechanisms" +msgstr "Meccanismi SASL" + +#: ../lib/modules/asteriskAccount.inc:152 +msgid "SIP URI for a realtime peer." +msgstr "URI SIP per un utente realtime" + +#: ../lib/modules/asteriskAccount.inc:128 +msgid "SIP user agent identification." +msgstr "Indentificazione user agent SIP." + +#: ../lib/modules/bindDLZ.inc:307 ../lib/modules/bindDLZ.inc:313 +#: ../lib/modules/bindDLZ.inc:319 ../lib/modules/bindDLZ.inc:325 +#: ../lib/modules/bindDLZ.inc:331 ../lib/modules/bindDLZ.inc:338 +#: ../lib/modules/bindDLZ.inc:344 ../lib/modules/bindDLZ.inc:350 +#: ../lib/modules/bindDLZ.inc:416 ../lib/modules/bindDLZ.inc:417 +#: ../lib/modules/bindDLZ.inc:418 ../lib/modules/bindDLZ.inc:419 +#: ../lib/modules/bindDLZ.inc:420 ../lib/modules/bindDLZ.inc:421 +#: ../lib/modules/bindDLZ.inc:422 ../lib/modules/bindDLZ.inc:423 +#: ../lib/modules/bindDLZ.inc:480 ../lib/modules/bindDLZ.inc:512 +#: ../lib/modules/bindDLZ.inc:514 ../lib/modules/bindDLZ.inc:516 +#: ../lib/modules/bindDLZ.inc:518 ../lib/modules/bindDLZ.inc:520 +#: ../lib/modules/bindDLZ.inc:522 +msgid "SOA record" +msgstr "record SOA" + +#: ../lib/modules/bindDLZ.inc:123 ../lib/modules/bindDLZ.inc:382 +#: ../lib/modules/bindDLZ.inc:387 ../lib/modules/bindDLZ.inc:392 +#: ../lib/modules/bindDLZ.inc:397 ../lib/modules/bindDLZ.inc:402 +#: ../lib/modules/bindDLZ.inc:486 +msgid "SRV record" +msgstr "Record SRV" + +#: ../lib/modules/bindDLZ.inc:426 ../lib/modules/bindDLZ.inc:436 +#: ../lib/modules/bindDLZ.inc:1596 +msgid "SRV records" +msgstr "Record SRV" + +#: ../templates/tests/lamdaemonTest.php:243 +msgid "SSH connection" +msgstr "Connessione SSH" + +#: ../templates/tests/lamdaemonTest.php:256 +msgid "SSH connection could be established." +msgstr "Non è stato possibile stabilire una connessione SSH." + +#: ../lib/modules/ldapPublicKey.inc:62 ../lib/modules/ldapPublicKey.inc:72 +#: ../lib/modules/ldapPublicKey.inc:76 ../lib/modules/ldapPublicKey.inc:88 +#: ../lib/modules/ldapPublicKey.inc:119 +msgid "SSH public key" +msgstr "Chiave pubblica SSH" + +#: ../lib/modules/ldapPublicKey.inc:95 ../lib/modules/ldapPublicKey.inc:99 +#: ../lib/modules/ldapPublicKey.inc:197 ../lib/modules/ldapPublicKey.inc:237 +msgid "SSH public keys" +msgstr "Chiavi pubbliche SSH" + +#: ../help/help.inc:83 +msgid "SSL certificate" +msgstr "Certificato SSL" + +#: ../templates/config/mainmanage.php:308 +msgid "SSL certificates" +msgstr "Certificati SSL" + +#: ../lib/modules/zarafaServer.inc:72 ../lib/modules/zarafaServer.inc:106 +#: ../lib/modules/zarafaServer.inc:136 ../lib/modules/zarafaServer.inc:175 +#: ../lib/modules/zarafaServer.inc:203 ../lib/modules/zarafaServer.inc:355 +msgid "SSL port" +msgstr "Porta SSL" + +#: ../templates/lists/changePassword.php:402 +#: ../templates/lists/changePassword.php:433 +msgid "Samba" +msgstr "Samba" + +#: ../lib/types/user.inc:276 ../lib/types/user.inc:372 +#: ../lib/types/user.inc:404 ../lib/types/user.inc:829 +#: ../lib/modules/sambaSamAccount.inc:146 +#: ../lib/modules/sambaGroupMapping.inc:101 +msgid "Samba 3" +msgstr "Samba 3" + +#: ../lib/modules/sambaDomain.inc:210 ../lib/modules/sambaDomain.inc:211 +msgid "Samba 3 domain SID is invalid!" +msgstr "Il SID di dominio Samba 3 non è valido!" + +#: ../lib/types/smbDomain.inc:62 +msgid "Samba 3 domain entries" +msgstr "Domini Samba 3" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:228 +msgid "Samba ID pool" +msgstr "Pool ID Samba" + +#: ../lib/modules/posixGroup.inc:413 ../lib/modules/posixGroup.inc:524 +#: ../lib/modules/posixGroup.inc:613 ../lib/modules/posixAccount.inc:131 +#: ../lib/modules/posixAccount.inc:215 ../lib/modules/posixAccount.inc:233 +#: ../lib/modules/posixAccount.inc:501 +msgid "Samba ID pool DN" +msgstr "DN pool ID Samba" + +#: ../lib/modules/sambaSamAccount.inc:329 +#: ../lib/modules/sambaSamAccount.inc:333 +#: ../lib/modules/sambaSamAccount.inc:477 +#: ../lib/modules/sambaSamAccount.inc:543 +msgid "Samba RID" +msgstr "RID Samba" + +#: ../lib/modules/sambaGroupMapping.inc:129 +#: ../lib/modules/sambaGroupMapping.inc:154 +msgid "Samba RID number" +msgstr "RID Samba" + +#: ../lib/modules/sambaGroupMapping.inc:123 +msgid "Samba display name" +msgstr "Nome visualizzato Samba" + +#: ../lib/modules/sambaDomain.inc:58 +msgid "Samba domain" +msgstr "Dominio Samba" + +#: ../lib/modules/sambaGroupMapping.inc:245 +msgid "Samba domain name" +msgstr "Nome di dominio Samba" + +#: ../lib/types/smbDomain.inc:53 +msgid "Samba domains" +msgstr "Domini Samba" + +#: ../lib/modules/sambaGroupMapping.inc:113 +#: ../lib/modules/sambaGroupMapping.inc:135 +#: ../lib/modules/sambaGroupMapping.inc:162 +#: ../lib/modules/sambaGroupMapping.inc:541 +msgid "Samba group type" +msgstr "Tipo di gruppo Samba" + +#: ../lib/modules/sambaSamAccount.inc:261 +msgid "Samba password" +msgstr "Password Samba" + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:226 +#: ../lib/modules/sambaSamAccount.inc:314 +#: ../lib/modules/sambaSamAccount.inc:317 +#: ../lib/modules/sambaSamAccount.inc:518 +#: ../lib/modules/sambaSamAccount.inc:604 +#: ../lib/modules/sambaSamAccount.inc:1240 +#: ../lib/modules/sambaSamAccount.inc:1766 +#: ../lib/modules/sambaSamAccount.inc:1904 +msgid "Samba workstations" +msgstr "Computer Samba" + +#: ../lib/modules/sambaSamAccount.inc:1376 +msgid "Saturday" +msgstr "Sabato" + +#: ../templates/config/confmodules.php:224 +#: ../templates/config/confmain.php:468 +#: ../templates/config/moduleSettings.php:238 +#: ../templates/config/conftypes.php:338 +#: ../templates/selfService/selfServiceMain.php:416 +#: ../templates/selfService/adminMain.php:745 +#: ../templates/pdfedit/pdfpage.php:636 +#: ../templates/profedit/profilepage.php:238 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1243 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1247 +#: ../lib/modules/inetOrgPerson.inc:2801 ../lib/modules/customFields.inc:3456 +#: ../lib/modules.inc:1206 +msgid "Save" +msgstr "Salva" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +msgid "Save a dump of this object" +msgstr "Salva un dump di questo oggetto" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1244 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Save a dump of this object and all of its children" +msgstr "Salva un dump di questo oggetto e di tutti i suoi figli" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:90 +msgid "Save as file" +msgstr "Salva come file" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:172 +msgid "Save changes" +msgstr "Salva i cambiamenti" + +#: ../lib/tools/schemaBrowser.inc:44 +msgid "Schema browser" +msgstr "Esplorazione dello schema" + +#: ../templates/serverInfo.php:119 +msgid "Schema suffix" +msgstr "Schema suffisso" + +#: ../templates/tests/schemaTest.php:55 ../templates/tests/index.php:58 +#: ../lib/tools/tests.inc:116 +msgid "Schema test" +msgstr "Test dello schema" + +#: ../lib/modules/eduPerson.inc:92 ../lib/modules/eduPerson.inc:96 +#: ../lib/modules/eduPerson.inc:175 ../lib/modules/eduPerson.inc:233 +#: ../lib/modules/eduPerson.inc:285 ../lib/modules/eduPerson.inc:582 +msgid "Scoped affiliations" +msgstr "Affiliazione primaria" + +#: ../help/help.inc:101 +msgid "Script path" +msgstr "Percorso dello script" + +#: ../templates/config/confmain.php:573 +msgid "Script path is invalid!" +msgstr "Il percorso dello script non è valido!" + +#: ../templates/config/confmain.php:592 +msgid "Script rights are invalid!" +msgstr "I permessi sullo script non sono validi!" + +#: ../templates/config/confmain.php:576 +msgid "Script server is invalid!" +msgstr "Il server per lo script non è valido!" + +#: ../help/help.inc:114 +msgid "Script servers" +msgstr "Server per lo script" + +#: ../templates/serverInfo.php:300 ../templates/serverInfo.php:380 +#: ../templates/3rdParty/pla/lib/QueryRender.php:75 +#: ../templates/3rdParty/pla/lib/QueryRender.php:180 +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:619 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:235 +msgid "Search" +msgstr "Ricerca" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +#: ../templates/3rdParty/pla/lib/QueryRender.php:190 +msgid "Search Results" +msgstr "Risultati ricerca" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +#: ../templates/3rdParty/pla/lib/export_functions.php:201 +#: ../templates/3rdParty/pla/htdocs/export_form.php:81 +msgid "Search filter" +msgstr "Filtro di ricerca" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:293 +msgid "Search returned no results" +msgstr "La ricerca non ha restituito risultati" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +#: ../templates/3rdParty/pla/lib/export_functions.php:200 +#: ../templates/3rdParty/pla/htdocs/export_form.php:67 +msgid "Search scope" +msgstr "Ambito della ricerca" + +#: ../lib/modules/asteriskExtension.inc:457 +msgid "Search tree suffix for users" +msgstr "Suffisso albero di ricerca per gli utenti" + +#: ../templates/pdfedit/pdfpage.php:608 +msgid "Section" +msgstr "Sezione" + +#: ../lib/modules/windowsGroup.inc:60 +msgid "Security" +msgstr "Sicurezza" + +#: ../templates/3rdParty/pla/lib/Template.php:397 +#: ../templates/3rdParty/pla/lib/Template.php:422 +#: ../templates/3rdParty/pla/lib/Template.php:427 +#: ../templates/3rdParty/pla/lib/Template.php:484 +#: ../templates/3rdParty/pla/lib/Template.php:509 +#: ../templates/3rdParty/pla/lib/Template.php:514 +msgid "Security error: The file being uploaded may be malicious." +msgstr "Errore di sicurezza: Il file che sta per essere caricato potrebbe essere malizioso." + +#: ../lib/modules/zarafaGroup.inc:81 ../lib/modules/zarafaGroup.inc:178 +#: ../lib/modules/zarafaGroup.inc:203 ../lib/modules/zarafaGroup.inc:285 +#: ../lib/modules/zarafaGroup.inc:655 +msgid "Security group" +msgstr "Gruppo di sicurezza" + +#: ../lib/modules/windowsGroup.inc:139 +msgid "" +"Security groups are used for permission management and distribution groups " +"as email lists." +msgstr "I gruppi di sicurezza sono utilizzati per la gestione dei permessi e dei gruppi di distribuzione quali le mailing lists." + +#: ../lib/modules/passwordSelfReset.inc:80 +#: ../lib/modules/passwordSelfReset.inc:205 +#: ../lib/modules/passwordSelfReset.inc:527 +msgid "Security questions" +msgstr "Domande di sicurezza" + +#: ../templates/config/mainmanage.php:295 ../templates/config/confmain.php:458 +msgid "Security settings" +msgstr "Impostazioni di sicurezza" + +#: ../templates/help.php:94 +msgid "See also" +msgstr "Leggere anche" + +#: ../lib/account.inc:790 +msgid "See the manual for instructions to solve this problem." +msgstr "Leggere il manuale per avere istruzioni su come risolvere questo problema." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:494 +msgid "Select a template for the creation process" +msgstr "Selezionare un modello per il processo di creazione" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:498 +msgid "Select a template to edit the entry" +msgstr "Selezionare un modello per modificare l'oggetto" + +#: ../lib/lists.inc:354 ../lib/lists.inc:471 +msgid "Select all" +msgstr "Seleziona tutti" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:31 +msgid "Select an LDIF file" +msgstr "Selezionare un file LDIF" + +#: ../lib/modules/nisnetgroup.inc:240 ../lib/modules/nisnetgroup.inc:269 +msgid "Select host" +msgstr "Seleziona il computer" + +#: ../lib/modules/customFields.inc:3126 +msgid "Select list" +msgstr "Elenco selezione" + +#: ../lib/modules/nisMailAlias.inc:194 ../lib/modules/nisMailAlias.inc:215 +msgid "Select mail" +msgstr "Seleziona email" + +#: ../lib/modules/nisMailAliasUser.inc:101 +msgid "Select one or more alias entries from the list to add the recipient." +msgstr "Selezionare uno o più voci alias dall'elenco per aggiungere il destinatario." + +#: ../lib/modules/nisnetgroup.inc:246 ../lib/modules/nisnetgroup.inc:275 +#: ../lib/modules/nisMailAlias.inc:195 ../lib/modules/nisMailAlias.inc:216 +msgid "Select user" +msgstr "Seleziona l'utente" + +#: ../lib/modules/posixAccount.inc:1567 ../lib/modules/posixAccount.inc:1600 +#: ../lib/modules/windowsUser.inc:1030 ../lib/modules/nisnetgroup.inc:384 +#: ../lib/modules/groupOfNamesUser.inc:131 +msgid "Selected groups" +msgstr "Gruppi selezionati" + +#: ../templates/masscreate.php:159 ../templates/config/confmodules.php:299 +msgid "Selected modules" +msgstr "Moduli selezionati" + +#: ../lib/modules/organizationalRoleUser.inc:116 +msgid "Selected roles" +msgstr "Ruoli selezionati" + +#: ../lib/modules/posixGroup.inc:295 ../lib/modules/asteriskExtension.inc:461 +msgid "Selected users" +msgstr "Utenti selezionati" + +#: ../templates/selfService/adminMain.php:336 +msgid "Self service configuration" +msgstr "Configurazione fai-da-te" + +#: ../templates/selfService/adminMain.php:389 +msgid "Self service configuration editor" +msgstr "Editor delle configurazioni fai-da-te" + +#: ../templates/selfService/adminMain.php:395 +msgid "Self service login" +msgstr "Login al servizio fai-da-te" + +#: ../lib/modules/passwordSelfReset.inc:504 +msgid "Self service login attribute" +msgstr "Attributo d'accesso Self Service" + +#: ../templates/selfService/adminMain.php:381 +msgid "Self service profile" +msgstr "Profilo self service" + +#: ../lib/modules/passwordSelfReset.inc:130 +#: ../lib/modules/passwordSelfReset.inc:531 +msgid "Send confirmation mail" +msgstr "Spedisci email di conferma" + +#: ../lib/modules/passwordSelfReset.inc:112 +#: ../lib/modules/passwordSelfReset.inc:551 +msgid "Send notification mail" +msgstr "Spedisci email di notifica" + +#: ../lib/modules/inetOrgPerson.inc:456 ../lib/modules/inetOrgPerson.inc:729 +msgid "Send password via mail" +msgstr "Inviare la password per email" + +#: ../templates/lists/changePassword.php:319 +#: ../templates/lists/changePassword.php:364 ../lib/modules.inc:1066 +#: ../help/help.inc:208 +msgid "Send via mail" +msgstr "Spedisci via mail" + +#: ../lib/modules/qmailGroup.inc:90 ../lib/modules/qmailGroup.inc:220 +#: ../lib/modules/qmailGroup.inc:224 ../lib/modules/qmailGroup.inc:353 +#: ../lib/modules/qmailGroup.inc:408 ../lib/modules/qmailGroup.inc:429 +#: ../lib/modules/qmailGroup.inc:519 ../lib/modules/qmailGroup.inc:1068 +msgid "Sender email addresses" +msgstr "Indirizzo email del mittente" + +#: ../lib/modules/qmailGroup.inc:88 ../lib/modules/qmailGroup.inc:172 +#: ../lib/modules/qmailGroup.inc:176 ../lib/modules/qmailGroup.inc:295 +#: ../lib/modules/qmailGroup.inc:387 ../lib/modules/qmailGroup.inc:521 +#: ../lib/modules/qmailGroup.inc:790 ../lib/modules/qmailGroup.inc:1067 +msgid "Sender entries" +msgstr "Voci dei mittenti" + +#: ../lib/modules/qmailGroup.inc:92 ../lib/modules/qmailGroup.inc:188 +#: ../lib/modules/qmailGroup.inc:192 ../lib/modules/qmailGroup.inc:311 +#: ../lib/modules/qmailGroup.inc:393 ../lib/modules/qmailGroup.inc:520 +#: ../lib/modules/qmailGroup.inc:1069 +msgid "Sender filter" +msgstr "Filtro dei mittenti" + +#: ../lib/modules/passwordSelfReset.inc:113 +msgid "Sends a mail to the user to inform him about the password change." +msgstr "Invia un email all'utente per informarlo del cambiamento della password." + +#: ../lib/modules/passwordSelfReset.inc:131 +msgid "" +"Sends a mail to the user to validate his email address before the password " +"change." +msgstr "Spedisce un email all'utente per validare il suo indirizzo email prima del cambio della password." + +#: ../lib/modules/inetOrgPerson.inc:730 ../help/help.inc:209 +msgid "" +"Sends the password to the user via mail. Please edit your LAM server profile" +" to setup the mail settings." +msgstr "Invia la password all'utente per email. Edita il profilo del server LAM per definire le impostazioni email." + +#: ../templates/config/mainmanage.php:358 ../lib/modules/device.inc:65 +#: ../lib/modules/device.inc:97 ../lib/modules/device.inc:127 +#: ../lib/modules/device.inc:175 ../lib/modules/device.inc:420 +#: ../lib/modules/bindDLZ.inc:220 ../lib/modules/bindDLZ.inc:350 +#: ../lib/modules/bindDLZ.inc:416 ../lib/modules/bindDLZ.inc:520 +#: ../lib/modules/bindDLZ.inc:1048 ../lib/modules/bindDLZ.inc:1541 +msgid "Serial number" +msgstr "Numero seriale" + +#: ../templates/tests/lamdaemonTest.php:72 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:166 +#: ../templates/3rdParty/pla/htdocs/import.php:47 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:110 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +#: ../templates/3rdParty/pla/htdocs/export_form.php:56 +#: ../lib/modules/kolabGroup.inc:289 ../lib/modules/bindDLZ.inc:164 +#: ../lib/modules/bindDLZ.inc:168 ../lib/modules/bindDLZ.inc:397 +#: ../lib/modules/bindDLZ.inc:507 ../lib/modules/bindDLZ.inc:1366 +#: ../lib/modules/bindDLZ.inc:1602 ../lib/modules/kolabSharedFolder.inc:429 +msgid "Server" +msgstr "Server" + +#: ../templates/config/confmain.php:238 +#: ../templates/selfService/adminMain.php:446 ../lib/modules/qmailUser.inc:118 +#: ../lib/modules/qmailUser.inc:163 ../lib/modules/qmailUser.inc:243 +#: ../lib/modules/qmailUser.inc:358 ../lib/modules/qmailUser.inc:427 +#: ../lib/modules/qmailUser.inc:592 ../lib/modules/qmailUser.inc:1148 +#: ../lib/modules/imapAccess.inc:77 ../lib/modules/imapAccess.inc:117 +#: ../help/help.inc:58 +msgid "Server address" +msgstr "Indirizzo del server" + +#: ../templates/config/confmain.php:501 +#: ../templates/selfService/adminMain.php:217 +msgid "Server address is invalid!" +msgstr "L'indirizzo del server non è valido!" + +#: ../templates/serverInfo.php:103 ../lib/tools/serverInfo.inc:44 +msgid "Server information" +msgstr "Informazioni del server" + +#: ../templates/config/confmain.php:310 +msgid "Server list" +msgstr "Lista dei server" + +#: ../templates/login.php:468 ../templates/config/confmodules.php:137 +#: ../templates/config/confmain.php:167 +#: ../templates/config/moduleSettings.php:136 +#: ../templates/config/conftypes.php:155 ../lib/modules/imapAccess.inc:130 +msgid "Server profile" +msgstr "Profilo del server" + +#: ../templates/config/confmain.php:280 +#: ../templates/selfService/adminMain.php:491 +msgid "Server settings" +msgstr "Impostazioni del server" + +#: ../templates/serverInfo.php:180 +msgid "Server statistics" +msgstr "Statistiche del server" + +#: ../templates/serverInfo.php:205 ../templates/serverInfo.php:211 +msgid "Server time" +msgstr "Tempo del server" + +#: ../lib/modules/zarafaServer.inc:145 +msgid "Servers" +msgstr "Servers" + +#: ../lib/modules/authorizedServiceObject.inc:82 +msgid "Service name (e.g. sshd, imap, ftp). Enter one service per entry." +msgstr "Nome del servizio (ad esempio sshd, imap, ftp). Inserisci un servizio per ogni voce." + +#: ../lib/modules/bindDLZ.inc:1340 +msgid "Services (\"SRV\" records)" +msgstr "Servizi (record \"SRV\")" + +#: ../templates/config/mainmanage.php:298 ../help/help.inc:146 +msgid "Session timeout" +msgstr "Scadenza della sessione" + +#: ../lib/modules/aliasEntry.inc:108 +msgid "Set" +msgstr "Imposta" + +#: ../lib/modules/sambaSamAccount.inc:1467 +#: ../lib/modules/sambaSamAccount.inc:1470 +#: ../lib/modules/sambaSamAccount.inc:1473 +#: ../lib/modules/shadowAccount.inc:464 ../lib/modules/shadowAccount.inc:467 +#: ../lib/modules/shadowAccount.inc:470 +msgid "Set also for Kerberos" +msgstr "Imposta anche per kerberos" + +#: ../lib/modules/mitKerberos.inc:682 ../lib/modules/shadowAccount.inc:461 +#: ../lib/modules/heimdalKerberos.inc:592 +msgid "Set also for Samba 3" +msgstr "Imposta anche per Samba 3" + +#: ../lib/modules/mitKerberos.inc:679 ../lib/modules/sambaSamAccount.inc:1464 +#: ../lib/modules/heimdalKerberos.inc:589 +msgid "Set also for Shadow" +msgstr "Imposta anche per Shadow" + +#: ../lib/modules.inc:1219 ../lib/modules.inc:1221 +msgid "Set password" +msgstr "Imposta la password" + +#: ../lib/modules/posixAccount.inc:269 ../lib/modules/posixAccount.inc:445 +msgid "Set primary group as memberUid" +msgstr "Imposta il gruppo primario come memberUid" + +#: ../templates/config/profmanage.php:280 +#: ../templates/config/profmanage.php:291 +#: ../templates/config/profmanage.php:292 ../help/help.inc:136 +msgid "Set profile password" +msgstr "Imposta la password di profilo" + +#: ../lib/modules.inc:1222 +msgid "Set random password" +msgstr "Imposta una password casuale" + +#: ../templates/lists/changePassword.php:347 +msgid "Set specific password" +msgstr "Imposta una password specifica" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +msgid "Set the search results to 0 to retrieve all available records." +msgstr "Imposta i risultati di ricerca a 0 per recuperare tutti i record." + +#: ../templates/selfService/adminMain.php:593 +msgid "Set this field read-only." +msgstr "Imposta questo campo a sola lettura." + +#: ../lib/modules/groupOfNames.inc:110 +msgid "" +"Set this only if your LDAP schema allows that groups may not have any " +"members (e.g. if you use OpenDJ)." +msgstr "Applica questa impostazione solo se il tuo schema LDAP permette che i gruppi non posseggano alcun membro (es. se usi OpenDJ)." + +#: ../lib/modules/nisMailAliasUser.inc:77 +#: ../lib/modules/nisMailAliasUser.inc:81 +msgid "Sets the alias names linked to the current user name." +msgstr "Imposta i nomi alias collegati al nome utente corrente." + +#: ../lib/modules/nisMailAliasUser.inc:85 +#: ../lib/modules/nisMailAliasUser.inc:89 +msgid "Sets the alias names linked to the user's email address." +msgstr "Imposta i nomi alias collegati all'indirizzo email dell'utente." + +#: ../lib/modules/bindDLZ.inc:217 +msgid "" +"Sets the default timeout (in seconds) for entries without explicit timeout " +"value." +msgstr "Imposta il timeout predefinito (in secondi) per le voci senza un timeout esplicito." + +#: ../lib/modules/qmailUser.inc:216 +msgid "Sets the delivery mode (e.g. disable mail forwarding)." +msgstr "Imposta la modalità di spedizione (es. disabilita l'inoltro delle email)." + +#: ../lib/modules/posixGroup.inc:497 +msgid "Sets the group password." +msgstr "Imposta la password di gruppo." + +#: ../lib/modules/bindDLZ.inc:197 ../lib/modules/bindDLZ.inc:201 +msgid "" +"Sets the preference for the mail server. Lower values have higher priority." +msgstr "Imposta le preferenze per il mail server. Valori più bassi hanno priorità maggiore." + +#: ../help/help.inc:183 +msgid "Sets this account type to read-only." +msgstr "Imposta questo tipo di account in sola lettura." + +#: ../lib/modules/shadowAccount.inc:91 +msgid "Shadow" +msgstr "Shadow" + +#: ../lib/modules/sambaSamAccount.inc:242 +#: ../lib/modules/sambaSamAccount.inc:381 +#: ../lib/modules/sambaSamAccount.inc:1544 +#: ../lib/modules/sambaSamAccount.inc:1954 +msgid "Shadowing" +msgstr "Shadowing" + +#: ../lib/types/kolabSharedFolderType.inc:141 +#, php-format +msgid "Shared folder count: %s" +msgstr "Conteggio cartelle condivise: %s" + +#: ../lib/modules/kolabSharedFolder.inc:57 +msgid "Shared mail folder" +msgstr "Cartelle email condivise" + +#: ../lib/modules/zarafaUser.inc:112 ../lib/modules/zarafaUser.inc:265 +#: ../lib/modules/zarafaUser.inc:358 ../lib/modules/zarafaUser.inc:585 +#: ../lib/modules/zarafaUser.inc:1268 ../lib/modules/zarafaUser.inc:1795 +msgid "Shared store only" +msgstr "Solo spazio condiviso" + +#: ../lib/modules/ddns.inc:82 +msgid "Should DDNS (Dynamic DNS) be activated?" +msgstr "Devo attivare il DDNS (DNS Dinamico)?" + +#: ../lib/modules/ddns.inc:86 +msgid "Should fix IP addresses be added to the DNS server?" +msgstr "Devo aggiungere gli indirizzi IP fissi al server DNS?" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1121 +msgid "Show" +msgstr "Mostra" + +#: ../templates/massBuildAccounts.php:243 +msgid "Show LDIF file" +msgstr "Visualizza il file LDIF" + +#: ../lib/types/user.inc:683 +msgid "Show account status" +msgstr "Mostra lo stato dell'account" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +#: ../templates/3rdParty/pla/htdocs/export_form.php:84 +msgid "Show attributes" +msgstr "Mostra attributi" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1122 +msgid "Show internal attributes" +msgstr "Mostra gli attributi interni" + +#: ../lib/modules/asteriskExtension.inc:453 +msgid "Show only Asterisk accounts" +msgstr "Mostra solo account Asterisk" + +#: ../lib/types/group.inc:423 +msgid "Show primary group members as normal group members" +msgstr "Mostra i membri che hanno questo gruppo come primario come membri normali del gruppo" + +#: ../templates/schema/schema.php:194 +msgid "Single valued" +msgstr "Valore singolo" + +#: ../lib/modules/pykotaUser.inc:652 ../lib/modules/pykotaUser.inc:1001 +msgid "Size" +msgstr "Dimensione" + +#: ../lib/modules/qmailUser.inc:228 +msgid "Size limit in bytes for a single mail. Larger mails will be bounced." +msgstr "Limite dimensione in byte per ciascuna email. Le email più grandi saranno respinte." + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Skip" +msgstr "Salta" + +#: ../lib/modules/quota.inc:634 ../lib/modules/systemQuotas.inc:383 +msgid "Soft block" +msgstr "Blocco soft" + +#: ../lib/modules/quota.inc:113 ../lib/modules/quota.inc:401 +#: ../lib/modules/quota.inc:507 ../lib/modules/systemQuotas.inc:124 +msgid "Soft block limit" +msgstr "Limite di blocco soft" + +#: ../lib/modules/quota.inc:114 +msgid "Soft block limit." +msgstr "Limite di blocco soft." + +#: ../lib/modules/quota.inc:636 ../lib/modules/systemQuotas.inc:385 +msgid "Soft inode" +msgstr "inode soft" + +#: ../lib/modules/quota.inc:136 +msgid "Soft inode (files) limit." +msgstr "Limite soft degli inode (file)." + +#: ../lib/modules/quota.inc:135 ../lib/modules/quota.inc:405 +#: ../lib/modules/quota.inc:509 ../lib/modules/systemQuotas.inc:128 +msgid "Soft inode limit" +msgstr "Limite soft degli inode" + +#: ../lib/modules/imapAccess.inc:98 +msgid "" +"Some IMAP servers store mailboxes with a prefix (e.g. \"user\" for Cyrus " +"which results in \"user.username\")." +msgstr "Alcuni server IMAP salvano le mailbox con un prefisso (es. \"user\" per Cyrus che restituisce \"user.nomeutente\")." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1019 +#, php-format +msgid "Some attributes (%s) were modified and are highlighted below." +msgstr "Alcuni attributi (%s) sono stati modificati e sono stati evidenziati di seguito." + +#: ../lib/modules.inc:876 +msgid "Some required information is missing" +msgstr "Mancano alcune informazioni obbligatorie" + +#: ../templates/help.php:123 +#, php-format +msgid "" +"Sorry this help id ({bold}%s{endbold}) is not available for this module " +"({bold}%s{endbold})." +msgstr "Spiacente questo id di aiuto ({bold}%s{endbold}) non è disponibile per questo modulo ({bold}%s{endbold})." + +#: ../templates/help.php:136 +#, php-format +msgid "Sorry this help number ({bold}%s{endbold}) is not available." +msgstr "Spiacente il numero di aiuto ({bold}%s{endbold}) non è disponibile." + +#: ../lib/modules/sambaSamAccount.inc:326 +#: ../lib/modules/sambaSamAccount.inc:1277 +msgid "Special user" +msgstr "Utente speciale" + +#: ../lib/modules/zarafaDynamicGroup.inc:92 +#: ../lib/modules/zarafaAddressList.inc:80 +msgid "Specifies a filter that matches the members (e.g. \"(mail=*@zarafa.nl)\")." +msgstr "Specifica un filtro che coincide con gli appartenenti (es. \"(mail=*@zarafa.nl)\")." + +#: ../lib/modules/groupOfNames.inc:119 +msgid "Specifies how members and owners are displayed." +msgstr "Specifica quanti membri e proprietari sono mostrati." + +#: ../lib/modules/organizationalRole.inc:107 +msgid "Specifies how members are displayed." +msgstr "Specifica come sono visualizzati i membri." + +#: ../help/help.inc:86 +msgid "" +"Specifies if LAM should automatically follow referrals. Activate if you use " +"referrals in your LDAP directory." +msgstr "Specifica se LAM seguirà automaticamente i riferenti. Attivare se si usano i referenti nella directory LDAP." + +#: ../help/help.inc:260 +msgid "" +"Specifies if password mails may be sent to mail addresses other than the " +"user's LDAP mail address." +msgstr "Specifica se le email con le password possono essere inviate ad indirizzi diversi da quelli presenti nel campo email LDAP." + +#: ../help/help.inc:256 +msgid "Specifies if the mail should be sent as text or HTML." +msgstr "Specifica se la posta dovrebbe essere spedita in formato testo o HTML." + +#: ../help/help.inc:167 +msgid "" +"Specifies if the password must not contain 3 or more characters of the " +"user/first/last name." +msgstr "Specifica se la password non deve contenere 3 o più caratteri del nome/cognome dell'utente" + +#: ../help/help.inc:165 +msgid "Specifies if the password must not contain the user name." +msgstr "Specifica se la password non debba contenere il nome utente." + +#: ../lib/modules/asteriskAccount.inc:224 +msgid "Specifies if the user can call forward." +msgstr "Specifica se l'utente può inoltrare la chiamata. " + +#: ../lib/modules/zarafaGroup.inc:82 +msgid "Specifies if this group has security possibilities." +msgstr "Specifica se questo gruppo ha possibilità di sicurezza." + +#: ../lib/modules/zarafaServer.inc:81 +msgid "" +"Specifies if this server contains the public store. This may be changed only" +" for new entries." +msgstr "Specifica se questo server contiene cartelle pubbliche. Questa modifica potrebbe avere effetto solo per le nuove condivisioni." + +#: ../lib/modules/dhcp_settings.inc:202 +msgid "Specifies if unknown clients are allowed." +msgstr "Specifica se i clients sconosciuti sono ammessi." + +#: ../lib/modules/ppolicy.inc:133 +msgid "Specifies if users are allowed to change their own passwords or not." +msgstr "Specifica se l'utente ha il permesso di cambiare la propria password o meno." + +#: ../lib/modules/zarafaDynamicGroup.inc:88 +#: ../lib/modules/zarafaAddressList.inc:76 +msgid "" +"Specifies the LDAP base where to search for members (e.g. " +"\"ou=zarafa,dc=company,dc=com\")." +msgstr "Specifica la base LDAP dove cercare gli appartenenti (es. \"ou=zarafa,dc=company,dc=com\")." + +#: ../lib/modules/customFields.inc:161 +msgid "Specifies the allowed file extension. This is checked at upload time." +msgstr "Specifica le estensioni di file consentite. Sono verificate nel momento dell'upload." + +#: ../lib/modules/zarafaContact.inc:96 ../lib/modules/zarafaGroup.inc:98 +#: ../lib/modules/zarafaUser.inc:145 +msgid "" +"Specifies the attribute that should be used to reference the entries. If you" +" would like to reference also groups then this must be set to \"dn\"." +msgstr "Specifica l'attributo che dovrebbe essere usato per referenziare le voci. Se preferite referenziare anche i gruppi allora deve essere impostata su \"dn\"." + +#: ../lib/modules/zarafaUser.inc:121 +msgid "Specifies the capacity of this resource." +msgstr "Specifica le capacità di questa risorsa." + +#: ../lib/modules/kolabSharedFolder.inc:163 +msgid "Specifies the folder type (e.g. shared mail folder)." +msgstr "Specifica il tipo di cartella (es. cartella email condivisa)." + +#: ../lib/modules/customFields.inc:157 +msgid "Specifies the maximum allowed file size in bytes." +msgstr "Specifica la dimensione massima dei files in byte." + +#: ../lib/modules/mitKerberos.inc:137 ../lib/modules/heimdalKerberos.inc:111 +msgid "Specifies the maximum lifetime of a ticket in days." +msgstr "Specifica la durata massima di un ticket in giorni." + +#: ../lib/modules/ppolicy.inc:117 +msgid "" +"Specifies the maximum number of seconds before a password is due to expire " +"that expiration warning messages will be returned to a user." +msgstr "Specifica il numero massimo di secondi prima che una password scada. Questo avviso di scadenza verrà mostrato all'utente." + +#: ../lib/modules/freeRadius.inc:109 +msgid "" +"Specifies the maximum number of seconds that a connection can be idle before" +" the session is terminated." +msgstr "Specifica il numero massimo di secondi che una connessione può essere inattiva prima che la sessione sia terminata." + +#: ../lib/modules/mitKerberos.inc:133 ../lib/modules/heimdalKerberos.inc:115 +msgid "Specifies the maximum renewable lifetime of a ticket in days." +msgstr "Specifica la durata rinnovabile massima di un ticket in giorni." + +#: ../lib/modules/ppolicy.inc:121 +msgid "" +"Specifies the minimum number of characters that will be accepted in a " +"password." +msgstr "Specifica il numero minimo di caratteri accettati per la password." + +#: ../help/help.inc:163 +msgid "Specifies the number of above password rules that must be fulfilled." +msgstr "Specifica il numero delle regole delle password di cui sopra che debbono essere soddisfatte." + +#: ../lib/modules/ppolicy.inc:109 +msgid "" +"Specifies the number of consecutive failed login attempts after which the " +"password may not be used to login." +msgstr "Specifica il numero consecutivo di accessi falliti dopo i quali la password non potrà essere utilizzata per il login." + +#: ../lib/modules/ppolicy.inc:93 +msgid "" +"Specifies the number of previously used passwords which should be saved in " +"the password history. New passwords can only be set if they are not in the " +"password history." +msgstr "Specifica il numero delle password utilizzate in precedenza che dovranno essere salvate nella storia delle password. Le nuove password potranno essere impostate solo se non contenute nello storico." + +#: ../lib/modules/ppolicy.inc:113 +msgid "" +"Specifies the number of seconds after which old consecutive failed login " +"attempts are purged from the failure counter, even though no successful " +"authentication has occurred." +msgstr "Specifica il numero di secondi dopo i quali i vecchi tentativi di login consecutivi vengono purgati dal conteggio dei fallimenti, anche se non è avvenuta alcuna autenticazione." + +#: ../lib/modules/ppolicy.inc:105 +msgid "" +"Specifies the number of seconds during which the password cannot be used to " +"login due to too many consecutive failed bind attempts." +msgstr "Specifica il numero di secondi durante i quali le password non possono essere per l'accesso a causa degli eccessivi tentativi di accesso." + +#: ../lib/modules/eduPerson.inc:93 ../lib/modules/eduPerson.inc:97 +msgid "" +"Specifies the person's affiliation within a particular security domain in " +"broad categories such as student, faculty, staff, alum, etc." +msgstr "Specifica l'affiliazione delle persone con un certo dominio di sicurezza in categorie ampie quali: studenti, facoltà, personale, alunni, ecc." + +#: ../lib/modules/eduPerson.inc:89 +msgid "" +"Specifies the person's primary relationship to the institution in broad " +"categories such as student, faculty, staff, alum, etc." +msgstr "Specifica la relazione primaria delle persone con l'istituzione in categorie ampie quali: studenti, facoltà, personale, alunni, ecc." + +#: ../lib/modules/eduPerson.inc:106 ../lib/modules/eduPerson.inc:110 +msgid "" +"Specifies the person's relationships to the institution in broad categories " +"such as student, faculty, staff, alum, etc." +msgstr "Specifica le relazioni fra le persone nell'istituzione in categorie principali come studenti, discenti, staff, alunni, ecc." + +#: ../lib/modules/bindDLZ.inc:173 ../lib/modules/bindDLZ.inc:177 +msgid "" +"Specifies the priority of this entry (lower value means more preferred)." +msgstr "Specifica la priorità di questa voce (valori bassi intendono una preferenza maggiore)." + +#: ../lib/modules/pykotaGroup.inc:126 ../lib/modules/pykotaUser.inc:129 +msgid "" +"Specifies the type of limit for printing if any. Please note that in " +"contrast to \"Free printing\" the option \"No quota\" includes accounting." +msgstr "Specifica il tipo di limite per stampare se presente. Notare che in contrasto con \"Stampa libera\" l'opzione \"Nessuna quota\" include l'accounting." + +#: ../lib/modules/bindDLZ.inc:189 ../lib/modules/bindDLZ.inc:193 +msgid "Specifies the used port for this entry." +msgstr "Specifica la porta usata per questa voce." + +#: ../lib/modules/asteriskAccount.inc:176 +msgid "Specifies the user's pickup group." +msgstr "Specifica il gruppo di risposta dell'utente." + +#: ../lib/modules/bindDLZ.inc:181 ../lib/modules/bindDLZ.inc:185 +msgid "Specifies the weight of this entry (relative value)." +msgstr "Specifica il peso per questa voce (valore relativo)." + +#: ../lib/modules/zarafaUser.inc:109 +msgid "" +"Specifies whether the user is an admin. System administrators may " +"additionally create, modify and delete companies." +msgstr "Specifica se l'utente è un amministratore. Gli amministratori di sistema possono inoltre creare, modificare e cancellare le aziende." + +#: ../lib/modules/ppolicy.inc:137 +msgid "" +"Specifies whether the user's existing password must be sent along with their" +" new password when changing a password. Attention, LAM does not support " +"password changes which require the old password." +msgstr "Specifica quando la password corrente dell'utente deve essere inviata assieme alla loro nuova password durante il cambio password. Attenzione LAM non supporta cambiamenti della password che richiedono la vecchia password." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1460 +msgid "Specify attributes and values" +msgstr "Specifica attributi e valori" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +msgid "Standard LDAP search filter. Example: (&(sn=Smith)(givenName=David))" +msgstr "Filtro di ricerca standard LDAP. Esempio: (&(sn=Smith)(givenName=David))" + +#: ../templates/serverInfo.php:193 ../templates/serverInfo.php:199 +msgid "Start time" +msgstr "Ora di inizio" + +#: ../lib/modules/windowsUser.inc:168 ../lib/modules/windowsUser.inc:338 +#: ../lib/modules/windowsUser.inc:512 ../lib/modules/windowsUser.inc:545 +#: ../lib/modules/windowsUser.inc:712 ../lib/modules/windowsUser.inc:1600 +#: ../lib/modules/windowsUser.inc:1733 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:190 ../lib/modules/inetOrgPerson.inc:515 +#: ../lib/modules/inetOrgPerson.inc:557 ../lib/modules/inetOrgPerson.inc:780 +#: ../lib/modules/inetOrgPerson.inc:784 ../lib/modules/inetOrgPerson.inc:1261 +#: ../lib/modules/inetOrgPerson.inc:1264 ../lib/modules/inetOrgPerson.inc:1910 +#: ../lib/modules/inetOrgPerson.inc:2599 ../lib/modules/inetOrgPerson.inc:3519 +#: ../lib/modules/inetOrgPerson.inc:3579 +msgid "State" +msgstr "Stato" + +#: ../templates/pdfedit/pdfpage.php:538 ../templates/pdfedit/pdfpage.php:540 +msgid "Static text" +msgstr "Testo statico" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1455 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1467 +#, php-format +msgid "Step %s of %s" +msgstr "Passo %s di %s" + +#: ../lib/modules/windowsUser.inc:280 ../lib/modules/inetOrgPerson.inc:308 +msgid "Steve" +msgstr "Steve" + +#: ../lib/modules/sambaSamAccount.inc:421 ../lib/modules/posixAccount.inc:350 +#: ../lib/modules/windowsUser.inc:292 ../lib/modules/windowsUser.inc:298 +#: ../lib/modules/pykotaUser.inc:201 ../lib/modules/inetOrgPerson.inc:2037 +#: ../lib/modules/asteriskVoicemail.inc:174 +msgid "Steve Miller" +msgstr "Steve Miller" + +#: ../lib/modules/posixAccount.inc:358 +msgid "Steve Miller,Room 2.14,123-123-1234,123-123-1234" +msgstr "Steve Miller,Stanza 2.14,123-123-1234,123-123-1234" + +#: ../lib/modules/eduPerson.inc:190 +msgid "Steve, Stevo" +msgstr "Steve, Stevo" + +#: ../lib/modules/imapAccess.inc:91 +msgid "" +"Storing the password in your server profile is also possible but not " +"recommended." +msgstr "La registrazione della password nel profilo del server è possibile ma non raccomandata." + +#: ../lib/modules/windowsUser.inc:172 ../lib/modules/windowsUser.inc:314 +#: ../lib/modules/windowsUser.inc:513 ../lib/modules/windowsUser.inc:544 +#: ../lib/modules/windowsUser.inc:708 ../lib/modules/windowsUser.inc:1601 +#: ../lib/modules/windowsUser.inc:1732 ../lib/modules/inetOrgPerson.inc:81 +#: ../lib/modules/inetOrgPerson.inc:158 ../lib/modules/inetOrgPerson.inc:178 +#: ../lib/modules/inetOrgPerson.inc:377 ../lib/modules/inetOrgPerson.inc:545 +#: ../lib/modules/inetOrgPerson.inc:664 ../lib/modules/inetOrgPerson.inc:668 +#: ../lib/modules/inetOrgPerson.inc:1225 ../lib/modules/inetOrgPerson.inc:1228 +#: ../lib/modules/inetOrgPerson.inc:1895 ../lib/modules/inetOrgPerson.inc:2522 +#: ../lib/modules/inetOrgPerson.inc:3511 ../lib/modules/inetOrgPerson.inc:3576 +msgid "Street" +msgstr "Strada" + +#: ../templates/pdfedit/pdfpage.php:449 ../templates/pdfedit/pdfmain.php:353 +msgid "Structure name" +msgstr "Nome della struttura" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:136 +#: ../templates/3rdParty/pla/htdocs/export_form.php:33 +msgid "Sub (entire subtree)" +msgstr "Sotto (intero sotto-albero)" + +#: ../lib/types/netgroup.inc:93 ../lib/modules/nisnetgroup.inc:91 +#: ../lib/modules/nisnetgroup.inc:126 ../lib/modules/nisnetgroup.inc:141 +#: ../lib/modules/nisnetgroup.inc:209 ../lib/modules/nisnetgroup.inc:383 +#: ../lib/modules/nisnetgroup.inc:581 +msgid "Subgroups" +msgstr "Sottogruppi" + +#: ../templates/config/confmain.php:349 ../lib/modules/selfRegistration.inc:94 +#: ../lib/modules/selfRegistration.inc:231 +#: ../lib/modules/passwordSelfReset.inc:120 +#: ../lib/modules/passwordSelfReset.inc:539 +#: ../lib/modules/passwordSelfReset.inc:559 ../help/help.inc:248 +msgid "Subject" +msgstr "Soggetto" + +#: ../lib/types/dhcp.inc:94 ../lib/modules/dhcp_settings.inc:149 +#: ../lib/modules/dhcp_settings.inc:207 ../lib/modules/dhcp_settings.inc:222 +#: ../lib/modules/dhcp_settings.inc:242 ../lib/modules/dhcp_settings.inc:561 +#: ../lib/modules/dhcp_settings.inc:685 +msgid "Subnet" +msgstr "Sottorete" + +#: ../lib/modules/dhcp_settings.inc:189 ../lib/modules/dhcp_settings.inc:215 +#: ../lib/modules/dhcp_settings.inc:233 ../lib/modules/dhcp_settings.inc:300 +#: ../lib/modules/dhcp_settings.inc:606 ../lib/modules/dhcp_settings.inc:681 +msgid "Subnet mask" +msgstr "Maschera di sottorete" + +#: ../templates/schema/schema.php:176 +msgid "Substring Rule" +msgstr "Regola per la sottostringa" + +#: ../templates/3rdParty/pla/htdocs/import.php:63 +#: ../templates/3rdParty/pla/htdocs/copy.php:56 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:68 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:85 +msgid "Success" +msgstr "Successo" + +#: ../templates/3rdParty/pla/htdocs/delete.php:32 +#, php-format +msgid "Successfully deleted DN %s" +msgstr "DN cancellato correttamente %s" + +#: ../lib/modules/sudoRole.inc:48 +msgid "Sudo role" +msgstr "Ruolo sudo" + +#: ../lib/types/sudo.inc:159 +#, php-format +msgid "Sudo role count: %s" +msgstr "Conteggio ruoli sudo: %s" + +#: ../lib/types/sudo.inc:48 +msgid "Sudo role management" +msgstr "Gestione dei ruoli sudo" + +#: ../lib/types/sudo.inc:39 +msgid "Sudo roles" +msgstr "Ruoli sudo" + +#: ../lib/modules/sudoRole.inc:139 +msgid "Sudo roles with higher order numbers are used if multiple roles match." +msgstr "I ruoli sudo con numeri d'ordine più elevato sono utilizzati in caso di corrispondenza di molteplici ruoli.." + +#: ../lib/modules/nisMailAliasUser.inc:92 +#: ../lib/modules/nisMailAliasUser.inc:362 ../lib/modules.inc:988 +msgid "Suffix" +msgstr "Suffisso" + +#: ../lib/modules/posixGroup.inc:416 ../lib/modules/posixGroup.inc:516 +msgid "Suffix for GID/group name check" +msgstr "Suffisso per il controllo GID/nome del gruppo" + +#: ../lib/modules/posixAccount.inc:224 ../lib/modules/posixAccount.inc:242 +#: ../lib/modules/posixAccount.inc:489 +msgid "Suffix for UID/user name check" +msgstr "Suffisso per il controllo UID/nome utente" + +#: ../lib/modules/selfRegistration.inc:102 +#: ../lib/modules/selfRegistration.inc:212 +msgid "Suffix for new users" +msgstr "Suffisso per i nuovi utenti" + +#: ../lib/modules/sambaSamAccount.inc:1376 +msgid "Sunday" +msgstr "Domenica" + +#: ../templates/selfService/adminMain.php:602 +msgid "Switch back to default label." +msgstr "Ritorna all'etichetta predefinita." + +#: ../templates/3rdParty/pla/htdocs/compare.php:72 +msgid "Switch entries" +msgstr "Scambia voci" + +#: ../lib/modules/asteriskAccount.inc:96 +#: ../lib/modules/asteriskVoicemail.inc:84 +msgid "Sync Asterisk password with Unix password" +msgstr "Sincronizza la password Asterisk con la password Unix" + +#: ../lib/modules/heimdalKerberos.inc:242 +msgid "Sync Heimdal Kerberos password with Unix password" +msgstr "Sincronizza le password Kerberos di Heimdall con quelle Unix" + +#: ../lib/modules/mitKerberos.inc:277 +msgid "Sync MIT Kerberos password with Unix password" +msgstr "Sincronizza le password Kerberos del MIT con quelle Unix" + +#: ../lib/modules/passwordSelfReset.inc:148 +#: ../lib/modules/passwordSelfReset.inc:529 +msgid "Sync Samba 3 password" +msgstr "Sincronizza la password Samba 3" + +#: ../lib/modules/sambaSamAccount.inc:248 +msgid "Sync Samba LM password with Unix password" +msgstr "Sincronizza la password Samba LM con la password Unix" + +#: ../lib/modules/sambaSamAccount.inc:247 +msgid "Sync Samba NT password with Unix password" +msgstr "Sincronizza la password Samba NT con la password Unix" + +#: ../lib/modules/customFields.inc:1111 +msgid "Sync fields with page layout" +msgstr "Sincronizza i campi con il layout di pagina" + +#: ../templates/schema/schema.php:181 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:142 +msgid "Syntax" +msgstr "Sintassi" + +#: ../templates/schema/schema.php:89 +msgid "Syntax OID" +msgstr "OID di sintassi" + +#: ../templates/schema/schema.php:73 ../templates/schema/schema.php:74 +msgid "Syntaxes" +msgstr "Sintassi" + +#: ../lib/modules/zarafaUser.inc:602 ../lib/modules/zarafaUser.inc:1259 +msgid "System administrator" +msgstr "Amministratore di sistema" + +#: ../templates/config/mainmanage.php:412 +msgid "System logging" +msgstr "Log di sistema" + +#: ../help/help.inc:60 +msgid "TLS cannot be combined with ldaps://." +msgstr "Il TLS non può essere combinato con ldaps://." + +#: ../lib/modules/bindDLZ.inc:118 ../lib/modules/bindDLZ.inc:370 +#: ../lib/modules/bindDLZ.inc:375 ../lib/modules/bindDLZ.inc:484 +msgid "TXT record" +msgstr "Record TXT" + +#: ../lib/modules/bindDLZ.inc:425 ../lib/modules/bindDLZ.inc:435 +#: ../lib/modules/bindDLZ.inc:1569 +msgid "TXT records" +msgstr "Record TXT" + +#: ../lib/modules/kolabSharedFolder.inc:158 +#: ../lib/modules/kolabSharedFolder.inc:194 +#: ../lib/modules/kolabSharedFolder.inc:240 +#: ../lib/modules/kolabSharedFolder.inc:262 +#: ../lib/modules/kolabSharedFolder.inc:292 +#: ../lib/modules/kolabSharedFolder.inc:560 +msgid "Target IMAP folder" +msgstr "Cartella IMAP di destinazione" + +#: ../lib/modules/kolabUser.inc:245 +msgid "Target of invitation policy is invalid!" +msgstr "Il destinatario della policy di invito non è valido." + +#: ../templates/pdfedit/pdfmain.php:317 +#: ../templates/profedit/profilemain.php:284 +msgid "Target server profile" +msgstr "Profilo server di destinazione" + +#: ../templates/help.php:89 ../lib/modules.inc:660 +msgid "Technical name" +msgstr "Nome tecnico" + +#: ../templates/lists/changePassword.php:285 ../lib/types/user.inc:203 +#: ../lib/modules/windowsUser.inc:176 ../lib/modules/windowsUser.inc:362 +#: ../lib/modules/windowsUser.inc:514 ../lib/modules/windowsUser.inc:542 +#: ../lib/modules/windowsUser.inc:601 ../lib/modules/windowsUser.inc:718 +#: ../lib/modules/windowsUser.inc:1602 ../lib/modules/windowsUser.inc:1726 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:157 +#: ../lib/modules/inetOrgPerson.inc:205 ../lib/modules/inetOrgPerson.inc:417 +#: ../lib/modules/inetOrgPerson.inc:572 ../lib/modules/inetOrgPerson.inc:696 +#: ../lib/modules/inetOrgPerson.inc:700 ../lib/modules/inetOrgPerson.inc:1382 +#: ../lib/modules/inetOrgPerson.inc:1385 ../lib/modules/inetOrgPerson.inc:1900 +#: ../lib/modules/inetOrgPerson.inc:2478 ../lib/modules/inetOrgPerson.inc:3529 +#: ../lib/modules/inetOrgPerson.inc:3582 +msgid "Telephone number" +msgstr "Numero di telefono" + +#: ../lib/modules/inetOrgPerson.inc:355 +msgid "Temp" +msgstr "Temporaneo" + +#: ../lib/modules/windowsUser.inc:310 ../lib/modules/pykotaUser.inc:228 +#: ../lib/modules/inetOrgPerson.inc:331 +msgid "Temp, contract till December" +msgstr "Temp, contratto fino a Dicembre" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +msgid "Template" +msgstr "Modello" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:520 +msgid "Templates" +msgstr "Modelli" + +#: ../lib/modules/sambaSamAccount.inc:390 +#: ../lib/modules/sambaSamAccount.inc:608 +#: ../lib/modules/sambaSamAccount.inc:1289 +msgid "Terminal server options" +msgstr "Opzioni terminal server" + +#: ../lib/tools/tests.inc:44 +msgid "Tests" +msgstr "Verifiche" + +#: ../templates/config/confmain.php:364 ../lib/modules/selfRegistration.inc:69 +#: ../lib/modules/selfRegistration.inc:238 ../lib/modules/bindDLZ.inc:156 +#: ../lib/modules/bindDLZ.inc:160 ../lib/modules/bindDLZ.inc:370 +#: ../lib/modules/bindDLZ.inc:1238 ../lib/modules/bindDLZ.inc:1572 +#: ../lib/modules/passwordSelfReset.inc:124 +#: ../lib/modules/passwordSelfReset.inc:134 +#: ../lib/modules/passwordSelfReset.inc:543 +#: ../lib/modules/passwordSelfReset.inc:563 ../help/help.inc:250 +msgid "Text" +msgstr "Testo" + +#: ../lib/modules/bindDLZ.inc:1235 +msgid "Text (\"TXT\" records)" +msgstr "Testo (record \"TXT\")" + +#: ../lib/modules/customFields.inc:2587 +msgid "Text area" +msgstr "Area di testo" + +#: ../templates/pdfedit/pdfpage.php:617 ../lib/modules/customFields.inc:1885 +msgid "Text field" +msgstr "Campo di testo" + +#: ../lib/modules/eduPerson.inc:115 +msgid "" +"The \"NetID\" of the person for the purposes of inter-institutional " +"authentication. It should be represented in the form \"user@scope\" where " +"scope defines a local security domain." +msgstr "Il \"NetID\" della persona con lo scopo di autenticazione tra istituzioni diverse. Dovrebbe essere rappresentato nella forma \"utente@ambito\" dove ambito definisce un dominio di sicurezza locale." + +#: ../lib/modules/dhcp_settings.inc:336 +msgid "The DHCP ranges were changed to fit for the new subnet." +msgstr "Gli intervalli del DHCP sono stati cambiati per adeguarli alla nuova subnet." + +#: ../lib/modules/eduPerson.inc:127 +msgid "" +"The DN of the directory entry representing the institution with which the " +"person is associated." +msgstr "Il DN dell'oggetto della directory che rappresenta l'istituzione con la quale la persona è associata." + +#: ../lib/modules/eduPerson.inc:131 +msgid "" +"The DN of the directory entry representing the person's primary " +"organisational unit." +msgstr "Il DN della directory che rappresenta l'unità organizzativa primaria della persona." + +#: ../lib/modules/eduPerson.inc:135 ../lib/modules/eduPerson.inc:139 +msgid "" +"The DNs of the directory entries representing the person's organisational " +"units." +msgstr "I DN delle directory che rappresentano le unità organizzative della persona." + +#: ../lib/modules/posixGroup.inc:513 +msgid "" +"The ID of this group was changed. You can update all user and host entries " +"to the new group ID." +msgstr "L'ID di questo gruppo è cambiato. Potete aggiornare tutte le voci dell'utente e del computer al nuovo ID di gruppo." + +#: ../lib/modules/imapAccess.inc:179 +msgid "The IMAP admin password is empty." +msgstr "La password IMAP di admin è vuota." + +#: ../templates/config/mainmanage.php:100 +#: ../templates/config/mainmanage.php:122 ../lib/modules/bindDLZ.inc:488 +#: ../lib/modules/bindDLZ.inc:489 +#, php-format +msgid "The IP address %s is invalid!" +msgstr "L'indirizzo IP %s non è valido!" + +#: ../lib/modules/fixed_ip.inc:498 +msgid "The IP address does not match the subnet." +msgstr "Gli indirizzi IP non sono coerenti con la subnet." + +#: ../lib/modules/fixed_ip.inc:501 +msgid "The IP address is already in use." +msgstr "Questo indirizzo IP è già stato utilizzato." + +#: ../lib/modules/ipHost.inc:115 ../lib/modules/ipHost.inc:116 +#: ../lib/modules/asteriskAccount.inc:574 +#: ../lib/modules/asteriskAccount.inc:575 ../lib/modules/ppolicyUser.inc:96 +#: ../lib/modules/range.inc:418 ../lib/modules/range.inc:435 +#: ../lib/modules/freeRadius.inc:249 ../lib/modules/freeRadius.inc:250 +#: ../lib/modules/fixed_ip.inc:493 +msgid "The IP address is invalid." +msgstr "L'indirizzo IP non è valido!" + +#: ../lib/modules/fixed_ip.inc:107 +msgid "The IP address of the PC." +msgstr "L'indirizzo IP del PC." + +#: ../lib/modules/dhcp_settings.inc:162 +msgid "" +"The IP addresses of the DNS servers. Multiple addresses are separated by " +"\",\". Example: 192.168.0.10, 192.168.0.11" +msgstr "Indirizzi IP dei server DNS. Molteplici indirizzi sono separabili da \",\". Esempio: 192.168.0.10, 192.168.0.11" + +#: ../lib/modules/dhcp_settings.inc:170 +msgid "" +"The IP addresses of the Netbios name servers (e.g. \"123.123.123.123, " +"123.123.123.124\")." +msgstr "Gli indirizzi IP dei server dei nomi Netbios (es. \"123.123.123.123, 123.123.123.124\")." + +#: ../lib/modules/range.inc:422 ../lib/modules/range.inc:437 +msgid "The IP does not match the subnet." +msgstr "L'indirizzo IP non è coerente con la subnet." + +#: ../lib/modules/mitKerberos.inc:153 ../lib/modules/heimdalKerberos.inc:158 +msgid "The Kerberos realm for this account." +msgstr "Il reame Kerberos per questo account." + +#: ../lib/modules/heimdalKerberos.inc:99 +msgid "The Kerberos realm of this user." +msgstr "Il reame kerberos per l'utente." + +#: ../lib/modules/fixed_ip.inc:103 +msgid "The MAC address of the PC. Example: 11:22:33:44:55:aa" +msgstr "L'indirizzo MAC del PC. Esempio: 11:22:33:44:55:aa" + +#: ../lib/modules/dhcp_settings.inc:328 ../lib/modules/dhcp_settings.inc:329 +msgid "The Netbios server is invalid." +msgstr "Il server Netbios non è valido." + +#: ../lib/modules/fixed_ip.inc:456 +msgid "The PC name may not be longer than 20 characters." +msgstr "Il nome del PC non può essere più lungo di 20 caratteri." + +#: ../lib/modules/fixed_ip.inc:465 +msgid "The PC name may only contain A-Z, a-z and 0-9." +msgstr "Il nome del pc può solo contenere A-Z, a-z e 0-9." + +#: ../lib/modules/fixed_ip.inc:459 +msgid "The PC name needs to be at least 2 characters long." +msgstr "Il nome del PC deve essere lungo almeno 2 caratteri." + +#: ../help/help.inc:205 +msgid "" +"The PDF structure defines what information is exported as PDF file and how " +"the pages are structured. You can manage the PDF structures in the PDF " +"editor (under \"Tools\")." +msgstr "La struttura PDF definisce quali informazioni sono esportate come PDF e come le pagine sono strutturate. Potete gestire la struttura dei PDF nell'editor (sotto \"Strumenti\")." + +#: ../templates/3rdParty/pla/htdocs/create.php:44 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:38 +#: ../lib/modules/selfRegistration.inc:571 +msgid "The RDN field is empty." +msgstr "Il campo RDN è vuoto." + +#: ../lib/modules/freeRadius.inc:93 +msgid "The Radius realm of this account." +msgstr "Il regno Radius di questo account." + +#: ../lib/modules/sambaDomain.inc:82 +msgid "The SID of your Samba server. Get it with \"net getlocalsid\"." +msgstr "Il SID del vostro server Samba. Ricavarlo con il comando \"net getlocalsid\"." + +#: ../templates/selfService/selfServiceLogin.php:141 +#: ../templates/selfService/selfServiceMain.php:168 +msgid "The TLS encryption could not be started." +msgstr "La codifica TLS potrebbe non essere avviata." + +#: ../lib/modules/posixAccount.inc:99 +msgid "" +"The UID ranges for users and hosts overlap! This is a problem because LAM " +"uses the highest UID in use + 1 for new accounts. Please set the minimum UID" +" to equal values or use independent ranges." +msgstr "Gli intervalli di UID degli utenti e dei computer si sovrappongono! Questo è un problema perchè LAM utilizza l'UID più alto in uso + 1 per i nuovi account. Impostare L'UID minimo allo stesso valore o utilizzare intervalli disgiunti." + +#: ../lib/modules/zarafaServer.inc:77 +msgid "The Unix socket or named pipe to the server." +msgstr "Il socket UNIX o named pipe al server." + +#: ../lib/modules/asteriskVoicemail.inc:215 +#: ../lib/modules/asteriskVoicemail.inc:216 +msgid "The account context is invalid." +msgstr "Il contesto dell'account non è valido." + +#: ../lib/modules/asteriskAccount.inc:112 +#: ../lib/modules/asteriskExtension.inc:99 +#: ../lib/modules/asteriskVoicemail.inc:92 +msgid "The account context stores information about the dial plan." +msgstr "Il contesto dell'account immagazzina informazioni sul piano telefonico." + +#: ../lib/modules/asteriskAccount.inc:566 +#: ../lib/modules/asteriskAccount.inc:567 +msgid "The account type is invalid." +msgstr "Il tipo di account non è valido." + +#: ../lib/modules/freeRadius.inc:105 +msgid "The account will be locked after this date." +msgstr "L'account verrà bloccato dopo questa data." + +#: ../help/help.inc:191 +msgid "The account will be saved under this LDAP suffix." +msgstr "L'account sarà salvato con questo suffisso LDAP." + +#: ../lib/modules/bindDLZ.inc:490 ../lib/modules/bindDLZ.inc:491 +#, php-format +msgid "The alias name \"%s\" is invalid." +msgstr "Il nome dell'alias \"%s\" non è valido." + +#: ../lib/modules/bindDLZ.inc:129 +msgid "The alias name for this entry." +msgstr "Il nome dell'alias per questa voce." + +#: ../lib/modules/passwordSelfReset.inc:230 +#, php-format +msgid "The answer needs to be at least %s characters long." +msgstr "La risposta deve essere lunga almno %s caratteri." + +#: ../lib/modules/passwordSelfReset.inc:1211 +msgid "The answer to the security question is wrong." +msgstr "La risposta alla domanda di sicurezza è sbagliata." + +#: ../templates/tests/schemaTest.php:128 +#, php-format +msgid "" +"The attribute %s is not supported for the object class %s by your LDAP " +"server." +msgstr "L'attributo %s non è supportato per la classe di oggetti %s dal tuo server LDAP." + +#: ../templates/3rdParty/pla/lib/import_functions.php:531 +#, php-format +msgid "The attribute to modify doesn't match the one specified by %s." +msgstr "L'attributo da modificare non coincide con quello specificato da %s." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:31 +msgid "The attribute value does not exist" +msgstr "Il valore dell'attributo non esiste." + +#: ../lib/modules/asteriskAccount.inc:556 +#: ../lib/modules/asteriskAccount.inc:558 +msgid "The caller ID format is invalid." +msgstr "Il formato ID del chiamante non è valido." + +#: ../lib/modules/puppetClient.inc:186 ../lib/modules/puppetClient.inc:187 +msgid "The class names may only contain ASCII characters." +msgstr "I nomi delle classi possono contenere solo caratteri ASCII." + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:404 +msgid "The config file is not writable." +msgstr "Il file di configurazione non è scrivibile." + +#: ../templates/3rdParty/pla/htdocs/create.php:29 +#: ../templates/3rdParty/pla/htdocs/copy.php:34 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:23 +#, php-format +msgid "The container you specified (%s) does not exist. Please try again." +msgstr "Il contenitore specificato (%s) non esiste. Riprovare." + +#: ../lib/modules/dhcp_settings.inc:326 ../lib/modules/dhcp_settings.inc:327 +msgid "The default gateway is invalid." +msgstr "Il router di default non è valido." + +#: ../lib/modules/qmailUser.inc:260 +msgid "The default interpretation of .qmail files." +msgstr "L'interpretazione predefinita dei files .qmail." + +#: ../templates/3rdParty/pla/htdocs/copy.php:31 +#, php-format +msgid "The destination entry (%s) already exists." +msgstr "L'oggetto di destinazione (%s) esiste già." + +#: ../lib/modules/dhcp_settings.inc:338 ../lib/modules/dhcp_settings.inc:339 +msgid "" +"The domain name includes invalid characters. Valid characters are A-Z, a-z, " +"0-9, \".\", \"_\",\"-\"." +msgstr "Il nome del dominio contiene dei caratteri non validi. I caratteri ammessi sono A-Z, a-z, 0-9, \".\", \"_\",\"-\"." + +#: ../lib/modules/dhcp_settings.inc:146 +msgid "The domain name of the subnet." +msgstr "Il nome del dominio della subnet." + +#: ../lib/modules/asteriskVoicemail.inc:220 +#: ../lib/modules/asteriskVoicemail.inc:221 +msgid "The email address is invalid." +msgstr "L'indirizzo email non è valido." + +#: ../lib/modules/range.inc:96 +msgid "The ending IP address of the range." +msgstr "L'indirizzo IP finale dell'intervallo." + +#: ../lib/modules/dhcp_settings.inc:330 +msgid "The entered Netbios node type does not exist." +msgstr "Il tipo di nodo Netbios inserito non esiste." + +#: ../templates/3rdParty/pla/htdocs/update.php:27 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:22 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:21 +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:24 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:23 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:20 +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:24 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:20 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:27 +#, php-format +msgid "The entry (%s) does not exist." +msgstr "L'oggetto (%s) non esiste." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:27 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:28 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:34 +msgid "The entry does not exist and will be ignored" +msgstr "L'oggetto non esiste e sarà ignorato" + +#: ../lib/modules/puppetClient.inc:184 ../lib/modules/puppetClient.inc:185 +msgid "The environment name may only contain ASCII characters." +msgstr "I nomi degli ambienti possono contenere solo caratteri ASCII." + +#: ../lib/modules/shadowAccount.inc:67 +msgid "The expiration date is invalid." +msgstr "La data di scadenza non è valida." + +#: ../lib/modules/freeRadius.inc:257 ../lib/modules/freeRadius.inc:258 +msgid "The expiration date must be in format DD.MM.YYYY HH:MM." +msgstr "La data di scadenza deve essere in formato GG.MM.AAAA HH: MM." + +#: ../lib/modules/bindDLZ.inc:512 ../lib/modules/bindDLZ.inc:513 +#, php-format +msgid "The expiration time \"%s\" must be a number." +msgstr "Il tempo di scadenza \"%s\" deve essere un numero." + +#: ../lib/modules/asteriskAccount.inc:560 +#: ../lib/modules/asteriskAccount.inc:561 +msgid "The extension context is invalid." +msgstr "Il contesto dell'estensione non è valido." + +#: ../lib/pdfstruct.inc:262 +msgid "The file must not exeed 2000x300px." +msgstr "Il file non deve eccedere 2000x300px." + +#: ../lib/pdfstruct.inc:249 +msgid "The file name must end with \".png\" or \".jpg\"." +msgstr "Il nome del file deve finire con \".png\" o \".jpg\"." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "The file you chose is either empty or does not exist." +msgstr "Il file prescelto è vuoto o non esiste." + +#: ../templates/3rdParty/pla/lib/Template.php:412 +#: ../templates/3rdParty/pla/lib/Template.php:499 +msgid "" +"The file you selected was only partially uploaded, likley due to a network " +"error." +msgstr "Il file selezionato è stato caricato solo parzialmente, a causa di un errore di rete." + +#: ../templates/3rdParty/pla/lib/Template.php:402 +#: ../templates/3rdParty/pla/lib/Template.php:407 +#: ../templates/3rdParty/pla/lib/Template.php:489 +#: ../templates/3rdParty/pla/lib/Template.php:494 +msgid "" +"The file you uploaded is too large. Please check php.ini, upload_max_size " +"setting" +msgstr "Il file selezionato è troppo grande. Controlla l'impostazione php.ini upload_max_size " + +#: ../lib/modules/kolabSharedFolder.inc:159 +msgid "" +"The folder on the server where the shared folder is located (e.g. " +"user/myfolder@example.com)." +msgstr "La cartella sul server dove è localizzata la cartella condivisa (es. utente/myfolder@example.com)." + +#: ../lib/modules/kolabSharedFolder.inc:117 +msgid "The folder's email address." +msgstr "L'indirizzo email della cartella." + +#: ../templates/initsuff.php:180 +msgid "" +"The following suffixes are missing in LDAP. LAM can create them for you." +msgstr "I seguenti suffissi sono mancanti in LDAP. LAM può crearli per voi." + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:120 +msgid "The format of the logon hours field is invalid!" +msgstr "Il formato del campo ore di logon non è valido!" + +#: ../lib/modules/customScripts.inc:123 +msgid "The format of this custom script setting is invalid." +msgstr "Il formato di questo script di impostazioni personalizzate non èvalido." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +msgid "The format to show the query results" +msgstr "Il formato per mostrare i risultati della ricerca" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "" +"The full DN of the new entry to be created when copying the source entry" +msgstr "Il DN completo del nuovo oggetto da creare quando si copia l'oggetto sorgente" + +#: ../lib/modules/asteriskVoicemail.inc:218 +#: ../lib/modules/asteriskVoicemail.inc:219 +msgid "The full name is invalid." +msgstr "Il nome completo non è valido." + +#: ../templates/login.php:583 +msgid "The given user name matches multiple LDAP entries." +msgstr "Il nome utente indicato corrisponde a più di un oggetto LDAP." + +#: ../lib/modules/ppolicy.inc:101 +msgid "" +"The grace authentication limit specifies the number of times that an expired" +" password may be used to login." +msgstr "Il limite di grazia di autenticazione specifica il numero di volte che una password scaduta possa essere utilizzata per il login." + +#: ../lib/modules/windowsGroup.inc:147 +msgid "The group is managed by this contact person." +msgstr "Il gruppo è gestito da questa persona contatto." + +#: ../lib/modules/freeRadius.inc:97 ../lib/modules/freeRadius.inc:101 +msgid "The group names for this account." +msgstr "I nomi dei gruppi per questo account." + +#: ../lib/modules/windowsUser.inc:221 +msgid "The groups for this account. You can insert a group name or DN." +msgstr "I gruppi per questo account. E' possibile inserire il nome di un gruppo o DN." + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "The headline for a new section must contain at least one character." +msgstr "La riga di intestazione per una nuova sezione deve contenere almeno un carattere." + +#: ../lib/modules/sambaSamAccount.inc:303 ../lib/modules/windowsUser.inc:245 +msgid "The home directory will be connected under this drive letter." +msgstr "La home directory sarà connessa con questa lettera di disco." + +#: ../lib/modules/windowsHost.inc:87 +msgid "The host is managed by this contact person." +msgstr "L'host è gestito da questo contatto." + +#: ../lib/modules/bindDLZ.inc:497 ../lib/modules/bindDLZ.inc:498 +#: ../lib/modules/bindDLZ.inc:524 ../lib/modules/bindDLZ.inc:525 +#, php-format +msgid "The host name \"%s\" is invalid." +msgstr "Il nome dell'host \"%s\" non è valido." + +#: ../lib/modules/bindDLZ.inc:82 ../lib/modules/bindDLZ.inc:141 +#: ../lib/modules/bindDLZ.inc:145 +msgid "The host name for this entry." +msgstr "Il nome dell'host per questa voce." + +#: ../lib/modules/asteriskAccount.inc:563 +#: ../lib/modules/asteriskAccount.inc:564 ../lib/modules/bindDLZ.inc:470 +#: ../lib/modules/bindDLZ.inc:471 +msgid "The host name is invalid." +msgstr "Il nome del computer non è valido." + +#: ../lib/modules/windowsUser.inc:133 ../lib/modules/inetOrgPerson.inc:837 +msgid "The initials of the user's first names." +msgstr "Le iniziali del nome dell'utente." + +#: ../lib/modules/ddns.inc:94 +msgid "" +"The key enables the DHCP server to perform DNS updates. The key is generated" +" with \"genDDNSkey\"." +msgstr "La chiave permette al server DHCP di effettuare gli aggiornamenti sul DNS. La chiave è generata con \"genDDNSkey\"." + +#: ../lib/modules/dhcp_settings.inc:324 ../lib/modules/dhcp_settings.inc:325 +msgid "The lease time is invalid." +msgstr "La durata del prestito (lease) non è valida." + +#: ../lib/modules/dhcp_settings.inc:154 +msgid "" +"The lease time specifies after how many seconds the client should request a " +"new IP address." +msgstr "La durata del prestito (lease) specifica ogni quanti secondi il client dovrebbe richiedere un nuovo indirizzo IP." + +#: ../lib/modules/sudoRole.inc:83 ../lib/modules/sudoRole.inc:109 +msgid "The list of commands which may be run." +msgstr "L'elenco di comandi che devono essere eseguiti." + +#: ../lib/modules/puppetClient.inc:93 ../lib/modules/puppetClient.inc:97 +msgid "The list of configured Puppet classes for this node (e.g. ntp)." +msgstr "L'elenco delle classi Puppet configurate per questo nodo (se. ntp)." + +#: ../lib/modules/sudoRole.inc:79 ../lib/modules/sudoRole.inc:104 +msgid "The list of hosts from which the user may run the commands." +msgstr "L'elenco dei computer da cui l'utente può eseguire comandi." + +#: ../lib/modules/customFields.inc:3013 +msgid "The list of labels contains duplicates." +msgstr "L'elenco delle etichette contiene duplicati." + +#: ../lib/modules/sudoRole.inc:75 ../lib/modules/sudoRole.inc:99 +msgid "The list of users who own this sudo role and may run the commands." +msgstr "L'elenco degli utenti che posseggono questo ruolo sudo e possono eseguire i comandi." + +#: ../lib/modules/customFields.inc:3010 +msgid "The list of values contains duplicates." +msgstr "L'elenco dei valori contiene duplicati." + +#: ../lib/modules/qmailGroup.inc:132 ../lib/modules/qmailGroup.inc:136 +msgid "The list's alternate email address." +msgstr "L'indirizzo email alternativo della lista." + +#: ../lib/modules/kolabGroup.inc:88 ../lib/modules/kolabGroup.inc:92 +#: ../lib/modules/qmailGroup.inc:124 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/windowsGroup.inc:127 +msgid "The list's email address." +msgstr "L'indirizzo email della lista." + +#: ../templates/config/mainmanage.php:147 +msgid "" +"The log file is empty or contains invalid characters! Valid characters are: " +"a-z, A-Z, 0-9, /, \\, ., :, _ and -." +msgstr "Il nome del dominio contiene dei caratteri non validi. I caratteri ammessi sono: a-z, A-Z, 0-9, /, \\, ., :, _ and -." + +#: ../lib/modules/imapAccess.inc:87 +msgid "" +"The login name of your IMAP user who has rights to create/delete mailboxes." +msgstr "Il nome di login dell'utente IMAP che ha privilegi di creazione/cancellazione delle mailbox." + +#: ../lib/modules/bindDLZ.inc:133 ../lib/modules/bindDLZ.inc:137 +msgid "The mail server for this entry." +msgstr "Il mail server per questa voce." + +#: ../lib/modules/qmailUser.inc:244 +msgid "The mail server that contains the message store." +msgstr "Il server mail che contiene l'archivio dei messaggi." + +#: ../lib/modules/passwordSelfReset.inc:234 +msgid "" +"The mail text for confirmation mails must include the wildcard " +"@@resetLink@@." +msgstr "Il testo dell'email di conferma deve includere la wildcard @@resetLink@@." + +#: ../help/help.inc:251 +msgid "The mail text of all password mails." +msgstr "Il testo di tutte le email sulle password." + +#: ../lib/modules/selfRegistration.inc:70 +msgid "The mail text of the confirmation mail." +msgstr "Il testo dell'email di conferma." + +#: ../lib/modules/passwordSelfReset.inc:125 +#: ../lib/modules/passwordSelfReset.inc:135 +msgid "The mail text of the mails." +msgstr "Il testo delle email." + +#: ../lib/modules/asteriskVoicemail.inc:210 +#: ../lib/modules/asteriskVoicemail.inc:212 +msgid "The mailbox format is invalid." +msgstr "Il formato della mailbox non è valido." + +#: ../lib/modules/dhcp_settings.inc:332 ../lib/modules/dhcp_settings.inc:333 +msgid "The maximum lease time is invalid." +msgstr "La durata massima del prestito (lease) non è valida." + +#: ../lib/modules/dhcp_settings.inc:158 +msgid "" +"The maximum lease time specifies after how many seconds the client must " +"request a new IP address." +msgstr "La durata massima del prestito (lease) specifica ogni quanti secondi il client deve richiedere un nuovo indirizzo IP." + +#: ../lib/modules/kolabUser.inc:175 +msgid "The maximum mailbox size in MB." +msgstr "La grandezza massima della mailbox in MB." + +#: ../lib/modules/qmailUser.inc:224 +msgid "The maximum number of mails that can be stored in the user's mailbox." +msgstr "Il numero massimo di email che può essere conservato nella mailbox dell'utente." + +#: ../lib/modules/pykotaPrinter.inc:104 +msgid "" +"The maximum number of pages per job allowed on the printer. 0 means " +"unlimited." +msgstr "Il numero massimo di pagine per lavoro consentite sulla stampante. 0 significa illimitate." + +#: ../lib/modules/bindDLZ.inc:518 ../lib/modules/bindDLZ.inc:519 +#, php-format +msgid "The minimum time \"%s\" must be a number." +msgstr "Il tempo minimo \"%s\" deve essere un numero." + +#: ../lib/modules.inc:927 +#, php-format +msgid "The module %s is not yet ready." +msgstr "Il modulo %s non è ancora completo." + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "" +"The name for that PDF-structure you submitted is not valid. A valid name " +"must consist of the following characters: 'a-z','A-Z','0-9','_','-'." +msgstr "Il nome per la struttura PDF che avete inviato non è valido. Un nome valido deve contenere i caratteri seguenti 'a-z','A-Z','0-9','_','-'." + +#: ../lib/modules/asteriskExtension.inc:111 +msgid "" +"The name of a command to execute. The available commands may be listed at " +"the Asterisk command line by executing \"core show applications\"." +msgstr "Il nome di un comando da eseguire. I comandi disponibili devono essere elencati sulla linea di comando Asterisk eseguendo \"core show applications\"." + +#: ../lib/modules/fixed_ip.inc:99 +msgid "The name of the PC." +msgstr "Il nome del PC." + +#: ../lib/modules/asteriskExtension.inc:103 +msgid "The name of the extension (e.g. voicemail or sip)." +msgstr "Il nome dell'estensione (es. voicemail o sip)." + +#: ../lib/modules/kolabUser.inc:149 ../lib/modules/kolabSharedFolder.inc:155 +msgid "The name of the server where the mailbox is located." +msgstr "Il nome del server che contiene la casella email." + +#: ../lib/modules/dhcp_settings.inc:150 +msgid "The name of the subnet. Example: 192.168.10.0" +msgstr "Il nome della subnet. Esempio: 192.168.10.0" + +#: ../lib/modules/sambaDomain.inc:78 +msgid "The name of your Windows domain or workgroup." +msgstr "Il nome del vostro dominio o gruppo di lavoro Windows." + +#: ../lib/modules/bindDLZ.inc:499 ../lib/modules/bindDLZ.inc:500 +#, php-format +msgid "The name server \"%s\" is invalid." +msgstr "Il nome del server \"%s\" non è valido." + +#: ../lib/modules/bindDLZ.inc:149 ../lib/modules/bindDLZ.inc:153 +msgid "The name server for this zone." +msgstr "Il nome del server per questa zona." + +#: ../lib/modules/freeRadius.inc:89 +msgid "The net mask for the IP address." +msgstr "La maschera di rete per l'indirizzo IP." + +#: ../lib/modules/dhcp_settings.inc:194 +msgid "" +"The net mask is derived from the subnet mask. LAM will calculate it " +"automatically." +msgstr "La maschera di rete è derivata dalla maschera di subnet. LAM lo calcolerà automaticamente." + +#: ../lib/modules/freeRadius.inc:251 ../lib/modules/freeRadius.inc:252 +msgid "The net mask is invalid." +msgstr "La maschera di rete non è valida." + +#: ../lib/modules.inc:1177 +msgid "" +"The new password will be stored in the directory after you save this " +"account." +msgstr "La nuova password verrà inserita nella directory dopo aver salvato questo account." + +#: ../lib/modules/asteriskAccount.inc:240 +msgid "The number of milliseconds for the last qualify." +msgstr "Il numero di millisecondi per l'ultima qualifica." + +#: ../lib/modules/bindDLZ.inc:509 +msgid "The number of priority, weight, port and server entries must be equal." +msgstr "Il numero di voci di priorità, peso, porta e server devono essere uguali." + +#: ../help/help.inc:121 +msgid "" +"The number of users who may login to LAM is restricted. This can be either a" +" fixed list of DNs or LAM can search LDAP to find a DN which matches the " +"given user name." +msgstr "Il numero di utenti che possono effettuare il login a LAM è ristretto. Può essere una lista prefissata di DN oppure LAM può ricercare in LDAP un DN che corrisponde al nome utente fornito." + +#: ../templates/tests/schemaTest.php:114 +#, php-format +msgid "The object class %s is not supported by your LDAP server." +msgstr "La classe oggetto %s non é supportata dal vostro server LDAP." + +#: ../lib/modules/windowsUser.inc:153 ../lib/modules/inetOrgPerson.inc:793 +#: ../lib/modules/inetOrgPerson.inc:797 +msgid "The office name of the user (e.g. YourCompany, Human Resources)." +msgstr "Il nome dell'ufficio dell'utente (es. VostraAzienda, Risorse Umane)." + +#: ../templates/selfService/selfServiceMain.php:331 ../lib/modules.inc:1803 +msgid "The operation was stopped because of the above errors." +msgstr "Le operazioni sono state arrestate a causa degli errori riportati sopra." + +#: ../lib/modules/asteriskVoicemail.inc:224 +#: ../lib/modules/asteriskVoicemail.inc:225 +msgid "The options have bad format." +msgstr "Le opzioni hanno un formato errato." + +#: ../lib/modules/device.inc:70 ../lib/modules/device.inc:74 +msgid "The owners of this device." +msgstr "I proprietari di questo dispositivo." + +#: ../lib/modules/groupOfNames.inc:94 ../lib/modules/groupOfNames.inc:98 +msgid "The owners of this group." +msgstr "I proprietari di questo gruppo." + +#: ../lib/modules/asteriskVoicemail.inc:222 +#: ../lib/modules/asteriskVoicemail.inc:223 +msgid "The pager number has bad format." +msgstr "Il numero di pagina ha un formato errato." + +#: ../lib/modules/heimdalKerberos.inc:121 +msgid "The parameter @@password@@ will be replaced with the new password." +msgstr "Il parametro @@password@@ sarà sostituito con la nuova password." + +#: ../lib/modules/heimdalKerberos.inc:120 +msgid "The parameter @@principal@@ will be replaced with the principal name." +msgstr "Il parametro @@principal@@ sarà sostituito dal nome." + +#: ../templates/config/confsave.php:71 ../templates/config/confmain.php:73 +#: ../templates/config/mainlogin.php:61 +#: ../templates/selfService/adminLogin.php:54 +msgid "The password is invalid! Please try again." +msgstr "La password non è valida. Riprovare." + +#: ../lib/security.inc:335 +#, php-format +msgid "The password is too short. You have to enter at least %s characters." +msgstr "La password è troppo breve. Devi inserire almeno %s caratteri." + +#: ../lib/security.inc:423 +#, php-format +msgid "" +"The password is too weak. It needs to match at least %s password complexity " +"rules." +msgstr "La password è troppo debole. E' necessario abbinare almeno %s regole di complessità." + +#: ../lib/security.inc:413 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s different character " +"classes (upper/lower case, numbers and symbols)." +msgstr "La password è troppo debole. Devi inserire almeno %s classi di caratteri differenti (maisucole/minuscole, numeri e simboli)." + +#: ../lib/security.inc:360 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s lower case " +"characters." +msgstr "La password è troppo debole. Devi inserire almeno %s caratteri minuscoli." + +#: ../lib/security.inc:380 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s numeric characters." +msgstr "La password è troppo debole. Devi inserire almeno %s caratteri numerici." + +#: ../lib/security.inc:390 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s symbolic characters." +msgstr "La password è troppo debole. Devi inserire almeno %s simboli." + +#: ../lib/security.inc:370 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s upper case " +"characters." +msgstr "La password è troppo debole. Devi inserire almeno %s caratteri maiuscoli." + +#: ../lib/security.inc:442 +msgid "" +"The password is too weak. You may not use parts of the user name for the " +"password." +msgstr "La password è troppo debole. Non si deve usare parte del nome utente per la password." + +#: ../lib/security.inc:452 +msgid "" +"The password is too weak. You may not use parts of user attributes for the " +"password." +msgstr "La password è troppo debole. Non si devono usare parti dell'attributo utente per la password." + +#: ../lib/security.inc:430 +msgid "" +"The password is too weak. You may not use the user name as part of the " +"password." +msgstr "La password è troppo debole. Non si deve usare il nome utente come parte della password." + +#: ../lib/modules/imapAccess.inc:95 +msgid "" +"The password of your IMAP admin user. The login name for the IMAP admin user" +" is stored in the LAM server profile." +msgstr "La password del tuo utente admin IMAP. Il nome di login per l'utente admin IMAP è salvato nel profilo server di LAM." + +#: ../templates/lists/changePassword.php:600 ../lib/modules.inc:1120 +msgid "The password was set to:" +msgstr "La password è stata impostata a:" + +#: ../lib/modules/bindDLZ.inc:505 ../lib/modules/bindDLZ.inc:506 +#, php-format +msgid "The port \"%s\" is invalid." +msgstr "La porta \"%s\" non è valida." + +#: ../lib/modules/windowsUser.inc:161 ../lib/modules/inetOrgPerson.inc:673 +#: ../lib/modules/inetOrgPerson.inc:677 +msgid "The post office box of the user's address." +msgstr "La casella postale dell'indirizzo dell'utente." + +#: ../lib/modules/windowsUser.inc:157 ../lib/modules/inetOrgPerson.inc:681 +#: ../lib/modules/inetOrgPerson.inc:685 +msgid "The postal code of the user's address." +msgstr "Il codice postale dell'indirizzo dell'utente." + +#: ../lib/modules/bindDLZ.inc:495 ../lib/modules/bindDLZ.inc:496 +#, php-format +msgid "The preference \"%s\" must be a number." +msgstr "La preferenza \"%s\" deve essere un numero." + +#: ../lib/modules/pykotaPrinter.inc:116 +msgid "The price for each page of a print job." +msgstr "Il prezzo per ciascuna pagina di un lavoro di stampa." + +#: ../lib/modules/pykotaPrinter.inc:112 +msgid "The price for each print job." +msgstr "Il prezzo per ciascun lavoro di stampa." + +#: ../lib/modules/posixAccount.inc:466 +msgid "" +"The primary group for this account. You can insert a GID number or a group " +"name." +msgstr "Il gruppo primario per questo account. è possibile inserire un numero GID o un nome di gruppo." + +#: ../lib/modules/posixAccount.inc:553 +msgid "The primary group the host should be member of." +msgstr "Il gruppo primario del quale il computer deve fare parte." + +#: ../lib/modules/posixAccount.inc:515 +msgid "The primary group the user should be member of." +msgstr "Il gruppo primario del quale l'utente deve fare parte." + +#: ../lib/modules/bindDLZ.inc:501 ../lib/modules/bindDLZ.inc:502 +#, php-format +msgid "The priority \"%s\" is invalid." +msgstr "La priorità \"%s\" non è valida." + +#: ../lib/modules/asteriskExtension.inc:107 +msgid "" +"The priority is a sequence number used to order the execution of commands. " +"Commands are executed beginning with the lowest sequence number." +msgstr "La priorità è un numero di sequenza utilizzato per ordinare l'esecuzione dei comandi. I comandi sono eseguiti a cominciare dal numero di sequenza più basso." + +#: ../lib/modules/range.inc:424 +msgid "The range conflicts with another range." +msgstr "L'intervallo è in conflitto con un altro intervallo." + +#: ../lib/modules/range.inc:420 +msgid "The range end needs to be greater than the range start." +msgstr "La fine dell'intervallo deve essere superiore all'inizio dell'intervallo." + +#: ../lib/modules/bindDLZ.inc:514 ../lib/modules/bindDLZ.inc:515 +#, php-format +msgid "The refresh time \"%s\" must be a number." +msgstr "Il tempo di frequenza di aggiornamento \"%s\" deve essere un numero." + +#: ../lib/modules/bindDLZ.inc:516 ../lib/modules/bindDLZ.inc:517 +#, php-format +msgid "The retry time \"%s\" must be a number." +msgstr "Il tempo di nuovo tentativo \"%s\" deve essere un numero." + +#: ../lib/modules/inetOrgPerson.inc:761 +msgid "The room number of the employee's office." +msgstr "Il numero di stanza dell'ufficio del dipendente." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +msgid "The scope in which to search" +msgstr "L'argomento in cui cercare" + +#: ../lib/modules/customScripts.inc:64 ../lib/modules/customScripts.inc:77 +msgid "" +"The scripts will be run on your web server in the user context of your web " +"server (e.g. apache/www-data)." +msgstr "Gli script saranno eseguiti sul vostro web server nel contesto utente del vostro web server (es. apache/www-data)." + +#: ../lib/modules/nisMailAliasUser.inc:105 +#: ../lib/modules/asteriskAccount.inc:244 ../lib/modules/qmailUser.inc:196 +#: ../lib/modules/zarafaGroup.inc:109 ../lib/modules/sambaSamAccount.inc:400 +#: ../lib/modules/posixAccount.inc:442 ../lib/modules/zarafaUser.inc:133 +#: ../lib/modules/windowsUser.inc:237 ../lib/modules/inetOrgPerson.inc:809 +#: ../lib/modules/freeRadius.inc:113 ../lib/modules/zarafaServer.inc:89 +#: ../lib/modules/qmailGroup.inc:120 ../lib/modules/organizationalRole.inc:82 +#: ../lib/modules/passwordSelfReset.inc:161 +#: ../lib/modules/windowsGroup.inc:111 ../lib/modules/groupOfNames.inc:82 +msgid "" +"The selected options will not be managed inside LAM. You can use this to " +"reduce the number of displayed input fields." +msgstr "L'opzione selezionata non sarà gestita in LAM. Potete usarla per ridurre il numero di campi di input mostrati." + +#: ../lib/modules/bindDLZ.inc:520 ../lib/modules/bindDLZ.inc:521 +#, php-format +msgid "The serial number \"%s\" must be a number." +msgstr "Il numero seriale \"%s\" deve essere un numero." + +#: ../lib/modules/bindDLZ.inc:221 +msgid "The serial number should be updated after each zone change." +msgstr "Il numero seriale dovrebbe essere aggiornato dopo ogni cambiamento alla zona." + +#: ../lib/modules/bindDLZ.inc:493 ../lib/modules/bindDLZ.inc:494 +#: ../lib/modules/bindDLZ.inc:507 ../lib/modules/bindDLZ.inc:508 +#, php-format +msgid "The server name \"%s\" is invalid." +msgstr "Il nome del server \"%s\" non è valido." + +#: ../templates/3rdParty/pla/htdocs/copy.php:38 +msgid "The source and destination DN are the same." +msgstr "Il DN sorgente e la destinazione sono gli stessi." + +#: ../lib/modules/range.inc:93 +msgid "The starting IP address of the range." +msgstr "L'indirizzo IP iniziale dell'intervallo." + +#: ../lib/modules/windowsUser.inc:169 ../lib/modules/inetOrgPerson.inc:781 +#: ../lib/modules/inetOrgPerson.inc:785 +msgid "The state where the user resides or works." +msgstr "Lo stato dove l'utente risiede o lavora." + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "The static text must contain at least one character." +msgstr "Il testo statico deve contenere almeno un carattere." + +#: ../lib/modules/windowsUser.inc:173 ../lib/modules/inetOrgPerson.inc:665 +#: ../lib/modules/inetOrgPerson.inc:669 +msgid "The street name of the user's address." +msgstr "Il nome della via di indirizzo dell'utente." + +#: ../help/help.inc:249 +msgid "The subject of all password mails." +msgstr "Il soggetto di tutte le email di password." + +#: ../lib/modules/selfRegistration.inc:95 +#: ../lib/modules/passwordSelfReset.inc:121 +msgid "The subject of the mails." +msgstr "Il soggetto dell'email." + +#: ../lib/modules/dhcp_settings.inc:319 +msgid "The subnet is already in use." +msgstr "La sottorete è già stata utilizzata." + +#: ../lib/modules/dhcp_settings.inc:320 ../lib/modules/dhcp_settings.inc:321 +msgid "The subnet is invalid." +msgstr "La sottorete non è valida." + +#: ../lib/modules/dhcp_settings.inc:334 ../lib/modules/dhcp_settings.inc:335 +msgid "The subnet mask is invalid." +msgstr "La maschera di sottorete non è valida." + +#: ../lib/modules/dhcp_settings.inc:190 +msgid "The subnet mask of the network." +msgstr "La maschera di sottorete della rete." + +#: ../lib/modules/sudoRole.inc:134 +msgid "The sudo command is not valid after this date." +msgstr "Il comando sudo non vale dopo questa data." + +#: ../lib/modules/sudoRole.inc:129 +msgid "The sudo command is not valid before this date." +msgstr "Il comando sudo non vale prima di questa data." + +#: ../lib/modules/sudoRole.inc:91 ../lib/modules/sudoRole.inc:119 +msgid "The sudo commands are executed with these group memberships." +msgstr "I comandi sudo sono eseguiti con i membri di questi gruppi." + +#: ../lib/modules/sudoRole.inc:87 ../lib/modules/sudoRole.inc:114 +msgid "The sudo commands may be run as these users (e.g. root)." +msgstr "I comandi sudo possono essere eseguiti come questi utenti (es. root)." + +#: ../lib/modules/bindDLZ.inc:213 +msgid "" +"The time (in seconds) a secondary server should wait before retrying a zone " +"refresh." +msgstr "Il tempo (in secondi) che un server secondario deve attendere prima di ritentare un aggiornamento della zona." + +#: ../lib/modules/bindDLZ.inc:209 +msgid "" +"The time (in seconds) that a secondary server should wait before checking " +"for zone updates." +msgstr "Il tempo (in secondi) che un server secondario deve attendere prima di controllare gli aggiornamenti di zona." + +#: ../lib/modules/bindDLZ.inc:205 +msgid "" +"The time (in seconds) that zone data is kept on a secondary server without " +"receiving a zone refresh." +msgstr "Il tempo (in secondi) che i dati di quella zona sono lasciati su un server secondario senza ricevere un rinnovo della zona." + +#: ../lib/modules/bindDLZ.inc:472 ../lib/modules/bindDLZ.inc:473 +#: ../lib/modules/bindDLZ.inc:474 ../lib/modules/bindDLZ.inc:475 +#: ../lib/modules/bindDLZ.inc:476 ../lib/modules/bindDLZ.inc:477 +#: ../lib/modules/bindDLZ.inc:478 ../lib/modules/bindDLZ.inc:479 +#: ../lib/modules/bindDLZ.inc:480 ../lib/modules/bindDLZ.inc:481 +#: ../lib/modules/bindDLZ.inc:482 ../lib/modules/bindDLZ.inc:483 +#: ../lib/modules/bindDLZ.inc:484 ../lib/modules/bindDLZ.inc:485 +#: ../lib/modules/bindDLZ.inc:486 ../lib/modules/bindDLZ.inc:487 +#, php-format +msgid "The timeout \"%s\" must be a number." +msgstr "Il timeout \"%s\" deve essere un numero." + +#: ../lib/modules/bindDLZ.inc:95 ../lib/modules/bindDLZ.inc:99 +#: ../lib/modules/bindDLZ.inc:104 ../lib/modules/bindDLZ.inc:109 +#: ../lib/modules/bindDLZ.inc:114 ../lib/modules/bindDLZ.inc:119 +#: ../lib/modules/bindDLZ.inc:124 +msgid "" +"The timeout specifies how long (in seconds) a record can be cached by " +"caching DNS servers." +msgstr "Il timeout specifica quanto a lungo (in secondi) un record può essere conservato dai caching DNS servers" + +#: ../lib/modules/customFields.inc:3562 ../lib/modules/customFields.inc:3649 +#, php-format +msgid "The uploaded file does not have the correct file extension (%s)." +msgstr "Il file inviato non possiede la corretta estensione (%s)." + +#: ../lib/modules/customFields.inc:3558 ../lib/modules/customFields.inc:3645 +#, php-format +msgid "The uploaded file is too large (> %s bytes)." +msgstr "Il file inviato è troppo grande (> %s byte)." + +#: ../templates/3rdParty/pla/lib/import_functions.php:396 +msgid "The url attribute value should begin with file://." +msgstr "Il valore dell'attributo url dovrebbe cominciare con file://." + +#: ../lib/modules/zarafaUser.inc:113 +msgid "The user account is non-active and login is disabled." +msgstr "L'account utente non è attivo e il login è disabilitato." + +#: ../lib/modules/windowsUser.inc:202 +msgid "The user must log on using a smart card." +msgstr "L'utente deve accedere utilizzando una smartcard." + +#: ../lib/modules/zarafaUser.inc:93 +msgid "The user will get warned when his mailbox reaches this limit." +msgstr "L'utente sarà avvisato quando questa mailbox raggiunge questo limite." + +#: ../lib/modules/qmailUser.inc:204 +msgid "The user's alternate email address." +msgstr "L'indirizzo email alternativo dell'utente." + +#: ../lib/modules/asteriskAccount.inc:136 +msgid "The user's call groups." +msgstr "I gruppi di chiamata dell'utente." + +#: ../lib/modules/qmailUser.inc:200 ../lib/modules/windowsUser.inc:141 +#: ../lib/modules/pykotaUser.inc:117 ../lib/modules/inetOrgPerson.inc:721 +#: ../lib/modules/inetOrgPerson.inc:725 +msgid "The user's email address." +msgstr "Gli indirizzi email dell'utente." + +#: ../lib/modules/inetOrgPerson.inc:713 ../lib/modules/inetOrgPerson.inc:717 +msgid "The user's fax number." +msgstr "Il numero di fax dell'utente." + +#: ../lib/modules/inetOrgPerson.inc:705 ../lib/modules/inetOrgPerson.inc:709 +msgid "The user's mobile number." +msgstr "Il numero di cellulare dell'utente." + +#: ../lib/modules/inetOrgPerson.inc:825 ../lib/modules/inetOrgPerson.inc:829 +msgid "The user's organisation name." +msgstr "Il nome dell'organizzazione dell'utente." + +#: ../lib/modules/inetOrgPerson.inc:817 ../lib/modules/inetOrgPerson.inc:821 +msgid "The user's organisational unit." +msgstr "L'unità organizzativa dell'utente." + +#: ../lib/modules/inetOrgPerson.inc:753 ../lib/modules/inetOrgPerson.inc:757 +msgid "The user's private telephone number." +msgstr "Il numero telefonico privato dell'utente." + +#: ../lib/modules/windowsUser.inc:177 ../lib/modules/inetOrgPerson.inc:697 +#: ../lib/modules/inetOrgPerson.inc:701 +msgid "The user's telephone number." +msgstr "Il numero telefonico dell'utente." + +#: ../lib/modules/inetOrgPerson.inc:833 +msgid "The user's unique employee number." +msgstr "Il numero matricola dell'impiegato." + +#: ../lib/modules/windowsUser.inc:189 ../lib/modules/inetOrgPerson.inc:733 +#: ../lib/modules/inetOrgPerson.inc:737 +msgid "The user's web site (e.g. http://www.company.com)." +msgstr "Il sito web dell'utente (es. http://www.company.com)." + +#: ../lib/modules/sambaSamAccount.inc:122 +msgid "" +"The value for the Samba 3 field \"User can/must change password\" needs to " +"be a number." +msgstr "Il valore del campo Samba 3 \"L'utente può/deve cambiare la password\" deve essere un numero." + +#: ../lib/modules/puppetClient.inc:188 ../lib/modules/puppetClient.inc:189 +msgid "The variables may only contain ASCII characters." +msgstr "Le variabili possono contenere solo caratteri ASCII." + +#: ../lib/modules/asteriskVoicemail.inc:226 +#: ../lib/modules/asteriskVoicemail.inc:227 +msgid "The voicemail context name is invalid." +msgstr "Il nome del contesto della voicemail non è valido." + +#: ../lib/modules/bindDLZ.inc:503 ../lib/modules/bindDLZ.inc:504 +#, php-format +msgid "The weight \"%s\" is invalid." +msgstr "Il peso \"%s\" non è valido." + +#: ../templates/3rdParty/pla/htdocs/create.php:42 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:36 +msgid "The were no attributes marked as an RDN attribute." +msgstr "Non ci sono attributi contrassegnati come attributo RDN." + +#: ../lib/modules/selfRegistration.inc:71 +msgid "The wildcard for the account creation link is @@creationLink@@." +msgstr "La parola speciale per il link di creazione account è @@creationLink@@." + +#: ../lib/modules/passwordSelfReset.inc:127 ../help/help.inc:254 +msgid "The wildcard for the new password is @@newPassword@@." +msgstr "Il valore jolly per la nuova password é @@newPassword@@." + +#: ../lib/modules/passwordSelfReset.inc:137 +msgid "The wildcard for the reset link is @@resetLink@@." +msgstr "La wildcard per il link di reset è @@resetLink@@." + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:60 +#, php-format +msgid "There are %s members in group %s:" +msgstr "Ci sono %s membri nel gruppo %s:" + +#: ../lib/modules/posixGroup.inc:612 ../lib/modules/sambaGroupMapping.inc:605 +msgid "There are still users who have this group as their primary group." +msgstr "Ci sono ancora degli utenti che hanno questo gruppo come gruppo primario." + +#: ../lib/modules/sambaGroupMapping.inc:602 +msgid "There can be only one group of this type." +msgstr "Ci può essere un solo gruppo di questo tipo." + +#: ../lib/modules/asteriskAccount.inc:557 +msgid "There is already another user with this caller ID." +msgstr "C'è un altro utente con questo ID del chiamante." + +#: ../lib/modules/asteriskVoicemail.inc:211 +msgid "There is already another user with this mailbox name." +msgstr "C'è un altro utente con questo nome di mailbox." + +#: ../templates/massDoUpload.php:258 +msgid "There were errors while uploading:" +msgstr "Si sono verificati degli errori durante il caricamento:" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:80 +#, php-format +msgid "There will be %s updates done with this mass update" +msgstr "Ci saranno %s aggiornamenti con questo aggiornamento massivo" + +#: ../lib/modules/posixGroup.inc:501 +msgid "" +"These are the minimum and maximum numbers to use for group IDs when creating" +" new group accounts. New group accounts will always get the highest number " +"in use plus one." +msgstr "Questi sono i numeri minimi e massimi da utilizzare per gli ID di gruppo quando vengono creati nuovi account di gruppo. I nuovi account di gruppo riceveranno il numero più alto in uso più uno." + +#: ../lib/modules/posixAccount.inc:454 +msgid "" +"These are the minimum and maximum numbers to use for machine IDs when " +"creating new accounts for hosts. The range should be different from that of " +"users. New host accounts will always get the highest number in use plus one." +msgstr "Questi sono i numeri minimi e massimi da utilizzare per gli ID computer quando vengono creati nuovi account per i computer. L'intervallo dovrebbe essere diverso da quello degli utenti. I nuovi account computer riceveranno il numero più alto in uso più uno." + +#: ../lib/modules/posixAccount.inc:450 +msgid "" +"These are the minimum and maximum numbers to use for user IDs when creating " +"new user accounts. The range should be different from that of machines. New " +"user accounts will always get the highest number in use plus one." +msgstr "Questi sono i numeri minimi e massimi da utilizzare per gli ID utente quando vengono creati nuovi account utente. L'intervallo dovrebbe essere diverso da quello dei computer. I nuovi account utente riceveranno il numero più alto in uso più uno." + +#: ../lib/modules/inetOrgPerson.inc:845 +msgid "These are the user's certificates." +msgstr "Questi sono i certificati dell'utente." + +#: ../lib/modules/puppetClient.inc:113 +msgid "" +"These classes will be available as autocompletion hints when adding new " +"classes." +msgstr "Queste classi saranno disponibili come suggerimento di autocompletamento aggiungendo nuove classi." + +#: ../lib/modules/nisnetgroup.inc:96 ../lib/modules/nisnetgroup.inc:100 +msgid "" +"These entries specify the members of the netgroup. You can limit the set to " +"a host name, a user name, a domain name or any combination of them." +msgstr "Questi valori specificano i membri del gruppo di rete. Si può limitare il valore ad un nome computer, un nome utente, un nome dominio o una qualunque combinazione di questi." + +#: ../lib/modules/puppetClient.inc:117 +msgid "" +"These environments will be available as autocompletion hints when setting " +"the environment." +msgstr "Questi ambienti saranno disponibili come suggerimento di autocompletamento aggiungendo nuovi ambienti." + +#: ../lib/modules/asteriskExtension.inc:123 +msgid "" +"These options change the list of potential extension owners below. You can " +"select to show Asterisk accounts or all users. It is also possible to search" +" the tree suffix if you have users which are not in the standard user " +"suffix." +msgstr "Queste opzioni cambieranno l'elenco dei potenziali proprietari delle estensioni qui sotto. Potete selezionare di mostrare gli account Asterisk o tutti gli utenti. E' anche possibile cercare il suffisso dell'albero se avete utenti che non hanno il suffisso standard degli utenti." + +#: ../lib/modules/authorizedServiceObject.inc:94 +msgid "These services will show up as hint if you enter a new service." +msgstr "Questi servizi saranno mostrati come suggerimenti quando immetterete un nuovo servizio." + +#: ../lib/modules/posixAccount.inc:124 +msgid "" +"This GID number is invalid! Please provide either a number or a group name." +msgstr "Questo GID non è valido! Inserire un numero o un nome di gruppo." + +#: ../help/help.inc:235 +msgid "" +"This HTML code will be placed on top of all self service pages. E.g. you can" +" use this to place your custom logo. Any HTML code is permitted." +msgstr "Questo codice HTML viene inserito in cima a tutte le pagine di auto-aiuto. Es. si può utilizzare per inserire il proprio logo. Si può inserire qualunque codice HTML." + +#: ../lib/modules/fixed_ip.inc:462 +msgid "This PC name already exists." +msgstr "Il nome del computer esiste già!" + +#: ../lib/modules/kolabGroup.inc:197 ../lib/modules/kolabUser.inc:292 +#: ../lib/modules/kolabSharedFolder.inc:274 +msgid "This account is marked for deletion." +msgstr "Questo account è stato selezionato per la cancellazione." + +#: ../lib/modules/sambaSamAccount.inc:327 +msgid "" +"This allows you to define this account as a special user like administrator " +"or guest." +msgstr "Permette di impostare questo account come utente speciale quale un amministratore o un ospite." + +#: ../templates/3rdParty/pla/lib/PageRender.php:376 +msgid "This attribute is not defined in the LDAP schema" +msgstr "Questo attributo non è definito nello schema LDAP" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1988 +msgid "This attribute is required" +msgstr "Questo attributo è richiesto" + +#: ../templates/3rdParty/pla/lib/PageRender.php:458 +msgid "This attribute is required for the RDN." +msgstr "Questo attributo è richiesto per l'RDN." + +#: ../lib/modules/inetOrgPerson.inc:789 +msgid "This can be used to specify if the user has a car license." +msgstr "Può essere utilizzato per indicare se l'utente ha una patente." + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:64 +msgid "This change requires to add new attributes." +msgstr "Questo cambiamento richiede l'aggiunta di nuovi attributi." + +#: ../help/help.inc:137 +msgid "This changes the password of the selected profile." +msgstr "Cambia la password del profilo selezionato." + +#: ../help/help.inc:139 +msgid "This changes the profile which is selected by default at login." +msgstr "Modifica il profilo selezionato come predefinito al login." + +#: ../templates/massBuildAccounts.php:177 +msgid "" +"This column is defined to include unique entries but duplicates were found:" +msgstr "Questa colonna è definita in modo da avere valori univoci ma sono stati trovati dei duplicati:" + +#: ../lib/modules/heimdalKerberos.inc:119 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -K /etc/heimdal/apache.keytab -p " +"admin/admin passwd -p @@password@@ @@principal@@\"." +msgstr "Questo comando verrà evocato per cambiare la password Kerberos. Solitamente, dovrebbe essere simile a \"/usr/sbin/kadmin -K /etc/heimdal/apache.keytab -p admin/admin passwd -p @@password@@ @@principal@@\"." + +#: ../lib/modules/mitKerberos.inc:149 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -k -t /home/www-data/apache.keytab" +" -p realm/changepwd\"." +msgstr "Questo comando sarà richiamato al cambio della password Kerberos. Di solito, somiglia a \"/usr/sbin/kadmin -k -t /home/www-data/apache.keytab -p realm/changepwd\"." + +#: ../lib/modules/customScripts.inc:124 +msgid "This custom script setting includes an invalid account type." +msgstr "Questo script di impostazioni personalizzate include un tipo di account non valido." + +#: ../lib/modules/customScripts.inc:126 ../lib/modules/customScripts.inc:128 +msgid "This custom script setting includes an invalid action type." +msgstr "Questo script di impostazioni personalizzate include un tipo di azione non valida." + +#: ../help/help.inc:100 +msgid "" +"This defines the language of the login window and sets this language as the " +"default language. Users can change the language at login." +msgstr "Stabilisce il linguaggio della maschera di login e lo imposta come linguaggio predefinito. L'utente può cambiare il linguaggio al login." + +#: ../help/help.inc:119 +msgid "" +"This defines the rights for the home directories which are created by " +"lamdaemon." +msgstr "Definisce i permessi per le home directory che vengono create da lamdaemon." + +#: ../lib/modules/asteriskExtension.inc:95 +msgid "" +"This defines what application Asterisk has to start for this user (e.g. " +"SIP/user1)." +msgstr "Questo definisce quale applicazione Asterisk deve essere avviata per questo utente (es. SIP/user1)." + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:85 +#, php-format +msgid "This deletion request also includes %s child entries." +msgstr "Questa richiesta di eliminazione include anche %s voci figlie." + +#: ../lib/modules/device.inc:78 +msgid "This describes the location of the device." +msgstr "Questo descrive la sede del dispositivo." + +#: ../lib/modules/ipHost.inc:74 +msgid "This describes the location of the host." +msgstr "Questo descrive la sede del computer." + +#: ../lib/modules/windowsUser.inc:137 ../lib/modules/inetOrgPerson.inc:773 +#: ../lib/modules/inetOrgPerson.inc:777 +msgid "This describes the location of the user." +msgstr "Questo è la sede dell'utente." + +#: ../lib/lamPDF.inc:126 +msgid "This document was automatically created by LDAP Account Manager" +msgstr "Questo documento è stato creato in modo automatico da LDAP Account Manager" + +#: ../help/help.inc:258 +msgid "" +"This email address will be set as reply-to address of all password mails." +msgstr "Questo indirizzo email sarà impostato come mittente per tutte le email di password." + +#: ../help/help.inc:247 +msgid "" +"This email address will be set as sender address of all password mails. If " +"empty the system default (php.ini) will be used." +msgstr "Questo indirizzo email sarà impostato come mittente per tutte le email di password. Se vuoto, sarà utilizzato il predefinito (php.ini)." + +#: ../lib/modules/selfRegistration.inc:91 +#: ../lib/modules/passwordSelfReset.inc:117 +msgid "" +"This email address will be set as sender address of the mails. If empty the " +"system default (php.ini) will be used." +msgstr "Questo indirizzo email sarà impostato come indirizzo del mittente. Se vuoto, verrà usato quello predefinito di sistema (php.ini)." + +#: ../lib/modules/passwordSelfReset.inc:97 +msgid "This enables the password self reset function." +msgstr "Abilita la funzione di auto reset password." + +#: ../lib/modules/selfRegistration.inc:54 +msgid "This enables the self registration function." +msgstr "Questo abilita la funzione di auto registrazione." + +#: ../templates/3rdParty/pla/htdocs/compare.php:79 +msgid "This entry has no attributes" +msgstr "Questo oggetto non ha attributi" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:57 +#, php-format +msgid "This entry is the root of a sub-tree containing %s entries." +msgstr "Questo oggetto è la radice di un sotto-albero contenente %s oggetti." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:47 +#: ../lib/modules/selfRegistration.inc:512 +msgid "This field is required." +msgstr "Questo campo è obbligatorio." + +#: ../lib/modules/customFields.inc:188 +msgid "This field name already exists. Please choose a different one." +msgstr "Il nome di questo campo esiste già. Scegliere un nome differente." + +#: ../lib/modules/posixAccount.inc:126 +msgid "This gecos value is invalid!" +msgstr "Il valore del gecos non è valido!" + +#: ../lib/modules/ipHost.inc:70 +msgid "This is a comma separated list of IP addresses." +msgstr "Questa è una lista di indirizzi IP separati da virgole." + +#: ../lib/modules/ieee802device.inc:73 +msgid "This is a comma separated list of MAC addresses." +msgstr "Questa è una lista di indirizzi MAC separati da virgole." + +#: ../lib/modules/kolabUser.inc:137 ../lib/modules/kolabSharedFolder.inc:143 +msgid "This is a comma separated list of delegates." +msgstr "Questa è una lista di delegati separati da virgole." + +#: ../lib/modules/kolabUser.inc:145 ../lib/modules/kolabSharedFolder.inc:151 +msgid "This is a comma separated list of eMail aliases." +msgstr "Questa è una lista di alias email separati da virgole." + +#: ../lib/modules/kolabUser.inc:129 +msgid "This is a comma separated list of invitation policies." +msgstr "Questa è una lista di policy di invito separate da virgole." + +#: ../lib/modules/nisMailAlias.inc:90 +msgid "This is a comma separated list of recipients." +msgstr "Questa è una lista di destinatari separati da virgole." + +#: ../lib/modules/inetLocalMailRecipient.inc:77 +msgid "This is a comma separated list of the users public email addresses." +msgstr "Questa è una lista di email pubbliche degli utenti separate da virgole." + +#: ../help/help.inc:153 +msgid "" +"This is a list of IP addresses from hosts who may access LAM. You can use " +"\"*\" as wildcard (e.g. 192.168.0.*)." +msgstr "Questa è una lista di indirizzi IP dei computer che possono accedere a LAM. Si può usare \"*\" come carattere jolly (es. 192.168.0.*)." + +#: ../lib/modules/selfRegistration.inc:79 +msgid "" +"This is a list of additional attributes that the user can enter. Please note" +" that user name, password and email address are mandatory anyway and need " +"not be specified." +msgstr "Questo è un elenco di attributi aggiuntivi che l'utente può immettere. Nota che il nome utente, la password e l'indirizzo email sono comunque obbligatori e non debbono essere specificati." + +#: ../lib/modules/organizationalRole.inc:94 +#: ../lib/modules/windowsGroup.inc:131 ../lib/modules/groupOfNames.inc:102 +msgid "This is a list of members of this group." +msgstr "Questa è una lista di membri di questo gruppo." + +#: ../lib/modules/organizationalRole.inc:98 +#: ../lib/modules/windowsGroup.inc:135 ../lib/modules/groupOfNames.inc:106 +msgid "" +"This is a list of members of this group. Multiple members are separated by " +"semicolons." +msgstr "Questa è una lista di membri di questo gruppo. Membri diversi sono separati da punti e virgole." + +#: ../lib/modules/eduPerson.inc:102 +msgid "This is a list of nick names for this user." +msgstr "Questa è una lista di soprannomi per questo utente." + +#: ../lib/modules/selfRegistration.inc:75 +msgid "" +"This is a list of object classes that are used to build the new user " +"accounts. Please enter one object class in each line." +msgstr "Questo è un elenco di classi di oggetti che saranno utilizzati per costruire il nuovo account utente. Immettere una classe di oggetti in ciascuna linea." + +#: ../help/help.inc:115 +msgid "" +"This is a list of the servers where the lamdaemon scripts are stored. LDAP " +"Account Manager will make a SSH connection to the servers with the user name" +" and password provided at login. Multiple servers are separated by " +"semicolons. You can append a descriptive name after a colon." +msgstr "Questa è una lista di server dove lo script lamdaemon è immagazzinato. LDAP Account Manager effettuerà una connessione SSH con il server con lo username e la password fornite al login. Più server sono separati da punti e virgole. Si può inserire una descrizione dopo un due punti." + +#: ../help/help.inc:93 +msgid "" +"This is a list of valid DN entries of all users that are allowed to login to" +" LDAP Account Manager. Please enter one DN per line." +msgstr "Questa è una lista di valori DN validi di tutti gli utenti che possono effettuare il login a LDAP Account Manager. Inserire un DN per riga." + +#: ../templates/3rdParty/pla/lib/PageRender.php:881 +msgid "This is a structural ObjectClass and cannot be removed." +msgstr "Questa ObjectClass strutturata non può essere rimossa." + +#: ../lib/modules/nisObject.inc:74 ../lib/modules/automount.inc:73 +#: ../lib/modules/oracleService.inc:70 +msgid "This is an optional description for this entry." +msgstr "Questa è una descrizione opzionale per questo oggetto." + +#: ../help/help.inc:223 +msgid "" +"This is needed to find the LDAP DNs of your user accounts. E.g. if you use " +"\"uid\" and your user inputs \"miller\" then LAM will search for an account " +"with uid=miller." +msgstr "Questo è necessario per trovare i DN LDAP dei vostri account utente. Es. Se utilizzare \"uid\" e il vostro utente inserisce \"miller\" LAM cercherà un account con uid=miller." + +#: ../lib/modules/zarafaDynamicGroup.inc:199 ../lib/modules/ipHost.inc:117 +#: ../lib/modules/posixGroup.inc:613 ../lib/modules/device.inc:142 +#: ../lib/modules/eduPerson.inc:246 ../lib/modules/eduPerson.inc:248 +#: ../lib/modules/zarafaAddressList.inc:170 +#: ../lib/modules/posixAccount.inc:131 ../lib/modules/inetOrgPerson.inc:98 +#: ../lib/modules/aliasEntry.inc:86 ../lib/modules/qmailGroup.inc:433 +#: ../lib/modules/qmailGroup.inc:434 ../lib/modules/qmailGroup.inc:435 +msgid "This is not a valid DN!" +msgstr "Questo non è un DN valido!" + +#: ../lib/modules/sambaSamAccount.inc:109 +msgid "This is not a valid RID number!" +msgstr "Questo non è un RID valido!" + +#: ../lib/modules/sambaGroupMapping.inc:604 +msgid "This is not a valid Samba 3 group type!" +msgstr "Questo non è un tipo di gruppo Samba 3 valido!" + +#: ../lib/modules/eduPerson.inc:250 +msgid "This is not a valid list of DNs!" +msgstr "Questa non è una lista valida di DN!" + +#: ../lib/modules/qmailGroup.inc:436 ../lib/modules/qmailGroup.inc:437 +msgid "This is not a valid option." +msgstr "Questa opzione non è valida" + +#: ../lib/modules/inetLocalMailRecipient.inc:73 +msgid "This is one of the users public email addresses." +msgstr "Questo è uno degli indirizzi email pubblici degli utenti." + +#: ../help/help.inc:84 +msgid "" +"This is only needed for TLS/SSL connections. By default, LAM will use the " +"certificate authorities installed on your system. If you have a private CA " +"in your company you can upload your CA certificates here and override the " +"system certificates." +msgstr "Questo è necessario solo per le connessioni TLS/SSL. Per impostazione predefinita, LAM utilizzerà la certificate authorities installata sul sistema. Se avete una CA privata nella vostra azienda, potete eseguire l'upload dei certificati della CA qui e prevaricare i certificati di sistema." + +#: ../lib/modules/asteriskAccount.inc:104 +msgid "" +"This is the ID of the user in the Asterisk database. It may contain digits " +"and letters (e.g. user1 or 200134)." +msgstr "Questo è l'ID dell'utente nel database Asterisk. Può contenere numeri e lettere (es. user1 o 200134)." + +#: ../lib/modules/freeRadius.inc:85 +msgid "This is the IP address for the user (e.g. 123.123.123.123)." +msgstr "Questo è l'indirizzo IP per l'utente (per esempio 123.123.123.123)." + +#: ../lib/modules/ipHost.inc:66 +msgid "" +"This is the IP address of the network card of the device (e.g. " +"123.123.123.123)." +msgstr "Questo è l'indirizzo IP della scheda di rete del dispositivo (es. 123.123.123.123)." + +#: ../lib/modules/ipHost.inc:78 +msgid "This is the LDAP DN of the host's manager." +msgstr "Questo è il DN LDAP del host manager." + +#: ../lib/modules/inetOrgPerson.inc:657 ../lib/modules/inetOrgPerson.inc:661 +msgid "" +"This is the LDAP DN of the user's manager. Use this property to represent " +"hierarchies in your company." +msgstr "Questo è il DN LDAP dell'amministratore degli utenti. Utilizzare questa proprietà per rappresentare le gerarchie della vostra azienda." + +#: ../lib/modules/customFields.inc:117 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an activated " +"state. The value is case-insensitive." +msgstr "Questo è l'attributo LDAP che pone la casella di controllo in uno stato attivo. Il valore è sensibile ai caratteri maiuscoli o minuscoli." + +#: ../lib/modules/customFields.inc:121 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an deactivated " +"state. The value is case-insensitive." +msgstr "Questo è l'attributo LDAP che pone la casella di controllo in uno stato deattivato. Il valore è sensibile ai caratteri maiuscoli o minuscoli." + +#: ../lib/modules/ieee802device.inc:69 +msgid "" +"This is the MAC address of the network card of the device (e.g. " +"00:01:02:DE:EF:18)." +msgstr "Questo è l'indirizzo MAC della scheda di rete del dispositivo (es. 00:01:02:DE:EF:18)." + +#: ../lib/modules/sambaSamAccount.inc:324 +msgid "This is the SID of the user's primary Windows group." +msgstr "Questo è il SID del gruppo Windows primario dell'utente." + +#: ../help/help.inc:102 +msgid "" +"This is the absolute path to an external script for setting quotas and " +"creating home directories." +msgstr "Questo è il percorso assoluto allo script esterno per impostare le quota e creare le cartelle home." + +#: ../lib/modules/mitKerberos.inc:157 ../lib/modules/heimdalKerberos.inc:125 +msgid "This is the account's Kerberos password." +msgstr "Questa è la password dell'account Kerberos." + +#: ../lib/modules/sambaSamAccount.inc:262 +msgid "This is the account's Windows password." +msgstr "Questa è la password dell'account Windows." + +#: ../lib/modules/sambaSamAccount.inc:259 ../lib/modules/windowsUser.inc:124 +msgid "This is the account's full name on Windows systems." +msgstr "Questo è il nome completo dell'account sui sistemi Windows." + +#: ../lib/modules/ppolicyUser.inc:56 +msgid "This is the active password policy for this account." +msgstr "Questa è la politica della password attiva per questo account." + +#: ../lib/modules/passwordSelfReset.inc:85 +msgid "" +"This is the answer to the security question. It allows users to reset their " +"password." +msgstr "Questa è la risposta alla domanda di sicurezza. Permette agli utenti di resettare la propria password. " + +#: ../lib/modules/mitKerberos.inc:145 +msgid "This is the date of the user's last login." +msgstr "Questa è la data dell'ultimo login dell'utente." + +#: ../lib/modules/mitKerberos.inc:125 ../lib/modules/heimdalKerberos.inc:103 +msgid "This is the date when the account will expire." +msgstr "Questa è la data di scadenza dell'account." + +#: ../lib/modules/sambaSamAccount.inc:346 ../lib/modules/shadowAccount.inc:194 +msgid "This is the date when the account will expire. Format: DD-MM-YYYY" +msgstr "Questa è la data di scadenza dell'account. Formato: GG-MM-AAAA" + +#: ../lib/modules/mitKerberos.inc:141 ../lib/modules/sambaSamAccount.inc:397 +msgid "This is the date when the user changed his password." +msgstr "Questa è la data dell'ultimo cambio password dell'utente." + +#: ../lib/modules/shadowAccount.inc:202 +msgid "" +"This is the date when the user changed his password. If you specify a " +"maximum password age then you can force a password change here." +msgstr "Questa è la data di quando l'utente cambia la sua password. Se specificata un età massima della password, potrà essere forzato un cambio qui." + +#: ../lib/modules/sambaGroupMapping.inc:147 +msgid "This is the group name which will be shown in Windows." +msgstr "Questo è il nome del gruppo che sarà visualizzato in Windows." + +#: ../lib/modules/windowsHost.inc:83 +msgid "This is the host's location (e.g. Munich, server room 3)." +msgstr "Questa è la posizione dell'host (es. Monaco, sala server 3)." + +#: ../help/help.inc:187 +msgid "" +"This is the identifier for the relative DN value. It must be one of the " +"given allowed LDAP attributes (e.g. user accounts usually use \"uid\" while " +"groups use \"cn\")." +msgstr "Questo è l'identificatore per il valore DN relativo. Deve essere uno degli attributi LDAP ammessi (es. gli user account di solito usano \"uid\" mentre i gruppi usano \"cn\")." + +#: ../lib/modules/selfRegistration.inc:99 +msgid "" +"This is the identifier for the relative DN value. LAM will use \"uid\" by " +"default." +msgstr "Questo è l'identificatore per il relativo valore DN. LAM userà \"uid\" per impostazione predefinita." + +#: ../lib/modules/passwordSelfReset.inc:101 +msgid "" +"This is the label for the link to the password self reset. If empty \"Forgot" +" password?\" will be used." +msgstr "Questa è l'etichetta per il link dell'auto password reset. Se vuoto verrà utilizzato \"Password dimenticata?\"." + +#: ../lib/modules/selfRegistration.inc:58 +msgid "" +"This is the label for the link to the self registration. If empty \"Register" +" new account\" will be used." +msgstr "Questa è l'etichetta per il link di auto registrazione. Se vuota verrà utilizzata \"Registra nuovo account\"." + +#: ../help/help.inc:88 +msgid "" +"This is the list of attributes to show in the account list. The entries can " +"either be predefined values, \"#attribute\", or individual ones, " +"\"attribute:description\". Several entries are separated by semicolons." +msgstr "Questa è la lista degli attributi da visualizzare nella lista degli account. I valori possono essere valori predefiniti, \"#attributo\", o valori individuali , \"attributo:descrizione\". Più valori sono separati da punti e virgole." + +#: ../lib/modules/posixAccount.inc:494 +msgid "This is the list of valid login shells." +msgstr "Questo è l'elenco delle shell di login valide." + +#: ../lib/modules/asteriskAccount.inc:108 +msgid "" +"This is the machine id (e.g. IP address or host name) from which the user " +"can call/receive calls." +msgstr "Questo è l'ID della macchina (es. Indirizzo IP e nome del computer) dal quale l'utente può inviare/ricevere chiamate." + +#: ../lib/modules/inetLocalMailRecipient.inc:81 +msgid "This is the mail server for the user." +msgstr "Questo è il server di mail per l'utente." + +#: ../lib/modules/qmailUser.inc:220 +msgid "This is the mailbox size limit in bytes." +msgstr "Questa è la dimensione della grandezza della mailbox in bytes." + +#: ../lib/modules/passwordSelfReset.inc:93 +msgid "This is the minimum length for answers to the security question." +msgstr "Questa è la lunghezza minima per la risposta alla domanda di sicurezza." + +#: ../lib/modules/nisnetgroup.inc:84 ../lib/modules/organizationalRole.inc:86 +#: ../lib/modules/groupOfNames.inc:86 +msgid "This is the name of this group." +msgstr "Questo è il nome del gruppo." + +#: ../lib/modules/posixAccount.inc:561 +msgid "" +"This is the natural name of the host. If empty, the host name will be used." +msgstr "Questo è il nome visualizzato del computer. Se lasciato vuoto sarà utilizzato il nome del computer." + +#: ../lib/modules/pykotaUser.inc:109 +msgid "This is the natural name of the user." +msgstr "Questo è il nome naturale dell'utente." + +#: ../lib/modules/inetOrgPerson.inc:741 +msgid "" +"This is the natural name of the user. If empty, the first and last name is " +"used." +msgstr "Questo è il nome visualizzato dell'utente. Se lasciato vuoto saranno utilizzati nome e cognome." + +#: ../lib/modules/posixAccount.inc:539 ../lib/modules/windowsUser.inc:103 +msgid "" +"This is the natural name of the user. If empty, the first and last name or " +"user name is used." +msgstr "Questo è il nome visualizzato dell'utente. Se lasciato vuoto saranno utilizzati nome e cognome oppure il nome utente" + +#: ../lib/modules/sambaDomain.inc:122 +msgid "" +"This is the number of bad logon attempts (0 - 999) before the account is " +"deactivated. 0 means unlimited attempts." +msgstr "Questo é il numero di tentativi di logon falliti (0 - 999) prima che l'account venga disattivato. 0 significa tentativi illimitati." + +#: ../lib/modules/sambaDomain.inc:106 +msgid "" +"This is the number of passwords which are saved to prevent that users reuse " +"old passwords." +msgstr "Questo è il numero di password che vengono salvate per prevenire il riutilizzo di vecchie password." + +#: ../help/help.inc:98 +msgid "" +"This is the number of rows to show in the account list. If more entries are " +"found the list will be split into several pages." +msgstr "Questo è il numero di righe da visualizzare nella lista degli account. Se vengono trovati più valori la lista sarà divisa in più pagine." + +#: ../lib/modules/sambaSamAccount.inc:355 +msgid "This is the path to the user's home directory." +msgstr "Questo é il percorso alla home directory dell'utente." + +#: ../lib/modules/sambaGroupMapping.inc:155 +msgid "" +"This is the relative ID (similar to UID on Unix) for Windows accounts. If " +"you leave this empty LAM will calculate the RID from the UID. This can be " +"either a number or the name of a special group:" +msgstr "Questo è l'ID relativo (simile allo UID su Unix) per gli account Windows. Se lo lasciate vuoto LAM calcolerà il RID a partire dallo UID. Può essere un numero o il nome di un gruppo speciale:" + +#: ../lib/modules/sambaSamAccount.inc:330 +msgid "" +"This is the relative ID number for your Windows account. You can either " +"enter a number or one of these special accounts: " +msgstr "Questo è l'ID relativo per il vostro account Windows. Potete inserire un numero o uno di questi account speciali: " + +#: ../lib/modules/sambaSamAccount.inc:334 +msgid "" +"This is the relative ID number for your host account. If you leave this " +"empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "Questo è l'ID relativo per il vostro account computer. Se lo lasciate vuoto LAM utilizzerà: uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../lib/modules/imapAccess.inc:113 +msgid "" +"This is the separator for the mailbox path. Usually, this is \".\" but e.g. " +"Cyrus with \"unixhierarchysep\" will require \"/\"." +msgstr "Questo è il separatore per il percorso della mailbox. Solitamente, questo è un \".\" ma ad esempio Cyrus con \"unixhierarchysep\" richiede \"/\"." + +#: ../help/help.inc:59 +msgid "" +"This is the server address of your LDAP server. Use ldap:// for unencrypted " +"LDAP connections or TLS encrypted connections. LDAP+SSL (LDAPS) encrypted " +"connections are specified with ldaps://. The port value is optional." +msgstr "Questo è l'indirizzo del vostro server LDAP. Utilizzare ldap:// per connessioni LDAP non cifrate o connessioni cifrate TLS. Le connessioni cifrate LDAP+SSL (LDAPS) sono specificate con ldaps://. Il valore della porta è opzionale." + +#: ../help/help.inc:78 +msgid "This is the suffix for the LDAP tree viewer." +msgstr "Questo è il suffisso per il visualizzatore dell'albero LDAP." + +#: ../help/help.inc:72 +msgid "" +"This is the suffix of the LDAP tree from where to search for LDAP entries. " +"Only entries in this subtree will be displayed in the account list. When " +"creating a new accont this will be the DN where it is saved." +msgstr "Questo è il suffisso dell'albero LDAP a partire dal quale cercare gli oggetti LDAP. Solo i valori in questi sottoalberi saranno visualizzati nella lista degli account. Quando viene creato un nuovo account questo sarà il DN dove viene salvato." + +#: ../lib/modules/inetLocalMailRecipient.inc:69 +msgid "This is the target email address for the user's mails." +msgstr "Questo è l'indirizzo email di destinazione per le mail dell'utente." + +#: ../lib/modules/customScripts.inc:53 ../lib/modules/uidObject.inc:60 +#: ../lib/modules/aliasEntry.inc:62 +msgid "This is the target of this alias entry." +msgstr "Questa è la destinazione dell'alias." + +#: ../lib/modules/sambaDomain.inc:134 +msgid "" +"This is the time (in minutes) for which the user may not log in after the " +"account was locked. -1 means forever." +msgstr "Questo è il tempo (in minuti) per il quale un utente non potrà collegarsi dopo che viene bloccato. -1 vuol dire per sempre." + +#: ../help/help.inc:147 +msgid "" +"This is the time (in minutes) of inactivity after which a user is " +"automatically logged off." +msgstr "Questo è il tempo di inattività (in minuti) dopo il quale un utente viene scollegato automaticamente." + +#: ../help/help.inc:108 +msgid "" +"This is the time in minutes which LAM caches its LDAP searches. Shorter " +"times will stress LDAP more but decrease the possibility that changes are " +"not identified." +msgstr "Questo è il numero di minuti per il quale LAM memorizza in cache le ricerche LDAP. Tempi più brevi daranno un maggiore carico a LDAP ma faranno diminuire la possibilità che i cambiamenti non siano rilevati." + +#: ../lib/modules/sambaSamAccount.inc:349 +msgid "" +"This is the time zone of your Samba server. LAM needs this information to " +"display the logon hours correctly." +msgstr "Questo è il fuso orario del vostro server Samba. LAM ha bisogno di questa informazione per mostrare in modo corretto le ore di logon." + +#: ../lib/modules/sambaSamAccount.inc:321 +msgid "This is the user's primary Windows group." +msgstr "Questo è il gruppo Windows primario dell'utente." + +#: ../lib/modules/puppetClient.inc:89 +msgid "" +"This is this node's parent. All classes and variables are inherited from " +"this node." +msgstr "Questo è il genitore di questo nodo. Tutte le classi e variabili sono ereditate da questo nodo." + +#: ../lib/modules/asteriskAccount.inc:156 +msgid "" +"This is typically used to allow incoming calls (e.g. from FWD) while having " +"a type=friend entry defined with username and password." +msgstr "Questo è tipicamente usato per permettere chiamate in arrivo (es. da FWD) mentre si ha definita una voce type=friend con username e password." + +#: ../lib/modules/zarafaUser.inc:117 +msgid "This is used to mark this account as resource." +msgstr "Questa è utilizzata per contrassegnare questo account come risorsa." + +#: ../lib/modules/posixAccount.inc:127 +msgid "This login shell is invalid!" +msgstr "La shell di login non è valida!" + +#: ../lib/modules/inetLocalMailRecipient.inc:232 +msgid "This mail address is already in use:" +msgstr "Questo indirizzo mail è già stato utilizzato:" + +#: ../lib/modules/imapAccess.inc:107 +msgid "This mailbox will be created/deleted." +msgstr "Questa mailbox sarà creata/eliminata." + +#: ../lib/modules.inc:1237 +msgid "This may overwrite existing values with profile data. Continue?" +msgstr "Questo può sovrascrivere i valori esistenti nei dati del profilo . Continuare?" + +#: ../lib/modules/customFields.inc:113 +msgid "" +"This message is shown when the field value does not match the validation " +"expression." +msgstr "Questo messaggio viene mostrato quando il valore del campo non coincide con la validazione dell'espressione regolare." + +#: ../templates/schema/schema.php:350 +msgid "This object class is obsolete." +msgstr "Questa classe oggetto è obsoleta." + +#: ../lib/modules/imapAccess.inc:84 +msgid "" +"This option allows you to disable the certificate check of your IMAP server " +"certificate. Disabling the certificate check is not recommended." +msgstr "Questa opzione ti permette di disabilitare il controllo del certificato del tuo server IMAP. Disabilitare il controllo del certificato non è raccomandato." + +#: ../lib/modules/sambaSamAccount.inc:340 +msgid "This option defines the allowed logon hours for this account." +msgstr "Questa opzione definisce le ore di logon permesse per questo account." + +#: ../lib/modules/sambaSamAccount.inc:343 +msgid "" +"This option defines the allowed logon hours for this account. The format is " +"the same as for the LDAP attribute. The 24*7 hours are represented as 168 " +"bit which are saved as 21 hex (21*8 = 168) values. The first bit represents " +"Sunday 0:00 - 0:59 in GMT." +msgstr "Questa opzione definisce le ore di logon permesse per questo account. Il formato è lo stesso dell'attributo LDAP. Le 24*7 ore sono rappresentate da 168 bit che vengono salvati con 21 cifre esadecimali (21*8 = 168). I primi bit rappresentano Domenica 0:00 - 0:59 GMT." + +#: ../lib/modules/asteriskExtension.inc:192 +msgid "This pair of extension name and priority already exists." +msgstr "Questa accoppiata di nome estensione e priorità esiste già." + +#: ../lib/modules/sambaSamAccount.inc:364 +msgid "This program is run after the login." +msgstr "Questo é il programma da eseguire dopo il login." + +#: ../lib/modules/sambaSamAccount.inc:388 +msgid "This specifies the reconnect policy." +msgstr "Questo indica la policy di riconnessione." + +#: ../lib/modules/zarafaDynamicGroup.inc:96 +#: ../lib/modules/zarafaContact.inc:107 ../lib/modules/zarafaGroup.inc:113 +#: ../lib/modules/zarafaAddressList.inc:84 ../lib/modules/zarafaUser.inc:172 +#: ../lib/modules/zarafaServer.inc:93 +msgid "" +"This specifies the used Zarafa LDAP schema. Select LDAP for e.g. OpenLDAP, " +"Apache Directory, OpenDJ and other non-Windows based LDAP servers. If you " +"run Zarafa against Samba 4 or Active Directory please select Active " +"Directory." +msgstr "Questo specifica lo schema LDAP Zarafa utilizzato. Selezionare LDAP per es. OpenLDAP, Apache Directory, OpenDJ ed altri server LDAP non-Windows. Se si esegue Zarafa con Samba 4 o Active Directory selezionare Active Directory." + +#: ../lib/modules/sambaSamAccount.inc:385 +msgid "This specifies what to do when the client connection is broken." +msgstr "Questo indica cosa fare quando la connessione del client viene interrotta." + +#: ../help/help.inc:227 +msgid "" +"This text is displayed on top of the self service login page. You can also " +"input HTML code here." +msgstr "Questo testo viene visualizzato in cima alla pagina di login fai-fa-te. È possibile inserire anche del codice HTML." + +#: ../help/help.inc:229 +msgid "" +"This text is displayed on top of the self service main page. You can also " +"input HTML code here." +msgstr "Questo testo viene visualizzato in cima alla pagina principale fai-fa-te. È possibile inserire anche del codice HTML." + +#: ../help/help.inc:239 +msgid "" +"This text is placed as label for the password field on the login page. LAM " +"will use \"Password\" if you do not enter any text." +msgstr "Questo testo è posto come etichetta per il campo password nella pagina di login. LAM userà \"Password\" se non si immetterà alcun testo." + +#: ../help/help.inc:225 +msgid "" +"This text should shortly describe your selected LDAP search attribute (e.g. " +"email or user name)." +msgstr "Questo testo dovrebbe descrivere brevemente gli attributi di ricerca LDAP selezionati (es. email o nome utente)." + +#: ../lib/modules/selfRegistration.inc:107 +#: ../lib/modules/passwordSelfReset.inc:157 +msgid "This text will be printed on top of the page." +msgstr "Questo testo sarà stampato in cima alla pagina." + +#: ../lib/modules/qmailUser.inc:240 +msgid "" +"This text will be sent as reply to all incoming mails if the delivery mode " +"is set to autoreply." +msgstr "Questo testo sarà inviato come risposta a tutte le email in arrivo se la modalità è impostata su risposta automatica." + +#: ../lib/tools/pdfEdit.inc:53 +msgid "This tool allows you to customize the PDF pages." +msgstr "Questo strumento vi permette di personalizzare le pagine PDF." + +#: ../templates/lists/changePassword.php:46 +#: ../templates/lists/changePassword.php:243 +msgid "This user is not supported or was not found." +msgstr "Questo utente non è supportato o non è stato trovato." + +#: ../lib/modules/windowsUser.inc:116 +msgid "This user name is only used for old Windows versions (e.g. NT4, W98)." +msgstr "Questo username è utilizzato solo nelle vecchie versioni di Windows (es. NT4, W98)." + +#: ../templates/lists/userlink.php:61 +msgid "This user was not found!" +msgstr "Questo utente non è stato trovato!" + +#: ../lib/modules/zarafaUser.inc:414 +msgid "This value can only be \"Room\" or \"Equipment\"." +msgstr "Questo valore può essere solo \"Stanza\" o \"Fornitura\"." + +#: ../lib/modules/zarafaDynamicGroup.inc:204 +#: ../lib/modules/zarafaDynamicGroup.inc:205 +#: ../lib/modules/zarafaContact.inc:189 ../lib/modules/zarafaContact.inc:190 +#: ../lib/modules/zarafaGroup.inc:219 ../lib/modules/zarafaGroup.inc:220 +#: ../lib/modules/zarafaGroup.inc:221 ../lib/modules/zarafaAddressList.inc:171 +#: ../lib/modules/zarafaAddressList.inc:172 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 ../lib/modules/posixAccount.inc:128 +#: ../lib/modules/zarafaUser.inc:421 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:424 ../lib/modules/zarafaUser.inc:425 +#: ../lib/modules/zarafaUser.inc:426 ../lib/modules/zarafaUser.inc:427 +#: ../lib/modules/ppolicyUser.inc:97 ../lib/modules/inetOrgPerson.inc:106 +#: ../lib/modules/zarafaServer.inc:179 +msgid "This value can only be \"true\" or \"false\"." +msgstr "Questo valore può essere solo \"vero\" o \"falso\"." + +#: ../lib/modules/zarafaUser.inc:422 +msgid "This value can only be \"true\", \"false\" or \"system\"." +msgstr "Questo valore può essere solo \"vero\", \"falso\" o \"sistema\"." + +#: ../lib/modules/posixGroup.inc:611 +msgid "This value must be a list of user names separated by semicolons." +msgstr "Questo valore deve essere una lista di nomi utente separati da punti e virgole." + +#: ../help/help.inc:264 +msgid "This will create a new organisational unit under the selected one." +msgstr "Crea una nuova unità organizzativa dentro quella selezionata." + +#: ../lib/modules/posixAccount.inc:482 +msgid "This will create the user's home directory on the specified server." +msgstr "Selezionando questa casella la home directory dell'utente verrà creata sul server specificato." + +#: ../help/help.inc:266 +msgid "" +"This will delete the selected organisational unit. The OU has to be empty." +msgstr "Cancella l'unità organizzativa selezionata. La OU deve essere vuota." + +#: ../help/help.inc:135 +msgid "This will delete the selected profile." +msgstr "Cancella il profilo selezionato " + +#: ../lib/modules/kolabGroup.inc:118 ../lib/modules/puppetClient.inc:109 +#: ../lib/modules/qmailUser.inc:264 ../lib/modules/zarafaContact.inc:88 +#: ../lib/modules/posixGroup.inc:538 ../lib/modules/eduPerson.inc:151 +#: ../lib/modules/pykotaGroup.inc:130 ../lib/modules/sambaSamAccount.inc:403 +#: ../lib/modules/posixAccount.inc:433 ../lib/modules/zarafaUser.inc:137 +#: ../lib/modules/pykotaUser.inc:161 ../lib/modules/shadowAccount.inc:198 +#: ../lib/modules/qmailGroup.inc:233 +#: ../lib/modules/authorizedServiceObject.inc:90 +#: ../lib/modules/passwordSelfReset.inc:153 ../lib/modules/hostObject.inc:84 +msgid "" +"This will enable the extension automatically if this profile is loaded." +msgstr "Questo abiliterà l'estensione automaticamente se questo profilo è caricato." + +#: ../lib/modules/customScripts.inc:93 +msgid "" +"This will hide the custom scripts tab when you edit an account. Manual " +"actions are not possible when the tab is not visible." +msgstr "Questo nasconderà il tab custom script quando si edita un account. Le operazioni manuali non sono possibili quando il tab non è visibile." + +#: ../lib/modules/sambaSamAccount.inc:265 +msgid "This will reset the host's password to a default value." +msgstr "Riporta la password del computer al valore predefinito." + +#: ../templates/lists/changePassword.php:311 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail." +msgstr "Selezionando questa casella verrà impostata una password casuale che sarà mostrata sullo schermo oppure inviata tramite mail all'utente." + +#: ../help/help.inc:245 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail. Please edit your LAM server profile to setup the mail " +"settings." +msgstr "Selezionando questa casella verrà impostata una password casuale che sarà mostrata sullo schermo oppure inviata tramite mail all'utente. Editate il profilo del server LAM per le impostazioni di posta elettronica." + +#: ../lib/modules/kolabGroup.inc:114 ../lib/modules/kolabUser.inc:179 +#: ../lib/modules/kolabSharedFolder.inc:167 +msgid "" +"This will set a special flag on the account which tells Kolabd to remove it." +" Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes)." +msgstr "Imposta un campo speciale sull'account per fare in modo che Kolabd lo cancelli. Utilizzarlo per cancellare completamente gli account Kolab (rimuove anche le caselle email)." + +#: ../lib/modules/qmailUser.inc:212 +msgid "" +"This will set the user's account status. You may disable the mail account " +"here." +msgstr "Questo imposterà lo stato dell'account. Qui è possibile disabilitare l'account email." + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Thursday" +msgstr "Giovedì" + +#: ../lib/modules/mitKerberos.inc:136 ../lib/modules/mitKerberos.inc:195 +#: ../lib/modules/mitKerberos.inc:230 ../lib/modules/mitKerberos.inc:254 +#: ../lib/modules/mitKerberos.inc:355 ../lib/modules/mitKerberos.inc:775 +#: ../lib/modules/heimdalKerberos.inc:110 +#: ../lib/modules/heimdalKerberos.inc:164 +#: ../lib/modules/heimdalKerberos.inc:199 +#: ../lib/modules/heimdalKerberos.inc:221 +#: ../lib/modules/heimdalKerberos.inc:302 +#: ../lib/modules/heimdalKerberos.inc:687 +msgid "Ticket lifetime" +msgstr "Durata del ticket" + +#: ../lib/modules/mitKerberos.inc:293 ../lib/modules/mitKerberos.inc:294 +#: ../lib/modules/heimdalKerberos.inc:257 +#: ../lib/modules/heimdalKerberos.inc:258 +msgid "Ticket lifetime must be a number." +msgstr "La durata del ticket deve essere un numero." + +#: ../lib/modules/sambaSamAccount.inc:1397 +msgid "Time" +msgstr "Ora" + +#: ../lib/modules/sambaSamAccount.inc:369 +msgid "Time limit" +msgstr "Limite di tempo" + +#: ../lib/modules/sambaSamAccount.inc:348 +#: ../lib/modules/sambaSamAccount.inc:579 +msgid "Time zone" +msgstr "Fuso orario" + +#: ../lib/modules/bindDLZ.inc:94 ../lib/modules/bindDLZ.inc:98 +#: ../lib/modules/bindDLZ.inc:103 ../lib/modules/bindDLZ.inc:108 +#: ../lib/modules/bindDLZ.inc:113 ../lib/modules/bindDLZ.inc:118 +#: ../lib/modules/bindDLZ.inc:123 ../lib/modules/bindDLZ.inc:254 +#: ../lib/modules/bindDLZ.inc:267 ../lib/modules/bindDLZ.inc:287 +#: ../lib/modules/bindDLZ.inc:300 ../lib/modules/bindDLZ.inc:331 +#: ../lib/modules/bindDLZ.inc:363 ../lib/modules/bindDLZ.inc:375 +#: ../lib/modules/bindDLZ.inc:402 ../lib/modules/bindDLZ.inc:423 +#: ../lib/modules/bindDLZ.inc:469 ../lib/modules/bindDLZ.inc:472 +#: ../lib/modules/bindDLZ.inc:474 ../lib/modules/bindDLZ.inc:476 +#: ../lib/modules/bindDLZ.inc:478 ../lib/modules/bindDLZ.inc:480 +#: ../lib/modules/bindDLZ.inc:482 ../lib/modules/bindDLZ.inc:484 +#: ../lib/modules/bindDLZ.inc:486 ../lib/modules/bindDLZ.inc:651 +#: ../lib/modules/bindDLZ.inc:754 ../lib/modules/bindDLZ.inc:833 +#: ../lib/modules/bindDLZ.inc:922 ../lib/modules/bindDLZ.inc:1034 +#: ../lib/modules/bindDLZ.inc:1166 ../lib/modules/bindDLZ.inc:1244 +#: ../lib/modules/bindDLZ.inc:1370 ../lib/modules/bindDLZ.inc:1473 +#: ../lib/modules/bindDLZ.inc:1493 ../lib/modules/bindDLZ.inc:1514 +#: ../lib/modules/bindDLZ.inc:1548 ../lib/modules/bindDLZ.inc:1573 +#: ../lib/modules/bindDLZ.inc:1603 +msgid "Timeout" +msgstr "Timeout" + +#: ../lib/modules/bindDLZ.inc:430 +msgid "Timeouts" +msgstr "Timeouts" + +#: ../lib/modules/pykotaUser.inc:654 ../lib/modules/pykotaUser.inc:1003 +msgid "Title" +msgstr "Titolo" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:45 +msgid "To" +msgstr "A" + +#: ../lib/modules/posixAccount.inc:531 +msgid "To disable login use /bin/false." +msgstr "Per disabilitare un utente utilizzare /bin/false." + +#: ../lib/modules/sambaSamAccount.inc:573 +msgid "Tokyo, Seoul, Osaka, Yakutsk" +msgstr "Tokyo, Seoul, Osaka, Yakutsk" + +#: ../templates/config/confmain.php:406 +msgid "Tool settings" +msgstr "Impostazioni strumenti" + +#: ../templates/tools.php:63 ../templates/main_header.php:147 +msgid "Tools" +msgstr "Strumenti" + +#: ../templates/serverInfo.php:357 +msgid "Total" +msgstr "Totale" + +#: ../templates/serverInfo.php:242 ../templates/serverInfo.php:247 +msgid "Total connections" +msgstr "Connessioni totali" + +#: ../templates/3rdParty/pla/lib/export_functions.php:202 +msgid "Total entries" +msgstr "Numero totale di valori" + +#: ../lib/modules/pykotaUser.inc:141 +msgid "Total money paid by the user." +msgstr "Cifra totale dei pagamenti dell'utente." + +#: ../lib/modules/pykotaUser.inc:140 ../lib/modules/pykotaUser.inc:264 +#: ../lib/modules/pykotaUser.inc:586 ../lib/modules/pykotaUser.inc:901 +#: ../lib/modules/pykotaUser.inc:954 +msgid "Total paid" +msgstr "Totale pagato" + +#: ../lib/modules/pykotaUser.inc:282 +msgid "Total paid (read-only)" +msgstr "Totale pagato (sola-lettura)" + +#: ../lib/types/user.inc:682 +msgid "Translate GID number to group name" +msgstr "Traduci i GID in nomi di gruppo" + +#: ../templates/config/confmain.php:247 ../help/help.inc:77 +msgid "Tree suffix" +msgstr "Suffisso dell'albero" + +#: ../templates/multiEdit.php:92 ../templates/main_header.php:178 +msgid "Tree view" +msgstr "Vista ad albero" + +#: ../templates/config/confmain.php:567 +msgid "TreeSuffix is invalid!" +msgstr "Il suffisso dell'albero non è valido!" + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Tuesday" +msgstr "Martedì" + +#: ../templates/multiEdit.php:118 ../templates/selfService/profManage.php:206 +#: ../templates/schema/schema.php:348 ../lib/modules/zarafaUser.inc:116 +#: ../lib/modules/zarafaUser.inc:238 ../lib/modules/zarafaUser.inc:361 +#: ../lib/modules/zarafaUser.inc:535 ../lib/modules/zarafaUser.inc:1251 +#: ../lib/modules/zarafaUser.inc:1797 ../lib/modules/kolabSharedFolder.inc:162 +#: ../lib/modules/kolabSharedFolder.inc:201 +#: ../lib/modules/kolabSharedFolder.inc:241 +#: ../lib/modules/kolabSharedFolder.inc:302 +#: ../lib/modules/kolabSharedFolder.inc:571 +#: ../lib/modules/customFields.inc:100 ../lib/modules/customFields.inc:1070 +#: ../lib/modules/customFields.inc:1702 +msgid "Type" +msgstr "Tipo" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:210 ../lib/modules/posixAccount.inc:228 +#: ../lib/modules/posixAccount.inc:497 +msgid "UID generator" +msgstr "Generatore di UID" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID has changed. Do you want to change home directory?" +msgstr "L'UID è cambiato. Volete cambiare la home directory?" + +#: ../lib/modules/posixAccount.inc:107 +msgid "" +"UID must be a number. It has to be inside the UID range which is defined in " +"your configuration profile." +msgstr "L'UID deve essere un numero. Deve essere nell'intervallo di UID che è definito nel vostro profilo di configurazione." + +#: ../lib/types/host.inc:95 ../lib/types/user.inc:92 +#: ../lib/modules/qmailUser.inc:112 ../lib/modules/qmailUser.inc:231 +#: ../lib/modules/qmailUser.inc:332 ../lib/modules/qmailUser.inc:418 +#: ../lib/modules/qmailUser.inc:570 ../lib/modules/qmailUser.inc:1142 +#: ../lib/modules/posixAccount.inc:108 ../lib/modules/posixAccount.inc:291 +#: ../lib/modules/posixAccount.inc:383 ../lib/modules/posixAccount.inc:412 +#: ../lib/modules/posixAccount.inc:449 ../lib/modules/posixAccount.inc:453 +#: ../lib/modules/posixAccount.inc:461 ../lib/modules/posixAccount.inc:1433 +#: ../lib/modules/posixAccount.inc:1852 +msgid "UID number" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:108 +#, php-format +msgid "" +"UID number has changed. To keep file ownership you have to run the following" +" command as root: 'find / -uid %s -exec chown %s {} \\;'" +msgstr "L'UID è cambiato. Per mantenere la proprietà dei file dovete eseguire il seguente comando come root: 'find / -uid %s -exec chown %s {} \\;'" + +#: ../lib/modules/qmailUser.inc:463 +msgid "UID number is already in use." +msgstr "Il numero di UID è già utilizzato." + +#: ../lib/modules/posixAccount.inc:99 +msgid "UID ranges for Unix accounts" +msgstr "Intervalli di UID per gli account Unix" + +#: ../lib/modules/sambaSamAccount.inc:306 +msgid "" +"UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced" +" with user and group name." +msgstr "Percorso UNC (\\\\server\\share) della home directory. $user e $group vengono sostituiti dal nome utente e gruppo." + +#: ../lib/modules/windowsUser.inc:248 +msgid "" +"UNC-path (\\\\server\\share\\) of home directory. If no home drive is set " +"then this directory must start with a drive letter (e.g. \"c:\\dir\\user\")." +msgstr "UNC-path (\\\\server\\share\\) della home directory. Se non è impostato un disco home allora questa directory deve cominciare con una lettera disco (es. \"c:\\dir\\user\")." + +#: ../lib/modules/eduPerson.inc:119 ../lib/modules/eduPerson.inc:123 +msgid "" +"URI (either URN or URL) that indicates a set of rights to specific " +"resources." +msgstr "L'URI (l'URN o l'URL) che indica l'insieme di diritti per determinate risorse." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1883 +msgid "URL" +msgstr "URL" + +#: ../lib/modules/bindDLZ.inc:1687 ../lib/modules/bindDLZ.inc:2302 +msgid "Unable to add DNS record." +msgstr "Impossibile aggiungere record DNS." + +#: ../lib/modules/imapAccess.inc:180 +msgid "Unable to change ACL on IMAP server for mailbox deletion." +msgstr "Impossibile cambiare ACL sul server IMAP per la cancellazione della mailbox." + +#: ../lib/modules/mitKerberos.inc:1155 ../lib/modules/mitKerberos.inc:1159 +#: ../lib/modules/heimdalKerberos.inc:1024 +msgid "Unable to change Kerberos password." +msgstr "Impossibile cambiare la password kerberos." + +#: ../lib/modules/windowsUser.inc:1847 ../lib/modules/windowsUser.inc:1873 +msgid "Unable to change password." +msgstr "Impossibile cambiare la password." + +#: ../templates/selfService/selfServiceMain.php:338 +msgid "" +"Unable to change your account. Maybe you do not have enough rights to change" +" the settings." +msgstr "Impossibile modificare il vostro account. Potreste non avere privilegi sufficienti per cambiare questa impostazione." + +#: ../templates/selfService/selfServiceMain.php:335 +msgid "" +"Unable to change your account. Your changes might violate the password " +"policy." +msgstr "Impossibile cambiare l'account. I cambiamenti potrebbero violare la politica sulla password." + +#: ../templates/tests/lamdaemonTest.php:261 ../lib/lamdaemon.inc:76 +#: ../lib/lamdaemon.inc:81 +msgid "Unable to connect to remote server!" +msgstr "Impossibile connettersi al server remoto!" + +#: ../templates/massDoUpload.php:193 +msgid "Unable to create ZIP file for PDF export." +msgstr "Impossibile creare file ZIP per l'esportazione PDF." + +#: ../lib/modules/selfRegistration.inc:699 +#: ../lib/modules/selfRegistration.inc:703 +msgid "Unable to create account." +msgstr "Impossibile creare l'account." + +#: ../lib/modules/imapAccess.inc:182 +msgid "Unable to create mailbox on IMAP server." +msgstr "Impossibile creare la mailbox sul server IMAP." + +#: ../templates/ou_edit.php:80 +msgid "Unable to create new OU!" +msgstr "Non è stato possibile creare la nuova OU!" + +#: ../lib/types/automountType.inc:270 +msgid "Unable to create new automount map." +msgstr "Impossibile creare la nuova mappa di automount." + +#: ../templates/config/profmanage.php:82 +#: ../templates/selfService/profManage.php:59 +msgid "Unable to create new profile!" +msgstr "Non è stato possibile creare il nuovo profilo!" + +#: ../lib/types/bind.inc:215 +msgid "Unable to create new zone." +msgstr "Impossibile creare la nuova zona." + +#: ../lib/modules/bindDLZ.inc:1677 +#, php-format +msgid "Unable to delete DNS record \"%s\"." +msgstr "Impossibile eliminare il record DNS \"%s\"." + +#: ../templates/ou_edit.php:97 +msgid "Unable to delete OU!" +msgstr "Non è stato possibile cancellare la OU!" + +#: ../templates/pdfedit/pdfmain.php:94 +msgid "Unable to delete PDF structure!" +msgstr "Non è stato possibile cancellare la struttura PDF!" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:25 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:57 +msgid "Unable to delete entry, it does not exist" +msgstr "Impossibile cancellare l'oggetto, non esiste" + +#: ../lib/pdfstruct.inc:291 ../lib/pdfstruct.inc:303 +msgid "Unable to delete logo file." +msgstr "Impossibile eliminare il file del logo." + +#: ../lib/modules/imapAccess.inc:181 +msgid "Unable to delete mailbox from IMAP server." +msgstr "Impossibile cancellare la mailbox sul server IMAP." + +#: ../templates/config/profmanage.php:123 +#: ../templates/selfService/profManage.php:87 +#: ../templates/profedit/profilemain.php:108 ../lib/config.inc:154 +#: ../lib/config.inc:166 ../lib/config.inc:173 ../lib/config.inc:181 +msgid "Unable to delete profile!" +msgstr "Non è stato possibile cancellare il profilo!" + +#: ../lib/modules/pykotaPrinter.inc:220 +#, php-format +msgid "Unable to find a printer with name \"%s\"." +msgstr "Impossibile trovare una stampante con il nome \"%s\"." + +#: ../lib/modules/posixAccount.inc:2072 ../lib/modules/posixAccount.inc:2081 +#: ../lib/modules/posixAccount.inc:2347 ../lib/modules/nisnetgroup.inc:543 +#: ../lib/modules/groupOfNamesUser.inc:388 +msgid "Unable to find group in LDAP." +msgstr "Non è stato possibile trovare il gruppo in LDAP." + +#: ../lib/modules/passwordSelfReset.inc:950 +msgid "Unable to find password security answer for this account." +msgstr "Impossibile trovare la risposta alla domanda di sicurezza della password per questo account." + +#: ../lib/modules/passwordSelfReset.inc:942 +#: ../lib/modules/passwordSelfReset.inc:1161 +msgid "Unable to find password security question for this account." +msgstr "Impossibile trovare una domanda di sicurezza per la password di questo account." + +#: ../lib/modules/organizationalRoleUser.inc:334 +msgid "Unable to find role in LDAP." +msgstr "Impossibile individuare il ruolo in LDAP." + +#: ../templates/login.php:591 ../templates/login.php:597 +msgid "Unable to find the user name in LDAP." +msgstr "Non è stato possibile trovare l'utente in LDAP." + +#: ../lib/modules/passwordSelfReset.inc:933 +#: ../lib/modules/passwordSelfReset.inc:1242 +msgid "Unable to find user account." +msgstr "Impossibile trovare l'account utente." + +#: ../templates/config/mainmanage.php:194 +msgid "Unable to import server certificate. Please use the upload function." +msgstr "Impossibile importare certificato server. Utilizzare la funzione upload." + +#: ../lib/modules.inc:1521 ../lib/modules.inc:1525 +msgid "Unable to load LDAP entry:" +msgstr "Non è stato possibile caricare i valori LDAP:" + +#: ../lib/profiles.inc:98 ../lib/profiles.inc:102 ../lib/selfService.inc:196 +#: ../lib/selfService.inc:200 +msgid "Unable to load profile!" +msgstr "Non è stato possibile caricare il profilo!" + +#: ../lib/modules/imapAccess.inc:183 +msgid "Unable to locate mailbox on IMAP." +msgstr "Impossibile individuare la mailbox su IMAP." + +#: ../lib/modules/inetOrgPerson.inc:101 +msgid "Unable to process this file." +msgstr "Impossibile processare questo file." + +#: ../templates/3rdParty/pla/lib/import_functions.php:388 +#: ../templates/3rdParty/pla/lib/import_functions.php:393 +msgid "Unable to read file." +msgstr "Impossibile leggere il file." + +#: ../lib/modules/selfRegistration.inc:692 +msgid "Unable to register your new account. Please try again." +msgstr "Impossibile registrare il nuovo account. Riprovare." + +#: ../lib/modules/passwordSelfReset.inc:1440 +#: ../lib/modules/passwordSelfReset.inc:1449 +#: ../lib/modules/passwordSelfReset.inc:1455 +#: ../lib/modules/passwordSelfReset.inc:1464 +msgid "Unable to reset password." +msgstr "Impossibile resettare la password." + +#: ../templates/3rdParty/pla/lib/functions.php:1945 +msgid "Unable to retrieve image" +msgstr "Impossibile recuperare l'immagine" + +#: ../templates/tests/schemaTest.php:61 ../templates/schema/schema.php:93 +#: ../templates/schema/schema.php:111 ../templates/schema/schema.php:272 +#: ../templates/schema/schema.php:306 +msgid "Unable to retrieve schema!" +msgstr "Non è stato possibile leggere lo schema!" + +#: ../templates/selfService/adminMain.php:283 +#: ../templates/profedit/profilepage.php:124 +msgid "Unable to save profile!" +msgstr "Non è stato possibile salvare il profilo!" + +#: ../lib/account.inc:999 ../lib/account.inc:1037 +msgid "Unable to send mail!" +msgstr "Non è stato possibile inviare la mail!" + +#: ../lib/modules/bindDLZ.inc:1712 +#, php-format +msgid "Unable to update DNS record \"%s\"." +msgstr "Impossibile aggiornare il record DNS \"%s\"." + +#: ../lib/pdfstruct.inc:249 ../lib/pdfstruct.inc:259 ../lib/pdfstruct.inc:262 +msgid "Unable to upload logo file." +msgstr "Impossibile eseguire l'upload del file di logo." + +#: ../lib/modules/passwordSelfReset.inc:999 +#: ../lib/modules/passwordSelfReset.inc:1254 +msgid "Unable to verify your password reset request. Please try again." +msgstr "Impossibile verificare la tua richiesta di reset della password. Prova di nuovo." + +#: ../lib/modules/selfRegistration.inc:726 +msgid "Unable to verify your user creation request. Please try again." +msgstr "Impossibile verificare la richiesta di creazione utente. Prova di nuovo." + +#: ../templates/serverInfo.php:293 +msgid "Unbind" +msgstr "Disconnettere" + +#: ../lib/modules/windowsGroup.inc:66 +msgid "Universal" +msgstr "Universale" + +#: ../templates/lists/changePassword.php:398 +#: ../templates/lists/changePassword.php:429 ../lib/types/user.inc:268 +#: ../lib/types/user.inc:368 ../lib/types/user.inc:400 +#: ../lib/types/user.inc:821 ../lib/modules/posixGroup.inc:373 +#: ../lib/modules/posixAccount.inc:168 +msgid "Unix" +msgstr "Unix" + +#: ../templates/tests/lamdaemonTest.php:214 +msgid "Unix account" +msgstr "Account unix" + +#: ../lib/modules/posixAccount.inc:263 ../lib/modules/posixAccount.inc:1566 +msgid "Unix groups" +msgstr "Gruppi unix" + +#: ../lib/modules/dhcp_settings.inc:201 ../lib/modules/dhcp_settings.inc:218 +#: ../lib/modules/dhcp_settings.inc:294 ../lib/modules/dhcp_settings.inc:602 +#: ../lib/modules/dhcp_settings.inc:682 +msgid "Unknown clients" +msgstr "Client sconosciuto" + +#: ../lib/modules/kolabUser.inc:252 ../lib/modules/kolabSharedFolder.inc:256 +#, php-format +msgid "Unknown delegate address: %s" +msgstr "Indirizzo delegato sconosciuto: %s" + +#: ../templates/3rdParty/pla/lib/import_functions.php:233 +msgid "Unkown change type" +msgstr "Tipo di cambiamento sconosciuto" + +#: ../lib/types/user.inc:349 ../lib/types/user.inc:354 +#: ../lib/modules/windowsUser.inc:732 +msgid "Unlock" +msgstr "Sblocca" + +#: ../templates/lists/changePassword.php:205 +#: ../templates/lists/changePassword.php:395 +#: ../templates/lists/changePassword.php:415 +#: ../templates/lists/changePassword.php:417 +#: ../lib/modules/ppolicyUser.inc:146 +msgid "Unlock account" +msgstr "Sblocca l'account" + +#: ../templates/lists/changePassword.php:265 +msgid "Unlock account?" +msgstr "Sblocca l'account" + +#: ../lib/modules/posixGroup.inc:211 ../lib/modules/posixAccount.inc:1502 +#: ../lib/modules/inetOrgPerson.inc:1562 +msgid "Unlock password" +msgstr "Sblocca la password" + +#: ../templates/masscreate.php:107 ../templates/config/confmodules.php:386 +msgid "Unsolved dependency:" +msgstr "Dipendenza irrisolta:" + +#: ../templates/pdfedit/pdfpage.php:473 +msgid "Up" +msgstr "Sù" + +#: ../templates/lists/changePassword.php:220 +msgid "Update Samba password timestamp" +msgstr "Aggiorna il timestamp della password Samba" + +#: ../lib/modules/sambaSamAccount.inc:249 +msgid "Update attribute \"sambaPwdLastSet\" on password change" +msgstr "Aggiorna l'attributo \"sambaPwdLastSet\" quando la password viene cambiata" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1440 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:194 +msgid "Update object" +msgstr "Aggiorna oggetto" + +#: ../lib/modules/imapAccess.inc:322 ../lib/modules/imapAccess.inc:331 +msgid "Update quota" +msgstr "Aggiorna quota" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:165 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:129 +msgid "Update values" +msgstr "Aggiorna valori" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:118 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:118 +msgid "Updating object" +msgstr "Aggiornamento oggetto" + +#: ../templates/config/mainmanage.php:334 ../templates/pdfedit/pdfmain.php:247 +#: ../lib/modules/ldapPublicKey.inc:126 ../lib/modules/inetOrgPerson.inc:1830 +msgid "Upload" +msgstr "Carica" + +#: ../templates/config/mainmanage.php:336 +msgid "Upload CA certificate in DER/PEM format." +msgstr "Upload certificato CA in formato DER/PEM." + +#: ../lib/modules/ldapPublicKey.inc:81 +msgid "Upload a file with one or more keys. Each line contains one key." +msgstr "Esegui l'upload di un file o più chiavi. Ciascuna linea contiene una chiave." + +#: ../templates/massBuildAccounts.php:242 +msgid "Upload accounts to LDAP" +msgstr "Carica gli account su LDAP" + +#: ../lib/modules/ldapPublicKey.inc:122 ../lib/modules/customFields.inc:164 +#: ../lib/modules/customFields.inc:3428 +msgid "Upload file" +msgstr "Upload file" + +#: ../templates/masscreate.php:277 +msgid "Upload file and create accounts" +msgstr "Carica il file e crea gli account" + +#: ../templates/massDoUpload.php:254 ../lib/lists.inc:1071 +msgid "Upload has finished" +msgstr "Il caricamento è terminato" + +#: ../lib/modules.inc:504 +#, php-format +msgid "Upload was stopped after errors in %s module!" +msgstr "Il caricamento è stato fermato dopo che si sono verificati degli errori nel modulo %s!" + +#: ../lib/pdfstruct.inc:256 +msgid "Uploaded logo file." +msgstr "File di logo inviato." + +#: ../templates/serverInfo.php:222 +msgid "Uptime" +msgstr "Uptime" + +#: ../templates/schema/schema.php:209 +msgid "Usage" +msgstr "Uso" + +#: ../lib/modules/authorizedServiceObject.inc:82 +#: ../lib/modules/authorizedServiceObject.inc:86 +msgid "Use * for all services." +msgstr "Usare * per tutti i servizi." + +#: ../lib/modules/sambaSamAccount.inc:267 +#: ../lib/modules/sambaSamAccount.inc:270 +#: ../lib/modules/sambaSamAccount.inc:431 +msgid "Use Unix password" +msgstr "Utilizza la password Unix" + +#: ../templates/selfService/adminMain.php:469 ../help/help.inc:242 +msgid "Use for all operations" +msgstr "Usare per tutte le operazioni" + +#: ../lib/modules/sambaSamAccount.inc:273 +#: ../lib/modules/sambaSamAccount.inc:276 +#: ../lib/modules/sambaSamAccount.inc:439 +#: ../lib/modules/sambaSamAccount.inc:1143 +#: ../lib/modules/sambaSamAccount.inc:1733 +msgid "Use no password" +msgstr "Non utilizzare nessuna password" + +#: ../help/help.inc:272 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce" +" the number of entries to modify." +msgstr "Usa questo per immettere un filtro LDAP aggiuntivo (es. \"(cn!=admin)\") per ridurre il numero di voci da modificare." + +#: ../help/help.inc:171 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce" +" the number of visible elements for this account type." +msgstr "Usa questo per inserire un filtro LDAP aggiuntivo (es. \"(cn!=admin)\") per ridurre il numero degli elementi visibili per questo tipo di account." + +#: ../help/help.inc:241 +msgid "" +"Use this to enter an additional LDAP filter (e.g. " +"\"(objectClass=passwordSelfReset)\") to reduce the number of accounts who " +"may use self service." +msgstr "Usa questo per immettere un filtro LDAP aggiuntivo (es. \"(objectClass=passwordSelfReset)\") per ridurre il numero di account che possono utilizzare il servizio self service." + +#: ../lib/modules/asteriskAccount.inc:188 +msgid "Use this to hide the caller ID." +msgstr "Usate questo per nascondere l'ID del chiamante." + +#: ../lib/modules/zarafaDynamicGroup.inc:80 +#: ../lib/modules/zarafaContact.inc:72 ../lib/modules/zarafaGroup.inc:86 +#: ../lib/modules/zarafaAddressList.inc:68 ../lib/modules/zarafaUser.inc:81 +msgid "Use this to hide this entry from the address book." +msgstr "Usate questo per nascondere questa voce dall'agenda." + +#: ../lib/modules/sambaGroupMapping.inc:167 +msgid "" +"Use this to specify other groups or accounts from other domains as group " +"members." +msgstr "Usa questo per specificare altri gruppi o account da altri domini come membri del gruppo." + +#: ../lib/modules/imapAccess.inc:87 +msgid "" +"Use wildcards like $uid$ for LDAP attributes of the current LAM admin user." +msgstr "Utilizzare wildcards come $uid$ per gli attributi LDAP dell'amministratore LAM corrente." + +#: ../lib/modules/pykotaBillingCode.inc:86 +msgid "Used balance for the billing code." +msgstr "Bilancio usato per il codice di pagamento." + +#: ../lib/modules/quota.inc:109 ../lib/modules/quota.inc:400 +msgid "Used blocks" +msgstr "Blocchi utilizzati" + +#: ../lib/modules/quota.inc:110 +msgid "Used blocks. 1000 blocks are usually 1MB" +msgstr "Blocchi utilizzati. 1000 blocchi di solito sono 1MB" + +#: ../templates/schema/schema.php:268 +msgid "Used by attributes" +msgstr "Utilizzato dagli attributi" + +#: ../templates/schema/schema.php:237 +msgid "Used by object classes" +msgstr "Utilizzato dalle classi oggetto" + +#: ../lib/modules/sambaDomain.inc:98 +msgid "Used for calculating RIDs from UID/GID. Do not change if unsure." +msgstr "Utilizzato per calcolare i RID a partire dagli UID/GID. Non modificare se non si è sicuri del significato." + +#: ../lib/modules/asteriskAccount.inc:220 +msgid "Used for registration context." +msgstr "Usato per il contesto di registrazione." + +#: ../lib/modules/quota.inc:131 ../lib/modules/quota.inc:404 +msgid "Used inodes" +msgstr "inode utilizzati" + +#: ../lib/modules/quota.inc:132 +msgid "Used inodes (files)" +msgstr "inode utilizzati (file)" + +#: ../lib/modules/asteriskAccount.inc:192 +msgid "Used to automatically hangup the call if no RTP traffic is received." +msgstr "Usato per chiudere automaticamente la chiamata se non si riceve traffico RTP." + +#: ../lib/modules/asteriskAccount.inc:168 +#: ../lib/modules/asteriskAccount.inc:172 +msgid "" +"Used to limit SIP traffic to and from this peer to a certain IP or network." +msgstr "Usato per limitare il traffico SIP da e per questo peer verso certe reti o IP." + +#: ../lib/modules/asteriskAccount.inc:184 +msgid "Used to regularly check that a device is still online." +msgstr "Usato per controllare regolarmente che un dispositivo sia in linea." + +#: ../lib/types/sudo.inc:78 ../lib/modules/nisnetgroup.inc:220 +#: ../lib/modules/nisnetgroup.inc:586 ../lib/modules/nisMailAlias.inc:350 +msgid "User" +msgstr "Utente" + +#: ../lib/types/user.inc:62 +msgid "User accounts (e.g. Unix, Samba and Kolab)" +msgstr "Account utente (es. Unix, Samba e Kolab)" + +#: ../lib/modules/asteriskAccount.inc:127 +#: ../lib/modules/asteriskAccount.inc:270 +#: ../lib/modules/asteriskAccount.inc:340 +#: ../lib/modules/asteriskAccount.inc:598 +#: ../lib/modules/asteriskAccount.inc:986 +#: ../lib/modules/asteriskAccount.inc:1241 +msgid "User agent" +msgstr "User agent" + +#: ../lib/modules/sambaSamAccount.inc:297 +#: ../lib/modules/sambaSamAccount.inc:1167 +msgid "User can change password" +msgstr "L'utente può cambiare la sua password" + +#: ../lib/modules/inetOrgPerson.inc:163 ../lib/modules/inetOrgPerson.inc:844 +#: ../lib/modules/inetOrgPerson.inc:1507 ../lib/modules/inetOrgPerson.inc:2719 +#: ../lib/modules/inetOrgPerson.inc:3561 +msgid "User certificates" +msgstr "Certificati utente" + +#: ../lib/types/user.inc:529 +#, php-format +msgid "User count: %s" +msgstr "Conteggio utenti: %s" + +#: ../lib/modules/pykotaUser.inc:121 +msgid "User description." +msgstr "Descrizione utente." + +#: ../lib/modules/posixAccount.inc:511 +msgid "User description. If left empty first and last name will be used." +msgstr "Descrizione dell'utente. Se lasciata vuota saranno utilizzati il nome e il cognome." + +#: ../lib/modules/inetOrgPerson.inc:633 +msgid "User description. If left empty sur- and give name will be used." +msgstr "Descrizione dell'utente. Se lasciata vuota saranno utilizzati il cognome e il nome." + +#: ../lib/modules/account.inc:106 +msgid "User description. If left empty user name will be used." +msgstr "Descrizione dell'utente. Se lasciata vuota sarà utilizzato il nome del dell'utente." + +#: ../templates/schema/schema.php:204 +msgid "User modification" +msgstr "Modifiche all'utente" + +#: ../lib/modules/mitKerberos.inc:224 ../lib/modules/mitKerberos.inc:250 +#: ../lib/modules/mitKerberos.inc:374 ../lib/modules/mitKerberos.inc:639 +#: ../lib/modules/mitKerberos.inc:779 ../lib/modules/sambaSamAccount.inc:299 +#: ../lib/modules/sambaSamAccount.inc:1173 ../lib/modules/windowsUser.inc:741 +#: ../lib/modules/heimdalKerberos.inc:106 +#: ../lib/modules/heimdalKerberos.inc:193 +#: ../lib/modules/heimdalKerberos.inc:220 +#: ../lib/modules/heimdalKerberos.inc:332 +#: ../lib/modules/heimdalKerberos.inc:549 +#: ../lib/modules/heimdalKerberos.inc:683 +msgid "User must change password" +msgstr "L'utente deve cambiare la sua password" + +#: ../templates/lists/changePassword.php:276 ../templates/login.php:334 +#: ../lib/types/alias.inc:91 ../lib/types/user.inc:91 +#: ../lib/selfService.inc:385 ../lib/modules/mitKerberos.inc:116 +#: ../lib/modules/mitKerberos.inc:211 ../lib/modules/mitKerberos.inc:249 +#: ../lib/modules/mitKerberos.inc:343 ../lib/modules/mitKerberos.inc:766 +#: ../lib/modules/selfRegistration.inc:393 +#: ../lib/modules/selfRegistration.inc:467 +#: ../lib/modules/selfRegistration.inc:475 ../lib/modules/account.inc:85 +#: ../lib/modules/account.inc:101 ../lib/modules/account.inc:124 +#: ../lib/modules/account.inc:126 ../lib/modules/account.inc:127 +#: ../lib/modules/account.inc:210 ../lib/modules/account.inc:230 +#: ../lib/modules/account.inc:254 ../lib/modules/uidObject.inc:45 +#: ../lib/modules/uidObject.inc:67 ../lib/modules/uidObject.inc:76 +#: ../lib/modules/uidObject.inc:85 ../lib/modules/uidObject.inc:100 +#: ../lib/modules/uidObject.inc:161 ../lib/modules/posixAccount.inc:113 +#: ../lib/modules/posixAccount.inc:114 ../lib/modules/posixAccount.inc:117 +#: ../lib/modules/posixAccount.inc:283 ../lib/modules/posixAccount.inc:409 +#: ../lib/modules/posixAccount.inc:506 ../lib/modules/posixAccount.inc:1420 +#: ../lib/modules/posixAccount.inc:1842 ../lib/modules/windowsUser.inc:107 +#: ../lib/modules/windowsUser.inc:264 ../lib/modules/windowsUser.inc:498 +#: ../lib/modules/windowsUser.inc:589 ../lib/modules/windowsUser.inc:689 +#: ../lib/modules/windowsUser.inc:1585 ../lib/modules/pykotaUser.inc:112 +#: ../lib/modules/pykotaUser.inc:208 ../lib/modules/pykotaUser.inc:268 +#: ../lib/modules/pykotaUser.inc:311 ../lib/modules/pykotaUser.inc:313 +#: ../lib/modules/pykotaUser.inc:340 ../lib/modules/pykotaUser.inc:889 +#: ../lib/modules/nisnetgroup.inc:152 ../lib/modules/nisnetgroup.inc:482 +#: ../lib/modules/inetOrgPerson.inc:95 ../lib/modules/inetOrgPerson.inc:163 +#: ../lib/modules/inetOrgPerson.inc:624 ../lib/modules/inetOrgPerson.inc:744 +#: ../lib/modules/inetOrgPerson.inc:1161 ../lib/modules/inetOrgPerson.inc:1164 +#: ../lib/modules/inetOrgPerson.inc:1908 ../lib/modules/inetOrgPerson.inc:2043 +#: ../lib/modules/inetOrgPerson.inc:2777 ../lib/modules/inetOrgPerson.inc:3569 +#: ../lib/modules/inetOrgPerson.inc:3594 +#: ../lib/modules/passwordSelfReset.inc:499 +#: ../lib/modules/passwordSelfReset.inc:843 +#: ../lib/modules/passwordSelfReset.inc:1015 +#: ../lib/modules/heimdalKerberos.inc:94 +#: ../lib/modules/heimdalKerberos.inc:180 +#: ../lib/modules/heimdalKerberos.inc:218 +#: ../lib/modules/heimdalKerberos.inc:293 +#: ../lib/modules/heimdalKerberos.inc:676 +msgid "User name" +msgstr "Nome utente" + +#: ../lib/modules/windowsUser.inc:115 ../lib/modules/windowsUser.inc:449 +#: ../lib/modules/windowsUser.inc:529 ../lib/modules/windowsUser.inc:565 +#: ../lib/modules/windowsUser.inc:593 ../lib/modules/windowsUser.inc:698 +#: ../lib/modules/windowsUser.inc:1587 +msgid "User name (pre W2K)" +msgstr "Nome utente (pre W2K)" + +#: ../lib/modules/selfRegistration.inc:475 ../lib/modules/posixAccount.inc:121 +#: ../lib/modules/pykotaUser.inc:313 ../lib/modules/pykotaUser.inc:314 +#: ../lib/modules/pykotaUser.inc:317 ../lib/modules/pykotaUser.inc:318 +#: ../lib/modules/inetOrgPerson.inc:97 +msgid "User name already exists!" +msgstr "Il nome utente esiste già!" + +#: ../lib/modules/passwordSelfReset.inc:501 +msgid "User name and email address" +msgstr "User name ed indirizzo email" + +#: ../lib/modules/imapAccess.inc:103 ../lib/modules/imapAccess.inc:144 +msgid "User name attribute" +msgstr "Attributo nome utente" + +#: ../lib/modules/mitKerberos.inc:289 ../lib/modules/mitKerberos.inc:290 +#: ../lib/modules/selfRegistration.inc:467 ../lib/modules/account.inc:124 +#: ../lib/modules/account.inc:125 ../lib/modules/account.inc:127 +#: ../lib/modules/zarafaContact.inc:187 ../lib/modules/zarafaContact.inc:188 +#: ../lib/modules/uidObject.inc:85 ../lib/modules/zarafaGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:223 ../lib/modules/posixAccount.inc:114 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/zarafaUser.inc:419 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/windowsUser.inc:589 +#: ../lib/modules/windowsUser.inc:590 ../lib/modules/windowsUser.inc:593 +#: ../lib/modules/windowsUser.inc:594 ../lib/modules/pykotaUser.inc:311 +#: ../lib/modules/pykotaUser.inc:312 ../lib/modules/pykotaUser.inc:315 +#: ../lib/modules/pykotaUser.inc:316 ../lib/modules/nisnetgroup.inc:152 +#: ../lib/modules/inetOrgPerson.inc:95 ../lib/modules/inetOrgPerson.inc:96 +#: ../lib/modules/passwordSelfReset.inc:893 +#: ../lib/modules/passwordSelfReset.inc:1115 +#: ../lib/modules/heimdalKerberos.inc:253 +#: ../lib/modules/heimdalKerberos.inc:254 +msgid "" +"User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "Il nome utente contiene dei caratteri non validi. I caratteri validi sono: a-z, A-Z, 0-9 e .-_ !" + +#: ../lib/modules/windowsUser.inc:253 +msgid "User name for NIS." +msgstr "Nome utente per NIS." + +#: ../lib/modules/posixAccount.inc:117 +msgid "User name in use. Selected next free user name." +msgstr "Nome utente già utilizzato. Selezionato il prossimo nome utente libero." + +#: ../lib/modules/mitKerberos.inc:117 ../lib/modules/account.inc:102 +#: ../lib/modules/pykotaUser.inc:113 ../lib/modules/inetOrgPerson.inc:745 +#: ../lib/modules/heimdalKerberos.inc:95 +msgid "" +"User name of the user who should be created. Valid characters are: " +"a-z,A-Z,0-9, @.-_." +msgstr "Nome utente dell'utente che deve essere creato. I caratteri validi sono: a-z,A-Z,0-9, @.-_." + +#: ../lib/modules/posixAccount.inc:507 +msgid "" +"User name of the user who should be created. Valid characters are: " +"a-z,A-Z,0-9, @.-_. If user name is already used user name will be expanded " +"with a number. The next free number will be used." +msgstr "Nome utente dell'utente che deve essere creato. I caratteri validi sono: a-z,A-Z,0-9, @.-_. Se il nome utente è già utilizzato esso sarà espanso con un numero. Verrà utilizzato il prossimo numero libero." + +#: ../lib/modules/passwordSelfReset.inc:502 +#: ../lib/modules/passwordSelfReset.inc:867 +#: ../lib/modules/passwordSelfReset.inc:1035 +msgid "User name or email address" +msgstr "User name o indirizzo email" + +#: ../lib/modules/posixAccount.inc:270 ../lib/modules/posixAccount.inc:436 +msgid "User name suggestion" +msgstr "Suggerimento user name" + +#: ../lib/modules/pykotaUser.inc:125 +msgid "User name that is used for PyKota." +msgstr "Nome utente utilizzato da PyKota." + +#: ../lib/modules/windowsUser.inc:752 +msgid "User profile" +msgstr "Profilo utente" + +#: ../lib/modules/selfRegistration.inc:45 +msgid "User self registration" +msgstr "Auto-registrazione " + +#: ../lib/modules/zarafaUser.inc:128 ../lib/modules/zarafaUser.inc:275 +#: ../lib/modules/zarafaUser.inc:373 ../lib/modules/zarafaUser.inc:614 +#: ../lib/modules/zarafaUser.inc:1233 ../lib/modules/zarafaUser.inc:1322 +#: ../lib/modules/zarafaUser.inc:1805 +msgid "User server" +msgstr "Server utente" + +#: ../lib/types/user.inc:53 ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:97 +#: ../lib/modules/posixAccount.inc:209 ../lib/modules/zarafaUser.inc:1779 +#: ../lib/modules/sudoRole.inc:74 ../lib/modules/sudoRole.inc:98 +#: ../lib/modules/sudoRole.inc:159 ../lib/modules/sudoRole.inc:216 +#: ../lib/modules/sudoRole.inc:228 ../lib/modules/sudoRole.inc:316 +#: ../lib/modules/sudoRole.inc:806 +msgid "Users" +msgstr "Utenti" + +#: ../lib/modules/zarafaContact.inc:80 ../lib/modules/zarafaGroup.inc:94 +#: ../lib/modules/zarafaUser.inc:105 +msgid "Users or groups that may directly send email as this user." +msgstr "Utenti o gruppi che possono inviare email direttamente a questo utente." + +#: ../lib/modules/posixGroup.inc:489 +msgid "" +"Users who are member of the current group. Users who have set their primary " +"group to this group will not be shown." +msgstr "Utenti che sono membri del gruppo. Gli utenti che hanno il gruppo primario uguale a questo gruppo non saranno visualizzati." + +#: ../lib/modules/posixGroup.inc:493 +msgid "" +"Users who will become member of the current group. User names are separated " +"by semicolons." +msgstr "Utenti che diventeranno membri del gruppo corrente. I nomi degli utenti devono essere separati da punti e virgole." + +#: ../templates/tests/lamdaemonTest.php:207 +#, php-format +msgid "Using %s as lamdaemon remote server." +msgstr "Sto utilizzando %s come server remoto lamdaemon." + +#: ../templates/tests/lamdaemonTest.php:229 +#, php-format +msgid "Using %s to connect to remote server." +msgstr "Utilizzando %s per connettersi al server remoto." + +#: ../lib/modules/posixAccount.inc:446 +msgid "" +"Usually, users are not added to groups as memberUid if they have this group " +"as primary group. If your application ignores primary groups then you can " +"select this option to override this behaviour." +msgstr "Di solito gli utenti non vengono aggiunti ai gruppi come memberUid se hanno il gruppo come gruppo primario. Se la vostra applicazione ignora i gruppi primari allora potete selezionare questa opzione per modificare questo comportamento." + +#: ../templates/3rdParty/pla/lib/export_functions.php:543 +msgid "VCARD 2.1 Export" +msgstr "Esportazione VCARD 2.1" + +#: ../templates/config/mainmanage.php:360 +msgid "Valid to" +msgstr "Valido per" + +#: ../help/help.inc:92 +msgid "Valid users" +msgstr "Utenti validi" + +#: ../lib/modules/imapAccess.inc:83 ../lib/modules/imapAccess.inc:121 +msgid "Validate server certificate" +msgstr "Valida certificato server" + +#: ../lib/modules/customFields.inc:108 ../lib/modules/customFields.inc:1899 +msgid "Validation expression" +msgstr "Espressione di validazione" + +#: ../lib/modules/customFields.inc:112 ../lib/modules/customFields.inc:1904 +msgid "Validation message" +msgstr "Messaggio di validazione" + +#: ../templates/multiEdit.php:120 ../lib/modules/customFields.inc:2959 +msgid "Value" +msgstr "Valore" + +#: ../lib/modules/customFields.inc:116 ../lib/modules/customFields.inc:2749 +msgid "Value for \"checked\"" +msgstr "Valore per \"selezionato\"" + +#: ../lib/modules/customFields.inc:120 ../lib/modules/customFields.inc:2755 +msgid "Value for \"unchecked\"" +msgstr "Valore per \"non selezionato\"" + +#: ../lib/modules/customFields.inc:140 ../lib/modules/customFields.inc:2955 +msgid "Value mapping" +msgstr "Mappa valore" + +#: ../templates/3rdParty/pla/lib/import_functions.php:512 +msgid "Value to delete does not exist in DN" +msgstr "Il valore da cancellare non esiste in DN" + +#: ../lib/modules/puppetClient.inc:100 ../lib/modules/puppetClient.inc:104 +#: ../lib/modules/puppetClient.inc:146 ../lib/modules/puppetClient.inc:156 +#: ../lib/modules/puppetClient.inc:169 ../lib/modules/puppetClient.inc:277 +#: ../lib/modules/puppetClient.inc:439 +msgid "Variables" +msgstr "Variabili" + +#: ../templates/serverInfo.php:134 +msgid "Vendor name" +msgstr "Nome produttore" + +#: ../templates/serverInfo.php:140 +msgid "Vendor version" +msgstr "Versione produttore" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +#, php-format +msgid "View %s children" +msgstr "Visualizza di %s figli" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +msgid "View 1 child" +msgstr "Visualizza 1 figlio" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1230 +msgid "View the children of this object" +msgstr "Visualizza i figli di questo oggetto" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1028 +msgid "Viewing entry in read-only mode." +msgstr "Visualizza oggetto in modalità di sola lettura." + +#: ../lib/modules/asteriskVoicemail.inc:119 +#: ../lib/modules/asteriskVoicemail.inc:126 +#: ../lib/modules/asteriskVoicemail.inc:143 +#: ../lib/modules/asteriskVoicemail.inc:196 +#: ../lib/modules/asteriskVoicemail.inc:260 +#: ../lib/modules/asteriskVoicemail.inc:372 +msgid "Voicemail context" +msgstr "Contesto voicemail" + +#: ../lib/modules/asteriskVoicemail.inc:96 +msgid "Voicemail mailbox for this account." +msgstr "Mailbox voicemail per questo account." + +#: ../templates/login.php:496 +msgid "Want more features? Get LAM Pro!" +msgstr "Volete più funzionalità? Acquistate LAM Pro!" + +#: ../templates/config/mainmanage.php:408 +#: ../templates/3rdParty/pla/lib/page.php:76 +msgid "Warning" +msgstr "Attenzione (warning)" + +#: ../templates/delete.php:234 ../lib/modules/nisMailAliasUser.inc:505 +#: ../lib/modules/posixAccount.inc:850 ../lib/modules/posixAccount.inc:903 +#: ../lib/modules/organizationalRoleUser.inc:201 +#: ../lib/modules/organizationalRoleUser.inc:218 +#: ../lib/modules/windowsUser.inc:1123 ../lib/modules/groupOfNamesUser.inc:217 +#: ../lib/modules/groupOfNamesUser.inc:264 ../lib/modules.inc:1900 +#, php-format +msgid "Was unable to add attributes to DN: %s." +msgstr "Impossibile aggiungere attributi al DN: %s." + +#: ../lib/modules/nisMailAliasUser.inc:494 ../lib/modules.inc:1863 +#, php-format +msgid "Was unable to create DN: %s." +msgstr "Non è stato possibile creare il DN: %s." + +#: ../templates/delete.php:344 ../templates/delete.php:353 +#: ../lib/modules/nisMailAliasUser.inc:471 +#, php-format +msgid "Was unable to delete DN: %s." +msgstr "Non è stato possibile cancellare il DN: %s." + +#: ../templates/lists/changePassword.php:749 +#: ../templates/lists/changePassword.php:787 +#: ../templates/lists/changePassword.php:833 ../templates/delete.php:225 +#, php-format +msgid "Was unable to modify attributes from DN: %s." +msgstr "Non è stato possibile modificare gli attributi del DN: %s." + +#: ../lib/modules/posixAccount.inc:888 ../lib/modules/windowsUser.inc:1149 +#: ../lib/modules/windowsUser.inc:1558 ../lib/modules/groupOfNamesUser.inc:249 +#: ../lib/modules.inc:1882 +#, php-format +msgid "Was unable to modify attributes of DN: %s." +msgstr "Impossibile modificare gli attributi del DN: %s." + +#: ../templates/delete.php:243 ../lib/modules/nisMailAliasUser.inc:482 +#: ../lib/modules/posixAccount.inc:858 ../lib/modules/posixAccount.inc:920 +#: ../lib/modules/organizationalRoleUser.inc:206 +#: ../lib/modules/organizationalRoleUser.inc:229 +#: ../lib/modules/windowsUser.inc:1136 ../lib/modules/groupOfNamesUser.inc:222 +#: ../lib/modules/groupOfNamesUser.inc:278 ../lib/modules.inc:1913 +#, php-format +msgid "Was unable to remove attributes from DN: %s." +msgstr "Impossibile rimuovere gli attributi del DN: %s." + +#: ../lib/modules/asteriskExtension.inc:905 ../lib/modules.inc:1843 +#, php-format +msgid "Was unable to rename DN: %s." +msgstr "Non è stato possibile rinominare il DN: %s." + +#: ../lib/modules/windowsUser.inc:188 ../lib/modules/windowsUser.inc:374 +#: ../lib/modules/windowsUser.inc:516 ../lib/modules/windowsUser.inc:543 +#: ../lib/modules/windowsUser.inc:720 ../lib/modules/windowsUser.inc:1604 +#: ../lib/modules/windowsUser.inc:1727 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:214 ../lib/modules/inetOrgPerson.inc:467 +#: ../lib/modules/inetOrgPerson.inc:587 ../lib/modules/inetOrgPerson.inc:732 +#: ../lib/modules/inetOrgPerson.inc:736 ../lib/modules/inetOrgPerson.inc:1422 +#: ../lib/modules/inetOrgPerson.inc:1425 ../lib/modules/inetOrgPerson.inc:1918 +#: ../lib/modules/inetOrgPerson.inc:2467 ../lib/modules/inetOrgPerson.inc:3559 +#: ../lib/modules/inetOrgPerson.inc:3584 +msgid "Web site" +msgstr "Sito web" + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Wednesday" +msgstr "Mercoledì" + +#: ../lib/modules/bindDLZ.inc:180 ../lib/modules/bindDLZ.inc:184 +#: ../lib/modules/bindDLZ.inc:387 ../lib/modules/bindDLZ.inc:503 +#: ../lib/modules/bindDLZ.inc:1353 ../lib/modules/bindDLZ.inc:1600 +msgid "Weight" +msgstr "Peso" + +#: ../lib/selfService.inc:384 +msgid "Welcome to LAM self service. Please enter your user name and password." +msgstr "Benvenuti in LAM self service. Immetti i tuoi username e password." + +#: ../lib/modules/sambaSamAccount.inc:564 +msgid "Western Europe Time, London, Lisbon" +msgstr "Europa Occidentale, Londra, Lisbona" + +#: ../lib/modules/passwordSelfReset.inc:179 +msgid "What is the name of your favourite pet?" +msgstr "Qual'è il nome del tuo cucciolo preferito?" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +msgid "" +"When performing a recursive copy, only copy those entries which match this " +"filter." +msgstr "Quando si effettua una copia ricorsiva, copia solo quelle voci che coincidono con questo filtro." + +#: ../lib/modules/zarafaUser.inc:101 +msgid "" +"When the hard quota limit is reached, email can not be delivered to that " +"user anymore." +msgstr "Quando il limite di hard quota viene raggiunto, le email non possono essere più spedite all'utente." + +#: ../help/help.inc:70 +msgid "" +"When using ldaps:// or TLS be sure to use exactly the same IP/domain name as" +" in your certificate!" +msgstr "Quando su utilizza ldaps:// o TLS assicurarsi di usare esattamente lo stesso IP/nome di dominio del vostro certificato!" + +#: ../templates/lists/changePassword.php:410 +#: ../templates/lists/changePassword.php:441 ../lib/types/user.inc:292 +#: ../lib/types/user.inc:380 ../lib/types/user.inc:412 +#: ../lib/types/user.inc:845 ../lib/modules/windowsHost.inc:64 +#: ../lib/modules/windowsUser.inc:89 ../lib/modules/windowsGroup.inc:99 +msgid "Windows" +msgstr "Windows" + +#: ../lib/modules/sambaSamAccount.inc:337 ../lib/modules/windowsUser.inc:112 +msgid "Windows domain name of account." +msgstr "Nome di dominio Windows dell'account." + +#: ../lib/modules/sambaSamAccount.inc:211 +#: ../lib/modules/sambaSamAccount.inc:470 +#: ../lib/modules/sambaSamAccount.inc:1261 +#: ../lib/modules/sambaSamAccount.inc:1781 +#: ../lib/modules/sambaSamAccount.inc:1906 +#: ../lib/modules/sambaGroupMapping.inc:111 +#: ../lib/modules/sambaGroupMapping.inc:374 +#: ../lib/modules/sambaGroupMapping.inc:539 +msgid "Windows group" +msgstr "Gruppo Windows" + +#: ../lib/modules/sambaGroupMapping.inc:150 +msgid "Windows group name" +msgstr "Nome del gruppo Windows" + +#: ../lib/modules/sambaGroupMapping.inc:163 +msgid "Windows group type." +msgstr "Tipo del gruppo Windows" + +#: ../lib/modules/sambaSamAccount.inc:394 +msgid "" +"Windows password hashes are saved by default as NT and LM hashes. LM hashes " +"are insecure and only needed for old versions of Windows. You should disable" +" them unless you really need them." +msgstr "Le hash delle password di Windows sono salvate per impostazione predefinita come hash NT ed LM. Le hash LM sono insicure e necessarie solo per le vecchie versioni di Windows. Dovreste disabilitarle a meno che non ne abbiate bisogno." + +#: ../lib/modules/sambaSamAccount.inc:320 +msgid "Windows primary group" +msgstr "Gruppo Windows primario" + +#: ../lib/modules/sambaSamAccount.inc:323 +msgid "Windows primary group SID" +msgstr "SID del gruppo primario Windows" + +#: ../lib/modules/sambaGroupMapping.inc:159 +msgid "Windows-Domain name of group." +msgstr "Nome di dominio Windows del gruppo." + +#: ../lib/modules/inetOrgPerson.inc:1433 +msgid "Work details" +msgstr "Dettagli di lavoro" + +#: ../lib/modules/sambaDomain.inc:146 +msgid "Workgroup" +msgstr "Gruppo di lavoro" + +#: ../lib/modules/sambaSamAccount.inc:235 +#: ../lib/modules/sambaSamAccount.inc:366 +#: ../lib/modules/sambaSamAccount.inc:1517 +#: ../lib/modules/sambaSamAccount.inc:1925 +msgid "Working directory" +msgstr "Directory di lavoro" + +#: ../lib/modules/sambaSamAccount.inc:367 +msgid "Working directory of initial program." +msgstr "Directory di lavoro del programma iniziale" + +#: ../templates/config/confmain.php:318 +msgid "Write" +msgstr "Scrittura" + +#: ../templates/config/confmain.php:260 +msgid "Write access" +msgstr "Accesso in scrittura" + +#: ../templates/login.php:579 ../templates/login.php:637 +#: ../templates/selfService/selfServiceLogin.php:160 +#: ../templates/selfService/selfServiceLogin.php:186 +msgid "Wrong password/user name combination. Please try again." +msgstr "Utente o password sbagliati. Riprovare." + +#: ../lib/modules/imapAccess.inc:188 +msgid "Wrong quota format. Quota must be numeric." +msgstr "Formato quota errato. La quota deve essere numerica." + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/pykotaPrinter.inc:51 +#: ../lib/modules/pykotaPrinter.inc:170 ../lib/modules/qmailGroup.inc:322 +#: ../lib/modules/qmailGroup.inc:364 ../lib/modules/qmailGroup.inc:1030 +#: ../lib/modules/qmailGroup.inc:1031 ../lib/modules/qmailGroup.inc:1073 +#: ../lib/modules/qmailGroup.inc:1079 ../lib/modules/imapAccess.inc:121 +msgid "Yes" +msgstr "Si" + +#: ../templates/lists/changePassword.php:528 +#: ../lib/modules/ppolicyUser.inc:344 ../lib/modules/ppolicyUser.inc:421 +msgid "You are reusing an old password. Please choose a different password." +msgstr "Si sta riutilizzando una vecchia password. Scegliere una password diversa." + +#: ../lib/modules/account.inc:126 ../lib/modules/posixGroup.inc:607 +#: ../lib/modules/posixAccount.inc:113 ../lib/modules/posixAccount.inc:115 +msgid "" +"You are using capital letters. This can cause problems because Windows is " +"not case-sensitive." +msgstr "State utilizzando lettere maiuscole. Questo può creare problemi perchè Windows non è sensibile alle maiuscole e minuscole." + +#: ../lib/lists.inc:1073 +#, php-format +msgid "" +"You can download your PDF files " +"{link=%s}{color=#d2131a}here{endcolor}{endlink}." +msgstr "Potete scaricare i file PDF {link=%s}{color=#d2131a}qui{endcolor}{endlink}." + +#: ../templates/initsuff.php:181 +msgid "" +"You can setup the LDAP suffixes for all account types in your LAM server " +"profile on tab \"Account types\"." +msgstr "E' possibile impostare i suffissi LDAP per tutti i tipi di account sul vostro profilo server LAM, nel tab \"Tipi di account\"" + +#: ../help/help.inc:110 +msgid "" +"You can specify if LAM allows full write access, password changes or only " +"read access." +msgstr "E' possibile indicare se LAM deve consentire accesso completo in scrittura, il cambiamento della password oppure solo accesso in lettura." + +#: ../lib/modules/windowsUser.inc:104 ../lib/modules/windowsUser.inc:125 +#: ../lib/modules/windowsUser.inc:141 ../lib/modules/windowsUser.inc:206 +#: ../lib/modules/windowsUser.inc:211 ../lib/modules/windowsUser.inc:228 +#: ../lib/modules/windowsUser.inc:233 ../lib/modules/windowsUser.inc:249 +#: ../lib/modules/inetOrgPerson.inc:721 ../lib/modules/inetOrgPerson.inc:726 +msgid "" +"You can use \"$user\", \"$firstname\" and \"$lastname\" as wildcards for " +"user name, first and last name." +msgstr "E' possibile usare \"$user\", \"$firstname\" e \"$lastname\" come wildcards per il nome utente, nome e cognome." + +#: ../help/help.inc:172 +msgid "" +"You can use the wildcard @@LOGIN_DN@@ which will be substituted with the DN " +"of the user who is currently logged in to LAM." +msgstr "Potete utilizzare la wildcard @@LOGIN_DN@@ che sarà sostituita con il DN dell'utente che è attualmente loggato in LAM." + +#: ../lib/modules/zarafaDynamicGroup.inc:84 +#: ../lib/modules/zarafaContact.inc:76 ../lib/modules/zarafaGroup.inc:90 +#: ../lib/modules/zarafaAddressList.inc:72 ../lib/modules/zarafaUser.inc:85 +msgid "You can use this to temporarily deactivate the Zarafa extension." +msgstr "Potete usare questo per disattivare temporaneamente l'estensione Zarafa." + +#: ../lib/modules/passwordSelfReset.inc:126 +#: ../lib/modules/passwordSelfReset.inc:136 ../help/help.inc:253 +msgid "" +"You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. " +"@@uid@@ for the user name)." +msgstr "é possibile utilizzare dei valori jolly per gli attributi LDAP nel formato @@attributo@@ (es. @@uid@@ per il nome utente)." + +#: ../lib/modules/customScripts.inc:65 ../lib/modules/customScripts.inc:78 +msgid "" +"You can use wildcards in the format $wildcard$ which are replaced by the " +"LDAP attribute with the same name. For multi-value attributes the values " +"will be separated by commas." +msgstr "Potete usare i caratteri jolly nel formato $wildcard$ che sono sostituiti dall'attributo LDAP con lo stesso nome. Per attributi con valore multiplo, i valori vanno separati da virgole." + +#: ../lib/modules/zarafaContact.inc:191 +msgid "" +"You cannot add the Zarafa and Zarafa contact extension at the same time." +msgstr "Non potete aggiungere Zarafa ed estensione di contatto Zarafa allo stesso tempo." + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:52 +msgid "You cannot perform updates while server is in read-only mode" +msgstr "Non potete eseguire aggiornamenti mentre il server è in modalità sola lettura" + +#: ../templates/3rdParty/pla/htdocs/rename.php:26 +msgid "You cannot rename an entry which has child entries." +msgstr "Non potete rinominare un oggetto che possiede oggetti figli." + +#: ../templates/config/confmain.php:505 +msgid "" +"You cannot use SSL and TLS encryption at the same time. Please use either " +"\"ldaps://\" or TLS." +msgstr "Non potete usare una cifratura SSL e TLS allo stesso tempo. Utilizzare \"ldaps://\" o TLS." + +#: ../templates/3rdParty/pla/htdocs/rename.php:32 +msgid "You did not change the RDN" +msgstr "Non è stato cambiato l'RDN." + +#: ../templates/tests/schemaTest.php:61 +msgid "" +"You do not have the required access rights or the LDAP schema is not " +"published by your server." +msgstr "Non avete i privilegi di accesso richiesti oppure lo schema LDAP non viene pubblicato dal vostro server." + +#: ../lib/modules/dhcp_settings.inc:322 ../lib/modules/dhcp_settings.inc:323 +msgid "You entered one or more invalid DNS servers." +msgstr "Avete inserito uno o più server DNS non validi." + +#: ../templates/3rdParty/pla/lib/Template.php:417 +#: ../templates/3rdParty/pla/lib/Template.php:504 +msgid "You left the attribute value blank. Please go back and try again." +msgstr "Il valore dell'attributo è stato lasciato vuoto. Tornare indietro e riprovare." + +#: ../templates/3rdParty/pla/htdocs/create.php:51 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:45 +#, php-format +msgid "You left the value blank for required attribute (%s)." +msgstr "E' stato lasciato in bianco l'attributo obbligatorio (%s)." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:171 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:209 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:133 +msgid "You made no changes" +msgstr "Non è stata fatta nessuna modifica" + +#: ../templates/config/mainmanage.php:172 +#: ../templates/config/mainmanage.php:178 +#: ../templates/config/mainmanage.php:190 +msgid "You might need to restart your webserver for changes to take effect." +msgstr "E' possibile che sia necessario riavviare il vostro webserver affinchè i cambiamenti abbiano effetto." + +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#, php-format +msgid "You might want to use %s instead of %s." +msgstr "E' possibile usare %s invece di %s." + +#: ../templates/3rdParty/pla/lib/import_functions.php:95 +msgid "You must either upload a file or provide an import in the text box." +msgstr "Si deve importare un file o fornire un importazione dalla casella di testo." + +#: ../lib/modules/groupOfNames.inc:210 ../lib/modules/groupOfNames.inc:211 +msgid "You need to add at least one member to this group." +msgstr "Devi aggiungere almeno un membro a questo gruppo." + +#: ../lib/modules/passwordSelfReset.inc:229 +msgid "You specified an answer but no security question." +msgstr "Hai specificato una risposta ma non una domanda di sicurezza." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1136 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "You will be prompted to confirm this decision" +msgstr "Vi sarà richiesto di confermare questa decisione" + +#: ../lib/modules/imapAccess.inc:184 +msgid "Your IMAP domains and email address domain do not match." +msgstr "I domini IMAP e gli indirizzi email non coincidono." + +#: ../templates/tests/lamdaemonTest.php:234 +#, php-format +msgid "" +"Your LAM admin user (%s) must be a valid Unix account to work with " +"lamdaemon!" +msgstr "Il vostro utente amministratore di LAM (%s) deve essere un account Unix valido per poter essere utilizzato da lamdaemon!" + +#: ../lib/lamdaemon.inc:61 ../lib/lamdaemon.inc:66 +msgid "" +"Your LAM admin user must be a valid Unix account to work with lamdaemon!" +msgstr "Il vostro utente amministratore di LAM deve essere un account Unix valido per poter essere utilizzato da lamdaemon!" + +#: ../lib/modules/imapAccess.inc:186 +msgid "Your LAM login password was not accepted by the IMAP server." +msgstr "La tua password di accesso a LAM non è stata accettata dal server IMAP." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:125 +msgid "" +"Your PHP configuration has disabled file uploads. Please check php.ini " +"before proceeding." +msgstr "Il caricamento di file è disabilitato nella vostra configurazione del PHP. Controllare il file php.ini prima di procedere." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:16 +msgid "" +"Your PHP.INI does not have file_uploads = ON. Please enable file uploads in " +"PHP." +msgstr "Il tuo PHP.INI non ha abilitata file_uploads = ON. Abilita il caricamento dei file in PHP." + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:404 +msgid "" +"Your changes cannot be saved until you make the file writable for the " +"webserver user." +msgstr "I cambiamenti non potranno essere salvati fino a che non renderete il file scrivibile per l'utente del webserver." + +#: ../lib/modules/selfRegistration.inc:721 +msgid "" +"Your new account was created but post processing failed. Please contact your" +" local administrator." +msgstr "Il nuovo account è stato creato, ma il post processing è fallito. Contattare l'amministratore locale." + +#: ../lib/modules/selfRegistration.inc:718 +msgid "" +"Your new account was successfully created. Please return to login to change " +"your user data." +msgstr "Il nuovo account è stato creato con successo. Ritorna alla pagina di login per cambiare i tuoi dati utente." + +#: ../lib/account.inc:1202 ../lib/modules/windowsUser.inc:1870 +msgid "" +"Your password does not meet the password strength qualifications. Please " +"retry with another one." +msgstr "La password non risponde alle caratteristiche di robustezza predefinite. Immetterne un'altra." + +#: ../lib/modules/passwordSelfReset.inc:563 +msgid "Your password was changed to @@newPassword@@." +msgstr "La password è stata cambiata in " + +#: ../lib/security.inc:192 +msgid "Your session expired, click here to go back to the login page." +msgstr "La vostra sessione è scaduta, selezionate questo collegamento per tornare alla pagina di login." + +#: ../templates/login.php:296 +#: ../templates/selfService/selfServiceLogin.php:113 +msgid "Your session expired, please log in again." +msgstr "La vostra sessione è scaduta, effettuate nuovamente il login." + +#: ../templates/login.php:301 ../templates/login.php:306 +#: ../templates/login.php:315 +msgid "Your settings were successfully saved." +msgstr "Le vostre impostazioni sono state salvate correttamente." + +#: ../lib/modules/windowsUser.inc:346 ../lib/modules/inetOrgPerson.inc:501 +#: ../lib/modules/inetOrgPerson.inc:533 +msgid "YourCompany" +msgstr "LaTuaAzienda" + +#: ../lib/modules/zarafaGroup.inc:56 ../lib/modules/zarafaUser.inc:61 +#: ../lib/modules/zarafaServer.inc:56 +msgid "Zarafa" +msgstr "Zarafa" + +#: ../lib/modules/zarafaAddressList.inc:51 +msgid "Zarafa address list" +msgstr "Lista indirizzi Zarafa" + +#: ../lib/types/zarafaAddressListType.inc:53 +#: ../lib/types/zarafaAddressListType.inc:62 +msgid "Zarafa address lists" +msgstr "Liste indirizzi Zarafa" + +#: ../lib/modules/zarafaContact.inc:56 +msgid "Zarafa contact" +msgstr "Contatto Zarafa" + +#: ../lib/modules/zarafaDynamicGroup.inc:51 +msgid "Zarafa dynamic group" +msgstr "Gruppo dinamico Zarafa" + +#: ../lib/types/zarafaDynamicGroupType.inc:53 +#: ../lib/types/zarafaDynamicGroupType.inc:62 +msgid "Zarafa dynamic groups" +msgstr "Gruppi dinamici Zarafa" + +#: ../lib/modules/zarafaDynamicGroup.inc:95 +#: ../lib/modules/zarafaDynamicGroup.inc:183 +#: ../lib/modules/zarafaContact.inc:106 ../lib/modules/zarafaContact.inc:123 +#: ../lib/modules/zarafaGroup.inc:112 ../lib/modules/zarafaGroup.inc:127 +#: ../lib/modules/zarafaAddressList.inc:83 +#: ../lib/modules/zarafaAddressList.inc:156 ../lib/modules/zarafaUser.inc:171 +#: ../lib/modules/zarafaUser.inc:394 ../lib/modules/zarafaUser.inc:1773 +#: ../lib/modules/zarafaServer.inc:92 ../lib/modules/zarafaServer.inc:153 +msgid "Zarafa schema" +msgstr "Schema Zarafa" + +#: ../lib/modules/zarafaUser.inc:160 ../lib/modules/zarafaUser.inc:164 +msgid "Zarafa will store the user's archives on these servers." +msgstr "Zarafa salverà gli archivi dell'utente su questi server." + +#: ../lib/types/bind.inc:78 ../lib/modules/ddns.inc:102 +#: ../lib/modules/ddns.inc:113 ../lib/modules/ddns.inc:128 +#: ../lib/modules/ddns.inc:394 ../lib/modules/ddns.inc:425 +msgid "Zone name" +msgstr "Nome zona" + +#: ../lib/modules/ddns.inc:103 +msgid "Zone name for the DNS server (e.g. company.local)." +msgstr "Nome zona per il server DNS (es. compagnia.local)." + +#: ../lib/modules/sambaSamAccount.inc:496 ../lib/modules/windowsUser.inc:438 +msgid "\\\\server\\homes\\smiller" +msgstr "\\\\server\\homes\\smiller" + +#: ../lib/modules/sambaSamAccount.inc:504 ../lib/modules/windowsUser.inc:420 +msgid "\\\\server\\profiles\\smiller" +msgstr "\\\\server\\profiles\\smiller" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "add value" +msgstr "Aggiungi un valore" + +#: ../lib/modules/zarafaDynamicGroup.inc:118 ../lib/modules/posixGroup.inc:461 +#: ../lib/modules/zarafaAddressList.inc:106 ../lib/modules/pykotaGroup.inc:150 +#: ../lib/modules/pykotaGroup.inc:159 ../lib/modules/nisnetgroup.inc:114 +#: ../lib/modules/organizationalRole.inc:116 +#: ../lib/modules/windowsGroup.inc:237 ../lib/modules/groupOfNames.inc:128 +msgid "adminstrators" +msgstr "amministratori" + +#: ../templates/config/mainmanage.php:394 +#: ../templates/config/mainmanage.php:430 +msgid "all" +msgstr "tutto" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:112 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:95 +msgid "attribute deleted" +msgstr "attributo cancellato" + +#: ../lib/modules/sudoRole.inc:148 +msgid "backupRootFileSystem" +msgstr "backupRootFileSystem" + +#: ../lib/modules/pykotaBillingCode.inc:103 +msgid "billingCode01" +msgstr "codicePagamento01" + +#: ../templates/3rdParty/pla/lib/functions.php:2298 +msgid "browse" +msgstr "esplora" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "bytes" +msgstr "bytes" + +#: ../templates/schema/schema.php:220 +msgid "character" +msgstr "carattere" + +#: ../templates/schema/schema.php:219 +msgid "characters" +msgstr "caratteri" + +#: ../lib/modules/freeRadius.inc:179 +msgid "company.com" +msgstr "compagnia.com" + +#: ../templates/3rdParty/pla/lib/PageRender.php:619 +#: ../templates/3rdParty/pla/lib/PageRender.php:988 +msgid "confirm" +msgstr "conferma" + +#: ../help/help.inc:82 +msgid "dc=yourcompany,dc=com" +msgstr "dc=vostraazienda,dc=it" + +#: ../templates/config/mainmanage.php:429 ../lib/modules/ppolicyUser.inc:122 +msgid "default" +msgstr "predefinito" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:205 +msgid "delete" +msgstr "cancella" + +#: ../templates/3rdParty/pla/lib/PageRender.php:677 +msgid "delete attribute" +msgstr "cancella l'attributo" + +#: ../lib/modules/sambaSamAccount.inc:1538 +#: ../lib/modules/sambaSamAccount.inc:1945 ../lib/modules/zarafaUser.inc:619 +#: ../lib/modules/zarafaUser.inc:1285 ../lib/modules/zarafaUser.inc:1326 +msgid "disabled" +msgstr "disabilitato" + +#: ../lib/modules/sambaSamAccount.inc:1549 +#: ../lib/modules/sambaSamAccount.inc:1956 +msgid "disconnect" +msgstr "disconnettere" + +#: ../lib/modules/windowsUser.inc:468 ../lib/modules/windowsGroup.inc:245 +msgid "domain" +msgstr "dominio" + +#: ../templates/3rdParty/pla/lib/PageRender.php:664 +msgid "download value" +msgstr "scarica il valore" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:206 +msgid "edit" +msgstr "modifica" + +#: ../lib/modules/zarafaUser.inc:619 ../lib/modules/zarafaUser.inc:1280 +#: ../lib/modules/zarafaUser.inc:1326 +msgid "enabled" +msgstr "abilitato" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:481 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:307 +msgid "export" +msgstr "esporta" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:123 +msgid "false" +msgstr "falso" + +#: ../lib/modules/ppolicy.inc:37 +msgid "force" +msgstr "forza" + +#: ../lib/modules/sambaSamAccount.inc:1557 +#: ../lib/modules/sambaSamAccount.inc:1964 +msgid "from any client" +msgstr "da qualunque client" + +#: ../lib/modules/sambaSamAccount.inc:1558 +#: ../lib/modules/sambaSamAccount.inc:1965 +msgid "from previous client only" +msgstr "solo dal client precedente" + +#: ../lib/modules/posixAccount.inc:306 ../lib/modules/posixAccount.inc:366 +#: ../lib/modules/nisnetgroup.inc:128 ../lib/modules/groupOfNamesUser.inc:73 +msgid "group01,group02" +msgstr "gruppo01,gruppo02" + +#: ../lib/modules/freeRadius.inc:187 +msgid "group01;group02" +msgstr "gruppo01; gruppo02" + +#: ../lib/modules/zarafaDynamicGroup.inc:132 +#: ../lib/modules/zarafaGroup.inc:164 +msgid "group1@company.com,group2@company.com" +msgstr "gruppo1@compagnia.it,gruppo2@compagnia.it" + +#: ../lib/modules/zarafaDynamicGroup.inc:126 +#: ../lib/modules/zarafaGroup.inc:172 ../lib/modules/windowsGroup.inc:221 +msgid "group@company.com" +msgstr "gruppo@compagnia.it" + +#: ../templates/3rdParty/pla/lib/PageRender.php:471 +msgid "hint" +msgstr "suggerimento" + +#: ../lib/modules/quota.inc:198 ../lib/modules/quota.inc:200 +msgid "hours" +msgstr "ore" + +#: ../lib/modules/windowsUser.inc:376 ../lib/modules/windowsUser.inc:382 +#: ../lib/modules/inetOrgPerson.inc:469 +msgid "http://www.company.com" +msgstr "http://www.company.com" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:294 +msgid "import" +msgstr "importa" + +#: ../lib/modules/sambaSamAccount.inc:1542 +#: ../lib/modules/sambaSamAccount.inc:1949 +msgid "input off, notify off" +msgstr "inserimento disabilitato, notifica disabilitata" + +#: ../lib/modules/sambaSamAccount.inc:1541 +#: ../lib/modules/sambaSamAccount.inc:1948 +msgid "input off, notify on" +msgstr "inserimento disabilitato, notifica abilitata" + +#: ../lib/modules/sambaSamAccount.inc:1540 +#: ../lib/modules/sambaSamAccount.inc:1947 +msgid "input on, notify off" +msgstr "inserimento abilitato, notifica disabilitata" + +#: ../lib/modules/sambaSamAccount.inc:1539 +#: ../lib/modules/sambaSamAccount.inc:1946 +msgid "input on, notify on" +msgstr "inserimento abilitato, notifica abilitata" + +#: ../help/help.inc:64 +msgid "" +"ldap://localhost:389 connects to localhost using a standard LDAP connection " +"on port 389" +msgstr "ldap://localhost:389 si connette a localhost utilizzando una connessione LDAP standard sulla porta 389" + +#: ../help/help.inc:66 +msgid "" +"ldaps://ldap.domain.com connects to ldap.domain.com using an encrypted LDAP " +"connection." +msgstr "ldaps://ldap.dominio.it si connette a ldap.dominio.it utilizzando una connessione LDAP crittografata." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:100 +msgid "list" +msgstr "lista" + +#: ../templates/3rdParty/pla/lib/config_default.php:494 +#: ../templates/3rdParty/pla/lib/ds.php:318 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:529 +msgid "login" +msgstr "login" + +#: ../lib/modules/posixAccount.inc:391 +msgid "machines" +msgstr "computer" + +#: ../lib/modules/inetLocalMailRecipient.inc:114 +msgid "mail.yourdomain.org" +msgstr "mail.vostrodominio.it" + +#: ../lib/modules/sambaSamAccount.inc:415 +#: ../lib/modules/sambaSamAccount.inc:539 +msgid "mydomain" +msgstr "miodominio" + +#: ../lib/modules/sambaSamAccount.inc:472 +msgid "mygroup" +msgstr "miogruppo" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:504 +msgid "new" +msgstr "nuovo" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:454 +#: ../lib/modules/zarafaDynamicGroup.inc:457 +#: ../lib/modules/zarafaContact.inc:568 ../lib/modules/zarafaGroup.inc:651 +#: ../lib/modules/zarafaGroup.inc:658 ../lib/modules/zarafaGroup.inc:661 +#: ../lib/modules/zarafaAddressList.inc:336 +#: ../lib/modules/zarafaAddressList.inc:339 +#: ../lib/modules/sambaSamAccount.inc:583 +#: ../lib/modules/sambaSamAccount.inc:1913 +#: ../lib/modules/sambaSamAccount.inc:1921 +#: ../lib/modules/sambaSamAccount.inc:1931 +#: ../lib/modules/sambaSamAccount.inc:1936 +#: ../lib/modules/sambaSamAccount.inc:1941 ../lib/modules/zarafaUser.inc:602 +#: ../lib/modules/zarafaUser.inc:1238 ../lib/modules/zarafaUser.inc:1253 +#: ../lib/modules/zarafaUser.inc:1264 ../lib/modules/zarafaUser.inc:1270 +#: ../lib/modules/windowsUser.inc:388 ../lib/modules/windowsUser.inc:389 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:396 +#: ../lib/modules/windowsUser.inc:397 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:404 ../lib/modules/windowsUser.inc:405 +#: ../lib/modules/windowsUser.inc:406 ../lib/modules/windowsUser.inc:412 +#: ../lib/modules/windowsUser.inc:413 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:1173 ../lib/modules/windowsUser.inc:1607 +#: ../lib/modules/windowsUser.inc:1612 ../lib/modules/windowsUser.inc:1617 +#: ../lib/modules/windowsUser.inc:1622 ../lib/modules/ppolicy.inc:35 +#: ../lib/modules/ppolicy.inc:481 ../lib/modules/ppolicy.inc:491 +#: ../lib/modules/ppolicy.inc:496 ../lib/modules/ppolicy.inc:503 +#: ../lib/modules/ppolicy.inc:506 ../lib/modules/generalInformation.inc:100 +#: ../lib/modules/zarafaServer.inc:358 ../lib/modules/customFields.inc:2890 +#: ../lib/modules/fixed_ip.inc:752 +msgid "no" +msgstr "no" + +#: ../templates/3rdParty/pla/lib/functions.php:1902 +msgid "no description available" +msgstr "nessuna descrizione disponibile" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:68 +msgid "no entries" +msgstr "nessun risultato" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:84 +msgid "no new attributes available for this entry" +msgstr "nessun nuovo attributo disponibile per questo oggetto" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:135 +msgid "no new binary attributes available for this entry" +msgstr "nessun nuovo attributo binario disponibile per questo oggetto" + +#: ../templates/schema/schema.php:160 ../templates/schema/schema.php:229 +#: ../templates/schema/schema.php:240 ../templates/schema/schema.php:289 +#: ../templates/schema/schema.php:355 ../templates/schema/schema.php:370 +#: ../templates/schema/schema.php:404 ../templates/schema/schema.php:426 +#: ../templates/3rdParty/pla/lib/functions.php:2612 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1573 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1581 +msgid "none" +msgstr "nessuno" + +#: ../templates/3rdParty/pla/lib/PageRender.php:1109 +msgid "none, remove value" +msgstr "nessuno, rimuovere il valore" + +#: ../templates/schema/schema.php:216 +msgid "not applicable" +msgstr "non applicabile" + +#: ../templates/schema/schema.php:167 ../templates/schema/schema.php:172 +#: ../templates/schema/schema.php:177 ../templates/schema/schema.php:210 +msgid "not specified" +msgstr "non specificato" + +#: ../help/help.inc:76 +msgid "" +"ou=People,dc=yourcompany,dc=com will read and store all accounts in this " +"subtree." +msgstr "ou=Persone,dc=vostraazienda,dc=it farà si che tutti gli account vengano letti e scritti in questo sottoalbero." + +#: ../lib/modules/eduPerson.inc:202 ../lib/modules/eduPerson.inc:208 +#: ../lib/modules/eduPerson.inc:214 +msgid "ou=accounts,dc=yourdomain,dc=org" +msgstr "ou=accounts,dc=vostrodominio,dc=it" + +#: ../lib/modules/posixAccount.inc:377 +msgid "pc01$" +msgstr "pc01$" + +#: ../lib/modules/posixAccount.inc:400 +msgid "pc01,Room 2.34" +msgstr "pc01,Stanza 2.34" + +#: ../lib/modules/hostObject.inc:93 +msgid "pc01,pc02" +msgstr "pc01,pc02" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +msgid "pixels" +msgstr "pixel" + +#: ../lib/modules/pykotaPrinter.inc:148 +msgid "printer01" +msgstr "stampante01" + +#: ../lib/modules/pykotaPrinter.inc:188 +msgid "printergroup1" +msgstr "gruppostampante1" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:54 +msgid "read only" +msgstr "sola lettura" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:251 +msgid "refresh" +msgstr "aggiorna" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2126 +msgid "rename" +msgstr "rinomina" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 ../lib/html.inc:797 +#: ../lib/html.inc:1708 ../lib/html.inc:2285 +msgid "required" +msgstr "obbligatorio" + +#: ../lib/modules/sambaSamAccount.inc:1550 +#: ../lib/modules/sambaSamAccount.inc:1957 +msgid "reset" +msgstr "azzera" + +#: ../lib/modules/organizationalRoleUser.inc:73 +msgid "role01,role02" +msgstr "ruolo01,ruolo02" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:237 +msgid "search" +msgstr "ricerca" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:472 +msgid "seconds" +msgstr "secondi" + +#: ../lib/modules/mitKerberos.inc:244 ../lib/modules/asteriskAccount.inc:327 +#: ../lib/modules/posixGroup.inc:444 ../lib/modules/sambaSamAccount.inc:427 +#: ../lib/modules/posixAccount.inc:334 ../lib/modules/windowsUser.inc:274 +#: ../lib/modules/inetOrgPerson.inc:2054 +#: ../lib/modules/asteriskVoicemail.inc:167 +#: ../lib/modules/heimdalKerberos.inc:213 +msgid "secret" +msgstr "segreto" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1263 +msgid "select the rdn attribute" +msgstr "seleziona l'attributo RDN" + +#: ../lib/modules/mitKerberos.inc:213 ../lib/modules/uidObject.inc:69 +#: ../lib/modules/posixAccount.inc:285 ../lib/modules/windowsUser.inc:266 +#: ../lib/modules/windowsUser.inc:451 ../lib/modules/windowsUser.inc:460 +#: ../lib/modules/pykotaUser.inc:192 ../lib/modules/pykotaUser.inc:210 +#: ../lib/modules/inetOrgPerson.inc:2045 +#: ../lib/modules/heimdalKerberos.inc:182 ../lib/modules/nisMailAlias.inc:110 +msgid "smiller" +msgstr "smiller" + +#: ../lib/modules/inetLocalMailRecipient.inc:102 +msgid "smiller@otherdomain.org" +msgstr "smiller@altrodominio.it" + +#: ../lib/modules/inetLocalMailRecipient.inc:108 +msgid "smiller@yourdomain.org" +msgstr "smiller@vostrodominio.it" + +#: ../lib/modules/ldapPublicKey.inc:90 +msgid "ssh-dss 234234 user@host" +msgstr "ssh-dss 234234 user@host" + +#: ../templates/3rdParty/pla/lib/PageRender.php:882 +msgid "structural" +msgstr "Strutturale" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:102 +msgid "table" +msgstr "tabella" + +#: ../lib/modules/asteriskExtension.inc:154 +msgid "test" +msgstr "verifica" + +#: ../lib/modules/asteriskExtension.inc:174 +msgid "test-start" +msgstr "avvia-verifica" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:122 +msgid "true" +msgstr "vero" + +#: ../lib/modules/ipHost.inc:99 ../lib/modules/inetOrgPerson.inc:363 +#: ../lib/modules/aliasEntry.inc:71 ../lib/modules/qmailGroup.inc:281 +#: ../lib/modules/qmailGroup.inc:289 ../lib/modules/qmailGroup.inc:297 +msgid "uid=smiller,ou=People,dc=company,dc=com" +msgstr "uid=smiller,ou=Persone,dc=vostraazienda,dc=it" + +#: ../templates/config/mainmanage.php:312 +msgid "use custom CA certificates" +msgstr "utilizzare certificati CA personalizzati" + +#: ../templates/config/mainmanage.php:309 +msgid "use system certificates" +msgstr "utilizza i certificati di sistema" + +#: ../lib/modules/posixGroup.inc:452 +msgid "user01,user02,user03" +msgstr "utente01,utente02,utente03" + +#: ../lib/modules/qmailUser.inc:273 ../lib/modules/qmailUser.inc:279 +#: ../lib/modules/qmailUser.inc:301 ../lib/modules/eduPerson.inc:163 +#: ../lib/modules/windowsUser.inc:352 ../lib/modules/windowsUser.inc:358 +#: ../lib/modules/pykotaUser.inc:220 ../lib/modules/inetOrgPerson.inc:451 +#: ../lib/modules/kolabSharedFolder.inc:183 +#: ../lib/modules/asteriskVoicemail.inc:180 ../lib/modules/qmailGroup.inc:339 +#: ../lib/modules/qmailGroup.inc:347 ../lib/modules/qmailGroup.inc:355 +msgid "user@company.com" +msgstr "user@company.com" + +#: ../lib/modules/posixAccount.inc:299 +msgid "users" +msgstr "utenti" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:59 +msgid "view entries" +msgstr "mostra valori" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +msgid "with " +msgstr "con " + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:452 +#: ../lib/modules/zarafaDynamicGroup.inc:459 +#: ../lib/modules/zarafaContact.inc:570 ../lib/modules/zarafaGroup.inc:653 +#: ../lib/modules/zarafaGroup.inc:656 ../lib/modules/zarafaGroup.inc:663 +#: ../lib/modules/zarafaAddressList.inc:334 +#: ../lib/modules/zarafaAddressList.inc:341 +#: ../lib/modules/sambaSamAccount.inc:583 +#: ../lib/modules/sambaSamAccount.inc:1911 +#: ../lib/modules/sambaSamAccount.inc:1919 +#: ../lib/modules/sambaSamAccount.inc:1929 +#: ../lib/modules/sambaSamAccount.inc:1934 +#: ../lib/modules/sambaSamAccount.inc:1939 ../lib/modules/zarafaUser.inc:602 +#: ../lib/modules/zarafaUser.inc:1240 ../lib/modules/zarafaUser.inc:1256 +#: ../lib/modules/zarafaUser.inc:1266 ../lib/modules/zarafaUser.inc:1272 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:406 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:1173 ../lib/modules/windowsUser.inc:1512 +#: ../lib/modules/windowsUser.inc:1609 ../lib/modules/windowsUser.inc:1614 +#: ../lib/modules/windowsUser.inc:1619 ../lib/modules/windowsUser.inc:1624 +#: ../lib/modules/ppolicy.inc:36 ../lib/modules/ppolicy.inc:493 +#: ../lib/modules/ppolicy.inc:498 ../lib/modules/ppolicy.inc:501 +#: ../lib/modules/ppolicy.inc:508 ../lib/modules/inetOrgPerson.inc:525 +#: ../lib/modules/generalInformation.inc:102 +#: ../lib/modules/zarafaServer.inc:360 ../lib/modules/customFields.inc:2890 +#: ../lib/modules/fixed_ip.inc:750 +msgid "yes" +msgstr "si" diff --git a/lam/locale/ja_JP/LC_MESSAGES/messages.mo b/lam/locale/ja_JP/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..a3f5d04b Binary files /dev/null and b/lam/locale/ja_JP/LC_MESSAGES/messages.mo differ diff --git a/lam/locale/ja_JP/LC_MESSAGES/messages.po b/lam/locale/ja_JP/LC_MESSAGES/messages.po new file mode 100644 index 00000000..e0377f18 --- /dev/null +++ b/lam/locale/ja_JP/LC_MESSAGES/messages.po @@ -0,0 +1,18080 @@ +# $Id: messages.po,v 1.1 2004/10/01 12:31:19 gruberroland Exp $ +# +# +# LDAP Account Manager +# +msgid "" +msgstr "" +"Project-Id-Version: LAM 4.6\n" +"Report-Msgid-Bugs-To: post@rolandgruber.de \n" +"POT-Creation-Date: 2004-01-14 17:45+0200\n" +"PO-Revision-Date: 2014-06-01 20:57+0900\n" +"Last-Translator: Yasuhiro Magara \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../lib/modules/zarafaContact.inc:95 ../lib/modules/zarafaContact.inc:98 +#: ../lib/modules/zarafaContact.inc:101 ../lib/modules/zarafaContact.inc:126 +#: ../lib/modules/zarafaGroup.inc:97 ../lib/modules/zarafaGroup.inc:100 +#: ../lib/modules/zarafaGroup.inc:103 ../lib/modules/zarafaGroup.inc:130 +#: ../lib/modules/zarafaUser.inc:144 ../lib/modules/zarafaUser.inc:147 +#: ../lib/modules/zarafaUser.inc:150 ../lib/modules/zarafaUser.inc:1812 +msgid "\"Send as\" attribute" +msgstr "\"Send as\"属性" + +#: ../lib/modules/zarafaContact.inc:79 ../lib/modules/zarafaContact.inc:150 +#: ../lib/modules/zarafaContact.inc:173 ../lib/modules/zarafaContact.inc:187 +#: ../lib/modules/zarafaContact.inc:226 ../lib/modules/zarafaContact.inc:355 +#: ../lib/modules/zarafaContact.inc:565 ../lib/modules/zarafaGroup.inc:93 +#: ../lib/modules/zarafaGroup.inc:138 ../lib/modules/zarafaGroup.inc:188 +#: ../lib/modules/zarafaGroup.inc:206 ../lib/modules/zarafaGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:263 ../lib/modules/zarafaGroup.inc:415 +#: ../lib/modules/zarafaGroup.inc:650 ../lib/modules/zarafaUser.inc:104 +#: ../lib/modules/zarafaUser.inc:196 ../lib/modules/zarafaUser.inc:355 +#: ../lib/modules/zarafaUser.inc:382 ../lib/modules/zarafaUser.inc:419 +#: ../lib/modules/zarafaUser.inc:463 ../lib/modules/zarafaUser.inc:839 +#: ../lib/modules/zarafaUser.inc:1234 ../lib/modules/zarafaUser.inc:1465 +#: ../lib/modules/zarafaUser.inc:1793 +msgid "\"Send as\" privileges" +msgstr "\"Send as\"特権" + +#: ../lib/modules/posixAccount.inc:519 +msgid "" +"$user and $group will be replaced with user name and primary group name." +msgstr "$user と $group はユーザ名とプライマリグループ名に置き換えられます。" + +#: ../lib/modules/nisnetgroup.inc:134 +msgid "(host1,user1,example.com);(host2,user2,example.com)" +msgstr "(host1,user1,example.com);(host2,user2,example.com)" + +#: ../lib/modules/qmailUser.inc:368 ../lib/modules/posixAccount.inc:312 +msgid "/home/smiller" +msgstr "/home/smiller" + +#: ../lib/modules/inetOrgPerson.inc:419 +#: ../lib/modules/asteriskVoicemail.inc:186 +msgid "123-123-1234" +msgstr "123-123-1234" + +#: ../lib/modules/inetOrgPerson.inc:435 +msgid "123-123-1235" +msgstr "123-123-1235" + +#: ../lib/modules/inetOrgPerson.inc:443 +msgid "123-123-1236" +msgstr "123-123-1236" + +#: ../lib/modules/windowsUser.inc:364 ../lib/modules/windowsUser.inc:370 +#: ../lib/modules/inetOrgPerson.inc:427 +msgid "123-124-1234" +msgstr "123-124-1234" + +#: ../lib/modules/windowsUser.inc:322 ../lib/modules/inetOrgPerson.inc:411 +msgid "12345" +msgstr "12345" + +#: ../lib/modules/dhcp_settings.inc:174 +msgid "" +"B-Node (0x01): Broadcast.
    The client tries to find other " +"workstations via broadcasting\n" +"(works only inside the same collision domain, viz. the same subnet).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"The client contacts a Netbios name server (NBNS) from Microsoft Windows Name " +"Service (WINS) for name resolution.

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"The node tries broadcasting first. If that fails then it tries WINS.

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"The node tries WINS first. If that fails it tries broadcasting.

    \n" +"\n" +"By default, the nodes are configured as H-Nodes which fits for small " +"networks. In large networks Point-to-Point (0x02) should be used." +msgstr "" +"B-Node (0x01): Broadcast.
    \n" +"クライアントはブロードキャストによって他のワークステーションを発見します(同じ" +"コリジョンドメイン、すなわち同じサブネットの中でのみ機能します)。

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"クライアントはMicrosift Windows Name Service(WINS)によってNetBIOSネームサー" +"バー(NBNS)に接続し、名前解決を行います。

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"ノードは最初にブロードキャストを試みます。もし失敗した場合は、WINSを試みま" +"す。

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"ノードは最初にWINSを試みます。もし失敗した場合は、ブロードキャストを試みま" +"す。

    \n" +"\n" +"デフォルトでは、ノードは小規模ネットワーク向きのH-Nodeとして構成されます。大" +"規模ネットワークでは、Point-to-Point(0x02)を利用するべきです。" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:145 +#, php-format +msgid "Maximum length: %s characters" +msgstr "最大長: %s 文字" + +#: ../lib/modules/bindDLZ.inc:492 +msgid "A CNAME record allows no other records." +msgstr "CNAMEレコードは他のレコードを許容しません。" + +#: ../lib/modules/bindDLZ.inc:526 +msgid "A NS record allows no other records except SOA/MX/A records." +msgstr "NSレコードはSOA/MX/A以外のレコードを許容しません。" + +#: ../lib/modules/bindDLZ.inc:510 +msgid "A SOA record allows no other records except NS/MX/A records." +msgstr "SOAレコードはNS/MX/A以外のレコードを許容しません。" + +#: ../lib/modules/bindDLZ.inc:511 +msgid "A SOA record requires that the host name is set to \"@\"." +msgstr "SOAレコードのホスト名は \"@\" にセットする必要があります。" + +#: ../lib/modules/selfRegistration.inc:631 +#: ../lib/modules/passwordSelfReset.inc:1590 +msgid "" +"A confirmation mail was sent. Please click on the link in the mail to " +"proceed." +msgstr "" +"確認のメールを送信しました。 先へ進むには、メールの中のリンクをクリックしてく" +"ださい。" + +#: ../lib/modules/device.inc:82 +msgid "A description for this device." +msgstr "このデバイスについての説明。" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +msgid "A list of attributes to display in the results (comma-separated)" +msgstr "結果に表示する属性のリスト(カンマ区切り)" + +#: ../lib/modules/sudoRole.inc:95 ../lib/modules/sudoRole.inc:124 +msgid "A list of options (e.g. !authenticate)." +msgstr "オプションのリスト (例 !authenticate)。" + +#: ../templates/massBuildAccounts.php:135 +msgid "A required column is missing in your CSV file." +msgstr "CSVファイル中に必要なカラムが不足しています。" + +#: ../lib/modules/bindDLZ.inc:165 ../lib/modules/bindDLZ.inc:169 +msgid "A server name for this service (e.g. \"ldap.example.com.\")." +msgstr "このサービスに対するサーバー名 (例 \"ldap.example.com.\")。" + +#: ../lib/modules/bindDLZ.inc:157 ../lib/modules/bindDLZ.inc:161 +msgid "A text value for this host." +msgstr "このホストに対するテキスト値。" + +#: ../lib/modules/kolabUser.inc:133 +msgid "" +"A user may define who is allowed to act on behalf of herself. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"ユーザは自身の代理人を定義できます。このプロパティはemailの送信にKolab smtp" +"デーモン(Postfix)を使用する場合にチェックします。" + +#: ../templates/3rdParty/pla/lib/import_functions.php:593 +msgid "A valid deleteoldrdn attribute should be specified" +msgstr "有効なdeleteoldrdn属性を指定されなくてはなりません。" + +#: ../templates/3rdParty/pla/lib/import_functions.php:237 +msgid "A valid dn line is required" +msgstr "有効なdn行が必要です。" + +#: ../templates/3rdParty/pla/lib/import_functions.php:596 +msgid "A valid newrdn attribute should be specified" +msgstr "有効なnewrdn属性が指定されなくてはなりません。" + +#: ../templates/3rdParty/pla/lib/import_functions.php:587 +msgid "A valid newsuperior attribute should be specified" +msgstr "有効なnewsuperior属性が指定されなくてはなりません。" + +#: ../lib/modules/bindDLZ.inc:89 ../lib/modules/bindDLZ.inc:98 +#: ../lib/modules/bindDLZ.inc:248 ../lib/modules/bindDLZ.inc:254 +#: ../lib/modules/bindDLZ.inc:472 +msgid "A/AAAA record" +msgstr "A/AAAA レコード" + +#: ../lib/modules/bindDLZ.inc:411 ../lib/modules/bindDLZ.inc:431 +#: ../lib/modules/bindDLZ.inc:1469 +msgid "A/AAAA records" +msgstr "A/AAAA レコード" + +#: ../lib/modules/asteriskAccount.inc:131 +#: ../lib/modules/asteriskAccount.inc:271 +#: ../lib/modules/asteriskAccount.inc:347 +#: ../lib/modules/asteriskAccount.inc:610 +#: ../lib/modules/asteriskAccount.inc:987 +#: ../lib/modules/asteriskAccount.inc:1243 +msgid "AMA flags" +msgstr "AMAフラグ" + +#: ../templates/serverInfo.php:342 +msgid "Abandon" +msgstr "中止" + +#: ../templates/lists/changePassword.php:714 +msgid "Aborted password change." +msgstr "パスワード変更を中止しました。" + +#: ../lib/modules/sambaSamAccount.inc:568 +msgid "Abu Dhabi, Muscat, Baku" +msgstr "Abu Dhabi, Muscat, Baku" + +#: ../templates/config/confmain.php:264 ../help/help.inc:109 +msgid "Access level" +msgstr "アクセスレベル" + +#: ../lib/modules/account.inc:65 +msgid "Account" +msgstr "アカウント" + +#: ../templates/massBuildAccounts.php:201 ../lib/modules/kolabGroup.inc:178 +#: ../lib/modules/kolabGroup.inc:180 ../lib/modules/kolabGroup.inc:182 +#: ../lib/modules/kolabGroup.inc:184 ../lib/modules/pykotaPrinter.inc:210 +#: ../lib/modules/pykotaPrinter.inc:212 ../lib/modules/pykotaPrinter.inc:214 +#: ../lib/modules/pykotaPrinter.inc:216 ../lib/modules/pykotaPrinter.inc:218 +#: ../lib/modules/pykotaPrinter.inc:219 ../lib/modules/pykotaPrinter.inc:220 +#: ../lib/modules/mitKerberos.inc:290 ../lib/modules/mitKerberos.inc:291 +#: ../lib/modules/mitKerberos.inc:292 ../lib/modules/mitKerberos.inc:294 +#: ../lib/modules/mitKerberos.inc:296 ../lib/modules/mitKerberos.inc:297 +#: ../lib/modules/zarafaDynamicGroup.inc:197 +#: ../lib/modules/zarafaDynamicGroup.inc:199 +#: ../lib/modules/zarafaDynamicGroup.inc:201 +#: ../lib/modules/zarafaDynamicGroup.inc:203 +#: ../lib/modules/zarafaDynamicGroup.inc:204 +#: ../lib/modules/zarafaDynamicGroup.inc:205 ../lib/modules/ipHost.inc:116 +#: ../lib/modules/ipHost.inc:117 ../lib/modules/asteriskAccount.inc:558 +#: ../lib/modules/asteriskAccount.inc:561 +#: ../lib/modules/asteriskAccount.inc:564 +#: ../lib/modules/asteriskAccount.inc:567 +#: ../lib/modules/asteriskAccount.inc:569 +#: ../lib/modules/asteriskAccount.inc:571 +#: ../lib/modules/asteriskAccount.inc:573 +#: ../lib/modules/asteriskAccount.inc:575 +#: ../lib/modules/asteriskAccount.inc:577 ../lib/modules/account.inc:125 +#: ../lib/modules/ieee802device.inc:96 ../lib/modules/puppetClient.inc:185 +#: ../lib/modules/puppetClient.inc:187 ../lib/modules/puppetClient.inc:189 +#: ../lib/modules/puppetClient.inc:190 ../lib/modules/qmailUser.inc:449 +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:453 +#: ../lib/modules/qmailUser.inc:454 ../lib/modules/qmailUser.inc:455 +#: ../lib/modules/qmailUser.inc:457 ../lib/modules/qmailUser.inc:459 +#: ../lib/modules/qmailUser.inc:461 ../lib/modules/qmailUser.inc:464 +#: ../lib/modules/qmailUser.inc:467 ../lib/modules/qmailUser.inc:469 +#: ../lib/modules/qmailUser.inc:470 ../lib/modules/qmailUser.inc:471 +#: ../lib/modules/zarafaContact.inc:186 ../lib/modules/zarafaContact.inc:188 +#: ../lib/modules/zarafaContact.inc:189 ../lib/modules/zarafaContact.inc:190 +#: ../lib/modules/zarafaContact.inc:191 ../lib/modules/windowsHost.inc:132 +#: ../lib/modules/posixGroup.inc:606 ../lib/modules/posixGroup.inc:610 +#: ../lib/modules/posixGroup.inc:611 ../lib/modules/zarafaGroup.inc:216 +#: ../lib/modules/zarafaGroup.inc:218 ../lib/modules/zarafaGroup.inc:219 +#: ../lib/modules/zarafaGroup.inc:220 ../lib/modules/zarafaGroup.inc:221 +#: ../lib/modules/zarafaGroup.inc:223 ../lib/modules/device.inc:141 +#: ../lib/modules/device.inc:142 ../lib/modules/dhcp_settings.inc:321 +#: ../lib/modules/dhcp_settings.inc:323 ../lib/modules/dhcp_settings.inc:325 +#: ../lib/modules/dhcp_settings.inc:327 ../lib/modules/dhcp_settings.inc:329 +#: ../lib/modules/dhcp_settings.inc:330 ../lib/modules/dhcp_settings.inc:331 +#: ../lib/modules/dhcp_settings.inc:333 ../lib/modules/dhcp_settings.inc:335 +#: ../lib/modules/dhcp_settings.inc:339 ../lib/modules/eduPerson.inc:244 +#: ../lib/modules/eduPerson.inc:246 ../lib/modules/eduPerson.inc:248 +#: ../lib/modules/eduPerson.inc:250 ../lib/modules/eduPerson.inc:251 +#: ../lib/modules/eduPerson.inc:252 ../lib/modules/eduPerson.inc:253 +#: ../lib/modules/quota.inc:52 ../lib/modules/quota.inc:54 +#: ../lib/modules/quota.inc:56 ../lib/modules/quota.inc:58 +#: ../lib/modules/quota.inc:60 ../lib/modules/quota.inc:62 +#: ../lib/modules/quota.inc:63 ../lib/modules/zarafaAddressList.inc:170 +#: ../lib/modules/zarafaAddressList.inc:171 +#: ../lib/modules/zarafaAddressList.inc:172 ../lib/modules/pykotaGroup.inc:198 +#: ../lib/modules/pykotaGroup.inc:200 ../lib/modules/pykotaGroup.inc:202 +#: ../lib/modules/pykotaGroup.inc:204 ../lib/modules/pykotaGroup.inc:205 +#: ../lib/modules/sambaSamAccount.inc:96 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:102 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:107 +#: ../lib/modules/sambaSamAccount.inc:108 +#: ../lib/modules/sambaSamAccount.inc:109 +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 +#: ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/sambaSamAccount.inc:117 +#: ../lib/modules/sambaSamAccount.inc:118 +#: ../lib/modules/sambaSamAccount.inc:120 +#: ../lib/modules/sambaSamAccount.inc:121 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/posixAccount.inc:107 ../lib/modules/posixAccount.inc:111 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/posixAccount.inc:124 +#: ../lib/modules/posixAccount.inc:126 ../lib/modules/posixAccount.inc:127 +#: ../lib/modules/posixAccount.inc:128 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/zarafaUser.inc:409 ../lib/modules/zarafaUser.inc:411 +#: ../lib/modules/zarafaUser.inc:413 ../lib/modules/zarafaUser.inc:414 +#: ../lib/modules/zarafaUser.inc:416 ../lib/modules/zarafaUser.inc:418 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/zarafaUser.inc:421 +#: ../lib/modules/zarafaUser.inc:422 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:424 ../lib/modules/zarafaUser.inc:425 +#: ../lib/modules/zarafaUser.inc:426 ../lib/modules/zarafaUser.inc:427 +#: ../lib/modules/ppolicyUser.inc:97 ../lib/modules/bindDLZ.inc:471 +#: ../lib/modules/bindDLZ.inc:473 ../lib/modules/bindDLZ.inc:475 +#: ../lib/modules/bindDLZ.inc:477 ../lib/modules/bindDLZ.inc:479 +#: ../lib/modules/bindDLZ.inc:481 ../lib/modules/bindDLZ.inc:483 +#: ../lib/modules/bindDLZ.inc:485 ../lib/modules/bindDLZ.inc:487 +#: ../lib/modules/bindDLZ.inc:489 ../lib/modules/bindDLZ.inc:491 +#: ../lib/modules/bindDLZ.inc:492 ../lib/modules/bindDLZ.inc:494 +#: ../lib/modules/bindDLZ.inc:496 ../lib/modules/bindDLZ.inc:498 +#: ../lib/modules/bindDLZ.inc:500 ../lib/modules/bindDLZ.inc:502 +#: ../lib/modules/bindDLZ.inc:504 ../lib/modules/bindDLZ.inc:506 +#: ../lib/modules/bindDLZ.inc:508 ../lib/modules/bindDLZ.inc:509 +#: ../lib/modules/bindDLZ.inc:510 ../lib/modules/bindDLZ.inc:511 +#: ../lib/modules/bindDLZ.inc:513 ../lib/modules/bindDLZ.inc:515 +#: ../lib/modules/bindDLZ.inc:517 ../lib/modules/bindDLZ.inc:519 +#: ../lib/modules/bindDLZ.inc:521 ../lib/modules/bindDLZ.inc:523 +#: ../lib/modules/bindDLZ.inc:525 ../lib/modules/bindDLZ.inc:526 +#: ../lib/modules/windowsUser.inc:590 ../lib/modules/windowsUser.inc:592 +#: ../lib/modules/windowsUser.inc:594 ../lib/modules/windowsUser.inc:596 +#: ../lib/modules/windowsUser.inc:598 ../lib/modules/windowsUser.inc:600 +#: ../lib/modules/windowsUser.inc:602 ../lib/modules/windowsUser.inc:604 +#: ../lib/modules/windowsUser.inc:606 ../lib/modules/windowsUser.inc:608 +#: ../lib/modules/windowsUser.inc:610 ../lib/modules/windowsUser.inc:612 +#: ../lib/modules/windowsUser.inc:614 ../lib/modules/windowsUser.inc:617 +#: ../lib/modules/windowsUser.inc:619 ../lib/modules/windowsUser.inc:621 +#: ../lib/modules/windowsUser.inc:1352 ../lib/modules/windowsUser.inc:1361 +#: ../lib/modules/windowsUser.inc:1370 ../lib/modules/windowsUser.inc:1381 +#: ../lib/modules/windowsUser.inc:1448 ../lib/modules/kolabUser.inc:246 +#: ../lib/modules/kolabUser.inc:248 ../lib/modules/kolabUser.inc:250 +#: ../lib/modules/kolabUser.inc:252 ../lib/modules/kolabUser.inc:254 +#: ../lib/modules/kolabUser.inc:256 ../lib/modules/kolabUser.inc:258 +#: ../lib/modules/ddns.inc:152 ../lib/modules/nisObject.inc:124 +#: ../lib/modules/sambaGroupMapping.inc:603 +#: ../lib/modules/sambaGroupMapping.inc:604 ../lib/modules/pykotaUser.inc:312 +#: ../lib/modules/pykotaUser.inc:314 ../lib/modules/pykotaUser.inc:316 +#: ../lib/modules/pykotaUser.inc:318 ../lib/modules/pykotaUser.inc:320 +#: ../lib/modules/pykotaUser.inc:321 ../lib/modules/pykotaUser.inc:323 +#: ../lib/modules/pykotaUser.inc:325 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/shadowAccount.inc:60 ../lib/modules/shadowAccount.inc:62 +#: ../lib/modules/shadowAccount.inc:64 ../lib/modules/shadowAccount.inc:66 +#: ../lib/modules/shadowAccount.inc:67 ../lib/modules/automount.inc:115 +#: ../lib/modules/sambaDomain.inc:209 ../lib/modules/sambaDomain.inc:211 +#: ../lib/modules/sambaDomain.inc:213 ../lib/modules/sambaDomain.inc:215 +#: ../lib/modules/sambaDomain.inc:217 ../lib/modules/sambaDomain.inc:219 +#: ../lib/modules/inetOrgPerson.inc:67 ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:71 ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:75 ../lib/modules/inetOrgPerson.inc:77 +#: ../lib/modules/inetOrgPerson.inc:80 ../lib/modules/inetOrgPerson.inc:82 +#: ../lib/modules/inetOrgPerson.inc:84 ../lib/modules/inetOrgPerson.inc:86 +#: ../lib/modules/inetOrgPerson.inc:88 ../lib/modules/inetOrgPerson.inc:90 +#: ../lib/modules/inetOrgPerson.inc:92 ../lib/modules/inetOrgPerson.inc:94 +#: ../lib/modules/inetOrgPerson.inc:96 ../lib/modules/inetOrgPerson.inc:97 +#: ../lib/modules/inetOrgPerson.inc:98 ../lib/modules/inetOrgPerson.inc:104 +#: ../lib/modules/inetOrgPerson.inc:105 ../lib/modules/inetOrgPerson.inc:106 +#: ../lib/modules/systemQuotas.inc:98 ../lib/modules/systemQuotas.inc:100 +#: ../lib/modules/systemQuotas.inc:102 ../lib/modules/systemQuotas.inc:104 +#: ../lib/modules/systemQuotas.inc:106 ../lib/modules/systemQuotas.inc:108 +#: ../lib/modules/systemQuotas.inc:110 ../lib/modules/freeRadius.inc:250 +#: ../lib/modules/freeRadius.inc:252 ../lib/modules/freeRadius.inc:254 +#: ../lib/modules/freeRadius.inc:256 ../lib/modules/freeRadius.inc:258 +#: ../lib/modules/freeRadius.inc:260 ../lib/modules/sudoRole.inc:270 +#: ../lib/modules/sudoRole.inc:272 ../lib/modules/sudoRole.inc:274 +#: ../lib/modules/sudoRole.inc:276 ../lib/modules/sudoRole.inc:278 +#: ../lib/modules/sudoRole.inc:280 ../lib/modules/sudoRole.inc:282 +#: ../lib/modules/sudoRole.inc:284 ../lib/modules/sudoRole.inc:286 +#: ../lib/modules/kolabSharedFolder.inc:251 +#: ../lib/modules/kolabSharedFolder.inc:253 +#: ../lib/modules/kolabSharedFolder.inc:255 +#: ../lib/modules/kolabSharedFolder.inc:256 +#: ../lib/modules/kolabSharedFolder.inc:258 +#: ../lib/modules/kolabSharedFolder.inc:260 +#: ../lib/modules/zarafaServer.inc:174 ../lib/modules/zarafaServer.inc:176 +#: ../lib/modules/zarafaServer.inc:178 ../lib/modules/zarafaServer.inc:179 +#: ../lib/modules/asteriskVoicemail.inc:212 +#: ../lib/modules/asteriskVoicemail.inc:216 +#: ../lib/modules/asteriskVoicemail.inc:219 +#: ../lib/modules/asteriskVoicemail.inc:221 +#: ../lib/modules/asteriskVoicemail.inc:223 +#: ../lib/modules/asteriskVoicemail.inc:225 +#: ../lib/modules/asteriskVoicemail.inc:227 +#: ../lib/modules/inetLocalMailRecipient.inc:131 +#: ../lib/modules/inetLocalMailRecipient.inc:133 +#: ../lib/modules/inetLocalMailRecipient.inc:135 +#: ../lib/modules/aliasEntry.inc:86 ../lib/modules/qmailGroup.inc:421 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:426 +#: ../lib/modules/qmailGroup.inc:428 ../lib/modules/qmailGroup.inc:430 +#: ../lib/modules/qmailGroup.inc:432 ../lib/modules/qmailGroup.inc:433 +#: ../lib/modules/qmailGroup.inc:434 ../lib/modules/qmailGroup.inc:435 +#: ../lib/modules/qmailGroup.inc:436 ../lib/modules/qmailGroup.inc:437 +#: ../lib/modules/authorizedServiceObject.inc:130 +#: ../lib/modules/passwordSelfReset.inc:233 +#: ../lib/modules/heimdalKerberos.inc:254 +#: ../lib/modules/heimdalKerberos.inc:255 +#: ../lib/modules/heimdalKerberos.inc:256 +#: ../lib/modules/heimdalKerberos.inc:258 +#: ../lib/modules/heimdalKerberos.inc:260 +#: ../lib/modules/pykotaBillingCode.inc:128 +#: ../lib/modules/pykotaBillingCode.inc:130 +#: ../lib/modules/windowsGroup.inc:284 ../lib/modules/windowsGroup.inc:286 +#: ../lib/modules/windowsGroup.inc:287 ../lib/modules/windowsGroup.inc:288 +#: ../lib/modules/windowsGroup.inc:290 ../lib/modules/nisMailAlias.inc:126 +#: ../lib/modules/nisMailAlias.inc:128 ../lib/modules/hostObject.inc:111 +#, php-format +msgid "Account %s:" +msgstr "アカウント %s:" + +#: ../lib/types/asteriskExt.inc:95 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskAccount.inc:111 +#: ../lib/modules/asteriskAccount.inc:255 +#: ../lib/modules/asteriskAccount.inc:267 +#: ../lib/modules/asteriskAccount.inc:311 +#: ../lib/modules/asteriskAccount.inc:593 +#: ../lib/modules/asteriskAccount.inc:983 +#: ../lib/modules/asteriskExtension.inc:98 +#: ../lib/modules/asteriskExtension.inc:129 +#: ../lib/modules/asteriskExtension.inc:136 +#: ../lib/modules/asteriskExtension.inc:152 +#: ../lib/modules/asteriskExtension.inc:306 +#: ../lib/modules/asteriskExtension.inc:812 +#: ../lib/modules/asteriskVoicemail.inc:91 +#: ../lib/modules/asteriskVoicemail.inc:127 +#: ../lib/modules/asteriskVoicemail.inc:137 +#: ../lib/modules/asteriskVoicemail.inc:151 +#: ../lib/modules/asteriskVoicemail.inc:247 +#: ../lib/modules/asteriskVoicemail.inc:370 +msgid "Account context" +msgstr "アカウント・コンテキスト" + +#: ../lib/modules/selfRegistration.inc:449 +msgid "Account creation" +msgstr "アカウント作成" + +#: ../lib/modules/selfRegistration.inc:231 +msgid "Account creation confirmation" +msgstr "アカウント作成の確認" + +#: ../templates/masscreate.php:125 +msgid "Account creation via file upload" +msgstr "ファイルアップロードによるアカウント作成" + +#: ../lib/modules/posixAccount.inc:526 +msgid "Account deactivated" +msgstr "アカウントが無効化されました" + +#: ../templates/lists/changePassword.php:275 +msgid "Account details" +msgstr "アカウントの詳細" + +#: ../lib/types/user.inc:104 ../lib/modules/mitKerberos.inc:124 +#: ../lib/modules/mitKerberos.inc:218 ../lib/modules/mitKerberos.inc:251 +#: ../lib/modules/mitKerberos.inc:385 ../lib/modules/mitKerberos.inc:634 +#: ../lib/modules/mitKerberos.inc:783 ../lib/modules/sambaSamAccount.inc:345 +#: ../lib/modules/sambaSamAccount.inc:463 +#: ../lib/modules/sambaSamAccount.inc:1189 +#: ../lib/modules/sambaSamAccount.inc:1447 +#: ../lib/modules/sambaSamAccount.inc:1739 +#: ../lib/modules/shadowAccount.inc:128 ../lib/modules/shadowAccount.inc:193 +#: ../lib/modules/shadowAccount.inc:233 ../lib/modules/shadowAccount.inc:352 +#: ../lib/modules/shadowAccount.inc:453 ../lib/modules/shadowAccount.inc:499 +#: ../lib/modules/heimdalKerberos.inc:102 +#: ../lib/modules/heimdalKerberos.inc:187 +#: ../lib/modules/heimdalKerberos.inc:219 +#: ../lib/modules/heimdalKerberos.inc:321 +#: ../lib/modules/heimdalKerberos.inc:544 +#: ../lib/modules/heimdalKerberos.inc:679 +msgid "Account expiration date" +msgstr "アカウント失効日" + +#: ../lib/modules/shadowAccount.inc:169 +msgid "Account inactive" +msgstr "アカウントが無効です" + +#: ../lib/modules/sambaSamAccount.inc:285 +#: ../lib/modules/sambaSamAccount.inc:291 +#: ../lib/modules/sambaSamAccount.inc:455 +#: ../lib/modules/sambaSamAccount.inc:1147 +#: ../lib/modules/sambaSamAccount.inc:1735 ../lib/modules/windowsUser.inc:192 +#: ../lib/modules/windowsUser.inc:386 ../lib/modules/windowsUser.inc:517 +#: ../lib/modules/windowsUser.inc:744 ../lib/modules/windowsUser.inc:1611 +msgid "Account is deactivated" +msgstr "無効化されたアカウント" + +#: ../lib/modules/sambaSamAccount.inc:288 +#: ../lib/modules/sambaSamAccount.inc:1153 ../lib/modules/windowsUser.inc:195 +#: ../lib/modules/windowsUser.inc:725 +msgid "Account is locked" +msgstr "ロックされたアカウント" + +#: ../templates/delete.php:99 +msgid "Account name:" +msgstr "アカウント名:" + +#: ../lib/types/user.inc:305 ../lib/types/user.inc:714 +#: ../lib/types/user.inc:848 ../lib/modules/qmailUser.inc:211 +#: ../lib/modules/qmailUser.inc:283 ../lib/modules/qmailUser.inc:402 +#: ../lib/modules/qmailUser.inc:609 ../lib/modules/qmailUser.inc:1157 +msgid "Account status" +msgstr "アカウントの状態" + +#: ../templates/masscreate.php:152 ../lib/modules/asteriskAccount.inc:119 +#: ../lib/modules/asteriskAccount.inc:256 +#: ../lib/modules/asteriskAccount.inc:269 +#: ../lib/modules/asteriskAccount.inc:331 +#: ../lib/modules/asteriskAccount.inc:595 +#: ../lib/modules/asteriskAccount.inc:985 ../lib/modules/customFields.inc:524 +#: ../lib/modules/customFields.inc:566 +msgid "Account type" +msgstr "アカウント種別" + +#: ../templates/config/confmodules.php:168 +#: ../templates/config/confmain.php:209 +#: ../templates/config/moduleSettings.php:167 +#: ../templates/config/conftypes.php:186 +msgid "Account types" +msgstr "アカウント種別" + +#: ../help/help.inc:111 +msgid "Account types and modules" +msgstr "アカウント種別とモジュール" + +#: ../help/help.inc:113 +msgid "" +"Account types define which sorts of LDAP entries (e.g. users and groups) " +"should be managed. The account modules define which properties (e.g. Unix " +"and Samba) can be edited." +msgstr "" +"アカウントタイプは、管理対象となLDAPエントリの種類(e.g. users や groups)を定" +"義します。アカウントモジュールは、編集対象となるプロパティ(e.g. Unix や " +"Samba)を定義します。" + +#: ../lib/modules.inc:1307 +msgid "Account was created successfully." +msgstr "アカウントが作成されました。" + +#: ../templates/lists/changePassword.php:744 +#: ../templates/lists/changePassword.php:796 +#: ../templates/lists/changePassword.php:842 ../lib/modules.inc:1310 +msgid "Account was modified successfully." +msgstr "アカウントが変更されました。" + +#: ../lib/modules/customScripts.inc:168 +msgid "Action type" +msgstr "アクション種別" + +#: ../lib/modules/ddns.inc:81 ../lib/modules/ddns.inc:368 +msgid "Activate DynDNS" +msgstr "DynDNSを有効化" + +#: ../templates/config/confmain.php:243 +#: ../templates/selfService/adminMain.php:451 +msgid "Activate TLS" +msgstr "TLSを有効化" + +#: ../lib/modules/sambaSamAccount.inc:352 +msgid "Activate this checkbox to allow this user to use the terminal service." +msgstr "" +"このユーザーに対してターミナルサービスの利用を許可する場合に、チェックボック" +"スを有効にしてください。" + +#: ../lib/modules/sambaSamAccount.inc:373 +msgid "Activate this checkbox to connect drives from the client machine." +msgstr "" +"クライアントマシンからドライブを接続する場合に、チェックボックスを有効にして" +"ください。" + +#: ../lib/modules/sambaSamAccount.inc:376 +msgid "Activate this checkbox to connect printers from the client machine." +msgstr "" +"クライアントマシンからプリンターに接続する場合に、チェックボックスを有効にし" +"てください。" + +#: ../lib/modules/sambaSamAccount.inc:361 +msgid "" +"Activate this checkbox to inherit the initial program and working directory " +"from the client machine." +msgstr "" +"クライアントマシンの初期プログラムと作業ディレクトリを継承する場合に、チェッ" +"クボックスを有効にしてください。" + +#: ../lib/modules/sambaSamAccount.inc:379 +msgid "Activate this checkbox to set the client's printer as default printer." +msgstr "" +"クライアントのプリンタをデフォルトプリンタにする場合に、チェックボックスを有" +"効にしてください。" + +#: ../lib/modules/posixAccount.inc:478 +msgid "Activating this checkbox will remove the user's home directory." +msgstr "" +"このチェックボックスを有効にした場合、ユーザのホームディレクトリを削除しま" +"す。" + +#: ../lib/types/zarafaAddressListType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:93 +#: ../lib/modules/zarafaDynamicGroup.inc:83 +#: ../lib/modules/zarafaDynamicGroup.inc:144 +#: ../lib/modules/zarafaDynamicGroup.inc:168 +#: ../lib/modules/zarafaDynamicGroup.inc:281 +#: ../lib/modules/zarafaDynamicGroup.inc:456 ../lib/modules/qmailUser.inc:41 +#: ../lib/modules/qmailUser.inc:285 ../lib/modules/zarafaContact.inc:75 +#: ../lib/modules/zarafaContact.inc:156 ../lib/modules/zarafaContact.inc:254 +#: ../lib/modules/zarafaGroup.inc:89 ../lib/modules/zarafaGroup.inc:154 +#: ../lib/modules/zarafaGroup.inc:195 ../lib/modules/zarafaGroup.inc:302 +#: ../lib/modules/zarafaGroup.inc:660 ../lib/modules/zarafaAddressList.inc:71 +#: ../lib/modules/zarafaAddressList.inc:120 +#: ../lib/modules/zarafaAddressList.inc:142 +#: ../lib/modules/zarafaAddressList.inc:222 +#: ../lib/modules/zarafaAddressList.inc:338 ../lib/modules/zarafaUser.inc:84 +#: ../lib/modules/zarafaUser.inc:255 ../lib/modules/zarafaUser.inc:594 +#: ../lib/modules/zarafaUser.inc:1801 ../lib/modules/fixed_ip.inc:114 +#: ../lib/modules/fixed_ip.inc:438 ../lib/modules/fixed_ip.inc:743 +msgid "Active" +msgstr "有効" + +#: ../templates/config/conftypes.php:232 +msgid "Active account types" +msgstr "有効なアカウント種別" + +#: ../templates/serverInfo.php:307 ../templates/serverInfo.php:384 +#: ../templates/multiEdit.php:126 ../templates/config/profmanage.php:252 +#: ../templates/config/confmodules.php:305 +#: ../templates/config/conftypes.php:223 +#: ../templates/selfService/profManage.php:209 +#: ../templates/pdfedit/pdfpage.php:596 ../templates/pdfedit/pdfpage.php:606 +#: ../templates/pdfedit/pdfpage.php:616 ../templates/pdfedit/pdfpage.php:630 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1206 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1210 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:78 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:121 +#: ../lib/modules/pykotaPrinter.inc:269 ../lib/modules/pykotaPrinter.inc:430 +#: ../lib/modules/nisMailAliasUser.inc:162 +#: ../lib/modules/nisMailAliasUser.inc:201 +#: ../lib/modules/nisMailAliasUser.inc:387 +#: ../lib/modules/zarafaContact.inc:390 ../lib/modules/zarafaGroup.inc:450 +#: ../lib/modules/device.inc:253 ../lib/modules/zarafaUser.inc:874 +#: ../lib/modules/zarafaUser.inc:1462 ../lib/modules/zarafaUser.inc:1494 +#: ../lib/modules/bindDLZ.inc:668 ../lib/modules/bindDLZ.inc:760 +#: ../lib/modules/bindDLZ.inc:840 ../lib/modules/bindDLZ.inc:944 +#: ../lib/modules/bindDLZ.inc:1060 ../lib/modules/bindDLZ.inc:1172 +#: ../lib/modules/bindDLZ.inc:1268 ../lib/modules/bindDLZ.inc:1382 +#: ../lib/modules/kolabUser.inc:835 ../lib/modules/kolabUser.inc:883 +#: ../lib/modules/sambaGroupMapping.inc:392 +#: ../lib/modules/sambaGroupMapping.inc:489 ../lib/modules/pykotaUser.inc:377 +#: ../lib/modules/ldapPublicKey.inc:267 ../lib/modules/ldapPublicKey.inc:277 +#: ../lib/modules/nisnetgroup.inc:282 ../lib/modules/inetOrgPerson.inc:1709 +#: ../lib/modules/sudoRole.inc:321 ../lib/modules/sudoRole.inc:348 +#: ../lib/modules/sudoRole.inc:375 ../lib/modules/sudoRole.inc:402 +#: ../lib/modules/sudoRole.inc:429 ../lib/modules/sudoRole.inc:456 +#: ../lib/modules/customFields.inc:1083 ../lib/modules/customFields.inc:2091 +#: ../lib/modules/customFields.inc:2101 ../lib/modules/qmailGroup.inc:822 +#: ../lib/modules/organizationalRole.inc:317 ../lib/modules/fixed_ip.inc:586 +#: ../lib/modules/windowsGroup.inc:556 ../lib/modules/groupOfNames.inc:374 +#: ../lib/modules/groupOfNames.inc:529 +msgid "Add" +msgstr "追加" + +#: ../lib/modules/asteriskAccount.inc:762 +msgid "Add Asterisk account" +msgstr "Asteriskアカウントを追加" + +#: ../lib/modules/asteriskVoicemail.inc:269 +msgid "Add Asterisk voicemail extension" +msgstr "Asteriskボイスメール拡張" + +#: ../lib/modules/authorizedServiceObject.inc:175 +msgid "Add Authorized Service extension" +msgstr "Asteriskサービス拡張を追加" + +#: ../lib/modules/eduPerson.inc:360 +msgid "Add EDU person extension" +msgstr "EDU person拡張を追加" + +#: ../lib/modules/freeRadius.inc:312 +msgid "Add FreeRadius extension" +msgstr "FreeRadius拡張を追加" + +#: ../lib/modules/ipHost.inc:165 +msgid "Add IP address extension" +msgstr "IPアドレス拡張を追加" + +#: ../lib/modules/mitKerberos.inc:478 ../lib/modules/heimdalKerberos.inc:402 +msgid "Add Kerberos extension" +msgstr "Kerberos拡張を追加" + +#: ../lib/modules/kolabGroup.inc:121 ../lib/modules/kolabGroup.inc:133 +#: ../lib/modules/kolabGroup.inc:220 ../lib/modules/kolabUser.inc:394 +msgid "Add Kolab extension" +msgstr "Kolab拡張を追加" + +#: ../lib/modules/puppetClient.inc:224 +msgid "Add Puppet extension" +msgstr "Puppet拡張を追加" + +#: ../lib/modules/pykotaGroup.inc:245 ../lib/modules/pykotaUser.inc:425 +msgid "Add PyKota extension" +msgstr "PyKota拡張を追加" + +#: ../lib/modules/sambaSamAccount.inc:1311 +#: ../lib/modules/sambaGroupMapping.inc:428 +msgid "Add Samba 3 extension" +msgstr "Samba 3拡張を追加" + +#: ../lib/modules/shadowAccount.inc:380 +msgid "Add Shadow account extension" +msgstr "Shadowアカウント拡張を追加" + +#: ../lib/modules/posixGroup.inc:253 ../lib/modules/posixAccount.inc:1518 +msgid "Add Unix extension" +msgstr "unix拡張を追加" + +#: ../lib/modules/zarafaContact.inc:134 ../lib/modules/zarafaContact.inc:202 +msgid "Add Zarafa contact extension" +msgstr "Zarafa連絡先拡張を追加" + +#: ../lib/modules/zarafaContact.inc:110 ../lib/modules/zarafaContact.inc:111 +#: ../lib/modules/zarafaGroup.inc:312 ../lib/modules/zarafaUser.inc:167 +#: ../lib/modules/zarafaUser.inc:168 ../lib/modules/zarafaUser.inc:179 +#: ../lib/modules/zarafaUser.inc:438 ../lib/modules/zarafaServer.inc:237 +msgid "Add Zarafa extension" +msgstr "Zarafa拡張を追加" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add all" +msgstr "全て追加" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2073 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2091 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "Add an additional value to attribute" +msgstr "追加の値を属性に追加" + +#: ../lib/modules/asteriskExtension.inc:350 +msgid "Add another rule" +msgstr "他のルールを追加" + +#: ../lib/modules/inetOrgPerson.inc:1744 +#: ../lib/modules/organizationalRole.inc:322 +#: ../lib/modules/groupOfNames.inc:379 ../lib/modules/groupOfNames.inc:534 +msgid "Add entries" +msgstr "エントリを追加" + +#: ../lib/modules/zarafaContact.inc:429 ../lib/modules/zarafaGroup.inc:489 +#: ../lib/modules/device.inc:296 ../lib/modules/zarafaUser.inc:913 +#: ../lib/modules/sambaGroupMapping.inc:504 ../lib/modules/qmailGroup.inc:858 +#: ../lib/modules/organizationalRole.inc:333 +#: ../lib/modules/windowsGroup.inc:599 ../lib/modules/groupOfNames.inc:390 +#: ../lib/modules/groupOfNames.inc:545 +msgid "Add entries of this type:" +msgstr "この型のエントリを追加:" + +#: ../lib/modules/fixed_ip.inc:544 +msgid "Add existing host" +msgstr "既存のホストを追加" + +#: ../lib/modules/customFields.inc:439 +msgid "Add extension" +msgstr "拡張を追加" + +#: ../lib/modules/ddns.inc:369 +msgid "Add fix IP addresses to DNS" +msgstr "固定IPアドレスをDNSに追加" + +#: ../lib/modules/hostObject.inc:152 +msgid "Add host extension" +msgstr "ホスト拡張を追加" + +#: ../templates/selfService/adminMain.php:631 ../help/help.inc:232 +msgid "Add input field" +msgstr "入力フィールドの追加" + +#: ../templates/multiEdit.php:148 +msgid "Add more fields" +msgstr "フィールドの追加" + +#: ../lib/modules/customFields.inc:2973 +msgid "Add more mapping fields" +msgstr "マッピング・フィールドの追加" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:37 +#, php-format +msgid "Add new %s value to %s" +msgstr "Add new %s value to %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1208 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:29 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:48 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:166 +msgid "Add new attribute" +msgstr "新しい属性の追加" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1207 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +msgid "Add new attribute to this object" +msgstr "新しい属性をオブジェクトに追加" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:89 +msgid "Add new binary attribute" +msgstr "新しいバイナリ属性の追加" + +#: ../lib/modules/customFields.inc:1082 ../lib/modules/customFields.inc:1083 +msgid "Add new field" +msgstr "新しいフィールドの追加" + +#: ../templates/selfService/adminMain.php:623 ../help/help.inc:230 +msgid "Add new group" +msgstr "新しいグループの追加" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:117 +msgid "Add new object class" +msgstr "新しいオブジェクトクラスを追加" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:60 +#, php-format +msgid "Add new object class to %s" +msgstr "%s に新しいオブジェクトクラスを追加" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:94 +msgid "Add object class and attributes" +msgstr "オブジェクトクラスと属性を追加" + +#: ../lib/modules/passwordSelfReset.inc:245 +msgid "Add password self reset extension" +msgstr "パスワード・セルフ・リセット拡張を追加" + +#: ../lib/modules/inetOrgPerson.inc:748 ../lib/modules/inetOrgPerson.inc:1585 +#: ../lib/modules/inetOrgPerson.inc:1668 ../lib/modules/inetOrgPerson.inc:2656 +msgid "Add photo" +msgstr "写真を追加" + +#: ../templates/config/profmanage.php:239 +#: ../templates/config/profmanage.php:253 +#: ../templates/selfService/profManage.php:202 +#: ../templates/selfService/profManage.php:210 ../help/help.inc:130 +msgid "Add profile" +msgstr "プロファイル追加" + +#: ../lib/modules/qmailUser.inc:712 ../lib/modules/qmailGroup.inc:633 +msgid "Add qmail extension" +msgstr "qmail拡張を追加" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add selected" +msgstr "選択項目を追加" + +#: ../lib/modules/nisMailAliasUser.inc:374 +msgid "Add to existing alias" +msgstr "既存のエイリアスへ追加" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:149 +msgid "Add value" +msgstr "値の追加" + +#: ../templates/3rdParty/pla/htdocs/import.php:28 +msgid "Adding" +msgstr "追加中" + +#: ../lib/modules/range.inc:115 +msgid "Adding the range failed because errors occured." +msgstr "エラーが発生したため範囲の追加に失敗しました。" + +#: ../templates/selfService/adminMain.php:527 ../help/help.inc:236 +msgid "Additional CSS links" +msgstr "追加のCSSリンク" + +#: ../templates/config/conftypes.php:274 +#: ../templates/selfService/adminMain.php:472 ../help/help.inc:170 +#: ../help/help.inc:240 +msgid "Additional LDAP filter" +msgstr "追加のLDAPフィルター" + +#: ../lib/modules/zarafaDynamicGroup.inc:72 +#: ../lib/modules/zarafaDynamicGroup.inc:76 ../lib/modules/zarafaGroup.inc:74 +#: ../lib/modules/zarafaGroup.inc:78 +msgid "Additional email addresses for this entry." +msgstr "このエントリに対する追加の電子メール・アドレス。" + +#: ../lib/modules/posixAccount.inc:304 ../lib/modules/posixAccount.inc:415 +#: ../lib/modules/posixAccount.inc:469 ../lib/modules/posixAccount.inc:534 +#: ../lib/modules/posixAccount.inc:1453 ../lib/modules/posixAccount.inc:1737 +#: ../lib/modules/posixAccount.inc:1848 +msgid "Additional groups" +msgstr "追加のグループ" + +#: ../lib/modules/windowsGroup.inc:123 +msgid "Additional notes to describe this entry." +msgstr "このエントリを説明する追加情報。" + +#: ../templates/config/mainmanage.php:440 +msgid "Additional options" +msgstr "追加のオプション" + +#: ../templates/massDoUpload.php:160 +msgid "Additional tasks for module:" +msgstr "モジュールに対する追加タスク:" + +#: ../lib/modules/windowsUser.inc:707 ../lib/modules/inetOrgPerson.inc:1219 +msgid "Address" +msgstr "住所" + +#: ../lib/types/zarafaAddressListType.inc:144 +#, php-format +msgid "Address list count: %s" +msgstr "アドレス・リスト数: %s" + +#: ../lib/modules/imapAccess.inc:78 +msgid "Address of IMAP server (e.g. mail.example.org)." +msgstr "IMAPサーバーのアドレス(例 mail.example.org)。" + +#: ../help/help.inc:231 +msgid "" +"Adds a new group element to the list of self service options. Use this to " +"structure the input fields." +msgstr "" +"セルフサービス・オプションのリストに新しいグループ要素を追加します。入力" +"フィールドを構造化するために使用します。" + +#: ../help/help.inc:233 +msgid "Adds a new self service option to the selected group element." +msgstr "選択したグループ要素に新しいセルフサービス・オプションを追加します。" + +#: ../lib/modules/range.inc:102 +msgid "Adds input fields for a new IP range." +msgstr "新しいIPアドレス範囲の入力フィールを追加する。" + +#: ../lib/modules/pykotaUser.inc:153 +msgid "Adds the amount to the user's balance. You can also specify a comment." +msgstr "ユーザーの課金残高を追加します。コメントを指定する事もできます。" + +#: ../lib/modules/kolabUser.inc:171 +msgid "Adds the object class \"mailrecipient\" to all user accounts." +msgstr "" +"全てのアカウントに対してオブジェクトクラス \"mailrecipient\" を追加します。" + +#: ../lib/modules/kolabGroup.inc:122 +msgid "Adds this Kolab extension." +msgstr "このKolab拡張を追加" + +#: ../lib/modules/zarafaUser.inc:108 ../lib/modules/zarafaUser.inc:282 +#: ../lib/modules/zarafaUser.inc:340 ../lib/modules/zarafaUser.inc:603 +#: ../lib/modules/zarafaUser.inc:1262 +msgid "Admin" +msgstr "管理" + +#: ../lib/modules/selfRegistration.inc:61 +#: ../lib/modules/selfRegistration.inc:199 +#: ../lib/modules/passwordSelfReset.inc:104 +#: ../lib/modules/passwordSelfReset.inc:518 +msgid "Admin DN" +msgstr "管理者DN" + +#: ../lib/modules/bindDLZ.inc:224 ../lib/modules/bindDLZ.inc:344 +#: ../lib/modules/bindDLZ.inc:421 ../lib/modules/bindDLZ.inc:522 +#: ../lib/modules/bindDLZ.inc:1044 ../lib/modules/bindDLZ.inc:1546 +msgid "Admin email" +msgstr "管理者のメール" + +#: ../lib/modules/selfRegistration.inc:65 +#: ../lib/modules/selfRegistration.inc:204 ../lib/modules/imapAccess.inc:136 +#: ../lib/modules/passwordSelfReset.inc:108 +#: ../lib/modules/passwordSelfReset.inc:522 +msgid "Admin password" +msgstr "管理者パスワード" + +#: ../lib/modules/inetOrgPerson.inc:371 ../lib/modules/inetOrgPerson.inc:485 +#: ../lib/modules/inetOrgPerson.inc:493 +msgid "Administration" +msgstr "管理" + +#: ../lib/modules/posixGroup.inc:473 ../lib/modules/pykotaGroup.inc:168 +#: ../lib/modules/nisnetgroup.inc:122 +#: ../lib/modules/organizationalRole.inc:125 +#: ../lib/modules/groupOfNames.inc:137 +msgid "Administrators group" +msgstr "管理者グループ" + +#: ../templates/config/confmain.php:276 ../templates/config/conftypes.php:320 +#: ../lib/modules/posixAccount.inc:271 ../lib/modules/inetOrgPerson.inc:3616 +msgid "Advanced options" +msgstr "高度なオプション" + +#: ../lib/modules/eduPerson.inc:105 ../lib/modules/eduPerson.inc:109 +#: ../lib/modules/eduPerson.inc:181 ../lib/modules/eduPerson.inc:225 +#: ../lib/modules/eduPerson.inc:328 ../lib/modules/eduPerson.inc:585 +msgid "Affiliations" +msgstr "所属" + +#: ../lib/modules/sambaSamAccount.inc:555 +msgid "Alaska" +msgstr "Alaska" + +#: ../lib/modules/sambaDomain.inc:218 ../lib/modules/sambaDomain.inc:219 +msgid "Algorithmic RID base is not a number!" +msgstr "アルゴリズム的なRIDベースが数字でありません!" + +#: ../lib/modules/customFields.inc:76 ../lib/modules/customFields.inc:528 +#: ../lib/modules/customFields.inc:569 ../lib/modules/aliasEntry.inc:45 +msgid "Alias" +msgstr "エイリアス" + +#: ../lib/types/mailAlias.inc:141 ../lib/types/alias.inc:141 +#, php-format +msgid "Alias count: %s" +msgstr "エイリアス・アカウント: %s" + +#: ../lib/types/alias.inc:62 +msgid "Alias entries" +msgstr "エイリアス・エントリ" + +#: ../lib/modules/nisMailAlias.inc:125 ../lib/modules/nisMailAlias.inc:126 +msgid "Alias is empty or invalid!" +msgstr "エイリアスが空または無効です!" + +#: ../lib/types/mailAlias.inc:91 ../lib/modules/nisMailAliasUser.inc:96 +#: ../lib/modules/nisMailAliasUser.inc:364 ../lib/modules/bindDLZ.inc:128 +#: ../lib/modules/bindDLZ.inc:261 ../lib/modules/bindDLZ.inc:412 +#: ../lib/modules/bindDLZ.inc:490 ../lib/modules/bindDLZ.inc:829 +#: ../lib/modules/bindDLZ.inc:1531 ../lib/modules/nisMailAlias.inc:81 +#: ../lib/modules/nisMailAlias.inc:101 ../lib/modules/nisMailAlias.inc:115 +#: ../lib/modules/nisMailAlias.inc:163 ../lib/modules/nisMailAlias.inc:475 +msgid "Alias name" +msgstr "エイリアス名" + +#: ../lib/modules/bindDLZ.inc:827 +msgid "Alias name (\"CNAME\" record)" +msgstr "エイリアス名 (\"CNAME\" レコード)" + +#: ../lib/modules/nisMailAliasUser.inc:120 +msgid "Alias name already exists." +msgstr "エイリアス名は既に存在しています。" + +#: ../lib/modules/nisMailAliasUser.inc:119 +msgid "Alias name is invalid." +msgstr "エイリアス名が無効です。" + +#: ../lib/modules/nisMailAliasUser.inc:100 +#: ../lib/modules/nisMailAliasUser.inc:110 +#: ../lib/modules/nisMailAliasUser.inc:382 +#: ../lib/modules/nisMailAliasUser.inc:541 +msgid "Alias names" +msgstr "エイリアス名" + +#: ../lib/modules/nisMailAliasUser.inc:84 +#: ../lib/modules/nisMailAliasUser.inc:88 +msgid "Alias names with email address" +msgstr "エイリアス名とeメールアドレス" + +#: ../lib/modules/nisMailAliasUser.inc:76 +#: ../lib/modules/nisMailAliasUser.inc:80 +msgid "Alias names with user name" +msgstr "エイリアス名とユーザー名" + +#: ../lib/modules/bindDLZ.inc:413 ../lib/modules/bindDLZ.inc:1532 +msgid "Alias timeout" +msgstr "エイリアスのタイムアウト" + +#: ../lib/types/alias.inc:92 ../lib/modules/customScripts.inc:52 +#: ../lib/modules/uidObject.inc:59 ../lib/modules/aliasEntry.inc:61 +#: ../lib/modules/aliasEntry.inc:69 ../lib/modules/aliasEntry.inc:77 +#: ../lib/modules/aliasEntry.inc:98 ../lib/modules/aliasEntry.inc:107 +#: ../lib/modules/aliasEntry.inc:228 +msgid "Aliased entry" +msgstr "別名化エントリ" + +#: ../templates/schema/schema.php:226 ../lib/types/alias.inc:53 +msgid "Aliases" +msgstr "エイリアス" + +#: ../lib/modules/nisMailAliasUser.inc:169 +#: ../lib/modules/nisMailAliasUser.inc:569 +msgid "Aliases for email" +msgstr "eメールのエイリアス" + +#: ../lib/modules/nisMailAliasUser.inc:139 +#: ../lib/modules/nisMailAliasUser.inc:567 +msgid "Aliases for user name" +msgstr "ユーザー名のエイリアス" + +#: ../lib/lists.inc:702 +#, php-format +msgid "All accounts (%s)" +msgstr "全てのアカウント (%s)" + +#: ../templates/selfService/selfServiceMain.php:368 +#: ../templates/initsuff.php:158 +msgid "All changes were successful." +msgstr "すべての変更が成功しました。" + +#: ../lib/lists.inc:701 +#, php-format +msgid "All selected accounts (%s)" +msgstr "全ての選択されたアカウント (%s)" + +#: ../lib/modules/dhcp_settings.inc:103 +msgid "Allow" +msgstr "許可" + +#: ../templates/config/confmain.php:362 ../help/help.inc:259 +msgid "Allow alternate address" +msgstr "代替アドレスを許可" + +#: ../lib/modules/sambaDomain.inc:117 ../lib/modules/sambaDomain.inc:194 +#: ../lib/modules/sambaDomain.inc:308 ../lib/modules/sambaDomain.inc:626 +msgid "Allow machine password changes" +msgstr "マシンパスワードの変更を許可" + +#: ../lib/modules/customFields.inc:144 ../lib/modules/customFields.inc:148 +#: ../lib/modules/customFields.inc:3140 +msgid "Allow multiple values" +msgstr "複数の値を許容" + +#: ../lib/types/ppolicyType.inc:90 ../lib/modules/ppolicy.inc:132 +#: ../lib/modules/ppolicy.inc:155 ../lib/modules/ppolicy.inc:294 +#: ../lib/modules/ppolicy.inc:505 +msgid "Allow password change" +msgstr "パスワードの変更を許可" + +#: ../lib/modules/sambaSamAccount.inc:229 +#: ../lib/modules/sambaSamAccount.inc:351 +#: ../lib/modules/sambaSamAccount.inc:1499 +#: ../lib/modules/sambaSamAccount.inc:1915 +msgid "Allow terminal server login" +msgstr "ターミナルサーバログインを許可" + +#: ../templates/selfService/adminMain.php:589 +msgid "Allow user input for this field." +msgstr "このフィールドに対するユーザー入力を許可します。" + +#: ../lib/modules/asteriskAccount.inc:203 +#: ../lib/modules/asteriskAccount.inc:289 +#: ../lib/modules/asteriskAccount.inc:479 +#: ../lib/modules/asteriskAccount.inc:713 +#: ../lib/modules/asteriskAccount.inc:1005 +#: ../lib/modules/asteriskAccount.inc:1279 +msgid "Allowed codec" +msgstr "許可されたコーデック" + +#: ../templates/config/mainmanage.php:299 ../lib/types/user.inc:95 +#: ../help/help.inc:152 +msgid "Allowed hosts" +msgstr "許可されたホスト" + +#: ../templates/config/mainmanage.php:301 +msgid "Allowed hosts (self service)" +msgstr "許可されたホスト(セルフサービス)" + +#: ../lib/modules/kolabGroup.inc:95 ../lib/modules/kolabGroup.inc:99 +#: ../lib/modules/kolabGroup.inc:141 ../lib/modules/kolabGroup.inc:164 +#: ../lib/modules/kolabGroup.inc:181 ../lib/modules/kolabGroup.inc:205 +#: ../lib/modules/kolabGroup.inc:424 ../lib/modules/kolabUser.inc:152 +#: ../lib/modules/kolabUser.inc:156 ../lib/modules/kolabUser.inc:217 +#: ../lib/modules/kolabUser.inc:235 ../lib/modules/kolabUser.inc:253 +#: ../lib/modules/kolabUser.inc:381 ../lib/modules/kolabUser.inc:766 +#: ../lib/modules/kolabSharedFolder.inc:120 +#: ../lib/modules/kolabSharedFolder.inc:124 +#: ../lib/modules/kolabSharedFolder.inc:208 +#: ../lib/modules/kolabSharedFolder.inc:234 +#: ../lib/modules/kolabSharedFolder.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:307 +#: ../lib/modules/kolabSharedFolder.inc:561 +msgid "Allowed recipients" +msgstr "許可された受信者" + +#: ../lib/modules/kolabGroup.inc:104 ../lib/modules/kolabGroup.inc:108 +#: ../lib/modules/kolabGroup.inc:147 ../lib/modules/kolabGroup.inc:165 +#: ../lib/modules/kolabGroup.inc:183 ../lib/modules/kolabGroup.inc:207 +#: ../lib/modules/kolabGroup.inc:425 ../lib/modules/kolabUser.inc:161 +#: ../lib/modules/kolabUser.inc:165 ../lib/modules/kolabUser.inc:223 +#: ../lib/modules/kolabUser.inc:236 ../lib/modules/kolabUser.inc:255 +#: ../lib/modules/kolabUser.inc:383 ../lib/modules/kolabUser.inc:767 +#: ../lib/modules/kolabSharedFolder.inc:129 +#: ../lib/modules/kolabSharedFolder.inc:133 +#: ../lib/modules/kolabSharedFolder.inc:214 +#: ../lib/modules/kolabSharedFolder.inc:235 +#: ../lib/modules/kolabSharedFolder.inc:252 +#: ../lib/modules/kolabSharedFolder.inc:309 +#: ../lib/modules/kolabSharedFolder.inc:562 +msgid "Allowed senders" +msgstr "許可された送信者" + +#: ../lib/modules/sambaSamAccount.inc:1337 +#: ../lib/modules/sambaSamAccount.inc:1338 +msgid "Allowed workstations" +msgstr "許可されたワークステーション" + +#: ../lib/modules/customFields.inc:149 +msgid "Allows to enter multiple values for this attribute." +msgstr "この属性に複数の値を入力できるようにします。" + +#: ../lib/modules/customFields.inc:145 +msgid "Allows to select multiple values from the list." +msgstr "リストから複数の値を選択できるようにします。" + +#: ../lib/modules/sambaSamAccount.inc:570 +msgid "Almaty, Dhaka, Colombo" +msgstr "Almaty, Dhaka, Colombo" + +#: ../templates/lists/changePassword.php:334 +#: ../templates/lists/changePassword.php:370 ../lib/modules/qmailUser.inc:203 +#: ../lib/modules/qmailUser.inc:271 ../lib/modules/qmailUser.inc:400 +#: ../lib/modules/qmailUser.inc:450 ../lib/modules/qmailUser.inc:520 +#: ../lib/modules/qmailUser.inc:1140 ../lib/modules/qmailGroup.inc:131 +#: ../lib/modules/qmailGroup.inc:135 ../lib/modules/qmailGroup.inc:247 +#: ../lib/modules/qmailGroup.inc:370 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:484 ../lib/modules/qmailGroup.inc:1057 +msgid "Alternate address" +msgstr "代替アドレス" + +#: ../lib/modules.inc:1071 ../lib/modules.inc:1170 ../help/help.inc:214 +msgid "Alternate recipient" +msgstr "代替受信者" + +#: ../lib/modules/kolabUser.inc:50 +msgid "Always accept" +msgstr "常に許可" + +#: ../lib/modules/kolabUser.inc:51 +msgid "Always reject" +msgstr "常に拒否" + +#: ../lib/modules/pykotaUser.inc:372 ../lib/modules/pykotaUser.inc:597 +#: ../lib/modules/pykotaUser.inc:906 ../lib/modules/pykotaUser.inc:965 +msgid "Amount" +msgstr "量" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1018 +#, php-format +msgid "An attribute (%s) was modified and is highlighted below." +msgstr "属性(%s)が変更され、ハイライト表示されています。" + +#: ../lib/modules/sudoRole.inc:268 +msgid "An sudo role with this name already exists. Please choose another name." +msgstr "sudoロール名がすでに使用されています。他の名前を選択してください。" + +#: ../lib/modules/passwordSelfReset.inc:84 +#: ../lib/modules/passwordSelfReset.inc:183 +#: ../lib/modules/passwordSelfReset.inc:198 +#: ../lib/modules/passwordSelfReset.inc:219 +#: ../lib/modules/passwordSelfReset.inc:265 +#: ../lib/modules/passwordSelfReset.inc:384 +#: ../lib/modules/passwordSelfReset.inc:663 +#: ../lib/modules/passwordSelfReset.inc:1046 +msgid "Answer" +msgstr "回答" + +#: ../lib/modules/kolabUser.inc:331 ../lib/modules/kolabUser.inc:756 +#: ../lib/modules/kolabUser.inc:858 ../lib/modules/kolabUser.inc:861 +msgid "Anyone" +msgstr "誰か" + +#: ../lib/modules/customFields.inc:506 +msgid "Appearance" +msgstr "外観" + +#: ../lib/modules/asteriskExtension.inc:110 +#: ../lib/modules/asteriskExtension.inc:165 +#: ../lib/modules/asteriskExtension.inc:366 +#: ../lib/modules/asteriskExtension.inc:823 +msgid "Application" +msgstr "アプリケーション" + +#: ../lib/modules/asteriskExtension.inc:94 +#: ../lib/modules/asteriskExtension.inc:172 +#: ../lib/modules/asteriskExtension.inc:374 +#: ../lib/modules/asteriskExtension.inc:824 +msgid "Application data" +msgstr "アプリケーション・データ" + +#: ../templates/multiEdit.php:166 +msgid "Apply changes" +msgstr "変更を適用する" + +#: ../lib/modules/zarafaUser.inc:159 ../lib/modules/zarafaUser.inc:163 +#: ../lib/modules/zarafaUser.inc:315 ../lib/modules/zarafaUser.inc:379 +#: ../lib/modules/zarafaUser.inc:554 ../lib/modules/zarafaUser.inc:957 +#: ../lib/modules/zarafaUser.inc:1236 ../lib/modules/zarafaUser.inc:1317 +#: ../lib/modules/zarafaUser.inc:1803 +msgid "Archive servers" +msgstr "アーカイブ・サーバー" + +#: ../lib/modules/zarafaUser.inc:552 +msgid "Archiving" +msgstr "アーカイブ中" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:53 +msgid "Are you sure you want to permanently delete these objects?" +msgstr "これらのオブジェクトを恒久的に削除しますか?" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:107 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:51 +msgid "Are you sure you want to permanently delete this object?" +msgstr "本当にこのオブジェクトを削除しますか?" + +#: ../lib/modules/imapAccess.inc:129 +msgid "Ask" +msgstr "問い合わせ" + +#: ../lib/modules/eduPerson.inc:142 ../lib/modules/eduPerson.inc:146 +#: ../lib/modules/eduPerson.inc:218 ../lib/modules/eduPerson.inc:234 +#: ../lib/modules/eduPerson.inc:352 ../lib/modules/eduPerson.inc:590 +msgid "Assurance profiles" +msgstr "保証プロファイル" + +#: ../lib/modules/eduPerson.inc:143 ../lib/modules/eduPerson.inc:147 +msgid "" +"Assurance profiles are the set of standards that are met by an identity " +"assertion." +msgstr "保証プロファイルは同一性が認められたプロファイル標準の集合です。" + +#: ../lib/modules/asteriskAccount.inc:73 +msgid "Asterisk" +msgstr "Asterisk" + +#: ../lib/modules/asteriskAccount.inc:132 +msgid "Asterisk AMA (Automated Message Accounting) flags." +msgstr "Asterisk AMA (Automated Message Accounting) フラグ." + +#: ../lib/modules/asteriskExtension.inc:79 +msgid "Asterisk extension" +msgstr "Asterisk拡張" + +#: ../lib/types/asteriskExt.inc:56 +msgid "Asterisk extensions" +msgstr "Asterisk拡張" + +#: ../lib/types/asteriskExt.inc:65 +msgid "Asterisk extensions entries" +msgstr "Asterisk拡張エントリ" + +#: ../lib/modules/asteriskAccount.inc:123 +#: ../lib/modules/asteriskAccount.inc:249 +#: ../lib/modules/asteriskAccount.inc:1233 +msgid "Asterisk realm" +msgstr "Asteriskレルム" + +#: ../lib/modules/asteriskVoicemail.inc:71 +msgid "Asterisk voicemail" +msgstr "Asteriskボイスメール" + +#: ../lib/modules/asteriskVoicemail.inc:120 +msgid "Asterisk voicemail context." +msgstr "Asteriskボイスメール・コンテキスト" + +#: ../lib/modules/sambaSamAccount.inc:560 +msgid "Atlantic time (Canada), Caracas" +msgstr "Atlantic time (Canada), Caracas" + +#: ../templates/3rdParty/pla/lib/import_functions.php:455 +msgid "Attempting to delete a non existent attribute" +msgstr "存在しない属性を削除しています" + +#: ../templates/3rdParty/pla/lib/import_functions.php:466 +msgid "Attempting to replace a non existant attribute" +msgstr "存在しない属性を置換しています" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Attribute" +msgstr "属性" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:137 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:72 +msgid "Attribute doesn't exist" +msgstr "属性が存在しません" + +#: ../templates/multiEdit.php:119 ../lib/modules/customFields.inc:92 +#: ../lib/modules/customFields.inc:1060 ../lib/modules/customFields.inc:1710 +msgid "Attribute name" +msgstr "属性名" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:117 +msgid "Attribute not available" +msgstr "属性が利用できません" + +#: ../templates/3rdParty/pla/lib/import_functions.php:535 +msgid "Attribute not valid" +msgstr "属性が無効です" + +#: ../templates/schema/schema.php:69 ../templates/schema/schema.php:70 +msgid "Attribute types" +msgstr "属性タイプ" + +#: ../lib/modules/selfRegistration.inc:78 +#: ../lib/modules/selfRegistration.inc:220 +msgid "Attributes" +msgstr "属性" + +#: ../lib/modules/sambaSamAccount.inc:576 +msgid "Auckland, Fiji, Kamchatka" +msgstr "Auckland, Fiji, Kamchatka" + +#: ../lib/modules/asteriskAccount.inc:124 +msgid "" +"Authentication realm for Asterisk server (default: asterisk). This value set " +"in sip.conf (option: \"realm\")." +msgstr "" +"Asteriskサーバーに対する認証レルム(default: asterisk)。この値は sip.conf で設" +"定されます (option: \"realm\")。" + +#: ../lib/modules/asteriskAccount.inc:232 +msgid "Authentication user for outbound proxies." +msgstr "発信プロキシの認証ユーザー。" + +#: ../lib/modules/bindDLZ.inc:1013 +msgid "Authoritative information (\"SOA\" record)" +msgstr "権威情報 (\"SOA\" レコード)" + +#: ../lib/modules/authorizedServiceObject.inc:71 +#: ../lib/modules/authorizedServiceObject.inc:81 +#: ../lib/modules/authorizedServiceObject.inc:85 +#: ../lib/modules/authorizedServiceObject.inc:105 +#: ../lib/modules/authorizedServiceObject.inc:112 +#: ../lib/modules/authorizedServiceObject.inc:116 +#: ../lib/modules/authorizedServiceObject.inc:168 +#: ../lib/modules/authorizedServiceObject.inc:243 +msgid "Authorized Services" +msgstr "Authorized Services" + +#: ../lib/modules/authorizedServiceObject.inc:129 +msgid "Authorized services are invalid." +msgstr "Authorized servicesが無効です。" + +#: ../lib/modules/customFields.inc:152 ../lib/modules/customFields.inc:1917 +msgid "Auto-completion" +msgstr "自動補完" + +#: ../lib/modules/bindDLZ.inc:232 ../lib/modules/bindDLZ.inc:2526 +msgid "Automatic PTR changes" +msgstr "自動PTR変更" + +#: ../lib/modules/customScripts.inc:167 +msgid "Automatical scripts" +msgstr "自動スクリプト" + +#: ../lib/modules/kolabGroup.inc:117 ../lib/modules/kolabGroup.inc:127 +#: ../lib/modules/puppetClient.inc:108 ../lib/modules/puppetClient.inc:160 +#: ../lib/modules/qmailUser.inc:131 ../lib/modules/qmailUser.inc:263 +#: ../lib/modules/zarafaContact.inc:87 ../lib/modules/zarafaContact.inc:583 +#: ../lib/modules/posixGroup.inc:396 ../lib/modules/posixGroup.inc:537 +#: ../lib/modules/eduPerson.inc:150 ../lib/modules/eduPerson.inc:155 +#: ../lib/modules/pykotaGroup.inc:129 ../lib/modules/pykotaGroup.inc:140 +#: ../lib/modules/sambaSamAccount.inc:165 +#: ../lib/modules/sambaSamAccount.inc:402 ../lib/modules/posixAccount.inc:432 +#: ../lib/modules/posixAccount.inc:1784 ../lib/modules/zarafaUser.inc:136 +#: ../lib/modules/zarafaUser.inc:1303 ../lib/modules/pykotaUser.inc:160 +#: ../lib/modules/pykotaUser.inc:173 ../lib/modules/shadowAccount.inc:106 +#: ../lib/modules/shadowAccount.inc:197 ../lib/modules/customFields.inc:856 +#: ../lib/modules/qmailGroup.inc:101 ../lib/modules/qmailGroup.inc:232 +#: ../lib/modules/authorizedServiceObject.inc:89 +#: ../lib/modules/authorizedServiceObject.inc:117 +#: ../lib/modules/passwordSelfReset.inc:152 +#: ../lib/modules/passwordSelfReset.inc:167 ../lib/modules/hostObject.inc:83 +#: ../lib/modules/hostObject.inc:101 +msgid "Automatically add this extension" +msgstr "この拡張を自動的に追加" + +#: ../lib/modules/bindDLZ.inc:233 +msgid "" +"Automatically adds and removes PTR entries when A/AAAA records are created " +"or deleted." +msgstr "A/AAAAレコードが生成または消去された時、PTRエントリを自動的に追加または削除します。" + +#: ../lib/types/automountType.inc:48 ../lib/types/automountType.inc:57 +msgid "Automount entries" +msgstr "自動マウント・エントリ" + +#: ../lib/types/automountType.inc:87 ../lib/modules/automount.inc:50 +#: ../lib/modules/automount.inc:68 ../lib/modules/automount.inc:88 +#: ../lib/modules/automount.inc:104 ../lib/modules/automount.inc:114 +#: ../lib/modules/automount.inc:131 ../lib/modules/automount.inc:182 +msgid "Automount entry" +msgstr "自動マウント・エントリー" + +#: ../lib/modules/automount.inc:114 ../lib/modules/automount.inc:115 +msgid "" +"Automount entry contains invalid characters. Only ASCII characters are " +"allowed." +msgstr "" +"自動マウント・エントリに無効な文字が含まれています。ASCII文字のみが有効です。" + +#: ../lib/types/automountType.inc:215 +#, php-format +msgid "Automount entry count: %s" +msgstr "自動マウント・エントリー数: %s" + +#: ../lib/modules/qmailUser.inc:51 +msgid "Autoreply" +msgstr "自動返信" + +#: ../lib/modules/qmailUser.inc:116 ../lib/modules/qmailUser.inc:239 +#: ../lib/modules/qmailUser.inc:350 ../lib/modules/qmailUser.inc:424 +#: ../lib/modules/qmailUser.inc:639 ../lib/modules/qmailUser.inc:1147 +msgid "Autoreply text" +msgstr "自動返信の本文" + +#: ../templates/config/conftypes.php:215 ../lib/modules/customScripts.inc:61 +msgid "Available account types" +msgstr "利用可能なアカウント種別" + +#: ../lib/modules/customScripts.inc:62 ../lib/modules/customScripts.inc:75 +msgid "Available actions" +msgstr "利用可能なアクション" + +#: ../lib/modules/posixAccount.inc:1569 ../lib/modules/posixAccount.inc:1602 +#: ../lib/modules/windowsUser.inc:1032 ../lib/modules/nisnetgroup.inc:386 +#: ../lib/modules/groupOfNamesUser.inc:133 +msgid "Available groups" +msgstr "利用可能なグループ" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:93 +msgid "Available members" +msgstr "利用可能なメンバー" + +#: ../templates/config/confmodules.php:314 +msgid "Available modules" +msgstr "利用可能なモジュール" + +#: ../lib/modules/organizationalRoleUser.inc:118 +msgid "Available roles" +msgstr "利用可能なロール" + +#: ../lib/modules/posixGroup.inc:297 ../lib/modules/asteriskExtension.inc:463 +msgid "Available users" +msgstr "利用可能なユーザ" + +#: ../lib/modules/sambaSamAccount.inc:1340 +msgid "Available workstations" +msgstr "利用可能なワークステーション" + +#: ../lib/modules/sambaSamAccount.inc:563 +msgid "Azores, Cape Verde Islands" +msgstr "Azores, Cape Verde Islands" + +#: ../lib/modules/dhcp_settings.inc:96 +msgid "B-Node (0x01)" +msgstr "B-Node (0x01)" + +#: ../templates/massBuildAccounts.php:276 ../lib/modules/zarafaContact.inc:436 +#: ../lib/modules/posixGroup.inc:342 ../lib/modules/zarafaGroup.inc:496 +#: ../lib/modules/device.inc:303 ../lib/modules/sambaSamAccount.inc:1357 +#: ../lib/modules/sambaSamAccount.inc:1641 +#: ../lib/modules/posixAccount.inc:1642 ../lib/modules/posixAccount.inc:1716 +#: ../lib/modules/zarafaUser.inc:920 ../lib/modules/zarafaUser.inc:969 +#: ../lib/modules/windowsUser.inc:1076 +#: ../lib/modules/sambaGroupMapping.inc:511 ../lib/modules/pykotaUser.inc:618 +#: ../lib/modules/pykotaUser.inc:675 ../lib/modules/nisnetgroup.inc:400 +#: ../lib/modules/inetOrgPerson.inc:1669 ../lib/modules/inetOrgPerson.inc:1745 +#: ../lib/modules/inetOrgPerson.inc:1835 ../lib/modules/qmailGroup.inc:865 +#: ../lib/modules/organizationalRole.inc:389 +#: ../lib/modules/windowsGroup.inc:606 ../lib/modules/groupOfNames.inc:447 +#: ../lib/modules/groupOfNames.inc:601 +msgid "Back" +msgstr "戻る" + +#: ../lib/types/dhcp.inc:47 +msgid "Back to DHCP list" +msgstr "DHCP一覧に戻る" + +#: ../lib/types/bind.inc:30 +msgid "Back to DNS list" +msgstr "DNS一覧に戻る" + +#: ../lib/types/nisObjectType.inc:30 +msgid "Back to NIS object list" +msgstr "NISオブジェクト一覧に戻る" + +#: ../lib/baseType.inc:48 +msgid "Back to account list" +msgstr "アカウント一覧に戻る" + +#: ../lib/types/zarafaAddressListType.inc:44 +msgid "Back to address list" +msgstr "アドレスリストに戻る" + +#: ../lib/types/mailAlias.inc:44 ../lib/types/alias.inc:44 +msgid "Back to alias list" +msgstr "エイリアス一覧に戻る" + +#: ../lib/types/automountType.inc:35 +msgid "Back to automount list" +msgstr "自動マウント一覧に戻る" + +#: ../lib/types/pykotaBillingCodeType.inc:44 +msgid "Back to billing code list" +msgstr "課金コード一覧に戻る" + +#: ../lib/types/oracleContextType.inc:30 +msgid "Back to database list" +msgstr "データベース一覧に戻る" + +#: ../lib/types/smbDomain.inc:44 +msgid "Back to domain list" +msgstr "ドメイン一覧に戻る" + +#: ../lib/types/asteriskExt.inc:47 +msgid "Back to extensions list" +msgstr "拡張一覧に戻る" + +#: ../templates/lists/userlink.php:63 ../lib/types/gon.inc:44 +#: ../lib/types/zarafaDynamicGroupType.inc:44 ../lib/types/group.inc:45 +#: ../lib/types/netgroup.inc:44 +msgid "Back to group list" +msgstr "グループ一覧に戻る" + +#: ../lib/types/host.inc:44 +msgid "Back to host list" +msgstr "ホスト一覧に戻る" + +#: ../templates/delete.php:289 +msgid "Back to list" +msgstr "一覧に戻る" + +#: ../templates/config/mainmanage.php:257 ../templates/config/index.php:79 +#: ../templates/config/index.php:133 ../templates/config/conflogin.php:117 +#: ../templates/config/conflogin.php:201 ../templates/config/mainlogin.php:124 +#: ../templates/config/mainlogin.php:178 +#: ../templates/selfService/selfServiceSP.php:139 +#: ../templates/selfService/adminLogin.php:114 +#: ../templates/selfService/adminLogin.php:191 +msgid "Back to login" +msgstr "ログインに戻る" + +#: ../lib/types/ppolicyType.inc:30 +msgid "Back to policy list" +msgstr "ポリシー一覧に戻る" + +#: ../lib/types/pykotaPrinterType.inc:44 +msgid "Back to printer list" +msgstr "プリンター一覧に戻る" + +#: ../templates/config/profmanage.php:188 +#: ../templates/config/profmanage.php:326 +#: ../templates/selfService/profManage.php:144 +#: ../templates/selfService/profManage.php:262 +msgid "Back to profile login" +msgstr "プロファイルログインに戻る" + +#: ../lib/types/gon.inc:49 ../lib/types/group.inc:50 +msgid "Back to role list" +msgstr "ロール一覧に戻る" + +#: ../lib/types/kolabSharedFolderType.inc:44 +msgid "Back to shared folder list" +msgstr "共有フォルダー一覧に戻る" + +#: ../lib/types/sudo.inc:30 +msgid "Back to sudo role list" +msgstr "sudoロール一覧に戻る" + +#: ../lib/types/user.inc:44 +msgid "Back to user list" +msgstr "ユーザー一覧に戻る" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:64 +msgid "Back up" +msgstr "上へ戻る" + +#: ../templates/serverInfo.php:163 +msgid "Backends" +msgstr "バックエンド" + +#: ../lib/modules/passwordSelfReset.inc:88 +#: ../lib/modules/passwordSelfReset.inc:191 +#: ../lib/modules/passwordSelfReset.inc:201 +#: ../lib/modules/passwordSelfReset.inc:213 +#: ../lib/modules/passwordSelfReset.inc:220 +#: ../lib/modules/passwordSelfReset.inc:276 +#: ../lib/modules/passwordSelfReset.inc:387 +#: ../lib/modules/passwordSelfReset.inc:675 +msgid "Backup email" +msgstr "eメールのバックアップ" + +#: ../lib/modules/passwordSelfReset.inc:89 +msgid "" +"Backup email address for password reset mails. Useful if user password " +"grants access to standard mailbox." +msgstr "" +"パスワード・リセット・メールのためのバックアップ・eメールアドレス。ユーザー・" +"パスワードが通常のメールボックスへのアクセスを許可する場合に有用です。" + +#: ../lib/modules/sudoRole.inc:155 +msgid "Backup script" +msgstr "スクリプトのバックアップ" + +#: ../lib/modules/sambaSamAccount.inc:567 +msgid "Baghdad, Riyadh, Moscow" +msgstr "Baghdad, Riyadh, Moscow" + +#: ../lib/types/pykotaBillingCodeType.inc:93 ../lib/modules/pykotaGroup.inc:62 +#: ../lib/modules/pykotaUser.inc:62 ../lib/modules/pykotaUser.inc:132 +#: ../lib/modules/pykotaUser.inc:170 ../lib/modules/pykotaUser.inc:241 +#: ../lib/modules/pykotaUser.inc:262 ../lib/modules/pykotaUser.inc:322 +#: ../lib/modules/pykotaUser.inc:365 ../lib/modules/pykotaUser.inc:900 +#: ../lib/modules/pykotaUser.inc:947 ../lib/modules/pykotaBillingCode.inc:85 +#: ../lib/modules/pykotaBillingCode.inc:117 +#: ../lib/modules/pykotaBillingCode.inc:143 +#: ../lib/modules/pykotaBillingCode.inc:263 +msgid "Balance" +msgstr "残高" + +#: ../lib/modules/pykotaUser.inc:281 +msgid "Balance (read-only)" +msgstr "残高 (読み取りのみ)" + +#: ../lib/modules/pykotaUser.inc:136 ../lib/modules/pykotaUser.inc:247 +msgid "Balance comment" +msgstr "残高コメント" + +#: ../lib/modules/sambaSamAccount.inc:571 +msgid "Bangkok, Hanoi, Jakarta" +msgstr "Bangkok, Hanoi, Jakarta" + +#: ../lib/types/zarafaAddressListType.inc:93 +#: ../lib/types/zarafaDynamicGroupType.inc:94 +#: ../lib/modules/zarafaDynamicGroup.inc:87 +#: ../lib/modules/zarafaDynamicGroup.inc:101 +#: ../lib/modules/zarafaDynamicGroup.inc:152 +#: ../lib/modules/zarafaDynamicGroup.inc:170 +#: ../lib/modules/zarafaDynamicGroup.inc:198 +#: ../lib/modules/zarafaDynamicGroup.inc:231 +#: ../lib/modules/zarafaDynamicGroup.inc:449 +#: ../lib/modules/zarafaAddressList.inc:75 +#: ../lib/modules/zarafaAddressList.inc:89 +#: ../lib/modules/zarafaAddressList.inc:128 +#: ../lib/modules/zarafaAddressList.inc:144 +#: ../lib/modules/zarafaAddressList.inc:169 +#: ../lib/modules/zarafaAddressList.inc:198 +#: ../lib/modules/zarafaAddressList.inc:332 +msgid "Base" +msgstr "ベース" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:142 +#: ../templates/3rdParty/pla/htdocs/export_form.php:31 +msgid "Base (base dn only)" +msgstr "ベース (ベースDNのみ)" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:121 +#: ../templates/3rdParty/pla/lib/QueryRender.php:506 +#: ../templates/3rdParty/pla/htdocs/export_form.php:59 +msgid "Base DN" +msgstr "ベースDN" + +#: ../templates/config/confmodules.php:212 ../help/help.inc:144 +msgid "Base module" +msgstr "ベースモジュール" + +#: ../templates/pdfedit/pdfpage.php:441 +msgid "Beginning" +msgstr "先頭" + +#: ../lib/modules/sambaSamAccount.inc:572 +msgid "Beijing, Perth, Singapore" +msgstr "Beijing(北京), Perth, Singapore" + +#: ../lib/types/pykotaBillingCodeType.inc:91 +#: ../lib/modules/pykotaBillingCode.inc:77 +#: ../lib/modules/pykotaBillingCode.inc:115 +#: ../lib/modules/pykotaBillingCode.inc:127 +#: ../lib/modules/pykotaBillingCode.inc:129 +#: ../lib/modules/pykotaBillingCode.inc:141 +#: ../lib/modules/pykotaBillingCode.inc:261 +msgid "Billing code" +msgstr "課金コード" + +#: ../lib/modules/pykotaBillingCode.inc:129 +#: ../lib/modules/pykotaBillingCode.inc:130 +msgid "Billing code already exists!" +msgstr "課金コードは既に存在しています!" + +#: ../lib/modules/pykotaBillingCode.inc:127 +#: ../lib/modules/pykotaBillingCode.inc:128 +msgid "" +"Billing code contains invalid characters. Valid characters are: a-z, A-Z, " +"0-9 and .-_ !" +msgstr "" +"課金コードに無効な文字が含まれています。有効な文字は: a-z, A-Z, 0-9, .-_ で" +"す。" + +#: ../lib/types/pykotaBillingCodeType.inc:163 +#, php-format +msgid "Billing code count: %s" +msgstr "課金コード数: %s" + +#: ../lib/modules/pykotaBillingCode.inc:82 +msgid "Billing code description." +msgstr "課金コードの説明。" + +#: ../lib/modules/pykotaBillingCode.inc:78 +msgid "" +"Billing code name which should be created. Valid characters are: a-z, A-Z, " +"0-9 and .-_ ." +msgstr "生成される課金コードの名前。有効な文字は: a-z, A-Z, 0-9, .-_ です。" + +#: ../lib/types/pykotaBillingCodeType.inc:53 +msgid "Billing codes" +msgstr "課金コード" + +#: ../templates/3rdParty/pla/lib/PageRender.php:644 +#: ../templates/3rdParty/pla/lib/PageRender.php:648 +msgid "Binary value" +msgstr "バイナリ値" + +#: ../templates/serverInfo.php:286 ../templates/serverInfo.php:375 +msgid "Bind" +msgstr "Bind" + +#: ../lib/types/bind.inc:39 +msgid "Bind DNS" +msgstr "Bind DNS" + +#: ../lib/types/bind.inc:48 +msgid "Bind DNS entries" +msgstr "Bind DNSエントリ" + +#: ../templates/config/confmain.php:444 +msgid "Bind password" +msgstr "Bindパスワード" + +#: ../templates/config/confmain.php:442 +msgid "Bind user" +msgstr "Bindユーザ" + +#: ../help/help.inc:128 +msgid "Bind user and password" +msgstr "Bindユーザーとパスワード" + +#: ../lib/modules/quota.inc:53 ../lib/modules/systemQuotas.inc:101 +msgid "Block hard quota" +msgstr "ブロック・ハードクオータ" + +#: ../lib/modules/quota.inc:53 ../lib/modules/quota.inc:54 +#: ../lib/modules/systemQuotas.inc:101 ../lib/modules/systemQuotas.inc:102 +msgid "" +"Block hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"ブロック・ハードクォータに無効な文字が含まれています。自然数のみが有効です。" + +#: ../lib/modules/quota.inc:59 ../lib/modules/systemQuotas.inc:107 +msgid "Block quota" +msgstr "ブロック・クオータ" + +#: ../lib/modules/quota.inc:51 ../lib/modules/systemQuotas.inc:99 +msgid "Block soft quota" +msgstr "ブロック・ソフトクオータ" + +#: ../lib/modules/quota.inc:51 ../lib/modules/quota.inc:52 +#: ../lib/modules/systemQuotas.inc:99 ../lib/modules/systemQuotas.inc:100 +msgid "" +"Block soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"ブロック・ソフトクオータに無効な文字が含まれています。自然数のみが有効です。" + +#: ../lib/modules/quota.inc:59 ../lib/modules/quota.inc:60 +#: ../lib/modules/systemQuotas.inc:107 ../lib/modules/systemQuotas.inc:108 +msgid "Block soft quota must be smaller than block hard quota." +msgstr "" +"ブロック・ソフトクオータはブロック・ハードクオータより小さくなくてはなりませ" +"ん。" + +#: ../lib/modules/qmailGroup.inc:72 ../lib/modules/qmailGroup.inc:143 +#: ../lib/modules/qmailGroup.inc:147 ../lib/modules/qmailGroup.inc:263 +#: ../lib/modules/qmailGroup.inc:375 ../lib/modules/qmailGroup.inc:431 +#: ../lib/modules/qmailGroup.inc:522 ../lib/modules/qmailGroup.inc:1059 +msgid "Bounce admin email" +msgstr "管理メールをバウンス" + +#: ../lib/modules/sambaSamAccount.inc:561 +msgid "Brazil, Buenos Aires" +msgstr "Brazil, Buenos Aires" + +#: ../templates/3rdParty/pla/htdocs/copy.php:53 +msgid "Building snapshot of tree to copy" +msgstr "コピーのためにツリーのスナップショットを構築しています" + +#: ../lib/modules/sambaGroupMapping.inc:73 +msgid "Builtin group" +msgstr "組み込みグループ" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:63 +msgid "Bulk edit the following DNs" +msgstr "下記のDNの一括編集" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:48 +msgid "Bulk update the following DNs" +msgstr "下記のDNの一括更新" + +#: ../lib/modules/inetOrgPerson.inc:103 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:232 ../lib/modules/inetOrgPerson.inc:369 +#: ../lib/modules/inetOrgPerson.inc:599 ../lib/modules/inetOrgPerson.inc:764 +#: ../lib/modules/inetOrgPerson.inc:768 ../lib/modules/inetOrgPerson.inc:1473 +#: ../lib/modules/inetOrgPerson.inc:1476 ../lib/modules/inetOrgPerson.inc:1907 +#: ../lib/modules/inetOrgPerson.inc:2632 ../lib/modules/inetOrgPerson.inc:3545 +#: ../lib/modules/inetOrgPerson.inc:3586 +msgid "Business category" +msgstr "業種" + +#: ../lib/modules/inetOrgPerson.inc:765 ../lib/modules/inetOrgPerson.inc:769 +msgid "Business category (e.g. Administration, IT-Services, Manangement, ...)" +msgstr "業種(例. 役員, ITサービス, マネージャー, ...)" + +#: ../help/help.inc:173 +msgid "" +"By default LAM will show all accounts that match the selected account " +"modules." +msgstr "" +"デフォルトでは、LAMは選択したアカウントモジュールに適合するアカウントを表示し" +"ます。" + +#: ../help/help.inc:243 +msgid "" +"By default all modifications are done as the user that authenticated in self " +"service. If active then LAM will use the connection user for all LDAP " +"modifications and searches." +msgstr "" +"有効にした場合、LAMは全てのLDAP変更と検索にこの接続ユーザーを使用します。デ" +"フォルトでは、全ての変更はセルフ・サービスで認証されたユーザーとして行われま" +"す。" + +#: ../lib/modules/selfRegistration.inc:103 +msgid "" +"By default all users are created in the self service LDAP suffix. You can " +"enter an alternative suffix here." +msgstr "" +"デフォルトでは、全てのユーザーはセルフ・サービスLDAPサフィックスの中に作成さ" +"れます。ここに代替サフィックスを入力出来ます。" + +#: ../lib/modules/customScripts.inc:89 +msgid "" +"By default, LAM will show the executed command along with any output of it. " +"If you want to hide the command and only show the output then activate this " +"option." +msgstr "" +"デフォルトでは、LAMは実行したコマンドを全ての出力と一緒に表示します。もしもコ" +"マンドを非表示として出力のみを表示する場合は、このオプションを有効にしてくだ" +"さい。" + +#: ../templates/serverInfo.php:253 ../templates/serverInfo.php:259 +msgid "Bytes sent" +msgstr "バイト送信済み" + +#: ../lib/modules/bindDLZ.inc:261 ../lib/modules/bindDLZ.inc:267 +#: ../lib/modules/bindDLZ.inc:474 ../lib/modules/bindDLZ.inc:490 +msgid "CNAME record" +msgstr "CNAME レコード" + +#: ../lib/modules/bindDLZ.inc:432 +msgid "CNAME records" +msgstr "CNAME レコード" + +#: ../templates/masscreate.php:253 +msgid "CSV file" +msgstr "CSVファイル:" + +#: ../help/help.inc:107 +msgid "Cache timeout" +msgstr "キャッシュ有効時間" + +#: ../lib/modules/asteriskAccount.inc:135 +#: ../lib/modules/asteriskAccount.inc:272 +#: ../lib/modules/asteriskAccount.inc:355 +#: ../lib/modules/asteriskAccount.inc:615 +#: ../lib/modules/asteriskAccount.inc:988 +#: ../lib/modules/asteriskAccount.inc:1245 +msgid "Call groups" +msgstr "発信グループ" + +#: ../lib/modules/asteriskAccount.inc:103 +#: ../lib/modules/asteriskAccount.inc:266 +#: ../lib/modules/asteriskAccount.inc:304 +#: ../lib/modules/asteriskAccount.inc:589 +#: ../lib/modules/asteriskAccount.inc:982 +msgid "Caller ID" +msgstr "発信者番号" + +#: ../lib/modules/sambaSamAccount.inc:306 +#: ../lib/modules/sambaSamAccount.inc:309 +#: ../lib/modules/sambaSamAccount.inc:312 +#: ../lib/modules/sambaSamAccount.inc:318 ../lib/modules/posixAccount.inc:535 +#: ../lib/modules/organizationalRoleUser.inc:61 +#: ../lib/modules/windowsUser.inc:205 ../lib/modules/windowsUser.inc:210 +#: ../lib/modules/sambaGroupMapping.inc:159 +#: ../lib/modules/shadowAccount.inc:178 ../lib/modules/shadowAccount.inc:182 +#: ../lib/modules/shadowAccount.inc:186 ../lib/modules/shadowAccount.inc:190 +#: ../lib/modules/groupOfNamesUser.inc:61 +msgid "Can be left empty." +msgstr "省略可" + +#: ../lib/modules/asteriskAccount.inc:223 +#: ../lib/modules/asteriskAccount.inc:294 +#: ../lib/modules/asteriskAccount.inc:515 +#: ../lib/modules/asteriskAccount.inc:741 +#: ../lib/modules/asteriskAccount.inc:1010 +#: ../lib/modules/asteriskAccount.inc:1289 +msgid "Can call forward" +msgstr "着信転送を許可" + +#: ../templates/lists/changePassword.php:340 +#: ../templates/lists/changePassword.php:377 +#: ../templates/lists/changePassword.php:418 +#: ../templates/lists/changePassword.php:449 ../templates/ou_edit.php:121 +#: ../templates/config/profmanage.php:254 +#: ../templates/config/profmanage.php:266 +#: ../templates/config/profmanage.php:275 +#: ../templates/config/profmanage.php:293 +#: ../templates/config/profmanage.php:304 +#: ../templates/config/mainmanage.php:470 +#: ../templates/config/confmodules.php:227 +#: ../templates/config/confmain.php:471 +#: ../templates/config/moduleSettings.php:241 +#: ../templates/config/conftypes.php:341 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminMain.php:748 +#: ../templates/pdfedit/pdfpage.php:638 ../templates/pdfedit/pdfmain.php:210 +#: ../templates/pdfedit/pdfmain.php:217 ../templates/pdfedit/pdfmain.php:223 +#: ../templates/delete.php:121 ../templates/profedit/profilepage.php:241 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/profedit/profilemain.php:205 +#: ../templates/profedit/profilemain.php:211 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:197 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:83 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:136 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:121 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:119 +#: ../templates/initsuff.php:191 ../lib/types/automountType.inc:234 +#: ../lib/types/user.inc:303 ../lib/types/bind.inc:175 +#: ../lib/modules/kolabGroup.inc:294 ../lib/modules/pykotaPrinter.inc:431 +#: ../lib/modules/mitKerberos.inc:690 ../lib/modules/qmailUser.inc:921 +#: ../lib/modules/zarafaContact.inc:391 ../lib/modules/windowsHost.inc:226 +#: ../lib/modules/zarafaGroup.inc:451 ../lib/modules/device.inc:254 +#: ../lib/modules/sambaSamAccount.inc:1432 +#: ../lib/modules/sambaSamAccount.inc:1481 +#: ../lib/modules/sambaSamAccount.inc:1567 ../lib/modules/zarafaUser.inc:875 +#: ../lib/modules/kolabUser.inc:520 ../lib/modules/sambaGroupMapping.inc:490 +#: ../lib/modules/shadowAccount.inc:478 ../lib/modules/nisnetgroup.inc:490 +#: ../lib/modules/inetOrgPerson.inc:1710 ../lib/modules/freeRadius.inc:431 +#: ../lib/modules/kolabSharedFolder.inc:434 +#: ../lib/modules/customFields.inc:1084 ../lib/modules/aliasEntry.inc:147 +#: ../lib/modules/aliasEntry.inc:167 ../lib/modules/qmailGroup.inc:823 +#: ../lib/modules/organizationalRole.inc:318 ../lib/modules/fixed_ip.inc:587 +#: ../lib/modules/heimdalKerberos.inc:600 ../lib/modules/windowsGroup.inc:505 +#: ../lib/modules/windowsGroup.inc:557 ../lib/modules/groupOfNames.inc:375 +#: ../lib/modules/groupOfNames.inc:530 ../lib/modules/nisMailAlias.inc:385 +#: ../lib/lists.inc:711 ../lib/lists.inc:792 ../lib/modules.inc:1222 +msgid "Cancel" +msgstr "中止" + +#: ../templates/login.php:569 ../templates/login.php:627 +#: ../templates/login.php:632 +#: ../templates/selfService/selfServiceLogin.php:141 +#: ../templates/selfService/selfServiceLogin.php:190 +#: ../templates/selfService/selfServiceLogin.php:195 +#: ../templates/selfService/selfServiceMain.php:168 +#: ../templates/selfService/selfServiceMain.php:189 +#: ../lib/modules/selfRegistration.inc:699 +msgid "Cannot connect to specified LDAP server. Please try again." +msgstr "指定されたLDAPサーバに接続できません。再試行してください。" + +#: ../templates/login.php:310 ../lib/config.inc:1641 +msgid "Cannot open config file!" +msgstr "configファイルをオープンできません!" + +#: ../lib/modules/imapAccess.inc:187 +msgid "Cannot update quota." +msgstr "クオータを更新できません。" + +#: ../lib/config.inc:1653 ../lib/config.inc:1661 +msgid "" +"Cannot write certificate file. Please check the permissions of config/" +"serverCerts.pem." +msgstr "" +"証明書ファイルを書き込めません。config/serverCerts.pem のパーミッションを確認" +"してください。" + +#: ../lib/modules/zarafaUser.inc:120 ../lib/modules/zarafaUser.inc:247 +#: ../lib/modules/zarafaUser.inc:364 ../lib/modules/zarafaUser.inc:415 +#: ../lib/modules/zarafaUser.inc:545 ../lib/modules/zarafaUser.inc:1232 +#: ../lib/modules/zarafaUser.inc:1799 +msgid "Capacity" +msgstr "容量" + +#: ../templates/selfService/adminMain.php:528 +msgid "Captions and labels" +msgstr "説明とラベル" + +#: ../lib/modules/inetOrgPerson.inc:160 ../lib/modules/inetOrgPerson.inc:523 +#: ../lib/modules/inetOrgPerson.inc:593 ../lib/modules/inetOrgPerson.inc:788 +#: ../lib/modules/inetOrgPerson.inc:1446 ../lib/modules/inetOrgPerson.inc:1449 +#: ../lib/modules/inetOrgPerson.inc:1909 ../lib/modules/inetOrgPerson.inc:2610 +#: ../lib/modules/inetOrgPerson.inc:3541 ../lib/modules/inetOrgPerson.inc:3585 +msgid "Car license" +msgstr "免許証番号" + +#: ../lib/modules/sambaSamAccount.inc:565 +msgid "Central Europe Time, Paris, Berlin" +msgstr "Central Europe Time, Paris, Berlin" + +#: ../lib/modules/sambaSamAccount.inc:558 +msgid "Central Time (US & Canada), Mexico City" +msgstr "Central Time (US & Canada), Mexico City" + +#: ../templates/selfService/adminMain.php:546 +#: ../lib/modules/mitKerberos.inc:377 ../lib/modules/mitKerberos.inc:388 +#: ../lib/modules/mitKerberos.inc:686 ../lib/modules/qmailUser.inc:661 +#: ../lib/modules/qmailUser.inc:917 ../lib/modules/zarafaContact.inc:229 +#: ../lib/modules/windowsHost.inc:155 ../lib/modules/windowsHost.inc:225 +#: ../lib/modules/zarafaGroup.inc:266 ../lib/modules/device.inc:181 +#: ../lib/modules/sambaSamAccount.inc:1192 +#: ../lib/modules/sambaSamAccount.inc:1477 ../lib/modules/zarafaUser.inc:466 +#: ../lib/modules/zarafaUser.inc:557 ../lib/modules/shadowAccount.inc:355 +#: ../lib/modules/shadowAccount.inc:474 ../lib/modules/inetOrgPerson.inc:1533 +#: ../lib/modules/freeRadius.inc:301 ../lib/modules/freeRadius.inc:427 +#: ../lib/modules/asteriskExtension.inc:236 ../lib/modules/aliasEntry.inc:100 +#: ../lib/modules/qmailGroup.inc:572 ../lib/modules/organizationalRole.inc:194 +#: ../lib/modules/passwordSelfReset.inc:271 +#: ../lib/modules/heimdalKerberos.inc:324 +#: ../lib/modules/heimdalKerberos.inc:335 +#: ../lib/modules/heimdalKerberos.inc:596 ../lib/modules/windowsGroup.inc:361 +#: ../lib/modules/windowsGroup.inc:504 ../lib/modules/groupOfNames.inc:241 +#: ../lib/modules/groupOfNames.inc:248 +msgid "Change" +msgstr "変更" + +#: ../templates/lists/changePassword.php:223 +msgid "Change Asterisk password" +msgstr "Asteriskパスワードの変更" + +#: ../templates/lists/changePassword.php:235 +msgid "Change Asterisk voicemail password" +msgstr "Asteriskボイスメール・パスワードの変更" + +#: ../lib/modules/posixGroup.inc:218 ../lib/modules/posixGroup.inc:512 +msgid "Change GID number of users and hosts" +msgstr "ユーザとホストのGID番号を変更" + +#: ../templates/lists/changePassword.php:226 +#: ../templates/lists/changePassword.php:229 +msgid "Change Kerberos password" +msgstr "Kerberosパスワードを変更" + +#: ../templates/lists/changePassword.php:216 +msgid "Change Samba LM password" +msgstr "Samba LMパスワードを変更" + +#: ../templates/lists/changePassword.php:214 +msgid "Change Samba NT password" +msgstr "Samba NTパスワードを変更" + +#: ../templates/lists/changePassword.php:208 +msgid "Change Unix password" +msgstr "unixパスワードを変更" + +#: ../templates/lists/changePassword.php:232 +msgid "Change Windows password" +msgstr "Windowsパスワードを変更" + +#: ../lib/types/user.inc:303 +msgid "Change account status" +msgstr "アカウントの状態を変更" + +#: ../templates/config/profmanage.php:300 +#: ../templates/config/profmanage.php:303 ../help/help.inc:138 +msgid "Change default profile" +msgstr "デフォルト・プロファイルを変更" + +#: ../templates/selfService/adminMain.php:607 +msgid "Change field label." +msgstr "フィールド・ラベルを変更します。" + +#: ../lib/lists.inc:792 +msgid "Change list settings" +msgstr "リスト設定を変更" + +#: ../templates/config/mainmanage.php:454 ../help/help.inc:140 +msgid "Change master password" +msgstr "マスタパスワードを変更" + +#: ../templates/lists/changePassword.php:211 +#: ../templates/lists/changePassword.php:256 +#: ../templates/lists/changePassword.php:337 +#: ../templates/lists/changePassword.php:339 +#: ../templates/lists/changePassword.php:374 +#: ../templates/lists/changePassword.php:376 ../lib/types/user.inc:669 +#: ../help/help.inc:105 +msgid "Change password" +msgstr "パスワードの変更" + +#: ../templates/lists/changePassword.php:263 +#: ../templates/lists/changePassword.php:264 +msgid "Change password now?" +msgstr "すぐにパスワードを変更しますか?" + +#: ../templates/config/confmain.php:261 +msgid "Change passwords" +msgstr "パスワードを変更" + +#: ../lib/lists.inc:793 +msgid "Change settings" +msgstr "設定の変更" + +#: ../lib/modules/posixAccount.inc:1225 +msgid "Changed value because only ASCII characters are allowed." +msgstr "ASCII文字だけが有効なため、%s の値を変更しました。" + +#: ../lib/modules/passwordSelfReset.inc:185 +msgid "Charlie" +msgstr "Charlie" + +#: ../lib/modules/posixAccount.inc:1485 +msgid "Check home directories" +msgstr "ホームディレクトリをチェック" + +#: ../templates/tests/index.php:54 ../lib/tools/tests.inc:112 +msgid "Check if quotas and homedirectories can be managed." +msgstr "quotaおよびホームディレクトリが管理可能な場合にチェックしてください。" + +#: ../templates/tests/index.php:60 ../lib/tools/tests.inc:118 +msgid "" +"Check if the LDAP schema fits the requirements of the selected account " +"modules." +msgstr "" +"選択したアカウントモジュールの要件にLDAPスキーマが適合するか確認してくださ" +"い。" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2401 +msgid "Check password" +msgstr "パスワードをチェック" + +#: ../templates/tests/lamdaemonTest.php:87 +msgid "Check quotas" +msgstr "クオータをチェック" + +#: ../templates/masscreate.php:247 +msgid "" +"Check your input carefully. LAM will only do some basic checks on the upload " +"data." +msgstr "" +"入力を注意深く確認してください。LAMはアップロードデータについて基本的な検査し" +"か行いません。" + +#: ../lib/modules/customFields.inc:2735 +msgid "Checkbox" +msgstr "チェックボックス" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1224 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1229 +msgid "Children" +msgstr "子" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:23 +msgid "Choose entry" +msgstr "エントリを選択" + +#: ../lib/modules/imapAccess.inc:90 +msgid "" +"Choose the way how to provide the IMAP admin password. You can use the same " +"password as for the LAM login or LAM will ask you for a password when it is " +"required." +msgstr "" +"IMAP管理パスワードの提供手段を選択してください。LAMログインと同じパスワードを" +"使用する事もできますし、必要ならばLAMはパスワードの問い合わせを行います。" + +#: ../lib/modules/puppetClient.inc:92 ../lib/modules/puppetClient.inc:96 +#: ../lib/modules/puppetClient.inc:140 ../lib/modules/puppetClient.inc:155 +#: ../lib/modules/puppetClient.inc:168 ../lib/modules/puppetClient.inc:271 +#: ../lib/modules/puppetClient.inc:433 +msgid "Classes" +msgstr "クラス" + +#: ../lib/lists.inc:384 +msgid "Clear filter" +msgstr "フィルタをクリア" + +#: ../lib/config.inc:224 +msgid "Click here if you are not directed to the next page." +msgstr "自動的に次のページへジャンプしない場合は、ここをクリックしてください。" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2349 +msgid "Click to popup a dialog to select a date graphically" +msgstr "日付をグラフィカルに選択するダイアログをポップアップする場合にクリック" + +#: ../templates/3rdParty/pla/lib/functions.php:2293 +msgid "Click to popup a dialog to select an entry (DN) graphically" +msgstr "" +"エントリ(DN)をグラフィカルに選択するダイアログをポップアップする場合にクリッ" +"ク" + +#: ../lib/types/user.inc:619 +msgid "Click to switch between thumbnail and original size." +msgstr "クリックしてサムネイルと元のサイズを切り替えてください。" + +#: ../lib/modules/sambaSamAccount.inc:241 +#: ../lib/modules/sambaSamAccount.inc:378 +#: ../lib/modules/sambaSamAccount.inc:1535 +#: ../lib/modules/sambaSamAccount.inc:1943 +msgid "Client printer is default" +msgstr "クライアント・プリンタをデフォルトにする" + +#: ../templates/schema/schema.php:199 +msgid "Collective" +msgstr "集合属性" + +#: ../lib/modules/pykotaPrinter.inc:155 +msgid "Color laser printer" +msgstr "カラー・レーザー・プリンター" + +#: ../templates/masscreate.php:284 ../lib/modules/customFields.inc:128 +#: ../lib/modules/customFields.inc:2601 +msgid "Columns" +msgstr "カラム" + +#: ../lib/modules/sambaSamAccount.inc:318 +msgid "" +"Comma separated list of Samba workstations the user is allowed to login. " +"Empty means every workstation." +msgstr "" +"ユーザがログインできるSambaワークステーションのコンマ区切りリスト。空入力はす" +"べてのワークステーションを意味します。" + +#: ../lib/modules/authorizedServiceObject.inc:86 +msgid "Comma separated list of services (e.g. sshd, imap, ftp)." +msgstr "カンマで区切られたサービス一覧(例. sshd, imap, ftp)。" + +#: ../lib/types/sudo.inc:80 ../lib/modules/customScripts.inc:169 +msgid "Command" +msgstr "コマンド" + +#: ../lib/modules/sudoRole.inc:82 ../lib/modules/sudoRole.inc:108 +#: ../lib/modules/sudoRole.inc:171 ../lib/modules/sudoRole.inc:218 +#: ../lib/modules/sudoRole.inc:230 ../lib/modules/sudoRole.inc:370 +#: ../lib/modules/sudoRole.inc:808 +msgid "Commands" +msgstr "コマンド" + +#: ../lib/modules/pykotaUser.inc:375 ../lib/modules/pykotaUser.inc:599 +#: ../lib/modules/pykotaUser.inc:907 ../lib/modules/pykotaUser.inc:967 +msgid "Comment" +msgstr "コメント" + +#: ../lib/modules/pykotaUser.inc:137 +msgid "Comment for initial balance." +msgstr "初期残高に対するコメント。" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:117 +msgid "Commit" +msgstr "更新" + +#: ../lib/modules/posixAccount.inc:438 +msgid "Common examples are \"@givenname@%sn%\" or \"%givenname%.%sn%\"." +msgstr "一般的な例は \"@givenname@%sn%\" または \"%givenname%.%sn%\"。" + +#: ../templates/config/mainmanage.php:362 ../lib/types/user.inc:94 +#: ../lib/modules/pykotaGroup.inc:113 ../lib/modules/pykotaGroup.inc:157 +#: ../lib/modules/pykotaGroup.inc:185 ../lib/modules/pykotaGroup.inc:466 +#: ../lib/modules/posixAccount.inc:129 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:348 ../lib/modules/posixAccount.inc:421 +#: ../lib/modules/posixAccount.inc:538 ../lib/modules/posixAccount.inc:560 +#: ../lib/modules/posixAccount.inc:1429 ../lib/modules/posixAccount.inc:1851 +#: ../lib/modules/posixAccount.inc:2552 ../lib/modules/windowsUser.inc:102 +#: ../lib/modules/windowsUser.inc:290 ../lib/modules/windowsUser.inc:473 +#: ../lib/modules/windowsUser.inc:499 ../lib/modules/windowsUser.inc:591 +#: ../lib/modules/windowsUser.inc:702 ../lib/modules/windowsUser.inc:1586 +#: ../lib/modules/pykotaUser.inc:108 ../lib/modules/pykotaUser.inc:199 +#: ../lib/modules/pykotaUser.inc:271 ../lib/modules/pykotaUser.inc:405 +#: ../lib/modules/pykotaUser.inc:888 ../lib/modules/inetOrgPerson.inc:93 +#: ../lib/modules/inetOrgPerson.inc:626 ../lib/modules/inetOrgPerson.inc:740 +#: ../lib/modules/inetOrgPerson.inc:1197 ../lib/modules/inetOrgPerson.inc:1200 +#: ../lib/modules/inetOrgPerson.inc:1904 ../lib/modules/inetOrgPerson.inc:2035 +#: ../lib/modules/inetOrgPerson.inc:3595 +#: ../lib/modules/asteriskExtension.inc:118 +msgid "Common name" +msgstr "名称(common name)" + +#: ../lib/modules/asteriskExtension.inc:119 +msgid "Common name of the Asterisk extension." +msgstr "Asterisk拡張の名称" + +#: ../templates/serverInfo.php:335 ../templates/serverInfo.php:396 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1172 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:60 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:39 +msgid "Compare" +msgstr "比較" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:28 +#, php-format +msgid "Compare another DN with %s" +msgstr "他のDNを%sと比較" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1169 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +msgid "Compare this DN with another" +msgstr "このDNを他と比較" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +msgid "Compare with another entry" +msgstr "他のエントリと比較する" + +#: ../templates/3rdParty/pla/htdocs/compare.php:42 +msgid "Comparing the following DNs" +msgstr "これらのDNと比較" + +#: ../templates/serverInfo.php:284 ../templates/serverInfo.php:371 +msgid "Completed" +msgstr "完了" + +#: ../templates/serverInfo.php:114 +msgid "Config suffix" +msgstr "サフィックスの設定" + +#: ../templates/config/index.php:50 +msgid "Configuration overview" +msgstr "構成の概要" + +#: ../lib/modules/qmailUser.inc:126 ../lib/modules/qmailUser.inc:179 +#: ../lib/modules/qmailUser.inc:259 ../lib/modules/qmailUser.inc:392 +#: ../lib/modules/qmailUser.inc:439 ../lib/modules/qmailUser.inc:619 +#: ../lib/modules/qmailUser.inc:1178 +msgid "Configuration type" +msgstr "構成タイプ" + +#: ../lib/modules/qmailGroup.inc:96 ../lib/modules/qmailGroup.inc:228 +#: ../lib/modules/qmailGroup.inc:361 ../lib/modules/qmailGroup.inc:411 +#: ../lib/modules/qmailGroup.inc:623 ../lib/modules/qmailGroup.inc:1081 +msgid "Confirm sender" +msgstr "送信者を確認" + +#: ../lib/modules/selfRegistration.inc:228 +msgid "Confirmation mail settings" +msgstr "確認メール設定" + +#: ../lib/modules/qmailGroup.inc:74 ../lib/modules/qmailGroup.inc:103 +#: ../lib/modules/qmailGroup.inc:152 ../lib/modules/qmailGroup.inc:271 +#: ../lib/modules/qmailGroup.inc:378 ../lib/modules/qmailGroup.inc:591 +#: ../lib/modules/qmailGroup.inc:1060 +msgid "Confirmation text" +msgstr "確認テキスト" + +#: ../lib/modules/qmailGroup.inc:153 +msgid "" +"Confirmation text that is used if sender-confirmation is used. The usual " +"%HEADER% magic of qmail-reply etc. can be used here." +msgstr "" +"送信者確認が有効な場合に使用される確認文章。ここでは、qmail-reply等の通常の " +"%HEADER% マジックを使う事が出来ます。" + +#: ../templates/config/confmodules.php:394 +msgid "Conflicting module:" +msgstr "競合するモジュール" + +#: ../lib/modules/sambaSamAccount.inc:239 +#: ../lib/modules/sambaSamAccount.inc:372 +#: ../lib/modules/sambaSamAccount.inc:1531 +#: ../lib/modules/sambaSamAccount.inc:1933 +msgid "Connect client drives" +msgstr "クライアントのドライブを接続" + +#: ../lib/modules/sambaSamAccount.inc:240 +#: ../lib/modules/sambaSamAccount.inc:375 +#: ../lib/modules/sambaSamAccount.inc:1533 +#: ../lib/modules/sambaSamAccount.inc:1938 +msgid "Connect client printers" +msgstr "クライアントのプリンタを接続する" + +#: ../templates/serverInfo.php:230 +msgid "Connection statistics" +msgstr "接続の統計" + +#: ../lib/types/oracleContextType.inc:78 ../lib/modules/oracleService.inc:65 +#: ../lib/modules/oracleService.inc:85 ../lib/modules/oracleService.inc:99 +#: ../lib/modules/oracleService.inc:123 ../lib/modules/oracleService.inc:171 +msgid "Connection string" +msgstr "接続文字列" + +#: ../lib/modules/sambaSamAccount.inc:236 +#: ../lib/modules/sambaSamAccount.inc:1519 +#: ../lib/modules/sambaSamAccount.inc:1926 +msgid "Connection time limit" +msgstr "接続時間の制限" + +#: ../lib/modules/bindDLZ.inc:225 +msgid "Contact address for this zone (e.g. \"root.example.com.\")." +msgstr "このゾーンに関する問い合わせ先 (例 \"root.example.com.\")。" + +#: ../lib/modules/windowsUser.inc:715 ../lib/modules/inetOrgPerson.inc:1377 +msgid "Contact data" +msgstr "連絡先データ" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:721 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1301 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +msgid "Container" +msgstr "コンテナ" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1458 +msgid "Container and object classes" +msgstr "コンテナとオブジェクトクラス" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:27 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:88 +#: ../templates/3rdParty/pla/htdocs/copy.php:108 +msgid "Copy" +msgstr "コピー" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:32 +#, php-format +msgid "Copy %s to a new object." +msgstr "%sを新しいオブジェクトにコピー。" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1098 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1102 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1103 +msgid "Copy or move this entry" +msgstr "このエントリをコピーまたは移動" + +#: ../templates/3rdParty/pla/htdocs/copy.php:130 +#, php-format +msgid "Copy successful. DN %s has been created." +msgstr "コピーが成功しました。 DN %s が生成されました。" + +#: ../templates/3rdParty/pla/htdocs/copy.php:48 +msgid "Copying" +msgstr "コピー中" + +#: ../templates/3rdParty/pla/htdocs/import.php:37 +msgid "Could not add object" +msgstr "オブジェクトを追加できませんでした。" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:370 +msgid "Could not add the object to the LDAP server." +msgstr "LDAPサーバーにオブジェクトを追加できませんでした。" + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:30 +msgid "Could not delete attribute value." +msgstr "属性値を削除できませんでした。" + +#: ../templates/3rdParty/pla/htdocs/import.php:38 +msgid "Could not delete object" +msgstr "オブジェクトを削除できませんでした。" + +#: ../templates/3rdParty/pla/htdocs/delete.php:37 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:47 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:73 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:90 +msgid "Could not delete the entry." +msgstr "エントリを削除できませんでした。" + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:37 +#, php-format +msgid "Could not fetch binary data from LDAP server for attribute [%s]." +msgstr "LDAPサーバから属性 [%s] のバイナリデータを取得できません。" + +#: ../templates/3rdParty/pla/lib/functions.php:1946 +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:60 +#, php-format +msgid "Could not fetch jpeg data from LDAP server for attribute [%s]." +msgstr "LDAPサーバから属性 [%s] のjpegデータを取得できません。" + +#: ../templates/3rdParty/pla/htdocs/import.php:41 +msgid "Could not modify object" +msgstr "オブジェクトを変更できませんでした。" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:528 +msgid "Could not perform ldap_modify operation." +msgstr "ldap_modifyオペレーションを実行できません。" + +#: ../templates/config/profmanage.php:100 +#: ../templates/selfService/profManage.php:74 +msgid "Could not rename file!" +msgstr "ファイル名を変更できませんでした!" + +#: ../templates/3rdParty/pla/htdocs/import.php:39 +#: ../templates/3rdParty/pla/htdocs/import.php:40 +#: ../templates/3rdParty/pla/htdocs/rename.php:60 +msgid "Could not rename the entry." +msgstr "エントリ名を変更できませんでした。" + +#: ../templates/pdfedit/pdfpage.php:117 +msgid "Could not save PDF structure, access denied." +msgstr "PDF構成を保存できません。アクセスが拒否されました。" + +#: ../templates/pdfedit/pdfmain.php:182 +#: ../templates/profedit/profilemain.php:168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1185 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1189 +#: ../templates/initsuff.php:190 ../lib/modules/nisMailAliasUser.inc:366 +#: ../lib/modules/sambaSamAccount.inc:1620 +#: ../lib/modules/posixAccount.inc:1695 +msgid "Create" +msgstr "作成" + +#: ../lib/lists.inc:500 ../lib/lists.inc:686 ../lib/modules.inc:1341 +#: ../help/help.inc:200 +msgid "Create PDF file" +msgstr "PDFファイル作成" + +#: ../templates/massDoUpload.php:202 ../templates/masscreate.php:264 +msgid "Create PDF files" +msgstr "PDFファイル作成" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1186 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1190 +msgid "Create a child entry" +msgstr "子エントリを作成" + +#: ../templates/pdfedit/pdfmain.php:175 +msgid "Create a new PDF structure" +msgstr "新しいPDF構成を作成" + +#: ../templates/profedit/profilemain.php:156 +msgid "Create a new profile" +msgstr "新しいプロファイルの作成" + +#: ../lib/types/dhcp.inc:46 +msgid "Create another DHCP entry" +msgstr "他のDHCPエントリを作成" + +#: ../lib/types/bind.inc:29 +msgid "Create another DNS entry" +msgstr "他のDNSエントリを作成" + +#: ../lib/types/nisObjectType.inc:29 +msgid "Create another NIS object" +msgstr "他のNISアカウントを作成" + +#: ../lib/baseType.inc:47 +msgid "Create another account" +msgstr "他のアカウントを作成" + +#: ../lib/types/zarafaAddressListType.inc:43 +msgid "Create another address list" +msgstr "他のアドレスリストを作成" + +#: ../lib/types/mailAlias.inc:43 ../lib/types/alias.inc:43 +msgid "Create another alias" +msgstr "他のエイリアスを作成" + +#: ../lib/types/automountType.inc:34 +msgid "Create another automount entry" +msgstr "他の自動マウント・エントリを作成" + +#: ../lib/types/pykotaBillingCodeType.inc:43 +msgid "Create another billing code" +msgstr "他の課金コードを作成" + +#: ../lib/types/oracleContextType.inc:29 +msgid "Create another database entry" +msgstr "他のデータベース・エントリを作成" + +#: ../lib/types/smbDomain.inc:43 +msgid "Create another domain" +msgstr "他のドメインを作成" + +#: ../templates/3rdParty/pla/htdocs/create.php:100 +msgid "Create another entry" +msgstr "他のエントリを作成" + +#: ../lib/types/asteriskExt.inc:46 +msgid "Create another extension" +msgstr "他の拡張を作成" + +#: ../lib/types/gon.inc:43 ../lib/types/zarafaDynamicGroupType.inc:43 +#: ../lib/types/group.inc:44 ../lib/types/netgroup.inc:43 +msgid "Create another group" +msgstr "他のグループを作成" + +#: ../lib/types/host.inc:43 +msgid "Create another host" +msgstr "他のホストを作成" + +#: ../lib/types/ppolicyType.inc:29 +msgid "Create another policy" +msgstr "他のポリシーを作成" + +#: ../lib/types/pykotaPrinterType.inc:43 +msgid "Create another printer" +msgstr "他のプリンターを作成" + +#: ../lib/types/gon.inc:48 ../lib/types/group.inc:49 +msgid "Create another role" +msgstr "他のロールを作成" + +#: ../lib/types/kolabSharedFolderType.inc:43 +msgid "Create another shared folder" +msgstr "他の共有フォルダーを作成" + +#: ../lib/types/sudo.inc:29 +msgid "Create another sudo role" +msgstr "他のsudoロールを作成" + +#: ../lib/types/user.inc:43 +msgid "Create another user" +msgstr "他のユーザーを作成" + +#: ../lib/lists.inc:691 +msgid "Create for" +msgstr "作成" + +#: ../lib/modules/posixAccount.inc:317 ../lib/modules/posixAccount.inc:1471 +#: ../lib/modules/posixAccount.inc:1760 +msgid "Create home directory" +msgstr "ホームディレクトリを作成" + +#: ../lib/modules/imapAccess.inc:263 +msgid "Create mailbox" +msgstr "メールボックスを作成" + +#: ../lib/modules/nisMailAliasUser.inc:359 +msgid "Create new alias" +msgstr "新しいエイリアスを作成" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:278 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:281 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:283 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:506 +msgid "Create new entry here" +msgstr "ここに新しいエントリを作成" + +#: ../lib/modules/customFields.inc:72 ../lib/modules/customFields.inc:519 +#: ../lib/modules/customFields.inc:532 +msgid "Create new group" +msgstr "新しいグループを作成" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:698 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1541 +#: ../templates/3rdParty/pla/htdocs/create.php:84 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:52 +msgid "Create object" +msgstr "オブジェクトを作成" + +#: ../lib/modules/generalInformation.inc:76 +msgid "Created by" +msgstr "作成者" + +#: ../lib/types/automountType.inc:273 +msgid "Created new automount map." +msgstr "新しい自動マウント・マップを作成しました。" + +#: ../templates/config/profmanage.php:77 +#: ../templates/selfService/profManage.php:55 +msgid "Created new profile." +msgstr "新しいプロファイルが作成されました。" + +#: ../lib/types/bind.inc:240 +msgid "Created new zone." +msgstr "新しいゾーンが作成されました。" + +#: ../lib/modules/customFields.inc:73 +msgid "" +"Creates a new group for the given account type. Groups build a container for " +"object classes and attributes." +msgstr "" +"与えられたアカウントタイプに対して新しいグループを生成します。グループはオブ" +"ジェクトクラスと属性のコンテナを構築します。" + +#: ../lib/tools/fileUpload.inc:53 +msgid "Creates accounts by uploading a CSV formated file." +msgstr "CSVファイルをアップロードする事によってアカウントを作成します。" + +#: ../templates/3rdParty/pla/htdocs/create.php:77 +#, php-format +msgid "Creation successful. DN %s has been created." +msgstr "作成に成功しました。DN %sが作成されました。" + +#: ../lib/modules/generalInformation.inc:80 +msgid "Creation time" +msgstr "作成時刻" + +#: ../lib/modules/pykotaUser.inc:133 +msgid "Current account balance for the user." +msgstr "ユーザの現在の課金残高" + +#: ../templates/serverInfo.php:232 ../templates/serverInfo.php:237 +msgid "Current connections" +msgstr "現在の接続" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:65 +#, php-format +msgid "Current list of %s values for attribute %s:" +msgstr "Current list of %s values for attribute %s:" + +#: ../lib/modules/imapAccess.inc:317 +msgid "Current usage (kB)" +msgstr "現在の使用量 (kB)" + +#: ../lib/modules/customFields.inc:1097 ../lib/modules/customFields.inc:1420 +msgid "Custom fields" +msgstr "カスタム・フィールド" + +#: ../lib/modules/customFields.inc:172 +msgid "Custom icon" +msgstr "カスタム・アイコン" + +#: ../templates/config/conftypes.php:300 ../lib/modules/customFields.inc:168 +#: ../help/help.inc:180 +msgid "Custom label" +msgstr "カスタム・ラベル" + +#: ../lib/modules/customScripts.inc:48 ../lib/modules/customScripts.inc:59 +#: ../lib/modules/customScripts.inc:73 ../lib/modules/customScripts.inc:98 +#: ../lib/modules/customScripts.inc:108 +msgid "Custom scripts" +msgstr "カスタム・スクリプト" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1097 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1101 +msgid "Cut" +msgstr "切り取り" + +#: ../lib/modules/ddns.inc:63 +msgid "DDNS" +msgstr "DDNS" + +#: ../lib/modules/ddns.inc:377 +msgid "" +"DDNS ist not activated. You can activate it in the DHCP settings (DDNS)." +msgstr "DDNSが無効です。DHCP設定の中(DDNS)で有効にできます。" + +#: ../lib/types/dhcp.inc:56 +msgid "DHCP" +msgstr "DHCP" + +#: ../lib/types/dhcp.inc:65 +msgid "DHCP administration" +msgstr "DHCPの管理" + +#: ../lib/types/dhcp.inc:170 +#, php-format +msgid "DHCP count: %s" +msgstr "DHCP数: %s" + +#: ../lib/types/dhcp.inc:173 ../lib/modules/dhcp_settings.inc:127 +msgid "DHCP settings" +msgstr "DHCP設定" + +#: ../templates/delete.php:100 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:734 +#: ../templates/3rdParty/pla/lib/PageRender.php:110 +#: ../templates/3rdParty/pla/htdocs/compare.php:52 +#: ../templates/3rdParty/pla/htdocs/compare.php:58 +#: ../templates/3rdParty/pla/htdocs/create.php:92 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:35 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:112 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:57 ../lib/modules.inc:410 +#: ../lib/modules.inc:1956 +msgid "DN" +msgstr "DN" + +#: ../templates/3rdParty/pla/lib/import_functions.php:210 +#: ../templates/3rdParty/pla/lib/import_functions.php:222 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1866 +msgid "DN does not exist" +msgstr "DNが存在しません" + +#: ../templates/masscreate.php:288 +msgid "DN settings" +msgstr "DN設定" + +#: ../templates/masscreate.php:317 ../help/help.inc:190 +msgid "DN suffix" +msgstr "DNサフィックス" + +#: ../lib/modules/dhcp_settings.inc:211 ../lib/modules/dhcp_settings.inc:226 +#: ../lib/modules/dhcp_settings.inc:268 ../lib/modules/dhcp_settings.inc:577 +#: ../lib/modules/dhcp_settings.inc:677 +msgid "DNS" +msgstr "DNS" + +#: ../lib/modules/dhcp_settings.inc:161 +msgid "DNS (Domain Name System)" +msgstr "DNS (Domain Name System)" + +#: ../lib/modules/bindDLZ.inc:67 +msgid "DNS entry" +msgstr "DNSエントリ" + +#: ../lib/types/bind.inc:159 +#, php-format +msgid "DNS entry count: %s" +msgstr "DNSエントリ数: %s" + +#: ../lib/modules/asteriskExtension.inc:115 +msgid "DNs of the extension owners" +msgstr "拡張所有者のDN" + +#: ../templates/3rdParty/pla/lib/export_functions.php:343 +msgid "DSML V.1 Export" +msgstr "DSML V1.1エクスポート" + +#: ../lib/modules/asteriskAccount.inc:273 +#: ../lib/modules/asteriskAccount.inc:362 +#: ../lib/modules/asteriskAccount.inc:627 +#: ../lib/modules/asteriskAccount.inc:1247 +msgid "DTFM flags" +msgstr "DTMFフラグ" + +#: ../lib/modules/asteriskAccount.inc:139 +#: ../lib/modules/asteriskAccount.inc:989 +msgid "DTMF mode" +msgstr "DTMFモード" + +#: ../lib/modules/asteriskAccount.inc:140 +msgid "DTMF mode for SIP client configuration." +msgstr "SIPクライアント構成のDTMFモード。" + +#: ../templates/3rdParty/pla/htdocs/import.php:103 +msgid "Data" +msgstr "データ" + +#: ../lib/types/oracleContextType.inc:186 +#, php-format +msgid "Database count: %s" +msgstr "データベース数: %s" + +#: ../lib/modules/pykotaUser.inc:595 ../lib/modules/pykotaUser.inc:646 +#: ../lib/modules/pykotaUser.inc:905 ../lib/modules/pykotaUser.inc:963 +#: ../lib/modules/pykotaUser.inc:995 +msgid "Date" +msgstr "日付" + +#: ../lib/modules/sambaSamAccount.inc:298 +msgid "Date after the user is able to change his password." +msgstr "ユーザによるパスワード変更の禁止が解かれる日付。" + +#: ../lib/modules/mitKerberos.inc:121 ../lib/modules/sambaSamAccount.inc:300 +#: ../lib/modules/heimdalKerberos.inc:107 +msgid "Date after the user must change his password." +msgstr "ユーザがパスワードを変更しなければならなくなる日付。" + +#: ../lib/modules/shadowAccount.inc:178 +msgid "" +"Days before password is to expire that user is warned of pending password " +"expiration. If set value must be >0." +msgstr "" +"パスワードが期限切れになる前にユーザへパスワード期限切れの猶予期間である旨を" +"警告する日数。もしもその値を設定するなら0より大きくなければならない。" + +#: ../templates/config/mainmanage.php:408 +msgid "Debug" +msgstr "Debug" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:592 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +#: ../lib/modules/qmailUser.inc:47 ../lib/modules/qmailUser.inc:292 +#: ../lib/modules/qmailUser.inc:1060 +msgid "Default" +msgstr "デフォルト" + +#: ../templates/config/mainmanage.php:443 +msgid "Default (\\r\\n)" +msgstr "規定値 (\\r\\n)" + +#: ../lib/modules/dhcp_settings.inc:165 ../lib/modules/dhcp_settings.inc:212 +#: ../lib/modules/dhcp_settings.inc:227 ../lib/modules/dhcp_settings.inc:274 +#: ../lib/modules/dhcp_settings.inc:579 ../lib/modules/dhcp_settings.inc:678 +msgid "Default gateway" +msgstr "デフォルト・ゲートウェイ" + +#: ../templates/config/confmain.php:297 +#: ../templates/selfService/adminMain.php:485 ../help/help.inc:99 +msgid "Default language" +msgstr "規定の言語" + +#: ../lib/modules/asteriskAccount.inc:231 +#: ../lib/modules/asteriskAccount.inc:296 +#: ../lib/modules/asteriskAccount.inc:530 +#: ../lib/modules/asteriskAccount.inc:750 +#: ../lib/modules/asteriskAccount.inc:1012 +#: ../lib/modules/asteriskAccount.inc:1293 +msgid "Default user" +msgstr "既定ユーザー" + +#: ../templates/masscreate.php:306 ../templates/masscreate.php:380 +#: ../lib/modules/customFields.inc:124 ../lib/modules/customFields.inc:2761 +msgid "Default value" +msgstr "既定値" + +#: ../help/help.inc:159 +msgid "" +"Defines if the PHP error reporting setting from php.ini is used or the " +"setting preferred by LAM (\"E_ALL & ~E_NOTICE\"). If you do not develop LAM " +"modules please use the default. This will prevent displaying messages that " +"are useful only for developers." +msgstr "" +"php.iniのPHPエラー・レポート設定が有効化されているか、LAMによって設定 " +"(\"E_ALL & ~E_NOTICE\") が選択されている場合に定義されます。あなたがLAMモ" +"ジュールの開発者でないならば、デフォルト値のまま使用してください。そうするこ" +"とによって、開発者に対してのみ有用なメッセージが表示されないようになります。" + +#: ../lib/modules/sambaDomain.inc:118 +msgid "Defines if workstations may change their passwords." +msgstr "ワークステーションのパスワード変更を許可する場合に定義します。" + +#: ../lib/modules/asteriskAccount.inc:160 +msgid "" +"Defines the mailbox to check for message waiting indication (MWI) for this " +"peer." +msgstr "" +"このピアに対してメッセージ待機表示(Message Waiting Indication, WMI)をチェック" +"するメールボックスを定義します。" + +#: ../lib/types/kolabSharedFolderType.inc:91 ../lib/modules/kolabUser.inc:116 +#: ../lib/modules/kolabUser.inc:132 ../lib/modules/kolabUser.inc:136 +#: ../lib/modules/kolabUser.inc:211 ../lib/modules/kolabUser.inc:234 +#: ../lib/modules/kolabUser.inc:359 ../lib/modules/kolabUser.inc:765 +#: ../lib/modules/kolabUser.inc:837 ../lib/modules/kolabSharedFolder.inc:138 +#: ../lib/modules/kolabSharedFolder.inc:142 +#: ../lib/modules/kolabSharedFolder.inc:226 +#: ../lib/modules/kolabSharedFolder.inc:237 +#: ../lib/modules/kolabSharedFolder.inc:320 +#: ../lib/modules/kolabSharedFolder.inc:564 +msgid "Delegates" +msgstr "代理人" + +#: ../lib/modules/kolabSharedFolder.inc:139 +msgid "" +"Delegates are allowed to act on behalf of the shared folder. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"委任は共有フォルダーにおいてユーザーの代理として振舞う事を許可します。この属" +"性はemailの送信にKolab smtpデーモン(Postfix)を使用する場合にチェックされま" +"す。" + +#: ../templates/serverInfo.php:321 ../templates/serverInfo.php:390 +#: ../templates/multiEdit.php:126 ../templates/ou_edit.php:120 +#: ../templates/config/profmanage.php:273 +#: ../templates/selfService/profManage.php:238 +#: ../templates/pdfedit/pdfmain.php:209 ../templates/pdfedit/pdfmain.php:210 +#: ../templates/pdfedit/pdfmain.php:243 ../templates/delete.php:120 +#: ../templates/profedit/profilemain.php:198 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:33 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:124 +#: ../lib/modules/pykotaPrinter.inc:281 +#: ../lib/modules/sambaSamAccount.inc:1613 +#: ../lib/modules/posixAccount.inc:1688 ../lib/modules/zarafaUser.inc:1434 +#: ../lib/modules/zarafaUser.inc:1486 ../lib/modules/bindDLZ.inc:1055 +#: ../lib/modules/bindDLZ.inc:1376 ../lib/modules/kolabUser.inc:827 +#: ../lib/modules/sambaGroupMapping.inc:405 +#: ../lib/modules/ldapPublicKey.inc:262 ../lib/modules/nisnetgroup.inc:253 +#: ../lib/modules/inetOrgPerson.inc:2805 ../lib/modules/customFields.inc:2086 +#: ../lib/modules/customFields.inc:3462 ../lib/lists.inc:494 +msgid "Delete" +msgstr "削除" + +#: ../templates/3rdParty/pla/htdocs/delete.php:31 +msgid "Delete DN" +msgstr "DNを削除" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:30 +msgid "Delete LDAP entries" +msgstr "LDAPエントリを削除" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:77 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:84 +msgid "Delete after copy (move):" +msgstr "コピー後に削除する(移動):" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:72 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:110 +#, php-format +msgid "Delete all %s objects" +msgstr "全ての %s オブジェクトを削除" + +#: ../templates/config/mainmanage.php:324 +msgid "Delete all CA certificates" +msgstr "全てのCA証明書を削除" + +#: ../lib/modules/customFields.inc:624 +msgid "Delete group" +msgstr "グループを削除" + +#: ../lib/modules/posixAccount.inc:1532 +msgid "Delete home directory" +msgstr "ホームディレクトリを削除" + +#: ../lib/modules/imapAccess.inc:256 +msgid "Delete mailbox" +msgstr "メールボックスの削除" + +#: ../templates/ou_edit.php:199 ../help/help.inc:265 +msgid "Delete organisational unit" +msgstr "organizational unitを削除" + +#: ../templates/3rdParty/pla/lib/functions.php:2014 +#: ../lib/modules/inetOrgPerson.inc:1588 +msgid "Delete photo" +msgstr "写真を削除" + +#: ../templates/config/profmanage.php:271 +#: ../templates/config/profmanage.php:274 +#: ../templates/selfService/profManage.php:232 +#: ../templates/selfService/profManage.php:239 ../help/help.inc:134 +msgid "Delete profile" +msgstr "プロファイルを削除" + +#: ../lib/modules/range.inc:98 ../lib/modules/range.inc:116 +#: ../lib/modules/range.inc:445 +msgid "Delete range" +msgstr "範囲を削除" + +#: ../lib/modules/asteriskExtension.inc:316 +#: ../lib/modules/asteriskExtension.inc:339 +msgid "Delete rule" +msgstr "ルールを削除" + +#: ../lib/types/dhcp.inc:174 +msgid "Delete selected DHCP entries" +msgstr "選択したDHCPエントリを削除" + +#: ../lib/types/bind.inc:162 +msgid "Delete selected DNS entries" +msgstr "選択したDNSエントリを削除" + +#: ../lib/types/nisObjectType.inc:158 +msgid "Delete selected NIS objects" +msgstr "選択したNISオブジェクトを削除" + +#: ../lib/types/zarafaAddressListType.inc:147 +msgid "Delete selected address lists" +msgstr "選択したアドレスリストを削除" + +#: ../lib/types/mailAlias.inc:144 ../lib/types/alias.inc:144 +msgid "Delete selected aliases" +msgstr "選択したエイリアスを削除" + +#: ../lib/types/automountType.inc:218 +msgid "Delete selected automount entries" +msgstr "選択した自動マウント・エントリを削除" + +#: ../lib/types/pykotaBillingCodeType.inc:166 +msgid "Delete selected billing codes" +msgstr "選択された課金コードを削除" + +#: ../lib/types/oracleContextType.inc:189 +msgid "Delete selected database entries" +msgstr "選択したデータベース・エントリを削除" + +#: ../lib/types/smbDomain.inc:170 +msgid "Delete selected domains" +msgstr "選択したドメインの削除" + +#: ../lib/types/asteriskExt.inc:146 +msgid "Delete selected extensions" +msgstr "選択した拡張の削除" + +#: ../lib/types/gon.inc:205 ../lib/types/zarafaDynamicGroupType.inc:168 +#: ../lib/types/group.inc:243 ../lib/types/netgroup.inc:172 +msgid "Delete selected groups" +msgstr "選択されたグループの削除" + +#: ../lib/types/host.inc:196 +msgid "Delete selected hosts" +msgstr "選択されたホストの削除" + +#: ../lib/lists.inc:115 +msgid "Delete selected objects" +msgstr "選択されたオブジェクトを削除" + +#: ../lib/types/ppolicyType.inc:152 +msgid "Delete selected policies" +msgstr "選択されたポリシーを削除" + +#: ../lib/types/pykotaPrinterType.inc:167 +msgid "Delete selected printers" +msgstr "選択されたプリンターを削除" + +#: ../lib/types/gon.inc:212 ../lib/types/group.inc:250 +msgid "Delete selected roles" +msgstr "選択されたロールを削除" + +#: ../lib/types/kolabSharedFolderType.inc:144 +msgid "Delete selected shared folders" +msgstr "選択された共有フォルダーを削除" + +#: ../lib/types/sudo.inc:162 +msgid "Delete selected sudo roles" +msgstr "選択されたsudoロールを削除" + +#: ../lib/types/user.inc:532 +msgid "Delete selected users" +msgstr "選択されたユーザを削除" + +#: ../templates/3rdParty/pla/htdocs/copy.php:146 +#, php-format +msgid "Delete successful: %s" +msgstr "削除完了: %s" + +#: ../lib/modules/posixAccount.inc:485 ../lib/modules/posixAccount.inc:1538 +msgid "Delete sudo rights" +msgstr "sudo権限の削除" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "Delete this entry" +msgstr "このエントリを削除" + +#: ../lib/modules/nisMailAliasUser.inc:156 +#: ../lib/modules/nisMailAliasUser.inc:195 +#, php-format +msgid "Delete whole alias entry which includes %s recipients." +msgstr "受信者を %s 個含むエイリアス・エントリ全体を削除します。." + +#: ../lib/modules/qmailUser.inc:44 +msgid "Deleted" +msgstr "削除しました" + +#: ../templates/delete.php:272 +#, php-format +msgid "Deleted DN: %s" +msgstr "削除されたDN: %s" + +#: ../templates/pdfedit/pdfmain.php:89 +msgid "Deleted PDF structure." +msgstr "削除したPDF構成。" + +#: ../templates/profedit/profilemain.php:103 +msgid "Deleted profile." +msgstr "削除したプロファイル。" + +#: ../lib/modules/range.inc:99 +msgid "Deletes an IP range." +msgstr "IPアドレス範囲を削除する。" + +#: ../lib/modules/posixAccount.inc:486 +msgid "Deletes the user from all existing sudo rights." +msgstr "存在するすべてのsudo権限からユーザーを削除します。" + +#: ../templates/3rdParty/pla/htdocs/import.php:29 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:65 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:82 +msgid "Deleting" +msgstr "削除しています" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:73 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:125 +msgid "Deleting objects" +msgstr "オブジェクトを削除中" + +#: ../lib/modules/qmailUser.inc:124 ../lib/modules/qmailUser.inc:255 +#: ../lib/modules/qmailUser.inc:382 ../lib/modules/qmailUser.inc:436 +#: ../lib/modules/qmailUser.inc:658 ../lib/modules/qmailUser.inc:899 +#: ../lib/modules/qmailUser.inc:1170 +msgid "Deletion date" +msgstr "削除した日" + +#: ../lib/lists.inc:1068 +msgid "Deletion was successful." +msgstr "削除が完了しました。" + +#: ../lib/modules/qmailUser.inc:215 ../lib/modules/qmailUser.inc:290 +#: ../lib/modules/qmailUser.inc:403 ../lib/modules/qmailUser.inc:629 +#: ../lib/modules/qmailUser.inc:1164 +msgid "Delivery mode" +msgstr "配送モード" + +#: ../lib/modules/qmailUser.inc:122 ../lib/modules/qmailUser.inc:175 +#: ../lib/modules/qmailUser.inc:251 ../lib/modules/qmailUser.inc:374 +#: ../lib/modules/qmailUser.inc:433 ../lib/modules/qmailUser.inc:648 +#: ../lib/modules/qmailUser.inc:1150 +msgid "Delivery program" +msgstr "配送プログラム" + +#: ../lib/modules/asteriskAccount.inc:167 +#: ../lib/modules/asteriskAccount.inc:280 +#: ../lib/modules/asteriskAccount.inc:414 +#: ../lib/modules/asteriskAccount.inc:674 +#: ../lib/modules/asteriskAccount.inc:996 +#: ../lib/modules/asteriskAccount.inc:1261 +#: ../lib/modules/dhcp_settings.inc:104 +msgid "Deny" +msgstr "禁止" + +#: ../lib/modules/pykotaGroup.inc:65 ../lib/modules/pykotaUser.inc:65 +msgid "Deny printing" +msgstr "印刷を禁止" + +#: ../lib/modules/inetOrgPerson.inc:162 ../lib/modules/inetOrgPerson.inc:217 +#: ../lib/modules/inetOrgPerson.inc:483 ../lib/modules/inetOrgPerson.inc:602 +#: ../lib/modules/inetOrgPerson.inc:800 ../lib/modules/inetOrgPerson.inc:804 +#: ../lib/modules/inetOrgPerson.inc:1481 ../lib/modules/inetOrgPerson.inc:1484 +#: ../lib/modules/inetOrgPerson.inc:1919 ../lib/modules/inetOrgPerson.inc:2670 +#: ../lib/modules/inetOrgPerson.inc:3547 ../lib/modules/inetOrgPerson.inc:3587 +msgid "Department" +msgstr "部門" + +#: ../lib/modules/kolabGroup.inc:105 ../lib/modules/kolabGroup.inc:109 +#: ../lib/modules/kolabUser.inc:162 ../lib/modules/kolabUser.inc:166 +#: ../lib/modules/kolabSharedFolder.inc:130 +#: ../lib/modules/kolabSharedFolder.inc:134 +msgid "" +"Describes the allowed or disallowed SMTP addresses sending mail to this " +"account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "このアカウントへのメール送信を 許可または禁止された SMTP送信者アドレスを記述します。 (例 \"domain.tld\" or \"-user@domain.tld\")。" + +#: ../lib/modules/kolabGroup.inc:96 ../lib/modules/kolabGroup.inc:100 +#: ../lib/modules/kolabUser.inc:153 ../lib/modules/kolabUser.inc:157 +#: ../lib/modules/kolabSharedFolder.inc:121 +#: ../lib/modules/kolabSharedFolder.inc:125 +msgid "" +"Describes the allowed or disallowed SMTP recipient addresses for mail sent " +"by this account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "" +"このアカウントによるメール送信を 許可または禁止された SMTP受信者アドレスを記" +"述します。 (例 \"domain.tld\" or \"-user@domain.tld\")。" + +#: ../templates/schema/schema.php:89 ../templates/schema/schema.php:143 +#: ../templates/schema/schema.php:346 +#: ../templates/3rdParty/pla/lib/functions.php:1898 +#: ../templates/3rdParty/pla/lib/functions.php:1902 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:139 +#: ../templates/3rdParty/pla/htdocs/import.php:101 +#: ../lib/types/automountType.inc:88 ../lib/types/nisObjectType.inc:80 +#: ../lib/types/oracleContextType.inc:79 +#: ../lib/types/pykotaBillingCodeType.inc:92 ../lib/types/user.inc:101 +#: ../lib/types/pykotaPrinterType.inc:92 ../lib/types/sudo.inc:84 +#: ../lib/types/dhcp.inc:96 ../lib/types/netgroup.inc:92 +#: ../lib/modules/pykotaPrinter.inc:99 ../lib/modules/pykotaPrinter.inc:153 +#: ../lib/modules/pykotaPrinter.inc:194 ../lib/modules/pykotaPrinter.inc:248 +#: ../lib/modules/pykotaPrinter.inc:585 ../lib/modules/account.inc:82 +#: ../lib/modules/account.inc:95 ../lib/modules/account.inc:105 +#: ../lib/modules/account.inc:113 ../lib/modules/account.inc:218 +#: ../lib/modules/account.inc:229 ../lib/modules/windowsHost.inc:78 +#: ../lib/modules/windowsHost.inc:101 ../lib/modules/windowsHost.inc:120 +#: ../lib/modules/windowsHost.inc:143 ../lib/modules/windowsHost.inc:289 +#: ../lib/modules/posixGroup.inc:201 ../lib/modules/posixGroup.inc:430 +#: ../lib/modules/posixGroup.inc:484 ../lib/modules/posixGroup.inc:577 +#: ../lib/modules/device.inc:81 ../lib/modules/device.inc:115 +#: ../lib/modules/device.inc:130 ../lib/modules/device.inc:173 +#: ../lib/modules/device.inc:421 ../lib/modules/dhcp_settings.inc:197 +#: ../lib/modules/dhcp_settings.inc:217 ../lib/modules/dhcp_settings.inc:307 +#: ../lib/modules/dhcp_settings.inc:620 ../lib/modules/dhcp_settings.inc:684 +#: ../lib/modules/pykotaGroup.inc:117 ../lib/modules/pykotaGroup.inc:166 +#: ../lib/modules/pykotaGroup.inc:188 ../lib/modules/pykotaGroup.inc:233 +#: ../lib/modules/pykotaGroup.inc:468 ../lib/modules/posixAccount.inc:556 +#: ../lib/modules/windowsUser.inc:119 ../lib/modules/windowsUser.inc:308 +#: ../lib/modules/windowsUser.inc:500 ../lib/modules/windowsUser.inc:705 +#: ../lib/modules/windowsUser.inc:1588 ../lib/modules/nisObject.inc:73 +#: ../lib/modules/nisObject.inc:103 ../lib/modules/nisObject.inc:114 +#: ../lib/modules/nisObject.inc:155 ../lib/modules/nisObject.inc:212 +#: ../lib/modules/sambaGroupMapping.inc:114 +#: ../lib/modules/sambaGroupMapping.inc:542 ../lib/modules/pykotaUser.inc:120 +#: ../lib/modules/pykotaUser.inc:226 ../lib/modules/pykotaUser.inc:277 +#: ../lib/modules/pykotaUser.inc:413 ../lib/modules/pykotaUser.inc:892 +#: ../lib/modules/automount.inc:72 ../lib/modules/automount.inc:95 +#: ../lib/modules/automount.inc:105 ../lib/modules/automount.inc:132 +#: ../lib/modules/automount.inc:183 ../lib/modules/nisnetgroup.inc:87 +#: ../lib/modules/nisnetgroup.inc:140 ../lib/modules/nisnetgroup.inc:199 +#: ../lib/modules/nisnetgroup.inc:580 ../lib/modules/inetOrgPerson.inc:163 +#: ../lib/modules/inetOrgPerson.inc:175 ../lib/modules/inetOrgPerson.inc:329 +#: ../lib/modules/inetOrgPerson.inc:542 ../lib/modules/inetOrgPerson.inc:632 +#: ../lib/modules/inetOrgPerson.inc:1207 ../lib/modules/inetOrgPerson.inc:1210 +#: ../lib/modules/inetOrgPerson.inc:1890 ../lib/modules/inetOrgPerson.inc:2765 +#: ../lib/modules/inetOrgPerson.inc:3509 ../lib/modules/inetOrgPerson.inc:3576 +#: ../lib/modules/sudoRole.inc:70 ../lib/modules/sudoRole.inc:153 +#: ../lib/modules/sudoRole.inc:215 ../lib/modules/sudoRole.inc:305 +#: ../lib/modules/sudoRole.inc:805 ../lib/modules/oracleService.inc:69 +#: ../lib/modules/oracleService.inc:92 ../lib/modules/oracleService.inc:100 +#: ../lib/modules/oracleService.inc:122 ../lib/modules/oracleService.inc:172 +#: ../lib/modules/organizationalRole.inc:89 +#: ../lib/modules/organizationalRole.inc:123 +#: ../lib/modules/organizationalRole.inc:141 +#: ../lib/modules/organizationalRole.inc:163 +#: ../lib/modules/organizationalRole.inc:189 +#: ../lib/modules/organizationalRole.inc:453 ../lib/modules/fixed_ip.inc:110 +#: ../lib/modules/fixed_ip.inc:433 ../lib/modules/fixed_ip.inc:744 +#: ../lib/modules/pykotaBillingCode.inc:81 +#: ../lib/modules/pykotaBillingCode.inc:109 +#: ../lib/modules/pykotaBillingCode.inc:116 +#: ../lib/modules/pykotaBillingCode.inc:159 +#: ../lib/modules/pykotaBillingCode.inc:262 +#: ../lib/modules/windowsGroup.inc:118 ../lib/modules/windowsGroup.inc:183 +#: ../lib/modules/windowsGroup.inc:258 ../lib/modules/windowsGroup.inc:301 +#: ../lib/modules/windowsGroup.inc:746 ../lib/modules/groupOfNames.inc:89 +#: ../lib/modules/groupOfNames.inc:135 ../lib/modules/groupOfNames.inc:171 +#: ../lib/modules/groupOfNames.inc:199 ../lib/modules/groupOfNames.inc:235 +#: ../lib/modules/groupOfNames.inc:694 +msgid "Description" +msgstr "説明" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "Destination DN" +msgstr "宛先のDN" + +#: ../lib/modules/device.inc:45 +msgid "Device" +msgstr "デバイス" + +#: ../lib/modules/sambaSamAccount.inc:393 +#: ../lib/modules/sambaSamAccount.inc:584 +msgid "Disable LM hashes" +msgstr "LMハッシュを無効化" + +#: ../lib/modules/ddns.inc:89 ../lib/modules/ddns.inc:370 +msgid "Disable client updates" +msgstr "クライアントによる更新を禁止" + +#: ../lib/modules/posixGroup.inc:417 ../lib/modules/posixGroup.inc:533 +msgid "Disable membership management" +msgstr "会員資格の管理を無効化" + +#: ../lib/modules/qmailUser.inc:43 +msgid "Disabled" +msgstr "無効" + +#: ../lib/modules/ddns.inc:90 +msgid "Disables the client to update DNS entries." +msgstr "クライアントによるDNSエントリの更新を禁止します。" + +#: ../lib/modules/posixGroup.inc:534 +msgid "Disables the group membership management." +msgstr "グループメンバー資格の管理を無効化します。" + +#: ../lib/modules/mitKerberos.inc:172 +msgid "" +"Disables user-to-user authentication for this principal by prohibiting this " +"principal from obtaining a session key for another user." +msgstr "" +"このprincipalで他のユーザーがセッション鍵を取得するのを禁止することで、この" +"principalのユーザー対ユーザー認証を禁止します。" + +#: ../lib/modules/heimdalKerberos.inc:130 +#: ../lib/modules/heimdalKerberos.inc:378 +msgid "Disallow TGT-based tickets" +msgstr "TGTベースのチケットを禁止する" + +#: ../lib/modules/mitKerberos.inc:174 ../lib/modules/mitKerberos.inc:452 +#: ../lib/modules/heimdalKerberos.inc:148 +#: ../lib/modules/heimdalKerberos.inc:383 +msgid "Disallow all tickets" +msgstr "全てのチケットを禁止する" + +#: ../templates/config/conftypes.php:317 ../help/help.inc:178 +msgid "Disallow delete" +msgstr "削除を禁止" + +#: ../lib/modules/mitKerberos.inc:162 ../lib/modules/mitKerberos.inc:422 +#: ../lib/modules/heimdalKerberos.inc:133 +#: ../lib/modules/heimdalKerberos.inc:353 +msgid "Disallow forwardable tickets" +msgstr "転送可能なチケットを禁止する" + +#: ../lib/modules/mitKerberos.inc:159 ../lib/modules/mitKerberos.inc:437 +#: ../lib/modules/heimdalKerberos.inc:142 +#: ../lib/modules/heimdalKerberos.inc:368 +msgid "Disallow post-dated tickets" +msgstr "先付け日付のチケットを禁止" + +#: ../lib/modules/mitKerberos.inc:168 ../lib/modules/mitKerberos.inc:427 +#: ../lib/modules/heimdalKerberos.inc:136 +#: ../lib/modules/heimdalKerberos.inc:358 +msgid "Disallow proxiable tickets" +msgstr "代理可能なチケットを禁止する" + +#: ../lib/modules/mitKerberos.inc:165 ../lib/modules/mitKerberos.inc:432 +#: ../lib/modules/heimdalKerberos.inc:139 +#: ../lib/modules/heimdalKerberos.inc:363 +msgid "Disallow renewable tickets" +msgstr "更新可能なチケットを禁止する" + +#: ../lib/modules/mitKerberos.inc:186 ../lib/modules/mitKerberos.inc:442 +#: ../lib/modules/heimdalKerberos.inc:145 +#: ../lib/modules/heimdalKerberos.inc:373 +msgid "Disallow service tickets" +msgstr "サービスチケットを禁止" + +#: ../lib/modules/mitKerberos.inc:171 ../lib/modules/mitKerberos.inc:447 +msgid "Disallow user-to-user authentication" +msgstr "ユーザー対ユーザー認証を禁止する" + +#: ../lib/modules/asteriskAccount.inc:199 +#: ../lib/modules/asteriskAccount.inc:288 +#: ../lib/modules/asteriskAccount.inc:472 +#: ../lib/modules/asteriskAccount.inc:709 +#: ../lib/modules/asteriskAccount.inc:1004 +#: ../lib/modules/asteriskAccount.inc:1277 +msgid "Disallowed codec" +msgstr "禁止されたコーデック" + +#: ../lib/modules/sambaDomain.inc:113 ../lib/modules/sambaDomain.inc:193 +#: ../lib/modules/sambaDomain.inc:299 ../lib/modules/sambaDomain.inc:621 +msgid "Disconnect users outside logon hours" +msgstr "ログオン許可時間帯以外はユーザをログオフさせる。" + +#: ../lib/modules/sambaSamAccount.inc:237 +#: ../lib/modules/sambaSamAccount.inc:1523 +#: ../lib/modules/sambaSamAccount.inc:1927 +msgid "Disconnection time limit" +msgstr "切断時間の制限" + +#: ../lib/modules/sambaDomain.inc:114 +msgid "Disconnects users if they are logged in outside logon hours." +msgstr "ログオン許可時間帯以外にログオン状態のユーザーの接続を切る。" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +#: ../lib/modules/organizationalRole.inc:106 +#: ../lib/modules/organizationalRole.inc:153 +#: ../lib/modules/groupOfNames.inc:118 ../lib/modules/groupOfNames.inc:187 +msgid "Display format" +msgstr "表示フォーマット" + +#: ../lib/modules/customFields.inc:176 ../lib/modules/customFields.inc:509 +msgid "Display multiple groups as accordion" +msgstr "複数のグループをアコーディオンで表示" + +#: ../lib/modules/sambaSamAccount.inc:111 +#: ../lib/modules/sambaSamAccount.inc:209 +#: ../lib/modules/sambaSamAccount.inc:258 +#: ../lib/modules/sambaSamAccount.inc:419 +#: ../lib/modules/sambaSamAccount.inc:1138 +#: ../lib/modules/sambaSamAccount.inc:1899 ../lib/modules/windowsUser.inc:123 +#: ../lib/modules/windowsUser.inc:296 ../lib/modules/windowsUser.inc:474 +#: ../lib/modules/windowsUser.inc:501 ../lib/modules/windowsUser.inc:595 +#: ../lib/modules/windowsUser.inc:703 ../lib/modules/windowsUser.inc:1589 +#: ../lib/modules/sambaGroupMapping.inc:112 +#: ../lib/modules/sambaGroupMapping.inc:146 +#: ../lib/modules/sambaGroupMapping.inc:359 +#: ../lib/modules/sambaGroupMapping.inc:540 +msgid "Display name" +msgstr "表示名" + +#: ../templates/lists/changePassword.php:317 +msgid "Display on screen" +msgstr "スクリーンに表示" + +#: ../templates/3rdParty/pla/htdocs/create.php:97 +msgid "Display the created entry" +msgstr "作成したエントリを表示" + +#: ../lib/modules.inc:503 +msgid "" +"Displayed account numbers start at \"0\". Add 2 to get the row in your " +"spreadsheet." +msgstr "" +"表示されているアカウント番号は\"0\"から始まっています。表計算シート上の行番号" +"を求めたい場合は、2を足してください。" + +#: ../lib/modules/windowsGroup.inc:61 +msgid "Distribution" +msgstr "Distribution" + +#: ../lib/modules/passwordSelfReset.inc:140 +#: ../lib/modules/passwordSelfReset.inc:545 +msgid "Do not ask security question" +msgstr "秘密の質問を使用しない" + +#: ../templates/ou_edit.php:112 +msgid "Do you really want to delete this OU?" +msgstr "本当にこのOUを削除しますか?" + +#: ../templates/pdfedit/pdfmain.php:351 +msgid "Do you really want to delete this PDF structure?" +msgstr "本当にこのPDF構成を削除しますか?" + +#: ../templates/profedit/profilemain.php:319 +msgid "Do you really want to delete this profile?" +msgstr "本当にこのプロファイルを削除しますか?" + +#: ../lib/modules/kolabGroup.inc:285 ../lib/modules/kolabUser.inc:515 +#: ../lib/modules/kolabSharedFolder.inc:425 +msgid "Do you really want to mark this account for deletion?" +msgstr "本当にこのアカウントを削除しますか?" + +#: ../lib/modules/qmailGroup.inc:273 +msgid "Do you really want to post to this mailinglist?" +msgstr "本当にこのメーリングリストへ投稿しますか?" + +#: ../templates/delete.php:94 +msgid "Do you really want to remove the following accounts?" +msgstr "本当にこのアカウントを削除しますか?" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:59 +msgid "Do you want to create this entry?" +msgstr "このエントリを作成しますか?" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:36 +msgid "Do you want to make these changes?" +msgstr "これらの変更を行ないますか?" + +#: ../lib/modules/sambaSamAccount.inc:210 +#: ../lib/modules/sambaSamAccount.inc:336 +#: ../lib/modules/sambaSamAccount.inc:412 +#: ../lib/modules/sambaSamAccount.inc:536 +#: ../lib/modules/sambaSamAccount.inc:1280 +#: ../lib/modules/sambaSamAccount.inc:1774 +#: ../lib/modules/sambaSamAccount.inc:1796 +#: ../lib/modules/sambaSamAccount.inc:1905 ../lib/modules/windowsUser.inc:111 +#: ../lib/modules/windowsUser.inc:1656 +#: ../lib/modules/sambaGroupMapping.inc:158 +#: ../lib/modules/sambaGroupMapping.inc:386 +#: ../lib/modules/sambaGroupMapping.inc:576 ../lib/modules/nisnetgroup.inc:223 +#: ../lib/modules/nisnetgroup.inc:587 +msgid "Domain" +msgstr "ドメイン" + +#: ../lib/modules/sambaSamAccount.inc:84 +msgid "Domain KRBTGT" +msgstr "ドメインKRBTGT" + +#: ../lib/types/smbDomain.inc:91 ../lib/modules/sambaDomain.inc:81 +#: ../lib/modules/sambaDomain.inc:151 ../lib/modules/sambaDomain.inc:185 +#: ../lib/modules/sambaDomain.inc:256 ../lib/modules/sambaDomain.inc:261 +#: ../lib/modules/sambaDomain.inc:600 +msgid "Domain SID" +msgstr "ドメインのSID" + +#: ../lib/modules/sambaGroupMapping.inc:125 +#: ../lib/modules/windowsGroup.inc:178 ../lib/modules/windowsGroup.inc:185 +#: ../lib/modules/windowsGroup.inc:191 +msgid "Domain administrators" +msgstr "ドメイン管理者(Domain administrator)" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:60 +#: ../lib/modules/sambaGroupMapping.inc:131 +msgid "Domain admins" +msgstr "ドメイン管理者(Domain Admins)" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:65 +msgid "Domain certificate admins" +msgstr "ドメイン証明書管理者(Domain Certificate Admins)" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaSamAccount.inc:806 +#: ../lib/modules/sambaGroupMapping.inc:63 +msgid "Domain computers" +msgstr "ドメインコンピュータ(Domain Computers)" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:64 +msgid "Domain controllers" +msgstr "ドメインコントローラ(Domain Controllers)" + +#: ../lib/types/smbDomain.inc:167 +#, php-format +msgid "Domain count: %s" +msgstr "ドメイン数: %s" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:67 +msgid "Domain enterprise admins" +msgstr "ドメインエンタープライズ管理者(Domain Enterprise Admins)" + +#: ../lib/modules/sambaGroupMapping.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:377 +msgid "Domain group" +msgstr "ドメイングループ(Domain Group)" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:62 +msgid "Domain guests" +msgstr "ドメインゲスト(Domain Guests)" + +#: ../lib/modules/windowsGroup.inc:64 +msgid "Domain local" +msgstr "Domain local" + +#: ../lib/types/smbDomain.inc:92 ../lib/modules/dhcp_settings.inc:145 +#: ../lib/modules/dhcp_settings.inc:208 ../lib/modules/dhcp_settings.inc:223 +#: ../lib/modules/dhcp_settings.inc:250 ../lib/modules/dhcp_settings.inc:567 +#: ../lib/modules/dhcp_settings.inc:674 ../lib/modules/nisnetgroup.inc:154 +#: ../lib/modules/sambaDomain.inc:77 ../lib/modules/sambaDomain.inc:144 +#: ../lib/modules/sambaDomain.inc:184 ../lib/modules/sambaDomain.inc:241 +#: ../lib/modules/sambaDomain.inc:246 ../lib/modules/sambaDomain.inc:599 +msgid "Domain name" +msgstr "ドメイン名" + +#: ../lib/modules/nisnetgroup.inc:154 ../lib/modules/sambaDomain.inc:208 +#: ../lib/modules/sambaDomain.inc:209 +msgid "Domain name is invalid!" +msgstr "ドメイン名が無効です!" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:68 +msgid "Domain policy admins" +msgstr "ドメインポリシー管理者(Domain Policy Admins)" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:66 +msgid "Domain schema admins" +msgstr "ドメインスキーマ管理者(Domain Schema Admins)" + +#: ../lib/modules/sambaSamAccount.inc:79 +#: ../lib/modules/sambaSamAccount.inc:2168 +#: ../lib/modules/sambaGroupMapping.inc:61 +msgid "Domain users" +msgstr "ドメインユーザ(Domain Users)" + +#: ../lib/modules/windowsUser.inc:240 ../lib/modules/windowsUser.inc:557 +msgid "Domains" +msgstr "ドメイン" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:43 +msgid "Don't stop on errors" +msgstr "エラーで停止しない。" + +#: ../templates/pdfedit/pdfpage.php:475 +msgid "Down" +msgstr "下へ" + +#: ../templates/config/mainmanage.php:321 +msgid "Download CA certificates" +msgstr "CA証明書をダウンロード" + +#: ../templates/masscreate.php:256 +msgid "Download sample CSV file" +msgstr "サンプルCSVファイルをダウンロード" + +#: ../templates/multiEdit.php:162 +msgid "Dry run" +msgstr "予行演習" + +#: ../templates/multiEdit.php:437 +msgid "DryRun finished." +msgstr "予行演習が完了しました。" + +#: ../templates/serverInfo.php:124 +msgid "Dynamic subtrees" +msgstr "動的サブツリー" + +#: ../lib/modules/eduPerson.inc:72 +msgid "EDU person" +msgstr "EDU person" + +#: ../lib/modules/selfRegistration.inc:80 +msgid "" +"Each line represents one LDAP attribute. Please see the manual for a syntax " +"description." +msgstr "" +"各行が一個のLDAP属性に相当します。文法の詳細につては、マニュアルを参照してく" +"ださい。" + +#: ../lib/modules/sambaSamAccount.inc:574 +msgid "East Australian Standard, Guam" +msgstr "East Australian Standard, Guam" + +#: ../lib/modules/sambaSamAccount.inc:566 +msgid "Eastern Europe Time, South Africa" +msgstr "Eastern Europe Time, South Africa" + +#: ../lib/modules/sambaSamAccount.inc:559 +msgid "Eastern Time (US & Canada), Bogota" +msgstr "Eastern Time (US & Canada), Bogota" + +#: ../templates/pdfedit/pdfmain.php:206 +#: ../templates/profedit/profilemain.php:195 +#: ../lib/modules/sambaSamAccount.inc:1285 +#: ../lib/modules/sambaSamAccount.inc:1290 ../lib/lists.inc:488 +msgid "Edit" +msgstr "編集" + +#: ../lib/modules.inc:1349 +msgid "Edit again" +msgstr "再編集" + +#: ../templates/config/mainmanage.php:228 ../templates/config/index.php:99 +msgid "Edit general settings" +msgstr "一般設定を更新" + +#: ../lib/modules/posixAccount.inc:1454 ../lib/modules/windowsUser.inc:786 +msgid "Edit groups" +msgstr "グループの編集" + +#: ../lib/modules/posixGroup.inc:223 ../lib/modules/windowsGroup.inc:382 +msgid "Edit members" +msgstr "メンバーの編集" + +#: ../templates/config/index.php:125 +msgid "Edit self service" +msgstr "セルフサービスの編集" + +#: ../templates/config/index.php:111 +msgid "Edit server profiles" +msgstr "サーバープロファイルの編集" + +#: ../lib/modules/nisnetgroup.inc:208 +msgid "Edit subgroups" +msgstr "サブグループの編集" + +#: ../lib/modules/sambaSamAccount.inc:1241 +msgid "Edit workstations" +msgstr "ワークステーションの編集??" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1872 +#: ../lib/types/zarafaDynamicGroupType.inc:92 ../lib/types/user.inc:100 +#: ../lib/modules/zarafaDynamicGroup.inc:243 +#: ../lib/modules/zarafaDynamicGroup.inc:248 +#: ../lib/modules/zarafaGroup.inc:234 ../lib/modules/zarafaGroup.inc:241 +#: ../lib/modules/passwordSelfReset.inc:500 +#: ../lib/modules/nisMailAlias.inc:344 +msgid "Email" +msgstr "電子メール" + +#: ../lib/modules/inetOrgPerson.inc:79 +#, php-format +msgid "Email \"%s\" already in use." +msgstr "eメール \"%s\" はすでに使用されています" + +#: ../templates/lists/changePassword.php:283 ../lib/modules/kolabGroup.inc:87 +#: ../lib/modules/kolabGroup.inc:91 ../lib/modules/kolabGroup.inc:155 +#: ../lib/modules/kolabGroup.inc:168 ../lib/modules/kolabGroup.inc:177 +#: ../lib/modules/kolabGroup.inc:179 ../lib/modules/kolabGroup.inc:202 +#: ../lib/modules/kolabGroup.inc:423 ../lib/modules/selfRegistration.inc:400 +#: ../lib/modules/selfRegistration.inc:482 +#: ../lib/modules/zarafaDynamicGroup.inc:67 +#: ../lib/modules/zarafaDynamicGroup.inc:68 +#: ../lib/modules/zarafaDynamicGroup.inc:124 +#: ../lib/modules/zarafaDynamicGroup.inc:166 +#: ../lib/modules/zarafaDynamicGroup.inc:200 +#: ../lib/modules/zarafaDynamicGroup.inc:448 ../lib/modules/qmailUser.inc:199 +#: ../lib/modules/qmailUser.inc:299 ../lib/modules/qmailUser.inc:406 +#: ../lib/modules/qmailUser.inc:448 ../lib/modules/qmailUser.inc:492 +#: ../lib/modules/qmailUser.inc:1139 ../lib/modules/zarafaGroup.inc:69 +#: ../lib/modules/zarafaGroup.inc:70 ../lib/modules/zarafaGroup.inc:170 +#: ../lib/modules/zarafaGroup.inc:200 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:648 ../lib/modules/windowsUser.inc:140 +#: ../lib/modules/windowsUser.inc:350 ../lib/modules/windowsUser.inc:475 +#: ../lib/modules/windowsUser.inc:505 ../lib/modules/windowsUser.inc:607 +#: ../lib/modules/windowsUser.inc:716 ../lib/modules/windowsUser.inc:1593 +#: ../lib/modules/pykotaUser.inc:116 ../lib/modules/pykotaUser.inc:218 +#: ../lib/modules/pykotaUser.inc:274 ../lib/modules/pykotaUser.inc:319 +#: ../lib/modules/pykotaUser.inc:409 ../lib/modules/pykotaUser.inc:890 +#: ../lib/modules/inetOrgPerson.inc:78 ../lib/modules/inetOrgPerson.inc:79 +#: ../lib/modules/inetOrgPerson.inc:157 ../lib/modules/inetOrgPerson.inc:211 +#: ../lib/modules/inetOrgPerson.inc:449 ../lib/modules/inetOrgPerson.inc:584 +#: ../lib/modules/inetOrgPerson.inc:720 ../lib/modules/inetOrgPerson.inc:724 +#: ../lib/modules/inetOrgPerson.inc:1414 ../lib/modules/inetOrgPerson.inc:1417 +#: ../lib/modules/inetOrgPerson.inc:1903 ../lib/modules/inetOrgPerson.inc:2456 +#: ../lib/modules/inetOrgPerson.inc:3537 ../lib/modules/inetOrgPerson.inc:3584 +#: ../lib/modules/kolabSharedFolder.inc:116 +#: ../lib/modules/kolabSharedFolder.inc:181 +#: ../lib/modules/kolabSharedFolder.inc:239 +#: ../lib/modules/kolabSharedFolder.inc:259 +#: ../lib/modules/kolabSharedFolder.inc:281 +#: ../lib/modules/kolabSharedFolder.inc:558 +#: ../lib/modules/asteriskVoicemail.inc:107 +#: ../lib/modules/asteriskVoicemail.inc:140 +#: ../lib/modules/asteriskVoicemail.inc:178 +#: ../lib/modules/asteriskVoicemail.inc:254 +#: ../lib/modules/asteriskVoicemail.inc:374 ../lib/modules/qmailGroup.inc:123 +#: ../lib/modules/qmailGroup.inc:127 ../lib/modules/qmailGroup.inc:240 +#: ../lib/modules/qmailGroup.inc:371 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:457 ../lib/modules/qmailGroup.inc:1056 +#: ../lib/modules/imapAccess.inc:232 ../lib/modules/passwordSelfReset.inc:849 +#: ../lib/modules/passwordSelfReset.inc:1020 +#: ../lib/modules/windowsGroup.inc:126 ../lib/modules/windowsGroup.inc:165 +#: ../lib/modules/windowsGroup.inc:219 ../lib/modules/windowsGroup.inc:265 +#: ../lib/modules/windowsGroup.inc:285 ../lib/modules/windowsGroup.inc:303 +#: ../lib/modules/windowsGroup.inc:748 +msgid "Email address" +msgstr "電子メールアドレス" + +#: ../lib/modules/kolabGroup.inc:179 ../lib/modules/kolabGroup.inc:180 +msgid "Email address already exists." +msgstr "eメールアドレスは既に存在します。" + +#: ../lib/modules/asteriskVoicemail.inc:108 +msgid "Email address for this voicemail account." +msgstr "このボイスメール・アカウントに対する電子メール・アドレス。" + +#: ../lib/modules/qmailGroup.inc:221 ../lib/modules/qmailGroup.inc:225 +msgid "Email addresses that are allowed to send to this list." +msgstr "このリストへの送信を許可されたメールアドレス。" + +#: ../lib/modules/qmailGroup.inc:205 ../lib/modules/qmailGroup.inc:209 +msgid "Email addresses that are member of this list." +msgstr "このリストに属するメールアドレス。" + +#: ../lib/modules/qmailGroup.inc:213 ../lib/modules/qmailGroup.inc:217 +msgid "Email addresses that moderate this list (e.g. approve mails)." +msgstr "このリストをモデレートするメールアドレス(e.g. approve mails)。" + +#: ../lib/modules/zarafaContact.inc:83 ../lib/modules/zarafaUser.inc:124 +#: ../lib/modules/windowsUser.inc:227 ../lib/modules/windowsUser.inc:231 +#: ../lib/modules/windowsUser.inc:356 ../lib/modules/windowsUser.inc:476 +#: ../lib/modules/windowsUser.inc:506 ../lib/modules/windowsUser.inc:609 +#: ../lib/modules/windowsUser.inc:717 ../lib/modules/windowsUser.inc:1594 +#: ../lib/modules/kolabUser.inc:140 ../lib/modules/kolabSharedFolder.inc:146 +msgid "Email alias" +msgstr "電子メールの別名" + +#: ../lib/modules/zarafaContact.inc:84 ../lib/modules/zarafaUser.inc:125 +#: ../lib/modules/windowsUser.inc:228 ../lib/modules/windowsUser.inc:232 +#: ../lib/modules/kolabUser.inc:141 ../lib/modules/kolabSharedFolder.inc:147 +msgid "Email alias for this account." +msgstr "このアカウントに対する電子メール・エイリアス。" + +#: ../lib/modules/zarafaContact.inc:185 ../lib/modules/zarafaContact.inc:186 +#: ../lib/modules/zarafaUser.inc:417 ../lib/modules/zarafaUser.inc:418 +#: ../lib/modules/windowsUser.inc:609 ../lib/modules/windowsUser.inc:610 +#: ../lib/modules/kolabUser.inc:247 ../lib/modules/kolabSharedFolder.inc:254 +msgid "Email alias is invalid!" +msgstr "電子メール・エイリアスが無効です!" + +#: ../lib/modules/kolabUser.inc:144 ../lib/modules/kolabSharedFolder.inc:150 +msgid "Email alias list" +msgstr "電子メール・エイリアスのリスト" + +#: ../lib/modules/kolabUser.inc:248 ../lib/modules/kolabSharedFolder.inc:255 +msgid "Email alias list has invalid format!" +msgstr "電子メール・エイリアス・リストの形式が無効です!" + +#: ../lib/types/kolabSharedFolderType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:97 +#: ../lib/modules/zarafaDynamicGroup.inc:71 +#: ../lib/modules/zarafaDynamicGroup.inc:75 +#: ../lib/modules/zarafaDynamicGroup.inc:130 +#: ../lib/modules/zarafaDynamicGroup.inc:167 +#: ../lib/modules/zarafaDynamicGroup.inc:258 +#: ../lib/modules/zarafaDynamicGroup.inc:451 +#: ../lib/modules/zarafaContact.inc:143 ../lib/modules/zarafaContact.inc:176 +#: ../lib/modules/zarafaContact.inc:207 ../lib/modules/zarafaContact.inc:566 +#: ../lib/modules/zarafaGroup.inc:73 ../lib/modules/zarafaGroup.inc:77 +#: ../lib/modules/zarafaGroup.inc:162 ../lib/modules/zarafaGroup.inc:197 +#: ../lib/modules/zarafaGroup.inc:252 ../lib/modules/zarafaGroup.inc:649 +#: ../lib/modules/zarafaUser.inc:188 ../lib/modules/zarafaUser.inc:370 +#: ../lib/modules/zarafaUser.inc:385 ../lib/modules/zarafaUser.inc:443 +#: ../lib/modules/zarafaUser.inc:1235 ../lib/modules/zarafaUser.inc:1497 +#: ../lib/modules/zarafaUser.inc:1809 ../lib/modules/kolabUser.inc:205 +#: ../lib/modules/kolabUser.inc:233 ../lib/modules/kolabUser.inc:351 +#: ../lib/modules/kolabUser.inc:764 ../lib/modules/kolabSharedFolder.inc:220 +#: ../lib/modules/kolabSharedFolder.inc:236 +#: ../lib/modules/kolabSharedFolder.inc:312 +#: ../lib/modules/kolabSharedFolder.inc:563 +msgid "Email aliases" +msgstr "電子メール・エイリアス" + +#: ../templates/config/mainmanage.php:446 ../help/help.inc:156 +msgid "Email format" +msgstr "eメールフォーマット" + +#: ../lib/modules/inetOrgPerson.inc:345 ../lib/modules/inetOrgPerson.inc:614 +#: ../lib/modules/inetOrgPerson.inc:832 ../lib/modules/inetOrgPerson.inc:1455 +#: ../lib/modules/inetOrgPerson.inc:1458 ../lib/modules/inetOrgPerson.inc:1914 +#: ../lib/modules/inetOrgPerson.inc:3555 ../lib/modules/inetOrgPerson.inc:3589 +#: ../lib/modules/passwordSelfReset.inc:503 +#: ../lib/modules/passwordSelfReset.inc:855 +#: ../lib/modules/passwordSelfReset.inc:1025 +msgid "Employee number" +msgstr "従業員番号" + +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:229 +#: ../lib/modules/inetOrgPerson.inc:353 ../lib/modules/inetOrgPerson.inc:596 +#: ../lib/modules/inetOrgPerson.inc:652 ../lib/modules/inetOrgPerson.inc:1464 +#: ../lib/modules/inetOrgPerson.inc:1467 ../lib/modules/inetOrgPerson.inc:1912 +#: ../lib/modules/inetOrgPerson.inc:3543 ../lib/modules/inetOrgPerson.inc:3586 +msgid "Employee type" +msgstr "雇用形態" + +#: ../lib/modules/inetOrgPerson.inc:653 +msgid "Employee type: Contractor, Employee, Intern, Temp, External, ..." +msgstr "雇用形態: 正社員、実習生、臨時雇用、派遣、..." + +#: ../templates/lists/changePassword.php:505 +#: ../templates/lists/changePassword.php:512 ../templates/login.php:543 +msgid "Empty password submitted. Please try again." +msgstr "パスワードが空です。やり直してください。" + +#: ../lib/modules/passwordSelfReset.inc:96 +#: ../lib/modules/passwordSelfReset.inc:490 +msgid "Enable password self reset link" +msgstr "パスワード・セルフ・リセットのリンクを有効化する" + +#: ../lib/modules/selfRegistration.inc:53 +#: ../lib/modules/selfRegistration.inc:190 +msgid "Enable self registration link" +msgstr "自己登録のリンクを有効化する" + +#: ../lib/modules/customFields.inc:153 +msgid "" +"Enables auto-completion for this field. All existing values of this " +"attribute will be offered as auto-complete values." +msgstr "" +"このフィールドに対する自動補完を有効にします。この属性に対して存在する全ての" +"値が、自動補完の候補として展開されます。" + +#: ../lib/modules/ppolicy.inc:97 +msgid "" +"Enables quality checking (e.g. password length) of passwords. If set to " +"\"force\" then you need to disable password hashing in your LAM server " +"profile to change passwords with LAM." +msgstr "" +"パスワードの強度チェック(例 パスワード長)を有効にする。もしも「強制」に設定し" +"た場合、LAMのパスワードを変更するために、LAMサーバープロファイルのパスワー" +"ド・ハッシュを無効にする必要があります。" + +#: ../templates/multiEdit.php:312 +#: ../templates/3rdParty/pla/lib/export_functions.php:160 +msgid "Encountered an error while performing search." +msgstr "検索実行中にエラーが発生しました。" + +#: ../templates/config/mainmanage.php:304 ../help/help.inc:160 +msgid "Encrypt session" +msgstr "暗号化セッション" + +#: ../lib/modules/imapAccess.inc:80 ../lib/modules/imapAccess.inc:120 +msgid "Encryption protocol" +msgstr "暗号化プロトコル" + +#: ../lib/modules/imapAccess.inc:81 +msgid "" +"Encryption protocol for connecting to IMAP server. LAM requires an encrypted " +"connection." +msgstr "" +"IMAPサーバーへの接続で使用する暗号化プロトコル。LAMは暗号化された接続を必要と" +"します。" + +#: ../help/help.inc:161 +msgid "" +"Encrypts sensitive data like passwords in your session. This requires the " +"PHP MCrypt extension." +msgstr "" +"セッション中にあるパスワードのようなセンシティブなデータを暗号化します。PHP " +"MCrypt拡張が必要です。" + +#: ../templates/selfService/adminMain.php:489 ../help/help.inc:103 +msgid "Enforce language" +msgstr "言語を固定" + +#: ../lib/modules/sambaSamAccount.inc:552 +msgid "Eniwetok, Kwajalein" +msgstr "Eniwetok, Kwajalein" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:91 +msgid "Enter the values you would like to add:" +msgstr "追加したい値を入力してください:" + +#: ../lib/modules/eduPerson.inc:118 ../lib/modules/eduPerson.inc:122 +#: ../lib/modules/eduPerson.inc:194 ../lib/modules/eduPerson.inc:231 +#: ../lib/modules/eduPerson.inc:344 ../lib/modules/eduPerson.inc:586 +msgid "Entitlements" +msgstr "資格" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:471 +msgid "Entries found" +msgstr "エントリーが見つかりました" + +#: ../templates/serverInfo.php:269 +msgid "Entries sent" +msgstr "エントリが送られました" + +#: ../templates/3rdParty/pla/lib/export_functions.php:473 +msgid "Entry" +msgstr "エントリ" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:43 +#, php-format +msgid "Entry %s and sub-tree deleted successfully." +msgstr "エントリ %s とサブツリーは削除されました。" + +#: ../templates/3rdParty/pla/htdocs/create.php:90 +msgid "Entry created" +msgstr "エントリが作成されました" + +#: ../templates/delete.php:330 +#: ../templates/3rdParty/pla/htdocs/mass_update.php:26 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:26 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:27 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:24 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:56 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:33 +msgid "Entry does not exist" +msgstr "エントリが存在しません" + +#: ../lib/modules/puppetClient.inc:80 ../lib/modules/puppetClient.inc:84 +#: ../lib/modules/puppetClient.inc:128 ../lib/modules/puppetClient.inc:153 +#: ../lib/modules/puppetClient.inc:161 ../lib/modules/puppetClient.inc:239 +#: ../lib/modules/puppetClient.inc:430 +msgid "Environment" +msgstr "環境" + +#: ../templates/schema/schema.php:166 +msgid "Equality" +msgstr "照合規則" + +#: ../lib/modules/zarafaUser.inc:529 ../lib/modules/zarafaUser.inc:1249 +msgid "Equipment" +msgstr "設備" + +#: ../templates/config/mainmanage.php:408 +#: ../templates/3rdParty/pla/lib/Template.php:430 +#: ../templates/3rdParty/pla/lib/Template.php:473 +#: ../templates/3rdParty/pla/lib/Template.php:517 +#: ../templates/3rdParty/pla/lib/functions.php:511 +#: ../templates/3rdParty/pla/lib/functions.php:513 +#: ../templates/3rdParty/pla/lib/ds_myldap.php:219 +#: ../templates/3rdParty/pla/htdocs/import.php:79 +msgid "Error" +msgstr "Error" + +#: ../templates/3rdParty/pla/lib/functions.php:1897 +#: ../templates/3rdParty/pla/lib/functions.php:1901 +msgid "Error number" +msgstr "エラー番号" + +#: ../lib/modules/mitKerberos.inc:1173 ../lib/modules/heimdalKerberos.inc:1038 +msgid "Error while changing Kerberos password." +msgstr "Kerberosパスワードの変更中にエラーが発生しました。" + +#: ../templates/delete.php:280 +#, php-format +msgid "Error while deleting DN: %s" +msgstr "DN: %s の削除中にエラーが発生しました。" + +#: ../help/help.inc:145 +msgid "" +"Every account type needs exactly one base module. This module provides a " +"structural object class." +msgstr "" +"全てのアカウントタイプにはただ一つのベースモジュールが必要です。このモジュー" +"ルは構造型のオブジェクトクラスを提供します。" + +#: ../lib/modules/customScripts.inc:67 ../lib/modules/customScripts.inc:80 +#: ../lib/modules/selfRegistration.inc:82 ../lib/modules/zarafaContact.inc:97 +#: ../lib/modules/zarafaGroup.inc:99 ../lib/modules/dhcp_settings.inc:564 +#: ../lib/modules/zarafaUser.inc:146 ../help/help.inc:74 ../help/help.inc:80 +#: ../help/help.inc:90 ../help/help.inc:95 ../help/help.inc:117 +msgid "Example" +msgstr "例" + +#: ../templates/masscreate.php:302 ../templates/masscreate.php:376 +msgid "Example value" +msgstr "例" + +#: ../help/help.inc:62 +msgid "Examples" +msgstr "例" + +#: ../templates/config/confmain.php:319 +msgid "Execute" +msgstr "実行" + +#: ../templates/tests/lamdaemonTest.php:269 +msgid "Execute lamdaemon" +msgstr "lamdaemonを実行" + +#: ../lib/modules/freeRadius.inc:104 ../lib/modules/freeRadius.inc:130 +#: ../lib/modules/freeRadius.inc:209 ../lib/modules/freeRadius.inc:237 +#: ../lib/modules/freeRadius.inc:385 ../lib/modules/freeRadius.inc:543 +msgid "Expiration date" +msgstr "期限切れ日付" + +#: ../lib/modules/bindDLZ.inc:204 ../lib/modules/bindDLZ.inc:307 +#: ../lib/modules/bindDLZ.inc:419 ../lib/modules/bindDLZ.inc:512 +#: ../lib/modules/bindDLZ.inc:1015 ../lib/modules/bindDLZ.inc:1544 +msgid "Expiration time" +msgstr "期限切れ時刻" + +#: ../lib/modules/asteriskAccount.inc:211 +#: ../lib/modules/asteriskAccount.inc:291 +#: ../lib/modules/asteriskAccount.inc:494 +#: ../lib/modules/asteriskAccount.inc:721 +#: ../lib/modules/asteriskAccount.inc:1007 +#: ../lib/modules/asteriskAccount.inc:1283 +msgid "Expiration timestamp" +msgstr "期限切れタイムスタンプ" + +#: ../lib/modules/asteriskAccount.inc:212 +msgid "Expiration timestamp (\"regseconds\" option)." +msgstr "期限切れタイムスタンプ(\"regseconds\"オプション)。" + +#: ../lib/types/ppolicyType.inc:86 ../lib/modules/ppolicy.inc:116 +#: ../lib/modules/ppolicy.inc:148 ../lib/modules/ppolicy.inc:174 +#: ../lib/modules/ppolicy.inc:214 ../lib/modules/ppolicy.inc:479 +msgid "Expire warning" +msgstr "期限切れ警告" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1081 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1084 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:305 +#: ../templates/3rdParty/pla/htdocs/export_form.php:37 +#: ../templates/3rdParty/pla/htdocs/export_form.php:53 +msgid "Export" +msgstr "エクスポート" + +#: ../templates/pdfedit/pdfmain.php:221 ../templates/pdfedit/pdfmain.php:222 +#: ../help/help.inc:212 +msgid "Export PDF structure" +msgstr "PDF構成のエクスポート" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:105 +msgid "Export format" +msgstr "エクスポート形式" + +#: ../templates/profedit/profilemain.php:209 +#: ../templates/profedit/profilemain.php:210 ../help/help.inc:194 +msgid "Export profile" +msgstr "プロファイルのエクスポート" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Export subtree" +msgstr "サブツリーをエクスポート" + +#: ../templates/pdfedit/pdfmain.php:117 +#: ../templates/profedit/profilemain.php:132 +msgid "Export successful" +msgstr "エクスポートが完了しました" + +#: ../templates/serverInfo.php:349 +msgid "Extended" +msgstr "Extended" + +#: ../lib/types/asteriskExt.inc:143 +#, php-format +msgid "Extension count: %s" +msgstr "拡張の数: %s" + +#: ../lib/types/asteriskExt.inc:94 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskExtension.inc:102 +#: ../lib/modules/asteriskExtension.inc:137 +#: ../lib/modules/asteriskExtension.inc:145 +#: ../lib/modules/asteriskExtension.inc:289 +#: ../lib/modules/asteriskExtension.inc:293 +#: ../lib/modules/asteriskExtension.inc:813 +msgid "Extension name" +msgstr "拡張名" + +#: ../lib/modules/asteriskExtension.inc:114 +#: ../lib/modules/asteriskExtension.inc:138 +#: ../lib/modules/asteriskExtension.inc:159 +#: ../lib/modules/asteriskExtension.inc:233 +#: ../lib/modules/asteriskExtension.inc:481 +#: ../lib/modules/asteriskExtension.inc:814 +msgid "Extension owners" +msgstr "拡張の所有者" + +#: ../lib/modules/asteriskExtension.inc:190 +msgid "Extension with this name already exists." +msgstr "同名の拡張が既に存在しています。" + +#: ../templates/3rdParty/pla/htdocs/import.php:66 +msgid "Failed" +msgstr "失敗しました" + +#: ../lib/modules/mitKerberos.inc:128 ../lib/modules/mitKerberos.inc:252 +#: ../lib/modules/mitKerberos.inc:298 ../lib/modules/mitKerberos.inc:345 +#: ../lib/modules/mitKerberos.inc:768 +msgid "Failed logins" +msgstr "失敗したログイン" + +#: ../templates/initsuff.php:152 +msgid "Failed to create entry!" +msgstr "エントリ作成に失敗しました!" + +#: ../lib/profiles.inc:190 ../lib/pdfstruct.inc:224 +msgid "Failed to export!" +msgstr "エクスポートに失敗しました!" + +#: ../lib/profiles.inc:197 ../lib/pdfstruct.inc:231 +msgid "Failed to import!" +msgstr "インポートに失敗しました!" + +#: ../lib/types/ppolicyType.inc:85 ../lib/modules/ppolicy.inc:112 +#: ../lib/modules/ppolicy.inc:153 ../lib/modules/ppolicy.inc:173 +#: ../lib/modules/ppolicy.inc:280 ../lib/modules/ppolicy.inc:478 +msgid "Failure count interval" +msgstr "試行回数インターバル" + +#: ../lib/modules/inetOrgPerson.inc:76 ../lib/modules/inetOrgPerson.inc:158 +#: ../lib/modules/inetOrgPerson.inc:208 ../lib/modules/inetOrgPerson.inc:441 +#: ../lib/modules/inetOrgPerson.inc:581 ../lib/modules/inetOrgPerson.inc:712 +#: ../lib/modules/inetOrgPerson.inc:716 ../lib/modules/inetOrgPerson.inc:1406 +#: ../lib/modules/inetOrgPerson.inc:1409 ../lib/modules/inetOrgPerson.inc:1905 +#: ../lib/modules/inetOrgPerson.inc:2511 ../lib/modules/inetOrgPerson.inc:3535 +#: ../lib/modules/inetOrgPerson.inc:3583 +msgid "Fax number" +msgstr "ファクス番号" + +#: ../lib/modules/zarafaUser.inc:155 ../lib/modules/zarafaUser.inc:376 +#: ../lib/modules/zarafaUser.inc:638 ../lib/modules/zarafaUser.inc:1288 +#: ../lib/modules/zarafaUser.inc:1327 ../lib/modules/zarafaUser.inc:1807 +msgid "Features" +msgstr "Features" + +#: ../templates/config/mainmanage.php:412 +#: ../templates/3rdParty/pla/lib/functions.php:533 +#: ../templates/3rdParty/pla/tools/unserialize.php:14 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "File" +msgstr "ファイル" + +#: ../lib/pdfstruct.inc:282 +msgid "File does not exist." +msgstr "ファイルが存在しません。" + +#: ../lib/modules/customFields.inc:160 ../lib/modules/customFields.inc:3294 +msgid "File extension" +msgstr "ファイル拡張" + +#: ../lib/modules/inetOrgPerson.inc:102 +#, php-format +msgid "File is too large. Maximum allowed size is %s kB." +msgstr "ファイルが大きすぎます。許容される最大サイズは %s kBです。" + +#: ../lib/modules/sambaSamAccount.inc:312 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user and $group are replaced with user and group name." +msgstr "" +"ログオンの時に実行される、ネットログオン共有への相対的なパスとファイル名。 " +"$user と $group はユーザとグループの名前に置き換えられます。" + +#: ../lib/modules/windowsUser.inc:210 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user is replaced with user name." +msgstr "" +"ログオンの時に実行される、ネットログオン共有への相対的なパスとファイル名。 " +"$user はユーザ名に置き換えられます。" + +#: ../lib/modules/zarafaServer.inc:76 ../lib/modules/zarafaServer.inc:112 +#: ../lib/modules/zarafaServer.inc:137 ../lib/modules/zarafaServer.inc:177 +#: ../lib/modules/zarafaServer.inc:219 ../lib/modules/zarafaServer.inc:356 +msgid "File path" +msgstr "ファイル・パス" + +#: ../templates/masscreate.php:243 ../lib/tools/fileUpload.inc:44 +#: ../lib/modules/ldapPublicKey.inc:80 ../lib/modules/customFields.inc:3280 +#: ../lib/lists.inc:777 +msgid "File upload" +msgstr "ファイルのアップロード" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +#: ../lib/types/zarafaAddressListType.inc:94 +#: ../lib/types/zarafaDynamicGroupType.inc:95 +#: ../lib/modules/pykotaPrinter.inc:128 ../lib/modules/pykotaPrinter.inc:425 +#: ../lib/modules/zarafaDynamicGroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:158 +#: ../lib/modules/zarafaDynamicGroup.inc:171 +#: ../lib/modules/zarafaDynamicGroup.inc:239 +#: ../lib/modules/zarafaDynamicGroup.inc:450 +#: ../lib/modules/zarafaContact.inc:91 ../lib/modules/posixGroup.inc:335 +#: ../lib/modules/posixGroup.inc:528 ../lib/modules/zarafaAddressList.inc:79 +#: ../lib/modules/zarafaAddressList.inc:134 +#: ../lib/modules/zarafaAddressList.inc:145 +#: ../lib/modules/zarafaAddressList.inc:206 +#: ../lib/modules/zarafaAddressList.inc:333 ../lib/modules/zarafaUser.inc:140 +#: ../lib/modules/sambaGroupMapping.inc:170 +#: ../lib/modules/sambaGroupMapping.inc:483 ../lib/modules/nisnetgroup.inc:104 +#: ../lib/modules/nisnetgroup.inc:477 +#: ../lib/modules/organizationalRole.inc:101 +#: ../lib/modules/organizationalRole.inc:282 +#: ../lib/modules/organizationalRole.inc:372 +#: ../lib/modules/groupOfNames.inc:113 ../lib/modules/groupOfNames.inc:339 +#: ../lib/modules/groupOfNames.inc:429 ../lib/modules/groupOfNames.inc:494 +#: ../lib/modules/groupOfNames.inc:584 ../lib/modules/nisMailAlias.inc:93 +#: ../lib/modules/nisMailAlias.inc:373 ../lib/lists.inc:379 +#: ../help/help.inc:168 +msgid "Filter" +msgstr "フィルタ" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:509 +msgid "Filter performed" +msgstr "Filter performed" + +#: ../templates/multiEdit.php:514 +msgid "Finished all operations." +msgstr "全ての操作が完了しました。" + +#: ../lib/types/user.inc:96 ../lib/modules/selfRegistration.inc:83 +#: ../lib/modules/selfRegistration.inc:218 ../lib/modules/windowsUser.inc:128 +#: ../lib/modules/windowsUser.inc:278 ../lib/modules/windowsUser.inc:502 +#: ../lib/modules/windowsUser.inc:597 ../lib/modules/windowsUser.inc:700 +#: ../lib/modules/windowsUser.inc:1590 ../lib/modules/inetOrgPerson.inc:66 +#: ../lib/modules/inetOrgPerson.inc:156 ../lib/modules/inetOrgPerson.inc:306 +#: ../lib/modules/inetOrgPerson.inc:538 ../lib/modules/inetOrgPerson.inc:644 +#: ../lib/modules/inetOrgPerson.inc:1170 ../lib/modules/inetOrgPerson.inc:1173 +#: ../lib/modules/inetOrgPerson.inc:1892 ../lib/modules/inetOrgPerson.inc:2434 +#: ../lib/modules/inetOrgPerson.inc:3577 +msgid "First name" +msgstr "名" + +#: ../lib/modules/windowsUser.inc:597 ../lib/modules/windowsUser.inc:598 +#: ../lib/modules/inetOrgPerson.inc:66 ../lib/modules/inetOrgPerson.inc:67 +msgid "First name contains invalid characters!" +msgstr "(姓でない)名前に無効な文字が含まれています!" + +#: ../lib/modules/windowsUser.inc:129 ../lib/modules/inetOrgPerson.inc:645 +msgid "First name of user. Only letters, - and spaces are allowed." +msgstr "ユーザの(姓でない)名前。アルファベット, _- と空白のみ有効." + +#: ../lib/modules/ddns.inc:85 +msgid "Fix IP addresses" +msgstr "IPアドレスを修正" + +#: ../templates/config/confmain.php:414 +msgid "Fixed list" +msgstr "固定リスト" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:228 +msgid "Fixed range" +msgstr "固定の範囲" + +#: ../templates/pdfedit/pdfpage.php:461 +msgid "Folding marks" +msgstr "折り返し記号" + +#: ../templates/config/confmain.php:273 ../help/help.inc:85 +msgid "Follow referrals" +msgstr "参照を追跡" + +#: ../lib/modules/kolabUser.inc:125 +msgid "For automatic invitation handling." +msgstr "For automatic invitation handling." + +#: ../lib/modules/nisnetgroup.inc:101 +msgid "" +"For the upload please specify the entries in the format \"(HOST,USER," +"DOMAIN)\". Multiple entries are separated by semicolon." +msgstr "" +"アップロードする場合はエントリの形式を \"(HOST,USER,DOMAIN)\" としてくださ" +"い。複数のエントリはセミコロンによって区切られます。" + +#: ../templates/lists/changePassword.php:238 +#: ../lib/modules/mitKerberos.inc:183 ../lib/modules/mitKerberos.inc:417 +#: ../lib/modules/shadowAccount.inc:369 ../lib/modules/heimdalKerberos.inc:127 +#: ../lib/modules/heimdalKerberos.inc:348 ../lib/modules.inc:1062 +#: ../help/help.inc:206 +msgid "Force password change" +msgstr "強制的なパスワード変更" + +#: ../lib/modules/passwordSelfReset.inc:787 +msgid "Forgot password?" +msgstr "パスワードをお忘れですか?" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:484 ../help/help.inc:252 +msgid "Format" +msgstr "書式" + +#: ../lib/modules/qmailUser.inc:207 ../lib/modules/qmailUser.inc:277 +#: ../lib/modules/qmailUser.inc:401 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:546 ../lib/modules/qmailUser.inc:1141 +msgid "Forwarding address" +msgstr "転送アドレス" + +#: ../lib/modules/qmailUser.inc:208 +msgid "Forwards all incoming messages for this user to this address." +msgstr "" +"このユーザーに届いた全てのメッセージを、このメールアドレスへ転送します。" + +#: ../lib/modules/pykotaGroup.inc:64 ../lib/modules/pykotaUser.inc:64 +msgid "Free printing" +msgstr "無料の印刷" + +#: ../lib/modules/freeRadius.inc:74 +msgid "FreeRadius" +msgstr "FreeRadius" + +#: ../lib/modules/sambaSamAccount.inc:1376 +msgid "Friday" +msgstr "金曜日" + +#: ../templates/config/confmain.php:343 ../lib/modules/selfRegistration.inc:90 +#: ../lib/modules/selfRegistration.inc:229 +#: ../lib/modules/passwordSelfReset.inc:116 +#: ../lib/modules/passwordSelfReset.inc:537 +#: ../lib/modules/passwordSelfReset.inc:557 ../help/help.inc:246 +msgid "From address" +msgstr "発信者アドレス" + +#: ../templates/config/confmain.php:520 +msgid "From address for password mails is invalid." +msgstr "パスワード・メールの発信者アドレスが無効です。" + +#: ../lib/modules/asteriskAccount.inc:147 +#: ../lib/modules/asteriskAccount.inc:275 +#: ../lib/modules/asteriskAccount.inc:377 +#: ../lib/modules/asteriskAccount.inc:636 +#: ../lib/modules/asteriskAccount.inc:991 +#: ../lib/modules/asteriskAccount.inc:1251 +msgid "From domain" +msgstr "発信ドメイン" + +#: ../lib/modules/asteriskAccount.inc:148 +msgid "From domain setting for this account." +msgstr "このアカウントに対する発信ドメイン設定。" + +#: ../lib/modules/asteriskAccount.inc:143 +#: ../lib/modules/asteriskAccount.inc:274 +#: ../lib/modules/asteriskAccount.inc:370 +#: ../lib/modules/asteriskAccount.inc:632 +#: ../lib/modules/asteriskAccount.inc:990 +#: ../lib/modules/asteriskAccount.inc:1249 +msgid "From user" +msgstr "発信ユーザ" + +#: ../lib/modules/asteriskAccount.inc:144 +msgid "From user setting for this account." +msgstr "このアカウントに対する発信ユーザー設定。" + +#: ../lib/modules/asteriskAccount.inc:151 +#: ../lib/modules/asteriskAccount.inc:276 +#: ../lib/modules/asteriskAccount.inc:384 +#: ../lib/modules/asteriskAccount.inc:640 +#: ../lib/modules/asteriskAccount.inc:992 +#: ../lib/modules/asteriskAccount.inc:1253 +msgid "Full contact" +msgstr "フル・コンタクト" + +#: ../templates/lists/changePassword.php:281 +#: ../lib/modules/asteriskVoicemail.inc:103 +#: ../lib/modules/asteriskVoicemail.inc:139 +#: ../lib/modules/asteriskVoicemail.inc:172 +#: ../lib/modules/asteriskVoicemail.inc:252 +#: ../lib/modules/asteriskVoicemail.inc:371 +msgid "Full name" +msgstr "フルネーム" + +#: ../lib/modules/asteriskVoicemail.inc:104 +msgid "Full name for Asterisk voicemail mailbox." +msgstr "Asteriskボイスメールボックスのフルネーム" + +#: ../templates/3rdParty/pla/lib/functions.php:537 +#: ../templates/3rdParty/pla/tools/unserialize.php:17 +msgid "Function" +msgstr "機能" + +#: ../lib/modules/windowsUser.inc:328 ../lib/modules/inetOrgPerson.inc:387 +msgid "GB-12345" +msgstr "GB-12345" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixGroup.inc:520 +msgid "GID generator" +msgstr "GID生成器" + +#: ../lib/types/host.inc:96 ../lib/types/group.inc:106 +#: ../lib/types/user.inc:93 ../lib/modules/qmailUser.inc:114 +#: ../lib/modules/qmailUser.inc:235 ../lib/modules/qmailUser.inc:341 +#: ../lib/modules/qmailUser.inc:421 ../lib/modules/qmailUser.inc:581 +#: ../lib/modules/qmailUser.inc:1143 ../lib/modules/posixGroup.inc:191 +#: ../lib/modules/posixGroup.inc:421 ../lib/modules/posixGroup.inc:436 +#: ../lib/modules/posixGroup.inc:480 ../lib/modules/posixGroup.inc:500 +#: ../lib/modules/posixGroup.inc:576 ../lib/modules/posixGroup.inc:599 +#: ../lib/modules/posixAccount.inc:125 ../lib/modules/posixAccount.inc:413 +#: ../lib/modules/posixAccount.inc:1853 +#: ../lib/modules/sambaGroupMapping.inc:110 +#: ../lib/modules/sambaGroupMapping.inc:538 +msgid "GID number" +msgstr "GID番号" + +#: ../lib/modules/posixGroup.inc:599 +msgid "" +"GID number has changed. Please select checkbox to change GID number of users " +"and hosts." +msgstr "" +"GID番号が変更されました。ユーザとホストのGID番号を変更する場合は、チェック" +"ボックスを選択してください。" + +#: ../lib/modules/posixAccount.inc:125 +#, php-format +msgid "" +"GID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" +msgstr "" +"GID番号が変更されました。ファイルの所有者属性を維持するために、root権限で以下" +"のコマンドを実行しなければなりません: 'find / -gid %s -uid %s -exec chgrp %s " +"{} \\;'" + +#: ../lib/modules/posixGroup.inc:606 +msgid "GID number has to be a numeric value!" +msgstr "GID番号は数値でなくてはなりません。" + +#: ../lib/modules/qmailUser.inc:466 +msgid "GID number is already in use." +msgstr "GID は既に使用されています" + +#: ../lib/modules/posixAccount.inc:256 ../lib/modules/posixAccount.inc:356 +#: ../lib/modules/posixAccount.inc:398 ../lib/modules/posixAccount.inc:424 +#: ../lib/modules/posixAccount.inc:510 ../lib/modules/posixAccount.inc:548 +#: ../lib/modules/posixAccount.inc:1440 ../lib/modules/posixAccount.inc:1856 +msgid "Gecos" +msgstr "Gecos" + +#: ../lib/modules/windowsUser.inc:673 +msgid "General" +msgstr "一般" + +#: ../lib/modules/generalInformation.inc:58 +msgid "General information" +msgstr "一般情報" + +#: ../templates/config/mainmanage.php:477 +#: ../templates/config/confmodules.php:164 +#: ../templates/config/confmain.php:205 +#: ../templates/config/moduleSettings.php:163 +#: ../templates/config/conftypes.php:182 +#: ../templates/selfService/adminMain.php:433 +#: ../templates/profedit/profilepage.php:215 +msgid "General settings" +msgstr "一般設定" + +#: ../templates/lists/changePassword.php:308 ../help/help.inc:244 +msgid "Generate random password" +msgstr "ランダムなパスワードを生成" + +#: ../templates/3rdParty/pla/lib/functions.php:63 +#: ../templates/3rdParty/pla/lib/functions.php:595 +msgid "Generic Error" +msgstr "一般的なエラー" + +#: ../lib/modules/windowsGroup.inc:65 +msgid "Global" +msgstr "Global" + +#: ../templates/pdfedit/pdfmain.php:322 +#: ../templates/profedit/profilemain.php:289 +msgid "Global templates" +msgstr "グローバル・テンプレート" + +#: ../templates/schema/schema.php:128 ../templates/schema/schema.php:265 +#: ../templates/schema/schema.php:296 ../templates/schema/schema.php:321 +msgid "Go" +msgstr "進む" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:215 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:139 +msgid "Go back" +msgstr "戻る" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1864 +msgid "Go to" +msgstr "進む" + +#: ../lib/types/ppolicyType.inc:82 ../lib/modules/ppolicy.inc:100 +#: ../lib/modules/ppolicy.inc:149 ../lib/modules/ppolicy.inc:170 +#: ../lib/modules/ppolicy.inc:222 ../lib/modules/ppolicy.inc:475 +msgid "Grace authentication limit" +msgstr "猶予認証のリミット" + +#: ../lib/modules/quota.inc:125 ../lib/modules/quota.inc:403 +msgid "Grace block period" +msgstr "ブロック猶予期間" + +#: ../lib/modules/quota.inc:126 +msgid "" +"Grace block period. Most filesystems use a fixed maximum value of 7 days." +msgstr "" +"ブロッククオータの猶予期間。 ほとんどのファイルシステムは、最大値である7日間" +"を固定値として使用します。" + +#: ../lib/modules/quota.inc:148 +msgid "" +"Grace inode (files) period. Most filesystems use a fixed maximum value of 7 " +"days." +msgstr "" +"iノード(ファイル)クオータの猶予期間。 ほとんどのファイルシステムは、最大値で" +"ある7日間を固定値として使用します。" + +#: ../lib/modules/quota.inc:147 ../lib/modules/quota.inc:407 +msgid "Grace inode period" +msgstr "iノードクオータの猶予期間" + +#: ../templates/config/confmain.php:324 +#: ../templates/selfService/adminMain.php:670 +msgid "Group" +msgstr "グループ" + +#: ../lib/types/group.inc:76 +msgid "Group accounts (e.g. Unix and Samba)" +msgstr "グループアカウント(e.g. Unix および Samba)" + +#: ../lib/types/gon.inc:202 ../lib/types/zarafaDynamicGroupType.inc:165 +#: ../lib/types/group.inc:240 ../lib/types/netgroup.inc:169 +#, php-format +msgid "Group count: %s" +msgstr "グループ数: %s" + +#: ../lib/types/group.inc:111 ../lib/modules/posixGroup.inc:471 +#: ../lib/modules/nisnetgroup.inc:120 +msgid "Group description" +msgstr "グループの説明" + +#: ../lib/modules/pykotaGroup.inc:118 +msgid "Group description." +msgstr "グループの説明。" + +#: ../lib/modules/posixGroup.inc:485 +msgid "Group description. If left empty group name will be used." +msgstr "グループの説明。もしも空ならば、グループ名が使われます。" + +#: ../lib/types/gon.inc:105 ../lib/types/gon.inc:106 +#: ../lib/types/group.inc:108 ../lib/types/group.inc:109 +msgid "Group member DNs" +msgstr "グループメンバのDN" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:94 +#: ../lib/types/group.inc:107 ../lib/modules/pykotaPrinter.inc:119 +#: ../lib/modules/pykotaPrinter.inc:123 ../lib/modules/pykotaPrinter.inc:186 +#: ../lib/modules/pykotaPrinter.inc:199 ../lib/modules/pykotaPrinter.inc:265 +#: ../lib/modules/pykotaPrinter.inc:607 ../lib/modules/posixGroup.inc:222 +#: ../lib/modules/posixGroup.inc:293 ../lib/modules/posixGroup.inc:424 +#: ../lib/modules/posixGroup.inc:450 ../lib/modules/posixGroup.inc:488 +#: ../lib/modules/posixGroup.inc:492 ../lib/modules/posixGroup.inc:573 +#: ../lib/modules/windowsGroup.inc:381 +msgid "Group members" +msgstr "グループメンバ" + +#: ../lib/types/gon.inc:104 ../lib/types/zarafaDynamicGroupType.inc:91 +#: ../lib/types/group.inc:105 ../lib/types/netgroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:63 +#: ../lib/modules/zarafaDynamicGroup.inc:116 +#: ../lib/modules/zarafaDynamicGroup.inc:165 +#: ../lib/modules/zarafaDynamicGroup.inc:195 +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:220 +#: ../lib/modules/zarafaDynamicGroup.inc:447 ../lib/modules/posixGroup.inc:181 +#: ../lib/modules/posixGroup.inc:427 ../lib/modules/posixGroup.inc:459 +#: ../lib/modules/posixGroup.inc:508 ../lib/modules/posixGroup.inc:575 +#: ../lib/modules/posixGroup.inc:607 ../lib/modules/posixGroup.inc:608 +#: ../lib/modules/posixGroup.inc:609 ../lib/modules/pykotaGroup.inc:197 +#: ../lib/modules/pykotaGroup.inc:199 ../lib/modules/pykotaGroup.inc:218 +#: ../lib/modules/nisnetgroup.inc:83 ../lib/modules/nisnetgroup.inc:112 +#: ../lib/modules/nisnetgroup.inc:139 ../lib/modules/nisnetgroup.inc:151 +#: ../lib/modules/nisnetgroup.inc:193 ../lib/modules/nisnetgroup.inc:579 +#: ../lib/modules/organizationalRole.inc:85 +#: ../lib/modules/organizationalRole.inc:114 +#: ../lib/modules/organizationalRole.inc:137 +#: ../lib/modules/organizationalRole.inc:452 +#: ../lib/modules/windowsGroup.inc:114 ../lib/modules/windowsGroup.inc:176 +#: ../lib/modules/windowsGroup.inc:257 ../lib/modules/windowsGroup.inc:283 +#: ../lib/modules/windowsGroup.inc:300 ../lib/modules/windowsGroup.inc:745 +#: ../lib/modules/groupOfNames.inc:85 ../lib/modules/groupOfNames.inc:126 +#: ../lib/modules/groupOfNames.inc:167 ../lib/modules/groupOfNames.inc:693 +msgid "Group name" +msgstr "グループ名" + +#: ../lib/modules/pykotaGroup.inc:199 ../lib/modules/pykotaGroup.inc:200 +#: ../lib/modules/pykotaGroup.inc:203 ../lib/modules/pykotaGroup.inc:204 +msgid "Group name already exists!" +msgstr "グループ名は既に存在しています!" + +#: ../lib/modules/zarafaDynamicGroup.inc:195 +msgid "Group name already in use." +msgstr "グループ名は既に使用されています。" + +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:197 ../lib/modules/posixGroup.inc:609 +#: ../lib/modules/posixGroup.inc:610 ../lib/modules/pykotaGroup.inc:197 +#: ../lib/modules/pykotaGroup.inc:198 ../lib/modules/pykotaGroup.inc:201 +#: ../lib/modules/pykotaGroup.inc:202 ../lib/modules/nisnetgroup.inc:151 +#: ../lib/modules/windowsGroup.inc:283 ../lib/modules/windowsGroup.inc:284 +msgid "" +"Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"グループ名に無効な文字が含まれています。有効な文字は: a-z, A-Z, 0-9, .-_ で" +"す!" + +#: ../lib/modules/windowsGroup.inc:151 +msgid "Group name for NIS." +msgstr "NISのグループ名" + +#: ../lib/modules/posixGroup.inc:608 +msgid "Group name in use. Selected next free group name." +msgstr "グループ名が既に使われています。次の未使用グループ名が選択されました。" + +#: ../lib/modules/zarafaDynamicGroup.inc:64 ../lib/modules/pykotaGroup.inc:114 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ ." +msgstr "生成されるグループの名前。有効な文字は: a-z, A-Z, 0-9, .-_ です。" + +#: ../lib/modules/posixGroup.inc:509 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ . If group name is already used group name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"作成しようとしているグループの名前。有効な文字は: a-z, A-Z, 0-9, .-_ です。も" +"しもグループ名が既に使われていたならば、グループ名に番号が付加されます。この" +"場合、空いている次の番号が使われます。" + +#: ../lib/modules/pykotaGroup.inc:122 +msgid "Group name that is used for PyKota." +msgstr "PyKotaに使用されているグループ名。" + +#: ../lib/modules/freeRadius.inc:96 ../lib/modules/freeRadius.inc:100 +#: ../lib/modules/freeRadius.inc:128 ../lib/modules/freeRadius.inc:154 +#: ../lib/modules/freeRadius.inc:185 ../lib/modules/freeRadius.inc:234 +#: ../lib/modules/freeRadius.inc:277 ../lib/modules/freeRadius.inc:540 +msgid "Group names" +msgstr "グループ名" + +#: ../lib/modules/groupOfNames.inc:65 +msgid "Group of names" +msgstr "名前のグループ" + +#: ../lib/types/gon.inc:75 +msgid "Group of names accounts" +msgstr "名前グループアカウント" + +#: ../lib/modules/groupOfUniqueNames.inc:42 +msgid "Group of unique names" +msgstr "uniqueな名前のグループ" + +#: ../lib/modules/posixGroup.inc:442 ../lib/modules/posixGroup.inc:496 +msgid "Group password" +msgstr "グループパスワード" + +#: ../lib/modules/windowsGroup.inc:142 ../lib/modules/windowsGroup.inc:195 +#: ../lib/modules/windowsGroup.inc:262 ../lib/modules/windowsGroup.inc:338 +#: ../lib/modules/windowsGroup.inc:775 +msgid "Group scope" +msgstr "グループのスコープ" + +#: ../lib/modules/sambaGroupMapping.inc:382 +#: ../lib/modules/windowsGroup.inc:138 ../lib/modules/windowsGroup.inc:203 +#: ../lib/modules/windowsGroup.inc:261 ../lib/modules/windowsGroup.inc:341 +#: ../lib/modules/windowsGroup.inc:776 +msgid "Group type" +msgstr "グループのタイプ" + +#: ../lib/types/group.inc:67 ../lib/modules/posixGroup.inc:401 +#: ../lib/modules/zarafaGroup.inc:119 ../lib/modules/windowsUser.inc:217 +#: ../lib/modules/windowsUser.inc:220 ../lib/modules/windowsUser.inc:442 +#: ../lib/modules/windowsUser.inc:523 ../lib/modules/windowsUser.inc:785 +#: ../lib/modules/windowsUser.inc:1635 ../lib/modules/windowsUser.inc:1663 +#: ../lib/modules/generalInformation.inc:110 +msgid "Groups" +msgstr "グループ" + +#: ../lib/types/gon.inc:66 ../lib/modules/posixAccount.inc:261 +#: ../lib/modules/posixAccount.inc:364 ../lib/modules/posixAccount.inc:427 +#: ../lib/modules/posixAccount.inc:1599 ../lib/modules/posixAccount.inc:1748 +#: ../lib/modules/posixAccount.inc:1865 ../lib/modules/windowsUser.inc:1029 +#: ../lib/modules/groupOfNamesUser.inc:54 +#: ../lib/modules/groupOfNamesUser.inc:56 +#: ../lib/modules/groupOfNamesUser.inc:60 +#: ../lib/modules/groupOfNamesUser.inc:64 +#: ../lib/modules/groupOfNamesUser.inc:71 +#: ../lib/modules/groupOfNamesUser.inc:324 +#: ../lib/modules/groupOfNamesUser.inc:360 +msgid "Groups of names" +msgstr "名前のグループ" + +#: ../lib/modules/dhcp_settings.inc:99 +msgid "H-Node (0x08)" +msgstr "H-Node (0x08)" + +#: ../templates/config/confmain.php:356 +#: ../lib/modules/selfRegistration.inc:235 +#: ../lib/modules/passwordSelfReset.inc:541 +#: ../lib/modules/passwordSelfReset.inc:561 ../help/help.inc:255 +msgid "HTML format" +msgstr "HTMLフォーマット" + +#: ../templates/config/confmain.php:448 +#: ../templates/selfService/adminMain.php:474 ../help/help.inc:126 +msgid "HTTP authentication" +msgstr "HTTP認証" + +#: ../lib/modules/zarafaServer.inc:68 ../lib/modules/zarafaServer.inc:100 +#: ../lib/modules/zarafaServer.inc:135 ../lib/modules/zarafaServer.inc:173 +#: ../lib/modules/zarafaServer.inc:195 ../lib/modules/zarafaServer.inc:354 +msgid "HTTP port" +msgstr "HTTPポート" + +#: ../lib/modules/quota.inc:635 ../lib/modules/systemQuotas.inc:384 +msgid "Hard block" +msgstr "ハードblock" + +#: ../lib/modules/quota.inc:119 ../lib/modules/quota.inc:120 +#: ../lib/modules/quota.inc:402 ../lib/modules/quota.inc:508 +#: ../lib/modules/systemQuotas.inc:126 +msgid "Hard block limit" +msgstr "ハードブロック制限" + +#: ../lib/modules/quota.inc:637 ../lib/modules/systemQuotas.inc:386 +msgid "Hard inode" +msgstr "ハードinode" + +#: ../lib/modules/quota.inc:142 +msgid "Hard inode (files) limit" +msgstr "ハードinode(ファイル)制限" + +#: ../lib/modules/quota.inc:141 ../lib/modules/quota.inc:406 +#: ../lib/modules/quota.inc:510 ../lib/modules/systemQuotas.inc:130 +msgid "Hard inode limit" +msgstr "ハードinode制限" + +#: ../lib/modules/generalInformation.inc:104 +msgid "Has subentries" +msgstr "サブツリー有り" + +#: ../lib/modules/sambaSamAccount.inc:554 +msgid "Hawaii" +msgstr "Hawaii" + +#: ../lib/modules/selfRegistration.inc:106 +#: ../lib/modules/selfRegistration.inc:224 +#: ../lib/modules/passwordSelfReset.inc:156 +#: ../lib/modules/passwordSelfReset.inc:567 +msgid "Header" +msgstr "ヘッダー" + +#: ../templates/pdfedit/pdfpage.php:452 ../templates/pdfedit/pdfpage.php:591 +#: ../templates/pdfedit/pdfpage.php:598 +msgid "Headline" +msgstr "見出し" + +#: ../lib/modules/heimdalKerberos.inc:235 +msgid "Heimdal Kerberos password change command" +msgstr "Heimdal Kerberosパスワード変更コマンド" + +#: ../templates/main_header.php:140 ../lib/modules.inc:667 +msgid "Help" +msgstr "ヘルプ" + +#: ../lib/modules/customFields.inc:96 ../lib/modules/customFields.inc:1716 +msgid "Help text" +msgstr "ヘルプ文字列" + +#: ../lib/tools/schemaBrowser.inc:53 +msgid "Here you can browse LDAP object classes and attributes." +msgstr "ここでは、LDAPオブジェクトのクラスと属性をブラウズできます。" + +#: ../lib/modules/sambaSamAccount.inc:391 +msgid "Here you can change the settings for the terminal server access." +msgstr "ターミナルサーバーへのアクセス設定を変更できます。" + +#: ../lib/selfService.inc:387 +msgid "Here you can change your personal settings." +msgstr "ここで、あなたの個人設定を変更できます。" + +#: ../templates/masscreate.php:130 +msgid "Here you can create multiple accounts by providing a CSV file." +msgstr "" +"ここでは、CSVファイルを与える事によって、複数のアカウントを作成できます。" + +#: ../lib/modules/dhcp_settings.inc:198 +msgid "Here you can enter a description for this DHCP entry." +msgstr "このDHCPエントリに対する説明を入力できます。" + +#: ../lib/modules/nisnetgroup.inc:88 ../lib/modules/organizationalRole.inc:90 +#: ../lib/modules/groupOfNames.inc:90 +msgid "Here you can enter a description for this group." +msgstr "このグループに対する説明を入力できます。" + +#: ../lib/modules/sudoRole.inc:71 +msgid "Here you can enter a description for this role." +msgstr "このロールに対する説明を入力できます。" + +#: ../lib/modules/pykotaPrinter.inc:129 ../lib/modules/zarafaContact.inc:92 +#: ../lib/modules/posixGroup.inc:529 ../lib/modules/zarafaUser.inc:141 +#: ../lib/modules/sambaGroupMapping.inc:171 ../lib/modules/nisnetgroup.inc:105 +#: ../lib/modules/organizationalRole.inc:102 +#: ../lib/modules/groupOfNames.inc:114 ../lib/modules/nisMailAlias.inc:94 +msgid "" +"Here you can enter a filter value. Only entries which contain the filter " +"text will be shown." +msgstr "" +"ここには、フィルタの値を入力します。フィルタテキストを含んだエントリだけが表" +"示されます。" + +#: ../lib/modules/posixAccount.inc:470 ../lib/modules/groupOfNamesUser.inc:65 +msgid "" +"Here you can enter a list of additional group memberships. The group names " +"are separated by commas." +msgstr "" +"ここにはメンバーとして所属する追加グループのリストを入力します。グループ名は" +"カンマによって区切られます。" + +#: ../lib/modules/organizationalRoleUser.inc:65 +msgid "" +"Here you can enter a list of roles. The role names are separated by commas." +msgstr "" +"ここにはロールのリストを入力します。ロール名はカンマによって区切られます。" + +#: ../lib/modules/device.inc:66 +msgid "Here you can enter a serial number for this device." +msgstr "ここには、このデバイスに対するシリアル番号を入力できます。" + +#: ../lib/modules/windowsUser.inc:181 ../lib/modules/windowsUser.inc:185 +msgid "Here you can enter additional web sites for the user." +msgstr "このユーザーに対する追加のwebサイトを入力できます。" + +#: ../help/help.inc:215 +msgid "" +"Here you can enter an alternative mail address for the password. To use the " +"user's primary email address please leave the field blank." +msgstr "" +"ここには、このパスワードに対する代替メールアドレスを入力出来ます。ユーザーの" +"主メールアドレスを使用する場合は、ここは空欄のままにしてください。" + +#: ../lib/modules/customFields.inc:81 +msgid "" +"Here you can enter one or more object classes (separated by comma). This " +"will allow you to add/remove the group's attributes including their object " +"classes." +msgstr "" +"ここでは1個または複数のオブジェクトクラスを入力できます(カンマ区切り)。このこ" +"とは、自身のオブジェクトクラスを含むループ属性の追加/削除を可能にします。" + +#: ../lib/modules/inetOrgPerson.inc:801 ../lib/modules/inetOrgPerson.inc:805 +msgid "Here you can enter the user's department." +msgstr "ここにはユーザーの部門を入力できます。" + +#: ../lib/modules/zarafaUser.inc:156 +msgid "Here you can explicitly enable and disable Zarafa features." +msgstr "Zarafa機能を明示的に有効化したり無効化したりできます。" + +#: ../help/help.inc:213 +msgid "" +"Here you can export PDF structures to other server profiles (overwrite " +"existing). You may also export a structure to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"structure with this name." +msgstr "" +"ここでは、他のサーバープロファイルへPDF構成をエクスポート出来ます(既存のもの" +"は上書きされます)。構成をグローバル・テンプレートへエクスポートすることもでき" +"ます。この場合、この名前の構成を持たない全てのサーバープロファイルへコピーさ" +"れます。" + +#: ../help/help.inc:195 +msgid "" +"Here you can export account profiles to other server profiles (overwrite " +"existing). You may also export a profile to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"profile with this name." +msgstr "" +"ここでは、他のサーバープロファイルへアカウント・プロファイルをエクスポート出" +"来ます(既存のものは上書きされます)。プロファイルをグローバル・テンプレートは" +"エクスポートすることもできます。個の場合、この名前のプロファイルを持たない全" +"てのサーバープロファイルへコピーされます。" + +#: ../help/help.inc:211 +msgid "" +"Here you can import PDF structures from other server profiles (overwrite " +"existing)." +msgstr "" +"ここでは、他のサーバープロファイルからPDF構成をインポート出来ます(既存のもの" +"は上書きされます)。" + +#: ../help/help.inc:193 +msgid "" +"Here you can import account profiles from other server profiles (overwrite " +"existing)." +msgstr "" +"ここでは、他のサーバープロファイルからアカウントプロファイルをインポート出来" +"ます(既存のものは上書きされます)。" + +#: ../help/help.inc:169 +msgid "" +"Here you can input simple filter expressions (e.g. 'value' or 'v*'). The " +"filter is case-sensitive." +msgstr "" +"ここには、単純なフィルタ(例 'value'または'v*')を入力できます。大文字と小文字" +"は区別されます。" + +#: ../help/help.inc:199 +msgid "" +"Here you can load an account profile to set default settings for your " +"account. The \"default\" profile is automatically loaded for new accounts." +msgstr "" +"ここでは、あなたのアカウントに対するデフォルト値を設定するために、アカウント" +"プロファイルをロードできます。新しいアカウントに対しては、\"default\"プロファ" +"イルが自動的にロードされます。" + +#: ../lib/tools/profileEditor.inc:53 +msgid "Here you can manage your account profiles." +msgstr "ここで、あなたのアカウントのプロファイルを管理できます。" + +#: ../help/help.inc:181 +msgid "Here you can overwrite the display name for this account type." +msgstr "このアカウント・タイプに対する表示名を上書きできます。" + +#: ../help/help.inc:201 +msgid "" +"Here you can select a PDF structure and export the account to a PDF file." +msgstr "" +"ここでは、PDF構成の選択と、アカウントのPDFフィアルへのエクスポートを行えま" +"す。" + +#: ../help/help.inc:151 +msgid "" +"Here you can select where LAM should save its log messages. System logging " +"will go to Syslog on Unix systems and event log on Windows. You can also " +"select an extra file." +msgstr "" +"ここではLAMのログメッセージをどこに保存するか選択できます。システムロギングは" +"unixシステムではSyslogに、Windowsではイベントログに出力されます。追加のファイ" +"ルを選択する事もできます。" + +#: ../help/help.inc:112 +msgid "" +"Here you can select which plugins you want to use for account management." +msgstr "ここでは、アカウント管理に使用するプラグインを選択できます。" + +#: ../lib/modules/customFields.inc:169 +msgid "Here you can set a custom display name for this module." +msgstr "ここでは、このモジュールに対するカスタム表示名を設定できます。" + +#: ../lib/modules/customFields.inc:97 +msgid "Here you can set a describing text for your custom field." +msgstr "ここでは、カスタム・フィールドに対する説明を入力できます。" + +#: ../help/help.inc:125 +msgid "" +"Here you can set a limit for LDAP searches. This will restrict the number of " +"results for LDAP searches. Please use this if LAM's LDAP queries produce too " +"much load." +msgstr "" +"ここには、LDAP検索の上限を設定します。これは、LDAP検索結果数を制限します。LAM" +"のLDAPクエリが過大な負荷を生じる場合に使用してください。" + +#: ../lib/modules/customFields.inc:173 +msgid "Here you can set the URL to a custom icon (32x32px) for this module." +msgstr "このモジュールに対するカスタムアイコン(32x32px)のURLを設定できます。" + +#: ../help/help.inc:237 +msgid "" +"Here you can specify additional CSS links to change the layout of the self " +"service pages. This is useful to adapt them to your corporate design. Please " +"enter one link per line." +msgstr "" +"ここには、自己サービスページのレイアウトを変更する追加のCSSリンクを記述できま" +"す。これは、コーポレートデザインを適用する場合に有用です。1行につき1個のリン" +"クを入力してください。" + +#: ../help/help.inc:155 +msgid "" +"Here you can specify minimum requirements for passwords. The character " +"classes are: lowercase, uppercase, numeric and symbols." +msgstr "" +"パスワードの要求水準を設定します。文字クラスは lowercase, uppercase, " +"numeric, symbols です。" + +#: ../lib/modules/nisnetgroup.inc:92 +msgid "" +"Here you can specify subgroups which are included in this NIS netgroup. All " +"members of the subgroups will be treated as members of this group." +msgstr "" +"ここでは、NISネットグループによってインクルードされるサブグループを指定できま" +"す。サブグループに含まれる全てのメンバーは、グループのメンバーとして扱われま" +"す。" + +#: ../help/help.inc:129 +msgid "" +"Here you can specify the DN and password of the bind user that will be used " +"for the LDAP search. This is required if your LDAP server does not allow " +"anonymous access." +msgstr "" +"ここでは、LDAP検索で使用されるbindユーザーのDNとパスワードを指定出来ます。こ" +"の設定は、LDAPサーバーがanonymousアクセスを許可しない場合に必要となります。<" + +#: ../lib/modules/hostObject.inc:80 +msgid "" +"Here you can specify the list of host names where this account has login " +"privileges. The wildcard \"*\" represents all hosts. You may also use \"!\" " +"in front of a host name to deny access to a host." +msgstr "" +"ここでは、このアカウントがログイン権限をモツホスト名のリストを記述できます。" +"ワイルドカード \"*\" は全てのホストを意味します。また、ホストへのアクセスを拒" +"否するために、ホスト名の先頭に \"!\" を使用する事が出来ます。" + +#: ../lib/modules/sambaDomain.inc:102 +msgid "" +"Here you can specify the minimum number of characters for a user password." +msgstr "ユーザーパスワードの最低文字数を設定します。" + +#: ../templates/lists/changePassword.php:350 +msgid "Here you can specify the new password yourself." +msgstr "ここではあなた自身の手によって新しいパスワードを指定できます。" + +#: ../lib/modules/sambaSamAccount.inc:382 +msgid "Here you can specify the shadowing mode." +msgstr "ここではshadowingモードを記述できます。" + +#: ../lib/tools/tests.inc:53 +msgid "Here you can test if certain LAM features work on your installation." +msgstr "あなたがインストールしたLAMの特定の機能が動作するかをテストできます。" + +#: ../lib/modules/customFields.inc:165 +msgid "Here you can upload a new file." +msgstr "新しいファイルをアップロードできます。" + +#: ../templates/config/conftypes.php:283 +#: ../lib/types/zarafaAddressListType.inc:95 +#: ../lib/types/zarafaDynamicGroupType.inc:96 +#: ../lib/modules/zarafaDynamicGroup.inc:79 +#: ../lib/modules/zarafaDynamicGroup.inc:136 +#: ../lib/modules/zarafaDynamicGroup.inc:169 +#: ../lib/modules/zarafaDynamicGroup.inc:273 +#: ../lib/modules/zarafaDynamicGroup.inc:461 +#: ../lib/modules/zarafaContact.inc:71 ../lib/modules/zarafaContact.inc:164 +#: ../lib/modules/zarafaContact.inc:172 ../lib/modules/zarafaContact.inc:247 +#: ../lib/modules/zarafaContact.inc:572 ../lib/modules/zarafaGroup.inc:85 +#: ../lib/modules/zarafaGroup.inc:146 ../lib/modules/zarafaGroup.inc:196 +#: ../lib/modules/zarafaGroup.inc:294 ../lib/modules/zarafaGroup.inc:665 +#: ../lib/modules/zarafaAddressList.inc:67 +#: ../lib/modules/zarafaAddressList.inc:112 +#: ../lib/modules/zarafaAddressList.inc:143 +#: ../lib/modules/zarafaAddressList.inc:214 +#: ../lib/modules/zarafaAddressList.inc:343 ../lib/modules/zarafaUser.inc:80 +#: ../lib/modules/zarafaUser.inc:290 ../lib/modules/zarafaUser.inc:339 +#: ../lib/modules/zarafaUser.inc:367 ../lib/modules/zarafaUser.inc:577 +#: ../lib/modules/zarafaUser.inc:1274 ../help/help.inc:174 +msgid "Hidden" +msgstr "非表示" + +#: ../help/help.inc:175 +msgid "" +"Hidden account types will not show up in LAM. This is useful if you want to " +"display e.g. only groups but still need to manage their members." +msgstr "" +"HiddenアカウントタイプはLAMでは表示されません。この事は、グループだけを表示し" +"ながらメンバーの管理が必要な場合等に便利です。 " + +#: ../lib/modules/nisMailAliasUser.inc:104 +#: ../lib/modules/nisMailAliasUser.inc:563 +#: ../lib/modules/asteriskAccount.inc:243 +#: ../lib/modules/asteriskAccount.inc:1237 ../lib/modules/qmailUser.inc:102 +#: ../lib/modules/qmailUser.inc:195 ../lib/modules/zarafaGroup.inc:108 +#: ../lib/modules/zarafaGroup.inc:134 ../lib/modules/sambaSamAccount.inc:399 +#: ../lib/modules/sambaSamAccount.inc:589 ../lib/modules/posixAccount.inc:252 +#: ../lib/modules/posixAccount.inc:441 ../lib/modules/zarafaUser.inc:132 +#: ../lib/modules/zarafaUser.inc:1781 ../lib/modules/windowsUser.inc:236 +#: ../lib/modules/windowsUser.inc:561 ../lib/modules/inetOrgPerson.inc:808 +#: ../lib/modules/inetOrgPerson.inc:3505 ../lib/modules/freeRadius.inc:112 +#: ../lib/modules/freeRadius.inc:118 ../lib/modules/zarafaServer.inc:88 +#: ../lib/modules/zarafaServer.inc:159 ../lib/modules/qmailGroup.inc:68 +#: ../lib/modules/qmailGroup.inc:119 ../lib/modules/organizationalRole.inc:81 +#: ../lib/modules/organizationalRole.inc:159 +#: ../lib/modules/passwordSelfReset.inc:160 +#: ../lib/modules/passwordSelfReset.inc:209 +#: ../lib/modules/windowsGroup.inc:110 ../lib/modules/windowsGroup.inc:161 +#: ../lib/modules/groupOfNames.inc:81 ../lib/modules/groupOfNames.inc:193 +msgid "Hidden options" +msgstr "非表示のオプション" + +#: ../templates/config/confmain.php:375 +msgid "Hidden tools" +msgstr "非表示のツール" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1115 +msgid "Hide" +msgstr "隠す" + +#: ../lib/modules/customScripts.inc:88 ../lib/modules/customScripts.inc:102 +#: ../lib/modules/customScripts.inc:112 +msgid "Hide command in messages" +msgstr "メッセージ中にコマンドを表示しない" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1116 +msgid "Hide internal attributes" +msgstr "内部属性を隠す" + +#: ../lib/modules/customScripts.inc:92 ../lib/modules/customScripts.inc:104 +msgid "Hide tab" +msgstr "タブを隠す" + +#: ../templates/3rdParty/pla/lib/page.php:407 +msgid "Hide/Unhide the tree" +msgstr "ツリーを表示/非表示" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:58 +msgid "Hint" +msgstr "ヒント" + +#: ../templates/masscreate.php:249 +msgid "" +"Hint: Format all cells as text in your spreadsheet program and turn off auto " +"correction." +msgstr "" +"ヒント:スプレッドシートプログラムでは全てのセルをテキストとして扱い、自動修" +"正を無効にしてください。" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1005 +msgid "Hint: To delete an attribute, empty the text field and click save." +msgstr "" +"ヒント: 属性を削除するには、テキストフィールドを空にして保存してください。" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1342 +msgid "" +"Hint: You must choose exactly one structural object class (shown in bold " +"above)" +msgstr "" +"ヒント: ただ一つのstructuralオブジェクトクラスを選ばなくてはなりません(上に太" +"字で表示されています)" + +#: ../lib/modules/posixAccount.inc:535 ../lib/modules/windowsUser.inc:218 +#: ../lib/modules/groupOfNamesUser.inc:61 +msgid "Hold the CTRL-key to (de)select multiple groups." +msgstr "" +"複数のグループを選択(解除)する場合は、CTRLキーを押しながら操作してください。" + +#: ../lib/modules/organizationalRoleUser.inc:61 +msgid "Hold the CTRL-key to (de)select multiple roles." +msgstr "複数のグループを選択(解除)するには、CTRLキーを押し続けてください。" + +#: ../lib/types/user.inc:98 ../lib/modules/sambaSamAccount.inc:230 +#: ../lib/modules/sambaSamAccount.inc:354 +#: ../lib/modules/sambaSamAccount.inc:1501 +#: ../lib/modules/sambaSamAccount.inc:1916 ../lib/modules/posixAccount.inc:100 +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:103 +#: ../lib/modules/posixAccount.inc:310 ../lib/modules/posixAccount.inc:416 +#: ../lib/modules/posixAccount.inc:473 ../lib/modules/posixAccount.inc:477 +#: ../lib/modules/posixAccount.inc:481 ../lib/modules/posixAccount.inc:518 +#: ../lib/modules/posixAccount.inc:1199 ../lib/modules/posixAccount.inc:1459 +#: ../lib/modules/posixAccount.inc:1655 ../lib/modules/posixAccount.inc:1755 +#: ../lib/modules/posixAccount.inc:1854 ../lib/modules/windowsUser.inc:247 +#: ../lib/modules/windowsUser.inc:436 ../lib/modules/windowsUser.inc:479 +#: ../lib/modules/windowsUser.inc:526 ../lib/modules/windowsUser.inc:618 +#: ../lib/modules/windowsUser.inc:768 ../lib/modules/windowsUser.inc:1629 +msgid "Home directory" +msgstr "ホームディレクトリ" + +#: ../lib/modules/posixAccount.inc:103 +#, php-format +msgid "" +"Home directory changed. To keep home directory you have to run the following " +"command as root: 'mv %s %s'" +msgstr "" +"ホームディレクトリが変更されました。ホームディレクトリを維持するために、root" +"権限で以下のコマンドを実行しなければなりません: 'mv %s %s'" + +#: ../lib/modules/sambaSamAccount.inc:214 +#: ../lib/modules/sambaSamAccount.inc:231 +#: ../lib/modules/sambaSamAccount.inc:302 +#: ../lib/modules/sambaSamAccount.inc:486 +#: ../lib/modules/sambaSamAccount.inc:594 +#: ../lib/modules/sambaSamAccount.inc:1203 +#: ../lib/modules/sambaSamAccount.inc:1509 +#: ../lib/modules/sambaSamAccount.inc:1750 +#: ../lib/modules/sambaSamAccount.inc:1901 +#: ../lib/modules/sambaSamAccount.inc:1917 ../lib/modules/windowsUser.inc:244 +#: ../lib/modules/windowsUser.inc:430 ../lib/modules/windowsUser.inc:525 +#: ../lib/modules/windowsUser.inc:766 ../lib/modules/windowsUser.inc:1630 +msgid "Home drive" +msgstr "ホームドライブ" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:95 +#: ../lib/modules/sambaSamAccount.inc:217 +#: ../lib/modules/sambaSamAccount.inc:305 +#: ../lib/modules/sambaSamAccount.inc:494 +#: ../lib/modules/sambaSamAccount.inc:596 +#: ../lib/modules/sambaSamAccount.inc:1211 +#: ../lib/modules/sambaSamAccount.inc:1754 +#: ../lib/modules/sambaSamAccount.inc:1900 +msgid "Home path" +msgstr "ホームパス" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:96 +msgid "Home path is invalid." +msgstr "ホームパスが無効です。" + +#: ../lib/modules/zarafaUser.inc:129 +msgid "Home server for the user." +msgstr "ユーザに対するホームサーバー。" + +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:160 +#: ../lib/modules/inetOrgPerson.inc:425 ../lib/modules/inetOrgPerson.inc:575 +#: ../lib/modules/inetOrgPerson.inc:752 ../lib/modules/inetOrgPerson.inc:756 +#: ../lib/modules/inetOrgPerson.inc:1390 ../lib/modules/inetOrgPerson.inc:1393 +#: ../lib/modules/inetOrgPerson.inc:1901 ../lib/modules/inetOrgPerson.inc:2489 +#: ../lib/modules/inetOrgPerson.inc:3531 ../lib/modules/inetOrgPerson.inc:3582 +msgid "Home telephone number" +msgstr "自宅電話番号" + +#: ../lib/modules/posixAccount.inc:100 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/windowsUser.inc:618 ../lib/modules/windowsUser.inc:619 +msgid "Homedirectory contains invalid characters." +msgstr "ホームディレクトリが無効な文字を含んでいます。" + +#: ../lib/types/sudo.inc:79 ../lib/modules/asteriskAccount.inc:107 +#: ../lib/modules/asteriskAccount.inc:254 +#: ../lib/modules/asteriskAccount.inc:268 +#: ../lib/modules/asteriskAccount.inc:318 +#: ../lib/modules/asteriskAccount.inc:591 +#: ../lib/modules/asteriskAccount.inc:984 ../lib/modules/nisnetgroup.inc:217 +#: ../lib/modules/nisnetgroup.inc:585 ../lib/modules/fixed_ip.inc:580 +#: ../lib/modules/hostObject.inc:145 +msgid "Host" +msgstr "ホスト" + +#: ../lib/types/host.inc:62 +msgid "Host accounts (e.g. Samba)" +msgstr "ホストアカウント(e.g. Samba)" + +#: ../lib/types/host.inc:193 +#, php-format +msgid "Host count: %s" +msgstr "ホスト・アカウント: %s" + +#: ../lib/types/host.inc:94 +msgid "Host description" +msgstr "ホストの説明" + +#: ../lib/modules/account.inc:96 ../lib/modules/posixAccount.inc:549 +#: ../lib/modules/posixAccount.inc:557 +msgid "Host description. If left empty host name will be used." +msgstr "ホストの説明。もしも空ならば、ホスト名が使われます。" + +#: ../lib/modules/hostObject.inc:91 ../lib/modules/hostObject.inc:98 +#: ../lib/modules/hostObject.inc:217 +msgid "Host list" +msgstr "ホスト一覧" + +#: ../lib/types/host.inc:91 ../lib/types/host.inc:92 ../lib/types/bind.inc:77 +#: ../lib/modules/account.inc:91 ../lib/modules/account.inc:212 +#: ../lib/modules/windowsHost.inc:74 ../lib/modules/windowsHost.inc:94 +#: ../lib/modules/windowsHost.inc:119 ../lib/modules/windowsHost.inc:131 +#: ../lib/modules/windowsHost.inc:142 ../lib/modules/windowsHost.inc:288 +#: ../lib/modules/posixAccount.inc:115 ../lib/modules/posixAccount.inc:116 +#: ../lib/modules/posixAccount.inc:118 ../lib/modules/posixAccount.inc:375 +#: ../lib/modules/posixAccount.inc:406 ../lib/modules/posixAccount.inc:544 +#: ../lib/modules/posixAccount.inc:1422 ../lib/modules/posixAccount.inc:1844 +#: ../lib/modules/bindDLZ.inc:81 ../lib/modules/bindDLZ.inc:140 +#: ../lib/modules/bindDLZ.inc:144 ../lib/modules/bindDLZ.inc:240 +#: ../lib/modules/bindDLZ.inc:294 ../lib/modules/bindDLZ.inc:410 +#: ../lib/modules/bindDLZ.inc:470 ../lib/modules/bindDLZ.inc:497 +#: ../lib/modules/bindDLZ.inc:542 ../lib/modules/bindDLZ.inc:546 +#: ../lib/modules/bindDLZ.inc:750 ../lib/modules/bindDLZ.inc:1464 +#: ../lib/modules/bindDLZ.inc:1492 ../lib/modules/nisnetgroup.inc:153 +#: ../lib/modules/nisnetgroup.inc:481 +msgid "Host name" +msgstr "ホスト名" + +#: ../lib/modules/posixAccount.inc:122 +msgid "Host name already exists!" +msgstr "ホスト名は既に存在しています!" + +#: ../lib/modules/windowsHost.inc:131 ../lib/modules/windowsHost.inc:132 +#: ../lib/modules/posixAccount.inc:116 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/nisnetgroup.inc:153 +msgid "" +"Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"ホスト名に無効な文字が含まれています。有効な文字は: a-z, A-Z, 0-9, .-_ です。" + +#: ../lib/modules/posixAccount.inc:118 +msgid "Host name in use. Selected next free host name." +msgstr "ホスト名がすでに使われています。次の未使用ホスト名が選択されました。" + +#: ../lib/modules/sambaSamAccount.inc:1093 +msgid "Host name must end with $!" +msgstr "ホスト名の末尾は$でなくてはなりません!" + +#: ../lib/modules/account.inc:92 ../lib/modules/posixAccount.inc:545 +msgid "" +"Host name of the host which should be created. Valid characters are: a-z,A-" +"Z,0-9, .-_$. Host names are always ending with $. If last character is not $ " +"it will be added. If host name is already used host name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"作成しようとしているホストの名前。有効な文字は: a-z, A-Z, 0-9, .-_$ です。ホ" +"スト名の末尾は必ず $ になります。もしも最後の文字が $ でなければ追加されま" +"す。もしもホスト名がすでに使われていれば、ホスト名に番号が付加されます。この" +"場合、空いている次の番号が使われます。" + +#: ../lib/types/host.inc:53 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:96 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:227 ../lib/modules/sudoRole.inc:78 +#: ../lib/modules/sudoRole.inc:103 ../lib/modules/sudoRole.inc:165 +#: ../lib/modules/sudoRole.inc:217 ../lib/modules/sudoRole.inc:229 +#: ../lib/modules/sudoRole.inc:343 ../lib/modules/sudoRole.inc:807 +#: ../lib/modules/fixed_ip.inc:80 ../lib/modules/hostObject.inc:69 +#: ../lib/modules/hostObject.inc:79 +msgid "Hosts" +msgstr "ホスト" + +#: ../lib/modules/qmailUser.inc:352 +msgid "I am out of office." +msgstr "外出中" + +#: ../lib/modules/posixGroup.inc:602 ../lib/modules/posixAccount.inc:106 +#: ../lib/modules/posixAccount.inc:1169 +msgid "ID is already in use" +msgstr "ID はすでに使用されています" + +#: ../lib/modules/posixGroup.inc:600 ../lib/modules/posixGroup.inc:601 +#: ../lib/modules/posixGroup.inc:602 ../lib/modules/posixGroup.inc:724 +#: ../lib/modules/posixAccount.inc:104 ../lib/modules/posixAccount.inc:105 +#: ../lib/modules/posixAccount.inc:106 ../lib/modules/posixAccount.inc:1160 +#: ../lib/modules/posixAccount.inc:1165 ../lib/modules/posixAccount.inc:1169 +msgid "ID-Number" +msgstr "ID番号" + +#: ../lib/modules/zarafaUser.inc:299 ../lib/modules/zarafaUser.inc:642 +#: ../lib/modules/zarafaUser.inc:1331 +msgid "IMAP" +msgstr "IMAP" + +#: ../lib/modules/imapAccess.inc:86 ../lib/modules/imapAccess.inc:124 +msgid "IMAP admin user" +msgstr "IMAP管理ユーザー" + +#: ../lib/modules/imapAccess.inc:89 ../lib/modules/imapAccess.inc:131 +msgid "IMAP password input" +msgstr "IMAPパスワード入力" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ipHost.inc:55 +#: ../lib/modules/ipHost.inc:65 ../lib/modules/ipHost.inc:128 +#: ../lib/modules/asteriskAccount.inc:227 +#: ../lib/modules/asteriskAccount.inc:295 +#: ../lib/modules/asteriskAccount.inc:522 +#: ../lib/modules/asteriskAccount.inc:746 +#: ../lib/modules/asteriskAccount.inc:1011 +#: ../lib/modules/asteriskAccount.inc:1291 ../lib/modules/bindDLZ.inc:85 +#: ../lib/modules/bindDLZ.inc:89 ../lib/modules/bindDLZ.inc:248 +#: ../lib/modules/bindDLZ.inc:488 ../lib/modules/bindDLZ.inc:645 +#: ../lib/modules/bindDLZ.inc:1472 ../lib/modules/freeRadius.inc:84 +#: ../lib/modules/freeRadius.inc:122 ../lib/modules/freeRadius.inc:193 +#: ../lib/modules/freeRadius.inc:225 ../lib/modules/freeRadius.inc:281 +#: ../lib/modules/freeRadius.inc:537 ../lib/modules/fixed_ip.inc:106 +#: ../lib/modules/fixed_ip.inc:421 ../lib/modules/fixed_ip.inc:741 +msgid "IP address" +msgstr "IPアドレス" + +#: ../lib/modules/ddns.inc:98 ../lib/modules/ddns.inc:112 +#: ../lib/modules/ddns.inc:121 ../lib/modules/ddns.inc:381 +#: ../lib/modules/ddns.inc:424 +msgid "IP address of the DNS server" +msgstr "DNSサーバーのIPアドレス" + +#: ../lib/modules/asteriskAccount.inc:228 +msgid "IP address of the peer. Valid only for realtime peers." +msgstr "ピアのIPアドレス。リアルタイム・ピアでのみ有効。" + +#: ../lib/modules/asteriskAccount.inc:236 +msgid "IP address or domain name of the registration server." +msgstr "登録サーバーのIPアドレスまたはドメイン名。" + +#: ../lib/modules/ipHost.inc:69 ../lib/modules/ipHost.inc:84 +#: ../lib/modules/ipHost.inc:104 ../lib/modules/ipHost.inc:251 +msgid "IP addresses" +msgstr "IPアドレス" + +#: ../lib/modules/bindDLZ.inc:642 +msgid "IP addresses (\"A/AAAA\" records)" +msgstr "IPアドレス (\"A/AAAA\" レコード)" + +#: ../lib/modules/fixed_ip.inc:119 +msgid "IP list" +msgstr "IPアドレス一覧" + +#: ../lib/modules/customFields.inc:514 +msgid "Icon" +msgstr "アイコン" + +#: ../lib/modules/passwordSelfReset.inc:144 +#: ../lib/modules/passwordSelfReset.inc:506 +msgid "Identification method" +msgstr "識別方法" + +#: ../templates/masscreate.php:298 ../templates/masscreate.php:372 +msgid "Identifier" +msgstr "識別子" + +#: ../lib/modules/sambaSamAccount.inc:238 +#: ../lib/modules/sambaSamAccount.inc:1527 +#: ../lib/modules/sambaSamAccount.inc:1928 +msgid "Idle time limit" +msgstr "無動作時間の制限" + +#: ../lib/modules/freeRadius.inc:108 ../lib/modules/freeRadius.inc:132 +#: ../lib/modules/freeRadius.inc:157 ../lib/modules/freeRadius.inc:217 +#: ../lib/modules/freeRadius.inc:240 ../lib/modules/freeRadius.inc:289 +#: ../lib/modules/freeRadius.inc:541 +msgid "Idle timeout" +msgstr "無動作タイムアウト" + +#: ../lib/modules/qmailUser.inc:256 +msgid "" +"If account status is set to deleted, the earliest date when the mail message " +"store including all remaining content will be deleted from the filesystem." +msgstr "" +"If account status is set to deleted, the earliest date when the mail message " +"store including all remaining content will be deleted from the filesystem." + +#: ../lib/modules/customFields.inc:177 +msgid "" +"If activated then LAM will show an accordion view if there is more than one " +"group per account type." +msgstr "有効にした場合、LAMはアカウント・タイプ毎に複数のグループがある場合に、アコーディオン・ビューを表示します。" + +#: ../lib/modules/ppolicyUser.inc:60 +msgid "" +"If activated then the user is forced to change his password at the next " +"login." +msgstr "" +"有効にした場合、ユーザーは次のログインの際にパスワードを変更しなくてはなりま" +"せん。" + +#: ../lib/modules/sambaSamAccount.inc:268 +msgid "If checked Unix password will also be used as Samba password." +msgstr "チェックした場合、unixパスワードがSambaパスワードとしても使われます。" + +#: ../lib/modules/posixAccount.inc:527 +msgid "" +"If checked account will be deactivated by putting a \"!\" before the " +"encrypted password." +msgstr "" +"チェックした場合、暗号化パスワードの前に\"!\"が挿入され、アカウントは無効化さ" +"れます。" + +#: ../lib/modules/sambaSamAccount.inc:274 +msgid "If checked no password will be used." +msgstr "チェックした場合、パスワードは使われません。" + +#: ../lib/modules/windowsUser.inc:199 +msgid "If checked password does not expire." +msgstr "チェックした場合、パスワードは無期限になります。" + +#: ../lib/modules/sambaSamAccount.inc:280 +msgid "If checked password does not expire. (Setting X-Flag)" +msgstr "チェックした場合、パスワードは無期限になります。(X-フラグをセット)" + +#: ../lib/modules/windowsUser.inc:196 +msgid "" +"If checked then the account is locked. You may only unlock accounts but not " +"lock them." +msgstr "" +"チェックされている場合、アカウントはロックされています。 You may only unlock " +"accounts but not lock them." + +#: ../lib/modules/windowsUser.inc:193 +msgid "If checked then the account will be deactivated." +msgstr "チェックした場合、アカウントは無効化されます。" + +#: ../lib/modules/sambaSamAccount.inc:286 +msgid "If checked then the account will be deactivated. (Setting D-Flag)" +msgstr "" +"チェックした場合、(D-フラグをセットすることにより)アカウントは無効化されま" +"す。" + +#: ../lib/modules/sambaSamAccount.inc:289 +msgid "" +"If checked then the account will be locked (setting L-Flag). You usually " +"want to use this setting to unlock user accounts which were locked because " +"of failed login attempts." +msgstr "" +"チェックした場合、(L-フラグをセットすることにより)アカウントはロックされま" +"す。通常はログイン失敗によってロックされたユーザーのアカウントをアンロックし" +"たい場合に使用します。" + +#: ../help/help.inc:177 +msgid "" +"If checked then the user will not be able to create new entries of this " +"account type." +msgstr "" +"チェックした場合、ユーザーはこのアカウントタイプの新規エントリーを作成できな" +"くなります。" + +#: ../help/help.inc:179 +msgid "" +"If checked then the user will not be able to delete entries of this account " +"type." +msgstr "" +"チェックした場合、ユーザーはこのアカウントタイプのエントリーを削除できなくな" +"ります。" + +#: ../lib/modules/posixGroup.inc:481 +msgid "" +"If empty GID number will be generated automaticly depending on your " +"configuration settings." +msgstr "未記入の場合、設定内容に従ってGID番号が自動的に生成されます。" + +#: ../lib/modules/qmailUser.inc:236 +msgid "If empty GID number will be generated automaticly." +msgstr "未記入の場合、GID番号が自動的に生成されます。" + +#: ../lib/modules/qmailUser.inc:232 ../lib/modules/posixAccount.inc:462 +msgid "If empty UID number will be generated automaticly." +msgstr "未記入の場合、UID番号が自動的に生成されます。" + +#: ../lib/modules/ppolicy.inc:125 +msgid "" +"If enabled the user will not be allowed to login after there have been a " +"specified number of consecutive failed login attempts." +msgstr "" +"有効にした場合は、連続したログイン試行の失敗が設定された回数に達すると、ユー" +"ザはログインできなくなります。" + +#: ../help/help.inc:127 +msgid "" +"If enabled then LAM will use user and password that is provided by the web " +"server via HTTP authentication." +msgstr "" +"有効にした場合、LAMはHTTP認証経由でサーバーに与えられたユーザとパスワードを使" +"用します。" + +#: ../help/help.inc:104 +msgid "" +"If enabled then the default language will be enforced and cannot be chosen " +"by the user." +msgstr "" +"有効にした場合、デフォルトの言語が強制され、ユーザーが選択する事はできませ" +"ん。" + +#: ../lib/modules/ppolicy.inc:129 +msgid "" +"If enabled users must change their passwords when they first login after a " +"password is set or reset by the administrator." +msgstr "" +"有効にすると、管理者によってパスワードの設定またはリセットが行われた後の最初" +"のログインで、ユーザーはパスワードを変更しなくてはなりません。" + +#: ../lib/modules/asteriskAccount.inc:216 +msgid "" +"If registration context is specified, Asterisk will dynamically create and " +"destroy a NoOp priority 1 extension for a given peer who registers or " +"unregisters with Asterisk." +msgstr "" +"登録コンテキストが指定された場合、Asteriskは登録または削除の対象であるピアに" +"対して、優先度1のNoOpエクステンションを動的に生成します。" + +#: ../lib/modules/sambaDomain.inc:110 +msgid "If set then users need to login to change their password." +msgstr "パスワード変更の際にユーザーのログオンを強制します。" + +#: ../lib/modules/sambaSamAccount.inc:271 +msgid "If set to \"true\" Unix password will also be used as Samba password." +msgstr "" +"\"true\"にセットした場合、unixパスワードがSambaパスワードとしても使われます。" + +#: ../lib/modules/sambaSamAccount.inc:292 +msgid "If set to \"true\" account will be deactivated. (Setting D-Flag)" +msgstr "" +"\"true\"にセットした場合、アカウントは無効化されます。(D-フラグをセット)" + +#: ../lib/modules/sambaSamAccount.inc:277 +msgid "If set to \"true\" no password will be used." +msgstr "\"true\"にセットした場合、パスワードは使われません。" + +#: ../lib/modules/sambaSamAccount.inc:283 +msgid "If set to \"true\" password does not expire. (Setting X-Flag)" +msgstr "" +"\"true\"にセットした場合、パスワードは無期限になります。(X-フラグをセット)" + +#: ../lib/modules/qmailGroup.inc:197 +msgid "" +"If set to true then all incomming mails needs to come from a member of the " +"list." +msgstr "" +"trueにセットした場合、全ての受信メールはこのリストのメンバーから送られたもの" +"でなくてはなりません。" + +#: ../lib/modules/customFields.inc:125 +msgid "" +"If the LDAP attribute has no value then the checkbox is set to this value." +msgstr "LDAP属性が値を持たない場合、チェックボックスはこの値にセットされます。" + +#: ../lib/modules/zarafaUser.inc:97 +msgid "" +"If the mailbox size reaches the soft quota limit, the user will not be able " +"to send email until the size of the mailbox is reduced." +msgstr "" +"メールボックスサイズがソフトquotaリミットに到達した場合、ユーザーはメールボッ" +"クスのサイズ減らすまでメールを送ることができません。" + +#: ../lib/modules/passwordSelfReset.inc:149 +msgid "" +"If the user has a Samba 3 extension then the Samba password will also be " +"set. Otherwise, no action is taken." +msgstr "" +"もしもユーザーがSamba3拡張を持っている場合は、Sambaパスワードもセットされま" +"す。そうでなければ、何も行われません。" + +#: ../lib/modules/windowsUser.inc:145 ../lib/modules/windowsUser.inc:149 +msgid "If the user has multiple telephone numbers then please enter it here." +msgstr "ユーザーが複数の電話番号を持っている場合は、ここに入力してください。" + +#: ../lib/modules/pykotaPrinter.inc:120 ../lib/modules/pykotaPrinter.inc:124 +msgid "" +"If this entry should be a printer group then you can set the member names " +"here." +msgstr "" +"このエントリーがプリンターグループであるならば、ここにメンバー名を設定できま" +"す。" + +#: ../lib/modules/qmailGroup.inc:229 +msgid "" +"If this is set to true then an incomming mail needs to be approved by the " +"sender." +msgstr "" +"trueにセットされた場合、受信メールは送信者によって承認されている必要がありま" +"す。" + +#: ../lib/modules/qmailGroup.inc:144 ../lib/modules/qmailGroup.inc:148 +msgid "" +"If you enter one or more email addresses then mail delivery errors are " +"forwarded to these addresses instead of the sender of the original mail." +msgstr "" +"ここに1つ以上のメールアドレスを入力すると、配送エラーは、元のメールの送信者で" +"はなく、指定されたメールアドレスへ転送されます。" + +#: ../lib/modules/sambaSamAccount.inc:331 +msgid "" +"If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" +"未入力の場合は、LAMは uidNumber*2 + sambaAlgorithmicRidBase を使用します。" + +#: ../lib/modules/zarafaServer.inc:85 +msgid "" +"If you run Zarafa behind a reverse proxy then you can specify the server URL " +"here (e.g. \"https://zproxy.example.com:237/z1\")." +msgstr "" +"Zarafaをリバースproxyの先で動作させる場合、ここにサーバURLを記述できます(例 " +"\"https://zproxy.example.com:237/z1\")。" + +#: ../lib/modules/passwordSelfReset.inc:141 +msgid "" +"If you select this option then the user is only authenticated by his email " +"address. LAM Pro will not ask for the answer to the security question. " +"Please handle with care." +msgstr "" +"このオプションを選択した場合は、ユーザーはeメールアドレスのみによって認証され" +"ます。LAM Proは秘密の質問に対する回答を要求しません。取扱いにご注意ください。" + +#: ../lib/modules/heimdalKerberos.inc:131 +msgid "If you set this option then the user cannot request TGT-based tickets." +msgstr "" +"このオプションを設定した場合、ユーザーはTGTベースのチケットをリクエストできま" +"せん。" + +#: ../lib/modules/mitKerberos.inc:175 ../lib/modules/heimdalKerberos.inc:149 +msgid "If you set this option then the user cannot request any tickets." +msgstr "" +"このオプションを設定した場合、ユーザーは一切のチケットをリクエストできませ" +"ん。" + +#: ../lib/modules/mitKerberos.inc:163 ../lib/modules/heimdalKerberos.inc:134 +msgid "" +"If you set this option then the user cannot request forwardable tickets." +msgstr "" +"このオプションを設定した場合、ユーザーは転送可能なチケットをリクエストできま" +"せん。" + +#: ../lib/modules/mitKerberos.inc:160 ../lib/modules/heimdalKerberos.inc:143 +msgid "If you set this option then the user cannot request post-dated tickets." +msgstr "" +"このオプションを設定した場合、ユーザーは先付け日付のチケットをリクエストでき" +"ません。" + +#: ../lib/modules/mitKerberos.inc:169 ../lib/modules/heimdalKerberos.inc:137 +msgid "If you set this option then the user cannot request proxiable tickets." +msgstr "" +"このオプションを設定した場合、ユーザーは代理可能チケットをリクエストできませ" +"ん。" + +#: ../lib/modules/mitKerberos.inc:166 ../lib/modules/heimdalKerberos.inc:140 +msgid "If you set this option then the user cannot request renewable tickets." +msgstr "" +"このオプションを設定した場合、ユーザーは更新可能なチケットをリクエストできま" +"せん。" + +#: ../lib/modules/mitKerberos.inc:187 ../lib/modules/heimdalKerberos.inc:146 +msgid "If you set this option then the user cannot request service tickets." +msgstr "" +"このオプションを設定した場合、ユーザーはサービスチケットをリクエストできませ" +"ん。" + +#: ../lib/modules/mitKerberos.inc:184 ../lib/modules/sambaSamAccount.inc:295 +#: ../lib/modules/windowsUser.inc:215 ../lib/modules/heimdalKerberos.inc:128 +#: ../help/help.inc:207 +msgid "" +"If you set this option then the user has to change his password at the next " +"login." +msgstr "" +"このオプションを設定した場合、ユーザーは次のログインの際にパスワードを変更し" +"なくてはなりません。" + +#: ../lib/modules/mitKerberos.inc:181 +msgid "" +"If you set this option then the user must preauthenticate himself using a " +"hardware device." +msgstr "" +"このオプションを設定した場合、ユーザーは次のハードウェアデバイスを使用して事" +"前認証しなくてはなりません。" + +#: ../lib/modules/mitKerberos.inc:178 ../lib/modules/heimdalKerberos.inc:152 +msgid "If you set this option then the user must preauthenticate himself." +msgstr "このオプションを設定した場合、ユーザーは事前認証しなくてはなりません。" + +#: ../lib/modules/mitKerberos.inc:190 ../lib/modules/heimdalKerberos.inc:155 +msgid "" +"If you set this option then this account is marked as password change " +"service." +msgstr "" +"このオプションを設定した場合、このアカウントはパスワード変更サービスにマーク" +"されます。" + +#: ../lib/modules/selfRegistration.inc:87 +msgid "" +"If you use the object class \"inetOrgPerson\" and do not provide the \"cn\" " +"attribute then LAM will set it to the user name value." +msgstr "" +"オブジェクトクラスとして \"inetOrgPerson\" を使用し、\"cn\" 属性を与えない場" +"合、LAMはcnにユーザー名を設定します。" + +#: ../help/help.inc:106 +msgid "" +"If you want to change the current preferences password, please enter it here." +msgstr "" +"現在のプリファレンスのパスワードを変更したい場合は、ここに入力してください。" + +#: ../help/help.inc:141 +msgid "" +"If you want to change your master configuration password, please enter it " +"here." +msgstr "マスタ構成パスワードを変更したい場合は、ここに入力してください。" + +#: ../lib/modules/sambaGroupMapping.inc:151 +msgid "If you want to use a well known RID you can select a well known group." +msgstr "" +"もしも、well known RIDを使いたいのであれば、well known groupを選択できます。" + +#: ../help/help.inc:116 +msgid "" +"If your server runs on another port then add a comma and the port number " +"after the server." +msgstr "" +"もしも他のポート番号でサーバーを動作させる場合は、サーバーの後ろにカンマと" +"ポート番号を追加してください。" + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:49 +msgid "Image not available" +msgstr "画像が利用できません" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:292 +#: ../templates/3rdParty/pla/htdocs/import.php:45 +#: ../templates/3rdParty/pla/htdocs/import_form.php:19 +msgid "Import" +msgstr "インポート" + +#: ../templates/pdfedit/pdfmain.php:215 ../templates/pdfedit/pdfmain.php:216 +#: ../help/help.inc:210 +msgid "Import PDF structures" +msgstr "PDF構成をインポート" + +#: ../templates/config/mainmanage.php:344 +msgid "Import from server" +msgstr "サーバーからインポート" + +#: ../templates/profedit/profilemain.php:203 +#: ../templates/profedit/profilemain.php:204 ../help/help.inc:192 +msgid "Import profiles" +msgstr "プロファイルのインポート" + +#: ../templates/pdfedit/pdfmain.php:109 +#: ../templates/profedit/profilemain.php:124 +msgid "Import successful" +msgstr "インポートが完了しました!" + +#: ../templates/config/mainmanage.php:189 +msgid "Imported certificate from server." +msgstr "サーバーから証明書をインポートします。" + +#: ../templates/config/mainmanage.php:346 +msgid "Imports the certificate directly from your LDAP server." +msgstr "あなたのLDAPサーバーから証明書を直接インポートします。" + +#: ../lib/modules/pykotaPrinter.inc:108 +msgid "" +"In passthrough mode, users are allowed to print without any impact on their " +"quota or account balance." +msgstr "" +"パススルー・モードでは、ユーザーは他のクオータやアカウント残高に影響を与えず" +"に印刷が許可されます。" + +#: ../lib/modules/fixed_ip.inc:115 +msgid "Inactive hosts will not be able to get an address from the DHCP server." +msgstr "" +"無効化されたホストは、DHCPサーバーからアドレスを取得することが出来ません。" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:87 +msgid "Include system attributes" +msgstr "システム属性を含む" + +#: ../lib/tools/serverInfo.inc:53 +msgid "Information about the LDAP server." +msgstr "LDAPサーバーに関する情報。" + +#: ../lib/modules/sambaSamAccount.inc:233 +#: ../lib/modules/sambaSamAccount.inc:360 +#: ../lib/modules/sambaSamAccount.inc:1513 +#: ../lib/modules/sambaSamAccount.inc:1923 +msgid "Inherit client startup configuration" +msgstr "クライアントのスタートアップ構成を継承する" + +#: ../templates/schema/schema.php:396 ../templates/schema/schema.php:417 +msgid "Inherited from" +msgstr "継承元" + +#: ../templates/schema/schema.php:157 ../templates/schema/schema.php:353 +msgid "Inherits from" +msgstr "継承元" + +#: ../lib/modules/pykotaUser.inc:249 +msgid "Initial payment" +msgstr "契約金" + +#: ../lib/modules/sambaSamAccount.inc:234 +#: ../lib/modules/sambaSamAccount.inc:363 +#: ../lib/modules/sambaSamAccount.inc:1515 +#: ../lib/modules/sambaSamAccount.inc:1924 +msgid "Initial program" +msgstr "初期プログラム" + +#: ../lib/modules/windowsUser.inc:132 ../lib/modules/windowsUser.inc:302 +#: ../lib/modules/windowsUser.inc:503 ../lib/modules/windowsUser.inc:704 +#: ../lib/modules/windowsUser.inc:1591 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:172 ../lib/modules/inetOrgPerson.inc:321 +#: ../lib/modules/inetOrgPerson.inc:617 ../lib/modules/inetOrgPerson.inc:836 +#: ../lib/modules/inetOrgPerson.inc:1187 ../lib/modules/inetOrgPerson.inc:1190 +#: ../lib/modules/inetOrgPerson.inc:1917 ../lib/modules/inetOrgPerson.inc:2681 +#: ../lib/modules/inetOrgPerson.inc:3557 ../lib/modules/inetOrgPerson.inc:3589 +msgid "Initials" +msgstr "イニシャル" + +#: ../templates/serverInfo.php:282 ../templates/serverInfo.php:368 +msgid "Initiated" +msgstr "初期化されました" + +#: ../lib/modules/quota.inc:57 ../lib/modules/systemQuotas.inc:105 +msgid "Inode hard quota" +msgstr "Inode ハードquota" + +#: ../lib/modules/quota.inc:57 ../lib/modules/quota.inc:58 +#: ../lib/modules/systemQuotas.inc:105 ../lib/modules/systemQuotas.inc:106 +msgid "" +"Inode hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Inodeハードクオータに無効な文字が含まれています。自然数のみが有効です。" + +#: ../lib/modules/quota.inc:61 ../lib/modules/systemQuotas.inc:109 +msgid "Inode quota" +msgstr "Inodeクオータ" + +#: ../lib/modules/quota.inc:55 ../lib/modules/systemQuotas.inc:103 +msgid "Inode soft quota" +msgstr "Inodeソフトquota" + +#: ../lib/modules/quota.inc:55 ../lib/modules/quota.inc:56 +#: ../lib/modules/systemQuotas.inc:103 ../lib/modules/systemQuotas.inc:104 +msgid "" +"Inode soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "Inode ソフトクオータに無効な文字が含まれています。自然数のみ有効です。" + +#: ../lib/modules/quota.inc:61 ../lib/modules/quota.inc:62 +#: ../lib/modules/systemQuotas.inc:109 ../lib/modules/systemQuotas.inc:110 +msgid "Inode soft quota must be smaller than inode hard quota." +msgstr "" +"iノード・ソフトクオータはiノード・ハードクオータ<より小さくなくてはなりませ" +"ん。" + +#: ../templates/selfService/adminMain.php:685 +msgid "Input fields" +msgstr "入力フィールド" + +#: ../lib/modules/asteriskAccount.inc:155 +#: ../lib/modules/asteriskAccount.inc:277 +#: ../lib/modules/asteriskAccount.inc:391 +#: ../lib/modules/asteriskAccount.inc:652 +#: ../lib/modules/asteriskAccount.inc:993 +#: ../lib/modules/asteriskAccount.inc:1255 +msgid "Insecure" +msgstr "非セキュア" + +#: ../lib/modules/sambaSamAccount.inc:95 +msgid "Inserted user or group name in home path." +msgstr "ホームパス名にユーザ又はグループ名を挿入しました。" + +#: ../lib/modules/sambaSamAccount.inc:101 +msgid "Inserted user or group name in logon script." +msgstr "ログオンスクリプトパスにユーザ又はグループ名を挿入しました。" + +#: ../lib/modules/sambaSamAccount.inc:98 +msgid "Inserted user or group name in profile path." +msgstr "プロファイルパスにユーザ又はグループ名を挿入しました。" + +#: ../lib/modules/fixed_ip.inc:475 +msgid "Invalid MAC address." +msgstr "不正なMACアドレスです。" + +#: ../templates/massBuildAccounts.php:201 +msgid "Invalid RDN attribute!" +msgstr "不正なRDN属性です!" + +#: ../templates/3rdParty/pla/htdocs/rename.php:42 +msgid "Invalid RDN value" +msgstr "RDN値が無効です!" + +#: ../lib/modules/fixed_ip.inc:484 +msgid "Invalid description." +msgstr "無効な説明。" + +#: ../templates/3rdParty/pla/lib/import_functions.php:560 +msgid "Invalid entry" +msgstr "無効なエントリ" + +#: ../lib/modules/selfRegistration.inc:121 +msgid "Invalid format for the specification of additional attributes." +msgstr "追加属性の記述形式が無効です。" + +#: ../lib/modules/imapAccess.inc:185 +msgid "Invalid password for IMAP admin or other problem occured." +msgstr "" +"IMAP管理者に対する不正なパスワード、または、その他の問題が発生しました。" + +#: ../lib/modules/ldapPublicKey.inc:546 ../lib/modules/inetOrgPerson.inc:3287 +#: ../lib/modules/customFields.inc:1403 +msgid "Invalid request" +msgstr "無効なリクエスト" + +#: ../templates/config/mainmanage.php:198 +msgid "Invalid server name. Please enter \"server\" or \"server:port\"." +msgstr "" +"無効なサーバー名。 \"server\" または \"server:port\" と入力してください。" + +#: ../lib/modules/passwordSelfReset.inc:914 +#: ../lib/modules/passwordSelfReset.inc:1136 +#, php-format +msgid "Invalid value in field \"%s\"." +msgstr "フィールド \"%s\" に不正な値があります。" + +#: ../lib/modules/kolabUser.inc:117 ../lib/modules/kolabUser.inc:124 +#: ../lib/modules/kolabUser.inc:186 ../lib/modules/kolabUser.inc:230 +#: ../lib/modules/kolabUser.inc:315 ../lib/modules/kolabUser.inc:756 +#: ../lib/modules/kolabUser.inc:885 +msgid "Invitation policy" +msgstr "不正なポリシー" + +#: ../lib/modules/kolabUser.inc:128 +msgid "Invitation policy list" +msgstr "不正なポリシーリスト" + +#: ../lib/modules/sambaSamAccount.inc:569 +msgid "Islamabad, Karachi" +msgstr "Islamabad, Karachi" + +#: ../lib/modules/range.inc:116 +msgid "It is not possible to delete all ranges." +msgstr "全ての範囲を削除する事はできません" + +#: ../lib/modules/posixGroup.inc:600 ../lib/modules/posixAccount.inc:105 +msgid "" +"It is possible that this ID-number is reused. This can cause several " +"problems because files with old permissions might still exist. To avoid this " +"warning set maxUID to a higher value." +msgstr "" +"ID番号を再利用することは可能です。古いパーミッションを持ったファイルがまだ存" +"在するかも知れないため、これはいくつかの問題を引き起こすかもしれません。この" +"警告を防ぐには、maxUIDをより大きな値に設定してください。" + +#: ../lib/modules/pykotaUser.inc:284 ../lib/modules/pykotaUser.inc:387 +#: ../lib/modules/pykotaUser.inc:1021 +msgid "Job history" +msgstr "職歴" + +#: ../lib/modules/pykotaUser.inc:156 ../lib/modules/pykotaUser.inc:289 +#: ../lib/modules/pykotaUser.inc:295 ../lib/modules/pykotaUser.inc:327 +msgid "Job suffix" +msgstr "JOBサフィックス" + +#: ../lib/modules/inetOrgPerson.inc:89 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:226 ../lib/modules/inetOrgPerson.inc:337 +#: ../lib/modules/inetOrgPerson.inc:590 ../lib/modules/inetOrgPerson.inc:636 +#: ../lib/modules/inetOrgPerson.inc:640 ../lib/modules/inetOrgPerson.inc:1438 +#: ../lib/modules/inetOrgPerson.inc:1441 ../lib/modules/inetOrgPerson.inc:1891 +#: ../lib/modules/inetOrgPerson.inc:2692 ../lib/modules/inetOrgPerson.inc:3539 +#: ../lib/modules/inetOrgPerson.inc:3585 +msgid "Job title" +msgstr "役職" + +#: ../lib/modules/inetOrgPerson.inc:637 ../lib/modules/inetOrgPerson.inc:641 +msgid "Job title of user: President, department manager, ..." +msgstr "ユーザの役職: 社長、部長、..." + +#: ../lib/lists.inc:297 +msgid "Jump 10 pages backward" +msgstr "10ページ前へ戻る" + +#: ../lib/lists.inc:317 +msgid "Jump 10 pages forward" +msgstr "10ページ先へ進む" + +#: ../templates/schema/schema.php:255 +msgid "Jump to a matching rule" +msgstr "照合規則へジャンプ" + +#: ../templates/schema/schema.php:114 +msgid "Jump to an attribute type" +msgstr "属性タイプへジャンプ" + +#: ../templates/schema/schema.php:308 ../templates/schema/schema.php:358 +#: ../templates/schema/schema.php:373 +msgid "Jump to an object class" +msgstr "オブジェクトクラスへジャンプ" + +#: ../lib/lists.inc:292 +msgid "Jump to first page" +msgstr "最初のページへジャンプ" + +#: ../lib/lists.inc:322 +msgid "Jump to last page" +msgstr "最後のページへジャンプ" + +#: ../lib/modules/mitKerberos.inc:94 ../lib/modules/heimdalKerberos.inc:81 +msgid "Kerberos" +msgstr "Kerberos" + +#: ../lib/modules/kolabGroup.inc:74 ../lib/modules/kolabUser.inc:80 +msgid "Kolab" +msgstr "Kolab" + +#: ../lib/modules/kolabSharedFolder.inc:82 +msgid "Kolab shared folder" +msgstr "Kolab共有フォルダー" + +#: ../lib/types/kolabSharedFolderType.inc:53 +msgid "Kolab shared folders" +msgstr "Kolab共有フォルダー" + +#: ../lib/types/kolabSharedFolderType.inc:62 +msgid "Kolab shared folders (e.g. mail folders)" +msgstr "Kolab共有フォルダー (例 mail folders)" + +#: ../lib/modules/posixGroup.inc:517 +msgid "" +"LAM checks if the entered group name and GID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique group names or " +"GIDs." +msgstr "" +"LAMは入力されたグループ名とGIDが一意であるかをチェックします。ここでは、重複" +"を検索する際に使用されるLDAPサフィックスを入力出来ます。デフォルトでは、アカ" +"ウントタイプのサフィックスが使用されます。異なるOUを持つ複数のサーバープロ" +"ファイルでグループ名やGIDを一意にしたい場合は、これを変更する必要があります。" + +#: ../lib/modules/posixAccount.inc:490 +msgid "" +"LAM checks if the entered user name and UID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique user names or " +"UIDs." +msgstr "" +"LAMは入力されたユーザー名とUIDが一意であるかをチェックします。ここでは、重複" +"を検索する際に使用されるLDAPサフィックスを入力出来ます。デフォルトでは、アカ" +"ウントタイプのサフィックスが使用されます。異なるOUを持つ複数のサーバープロ" +"ファイルでユーザー名やUIDを一意にしたい場合は、これを変更する必要があります。" + +#: ../templates/login.php:265 ../templates/config/index.php:85 +msgid "LAM configuration" +msgstr "LAM構成設定" + +#: ../templates/massBuildAccounts.php:239 +msgid "LAM has checked your input and is now ready to create the accounts." +msgstr "" +"LAMは入力内容をチェックしました。アカウントを作成する準備ができました。" + +#: ../lib/modules/posixGroup.inc:505 ../lib/modules/posixAccount.inc:458 +#: ../lib/modules/inetOrgPerson.inc:813 ../lib/modules/customFields.inc:137 +msgid "" +"LAM supports CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 and SMD5 to generate the " +"hash value of passwords. SSHA and CRYPT are the most common but CRYPT does " +"not support passwords greater than 8 letters. We do not recommend to use " +"plain text passwords." +msgstr "" +"LAMはユーザのパスワードのハッシュ値を生成するために、CRYPT, CRYPT-SHA512, " +"SHA, SSHA, MD5とSMD5をサポートしています。SSHAとCRYPTが最も一般的ですが、" +"CRYPTは8文字より長いパスワードをサポートしません。平文のパスワードを使うこと" +"は推奨いたしません。" + +#: ../templates/tests/index.php:50 +msgid "LAM tests" +msgstr "LAMテスト" + +#: ../lib/modules/imapAccess.inc:128 +msgid "LAM user password" +msgstr "LAMユーザーパスワード" + +#: ../templates/massDoUpload.php:132 +#, php-format +msgid "LAM was unable to create account %s! An LDAP error occured." +msgstr "LAMはアカウント %s を作成できませんでした! LDAPエラーが発生しました。" + +#: ../lib/modules/sambaGroupMapping.inc:603 +msgid "LAM was unable to find a Samba 3 domain with this name!" +msgstr "LAMは、この名前のSamba 3ドメインを見つけられませんでした。" + +#: ../lib/modules/sambaSamAccount.inc:118 +msgid "LAM was unable to find a domain with this name!" +msgstr "LAMは、この名前のドメインを見つけられませんでした。" + +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/windowsUser.inc:1449 +msgid "LAM was unable to find a group with this name!" +msgstr "LAMは、この名前のグループを見つけられませんでした。" + +#: ../lib/modules/posixAccount.inc:2330 ../lib/modules/posixAccount.inc:2391 +#: ../lib/modules/windowsUser.inc:1535 ../lib/modules/groupOfNamesUser.inc:454 +#, php-format +msgid "LAM was unable to modify group memberships for group: %s" +msgstr "LAMはグループ %s のグループメンバーシップを変更できませんでした。" + +#: ../lib/modules/organizationalRoleUser.inc:397 +#, php-format +msgid "LAM was unable to modify memberships for role: %s" +msgstr "LAMはロールのメンバーシップを変更できませんでした: %s" + +#: ../lib/modules/posixGroup.inc:521 ../lib/modules/posixAccount.inc:498 +msgid "" +"LAM will automatically suggest UID/GID numbers. You can either use a fixed " +"range of numbers or an LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "" +"LAMは自動的にUID/GID番号を提案します。固定された番号の範囲、または、オブジェ" +"クトクラス \"sambaUnixIdPool\" のLDAPエントリを使用する事もできます。" + +#: ../help/help.inc:219 +msgid "LAM will search for accounts in this part of the LDAP tree." +msgstr "LAMは、このLDAPツリー部分からアカウントを検索します。" + +#: ../lib/modules/posixAccount.inc:437 +msgid "" +"LAM will suggest a user name based on e.g. first and last name. Here you can " +"specify the suggestion. %sn% will be replaced by the last name. @givenname@ " +"will be replaced by the first character of first name. Only attributes of " +"tab Personal may be used." +msgstr "" +"LAMは、例えば姓名をベースにしてユーザー名を提案します。ここでは、提案方法を指" +"定します。 %sn% は姓に置き換えられます。@givenname@ は名前の最初の文字に置き" +"換えられます。Personalタブの属性だけが使用されます。" + +#: ../help/help.inc:221 +msgid "" +"LAM will use this LDAP DN and password to search for accounts. It is " +"sufficient to specify an account with read rights. If nothing is inserted " +"then LAM will try to connect anonymously." +msgstr "" +"LAMがアカウントを検索する際に使用するLDAP DNとパスワード。これは、読み取り権" +"限だけを持ったアカウントで充分です。未記入の場合、LAMは匿名接続を試みます。" + +#: ../lib/modules/qmailUser.inc:57 +msgid "LDAP + program" +msgstr "LDAP + program" + +#: ../templates/config/confmodules.php:97 ../templates/config/confmain.php:127 +#: ../templates/config/moduleSettings.php:96 +#: ../templates/config/conftypes.php:115 +msgid "LDAP Account Manager Configuration" +msgstr "LDAP アカウントマネージャ構成" + +#: ../templates/multiEdit.php:198 ../templates/config/conftypes.php:386 +msgid "LDAP Suffix is invalid!" +msgstr "LDAPサフィックスが無効です!" + +#: ../templates/serverInfo.php:182 +msgid "LDAP entries" +msgstr "LDAPエントリ" + +#: ../lib/modules/qmailGroup.inc:173 ../lib/modules/qmailGroup.inc:177 +msgid "LDAP entries that are allowed to send to this list." +msgstr "このリストへの送信を許可されたLDAPエントリ。" + +#: ../lib/modules/qmailGroup.inc:157 ../lib/modules/qmailGroup.inc:161 +msgid "LDAP entries that are member of this list." +msgstr "このリストに属するLDAPエントリ。" + +#: ../lib/modules/qmailGroup.inc:165 ../lib/modules/qmailGroup.inc:169 +msgid "LDAP entries that moderate this list (e.g. approve mails)." +msgstr "このリストをモデレートするLDAPエントリ(e.g. approve mails)。" + +#: ../templates/login.php:642 ../lib/account.inc:1204 +msgid "LDAP error, server says:" +msgstr "LDAP エラー、サーバからのメッセージ:" + +#: ../templates/multiEdit.php:115 ../templates/config/confmain.php:438 +#: ../help/help.inc:271 +msgid "LDAP filter" +msgstr "LDAPフィルター" + +#: ../lib/modules/qmailGroup.inc:189 ../lib/modules/qmailGroup.inc:193 +msgid "" +"LDAP filter to specify allowed senders of this list (e.g. " +"\"((objectclass=qmailUser)(employeeType=manager))\")." +msgstr "" +"このリストへ送信可能な発信者を記述するLDAPフィルター (e.g. " +"\"((objectclass=qmailUser)(employeeType=manager))\")。" + +#: ../lib/modules/qmailGroup.inc:181 ../lib/modules/qmailGroup.inc:185 +msgid "" +"LDAP filter to specify members of this list (e.g. \"((objectclass=qmailUser)" +"(employeeType=accountant))\")." +msgstr "" +"このリストのメンバーを記述するLDAPフィルター (e.g. \"((objectclass=qmailUser)" +"(employeeType=accountant))\")。" + +#: ../lib/modules.inc:1328 +msgid "LDAP operation successful." +msgstr "LDAP操作が完了しました。" + +#: ../templates/selfService/adminMain.php:464 +msgid "LDAP password" +msgstr "LDAPパスワード" + +#: ../templates/3rdParty/pla/lib/functions.php:1894 +msgid "LDAP said" +msgstr "LDAPのメッセージ" + +#: ../templates/config/confmain.php:415 ../help/help.inc:122 +msgid "LDAP search" +msgstr "LDAP検索" + +#: ../templates/selfService/adminMain.php:459 ../help/help.inc:222 +msgid "LDAP search attribute" +msgstr "LDAP検索属性" + +#: ../lib/account.inc:796 +msgid "LDAP search failed! Please check your preferences." +msgstr "LDAP検索に失敗しました! プリファレンスを確認してください。" + +#: ../templates/config/confmain.php:253 ../help/help.inc:124 +msgid "LDAP search limit" +msgstr "LDAP検索リミット" + +#: ../templates/login.php:460 +msgid "LDAP server" +msgstr "LDAPサーバ" + +#: ../lib/account.inc:787 +msgid "LDAP sizelimit exceeded, not all entries are shown." +msgstr "LDAPのサイズ制限を越えました。一部のエントリのみを表示します。" + +#: ../templates/multiEdit.php:82 ../templates/config/confmain.php:434 +#: ../templates/config/conftypes.php:252 +#: ../templates/selfService/adminMain.php:453 +#: ../templates/profedit/profilepage.php:202 ../help/help.inc:71 +#: ../help/help.inc:218 ../help/help.inc:269 +msgid "LDAP suffix" +msgstr "LDAPサフィックス" + +#: ../templates/massDoUpload.php:86 +msgid "LDAP upload in progress. Please wait." +msgstr "LDAPアップロード中です。お待ちください。" + +#: ../templates/selfService/adminMain.php:461 +msgid "LDAP user" +msgstr "LDAPユーザー" + +#: ../help/help.inc:220 +msgid "LDAP user and password" +msgstr "LDAPユーザーとパスワード" + +#: ../templates/serverInfo.php:109 +msgid "LDAP version" +msgstr "LDAPバージョン" + +#: ../templates/3rdParty/pla/lib/export_functions.php:442 +msgid "LDIF Export" +msgstr "LDIFエクスポート" + +#: ../templates/multiEdit.php:443 +msgid "LDIF file" +msgstr "LDIFファイル" + +#: ../templates/3rdParty/pla/lib/import_functions.php:149 +#: ../templates/3rdParty/pla/htdocs/import.php:71 +msgid "LDIF import" +msgstr "LDIFインポート" + +#: ../templates/3rdParty/pla/lib/import_functions.php:170 +msgid "LDIF import only supports version 1" +msgstr "LDIFインポートはバージョン1のみをサポートします。" + +#: ../lib/modules/customFields.inc:88 ../lib/modules/customFields.inc:513 +#: ../lib/modules/customFields.inc:1051 ../lib/modules/customFields.inc:1705 +#: ../lib/modules/customFields.inc:2960 +msgid "Label" +msgstr "ラベル" + +#: ../templates/tests/lamdaemonTest.php:201 +msgid "" +"Lamdaemon path does not end with \".pl\". Did you enter the full path to the " +"script?" +msgstr "" +"Lamdaemonのパスが \".pl\" で終わっていません。スクリプトのフルパスを入力して" +"ありますか?" + +#: ../templates/tests/lamdaemonTest.php:185 +msgid "Lamdaemon server and path" +msgstr "Lamdaemonサーバおよびパス" + +#: ../templates/config/confmain.php:334 +msgid "Lamdaemon settings" +msgstr "Lamdaemon設定" + +#: ../templates/tests/lamdaemonTest.php:135 +msgid "Lamdaemon successfully run." +msgstr "Lamdaemonは正常に起動しました。" + +#: ../templates/tests/index.php:52 ../templates/tests/lamdaemonTest.php:52 +#: ../lib/tools/tests.inc:110 +msgid "Lamdaemon test" +msgstr "Lamdaemonテスト" + +#: ../templates/tests/lamdaemonTest.php:291 +msgid "Lamdaemon test finished." +msgstr "Lamdaemonテストが完了しました。" + +#: ../templates/tests/lamdaemonTest.php:273 +msgid "Lamdaemon version" +msgstr "Lamdaemonバージョン" + +#: ../templates/tests/lamdaemonTest.php:283 +msgid "Lamdaemon: Quota module installed" +msgstr "Lamdaemon: クォータモジュールがインストールされました。" + +#: ../templates/tests/lamdaemonTest.php:279 +msgid "Lamdaemon: check NSS LDAP" +msgstr "Lamdaemon: NSS LDAPのチェック" + +#: ../templates/tests/lamdaemonTest.php:286 +msgid "Lamdaemon: read quotas" +msgstr "Lamdaemon: クオータの読み込み" + +#: ../templates/login.php:397 +#: ../templates/selfService/selfServiceLogin.php:344 +msgid "Language" +msgstr "言語" + +#: ../templates/config/confmain.php:570 +msgid "Language is not defined!" +msgstr "言語が未定されていません!" + +#: ../templates/config/confmain.php:304 +msgid "Language settings" +msgstr "言語の設定" + +#: ../lib/modules/mitKerberos.inc:144 ../lib/modules/mitKerberos.inc:256 +#: ../lib/modules/mitKerberos.inc:404 ../lib/modules/mitKerberos.inc:791 +msgid "Last login" +msgstr "最終ログイン時刻" + +#: ../lib/types/user.inc:97 ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:219 ../lib/modules/windowsUser.inc:164 +#: ../lib/modules/windowsUser.inc:284 ../lib/modules/windowsUser.inc:511 +#: ../lib/modules/windowsUser.inc:599 ../lib/modules/windowsUser.inc:701 +#: ../lib/modules/windowsUser.inc:1599 ../lib/modules/inetOrgPerson.inc:68 +#: ../lib/modules/inetOrgPerson.inc:156 ../lib/modules/inetOrgPerson.inc:312 +#: ../lib/modules/inetOrgPerson.inc:539 ../lib/modules/inetOrgPerson.inc:648 +#: ../lib/modules/inetOrgPerson.inc:1178 ../lib/modules/inetOrgPerson.inc:1181 +#: ../lib/modules/inetOrgPerson.inc:1893 ../lib/modules/inetOrgPerson.inc:2445 +#: ../lib/modules/inetOrgPerson.inc:3577 +msgid "Last name" +msgstr "姓" + +#: ../lib/modules/windowsUser.inc:599 ../lib/modules/windowsUser.inc:600 +#: ../lib/modules/inetOrgPerson.inc:68 ../lib/modules/inetOrgPerson.inc:69 +msgid "Last name contains invalid characters or is empty!" +msgstr "姓に無効な文字が含まれているか、または未入力です!" + +#: ../lib/modules/windowsUser.inc:165 ../lib/modules/inetOrgPerson.inc:649 +msgid "Last name of user. Only letters, - and spaces are allowed." +msgstr "ユーザの姓。アルファベット、_ - と空白のみが使用できます。" + +#: ../lib/modules/mitKerberos.inc:140 ../lib/modules/mitKerberos.inc:255 +#: ../lib/modules/mitKerberos.inc:396 ../lib/modules/mitKerberos.inc:787 +#: ../lib/modules/sambaSamAccount.inc:396 +#: ../lib/modules/sambaSamAccount.inc:602 +#: ../lib/modules/sambaSamAccount.inc:1162 +#: ../lib/modules/sambaSamAccount.inc:2282 ../lib/modules/ppolicyUser.inc:87 +#: ../lib/modules/ppolicyUser.inc:136 ../lib/modules/ppolicyUser.inc:395 +#: ../lib/modules/shadowAccount.inc:167 ../lib/modules/shadowAccount.inc:201 +#: ../lib/modules/shadowAccount.inc:365 ../lib/modules/shadowAccount.inc:498 +#: ../lib/modules/shadowAccount.inc:668 +msgid "Last password change" +msgstr "パスワード最終変更時刻" + +#: ../lib/modules/sambaSamAccount.inc:251 ../lib/modules/shadowAccount.inc:239 +msgid "Last password change (read-only)" +msgstr "パスワード最終変更時刻(読み取り専用)" + +#: ../lib/modules/asteriskAccount.inc:239 +#: ../lib/modules/asteriskAccount.inc:298 +#: ../lib/modules/asteriskAccount.inc:544 +#: ../lib/modules/asteriskAccount.inc:758 +#: ../lib/modules/asteriskAccount.inc:1014 +#: ../lib/modules/asteriskAccount.inc:1297 +msgid "Last qualify milliseconds" +msgstr "Last qualify milliseconds" + +#: ../lib/modules/dhcp_settings.inc:153 ../lib/modules/dhcp_settings.inc:209 +#: ../lib/modules/dhcp_settings.inc:224 ../lib/modules/dhcp_settings.inc:256 +#: ../lib/modules/dhcp_settings.inc:569 ../lib/modules/dhcp_settings.inc:675 +msgid "Lease time" +msgstr "リース期間" + +#: ../lib/modules/pykotaGroup.inc:125 ../lib/modules/pykotaGroup.inc:135 +#: ../lib/modules/pykotaGroup.inc:173 ../lib/modules/pykotaGroup.inc:182 +#: ../lib/modules/pykotaGroup.inc:227 ../lib/modules/pykotaGroup.inc:474 +#: ../lib/modules/pykotaUser.inc:128 ../lib/modules/pykotaUser.inc:166 +#: ../lib/modules/pykotaUser.inc:233 ../lib/modules/pykotaUser.inc:261 +#: ../lib/modules/pykotaUser.inc:397 ../lib/modules/pykotaUser.inc:898 +msgid "Limit type" +msgstr "制限タイプ" + +#: ../templates/3rdParty/pla/htdocs/import.php:102 +msgid "Line" +msgstr "行" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:121 +msgid "Line ends" +msgstr "行の終わり" + +#: ../lib/modules/selfRegistration.inc:57 +#: ../lib/modules/selfRegistration.inc:197 +#: ../lib/modules/passwordSelfReset.inc:100 +#: ../lib/modules/passwordSelfReset.inc:516 +msgid "Link text" +msgstr "リンク・テキスト" + +#: ../templates/selfService/adminMain.php:394 +msgid "Link to self service login page for your users" +msgstr "ユーザーのセルフサービス・ログインページへのリンク" + +#: ../templates/config/conftypes.php:263 ../help/help.inc:87 +msgid "List attributes" +msgstr "属性の一覧" + +#: ../templates/config/conftypes.php:394 +msgid "List attributes are invalid!" +msgstr "リスト属性が無効です!" + +#: ../lib/types/zarafaAddressListType.inc:91 +#: ../lib/modules/zarafaAddressList.inc:63 +#: ../lib/modules/zarafaAddressList.inc:104 +#: ../lib/modules/zarafaAddressList.inc:141 +#: ../lib/modules/zarafaAddressList.inc:168 +#: ../lib/modules/zarafaAddressList.inc:187 +#: ../lib/modules/zarafaAddressList.inc:331 +msgid "List name" +msgstr "リスト名" + +#: ../lib/modules/zarafaAddressList.inc:168 +msgid "List name already in use." +msgstr "リスト名は既に使用されています。" + +#: ../lib/modules/sambaSamAccount.inc:315 +msgid "" +"List of Samba workstations the user is allowed to login. Empty means every " +"workstation." +msgstr "" +"ユーザがログインできるSambaワークステーションのリスト。未記入はすべてのワーク" +"ステーションを意味します。" + +#: ../templates/config/confmain.php:564 +msgid "List of admin users is empty or invalid!" +msgstr "管理者(admin users)のリストが空または無効です!" + +#: ../lib/modules/asteriskAccount.inc:204 +msgid "List of allowed codecs." +msgstr "許可されたコーデックのリスト" + +#: ../lib/modules/asteriskAccount.inc:200 +msgid "List of disallowed codecs." +msgstr "禁止されたコーデックのリスト" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:94 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:88 +msgid "List of entries to be deleted:" +msgstr "削除されるエントリ一覧:" + +#: ../templates/config/confmain.php:430 +msgid "List of valid users" +msgstr "有効なユーザのリスト" + +#: ../templates/serverInfo.php:152 +msgid "Listeners" +msgstr "リスナー" + +#: ../lib/modules.inc:1233 ../help/help.inc:198 +msgid "Load profile" +msgstr "プロファイルのロード" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:279 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1226 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +msgid "Loading" +msgstr "ロード中" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:303 +msgid "Loading export" +msgstr "エクスポートをロード中" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:290 +msgid "Loading import" +msgstr "インポートをロード中" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:497 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:233 +msgid "Loading search" +msgstr "検索のロード中" + +#: ../lib/modules/inetLocalMailRecipient.inc:72 +#: ../lib/modules/inetLocalMailRecipient.inc:154 +msgid "Local address" +msgstr "ローカルアドレス" + +#: ../lib/modules/inetLocalMailRecipient.inc:76 +#: ../lib/modules/inetLocalMailRecipient.inc:106 +#: ../lib/modules/inetLocalMailRecipient.inc:120 +#: ../lib/modules/inetLocalMailRecipient.inc:293 +msgid "Local address list" +msgstr "ローカルアドレス一覧" + +#: ../lib/modules/sambaGroupMapping.inc:72 +msgid "Local group" +msgstr "ローカルグループ" + +#: ../lib/modules/sambaGroupMapping.inc:115 +#: ../lib/modules/sambaGroupMapping.inc:166 +#: ../lib/modules/sambaGroupMapping.inc:388 +#: ../lib/modules/sambaGroupMapping.inc:555 +msgid "Local members" +msgstr "ローカルメンバ" + +#: ../lib/types/host.inc:97 ../lib/modules/ipHost.inc:73 +#: ../lib/modules/ipHost.inc:91 ../lib/modules/ipHost.inc:105 +#: ../lib/modules/ipHost.inc:130 ../lib/modules/ipHost.inc:252 +#: ../lib/modules/windowsHost.inc:82 ../lib/modules/windowsHost.inc:106 +#: ../lib/modules/windowsHost.inc:121 ../lib/modules/windowsHost.inc:144 +#: ../lib/modules/windowsHost.inc:290 ../lib/modules/device.inc:77 +#: ../lib/modules/device.inc:109 ../lib/modules/device.inc:129 +#: ../lib/modules/device.inc:178 ../lib/modules/device.inc:419 +#: ../lib/modules/windowsUser.inc:136 ../lib/modules/windowsUser.inc:332 +#: ../lib/modules/windowsUser.inc:504 ../lib/modules/windowsUser.inc:546 +#: ../lib/modules/windowsUser.inc:711 ../lib/modules/windowsUser.inc:1592 +#: ../lib/modules/windowsUser.inc:1734 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:187 ../lib/modules/inetOrgPerson.inc:507 +#: ../lib/modules/inetOrgPerson.inc:554 ../lib/modules/inetOrgPerson.inc:772 +#: ../lib/modules/inetOrgPerson.inc:776 ../lib/modules/inetOrgPerson.inc:1252 +#: ../lib/modules/inetOrgPerson.inc:1255 ../lib/modules/inetOrgPerson.inc:1913 +#: ../lib/modules/inetOrgPerson.inc:2588 ../lib/modules/inetOrgPerson.inc:3517 +#: ../lib/modules/inetOrgPerson.inc:3579 +msgid "Location" +msgstr "住所" + +#: ../lib/modules/nisMailAliasUser.inc:93 +msgid "Location where new alias is stored." +msgstr "新しいエイリアスが保存される場所。" + +#: ../lib/types/user.inc:349 ../lib/types/user.inc:354 +msgid "Lock" +msgstr "ロック" + +#: ../templates/lists/changePassword.php:426 +#: ../templates/lists/changePassword.php:446 +#: ../templates/lists/changePassword.php:448 +#: ../lib/modules/ppolicyUser.inc:150 +msgid "Lock account" +msgstr "アカウントのロック" + +#: ../templates/lists/changePassword.php:266 +msgid "Lock account?" +msgstr "アカウントをロックしますか?" + +#: ../lib/modules/posixGroup.inc:208 ../lib/modules/posixAccount.inc:338 +#: ../lib/modules/posixAccount.inc:1499 ../lib/modules/inetOrgPerson.inc:1559 +msgid "Lock password" +msgstr "パスワードのロック" + +#: ../lib/types/ppolicyType.inc:83 ../lib/modules/ppolicy.inc:104 +#: ../lib/modules/ppolicy.inc:151 ../lib/modules/ppolicy.inc:171 +#: ../lib/modules/ppolicy.inc:264 ../lib/modules/ppolicy.inc:476 +#: ../lib/modules/sambaDomain.inc:133 ../lib/modules/sambaDomain.inc:198 +#: ../lib/modules/sambaDomain.inc:223 ../lib/modules/sambaDomain.inc:340 +#: ../lib/modules/sambaDomain.inc:610 +msgid "Lockout duration" +msgstr "ロッカウト期間" + +#: ../lib/modules/sambaDomain.inc:223 +msgid "Lockout duration must be are natural number." +msgstr "ロックアウト期間は自然数でなければなりません。" + +#: ../lib/modules/ppolicyUser.inc:142 +msgid "Lockout time" +msgstr "ロックアウト時間" + +#: ../lib/types/ppolicyType.inc:88 ../lib/modules/ppolicy.inc:124 +#: ../lib/modules/ppolicy.inc:150 ../lib/modules/ppolicy.inc:258 +#: ../lib/modules/ppolicy.inc:495 +msgid "Lockout users" +msgstr "ロックアウト・ユーザー" + +#: ../lib/modules/sambaDomain.inc:121 ../lib/modules/sambaDomain.inc:195 +#: ../lib/modules/sambaDomain.inc:225 ../lib/modules/sambaDomain.inc:316 +#: ../lib/modules/sambaDomain.inc:607 +msgid "Lockout users after bad logon attempts" +msgstr "ユーザーをロックアウトするに至るログオン失敗回数" + +#: ../lib/modules/sambaDomain.inc:225 +msgid "Lockout users after bad logon attempts must be between 0 and 999." +msgstr "" +"ユーザーをロックアウトするに至るログオン失敗回数は0から999の間でなくてはなり" +"ません。" + +#: ../templates/config/mainmanage.php:423 ../help/help.inc:150 +msgid "Log destination" +msgstr "ログ出力先" + +#: ../templates/config/mainmanage.php:409 ../help/help.inc:148 +msgid "Log level" +msgstr "ログレベル" + +#: ../templates/multiEdit.php:448 +msgid "Log output" +msgstr "ログ出力" + +#: ../templates/main_header.php:128 +#, php-format +msgid "Logged in as: %s" +msgstr "%s としてログイン" + +#: ../templates/config/mainmanage.php:406 +msgid "Logging" +msgstr "ロギング" + +#: ../templates/login.php:433 ../templates/config/conflogin.php:62 +#: ../templates/config/mainlogin.php:72 +#: ../templates/selfService/selfServiceLogin.php:227 +#: ../templates/selfService/selfServiceLogin.php:366 +#: ../templates/selfService/adminLogin.php:64 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:530 ../help/help.inc:56 +msgid "Login" +msgstr "ログイン" + +#: ../templates/selfService/adminMain.php:500 ../help/help.inc:224 +msgid "Login attribute label" +msgstr "ログイン属性ラベル" + +#: ../templates/selfService/adminMain.php:509 ../help/help.inc:226 +msgid "Login caption" +msgstr "ログインの説明文" + +#: ../templates/config/confmain.php:417 ../help/help.inc:120 +msgid "Login method" +msgstr "ログイン方法" + +#: ../lib/types/user.inc:99 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:324 ../lib/modules/posixAccount.inc:417 +#: ../lib/modules/posixAccount.inc:530 ../lib/modules/posixAccount.inc:1492 +#: ../lib/modules/posixAccount.inc:1757 ../lib/modules/posixAccount.inc:1855 +#: ../lib/modules/posixAccount.inc:2564 +msgid "Login shell" +msgstr "ログインシェル" + +#: ../lib/modules/posixAccount.inc:193 ../lib/modules/posixAccount.inc:248 +#: ../lib/modules/posixAccount.inc:493 +msgid "Login shells" +msgstr "ログインシェル" + +#: ../templates/pdfedit/pdfpage.php:453 +msgid "Logo" +msgstr "ロゴ" + +#: ../lib/pdfstruct.inc:300 +msgid "Logo file deleted." +msgstr "ロゴファイルが削除されました。" + +#: ../lib/pdfstruct.inc:292 +#, php-format +msgid "Logo is still in use by PDF structure \"%s\" in account type \"%s\"." +msgstr "ロゴはPDF構造 \"%s\" (アカウント・タイプ \"%s\")の中で使用中です。" + +#: ../lib/modules/sambaDomain.inc:109 ../lib/modules/sambaDomain.inc:192 +#: ../lib/modules/sambaDomain.inc:290 ../lib/modules/sambaDomain.inc:616 +msgid "Logon for password change" +msgstr "パスワード変更のためにログオン" + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:339 +#: ../lib/modules/sambaSamAccount.inc:342 +#: ../lib/modules/sambaSamAccount.inc:526 +#: ../lib/modules/sambaSamAccount.inc:606 +#: ../lib/modules/sambaSamAccount.inc:1284 +#: ../lib/modules/sambaSamAccount.inc:1786 +msgid "Logon hours" +msgstr "ログオン時間" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:223 +#: ../lib/modules/sambaSamAccount.inc:311 +#: ../lib/modules/sambaSamAccount.inc:510 +#: ../lib/modules/sambaSamAccount.inc:600 +#: ../lib/modules/sambaSamAccount.inc:1237 +#: ../lib/modules/sambaSamAccount.inc:1762 +#: ../lib/modules/sambaSamAccount.inc:1902 ../lib/modules/windowsUser.inc:209 +#: ../lib/modules/windowsUser.inc:424 ../lib/modules/windowsUser.inc:477 +#: ../lib/modules/windowsUser.inc:521 ../lib/modules/windowsUser.inc:613 +#: ../lib/modules/windowsUser.inc:756 ../lib/modules/windowsUser.inc:1628 +msgid "Logon script" +msgstr "ログオンスクリプト" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:102 ../lib/modules/windowsUser.inc:613 +#: ../lib/modules/windowsUser.inc:614 +msgid "Logon script is invalid!" +msgstr "ログオンスクリプトが無効です!" + +#: ../templates/selfService/selfServiceMain.php:63 +#: ../templates/selfService/selfServiceMain.php:419 +#: ../templates/main_header.php:135 +msgid "Logout" +msgstr "ログアウト" + +#: ../lib/modules/dhcp_settings.inc:98 +msgid "M-Node (0x04)" +msgstr "M-Node (0x04)" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ieee802device.inc:58 +#: ../lib/modules/ieee802device.inc:68 ../lib/modules/ieee802device.inc:79 +#: ../lib/modules/ieee802device.inc:106 ../lib/modules/fixed_ip.inc:102 +#: ../lib/modules/fixed_ip.inc:429 ../lib/modules/fixed_ip.inc:742 +msgid "MAC address" +msgstr "MACアドレス" + +#: ../lib/modules/ieee802device.inc:72 +msgid "MAC address list" +msgstr "MACアドレス一覧" + +#: ../lib/modules/ieee802device.inc:86 ../lib/modules/ieee802device.inc:162 +msgid "MAC addresses" +msgstr "MACアドレス" + +#: ../lib/modules/mitKerberos.inc:268 +msgid "MIT Kerberos password change command" +msgstr "MIT Kerberosパスワード変更コマンド" + +#: ../lib/modules/bindDLZ.inc:103 ../lib/modules/bindDLZ.inc:274 +#: ../lib/modules/bindDLZ.inc:280 ../lib/modules/bindDLZ.inc:287 +#: ../lib/modules/bindDLZ.inc:476 ../lib/modules/bindDLZ.inc:495 +msgid "MX record" +msgstr "MX レコード" + +#: ../lib/modules/bindDLZ.inc:414 ../lib/modules/bindDLZ.inc:433 +#: ../lib/modules/bindDLZ.inc:1509 +msgid "MX records" +msgstr "MX レコード" + +#: ../lib/modules/sambaSamAccount.inc:575 +msgid "Magadan, Solomon Islands" +msgstr "Magadan, Solomon Islands" + +#: ../lib/types/mailAlias.inc:53 ../lib/modules/nisMailAliasUser.inc:70 +#: ../lib/modules/nisMailAlias.inc:69 +msgid "Mail aliases" +msgstr "電子メール エイリアス" + +#: ../lib/modules/imapAccess.inc:100 ../lib/modules/imapAccess.inc:140 +msgid "Mail domains" +msgstr "メール・ドメイン" + +#: ../lib/modules/inetLocalMailRecipient.inc:58 +msgid "Mail routing" +msgstr "メール転送" + +#: ../lib/modules/selfRegistration.inc:615 +#: ../lib/modules/selfRegistration.inc:635 +#: ../lib/modules/passwordSelfReset.inc:1546 +#: ../lib/modules/passwordSelfReset.inc:1561 +#: ../lib/modules/passwordSelfReset.inc:1594 +msgid "Mail sending failed." +msgstr "メール送信に失敗しました。" + +#: ../lib/modules/bindDLZ.inc:132 ../lib/modules/bindDLZ.inc:136 +#: ../lib/modules/bindDLZ.inc:274 ../lib/modules/bindDLZ.inc:493 +#: ../lib/modules/bindDLZ.inc:910 ../lib/modules/bindDLZ.inc:1512 +#: ../lib/modules/kolabUser.inc:98 ../lib/modules/kolabSharedFolder.inc:98 +#: ../lib/modules/inetLocalMailRecipient.inc:80 +#: ../lib/modules/inetLocalMailRecipient.inc:85 +#: ../lib/modules/inetLocalMailRecipient.inc:112 +#: ../lib/modules/inetLocalMailRecipient.inc:121 +#: ../lib/modules/inetLocalMailRecipient.inc:148 +#: ../lib/modules/inetLocalMailRecipient.inc:294 +msgid "Mail server" +msgstr "メールサーバ" + +#: ../lib/modules/bindDLZ.inc:907 +msgid "Mail servers (\"MX\" records)" +msgstr "メール・サーバー (\"MX\" レコード)" + +#: ../lib/account.inc:1031 +#, php-format +msgid "Mail successfully sent to %s." +msgstr "%s へ正常にメールを送信しました。" + +#: ../lib/modules/asteriskAccount.inc:159 +#: ../lib/modules/asteriskAccount.inc:278 +#: ../lib/modules/asteriskAccount.inc:399 +#: ../lib/modules/asteriskAccount.inc:657 +#: ../lib/modules/asteriskAccount.inc:994 +#: ../lib/modules/asteriskAccount.inc:1257 +#: ../lib/modules/asteriskVoicemail.inc:95 +#: ../lib/modules/asteriskVoicemail.inc:138 +#: ../lib/modules/asteriskVoicemail.inc:158 +#: ../lib/modules/asteriskVoicemail.inc:245 +#: ../lib/modules/asteriskVoicemail.inc:369 ../lib/modules/imapAccess.inc:63 +#: ../lib/modules/imapAccess.inc:106 ../lib/modules/imapAccess.inc:243 +msgid "Mailbox" +msgstr "メールボックス" + +#: ../lib/modules/imapAccess.inc:252 +msgid "Mailbox already exists on IMAP server." +msgstr "IMAPサーバー上のメールボックスが既に存在します。" + +#: ../lib/modules/imapAccess.inc:259 +msgid "Mailbox does not exist on IMAP server." +msgstr "IMAPサーバー上にメールボックスが存在しません。" + +#: ../lib/modules/kolabUser.inc:148 ../lib/modules/kolabUser.inc:192 +#: ../lib/modules/kolabUser.inc:231 ../lib/modules/kolabUser.inc:297 +#: ../lib/modules/kolabUser.inc:300 ../lib/modules/kolabUser.inc:745 +#: ../lib/modules/kolabSharedFolder.inc:154 +#: ../lib/modules/kolabSharedFolder.inc:188 +#: ../lib/modules/kolabSharedFolder.inc:238 +#: ../lib/modules/kolabSharedFolder.inc:284 +#: ../lib/modules/kolabSharedFolder.inc:287 +#: ../lib/modules/kolabSharedFolder.inc:559 +msgid "Mailbox home server" +msgstr "メールボックス・ホーム・サーバ" + +#: ../lib/modules/kolabUser.inc:251 +msgid "Mailbox home server name is empty!" +msgstr "メールボックス・ホーム・サーバ名が空です。" + +#: ../lib/modules/kolabUser.inc:249 ../lib/modules/kolabUser.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:257 +#: ../lib/modules/kolabSharedFolder.inc:258 +msgid "Mailbox home server name is invalid!" +msgstr "メールボックス・ホーム・サーバ名が無効です!" + +#: ../lib/modules/kolabUser.inc:99 ../lib/modules/kolabUser.inc:174 +#: ../lib/modules/kolabUser.inc:199 ../lib/modules/kolabUser.inc:232 +#: ../lib/modules/kolabUser.inc:257 ../lib/modules/kolabUser.inc:310 +#: ../lib/modules/kolabUser.inc:772 +msgid "Mailbox quota" +msgstr "メールボックス・クオータ" + +#: ../lib/types/mailAlias.inc:62 +msgid "Mailing aliases (e.g. NIS mail aliases)" +msgstr "電子メールエイリアス(e.g. NIS mail aliases)" + +#: ../lib/modules/nisMailAlias.inc:82 +msgid "Mails to this name are forwarded to the recipients." +msgstr "この名前へのメールは受信者に転送されます。" + +#: ../templates/pdfedit/pdfpage.php:367 ../templates/pdfedit/pdfpage.php:678 +msgid "Main" +msgstr "メイン" + +#: ../templates/selfService/adminMain.php:515 ../help/help.inc:228 +msgid "Main page caption" +msgstr "メインページの説明文" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:79 +msgid "Make sure your filter (above) will select all child records." +msgstr "(上の)フィルタが全ての子レコードを選択する事を確認してください。" + +#: ../lib/modules/inetOrgPerson.inc:1516 +msgid "Manage" +msgstr "管理" + +#: ../templates/pdfedit/pdfmain.php:190 +msgid "Manage existing PDF structures" +msgstr "PDF構成の管理" + +#: ../templates/profedit/profilemain.php:175 +msgid "Manage existing profiles" +msgstr "サーバープロファイルの管理" + +#: ../templates/pdfedit/pdfmain.php:232 +msgid "Manage logos" +msgstr "ロゴの管理" + +#: ../lib/modules/kolabUser.inc:112 ../lib/modules/kolabUser.inc:170 +msgid "Manage object class \"mailrecipient\"" +msgstr "オブジェクト・クラス \"mailrecipient\" の管理" + +#: ../lib/modules/sambaSamAccount.inc:1224 +msgid "Manage profile directory" +msgstr "プロファイル・ディレクトリを管理" + +#: ../templates/selfService/adminLogin.php:182 +msgid "Manage self service profiles" +msgstr "セルフサービスプロファイルの操作" + +#: ../templates/config/conflogin.php:192 +msgid "Manage server profiles" +msgstr "サーバープロファイルの操作" + +#: ../lib/modules/windowsHost.inc:86 ../lib/modules/windowsHost.inc:112 +#: ../lib/modules/windowsHost.inc:122 ../lib/modules/windowsHost.inc:146 +#: ../lib/modules/windowsHost.inc:295 ../lib/modules/windowsGroup.inc:146 +#: ../lib/modules/windowsGroup.inc:167 ../lib/modules/windowsGroup.inc:227 +#: ../lib/modules/windowsGroup.inc:268 ../lib/modules/windowsGroup.inc:352 +#: ../lib/modules/windowsGroup.inc:781 +msgid "Managed by" +msgstr "管理者名" + +#: ../templates/serverInfo.php:105 +msgid "Managed suffixes" +msgstr "管理対象サフィックス" + +#: ../lib/modules/ipHost.inc:77 ../lib/modules/ipHost.inc:97 +#: ../lib/modules/ipHost.inc:106 ../lib/modules/ipHost.inc:154 +#: ../lib/modules/ipHost.inc:253 ../lib/modules/inetOrgPerson.inc:361 +#: ../lib/modules/inetOrgPerson.inc:605 ../lib/modules/inetOrgPerson.inc:656 +#: ../lib/modules/inetOrgPerson.inc:660 ../lib/modules/inetOrgPerson.inc:1528 +#: ../lib/modules/inetOrgPerson.inc:1894 ../lib/modules/inetOrgPerson.inc:3549 +#: ../lib/modules/inetOrgPerson.inc:3587 +msgid "Manager" +msgstr "管理者" + +#: ../lib/tools/ouEditor.inc:53 +msgid "Manages OU objects in your LDAP tree." +msgstr "LDAPツリーのOUオブジェクトを管理します。" + +#: ../lib/modules/kolabUser.inc:52 +msgid "Manual" +msgstr "手動" + +#: ../lib/modules/kolabUser.inc:54 +msgid "Manual if conflicts" +msgstr "競合した場合は手動" + +#: ../lib/modules/customScripts.inc:172 +msgid "Manual scripts" +msgstr "手動スクリプト" + +#: ../lib/types/nisObjectType.inc:78 ../lib/modules/nisObject.inc:65 +#: ../lib/modules/nisObject.inc:96 ../lib/modules/nisObject.inc:112 +#: ../lib/modules/nisObject.inc:123 ../lib/modules/nisObject.inc:149 +#: ../lib/modules/nisObject.inc:210 +msgid "Mapping entry" +msgstr "マッピング・エントリ" + +#: ../lib/modules/nisObject.inc:123 ../lib/modules/nisObject.inc:124 +msgid "" +"Mapping entry contains invalid characters. Only ASCII characters are allowed." +msgstr "" +"マッピング・エントリに無効な文字が含まれています。ASCII文字のみが有効です。" + +#: ../lib/types/nisObjectType.inc:79 ../lib/modules/nisObject.inc:69 +#: ../lib/modules/nisObject.inc:89 ../lib/modules/nisObject.inc:113 +#: ../lib/modules/nisObject.inc:143 ../lib/modules/nisObject.inc:211 +msgid "Mapping name" +msgstr "マッピング名" + +#: ../lib/modules/kolabGroup.inc:213 ../lib/modules/kolabGroup.inc:293 +#: ../lib/modules/kolabUser.inc:388 ../lib/modules/kolabUser.inc:519 +#: ../lib/modules/kolabSharedFolder.inc:345 +#: ../lib/modules/kolabSharedFolder.inc:433 +msgid "Mark account for deletion" +msgstr "アカウントを削除対象としてマークする" + +#: ../lib/modules/kolabGroup.inc:113 ../lib/modules/kolabUser.inc:178 +#: ../lib/modules/kolabSharedFolder.inc:166 +msgid "Mark for deletion" +msgstr "削除対象としてマーク" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:44 +msgid "Mass delete" +msgstr "Mass delete" + +#: ../templates/config/profmanage.php:311 +#: ../templates/config/mainlogin.php:158 +#: ../templates/selfService/profManage.php:247 +#: ../templates/pdfedit/pdfmain.php:290 ../templates/pdfedit/pdfmain.php:337 +#: ../templates/profedit/profilemain.php:257 +#: ../templates/profedit/profilemain.php:305 ../help/help.inc:142 +msgid "Master password" +msgstr "マスタパスワード" + +#: ../templates/config/profmanage.php:54 +#: ../templates/selfService/profManage.php:40 +#: ../templates/pdfedit/pdfmain.php:106 ../templates/pdfedit/pdfmain.php:114 +#: ../templates/profedit/profilemain.php:121 +#: ../templates/profedit/profilemain.php:129 +msgid "Master password is wrong!" +msgstr "マスタパスワードが正しくありません!" + +#: ../templates/config/mainmanage.php:82 +msgid "Master passwords are different or empty!" +msgstr "マスタパスワードが異なっているか、または空です!" + +#: ../templates/schema/schema.php:268 +msgid "Matching rule OID" +msgstr "照合規則のOID" + +#: ../templates/schema/schema.php:77 ../templates/schema/schema.php:78 +msgid "Matching rules" +msgstr "照合規則" + +#: ../templates/serverInfo.php:173 +msgid "Max. file descriptors" +msgstr "最大のファイルディスクリプタ" + +#: ../lib/modules/posixGroup.inc:410 ../lib/modules/posixGroup.inc:604 +#: ../lib/modules/posixGroup.inc:605 +msgid "Maximum GID number" +msgstr "GID番号の最大値" + +#: ../lib/modules/posixGroup.inc:604 +msgid "Maximum GID number is invalid or empty!" +msgstr "GID番号の最大値が無効または未入力です!" + +#: ../lib/modules/posixGroup.inc:605 +msgid "Maximum GID number must be greater than minimum GID number!" +msgstr "GID番号の最大値は最小値よりも大きくなくてはなりません。" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:221 ../lib/modules/posixAccount.inc:239 +msgid "Maximum UID number" +msgstr "UID番号の最大値" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +msgid "Maximum UID number is invalid!" +msgstr "UID番号の最大値が無効です!" + +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +msgid "Maximum UID number must be greater than minimum UID number!" +msgstr "UID番号の最大値は最小値よりも大きくなくてはなりません!" + +#: ../lib/types/ppolicyType.inc:84 ../lib/modules/ppolicy.inc:108 +#: ../lib/modules/ppolicy.inc:152 ../lib/modules/ppolicy.inc:172 +#: ../lib/modules/ppolicy.inc:272 ../lib/modules/ppolicy.inc:477 +msgid "Maximum failure count" +msgstr "最大試行回数" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:128 +#: ../templates/3rdParty/pla/htdocs/import_form.php:36 +#: ../lib/modules/customFields.inc:156 ../lib/modules/customFields.inc:3299 +msgid "Maximum file size" +msgstr "最大ファイルサイズ" + +#: ../lib/modules/inetOrgPerson.inc:3614 +msgid "Maximum file size (kB)" +msgstr "最大ファイルサイズ (kB)" + +#: ../lib/modules/customFields.inc:3331 +msgid "Maximum file size must be a number. Please enter 0 for no limit." +msgstr "" +"最大ファイルサイズは数字でなくてはなりません。無制限の場合は 0 を入力してくだ" +"さい。" + +#: ../lib/modules/inetOrgPerson.inc:3613 +msgid "Maximum height (px)" +msgstr "最大高 (px)" + +#: ../lib/types/pykotaPrinterType.inc:95 ../lib/modules/pykotaPrinter.inc:103 +#: ../lib/modules/pykotaPrinter.inc:135 ../lib/modules/pykotaPrinter.inc:159 +#: ../lib/modules/pykotaPrinter.inc:195 ../lib/modules/pykotaPrinter.inc:213 +#: ../lib/modules/pykotaPrinter.inc:233 ../lib/modules/pykotaPrinter.inc:586 +msgid "Maximum job size" +msgstr "最大ジョブサイズ" + +#: ../lib/modules/dhcp_settings.inc:157 ../lib/modules/dhcp_settings.inc:210 +#: ../lib/modules/dhcp_settings.inc:225 ../lib/modules/dhcp_settings.inc:262 +#: ../lib/modules/dhcp_settings.inc:573 ../lib/modules/dhcp_settings.inc:676 +msgid "Maximum lease time" +msgstr "最長リース期間" + +#: ../templates/schema/schema.php:214 +msgid "Maximum length" +msgstr "最大長" + +#: ../lib/lists.inc:1011 ../help/help.inc:97 +msgid "Maximum list entries" +msgstr "リストエントリの最大数" + +#: ../lib/modules/asteriskAccount.inc:196 +msgid "" +"Maximum number of seconds of inactivity before terminating a call on hold." +msgstr "保留した通話が非アクティブになってから切断されるまでの最大秒数。" + +#: ../lib/types/ppolicyType.inc:79 ../lib/modules/shadowAccount.inc:59 +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/shadowAccount.inc:123 +#: ../lib/modules/shadowAccount.inc:172 ../lib/modules/shadowAccount.inc:189 +#: ../lib/modules/shadowAccount.inc:227 ../lib/modules/shadowAccount.inc:340 +#: ../lib/modules/shadowAccount.inc:504 ../lib/modules/ppolicy.inc:88 +#: ../lib/modules/ppolicy.inc:144 ../lib/modules/ppolicy.inc:167 +#: ../lib/modules/ppolicy.inc:168 ../lib/modules/ppolicy.inc:206 +#: ../lib/modules/ppolicy.inc:473 ../lib/modules/sambaDomain.inc:129 +#: ../lib/modules/sambaDomain.inc:197 ../lib/modules/sambaDomain.inc:220 +#: ../lib/modules/sambaDomain.inc:222 ../lib/modules/sambaDomain.inc:332 +#: ../lib/modules/sambaDomain.inc:609 +msgid "Maximum password age" +msgstr "パスワード期限(age)の最大値" + +#: ../lib/modules/inetOrgPerson.inc:3612 +msgid "Maximum width (px)" +msgstr "最大幅 (px)" + +#: ../lib/modules/qmailGroup.inc:80 ../lib/modules/qmailGroup.inc:204 +#: ../lib/modules/qmailGroup.inc:208 ../lib/modules/qmailGroup.inc:337 +#: ../lib/modules/qmailGroup.inc:402 ../lib/modules/qmailGroup.inc:425 +#: ../lib/modules/qmailGroup.inc:514 ../lib/modules/qmailGroup.inc:1063 +msgid "Member email addresses" +msgstr "メンバーのEメールアドレス。" + +#: ../lib/modules/qmailGroup.inc:78 ../lib/modules/qmailGroup.inc:156 +#: ../lib/modules/qmailGroup.inc:160 ../lib/modules/qmailGroup.inc:279 +#: ../lib/modules/qmailGroup.inc:381 ../lib/modules/qmailGroup.inc:516 +#: ../lib/modules/qmailGroup.inc:783 ../lib/modules/qmailGroup.inc:1062 +msgid "Member entries" +msgstr "メンバーのエントリ" + +#: ../lib/modules/qmailGroup.inc:82 ../lib/modules/qmailGroup.inc:180 +#: ../lib/modules/qmailGroup.inc:184 ../lib/modules/qmailGroup.inc:303 +#: ../lib/modules/qmailGroup.inc:390 ../lib/modules/qmailGroup.inc:515 +#: ../lib/modules/qmailGroup.inc:1064 +msgid "Member filter" +msgstr "メンバー・フィルタ" + +#: ../lib/types/netgroup.inc:94 ../lib/modules/nisnetgroup.inc:95 +#: ../lib/modules/nisnetgroup.inc:99 ../lib/modules/nisnetgroup.inc:132 +#: ../lib/modules/nisnetgroup.inc:142 ../lib/modules/nisnetgroup.inc:286 +#: ../lib/modules/nisnetgroup.inc:583 ../lib/modules/organizationalRole.inc:93 +#: ../lib/modules/organizationalRole.inc:97 +#: ../lib/modules/organizationalRole.inc:130 +#: ../lib/modules/organizationalRole.inc:138 +#: ../lib/modules/organizationalRole.inc:193 +#: ../lib/modules/organizationalRole.inc:341 +#: ../lib/modules/organizationalRole.inc:461 +#: ../lib/modules/windowsGroup.inc:130 ../lib/modules/windowsGroup.inc:134 +#: ../lib/modules/windowsGroup.inc:211 ../lib/modules/windowsGroup.inc:260 +#: ../lib/modules/windowsGroup.inc:790 ../lib/modules/groupOfNames.inc:101 +#: ../lib/modules/groupOfNames.inc:105 ../lib/modules/groupOfNames.inc:151 +#: ../lib/modules/groupOfNames.inc:159 ../lib/modules/groupOfNames.inc:168 +#: ../lib/modules/groupOfNames.inc:247 ../lib/modules/groupOfNames.inc:553 +#: ../lib/modules/groupOfNames.inc:714 +msgid "Members" +msgstr "メンバー" + +#: ../lib/modules/groupOfNames.inc:109 ../lib/modules/groupOfNames.inc:179 +msgid "Members are optional" +msgstr "メンバーは任意" + +#: ../lib/modules/qmailGroup.inc:94 ../lib/modules/qmailGroup.inc:196 +#: ../lib/modules/qmailGroup.inc:319 ../lib/modules/qmailGroup.inc:396 +#: ../lib/modules/qmailGroup.inc:617 ../lib/modules/qmailGroup.inc:1075 +msgid "Members only" +msgstr "メンバーのみ" + +#: ../lib/modules/qmailUser.inc:108 ../lib/modules/qmailUser.inc:143 +#: ../lib/modules/qmailUser.inc:223 ../lib/modules/qmailUser.inc:316 +#: ../lib/modules/qmailUser.inc:412 ../lib/modules/qmailUser.inc:686 +#: ../lib/modules/qmailUser.inc:1145 +msgid "Message count limit" +msgstr "メッセージ数の制限" + +#: ../lib/modules/qmailUser.inc:110 ../lib/modules/qmailUser.inc:153 +#: ../lib/modules/qmailUser.inc:227 ../lib/modules/qmailUser.inc:324 +#: ../lib/modules/qmailUser.inc:415 ../lib/modules/qmailUser.inc:697 +#: ../lib/modules/qmailUser.inc:1146 +msgid "Message size limit" +msgstr "メッセージ・サイズの制限" + +#: ../lib/modules/qmailUser.inc:120 ../lib/modules/qmailUser.inc:171 +#: ../lib/modules/qmailUser.inc:247 ../lib/modules/qmailUser.inc:366 +#: ../lib/modules/qmailUser.inc:430 ../lib/modules/qmailUser.inc:601 +#: ../lib/modules/qmailUser.inc:1149 ../lib/modules/qmailGroup.inc:139 +#: ../lib/modules/qmailGroup.inc:254 ../lib/modules/qmailGroup.inc:372 +#: ../lib/modules/qmailGroup.inc:508 ../lib/modules/qmailGroup.inc:1058 +msgid "Message store" +msgstr "メッセージ・ストア" + +#: ../lib/modules/sambaSamAccount.inc:562 +msgid "Mid-Atlantic" +msgstr "Mid-Atlantic" + +#: ../lib/modules/sambaSamAccount.inc:553 +msgid "Midway Island, Samoa" +msgstr "Midway Island, Samoa" + +#: ../lib/modules/windowsUser.inc:286 ../lib/modules/inetOrgPerson.inc:314 +msgid "Miller" +msgstr "ミラー" + +#: ../lib/modules/sambaDomain.inc:101 ../lib/modules/sambaDomain.inc:190 +#: ../lib/modules/sambaDomain.inc:276 ../lib/modules/sambaDomain.inc:605 +msgid "Minimal password length" +msgstr "パスワード長さの最小値" + +#: ../lib/modules/posixGroup.inc:407 ../lib/modules/posixGroup.inc:603 +msgid "Minimum GID number" +msgstr "GID番号の最小値" + +#: ../lib/modules/posixGroup.inc:603 +msgid "Minimum GID number is invalid or empty!" +msgstr "GID番号の最小値が無効または空です!" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:218 ../lib/modules/posixAccount.inc:236 +msgid "Minimum UID number" +msgstr "UID番号の最小値" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +msgid "Minimum UID number is invalid!" +msgstr "UID番号の最小値が不正です!" + +#: ../lib/modules/passwordSelfReset.inc:92 +#: ../lib/modules/passwordSelfReset.inc:514 +msgid "Minimum answer length" +msgstr "回答長の最小値" + +#: ../templates/config/mainmanage.php:392 +msgid "Minimum character classes" +msgstr "要求文字クラス" + +#: ../templates/config/mainmanage.php:388 +msgid "Minimum lowercase characters" +msgstr "小文字の要求文字数" + +#: ../templates/config/mainmanage.php:390 +msgid "Minimum numeric characters" +msgstr "数字の要求文字数" + +#: ../lib/types/ppolicyType.inc:78 ../lib/modules/shadowAccount.inc:57 +#: ../lib/modules/shadowAccount.inc:118 ../lib/modules/shadowAccount.inc:171 +#: ../lib/modules/shadowAccount.inc:185 ../lib/modules/shadowAccount.inc:221 +#: ../lib/modules/shadowAccount.inc:332 ../lib/modules/shadowAccount.inc:503 +#: ../lib/modules/ppolicy.inc:84 ../lib/modules/ppolicy.inc:143 +#: ../lib/modules/ppolicy.inc:166 ../lib/modules/ppolicy.inc:198 +#: ../lib/modules/ppolicy.inc:472 ../lib/modules/sambaDomain.inc:125 +#: ../lib/modules/sambaDomain.inc:196 ../lib/modules/sambaDomain.inc:221 +#: ../lib/modules/sambaDomain.inc:324 ../lib/modules/sambaDomain.inc:608 +msgid "Minimum password age" +msgstr "パスワード期限(age)の最小値" + +#: ../templates/config/mainmanage.php:386 ../lib/types/ppolicyType.inc:87 +#: ../lib/modules/ppolicy.inc:120 ../lib/modules/ppolicy.inc:147 +#: ../lib/modules/ppolicy.inc:175 ../lib/modules/ppolicy.inc:250 +#: ../lib/modules/ppolicy.inc:480 +msgid "Minimum password length" +msgstr "パスワード長さの最小値" + +#: ../templates/config/mainmanage.php:391 +msgid "Minimum symbolic characters" +msgstr "記号の要求文字数" + +#: ../lib/modules/bindDLZ.inc:216 ../lib/modules/bindDLZ.inc:319 +#: ../lib/modules/bindDLZ.inc:420 ../lib/modules/bindDLZ.inc:518 +#: ../lib/modules/bindDLZ.inc:1023 ../lib/modules/bindDLZ.inc:1545 +msgid "Minimum time" +msgstr "最小の時間" + +#: ../templates/config/mainmanage.php:389 +msgid "Minimum uppercase characters" +msgstr "大文字の要求文字数" + +#: ../templates/3rdParty/pla/lib/import_functions.php:429 +msgid "Missing attributes for" +msgstr "属性がありません" + +#: ../templates/3rdParty/pla/lib/import_functions.php:443 +msgid "Missing modify command add, delete or replace" +msgstr "編集コマンド(追加、削除または置換)がありません。" + +#: ../lib/types/user.inc:207 ../lib/modules/inetOrgPerson.inc:74 +#: ../lib/modules/inetOrgPerson.inc:157 ../lib/modules/inetOrgPerson.inc:433 +#: ../lib/modules/inetOrgPerson.inc:578 ../lib/modules/inetOrgPerson.inc:704 +#: ../lib/modules/inetOrgPerson.inc:708 ../lib/modules/inetOrgPerson.inc:1398 +#: ../lib/modules/inetOrgPerson.inc:1401 ../lib/modules/inetOrgPerson.inc:1902 +#: ../lib/modules/inetOrgPerson.inc:3533 ../lib/modules/inetOrgPerson.inc:3583 +msgid "Mobile number" +msgstr "携帯電話番号" + +#: ../lib/modules/inetOrgPerson.inc:2500 +msgid "Mobile telephone number" +msgstr "携帯電話番号" + +#: ../lib/modules/qmailGroup.inc:86 ../lib/modules/qmailGroup.inc:212 +#: ../lib/modules/qmailGroup.inc:216 ../lib/modules/qmailGroup.inc:345 +#: ../lib/modules/qmailGroup.inc:405 ../lib/modules/qmailGroup.inc:427 +#: ../lib/modules/qmailGroup.inc:517 ../lib/modules/qmailGroup.inc:1066 +msgid "Moderator email addresses" +msgstr "モデレーターのEメールアドレス。" + +#: ../lib/modules/qmailGroup.inc:84 ../lib/modules/qmailGroup.inc:164 +#: ../lib/modules/qmailGroup.inc:168 ../lib/modules/qmailGroup.inc:287 +#: ../lib/modules/qmailGroup.inc:384 ../lib/modules/qmailGroup.inc:518 +#: ../lib/modules/qmailGroup.inc:786 ../lib/modules/qmailGroup.inc:1065 +msgid "Moderator entries" +msgstr "モデレーター・エントリ" + +#: ../lib/modules/qmailGroup.inc:76 ../lib/modules/qmailGroup.inc:106 +#: ../lib/modules/qmailGroup.inc:200 ../lib/modules/qmailGroup.inc:329 +#: ../lib/modules/qmailGroup.inc:399 ../lib/modules/qmailGroup.inc:603 +#: ../lib/modules/qmailGroup.inc:1061 +msgid "Moderator text" +msgstr "モデレータ文字列" + +#: ../lib/modules/qmailGroup.inc:201 +msgid "" +"Moderator text that is used to specify an own approval text used if the list " +"is moderated. The usual %HEADER% magic of qmail-reply etc. can be used here." +msgstr "" +"モデレートを使用しているリストで、独自の承認テキストを指定する場合の承認文" +"章。ここでは、qmail-reply等の通常の %HEADER% マジックを使う事が出来ます。" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:61 +msgid "Modification not successful!" +msgstr "変更は完了していません!" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:59 +msgid "Modification successful!" +msgstr "変更が完了しました!" + +#: ../lib/modules/generalInformation.inc:92 +msgid "Modification time" +msgstr "変更時刻" + +#: ../lib/modules/generalInformation.inc:88 +msgid "Modified by" +msgstr "編集者" + +#: ../templates/serverInfo.php:314 ../templates/serverInfo.php:387 +#: ../templates/multiEdit.php:126 +msgid "Modify" +msgstr "変更" + +#: ../templates/serverInfo.php:328 ../templates/serverInfo.php:393 +msgid "Modify RDN" +msgstr "RDNの変更" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:57 +msgid "Modify group" +msgstr "グループの変更" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2110 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2111 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2114 +msgid "Modify group members" +msgstr "グループメンバの変更" + +#: ../templates/3rdParty/pla/htdocs/import.php:32 +msgid "Modifying" +msgstr "変更中" + +#: ../templates/config/confmodules.php:176 +#: ../templates/config/confmain.php:217 +#: ../templates/config/moduleSettings.php:175 +#: ../templates/config/conftypes.php:194 +#: ../templates/selfService/adminMain.php:435 +msgid "Module settings" +msgstr "モジュール設定" + +#: ../templates/config/confmodules.php:172 +#: ../templates/config/confmain.php:213 +#: ../templates/config/moduleSettings.php:171 +#: ../templates/config/conftypes.php:190 +msgid "Modules" +msgstr "モジュール" + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Monday" +msgstr "月曜日" + +#: ../lib/modules/sambaSamAccount.inc:557 +msgid "Mountain Time (US & Canada)" +msgstr "Mountain Time (US & Canada)" + +#: ../lib/modules/quota.inc:105 ../lib/modules/quota.inc:399 +#: ../lib/modules/quota.inc:506 ../lib/modules/quota.inc:633 +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:122 +#: ../lib/modules/systemQuotas.inc:382 +msgid "Mountpoint" +msgstr "マウントポイント" + +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:98 +msgid "Mountpoint contains invalid characters." +msgstr "マウント・ポイントが無効な文字を含んでいます。" + +#: ../lib/modules/quota.inc:106 +msgid "Mountpoint of device with enabled quotas." +msgstr "quotaが有効になったデバイスのマウントポイント。" + +#: ../lib/modules/customFields.inc:636 +msgid "Move down" +msgstr "下へ移動" + +#: ../lib/modules/customFields.inc:630 +msgid "Move up" +msgstr "上へ移動" + +#: ../templates/multiEdit.php:78 ../lib/tools/multiEdit.inc:44 +msgid "Multi edit" +msgstr "複数編集" + +#: ../lib/modules/customFields.inc:1910 ../lib/modules/customFields.inc:3304 +msgid "Multi value" +msgstr "複数の値" + +#: ../lib/modules/customFields.inc:3162 +msgid "Multi-select fields must not contain empty values." +msgstr "複数選択フィールドは空欄であってはなりません。" + +#: ../lib/modules/pykotaPrinter.inc:125 +#: ../lib/modules/zarafaDynamicGroup.inc:76 ../lib/modules/zarafaGroup.inc:78 +#: ../lib/modules/eduPerson.inc:98 ../lib/modules/eduPerson.inc:111 +#: ../lib/modules/eduPerson.inc:123 ../lib/modules/eduPerson.inc:139 +#: ../lib/modules/eduPerson.inc:147 ../lib/modules/zarafaUser.inc:164 +#: ../lib/modules/sudoRole.inc:100 ../lib/modules/sudoRole.inc:105 +#: ../lib/modules/sudoRole.inc:110 ../lib/modules/sudoRole.inc:115 +#: ../lib/modules/sudoRole.inc:120 ../lib/modules/sudoRole.inc:125 +msgid "Multiple values are separated by comma." +msgstr "複数の値はカンマによって区切られます。" + +#: ../lib/modules/kolabGroup.inc:92 ../lib/modules/kolabGroup.inc:101 +#: ../lib/modules/kolabGroup.inc:110 ../lib/modules/nisMailAliasUser.inc:81 +#: ../lib/modules/nisMailAliasUser.inc:89 ../lib/modules/puppetClient.inc:85 +#: ../lib/modules/puppetClient.inc:97 ../lib/modules/puppetClient.inc:105 +#: ../lib/modules/device.inc:74 ../lib/modules/bindDLZ.inc:91 +#: ../lib/modules/bindDLZ.inc:100 ../lib/modules/bindDLZ.inc:105 +#: ../lib/modules/bindDLZ.inc:110 ../lib/modules/bindDLZ.inc:115 +#: ../lib/modules/bindDLZ.inc:120 ../lib/modules/bindDLZ.inc:125 +#: ../lib/modules/bindDLZ.inc:137 ../lib/modules/bindDLZ.inc:145 +#: ../lib/modules/bindDLZ.inc:153 ../lib/modules/bindDLZ.inc:161 +#: ../lib/modules/bindDLZ.inc:169 ../lib/modules/bindDLZ.inc:177 +#: ../lib/modules/bindDLZ.inc:185 ../lib/modules/bindDLZ.inc:193 +#: ../lib/modules/bindDLZ.inc:201 ../lib/modules/windowsUser.inc:149 +#: ../lib/modules/windowsUser.inc:185 ../lib/modules/windowsUser.inc:221 +#: ../lib/modules/windowsUser.inc:232 ../lib/modules/kolabUser.inc:158 +#: ../lib/modules/kolabUser.inc:167 ../lib/modules/inetOrgPerson.inc:641 +#: ../lib/modules/inetOrgPerson.inc:661 ../lib/modules/inetOrgPerson.inc:669 +#: ../lib/modules/inetOrgPerson.inc:677 ../lib/modules/inetOrgPerson.inc:685 +#: ../lib/modules/inetOrgPerson.inc:701 ../lib/modules/inetOrgPerson.inc:709 +#: ../lib/modules/inetOrgPerson.inc:717 ../lib/modules/inetOrgPerson.inc:725 +#: ../lib/modules/inetOrgPerson.inc:737 ../lib/modules/inetOrgPerson.inc:757 +#: ../lib/modules/inetOrgPerson.inc:769 ../lib/modules/inetOrgPerson.inc:777 +#: ../lib/modules/inetOrgPerson.inc:785 ../lib/modules/inetOrgPerson.inc:797 +#: ../lib/modules/inetOrgPerson.inc:805 ../lib/modules/inetOrgPerson.inc:821 +#: ../lib/modules/inetOrgPerson.inc:829 ../lib/modules/inetOrgPerson.inc:837 +#: ../lib/modules/systemQuotas.inc:70 ../lib/modules/freeRadius.inc:101 +#: ../lib/modules/kolabSharedFolder.inc:126 +#: ../lib/modules/kolabSharedFolder.inc:135 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/qmailGroup.inc:136 ../lib/modules/qmailGroup.inc:149 +#: ../lib/modules/qmailGroup.inc:161 ../lib/modules/qmailGroup.inc:169 +#: ../lib/modules/qmailGroup.inc:177 ../lib/modules/qmailGroup.inc:185 +#: ../lib/modules/qmailGroup.inc:193 ../lib/modules/qmailGroup.inc:209 +#: ../lib/modules/qmailGroup.inc:217 ../lib/modules/qmailGroup.inc:225 +#: ../lib/modules/groupOfNames.inc:98 +msgid "Multiple values are separated by semicolon." +msgstr "複数の値はセミコロンによって区切られます。" + +#: ../lib/modules/asteriskAccount.inc:207 +#: ../lib/modules/asteriskAccount.inc:290 +#: ../lib/modules/asteriskAccount.inc:486 +#: ../lib/modules/asteriskAccount.inc:717 +#: ../lib/modules/asteriskAccount.inc:1006 +#: ../lib/modules/asteriskAccount.inc:1281 +msgid "Music on hold" +msgstr "保留音" + +#: ../lib/modules/asteriskAccount.inc:208 +msgid "Music to play on hold." +msgstr "保留中に流す音楽。" + +#: ../lib/modules/ipHost.inc:93 ../lib/modules/windowsHost.inc:108 +#: ../lib/modules/device.inc:111 ../lib/modules/windowsUser.inc:334 +#: ../lib/modules/inetOrgPerson.inc:395 ../lib/modules/inetOrgPerson.inc:403 +#: ../lib/modules/inetOrgPerson.inc:509 +msgid "MyCity" +msgstr "わたしの市" + +#: ../lib/modules/windowsUser.inc:316 ../lib/modules/inetOrgPerson.inc:379 +msgid "Mystreetname 42" +msgstr "わたしの町42番地" + +#: ../lib/modules/asteriskAccount.inc:163 +#: ../lib/modules/asteriskAccount.inc:279 +#: ../lib/modules/asteriskAccount.inc:406 +#: ../lib/modules/asteriskAccount.inc:669 +#: ../lib/modules/asteriskAccount.inc:995 +#: ../lib/modules/asteriskAccount.inc:1259 +msgid "NAT" +msgstr "NAT" + +#: ../lib/modules/asteriskAccount.inc:164 +msgid "NAT setting for this account." +msgstr "このアカウントに対するNAT設定。" + +#: ../lib/modules/windowsUser.inc:772 ../lib/modules/windowsGroup.inc:370 +msgid "NIS" +msgstr "NIS" + +#: ../lib/modules/windowsUser.inc:256 ../lib/modules/windowsUser.inc:466 +#: ../lib/modules/windowsUser.inc:481 ../lib/modules/windowsUser.inc:535 +#: ../lib/modules/windowsUser.inc:567 ../lib/modules/windowsUser.inc:777 +#: ../lib/modules/windowsUser.inc:1606 ../lib/modules/windowsGroup.inc:154 +#: ../lib/modules/windowsGroup.inc:169 ../lib/modules/windowsGroup.inc:243 +#: ../lib/modules/windowsGroup.inc:251 ../lib/modules/windowsGroup.inc:274 +#: ../lib/modules/windowsGroup.inc:375 ../lib/modules/windowsGroup.inc:750 +msgid "NIS domain" +msgstr "NISドメイン" + +#: ../lib/modules/windowsUser.inc:257 ../lib/modules/windowsGroup.inc:155 +msgid "NIS domain name." +msgstr "NISドメイン名" + +#: ../lib/modules/windowsUser.inc:252 ../lib/modules/windowsUser.inc:458 +#: ../lib/modules/windowsUser.inc:532 ../lib/modules/windowsUser.inc:566 +#: ../lib/modules/windowsUser.inc:620 ../lib/modules/windowsUser.inc:774 +#: ../lib/modules/windowsUser.inc:1605 ../lib/modules/windowsGroup.inc:150 +#: ../lib/modules/windowsGroup.inc:168 ../lib/modules/windowsGroup.inc:235 +#: ../lib/modules/windowsGroup.inc:271 ../lib/modules/windowsGroup.inc:289 +#: ../lib/modules/windowsGroup.inc:372 ../lib/modules/windowsGroup.inc:749 +msgid "NIS name" +msgstr "NIS名" + +#: ../lib/modules/windowsUser.inc:620 ../lib/modules/windowsUser.inc:621 +#: ../lib/modules/windowsGroup.inc:289 ../lib/modules/windowsGroup.inc:290 +msgid "" +"NIS name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"NIS名に無効な文字が含まれています。有効な文字は: a-z, A-Z, 0-9, .-_ です。" + +#: ../lib/modules/nisnetgroup.inc:67 +msgid "NIS net group" +msgstr "NIS ネット・グループ" + +#: ../lib/types/netgroup.inc:62 +msgid "NIS netgroup entries" +msgstr "NIS ネットグループ・エントリ" + +#: ../lib/types/netgroup.inc:53 +msgid "NIS netgroups" +msgstr "NISネットグループ" + +#: ../lib/modules/nisObject.inc:47 +msgid "NIS object" +msgstr "NISオブジェクト" + +#: ../lib/types/nisObjectType.inc:155 +#, php-format +msgid "NIS object count: %s" +msgstr "NISオブジェクト数: %s" + +#: ../lib/types/nisObjectType.inc:48 +msgid "NIS object entries" +msgstr "NISオブジェクト・エントリ" + +#: ../lib/types/nisObjectType.inc:39 +msgid "NIS objects" +msgstr "NISオブジェクト" + +#: ../lib/modules/bindDLZ.inc:113 ../lib/modules/bindDLZ.inc:357 +#: ../lib/modules/bindDLZ.inc:363 ../lib/modules/bindDLZ.inc:482 +msgid "NS record" +msgstr "NS レコード" + +#: ../templates/serverInfo.php:147 ../templates/masscreate.php:294 +#: ../templates/masscreate.php:368 ../templates/schema/schema.php:268 +#: ../lib/types/automountType.inc:86 ../lib/types/automountType.inc:249 +#: ../lib/types/oracleContextType.inc:77 ../lib/types/ppolicyType.inc:77 +#: ../lib/types/bind.inc:190 ../lib/modules/device.inc:61 +#: ../lib/modules/device.inc:89 ../lib/modules/device.inc:120 +#: ../lib/modules/device.inc:170 ../lib/modules/device.inc:418 +#: ../lib/modules/nisObject.inc:61 ../lib/modules/nisObject.inc:81 +#: ../lib/modules/nisObject.inc:111 ../lib/modules/nisObject.inc:137 +#: ../lib/modules/nisObject.inc:209 ../lib/modules/ppolicy.inc:80 +#: ../lib/modules/ppolicy.inc:142 ../lib/modules/ppolicy.inc:165 +#: ../lib/modules/ppolicy.inc:190 ../lib/modules/ppolicy.inc:471 +#: ../lib/modules/automount.inc:64 ../lib/modules/automount.inc:80 +#: ../lib/modules/automount.inc:103 ../lib/modules/automount.inc:128 +#: ../lib/modules/automount.inc:181 ../lib/modules/kolabSharedFolder.inc:112 +#: ../lib/modules/kolabSharedFolder.inc:174 +#: ../lib/modules/kolabSharedFolder.inc:233 +#: ../lib/modules/kolabSharedFolder.inc:261 +#: ../lib/modules/kolabSharedFolder.inc:279 +#: ../lib/modules/kolabSharedFolder.inc:557 +#: ../lib/modules/asteriskExtension.inc:822 +#: ../lib/modules/oracleService.inc:61 ../lib/modules/oracleService.inc:77 +#: ../lib/modules/oracleService.inc:98 ../lib/modules/oracleService.inc:121 +#: ../lib/modules/oracleService.inc:170 ../lib/modules/customFields.inc:84 +#: ../lib/modules/customFields.inc:1041 ../lib/modules/customFields.inc:1688 +#: ../lib/modules/organizationalRole.inc:186 +#: ../lib/modules/groupOfNames.inc:232 +msgid "Name" +msgstr "名前" + +#: ../lib/modules/nisMailAliasUser.inc:97 +msgid "Name of new alias entry." +msgstr "新しいエントリーに対する名。" + +#: ../lib/modules/zarafaAddressList.inc:64 +msgid "Name of the address list which should be created." +msgstr "生成されるアドレスリストの名前。" + +#: ../lib/modules/bindDLZ.inc:148 ../lib/modules/bindDLZ.inc:152 +#: ../lib/modules/bindDLZ.inc:357 ../lib/modules/bindDLZ.inc:499 +#: ../lib/modules/bindDLZ.inc:1162 +msgid "Name server" +msgstr "ネーム・サーバー" + +#: ../lib/modules/bindDLZ.inc:424 ../lib/modules/bindDLZ.inc:1562 +msgid "Name servers" +msgstr "ネーム・サーバー" + +#: ../lib/modules/bindDLZ.inc:1160 +msgid "Name servers (\"NS\" records)" +msgstr "ネーム・サーバー (\"NS\" レコード)" + +#: ../help/help.inc:189 +msgid "" +"Name under which the profile will be saved. If a profile with the same name " +"exists, it will be overwritten." +msgstr "" +"プロファイルがセーブされる名前。もしも同じ名前のプロファイルがある場合は上書" +"きされます。" + +#: ../lib/modules/namedObject.inc:45 +msgid "Named object" +msgstr "名前付きオブジェクト" + +#: ../lib/modules/dhcp_settings.inc:193 ../lib/modules/dhcp_settings.inc:216 +#: ../lib/modules/dhcp_settings.inc:610 ../lib/modules/dhcp_settings.inc:686 +#: ../lib/modules/freeRadius.inc:88 ../lib/modules/freeRadius.inc:124 +#: ../lib/modules/freeRadius.inc:138 ../lib/modules/freeRadius.inc:201 +#: ../lib/modules/freeRadius.inc:228 ../lib/modules/freeRadius.inc:285 +#: ../lib/modules/freeRadius.inc:538 +msgid "Net mask" +msgstr "ネットマスク" + +#: ../lib/modules/dhcp_settings.inc:169 ../lib/modules/dhcp_settings.inc:213 +#: ../lib/modules/dhcp_settings.inc:228 ../lib/modules/dhcp_settings.inc:280 +#: ../lib/modules/dhcp_settings.inc:581 ../lib/modules/dhcp_settings.inc:679 +msgid "Netbios name servers" +msgstr "NetBIOSネーム・サーバー" + +#: ../lib/modules/dhcp_settings.inc:173 ../lib/modules/dhcp_settings.inc:214 +#: ../lib/modules/dhcp_settings.inc:230 ../lib/modules/dhcp_settings.inc:286 +#: ../lib/modules/dhcp_settings.inc:591 ../lib/modules/dhcp_settings.inc:680 +msgid "Netbios node type" +msgstr "NetBIOSノードタイプ" + +#: ../lib/types/dhcp.inc:118 ../lib/types/dhcp.inc:172 +msgid "New DHCP" +msgstr "新規DHCP" + +#: ../lib/types/bind.inc:100 ../lib/types/bind.inc:161 +msgid "New DNS entry" +msgstr "新しいDNSエントリ" + +#: ../lib/types/nisObjectType.inc:102 ../lib/types/nisObjectType.inc:157 +msgid "New NIS object" +msgstr "新しいNISオブジェクト" + +#: ../templates/ou_edit.php:77 +msgid "New OU created successfully." +msgstr "新しい OU が作成されました。" + +#: ../lib/modules/windowsUser.inc:340 ../lib/modules/inetOrgPerson.inc:517 +msgid "New York" +msgstr "New York" + +#: ../lib/types/zarafaAddressListType.inc:117 +#: ../lib/types/zarafaAddressListType.inc:146 +msgid "New address list" +msgstr "新しいアドレス・リスト" + +#: ../lib/types/mailAlias.inc:114 ../lib/types/mailAlias.inc:143 +#: ../lib/types/alias.inc:114 ../lib/types/alias.inc:143 +msgid "New alias" +msgstr "新しい別名" + +#: ../lib/types/automountType.inc:110 ../lib/types/automountType.inc:217 +msgid "New automount entry" +msgstr "新規自動マウント・エントリー" + +#: ../lib/types/automountType.inc:233 ../lib/types/automountType.inc:234 +msgid "New automount map" +msgstr "新規自動マウント・マップ" + +#: ../lib/types/pykotaBillingCodeType.inc:116 +#: ../lib/types/pykotaBillingCodeType.inc:165 +msgid "New billing code" +msgstr "新しい課金コード" + +#: ../lib/types/oracleContextType.inc:101 +#: ../lib/types/oracleContextType.inc:188 +msgid "New database entry" +msgstr "新しいデータベース・エントリー" + +#: ../templates/config/profmanage.php:146 +msgid "New default profile set successfully." +msgstr "新しいプロファイル既定値が正しく設定されました。" + +#: ../lib/types/smbDomain.inc:114 ../lib/types/smbDomain.inc:169 +msgid "New domain" +msgstr "新しいドメイン" + +#: ../lib/types/asteriskExt.inc:117 ../lib/types/asteriskExt.inc:145 +msgid "New extension" +msgstr "新しい拡張" + +#: ../templates/pdfedit/pdfpage.php:620 +msgid "New field" +msgstr "新しいフィールド" + +#: ../lib/types/gon.inc:140 ../lib/types/gon.inc:204 +#: ../lib/types/zarafaDynamicGroupType.inc:119 +#: ../lib/types/zarafaDynamicGroupType.inc:167 ../lib/types/group.inc:163 +#: ../lib/types/group.inc:242 ../lib/types/netgroup.inc:116 +#: ../lib/types/netgroup.inc:171 +msgid "New group" +msgstr "新しいグループ" + +#: ../lib/types/host.inc:128 ../lib/types/host.inc:195 +msgid "New host" +msgstr "新しいホスト" + +#: ../lib/modules/inetLocalMailRecipient.inc:167 +msgid "New local address" +msgstr "新しいローカルアドレス" + +#: ../templates/config/mainmanage.php:456 +msgid "New master password" +msgstr "新しいマスタパスワード" + +#: ../templates/config/mainmanage.php:79 +msgid "New master password set successfully." +msgstr "新しいマスタパスワードが正しく設定されました。" + +#: ../lib/lists.inc:114 +msgid "New object" +msgstr "新しいオブジェクト" + +#: ../templates/ou_edit.php:185 ../help/help.inc:263 +msgid "New organisational unit" +msgstr "新しい organizational unit" + +#: ../templates/config/confmain.php:451 +#: ../lib/modules/sambaSamAccount.inc:2265 +#: ../lib/modules/posixAccount.inc:2530 ../lib/modules/windowsUser.inc:1711 +#: ../lib/modules/passwordSelfReset.inc:1059 +msgid "New password" +msgstr "新しいパスワード" + +#: ../templates/config/profmanage.php:133 +msgid "New password set successfully." +msgstr "新しいパスワードが正しく設定されました。" + +#: ../lib/types/ppolicyType.inc:122 ../lib/types/ppolicyType.inc:151 +msgid "New policy" +msgstr "新しいポリシー" + +#: ../lib/types/pykotaPrinterType.inc:117 +#: ../lib/types/pykotaPrinterType.inc:166 +msgid "New printer" +msgstr "新しいプリンター" + +#: ../templates/config/profmanage.php:261 +#: ../templates/selfService/profManage.php:222 +msgid "New profile name" +msgstr "新しいプロファイル名" + +#: ../lib/modules/range.inc:101 ../lib/modules/range.inc:115 +#: ../lib/modules/range.inc:454 +msgid "New range" +msgstr "新しい範囲" + +#: ../lib/modules/nisMailAlias.inc:208 +msgid "New recipient" +msgstr "新しい受信者" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:81 +msgid "New required attributes" +msgstr "新しい必須属性" + +#: ../lib/types/gon.inc:211 ../lib/types/group.inc:249 +msgid "New role" +msgstr "新しいロール" + +#: ../templates/pdfedit/pdfpage.php:588 +msgid "New section" +msgstr "新しい部門" + +#: ../lib/types/kolabSharedFolderType.inc:114 +#: ../lib/types/kolabSharedFolderType.inc:143 +msgid "New shared folder" +msgstr "新しい共有フォルダー" + +#: ../lib/types/sudo.inc:106 ../lib/types/sudo.inc:161 +msgid "New sudo role" +msgstr "新しいsudoロール" + +#: ../lib/types/user.inc:172 ../lib/types/user.inc:531 +msgid "New user" +msgstr "新しいユーザ" + +#: ../lib/modules/inetOrgPerson.inc:1826 +msgid "New user certificate" +msgstr "新しいユーザー証明書" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "New value" +msgstr "新しい値" + +#: ../lib/types/bind.inc:174 ../lib/types/bind.inc:175 +msgid "New zone" +msgstr "新しいゾーン" + +#: ../lib/modules/sambaDomain.inc:85 ../lib/modules/sambaDomain.inc:165 +#: ../lib/modules/sambaDomain.inc:186 ../lib/modules/sambaDomain.inc:361 +#: ../lib/modules/sambaDomain.inc:601 +msgid "Next RID" +msgstr "次のRID" + +#: ../lib/modules/sambaDomain.inc:212 ../lib/modules/sambaDomain.inc:213 +msgid "Next RID is not a number!" +msgstr "次のRIDが数字ではありません!" + +#: ../lib/modules/sambaDomain.inc:86 +msgid "Next RID to use when creating accounts (only used by Winbind)." +msgstr "アカウント作成時に使われる次のRID(Winbindのみが使用)。" + +#: ../lib/modules/sambaDomain.inc:94 +msgid "Next RID to use when creating group accounts (only used by Winbind)." +msgstr "グループアカウントを作成するときに使われる次のRID(Winbindのみが使用)。" + +#: ../lib/modules/sambaDomain.inc:90 +msgid "Next RID to use when creating user accounts (only used by Winbind)." +msgstr "ユーザアカウントを作成するときに使われる次のRID(Winbindのみが使用)。" + +#: ../lib/modules/sambaDomain.inc:93 ../lib/modules/sambaDomain.inc:177 +#: ../lib/modules/sambaDomain.inc:188 ../lib/modules/sambaDomain.inc:377 +#: ../lib/modules/sambaDomain.inc:603 +msgid "Next group RID" +msgstr "次のグループRID" + +#: ../lib/modules/sambaDomain.inc:216 ../lib/modules/sambaDomain.inc:217 +msgid "Next group RID is not a number!" +msgstr "次のグループRIDが番号ではありあせん!" + +#: ../lib/modules/sambaDomain.inc:89 ../lib/modules/sambaDomain.inc:171 +#: ../lib/modules/sambaDomain.inc:187 ../lib/modules/sambaDomain.inc:369 +#: ../lib/modules/sambaDomain.inc:602 +msgid "Next user RID" +msgstr "次のユーザRID" + +#: ../lib/modules/sambaDomain.inc:214 ../lib/modules/sambaDomain.inc:215 +msgid "Next user RID is not a number!" +msgstr "次のユーザRIDが番号ではありません!" + +#: ../lib/modules/eduPerson.inc:101 ../lib/modules/eduPerson.inc:188 +#: ../lib/modules/eduPerson.inc:226 ../lib/modules/eduPerson.inc:342 +#: ../lib/modules/eduPerson.inc:584 +msgid "Nick names" +msgstr "ニックネーム" + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/pykotaPrinter.inc:52 +#: ../lib/modules/pykotaPrinter.inc:168 ../lib/modules/pykotaPrinter.inc:169 +#: ../lib/modules/pykotaPrinter.inc:170 ../lib/modules/qmailGroup.inc:321 +#: ../lib/modules/qmailGroup.inc:322 ../lib/modules/qmailGroup.inc:323 +#: ../lib/modules/qmailGroup.inc:363 ../lib/modules/qmailGroup.inc:364 +#: ../lib/modules/qmailGroup.inc:365 ../lib/modules/qmailGroup.inc:1030 +#: ../lib/modules/qmailGroup.inc:1071 ../lib/modules/qmailGroup.inc:1077 +#: ../lib/modules/imapAccess.inc:121 +msgid "No" +msgstr "いいえ" + +#: ../lib/types/asteriskExt.inc:144 +msgid "No Asterisk extensions found." +msgstr "Asterisk拡張が見つかりません。" + +#: ../lib/types/dhcp.inc:171 +msgid "No DHCPs found!" +msgstr "DHCPが見つかりません!" + +#: ../lib/types/bind.inc:160 +msgid "No DNS entries found!" +msgstr "DNSエントリが見つかりません!" + +#: ../lib/types/nisObjectType.inc:156 +msgid "No NIS objects found!" +msgstr "NISオブジェクトが見つかりません!" + +#: ../templates/3rdParty/pla/lib/Template.php:558 +#: ../templates/3rdParty/pla/lib/Template.php:559 +msgid "No RDN attribute was selected." +msgstr "RDN属性が選択されていません" + +#: ../lib/modules/sambaSamAccount.inc:1103 +#: ../lib/modules/sambaGroupMapping.inc:341 +msgid "No Samba 3 domains found in LDAP! Please create one first." +msgstr "Samba 3グループがLDAPに存在しません。最初に一個作成してください。" + +#: ../lib/modules/posixAccount.inc:581 ../lib/modules/posixAccount.inc:1367 +msgid "No Unix groups found in LDAP! Please create one first." +msgstr "unixグループがLDAPに存在しません。最初に一個作成してください。" + +#: ../lib/modules/qmailUser.inc:42 +msgid "No access" +msgstr "アクセス無し" + +#: ../lib/types/zarafaAddressListType.inc:145 +msgid "No address list found!" +msgstr "アドレス・リストが見つかりません!" + +#: ../lib/types/mailAlias.inc:142 ../lib/types/alias.inc:142 +msgid "No aliases found!" +msgstr "別名が見つかりません!" + +#: ../lib/types/automountType.inc:216 +msgid "No automount entries found!" +msgstr "自動マウント・エントリーが見つかりません!" + +#: ../lib/types/pykotaBillingCodeType.inc:164 +msgid "No billing codes found!" +msgstr "課金コードが見つかりません!" + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:36 +msgid "No binary data available" +msgstr "バイナリ・データがありません" + +#: ../templates/initsuff.php:164 +msgid "No changes were made." +msgstr "変更されませんでした。" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:83 +#, php-format +msgid "No current value for attribute %s." +msgstr "属性%sに値がありません。" + +#: ../lib/types/oracleContextType.inc:187 +msgid "No database entries found!" +msgstr "データベース・エントリが見つかりません!" + +#: ../templates/login.php:104 +msgid "" +"No default profile set. Please set it in the server profile configuration." +msgstr "" +"デフォルトのプロファイルが設定されていません。サーバー・プロファイル構成で設" +"定してください。" + +#: ../templates/schema/schema.php:144 +msgid "No description" +msgstr "説明なし" + +#: ../lib/types/smbDomain.inc:168 +msgid "No domains found!" +msgstr "ドメインが見つかりません!" + +#: ../lib/modules/passwordSelfReset.inc:1546 +msgid "No email address found." +msgstr "eメール・アドレスが見つかりません!" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:20 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:21 +msgid "No entry was selected to delete" +msgstr "削除するエントリが選択されていません。" + +#: ../lib/modules/ldapPublicKey.inc:483 ../lib/modules/inetOrgPerson.inc:3221 +#: ../lib/modules/customFields.inc:3642 +msgid "No file received." +msgstr "ファイルが受信されていません。" + +#: ../templates/config/mainmanage.php:161 ../lib/modules/ldapPublicKey.inc:109 +#: ../lib/modules/inetOrgPerson.inc:99 ../lib/modules/customFields.inc:3577 +msgid "No file selected." +msgstr "ファイルが選択されていません。" + +#: ../lib/modules/qmailUser.inc:48 +msgid "No forwarding" +msgstr "転送無し" + +#: ../lib/modules/posixGroup.inc:601 ../lib/modules/posixAccount.inc:104 +msgid "No free ID-Number!" +msgstr "空いているID番号がありません!" + +#: ../lib/types/gon.inc:203 ../lib/types/zarafaDynamicGroupType.inc:166 +#: ../lib/types/group.inc:241 ../lib/types/netgroup.inc:170 +msgid "No groups found!" +msgstr "グループが見つかりません!" + +#: ../lib/types/host.inc:194 +msgid "No hosts found!" +msgstr "ホストが見つかりません!" + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:59 +msgid "No image available" +msgstr "イメージがありません" + +#: ../templates/3rdParty/pla/lib/import_functions.php:94 +msgid "No import input" +msgstr "インポート入力がありません" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1354 +msgid "No internal attributes" +msgstr "内部属性なし" + +#: ../templates/tests/lamdaemonTest.php:195 +msgid "No lamdaemon path set, please update your LAM configuration settings." +msgstr "lamdaemonのパスがセットされていません。LAM構成設定を修正してください。" + +#: ../templates/tests/lamdaemonTest.php:97 +#: ../templates/tests/lamdaemonTest.php:190 +msgid "No lamdaemon server set, please update your LAM configuration settings." +msgstr "lamdaemonサーバがセットされていません。LAM構成設定を修正してください。" + +#: ../lib/modules/qmailUser.inc:49 +msgid "No local delivery" +msgstr "ローカル配送無し" + +#: ../templates/config/mainmanage.php:412 +msgid "No logging" +msgstr "ロギング無し" + +#: ../templates/pdfedit/pdfpage.php:429 +msgid "No logo" +msgstr "ロゴがありません" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:157 +msgid "No new attributes available for this entry" +msgstr "このエントリに対して有効な新しい属性はありません" + +#: ../templates/config/conftypes.php:310 ../help/help.inc:176 +msgid "No new entries" +msgstr "新しいエントリがありません" + +#: ../templates/multiEdit.php:315 ../lib/lists.inc:113 +msgid "No objects found!" +msgstr "オブジェクトが見つかりません!" + +#: ../templates/config/confmodules.php:406 +msgid "No or more than one base module selected!" +msgstr "ベースモジュールが選択されていないか、または複数が選択されています!" + +#: ../templates/config/confsave.php:53 ../templates/config/confmain.php:55 +#: ../lib/modules/passwordSelfReset.inc:1169 +msgid "No password was entered!" +msgstr "パスワードが入力されていません!" + +#: ../lib/types/ppolicyType.inc:150 +msgid "No policies found!" +msgstr "ポリシーが見つかりません!" + +#: ../lib/types/pykotaPrinterType.inc:165 +msgid "No printers found!" +msgstr "プリンターが見つかりません!" + +#: ../templates/tests/schemaTest.php:70 +msgid "No problems found." +msgstr "問題は発見されませんでした。" + +#: ../lib/modules/qmailUser.inc:50 +msgid "No program delivery" +msgstr "プログラム配送無し" + +#: ../lib/modules/pykotaGroup.inc:63 ../lib/modules/pykotaUser.inc:63 +msgid "No quota" +msgstr "クオータなし" + +#: ../lib/types/gon.inc:210 ../lib/types/group.inc:248 +msgid "No roles found!" +msgstr "ロールが見つかりません!" + +#: ../lib/modules/customScripts.inc:215 +msgid "No scripts to run." +msgstr "実行するスクリプトがありません。" + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "No section text specified" +msgstr "セクションテキストが指定されていません!" + +#: ../lib/modules/passwordSelfReset.inc:1199 +msgid "No security answer found." +msgstr "秘密の回答がありません。" + +#: ../templates/config/conflogin.php:137 +msgid "No server profiles found. Please create one." +msgstr "サーバープロファイルがありません。作成してください。" + +#: ../lib/types/kolabSharedFolderType.inc:142 +msgid "No shared folders found!" +msgstr "共有フォルダーが見つかりません!" + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "No static text specified" +msgstr "静的テキストが指定されていません!" + +#: ../lib/modules/dhcp_settings.inc:318 +msgid "No subnet entered." +msgstr "サブネットが未入力です。" + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:45 +msgid "No such entry" +msgstr "そのようなエントリはありません" + +#: ../templates/3rdParty/pla/htdocs/compare.php:24 +#: ../templates/3rdParty/pla/htdocs/compare.php:27 +#: ../templates/3rdParty/pla/htdocs/delete.php:19 +msgid "No such entry." +msgstr "そのようなエントリはありません。" + +#: ../templates/schema/schema.php:438 +#, php-format +msgid "No such schema item: \"%s\"" +msgstr "そのようなスキーマアイテムはありません: \"%s\"" + +#: ../lib/types/sudo.inc:160 +msgid "No sudo roles found!" +msgstr "sudoロールが見つかりません!" + +#: ../lib/types/user.inc:530 +msgid "No users found!" +msgstr "ユーザが見つかりません!" + +#: ../templates/config/mainmanage.php:444 +msgid "Non-standard (\\n)" +msgstr "Non-standard (\\n)" + +#: ../lib/modules/qmailUser.inc:58 +msgid "None" +msgstr "なし" + +#: ../lib/modules/sudoRole.inc:133 ../lib/modules/sudoRole.inc:195 +#: ../lib/modules/sudoRole.inc:222 ../lib/modules/sudoRole.inc:281 +#: ../lib/modules/sudoRole.inc:481 ../lib/modules/sudoRole.inc:822 +msgid "Not after" +msgstr "以前" + +#: ../lib/modules/sudoRole.inc:128 ../lib/modules/sudoRole.inc:201 +#: ../lib/modules/sudoRole.inc:223 ../lib/modules/sudoRole.inc:283 +#: ../lib/modules/sudoRole.inc:474 ../lib/modules/sudoRole.inc:817 +msgid "Not before" +msgstr "以後" + +#: ../help/help.inc:68 +msgid "Note" +msgstr "注" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:125 +msgid "" +"Note: You may be required to enter new attributes that these object classes " +"require" +msgstr "" +"注意: オブジェクトクラスが必要とする新たな属性の入力が必要になる事がありま" +"す。" + +#: ../lib/modules/windowsGroup.inc:122 ../lib/modules/windowsGroup.inc:189 +#: ../lib/modules/windowsGroup.inc:259 ../lib/modules/windowsGroup.inc:349 +#: ../lib/modules/windowsGroup.inc:747 +msgid "Notes" +msgstr "注" + +#: ../templates/3rdParty/pla/lib/export_functions.php:450 +msgid "Nothing to export" +msgstr "エクスポート対象がありません" + +#: ../templates/config/mainmanage.php:408 +msgid "Notice" +msgstr "Notice" + +#: ../templates/delete.php:103 +msgid "Number of child entries" +msgstr "子エントリの数" + +#: ../lib/modules/customFields.inc:129 +msgid "Number of columns in text area." +msgstr "テキストエリアの桁数" + +#: ../lib/modules/shadowAccount.inc:182 +msgid "" +"Number of days a user can login even his password has expired. -1=always." +msgstr "パスワードが期限切れになってもユーザがログインできる日数。-1は無期限。" + +#: ../lib/modules/shadowAccount.inc:186 +msgid "" +"Number of days a user has to wait until he is allowed to change his password " +"again. If set value must be >0." +msgstr "" +"パスワードの再変更が許可されるまでの日数。設定するならば0より大きな値にするこ" +"と。" + +#: ../lib/modules/shadowAccount.inc:190 +msgid "" +"Number of days after a user has to change his password again. If set value " +"must be >0." +msgstr "" +"パスワードを再変更しなければならなくなる日数。設定する場合は0より大きな値にす" +"ること。" + +#: ../lib/modules/mitKerberos.inc:129 +msgid "Number of failed logins." +msgstr "失敗ログインの回数" + +#: ../lib/modules/sambaDomain.inc:138 +msgid "Number of minutes after which the bad logon attempts are reset." +msgstr "ログオン試行の失敗がリセットされるまでの時間(分単位)" + +#: ../lib/modules/pykotaBillingCode.inc:90 +msgid "Number of pages printed with this billing code." +msgstr "この課金コードで印刷されたページ数。" + +#: ../lib/modules/customFields.inc:133 +msgid "Number of rows in text area." +msgstr "テキストエリアの行数" + +#: ../templates/config/mainmanage.php:395 ../help/help.inc:162 +msgid "Number of rules that must match" +msgstr "適合しなくてはならないルールの数" + +#: ../lib/modules/ppolicy.inc:85 ../lib/modules/sambaDomain.inc:126 +msgid "" +"Number of seconds after the user is allowed to change his password again." +msgstr "パスワードを再変更できるようになるまでの秒数。" + +#: ../lib/modules/ppolicy.inc:89 ../lib/modules/sambaDomain.inc:130 +msgid "Number of seconds after which the user must change his password." +msgstr "ユーザがパスワード変更を強制されるまでの秒数。" + +#: ../templates/schema/schema.php:147 ../templates/schema/schema.php:344 +msgid "OID" +msgstr "OID" + +#: ../templates/ou_edit.php:83 +msgid "OU already exists!" +msgstr "OU はすでに存在しています!" + +#: ../templates/ou_edit.php:94 +msgid "OU deleted successfully." +msgstr "OU は正しく削除されました。" + +#: ../templates/ou_edit.php:152 ../lib/tools/ouEditor.inc:44 +msgid "OU editor" +msgstr "OUエディタ" + +#: ../templates/ou_edit.php:87 +msgid "OU is invalid!" +msgstr "OU が無効です!" + +#: ../templates/ou_edit.php:131 +msgid "OU is not empty or invalid!" +msgstr "OU が空白でないか無効!" + +#: ../help/help.inc:263 ../help/help.inc:265 +msgid "OU-Editor" +msgstr "OUエディタ" + +#: ../templates/schema/schema.php:65 ../templates/schema/schema.php:66 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1324 +#: ../lib/modules/selfRegistration.inc:74 +#: ../lib/modules/selfRegistration.inc:214 ../lib/modules/customFields.inc:80 +#: ../lib/modules/customFields.inc:574 +msgid "Object classes" +msgstr "オブジェクトクラス" + +#: ../lib/lists.inc:112 +#, php-format +msgid "Object count: %s" +msgstr "オブジェクト・アカウント: %s" + +#: ../templates/schema/schema.php:152 ../templates/schema/schema.php:283 +msgid "Obsolete" +msgstr "Obsolete" + +#: ../lib/modules/sambaDomain.inc:289 ../lib/modules/sambaDomain.inc:298 +#: ../lib/modules/sambaDomain.inc:307 ../lib/modules/sambaDomain.inc:614 +#: ../lib/modules/sambaDomain.inc:619 ../lib/modules/sambaDomain.inc:624 +msgid "Off" +msgstr "Off" + +#: ../lib/modules/windowsUser.inc:152 ../lib/modules/windowsUser.inc:344 +#: ../lib/modules/windowsUser.inc:508 ../lib/modules/windowsUser.inc:541 +#: ../lib/modules/windowsUser.inc:713 ../lib/modules/windowsUser.inc:1596 +#: ../lib/modules/windowsUser.inc:1725 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:199 ../lib/modules/inetOrgPerson.inc:531 +#: ../lib/modules/inetOrgPerson.inc:566 ../lib/modules/inetOrgPerson.inc:792 +#: ../lib/modules/inetOrgPerson.inc:796 ../lib/modules/inetOrgPerson.inc:1358 +#: ../lib/modules/inetOrgPerson.inc:1361 ../lib/modules/inetOrgPerson.inc:1911 +#: ../lib/modules/inetOrgPerson.inc:2621 ../lib/modules/inetOrgPerson.inc:3525 +#: ../lib/modules/inetOrgPerson.inc:3581 +msgid "Office name" +msgstr "事業所名" + +#: ../templates/lists/changePassword.php:340 +#: ../templates/lists/changePassword.php:377 +#: ../templates/lists/changePassword.php:418 +#: ../templates/lists/changePassword.php:449 +#: ../templates/tests/lamdaemonTest.php:92 ../templates/ou_edit.php:193 +#: ../templates/ou_edit.php:207 ../templates/masscreate.php:211 +#: ../templates/config/profmanage.php:254 +#: ../templates/config/profmanage.php:266 +#: ../templates/config/profmanage.php:275 +#: ../templates/config/profmanage.php:293 +#: ../templates/config/profmanage.php:302 +#: ../templates/config/profmanage.php:304 +#: ../templates/config/mainmanage.php:469 +#: ../templates/config/conflogin.php:177 ../templates/config/mainlogin.php:165 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminLogin.php:165 +#: ../templates/selfService/adminMain.php:626 +#: ../templates/selfService/adminMain.php:679 +#: ../templates/pdfedit/pdfmain.php:210 ../templates/pdfedit/pdfmain.php:217 +#: ../templates/pdfedit/pdfmain.php:223 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/profedit/profilemain.php:205 +#: ../templates/profedit/profilemain.php:211 +#: ../lib/types/automountType.inc:234 ../lib/types/user.inc:303 +#: ../lib/types/bind.inc:175 ../lib/modules/selfRegistration.inc:446 +#: ../lib/modules/zarafaContact.inc:433 ../lib/modules/zarafaGroup.inc:493 +#: ../lib/modules/device.inc:300 ../lib/modules/sambaSamAccount.inc:1431 +#: ../lib/modules/sambaSamAccount.inc:1566 ../lib/modules/zarafaUser.inc:917 +#: ../lib/modules/zarafaUser.inc:968 ../lib/modules/sambaGroupMapping.inc:508 +#: ../lib/modules/nisnetgroup.inc:479 ../lib/modules/nisnetgroup.inc:489 +#: ../lib/modules/asteriskExtension.inc:484 ../lib/modules/aliasEntry.inc:146 +#: ../lib/modules/aliasEntry.inc:166 ../lib/modules/qmailGroup.inc:862 +#: ../lib/modules/imapAccess.inc:295 ../lib/modules/organizationalRole.inc:337 +#: ../lib/modules/passwordSelfReset.inc:872 +#: ../lib/modules/passwordSelfReset.inc:1094 +#: ../lib/modules/windowsGroup.inc:603 ../lib/modules/groupOfNames.inc:394 +#: ../lib/modules/groupOfNames.inc:549 ../lib/modules/nisMailAlias.inc:375 +#: ../lib/modules/nisMailAlias.inc:384 ../lib/lists.inc:710 +#: ../lib/lists.inc:792 ../lib/modules.inc:1221 +msgid "Ok" +msgstr "Ok" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:98 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +msgid "Old value" +msgstr "古い値" + +#: ../lib/modules/sambaDomain.inc:289 ../lib/modules/sambaDomain.inc:298 +#: ../lib/modules/sambaDomain.inc:307 ../lib/modules/sambaDomain.inc:615 +#: ../lib/modules/sambaDomain.inc:620 ../lib/modules/sambaDomain.inc:625 +msgid "On" +msgstr "On" + +#: ../lib/modules/sambaSamAccount.inc:243 +#: ../lib/modules/sambaSamAccount.inc:384 +#: ../lib/modules/sambaSamAccount.inc:1552 +#: ../lib/modules/sambaSamAccount.inc:1962 +msgid "On broken or timed out connection" +msgstr "破棄された、またはタイムアウトした接続" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:139 +#: ../templates/3rdParty/pla/htdocs/export_form.php:32 +msgid "One (one level beneath base)" +msgstr "One (ベース直下の1階層)" + +#: ../lib/modules/range.inc:114 ../lib/modules/fixed_ip.inc:127 +msgid "One or more errors occured. The invalid fields are marked." +msgstr "" +"1件以上のエラーが発生しました。無効なフィールドには目印が付いています。" + +#: ../templates/3rdParty/pla/htdocs/copy.php:98 +#: ../templates/3rdParty/pla/htdocs/copy.php:155 +#, php-format +msgid "Operation not successful. DN %s has not been created." +msgstr "操作が失敗しました。DN %sは作成されませんでした。" + +#: ../templates/serverInfo.php:277 ../templates/serverInfo.php:367 +msgid "Operation statistics" +msgstr "操作の統計" + +#: ../templates/3rdParty/pla/htdocs/copy.php:95 +#: ../templates/3rdParty/pla/htdocs/copy.php:153 +#, php-format +msgid "Operation successful. DN %s has been created." +msgstr "操作が成功しました。DN %sが作成されました。" + +#: ../templates/multiEdit.php:117 ../help/help.inc:273 +msgid "Operations" +msgstr "操作" + +#: ../templates/schema/schema.php:384 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1575 +msgid "Optional attributes" +msgstr "任意属性" + +#: ../lib/modules/fixed_ip.inc:111 +msgid "Optional description for the PC." +msgstr "このPCに対する付加的な説明。" + +#: ../lib/types/sudo.inc:83 ../lib/modules/mitKerberos.inc:408 +#: ../lib/modules/zarafaDynamicGroup.inc:267 +#: ../lib/modules/zarafaContact.inc:241 ../lib/modules/zarafaGroup.inc:278 +#: ../lib/modules/posixAccount.inc:245 ../lib/modules/zarafaUser.inc:571 +#: ../lib/modules/windowsUser.inc:723 ../lib/modules/kolabUser.inc:379 +#: ../lib/modules/sudoRole.inc:94 ../lib/modules/sudoRole.inc:123 +#: ../lib/modules/sudoRole.inc:189 ../lib/modules/sudoRole.inc:221 +#: ../lib/modules/sudoRole.inc:233 ../lib/modules/sudoRole.inc:451 +#: ../lib/modules/sudoRole.inc:811 ../lib/modules/asteriskExtension.inc:122 +#: ../lib/modules/asteriskVoicemail.inc:115 +#: ../lib/modules/asteriskVoicemail.inc:125 +#: ../lib/modules/asteriskVoicemail.inc:142 +#: ../lib/modules/asteriskVoicemail.inc:190 +#: ../lib/modules/asteriskVoicemail.inc:258 +#: ../lib/modules/asteriskVoicemail.inc:375 ../lib/modules/qmailGroup.inc:611 +#: ../lib/modules/heimdalKerberos.inc:339 +msgid "Options" +msgstr "オプション" + +#: ../lib/modules/asteriskVoicemail.inc:116 +msgid "Options for Asterisk voicemail account (e.g. sendvoicemail=yes)." +msgstr "Asteriskボイスメール・アカウントのオプション(例 sendvoicemail=yes)。" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:39 +msgid "Or paste your LDIF here" +msgstr "または、LDIFをここに張り付けてください" + +#: ../lib/modules/oracleService.inc:47 +msgid "Oracle database" +msgstr "Oracleデータベース" + +#: ../lib/types/oracleContextType.inc:48 +msgid "Oracle database entries" +msgstr "Oracleデータベース・エントリ" + +#: ../lib/types/oracleContextType.inc:39 +msgid "Oracle databases" +msgstr "Oracleデータベース" + +#: ../lib/modules/sudoRole.inc:138 ../lib/modules/sudoRole.inc:207 +#: ../lib/modules/sudoRole.inc:224 ../lib/modules/sudoRole.inc:285 +#: ../lib/modules/sudoRole.inc:484 ../lib/modules/sudoRole.inc:812 +msgid "Order" +msgstr "順序" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:166 +msgid "Order by" +msgstr "並べ替えの順序" + +#: ../templates/schema/schema.php:171 +msgid "Ordering" +msgstr "並べ替え" + +#: ../lib/modules/eduPerson.inc:126 ../lib/modules/eduPerson.inc:200 +#: ../lib/modules/eduPerson.inc:227 ../lib/modules/eduPerson.inc:245 +#: ../lib/modules/eduPerson.inc:346 ../lib/modules/eduPerson.inc:587 +#: ../lib/modules/inetOrgPerson.inc:223 ../lib/modules/inetOrgPerson.inc:499 +#: ../lib/modules/inetOrgPerson.inc:608 ../lib/modules/inetOrgPerson.inc:824 +#: ../lib/modules/inetOrgPerson.inc:828 ../lib/modules/inetOrgPerson.inc:1499 +#: ../lib/modules/inetOrgPerson.inc:1502 ../lib/modules/inetOrgPerson.inc:1916 +#: ../lib/modules/inetOrgPerson.inc:3553 ../lib/modules/inetOrgPerson.inc:3588 +msgid "Organisation" +msgstr "組織" + +#: ../lib/modules/inetOrgPerson.inc:163 ../lib/modules/inetOrgPerson.inc:220 +#: ../lib/modules/inetOrgPerson.inc:491 ../lib/modules/inetOrgPerson.inc:611 +#: ../lib/modules/inetOrgPerson.inc:816 ../lib/modules/inetOrgPerson.inc:820 +#: ../lib/modules/inetOrgPerson.inc:1490 ../lib/modules/inetOrgPerson.inc:1493 +#: ../lib/modules/inetOrgPerson.inc:1915 ../lib/modules/inetOrgPerson.inc:2753 +#: ../lib/modules/inetOrgPerson.inc:3551 ../lib/modules/inetOrgPerson.inc:3588 +msgid "Organisational unit" +msgstr "Organisational unit" + +#: ../lib/modules/eduPerson.inc:134 ../lib/modules/eduPerson.inc:138 +#: ../lib/modules/eduPerson.inc:212 ../lib/modules/eduPerson.inc:228 +#: ../lib/modules/eduPerson.inc:350 ../lib/modules/eduPerson.inc:589 +msgid "Organisational units" +msgstr "Organizational units" + +#: ../lib/modules/eduPerson.inc:249 +msgid "Organisational units contains an invalid entry." +msgstr "Organizational unitsに無効なエントリが含まれています。" + +#: ../templates/multiEdit.php:98 ../templates/config/confmain.php:328 +msgid "Other" +msgstr "その他" + +#: ../lib/modules/windowsUser.inc:144 ../lib/modules/windowsUser.inc:148 +#: ../lib/modules/windowsUser.inc:368 ../lib/modules/windowsUser.inc:507 +#: ../lib/modules/windowsUser.inc:603 ../lib/modules/windowsUser.inc:719 +#: ../lib/modules/windowsUser.inc:1595 +msgid "Other telephone numbers" +msgstr "他の電話番号" + +#: ../lib/modules/windowsUser.inc:180 ../lib/modules/windowsUser.inc:184 +#: ../lib/modules/windowsUser.inc:380 ../lib/modules/windowsUser.inc:515 +#: ../lib/modules/windowsUser.inc:721 ../lib/modules/windowsUser.inc:1603 +msgid "Other web sites" +msgstr "他のウェブ・サイト" + +#: ../lib/modules/customScripts.inc:84 ../lib/modules/customScripts.inc:100 +#: ../lib/modules/customScripts.inc:110 +msgid "Output may contain HTML" +msgstr "出力はHTMLを含みます。" + +#: ../lib/modules/customScripts.inc:264 ../lib/modules/customScripts.inc:554 +#, php-format +msgid "Output of command \"%s\" with return code %s" +msgstr "コマンド \"%s\" の出力とリターンコード %s" + +#: ../lib/modules/pykotaUser.inc:144 ../lib/modules/pykotaUser.inc:171 +#: ../lib/modules/pykotaUser.inc:253 ../lib/modules/pykotaUser.inc:263 +#: ../lib/modules/pykotaUser.inc:324 ../lib/modules/pykotaUser.inc:402 +#: ../lib/modules/pykotaUser.inc:899 +msgid "Overcharge factor" +msgstr "割増率" + +#: ../lib/modules/pykotaUser.inc:145 +msgid "" +"Overcharge factor that is applied when computing the cost of a print job. " +"The number of pages is not changed." +msgstr "" +"印刷ジョブのコストを算出する際に適用される割増率。ページ数は変更されません。" + +#: ../templates/serverInfo.php:168 +msgid "Overlays" +msgstr "オーバーレイ" + +#: ../lib/modules/zarafaUser.inc:89 +msgid "Override default quota settings." +msgstr "デフォルトのquota設定を上書き。" + +#: ../templates/config/confmain.php:320 ../lib/types/asteriskExt.inc:96 +#: ../lib/types/asteriskExt.inc:158 +msgid "Owner" +msgstr "所有者" + +#: ../lib/types/gon.inc:108 ../lib/modules/device.inc:69 +#: ../lib/modules/device.inc:73 ../lib/modules/device.inc:103 +#: ../lib/modules/device.inc:128 ../lib/modules/device.inc:180 +#: ../lib/modules/device.inc:424 ../lib/modules/groupOfNames.inc:93 +#: ../lib/modules/groupOfNames.inc:97 ../lib/modules/groupOfNames.inc:143 +#: ../lib/modules/groupOfNames.inc:174 ../lib/modules/groupOfNames.inc:197 +#: ../lib/modules/groupOfNames.inc:240 ../lib/modules/groupOfNames.inc:398 +#: ../lib/modules/groupOfNames.inc:702 +msgid "Owners" +msgstr "所有者" + +#: ../lib/modules/dhcp_settings.inc:97 +msgid "P-Node (0x02)" +msgstr "P-Node (0x02)" + +#: ../lib/modules/fixed_ip.inc:98 ../lib/modules/fixed_ip.inc:425 +#: ../lib/modules/fixed_ip.inc:740 +msgid "PC name" +msgstr "PCの名前" + +#: ../lib/modules/windowsHost.inc:96 +msgid "PC01" +msgstr "PC01" + +#: ../templates/pdfedit/pdfpage.php:445 ../templates/pdfedit/pdfmain.php:84 +#: ../lib/tools/pdfEdit.inc:44 +msgid "PDF editor" +msgstr "PDFエディタ" + +#: ../templates/masscreate.php:275 ../templates/pdfedit/pdfmain.php:310 +#: ../lib/lists.inc:688 ../help/help.inc:204 +msgid "PDF structure" +msgstr "PDF構成" + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "PDF structure name not valid" +msgstr "PDF構成名が無効です" + +#: ../templates/pdfedit/pdfmain.php:168 +msgid "PDF structure was successfully saved." +msgstr "PDF構成を保存しました。" + +#: ../templates/pdfedit/pdfmain.php:277 +msgid "PDF structures" +msgstr "PDF構成" + +#: ../templates/serverInfo.php:264 +msgid "PDUs sent" +msgstr "PDUが送られました" + +#: ../templates/config/mainmanage.php:432 ../help/help.inc:158 +msgid "PHP error reporting" +msgstr "PHPエラー・レポート" + +#: ../templates/config/mainmanage.php:428 +msgid "PHP system setting" +msgstr "PHPシステム設定" + +#: ../lib/modules/zarafaUser.inc:306 ../lib/modules/zarafaUser.inc:645 +#: ../lib/modules/zarafaUser.inc:1334 +msgid "POP3" +msgstr "POP3" + +#: ../templates/lists/changePassword.php:406 +#: ../templates/lists/changePassword.php:437 ../lib/types/user.inc:376 +#: ../lib/types/user.inc:408 +msgid "PPolicy" +msgstr "PPolicy" + +#: ../lib/modules/bindDLZ.inc:108 ../lib/modules/bindDLZ.inc:294 +#: ../lib/modules/bindDLZ.inc:300 ../lib/modules/bindDLZ.inc:478 +msgid "PTR record" +msgstr "PTR レコード" + +#: ../lib/modules/bindDLZ.inc:415 ../lib/modules/bindDLZ.inc:434 +#: ../lib/modules/bindDLZ.inc:1489 +msgid "PTR records" +msgstr "PTR レコード" + +#: ../lib/modules/sambaSamAccount.inc:556 +msgid "Pacific Time (US & Canada)" +msgstr "Pacific Time (US & Canada)" + +#: ../lib/modules/dhcp_settings.inc:166 +msgid "" +"Packets are sent to the default gateway if the receiver does not reside in " +"the same network. The default gateway routes them to the target network." +msgstr "" +"受信側が同じネットワークに無い場合は、パケットはデフォルトゲートウェイに送ら" +"れます。デフォルトゲートウェイは、これらのパケットを宛先のネットワークに転送" +"します。" + +#: ../lib/types/pykotaBillingCodeType.inc:94 +#: ../lib/modules/pykotaBillingCode.inc:89 +#: ../lib/modules/pykotaBillingCode.inc:118 +#: ../lib/modules/pykotaBillingCode.inc:151 +#: ../lib/modules/pykotaBillingCode.inc:264 +msgid "Page count" +msgstr "ページ数" + +#: ../templates/selfService/adminMain.php:521 ../help/help.inc:234 +msgid "Page header" +msgstr "ページヘッダ" + +#: ../templates/selfService/adminMain.php:434 +msgid "Page layout" +msgstr "ページレイアウト" + +#: ../lib/modules/asteriskVoicemail.inc:111 +#: ../lib/modules/asteriskVoicemail.inc:141 +#: ../lib/modules/asteriskVoicemail.inc:184 +#: ../lib/modules/asteriskVoicemail.inc:256 +#: ../lib/modules/asteriskVoicemail.inc:373 +msgid "Pager" +msgstr "ページャ" + +#: ../lib/modules/asteriskVoicemail.inc:112 +msgid "Pager number for Asterisk voicemail." +msgstr "Asteriskボイスメールのページャ番号" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:35 +msgid "Parent DN" +msgstr "親DN" + +#: ../lib/modules/puppetClient.inc:88 ../lib/modules/puppetClient.inc:134 +#: ../lib/modules/puppetClient.inc:154 ../lib/modules/puppetClient.inc:265 +#: ../lib/modules/puppetClient.inc:431 ../lib/modules/puppetClient.inc:466 +msgid "Parent node" +msgstr "親ノード" + +#: ../lib/modules/puppetClient.inc:190 +msgid "Parent node not found." +msgstr "親ノードが見つかりません。" + +#: ../templates/schema/schema.php:366 +msgid "Parent to" +msgstr "派生先" + +#: ../templates/3rdParty/pla/htdocs/import.php:98 +msgid "Parse error" +msgstr "パースエラー" + +#: ../lib/modules/pykotaPrinter.inc:107 ../lib/modules/pykotaPrinter.inc:166 +#: ../lib/modules/pykotaPrinter.inc:196 ../lib/modules/pykotaPrinter.inc:243 +#: ../lib/modules/pykotaPrinter.inc:595 +msgid "Passthrough" +msgstr "パススルー" + +#: ../templates/lists/changePassword.php:356 ../templates/login.php:379 +#: ../templates/selfService/selfServiceLogin.php:323 +#: ../lib/selfService.inc:393 ../lib/modules/mitKerberos.inc:156 +#: ../lib/modules/mitKerberos.inc:242 ../lib/modules/mitKerberos.inc:257 +#: ../lib/modules/mitKerberos.inc:795 ../lib/modules/mitKerberos.inc:798 +#: ../lib/modules/selfRegistration.inc:407 +#: ../lib/modules/selfRegistration.inc:533 +#: ../lib/modules/selfRegistration.inc:536 +#: ../lib/modules/selfRegistration.inc:539 +#: ../lib/modules/asteriskAccount.inc:115 +#: ../lib/modules/asteriskAccount.inc:325 ../lib/modules/posixGroup.inc:205 +#: ../lib/modules/posixGroup.inc:598 ../lib/modules/sambaSamAccount.inc:105 +#: ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:250 +#: ../lib/modules/sambaSamAccount.inc:425 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/posixAccount.inc:110 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:332 ../lib/modules/posixAccount.inc:418 +#: ../lib/modules/posixAccount.inc:522 ../lib/modules/posixAccount.inc:1496 +#: ../lib/modules/posixAccount.inc:1868 ../lib/modules/posixAccount.inc:1871 +#: ../lib/modules/windowsUser.inc:223 ../lib/modules/windowsUser.inc:272 +#: ../lib/modules/windowsUser.inc:524 ../lib/modules/windowsUser.inc:549 +#: ../lib/modules/windowsUser.inc:615 ../lib/modules/windowsUser.inc:616 +#: ../lib/modules/windowsUser.inc:1638 ../lib/modules/windowsUser.inc:1641 +#: ../lib/modules/inetOrgPerson.inc:840 ../lib/modules/inetOrgPerson.inc:1556 +#: ../lib/modules/inetOrgPerson.inc:2052 ../lib/modules/inetOrgPerson.inc:3590 +#: ../lib/modules/asteriskVoicemail.inc:99 +#: ../lib/modules/asteriskVoicemail.inc:165 +#: ../lib/modules/customFields.inc:2444 ../lib/modules/heimdalKerberos.inc:124 +#: ../lib/modules/heimdalKerberos.inc:211 +#: ../lib/modules/heimdalKerberos.inc:223 +#: ../lib/modules/heimdalKerberos.inc:695 +#: ../lib/modules/heimdalKerberos.inc:698 ../lib/modules.inc:1043 +#: ../help/help.inc:202 +msgid "Password" +msgstr "パスワード" + +#: ../lib/modules/sambaSamAccount.inc:294 +#: ../lib/modules/sambaSamAccount.inc:1155 ../lib/modules/windowsUser.inc:214 +#: ../lib/modules/windowsUser.inc:410 ../lib/modules/windowsUser.inc:522 +#: ../lib/modules/windowsUser.inc:1626 +msgid "Password change at next login" +msgstr "次回のログインでパスワードを変更" + +#: ../lib/modules/mitKerberos.inc:148 ../lib/modules/mitKerberos.inc:261 +#: ../lib/modules/heimdalKerberos.inc:118 +#: ../lib/modules/heimdalKerberos.inc:227 +msgid "Password change command" +msgstr "パスワード変更コマンド" + +#: ../templates/lists/changePassword.php:295 +msgid "Password change options" +msgstr "パスワード変更オプション" + +#: ../lib/modules/ppolicyUser.inc:59 ../lib/modules/ppolicyUser.inc:74 +#: ../lib/modules/ppolicyUser.inc:132 ../lib/modules/ppolicyUser.inc:265 +msgid "Password change required" +msgstr "パスワードの変更が必要です" + +#: ../lib/types/ppolicyType.inc:91 ../lib/modules/ppolicy.inc:136 +#: ../lib/modules/ppolicy.inc:156 ../lib/modules/ppolicy.inc:300 +#: ../lib/modules/ppolicy.inc:510 +msgid "Password change requires old password" +msgstr "パスワード変更には古いパスワードが必要です" + +#: ../lib/modules/mitKerberos.inc:189 ../lib/modules/mitKerberos.inc:467 +#: ../lib/modules/heimdalKerberos.inc:154 +#: ../lib/modules/heimdalKerberos.inc:393 +msgid "Password change service" +msgstr "パスワード変更サービス" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:30 +msgid "Password check" +msgstr "パスワード・チェック" + +#: ../lib/modules/mitKerberos.inc:297 ../lib/modules/selfRegistration.inc:536 +#: ../lib/modules/posixGroup.inc:598 ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:107 ../lib/modules/posixAccount.inc:110 +#: ../lib/modules/posixAccount.inc:111 ../lib/modules/windowsUser.inc:616 +#: ../lib/modules/inetOrgPerson.inc:105 +msgid "Password contains invalid characters. Valid characters are:" +msgstr "パスワードに無効な文字が含まれています。有効な文字:" + +#: ../lib/modules/sambaSamAccount.inc:279 +#: ../lib/modules/sambaSamAccount.inc:282 +#: ../lib/modules/sambaSamAccount.inc:447 +#: ../lib/modules/sambaSamAccount.inc:1145 +#: ../lib/modules/sambaSamAccount.inc:1737 ../lib/modules/windowsUser.inc:198 +#: ../lib/modules/windowsUser.inc:394 ../lib/modules/windowsUser.inc:518 +#: ../lib/modules/windowsUser.inc:747 ../lib/modules/windowsUser.inc:1616 +msgid "Password does not expire" +msgstr "無期限のパスワード" + +#: ../lib/types/user.inc:103 ../lib/modules/shadowAccount.inc:61 +#: ../lib/modules/shadowAccount.inc:113 ../lib/modules/shadowAccount.inc:170 +#: ../lib/modules/shadowAccount.inc:181 ../lib/modules/shadowAccount.inc:215 +#: ../lib/modules/shadowAccount.inc:324 ../lib/modules/shadowAccount.inc:502 +msgid "Password expiration" +msgstr "パスワード有効期限" + +#: ../lib/modules/shadowAccount.inc:61 ../lib/modules/shadowAccount.inc:62 +msgid "Password expiration must be are natural number or -1." +msgstr "パスワード有効期限は自然数または-1でなければなりません。" + +#: ../templates/selfService/adminMain.php:505 ../help/help.inc:238 +msgid "Password field label" +msgstr "パスワード欄のラベル" + +#: ../lib/modules/asteriskVoicemail.inc:100 +msgid "Password for voicemail mailbox." +msgstr "ボイスメール・メールボックスのパスワード" + +#: ../lib/modules/posixGroup.inc:504 ../lib/modules/posixGroup.inc:557 +#: ../lib/modules/posixAccount.inc:191 ../lib/modules/posixAccount.inc:247 +#: ../lib/modules/posixAccount.inc:457 ../lib/modules/inetOrgPerson.inc:812 +#: ../lib/modules/inetOrgPerson.inc:3500 ../lib/modules/customFields.inc:136 +#: ../lib/modules/customFields.inc:2458 +msgid "Password hash type" +msgstr "パスワードハッシュ形式" + +#: ../lib/types/ppolicyType.inc:80 ../lib/modules/ppolicy.inc:92 +#: ../lib/modules/ppolicy.inc:145 ../lib/modules/ppolicy.inc:169 +#: ../lib/modules/ppolicy.inc:230 ../lib/modules/ppolicy.inc:474 +#: ../lib/modules/sambaDomain.inc:105 ../lib/modules/sambaDomain.inc:191 +#: ../lib/modules/sambaDomain.inc:283 ../lib/modules/sambaDomain.inc:606 +msgid "Password history length" +msgstr "パスワード履歴の長さ" + +#: ../templates/config/confmain.php:367 +msgid "Password mail settings" +msgstr "パスワード・メール設定" + +#: ../lib/modules/shadowAccount.inc:59 ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/ppolicy.inc:167 ../lib/modules/sambaDomain.inc:222 +msgid "Password maximum age must be are natural number." +msgstr "パスワード寿命の最大値は自然数でなければなりません。" + +#: ../lib/modules/shadowAccount.inc:66 +msgid "Password maximum age must be bigger as password minimum age." +msgstr "パスワード寿命の最大値は最小値より大きくなければなりません。" + +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/ppolicy.inc:168 +#: ../lib/modules/sambaDomain.inc:220 +msgid "Password maximum age must be bigger than password minimum age." +msgstr "パスワードの最長寿命は最短寿命より大きくなければなりません。" + +#: ../lib/modules/shadowAccount.inc:57 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/ppolicy.inc:166 ../lib/modules/sambaDomain.inc:221 +msgid "Password minimum age must be are natural number." +msgstr "パスワード寿命の最小値は自然数でなければなりません。" + +#: ../templates/config/mainmanage.php:401 ../help/help.inc:166 +msgid "Password must not contain part of user/first/last name" +msgstr "パスワードはユーザー名/姓/名の一部を含んではいけません。" + +#: ../templates/config/mainmanage.php:399 ../help/help.inc:164 +msgid "Password must not contain user name" +msgstr "パスワードにユーザー名を含めてはいけません。" + +#: ../lib/modules/imapAccess.inc:94 ../lib/modules/imapAccess.inc:290 +msgid "Password of IMAP admin user" +msgstr "IMAP管理ユーザーのパスワード" + +#: ../lib/types/ppolicyType.inc:39 +msgid "Password policies" +msgstr "パスワードポリシー" + +#: ../lib/types/ppolicyType.inc:48 +msgid "Password policies (ppolicy)" +msgstr "パスワードポリシー" + +#: ../templates/config/mainmanage.php:382 ../lib/types/user.inc:284 +#: ../lib/types/user.inc:837 ../lib/modules/ppolicyUser.inc:45 +#: ../lib/modules/ppolicyUser.inc:55 ../lib/modules/ppolicyUser.inc:67 +#: ../lib/modules/ppolicyUser.inc:83 ../lib/modules/ppolicyUser.inc:123 +#: ../lib/modules/ppolicyUser.inc:260 ../lib/modules/ppolicyUser.inc:293 +#: ../lib/modules/ppolicy.inc:62 ../lib/modules/sambaDomain.inc:266 +#: ../help/help.inc:154 +msgid "Password policy" +msgstr "パスワードポリシー" + +#: ../lib/types/ppolicyType.inc:81 ../lib/modules/ppolicy.inc:96 +#: ../lib/modules/ppolicy.inc:146 ../lib/modules/ppolicy.inc:242 +#: ../lib/modules/ppolicy.inc:490 +msgid "Password quality check" +msgstr "パスワード強度チェック" + +#: ../lib/modules/passwordSelfReset.inc:539 +msgid "Password reset confirmation" +msgstr "パスワード・リセットの確認" + +#: ../lib/modules/passwordSelfReset.inc:559 +msgid "Password reset notification" +msgstr "パスワード・リセットの通知" + +#: ../lib/modules/passwordSelfReset.inc:66 +#: ../lib/modules/passwordSelfReset.inc:875 +#: ../lib/modules/passwordSelfReset.inc:1097 +msgid "Password self reset" +msgstr "パスワードの自己リセット" + +#: ../lib/modules/passwordSelfReset.inc:1607 +msgid "Password successfully reset." +msgstr "パスワードがリセットされました。" + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:108 +#: ../lib/modules/shadowAccount.inc:168 ../lib/modules/shadowAccount.inc:177 +#: ../lib/modules/shadowAccount.inc:209 ../lib/modules/shadowAccount.inc:316 +#: ../lib/modules/shadowAccount.inc:501 +msgid "Password warning" +msgstr "パスワード警告" + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:64 +msgid "Password warning must be are natural number." +msgstr "パスワード警告期限は自然数でなければなりません。" + +#: ../templates/config/confmain.php:610 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:61 +#: ../lib/modules/passwordSelfReset.inc:1174 ../lib/modules.inc:1125 +msgid "Passwords are different!" +msgstr "パスワードが異なっています!" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:59 +msgid "Passwords match." +msgstr "パスワードのマッチ。" + +#: ../lib/types/nisObjectType.inc:77 +msgid "Path" +msgstr "パス" + +#: ../lib/modules/windowsUser.inc:205 +msgid "" +"Path of the user profile (UNC-path, e.g. \\\\server\\share\\user). $user is " +"replaced with user name." +msgstr "" +"ユーザプロファイルのパス。(UNCパス, 例えば \\\\サーバ\\共有\\\\ユーザー)。 " +"$user はユーザ名に置き換えられます。" + +#: ../lib/modules/sambaSamAccount.inc:358 +msgid "Path of the user profile." +msgstr "ユーザープロファイルのパス。" + +#: ../lib/modules/sambaSamAccount.inc:309 +msgid "" +"Path of the user profile. Can be a local absolute path or a UNC-path (\\" +"\\server\\share). $user and $group are replaced with user and group name." +msgstr "" +"ユーザプロファイルのパス。ローカル絶対パス、または、UNCパス(\\\\サーバ\\共" +"有)。 $use と $group はユーザとグループ名に置き換えられます。" + +#: ../lib/modules/imapAccess.inc:112 ../lib/modules/imapAccess.inc:146 +msgid "Path separator" +msgstr "パスの区切り" + +#: ../templates/config/confmain.php:311 +msgid "Path to external script" +msgstr "外部スクリプトのパス" + +#: ../lib/modules/ddns.inc:93 ../lib/modules/ddns.inc:371 +msgid "Path to key for DNS updates" +msgstr "DNS更新キーのパス" + +#: ../lib/modules/qmailGroup.inc:140 +msgid "" +"Path to the maildir/mbox on the mail system for sender confirmation and " +"moderation." +msgstr "送信者確認とモデレートを行うメールシステム上の maildir/mbox へのパス。" + +#: ../lib/modules/qmailUser.inc:248 +msgid "Path to the maildir/mbox on the mail system." +msgstr "メールシステム上の maildir/mbox へのパス。" + +#: ../lib/modules/pykotaUser.inc:152 ../lib/modules/pykotaUser.inc:326 +#: ../lib/modules/pykotaUser.inc:369 +msgid "Payment" +msgstr "支払い" + +#: ../lib/modules/pykotaUser.inc:148 +msgid "Payment and job history" +msgstr "支払いおよびジョブの履歴" + +#: ../lib/modules/pykotaUser.inc:149 +msgid "Payment and job history for this user." +msgstr "このユーザーに対する支払いおよびジョブの履歴。" + +#: ../lib/modules/pykotaUser.inc:265 ../lib/modules/pykotaUser.inc:283 +#: ../lib/modules/pykotaUser.inc:384 ../lib/modules/pykotaUser.inc:591 +#: ../lib/modules/pykotaUser.inc:983 +msgid "Payment history" +msgstr "支払い履歴" + +#: ../lib/tools/multiEdit.inc:53 +msgid "Performs modifications on multiple LDAP entries." +msgstr "複数のLDAPエントリに対して変更を行います。" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:41 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:64 +msgid "Permanently delete all children also?" +msgstr "全ての下位ツリーも完全に削除しますか?" + +#: ../lib/modules/asteriskAccount.inc:171 +#: ../lib/modules/asteriskAccount.inc:281 +#: ../lib/modules/asteriskAccount.inc:422 +#: ../lib/modules/asteriskAccount.inc:678 +#: ../lib/modules/asteriskAccount.inc:997 +#: ../lib/modules/asteriskAccount.inc:1263 +msgid "Permit" +msgstr "許可" + +#: ../lib/modules/inetOrgPerson.inc:130 +msgid "Personal" +msgstr "Personal" + +#: ../lib/selfService.inc:389 +msgid "Personal data" +msgstr "個人データ" + +#: ../lib/types/user.inc:102 ../lib/types/user.inc:620 +#: ../lib/modules/inetOrgPerson.inc:159 ../lib/modules/inetOrgPerson.inc:2650 +#: ../lib/modules/inetOrgPerson.inc:2657 ../lib/modules/inetOrgPerson.inc:3563 +#: ../lib/modules/inetOrgPerson.inc:3590 ../lib/modules/inetOrgPerson.inc:3609 +msgid "Photo" +msgstr "写真" + +#: ../lib/modules/inetOrgPerson.inc:1664 +msgid "Photo file" +msgstr "写真ファイル" + +#: ../lib/modules/inetOrgPerson.inc:1662 +msgid "Photo file (JPG format)" +msgstr "写真ファイル(JPGフォーマット)" + +#: ../lib/modules/asteriskAccount.inc:175 +#: ../lib/modules/asteriskAccount.inc:282 +#: ../lib/modules/asteriskAccount.inc:429 +#: ../lib/modules/asteriskAccount.inc:682 +#: ../lib/modules/asteriskAccount.inc:998 +#: ../lib/modules/asteriskAccount.inc:1265 +msgid "Pickup group" +msgstr "ピックアップ・グループ" + +#: ../lib/modules/ldapPublicKey.inc:77 +msgid "Please a comma separated list of your public SSH keys." +msgstr "カンマで区切られたSSH公開鍵のリストを入力してください!" + +#: ../lib/modules/nisMailAliasUser.inc:131 +msgid "Please activate the mail aliases type for this server profile." +msgstr "このサーバー・プロファイルのメール・エイリアスを有効化してください。" + +#: ../lib/modules/customScripts.inc:85 +msgid "" +"Please activate this option if your scripts may generate HTML output. " +"Otherwise, the output is treated as plain text." +msgstr "" +"あなたのスクリプトがHTML出力を生成する場合は、このオプションを有効にしてくだ" +"さい。それ以外の場合は、出力はプレーンテキストとして扱われます。" + +#: ../lib/modules/asteriskExtension.inc:193 +msgid "Please add at least one extension owner." +msgstr "一つ以上の拡張所有者を追加してください。" + +#: ../help/help.inc:157 +msgid "" +"Please change this setting only if you experience problems in receiving " +"emails from LAM. This defines the line ending of emails." +msgstr "" +"この設定は、LAMからのeメール受信で問題が発生した場合にのみ変更してください。" +"これは、eメールの行末を定義します。" + +#: ../lib/modules/qmailGroup.inc:331 +msgid "Please check if this email should be sent." +msgstr "このメールを送信するならばチェックしてください。" + +#: ../lib/modules/sambaSamAccount.inc:1093 +msgid "Please check your settings on the Unix page!" +msgstr "Unixページの設定を確認してください!" + +#: ../lib/modules/imapAccess.inc:104 +msgid "" +"Please choose the attribute to get the IMAP user name. The default is \"mail" +"\" but you can also use \"uid\"." +msgstr "" +"IMAPユーザー名を取得するための属性を選択してください。デフォルトは\"mail\"で" +"すが、\"uid\"も使用できます。" + +#: ../lib/modules/passwordSelfReset.inc:543 +msgid "Please click here to continue: @@resetLink@@" +msgstr "続けるにはここをクリック: @@resetLink@@" + +#: ../lib/types/user.inc:298 +msgid "Please click to lock/unlock this account." +msgstr "このアカウントに対するロック/アンロックをクリックしてください。" + +#: ../lib/modules/pykotaPrinter.inc:219 +msgid "Please enter \"Yes\" or \"No\"." +msgstr "\"Yes\"または\"No\"を入力してください。" + +#: ../lib/modules/sambaSamAccount.inc:108 +msgid "Please enter a RID number or the name of a special account!" +msgstr "特殊アカウントのRID番号または名前を入力してください。" + +#: ../lib/modules/asteriskAccount.inc:555 +msgid "Please enter a caller ID." +msgstr "発信者番号を入力してください。" + +#: ../lib/modules/imapAccess.inc:101 +msgid "" +"Please enter a comma separated list of domain names (e.g. \"company.com," +"example.com\"). LAM will only manage mailboxes from these domains." +msgstr "" +"カンマで区切られたドメインのリストを入力してください(例 \"example.org," +"example.com\")。LAMはこれらのドメインのメールボックスだけを管理します。" + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +msgid "Please enter a comma separated list of host names!" +msgstr "カンマで区切られたホスト名を入力してください!" + +#: ../lib/modules/asteriskExtension.inc:185 +msgid "Please enter a common name." +msgstr "名称を入力してください!" + +#: ../lib/modules/imapAccess.inc:178 +msgid "Please enter a correct list of valid mail domains." +msgstr "有効な電子メール・ドメインのリストを入力してください。" + +#: ../lib/modules/sudoRole.inc:130 ../lib/modules/sudoRole.inc:135 +#: ../lib/modules/sudoRole.inc:281 ../lib/modules/sudoRole.inc:282 +#: ../lib/modules/sudoRole.inc:283 ../lib/modules/sudoRole.inc:284 +msgid "Please enter a date in format \"DD.MM.YYYY HH:MM\" or \"DD.MM.YYYY\"." +msgstr "日付を、書式 \"DD.MM.YYYY HH:MM\" または \"DD.MM.YYYY\" で入力してください。" + +#: ../lib/modules/customFields.inc:89 +msgid "Please enter a descriptive label for this field." +msgstr "このエントリを説明するラベルを入力してください。" + +#: ../lib/modules/nisObject.inc:62 ../lib/modules/automount.inc:65 +#: ../lib/modules/sudoRole.inc:67 ../lib/modules/oracleService.inc:62 +msgid "Please enter a descriptive name for this entry." +msgstr "このエントリに対する記述名を入力できます。" + +#: ../lib/modules/windowsGroup.inc:119 +msgid "Please enter a descriptive text for this group." +msgstr "このグループを説明するテキストを入力してください。" + +#: ../lib/modules/windowsHost.inc:79 +msgid "Please enter a descriptive text for this host." +msgstr "このホストを説明するテキストを入力してください。" + +#: ../lib/modules/windowsUser.inc:120 +msgid "Please enter a descriptive text for this user." +msgstr "このユーザーを説明するテキストを入力してください。" + +#: ../lib/modules/organizationalRole.inc:173 +#: ../lib/modules/groupOfNames.inc:209 +msgid "Please enter a group name!" +msgstr "グループ名を入力してください!" + +#: ../lib/modules/windowsUser.inc:241 +msgid "" +"Please enter a list of Windows domains that can be selected for your user " +"accounts." +msgstr "" +"あなたのユーザー・アカウントに対して選択可能なWindowsドメインのリストを入力し" +"てください。" + +#: ../lib/modules/selfRegistration.inc:120 +msgid "Please enter a list of object classes for the new accounts." +msgstr "新しいアカウントに対するオブジェクトクラスのリストを入力してください。" + +#: ../lib/modules/asteriskVoicemail.inc:209 +msgid "Please enter a mailbox." +msgstr "メールボックスを入力してください。" + +#: ../lib/modules/device.inc:62 +msgid "Please enter a name for this device." +msgstr "このデバイスの名前を入力してください。" + +#: ../lib/modules/kolabSharedFolder.inc:113 +msgid "Please enter a name for this folder." +msgstr "このフォルダーの名前を入力してください。" + +#: ../lib/modules/ppolicy.inc:165 +msgid "Please enter a name for this policy." +msgstr "このポリシーに対する名前を入力してください。" + +#: ../lib/modules/kolabSharedFolder.inc:261 +msgid "Please enter a name." +msgstr "名前を入力してください。" + +#: ../lib/modules/customFields.inc:2626 +msgid "Please enter a natural number for column count." +msgstr "桁数を自然数で入力してください。" + +#: ../lib/modules/customFields.inc:2636 +msgid "Please enter a natural number for row count." +msgstr "行数を自然数で入力してください。" + +#: ../lib/modules/qmailUser.inc:465 ../lib/modules/qmailUser.inc:467 +msgid "Please enter a number for GID number." +msgstr "GID番号を入力してください。" + +#: ../lib/modules/qmailUser.inc:462 ../lib/modules/qmailUser.inc:464 +msgid "Please enter a number for UID number." +msgstr "UID番号を入力してください。" + +#: ../lib/modules/qmailUser.inc:458 ../lib/modules/qmailUser.inc:459 +msgid "Please enter a number for message count limit." +msgstr "メッセージ数制限の数値を入力してください。" + +#: ../lib/modules/qmailUser.inc:460 ../lib/modules/qmailUser.inc:461 +msgid "Please enter a number for message size limit." +msgstr "メッセージ・サイズ制限の数値を入力してください。" + +#: ../lib/modules/qmailUser.inc:456 ../lib/modules/qmailUser.inc:457 +msgid "Please enter a number for quota size." +msgstr "クォータ・サイズの数値を入力してください。" + +#: ../templates/lib/141_jquery-validationEngine-lang.php:51 +#: ../templates/lib/141_jquery-validationEngine-lang.php:55 +#: ../lib/modules/mitKerberos.inc:298 ../lib/modules/zarafaUser.inc:408 +#: ../lib/modules/zarafaUser.inc:409 ../lib/modules/zarafaUser.inc:410 +#: ../lib/modules/zarafaUser.inc:411 ../lib/modules/zarafaUser.inc:412 +#: ../lib/modules/zarafaUser.inc:413 ../lib/modules/zarafaUser.inc:415 +#: ../lib/modules/zarafaUser.inc:416 ../lib/modules/bindDLZ.inc:469 +#: ../lib/modules/kolabUser.inc:257 ../lib/modules/kolabUser.inc:258 +#: ../lib/modules/sudoRole.inc:285 ../lib/modules/sudoRole.inc:286 +msgid "Please enter a number." +msgstr "番号を入力してください。" + +#: ../lib/modules/ppolicy.inc:174 +msgid "Please enter a numeric value for the expire warning." +msgstr "期限切れ警告の数値を入力してください。" + +#: ../lib/modules/ppolicy.inc:173 +msgid "Please enter a numeric value for the failure count interval." +msgstr "試行回数インターバルの数値を入力してください。" + +#: ../lib/modules/ppolicy.inc:170 +msgid "Please enter a numeric value for the grace authentication limit." +msgstr "猶予認証リミットの数値を入力してください。" + +#: ../lib/modules/freeRadius.inc:259 ../lib/modules/freeRadius.inc:260 +msgid "Please enter a numeric value for the idle timeout." +msgstr "無操作タイムアウトに数値を入力してください。" + +#: ../lib/modules/ppolicy.inc:171 +msgid "Please enter a numeric value for the lockout duration." +msgstr "ロックアウト期間の数値を入力してください。" + +#: ../lib/modules/ppolicy.inc:172 +msgid "Please enter a numeric value for the maximum failure count." +msgstr "最大試行回数の数値を入力してください。" + +#: ../lib/modules/ppolicy.inc:175 +msgid "Please enter a numeric value for the minimum password length." +msgstr "最短パスワード長の数値を入力してください。" + +#: ../lib/modules/ppolicy.inc:169 +msgid "Please enter a numeric value for the password history length." +msgstr "パスワード履歴長の数値を入力してください。" + +#: ../lib/modules/sudoRole.inc:267 +msgid "Please enter a role name." +msgstr "ロール名を入力してください。" + +#: ../lib/modules/passwordSelfReset.inc:1203 +msgid "Please enter a security answer." +msgstr "秘密の回答を入力してください。" + +#: ../lib/modules/selfRegistration.inc:118 +msgid "Please enter a subject for the confirmation mails." +msgstr "確認メールの件名を入力してください。" + +#: ../lib/modules/kolabSharedFolder.inc:262 +msgid "Please enter a target folder." +msgstr "ターゲット・フォルダーを入力してください。" + +#: ../lib/modules/selfRegistration.inc:119 +msgid "" +"Please enter a text for the confirmation mails that includes the creation " +"link." +msgstr "確認メールの本文を生成リンクを含めて入力してください。" + +#: ../lib/modules/customFields.inc:85 +msgid "Please enter a unique name for this field." +msgstr "このフィールドの一意な名前を入力してください。" + +#: ../lib/modules/ppolicy.inc:81 +msgid "Please enter a unique name for this password policy." +msgstr "このパスワード・ポリシーに他と重複しない名前を入力してください。" + +#: ../lib/modules/kolabUser.inc:274 ../lib/modules/kolabUser.inc:280 +msgid "Please enter a user password." +msgstr "ユーザー・パスワードを入力してください。" + +#: ../lib/modules/zarafaDynamicGroup.inc:198 ../lib/modules/eduPerson.inc:245 +#: ../lib/modules/eduPerson.inc:247 ../lib/modules/zarafaAddressList.inc:169 +msgid "Please enter a valid DN in the field:" +msgstr "このフィールドに正しいDNを入力してください:" + +#: ../lib/types/bind.inc:205 +msgid "Please enter a valid DNS name." +msgstr "有効なDNS名を入力してください。" + +#: ../lib/modules/customFields.inc:1189 ../lib/modules/customFields.inc:1746 +msgid "" +"Please enter a valid LDAP attribute name. Allowed characters are a-z, 0-9, _ " +"and -." +msgstr "" +"有効なLDAP属性名を入力してください。有効な文字は: a-z, A-Z, 0-9, _ と -です。" + +#: ../templates/selfService/adminMain.php:221 +msgid "Please enter a valid LDAP suffix." +msgstr "有効なLDAP差フィックスを入力してください。" + +#: ../templates/selfService/adminMain.php:225 +msgid "" +"Please enter a valid LDAP user if you want to use it for all operations." +msgstr "全ての操作を行えるようにする、有効なLDAPユーザーを入力してください。" + +#: ../lib/modules/qmailUser.inc:454 +msgid "Please enter a valid account status." +msgstr "有効なアカウント状態を入力してください。" + +#: ../lib/modules/bindDLZ.inc:522 ../lib/modules/bindDLZ.inc:523 +msgid "Please enter a valid admin email address." +msgstr "正しい管理者eメールアドレスを入力してください。" + +#: ../templates/config/confmain.php:554 +msgid "Please enter a valid bind user." +msgstr "有効なbindユーザーを入力してください。" + +#: ../lib/modules/inetOrgPerson.inc:103 ../lib/modules/inetOrgPerson.inc:104 +msgid "Please enter a valid business category!" +msgstr "正しい業種を入力してください!" + +#: ../lib/modules/posixAccount.inc:129 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/windowsUser.inc:591 ../lib/modules/windowsUser.inc:592 +#: ../lib/modules/inetOrgPerson.inc:93 ../lib/modules/inetOrgPerson.inc:94 +msgid "Please enter a valid common name!" +msgstr "正しい名称を入力してください!" + +#: ../lib/modules/qmailUser.inc:471 +msgid "Please enter a valid configuration type." +msgstr "有効な構成タイプを入力してください。" + +#: ../lib/modules/mitKerberos.inc:291 ../lib/modules/mitKerberos.inc:292 +#: ../lib/modules/qmailUser.inc:470 ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/heimdalKerberos.inc:255 +#: ../lib/modules/heimdalKerberos.inc:256 +msgid "Please enter a valid date in format DD-MM-YYYY." +msgstr "正しい日付をDD-MM-YYYYの形式で入力してください!" + +#: ../lib/modules/asteriskAccount.inc:576 +#: ../lib/modules/asteriskAccount.inc:577 +msgid "Please enter a valid default user." +msgstr "有効なデフォルト・ユーザーを入力してください!" + +#: ../lib/modules/qmailUser.inc:455 +msgid "Please enter a valid delivery mode." +msgstr "有効な配送モードを入力してください。" + +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:111 ../lib/modules/windowsUser.inc:595 +#: ../lib/modules/windowsUser.inc:596 +msgid "Please enter a valid display name!" +msgstr "正しい表示名(display name)を入力してください!" + +#: ../lib/modules/sambaSamAccount.inc:117 ../lib/modules/windowsUser.inc:617 +msgid "Please enter a valid drive letter." +msgstr "正しいドライブ文字を入力してください!" + +#: ../lib/modules/kolabGroup.inc:177 ../lib/modules/kolabGroup.inc:178 +#: ../lib/modules/selfRegistration.inc:122 +#: ../lib/modules/selfRegistration.inc:482 +#: ../lib/modules/zarafaDynamicGroup.inc:200 +#: ../lib/modules/zarafaDynamicGroup.inc:201 ../lib/modules/qmailUser.inc:448 +#: ../lib/modules/qmailUser.inc:449 ../lib/modules/qmailUser.inc:450 +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:453 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:216 ../lib/modules/windowsUser.inc:607 +#: ../lib/modules/windowsUser.inc:608 ../lib/modules/pykotaUser.inc:319 +#: ../lib/modules/pykotaUser.inc:320 ../lib/modules/inetOrgPerson.inc:78 +#: ../lib/modules/inetOrgPerson.inc:80 +#: ../lib/modules/kolabSharedFolder.inc:259 +#: ../lib/modules/kolabSharedFolder.inc:260 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:421 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:425 +#: ../lib/modules/qmailGroup.inc:426 ../lib/modules/qmailGroup.inc:427 +#: ../lib/modules/qmailGroup.inc:428 ../lib/modules/qmailGroup.inc:429 +#: ../lib/modules/qmailGroup.inc:430 ../lib/modules/qmailGroup.inc:431 +#: ../lib/modules/qmailGroup.inc:432 ../lib/modules/passwordSelfReset.inc:232 +#: ../lib/modules/passwordSelfReset.inc:233 +#: ../lib/modules/passwordSelfReset.inc:900 +#: ../lib/modules/passwordSelfReset.inc:1122 +#: ../lib/modules/windowsGroup.inc:285 ../lib/modules/windowsGroup.inc:286 +#: ../lib/modules.inc:1170 +msgid "Please enter a valid email address!" +msgstr "正しい電子メールアドレスを入力してください!" + +#: ../lib/modules/zarafaDynamicGroup.inc:202 +#: ../lib/modules/zarafaDynamicGroup.inc:203 +#: ../lib/modules/zarafaGroup.inc:217 ../lib/modules/zarafaGroup.inc:218 +msgid "Please enter a valid email alias." +msgstr "有効な電子メールアドレスを入力してください。" + +#: ../lib/modules/passwordSelfReset.inc:907 +#: ../lib/modules/passwordSelfReset.inc:1129 +msgid "Please enter a valid employee number." +msgstr "有効な従業員番号を入力してください。" + +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:92 +msgid "Please enter a valid employee type!" +msgstr "正しい雇用形態を入力してください!" + +#: ../lib/modules/inetOrgPerson.inc:76 ../lib/modules/inetOrgPerson.inc:77 +msgid "Please enter a valid fax number!" +msgstr "正しいファクス番号を入力してください!" + +#: ../lib/modules/customFields.inc:187 +msgid "" +"Please enter a valid field name. Only letters, numbers, dash and underline " +"are allowed." +msgstr "" +"有効なフィールド名を入力してください。アルファベット、数字、- と _ のみが使" +"用できます。" + +#: ../lib/lists.inc:229 +msgid "" +"Please enter a valid filter. Only letters, numbers and \" _*$.@-\" are " +"allowed." +msgstr "" +"有効なフィルターを入力してください。アルファベット、数字と\" _*$.@-\" のみが" +"使用できます。" + +#: ../lib/modules/selfRegistration.inc:83 +#: ../lib/modules/selfRegistration.inc:218 +msgid "Please enter a valid first name." +msgstr "有効な名前(first name)を入力してください。" + +#: ../lib/modules/asteriskAccount.inc:570 +#: ../lib/modules/asteriskAccount.inc:571 +msgid "Please enter a valid from domain." +msgstr "有効な発信ドメインを入力してください。" + +#: ../lib/modules/asteriskAccount.inc:568 +#: ../lib/modules/asteriskAccount.inc:569 +msgid "Please enter a valid from user." +msgstr "有効な発信ユーザーを入力してください。" + +#: ../lib/modules/sambaSamAccount.inc:121 +msgid "Please enter a valid group name!" +msgstr "正しいグループ名を入力してください!" + +#: ../lib/modules/windowsGroup.inc:287 +msgid "Please enter a valid group scope." +msgstr "正しいグループ・スコープを入力してください。" + +#: ../lib/modules/windowsGroup.inc:288 +msgid "Please enter a valid group type." +msgstr "正しいグループ・タイプを入力してください。" + +#: ../lib/modules/pykotaUser.inc:327 +msgid "Please enter a valid job suffix." +msgstr "正しいJOBサフィックスを入力してください。" + +#: ../lib/modules/inetOrgPerson.inc:89 ../lib/modules/inetOrgPerson.inc:90 +msgid "Please enter a valid job title!" +msgstr "正しい役職を入力してください!" + +#: ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:219 +msgid "Please enter a valid last name." +msgstr "有効な姓(last name)を入力してください。" + +#: ../lib/modules/pykotaGroup.inc:205 ../lib/modules/pykotaUser.inc:321 +msgid "Please enter a valid limit type." +msgstr "有効な制限タイプを入力してください。" + +#: ../lib/modules/eduPerson.inc:253 +msgid "Please enter a valid list of affiliations." +msgstr "正しい所属リストを入力してください。" + +#: ../lib/modules/freeRadius.inc:255 ../lib/modules/freeRadius.inc:256 +msgid "Please enter a valid list of group names." +msgstr "正しいグループ名リストを入力してください。" + +#: ../lib/modules/hostObject.inc:111 +msgid "Please enter a valid list of host names." +msgstr "正しいホスト名リストを入力してください。" + +#: ../lib/modules/authorizedServiceObject.inc:130 +msgid "Please enter a valid list of service names." +msgstr "正しいサービス名リストを入力してください。" + +#: ../lib/modules/inetOrgPerson.inc:74 ../lib/modules/inetOrgPerson.inc:75 +msgid "Please enter a valid mobile number!" +msgstr "正しい携帯電話番号を入力してください!" + +#: ../lib/modules/pykotaPrinter.inc:215 ../lib/modules/pykotaPrinter.inc:216 +#: ../lib/modules/pykotaPrinter.inc:217 ../lib/modules/pykotaPrinter.inc:218 +#: ../lib/modules/pykotaUser.inc:322 ../lib/modules/pykotaUser.inc:323 +#: ../lib/modules/pykotaUser.inc:324 ../lib/modules/pykotaUser.inc:325 +#: ../lib/modules/pykotaUser.inc:326 +msgid "Please enter a valid number (e.g. \"1.5\")." +msgstr "有効な数値(例えば \"1.5\")を入力してください。" + +#: ../lib/modules/pykotaPrinter.inc:213 ../lib/modules/pykotaPrinter.inc:214 +msgid "Please enter a valid number." +msgstr "有効な数値を入力してください。" + +#: ../lib/modules/customFields.inc:190 +msgid "Please enter a valid object class." +msgstr "有効なオブジェクト・クラスを入力してください。" + +#: ../lib/modules/dhcp_settings.inc:331 +msgid "Please enter a valid option." +msgstr "有効なオプションを入力してください。" + +#: ../lib/modules/zarafaServer.inc:177 ../lib/modules/zarafaServer.inc:178 +msgid "Please enter a valid path." +msgstr "正しいパスを入力してください。" + +#: ../lib/modules/asteriskAccount.inc:572 +#: ../lib/modules/asteriskAccount.inc:573 ../lib/modules/zarafaServer.inc:173 +#: ../lib/modules/zarafaServer.inc:174 ../lib/modules/zarafaServer.inc:175 +#: ../lib/modules/zarafaServer.inc:176 +msgid "Please enter a valid port number." +msgstr "有効なポート番号を入力してください。" + +#: ../lib/modules/inetOrgPerson.inc:83 ../lib/modules/inetOrgPerson.inc:84 +msgid "Please enter a valid postal address!" +msgstr "正しい住所を入力してください!" + +#: ../lib/modules/windowsUser.inc:605 ../lib/modules/windowsUser.inc:606 +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:88 +msgid "Please enter a valid postal code!" +msgstr "正しい郵便番号を入力してください!" + +#: ../lib/modules/eduPerson.inc:251 +msgid "Please enter a valid primary affiliation." +msgstr "正しい主務所属を入力してください。" + +#: ../lib/modules/freeRadius.inc:253 ../lib/modules/freeRadius.inc:254 +msgid "Please enter a valid realm." +msgstr "正しいレルム(realm)を入力してください。" + +#: ../lib/modules/kolabGroup.inc:181 ../lib/modules/kolabGroup.inc:182 +#: ../lib/modules/kolabUser.inc:253 ../lib/modules/kolabUser.inc:254 +#: ../lib/modules/kolabSharedFolder.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:251 +msgid "Please enter a valid recipient expression." +msgstr "有効な受信者表現を入力してください。" + +#: ../lib/modules/inetOrgPerson.inc:85 ../lib/modules/inetOrgPerson.inc:86 +msgid "Please enter a valid registered address." +msgstr "正しい登録アドレスを入力してください!" + +#: ../lib/modules/eduPerson.inc:252 +msgid "Please enter a valid scoped affiliation." +msgstr "正しい兼務所属を入力してください。" + +#: ../lib/modules/kolabGroup.inc:183 ../lib/modules/kolabGroup.inc:184 +#: ../lib/modules/kolabUser.inc:255 ../lib/modules/kolabUser.inc:256 +#: ../lib/modules/kolabSharedFolder.inc:252 +#: ../lib/modules/kolabSharedFolder.inc:253 +msgid "Please enter a valid sender expression." +msgstr "有効な送信者パターンを入力してください。" + +#: ../lib/modules/qmailUser.inc:468 ../lib/modules/qmailUser.inc:469 +#: ../lib/modules/imapAccess.inc:177 +msgid "Please enter a valid server name where the mailboxes reside." +msgstr "メールボックスが存在する有効なサーバー名を入力してください。" + +#: ../lib/modules/inetOrgPerson.inc:81 ../lib/modules/inetOrgPerson.inc:82 +msgid "Please enter a valid street name!" +msgstr "正しい町名(street name)を入力してください!" + +#: ../lib/modules/windowsUser.inc:601 ../lib/modules/windowsUser.inc:602 +#: ../lib/modules/windowsUser.inc:603 ../lib/modules/windowsUser.inc:604 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:71 +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:73 +msgid "Please enter a valid telephone number!" +msgstr "正しい電話番号を入力してください!" + +#: ../lib/modules/passwordSelfReset.inc:921 +#: ../lib/modules/passwordSelfReset.inc:1143 +msgid "Please enter a valid user name or email address." +msgstr "正しいユーザー名またはeメールアドレスを入力してください。" + +#: ../lib/modules/posixGroup.inc:724 ../lib/modules/posixAccount.inc:1160 +#: ../lib/modules/posixAccount.inc:1165 +#, php-format +msgid "Please enter a value between %s and %s!" +msgstr "%s と %s の間の値を入力してください!" + +#: ../lib/modules/customFields.inc:2780 +msgid "Please enter a value for status \"checked\"." +msgstr "「チェックされた」状態に対する値を入力してください。" + +#: ../lib/modules/customFields.inc:2787 +msgid "Please enter a value for status \"unchecked\"." +msgstr "「チェックされていない」状態に対する値を入力してください。" + +#: ../templates/multiEdit.php:140 +msgid "Please enter a value to add." +msgstr "追加する値を入力してください。" + +#: ../templates/multiEdit.php:143 +msgid "Please enter a value to modify." +msgstr "変更する値を入力してください。" + +#: ../lib/modules/customFields.inc:77 +msgid "Please enter an alias for this group." +msgstr "このグループに対するエイリアス名を入力してください。" + +#: ../lib/modules/customFields.inc:189 +msgid "Please enter an alias name." +msgstr "エイリアス名を入力してください。" + +#: ../lib/modules/kolabUser.inc:286 ../lib/modules/imapAccess.inc:208 +#, php-format +msgid "Please enter an email address on this page: %s" +msgstr "このページに対するメールアドレスを入力してください。: %s" + +#: ../lib/modules/pykotaUser.inc:353 +#, php-format +msgid "Please enter an user name on this page: %s" +msgstr "このページのユーザー名を入力してください。: %s" + +#: ../lib/modules/windowsUser.inc:1352 ../lib/modules/windowsUser.inc:1361 +#: ../lib/modules/windowsUser.inc:1370 ../lib/modules/windowsUser.inc:1381 +msgid "Please enter either yes or no." +msgstr "yesまたはnoを入力してください。" + +#: ../lib/modules/sudoRole.inc:273 ../lib/modules/sudoRole.inc:274 +msgid "Please enter only ASCII characters for the commands." +msgstr "コマンドにはASCII文字だけを入力してください。" + +#: ../lib/modules/sudoRole.inc:271 ../lib/modules/sudoRole.inc:272 +msgid "Please enter only ASCII characters for the host names." +msgstr "ホスト名にはASCII文字だけを入力してください。" + +#: ../lib/modules/sudoRole.inc:279 ../lib/modules/sudoRole.inc:280 +msgid "Please enter only ASCII characters for the options." +msgstr "オプションにはにはASCII文字だけを入力してください。" + +#: ../lib/modules/sudoRole.inc:277 ../lib/modules/sudoRole.inc:278 +msgid "Please enter only ASCII characters for the run groups." +msgstr "実行グループにはASCII文字だけを入力してください。" + +#: ../lib/modules/sudoRole.inc:275 ../lib/modules/sudoRole.inc:276 +msgid "Please enter only ASCII characters for the run users." +msgstr "実行ユーザーにはASCII文字だけを入力してください。" + +#: ../lib/modules/device.inc:140 ../lib/modules/device.inc:141 +msgid "Please enter only ASCII characters for the serial number." +msgstr "シリアル番号にはASCII文字だけを入力してください。" + +#: ../lib/modules/sudoRole.inc:269 ../lib/modules/sudoRole.inc:270 +msgid "Please enter only ASCII characters for the user names." +msgstr "ユーザー名にはASCII文字だけを入力してください。" + +#: ../lib/modules/passwordSelfReset.inc:231 +msgid "" +"Please enter the DN and password of the administrative password self reset " +"account." +msgstr "" +"パスワード自己リセットの管理者アカウント用のDNとパスワードを入力してくださ" +"い。" + +#: ../lib/modules/selfRegistration.inc:117 +msgid "" +"Please enter the DN and password of the administrative self registration " +"account." +msgstr "管理用自己登録アカウントのDNとパスワードを入力してください。" + +#: ../lib/modules/posixGroup.inc:525 ../lib/modules/posixAccount.inc:502 +msgid "" +"Please enter the DN of the LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "" +"オブジェクトクラス \"sambaUnixIdPool\" のLDAPエントリのDNを入力してください。" + +#: ../lib/modules/bindDLZ.inc:86 ../lib/modules/bindDLZ.inc:90 +msgid "Please enter the IP address for this entry." +msgstr "このエントリのIPアドレスを入力してください。" + +#: ../lib/modules/ddns.inc:99 +msgid "Please enter the IP address of your DNS server." +msgstr "DNSサーバーのIPアドレスを入力してください。" + +#: ../lib/modules/selfRegistration.inc:62 +msgid "Please enter the LDAP DN that should be used to create new users." +msgstr "新規ユーザー生成用のLDAP DNを入力してください。" + +#: ../lib/modules/passwordSelfReset.inc:105 +msgid "Please enter the LDAP DN that should be used to reset passwords." +msgstr "パスワード・リセット用のLDAP DNを入力してください。" + +#: ../lib/modules/customFields.inc:93 +msgid "Please enter the LDAP attribute name for this field." +msgstr "このフィールドのLDAP属性名を入力してください。" + +#: ../help/help.inc:123 +msgid "" +"Please enter the LDAP suffix where LAM should start to search for users. The " +"LDAP filter needs to match the given user name to exactly one DN. The value " +"\"%USER%\" will be replaced by the user name from the login page." +msgstr "" +"LAMがユーザー検索を開始するLDAPサフィックスを入力してください。LDAPフィルタは" +"既存の一つのDNと正確に一致するユーザー名にマッチする必要があります。値 " +"\"%USER\" はログインページのユーザー名に置き換えられます。" + +#: ../lib/modules/pykotaUser.inc:157 +msgid "" +"Please enter the LDAP suffix where the PyKota job entries are stored " +"(configuration option \"jobbase\")." +msgstr "" +"PyKotaジョブが保存されるLDAPサフィックスを入力してください(構成オプション " +"\"jobbase\")。" + +#: ../lib/modules/asteriskExtension.inc:188 +#: ../lib/modules/asteriskVoicemail.inc:214 +msgid "Please enter the account context." +msgstr "アカウント・コンテキストを入力してください。" + +#: ../lib/modules.inc:928 +msgid "Please enter the account information on the other pages first." +msgstr "最初に、他のページでアカウント情報を入力してください。" + +#: ../lib/modules/asteriskAccount.inc:565 +msgid "Please enter the account type." +msgstr "アカウント・タイプを入力してください。" + +#: ../lib/modules/asteriskAccount.inc:120 +msgid "Please enter the account's type (e.g. \"friend\")." +msgstr "アカウントのタイプを入力してください(例 \"友達\")。" + +#: ../lib/modules/asteriskExtension.inc:187 +msgid "Please enter the application data." +msgstr "アプリケーション・データを入力してください。" + +#: ../lib/modules/asteriskExtension.inc:186 +msgid "Please enter the application." +msgstr "アプリケーションを入力してください。" + +#: ../lib/modules/automount.inc:69 +msgid "" +"Please enter the automount entry (e.g. \"-fstype=nfs,rw server:/home\")." +msgstr "" +"自動マウント・エントリを入力してください(例 \"-fstype=nfs,rw server:/projects" +"\")。" + +#: ../templates/login.php:292 +msgid "Please enter the configuration and create a server profile." +msgstr "構成を入力してサーバー・プロファイルを生成してください。" + +#: ../help/help.inc:57 +msgid "" +"Please enter the configuration password. This is NOT your LDAP password. It " +"is stored in your .conf-file. If this is the first time you log in, enter " +"\"lam\"." +msgstr "" +"構成パスワードを入力。これはLDAPパスワードとは異なります。これは .confファイ" +"ルに記録されます。もしもこれが最初のログインならば、\"lam\" と入力してくださ" +"い。" + +#: ../lib/modules/oracleService.inc:66 +msgid "" +"Please enter the connection string (e.g. \"(DESCRIPTION=(ADDRESS=" +"(PROTOCOL=TCP)(HOST=server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db." +"example.com)))\")." +msgstr "" +"接続文字列を入力してください(例. \"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)" +"(HOST=server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db.example.com)))\")。" + +#: ../lib/modules/puppetClient.inc:81 ../lib/modules/puppetClient.inc:85 +msgid "Please enter the environment name for this node (e.g. production)." +msgstr "このノードに対する環境名を入力してください(例 production)。" + +#: ../lib/modules/asteriskAccount.inc:559 +msgid "Please enter the extension context." +msgstr "拡張コンテキストを入力してください。" + +#: ../lib/modules/asteriskExtension.inc:189 +msgid "Please enter the extension name." +msgstr "拡張名を入力してください。" + +#: ../lib/modules/windowsGroup.inc:115 +msgid "Please enter the group name." +msgstr "グループ名を入力してください。" + +#: ../lib/modules/asteriskAccount.inc:562 ../lib/modules/windowsHost.inc:75 +msgid "Please enter the host name." +msgstr "ホスト名を入力してください。" + +#: ../lib/modules/customScripts.inc:60 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [account type] [action] [script and arguments]" +msgstr "" +"実行するスクリプトのリストを入力してください。各々の行は以下のフォーマットで" +"記入してください: [account type] [action] [script and arguments]" + +#: ../lib/modules/customScripts.inc:74 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [action] [script and arguments]" +msgstr "" +"実行するスクリプトのリストを入力してください。各々の行は以下のフォーマットで" +"記入してください: [action] [script and arguments]<" + +#: ../lib/modules/nisObject.inc:66 +msgid "" +"Please enter the mapping entry (e.g. \"-fstype=nfs,rw server:/projects\")." +msgstr "" +"マッピング・エントリを入力してください(例 \"-fstype=nfs,rw server:/projects" +"\")。" + +#: ../lib/modules/nisObject.inc:70 +msgid "Please enter the mapping name for this entry (e.g. auto.home)." +msgstr "このエントリに対するマッピング名を入力してください(例 auto.home)。" + +#: ../help/help.inc:143 +msgid "" +"Please enter the master configuration password. This is NOT your LDAP " +"password. It is stored in your config.cfg file. If this is the first time " +"you log in, enter \"lam\"." +msgstr "" +"マスタ構成パスワードを入力してください。これはLDAPパスワードではありません。" +"これはconfig.cfgファイルに保存されます。もしもこれが最初のログインならば、 " +"\"lam\" と入力してください。" + +#: ../templates/config/mainlogin.php:145 +msgid "Please enter the master password to change the general preferences:" +msgstr "" +"総合プリファレンスを変更するためのマスターパスワードを入力してください:" + +#: ../lib/modules/qmailGroup.inc:424 +msgid "Please enter the message store." +msgstr "メッセージ・ストアを入力してください。" + +#: ../help/help.inc:131 +msgid "" +"Please enter the name of the new profile and the password to change its " +"settings. Profile names may contain letters, numbers and -/_." +msgstr "" +"その設定を変更するための新しいプロファイル名とパスワードを入力。プロファイル" +"名にはアルファベット、数字と -/_ が使用できます。" + +#: ../help/help.inc:133 +msgid "" +"Please enter the new name of the profile. The name may contain letters, " +"numbers and -/_." +msgstr "" +"新しいプロファイル名を入力。名前にはアルファベット、数字と -/_ が使用できま" +"す。" + +#: ../lib/modules/selfRegistration.inc:66 +#: ../lib/modules/passwordSelfReset.inc:109 +msgid "" +"Please enter the password for the admin DN. Please note that this is saved " +"as clear-text in the self service profile." +msgstr "" +"管理DNのパスワードを入力してください。これはクリアテキスト形式で自己サービス" +"プロファイルに保存される事に注意してください。" + +#: ../lib/modules/asteriskAccount.inc:116 ../lib/modules/posixAccount.inc:523 +#: ../lib/modules/windowsUser.inc:224 ../lib/modules/inetOrgPerson.inc:841 +msgid "Please enter the password which you want to set for this account." +msgstr "このアカウントに対するパスワードを入力してください。" + +#: ../help/help.inc:203 +msgid "" +"Please enter the password which you want to set for this account. You may " +"also generate a random password (12 characters) which will be displayed on " +"your screen." +msgstr "" +"このアカウントに対するパスワードを入力してください。ランダムなパスワード(12文" +"字)を生成して画面に表示すること模できます。" + +#: ../lib/modules/posixAccount.inc:474 +msgid "Please enter the path to the user's home directory." +msgstr "ユーザのホームディレクトリを入力してください。" + +#: ../lib/modules/zarafaServer.inc:69 +msgid "Please enter the port number for (unencrypted) HTTP connections." +msgstr "(暗号化されない)HTTPコネクションのポート番号を入力してください。" + +#: ../lib/modules/zarafaServer.inc:73 +msgid "Please enter the port number for encrypted connections." +msgstr "暗号化コネクションに対するポート番号を入力してください。" + +#: ../lib/modules/passwordSelfReset.inc:81 +msgid "" +"Please enter the possible security questions for the password self reset." +msgstr "パスワード自己リセットに使用する秘密の質問を入力してください。" + +#: ../lib/modules/asteriskExtension.inc:191 +msgid "Please enter the priority." +msgstr "優先度を入力してください。" + +#: ../lib/modules/imapAccess.inc:110 +msgid "Please enter the quota limit of this mailbox in kilobytes." +msgstr "" +"このメールボックスのクオータ・リミットををキロバイト単位で入力してください。" + +#: ../lib/modules/quota.inc:154 +msgid "" +"Please enter the quota settings for this mount point. The syntax is: {soft " +"block limit},{hard block limit},{soft inode limit},{hard inode limit}" +msgstr "" +"このマウントポイントに対するクォータ設定を入力してください。書式は {soft " +"block limit},{hard block limit},{soft inode limit},{hard inode limit} です。" + +#: ../lib/modules/systemQuotas.inc:69 +msgid "" +"Please enter the quota settings for this user. The syntax is: {mount point}," +"{soft block limit},{hard block limit},{soft inode limit},{hard inode limit}." +msgstr "" +"このユーザーに対するクォータ設定を入力してください。書式は {mount point}," +"{soft block limit},{hard block limit},{soft inode limit},{hard inode limit} " +"です。" + +#: ../lib/modules/nisMailAlias.inc:86 +msgid "Please enter the recipients for this alias." +msgstr "このエイリアスの受信者を入力してください。" + +#: ../lib/modules/customFields.inc:109 +#, php-format +msgid "" +"Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") to validate " +"this field. For a syntax description see here." +msgstr "" +"このフィールドを検証する正規表現(例 \"/^[0-9a-zA-Z]+$/\")。文法の説明は、こちらをご覧ください。" + +#: ../templates/lists/changePassword.php:517 +#: ../lib/modules/selfRegistration.inc:533 +#: ../lib/modules/sambaSamAccount.inc:105 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/windowsUser.inc:615 ../lib/modules/customFields.inc:2533 +msgid "Please enter the same password in both password fields." +msgstr "両方のパスワードフィールドに同じパスワードを入力してください。" + +#: ../lib/modules/passwordSelfReset.inc:77 +msgid "Please enter the security question for the password self reset." +msgstr "パスワード自己リセット用の秘密の質問を入力してください。" + +#: ../lib/modules/sambaSamAccount.inc:370 +msgid "Please enter the time limit in minutes. 0 means unlimited." +msgstr "制限時間を分単位で入力してください。0は無制限を意味します。" + +#: ../lib/modules/windowsUser.inc:108 ../lib/modules/windowsUser.inc:116 +msgid "Please enter the user's name." +msgstr "ユーザーの名前を入力してください。" + +#: ../lib/modules/puppetClient.inc:101 ../lib/modules/puppetClient.inc:105 +msgid "" +"Please enter your Puppet variables for this node (e.g. config_exim=true)." +msgstr "このノードに対するPuppet変数を入力してください(例 confg_exim=true)。" + +#: ../templates/selfService/adminLogin.php:133 +msgid "" +"Please enter your master configuration password to change the self service " +"profile:" +msgstr "" +"セルフ・サービス・プロファイルを変更するために、あなたのマスター構成パスワー" +"ドを入力してください:" + +#: ../templates/config/conflogin.php:132 +msgid "Please enter your password to change the server preferences:" +msgstr "サーバー優先度を変更するためのパスワードを入力してください:" + +#: ../lib/modules/ldapPublicKey.inc:73 +msgid "Please enter your public SSH key." +msgstr "SSH公開鍵を入力してください。" + +#: ../lib/modules/range.inc:402 ../lib/modules/fixed_ip.inc:404 +msgid "Please fill out the DHCP settings first." +msgstr "最初にDHCP設定を記入してください。" + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "Please go back and try again." +msgstr "前に戻ってやり直してください。" + +#: ../templates/masscreate.php:246 +msgid "" +"Please provide a CSV formated file with your account data. The cells in the " +"first row must be filled with the column identifiers. The following rows " +"represent one account for each row." +msgstr "" +"アカウント情報のCSV形式ファイルを与えてください。先頭行のセルには、カラム識別" +"子が記入されていなくてはなりません。後に続く行は、各々の行が一つのアカウント" +"になります。" + +#: ../lib/config.inc:1768 +msgid "Please provide a file in DER or PEM format." +msgstr "DERまたはPEMフォーマットのファイルを用意してください。" + +#: ../templates/massBuildAccounts.php:256 +msgid "Please provide a file to upload." +msgstr "アップロードするファイルを指定してください。" + +#: ../lib/modules/inetOrgPerson.inc:749 +msgid "" +"Please select an image file to upload. It must be in JPG format (.jpg/.jpeg)." +msgstr "" +"アップロードする画像ファイルを選択してください。画像はJPGフォーマット\n" +"(.jpg/.jpeg)でなくてはなりません。" + +#: ../lib/modules/customFields.inc:101 +msgid "Please select the field type (e.g. text field)." +msgstr "フィールドのタイプを入力してください(例 text field)。" + +#: ../help/help.inc:270 +msgid "Please select the suffix where changes should be done." +msgstr "変更が行われるサフィックスを選択してください。" + +#: ../help/help.inc:149 +msgid "" +"Please select your prefered log level. Messages with a lower level will not " +"be logged." +msgstr "" +"希望するログレベルを選択してください。下のレベルではメッセージは記録されませ" +"ん。" + +#: ../lib/modules/asteriskVoicemail.inc:228 +msgid "Please set the voicemail password with \"Set password\" before saving." +msgstr "" +"\"パスワードを設定\"を選択したら、保存前にボイスメール・パスワードを入力して" +"ください。" + +#: ../lib/modules.inc:877 +#, php-format +msgid "Please set up all required attributes on page: %s" +msgstr "ページ %s の必須属性を全て設定してください。" + +#: ../templates/config/profmanage.php:220 +#: ../templates/selfService/profManage.php:160 +msgid "Please set up your master configuration file (config/config.cfg) first!" +msgstr "最初に、マスター構成ファイル(config/config.cfg)を設定してください!" + +#: ../lib/modules/dhcp_settings.inc:551 ../lib/modules/ddns.inc:362 +msgid "" +"Please set your LDAP suffix to an LDAP entry with object class \"dhcpService" +"\" or \"dhcpServer\"." +msgstr "" +"\"dhcpService\" または \"dhcpServer\" オブジェクトクラスのLDAPエントリに対す" +"るLDAPサフィックスを設定してください。" + +#: ../templates/multiEdit.php:213 +msgid "Please specify at least one operation." +msgstr "少なくとも一つの操作を選択してください。" + +#: ../lib/modules/passwordSelfReset.inc:145 +msgid "Please specify how your users need to identify themselves." +msgstr "ユーザーが自分自身を識別する方法を指定してください。" + +#: ../lib/modules/windowsGroup.inc:143 +msgid "Please specify the group scope." +msgstr "グループ・スコープを指定してください。" + +#: ../lib/modules/customFields.inc:141 +msgid "" +"Please specify the possible values for this field. Each value can have a " +"descriptive label that is displayed to the user." +msgstr "" +"このフィールドに対して可能な値を記述してください。各々の値は、ユーザーに表示" +"するための説明ラベルを持つことができます。" + +#: ../help/help.inc:274 +msgid "" +"Please specify which attributes should be changed. The modify operation will " +"also add an value if the attribute does not yet exist. To delete all values " +"of an attribute please leave the value field empty." +msgstr "" +"どの属性を変更するかを指定してください。変更操作は、属性が存在しない場合は追" +"加を行います。属性の全ての値を削除する場合は、値を空欄にしてください。" + +#: ../lib/modules/inetOrgPerson.inc:100 +msgid "Please upload a .jpg/.jpeg file." +msgstr ".jpg/.jpeg ファイルをアップロードしてください。" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:172 +msgid "Please wait" +msgstr "お待ちください" + +#: ../lib/types/ppolicyType.inc:149 +#, php-format +msgid "Policy count: %s" +msgstr "ポリシー・アカウント: %s" + +#: ../lib/modules/kolabUser.inc:246 +msgid "Policy list has invalid format!" +msgstr "ポリシーリストの形式が無効です!" + +#: ../lib/modules/asteriskAccount.inc:179 +#: ../lib/modules/asteriskAccount.inc:283 +#: ../lib/modules/asteriskAccount.inc:436 +#: ../lib/modules/asteriskAccount.inc:686 +#: ../lib/modules/asteriskAccount.inc:999 +#: ../lib/modules/asteriskAccount.inc:1267 ../lib/modules/bindDLZ.inc:188 +#: ../lib/modules/bindDLZ.inc:192 ../lib/modules/bindDLZ.inc:392 +#: ../lib/modules/bindDLZ.inc:505 ../lib/modules/bindDLZ.inc:1358 +#: ../lib/modules/bindDLZ.inc:1601 +msgid "Port" +msgstr "ポート" + +#: ../lib/modules/asteriskAccount.inc:180 +msgid "Port number." +msgstr "ポート番号" + +#: ../templates/pdfedit/pdfpage.php:592 ../templates/pdfedit/pdfpage.php:602 +#: ../templates/pdfedit/pdfpage.php:612 ../templates/pdfedit/pdfpage.php:627 +msgid "Position" +msgstr "位置" + +#: ../templates/masscreate.php:310 ../templates/masscreate.php:384 +#: ../lib/modules/customScripts.inc:125 ../lib/modules/customScripts.inc:127 +#: ../lib/modules/customScripts.inc:129 +#: ../lib/modules/sambaGroupMapping.inc:604 +msgid "Possible values" +msgstr "候補となる値" + +#: ../lib/modules/pykotaPrinter.inc:130 ../lib/modules/posixGroup.inc:530 +#: ../lib/modules/sambaGroupMapping.inc:172 +#: ../lib/modules/organizationalRole.inc:103 +#: ../lib/modules/groupOfNames.inc:115 +msgid "" +"Possible wildcards are: \"*\" = any character, \"^\" = line start, \"$\" = " +"line end" +msgstr "" +"可能なワイルドカード: \"*\" = 全ての文字, \"^\" = 行の先頭, \"$\" = 行末" + +#: ../lib/modules/windowsUser.inc:160 ../lib/modules/windowsUser.inc:320 +#: ../lib/modules/windowsUser.inc:510 ../lib/modules/windowsUser.inc:547 +#: ../lib/modules/windowsUser.inc:709 ../lib/modules/windowsUser.inc:1598 +#: ../lib/modules/windowsUser.inc:1735 ../lib/modules/inetOrgPerson.inc:159 +#: ../lib/modules/inetOrgPerson.inc:181 ../lib/modules/inetOrgPerson.inc:409 +#: ../lib/modules/inetOrgPerson.inc:548 ../lib/modules/inetOrgPerson.inc:672 +#: ../lib/modules/inetOrgPerson.inc:676 ../lib/modules/inetOrgPerson.inc:1234 +#: ../lib/modules/inetOrgPerson.inc:1237 ../lib/modules/inetOrgPerson.inc:1896 +#: ../lib/modules/inetOrgPerson.inc:2566 ../lib/modules/inetOrgPerson.inc:3513 +#: ../lib/modules/inetOrgPerson.inc:3578 +msgid "Post office box" +msgstr "私書箱" + +#: ../lib/modules/inetOrgPerson.inc:83 ../lib/modules/inetOrgPerson.inc:158 +#: ../lib/modules/inetOrgPerson.inc:193 ../lib/modules/inetOrgPerson.inc:393 +#: ../lib/modules/inetOrgPerson.inc:560 ../lib/modules/inetOrgPerson.inc:688 +#: ../lib/modules/inetOrgPerson.inc:1278 ../lib/modules/inetOrgPerson.inc:1898 +#: ../lib/modules/inetOrgPerson.inc:2533 ../lib/modules/inetOrgPerson.inc:3521 +#: ../lib/modules/inetOrgPerson.inc:3580 +msgid "Postal address" +msgstr "住所" + +#: ../lib/modules/inetOrgPerson.inc:689 +msgid "Postal address, city" +msgstr "住所、区市町村" + +#: ../lib/modules/windowsUser.inc:156 ../lib/modules/windowsUser.inc:326 +#: ../lib/modules/windowsUser.inc:509 ../lib/modules/windowsUser.inc:548 +#: ../lib/modules/windowsUser.inc:605 ../lib/modules/windowsUser.inc:710 +#: ../lib/modules/windowsUser.inc:1597 ../lib/modules/windowsUser.inc:1736 +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:159 +#: ../lib/modules/inetOrgPerson.inc:184 ../lib/modules/inetOrgPerson.inc:385 +#: ../lib/modules/inetOrgPerson.inc:551 ../lib/modules/inetOrgPerson.inc:680 +#: ../lib/modules/inetOrgPerson.inc:684 ../lib/modules/inetOrgPerson.inc:1243 +#: ../lib/modules/inetOrgPerson.inc:1246 ../lib/modules/inetOrgPerson.inc:1897 +#: ../lib/modules/inetOrgPerson.inc:2555 ../lib/modules/inetOrgPerson.inc:3515 +#: ../lib/modules/inetOrgPerson.inc:3578 +msgid "Postal code" +msgstr "郵便番号" + +#: ../lib/modules/puppetClient.inc:112 +msgid "Predefined classes" +msgstr "既定のクラス" + +#: ../lib/modules/puppetClient.inc:116 ../lib/modules/puppetClient.inc:122 +msgid "Predefined environments" +msgstr "既定の環境" + +#: ../lib/modules/authorizedServiceObject.inc:93 +#: ../lib/modules/authorizedServiceObject.inc:99 +msgid "Predefined services" +msgstr "既定のサービス" + +#: ../help/help.inc:91 +msgid "Predefined values" +msgstr "あらかじめ定義された値" + +#: ../lib/modules/bindDLZ.inc:196 ../lib/modules/bindDLZ.inc:200 +#: ../lib/modules/bindDLZ.inc:280 ../lib/modules/bindDLZ.inc:495 +#: ../lib/modules/bindDLZ.inc:916 ../lib/modules/bindDLZ.inc:1513 +msgid "Preference" +msgstr "プリファレンス" + +#: ../lib/modules/imapAccess.inc:97 ../lib/modules/imapAccess.inc:143 +msgid "Prefix for mailboxes" +msgstr "メールボックスのプリフィックス" + +#: ../lib/modules/inetOrgPerson.inc:339 +msgid "President" +msgstr "社長" + +#: ../lib/modules/pykotaUser.inc:650 ../lib/modules/pykotaUser.inc:999 +msgid "Price" +msgstr "価格" + +#: ../lib/types/pykotaPrinterType.inc:94 ../lib/modules/pykotaPrinter.inc:111 +#: ../lib/modules/pykotaPrinter.inc:174 ../lib/modules/pykotaPrinter.inc:197 +#: ../lib/modules/pykotaPrinter.inc:215 ../lib/modules/pykotaPrinter.inc:235 +#: ../lib/modules/pykotaPrinter.inc:587 +msgid "Price per job" +msgstr "ジョブ単価" + +#: ../lib/types/pykotaPrinterType.inc:93 ../lib/modules/pykotaPrinter.inc:115 +#: ../lib/modules/pykotaPrinter.inc:180 ../lib/modules/pykotaPrinter.inc:198 +#: ../lib/modules/pykotaPrinter.inc:217 ../lib/modules/pykotaPrinter.inc:237 +#: ../lib/modules/pykotaPrinter.inc:588 +msgid "Price per page" +msgstr "ページ単価" + +#: ../lib/modules/eduPerson.inc:88 ../lib/modules/eduPerson.inc:168 +#: ../lib/modules/eduPerson.inc:229 ../lib/modules/eduPerson.inc:283 +#: ../lib/modules/eduPerson.inc:581 +msgid "Primary affiliation" +msgstr "主たる所属" + +#: ../lib/modules/posixAccount.inc:297 ../lib/modules/posixAccount.inc:389 +#: ../lib/modules/posixAccount.inc:414 ../lib/modules/posixAccount.inc:465 +#: ../lib/modules/posixAccount.inc:514 ../lib/modules/posixAccount.inc:552 +#: ../lib/modules/posixAccount.inc:1446 ../lib/modules/posixAccount.inc:1735 +#: ../lib/modules/posixAccount.inc:1781 ../lib/modules/posixAccount.inc:1847 +msgid "Primary group" +msgstr "プライマリグループ" + +#: ../lib/modules/bindDLZ.inc:229 +msgid "Primary master DNS server for this zone (e.g. \"ns1.example.com.\")." +msgstr "" +"このゾーンに対するプライマリー・マスターDNSサーバー (例 \"ns1.example.com." +"\")。" + +#: ../lib/modules/bindDLZ.inc:228 ../lib/modules/bindDLZ.inc:338 +#: ../lib/modules/bindDLZ.inc:422 ../lib/modules/bindDLZ.inc:524 +#: ../lib/modules/bindDLZ.inc:1040 ../lib/modules/bindDLZ.inc:1547 +msgid "Primary name server" +msgstr "プライマリー・ネーム・サーバー" + +#: ../lib/modules/eduPerson.inc:130 ../lib/modules/eduPerson.inc:206 +#: ../lib/modules/eduPerson.inc:232 ../lib/modules/eduPerson.inc:247 +#: ../lib/modules/eduPerson.inc:348 ../lib/modules/eduPerson.inc:588 +msgid "Primary organisational unit" +msgstr "主たるorganizational unit" + +#: ../lib/modules/eduPerson.inc:114 ../lib/modules/eduPerson.inc:161 +#: ../lib/modules/eduPerson.inc:230 ../lib/modules/eduPerson.inc:277 +#: ../lib/modules/eduPerson.inc:583 +msgid "Principal name" +msgstr "プリンシパル名" + +#: ../lib/modules/eduPerson.inc:243 ../lib/modules/eduPerson.inc:244 +msgid "Principal name is invalid!" +msgstr "プリンシパル名が無効です!" + +#: ../lib/modules/pykotaUser.inc:648 ../lib/modules/pykotaUser.inc:997 +msgid "Printer" +msgstr "プリンター" + +#: ../lib/types/pykotaPrinterType.inc:164 +#, php-format +msgid "Printer count: %s" +msgstr "プリンターの数: %s" + +#: ../lib/modules/pykotaPrinter.inc:100 +msgid "Printer description." +msgstr "プリンターの説明。" + +#: ../lib/modules/pykotaPrinter.inc:200 ../lib/modules/pykotaPrinter.inc:258 +#: ../lib/modules/pykotaPrinter.inc:621 +msgid "Printer groups" +msgstr "プリンター・グループ" + +#: ../lib/types/pykotaPrinterType.inc:91 ../lib/modules/pykotaPrinter.inc:95 +#: ../lib/modules/pykotaPrinter.inc:146 ../lib/modules/pykotaPrinter.inc:193 +#: ../lib/modules/pykotaPrinter.inc:209 ../lib/modules/pykotaPrinter.inc:211 +#: ../lib/modules/pykotaPrinter.inc:231 ../lib/modules/pykotaPrinter.inc:584 +#: ../lib/modules/pykotaBillingCode.inc:101 +msgid "Printer name" +msgstr "プリンター名" + +#: ../lib/modules/pykotaPrinter.inc:211 ../lib/modules/pykotaPrinter.inc:212 +msgid "Printer name already exists!" +msgstr "プリンター名はすでに存在しています!" + +#: ../lib/modules/pykotaPrinter.inc:209 ../lib/modules/pykotaPrinter.inc:210 +msgid "" +"Printer name contains invalid characters. Valid characters are: a-z, A-Z, " +"0-9 and .-_ !" +msgstr "" +"プリンター名に無効な文字が含まれています。有効な文字は: a-z, A-Z, 0-9, .-_ で" +"す!" + +#: ../lib/modules/pykotaPrinter.inc:96 +msgid "" +"Printer name of the printer which should be created. Valid characters are: a-" +"z, A-Z, 0-9 and .-_ ." +msgstr "作成されるプリンターの名前。有効な文字は: a-z, A-Z, 0-9, .-_ です。" + +#: ../lib/types/pykotaPrinterType.inc:53 +msgid "Printers" +msgstr "プリンター" + +#: ../lib/modules/bindDLZ.inc:172 ../lib/modules/bindDLZ.inc:176 +#: ../lib/modules/bindDLZ.inc:382 ../lib/modules/bindDLZ.inc:501 +#: ../lib/modules/bindDLZ.inc:1348 ../lib/modules/bindDLZ.inc:1599 +#: ../lib/modules/asteriskExtension.inc:106 +#: ../lib/modules/asteriskExtension.inc:825 +msgid "Priority" +msgstr "優先度" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1537 +#: ../templates/3rdParty/pla/htdocs/import_form.php:44 +#: ../templates/3rdParty/pla/htdocs/export_form.php:135 +msgid "Proceed" +msgstr "次へ" + +#: ../templates/config/profmanage.php:112 +#: ../templates/selfService/profManage.php:85 +msgid "Profile deleted." +msgstr "プロファイルが削除されました。" + +#: ../templates/profedit/profilepage.php:182 +#: ../templates/profedit/profilemain.php:94 ../lib/tools/profileEditor.inc:44 +msgid "Profile editor" +msgstr "プロファイルエディタ" + +#: ../templates/config/profmanage.php:159 +#: ../templates/config/profmanage.php:236 +#: ../templates/selfService/profManage.php:101 +#: ../templates/selfService/profManage.php:199 ../help/help.inc:130 +#: ../help/help.inc:132 ../help/help.inc:134 ../help/help.inc:136 +#: ../help/help.inc:138 +msgid "Profile management" +msgstr "プロファイル管理" + +#: ../templates/config/profmanage.php:240 +#: ../templates/config/profmanage.php:260 +#: ../templates/config/profmanage.php:272 +#: ../templates/config/profmanage.php:281 +#: ../templates/config/profmanage.php:301 +#: ../templates/selfService/profManage.php:203 +#: ../templates/selfService/profManage.php:217 +#: ../templates/selfService/profManage.php:233 +#: ../templates/profedit/profilepage.php:186 +#: ../templates/profedit/profilemain.php:277 +#: ../templates/profedit/profilemain.php:321 ../help/help.inc:188 +msgid "Profile name" +msgstr "プロファイル名" + +#: ../templates/config/profmanage.php:88 +#: ../templates/config/profmanage.php:107 +#: ../templates/config/profmanage.php:137 +#: ../templates/config/profmanage.php:148 +#: ../templates/selfService/profManage.php:61 +#: ../templates/selfService/profManage.php:76 +msgid "Profile name is invalid!" +msgstr "プロファイル名が無効です!" + +#: ../templates/config/profmanage.php:243 +#: ../templates/config/profmanage.php:282 +msgid "Profile password" +msgstr "プロファイルパスワード" + +#: ../templates/config/profmanage.php:86 +#: ../templates/config/profmanage.php:135 +msgid "Profile passwords are different or empty!" +msgstr "プロファイルパスワードが異なるか、または未入力です!" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:98 +#: ../lib/modules/sambaSamAccount.inc:220 +#: ../lib/modules/sambaSamAccount.inc:232 +#: ../lib/modules/sambaSamAccount.inc:308 +#: ../lib/modules/sambaSamAccount.inc:357 +#: ../lib/modules/sambaSamAccount.inc:502 +#: ../lib/modules/sambaSamAccount.inc:598 +#: ../lib/modules/sambaSamAccount.inc:1218 +#: ../lib/modules/sambaSamAccount.inc:1511 +#: ../lib/modules/sambaSamAccount.inc:1580 +#: ../lib/modules/sambaSamAccount.inc:1758 +#: ../lib/modules/sambaSamAccount.inc:1903 +#: ../lib/modules/sambaSamAccount.inc:1918 ../lib/modules/windowsUser.inc:204 +#: ../lib/modules/windowsUser.inc:418 ../lib/modules/windowsUser.inc:478 +#: ../lib/modules/windowsUser.inc:520 ../lib/modules/windowsUser.inc:611 +#: ../lib/modules/windowsUser.inc:754 ../lib/modules/windowsUser.inc:1627 +msgid "Profile path" +msgstr "プロファイルパス" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/windowsUser.inc:611 ../lib/modules/windowsUser.inc:612 +msgid "Profile path is invalid!" +msgstr "プロファイルパスが無効です!" + +#: ../templates/profedit/profilemain.php:149 +msgid "Profile was saved." +msgstr "プロファイルがセーブされました。" + +#: ../templates/profedit/profilemain.php:244 +msgid "Profiles" +msgstr "プロファイル" + +#: ../lib/modules/qmailUser.inc:252 +msgid "Program to execute for all incoming mails." +msgstr "全ての受信メールに対して実行するプログラム。" + +#: ../templates/multiEdit.php:231 +msgid "Progress" +msgstr "進捗" + +#: ../lib/modules/zarafaServer.inc:84 ../lib/modules/zarafaServer.inc:128 +#: ../lib/modules/zarafaServer.inc:141 ../lib/modules/zarafaServer.inc:163 +#: ../lib/modules/zarafaServer.inc:212 ../lib/modules/zarafaServer.inc:357 +msgid "Proxy URL" +msgstr "Proxy URL" + +#: ../lib/modules/zarafaServer.inc:80 ../lib/modules/zarafaServer.inc:118 +#: ../lib/modules/zarafaServer.inc:138 ../lib/modules/zarafaServer.inc:225 +#: ../lib/modules/zarafaServer.inc:362 +msgid "Public store" +msgstr "パブリック・ストア" + +#: ../lib/modules/puppetClient.inc:70 +msgid "Puppet" +msgstr "Puppet" + +#: ../lib/modules/pykotaPrinter.inc:79 ../lib/modules/pykotaGroup.inc:93 +#: ../lib/modules/pykotaUser.inc:93 ../lib/modules/pykotaBillingCode.inc:61 +msgid "PyKota" +msgstr "PyKota" + +#: ../lib/types/pykotaBillingCodeType.inc:62 +msgid "PyKota billing codes" +msgstr "PyKota課金コード" + +#: ../lib/modules/pykotaGroup.inc:121 ../lib/modules/pykotaGroup.inc:148 +#: ../lib/modules/pykotaGroup.inc:181 ../lib/modules/pykotaGroup.inc:201 +#: ../lib/modules/pykotaGroup.inc:203 ../lib/modules/pykotaGroup.inc:467 +msgid "PyKota group name" +msgstr "PyKotaグループ名" + +#: ../lib/types/pykotaPrinterType.inc:62 +msgid "PyKota printers" +msgstr "PyKotaプリンター" + +#: ../lib/modules/pykotaUser.inc:124 ../lib/modules/pykotaUser.inc:190 +#: ../lib/modules/pykotaUser.inc:260 ../lib/modules/pykotaUser.inc:315 +#: ../lib/modules/pykotaUser.inc:317 ../lib/modules/pykotaUser.inc:891 +msgid "PyKota user name" +msgstr "PyKotaユーザ名" + +#: ../lib/modules/pykotaGroup.inc:221 +msgid "Pykota group name" +msgstr "PyKotaグループ名" + +#: ../lib/modules/pykotaUser.inc:359 +msgid "Pykota user name" +msgstr "PyKotaユーザ名" + +#: ../lib/modules/qmailUser.inc:87 ../lib/modules/qmailGroup.inc:56 +msgid "Qmail" +msgstr "Qmail" + +#: ../lib/modules/asteriskAccount.inc:183 +#: ../lib/modules/asteriskAccount.inc:284 +#: ../lib/modules/asteriskAccount.inc:443 +#: ../lib/modules/asteriskAccount.inc:691 +#: ../lib/modules/asteriskAccount.inc:1000 +#: ../lib/modules/asteriskAccount.inc:1269 +msgid "Qualify" +msgstr "限定" + +#: ../lib/modules/passwordSelfReset.inc:76 +#: ../lib/modules/passwordSelfReset.inc:170 +#: ../lib/modules/passwordSelfReset.inc:177 +#: ../lib/modules/passwordSelfReset.inc:197 +#: ../lib/modules/passwordSelfReset.inc:218 +#: ../lib/modules/passwordSelfReset.inc:258 +#: ../lib/modules/passwordSelfReset.inc:381 +#: ../lib/modules/passwordSelfReset.inc:658 +#: ../lib/modules/passwordSelfReset.inc:1043 +msgid "Question" +msgstr "質問" + +#: ../lib/modules/qmailUser.inc:668 ../lib/modules/quota.inc:87 +#: ../lib/modules/quota.inc:100 ../lib/modules/quota.inc:153 +#: ../lib/modules/pykotaGroup.inc:61 ../lib/modules/pykotaGroup.inc:175 +#: ../lib/modules/pykotaGroup.inc:176 ../lib/modules/zarafaUser.inc:481 +#: ../lib/modules/pykotaUser.inc:61 ../lib/modules/pykotaUser.inc:235 +#: ../lib/modules/pykotaUser.inc:236 ../lib/modules/systemQuotas.inc:58 +#: ../lib/modules/systemQuotas.inc:68 ../lib/modules/systemQuotas.inc:75 +#: ../lib/modules/systemQuotas.inc:81 ../lib/modules/systemQuotas.inc:88 +#: ../lib/modules/imapAccess.inc:109 ../lib/modules/imapAccess.inc:164 +msgid "Quota" +msgstr "クオータ" + +#: ../lib/modules/quota.inc:698 +#, php-format +msgid "Quota for %s on %s" +msgstr "%s の %s におけるQuota" + +#: ../lib/modules/zarafaUser.inc:100 ../lib/modules/zarafaUser.inc:230 +#: ../lib/modules/zarafaUser.inc:352 ../lib/modules/zarafaUser.inc:412 +#: ../lib/modules/zarafaUser.inc:516 ../lib/modules/zarafaUser.inc:1231 +#: ../lib/modules/zarafaUser.inc:1314 ../lib/modules/zarafaUser.inc:1791 +msgid "Quota hard limit" +msgstr "quotaハード・リミット" + +#: ../lib/modules/quota.inc:63 +msgid "Quota has wrong format!" +msgstr "quotaの形式が正しくありません!" + +#: ../lib/modules/imapAccess.inc:319 ../lib/modules/imapAccess.inc:328 +msgid "Quota limit (kB)" +msgstr "quotaリミット (kB)" + +#: ../lib/modules/zarafaUser.inc:88 ../lib/modules/zarafaUser.inc:204 +#: ../lib/modules/zarafaUser.inc:343 ../lib/modules/zarafaUser.inc:488 +#: ../lib/modules/zarafaUser.inc:1242 ../lib/modules/zarafaUser.inc:1305 +#: ../lib/modules/zarafaUser.inc:1785 +msgid "Quota override" +msgstr "quotaの上書き" + +#: ../lib/modules/qmailUser.inc:106 ../lib/modules/qmailUser.inc:133 +#: ../lib/modules/qmailUser.inc:219 ../lib/modules/qmailUser.inc:308 +#: ../lib/modules/qmailUser.inc:409 ../lib/modules/qmailUser.inc:675 +#: ../lib/modules/qmailUser.inc:1144 +msgid "Quota size" +msgstr "クォータ・サイズ" + +#: ../lib/modules/zarafaUser.inc:96 ../lib/modules/zarafaUser.inc:222 +#: ../lib/modules/zarafaUser.inc:349 ../lib/modules/zarafaUser.inc:410 +#: ../lib/modules/zarafaUser.inc:506 ../lib/modules/zarafaUser.inc:1230 +#: ../lib/modules/zarafaUser.inc:1311 ../lib/modules/zarafaUser.inc:1789 +msgid "Quota soft limit" +msgstr "quotaソフト・リミット" + +#: ../lib/modules/zarafaUser.inc:92 ../lib/modules/zarafaUser.inc:214 +#: ../lib/modules/zarafaUser.inc:346 ../lib/modules/zarafaUser.inc:408 +#: ../lib/modules/zarafaUser.inc:496 ../lib/modules/zarafaUser.inc:1229 +#: ../lib/modules/zarafaUser.inc:1308 ../lib/modules/zarafaUser.inc:1787 +msgid "Quota warning limit" +msgstr "quota警告リミット" + +#: ../templates/masscreate.php:334 ../templates/profedit/profilepage.php:213 +#: ../lib/modules/selfRegistration.inc:98 +#: ../lib/modules/selfRegistration.inc:210 ../lib/modules.inc:1004 +#: ../help/help.inc:186 +msgid "RDN identifier" +msgstr "RDN識別子" + +#: ../lib/types/host.inc:93 +msgid "RID (Windows UID)" +msgstr "RID (Windows UID)" + +#: ../lib/modules/sambaDomain.inc:97 ../lib/modules/sambaDomain.inc:158 +#: ../lib/modules/sambaDomain.inc:189 ../lib/modules/sambaDomain.inc:383 +#: ../lib/modules/sambaDomain.inc:389 ../lib/modules/sambaDomain.inc:604 +msgid "RID base" +msgstr "RID base" + +#: ../lib/modules/sambaDomain.inc:352 +msgid "RID settings" +msgstr "RID設定" + +#: ../lib/modules/asteriskAccount.inc:195 +#: ../lib/modules/asteriskAccount.inc:287 +#: ../lib/modules/asteriskAccount.inc:465 +#: ../lib/modules/asteriskAccount.inc:704 +#: ../lib/modules/asteriskAccount.inc:1003 +#: ../lib/modules/asteriskAccount.inc:1275 +msgid "RTP hold timeout" +msgstr "RTP保留タイムアウト" + +#: ../lib/modules/asteriskAccount.inc:191 +#: ../lib/modules/asteriskAccount.inc:286 +#: ../lib/modules/asteriskAccount.inc:458 +#: ../lib/modules/asteriskAccount.inc:699 +#: ../lib/modules/asteriskAccount.inc:1002 +#: ../lib/modules/asteriskAccount.inc:1273 +msgid "RTP timeout" +msgstr "RTPタイムアウト" + +#: ../lib/modules/customFields.inc:2928 +msgid "Radio buttons" +msgstr "ラジオボタン" + +#: ../lib/modules/range.inc:92 ../lib/modules/range.inc:427 +msgid "Range from" +msgstr "範囲の始点" + +#: ../lib/modules/range.inc:95 ../lib/modules/range.inc:440 +msgid "Range to" +msgstr "範囲の終点" + +#: ../lib/types/dhcp.inc:95 ../lib/modules/range.inc:74 +#: ../lib/modules/range.inc:106 ../lib/modules/range.inc:495 +msgid "Ranges" +msgstr "範囲" + +#: ../templates/config/confmain.php:317 +msgid "Read" +msgstr "読み込み" + +#: ../templates/config/confmain.php:262 ../templates/config/conftypes.php:290 +#: ../lib/modules/customFields.inc:104 ../lib/modules/customFields.inc:1722 +#: ../help/help.inc:182 +msgid "Read-only" +msgstr "読み込み専用" + +#: ../lib/modules/inetOrgPerson.inc:3574 +msgid "Read-only fields" +msgstr "読み込み専用フィールド" + +#: ../lib/modules/customFields.inc:105 +msgid "" +"Read-only fields cannot be changed by the user. Use this if you want to show " +"an attribute just for information." +msgstr "" +"Read-only fields cannot be changed by the user. Use this if you want to show " +"an attribute just for information." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2289 +msgid "Really delete value from this attribute?" +msgstr "この属性値を削除しますか?" + +#: ../lib/modules/mitKerberos.inc:120 ../lib/modules/mitKerberos.inc:152 +#: ../lib/modules/mitKerberos.inc:194 ../lib/modules/freeRadius.inc:92 +#: ../lib/modules/freeRadius.inc:126 ../lib/modules/freeRadius.inc:146 +#: ../lib/modules/freeRadius.inc:177 ../lib/modules/freeRadius.inc:231 +#: ../lib/modules/freeRadius.inc:273 ../lib/modules/freeRadius.inc:539 +#: ../lib/modules/heimdalKerberos.inc:98 +#: ../lib/modules/heimdalKerberos.inc:157 +#: ../lib/modules/heimdalKerberos.inc:163 +msgid "Realm" +msgstr "レルム" + +#: ../lib/modules/nisMailAliasUser.inc:355 ../lib/modules/nisMailAlias.inc:181 +msgid "Recipient" +msgstr "受信者" + +#: ../lib/modules/nisMailAlias.inc:127 ../lib/modules/nisMailAlias.inc:128 +msgid "Recipient is invalid!" +msgstr "受信者が無効です!" + +#: ../lib/types/mailAlias.inc:92 ../lib/modules/nisMailAlias.inc:89 +#: ../lib/modules/nisMailAlias.inc:108 ../lib/modules/nisMailAlias.inc:116 +#: ../lib/modules/nisMailAlias.inc:476 +msgid "Recipient list" +msgstr "受信者リスト" + +#: ../lib/modules/nisMailAlias.inc:85 ../lib/modules/nisMailAlias.inc:184 +#: ../lib/modules/nisMailAlias.inc:202 +msgid "Recipients" +msgstr "受信者" + +#: ../lib/modules/sambaSamAccount.inc:244 +#: ../lib/modules/sambaSamAccount.inc:387 +#: ../lib/modules/sambaSamAccount.inc:1560 +#: ../lib/modules/sambaSamAccount.inc:1970 +msgid "Reconnect if disconnected" +msgstr "切断された場合は再接続してください" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:63 +msgid "Recursive copy" +msgstr "再帰的コピー" + +#: ../templates/3rdParty/pla/htdocs/copy.php:49 +msgid "Recursive copy progress" +msgstr "再帰的な複製中" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:31 +msgid "Recursive delete progress" +msgstr "再帰的な削除中" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:65 +msgid "Recursively copy all children of this object as well." +msgstr "このオブジェクトの全ての子も再帰的にコピーします。" + +#: ../templates/config/profmanage.php:247 +#: ../templates/config/profmanage.php:286 +#: ../templates/config/mainmanage.php:459 ../templates/config/confmain.php:453 +#: ../lib/modules/selfRegistration.inc:415 +#: ../lib/modules/sambaSamAccount.inc:2268 +#: ../lib/modules/posixAccount.inc:2533 ../lib/modules/windowsUser.inc:1714 +msgid "Reenter password" +msgstr "パスワード再入力" + +#: ../templates/serverInfo.php:187 +msgid "Referrals" +msgstr "参照" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1051 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1054 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:249 +#: ../lib/modules/asteriskExtension.inc:454 ../lib/lists.inc:788 +msgid "Refresh" +msgstr "リフレッシュ" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +msgid "Refresh this entry" +msgstr "エントリをリフレッシュ" + +#: ../lib/modules/bindDLZ.inc:208 ../lib/modules/bindDLZ.inc:313 +#: ../lib/modules/bindDLZ.inc:417 ../lib/modules/bindDLZ.inc:514 +#: ../lib/modules/bindDLZ.inc:1019 ../lib/modules/bindDLZ.inc:1542 +msgid "Refresh time" +msgstr "リフレッシュ時間" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:247 +msgid "Refreshing tree" +msgstr "ツリーをリフレッシュ" + +#: ../lib/modules/selfRegistration.inc:340 +msgid "Register new account" +msgstr "新しいアカウントを登録" + +#: ../lib/modules/inetOrgPerson.inc:85 ../lib/modules/inetOrgPerson.inc:158 +#: ../lib/modules/inetOrgPerson.inc:196 ../lib/modules/inetOrgPerson.inc:401 +#: ../lib/modules/inetOrgPerson.inc:563 ../lib/modules/inetOrgPerson.inc:692 +#: ../lib/modules/inetOrgPerson.inc:1322 ../lib/modules/inetOrgPerson.inc:1899 +#: ../lib/modules/inetOrgPerson.inc:2544 ../lib/modules/inetOrgPerson.inc:3523 +#: ../lib/modules/inetOrgPerson.inc:3580 +msgid "Registered address" +msgstr "登録済みの住所" + +#: ../lib/modules/inetOrgPerson.inc:693 +msgid "Registered address, city" +msgstr "登録済みの住所、区市町村" + +#: ../lib/modules/asteriskAccount.inc:215 +#: ../lib/modules/asteriskAccount.inc:292 +#: ../lib/modules/asteriskAccount.inc:501 +#: ../lib/modules/asteriskAccount.inc:725 +#: ../lib/modules/asteriskAccount.inc:1008 +#: ../lib/modules/asteriskAccount.inc:1285 +msgid "Registration context" +msgstr "登録コンテキスト" + +#: ../lib/modules/asteriskAccount.inc:219 +#: ../lib/modules/asteriskAccount.inc:293 +#: ../lib/modules/asteriskAccount.inc:508 +#: ../lib/modules/asteriskAccount.inc:729 +#: ../lib/modules/asteriskAccount.inc:1009 +#: ../lib/modules/asteriskAccount.inc:1287 +msgid "Registration extension" +msgstr "登録拡張" + +#: ../lib/modules/asteriskAccount.inc:235 +#: ../lib/modules/asteriskAccount.inc:297 +#: ../lib/modules/asteriskAccount.inc:537 +#: ../lib/modules/asteriskAccount.inc:754 +#: ../lib/modules/asteriskAccount.inc:1013 +#: ../lib/modules/asteriskAccount.inc:1295 +msgid "Registration server" +msgstr "登録サーバー" + +#: ../lib/modules/kolabUser.inc:53 +msgid "Reject if conflicts" +msgstr "競合の場合に拒否" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +msgid "Reloading" +msgstr "リロード" + +#: ../templates/login.php:427 +msgid "Remember user name" +msgstr "ユーザー名を記憶する" + +#: ../templates/config/confmodules.php:310 +#: ../templates/pdfedit/pdfpage.php:477 ../lib/modules/mitKerberos.inc:688 +#: ../lib/modules/qmailUser.inc:919 ../lib/modules/windowsHost.inc:158 +#: ../lib/modules/sambaSamAccount.inc:1479 ../lib/modules/kolabUser.inc:871 +#: ../lib/modules/shadowAccount.inc:476 ../lib/modules/freeRadius.inc:429 +#: ../lib/modules/sudoRole.inc:318 ../lib/modules/sudoRole.inc:345 +#: ../lib/modules/sudoRole.inc:372 ../lib/modules/sudoRole.inc:399 +#: ../lib/modules/sudoRole.inc:426 ../lib/modules/sudoRole.inc:453 +#: ../lib/modules/heimdalKerberos.inc:598 ../lib/modules/windowsGroup.inc:364 +msgid "Remove" +msgstr "削除" + +#: ../lib/modules/asteriskVoicemail.inc:263 +msgid "Remove Asterisk voicemail extension" +msgstr "Asteriskボイスメール拡張を削除" + +#: ../lib/modules/authorizedServiceObject.inc:170 +msgid "Remove Authorized Service extension" +msgstr "認証済みサービス拡張を削除" + +#: ../lib/modules/eduPerson.inc:355 +msgid "Remove EDU person extension" +msgstr "EDU person拡張を削除" + +#: ../lib/modules/freeRadius.inc:307 +msgid "Remove FreeRadius extension" +msgstr "FreeRadius拡張を削除" + +#: ../lib/modules/ipHost.inc:160 +msgid "Remove IP address extension" +msgstr "IPアドレス拡張を削除" + +#: ../lib/modules/mitKerberos.inc:472 ../lib/modules/heimdalKerberos.inc:397 +msgid "Remove Kerberos extension" +msgstr "Kerberosホスト拡張を削除" + +#: ../lib/modules/puppetClient.inc:280 +msgid "Remove Puppet extension" +msgstr "Puppet拡張を削除" + +#: ../lib/modules/pykotaGroup.inc:238 ../lib/modules/pykotaUser.inc:418 +msgid "Remove PyKota extension" +msgstr "PyKota拡張を削除" + +#: ../lib/modules/sambaSamAccount.inc:1306 +#: ../lib/modules/sambaGroupMapping.inc:423 +msgid "Remove Samba 3 extension" +msgstr "Samba 3拡張を削除" + +#: ../lib/modules/shadowAccount.inc:375 +msgid "Remove Shadow account extension" +msgstr "Shadowアカウント拡張を削除" + +#: ../lib/modules/posixGroup.inc:246 ../lib/modules/posixAccount.inc:1511 +msgid "Remove Unix extension" +msgstr "unix拡張を削除" + +#: ../lib/modules/zarafaContact.inc:258 ../lib/modules/zarafaGroup.inc:307 +#: ../lib/modules/zarafaUser.inc:655 ../lib/modules/zarafaServer.inc:232 +msgid "Remove Zarafa extension" +msgstr "Zarafa拡張を削除" + +#: ../lib/modules/customFields.inc:457 +msgid "Remove extension" +msgstr "拡張を削除" + +#: ../lib/types/user.inc:384 +msgid "Remove from all Unix groups" +msgstr "全てのunixグループを削除" + +#: ../lib/types/user.inc:388 +msgid "Remove from all group of (unique) names" +msgstr "全ての(uniqueな)名前のグループを削除" + +#: ../lib/modules/hostObject.inc:147 +msgid "Remove host extension" +msgstr "ホスト拡張を削除" + +#: ../lib/modules/posixGroup.inc:213 ../lib/modules/posixAccount.inc:1504 +#: ../lib/modules/inetOrgPerson.inc:1564 +msgid "Remove password" +msgstr "パスワードを削除" + +#: ../lib/modules/passwordSelfReset.inc:281 +msgid "Remove password self reset extension" +msgstr "パスワード・セルフ・リセット拡張を削除" + +#: ../lib/modules/qmailUser.inc:706 ../lib/modules/qmailGroup.inc:627 +msgid "Remove qmail extension" +msgstr "qmail拡張を削除" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:147 +#: ../lib/modules/zarafaContact.inc:418 ../lib/modules/zarafaGroup.inc:478 +#: ../lib/modules/device.inc:281 ../lib/modules/zarafaUser.inc:902 +#: ../lib/modules/inetOrgPerson.inc:1737 ../lib/modules/qmailGroup.inc:850 +#: ../lib/modules/organizationalRole.inc:383 +#: ../lib/modules/windowsGroup.inc:584 ../lib/modules/groupOfNames.inc:440 +#: ../lib/modules/groupOfNames.inc:595 +msgid "Remove selected entries" +msgstr "選択したエントリを削除" + +#: ../templates/config/conftypes.php:248 +msgid "Remove this account type" +msgstr "このアカウントタイプを削除:" + +#: ../lib/modules/nisMailAliasUser.inc:153 +#: ../lib/modules/nisMailAliasUser.inc:192 +msgid "Remove user from alias entry." +msgstr "エイリアス・エントリーから受信者を削除。" + +#: ../lib/modules/inetOrgPerson.inc:2646 +msgid "Remove/replace photo" +msgstr "写真の削除/差し替え" + +#: ../templates/config/profmanage.php:264 +#: ../templates/selfService/profManage.php:225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1152 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1155 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:24 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:35 +#: ../templates/3rdParty/pla/htdocs/rename.php:53 +msgid "Rename" +msgstr "名前の変更" + +#: ../templates/3rdParty/pla/htdocs/rename_form.php:28 +#, php-format +msgid "Rename %s to a new object." +msgstr "%sを新しいオブジェクトにリネーム。" + +#: ../templates/config/profmanage.php:259 +#: ../templates/config/profmanage.php:265 +#: ../templates/selfService/profManage.php:216 +#: ../templates/selfService/profManage.php:226 ../help/help.inc:132 +msgid "Rename profile" +msgstr "プロファイル名変更" + +#: ../templates/3rdParty/pla/htdocs/rename.php:48 +msgid "Rename successful!" +msgstr "名前の変更が完了しました!" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +msgid "Rename this entry" +msgstr "このエントリ名を変更" + +#: ../templates/config/profmanage.php:98 +#: ../templates/selfService/profManage.php:72 +msgid "Renamed profile." +msgstr "プロファイル名が変更されました。" + +#: ../templates/3rdParty/pla/htdocs/import.php:30 +#: ../templates/3rdParty/pla/htdocs/import.php:31 +msgid "Renaming" +msgstr "リネーム中" + +#: ../lib/modules/mitKerberos.inc:132 ../lib/modules/mitKerberos.inc:196 +#: ../lib/modules/mitKerberos.inc:236 ../lib/modules/mitKerberos.inc:253 +#: ../lib/modules/mitKerberos.inc:366 ../lib/modules/mitKerberos.inc:771 +#: ../lib/modules/heimdalKerberos.inc:114 +#: ../lib/modules/heimdalKerberos.inc:165 +#: ../lib/modules/heimdalKerberos.inc:205 +#: ../lib/modules/heimdalKerberos.inc:222 +#: ../lib/modules/heimdalKerberos.inc:313 +#: ../lib/modules/heimdalKerberos.inc:691 +msgid "Renewable lifetime" +msgstr "新しい有効期間" + +#: ../lib/modules/mitKerberos.inc:295 ../lib/modules/mitKerberos.inc:296 +#: ../lib/modules/heimdalKerberos.inc:259 +#: ../lib/modules/heimdalKerberos.inc:260 +msgid "Renewable lifetime must be a number." +msgstr "有効期間は数字でなくてはなりません。" + +#: ../templates/lists/changePassword.php:359 +#: ../lib/modules/passwordSelfReset.inc:1067 ../lib/modules.inc:1048 +msgid "Repeat password" +msgstr "パスワード再入力" + +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:1199 +msgid "Replaced $user or $group in homedir." +msgstr "$user または $group をホームディレクトリに置き換えました。" + +#: ../templates/config/confmain.php:346 ../help/help.inc:257 +msgid "Reply-to address" +msgstr "Reply-Toアドレス" + +#: ../templates/config/confmain.php:523 +msgid "Reply-to address for password mails is invalid." +msgstr "パスワード・メールのReply-Toアドレスが無効です。" + +#: ../lib/types/ppolicyType.inc:89 ../lib/modules/ppolicy.inc:128 +#: ../lib/modules/ppolicy.inc:154 ../lib/modules/ppolicy.inc:288 +#: ../lib/modules/ppolicy.inc:500 +msgid "Require password change on first login" +msgstr "最初のログインでパスワード変更が必要" + +#: ../lib/modules/windowsUser.inc:201 ../lib/modules/windowsUser.inc:402 +#: ../lib/modules/windowsUser.inc:519 ../lib/modules/windowsUser.inc:750 +#: ../lib/modules/windowsUser.inc:1621 +msgid "Require smartcard" +msgstr "スマートカードが必要" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 +msgid "Required attribute for object classes" +msgstr "オブジェクト・クラスに対する必須属性" + +#: ../templates/schema/schema.php:383 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1567 +msgid "Required attributes" +msgstr "必須属性" + +#: ../lib/modules/mitKerberos.inc:180 ../lib/modules/mitKerberos.inc:462 +msgid "Requires hardware authentication" +msgstr "ハードウェア認証が必要" + +#: ../lib/modules/mitKerberos.inc:177 ../lib/modules/mitKerberos.inc:457 +#: ../lib/modules/heimdalKerberos.inc:151 +#: ../lib/modules/heimdalKerberos.inc:388 +msgid "Requires preauthentication" +msgstr "事前認証が必要" + +#: ../lib/modules/sambaSamAccount.inc:1300 +#: ../lib/modules/pykotaBillingCode.inc:93 +#: ../lib/modules/pykotaBillingCode.inc:163 +msgid "Reset" +msgstr "リセット" + +#: ../lib/modules.inc:1212 +msgid "Reset changes" +msgstr "変更をリセット" + +#: ../lib/modules/sambaSamAccount.inc:264 +#: ../lib/modules/sambaSamAccount.inc:1299 +msgid "Reset password" +msgstr "パスワードをリセット" + +#: ../lib/modules/sambaDomain.inc:137 ../lib/modules/sambaDomain.inc:199 +#: ../lib/modules/sambaDomain.inc:224 ../lib/modules/sambaDomain.inc:348 +#: ../lib/modules/sambaDomain.inc:611 +msgid "Reset time after lockout" +msgstr "ロックアウト解除時間" + +#: ../lib/modules/sambaDomain.inc:224 +msgid "Reset time after lockout must be are natural number." +msgstr "ロックアウト解除時間は自然数でなければなりません。" + +#: ../lib/modules/pykotaBillingCode.inc:94 +msgid "Resets the billing code's balance and page counter to 0." +msgstr "課金コードの残高とページカウンターを0にリセットします。" + +#: ../lib/modules/zarafaUser.inc:523 +msgid "Resource settings" +msgstr "リソース設定" + +#: ../lib/modules/asteriskAccount.inc:187 +#: ../lib/modules/asteriskAccount.inc:285 +#: ../lib/modules/asteriskAccount.inc:450 +#: ../lib/modules/asteriskAccount.inc:695 +#: ../lib/modules/asteriskAccount.inc:1001 +#: ../lib/modules/asteriskAccount.inc:1271 +msgid "Restrict caller ID" +msgstr "発信IDを制限" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:113 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:118 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:550 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:587 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:198 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:84 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:122 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +msgid "Retrieving DN" +msgstr "DNを取得中" + +#: ../lib/modules/bindDLZ.inc:212 ../lib/modules/bindDLZ.inc:325 +#: ../lib/modules/bindDLZ.inc:418 ../lib/modules/bindDLZ.inc:516 +#: ../lib/modules/bindDLZ.inc:1030 ../lib/modules/bindDLZ.inc:1543 +msgid "Retry time" +msgstr "リトライ時間" + +#: ../lib/modules/bindDLZ.inc:748 +msgid "Reverse DNS entries (\"PTR\" records)" +msgstr "逆引きDNSエントリー (\"PTR\"レコード)" + +#: ../lib/modules/ddns.inc:106 ../lib/modules/ddns.inc:114 +#: ../lib/modules/ddns.inc:135 ../lib/modules/ddns.inc:397 +#: ../lib/modules/ddns.inc:426 +msgid "Reverse zone name" +msgstr "逆引きゾーン名" + +#: ../templates/config/confmain.php:313 ../help/help.inc:118 +msgid "Rights for the home directory" +msgstr "ホームディレクトリに対する権限" + +#: ../lib/modules/organizationalRole.inc:65 +msgid "Role" +msgstr "ロール" + +#: ../lib/types/gon.inc:209 ../lib/types/group.inc:247 +#, php-format +msgid "Role count: %s" +msgstr "ロール数: %s" + +#: ../lib/types/gon.inc:107 ../lib/types/group.inc:110 +msgid "Role member DNs" +msgstr "ロール・メンバのDN" + +#: ../lib/types/gon.inc:112 ../lib/types/group.inc:116 +#: ../lib/types/sudo.inc:77 ../lib/modules/sudoRole.inc:66 +#: ../lib/modules/sudoRole.inc:146 ../lib/modules/sudoRole.inc:214 +#: ../lib/modules/sudoRole.inc:299 ../lib/modules/sudoRole.inc:804 +msgid "Role name" +msgstr "ロール名" + +#: ../lib/types/gon.inc:63 ../lib/types/group.inc:64 +#: ../lib/modules/organizationalRoleUser.inc:54 +#: ../lib/modules/organizationalRoleUser.inc:56 +#: ../lib/modules/organizationalRoleUser.inc:60 +#: ../lib/modules/organizationalRoleUser.inc:64 +#: ../lib/modules/organizationalRoleUser.inc:71 +#: ../lib/modules/organizationalRoleUser.inc:270 +#: ../lib/modules/organizationalRoleUser.inc:306 +msgid "Roles" +msgstr "ロール" + +#: ../lib/modules/zarafaUser.inc:528 ../lib/modules/zarafaUser.inc:1246 +msgid "Room" +msgstr "部屋" + +#: ../lib/modules/inetOrgPerson.inc:160 ../lib/modules/inetOrgPerson.inc:202 +#: ../lib/modules/inetOrgPerson.inc:475 ../lib/modules/inetOrgPerson.inc:569 +#: ../lib/modules/inetOrgPerson.inc:760 ../lib/modules/inetOrgPerson.inc:1366 +#: ../lib/modules/inetOrgPerson.inc:1369 ../lib/modules/inetOrgPerson.inc:1906 +#: ../lib/modules/inetOrgPerson.inc:2577 ../lib/modules/inetOrgPerson.inc:3527 +#: ../lib/modules/inetOrgPerson.inc:3581 +msgid "Room number" +msgstr "部屋番号" + +#: ../lib/modules/inetLocalMailRecipient.inc:68 +#: ../lib/modules/inetLocalMailRecipient.inc:100 +#: ../lib/modules/inetLocalMailRecipient.inc:119 +#: ../lib/modules/inetLocalMailRecipient.inc:146 +#: ../lib/modules/inetLocalMailRecipient.inc:292 +msgid "Routing address" +msgstr "転送アドレス" + +#: ../lib/modules/customFields.inc:132 ../lib/modules/customFields.inc:2607 +msgid "Rows" +msgstr "行" + +#: ../lib/modules/asteriskExtension.inc:139 +#: ../lib/modules/asteriskExtension.inc:311 +msgid "Rules" +msgstr "ルール" + +#: ../lib/modules/customScripts.inc:187 +msgid "Run" +msgstr "実行" + +#: ../lib/types/sudo.inc:82 +msgid "Run group" +msgstr "実行グループ" + +#: ../lib/modules/sudoRole.inc:90 ../lib/modules/sudoRole.inc:118 +#: ../lib/modules/sudoRole.inc:183 ../lib/modules/sudoRole.inc:220 +#: ../lib/modules/sudoRole.inc:232 ../lib/modules/sudoRole.inc:424 +#: ../lib/modules/sudoRole.inc:810 +msgid "Run groups" +msgstr "実行グループ" + +#: ../lib/types/sudo.inc:81 +msgid "Run user" +msgstr "実行ユーザ" + +#: ../lib/modules/sudoRole.inc:86 ../lib/modules/sudoRole.inc:113 +#: ../lib/modules/sudoRole.inc:177 ../lib/modules/sudoRole.inc:219 +#: ../lib/modules/sudoRole.inc:231 ../lib/modules/sudoRole.inc:397 +#: ../lib/modules/sudoRole.inc:809 +msgid "Run users" +msgstr "実行ユーザ" + +#: ../lib/modules/windowsUser.inc:304 +msgid "S.M." +msgstr "S.M." + +#: ../templates/serverInfo.php:129 +msgid "SASL mechanisms" +msgstr "SASLメカニズム" + +#: ../lib/modules/asteriskAccount.inc:152 +msgid "SIP URI for a realtime peer." +msgstr "リアルタイム・ピアのSIP URI。" + +#: ../lib/modules/asteriskAccount.inc:128 +msgid "SIP user agent identification." +msgstr "SIPユーザーのエージェントID。" + +#: ../lib/modules/bindDLZ.inc:307 ../lib/modules/bindDLZ.inc:313 +#: ../lib/modules/bindDLZ.inc:319 ../lib/modules/bindDLZ.inc:325 +#: ../lib/modules/bindDLZ.inc:331 ../lib/modules/bindDLZ.inc:338 +#: ../lib/modules/bindDLZ.inc:344 ../lib/modules/bindDLZ.inc:350 +#: ../lib/modules/bindDLZ.inc:416 ../lib/modules/bindDLZ.inc:417 +#: ../lib/modules/bindDLZ.inc:418 ../lib/modules/bindDLZ.inc:419 +#: ../lib/modules/bindDLZ.inc:420 ../lib/modules/bindDLZ.inc:421 +#: ../lib/modules/bindDLZ.inc:422 ../lib/modules/bindDLZ.inc:423 +#: ../lib/modules/bindDLZ.inc:480 ../lib/modules/bindDLZ.inc:512 +#: ../lib/modules/bindDLZ.inc:514 ../lib/modules/bindDLZ.inc:516 +#: ../lib/modules/bindDLZ.inc:518 ../lib/modules/bindDLZ.inc:520 +#: ../lib/modules/bindDLZ.inc:522 +msgid "SOA record" +msgstr "SOA レコード" + +#: ../lib/modules/bindDLZ.inc:123 ../lib/modules/bindDLZ.inc:382 +#: ../lib/modules/bindDLZ.inc:387 ../lib/modules/bindDLZ.inc:392 +#: ../lib/modules/bindDLZ.inc:397 ../lib/modules/bindDLZ.inc:402 +#: ../lib/modules/bindDLZ.inc:486 +msgid "SRV record" +msgstr "SRV レコード" + +#: ../lib/modules/bindDLZ.inc:426 ../lib/modules/bindDLZ.inc:436 +#: ../lib/modules/bindDLZ.inc:1596 +msgid "SRV records" +msgstr "SRV レコード" + +#: ../templates/tests/lamdaemonTest.php:243 +msgid "SSH connection" +msgstr "SSH接続" + +#: ../templates/tests/lamdaemonTest.php:256 +msgid "SSH connection could be established." +msgstr "SSHコネクションが確立できました。" + +#: ../lib/modules/ldapPublicKey.inc:62 ../lib/modules/ldapPublicKey.inc:72 +#: ../lib/modules/ldapPublicKey.inc:76 ../lib/modules/ldapPublicKey.inc:88 +#: ../lib/modules/ldapPublicKey.inc:119 +msgid "SSH public key" +msgstr "SSH公開鍵" + +#: ../lib/modules/ldapPublicKey.inc:95 ../lib/modules/ldapPublicKey.inc:99 +#: ../lib/modules/ldapPublicKey.inc:197 ../lib/modules/ldapPublicKey.inc:237 +msgid "SSH public keys" +msgstr "SSH公開鍵" + +#: ../help/help.inc:83 +msgid "SSL certificate" +msgstr "SSL証明書" + +#: ../templates/config/mainmanage.php:308 +msgid "SSL certificates" +msgstr "SSL証明書" + +#: ../lib/modules/zarafaServer.inc:72 ../lib/modules/zarafaServer.inc:106 +#: ../lib/modules/zarafaServer.inc:136 ../lib/modules/zarafaServer.inc:175 +#: ../lib/modules/zarafaServer.inc:203 ../lib/modules/zarafaServer.inc:355 +msgid "SSL port" +msgstr "SSLポート" + +#: ../templates/lists/changePassword.php:402 +#: ../templates/lists/changePassword.php:433 +msgid "Samba" +msgstr "Samba" + +#: ../lib/types/user.inc:276 ../lib/types/user.inc:372 +#: ../lib/types/user.inc:404 ../lib/types/user.inc:829 +#: ../lib/modules/sambaSamAccount.inc:146 +#: ../lib/modules/sambaGroupMapping.inc:101 +msgid "Samba 3" +msgstr "Samba 3" + +#: ../lib/modules/sambaDomain.inc:210 ../lib/modules/sambaDomain.inc:211 +msgid "Samba 3 domain SID is invalid!" +msgstr "Samba 3 ドメインのSIDが無効です!" + +#: ../lib/types/smbDomain.inc:62 +msgid "Samba 3 domain entries" +msgstr "Samba 3 ドメインエントリ" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:228 +msgid "Samba ID pool" +msgstr "Samba IDプール" + +#: ../lib/modules/posixGroup.inc:413 ../lib/modules/posixGroup.inc:524 +#: ../lib/modules/posixGroup.inc:613 ../lib/modules/posixAccount.inc:131 +#: ../lib/modules/posixAccount.inc:215 ../lib/modules/posixAccount.inc:233 +#: ../lib/modules/posixAccount.inc:501 +msgid "Samba ID pool DN" +msgstr "Samba IDプールDN" + +#: ../lib/modules/sambaSamAccount.inc:329 +#: ../lib/modules/sambaSamAccount.inc:333 +#: ../lib/modules/sambaSamAccount.inc:477 +#: ../lib/modules/sambaSamAccount.inc:543 +msgid "Samba RID" +msgstr "Samba RID" + +#: ../lib/modules/sambaGroupMapping.inc:129 +#: ../lib/modules/sambaGroupMapping.inc:154 +msgid "Samba RID number" +msgstr "Samba RID番号" + +#: ../lib/modules/sambaGroupMapping.inc:123 +msgid "Samba display name" +msgstr "Samba表示名" + +#: ../lib/modules/sambaDomain.inc:58 +msgid "Samba domain" +msgstr "Samba ドメイン" + +#: ../lib/modules/sambaGroupMapping.inc:245 +msgid "Samba domain name" +msgstr "Sambaドメイン名" + +#: ../lib/types/smbDomain.inc:53 +msgid "Samba domains" +msgstr "Samba ドメイン" + +#: ../lib/modules/sambaGroupMapping.inc:113 +#: ../lib/modules/sambaGroupMapping.inc:135 +#: ../lib/modules/sambaGroupMapping.inc:162 +#: ../lib/modules/sambaGroupMapping.inc:541 +msgid "Samba group type" +msgstr "Sambaグループタイプ" + +#: ../lib/modules/sambaSamAccount.inc:261 +msgid "Samba password" +msgstr "Sambaパスワード" + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:226 +#: ../lib/modules/sambaSamAccount.inc:314 +#: ../lib/modules/sambaSamAccount.inc:317 +#: ../lib/modules/sambaSamAccount.inc:518 +#: ../lib/modules/sambaSamAccount.inc:604 +#: ../lib/modules/sambaSamAccount.inc:1240 +#: ../lib/modules/sambaSamAccount.inc:1766 +#: ../lib/modules/sambaSamAccount.inc:1904 +msgid "Samba workstations" +msgstr "Samba ワークステーション" + +#: ../lib/modules/sambaSamAccount.inc:1376 +msgid "Saturday" +msgstr "土曜日" + +#: ../templates/config/confmodules.php:224 +#: ../templates/config/confmain.php:468 +#: ../templates/config/moduleSettings.php:238 +#: ../templates/config/conftypes.php:338 +#: ../templates/selfService/selfServiceMain.php:416 +#: ../templates/selfService/adminMain.php:745 +#: ../templates/pdfedit/pdfpage.php:636 +#: ../templates/profedit/profilepage.php:238 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1243 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1247 +#: ../lib/modules/inetOrgPerson.inc:2801 ../lib/modules/customFields.inc:3456 +#: ../lib/modules.inc:1206 +msgid "Save" +msgstr "保存" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +msgid "Save a dump of this object" +msgstr "このオブジェクトのダンプを保存" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1244 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Save a dump of this object and all of its children" +msgstr "このオブジェクトと全ての子のダンプを保存" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:90 +msgid "Save as file" +msgstr "ファイルとして保存" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:172 +msgid "Save changes" +msgstr "変更を保存" + +#: ../lib/tools/schemaBrowser.inc:44 +msgid "Schema browser" +msgstr "スキーマブラウザ" + +#: ../templates/serverInfo.php:119 +msgid "Schema suffix" +msgstr "スキーマ・サフィックス" + +#: ../templates/tests/schemaTest.php:55 ../templates/tests/index.php:58 +#: ../lib/tools/tests.inc:116 +msgid "Schema test" +msgstr "スキーマテスト" + +#: ../lib/modules/eduPerson.inc:92 ../lib/modules/eduPerson.inc:96 +#: ../lib/modules/eduPerson.inc:175 ../lib/modules/eduPerson.inc:233 +#: ../lib/modules/eduPerson.inc:285 ../lib/modules/eduPerson.inc:582 +msgid "Scoped affiliations" +msgstr "範囲を限定した所属関係" + +#: ../help/help.inc:101 +msgid "Script path" +msgstr "スクリプトパス" + +#: ../templates/config/confmain.php:573 +msgid "Script path is invalid!" +msgstr "スクリプトパスが無効です!" + +#: ../templates/config/confmain.php:592 +msgid "Script rights are invalid!" +msgstr "スクリプトの権限が無効です!" + +#: ../templates/config/confmain.php:576 +msgid "Script server is invalid!" +msgstr "スクリプトサーバが無効です!" + +#: ../help/help.inc:114 +msgid "Script servers" +msgstr "スクリプトサーバ" + +#: ../templates/serverInfo.php:300 ../templates/serverInfo.php:380 +#: ../templates/3rdParty/pla/lib/QueryRender.php:75 +#: ../templates/3rdParty/pla/lib/QueryRender.php:180 +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:619 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:235 +msgid "Search" +msgstr "検索" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +#: ../templates/3rdParty/pla/lib/QueryRender.php:190 +msgid "Search Results" +msgstr "検索結果" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +#: ../templates/3rdParty/pla/lib/export_functions.php:201 +#: ../templates/3rdParty/pla/htdocs/export_form.php:81 +msgid "Search filter" +msgstr "検索フィルタ" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:293 +msgid "Search returned no results" +msgstr "検索結果が空です" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +#: ../templates/3rdParty/pla/lib/export_functions.php:200 +#: ../templates/3rdParty/pla/htdocs/export_form.php:67 +msgid "Search scope" +msgstr "検索スコープ" + +#: ../lib/modules/asteriskExtension.inc:457 +msgid "Search tree suffix for users" +msgstr "ユーザーの検索ツリーサフィックス" + +#: ../templates/pdfedit/pdfpage.php:608 +msgid "Section" +msgstr "セクション" + +#: ../lib/modules/windowsGroup.inc:60 +msgid "Security" +msgstr "セキュリティ" + +#: ../templates/3rdParty/pla/lib/Template.php:397 +#: ../templates/3rdParty/pla/lib/Template.php:422 +#: ../templates/3rdParty/pla/lib/Template.php:427 +#: ../templates/3rdParty/pla/lib/Template.php:484 +#: ../templates/3rdParty/pla/lib/Template.php:509 +#: ../templates/3rdParty/pla/lib/Template.php:514 +msgid "Security error: The file being uploaded may be malicious." +msgstr "セキュリティ・エラー: アップロード中のファイルは悪意性があります。" + +#: ../lib/modules/zarafaGroup.inc:81 ../lib/modules/zarafaGroup.inc:178 +#: ../lib/modules/zarafaGroup.inc:203 ../lib/modules/zarafaGroup.inc:285 +#: ../lib/modules/zarafaGroup.inc:655 +msgid "Security group" +msgstr "セキュリティ・グループ" + +#: ../lib/modules/windowsGroup.inc:139 +msgid "" +"Security groups are used for permission management and distribution groups " +"as email lists." +msgstr "" +"セキュリティ・グループは、パーミッションの管理およびeメールリストとしての配布" +"グループに使用します。" + +#: ../lib/modules/passwordSelfReset.inc:80 +#: ../lib/modules/passwordSelfReset.inc:205 +#: ../lib/modules/passwordSelfReset.inc:527 +msgid "Security questions" +msgstr "秘密の質問" + +#: ../templates/config/mainmanage.php:295 ../templates/config/confmain.php:458 +msgid "Security settings" +msgstr "セキュリティ設定" + +#: ../templates/help.php:94 +msgid "See also" +msgstr "参照" + +#: ../lib/account.inc:790 +msgid "See the manual for instructions to solve this problem." +msgstr "この問題を解決する手順は、マニュアルを参照してください。" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:494 +msgid "Select a template for the creation process" +msgstr "生成処理に対するテンプレートを選んでください" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:498 +msgid "Select a template to edit the entry" +msgstr "エントリ編集に用いるテンプレートを選んでください" + +#: ../lib/lists.inc:354 ../lib/lists.inc:471 +msgid "Select all" +msgstr "すべてを選択" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:31 +msgid "Select an LDIF file" +msgstr "LDIFファイルを選択" + +#: ../lib/modules/nisnetgroup.inc:240 ../lib/modules/nisnetgroup.inc:269 +msgid "Select host" +msgstr "ホストを選択" + +#: ../lib/modules/customFields.inc:3126 +msgid "Select list" +msgstr "リストを選択" + +#: ../lib/modules/nisMailAlias.inc:194 ../lib/modules/nisMailAlias.inc:215 +msgid "Select mail" +msgstr "メールを選択" + +#: ../lib/modules/nisMailAliasUser.inc:101 +msgid "Select one or more alias entries from the list to add the recipient." +msgstr "" +"受信者を追加するには、リストから一つまたは複数のエントリを選択してください。" + +#: ../lib/modules/nisnetgroup.inc:246 ../lib/modules/nisnetgroup.inc:275 +#: ../lib/modules/nisMailAlias.inc:195 ../lib/modules/nisMailAlias.inc:216 +msgid "Select user" +msgstr "ユーザを選択" + +#: ../lib/modules/posixAccount.inc:1567 ../lib/modules/posixAccount.inc:1600 +#: ../lib/modules/windowsUser.inc:1030 ../lib/modules/nisnetgroup.inc:384 +#: ../lib/modules/groupOfNamesUser.inc:131 +msgid "Selected groups" +msgstr "選択されたグループ" + +#: ../templates/masscreate.php:159 ../templates/config/confmodules.php:299 +msgid "Selected modules" +msgstr "選択されたモジュール" + +#: ../lib/modules/organizationalRoleUser.inc:116 +msgid "Selected roles" +msgstr "選択されたロール" + +#: ../lib/modules/posixGroup.inc:295 ../lib/modules/asteriskExtension.inc:461 +msgid "Selected users" +msgstr "選択されたユーザ" + +#: ../templates/selfService/adminMain.php:336 +msgid "Self service configuration" +msgstr "セルフサービスの構成" + +#: ../templates/selfService/adminMain.php:389 +msgid "Self service configuration editor" +msgstr "セルフサービス構成エディタ" + +#: ../templates/selfService/adminMain.php:395 +msgid "Self service login" +msgstr "セルフサービス・ログイン" + +#: ../lib/modules/passwordSelfReset.inc:504 +msgid "Self service login attribute" +msgstr "セルフサービス・ログイン属性" + +#: ../templates/selfService/adminMain.php:381 +msgid "Self service profile" +msgstr "セルフサービス・プロファイル" + +#: ../lib/modules/passwordSelfReset.inc:130 +#: ../lib/modules/passwordSelfReset.inc:531 +msgid "Send confirmation mail" +msgstr "確認メールを送信" + +#: ../lib/modules/passwordSelfReset.inc:112 +#: ../lib/modules/passwordSelfReset.inc:551 +msgid "Send notification mail" +msgstr "通知メールを送信" + +#: ../lib/modules/inetOrgPerson.inc:456 ../lib/modules/inetOrgPerson.inc:729 +msgid "Send password via mail" +msgstr "パスワードをメールで送信" + +#: ../templates/lists/changePassword.php:319 +#: ../templates/lists/changePassword.php:364 ../lib/modules.inc:1066 +#: ../help/help.inc:208 +msgid "Send via mail" +msgstr "メールで送信" + +#: ../lib/modules/qmailGroup.inc:90 ../lib/modules/qmailGroup.inc:220 +#: ../lib/modules/qmailGroup.inc:224 ../lib/modules/qmailGroup.inc:353 +#: ../lib/modules/qmailGroup.inc:408 ../lib/modules/qmailGroup.inc:429 +#: ../lib/modules/qmailGroup.inc:519 ../lib/modules/qmailGroup.inc:1068 +msgid "Sender email addresses" +msgstr "送信者Eメールアドレス。" + +#: ../lib/modules/qmailGroup.inc:88 ../lib/modules/qmailGroup.inc:172 +#: ../lib/modules/qmailGroup.inc:176 ../lib/modules/qmailGroup.inc:295 +#: ../lib/modules/qmailGroup.inc:387 ../lib/modules/qmailGroup.inc:521 +#: ../lib/modules/qmailGroup.inc:790 ../lib/modules/qmailGroup.inc:1067 +msgid "Sender entries" +msgstr "送信者エントリ" + +#: ../lib/modules/qmailGroup.inc:92 ../lib/modules/qmailGroup.inc:188 +#: ../lib/modules/qmailGroup.inc:192 ../lib/modules/qmailGroup.inc:311 +#: ../lib/modules/qmailGroup.inc:393 ../lib/modules/qmailGroup.inc:520 +#: ../lib/modules/qmailGroup.inc:1069 +msgid "Sender filter" +msgstr "送信者フィルタ" + +#: ../lib/modules/passwordSelfReset.inc:113 +msgid "Sends a mail to the user to inform him about the password change." +msgstr "パスワード変更を通知するメールをユーザー宛に送信します。" + +#: ../lib/modules/passwordSelfReset.inc:131 +msgid "" +"Sends a mail to the user to validate his email address before the password " +"change." +msgstr "" +"パスワード変更の前に、eメールアドレスを検証するメールをユーザー宛に送信しま" +"す。" + +#: ../lib/modules/inetOrgPerson.inc:730 ../help/help.inc:209 +msgid "" +"Sends the password to the user via mail. Please edit your LAM server profile " +"to setup the mail settings." +msgstr "" +"パスワードをユーザ宛にメールで送信します。LAMのサーバー・プルファイルを編集し" +"てメール設定をセットアップしてください" + +#: ../templates/config/mainmanage.php:358 ../lib/modules/device.inc:65 +#: ../lib/modules/device.inc:97 ../lib/modules/device.inc:127 +#: ../lib/modules/device.inc:175 ../lib/modules/device.inc:420 +#: ../lib/modules/bindDLZ.inc:220 ../lib/modules/bindDLZ.inc:350 +#: ../lib/modules/bindDLZ.inc:416 ../lib/modules/bindDLZ.inc:520 +#: ../lib/modules/bindDLZ.inc:1048 ../lib/modules/bindDLZ.inc:1541 +msgid "Serial number" +msgstr "シリアル番号" + +#: ../templates/tests/lamdaemonTest.php:72 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:166 +#: ../templates/3rdParty/pla/htdocs/import.php:47 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:110 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +#: ../templates/3rdParty/pla/htdocs/export_form.php:56 +#: ../lib/modules/kolabGroup.inc:289 ../lib/modules/bindDLZ.inc:164 +#: ../lib/modules/bindDLZ.inc:168 ../lib/modules/bindDLZ.inc:397 +#: ../lib/modules/bindDLZ.inc:507 ../lib/modules/bindDLZ.inc:1366 +#: ../lib/modules/bindDLZ.inc:1602 ../lib/modules/kolabSharedFolder.inc:429 +msgid "Server" +msgstr "サーバー" + +#: ../templates/config/confmain.php:238 +#: ../templates/selfService/adminMain.php:446 ../lib/modules/qmailUser.inc:118 +#: ../lib/modules/qmailUser.inc:163 ../lib/modules/qmailUser.inc:243 +#: ../lib/modules/qmailUser.inc:358 ../lib/modules/qmailUser.inc:427 +#: ../lib/modules/qmailUser.inc:592 ../lib/modules/qmailUser.inc:1148 +#: ../lib/modules/imapAccess.inc:77 ../lib/modules/imapAccess.inc:117 +#: ../help/help.inc:58 +msgid "Server address" +msgstr "サーバーアドレス" + +#: ../templates/config/confmain.php:501 +#: ../templates/selfService/adminMain.php:217 +msgid "Server address is invalid!" +msgstr "サーバーアドレスが無効です!" + +#: ../templates/serverInfo.php:103 ../lib/tools/serverInfo.inc:44 +msgid "Server information" +msgstr "サーバー情報" + +#: ../templates/config/confmain.php:310 +msgid "Server list" +msgstr "サーバー覧" + +#: ../templates/login.php:468 ../templates/config/confmodules.php:137 +#: ../templates/config/confmain.php:167 +#: ../templates/config/moduleSettings.php:136 +#: ../templates/config/conftypes.php:155 ../lib/modules/imapAccess.inc:130 +msgid "Server profile" +msgstr "サーバー プロファイル" + +#: ../templates/config/confmain.php:280 +#: ../templates/selfService/adminMain.php:491 +msgid "Server settings" +msgstr "サーバー設定" + +#: ../templates/serverInfo.php:180 +msgid "Server statistics" +msgstr "サーバー統計" + +#: ../templates/serverInfo.php:205 ../templates/serverInfo.php:211 +msgid "Server time" +msgstr "サーバー時刻" + +#: ../lib/modules/zarafaServer.inc:145 +msgid "Servers" +msgstr "サーバー" + +#: ../lib/modules/authorizedServiceObject.inc:82 +msgid "Service name (e.g. sshd, imap, ftp). Enter one service per entry." +msgstr "" +"サービス名(例 sshd, imap, ftp)。エントリ毎に一つのサービスを入力してくださ" +"い。" + +#: ../lib/modules/bindDLZ.inc:1340 +msgid "Services (\"SRV\" records)" +msgstr "サービス (\"SRV\" レコード)" + +#: ../templates/config/mainmanage.php:298 ../help/help.inc:146 +msgid "Session timeout" +msgstr "セッション有効期限" + +#: ../lib/modules/aliasEntry.inc:108 +msgid "Set" +msgstr "設定" + +#: ../lib/modules/sambaSamAccount.inc:1467 +#: ../lib/modules/sambaSamAccount.inc:1470 +#: ../lib/modules/sambaSamAccount.inc:1473 +#: ../lib/modules/shadowAccount.inc:464 ../lib/modules/shadowAccount.inc:467 +#: ../lib/modules/shadowAccount.inc:470 +msgid "Set also for Kerberos" +msgstr "Kerberosに対しても設定" + +#: ../lib/modules/mitKerberos.inc:682 ../lib/modules/shadowAccount.inc:461 +#: ../lib/modules/heimdalKerberos.inc:592 +msgid "Set also for Samba 3" +msgstr "Samba 3に対しても設定" + +#: ../lib/modules/mitKerberos.inc:679 ../lib/modules/sambaSamAccount.inc:1464 +#: ../lib/modules/heimdalKerberos.inc:589 +msgid "Set also for Shadow" +msgstr "shadowに対しても設定" + +#: ../lib/modules.inc:1219 ../lib/modules.inc:1221 +msgid "Set password" +msgstr "パスワードを設定" + +#: ../lib/modules/posixAccount.inc:269 ../lib/modules/posixAccount.inc:445 +msgid "Set primary group as memberUid" +msgstr "プライマリーグループをmemberUidとしてセット" + +#: ../templates/config/profmanage.php:280 +#: ../templates/config/profmanage.php:291 +#: ../templates/config/profmanage.php:292 ../help/help.inc:136 +msgid "Set profile password" +msgstr "プロファイルパスワード設定" + +#: ../lib/modules.inc:1222 +msgid "Set random password" +msgstr "ランダムなパスワードを設定" + +#: ../templates/lists/changePassword.php:347 +msgid "Set specific password" +msgstr "任意のパスワードを設定" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +msgid "Set the search results to 0 to retrieve all available records." +msgstr "" +"全ての利用可能なレコードを取得するために、検索結果に0をセットしてください。" + +#: ../templates/selfService/adminMain.php:593 +msgid "Set this field read-only." +msgstr "このフィールドを読み取り専用に設定する。" + +#: ../lib/modules/groupOfNames.inc:110 +msgid "" +"Set this only if your LDAP schema allows that groups may not have any " +"members (e.g. if you use OpenDJ)." +msgstr "" +"グループがメンバーを持たない事がLDAPスキーマで許されている場合にのみ設定して" +"ください。" + +#: ../lib/modules/nisMailAliasUser.inc:77 +#: ../lib/modules/nisMailAliasUser.inc:81 +msgid "Sets the alias names linked to the current user name." +msgstr "現在のユーザー名にリンクされるエイリアス名を設定します。" + +#: ../lib/modules/nisMailAliasUser.inc:85 +#: ../lib/modules/nisMailAliasUser.inc:89 +msgid "Sets the alias names linked to the user's email address." +msgstr "ユーザのeメールアドレスにリンクされた別名をセットします。" + +#: ../lib/modules/bindDLZ.inc:217 +msgid "" +"Sets the default timeout (in seconds) for entries without explicit timeout " +"value." +msgstr "" +"明示的なタイムアウト値が指定されない場合に設定される、エントリのデフォルトの" +"タイムアウト(秒)" + +#: ../lib/modules/qmailUser.inc:216 +msgid "Sets the delivery mode (e.g. disable mail forwarding)." +msgstr "配送モードを設定する(例 メール転送禁止)。" + +#: ../lib/modules/posixGroup.inc:497 +msgid "Sets the group password." +msgstr "グループパスワードを設定" + +#: ../lib/modules/bindDLZ.inc:197 ../lib/modules/bindDLZ.inc:201 +msgid "" +"Sets the preference for the mail server. Lower values have higher priority." +msgstr "" +"メールサーバーの優先度を設定します。数値が少ないほど高い優先順位になります。" + +#: ../help/help.inc:183 +msgid "Sets this account type to read-only." +msgstr "このアカウントタイプを読み取り専用に設定します。" + +#: ../lib/modules/shadowAccount.inc:91 +msgid "Shadow" +msgstr "Shadow" + +#: ../lib/modules/sambaSamAccount.inc:242 +#: ../lib/modules/sambaSamAccount.inc:381 +#: ../lib/modules/sambaSamAccount.inc:1544 +#: ../lib/modules/sambaSamAccount.inc:1954 +msgid "Shadowing" +msgstr "Shadowing" + +#: ../lib/types/kolabSharedFolderType.inc:141 +#, php-format +msgid "Shared folder count: %s" +msgstr "共有フォルダー数: %s" + +#: ../lib/modules/kolabSharedFolder.inc:57 +msgid "Shared mail folder" +msgstr "共有メールフォルダー" + +#: ../lib/modules/zarafaUser.inc:112 ../lib/modules/zarafaUser.inc:265 +#: ../lib/modules/zarafaUser.inc:358 ../lib/modules/zarafaUser.inc:585 +#: ../lib/modules/zarafaUser.inc:1268 ../lib/modules/zarafaUser.inc:1795 +msgid "Shared store only" +msgstr "共有ストアのみ" + +#: ../lib/modules/ddns.inc:82 +msgid "Should DDNS (Dynamic DNS) be activated?" +msgstr "DDNS(Dynamic DNS)を有効にしますか?" + +#: ../lib/modules/ddns.inc:86 +msgid "Should fix IP addresses be added to the DNS server?" +msgstr "固定IPアドレスをDNSサーバーに追加しますか?" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1121 +msgid "Show" +msgstr "表示" + +#: ../templates/massBuildAccounts.php:243 +msgid "Show LDIF file" +msgstr "LDIFファイルを表示" + +#: ../lib/types/user.inc:683 +msgid "Show account status" +msgstr "アカウントの状態を表示する" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +#: ../templates/3rdParty/pla/htdocs/export_form.php:84 +msgid "Show attributes" +msgstr "属性を表示" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1122 +msgid "Show internal attributes" +msgstr "内部属性を表示する" + +#: ../lib/modules/asteriskExtension.inc:453 +msgid "Show only Asterisk accounts" +msgstr "Asteriskアカウントだけを表示" + +#: ../lib/types/group.inc:423 +msgid "Show primary group members as normal group members" +msgstr "通常のグループメンバーとしてプライマリグループのメンバーを表示" + +#: ../templates/schema/schema.php:194 +msgid "Single valued" +msgstr "単一の値" + +#: ../lib/modules/pykotaUser.inc:652 ../lib/modules/pykotaUser.inc:1001 +msgid "Size" +msgstr "サイズ" + +#: ../lib/modules/qmailUser.inc:228 +msgid "Size limit in bytes for a single mail. Larger mails will be bounced." +msgstr "" +"バイト単位で表現した一通のメールのサイズ制限。これより大きなメールはバウンス" +"されます。" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Skip" +msgstr "スキップ" + +#: ../lib/modules/quota.inc:634 ../lib/modules/systemQuotas.inc:383 +msgid "Soft block" +msgstr "ソフトブロック" + +#: ../lib/modules/quota.inc:113 ../lib/modules/quota.inc:401 +#: ../lib/modules/quota.inc:507 ../lib/modules/systemQuotas.inc:124 +msgid "Soft block limit" +msgstr "ソフトブロック制限" + +#: ../lib/modules/quota.inc:114 +msgid "Soft block limit." +msgstr "ソフトブロック制限" + +#: ../lib/modules/quota.inc:636 ../lib/modules/systemQuotas.inc:385 +msgid "Soft inode" +msgstr "ソフトinode" + +#: ../lib/modules/quota.inc:136 +msgid "Soft inode (files) limit." +msgstr "ソフトinode(ファイル)制限。" + +#: ../lib/modules/quota.inc:135 ../lib/modules/quota.inc:405 +#: ../lib/modules/quota.inc:509 ../lib/modules/systemQuotas.inc:128 +msgid "Soft inode limit" +msgstr "ソフトinode制限" + +#: ../lib/modules/imapAccess.inc:98 +msgid "" +"Some IMAP servers store mailboxes with a prefix (e.g. \"user\" for Cyrus " +"which results in \"user.username\")." +msgstr "" +"いくつかのIMAPサーバはプリフィックスのついたメールボックスを保存します(例 " +"Cyrus における\"user\"プリフィックスは\"user.username\"と解釈されます)。" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1019 +#, php-format +msgid "Some attributes (%s) were modified and are highlighted below." +msgstr "いくつかの属性(%s)は変更され、ハイライト表示されています。" + +#: ../lib/modules.inc:876 +msgid "Some required information is missing" +msgstr "必須項目が満たされていません。" + +#: ../templates/help.php:123 +#, php-format +msgid "" +"Sorry this help id ({bold}%s{endbold}) is not available for this module " +"({bold}%s{endbold})." +msgstr "" +"このヘルプID({bold}%s{endbold})は、このモジュール({bold}%s{endbold})では無効" +"です。" + +#: ../templates/help.php:136 +#, php-format +msgid "Sorry this help number ({bold}%s{endbold}) is not available." +msgstr "申し訳ありません。このヘルプ番号({bold}%s{endbold})は無効です。" + +#: ../lib/modules/sambaSamAccount.inc:326 +#: ../lib/modules/sambaSamAccount.inc:1277 +msgid "Special user" +msgstr "特殊ユーザ" + +#: ../lib/modules/zarafaDynamicGroup.inc:92 +#: ../lib/modules/zarafaAddressList.inc:80 +msgid "" +"Specifies a filter that matches the members (e.g. \"(mail=*@zarafa.nl)\")." +msgstr "" +"メンバーにマッチするフィルターを指定します(例 \"(mail=*@zarafa.nl)\")。" + +#: ../lib/modules/groupOfNames.inc:119 +msgid "Specifies how members and owners are displayed." +msgstr "メンバーと所有者をどのように表示するかを指定します。" + +#: ../lib/modules/organizationalRole.inc:107 +msgid "Specifies how members are displayed." +msgstr "メンバーが表示されるかを指定します。" + +#: ../help/help.inc:86 +msgid "" +"Specifies if LAM should automatically follow referrals. Activate if you use " +"referrals in your LDAP directory." +msgstr "" +"LAMが自動的に参照を追跡するかを指定します。LDAPディレクトリの参照を使用する場" +"合に有効化してください。" + +#: ../help/help.inc:260 +msgid "" +"Specifies if password mails may be sent to mail addresses other than the " +"user's LDAP mail address." +msgstr "" +"ユーザーのLDAPメールアドレス以外のメールアドレスへパスワード・メールを送信す" +"る場合に指定します。" + +#: ../help/help.inc:256 +msgid "Specifies if the mail should be sent as text or HTML." +msgstr "メールをテキストで送信するか、またはHTMLにするかを指定します。" + +#: ../help/help.inc:167 +msgid "" +"Specifies if the password must not contain 3 or more characters of the user/" +"first/last name." +msgstr "パスワードにユーザー名/姓/名のうち3文字以上を含んではならないか否かを指定します。" + +#: ../help/help.inc:165 +msgid "Specifies if the password must not contain the user name." +msgstr "パスワードにユーザー名を含める事を禁止するか否かを指定します。" + +#: ../lib/modules/asteriskAccount.inc:224 +msgid "Specifies if the user can call forward." +msgstr "そのユーザーに転送が許可されているか否かを指定します。" + +#: ../lib/modules/zarafaGroup.inc:82 +msgid "Specifies if this group has security possibilities." +msgstr "このグループがセキュリティ上の可能性を持つか否かを指定します。" + +#: ../lib/modules/zarafaServer.inc:81 +msgid "" +"Specifies if this server contains the public store. This may be changed only " +"for new entries." +msgstr "サーバーが公開ストアを含んでいるか否かを指定します。これは新しいエントリに対してのみ反映されます。" + +#: ../lib/modules/dhcp_settings.inc:202 +msgid "Specifies if unknown clients are allowed." +msgstr "未登録のクライアントが許可されるか否かを指定します。" + +#: ../lib/modules/ppolicy.inc:133 +msgid "Specifies if users are allowed to change their own passwords or not." +msgstr "ユーザー自身によるパスワード変更を許可するか否かを指定します。" + +#: ../lib/modules/zarafaDynamicGroup.inc:88 +#: ../lib/modules/zarafaAddressList.inc:76 +msgid "" +"Specifies the LDAP base where to search for members (e.g. \"ou=zarafa," +"dc=company,dc=com\")." +msgstr "" +"メンバーを検索するLDAPベースを指定します(例 \"ou=zarafa,dc=company,dc=com" +"\")。" + +#: ../lib/modules/customFields.inc:161 +msgid "Specifies the allowed file extension. This is checked at upload time." +msgstr "" +"許可されたファイル拡張子を指定します。アップロード時にチェックされます。" + +#: ../lib/modules/zarafaContact.inc:96 ../lib/modules/zarafaGroup.inc:98 +#: ../lib/modules/zarafaUser.inc:145 +msgid "" +"Specifies the attribute that should be used to reference the entries. If you " +"would like to reference also groups then this must be set to \"dn\"." +msgstr "エンティティを参照するために使用する属性を指定します。もしもグループを参照したい場合は、\"dn\"に設定しなくてはなりません。" + +#: ../lib/modules/zarafaUser.inc:121 +msgid "Specifies the capacity of this resource." +msgstr "このリソースの容量を指定します。" + +#: ../lib/modules/kolabSharedFolder.inc:163 +msgid "Specifies the folder type (e.g. shared mail folder)." +msgstr "フォルダー・タイプを指定する(例 共有メール・フォルダー)。" + +#: ../lib/modules/customFields.inc:157 +msgid "Specifies the maximum allowed file size in bytes." +msgstr "最大ファイルサイズをバイト数で指定します。" + +#: ../lib/modules/mitKerberos.inc:137 ../lib/modules/heimdalKerberos.inc:111 +msgid "Specifies the maximum lifetime of a ticket in days." +msgstr "チケットの最長有効期間を日数で指定します。" + +#: ../lib/modules/ppolicy.inc:117 +msgid "" +"Specifies the maximum number of seconds before a password is due to expire " +"that expiration warning messages will be returned to a user." +msgstr "" +"ユーザーにパスワード期限切れ警告を発してから期限切れになるまでの最大秒数を指" +"定します。" + +#: ../lib/modules/freeRadius.inc:109 +msgid "" +"Specifies the maximum number of seconds that a connection can be idle before " +"the session is terminated." +msgstr "" +"接続がアイドル状態になってからセッションを強制終了するまでの最大秒数を指定し" +"ます。" + +#: ../lib/modules/mitKerberos.inc:133 ../lib/modules/heimdalKerberos.inc:115 +msgid "Specifies the maximum renewable lifetime of a ticket in days." +msgstr "チケット更新の最長有効期間を日数で指定します。" + +#: ../lib/modules/ppolicy.inc:121 +msgid "" +"Specifies the minimum number of characters that will be accepted in a " +"password." +msgstr "パスワードの最低文字数を指定します。" + +#: ../help/help.inc:163 +msgid "Specifies the number of above password rules that must be fulfilled." +msgstr "満たさなければならないパスワードルール数の下限値を指定します。" + +#: ../lib/modules/ppolicy.inc:109 +msgid "" +"Specifies the number of consecutive failed login attempts after which the " +"password may not be used to login." +msgstr "パスワードが無効になるログイン失敗の連続回数を指定します。" + +#: ../lib/modules/ppolicy.inc:93 +msgid "" +"Specifies the number of previously used passwords which should be saved in " +"the password history. New passwords can only be set if they are not in the " +"password history." +msgstr "" +"パスワード履歴に保存する使用済みパスワードの数を指定します。パスワード履歴に" +"存在しない新しいパスワードだけが設定できます。" + +#: ../lib/modules/ppolicy.inc:113 +msgid "" +"Specifies the number of seconds after which old consecutive failed login " +"attempts are purged from the failure counter, even though no successful " +"authentication has occurred." +msgstr "" +"古いログイン連続失敗の記録が、(認証に成功しなくとも)ログイン失敗カウンタから" +"末梢されるまでの秒数を指定します。" + +#: ../lib/modules/ppolicy.inc:105 +msgid "" +"Specifies the number of seconds during which the password cannot be used to " +"login due to too many consecutive failed bind attempts." +msgstr "" +"連続したbind試行の失敗によってパスワードがログインに使えなくなる秒数を指定し" +"ます。" + +#: ../lib/modules/eduPerson.inc:93 ../lib/modules/eduPerson.inc:97 +msgid "" +"Specifies the person's affiliation within a particular security domain in " +"broad categories such as student, faculty, staff, alum, etc." +msgstr "学生、教員、職員、同窓生など、特定のセキュリティ・ドメインに対する個人の属性の大分類を指定します。" + +#: ../lib/modules/eduPerson.inc:89 +msgid "" +"Specifies the person's primary relationship to the institution in broad " +"categories such as student, faculty, staff, alum, etc." +msgstr "学生、教員、職員、同窓生など、教育施設に対する個人の主たる関係の大分類を指定します。" + +#: ../lib/modules/eduPerson.inc:106 ../lib/modules/eduPerson.inc:110 +msgid "" +"Specifies the person's relationships to the institution in broad categories " +"such as student, faculty, staff, alum, etc." +msgstr "学生、教員、職員、同窓生など、教育施設に対する個人の関係の大分類を指定します。" + +#: ../lib/modules/bindDLZ.inc:173 ../lib/modules/bindDLZ.inc:177 +msgid "" +"Specifies the priority of this entry (lower value means more preferred)." +msgstr "このエントリーの優先度を指定します(小さい値ほど高優先度)。" + +#: ../lib/modules/pykotaGroup.inc:126 ../lib/modules/pykotaUser.inc:129 +msgid "" +"Specifies the type of limit for printing if any. Please note that in " +"contrast to \"Free printing\" the option \"No quota\" includes accounting." +msgstr "" +"何らかの印刷制限がある場合に、そのタイプを指定します。\"無料の印刷\" と対照的" +"に、\"クオータなし\" は課金の対象となる事に注意してください。" + +#: ../lib/modules/bindDLZ.inc:189 ../lib/modules/bindDLZ.inc:193 +msgid "Specifies the used port for this entry." +msgstr "このエントリーに使用されたポートを指定します。" + +#: ../lib/modules/asteriskAccount.inc:176 +msgid "Specifies the user's pickup group." +msgstr "ユーザのピックアップ・グループを指定します。" + +#: ../lib/modules/bindDLZ.inc:181 ../lib/modules/bindDLZ.inc:185 +msgid "Specifies the weight of this entry (relative value)." +msgstr "このエントリの重みを指定します(相対的な値)。" + +#: ../lib/modules/zarafaUser.inc:109 +msgid "" +"Specifies whether the user is an admin. System administrators may " +"additionally create, modify and delete companies." +msgstr "" +"ユーザーが管理者か否かを指定指定します。システム管理者は、さらに会社を作成、" +"変更、削除することができます。" + +#: ../lib/modules/ppolicy.inc:137 +msgid "" +"Specifies whether the user's existing password must be sent along with their " +"new password when changing a password. Attention, LAM does not support " +"password changes which require the old password." +msgstr "" +"パスワード変更の際に、ユーザーの現在のパスワードを新しいパスワードと一緒に送" +"る必要があるかを設定します。LAMは古いパスワードを必要とするパスワード変更をサ" +"ポートしていません。" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1460 +msgid "Specify attributes and values" +msgstr "属性と値を指定" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +msgid "Standard LDAP search filter. Example: (&(sn=Smith)(givenName=David))" +msgstr "標準のLDAP検索フィルタ。例: (&(sn=Smith)(givenName=David))" + +#: ../templates/serverInfo.php:193 ../templates/serverInfo.php:199 +msgid "Start time" +msgstr "開始時刻" + +#: ../lib/modules/windowsUser.inc:168 ../lib/modules/windowsUser.inc:338 +#: ../lib/modules/windowsUser.inc:512 ../lib/modules/windowsUser.inc:545 +#: ../lib/modules/windowsUser.inc:712 ../lib/modules/windowsUser.inc:1600 +#: ../lib/modules/windowsUser.inc:1733 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:190 ../lib/modules/inetOrgPerson.inc:515 +#: ../lib/modules/inetOrgPerson.inc:557 ../lib/modules/inetOrgPerson.inc:780 +#: ../lib/modules/inetOrgPerson.inc:784 ../lib/modules/inetOrgPerson.inc:1261 +#: ../lib/modules/inetOrgPerson.inc:1264 ../lib/modules/inetOrgPerson.inc:1910 +#: ../lib/modules/inetOrgPerson.inc:2599 ../lib/modules/inetOrgPerson.inc:3519 +#: ../lib/modules/inetOrgPerson.inc:3579 +msgid "State" +msgstr "都道府県" + +#: ../templates/pdfedit/pdfpage.php:538 ../templates/pdfedit/pdfpage.php:540 +msgid "Static text" +msgstr "静的テキスト" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1455 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1467 +#, php-format +msgid "Step %s of %s" +msgstr "ステップ %s / %s" + +#: ../lib/modules/windowsUser.inc:280 ../lib/modules/inetOrgPerson.inc:308 +msgid "Steve" +msgstr "スティーブ" + +#: ../lib/modules/sambaSamAccount.inc:421 ../lib/modules/posixAccount.inc:350 +#: ../lib/modules/windowsUser.inc:292 ../lib/modules/windowsUser.inc:298 +#: ../lib/modules/pykotaUser.inc:201 ../lib/modules/inetOrgPerson.inc:2037 +#: ../lib/modules/asteriskVoicemail.inc:174 +msgid "Steve Miller" +msgstr "スティーブ ミラー" + +#: ../lib/modules/posixAccount.inc:358 +msgid "Steve Miller,Room 2.14,123-123-1234,123-123-1234" +msgstr "スティーブ ミラー, 2-14号室, 123-123-1234,123-123-1234" + +#: ../lib/modules/eduPerson.inc:190 +msgid "Steve, Stevo" +msgstr "Steve, Stevo" + +#: ../lib/modules/imapAccess.inc:91 +msgid "" +"Storing the password in your server profile is also possible but not " +"recommended." +msgstr "" +"パスワードをサーバー・プロファイルに保存することも可能ですが、推奨されませ" +"ん。" + +#: ../lib/modules/windowsUser.inc:172 ../lib/modules/windowsUser.inc:314 +#: ../lib/modules/windowsUser.inc:513 ../lib/modules/windowsUser.inc:544 +#: ../lib/modules/windowsUser.inc:708 ../lib/modules/windowsUser.inc:1601 +#: ../lib/modules/windowsUser.inc:1732 ../lib/modules/inetOrgPerson.inc:81 +#: ../lib/modules/inetOrgPerson.inc:158 ../lib/modules/inetOrgPerson.inc:178 +#: ../lib/modules/inetOrgPerson.inc:377 ../lib/modules/inetOrgPerson.inc:545 +#: ../lib/modules/inetOrgPerson.inc:664 ../lib/modules/inetOrgPerson.inc:668 +#: ../lib/modules/inetOrgPerson.inc:1225 ../lib/modules/inetOrgPerson.inc:1228 +#: ../lib/modules/inetOrgPerson.inc:1895 ../lib/modules/inetOrgPerson.inc:2522 +#: ../lib/modules/inetOrgPerson.inc:3511 ../lib/modules/inetOrgPerson.inc:3576 +msgid "Street" +msgstr "町名" + +#: ../templates/pdfedit/pdfpage.php:449 ../templates/pdfedit/pdfmain.php:353 +msgid "Structure name" +msgstr "構成名" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:136 +#: ../templates/3rdParty/pla/htdocs/export_form.php:33 +msgid "Sub (entire subtree)" +msgstr "Sub (サブツリー全体)" + +#: ../lib/types/netgroup.inc:93 ../lib/modules/nisnetgroup.inc:91 +#: ../lib/modules/nisnetgroup.inc:126 ../lib/modules/nisnetgroup.inc:141 +#: ../lib/modules/nisnetgroup.inc:209 ../lib/modules/nisnetgroup.inc:383 +#: ../lib/modules/nisnetgroup.inc:581 +msgid "Subgroups" +msgstr "サブグループ" + +#: ../templates/config/confmain.php:349 ../lib/modules/selfRegistration.inc:94 +#: ../lib/modules/selfRegistration.inc:231 +#: ../lib/modules/passwordSelfReset.inc:120 +#: ../lib/modules/passwordSelfReset.inc:539 +#: ../lib/modules/passwordSelfReset.inc:559 ../help/help.inc:248 +msgid "Subject" +msgstr "件名" + +#: ../lib/types/dhcp.inc:94 ../lib/modules/dhcp_settings.inc:149 +#: ../lib/modules/dhcp_settings.inc:207 ../lib/modules/dhcp_settings.inc:222 +#: ../lib/modules/dhcp_settings.inc:242 ../lib/modules/dhcp_settings.inc:561 +#: ../lib/modules/dhcp_settings.inc:685 +msgid "Subnet" +msgstr "サブネット" + +#: ../lib/modules/dhcp_settings.inc:189 ../lib/modules/dhcp_settings.inc:215 +#: ../lib/modules/dhcp_settings.inc:233 ../lib/modules/dhcp_settings.inc:300 +#: ../lib/modules/dhcp_settings.inc:606 ../lib/modules/dhcp_settings.inc:681 +msgid "Subnet mask" +msgstr "サブネット・マスク" + +#: ../templates/schema/schema.php:176 +msgid "Substring Rule" +msgstr "Substring Rule" + +#: ../templates/3rdParty/pla/htdocs/import.php:63 +#: ../templates/3rdParty/pla/htdocs/copy.php:56 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:68 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:85 +msgid "Success" +msgstr "成功" + +#: ../templates/3rdParty/pla/htdocs/delete.php:32 +#, php-format +msgid "Successfully deleted DN %s" +msgstr "DN %s を削除しました。" + +#: ../lib/modules/sudoRole.inc:48 +msgid "Sudo role" +msgstr "sudoロール" + +#: ../lib/types/sudo.inc:159 +#, php-format +msgid "Sudo role count: %s" +msgstr "sudoロール数: %s" + +#: ../lib/types/sudo.inc:48 +msgid "Sudo role management" +msgstr "sudoロール管理" + +#: ../lib/types/sudo.inc:39 +msgid "Sudo roles" +msgstr "sudoロール" + +#: ../lib/modules/sudoRole.inc:139 +msgid "Sudo roles with higher order numbers are used if multiple roles match." +msgstr "複数のロールにマッチした場合、上位のsudoロールが使用されます。" + +#: ../lib/modules/nisMailAliasUser.inc:92 +#: ../lib/modules/nisMailAliasUser.inc:362 ../lib/modules.inc:988 +msgid "Suffix" +msgstr "サフィックス" + +#: ../lib/modules/posixGroup.inc:416 ../lib/modules/posixGroup.inc:516 +msgid "Suffix for GID/group name check" +msgstr "GID/グループ名チェックのサフィックス" + +#: ../lib/modules/posixAccount.inc:224 ../lib/modules/posixAccount.inc:242 +#: ../lib/modules/posixAccount.inc:489 +msgid "Suffix for UID/user name check" +msgstr "UID/ユーザー名チェックのサフィックス" + +#: ../lib/modules/selfRegistration.inc:102 +#: ../lib/modules/selfRegistration.inc:212 +msgid "Suffix for new users" +msgstr "新規ユーザーのサフィックス" + +#: ../lib/modules/sambaSamAccount.inc:1376 +msgid "Sunday" +msgstr "日曜日" + +#: ../templates/selfService/adminMain.php:602 +msgid "Switch back to default label." +msgstr "デフォルト・ラベルに戻す。" + +#: ../templates/3rdParty/pla/htdocs/compare.php:72 +msgid "Switch entries" +msgstr "エントリの切り替え" + +#: ../lib/modules/asteriskAccount.inc:96 +#: ../lib/modules/asteriskVoicemail.inc:84 +msgid "Sync Asterisk password with Unix password" +msgstr "Asteriskパスワードをunixパスワードと同期。" + +#: ../lib/modules/heimdalKerberos.inc:242 +msgid "Sync Heimdal Kerberos password with Unix password" +msgstr "Heimdal Kerberosパスワードをunixパスワードと同期" + +#: ../lib/modules/mitKerberos.inc:277 +msgid "Sync MIT Kerberos password with Unix password" +msgstr "Samba LMパスワードをunixパスワードと同期" + +#: ../lib/modules/passwordSelfReset.inc:148 +#: ../lib/modules/passwordSelfReset.inc:529 +msgid "Sync Samba 3 password" +msgstr "Samba3パスワードを同期" + +#: ../lib/modules/sambaSamAccount.inc:248 +msgid "Sync Samba LM password with Unix password" +msgstr "Samba LMパスワードをunixパスワードと同期します。" + +#: ../lib/modules/sambaSamAccount.inc:247 +msgid "Sync Samba NT password with Unix password" +msgstr "Samba NTパスワードをunixパスワードと同期します。" + +#: ../lib/modules/customFields.inc:1111 +msgid "Sync fields with page layout" +msgstr "フィールドをページレイアウトと同期する" + +#: ../templates/schema/schema.php:181 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:142 +msgid "Syntax" +msgstr "Syntax" + +#: ../templates/schema/schema.php:89 +msgid "Syntax OID" +msgstr "Syntax OID" + +#: ../templates/schema/schema.php:73 ../templates/schema/schema.php:74 +msgid "Syntaxes" +msgstr "Syntaxes" + +#: ../lib/modules/zarafaUser.inc:602 ../lib/modules/zarafaUser.inc:1259 +msgid "System administrator" +msgstr "システム管理者" + +#: ../templates/config/mainmanage.php:412 +msgid "System logging" +msgstr "システムロギング" + +#: ../help/help.inc:60 +msgid "TLS cannot be combined with ldaps://." +msgstr "TLSを ldaps:// と結合できませんでした。" + +#: ../lib/modules/bindDLZ.inc:118 ../lib/modules/bindDLZ.inc:370 +#: ../lib/modules/bindDLZ.inc:375 ../lib/modules/bindDLZ.inc:484 +msgid "TXT record" +msgstr "TXT レコード" + +#: ../lib/modules/bindDLZ.inc:425 ../lib/modules/bindDLZ.inc:435 +#: ../lib/modules/bindDLZ.inc:1569 +msgid "TXT records" +msgstr "TXT レコード" + +#: ../lib/modules/kolabSharedFolder.inc:158 +#: ../lib/modules/kolabSharedFolder.inc:194 +#: ../lib/modules/kolabSharedFolder.inc:240 +#: ../lib/modules/kolabSharedFolder.inc:262 +#: ../lib/modules/kolabSharedFolder.inc:292 +#: ../lib/modules/kolabSharedFolder.inc:560 +msgid "Target IMAP folder" +msgstr "ターゲットIMAPフォルダー" + +#: ../lib/modules/kolabUser.inc:245 +msgid "Target of invitation policy is invalid!" +msgstr "招待ポリシーのターゲット無効です。" + +#: ../templates/pdfedit/pdfmain.php:317 +#: ../templates/profedit/profilemain.php:284 +msgid "Target server profile" +msgstr "ターゲット・サーバー・プロファイル" + +#: ../templates/help.php:89 ../lib/modules.inc:660 +msgid "Technical name" +msgstr "テクニカル名" + +#: ../templates/lists/changePassword.php:285 ../lib/types/user.inc:203 +#: ../lib/modules/windowsUser.inc:176 ../lib/modules/windowsUser.inc:362 +#: ../lib/modules/windowsUser.inc:514 ../lib/modules/windowsUser.inc:542 +#: ../lib/modules/windowsUser.inc:601 ../lib/modules/windowsUser.inc:718 +#: ../lib/modules/windowsUser.inc:1602 ../lib/modules/windowsUser.inc:1726 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:157 +#: ../lib/modules/inetOrgPerson.inc:205 ../lib/modules/inetOrgPerson.inc:417 +#: ../lib/modules/inetOrgPerson.inc:572 ../lib/modules/inetOrgPerson.inc:696 +#: ../lib/modules/inetOrgPerson.inc:700 ../lib/modules/inetOrgPerson.inc:1382 +#: ../lib/modules/inetOrgPerson.inc:1385 ../lib/modules/inetOrgPerson.inc:1900 +#: ../lib/modules/inetOrgPerson.inc:2478 ../lib/modules/inetOrgPerson.inc:3529 +#: ../lib/modules/inetOrgPerson.inc:3582 +msgid "Telephone number" +msgstr "電話番号" + +#: ../lib/modules/inetOrgPerson.inc:355 +msgid "Temp" +msgstr "臨時雇用" + +#: ../lib/modules/windowsUser.inc:310 ../lib/modules/pykotaUser.inc:228 +#: ../lib/modules/inetOrgPerson.inc:331 +msgid "Temp, contract till December" +msgstr "臨時雇用、12月までの契約" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +msgid "Template" +msgstr "テンプレート" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:520 +msgid "Templates" +msgstr "テンプレート" + +#: ../lib/modules/sambaSamAccount.inc:390 +#: ../lib/modules/sambaSamAccount.inc:608 +#: ../lib/modules/sambaSamAccount.inc:1289 +msgid "Terminal server options" +msgstr "ターミナルサーバオプション" + +#: ../lib/tools/tests.inc:44 +msgid "Tests" +msgstr "テスト" + +#: ../templates/config/confmain.php:364 ../lib/modules/selfRegistration.inc:69 +#: ../lib/modules/selfRegistration.inc:238 ../lib/modules/bindDLZ.inc:156 +#: ../lib/modules/bindDLZ.inc:160 ../lib/modules/bindDLZ.inc:370 +#: ../lib/modules/bindDLZ.inc:1238 ../lib/modules/bindDLZ.inc:1572 +#: ../lib/modules/passwordSelfReset.inc:124 +#: ../lib/modules/passwordSelfReset.inc:134 +#: ../lib/modules/passwordSelfReset.inc:543 +#: ../lib/modules/passwordSelfReset.inc:563 ../help/help.inc:250 +msgid "Text" +msgstr "本文" + +#: ../lib/modules/bindDLZ.inc:1235 +msgid "Text (\"TXT\" records)" +msgstr "テキスト (\"TXT\" レコード)" + +#: ../lib/modules/customFields.inc:2587 +msgid "Text area" +msgstr "テキストエリア" + +#: ../templates/pdfedit/pdfpage.php:617 ../lib/modules/customFields.inc:1885 +msgid "Text field" +msgstr "テキストフィールド" + +#: ../lib/modules/eduPerson.inc:115 +msgid "" +"The \"NetID\" of the person for the purposes of inter-institutional " +"authentication. It should be represented in the form \"user@scope\" where " +"scope defines a local security domain." +msgstr "" +"教育組織間の認証のための個人の\"NetID\"。これは \"user@scope\" の形式で表さ" +"れ、scopeはローカルなセキュリティ・ドメインを定義します。" + +#: ../lib/modules/dhcp_settings.inc:336 +msgid "The DHCP ranges were changed to fit for the new subnet." +msgstr "新しいサブネットに適合するようにDHCP範囲が変更されました。" + +#: ../lib/modules/eduPerson.inc:127 +msgid "" +"The DN of the directory entry representing the institution with which the " +"person is associated." +msgstr "" +"個人と関係のある教育施設のorganizational unitを示すディレクトリ・エントリの" +"DN。" + +#: ../lib/modules/eduPerson.inc:131 +msgid "" +"The DN of the directory entry representing the person's primary " +"organisational unit." +msgstr "個人の主たるorganizational unitを示すディレクトリ・エントリのDN。" + +#: ../lib/modules/eduPerson.inc:135 ../lib/modules/eduPerson.inc:139 +msgid "" +"The DNs of the directory entries representing the person's organisational " +"units." +msgstr "個人のorganizational unitを示すディレクトリ・エントリのDN。" + +#: ../lib/modules/posixGroup.inc:513 +msgid "" +"The ID of this group was changed. You can update all user and host entries " +"to the new group ID." +msgstr "" +"このグループのIDは変更されました。全てのユーザーとホストのエントリーを新しい" +"グループIDに更新する事が出来ます。" + +#: ../lib/modules/imapAccess.inc:179 +msgid "The IMAP admin password is empty." +msgstr "IMAP管理者パスワードが空です。" + +#: ../templates/config/mainmanage.php:100 +#: ../templates/config/mainmanage.php:122 ../lib/modules/bindDLZ.inc:488 +#: ../lib/modules/bindDLZ.inc:489 +#, php-format +msgid "The IP address %s is invalid!" +msgstr "IPアドレス %s は無効です!" + +#: ../lib/modules/fixed_ip.inc:498 +msgid "The IP address does not match the subnet." +msgstr "IPアドレスがサブネットと矛盾しています。" + +#: ../lib/modules/fixed_ip.inc:501 +msgid "The IP address is already in use." +msgstr "このIPアドレスは既に使用されています:" + +#: ../lib/modules/ipHost.inc:115 ../lib/modules/ipHost.inc:116 +#: ../lib/modules/asteriskAccount.inc:574 +#: ../lib/modules/asteriskAccount.inc:575 ../lib/modules/ppolicyUser.inc:96 +#: ../lib/modules/range.inc:418 ../lib/modules/range.inc:435 +#: ../lib/modules/freeRadius.inc:249 ../lib/modules/freeRadius.inc:250 +#: ../lib/modules/fixed_ip.inc:493 +msgid "The IP address is invalid." +msgstr "IPアドレスが無効です。" + +#: ../lib/modules/fixed_ip.inc:107 +msgid "The IP address of the PC." +msgstr "PCのIPアドレス。" + +#: ../lib/modules/dhcp_settings.inc:162 +msgid "" +"The IP addresses of the DNS servers. Multiple addresses are separated by \"," +"\". Example: 192.168.0.10, 192.168.0.11" +msgstr "" +"DNSサーバーのIPアドレス。複数のIPアドレスは\",\"によって区切られます。例: " +"192.168.0.10, 192.168.0.11" + +#: ../lib/modules/dhcp_settings.inc:170 +msgid "" +"The IP addresses of the Netbios name servers (e.g. \"123.123.123.123, " +"123.123.123.124\")." +msgstr "" +"NetBIOSネームサーバーのIPアドレス(例: 192.168.123.123, 192.168.123.124)。" + +#: ../lib/modules/range.inc:422 ../lib/modules/range.inc:437 +msgid "The IP does not match the subnet." +msgstr "IPアドレスがサブネットにマッチしません。" + +#: ../lib/modules/mitKerberos.inc:153 ../lib/modules/heimdalKerberos.inc:158 +msgid "The Kerberos realm for this account." +msgstr "このアカウントのKerberosレルム。" + +#: ../lib/modules/heimdalKerberos.inc:99 +msgid "The Kerberos realm of this user." +msgstr "このアカウントのKerberosレルム。" + +#: ../lib/modules/fixed_ip.inc:103 +msgid "The MAC address of the PC. Example: 11:22:33:44:55:aa" +msgstr "PCのMACアドレス。例: 11:22:33:44:55:aa" + +#: ../lib/modules/dhcp_settings.inc:328 ../lib/modules/dhcp_settings.inc:329 +msgid "The Netbios server is invalid." +msgstr "NetBIOSサーバーが無効です。" + +#: ../lib/modules/fixed_ip.inc:456 +msgid "The PC name may not be longer than 20 characters." +msgstr "PC名は20文字より長くてはなりません。" + +#: ../lib/modules/fixed_ip.inc:465 +msgid "The PC name may only contain A-Z, a-z and 0-9." +msgstr "PC名にはA-Z, a-z, 0-9だけが使用できます。" + +#: ../lib/modules/fixed_ip.inc:459 +msgid "The PC name needs to be at least 2 characters long." +msgstr "PC名は少なくとも2文字以上でなければなりません。" + +#: ../help/help.inc:205 +msgid "" +"The PDF structure defines what information is exported as PDF file and how " +"the pages are structured. You can manage the PDF structures in the PDF " +"editor (under \"Tools\")." +msgstr "" +"PDF構成は、どの情報がPDFファイルとしてエクスポートされ、どのようにページが構" +"成されるかを定義します。PDF構成はPDFエディタ(\"Tools\"の下)で管理できます。" + +#: ../templates/3rdParty/pla/htdocs/create.php:44 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:38 +#: ../lib/modules/selfRegistration.inc:571 +msgid "The RDN field is empty." +msgstr "RDNフィールドが空です。" + +#: ../lib/modules/freeRadius.inc:93 +msgid "The Radius realm of this account." +msgstr "このアカウントのRadiusレルム。" + +#: ../lib/modules/sambaDomain.inc:82 +msgid "The SID of your Samba server. Get it with \"net getlocalsid\"." +msgstr "SambaサーバのSID。 \"net getlocalsid\" で取得してください。" + +#: ../templates/selfService/selfServiceLogin.php:141 +#: ../templates/selfService/selfServiceMain.php:168 +msgid "The TLS encryption could not be started." +msgstr "TLS暗号化を開始できませんでした。" + +#: ../lib/modules/posixAccount.inc:99 +msgid "" +"The UID ranges for users and hosts overlap! This is a problem because LAM " +"uses the highest UID in use + 1 for new accounts. Please set the minimum UID " +"to equal values or use independent ranges." +msgstr "" +"ユーザとホストのUID範囲が重複しています! LAMは使用済みUIDの最大値 +1 を割り当" +"てるため、これは問題です。UIDの最小値を適切に変更するか、独立した範囲を指定し" +"てください。" + +#: ../lib/modules/zarafaServer.inc:77 +msgid "The Unix socket or named pipe to the server." +msgstr "サーバのUnixソケットまたは名前付きパイプ。" + +#: ../lib/modules/asteriskVoicemail.inc:215 +#: ../lib/modules/asteriskVoicemail.inc:216 +msgid "The account context is invalid." +msgstr "アカウント・コンテキストが無効です。" + +#: ../lib/modules/asteriskAccount.inc:112 +#: ../lib/modules/asteriskExtension.inc:99 +#: ../lib/modules/asteriskVoicemail.inc:92 +msgid "The account context stores information about the dial plan." +msgstr "アカウント・コンテキストはダイアル・プランに関する情報を保存します。" + +#: ../lib/modules/asteriskAccount.inc:566 +#: ../lib/modules/asteriskAccount.inc:567 +msgid "The account type is invalid." +msgstr "アカウント・タイプが無効です。" + +#: ../lib/modules/freeRadius.inc:105 +msgid "The account will be locked after this date." +msgstr "この日付を過ぎるとアカウントはロックされます。" + +#: ../help/help.inc:191 +msgid "The account will be saved under this LDAP suffix." +msgstr "新しいアカウントはこのLDAPサフィックスの下に保存されます。" + +#: ../lib/modules/bindDLZ.inc:490 ../lib/modules/bindDLZ.inc:491 +#, php-format +msgid "The alias name \"%s\" is invalid." +msgstr "エイリアス名 \"%s\" は無効です。" + +#: ../lib/modules/bindDLZ.inc:129 +msgid "The alias name for this entry." +msgstr "このエントリーに対するエイリアス名。" + +#: ../lib/modules/passwordSelfReset.inc:230 +#, php-format +msgid "The answer needs to be at least %s characters long." +msgstr "回答は少なくとも%s文字以上でなければなりません。" + +#: ../lib/modules/passwordSelfReset.inc:1211 +msgid "The answer to the security question is wrong." +msgstr "秘密の質問に対する回答が間違っています。" + +#: ../templates/tests/schemaTest.php:128 +#, php-format +msgid "" +"The attribute %s is not supported for the object class %s by your LDAP " +"server." +msgstr "" +"このLDAPサーバでは、属性 %s はオブジェクトクラス %s に対してサポートされてい" +"ません。" + +#: ../templates/3rdParty/pla/lib/import_functions.php:531 +#, php-format +msgid "The attribute to modify doesn't match the one specified by %s." +msgstr "編集対象の属性が指定された %s にマッチしません。" + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:31 +msgid "The attribute value does not exist" +msgstr "属性値が存在しません。" + +#: ../lib/modules/asteriskAccount.inc:556 +#: ../lib/modules/asteriskAccount.inc:558 +msgid "The caller ID format is invalid." +msgstr "発信者番号が無効です。" + +#: ../lib/modules/puppetClient.inc:186 ../lib/modules/puppetClient.inc:187 +msgid "The class names may only contain ASCII characters." +msgstr "クラス名にはASCI文字だけが使用できます。" + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:404 +msgid "The config file is not writable." +msgstr "設定ファイルに書き込み出来ません。" + +#: ../templates/3rdParty/pla/htdocs/create.php:29 +#: ../templates/3rdParty/pla/htdocs/copy.php:34 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:23 +#, php-format +msgid "The container you specified (%s) does not exist. Please try again." +msgstr "指定されたコンテナ(%s)が存在しません。再試行してください。" + +#: ../lib/modules/dhcp_settings.inc:326 ../lib/modules/dhcp_settings.inc:327 +msgid "The default gateway is invalid." +msgstr "デフォルト・ゲートウェイが無効です。" + +#: ../lib/modules/qmailUser.inc:260 +msgid "The default interpretation of .qmail files." +msgstr ".qmail ファイルのデフォルトの解釈。" + +#: ../templates/3rdParty/pla/htdocs/copy.php:31 +#, php-format +msgid "The destination entry (%s) already exists." +msgstr "宛先エントリ(%s)は既に存在しています。" + +#: ../lib/modules/dhcp_settings.inc:338 ../lib/modules/dhcp_settings.inc:339 +msgid "" +"The domain name includes invalid characters. Valid characters are A-Z, a-z, " +"0-9, \".\", \"_\",\"-\"." +msgstr "" +"ドメイン名に無効な文字が含まれています。有効な文字は: A-Z, a-z, 0-9, \".\", " +"\"_\", \"-\" です。" + +#: ../lib/modules/dhcp_settings.inc:146 +msgid "The domain name of the subnet." +msgstr "サブネットのドメイン名" + +#: ../lib/modules/asteriskVoicemail.inc:220 +#: ../lib/modules/asteriskVoicemail.inc:221 +msgid "The email address is invalid." +msgstr "電子メール・アドレスが無効です。" + +#: ../lib/modules/range.inc:96 +msgid "The ending IP address of the range." +msgstr "IPアドレス範囲の終点。" + +#: ../lib/modules/dhcp_settings.inc:330 +msgid "The entered Netbios node type does not exist." +msgstr "入力されたNetBIOSノードタイプが存在しません。" + +#: ../templates/3rdParty/pla/htdocs/update.php:27 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:22 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:21 +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:24 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:23 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:20 +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:24 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:20 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:27 +#, php-format +msgid "The entry (%s) does not exist." +msgstr "エントリ(%s)が存在しません。" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:27 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:28 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:34 +msgid "The entry does not exist and will be ignored" +msgstr "エントリが存在しないため無視されます" + +#: ../lib/modules/puppetClient.inc:184 ../lib/modules/puppetClient.inc:185 +msgid "The environment name may only contain ASCII characters." +msgstr "環境名にASCII文字だけが使用できます。" + +#: ../lib/modules/shadowAccount.inc:67 +msgid "The expiration date is invalid." +msgstr "有効期限が無効です。" + +#: ../lib/modules/freeRadius.inc:257 ../lib/modules/freeRadius.inc:258 +msgid "The expiration date must be in format DD.MM.YYYY HH:MM." +msgstr "有効期限の書式は DD.MM.YYYY HH:MM でなくてはなりません" + +#: ../lib/modules/bindDLZ.inc:512 ../lib/modules/bindDLZ.inc:513 +#, php-format +msgid "The expiration time \"%s\" must be a number." +msgstr "有効期間 \"%s\" は数字でなくてはなりません。" + +#: ../lib/modules/asteriskAccount.inc:560 +#: ../lib/modules/asteriskAccount.inc:561 +msgid "The extension context is invalid." +msgstr "拡張コンテキストが無効です。" + +#: ../lib/pdfstruct.inc:262 +msgid "The file must not exeed 2000x300px." +msgstr "ファイルは 2000x300px を越えてはなりません。" + +#: ../lib/pdfstruct.inc:249 +msgid "The file name must end with \".png\" or \".jpg\"." +msgstr "ファイル名の末尾は \".png\" または \".jpg\" でなくてはなりません。" + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "The file you chose is either empty or does not exist." +msgstr "選択されたファイルが空、または存在しません。" + +#: ../templates/3rdParty/pla/lib/Template.php:412 +#: ../templates/3rdParty/pla/lib/Template.php:499 +msgid "" +"The file you selected was only partially uploaded, likley due to a network " +"error." +msgstr "" +"ネットワークエラーのため、選択したファイルの一分だけがアップロードされまし" +"た。" + +#: ../templates/3rdParty/pla/lib/Template.php:402 +#: ../templates/3rdParty/pla/lib/Template.php:407 +#: ../templates/3rdParty/pla/lib/Template.php:489 +#: ../templates/3rdParty/pla/lib/Template.php:494 +msgid "" +"The file you uploaded is too large. Please check php.ini, upload_max_size " +"setting" +msgstr "" +"アップロードされたファイルが大きすぎます。php.iniのアップロード最大サイズ設定" +"を確認してください。" + +#: ../lib/modules/kolabSharedFolder.inc:159 +msgid "" +"The folder on the server where the shared folder is located (e.g. user/" +"myfolder@example.com)." +msgstr "" +"共有フォルダーが置かれているサーバー上のフォルダー(例 user/myfolder@example." +"com)。" + +#: ../lib/modules/kolabSharedFolder.inc:117 +msgid "The folder's email address." +msgstr "フォルダーのeメールアドレス。" + +#: ../templates/initsuff.php:180 +msgid "" +"The following suffixes are missing in LDAP. LAM can create them for you." +msgstr "以下のサフィックスはLDAPにありません。LAM はこれらを作成できます。" + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:120 +msgid "The format of the logon hours field is invalid!" +msgstr "ログオン時間フィールドの形式が無効です!" + +#: ../lib/modules/customScripts.inc:123 +msgid "The format of this custom script setting is invalid." +msgstr "カスタム・スクリプト設定の形式が無効です。" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +msgid "The format to show the query results" +msgstr "問い合わせ結果を表示するための書式" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "" +"The full DN of the new entry to be created when copying the source entry" +msgstr "ソースエントリをコピーして生成する新しいエントリの完全DN" + +#: ../lib/modules/asteriskVoicemail.inc:218 +#: ../lib/modules/asteriskVoicemail.inc:219 +msgid "The full name is invalid." +msgstr "フルネームが無効です。" + +#: ../templates/login.php:583 +msgid "The given user name matches multiple LDAP entries." +msgstr "与えられた名前は複数のLDAPエントリにマッチします。" + +#: ../lib/modules/ppolicy.inc:101 +msgid "" +"The grace authentication limit specifies the number of times that an expired " +"password may be used to login." +msgstr "" +"猶予認証リミットは期限切れパスワードをログインに使用できる回数を指定します。" + +#: ../lib/modules/windowsGroup.inc:147 +msgid "The group is managed by this contact person." +msgstr "グループはこの担当者によって管理されます。" + +#: ../lib/modules/freeRadius.inc:97 ../lib/modules/freeRadius.inc:101 +msgid "The group names for this account." +msgstr "このアカウントに対するグループ名。" + +#: ../lib/modules/windowsUser.inc:221 +msgid "The groups for this account. You can insert a group name or DN." +msgstr "このアカウントに対するグループ。グループ名またはDNを入力してください。" + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "The headline for a new section must contain at least one character." +msgstr "新しいセクションの見出しは、少なくとも一文字以上でなくてはなりません。" + +#: ../lib/modules/sambaSamAccount.inc:303 ../lib/modules/windowsUser.inc:245 +msgid "The home directory will be connected under this drive letter." +msgstr "ホームディレクトリはこのドライブ文字の下に接続されます。" + +#: ../lib/modules/windowsHost.inc:87 +msgid "The host is managed by this contact person." +msgstr "ホストはこの担当者によって管理されます。" + +#: ../lib/modules/bindDLZ.inc:497 ../lib/modules/bindDLZ.inc:498 +#: ../lib/modules/bindDLZ.inc:524 ../lib/modules/bindDLZ.inc:525 +#, php-format +msgid "The host name \"%s\" is invalid." +msgstr "ホスト名 \"%s\" は無効です。" + +#: ../lib/modules/bindDLZ.inc:82 ../lib/modules/bindDLZ.inc:141 +#: ../lib/modules/bindDLZ.inc:145 +msgid "The host name for this entry." +msgstr "このエントリーに対するホスト名。" + +#: ../lib/modules/asteriskAccount.inc:563 +#: ../lib/modules/asteriskAccount.inc:564 ../lib/modules/bindDLZ.inc:470 +#: ../lib/modules/bindDLZ.inc:471 +msgid "The host name is invalid." +msgstr "ホスト名が無効です。" + +#: ../lib/modules/windowsUser.inc:133 ../lib/modules/inetOrgPerson.inc:837 +msgid "The initials of the user's first names." +msgstr "ユーザーのファースト・ネーム(名)のイニシャル。" + +#: ../lib/modules/ddns.inc:94 +msgid "" +"The key enables the DHCP server to perform DNS updates. The key is generated " +"with \"genDDNSkey\"." +msgstr "" +"このキーはDNSサーバーをDNSアップデート可能にします。キーは\"getDDNSkey\"に" +"よって生成されます。" + +#: ../lib/modules/dhcp_settings.inc:324 ../lib/modules/dhcp_settings.inc:325 +msgid "The lease time is invalid." +msgstr "リース期間が無効です。" + +#: ../lib/modules/dhcp_settings.inc:154 +msgid "" +"The lease time specifies after how many seconds the client should request a " +"new IP address." +msgstr "リース期間はクライアントが新しいIPアドレス要求を出すまでの秒数を指定します。" + +#: ../lib/modules/sudoRole.inc:83 ../lib/modules/sudoRole.inc:109 +msgid "The list of commands which may be run." +msgstr "実行可能なコマンドのリスト。" + +#: ../lib/modules/puppetClient.inc:93 ../lib/modules/puppetClient.inc:97 +msgid "The list of configured Puppet classes for this node (e.g. ntp)." +msgstr "このノードに対する構成済みのPuppetクラスのリスト(例 ntp)。" + +#: ../lib/modules/sudoRole.inc:79 ../lib/modules/sudoRole.inc:104 +msgid "The list of hosts from which the user may run the commands." +msgstr "ユーザーがコマンドを実行可能なホストのリスト." + +#: ../lib/modules/customFields.inc:3013 +msgid "The list of labels contains duplicates." +msgstr "重複を含むラベルのリスト。" + +#: ../lib/modules/sudoRole.inc:75 ../lib/modules/sudoRole.inc:99 +msgid "The list of users who own this sudo role and may run the commands." +msgstr "このsudoロールを所有していてコマンド実行できるユーザーのリスト。" + +#: ../lib/modules/customFields.inc:3010 +msgid "The list of values contains duplicates." +msgstr "重複を含む値のリスト。" + +#: ../lib/modules/qmailGroup.inc:132 ../lib/modules/qmailGroup.inc:136 +msgid "The list's alternate email address." +msgstr "リストの代替Eメールアドレス。" + +#: ../lib/modules/kolabGroup.inc:88 ../lib/modules/kolabGroup.inc:92 +#: ../lib/modules/qmailGroup.inc:124 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/windowsGroup.inc:127 +msgid "The list's email address." +msgstr "リストのEメールアドレス。" + +#: ../templates/config/mainmanage.php:147 +msgid "" +"The log file is empty or contains invalid characters! Valid characters are: " +"a-z, A-Z, 0-9, /, \\, ., :, _ and -." +msgstr "" +"ログファイル名が空であるか、または無効な文字文字が含まれています。有効な文字" +"は: a-z, A-Z, 0-9, /, \\\\, ., :, _ と -です。" + +#: ../lib/modules/imapAccess.inc:87 +msgid "" +"The login name of your IMAP user who has rights to create/delete mailboxes." +msgstr "メールボックスを作成/削除する権限を持ったIMAPユーザーのログイン名。" + +#: ../lib/modules/bindDLZ.inc:133 ../lib/modules/bindDLZ.inc:137 +msgid "The mail server for this entry." +msgstr "このエントリーに対するメールサーバ。" + +#: ../lib/modules/qmailUser.inc:244 +msgid "The mail server that contains the message store." +msgstr "メッセージ・ストアを保存するメールサーバ。" + +#: ../lib/modules/passwordSelfReset.inc:234 +msgid "" +"The mail text for confirmation mails must include the wildcard @@resetLink@@." +msgstr "" +"確認メールの本文には、ワイルドカード @@resetLink@@ が含まれている必要がありま" +"す。" + +#: ../help/help.inc:251 +msgid "The mail text of all password mails." +msgstr "全てのパスワードメールのメール本文。" + +#: ../lib/modules/selfRegistration.inc:70 +msgid "The mail text of the confirmation mail." +msgstr "確認メールの本文。" + +#: ../lib/modules/passwordSelfReset.inc:125 +#: ../lib/modules/passwordSelfReset.inc:135 +msgid "The mail text of the mails." +msgstr "メールの本文。" + +#: ../lib/modules/asteriskVoicemail.inc:210 +#: ../lib/modules/asteriskVoicemail.inc:212 +msgid "The mailbox format is invalid." +msgstr "メールボックスの書式が無効です。" + +#: ../lib/modules/dhcp_settings.inc:332 ../lib/modules/dhcp_settings.inc:333 +msgid "The maximum lease time is invalid." +msgstr "最長リース期間が無効です。" + +#: ../lib/modules/dhcp_settings.inc:158 +msgid "" +"The maximum lease time specifies after how many seconds the client must " +"request a new IP address." +msgstr "最長リース期間は、この時間が経過するまでにクライアントが新しいIPアドレス要求を出さなくてはならない秒数を指定します。" + +#: ../lib/modules/kolabUser.inc:175 +msgid "The maximum mailbox size in MB." +msgstr "MB単位のメールボックス・サイズ上限です。" + +#: ../lib/modules/qmailUser.inc:224 +msgid "The maximum number of mails that can be stored in the user's mailbox." +msgstr "ユーザーのメールボックスに保存可能なメールの最大数。" + +#: ../lib/modules/pykotaPrinter.inc:104 +msgid "" +"The maximum number of pages per job allowed on the printer. 0 means " +"unlimited." +msgstr "" +"このプリンターに許容されるジョブ毎の最大ページ数。0は制限無しを意味します。" + +#: ../lib/modules/bindDLZ.inc:518 ../lib/modules/bindDLZ.inc:519 +#, php-format +msgid "The minimum time \"%s\" must be a number." +msgstr "最小時間 \"%s\" は数字でなくてはなりません。" + +#: ../lib/modules.inc:927 +#, php-format +msgid "The module %s is not yet ready." +msgstr "モジュール %s は利用できません。" + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "" +"The name for that PDF-structure you submitted is not valid. A valid name " +"must consist of the following characters: 'a-z','A-Z','0-9','_','-'." +msgstr "" +"指定されたPDF構成の名前が無効です。正しい名前に使用可能な文字は 'a-z', 'A-" +"Z', '0-9' '_', '-', '.' です。" + +#: ../lib/modules/asteriskExtension.inc:111 +msgid "" +"The name of a command to execute. The available commands may be listed at " +"the Asterisk command line by executing \"core show applications\"." +msgstr "" +"実行するコマンドの名前。使用可能なコマンドは、Asteriskのコマンドラインで " +"\"core show applications\" を実効すると列挙されます。" + +#: ../lib/modules/fixed_ip.inc:99 +msgid "The name of the PC." +msgstr "PCの名前" + +#: ../lib/modules/asteriskExtension.inc:103 +msgid "The name of the extension (e.g. voicemail or sip)." +msgstr "拡張の名前(例 voicemail or sip)。" + +#: ../lib/modules/kolabUser.inc:149 ../lib/modules/kolabSharedFolder.inc:155 +msgid "The name of the server where the mailbox is located." +msgstr "メールボックスがあるサーバーの名前。" + +#: ../lib/modules/dhcp_settings.inc:150 +msgid "The name of the subnet. Example: 192.168.10.0" +msgstr "サブネットのアドレス。例: 192.168.10.0" + +#: ../lib/modules/sambaDomain.inc:78 +msgid "The name of your Windows domain or workgroup." +msgstr "Windowsのドメイン又はワークグループ名。" + +#: ../lib/modules/bindDLZ.inc:499 ../lib/modules/bindDLZ.inc:500 +#, php-format +msgid "The name server \"%s\" is invalid." +msgstr "ネーム・サーバー \"%s\" は無効です。" + +#: ../lib/modules/bindDLZ.inc:149 ../lib/modules/bindDLZ.inc:153 +msgid "The name server for this zone." +msgstr "このゾーンに対するネーム・サーバー。" + +#: ../lib/modules/freeRadius.inc:89 +msgid "The net mask for the IP address." +msgstr "IPアドレスのネットマスク。" + +#: ../lib/modules/dhcp_settings.inc:194 +msgid "" +"The net mask is derived from the subnet mask. LAM will calculate it " +"automatically." +msgstr "" +"ネットマスクはサブネットマスクによって割り出されます。LAMが自動的に算出しま" +"す。" + +#: ../lib/modules/freeRadius.inc:251 ../lib/modules/freeRadius.inc:252 +msgid "The net mask is invalid." +msgstr "ネットマスクが無効です。" + +#: ../lib/modules.inc:1177 +msgid "" +"The new password will be stored in the directory after you save this account." +msgstr "" +"新しいパスワードは個のアカウントをディレクトリにセーブした後で保存されます。" + +#: ../lib/modules/asteriskAccount.inc:240 +msgid "The number of milliseconds for the last qualify." +msgstr "最終確認からの経過時間(ms単位)。" + +#: ../lib/modules/bindDLZ.inc:509 +msgid "The number of priority, weight, port and server entries must be equal." +msgstr "" +"優先度、重み、ポートおよびサーバー・エントリーの数は同じでなければなりませ" +"ん。" + +#: ../help/help.inc:121 +msgid "" +"The number of users who may login to LAM is restricted. This can be either a " +"fixed list of DNs or LAM can search LDAP to find a DN which matches the " +"given user name." +msgstr "" +"LAMにログインできるユーザーの数は制限されています。 This can be either a " +"fixed list of DNs or LAM can search LDAP to find a DN which matches the " +"given user name." + +#: ../templates/tests/schemaTest.php:114 +#, php-format +msgid "The object class %s is not supported by your LDAP server." +msgstr "オブジェクトクラス %s はこのLDAPサーバでサポートされていません。" + +#: ../lib/modules/windowsUser.inc:153 ../lib/modules/inetOrgPerson.inc:793 +#: ../lib/modules/inetOrgPerson.inc:797 +msgid "The office name of the user (e.g. YourCompany, Human Resources)." +msgstr "ユーザの事業所名" + +#: ../templates/selfService/selfServiceMain.php:331 ../lib/modules.inc:1803 +msgid "The operation was stopped because of the above errors." +msgstr "上記のエラーによって操作が停止されました。" + +#: ../lib/modules/asteriskVoicemail.inc:224 +#: ../lib/modules/asteriskVoicemail.inc:225 +msgid "The options have bad format." +msgstr "オプションの書式が無効です。" + +#: ../lib/modules/device.inc:70 ../lib/modules/device.inc:74 +msgid "The owners of this device." +msgstr "このデバイスの所有者。" + +#: ../lib/modules/groupOfNames.inc:94 ../lib/modules/groupOfNames.inc:98 +msgid "The owners of this group." +msgstr "このグループの所有者。" + +#: ../lib/modules/asteriskVoicemail.inc:222 +#: ../lib/modules/asteriskVoicemail.inc:223 +msgid "The pager number has bad format." +msgstr "ページャ番号の書式が無効です。" + +#: ../lib/modules/heimdalKerberos.inc:121 +msgid "The parameter @@password@@ will be replaced with the new password." +msgstr "パラメータ @@password@@ は新しいパスワードに置き換えられます。" + +#: ../lib/modules/heimdalKerberos.inc:120 +msgid "The parameter @@principal@@ will be replaced with the principal name." +msgstr "パラメータ @@principal@@ はprincipal名に置き換えられます。" + +#: ../templates/config/confsave.php:71 ../templates/config/confmain.php:73 +#: ../templates/config/mainlogin.php:61 +#: ../templates/selfService/adminLogin.php:54 +msgid "The password is invalid! Please try again." +msgstr "パスワードが無効です! やり直してください。" + +#: ../lib/security.inc:335 +#, php-format +msgid "The password is too short. You have to enter at least %s characters." +msgstr "パスワードが短すぎます。少なくとも%s文字以上でなくてはなりません。" + +#: ../lib/security.inc:423 +#, php-format +msgid "" +"The password is too weak. It needs to match at least %s password complexity " +"rules." +msgstr "パスワードの強度が不足しています。少なくとも%s個のパスワード複雑性ルールに適合する必要があります。" + +#: ../lib/security.inc:413 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s different character " +"classes (upper/lower case, numbers and symbols)." +msgstr "" +"パスワードの強度が不足しています。少なくとも%s種類の文字種(大文字、小文字、数" +"字、記号)を入力してください。" + +#: ../lib/security.inc:360 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s lower case " +"characters." +msgstr "" +"パスワードの強度が不足しています。少なくとも%s文字の小文字を入力してくださ" +"い。" + +#: ../lib/security.inc:380 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s numeric characters." +msgstr "" +"パスワードの強度が不足しています。少なくとも%s文字の数字を入力してください。" + +#: ../lib/security.inc:390 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s symbolic characters." +msgstr "" +"パスワードの強度が不足しています。少なくとも%s文字の記号を入力してください。" + +#: ../lib/security.inc:370 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s upper case " +"characters." +msgstr "" +"パスワードの強度が不足しています。少なくとも%s文字の大文字を入力してくださ" +"い。" + +#: ../lib/security.inc:442 +msgid "" +"The password is too weak. You may not use parts of the user name for the " +"password." +msgstr "パスワードの強度が不足しています。パスワードにユーザー名の一部を使用してはいけません。" + +#: ../lib/security.inc:452 +msgid "" +"The password is too weak. You may not use parts of user attributes for the " +"password." +msgstr "パスワードの強度が不足しています。パスワードにユーザー属性の一部を使用してはいけません。" + +#: ../lib/security.inc:430 +msgid "" +"The password is too weak. You may not use the user name as part of the " +"password." +msgstr "パスワードの強度が不足しています。パスワードにユーザー名をパスワードの一部として使用してはいけません。" + +#: ../lib/modules/imapAccess.inc:95 +msgid "" +"The password of your IMAP admin user. The login name for the IMAP admin user " +"is stored in the LAM server profile." +msgstr "" +"IMAP管理ユーザーのパスワード。IMAP管理ユーザーのログイン名はLAMのサーバープロ" +"ファイルに保存されます。" + +#: ../templates/lists/changePassword.php:600 ../lib/modules.inc:1120 +msgid "The password was set to:" +msgstr "設定されたパスワード:" + +#: ../lib/modules/bindDLZ.inc:505 ../lib/modules/bindDLZ.inc:506 +#, php-format +msgid "The port \"%s\" is invalid." +msgstr "ポート \"%s\" は無効です。" + +#: ../lib/modules/windowsUser.inc:161 ../lib/modules/inetOrgPerson.inc:673 +#: ../lib/modules/inetOrgPerson.inc:677 +msgid "The post office box of the user's address." +msgstr "ユーザの住所の私書箱。" + +#: ../lib/modules/windowsUser.inc:157 ../lib/modules/inetOrgPerson.inc:681 +#: ../lib/modules/inetOrgPerson.inc:685 +msgid "The postal code of the user's address." +msgstr "ユーザの住所の郵便番号。" + +#: ../lib/modules/bindDLZ.inc:495 ../lib/modules/bindDLZ.inc:496 +#, php-format +msgid "The preference \"%s\" must be a number." +msgstr "優先度 \"%s\" は数字でなくてはなりません。" + +#: ../lib/modules/pykotaPrinter.inc:116 +msgid "The price for each page of a print job." +msgstr "印刷ジョブの各ページ毎の価格。" + +#: ../lib/modules/pykotaPrinter.inc:112 +msgid "The price for each print job." +msgstr "各印刷ジョブ毎の価格。" + +#: ../lib/modules/posixAccount.inc:466 +msgid "" +"The primary group for this account. You can insert a GID number or a group " +"name." +msgstr "" +"このアカウントに対するプライマリグループ。GID番号またはグループ名を入力してく" +"ださい。" + +#: ../lib/modules/posixAccount.inc:553 +msgid "The primary group the host should be member of." +msgstr "ホストがメンバでなければならないプライマリグループ。" + +#: ../lib/modules/posixAccount.inc:515 +msgid "The primary group the user should be member of." +msgstr "ユーザがメンバでなければならないプライマリグループ。" + +#: ../lib/modules/bindDLZ.inc:501 ../lib/modules/bindDLZ.inc:502 +#, php-format +msgid "The priority \"%s\" is invalid." +msgstr "優先度 \"%s\" は無効です。" + +#: ../lib/modules/asteriskExtension.inc:107 +msgid "" +"The priority is a sequence number used to order the execution of commands. " +"Commands are executed beginning with the lowest sequence number." +msgstr "" +"優先度はコマンドの実行順序を決定する通し番号です。コマンドは通し番号の少ない" +"純に実行されます。" + +#: ../lib/modules/range.inc:424 +msgid "The range conflicts with another range." +msgstr "範囲が他の範囲と衝突しています。" + +#: ../lib/modules/range.inc:420 +msgid "The range end needs to be greater than the range start." +msgstr "範囲の末尾は先頭よりも大きくなくてはなりません。" + +#: ../lib/modules/bindDLZ.inc:514 ../lib/modules/bindDLZ.inc:515 +#, php-format +msgid "The refresh time \"%s\" must be a number." +msgstr "リフレッシュ期間 \"%s\" は数字でなくてはなりません。" + +#: ../lib/modules/bindDLZ.inc:516 ../lib/modules/bindDLZ.inc:517 +#, php-format +msgid "The retry time \"%s\" must be a number." +msgstr "リトライ時間 \"%s\" は数字でなくてはなりません。" + +#: ../lib/modules/inetOrgPerson.inc:761 +msgid "The room number of the employee's office." +msgstr "従業員の事務所の部屋番号。" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +msgid "The scope in which to search" +msgstr "検索するスコープ" + +#: ../lib/modules/customScripts.inc:64 ../lib/modules/customScripts.inc:77 +msgid "" +"The scripts will be run on your web server in the user context of your web " +"server (e.g. apache/www-data)." +msgstr "" +"スクリプトはwebサーバー上でwebサーバーのユーザーコンテキスト(例 apache/www-" +"data)で実行されます。" + +#: ../lib/modules/nisMailAliasUser.inc:105 +#: ../lib/modules/asteriskAccount.inc:244 ../lib/modules/qmailUser.inc:196 +#: ../lib/modules/zarafaGroup.inc:109 ../lib/modules/sambaSamAccount.inc:400 +#: ../lib/modules/posixAccount.inc:442 ../lib/modules/zarafaUser.inc:133 +#: ../lib/modules/windowsUser.inc:237 ../lib/modules/inetOrgPerson.inc:809 +#: ../lib/modules/freeRadius.inc:113 ../lib/modules/zarafaServer.inc:89 +#: ../lib/modules/qmailGroup.inc:120 ../lib/modules/organizationalRole.inc:82 +#: ../lib/modules/passwordSelfReset.inc:161 +#: ../lib/modules/windowsGroup.inc:111 ../lib/modules/groupOfNames.inc:82 +msgid "" +"The selected options will not be managed inside LAM. You can use this to " +"reduce the number of displayed input fields." +msgstr "" +"選択されたオプションはLAMの中で管理されます。これは、表示される入力フィールド" +"の数を削減するのに使用できます。" + +#: ../lib/modules/bindDLZ.inc:520 ../lib/modules/bindDLZ.inc:521 +#, php-format +msgid "The serial number \"%s\" must be a number." +msgstr "シリアル番号 \"%s\" は数字でなくてはなりません。" + +#: ../lib/modules/bindDLZ.inc:221 +msgid "The serial number should be updated after each zone change." +msgstr "それぞれのゾーンを変更したら、シリアル番号を更新するべきです。" + +#: ../lib/modules/bindDLZ.inc:493 ../lib/modules/bindDLZ.inc:494 +#: ../lib/modules/bindDLZ.inc:507 ../lib/modules/bindDLZ.inc:508 +#, php-format +msgid "The server name \"%s\" is invalid." +msgstr "サーバー名 \"%s\" は無効です。" + +#: ../templates/3rdParty/pla/htdocs/copy.php:38 +msgid "The source and destination DN are the same." +msgstr "ソースとデスティネーションのDNが同じです。" + +#: ../lib/modules/range.inc:93 +msgid "The starting IP address of the range." +msgstr "範囲の先頭IPアドレス。" + +#: ../lib/modules/windowsUser.inc:169 ../lib/modules/inetOrgPerson.inc:781 +#: ../lib/modules/inetOrgPerson.inc:785 +msgid "The state where the user resides or works." +msgstr "ユーザが居住または勤務している都道府県" + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "The static text must contain at least one character." +msgstr "静的テキストは少なくとも一文字以上でなければなりません。" + +#: ../lib/modules/windowsUser.inc:173 ../lib/modules/inetOrgPerson.inc:665 +#: ../lib/modules/inetOrgPerson.inc:669 +msgid "The street name of the user's address." +msgstr "ユーザの住所の町名。" + +#: ../help/help.inc:249 +msgid "The subject of all password mails." +msgstr "全てのパスワード・メールの件名。" + +#: ../lib/modules/selfRegistration.inc:95 +#: ../lib/modules/passwordSelfReset.inc:121 +msgid "The subject of the mails." +msgstr "メールの件名。" + +#: ../lib/modules/dhcp_settings.inc:319 +msgid "The subnet is already in use." +msgstr "サブネットはすでに使用されています" + +#: ../lib/modules/dhcp_settings.inc:320 ../lib/modules/dhcp_settings.inc:321 +msgid "The subnet is invalid." +msgstr "サブネットが無効です。" + +#: ../lib/modules/dhcp_settings.inc:334 ../lib/modules/dhcp_settings.inc:335 +msgid "The subnet mask is invalid." +msgstr "サブネット・マスクが無効です。" + +#: ../lib/modules/dhcp_settings.inc:190 +msgid "The subnet mask of the network." +msgstr "ネットワークのサブネット・マスク" + +#: ../lib/modules/sudoRole.inc:134 +msgid "The sudo command is not valid after this date." +msgstr "この日付より後ではsudoコマンドは無効です。" + +#: ../lib/modules/sudoRole.inc:129 +msgid "The sudo command is not valid before this date." +msgstr "この日付より前ではsudoコマンドは無効です。" + +#: ../lib/modules/sudoRole.inc:91 ../lib/modules/sudoRole.inc:119 +msgid "The sudo commands are executed with these group memberships." +msgstr "sudoコマンドはこれらのグループ権限で実行されます。" + +#: ../lib/modules/sudoRole.inc:87 ../lib/modules/sudoRole.inc:114 +msgid "The sudo commands may be run as these users (e.g. root)." +msgstr "sudoコマンドはこれらのユーザー(例. root)として実行されます。" + +#: ../lib/modules/bindDLZ.inc:213 +msgid "" +"The time (in seconds) a secondary server should wait before retrying a zone " +"refresh." +msgstr "セカンダリー・サーバーがゾーン更新の再試行を行う時間間隔(秒)。" + +#: ../lib/modules/bindDLZ.inc:209 +msgid "" +"The time (in seconds) that a secondary server should wait before checking " +"for zone updates." +msgstr "セカンダリー・サーバーがゾーン更新をチェックする時間間隔(秒)。" + +#: ../lib/modules/bindDLZ.inc:205 +msgid "" +"The time (in seconds) that zone data is kept on a secondary server without " +"receiving a zone refresh." +msgstr "" +"セカンダリー・サーバーがゾーン更新の受信を行わずにゾーンデータを保持する期間" +"(秒)。" + +#: ../lib/modules/bindDLZ.inc:472 ../lib/modules/bindDLZ.inc:473 +#: ../lib/modules/bindDLZ.inc:474 ../lib/modules/bindDLZ.inc:475 +#: ../lib/modules/bindDLZ.inc:476 ../lib/modules/bindDLZ.inc:477 +#: ../lib/modules/bindDLZ.inc:478 ../lib/modules/bindDLZ.inc:479 +#: ../lib/modules/bindDLZ.inc:480 ../lib/modules/bindDLZ.inc:481 +#: ../lib/modules/bindDLZ.inc:482 ../lib/modules/bindDLZ.inc:483 +#: ../lib/modules/bindDLZ.inc:484 ../lib/modules/bindDLZ.inc:485 +#: ../lib/modules/bindDLZ.inc:486 ../lib/modules/bindDLZ.inc:487 +#, php-format +msgid "The timeout \"%s\" must be a number." +msgstr "タイムアウト \"%s\" は数字でなくてはなりません。" + +#: ../lib/modules/bindDLZ.inc:95 ../lib/modules/bindDLZ.inc:99 +#: ../lib/modules/bindDLZ.inc:104 ../lib/modules/bindDLZ.inc:109 +#: ../lib/modules/bindDLZ.inc:114 ../lib/modules/bindDLZ.inc:119 +#: ../lib/modules/bindDLZ.inc:124 +msgid "" +"The timeout specifies how long (in seconds) a record can be cached by " +"caching DNS servers." +msgstr "" +"このタイムアウトは、キャッシングDNSサーバーがどのくらいの期間(秒数)レコードを" +"キャッシュし続けられるかを指定します。" + +#: ../lib/modules/customFields.inc:3562 ../lib/modules/customFields.inc:3649 +#, php-format +msgid "The uploaded file does not have the correct file extension (%s)." +msgstr "アップロードされたファイルの拡張子が正しくありません (%s)。" + +#: ../lib/modules/customFields.inc:3558 ../lib/modules/customFields.inc:3645 +#, php-format +msgid "The uploaded file is too large (> %s bytes)." +msgstr "アップロードされたファイルが大きすぎます (> %s バイト)。" + +#: ../templates/3rdParty/pla/lib/import_functions.php:396 +msgid "The url attribute value should begin with file://." +msgstr "URL属性値の先頭は file:// でなくてはなりません。" + +#: ../lib/modules/zarafaUser.inc:113 +msgid "The user account is non-active and login is disabled." +msgstr "ユーザーアカウントは無効で、ログインが禁止されています。" + +#: ../lib/modules/windowsUser.inc:202 +msgid "The user must log on using a smart card." +msgstr "ユーザーはスマート・カードを使用してログオンする必要があります。" + +#: ../lib/modules/zarafaUser.inc:93 +msgid "The user will get warned when his mailbox reaches this limit." +msgstr "ユーザーはメールボックスがリミットに達した時に警告を受けます。" + +#: ../lib/modules/qmailUser.inc:204 +msgid "The user's alternate email address." +msgstr "ユーザーの代替Eメールアドレス。" + +#: ../lib/modules/asteriskAccount.inc:136 +msgid "The user's call groups." +msgstr "ユーザーの通話グループ" + +#: ../lib/modules/qmailUser.inc:200 ../lib/modules/windowsUser.inc:141 +#: ../lib/modules/pykotaUser.inc:117 ../lib/modules/inetOrgPerson.inc:721 +#: ../lib/modules/inetOrgPerson.inc:725 +msgid "The user's email address." +msgstr "ユーザーのEメールアドレス。" + +#: ../lib/modules/inetOrgPerson.inc:713 ../lib/modules/inetOrgPerson.inc:717 +msgid "The user's fax number." +msgstr "ユーザーのFAX番号。" + +#: ../lib/modules/inetOrgPerson.inc:705 ../lib/modules/inetOrgPerson.inc:709 +msgid "The user's mobile number." +msgstr "ユーザーの携帯番号。" + +#: ../lib/modules/inetOrgPerson.inc:825 ../lib/modules/inetOrgPerson.inc:829 +msgid "The user's organisation name." +msgstr "ユーザーの組織名。" + +#: ../lib/modules/inetOrgPerson.inc:817 ../lib/modules/inetOrgPerson.inc:821 +msgid "The user's organisational unit." +msgstr "ユーザーのorganizational unit。" + +#: ../lib/modules/inetOrgPerson.inc:753 ../lib/modules/inetOrgPerson.inc:757 +msgid "The user's private telephone number." +msgstr "私用の電話番号" + +#: ../lib/modules/windowsUser.inc:177 ../lib/modules/inetOrgPerson.inc:697 +#: ../lib/modules/inetOrgPerson.inc:701 +msgid "The user's telephone number." +msgstr "ユーザーの電話番号" + +#: ../lib/modules/inetOrgPerson.inc:833 +msgid "The user's unique employee number." +msgstr "ユーザーのユニークな従業員番号。" + +#: ../lib/modules/windowsUser.inc:189 ../lib/modules/inetOrgPerson.inc:733 +#: ../lib/modules/inetOrgPerson.inc:737 +msgid "The user's web site (e.g. http://www.company.com)." +msgstr "ユーザーのウェブサイト (例. http://www.company.com)." + +#: ../lib/modules/sambaSamAccount.inc:122 +msgid "" +"The value for the Samba 3 field \"User can/must change password\" needs to " +"be a number." +msgstr "" +"Samba 3フィールド \"ユーザによるパスワード変更の許可/強制\" に与える値は数値" +"である必要があります。" + +#: ../lib/modules/puppetClient.inc:188 ../lib/modules/puppetClient.inc:189 +msgid "The variables may only contain ASCII characters." +msgstr "変数名にはASCII文字だけが使用できます。" + +#: ../lib/modules/asteriskVoicemail.inc:226 +#: ../lib/modules/asteriskVoicemail.inc:227 +msgid "The voicemail context name is invalid." +msgstr "ボイスメール・コンテキスト名が無効です。" + +#: ../lib/modules/bindDLZ.inc:503 ../lib/modules/bindDLZ.inc:504 +#, php-format +msgid "The weight \"%s\" is invalid." +msgstr "重み \"%s\" は無効です。" + +#: ../templates/3rdParty/pla/htdocs/create.php:42 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:36 +msgid "The were no attributes marked as an RDN attribute." +msgstr "RDN属性としてマークされた属性が存在しません。" + +#: ../lib/modules/selfRegistration.inc:71 +msgid "The wildcard for the account creation link is @@creationLink@@." +msgstr "生成リンクに対応するワイルドカードは @@creationLink@@ です。" + +#: ../lib/modules/passwordSelfReset.inc:127 ../help/help.inc:254 +msgid "The wildcard for the new password is @@newPassword@@." +msgstr "新しいパスワードに対応するワイルドカードは @@newPassword@@ です。" + +#: ../lib/modules/passwordSelfReset.inc:137 +msgid "The wildcard for the reset link is @@resetLink@@." +msgstr "リセット・リンクに対応するワイルドカードは @@resetLink@@ です。" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:60 +#, php-format +msgid "There are %s members in group %s:" +msgstr "%s のメンバーがグループ %s に存在します:" + +#: ../lib/modules/posixGroup.inc:612 ../lib/modules/sambaGroupMapping.inc:605 +msgid "There are still users who have this group as their primary group." +msgstr "このグループをプライマリグループとするユーザがまだ存在します。" + +#: ../lib/modules/sambaGroupMapping.inc:602 +msgid "There can be only one group of this type." +msgstr "このタイプのグループを一つだけ指定できます。" + +#: ../lib/modules/asteriskAccount.inc:557 +msgid "There is already another user with this caller ID." +msgstr "この発信者番号を使用しているユーザーが既に存在します。" + +#: ../lib/modules/asteriskVoicemail.inc:211 +msgid "There is already another user with this mailbox name." +msgstr "このメールボックス名を使用しているユーザーが既に存在します。" + +#: ../templates/massDoUpload.php:258 +msgid "There were errors while uploading:" +msgstr "アップロードの際にエラーが発生しました。" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:80 +#, php-format +msgid "There will be %s updates done with this mass update" +msgstr "この一括アップデートによって %s 個の更新が行われます。" + +#: ../lib/modules/posixGroup.inc:501 +msgid "" +"These are the minimum and maximum numbers to use for group IDs when creating " +"new group accounts. New group accounts will always get the highest number in " +"use plus one." +msgstr "" +"新しいグループアカウントを作成する際に使われるグループIDの最小値と最大値。新" +"しいグループアカウントには、使用中の番号の最大値+1が常に割り当てられます。" + +#: ../lib/modules/posixAccount.inc:454 +msgid "" +"These are the minimum and maximum numbers to use for machine IDs when " +"creating new accounts for hosts. The range should be different from that of " +"users. New host accounts will always get the highest number in use plus one." +msgstr "" +"新しいSambaホストアカウントを作成する際に使われるマシンIDの最小値と最大値。範" +"囲はユーザアカウントのものと異なるようにしなくてはなりません。新しいホストア" +"カウントには、使用中の番号の最大値+1が常に割り当てられます。" + +#: ../lib/modules/posixAccount.inc:450 +msgid "" +"These are the minimum and maximum numbers to use for user IDs when creating " +"new user accounts. The range should be different from that of machines. New " +"user accounts will always get the highest number in use plus one." +msgstr "" +"新しいユーザアカウントを作成する際に使われるユーザIDの最小値と最大値。範囲は" +"マシンアカウントのものとは異なるようにしなくてはなりません。新しいユーザアカ" +"ウントには、使用中の番号の最大値+1が常に割りあてられます。" + +#: ../lib/modules/inetOrgPerson.inc:845 +msgid "These are the user's certificates." +msgstr "これらはユーザの証明書です。" + +#: ../lib/modules/puppetClient.inc:113 +msgid "" +"These classes will be available as autocompletion hints when adding new " +"classes." +msgstr "" +"これらのクラスは、新しいクラスを追加する際の自動補完のヒントとして利用可能で" +"す。" + +#: ../lib/modules/nisnetgroup.inc:96 ../lib/modules/nisnetgroup.inc:100 +msgid "" +"These entries specify the members of the netgroup. You can limit the set to " +"a host name, a user name, a domain name or any combination of them." +msgstr "" +"これらのエントリはネットグループのメンバーを指定します。ホスト名、ユーザー" +"名、ドメイン名またはこれらの組み合わせによって集合を限定することができます。" + +#: ../lib/modules/puppetClient.inc:117 +msgid "" +"These environments will be available as autocompletion hints when setting " +"the environment." +msgstr "これらの環境は、環境を設定する際の自動補完のヒントとして利用可能です。" + +#: ../lib/modules/asteriskExtension.inc:123 +msgid "" +"These options change the list of potential extension owners below. You can " +"select to show Asterisk accounts or all users. It is also possible to search " +"the tree suffix if you have users which are not in the standard user suffix." +msgstr "" +"これらのオプションは、下記の潜在的な拡張の所有者のリストを変更します。" +"Asteriskアカウントまたは全てのユーザーを表示するような選択も可能です。標準的" +"なユーザー・サフィックスに無いユーザーが存在する場合は、ツリー・サフィックス" +"を検索する事も出来ます。" + +#: ../lib/modules/authorizedServiceObject.inc:94 +msgid "These services will show up as hint if you enter a new service." +msgstr "これらのサービスは、新しいサービスを入力する際にヒントを表示します。" + +#: ../lib/modules/posixAccount.inc:124 +msgid "" +"This GID number is invalid! Please provide either a number or a group name." +msgstr "" +"このGID番号は無効です。別な番号を指定するか、グループ名を記入してください。" + +#: ../help/help.inc:235 +msgid "" +"This HTML code will be placed on top of all self service pages. E.g. you can " +"use this to place your custom logo. Any HTML code is permitted." +msgstr "" +"このHTMLコードはセルフサービス・メインページのトップに配置されます。例えば、" +"カスタムロゴの配置等に使用できます。ここにはあらゆるHTMLコードを書く事ができ" +"ます。" + +#: ../lib/modules/fixed_ip.inc:462 +msgid "This PC name already exists." +msgstr "PC名は既に存在しています。" + +#: ../lib/modules/kolabGroup.inc:197 ../lib/modules/kolabUser.inc:292 +#: ../lib/modules/kolabSharedFolder.inc:274 +msgid "This account is marked for deletion." +msgstr "このアカウントを削除対象としてマークしました。" + +#: ../lib/modules/sambaSamAccount.inc:327 +msgid "" +"This allows you to define this account as a special user like administrator " +"or guest." +msgstr "" +"このアカウントをadministratorやguest等の特殊ユーザとして定義する事を可能にし" +"ます。" + +#: ../templates/3rdParty/pla/lib/PageRender.php:376 +msgid "This attribute is not defined in the LDAP schema" +msgstr "属性がLDAPスキーマに定義されていません。" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1988 +msgid "This attribute is required" +msgstr "この属性は必須です。" + +#: ../templates/3rdParty/pla/lib/PageRender.php:458 +msgid "This attribute is required for the RDN." +msgstr "この属性はこのRDNに必要です。" + +#: ../lib/modules/inetOrgPerson.inc:789 +msgid "This can be used to specify if the user has a car license." +msgstr "ユーザが運転免許を保有している場合に記入します。" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:64 +msgid "This change requires to add new attributes." +msgstr "この変更は新しい属性の追加を必要とします。" + +#: ../help/help.inc:137 +msgid "This changes the password of the selected profile." +msgstr "選択されたプロファイルのパスワードを変更します。" + +#: ../help/help.inc:139 +msgid "This changes the profile which is selected by default at login." +msgstr "ログイン時にデフォルトで選択されるプロファイルを変更します。" + +#: ../templates/massBuildAccounts.php:177 +msgid "" +"This column is defined to include unique entries but duplicates were found:" +msgstr "" +"ユニークなエントリを含むものとして定義されているカラムで重複がみつかりました:" + +#: ../lib/modules/heimdalKerberos.inc:119 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -K /etc/heimdal/apache.keytab -p " +"admin/admin passwd -p @@password@@ @@principal@@\"." +msgstr "" +"このコマンドは、Kerberosパスワードを変更する際に呼ばれます。通常は、\"/usr/" +"sbin/kadmin -K /etc/heimdal/apache.keytab -p admin/admin passwd -p " +"@@password@@ @@principal@@\" の様になります。" + +#: ../lib/modules/mitKerberos.inc:149 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -k -t /home/www-data/apache.keytab " +"-p realm/changepwd\"." +msgstr "" +"このコマンドは、Kerberosパスワードを変更する際に呼ばれます。通常は、\"/usr/" +"sbin/kadmin -k -t /home/www-data/apache.keytab -p realm/changepwd\" の様にな" +"ります。" + +#: ../lib/modules/customScripts.inc:124 +msgid "This custom script setting includes an invalid account type." +msgstr "カスタムスクリプト設定に無効なアカウントタイプが含まれています。" + +#: ../lib/modules/customScripts.inc:126 ../lib/modules/customScripts.inc:128 +msgid "This custom script setting includes an invalid action type." +msgstr "カスタムスクリプト設定に無効なアクションタイプが含まれています。" + +#: ../help/help.inc:100 +msgid "" +"This defines the language of the login window and sets this language as the " +"default language. Users can change the language at login." +msgstr "" +"ログインウィンドウの言語を定義し、この言語を既定値の言語として設定します。" +"ユーザはログイン時に言語を変更できます。" + +#: ../help/help.inc:119 +msgid "" +"This defines the rights for the home directories which are created by " +"lamdaemon." +msgstr "lamdaemonによって作成されたホームディレクトリの権限を定義します。" + +#: ../lib/modules/asteriskExtension.inc:95 +msgid "" +"This defines what application Asterisk has to start for this user (e.g. SIP/" +"user1)." +msgstr "" +"Asteriskがこのユーザーに対してスタートするアプリケーションを定義します(例 " +"SIP/user1)。" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:85 +#, php-format +msgid "This deletion request also includes %s child entries." +msgstr "この削除リクエストには %s 個の子エントリも含まれます。" + +#: ../lib/modules/device.inc:78 +msgid "This describes the location of the device." +msgstr "デバイスの位置を記入します。" + +#: ../lib/modules/ipHost.inc:74 +msgid "This describes the location of the host." +msgstr "ホストの場所を記入します。" + +#: ../lib/modules/windowsUser.inc:137 ../lib/modules/inetOrgPerson.inc:773 +#: ../lib/modules/inetOrgPerson.inc:777 +msgid "This describes the location of the user." +msgstr "ユーザの住所を記入します。" + +#: ../lib/lamPDF.inc:126 +msgid "This document was automatically created by LDAP Account Manager" +msgstr "この文書はLDAP Account Managerによって自動的に生成されました。" + +#: ../help/help.inc:258 +msgid "" +"This email address will be set as reply-to address of all password mails." +msgstr "" +"このメールアドレスは全てのパスワード・メールのReply-Toアドレスにセットされま" +"す。" + +#: ../help/help.inc:247 +msgid "" +"This email address will be set as sender address of all password mails. If " +"empty the system default (php.ini) will be used." +msgstr "" +"このメールアドレスはパスワード・メールの発信者アドレスにセットされます。もし" +"も空の場合は、システムのデフォルト(php.ini)が使用されます。" + +#: ../lib/modules/selfRegistration.inc:91 +#: ../lib/modules/passwordSelfReset.inc:117 +msgid "" +"This email address will be set as sender address of the mails. If empty the " +"system default (php.ini) will be used." +msgstr "" +"このメールアドレスはパスワード・メールの発信者アドレスにセットされます。もし" +"も空の場合は、システムのデフォルト(php.ini)が使用されます。" + +#: ../lib/modules/passwordSelfReset.inc:97 +msgid "This enables the password self reset function." +msgstr "これはパスワード自己リセット機能を有効にします。" + +#: ../lib/modules/selfRegistration.inc:54 +msgid "This enables the self registration function." +msgstr "これは自己登録機能を有効にします。" + +#: ../templates/3rdParty/pla/htdocs/compare.php:79 +msgid "This entry has no attributes" +msgstr "このエントリは属性を持っていません。" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:57 +#, php-format +msgid "This entry is the root of a sub-tree containing %s entries." +msgstr "このエントリは %s エントリを含むサブツリーのルートです。" + +#: ../templates/lib/141_jquery-validationEngine-lang.php:47 +#: ../lib/modules/selfRegistration.inc:512 +msgid "This field is required." +msgstr "このフィールドは必須です。" + +#: ../lib/modules/customFields.inc:188 +msgid "This field name already exists. Please choose a different one." +msgstr "このフィールド名は既に使用されています。他の名前を選択してください。" + +#: ../lib/modules/posixAccount.inc:126 +msgid "This gecos value is invalid!" +msgstr "gecosの値が無効です!" + +#: ../lib/modules/ipHost.inc:70 +msgid "This is a comma separated list of IP addresses." +msgstr "カンマで区切られたIPアドレスのリスト。" + +#: ../lib/modules/ieee802device.inc:73 +msgid "This is a comma separated list of MAC addresses." +msgstr "カンマで区切られたMACアドレスのリスト。" + +#: ../lib/modules/kolabUser.inc:137 ../lib/modules/kolabSharedFolder.inc:143 +msgid "This is a comma separated list of delegates." +msgstr "カンマで区切られた委任者のリスト。" + +#: ../lib/modules/kolabUser.inc:145 ../lib/modules/kolabSharedFolder.inc:151 +msgid "This is a comma separated list of eMail aliases." +msgstr "カンマで区切られた電子メール別名のリスト。" + +#: ../lib/modules/kolabUser.inc:129 +msgid "This is a comma separated list of invitation policies." +msgstr "カンマで区切られた招待ポリシーのリスト。" + +#: ../lib/modules/nisMailAlias.inc:90 +msgid "This is a comma separated list of recipients." +msgstr "カンマで区切られた受信者のリスト。" + +#: ../lib/modules/inetLocalMailRecipient.inc:77 +msgid "This is a comma separated list of the users public email addresses." +msgstr "ユーザの公開メールアドレスのカンマで区切られたリスト。" + +#: ../help/help.inc:153 +msgid "" +"This is a list of IP addresses from hosts who may access LAM. You can use \"*" +"\" as wildcard (e.g. 192.168.0.*)." +msgstr "" +"LAMへのアクセスを許可するホストのIPアドレスのリスト。ワイルドカードとして\"*" +"\"が使えます(例 192.168.0.*)。" + +#: ../lib/modules/selfRegistration.inc:79 +msgid "" +"This is a list of additional attributes that the user can enter. Please note " +"that user name, password and email address are mandatory anyway and need not " +"be specified." +msgstr "" +"これは、ユーザーが入力可能な追加属性のリストです。ユーザー名、パスワード、" +"メールアドレスは常に必須のため、指定する必要はありません。" + +#: ../lib/modules/organizationalRole.inc:94 +#: ../lib/modules/windowsGroup.inc:131 ../lib/modules/groupOfNames.inc:102 +msgid "This is a list of members of this group." +msgstr "このグループのメンバーのリスト。" + +#: ../lib/modules/organizationalRole.inc:98 +#: ../lib/modules/windowsGroup.inc:135 ../lib/modules/groupOfNames.inc:106 +msgid "" +"This is a list of members of this group. Multiple members are separated by " +"semicolons." +msgstr "" +"このグループのメンバーのリスト。ユーザ名はセミコロンによって区切られます。" + +#: ../lib/modules/eduPerson.inc:102 +msgid "This is a list of nick names for this user." +msgstr "このユーザーのニックネームのリスト。" + +#: ../lib/modules/selfRegistration.inc:75 +msgid "" +"This is a list of object classes that are used to build the new user " +"accounts. Please enter one object class in each line." +msgstr "" +"これは、新しいユーザーアカウントを構成する際に使用されるオブジェクト・クラス" +"のリストです。各行毎に1個のオブジェクト・クラスを入力してください。" + +#: ../help/help.inc:115 +msgid "" +"This is a list of the servers where the lamdaemon scripts are stored. LDAP " +"Account Manager will make a SSH connection to the servers with the user name " +"and password provided at login. Multiple servers are separated by " +"semicolons. You can append a descriptive name after a colon." +msgstr "" +"これはldapdaemonスクリプトが格納されるサーバのリストです。LDAP Account " +"Managerは、ログイン時に提供されるユーザ名とパスワードでサーバにSSH接続を行な" +"います。サーバ名はセミコロンによって区切られます。セミコロンに続けて記述的名" +"前を付加することもできます。" + +#: ../help/help.inc:93 +msgid "" +"This is a list of valid DN entries of all users that are allowed to login to " +"LDAP Account Manager. Please enter one DN per line." +msgstr "" +"LDAP Account Manager にログイン可能なすべてのユーザの有効なDNエントリの一覧で" +"す。各行毎に1個のDNを入力してください。" + +#: ../templates/3rdParty/pla/lib/PageRender.php:881 +msgid "This is a structural ObjectClass and cannot be removed." +msgstr "これは structural オブジェクトクラスであり、削除することは出来ません。" + +#: ../lib/modules/nisObject.inc:74 ../lib/modules/automount.inc:73 +#: ../lib/modules/oracleService.inc:70 +msgid "This is an optional description for this entry." +msgstr "このエントリに対する付加的な説明。" + +#: ../help/help.inc:223 +msgid "" +"This is needed to find the LDAP DNs of your user accounts. E.g. if you use " +"\"uid\" and your user inputs \"miller\" then LAM will search for an account " +"with uid=miller." +msgstr "" +"ユーザーアカウントのLDAP DNを検索するために必要。例えば、検索に\"uid\"を使用" +"していて入力が\"miller\"だった場合、LAMは uid=miller という条件でアカウントを" +"検索します。" + +#: ../lib/modules/zarafaDynamicGroup.inc:199 ../lib/modules/ipHost.inc:117 +#: ../lib/modules/posixGroup.inc:613 ../lib/modules/device.inc:142 +#: ../lib/modules/eduPerson.inc:246 ../lib/modules/eduPerson.inc:248 +#: ../lib/modules/zarafaAddressList.inc:170 +#: ../lib/modules/posixAccount.inc:131 ../lib/modules/inetOrgPerson.inc:98 +#: ../lib/modules/aliasEntry.inc:86 ../lib/modules/qmailGroup.inc:433 +#: ../lib/modules/qmailGroup.inc:434 ../lib/modules/qmailGroup.inc:435 +msgid "This is not a valid DN!" +msgstr "無効なDNです!" + +#: ../lib/modules/sambaSamAccount.inc:109 +msgid "This is not a valid RID number!" +msgstr "無効なRID番号です!" + +#: ../lib/modules/sambaGroupMapping.inc:604 +msgid "This is not a valid Samba 3 group type!" +msgstr "無効なSamba 3グループタイプです!" + +#: ../lib/modules/eduPerson.inc:250 +msgid "This is not a valid list of DNs!" +msgstr "無効なDNリストです!" + +#: ../lib/modules/qmailGroup.inc:436 ../lib/modules/qmailGroup.inc:437 +msgid "This is not a valid option." +msgstr "無効なオプションです。" + +#: ../lib/modules/inetLocalMailRecipient.inc:73 +msgid "This is one of the users public email addresses." +msgstr "ユーザの公開メールアドレスの一つ。" + +#: ../help/help.inc:84 +msgid "" +"This is only needed for TLS/SSL connections. By default, LAM will use the " +"certificate authorities installed on your system. If you have a private CA " +"in your company you can upload your CA certificates here and override the " +"system certificates." +msgstr "" +"これは、TLS/SSL通信でのみ必要とされます。デフォルトでは、LAMはシステムにイン" +"ストールされている証明書を使用します。もしあなたが企業内でプライベートCAを使" +"用している場合は、ここでCA証明書をアップロードして、システムが持っている証明" +"書をオーバーライドできます。" + +#: ../lib/modules/asteriskAccount.inc:104 +msgid "" +"This is the ID of the user in the Asterisk database. It may contain digits " +"and letters (e.g. user1 or 200134)." +msgstr "" +"AsteriskデータベースにおけるユーザーのIDです。数字と文字を含むこと臥できます" +"(例 user1 200134)。" + +#: ../lib/modules/freeRadius.inc:85 +msgid "This is the IP address for the user (e.g. 123.123.123.123)." +msgstr "ユーザーのIPアドレスです(例 123.123.123.123)。" + +#: ../lib/modules/ipHost.inc:66 +msgid "" +"This is the IP address of the network card of the device (e.g. " +"123.123.123.123)." +msgstr "ネットワークカードデバイスのIPアドレスです(例 123.123.123.123)。" + +#: ../lib/modules/ipHost.inc:78 +msgid "This is the LDAP DN of the host's manager." +msgstr "ホスト・マネージャーのLDAP DN。" + +#: ../lib/modules/inetOrgPerson.inc:657 ../lib/modules/inetOrgPerson.inc:661 +msgid "" +"This is the LDAP DN of the user's manager. Use this property to represent " +"hierarchies in your company." +msgstr "" +"このユーザの管理者のLDAP DN。この属性は、あなたの組織の階層を表現するために使" +"用してください。" + +#: ../lib/modules/customFields.inc:117 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an activated " +"state. The value is case-insensitive." +msgstr "" +"これは、チェックボックスが有効状態の場合にセットされるLDAP属性値です。大文字" +"小文字は区別されません。" + +#: ../lib/modules/customFields.inc:121 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an deactivated " +"state. The value is case-insensitive." +msgstr "" +"これは、チェックボックスが無効状態の場合にセットされるLDAP属性値です。大文字" +"小文字は区別されません。" + +#: ../lib/modules/ieee802device.inc:69 +msgid "" +"This is the MAC address of the network card of the device (e.g. 00:01:02:DE:" +"EF:18)." +msgstr "ネットワークカードデバイスのMACアドレスです(例 0:01:02:DE:EF:18)。" + +#: ../lib/modules/sambaSamAccount.inc:324 +msgid "This is the SID of the user's primary Windows group." +msgstr "ユーザのプライマリWindowsグループのSIDです。" + +#: ../help/help.inc:102 +msgid "" +"This is the absolute path to an external script for setting quotas and " +"creating home directories." +msgstr "" +"ホームディレクトリを作成し、quotaを設定するための外部スクリプトの絶対パスで" +"す。" + +#: ../lib/modules/mitKerberos.inc:157 ../lib/modules/heimdalKerberos.inc:125 +msgid "This is the account's Kerberos password." +msgstr "アカウントのKerberosパスワードです。" + +#: ../lib/modules/sambaSamAccount.inc:262 +msgid "This is the account's Windows password." +msgstr "アカウントのWindowsパスワードです。" + +#: ../lib/modules/sambaSamAccount.inc:259 ../lib/modules/windowsUser.inc:124 +msgid "This is the account's full name on Windows systems." +msgstr "アカウントのWindowsシステム上のフルネームです。" + +#: ../lib/modules/ppolicyUser.inc:56 +msgid "This is the active password policy for this account." +msgstr "このアカウントに対するアクティブなパスワード・ポリシー。" + +#: ../lib/modules/passwordSelfReset.inc:85 +msgid "" +"This is the answer to the security question. It allows users to reset their " +"password." +msgstr "" +"これは秘密の質問に対する回答です、これによってユーザー自身によるパスワードの" +"リセットを許可します。" + +#: ../lib/modules/mitKerberos.inc:145 +msgid "This is the date of the user's last login." +msgstr "ユーザが最後にログインした日付。" + +#: ../lib/modules/mitKerberos.inc:125 ../lib/modules/heimdalKerberos.inc:103 +msgid "This is the date when the account will expire." +msgstr "アカウントが失効する日。" + +#: ../lib/modules/sambaSamAccount.inc:346 ../lib/modules/shadowAccount.inc:194 +msgid "This is the date when the account will expire. Format: DD-MM-YYYY" +msgstr "アカウントが失効する日。形式は: DD-MM-YYYY" + +#: ../lib/modules/mitKerberos.inc:141 ../lib/modules/sambaSamAccount.inc:397 +msgid "This is the date when the user changed his password." +msgstr "ユーザがパスワードを変更した日付。" + +#: ../lib/modules/shadowAccount.inc:202 +msgid "" +"This is the date when the user changed his password. If you specify a " +"maximum password age then you can force a password change here." +msgstr "" +"ユーザー自身がパスワードを変更した日付です。パスワード有効期限を設定すると、" +"パスワードの変更を強制する事ができます。" + +#: ../lib/modules/sambaGroupMapping.inc:147 +msgid "This is the group name which will be shown in Windows." +msgstr "Windows上で表示されるグループ名です。" + +#: ../lib/modules/windowsHost.inc:83 +msgid "This is the host's location (e.g. Munich, server room 3)." +msgstr "ホストの設置場所です (例 Munich, server room 3)。" + +#: ../help/help.inc:187 +msgid "" +"This is the identifier for the relative DN value. It must be one of the " +"given allowed LDAP attributes (e.g. user accounts usually use \"uid\" while " +"groups use \"cn\")." +msgstr "" +"相対DN(RDN)に対する識別子です。有効なLDAP属性として与えられたものの一つでなく" +"てはなりません(例えば、ユーザアカウントでは通常\"uid\"を使用し、グループでは" +"\"cn\"を使用します)。" + +#: ../lib/modules/selfRegistration.inc:99 +msgid "" +"This is the identifier for the relative DN value. LAM will use \"uid\" by " +"default." +msgstr "相対DNの値に対する識別子。デフォルトでは、LAMは \"uid\" を使用します。" + +#: ../lib/modules/passwordSelfReset.inc:101 +msgid "" +"This is the label for the link to the password self reset. If empty \"Forgot " +"password?\" will be used." +msgstr "" +"パスワード自己リセットへのリンクに対するラベルです。空の場合は\"パスワードを" +"お忘れですか?\"が使われます。" + +#: ../lib/modules/selfRegistration.inc:58 +msgid "" +"This is the label for the link to the self registration. If empty \"Register " +"new account\" will be used." +msgstr "" +"自己登録へのリンクに対するラベルです。空の場合は \"新しいアカウントを登録\" " +"が使われます。" + +#: ../help/help.inc:88 +msgid "" +"This is the list of attributes to show in the account list. The entries can " +"either be predefined values, \"#attribute\", or individual ones, \"attribute:" +"description\". Several entries are separated by semicolons." +msgstr "" +"これは、アカウント一覧に表示する属性のリストです。エントリは既定の値、\"#属性" +"\" 、または特定の値、\"属性:説明\" のいずれかにできます。複数のエントリは、セ" +"ミコロンによって区切られます。" + +#: ../lib/modules/posixAccount.inc:494 +msgid "This is the list of valid login shells." +msgstr "有効なログインシェルのリスト。" + +#: ../lib/modules/asteriskAccount.inc:108 +msgid "" +"This is the machine id (e.g. IP address or host name) from which the user " +"can call/receive calls." +msgstr "" +"ユーザーが通話を送受信できるマシンID(例 IPアドレスまたはホスト名)です。" + +#: ../lib/modules/inetLocalMailRecipient.inc:81 +msgid "This is the mail server for the user." +msgstr "ユーザに対するメールサーバ。" + +#: ../lib/modules/qmailUser.inc:220 +msgid "This is the mailbox size limit in bytes." +msgstr "これは、バイト単位のメールボックスサイズ制限です。" + +#: ../lib/modules/passwordSelfReset.inc:93 +msgid "This is the minimum length for answers to the security question." +msgstr "秘密の質問に対する回答の最低長です。" + +#: ../lib/modules/nisnetgroup.inc:84 ../lib/modules/organizationalRole.inc:86 +#: ../lib/modules/groupOfNames.inc:86 +msgid "This is the name of this group." +msgstr "このグループの名前。" + +#: ../lib/modules/posixAccount.inc:561 +msgid "" +"This is the natural name of the host. If empty, the host name will be used." +msgstr "このホストの呼称。未入力の場合は、ホスト名が使用されます。" + +#: ../lib/modules/pykotaUser.inc:109 +msgid "This is the natural name of the user." +msgstr "ユーザの自然な名前。" + +#: ../lib/modules/inetOrgPerson.inc:741 +msgid "" +"This is the natural name of the user. If empty, the first and last name is " +"used." +msgstr "このユーザの呼称。未入力の場合は、姓名が使用されます。" + +#: ../lib/modules/posixAccount.inc:539 ../lib/modules/windowsUser.inc:103 +msgid "" +"This is the natural name of the user. If empty, the first and last name or " +"user name is used." +msgstr "このユーザの呼称。未入力の場合は、姓名、またはユーザ名が使用されます。" + +#: ../lib/modules/sambaDomain.inc:122 +msgid "" +"This is the number of bad logon attempts (0 - 999) before the account is " +"deactivated. 0 means unlimited attempts." +msgstr "" +"アカウントが無効化される不正ログオン試行回数(0-999)。0は無制限を意味します。" + +#: ../lib/modules/sambaDomain.inc:106 +msgid "" +"This is the number of passwords which are saved to prevent that users reuse " +"old passwords." +msgstr "" +"ユーザーが過去に使用したパスワードを再利用する事を防ぐために記録しておくパス" +"ワードの履歴数。" + +#: ../help/help.inc:98 +msgid "" +"This is the number of rows to show in the account list. If more entries are " +"found the list will be split into several pages." +msgstr "" +"アカウント一覧の表示行数です。この数より多くのエントリがある場合は、リストは" +"複数のページに分割されます。" + +#: ../lib/modules/sambaSamAccount.inc:355 +msgid "This is the path to the user's home directory." +msgstr "ユーザのホームディレクトリのパス。" + +#: ../lib/modules/sambaGroupMapping.inc:155 +msgid "" +"This is the relative ID (similar to UID on Unix) for Windows accounts. If " +"you leave this empty LAM will calculate the RID from the UID. This can be " +"either a number or the name of a special group:" +msgstr "" +"Windowsアカウントに対する相対ID(unixにおけるUIDのようなもの)です。未入力の場" +"合、LAMはUIDからRIDを算出します。数値または特殊グループ名のどちらかを指定でき" +"ます。" + +#: ../lib/modules/sambaSamAccount.inc:330 +msgid "" +"This is the relative ID number for your Windows account. You can either " +"enter a number or one of these special accounts: " +msgstr "" +"あなたのWindowsアカウントに対する相対ID番号です。数字またはこれらの特殊アカウ" +"ントのどれか一つを指定できます: " + +#: ../lib/modules/sambaSamAccount.inc:334 +msgid "" +"This is the relative ID number for your host account. If you leave this " +"empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" +"あなたのホストアカウントに対する相対ID番号です。未入力の場合、LAMは " +"uidNumber*2 + sambaAlgorithmicRidBase を使用します。" + +#: ../lib/modules/imapAccess.inc:113 +msgid "" +"This is the separator for the mailbox path. Usually, this is \".\" but e.g. " +"Cyrus with \"unixhierarchysep\" will require \"/\"." +msgstr "" +"これは、メールボックス・パスの区切りです。通常は、\".\"ですが、例え" +"ば、\"unixhierarchysep\"のCyrusでは\"/\"とする必要があります。" + +#: ../help/help.inc:59 +msgid "" +"This is the server address of your LDAP server. Use ldap:// for unencrypted " +"LDAP connections or TLS encrypted connections. LDAP+SSL (LDAPS) encrypted " +"connections are specified with ldaps://. The port value is optional." +msgstr "" +"これはLDAPサーバのアドレスです。ldap:// を暗号化されないLDAP接続に、ldaps:// " +"をTLS暗号化された接続に使用してください。LDSP+SSL(LDAPS)暗号化接続は " +"https:// で指定します。ポート番号は省略できます。" + +#: ../help/help.inc:78 +msgid "This is the suffix for the LDAP tree viewer." +msgstr "LDAPツリービューアに対するサフィックス。" + +#: ../help/help.inc:72 +msgid "" +"This is the suffix of the LDAP tree from where to search for LDAP entries. " +"Only entries in this subtree will be displayed in the account list. When " +"creating a new accont this will be the DN where it is saved." +msgstr "" +"これは、LDAPエントリを検索する際の始点となるLDAPツリーのサフィックスです。こ" +"のサブツリー中のエントリのみが、アカウント一覧に表示されます。新しいアカウン" +"トを作成するときは、このDNが保存先となります。" + +#: ../lib/modules/inetLocalMailRecipient.inc:69 +msgid "This is the target email address for the user's mails." +msgstr "ユーザのメールの最終的なメールアドレス" + +#: ../lib/modules/customScripts.inc:53 ../lib/modules/uidObject.inc:60 +#: ../lib/modules/aliasEntry.inc:62 +msgid "This is the target of this alias entry." +msgstr "このエイリアス・エントリの対象。" + +#: ../lib/modules/sambaDomain.inc:134 +msgid "" +"This is the time (in minutes) for which the user may not log in after the " +"account was locked. -1 means forever." +msgstr "" +"アカウントをロックされたユーザーがログインできなくなる時間(分単位)。-1は無期" +"限を意味する。" + +#: ../help/help.inc:147 +msgid "" +"This is the time (in minutes) of inactivity after which a user is " +"automatically logged off." +msgstr "ユーザーが自動的ログオフするまでの時間(分単位)。" + +#: ../help/help.inc:108 +msgid "" +"This is the time in minutes which LAM caches its LDAP searches. Shorter " +"times will stress LDAP more but decrease the possibility that changes are " +"not identified." +msgstr "" +"これは、LAMがLDAP検索結果をキャッシュしておく時間を分で表したものです。時間を" +"短かくすると、LDAPに負荷をかける代わりに、変更が認識できなくなる可能性を減ら" +"します。" + +#: ../lib/modules/sambaSamAccount.inc:349 +msgid "" +"This is the time zone of your Samba server. LAM needs this information to " +"display the logon hours correctly." +msgstr "" +"Sambaサーバのタイムゾーン。LAMがログオン時間を正確に表示するために、この情報" +"が必要です。" + +#: ../lib/modules/sambaSamAccount.inc:321 +msgid "This is the user's primary Windows group." +msgstr "ユーザのプライマリWindowsグループです。" + +#: ../lib/modules/puppetClient.inc:89 +msgid "" +"This is this node's parent. All classes and variables are inherited from " +"this node." +msgstr "このノードの親。全てのクラスと変数は、このノードを継承します。" + +#: ../lib/modules/asteriskAccount.inc:156 +msgid "" +"This is typically used to allow incoming calls (e.g. from FWD) while having " +"a type=friend entry defined with username and password." +msgstr "" +"ユーザー名とパスワードと一緒に定義されたtype=friendエントリが存在する状態で、" +"着信通話(例えば転送着信)を許可する場合に使用します。" + +#: ../lib/modules/zarafaUser.inc:117 +msgid "This is used to mark this account as resource." +msgstr "このアカウントがリソースである事の目印として使用します。" + +#: ../lib/modules/posixAccount.inc:127 +msgid "This login shell is invalid!" +msgstr "ログインシェルが無効です!" + +#: ../lib/modules/inetLocalMailRecipient.inc:232 +msgid "This mail address is already in use:" +msgstr "このメールアドレスは既に使用されています:" + +#: ../lib/modules/imapAccess.inc:107 +msgid "This mailbox will be created/deleted." +msgstr "このメールボックスが作成/削除されます。" + +#: ../lib/modules.inc:1237 +msgid "This may overwrite existing values with profile data. Continue?" +msgstr "" +"これにより、既存の値がプロファイル・データで上書きされます。このまま続けます" +"か?" + +#: ../lib/modules/customFields.inc:113 +msgid "" +"This message is shown when the field value does not match the validation " +"expression." +msgstr "" +"このメッセージは、フィールドの値が検証式にマッチしなかった場合に表示されま" +"す。" + +#: ../templates/schema/schema.php:350 +msgid "This object class is obsolete." +msgstr "このオブジェクトクラスは旧式です。" + +#: ../lib/modules/imapAccess.inc:84 +msgid "" +"This option allows you to disable the certificate check of your IMAP server " +"certificate. Disabling the certificate check is not recommended." +msgstr "" +"このオプションは、IMAPサーバー証明書の確認を無効化します。証明書の確認を無効" +"化することは推奨されません。" + +#: ../lib/modules/sambaSamAccount.inc:340 +msgid "This option defines the allowed logon hours for this account." +msgstr "" +"このオプションは、このアカウントがログオンを許可される時間を定義します。" + +#: ../lib/modules/sambaSamAccount.inc:343 +msgid "" +"This option defines the allowed logon hours for this account. The format is " +"the same as for the LDAP attribute. The 24*7 hours are represented as 168 " +"bit which are saved as 21 hex (21*8 = 168) values. The first bit represents " +"Sunday 0:00 - 0:59 in GMT." +msgstr "" +"このオプションはログオン許可時間を定義します。書式はLDAP属性と同じです。24*7" +"時間が168ビットに写影され、21桁の16進数(21*8=168)の値として保存されます。先頭" +"の1ビットはグリニッジ標準時で日曜の0:00 - 0:59を意味します。" + +#: ../lib/modules/asteriskExtension.inc:192 +msgid "This pair of extension name and priority already exists." +msgstr "この拡張名とポリシーは既に存在しています。" + +#: ../lib/modules/sambaSamAccount.inc:364 +msgid "This program is run after the login." +msgstr "このプログラムはログオンの後に実行されます。" + +#: ../lib/modules/sambaSamAccount.inc:388 +msgid "This specifies the reconnect policy." +msgstr "再接続のポリシーを指定します。" + +#: ../lib/modules/zarafaDynamicGroup.inc:96 +#: ../lib/modules/zarafaContact.inc:107 ../lib/modules/zarafaGroup.inc:113 +#: ../lib/modules/zarafaAddressList.inc:84 ../lib/modules/zarafaUser.inc:172 +#: ../lib/modules/zarafaServer.inc:93 +msgid "" +"This specifies the used Zarafa LDAP schema. Select LDAP for e.g. OpenLDAP, " +"Apache Directory, OpenDJ and other non-Windows based LDAP servers. If you " +"run Zarafa against Samba 4 or Active Directory please select Active " +"Directory." +msgstr "" +"これは、使用するZarafa LDAPスキーマを指定します。LDAP には、例えば OpenLDAP, " +"Apache Directory, OpenDJ あるいは、その他の non-Windows LDAPサーバーを選択し" +"てください。もしも Samba 4 または Active Directory に対してZarafaを動作させる" +"場合は、Active Directory を選択してください。" + +#: ../lib/modules/sambaSamAccount.inc:385 +msgid "This specifies what to do when the client connection is broken." +msgstr "クライアント接続が壊れた場合の処理を指定します。" + +#: ../help/help.inc:227 +msgid "" +"This text is displayed on top of the self service login page. You can also " +"input HTML code here." +msgstr "" +"この文字列はセルフサービス・ログインページのトップに表示されます。ここには" +"HTMLコードを書く事もできます。" + +#: ../help/help.inc:229 +msgid "" +"This text is displayed on top of the self service main page. You can also " +"input HTML code here." +msgstr "" +"この文字列はセルフサービス・メインページのトップに表示されます。ここにはHTML" +"コードを書く事もできます。" + +#: ../help/help.inc:239 +msgid "" +"This text is placed as label for the password field on the login page. LAM " +"will use \"Password\" if you do not enter any text." +msgstr "" +"このテキストは、ログインページのパスワード欄のラベルとして使用されます。 テキ" +"ストが入力されない場合は、LAMは \"パスワード\" を使用します。" + +#: ../help/help.inc:225 +msgid "" +"This text should shortly describe your selected LDAP search attribute (e.g. " +"email or user name)." +msgstr "この文字列はLDAP検索属性を簡単に説明します(例. emailまたはユーザ名)。" + +#: ../lib/modules/selfRegistration.inc:107 +#: ../lib/modules/passwordSelfReset.inc:157 +msgid "This text will be printed on top of the page." +msgstr "このテキストは、ページの先頭に表示されます。" + +#: ../lib/modules/qmailUser.inc:240 +msgid "" +"This text will be sent as reply to all incoming mails if the delivery mode " +"is set to autoreply." +msgstr "" +"配送モードが自動返信に設定された場合、全ての受信メールに対する返信として、こ" +"のメッセージが送信されます。" + +#: ../lib/tools/pdfEdit.inc:53 +msgid "This tool allows you to customize the PDF pages." +msgstr "このツールで、あなたのPDFページをカスタマイズする事ができます。" + +#: ../templates/lists/changePassword.php:46 +#: ../templates/lists/changePassword.php:243 +msgid "This user is not supported or was not found." +msgstr "このユーザはサポートされていないか、または存在しません。" + +#: ../lib/modules/windowsUser.inc:116 +msgid "This user name is only used for old Windows versions (e.g. NT4, W98)." +msgstr "" +"このユーザー名は、古いバージョンのWindows (例 NT4, W98)でのみ使用されます。" + +#: ../templates/lists/userlink.php:61 +msgid "This user was not found!" +msgstr "ユーザが見つかりません!" + +#: ../lib/modules/zarafaUser.inc:414 +msgid "This value can only be \"Room\" or \"Equipment\"." +msgstr "この値は、\"部屋\"または\"設備\"のいずれかでなくてはなりません。" + +#: ../lib/modules/zarafaDynamicGroup.inc:204 +#: ../lib/modules/zarafaDynamicGroup.inc:205 +#: ../lib/modules/zarafaContact.inc:189 ../lib/modules/zarafaContact.inc:190 +#: ../lib/modules/zarafaGroup.inc:219 ../lib/modules/zarafaGroup.inc:220 +#: ../lib/modules/zarafaGroup.inc:221 ../lib/modules/zarafaAddressList.inc:171 +#: ../lib/modules/zarafaAddressList.inc:172 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 ../lib/modules/posixAccount.inc:128 +#: ../lib/modules/zarafaUser.inc:421 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:424 ../lib/modules/zarafaUser.inc:425 +#: ../lib/modules/zarafaUser.inc:426 ../lib/modules/zarafaUser.inc:427 +#: ../lib/modules/ppolicyUser.inc:97 ../lib/modules/inetOrgPerson.inc:106 +#: ../lib/modules/zarafaServer.inc:179 +msgid "This value can only be \"true\" or \"false\"." +msgstr "この値は、\"true\"または\"false\"のいずれかでなくてはなりません。" + +#: ../lib/modules/zarafaUser.inc:422 +msgid "This value can only be \"true\", \"false\" or \"system\"." +msgstr "" +"この値は、\"true\", \"false\"または\"system\"のいずれかでなくてはなりません。" + +#: ../lib/modules/posixGroup.inc:611 +msgid "This value must be a list of user names separated by semicolons." +msgstr "この値はセミコロンで区切られたユーザ名でなくてはなりません。" + +#: ../help/help.inc:264 +msgid "This will create a new organisational unit under the selected one." +msgstr "選択位置の下に新しい organizational unit を作成します。" + +#: ../lib/modules/posixAccount.inc:482 +msgid "This will create the user's home directory on the specified server." +msgstr "ユーザのホームディレクトリを指定されたサーバ上に作成します。" + +#: ../help/help.inc:266 +msgid "" +"This will delete the selected organisational unit. The OU has to be empty." +msgstr "" +"選択された organizational unitを削除します。OUは空でなくてはなりません。" + +#: ../help/help.inc:135 +msgid "This will delete the selected profile." +msgstr "選択されたプロファイルを削除します。" + +#: ../lib/modules/kolabGroup.inc:118 ../lib/modules/puppetClient.inc:109 +#: ../lib/modules/qmailUser.inc:264 ../lib/modules/zarafaContact.inc:88 +#: ../lib/modules/posixGroup.inc:538 ../lib/modules/eduPerson.inc:151 +#: ../lib/modules/pykotaGroup.inc:130 ../lib/modules/sambaSamAccount.inc:403 +#: ../lib/modules/posixAccount.inc:433 ../lib/modules/zarafaUser.inc:137 +#: ../lib/modules/pykotaUser.inc:161 ../lib/modules/shadowAccount.inc:198 +#: ../lib/modules/qmailGroup.inc:233 +#: ../lib/modules/authorizedServiceObject.inc:90 +#: ../lib/modules/passwordSelfReset.inc:153 ../lib/modules/hostObject.inc:84 +msgid "This will enable the extension automatically if this profile is loaded." +msgstr "プロファイルがロードされた場合に自動的に拡張を有効にします。" + +#: ../lib/modules/customScripts.inc:93 +msgid "" +"This will hide the custom scripts tab when you edit an account. Manual " +"actions are not possible when the tab is not visible." +msgstr "" +"これは、アカウントを編集する際にカスタム・スクリプト タブを隠します。タブが不" +"可視とされた場合は、手動操作はできません。" + +#: ../lib/modules/sambaSamAccount.inc:265 +msgid "This will reset the host's password to a default value." +msgstr "ホストのパスワードをデフォルト値にリセットします。" + +#: ../templates/lists/changePassword.php:311 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail." +msgstr "" +"ランダムなパスワードを設定し、これを画面上に表示するか、または、ユーザにメー" +"ルで送信します。" + +#: ../help/help.inc:245 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail. Please edit your LAM server profile to setup the mail " +"settings." +msgstr "" +"ランダムなパスワードを設定し、これを画面上に表示するか、または、ユーザにメー" +"ルで送信します。LAMのサーバー・プルファイルを編集してメール設定をセットアップ" +"してください" + +#: ../lib/modules/kolabGroup.inc:114 ../lib/modules/kolabUser.inc:179 +#: ../lib/modules/kolabSharedFolder.inc:167 +msgid "" +"This will set a special flag on the account which tells Kolabd to remove it. " +"Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes)." +msgstr "" +"Kolabdに削除を命ずる特殊なフラグをセットします。Kolabアカウントを完全に削除す" +"る場合に使用します(e.g. メールボックスは削除されます)。" + +#: ../lib/modules/qmailUser.inc:212 +msgid "" +"This will set the user's account status. You may disable the mail account " +"here." +msgstr "" +"ユーザーのアカウント状態を設定します。ここで、メールアカウントを無効にできま" +"す。" + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Thursday" +msgstr "木曜日" + +#: ../lib/modules/mitKerberos.inc:136 ../lib/modules/mitKerberos.inc:195 +#: ../lib/modules/mitKerberos.inc:230 ../lib/modules/mitKerberos.inc:254 +#: ../lib/modules/mitKerberos.inc:355 ../lib/modules/mitKerberos.inc:775 +#: ../lib/modules/heimdalKerberos.inc:110 +#: ../lib/modules/heimdalKerberos.inc:164 +#: ../lib/modules/heimdalKerberos.inc:199 +#: ../lib/modules/heimdalKerberos.inc:221 +#: ../lib/modules/heimdalKerberos.inc:302 +#: ../lib/modules/heimdalKerberos.inc:687 +msgid "Ticket lifetime" +msgstr "チケットの有効期間" + +#: ../lib/modules/mitKerberos.inc:293 ../lib/modules/mitKerberos.inc:294 +#: ../lib/modules/heimdalKerberos.inc:257 +#: ../lib/modules/heimdalKerberos.inc:258 +msgid "Ticket lifetime must be a number." +msgstr "チケット有効期間は数字でなくてはなりません!" + +#: ../lib/modules/sambaSamAccount.inc:1397 +msgid "Time" +msgstr "時刻" + +#: ../lib/modules/sambaSamAccount.inc:369 +msgid "Time limit" +msgstr "時間制限" + +#: ../lib/modules/sambaSamAccount.inc:348 +#: ../lib/modules/sambaSamAccount.inc:579 +msgid "Time zone" +msgstr "タイムゾーン" + +#: ../lib/modules/bindDLZ.inc:94 ../lib/modules/bindDLZ.inc:98 +#: ../lib/modules/bindDLZ.inc:103 ../lib/modules/bindDLZ.inc:108 +#: ../lib/modules/bindDLZ.inc:113 ../lib/modules/bindDLZ.inc:118 +#: ../lib/modules/bindDLZ.inc:123 ../lib/modules/bindDLZ.inc:254 +#: ../lib/modules/bindDLZ.inc:267 ../lib/modules/bindDLZ.inc:287 +#: ../lib/modules/bindDLZ.inc:300 ../lib/modules/bindDLZ.inc:331 +#: ../lib/modules/bindDLZ.inc:363 ../lib/modules/bindDLZ.inc:375 +#: ../lib/modules/bindDLZ.inc:402 ../lib/modules/bindDLZ.inc:423 +#: ../lib/modules/bindDLZ.inc:469 ../lib/modules/bindDLZ.inc:472 +#: ../lib/modules/bindDLZ.inc:474 ../lib/modules/bindDLZ.inc:476 +#: ../lib/modules/bindDLZ.inc:478 ../lib/modules/bindDLZ.inc:480 +#: ../lib/modules/bindDLZ.inc:482 ../lib/modules/bindDLZ.inc:484 +#: ../lib/modules/bindDLZ.inc:486 ../lib/modules/bindDLZ.inc:651 +#: ../lib/modules/bindDLZ.inc:754 ../lib/modules/bindDLZ.inc:833 +#: ../lib/modules/bindDLZ.inc:922 ../lib/modules/bindDLZ.inc:1034 +#: ../lib/modules/bindDLZ.inc:1166 ../lib/modules/bindDLZ.inc:1244 +#: ../lib/modules/bindDLZ.inc:1370 ../lib/modules/bindDLZ.inc:1473 +#: ../lib/modules/bindDLZ.inc:1493 ../lib/modules/bindDLZ.inc:1514 +#: ../lib/modules/bindDLZ.inc:1548 ../lib/modules/bindDLZ.inc:1573 +#: ../lib/modules/bindDLZ.inc:1603 +msgid "Timeout" +msgstr "タイムアウト" + +#: ../lib/modules/bindDLZ.inc:430 +msgid "Timeouts" +msgstr "タイムアウト" + +#: ../lib/modules/pykotaUser.inc:654 ../lib/modules/pykotaUser.inc:1003 +msgid "Title" +msgstr "タイトル" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:45 +msgid "To" +msgstr "To" + +#: ../lib/modules/posixAccount.inc:531 +msgid "To disable login use /bin/false." +msgstr "ログインを禁止する場合は /bin/false を使用してください。" + +#: ../lib/modules/sambaSamAccount.inc:573 +msgid "Tokyo, Seoul, Osaka, Yakutsk" +msgstr "東京、ソウル、大阪、ヤクーツク" + +#: ../templates/config/confmain.php:406 +msgid "Tool settings" +msgstr "ツール設定" + +#: ../templates/tools.php:63 ../templates/main_header.php:147 +msgid "Tools" +msgstr "ツール" + +#: ../templates/serverInfo.php:357 +msgid "Total" +msgstr "総計" + +#: ../templates/serverInfo.php:242 ../templates/serverInfo.php:247 +msgid "Total connections" +msgstr "総接続数" + +#: ../templates/3rdParty/pla/lib/export_functions.php:202 +msgid "Total entries" +msgstr "エントリ総数" + +#: ../lib/modules/pykotaUser.inc:141 +msgid "Total money paid by the user." +msgstr "ユーザーによって支払われた金額の合計。" + +#: ../lib/modules/pykotaUser.inc:140 ../lib/modules/pykotaUser.inc:264 +#: ../lib/modules/pykotaUser.inc:586 ../lib/modules/pykotaUser.inc:901 +#: ../lib/modules/pykotaUser.inc:954 +msgid "Total paid" +msgstr "支払い総額" + +#: ../lib/modules/pykotaUser.inc:282 +msgid "Total paid (read-only)" +msgstr "支払い総額 (読み込み専用)" + +#: ../lib/types/user.inc:682 +msgid "Translate GID number to group name" +msgstr "GID番号をグループ名に変換" + +#: ../templates/config/confmain.php:247 ../help/help.inc:77 +msgid "Tree suffix" +msgstr "ツリーサフィックス" + +#: ../templates/multiEdit.php:92 ../templates/main_header.php:178 +msgid "Tree view" +msgstr "ツリービュー" + +#: ../templates/config/confmain.php:567 +msgid "TreeSuffix is invalid!" +msgstr "ツリーサフィックスが無効です!" + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Tuesday" +msgstr "木曜日" + +#: ../templates/multiEdit.php:118 ../templates/selfService/profManage.php:206 +#: ../templates/schema/schema.php:348 ../lib/modules/zarafaUser.inc:116 +#: ../lib/modules/zarafaUser.inc:238 ../lib/modules/zarafaUser.inc:361 +#: ../lib/modules/zarafaUser.inc:535 ../lib/modules/zarafaUser.inc:1251 +#: ../lib/modules/zarafaUser.inc:1797 ../lib/modules/kolabSharedFolder.inc:162 +#: ../lib/modules/kolabSharedFolder.inc:201 +#: ../lib/modules/kolabSharedFolder.inc:241 +#: ../lib/modules/kolabSharedFolder.inc:302 +#: ../lib/modules/kolabSharedFolder.inc:571 +#: ../lib/modules/customFields.inc:100 ../lib/modules/customFields.inc:1070 +#: ../lib/modules/customFields.inc:1702 +msgid "Type" +msgstr "型" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:210 ../lib/modules/posixAccount.inc:228 +#: ../lib/modules/posixAccount.inc:497 +msgid "UID generator" +msgstr "UID生成器" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID has changed. Do you want to change home directory?" +msgstr "UIDが変更されました。ホームディレクトリを変更しますか?" + +#: ../lib/modules/posixAccount.inc:107 +msgid "" +"UID must be a number. It has to be inside the UID range which is defined in " +"your configuration profile." +msgstr "" +"UIDは数値で、構成プロファイルで定義されたUIDの範囲内でなくてはなりません。" + +#: ../lib/types/host.inc:95 ../lib/types/user.inc:92 +#: ../lib/modules/qmailUser.inc:112 ../lib/modules/qmailUser.inc:231 +#: ../lib/modules/qmailUser.inc:332 ../lib/modules/qmailUser.inc:418 +#: ../lib/modules/qmailUser.inc:570 ../lib/modules/qmailUser.inc:1142 +#: ../lib/modules/posixAccount.inc:108 ../lib/modules/posixAccount.inc:291 +#: ../lib/modules/posixAccount.inc:383 ../lib/modules/posixAccount.inc:412 +#: ../lib/modules/posixAccount.inc:449 ../lib/modules/posixAccount.inc:453 +#: ../lib/modules/posixAccount.inc:461 ../lib/modules/posixAccount.inc:1433 +#: ../lib/modules/posixAccount.inc:1852 +msgid "UID number" +msgstr "UID番号" + +#: ../lib/modules/posixAccount.inc:108 +#, php-format +msgid "" +"UID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -uid %s -exec chown %s {} \\;'" +msgstr "" +"UID番号が変更されました。存在するファイルの所有者属性を維持するために、以下の" +"コマンドをroot権限で実行す必要があります: 'find / -uid %s -exec chown %s {} " +"\\;'" + +#: ../lib/modules/qmailUser.inc:463 +msgid "UID number is already in use." +msgstr "UID はすでに使用されています" + +#: ../lib/modules/posixAccount.inc:99 +msgid "UID ranges for Unix accounts" +msgstr "unixアカウントに対するUIDの範囲" + +#: ../lib/modules/sambaSamAccount.inc:306 +msgid "" +"UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced " +"with user and group name." +msgstr "" +"ホームディレクトリのUNCパス (\\\\サーバ\\共有)。$user と $group はユーザ名と" +"グループ名に置換されます。" + +#: ../lib/modules/windowsUser.inc:248 +msgid "" +"UNC-path (\\\\server\\share\\) of home directory. If no home drive is set " +"then this directory must start with a drive letter (e.g. \"c:\\dir\\user\")." +msgstr "" +"ホーム・ディレクトリのUNCパス (\\\\server\\share\\) 。もしもホーム・ドライブ" +"がセットされていない場合は、このディレクトリはドライブレターで始まらなくては" +"なりません (例 \"c:\\dir\\user\") 。" + +#: ../lib/modules/eduPerson.inc:119 ../lib/modules/eduPerson.inc:123 +msgid "" +"URI (either URN or URL) that indicates a set of rights to specific resources." +msgstr "特定のリソースに対する権利の集合を示すURL(あるいはURNまたはURL)。" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1883 +msgid "URL" +msgstr "URL" + +#: ../lib/modules/bindDLZ.inc:1687 ../lib/modules/bindDLZ.inc:2302 +msgid "Unable to add DNS record." +msgstr "DNSレコードを追加できません。" + +#: ../lib/modules/imapAccess.inc:180 +msgid "Unable to change ACL on IMAP server for mailbox deletion." +msgstr "メールボックスを削除するIMAPサーバー上のACLを変更できません。" + +#: ../lib/modules/mitKerberos.inc:1155 ../lib/modules/mitKerberos.inc:1159 +#: ../lib/modules/heimdalKerberos.inc:1024 +msgid "Unable to change Kerberos password." +msgstr "Kerberosパスワードをリセットできません。" + +#: ../lib/modules/windowsUser.inc:1847 ../lib/modules/windowsUser.inc:1873 +msgid "Unable to change password." +msgstr "パスワードを変更できません。" + +#: ../templates/selfService/selfServiceMain.php:338 +msgid "" +"Unable to change your account. Maybe you do not have enough rights to change " +"the settings." +msgstr "" +"アカウントを変更できません。あなたはおそらく、設定を変更する権限を持っていま" +"せん。" + +#: ../templates/selfService/selfServiceMain.php:335 +msgid "" +"Unable to change your account. Your changes might violate the password " +"policy." +msgstr "" +"アカウントを変更できません。あなたが行おうとした変更は、パスワード・ポリシー" +"に違反します。" + +#: ../templates/tests/lamdaemonTest.php:261 ../lib/lamdaemon.inc:76 +#: ../lib/lamdaemon.inc:81 +msgid "Unable to connect to remote server!" +msgstr "リモートサーバーに接続できません!" + +#: ../templates/massDoUpload.php:193 +msgid "Unable to create ZIP file for PDF export." +msgstr "PDFエクスポートのためのZIPファイルを作成できません。" + +#: ../lib/modules/selfRegistration.inc:699 +#: ../lib/modules/selfRegistration.inc:703 +msgid "Unable to create account." +msgstr "新しいアカウントを生成できません。" + +#: ../lib/modules/imapAccess.inc:182 +msgid "Unable to create mailbox on IMAP server." +msgstr "IMAPサーバー上にメールボックスを作成できません。" + +#: ../templates/ou_edit.php:80 +msgid "Unable to create new OU!" +msgstr "新しいOUを作成できません!" + +#: ../lib/types/automountType.inc:270 +msgid "Unable to create new automount map." +msgstr "新しい自動マウント・マップを作成できません!" + +#: ../templates/config/profmanage.php:82 +#: ../templates/selfService/profManage.php:59 +msgid "Unable to create new profile!" +msgstr "新しいプロファイルを作成できません!" + +#: ../lib/types/bind.inc:215 +msgid "Unable to create new zone." +msgstr "新しいゾーンを作成できません。" + +#: ../lib/modules/bindDLZ.inc:1677 +#, php-format +msgid "Unable to delete DNS record \"%s\"." +msgstr "DNSレコード \"%s\" を削除できません。" + +#: ../templates/ou_edit.php:97 +msgid "Unable to delete OU!" +msgstr "OUを削除できません!" + +#: ../templates/pdfedit/pdfmain.php:94 +msgid "Unable to delete PDF structure!" +msgstr "PDF構成を削除できません!" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:25 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:57 +msgid "Unable to delete entry, it does not exist" +msgstr "エントリが存在しないため、削除できません。" + +#: ../lib/pdfstruct.inc:291 ../lib/pdfstruct.inc:303 +msgid "Unable to delete logo file." +msgstr "ロゴ・ファイルを削除できません。" + +#: ../lib/modules/imapAccess.inc:181 +msgid "Unable to delete mailbox from IMAP server." +msgstr "IMAPサーバー上のメールボックスを削除できません。" + +#: ../templates/config/profmanage.php:123 +#: ../templates/selfService/profManage.php:87 +#: ../templates/profedit/profilemain.php:108 ../lib/config.inc:154 +#: ../lib/config.inc:166 ../lib/config.inc:173 ../lib/config.inc:181 +msgid "Unable to delete profile!" +msgstr "プロファイルを削除できません!" + +#: ../lib/modules/pykotaPrinter.inc:220 +#, php-format +msgid "Unable to find a printer with name \"%s\"." +msgstr "\"%s\" という名前のプリンターが見つかりません。" + +#: ../lib/modules/posixAccount.inc:2072 ../lib/modules/posixAccount.inc:2081 +#: ../lib/modules/posixAccount.inc:2347 ../lib/modules/nisnetgroup.inc:543 +#: ../lib/modules/groupOfNamesUser.inc:388 +msgid "Unable to find group in LDAP." +msgstr "LDAP内にグループが見つかりません。" + +#: ../lib/modules/passwordSelfReset.inc:950 +msgid "Unable to find password security answer for this account." +msgstr "このアカウントに対する秘密の回答がありません。" + +#: ../lib/modules/passwordSelfReset.inc:942 +#: ../lib/modules/passwordSelfReset.inc:1161 +msgid "Unable to find password security question for this account." +msgstr "このアカウントに対する秘密の質問がありません。" + +#: ../lib/modules/organizationalRoleUser.inc:334 +msgid "Unable to find role in LDAP." +msgstr "LDAP内にロールが見つかりません。" + +#: ../templates/login.php:591 ../templates/login.php:597 +msgid "Unable to find the user name in LDAP." +msgstr "LDAP内にユーザー名が見つかりません。" + +#: ../lib/modules/passwordSelfReset.inc:933 +#: ../lib/modules/passwordSelfReset.inc:1242 +msgid "Unable to find user account." +msgstr "ユーザーアカウントが見つかりません。" + +#: ../templates/config/mainmanage.php:194 +msgid "Unable to import server certificate. Please use the upload function." +msgstr "" +"サーバー証明書をインポートできません。アップロード機能を使用してください。" + +#: ../lib/modules.inc:1521 ../lib/modules.inc:1525 +msgid "Unable to load LDAP entry:" +msgstr "LDAPエントリをロードできません:" + +#: ../lib/profiles.inc:98 ../lib/profiles.inc:102 ../lib/selfService.inc:196 +#: ../lib/selfService.inc:200 +msgid "Unable to load profile!" +msgstr "プロファイルをロードできません!" + +#: ../lib/modules/imapAccess.inc:183 +msgid "Unable to locate mailbox on IMAP." +msgstr "IMAP上のメールボックスを発見できません。" + +#: ../lib/modules/inetOrgPerson.inc:101 +msgid "Unable to process this file." +msgstr "このファイルを処理できません。" + +#: ../templates/3rdParty/pla/lib/import_functions.php:388 +#: ../templates/3rdParty/pla/lib/import_functions.php:393 +msgid "Unable to read file." +msgstr "プロファイルを読み込みできません。" + +#: ../lib/modules/selfRegistration.inc:692 +msgid "Unable to register your new account. Please try again." +msgstr "新規ユーザーを登録できません。やり直してください。" + +#: ../lib/modules/passwordSelfReset.inc:1440 +#: ../lib/modules/passwordSelfReset.inc:1449 +#: ../lib/modules/passwordSelfReset.inc:1455 +#: ../lib/modules/passwordSelfReset.inc:1464 +msgid "Unable to reset password." +msgstr "パスワードをリセットできません。" + +#: ../templates/3rdParty/pla/lib/functions.php:1945 +msgid "Unable to retrieve image" +msgstr "画像を取得できません!" + +#: ../templates/tests/schemaTest.php:61 ../templates/schema/schema.php:93 +#: ../templates/schema/schema.php:111 ../templates/schema/schema.php:272 +#: ../templates/schema/schema.php:306 +msgid "Unable to retrieve schema!" +msgstr "スキーマを取得できません!" + +#: ../templates/selfService/adminMain.php:283 +#: ../templates/profedit/profilepage.php:124 +msgid "Unable to save profile!" +msgstr "プロファイルを保存できません!" + +#: ../lib/account.inc:999 ../lib/account.inc:1037 +msgid "Unable to send mail!" +msgstr "メールを送信できません!" + +#: ../lib/modules/bindDLZ.inc:1712 +#, php-format +msgid "Unable to update DNS record \"%s\"." +msgstr "DNSレコード \"%s\" を更新できません。" + +#: ../lib/pdfstruct.inc:249 ../lib/pdfstruct.inc:259 ../lib/pdfstruct.inc:262 +msgid "Unable to upload logo file." +msgstr "ロゴ・ファイルをアップロードできません。" + +#: ../lib/modules/passwordSelfReset.inc:999 +#: ../lib/modules/passwordSelfReset.inc:1254 +msgid "Unable to verify your password reset request. Please try again." +msgstr "パスワード・リセット要求を確認できません。やり直してください。" + +#: ../lib/modules/selfRegistration.inc:726 +msgid "Unable to verify your user creation request. Please try again." +msgstr "ユーザー生成要求を確認できません。やり直してください。" + +#: ../templates/serverInfo.php:293 +msgid "Unbind" +msgstr "Unbind" + +#: ../lib/modules/windowsGroup.inc:66 +msgid "Universal" +msgstr "Universal" + +#: ../templates/lists/changePassword.php:398 +#: ../templates/lists/changePassword.php:429 ../lib/types/user.inc:268 +#: ../lib/types/user.inc:368 ../lib/types/user.inc:400 +#: ../lib/types/user.inc:821 ../lib/modules/posixGroup.inc:373 +#: ../lib/modules/posixAccount.inc:168 +msgid "Unix" +msgstr "unix" + +#: ../templates/tests/lamdaemonTest.php:214 +msgid "Unix account" +msgstr "unixアカウント" + +#: ../lib/modules/posixAccount.inc:263 ../lib/modules/posixAccount.inc:1566 +msgid "Unix groups" +msgstr "Unixグループ" + +#: ../lib/modules/dhcp_settings.inc:201 ../lib/modules/dhcp_settings.inc:218 +#: ../lib/modules/dhcp_settings.inc:294 ../lib/modules/dhcp_settings.inc:602 +#: ../lib/modules/dhcp_settings.inc:682 +msgid "Unknown clients" +msgstr "不明なクライアント" + +#: ../lib/modules/kolabUser.inc:252 ../lib/modules/kolabSharedFolder.inc:256 +#, php-format +msgid "Unknown delegate address: %s" +msgstr "未知の委任アドレス: %s" + +#: ../templates/3rdParty/pla/lib/import_functions.php:233 +msgid "Unkown change type" +msgstr "未知の変更タイプ" + +#: ../lib/types/user.inc:349 ../lib/types/user.inc:354 +#: ../lib/modules/windowsUser.inc:732 +msgid "Unlock" +msgstr "アンロック" + +#: ../templates/lists/changePassword.php:205 +#: ../templates/lists/changePassword.php:395 +#: ../templates/lists/changePassword.php:415 +#: ../templates/lists/changePassword.php:417 +#: ../lib/modules/ppolicyUser.inc:146 +msgid "Unlock account" +msgstr "アカウントのアンロック" + +#: ../templates/lists/changePassword.php:265 +msgid "Unlock account?" +msgstr "アカウントをアンロックしますか?" + +#: ../lib/modules/posixGroup.inc:211 ../lib/modules/posixAccount.inc:1502 +#: ../lib/modules/inetOrgPerson.inc:1562 +msgid "Unlock password" +msgstr "パスワード・ロックの解除" + +#: ../templates/masscreate.php:107 ../templates/config/confmodules.php:386 +msgid "Unsolved dependency:" +msgstr "依存関係が解決できませんでした:" + +#: ../templates/pdfedit/pdfpage.php:473 +msgid "Up" +msgstr "上" + +#: ../templates/lists/changePassword.php:220 +msgid "Update Samba password timestamp" +msgstr "Sambaパスワードのタイムスタンプを更新" + +#: ../lib/modules/sambaSamAccount.inc:249 +msgid "Update attribute \"sambaPwdLastSet\" on password change" +msgstr "パスワード変更時に属性 \"sambaPwdLastSet\" を更新する。" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1440 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:194 +msgid "Update object" +msgstr "オブジェクトを更新" + +#: ../lib/modules/imapAccess.inc:322 ../lib/modules/imapAccess.inc:331 +msgid "Update quota" +msgstr "クオータを更新" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:165 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:129 +msgid "Update values" +msgstr "値を更新" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:118 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:118 +msgid "Updating object" +msgstr "更新中のオブジェクト" + +#: ../templates/config/mainmanage.php:334 ../templates/pdfedit/pdfmain.php:247 +#: ../lib/modules/ldapPublicKey.inc:126 ../lib/modules/inetOrgPerson.inc:1830 +msgid "Upload" +msgstr "アップロード" + +#: ../templates/config/mainmanage.php:336 +msgid "Upload CA certificate in DER/PEM format." +msgstr "CA証明書を DER/PEM 形式でアップロードします。" + +#: ../lib/modules/ldapPublicKey.inc:81 +msgid "Upload a file with one or more keys. Each line contains one key." +msgstr "" +"単一または複数の鍵を含むファイルをアップロードします。各行に一つの鍵を格納し" +"ます。" + +#: ../templates/massBuildAccounts.php:242 +msgid "Upload accounts to LDAP" +msgstr "アカウントをLDAPにアップロード" + +#: ../lib/modules/ldapPublicKey.inc:122 ../lib/modules/customFields.inc:164 +#: ../lib/modules/customFields.inc:3428 +msgid "Upload file" +msgstr "ファイルをアップロード" + +#: ../templates/masscreate.php:277 +msgid "Upload file and create accounts" +msgstr "ファイルをアップロードして、アカウントを作成します。" + +#: ../templates/massDoUpload.php:254 ../lib/lists.inc:1071 +msgid "Upload has finished" +msgstr "アップロードが完了しました" + +#: ../lib/modules.inc:504 +#, php-format +msgid "Upload was stopped after errors in %s module!" +msgstr "%s モジュールでエラーが発生したため、アプロードを中止しました。" + +#: ../lib/pdfstruct.inc:256 +msgid "Uploaded logo file." +msgstr "ロゴ・ファイルをアップロードしました。" + +#: ../templates/serverInfo.php:222 +msgid "Uptime" +msgstr "Uptime" + +#: ../templates/schema/schema.php:209 +msgid "Usage" +msgstr "Usage" + +#: ../lib/modules/authorizedServiceObject.inc:82 +#: ../lib/modules/authorizedServiceObject.inc:86 +msgid "Use * for all services." +msgstr "全てのサービスに対しては * を使用します。" + +#: ../lib/modules/sambaSamAccount.inc:267 +#: ../lib/modules/sambaSamAccount.inc:270 +#: ../lib/modules/sambaSamAccount.inc:431 +msgid "Use Unix password" +msgstr "unixパスワードを使用" + +#: ../templates/selfService/adminMain.php:469 ../help/help.inc:242 +msgid "Use for all operations" +msgstr "全ての操作で使用する" + +#: ../lib/modules/sambaSamAccount.inc:273 +#: ../lib/modules/sambaSamAccount.inc:276 +#: ../lib/modules/sambaSamAccount.inc:439 +#: ../lib/modules/sambaSamAccount.inc:1143 +#: ../lib/modules/sambaSamAccount.inc:1733 +msgid "Use no password" +msgstr "パスワードなし" + +#: ../help/help.inc:272 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of entries to modify." +msgstr "" +"この変更対象のエントリー数を減らすために、追加のLDAPフィルター(例 \"(cn!" +"=admin)\")をここに入力してください。" + +#: ../help/help.inc:171 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of visible elements for this account type." +msgstr "" +"このアカウントタイプの可視要素数を減らすために、追加のLDAPフィルターをここに" +"入力してください。" + +#: ../help/help.inc:241 +msgid "" +"Use this to enter an additional LDAP filter (e.g. " +"\"(objectClass=passwordSelfReset)\") to reduce the number of accounts who " +"may use self service." +msgstr "" +"セルフ・サービスを使用し得るアカウント数を減らすために、追加のLDAPフィルター" +"(例 \"(objectClass=passwordSelfReset)\")をここに入力してください。" + +#: ../lib/modules/asteriskAccount.inc:188 +msgid "Use this to hide the caller ID." +msgstr "発信者IDを隠すために使用します。" + +#: ../lib/modules/zarafaDynamicGroup.inc:80 +#: ../lib/modules/zarafaContact.inc:72 ../lib/modules/zarafaGroup.inc:86 +#: ../lib/modules/zarafaAddressList.inc:68 ../lib/modules/zarafaUser.inc:81 +msgid "Use this to hide this entry from the address book." +msgstr "このエントリをアドレス帳から隠す場合に使用します。" + +#: ../lib/modules/sambaGroupMapping.inc:167 +msgid "" +"Use this to specify other groups or accounts from other domains as group " +"members." +msgstr "" +"他のドメインからのグループやアカウントをグループ・メンバーとして指定する場合" +"に使用します。" + +#: ../lib/modules/imapAccess.inc:87 +msgid "" +"Use wildcards like $uid$ for LDAP attributes of the current LAM admin user." +msgstr "" +"現在のLAM管理ユーザーの属性として $uid$ のようなワイルドカードを使用してくだ" +"さい。" + +#: ../lib/modules/pykotaBillingCode.inc:86 +msgid "Used balance for the billing code." +msgstr "課金コードに対する使用済み残高。" + +#: ../lib/modules/quota.inc:109 ../lib/modules/quota.inc:400 +msgid "Used blocks" +msgstr "使用したブロック" + +#: ../lib/modules/quota.inc:110 +msgid "Used blocks. 1000 blocks are usually 1MB" +msgstr "使用したブロック。1000ブロックは通常1MB." + +#: ../templates/schema/schema.php:268 +msgid "Used by attributes" +msgstr "使用されている属性" + +#: ../templates/schema/schema.php:237 +msgid "Used by object classes" +msgstr "使用されているオブジェクトクラス" + +#: ../lib/modules/sambaDomain.inc:98 +msgid "Used for calculating RIDs from UID/GID. Do not change if unsure." +msgstr "" +"RIDs を UID/GID から計算するために使用します。自信がないなら変更しないこと。" + +#: ../lib/modules/asteriskAccount.inc:220 +msgid "Used for registration context." +msgstr "登録コンテキストとして使用されます。" + +#: ../lib/modules/quota.inc:131 ../lib/modules/quota.inc:404 +msgid "Used inodes" +msgstr "使用したinode" + +#: ../lib/modules/quota.inc:132 +msgid "Used inodes (files)" +msgstr "使用したinode(ファイル)" + +#: ../lib/modules/asteriskAccount.inc:192 +msgid "Used to automatically hangup the call if no RTP traffic is received." +msgstr "RTPのトラフィックを受信しなくなった場合に自動的に通話を切断します。" + +#: ../lib/modules/asteriskAccount.inc:168 +#: ../lib/modules/asteriskAccount.inc:172 +msgid "" +"Used to limit SIP traffic to and from this peer to a certain IP or network." +msgstr "" +"このピアと特定のIPアドレスやネットワークとの間のSIPトラフィックを制限します。" + +#: ../lib/modules/asteriskAccount.inc:184 +msgid "Used to regularly check that a device is still online." +msgstr "" +"デバイスがオンラインであるかどうかを定期的にチェックするために使用します。" + +#: ../lib/types/sudo.inc:78 ../lib/modules/nisnetgroup.inc:220 +#: ../lib/modules/nisnetgroup.inc:586 ../lib/modules/nisMailAlias.inc:350 +msgid "User" +msgstr "ユーザ" + +#: ../lib/types/user.inc:62 +msgid "User accounts (e.g. Unix, Samba and Kolab)" +msgstr "ユーザアカウント(e.g. Unix, Samba and Kolab)" + +#: ../lib/modules/asteriskAccount.inc:127 +#: ../lib/modules/asteriskAccount.inc:270 +#: ../lib/modules/asteriskAccount.inc:340 +#: ../lib/modules/asteriskAccount.inc:598 +#: ../lib/modules/asteriskAccount.inc:986 +#: ../lib/modules/asteriskAccount.inc:1241 +msgid "User agent" +msgstr "ユーザ・エージェント" + +#: ../lib/modules/sambaSamAccount.inc:297 +#: ../lib/modules/sambaSamAccount.inc:1167 +msgid "User can change password" +msgstr "ユーザはパスワードを変更可能" + +#: ../lib/modules/inetOrgPerson.inc:163 ../lib/modules/inetOrgPerson.inc:844 +#: ../lib/modules/inetOrgPerson.inc:1507 ../lib/modules/inetOrgPerson.inc:2719 +#: ../lib/modules/inetOrgPerson.inc:3561 +msgid "User certificates" +msgstr "ユーザー証明書" + +#: ../lib/types/user.inc:529 +#, php-format +msgid "User count: %s" +msgstr "ユーザー・アカウント: %s" + +#: ../lib/modules/pykotaUser.inc:121 +msgid "User description." +msgstr "ユーザーの説明。" + +#: ../lib/modules/posixAccount.inc:511 +msgid "User description. If left empty first and last name will be used." +msgstr "" +"ユーザの説明。もしも空ならば、姓(last name)と名(first name)が使われます。" + +#: ../lib/modules/inetOrgPerson.inc:633 +msgid "User description. If left empty sur- and give name will be used." +msgstr "ユーザの説明。もしも空ならば、姓(surname)と名(given)が使われます。" + +#: ../lib/modules/account.inc:106 +msgid "User description. If left empty user name will be used." +msgstr "ユーザの説明。もしも空ならば、ユーザ名が使われます。" + +#: ../templates/schema/schema.php:204 +msgid "User modification" +msgstr "ユーザによる変更" + +#: ../lib/modules/mitKerberos.inc:224 ../lib/modules/mitKerberos.inc:250 +#: ../lib/modules/mitKerberos.inc:374 ../lib/modules/mitKerberos.inc:639 +#: ../lib/modules/mitKerberos.inc:779 ../lib/modules/sambaSamAccount.inc:299 +#: ../lib/modules/sambaSamAccount.inc:1173 ../lib/modules/windowsUser.inc:741 +#: ../lib/modules/heimdalKerberos.inc:106 +#: ../lib/modules/heimdalKerberos.inc:193 +#: ../lib/modules/heimdalKerberos.inc:220 +#: ../lib/modules/heimdalKerberos.inc:332 +#: ../lib/modules/heimdalKerberos.inc:549 +#: ../lib/modules/heimdalKerberos.inc:683 +msgid "User must change password" +msgstr "ユーザはパスワード変更が必要" + +#: ../templates/lists/changePassword.php:276 ../templates/login.php:334 +#: ../lib/types/alias.inc:91 ../lib/types/user.inc:91 +#: ../lib/selfService.inc:385 ../lib/modules/mitKerberos.inc:116 +#: ../lib/modules/mitKerberos.inc:211 ../lib/modules/mitKerberos.inc:249 +#: ../lib/modules/mitKerberos.inc:343 ../lib/modules/mitKerberos.inc:766 +#: ../lib/modules/selfRegistration.inc:393 +#: ../lib/modules/selfRegistration.inc:467 +#: ../lib/modules/selfRegistration.inc:475 ../lib/modules/account.inc:85 +#: ../lib/modules/account.inc:101 ../lib/modules/account.inc:124 +#: ../lib/modules/account.inc:126 ../lib/modules/account.inc:127 +#: ../lib/modules/account.inc:210 ../lib/modules/account.inc:230 +#: ../lib/modules/account.inc:254 ../lib/modules/uidObject.inc:45 +#: ../lib/modules/uidObject.inc:67 ../lib/modules/uidObject.inc:76 +#: ../lib/modules/uidObject.inc:85 ../lib/modules/uidObject.inc:100 +#: ../lib/modules/uidObject.inc:161 ../lib/modules/posixAccount.inc:113 +#: ../lib/modules/posixAccount.inc:114 ../lib/modules/posixAccount.inc:117 +#: ../lib/modules/posixAccount.inc:283 ../lib/modules/posixAccount.inc:409 +#: ../lib/modules/posixAccount.inc:506 ../lib/modules/posixAccount.inc:1420 +#: ../lib/modules/posixAccount.inc:1842 ../lib/modules/windowsUser.inc:107 +#: ../lib/modules/windowsUser.inc:264 ../lib/modules/windowsUser.inc:498 +#: ../lib/modules/windowsUser.inc:589 ../lib/modules/windowsUser.inc:689 +#: ../lib/modules/windowsUser.inc:1585 ../lib/modules/pykotaUser.inc:112 +#: ../lib/modules/pykotaUser.inc:208 ../lib/modules/pykotaUser.inc:268 +#: ../lib/modules/pykotaUser.inc:311 ../lib/modules/pykotaUser.inc:313 +#: ../lib/modules/pykotaUser.inc:340 ../lib/modules/pykotaUser.inc:889 +#: ../lib/modules/nisnetgroup.inc:152 ../lib/modules/nisnetgroup.inc:482 +#: ../lib/modules/inetOrgPerson.inc:95 ../lib/modules/inetOrgPerson.inc:163 +#: ../lib/modules/inetOrgPerson.inc:624 ../lib/modules/inetOrgPerson.inc:744 +#: ../lib/modules/inetOrgPerson.inc:1161 ../lib/modules/inetOrgPerson.inc:1164 +#: ../lib/modules/inetOrgPerson.inc:1908 ../lib/modules/inetOrgPerson.inc:2043 +#: ../lib/modules/inetOrgPerson.inc:2777 ../lib/modules/inetOrgPerson.inc:3569 +#: ../lib/modules/inetOrgPerson.inc:3594 +#: ../lib/modules/passwordSelfReset.inc:499 +#: ../lib/modules/passwordSelfReset.inc:843 +#: ../lib/modules/passwordSelfReset.inc:1015 +#: ../lib/modules/heimdalKerberos.inc:94 +#: ../lib/modules/heimdalKerberos.inc:180 +#: ../lib/modules/heimdalKerberos.inc:218 +#: ../lib/modules/heimdalKerberos.inc:293 +#: ../lib/modules/heimdalKerberos.inc:676 +msgid "User name" +msgstr "ユーザ名" + +#: ../lib/modules/windowsUser.inc:115 ../lib/modules/windowsUser.inc:449 +#: ../lib/modules/windowsUser.inc:529 ../lib/modules/windowsUser.inc:565 +#: ../lib/modules/windowsUser.inc:593 ../lib/modules/windowsUser.inc:698 +#: ../lib/modules/windowsUser.inc:1587 +msgid "User name (pre W2K)" +msgstr "ユーザ名 (W2K以前)" + +#: ../lib/modules/selfRegistration.inc:475 ../lib/modules/posixAccount.inc:121 +#: ../lib/modules/pykotaUser.inc:313 ../lib/modules/pykotaUser.inc:314 +#: ../lib/modules/pykotaUser.inc:317 ../lib/modules/pykotaUser.inc:318 +#: ../lib/modules/inetOrgPerson.inc:97 +msgid "User name already exists!" +msgstr "ユーザ名はすでに存在しています!" + +#: ../lib/modules/passwordSelfReset.inc:501 +msgid "User name and email address" +msgstr "ユーザー名とeメールアドレス" + +#: ../lib/modules/imapAccess.inc:103 ../lib/modules/imapAccess.inc:144 +msgid "User name attribute" +msgstr "ユーザー名属性" + +#: ../lib/modules/mitKerberos.inc:289 ../lib/modules/mitKerberos.inc:290 +#: ../lib/modules/selfRegistration.inc:467 ../lib/modules/account.inc:124 +#: ../lib/modules/account.inc:125 ../lib/modules/account.inc:127 +#: ../lib/modules/zarafaContact.inc:187 ../lib/modules/zarafaContact.inc:188 +#: ../lib/modules/uidObject.inc:85 ../lib/modules/zarafaGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:223 ../lib/modules/posixAccount.inc:114 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/zarafaUser.inc:419 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/windowsUser.inc:589 +#: ../lib/modules/windowsUser.inc:590 ../lib/modules/windowsUser.inc:593 +#: ../lib/modules/windowsUser.inc:594 ../lib/modules/pykotaUser.inc:311 +#: ../lib/modules/pykotaUser.inc:312 ../lib/modules/pykotaUser.inc:315 +#: ../lib/modules/pykotaUser.inc:316 ../lib/modules/nisnetgroup.inc:152 +#: ../lib/modules/inetOrgPerson.inc:95 ../lib/modules/inetOrgPerson.inc:96 +#: ../lib/modules/passwordSelfReset.inc:893 +#: ../lib/modules/passwordSelfReset.inc:1115 +#: ../lib/modules/heimdalKerberos.inc:253 +#: ../lib/modules/heimdalKerberos.inc:254 +msgid "" +"User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"ユーザ名に無効な文字が含まれています。有効な文字は: a-z, A-Z, 0-9, .-_ です!" + +#: ../lib/modules/windowsUser.inc:253 +msgid "User name for NIS." +msgstr "NISのユーザ名" + +#: ../lib/modules/posixAccount.inc:117 +msgid "User name in use. Selected next free user name." +msgstr "使用中のユーザ名です。次の空きユーザ名が選択されました。" + +#: ../lib/modules/mitKerberos.inc:117 ../lib/modules/account.inc:102 +#: ../lib/modules/pykotaUser.inc:113 ../lib/modules/inetOrgPerson.inc:745 +#: ../lib/modules/heimdalKerberos.inc:95 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_." +msgstr "生成されるグループの名前。有効な文字は: a-z, A-Z, 0-9, .-@_ です。" + +#: ../lib/modules/posixAccount.inc:507 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_. If user name is already used user name will be expanded with a " +"number. The next free number will be used." +msgstr "" +"作成しようとしているユーザーの名前。有効な文字は: a-z, A-Z, 0-9, @.-_ です。" +"もしもユーザー名が既に使われていたならば、ユーザー名に番号が付加されます。空" +"いている次の番号が使われます。" + +#: ../lib/modules/passwordSelfReset.inc:502 +#: ../lib/modules/passwordSelfReset.inc:867 +#: ../lib/modules/passwordSelfReset.inc:1035 +msgid "User name or email address" +msgstr "ユーザー名またはeメールアドレス" + +#: ../lib/modules/posixAccount.inc:270 ../lib/modules/posixAccount.inc:436 +msgid "User name suggestion" +msgstr "User name suggestion" + +#: ../lib/modules/pykotaUser.inc:125 +msgid "User name that is used for PyKota." +msgstr "PyKotaで使用するユーザー名。" + +#: ../lib/modules/windowsUser.inc:752 +msgid "User profile" +msgstr "ユーザー・プロファイル" + +#: ../lib/modules/selfRegistration.inc:45 +msgid "User self registration" +msgstr "ユーザーの自己登録" + +#: ../lib/modules/zarafaUser.inc:128 ../lib/modules/zarafaUser.inc:275 +#: ../lib/modules/zarafaUser.inc:373 ../lib/modules/zarafaUser.inc:614 +#: ../lib/modules/zarafaUser.inc:1233 ../lib/modules/zarafaUser.inc:1322 +#: ../lib/modules/zarafaUser.inc:1805 +msgid "User server" +msgstr "ユーザ・サーバー" + +#: ../lib/types/user.inc:53 ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:97 +#: ../lib/modules/posixAccount.inc:209 ../lib/modules/zarafaUser.inc:1779 +#: ../lib/modules/sudoRole.inc:74 ../lib/modules/sudoRole.inc:98 +#: ../lib/modules/sudoRole.inc:159 ../lib/modules/sudoRole.inc:216 +#: ../lib/modules/sudoRole.inc:228 ../lib/modules/sudoRole.inc:316 +#: ../lib/modules/sudoRole.inc:806 +msgid "Users" +msgstr "ユーザ" + +#: ../lib/modules/zarafaContact.inc:80 ../lib/modules/zarafaGroup.inc:94 +#: ../lib/modules/zarafaUser.inc:105 +msgid "Users or groups that may directly send email as this user." +msgstr "このユーザからメールを直接発信できるユーザまたはグループ。" + +#: ../lib/modules/posixGroup.inc:489 +msgid "" +"Users who are member of the current group. Users who have set their primary " +"group to this group will not be shown." +msgstr "" +"このグループに所属しているユーザ。このグループをプライマリに設定されている" +"ユーザは表示されません。" + +#: ../lib/modules/posixGroup.inc:493 +msgid "" +"Users who will become member of the current group. User names are separated " +"by semicolons." +msgstr "" +"このグループのメンバーとなるユーザ。ユーザ名はセミコロンによって区切られま" +"す。" + +#: ../templates/tests/lamdaemonTest.php:207 +#, php-format +msgid "Using %s as lamdaemon remote server." +msgstr "lamdaemonリモートサーバとして %s を使用します。" + +#: ../templates/tests/lamdaemonTest.php:229 +#, php-format +msgid "Using %s to connect to remote server." +msgstr "%sを使用してリモートサーバーに接続します。" + +#: ../lib/modules/posixAccount.inc:446 +msgid "" +"Usually, users are not added to groups as memberUid if they have this group " +"as primary group. If your application ignores primary groups then you can " +"select this option to override this behaviour." +msgstr "" +"通常は、プライマリグループがこのグループであるユーザはmemberUidに追加されませ" +"ん。もし使用するアプリケーションがプライマリグループを無視する場合は、このオ" +"プションを有効にして、この動作を変更してください。" + +#: ../templates/3rdParty/pla/lib/export_functions.php:543 +msgid "VCARD 2.1 Export" +msgstr "VCARD 2.1 Export" + +#: ../templates/config/mainmanage.php:360 +msgid "Valid to" +msgstr "有効期限" + +#: ../help/help.inc:92 +msgid "Valid users" +msgstr "有効なユーザ" + +#: ../lib/modules/imapAccess.inc:83 ../lib/modules/imapAccess.inc:121 +msgid "Validate server certificate" +msgstr "サーバー証明書の検証" + +#: ../lib/modules/customFields.inc:108 ../lib/modules/customFields.inc:1899 +msgid "Validation expression" +msgstr "検証式" + +#: ../lib/modules/customFields.inc:112 ../lib/modules/customFields.inc:1904 +msgid "Validation message" +msgstr "検証メッセージ" + +#: ../templates/multiEdit.php:120 ../lib/modules/customFields.inc:2959 +msgid "Value" +msgstr "値" + +#: ../lib/modules/customFields.inc:116 ../lib/modules/customFields.inc:2749 +msgid "Value for \"checked\"" +msgstr "\"checked\"に対応する値" + +#: ../lib/modules/customFields.inc:120 ../lib/modules/customFields.inc:2755 +msgid "Value for \"unchecked\"" +msgstr "\"unchecked\"に対応する値" + +#: ../lib/modules/customFields.inc:140 ../lib/modules/customFields.inc:2955 +msgid "Value mapping" +msgstr "値マッピング" + +#: ../templates/3rdParty/pla/lib/import_functions.php:512 +msgid "Value to delete does not exist in DN" +msgstr "削除すべき値がDNに存在しません!" + +#: ../lib/modules/puppetClient.inc:100 ../lib/modules/puppetClient.inc:104 +#: ../lib/modules/puppetClient.inc:146 ../lib/modules/puppetClient.inc:156 +#: ../lib/modules/puppetClient.inc:169 ../lib/modules/puppetClient.inc:277 +#: ../lib/modules/puppetClient.inc:439 +msgid "Variables" +msgstr "変数" + +#: ../templates/serverInfo.php:134 +msgid "Vendor name" +msgstr "ベンダー名" + +#: ../templates/serverInfo.php:140 +msgid "Vendor version" +msgstr "ベンダー・バージョン" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +#, php-format +msgid "View %s children" +msgstr "子を %s 個表示" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +msgid "View 1 child" +msgstr "子を1つ表示" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1230 +msgid "View the children of this object" +msgstr "このオブジェクトの子を表示" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1028 +msgid "Viewing entry in read-only mode." +msgstr "エントリを読み取り専用モードで表示。" + +#: ../lib/modules/asteriskVoicemail.inc:119 +#: ../lib/modules/asteriskVoicemail.inc:126 +#: ../lib/modules/asteriskVoicemail.inc:143 +#: ../lib/modules/asteriskVoicemail.inc:196 +#: ../lib/modules/asteriskVoicemail.inc:260 +#: ../lib/modules/asteriskVoicemail.inc:372 +msgid "Voicemail context" +msgstr "ボイスメール・コンテキスト" + +#: ../lib/modules/asteriskVoicemail.inc:96 +msgid "Voicemail mailbox for this account." +msgstr "このアカウントに対するボイスメール・メールボックス" + +#: ../templates/login.php:496 +msgid "Want more features? Get LAM Pro!" +msgstr "Want more features? Get LAM Pro!" + +#: ../templates/config/mainmanage.php:408 +#: ../templates/3rdParty/pla/lib/page.php:76 +msgid "Warning" +msgstr "Warning" + +#: ../templates/delete.php:234 ../lib/modules/nisMailAliasUser.inc:505 +#: ../lib/modules/posixAccount.inc:850 ../lib/modules/posixAccount.inc:903 +#: ../lib/modules/organizationalRoleUser.inc:201 +#: ../lib/modules/organizationalRoleUser.inc:218 +#: ../lib/modules/windowsUser.inc:1123 ../lib/modules/groupOfNamesUser.inc:217 +#: ../lib/modules/groupOfNamesUser.inc:264 ../lib/modules.inc:1900 +#, php-format +msgid "Was unable to add attributes to DN: %s." +msgstr "DN %s に属性を追加できませんでした。" + +#: ../lib/modules/nisMailAliasUser.inc:494 ../lib/modules.inc:1863 +#, php-format +msgid "Was unable to create DN: %s." +msgstr "DN %s を作成できませんでした。" + +#: ../templates/delete.php:344 ../templates/delete.php:353 +#: ../lib/modules/nisMailAliasUser.inc:471 +#, php-format +msgid "Was unable to delete DN: %s." +msgstr "DN %s を削除できませんでした。" + +#: ../templates/lists/changePassword.php:749 +#: ../templates/lists/changePassword.php:787 +#: ../templates/lists/changePassword.php:833 ../templates/delete.php:225 +#, php-format +msgid "Was unable to modify attributes from DN: %s." +msgstr "DN %s の属性を変更できませんでした。" + +#: ../lib/modules/posixAccount.inc:888 ../lib/modules/windowsUser.inc:1149 +#: ../lib/modules/windowsUser.inc:1558 ../lib/modules/groupOfNamesUser.inc:249 +#: ../lib/modules.inc:1882 +#, php-format +msgid "Was unable to modify attributes of DN: %s." +msgstr "DN: %s の属性を変更できませんでした。" + +#: ../templates/delete.php:243 ../lib/modules/nisMailAliasUser.inc:482 +#: ../lib/modules/posixAccount.inc:858 ../lib/modules/posixAccount.inc:920 +#: ../lib/modules/organizationalRoleUser.inc:206 +#: ../lib/modules/organizationalRoleUser.inc:229 +#: ../lib/modules/windowsUser.inc:1136 ../lib/modules/groupOfNamesUser.inc:222 +#: ../lib/modules/groupOfNamesUser.inc:278 ../lib/modules.inc:1913 +#, php-format +msgid "Was unable to remove attributes from DN: %s." +msgstr "DN %s の属性を削除できませんでした。" + +#: ../lib/modules/asteriskExtension.inc:905 ../lib/modules.inc:1843 +#, php-format +msgid "Was unable to rename DN: %s." +msgstr "DNを変更できませんでした: %s。" + +#: ../lib/modules/windowsUser.inc:188 ../lib/modules/windowsUser.inc:374 +#: ../lib/modules/windowsUser.inc:516 ../lib/modules/windowsUser.inc:543 +#: ../lib/modules/windowsUser.inc:720 ../lib/modules/windowsUser.inc:1604 +#: ../lib/modules/windowsUser.inc:1727 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:214 ../lib/modules/inetOrgPerson.inc:467 +#: ../lib/modules/inetOrgPerson.inc:587 ../lib/modules/inetOrgPerson.inc:732 +#: ../lib/modules/inetOrgPerson.inc:736 ../lib/modules/inetOrgPerson.inc:1422 +#: ../lib/modules/inetOrgPerson.inc:1425 ../lib/modules/inetOrgPerson.inc:1918 +#: ../lib/modules/inetOrgPerson.inc:2467 ../lib/modules/inetOrgPerson.inc:3559 +#: ../lib/modules/inetOrgPerson.inc:3584 +msgid "Web site" +msgstr "ウェブ・サイト" + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Wednesday" +msgstr "水曜日" + +#: ../lib/modules/bindDLZ.inc:180 ../lib/modules/bindDLZ.inc:184 +#: ../lib/modules/bindDLZ.inc:387 ../lib/modules/bindDLZ.inc:503 +#: ../lib/modules/bindDLZ.inc:1353 ../lib/modules/bindDLZ.inc:1600 +msgid "Weight" +msgstr "重み" + +#: ../lib/selfService.inc:384 +msgid "Welcome to LAM self service. Please enter your user name and password." +msgstr "" +"LAMセルフ・サービスへようこそ。ユーザー名とパスワードを入力してください。" + +#: ../lib/modules/sambaSamAccount.inc:564 +msgid "Western Europe Time, London, Lisbon" +msgstr "Western Europe Time, London, Lisbon" + +#: ../lib/modules/passwordSelfReset.inc:179 +msgid "What is the name of your favourite pet?" +msgstr "あなたのお気に入りのペットの名前は何ですか?" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +msgid "" +"When performing a recursive copy, only copy those entries which match this " +"filter." +msgstr "" +"再帰的コピーを実行する際に、このフィルタにマッチするエントリだけがコピーされ" +"ます。" + +#: ../lib/modules/zarafaUser.inc:101 +msgid "" +"When the hard quota limit is reached, email can not be delivered to that " +"user anymore." +msgstr "" +"ハードquotaリミットに達した場合、該当ユーザーへのeメールは一切配送されませ" +"ん。" + +#: ../help/help.inc:70 +msgid "" +"When using ldaps:// or TLS be sure to use exactly the same IP/domain name as " +"in your certificate!" +msgstr "" +"ldaps:// またはTLSを使う時は、証明書のIP/ドメイン名と正確に一致するものを使用" +"してください!" + +#: ../templates/lists/changePassword.php:410 +#: ../templates/lists/changePassword.php:441 ../lib/types/user.inc:292 +#: ../lib/types/user.inc:380 ../lib/types/user.inc:412 +#: ../lib/types/user.inc:845 ../lib/modules/windowsHost.inc:64 +#: ../lib/modules/windowsUser.inc:89 ../lib/modules/windowsGroup.inc:99 +msgid "Windows" +msgstr "Windows" + +#: ../lib/modules/sambaSamAccount.inc:337 ../lib/modules/windowsUser.inc:112 +msgid "Windows domain name of account." +msgstr "アカウントのWindowsドメイン名" + +#: ../lib/modules/sambaSamAccount.inc:211 +#: ../lib/modules/sambaSamAccount.inc:470 +#: ../lib/modules/sambaSamAccount.inc:1261 +#: ../lib/modules/sambaSamAccount.inc:1781 +#: ../lib/modules/sambaSamAccount.inc:1906 +#: ../lib/modules/sambaGroupMapping.inc:111 +#: ../lib/modules/sambaGroupMapping.inc:374 +#: ../lib/modules/sambaGroupMapping.inc:539 +msgid "Windows group" +msgstr "Windowsグループ" + +#: ../lib/modules/sambaGroupMapping.inc:150 +msgid "Windows group name" +msgstr "Windowsグループ名" + +#: ../lib/modules/sambaGroupMapping.inc:163 +msgid "Windows group type." +msgstr "Windowsグループタイプ" + +#: ../lib/modules/sambaSamAccount.inc:394 +msgid "" +"Windows password hashes are saved by default as NT and LM hashes. LM hashes " +"are insecure and only needed for old versions of Windows. You should disable " +"them unless you really need them." +msgstr "" +"既定の動作では、Windowsパスワード・ハッシュはNTハッシュとLMハッシュとして保存" +"されます。LMハッシュはセキュアでないため、古いバージョンのWindowsでのみ必要と" +"なります。本当に必要な場合を除いて、無効にすべきです。" + +#: ../lib/modules/sambaSamAccount.inc:320 +msgid "Windows primary group" +msgstr "Windowsプライマリグループ" + +#: ../lib/modules/sambaSamAccount.inc:323 +msgid "Windows primary group SID" +msgstr "WindowsプライマリグループSID" + +#: ../lib/modules/sambaGroupMapping.inc:159 +msgid "Windows-Domain name of group." +msgstr "グループのWindowsドメイン名。" + +#: ../lib/modules/inetOrgPerson.inc:1433 +msgid "Work details" +msgstr "職業の詳細" + +#: ../lib/modules/sambaDomain.inc:146 +msgid "Workgroup" +msgstr "ワークグループ" + +#: ../lib/modules/sambaSamAccount.inc:235 +#: ../lib/modules/sambaSamAccount.inc:366 +#: ../lib/modules/sambaSamAccount.inc:1517 +#: ../lib/modules/sambaSamAccount.inc:1925 +msgid "Working directory" +msgstr "作業ディレクトリ" + +#: ../lib/modules/sambaSamAccount.inc:367 +msgid "Working directory of initial program." +msgstr "初期プログラムの作業ディレクトリ。" + +#: ../templates/config/confmain.php:318 +msgid "Write" +msgstr "書く" + +#: ../templates/config/confmain.php:260 +msgid "Write access" +msgstr "書き込みアクセス" + +#: ../templates/login.php:579 ../templates/login.php:637 +#: ../templates/selfService/selfServiceLogin.php:160 +#: ../templates/selfService/selfServiceLogin.php:186 +msgid "Wrong password/user name combination. Please try again." +msgstr "誤ったパスワード/ユーザ名の組み合わせです。やり直してください。" + +#: ../lib/modules/imapAccess.inc:188 +msgid "Wrong quota format. Quota must be numeric." +msgstr "無効なクオータ書式です。クオータは数値でなくてはなりません。" + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/pykotaPrinter.inc:51 +#: ../lib/modules/pykotaPrinter.inc:170 ../lib/modules/qmailGroup.inc:322 +#: ../lib/modules/qmailGroup.inc:364 ../lib/modules/qmailGroup.inc:1030 +#: ../lib/modules/qmailGroup.inc:1031 ../lib/modules/qmailGroup.inc:1073 +#: ../lib/modules/qmailGroup.inc:1079 ../lib/modules/imapAccess.inc:121 +msgid "Yes" +msgstr "はい" + +#: ../templates/lists/changePassword.php:528 +#: ../lib/modules/ppolicyUser.inc:344 ../lib/modules/ppolicyUser.inc:421 +msgid "You are reusing an old password. Please choose a different password." +msgstr "古いパスワードを再使用しています。異なるパスワードを使用してください。" + +#: ../lib/modules/account.inc:126 ../lib/modules/posixGroup.inc:607 +#: ../lib/modules/posixAccount.inc:113 ../lib/modules/posixAccount.inc:115 +msgid "" +"You are using capital letters. This can cause problems because Windows is " +"not case-sensitive." +msgstr "" +"大文字が使われています。Windowsは大文字と小文字を区別しないため、問題が発生す" +"る場合があります。" + +#: ../lib/lists.inc:1073 +#, php-format +msgid "" +"You can download your PDF files {link=%s}{color=#d2131a}here{endcolor}" +"{endlink}." +msgstr "" +"あなた専用のPDFファイルを {link=%s}{color=#d2131a}ここ{endcolor}{endlink} か" +"らダウンロードできます" + +#: ../templates/initsuff.php:181 +msgid "" +"You can setup the LDAP suffixes for all account types in your LAM server " +"profile on tab \"Account types\"." +msgstr "" +"LAMサーバー・プロファイルの\"アカウント種別\"タブで、全てのアカウント・タイプ" +"に対するLDAPサフィックスを設定できます。" + +#: ../help/help.inc:110 +msgid "" +"You can specify if LAM allows full write access, password changes or only " +"read access." +msgstr "" +"LAMに完全な書き込み、パスワード変更のみ、または読み込みのみのいずれの権限を許" +"可するかを指定できます。" + +#: ../lib/modules/windowsUser.inc:104 ../lib/modules/windowsUser.inc:125 +#: ../lib/modules/windowsUser.inc:141 ../lib/modules/windowsUser.inc:206 +#: ../lib/modules/windowsUser.inc:211 ../lib/modules/windowsUser.inc:228 +#: ../lib/modules/windowsUser.inc:233 ../lib/modules/windowsUser.inc:249 +#: ../lib/modules/inetOrgPerson.inc:721 ../lib/modules/inetOrgPerson.inc:726 +msgid "" +"You can use \"$user\", \"$firstname\" and \"$lastname\" as wildcards for " +"user name, first and last name." +msgstr "" +"ユーザー名、名及び姓を示すワイルドカードとして、\"$user\", \"$firstname\" 及" +"び \"$lastname\" を使用できます。" + +#: ../help/help.inc:172 +msgid "" +"You can use the wildcard @@LOGIN_DN@@ which will be substituted with the DN " +"of the user who is currently logged in to LAM." +msgstr "" +"LAMに現在ログインしているユーザーのDNに置換されるワイルドカードとして " +"@@LOGIN_DN@@ を使用できます。" + +#: ../lib/modules/zarafaDynamicGroup.inc:84 +#: ../lib/modules/zarafaContact.inc:76 ../lib/modules/zarafaGroup.inc:90 +#: ../lib/modules/zarafaAddressList.inc:72 ../lib/modules/zarafaUser.inc:85 +msgid "You can use this to temporarily deactivate the Zarafa extension." +msgstr "Zarafa拡張を一時的に無効化させるために使用する事が出来ます。" + +#: ../lib/modules/passwordSelfReset.inc:126 +#: ../lib/modules/passwordSelfReset.inc:136 ../help/help.inc:253 +msgid "" +"You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. " +"@@uid@@ for the user name)." +msgstr "" +"LDAP属性に対応するワイルドカードを @@attributes@@ のような書式(例. ユーザ名" +"は @@uid@@)で使用することができます。" + +#: ../lib/modules/customScripts.inc:65 ../lib/modules/customScripts.inc:78 +msgid "" +"You can use wildcards in the format $wildcard$ which are replaced by the " +"LDAP attribute with the same name. For multi-value attributes the values " +"will be separated by commas." +msgstr "" +"同じ名前のLDAP属性で置き換えられるワイルドカードを $wildcard$ の形式で指定で" +"きます。複数値を持つ属性の場合は、値はカンマで区切られます。" + +#: ../lib/modules/zarafaContact.inc:191 +msgid "" +"You cannot add the Zarafa and Zarafa contact extension at the same time." +msgstr "ZarafaとZarafa連絡先拡張は同時に追加できません。" + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:52 +msgid "You cannot perform updates while server is in read-only mode" +msgstr "サーバが読み取り専用モードの場合に更新を行うことは出来ません。" + +#: ../templates/3rdParty/pla/htdocs/rename.php:26 +msgid "You cannot rename an entry which has child entries." +msgstr "子エントリを持つエントリをリネームすることは出来ません。" + +#: ../templates/config/confmain.php:505 +msgid "" +"You cannot use SSL and TLS encryption at the same time. Please use either " +"\"ldaps://\" or TLS." +msgstr "" +"SSL と TLS 暗号化は同時に利用できません。 \"ldaps://\" または TLS のいずれか" +"を使用してください。" + +#: ../templates/3rdParty/pla/htdocs/rename.php:32 +msgid "You did not change the RDN" +msgstr "RDNは変更されませんでした。" + +#: ../templates/tests/schemaTest.php:61 +msgid "" +"You do not have the required access rights or the LDAP schema is not " +"published by your server." +msgstr "" +"必要なアクセス権が与えられていないか、またはLDAPスキーマがサーバ上に存在しま" +"せん。" + +#: ../lib/modules/dhcp_settings.inc:322 ../lib/modules/dhcp_settings.inc:323 +msgid "You entered one or more invalid DNS servers." +msgstr "誤ったDNSサーバーが入力されています。" + +#: ../templates/3rdParty/pla/lib/Template.php:417 +#: ../templates/3rdParty/pla/lib/Template.php:504 +msgid "You left the attribute value blank. Please go back and try again." +msgstr "属性値が未入力です。前に戻って入力してください。" + +#: ../templates/3rdParty/pla/htdocs/create.php:51 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:45 +#, php-format +msgid "You left the value blank for required attribute (%s)." +msgstr "必須属性 %s が記入されていません。" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:171 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:209 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:133 +msgid "You made no changes" +msgstr "変更されませんでした。" + +#: ../templates/config/mainmanage.php:172 +#: ../templates/config/mainmanage.php:178 +#: ../templates/config/mainmanage.php:190 +msgid "You might need to restart your webserver for changes to take effect." +msgstr "" +"変更を反映させるために、ウェブサーバーを再起動させる必要があるかも知れませ" +"ん。" + +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#, php-format +msgid "You might want to use %s instead of %s." +msgstr "%s を %s の代わりに使うべきかも知れません。" + +#: ../templates/3rdParty/pla/lib/import_functions.php:95 +msgid "You must either upload a file or provide an import in the text box." +msgstr "" +"ファイルをアップロードするか、テキストボックスにインポート内容を入力する必要" +"があります。" + +#: ../lib/modules/groupOfNames.inc:210 ../lib/modules/groupOfNames.inc:211 +msgid "You need to add at least one member to this group." +msgstr "少なくとも一つのメンバーをこのグループへ追加する必要があります。" + +#: ../lib/modules/passwordSelfReset.inc:229 +msgid "You specified an answer but no security question." +msgstr "秘密の質問無しで回答のみが記入されています。" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1136 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "You will be prompted to confirm this decision" +msgstr "この決定を確認するように促されます。" + +#: ../lib/modules/imapAccess.inc:184 +msgid "Your IMAP domains and email address domain do not match." +msgstr "IMAPドメインとeメール・アドレスのドメインが食い違っています。" + +#: ../templates/tests/lamdaemonTest.php:234 +#, php-format +msgid "" +"Your LAM admin user (%s) must be a valid Unix account to work with lamdaemon!" +msgstr "" +"lamdaemonと連携するには、LAM管理ユーザ(%s)が有効なunixアカウントでなくてはな" +"りません。" + +#: ../lib/lamdaemon.inc:61 ../lib/lamdaemon.inc:66 +msgid "" +"Your LAM admin user must be a valid Unix account to work with lamdaemon!" +msgstr "" +"lamdaemonと連携するには、LAM管理ユーザが有効なunixアカウントでなくてはなりま" +"せん。" + +#: ../lib/modules/imapAccess.inc:186 +msgid "Your LAM login password was not accepted by the IMAP server." +msgstr "LAMログイン・パスワードがIMAPサーバーに拒否されました。" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:125 +msgid "" +"Your PHP configuration has disabled file uploads. Please check php.ini " +"before proceeding." +msgstr "" +"PHP設定によってファイルアップロードが禁止されています。実行前に php.ini を確" +"認してください。" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:16 +msgid "" +"Your PHP.INI does not have file_uploads = ON. Please enable file uploads in " +"PHP." +msgstr "" +"PHP.INI に file_uploads = ON が含まれていません. PHPでファイルアップロードを" +"有効にしてください。" + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:404 +msgid "" +"Your changes cannot be saved until you make the file writable for the " +"webserver user." +msgstr "" +"webサーバーのユーザーによる書き込みが出来るようになるまでは、変更は保存されま" +"せん。." + +#: ../lib/modules/selfRegistration.inc:721 +msgid "" +"Your new account was created but post processing failed. Please contact your " +"local administrator." +msgstr "" +"新しいアカウントは生成されましたが、後処理に失敗しました。最寄りの管理者に連" +"絡してください。" + +#: ../lib/modules/selfRegistration.inc:718 +msgid "" +"Your new account was successfully created. Please return to login to change " +"your user data." +msgstr "" +"あなたの新しいアカウント<が生成されました。ユーザーデータを変更するために、ロ" +"グインへ戻ってください。" + +#: ../lib/account.inc:1202 ../lib/modules/windowsUser.inc:1870 +msgid "" +"Your password does not meet the password strength qualifications. Please " +"retry with another one." +msgstr "" +"あなたのパスワードは、パスワード強度の要件を満たしていません。違うパスワード" +"でやり直してください。" + +#: ../lib/modules/passwordSelfReset.inc:563 +msgid "Your password was changed to @@newPassword@@." +msgstr "あなたのパスワードは @@newPassword@@ に変更されました。" + +#: ../lib/security.inc:192 +msgid "Your session expired, click here to go back to the login page." +msgstr "" +"セッションが期限切れになりました。ここをクリックしてログインページに戻ってく" +"ださい。" + +#: ../templates/login.php:296 +#: ../templates/selfService/selfServiceLogin.php:113 +msgid "Your session expired, please log in again." +msgstr "セッションが期限切れになりました。ログインをやり直してください。" + +#: ../templates/login.php:301 ../templates/login.php:306 +#: ../templates/login.php:315 +msgid "Your settings were successfully saved." +msgstr "設定を保存しました。" + +#: ../lib/modules/windowsUser.inc:346 ../lib/modules/inetOrgPerson.inc:501 +#: ../lib/modules/inetOrgPerson.inc:533 +msgid "YourCompany" +msgstr "YourCompany" + +#: ../lib/modules/zarafaGroup.inc:56 ../lib/modules/zarafaUser.inc:61 +#: ../lib/modules/zarafaServer.inc:56 +msgid "Zarafa" +msgstr "Zarafa" + +#: ../lib/modules/zarafaAddressList.inc:51 +msgid "Zarafa address list" +msgstr "Zarafaアドレス一覧" + +#: ../lib/types/zarafaAddressListType.inc:53 +#: ../lib/types/zarafaAddressListType.inc:62 +msgid "Zarafa address lists" +msgstr "Zarafaアドレス一覧" + +#: ../lib/modules/zarafaContact.inc:56 +msgid "Zarafa contact" +msgstr "Zarafa連絡先" + +#: ../lib/modules/zarafaDynamicGroup.inc:51 +msgid "Zarafa dynamic group" +msgstr "Zarafa dynamic group" + +#: ../lib/types/zarafaDynamicGroupType.inc:53 +#: ../lib/types/zarafaDynamicGroupType.inc:62 +msgid "Zarafa dynamic groups" +msgstr "Zarafa dynamic groups" + +#: ../lib/modules/zarafaDynamicGroup.inc:95 +#: ../lib/modules/zarafaDynamicGroup.inc:183 +#: ../lib/modules/zarafaContact.inc:106 ../lib/modules/zarafaContact.inc:123 +#: ../lib/modules/zarafaGroup.inc:112 ../lib/modules/zarafaGroup.inc:127 +#: ../lib/modules/zarafaAddressList.inc:83 +#: ../lib/modules/zarafaAddressList.inc:156 ../lib/modules/zarafaUser.inc:171 +#: ../lib/modules/zarafaUser.inc:394 ../lib/modules/zarafaUser.inc:1773 +#: ../lib/modules/zarafaServer.inc:92 ../lib/modules/zarafaServer.inc:153 +msgid "Zarafa schema" +msgstr "Zarafaスキーマ" + +#: ../lib/modules/zarafaUser.inc:160 ../lib/modules/zarafaUser.inc:164 +msgid "Zarafa will store the user's archives on these servers." +msgstr "Zarafaはユーザのアーカイブをこれらのサーバ上に作成します。" + +#: ../lib/types/bind.inc:78 ../lib/modules/ddns.inc:102 +#: ../lib/modules/ddns.inc:113 ../lib/modules/ddns.inc:128 +#: ../lib/modules/ddns.inc:394 ../lib/modules/ddns.inc:425 +msgid "Zone name" +msgstr "ゾーン名" + +#: ../lib/modules/ddns.inc:103 +msgid "Zone name for the DNS server (e.g. company.local)." +msgstr "DNSサーバーのゾーン名(例 company.local)。" + +#: ../lib/modules/sambaSamAccount.inc:496 ../lib/modules/windowsUser.inc:438 +msgid "\\\\server\\homes\\smiller" +msgstr "\\\\server\\homes\\smiller" + +#: ../lib/modules/sambaSamAccount.inc:504 ../lib/modules/windowsUser.inc:420 +msgid "\\\\server\\profiles\\smiller" +msgstr "\\\\server\\profiles\\smiller" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "add value" +msgstr "値の追加" + +#: ../lib/modules/zarafaDynamicGroup.inc:118 ../lib/modules/posixGroup.inc:461 +#: ../lib/modules/zarafaAddressList.inc:106 ../lib/modules/pykotaGroup.inc:150 +#: ../lib/modules/pykotaGroup.inc:159 ../lib/modules/nisnetgroup.inc:114 +#: ../lib/modules/organizationalRole.inc:116 +#: ../lib/modules/windowsGroup.inc:237 ../lib/modules/groupOfNames.inc:128 +msgid "adminstrators" +msgstr "管理者" + +#: ../templates/config/mainmanage.php:394 +#: ../templates/config/mainmanage.php:430 +msgid "all" +msgstr "全て" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:112 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:95 +msgid "attribute deleted" +msgstr "属性が削除されました" + +#: ../lib/modules/sudoRole.inc:148 +msgid "backupRootFileSystem" +msgstr "backupRootFileSystem" + +#: ../lib/modules/pykotaBillingCode.inc:103 +msgid "billingCode01" +msgstr "billingCode01" + +#: ../templates/3rdParty/pla/lib/functions.php:2298 +msgid "browse" +msgstr "閲覧" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "bytes" +msgstr "バイト" + +#: ../templates/schema/schema.php:220 +msgid "character" +msgstr "文字" + +#: ../templates/schema/schema.php:219 +msgid "characters" +msgstr "文字" + +#: ../lib/modules/freeRadius.inc:179 +msgid "company.com" +msgstr "company.com" + +#: ../templates/3rdParty/pla/lib/PageRender.php:619 +#: ../templates/3rdParty/pla/lib/PageRender.php:988 +msgid "confirm" +msgstr "確認" + +#: ../help/help.inc:82 +msgid "dc=yourcompany,dc=com" +msgstr "dc=yourcompany,dc=com" + +#: ../templates/config/mainmanage.php:429 ../lib/modules/ppolicyUser.inc:122 +msgid "default" +msgstr "デフォルト値" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:205 +msgid "delete" +msgstr "削除" + +#: ../templates/3rdParty/pla/lib/PageRender.php:677 +msgid "delete attribute" +msgstr "属性の削除" + +#: ../lib/modules/sambaSamAccount.inc:1538 +#: ../lib/modules/sambaSamAccount.inc:1945 ../lib/modules/zarafaUser.inc:619 +#: ../lib/modules/zarafaUser.inc:1285 ../lib/modules/zarafaUser.inc:1326 +msgid "disabled" +msgstr "禁止" + +#: ../lib/modules/sambaSamAccount.inc:1549 +#: ../lib/modules/sambaSamAccount.inc:1956 +msgid "disconnect" +msgstr "切断" + +#: ../lib/modules/windowsUser.inc:468 ../lib/modules/windowsGroup.inc:245 +msgid "domain" +msgstr "ドメイン" + +#: ../templates/3rdParty/pla/lib/PageRender.php:664 +msgid "download value" +msgstr "ダウンロード" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:206 +msgid "edit" +msgstr "編集" + +#: ../lib/modules/zarafaUser.inc:619 ../lib/modules/zarafaUser.inc:1280 +#: ../lib/modules/zarafaUser.inc:1326 +msgid "enabled" +msgstr "有効化されました" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:481 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:307 +msgid "export" +msgstr "エクスポート" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:123 +msgid "false" +msgstr "false" + +#: ../lib/modules/ppolicy.inc:37 +msgid "force" +msgstr "force" + +#: ../lib/modules/sambaSamAccount.inc:1557 +#: ../lib/modules/sambaSamAccount.inc:1964 +msgid "from any client" +msgstr "任意のクライアントから" + +#: ../lib/modules/sambaSamAccount.inc:1558 +#: ../lib/modules/sambaSamAccount.inc:1965 +msgid "from previous client only" +msgstr "前回のクライアントからのみ" + +#: ../lib/modules/posixAccount.inc:306 ../lib/modules/posixAccount.inc:366 +#: ../lib/modules/nisnetgroup.inc:128 ../lib/modules/groupOfNamesUser.inc:73 +msgid "group01,group02" +msgstr "group01,group02" + +#: ../lib/modules/freeRadius.inc:187 +msgid "group01;group02" +msgstr "group01;group02" + +#: ../lib/modules/zarafaDynamicGroup.inc:132 +#: ../lib/modules/zarafaGroup.inc:164 +msgid "group1@company.com,group2@company.com" +msgstr "group1@company.com,group2@company.com" + +#: ../lib/modules/zarafaDynamicGroup.inc:126 +#: ../lib/modules/zarafaGroup.inc:172 ../lib/modules/windowsGroup.inc:221 +msgid "group@company.com" +msgstr "group@company.com" + +#: ../templates/3rdParty/pla/lib/PageRender.php:471 +msgid "hint" +msgstr "ヒント" + +#: ../lib/modules/quota.inc:198 ../lib/modules/quota.inc:200 +msgid "hours" +msgstr "時間" + +#: ../lib/modules/windowsUser.inc:376 ../lib/modules/windowsUser.inc:382 +#: ../lib/modules/inetOrgPerson.inc:469 +msgid "http://www.company.com" +msgstr "http://www.company.com" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:294 +msgid "import" +msgstr "インポート" + +#: ../lib/modules/sambaSamAccount.inc:1542 +#: ../lib/modules/sambaSamAccount.inc:1949 +msgid "input off, notify off" +msgstr "入力 off, 通知 off" + +#: ../lib/modules/sambaSamAccount.inc:1541 +#: ../lib/modules/sambaSamAccount.inc:1948 +msgid "input off, notify on" +msgstr "入力 off, 通知 on" + +#: ../lib/modules/sambaSamAccount.inc:1540 +#: ../lib/modules/sambaSamAccount.inc:1947 +msgid "input on, notify off" +msgstr "入力 on, 通知 off" + +#: ../lib/modules/sambaSamAccount.inc:1539 +#: ../lib/modules/sambaSamAccount.inc:1946 +msgid "input on, notify on" +msgstr "入力 on, 通知 on" + +#: ../help/help.inc:64 +msgid "" +"ldap://localhost:389 connects to localhost using a standard LDAP connection " +"on port 389" +msgstr "" +"ldaps://localhost:389 は、localhostのポート389へ標準的なLDAP接続を行ないま" +"す。" + +#: ../help/help.inc:66 +msgid "" +"ldaps://ldap.domain.com connects to ldap.domain.com using an encrypted LDAP " +"connection." +msgstr "" +"ldaps://ldap.example.com は、ldap.example.com へ暗号化されたLDAP接続を行ない" +"ます。" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:100 +msgid "list" +msgstr "一覧" + +#: ../templates/3rdParty/pla/lib/config_default.php:494 +#: ../templates/3rdParty/pla/lib/ds.php:318 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:529 +msgid "login" +msgstr "ログイン" + +#: ../lib/modules/posixAccount.inc:391 +msgid "machines" +msgstr "マシン" + +#: ../lib/modules/inetLocalMailRecipient.inc:114 +msgid "mail.yourdomain.org" +msgstr "mail.yourdomain.org" + +#: ../lib/modules/sambaSamAccount.inc:415 +#: ../lib/modules/sambaSamAccount.inc:539 +msgid "mydomain" +msgstr "マイドメイン" + +#: ../lib/modules/sambaSamAccount.inc:472 +msgid "mygroup" +msgstr "マイグループ" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:504 +msgid "new" +msgstr "新規" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:454 +#: ../lib/modules/zarafaDynamicGroup.inc:457 +#: ../lib/modules/zarafaContact.inc:568 ../lib/modules/zarafaGroup.inc:651 +#: ../lib/modules/zarafaGroup.inc:658 ../lib/modules/zarafaGroup.inc:661 +#: ../lib/modules/zarafaAddressList.inc:336 +#: ../lib/modules/zarafaAddressList.inc:339 +#: ../lib/modules/sambaSamAccount.inc:583 +#: ../lib/modules/sambaSamAccount.inc:1913 +#: ../lib/modules/sambaSamAccount.inc:1921 +#: ../lib/modules/sambaSamAccount.inc:1931 +#: ../lib/modules/sambaSamAccount.inc:1936 +#: ../lib/modules/sambaSamAccount.inc:1941 ../lib/modules/zarafaUser.inc:602 +#: ../lib/modules/zarafaUser.inc:1238 ../lib/modules/zarafaUser.inc:1253 +#: ../lib/modules/zarafaUser.inc:1264 ../lib/modules/zarafaUser.inc:1270 +#: ../lib/modules/windowsUser.inc:388 ../lib/modules/windowsUser.inc:389 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:396 +#: ../lib/modules/windowsUser.inc:397 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:404 ../lib/modules/windowsUser.inc:405 +#: ../lib/modules/windowsUser.inc:406 ../lib/modules/windowsUser.inc:412 +#: ../lib/modules/windowsUser.inc:413 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:1173 ../lib/modules/windowsUser.inc:1607 +#: ../lib/modules/windowsUser.inc:1612 ../lib/modules/windowsUser.inc:1617 +#: ../lib/modules/windowsUser.inc:1622 ../lib/modules/ppolicy.inc:35 +#: ../lib/modules/ppolicy.inc:481 ../lib/modules/ppolicy.inc:491 +#: ../lib/modules/ppolicy.inc:496 ../lib/modules/ppolicy.inc:503 +#: ../lib/modules/ppolicy.inc:506 ../lib/modules/generalInformation.inc:100 +#: ../lib/modules/zarafaServer.inc:358 ../lib/modules/customFields.inc:2890 +#: ../lib/modules/fixed_ip.inc:752 +msgid "no" +msgstr "いいえ" + +#: ../templates/3rdParty/pla/lib/functions.php:1902 +msgid "no description available" +msgstr "説明がありません" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:68 +msgid "no entries" +msgstr "エントリがありません" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:84 +msgid "no new attributes available for this entry" +msgstr "このエントリに対して有効な新しい属性はありません" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:135 +msgid "no new binary attributes available for this entry" +msgstr "このエントリに対して有効な新しいバイナリ属性はありません" + +#: ../templates/schema/schema.php:160 ../templates/schema/schema.php:229 +#: ../templates/schema/schema.php:240 ../templates/schema/schema.php:289 +#: ../templates/schema/schema.php:355 ../templates/schema/schema.php:370 +#: ../templates/schema/schema.php:404 ../templates/schema/schema.php:426 +#: ../templates/3rdParty/pla/lib/functions.php:2612 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1573 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1581 +msgid "none" +msgstr "なし" + +#: ../templates/3rdParty/pla/lib/PageRender.php:1109 +msgid "none, remove value" +msgstr "なし, 値を削除" + +#: ../templates/schema/schema.php:216 +msgid "not applicable" +msgstr "適用対象外" + +#: ../templates/schema/schema.php:167 ../templates/schema/schema.php:172 +#: ../templates/schema/schema.php:177 ../templates/schema/schema.php:210 +msgid "not specified" +msgstr "未入力" + +#: ../help/help.inc:76 +msgid "" +"ou=People,dc=yourcompany,dc=com will read and store all accounts in this " +"subtree." +msgstr "" +"ou=People,dc=yourcompany,dc=com は、このサブツリーのすべてのアカウントを読み" +"書きします。" + +#: ../lib/modules/eduPerson.inc:202 ../lib/modules/eduPerson.inc:208 +#: ../lib/modules/eduPerson.inc:214 +msgid "ou=accounts,dc=yourdomain,dc=org" +msgstr "ou=accounts,dc=yourdomain,dc=org" + +#: ../lib/modules/posixAccount.inc:377 +msgid "pc01$" +msgstr "pc01$" + +#: ../lib/modules/posixAccount.inc:400 +msgid "pc01,Room 2.34" +msgstr "pc01,Room 2.34" + +#: ../lib/modules/hostObject.inc:93 +msgid "pc01,pc02" +msgstr "pc01,pc02" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +msgid "pixels" +msgstr "ピクセル" + +#: ../lib/modules/pykotaPrinter.inc:148 +msgid "printer01" +msgstr "printer01" + +#: ../lib/modules/pykotaPrinter.inc:188 +msgid "printergroup1" +msgstr "printergroup1" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:54 +msgid "read only" +msgstr "読み込み専用" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:251 +msgid "refresh" +msgstr "リフレッシュ" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2126 +msgid "rename" +msgstr "名前変更" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 ../lib/html.inc:797 +#: ../lib/html.inc:1708 ../lib/html.inc:2285 +msgid "required" +msgstr "必須" + +#: ../lib/modules/sambaSamAccount.inc:1550 +#: ../lib/modules/sambaSamAccount.inc:1957 +msgid "reset" +msgstr "リセット" + +#: ../lib/modules/organizationalRoleUser.inc:73 +msgid "role01,role02" +msgstr "role01,role02" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:237 +msgid "search" +msgstr "検索" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:472 +msgid "seconds" +msgstr "秒" + +#: ../lib/modules/mitKerberos.inc:244 ../lib/modules/asteriskAccount.inc:327 +#: ../lib/modules/posixGroup.inc:444 ../lib/modules/sambaSamAccount.inc:427 +#: ../lib/modules/posixAccount.inc:334 ../lib/modules/windowsUser.inc:274 +#: ../lib/modules/inetOrgPerson.inc:2054 +#: ../lib/modules/asteriskVoicemail.inc:167 +#: ../lib/modules/heimdalKerberos.inc:213 +msgid "secret" +msgstr "secret" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1263 +msgid "select the rdn attribute" +msgstr "RDN属性の選択" + +#: ../lib/modules/mitKerberos.inc:213 ../lib/modules/uidObject.inc:69 +#: ../lib/modules/posixAccount.inc:285 ../lib/modules/windowsUser.inc:266 +#: ../lib/modules/windowsUser.inc:451 ../lib/modules/windowsUser.inc:460 +#: ../lib/modules/pykotaUser.inc:192 ../lib/modules/pykotaUser.inc:210 +#: ../lib/modules/inetOrgPerson.inc:2045 +#: ../lib/modules/heimdalKerberos.inc:182 ../lib/modules/nisMailAlias.inc:110 +msgid "smiller" +msgstr "smiller" + +#: ../lib/modules/inetLocalMailRecipient.inc:102 +msgid "smiller@otherdomain.org" +msgstr "smiller@otherdomain.org" + +#: ../lib/modules/inetLocalMailRecipient.inc:108 +msgid "smiller@yourdomain.org" +msgstr "smiller@yourdomain.org" + +#: ../lib/modules/ldapPublicKey.inc:90 +msgid "ssh-dss 234234 user@host" +msgstr "ssh-dss 234234 user@host" + +#: ../templates/3rdParty/pla/lib/PageRender.php:882 +msgid "structural" +msgstr "構造型" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:102 +msgid "table" +msgstr "表" + +#: ../lib/modules/asteriskExtension.inc:154 +msgid "test" +msgstr "テスト" + +#: ../lib/modules/asteriskExtension.inc:174 +msgid "test-start" +msgstr "テスト開始" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:122 +msgid "true" +msgstr "true" + +#: ../lib/modules/ipHost.inc:99 ../lib/modules/inetOrgPerson.inc:363 +#: ../lib/modules/aliasEntry.inc:71 ../lib/modules/qmailGroup.inc:281 +#: ../lib/modules/qmailGroup.inc:289 ../lib/modules/qmailGroup.inc:297 +msgid "uid=smiller,ou=People,dc=company,dc=com" +msgstr "uid=smiller,ou=People,dc=company,dc=com" + +#: ../templates/config/mainmanage.php:312 +msgid "use custom CA certificates" +msgstr "カスタムCA証明書を使用する" + +#: ../templates/config/mainmanage.php:309 +msgid "use system certificates" +msgstr "システム証明書を使用する" + +#: ../lib/modules/posixGroup.inc:452 +msgid "user01,user02,user03" +msgstr "user01,user02,user03" + +#: ../lib/modules/qmailUser.inc:273 ../lib/modules/qmailUser.inc:279 +#: ../lib/modules/qmailUser.inc:301 ../lib/modules/eduPerson.inc:163 +#: ../lib/modules/windowsUser.inc:352 ../lib/modules/windowsUser.inc:358 +#: ../lib/modules/pykotaUser.inc:220 ../lib/modules/inetOrgPerson.inc:451 +#: ../lib/modules/kolabSharedFolder.inc:183 +#: ../lib/modules/asteriskVoicemail.inc:180 ../lib/modules/qmailGroup.inc:339 +#: ../lib/modules/qmailGroup.inc:347 ../lib/modules/qmailGroup.inc:355 +msgid "user@company.com" +msgstr "user@company.com" + +#: ../lib/modules/posixAccount.inc:299 +msgid "users" +msgstr "ユーザ" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:59 +msgid "view entries" +msgstr "エントリを見る" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +msgid "with " +msgstr "with " + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:452 +#: ../lib/modules/zarafaDynamicGroup.inc:459 +#: ../lib/modules/zarafaContact.inc:570 ../lib/modules/zarafaGroup.inc:653 +#: ../lib/modules/zarafaGroup.inc:656 ../lib/modules/zarafaGroup.inc:663 +#: ../lib/modules/zarafaAddressList.inc:334 +#: ../lib/modules/zarafaAddressList.inc:341 +#: ../lib/modules/sambaSamAccount.inc:583 +#: ../lib/modules/sambaSamAccount.inc:1911 +#: ../lib/modules/sambaSamAccount.inc:1919 +#: ../lib/modules/sambaSamAccount.inc:1929 +#: ../lib/modules/sambaSamAccount.inc:1934 +#: ../lib/modules/sambaSamAccount.inc:1939 ../lib/modules/zarafaUser.inc:602 +#: ../lib/modules/zarafaUser.inc:1240 ../lib/modules/zarafaUser.inc:1256 +#: ../lib/modules/zarafaUser.inc:1266 ../lib/modules/zarafaUser.inc:1272 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:406 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:1173 ../lib/modules/windowsUser.inc:1512 +#: ../lib/modules/windowsUser.inc:1609 ../lib/modules/windowsUser.inc:1614 +#: ../lib/modules/windowsUser.inc:1619 ../lib/modules/windowsUser.inc:1624 +#: ../lib/modules/ppolicy.inc:36 ../lib/modules/ppolicy.inc:493 +#: ../lib/modules/ppolicy.inc:498 ../lib/modules/ppolicy.inc:501 +#: ../lib/modules/ppolicy.inc:508 ../lib/modules/inetOrgPerson.inc:525 +#: ../lib/modules/generalInformation.inc:102 +#: ../lib/modules/zarafaServer.inc:360 ../lib/modules/customFields.inc:2890 +#: ../lib/modules/fixed_ip.inc:750 +msgid "yes" +msgstr "はい" + +#~ msgid "Mycity" +#~ msgstr "わたしの市" + +#~ msgid "The IP address \"%s\" is invalid." +#~ msgstr "IPアドレス \"%s\" は正しくありません。" + +#~ msgid "" +#~ "You cannot add the Kolab group and shared folder extension at the same " +#~ "time." +#~ msgstr "Kolabグループと共有フォルダー拡張は同時に追加できません。" + +#~ msgid "Deleted account" +#~ msgstr "削除されたアカウント" + +#~ msgid "" +#~ "Each line represents one LDAP attribute. The options are separated by \"::" +#~ "\". The first option specifies if the attribute is mandatory. It can have " +#~ "the values \"optional\" and \"required\"." +#~ msgstr "" +#~ "各行はLDAP属性を意味します。オプションは \"::\" によって区切られます。先" +#~ "頭のオプションは必須条件を示します。値には \"optional\" および \"required" +#~ "\" を使用できます。" + +#~ msgid "Invalid account" +#~ msgstr "無効なアカウント" + +#~ msgid "New Authorized Service" +#~ msgstr "新しいAuthorized Service" + +#~ msgid "New IP address" +#~ msgstr "新しいIPアドレス" + +#~ msgid "New MAC address" +#~ msgstr "新しいMACアドレス" + +#~ msgid "New SSH public key" +#~ msgstr "新しいSSH公開鍵" + +#~ msgid "Options four and five are used for input validation." +#~ msgstr "Options four and five are used for input validation." + +#~ msgid "" +#~ "Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") and an " +#~ "error message if the value does not match it. For a syntax description " +#~ "see here." +#~ msgstr "" +#~ "正規表現(例 \"/^[0-9a-zA-Z]+$/\")と、値がマッチしなかった場合のエラーメッ" +#~ "セージを入力してください。文法の説明は、こちらをご覧く" +#~ "ださい。" + +#~ msgid "" +#~ "The second option is the LDAP attribute name and the third one is a " +#~ "descriptive label for it." +#~ msgstr "2番目のオプションはLDAP属性名、3番目はそれに対する説明ラベルです." + +#~ msgid "User ID" +#~ msgstr "ユーザ ID" + +#~ msgid "" +#~ "Password contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +#~ "and #*,.;:_-+!%&/|?{[()]}=@$ !" +#~ msgstr "" +#~ "パスワードに不正な文字が含まれています。有効な文字は: a-z, A-Z, 0-9, " +#~ "#*,.;:_-+!$%&/|?{[()]}=@$ です!" + +#~ msgid "Sync Asterisk voicemail password with Unix password" +#~ msgstr "アスタリスク・ボイスメール・パスワードをunixパスワードと同期" + +#~ msgid "Sync Kerberos password with Unix password" +#~ msgstr "Kerberosパスワードをunixパスワードと同期" + +#~ msgid "The domain name needs to have at least 3 characters." +#~ msgstr "ドメイン名は少なくとも3文字以上でなければなりません。" + +#~ msgid "" +#~ "To disable login use /bin/false. The list of shells is read from lam/" +#~ "config/shells" +#~ msgstr "" +#~ "ログインを禁止するためには/bin/falseを使ってください。シェルの一覧は lam/" +#~ "config/shells から読み込まれます。" + +#~ msgid "Unable to read sambaSID attribute." +#~ msgstr "sambaSID属性の読み込みができません。" + +#~ msgid "" +#~ "Unable to sync the time when the user can/must change his password " +#~ "because no domain was found." +#~ msgstr "" +#~ "ドメインが見つからないため、ユーザによるパスワード変更が許可/強制される時" +#~ "刻を同期できません。" + +#~ msgid "" +#~ "You are using a capital letters. This can cause problems because Windows " +#~ "isn't case-sensitive." +#~ msgstr "" +#~ "大文字が使われています。Windowsは大文字と小文字を区別しないため、これが原" +#~ "因で問題が発生する場合があります。" + +#~ msgid "" +#~ "You are using a capital letters. This can cause problems because windows " +#~ "isn't case-sensitive." +#~ msgstr "" +#~ "大文字が使われています。Windowsは大文字と小文字を区別しないため、これが原" +#~ "因で問題が発生する場合があります。" + +#~ msgid "Country" +#~ msgstr "国" + +#~ msgid "Country name is invalid!" +#~ msgstr "国名が正しくありません!" + +#~ msgid "Free/Busy interval" +#~ msgstr "Free/Busyインターバル" + +#~ msgid "Free/Busy interval must be a number!" +#~ msgstr "Free/Busyインターバルは数でなくてはなりません!" + +#~ msgid "Germany" +#~ msgstr "日本" + +#~ msgid "Mail quota must be a number!" +#~ msgstr "メール・クォータは数字でなくてはなりません!" + +#~ msgid "" +#~ "The Cyrus mail quota for users in MBytes, leave blank for unlimited space." +#~ msgstr "ユーザに対するCyrusメールクォータ(MB単位)。未入力の場合は無制限。" + +#~ msgid "" +#~ "This is the time limit (in days) for other users who want to check future " +#~ "appointments. If you leave this blank the default (60 days) will be set." +#~ msgstr "" +#~ "他のユーザが将来の予定をチェックする場合の時間的上限(日数)。未入力の場合は" +#~ "デフォルト値(60日)がセットされます。" + +#~ msgid "YourCompany, Human Resources" +#~ msgstr "YourCompany, Human Resources" + +#~ msgid "%s DHCP(s) found" +#~ msgstr "%s個のDHCPが見つかりました。" + +#~ msgid "%s NIS object(s) found" +#~ msgstr "%s個のNISオブジェクトが見つかりました" + +#~ msgid "%s address list(s) found" +#~ msgstr "%s個のアドレスリストが見つかりました" + +#~ msgid "%s alias(es) found" +#~ msgstr "%s個の別名が見つかりました" + +#~ msgid "%s automount entry(ies) found" +#~ msgstr "%s 個の自動マウント・エントリが見つかりました" + +#~ msgid "%s domain(s) found" +#~ msgstr "%s個のドメインが見つかりました" + +#~ msgid "%s extension(s) found" +#~ msgstr "%s個の拡張が見つかりました" + +#~ msgid "%s group(s) found" +#~ msgstr "%s個のグループが見つかりました" + +#~ msgid "%s host(s) found" +#~ msgstr "%s個のSamba ホストが見つかりました" + +#~ msgid "%s object(s) found" +#~ msgstr "%s個のオブジェクトが見つかりました" + +#~ msgid "%s policy(ies) found" +#~ msgstr "%s個のポリシーが見つかりました" + +#~ msgid "%s sudo role(s) found" +#~ msgstr "%s 個のsudoロールが見つかりました" + +#~ msgid "%s user(s) found" +#~ msgstr "%s名のユーザが見つかりました" + +#~ msgid "Add phpGroupWare extension" +#~ msgstr "phpGroupware拡張を追加" + +#~ msgid "Delete DHCP(s)" +#~ msgstr "DHCPの削除" + +#~ msgid "Delete group(s)" +#~ msgstr "グループの削除" + +#~ msgid "Delete host(s)" +#~ msgstr "ホストの削除" + +#~ msgid "Delete object" +#~ msgstr "オブジェクトを削除" + +#~ msgid "Delete user(s)" +#~ msgstr "ユーザの削除" + +#~ msgid "Here you can specify if the account is active or inactive." +#~ msgstr "ここではアカウントの有効/無効を記述できます。" + +#~ msgid "Host(s)" +#~ msgstr "ホスト" + +#~ msgid "" +#~ "If you set this to \"true\" then the phpGroupware extension will be added." +#~ msgstr "\"true\"にセットした場合、phpGroupware拡張が追加されます。" + +#~ msgid "" +#~ "In order to add these objectClass(es) to this entry, you must specify " +#~ "%s new attributes that this object class requires." +#~ msgstr "" +#~ "これらのオブジェクトクラスをエントリに追加するために、オブジェクトクラスが" +#~ "必要とする %s の新規属性を記述する必要があります。" + +#~ msgid "Last login from" +#~ msgstr "最終ログインの接続元" + +#~ msgid "No extension(s) found!" +#~ msgstr "拡張が見つかりません!" + +#~ msgid "Reenter new master password" +#~ msgstr "新しいマスタパスワードを再入力" + +#~ msgid "Reenter profile password" +#~ msgstr "プロファイルパスワードを再入力" + +#~ msgid "Remove phpGroupWare extension" +#~ msgstr "phpGroupware拡張を削除" + +#~ msgid "Run group(s)" +#~ msgstr "実行グループ" + +#~ msgid "SSH public key(s)" +#~ msgstr "SSH公開鍵" + +#~ msgid "The password(s) were set to:" +#~ msgstr "設定されたパスワード:" + +#~ msgid "Unlock Samba account" +#~ msgstr "Sambaアカウントのアンロック" + +#~ msgid "" +#~ "User name of the user who should be created. Valid characters are: a-z,A-" +#~ "Z,0-9, .-_. If user name is already used user name will be expanded with " +#~ "a number. The next free number will be used. Warning: Older systems have " +#~ "problems with user names longer than 8 characters. You can not log in to " +#~ "Windows if user name is longer than 16 characters." +#~ msgstr "" +#~ "作成しようとしているユーザのユーザ名。有効な文字は: a-z, A-Z, 0-9 と .-_で" +#~ "す。ユーザ名が既に使われていたならば、ユーザ名に番号が付加されます。この場" +#~ "合、次の空き番号が使われます。警告: 古いシステムでは、8文字より長いユーザ" +#~ "名で問題が発生します。16文字より長いユーザ名ではWindowsにログオンできませ" +#~ "ん。" + +#~ msgid "User(s)" +#~ msgstr "ユーザ" + +#~ msgid "active" +#~ msgstr "有効" + +#~ msgid "inactive" +#~ msgstr "無効" + +#~ msgid "(example: cn=MyNewPerson)" +#~ msgstr "(例: cn=MyNewPerson)" + +#~ msgid "(hint: do not include \"ou=\")" +#~ msgstr "(ヒント: \"ou=\"を含めないでください)" + +#~ msgid "Adding attribute failed!" +#~ msgstr "属性の追加に失敗しました!" + +#~ msgid "All following lines form the mail body." +#~ msgstr "後に続く全ての行はメール本文になります。" + +#~ msgid "Choose a server for the home directory!" +#~ msgstr "ホームディレクトリ用のサーバを選択してください!" + +#~ msgid "Container DN" +#~ msgstr "コンテナのDN" + +#~ msgid "Delete %s" +#~ msgstr "%s を削除" + +#~ msgid "Entry %s deleted successfully." +#~ msgstr "エントリ %s は削除されました。" + +#~ msgid "File upload failed!" +#~ msgstr "ファイルのアップロードに失敗しました!" + +#~ msgid "Home directory server" +#~ msgstr "ホームディレクトリ・サーバー" + +#~ msgid "I am sure" +#~ msgstr "確認" + +#~ msgid "" +#~ "If you decide to send the password via mail then the mail template " +#~ "\"config/passwordMailTemplate.txt\" will be used." +#~ msgstr "" +#~ "パスワードをメールで送信することを選択した場合、テンプレートとして" +#~ "\"config/passwordMailTemplate.txt\"が使用されます。" + +#~ msgid "" +#~ "LAM can recursively delete this entry and all of its children. See below " +#~ "for a list of all the entries that this action will delete. Do you want " +#~ "to do this?" +#~ msgstr "" +#~ "LAMはこのエントリおよび全ての子を再帰的に削除します。この操作が削除する全" +#~ "てのエントリのリストは下に表示されています。実行してもよろしいですか?" + +#~ msgid "Next" +#~ msgstr "次" + +#~ msgid "" +#~ "Note: You will get an \"inappropriate matching\" error if you have not " +#~ "setup an EQUALITY rule on your LDAP server for this attribute." +#~ msgstr "" +#~ "注意: この属性に対するあなたのLDAPサーバ上における比較ルールをセットしない" +#~ "場合、\"inappropriate matching\"エラーを受け取るでしょう。" + +#~ msgid "Optional binary attributes" +#~ msgstr "任意バイナリ属性" + +#~ msgid "Organizational unit" +#~ msgstr "Organizational unit" + +#~ msgid "RDN" +#~ msgstr "RDN" + +#~ msgid "Really create this new OU?" +#~ msgstr "このOUを新規作成しますか?" + +#~ msgid "Relative distinguished name" +#~ msgstr "相対識別名" + +#~ msgid "Specifies whether the user is an admin." +#~ msgstr "ユーザーが管理者であるか否かを記入します。" + +#~ msgid "The first line is the subject." +#~ msgstr "先頭の行は件名です。" + +#~ msgid "" +#~ "The mail text of all password mails. If empty the content of \"config/" +#~ "passwordMailTemplate.txt\" starting at the second line will be used." +#~ msgstr "" +#~ "全てのパスワード・メールのメール・テキスト。もしも空の場合、\"config/" +#~ "passwordMailTemplate.txt\" の2行目以降が使用されます。" + +#~ msgid "" +#~ "The subject of all password mails. If empty the first line of \"config/" +#~ "passwordMailTemplate.txt\" will be used." +#~ msgstr "" +#~ "全てのパスワード・メールの件名。もしも空の場合は、\"config/" +#~ "passwordMailTemplate.txt\" の先頭行が使用されます。" + +#~ msgid "There are new required attributes which need to be set." +#~ msgstr "設定すべき新しい必須属性があります。" + +#~ msgid "Using template:" +#~ msgstr "テンプレートを使用:" + +#~ msgid "Was unable to modify attribtues from DN: %s." +#~ msgstr "DN %s の属性を変更できませんでした。" + +#~ msgid "" +#~ "You did not select any object classes for this object. Please go back and " +#~ "do so." +#~ msgstr "" +#~ "このオブジェクトに対するオブジェクトクラスが選択されていません。前に戻って" +#~ "選択してください。" + +#~ msgid "You have to activate the \"I am sure\" checkbox." +#~ msgstr "\"確認\"のチェックボックスを有効にする必要があります。" + +#~ msgid "jpegPhoto contains errors" +#~ msgstr "jpegPhoto にエラーがあります" + +#~ msgid "This module requires the PHP ssh2 extension." +#~ msgstr "個のモジュールはPHP ssh2拡張を必要とします。" + +#~ msgid "Timeout while executing lamdaemon commands!" +#~ msgstr "lamdaemonコマンドの実行がタイムアウトしました!" + +#~ msgid "Cache timeout is invalid!" +#~ msgstr "キャッシュ有効時間が正しくありません。" + +#~ msgid "Deleting. Please stand by ..." +#~ msgstr "削除中です。お待ちください ..." + +#~ msgid "" +#~ "Here is a list of possible columns. The red columns must be included in " +#~ "the CSV file and filled with data for all accounts." +#~ msgstr "" +#~ "カラム候補のリスト。赤字のカラムはCSVファイルに含まれていなくてはならず、" +#~ "かつ全てのアカウントについて記入済みでなくてはなりません。" + +#~ msgid "LDAP" +#~ msgstr "LDAP" + +#~ msgid "Text for user PDF" +#~ msgstr "ユーザPDFのためのテキスト" + +#~ msgid "" +#~ "Unable to load available languages. Setting English as default language. " +#~ "For further instructions please contact the Admin of this site." +#~ msgstr "" +#~ "有効な言語をロードできません。英語を既定値の言語とします。より詳しい説明" +#~ "は、このサイトの管理者に連絡してください。" + +#~ msgid "" +#~ "Attention: The DHCP service needs to be restarted after changes in DDNS." +#~ msgstr "注意: DDNSの変更後にDHCPサービスのリスタートが必要です。" + +#~ msgid "Back to Login" +#~ msgstr "ログインに戻る" + +#~ msgid "Delegates has invalid format!" +#~ msgstr "代理人の形式が正しくありません。" + +#~ msgid "Delete Kolab account" +#~ msgstr "Kolabアカウントを削除" + +#~ msgid "Fixed IP" +#~ msgstr "固定IP" + +#~ msgid "Please select your user name and enter your password to log in." +#~ msgstr "ユーザ名を選択し、パスワードを入力してログインしてください。" + +#~ msgid "The domain name needs to be shorter than 15 characters." +#~ msgstr "ドメイン名は15文字未満でなくてはなりません。" + +#~ msgid "" +#~ "This is an example how it would look in your spreadsheet program before " +#~ "you convert to CSV:" +#~ msgstr "" +#~ "CSVに変換する前に、あなたの表計算プログラムでどのように見えるかの例です。" + +#~ msgid "This value can only be \\\"true\\\" or \\\"false\\\"!" +#~ msgstr "この値は、\"true\"または\"false\"のいずれかでなくてはなりません。" + +#~ msgid "Back to OU-Editor" +#~ msgstr "OU-エディタに戻る" + +#~ msgid "Back to PDF Editor" +#~ msgstr "PDFエディタに戻る" + +#~ msgid "Back to profile editor" +#~ msgstr "プロファイルエディタに戻る" + +#~ msgid "Delete operation canceled." +#~ msgstr "削除操作がキャンセルされました。" + +#~ msgid "Link to login page for this self service profile" +#~ msgstr "このセルフサービス・プロファイルのログインページへのリンク" + +#~ msgid "Mode" +#~ msgstr "モード" + +#~ msgid "" +#~ "Please enter a comma separated list of host names where this user is " +#~ "allowed to log in. If you enable host restrictions for your servers then " +#~ "\"*\" means every host and an empty field means no host." +#~ msgstr "" +#~ "このユーザがログインする事を許可されたunixワークステーショのカンマ区切りリ" +#~ "ストを入力して下さい。サーバー制限が有効な場合、\"*\"は全てのホストを意味" +#~ "し、空欄はホスト無しを意味します。" + +#~ msgid "" +#~ "Please install the SSH2 module for PHP and activate it in your php.ini!" +#~ msgstr "PHPのSSH2モジュールをインストールし、php.iniで有効化してください。" + +#~ msgid "SSH2 module" +#~ msgstr "SSH2モジュール" + +#~ msgid "SSH2 module is installed." +#~ msgstr "SSH2モジュールがインストールされています。" + +#~ msgid "Scope" +#~ msgstr "スコープ" + +#~ msgid "Sudo is not setup correctly!" +#~ msgstr "sudoが正しく設定されていません。" + +#~ msgid "Unix workstations" +#~ msgstr "unixワークステーション" + +#~ msgid "Unix workstations are invalid!" +#~ msgstr "unixワークステーションが正しくありません。" + +#~ msgid "You have been logged off from LDAP Account Manager." +#~ msgstr "LDAP Account Managerからログオフしました。" + +#~ msgid "Account lists - Filters" +#~ msgstr "アカウント一覧 - フィルター" + +#~ msgid "Account type selection" +#~ msgstr "アカウント種別の選択" + +#~ msgid "Add IP" +#~ msgstr "IPアドレスを追加" + +#~ msgid "Add Samba 3 account" +#~ msgstr "Samba 3アカウントの追加" + +#~ msgid "Adding of a fixed IP failed because of errors." +#~ msgstr "エラーが発生したため固定IPアドレスの追加に失敗しました。" + +#~ msgid "Adds input fields for a new fixed IP address." +#~ msgstr "新しい固定IPアドレスの入力フィールドを追加する。" + +#~ msgid "Configuration wizard" +#~ msgstr "構成設定ウィザード" + +#~ msgid "Delete IP" +#~ msgstr "IPアドレスを削除" + +#~ msgid "Delete PDF structure" +#~ msgstr "PDF構成の削除" + +#~ msgid "Donate" +#~ msgstr "寄付する" + +#~ msgid "Drive letter assigned on windows workstations as homedirectory." +#~ msgstr "" +#~ "Windows ワークステーションのホームディレクトリとして割り当てられたドライブ" +#~ "文字。" + +#~ msgid "Edit account types" +#~ msgstr "アカウント種別の編集" + +#~ msgid "Edit modules" +#~ msgstr "モジュールの編集" + +#~ msgid "" +#~ "File name and path relative to the netlogon-share which should be " +#~ "executed on logon. $user and $group are replaced with user and group name." +#~ msgstr "" +#~ "ログオンの時に実行される、ネットログオン共有への相対的なパスとファイル" +#~ "名。 $user と $group はユーザとグループ名に置き換えられます。" + +#~ msgid "" +#~ "Host name contains invalid characters. Valid characters are: a-z, A-Z, " +#~ "0-9 and .-_ ! Host name must end with $ !" +#~ msgstr "" +#~ "ホスト名に不正な文字が含まれています。有効な文字は: a-z, A-Z, 0-9, .-_ で" +#~ "す。ホスト名の末尾は$でなくてはなりません。" + +#~ msgid "If checked account will be deactivated. (Setting D-Flag)" +#~ msgstr "" +#~ "チェックした場合、(D-フラグをセットすることで)アカウントは無効化されます。" + +#~ msgid "" +#~ "If you want to create domain administrators or other special users use " +#~ "this option." +#~ msgstr "" +#~ "ドメイン管理者やその他の特殊アカウントを作成したい場合は、このオプションを" +#~ "使用してください。" + +#~ msgid "Module selection" +#~ msgstr "モジュール選択" + +#~ msgid "Please enter the same password in both password-fields." +#~ msgstr "2つのパスワードフィールドに同じパスワードを入力してください。" + +#~ msgid "Please select your account type:" +#~ msgstr "アカウントタイプを選択してください:" + +#~ msgid "Samba 2" +#~ msgstr "Samba 2" + +#~ msgid "The net mask was invalid and was corrected." +#~ msgstr "不正なネットマスクを修正しました。" + +#~ msgid "The netmask was set." +#~ msgstr "ネットマスクが設定されました。" + +#~ msgid "Update attribute \"sambaPwdCanChange\" on password change" +#~ msgstr "パスワード変更時に属性 \"sambaPwdCanChange\" を更新する。" + +#~ msgid "Update attribute \"sambaPwdMustChange\" on password change" +#~ msgstr "パスワード変更時に属性 \"sambaPwdMustChange\" を更新する。" + +#~ msgid "User can/must change password" +#~ msgstr "ユーザによるパスワード変更の許可/強制" + +#~ msgid "Windows group RID" +#~ msgstr "WindowsグループRID" + +#~ msgid "Account suffix" +#~ msgstr "アカウント・サフィックス" + +#~ msgid "" +#~ "LDAP DN (e.g. dc=company,dc=com) of accounts. This is used to find " +#~ "possible delegation candidates." +#~ msgstr "" +#~ "アカウントのLDAP DN(例 dc=company,dc=com)。この値は委任候補の検索の際に使" +#~ "用されます。" + +#~ msgid "Create PDF for all aliases" +#~ msgstr "全ての別名のPDFファイル作成" + +#~ msgid "Create PDF for all domains" +#~ msgstr "全ドメインのPDFファイル作成" + +#~ msgid "Create PDF for all hosts" +#~ msgstr "全ホストのPDFファイル作成" + +#~ msgid "Create PDF for all objects" +#~ msgstr "全オブジェクトのPDFファイル作成" + +#~ msgid "Create PDF for selected alias(es)" +#~ msgstr "選択された別名のPDFファイル作成" + +#~ msgid "Create PDF for selected domain(s)" +#~ msgstr "選択されたドメインのPDFファイル作成" + +#~ msgid "Create PDF for selected group(s)" +#~ msgstr "選択されたグループのPDFファイル作成" + +#~ msgid "Create PDF for selected object(s)" +#~ msgstr "選択されたオブジェクトのPDFファイル作成" + +#~ msgid "Create PDF for selected user(s)" +#~ msgstr "選択されたユーザのPDFファイル作成" + +#~ msgid "Add Neofonie attributes" +#~ msgstr "Neofonie属性の追加" + +#~ msgid "Add section or static text" +#~ msgstr "セクションまた静的テキストを追加" + +#~ msgid "Available PDF fields" +#~ msgstr "有効なPDFフィールド" + +#~ msgid "Birth date" +#~ msgstr "誕生日" + +#~ msgid "Date when the employee was initially employed." +#~ msgstr "従業員が最初に雇用された日付。" + +#~ msgid "Employee skills" +#~ msgstr "従業員のスキル" + +#~ msgid "Employment date" +#~ msgstr "雇用された日" + +#~ msgid "Job position of this user (e.g. developer, temp, ...)." +#~ msgstr "ユーザーの職種(例 開発者, 臨時工, ...)" + +#~ msgid "List of ComBots IDs." +#~ msgstr "ComBOTS IDのリスト" + +#~ msgid "List of Jabber IDs." +#~ msgstr "Jabber IDのリスト" + +#~ msgid "List of project groups of this user." +#~ msgstr "このユーザーのプロジェクトグループ一覧" + +#~ msgid "List of projects the user is working on." +#~ msgstr "ユーザが従事しているプロジェクトの一覧" + +#~ msgid "List of special skills that the user has." +#~ msgstr "ユーザーが持っている特殊技能の一覧。" + +#~ msgid "Page settings" +#~ msgstr "ページ設定" + +#~ msgid "Please enter a valid date (format DD.MM.YYYY)!" +#~ msgstr "正しい日付をDD.MM.YYYYの形式で入力してください!" + +#~ msgid "Project groups" +#~ msgstr "プロジェクトグループ" + +#~ msgid "The department where the employee is employed." +#~ msgstr "従業員が雇用されている部署。" + +#~ msgid "This is the user's Quake ID." +#~ msgstr "ユーザのQuake ID。" + +#~ msgid "This is the user's login name for the wiki." +#~ msgstr "このユーザのwiki上のログイン名。" + +#~ msgid "required for Samba 3 accounts" +#~ msgstr "Samba 3アカウントにおいて必須" + +#~ msgid "Apply" +#~ msgstr "適用" + +#~ msgid "Create account" +#~ msgstr "アカウント作成" + +#~ msgid "Max list entries is invalid!" +#~ msgstr "リストエントリの最大数が正しくありません!" + +#~ msgid "Save account" +#~ msgstr "アカウントを保存" + +#~ msgid "This saves your account to the LDAP database." +#~ msgstr "あなたのアカウントをLDAPデータベースに保存します。" + +#~ msgid "Edit logon hours" +#~ msgstr "ログオン時間の編集" + +#~ msgid "GID ranges for Unix groups" +#~ msgstr "unixグループのGID範囲" + +#~ msgid "Here you can define to deactivate accounts after bad logon attempts." +#~ msgstr "アカウント無効化に至るログオン失敗回数を設定します。" + +#~ msgid "Maximum GID number for Unix groups" +#~ msgstr "unixグループに対するGID番号の最大値" + +#~ msgid "Maximum UID number for Unix accounts (hosts)" +#~ msgstr "ホストnounixアカウントに対するUID番号の最大値。" + +#~ msgid "Maximum UID number for Unix accounts (users)" +#~ msgstr "ユーザのunixアカウントに対するUID番号の最大値。" + +#~ msgid "Minimum GID number for Unix groups" +#~ msgstr "unixグループに対するGID番号の最小値" + +#~ msgid "Minimum UID number for Unix accounts (hosts)" +#~ msgstr "unixアカウント(ホスト)に対するUID番号の最小値" + +#~ msgid "Password hash type for Unix accounts" +#~ msgstr "unixアカウントに対するパスワードハッシュ形式" + +#~ msgid "Password hash type for Unix groups" +#~ msgstr "unixグループに対するパスワードハッシュ形式" + +#~ msgid "Please select page:" +#~ msgstr "ページを選択:" + +#~ msgid "Samba 3 settings" +#~ msgstr "Samba 3 設定" + +#~ msgid "Server of external script" +#~ msgstr "外部スクリプトのサーバ" + +#~ msgid "" +#~ "Use it at your own risk and read the documentation for lamdaemon before " +#~ "you use it!" +#~ msgstr "使う前にlamdaemonのドキュメントを読み、あなたの責任で使うこと" + +#~ msgid "Delete Account" +#~ msgstr "アカウント削除" + +#~ msgid "A required PHP extension is missing!" +#~ msgstr "必須のPHPエクステンションが不足しています。" + +#~ msgid "Changed value %s because only numeric values are allowed." +#~ msgstr "数値だけが有効なため、%s の値を変更しました。" + +#~ msgid "Invalid password" +#~ msgstr "無効なパスワードです" + +#~ msgid "Invalid/Missing Message type" +#~ msgstr "不正な/間違ったメッセージタイプ" + +#~ msgid "" +#~ "Please report this error to the Bug-Tracker at {link=http://lam." +#~ "sourceforge.net}LDAP Account Manager Development Team{endlink}. The error " +#~ "number is {bold}0001:Invalid/Missing Message type.{endbold} Thank you." +#~ msgstr "" +#~ "このエラーをバグトラッカー {link=http://lam.sourceforge.net}LDAP Account " +#~ "Manager 開発チーム{endlink}にレポートしてください。エラー番号は {bold}" +#~ "0001: Invalid/Missing Message type.{endbold} です。ご協力に感謝します。" + +#~ msgid "Server Address is empty!" +#~ msgstr "サーバアドレスが未入力です!" + +#~ msgid "" +#~ "This will set an invalid password which prevents logins with this account." +#~ msgstr "" +#~ "無効なパスワードを設定する事により、このアカウントでのログインを防止しま" +#~ "す。" + +#~ msgid "Use unix password" +#~ msgstr "unixパスワードを使う" + +#~ msgid "You cannot use this password options at the same time." +#~ msgstr "このパスワードオプションは同時に指定できません。" + +#~ msgid "Master Password:" +#~ msgstr "マスタパスワード:" + +#~ msgid "ObjectClass %s required but not defined in LDAP." +#~ msgstr "必須オブジェクトクラス %s がLDAPに定義されていません。" + +#~ msgid "Abort" +#~ msgstr "中止" + +#~ msgid "Users who are member of the current group." +#~ msgstr "このグループに属するユーザ。" + +#~ msgid "Back to preferences..." +#~ msgstr "プリファレンスに戻る..." + +#~ msgid "User/Group/Host suffix" +#~ msgstr "ユーザ/グループ/ホスト サフィックス" + +#~ msgid "Algorithmic RID Base" +#~ msgstr "アルゴリズム的なRIDベース" + +#~ msgid "Attributes in Group List" +#~ msgstr "グループリスト中の属性" + +#~ msgid "Attributes in User List" +#~ msgstr "ユーザリスト中の属性" + +#~ msgid "Create group accounts" +#~ msgstr "グループアカウントを作成" + +#~ msgid "Create host accounts" +#~ msgstr "ホストアカウントを作成" + +#~ msgid "Create user accounts" +#~ msgstr "ユーザアカウントを作成" + +#~ msgid "Do you really want to delete domain(s):" +#~ msgstr "本当にドメインを削除しますか?" + +#~ msgid "Domain Settings" +#~ msgstr "ドメインの設定" + +#~ msgid "Domain deleted successfully." +#~ msgstr "ドメインの削除に成功しました。" + +#~ msgid "Domain has been modified." +#~ msgstr "ドメインが変更されました。" + +#~ msgid "DomainSuffix" +#~ msgstr "ドメインサフィックス" + +#~ msgid "Failed to add domain!" +#~ msgstr "ドメイン追加に失敗しました!" + +#~ msgid "Failed to modify domain!" +#~ msgstr "ドメイン変更に失敗しました!" + +#~ msgid "Group list attributes are invalid!" +#~ msgstr "グループリストの属性が正しくありません!" + +#~ msgid "GroupSuffix" +#~ msgstr "グループサフィックス" + +#~ msgid "GroupSuffix is invalid!" +#~ msgstr "グループサフィックスが正しくありません!" + +#~ msgid "Host list attributes are invalid!" +#~ msgstr "ホスト一覧の属性が正しくありません!" + +#~ msgid "HostSuffix" +#~ msgstr "ホストサフィックス" + +#~ msgid "HostSuffix is invalid!" +#~ msgstr "ホストサフィックスが正しくありません!" + +#~ msgid "LAM Internal Error" +#~ msgstr "LAM 内部エラー" + +#~ msgid "Manages Samba 3 domain accounts." +#~ msgstr "Samba 3アカウントを管理します。" + +#~ msgid "Next RID to use when creating groups." +#~ msgstr "グループ作成時に使われる次のRID。" + +#~ msgid "Samba Hosts" +#~ msgstr "Samba ホスト" + +#~ msgid "Saving group modules failed!" +#~ msgstr "グループモジュールの保存に失敗しました!" + +#~ msgid "Saving host modules failed!" +#~ msgstr "ホストモジュールの保存に失敗しました!" + +#~ msgid "Saving user modules failed!" +#~ msgstr "ユーザモジュールの保存に失敗しました!" + +#~ msgid "The following settings were saved to profile:" +#~ msgstr "以下の設定はプロファイルに保存されます:" + +#~ msgid "This Samba 3 domain is already present!" +#~ msgstr "このSamba 3 ドメインはすでに存在しています!" + +#~ msgid "TreeSuffix" +#~ msgstr "ツリーサフィックス" + +#~ msgid "User modules" +#~ msgstr "ユーザモジュール" + +#~ msgid "UserSuffix" +#~ msgstr "ユーザ サフィックス" + +#~ msgid "UserSuffix is invalid!" +#~ msgstr "ユーザサフィックスが正しくありません!" + +#~ msgid "Wrong or missing type!" +#~ msgstr "タイプが間違っているか、または抜けています!" + +#~ msgid "Group information page" +#~ msgstr "グループ情報ページ" + +#~ msgid "Host information page" +#~ msgstr "ホスト情報ページ" + +#~ msgid "There can be only one administrator per domain." +#~ msgstr "管理者は、ドメイン毎に一つだけ存在可能です。" + +#~ msgid "There can be only one guest per domain." +#~ msgstr "ドメイン毎にゲストアカウントを一個だけ指定できます。" + +#~ msgid "Time zones:" +#~ msgstr "タイムゾーン:" + +#~ msgid "Inserted user or group name in script path." +#~ msgstr "スクリプトパスにユーザ又はグループ名を挿入しました。" + +#~ msgid "Bottom" +#~ msgstr "末尾" + +#~ msgid "Driveletter assigned on windows workstations as homedirectory." +#~ msgstr "" +#~ "Windowsワークステーションのホームディレクトリに割り当てられたドライブ文" +#~ "字。" + +#~ msgid "Expand suffix with primary groupname" +#~ msgstr "プライマリグループ名でサフィックスを補完" + +#~ msgid "Group suffix" +#~ msgstr "グループサフィックス" + +#~ msgid "Groupname" +#~ msgstr "グループ名" + +#~ msgid "Hostname" +#~ msgstr "ホスト名" + +#~ msgid "" +#~ "If a not yet existing group is defined in csv-file, a new group in the " +#~ "selected group suffix will be created." +#~ msgstr "" +#~ "もしも、csvファイル中に定義されているグループがまだ存在していなければ、選" +#~ "択されたグループサフィックス中に新しいグループが作成されます。" + +#~ msgid "" +#~ "If a not yet existing group is defined in csv-file, a new group with the " +#~ "selected group profile will be created." +#~ msgstr "" +#~ "もしも、csvファイル中に定義されているグループがまだ存在されていなければ、" +#~ "選択されたグループプロファイルで新しいグループが作成されます。" + +#~ msgid "If checked unix password will also be used as samba password." +#~ msgstr "" +#~ "チェックした場合、unixパスワードがSambaパスワードとしても使われます。" + +#~ msgid "" +#~ "If selected users will be added with OUs expanded with their primary " +#~ "group. E.g. if a user is in group admin the user suffix will be ou=admin," +#~ "+user suffix." +#~ msgstr "" +#~ "選択した場合、ユーザはそのプライマリグループで拡張されたOUをもって追加され" +#~ "ます。例えば、ユーザが group admin に所属している場合、ユーザのサフィック" +#~ "スは ou=admin,+ユーザのサフィックスになります。" + +#~ msgid "Left" +#~ msgstr "左" + +#~ msgid "Maximize with correct ratio" +#~ msgstr "縦横比を維持したまま最大化" + +#~ msgid "Password warn" +#~ msgstr "パスワード警告" + +#~ msgid "Position in ldap-tree where the group should be created." +#~ msgstr "グループを作成すべきLDAPツリーの位置。" + +#~ msgid "Position in ldap-tree where the host should be created." +#~ msgstr "ホストを作成すべきLDAPツリーの位置。" + +#~ msgid "Position in ldap-tree where the user should be created." +#~ msgstr "ユーザを作成すべきLDAPツリーの位置。" + +#~ msgid "" +#~ "This will make a profile of the current account. The saved values are the " +#~ "same as in the profile editor. Profile names may contain the letters a-z, " +#~ "0-9 and -_." +#~ msgstr "" +#~ "現在のアカウントのプロファイルを作成します。保存された値は、プロファイルエ" +#~ "ディタのものと同様になります。プロファイル名は a-z, 0-9 と -_ を含むことが" +#~ "できます。" + +#~ msgid "" +#~ "Unable to load available languages. Setting English as default language. " +#~ "For further instructions please contact the admin of this site." +#~ msgstr "" +#~ "有効な言語をロードできません。英語を既定値の言語とします。より詳しい説明" +#~ "は、このサイトの管理者に連絡してください。" + +#~ msgid "Users also being member of the current group." +#~ msgstr "このグループのメンバーとなっているユーザ。" + +#~ msgid "Windows clients will show display name as group description." +#~ msgstr "Windowsクライアントはグループの説明として名前を表示します。" + +#~ msgid "Windows domain" +#~ msgstr "Windowsドメイン" + +#~ msgid "Windows domain of host." +#~ msgstr "ホストのWindowsドメイン" + +#~ msgid "Windows groupname" +#~ msgstr "Windowsグループ名" + +#~ msgid "Windows-Domain of group." +#~ msgstr "グループのWindowsドメイン。" + +#~ msgid "Windows-Domain of user." +#~ msgstr "ユーザのWindowsドメイン。" + +#~ msgid "" +#~ "You can select a previous defined profile here. This will set all fields " +#~ "to the profile values." +#~ msgstr "" +#~ "ここで、以前に定義したプロファイルを選択できます。これはすべてのフィールド" +#~ "をプロファイルの値に設定します。" + +#~ msgid "right" +#~ msgstr "右" + +#~ msgid "Enter Username and Password for Account" +#~ msgstr "アカウントに対するユーザ名とパスワードを入力" + +#~ msgid "No groups found in ldap." +#~ msgstr "LDAPにグループが見つかりません。" + +#~ msgid "Available group modules" +#~ msgstr "有効なグループモジュール" + +#~ msgid "Available user modules" +#~ msgstr "有効なユーザモジュール" + +#~ msgid "Delete User Profile" +#~ msgstr "ユーザプロファイルの削除" + +#~ msgid "New profile created." +#~ msgstr "新しいプロファイルが作成されました。" + +#~ msgid "No Samba Hosts found!" +#~ msgstr "Sambaホストが見つかりません!" + +#~ msgid "Selected group modules" +#~ msgstr "選択されたグループモジュール" + +#~ msgid "Selected user modules" +#~ msgstr "選択されたユーザモジュール" + +#~ msgid "Special Group" +#~ msgstr "特殊グループ" + +#~ msgid "Wrong profilename given." +#~ msgstr "間違ったプロファイル名が与えられました。" + +#~ msgid "required for Samba accounts" +#~ msgstr "Sambaアカウントにおいて必須" diff --git a/lam/locale/nl_NL/LC_MESSAGES/messages.mo b/lam/locale/nl_NL/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..9760c19e Binary files /dev/null and b/lam/locale/nl_NL/LC_MESSAGES/messages.mo differ diff --git a/lam/locale/nl_NL/LC_MESSAGES/messages.po b/lam/locale/nl_NL/LC_MESSAGES/messages.po new file mode 100644 index 00000000..e0ea2a0b --- /dev/null +++ b/lam/locale/nl_NL/LC_MESSAGES/messages.po @@ -0,0 +1,17917 @@ +# +# LDAP Account Manager +# +msgid "" +msgstr "" +"Project-Id-Version: LAM 0.5\n" +"Report-Msgid-Bugs-To: post@rolandgruber.de\n" +"POT-Creation-Date: 2004-01-14 17:45+0200\n" +"PO-Revision-Date: 2014-09-14 11:47+0100\n" +"Last-Translator: me \n" +"Language-Team: German \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.5.5\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../lib/modules/zarafaContact.inc:95 ../lib/modules/zarafaContact.inc:98 +#: ../lib/modules/zarafaContact.inc:101 ../lib/modules/zarafaContact.inc:126 +#: ../lib/modules/zarafaGroup.inc:97 ../lib/modules/zarafaGroup.inc:100 +#: ../lib/modules/zarafaGroup.inc:103 ../lib/modules/zarafaGroup.inc:130 +#: ../lib/modules/zarafaUser.inc:144 ../lib/modules/zarafaUser.inc:147 +#: ../lib/modules/zarafaUser.inc:150 ../lib/modules/zarafaUser.inc:1812 +msgid "\"Send as\" attribute" +msgstr "\"Verstuur als\" attribuut" + +#: ../lib/modules/zarafaContact.inc:79 ../lib/modules/zarafaContact.inc:150 +#: ../lib/modules/zarafaContact.inc:173 ../lib/modules/zarafaContact.inc:187 +#: ../lib/modules/zarafaContact.inc:226 ../lib/modules/zarafaContact.inc:355 +#: ../lib/modules/zarafaContact.inc:565 ../lib/modules/zarafaGroup.inc:93 +#: ../lib/modules/zarafaGroup.inc:138 ../lib/modules/zarafaGroup.inc:188 +#: ../lib/modules/zarafaGroup.inc:206 ../lib/modules/zarafaGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:263 ../lib/modules/zarafaGroup.inc:415 +#: ../lib/modules/zarafaGroup.inc:650 ../lib/modules/zarafaUser.inc:104 +#: ../lib/modules/zarafaUser.inc:196 ../lib/modules/zarafaUser.inc:355 +#: ../lib/modules/zarafaUser.inc:382 ../lib/modules/zarafaUser.inc:419 +#: ../lib/modules/zarafaUser.inc:463 ../lib/modules/zarafaUser.inc:839 +#: ../lib/modules/zarafaUser.inc:1234 ../lib/modules/zarafaUser.inc:1465 +#: ../lib/modules/zarafaUser.inc:1793 +msgid "\"Send as\" privileges" +msgstr "\"Verstuur als\" privileges" + +#: ../lib/modules/posixAccount.inc:519 +msgid "" +"$user and $group will be replaced with user name and primary group name." +msgstr "" +"$user en $group worden vervangen door gebruikersnaam of de naam van de " +"primaire groep." + +#: ../lib/modules/nisnetgroup.inc:134 +msgid "(host1,user1,example.com);(host2,user2,example.com)" +msgstr "(host1,user1,example.com);(host2,user2,example.com)" + +#: ../lib/modules/qmailUser.inc:368 ../lib/modules/posixAccount.inc:312 +msgid "/home/smiller" +msgstr "/home/smiller" + +#: ../lib/modules/inetOrgPerson.inc:422 +#: ../lib/modules/asteriskVoicemail.inc:186 +msgid "123-123-1234" +msgstr "123-123-1234" + +#: ../lib/modules/inetOrgPerson.inc:438 +msgid "123-123-1235" +msgstr "123-123-1235" + +#: ../lib/modules/inetOrgPerson.inc:446 ../lib/modules/inetOrgPerson.inc:454 +msgid "123-123-1236" +msgstr "123-123-1236" + +#: ../lib/modules/windowsUser.inc:364 ../lib/modules/windowsUser.inc:370 +#: ../lib/modules/inetOrgPerson.inc:430 +msgid "123-124-1234" +msgstr "123-124-1234" + +#: ../lib/modules/windowsUser.inc:322 ../lib/modules/inetOrgPerson.inc:414 +msgid "12345" +msgstr "12345" + +#: ../lib/modules/dhcp_settings.inc:174 +msgid "" +"B-Node (0x01): Broadcast.
    The client tries to find other " +"workstations via broadcasting\n" +"(works only inside the same collision domain, viz. the same subnet).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"The client contacts a Netbios name server (NBNS) from Microsoft Windows Name " +"Service (WINS) for name resolution.

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"The node tries broadcasting first. If that fails then it tries WINS.

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"The node tries WINS first. If that fails it tries broadcasting.

    \n" +"\n" +"By default, the nodes are configured as H-Nodes which fits for small " +"networks. In large networks Point-to-Point (0x02) should be used." +msgstr "" +"B-Node (0x01): Broadcast.
    De cliënt probeert andere werkstations " +"vinden via broadcast\n" +"(werkt alleen binnen hetzelfde netwerksegment en subnet).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"De cliënt neemt contact op met een NetBIOS Name Server (NBNS) van Microsoft " +"Windows Name Service (WINS) voor de naam resolutie.

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"De cliënt probeert Broadcast eerst, als dat niet lukt dan probeert het WINS." +"

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"De cliënt probeert WINS eerst, als dat niet lukt dan probeert het Broadcast." +"

    \n" +"\n" +"Standaard worden de nodes geconfigureerd als H-Nodes wat geschikt is voor " +"kleine netwerken. In grote netwerken kan beter Point-to-Point (0x02) worden " +"gebruikt." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:145 +#, php-format +msgid "Maximum length: %s characters" +msgstr "Maximale lengte: %s tekens" + +#: ../lib/modules/bindDLZ.inc:499 +msgid "A CNAME record allows no other records." +msgstr "Een CNAME-record staat geen andere records toe." + +#: ../lib/modules/bindDLZ.inc:533 +msgid "A NS record allows no other records except SOA/MX/A records." +msgstr "" +"Een NS-record staat geen andere records toe behalve SOA / MX / A records." + +#: ../lib/modules/bindDLZ.inc:517 +msgid "A SOA record allows no other records except NS/MX/A records." +msgstr "" +"Een SOA-record staat geen andere records toe behalve SOA / MX / A -records." + +#: ../lib/modules/bindDLZ.inc:518 +msgid "A SOA record requires that the host name is set to \"@\"." +msgstr "Een SOA record vereist dat de hostnaam is ingesteld op \"@\"." + +#: ../lib/modules/selfRegistration.inc:631 +#: ../lib/modules/passwordSelfReset.inc:1590 +msgid "" +"A confirmation mail was sent. Please click on the link in the mail to " +"proceed." +msgstr "" +"Een bevestigings mail is verzonden. Klik op de link in de mail om verder te " +"gaan." + +#: ../lib/modules/device.inc:82 +msgid "A description for this device." +msgstr "Een beschrijving voor dit apparaat." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +msgid "A list of attributes to display in the results (comma-separated)" +msgstr "" +"Een lijst van attributen om weer te geven in de resultaten (door komma's " +"gescheiden)" + +#: ../lib/modules/sudoRole.inc:95 ../lib/modules/sudoRole.inc:124 +msgid "A list of options (e.g. !authenticate)." +msgstr "Een lijst met opties (bijv. !authenticate)." + +#: ../templates/massBuildAccounts.php:135 +msgid "A required column is missing in your CSV file." +msgstr "Een verplichte kolom ontbreekt in het CSV bestand." + +#: ../lib/modules/bindDLZ.inc:172 ../lib/modules/bindDLZ.inc:176 +msgid "A server name for this service (e.g. \"ldap.example.com.\")." +msgstr "Een server naam voor deze dienst (bijv. \"ldap.example.com.\")." + +#: ../lib/modules/bindDLZ.inc:164 ../lib/modules/bindDLZ.inc:168 +msgid "A text value for this host." +msgstr "Een tekst waarde voor deze host." + +#: ../lib/modules/kolabUser.inc:133 +msgid "" +"A user may define who is allowed to act on behalf of herself. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"Een gebruiker mag bepalen wie het toegestaan is namens hem te handelen. Deze " +"eigenschap wordt gecontroleerd wanneer de Kolab SMTP daemon (Postfix) " +"gebruikt wordt om e-mail te versturen." + +#: ../templates/3rdParty/pla/lib/import_functions.php:593 +msgid "A valid deleteoldrdn attribute should be specified" +msgstr "Een geldige deleteoldrdn attribuut dient te worden aangegeven" + +#: ../templates/3rdParty/pla/lib/import_functions.php:237 +msgid "A valid dn line is required" +msgstr "Een geldige dn lijn is vereist" + +#: ../templates/3rdParty/pla/lib/import_functions.php:596 +msgid "A valid newrdn attribute should be specified" +msgstr "Een geldige newrdn attribuut dient te worden aangegeven" + +#: ../templates/3rdParty/pla/lib/import_functions.php:587 +msgid "A valid newsuperior attribute should be specified" +msgstr "Een geldige newsuperier attribuut dient te worden opgegeven" + +#: ../lib/modules/bindDLZ.inc:96 ../lib/modules/bindDLZ.inc:105 +#: ../lib/modules/bindDLZ.inc:255 ../lib/modules/bindDLZ.inc:261 +#: ../lib/modules/bindDLZ.inc:479 +msgid "A/AAAA record" +msgstr "A/AAAA record" + +#: ../lib/modules/bindDLZ.inc:418 ../lib/modules/bindDLZ.inc:438 +#: ../lib/modules/bindDLZ.inc:1476 +msgid "A/AAAA records" +msgstr "A/AAAA records" + +#: ../lib/modules/asteriskAccount.inc:131 +#: ../lib/modules/asteriskAccount.inc:271 +#: ../lib/modules/asteriskAccount.inc:347 +#: ../lib/modules/asteriskAccount.inc:610 +#: ../lib/modules/asteriskAccount.inc:987 +#: ../lib/modules/asteriskAccount.inc:1243 +msgid "AMA flags" +msgstr "AMA vlaggen" + +#: ../templates/serverInfo.php:342 +msgid "Abandon" +msgstr "Verlaten" + +#: ../templates/lists/changePassword.php:723 +msgid "Aborted password change." +msgstr "Wachtwoord verandering afgebroken." + +#: ../lib/modules/sambaSamAccount.inc:569 +msgid "Abu Dhabi, Muscat, Baku" +msgstr "Abu Dhabi, Muscat, Baku" + +#: ../templates/config/confmain.php:264 ../help/help.inc:109 +msgid "Access level" +msgstr "Toegangsniveau" + +#: ../lib/modules/account.inc:65 +msgid "Account" +msgstr "Account" + +#: ../templates/massBuildAccounts.php:201 ../lib/modules/kolabGroup.inc:178 +#: ../lib/modules/kolabGroup.inc:180 ../lib/modules/kolabGroup.inc:182 +#: ../lib/modules/kolabGroup.inc:184 ../lib/modules/pykotaPrinter.inc:210 +#: ../lib/modules/pykotaPrinter.inc:212 ../lib/modules/pykotaPrinter.inc:214 +#: ../lib/modules/pykotaPrinter.inc:216 ../lib/modules/pykotaPrinter.inc:218 +#: ../lib/modules/pykotaPrinter.inc:219 ../lib/modules/pykotaPrinter.inc:220 +#: ../lib/modules/mitKerberos.inc:290 ../lib/modules/mitKerberos.inc:291 +#: ../lib/modules/mitKerberos.inc:292 ../lib/modules/mitKerberos.inc:294 +#: ../lib/modules/mitKerberos.inc:296 ../lib/modules/mitKerberos.inc:297 +#: ../lib/modules/zarafaDynamicGroup.inc:197 +#: ../lib/modules/zarafaDynamicGroup.inc:199 +#: ../lib/modules/zarafaDynamicGroup.inc:201 +#: ../lib/modules/zarafaDynamicGroup.inc:203 +#: ../lib/modules/zarafaDynamicGroup.inc:204 +#: ../lib/modules/zarafaDynamicGroup.inc:205 ../lib/modules/ipHost.inc:116 +#: ../lib/modules/ipHost.inc:117 ../lib/modules/asteriskAccount.inc:558 +#: ../lib/modules/asteriskAccount.inc:561 +#: ../lib/modules/asteriskAccount.inc:564 +#: ../lib/modules/asteriskAccount.inc:567 +#: ../lib/modules/asteriskAccount.inc:569 +#: ../lib/modules/asteriskAccount.inc:571 +#: ../lib/modules/asteriskAccount.inc:573 +#: ../lib/modules/asteriskAccount.inc:575 +#: ../lib/modules/asteriskAccount.inc:577 ../lib/modules/account.inc:125 +#: ../lib/modules/ieee802device.inc:96 ../lib/modules/puppetClient.inc:185 +#: ../lib/modules/puppetClient.inc:187 ../lib/modules/puppetClient.inc:189 +#: ../lib/modules/puppetClient.inc:190 ../lib/modules/qmailUser.inc:449 +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:453 +#: ../lib/modules/qmailUser.inc:454 ../lib/modules/qmailUser.inc:455 +#: ../lib/modules/qmailUser.inc:457 ../lib/modules/qmailUser.inc:459 +#: ../lib/modules/qmailUser.inc:461 ../lib/modules/qmailUser.inc:464 +#: ../lib/modules/qmailUser.inc:467 ../lib/modules/qmailUser.inc:469 +#: ../lib/modules/qmailUser.inc:470 ../lib/modules/qmailUser.inc:471 +#: ../lib/modules/zarafaContact.inc:186 ../lib/modules/zarafaContact.inc:188 +#: ../lib/modules/zarafaContact.inc:189 ../lib/modules/zarafaContact.inc:190 +#: ../lib/modules/zarafaContact.inc:191 ../lib/modules/windowsHost.inc:132 +#: ../lib/modules/posixGroup.inc:601 ../lib/modules/posixGroup.inc:605 +#: ../lib/modules/posixGroup.inc:606 ../lib/modules/zarafaGroup.inc:216 +#: ../lib/modules/zarafaGroup.inc:218 ../lib/modules/zarafaGroup.inc:219 +#: ../lib/modules/zarafaGroup.inc:220 ../lib/modules/zarafaGroup.inc:221 +#: ../lib/modules/zarafaGroup.inc:223 ../lib/modules/device.inc:141 +#: ../lib/modules/device.inc:142 ../lib/modules/dhcp_settings.inc:321 +#: ../lib/modules/dhcp_settings.inc:323 ../lib/modules/dhcp_settings.inc:325 +#: ../lib/modules/dhcp_settings.inc:327 ../lib/modules/dhcp_settings.inc:329 +#: ../lib/modules/dhcp_settings.inc:330 ../lib/modules/dhcp_settings.inc:331 +#: ../lib/modules/dhcp_settings.inc:333 ../lib/modules/dhcp_settings.inc:335 +#: ../lib/modules/dhcp_settings.inc:339 ../lib/modules/eduPerson.inc:244 +#: ../lib/modules/eduPerson.inc:246 ../lib/modules/eduPerson.inc:248 +#: ../lib/modules/eduPerson.inc:250 ../lib/modules/eduPerson.inc:251 +#: ../lib/modules/eduPerson.inc:252 ../lib/modules/eduPerson.inc:253 +#: ../lib/modules/quota.inc:52 ../lib/modules/quota.inc:54 +#: ../lib/modules/quota.inc:56 ../lib/modules/quota.inc:58 +#: ../lib/modules/quota.inc:60 ../lib/modules/quota.inc:62 +#: ../lib/modules/quota.inc:63 ../lib/modules/zarafaAddressList.inc:170 +#: ../lib/modules/zarafaAddressList.inc:171 +#: ../lib/modules/zarafaAddressList.inc:172 ../lib/modules/pykotaGroup.inc:198 +#: ../lib/modules/pykotaGroup.inc:200 ../lib/modules/pykotaGroup.inc:202 +#: ../lib/modules/pykotaGroup.inc:204 ../lib/modules/pykotaGroup.inc:205 +#: ../lib/modules/sambaSamAccount.inc:96 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:102 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:107 +#: ../lib/modules/sambaSamAccount.inc:108 +#: ../lib/modules/sambaSamAccount.inc:109 +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 +#: ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/sambaSamAccount.inc:117 +#: ../lib/modules/sambaSamAccount.inc:118 +#: ../lib/modules/sambaSamAccount.inc:120 +#: ../lib/modules/sambaSamAccount.inc:121 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/posixAccount.inc:107 ../lib/modules/posixAccount.inc:111 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/posixAccount.inc:124 +#: ../lib/modules/posixAccount.inc:126 ../lib/modules/posixAccount.inc:127 +#: ../lib/modules/posixAccount.inc:128 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/zarafaUser.inc:409 ../lib/modules/zarafaUser.inc:411 +#: ../lib/modules/zarafaUser.inc:413 ../lib/modules/zarafaUser.inc:414 +#: ../lib/modules/zarafaUser.inc:416 ../lib/modules/zarafaUser.inc:418 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/zarafaUser.inc:421 +#: ../lib/modules/zarafaUser.inc:422 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:424 ../lib/modules/zarafaUser.inc:425 +#: ../lib/modules/zarafaUser.inc:426 ../lib/modules/zarafaUser.inc:427 +#: ../lib/modules/ppolicyUser.inc:97 ../lib/modules/bindDLZ.inc:478 +#: ../lib/modules/bindDLZ.inc:480 ../lib/modules/bindDLZ.inc:482 +#: ../lib/modules/bindDLZ.inc:484 ../lib/modules/bindDLZ.inc:486 +#: ../lib/modules/bindDLZ.inc:488 ../lib/modules/bindDLZ.inc:490 +#: ../lib/modules/bindDLZ.inc:492 ../lib/modules/bindDLZ.inc:494 +#: ../lib/modules/bindDLZ.inc:496 ../lib/modules/bindDLZ.inc:498 +#: ../lib/modules/bindDLZ.inc:499 ../lib/modules/bindDLZ.inc:501 +#: ../lib/modules/bindDLZ.inc:503 ../lib/modules/bindDLZ.inc:505 +#: ../lib/modules/bindDLZ.inc:507 ../lib/modules/bindDLZ.inc:509 +#: ../lib/modules/bindDLZ.inc:511 ../lib/modules/bindDLZ.inc:513 +#: ../lib/modules/bindDLZ.inc:515 ../lib/modules/bindDLZ.inc:516 +#: ../lib/modules/bindDLZ.inc:517 ../lib/modules/bindDLZ.inc:518 +#: ../lib/modules/bindDLZ.inc:520 ../lib/modules/bindDLZ.inc:522 +#: ../lib/modules/bindDLZ.inc:524 ../lib/modules/bindDLZ.inc:526 +#: ../lib/modules/bindDLZ.inc:528 ../lib/modules/bindDLZ.inc:530 +#: ../lib/modules/bindDLZ.inc:532 ../lib/modules/bindDLZ.inc:533 +#: ../lib/modules/windowsUser.inc:590 ../lib/modules/windowsUser.inc:592 +#: ../lib/modules/windowsUser.inc:594 ../lib/modules/windowsUser.inc:596 +#: ../lib/modules/windowsUser.inc:598 ../lib/modules/windowsUser.inc:600 +#: ../lib/modules/windowsUser.inc:602 ../lib/modules/windowsUser.inc:604 +#: ../lib/modules/windowsUser.inc:606 ../lib/modules/windowsUser.inc:608 +#: ../lib/modules/windowsUser.inc:610 ../lib/modules/windowsUser.inc:612 +#: ../lib/modules/windowsUser.inc:614 ../lib/modules/windowsUser.inc:617 +#: ../lib/modules/windowsUser.inc:619 ../lib/modules/windowsUser.inc:621 +#: ../lib/modules/windowsUser.inc:1360 ../lib/modules/windowsUser.inc:1369 +#: ../lib/modules/windowsUser.inc:1378 ../lib/modules/windowsUser.inc:1389 +#: ../lib/modules/windowsUser.inc:1456 ../lib/modules/kolabUser.inc:246 +#: ../lib/modules/kolabUser.inc:248 ../lib/modules/kolabUser.inc:250 +#: ../lib/modules/kolabUser.inc:252 ../lib/modules/kolabUser.inc:254 +#: ../lib/modules/kolabUser.inc:256 ../lib/modules/kolabUser.inc:258 +#: ../lib/modules/ddns.inc:152 ../lib/modules/nisObject.inc:124 +#: ../lib/modules/sambaGroupMapping.inc:603 +#: ../lib/modules/sambaGroupMapping.inc:604 ../lib/modules/pykotaUser.inc:312 +#: ../lib/modules/pykotaUser.inc:314 ../lib/modules/pykotaUser.inc:316 +#: ../lib/modules/pykotaUser.inc:318 ../lib/modules/pykotaUser.inc:320 +#: ../lib/modules/pykotaUser.inc:321 ../lib/modules/pykotaUser.inc:323 +#: ../lib/modules/pykotaUser.inc:325 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/shadowAccount.inc:60 ../lib/modules/shadowAccount.inc:62 +#: ../lib/modules/shadowAccount.inc:64 ../lib/modules/shadowAccount.inc:66 +#: ../lib/modules/shadowAccount.inc:67 ../lib/modules/automount.inc:115 +#: ../lib/modules/sambaDomain.inc:209 ../lib/modules/sambaDomain.inc:211 +#: ../lib/modules/sambaDomain.inc:213 ../lib/modules/sambaDomain.inc:215 +#: ../lib/modules/sambaDomain.inc:217 ../lib/modules/sambaDomain.inc:219 +#: ../lib/modules/inetOrgPerson.inc:67 ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:71 ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:75 ../lib/modules/inetOrgPerson.inc:77 +#: ../lib/modules/inetOrgPerson.inc:79 ../lib/modules/inetOrgPerson.inc:82 +#: ../lib/modules/inetOrgPerson.inc:84 ../lib/modules/inetOrgPerson.inc:86 +#: ../lib/modules/inetOrgPerson.inc:88 ../lib/modules/inetOrgPerson.inc:90 +#: ../lib/modules/inetOrgPerson.inc:92 ../lib/modules/inetOrgPerson.inc:94 +#: ../lib/modules/inetOrgPerson.inc:96 ../lib/modules/inetOrgPerson.inc:98 +#: ../lib/modules/inetOrgPerson.inc:99 ../lib/modules/inetOrgPerson.inc:100 +#: ../lib/modules/inetOrgPerson.inc:106 ../lib/modules/inetOrgPerson.inc:107 +#: ../lib/modules/inetOrgPerson.inc:108 ../lib/modules/systemQuotas.inc:98 +#: ../lib/modules/systemQuotas.inc:100 ../lib/modules/systemQuotas.inc:102 +#: ../lib/modules/systemQuotas.inc:104 ../lib/modules/systemQuotas.inc:106 +#: ../lib/modules/systemQuotas.inc:108 ../lib/modules/systemQuotas.inc:110 +#: ../lib/modules/freeRadius.inc:250 ../lib/modules/freeRadius.inc:252 +#: ../lib/modules/freeRadius.inc:254 ../lib/modules/freeRadius.inc:256 +#: ../lib/modules/freeRadius.inc:258 ../lib/modules/freeRadius.inc:260 +#: ../lib/modules/sudoRole.inc:270 ../lib/modules/sudoRole.inc:272 +#: ../lib/modules/sudoRole.inc:274 ../lib/modules/sudoRole.inc:276 +#: ../lib/modules/sudoRole.inc:278 ../lib/modules/sudoRole.inc:280 +#: ../lib/modules/sudoRole.inc:282 ../lib/modules/sudoRole.inc:284 +#: ../lib/modules/sudoRole.inc:286 ../lib/modules/kolabSharedFolder.inc:251 +#: ../lib/modules/kolabSharedFolder.inc:253 +#: ../lib/modules/kolabSharedFolder.inc:255 +#: ../lib/modules/kolabSharedFolder.inc:256 +#: ../lib/modules/kolabSharedFolder.inc:258 +#: ../lib/modules/kolabSharedFolder.inc:260 +#: ../lib/modules/zarafaServer.inc:174 ../lib/modules/zarafaServer.inc:176 +#: ../lib/modules/zarafaServer.inc:178 ../lib/modules/zarafaServer.inc:179 +#: ../lib/modules/asteriskVoicemail.inc:212 +#: ../lib/modules/asteriskVoicemail.inc:216 +#: ../lib/modules/asteriskVoicemail.inc:219 +#: ../lib/modules/asteriskVoicemail.inc:221 +#: ../lib/modules/asteriskVoicemail.inc:223 +#: ../lib/modules/asteriskVoicemail.inc:225 +#: ../lib/modules/asteriskVoicemail.inc:227 +#: ../lib/modules/inetLocalMailRecipient.inc:131 +#: ../lib/modules/inetLocalMailRecipient.inc:133 +#: ../lib/modules/inetLocalMailRecipient.inc:135 +#: ../lib/modules/aliasEntry.inc:86 ../lib/modules/qmailGroup.inc:421 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:426 +#: ../lib/modules/qmailGroup.inc:428 ../lib/modules/qmailGroup.inc:430 +#: ../lib/modules/qmailGroup.inc:432 ../lib/modules/qmailGroup.inc:433 +#: ../lib/modules/qmailGroup.inc:434 ../lib/modules/qmailGroup.inc:435 +#: ../lib/modules/qmailGroup.inc:436 ../lib/modules/qmailGroup.inc:437 +#: ../lib/modules/authorizedServiceObject.inc:130 +#: ../lib/modules/passwordSelfReset.inc:233 +#: ../lib/modules/heimdalKerberos.inc:254 +#: ../lib/modules/heimdalKerberos.inc:255 +#: ../lib/modules/heimdalKerberos.inc:256 +#: ../lib/modules/heimdalKerberos.inc:258 +#: ../lib/modules/heimdalKerberos.inc:260 +#: ../lib/modules/pykotaBillingCode.inc:128 +#: ../lib/modules/pykotaBillingCode.inc:130 +#: ../lib/modules/windowsGroup.inc:284 ../lib/modules/windowsGroup.inc:286 +#: ../lib/modules/windowsGroup.inc:287 ../lib/modules/windowsGroup.inc:288 +#: ../lib/modules/windowsGroup.inc:290 ../lib/modules/nisMailAlias.inc:126 +#: ../lib/modules/nisMailAlias.inc:128 ../lib/modules/hostObject.inc:111 +#, php-format +msgid "Account %s:" +msgstr "Account %s:" + +#: ../lib/types/asteriskExt.inc:95 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskAccount.inc:111 +#: ../lib/modules/asteriskAccount.inc:255 +#: ../lib/modules/asteriskAccount.inc:267 +#: ../lib/modules/asteriskAccount.inc:311 +#: ../lib/modules/asteriskAccount.inc:593 +#: ../lib/modules/asteriskAccount.inc:983 +#: ../lib/modules/asteriskExtension.inc:98 +#: ../lib/modules/asteriskExtension.inc:129 +#: ../lib/modules/asteriskExtension.inc:136 +#: ../lib/modules/asteriskExtension.inc:152 +#: ../lib/modules/asteriskExtension.inc:306 +#: ../lib/modules/asteriskExtension.inc:812 +#: ../lib/modules/asteriskVoicemail.inc:91 +#: ../lib/modules/asteriskVoicemail.inc:127 +#: ../lib/modules/asteriskVoicemail.inc:137 +#: ../lib/modules/asteriskVoicemail.inc:151 +#: ../lib/modules/asteriskVoicemail.inc:247 +#: ../lib/modules/asteriskVoicemail.inc:370 +msgid "Account context" +msgstr "Account context" + +#: ../lib/modules/selfRegistration.inc:449 +msgid "Account creation" +msgstr "Account maken" + +#: ../lib/modules/selfRegistration.inc:231 +msgid "Account creation confirmation" +msgstr "Aanmaken van een account bevestiging" + +#: ../templates/masscreate.php:125 +msgid "Account creation via file upload" +msgstr "Account aanmaken via upload van bestand" + +#: ../lib/modules/posixAccount.inc:526 +msgid "Account deactivated" +msgstr "Account op nonactief gezet" + +#: ../templates/lists/changePassword.php:280 +msgid "Account details" +msgstr "Account details" + +#: ../lib/types/user.inc:104 ../lib/modules/mitKerberos.inc:124 +#: ../lib/modules/mitKerberos.inc:218 ../lib/modules/mitKerberos.inc:251 +#: ../lib/modules/mitKerberos.inc:385 ../lib/modules/mitKerberos.inc:634 +#: ../lib/modules/mitKerberos.inc:783 ../lib/modules/sambaSamAccount.inc:346 +#: ../lib/modules/sambaSamAccount.inc:464 +#: ../lib/modules/sambaSamAccount.inc:1194 +#: ../lib/modules/sambaSamAccount.inc:1452 +#: ../lib/modules/sambaSamAccount.inc:1746 +#: ../lib/modules/shadowAccount.inc:128 ../lib/modules/shadowAccount.inc:193 +#: ../lib/modules/shadowAccount.inc:233 ../lib/modules/shadowAccount.inc:352 +#: ../lib/modules/shadowAccount.inc:453 ../lib/modules/shadowAccount.inc:499 +#: ../lib/modules/heimdalKerberos.inc:102 +#: ../lib/modules/heimdalKerberos.inc:187 +#: ../lib/modules/heimdalKerberos.inc:219 +#: ../lib/modules/heimdalKerberos.inc:321 +#: ../lib/modules/heimdalKerberos.inc:544 +#: ../lib/modules/heimdalKerberos.inc:679 +msgid "Account expiration date" +msgstr "Verloopdatum account" + +#: ../lib/modules/shadowAccount.inc:169 +msgid "Account inactive" +msgstr "Niet actief account" + +#: ../lib/modules/sambaSamAccount.inc:286 +#: ../lib/modules/sambaSamAccount.inc:292 +#: ../lib/modules/sambaSamAccount.inc:456 +#: ../lib/modules/sambaSamAccount.inc:1152 +#: ../lib/modules/sambaSamAccount.inc:1742 ../lib/modules/windowsUser.inc:192 +#: ../lib/modules/windowsUser.inc:386 ../lib/modules/windowsUser.inc:517 +#: ../lib/modules/windowsUser.inc:744 ../lib/modules/windowsUser.inc:1619 +msgid "Account is deactivated" +msgstr "Account is gedeactiveerd" + +#: ../lib/modules/sambaSamAccount.inc:289 +#: ../lib/modules/sambaSamAccount.inc:1158 ../lib/modules/windowsUser.inc:195 +#: ../lib/modules/windowsUser.inc:725 +msgid "Account is locked" +msgstr "Account is geblokkeerd" + +#: ../templates/delete.php:99 +msgid "Account name:" +msgstr "Accountnaam:" + +#: ../lib/types/user.inc:305 ../lib/types/user.inc:714 +#: ../lib/types/user.inc:848 ../lib/modules/qmailUser.inc:211 +#: ../lib/modules/qmailUser.inc:283 ../lib/modules/qmailUser.inc:402 +#: ../lib/modules/qmailUser.inc:609 ../lib/modules/qmailUser.inc:1157 +msgid "Account status" +msgstr "Account status" + +#: ../templates/masscreate.php:152 ../lib/modules/asteriskAccount.inc:119 +#: ../lib/modules/asteriskAccount.inc:256 +#: ../lib/modules/asteriskAccount.inc:269 +#: ../lib/modules/asteriskAccount.inc:331 +#: ../lib/modules/asteriskAccount.inc:595 +#: ../lib/modules/asteriskAccount.inc:985 ../lib/modules/customFields.inc:524 +#: ../lib/modules/customFields.inc:566 +msgid "Account type" +msgstr "Account type" + +#: ../templates/config/confmodules.php:168 +#: ../templates/config/confmain.php:209 +#: ../templates/config/moduleSettings.php:167 +#: ../templates/config/conftypes.php:186 +msgid "Account types" +msgstr "Account types" + +#: ../help/help.inc:111 +msgid "Account types and modules" +msgstr "Account types en modules" + +#: ../help/help.inc:113 +msgid "" +"Account types define which sorts of LDAP entries (e.g. users and groups) " +"should be managed. The account modules define which properties (e.g. Unix " +"and Samba) can be edited." +msgstr "" +"Type accounts bepalen welk soort LDAP items (bijvoorbeeld gebruikers en " +"groepen) beheerd zouden moeten worden. De account modules bepalen welke " +"eigenschappen (bijvoorbeeld Unix en Samba) geredigeerd kunnen worden." + +#: ../lib/modules.inc:1315 +msgid "Account was created successfully." +msgstr "Account is aangemaakt." + +#: ../templates/lists/changePassword.php:753 +#: ../templates/lists/changePassword.php:805 +#: ../templates/lists/changePassword.php:851 ../lib/modules.inc:1318 +msgid "Account was modified successfully." +msgstr "Account is met succes aangepast." + +#: ../lib/modules/customScripts.inc:168 +msgid "Action type" +msgstr "Type actie" + +#: ../lib/modules/ddns.inc:81 ../lib/modules/ddns.inc:368 +msgid "Activate DynDNS" +msgstr "Activeer DynDNS" + +#: ../templates/config/confmain.php:243 +#: ../templates/selfService/adminMain.php:419 +msgid "Activate TLS" +msgstr "Activeer TLS" + +#: ../lib/modules/sambaSamAccount.inc:353 +msgid "Activate this checkbox to allow this user to use the terminal service." +msgstr "" +"Activeer deze checkbox om deze gebruiker het recht te geven voor het gebruik " +"van de terminal serivice." + +#: ../lib/modules/sambaSamAccount.inc:374 +msgid "Activate this checkbox to connect drives from the client machine." +msgstr "Activeer deze checkbox om drives aan te sluiten van de client machine." + +#: ../lib/modules/sambaSamAccount.inc:377 +msgid "Activate this checkbox to connect printers from the client machine." +msgstr "" +"Activeer deze checkbox om printers aan te sluiten van de client machine." + +#: ../lib/modules/sambaSamAccount.inc:362 +msgid "" +"Activate this checkbox to inherit the initial program and working directory " +"from the client machine." +msgstr "" +"Activeer deze checkbox om het oorspronkelijke programma en de werkdirectory " +"van de client machine te erven." + +#: ../lib/modules/sambaSamAccount.inc:380 +msgid "Activate this checkbox to set the client's printer as default printer." +msgstr "" +"Activeer deze checkbox op de client's printer als standaardprinter in te " +"stellen." + +#: ../lib/modules/posixAccount.inc:478 +msgid "Activating this checkbox will remove the user's home directory." +msgstr "" +"Aanvinken van deze mogelijkheid zal de homedirectory van de gebruiker " +"verwijderen." + +#: ../lib/types/zarafaAddressListType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:93 +#: ../lib/modules/zarafaDynamicGroup.inc:83 +#: ../lib/modules/zarafaDynamicGroup.inc:144 +#: ../lib/modules/zarafaDynamicGroup.inc:168 +#: ../lib/modules/zarafaDynamicGroup.inc:281 +#: ../lib/modules/zarafaDynamicGroup.inc:456 ../lib/modules/qmailUser.inc:41 +#: ../lib/modules/qmailUser.inc:285 ../lib/modules/zarafaContact.inc:75 +#: ../lib/modules/zarafaContact.inc:156 ../lib/modules/zarafaContact.inc:254 +#: ../lib/modules/zarafaGroup.inc:89 ../lib/modules/zarafaGroup.inc:154 +#: ../lib/modules/zarafaGroup.inc:195 ../lib/modules/zarafaGroup.inc:302 +#: ../lib/modules/zarafaGroup.inc:660 ../lib/modules/zarafaAddressList.inc:71 +#: ../lib/modules/zarafaAddressList.inc:120 +#: ../lib/modules/zarafaAddressList.inc:142 +#: ../lib/modules/zarafaAddressList.inc:222 +#: ../lib/modules/zarafaAddressList.inc:338 ../lib/modules/zarafaUser.inc:84 +#: ../lib/modules/zarafaUser.inc:255 ../lib/modules/zarafaUser.inc:594 +#: ../lib/modules/zarafaUser.inc:1801 ../lib/modules/fixed_ip.inc:114 +#: ../lib/modules/fixed_ip.inc:438 ../lib/modules/fixed_ip.inc:743 +msgid "Active" +msgstr "Actief" + +#: ../templates/config/conftypes.php:233 +msgid "Active account types" +msgstr "Actieve account types" + +#: ../templates/serverInfo.php:307 ../templates/serverInfo.php:384 +#: ../templates/multiEdit.php:126 ../templates/config/profmanage.php:252 +#: ../templates/config/confmodules.php:305 +#: ../templates/config/conftypes.php:223 +#: ../templates/selfService/profManage.php:209 +#: ../templates/pdfedit/pdfpage.php:596 ../templates/pdfedit/pdfpage.php:606 +#: ../templates/pdfedit/pdfpage.php:616 ../templates/pdfedit/pdfpage.php:630 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1206 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1210 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:78 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:121 +#: ../lib/modules/pykotaPrinter.inc:269 ../lib/modules/pykotaPrinter.inc:430 +#: ../lib/modules/nisMailAliasUser.inc:162 +#: ../lib/modules/nisMailAliasUser.inc:201 +#: ../lib/modules/nisMailAliasUser.inc:387 +#: ../lib/modules/zarafaContact.inc:390 ../lib/modules/zarafaGroup.inc:450 +#: ../lib/modules/device.inc:253 ../lib/modules/zarafaUser.inc:874 +#: ../lib/modules/zarafaUser.inc:1462 ../lib/modules/zarafaUser.inc:1494 +#: ../lib/modules/bindDLZ.inc:675 ../lib/modules/bindDLZ.inc:767 +#: ../lib/modules/bindDLZ.inc:847 ../lib/modules/bindDLZ.inc:951 +#: ../lib/modules/bindDLZ.inc:1067 ../lib/modules/bindDLZ.inc:1179 +#: ../lib/modules/bindDLZ.inc:1275 ../lib/modules/bindDLZ.inc:1389 +#: ../lib/modules/kolabUser.inc:835 ../lib/modules/kolabUser.inc:883 +#: ../lib/modules/sambaGroupMapping.inc:392 +#: ../lib/modules/sambaGroupMapping.inc:489 ../lib/modules/pykotaUser.inc:377 +#: ../lib/modules/ldapPublicKey.inc:267 ../lib/modules/ldapPublicKey.inc:277 +#: ../lib/modules/nisnetgroup.inc:282 ../lib/modules/inetOrgPerson.inc:1742 +#: ../lib/modules/sudoRole.inc:321 ../lib/modules/sudoRole.inc:348 +#: ../lib/modules/sudoRole.inc:375 ../lib/modules/sudoRole.inc:402 +#: ../lib/modules/sudoRole.inc:429 ../lib/modules/sudoRole.inc:456 +#: ../lib/modules/customFields.inc:1083 ../lib/modules/customFields.inc:2091 +#: ../lib/modules/customFields.inc:2101 ../lib/modules/qmailGroup.inc:822 +#: ../lib/modules/organizationalRole.inc:317 ../lib/modules/fixed_ip.inc:586 +#: ../lib/modules/windowsGroup.inc:556 ../lib/modules/groupOfNames.inc:374 +#: ../lib/modules/groupOfNames.inc:529 +msgid "Add" +msgstr "Toevoegen" + +#: ../lib/modules/asteriskAccount.inc:762 +msgid "Add Asterisk account" +msgstr "Voeg Asterisk-account toe" + +#: ../lib/modules/asteriskVoicemail.inc:269 +msgid "Add Asterisk voicemail extension" +msgstr "Voeg Asterisk voicemail extensie toe" + +#: ../lib/modules/authorizedServiceObject.inc:175 +msgid "Add Authorized Service extension" +msgstr "Voeg Authorized Service extensie toe" + +#: ../lib/modules/eduPerson.inc:360 +msgid "Add EDU person extension" +msgstr "Voeg EDU person extensie toe" + +#: ../lib/modules/freeRadius.inc:312 +msgid "Add FreeRadius extension" +msgstr "Voeg FreeRadius extensie toe" + +#: ../lib/modules/ipHost.inc:165 +msgid "Add IP address extension" +msgstr "Voeg IP address extensie toe" + +#: ../lib/modules/mitKerberos.inc:478 ../lib/modules/heimdalKerberos.inc:402 +msgid "Add Kerberos extension" +msgstr "Voeg Kerberos extensie toe" + +#: ../lib/modules/kolabGroup.inc:121 ../lib/modules/kolabGroup.inc:133 +#: ../lib/modules/kolabGroup.inc:220 ../lib/modules/kolabUser.inc:394 +msgid "Add Kolab extension" +msgstr "Voeg Kolab extensie toe" + +#: ../lib/modules/puppetClient.inc:224 +msgid "Add Puppet extension" +msgstr "Voeg Puppet extensie toe" + +#: ../lib/modules/pykotaGroup.inc:245 ../lib/modules/pykotaUser.inc:425 +msgid "Add PyKota extension" +msgstr "Voeg PyKota extensie toe" + +#: ../lib/modules/sambaSamAccount.inc:1316 +#: ../lib/modules/sambaGroupMapping.inc:428 +msgid "Add Samba 3 extension" +msgstr "Voeg Samba 3 extensie toe" + +#: ../lib/modules/shadowAccount.inc:380 +msgid "Add Shadow account extension" +msgstr "Voeg Shadow account extensie toe" + +#: ../lib/modules/posixGroup.inc:253 ../lib/modules/posixAccount.inc:1518 +msgid "Add Unix extension" +msgstr "Voeg Unix extensie toe" + +#: ../lib/modules/zarafaContact.inc:134 ../lib/modules/zarafaContact.inc:202 +msgid "Add Zarafa contact extension" +msgstr "Voeg Zarafa contact extensie toe" + +#: ../lib/modules/zarafaContact.inc:110 ../lib/modules/zarafaContact.inc:111 +#: ../lib/modules/zarafaGroup.inc:312 ../lib/modules/zarafaUser.inc:167 +#: ../lib/modules/zarafaUser.inc:168 ../lib/modules/zarafaUser.inc:179 +#: ../lib/modules/zarafaUser.inc:438 ../lib/modules/zarafaServer.inc:237 +msgid "Add Zarafa extension" +msgstr "Voeg Zarafa extensie toe" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add all" +msgstr "Voeg alle toe" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2073 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2091 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "Add an additional value to attribute" +msgstr "Voeg een extra waarde toe aan attribuut" + +#: ../lib/modules/asteriskExtension.inc:350 +msgid "Add another rule" +msgstr "Nog een regel toevoegen" + +#: ../lib/modules/inetOrgPerson.inc:1777 +#: ../lib/modules/organizationalRole.inc:322 +#: ../lib/modules/groupOfNames.inc:379 ../lib/modules/groupOfNames.inc:534 +msgid "Add entries" +msgstr "Items toevoegen" + +#: ../lib/modules/zarafaContact.inc:429 ../lib/modules/zarafaGroup.inc:489 +#: ../lib/modules/device.inc:296 ../lib/modules/zarafaUser.inc:913 +#: ../lib/modules/sambaGroupMapping.inc:504 ../lib/modules/qmailGroup.inc:858 +#: ../lib/modules/organizationalRole.inc:333 +#: ../lib/modules/windowsGroup.inc:599 ../lib/modules/groupOfNames.inc:390 +#: ../lib/modules/groupOfNames.inc:545 +msgid "Add entries of this type:" +msgstr "Voeg items van dit type toe:" + +#: ../lib/modules/fixed_ip.inc:544 +msgid "Add existing host" +msgstr "Voeg bestaande host toe" + +#: ../lib/modules/customFields.inc:439 +msgid "Add extension" +msgstr "Voeg extensie toe" + +#: ../lib/modules/ddns.inc:369 +msgid "Add fix IP addresses to DNS" +msgstr "Voeg vaste IP-adressen toe aan DNS" + +#: ../lib/modules/hostObject.inc:152 +msgid "Add host extension" +msgstr "Voeg host extensie toe" + +#: ../templates/selfService/adminMain.php:599 ../help/help.inc:232 +msgid "Add input field" +msgstr "Voeg invoerveld toe" + +#: ../templates/multiEdit.php:148 +msgid "Add more fields" +msgstr "Voeg meer velden toe" + +#: ../lib/modules/customFields.inc:2973 +msgid "Add more mapping fields" +msgstr "Voeg meer veld toewijzingen toe" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:37 +#, php-format +msgid "Add new %s value to %s" +msgstr "Voeg nieuwe %s waarde toe aan %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1208 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:29 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:48 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:166 +msgid "Add new attribute" +msgstr "Toevoegen nieuw attribuut" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1207 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +msgid "Add new attribute to this object" +msgstr "Voeg nieuwe attribuut toe aan dit object" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:89 +msgid "Add new binary attribute" +msgstr "Toevoegen nieuw binair attribuut" + +#: ../lib/modules/customFields.inc:1082 ../lib/modules/customFields.inc:1083 +msgid "Add new field" +msgstr "Voeg nieuwe veld toe" + +#: ../templates/selfService/adminMain.php:591 ../help/help.inc:230 +msgid "Add new group" +msgstr "Nieuwe groep toevoegen" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:117 +msgid "Add new object class" +msgstr "Voeg een nieuwe object klasse toe" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:60 +#, php-format +msgid "Add new object class to %s" +msgstr "Voeg nieuw object classen toe aan %s" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:94 +msgid "Add object class and attributes" +msgstr "Voeg object-klasse en attributen toe" + +#: ../lib/modules/passwordSelfReset.inc:245 +msgid "Add password self reset extension" +msgstr "Voeg password zelf reset extensie toe" + +#: ../lib/modules/inetOrgPerson.inc:770 ../lib/modules/inetOrgPerson.inc:1618 +#: ../lib/modules/inetOrgPerson.inc:1701 ../lib/modules/inetOrgPerson.inc:2714 +msgid "Add photo" +msgstr "Voeg foto toe" + +#: ../templates/config/profmanage.php:239 +#: ../templates/config/profmanage.php:253 +#: ../templates/selfService/profManage.php:202 +#: ../templates/selfService/profManage.php:210 ../help/help.inc:130 +msgid "Add profile" +msgstr "Toevoegen profiel" + +#: ../lib/modules/qmailUser.inc:712 ../lib/modules/qmailGroup.inc:633 +msgid "Add qmail extension" +msgstr "Voeg qmail extensie toe" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add selected" +msgstr "Selectie toevoegen" + +#: ../lib/modules/nisMailAliasUser.inc:374 +msgid "Add to existing alias" +msgstr "Toevoegen aan bestaande alias" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:149 +msgid "Add value" +msgstr "Waarde toevoegen" + +#: ../templates/3rdParty/pla/htdocs/import.php:28 +msgid "Adding" +msgstr "Het toevoegen van" + +#: ../lib/modules/range.inc:136 +msgid "Adding the range failed because errors occured." +msgstr "Het toevoegen van de range is mislukt omdat fouten zijn opgetreden." + +#: ../templates/selfService/adminMain.php:495 ../help/help.inc:236 +msgid "Additional CSS links" +msgstr "Additionele CSS links" + +#: ../templates/config/conftypes.php:289 +#: ../templates/selfService/adminMain.php:440 ../help/help.inc:170 +#: ../help/help.inc:240 +msgid "Additional LDAP filter" +msgstr "Extra LDAP filter" + +#: ../lib/modules/zarafaDynamicGroup.inc:72 +#: ../lib/modules/zarafaDynamicGroup.inc:76 ../lib/modules/zarafaGroup.inc:74 +#: ../lib/modules/zarafaGroup.inc:78 +msgid "Additional email addresses for this entry." +msgstr "Extra e-mailadressen voor dit item." + +#: ../lib/modules/posixAccount.inc:304 ../lib/modules/posixAccount.inc:415 +#: ../lib/modules/posixAccount.inc:469 ../lib/modules/posixAccount.inc:534 +#: ../lib/modules/posixAccount.inc:1453 ../lib/modules/posixAccount.inc:1737 +#: ../lib/modules/posixAccount.inc:1853 +msgid "Additional groups" +msgstr "Additionele groepen" + +#: ../lib/modules/windowsGroup.inc:123 +msgid "Additional notes to describe this entry." +msgstr "Aanvullende toelichting op dit item te beschrijven." + +#: ../templates/config/mainmanage.php:440 +msgid "Additional options" +msgstr "Meer opties" + +#: ../templates/massDoUpload.php:160 +msgid "Additional tasks for module:" +msgstr "Additionele taken voor module:" + +#: ../lib/modules/windowsUser.inc:707 ../lib/modules/inetOrgPerson.inc:1244 +msgid "Address" +msgstr "Adres" + +#: ../lib/types/zarafaAddressListType.inc:144 +#, php-format +msgid "Address list count: %s" +msgstr "Adressenlijst aantal: %s" + +#: ../lib/modules/imapAccess.inc:78 +msgid "Address of IMAP server (e.g. mail.example.org)." +msgstr "Adres van de IMAP-server (bijv. mail.example.org)." + +#: ../help/help.inc:231 +msgid "" +"Adds a new group element to the list of self service options. Use this to " +"structure the input fields." +msgstr "" +"Voegt een nieuwe groep element toe aan de lijst van zelf service " +"mogelijkheden. Gebruik dit om de invoervelden te structuren." + +#: ../lib/modules/range.inc:114 +msgid "Adds a new range pool." +msgstr "Voegt een reeks poel toe." + +#: ../help/help.inc:233 +msgid "Adds a new self service option to the selected group element." +msgstr "" +"Voegt een nieuwe zelf-service optie toe aan het geselecteerde groep element." + +#: ../lib/modules/range.inc:110 +msgid "Adds input fields for a new IP range." +msgstr "Voegt invoervelden toe voor een nieuwe IP range." + +#: ../lib/modules/pykotaUser.inc:153 +msgid "Adds the amount to the user's balance. You can also specify a comment." +msgstr "" +"Voegt de hoeveelheid toe aan de tegoed van de gebruiker. U kunt ook " +"commentaar opgeven." + +#: ../lib/modules/kolabUser.inc:171 +msgid "Adds the object class \"mailrecipient\" to all user accounts." +msgstr "" +"Voegt de object class \"mailrecipient\" toe aan alle gebruikersaccounts." + +#: ../lib/modules/kolabGroup.inc:122 +msgid "Adds this Kolab extension." +msgstr "Voeg deze Kolab extensie toe" + +#: ../lib/modules/zarafaUser.inc:108 ../lib/modules/zarafaUser.inc:282 +#: ../lib/modules/zarafaUser.inc:340 ../lib/modules/zarafaUser.inc:603 +#: ../lib/modules/zarafaUser.inc:1262 +msgid "Admin" +msgstr "Beheerder" + +#: ../lib/modules/selfRegistration.inc:61 +#: ../lib/modules/selfRegistration.inc:199 +#: ../lib/modules/passwordSelfReset.inc:104 +#: ../lib/modules/passwordSelfReset.inc:518 +msgid "Admin DN" +msgstr "Admin DN" + +#: ../lib/modules/bindDLZ.inc:231 ../lib/modules/bindDLZ.inc:351 +#: ../lib/modules/bindDLZ.inc:428 ../lib/modules/bindDLZ.inc:529 +#: ../lib/modules/bindDLZ.inc:1051 ../lib/modules/bindDLZ.inc:1553 +msgid "Admin email" +msgstr "Admin email" + +#: ../lib/modules/selfRegistration.inc:65 +#: ../lib/modules/selfRegistration.inc:204 ../lib/modules/imapAccess.inc:136 +#: ../lib/modules/passwordSelfReset.inc:108 +#: ../lib/modules/passwordSelfReset.inc:522 +msgid "Admin password" +msgstr "Admin wachtwoord" + +#: ../lib/modules/inetOrgPerson.inc:374 ../lib/modules/inetOrgPerson.inc:496 +#: ../lib/modules/inetOrgPerson.inc:504 +msgid "Administration" +msgstr "Beheerder" + +#: ../lib/modules/posixGroup.inc:473 ../lib/modules/pykotaGroup.inc:168 +#: ../lib/modules/nisnetgroup.inc:122 +#: ../lib/modules/organizationalRole.inc:125 +#: ../lib/modules/groupOfNames.inc:137 +msgid "Administrators group" +msgstr "Administratorgroep" + +#: ../templates/config/confmain.php:276 ../templates/config/conftypes.php:335 +#: ../lib/modules/posixAccount.inc:271 ../lib/modules/inetOrgPerson.inc:3686 +msgid "Advanced options" +msgstr "Geavanceerde opties" + +#: ../lib/modules/eduPerson.inc:105 ../lib/modules/eduPerson.inc:109 +#: ../lib/modules/eduPerson.inc:181 ../lib/modules/eduPerson.inc:225 +#: ../lib/modules/eduPerson.inc:328 ../lib/modules/eduPerson.inc:585 +msgid "Affiliations" +msgstr "Lidmaatschap" + +#: ../lib/modules/sambaSamAccount.inc:556 +msgid "Alaska" +msgstr "Alaska" + +#: ../lib/modules/sambaDomain.inc:218 ../lib/modules/sambaDomain.inc:219 +msgid "Algorithmic RID base is not a number!" +msgstr "Basis algoritme RID is geen getal!" + +#: ../lib/modules/customFields.inc:76 ../lib/modules/customFields.inc:528 +#: ../lib/modules/customFields.inc:569 ../lib/modules/aliasEntry.inc:45 +msgid "Alias" +msgstr "Aliassen" + +#: ../lib/types/mailAlias.inc:141 ../lib/types/alias.inc:141 +#, php-format +msgid "Alias count: %s" +msgstr "Alias aantal: %s" + +#: ../lib/types/alias.inc:62 +msgid "Alias entries" +msgstr "Alias items" + +#: ../lib/modules/nisMailAlias.inc:125 ../lib/modules/nisMailAlias.inc:126 +msgid "Alias is empty or invalid!" +msgstr "Alias is leeg of ongeldig!" + +#: ../lib/types/mailAlias.inc:91 ../lib/modules/nisMailAliasUser.inc:96 +#: ../lib/modules/nisMailAliasUser.inc:364 ../lib/modules/bindDLZ.inc:135 +#: ../lib/modules/bindDLZ.inc:268 ../lib/modules/bindDLZ.inc:419 +#: ../lib/modules/bindDLZ.inc:497 ../lib/modules/bindDLZ.inc:836 +#: ../lib/modules/bindDLZ.inc:1538 ../lib/modules/nisMailAlias.inc:81 +#: ../lib/modules/nisMailAlias.inc:101 ../lib/modules/nisMailAlias.inc:115 +#: ../lib/modules/nisMailAlias.inc:163 ../lib/modules/nisMailAlias.inc:475 +msgid "Alias name" +msgstr "Naam alias" + +#: ../lib/modules/bindDLZ.inc:834 +msgid "Alias name (\"CNAME\" record)" +msgstr "Alias naam (\"CNAME\" record)" + +#: ../lib/modules/nisMailAliasUser.inc:120 +msgid "Alias name already exists." +msgstr "Alias ​​naam al bestaat." + +#: ../lib/modules/nisMailAliasUser.inc:119 +msgid "Alias name is invalid." +msgstr "Alias ​​naam is ongeldig." + +#: ../lib/modules/nisMailAliasUser.inc:100 +#: ../lib/modules/nisMailAliasUser.inc:110 +#: ../lib/modules/nisMailAliasUser.inc:382 +#: ../lib/modules/nisMailAliasUser.inc:541 +msgid "Alias names" +msgstr "Aliasnamen" + +#: ../lib/modules/nisMailAliasUser.inc:84 +#: ../lib/modules/nisMailAliasUser.inc:88 +msgid "Alias names with email address" +msgstr "Aliasnamen met e-mailadres" + +#: ../lib/modules/nisMailAliasUser.inc:76 +#: ../lib/modules/nisMailAliasUser.inc:80 +msgid "Alias names with user name" +msgstr "Aliasnamen met gebruikersnaam" + +#: ../lib/modules/bindDLZ.inc:420 ../lib/modules/bindDLZ.inc:1539 +msgid "Alias timeout" +msgstr "Alias tijdslimiet" + +#: ../lib/types/alias.inc:92 ../lib/modules/customScripts.inc:52 +#: ../lib/modules/uidObject.inc:59 ../lib/modules/aliasEntry.inc:61 +#: ../lib/modules/aliasEntry.inc:69 ../lib/modules/aliasEntry.inc:77 +#: ../lib/modules/aliasEntry.inc:98 ../lib/modules/aliasEntry.inc:107 +#: ../lib/modules/aliasEntry.inc:228 +msgid "Aliased entry" +msgstr "Gealiast item" + +#: ../templates/schema/schema.php:226 ../lib/types/alias.inc:53 +msgid "Aliases" +msgstr "Aliassen" + +#: ../lib/modules/nisMailAliasUser.inc:169 +#: ../lib/modules/nisMailAliasUser.inc:569 +msgid "Aliases for email" +msgstr "Aliassen voor e-mail" + +#: ../lib/modules/nisMailAliasUser.inc:139 +#: ../lib/modules/nisMailAliasUser.inc:567 +msgid "Aliases for user name" +msgstr "Aliassen voor gebruikersnaam" + +#: ../lib/lists.inc:702 +#, php-format +msgid "All accounts (%s)" +msgstr "Alle accounts (%s):" + +#: ../templates/selfService/selfServiceMain.php:368 +#: ../templates/initsuff.php:158 +msgid "All changes were successful." +msgstr "Alle veranderingen zijn uitgevoerd." + +#: ../lib/lists.inc:701 +#, php-format +msgid "All selected accounts (%s)" +msgstr "Alle geselecteerde accounts (%s):" + +#: ../lib/modules/dhcp_settings.inc:103 +msgid "Allow" +msgstr "Toestaan" + +#: ../templates/config/confmain.php:362 ../help/help.inc:259 +msgid "Allow alternate address" +msgstr "Sta alternatief adres toe" + +#: ../lib/modules/sambaDomain.inc:117 ../lib/modules/sambaDomain.inc:194 +#: ../lib/modules/sambaDomain.inc:308 ../lib/modules/sambaDomain.inc:626 +msgid "Allow machine password changes" +msgstr "Sta machine wachtwoord wijzigen toe" + +#: ../lib/modules/customFields.inc:144 ../lib/modules/customFields.inc:148 +#: ../lib/modules/customFields.inc:3140 +msgid "Allow multiple values" +msgstr "Sta meerdere waarden toe" + +#: ../lib/types/ppolicyType.inc:90 ../lib/modules/ppolicy.inc:132 +#: ../lib/modules/ppolicy.inc:155 ../lib/modules/ppolicy.inc:294 +#: ../lib/modules/ppolicy.inc:505 +msgid "Allow password change" +msgstr "Sta wachtwoord wijzigen toe" + +#: ../lib/modules/sambaSamAccount.inc:230 +#: ../lib/modules/sambaSamAccount.inc:352 +#: ../lib/modules/sambaSamAccount.inc:1504 +#: ../lib/modules/sambaSamAccount.inc:1922 +msgid "Allow terminal server login" +msgstr "Sta terminal server inloggen toe" + +#: ../templates/selfService/adminMain.php:557 +msgid "Allow user input for this field." +msgstr "Laat input van de gebruiker toe voor dit veld." + +#: ../lib/modules/asteriskAccount.inc:203 +#: ../lib/modules/asteriskAccount.inc:289 +#: ../lib/modules/asteriskAccount.inc:479 +#: ../lib/modules/asteriskAccount.inc:713 +#: ../lib/modules/asteriskAccount.inc:1005 +#: ../lib/modules/asteriskAccount.inc:1279 +msgid "Allowed codec" +msgstr "Toegestane codec" + +#: ../templates/config/mainmanage.php:299 ../lib/types/user.inc:95 +#: ../help/help.inc:152 +msgid "Allowed hosts" +msgstr "Toegestane hosts" + +#: ../templates/config/mainmanage.php:301 +msgid "Allowed hosts (self service)" +msgstr "Toegestane hosts (zelf service)" + +#: ../lib/modules/kolabGroup.inc:95 ../lib/modules/kolabGroup.inc:99 +#: ../lib/modules/kolabGroup.inc:141 ../lib/modules/kolabGroup.inc:164 +#: ../lib/modules/kolabGroup.inc:181 ../lib/modules/kolabGroup.inc:205 +#: ../lib/modules/kolabGroup.inc:424 ../lib/modules/kolabUser.inc:152 +#: ../lib/modules/kolabUser.inc:156 ../lib/modules/kolabUser.inc:217 +#: ../lib/modules/kolabUser.inc:235 ../lib/modules/kolabUser.inc:253 +#: ../lib/modules/kolabUser.inc:381 ../lib/modules/kolabUser.inc:766 +#: ../lib/modules/kolabSharedFolder.inc:120 +#: ../lib/modules/kolabSharedFolder.inc:124 +#: ../lib/modules/kolabSharedFolder.inc:208 +#: ../lib/modules/kolabSharedFolder.inc:234 +#: ../lib/modules/kolabSharedFolder.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:307 +#: ../lib/modules/kolabSharedFolder.inc:561 +msgid "Allowed recipients" +msgstr "Toegestane ontvangers" + +#: ../lib/modules/kolabGroup.inc:104 ../lib/modules/kolabGroup.inc:108 +#: ../lib/modules/kolabGroup.inc:147 ../lib/modules/kolabGroup.inc:165 +#: ../lib/modules/kolabGroup.inc:183 ../lib/modules/kolabGroup.inc:207 +#: ../lib/modules/kolabGroup.inc:425 ../lib/modules/kolabUser.inc:161 +#: ../lib/modules/kolabUser.inc:165 ../lib/modules/kolabUser.inc:223 +#: ../lib/modules/kolabUser.inc:236 ../lib/modules/kolabUser.inc:255 +#: ../lib/modules/kolabUser.inc:383 ../lib/modules/kolabUser.inc:767 +#: ../lib/modules/kolabSharedFolder.inc:129 +#: ../lib/modules/kolabSharedFolder.inc:133 +#: ../lib/modules/kolabSharedFolder.inc:214 +#: ../lib/modules/kolabSharedFolder.inc:235 +#: ../lib/modules/kolabSharedFolder.inc:252 +#: ../lib/modules/kolabSharedFolder.inc:309 +#: ../lib/modules/kolabSharedFolder.inc:562 +msgid "Allowed senders" +msgstr "Toegestane verzenders" + +#: ../lib/modules/sambaSamAccount.inc:1342 +#: ../lib/modules/sambaSamAccount.inc:1343 +msgid "Allowed workstations" +msgstr "Toegestane werkstations" + +#: ../lib/modules/customFields.inc:149 +msgid "Allows to enter multiple values for this attribute." +msgstr "" +"Maakt het mogelijk om meerdere waarden voor deze eigenschap in te voeren." + +#: ../lib/modules/customFields.inc:145 +msgid "Allows to select multiple values from the list." +msgstr "Maakt het mogelijk om meerdere waarden te selecteren uit de lijst." + +#: ../lib/modules/sambaSamAccount.inc:571 +msgid "Almaty, Dhaka, Colombo" +msgstr "Almaty, Dhaka, Colombo" + +#: ../templates/lists/changePassword.php:343 +#: ../templates/lists/changePassword.php:379 ../lib/modules/qmailUser.inc:203 +#: ../lib/modules/qmailUser.inc:271 ../lib/modules/qmailUser.inc:400 +#: ../lib/modules/qmailUser.inc:450 ../lib/modules/qmailUser.inc:520 +#: ../lib/modules/qmailUser.inc:1140 ../lib/modules/qmailGroup.inc:131 +#: ../lib/modules/qmailGroup.inc:135 ../lib/modules/qmailGroup.inc:247 +#: ../lib/modules/qmailGroup.inc:370 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:484 ../lib/modules/qmailGroup.inc:1057 +msgid "Alternate address" +msgstr "Alternatief adres" + +#: ../lib/modules.inc:1079 ../lib/modules.inc:1178 ../help/help.inc:214 +msgid "Alternate recipient" +msgstr "Alternatieve ontvanger" + +#: ../lib/modules/kolabUser.inc:50 +msgid "Always accept" +msgstr "Altijd accepteren" + +#: ../lib/modules/kolabUser.inc:51 +msgid "Always reject" +msgstr "Altijd afwijzen" + +#: ../lib/modules/pykotaUser.inc:372 ../lib/modules/pykotaUser.inc:597 +#: ../lib/modules/pykotaUser.inc:906 ../lib/modules/pykotaUser.inc:965 +msgid "Amount" +msgstr "Bedrag" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1018 +#, php-format +msgid "An attribute (%s) was modified and is highlighted below." +msgstr "Een attribuut (%s) is gewijzigd en is hieronder geaccentueerd." + +#: ../lib/modules/sudoRole.inc:268 +msgid "An sudo role with this name already exists. Please choose another name." +msgstr "Een sudo rol met deze naam bestaat reeds. Kies een andere naam." + +#: ../lib/modules/passwordSelfReset.inc:84 +#: ../lib/modules/passwordSelfReset.inc:183 +#: ../lib/modules/passwordSelfReset.inc:198 +#: ../lib/modules/passwordSelfReset.inc:219 +#: ../lib/modules/passwordSelfReset.inc:265 +#: ../lib/modules/passwordSelfReset.inc:384 +#: ../lib/modules/passwordSelfReset.inc:663 +#: ../lib/modules/passwordSelfReset.inc:1046 +msgid "Answer" +msgstr "Antwoord" + +#: ../lib/modules/kolabUser.inc:331 ../lib/modules/kolabUser.inc:756 +#: ../lib/modules/kolabUser.inc:858 ../lib/modules/kolabUser.inc:861 +msgid "Anyone" +msgstr "Willekeurig wie" + +#: ../lib/modules/customFields.inc:506 +msgid "Appearance" +msgstr "Voorkomen" + +#: ../lib/modules/asteriskExtension.inc:110 +#: ../lib/modules/asteriskExtension.inc:165 +#: ../lib/modules/asteriskExtension.inc:366 +#: ../lib/modules/asteriskExtension.inc:823 +msgid "Application" +msgstr "Toepassing" + +#: ../lib/modules/asteriskExtension.inc:94 +#: ../lib/modules/asteriskExtension.inc:172 +#: ../lib/modules/asteriskExtension.inc:374 +#: ../lib/modules/asteriskExtension.inc:824 +msgid "Application data" +msgstr "Applicatie data" + +#: ../templates/multiEdit.php:166 +msgid "Apply changes" +msgstr "Wijzigingen opslaan" + +#: ../lib/modules/zarafaUser.inc:159 ../lib/modules/zarafaUser.inc:163 +#: ../lib/modules/zarafaUser.inc:315 ../lib/modules/zarafaUser.inc:379 +#: ../lib/modules/zarafaUser.inc:554 ../lib/modules/zarafaUser.inc:957 +#: ../lib/modules/zarafaUser.inc:1236 ../lib/modules/zarafaUser.inc:1317 +#: ../lib/modules/zarafaUser.inc:1803 +msgid "Archive servers" +msgstr "Archief servers" + +#: ../lib/modules/zarafaUser.inc:552 +msgid "Archiving" +msgstr "Archiveren" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:53 +msgid "Are you sure you want to permanently delete these objects?" +msgstr "Bent u zeker dat u deze obecten permanent wilt verwijderen?" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:107 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:51 +msgid "Are you sure you want to permanently delete this object?" +msgstr "Bent u zeker dat u dit obect permanent wilt verwijderen?" + +#: ../lib/modules/imapAccess.inc:129 +msgid "Ask" +msgstr "Vraag" + +#: ../lib/modules/eduPerson.inc:142 ../lib/modules/eduPerson.inc:146 +#: ../lib/modules/eduPerson.inc:218 ../lib/modules/eduPerson.inc:234 +#: ../lib/modules/eduPerson.inc:352 ../lib/modules/eduPerson.inc:590 +msgid "Assurance profiles" +msgstr "Assurance profielen" + +#: ../lib/modules/eduPerson.inc:143 ../lib/modules/eduPerson.inc:147 +msgid "" +"Assurance profiles are the set of standards that are met by an identity " +"assertion." +msgstr "" +"Assurance-profielen zijn de set van standaarden die worden ingevuld door een " +"identity assertion." + +#: ../lib/modules/asteriskAccount.inc:73 +msgid "Asterisk" +msgstr "Asterisk" + +#: ../lib/modules/asteriskAccount.inc:132 +msgid "Asterisk AMA (Automated Message Accounting) flags." +msgstr "Asterisk AMA (Automated Message Accounting) vlaggen." + +#: ../lib/modules/asteriskExtension.inc:79 +msgid "Asterisk extension" +msgstr "Asterisk extensie" + +#: ../lib/types/asteriskExt.inc:56 +msgid "Asterisk extensions" +msgstr "Asterisk extensies" + +#: ../lib/types/asteriskExt.inc:65 +msgid "Asterisk extensions entries" +msgstr "Asterisk extensies items" + +#: ../lib/modules/asteriskAccount.inc:123 +#: ../lib/modules/asteriskAccount.inc:249 +#: ../lib/modules/asteriskAccount.inc:1233 +msgid "Asterisk realm" +msgstr "Asterisk realm" + +#: ../lib/modules/asteriskVoicemail.inc:71 +msgid "Asterisk voicemail" +msgstr "Asterisk voicemail" + +#: ../lib/modules/asteriskVoicemail.inc:120 +msgid "Asterisk voicemail context." +msgstr "Asterisk voicemail context." + +#: ../lib/modules/sambaSamAccount.inc:561 +msgid "Atlantic time (Canada), Caracas" +msgstr "Atlantic time (Canada), Caracas" + +#: ../templates/3rdParty/pla/lib/import_functions.php:455 +msgid "Attempting to delete a non existent attribute" +msgstr "Poging om een niet-bestaande attribuut te verwijderen" + +#: ../templates/3rdParty/pla/lib/import_functions.php:466 +msgid "Attempting to replace a non existant attribute" +msgstr "Poging om een niet-bestaande attribuut te vervangen" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Attribute" +msgstr "Attribuut" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:137 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:72 +msgid "Attribute doesn't exist" +msgstr "Attribuut bestaat niet" + +#: ../templates/multiEdit.php:119 ../lib/modules/customFields.inc:92 +#: ../lib/modules/customFields.inc:1060 ../lib/modules/customFields.inc:1710 +msgid "Attribute name" +msgstr "Attribuut naam" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:117 +msgid "Attribute not available" +msgstr "Attribuut niet beschikbaar" + +#: ../templates/3rdParty/pla/lib/import_functions.php:535 +msgid "Attribute not valid" +msgstr "Attribuut niet geldig" + +#: ../templates/schema/schema.php:69 ../templates/schema/schema.php:70 +msgid "Attribute types" +msgstr "Attribuuttypen" + +#: ../lib/modules/selfRegistration.inc:78 +#: ../lib/modules/selfRegistration.inc:220 +msgid "Attributes" +msgstr "Attributen" + +#: ../lib/modules/sambaSamAccount.inc:577 +msgid "Auckland, Fiji, Kamchatka" +msgstr "Auckland, Fiji, Kamchatka" + +#: ../lib/modules/asteriskAccount.inc:124 +msgid "" +"Authentication realm for Asterisk server (default: asterisk). This value set " +"in sip.conf (option: \"realm\")." +msgstr "" +"Authenticatie realm voor de Asterisk-server (standaard: asterisk). Deze " +"waarde ingesteld in sip.conf (optie: \"realm\")." + +#: ../lib/modules/asteriskAccount.inc:232 +msgid "Authentication user for outbound proxies." +msgstr "Authenticatie gebruiker voor outbound proxy's." + +#: ../lib/modules/bindDLZ.inc:1020 +msgid "Authoritative information (\"SOA\" record)" +msgstr "Officiële informatie (\"SOA\" record)" + +#: ../lib/modules/authorizedServiceObject.inc:71 +#: ../lib/modules/authorizedServiceObject.inc:81 +#: ../lib/modules/authorizedServiceObject.inc:85 +#: ../lib/modules/authorizedServiceObject.inc:105 +#: ../lib/modules/authorizedServiceObject.inc:112 +#: ../lib/modules/authorizedServiceObject.inc:116 +#: ../lib/modules/authorizedServiceObject.inc:168 +#: ../lib/modules/authorizedServiceObject.inc:243 +msgid "Authorized Services" +msgstr "Authorized Services" + +#: ../lib/modules/authorizedServiceObject.inc:129 +msgid "Authorized services are invalid." +msgstr "Authorized diensten zijn ongeldig." + +#: ../lib/modules/customFields.inc:152 ../lib/modules/customFields.inc:1917 +msgid "Auto-completion" +msgstr "Automatisch aanvullen" + +#: ../lib/modules/bindDLZ.inc:239 ../lib/modules/bindDLZ.inc:2563 +msgid "Automatic PTR changes" +msgstr "Automatische PTR veranderingen" + +#: ../lib/modules/customScripts.inc:167 +msgid "Automatical scripts" +msgstr "Automatische scripts" + +#: ../lib/modules/kolabGroup.inc:117 ../lib/modules/kolabGroup.inc:127 +#: ../lib/modules/puppetClient.inc:108 ../lib/modules/puppetClient.inc:160 +#: ../lib/modules/qmailUser.inc:131 ../lib/modules/qmailUser.inc:263 +#: ../lib/modules/zarafaContact.inc:87 ../lib/modules/zarafaContact.inc:583 +#: ../lib/modules/posixGroup.inc:396 ../lib/modules/posixGroup.inc:537 +#: ../lib/modules/eduPerson.inc:150 ../lib/modules/eduPerson.inc:155 +#: ../lib/modules/pykotaGroup.inc:129 ../lib/modules/pykotaGroup.inc:140 +#: ../lib/modules/sambaSamAccount.inc:165 +#: ../lib/modules/sambaSamAccount.inc:403 ../lib/modules/posixAccount.inc:432 +#: ../lib/modules/posixAccount.inc:1784 ../lib/modules/zarafaUser.inc:136 +#: ../lib/modules/zarafaUser.inc:1303 ../lib/modules/pykotaUser.inc:160 +#: ../lib/modules/pykotaUser.inc:173 ../lib/modules/shadowAccount.inc:106 +#: ../lib/modules/shadowAccount.inc:197 ../lib/modules/customFields.inc:856 +#: ../lib/modules/qmailGroup.inc:101 ../lib/modules/qmailGroup.inc:232 +#: ../lib/modules/authorizedServiceObject.inc:89 +#: ../lib/modules/authorizedServiceObject.inc:117 +#: ../lib/modules/passwordSelfReset.inc:152 +#: ../lib/modules/passwordSelfReset.inc:167 ../lib/modules/hostObject.inc:83 +#: ../lib/modules/hostObject.inc:101 +msgid "Automatically add this extension" +msgstr "Automatisch deze extensie toevoegen" + +#: ../lib/modules/bindDLZ.inc:240 +msgid "" +"Automatically adds and removes PTR entries when A/AAAA records are created " +"or deleted." +msgstr "" +"Automatisch toevoegen en verwijderen van PTR entries wanneer A/AAAA-records " +"worden aangemaakt of verwijderd." + +#: ../lib/types/automountType.inc:48 ../lib/types/automountType.inc:57 +msgid "Automount entries" +msgstr "Automount items" + +#: ../lib/types/automountType.inc:87 ../lib/modules/automount.inc:50 +#: ../lib/modules/automount.inc:68 ../lib/modules/automount.inc:88 +#: ../lib/modules/automount.inc:104 ../lib/modules/automount.inc:114 +#: ../lib/modules/automount.inc:131 ../lib/modules/automount.inc:182 +msgid "Automount entry" +msgstr "Automount item" + +#: ../lib/modules/automount.inc:114 ../lib/modules/automount.inc:115 +msgid "" +"Automount entry contains invalid characters. Only ASCII characters are " +"allowed." +msgstr "" +"Automount item bevat ongeldige tekens. Alleen ASCII-tekens zijn toegestaan." + +#: ../lib/types/automountType.inc:215 +#, php-format +msgid "Automount entry count: %s" +msgstr "Automount item aantal: %s" + +#: ../lib/modules/qmailUser.inc:51 +msgid "Autoreply" +msgstr "Automatisch antwoord" + +#: ../lib/modules/qmailUser.inc:116 ../lib/modules/qmailUser.inc:239 +#: ../lib/modules/qmailUser.inc:350 ../lib/modules/qmailUser.inc:424 +#: ../lib/modules/qmailUser.inc:639 ../lib/modules/qmailUser.inc:1147 +msgid "Autoreply text" +msgstr "Automatisch antwoord tekst" + +#: ../templates/config/conftypes.php:215 ../lib/modules/customScripts.inc:61 +msgid "Available account types" +msgstr "Beschikbare accounttypes" + +#: ../lib/modules/customScripts.inc:62 ../lib/modules/customScripts.inc:75 +msgid "Available actions" +msgstr "Beschikbare acties" + +#: ../lib/modules/posixAccount.inc:1569 ../lib/modules/posixAccount.inc:1602 +#: ../lib/modules/windowsUser.inc:1036 ../lib/modules/nisnetgroup.inc:386 +#: ../lib/modules/groupOfNamesUser.inc:133 +msgid "Available groups" +msgstr "Beschikbare groepen" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:93 +msgid "Available members" +msgstr "Beschikbare gebruikers" + +#: ../templates/config/confmodules.php:314 +msgid "Available modules" +msgstr "Beschikbare modules" + +#: ../lib/modules/organizationalRoleUser.inc:118 +msgid "Available roles" +msgstr "Beschikbare rollen" + +#: ../lib/modules/posixGroup.inc:297 ../lib/modules/asteriskExtension.inc:463 +msgid "Available users" +msgstr "Beschikbare gebruikers" + +#: ../lib/modules/sambaSamAccount.inc:1345 +msgid "Available workstations" +msgstr "Beschikbare werkstations" + +#: ../lib/modules/sambaSamAccount.inc:564 +msgid "Azores, Cape Verde Islands" +msgstr "Azores, Cape Verde Islands" + +#: ../lib/modules/dhcp_settings.inc:96 +msgid "B-Node (0x01)" +msgstr "B-Node (0x01)" + +#: ../templates/massBuildAccounts.php:276 ../lib/modules/zarafaContact.inc:436 +#: ../lib/modules/posixGroup.inc:342 ../lib/modules/zarafaGroup.inc:496 +#: ../lib/modules/device.inc:303 ../lib/modules/sambaSamAccount.inc:1362 +#: ../lib/modules/sambaSamAccount.inc:1646 +#: ../lib/modules/posixAccount.inc:1642 ../lib/modules/posixAccount.inc:1716 +#: ../lib/modules/zarafaUser.inc:920 ../lib/modules/zarafaUser.inc:969 +#: ../lib/modules/windowsUser.inc:1080 +#: ../lib/modules/sambaGroupMapping.inc:511 ../lib/modules/pykotaUser.inc:618 +#: ../lib/modules/pykotaUser.inc:675 ../lib/modules/nisnetgroup.inc:400 +#: ../lib/modules/inetOrgPerson.inc:1702 ../lib/modules/inetOrgPerson.inc:1778 +#: ../lib/modules/inetOrgPerson.inc:1868 ../lib/modules/qmailGroup.inc:865 +#: ../lib/modules/organizationalRole.inc:389 +#: ../lib/modules/windowsGroup.inc:606 ../lib/modules/groupOfNames.inc:447 +#: ../lib/modules/groupOfNames.inc:601 +msgid "Back" +msgstr "Terug" + +#: ../lib/types/dhcp.inc:47 +msgid "Back to DHCP list" +msgstr "Terug naar DHCP lijst" + +#: ../lib/types/bind.inc:30 +msgid "Back to DNS list" +msgstr "Terug naar DNS lijst" + +#: ../lib/types/nisObjectType.inc:30 +msgid "Back to NIS object list" +msgstr "Terug naar lijst met NIS objecten" + +#: ../lib/baseType.inc:48 +msgid "Back to account list" +msgstr "Terug naar lijst met accounts" + +#: ../lib/types/zarafaAddressListType.inc:44 +msgid "Back to address list" +msgstr "Terug naar adres lijst" + +#: ../lib/types/mailAlias.inc:44 ../lib/types/alias.inc:44 +msgid "Back to alias list" +msgstr "Terug naar alias lijst" + +#: ../lib/types/automountType.inc:35 +msgid "Back to automount list" +msgstr "Terug naar automount lijst" + +#: ../lib/types/pykotaBillingCodeType.inc:44 +msgid "Back to billing code list" +msgstr "Terug naar billing code lijst" + +#: ../lib/types/oracleContextType.inc:30 +msgid "Back to database list" +msgstr "Terug naar databaselijst" + +#: ../lib/types/smbDomain.inc:44 +msgid "Back to domain list" +msgstr "Terug naar domain lijst" + +#: ../lib/types/asteriskExt.inc:47 +msgid "Back to extensions list" +msgstr "Terug naar extenties lijst" + +#: ../templates/lists/userlink.php:63 ../lib/types/gon.inc:44 +#: ../lib/types/zarafaDynamicGroupType.inc:44 ../lib/types/group.inc:45 +#: ../lib/types/netgroup.inc:44 +msgid "Back to group list" +msgstr "Terug naar lijst van groepen" + +#: ../lib/types/host.inc:44 +msgid "Back to host list" +msgstr "Terug naar host lijst" + +#: ../templates/delete.php:289 +msgid "Back to list" +msgstr "Terug naar lijst" + +#: ../templates/config/mainmanage.php:257 ../templates/config/index.php:79 +#: ../templates/config/index.php:133 ../templates/config/conflogin.php:117 +#: ../templates/config/conflogin.php:201 ../templates/config/mainlogin.php:124 +#: ../templates/config/mainlogin.php:178 +#: ../templates/selfService/selfServiceSP.php:139 +#: ../templates/selfService/adminLogin.php:114 +#: ../templates/selfService/adminLogin.php:191 +msgid "Back to login" +msgstr "Terug naar login" + +#: ../lib/types/ppolicyType.inc:30 +msgid "Back to policy list" +msgstr "Terug naar policy lijst" + +#: ../lib/types/pykotaPrinterType.inc:44 +msgid "Back to printer list" +msgstr "Terug naar printer lijst" + +#: ../templates/config/profmanage.php:188 +#: ../templates/config/profmanage.php:326 +#: ../templates/selfService/profManage.php:144 +#: ../templates/selfService/profManage.php:262 +msgid "Back to profile login" +msgstr "Terug naar profiel login" + +#: ../lib/types/gon.inc:49 ../lib/types/group.inc:50 +msgid "Back to role list" +msgstr "Terug naar rol lijst" + +#: ../lib/types/kolabSharedFolderType.inc:44 +msgid "Back to shared folder list" +msgstr "Terug naar shared folder lijst" + +#: ../lib/types/sudo.inc:30 +msgid "Back to sudo role list" +msgstr "Terug naar sudo rol lijst" + +#: ../lib/types/user.inc:44 +msgid "Back to user list" +msgstr "Terug naar gebruikers lijst" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:64 +msgid "Back up" +msgstr "Terug" + +#: ../templates/serverInfo.php:163 +msgid "Backends" +msgstr "Backends" + +#: ../templates/lists/changePassword.php:291 +#: ../lib/modules/passwordSelfReset.inc:88 +#: ../lib/modules/passwordSelfReset.inc:191 +#: ../lib/modules/passwordSelfReset.inc:201 +#: ../lib/modules/passwordSelfReset.inc:213 +#: ../lib/modules/passwordSelfReset.inc:220 +#: ../lib/modules/passwordSelfReset.inc:276 +#: ../lib/modules/passwordSelfReset.inc:387 +#: ../lib/modules/passwordSelfReset.inc:675 +msgid "Backup email" +msgstr "Backup e-mail" + +#: ../lib/modules/passwordSelfReset.inc:89 +msgid "" +"Backup email address for password reset mails. Useful if user password " +"grants access to standard mailbox." +msgstr "" +"Backup e-mailadres voor password reset e-mails. Handig in het geval het " +"wachtwoord toegang geeft tot de standaard mailbox." + +#: ../lib/modules/sudoRole.inc:155 +msgid "Backup script" +msgstr "Backup script" + +#: ../lib/modules/sambaSamAccount.inc:568 +msgid "Baghdad, Riyadh, Moscow" +msgstr "Baghdad, Riyadh, Moscow" + +#: ../lib/types/pykotaBillingCodeType.inc:93 ../lib/modules/pykotaGroup.inc:62 +#: ../lib/modules/pykotaUser.inc:62 ../lib/modules/pykotaUser.inc:132 +#: ../lib/modules/pykotaUser.inc:170 ../lib/modules/pykotaUser.inc:241 +#: ../lib/modules/pykotaUser.inc:262 ../lib/modules/pykotaUser.inc:322 +#: ../lib/modules/pykotaUser.inc:365 ../lib/modules/pykotaUser.inc:900 +#: ../lib/modules/pykotaUser.inc:947 ../lib/modules/pykotaBillingCode.inc:85 +#: ../lib/modules/pykotaBillingCode.inc:117 +#: ../lib/modules/pykotaBillingCode.inc:143 +#: ../lib/modules/pykotaBillingCode.inc:263 +msgid "Balance" +msgstr "Saldo" + +#: ../lib/modules/pykotaUser.inc:281 +msgid "Balance (read-only)" +msgstr "Saldo (read-only)" + +#: ../lib/modules/pykotaUser.inc:136 ../lib/modules/pykotaUser.inc:247 +msgid "Balance comment" +msgstr "Balance commentaar" + +#: ../lib/modules/sambaSamAccount.inc:572 +msgid "Bangkok, Hanoi, Jakarta" +msgstr "Bangkok, Hanoi, Jakarta" + +#: ../lib/types/zarafaAddressListType.inc:93 +#: ../lib/types/zarafaDynamicGroupType.inc:94 +#: ../lib/modules/zarafaDynamicGroup.inc:87 +#: ../lib/modules/zarafaDynamicGroup.inc:101 +#: ../lib/modules/zarafaDynamicGroup.inc:152 +#: ../lib/modules/zarafaDynamicGroup.inc:170 +#: ../lib/modules/zarafaDynamicGroup.inc:198 +#: ../lib/modules/zarafaDynamicGroup.inc:231 +#: ../lib/modules/zarafaDynamicGroup.inc:449 +#: ../lib/modules/zarafaAddressList.inc:75 +#: ../lib/modules/zarafaAddressList.inc:89 +#: ../lib/modules/zarafaAddressList.inc:128 +#: ../lib/modules/zarafaAddressList.inc:144 +#: ../lib/modules/zarafaAddressList.inc:169 +#: ../lib/modules/zarafaAddressList.inc:198 +#: ../lib/modules/zarafaAddressList.inc:332 +msgid "Base" +msgstr "Basis" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:142 +#: ../templates/3rdParty/pla/htdocs/export_form.php:31 +msgid "Base (base dn only)" +msgstr "Base (uitsluitend basis DN)" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:121 +#: ../templates/3rdParty/pla/lib/QueryRender.php:506 +#: ../templates/3rdParty/pla/htdocs/export_form.php:59 +msgid "Base DN" +msgstr "Basis DN" + +#: ../templates/config/confmodules.php:212 ../help/help.inc:144 +msgid "Base module" +msgstr "Basis module" + +#: ../templates/pdfedit/pdfpage.php:441 +msgid "Beginning" +msgstr "Begin" + +#: ../lib/modules/sambaSamAccount.inc:573 +msgid "Beijing, Perth, Singapore" +msgstr "Beijing, Perth, Singapore" + +#: ../lib/types/pykotaBillingCodeType.inc:91 +#: ../lib/modules/pykotaBillingCode.inc:77 +#: ../lib/modules/pykotaBillingCode.inc:115 +#: ../lib/modules/pykotaBillingCode.inc:127 +#: ../lib/modules/pykotaBillingCode.inc:129 +#: ../lib/modules/pykotaBillingCode.inc:141 +#: ../lib/modules/pykotaBillingCode.inc:261 +msgid "Billing code" +msgstr "Factuurcode" + +#: ../lib/modules/pykotaBillingCode.inc:129 +#: ../lib/modules/pykotaBillingCode.inc:130 +msgid "Billing code already exists!" +msgstr "Billing code bestaat al!" + +#: ../lib/modules/pykotaBillingCode.inc:127 +#: ../lib/modules/pykotaBillingCode.inc:128 +msgid "" +"Billing code contains invalid characters. Valid characters are: a-z, A-Z, " +"0-9 and .-_ !" +msgstr "" +"Billing code bevat ongeldige tekens. Geldige tekens zijn: a-z, A-Z, 0-9 " +"and .-_ !" + +#: ../lib/types/pykotaBillingCodeType.inc:163 +#, php-format +msgid "Billing code count: %s" +msgstr "Billing code aantal: %s" + +#: ../lib/modules/pykotaBillingCode.inc:82 +msgid "Billing code description." +msgstr "Billing code omschrijving" + +#: ../lib/modules/pykotaBillingCode.inc:78 +msgid "" +"Billing code name which should be created. Valid characters are: a-z, A-Z, " +"0-9 and .-_ ." +msgstr "" +"Billing code naam die moet worden gecreëerd. Geldige karakters zijn: a-z, A-" +"Z, 0-9 en .-_ ." + +#: ../lib/types/pykotaBillingCodeType.inc:53 +msgid "Billing codes" +msgstr "Factuurcodes" + +#: ../templates/3rdParty/pla/lib/PageRender.php:644 +#: ../templates/3rdParty/pla/lib/PageRender.php:648 +msgid "Binary value" +msgstr "Binaire waarde" + +#: ../templates/serverInfo.php:286 ../templates/serverInfo.php:375 +msgid "Bind" +msgstr "Bind" + +#: ../lib/types/bind.inc:39 +msgid "Bind DNS" +msgstr "Bind DNS" + +#: ../lib/types/bind.inc:48 +msgid "Bind DNS entries" +msgstr "Bind DNS entries" + +#: ../templates/config/confmain.php:444 +msgid "Bind password" +msgstr "Bind wachtwoord" + +#: ../templates/config/confmain.php:442 +msgid "Bind user" +msgstr "Bind gebruiker" + +#: ../help/help.inc:128 +msgid "Bind user and password" +msgstr "Bind gebruiker en wachtwoord" + +#: ../lib/modules/quota.inc:53 ../lib/modules/systemQuotas.inc:101 +msgid "Block hard quota" +msgstr "Uiterste blok quotum" + +#: ../lib/modules/quota.inc:53 ../lib/modules/quota.inc:54 +#: ../lib/modules/systemQuotas.inc:101 ../lib/modules/systemQuotas.inc:102 +msgid "" +"Block hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Uiterste blok quotum bevat ongeldige tekens; alleen getallen zijn toegestaan." + +#: ../lib/modules/quota.inc:59 ../lib/modules/systemQuotas.inc:107 +msgid "Block quota" +msgstr "Blok quotum" + +#: ../lib/modules/quota.inc:51 ../lib/modules/systemQuotas.inc:99 +msgid "Block soft quota" +msgstr "Zachte blok quotum" + +#: ../lib/modules/quota.inc:51 ../lib/modules/quota.inc:52 +#: ../lib/modules/systemQuotas.inc:99 ../lib/modules/systemQuotas.inc:100 +msgid "" +"Block soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Zachte blok quotum bevat ongeldige tekens; alleen getallen zijn toegestaan." + +#: ../lib/modules/quota.inc:59 ../lib/modules/quota.inc:60 +#: ../lib/modules/systemQuotas.inc:107 ../lib/modules/systemQuotas.inc:108 +msgid "Block soft quota must be smaller than block hard quota." +msgstr "Zachte blok quotum dient kleiner te zijn dat het uiterste blokquotum." + +#: ../lib/modules/qmailGroup.inc:72 ../lib/modules/qmailGroup.inc:143 +#: ../lib/modules/qmailGroup.inc:147 ../lib/modules/qmailGroup.inc:263 +#: ../lib/modules/qmailGroup.inc:375 ../lib/modules/qmailGroup.inc:431 +#: ../lib/modules/qmailGroup.inc:522 ../lib/modules/qmailGroup.inc:1059 +msgid "Bounce admin email" +msgstr "Bounce admin email" + +#: ../lib/modules/sambaSamAccount.inc:562 +msgid "Brazil, Buenos Aires" +msgstr "Brazil, Buenos Aires" + +#: ../templates/3rdParty/pla/htdocs/copy.php:53 +msgid "Building snapshot of tree to copy" +msgstr "Momentopname aan het bouwen van de boom om te kopiëren" + +#: ../lib/modules/sambaGroupMapping.inc:73 +msgid "Builtin group" +msgstr "Ingebouwde groep" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:63 +msgid "Bulk edit the following DNs" +msgstr "Bulk bewerken van de volgende DNs" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:48 +msgid "Bulk update the following DNs" +msgstr "Bulk-update de volgende DNs" + +#: ../lib/modules/inetOrgPerson.inc:105 ../lib/modules/inetOrgPerson.inc:164 +#: ../lib/modules/inetOrgPerson.inc:235 ../lib/modules/inetOrgPerson.inc:372 +#: ../lib/modules/inetOrgPerson.inc:613 ../lib/modules/inetOrgPerson.inc:786 +#: ../lib/modules/inetOrgPerson.inc:790 ../lib/modules/inetOrgPerson.inc:1506 +#: ../lib/modules/inetOrgPerson.inc:1509 ../lib/modules/inetOrgPerson.inc:1941 +#: ../lib/modules/inetOrgPerson.inc:2690 ../lib/modules/inetOrgPerson.inc:3614 +#: ../lib/modules/inetOrgPerson.inc:3656 +msgid "Business category" +msgstr "Zakelijke categorie" + +#: ../lib/modules/inetOrgPerson.inc:787 ../lib/modules/inetOrgPerson.inc:791 +msgid "Business category (e.g. Administration, IT-Services, Manangement, ...)" +msgstr "Zakelijke categorie (bv Administratie, Beheer, Management, ...)" + +#: ../help/help.inc:173 +msgid "" +"By default LAM will show all accounts that match the selected account " +"modules." +msgstr "" +"LAM toont standaard alle accounts die bij de geselecteerde account modules " +"passen." + +#: ../help/help.inc:243 +msgid "" +"By default all modifications are done as the user that authenticated in self " +"service. If active then LAM will use the connection user for all LDAP " +"modifications and searches." +msgstr "" +"Standaard worden alle wijzigingen gedaan als de gebruiker die is aangemeld " +"in zelf-service. Indien actief dan zal LAM de de systeem gebruiker gebruiken " +"voor alle LDAP-wijzigingen en zoekopdrachten." + +#: ../lib/modules/selfRegistration.inc:103 +msgid "" +"By default all users are created in the self service LDAP suffix. You can " +"enter an alternative suffix here." +msgstr "" +"Standaard worden alle gebruikers gemaakt in de zelf service LDAP suffix. U " +"kunt een alternatief achtervoegsel hier invoeren." + +#: ../lib/modules/customScripts.inc:89 +msgid "" +"By default, LAM will show the executed command along with any output of it. " +"If you want to hide the command and only show the output then activate this " +"option." +msgstr "" +"Standaard zal LAM het uitgevoerde commando en de uitvoer tonen. Selecteer " +"deze optie als u alleen de uitvoer wilt zien." + +#: ../templates/serverInfo.php:253 ../templates/serverInfo.php:259 +msgid "Bytes sent" +msgstr "Verzonden bytes" + +#: ../lib/modules/bindDLZ.inc:268 ../lib/modules/bindDLZ.inc:274 +#: ../lib/modules/bindDLZ.inc:481 ../lib/modules/bindDLZ.inc:497 +msgid "CNAME record" +msgstr "CNAME record" + +#: ../lib/modules/bindDLZ.inc:439 +msgid "CNAME records" +msgstr "CNAME records" + +#: ../templates/masscreate.php:253 +msgid "CSV file" +msgstr "CSV bestand" + +#: ../help/help.inc:107 +msgid "Cache timeout" +msgstr "Cache timeout" + +#: ../lib/modules/asteriskAccount.inc:135 +#: ../lib/modules/asteriskAccount.inc:272 +#: ../lib/modules/asteriskAccount.inc:355 +#: ../lib/modules/asteriskAccount.inc:615 +#: ../lib/modules/asteriskAccount.inc:988 +#: ../lib/modules/asteriskAccount.inc:1245 +msgid "Call groups" +msgstr "Belgroepen" + +#: ../lib/modules/asteriskAccount.inc:103 +#: ../lib/modules/asteriskAccount.inc:266 +#: ../lib/modules/asteriskAccount.inc:304 +#: ../lib/modules/asteriskAccount.inc:589 +#: ../lib/modules/asteriskAccount.inc:982 +msgid "Caller ID" +msgstr "Beller ID" + +#: ../lib/modules/sambaSamAccount.inc:307 +#: ../lib/modules/sambaSamAccount.inc:310 +#: ../lib/modules/sambaSamAccount.inc:313 +#: ../lib/modules/sambaSamAccount.inc:319 ../lib/modules/posixAccount.inc:535 +#: ../lib/modules/organizationalRoleUser.inc:61 +#: ../lib/modules/windowsUser.inc:205 ../lib/modules/windowsUser.inc:210 +#: ../lib/modules/sambaGroupMapping.inc:159 +#: ../lib/modules/shadowAccount.inc:178 ../lib/modules/shadowAccount.inc:182 +#: ../lib/modules/shadowAccount.inc:186 ../lib/modules/shadowAccount.inc:190 +#: ../lib/modules/groupOfNamesUser.inc:61 +msgid "Can be left empty." +msgstr "Kan leeg gelaten worden." + +#: ../lib/modules/asteriskAccount.inc:223 +#: ../lib/modules/asteriskAccount.inc:294 +#: ../lib/modules/asteriskAccount.inc:515 +#: ../lib/modules/asteriskAccount.inc:741 +#: ../lib/modules/asteriskAccount.inc:1010 +#: ../lib/modules/asteriskAccount.inc:1289 +msgid "Can call forward" +msgstr "Kunnen doorschakelen" + +#: ../templates/lists/changePassword.php:349 +#: ../templates/lists/changePassword.php:386 +#: ../templates/lists/changePassword.php:427 +#: ../templates/lists/changePassword.php:458 ../templates/ou_edit.php:121 +#: ../templates/config/profmanage.php:254 +#: ../templates/config/profmanage.php:266 +#: ../templates/config/profmanage.php:275 +#: ../templates/config/profmanage.php:293 +#: ../templates/config/profmanage.php:304 +#: ../templates/config/mainmanage.php:470 +#: ../templates/config/confmodules.php:227 +#: ../templates/config/confmain.php:471 +#: ../templates/config/moduleSettings.php:241 +#: ../templates/config/conftypes.php:362 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminMain.php:716 +#: ../templates/pdfedit/pdfpage.php:638 ../templates/pdfedit/pdfmain.php:210 +#: ../templates/pdfedit/pdfmain.php:217 ../templates/pdfedit/pdfmain.php:223 +#: ../templates/delete.php:121 ../templates/profedit/profilepage.php:241 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/profedit/profilemain.php:205 +#: ../templates/profedit/profilemain.php:211 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:197 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:83 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:136 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:121 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:119 +#: ../templates/initsuff.php:191 ../lib/types/automountType.inc:234 +#: ../lib/types/user.inc:303 ../lib/types/bind.inc:175 +#: ../lib/modules/kolabGroup.inc:294 ../lib/modules/pykotaPrinter.inc:431 +#: ../lib/modules/mitKerberos.inc:690 ../lib/modules/qmailUser.inc:921 +#: ../lib/modules/zarafaContact.inc:391 ../lib/modules/windowsHost.inc:226 +#: ../lib/modules/zarafaGroup.inc:451 ../lib/modules/device.inc:254 +#: ../lib/modules/sambaSamAccount.inc:1437 +#: ../lib/modules/sambaSamAccount.inc:1486 +#: ../lib/modules/sambaSamAccount.inc:1572 ../lib/modules/zarafaUser.inc:875 +#: ../lib/modules/kolabUser.inc:520 ../lib/modules/sambaGroupMapping.inc:490 +#: ../lib/modules/shadowAccount.inc:478 ../lib/modules/nisnetgroup.inc:490 +#: ../lib/modules/inetOrgPerson.inc:1743 ../lib/modules/freeRadius.inc:431 +#: ../lib/modules/kolabSharedFolder.inc:434 +#: ../lib/modules/customFields.inc:1084 ../lib/modules/aliasEntry.inc:147 +#: ../lib/modules/aliasEntry.inc:167 ../lib/modules/qmailGroup.inc:823 +#: ../lib/modules/organizationalRole.inc:318 ../lib/modules/fixed_ip.inc:587 +#: ../lib/modules/heimdalKerberos.inc:600 ../lib/modules/windowsGroup.inc:505 +#: ../lib/modules/windowsGroup.inc:557 ../lib/modules/groupOfNames.inc:375 +#: ../lib/modules/groupOfNames.inc:530 ../lib/modules/nisMailAlias.inc:385 +#: ../lib/lists.inc:711 ../lib/lists.inc:792 ../lib/modules.inc:1230 +msgid "Cancel" +msgstr "Afbreken" + +#: ../templates/login.php:569 ../templates/login.php:627 +#: ../templates/login.php:632 +#: ../templates/selfService/selfServiceLogin.php:141 +#: ../templates/selfService/selfServiceLogin.php:190 +#: ../templates/selfService/selfServiceLogin.php:195 +#: ../templates/selfService/selfServiceMain.php:168 +#: ../templates/selfService/selfServiceMain.php:189 +#: ../lib/modules/selfRegistration.inc:699 +msgid "Cannot connect to specified LDAP server. Please try again." +msgstr "Kan de opgegeven LDAP server niet bereiken. S.v.p. opnieuw proberen." + +#: ../templates/login.php:310 ../lib/config.inc:1683 +msgid "Cannot open config file!" +msgstr "Kan configuratiefile niet openen!" + +#: ../lib/modules/imapAccess.inc:187 +msgid "Cannot update quota." +msgstr "Quota kan niet bijgewerkt worden." + +#: ../lib/config.inc:1695 ../lib/config.inc:1703 +msgid "" +"Cannot write certificate file. Please check the permissions of config/" +"serverCerts.pem." +msgstr "" +"Kan certificaatbestand niet schrijven. Controleer de permissies van config/" +"serverCerts.pem." + +#: ../lib/modules/zarafaUser.inc:120 ../lib/modules/zarafaUser.inc:247 +#: ../lib/modules/zarafaUser.inc:364 ../lib/modules/zarafaUser.inc:415 +#: ../lib/modules/zarafaUser.inc:545 ../lib/modules/zarafaUser.inc:1232 +#: ../lib/modules/zarafaUser.inc:1799 +msgid "Capacity" +msgstr "Capaciteit" + +#: ../templates/selfService/adminMain.php:496 +msgid "Captions and labels" +msgstr "Bijschriften en labels" + +#: ../lib/modules/inetOrgPerson.inc:163 ../lib/modules/inetOrgPerson.inc:534 +#: ../lib/modules/inetOrgPerson.inc:607 ../lib/modules/inetOrgPerson.inc:810 +#: ../lib/modules/inetOrgPerson.inc:1479 ../lib/modules/inetOrgPerson.inc:1482 +#: ../lib/modules/inetOrgPerson.inc:1943 ../lib/modules/inetOrgPerson.inc:2668 +#: ../lib/modules/inetOrgPerson.inc:3610 ../lib/modules/inetOrgPerson.inc:3655 +msgid "Car license" +msgstr "Rijbewijs" + +#: ../lib/modules/sambaSamAccount.inc:566 +msgid "Central Europe Time, Paris, Berlin" +msgstr "Central Europe Time, Paris, Berlin" + +#: ../lib/modules/sambaSamAccount.inc:559 +msgid "Central Time (US & Canada), Mexico City" +msgstr "Central Time (US & Canada), Mexico City" + +#: ../templates/selfService/adminMain.php:514 +#: ../lib/modules/mitKerberos.inc:377 ../lib/modules/mitKerberos.inc:388 +#: ../lib/modules/mitKerberos.inc:686 ../lib/modules/qmailUser.inc:661 +#: ../lib/modules/qmailUser.inc:917 ../lib/modules/zarafaContact.inc:229 +#: ../lib/modules/windowsHost.inc:155 ../lib/modules/windowsHost.inc:225 +#: ../lib/modules/zarafaGroup.inc:266 ../lib/modules/device.inc:181 +#: ../lib/modules/sambaSamAccount.inc:1197 +#: ../lib/modules/sambaSamAccount.inc:1482 ../lib/modules/zarafaUser.inc:466 +#: ../lib/modules/zarafaUser.inc:557 ../lib/modules/shadowAccount.inc:355 +#: ../lib/modules/shadowAccount.inc:474 ../lib/modules/inetOrgPerson.inc:1566 +#: ../lib/modules/freeRadius.inc:301 ../lib/modules/freeRadius.inc:427 +#: ../lib/modules/asteriskExtension.inc:236 ../lib/modules/aliasEntry.inc:100 +#: ../lib/modules/qmailGroup.inc:572 ../lib/modules/organizationalRole.inc:194 +#: ../lib/modules/passwordSelfReset.inc:271 +#: ../lib/modules/heimdalKerberos.inc:324 +#: ../lib/modules/heimdalKerberos.inc:335 +#: ../lib/modules/heimdalKerberos.inc:596 ../lib/modules/windowsGroup.inc:361 +#: ../lib/modules/windowsGroup.inc:504 ../lib/modules/groupOfNames.inc:241 +#: ../lib/modules/groupOfNames.inc:248 +msgid "Change" +msgstr "Verander" + +#: ../templates/lists/changePassword.php:228 +msgid "Change Asterisk password" +msgstr "Verander Asterisk wachtwoord" + +#: ../templates/lists/changePassword.php:231 +msgid "Change Asterisk voicemail password" +msgstr "Wijzig Asterisk wachtwoord voor voicemail" + +#: ../lib/modules/posixGroup.inc:218 ../lib/modules/posixGroup.inc:512 +msgid "Change GID number of users and hosts" +msgstr "Verander GID nummer van gebruikers en hosts" + +#: ../templates/lists/changePassword.php:234 +#: ../templates/lists/changePassword.php:237 +msgid "Change Kerberos password" +msgstr "Verander Kerberos wachtwoord" + +#: ../templates/lists/changePassword.php:221 +msgid "Change Samba LM password" +msgstr "Verander Samba LM wachtwoord" + +#: ../templates/lists/changePassword.php:219 +msgid "Change Samba NT password" +msgstr "Verander Samba NT wachtwoord" + +#: ../templates/lists/changePassword.php:213 +msgid "Change Unix password" +msgstr "Verander Unix wachtwoord" + +#: ../templates/lists/changePassword.php:240 +msgid "Change Windows password" +msgstr "Verander Windows wachtwoord" + +#: ../lib/types/user.inc:303 +msgid "Change account status" +msgstr "Wijzig account status" + +#: ../templates/config/profmanage.php:300 +#: ../templates/config/profmanage.php:303 ../help/help.inc:138 +msgid "Change default profile" +msgstr "Verander default profiel" + +#: ../templates/selfService/adminMain.php:575 +msgid "Change field label." +msgstr "Wijzig het veld label." + +#: ../lib/lists.inc:792 +msgid "Change list settings" +msgstr "Verander lijst instellingen" + +#: ../templates/config/mainmanage.php:454 ../help/help.inc:140 +msgid "Change master password" +msgstr "Verander master wachtwoord" + +#: ../templates/lists/changePassword.php:216 +#: ../templates/lists/changePassword.php:261 +#: ../templates/lists/changePassword.php:346 +#: ../templates/lists/changePassword.php:348 +#: ../templates/lists/changePassword.php:383 +#: ../templates/lists/changePassword.php:385 ../lib/types/user.inc:669 +#: ../help/help.inc:105 +msgid "Change password" +msgstr "Verander wachtwoord" + +#: ../templates/lists/changePassword.php:268 +#: ../templates/lists/changePassword.php:269 +msgid "Change password now?" +msgstr "Verander wachtwoord nu?" + +#: ../templates/config/confmain.php:261 +msgid "Change passwords" +msgstr "Wijzig wachtwoorden" + +#: ../lib/lists.inc:793 +msgid "Change settings" +msgstr "Instellingen wijzigen" + +#: ../lib/modules/posixAccount.inc:1225 +msgid "Changed value because only ASCII characters are allowed." +msgstr "Waarde is veranderd omdat alleen ASCII tekens toegestaan zijn." + +#: ../lib/modules/passwordSelfReset.inc:185 +msgid "Charlie" +msgstr "Charlie" + +#: ../lib/modules/posixAccount.inc:1485 +msgid "Check home directories" +msgstr "Controleer home directories " + +#: ../templates/tests/index.php:54 ../lib/tools/tests.inc:112 +msgid "Check if quotas and homedirectories can be managed." +msgstr "Controleer of de quota's en homedirectories kunnen worden beheerd." + +#: ../templates/tests/index.php:60 ../lib/tools/tests.inc:118 +msgid "" +"Check if the LDAP schema fits the requirements of the selected account " +"modules." +msgstr "" +"Controleer of de LDAP-schema past bij de eisen van de geselecteerde account " +"modules." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2401 +msgid "Check password" +msgstr "Controleer wachtwoord" + +#: ../templates/tests/lamdaemonTest.php:87 +msgid "Check quotas" +msgstr "Controleer de quota" + +#: ../templates/masscreate.php:247 +msgid "" +"Check your input carefully. LAM will only do some basic checks on the upload " +"data." +msgstr "" +"Controleer uw invoer goed. LAM doet alleen wat basis controles van de te " +"uploaden gegevens." + +#: ../lib/modules/customFields.inc:2735 +msgid "Checkbox" +msgstr "Checkbox" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1224 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1229 +msgid "Children" +msgstr "Kinderen" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:23 +msgid "Choose entry" +msgstr "Kies een item" + +#: ../lib/modules/imapAccess.inc:90 +msgid "" +"Choose the way how to provide the IMAP admin password. You can use the same " +"password as for the LAM login or LAM will ask you for a password when it is " +"required." +msgstr "" +"Kies de manier om het IMAP-admin wachtwoord op te geven. U kunt hetzelfde " +"wachtwoord gebruiken als voor de LAM login of LAM zal u vragen om een " +"wachtwoord in te voeren wanneer het nodig is." + +#: ../lib/modules/puppetClient.inc:92 ../lib/modules/puppetClient.inc:96 +#: ../lib/modules/puppetClient.inc:140 ../lib/modules/puppetClient.inc:155 +#: ../lib/modules/puppetClient.inc:168 ../lib/modules/puppetClient.inc:271 +#: ../lib/modules/puppetClient.inc:433 +msgid "Classes" +msgstr "Klassen" + +#: ../lib/lists.inc:384 +msgid "Clear filter" +msgstr "Wis filter" + +#: ../lib/config.inc:266 +msgid "Click here if you are not directed to the next page." +msgstr "Klik hier als u niet wordt doorverwezen naar de volgende pagina." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2349 +msgid "Click to popup a dialog to select a date graphically" +msgstr "" +"Klik om een popup dialoog te tonen om grafisch een ​​datum te selecteren " + +#: ../templates/3rdParty/pla/lib/functions.php:2293 +msgid "Click to popup a dialog to select an entry (DN) graphically" +msgstr "" +"Klik om een popup dialoog te tonen om grafisch een item (DN) te selecteren" + +#: ../lib/types/user.inc:619 +msgid "Click to switch between thumbnail and original size." +msgstr "Klik om te schakelen tussen miniatuur en oorspronkelijke grootte." + +#: ../lib/modules/sambaSamAccount.inc:242 +#: ../lib/modules/sambaSamAccount.inc:379 +#: ../lib/modules/sambaSamAccount.inc:1540 +#: ../lib/modules/sambaSamAccount.inc:1950 +msgid "Client printer is default" +msgstr "Client printer is standaard" + +#: ../templates/schema/schema.php:199 +msgid "Collective" +msgstr "Verzamelde" + +#: ../lib/modules/pykotaPrinter.inc:155 +msgid "Color laser printer" +msgstr "Kleurenlaserprinter" + +#: ../templates/masscreate.php:284 ../lib/modules/customFields.inc:128 +#: ../lib/modules/customFields.inc:2601 +msgid "Columns" +msgstr "Kolommen" + +#: ../lib/modules/sambaSamAccount.inc:319 +msgid "" +"Comma separated list of Samba workstations the user is allowed to login. " +"Empty means every workstation." +msgstr "" +"Komma gescheiden lijst van Samba werkstations waarop de geruiker mag " +"inloggen. Leeg betekent dat ieder werkstation is toegestaan." + +#: ../lib/modules/authorizedServiceObject.inc:86 +msgid "Comma separated list of services (e.g. sshd, imap, ftp)." +msgstr "Komma gescheiden lijst van diensten (bv sshd, imap ftp)." + +#: ../lib/types/sudo.inc:80 ../lib/modules/customScripts.inc:169 +msgid "Command" +msgstr "Opdracht" + +#: ../lib/modules/sudoRole.inc:82 ../lib/modules/sudoRole.inc:108 +#: ../lib/modules/sudoRole.inc:171 ../lib/modules/sudoRole.inc:218 +#: ../lib/modules/sudoRole.inc:230 ../lib/modules/sudoRole.inc:370 +#: ../lib/modules/sudoRole.inc:808 +msgid "Commands" +msgstr "Commando's" + +#: ../lib/modules/pykotaUser.inc:375 ../lib/modules/pykotaUser.inc:599 +#: ../lib/modules/pykotaUser.inc:907 ../lib/modules/pykotaUser.inc:967 +msgid "Comment" +msgstr "Opmerkingen" + +#: ../lib/modules/pykotaUser.inc:137 +msgid "Comment for initial balance." +msgstr "Commentaar voor de eerste balans." + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:117 +msgid "Commit" +msgstr "Bevestig" + +#: ../lib/modules/posixAccount.inc:438 +msgid "Common examples are \"@givenname@%sn%\" or \"%givenname%.%sn%\"." +msgstr "Voorbeelden zijn \"@givenname@%sn%\" of \"%givenname%.%sn%\"." + +#: ../templates/config/mainmanage.php:362 ../lib/types/user.inc:94 +#: ../lib/modules/pykotaGroup.inc:113 ../lib/modules/pykotaGroup.inc:157 +#: ../lib/modules/pykotaGroup.inc:185 ../lib/modules/pykotaGroup.inc:466 +#: ../lib/modules/posixAccount.inc:129 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:348 ../lib/modules/posixAccount.inc:421 +#: ../lib/modules/posixAccount.inc:538 ../lib/modules/posixAccount.inc:560 +#: ../lib/modules/posixAccount.inc:1429 ../lib/modules/posixAccount.inc:1856 +#: ../lib/modules/posixAccount.inc:2558 ../lib/modules/windowsUser.inc:102 +#: ../lib/modules/windowsUser.inc:290 ../lib/modules/windowsUser.inc:473 +#: ../lib/modules/windowsUser.inc:499 ../lib/modules/windowsUser.inc:591 +#: ../lib/modules/windowsUser.inc:702 ../lib/modules/windowsUser.inc:1594 +#: ../lib/modules/pykotaUser.inc:108 ../lib/modules/pykotaUser.inc:199 +#: ../lib/modules/pykotaUser.inc:271 ../lib/modules/pykotaUser.inc:405 +#: ../lib/modules/pykotaUser.inc:888 ../lib/modules/inetOrgPerson.inc:95 +#: ../lib/modules/inetOrgPerson.inc:640 ../lib/modules/inetOrgPerson.inc:762 +#: ../lib/modules/inetOrgPerson.inc:1222 ../lib/modules/inetOrgPerson.inc:1225 +#: ../lib/modules/inetOrgPerson.inc:1938 ../lib/modules/inetOrgPerson.inc:2069 +#: ../lib/modules/inetOrgPerson.inc:3665 +#: ../lib/modules/asteriskExtension.inc:118 +msgid "Common name" +msgstr "Algemene naam" + +#: ../lib/modules/asteriskExtension.inc:119 +msgid "Common name of the Asterisk extension." +msgstr "Gebruikelijke naam van de Asterisk extensie." + +#: ../templates/serverInfo.php:335 ../templates/serverInfo.php:396 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1172 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:60 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:39 +msgid "Compare" +msgstr "Vergelijk" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:28 +#, php-format +msgid "Compare another DN with %s" +msgstr "Vergelijk een andere DN met %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1169 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +msgid "Compare this DN with another" +msgstr "Vergelijk deze DN met een andere" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +msgid "Compare with another entry" +msgstr "Vergelijk met een ander item" + +#: ../templates/3rdParty/pla/htdocs/compare.php:42 +msgid "Comparing the following DNs" +msgstr "Vergelijk de volgende DNs" + +#: ../templates/serverInfo.php:284 ../templates/serverInfo.php:371 +msgid "Completed" +msgstr "Klaar" + +#: ../templates/serverInfo.php:114 +msgid "Config suffix" +msgstr "Config achtervoegsel" + +#: ../templates/config/index.php:50 +msgid "Configuration overview" +msgstr "Configuratie overzicht" + +#: ../lib/modules/qmailUser.inc:126 ../lib/modules/qmailUser.inc:179 +#: ../lib/modules/qmailUser.inc:259 ../lib/modules/qmailUser.inc:392 +#: ../lib/modules/qmailUser.inc:439 ../lib/modules/qmailUser.inc:619 +#: ../lib/modules/qmailUser.inc:1178 +msgid "Configuration type" +msgstr "Configuratie type" + +#: ../lib/modules/qmailGroup.inc:96 ../lib/modules/qmailGroup.inc:228 +#: ../lib/modules/qmailGroup.inc:361 ../lib/modules/qmailGroup.inc:411 +#: ../lib/modules/qmailGroup.inc:623 ../lib/modules/qmailGroup.inc:1081 +msgid "Confirm sender" +msgstr "Bevestig afzender" + +#: ../lib/modules/selfRegistration.inc:228 +msgid "Confirmation mail settings" +msgstr "Bevestigings e-mail instellingen" + +#: ../lib/modules/qmailGroup.inc:74 ../lib/modules/qmailGroup.inc:103 +#: ../lib/modules/qmailGroup.inc:152 ../lib/modules/qmailGroup.inc:271 +#: ../lib/modules/qmailGroup.inc:378 ../lib/modules/qmailGroup.inc:591 +#: ../lib/modules/qmailGroup.inc:1060 +msgid "Confirmation text" +msgstr "Bevestigingstekst" + +#: ../lib/modules/qmailGroup.inc:153 +msgid "" +"Confirmation text that is used if sender-confirmation is used. The usual " +"%HEADER% magic of qmail-reply etc. can be used here." +msgstr "" +"Bevestiging tekst die wordt gebruikt als 'afzender bevestiging' gebruikt " +"wordt. De gebruikelijke %HEADER% magie van qmail-antwoord, enz. kunnen hier " +"worden gebruikt." + +#: ../templates/config/confmodules.php:394 +msgid "Conflicting module:" +msgstr "Conflicterende module:" + +#: ../lib/modules/sambaSamAccount.inc:240 +#: ../lib/modules/sambaSamAccount.inc:373 +#: ../lib/modules/sambaSamAccount.inc:1536 +#: ../lib/modules/sambaSamAccount.inc:1940 +msgid "Connect client drives" +msgstr "Sluit de klant drives aan" + +#: ../lib/modules/sambaSamAccount.inc:241 +#: ../lib/modules/sambaSamAccount.inc:376 +#: ../lib/modules/sambaSamAccount.inc:1538 +#: ../lib/modules/sambaSamAccount.inc:1945 +msgid "Connect client printers" +msgstr "Sluit de klant printers aan" + +#: ../templates/serverInfo.php:230 +msgid "Connection statistics" +msgstr "Verbindingsstatistieken" + +#: ../lib/types/oracleContextType.inc:78 ../lib/modules/oracleService.inc:65 +#: ../lib/modules/oracleService.inc:85 ../lib/modules/oracleService.inc:99 +#: ../lib/modules/oracleService.inc:123 ../lib/modules/oracleService.inc:171 +msgid "Connection string" +msgstr "Verbindingsreeks" + +#: ../lib/modules/sambaSamAccount.inc:237 +#: ../lib/modules/sambaSamAccount.inc:1524 +#: ../lib/modules/sambaSamAccount.inc:1933 +msgid "Connection time limit" +msgstr "Aansluiting tijdslimiet" + +#: ../lib/modules/bindDLZ.inc:232 +msgid "Contact address for this zone (e.g. \"root.example.com.\")." +msgstr "Contactadres voor deze zone (bijv. \"root.example.com.\")." + +#: ../lib/modules/windowsUser.inc:715 ../lib/modules/inetOrgPerson.inc:1402 +msgid "Contact data" +msgstr "Contactgegevens" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:721 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1301 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +msgid "Container" +msgstr "Container" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1458 +msgid "Container and object classes" +msgstr "Container en objectklassen" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:27 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:88 +#: ../templates/3rdParty/pla/htdocs/copy.php:108 +msgid "Copy" +msgstr "Kopieer" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:32 +#, php-format +msgid "Copy %s to a new object." +msgstr "Kopieer %s naar een nieuw object" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1098 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1102 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1103 +msgid "Copy or move this entry" +msgstr "Kopieer of verplaats dit item " + +#: ../templates/3rdParty/pla/htdocs/copy.php:130 +#, php-format +msgid "Copy successful. DN %s has been created." +msgstr "Kopie geslaagd. DN %s is aangemaakt." + +#: ../templates/3rdParty/pla/htdocs/copy.php:48 +msgid "Copying" +msgstr "Kopieren" + +#: ../templates/3rdParty/pla/htdocs/import.php:37 +msgid "Could not add object" +msgstr "Kon object niet toevoegen" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:370 +msgid "Could not add the object to the LDAP server." +msgstr "Kon het object niet toevoegen aan de LDAP-server." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:30 +msgid "Could not delete attribute value." +msgstr "Kon attribuutwaarde niet verwijderen." + +#: ../templates/3rdParty/pla/htdocs/import.php:38 +msgid "Could not delete object" +msgstr "Kon object niet verwijderen" + +#: ../templates/3rdParty/pla/htdocs/delete.php:37 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:47 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:73 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:90 +msgid "Could not delete the entry." +msgstr "Kon item niet verwijderen." + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:37 +#, php-format +msgid "Could not fetch binary data from LDAP server for attribute [%s]." +msgstr "" +"Kon binaire gegevens niet ophalen van de LDAP-server voor het attribuut [%s]." + +#: ../templates/3rdParty/pla/lib/functions.php:1946 +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:60 +#, php-format +msgid "Could not fetch jpeg data from LDAP server for attribute [%s]." +msgstr "" +"Kon jpeg gegevens niet ophalen van de LDAP-server voor het attribuut [%s]." + +#: ../templates/3rdParty/pla/htdocs/import.php:41 +msgid "Could not modify object" +msgstr "Kon object niet aanpassen" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:528 +msgid "Could not perform ldap_modify operation." +msgstr "ldap_modificatie kan niet worden uitgevoerd." + +#: ../templates/config/profmanage.php:100 +#: ../templates/selfService/profManage.php:74 +msgid "Could not rename file!" +msgstr "Kan bestand niet hernoemen!" + +#: ../templates/3rdParty/pla/htdocs/import.php:39 +#: ../templates/3rdParty/pla/htdocs/import.php:40 +#: ../templates/3rdParty/pla/htdocs/rename.php:60 +msgid "Could not rename the entry." +msgstr "Kon item niet hernoemen." + +#: ../templates/pdfedit/pdfpage.php:117 +msgid "Could not save PDF structure, access denied." +msgstr "Kan PDF structuur niet opslaan, toegang geweigerd." + +#: ../templates/pdfedit/pdfmain.php:182 +#: ../templates/profedit/profilemain.php:168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1185 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1189 +#: ../templates/initsuff.php:190 ../lib/modules/nisMailAliasUser.inc:366 +#: ../lib/modules/sambaSamAccount.inc:1625 +#: ../lib/modules/posixAccount.inc:1695 +msgid "Create" +msgstr "Aanmaken" + +#: ../lib/lists.inc:500 ../lib/lists.inc:686 ../lib/modules.inc:1349 +#: ../help/help.inc:200 +msgid "Create PDF file" +msgstr "PDF bestand maken" + +#: ../templates/massDoUpload.php:202 ../templates/masscreate.php:264 +msgid "Create PDF files" +msgstr "PDF bestanden maken" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1186 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1190 +msgid "Create a child entry" +msgstr "Maak een kind item" + +#: ../templates/pdfedit/pdfmain.php:175 +msgid "Create a new PDF structure" +msgstr "Maak een nieuwe PDF-structuur" + +#: ../templates/profedit/profilemain.php:156 +msgid "Create a new profile" +msgstr "Nieuw profiel maken" + +#: ../lib/types/dhcp.inc:46 +msgid "Create another DHCP entry" +msgstr "Maak nog een DHCP-item" + +#: ../lib/types/bind.inc:29 +msgid "Create another DNS entry" +msgstr "Maak nog een DNS entry" + +#: ../lib/types/nisObjectType.inc:29 +msgid "Create another NIS object" +msgstr "Maak nog een NIS object" + +#: ../lib/baseType.inc:47 +msgid "Create another account" +msgstr "Ander account maken" + +#: ../lib/types/zarafaAddressListType.inc:43 +msgid "Create another address list" +msgstr "Maak nog een adreslijst" + +#: ../lib/types/mailAlias.inc:43 ../lib/types/alias.inc:43 +msgid "Create another alias" +msgstr "Maak nog een alias" + +#: ../lib/types/automountType.inc:34 +msgid "Create another automount entry" +msgstr "Maak nog een automount item" + +#: ../lib/types/pykotaBillingCodeType.inc:43 +msgid "Create another billing code" +msgstr "Maak nog een billing code" + +#: ../lib/types/oracleContextType.inc:29 +msgid "Create another database entry" +msgstr "Maak een andere database toegang" + +#: ../lib/types/smbDomain.inc:43 +msgid "Create another domain" +msgstr "Maak nog een domein" + +#: ../templates/3rdParty/pla/htdocs/create.php:100 +msgid "Create another entry" +msgstr "Maak nog een item" + +#: ../lib/types/asteriskExt.inc:46 +msgid "Create another extension" +msgstr "Maak nog een extentie" + +#: ../lib/types/gon.inc:43 ../lib/types/zarafaDynamicGroupType.inc:43 +#: ../lib/types/group.inc:44 ../lib/types/netgroup.inc:43 +msgid "Create another group" +msgstr "Maak nog een groep" + +#: ../lib/types/host.inc:43 +msgid "Create another host" +msgstr "Maak nog een host" + +#: ../lib/types/ppolicyType.inc:29 +msgid "Create another policy" +msgstr "Maak nog een policy" + +#: ../lib/types/pykotaPrinterType.inc:43 +msgid "Create another printer" +msgstr "Maak nog een printer" + +#: ../lib/types/gon.inc:48 ../lib/types/group.inc:49 +msgid "Create another role" +msgstr "Maak nog een rol" + +#: ../lib/types/kolabSharedFolderType.inc:43 +msgid "Create another shared folder" +msgstr "Maak nog een shared folder" + +#: ../lib/types/sudo.inc:29 +msgid "Create another sudo role" +msgstr "Maak nog een sudo rol" + +#: ../lib/types/user.inc:43 +msgid "Create another user" +msgstr "Maak nog een gebruiker" + +#: ../lib/lists.inc:691 +msgid "Create for" +msgstr "Creëren voor" + +#: ../lib/modules/posixAccount.inc:317 ../lib/modules/posixAccount.inc:1471 +#: ../lib/modules/posixAccount.inc:1760 +msgid "Create home directory" +msgstr "Home directory maken" + +#: ../lib/modules/imapAccess.inc:263 +msgid "Create mailbox" +msgstr "Maak mailbox" + +#: ../lib/modules/nisMailAliasUser.inc:359 +msgid "Create new alias" +msgstr "Maak een nieuwe alias" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:278 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:281 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:283 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:506 +msgid "Create new entry here" +msgstr "Maak hier nieuw item" + +#: ../lib/modules/customFields.inc:72 ../lib/modules/customFields.inc:519 +#: ../lib/modules/customFields.inc:532 +msgid "Create new group" +msgstr "Nieuwe groep maken" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:698 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1541 +#: ../templates/3rdParty/pla/htdocs/create.php:84 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:52 +msgid "Create object" +msgstr "Object maken" + +#: ../lib/modules/generalInformation.inc:76 +msgid "Created by" +msgstr "Gemaakt door" + +#: ../lib/types/automountType.inc:273 +msgid "Created new automount map." +msgstr "Nieuwe automount map aangemaakt." + +#: ../templates/config/profmanage.php:77 +#: ../templates/selfService/profManage.php:55 +msgid "Created new profile." +msgstr "Nieuw profiel maken" + +#: ../lib/types/bind.inc:240 +msgid "Created new zone." +msgstr "Nieuwe zone aangemaakt." + +#: ../lib/modules/customFields.inc:73 +msgid "" +"Creates a new group for the given account type. Groups build a container for " +"object classes and attributes." +msgstr "" +"Maakt een nieuwe groep aan voor het gegeven type account. Groepen bouwen van " +"een container voor objectklassen en attributen." + +#: ../lib/tools/fileUpload.inc:53 +msgid "Creates accounts by uploading a CSV formated file." +msgstr "Accounts maken middels het uploaden van bestand in CSV formaat." + +#: ../templates/3rdParty/pla/htdocs/create.php:77 +#, php-format +msgid "Creation successful. DN %s has been created." +msgstr "Creatie succesvol. DN %s is gecreëerd." + +#: ../lib/modules/generalInformation.inc:80 +msgid "Creation time" +msgstr "Creatie tijd" + +#: ../lib/modules/pykotaUser.inc:133 +msgid "Current account balance for the user." +msgstr "Huidige saldo voor de gebruiker." + +#: ../templates/serverInfo.php:232 ../templates/serverInfo.php:237 +msgid "Current connections" +msgstr "Huidige verbindingen" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:65 +#, php-format +msgid "Current list of %s values for attribute %s:" +msgstr "Huidige lijst van %s waarden voor attribuut %s:" + +#: ../lib/modules/imapAccess.inc:317 +msgid "Current usage (kB)" +msgstr "Huidig gebruik(kB)" + +#: ../lib/modules/customFields.inc:1097 ../lib/modules/customFields.inc:1420 +msgid "Custom fields" +msgstr "Aangepaste velden" + +#: ../lib/modules/customFields.inc:172 +msgid "Custom icon" +msgstr "Custom icon" + +#: ../templates/config/conftypes.php:315 ../lib/modules/customFields.inc:168 +#: ../help/help.inc:180 +msgid "Custom label" +msgstr "Custom label" + +#: ../lib/modules/customScripts.inc:48 ../lib/modules/customScripts.inc:59 +#: ../lib/modules/customScripts.inc:73 ../lib/modules/customScripts.inc:98 +#: ../lib/modules/customScripts.inc:108 +msgid "Custom scripts" +msgstr "Aangepaste scripts" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1097 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1101 +msgid "Cut" +msgstr "Knip" + +#: ../lib/modules/ddns.inc:63 +msgid "DDNS" +msgstr "DDNS" + +#: ../lib/modules/ddns.inc:377 +msgid "" +"DDNS ist not activated. You can activate it in the DHCP settings (DDNS)." +msgstr "" +"DDNS is niet geactiveerd. Het kan geactiveerd worden in de DHCP instellingen " +"(DDNS)" + +#: ../lib/types/dhcp.inc:56 +msgid "DHCP" +msgstr "DHCP" + +#: ../lib/types/dhcp.inc:65 +msgid "DHCP administration" +msgstr "DHCP-administratie" + +#: ../lib/types/dhcp.inc:170 +#, php-format +msgid "DHCP count: %s" +msgstr "DHCP aantal: %s:" + +#: ../lib/types/dhcp.inc:173 ../lib/modules/dhcp_settings.inc:127 +msgid "DHCP settings" +msgstr "DHCP instellingen" + +#: ../templates/delete.php:100 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:734 +#: ../templates/3rdParty/pla/lib/PageRender.php:110 +#: ../templates/3rdParty/pla/htdocs/compare.php:52 +#: ../templates/3rdParty/pla/htdocs/compare.php:58 +#: ../templates/3rdParty/pla/htdocs/create.php:92 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:35 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:112 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:57 ../lib/modules.inc:410 +#: ../lib/modules.inc:1964 +msgid "DN" +msgstr "DN" + +#: ../templates/3rdParty/pla/lib/import_functions.php:210 +#: ../templates/3rdParty/pla/lib/import_functions.php:222 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1866 +msgid "DN does not exist" +msgstr "DN bestaat niet" + +#: ../templates/masscreate.php:288 +msgid "DN settings" +msgstr "DN instellingen" + +#: ../templates/masscreate.php:317 ../help/help.inc:190 +msgid "DN suffix" +msgstr "DN achtervoegsel" + +#: ../lib/modules/dhcp_settings.inc:211 ../lib/modules/dhcp_settings.inc:226 +#: ../lib/modules/dhcp_settings.inc:268 ../lib/modules/dhcp_settings.inc:577 +#: ../lib/modules/dhcp_settings.inc:677 +msgid "DNS" +msgstr "DNS" + +#: ../lib/modules/dhcp_settings.inc:161 +msgid "DNS (Domain Name System)" +msgstr "DNS (Domain Name System)" + +#: ../lib/modules/bindDLZ.inc:74 +msgid "DNS entry" +msgstr "DNS entry" + +#: ../lib/types/bind.inc:159 +#, php-format +msgid "DNS entry count: %s" +msgstr "DNS entry aantal: %s" + +#: ../lib/modules/asteriskExtension.inc:115 +msgid "DNs of the extension owners" +msgstr "DN's van de extensie eigenaar" + +#: ../templates/3rdParty/pla/lib/export_functions.php:343 +msgid "DSML V.1 Export" +msgstr "DSML V.1 Export" + +#: ../lib/modules/asteriskAccount.inc:273 +#: ../lib/modules/asteriskAccount.inc:362 +#: ../lib/modules/asteriskAccount.inc:627 +#: ../lib/modules/asteriskAccount.inc:1247 +msgid "DTFM flags" +msgstr "DTFM vlaggen" + +#: ../lib/modules/asteriskAccount.inc:139 +#: ../lib/modules/asteriskAccount.inc:989 +msgid "DTMF mode" +msgstr "DTMF mode" + +#: ../lib/modules/asteriskAccount.inc:140 +msgid "DTMF mode for SIP client configuration." +msgstr "DTMF mode voor SIP-client-configuratie." + +#: ../templates/3rdParty/pla/htdocs/import.php:103 +msgid "Data" +msgstr "Gegevens" + +#: ../lib/types/oracleContextType.inc:186 +#, php-format +msgid "Database count: %s" +msgstr "Database aantal:%s" + +#: ../lib/modules/pykotaUser.inc:595 ../lib/modules/pykotaUser.inc:646 +#: ../lib/modules/pykotaUser.inc:905 ../lib/modules/pykotaUser.inc:963 +#: ../lib/modules/pykotaUser.inc:995 +msgid "Date" +msgstr "Datum" + +#: ../lib/modules/sambaSamAccount.inc:299 +msgid "Date after the user is able to change his password." +msgstr "Datum waarna de gebruiker zijn wachtwoord mag wijzigen." + +#: ../lib/modules/mitKerberos.inc:121 ../lib/modules/sambaSamAccount.inc:301 +#: ../lib/modules/heimdalKerberos.inc:107 +msgid "Date after the user must change his password." +msgstr "Datum waarna de gebruiker zijn wachtwoord moet wijzigen." + +#: ../lib/modules/shadowAccount.inc:178 +msgid "" +"Days before password is to expire that user is warned of pending password " +"expiration. If set value must be >0." +msgstr "" +"Aantal dagen voor het verlopen van het wachtwoord waarop de gebruiker wordt " +"gewaarschuwd. Indien gezet moet de waarde groter dan 0 zijn." + +#: ../templates/config/mainmanage.php:408 +msgid "Debug" +msgstr "Debug" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:592 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +#: ../lib/modules/qmailUser.inc:47 ../lib/modules/qmailUser.inc:292 +#: ../lib/modules/qmailUser.inc:1060 +msgid "Default" +msgstr "Default waarde" + +#: ../templates/config/mainmanage.php:443 +msgid "Default (\\r\\n)" +msgstr "Default (\\r\\n)" + +#: ../lib/modules/dhcp_settings.inc:165 ../lib/modules/dhcp_settings.inc:212 +#: ../lib/modules/dhcp_settings.inc:227 ../lib/modules/dhcp_settings.inc:274 +#: ../lib/modules/dhcp_settings.inc:579 ../lib/modules/dhcp_settings.inc:678 +msgid "Default gateway" +msgstr "Default gateway" + +#: ../templates/config/confmain.php:297 +#: ../templates/selfService/adminMain.php:453 ../help/help.inc:99 +msgid "Default language" +msgstr "Default taal" + +#: ../lib/modules/asteriskAccount.inc:231 +#: ../lib/modules/asteriskAccount.inc:296 +#: ../lib/modules/asteriskAccount.inc:530 +#: ../lib/modules/asteriskAccount.inc:750 +#: ../lib/modules/asteriskAccount.inc:1012 +#: ../lib/modules/asteriskAccount.inc:1293 +msgid "Default user" +msgstr "Default gebruiker" + +#: ../templates/masscreate.php:306 ../templates/masscreate.php:380 +#: ../lib/modules/customFields.inc:124 ../lib/modules/customFields.inc:2761 +msgid "Default value" +msgstr "Default waarde" + +#: ../help/help.inc:159 +msgid "" +"Defines if the PHP error reporting setting from php.ini is used or the " +"setting preferred by LAM (\"E_ALL & ~E_NOTICE\"). If you do not develop LAM " +"modules please use the default. This will prevent displaying messages that " +"are useful only for developers." +msgstr "" +"Bepaalt of de PHP fout rapportage instelling in php.ini wordt gebruikt of de " +"voorkeur instelling van LAM (\"E_ALL & ~E_NOTICE\"). Als u geen LAM modules " +"ontwikkelt gebruik dan de standaard instellingen. Hiermee wordt voorkomen " +"dat berichten worden weergegeven die alleen nuttig voor ontwikkelaars zijn." + +#: ../lib/modules/sambaDomain.inc:118 +msgid "Defines if workstations may change their passwords." +msgstr "Definieert of werkstations hun wachtwoord kunnen wijzigen." + +#: ../lib/modules/asteriskAccount.inc:160 +msgid "" +"Defines the mailbox to check for message waiting indication (MWI) for this " +"peer." +msgstr "Definieert de mailbox voor Message Waiting indicatie (MWI)." + +#: ../lib/types/kolabSharedFolderType.inc:91 ../lib/modules/kolabUser.inc:116 +#: ../lib/modules/kolabUser.inc:132 ../lib/modules/kolabUser.inc:136 +#: ../lib/modules/kolabUser.inc:211 ../lib/modules/kolabUser.inc:234 +#: ../lib/modules/kolabUser.inc:359 ../lib/modules/kolabUser.inc:765 +#: ../lib/modules/kolabUser.inc:837 ../lib/modules/kolabSharedFolder.inc:138 +#: ../lib/modules/kolabSharedFolder.inc:142 +#: ../lib/modules/kolabSharedFolder.inc:226 +#: ../lib/modules/kolabSharedFolder.inc:237 +#: ../lib/modules/kolabSharedFolder.inc:320 +#: ../lib/modules/kolabSharedFolder.inc:564 +msgid "Delegates" +msgstr "Gemachtigde" + +#: ../lib/modules/kolabSharedFolder.inc:139 +msgid "" +"Delegates are allowed to act on behalf of the shared folder. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"Afgevaardigden zijn toegestaan ​​om te handelen namens de gedeelde map.. Deze " +"eigenschap wordt gecontroleerd wanneer de Kolab SMTP daemon (Postfix) " +"gebruikt wordt om e-mail te versturen." + +#: ../templates/serverInfo.php:321 ../templates/serverInfo.php:390 +#: ../templates/multiEdit.php:126 ../templates/ou_edit.php:120 +#: ../templates/config/profmanage.php:273 +#: ../templates/selfService/profManage.php:238 +#: ../templates/pdfedit/pdfmain.php:209 ../templates/pdfedit/pdfmain.php:210 +#: ../templates/pdfedit/pdfmain.php:243 ../templates/delete.php:120 +#: ../templates/profedit/profilemain.php:198 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:33 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:124 +#: ../lib/modules/pykotaPrinter.inc:281 +#: ../lib/modules/sambaSamAccount.inc:1618 +#: ../lib/modules/posixAccount.inc:1688 ../lib/modules/zarafaUser.inc:1434 +#: ../lib/modules/zarafaUser.inc:1486 ../lib/modules/bindDLZ.inc:1062 +#: ../lib/modules/bindDLZ.inc:1383 ../lib/modules/kolabUser.inc:827 +#: ../lib/modules/sambaGroupMapping.inc:405 +#: ../lib/modules/ldapPublicKey.inc:262 ../lib/modules/nisnetgroup.inc:253 +#: ../lib/modules/inetOrgPerson.inc:2863 ../lib/modules/customFields.inc:2086 +#: ../lib/modules/customFields.inc:3462 ../lib/lists.inc:494 +msgid "Delete" +msgstr "Verwijderen" + +#: ../templates/3rdParty/pla/htdocs/delete.php:31 +msgid "Delete DN" +msgstr "Verwijder DN" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:30 +msgid "Delete LDAP entries" +msgstr "Verwijder LDAP items" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:77 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:84 +msgid "Delete after copy (move):" +msgstr "Verwijder na kopieren(verplaats):" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:72 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:110 +#, php-format +msgid "Delete all %s objects" +msgstr "Verwijder alle %s objecten" + +#: ../templates/config/mainmanage.php:324 +msgid "Delete all CA certificates" +msgstr "Verwijder alle CA-certificaten" + +#: ../lib/modules/customFields.inc:624 +msgid "Delete group" +msgstr "Verwijder groep" + +#: ../lib/modules/posixAccount.inc:1532 +msgid "Delete home directory" +msgstr "Verwijder homedirectory" + +#: ../lib/modules/imapAccess.inc:256 +msgid "Delete mailbox" +msgstr "Verwijder mailbox" + +#: ../templates/ou_edit.php:199 ../help/help.inc:265 +msgid "Delete organisational unit" +msgstr "Verwijder organizational unit" + +#: ../templates/3rdParty/pla/lib/functions.php:2014 +#: ../lib/modules/inetOrgPerson.inc:1621 +msgid "Delete photo" +msgstr "Verwijder foto" + +#: ../lib/modules/range.inc:556 +msgid "Delete pool" +msgstr "Verwijder poel" + +#: ../templates/config/profmanage.php:271 +#: ../templates/config/profmanage.php:274 +#: ../templates/selfService/profManage.php:232 +#: ../templates/selfService/profManage.php:239 ../help/help.inc:134 +msgid "Delete profile" +msgstr "Verwijder profiel" + +#: ../lib/modules/range.inc:105 ../lib/modules/range.inc:137 +#: ../lib/modules/range.inc:532 ../lib/modules/range.inc:607 +msgid "Delete range" +msgstr "Verwijder range" + +#: ../lib/modules/asteriskExtension.inc:316 +#: ../lib/modules/asteriskExtension.inc:339 +msgid "Delete rule" +msgstr "Verwijder regel" + +#: ../lib/types/dhcp.inc:174 +msgid "Delete selected DHCP entries" +msgstr "Verwijder geselecteerde DHCP items" + +#: ../lib/types/bind.inc:162 +msgid "Delete selected DNS entries" +msgstr "Verwijder geselecteerde DNS entries" + +#: ../lib/types/nisObjectType.inc:158 +msgid "Delete selected NIS objects" +msgstr "Verwijder geselecteerde NIS objecten" + +#: ../lib/types/zarafaAddressListType.inc:147 +msgid "Delete selected address lists" +msgstr "Verwijder geselecteerde adreslijsten" + +#: ../lib/types/mailAlias.inc:144 ../lib/types/alias.inc:144 +msgid "Delete selected aliases" +msgstr "Verwijder geselecteerde aliasen" + +#: ../lib/types/automountType.inc:218 +msgid "Delete selected automount entries" +msgstr "Verwijder geselecteerde automount items" + +#: ../lib/types/pykotaBillingCodeType.inc:166 +msgid "Delete selected billing codes" +msgstr "Verwijder geselecteerde factuurcodes" + +#: ../lib/types/oracleContextType.inc:189 +msgid "Delete selected database entries" +msgstr "Verwijder geselecteerde databasegegevens" + +#: ../lib/types/smbDomain.inc:170 +msgid "Delete selected domains" +msgstr "Verwijder geselecteerde domeinen" + +#: ../lib/types/asteriskExt.inc:146 +msgid "Delete selected extensions" +msgstr "Verwijder geselecteerde extenties" + +#: ../lib/types/gon.inc:205 ../lib/types/zarafaDynamicGroupType.inc:168 +#: ../lib/types/group.inc:243 ../lib/types/netgroup.inc:172 +msgid "Delete selected groups" +msgstr "Verwijder geselecteerde groepen" + +#: ../lib/types/host.inc:196 +msgid "Delete selected hosts" +msgstr "Verwijder geselecteerde hosts" + +#: ../lib/lists.inc:115 +msgid "Delete selected objects" +msgstr "Verwijder geselecteerde objecten" + +#: ../lib/types/ppolicyType.inc:152 +msgid "Delete selected policies" +msgstr "Verwijder geselecteerde policies" + +#: ../lib/types/pykotaPrinterType.inc:167 +msgid "Delete selected printers" +msgstr "Verwijder geselecteerde printers" + +#: ../lib/types/gon.inc:212 ../lib/types/group.inc:250 +msgid "Delete selected roles" +msgstr "Verwijder geselecteerde rollen" + +#: ../lib/types/kolabSharedFolderType.inc:144 +msgid "Delete selected shared folders" +msgstr "Verwijder geselecteerde shared folders" + +#: ../lib/types/sudo.inc:162 +msgid "Delete selected sudo roles" +msgstr "Verwijder geselecteerde sudo rollen" + +#: ../lib/types/user.inc:532 +msgid "Delete selected users" +msgstr "Verwijder geselecteerde gebruikers" + +#: ../templates/3rdParty/pla/htdocs/copy.php:146 +#, php-format +msgid "Delete successful: %s" +msgstr "Verwijderen succesvol: %s" + +#: ../lib/modules/posixAccount.inc:485 ../lib/modules/posixAccount.inc:1538 +msgid "Delete sudo rights" +msgstr "Verwijder sudo rechten" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "Delete this entry" +msgstr "Verwijder dit item" + +#: ../lib/modules/nisMailAliasUser.inc:156 +#: ../lib/modules/nisMailAliasUser.inc:195 +#, php-format +msgid "Delete whole alias entry which includes %s recipients." +msgstr "Verwijder gehele alias (bevat %s ontvangers)." + +#: ../lib/modules/qmailUser.inc:44 +msgid "Deleted" +msgstr "Verwijder" + +#: ../templates/delete.php:272 +#, php-format +msgid "Deleted DN: %s" +msgstr "Verwijderde DN: %s" + +#: ../templates/pdfedit/pdfmain.php:89 +msgid "Deleted PDF structure." +msgstr "Verwijderde PDF structuur." + +#: ../templates/profedit/profilemain.php:103 +msgid "Deleted profile." +msgstr "Verwijderde profiel." + +#: ../lib/modules/range.inc:106 +msgid "Deletes an IP range." +msgstr "Verwijder een IP range." + +#: ../lib/modules/posixAccount.inc:486 +msgid "Deletes the user from all existing sudo rights." +msgstr "Verwijdert de gebruiker uit alle bestaande sudo rechten." + +#: ../templates/3rdParty/pla/htdocs/import.php:29 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:65 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:82 +msgid "Deleting" +msgstr "Bezig met verwijderen" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:73 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:125 +msgid "Deleting objects" +msgstr "Verwijderen objecten" + +#: ../lib/modules/qmailUser.inc:124 ../lib/modules/qmailUser.inc:255 +#: ../lib/modules/qmailUser.inc:382 ../lib/modules/qmailUser.inc:436 +#: ../lib/modules/qmailUser.inc:658 ../lib/modules/qmailUser.inc:899 +#: ../lib/modules/qmailUser.inc:1170 +msgid "Deletion date" +msgstr "Schrappingsdatum" + +#: ../lib/lists.inc:1068 +msgid "Deletion was successful." +msgstr "Verwijdering is gelukt." + +#: ../lib/modules/qmailUser.inc:215 ../lib/modules/qmailUser.inc:290 +#: ../lib/modules/qmailUser.inc:403 ../lib/modules/qmailUser.inc:629 +#: ../lib/modules/qmailUser.inc:1164 +msgid "Delivery mode" +msgstr "Levering modus" + +#: ../lib/modules/qmailUser.inc:122 ../lib/modules/qmailUser.inc:175 +#: ../lib/modules/qmailUser.inc:251 ../lib/modules/qmailUser.inc:374 +#: ../lib/modules/qmailUser.inc:433 ../lib/modules/qmailUser.inc:648 +#: ../lib/modules/qmailUser.inc:1150 +msgid "Delivery program" +msgstr "Leveringsprogramma" + +#: ../lib/modules/asteriskAccount.inc:167 +#: ../lib/modules/asteriskAccount.inc:280 +#: ../lib/modules/asteriskAccount.inc:414 +#: ../lib/modules/asteriskAccount.inc:674 +#: ../lib/modules/asteriskAccount.inc:996 +#: ../lib/modules/asteriskAccount.inc:1261 +#: ../lib/modules/dhcp_settings.inc:104 +msgid "Deny" +msgstr "Weigeren" + +#: ../lib/modules/pykotaGroup.inc:65 ../lib/modules/pykotaUser.inc:65 +msgid "Deny printing" +msgstr "Weigeren printen" + +#: ../lib/modules/inetOrgPerson.inc:165 ../lib/modules/inetOrgPerson.inc:220 +#: ../lib/modules/inetOrgPerson.inc:494 ../lib/modules/inetOrgPerson.inc:616 +#: ../lib/modules/inetOrgPerson.inc:822 ../lib/modules/inetOrgPerson.inc:826 +#: ../lib/modules/inetOrgPerson.inc:1514 ../lib/modules/inetOrgPerson.inc:1517 +#: ../lib/modules/inetOrgPerson.inc:1953 ../lib/modules/inetOrgPerson.inc:2728 +#: ../lib/modules/inetOrgPerson.inc:3616 ../lib/modules/inetOrgPerson.inc:3657 +msgid "Department" +msgstr "Afdeling" + +#: ../lib/modules/kolabGroup.inc:105 ../lib/modules/kolabGroup.inc:109 +#: ../lib/modules/kolabUser.inc:162 ../lib/modules/kolabUser.inc:166 +#: ../lib/modules/kolabSharedFolder.inc:130 +#: ../lib/modules/kolabSharedFolder.inc:134 +msgid "" +"Describes the allowed or disallowed SMTP addresses sending mail to this " +"account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "" +"Beschrijft de wel of niet toegestane ​​SMTP-adressen die mail versturen naar " +"deze account (bijvoorbeeld \"domain.tld\" of \"-user@domain.tld\")." + +#: ../lib/modules/kolabGroup.inc:96 ../lib/modules/kolabGroup.inc:100 +#: ../lib/modules/kolabUser.inc:153 ../lib/modules/kolabUser.inc:157 +#: ../lib/modules/kolabSharedFolder.inc:121 +#: ../lib/modules/kolabSharedFolder.inc:125 +msgid "" +"Describes the allowed or disallowed SMTP recipient addresses for mail sent " +"by this account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "" +"Beschrijft de wel of niet toegestaan ​​SMTP-ontvanger adressen voor mail van " +"deze account (bijvoorbeeld\"domain.tld\" of \"-user@domain.tld\")." + +#: ../templates/schema/schema.php:89 ../templates/schema/schema.php:143 +#: ../templates/schema/schema.php:346 +#: ../templates/3rdParty/pla/lib/functions.php:1898 +#: ../templates/3rdParty/pla/lib/functions.php:1902 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:139 +#: ../templates/3rdParty/pla/htdocs/import.php:101 +#: ../lib/types/automountType.inc:88 ../lib/types/nisObjectType.inc:80 +#: ../lib/types/oracleContextType.inc:79 +#: ../lib/types/pykotaBillingCodeType.inc:92 ../lib/types/user.inc:101 +#: ../lib/types/pykotaPrinterType.inc:92 ../lib/types/sudo.inc:84 +#: ../lib/types/dhcp.inc:96 ../lib/types/netgroup.inc:92 +#: ../lib/modules/pykotaPrinter.inc:99 ../lib/modules/pykotaPrinter.inc:153 +#: ../lib/modules/pykotaPrinter.inc:194 ../lib/modules/pykotaPrinter.inc:248 +#: ../lib/modules/pykotaPrinter.inc:585 ../lib/modules/account.inc:82 +#: ../lib/modules/account.inc:95 ../lib/modules/account.inc:105 +#: ../lib/modules/account.inc:113 ../lib/modules/account.inc:218 +#: ../lib/modules/account.inc:229 ../lib/modules/windowsHost.inc:78 +#: ../lib/modules/windowsHost.inc:101 ../lib/modules/windowsHost.inc:120 +#: ../lib/modules/windowsHost.inc:143 ../lib/modules/windowsHost.inc:289 +#: ../lib/modules/posixGroup.inc:201 ../lib/modules/posixGroup.inc:430 +#: ../lib/modules/posixGroup.inc:484 ../lib/modules/posixGroup.inc:572 +#: ../lib/modules/device.inc:81 ../lib/modules/device.inc:115 +#: ../lib/modules/device.inc:130 ../lib/modules/device.inc:173 +#: ../lib/modules/device.inc:421 ../lib/modules/dhcp_settings.inc:197 +#: ../lib/modules/dhcp_settings.inc:217 ../lib/modules/dhcp_settings.inc:307 +#: ../lib/modules/dhcp_settings.inc:620 ../lib/modules/dhcp_settings.inc:684 +#: ../lib/modules/pykotaGroup.inc:117 ../lib/modules/pykotaGroup.inc:166 +#: ../lib/modules/pykotaGroup.inc:188 ../lib/modules/pykotaGroup.inc:233 +#: ../lib/modules/pykotaGroup.inc:468 ../lib/modules/posixAccount.inc:556 +#: ../lib/modules/windowsUser.inc:119 ../lib/modules/windowsUser.inc:308 +#: ../lib/modules/windowsUser.inc:500 ../lib/modules/windowsUser.inc:705 +#: ../lib/modules/windowsUser.inc:1596 ../lib/modules/nisObject.inc:73 +#: ../lib/modules/nisObject.inc:103 ../lib/modules/nisObject.inc:114 +#: ../lib/modules/nisObject.inc:155 ../lib/modules/nisObject.inc:212 +#: ../lib/modules/sambaGroupMapping.inc:114 +#: ../lib/modules/sambaGroupMapping.inc:542 ../lib/modules/pykotaUser.inc:120 +#: ../lib/modules/pykotaUser.inc:226 ../lib/modules/pykotaUser.inc:277 +#: ../lib/modules/pykotaUser.inc:413 ../lib/modules/pykotaUser.inc:892 +#: ../lib/modules/automount.inc:72 ../lib/modules/automount.inc:95 +#: ../lib/modules/automount.inc:105 ../lib/modules/automount.inc:132 +#: ../lib/modules/automount.inc:183 ../lib/modules/nisnetgroup.inc:87 +#: ../lib/modules/nisnetgroup.inc:140 ../lib/modules/nisnetgroup.inc:199 +#: ../lib/modules/nisnetgroup.inc:580 ../lib/modules/inetOrgPerson.inc:166 +#: ../lib/modules/inetOrgPerson.inc:178 ../lib/modules/inetOrgPerson.inc:332 +#: ../lib/modules/inetOrgPerson.inc:553 ../lib/modules/inetOrgPerson.inc:646 +#: ../lib/modules/inetOrgPerson.inc:1232 ../lib/modules/inetOrgPerson.inc:1235 +#: ../lib/modules/inetOrgPerson.inc:1923 ../lib/modules/inetOrgPerson.inc:2823 +#: ../lib/modules/inetOrgPerson.inc:3576 ../lib/modules/inetOrgPerson.inc:3645 +#: ../lib/modules/sudoRole.inc:70 ../lib/modules/sudoRole.inc:153 +#: ../lib/modules/sudoRole.inc:215 ../lib/modules/sudoRole.inc:305 +#: ../lib/modules/sudoRole.inc:805 ../lib/modules/oracleService.inc:69 +#: ../lib/modules/oracleService.inc:92 ../lib/modules/oracleService.inc:100 +#: ../lib/modules/oracleService.inc:122 ../lib/modules/oracleService.inc:172 +#: ../lib/modules/organizationalRole.inc:89 +#: ../lib/modules/organizationalRole.inc:123 +#: ../lib/modules/organizationalRole.inc:141 +#: ../lib/modules/organizationalRole.inc:163 +#: ../lib/modules/organizationalRole.inc:189 +#: ../lib/modules/organizationalRole.inc:453 ../lib/modules/fixed_ip.inc:110 +#: ../lib/modules/fixed_ip.inc:433 ../lib/modules/fixed_ip.inc:744 +#: ../lib/modules/pykotaBillingCode.inc:81 +#: ../lib/modules/pykotaBillingCode.inc:109 +#: ../lib/modules/pykotaBillingCode.inc:116 +#: ../lib/modules/pykotaBillingCode.inc:159 +#: ../lib/modules/pykotaBillingCode.inc:262 +#: ../lib/modules/windowsGroup.inc:118 ../lib/modules/windowsGroup.inc:183 +#: ../lib/modules/windowsGroup.inc:258 ../lib/modules/windowsGroup.inc:301 +#: ../lib/modules/windowsGroup.inc:746 ../lib/modules/groupOfNames.inc:89 +#: ../lib/modules/groupOfNames.inc:135 ../lib/modules/groupOfNames.inc:171 +#: ../lib/modules/groupOfNames.inc:199 ../lib/modules/groupOfNames.inc:235 +#: ../lib/modules/groupOfNames.inc:694 +msgid "Description" +msgstr "Omschrijving" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "Destination DN" +msgstr "Bestemming DN" + +#: ../lib/modules/device.inc:45 +msgid "Device" +msgstr "Apparaat" + +#: ../lib/modules/sambaSamAccount.inc:394 +#: ../lib/modules/sambaSamAccount.inc:585 +msgid "Disable LM hashes" +msgstr "Uitschakelen LM-hashes" + +#: ../lib/modules/ddns.inc:89 ../lib/modules/ddns.inc:370 +msgid "Disable client updates" +msgstr "Uitschakelen clientupdates" + +#: ../lib/modules/posixGroup.inc:417 ../lib/modules/posixGroup.inc:533 +msgid "Disable membership management" +msgstr "Uitschakelen ledenbeheer" + +#: ../lib/modules/qmailUser.inc:43 +msgid "Disabled" +msgstr "Uitgeschakeld" + +#: ../lib/modules/ddns.inc:90 +msgid "Disables the client to update DNS entries." +msgstr "Uitschakelen van de cliënt om DNS-items te actualiseren." + +#: ../lib/modules/posixGroup.inc:534 +msgid "Disables the group membership management." +msgstr "Schakelt groep lidmaatschapsbeheer uit." + +#: ../lib/modules/mitKerberos.inc:172 +msgid "" +"Disables user-to-user authentication for this principal by prohibiting this " +"principal from obtaining a session key for another user." +msgstr "" +"Schakelt user-to-user authenticatie voor deze opdrachtgever uit door het " +"verbieden van dit opdrachtgever van het verkrijgen van een sessiesleutel " +"voor een andere gebruiker." + +#: ../lib/modules/heimdalKerberos.inc:130 +#: ../lib/modules/heimdalKerberos.inc:378 +msgid "Disallow TGT-based tickets" +msgstr "Verbied TGT-gebaseerde tickets" + +#: ../lib/modules/mitKerberos.inc:174 ../lib/modules/mitKerberos.inc:452 +#: ../lib/modules/heimdalKerberos.inc:148 +#: ../lib/modules/heimdalKerberos.inc:383 +msgid "Disallow all tickets" +msgstr "Verbied ​​alle tickets" + +#: ../templates/config/conftypes.php:332 ../help/help.inc:178 +msgid "Disallow delete" +msgstr "Verwijderen niet toestaan" + +#: ../lib/modules/mitKerberos.inc:162 ../lib/modules/mitKerberos.inc:422 +#: ../lib/modules/heimdalKerberos.inc:133 +#: ../lib/modules/heimdalKerberos.inc:353 +msgid "Disallow forwardable tickets" +msgstr "Verbied ​​forwardable tickets" + +#: ../lib/modules/mitKerberos.inc:159 ../lib/modules/mitKerberos.inc:437 +#: ../lib/modules/heimdalKerberos.inc:142 +#: ../lib/modules/heimdalKerberos.inc:368 +msgid "Disallow post-dated tickets" +msgstr "Verbied post-gedateerde tickets" + +#: ../lib/modules/mitKerberos.inc:168 ../lib/modules/mitKerberos.inc:427 +#: ../lib/modules/heimdalKerberos.inc:136 +#: ../lib/modules/heimdalKerberos.inc:358 +msgid "Disallow proxiable tickets" +msgstr "Verbied proxiable tickets" + +#: ../lib/modules/mitKerberos.inc:165 ../lib/modules/mitKerberos.inc:432 +#: ../lib/modules/heimdalKerberos.inc:139 +#: ../lib/modules/heimdalKerberos.inc:363 +msgid "Disallow renewable tickets" +msgstr "Verbied hernieuwbare tickets" + +#: ../lib/modules/mitKerberos.inc:186 ../lib/modules/mitKerberos.inc:442 +#: ../lib/modules/heimdalKerberos.inc:145 +#: ../lib/modules/heimdalKerberos.inc:373 +msgid "Disallow service tickets" +msgstr "Verbied ​​service tickets" + +#: ../lib/modules/mitKerberos.inc:171 ../lib/modules/mitKerberos.inc:447 +msgid "Disallow user-to-user authentication" +msgstr "user-to-user authenticatie niet toestaan" + +#: ../lib/modules/asteriskAccount.inc:199 +#: ../lib/modules/asteriskAccount.inc:288 +#: ../lib/modules/asteriskAccount.inc:472 +#: ../lib/modules/asteriskAccount.inc:709 +#: ../lib/modules/asteriskAccount.inc:1004 +#: ../lib/modules/asteriskAccount.inc:1277 +msgid "Disallowed codec" +msgstr "Niet toegestaan ​​codecs." + +#: ../lib/modules/sambaDomain.inc:113 ../lib/modules/sambaDomain.inc:193 +#: ../lib/modules/sambaDomain.inc:299 ../lib/modules/sambaDomain.inc:621 +msgid "Disconnect users outside logon hours" +msgstr "Verbreek gebruikers buiten login uren" + +#: ../lib/modules/sambaSamAccount.inc:238 +#: ../lib/modules/sambaSamAccount.inc:1528 +#: ../lib/modules/sambaSamAccount.inc:1934 +msgid "Disconnection time limit" +msgstr "Verbreking tijdslimiet" + +#: ../lib/modules/sambaDomain.inc:114 +msgid "Disconnects users if they are logged in outside logon hours." +msgstr "Verbreek gebruikers als ze ingelogd bent buiten login uren." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +#: ../lib/modules/organizationalRole.inc:106 +#: ../lib/modules/organizationalRole.inc:153 +#: ../lib/modules/groupOfNames.inc:118 ../lib/modules/groupOfNames.inc:187 +msgid "Display format" +msgstr "Weergaveformaat" + +#: ../lib/modules/customFields.inc:176 ../lib/modules/customFields.inc:509 +msgid "Display multiple groups as accordion" +msgstr "Toon meerdere groepen als accordeon" + +#: ../lib/modules/sambaSamAccount.inc:111 +#: ../lib/modules/sambaSamAccount.inc:210 +#: ../lib/modules/sambaSamAccount.inc:259 +#: ../lib/modules/sambaSamAccount.inc:420 +#: ../lib/modules/sambaSamAccount.inc:1143 +#: ../lib/modules/sambaSamAccount.inc:1738 +#: ../lib/modules/sambaSamAccount.inc:1906 ../lib/modules/windowsUser.inc:123 +#: ../lib/modules/windowsUser.inc:296 ../lib/modules/windowsUser.inc:474 +#: ../lib/modules/windowsUser.inc:501 ../lib/modules/windowsUser.inc:595 +#: ../lib/modules/windowsUser.inc:703 ../lib/modules/windowsUser.inc:1597 +#: ../lib/modules/sambaGroupMapping.inc:112 +#: ../lib/modules/sambaGroupMapping.inc:146 +#: ../lib/modules/sambaGroupMapping.inc:359 +#: ../lib/modules/sambaGroupMapping.inc:540 +msgid "Display name" +msgstr "Display naam" + +#: ../templates/lists/changePassword.php:326 +msgid "Display on screen" +msgstr "Weergave op het scherm" + +#: ../templates/3rdParty/pla/htdocs/create.php:97 +msgid "Display the created entry" +msgstr "Toon het gemaakt item" + +#: ../lib/modules.inc:503 +msgid "" +"Displayed account numbers start at \"0\". Add 2 to get the row in your " +"spreadsheet." +msgstr "" +"Getoonde account nummers beginnen met \"0\". Tel er 2 bij om de rij in de " +"spreadsheet in te krijgen." + +#: ../lib/modules/windowsGroup.inc:61 +msgid "Distribution" +msgstr "Distributie" + +#: ../lib/modules/passwordSelfReset.inc:140 +#: ../lib/modules/passwordSelfReset.inc:545 +msgid "Do not ask security question" +msgstr "Stel niet de beveiligingsvraag" + +#: ../templates/ou_edit.php:112 +msgid "Do you really want to delete this OU?" +msgstr "Weet u zeker dat u deze OU wilt verwijderen?" + +#: ../templates/pdfedit/pdfmain.php:351 +msgid "Do you really want to delete this PDF structure?" +msgstr "Weet u zeker dat u deze PDF structuur wilt verwijderen?" + +#: ../templates/profedit/profilemain.php:319 +msgid "Do you really want to delete this profile?" +msgstr "Weet u zeker dat u dit profiel wilt verwijderen?" + +#: ../lib/modules/kolabGroup.inc:285 ../lib/modules/kolabUser.inc:515 +#: ../lib/modules/kolabSharedFolder.inc:425 +msgid "Do you really want to mark this account for deletion?" +msgstr "Weet u zeker dat u dit account wilt markeren om te verwijdern?" + +#: ../lib/modules/qmailGroup.inc:273 +msgid "Do you really want to post to this mailinglist?" +msgstr "Wil je echt wilt plaatsen op dit mailinglist?" + +#: ../templates/delete.php:94 +msgid "Do you really want to remove the following accounts?" +msgstr "Weet u zeker dat u de volgende accounts wilt verwijderen?" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:59 +msgid "Do you want to create this entry?" +msgstr "Wilt u dit item creëren?" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:36 +msgid "Do you want to make these changes?" +msgstr "Wilt u deze veranderingen maken?" + +#: ../lib/modules/sambaSamAccount.inc:211 +#: ../lib/modules/sambaSamAccount.inc:337 +#: ../lib/modules/sambaSamAccount.inc:413 +#: ../lib/modules/sambaSamAccount.inc:537 +#: ../lib/modules/sambaSamAccount.inc:1285 +#: ../lib/modules/sambaSamAccount.inc:1781 +#: ../lib/modules/sambaSamAccount.inc:1803 +#: ../lib/modules/sambaSamAccount.inc:1912 ../lib/modules/windowsUser.inc:111 +#: ../lib/modules/windowsUser.inc:1664 +#: ../lib/modules/sambaGroupMapping.inc:158 +#: ../lib/modules/sambaGroupMapping.inc:386 +#: ../lib/modules/sambaGroupMapping.inc:576 ../lib/modules/nisnetgroup.inc:223 +#: ../lib/modules/nisnetgroup.inc:587 +msgid "Domain" +msgstr "Domein" + +#: ../lib/modules/sambaSamAccount.inc:84 +msgid "Domain KRBTGT" +msgstr "Domein KRBTGT" + +#: ../lib/types/smbDomain.inc:91 ../lib/modules/sambaDomain.inc:81 +#: ../lib/modules/sambaDomain.inc:151 ../lib/modules/sambaDomain.inc:185 +#: ../lib/modules/sambaDomain.inc:256 ../lib/modules/sambaDomain.inc:261 +#: ../lib/modules/sambaDomain.inc:600 +msgid "Domain SID" +msgstr "Domein SID" + +#: ../lib/modules/sambaGroupMapping.inc:125 +#: ../lib/modules/windowsGroup.inc:178 ../lib/modules/windowsGroup.inc:185 +#: ../lib/modules/windowsGroup.inc:191 +msgid "Domain administrators" +msgstr "Domeinbeheerders" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:60 +#: ../lib/modules/sambaGroupMapping.inc:131 +msgid "Domain admins" +msgstr "Domeinbeheerders" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:65 +msgid "Domain certificate admins" +msgstr "Beheerders domeincertificaat" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaSamAccount.inc:812 +#: ../lib/modules/sambaGroupMapping.inc:63 +msgid "Domain computers" +msgstr "Domeincomputers" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:64 +msgid "Domain controllers" +msgstr "Domeincontrollers" + +#: ../lib/types/smbDomain.inc:167 +#, php-format +msgid "Domain count: %s" +msgstr "Domein aantal: %s" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:67 +msgid "Domain enterprise admins" +msgstr "Beheerder bedrijfsdomein" + +#: ../lib/modules/sambaGroupMapping.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:377 +msgid "Domain group" +msgstr "Domeingroep" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:62 +msgid "Domain guests" +msgstr "Domein gast" + +#: ../lib/modules/windowsGroup.inc:64 +msgid "Domain local" +msgstr "Domein lokaal" + +#: ../lib/types/smbDomain.inc:92 ../lib/modules/dhcp_settings.inc:145 +#: ../lib/modules/dhcp_settings.inc:208 ../lib/modules/dhcp_settings.inc:223 +#: ../lib/modules/dhcp_settings.inc:250 ../lib/modules/dhcp_settings.inc:567 +#: ../lib/modules/dhcp_settings.inc:674 ../lib/modules/nisnetgroup.inc:154 +#: ../lib/modules/sambaDomain.inc:77 ../lib/modules/sambaDomain.inc:144 +#: ../lib/modules/sambaDomain.inc:184 ../lib/modules/sambaDomain.inc:241 +#: ../lib/modules/sambaDomain.inc:246 ../lib/modules/sambaDomain.inc:599 +msgid "Domain name" +msgstr "Domeinnaam" + +#: ../lib/modules/nisnetgroup.inc:154 ../lib/modules/sambaDomain.inc:208 +#: ../lib/modules/sambaDomain.inc:209 +msgid "Domain name is invalid!" +msgstr "Domeinnaam is ongeldig!" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:68 +msgid "Domain policy admins" +msgstr "Beheerders domeinbeleid" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:66 +msgid "Domain schema admins" +msgstr "Beheerders domein schema" + +#: ../lib/modules/sambaSamAccount.inc:79 +#: ../lib/modules/sambaSamAccount.inc:2175 +#: ../lib/modules/sambaGroupMapping.inc:61 +msgid "Domain users" +msgstr "Domeingebruikers" + +#: ../lib/modules/windowsUser.inc:240 ../lib/modules/windowsUser.inc:557 +msgid "Domains" +msgstr "Domeinen" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:43 +msgid "Don't stop on errors" +msgstr "Stop niet bij fouten" + +#: ../templates/pdfedit/pdfpage.php:475 +msgid "Down" +msgstr "Omlaag" + +#: ../templates/config/mainmanage.php:321 +msgid "Download CA certificates" +msgstr "Download CA-certificaten" + +#: ../templates/masscreate.php:256 +msgid "Download sample CSV file" +msgstr "Download voorbeeld CSV bestand" + +#: ../templates/multiEdit.php:162 +msgid "Dry run" +msgstr "Testrun" + +#: ../templates/multiEdit.php:437 +msgid "DryRun finished." +msgstr "Testrun afgerond." + +#: ../templates/serverInfo.php:124 +msgid "Dynamic subtrees" +msgstr "Dynamische substructuren" + +#: ../lib/modules/eduPerson.inc:72 +msgid "EDU person" +msgstr "EDU persoon" + +#: ../lib/modules/selfRegistration.inc:80 +msgid "" +"Each line represents one LDAP attribute. Please see the manual for a syntax " +"description." +msgstr "" +"Elke lijn vertegenwoordigt een LDAP-attribuut. Raadpleeg de handleiding voor " +"een syntax beschrijving." + +#: ../lib/modules/sambaSamAccount.inc:575 +msgid "East Australian Standard, Guam" +msgstr "East Australian Standard, Guam" + +#: ../lib/modules/sambaSamAccount.inc:567 +msgid "Eastern Europe Time, South Africa" +msgstr "Eastern Europe Time, South Africa" + +#: ../lib/modules/sambaSamAccount.inc:560 +msgid "Eastern Time (US & Canada), Bogota" +msgstr "Eastern Time (US & Canada), Bogota" + +#: ../templates/pdfedit/pdfmain.php:206 +#: ../templates/profedit/profilemain.php:195 +#: ../lib/modules/sambaSamAccount.inc:1290 +#: ../lib/modules/sambaSamAccount.inc:1295 ../lib/lists.inc:488 +msgid "Edit" +msgstr "Bewerken" + +#: ../lib/modules.inc:1357 +msgid "Edit again" +msgstr "Bewerk opnieuw" + +#: ../templates/config/mainmanage.php:228 ../templates/config/index.php:99 +msgid "Edit general settings" +msgstr "Bewerk algemene instellingen" + +#: ../lib/modules/posixAccount.inc:1454 ../lib/modules/windowsUser.inc:786 +msgid "Edit groups" +msgstr "Bewerk groepen" + +#: ../lib/modules/posixGroup.inc:223 ../lib/modules/windowsGroup.inc:382 +msgid "Edit members" +msgstr "Bewerk leden" + +#: ../templates/config/index.php:125 +msgid "Edit self service" +msgstr "Bewerk zelf service" + +#: ../templates/config/index.php:111 +msgid "Edit server profiles" +msgstr "Bewerk server profielen" + +#: ../lib/modules/nisnetgroup.inc:208 +msgid "Edit subgroups" +msgstr "Bewerk subgroepen" + +#: ../lib/modules/sambaSamAccount.inc:1246 +msgid "Edit workstations" +msgstr "Bewerk werkstations" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1872 +#: ../lib/types/zarafaDynamicGroupType.inc:92 ../lib/types/user.inc:100 +#: ../lib/modules/zarafaDynamicGroup.inc:243 +#: ../lib/modules/zarafaDynamicGroup.inc:248 +#: ../lib/modules/zarafaGroup.inc:234 ../lib/modules/zarafaGroup.inc:241 +#: ../lib/modules/passwordSelfReset.inc:500 +#: ../lib/modules/nisMailAlias.inc:344 +msgid "Email" +msgstr "E-mail" + +#: ../lib/modules/inetOrgPerson.inc:81 +#, php-format +msgid "Email \"%s\" already in use." +msgstr "E-mail \"%s\" is al in gebruik." + +#: ../templates/lists/changePassword.php:288 ../lib/modules/kolabGroup.inc:87 +#: ../lib/modules/kolabGroup.inc:91 ../lib/modules/kolabGroup.inc:155 +#: ../lib/modules/kolabGroup.inc:168 ../lib/modules/kolabGroup.inc:177 +#: ../lib/modules/kolabGroup.inc:179 ../lib/modules/kolabGroup.inc:202 +#: ../lib/modules/kolabGroup.inc:423 ../lib/modules/selfRegistration.inc:400 +#: ../lib/modules/selfRegistration.inc:482 +#: ../lib/modules/zarafaDynamicGroup.inc:67 +#: ../lib/modules/zarafaDynamicGroup.inc:68 +#: ../lib/modules/zarafaDynamicGroup.inc:124 +#: ../lib/modules/zarafaDynamicGroup.inc:166 +#: ../lib/modules/zarafaDynamicGroup.inc:200 +#: ../lib/modules/zarafaDynamicGroup.inc:448 ../lib/modules/qmailUser.inc:199 +#: ../lib/modules/qmailUser.inc:299 ../lib/modules/qmailUser.inc:406 +#: ../lib/modules/qmailUser.inc:448 ../lib/modules/qmailUser.inc:492 +#: ../lib/modules/qmailUser.inc:1139 ../lib/modules/zarafaGroup.inc:69 +#: ../lib/modules/zarafaGroup.inc:70 ../lib/modules/zarafaGroup.inc:170 +#: ../lib/modules/zarafaGroup.inc:200 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:648 ../lib/modules/windowsUser.inc:140 +#: ../lib/modules/windowsUser.inc:350 ../lib/modules/windowsUser.inc:475 +#: ../lib/modules/windowsUser.inc:505 ../lib/modules/windowsUser.inc:607 +#: ../lib/modules/windowsUser.inc:716 ../lib/modules/windowsUser.inc:1601 +#: ../lib/modules/pykotaUser.inc:116 ../lib/modules/pykotaUser.inc:218 +#: ../lib/modules/pykotaUser.inc:274 ../lib/modules/pykotaUser.inc:319 +#: ../lib/modules/pykotaUser.inc:409 ../lib/modules/pykotaUser.inc:890 +#: ../lib/modules/inetOrgPerson.inc:80 ../lib/modules/inetOrgPerson.inc:81 +#: ../lib/modules/inetOrgPerson.inc:160 ../lib/modules/inetOrgPerson.inc:214 +#: ../lib/modules/inetOrgPerson.inc:460 ../lib/modules/inetOrgPerson.inc:598 +#: ../lib/modules/inetOrgPerson.inc:742 ../lib/modules/inetOrgPerson.inc:746 +#: ../lib/modules/inetOrgPerson.inc:1447 ../lib/modules/inetOrgPerson.inc:1450 +#: ../lib/modules/inetOrgPerson.inc:1937 ../lib/modules/inetOrgPerson.inc:2503 +#: ../lib/modules/inetOrgPerson.inc:3606 ../lib/modules/inetOrgPerson.inc:3653 +#: ../lib/modules/kolabSharedFolder.inc:116 +#: ../lib/modules/kolabSharedFolder.inc:181 +#: ../lib/modules/kolabSharedFolder.inc:239 +#: ../lib/modules/kolabSharedFolder.inc:259 +#: ../lib/modules/kolabSharedFolder.inc:281 +#: ../lib/modules/kolabSharedFolder.inc:558 +#: ../lib/modules/asteriskVoicemail.inc:107 +#: ../lib/modules/asteriskVoicemail.inc:140 +#: ../lib/modules/asteriskVoicemail.inc:178 +#: ../lib/modules/asteriskVoicemail.inc:254 +#: ../lib/modules/asteriskVoicemail.inc:374 ../lib/modules/qmailGroup.inc:123 +#: ../lib/modules/qmailGroup.inc:127 ../lib/modules/qmailGroup.inc:240 +#: ../lib/modules/qmailGroup.inc:371 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:457 ../lib/modules/qmailGroup.inc:1056 +#: ../lib/modules/imapAccess.inc:232 ../lib/modules/passwordSelfReset.inc:849 +#: ../lib/modules/passwordSelfReset.inc:1020 +#: ../lib/modules/windowsGroup.inc:126 ../lib/modules/windowsGroup.inc:165 +#: ../lib/modules/windowsGroup.inc:219 ../lib/modules/windowsGroup.inc:265 +#: ../lib/modules/windowsGroup.inc:285 ../lib/modules/windowsGroup.inc:303 +#: ../lib/modules/windowsGroup.inc:748 +msgid "Email address" +msgstr "E-mail adres" + +#: ../lib/modules/kolabGroup.inc:179 ../lib/modules/kolabGroup.inc:180 +msgid "Email address already exists." +msgstr "Dit e-mailadres is al in gebruik." + +#: ../lib/modules/asteriskVoicemail.inc:108 +msgid "Email address for this voicemail account." +msgstr "E-mail adres voor dit voicemail account" + +#: ../lib/modules/qmailGroup.inc:221 ../lib/modules/qmailGroup.inc:225 +msgid "Email addresses that are allowed to send to this list." +msgstr "E-mail adressen die mogen sturen naar deze lijst." + +#: ../lib/modules/qmailGroup.inc:205 ../lib/modules/qmailGroup.inc:209 +msgid "Email addresses that are member of this list." +msgstr "E-mailadressen die lid zijn van deze lijst." + +#: ../lib/modules/qmailGroup.inc:213 ../lib/modules/qmailGroup.inc:217 +msgid "Email addresses that moderate this list (e.g. approve mails)." +msgstr "E-mail adressen die deze lijst moderaten (bijv. mails goedkeuren)." + +#: ../lib/modules/zarafaContact.inc:83 ../lib/modules/zarafaUser.inc:124 +#: ../lib/modules/windowsUser.inc:227 ../lib/modules/windowsUser.inc:231 +#: ../lib/modules/windowsUser.inc:356 ../lib/modules/windowsUser.inc:476 +#: ../lib/modules/windowsUser.inc:506 ../lib/modules/windowsUser.inc:609 +#: ../lib/modules/windowsUser.inc:717 ../lib/modules/windowsUser.inc:1602 +#: ../lib/modules/kolabUser.inc:140 ../lib/modules/kolabSharedFolder.inc:146 +msgid "Email alias" +msgstr "E-mail alias" + +#: ../lib/modules/zarafaContact.inc:84 ../lib/modules/zarafaUser.inc:125 +#: ../lib/modules/windowsUser.inc:228 ../lib/modules/windowsUser.inc:232 +#: ../lib/modules/kolabUser.inc:141 ../lib/modules/kolabSharedFolder.inc:147 +msgid "Email alias for this account." +msgstr "E-mail alias voor dit account." + +#: ../lib/modules/zarafaContact.inc:185 ../lib/modules/zarafaContact.inc:186 +#: ../lib/modules/zarafaUser.inc:417 ../lib/modules/zarafaUser.inc:418 +#: ../lib/modules/windowsUser.inc:609 ../lib/modules/windowsUser.inc:610 +#: ../lib/modules/kolabUser.inc:247 ../lib/modules/kolabSharedFolder.inc:254 +msgid "Email alias is invalid!" +msgstr "E-mail alias is ongeldig!" + +#: ../lib/modules/kolabUser.inc:144 ../lib/modules/kolabSharedFolder.inc:150 +msgid "Email alias list" +msgstr "E-mail alias lijst" + +#: ../lib/modules/kolabUser.inc:248 ../lib/modules/kolabSharedFolder.inc:255 +msgid "Email alias list has invalid format!" +msgstr "E-mail alias lijst heeft ongeldig formaat!" + +#: ../lib/types/kolabSharedFolderType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:97 +#: ../lib/modules/zarafaDynamicGroup.inc:71 +#: ../lib/modules/zarafaDynamicGroup.inc:75 +#: ../lib/modules/zarafaDynamicGroup.inc:130 +#: ../lib/modules/zarafaDynamicGroup.inc:167 +#: ../lib/modules/zarafaDynamicGroup.inc:258 +#: ../lib/modules/zarafaDynamicGroup.inc:451 +#: ../lib/modules/zarafaContact.inc:143 ../lib/modules/zarafaContact.inc:176 +#: ../lib/modules/zarafaContact.inc:207 ../lib/modules/zarafaContact.inc:566 +#: ../lib/modules/zarafaGroup.inc:73 ../lib/modules/zarafaGroup.inc:77 +#: ../lib/modules/zarafaGroup.inc:162 ../lib/modules/zarafaGroup.inc:197 +#: ../lib/modules/zarafaGroup.inc:252 ../lib/modules/zarafaGroup.inc:649 +#: ../lib/modules/zarafaUser.inc:188 ../lib/modules/zarafaUser.inc:370 +#: ../lib/modules/zarafaUser.inc:385 ../lib/modules/zarafaUser.inc:443 +#: ../lib/modules/zarafaUser.inc:1235 ../lib/modules/zarafaUser.inc:1497 +#: ../lib/modules/zarafaUser.inc:1809 ../lib/modules/kolabUser.inc:205 +#: ../lib/modules/kolabUser.inc:233 ../lib/modules/kolabUser.inc:351 +#: ../lib/modules/kolabUser.inc:764 ../lib/modules/kolabSharedFolder.inc:220 +#: ../lib/modules/kolabSharedFolder.inc:236 +#: ../lib/modules/kolabSharedFolder.inc:312 +#: ../lib/modules/kolabSharedFolder.inc:563 +msgid "Email aliases" +msgstr "E-mail aliassen" + +#: ../templates/config/mainmanage.php:446 ../help/help.inc:156 +msgid "Email format" +msgstr "Emailformaat" + +#: ../lib/modules/inetOrgPerson.inc:348 ../lib/modules/inetOrgPerson.inc:628 +#: ../lib/modules/inetOrgPerson.inc:854 ../lib/modules/inetOrgPerson.inc:1488 +#: ../lib/modules/inetOrgPerson.inc:1491 ../lib/modules/inetOrgPerson.inc:1948 +#: ../lib/modules/inetOrgPerson.inc:3624 ../lib/modules/inetOrgPerson.inc:3659 +#: ../lib/modules/passwordSelfReset.inc:503 +#: ../lib/modules/passwordSelfReset.inc:855 +#: ../lib/modules/passwordSelfReset.inc:1025 +msgid "Employee number" +msgstr "Personeelsnummer" + +#: ../lib/modules/inetOrgPerson.inc:93 ../lib/modules/inetOrgPerson.inc:232 +#: ../lib/modules/inetOrgPerson.inc:356 ../lib/modules/inetOrgPerson.inc:610 +#: ../lib/modules/inetOrgPerson.inc:666 ../lib/modules/inetOrgPerson.inc:1497 +#: ../lib/modules/inetOrgPerson.inc:1500 ../lib/modules/inetOrgPerson.inc:1946 +#: ../lib/modules/inetOrgPerson.inc:3612 ../lib/modules/inetOrgPerson.inc:3655 +msgid "Employee type" +msgstr "Type werknemer" + +#: ../lib/modules/inetOrgPerson.inc:667 +msgid "Employee type: Contractor, Employee, Intern, Temp, External, ..." +msgstr "Type werknemer: werknemer, intern, tijdelijk, extern, ..." + +#: ../templates/lists/changePassword.php:514 +#: ../templates/lists/changePassword.php:521 ../templates/login.php:543 +msgid "Empty password submitted. Please try again." +msgstr "Leeg wachtwoord niet toegestaan. Probeer opnieuw." + +#: ../lib/modules/passwordSelfReset.inc:96 +#: ../lib/modules/passwordSelfReset.inc:490 +msgid "Enable password self reset link" +msgstr "Activeer wachtwoord zelf reset link" + +#: ../lib/modules/selfRegistration.inc:53 +#: ../lib/modules/selfRegistration.inc:190 +msgid "Enable self registration link" +msgstr "Activeer zelf registratielink" + +#: ../lib/modules/customFields.inc:153 +msgid "" +"Enables auto-completion for this field. All existing values of this " +"attribute will be offered as auto-complete values." +msgstr "" +"Automatisch aanvullen inschakelen voor dit veld. Alle bestaande waarden van " +"dit attribuut zal worden aangeboden als auto-complete waarden." + +#: ../lib/modules/ppolicy.inc:97 +msgid "" +"Enables quality checking (e.g. password length) of passwords. If set to " +"\"force\" then you need to disable password hashing in your LAM server " +"profile to change passwords with LAM." +msgstr "" +"Activeert het controleren van de kwaliteit (bijv. wachtwoord lengte) van " +"wachtwoorden. Indien ingesteld op \"force\" dan moet je het wachtwoord " +"hashen uitschakelen in uw LAM server profiel om wachtwoorden te kunnen " +"wijzigen met LAM." + +#: ../templates/multiEdit.php:312 +#: ../templates/3rdParty/pla/lib/export_functions.php:160 +msgid "Encountered an error while performing search." +msgstr "Er is een fout opgetreden tijdens de zoekopdracht." + +#: ../templates/config/mainmanage.php:304 ../help/help.inc:160 +msgid "Encrypt session" +msgstr "Versleutel sessie" + +#: ../lib/modules/imapAccess.inc:80 ../lib/modules/imapAccess.inc:120 +msgid "Encryption protocol" +msgstr "Encryptieprotocol" + +#: ../lib/modules/imapAccess.inc:81 +msgid "" +"Encryption protocol for connecting to IMAP server. LAM requires an encrypted " +"connection." +msgstr "" +"Encryptieprotocol voor het verbinden met IMAP-server. LAM vereist een " +"versleutelde verbinding." + +#: ../help/help.inc:161 +msgid "" +"Encrypts sensitive data like passwords in your session. This requires the " +"PHP MCrypt extension." +msgstr "" +"Versleutelt gevoelige gegevens zoals wachtwoorden in uw sessie. Dit vereist " +"de PHP MCrypt extensie." + +#: ../templates/selfService/adminMain.php:457 ../help/help.inc:103 +msgid "Enforce language" +msgstr "Taal afdwingen" + +#: ../lib/modules/sambaSamAccount.inc:553 +msgid "Eniwetok, Kwajalein" +msgstr "Eniwetok, Kwajalein" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:91 +msgid "Enter the values you would like to add:" +msgstr "Geef de waarde die u wilt toevoegen:" + +#: ../lib/modules/eduPerson.inc:118 ../lib/modules/eduPerson.inc:122 +#: ../lib/modules/eduPerson.inc:194 ../lib/modules/eduPerson.inc:231 +#: ../lib/modules/eduPerson.inc:344 ../lib/modules/eduPerson.inc:586 +msgid "Entitlements" +msgstr "Aanspraken" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:471 +msgid "Entries found" +msgstr "Items gevonden" + +#: ../templates/serverInfo.php:269 +msgid "Entries sent" +msgstr "Items verzonden" + +#: ../templates/3rdParty/pla/lib/export_functions.php:473 +msgid "Entry" +msgstr "Item" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:43 +#, php-format +msgid "Entry %s and sub-tree deleted successfully." +msgstr "Item %s en onderliggende items met succes verwijderd." + +#: ../templates/3rdParty/pla/htdocs/create.php:90 +msgid "Entry created" +msgstr "Item gecreëerd" + +#: ../templates/delete.php:330 +#: ../templates/3rdParty/pla/htdocs/mass_update.php:26 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:26 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:27 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:24 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:56 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:33 +msgid "Entry does not exist" +msgstr "Item bestaat niet" + +#: ../lib/modules/puppetClient.inc:80 ../lib/modules/puppetClient.inc:84 +#: ../lib/modules/puppetClient.inc:128 ../lib/modules/puppetClient.inc:153 +#: ../lib/modules/puppetClient.inc:161 ../lib/modules/puppetClient.inc:239 +#: ../lib/modules/puppetClient.inc:430 +msgid "Environment" +msgstr "Omgeving" + +#: ../templates/schema/schema.php:166 +msgid "Equality" +msgstr "Gelijkheid" + +#: ../lib/modules/zarafaUser.inc:529 ../lib/modules/zarafaUser.inc:1249 +msgid "Equipment" +msgstr "Apparatuur" + +#: ../templates/config/mainmanage.php:408 +#: ../templates/3rdParty/pla/lib/Template.php:430 +#: ../templates/3rdParty/pla/lib/Template.php:473 +#: ../templates/3rdParty/pla/lib/Template.php:517 +#: ../templates/3rdParty/pla/lib/functions.php:511 +#: ../templates/3rdParty/pla/lib/functions.php:513 +#: ../templates/3rdParty/pla/lib/ds_myldap.php:219 +#: ../templates/3rdParty/pla/htdocs/import.php:79 +msgid "Error" +msgstr "Fout" + +#: ../templates/3rdParty/pla/lib/functions.php:1897 +#: ../templates/3rdParty/pla/lib/functions.php:1901 +msgid "Error number" +msgstr "Foutnummer" + +#: ../lib/modules/mitKerberos.inc:1173 ../lib/modules/heimdalKerberos.inc:1038 +msgid "Error while changing Kerberos password." +msgstr "Fout tijdens het wijzigen van het Kerberos wachtwoord." + +#: ../templates/delete.php:280 +#, php-format +msgid "Error while deleting DN: %s" +msgstr "Fout tijdens verwijderen DN: %s" + +#: ../help/help.inc:145 +msgid "" +"Every account type needs exactly one base module. This module provides a " +"structural object class." +msgstr "" +"Ieder account type heeft precies een basismodule nodig. Deze module levert " +"een structural objectclass." + +#: ../lib/modules/customScripts.inc:67 ../lib/modules/customScripts.inc:80 +#: ../lib/modules/selfRegistration.inc:82 ../lib/modules/zarafaContact.inc:97 +#: ../lib/modules/zarafaGroup.inc:99 ../lib/modules/dhcp_settings.inc:564 +#: ../lib/modules/zarafaUser.inc:146 ../help/help.inc:74 ../help/help.inc:80 +#: ../help/help.inc:90 ../help/help.inc:95 ../help/help.inc:117 +msgid "Example" +msgstr "Voorbeeld" + +#: ../templates/masscreate.php:302 ../templates/masscreate.php:376 +msgid "Example value" +msgstr "Voorbeeld waarde" + +#: ../help/help.inc:62 +msgid "Examples" +msgstr "Voorbeelden" + +#: ../templates/config/confmain.php:319 +msgid "Execute" +msgstr "Uitvoeren" + +#: ../templates/tests/lamdaemonTest.php:269 +msgid "Execute lamdaemon" +msgstr "Uitvoeren van lamdaemon" + +#: ../lib/modules/freeRadius.inc:104 ../lib/modules/freeRadius.inc:130 +#: ../lib/modules/freeRadius.inc:209 ../lib/modules/freeRadius.inc:237 +#: ../lib/modules/freeRadius.inc:385 ../lib/modules/freeRadius.inc:543 +msgid "Expiration date" +msgstr "Expiratie datum" + +#: ../lib/modules/bindDLZ.inc:211 ../lib/modules/bindDLZ.inc:314 +#: ../lib/modules/bindDLZ.inc:426 ../lib/modules/bindDLZ.inc:519 +#: ../lib/modules/bindDLZ.inc:1022 ../lib/modules/bindDLZ.inc:1551 +msgid "Expiration time" +msgstr "Expiratie datum" + +#: ../lib/modules/asteriskAccount.inc:211 +#: ../lib/modules/asteriskAccount.inc:291 +#: ../lib/modules/asteriskAccount.inc:494 +#: ../lib/modules/asteriskAccount.inc:721 +#: ../lib/modules/asteriskAccount.inc:1007 +#: ../lib/modules/asteriskAccount.inc:1283 +msgid "Expiration timestamp" +msgstr "Expiratie timestamp" + +#: ../lib/modules/asteriskAccount.inc:212 +msgid "Expiration timestamp (\"regseconds\" option)." +msgstr "Expiratie timestamp (\"regseconds\" optie)." + +#: ../lib/types/ppolicyType.inc:86 ../lib/modules/ppolicy.inc:116 +#: ../lib/modules/ppolicy.inc:148 ../lib/modules/ppolicy.inc:174 +#: ../lib/modules/ppolicy.inc:214 ../lib/modules/ppolicy.inc:479 +msgid "Expire warning" +msgstr "Verlopen waarschuwing" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1081 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1084 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:305 +#: ../templates/3rdParty/pla/htdocs/export_form.php:37 +#: ../templates/3rdParty/pla/htdocs/export_form.php:53 +msgid "Export" +msgstr "Uitvoer" + +#: ../templates/pdfedit/pdfmain.php:221 ../templates/pdfedit/pdfmain.php:222 +#: ../help/help.inc:212 +msgid "Export PDF structure" +msgstr "Exporteer PDF structuur" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:105 +msgid "Export format" +msgstr "Uitvoer formaat" + +#: ../templates/profedit/profilemain.php:209 +#: ../templates/profedit/profilemain.php:210 ../help/help.inc:194 +msgid "Export profile" +msgstr "Exporteer profiel" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Export subtree" +msgstr "Export subtree" + +#: ../templates/pdfedit/pdfmain.php:117 +#: ../templates/profedit/profilemain.php:132 +msgid "Export successful" +msgstr "Exporteren succesvol" + +#: ../templates/serverInfo.php:349 +msgid "Extended" +msgstr "Uitgebreid" + +#: ../lib/types/asteriskExt.inc:143 +#, php-format +msgid "Extension count: %s" +msgstr "Extensie aantal: %s" + +#: ../lib/types/asteriskExt.inc:94 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskExtension.inc:102 +#: ../lib/modules/asteriskExtension.inc:137 +#: ../lib/modules/asteriskExtension.inc:145 +#: ../lib/modules/asteriskExtension.inc:289 +#: ../lib/modules/asteriskExtension.inc:293 +#: ../lib/modules/asteriskExtension.inc:813 +msgid "Extension name" +msgstr "Extensie naam" + +#: ../lib/modules/asteriskExtension.inc:114 +#: ../lib/modules/asteriskExtension.inc:138 +#: ../lib/modules/asteriskExtension.inc:159 +#: ../lib/modules/asteriskExtension.inc:233 +#: ../lib/modules/asteriskExtension.inc:481 +#: ../lib/modules/asteriskExtension.inc:814 +msgid "Extension owners" +msgstr "Extensie eigenaar" + +#: ../lib/modules/asteriskExtension.inc:190 +msgid "Extension with this name already exists." +msgstr "Extensie met deze naam bestaat reeds." + +#: ../templates/3rdParty/pla/htdocs/import.php:66 +msgid "Failed" +msgstr "Mislukt" + +#: ../lib/modules/mitKerberos.inc:128 ../lib/modules/mitKerberos.inc:252 +#: ../lib/modules/mitKerberos.inc:298 ../lib/modules/mitKerberos.inc:345 +#: ../lib/modules/mitKerberos.inc:768 +msgid "Failed logins" +msgstr "Mislukte logins" + +#: ../templates/initsuff.php:152 +msgid "Failed to create entry!" +msgstr "Entree maken mislukt!" + +#: ../lib/profiles.inc:190 ../lib/pdfstruct.inc:224 +msgid "Failed to export!" +msgstr "Mislukt om te exporteren!" + +#: ../lib/profiles.inc:197 ../lib/pdfstruct.inc:231 +msgid "Failed to import!" +msgstr "Mislukt om te importeren!" + +#: ../lib/modules/range.inc:121 ../lib/modules/range.inc:567 +msgid "Failover peer" +msgstr "Failover peer" + +#: ../lib/types/ppolicyType.inc:85 ../lib/modules/ppolicy.inc:112 +#: ../lib/modules/ppolicy.inc:153 ../lib/modules/ppolicy.inc:173 +#: ../lib/modules/ppolicy.inc:280 ../lib/modules/ppolicy.inc:478 +msgid "Failure count interval" +msgstr "Fout aantal interval" + +#: ../lib/modules/inetOrgPerson.inc:76 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:211 ../lib/modules/inetOrgPerson.inc:444 +#: ../lib/modules/inetOrgPerson.inc:592 ../lib/modules/inetOrgPerson.inc:726 +#: ../lib/modules/inetOrgPerson.inc:730 ../lib/modules/inetOrgPerson.inc:1431 +#: ../lib/modules/inetOrgPerson.inc:1434 ../lib/modules/inetOrgPerson.inc:1939 +#: ../lib/modules/inetOrgPerson.inc:2558 ../lib/modules/inetOrgPerson.inc:3602 +#: ../lib/modules/inetOrgPerson.inc:3652 +msgid "Fax number" +msgstr "Faxnummer" + +#: ../lib/modules/zarafaUser.inc:155 ../lib/modules/zarafaUser.inc:376 +#: ../lib/modules/zarafaUser.inc:638 ../lib/modules/zarafaUser.inc:1288 +#: ../lib/modules/zarafaUser.inc:1327 ../lib/modules/zarafaUser.inc:1807 +msgid "Features" +msgstr "Diensten" + +#: ../templates/config/mainmanage.php:412 +#: ../templates/3rdParty/pla/lib/functions.php:533 +#: ../templates/3rdParty/pla/tools/unserialize.php:14 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "File" +msgstr "Bestand" + +#: ../lib/pdfstruct.inc:282 +msgid "File does not exist." +msgstr "Bestand bestaat niet" + +#: ../lib/modules/customFields.inc:160 ../lib/modules/customFields.inc:3294 +msgid "File extension" +msgstr "Bestandsextensie" + +#: ../lib/modules/inetOrgPerson.inc:104 +#, php-format +msgid "File is too large. Maximum allowed size is %s kB." +msgstr "Bestand is te groot. Maximaal toegestane grootte is %s kB." + +#: ../lib/modules/sambaSamAccount.inc:313 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user and $group are replaced with user and group name." +msgstr "" +"Bestandsnaam en pad, relatief ten opzichte van netlogon-share. dat " +"uitgevoerd moet worden tijdens de logon. $user en $group worden vervangen " +"door gebruikers- en groepsnaam." + +#: ../lib/modules/windowsUser.inc:210 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user is replaced with user name." +msgstr "" +"Bestandsnaam en pad, relatief ten opzichte van netlogon-share. dat " +"uitgevoerd moet worden tijdens de logon. $user wordt vervangen door de " +"gebruikersnaam." + +#: ../lib/modules/zarafaServer.inc:76 ../lib/modules/zarafaServer.inc:112 +#: ../lib/modules/zarafaServer.inc:137 ../lib/modules/zarafaServer.inc:177 +#: ../lib/modules/zarafaServer.inc:219 ../lib/modules/zarafaServer.inc:356 +msgid "File path" +msgstr "Bestandspad" + +#: ../templates/masscreate.php:243 ../lib/tools/fileUpload.inc:44 +#: ../lib/modules/ldapPublicKey.inc:80 ../lib/modules/customFields.inc:3280 +#: ../lib/lists.inc:777 +msgid "File upload" +msgstr "Bestand upload" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +#: ../lib/types/zarafaAddressListType.inc:94 +#: ../lib/types/zarafaDynamicGroupType.inc:95 +#: ../lib/modules/pykotaPrinter.inc:128 ../lib/modules/pykotaPrinter.inc:425 +#: ../lib/modules/zarafaDynamicGroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:158 +#: ../lib/modules/zarafaDynamicGroup.inc:171 +#: ../lib/modules/zarafaDynamicGroup.inc:239 +#: ../lib/modules/zarafaDynamicGroup.inc:450 +#: ../lib/modules/zarafaContact.inc:91 ../lib/modules/posixGroup.inc:335 +#: ../lib/modules/posixGroup.inc:528 ../lib/modules/zarafaAddressList.inc:79 +#: ../lib/modules/zarafaAddressList.inc:134 +#: ../lib/modules/zarafaAddressList.inc:145 +#: ../lib/modules/zarafaAddressList.inc:206 +#: ../lib/modules/zarafaAddressList.inc:333 ../lib/modules/zarafaUser.inc:140 +#: ../lib/modules/sambaGroupMapping.inc:170 +#: ../lib/modules/sambaGroupMapping.inc:483 ../lib/modules/nisnetgroup.inc:104 +#: ../lib/modules/nisnetgroup.inc:477 +#: ../lib/modules/organizationalRole.inc:101 +#: ../lib/modules/organizationalRole.inc:282 +#: ../lib/modules/organizationalRole.inc:372 +#: ../lib/modules/groupOfNames.inc:113 ../lib/modules/groupOfNames.inc:339 +#: ../lib/modules/groupOfNames.inc:429 ../lib/modules/groupOfNames.inc:494 +#: ../lib/modules/groupOfNames.inc:584 ../lib/modules/nisMailAlias.inc:93 +#: ../lib/modules/nisMailAlias.inc:373 ../lib/lists.inc:379 +#: ../help/help.inc:168 +msgid "Filter" +msgstr "Filter" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:509 +msgid "Filter performed" +msgstr "Filter uitgevoerd" + +#: ../templates/multiEdit.php:514 +msgid "Finished all operations." +msgstr "Klaar met alle operaties." + +#: ../lib/types/user.inc:96 ../lib/modules/selfRegistration.inc:83 +#: ../lib/modules/selfRegistration.inc:218 ../lib/modules/windowsUser.inc:128 +#: ../lib/modules/windowsUser.inc:278 ../lib/modules/windowsUser.inc:502 +#: ../lib/modules/windowsUser.inc:597 ../lib/modules/windowsUser.inc:700 +#: ../lib/modules/windowsUser.inc:1598 ../lib/modules/inetOrgPerson.inc:66 +#: ../lib/modules/inetOrgPerson.inc:159 ../lib/modules/inetOrgPerson.inc:309 +#: ../lib/modules/inetOrgPerson.inc:549 ../lib/modules/inetOrgPerson.inc:658 +#: ../lib/modules/inetOrgPerson.inc:1195 ../lib/modules/inetOrgPerson.inc:1198 +#: ../lib/modules/inetOrgPerson.inc:1925 ../lib/modules/inetOrgPerson.inc:2481 +#: ../lib/modules/inetOrgPerson.inc:3646 +msgid "First name" +msgstr "Voornaam" + +#: ../lib/modules/windowsUser.inc:597 ../lib/modules/windowsUser.inc:598 +#: ../lib/modules/inetOrgPerson.inc:66 ../lib/modules/inetOrgPerson.inc:67 +msgid "First name contains invalid characters!" +msgstr "Voornaam bevat ongeldige tekens!" + +#: ../lib/modules/windowsUser.inc:129 ../lib/modules/inetOrgPerson.inc:659 +msgid "First name of user. Only letters, - and spaces are allowed." +msgstr "Voornaam van gebruiker; alleen letters, - en spaties zijn toegestaan." + +#: ../lib/modules/ddns.inc:85 +msgid "Fix IP addresses" +msgstr "Vaste IP-adressen" + +#: ../templates/config/confmain.php:414 +msgid "Fixed list" +msgstr "Vaste lijst" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:228 +msgid "Fixed range" +msgstr "Vaste range" + +#: ../templates/pdfedit/pdfpage.php:461 +msgid "Folding marks" +msgstr "Folding marks" + +#: ../templates/config/confmain.php:273 ../help/help.inc:85 +msgid "Follow referrals" +msgstr "Volg verwijzingen" + +#: ../lib/modules/kolabUser.inc:125 +msgid "For automatic invitation handling." +msgstr "Voor automatische uitnodigingshandeling" + +#: ../lib/modules/nisnetgroup.inc:101 +msgid "" +"For the upload please specify the entries in the format \"(HOST,USER," +"DOMAIN)\". Multiple entries are separated by semicolon." +msgstr "" +"Voor de upload geef de gegevens in het formaat \"(HOST, gebruiker, " +"domein)\". Meerdere items worden gescheiden door een puntkomma." + +#: ../templates/lists/changePassword.php:243 +#: ../lib/modules/mitKerberos.inc:183 ../lib/modules/mitKerberos.inc:417 +#: ../lib/modules/shadowAccount.inc:369 ../lib/modules/heimdalKerberos.inc:127 +#: ../lib/modules/heimdalKerberos.inc:348 ../lib/modules.inc:1062 +#: ../help/help.inc:206 +msgid "Force password change" +msgstr "Forceer wachtwoord verandering" + +#: ../lib/modules/passwordSelfReset.inc:787 +msgid "Forgot password?" +msgstr "Wachtwoord vergeten?" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:484 ../help/help.inc:252 +msgid "Format" +msgstr "Formaat" + +#: ../lib/modules/qmailUser.inc:207 ../lib/modules/qmailUser.inc:277 +#: ../lib/modules/qmailUser.inc:401 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:546 ../lib/modules/qmailUser.inc:1141 +msgid "Forwarding address" +msgstr "Doorstuuradres" + +#: ../lib/modules/qmailUser.inc:208 +msgid "Forwards all incoming messages for this user to this address." +msgstr "Stuurt alle inkomende berichten voor deze gebruiker naar dit adres." + +#: ../lib/modules/pykotaGroup.inc:64 ../lib/modules/pykotaUser.inc:64 +msgid "Free printing" +msgstr "Gratis printen" + +#: ../lib/modules/freeRadius.inc:74 +msgid "FreeRadius" +msgstr "FreeRadius" + +#: ../lib/modules/sambaSamAccount.inc:1381 +msgid "Friday" +msgstr "Vrijdag" + +#: ../templates/config/confmain.php:343 ../lib/modules/selfRegistration.inc:90 +#: ../lib/modules/selfRegistration.inc:229 +#: ../lib/modules/passwordSelfReset.inc:116 +#: ../lib/modules/passwordSelfReset.inc:537 +#: ../lib/modules/passwordSelfReset.inc:557 ../help/help.inc:246 +msgid "From address" +msgstr "Van adres" + +#: ../templates/config/confmain.php:520 +msgid "From address for password mails is invalid." +msgstr "Afzender adres voor wachtwoord mails is niet geldig." + +#: ../lib/modules/asteriskAccount.inc:147 +#: ../lib/modules/asteriskAccount.inc:275 +#: ../lib/modules/asteriskAccount.inc:377 +#: ../lib/modules/asteriskAccount.inc:636 +#: ../lib/modules/asteriskAccount.inc:991 +#: ../lib/modules/asteriskAccount.inc:1251 +msgid "From domain" +msgstr "Van domain" + +#: ../lib/modules/asteriskAccount.inc:148 +msgid "From domain setting for this account." +msgstr "Van domein instelling voor deze account." + +#: ../lib/modules/asteriskAccount.inc:143 +#: ../lib/modules/asteriskAccount.inc:274 +#: ../lib/modules/asteriskAccount.inc:370 +#: ../lib/modules/asteriskAccount.inc:632 +#: ../lib/modules/asteriskAccount.inc:990 +#: ../lib/modules/asteriskAccount.inc:1249 +msgid "From user" +msgstr "Afzender gebruiker" + +#: ../lib/modules/asteriskAccount.inc:144 +msgid "From user setting for this account." +msgstr "Van gebruiker instelling voor deze account." + +#: ../lib/modules/asteriskAccount.inc:151 +#: ../lib/modules/asteriskAccount.inc:276 +#: ../lib/modules/asteriskAccount.inc:384 +#: ../lib/modules/asteriskAccount.inc:640 +#: ../lib/modules/asteriskAccount.inc:992 +#: ../lib/modules/asteriskAccount.inc:1253 +msgid "Full contact" +msgstr "Volledige contact" + +#: ../templates/lists/changePassword.php:286 +#: ../lib/modules/asteriskVoicemail.inc:103 +#: ../lib/modules/asteriskVoicemail.inc:139 +#: ../lib/modules/asteriskVoicemail.inc:172 +#: ../lib/modules/asteriskVoicemail.inc:252 +#: ../lib/modules/asteriskVoicemail.inc:371 +msgid "Full name" +msgstr "Volledige naam" + +#: ../lib/modules/asteriskVoicemail.inc:104 +msgid "Full name for Asterisk voicemail mailbox." +msgstr "Volledige naam voor de Asterisk voicemail mailbox." + +#: ../templates/3rdParty/pla/lib/functions.php:537 +#: ../templates/3rdParty/pla/tools/unserialize.php:17 +msgid "Function" +msgstr "Functie" + +#: ../lib/modules/windowsUser.inc:328 ../lib/modules/inetOrgPerson.inc:390 +msgid "GB-12345" +msgstr "GB-12345" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixGroup.inc:520 +msgid "GID generator" +msgstr "GID generator" + +#: ../lib/types/host.inc:96 ../lib/types/group.inc:106 +#: ../lib/types/user.inc:93 ../lib/modules/qmailUser.inc:114 +#: ../lib/modules/qmailUser.inc:235 ../lib/modules/qmailUser.inc:341 +#: ../lib/modules/qmailUser.inc:421 ../lib/modules/qmailUser.inc:581 +#: ../lib/modules/qmailUser.inc:1143 ../lib/modules/posixGroup.inc:191 +#: ../lib/modules/posixGroup.inc:421 ../lib/modules/posixGroup.inc:436 +#: ../lib/modules/posixGroup.inc:480 ../lib/modules/posixGroup.inc:500 +#: ../lib/modules/posixGroup.inc:571 ../lib/modules/posixGroup.inc:594 +#: ../lib/modules/posixAccount.inc:125 ../lib/modules/posixAccount.inc:413 +#: ../lib/modules/posixAccount.inc:1858 +#: ../lib/modules/sambaGroupMapping.inc:110 +#: ../lib/modules/sambaGroupMapping.inc:538 +msgid "GID number" +msgstr "GID nummer" + +#: ../lib/modules/posixGroup.inc:594 +msgid "" +"GID number has changed. Please select checkbox to change GID number of users " +"and hosts." +msgstr "" +"GID nummer is veranderd. Selecteer checkbox om GID nummer van gebruikers en " +"hosts te veranderen." + +#: ../lib/modules/posixAccount.inc:125 +#, php-format +msgid "" +"GID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" +msgstr "" +"GID nummer is veranderd. Om de GID van de bestaande bestanden ook aan te " +"passen voer het volgende commando als root uit: 'find / -gid %s -uid %s -" +"exec chrgrp %s {} \\;'" + +#: ../lib/modules/posixGroup.inc:601 +msgid "GID number has to be a numeric value!" +msgstr "GIDnummer moet een nummerieke waarde zijn!" + +#: ../lib/modules/qmailUser.inc:466 +msgid "GID number is already in use." +msgstr "GID-nummer is al in gebruik." + +#: ../lib/modules/posixAccount.inc:256 ../lib/modules/posixAccount.inc:356 +#: ../lib/modules/posixAccount.inc:398 ../lib/modules/posixAccount.inc:424 +#: ../lib/modules/posixAccount.inc:510 ../lib/modules/posixAccount.inc:548 +#: ../lib/modules/posixAccount.inc:1440 ../lib/modules/posixAccount.inc:1861 +msgid "Gecos" +msgstr "Gecos" + +#: ../lib/modules/windowsUser.inc:673 +msgid "General" +msgstr "Algemeen" + +#: ../lib/modules/generalInformation.inc:58 +msgid "General information" +msgstr "Algemene informatie" + +#: ../templates/config/mainmanage.php:477 +#: ../templates/config/confmodules.php:164 +#: ../templates/config/confmain.php:205 +#: ../templates/config/moduleSettings.php:163 +#: ../templates/config/conftypes.php:182 +#: ../templates/selfService/adminMain.php:401 +#: ../templates/profedit/profilepage.php:215 +msgid "General settings" +msgstr "Algemene instellingen" + +#: ../templates/lists/changePassword.php:317 ../help/help.inc:244 +msgid "Generate random password" +msgstr "Genereer willekeurig wachtwoord" + +#: ../templates/3rdParty/pla/lib/functions.php:63 +#: ../templates/3rdParty/pla/lib/functions.php:595 +msgid "Generic Error" +msgstr "Algemene fout" + +#: ../lib/modules/windowsGroup.inc:65 +msgid "Global" +msgstr "Globaal" + +#: ../templates/pdfedit/pdfmain.php:322 +#: ../templates/profedit/profilemain.php:289 +msgid "Global templates" +msgstr "Globale sjablonen" + +#: ../templates/schema/schema.php:128 ../templates/schema/schema.php:265 +#: ../templates/schema/schema.php:296 ../templates/schema/schema.php:321 +msgid "Go" +msgstr "Ga" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:215 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:139 +msgid "Go back" +msgstr "Ga terug" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1864 +msgid "Go to" +msgstr "Ga naar" + +#: ../lib/types/ppolicyType.inc:82 ../lib/modules/ppolicy.inc:100 +#: ../lib/modules/ppolicy.inc:149 ../lib/modules/ppolicy.inc:170 +#: ../lib/modules/ppolicy.inc:222 ../lib/modules/ppolicy.inc:475 +msgid "Grace authentication limit" +msgstr "Grace authenticatie limiet" + +#: ../lib/modules/quota.inc:125 ../lib/modules/quota.inc:403 +msgid "Grace block period" +msgstr "Respijtperiode blok" + +#: ../lib/modules/quota.inc:126 +msgid "" +"Grace block period. Most filesystems use a fixed maximum value of 7 days." +msgstr "" +"Respijtperiode blok. Meeste bestandsystemen hanteren een vaststaand maximum " +"van 7 dagen." + +#: ../lib/modules/quota.inc:148 +msgid "" +"Grace inode (files) period. Most filesystems use a fixed maximum value of 7 " +"days." +msgstr "" +"Respijtperiode inode (bestanden). Meeste bestandsystemen hanteren een " +"vaststaand maximum van 7 dagen." + +#: ../lib/modules/quota.inc:147 ../lib/modules/quota.inc:407 +msgid "Grace inode period" +msgstr "Respijtperiode inode" + +#: ../templates/config/confmain.php:324 +#: ../templates/selfService/adminMain.php:638 +msgid "Group" +msgstr "Groep" + +#: ../lib/types/group.inc:76 +msgid "Group accounts (e.g. Unix and Samba)" +msgstr "Groepaccounts (bijv. Unix en Samba)" + +#: ../lib/types/gon.inc:202 ../lib/types/zarafaDynamicGroupType.inc:165 +#: ../lib/types/group.inc:240 ../lib/types/netgroup.inc:169 +#, php-format +msgid "Group count: %s" +msgstr "Groep aantal: %s" + +#: ../lib/types/group.inc:111 ../lib/modules/posixGroup.inc:471 +#: ../lib/modules/nisnetgroup.inc:120 +msgid "Group description" +msgstr "Omschrijving groep" + +#: ../lib/modules/pykotaGroup.inc:118 +msgid "Group description." +msgstr "Omschrijving groep" + +#: ../lib/modules/posixGroup.inc:485 +msgid "Group description. If left empty group name will be used." +msgstr "Omschrijving groep. Indien leeg zal naam van de groep worden gebruikt." + +#: ../lib/types/gon.inc:105 ../lib/types/gon.inc:106 +#: ../lib/types/group.inc:108 ../lib/types/group.inc:109 +msgid "Group member DNs" +msgstr "Groep lid DN's" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:94 +#: ../lib/types/group.inc:107 ../lib/modules/pykotaPrinter.inc:119 +#: ../lib/modules/pykotaPrinter.inc:123 ../lib/modules/pykotaPrinter.inc:186 +#: ../lib/modules/pykotaPrinter.inc:199 ../lib/modules/pykotaPrinter.inc:265 +#: ../lib/modules/pykotaPrinter.inc:607 ../lib/modules/posixGroup.inc:222 +#: ../lib/modules/posixGroup.inc:293 ../lib/modules/posixGroup.inc:424 +#: ../lib/modules/posixGroup.inc:450 ../lib/modules/posixGroup.inc:488 +#: ../lib/modules/posixGroup.inc:492 ../lib/modules/posixGroup.inc:569 +#: ../lib/modules/windowsGroup.inc:381 +msgid "Group members" +msgstr "Groep leden" + +#: ../lib/types/gon.inc:104 ../lib/types/zarafaDynamicGroupType.inc:91 +#: ../lib/types/group.inc:105 ../lib/types/netgroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:63 +#: ../lib/modules/zarafaDynamicGroup.inc:116 +#: ../lib/modules/zarafaDynamicGroup.inc:165 +#: ../lib/modules/zarafaDynamicGroup.inc:195 +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:220 +#: ../lib/modules/zarafaDynamicGroup.inc:447 ../lib/modules/posixGroup.inc:181 +#: ../lib/modules/posixGroup.inc:427 ../lib/modules/posixGroup.inc:459 +#: ../lib/modules/posixGroup.inc:508 ../lib/modules/posixGroup.inc:570 +#: ../lib/modules/posixGroup.inc:602 ../lib/modules/posixGroup.inc:603 +#: ../lib/modules/posixGroup.inc:604 ../lib/modules/pykotaGroup.inc:197 +#: ../lib/modules/pykotaGroup.inc:199 ../lib/modules/pykotaGroup.inc:218 +#: ../lib/modules/nisnetgroup.inc:83 ../lib/modules/nisnetgroup.inc:112 +#: ../lib/modules/nisnetgroup.inc:139 ../lib/modules/nisnetgroup.inc:151 +#: ../lib/modules/nisnetgroup.inc:193 ../lib/modules/nisnetgroup.inc:579 +#: ../lib/modules/organizationalRole.inc:85 +#: ../lib/modules/organizationalRole.inc:114 +#: ../lib/modules/organizationalRole.inc:137 +#: ../lib/modules/organizationalRole.inc:452 +#: ../lib/modules/windowsGroup.inc:114 ../lib/modules/windowsGroup.inc:176 +#: ../lib/modules/windowsGroup.inc:257 ../lib/modules/windowsGroup.inc:283 +#: ../lib/modules/windowsGroup.inc:300 ../lib/modules/windowsGroup.inc:745 +#: ../lib/modules/groupOfNames.inc:85 ../lib/modules/groupOfNames.inc:126 +#: ../lib/modules/groupOfNames.inc:167 ../lib/modules/groupOfNames.inc:693 +msgid "Group name" +msgstr "Groep naam" + +#: ../lib/modules/pykotaGroup.inc:199 ../lib/modules/pykotaGroup.inc:200 +#: ../lib/modules/pykotaGroup.inc:203 ../lib/modules/pykotaGroup.inc:204 +msgid "Group name already exists!" +msgstr "Groepnaam wordt al gebruikt." + +#: ../lib/modules/zarafaDynamicGroup.inc:195 +msgid "Group name already in use." +msgstr "Groepnaam wordt al gebruikt." + +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:197 ../lib/modules/posixGroup.inc:604 +#: ../lib/modules/posixGroup.inc:605 ../lib/modules/pykotaGroup.inc:197 +#: ../lib/modules/pykotaGroup.inc:198 ../lib/modules/pykotaGroup.inc:201 +#: ../lib/modules/pykotaGroup.inc:202 ../lib/modules/nisnetgroup.inc:151 +#: ../lib/modules/windowsGroup.inc:283 ../lib/modules/windowsGroup.inc:284 +msgid "" +"Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Groep naam bevat ongeldige tekens. Geldige tekens zijn :a-z, A-Z, 0-9 en .-" +"_ !" + +#: ../lib/modules/windowsGroup.inc:151 +msgid "Group name for NIS." +msgstr "Groepsnaam voor NIS." + +#: ../lib/modules/posixGroup.inc:603 +msgid "Group name in use. Selected next free group name." +msgstr "Groep naam is in gebruik. Kies een volgende vrije groep naam." + +#: ../lib/modules/zarafaDynamicGroup.inc:64 ../lib/modules/pykotaGroup.inc:114 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ ." +msgstr "" +"Groep naam van de groep die aangemaakt moet worden. Geldige karakters zijn: " +"a-z, A-Z, 0-9 en .-_ ." + +#: ../lib/modules/posixGroup.inc:509 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ . If group name is already used group name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"Groep naam van de groep zal worden aangemaakt. Geldige tekens zijn: a-z, " +"0-9, .-_. Als de groep naam al wordt gebruikt als groep naam zal hier een " +"nummer aan worden toegevoegd. Het eerst volgende vrije nummer zal worden " +"gebruikt." + +#: ../lib/modules/pykotaGroup.inc:122 +msgid "Group name that is used for PyKota." +msgstr "Groepsnaam die wordt gebruikt voor PyKota." + +#: ../lib/modules/freeRadius.inc:96 ../lib/modules/freeRadius.inc:100 +#: ../lib/modules/freeRadius.inc:128 ../lib/modules/freeRadius.inc:154 +#: ../lib/modules/freeRadius.inc:185 ../lib/modules/freeRadius.inc:234 +#: ../lib/modules/freeRadius.inc:277 ../lib/modules/freeRadius.inc:540 +msgid "Group names" +msgstr "Groep namen" + +#: ../lib/modules/groupOfNames.inc:65 +msgid "Group of names" +msgstr "Groep van namen" + +#: ../lib/types/gon.inc:75 +msgid "Group of names accounts" +msgstr "Groep van namen accounts" + +#: ../lib/modules/groupOfUniqueNames.inc:42 +msgid "Group of unique names" +msgstr "Groep van unieke namen" + +#: ../lib/modules/posixGroup.inc:442 ../lib/modules/posixGroup.inc:496 +msgid "Group password" +msgstr "Groep wachtwoord" + +#: ../lib/modules/windowsGroup.inc:142 ../lib/modules/windowsGroup.inc:195 +#: ../lib/modules/windowsGroup.inc:262 ../lib/modules/windowsGroup.inc:338 +#: ../lib/modules/windowsGroup.inc:775 +msgid "Group scope" +msgstr "Groep scope" + +#: ../lib/modules/sambaGroupMapping.inc:382 +#: ../lib/modules/windowsGroup.inc:138 ../lib/modules/windowsGroup.inc:203 +#: ../lib/modules/windowsGroup.inc:261 ../lib/modules/windowsGroup.inc:341 +#: ../lib/modules/windowsGroup.inc:776 +msgid "Group type" +msgstr "Groep type" + +#: ../lib/types/group.inc:67 ../lib/modules/posixGroup.inc:401 +#: ../lib/modules/zarafaGroup.inc:119 ../lib/modules/windowsUser.inc:217 +#: ../lib/modules/windowsUser.inc:220 ../lib/modules/windowsUser.inc:442 +#: ../lib/modules/windowsUser.inc:523 ../lib/modules/windowsUser.inc:785 +#: ../lib/modules/windowsUser.inc:1643 ../lib/modules/windowsUser.inc:1671 +#: ../lib/modules/generalInformation.inc:110 +msgid "Groups" +msgstr "Groepen" + +#: ../lib/types/gon.inc:66 ../lib/modules/posixAccount.inc:261 +#: ../lib/modules/posixAccount.inc:364 ../lib/modules/posixAccount.inc:427 +#: ../lib/modules/posixAccount.inc:1599 ../lib/modules/posixAccount.inc:1748 +#: ../lib/modules/posixAccount.inc:1871 ../lib/modules/windowsUser.inc:1033 +#: ../lib/modules/groupOfNamesUser.inc:54 +#: ../lib/modules/groupOfNamesUser.inc:56 +#: ../lib/modules/groupOfNamesUser.inc:60 +#: ../lib/modules/groupOfNamesUser.inc:64 +#: ../lib/modules/groupOfNamesUser.inc:71 +#: ../lib/modules/groupOfNamesUser.inc:324 +#: ../lib/modules/groupOfNamesUser.inc:361 +msgid "Groups of names" +msgstr "Groepen van namen" + +#: ../lib/modules/dhcp_settings.inc:99 +msgid "H-Node (0x08)" +msgstr "H-Node (0x08)" + +#: ../templates/config/confmain.php:356 +#: ../lib/modules/selfRegistration.inc:235 +#: ../lib/modules/passwordSelfReset.inc:541 +#: ../lib/modules/passwordSelfReset.inc:561 ../help/help.inc:255 +msgid "HTML format" +msgstr "HTML formaat" + +#: ../templates/config/confmain.php:448 +#: ../templates/selfService/adminMain.php:442 ../help/help.inc:126 +msgid "HTTP authentication" +msgstr "HTTP authenticatie" + +#: ../lib/modules/zarafaServer.inc:68 ../lib/modules/zarafaServer.inc:100 +#: ../lib/modules/zarafaServer.inc:135 ../lib/modules/zarafaServer.inc:173 +#: ../lib/modules/zarafaServer.inc:195 ../lib/modules/zarafaServer.inc:354 +msgid "HTTP port" +msgstr "HTTP poort" + +#: ../lib/modules/quota.inc:635 ../lib/modules/systemQuotas.inc:384 +msgid "Hard block" +msgstr "Uiterste blok" + +#: ../lib/modules/quota.inc:119 ../lib/modules/quota.inc:120 +#: ../lib/modules/quota.inc:402 ../lib/modules/quota.inc:508 +#: ../lib/modules/systemQuotas.inc:126 +msgid "Hard block limit" +msgstr "Uiterste blok limiet" + +#: ../lib/modules/quota.inc:637 ../lib/modules/systemQuotas.inc:386 +msgid "Hard inode" +msgstr "Uiterste inode" + +#: ../lib/modules/quota.inc:142 +msgid "Hard inode (files) limit" +msgstr "Uiterste inode (bestands) limiet" + +#: ../lib/modules/quota.inc:141 ../lib/modules/quota.inc:406 +#: ../lib/modules/quota.inc:510 ../lib/modules/systemQuotas.inc:130 +msgid "Hard inode limit" +msgstr "Uiterste inode limiet" + +#: ../lib/modules/generalInformation.inc:104 +msgid "Has subentries" +msgstr "Heeft subitems" + +#: ../lib/modules/sambaSamAccount.inc:555 +msgid "Hawaii" +msgstr "Hawaii" + +#: ../lib/modules/selfRegistration.inc:106 +#: ../lib/modules/selfRegistration.inc:224 +#: ../lib/modules/passwordSelfReset.inc:156 +#: ../lib/modules/passwordSelfReset.inc:567 +msgid "Header" +msgstr "Kopregel" + +#: ../templates/pdfedit/pdfpage.php:452 ../templates/pdfedit/pdfpage.php:591 +#: ../templates/pdfedit/pdfpage.php:598 +msgid "Headline" +msgstr "Kopregel" + +#: ../lib/modules/heimdalKerberos.inc:235 +msgid "Heimdal Kerberos password change command" +msgstr "Heimdal Kerberos wachtwoord wijzigen commando" + +#: ../templates/main_header.php:140 ../lib/modules.inc:667 +msgid "Help" +msgstr "Help" + +#: ../lib/modules/customFields.inc:96 ../lib/modules/customFields.inc:1716 +msgid "Help text" +msgstr "Helptekst" + +#: ../lib/tools/schemaBrowser.inc:53 +msgid "Here you can browse LDAP object classes and attributes." +msgstr "Hier kunnen de LDAP objectclasses en -attributen doorgebladerd worden." + +#: ../lib/modules/sambaSamAccount.inc:392 +msgid "Here you can change the settings for the terminal server access." +msgstr "Hier kunt u de instellingen voor de terminal server toegang aanpassen." + +#: ../lib/selfService.inc:387 +msgid "Here you can change your personal settings." +msgstr "Hier kunt u uw persoonlijke instellingen beheren." + +#: ../templates/masscreate.php:130 +msgid "Here you can create multiple accounts by providing a CSV file." +msgstr "" +"Hier kunt u meerdere accounts aanmaken door een CSV bestand op te geven." + +#: ../lib/modules/dhcp_settings.inc:198 +msgid "Here you can enter a description for this DHCP entry." +msgstr "Hier kunt u een beschrijving voor dit DHCP item omgeven." + +#: ../lib/modules/nisnetgroup.inc:88 ../lib/modules/organizationalRole.inc:90 +#: ../lib/modules/groupOfNames.inc:90 +msgid "Here you can enter a description for this group." +msgstr "Hier kunt u een beschrijving voor deze groep invoeren." + +#: ../lib/modules/sudoRole.inc:71 +msgid "Here you can enter a description for this role." +msgstr "Hier kunt u een beschrijving opgeven voor deze rol." + +#: ../lib/modules/pykotaPrinter.inc:129 ../lib/modules/zarafaContact.inc:92 +#: ../lib/modules/posixGroup.inc:529 ../lib/modules/zarafaUser.inc:141 +#: ../lib/modules/sambaGroupMapping.inc:171 ../lib/modules/nisnetgroup.inc:105 +#: ../lib/modules/organizationalRole.inc:102 +#: ../lib/modules/groupOfNames.inc:114 ../lib/modules/nisMailAlias.inc:94 +msgid "" +"Here you can enter a filter value. Only entries which contain the filter " +"text will be shown." +msgstr "" +"Hier kunt u een filter waarde invoeren. Alleen items die de filter tekst " +"bevatten worden getoond." + +#: ../lib/modules/posixAccount.inc:470 ../lib/modules/groupOfNamesUser.inc:65 +msgid "" +"Here you can enter a list of additional group memberships. The group names " +"are separated by commas." +msgstr "" +"Hier kunt u een lijst opgeven van additionele groepsleden. De groepsnamen " +"worden gescheiden met een komma." + +#: ../lib/modules/organizationalRoleUser.inc:65 +msgid "" +"Here you can enter a list of roles. The role names are separated by commas." +msgstr "" +"Hier kunt u een lijst met rollen invoeren. De rol namen worden gescheiden " +"door komma's." + +#: ../lib/modules/device.inc:66 +msgid "Here you can enter a serial number for this device." +msgstr "Hier kunt u een serienummer voor dit apparaat invoeren." + +#: ../lib/modules/windowsUser.inc:181 ../lib/modules/windowsUser.inc:185 +msgid "Here you can enter additional web sites for the user." +msgstr "Hier kunt u extra websites opgeven voor de gebruiker." + +#: ../help/help.inc:215 +msgid "" +"Here you can enter an alternative mail address for the password. To use the " +"user's primary email address please leave the field blank." +msgstr "" +"Hier kunt u een alternatief e-mailadres in voeren voor het wachtwoord. Laat " +"veld dit leeg om het primaire e-mailadres te gebruiken." + +#: ../lib/modules/customFields.inc:81 +msgid "" +"Here you can enter one or more object classes (separated by comma). This " +"will allow you to add/remove the group's attributes including their object " +"classes." +msgstr "" +"Hier kunt u een of meer objectklassen invoeren (gescheiden door een komma). " +"Hiermee kunt u groep attributen toevoegen of verwijderen met inbegrip van " +"hun objectklassen." + +#: ../lib/modules/inetOrgPerson.inc:823 ../lib/modules/inetOrgPerson.inc:827 +msgid "Here you can enter the user's department." +msgstr "Hier kunt u de gebruikers afdeling opgeven." + +#: ../lib/modules/zarafaUser.inc:156 +msgid "Here you can explicitly enable and disable Zarafa features." +msgstr "" +"Hier kunnen Zarafa features expliciet geactiveerd en gedeactiveerd worden." + +#: ../help/help.inc:213 +msgid "" +"Here you can export PDF structures to other server profiles (overwrite " +"existing). You may also export a structure to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"structure with this name." +msgstr "" +"Hier kunt u PDF structuren exporteren naar andere server profielen " +"(bestaande worden overschreven). U kunt een structuur ook exporteren naar de " +"globale sjablonen. In dit geval zal het altijd worden gekopieerd naar alle " +"server profielen die nog niet beschikken over een structuur met deze naam." + +#: ../help/help.inc:195 +msgid "" +"Here you can export account profiles to other server profiles (overwrite " +"existing). You may also export a profile to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"profile with this name." +msgstr "" +"Hier kunt u account profielen exporteren naar andere server profielen " +"(bestaande worden overschreven). U kunt een profiel ook exporteren naar de " +"globale sjablonen. In dit geval zal het altijd worden gekopieerd naar alle " +"server profielen die nog niet beschikken over een profiel met deze naam." + +#: ../help/help.inc:211 +msgid "" +"Here you can import PDF structures from other server profiles (overwrite " +"existing)." +msgstr "" +"Hier kunt u PDF structuren importeren van andere server profielen " +"(bestaande worden overschreven)." + +#: ../help/help.inc:193 +msgid "" +"Here you can import account profiles from other server profiles (overwrite " +"existing)." +msgstr "" +"Hier u kunt account profielen importeren van andere server profielen " +"(bestaande worden overschreven)." + +#: ../help/help.inc:169 +msgid "" +"Here you can input simple filter expressions (e.g. 'value' or 'v*'). The " +"filter is case-sensitive." +msgstr "" +"Hier kan een eenvoudig filter expressie invoeren (bijv. 'waarde' of 'w*'). " +"Het filter is hoofdlettergevoelig." + +#: ../help/help.inc:199 +msgid "" +"Here you can load an account profile to set default settings for your " +"account. The \"default\" profile is automatically loaded for new accounts." +msgstr "" +"Hier kan een account profiel geladen worden dat als default waarde zal " +"gelden voor je account. Het \"default\" profiel wordt auatomatisch geladen " +"voor nieuwe accounts." + +#: ../lib/tools/profileEditor.inc:53 +msgid "Here you can manage your account profiles." +msgstr "Hier kunt u uw account profielen beheren." + +#: ../help/help.inc:181 +msgid "Here you can overwrite the display name for this account type." +msgstr "Hier kunt u de weergavenaam overschrijven voor dit type account." + +#: ../help/help.inc:201 +msgid "" +"Here you can select a PDF structure and export the account to a PDF file." +msgstr "" +"Hier kunt u een PDF struktuur selecteren en een account uitvoeren naar een " +"PDF bestand." + +#: ../help/help.inc:151 +msgid "" +"Here you can select where LAM should save its log messages. System logging " +"will go to Syslog on Unix systems and event log on Windows. You can also " +"select an extra file." +msgstr "" +"Hier kunt u selecteren waar LAM zijn log berichten zal opslaan. Systeem " +"logging gaan naar Syslog op Unix-systemen en gebeurtenislogboek op Windows. " +"U kunt ook kiezen voor een extra file." + +#: ../help/help.inc:112 +msgid "" +"Here you can select which plugins you want to use for account management." +msgstr "" +"Hier kan aangegeven worden welke plugin gebruikt wordt voor het beheer van " +"de accounts." + +#: ../lib/modules/customFields.inc:169 +msgid "Here you can set a custom display name for this module." +msgstr "Hier kunt u een aangepaste weergavenaam instellen voor deze module." + +#: ../lib/modules/customFields.inc:97 +msgid "Here you can set a describing text for your custom field." +msgstr "Hier kunt u een beschrijving opgeven voor dit custom field." + +#: ../help/help.inc:125 +msgid "" +"Here you can set a limit for LDAP searches. This will restrict the number of " +"results for LDAP searches. Please use this if LAM's LDAP queries produce too " +"much load." +msgstr "" +"Hier kunt u een limiet instellen voor LDAP-zoekopdrachten. Dit zal het " +"aantal resultaten van LDAP-zoekopdrachten beperken. Gebruik dit als de " +"LAM's LDAP-query's te veel belasting produceren." + +#: ../lib/modules/customFields.inc:173 +msgid "Here you can set the URL to a custom icon (32x32px) for this module." +msgstr "URL voor custom module icon(32x32px) " + +#: ../help/help.inc:237 +msgid "" +"Here you can specify additional CSS links to change the layout of the self " +"service pages. This is useful to adapt them to your corporate design. Please " +"enter one link per line." +msgstr "" +"Hier kunt u extra CSS links opgeven om de lay-out van de zelf service " +"pagina's te veranderen. Dit is handig bij het aanpassen van deze pagina's " +"aan uw huisstijl. Voer een link per regel in." + +#: ../help/help.inc:155 +msgid "" +"Here you can specify minimum requirements for passwords. The character " +"classes are: lowercase, uppercase, numeric and symbols." +msgstr "" +"Hier kunt u minimumeisen voor wachtwoorden opgeven. De character typen " +"zijnkleine letters, hoofdletters, cijfers en symbolen. " + +#: ../lib/modules/nisnetgroup.inc:92 +msgid "" +"Here you can specify subgroups which are included in this NIS netgroup. All " +"members of the subgroups will be treated as members of this group." +msgstr "" +"Hier kunt u subgroepen opgeven die zijn opgenomen in deze NIS netgroep. Alle " +"leden van de subgroepen zullen worden behandeld als leden van deze groep." + +#: ../help/help.inc:129 +msgid "" +"Here you can specify the DN and password of the bind user that will be used " +"for the LDAP search. This is required if your LDAP server does not allow " +"anonymous access." +msgstr "" +"Hier kunt u het DN en het wachtwoord van de gebruiker opgeven die zullen " +"worden gebruikt voor de LDAP-zoekopdracht. Dit is nodig als uw LDAP-server " +"geen anonieme toegang ondersteunt." + +#: ../lib/modules/hostObject.inc:80 +msgid "" +"Here you can specify the list of host names where this account has login " +"privileges. The wildcard \"*\" represents all hosts. You may also use \"!\" " +"in front of a host name to deny access to a host." +msgstr "" +"Hier kunt u de lijst van hostnamen opgeven, waar dit account login " +"privileges heeft. Het wildcard teken \"*\" staat voor alle hosts. U kunt ook " +"gebruik maken van \"!\" aan het begin van de host-naam om de toegang tot een " +"gastheer te weigeren." + +#: ../lib/modules/sambaDomain.inc:102 +msgid "" +"Here you can specify the minimum number of characters for a user password." +msgstr "Hier kunt u het minimum aantal tekens voor een wachtwoord opgeven." + +#: ../templates/lists/changePassword.php:359 +msgid "Here you can specify the new password yourself." +msgstr "Hier kunt u zelf een nieuw wachtwoord opgeven." + +#: ../lib/modules/sambaSamAccount.inc:383 +msgid "Here you can specify the shadowing mode." +msgstr "Hier kunt u de shadowing mode opgeven." + +#: ../lib/tools/tests.inc:53 +msgid "Here you can test if certain LAM features work on your installation." +msgstr "Hier kun je testen of bepaalde LAM-functies werken op de installatie." + +#: ../lib/modules/customFields.inc:165 +msgid "Here you can upload a new file." +msgstr "Hier kunt u een nieuw bestand uploaden." + +#: ../templates/config/conftypes.php:298 +#: ../lib/types/zarafaAddressListType.inc:95 +#: ../lib/types/zarafaDynamicGroupType.inc:96 +#: ../lib/modules/zarafaDynamicGroup.inc:79 +#: ../lib/modules/zarafaDynamicGroup.inc:136 +#: ../lib/modules/zarafaDynamicGroup.inc:169 +#: ../lib/modules/zarafaDynamicGroup.inc:273 +#: ../lib/modules/zarafaDynamicGroup.inc:461 +#: ../lib/modules/zarafaContact.inc:71 ../lib/modules/zarafaContact.inc:164 +#: ../lib/modules/zarafaContact.inc:172 ../lib/modules/zarafaContact.inc:247 +#: ../lib/modules/zarafaContact.inc:572 ../lib/modules/zarafaGroup.inc:85 +#: ../lib/modules/zarafaGroup.inc:146 ../lib/modules/zarafaGroup.inc:196 +#: ../lib/modules/zarafaGroup.inc:294 ../lib/modules/zarafaGroup.inc:665 +#: ../lib/modules/zarafaAddressList.inc:67 +#: ../lib/modules/zarafaAddressList.inc:112 +#: ../lib/modules/zarafaAddressList.inc:143 +#: ../lib/modules/zarafaAddressList.inc:214 +#: ../lib/modules/zarafaAddressList.inc:343 ../lib/modules/zarafaUser.inc:80 +#: ../lib/modules/zarafaUser.inc:290 ../lib/modules/zarafaUser.inc:339 +#: ../lib/modules/zarafaUser.inc:367 ../lib/modules/zarafaUser.inc:577 +#: ../lib/modules/zarafaUser.inc:1274 ../help/help.inc:174 +msgid "Hidden" +msgstr "Verborgen" + +#: ../help/help.inc:175 +msgid "" +"Hidden account types will not show up in LAM. This is useful if you want to " +"display e.g. only groups but still need to manage their members." +msgstr "" +"Verborgen account soorten zijn niet te zien in LAM. Dit is handig als u " +"bijv. alleen groepen wilt tonen maar ook de leden van de groep wilt beheren." + +#: ../lib/modules/nisMailAliasUser.inc:104 +#: ../lib/modules/nisMailAliasUser.inc:563 +#: ../lib/modules/asteriskAccount.inc:243 +#: ../lib/modules/asteriskAccount.inc:1237 ../lib/modules/qmailUser.inc:102 +#: ../lib/modules/qmailUser.inc:195 ../lib/modules/zarafaGroup.inc:108 +#: ../lib/modules/zarafaGroup.inc:134 ../lib/modules/sambaSamAccount.inc:400 +#: ../lib/modules/sambaSamAccount.inc:590 ../lib/modules/posixAccount.inc:252 +#: ../lib/modules/posixAccount.inc:441 ../lib/modules/zarafaUser.inc:132 +#: ../lib/modules/zarafaUser.inc:1781 ../lib/modules/windowsUser.inc:236 +#: ../lib/modules/windowsUser.inc:561 ../lib/modules/inetOrgPerson.inc:830 +#: ../lib/modules/inetOrgPerson.inc:3572 ../lib/modules/freeRadius.inc:112 +#: ../lib/modules/freeRadius.inc:118 ../lib/modules/zarafaServer.inc:88 +#: ../lib/modules/zarafaServer.inc:159 ../lib/modules/qmailGroup.inc:68 +#: ../lib/modules/qmailGroup.inc:119 ../lib/modules/organizationalRole.inc:81 +#: ../lib/modules/organizationalRole.inc:159 +#: ../lib/modules/passwordSelfReset.inc:160 +#: ../lib/modules/passwordSelfReset.inc:209 +#: ../lib/modules/windowsGroup.inc:110 ../lib/modules/windowsGroup.inc:161 +#: ../lib/modules/groupOfNames.inc:81 ../lib/modules/groupOfNames.inc:193 +msgid "Hidden options" +msgstr "Verborgen opties" + +#: ../templates/config/confmain.php:375 +msgid "Hidden tools" +msgstr "Verborgen tools" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1115 +msgid "Hide" +msgstr "Verberg" + +#: ../lib/modules/customScripts.inc:88 ../lib/modules/customScripts.inc:102 +#: ../lib/modules/customScripts.inc:112 +msgid "Hide command in messages" +msgstr "Verberg commando's in berichten" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1116 +msgid "Hide internal attributes" +msgstr "Verberg interne attributen" + +#: ../lib/modules/customScripts.inc:92 ../lib/modules/customScripts.inc:104 +msgid "Hide tab" +msgstr "Verberg tab" + +#: ../templates/3rdParty/pla/lib/page.php:407 +msgid "Hide/Unhide the tree" +msgstr "Verberg/toon de boom" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:58 +msgid "Hint" +msgstr "Tip" + +#: ../templates/masscreate.php:249 +msgid "" +"Hint: Format all cells as text in your spreadsheet program and turn off auto " +"correction." +msgstr "" +"Tip: Formatteer alle cellen als tekt in uw spreadsheet en zet auto correctie " +"uit. " + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1005 +msgid "Hint: To delete an attribute, empty the text field and click save." +msgstr "" +"Hint: om attributen te verwijderen, leeg het tekst veld en druk op bewaren." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1342 +msgid "" +"Hint: You must choose exactly one structural object class (shown in bold " +"above)" +msgstr "Tip: Kies precies een structural object class (getoond in vet boven)" + +#: ../lib/modules/posixAccount.inc:535 ../lib/modules/windowsUser.inc:218 +#: ../lib/modules/groupOfNamesUser.inc:61 +msgid "Hold the CTRL-key to (de)select multiple groups." +msgstr "Om meerdere groepen te (de)selecteren, houdt de CTRL-knop ingedrukt." + +#: ../lib/modules/organizationalRoleUser.inc:61 +msgid "Hold the CTRL-key to (de)select multiple roles." +msgstr "Om meerdere rollen te (de)selecteren, houdt de CTRL-toets ingedrukt." + +#: ../lib/types/user.inc:98 ../lib/modules/sambaSamAccount.inc:231 +#: ../lib/modules/sambaSamAccount.inc:355 +#: ../lib/modules/sambaSamAccount.inc:1506 +#: ../lib/modules/sambaSamAccount.inc:1923 ../lib/modules/posixAccount.inc:100 +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:103 +#: ../lib/modules/posixAccount.inc:310 ../lib/modules/posixAccount.inc:416 +#: ../lib/modules/posixAccount.inc:473 ../lib/modules/posixAccount.inc:477 +#: ../lib/modules/posixAccount.inc:481 ../lib/modules/posixAccount.inc:518 +#: ../lib/modules/posixAccount.inc:1199 ../lib/modules/posixAccount.inc:1459 +#: ../lib/modules/posixAccount.inc:1655 ../lib/modules/posixAccount.inc:1755 +#: ../lib/modules/posixAccount.inc:1859 ../lib/modules/windowsUser.inc:247 +#: ../lib/modules/windowsUser.inc:436 ../lib/modules/windowsUser.inc:479 +#: ../lib/modules/windowsUser.inc:526 ../lib/modules/windowsUser.inc:618 +#: ../lib/modules/windowsUser.inc:768 ../lib/modules/windowsUser.inc:1637 +msgid "Home directory" +msgstr "Homedirectory" + +#: ../lib/modules/posixAccount.inc:103 +#, php-format +msgid "" +"Home directory changed. To keep home directory you have to run the following " +"command as root: 'mv %s %s'" +msgstr "" +"De homedirectory is veranderd. Om de homedirectory te bewaren moet u de " +"volgende commando uitvoeren: 'mv %s %s'" + +#: ../lib/modules/sambaSamAccount.inc:215 +#: ../lib/modules/sambaSamAccount.inc:232 +#: ../lib/modules/sambaSamAccount.inc:303 +#: ../lib/modules/sambaSamAccount.inc:487 +#: ../lib/modules/sambaSamAccount.inc:595 +#: ../lib/modules/sambaSamAccount.inc:1208 +#: ../lib/modules/sambaSamAccount.inc:1514 +#: ../lib/modules/sambaSamAccount.inc:1757 +#: ../lib/modules/sambaSamAccount.inc:1908 +#: ../lib/modules/sambaSamAccount.inc:1924 ../lib/modules/windowsUser.inc:244 +#: ../lib/modules/windowsUser.inc:430 ../lib/modules/windowsUser.inc:525 +#: ../lib/modules/windowsUser.inc:766 ../lib/modules/windowsUser.inc:1638 +msgid "Home drive" +msgstr "Home station" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:95 +#: ../lib/modules/sambaSamAccount.inc:218 +#: ../lib/modules/sambaSamAccount.inc:306 +#: ../lib/modules/sambaSamAccount.inc:495 +#: ../lib/modules/sambaSamAccount.inc:597 +#: ../lib/modules/sambaSamAccount.inc:1216 +#: ../lib/modules/sambaSamAccount.inc:1761 +#: ../lib/modules/sambaSamAccount.inc:1907 +msgid "Home path" +msgstr "Home pad" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:96 +msgid "Home path is invalid." +msgstr "Home pad is ongeldig." + +#: ../lib/modules/zarafaUser.inc:129 +msgid "Home server for the user." +msgstr "Thuis server voor de gebruiker." + +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:163 +#: ../lib/modules/inetOrgPerson.inc:428 ../lib/modules/inetOrgPerson.inc:586 +#: ../lib/modules/inetOrgPerson.inc:774 ../lib/modules/inetOrgPerson.inc:778 +#: ../lib/modules/inetOrgPerson.inc:1415 ../lib/modules/inetOrgPerson.inc:1418 +#: ../lib/modules/inetOrgPerson.inc:1934 ../lib/modules/inetOrgPerson.inc:2536 +#: ../lib/modules/inetOrgPerson.inc:3598 ../lib/modules/inetOrgPerson.inc:3651 +msgid "Home telephone number" +msgstr "Thuis telefoonnummer" + +#: ../lib/modules/posixAccount.inc:100 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/windowsUser.inc:618 ../lib/modules/windowsUser.inc:619 +msgid "Homedirectory contains invalid characters." +msgstr "Home directory bevat ongeldige tekens." + +#: ../lib/types/sudo.inc:79 ../lib/modules/asteriskAccount.inc:107 +#: ../lib/modules/asteriskAccount.inc:254 +#: ../lib/modules/asteriskAccount.inc:268 +#: ../lib/modules/asteriskAccount.inc:318 +#: ../lib/modules/asteriskAccount.inc:591 +#: ../lib/modules/asteriskAccount.inc:984 ../lib/modules/nisnetgroup.inc:217 +#: ../lib/modules/nisnetgroup.inc:585 ../lib/modules/fixed_ip.inc:580 +#: ../lib/modules/hostObject.inc:145 +msgid "Host" +msgstr "Host" + +#: ../lib/types/host.inc:62 +msgid "Host accounts (e.g. Samba)" +msgstr "Host accounts (bijv. Samba)" + +#: ../lib/types/host.inc:193 +#, php-format +msgid "Host count: %s" +msgstr "Host aantal: %s" + +#: ../lib/types/host.inc:94 +msgid "Host description" +msgstr "Host omschrijving" + +#: ../lib/modules/account.inc:96 ../lib/modules/posixAccount.inc:549 +#: ../lib/modules/posixAccount.inc:557 +msgid "Host description. If left empty host name will be used." +msgstr "Host omschrijving. Indien leeg gelaten zal host naam worden gebruikt." + +#: ../lib/modules/hostObject.inc:91 ../lib/modules/hostObject.inc:98 +#: ../lib/modules/hostObject.inc:217 +msgid "Host list" +msgstr "Host lijst" + +#: ../lib/types/host.inc:91 ../lib/types/host.inc:92 ../lib/types/bind.inc:77 +#: ../lib/modules/account.inc:91 ../lib/modules/account.inc:212 +#: ../lib/modules/windowsHost.inc:74 ../lib/modules/windowsHost.inc:94 +#: ../lib/modules/windowsHost.inc:119 ../lib/modules/windowsHost.inc:131 +#: ../lib/modules/windowsHost.inc:142 ../lib/modules/windowsHost.inc:288 +#: ../lib/modules/posixAccount.inc:115 ../lib/modules/posixAccount.inc:116 +#: ../lib/modules/posixAccount.inc:118 ../lib/modules/posixAccount.inc:375 +#: ../lib/modules/posixAccount.inc:406 ../lib/modules/posixAccount.inc:544 +#: ../lib/modules/posixAccount.inc:1422 ../lib/modules/posixAccount.inc:1844 +#: ../lib/modules/bindDLZ.inc:88 ../lib/modules/bindDLZ.inc:147 +#: ../lib/modules/bindDLZ.inc:151 ../lib/modules/bindDLZ.inc:247 +#: ../lib/modules/bindDLZ.inc:301 ../lib/modules/bindDLZ.inc:417 +#: ../lib/modules/bindDLZ.inc:477 ../lib/modules/bindDLZ.inc:504 +#: ../lib/modules/bindDLZ.inc:549 ../lib/modules/bindDLZ.inc:553 +#: ../lib/modules/bindDLZ.inc:757 ../lib/modules/bindDLZ.inc:1471 +#: ../lib/modules/bindDLZ.inc:1499 ../lib/modules/nisnetgroup.inc:153 +#: ../lib/modules/nisnetgroup.inc:481 +msgid "Host name" +msgstr "Host naam" + +#: ../lib/modules/posixAccount.inc:122 +msgid "Host name already exists!" +msgstr "Host naam bestaat al!" + +#: ../lib/modules/windowsHost.inc:131 ../lib/modules/windowsHost.inc:132 +#: ../lib/modules/posixAccount.inc:116 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/nisnetgroup.inc:153 +msgid "" +"Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Host naam bevat ongeldige tekens. Geldige tekens zijn: a-z, A-Z, 0-9 and .-" +"_ !" + +#: ../lib/modules/posixAccount.inc:118 +msgid "Host name in use. Selected next free host name." +msgstr "Host naam is in gebruik. Selecteer een nieuwe vrije naam." + +#: ../lib/modules/sambaSamAccount.inc:1098 +msgid "Host name must end with $!" +msgstr "Host naam moet eindigen met een $!" + +#: ../lib/modules/account.inc:92 ../lib/modules/posixAccount.inc:545 +msgid "" +"Host name of the host which should be created. Valid characters are: a-z,A-" +"Z,0-9, .-_$. Host names are always ending with $. If last character is not $ " +"it will be added. If host name is already used host name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"Host naam van de host welke moet worden aangemaakt. Geldige tekens zijn: a-" +"z,0-9, .-_$. Host namen eindigen altijd op $. Als laatste karakter niet " +"eindigt op $ zal deze worden toegevoegd. Als de host naam al in gebruik is " +"zal er een nummer aan worden toegevoegd. Het eerst volgende vrije nummer zal " +"worden gebruikt." + +#: ../lib/types/host.inc:53 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:96 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:227 ../lib/modules/sudoRole.inc:78 +#: ../lib/modules/sudoRole.inc:103 ../lib/modules/sudoRole.inc:165 +#: ../lib/modules/sudoRole.inc:217 ../lib/modules/sudoRole.inc:229 +#: ../lib/modules/sudoRole.inc:343 ../lib/modules/sudoRole.inc:807 +#: ../lib/modules/fixed_ip.inc:80 ../lib/modules/hostObject.inc:69 +#: ../lib/modules/hostObject.inc:79 +msgid "Hosts" +msgstr "Hosts" + +#: ../lib/modules/qmailUser.inc:352 +msgid "I am out of office." +msgstr "Ik ben niet op kantoor." + +#: ../lib/modules/posixGroup.inc:597 ../lib/modules/posixAccount.inc:106 +#: ../lib/modules/posixAccount.inc:1169 +msgid "ID is already in use" +msgstr "ID wordt al gebruikt" + +#: ../lib/modules/posixGroup.inc:595 ../lib/modules/posixGroup.inc:596 +#: ../lib/modules/posixGroup.inc:597 ../lib/modules/posixGroup.inc:719 +#: ../lib/modules/posixAccount.inc:104 ../lib/modules/posixAccount.inc:105 +#: ../lib/modules/posixAccount.inc:106 ../lib/modules/posixAccount.inc:1160 +#: ../lib/modules/posixAccount.inc:1165 ../lib/modules/posixAccount.inc:1169 +msgid "ID-Number" +msgstr "ID-nummer" + +#: ../lib/modules/zarafaUser.inc:299 ../lib/modules/zarafaUser.inc:642 +#: ../lib/modules/zarafaUser.inc:1331 +msgid "IMAP" +msgstr "IMAP" + +#: ../lib/modules/imapAccess.inc:86 ../lib/modules/imapAccess.inc:124 +msgid "IMAP admin user" +msgstr "IMAP admin gebruiker" + +#: ../lib/modules/imapAccess.inc:89 ../lib/modules/imapAccess.inc:131 +msgid "IMAP password input" +msgstr "IMAP wachtwoord invoer" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ipHost.inc:55 +#: ../lib/modules/ipHost.inc:65 ../lib/modules/ipHost.inc:128 +#: ../lib/modules/asteriskAccount.inc:227 +#: ../lib/modules/asteriskAccount.inc:295 +#: ../lib/modules/asteriskAccount.inc:522 +#: ../lib/modules/asteriskAccount.inc:746 +#: ../lib/modules/asteriskAccount.inc:1011 +#: ../lib/modules/asteriskAccount.inc:1291 ../lib/modules/bindDLZ.inc:92 +#: ../lib/modules/bindDLZ.inc:96 ../lib/modules/bindDLZ.inc:255 +#: ../lib/modules/bindDLZ.inc:495 ../lib/modules/bindDLZ.inc:652 +#: ../lib/modules/bindDLZ.inc:1479 ../lib/modules/freeRadius.inc:84 +#: ../lib/modules/freeRadius.inc:122 ../lib/modules/freeRadius.inc:193 +#: ../lib/modules/freeRadius.inc:225 ../lib/modules/freeRadius.inc:281 +#: ../lib/modules/freeRadius.inc:537 ../lib/modules/fixed_ip.inc:106 +#: ../lib/modules/fixed_ip.inc:421 ../lib/modules/fixed_ip.inc:741 +msgid "IP address" +msgstr "IP adres" + +#: ../lib/modules/ddns.inc:98 ../lib/modules/ddns.inc:112 +#: ../lib/modules/ddns.inc:121 ../lib/modules/ddns.inc:381 +#: ../lib/modules/ddns.inc:424 +msgid "IP address of the DNS server" +msgstr "IP adres van de DNS server" + +#: ../lib/modules/asteriskAccount.inc:228 +msgid "IP address of the peer. Valid only for realtime peers." +msgstr "IP-adres van de peer. Alleen geldig voor realtime peers." + +#: ../lib/modules/asteriskAccount.inc:236 +msgid "IP address or domain name of the registration server." +msgstr "IP-adres of de domeinnaam van de registratie-server." + +#: ../lib/modules/ipHost.inc:69 ../lib/modules/ipHost.inc:84 +#: ../lib/modules/ipHost.inc:104 ../lib/modules/ipHost.inc:251 +msgid "IP addresses" +msgstr "IP adressen" + +#: ../lib/modules/bindDLZ.inc:649 +msgid "IP addresses (\"A/AAAA\" records)" +msgstr "IP adressen (\"A/AAAA\" records)" + +#: ../lib/modules/fixed_ip.inc:119 +msgid "IP list" +msgstr "IP lijst" + +#: ../lib/modules/customFields.inc:514 +msgid "Icon" +msgstr "Icon" + +#: ../lib/modules/passwordSelfReset.inc:144 +#: ../lib/modules/passwordSelfReset.inc:506 +msgid "Identification method" +msgstr "Identificatiemethode" + +#: ../templates/masscreate.php:298 ../templates/masscreate.php:372 +msgid "Identifier" +msgstr "Identificeerder" + +#: ../lib/modules/sambaSamAccount.inc:239 +#: ../lib/modules/sambaSamAccount.inc:1532 +#: ../lib/modules/sambaSamAccount.inc:1935 +msgid "Idle time limit" +msgstr "Idle tijdslimiet" + +#: ../lib/modules/freeRadius.inc:108 ../lib/modules/freeRadius.inc:132 +#: ../lib/modules/freeRadius.inc:157 ../lib/modules/freeRadius.inc:217 +#: ../lib/modules/freeRadius.inc:240 ../lib/modules/freeRadius.inc:289 +#: ../lib/modules/freeRadius.inc:541 +msgid "Idle timeout" +msgstr "Idle tijdslimiet" + +#: ../lib/modules/qmailUser.inc:256 +msgid "" +"If account status is set to deleted, the earliest date when the mail message " +"store including all remaining content will be deleted from the filesystem." +msgstr "" +"Als de account status is ingesteld op verwijderd, de vroegste datum waarop " +"de e-mailberichten kunt met inbegrip van alle resterende inhoud wordt " +"verwijderd van het bestandssysteem." + +#: ../lib/modules/customFields.inc:177 +msgid "" +"If activated then LAM will show an accordion view if there is more than one " +"group per account type." +msgstr "" +"Indien geactiveerd dan LAM zal een accordeon-weergave gebruiken in het geval " +"dat er meer dan een groep per account type is." + +#: ../lib/modules/ppolicyUser.inc:60 +msgid "" +"If activated then the user is forced to change his password at the next " +"login." +msgstr "" +"Indien geactiveerd dan word de gebruiker gedwongen om zijn wachtwoord te " +"wijzigen bij de volgende login." + +#: ../lib/modules/sambaSamAccount.inc:269 +msgid "If checked Unix password will also be used as Samba password." +msgstr "" +"Indien aangevinkt zal het Unix wachtwoord ook gebruikt worden als Samba " +"wachtwoord." + +#: ../lib/modules/posixAccount.inc:527 +msgid "" +"If checked account will be deactivated by putting a \"!\" before the " +"encrypted password." +msgstr "" +"Indien aangevinkt zal het account deactiveerd worden door een \"!\" voor het " +"versleutelde wachtwoord te plaatsen." + +#: ../lib/modules/sambaSamAccount.inc:275 +msgid "If checked no password will be used." +msgstr "Indien aangevinkt zal geen wachtwoord gebruikt worden." + +#: ../lib/modules/windowsUser.inc:199 +msgid "If checked password does not expire." +msgstr "Indien aangevinkt zal wachtwoord niet verlopen." + +#: ../lib/modules/sambaSamAccount.inc:281 +msgid "If checked password does not expire. (Setting X-Flag)" +msgstr "Indien aangevinkt zal wachtwoord niet verlopen (middels X-vlag)." + +#: ../lib/modules/windowsUser.inc:196 +msgid "" +"If checked then the account is locked. You may only unlock accounts but not " +"lock them." +msgstr "" +"Indien aangevinkt dan is het account geblokkeerd is. U mag alleen accounts " +"deblokkeren." + +#: ../lib/modules/windowsUser.inc:193 +msgid "If checked then the account will be deactivated." +msgstr "Indien aangevinkt zal het account gedeactiveerd worden." + +#: ../lib/modules/sambaSamAccount.inc:287 +msgid "If checked then the account will be deactivated. (Setting D-Flag)" +msgstr "" +"Indien aangevinkt zal het account gedeactiveerd worden (middels D-vlag)." + +#: ../lib/modules/sambaSamAccount.inc:290 +msgid "" +"If checked then the account will be locked (setting L-Flag). You usually " +"want to use this setting to unlock user accounts which were locked because " +"of failed login attempts." +msgstr "" +"Indien aangevinkt dan wordt de account geblokkeerd (instelling L-Flag). " +"Doorgaans wilt u deze instelling wilt gebruiken om gebruiker accounts die " +"werden afgesloten als gevolg van mislukte login pogingen te openen." + +#: ../help/help.inc:177 +msgid "" +"If checked then the user will not be able to create new entries of this " +"account type." +msgstr "" +"Indien aangevinkt dan zal de gebruiker niet in staat zijn om nieuwe items " +"van dit account type aan te maken." + +#: ../help/help.inc:179 +msgid "" +"If checked then the user will not be able to delete entries of this account " +"type." +msgstr "" +"Indien aangevinkt dan zal de gebruiker niet in staat zijn om items van dit " +"account type te verwijderen." + +#: ../lib/modules/posixGroup.inc:481 +msgid "" +"If empty GID number will be generated automaticly depending on your " +"configuration settings." +msgstr "" +"Als het GID nummer leeg is, zal deze automatisch gegenereerd worden " +"afhankelijk van uw configuratie instellingen." + +#: ../lib/modules/qmailUser.inc:236 +msgid "If empty GID number will be generated automaticly." +msgstr "Als GID nummer leeg is zal deze automatisch gegenereerd worden." + +#: ../lib/modules/qmailUser.inc:232 ../lib/modules/posixAccount.inc:462 +msgid "If empty UID number will be generated automaticly." +msgstr "Als UID nummer leeg is zal deze automatisch gegenereerd worden." + +#: ../lib/modules/ppolicy.inc:125 +msgid "" +"If enabled the user will not be allowed to login after there have been a " +"specified number of consecutive failed login attempts." +msgstr "" +"Als deze optie ingeschakeld zal de gebruiker niet toegestaan worden ​​om in te " +"loggen nadat er een bepaald aantal opeenvolgende mislukte login pogingen " +"zijn geweest." + +#: ../help/help.inc:127 +msgid "" +"If enabled then LAM will use user and password that is provided by the web " +"server via HTTP authentication." +msgstr "" +"Als deze optie ingeschakeld is dan zal LAM gebruik maken van de " +"gebruikersnaam en paswoord dat wordt geleverd door de webserver via HTTP-" +"authenticatie." + +#: ../help/help.inc:104 +msgid "" +"If enabled then the default language will be enforced and cannot be chosen " +"by the user." +msgstr "" +"Indien ingeschakeld zal de standaardtaal worden afgedwongen en kan niet " +"worden gekozen door de gebruiker." + +#: ../lib/modules/ppolicy.inc:129 +msgid "" +"If enabled users must change their passwords when they first login after a " +"password is set or reset by the administrator." +msgstr "" +"Als deze optie ingeschakeld moeten gebruikers hun wachtwoord wijzigen " +"wanneer zij voor het eerst inloggen nadat hun wachtwoord is ingesteld of " +"opnieuw ingesteld door de beheerder." + +#: ../lib/modules/asteriskAccount.inc:216 +msgid "" +"If registration context is specified, Asterisk will dynamically create and " +"destroy a NoOp priority 1 extension for a given peer who registers or " +"unregisters with Asterisk." +msgstr "" +"Als de registratie context is opgegeven, dan zal Asterisk dynamisch een NoOp " +"priority 1 extensie aanmaken of verwijderen tijdens het registreren of " +"deregistreren van een peer." + +#: ../lib/modules/sambaDomain.inc:110 +msgid "If set then users need to login to change their password." +msgstr "" +"Indien gezet dan moeten gebruikers inloggen om hun wachtwoord te wijzigen." + +#: ../lib/modules/sambaSamAccount.inc:272 +msgid "If set to \"true\" Unix password will also be used as Samba password." +msgstr "" +"Indien ingesteld als \"truer\" zal het Unix wachtwoord ook worden gebruikt " +"als Samba wachtwoord." + +#: ../lib/modules/sambaSamAccount.inc:293 +msgid "If set to \"true\" account will be deactivated. (Setting D-Flag)" +msgstr "" +"Indien ingesteld als \"true\" zal het account worden gedeactiveerd. " +"(Instelling D-vlag)" + +#: ../lib/modules/sambaSamAccount.inc:278 +msgid "If set to \"true\" no password will be used." +msgstr "" +"Indien ingesteld als \"true\" , zal er geen wachtwoord worden gebruikt." + +#: ../lib/modules/sambaSamAccount.inc:284 +msgid "If set to \"true\" password does not expire. (Setting X-Flag)" +msgstr "" +"Indien ingesteld als \"true\" zal het wachtwoord niet verlopen. (Instelling " +"X-vlag)" + +#: ../lib/modules/qmailGroup.inc:197 +msgid "" +"If set to true then all incomming mails needs to come from a member of the " +"list." +msgstr "" +"Als de waarde true is dan moeten alle binnenkomende e-mails komen van een " +"lid van de lijst." + +#: ../lib/modules/customFields.inc:125 +msgid "" +"If the LDAP attribute has no value then the checkbox is set to this value." +msgstr "" +"Als de LDAP-attribuut geen waarde heeft dan wordt de checkbox gezet op deze " +"waarde." + +#: ../lib/modules/zarafaUser.inc:97 +msgid "" +"If the mailbox size reaches the soft quota limit, the user will not be able " +"to send email until the size of the mailbox is reduced." +msgstr "" +"Als de mailbox grootte de zachte quota limiet bereikt, dan zal de gebruiker " +"niet in staat zijn om e-mail te versturen totdat de grootte van de mailbox " +"is verminderd." + +#: ../lib/modules/passwordSelfReset.inc:149 +msgid "" +"If the user has a Samba 3 extension then the Samba password will also be " +"set. Otherwise, no action is taken." +msgstr "" +"Als de gebruiker een Samba 3 extensie heeft dan zal het Samba wachtwoord ook " +"worden ingesteld. Anders wordt er geen actie ondernomen." + +#: ../lib/modules/windowsUser.inc:145 ../lib/modules/windowsUser.inc:149 +msgid "If the user has multiple telephone numbers then please enter it here." +msgstr "" +"Als de gebruiker meerdere telefoonnummers heeft dan kunt u deze hier " +"invoeren." + +#: ../lib/modules/pykotaPrinter.inc:120 ../lib/modules/pykotaPrinter.inc:124 +msgid "" +"If this entry should be a printer group then you can set the member names " +"here." +msgstr "Als dit item een printer groep moet dan kunt u de leden hier stellen." + +#: ../lib/modules/qmailGroup.inc:229 +msgid "" +"If this is set to true then an incomming mail needs to be approved by the " +"sender." +msgstr "" +"Als dit is ingesteld op true dan moet een binnenkomende e-mail worden " +"goedgekeurd door de afzender." + +#: ../lib/modules/qmailGroup.inc:144 ../lib/modules/qmailGroup.inc:148 +msgid "" +"If you enter one or more email addresses then mail delivery errors are " +"forwarded to these addresses instead of the sender of the original mail." +msgstr "" +"Als u een of meer e-mailadressen invult dan worden postbezorging fouten " +"doorgestuurd naar deze adressen in plaats van de afzender van het " +"oorspronkelijke e-mail." + +#: ../lib/modules/sambaSamAccount.inc:332 +msgid "" +"If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" +"Als dit veld leeg blijft zal LAM de volgende waarde gebruiken: uid nummer*2 " +"+ samba algoritmeRIDBase" + +#: ../lib/modules/zarafaServer.inc:85 +msgid "" +"If you run Zarafa behind a reverse proxy then you can specify the server URL " +"here (e.g. \"https://zproxy.example.com:237/z1\")." +msgstr "" +"Als Zarafa zich achter een reverse proxy bevindt dan kun je de URL van de " +"server hier opgeven (bijv. \"https://zproxy.example.com:237/z1\")." + +#: ../lib/modules/passwordSelfReset.inc:141 +msgid "" +"If you select this option then the user is only authenticated by his email " +"address. LAM Pro will not ask for the answer to the security question. " +"Please handle with care." +msgstr "" +"Als u deze optie selecteert dan wordt de gebruiker alleen geverifieerd " +"middels zijn e-mailadres. LAM Pro zal niet vragen naar het antwoord op de " +"beveiligingsvraag. Zorg er goed voor." + +#: ../lib/modules/heimdalKerberos.inc:131 +msgid "If you set this option then the user cannot request TGT-based tickets." +msgstr "" +"Indien geselecteerd dat kan een gebruiker geen TGT-gebaseerde tickets " +"aanvragen." + +#: ../lib/modules/mitKerberos.inc:175 ../lib/modules/heimdalKerberos.inc:149 +msgid "If you set this option then the user cannot request any tickets." +msgstr "" +"Indien geselecteerd dat kan een gebruiker geen enkele ticket aanvragen." + +#: ../lib/modules/mitKerberos.inc:163 ../lib/modules/heimdalKerberos.inc:134 +msgid "" +"If you set this option then the user cannot request forwardable tickets." +msgstr "" +"Indien geselecteerd dat kan een gebruiker geen forwardable tickets aanvragen." + +#: ../lib/modules/mitKerberos.inc:160 ../lib/modules/heimdalKerberos.inc:143 +msgid "If you set this option then the user cannot request post-dated tickets." +msgstr "" +"Indien geselecteerd dat kan een gebruiker geen post-gedateerd tickets " +"aanvragen." + +#: ../lib/modules/mitKerberos.inc:169 ../lib/modules/heimdalKerberos.inc:137 +msgid "If you set this option then the user cannot request proxiable tickets." +msgstr "" +"Indien geselecteerd dat kan een gebruiker geen proxiable tickets aanvragen." + +#: ../lib/modules/mitKerberos.inc:166 ../lib/modules/heimdalKerberos.inc:140 +msgid "If you set this option then the user cannot request renewable tickets." +msgstr "" +"Indien geselecteerd dat kan een gebruiker geen hernieuwbare tickets " +"aanvragen." + +#: ../lib/modules/mitKerberos.inc:187 ../lib/modules/heimdalKerberos.inc:146 +msgid "If you set this option then the user cannot request service tickets." +msgstr "" +"Indien geselecteerd dat kan een gebruiker geen service tickets aanvragen." + +#: ../lib/modules/mitKerberos.inc:184 ../lib/modules/sambaSamAccount.inc:296 +#: ../lib/modules/windowsUser.inc:215 ../lib/modules/heimdalKerberos.inc:128 +#: ../help/help.inc:207 +msgid "" +"If you set this option then the user has to change his password at the next " +"login." +msgstr "" +"Als u deze optie selecteert dan zal de gebruiker zijn wachtwoord moeten " +"wijzigen bij de volgende login." + +#: ../lib/modules/mitKerberos.inc:181 +msgid "" +"If you set this option then the user must preauthenticate himself using a " +"hardware device." +msgstr "" +"Indien geselecteerd dat moet een gebruiker zich pre authenticeren met behulp " +"van een hardware-apparaat." + +#: ../lib/modules/mitKerberos.inc:178 ../lib/modules/heimdalKerberos.inc:152 +msgid "If you set this option then the user must preauthenticate himself." +msgstr "Indien geselecteerd dat moet een gebruiker zich pre authenticeren. " + +#: ../lib/modules/mitKerberos.inc:190 ../lib/modules/heimdalKerberos.inc:155 +msgid "" +"If you set this option then this account is marked as password change " +"service." +msgstr "" +"Indien geselecteerd dat is deze account gemarkeerd als password change " +"service." + +#: ../lib/modules/selfRegistration.inc:87 +msgid "" +"If you use the object class \"inetOrgPerson\" and do not provide the \"cn\" " +"attribute then LAM will set it to the user name value." +msgstr "" +"Indien u als object-klasse \"inetOrgPerson\" gebruikt en het \"cn\" " +"attribuut niet opgeeft dan zal LAM de gebruikers naam hiervoor gebruiken. " + +#: ../help/help.inc:106 +msgid "" +"If you want to change the current preferences password, please enter it here." +msgstr "" +"Als u het huidige preferentie wachtwoord wilt wijzigen, voer het dan hier in." + +#: ../help/help.inc:141 +msgid "" +"If you want to change your master configuration password, please enter it " +"here." +msgstr "" +"Als u het masterconfiguratie wachtwoord wilt wijzigen, voer het dan hier in." + +#: ../lib/modules/sambaGroupMapping.inc:151 +msgid "If you want to use a well known RID you can select a well known group." +msgstr "" +"Als u een bekende RID wilt gebruiken, kunt u een bekende groep selecteren." + +#: ../help/help.inc:116 +msgid "" +"If your server runs on another port then add a comma and the port number " +"after the server." +msgstr "" +"Indien uw server draait op een andere poort, voeg dan een komma en het " +"poortnummer toe na de server." + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:49 +msgid "Image not available" +msgstr "Plaatje niet beschikbaar" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:292 +#: ../templates/3rdParty/pla/htdocs/import.php:45 +#: ../templates/3rdParty/pla/htdocs/import_form.php:19 +msgid "Import" +msgstr "Import" + +#: ../templates/pdfedit/pdfmain.php:215 ../templates/pdfedit/pdfmain.php:216 +#: ../help/help.inc:210 +msgid "Import PDF structures" +msgstr "Importeer PDF structuren" + +#: ../templates/config/mainmanage.php:344 +msgid "Import from server" +msgstr "Importeer van server" + +#: ../templates/profedit/profilemain.php:203 +#: ../templates/profedit/profilemain.php:204 ../help/help.inc:192 +msgid "Import profiles" +msgstr "Import profielen" + +#: ../templates/pdfedit/pdfmain.php:109 +#: ../templates/profedit/profilemain.php:124 +msgid "Import successful" +msgstr "Importeren succesvol" + +#: ../templates/config/mainmanage.php:189 +msgid "Imported certificate from server." +msgstr "Geïmporteerd certificaat van de server." + +#: ../templates/config/mainmanage.php:346 +msgid "Imports the certificate directly from your LDAP server." +msgstr "Importeert het certificaat direct van uw LDAP-server." + +#: ../lib/modules/pykotaPrinter.inc:108 +msgid "" +"In passthrough mode, users are allowed to print without any impact on their " +"quota or account balance." +msgstr "" +"In passthrough-modus, zijn de gebruikers toegestaan ​​om af te drukken zonder " +"enige impact op hun quotum of saldo." + +#: ../lib/modules/fixed_ip.inc:115 +msgid "Inactive hosts will not be able to get an address from the DHCP server." +msgstr "" +"Inactieve machines zullen niet in staat zijn om een adres krijgen van de " +"DHCP-server." + +#: ../templates/3rdParty/pla/htdocs/export_form.php:87 +msgid "Include system attributes" +msgstr "Sluit systeem attributen in" + +#: ../lib/tools/serverInfo.inc:53 +msgid "Information about the LDAP server." +msgstr "Informatie over de LDAP-server." + +#: ../lib/modules/sambaSamAccount.inc:234 +#: ../lib/modules/sambaSamAccount.inc:361 +#: ../lib/modules/sambaSamAccount.inc:1518 +#: ../lib/modules/sambaSamAccount.inc:1930 +msgid "Inherit client startup configuration" +msgstr "Neem de client opstartconfiguratie over" + +#: ../templates/schema/schema.php:396 ../templates/schema/schema.php:417 +msgid "Inherited from" +msgstr "Geërfd van" + +#: ../templates/schema/schema.php:157 ../templates/schema/schema.php:353 +msgid "Inherits from" +msgstr "Erft van" + +#: ../lib/modules/pykotaUser.inc:249 +msgid "Initial payment" +msgstr "Eerste betaling" + +#: ../lib/modules/sambaSamAccount.inc:235 +#: ../lib/modules/sambaSamAccount.inc:364 +#: ../lib/modules/sambaSamAccount.inc:1520 +#: ../lib/modules/sambaSamAccount.inc:1931 +msgid "Initial program" +msgstr "Initiële programma" + +#: ../lib/modules/windowsUser.inc:132 ../lib/modules/windowsUser.inc:302 +#: ../lib/modules/windowsUser.inc:503 ../lib/modules/windowsUser.inc:704 +#: ../lib/modules/windowsUser.inc:1599 ../lib/modules/inetOrgPerson.inc:165 +#: ../lib/modules/inetOrgPerson.inc:175 ../lib/modules/inetOrgPerson.inc:324 +#: ../lib/modules/inetOrgPerson.inc:631 ../lib/modules/inetOrgPerson.inc:858 +#: ../lib/modules/inetOrgPerson.inc:1212 ../lib/modules/inetOrgPerson.inc:1215 +#: ../lib/modules/inetOrgPerson.inc:1951 ../lib/modules/inetOrgPerson.inc:2739 +#: ../lib/modules/inetOrgPerson.inc:3626 ../lib/modules/inetOrgPerson.inc:3659 +msgid "Initials" +msgstr "Initialen" + +#: ../templates/serverInfo.php:282 ../templates/serverInfo.php:368 +msgid "Initiated" +msgstr "Geïnitieerd" + +#: ../lib/modules/quota.inc:57 ../lib/modules/systemQuotas.inc:105 +msgid "Inode hard quota" +msgstr "Uiterste inode quotum" + +#: ../lib/modules/quota.inc:57 ../lib/modules/quota.inc:58 +#: ../lib/modules/systemQuotas.inc:105 ../lib/modules/systemQuotas.inc:106 +msgid "" +"Inode hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Uiterste inode quotum bevat ongeldige tekens; alleen getallen zijn " +"toegestaan." + +#: ../lib/modules/quota.inc:61 ../lib/modules/systemQuotas.inc:109 +msgid "Inode quota" +msgstr "Inode quotum" + +#: ../lib/modules/quota.inc:55 ../lib/modules/systemQuotas.inc:103 +msgid "Inode soft quota" +msgstr "Zachte inode quotum" + +#: ../lib/modules/quota.inc:55 ../lib/modules/quota.inc:56 +#: ../lib/modules/systemQuotas.inc:103 ../lib/modules/systemQuotas.inc:104 +msgid "" +"Inode soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Zachte inode quotum bevat ongeldig tekens; alleen getallen zijn toegestaan." + +#: ../lib/modules/quota.inc:61 ../lib/modules/quota.inc:62 +#: ../lib/modules/systemQuotas.inc:109 ../lib/modules/systemQuotas.inc:110 +msgid "Inode soft quota must be smaller than inode hard quota." +msgstr "Zachte inode quotum moet kleiner zijn dat de uiterste inode quotum." + +#: ../templates/selfService/adminMain.php:653 +msgid "Input fields" +msgstr "Invoervelden" + +#: ../lib/modules/asteriskAccount.inc:155 +#: ../lib/modules/asteriskAccount.inc:277 +#: ../lib/modules/asteriskAccount.inc:391 +#: ../lib/modules/asteriskAccount.inc:652 +#: ../lib/modules/asteriskAccount.inc:993 +#: ../lib/modules/asteriskAccount.inc:1255 +msgid "Insecure" +msgstr "Onveilig" + +#: ../lib/modules/sambaSamAccount.inc:95 +msgid "Inserted user or group name in home path." +msgstr "Ingevoegde gebruiker of groep naam in home pad." + +#: ../lib/modules/sambaSamAccount.inc:101 +msgid "Inserted user or group name in logon script." +msgstr "Ingevoegde gebruiker of groep in loginscript." + +#: ../lib/modules/sambaSamAccount.inc:98 +msgid "Inserted user or group name in profile path." +msgstr "Ingevoegde gebruiker of groep naam in profielpad." + +#: ../lib/modules/fixed_ip.inc:475 +msgid "Invalid MAC address." +msgstr "Ongeldig MAC adres." + +#: ../templates/massBuildAccounts.php:201 +msgid "Invalid RDN attribute!" +msgstr "Ongeldig RDN attribuut!" + +#: ../templates/3rdParty/pla/htdocs/rename.php:42 +msgid "Invalid RDN value" +msgstr "Ongeldig RDN waarde" + +#: ../lib/modules/fixed_ip.inc:484 +msgid "Invalid description." +msgstr "Ongeldige beschrijving." + +#: ../templates/3rdParty/pla/lib/import_functions.php:560 +msgid "Invalid entry" +msgstr "Ongeldig item" + +#: ../lib/modules/selfRegistration.inc:121 +msgid "Invalid format for the specification of additional attributes." +msgstr "Ongeldig formaat voor de specificatie van extra attributen." + +#: ../lib/modules/imapAccess.inc:185 +msgid "Invalid password for IMAP admin or other problem occured." +msgstr "Ongeldig wachtwoord voor IMAP admin of een ander probleem opgetreden." + +#: ../lib/modules/ldapPublicKey.inc:546 ../lib/modules/inetOrgPerson.inc:3354 +#: ../lib/modules/customFields.inc:1403 +msgid "Invalid request" +msgstr "Ongeldig verzoek" + +#: ../templates/config/mainmanage.php:198 +msgid "Invalid server name. Please enter \"server\" or \"server:port\"." +msgstr "Ongeldige servernaam. Gebruik \"server\" of \"server:port\"." + +#: ../lib/modules/passwordSelfReset.inc:914 +#: ../lib/modules/passwordSelfReset.inc:1136 +#, php-format +msgid "Invalid value in field \"%s\"." +msgstr "Ongeldige waarde in het veld \"%s\"." + +#: ../lib/modules/kolabUser.inc:117 ../lib/modules/kolabUser.inc:124 +#: ../lib/modules/kolabUser.inc:186 ../lib/modules/kolabUser.inc:230 +#: ../lib/modules/kolabUser.inc:315 ../lib/modules/kolabUser.inc:756 +#: ../lib/modules/kolabUser.inc:885 +msgid "Invitation policy" +msgstr "Invitatiebeleid" + +#: ../lib/modules/kolabUser.inc:128 +msgid "Invitation policy list" +msgstr "Lijst van invitatiebeleid" + +#: ../lib/modules/sambaSamAccount.inc:570 +msgid "Islamabad, Karachi" +msgstr "Islamabad, Karachi" + +#: ../lib/modules/range.inc:137 +msgid "It is not possible to delete all ranges." +msgstr "Het is niet mogelijk om alle reeksen te verwijderen." + +#: ../lib/modules/posixGroup.inc:595 ../lib/modules/posixAccount.inc:105 +msgid "" +"It is possible that this ID-number is reused. This can cause several " +"problems because files with old permissions might still exist. To avoid this " +"warning set maxUID to a higher value." +msgstr "" +"Het is mogelijk dat dit ID-nummer wordt hergebruikt. Dit kan verschillende " +"problemen veroorzaken omdat bestanden met oude permissies nog kunnen " +"bestaan. Om dit te voorkomen kunt u de maxUID een hogere waarde geven." + +#: ../lib/modules/pykotaUser.inc:284 ../lib/modules/pykotaUser.inc:387 +#: ../lib/modules/pykotaUser.inc:1021 +msgid "Job history" +msgstr "Taakgeschiedenis" + +#: ../lib/modules/pykotaUser.inc:156 ../lib/modules/pykotaUser.inc:289 +#: ../lib/modules/pykotaUser.inc:295 ../lib/modules/pykotaUser.inc:327 +msgid "Job suffix" +msgstr "Taak suffix" + +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:165 +#: ../lib/modules/inetOrgPerson.inc:229 ../lib/modules/inetOrgPerson.inc:340 +#: ../lib/modules/inetOrgPerson.inc:604 ../lib/modules/inetOrgPerson.inc:650 +#: ../lib/modules/inetOrgPerson.inc:654 ../lib/modules/inetOrgPerson.inc:1471 +#: ../lib/modules/inetOrgPerson.inc:1474 ../lib/modules/inetOrgPerson.inc:1924 +#: ../lib/modules/inetOrgPerson.inc:2750 ../lib/modules/inetOrgPerson.inc:3608 +#: ../lib/modules/inetOrgPerson.inc:3654 +msgid "Job title" +msgstr "Functieomschrijving" + +#: ../lib/modules/inetOrgPerson.inc:651 ../lib/modules/inetOrgPerson.inc:655 +msgid "Job title of user: President, department manager, ..." +msgstr "Functieomschrijving van de gebruiker: directeur, bedrijfleider, ...." + +#: ../lib/lists.inc:297 +msgid "Jump 10 pages backward" +msgstr "Spring 10 pagina's terug" + +#: ../lib/lists.inc:317 +msgid "Jump 10 pages forward" +msgstr "Spring 10 pagina's vooruit" + +#: ../templates/schema/schema.php:255 +msgid "Jump to a matching rule" +msgstr "Verspring naar een correspondentie regel" + +#: ../templates/schema/schema.php:114 +msgid "Jump to an attribute type" +msgstr "Verspring naar een attribuut type" + +#: ../templates/schema/schema.php:308 ../templates/schema/schema.php:358 +#: ../templates/schema/schema.php:373 +msgid "Jump to an object class" +msgstr "Verspring naar een object klasse" + +#: ../lib/lists.inc:292 +msgid "Jump to first page" +msgstr "Spring naar eerste pagina" + +#: ../lib/lists.inc:322 +msgid "Jump to last page" +msgstr "Spring naar laatste pagina" + +#: ../lib/modules/mitKerberos.inc:94 ../lib/modules/heimdalKerberos.inc:81 +msgid "Kerberos" +msgstr "Kerberos" + +#: ../lib/modules/kolabGroup.inc:74 ../lib/modules/kolabUser.inc:80 +msgid "Kolab" +msgstr "Kolab" + +#: ../lib/modules/kolabSharedFolder.inc:82 +msgid "Kolab shared folder" +msgstr "Kolab gedeelde map" + +#: ../lib/types/kolabSharedFolderType.inc:53 +msgid "Kolab shared folders" +msgstr "Kolab gedeelde mappen" + +#: ../lib/types/kolabSharedFolderType.inc:62 +msgid "Kolab shared folders (e.g. mail folders)" +msgstr "Kolab gedeelde mappen (bijv. e-mailmappen)" + +#: ../lib/modules/posixGroup.inc:517 +msgid "" +"LAM checks if the entered group name and GID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique group names or " +"GIDs." +msgstr "" +"LAM controleert of de ingevoerde groepsnaam en het GID uniek zijn. Hier kunt " +"u de LDAP-suffix invoeren die wordt gebruikt om te zoeken naar duplicaten. " +"Standaard wordt de accounttype suffix gebruikt. U hoeft alleen maar om dit " +"te veranderen als u meerdere servers profielen met verschillende organisatie-" +"eenheden heeft en unieke groepsnamen of GID's nodig heeft." + +#: ../lib/modules/posixAccount.inc:490 +msgid "" +"LAM checks if the entered user name and UID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique user names or " +"UIDs." +msgstr "" +"LAM controleert of de ingevoerde gebruikersnaam en het UID uniek zijn. Hier " +"kunt u de LDAP-suffix invoeren die wordt gebruikt om te zoeken naar " +"duplicaten. Standaard wordt de accounttype suffix gebruikt. U hoeft alleen " +"maar om dit te veranderen als u meerdere servers profielen met verschillende " +"organisatie-eenheden heeft en unieke gebruikersnamen of UID's nodig heeft." + +#: ../templates/login.php:265 ../templates/config/index.php:85 +msgid "LAM configuration" +msgstr "LAM configuratie" + +#: ../templates/massBuildAccounts.php:239 +msgid "LAM has checked your input and is now ready to create the accounts." +msgstr "" +"LAM heeft uw invoer gecontroleerd en is nu klaar om de accounts te maken." + +#: ../lib/modules/posixGroup.inc:505 ../lib/modules/posixAccount.inc:458 +#: ../lib/modules/inetOrgPerson.inc:835 ../lib/modules/customFields.inc:137 +msgid "" +"LAM supports CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 and SMD5 to generate the " +"hash value of passwords. SSHA and CRYPT are the most common but CRYPT does " +"not support passwords greater than 8 letters. We do not recommend to use " +"plain text passwords." +msgstr "" +"LAM ondersteunt CRYPT, CRYPT-SHA512 , SHA, SSHA, MD5 en SMD5 om de hash " +"waarde van wachtwoorden te genereren. SSHA en CRYPT zijn de meeste gebruikte " +"maar CRYPT ondersteunt geen wachtwoorden langer dan 8 letters. Wij raden " +"het gebruik van niet versleutelde wachtwoorden af." + +#: ../templates/tests/index.php:50 +msgid "LAM tests" +msgstr "LAM testen" + +#: ../lib/modules/imapAccess.inc:128 +msgid "LAM user password" +msgstr "LAM gebruikerswachtwoord" + +#: ../templates/massDoUpload.php:132 +#, php-format +msgid "LAM was unable to create account %s! An LDAP error occured." +msgstr "LAM kan geen account %s maken! Een LDAP fout is opgetreden." + +#: ../lib/modules/sambaGroupMapping.inc:603 +msgid "LAM was unable to find a Samba 3 domain with this name!" +msgstr "LAM heeft geen Samba 3 domein gevonden met deze naam!" + +#: ../lib/modules/sambaSamAccount.inc:118 +msgid "LAM was unable to find a domain with this name!" +msgstr "LAM heeft geen domein gevonden met deze naam!" + +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/windowsUser.inc:1457 +msgid "LAM was unable to find a group with this name!" +msgstr "Lam heeft geen groep gevonden met deze naam!" + +#: ../lib/modules/posixAccount.inc:2336 ../lib/modules/posixAccount.inc:2397 +#: ../lib/modules/windowsUser.inc:1543 ../lib/modules/groupOfNamesUser.inc:455 +#, php-format +msgid "LAM was unable to modify group memberships for group: %s" +msgstr "Lam was niet in staat de groepsleden te veranderen voor groep: %s" + +#: ../lib/modules/organizationalRoleUser.inc:397 +#, php-format +msgid "LAM was unable to modify memberships for role: %s" +msgstr "LAM kon lidmaatschappen voor rol: %s niet wijzigen." + +#: ../lib/modules/posixGroup.inc:521 ../lib/modules/posixAccount.inc:498 +msgid "" +"LAM will automatically suggest UID/GID numbers. You can either use a fixed " +"range of numbers or an LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "" +"LAM stelt automatisch UID / GID nummers voor. U kunt gebruik maken van een " +"vaste reeks nummers of een LDAP-vermelding met objectklasse " +"\"sambaUnixIdPool\"." + +#: ../help/help.inc:219 +msgid "LAM will search for accounts in this part of the LDAP tree." +msgstr "LAM gaat op zoek naar accounts in dit deel van de LDAP-boom." + +#: ../lib/modules/posixAccount.inc:437 +msgid "" +"LAM will suggest a user name based on e.g. first and last name. Here you can " +"specify the suggestion. %sn% will be replaced by the last name. @givenname@ " +"will be replaced by the first character of first name. Only attributes of " +"tab Personal may be used." +msgstr "" +"LAM zal een gebruikersnaam suggereren op basis van bijvoorbeeld voor-en " +"achternaam. Hier kunt u de suggestie opgeven. %sn% zal worden vervangen door " +"de achternaam. @givenname@ zal worden vervangen door de eerste letter van de " +"voornaam. Alleen attributen van de Personal tab kunnen worden gebruikt." + +#: ../help/help.inc:221 +msgid "" +"LAM will use this LDAP DN and password to search for accounts. It is " +"sufficient to specify an account with read rights. If nothing is inserted " +"then LAM will try to connect anonymously." +msgstr "" +"LAM zal gebruik maken van dit LDAP-DN en wachtwoord om te zoeken naar " +"accounts. Het is voldoende om een ​​account te geven met lees-rechten. Als er " +"niets wordt ingevoegd dan zal LAM proberen om anoniem te verbinden." + +#: ../lib/modules/qmailUser.inc:57 +msgid "LDAP + program" +msgstr "LDAP + programma" + +#: ../templates/config/confmodules.php:97 ../templates/config/confmain.php:127 +#: ../templates/config/moduleSettings.php:96 +#: ../templates/config/conftypes.php:115 +msgid "LDAP Account Manager Configuration" +msgstr "LDAP account manager configuratie" + +#: ../templates/multiEdit.php:198 ../templates/config/conftypes.php:407 +msgid "LDAP Suffix is invalid!" +msgstr "LDAP achtervoegsel is ongeldig!" + +#: ../templates/serverInfo.php:182 +msgid "LDAP entries" +msgstr "LDAP items" + +#: ../lib/modules/qmailGroup.inc:173 ../lib/modules/qmailGroup.inc:177 +msgid "LDAP entries that are allowed to send to this list." +msgstr "LDAP-items die mogen sturen naar deze lijst." + +#: ../lib/modules/qmailGroup.inc:157 ../lib/modules/qmailGroup.inc:161 +msgid "LDAP entries that are member of this list." +msgstr "LDAP-items die lid zijn van deze lijst." + +#: ../lib/modules/qmailGroup.inc:165 ../lib/modules/qmailGroup.inc:169 +msgid "LDAP entries that moderate this list (e.g. approve mails)." +msgstr "LDAP-items die deze lijst moderaten (bijv. mails goedkeuren)." + +#: ../templates/login.php:642 ../lib/account.inc:1204 +msgid "LDAP error, server says:" +msgstr "LDAP fout, server meldt:" + +#: ../templates/multiEdit.php:115 ../templates/config/confmain.php:438 +#: ../help/help.inc:271 +msgid "LDAP filter" +msgstr "LDAP filter" + +#: ../lib/modules/qmailGroup.inc:189 ../lib/modules/qmailGroup.inc:193 +msgid "" +"LDAP filter to specify allowed senders of this list (e.g. " +"\"((objectclass=qmailUser)(employeeType=manager))\")." +msgstr "" +"LDAP-filter om toegestane afzenders van deze lijst te specificeren " +"(bijvoorbeeld \"((objectclass=qmailUser)(employeeType=manager))\")." + +#: ../lib/modules/qmailGroup.inc:181 ../lib/modules/qmailGroup.inc:185 +msgid "" +"LDAP filter to specify members of this list (e.g. \"((objectclass=qmailUser)" +"(employeeType=accountant))\")." +msgstr "" +"LDAP-filter om leden van deze lijst te specificeren (bijvoorbeeld " +"\"((objectclass=qmailUser)(employeeType=accountant))\")." + +#: ../lib/modules.inc:1336 +msgid "LDAP operation successful." +msgstr "LDAP operatie is succesvol." + +#: ../templates/selfService/adminMain.php:432 +msgid "LDAP password" +msgstr "LDAP wachtwoord" + +#: ../templates/3rdParty/pla/lib/functions.php:1894 +msgid "LDAP said" +msgstr "LDAP zei" + +#: ../templates/config/confmain.php:415 ../help/help.inc:122 +msgid "LDAP search" +msgstr "LDAP-zoekopdracht" + +#: ../templates/selfService/adminMain.php:427 ../help/help.inc:222 +msgid "LDAP search attribute" +msgstr "LDAP-zoekopdracht attribuut" + +#: ../lib/account.inc:796 +msgid "LDAP search failed! Please check your preferences." +msgstr "LDAP zoekopdracht is mislukt! Controleert u a.u.b uw instellingen." + +#: ../templates/config/confmain.php:253 ../help/help.inc:124 +msgid "LDAP search limit" +msgstr "LDAP zoek limiet" + +#: ../templates/login.php:460 +msgid "LDAP server" +msgstr "LDAP server" + +#: ../lib/account.inc:787 +msgid "LDAP sizelimit exceeded, not all entries are shown." +msgstr "" +"Limiet aantal entrees dat getoond kan worden is overschreven; niet alle " +"gegevens worden getoond." + +#: ../templates/multiEdit.php:82 ../templates/config/confmain.php:434 +#: ../templates/config/conftypes.php:253 +#: ../templates/selfService/adminMain.php:421 +#: ../templates/profedit/profilepage.php:202 ../help/help.inc:71 +#: ../help/help.inc:218 ../help/help.inc:269 +msgid "LDAP suffix" +msgstr "LDAP achtervoegsel" + +#: ../templates/massDoUpload.php:86 +msgid "LDAP upload in progress. Please wait." +msgstr "LDAP upload is bezig. S.v.p. wachten." + +#: ../templates/selfService/adminMain.php:429 +msgid "LDAP user" +msgstr "LDAP gebruiker" + +#: ../help/help.inc:220 +msgid "LDAP user and password" +msgstr "LDAP-gebruiker en wachtwoord" + +#: ../templates/serverInfo.php:109 +msgid "LDAP version" +msgstr "LDAP versie" + +#: ../templates/3rdParty/pla/lib/export_functions.php:442 +msgid "LDIF Export" +msgstr "LDIF Export" + +#: ../templates/multiEdit.php:443 +msgid "LDIF file" +msgstr "LDIF bestand" + +#: ../templates/3rdParty/pla/lib/import_functions.php:149 +#: ../templates/3rdParty/pla/htdocs/import.php:71 +msgid "LDIF import" +msgstr "LDIF import" + +#: ../templates/3rdParty/pla/lib/import_functions.php:170 +msgid "LDIF import only supports version 1" +msgstr "LDIF import ondersteunt alleen versie 1" + +#: ../lib/modules/customFields.inc:88 ../lib/modules/customFields.inc:513 +#: ../lib/modules/customFields.inc:1051 ../lib/modules/customFields.inc:1705 +#: ../lib/modules/customFields.inc:2960 +msgid "Label" +msgstr "Label" + +#: ../templates/tests/lamdaemonTest.php:201 +msgid "" +"Lamdaemon path does not end with \".pl\". Did you enter the full path to the " +"script?" +msgstr "" +"Lamdaemon pad eindigt niet met \".pl\". Hebt u het volledige pad naar het " +"script ingevoerd?" + +#: ../templates/tests/lamdaemonTest.php:185 +msgid "Lamdaemon server and path" +msgstr "Lamdaemon server en pad" + +#: ../templates/config/confmain.php:334 +msgid "Lamdaemon settings" +msgstr "Lamdaemon instellingen" + +#: ../templates/tests/lamdaemonTest.php:135 +msgid "Lamdaemon successfully run." +msgstr "Lamdaemon met succes uitgevoerd." + +#: ../templates/tests/index.php:52 ../templates/tests/lamdaemonTest.php:52 +#: ../lib/tools/tests.inc:110 +msgid "Lamdaemon test" +msgstr "Lamdaemon test" + +#: ../templates/tests/lamdaemonTest.php:291 +msgid "Lamdaemon test finished." +msgstr "Lamdaemon test klaar." + +#: ../templates/tests/lamdaemonTest.php:273 +msgid "Lamdaemon version" +msgstr "Lamdaemon versie" + +#: ../templates/tests/lamdaemonTest.php:283 +msgid "Lamdaemon: Quota module installed" +msgstr "Lamdaemon: Quota module geïnstalleerd" + +#: ../templates/tests/lamdaemonTest.php:279 +msgid "Lamdaemon: check NSS LDAP" +msgstr "Lamdaemon: check NSS LDAP" + +#: ../templates/tests/lamdaemonTest.php:286 +msgid "Lamdaemon: read quotas" +msgstr "Lamdaemon: lees quotas" + +#: ../templates/login.php:397 +#: ../templates/selfService/selfServiceLogin.php:344 +msgid "Language" +msgstr "Taal" + +#: ../templates/config/confmain.php:570 +msgid "Language is not defined!" +msgstr "Taal is niet gedefinieerd!" + +#: ../templates/config/confmain.php:304 +msgid "Language settings" +msgstr "Taal instellingen" + +#: ../lib/modules/mitKerberos.inc:144 ../lib/modules/mitKerberos.inc:256 +#: ../lib/modules/mitKerberos.inc:404 ../lib/modules/mitKerberos.inc:791 +msgid "Last login" +msgstr "Laatste login" + +#: ../lib/types/user.inc:97 ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:219 ../lib/modules/windowsUser.inc:164 +#: ../lib/modules/windowsUser.inc:284 ../lib/modules/windowsUser.inc:511 +#: ../lib/modules/windowsUser.inc:599 ../lib/modules/windowsUser.inc:701 +#: ../lib/modules/windowsUser.inc:1607 ../lib/modules/inetOrgPerson.inc:68 +#: ../lib/modules/inetOrgPerson.inc:159 ../lib/modules/inetOrgPerson.inc:315 +#: ../lib/modules/inetOrgPerson.inc:550 ../lib/modules/inetOrgPerson.inc:662 +#: ../lib/modules/inetOrgPerson.inc:1203 ../lib/modules/inetOrgPerson.inc:1206 +#: ../lib/modules/inetOrgPerson.inc:1926 ../lib/modules/inetOrgPerson.inc:2492 +#: ../lib/modules/inetOrgPerson.inc:3646 +msgid "Last name" +msgstr "Achternaam" + +#: ../lib/modules/windowsUser.inc:599 ../lib/modules/windowsUser.inc:600 +#: ../lib/modules/inetOrgPerson.inc:68 ../lib/modules/inetOrgPerson.inc:69 +msgid "Last name contains invalid characters or is empty!" +msgstr "Achternaam bevat ongeldige tekens of is leeg!" + +#: ../lib/modules/windowsUser.inc:165 ../lib/modules/inetOrgPerson.inc:663 +msgid "Last name of user. Only letters, - and spaces are allowed." +msgstr "" +"Achternaam van gebruiker. Alleen letters, - en spaties zijn toegestaan." + +#: ../lib/modules/mitKerberos.inc:140 ../lib/modules/mitKerberos.inc:255 +#: ../lib/modules/mitKerberos.inc:396 ../lib/modules/mitKerberos.inc:787 +#: ../lib/modules/sambaSamAccount.inc:397 +#: ../lib/modules/sambaSamAccount.inc:603 +#: ../lib/modules/sambaSamAccount.inc:1167 +#: ../lib/modules/sambaSamAccount.inc:2289 ../lib/modules/ppolicyUser.inc:87 +#: ../lib/modules/ppolicyUser.inc:136 ../lib/modules/ppolicyUser.inc:395 +#: ../lib/modules/shadowAccount.inc:167 ../lib/modules/shadowAccount.inc:201 +#: ../lib/modules/shadowAccount.inc:365 ../lib/modules/shadowAccount.inc:498 +#: ../lib/modules/shadowAccount.inc:668 +msgid "Last password change" +msgstr "Laatste wachtwoord verandering" + +#: ../lib/modules/sambaSamAccount.inc:252 ../lib/modules/shadowAccount.inc:239 +msgid "Last password change (read-only)" +msgstr "Laatste wachtwoord verandering (read-only)" + +#: ../lib/modules/asteriskAccount.inc:239 +#: ../lib/modules/asteriskAccount.inc:298 +#: ../lib/modules/asteriskAccount.inc:544 +#: ../lib/modules/asteriskAccount.inc:758 +#: ../lib/modules/asteriskAccount.inc:1014 +#: ../lib/modules/asteriskAccount.inc:1297 +msgid "Last qualify milliseconds" +msgstr "Laatste qualify milliseconden" + +#: ../lib/modules/dhcp_settings.inc:153 ../lib/modules/dhcp_settings.inc:209 +#: ../lib/modules/dhcp_settings.inc:224 ../lib/modules/dhcp_settings.inc:256 +#: ../lib/modules/dhcp_settings.inc:569 ../lib/modules/dhcp_settings.inc:675 +msgid "Lease time" +msgstr "Leasetijd" + +#: ../lib/modules/pykotaGroup.inc:125 ../lib/modules/pykotaGroup.inc:135 +#: ../lib/modules/pykotaGroup.inc:173 ../lib/modules/pykotaGroup.inc:182 +#: ../lib/modules/pykotaGroup.inc:227 ../lib/modules/pykotaGroup.inc:474 +#: ../lib/modules/pykotaUser.inc:128 ../lib/modules/pykotaUser.inc:166 +#: ../lib/modules/pykotaUser.inc:233 ../lib/modules/pykotaUser.inc:261 +#: ../lib/modules/pykotaUser.inc:397 ../lib/modules/pykotaUser.inc:898 +msgid "Limit type" +msgstr "Limiteer type" + +#: ../templates/3rdParty/pla/htdocs/import.php:102 +msgid "Line" +msgstr "Regel" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:121 +msgid "Line ends" +msgstr "Regel eindigt" + +#: ../lib/modules/selfRegistration.inc:57 +#: ../lib/modules/selfRegistration.inc:197 +#: ../lib/modules/passwordSelfReset.inc:100 +#: ../lib/modules/passwordSelfReset.inc:516 +msgid "Link text" +msgstr "Link tekst" + +#: ../templates/selfService/adminMain.php:362 +msgid "Link to self service login page for your users" +msgstr "Link naar zelf service login pagina voor uw gebruikers" + +#: ../templates/config/conftypes.php:264 ../help/help.inc:87 +msgid "List attributes" +msgstr "Lijstattributen" + +#: ../templates/config/conftypes.php:415 +msgid "List attributes are invalid!" +msgstr "Ljstattributen lijst zijn ongeldig!" + +#: ../lib/types/zarafaAddressListType.inc:91 +#: ../lib/modules/zarafaAddressList.inc:63 +#: ../lib/modules/zarafaAddressList.inc:104 +#: ../lib/modules/zarafaAddressList.inc:141 +#: ../lib/modules/zarafaAddressList.inc:168 +#: ../lib/modules/zarafaAddressList.inc:187 +#: ../lib/modules/zarafaAddressList.inc:331 +msgid "List name" +msgstr "Lijstnaam" + +#: ../lib/modules/zarafaAddressList.inc:168 +msgid "List name already in use." +msgstr "Lijstnaam wordt al gebruikt" + +#: ../lib/modules/sambaSamAccount.inc:316 +msgid "" +"List of Samba workstations the user is allowed to login. Empty means every " +"workstation." +msgstr "" +"Lijst van Samba werkstations waarop gebruiker mag inloggen. Leeg betekent op " +"elke werkstation." + +#: ../templates/config/confmain.php:564 +msgid "List of admin users is empty or invalid!" +msgstr "Lijst van beheerders is leeg of ongeldig!" + +#: ../lib/modules/asteriskAccount.inc:204 +msgid "List of allowed codecs." +msgstr "Lijst van toegestane codecs." + +#: ../lib/modules/asteriskAccount.inc:200 +msgid "List of disallowed codecs." +msgstr "Lijst van niet toegestaan ​​codecs." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:94 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:88 +msgid "List of entries to be deleted:" +msgstr "Lijst met entrees die verwijderd gaan worden:" + +#: ../templates/config/confmain.php:430 +msgid "List of valid users" +msgstr "Lijst van geldige gebruikers" + +#: ../templates/serverInfo.php:152 +msgid "Listeners" +msgstr "Luisteraars" + +#: ../lib/modules.inc:1241 ../help/help.inc:198 +msgid "Load profile" +msgstr "Load profiel" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:279 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1226 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +msgid "Loading" +msgstr "Laden" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:303 +msgid "Loading export" +msgstr "Laden export" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:290 +msgid "Loading import" +msgstr "Laden import" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:497 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:233 +msgid "Loading search" +msgstr "Laden zoeken" + +#: ../lib/modules/inetLocalMailRecipient.inc:72 +#: ../lib/modules/inetLocalMailRecipient.inc:154 +msgid "Local address" +msgstr "Lokaal adres" + +#: ../lib/modules/inetLocalMailRecipient.inc:76 +#: ../lib/modules/inetLocalMailRecipient.inc:106 +#: ../lib/modules/inetLocalMailRecipient.inc:120 +#: ../lib/modules/inetLocalMailRecipient.inc:293 +msgid "Local address list" +msgstr "Lokaal adreslijst" + +#: ../lib/modules/sambaGroupMapping.inc:72 +msgid "Local group" +msgstr "Lokale groep" + +#: ../lib/modules/sambaGroupMapping.inc:115 +#: ../lib/modules/sambaGroupMapping.inc:166 +#: ../lib/modules/sambaGroupMapping.inc:388 +#: ../lib/modules/sambaGroupMapping.inc:555 +msgid "Local members" +msgstr "Lokale leden" + +#: ../lib/types/host.inc:97 ../lib/modules/ipHost.inc:73 +#: ../lib/modules/ipHost.inc:91 ../lib/modules/ipHost.inc:105 +#: ../lib/modules/ipHost.inc:130 ../lib/modules/ipHost.inc:252 +#: ../lib/modules/windowsHost.inc:82 ../lib/modules/windowsHost.inc:106 +#: ../lib/modules/windowsHost.inc:121 ../lib/modules/windowsHost.inc:144 +#: ../lib/modules/windowsHost.inc:290 ../lib/modules/device.inc:77 +#: ../lib/modules/device.inc:109 ../lib/modules/device.inc:129 +#: ../lib/modules/device.inc:178 ../lib/modules/device.inc:419 +#: ../lib/modules/windowsUser.inc:136 ../lib/modules/windowsUser.inc:332 +#: ../lib/modules/windowsUser.inc:504 ../lib/modules/windowsUser.inc:546 +#: ../lib/modules/windowsUser.inc:711 ../lib/modules/windowsUser.inc:1600 +#: ../lib/modules/windowsUser.inc:1742 ../lib/modules/inetOrgPerson.inc:164 +#: ../lib/modules/inetOrgPerson.inc:190 ../lib/modules/inetOrgPerson.inc:518 +#: ../lib/modules/inetOrgPerson.inc:565 ../lib/modules/inetOrgPerson.inc:794 +#: ../lib/modules/inetOrgPerson.inc:798 ../lib/modules/inetOrgPerson.inc:1277 +#: ../lib/modules/inetOrgPerson.inc:1280 ../lib/modules/inetOrgPerson.inc:1947 +#: ../lib/modules/inetOrgPerson.inc:2646 ../lib/modules/inetOrgPerson.inc:3584 +#: ../lib/modules/inetOrgPerson.inc:3648 +msgid "Location" +msgstr "Plaats" + +#: ../lib/modules/nisMailAliasUser.inc:93 +msgid "Location where new alias is stored." +msgstr "Locatie waar de nieuwe alias wordt opgeslagen." + +#: ../lib/types/user.inc:349 ../lib/types/user.inc:354 +msgid "Lock" +msgstr "Vergrendel" + +#: ../templates/lists/changePassword.php:435 +#: ../templates/lists/changePassword.php:455 +#: ../templates/lists/changePassword.php:457 +#: ../lib/modules/ppolicyUser.inc:150 +msgid "Lock account" +msgstr "Vergrendel account" + +#: ../templates/lists/changePassword.php:271 +msgid "Lock account?" +msgstr "Vergrendel account?" + +#: ../lib/modules/posixGroup.inc:208 ../lib/modules/posixAccount.inc:338 +#: ../lib/modules/posixAccount.inc:1499 ../lib/modules/inetOrgPerson.inc:1592 +msgid "Lock password" +msgstr "Blokkeer wachtwoord" + +#: ../lib/types/ppolicyType.inc:83 ../lib/modules/ppolicy.inc:104 +#: ../lib/modules/ppolicy.inc:151 ../lib/modules/ppolicy.inc:171 +#: ../lib/modules/ppolicy.inc:264 ../lib/modules/ppolicy.inc:476 +#: ../lib/modules/sambaDomain.inc:133 ../lib/modules/sambaDomain.inc:198 +#: ../lib/modules/sambaDomain.inc:223 ../lib/modules/sambaDomain.inc:340 +#: ../lib/modules/sambaDomain.inc:610 +msgid "Lockout duration" +msgstr "Vergrendel duur" + +#: ../lib/modules/sambaDomain.inc:223 +msgid "Lockout duration must be are natural number." +msgstr "Vergrendel duur moet een natuurlijk getal zijn." + +#: ../lib/modules/ppolicyUser.inc:142 +msgid "Lockout time" +msgstr "Vergrendel tijd" + +#: ../lib/types/ppolicyType.inc:88 ../lib/modules/ppolicy.inc:124 +#: ../lib/modules/ppolicy.inc:150 ../lib/modules/ppolicy.inc:258 +#: ../lib/modules/ppolicy.inc:495 +msgid "Lockout users" +msgstr "Vergrendel gebruikers" + +#: ../lib/modules/sambaDomain.inc:121 ../lib/modules/sambaDomain.inc:195 +#: ../lib/modules/sambaDomain.inc:225 ../lib/modules/sambaDomain.inc:316 +#: ../lib/modules/sambaDomain.inc:607 +msgid "Lockout users after bad logon attempts" +msgstr "Vergrendel gebruikers na mislukte aanmeldingspogingen" + +#: ../lib/modules/sambaDomain.inc:225 +msgid "Lockout users after bad logon attempts must be between 0 and 999." +msgstr "" +"Vergrendel gebruikers na mislukte aanmeldingspogingen moet een getal tussen " +"0 en 999 zijn." + +#: ../templates/config/mainmanage.php:423 ../help/help.inc:150 +msgid "Log destination" +msgstr "Log bestemming" + +#: ../templates/config/mainmanage.php:409 ../help/help.inc:148 +msgid "Log level" +msgstr "Logniveau" + +#: ../templates/multiEdit.php:448 +msgid "Log output" +msgstr "Log output" + +#: ../templates/main_header.php:128 +#, php-format +msgid "Logged in as: %s" +msgstr "Ingelogd als: %s" + +#: ../templates/config/mainmanage.php:406 +msgid "Logging" +msgstr "Logging" + +#: ../templates/login.php:433 ../templates/config/conflogin.php:62 +#: ../templates/config/mainlogin.php:72 +#: ../templates/selfService/selfServiceLogin.php:227 +#: ../templates/selfService/selfServiceLogin.php:366 +#: ../templates/selfService/adminLogin.php:64 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:530 ../help/help.inc:56 +msgid "Login" +msgstr "Login" + +#: ../templates/selfService/adminMain.php:468 ../help/help.inc:224 +msgid "Login attribute label" +msgstr "Login attribuut label" + +#: ../templates/selfService/adminMain.php:477 ../help/help.inc:226 +msgid "Login caption" +msgstr "Login bijschrift" + +#: ../templates/config/confmain.php:417 ../help/help.inc:120 +msgid "Login method" +msgstr "Login methode" + +#: ../lib/types/user.inc:99 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:324 ../lib/modules/posixAccount.inc:417 +#: ../lib/modules/posixAccount.inc:530 ../lib/modules/posixAccount.inc:1492 +#: ../lib/modules/posixAccount.inc:1757 ../lib/modules/posixAccount.inc:1860 +#: ../lib/modules/posixAccount.inc:2570 +msgid "Login shell" +msgstr "Login shell" + +#: ../lib/modules/posixAccount.inc:193 ../lib/modules/posixAccount.inc:248 +#: ../lib/modules/posixAccount.inc:493 +msgid "Login shells" +msgstr "Login shells" + +#: ../templates/pdfedit/pdfpage.php:453 +msgid "Logo" +msgstr "Logo" + +#: ../lib/pdfstruct.inc:300 +msgid "Logo file deleted." +msgstr "Logo bestand verwijderd.." + +#: ../lib/pdfstruct.inc:292 +#, php-format +msgid "Logo is still in use by PDF structure \"%s\" in account type \"%s\"." +msgstr "" +"Logo is nog steeds in gebruik door PDF structuur \"%s\" in account type \"%s" +"\"." + +#: ../lib/modules/sambaDomain.inc:109 ../lib/modules/sambaDomain.inc:192 +#: ../lib/modules/sambaDomain.inc:290 ../lib/modules/sambaDomain.inc:616 +msgid "Logon for password change" +msgstr "Aanmelden voor het wachtwoord wijzigen" + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:340 +#: ../lib/modules/sambaSamAccount.inc:343 +#: ../lib/modules/sambaSamAccount.inc:527 +#: ../lib/modules/sambaSamAccount.inc:607 +#: ../lib/modules/sambaSamAccount.inc:1289 +#: ../lib/modules/sambaSamAccount.inc:1793 +msgid "Logon hours" +msgstr "Logonuren" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:224 +#: ../lib/modules/sambaSamAccount.inc:312 +#: ../lib/modules/sambaSamAccount.inc:511 +#: ../lib/modules/sambaSamAccount.inc:601 +#: ../lib/modules/sambaSamAccount.inc:1242 +#: ../lib/modules/sambaSamAccount.inc:1769 +#: ../lib/modules/sambaSamAccount.inc:1909 ../lib/modules/windowsUser.inc:209 +#: ../lib/modules/windowsUser.inc:424 ../lib/modules/windowsUser.inc:477 +#: ../lib/modules/windowsUser.inc:521 ../lib/modules/windowsUser.inc:613 +#: ../lib/modules/windowsUser.inc:756 ../lib/modules/windowsUser.inc:1636 +msgid "Logon script" +msgstr "Logonscript" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:102 ../lib/modules/windowsUser.inc:613 +#: ../lib/modules/windowsUser.inc:614 +msgid "Logon script is invalid!" +msgstr "Logonscript is ongeldig!" + +#: ../templates/selfService/selfServiceMain.php:63 +#: ../templates/selfService/selfServiceMain.php:419 +#: ../templates/main_header.php:135 +msgid "Logout" +msgstr "Logout" + +#: ../lib/modules/dhcp_settings.inc:98 +msgid "M-Node (0x04)" +msgstr "M-Node (0x04)" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ieee802device.inc:58 +#: ../lib/modules/ieee802device.inc:68 ../lib/modules/ieee802device.inc:79 +#: ../lib/modules/ieee802device.inc:106 ../lib/modules/fixed_ip.inc:102 +#: ../lib/modules/fixed_ip.inc:429 ../lib/modules/fixed_ip.inc:742 +msgid "MAC address" +msgstr "MAC adres" + +#: ../lib/modules/ieee802device.inc:72 +msgid "MAC address list" +msgstr "MAC adresljist" + +#: ../lib/modules/ieee802device.inc:86 ../lib/modules/ieee802device.inc:162 +msgid "MAC addresses" +msgstr "MAC adressen" + +#: ../lib/modules/mitKerberos.inc:268 +msgid "MIT Kerberos password change command" +msgstr "MIT Kerberos wachtwoord wijzigen commando" + +#: ../lib/modules/bindDLZ.inc:110 ../lib/modules/bindDLZ.inc:281 +#: ../lib/modules/bindDLZ.inc:287 ../lib/modules/bindDLZ.inc:294 +#: ../lib/modules/bindDLZ.inc:483 ../lib/modules/bindDLZ.inc:502 +msgid "MX record" +msgstr "MX record" + +#: ../lib/modules/bindDLZ.inc:421 ../lib/modules/bindDLZ.inc:440 +#: ../lib/modules/bindDLZ.inc:1516 +msgid "MX records" +msgstr "MX records" + +#: ../lib/modules/sambaSamAccount.inc:576 +msgid "Magadan, Solomon Islands" +msgstr "Magadan, Solomon Islands" + +#: ../lib/types/mailAlias.inc:53 ../lib/modules/nisMailAliasUser.inc:70 +#: ../lib/modules/nisMailAlias.inc:69 +msgid "Mail aliases" +msgstr "Mail aliassen" + +#: ../lib/modules/imapAccess.inc:100 ../lib/modules/imapAccess.inc:140 +msgid "Mail domains" +msgstr "E-mail domeinen" + +#: ../lib/modules/inetLocalMailRecipient.inc:58 +msgid "Mail routing" +msgstr "Mail routering" + +#: ../lib/modules/selfRegistration.inc:615 +#: ../lib/modules/selfRegistration.inc:635 +#: ../lib/modules/passwordSelfReset.inc:1546 +#: ../lib/modules/passwordSelfReset.inc:1561 +#: ../lib/modules/passwordSelfReset.inc:1594 +msgid "Mail sending failed." +msgstr "Mail verzenden is mislukt." + +#: ../lib/modules/bindDLZ.inc:139 ../lib/modules/bindDLZ.inc:143 +#: ../lib/modules/bindDLZ.inc:281 ../lib/modules/bindDLZ.inc:500 +#: ../lib/modules/bindDLZ.inc:917 ../lib/modules/bindDLZ.inc:1519 +#: ../lib/modules/kolabUser.inc:98 ../lib/modules/kolabSharedFolder.inc:98 +#: ../lib/modules/inetLocalMailRecipient.inc:80 +#: ../lib/modules/inetLocalMailRecipient.inc:85 +#: ../lib/modules/inetLocalMailRecipient.inc:112 +#: ../lib/modules/inetLocalMailRecipient.inc:121 +#: ../lib/modules/inetLocalMailRecipient.inc:148 +#: ../lib/modules/inetLocalMailRecipient.inc:294 +msgid "Mail server" +msgstr "Mail server" + +#: ../lib/modules/bindDLZ.inc:914 +msgid "Mail servers (\"MX\" records)" +msgstr "Mail servers (\"MX\" records)" + +#: ../lib/account.inc:1031 +#, php-format +msgid "Mail successfully sent to %s." +msgstr "E-mail verzonden naar %s." + +#: ../lib/modules/asteriskAccount.inc:159 +#: ../lib/modules/asteriskAccount.inc:278 +#: ../lib/modules/asteriskAccount.inc:399 +#: ../lib/modules/asteriskAccount.inc:657 +#: ../lib/modules/asteriskAccount.inc:994 +#: ../lib/modules/asteriskAccount.inc:1257 +#: ../lib/modules/asteriskVoicemail.inc:95 +#: ../lib/modules/asteriskVoicemail.inc:138 +#: ../lib/modules/asteriskVoicemail.inc:158 +#: ../lib/modules/asteriskVoicemail.inc:245 +#: ../lib/modules/asteriskVoicemail.inc:369 ../lib/modules/imapAccess.inc:63 +#: ../lib/modules/imapAccess.inc:106 ../lib/modules/imapAccess.inc:243 +msgid "Mailbox" +msgstr "Mailbox" + +#: ../lib/modules/imapAccess.inc:252 +msgid "Mailbox already exists on IMAP server." +msgstr "Mailbox bestaat reeds op IMAP-server." + +#: ../lib/modules/imapAccess.inc:259 +msgid "Mailbox does not exist on IMAP server." +msgstr "Mailbox bestaat niet op IMAP-server." + +#: ../lib/modules/kolabUser.inc:148 ../lib/modules/kolabUser.inc:192 +#: ../lib/modules/kolabUser.inc:231 ../lib/modules/kolabUser.inc:297 +#: ../lib/modules/kolabUser.inc:300 ../lib/modules/kolabUser.inc:745 +#: ../lib/modules/kolabSharedFolder.inc:154 +#: ../lib/modules/kolabSharedFolder.inc:188 +#: ../lib/modules/kolabSharedFolder.inc:238 +#: ../lib/modules/kolabSharedFolder.inc:284 +#: ../lib/modules/kolabSharedFolder.inc:287 +#: ../lib/modules/kolabSharedFolder.inc:559 +msgid "Mailbox home server" +msgstr "Mailbox home server" + +#: ../lib/modules/kolabUser.inc:251 +msgid "Mailbox home server name is empty!" +msgstr "Mailbox home server naam is leeg!" + +#: ../lib/modules/kolabUser.inc:249 ../lib/modules/kolabUser.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:257 +#: ../lib/modules/kolabSharedFolder.inc:258 +msgid "Mailbox home server name is invalid!" +msgstr "Mailbox home server naam is ongeldig!" + +#: ../lib/modules/kolabUser.inc:99 ../lib/modules/kolabUser.inc:174 +#: ../lib/modules/kolabUser.inc:199 ../lib/modules/kolabUser.inc:232 +#: ../lib/modules/kolabUser.inc:257 ../lib/modules/kolabUser.inc:310 +#: ../lib/modules/kolabUser.inc:772 +msgid "Mailbox quota" +msgstr "Postvak quota" + +#: ../lib/types/mailAlias.inc:62 +msgid "Mailing aliases (e.g. NIS mail aliases)" +msgstr "Mailing aliassen (bijv. NIS mail aliassen)" + +#: ../lib/modules/nisMailAlias.inc:82 +msgid "Mails to this name are forwarded to the recipients." +msgstr "E-mail naar deze naam worden doorgestuurd naar de ontvangers." + +#: ../templates/pdfedit/pdfpage.php:367 ../templates/pdfedit/pdfpage.php:678 +msgid "Main" +msgstr "Hoofd" + +#: ../templates/selfService/adminMain.php:483 ../help/help.inc:228 +msgid "Main page caption" +msgstr "Hoofdpagina bijschrift" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:79 +msgid "Make sure your filter (above) will select all child records." +msgstr "" +"Zorg ervoor dat uw filter (zie boven) alle onderliggende records selecteert." + +#: ../lib/modules/inetOrgPerson.inc:1549 +msgid "Manage" +msgstr "Beheer" + +#: ../templates/pdfedit/pdfmain.php:190 +msgid "Manage existing PDF structures" +msgstr "Beheer bestaande PDF-structuren" + +#: ../templates/profedit/profilemain.php:175 +msgid "Manage existing profiles" +msgstr "Beheer bestaande profielen" + +#: ../templates/pdfedit/pdfmain.php:232 +msgid "Manage logos" +msgstr "Beheer logos" + +#: ../lib/modules/kolabUser.inc:112 ../lib/modules/kolabUser.inc:170 +msgid "Manage object class \"mailrecipient\"" +msgstr "Beheer object class \"mailrecipient\"" + +#: ../lib/modules/sambaSamAccount.inc:1229 +msgid "Manage profile directory" +msgstr "Beheer profiel directory" + +#: ../templates/selfService/adminLogin.php:182 +msgid "Manage self service profiles" +msgstr "Beheer zelf serivice profielen" + +#: ../templates/config/conflogin.php:192 +msgid "Manage server profiles" +msgstr "Beheer server profielen" + +#: ../lib/modules/windowsHost.inc:86 ../lib/modules/windowsHost.inc:112 +#: ../lib/modules/windowsHost.inc:122 ../lib/modules/windowsHost.inc:146 +#: ../lib/modules/windowsHost.inc:295 ../lib/modules/windowsGroup.inc:146 +#: ../lib/modules/windowsGroup.inc:167 ../lib/modules/windowsGroup.inc:227 +#: ../lib/modules/windowsGroup.inc:268 ../lib/modules/windowsGroup.inc:352 +#: ../lib/modules/windowsGroup.inc:781 +msgid "Managed by" +msgstr "Beheerd door" + +#: ../templates/serverInfo.php:105 +msgid "Managed suffixes" +msgstr "Beheerde achtervoegsels" + +#: ../lib/modules/ipHost.inc:77 ../lib/modules/ipHost.inc:97 +#: ../lib/modules/ipHost.inc:106 ../lib/modules/ipHost.inc:154 +#: ../lib/modules/ipHost.inc:253 ../lib/modules/inetOrgPerson.inc:364 +#: ../lib/modules/inetOrgPerson.inc:619 ../lib/modules/inetOrgPerson.inc:670 +#: ../lib/modules/inetOrgPerson.inc:674 ../lib/modules/inetOrgPerson.inc:1561 +#: ../lib/modules/inetOrgPerson.inc:1927 ../lib/modules/inetOrgPerson.inc:3618 +#: ../lib/modules/inetOrgPerson.inc:3657 +msgid "Manager" +msgstr "Beheerder" + +#: ../lib/tools/ouEditor.inc:53 +msgid "Manages OU objects in your LDAP tree." +msgstr "Beheert OU objecten in de LDAP boom" + +#: ../lib/modules/kolabUser.inc:52 +msgid "Manual" +msgstr "Handmatig" + +#: ../lib/modules/kolabUser.inc:54 +msgid "Manual if conflicts" +msgstr "Handmatig indien conflicteert" + +#: ../lib/modules/customScripts.inc:172 +msgid "Manual scripts" +msgstr "Handmatige scripts" + +#: ../lib/types/nisObjectType.inc:78 ../lib/modules/nisObject.inc:65 +#: ../lib/modules/nisObject.inc:96 ../lib/modules/nisObject.inc:112 +#: ../lib/modules/nisObject.inc:123 ../lib/modules/nisObject.inc:149 +#: ../lib/modules/nisObject.inc:210 +msgid "Mapping entry" +msgstr "Mapping item" + +#: ../lib/modules/nisObject.inc:123 ../lib/modules/nisObject.inc:124 +msgid "" +"Mapping entry contains invalid characters. Only ASCII characters are allowed." +msgstr "" +"Mapping item bevat ongeldige tekens. Alleen ASCII-tekens zijn toegestaan." + +#: ../lib/types/nisObjectType.inc:79 ../lib/modules/nisObject.inc:69 +#: ../lib/modules/nisObject.inc:89 ../lib/modules/nisObject.inc:113 +#: ../lib/modules/nisObject.inc:143 ../lib/modules/nisObject.inc:211 +msgid "Mapping name" +msgstr "Mapping naam" + +#: ../lib/modules/kolabGroup.inc:213 ../lib/modules/kolabGroup.inc:293 +#: ../lib/modules/kolabUser.inc:388 ../lib/modules/kolabUser.inc:519 +#: ../lib/modules/kolabSharedFolder.inc:345 +#: ../lib/modules/kolabSharedFolder.inc:433 +msgid "Mark account for deletion" +msgstr "Markeer account om te verwijdern" + +#: ../lib/modules/kolabGroup.inc:113 ../lib/modules/kolabUser.inc:178 +#: ../lib/modules/kolabSharedFolder.inc:166 +msgid "Mark for deletion" +msgstr "Markeer om te verwijderen" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:44 +msgid "Mass delete" +msgstr "Massa verwijderen" + +#: ../templates/config/profmanage.php:311 +#: ../templates/config/mainlogin.php:158 +#: ../templates/selfService/profManage.php:247 +#: ../templates/pdfedit/pdfmain.php:290 ../templates/pdfedit/pdfmain.php:337 +#: ../templates/profedit/profilemain.php:257 +#: ../templates/profedit/profilemain.php:305 ../help/help.inc:142 +msgid "Master password" +msgstr "Master wachtwoord" + +#: ../templates/config/profmanage.php:54 +#: ../templates/selfService/profManage.php:40 +#: ../templates/pdfedit/pdfmain.php:106 ../templates/pdfedit/pdfmain.php:114 +#: ../templates/profedit/profilemain.php:121 +#: ../templates/profedit/profilemain.php:129 +msgid "Master password is wrong!" +msgstr "Master wachtwoord is fout!" + +#: ../templates/config/mainmanage.php:82 +msgid "Master passwords are different or empty!" +msgstr "Masterwachtworden zijn verschillend of leeg!" + +#: ../templates/schema/schema.php:268 +msgid "Matching rule OID" +msgstr "Matching regel OID " + +#: ../templates/schema/schema.php:77 ../templates/schema/schema.php:78 +msgid "Matching rules" +msgstr "Matching regels" + +#: ../templates/serverInfo.php:173 +msgid "Max. file descriptors" +msgstr "Max. bestandsdescriptors" + +#: ../lib/modules/posixGroup.inc:410 ../lib/modules/posixGroup.inc:599 +#: ../lib/modules/posixGroup.inc:600 +msgid "Maximum GID number" +msgstr "Maximum GID nummer" + +#: ../lib/modules/posixGroup.inc:599 +msgid "Maximum GID number is invalid or empty!" +msgstr "Maximum GID nummer is ongeldig of leeg!" + +#: ../lib/modules/posixGroup.inc:600 +msgid "Maximum GID number must be greater than minimum GID number!" +msgstr "Maximum GID nummer moet groter zijn dan minimum GID nummer!" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:221 ../lib/modules/posixAccount.inc:239 +msgid "Maximum UID number" +msgstr "Maximum UID number" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +msgid "Maximum UID number is invalid!" +msgstr "Maximum UID nummer is ongeldig!" + +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +msgid "Maximum UID number must be greater than minimum UID number!" +msgstr "Maximum UID nummer moet groter zijn dan minimum UID nummer!" + +#: ../lib/types/ppolicyType.inc:84 ../lib/modules/ppolicy.inc:108 +#: ../lib/modules/ppolicy.inc:152 ../lib/modules/ppolicy.inc:172 +#: ../lib/modules/ppolicy.inc:272 ../lib/modules/ppolicy.inc:477 +msgid "Maximum failure count" +msgstr "Maximum fout aantal" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:128 +#: ../templates/3rdParty/pla/htdocs/import_form.php:36 +#: ../lib/modules/customFields.inc:156 ../lib/modules/customFields.inc:3299 +msgid "Maximum file size" +msgstr "Maximale bestandsgrootte" + +#: ../lib/modules/inetOrgPerson.inc:3684 +msgid "Maximum file size (kB)" +msgstr "Maximale bestandsgrootte (kB)" + +#: ../lib/modules/customFields.inc:3331 +msgid "Maximum file size must be a number. Please enter 0 for no limit." +msgstr "Maximale bestandsgrootte moet een getal zijn. Vul 0 voor geen limiet." + +#: ../lib/modules/inetOrgPerson.inc:3683 +msgid "Maximum height (px)" +msgstr "Maximale hoogte (px)" + +#: ../lib/types/pykotaPrinterType.inc:95 ../lib/modules/pykotaPrinter.inc:103 +#: ../lib/modules/pykotaPrinter.inc:135 ../lib/modules/pykotaPrinter.inc:159 +#: ../lib/modules/pykotaPrinter.inc:195 ../lib/modules/pykotaPrinter.inc:213 +#: ../lib/modules/pykotaPrinter.inc:233 ../lib/modules/pykotaPrinter.inc:586 +msgid "Maximum job size" +msgstr "Maximale grootte van een opdracht" + +#: ../lib/modules/dhcp_settings.inc:157 ../lib/modules/dhcp_settings.inc:210 +#: ../lib/modules/dhcp_settings.inc:225 ../lib/modules/dhcp_settings.inc:262 +#: ../lib/modules/dhcp_settings.inc:573 ../lib/modules/dhcp_settings.inc:676 +msgid "Maximum lease time" +msgstr "Maximale leasetijd" + +#: ../templates/schema/schema.php:214 +msgid "Maximum length" +msgstr "Maximum lengte" + +#: ../lib/lists.inc:1011 ../help/help.inc:97 +msgid "Maximum list entries" +msgstr "Maximum lijstentrees" + +#: ../lib/modules/asteriskAccount.inc:196 +msgid "" +"Maximum number of seconds of inactivity before terminating a call on hold." +msgstr "" +"Maximum aantal seconden van inactiviteit voordat een gesprek in de wacht " +"wordt beëindigd." + +#: ../lib/types/ppolicyType.inc:79 ../lib/modules/shadowAccount.inc:59 +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/shadowAccount.inc:123 +#: ../lib/modules/shadowAccount.inc:172 ../lib/modules/shadowAccount.inc:189 +#: ../lib/modules/shadowAccount.inc:227 ../lib/modules/shadowAccount.inc:340 +#: ../lib/modules/shadowAccount.inc:504 ../lib/modules/ppolicy.inc:88 +#: ../lib/modules/ppolicy.inc:144 ../lib/modules/ppolicy.inc:167 +#: ../lib/modules/ppolicy.inc:168 ../lib/modules/ppolicy.inc:206 +#: ../lib/modules/ppolicy.inc:473 ../lib/modules/sambaDomain.inc:129 +#: ../lib/modules/sambaDomain.inc:197 ../lib/modules/sambaDomain.inc:220 +#: ../lib/modules/sambaDomain.inc:222 ../lib/modules/sambaDomain.inc:332 +#: ../lib/modules/sambaDomain.inc:609 +msgid "Maximum password age" +msgstr "Maximum levensduur wachtwoord" + +#: ../lib/modules/inetOrgPerson.inc:3682 +msgid "Maximum width (px)" +msgstr "Maximale breedte (px)" + +#: ../lib/modules/qmailGroup.inc:80 ../lib/modules/qmailGroup.inc:204 +#: ../lib/modules/qmailGroup.inc:208 ../lib/modules/qmailGroup.inc:337 +#: ../lib/modules/qmailGroup.inc:402 ../lib/modules/qmailGroup.inc:425 +#: ../lib/modules/qmailGroup.inc:514 ../lib/modules/qmailGroup.inc:1063 +msgid "Member email addresses" +msgstr "Lid e-mailadressen" + +#: ../lib/modules/qmailGroup.inc:78 ../lib/modules/qmailGroup.inc:156 +#: ../lib/modules/qmailGroup.inc:160 ../lib/modules/qmailGroup.inc:279 +#: ../lib/modules/qmailGroup.inc:381 ../lib/modules/qmailGroup.inc:516 +#: ../lib/modules/qmailGroup.inc:783 ../lib/modules/qmailGroup.inc:1062 +msgid "Member entries" +msgstr "Lid items" + +#: ../lib/modules/qmailGroup.inc:82 ../lib/modules/qmailGroup.inc:180 +#: ../lib/modules/qmailGroup.inc:184 ../lib/modules/qmailGroup.inc:303 +#: ../lib/modules/qmailGroup.inc:390 ../lib/modules/qmailGroup.inc:515 +#: ../lib/modules/qmailGroup.inc:1064 +msgid "Member filter" +msgstr "Lid filter" + +#: ../lib/types/netgroup.inc:94 ../lib/modules/nisnetgroup.inc:95 +#: ../lib/modules/nisnetgroup.inc:99 ../lib/modules/nisnetgroup.inc:132 +#: ../lib/modules/nisnetgroup.inc:142 ../lib/modules/nisnetgroup.inc:286 +#: ../lib/modules/nisnetgroup.inc:583 ../lib/modules/organizationalRole.inc:93 +#: ../lib/modules/organizationalRole.inc:97 +#: ../lib/modules/organizationalRole.inc:130 +#: ../lib/modules/organizationalRole.inc:138 +#: ../lib/modules/organizationalRole.inc:193 +#: ../lib/modules/organizationalRole.inc:341 +#: ../lib/modules/organizationalRole.inc:461 +#: ../lib/modules/windowsGroup.inc:130 ../lib/modules/windowsGroup.inc:134 +#: ../lib/modules/windowsGroup.inc:211 ../lib/modules/windowsGroup.inc:260 +#: ../lib/modules/windowsGroup.inc:790 ../lib/modules/groupOfNames.inc:101 +#: ../lib/modules/groupOfNames.inc:105 ../lib/modules/groupOfNames.inc:151 +#: ../lib/modules/groupOfNames.inc:159 ../lib/modules/groupOfNames.inc:168 +#: ../lib/modules/groupOfNames.inc:247 ../lib/modules/groupOfNames.inc:553 +#: ../lib/modules/groupOfNames.inc:714 +msgid "Members" +msgstr "Leden" + +#: ../lib/modules/groupOfNames.inc:109 ../lib/modules/groupOfNames.inc:179 +msgid "Members are optional" +msgstr "Leden zijn optioneel" + +#: ../lib/modules/qmailGroup.inc:94 ../lib/modules/qmailGroup.inc:196 +#: ../lib/modules/qmailGroup.inc:319 ../lib/modules/qmailGroup.inc:396 +#: ../lib/modules/qmailGroup.inc:617 ../lib/modules/qmailGroup.inc:1075 +msgid "Members only" +msgstr "Alleen leden" + +#: ../lib/modules/qmailUser.inc:108 ../lib/modules/qmailUser.inc:143 +#: ../lib/modules/qmailUser.inc:223 ../lib/modules/qmailUser.inc:316 +#: ../lib/modules/qmailUser.inc:412 ../lib/modules/qmailUser.inc:686 +#: ../lib/modules/qmailUser.inc:1145 +msgid "Message count limit" +msgstr "Bericht tellerlimiet" + +#: ../lib/modules/qmailUser.inc:110 ../lib/modules/qmailUser.inc:153 +#: ../lib/modules/qmailUser.inc:227 ../lib/modules/qmailUser.inc:324 +#: ../lib/modules/qmailUser.inc:415 ../lib/modules/qmailUser.inc:697 +#: ../lib/modules/qmailUser.inc:1146 +msgid "Message size limit" +msgstr "Bericht limiet" + +#: ../lib/modules/qmailUser.inc:120 ../lib/modules/qmailUser.inc:171 +#: ../lib/modules/qmailUser.inc:247 ../lib/modules/qmailUser.inc:366 +#: ../lib/modules/qmailUser.inc:430 ../lib/modules/qmailUser.inc:601 +#: ../lib/modules/qmailUser.inc:1149 ../lib/modules/qmailGroup.inc:139 +#: ../lib/modules/qmailGroup.inc:254 ../lib/modules/qmailGroup.inc:372 +#: ../lib/modules/qmailGroup.inc:508 ../lib/modules/qmailGroup.inc:1058 +msgid "Message store" +msgstr "Berichtenarchief" + +#: ../lib/modules/sambaSamAccount.inc:563 +msgid "Mid-Atlantic" +msgstr "Mid-Atlantic" + +#: ../lib/modules/sambaSamAccount.inc:554 +msgid "Midway Island, Samoa" +msgstr "Midway Island, Samoa" + +#: ../lib/modules/windowsUser.inc:286 ../lib/modules/inetOrgPerson.inc:317 +msgid "Miller" +msgstr "Miller" + +#: ../lib/modules/sambaDomain.inc:101 ../lib/modules/sambaDomain.inc:190 +#: ../lib/modules/sambaDomain.inc:276 ../lib/modules/sambaDomain.inc:605 +msgid "Minimal password length" +msgstr "Minimale wachtwoord lengte" + +#: ../lib/modules/posixGroup.inc:407 ../lib/modules/posixGroup.inc:598 +msgid "Minimum GID number" +msgstr "Minimum GID nummer" + +#: ../lib/modules/posixGroup.inc:598 +msgid "Minimum GID number is invalid or empty!" +msgstr "Minimum GID nummer is ongeldig of leeg!" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:218 ../lib/modules/posixAccount.inc:236 +msgid "Minimum UID number" +msgstr "Minimum UID nummer" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +msgid "Minimum UID number is invalid!" +msgstr "Minimum UID nummer is ongeldig!" + +#: ../lib/modules/passwordSelfReset.inc:92 +#: ../lib/modules/passwordSelfReset.inc:514 +msgid "Minimum answer length" +msgstr "Minimale antwoord lengte" + +#: ../templates/config/mainmanage.php:392 +msgid "Minimum character classes" +msgstr "Minimum character classes" + +#: ../templates/config/mainmanage.php:388 +msgid "Minimum lowercase characters" +msgstr "Minimum kleine letters" + +#: ../templates/config/mainmanage.php:390 +msgid "Minimum numeric characters" +msgstr "Minimum numerieke tekens" + +#: ../lib/types/ppolicyType.inc:78 ../lib/modules/shadowAccount.inc:57 +#: ../lib/modules/shadowAccount.inc:118 ../lib/modules/shadowAccount.inc:171 +#: ../lib/modules/shadowAccount.inc:185 ../lib/modules/shadowAccount.inc:221 +#: ../lib/modules/shadowAccount.inc:332 ../lib/modules/shadowAccount.inc:503 +#: ../lib/modules/ppolicy.inc:84 ../lib/modules/ppolicy.inc:143 +#: ../lib/modules/ppolicy.inc:166 ../lib/modules/ppolicy.inc:198 +#: ../lib/modules/ppolicy.inc:472 ../lib/modules/sambaDomain.inc:125 +#: ../lib/modules/sambaDomain.inc:196 ../lib/modules/sambaDomain.inc:221 +#: ../lib/modules/sambaDomain.inc:324 ../lib/modules/sambaDomain.inc:608 +msgid "Minimum password age" +msgstr "Minimum levensduur wachtwoord" + +#: ../templates/config/mainmanage.php:386 ../lib/types/ppolicyType.inc:87 +#: ../lib/modules/ppolicy.inc:120 ../lib/modules/ppolicy.inc:147 +#: ../lib/modules/ppolicy.inc:175 ../lib/modules/ppolicy.inc:250 +#: ../lib/modules/ppolicy.inc:480 +msgid "Minimum password length" +msgstr "Minimale wachtwoord lengte" + +#: ../templates/config/mainmanage.php:391 +msgid "Minimum symbolic characters" +msgstr "Minimum symbolische tekens" + +#: ../lib/modules/bindDLZ.inc:223 ../lib/modules/bindDLZ.inc:326 +#: ../lib/modules/bindDLZ.inc:427 ../lib/modules/bindDLZ.inc:525 +#: ../lib/modules/bindDLZ.inc:1030 ../lib/modules/bindDLZ.inc:1552 +msgid "Minimum time" +msgstr "Minimale tijd" + +#: ../templates/config/mainmanage.php:389 +msgid "Minimum uppercase characters" +msgstr "Minimum hoofdletters" + +#: ../templates/3rdParty/pla/lib/import_functions.php:429 +msgid "Missing attributes for" +msgstr "Ontbrekende attributen voor" + +#: ../templates/3rdParty/pla/lib/import_functions.php:443 +msgid "Missing modify command add, delete or replace" +msgstr "" +"Ontbrekende wijzigen commando toe te voegen, te verwijderen of te vervangen" + +#: ../lib/types/user.inc:207 ../lib/modules/inetOrgPerson.inc:74 +#: ../lib/modules/inetOrgPerson.inc:160 ../lib/modules/inetOrgPerson.inc:436 +#: ../lib/modules/inetOrgPerson.inc:589 ../lib/modules/inetOrgPerson.inc:718 +#: ../lib/modules/inetOrgPerson.inc:722 ../lib/modules/inetOrgPerson.inc:1423 +#: ../lib/modules/inetOrgPerson.inc:1426 ../lib/modules/inetOrgPerson.inc:1935 +#: ../lib/modules/inetOrgPerson.inc:3600 ../lib/modules/inetOrgPerson.inc:3652 +msgid "Mobile number" +msgstr "Mobiel nummer" + +#: ../lib/modules/inetOrgPerson.inc:2547 +msgid "Mobile telephone number" +msgstr "Mobiele telefoonnummer" + +#: ../lib/modules/qmailGroup.inc:86 ../lib/modules/qmailGroup.inc:212 +#: ../lib/modules/qmailGroup.inc:216 ../lib/modules/qmailGroup.inc:345 +#: ../lib/modules/qmailGroup.inc:405 ../lib/modules/qmailGroup.inc:427 +#: ../lib/modules/qmailGroup.inc:517 ../lib/modules/qmailGroup.inc:1066 +msgid "Moderator email addresses" +msgstr "Moderator e-mailadressen" + +#: ../lib/modules/qmailGroup.inc:84 ../lib/modules/qmailGroup.inc:164 +#: ../lib/modules/qmailGroup.inc:168 ../lib/modules/qmailGroup.inc:287 +#: ../lib/modules/qmailGroup.inc:384 ../lib/modules/qmailGroup.inc:518 +#: ../lib/modules/qmailGroup.inc:786 ../lib/modules/qmailGroup.inc:1065 +msgid "Moderator entries" +msgstr "Moderator items" + +#: ../lib/modules/qmailGroup.inc:76 ../lib/modules/qmailGroup.inc:106 +#: ../lib/modules/qmailGroup.inc:200 ../lib/modules/qmailGroup.inc:329 +#: ../lib/modules/qmailGroup.inc:399 ../lib/modules/qmailGroup.inc:603 +#: ../lib/modules/qmailGroup.inc:1061 +msgid "Moderator text" +msgstr "Moderator tekst" + +#: ../lib/modules/qmailGroup.inc:201 +msgid "" +"Moderator text that is used to specify an own approval text used if the list " +"is moderated. The usual %HEADER% magic of qmail-reply etc. can be used here." +msgstr "" +"Moderator tekst die wordt gebruikt om een ​​eigen goedkeuringstekst op te " +"geven, wanneer de lijkt gebruikt als de lijst gemodereerd is. De " +"gebruikelijke %HEADER% magie van qmail-antwoord, enz. kunnen hier worden " +"gebruikt." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:61 +msgid "Modification not successful!" +msgstr "Wijziging niet succesvol!" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:59 +msgid "Modification successful!" +msgstr "Wijziging succesvol!" + +#: ../lib/modules/generalInformation.inc:92 +msgid "Modification time" +msgstr "Wijziging tijd" + +#: ../lib/modules/generalInformation.inc:88 +msgid "Modified by" +msgstr "Aangepast door" + +#: ../templates/serverInfo.php:314 ../templates/serverInfo.php:387 +#: ../templates/multiEdit.php:126 +msgid "Modify" +msgstr "Wijzigen" + +#: ../templates/serverInfo.php:328 ../templates/serverInfo.php:393 +msgid "Modify RDN" +msgstr "Wijzig RDN" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:57 +msgid "Modify group" +msgstr "Bewerk groepen" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2110 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2111 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2114 +msgid "Modify group members" +msgstr "Bewerk groep leden" + +#: ../templates/3rdParty/pla/htdocs/import.php:32 +msgid "Modifying" +msgstr "Wijzigen" + +#: ../templates/config/confmodules.php:176 +#: ../templates/config/confmain.php:217 +#: ../templates/config/moduleSettings.php:175 +#: ../templates/config/conftypes.php:194 +#: ../templates/selfService/adminMain.php:403 +msgid "Module settings" +msgstr "Module instellingen" + +#: ../templates/config/confmodules.php:172 +#: ../templates/config/confmain.php:213 +#: ../templates/config/moduleSettings.php:171 +#: ../templates/config/conftypes.php:190 +msgid "Modules" +msgstr "Modules" + +#: ../lib/modules/sambaSamAccount.inc:1380 +msgid "Monday" +msgstr "Maandag" + +#: ../lib/modules/sambaSamAccount.inc:558 +msgid "Mountain Time (US & Canada)" +msgstr "Mountain Time (US & Canada)" + +#: ../lib/modules/quota.inc:105 ../lib/modules/quota.inc:399 +#: ../lib/modules/quota.inc:506 ../lib/modules/quota.inc:633 +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:122 +#: ../lib/modules/systemQuotas.inc:382 +msgid "Mountpoint" +msgstr "Mount-punt" + +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:98 +msgid "Mountpoint contains invalid characters." +msgstr "Mountpoint bevat ongeldige tekens." + +#: ../lib/modules/quota.inc:106 +msgid "Mountpoint of device with enabled quotas." +msgstr "Mount-punt van device met waarvoor quotas gelden." + +#: ../lib/modules/customFields.inc:636 +msgid "Move down" +msgstr "Verplaats omlaag " + +#: ../lib/modules/customFields.inc:630 +msgid "Move up" +msgstr "Verplaats omhoog " + +#: ../templates/multiEdit.php:78 ../lib/tools/multiEdit.inc:44 +msgid "Multi edit" +msgstr "Multi bewerken" + +#: ../lib/modules/customFields.inc:1910 ../lib/modules/customFields.inc:3304 +msgid "Multi value" +msgstr "Meervoudige waarde" + +#: ../lib/modules/customFields.inc:3162 +msgid "Multi-select fields must not contain empty values." +msgstr "Multi-select velden mogen geen lege waarden bevatten." + +#: ../lib/modules/pykotaPrinter.inc:125 +#: ../lib/modules/zarafaDynamicGroup.inc:76 ../lib/modules/zarafaGroup.inc:78 +#: ../lib/modules/eduPerson.inc:98 ../lib/modules/eduPerson.inc:111 +#: ../lib/modules/eduPerson.inc:123 ../lib/modules/eduPerson.inc:139 +#: ../lib/modules/eduPerson.inc:147 ../lib/modules/zarafaUser.inc:164 +#: ../lib/modules/sudoRole.inc:100 ../lib/modules/sudoRole.inc:105 +#: ../lib/modules/sudoRole.inc:110 ../lib/modules/sudoRole.inc:115 +#: ../lib/modules/sudoRole.inc:120 ../lib/modules/sudoRole.inc:125 +msgid "Multiple values are separated by comma." +msgstr "Meerdere waarden worden gescheiden door een komma." + +#: ../lib/modules/kolabGroup.inc:92 ../lib/modules/kolabGroup.inc:101 +#: ../lib/modules/kolabGroup.inc:110 ../lib/modules/nisMailAliasUser.inc:81 +#: ../lib/modules/nisMailAliasUser.inc:89 ../lib/modules/puppetClient.inc:85 +#: ../lib/modules/puppetClient.inc:97 ../lib/modules/puppetClient.inc:105 +#: ../lib/modules/device.inc:74 ../lib/modules/bindDLZ.inc:98 +#: ../lib/modules/bindDLZ.inc:107 ../lib/modules/bindDLZ.inc:112 +#: ../lib/modules/bindDLZ.inc:117 ../lib/modules/bindDLZ.inc:122 +#: ../lib/modules/bindDLZ.inc:127 ../lib/modules/bindDLZ.inc:132 +#: ../lib/modules/bindDLZ.inc:144 ../lib/modules/bindDLZ.inc:152 +#: ../lib/modules/bindDLZ.inc:160 ../lib/modules/bindDLZ.inc:168 +#: ../lib/modules/bindDLZ.inc:176 ../lib/modules/bindDLZ.inc:184 +#: ../lib/modules/bindDLZ.inc:192 ../lib/modules/bindDLZ.inc:200 +#: ../lib/modules/bindDLZ.inc:208 ../lib/modules/windowsUser.inc:149 +#: ../lib/modules/windowsUser.inc:185 ../lib/modules/windowsUser.inc:221 +#: ../lib/modules/windowsUser.inc:232 ../lib/modules/kolabUser.inc:158 +#: ../lib/modules/kolabUser.inc:167 ../lib/modules/inetOrgPerson.inc:655 +#: ../lib/modules/inetOrgPerson.inc:675 ../lib/modules/inetOrgPerson.inc:683 +#: ../lib/modules/inetOrgPerson.inc:691 ../lib/modules/inetOrgPerson.inc:699 +#: ../lib/modules/inetOrgPerson.inc:715 ../lib/modules/inetOrgPerson.inc:723 +#: ../lib/modules/inetOrgPerson.inc:731 ../lib/modules/inetOrgPerson.inc:739 +#: ../lib/modules/inetOrgPerson.inc:747 ../lib/modules/inetOrgPerson.inc:759 +#: ../lib/modules/inetOrgPerson.inc:779 ../lib/modules/inetOrgPerson.inc:791 +#: ../lib/modules/inetOrgPerson.inc:799 ../lib/modules/inetOrgPerson.inc:807 +#: ../lib/modules/inetOrgPerson.inc:819 ../lib/modules/inetOrgPerson.inc:827 +#: ../lib/modules/inetOrgPerson.inc:843 ../lib/modules/inetOrgPerson.inc:851 +#: ../lib/modules/inetOrgPerson.inc:859 ../lib/modules/systemQuotas.inc:70 +#: ../lib/modules/freeRadius.inc:101 ../lib/modules/kolabSharedFolder.inc:126 +#: ../lib/modules/kolabSharedFolder.inc:135 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/qmailGroup.inc:136 ../lib/modules/qmailGroup.inc:149 +#: ../lib/modules/qmailGroup.inc:161 ../lib/modules/qmailGroup.inc:169 +#: ../lib/modules/qmailGroup.inc:177 ../lib/modules/qmailGroup.inc:185 +#: ../lib/modules/qmailGroup.inc:193 ../lib/modules/qmailGroup.inc:209 +#: ../lib/modules/qmailGroup.inc:217 ../lib/modules/qmailGroup.inc:225 +#: ../lib/modules/groupOfNames.inc:98 +msgid "Multiple values are separated by semicolon." +msgstr "Meerdere waarden worden gescheiden door een puntkomma." + +#: ../lib/modules/asteriskAccount.inc:207 +#: ../lib/modules/asteriskAccount.inc:290 +#: ../lib/modules/asteriskAccount.inc:486 +#: ../lib/modules/asteriskAccount.inc:717 +#: ../lib/modules/asteriskAccount.inc:1006 +#: ../lib/modules/asteriskAccount.inc:1281 +msgid "Music on hold" +msgstr "Muziek in de wachtstand" + +#: ../lib/modules/asteriskAccount.inc:208 +msgid "Music to play on hold." +msgstr "Muziek te spelen in de wachtstand." + +#: ../lib/modules/ipHost.inc:93 ../lib/modules/windowsHost.inc:108 +#: ../lib/modules/device.inc:111 ../lib/modules/windowsUser.inc:334 +#: ../lib/modules/inetOrgPerson.inc:398 ../lib/modules/inetOrgPerson.inc:406 +#: ../lib/modules/inetOrgPerson.inc:520 +msgid "MyCity" +msgstr "MijnStad" + +#: ../lib/modules/windowsUser.inc:316 ../lib/modules/inetOrgPerson.inc:382 +msgid "Mystreetname 42" +msgstr "MijnStraatnaam 42" + +#: ../lib/modules/asteriskAccount.inc:163 +#: ../lib/modules/asteriskAccount.inc:279 +#: ../lib/modules/asteriskAccount.inc:406 +#: ../lib/modules/asteriskAccount.inc:669 +#: ../lib/modules/asteriskAccount.inc:995 +#: ../lib/modules/asteriskAccount.inc:1259 +msgid "NAT" +msgstr "NAT" + +#: ../lib/modules/asteriskAccount.inc:164 +msgid "NAT setting for this account." +msgstr "NAT-instelling voor dit account." + +#: ../lib/modules/windowsUser.inc:772 ../lib/modules/windowsGroup.inc:370 +msgid "NIS" +msgstr "NIS" + +#: ../lib/modules/windowsUser.inc:256 ../lib/modules/windowsUser.inc:466 +#: ../lib/modules/windowsUser.inc:481 ../lib/modules/windowsUser.inc:535 +#: ../lib/modules/windowsUser.inc:567 ../lib/modules/windowsUser.inc:777 +#: ../lib/modules/windowsUser.inc:1614 ../lib/modules/windowsGroup.inc:154 +#: ../lib/modules/windowsGroup.inc:169 ../lib/modules/windowsGroup.inc:243 +#: ../lib/modules/windowsGroup.inc:251 ../lib/modules/windowsGroup.inc:274 +#: ../lib/modules/windowsGroup.inc:375 ../lib/modules/windowsGroup.inc:750 +msgid "NIS domain" +msgstr "NIS domein" + +#: ../lib/modules/windowsUser.inc:257 ../lib/modules/windowsGroup.inc:155 +msgid "NIS domain name." +msgstr "NIS domeinnaam" + +#: ../lib/modules/windowsUser.inc:252 ../lib/modules/windowsUser.inc:458 +#: ../lib/modules/windowsUser.inc:532 ../lib/modules/windowsUser.inc:566 +#: ../lib/modules/windowsUser.inc:620 ../lib/modules/windowsUser.inc:774 +#: ../lib/modules/windowsUser.inc:1613 ../lib/modules/windowsGroup.inc:150 +#: ../lib/modules/windowsGroup.inc:168 ../lib/modules/windowsGroup.inc:235 +#: ../lib/modules/windowsGroup.inc:271 ../lib/modules/windowsGroup.inc:289 +#: ../lib/modules/windowsGroup.inc:372 ../lib/modules/windowsGroup.inc:749 +msgid "NIS name" +msgstr "NIS naam" + +#: ../lib/modules/windowsUser.inc:620 ../lib/modules/windowsUser.inc:621 +#: ../lib/modules/windowsGroup.inc:289 ../lib/modules/windowsGroup.inc:290 +msgid "" +"NIS name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"NIS naam bevat ongeldige tekens. Geldige tekens zijn: a-z, A-Z, 0-9 en .-_ !" + +#: ../lib/modules/nisnetgroup.inc:67 +msgid "NIS net group" +msgstr "NIS net groep" + +#: ../lib/types/netgroup.inc:62 +msgid "NIS netgroup entries" +msgstr "NIS netgroup items" + +#: ../lib/types/netgroup.inc:53 +msgid "NIS netgroups" +msgstr "NIS netgroepen" + +#: ../lib/modules/nisObject.inc:47 +msgid "NIS object" +msgstr "NIS object" + +#: ../lib/types/nisObjectType.inc:155 +#, php-format +msgid "NIS object count: %s" +msgstr "NIS object aantal: %s" + +#: ../lib/types/nisObjectType.inc:48 +msgid "NIS object entries" +msgstr "NIS object items" + +#: ../lib/types/nisObjectType.inc:39 +msgid "NIS objects" +msgstr "NIS objecten" + +#: ../lib/modules/bindDLZ.inc:120 ../lib/modules/bindDLZ.inc:364 +#: ../lib/modules/bindDLZ.inc:370 ../lib/modules/bindDLZ.inc:489 +msgid "NS record" +msgstr "NS record" + +#: ../templates/serverInfo.php:147 ../templates/masscreate.php:294 +#: ../templates/masscreate.php:368 ../templates/schema/schema.php:268 +#: ../lib/types/automountType.inc:86 ../lib/types/automountType.inc:249 +#: ../lib/types/oracleContextType.inc:77 ../lib/types/ppolicyType.inc:77 +#: ../lib/types/bind.inc:190 ../lib/modules/device.inc:61 +#: ../lib/modules/device.inc:89 ../lib/modules/device.inc:120 +#: ../lib/modules/device.inc:170 ../lib/modules/device.inc:418 +#: ../lib/modules/range.inc:117 ../lib/modules/range.inc:138 +#: ../lib/modules/range.inc:553 ../lib/modules/nisObject.inc:61 +#: ../lib/modules/nisObject.inc:81 ../lib/modules/nisObject.inc:111 +#: ../lib/modules/nisObject.inc:137 ../lib/modules/nisObject.inc:209 +#: ../lib/modules/ppolicy.inc:80 ../lib/modules/ppolicy.inc:142 +#: ../lib/modules/ppolicy.inc:165 ../lib/modules/ppolicy.inc:190 +#: ../lib/modules/ppolicy.inc:471 ../lib/modules/automount.inc:64 +#: ../lib/modules/automount.inc:80 ../lib/modules/automount.inc:103 +#: ../lib/modules/automount.inc:128 ../lib/modules/automount.inc:181 +#: ../lib/modules/kolabSharedFolder.inc:112 +#: ../lib/modules/kolabSharedFolder.inc:174 +#: ../lib/modules/kolabSharedFolder.inc:233 +#: ../lib/modules/kolabSharedFolder.inc:261 +#: ../lib/modules/kolabSharedFolder.inc:279 +#: ../lib/modules/kolabSharedFolder.inc:557 +#: ../lib/modules/asteriskExtension.inc:822 +#: ../lib/modules/oracleService.inc:61 ../lib/modules/oracleService.inc:77 +#: ../lib/modules/oracleService.inc:98 ../lib/modules/oracleService.inc:121 +#: ../lib/modules/oracleService.inc:170 ../lib/modules/customFields.inc:84 +#: ../lib/modules/customFields.inc:1041 ../lib/modules/customFields.inc:1688 +#: ../lib/modules/organizationalRole.inc:186 +#: ../lib/modules/groupOfNames.inc:232 +msgid "Name" +msgstr "Naam" + +#: ../lib/modules/nisMailAliasUser.inc:97 +msgid "Name of new alias entry." +msgstr "Naam van de nieuwe alias." + +#: ../lib/modules/zarafaAddressList.inc:64 +msgid "Name of the address list which should be created." +msgstr "Naam van de adres lijst die moet worden gecreëerd." + +#: ../lib/modules/bindDLZ.inc:155 ../lib/modules/bindDLZ.inc:159 +#: ../lib/modules/bindDLZ.inc:364 ../lib/modules/bindDLZ.inc:506 +#: ../lib/modules/bindDLZ.inc:1169 +msgid "Name server" +msgstr "Name server" + +#: ../lib/modules/bindDLZ.inc:431 ../lib/modules/bindDLZ.inc:1569 +msgid "Name servers" +msgstr "Name servers" + +#: ../lib/modules/bindDLZ.inc:1167 +msgid "Name servers (\"NS\" records)" +msgstr "Name servers (\"NS\" records)" + +#: ../help/help.inc:189 +msgid "" +"Name under which the profile will be saved. If a profile with the same name " +"exists, it will be overwritten." +msgstr "" +"Naam waaronder het profiel zal worden opgeslagen. Als het profiel met " +"dezelfde naam al bestaat, zal deze overschreven worden." + +#: ../lib/modules/namedObject.inc:45 +msgid "Named object" +msgstr "Named object" + +#: ../lib/modules/dhcp_settings.inc:193 ../lib/modules/dhcp_settings.inc:216 +#: ../lib/modules/dhcp_settings.inc:610 ../lib/modules/dhcp_settings.inc:686 +#: ../lib/modules/freeRadius.inc:88 ../lib/modules/freeRadius.inc:124 +#: ../lib/modules/freeRadius.inc:138 ../lib/modules/freeRadius.inc:201 +#: ../lib/modules/freeRadius.inc:228 ../lib/modules/freeRadius.inc:285 +#: ../lib/modules/freeRadius.inc:538 +msgid "Net mask" +msgstr "Net mask" + +#: ../lib/modules/dhcp_settings.inc:169 ../lib/modules/dhcp_settings.inc:213 +#: ../lib/modules/dhcp_settings.inc:228 ../lib/modules/dhcp_settings.inc:280 +#: ../lib/modules/dhcp_settings.inc:581 ../lib/modules/dhcp_settings.inc:679 +msgid "Netbios name servers" +msgstr "Netbios naam servers" + +#: ../lib/modules/dhcp_settings.inc:173 ../lib/modules/dhcp_settings.inc:214 +#: ../lib/modules/dhcp_settings.inc:230 ../lib/modules/dhcp_settings.inc:286 +#: ../lib/modules/dhcp_settings.inc:591 ../lib/modules/dhcp_settings.inc:680 +msgid "Netbios node type" +msgstr "Netbios node type" + +#: ../lib/types/dhcp.inc:118 ../lib/types/dhcp.inc:172 +msgid "New DHCP" +msgstr "Nieuw DHCP" + +#: ../lib/types/bind.inc:100 ../lib/types/bind.inc:161 +msgid "New DNS entry" +msgstr "Nieuwe DNS-vermelding" + +#: ../lib/types/nisObjectType.inc:102 ../lib/types/nisObjectType.inc:157 +msgid "New NIS object" +msgstr "Nieuw NIS object" + +#: ../templates/ou_edit.php:77 +msgid "New OU created successfully." +msgstr "Nieuwe OU met succes aangemaakt" + +#: ../lib/modules/windowsUser.inc:340 ../lib/modules/inetOrgPerson.inc:528 +msgid "New York" +msgstr "New York" + +#: ../lib/types/zarafaAddressListType.inc:117 +#: ../lib/types/zarafaAddressListType.inc:146 +msgid "New address list" +msgstr "Nieuwe adresljist" + +#: ../lib/types/mailAlias.inc:114 ../lib/types/mailAlias.inc:143 +#: ../lib/types/alias.inc:114 ../lib/types/alias.inc:143 +msgid "New alias" +msgstr "Nieuwe alias" + +#: ../lib/types/automountType.inc:110 ../lib/types/automountType.inc:217 +msgid "New automount entry" +msgstr "Nieuw automount item" + +#: ../lib/types/automountType.inc:233 ../lib/types/automountType.inc:234 +msgid "New automount map" +msgstr "Nieuwe automount map" + +#: ../lib/types/pykotaBillingCodeType.inc:116 +#: ../lib/types/pykotaBillingCodeType.inc:165 +msgid "New billing code" +msgstr "Nieuwe factuurcode" + +#: ../lib/types/oracleContextType.inc:101 +#: ../lib/types/oracleContextType.inc:188 +msgid "New database entry" +msgstr "Nieuw database item" + +#: ../templates/config/profmanage.php:146 +msgid "New default profile set successfully." +msgstr "Nieuw standaard profile is met succes ingesteld." + +#: ../lib/types/smbDomain.inc:114 ../lib/types/smbDomain.inc:169 +msgid "New domain" +msgstr "Nieuw domein" + +#: ../lib/types/asteriskExt.inc:117 ../lib/types/asteriskExt.inc:145 +msgid "New extension" +msgstr "Nieuw extentie" + +#: ../templates/pdfedit/pdfpage.php:620 +msgid "New field" +msgstr "Nieuw veld" + +#: ../lib/types/gon.inc:140 ../lib/types/gon.inc:204 +#: ../lib/types/zarafaDynamicGroupType.inc:119 +#: ../lib/types/zarafaDynamicGroupType.inc:167 ../lib/types/group.inc:163 +#: ../lib/types/group.inc:242 ../lib/types/netgroup.inc:116 +#: ../lib/types/netgroup.inc:171 +msgid "New group" +msgstr "Nieuwe groep" + +#: ../lib/types/host.inc:128 ../lib/types/host.inc:195 +msgid "New host" +msgstr "Nieuwe host" + +#: ../lib/modules/inetLocalMailRecipient.inc:167 +msgid "New local address" +msgstr "Nieuw lokaal adres" + +#: ../templates/config/mainmanage.php:456 +msgid "New master password" +msgstr "Nieuw master wachtwoord" + +#: ../templates/config/mainmanage.php:79 +msgid "New master password set successfully." +msgstr "Nieuw master wachtwoord is met succes gemaakt" + +#: ../lib/lists.inc:114 +msgid "New object" +msgstr "Nieuw object" + +#: ../templates/ou_edit.php:185 ../help/help.inc:263 +msgid "New organisational unit" +msgstr "Nieuwe organisatie unit" + +#: ../templates/config/confmain.php:451 +#: ../lib/modules/sambaSamAccount.inc:2272 +#: ../lib/modules/posixAccount.inc:2536 ../lib/modules/windowsUser.inc:1719 +#: ../lib/modules/passwordSelfReset.inc:1059 +msgid "New password" +msgstr "Nieuw wachtwoord" + +#: ../templates/config/profmanage.php:133 +msgid "New password set successfully." +msgstr "Nieuw wachtwoord is succesvol geplaatst" + +#: ../lib/types/ppolicyType.inc:122 ../lib/types/ppolicyType.inc:151 +msgid "New policy" +msgstr "Nieuwe policy" + +#: ../lib/modules/range.inc:113 ../lib/modules/range.inc:627 +msgid "New pool" +msgstr "Nieuwe poel" + +#: ../lib/types/pykotaPrinterType.inc:117 +#: ../lib/types/pykotaPrinterType.inc:166 +msgid "New printer" +msgstr "Nieuwe printer" + +#: ../templates/config/profmanage.php:261 +#: ../templates/selfService/profManage.php:222 +msgid "New profile name" +msgstr "Nieuwe profiel naam" + +#: ../lib/modules/range.inc:109 ../lib/modules/range.inc:136 +#: ../lib/modules/range.inc:542 ../lib/modules/range.inc:616 +msgid "New range" +msgstr "Nieuwe range" + +#: ../lib/modules/nisMailAlias.inc:208 +msgid "New recipient" +msgstr "Nieuwe ontvanger" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:81 +msgid "New required attributes" +msgstr "Nieuwe verplichte attributen" + +#: ../lib/types/gon.inc:211 ../lib/types/group.inc:249 +msgid "New role" +msgstr "Nieuwe rol" + +#: ../templates/pdfedit/pdfpage.php:588 +msgid "New section" +msgstr "Nieuwe sectie" + +#: ../lib/types/kolabSharedFolderType.inc:114 +#: ../lib/types/kolabSharedFolderType.inc:143 +msgid "New shared folder" +msgstr "Nieuwe shared folder" + +#: ../lib/types/sudo.inc:106 ../lib/types/sudo.inc:161 +msgid "New sudo role" +msgstr "Nieuwe sudo rol" + +#: ../lib/types/user.inc:172 ../lib/types/user.inc:531 +msgid "New user" +msgstr "Nieuwe gebruiker" + +#: ../lib/modules/inetOrgPerson.inc:1859 +msgid "New user certificate" +msgstr "Nieuw gebruikerscertificaat" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "New value" +msgstr "Nieuwe waarde" + +#: ../lib/types/bind.inc:174 ../lib/types/bind.inc:175 +msgid "New zone" +msgstr "Nieuwe zone" + +#: ../lib/modules/sambaDomain.inc:85 ../lib/modules/sambaDomain.inc:165 +#: ../lib/modules/sambaDomain.inc:186 ../lib/modules/sambaDomain.inc:361 +#: ../lib/modules/sambaDomain.inc:601 +msgid "Next RID" +msgstr "Volgende RID" + +#: ../lib/modules/sambaDomain.inc:212 ../lib/modules/sambaDomain.inc:213 +msgid "Next RID is not a number!" +msgstr "Volgende RID is geen nummer!" + +#: ../lib/modules/sambaDomain.inc:86 +msgid "Next RID to use when creating accounts (only used by Winbind)." +msgstr "Volgende RID gebruiken bij maken accounts (alleen bij Winbind)" + +#: ../lib/modules/sambaDomain.inc:94 +msgid "Next RID to use when creating group accounts (only used by Winbind)." +msgstr "Volgende RID gebruiken bij maken groep accounts (alleen bij Winbind)" + +#: ../lib/modules/sambaDomain.inc:90 +msgid "Next RID to use when creating user accounts (only used by Winbind)." +msgstr "" +"Volgende RID gebruiken bij maken gebruikers accounts (alleen bij Winbind)" + +#: ../lib/modules/sambaDomain.inc:93 ../lib/modules/sambaDomain.inc:177 +#: ../lib/modules/sambaDomain.inc:188 ../lib/modules/sambaDomain.inc:377 +#: ../lib/modules/sambaDomain.inc:603 +msgid "Next group RID" +msgstr "Volgende RID groep" + +#: ../lib/modules/sambaDomain.inc:216 ../lib/modules/sambaDomain.inc:217 +msgid "Next group RID is not a number!" +msgstr "Volgende RID groep is geen getal!" + +#: ../lib/modules/sambaDomain.inc:89 ../lib/modules/sambaDomain.inc:171 +#: ../lib/modules/sambaDomain.inc:187 ../lib/modules/sambaDomain.inc:369 +#: ../lib/modules/sambaDomain.inc:602 +msgid "Next user RID" +msgstr "Volgende RID gebruiker" + +#: ../lib/modules/sambaDomain.inc:214 ../lib/modules/sambaDomain.inc:215 +msgid "Next user RID is not a number!" +msgstr "Volgende RID gebruiker is geen getal!" + +#: ../lib/modules/eduPerson.inc:101 ../lib/modules/eduPerson.inc:188 +#: ../lib/modules/eduPerson.inc:226 ../lib/modules/eduPerson.inc:342 +#: ../lib/modules/eduPerson.inc:584 +msgid "Nick names" +msgstr "Bijnamen" + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/pykotaPrinter.inc:52 +#: ../lib/modules/pykotaPrinter.inc:168 ../lib/modules/pykotaPrinter.inc:169 +#: ../lib/modules/pykotaPrinter.inc:170 ../lib/modules/qmailGroup.inc:321 +#: ../lib/modules/qmailGroup.inc:322 ../lib/modules/qmailGroup.inc:323 +#: ../lib/modules/qmailGroup.inc:363 ../lib/modules/qmailGroup.inc:364 +#: ../lib/modules/qmailGroup.inc:365 ../lib/modules/qmailGroup.inc:1030 +#: ../lib/modules/qmailGroup.inc:1071 ../lib/modules/qmailGroup.inc:1077 +#: ../lib/modules/imapAccess.inc:121 +msgid "No" +msgstr "Nee" + +#: ../lib/types/asteriskExt.inc:144 +msgid "No Asterisk extensions found." +msgstr "Geen Asterisk extensies gevonden." + +#: ../lib/types/dhcp.inc:171 +msgid "No DHCPs found!" +msgstr "Geen DHCP's gevonden!" + +#: ../lib/types/bind.inc:160 +msgid "No DNS entries found!" +msgstr "Geen DNS-items gevonden!" + +#: ../lib/types/nisObjectType.inc:156 +msgid "No NIS objects found!" +msgstr "Geen NIS objecten gevonden!" + +#: ../templates/3rdParty/pla/lib/Template.php:558 +#: ../templates/3rdParty/pla/lib/Template.php:559 +msgid "No RDN attribute was selected." +msgstr "Geen RDN attribuut werd geselecteerd." + +#: ../lib/modules/sambaSamAccount.inc:1108 +#: ../lib/modules/sambaGroupMapping.inc:341 +msgid "No Samba 3 domains found in LDAP! Please create one first." +msgstr "Geen Samba 3 domeinen gevonden in LDAP! Eerst een domein maken." + +#: ../lib/modules/posixAccount.inc:581 ../lib/modules/posixAccount.inc:1367 +msgid "No Unix groups found in LDAP! Please create one first." +msgstr "Geen Unix groepen gevonden in LDAP! Eerst groepen maken." + +#: ../lib/modules/qmailUser.inc:42 +msgid "No access" +msgstr "Geen toegang" + +#: ../lib/types/zarafaAddressListType.inc:145 +msgid "No address list found!" +msgstr "Geen adreslijst gevonden!" + +#: ../lib/types/mailAlias.inc:142 ../lib/types/alias.inc:142 +msgid "No aliases found!" +msgstr "Geen aliassen gevonden!" + +#: ../lib/types/automountType.inc:216 +msgid "No automount entries found!" +msgstr "Geen automount items gevonden!" + +#: ../lib/types/pykotaBillingCodeType.inc:164 +msgid "No billing codes found!" +msgstr "Geen Factuurcodes gevonden!" + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:36 +msgid "No binary data available" +msgstr "Geen binaire gegevens beschikbaar" + +#: ../templates/initsuff.php:164 +msgid "No changes were made." +msgstr "Er zijn geen veranderingen aangebracht." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:83 +#, php-format +msgid "No current value for attribute %s." +msgstr "Geen actuele waarde voor attribuut %s." + +#: ../lib/types/oracleContextType.inc:187 +msgid "No database entries found!" +msgstr "Geen database-items gevonden!" + +#: ../templates/login.php:104 +msgid "" +"No default profile set. Please set it in the server profile configuration." +msgstr "" +"Geen standaard profiel ingesteld. Stel het in in de serverprofiel " +"configuratie." + +#: ../templates/schema/schema.php:144 +msgid "No description" +msgstr "Geen omschrijving" + +#: ../lib/types/smbDomain.inc:168 +msgid "No domains found!" +msgstr "Geen domeinen gevonden!" + +#: ../lib/modules/passwordSelfReset.inc:1546 +msgid "No email address found." +msgstr "Geen e-mailadres gevonden." + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:20 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:21 +msgid "No entry was selected to delete" +msgstr "Geen item werd geselecteerd om te verwijderen" + +#: ../lib/modules/ldapPublicKey.inc:483 ../lib/modules/inetOrgPerson.inc:3288 +#: ../lib/modules/customFields.inc:3642 +msgid "No file received." +msgstr "Geen bestand ontvangen." + +#: ../templates/config/mainmanage.php:161 ../lib/modules/ldapPublicKey.inc:109 +#: ../lib/modules/inetOrgPerson.inc:101 ../lib/modules/customFields.inc:3577 +msgid "No file selected." +msgstr "Geen bestanden geselecteerd." + +#: ../lib/modules/qmailUser.inc:48 +msgid "No forwarding" +msgstr "Geen doorsturen" + +#: ../lib/modules/posixGroup.inc:596 ../lib/modules/posixAccount.inc:104 +msgid "No free ID-Number!" +msgstr "Geen vrije ID-nummer!" + +#: ../lib/types/gon.inc:203 ../lib/types/zarafaDynamicGroupType.inc:166 +#: ../lib/types/group.inc:241 ../lib/types/netgroup.inc:170 +msgid "No groups found!" +msgstr "Geen groepen gevonden!" + +#: ../lib/types/host.inc:194 +msgid "No hosts found!" +msgstr "Geen hosts gevonden!" + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:59 +msgid "No image available" +msgstr "Geen afbeelding beschikbaar" + +#: ../templates/3rdParty/pla/lib/import_functions.php:94 +msgid "No import input" +msgstr "Geen importinvoer" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1354 +msgid "No internal attributes" +msgstr "Geen interne attributen" + +#: ../templates/tests/lamdaemonTest.php:195 +msgid "No lamdaemon path set, please update your LAM configuration settings." +msgstr "Geen lamdaemon pad gezet. Werk uw LAM configuratie-instellingen bij." + +#: ../templates/tests/lamdaemonTest.php:97 +#: ../templates/tests/lamdaemonTest.php:190 +msgid "No lamdaemon server set, please update your LAM configuration settings." +msgstr "" +"Geen lamdaemon server gezet. Werk uw LAM configuratie-instellingen bij." + +#: ../lib/modules/qmailUser.inc:49 +msgid "No local delivery" +msgstr "Geen lokale levering" + +#: ../templates/config/mainmanage.php:412 +msgid "No logging" +msgstr "Geen logging" + +#: ../templates/pdfedit/pdfpage.php:429 +msgid "No logo" +msgstr "Geen logo" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:157 +msgid "No new attributes available for this entry" +msgstr "Geen nieuw attributen beschikbaar voor dit item" + +#: ../templates/config/conftypes.php:325 ../help/help.inc:176 +msgid "No new entries" +msgstr "Geen nieuwe items" + +#: ../templates/multiEdit.php:315 ../lib/lists.inc:113 +msgid "No objects found!" +msgstr "Geen objecten gevonden!" + +#: ../templates/config/confmodules.php:406 +msgid "No or more than one base module selected!" +msgstr "Geen of meerdere basismodule(s) geselecteerd!" + +#: ../templates/config/confsave.php:53 ../templates/config/confmain.php:55 +#: ../lib/modules/passwordSelfReset.inc:1169 +msgid "No password was entered!" +msgstr "Geen wachtwoord ingevoerd!" + +#: ../lib/types/ppolicyType.inc:150 +msgid "No policies found!" +msgstr "Geen policies gevonden!" + +#: ../lib/types/pykotaPrinterType.inc:165 +msgid "No printers found!" +msgstr "Geen printers gevonden!" + +#: ../templates/tests/schemaTest.php:70 +msgid "No problems found." +msgstr "Geen problemen gevonden!" + +#: ../lib/modules/qmailUser.inc:50 +msgid "No program delivery" +msgstr "Geen programma levering" + +#: ../lib/modules/pykotaGroup.inc:63 ../lib/modules/pykotaUser.inc:63 +msgid "No quota" +msgstr "Geen quotum" + +#: ../lib/types/gon.inc:210 ../lib/types/group.inc:248 +msgid "No roles found!" +msgstr "Geen rollen gevonden!" + +#: ../lib/modules/customScripts.inc:215 +msgid "No scripts to run." +msgstr "Geen scripts om uit te voeren." + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "No section text specified" +msgstr "Geen sectie tekst gespecificeerd" + +#: ../lib/modules/passwordSelfReset.inc:1199 +msgid "No security answer found." +msgstr "Geen beveiligingsantwoord gevonden. " + +#: ../templates/config/conflogin.php:137 +msgid "No server profiles found. Please create one." +msgstr "Geen server profielen gevonden. Maak er eerst een aan." + +#: ../lib/types/kolabSharedFolderType.inc:142 +msgid "No shared folders found!" +msgstr "Geen shared folders gevonden!" + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "No static text specified" +msgstr "Geen statische tekst gespecificeerd" + +#: ../lib/modules/dhcp_settings.inc:318 +msgid "No subnet entered." +msgstr "Geen subnet ingevoerd." + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:45 +msgid "No such entry" +msgstr "Zo'n item bestaat niet" + +#: ../templates/3rdParty/pla/htdocs/compare.php:24 +#: ../templates/3rdParty/pla/htdocs/compare.php:27 +#: ../templates/3rdParty/pla/htdocs/delete.php:19 +msgid "No such entry." +msgstr "Zo'n item bestaat niet!" + +#: ../templates/schema/schema.php:438 +#, php-format +msgid "No such schema item: \"%s\"" +msgstr "Zo'n schemaitem als: \"%s\" bestaat niet" + +#: ../lib/types/sudo.inc:160 +msgid "No sudo roles found!" +msgstr "Geen sudo rollen gevonden!" + +#: ../lib/types/user.inc:530 +msgid "No users found!" +msgstr "Geen gebruikers gevonden!" + +#: ../templates/config/mainmanage.php:444 +msgid "Non-standard (\\n)" +msgstr "Niet-standaard (\\n)" + +#: ../lib/modules/qmailUser.inc:58 +msgid "None" +msgstr "Geen" + +#: ../lib/modules/sudoRole.inc:133 ../lib/modules/sudoRole.inc:195 +#: ../lib/modules/sudoRole.inc:222 ../lib/modules/sudoRole.inc:281 +#: ../lib/modules/sudoRole.inc:481 ../lib/modules/sudoRole.inc:822 +msgid "Not after" +msgstr "Niet na" + +#: ../lib/modules/sudoRole.inc:128 ../lib/modules/sudoRole.inc:201 +#: ../lib/modules/sudoRole.inc:223 ../lib/modules/sudoRole.inc:283 +#: ../lib/modules/sudoRole.inc:474 ../lib/modules/sudoRole.inc:817 +msgid "Not before" +msgstr "Niet voor" + +#: ../help/help.inc:68 +msgid "Note" +msgstr "Aantekening" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:125 +msgid "" +"Note: You may be required to enter new attributes that these object classes " +"require" +msgstr "" +"Opmerking: Mogelijk moeten nieuwe verplichten attributen van deze object " +"classen worden opgegeven." + +#: ../lib/modules/windowsGroup.inc:122 ../lib/modules/windowsGroup.inc:189 +#: ../lib/modules/windowsGroup.inc:259 ../lib/modules/windowsGroup.inc:349 +#: ../lib/modules/windowsGroup.inc:747 +msgid "Notes" +msgstr "Aantekening" + +#: ../templates/3rdParty/pla/lib/export_functions.php:450 +msgid "Nothing to export" +msgstr "Niets om te exporteren" + +#: ../templates/config/mainmanage.php:408 +msgid "Notice" +msgstr "Opmerking" + +#: ../templates/delete.php:103 +msgid "Number of child entries" +msgstr "Aantal kind items" + +#: ../lib/modules/customFields.inc:129 +msgid "Number of columns in text area." +msgstr "Aantal kolommen in tekst gebied." + +#: ../lib/modules/shadowAccount.inc:182 +msgid "" +"Number of days a user can login even his password has expired. -1=always." +msgstr "" +"Aantal dagen waarop een gebruiker nog kan inloggen zelfs als zijn wachtwoord " +"is verlopen. -1=altijd." + +#: ../lib/modules/shadowAccount.inc:186 +msgid "" +"Number of days a user has to wait until he is allowed to change his password " +"again. If set value must be >0." +msgstr "" +"Aantal dagen dat de gebruiker moet wachten voordat hij/zij zijn/haar " +"wachtwoord opnieuw mag wijzigen. Indien gezet moet de waarde groter dan nul " +"zijn." + +#: ../lib/modules/shadowAccount.inc:190 +msgid "" +"Number of days after a user has to change his password again. If set value " +"must be >0." +msgstr "" +"Aantal dagen dat de gebruiker zijn wachtwoord opnieuw moet wijzigen. Indien " +"gezet moet de waarde groter dan nul zijn." + +#: ../lib/modules/mitKerberos.inc:129 +msgid "Number of failed logins." +msgstr "Aantal mislukte logins." + +#: ../lib/modules/sambaDomain.inc:138 +msgid "Number of minutes after which the bad logon attempts are reset." +msgstr "Aantal minuten, waarna mislukte aanmeldingspogingen worden gereset." + +#: ../lib/modules/pykotaBillingCode.inc:90 +msgid "Number of pages printed with this billing code." +msgstr "Aantal afgedrukte pagina's met deze facturering code." + +#: ../lib/modules/customFields.inc:133 +msgid "Number of rows in text area." +msgstr "Aantal rijen in tekstgebied." + +#: ../templates/config/mainmanage.php:395 ../help/help.inc:162 +msgid "Number of rules that must match" +msgstr "Aantal regels die moeten overeenkomen" + +#: ../lib/modules/ppolicy.inc:85 ../lib/modules/sambaDomain.inc:126 +msgid "" +"Number of seconds after the user is allowed to change his password again." +msgstr "" +"Aantal seconden nadat de gebruiker is toegestaan ​​om zijn wachtwoord weer " +"veranderen." + +#: ../lib/modules/ppolicy.inc:89 ../lib/modules/sambaDomain.inc:130 +msgid "Number of seconds after which the user must change his password." +msgstr "Aantal seconden waarna de gebruiker zijn wachtwoord moet veranderen." + +#: ../templates/schema/schema.php:147 ../templates/schema/schema.php:344 +msgid "OID" +msgstr "OID" + +#: ../templates/ou_edit.php:83 +msgid "OU already exists!" +msgstr "OU bestaat al!" + +#: ../templates/ou_edit.php:94 +msgid "OU deleted successfully." +msgstr "OU met succes verwijderd." + +#: ../templates/ou_edit.php:152 ../lib/tools/ouEditor.inc:44 +msgid "OU editor" +msgstr "OU editor" + +#: ../templates/ou_edit.php:87 +msgid "OU is invalid!" +msgstr "OU is ongeldig!" + +#: ../templates/ou_edit.php:131 +msgid "OU is not empty or invalid!" +msgstr "OU is niet leeg of ongeldig!" + +#: ../help/help.inc:263 ../help/help.inc:265 +msgid "OU-Editor" +msgstr "OU-editor" + +#: ../templates/schema/schema.php:65 ../templates/schema/schema.php:66 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1324 +#: ../lib/modules/selfRegistration.inc:74 +#: ../lib/modules/selfRegistration.inc:214 ../lib/modules/customFields.inc:80 +#: ../lib/modules/customFields.inc:574 +msgid "Object classes" +msgstr "Objectklassen" + +#: ../lib/lists.inc:112 +#, php-format +msgid "Object count: %s" +msgstr "Object aantal: %s:" + +#: ../templates/schema/schema.php:152 ../templates/schema/schema.php:283 +msgid "Obsolete" +msgstr "Verouderd" + +#: ../lib/modules/sambaDomain.inc:289 ../lib/modules/sambaDomain.inc:298 +#: ../lib/modules/sambaDomain.inc:307 ../lib/modules/sambaDomain.inc:614 +#: ../lib/modules/sambaDomain.inc:619 ../lib/modules/sambaDomain.inc:624 +msgid "Off" +msgstr "Uit" + +#: ../lib/modules/windowsUser.inc:152 ../lib/modules/windowsUser.inc:344 +#: ../lib/modules/windowsUser.inc:508 ../lib/modules/windowsUser.inc:541 +#: ../lib/modules/windowsUser.inc:713 ../lib/modules/windowsUser.inc:1604 +#: ../lib/modules/windowsUser.inc:1733 ../lib/modules/inetOrgPerson.inc:164 +#: ../lib/modules/inetOrgPerson.inc:202 ../lib/modules/inetOrgPerson.inc:542 +#: ../lib/modules/inetOrgPerson.inc:577 ../lib/modules/inetOrgPerson.inc:814 +#: ../lib/modules/inetOrgPerson.inc:818 ../lib/modules/inetOrgPerson.inc:1383 +#: ../lib/modules/inetOrgPerson.inc:1386 ../lib/modules/inetOrgPerson.inc:1945 +#: ../lib/modules/inetOrgPerson.inc:2679 ../lib/modules/inetOrgPerson.inc:3592 +#: ../lib/modules/inetOrgPerson.inc:3650 +msgid "Office name" +msgstr "Kantoornaam" + +#: ../templates/lists/changePassword.php:349 +#: ../templates/lists/changePassword.php:386 +#: ../templates/lists/changePassword.php:427 +#: ../templates/lists/changePassword.php:458 +#: ../templates/tests/lamdaemonTest.php:92 ../templates/ou_edit.php:193 +#: ../templates/ou_edit.php:207 ../templates/masscreate.php:211 +#: ../templates/config/profmanage.php:254 +#: ../templates/config/profmanage.php:266 +#: ../templates/config/profmanage.php:275 +#: ../templates/config/profmanage.php:293 +#: ../templates/config/profmanage.php:302 +#: ../templates/config/profmanage.php:304 +#: ../templates/config/mainmanage.php:469 +#: ../templates/config/conflogin.php:177 ../templates/config/mainlogin.php:165 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminLogin.php:165 +#: ../templates/selfService/adminMain.php:594 +#: ../templates/selfService/adminMain.php:647 +#: ../templates/pdfedit/pdfmain.php:210 ../templates/pdfedit/pdfmain.php:217 +#: ../templates/pdfedit/pdfmain.php:223 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/profedit/profilemain.php:205 +#: ../templates/profedit/profilemain.php:211 +#: ../lib/types/automountType.inc:234 ../lib/types/user.inc:303 +#: ../lib/types/bind.inc:175 ../lib/modules/selfRegistration.inc:446 +#: ../lib/modules/zarafaContact.inc:433 ../lib/modules/zarafaGroup.inc:493 +#: ../lib/modules/device.inc:300 ../lib/modules/sambaSamAccount.inc:1436 +#: ../lib/modules/sambaSamAccount.inc:1571 ../lib/modules/zarafaUser.inc:917 +#: ../lib/modules/zarafaUser.inc:968 ../lib/modules/sambaGroupMapping.inc:508 +#: ../lib/modules/nisnetgroup.inc:479 ../lib/modules/nisnetgroup.inc:489 +#: ../lib/modules/asteriskExtension.inc:484 ../lib/modules/aliasEntry.inc:146 +#: ../lib/modules/aliasEntry.inc:166 ../lib/modules/qmailGroup.inc:862 +#: ../lib/modules/imapAccess.inc:295 ../lib/modules/organizationalRole.inc:337 +#: ../lib/modules/passwordSelfReset.inc:872 +#: ../lib/modules/passwordSelfReset.inc:1094 +#: ../lib/modules/windowsGroup.inc:603 ../lib/modules/groupOfNames.inc:394 +#: ../lib/modules/groupOfNames.inc:549 ../lib/modules/nisMailAlias.inc:375 +#: ../lib/modules/nisMailAlias.inc:384 ../lib/lists.inc:710 +#: ../lib/lists.inc:792 ../lib/modules.inc:1229 +msgid "Ok" +msgstr "Ok" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:98 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +msgid "Old value" +msgstr "Eerdere waarde" + +#: ../lib/modules/sambaDomain.inc:289 ../lib/modules/sambaDomain.inc:298 +#: ../lib/modules/sambaDomain.inc:307 ../lib/modules/sambaDomain.inc:615 +#: ../lib/modules/sambaDomain.inc:620 ../lib/modules/sambaDomain.inc:625 +msgid "On" +msgstr "Aan" + +#: ../lib/modules/sambaSamAccount.inc:244 +#: ../lib/modules/sambaSamAccount.inc:385 +#: ../lib/modules/sambaSamAccount.inc:1557 +#: ../lib/modules/sambaSamAccount.inc:1969 +msgid "On broken or timed out connection" +msgstr "Op verbroken of een time-out aansluiting" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:139 +#: ../templates/3rdParty/pla/htdocs/export_form.php:32 +msgid "One (one level beneath base)" +msgstr "Een (een niveau onder basis)" + +#: ../lib/modules/range.inc:135 ../lib/modules/fixed_ip.inc:127 +msgid "One or more errors occured. The invalid fields are marked." +msgstr "Een of meer fouten opgetreden. De ongeldige velden zijn gemarkeerd." + +#: ../templates/3rdParty/pla/htdocs/copy.php:98 +#: ../templates/3rdParty/pla/htdocs/copy.php:155 +#, php-format +msgid "Operation not successful. DN %s has not been created." +msgstr "Bewerking niet succesvol. DN %s is niet gemaakt." + +#: ../templates/serverInfo.php:277 ../templates/serverInfo.php:367 +msgid "Operation statistics" +msgstr "Operation statistieken" + +#: ../templates/3rdParty/pla/htdocs/copy.php:95 +#: ../templates/3rdParty/pla/htdocs/copy.php:153 +#, php-format +msgid "Operation successful. DN %s has been created." +msgstr "Bewerking succesvol. DN %s is aangemaakt." + +#: ../templates/multiEdit.php:117 ../help/help.inc:273 +msgid "Operations" +msgstr "Bewerkingen" + +#: ../templates/schema/schema.php:384 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1575 +msgid "Optional attributes" +msgstr "Optionele attributen" + +#: ../lib/modules/fixed_ip.inc:111 +msgid "Optional description for the PC." +msgstr "Optionele beschrijving voor de PC." + +#: ../lib/types/sudo.inc:83 ../lib/modules/mitKerberos.inc:408 +#: ../lib/modules/zarafaDynamicGroup.inc:267 +#: ../lib/modules/zarafaContact.inc:241 ../lib/modules/zarafaGroup.inc:278 +#: ../lib/modules/posixAccount.inc:245 ../lib/modules/zarafaUser.inc:571 +#: ../lib/modules/windowsUser.inc:723 ../lib/modules/kolabUser.inc:379 +#: ../lib/modules/sudoRole.inc:94 ../lib/modules/sudoRole.inc:123 +#: ../lib/modules/sudoRole.inc:189 ../lib/modules/sudoRole.inc:221 +#: ../lib/modules/sudoRole.inc:233 ../lib/modules/sudoRole.inc:451 +#: ../lib/modules/sudoRole.inc:811 ../lib/modules/asteriskExtension.inc:122 +#: ../lib/modules/asteriskVoicemail.inc:115 +#: ../lib/modules/asteriskVoicemail.inc:125 +#: ../lib/modules/asteriskVoicemail.inc:142 +#: ../lib/modules/asteriskVoicemail.inc:190 +#: ../lib/modules/asteriskVoicemail.inc:258 +#: ../lib/modules/asteriskVoicemail.inc:375 ../lib/modules/qmailGroup.inc:611 +#: ../lib/modules/heimdalKerberos.inc:339 +msgid "Options" +msgstr "Opties" + +#: ../lib/modules/asteriskVoicemail.inc:116 +msgid "Options for Asterisk voicemail account (e.g. sendvoicemail=yes)." +msgstr "Opties voor Asterisk voicemail account (bv sendvoicemail=yes)." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:39 +msgid "Or paste your LDIF here" +msgstr "Of plak hier uw LDIF" + +#: ../lib/modules/oracleService.inc:47 +msgid "Oracle database" +msgstr "Oracle database" + +#: ../lib/types/oracleContextType.inc:48 +msgid "Oracle database entries" +msgstr "Oracle database entries" + +#: ../lib/types/oracleContextType.inc:39 +msgid "Oracle databases" +msgstr "Oracle databases" + +#: ../lib/modules/sudoRole.inc:138 ../lib/modules/sudoRole.inc:207 +#: ../lib/modules/sudoRole.inc:224 ../lib/modules/sudoRole.inc:285 +#: ../lib/modules/sudoRole.inc:484 ../lib/modules/sudoRole.inc:812 +msgid "Order" +msgstr "Sorteer op" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:166 +msgid "Order by" +msgstr "Sorteer op" + +#: ../templates/schema/schema.php:171 +msgid "Ordering" +msgstr "Sortering" + +#: ../lib/modules/eduPerson.inc:126 ../lib/modules/eduPerson.inc:200 +#: ../lib/modules/eduPerson.inc:227 ../lib/modules/eduPerson.inc:245 +#: ../lib/modules/eduPerson.inc:346 ../lib/modules/eduPerson.inc:587 +#: ../lib/modules/inetOrgPerson.inc:226 ../lib/modules/inetOrgPerson.inc:510 +#: ../lib/modules/inetOrgPerson.inc:622 ../lib/modules/inetOrgPerson.inc:846 +#: ../lib/modules/inetOrgPerson.inc:850 ../lib/modules/inetOrgPerson.inc:1532 +#: ../lib/modules/inetOrgPerson.inc:1535 ../lib/modules/inetOrgPerson.inc:1950 +#: ../lib/modules/inetOrgPerson.inc:3622 ../lib/modules/inetOrgPerson.inc:3658 +msgid "Organisation" +msgstr "Organisatie" + +#: ../lib/modules/inetOrgPerson.inc:166 ../lib/modules/inetOrgPerson.inc:223 +#: ../lib/modules/inetOrgPerson.inc:502 ../lib/modules/inetOrgPerson.inc:625 +#: ../lib/modules/inetOrgPerson.inc:838 ../lib/modules/inetOrgPerson.inc:842 +#: ../lib/modules/inetOrgPerson.inc:1523 ../lib/modules/inetOrgPerson.inc:1526 +#: ../lib/modules/inetOrgPerson.inc:1949 ../lib/modules/inetOrgPerson.inc:2811 +#: ../lib/modules/inetOrgPerson.inc:3620 ../lib/modules/inetOrgPerson.inc:3658 +msgid "Organisational unit" +msgstr "Organisatorische eenheid" + +#: ../lib/modules/eduPerson.inc:134 ../lib/modules/eduPerson.inc:138 +#: ../lib/modules/eduPerson.inc:212 ../lib/modules/eduPerson.inc:228 +#: ../lib/modules/eduPerson.inc:350 ../lib/modules/eduPerson.inc:589 +msgid "Organisational units" +msgstr "Organisatorische eenheden" + +#: ../lib/modules/eduPerson.inc:249 +msgid "Organisational units contains an invalid entry." +msgstr "Organisatorische eenheden bevat ongeldige invoer." + +#: ../templates/multiEdit.php:98 ../templates/config/confmain.php:328 +msgid "Other" +msgstr "Ander" + +#: ../lib/modules/windowsUser.inc:144 ../lib/modules/windowsUser.inc:148 +#: ../lib/modules/windowsUser.inc:368 ../lib/modules/windowsUser.inc:507 +#: ../lib/modules/windowsUser.inc:603 ../lib/modules/windowsUser.inc:719 +#: ../lib/modules/windowsUser.inc:1603 +msgid "Other telephone numbers" +msgstr "Andere telefoonnummers" + +#: ../lib/modules/windowsUser.inc:180 ../lib/modules/windowsUser.inc:184 +#: ../lib/modules/windowsUser.inc:380 ../lib/modules/windowsUser.inc:515 +#: ../lib/modules/windowsUser.inc:721 ../lib/modules/windowsUser.inc:1611 +msgid "Other web sites" +msgstr "Andere websites" + +#: ../lib/modules/customScripts.inc:84 ../lib/modules/customScripts.inc:100 +#: ../lib/modules/customScripts.inc:110 +msgid "Output may contain HTML" +msgstr "Uitvoer mag HTML bevatten" + +#: ../lib/modules/customScripts.inc:264 ../lib/modules/customScripts.inc:554 +#, php-format +msgid "Output of command \"%s\" with return code %s" +msgstr "Uitvoer van commando \"%s\" met return code %s" + +#: ../lib/modules/pykotaUser.inc:144 ../lib/modules/pykotaUser.inc:171 +#: ../lib/modules/pykotaUser.inc:253 ../lib/modules/pykotaUser.inc:263 +#: ../lib/modules/pykotaUser.inc:324 ../lib/modules/pykotaUser.inc:402 +#: ../lib/modules/pykotaUser.inc:899 +msgid "Overcharge factor" +msgstr "Overcharge factor" + +#: ../lib/modules/pykotaUser.inc:145 +msgid "" +"Overcharge factor that is applied when computing the cost of a print job. " +"The number of pages is not changed." +msgstr "" +"Overbelasting factor die wordt toegepast bij de berekening van de kosten van " +"een afdruktaak. Het aantal pagina's is niet veranderd." + +#: ../templates/serverInfo.php:168 +msgid "Overlays" +msgstr "Overlays" + +#: ../lib/modules/zarafaUser.inc:89 +msgid "Override default quota settings." +msgstr "Override default quota-instellingen." + +#: ../templates/config/confmain.php:320 ../lib/types/asteriskExt.inc:96 +#: ../lib/types/asteriskExt.inc:158 +msgid "Owner" +msgstr "Eigenaar" + +#: ../lib/types/gon.inc:108 ../lib/modules/device.inc:69 +#: ../lib/modules/device.inc:73 ../lib/modules/device.inc:103 +#: ../lib/modules/device.inc:128 ../lib/modules/device.inc:180 +#: ../lib/modules/device.inc:424 ../lib/modules/groupOfNames.inc:93 +#: ../lib/modules/groupOfNames.inc:97 ../lib/modules/groupOfNames.inc:143 +#: ../lib/modules/groupOfNames.inc:174 ../lib/modules/groupOfNames.inc:197 +#: ../lib/modules/groupOfNames.inc:240 ../lib/modules/groupOfNames.inc:398 +#: ../lib/modules/groupOfNames.inc:702 +msgid "Owners" +msgstr "Eigenaren" + +#: ../lib/modules/dhcp_settings.inc:97 +msgid "P-Node (0x02)" +msgstr "P-Node (0x02)" + +#: ../lib/modules/fixed_ip.inc:98 ../lib/modules/fixed_ip.inc:425 +#: ../lib/modules/fixed_ip.inc:740 +msgid "PC name" +msgstr "PC-naam" + +#: ../lib/modules/windowsHost.inc:96 +msgid "PC01" +msgstr "PC01" + +#: ../templates/pdfedit/pdfpage.php:445 ../templates/pdfedit/pdfmain.php:84 +#: ../lib/tools/pdfEdit.inc:44 +msgid "PDF editor" +msgstr "PDF editor" + +#: ../templates/masscreate.php:275 ../templates/pdfedit/pdfmain.php:310 +#: ../lib/lists.inc:688 ../help/help.inc:204 +msgid "PDF structure" +msgstr "PDF struktuur" + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "PDF structure name not valid" +msgstr "PDF struktuur naam is ongeldig" + +#: ../templates/pdfedit/pdfmain.php:168 +msgid "PDF structure was successfully saved." +msgstr "PDF struktuur is met succes opgeslagen" + +#: ../templates/pdfedit/pdfmain.php:277 +msgid "PDF structures" +msgstr "PDF strukturen" + +#: ../templates/serverInfo.php:264 +msgid "PDUs sent" +msgstr "PDU's gestuurd" + +#: ../templates/config/mainmanage.php:432 ../help/help.inc:158 +msgid "PHP error reporting" +msgstr "PHP foutrapportage" + +#: ../templates/config/mainmanage.php:428 +msgid "PHP system setting" +msgstr "PHP systeem instellingen" + +#: ../lib/modules/zarafaUser.inc:306 ../lib/modules/zarafaUser.inc:645 +#: ../lib/modules/zarafaUser.inc:1334 +msgid "POP3" +msgstr "POP3" + +#: ../templates/lists/changePassword.php:415 +#: ../templates/lists/changePassword.php:446 ../lib/types/user.inc:376 +#: ../lib/types/user.inc:408 +msgid "PPolicy" +msgstr "PPolicy" + +#: ../lib/modules/bindDLZ.inc:115 ../lib/modules/bindDLZ.inc:301 +#: ../lib/modules/bindDLZ.inc:307 ../lib/modules/bindDLZ.inc:485 +msgid "PTR record" +msgstr "PTR-record" + +#: ../lib/modules/bindDLZ.inc:422 ../lib/modules/bindDLZ.inc:441 +#: ../lib/modules/bindDLZ.inc:1496 +msgid "PTR records" +msgstr "PTR-records" + +#: ../lib/modules/sambaSamAccount.inc:557 +msgid "Pacific Time (US & Canada)" +msgstr "Pacific Time (US & Canada)" + +#: ../lib/modules/dhcp_settings.inc:166 +msgid "" +"Packets are sent to the default gateway if the receiver does not reside in " +"the same network. The default gateway routes them to the target network." +msgstr "" +"Netwerk pakketten worden verstuurd naar de default gateway als de ontvanger " +"zich niet bevind op hetzelfde netwerk. De standaard gateway routeerd hen " +"naar het doel netwerk." + +#: ../lib/types/pykotaBillingCodeType.inc:94 +#: ../lib/modules/pykotaBillingCode.inc:89 +#: ../lib/modules/pykotaBillingCode.inc:118 +#: ../lib/modules/pykotaBillingCode.inc:151 +#: ../lib/modules/pykotaBillingCode.inc:264 +msgid "Page count" +msgstr "Pagina aantal" + +#: ../templates/selfService/adminMain.php:489 ../help/help.inc:234 +msgid "Page header" +msgstr "Pagina kop" + +#: ../templates/selfService/adminMain.php:402 +msgid "Page layout" +msgstr "Pagina layout" + +#: ../lib/modules/inetOrgPerson.inc:78 ../lib/modules/inetOrgPerson.inc:163 +#: ../lib/modules/inetOrgPerson.inc:452 ../lib/modules/inetOrgPerson.inc:595 +#: ../lib/modules/inetOrgPerson.inc:734 ../lib/modules/inetOrgPerson.inc:738 +#: ../lib/modules/inetOrgPerson.inc:1439 ../lib/modules/inetOrgPerson.inc:1442 +#: ../lib/modules/inetOrgPerson.inc:1936 ../lib/modules/inetOrgPerson.inc:2569 +#: ../lib/modules/inetOrgPerson.inc:3604 ../lib/modules/inetOrgPerson.inc:3653 +#: ../lib/modules/asteriskVoicemail.inc:111 +#: ../lib/modules/asteriskVoicemail.inc:141 +#: ../lib/modules/asteriskVoicemail.inc:184 +#: ../lib/modules/asteriskVoicemail.inc:256 +#: ../lib/modules/asteriskVoicemail.inc:373 +msgid "Pager" +msgstr "Pieper" + +#: ../lib/modules/asteriskVoicemail.inc:112 +msgid "Pager number for Asterisk voicemail." +msgstr "Pieper nummer voor Asterisk voicemail." + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:35 +msgid "Parent DN" +msgstr "Ouder DN" + +#: ../lib/modules/puppetClient.inc:88 ../lib/modules/puppetClient.inc:134 +#: ../lib/modules/puppetClient.inc:154 ../lib/modules/puppetClient.inc:265 +#: ../lib/modules/puppetClient.inc:431 ../lib/modules/puppetClient.inc:466 +msgid "Parent node" +msgstr "Ouder node" + +#: ../lib/modules/puppetClient.inc:190 +msgid "Parent node not found." +msgstr "Ouder node niet gevonden" + +#: ../templates/schema/schema.php:366 +msgid "Parent to" +msgstr "Ouder van" + +#: ../templates/3rdParty/pla/htdocs/import.php:98 +msgid "Parse error" +msgstr "Parse fout" + +#: ../lib/modules/pykotaPrinter.inc:107 ../lib/modules/pykotaPrinter.inc:166 +#: ../lib/modules/pykotaPrinter.inc:196 ../lib/modules/pykotaPrinter.inc:243 +#: ../lib/modules/pykotaPrinter.inc:595 +msgid "Passthrough" +msgstr "Passthrough" + +#: ../templates/lists/changePassword.php:365 ../templates/login.php:379 +#: ../templates/selfService/selfServiceLogin.php:323 +#: ../lib/selfService.inc:393 ../lib/modules/mitKerberos.inc:156 +#: ../lib/modules/mitKerberos.inc:242 ../lib/modules/mitKerberos.inc:257 +#: ../lib/modules/mitKerberos.inc:795 ../lib/modules/mitKerberos.inc:798 +#: ../lib/modules/selfRegistration.inc:407 +#: ../lib/modules/selfRegistration.inc:533 +#: ../lib/modules/selfRegistration.inc:536 +#: ../lib/modules/selfRegistration.inc:539 +#: ../lib/modules/asteriskAccount.inc:115 +#: ../lib/modules/asteriskAccount.inc:325 ../lib/modules/posixGroup.inc:205 +#: ../lib/modules/posixGroup.inc:593 ../lib/modules/sambaSamAccount.inc:105 +#: ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:251 +#: ../lib/modules/sambaSamAccount.inc:426 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/posixAccount.inc:110 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:332 ../lib/modules/posixAccount.inc:418 +#: ../lib/modules/posixAccount.inc:522 ../lib/modules/posixAccount.inc:1496 +#: ../lib/modules/posixAccount.inc:1874 ../lib/modules/posixAccount.inc:1877 +#: ../lib/modules/windowsUser.inc:223 ../lib/modules/windowsUser.inc:272 +#: ../lib/modules/windowsUser.inc:524 ../lib/modules/windowsUser.inc:549 +#: ../lib/modules/windowsUser.inc:615 ../lib/modules/windowsUser.inc:616 +#: ../lib/modules/windowsUser.inc:1646 ../lib/modules/windowsUser.inc:1649 +#: ../lib/modules/inetOrgPerson.inc:862 ../lib/modules/inetOrgPerson.inc:1589 +#: ../lib/modules/inetOrgPerson.inc:2086 ../lib/modules/inetOrgPerson.inc:3660 +#: ../lib/modules/asteriskVoicemail.inc:99 +#: ../lib/modules/asteriskVoicemail.inc:165 +#: ../lib/modules/customFields.inc:2444 ../lib/modules/heimdalKerberos.inc:124 +#: ../lib/modules/heimdalKerberos.inc:211 +#: ../lib/modules/heimdalKerberos.inc:223 +#: ../lib/modules/heimdalKerberos.inc:695 +#: ../lib/modules/heimdalKerberos.inc:698 ../lib/modules.inc:1043 +#: ../help/help.inc:202 +msgid "Password" +msgstr "Wachtwoord" + +#: ../lib/modules/sambaSamAccount.inc:295 +#: ../lib/modules/sambaSamAccount.inc:1160 ../lib/modules/windowsUser.inc:214 +#: ../lib/modules/windowsUser.inc:410 ../lib/modules/windowsUser.inc:522 +#: ../lib/modules/windowsUser.inc:1634 +msgid "Password change at next login" +msgstr "Wachtwoord te wijzigen bij de volgende login" + +#: ../lib/modules/mitKerberos.inc:148 ../lib/modules/mitKerberos.inc:261 +#: ../lib/modules/heimdalKerberos.inc:118 +#: ../lib/modules/heimdalKerberos.inc:227 +msgid "Password change command" +msgstr "Wachtwoord wijzigen commando" + +#: ../templates/lists/changePassword.php:304 +msgid "Password change options" +msgstr "Wachtwoord wijzigen opties" + +#: ../lib/modules/ppolicyUser.inc:59 ../lib/modules/ppolicyUser.inc:74 +#: ../lib/modules/ppolicyUser.inc:132 ../lib/modules/ppolicyUser.inc:265 +msgid "Password change required" +msgstr "Wachtwoord wijzigen vereist" + +#: ../lib/types/ppolicyType.inc:91 ../lib/modules/ppolicy.inc:136 +#: ../lib/modules/ppolicy.inc:156 ../lib/modules/ppolicy.inc:300 +#: ../lib/modules/ppolicy.inc:510 +msgid "Password change requires old password" +msgstr "Wachtwoord verandering vereist oude wachtwoord" + +#: ../lib/modules/mitKerberos.inc:189 ../lib/modules/mitKerberos.inc:467 +#: ../lib/modules/heimdalKerberos.inc:154 +#: ../lib/modules/heimdalKerberos.inc:393 +msgid "Password change service" +msgstr "Wachtwoord wijzigen dienst" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:30 +msgid "Password check" +msgstr "Wachtwoord controle" + +#: ../lib/modules/mitKerberos.inc:297 ../lib/modules/selfRegistration.inc:536 +#: ../lib/modules/posixGroup.inc:593 ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:107 ../lib/modules/posixAccount.inc:110 +#: ../lib/modules/posixAccount.inc:111 ../lib/modules/windowsUser.inc:616 +#: ../lib/modules/inetOrgPerson.inc:107 +msgid "Password contains invalid characters. Valid characters are:" +msgstr "Wachtwoord bevat ongeldige tekens. Geldige tekens zijn:" + +#: ../lib/modules/sambaSamAccount.inc:280 +#: ../lib/modules/sambaSamAccount.inc:283 +#: ../lib/modules/sambaSamAccount.inc:448 +#: ../lib/modules/sambaSamAccount.inc:1150 +#: ../lib/modules/sambaSamAccount.inc:1744 ../lib/modules/windowsUser.inc:198 +#: ../lib/modules/windowsUser.inc:394 ../lib/modules/windowsUser.inc:518 +#: ../lib/modules/windowsUser.inc:747 ../lib/modules/windowsUser.inc:1624 +msgid "Password does not expire" +msgstr "Wachtwoord verloopt niet" + +#: ../lib/types/user.inc:103 ../lib/modules/shadowAccount.inc:61 +#: ../lib/modules/shadowAccount.inc:113 ../lib/modules/shadowAccount.inc:170 +#: ../lib/modules/shadowAccount.inc:181 ../lib/modules/shadowAccount.inc:215 +#: ../lib/modules/shadowAccount.inc:324 ../lib/modules/shadowAccount.inc:502 +msgid "Password expiration" +msgstr "Wachtwoord verloop" + +#: ../lib/modules/shadowAccount.inc:61 ../lib/modules/shadowAccount.inc:62 +msgid "Password expiration must be are natural number or -1." +msgstr "Wachtwoord verloopperiode moet een getal zijn of -1." + +#: ../templates/selfService/adminMain.php:473 ../help/help.inc:238 +msgid "Password field label" +msgstr "Wachtwoord veld label" + +#: ../lib/modules/asteriskVoicemail.inc:100 +msgid "Password for voicemail mailbox." +msgstr "Wachtwoord voor de voicemail mailbox." + +#: ../lib/modules/posixGroup.inc:504 ../lib/modules/posixGroup.inc:557 +#: ../lib/modules/posixAccount.inc:191 ../lib/modules/posixAccount.inc:247 +#: ../lib/modules/posixAccount.inc:457 ../lib/modules/inetOrgPerson.inc:834 +#: ../lib/modules/inetOrgPerson.inc:3567 ../lib/modules/customFields.inc:136 +#: ../lib/modules/customFields.inc:2458 +msgid "Password hash type" +msgstr "Type hash wachtwoord" + +#: ../lib/types/ppolicyType.inc:80 ../lib/modules/ppolicy.inc:92 +#: ../lib/modules/ppolicy.inc:145 ../lib/modules/ppolicy.inc:169 +#: ../lib/modules/ppolicy.inc:230 ../lib/modules/ppolicy.inc:474 +#: ../lib/modules/sambaDomain.inc:105 ../lib/modules/sambaDomain.inc:191 +#: ../lib/modules/sambaDomain.inc:283 ../lib/modules/sambaDomain.inc:606 +msgid "Password history length" +msgstr "Wachtwoord geschiedenis lengte" + +#: ../templates/config/confmain.php:367 +msgid "Password mail settings" +msgstr "Wachtwoord mailinstellingen" + +#: ../lib/modules/shadowAccount.inc:59 ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/ppolicy.inc:167 ../lib/modules/sambaDomain.inc:222 +msgid "Password maximum age must be are natural number." +msgstr "Maximum wachtwoord levensduur moet een getal zijn." + +#: ../lib/modules/shadowAccount.inc:66 +msgid "Password maximum age must be bigger as password minimum age." +msgstr "Maximum wachtwoord levensduurd moet hoger zijn dan het minimum." + +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/ppolicy.inc:168 +#: ../lib/modules/sambaDomain.inc:220 +msgid "Password maximum age must be bigger than password minimum age." +msgstr "Maximum wachtwoord levensduurd moet groter zijn dan het minimum." + +#: ../lib/modules/shadowAccount.inc:57 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/ppolicy.inc:166 ../lib/modules/sambaDomain.inc:221 +msgid "Password minimum age must be are natural number." +msgstr "Minimum wachtwoord levensduur moet een getal zijn." + +#: ../templates/config/mainmanage.php:401 ../help/help.inc:166 +msgid "Password must not contain part of user/first/last name" +msgstr "" +"Het wachtwoord mag geen delen bevatten van de gebruikers-, voor of achternaam" + +#: ../templates/config/mainmanage.php:399 ../help/help.inc:164 +msgid "Password must not contain user name" +msgstr "Wachtwoord mag geen gebruikersnaam bevatten" + +#: ../lib/modules/imapAccess.inc:94 ../lib/modules/imapAccess.inc:290 +msgid "Password of IMAP admin user" +msgstr "Wachtwoord van de IMAP beheerder " + +#: ../lib/types/ppolicyType.inc:39 +msgid "Password policies" +msgstr "Wachtwoordbeleid" + +#: ../lib/types/ppolicyType.inc:48 +msgid "Password policies (ppolicy)" +msgstr "Wachtwoordbeleid (ppolicy)" + +#: ../templates/config/mainmanage.php:382 ../lib/types/user.inc:284 +#: ../lib/types/user.inc:837 ../lib/modules/ppolicyUser.inc:45 +#: ../lib/modules/ppolicyUser.inc:55 ../lib/modules/ppolicyUser.inc:67 +#: ../lib/modules/ppolicyUser.inc:83 ../lib/modules/ppolicyUser.inc:123 +#: ../lib/modules/ppolicyUser.inc:260 ../lib/modules/ppolicyUser.inc:293 +#: ../lib/modules/ppolicy.inc:62 ../lib/modules/sambaDomain.inc:266 +#: ../help/help.inc:154 +msgid "Password policy" +msgstr "Wachtwoordbeleid" + +#: ../lib/types/ppolicyType.inc:81 ../lib/modules/ppolicy.inc:96 +#: ../lib/modules/ppolicy.inc:146 ../lib/modules/ppolicy.inc:242 +#: ../lib/modules/ppolicy.inc:490 +msgid "Password quality check" +msgstr "Wachtwoord kwaliteitscontrole" + +#: ../lib/modules/passwordSelfReset.inc:539 +msgid "Password reset confirmation" +msgstr "Wachtwoord reset bevestiging" + +#: ../lib/modules/passwordSelfReset.inc:559 +msgid "Password reset notification" +msgstr "Wachtwoord reset kennisgeving" + +#: ../lib/modules/passwordSelfReset.inc:66 +#: ../lib/modules/passwordSelfReset.inc:875 +#: ../lib/modules/passwordSelfReset.inc:1097 +msgid "Password self reset" +msgstr "Wachtwoord zelf opnieuw in te stellen" + +#: ../lib/modules/passwordSelfReset.inc:1607 +msgid "Password successfully reset." +msgstr "Wachtwoord succesvol reset." + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:108 +#: ../lib/modules/shadowAccount.inc:168 ../lib/modules/shadowAccount.inc:177 +#: ../lib/modules/shadowAccount.inc:209 ../lib/modules/shadowAccount.inc:316 +#: ../lib/modules/shadowAccount.inc:501 +msgid "Password warning" +msgstr "Wachtwoord waarschuwing" + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:64 +msgid "Password warning must be are natural number." +msgstr "Wachtwoord waarschuwing moet een natuurlijk getal zijn." + +#: ../templates/config/confmain.php:610 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:61 +#: ../lib/modules/passwordSelfReset.inc:1174 ../lib/modules.inc:1133 +msgid "Passwords are different!" +msgstr "Wachtwoorden verschillen!" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:59 +msgid "Passwords match." +msgstr "Wachtwoorden zijn gelijk." + +#: ../lib/types/nisObjectType.inc:77 +msgid "Path" +msgstr "Pad" + +#: ../lib/modules/windowsUser.inc:205 +msgid "" +"Path of the user profile (UNC-path, e.g. \\\\server\\share\\user). $user is " +"replaced with user name." +msgstr "" +"Pad van het gebruikersprofiel (UNC-pad, bijvoorbeeld \\\\server\\share" +"\\user). $user wordt vervangen door de gebruikersnaam." + +#: ../lib/modules/sambaSamAccount.inc:359 +msgid "Path of the user profile." +msgstr "Pad van het gebruikersprofiel." + +#: ../lib/modules/sambaSamAccount.inc:310 +msgid "" +"Path of the user profile. Can be a local absolute path or a UNC-path (\\" +"\\server\\share). $user and $group are replaced with user and group name." +msgstr "" +"Pad naar gebruikersprofiel. Mag een lokaal absolut pad zijn of een UNC (\\" +"\\server\\share). $user en $group worden vervangen door de gebruiker- en " +"groepsnaam." + +#: ../lib/modules/imapAccess.inc:112 ../lib/modules/imapAccess.inc:146 +msgid "Path separator" +msgstr "Pad scheidingsteken" + +#: ../templates/config/confmain.php:311 +msgid "Path to external script" +msgstr "Pad naar extern script" + +#: ../lib/modules/ddns.inc:93 ../lib/modules/ddns.inc:371 +msgid "Path to key for DNS updates" +msgstr "Pad naar de sleutel voor DNS-updates" + +#: ../lib/modules/qmailGroup.inc:140 +msgid "" +"Path to the maildir/mbox on the mail system for sender confirmation and " +"moderation." +msgstr "" +"Pad naar de maildir / mbox op het mailsysteem voor afzender bevestiging en " +"moderation." + +#: ../lib/modules/qmailUser.inc:248 +msgid "Path to the maildir/mbox on the mail system." +msgstr "Pad naar de maildir / mbox op het mailsysteem." + +#: ../lib/modules/pykotaUser.inc:152 ../lib/modules/pykotaUser.inc:326 +#: ../lib/modules/pykotaUser.inc:369 +msgid "Payment" +msgstr "Betaling" + +#: ../lib/modules/pykotaUser.inc:148 +msgid "Payment and job history" +msgstr "Betaling en taakgeschiedenis" + +#: ../lib/modules/pykotaUser.inc:149 +msgid "Payment and job history for this user." +msgstr "Betaling en taakgeschiedenis voor deze gebruiker." + +#: ../lib/modules/pykotaUser.inc:265 ../lib/modules/pykotaUser.inc:283 +#: ../lib/modules/pykotaUser.inc:384 ../lib/modules/pykotaUser.inc:591 +#: ../lib/modules/pykotaUser.inc:983 +msgid "Payment history" +msgstr "Betaalgeschiedenis" + +#: ../lib/tools/multiEdit.inc:53 +msgid "Performs modifications on multiple LDAP entries." +msgstr "Voert wijzigingen door op meerdere LDAP entries." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:41 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:64 +msgid "Permanently delete all children also?" +msgstr "Permanent verwijderen inclusief kinderen?" + +#: ../lib/modules/asteriskAccount.inc:171 +#: ../lib/modules/asteriskAccount.inc:281 +#: ../lib/modules/asteriskAccount.inc:422 +#: ../lib/modules/asteriskAccount.inc:678 +#: ../lib/modules/asteriskAccount.inc:997 +#: ../lib/modules/asteriskAccount.inc:1263 +msgid "Permit" +msgstr "Toestaan" + +#: ../lib/modules/inetOrgPerson.inc:132 +msgid "Personal" +msgstr "Persoonlijk" + +#: ../lib/selfService.inc:389 +msgid "Personal data" +msgstr "Persoonlijke gegevens" + +#: ../lib/types/user.inc:102 ../lib/types/user.inc:620 +#: ../lib/modules/inetOrgPerson.inc:162 ../lib/modules/inetOrgPerson.inc:2708 +#: ../lib/modules/inetOrgPerson.inc:2715 ../lib/modules/inetOrgPerson.inc:3632 +#: ../lib/modules/inetOrgPerson.inc:3660 ../lib/modules/inetOrgPerson.inc:3679 +msgid "Photo" +msgstr "Foto" + +#: ../lib/modules/inetOrgPerson.inc:1697 +msgid "Photo file" +msgstr "Foto bestand" + +#: ../lib/modules/inetOrgPerson.inc:1695 +msgid "Photo file (JPG format)" +msgstr "Fotobestand (JPG formaat)" + +#: ../lib/modules/asteriskAccount.inc:175 +#: ../lib/modules/asteriskAccount.inc:282 +#: ../lib/modules/asteriskAccount.inc:429 +#: ../lib/modules/asteriskAccount.inc:682 +#: ../lib/modules/asteriskAccount.inc:998 +#: ../lib/modules/asteriskAccount.inc:1265 +msgid "Pickup group" +msgstr "Pickup-groep" + +#: ../lib/modules/ldapPublicKey.inc:77 +msgid "Please a comma separated list of your public SSH keys." +msgstr "" +"S.v.p. een komma gescheiden lijst van de publieke SSH sleutels ingeven." + +#: ../lib/modules/nisMailAliasUser.inc:131 +msgid "Please activate the mail aliases type for this server profile." +msgstr "Activeer het type mail aliassen voor dit server profiel." + +#: ../lib/modules/customScripts.inc:85 +msgid "" +"Please activate this option if your scripts may generate HTML output. " +"Otherwise, the output is treated as plain text." +msgstr "" +"Activeer deze optie als uw scripts HTML output genereren. Anders wordt de " +"uitvoer behandeld als gewone tekst." + +#: ../lib/modules/asteriskExtension.inc:193 +msgid "Please add at least one extension owner." +msgstr "Voeg ten minste een extensie eigenaar toe." + +#: ../help/help.inc:157 +msgid "" +"Please change this setting only if you experience problems in receiving " +"emails from LAM. This defines the line ending of emails." +msgstr "" +"Activeer dit alleen als u problemen ondervindt bij het ontvangen van e-mails " +"van LAM. Dit definieert de lijn einde van e-mails." + +#: ../lib/modules/qmailGroup.inc:331 +msgid "Please check if this email should be sent." +msgstr "Gelieve te controleren of deze e-mail moet worden verstuurd." + +#: ../lib/modules/sambaSamAccount.inc:1098 +msgid "Please check your settings on the Unix page!" +msgstr "Controleer dan uw instellingen op de Unix-pagina!" + +#: ../lib/modules/imapAccess.inc:104 +msgid "" +"Please choose the attribute to get the IMAP user name. The default is \"mail" +"\" but you can also use \"uid\"." +msgstr "" +"Kies het attribuut de IMAP-gebruikersnaam te krijgen. Standaard is \"mail\", " +"maar u kunt ook gebruik maken van \"uid\"." + +#: ../lib/modules/passwordSelfReset.inc:543 +msgid "Please click here to continue: @@resetLink@@" +msgstr "Klik hier om verder te gaan:@@resetLink@@" + +#: ../lib/types/user.inc:298 +msgid "Please click to lock/unlock this account." +msgstr "Klik voor het vergrendelen / ontgrendelen van dit account." + +#: ../lib/modules/pykotaPrinter.inc:219 +msgid "Please enter \"Yes\" or \"No\"." +msgstr "Geef \"Ja\" of \"Nee\"." + +#: ../lib/modules/sambaSamAccount.inc:108 +msgid "Please enter a RID number or the name of a special account!" +msgstr "Voer een RID nummer in of de naam van een speciaal account!" + +#: ../lib/modules/asteriskAccount.inc:555 +msgid "Please enter a caller ID." +msgstr "Voer een beller-ID in." + +#: ../lib/modules/imapAccess.inc:101 +msgid "" +"Please enter a comma separated list of domain names (e.g. \"company.com," +"example.com\"). LAM will only manage mailboxes from these domains." +msgstr "" +"Voer een door komma's gescheiden lijst van domeinnamen in (bijv. \"bedrijf." +"nl, voorbeeld.nl\"). LAM zal alleen mailboxen van deze domeinen beheren." + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +msgid "Please enter a comma separated list of host names!" +msgstr "S.v.p. een kommagescheiden lijst van hostnamen invoeren." + +#: ../lib/modules/asteriskExtension.inc:185 +msgid "Please enter a common name." +msgstr "Voer een algemene naam in." + +#: ../lib/modules/imapAccess.inc:178 +msgid "Please enter a correct list of valid mail domains." +msgstr "Voer een correcte lijst met geldige e-mail domeinen in." + +#: ../lib/modules/sudoRole.inc:130 ../lib/modules/sudoRole.inc:135 +#: ../lib/modules/sudoRole.inc:281 ../lib/modules/sudoRole.inc:282 +#: ../lib/modules/sudoRole.inc:283 ../lib/modules/sudoRole.inc:284 +msgid "Please enter a date in format \"DD.MM.YYYY HH:MM\" or \"DD.MM.YYYY\"." +msgstr "" +"S.v.p. een geldige datum invoeren in formaat \"DD.MM.YYYY HH:MM\" of \"DD." +"MM.YYYY\"." + +#: ../lib/modules/customFields.inc:89 +msgid "Please enter a descriptive label for this field." +msgstr "Geef een beschrijvend label voor dit veld." + +#: ../lib/modules/nisObject.inc:62 ../lib/modules/automount.inc:65 +#: ../lib/modules/sudoRole.inc:67 ../lib/modules/oracleService.inc:62 +msgid "Please enter a descriptive name for this entry." +msgstr "Voer een beschrijvende naam voor dit item in." + +#: ../lib/modules/windowsGroup.inc:119 +msgid "Please enter a descriptive text for this group." +msgstr "Geen een beschrijvende tekst voor deze groep." + +#: ../lib/modules/windowsHost.inc:79 +msgid "Please enter a descriptive text for this host." +msgstr "Geef een beschrijvende tekst voor deze host." + +#: ../lib/modules/windowsUser.inc:120 +msgid "Please enter a descriptive text for this user." +msgstr "Geef een beschrijvende tekst voor deze gebruiker." + +#: ../lib/modules/organizationalRole.inc:173 +#: ../lib/modules/groupOfNames.inc:209 +msgid "Please enter a group name!" +msgstr "S.v.p. een geldige groepsnaam invoeren!" + +#: ../lib/modules/windowsUser.inc:241 +msgid "" +"Please enter a list of Windows domains that can be selected for your user " +"accounts." +msgstr "" +"Geef een lijst van Windows-domeinen die kunnen worden geselecteerd voor uw " +"gebruikersaccounts." + +#: ../lib/modules/selfRegistration.inc:120 +msgid "Please enter a list of object classes for the new accounts." +msgstr "Geef een lijst van object klassen voor de nieuwe accounts." + +#: ../lib/modules/asteriskVoicemail.inc:209 +msgid "Please enter a mailbox." +msgstr "Voer een mailbox in." + +#: ../lib/modules/device.inc:62 +msgid "Please enter a name for this device." +msgstr "Voer een naam in voor dit apparaat." + +#: ../lib/modules/kolabSharedFolder.inc:113 +msgid "Please enter a name for this folder." +msgstr "Voer een naam in voor deze map." + +#: ../lib/modules/ppolicy.inc:165 +msgid "Please enter a name for this policy." +msgstr "Voer een naam in voor dit beleid." + +#: ../lib/modules/kolabSharedFolder.inc:261 +msgid "Please enter a name." +msgstr "Voer een naam in." + +#: ../lib/modules/customFields.inc:2626 +msgid "Please enter a natural number for column count." +msgstr "Geef een natuurlijk getal voor het kolom aantal." + +#: ../lib/modules/customFields.inc:2636 +msgid "Please enter a natural number for row count." +msgstr "Geef een natuurlijk getal voor het rij aantal" + +#: ../lib/modules/qmailUser.inc:465 ../lib/modules/qmailUser.inc:467 +msgid "Please enter a number for GID number." +msgstr "Voer een getal in voor het GID-nummer." + +#: ../lib/modules/qmailUser.inc:462 ../lib/modules/qmailUser.inc:464 +msgid "Please enter a number for UID number." +msgstr "Voer een getal in voor UID nummer." + +#: ../lib/modules/qmailUser.inc:458 ../lib/modules/qmailUser.inc:459 +msgid "Please enter a number for message count limit." +msgstr "Voer een getal in voor het maximum aantal berichten." + +#: ../lib/modules/qmailUser.inc:460 ../lib/modules/qmailUser.inc:461 +msgid "Please enter a number for message size limit." +msgstr "Voer een getal in voor de maximale grootte van het bericht." + +#: ../lib/modules/qmailUser.inc:456 ../lib/modules/qmailUser.inc:457 +msgid "Please enter a number for quota size." +msgstr "Voer een getal in voor de omvang van het quotum." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:51 +#: ../templates/lib/141_jquery-validationEngine-lang.php:55 +#: ../lib/modules/mitKerberos.inc:298 ../lib/modules/zarafaUser.inc:408 +#: ../lib/modules/zarafaUser.inc:409 ../lib/modules/zarafaUser.inc:410 +#: ../lib/modules/zarafaUser.inc:411 ../lib/modules/zarafaUser.inc:412 +#: ../lib/modules/zarafaUser.inc:413 ../lib/modules/zarafaUser.inc:415 +#: ../lib/modules/zarafaUser.inc:416 ../lib/modules/bindDLZ.inc:476 +#: ../lib/modules/kolabUser.inc:257 ../lib/modules/kolabUser.inc:258 +#: ../lib/modules/sudoRole.inc:285 ../lib/modules/sudoRole.inc:286 +msgid "Please enter a number." +msgstr "Voer een nummer in." + +#: ../lib/modules/ppolicy.inc:174 +msgid "Please enter a numeric value for the expire warning." +msgstr "Geef een numerieke waarde voor de vervallen waarschuwing." + +#: ../lib/modules/ppolicy.inc:173 +msgid "Please enter a numeric value for the failure count interval." +msgstr "Geef een numerieke waarde voor de mislukking aantal interval." + +#: ../lib/modules/ppolicy.inc:170 +msgid "Please enter a numeric value for the grace authentication limit." +msgstr "Geef een numerieke waarde in voor de grace authenticatie limiet." + +#: ../lib/modules/freeRadius.inc:259 ../lib/modules/freeRadius.inc:260 +msgid "Please enter a numeric value for the idle timeout." +msgstr "Geef een numerieke waarde voor de lockout duur." + +#: ../lib/modules/ppolicy.inc:171 +msgid "Please enter a numeric value for the lockout duration." +msgstr "Geef een numerieke waarde voor de lockout duur." + +#: ../lib/modules/ppolicy.inc:172 +msgid "Please enter a numeric value for the maximum failure count." +msgstr "Geef een numerieke waarde voor het maximale falen aantal." + +#: ../lib/modules/ppolicy.inc:175 +msgid "Please enter a numeric value for the minimum password length." +msgstr "Geef een numerieke waarde voor de minimale lengte van een wachtwoord." + +#: ../lib/modules/ppolicy.inc:169 +msgid "Please enter a numeric value for the password history length." +msgstr "Voer een numerieke waarde voor de wachtwoord geschiedenis lengte." + +#: ../lib/modules/range.inc:138 +msgid "Please enter a pool name." +msgstr "Voer een poel naam in." + +#: ../lib/modules/sudoRole.inc:267 +msgid "Please enter a role name." +msgstr "Voer een rol naam in." + +#: ../lib/modules/passwordSelfReset.inc:1203 +msgid "Please enter a security answer." +msgstr "Voer een beveiligingsantwoord in. " + +#: ../lib/modules/selfRegistration.inc:118 +msgid "Please enter a subject for the confirmation mails." +msgstr "Vul een onderwerp voor de bevestiging mails in." + +#: ../lib/modules/kolabSharedFolder.inc:262 +msgid "Please enter a target folder." +msgstr "Vul een doelmap in." + +#: ../lib/modules/selfRegistration.inc:119 +msgid "" +"Please enter a text for the confirmation mails that includes the creation " +"link." +msgstr "" +"Vul een tekst voor de bevestiging e-mails dat de creatie link bevat in." + +#: ../lib/modules/customFields.inc:85 +msgid "Please enter a unique name for this field." +msgstr "Geef een unieke naam voor dit veld." + +#: ../lib/modules/ppolicy.inc:81 +msgid "Please enter a unique name for this password policy." +msgstr "Voer een unieke naam in voor dit wachtwoord beleid." + +#: ../lib/modules/kolabUser.inc:274 ../lib/modules/kolabUser.inc:280 +msgid "Please enter a user password." +msgstr "Voer een wachtwoord in." + +#: ../lib/modules/zarafaDynamicGroup.inc:198 ../lib/modules/eduPerson.inc:245 +#: ../lib/modules/eduPerson.inc:247 ../lib/modules/zarafaAddressList.inc:169 +msgid "Please enter a valid DN in the field:" +msgstr "Vul een geldig DN in het veld:" + +#: ../lib/types/bind.inc:205 +msgid "Please enter a valid DNS name." +msgstr "Voer een geldige DNS-naam in." + +#: ../lib/modules/customFields.inc:1189 ../lib/modules/customFields.inc:1746 +msgid "" +"Please enter a valid LDAP attribute name. Allowed characters are a-z, 0-9, _ " +"and -." +msgstr "" +"Geef een geldig LDAP-attribuut naam. Toegestane tekens zijn a-z, 0-9, _ en -." + +#: ../templates/selfService/adminMain.php:221 +msgid "Please enter a valid LDAP suffix." +msgstr "Vul een geldige LDAP suffix in." + +#: ../templates/selfService/adminMain.php:225 +msgid "" +"Please enter a valid LDAP user if you want to use it for all operations." +msgstr "" +"Vul een geldig LDAP-gebruiker indien u deze wilt gebruiken voor alle " +"handelingen." + +#: ../lib/modules/qmailUser.inc:454 +msgid "Please enter a valid account status." +msgstr "Vul een geldig account status in." + +#: ../lib/modules/bindDLZ.inc:529 ../lib/modules/bindDLZ.inc:530 +msgid "Please enter a valid admin email address." +msgstr "Vul een geldig admin e-mailadres in." + +#: ../templates/config/confmain.php:554 +msgid "Please enter a valid bind user." +msgstr "Vul een geldig bind gebruiker in." + +#: ../lib/modules/inetOrgPerson.inc:105 ../lib/modules/inetOrgPerson.inc:106 +msgid "Please enter a valid business category!" +msgstr "Voer een geldige zakelijke categorie in!" + +#: ../lib/modules/posixAccount.inc:129 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/windowsUser.inc:591 ../lib/modules/windowsUser.inc:592 +#: ../lib/modules/inetOrgPerson.inc:95 ../lib/modules/inetOrgPerson.inc:96 +msgid "Please enter a valid common name!" +msgstr "S.v.p. een valide common name ingeven!" + +#: ../lib/modules/qmailUser.inc:471 +msgid "Please enter a valid configuration type." +msgstr "Vul een geldige configuratie type in." + +#: ../lib/modules/mitKerberos.inc:291 ../lib/modules/mitKerberos.inc:292 +#: ../lib/modules/qmailUser.inc:470 ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/heimdalKerberos.inc:255 +#: ../lib/modules/heimdalKerberos.inc:256 +msgid "Please enter a valid date in format DD-MM-YYYY." +msgstr "S.v.p. een geldige datum invoeren in formaat DD-MM-YYYY." + +#: ../lib/modules/asteriskAccount.inc:576 +#: ../lib/modules/asteriskAccount.inc:577 +msgid "Please enter a valid default user." +msgstr "Voer een geldig standaard gebruiker in." + +#: ../lib/modules/qmailUser.inc:455 +msgid "Please enter a valid delivery mode." +msgstr "Vul een geldig leveringswijze in." + +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:111 ../lib/modules/windowsUser.inc:595 +#: ../lib/modules/windowsUser.inc:596 +msgid "Please enter a valid display name!" +msgstr "S.v.p. een geldige displaynaam invoeren!" + +#: ../lib/modules/sambaSamAccount.inc:117 ../lib/modules/windowsUser.inc:617 +msgid "Please enter a valid drive letter." +msgstr "S.v.p. een geldige stationsletter invoeren." + +#: ../lib/modules/kolabGroup.inc:177 ../lib/modules/kolabGroup.inc:178 +#: ../lib/modules/selfRegistration.inc:122 +#: ../lib/modules/selfRegistration.inc:482 +#: ../lib/modules/zarafaDynamicGroup.inc:200 +#: ../lib/modules/zarafaDynamicGroup.inc:201 ../lib/modules/qmailUser.inc:448 +#: ../lib/modules/qmailUser.inc:449 ../lib/modules/qmailUser.inc:450 +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:453 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:216 ../lib/modules/windowsUser.inc:607 +#: ../lib/modules/windowsUser.inc:608 ../lib/modules/pykotaUser.inc:319 +#: ../lib/modules/pykotaUser.inc:320 ../lib/modules/inetOrgPerson.inc:80 +#: ../lib/modules/inetOrgPerson.inc:82 +#: ../lib/modules/kolabSharedFolder.inc:259 +#: ../lib/modules/kolabSharedFolder.inc:260 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:421 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:425 +#: ../lib/modules/qmailGroup.inc:426 ../lib/modules/qmailGroup.inc:427 +#: ../lib/modules/qmailGroup.inc:428 ../lib/modules/qmailGroup.inc:429 +#: ../lib/modules/qmailGroup.inc:430 ../lib/modules/qmailGroup.inc:431 +#: ../lib/modules/qmailGroup.inc:432 ../lib/modules/passwordSelfReset.inc:232 +#: ../lib/modules/passwordSelfReset.inc:233 +#: ../lib/modules/passwordSelfReset.inc:900 +#: ../lib/modules/passwordSelfReset.inc:1122 +#: ../lib/modules/windowsGroup.inc:285 ../lib/modules/windowsGroup.inc:286 +#: ../lib/modules.inc:1178 +msgid "Please enter a valid email address!" +msgstr "S.v.p. een geldig e-mail adres invoeren!" + +#: ../lib/modules/zarafaDynamicGroup.inc:202 +#: ../lib/modules/zarafaDynamicGroup.inc:203 +#: ../lib/modules/zarafaGroup.inc:217 ../lib/modules/zarafaGroup.inc:218 +msgid "Please enter a valid email alias." +msgstr "S.v.p. een geldig e-mail alias invoeren!" + +#: ../lib/modules/passwordSelfReset.inc:907 +#: ../lib/modules/passwordSelfReset.inc:1129 +msgid "Please enter a valid employee number." +msgstr "Geef een geldig personeelsnummer." + +#: ../lib/modules/inetOrgPerson.inc:93 ../lib/modules/inetOrgPerson.inc:94 +msgid "Please enter a valid employee type!" +msgstr "S.v.p. een geldig werknemerstype invoeren!" + +#: ../lib/modules/inetOrgPerson.inc:76 ../lib/modules/inetOrgPerson.inc:77 +msgid "Please enter a valid fax number!" +msgstr "S.v.p. een geldig faxnummer invoeren!" + +#: ../lib/modules/customFields.inc:187 +msgid "" +"Please enter a valid field name. Only letters, numbers, dash and underline " +"are allowed." +msgstr "" +"Geef een geldige veldnaam. Alleen letters, cijfers, streepjes en " +"onderstrepen zijn toegestaan." + +#: ../lib/lists.inc:229 +msgid "" +"Please enter a valid filter. Only letters, numbers and \" _*$.@-\" are " +"allowed." +msgstr "" +"Voer een geldig filter in. Alleen letters, cijfers en \"_*$.@-\" zijn " +"toegestaan." + +#: ../lib/modules/selfRegistration.inc:83 +#: ../lib/modules/selfRegistration.inc:218 +msgid "Please enter a valid first name." +msgstr "Vul een geldige voornaam in." + +#: ../lib/modules/asteriskAccount.inc:570 +#: ../lib/modules/asteriskAccount.inc:571 +msgid "Please enter a valid from domain." +msgstr "Voer een geldig vanaf domein in." + +#: ../lib/modules/asteriskAccount.inc:568 +#: ../lib/modules/asteriskAccount.inc:569 +msgid "Please enter a valid from user." +msgstr "Voer een geldig vanaf gebruiker in." + +#: ../lib/modules/sambaSamAccount.inc:121 +msgid "Please enter a valid group name!" +msgstr "S.v.p. een geldige groepsnaam invoeren!" + +#: ../lib/modules/windowsGroup.inc:287 +msgid "Please enter a valid group scope." +msgstr "Geef een geldige groep scope." + +#: ../lib/modules/windowsGroup.inc:288 +msgid "Please enter a valid group type." +msgstr "Geef een geldige groep soort." + +#: ../lib/modules/pykotaUser.inc:327 +msgid "Please enter a valid job suffix." +msgstr "Vul een geldige job achtervoegsel in." + +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:92 +msgid "Please enter a valid job title!" +msgstr "S.v.p. een geldige functieomschrijving invoeren!" + +#: ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:219 +msgid "Please enter a valid last name." +msgstr "Vul een geldige achternaam in." + +#: ../lib/modules/pykotaGroup.inc:205 ../lib/modules/pykotaUser.inc:321 +msgid "Please enter a valid limit type." +msgstr "Vul een geldig limiet type in." + +#: ../lib/modules/eduPerson.inc:253 +msgid "Please enter a valid list of affiliations." +msgstr "Vul een geldig lijst met affiliaties in." + +#: ../lib/modules/freeRadius.inc:255 ../lib/modules/freeRadius.inc:256 +msgid "Please enter a valid list of group names." +msgstr "Voer een geldige lijst van groepnamen in." + +#: ../lib/modules/hostObject.inc:111 +msgid "Please enter a valid list of host names." +msgstr "Voer een geldige lijst van hostnamen in." + +#: ../lib/modules/authorizedServiceObject.inc:130 +msgid "Please enter a valid list of service names." +msgstr "Voer een geldige lijst van servicenamen in." + +#: ../lib/modules/inetOrgPerson.inc:74 ../lib/modules/inetOrgPerson.inc:75 +msgid "Please enter a valid mobile number!" +msgstr "S.v.p. een geldig mobiel nummer invoeren!" + +#: ../lib/modules/pykotaPrinter.inc:215 ../lib/modules/pykotaPrinter.inc:216 +#: ../lib/modules/pykotaPrinter.inc:217 ../lib/modules/pykotaPrinter.inc:218 +#: ../lib/modules/pykotaUser.inc:322 ../lib/modules/pykotaUser.inc:323 +#: ../lib/modules/pykotaUser.inc:324 ../lib/modules/pykotaUser.inc:325 +#: ../lib/modules/pykotaUser.inc:326 +msgid "Please enter a valid number (e.g. \"1.5\")." +msgstr "Vul een geldig nummer in (bijv. \"1.5\")." + +#: ../lib/modules/pykotaPrinter.inc:213 ../lib/modules/pykotaPrinter.inc:214 +msgid "Please enter a valid number." +msgstr "Vul een geldig nummer in." + +#: ../lib/modules/customFields.inc:190 +msgid "Please enter a valid object class." +msgstr "Vul een geldig object-klasse in." + +#: ../lib/modules/dhcp_settings.inc:331 +msgid "Please enter a valid option." +msgstr "Vul een geldige optie in." + +#: ../lib/modules/zarafaServer.inc:177 ../lib/modules/zarafaServer.inc:178 +msgid "Please enter a valid path." +msgstr "Voer een geldig pad in." + +#: ../lib/modules/asteriskAccount.inc:572 +#: ../lib/modules/asteriskAccount.inc:573 ../lib/modules/zarafaServer.inc:173 +#: ../lib/modules/zarafaServer.inc:174 ../lib/modules/zarafaServer.inc:175 +#: ../lib/modules/zarafaServer.inc:176 +msgid "Please enter a valid port number." +msgstr "Vul een geldig poortnummer in." + +#: ../lib/modules/inetOrgPerson.inc:85 ../lib/modules/inetOrgPerson.inc:86 +msgid "Please enter a valid postal address!" +msgstr "S.v.p. een geldig postadres invoeren!" + +#: ../lib/modules/windowsUser.inc:605 ../lib/modules/windowsUser.inc:606 +#: ../lib/modules/inetOrgPerson.inc:89 ../lib/modules/inetOrgPerson.inc:90 +msgid "Please enter a valid postal code!" +msgstr "S.v.p. een geldige postcode invoeren!" + +#: ../lib/modules/eduPerson.inc:251 +msgid "Please enter a valid primary affiliation." +msgstr "Vul een geldig primaire affiliatie in." + +#: ../lib/modules/freeRadius.inc:253 ../lib/modules/freeRadius.inc:254 +msgid "Please enter a valid realm." +msgstr "Voer een geldig realm in." + +#: ../lib/modules/kolabGroup.inc:181 ../lib/modules/kolabGroup.inc:182 +#: ../lib/modules/kolabUser.inc:253 ../lib/modules/kolabUser.inc:254 +#: ../lib/modules/kolabSharedFolder.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:251 +msgid "Please enter a valid recipient expression." +msgstr "Vul een geldige ontvanger expressie in." + +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:88 +msgid "Please enter a valid registered address." +msgstr "Voer een geldig geregistreerd adres in." + +#: ../lib/modules/eduPerson.inc:252 +msgid "Please enter a valid scoped affiliation." +msgstr "Vul een geldig scoped affiliatie in." + +#: ../lib/modules/kolabGroup.inc:183 ../lib/modules/kolabGroup.inc:184 +#: ../lib/modules/kolabUser.inc:255 ../lib/modules/kolabUser.inc:256 +#: ../lib/modules/kolabSharedFolder.inc:252 +#: ../lib/modules/kolabSharedFolder.inc:253 +msgid "Please enter a valid sender expression." +msgstr "Vul een geldige afzender expressie in." + +#: ../lib/modules/qmailUser.inc:468 ../lib/modules/qmailUser.inc:469 +#: ../lib/modules/imapAccess.inc:177 +msgid "Please enter a valid server name where the mailboxes reside." +msgstr "" +"Voer een geldige naam in van de server waar de mailboxen zich bevinden." + +#: ../lib/modules/inetOrgPerson.inc:83 ../lib/modules/inetOrgPerson.inc:84 +msgid "Please enter a valid street name!" +msgstr "S.v.p. een geldige straatnaam invoeren!" + +#: ../lib/modules/windowsUser.inc:601 ../lib/modules/windowsUser.inc:602 +#: ../lib/modules/windowsUser.inc:603 ../lib/modules/windowsUser.inc:604 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:71 +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:78 ../lib/modules/inetOrgPerson.inc:79 +msgid "Please enter a valid telephone number!" +msgstr "S.v.p. een geldig telefoonnummer invoeren!" + +#: ../lib/modules/passwordSelfReset.inc:921 +#: ../lib/modules/passwordSelfReset.inc:1143 +msgid "Please enter a valid user name or email address." +msgstr "Geef een geldige gebruikersnaam of e-mailadres." + +#: ../lib/modules/posixGroup.inc:719 ../lib/modules/posixAccount.inc:1160 +#: ../lib/modules/posixAccount.inc:1165 +#, php-format +msgid "Please enter a value between %s and %s!" +msgstr "S.v.p. een waarde invullen tussen %s en %s!" + +#: ../lib/modules/customFields.inc:2780 +msgid "Please enter a value for status \"checked\"." +msgstr "Geef een waarde op voor de status \"checked\"." + +#: ../lib/modules/customFields.inc:2787 +msgid "Please enter a value for status \"unchecked\"." +msgstr "Geef een waarde voor de status \"unchecked\"." + +#: ../templates/multiEdit.php:140 +msgid "Please enter a value to add." +msgstr "Vul een waarde in om toe te voegen." + +#: ../templates/multiEdit.php:143 +msgid "Please enter a value to modify." +msgstr "Vul een waarde in om aan te passen." + +#: ../lib/modules/customFields.inc:77 +msgid "Please enter an alias for this group." +msgstr "Geef een alias voor deze groep." + +#: ../lib/modules/customFields.inc:189 +msgid "Please enter an alias name." +msgstr "Geef een alias naam." + +#: ../lib/modules/kolabUser.inc:286 ../lib/modules/imapAccess.inc:208 +#, php-format +msgid "Please enter an email address on this page: %s" +msgstr "S.v.p. een e-mailadres invoeren op deze pagina: %s" + +#: ../lib/modules/pykotaUser.inc:353 +#, php-format +msgid "Please enter an user name on this page: %s" +msgstr "Geef een gebruikersnaam op deze pagina: %s" + +#: ../lib/modules/range.inc:139 +#, php-format +msgid "Please enter at least one range for pool \"%s\"." +msgstr "Voer minimaal een reeks in voor poel \"%s\"." + +#: ../lib/modules/windowsUser.inc:1360 ../lib/modules/windowsUser.inc:1369 +#: ../lib/modules/windowsUser.inc:1378 ../lib/modules/windowsUser.inc:1389 +msgid "Please enter either yes or no." +msgstr "Geef ja of nee." + +#: ../lib/modules/sudoRole.inc:273 ../lib/modules/sudoRole.inc:274 +msgid "Please enter only ASCII characters for the commands." +msgstr "Voer alleen ASCII-tekens in voor de commando's." + +#: ../lib/modules/sudoRole.inc:271 ../lib/modules/sudoRole.inc:272 +msgid "Please enter only ASCII characters for the host names." +msgstr "Voer alleen ASCII-tekens in voor de host namen." + +#: ../lib/modules/sudoRole.inc:279 ../lib/modules/sudoRole.inc:280 +msgid "Please enter only ASCII characters for the options." +msgstr "Voer alleen ASCII-tekens in voor de opties." + +#: ../lib/modules/sudoRole.inc:277 ../lib/modules/sudoRole.inc:278 +msgid "Please enter only ASCII characters for the run groups." +msgstr "Voer alleen ASCII-tekens in voor de run groepen." + +#: ../lib/modules/sudoRole.inc:275 ../lib/modules/sudoRole.inc:276 +msgid "Please enter only ASCII characters for the run users." +msgstr "Voer alleen ASCII-tekens in voor de run gebruiker namen." + +#: ../lib/modules/device.inc:140 ../lib/modules/device.inc:141 +msgid "Please enter only ASCII characters for the serial number." +msgstr "Voer alleen ASCII-tekens in voor het serienummer." + +#: ../lib/modules/sudoRole.inc:269 ../lib/modules/sudoRole.inc:270 +msgid "Please enter only ASCII characters for the user names." +msgstr "Voer alleen ASCII-tekens in voor de gebruiker namen." + +#: ../lib/modules/passwordSelfReset.inc:231 +msgid "" +"Please enter the DN and password of the administrative password self reset " +"account." +msgstr "" +"Voer het DN en wachtwoord in van de administratieve wachtwoord zelf reset " +"account." + +#: ../lib/modules/selfRegistration.inc:117 +msgid "" +"Please enter the DN and password of the administrative self registration " +"account." +msgstr "Vul de DN en het wachtwoord van het zelf registratie account" + +#: ../lib/modules/posixGroup.inc:525 ../lib/modules/posixAccount.inc:502 +msgid "" +"Please enter the DN of the LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "" +"Geef de DN van de LDAP-vermelding met objectklasse \"sambaUnixIdPool\"." + +#: ../lib/modules/bindDLZ.inc:93 ../lib/modules/bindDLZ.inc:97 +msgid "Please enter the IP address for this entry." +msgstr "Vul het IP-adres voor deze vermelding in." + +#: ../lib/modules/ddns.inc:99 +msgid "Please enter the IP address of your DNS server." +msgstr "Voer het IP-adres in van de DNS-server." + +#: ../lib/modules/selfRegistration.inc:62 +msgid "Please enter the LDAP DN that should be used to create new users." +msgstr "" +"Geef de LDAP-DN die moeten worden gebruikt om nieuwe gebruikers aan te maken." + +#: ../lib/modules/passwordSelfReset.inc:105 +msgid "Please enter the LDAP DN that should be used to reset passwords." +msgstr "Voer de LDAP DN in die gebruikt voor het reseten van wachtwoorden." + +#: ../lib/modules/customFields.inc:93 +msgid "Please enter the LDAP attribute name for this field." +msgstr "Geef de LDAP-attribuutnaam voor dit veld." + +#: ../help/help.inc:123 +msgid "" +"Please enter the LDAP suffix where LAM should start to search for users. The " +"LDAP filter needs to match the given user name to exactly one DN. The value " +"\"%USER%\" will be replaced by the user name from the login page." +msgstr "" +"Voer de LDAP-achtervoegsel waar LAM moet beginnen met zoeken naar de " +"gebruikers. Het LDAP-filter moet de opgegeven gebruikersnaam te koppelen aan " +"precies een DN. De waarde \"% USER% \" zal vervangen worden door de " +"gebruikersnaam van de login pagina." + +#: ../lib/modules/pykotaUser.inc:157 +msgid "" +"Please enter the LDAP suffix where the PyKota job entries are stored " +"(configuration option \"jobbase\")." +msgstr "" +"Vul de LDAP suffix waar de PyKota job items worden opgeslagen (configuratie-" +"optie \"jobbase\")." + +#: ../lib/modules/asteriskExtension.inc:188 +#: ../lib/modules/asteriskVoicemail.inc:214 +msgid "Please enter the account context." +msgstr "Voer de account context in." + +#: ../lib/modules.inc:928 +msgid "Please enter the account information on the other pages first." +msgstr "S.v.p. eerst de account informatie op de andere pagina's invoeren." + +#: ../lib/modules/asteriskAccount.inc:565 +msgid "Please enter the account type." +msgstr "Vul het account type in." + +#: ../lib/modules/asteriskAccount.inc:120 +msgid "Please enter the account's type (e.g. \"friend\")." +msgstr "Vul het account type in (bijv. \"friend\")." + +#: ../lib/modules/asteriskExtension.inc:187 +msgid "Please enter the application data." +msgstr "Voer de applicatie data in." + +#: ../lib/modules/asteriskExtension.inc:186 +msgid "Please enter the application." +msgstr "Voer de applicatie in." + +#: ../lib/modules/automount.inc:69 +msgid "" +"Please enter the automount entry (e.g. \"-fstype=nfs,rw server:/home\")." +msgstr "Geef het automount item (bijv. \"-fstype=nfs,rw server:/home\")." + +#: ../templates/login.php:292 +msgid "Please enter the configuration and create a server profile." +msgstr "Voer de configuratie in en creëer een server profiel." + +#: ../help/help.inc:57 +msgid "" +"Please enter the configuration password. This is NOT your LDAP password. It " +"is stored in your .conf-file. If this is the first time you log in, enter " +"\"lam\"." +msgstr "" +"S.v.p. configuratie wachtwoord invoeren. Dit is NIET uw LDAP wachtwoord. Het " +"staat vermeld in uw .conf-bestand. Als dit de eerste keer is dat u inlogt, " +"gebruik \"lam\"." + +#: ../lib/modules/oracleService.inc:66 +msgid "" +"Please enter the connection string (e.g. " +"\"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=server)(PORT=1521))" +"(CONNECT_DATA=(SERVICE_NAME=db.example.com)))\")." +msgstr "" +"Geef de connectie string (bv \"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)" +"(HOST=server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db.example.com)))\")." + +#: ../lib/modules/puppetClient.inc:81 ../lib/modules/puppetClient.inc:85 +msgid "Please enter the environment name for this node (e.g. production)." +msgstr "Vul omgevingsnaam voor dit knooppunt in (bijv. productie)." + +#: ../lib/modules/asteriskAccount.inc:559 +msgid "Please enter the extension context." +msgstr "Voer de extensie context in." + +#: ../lib/modules/asteriskExtension.inc:189 +msgid "Please enter the extension name." +msgstr "Voer de extensie naam in." + +#: ../lib/modules/windowsGroup.inc:115 +msgid "Please enter the group name." +msgstr "Geef de naam van de groep." + +#: ../lib/modules/asteriskAccount.inc:562 ../lib/modules/windowsHost.inc:75 +msgid "Please enter the host name." +msgstr "Voer de hostnaam in." + +#: ../lib/modules/customScripts.inc:60 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [account type] [action] [script and arguments]" +msgstr "" +"Voer de lijst van scripts in die moet worden uitgevoerd. Elke regel heeft de " +"volgende indeling: [type account] [actie] [script en argumenten]" + +#: ../lib/modules/customScripts.inc:74 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [action] [script and arguments]" +msgstr "" +"Voer de lijst van scripts in die moet worden uitgevoerd. Elke regel heeft de " +"volgende indeling: [actie] [script en argumenten]" + +#: ../lib/modules/nisObject.inc:66 +msgid "" +"Please enter the mapping entry (e.g. \"-fstype=nfs,rw server:/projects\")." +msgstr "Voer het mapping item in (bijv. \"-fstype=nfs,rw server:/projects\")." + +#: ../lib/modules/nisObject.inc:70 +msgid "Please enter the mapping name for this entry (e.g. auto.home)." +msgstr "Voer de mapping naam voor dit item (bijv. auto.home)." + +#: ../help/help.inc:143 +msgid "" +"Please enter the master configuration password. This is NOT your LDAP " +"password. It is stored in your config.cfg file. If this is the first time " +"you log in, enter \"lam\"." +msgstr "" +"S.v.p. master configuratie wachtwoord invoeren. Dit is NIET uw LDAP " +"wachtwoord. Het staat vermeld in uw config.cfg bestand. Als het de eerste " +"keer is dat u inlogt, gebruik \"lam\"" + +#: ../templates/config/mainlogin.php:145 +msgid "Please enter the master password to change the general preferences:" +msgstr "Voer het hoofdwachtwoord in om de algemene voorkeuren wijzigen:" + +#: ../lib/modules/qmailGroup.inc:424 +msgid "Please enter the message store." +msgstr "Voer de berichten store in." + +#: ../help/help.inc:131 +msgid "" +"Please enter the name of the new profile and the password to change its " +"settings. Profile names may contain letters, numbers and -/_." +msgstr "" +"S.v.p. de naam van het nieuwe profiel invoeren en het wachtwoord om de " +"instellingen te wijzigen. Profielnamen kunnen letter, nummers en -/_ " +"bevatten." + +#: ../help/help.inc:133 +msgid "" +"Please enter the new name of the profile. The name may contain letters, " +"numbers and -/_." +msgstr "" +"S.v.p. de nieuwe naam van het profiel invoeren. De naam mag letters, nummers " +"en -/_ bevatten." + +#: ../lib/modules/selfRegistration.inc:66 +#: ../lib/modules/passwordSelfReset.inc:109 +msgid "" +"Please enter the password for the admin DN. Please note that this is saved " +"as clear-text in the self service profile." +msgstr "" +"Voer het wachtwoord voor de admin DN. Let op: dit wordt niet opgeslagen als " +"plain-tekst in de self-service profiel." + +#: ../lib/modules/asteriskAccount.inc:116 ../lib/modules/posixAccount.inc:523 +#: ../lib/modules/windowsUser.inc:224 ../lib/modules/inetOrgPerson.inc:863 +msgid "Please enter the password which you want to set for this account." +msgstr "S.v.p. het wachtwoord invoeren dat u wilt gebruiken voor dit account." + +#: ../help/help.inc:203 +msgid "" +"Please enter the password which you want to set for this account. You may " +"also generate a random password (12 characters) which will be displayed on " +"your screen." +msgstr "" +"Voer het wachtwoord dat u wilt instellen voor deze account. Je kan ook een " +"willekeurig wachtwoord genereren (12 tekens), wat wordt weergegeven op uw " +"scherm." + +#: ../lib/modules/posixAccount.inc:474 +msgid "Please enter the path to the user's home directory." +msgstr "S.v.p. het pad aangeven naar de homedirectory van de gebruiker." + +#: ../lib/modules/zarafaServer.inc:69 +msgid "Please enter the port number for (unencrypted) HTTP connections." +msgstr "Voer het poortnummer in voor (ongecodeerd) HTTP-verbindingen." + +#: ../lib/modules/zarafaServer.inc:73 +msgid "Please enter the port number for encrypted connections." +msgstr "Voer het poortnummer in voor versleutelde verbindingen." + +#: ../lib/modules/passwordSelfReset.inc:81 +msgid "" +"Please enter the possible security questions for the password self reset." +msgstr "" +"Voer de mogelijke veiligheidsvragen voor het wachtwoord zelf opnieuw in te " +"stellen." + +#: ../lib/modules/asteriskExtension.inc:191 +msgid "Please enter the priority." +msgstr "Voer de prioriteit in." + +#: ../lib/modules/imapAccess.inc:110 +msgid "Please enter the quota limit of this mailbox in kilobytes." +msgstr "Voer de quota limiet van deze mailbox in in kilobytes." + +#: ../lib/modules/quota.inc:154 +msgid "" +"Please enter the quota settings for this mount point. The syntax is: {soft " +"block limit},{hard block limit},{soft inode limit},{hard inode limit}" +msgstr "" +"S.v.p. de quotum gegevens voor dit mount-punt ingeven. Syntax is: {zachte " +"blok limiet},{uiterste blok limiet},{zachte inode limiet},{uiterste inode " +"limiet}" + +#: ../lib/modules/systemQuotas.inc:69 +msgid "" +"Please enter the quota settings for this user. The syntax is: {mount point}," +"{soft block limit},{hard block limit},{soft inode limit},{hard inode limit}." +msgstr "" +"S.v.p. de quotum gegevens voor dit mount-punt ingeven. Syntax is: {zachte " +"blok limiet},{uiterste blok limiet},{zachte inode limiet},{uiterste inode " +"limiet}" + +#: ../lib/modules/nisMailAlias.inc:86 +msgid "Please enter the recipients for this alias." +msgstr "Vul de ontvangers in voor deze alias." + +#: ../lib/modules/customFields.inc:109 +#, php-format +msgid "" +"Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") to validate " +"this field. For a syntax description see here." +msgstr "" +"Geef de reguliere expressie (bijv. \"/^[0-9a-zA-Z]+$/\") om dit veld te " +"valideren. Voor een syntax beschrijving zie hier." + +#: ../templates/lists/changePassword.php:526 +#: ../lib/modules/selfRegistration.inc:533 +#: ../lib/modules/sambaSamAccount.inc:105 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/windowsUser.inc:615 ../lib/modules/customFields.inc:2533 +msgid "Please enter the same password in both password fields." +msgstr "S.v.p. hetzelfde wachtwoord in beide wachtwoordvelden invoeren." + +#: ../lib/modules/passwordSelfReset.inc:77 +msgid "Please enter the security question for the password self reset." +msgstr "" +"Voer de geheime vraag in voor het wachtwoord zelf opnieuw in te stellen." + +#: ../lib/modules/sambaSamAccount.inc:371 +msgid "Please enter the time limit in minutes. 0 means unlimited." +msgstr "Voer de tijdslimiet in in minuten. 0 betekent onbeperkt." + +#: ../lib/modules/windowsUser.inc:108 ../lib/modules/windowsUser.inc:116 +msgid "Please enter the user's name." +msgstr "Geef de naam van de gebruiker." + +#: ../lib/modules/puppetClient.inc:101 ../lib/modules/puppetClient.inc:105 +msgid "" +"Please enter your Puppet variables for this node (e.g. config_exim=true)." +msgstr "Voer uw Puppet variabelen voor deze node in (bv config_exim = true)." + +#: ../templates/selfService/adminLogin.php:133 +msgid "" +"Please enter your master configuration password to change the self service " +"profile:" +msgstr "" +"Voer uw hoofd configuratie wachtwoord in om het zelf service profiel te " +"wijzigen:" + +#: ../templates/config/conflogin.php:132 +msgid "Please enter your password to change the server preferences:" +msgstr "S.v.p. wachtwoord invoeren om voorkeuren te wijzigen:" + +#: ../lib/modules/ldapPublicKey.inc:73 +msgid "Please enter your public SSH key." +msgstr "S.v.p. de publieke SSH key invoeren." + +#: ../lib/modules/range.inc:489 ../lib/modules/fixed_ip.inc:404 +msgid "Please fill out the DHCP settings first." +msgstr "Vul de DHCP-instellingen eerste in." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "Please go back and try again." +msgstr "Ga terug en probeer het opnieuw." + +#: ../templates/masscreate.php:246 +msgid "" +"Please provide a CSV formated file with your account data. The cells in the " +"first row must be filled with the column identifiers. The following rows " +"represent one account for each row." +msgstr "" +"S.v.p. een CSV file met de account gegevens ingeven. De cellen van de eerste " +"rij moeten de kolomidentiecatie bevatten. De volgende rijen " +"vertegenwoordigen ieder een account." + +#: ../lib/config.inc:1810 +msgid "Please provide a file in DER or PEM format." +msgstr "Geef een bestand in DER of PEM-formaat." + +#: ../templates/massBuildAccounts.php:256 +msgid "Please provide a file to upload." +msgstr "Geef een bestand om te uploaden." + +#: ../lib/modules/inetOrgPerson.inc:771 +msgid "" +"Please select an image file to upload. It must be in JPG format (.jpg/.jpeg)." +msgstr "" +"S.v.p. een image bestand selecteren om te uploaden. Het moet in een JPG " +"formaat (.jpg/.jpeg)." + +#: ../lib/modules/customFields.inc:101 +msgid "Please select the field type (e.g. text field)." +msgstr "Selecteer het veld type (bijv. tekstveld)." + +#: ../help/help.inc:270 +msgid "Please select the suffix where changes should be done." +msgstr "Selecteer het achtervoegsel waar veranderingen moeten worden gedaan." + +#: ../help/help.inc:149 +msgid "" +"Please select your prefered log level. Messages with a lower level will not " +"be logged." +msgstr "" +"Selecteer uw voorkeurs log-niveau. Berichten met een lager niveau zullen " +"niet gelogd worden." + +#: ../lib/modules/asteriskVoicemail.inc:228 +msgid "Please set the voicemail password with \"Set password\" before saving." +msgstr "" +"Stel het voicemail wachtwoord in met \"Zet wachtwoord\" voor het opslaan." + +#: ../lib/modules.inc:877 +#, php-format +msgid "Please set up all required attributes on page: %s" +msgstr "S.v.p. allebenodigde attributen instellen op pagina: %s" + +#: ../templates/config/profmanage.php:220 +#: ../templates/selfService/profManage.php:160 +msgid "Please set up your master configuration file (config/config.cfg) first!" +msgstr "" +"S.v.p. eerst uw master configuratie bestand instellen (config/config.cfg)!" + +#: ../lib/modules/dhcp_settings.inc:551 ../lib/modules/ddns.inc:362 +msgid "" +"Please set your LDAP suffix to an LDAP entry with object class \"dhcpService" +"\" or \"dhcpServer\"." +msgstr "" +"Stel uw LDAP-suffix op een LDAP-item met object-klasse \"dhcpService\" of " +"\"dhcpServer\"." + +#: ../templates/multiEdit.php:213 +msgid "Please specify at least one operation." +msgstr "Geef ten minste een operatie." + +#: ../lib/modules/passwordSelfReset.inc:145 +msgid "Please specify how your users need to identify themselves." +msgstr "Geef aan hoe uw gebruikers zich moeten identificeren." + +#: ../lib/modules/windowsGroup.inc:143 +msgid "Please specify the group scope." +msgstr "Specificeer de groep scope." + +#: ../lib/modules/customFields.inc:141 +msgid "" +"Please specify the possible values for this field. Each value can have a " +"descriptive label that is displayed to the user." +msgstr "" +"Geef de mogelijke waarden voor dit veld. Elke waarde kan een beschrijvend " +"label hebben dat wordt weergegeven aan de gebruiker." + +#: ../help/help.inc:274 +msgid "" +"Please specify which attributes should be changed. The modify operation will " +"also add an value if the attribute does not yet exist. To delete all values " +"of an attribute please leave the value field empty." +msgstr "" +"Geef aan welke attributen moet worden veranderd. In het geval dat het " +"atribuut niet bestaan zal het worden toegevoegd. Om alle waarden van een " +"attribuut te verwijderen laat dan het veld waarde leeg." + +#: ../lib/modules/inetOrgPerson.inc:102 +msgid "Please upload a .jpg/.jpeg file." +msgstr "Upload een .jpg / .jpeg bestand." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:172 +msgid "Please wait" +msgstr "Even geduld aub" + +#: ../lib/types/ppolicyType.inc:149 +#, php-format +msgid "Policy count: %s" +msgstr "Policy aantal: %s" + +#: ../lib/modules/kolabUser.inc:246 +msgid "Policy list has invalid format!" +msgstr "Beleidslijst heeft een ongeldig formaat!" + +#: ../lib/modules/range.inc:550 +msgid "Pools" +msgstr "Poelen" + +#: ../lib/modules/asteriskAccount.inc:179 +#: ../lib/modules/asteriskAccount.inc:283 +#: ../lib/modules/asteriskAccount.inc:436 +#: ../lib/modules/asteriskAccount.inc:686 +#: ../lib/modules/asteriskAccount.inc:999 +#: ../lib/modules/asteriskAccount.inc:1267 ../lib/modules/bindDLZ.inc:195 +#: ../lib/modules/bindDLZ.inc:199 ../lib/modules/bindDLZ.inc:399 +#: ../lib/modules/bindDLZ.inc:512 ../lib/modules/bindDLZ.inc:1365 +#: ../lib/modules/bindDLZ.inc:1608 +msgid "Port" +msgstr "Poort" + +#: ../lib/modules/asteriskAccount.inc:180 +msgid "Port number." +msgstr "poort nummer" + +#: ../templates/pdfedit/pdfpage.php:592 ../templates/pdfedit/pdfpage.php:602 +#: ../templates/pdfedit/pdfpage.php:612 ../templates/pdfedit/pdfpage.php:627 +msgid "Position" +msgstr "Positie" + +#: ../templates/masscreate.php:310 ../templates/masscreate.php:384 +#: ../lib/modules/customScripts.inc:125 ../lib/modules/customScripts.inc:127 +#: ../lib/modules/customScripts.inc:129 +#: ../lib/modules/sambaGroupMapping.inc:604 +msgid "Possible values" +msgstr "Mogelijke waarden" + +#: ../lib/modules/pykotaPrinter.inc:130 ../lib/modules/posixGroup.inc:530 +#: ../lib/modules/sambaGroupMapping.inc:172 +#: ../lib/modules/organizationalRole.inc:103 +#: ../lib/modules/groupOfNames.inc:115 +msgid "" +"Possible wildcards are: \"*\" = any character, \"^\" = line start, \"$\" = " +"line end" +msgstr "" +"Mogelijke wildcards zijn: \"*\" = elk teken, \"^\" = regel start, \"$\" = " +"regel einde" + +#: ../lib/modules/windowsUser.inc:160 ../lib/modules/windowsUser.inc:320 +#: ../lib/modules/windowsUser.inc:510 ../lib/modules/windowsUser.inc:547 +#: ../lib/modules/windowsUser.inc:709 ../lib/modules/windowsUser.inc:1606 +#: ../lib/modules/windowsUser.inc:1743 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:184 ../lib/modules/inetOrgPerson.inc:412 +#: ../lib/modules/inetOrgPerson.inc:559 ../lib/modules/inetOrgPerson.inc:686 +#: ../lib/modules/inetOrgPerson.inc:690 ../lib/modules/inetOrgPerson.inc:1259 +#: ../lib/modules/inetOrgPerson.inc:1262 ../lib/modules/inetOrgPerson.inc:1929 +#: ../lib/modules/inetOrgPerson.inc:2624 ../lib/modules/inetOrgPerson.inc:3580 +#: ../lib/modules/inetOrgPerson.inc:3647 +msgid "Post office box" +msgstr "Postbus " + +#: ../lib/modules/inetOrgPerson.inc:85 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:196 ../lib/modules/inetOrgPerson.inc:396 +#: ../lib/modules/inetOrgPerson.inc:571 ../lib/modules/inetOrgPerson.inc:702 +#: ../lib/modules/inetOrgPerson.inc:1303 ../lib/modules/inetOrgPerson.inc:1931 +#: ../lib/modules/inetOrgPerson.inc:2591 ../lib/modules/inetOrgPerson.inc:3588 +#: ../lib/modules/inetOrgPerson.inc:3649 +msgid "Postal address" +msgstr "Postadres" + +#: ../lib/modules/inetOrgPerson.inc:703 +msgid "Postal address, city" +msgstr "Postadres, plaats" + +#: ../lib/modules/windowsUser.inc:156 ../lib/modules/windowsUser.inc:326 +#: ../lib/modules/windowsUser.inc:509 ../lib/modules/windowsUser.inc:548 +#: ../lib/modules/windowsUser.inc:605 ../lib/modules/windowsUser.inc:710 +#: ../lib/modules/windowsUser.inc:1605 ../lib/modules/windowsUser.inc:1744 +#: ../lib/modules/inetOrgPerson.inc:89 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:187 ../lib/modules/inetOrgPerson.inc:388 +#: ../lib/modules/inetOrgPerson.inc:562 ../lib/modules/inetOrgPerson.inc:694 +#: ../lib/modules/inetOrgPerson.inc:698 ../lib/modules/inetOrgPerson.inc:1268 +#: ../lib/modules/inetOrgPerson.inc:1271 ../lib/modules/inetOrgPerson.inc:1930 +#: ../lib/modules/inetOrgPerson.inc:2613 ../lib/modules/inetOrgPerson.inc:3582 +#: ../lib/modules/inetOrgPerson.inc:3647 +msgid "Postal code" +msgstr "Postcode" + +#: ../lib/modules/puppetClient.inc:112 +msgid "Predefined classes" +msgstr "Voorgedefinieerde klassen" + +#: ../lib/modules/puppetClient.inc:116 ../lib/modules/puppetClient.inc:122 +msgid "Predefined environments" +msgstr "Vooraf gedefinieerde omgevingen" + +#: ../lib/modules/authorizedServiceObject.inc:93 +#: ../lib/modules/authorizedServiceObject.inc:99 +msgid "Predefined services" +msgstr "Vooraf gedefinieerde diensten" + +#: ../help/help.inc:91 +msgid "Predefined values" +msgstr "Voorgedefinieerde waarden" + +#: ../lib/modules/bindDLZ.inc:203 ../lib/modules/bindDLZ.inc:207 +#: ../lib/modules/bindDLZ.inc:287 ../lib/modules/bindDLZ.inc:502 +#: ../lib/modules/bindDLZ.inc:923 ../lib/modules/bindDLZ.inc:1520 +msgid "Preference" +msgstr "Voorkeur" + +#: ../lib/modules/imapAccess.inc:97 ../lib/modules/imapAccess.inc:143 +msgid "Prefix for mailboxes" +msgstr "Prefix voor mailboxen" + +#: ../lib/modules/inetOrgPerson.inc:342 +msgid "President" +msgstr "President" + +#: ../lib/modules/pykotaUser.inc:650 ../lib/modules/pykotaUser.inc:999 +msgid "Price" +msgstr "Prijs" + +#: ../lib/types/pykotaPrinterType.inc:94 ../lib/modules/pykotaPrinter.inc:111 +#: ../lib/modules/pykotaPrinter.inc:174 ../lib/modules/pykotaPrinter.inc:197 +#: ../lib/modules/pykotaPrinter.inc:215 ../lib/modules/pykotaPrinter.inc:235 +#: ../lib/modules/pykotaPrinter.inc:587 +msgid "Price per job" +msgstr "Prijs per taak" + +#: ../lib/types/pykotaPrinterType.inc:93 ../lib/modules/pykotaPrinter.inc:115 +#: ../lib/modules/pykotaPrinter.inc:180 ../lib/modules/pykotaPrinter.inc:198 +#: ../lib/modules/pykotaPrinter.inc:217 ../lib/modules/pykotaPrinter.inc:237 +#: ../lib/modules/pykotaPrinter.inc:588 +msgid "Price per page" +msgstr "Prijs per pagina" + +#: ../lib/modules/eduPerson.inc:88 ../lib/modules/eduPerson.inc:168 +#: ../lib/modules/eduPerson.inc:229 ../lib/modules/eduPerson.inc:283 +#: ../lib/modules/eduPerson.inc:581 +msgid "Primary affiliation" +msgstr "Primaire affiliatie" + +#: ../lib/modules/posixAccount.inc:297 ../lib/modules/posixAccount.inc:389 +#: ../lib/modules/posixAccount.inc:414 ../lib/modules/posixAccount.inc:465 +#: ../lib/modules/posixAccount.inc:514 ../lib/modules/posixAccount.inc:552 +#: ../lib/modules/posixAccount.inc:1446 ../lib/modules/posixAccount.inc:1735 +#: ../lib/modules/posixAccount.inc:1781 ../lib/modules/posixAccount.inc:1852 +msgid "Primary group" +msgstr "Primaire groep" + +#: ../lib/modules/bindDLZ.inc:236 +msgid "Primary master DNS server for this zone (e.g. \"ns1.example.com.\")." +msgstr "Primary master DNS-server voor deze zone (bijv. \"ns1.example.com.\")." + +#: ../lib/modules/bindDLZ.inc:235 ../lib/modules/bindDLZ.inc:345 +#: ../lib/modules/bindDLZ.inc:429 ../lib/modules/bindDLZ.inc:531 +#: ../lib/modules/bindDLZ.inc:1047 ../lib/modules/bindDLZ.inc:1554 +msgid "Primary name server" +msgstr "Primaire naamserver" + +#: ../lib/modules/eduPerson.inc:130 ../lib/modules/eduPerson.inc:206 +#: ../lib/modules/eduPerson.inc:232 ../lib/modules/eduPerson.inc:247 +#: ../lib/modules/eduPerson.inc:348 ../lib/modules/eduPerson.inc:588 +msgid "Primary organisational unit" +msgstr "Primaire organisatie-eenheid" + +#: ../lib/modules/eduPerson.inc:114 ../lib/modules/eduPerson.inc:161 +#: ../lib/modules/eduPerson.inc:230 ../lib/modules/eduPerson.inc:277 +#: ../lib/modules/eduPerson.inc:583 +msgid "Principal name" +msgstr "Principal naam" + +#: ../lib/modules/eduPerson.inc:243 ../lib/modules/eduPerson.inc:244 +msgid "Principal name is invalid!" +msgstr "Principal naam is ongeldig!" + +#: ../lib/modules/pykotaUser.inc:648 ../lib/modules/pykotaUser.inc:997 +msgid "Printer" +msgstr "Printer" + +#: ../lib/types/pykotaPrinterType.inc:164 +#, php-format +msgid "Printer count: %s" +msgstr "Aantal printers:% s" + +#: ../lib/modules/pykotaPrinter.inc:100 +msgid "Printer description." +msgstr "Printer beschrijving." + +#: ../lib/modules/pykotaPrinter.inc:200 ../lib/modules/pykotaPrinter.inc:258 +#: ../lib/modules/pykotaPrinter.inc:621 +msgid "Printer groups" +msgstr "Printer groepen" + +#: ../lib/types/pykotaPrinterType.inc:91 ../lib/modules/pykotaPrinter.inc:95 +#: ../lib/modules/pykotaPrinter.inc:146 ../lib/modules/pykotaPrinter.inc:193 +#: ../lib/modules/pykotaPrinter.inc:209 ../lib/modules/pykotaPrinter.inc:211 +#: ../lib/modules/pykotaPrinter.inc:231 ../lib/modules/pykotaPrinter.inc:584 +#: ../lib/modules/pykotaBillingCode.inc:101 +msgid "Printer name" +msgstr "Printer naam" + +#: ../lib/modules/pykotaPrinter.inc:211 ../lib/modules/pykotaPrinter.inc:212 +msgid "Printer name already exists!" +msgstr "Printernaam bestaat al!" + +#: ../lib/modules/pykotaPrinter.inc:209 ../lib/modules/pykotaPrinter.inc:210 +msgid "" +"Printer name contains invalid characters. Valid characters are: a-z, A-Z, " +"0-9 and .-_ !" +msgstr "" +"Printernaam bevat ongeldige tekens. Geldige tekens zijn: a-z, A-Z, 0-9 and .-" +"_ !" + +#: ../lib/modules/pykotaPrinter.inc:96 +msgid "" +"Printer name of the printer which should be created. Valid characters are: a-" +"z, A-Z, 0-9 and .-_ ." +msgstr "" +"Naam van de printer die aangemaakt moet worden. Geldige karakters zijn: a-z, " +"A-Z, 0-9 en .-_ ." + +#: ../lib/types/pykotaPrinterType.inc:53 +msgid "Printers" +msgstr "Printers" + +#: ../lib/modules/bindDLZ.inc:179 ../lib/modules/bindDLZ.inc:183 +#: ../lib/modules/bindDLZ.inc:389 ../lib/modules/bindDLZ.inc:508 +#: ../lib/modules/bindDLZ.inc:1355 ../lib/modules/bindDLZ.inc:1606 +#: ../lib/modules/asteriskExtension.inc:106 +#: ../lib/modules/asteriskExtension.inc:825 +msgid "Priority" +msgstr "Prioriteit" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1537 +#: ../templates/3rdParty/pla/htdocs/import_form.php:44 +#: ../templates/3rdParty/pla/htdocs/export_form.php:135 +msgid "Proceed" +msgstr "Verder gaan" + +#: ../templates/config/profmanage.php:112 +#: ../templates/selfService/profManage.php:85 +msgid "Profile deleted." +msgstr "Profiel verwijderd." + +#: ../templates/profedit/profilepage.php:182 +#: ../templates/profedit/profilemain.php:94 ../lib/tools/profileEditor.inc:44 +msgid "Profile editor" +msgstr "Profiel editor" + +#: ../templates/config/profmanage.php:159 +#: ../templates/config/profmanage.php:236 +#: ../templates/selfService/profManage.php:101 +#: ../templates/selfService/profManage.php:199 ../help/help.inc:130 +#: ../help/help.inc:132 ../help/help.inc:134 ../help/help.inc:136 +#: ../help/help.inc:138 +msgid "Profile management" +msgstr "Profiel beheer" + +#: ../templates/config/profmanage.php:240 +#: ../templates/config/profmanage.php:260 +#: ../templates/config/profmanage.php:272 +#: ../templates/config/profmanage.php:281 +#: ../templates/config/profmanage.php:301 +#: ../templates/selfService/profManage.php:203 +#: ../templates/selfService/profManage.php:217 +#: ../templates/selfService/profManage.php:233 +#: ../templates/profedit/profilepage.php:186 +#: ../templates/profedit/profilemain.php:277 +#: ../templates/profedit/profilemain.php:321 ../help/help.inc:188 +msgid "Profile name" +msgstr "Profiel naam" + +#: ../templates/config/profmanage.php:88 +#: ../templates/config/profmanage.php:107 +#: ../templates/config/profmanage.php:137 +#: ../templates/config/profmanage.php:148 +#: ../templates/selfService/profManage.php:61 +#: ../templates/selfService/profManage.php:76 +msgid "Profile name is invalid!" +msgstr "Profiel naam is ongeldig!" + +#: ../templates/config/profmanage.php:243 +#: ../templates/config/profmanage.php:282 +msgid "Profile password" +msgstr "Profiel wachtwoord" + +#: ../templates/config/profmanage.php:86 +#: ../templates/config/profmanage.php:135 +msgid "Profile passwords are different or empty!" +msgstr "Profiel wachtwoorden zijn verschillend of leeg!" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:98 +#: ../lib/modules/sambaSamAccount.inc:221 +#: ../lib/modules/sambaSamAccount.inc:233 +#: ../lib/modules/sambaSamAccount.inc:309 +#: ../lib/modules/sambaSamAccount.inc:358 +#: ../lib/modules/sambaSamAccount.inc:503 +#: ../lib/modules/sambaSamAccount.inc:599 +#: ../lib/modules/sambaSamAccount.inc:1223 +#: ../lib/modules/sambaSamAccount.inc:1516 +#: ../lib/modules/sambaSamAccount.inc:1585 +#: ../lib/modules/sambaSamAccount.inc:1765 +#: ../lib/modules/sambaSamAccount.inc:1910 +#: ../lib/modules/sambaSamAccount.inc:1925 ../lib/modules/windowsUser.inc:204 +#: ../lib/modules/windowsUser.inc:418 ../lib/modules/windowsUser.inc:478 +#: ../lib/modules/windowsUser.inc:520 ../lib/modules/windowsUser.inc:611 +#: ../lib/modules/windowsUser.inc:754 ../lib/modules/windowsUser.inc:1635 +msgid "Profile path" +msgstr "Profiel pad" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/windowsUser.inc:611 ../lib/modules/windowsUser.inc:612 +msgid "Profile path is invalid!" +msgstr "Profiel pad is ongeldig!" + +#: ../templates/profedit/profilemain.php:149 +msgid "Profile was saved." +msgstr "Profiel is bewaard." + +#: ../templates/profedit/profilemain.php:244 +msgid "Profiles" +msgstr "Profielen" + +#: ../lib/modules/qmailUser.inc:252 +msgid "Program to execute for all incoming mails." +msgstr "" +"Programma's worden moeten worden uitgevoerd voor alle inkomende e-mails." + +#: ../templates/multiEdit.php:231 +msgid "Progress" +msgstr "Voortgang" + +#: ../lib/modules/zarafaServer.inc:84 ../lib/modules/zarafaServer.inc:128 +#: ../lib/modules/zarafaServer.inc:141 ../lib/modules/zarafaServer.inc:163 +#: ../lib/modules/zarafaServer.inc:212 ../lib/modules/zarafaServer.inc:357 +msgid "Proxy URL" +msgstr "Proxy URL" + +#: ../lib/modules/zarafaServer.inc:80 ../lib/modules/zarafaServer.inc:118 +#: ../lib/modules/zarafaServer.inc:138 ../lib/modules/zarafaServer.inc:225 +#: ../lib/modules/zarafaServer.inc:362 +msgid "Public store" +msgstr "Openbaar op te slaan" + +#: ../lib/modules/puppetClient.inc:70 +msgid "Puppet" +msgstr "Puppet" + +#: ../lib/modules/pykotaPrinter.inc:79 ../lib/modules/pykotaGroup.inc:93 +#: ../lib/modules/pykotaUser.inc:93 ../lib/modules/pykotaBillingCode.inc:61 +msgid "PyKota" +msgstr "PyKota" + +#: ../lib/types/pykotaBillingCodeType.inc:62 +msgid "PyKota billing codes" +msgstr "PyKota factuurcodes" + +#: ../lib/modules/pykotaGroup.inc:121 ../lib/modules/pykotaGroup.inc:148 +#: ../lib/modules/pykotaGroup.inc:181 ../lib/modules/pykotaGroup.inc:201 +#: ../lib/modules/pykotaGroup.inc:203 ../lib/modules/pykotaGroup.inc:467 +msgid "PyKota group name" +msgstr "PyKota groepnaam" + +#: ../lib/types/pykotaPrinterType.inc:62 +msgid "PyKota printers" +msgstr "PyKota printers" + +#: ../lib/modules/pykotaUser.inc:124 ../lib/modules/pykotaUser.inc:190 +#: ../lib/modules/pykotaUser.inc:260 ../lib/modules/pykotaUser.inc:315 +#: ../lib/modules/pykotaUser.inc:317 ../lib/modules/pykotaUser.inc:891 +msgid "PyKota user name" +msgstr "PyKota gebruikersnaam" + +#: ../lib/modules/pykotaGroup.inc:221 +msgid "Pykota group name" +msgstr "PyKota groepnaam" + +#: ../lib/modules/pykotaUser.inc:359 +msgid "Pykota user name" +msgstr "PyKota gebruikersnaam" + +#: ../lib/modules/qmailUser.inc:87 ../lib/modules/qmailGroup.inc:56 +msgid "Qmail" +msgstr "Qmail" + +#: ../lib/modules/asteriskAccount.inc:183 +#: ../lib/modules/asteriskAccount.inc:284 +#: ../lib/modules/asteriskAccount.inc:443 +#: ../lib/modules/asteriskAccount.inc:691 +#: ../lib/modules/asteriskAccount.inc:1000 +#: ../lib/modules/asteriskAccount.inc:1269 +msgid "Qualify" +msgstr "Qualify" + +#: ../lib/modules/passwordSelfReset.inc:76 +#: ../lib/modules/passwordSelfReset.inc:170 +#: ../lib/modules/passwordSelfReset.inc:177 +#: ../lib/modules/passwordSelfReset.inc:197 +#: ../lib/modules/passwordSelfReset.inc:218 +#: ../lib/modules/passwordSelfReset.inc:258 +#: ../lib/modules/passwordSelfReset.inc:381 +#: ../lib/modules/passwordSelfReset.inc:658 +#: ../lib/modules/passwordSelfReset.inc:1043 +msgid "Question" +msgstr "Vraag" + +#: ../lib/modules/qmailUser.inc:668 ../lib/modules/quota.inc:87 +#: ../lib/modules/quota.inc:100 ../lib/modules/quota.inc:153 +#: ../lib/modules/pykotaGroup.inc:61 ../lib/modules/pykotaGroup.inc:175 +#: ../lib/modules/pykotaGroup.inc:176 ../lib/modules/zarafaUser.inc:481 +#: ../lib/modules/pykotaUser.inc:61 ../lib/modules/pykotaUser.inc:235 +#: ../lib/modules/pykotaUser.inc:236 ../lib/modules/systemQuotas.inc:58 +#: ../lib/modules/systemQuotas.inc:68 ../lib/modules/systemQuotas.inc:75 +#: ../lib/modules/systemQuotas.inc:81 ../lib/modules/systemQuotas.inc:88 +#: ../lib/modules/imapAccess.inc:109 ../lib/modules/imapAccess.inc:164 +msgid "Quota" +msgstr "Quota" + +#: ../lib/modules/quota.inc:698 +#, php-format +msgid "Quota for %s on %s" +msgstr "Quota voor: %s op %s" + +#: ../lib/modules/zarafaUser.inc:100 ../lib/modules/zarafaUser.inc:230 +#: ../lib/modules/zarafaUser.inc:352 ../lib/modules/zarafaUser.inc:412 +#: ../lib/modules/zarafaUser.inc:516 ../lib/modules/zarafaUser.inc:1231 +#: ../lib/modules/zarafaUser.inc:1314 ../lib/modules/zarafaUser.inc:1791 +msgid "Quota hard limit" +msgstr "Quota harde limiet" + +#: ../lib/modules/quota.inc:63 +msgid "Quota has wrong format!" +msgstr "Quotum heeft verkeerd format!" + +#: ../lib/modules/imapAccess.inc:319 ../lib/modules/imapAccess.inc:328 +msgid "Quota limit (kB)" +msgstr "Quota limiet (kB)" + +#: ../lib/modules/zarafaUser.inc:88 ../lib/modules/zarafaUser.inc:204 +#: ../lib/modules/zarafaUser.inc:343 ../lib/modules/zarafaUser.inc:488 +#: ../lib/modules/zarafaUser.inc:1242 ../lib/modules/zarafaUser.inc:1305 +#: ../lib/modules/zarafaUser.inc:1785 +msgid "Quota override" +msgstr "Quota negeren" + +#: ../lib/modules/qmailUser.inc:106 ../lib/modules/qmailUser.inc:133 +#: ../lib/modules/qmailUser.inc:219 ../lib/modules/qmailUser.inc:308 +#: ../lib/modules/qmailUser.inc:409 ../lib/modules/qmailUser.inc:675 +#: ../lib/modules/qmailUser.inc:1144 +msgid "Quota size" +msgstr "Quotum omvang " + +#: ../lib/modules/zarafaUser.inc:96 ../lib/modules/zarafaUser.inc:222 +#: ../lib/modules/zarafaUser.inc:349 ../lib/modules/zarafaUser.inc:410 +#: ../lib/modules/zarafaUser.inc:506 ../lib/modules/zarafaUser.inc:1230 +#: ../lib/modules/zarafaUser.inc:1311 ../lib/modules/zarafaUser.inc:1789 +msgid "Quota soft limit" +msgstr "Quota zachte limiet" + +#: ../lib/modules/zarafaUser.inc:92 ../lib/modules/zarafaUser.inc:214 +#: ../lib/modules/zarafaUser.inc:346 ../lib/modules/zarafaUser.inc:408 +#: ../lib/modules/zarafaUser.inc:496 ../lib/modules/zarafaUser.inc:1229 +#: ../lib/modules/zarafaUser.inc:1308 ../lib/modules/zarafaUser.inc:1787 +msgid "Quota warning limit" +msgstr "Quota waarschuwings limiet" + +#: ../templates/masscreate.php:334 ../templates/profedit/profilepage.php:213 +#: ../lib/modules/selfRegistration.inc:98 +#: ../lib/modules/selfRegistration.inc:210 ../lib/modules.inc:1004 +#: ../help/help.inc:186 +msgid "RDN identifier" +msgstr "RDN identificeerder" + +#: ../lib/types/host.inc:93 +msgid "RID (Windows UID)" +msgstr "RID (Windows UID)" + +#: ../lib/modules/sambaDomain.inc:97 ../lib/modules/sambaDomain.inc:158 +#: ../lib/modules/sambaDomain.inc:189 ../lib/modules/sambaDomain.inc:383 +#: ../lib/modules/sambaDomain.inc:389 ../lib/modules/sambaDomain.inc:604 +msgid "RID base" +msgstr "RID basis" + +#: ../lib/modules/sambaDomain.inc:352 +msgid "RID settings" +msgstr "RID instellingen" + +#: ../lib/modules/asteriskAccount.inc:195 +#: ../lib/modules/asteriskAccount.inc:287 +#: ../lib/modules/asteriskAccount.inc:465 +#: ../lib/modules/asteriskAccount.inc:704 +#: ../lib/modules/asteriskAccount.inc:1003 +#: ../lib/modules/asteriskAccount.inc:1275 +msgid "RTP hold timeout" +msgstr "RTP hold timeout" + +#: ../lib/modules/asteriskAccount.inc:191 +#: ../lib/modules/asteriskAccount.inc:286 +#: ../lib/modules/asteriskAccount.inc:458 +#: ../lib/modules/asteriskAccount.inc:699 +#: ../lib/modules/asteriskAccount.inc:1002 +#: ../lib/modules/asteriskAccount.inc:1273 +msgid "RTP timeout" +msgstr "RTP timeout" + +#: ../lib/modules/customFields.inc:2928 +msgid "Radio buttons" +msgstr "Radio buttons" + +#: ../lib/modules/range.inc:97 ../lib/modules/range.inc:514 +#: ../lib/modules/range.inc:574 +msgid "Range from" +msgstr "Range van" + +#: ../lib/modules/range.inc:101 ../lib/modules/range.inc:527 +#: ../lib/modules/range.inc:576 +msgid "Range to" +msgstr "Range tot" + +#: ../lib/types/dhcp.inc:95 ../lib/modules/range.inc:79 +#: ../lib/modules/range.inc:127 ../lib/modules/range.inc:773 +msgid "Ranges" +msgstr "Ranges" + +#: ../templates/config/confmain.php:317 +msgid "Read" +msgstr "Lees" + +#: ../templates/config/confmain.php:262 ../templates/config/conftypes.php:305 +#: ../lib/modules/customFields.inc:104 ../lib/modules/customFields.inc:1722 +#: ../help/help.inc:182 +msgid "Read-only" +msgstr "Alleen lezen" + +#: ../lib/modules/inetOrgPerson.inc:3643 +msgid "Read-only fields" +msgstr "Alleen-lezen velden" + +#: ../lib/modules/customFields.inc:105 +msgid "" +"Read-only fields cannot be changed by the user. Use this if you want to show " +"an attribute just for information." +msgstr "" +"Alleen-lezen velden kunnen niet worden gewijzigd door de gebruiker. Gebruik " +"dit als je een attribuut wil laten zien voor meer informatie." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2289 +msgid "Really delete value from this attribute?" +msgstr "Werkelijk de waarde van dit attribuut verwijderen?" + +#: ../lib/modules/mitKerberos.inc:120 ../lib/modules/mitKerberos.inc:152 +#: ../lib/modules/mitKerberos.inc:194 ../lib/modules/freeRadius.inc:92 +#: ../lib/modules/freeRadius.inc:126 ../lib/modules/freeRadius.inc:146 +#: ../lib/modules/freeRadius.inc:177 ../lib/modules/freeRadius.inc:231 +#: ../lib/modules/freeRadius.inc:273 ../lib/modules/freeRadius.inc:539 +#: ../lib/modules/heimdalKerberos.inc:98 +#: ../lib/modules/heimdalKerberos.inc:157 +#: ../lib/modules/heimdalKerberos.inc:163 +msgid "Realm" +msgstr "Realm" + +#: ../lib/modules/nisMailAliasUser.inc:355 ../lib/modules/nisMailAlias.inc:181 +msgid "Recipient" +msgstr "Ontvanger" + +#: ../lib/modules/nisMailAlias.inc:127 ../lib/modules/nisMailAlias.inc:128 +msgid "Recipient is invalid!" +msgstr "Ontvanger is ongeldig!" + +#: ../lib/types/mailAlias.inc:92 ../lib/modules/nisMailAlias.inc:89 +#: ../lib/modules/nisMailAlias.inc:108 ../lib/modules/nisMailAlias.inc:116 +#: ../lib/modules/nisMailAlias.inc:476 +msgid "Recipient list" +msgstr "Lijst met ontvangers" + +#: ../lib/modules/nisMailAlias.inc:85 ../lib/modules/nisMailAlias.inc:184 +#: ../lib/modules/nisMailAlias.inc:202 +msgid "Recipients" +msgstr "Ontvangers" + +#: ../lib/modules/sambaSamAccount.inc:245 +#: ../lib/modules/sambaSamAccount.inc:388 +#: ../lib/modules/sambaSamAccount.inc:1565 +#: ../lib/modules/sambaSamAccount.inc:1977 +msgid "Reconnect if disconnected" +msgstr "Opnieuw verbinden na verbroken verbinding" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:63 +msgid "Recursive copy" +msgstr "Recursieve kopie" + +#: ../templates/3rdParty/pla/htdocs/copy.php:49 +msgid "Recursive copy progress" +msgstr "Voortgang recursief copieren" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:31 +msgid "Recursive delete progress" +msgstr "Voortgang recursief verwijderen" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:65 +msgid "Recursively copy all children of this object as well." +msgstr "Recursief kopiëren van alle kinderen van dit object." + +#: ../templates/config/profmanage.php:247 +#: ../templates/config/profmanage.php:286 +#: ../templates/config/mainmanage.php:459 ../templates/config/confmain.php:453 +#: ../lib/modules/selfRegistration.inc:415 +#: ../lib/modules/sambaSamAccount.inc:2275 +#: ../lib/modules/posixAccount.inc:2539 ../lib/modules/windowsUser.inc:1722 +msgid "Reenter password" +msgstr "Wachtwoord opnieuw ingeven" + +#: ../templates/serverInfo.php:187 +msgid "Referrals" +msgstr "Verwijzingen" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1051 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1054 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:249 +#: ../lib/modules/asteriskExtension.inc:454 ../lib/lists.inc:788 +msgid "Refresh" +msgstr "Verversen" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +msgid "Refresh this entry" +msgstr "Vernieuw dit item" + +#: ../lib/modules/bindDLZ.inc:215 ../lib/modules/bindDLZ.inc:320 +#: ../lib/modules/bindDLZ.inc:424 ../lib/modules/bindDLZ.inc:521 +#: ../lib/modules/bindDLZ.inc:1026 ../lib/modules/bindDLZ.inc:1549 +msgid "Refresh time" +msgstr "Refresh tijd" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:247 +msgid "Refreshing tree" +msgstr "Vernieuwen boom" + +#: ../lib/modules/selfRegistration.inc:340 +msgid "Register new account" +msgstr "Registreer nieuwe account" + +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:199 ../lib/modules/inetOrgPerson.inc:404 +#: ../lib/modules/inetOrgPerson.inc:574 ../lib/modules/inetOrgPerson.inc:706 +#: ../lib/modules/inetOrgPerson.inc:1347 ../lib/modules/inetOrgPerson.inc:1932 +#: ../lib/modules/inetOrgPerson.inc:2602 ../lib/modules/inetOrgPerson.inc:3590 +#: ../lib/modules/inetOrgPerson.inc:3649 +msgid "Registered address" +msgstr "Geregistreerd adres" + +#: ../lib/modules/inetOrgPerson.inc:707 +msgid "Registered address, city" +msgstr "Geregistreerd adres, plaats" + +#: ../lib/modules/asteriskAccount.inc:215 +#: ../lib/modules/asteriskAccount.inc:292 +#: ../lib/modules/asteriskAccount.inc:501 +#: ../lib/modules/asteriskAccount.inc:725 +#: ../lib/modules/asteriskAccount.inc:1008 +#: ../lib/modules/asteriskAccount.inc:1285 +msgid "Registration context" +msgstr "Registratie context" + +#: ../lib/modules/asteriskAccount.inc:219 +#: ../lib/modules/asteriskAccount.inc:293 +#: ../lib/modules/asteriskAccount.inc:508 +#: ../lib/modules/asteriskAccount.inc:729 +#: ../lib/modules/asteriskAccount.inc:1009 +#: ../lib/modules/asteriskAccount.inc:1287 +msgid "Registration extension" +msgstr "Registratie extentie" + +#: ../lib/modules/asteriskAccount.inc:235 +#: ../lib/modules/asteriskAccount.inc:297 +#: ../lib/modules/asteriskAccount.inc:537 +#: ../lib/modules/asteriskAccount.inc:754 +#: ../lib/modules/asteriskAccount.inc:1013 +#: ../lib/modules/asteriskAccount.inc:1295 +msgid "Registration server" +msgstr "Registratie server" + +#: ../lib/modules/kolabUser.inc:53 +msgid "Reject if conflicts" +msgstr "Afwijzen als het conflicteert" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +msgid "Reloading" +msgstr "Herladen" + +#: ../templates/login.php:427 +msgid "Remember user name" +msgstr "Onthoud gebruikersnaam" + +#: ../templates/config/confmodules.php:310 +#: ../templates/pdfedit/pdfpage.php:477 ../lib/modules/mitKerberos.inc:688 +#: ../lib/modules/qmailUser.inc:919 ../lib/modules/windowsHost.inc:158 +#: ../lib/modules/sambaSamAccount.inc:1484 ../lib/modules/kolabUser.inc:871 +#: ../lib/modules/shadowAccount.inc:476 ../lib/modules/freeRadius.inc:429 +#: ../lib/modules/sudoRole.inc:318 ../lib/modules/sudoRole.inc:345 +#: ../lib/modules/sudoRole.inc:372 ../lib/modules/sudoRole.inc:399 +#: ../lib/modules/sudoRole.inc:426 ../lib/modules/sudoRole.inc:453 +#: ../lib/modules/heimdalKerberos.inc:598 ../lib/modules/windowsGroup.inc:364 +msgid "Remove" +msgstr "Verwijderen" + +#: ../lib/modules/asteriskVoicemail.inc:263 +msgid "Remove Asterisk voicemail extension" +msgstr "Verwijder Asterisk voicemail extensie" + +#: ../lib/modules/authorizedServiceObject.inc:170 +msgid "Remove Authorized Service extension" +msgstr "Verwijder Authorized Service extensie " + +#: ../lib/modules/eduPerson.inc:355 +msgid "Remove EDU person extension" +msgstr "Verwijder EDU person extensie" + +#: ../lib/modules/freeRadius.inc:307 +msgid "Remove FreeRadius extension" +msgstr "Verwijder FreeRadius extensie " + +#: ../lib/modules/ipHost.inc:160 +msgid "Remove IP address extension" +msgstr "Verwijder IP address extensie" + +#: ../lib/modules/mitKerberos.inc:472 ../lib/modules/heimdalKerberos.inc:397 +msgid "Remove Kerberos extension" +msgstr "Verwijder Kerberos extensie" + +#: ../lib/modules/puppetClient.inc:280 +msgid "Remove Puppet extension" +msgstr "Verwijder Puppet extensie" + +#: ../lib/modules/pykotaGroup.inc:238 ../lib/modules/pykotaUser.inc:418 +msgid "Remove PyKota extension" +msgstr "Verwijder PyKota extensie" + +#: ../lib/modules/sambaSamAccount.inc:1311 +#: ../lib/modules/sambaGroupMapping.inc:423 +msgid "Remove Samba 3 extension" +msgstr "Verwijder Samba 3 extensie" + +#: ../lib/modules/shadowAccount.inc:375 +msgid "Remove Shadow account extension" +msgstr "Verwijder Shadow account extensie" + +#: ../lib/modules/posixGroup.inc:246 ../lib/modules/posixAccount.inc:1511 +msgid "Remove Unix extension" +msgstr "Verwijder Unix extensie" + +#: ../lib/modules/zarafaContact.inc:258 ../lib/modules/zarafaGroup.inc:307 +#: ../lib/modules/zarafaUser.inc:655 ../lib/modules/zarafaServer.inc:232 +msgid "Remove Zarafa extension" +msgstr "Verwijder Zarafa extensie" + +#: ../lib/modules/customFields.inc:457 +msgid "Remove extension" +msgstr "Verwijder extensie" + +#: ../lib/types/user.inc:384 +msgid "Remove from all Unix groups" +msgstr "Verwijderen uit alle Unix groepen" + +#: ../lib/types/user.inc:388 +msgid "Remove from all group of (unique) names" +msgstr "Verwijderen uit alle groepen van de (unieke) namen" + +#: ../lib/modules/hostObject.inc:147 +msgid "Remove host extension" +msgstr "Verwijder Host extensie" + +#: ../lib/modules/posixGroup.inc:213 ../lib/modules/posixAccount.inc:1504 +#: ../lib/modules/inetOrgPerson.inc:1597 +msgid "Remove password" +msgstr "Verwijder wachtwoord" + +#: ../lib/modules/passwordSelfReset.inc:281 +msgid "Remove password self reset extension" +msgstr "Verwijder wachtwoord zelf reset extensie" + +#: ../lib/modules/qmailUser.inc:706 ../lib/modules/qmailGroup.inc:627 +msgid "Remove qmail extension" +msgstr "Verwijder qmail extensie" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:147 +#: ../lib/modules/zarafaContact.inc:418 ../lib/modules/zarafaGroup.inc:478 +#: ../lib/modules/device.inc:281 ../lib/modules/zarafaUser.inc:902 +#: ../lib/modules/inetOrgPerson.inc:1770 ../lib/modules/qmailGroup.inc:850 +#: ../lib/modules/organizationalRole.inc:383 +#: ../lib/modules/windowsGroup.inc:584 ../lib/modules/groupOfNames.inc:440 +#: ../lib/modules/groupOfNames.inc:595 +msgid "Remove selected entries" +msgstr "Verwijder geselecteerde items" + +#: ../templates/config/conftypes.php:249 +msgid "Remove this account type" +msgstr "Verwijder dit account type" + +#: ../lib/modules/nisMailAliasUser.inc:153 +#: ../lib/modules/nisMailAliasUser.inc:192 +msgid "Remove user from alias entry." +msgstr "Gebruiker verwijderen uit alias." + +#: ../lib/modules/inetOrgPerson.inc:2704 +msgid "Remove/replace photo" +msgstr "Verwijder/vervang foto" + +#: ../templates/config/profmanage.php:264 +#: ../templates/selfService/profManage.php:225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1152 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1155 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:24 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:35 +#: ../templates/3rdParty/pla/htdocs/rename.php:53 +msgid "Rename" +msgstr "Hernoem" + +#: ../templates/3rdParty/pla/htdocs/rename_form.php:28 +#, php-format +msgid "Rename %s to a new object." +msgstr "Hernoem %s naar een nieuw object." + +#: ../templates/config/profmanage.php:259 +#: ../templates/config/profmanage.php:265 +#: ../templates/selfService/profManage.php:216 +#: ../templates/selfService/profManage.php:226 ../help/help.inc:132 +msgid "Rename profile" +msgstr "Hernoem profiel" + +#: ../templates/3rdParty/pla/htdocs/rename.php:48 +msgid "Rename successful!" +msgstr "Hernoemen succesvol!" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +msgid "Rename this entry" +msgstr "Hernoemen dit item" + +#: ../templates/config/profmanage.php:98 +#: ../templates/selfService/profManage.php:72 +msgid "Renamed profile." +msgstr "Hernoemd profiel" + +#: ../templates/3rdParty/pla/htdocs/import.php:30 +#: ../templates/3rdParty/pla/htdocs/import.php:31 +msgid "Renaming" +msgstr "Hernoemen" + +#: ../lib/modules/mitKerberos.inc:132 ../lib/modules/mitKerberos.inc:196 +#: ../lib/modules/mitKerberos.inc:236 ../lib/modules/mitKerberos.inc:253 +#: ../lib/modules/mitKerberos.inc:366 ../lib/modules/mitKerberos.inc:771 +#: ../lib/modules/heimdalKerberos.inc:114 +#: ../lib/modules/heimdalKerberos.inc:165 +#: ../lib/modules/heimdalKerberos.inc:205 +#: ../lib/modules/heimdalKerberos.inc:222 +#: ../lib/modules/heimdalKerberos.inc:313 +#: ../lib/modules/heimdalKerberos.inc:691 +msgid "Renewable lifetime" +msgstr "hernieuwbare levensduur" + +#: ../lib/modules/mitKerberos.inc:295 ../lib/modules/mitKerberos.inc:296 +#: ../lib/modules/heimdalKerberos.inc:259 +#: ../lib/modules/heimdalKerberos.inc:260 +msgid "Renewable lifetime must be a number." +msgstr "Hernieuwbare levensduur moet een getal zijn." + +#: ../templates/lists/changePassword.php:368 +#: ../lib/modules/passwordSelfReset.inc:1067 ../lib/modules.inc:1048 +msgid "Repeat password" +msgstr "Herhaal wachtwoord" + +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:1199 +msgid "Replaced $user or $group in homedir." +msgstr "Vervangen $user of $group in homedirectory." + +#: ../templates/config/confmain.php:346 ../help/help.inc:257 +msgid "Reply-to address" +msgstr "Antwoord-naar adres" + +#: ../templates/config/confmain.php:523 +msgid "Reply-to address for password mails is invalid." +msgstr "Antwoord-naar adres voor wachtwoord mail is ongeldig" + +#: ../lib/types/ppolicyType.inc:89 ../lib/modules/ppolicy.inc:128 +#: ../lib/modules/ppolicy.inc:154 ../lib/modules/ppolicy.inc:288 +#: ../lib/modules/ppolicy.inc:500 +msgid "Require password change on first login" +msgstr "Vereis wachtwoord verandering bij eerste aanmelding" + +#: ../lib/modules/windowsUser.inc:201 ../lib/modules/windowsUser.inc:402 +#: ../lib/modules/windowsUser.inc:519 ../lib/modules/windowsUser.inc:750 +#: ../lib/modules/windowsUser.inc:1629 +msgid "Require smartcard" +msgstr "Vereis smartcard" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 +msgid "Required attribute for object classes" +msgstr "Verplicht attribuut voor objectklassen" + +#: ../templates/schema/schema.php:383 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1567 +msgid "Required attributes" +msgstr "Verplichte attributen" + +#: ../lib/modules/mitKerberos.inc:180 ../lib/modules/mitKerberos.inc:462 +msgid "Requires hardware authentication" +msgstr "Vereist hardware authenticatie" + +#: ../lib/modules/mitKerberos.inc:177 ../lib/modules/mitKerberos.inc:457 +#: ../lib/modules/heimdalKerberos.inc:151 +#: ../lib/modules/heimdalKerberos.inc:388 +msgid "Requires preauthentication" +msgstr "Vereist pre authenticatie" + +#: ../lib/modules/sambaSamAccount.inc:1305 +#: ../lib/modules/pykotaBillingCode.inc:93 +#: ../lib/modules/pykotaBillingCode.inc:163 +msgid "Reset" +msgstr "Reset" + +#: ../lib/modules.inc:1220 +msgid "Reset changes" +msgstr "Reset veranderingeren" + +#: ../lib/modules/sambaSamAccount.inc:265 +#: ../lib/modules/sambaSamAccount.inc:1304 +msgid "Reset password" +msgstr "Reset wachtwoord" + +#: ../lib/modules/sambaDomain.inc:137 ../lib/modules/sambaDomain.inc:199 +#: ../lib/modules/sambaDomain.inc:224 ../lib/modules/sambaDomain.inc:348 +#: ../lib/modules/sambaDomain.inc:611 +msgid "Reset time after lockout" +msgstr "Reset tijd na blokkering" + +#: ../lib/modules/sambaDomain.inc:224 +msgid "Reset time after lockout must be are natural number." +msgstr "Reset tijd na blokkering moet natuurlijk getal zijn." + +#: ../lib/modules/pykotaBillingCode.inc:94 +msgid "Resets the billing code's balance and page counter to 0." +msgstr "Reset de facturering codes balans en pagina teller op 0." + +#: ../lib/modules/zarafaUser.inc:523 +msgid "Resource settings" +msgstr "Resource instellingen" + +#: ../lib/modules/asteriskAccount.inc:187 +#: ../lib/modules/asteriskAccount.inc:285 +#: ../lib/modules/asteriskAccount.inc:450 +#: ../lib/modules/asteriskAccount.inc:695 +#: ../lib/modules/asteriskAccount.inc:1001 +#: ../lib/modules/asteriskAccount.inc:1271 +msgid "Restrict caller ID" +msgstr "Beperk beller-ID" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:113 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:118 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:550 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:587 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:198 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:84 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:122 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +msgid "Retrieving DN" +msgstr "Ophalen DN" + +#: ../lib/modules/bindDLZ.inc:219 ../lib/modules/bindDLZ.inc:332 +#: ../lib/modules/bindDLZ.inc:425 ../lib/modules/bindDLZ.inc:523 +#: ../lib/modules/bindDLZ.inc:1037 ../lib/modules/bindDLZ.inc:1550 +msgid "Retry time" +msgstr "Retry tijd" + +#: ../lib/modules/bindDLZ.inc:755 +msgid "Reverse DNS entries (\"PTR\" records)" +msgstr "Reverse DNS entries (\"PTR\" records)" + +#: ../lib/modules/ddns.inc:106 ../lib/modules/ddns.inc:114 +#: ../lib/modules/ddns.inc:135 ../lib/modules/ddns.inc:397 +#: ../lib/modules/ddns.inc:426 +msgid "Reverse zone name" +msgstr "Reverse zone naam" + +#: ../templates/config/confmain.php:313 ../help/help.inc:118 +msgid "Rights for the home directory" +msgstr "Rechten voor de home directory" + +#: ../lib/modules/organizationalRole.inc:65 +msgid "Role" +msgstr "Rol" + +#: ../lib/types/gon.inc:209 ../lib/types/group.inc:247 +#, php-format +msgid "Role count: %s" +msgstr "Rol aantal: %s" + +#: ../lib/types/gon.inc:107 ../lib/types/group.inc:110 +msgid "Role member DNs" +msgstr "Rol lid DNs" + +#: ../lib/types/gon.inc:112 ../lib/types/group.inc:116 +#: ../lib/types/sudo.inc:77 ../lib/modules/sudoRole.inc:66 +#: ../lib/modules/sudoRole.inc:146 ../lib/modules/sudoRole.inc:214 +#: ../lib/modules/sudoRole.inc:299 ../lib/modules/sudoRole.inc:804 +msgid "Role name" +msgstr "Rol naam" + +#: ../lib/types/gon.inc:63 ../lib/types/group.inc:64 +#: ../lib/modules/organizationalRoleUser.inc:54 +#: ../lib/modules/organizationalRoleUser.inc:56 +#: ../lib/modules/organizationalRoleUser.inc:60 +#: ../lib/modules/organizationalRoleUser.inc:64 +#: ../lib/modules/organizationalRoleUser.inc:71 +#: ../lib/modules/organizationalRoleUser.inc:270 +#: ../lib/modules/organizationalRoleUser.inc:306 +msgid "Roles" +msgstr "Rollen" + +#: ../lib/modules/zarafaUser.inc:528 ../lib/modules/zarafaUser.inc:1246 +msgid "Room" +msgstr "Kamer" + +#: ../lib/modules/inetOrgPerson.inc:163 ../lib/modules/inetOrgPerson.inc:205 +#: ../lib/modules/inetOrgPerson.inc:486 ../lib/modules/inetOrgPerson.inc:580 +#: ../lib/modules/inetOrgPerson.inc:782 ../lib/modules/inetOrgPerson.inc:1391 +#: ../lib/modules/inetOrgPerson.inc:1394 ../lib/modules/inetOrgPerson.inc:1940 +#: ../lib/modules/inetOrgPerson.inc:2635 ../lib/modules/inetOrgPerson.inc:3594 +#: ../lib/modules/inetOrgPerson.inc:3650 +msgid "Room number" +msgstr "Kamernummer" + +#: ../lib/modules/inetLocalMailRecipient.inc:68 +#: ../lib/modules/inetLocalMailRecipient.inc:100 +#: ../lib/modules/inetLocalMailRecipient.inc:119 +#: ../lib/modules/inetLocalMailRecipient.inc:146 +#: ../lib/modules/inetLocalMailRecipient.inc:292 +msgid "Routing address" +msgstr "Routing adres" + +#: ../lib/modules/customFields.inc:132 ../lib/modules/customFields.inc:2607 +msgid "Rows" +msgstr "Rijen" + +#: ../lib/modules/asteriskExtension.inc:139 +#: ../lib/modules/asteriskExtension.inc:311 +msgid "Rules" +msgstr "Regels" + +#: ../lib/modules/customScripts.inc:187 +msgid "Run" +msgstr "Uitvoeren" + +#: ../lib/types/sudo.inc:82 +msgid "Run group" +msgstr "Run groep" + +#: ../lib/modules/sudoRole.inc:90 ../lib/modules/sudoRole.inc:118 +#: ../lib/modules/sudoRole.inc:183 ../lib/modules/sudoRole.inc:220 +#: ../lib/modules/sudoRole.inc:232 ../lib/modules/sudoRole.inc:424 +#: ../lib/modules/sudoRole.inc:810 +msgid "Run groups" +msgstr "Run groepen" + +#: ../lib/types/sudo.inc:81 +msgid "Run user" +msgstr "Run gebruiker" + +#: ../lib/modules/sudoRole.inc:86 ../lib/modules/sudoRole.inc:113 +#: ../lib/modules/sudoRole.inc:177 ../lib/modules/sudoRole.inc:219 +#: ../lib/modules/sudoRole.inc:231 ../lib/modules/sudoRole.inc:397 +#: ../lib/modules/sudoRole.inc:809 +msgid "Run users" +msgstr "Run gebruikers" + +#: ../lib/modules/windowsUser.inc:304 +msgid "S.M." +msgstr "S.M." + +#: ../templates/serverInfo.php:129 +msgid "SASL mechanisms" +msgstr "SASL mechanismen" + +#: ../lib/modules/asteriskAccount.inc:152 +msgid "SIP URI for a realtime peer." +msgstr "SIP-URI voor een realtime peer." + +#: ../lib/modules/asteriskAccount.inc:128 +msgid "SIP user agent identification." +msgstr "SIP user agent identificatie." + +#: ../lib/modules/bindDLZ.inc:314 ../lib/modules/bindDLZ.inc:320 +#: ../lib/modules/bindDLZ.inc:326 ../lib/modules/bindDLZ.inc:332 +#: ../lib/modules/bindDLZ.inc:338 ../lib/modules/bindDLZ.inc:345 +#: ../lib/modules/bindDLZ.inc:351 ../lib/modules/bindDLZ.inc:357 +#: ../lib/modules/bindDLZ.inc:423 ../lib/modules/bindDLZ.inc:424 +#: ../lib/modules/bindDLZ.inc:425 ../lib/modules/bindDLZ.inc:426 +#: ../lib/modules/bindDLZ.inc:427 ../lib/modules/bindDLZ.inc:428 +#: ../lib/modules/bindDLZ.inc:429 ../lib/modules/bindDLZ.inc:430 +#: ../lib/modules/bindDLZ.inc:487 ../lib/modules/bindDLZ.inc:519 +#: ../lib/modules/bindDLZ.inc:521 ../lib/modules/bindDLZ.inc:523 +#: ../lib/modules/bindDLZ.inc:525 ../lib/modules/bindDLZ.inc:527 +#: ../lib/modules/bindDLZ.inc:529 +msgid "SOA record" +msgstr "SOA record" + +#: ../lib/modules/bindDLZ.inc:130 ../lib/modules/bindDLZ.inc:389 +#: ../lib/modules/bindDLZ.inc:394 ../lib/modules/bindDLZ.inc:399 +#: ../lib/modules/bindDLZ.inc:404 ../lib/modules/bindDLZ.inc:409 +#: ../lib/modules/bindDLZ.inc:493 +msgid "SRV record" +msgstr "SRV record" + +#: ../lib/modules/bindDLZ.inc:433 ../lib/modules/bindDLZ.inc:443 +#: ../lib/modules/bindDLZ.inc:1603 +msgid "SRV records" +msgstr "SRV records" + +#: ../templates/tests/lamdaemonTest.php:243 +msgid "SSH connection" +msgstr "SSH verbinding" + +#: ../templates/tests/lamdaemonTest.php:256 +msgid "SSH connection could be established." +msgstr "SSH verbinding kon niet tot stand worden gebracht." + +#: ../lib/modules/ldapPublicKey.inc:62 ../lib/modules/ldapPublicKey.inc:72 +#: ../lib/modules/ldapPublicKey.inc:76 ../lib/modules/ldapPublicKey.inc:88 +#: ../lib/modules/ldapPublicKey.inc:119 +msgid "SSH public key" +msgstr "SSH publieke sleutel" + +#: ../lib/modules/ldapPublicKey.inc:95 ../lib/modules/ldapPublicKey.inc:99 +#: ../lib/modules/ldapPublicKey.inc:197 ../lib/modules/ldapPublicKey.inc:237 +msgid "SSH public keys" +msgstr "SSH publieke sleutels" + +#: ../help/help.inc:83 +msgid "SSL certificate" +msgstr "SSL-certificaat" + +#: ../templates/config/mainmanage.php:308 +msgid "SSL certificates" +msgstr "SSL-certificaten" + +#: ../lib/modules/zarafaServer.inc:72 ../lib/modules/zarafaServer.inc:106 +#: ../lib/modules/zarafaServer.inc:136 ../lib/modules/zarafaServer.inc:175 +#: ../lib/modules/zarafaServer.inc:203 ../lib/modules/zarafaServer.inc:355 +msgid "SSL port" +msgstr "SSL poort" + +#: ../templates/lists/changePassword.php:411 +#: ../templates/lists/changePassword.php:442 +msgid "Samba" +msgstr "Samba" + +#: ../lib/types/user.inc:276 ../lib/types/user.inc:372 +#: ../lib/types/user.inc:404 ../lib/types/user.inc:829 +#: ../lib/modules/sambaSamAccount.inc:146 +#: ../lib/modules/sambaGroupMapping.inc:101 +msgid "Samba 3" +msgstr "Samba 3" + +#: ../lib/modules/sambaDomain.inc:210 ../lib/modules/sambaDomain.inc:211 +msgid "Samba 3 domain SID is invalid!" +msgstr "Samba 3 domein SID is ongeldig!" + +#: ../lib/types/smbDomain.inc:62 +msgid "Samba 3 domain entries" +msgstr "Samba 3 domein entrees" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:228 +msgid "Samba ID pool" +msgstr "Samba ID pool" + +#: ../lib/modules/posixGroup.inc:413 ../lib/modules/posixGroup.inc:524 +#: ../lib/modules/posixGroup.inc:608 ../lib/modules/posixAccount.inc:131 +#: ../lib/modules/posixAccount.inc:215 ../lib/modules/posixAccount.inc:233 +#: ../lib/modules/posixAccount.inc:501 +msgid "Samba ID pool DN" +msgstr "Samba ID pool DN" + +#: ../lib/modules/sambaSamAccount.inc:330 +#: ../lib/modules/sambaSamAccount.inc:334 +#: ../lib/modules/sambaSamAccount.inc:478 +#: ../lib/modules/sambaSamAccount.inc:544 +msgid "Samba RID" +msgstr "Samba RID" + +#: ../lib/modules/sambaGroupMapping.inc:129 +#: ../lib/modules/sambaGroupMapping.inc:154 +msgid "Samba RID number" +msgstr "Samba RID nummer" + +#: ../lib/modules/sambaGroupMapping.inc:123 +msgid "Samba display name" +msgstr "Samba display naam" + +#: ../lib/modules/sambaDomain.inc:58 +msgid "Samba domain" +msgstr "Samba domein" + +#: ../lib/modules/sambaGroupMapping.inc:245 +msgid "Samba domain name" +msgstr "Samba domeinnaam" + +#: ../lib/types/smbDomain.inc:53 +msgid "Samba domains" +msgstr "Samba domeinen" + +#: ../lib/modules/sambaGroupMapping.inc:113 +#: ../lib/modules/sambaGroupMapping.inc:135 +#: ../lib/modules/sambaGroupMapping.inc:162 +#: ../lib/modules/sambaGroupMapping.inc:541 +msgid "Samba group type" +msgstr "Samba groep type" + +#: ../lib/modules/sambaSamAccount.inc:262 +msgid "Samba password" +msgstr "Samba wachtwoord" + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:227 +#: ../lib/modules/sambaSamAccount.inc:315 +#: ../lib/modules/sambaSamAccount.inc:318 +#: ../lib/modules/sambaSamAccount.inc:519 +#: ../lib/modules/sambaSamAccount.inc:605 +#: ../lib/modules/sambaSamAccount.inc:1245 +#: ../lib/modules/sambaSamAccount.inc:1773 +#: ../lib/modules/sambaSamAccount.inc:1911 +msgid "Samba workstations" +msgstr "Samba werkstations" + +#: ../lib/modules/sambaSamAccount.inc:1381 +msgid "Saturday" +msgstr "Zaterdag" + +#: ../templates/config/confmodules.php:224 +#: ../templates/config/confmain.php:468 +#: ../templates/config/moduleSettings.php:238 +#: ../templates/config/conftypes.php:359 +#: ../templates/selfService/selfServiceMain.php:416 +#: ../templates/selfService/adminMain.php:713 +#: ../templates/pdfedit/pdfpage.php:636 +#: ../templates/profedit/profilepage.php:238 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1243 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1247 +#: ../lib/modules/inetOrgPerson.inc:2859 ../lib/modules/customFields.inc:3456 +#: ../lib/modules.inc:1214 +msgid "Save" +msgstr "Bewaar" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +msgid "Save a dump of this object" +msgstr "Sla een dump op van dit object" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1244 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Save a dump of this object and all of its children" +msgstr "Sla een dump op van dit object en al zijn kinderen" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:90 +msgid "Save as file" +msgstr "Bewaar als bestand" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:172 +msgid "Save changes" +msgstr "Wijzigingen opslaan" + +#: ../lib/tools/schemaBrowser.inc:44 +msgid "Schema browser" +msgstr "Schema browser" + +#: ../templates/serverInfo.php:119 +msgid "Schema suffix" +msgstr "Schema achtervoegsel" + +#: ../templates/tests/schemaTest.php:55 ../templates/tests/index.php:58 +#: ../lib/tools/tests.inc:116 +msgid "Schema test" +msgstr "Schema test" + +#: ../lib/modules/eduPerson.inc:92 ../lib/modules/eduPerson.inc:96 +#: ../lib/modules/eduPerson.inc:175 ../lib/modules/eduPerson.inc:233 +#: ../lib/modules/eduPerson.inc:285 ../lib/modules/eduPerson.inc:582 +msgid "Scoped affiliations" +msgstr "Scoped affiliaties" + +#: ../help/help.inc:101 +msgid "Script path" +msgstr "Script pad" + +#: ../templates/config/confmain.php:573 +msgid "Script path is invalid!" +msgstr "Script pad is ongeldig!" + +#: ../templates/config/confmain.php:592 +msgid "Script rights are invalid!" +msgstr "Script rechten zijn ongeldig!" + +#: ../templates/config/confmain.php:576 +msgid "Script server is invalid!" +msgstr "Script server is ongeldig!" + +#: ../help/help.inc:114 +msgid "Script servers" +msgstr "Script servers" + +#: ../templates/serverInfo.php:300 ../templates/serverInfo.php:380 +#: ../templates/3rdParty/pla/lib/QueryRender.php:75 +#: ../templates/3rdParty/pla/lib/QueryRender.php:180 +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:619 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:235 +msgid "Search" +msgstr "Zoek" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +#: ../templates/3rdParty/pla/lib/QueryRender.php:190 +msgid "Search Results" +msgstr "Zoekresultaten" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +#: ../templates/3rdParty/pla/lib/export_functions.php:201 +#: ../templates/3rdParty/pla/htdocs/export_form.php:81 +msgid "Search filter" +msgstr "Zoek filter" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:293 +msgid "Search returned no results" +msgstr "Zoekopdracht heeft geen resultaten" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +#: ../templates/3rdParty/pla/lib/export_functions.php:200 +#: ../templates/3rdParty/pla/htdocs/export_form.php:67 +msgid "Search scope" +msgstr "Reikwjdte zoekopdracht" + +#: ../lib/modules/asteriskExtension.inc:457 +msgid "Search tree suffix for users" +msgstr "Zoekboom achtervoegsel voor gebruikers" + +#: ../templates/pdfedit/pdfpage.php:608 +msgid "Section" +msgstr "Sectie" + +#: ../lib/modules/windowsGroup.inc:60 +msgid "Security" +msgstr "Veiligheid" + +#: ../templates/3rdParty/pla/lib/Template.php:397 +#: ../templates/3rdParty/pla/lib/Template.php:422 +#: ../templates/3rdParty/pla/lib/Template.php:427 +#: ../templates/3rdParty/pla/lib/Template.php:484 +#: ../templates/3rdParty/pla/lib/Template.php:509 +#: ../templates/3rdParty/pla/lib/Template.php:514 +msgid "Security error: The file being uploaded may be malicious." +msgstr "" +"Beveiliging error: Het bestand dat wordt geüpload zou kwaadaardig kunnen " +"zijn." + +#: ../lib/modules/zarafaGroup.inc:81 ../lib/modules/zarafaGroup.inc:178 +#: ../lib/modules/zarafaGroup.inc:203 ../lib/modules/zarafaGroup.inc:285 +#: ../lib/modules/zarafaGroup.inc:655 +msgid "Security group" +msgstr "Beveiligingsgroep" + +#: ../lib/modules/windowsGroup.inc:139 +msgid "" +"Security groups are used for permission management and distribution groups " +"as email lists." +msgstr "" +"Security groepen worden gebruikt voor toestemmingsbeheer en de " +"distributiegroepen worden gebruikt als e-maillijsten." + +#: ../lib/modules/passwordSelfReset.inc:80 +#: ../lib/modules/passwordSelfReset.inc:205 +#: ../lib/modules/passwordSelfReset.inc:527 +msgid "Security questions" +msgstr "Beveiligingsvragen" + +#: ../templates/config/mainmanage.php:295 ../templates/config/confmain.php:458 +msgid "Security settings" +msgstr "Veiligheidsinstellingen" + +#: ../templates/help.php:94 +msgid "See also" +msgstr "Zie ook" + +#: ../lib/account.inc:790 +msgid "See the manual for instructions to solve this problem." +msgstr "Zie de handleiding voor instructies om dit probleem op te lossen." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:494 +msgid "Select a template for the creation process" +msgstr "Selecteer een sjabloon voor het creatieproces" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:498 +msgid "Select a template to edit the entry" +msgstr "Selecteer een sjabloon om het item te bewerken" + +#: ../lib/lists.inc:354 ../lib/lists.inc:471 +msgid "Select all" +msgstr "Alles selecteren" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:31 +msgid "Select an LDIF file" +msgstr "Selecteer een LDIF bestand" + +#: ../lib/modules/nisnetgroup.inc:240 ../lib/modules/nisnetgroup.inc:269 +msgid "Select host" +msgstr "Selecteer host" + +#: ../lib/modules/customFields.inc:3126 +msgid "Select list" +msgstr "Selecteer lijst" + +#: ../lib/modules/nisMailAlias.inc:194 ../lib/modules/nisMailAlias.inc:215 +msgid "Select mail" +msgstr "Selecteer email" + +#: ../lib/modules/nisMailAliasUser.inc:101 +msgid "Select one or more alias entries from the list to add the recipient." +msgstr "" +"Selecteer een of meer alias vermeldingen uit de lijst om aan de ontvanger " +"toe te voegen." + +#: ../lib/modules/nisnetgroup.inc:246 ../lib/modules/nisnetgroup.inc:275 +#: ../lib/modules/nisMailAlias.inc:195 ../lib/modules/nisMailAlias.inc:216 +msgid "Select user" +msgstr "Selecteer gebruiker" + +#: ../lib/modules/posixAccount.inc:1567 ../lib/modules/posixAccount.inc:1600 +#: ../lib/modules/windowsUser.inc:1034 ../lib/modules/nisnetgroup.inc:384 +#: ../lib/modules/groupOfNamesUser.inc:131 +msgid "Selected groups" +msgstr "Geselecteerde groepen" + +#: ../templates/masscreate.php:159 ../templates/config/confmodules.php:299 +msgid "Selected modules" +msgstr "Geslecteerde modules" + +#: ../lib/modules/organizationalRoleUser.inc:116 +msgid "Selected roles" +msgstr "Geselecteerde rollen" + +#: ../lib/modules/posixGroup.inc:295 ../lib/modules/asteriskExtension.inc:461 +msgid "Selected users" +msgstr "Geselecteerde gebruikers" + +#: ../templates/selfService/adminMain.php:304 +msgid "Self service configuration" +msgstr "Zelf service configuratie" + +#: ../templates/selfService/adminMain.php:357 +msgid "Self service configuration editor" +msgstr "Zelf service configuratie editor" + +#: ../templates/selfService/adminMain.php:363 +msgid "Self service login" +msgstr "Zelf service login" + +#: ../lib/modules/passwordSelfReset.inc:504 +msgid "Self service login attribute" +msgstr "Zelf service login attribuut" + +#: ../templates/selfService/adminMain.php:349 +msgid "Self service profile" +msgstr "Self service profiel" + +#: ../lib/modules/passwordSelfReset.inc:130 +#: ../lib/modules/passwordSelfReset.inc:531 +msgid "Send confirmation mail" +msgstr "Stuur bevestigings e-mail" + +#: ../lib/modules/passwordSelfReset.inc:112 +#: ../lib/modules/passwordSelfReset.inc:551 +msgid "Send notification mail" +msgstr "Stuur notificatie e-mail" + +#: ../lib/modules/inetOrgPerson.inc:467 ../lib/modules/inetOrgPerson.inc:751 +msgid "Send password via mail" +msgstr "Stuur wachtwoord via mail" + +#: ../templates/lists/changePassword.php:328 +#: ../templates/lists/changePassword.php:373 ../lib/modules.inc:1066 +#: ../help/help.inc:208 +msgid "Send via mail" +msgstr "Verzenden via e-mail" + +#: ../lib/modules/qmailGroup.inc:90 ../lib/modules/qmailGroup.inc:220 +#: ../lib/modules/qmailGroup.inc:224 ../lib/modules/qmailGroup.inc:353 +#: ../lib/modules/qmailGroup.inc:408 ../lib/modules/qmailGroup.inc:429 +#: ../lib/modules/qmailGroup.inc:519 ../lib/modules/qmailGroup.inc:1068 +msgid "Sender email addresses" +msgstr "Afzender e-mailadressen" + +#: ../lib/modules/qmailGroup.inc:88 ../lib/modules/qmailGroup.inc:172 +#: ../lib/modules/qmailGroup.inc:176 ../lib/modules/qmailGroup.inc:295 +#: ../lib/modules/qmailGroup.inc:387 ../lib/modules/qmailGroup.inc:521 +#: ../lib/modules/qmailGroup.inc:790 ../lib/modules/qmailGroup.inc:1067 +msgid "Sender entries" +msgstr "Afzender items" + +#: ../lib/modules/qmailGroup.inc:92 ../lib/modules/qmailGroup.inc:188 +#: ../lib/modules/qmailGroup.inc:192 ../lib/modules/qmailGroup.inc:311 +#: ../lib/modules/qmailGroup.inc:393 ../lib/modules/qmailGroup.inc:520 +#: ../lib/modules/qmailGroup.inc:1069 +msgid "Sender filter" +msgstr "Afzender filter" + +#: ../lib/modules/passwordSelfReset.inc:113 +msgid "Sends a mail to the user to inform him about the password change." +msgstr "" +"Stuurt een mail naar de gebruiker om hem te te informeren over de " +"wachtwoordwijziging." + +#: ../lib/modules/passwordSelfReset.inc:131 +msgid "" +"Sends a mail to the user to validate his email address before the password " +"change." +msgstr "" +"Stuurt een mail naar de gebruiker om zijn e-mailadres te valideren " +"voorafgaande aan de wachtwoordwijziging." + +#: ../lib/modules/inetOrgPerson.inc:752 ../help/help.inc:209 +msgid "" +"Sends the password to the user via mail. Please edit your LAM server profile " +"to setup the mail settings." +msgstr "" +"Stuurt het wachtwoord aan de gebruiker via e-mail. Bewerk uw LAM server " +"profiel om de mail-instellingen in te stellen." + +#: ../templates/config/mainmanage.php:358 ../lib/modules/device.inc:65 +#: ../lib/modules/device.inc:97 ../lib/modules/device.inc:127 +#: ../lib/modules/device.inc:175 ../lib/modules/device.inc:420 +#: ../lib/modules/bindDLZ.inc:227 ../lib/modules/bindDLZ.inc:357 +#: ../lib/modules/bindDLZ.inc:423 ../lib/modules/bindDLZ.inc:527 +#: ../lib/modules/bindDLZ.inc:1055 ../lib/modules/bindDLZ.inc:1548 +msgid "Serial number" +msgstr "Serienummer" + +#: ../templates/tests/lamdaemonTest.php:72 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:166 +#: ../templates/3rdParty/pla/htdocs/import.php:47 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:110 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +#: ../templates/3rdParty/pla/htdocs/export_form.php:56 +#: ../lib/modules/kolabGroup.inc:289 ../lib/modules/bindDLZ.inc:171 +#: ../lib/modules/bindDLZ.inc:175 ../lib/modules/bindDLZ.inc:404 +#: ../lib/modules/bindDLZ.inc:514 ../lib/modules/bindDLZ.inc:1373 +#: ../lib/modules/bindDLZ.inc:1609 ../lib/modules/kolabSharedFolder.inc:429 +msgid "Server" +msgstr "Server" + +#: ../templates/config/confmain.php:238 +#: ../templates/selfService/adminMain.php:414 ../lib/modules/qmailUser.inc:118 +#: ../lib/modules/qmailUser.inc:163 ../lib/modules/qmailUser.inc:243 +#: ../lib/modules/qmailUser.inc:358 ../lib/modules/qmailUser.inc:427 +#: ../lib/modules/qmailUser.inc:592 ../lib/modules/qmailUser.inc:1148 +#: ../lib/modules/imapAccess.inc:77 ../lib/modules/imapAccess.inc:117 +#: ../help/help.inc:58 +msgid "Server address" +msgstr "Server adres" + +#: ../templates/config/confmain.php:501 +#: ../templates/selfService/adminMain.php:217 +msgid "Server address is invalid!" +msgstr "Server adres is ongeldig!" + +#: ../templates/serverInfo.php:103 ../lib/tools/serverInfo.inc:44 +msgid "Server information" +msgstr "Server informatie" + +#: ../templates/config/confmain.php:310 +msgid "Server list" +msgstr "Server lijst" + +#: ../templates/login.php:468 ../templates/config/confmodules.php:137 +#: ../templates/config/confmain.php:167 +#: ../templates/config/moduleSettings.php:136 +#: ../templates/config/conftypes.php:155 ../lib/modules/imapAccess.inc:130 +msgid "Server profile" +msgstr "Server profiel" + +#: ../templates/config/confmain.php:280 +#: ../templates/selfService/adminMain.php:459 +msgid "Server settings" +msgstr "Server instellingen" + +#: ../templates/serverInfo.php:180 +msgid "Server statistics" +msgstr "Server statistieken" + +#: ../templates/serverInfo.php:205 ../templates/serverInfo.php:211 +msgid "Server time" +msgstr "Server tijd" + +#: ../lib/modules/zarafaServer.inc:145 +msgid "Servers" +msgstr "Servers" + +#: ../lib/modules/authorizedServiceObject.inc:82 +msgid "Service name (e.g. sshd, imap, ftp). Enter one service per entry." +msgstr "Service naam (bv sshd, imap, ftp). Een service per regel." + +#: ../lib/modules/bindDLZ.inc:1347 +msgid "Services (\"SRV\" records)" +msgstr "Service (\"SRV\" records)" + +#: ../templates/config/mainmanage.php:298 ../help/help.inc:146 +msgid "Session timeout" +msgstr "Sessie timeout" + +#: ../lib/modules/aliasEntry.inc:108 +msgid "Set" +msgstr "Zet" + +#: ../lib/modules/sambaSamAccount.inc:1472 +#: ../lib/modules/sambaSamAccount.inc:1475 +#: ../lib/modules/sambaSamAccount.inc:1478 +#: ../lib/modules/shadowAccount.inc:464 ../lib/modules/shadowAccount.inc:467 +#: ../lib/modules/shadowAccount.inc:470 +msgid "Set also for Kerberos" +msgstr "Zet ook voor Kerberos" + +#: ../lib/modules/mitKerberos.inc:682 ../lib/modules/shadowAccount.inc:461 +#: ../lib/modules/heimdalKerberos.inc:592 +msgid "Set also for Samba 3" +msgstr "Zet ook voor Samba 3" + +#: ../lib/modules/mitKerberos.inc:679 ../lib/modules/sambaSamAccount.inc:1469 +#: ../lib/modules/heimdalKerberos.inc:589 +msgid "Set also for Shadow" +msgstr "Zet ook voor Shadow" + +#: ../lib/modules.inc:1227 ../lib/modules.inc:1229 +msgid "Set password" +msgstr "Wachtwoord instellen" + +#: ../lib/modules/posixAccount.inc:269 ../lib/modules/posixAccount.inc:445 +msgid "Set primary group as memberUid" +msgstr "Stel primaire groep in als memberUid" + +#: ../templates/config/profmanage.php:280 +#: ../templates/config/profmanage.php:291 +#: ../templates/config/profmanage.php:292 ../help/help.inc:136 +msgid "Set profile password" +msgstr "Profiel wachtwoord instellen" + +#: ../lib/modules.inc:1230 +msgid "Set random password" +msgstr "Stel willekeurige wachtwoorden in" + +#: ../templates/lists/changePassword.php:356 +msgid "Set specific password" +msgstr "Stel specifiek wachtwoord in" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +msgid "Set the search results to 0 to retrieve all available records." +msgstr "" +"Stel de zoekresultaten in op 0 om alle beschikbare records op te halen." + +#: ../templates/selfService/adminMain.php:561 +msgid "Set this field read-only." +msgstr "Stel dit veld in op alleen-lezen." + +#: ../lib/modules/groupOfNames.inc:110 +msgid "" +"Set this only if your LDAP schema allows that groups may not have any " +"members (e.g. if you use OpenDJ)." +msgstr "" +"Stel dit alleen in als uw LDAP-schema toestaat dat groepen geen leden mogen " +"hebben (bijv. als u gebruik maakt van OpenDJ)." + +#: ../lib/modules/nisMailAliasUser.inc:77 +#: ../lib/modules/nisMailAliasUser.inc:81 +msgid "Sets the alias names linked to the current user name." +msgstr "" +"Stelt de alias namen in die gekoppeld zijn aan de huidige gebruikersnaam." + +#: ../lib/modules/nisMailAliasUser.inc:85 +#: ../lib/modules/nisMailAliasUser.inc:89 +msgid "Sets the alias names linked to the user's email address." +msgstr "Stelt de alias namen gekoppeld aan het e-mailadres van de gebruiker." + +#: ../lib/modules/bindDLZ.inc:224 +msgid "" +"Sets the default timeout (in seconds) for entries without explicit timeout " +"value." +msgstr "" +"Stelt de standaard time-out (in seconden) in voor inzendingen zonder " +"uitdrukkelijke timeoutwaarde." + +#: ../lib/modules/qmailUser.inc:216 +msgid "Sets the delivery mode (e.g. disable mail forwarding)." +msgstr "" +"Hiermee stelt u de levering modus in (bijv. uitschakelen mail doorsturen)." + +#: ../lib/modules/posixGroup.inc:497 +msgid "Sets the group password." +msgstr "Wachtwoord van de groep instellen." + +#: ../lib/modules/bindDLZ.inc:204 ../lib/modules/bindDLZ.inc:208 +msgid "" +"Sets the preference for the mail server. Lower values have higher priority." +msgstr "" +"Stelt de voorkeur voor de mailserver. Lagere waarden hebben een hogere " +"prioriteit." + +#: ../help/help.inc:183 +msgid "Sets this account type to read-only." +msgstr "Stel dit account type in op alleen-lezen." + +#: ../lib/modules/shadowAccount.inc:91 +msgid "Shadow" +msgstr "Schaduw" + +#: ../lib/modules/sambaSamAccount.inc:243 +#: ../lib/modules/sambaSamAccount.inc:382 +#: ../lib/modules/sambaSamAccount.inc:1549 +#: ../lib/modules/sambaSamAccount.inc:1961 +msgid "Shadowing" +msgstr "Schaduw" + +#: ../lib/types/kolabSharedFolderType.inc:141 +#, php-format +msgid "Shared folder count: %s" +msgstr "Aantal gedeelde mappen: %s" + +#: ../lib/modules/kolabSharedFolder.inc:57 +msgid "Shared mail folder" +msgstr "Gedeelde mailmap" + +#: ../lib/modules/zarafaUser.inc:112 ../lib/modules/zarafaUser.inc:265 +#: ../lib/modules/zarafaUser.inc:358 ../lib/modules/zarafaUser.inc:585 +#: ../lib/modules/zarafaUser.inc:1268 ../lib/modules/zarafaUser.inc:1795 +msgid "Shared store only" +msgstr "Alleen gedeelde opslag" + +#: ../lib/modules/ddns.inc:82 +msgid "Should DDNS (Dynamic DNS) be activated?" +msgstr "Moet DDNS (Dynamic DNS) worden geactiveerd?" + +#: ../lib/modules/ddns.inc:86 +msgid "Should fix IP addresses be added to the DNS server?" +msgstr "Moeten vaste IP-adressen toegevoegd worden aan de DNS server?" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1121 +msgid "Show" +msgstr "Toon" + +#: ../templates/massBuildAccounts.php:243 +msgid "Show LDIF file" +msgstr "Toon LDIF bestand" + +#: ../lib/types/user.inc:683 +msgid "Show account status" +msgstr "Toon account status" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +#: ../templates/3rdParty/pla/htdocs/export_form.php:84 +msgid "Show attributes" +msgstr "Toon attributen" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1122 +msgid "Show internal attributes" +msgstr "Toon interne attributen" + +#: ../lib/modules/asteriskExtension.inc:453 +msgid "Show only Asterisk accounts" +msgstr "Toon alleen Asterisk accounts" + +#: ../lib/types/group.inc:424 +msgid "Show primary group members as normal group members" +msgstr "Toon primaire groep leden als gewone leden van de groep" + +#: ../templates/schema/schema.php:194 +msgid "Single valued" +msgstr "Enkelvoudige waarde" + +#: ../lib/modules/pykotaUser.inc:652 ../lib/modules/pykotaUser.inc:1001 +msgid "Size" +msgstr "Omvang" + +#: ../lib/modules/qmailUser.inc:228 +msgid "Size limit in bytes for a single mail. Larger mails will be bounced." +msgstr "" +"Maximale grootte in bytes voor een enkele bericht. Grotere mails worden " +"teruggestuurd." + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Skip" +msgstr "Overslaan" + +#: ../lib/modules/quota.inc:634 ../lib/modules/systemQuotas.inc:383 +msgid "Soft block" +msgstr "Zacht blok" + +#: ../lib/modules/quota.inc:113 ../lib/modules/quota.inc:401 +#: ../lib/modules/quota.inc:507 ../lib/modules/systemQuotas.inc:124 +msgid "Soft block limit" +msgstr "Zachte blok limiet" + +#: ../lib/modules/quota.inc:114 +msgid "Soft block limit." +msgstr "Zachte blok limiet." + +#: ../lib/modules/quota.inc:636 ../lib/modules/systemQuotas.inc:385 +msgid "Soft inode" +msgstr "Zachte inode" + +#: ../lib/modules/quota.inc:136 +msgid "Soft inode (files) limit." +msgstr "Zachte inode (bestanden) limiet" + +#: ../lib/modules/quota.inc:135 ../lib/modules/quota.inc:405 +#: ../lib/modules/quota.inc:509 ../lib/modules/systemQuotas.inc:128 +msgid "Soft inode limit" +msgstr "Zachte inode limiet" + +#: ../lib/modules/imapAccess.inc:98 +msgid "" +"Some IMAP servers store mailboxes with a prefix (e.g. \"user\" for Cyrus " +"which results in \"user.username\")." +msgstr "" +"Sommige IMAP-servers slaan mailboxen op met een prefix (bv. \"user\" voor " +"Cyrus, wat resulteert in \"user.username\")." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1019 +#, php-format +msgid "Some attributes (%s) were modified and are highlighted below." +msgstr "Enkele attributen %s zijn gewijzigd en hieronder geaccentueerd." + +#: ../lib/modules.inc:876 +msgid "Some required information is missing" +msgstr "Sommeige benodigde informatie ontbreekt" + +#: ../templates/help.php:123 +#, php-format +msgid "" +"Sorry this help id ({bold}%s{endbold}) is not available for this module " +"({bold}%s{endbold})." +msgstr "" +"Sorry deze help id ({bold}%s{endbold}) is niet beschikbaar voor deze module " +"({bold}%s{endbold})." + +#: ../templates/help.php:136 +#, php-format +msgid "Sorry this help number ({bold}%s{endbold}) is not available." +msgstr "Sorry deze hulp-nummer ({bold}%s{endbold}) is niet beschikbaar." + +#: ../lib/modules/sambaSamAccount.inc:327 +#: ../lib/modules/sambaSamAccount.inc:1282 +msgid "Special user" +msgstr "Speciale gebruiker" + +#: ../lib/modules/zarafaDynamicGroup.inc:92 +#: ../lib/modules/zarafaAddressList.inc:80 +msgid "" +"Specifies a filter that matches the members (e.g. \"(mail=*@zarafa.nl)\")." +msgstr "Geef het filter op dat alle leden mached (bv \"(mail=*@zarafa.nl)\")." + +#: ../lib/modules/groupOfNames.inc:119 +msgid "Specifies how members and owners are displayed." +msgstr "Geeft aan hoe leden en eigenaren worden weergegeven." + +#: ../lib/modules/organizationalRole.inc:107 +msgid "Specifies how members are displayed." +msgstr "Geeft aan hoe leden worden weergegeven." + +#: ../help/help.inc:86 +msgid "" +"Specifies if LAM should automatically follow referrals. Activate if you use " +"referrals in your LDAP directory." +msgstr "" +"Geeft aan of LAM automatisch verwijzingen moeten volgen. Activeer dit als u " +"verwijzingen gebruiken in uw LDAP-directory." + +#: ../help/help.inc:260 +msgid "" +"Specifies if password mails may be sent to mail addresses other than the " +"user's LDAP mail address." +msgstr "" +"Bepaalt of wachtwoordmails naar andere mailadressen dan LDAP-mailadressen " +"van de gebruiker kunnen worden gestuurd." + +#: ../help/help.inc:256 +msgid "Specifies if the mail should be sent as text or HTML." +msgstr "Geeft aan of de mail moet worden verzonden als tekst-of HTML." + +#: ../help/help.inc:167 +msgid "" +"Specifies if the password must not contain 3 or more characters of the user/" +"first/last name." +msgstr "" +"Geeft aan of het wachtwoord maximaal 3 letters van de gebruikers-, voor of " +"achternaam mag bevatten." + +#: ../help/help.inc:165 +msgid "Specifies if the password must not contain the user name." +msgstr "Geeft aan of het wachtwoord niet de gebruikersnaam mag bevatten." + +#: ../lib/modules/asteriskAccount.inc:224 +msgid "Specifies if the user can call forward." +msgstr "Geeft aan of de gebruiker kan doorverbinden." + +#: ../lib/modules/zarafaGroup.inc:82 +msgid "Specifies if this group has security possibilities." +msgstr "" +"Hiermee geeft u aan dat deze groep beschikt over beveiligingsmogelijkheden." + +#: ../lib/modules/zarafaServer.inc:81 +msgid "" +"Specifies if this server contains the public store. This may be changed only " +"for new entries." +msgstr "" +"Hiermee geeft u aan of deze server publiek opslag bevat. Dit kan alleen " +"worden gewijzigd voor nieuwe items." + +#: ../lib/modules/dhcp_settings.inc:202 +msgid "Specifies if unknown clients are allowed." +msgstr "Geeft aan of onbekend clients zijn toegestaan​​." + +#: ../lib/modules/ppolicy.inc:133 +msgid "Specifies if users are allowed to change their own passwords or not." +msgstr "Geeft aan of gebruikers hun eigen wachtwoorden mogen wijzigen of niet." + +#: ../lib/modules/zarafaDynamicGroup.inc:88 +#: ../lib/modules/zarafaAddressList.inc:76 +msgid "" +"Specifies the LDAP base where to search for members (e.g. \"ou=zarafa," +"dc=company,dc=com\")." +msgstr "" +"Geef de LDAP zoek basis voor de leden ( bv \"ou=zarafa,dc=company,dc=com\")." + +#: ../lib/modules/customFields.inc:161 +msgid "Specifies the allowed file extension. This is checked at upload time." +msgstr "" +"Specificeert de toegestane bestandsextensie. Dit wordt gecontroleerd tijdens " +"upload." + +#: ../lib/modules/zarafaContact.inc:96 ../lib/modules/zarafaGroup.inc:98 +#: ../lib/modules/zarafaUser.inc:145 +msgid "" +"Specifies the attribute that should be used to reference the entries. If you " +"would like to reference also groups then this must be set to \"dn\"." +msgstr "" +"Specificeert het attribuut dat moet worden gebruikt om naar de gegevens te " +"refereren. Indien u wilt refereren naar groepen dan moet dit worden " +"ingesteld op \"dn\"." + +#: ../lib/modules/zarafaUser.inc:121 +msgid "Specifies the capacity of this resource." +msgstr "Geeft de capaciteit aan van deze bron." + +#: ../lib/modules/kolabSharedFolder.inc:163 +msgid "Specifies the folder type (e.g. shared mail folder)." +msgstr "Hiermee geeft u de map type aan (bv. gedeelde mail map)." + +#: ../lib/modules/customFields.inc:157 +msgid "Specifies the maximum allowed file size in bytes." +msgstr "Specificeert de maximaal toegestane bestandsgrootte in bytes." + +#: ../lib/modules/mitKerberos.inc:137 ../lib/modules/heimdalKerberos.inc:111 +msgid "Specifies the maximum lifetime of a ticket in days." +msgstr "Specificeert de maximale levensduur van een ticket in dagen." + +#: ../lib/modules/ppolicy.inc:117 +msgid "" +"Specifies the maximum number of seconds before a password is due to expire " +"that expiration warning messages will be returned to a user." +msgstr "" +"Specificeert het maximale aantal seconden voordat een wachtwoord vervalt en " +"verlopen waarschuwingsbericht zal worden teruggegeven aan de gebruiker." + +#: ../lib/modules/freeRadius.inc:109 +msgid "" +"Specifies the maximum number of seconds that a connection can be idle before " +"the session is terminated." +msgstr "" +"Bepaalt het maximum aantal seconden dat een verbinding niet gebruikt wordt " +"voor de sessie wordt beëindigd." + +#: ../lib/modules/mitKerberos.inc:133 ../lib/modules/heimdalKerberos.inc:115 +msgid "Specifies the maximum renewable lifetime of a ticket in days." +msgstr "" +"Specificeert de maximale hernieuwbare levensduur van een ticket in dagen." + +#: ../lib/modules/ppolicy.inc:121 +msgid "" +"Specifies the minimum number of characters that will be accepted in a " +"password." +msgstr "" +"Specificeert het minimum aantal tekens dat zal worden geaccepteerd in een " +"wachtwoord." + +#: ../help/help.inc:163 +msgid "Specifies the number of above password rules that must be fulfilled." +msgstr "" +"Geeft het aantal bovenstaande wachtwoordregels aan waaraan moet worden " +"voldaan." + +#: ../lib/modules/ppolicy.inc:109 +msgid "" +"Specifies the number of consecutive failed login attempts after which the " +"password may not be used to login." +msgstr "" +"Specificeert het aantal opeenvolgende mislukte login pogingen, waarna het " +"wachtwoord niet mag worden gebruikt om in te loggen." + +#: ../lib/modules/ppolicy.inc:93 +msgid "" +"Specifies the number of previously used passwords which should be saved in " +"the password history. New passwords can only be set if they are not in the " +"password history." +msgstr "" +"Geeft het aantal eerder gebruikte wachtwoord dat moet worden opgeslagen in " +"de wachtwoord geschiedenis. Nieuwe wachtwoorden kunnen alleen worden " +"ingesteld als ze niet in de wachtwoord geschiedenis voorkomen." + +#: ../lib/modules/ppolicy.inc:113 +msgid "" +"Specifies the number of seconds after which old consecutive failed login " +"attempts are purged from the failure counter, even though no successful " +"authentication has occurred." +msgstr "" +"Specificeert het aantal seconden waarna oude opeenvolgende mislukte login " +"pogingen worden verwijderd, hoewel er geen succesvolle verificatie heeft " +"plaatsgevonden." + +#: ../lib/modules/ppolicy.inc:105 +msgid "" +"Specifies the number of seconds during which the password cannot be used to " +"login due to too many consecutive failed bind attempts." +msgstr "" +"Specificeert het aantal seconden waarin het wachtwoord niet kan worden " +"gebruikt om in te loggen als gevolg van te veel opeenvolgende mislukte " +"pogingen te binden." + +#: ../lib/modules/eduPerson.inc:93 ../lib/modules/eduPerson.inc:97 +msgid "" +"Specifies the person's affiliation within a particular security domain in " +"broad categories such as student, faculty, staff, alum, etc." +msgstr "" +"Specificeert het persoon die het lidmaatschap binnen een bepaald effect " +"domein in brede categorieën, zoals studenten, docenten, personeel, aluin, " +"etc." + +#: ../lib/modules/eduPerson.inc:89 +msgid "" +"Specifies the person's primary relationship to the institution in broad " +"categories such as student, faculty, staff, alum, etc." +msgstr "" +"Specificeert het persoon die de primaire relatie tot de instelling in brede " +"categorieën, zoals studenten, docenten, personeel, aluin, etc." + +#: ../lib/modules/eduPerson.inc:106 ../lib/modules/eduPerson.inc:110 +msgid "" +"Specifies the person's relationships to the institution in broad categories " +"such as student, faculty, staff, alum, etc." +msgstr "" +"Specificeert de persoon's relaties tot de instelling in brede categorieën, " +"zoals studenten, docenten, personeel, aluin, etc." + +#: ../lib/modules/bindDLZ.inc:180 ../lib/modules/bindDLZ.inc:184 +msgid "" +"Specifies the priority of this entry (lower value means more preferred)." +msgstr "" +"Hiermee geeft u de prioriteit van dit item (lagere waarde betekent hogere " +"voorkeur)." + +#: ../lib/modules/pykotaGroup.inc:126 ../lib/modules/pykotaUser.inc:129 +msgid "" +"Specifies the type of limit for printing if any. Please note that in " +"contrast to \"Free printing\" the option \"No quota\" includes accounting." +msgstr "" +"Geeft het type limiet voor het afdrukken indien van toepassing. Houd er " +"rekening mee dat in tegenstelling tot \"Free printing\" de optie \"No quota" +"\" omvat boekhouding." + +#: ../lib/modules/bindDLZ.inc:196 ../lib/modules/bindDLZ.inc:200 +msgid "Specifies the used port for this entry." +msgstr "Geeft de gebruikte port voor deze vermelding." + +#: ../lib/modules/asteriskAccount.inc:176 +msgid "Specifies the user's pickup group." +msgstr "Specificeert de gebruikers pick-up groep." + +#: ../lib/modules/bindDLZ.inc:188 ../lib/modules/bindDLZ.inc:192 +msgid "Specifies the weight of this entry (relative value)." +msgstr "Geeft het gewicht van dit item (relatieve waarde)." + +#: ../lib/modules/zarafaUser.inc:109 +msgid "" +"Specifies whether the user is an admin. System administrators may " +"additionally create, modify and delete companies." +msgstr "" +"Geeft aan of de gebruiker een admin is. Systeembeheerders kunnen bv " +"bedrijven maken, wijzigen en verwijderen." + +#: ../lib/modules/ppolicy.inc:137 +msgid "" +"Specifies whether the user's existing password must be sent along with their " +"new password when changing a password. Attention, LAM does not support " +"password changes which require the old password." +msgstr "" +"Geeft aan of de gebruikers bestaande wachtwoord moet worden verzonden, samen " +"met hun nieuwe wachtwoord bij het wijzigen van een wachtwoord. Attentie, LAM " +"bied geen ondersteuning voor het wijzigen van wachtwoorden, waarbij het oude " +"wachtwoord is vereist." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1460 +msgid "Specify attributes and values" +msgstr "Geef de attributen en waarden" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +msgid "Standard LDAP search filter. Example: (&(sn=Smith)(givenName=David))" +msgstr "Standaard LDAP-zoekfilter. Voorbeeld: (&(sn=Smith)(givenName=David))" + +#: ../templates/serverInfo.php:193 ../templates/serverInfo.php:199 +msgid "Start time" +msgstr "Begintijd" + +#: ../lib/modules/windowsUser.inc:168 ../lib/modules/windowsUser.inc:338 +#: ../lib/modules/windowsUser.inc:512 ../lib/modules/windowsUser.inc:545 +#: ../lib/modules/windowsUser.inc:712 ../lib/modules/windowsUser.inc:1608 +#: ../lib/modules/windowsUser.inc:1741 ../lib/modules/inetOrgPerson.inc:164 +#: ../lib/modules/inetOrgPerson.inc:193 ../lib/modules/inetOrgPerson.inc:526 +#: ../lib/modules/inetOrgPerson.inc:568 ../lib/modules/inetOrgPerson.inc:802 +#: ../lib/modules/inetOrgPerson.inc:806 ../lib/modules/inetOrgPerson.inc:1286 +#: ../lib/modules/inetOrgPerson.inc:1289 ../lib/modules/inetOrgPerson.inc:1944 +#: ../lib/modules/inetOrgPerson.inc:2657 ../lib/modules/inetOrgPerson.inc:3586 +#: ../lib/modules/inetOrgPerson.inc:3648 +msgid "State" +msgstr "Staat" + +#: ../templates/pdfedit/pdfpage.php:538 ../templates/pdfedit/pdfpage.php:540 +msgid "Static text" +msgstr "Statische tekst" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1455 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1467 +#, php-format +msgid "Step %s of %s" +msgstr "Stap %s van %s" + +#: ../lib/modules/windowsUser.inc:280 ../lib/modules/inetOrgPerson.inc:311 +msgid "Steve" +msgstr "Steve" + +#: ../lib/modules/sambaSamAccount.inc:422 ../lib/modules/posixAccount.inc:350 +#: ../lib/modules/windowsUser.inc:292 ../lib/modules/windowsUser.inc:298 +#: ../lib/modules/pykotaUser.inc:201 ../lib/modules/inetOrgPerson.inc:2071 +#: ../lib/modules/asteriskVoicemail.inc:174 +msgid "Steve Miller" +msgstr "Steve Miller" + +#: ../lib/modules/posixAccount.inc:358 +msgid "Steve Miller,Room 2.14,123-123-1234,123-123-1234" +msgstr "Steve Miller,Kamer 2.14,123-123-1234,123-123-1234" + +#: ../lib/modules/eduPerson.inc:190 +msgid "Steve, Stevo" +msgstr "Steve, Stevo" + +#: ../lib/modules/imapAccess.inc:91 +msgid "" +"Storing the password in your server profile is also possible but not " +"recommended." +msgstr "" +"Het opslaan van het wachtwoord in uw server profiel is ook mogelijk maar " +"niet aanbevolen." + +#: ../lib/modules/windowsUser.inc:172 ../lib/modules/windowsUser.inc:314 +#: ../lib/modules/windowsUser.inc:513 ../lib/modules/windowsUser.inc:544 +#: ../lib/modules/windowsUser.inc:708 ../lib/modules/windowsUser.inc:1609 +#: ../lib/modules/windowsUser.inc:1740 ../lib/modules/inetOrgPerson.inc:83 +#: ../lib/modules/inetOrgPerson.inc:161 ../lib/modules/inetOrgPerson.inc:181 +#: ../lib/modules/inetOrgPerson.inc:380 ../lib/modules/inetOrgPerson.inc:556 +#: ../lib/modules/inetOrgPerson.inc:678 ../lib/modules/inetOrgPerson.inc:682 +#: ../lib/modules/inetOrgPerson.inc:1250 ../lib/modules/inetOrgPerson.inc:1253 +#: ../lib/modules/inetOrgPerson.inc:1928 ../lib/modules/inetOrgPerson.inc:2580 +#: ../lib/modules/inetOrgPerson.inc:3578 ../lib/modules/inetOrgPerson.inc:3645 +msgid "Street" +msgstr "Straat" + +#: ../templates/pdfedit/pdfpage.php:449 ../templates/pdfedit/pdfmain.php:353 +msgid "Structure name" +msgstr "Struktuurnaam" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:136 +#: ../templates/3rdParty/pla/htdocs/export_form.php:33 +msgid "Sub (entire subtree)" +msgstr "Sub (volledige subtree)" + +#: ../lib/types/netgroup.inc:93 ../lib/modules/nisnetgroup.inc:91 +#: ../lib/modules/nisnetgroup.inc:126 ../lib/modules/nisnetgroup.inc:141 +#: ../lib/modules/nisnetgroup.inc:209 ../lib/modules/nisnetgroup.inc:383 +#: ../lib/modules/nisnetgroup.inc:581 +msgid "Subgroups" +msgstr "Subgroepen" + +#: ../templates/config/confmain.php:349 ../lib/modules/selfRegistration.inc:94 +#: ../lib/modules/selfRegistration.inc:231 +#: ../lib/modules/passwordSelfReset.inc:120 +#: ../lib/modules/passwordSelfReset.inc:539 +#: ../lib/modules/passwordSelfReset.inc:559 ../help/help.inc:248 +msgid "Subject" +msgstr "Onderwerp" + +#: ../lib/types/dhcp.inc:94 ../lib/modules/dhcp_settings.inc:149 +#: ../lib/modules/dhcp_settings.inc:207 ../lib/modules/dhcp_settings.inc:222 +#: ../lib/modules/dhcp_settings.inc:242 ../lib/modules/dhcp_settings.inc:561 +#: ../lib/modules/dhcp_settings.inc:685 +msgid "Subnet" +msgstr "Subnet" + +#: ../lib/modules/dhcp_settings.inc:189 ../lib/modules/dhcp_settings.inc:215 +#: ../lib/modules/dhcp_settings.inc:233 ../lib/modules/dhcp_settings.inc:300 +#: ../lib/modules/dhcp_settings.inc:606 ../lib/modules/dhcp_settings.inc:681 +msgid "Subnet mask" +msgstr "Subnet mask" + +#: ../templates/schema/schema.php:176 +msgid "Substring Rule" +msgstr "Substring regel" + +#: ../templates/3rdParty/pla/htdocs/import.php:63 +#: ../templates/3rdParty/pla/htdocs/copy.php:56 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:68 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:85 +msgid "Success" +msgstr "Succes" + +#: ../templates/3rdParty/pla/htdocs/delete.php:32 +#, php-format +msgid "Successfully deleted DN %s" +msgstr "Succesvol verwijderd DN %s" + +#: ../lib/modules/sudoRole.inc:48 +msgid "Sudo role" +msgstr "Sudo rol" + +#: ../lib/types/sudo.inc:159 +#, php-format +msgid "Sudo role count: %s" +msgstr "Sudo rol aantal: %s" + +#: ../lib/types/sudo.inc:48 +msgid "Sudo role management" +msgstr "Sudo rol beheer" + +#: ../lib/types/sudo.inc:39 +msgid "Sudo roles" +msgstr "Sudo rollen" + +#: ../lib/modules/sudoRole.inc:139 +msgid "Sudo roles with higher order numbers are used if multiple roles match." +msgstr "" +"Sudo rollen met hogere orde nummers worden gebruikt als meerdere rollen " +"overeenkomen." + +#: ../lib/modules/nisMailAliasUser.inc:92 +#: ../lib/modules/nisMailAliasUser.inc:362 ../lib/modules.inc:988 +msgid "Suffix" +msgstr "Achtervoegsel" + +#: ../lib/modules/posixGroup.inc:416 ../lib/modules/posixGroup.inc:516 +msgid "Suffix for GID/group name check" +msgstr "Achtervoegsel voor GID/groep naam controle" + +#: ../lib/modules/posixAccount.inc:224 ../lib/modules/posixAccount.inc:242 +#: ../lib/modules/posixAccount.inc:489 +msgid "Suffix for UID/user name check" +msgstr "Achtervoegsel voor UID/gebruikersnaam control" + +#: ../lib/modules/selfRegistration.inc:102 +#: ../lib/modules/selfRegistration.inc:212 +msgid "Suffix for new users" +msgstr "Achtervoegsel voor nieuwe gebruikers" + +#: ../lib/modules/sambaSamAccount.inc:1381 +msgid "Sunday" +msgstr "Zondag" + +#: ../templates/selfService/adminMain.php:570 +msgid "Switch back to default label." +msgstr "Schakel terug naar standaard label." + +#: ../templates/3rdParty/pla/htdocs/compare.php:72 +msgid "Switch entries" +msgstr "Verwissel items" + +#: ../lib/modules/asteriskAccount.inc:96 +#: ../lib/modules/asteriskVoicemail.inc:84 +msgid "Sync Asterisk password with Unix password" +msgstr "Synchorniseer " + +#: ../lib/modules/heimdalKerberos.inc:242 +msgid "Sync Heimdal Kerberos password with Unix password" +msgstr "Sync Heimdal Kerberos wachtwoord met Unix wachtwoord" + +#: ../lib/modules/mitKerberos.inc:277 +msgid "Sync MIT Kerberos password with Unix password" +msgstr "Sync MIT Kerberos wachtwoord met Unix wachtwoord" + +#: ../lib/modules/passwordSelfReset.inc:148 +#: ../lib/modules/passwordSelfReset.inc:529 +msgid "Sync Samba 3 password" +msgstr "Sync Samba 3 wachtwoord" + +#: ../lib/modules/sambaSamAccount.inc:249 +msgid "Sync Samba LM password with Unix password" +msgstr "Sync Samba LM wachtwoord met Unix wachtwoord" + +#: ../lib/modules/sambaSamAccount.inc:248 +msgid "Sync Samba NT password with Unix password" +msgstr "Sync Samba NT wachtwoord met Unix wachtwoord" + +#: ../lib/modules/customFields.inc:1111 +msgid "Sync fields with page layout" +msgstr "Synchroniseer velden met pagina-indeling" + +#: ../templates/schema/schema.php:181 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:142 +msgid "Syntax" +msgstr "Syntax" + +#: ../templates/schema/schema.php:89 +msgid "Syntax OID" +msgstr "Syntax OID" + +#: ../templates/schema/schema.php:73 ../templates/schema/schema.php:74 +msgid "Syntaxes" +msgstr "Syntaxen" + +#: ../lib/modules/zarafaUser.inc:602 ../lib/modules/zarafaUser.inc:1259 +msgid "System administrator" +msgstr "Systeem administrator" + +#: ../templates/config/mainmanage.php:412 +msgid "System logging" +msgstr "Systeem logging" + +#: ../help/help.inc:60 +msgid "TLS cannot be combined with ldaps://." +msgstr "TLS kan niet gecombineerd worden met ldaps://." + +#: ../lib/modules/bindDLZ.inc:125 ../lib/modules/bindDLZ.inc:377 +#: ../lib/modules/bindDLZ.inc:382 ../lib/modules/bindDLZ.inc:491 +msgid "TXT record" +msgstr "TXT record" + +#: ../lib/modules/bindDLZ.inc:432 ../lib/modules/bindDLZ.inc:442 +#: ../lib/modules/bindDLZ.inc:1576 +msgid "TXT records" +msgstr "TXT records" + +#: ../lib/modules/kolabSharedFolder.inc:158 +#: ../lib/modules/kolabSharedFolder.inc:194 +#: ../lib/modules/kolabSharedFolder.inc:240 +#: ../lib/modules/kolabSharedFolder.inc:262 +#: ../lib/modules/kolabSharedFolder.inc:292 +#: ../lib/modules/kolabSharedFolder.inc:560 +msgid "Target IMAP folder" +msgstr "Doel IMAP-map" + +#: ../lib/modules/kolabUser.inc:245 +msgid "Target of invitation policy is invalid!" +msgstr "Doel van invitatiebeleid is niet valide!" + +#: ../templates/pdfedit/pdfmain.php:317 +#: ../templates/profedit/profilemain.php:284 +msgid "Target server profile" +msgstr "Doelserver profiel" + +#: ../templates/help.php:89 ../lib/modules.inc:660 +msgid "Technical name" +msgstr "Technische naam" + +#: ../templates/lists/changePassword.php:294 ../lib/types/user.inc:203 +#: ../lib/modules/windowsUser.inc:176 ../lib/modules/windowsUser.inc:362 +#: ../lib/modules/windowsUser.inc:514 ../lib/modules/windowsUser.inc:542 +#: ../lib/modules/windowsUser.inc:601 ../lib/modules/windowsUser.inc:718 +#: ../lib/modules/windowsUser.inc:1610 ../lib/modules/windowsUser.inc:1734 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:160 +#: ../lib/modules/inetOrgPerson.inc:208 ../lib/modules/inetOrgPerson.inc:420 +#: ../lib/modules/inetOrgPerson.inc:583 ../lib/modules/inetOrgPerson.inc:710 +#: ../lib/modules/inetOrgPerson.inc:714 ../lib/modules/inetOrgPerson.inc:1407 +#: ../lib/modules/inetOrgPerson.inc:1410 ../lib/modules/inetOrgPerson.inc:1933 +#: ../lib/modules/inetOrgPerson.inc:2525 ../lib/modules/inetOrgPerson.inc:3596 +#: ../lib/modules/inetOrgPerson.inc:3651 +msgid "Telephone number" +msgstr "Telefoonnummer" + +#: ../lib/modules/inetOrgPerson.inc:358 +msgid "Temp" +msgstr "Tijdelijk" + +#: ../lib/modules/windowsUser.inc:310 ../lib/modules/pykotaUser.inc:228 +#: ../lib/modules/inetOrgPerson.inc:334 +msgid "Temp, contract till December" +msgstr "Tijdelijk, contract loopt tot december" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +msgid "Template" +msgstr "Sjabloon" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:520 +msgid "Templates" +msgstr "Sjabloon" + +#: ../lib/modules/sambaSamAccount.inc:391 +#: ../lib/modules/sambaSamAccount.inc:609 +#: ../lib/modules/sambaSamAccount.inc:1294 +msgid "Terminal server options" +msgstr "Terminal server opties" + +#: ../lib/tools/tests.inc:44 +msgid "Tests" +msgstr "Testen" + +#: ../templates/config/confmain.php:364 ../lib/modules/selfRegistration.inc:69 +#: ../lib/modules/selfRegistration.inc:238 ../lib/modules/bindDLZ.inc:163 +#: ../lib/modules/bindDLZ.inc:167 ../lib/modules/bindDLZ.inc:377 +#: ../lib/modules/bindDLZ.inc:1245 ../lib/modules/bindDLZ.inc:1579 +#: ../lib/modules/passwordSelfReset.inc:124 +#: ../lib/modules/passwordSelfReset.inc:134 +#: ../lib/modules/passwordSelfReset.inc:543 +#: ../lib/modules/passwordSelfReset.inc:563 ../help/help.inc:250 +msgid "Text" +msgstr "Tekst" + +#: ../lib/modules/bindDLZ.inc:1242 +msgid "Text (\"TXT\" records)" +msgstr "Tekst (\"TXT\" records)" + +#: ../lib/modules/customFields.inc:2587 +msgid "Text area" +msgstr "Tekst veld" + +#: ../templates/pdfedit/pdfpage.php:617 ../lib/modules/customFields.inc:1885 +msgid "Text field" +msgstr "Tekst veld" + +#: ../lib/modules/eduPerson.inc:115 +msgid "" +"The \"NetID\" of the person for the purposes of inter-institutional " +"authentication. It should be represented in the form \"user@scope\" where " +"scope defines a local security domain." +msgstr "" +"De \"NetID\" van de persoon voor de toepassing van de inter-institutionele " +"authenticatie. Het moet worden uitgedrukt in de vorm \"gebruiker@scope\", " +"waarbij scope het lokale beveiliging domein definieert." + +#: ../lib/modules/dhcp_settings.inc:336 +msgid "The DHCP ranges were changed to fit for the new subnet." +msgstr "De DHCP-reeksen werden veranderd om te passen in het nieuwe subnet." + +#: ../lib/modules/eduPerson.inc:127 +msgid "" +"The DN of the directory entry representing the institution with which the " +"person is associated." +msgstr "" +"De DN van het directory item die de instelling waarmee de persoon is " +"gekoppeld representeert." + +#: ../lib/modules/eduPerson.inc:131 +msgid "" +"The DN of the directory entry representing the person's primary " +"organisational unit." +msgstr "" +"De DN van het directory item van de primaire organisatie-eenheid van de " +"persoon." + +#: ../lib/modules/eduPerson.inc:135 ../lib/modules/eduPerson.inc:139 +msgid "" +"The DNs of the directory entries representing the person's organisational " +"units." +msgstr "" +"De DNs van het directory items van de organisatie-eenheden van de persoon." + +#: ../lib/modules/posixGroup.inc:513 +msgid "" +"The ID of this group was changed. You can update all user and host entries " +"to the new group ID." +msgstr "" +"Het ID van deze groep was veranderd. U kunt alle user- en host items " +"aanpassen naar het nieuwe groups-ID." + +#: ../lib/modules/imapAccess.inc:179 +msgid "The IMAP admin password is empty." +msgstr "Het IMAP-admin wachtwoord is leeg." + +#: ../templates/config/mainmanage.php:100 +#: ../templates/config/mainmanage.php:122 ../lib/modules/bindDLZ.inc:495 +#: ../lib/modules/bindDLZ.inc:496 +#, php-format +msgid "The IP address %s is invalid!" +msgstr "Het IP-adres %s is ongeldig!" + +#: ../lib/modules/fixed_ip.inc:498 +msgid "The IP address does not match the subnet." +msgstr "Het IP-adres komt niet overeen met het subnet." + +#: ../lib/modules/fixed_ip.inc:501 +msgid "The IP address is already in use." +msgstr "Het IP-adres is al in gebruik." + +#: ../lib/modules/ipHost.inc:115 ../lib/modules/ipHost.inc:116 +#: ../lib/modules/asteriskAccount.inc:574 +#: ../lib/modules/asteriskAccount.inc:575 ../lib/modules/ppolicyUser.inc:96 +#: ../lib/modules/range.inc:505 ../lib/modules/range.inc:522 +#: ../lib/modules/range.inc:582 ../lib/modules/range.inc:599 +#: ../lib/modules/freeRadius.inc:249 ../lib/modules/freeRadius.inc:250 +#: ../lib/modules/fixed_ip.inc:493 +msgid "The IP address is invalid." +msgstr "Het IP-adres is ongeldig!" + +#: ../lib/modules/fixed_ip.inc:107 +msgid "The IP address of the PC." +msgstr "Het IP-adres van de PC" + +#: ../lib/modules/dhcp_settings.inc:162 +msgid "" +"The IP addresses of the DNS servers. Multiple addresses are separated by \"," +"\". Example: 192.168.0.10, 192.168.0.11" +msgstr "" +"De IP-adressen van de DNS-servers. Meerdere adressen worden gescheiden door " +"\",\". Voorbeeld: 192.168.0.10, 192.168.0.11" + +#: ../lib/modules/dhcp_settings.inc:170 +msgid "" +"The IP addresses of the Netbios name servers (e.g. \"123.123.123.123, " +"123.123.123.124\")." +msgstr "" +"De IP-adressen van de NetBIOS-naam servers (bijv. \"123.123.123.123, " +"123.123.123.124\")." + +#: ../lib/modules/range.inc:509 ../lib/modules/range.inc:524 +#: ../lib/modules/range.inc:588 ../lib/modules/range.inc:602 +msgid "The IP does not match the subnet." +msgstr "Het IP-adres komt niet overeen met het subnet." + +#: ../lib/modules/mitKerberos.inc:153 ../lib/modules/heimdalKerberos.inc:158 +msgid "The Kerberos realm for this account." +msgstr "De Kerberos-realm voor dit account." + +#: ../lib/modules/heimdalKerberos.inc:99 +msgid "The Kerberos realm of this user." +msgstr "De Kerberos realm voor deze gebruiker." + +#: ../lib/modules/fixed_ip.inc:103 +msgid "The MAC address of the PC. Example: 11:22:33:44:55:aa" +msgstr "Het MAC adres van de pc. Voorbeeld: 11:22:33:44:55:aa" + +#: ../lib/modules/dhcp_settings.inc:328 ../lib/modules/dhcp_settings.inc:329 +msgid "The Netbios server is invalid." +msgstr "De netbios server is ongeldig." + +#: ../lib/modules/fixed_ip.inc:456 +msgid "The PC name may not be longer than 20 characters." +msgstr "De PC-naam mag niet langer zijn dan 20 tekens." + +#: ../lib/modules/fixed_ip.inc:465 +msgid "The PC name may only contain A-Z, a-z and 0-9." +msgstr "De PC-naam mag alleen A-Z, a-z en 0-9 bevatten" + +#: ../lib/modules/fixed_ip.inc:459 +msgid "The PC name needs to be at least 2 characters long." +msgstr "De PC-naam moet minstens 2 tekens lang zijn." + +#: ../help/help.inc:205 +msgid "" +"The PDF structure defines what information is exported as PDF file and how " +"the pages are structured. You can manage the PDF structures in the PDF " +"editor (under \"Tools\")." +msgstr "" +"De PDF-structuur bepaalt welke informatie wordt geëxporteerd als PDF-bestand " +"en hoe de pagina's zijn gestructureerd. U kunt de PDF-structuren beheren in " +"de PDF-editor (onder \"Tools\")." + +#: ../templates/3rdParty/pla/htdocs/create.php:44 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:38 +#: ../lib/modules/selfRegistration.inc:571 +msgid "The RDN field is empty." +msgstr "Het RDN veld is leeg." + +#: ../lib/modules/freeRadius.inc:93 +msgid "The Radius realm of this account." +msgstr "De Radius realm voor dit account." + +#: ../lib/modules/sambaDomain.inc:82 +msgid "The SID of your Samba server. Get it with \"net getlocalsid\"." +msgstr "De SID van de Samba server. Te bepalen met \"net getlocalsid\"." + +#: ../templates/selfService/selfServiceLogin.php:141 +#: ../templates/selfService/selfServiceMain.php:168 +msgid "The TLS encryption could not be started." +msgstr "De TLS encryptie kon niet worden gestart." + +#: ../lib/modules/posixAccount.inc:99 +msgid "" +"The UID ranges for users and hosts overlap! This is a problem because LAM " +"uses the highest UID in use + 1 for new accounts. Please set the minimum UID " +"to equal values or use independent ranges." +msgstr "" +"De UID range voor gebruikers en hosts overlappen. Dit is een probleem omdat " +"LAM de hoogste UID+1 gebruikt voor een nieuw account. Bepaal eenzelfde " +"minimum UID of gebruik onafhankelijke reeksen." + +#: ../lib/modules/zarafaServer.inc:77 +msgid "The Unix socket or named pipe to the server." +msgstr "De Unix socket of named pipe naar de server." + +#: ../lib/modules/asteriskVoicemail.inc:215 +#: ../lib/modules/asteriskVoicemail.inc:216 +msgid "The account context is invalid." +msgstr "De account context is ongeldig." + +#: ../lib/modules/asteriskAccount.inc:112 +#: ../lib/modules/asteriskExtension.inc:99 +#: ../lib/modules/asteriskVoicemail.inc:92 +msgid "The account context stores information about the dial plan." +msgstr "De account context slaat informatie op over het dial plan." + +#: ../lib/modules/asteriskAccount.inc:566 +#: ../lib/modules/asteriskAccount.inc:567 +msgid "The account type is invalid." +msgstr "Het accounttype is ongeldig." + +#: ../lib/modules/freeRadius.inc:105 +msgid "The account will be locked after this date." +msgstr "Het account zal worden gelocked na deze datum." + +#: ../help/help.inc:191 +msgid "The account will be saved under this LDAP suffix." +msgstr "Het account zal bewaard worden onder dit LDAP achtervoegsel." + +#: ../lib/modules/bindDLZ.inc:497 ../lib/modules/bindDLZ.inc:498 +#, php-format +msgid "The alias name \"%s\" is invalid." +msgstr "De alias naam \"%s\" is ongeldig." + +#: ../lib/modules/bindDLZ.inc:136 +msgid "The alias name for this entry." +msgstr "De alias naam voor dit item." + +#: ../lib/modules/passwordSelfReset.inc:230 +#, php-format +msgid "The answer needs to be at least %s characters long." +msgstr "Het antwoord moet minstens %s tekens lang zijn." + +#: ../lib/modules/passwordSelfReset.inc:1211 +msgid "The answer to the security question is wrong." +msgstr "Het antwoord op de beveiligingsvraag is fout." + +#: ../templates/tests/schemaTest.php:128 +#, php-format +msgid "" +"The attribute %s is not supported for the object class %s by your LDAP " +"server." +msgstr "" +"Het attribuut %s wordt niet ondersteund voor de object klasse %s door uw " +"LDAP-server." + +#: ../templates/3rdParty/pla/lib/import_functions.php:531 +#, php-format +msgid "The attribute to modify doesn't match the one specified by %s." +msgstr "Het te wijzigen attribuut komt niet overeen met die opgegeven door %s." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:31 +msgid "The attribute value does not exist" +msgstr "De attribuut waarde bestaat niet " + +#: ../lib/modules/asteriskAccount.inc:556 +#: ../lib/modules/asteriskAccount.inc:558 +msgid "The caller ID format is invalid." +msgstr "Het caller-ID formaat is niet geldig." + +#: ../lib/modules/puppetClient.inc:186 ../lib/modules/puppetClient.inc:187 +msgid "The class names may only contain ASCII characters." +msgstr "De klas namen mogen alleen bestaan ​​uit ASCII-tekens." + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:372 +msgid "The config file is not writable." +msgstr "Het config-bestand is niet beschrijfbaar." + +#: ../templates/3rdParty/pla/htdocs/create.php:29 +#: ../templates/3rdParty/pla/htdocs/copy.php:34 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:23 +#, php-format +msgid "The container you specified (%s) does not exist. Please try again." +msgstr "De opgegeven container (%s) bestaat niet. Probeer nogmaals." + +#: ../lib/modules/dhcp_settings.inc:326 ../lib/modules/dhcp_settings.inc:327 +msgid "The default gateway is invalid." +msgstr "De dafault gateway is ongeldig." + +#: ../lib/modules/qmailUser.inc:260 +msgid "The default interpretation of .qmail files." +msgstr "De standaard interpretatie van .qmail bestanden." + +#: ../templates/3rdParty/pla/htdocs/copy.php:31 +#, php-format +msgid "The destination entry (%s) already exists." +msgstr "Het bestemming item (%s) bestaat reeds." + +#: ../lib/modules/dhcp_settings.inc:338 ../lib/modules/dhcp_settings.inc:339 +msgid "" +"The domain name includes invalid characters. Valid characters are A-Z, a-z, " +"0-9, \".\", \"_\",\"-\"." +msgstr "" +"Domeinnaam bevat ongeldige tekens. Geldige tekens zijn: a-z, A-Z, 0-9, \"." +"\", \"_\",\"-\"." + +#: ../lib/modules/dhcp_settings.inc:146 +msgid "The domain name of the subnet." +msgstr "De domeinnaam van het subnet." + +#: ../lib/modules/asteriskVoicemail.inc:220 +#: ../lib/modules/asteriskVoicemail.inc:221 +msgid "The email address is invalid." +msgstr "Het e-mailadres is ongeldig." + +#: ../lib/modules/range.inc:102 +msgid "The ending IP address of the range." +msgstr "Het laatste IP-adres van de reeks." + +#: ../lib/modules/dhcp_settings.inc:330 +msgid "The entered Netbios node type does not exist." +msgstr "Het ingevoerde Netbios node type bestaat niet." + +#: ../templates/3rdParty/pla/htdocs/update.php:27 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:22 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:21 +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:24 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:23 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:20 +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:24 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:20 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:27 +#, php-format +msgid "The entry (%s) does not exist." +msgstr "Het item (%s) bestaat niet." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:27 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:28 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:34 +msgid "The entry does not exist and will be ignored" +msgstr "Het item bestaat niet en zal genegeerd worden" + +#: ../lib/modules/puppetClient.inc:184 ../lib/modules/puppetClient.inc:185 +msgid "The environment name may only contain ASCII characters." +msgstr "De omgeving naam mag alleen bestaan ​​uit ASCII-tekens." + +#: ../lib/modules/shadowAccount.inc:67 +msgid "The expiration date is invalid." +msgstr "De vervaldatum is ongeldig." + +#: ../lib/modules/freeRadius.inc:257 ../lib/modules/freeRadius.inc:258 +msgid "The expiration date must be in format DD.MM.YYYY HH:MM." +msgstr "Het expiratie datumformaat is DD.MM.YYYY HH:MM." + +#: ../lib/modules/bindDLZ.inc:519 ../lib/modules/bindDLZ.inc:520 +#, php-format +msgid "The expiration time \"%s\" must be a number." +msgstr "De vervaltijd \"%s\" moet een getal zijn." + +#: ../lib/modules/asteriskAccount.inc:560 +#: ../lib/modules/asteriskAccount.inc:561 +msgid "The extension context is invalid." +msgstr "De extensie context is ongeldig." + +#: ../lib/pdfstruct.inc:262 +msgid "The file must not exeed 2000x300px." +msgstr "Het bestand mag niet groter zijn dan 2000x300px." + +#: ../lib/pdfstruct.inc:249 +msgid "The file name must end with \".png\" or \".jpg\"." +msgstr "De bestandsnaam moet eindigen met \".png\" or \".jpg\"." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "The file you chose is either empty or does not exist." +msgstr "Het bestand dat u kiest is leeg of bestaat niet." + +#: ../templates/3rdParty/pla/lib/Template.php:412 +#: ../templates/3rdParty/pla/lib/Template.php:499 +msgid "" +"The file you selected was only partially uploaded, likley due to a network " +"error." +msgstr "" +"Het geselecteerde bestand is slechts gedeeltelijk geupload, waarschijnlijk " +"het gevolg van een netwerk fout." + +#: ../templates/3rdParty/pla/lib/Template.php:402 +#: ../templates/3rdParty/pla/lib/Template.php:407 +#: ../templates/3rdParty/pla/lib/Template.php:489 +#: ../templates/3rdParty/pla/lib/Template.php:494 +msgid "" +"The file you uploaded is too large. Please check php.ini, upload_max_size " +"setting" +msgstr "" +"Het bestand dat u uploade is te groot. Controleer de php.ini, " +"upload_max_size instelling " + +#: ../lib/modules/kolabSharedFolder.inc:159 +msgid "" +"The folder on the server where the shared folder is located (e.g. user/" +"myfolder@example.com)." +msgstr "" +"De map op de server waarop de gedeelde map zich bevindt (bijvoorbeeld " +"gebruiker/myfolder@example.com)." + +#: ../lib/modules/kolabSharedFolder.inc:117 +msgid "The folder's email address." +msgstr "E-mailadres van de map." + +#: ../templates/initsuff.php:180 +msgid "" +"The following suffixes are missing in LDAP. LAM can create them for you." +msgstr "De volgende achtervoegsels ontbreken in LDAP. LAM kan ze aanmaken." + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:120 +msgid "The format of the logon hours field is invalid!" +msgstr "Het formaat van het veld met de loginuren is ongeldig!" + +#: ../lib/modules/customScripts.inc:123 +msgid "The format of this custom script setting is invalid." +msgstr "Het formaat van dit custom script instelling is ongeldig." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +msgid "The format to show the query results" +msgstr "Het formaat van de query resultaten tonen" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "" +"The full DN of the new entry to be created when copying the source entry" +msgstr "Het volledige DN van het nieuwe item bij het kopiëren van de bron item" + +#: ../lib/modules/asteriskVoicemail.inc:218 +#: ../lib/modules/asteriskVoicemail.inc:219 +msgid "The full name is invalid." +msgstr "De volledige naam is ongeldig." + +#: ../templates/login.php:583 +msgid "The given user name matches multiple LDAP entries." +msgstr "De opgegeven gebruikersnaam komt overeenkomt met meerdere LDAP items." + +#: ../lib/modules/ppolicy.inc:101 +msgid "" +"The grace authentication limit specifies the number of times that an expired " +"password may be used to login." +msgstr "" +"De grace authenticatie limiet bepaalt het aantal keren dat een verlopen " +"wachtwoord nog kan worden gebruikt om in te loggen." + +#: ../lib/modules/windowsGroup.inc:147 +msgid "The group is managed by this contact person." +msgstr "De groep wordt beheerd door deze contactpersoon." + +#: ../lib/modules/freeRadius.inc:97 ../lib/modules/freeRadius.inc:101 +msgid "The group names for this account." +msgstr "De groepnamen voor dit account." + +#: ../lib/modules/windowsUser.inc:221 +msgid "The groups for this account. You can insert a group name or DN." +msgstr "De groepen voor dit account. U kunt een groepsnaam of DN invoeren." + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "The headline for a new section must contain at least one character." +msgstr "De kopregel voor een nieuwe sectie moet tenminste een teken bevatten." + +#: ../lib/modules/sambaSamAccount.inc:304 ../lib/modules/windowsUser.inc:245 +msgid "The home directory will be connected under this drive letter." +msgstr "Het home directory wordt verbonden onder deze stationsletter." + +#: ../lib/modules/windowsHost.inc:87 +msgid "The host is managed by this contact person." +msgstr "Het systeem wordt beheerd door deze contactpersoon." + +#: ../lib/modules/bindDLZ.inc:504 ../lib/modules/bindDLZ.inc:505 +#: ../lib/modules/bindDLZ.inc:531 ../lib/modules/bindDLZ.inc:532 +#, php-format +msgid "The host name \"%s\" is invalid." +msgstr "De host naam \"%s\" is ongeldig." + +#: ../lib/modules/bindDLZ.inc:89 ../lib/modules/bindDLZ.inc:148 +#: ../lib/modules/bindDLZ.inc:152 +msgid "The host name for this entry." +msgstr "De hostnaam voor dit item." + +#: ../lib/modules/asteriskAccount.inc:563 +#: ../lib/modules/asteriskAccount.inc:564 ../lib/modules/bindDLZ.inc:477 +#: ../lib/modules/bindDLZ.inc:478 +msgid "The host name is invalid." +msgstr "De host naam is ongeldig." + +#: ../lib/modules/windowsUser.inc:133 ../lib/modules/inetOrgPerson.inc:859 +msgid "The initials of the user's first names." +msgstr "De initialen van de voornamen van de gebruiker." + +#: ../lib/modules/ddns.inc:94 +msgid "" +"The key enables the DHCP server to perform DNS updates. The key is generated " +"with \"genDDNSkey\"." +msgstr "" +"De sleutel maakt het mogelijk voor DHCP-server om DNS-updates te laten " +"uitvoeren. De sleutel is gegenereerd met \"genDDNSkey\"." + +#: ../lib/modules/dhcp_settings.inc:324 ../lib/modules/dhcp_settings.inc:325 +msgid "The lease time is invalid." +msgstr "De lease tijd is ongeldig." + +#: ../lib/modules/dhcp_settings.inc:154 +msgid "" +"The lease time specifies after how many seconds the client should request a " +"new IP address." +msgstr "" +"De lease tijd geeft aan na hoeveel seconden de client een nieuw IP-adres " +"moet vragen." + +#: ../lib/modules/sudoRole.inc:83 ../lib/modules/sudoRole.inc:109 +msgid "The list of commands which may be run." +msgstr "De lijst van commando's die kunnen worden uitgevoerd." + +#: ../lib/modules/puppetClient.inc:93 ../lib/modules/puppetClient.inc:97 +msgid "The list of configured Puppet classes for this node (e.g. ntp)." +msgstr "De lijst met geconfigureerde Puppet klassen voor dit node (bijv. NTP)." + +#: ../lib/modules/sudoRole.inc:79 ../lib/modules/sudoRole.inc:104 +msgid "The list of hosts from which the user may run the commands." +msgstr "" +"De lijst van hosts van waaraf de gebruiker de commando's mag uitvoeren." + +#: ../lib/modules/customFields.inc:3013 +msgid "The list of labels contains duplicates." +msgstr "De lijst van labels bevat duplicaten." + +#: ../lib/modules/sudoRole.inc:75 ../lib/modules/sudoRole.inc:99 +msgid "The list of users who own this sudo role and may run the commands." +msgstr "" +"De lijst van gebruikers die deze sudo rol bezitten en de opdracht mogen " +"uitvoeren." + +#: ../lib/modules/customFields.inc:3010 +msgid "The list of values contains duplicates." +msgstr "De lijst met waarden bevat duplicaten." + +#: ../lib/modules/qmailGroup.inc:132 ../lib/modules/qmailGroup.inc:136 +msgid "The list's alternate email address." +msgstr "De lijst alternatieve e-mailadres." + +#: ../lib/modules/kolabGroup.inc:88 ../lib/modules/kolabGroup.inc:92 +#: ../lib/modules/qmailGroup.inc:124 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/windowsGroup.inc:127 +msgid "The list's email address." +msgstr "De lijst e-mailadres." + +#: ../templates/config/mainmanage.php:147 +msgid "" +"The log file is empty or contains invalid characters! Valid characters are: " +"a-z, A-Z, 0-9, /, \\, ., :, _ and -." +msgstr "" +"Het logbestand is leeg of bevat ongeldige tekens! Geldige tekens zijn: a-z, " +"A-Z, 0-9, /, \\, ., :, _ en -." + +#: ../lib/modules/imapAccess.inc:87 +msgid "" +"The login name of your IMAP user who has rights to create/delete mailboxes." +msgstr "" +"De login naam van de IMAP-gebruiker die rechten heeft voor het maken/" +"verwijderen van mailboxen." + +#: ../lib/modules/bindDLZ.inc:140 ../lib/modules/bindDLZ.inc:144 +msgid "The mail server for this entry." +msgstr "De mailserver voor dit item." + +#: ../lib/modules/qmailUser.inc:244 +msgid "The mail server that contains the message store." +msgstr "De mailserver die het bericht opslag bevat." + +#: ../lib/modules/passwordSelfReset.inc:234 +msgid "" +"The mail text for confirmation mails must include the wildcard @@resetLink@@." +msgstr "" +"De tekst van de bevestigings mail moet de wildcard @@resetLink@@ bevatten." + +#: ../help/help.inc:251 +msgid "The mail text of all password mails." +msgstr "De mail tekst van alle wachtwoord mails." + +#: ../lib/modules/selfRegistration.inc:70 +msgid "The mail text of the confirmation mail." +msgstr "De tekst van het bericht van de bevestigingsmail." + +#: ../lib/modules/passwordSelfReset.inc:125 +#: ../lib/modules/passwordSelfReset.inc:135 +msgid "The mail text of the mails." +msgstr "De mail tekst van de mails." + +#: ../lib/modules/asteriskVoicemail.inc:210 +#: ../lib/modules/asteriskVoicemail.inc:212 +msgid "The mailbox format is invalid." +msgstr "Het mailbox formaat is ongeldig." + +#: ../lib/modules/dhcp_settings.inc:332 ../lib/modules/dhcp_settings.inc:333 +msgid "The maximum lease time is invalid." +msgstr "De maximale lease tijd is ongeldig." + +#: ../lib/modules/dhcp_settings.inc:158 +msgid "" +"The maximum lease time specifies after how many seconds the client must " +"request a new IP address." +msgstr "" +"De maximale lease tijd geeft aan na hoeveel seconden de klant een nieuw IP-" +"adres moet vragen." + +#: ../lib/modules/kolabUser.inc:175 +msgid "The maximum mailbox size in MB." +msgstr "De maximale grootte van het postvak in MB." + +#: ../lib/modules/qmailUser.inc:224 +msgid "The maximum number of mails that can be stored in the user's mailbox." +msgstr "" +"Het maximum aantal e-mails dat kan worden opgeslagen in de mailbox van de " +"gebruiker." + +#: ../lib/modules/pykotaPrinter.inc:104 +msgid "" +"The maximum number of pages per job allowed on the printer. 0 means " +"unlimited." +msgstr "" +"Het maximum aantal pagina's per opdracht toegestaan ​​op de printer. 0 " +"betekent onbeperkt." + +#: ../lib/modules/bindDLZ.inc:525 ../lib/modules/bindDLZ.inc:526 +#, php-format +msgid "The minimum time \"%s\" must be a number." +msgstr "De minimale tijd \"%s\" moet een getal zijn." + +#: ../lib/modules.inc:927 +#, php-format +msgid "The module %s is not yet ready." +msgstr "De module %s is nog niet klaar." + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "" +"The name for that PDF-structure you submitted is not valid. A valid name " +"must consist of the following characters: 'a-z','A-Z','0-9','_','-'." +msgstr "" +"De naam voor de PDF-structuur die u wilt toestaan is niet geldig. Een " +"geldige naam moet tenminste bestaan uit een van de volgende tekens: 'a-z','A-" +"Z','0-9','_','-','.'." + +#: ../lib/modules/asteriskExtension.inc:111 +msgid "" +"The name of a command to execute. The available commands may be listed at " +"the Asterisk command line by executing \"core show applications\"." +msgstr "" +"De naam van een uit te voeren commando. De beschikbare commando's kunnen " +"worden opgevraagd in de Asterisk door het uitvoeren van de commandoregel " +"\"core show applications\"." + +#: ../lib/modules/fixed_ip.inc:99 +msgid "The name of the PC." +msgstr "De naam van de PC." + +#: ../lib/modules/asteriskExtension.inc:103 +msgid "The name of the extension (e.g. voicemail or sip)." +msgstr "De naam van de extensie (bijv. voicemail of SIP)." + +#: ../lib/modules/kolabUser.inc:149 ../lib/modules/kolabSharedFolder.inc:155 +msgid "The name of the server where the mailbox is located." +msgstr "De naam van de server waar de mailbox is gesitueerd." + +#: ../lib/modules/dhcp_settings.inc:150 +msgid "The name of the subnet. Example: 192.168.10.0" +msgstr "De naam van het subnet. Voorbeeld: 192.168.10.0" + +#: ../lib/modules/sambaDomain.inc:78 +msgid "The name of your Windows domain or workgroup." +msgstr "De naam van uw Windows domein of werkgroep." + +#: ../lib/modules/bindDLZ.inc:506 ../lib/modules/bindDLZ.inc:507 +#, php-format +msgid "The name server \"%s\" is invalid." +msgstr "De naamserver \"%s\" is ongeldig." + +#: ../lib/modules/bindDLZ.inc:156 ../lib/modules/bindDLZ.inc:160 +msgid "The name server for this zone." +msgstr "De naamserver voor deze zone." + +#: ../lib/modules/freeRadius.inc:89 +msgid "The net mask for the IP address." +msgstr "Het subnet mask voor het IP adres." + +#: ../lib/modules/dhcp_settings.inc:194 +msgid "" +"The net mask is derived from the subnet mask. LAM will calculate it " +"automatically." +msgstr "" +"Het netmask is afgeleid van het subnet mask. LAM zal dit automatisch " +"berekenen." + +#: ../lib/modules/freeRadius.inc:251 ../lib/modules/freeRadius.inc:252 +msgid "The net mask is invalid." +msgstr "Het subnet mask is niet geldig." + +#: ../lib/modules.inc:1185 +msgid "" +"The new password will be stored in the directory after you save this account." +msgstr "" +"Het nieuwe wachtwoord wordt opgeslagen in de directory nadat je deze account " +"hebt opgeslagen." + +#: ../lib/modules/asteriskAccount.inc:240 +msgid "The number of milliseconds for the last qualify." +msgstr "Het aantal milliseconden voor de laatste qualify." + +#: ../lib/modules/bindDLZ.inc:516 +msgid "The number of priority, weight, port and server entries must be equal." +msgstr "" +"Het aantal prioriteit, gewicht, port en server items moeten gelijk zijn." + +#: ../help/help.inc:121 +msgid "" +"The number of users who may login to LAM is restricted. This can be either a " +"fixed list of DNs or LAM can search LDAP to find a DN which matches the " +"given user name." +msgstr "" +"Het aantal gebruikers die kunnen inloggen op LAM is beperkt. Dit kan zowel " +"een vaste lijst DNs zijn of LAM kan zoeken binnen LDAP naar een DN, die " +"overeenkomt met de gegeven gebruikersnaam." + +#: ../templates/tests/schemaTest.php:114 +#, php-format +msgid "The object class %s is not supported by your LDAP server." +msgstr "De object-klasse %s wordt niet ondersteund door uw LDAP-server." + +#: ../lib/modules/windowsUser.inc:153 ../lib/modules/inetOrgPerson.inc:815 +#: ../lib/modules/inetOrgPerson.inc:819 +msgid "The office name of the user (e.g. YourCompany, Human Resources)." +msgstr "" +"De kantoornaam van de gebruiker (bijvoorbeeld uw bedrijf, Human Resources)." + +#: ../templates/selfService/selfServiceMain.php:331 ../lib/modules.inc:1811 +msgid "The operation was stopped because of the above errors." +msgstr "De operatie werd gestopt omwille van de bovenstaande fouten." + +#: ../lib/modules/asteriskVoicemail.inc:224 +#: ../lib/modules/asteriskVoicemail.inc:225 +msgid "The options have bad format." +msgstr "De opties hebben een slecht formaat." + +#: ../lib/modules/device.inc:70 ../lib/modules/device.inc:74 +msgid "The owners of this device." +msgstr "De eigenaren van dit apparaat." + +#: ../lib/modules/groupOfNames.inc:94 ../lib/modules/groupOfNames.inc:98 +msgid "The owners of this group." +msgstr "De eigenaren van deze groep." + +#: ../lib/modules/asteriskVoicemail.inc:222 +#: ../lib/modules/asteriskVoicemail.inc:223 +msgid "The pager number has bad format." +msgstr "Het piepernummer heeft een slecht formaat." + +#: ../lib/modules/heimdalKerberos.inc:121 +msgid "The parameter @@password@@ will be replaced with the new password." +msgstr "" +"De parameter @@password@@ zal worden vervangen door het nieuwe wachtwoord." + +#: ../lib/modules/heimdalKerberos.inc:120 +msgid "The parameter @@principal@@ will be replaced with the principal name." +msgstr "" +"De parameter @@principal@@ zal worden vervangen door de principal naam." + +#: ../templates/config/confsave.php:71 ../templates/config/confmain.php:73 +#: ../templates/config/mainlogin.php:61 +#: ../templates/selfService/adminLogin.php:54 +msgid "The password is invalid! Please try again." +msgstr "Het wachtwoord is ongeldig! Probeer opnieuw." + +#: ../lib/security.inc:335 +#, php-format +msgid "The password is too short. You have to enter at least %s characters." +msgstr "Het wachtwoord is te kort. Het moet minimaal %s tekens lang zijn." + +#: ../lib/security.inc:423 +#, php-format +msgid "" +"The password is too weak. It needs to match at least %s password complexity " +"rules." +msgstr "" +"Het wachtwoord is te zwak. Het moet minstens voldoen aan %s wachtwoord " +"complexiteitsregels." + +#: ../lib/security.inc:413 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s different character " +"classes (upper/lower case, numbers and symbols)." +msgstr "" +"Het wachtwoord is te zwak. Het moet bestaan uit tenminste %s verschillende " +"tekenklassen (hoofdletters / kleine letters, cijfers en symbolen)." + +#: ../lib/security.inc:360 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s lower case " +"characters." +msgstr "" +"Het wachtwoord is te zwak. Het moet bestaan uit tenminste %s kleine letters." + +#: ../lib/security.inc:380 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s numeric characters." +msgstr "" +"Het wachtwoord is te zwak. Het moet bestaan uit tenminste %s numerieke " +"tekens." + +#: ../lib/security.inc:390 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s symbolic characters." +msgstr "" +"Het wachtwoord is te zwak. Het moet bestaan uit tenminste %s symbolische " +"tekens." + +#: ../lib/security.inc:370 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s upper case " +"characters." +msgstr "" +"Het wachtwoord is te zwak. Het moet bestaan uit tenminste %s hoofdletters." + +#: ../lib/security.inc:442 +msgid "" +"The password is too weak. You may not use parts of the user name for the " +"password." +msgstr "" +"Het wachtwoord is te zwak. Je mag geen delen van de gebruiker naam gebruiken " +"voor het wachtwoord." + +#: ../lib/security.inc:452 +msgid "" +"The password is too weak. You may not use parts of user attributes for the " +"password." +msgstr "" +"Het wachtwoord is te zwak. Je mag geen delen van de gebruiker attributen " +"gebruiken voor het wachtwoord." + +#: ../lib/security.inc:430 +msgid "" +"The password is too weak. You may not use the user name as part of the " +"password." +msgstr "" +"Het wachtwoord is te zwak. Het moet bestaan uit tenminste %s kleine letters." +"Het wachtwoord is te zwak. U mag de gebruikersnaam niet gebruiken als " +"onderdeel van het wachtwoord." + +#: ../lib/modules/imapAccess.inc:95 +msgid "" +"The password of your IMAP admin user. The login name for the IMAP admin user " +"is stored in the LAM server profile." +msgstr "" +"Het wachtwoord van uw IMAP-admin gebruiker. De login naam voor de IMAP-admin " +"gebruiker is opgeslagen in het LAM server profiel." + +#: ../templates/lists/changePassword.php:609 ../lib/modules.inc:1128 +msgid "The password was set to:" +msgstr "Het wachtwoord is ingesteld op:" + +#: ../lib/modules/range.inc:122 +msgid "The pool's failover peer." +msgstr "De failover peer van de poel." + +#: ../lib/modules/range.inc:118 +msgid "The pool's name." +msgstr "Naam van de poel." + +#: ../lib/modules/bindDLZ.inc:512 ../lib/modules/bindDLZ.inc:513 +#, php-format +msgid "The port \"%s\" is invalid." +msgstr "Poort \"%s\" is ongeldig." + +#: ../lib/modules/windowsUser.inc:161 ../lib/modules/inetOrgPerson.inc:687 +#: ../lib/modules/inetOrgPerson.inc:691 +msgid "The post office box of the user's address." +msgstr "Het postbusnummer van het adres van de gebruiker." + +#: ../lib/modules/windowsUser.inc:157 ../lib/modules/inetOrgPerson.inc:695 +#: ../lib/modules/inetOrgPerson.inc:699 +msgid "The postal code of the user's address." +msgstr "De postcode van het adres van de gebruiker." + +#: ../lib/modules/bindDLZ.inc:502 ../lib/modules/bindDLZ.inc:503 +#, php-format +msgid "The preference \"%s\" must be a number." +msgstr "De voorkeur \"%s\" moet een getal zijn." + +#: ../lib/modules/pykotaPrinter.inc:116 +msgid "The price for each page of a print job." +msgstr "De prijs voor elke pagina van een afdruktaak." + +#: ../lib/modules/pykotaPrinter.inc:112 +msgid "The price for each print job." +msgstr "De prijs voor elke afdruktaak." + +#: ../lib/modules/posixAccount.inc:466 +msgid "" +"The primary group for this account. You can insert a GID number or a group " +"name." +msgstr "" +"De primaire groep voor deze account. Een GID of groepsnaam kan opgegeven " +"worden." + +#: ../lib/modules/posixAccount.inc:553 +msgid "The primary group the host should be member of." +msgstr "De primaire groep waarvan de host lid zou moeten zijn." + +#: ../lib/modules/posixAccount.inc:515 +msgid "The primary group the user should be member of." +msgstr "De primaire groep waarvan de gebruiker lid zou moeten zijn." + +#: ../lib/modules/bindDLZ.inc:508 ../lib/modules/bindDLZ.inc:509 +#, php-format +msgid "The priority \"%s\" is invalid." +msgstr "Prioriteit \"%s\" is ongeldig." + +#: ../lib/modules/asteriskExtension.inc:107 +msgid "" +"The priority is a sequence number used to order the execution of commands. " +"Commands are executed beginning with the lowest sequence number." +msgstr "" +"De prioriteit is een volgnummer dat gebruikt voor het sorteren van de " +"commando's. Commando's worden uitgevoerd beginnen met het laagste volgnummer." + +#: ../lib/modules/range.inc:511 ../lib/modules/range.inc:591 +msgid "The range conflicts with another range." +msgstr "De reeks conflicteert met een andere reeks." + +#: ../lib/modules/range.inc:507 ../lib/modules/range.inc:585 +msgid "The range end needs to be greater than the range start." +msgstr "Het reeks einde moet groter zijn dan het begin van de reeks." + +#: ../lib/modules/bindDLZ.inc:521 ../lib/modules/bindDLZ.inc:522 +#, php-format +msgid "The refresh time \"%s\" must be a number." +msgstr "De refresh tijd \"%s\" moet een getal zijn." + +#: ../lib/modules/bindDLZ.inc:523 ../lib/modules/bindDLZ.inc:524 +#, php-format +msgid "The retry time \"%s\" must be a number." +msgstr "De retry tijd \"%s\" moet een getal zijn." + +#: ../lib/modules/inetOrgPerson.inc:783 +msgid "The room number of the employee's office." +msgstr "Het kamernummer van het kantoor van de werknemer." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +msgid "The scope in which to search" +msgstr "Het bereik waarin moet worden gezocht" + +#: ../lib/modules/customScripts.inc:64 ../lib/modules/customScripts.inc:77 +msgid "" +"The scripts will be run on your web server in the user context of your web " +"server (e.g. apache/www-data)." +msgstr "" +"Het scripts zal worden uitgevoerd op uw web server in de context van de " +"gebruiker van uw web server (bijv. apache/www-data)." + +#: ../lib/modules/nisMailAliasUser.inc:105 +#: ../lib/modules/asteriskAccount.inc:244 ../lib/modules/qmailUser.inc:196 +#: ../lib/modules/zarafaGroup.inc:109 ../lib/modules/sambaSamAccount.inc:401 +#: ../lib/modules/posixAccount.inc:442 ../lib/modules/zarafaUser.inc:133 +#: ../lib/modules/windowsUser.inc:237 ../lib/modules/inetOrgPerson.inc:831 +#: ../lib/modules/freeRadius.inc:113 ../lib/modules/zarafaServer.inc:89 +#: ../lib/modules/qmailGroup.inc:120 ../lib/modules/organizationalRole.inc:82 +#: ../lib/modules/passwordSelfReset.inc:161 +#: ../lib/modules/windowsGroup.inc:111 ../lib/modules/groupOfNames.inc:82 +msgid "" +"The selected options will not be managed inside LAM. You can use this to " +"reduce the number of displayed input fields." +msgstr "" +"De gekozen opties zullen niet worden beheerd binnen LAM. U kunt dit " +"gebruiken om het aantal weergegeven invoervelden te verminderen." + +#: ../lib/modules/bindDLZ.inc:527 ../lib/modules/bindDLZ.inc:528 +#, php-format +msgid "The serial number \"%s\" must be a number." +msgstr "Het serienummer \"%s\" moet een getal zijn." + +#: ../lib/modules/bindDLZ.inc:228 +msgid "The serial number should be updated after each zone change." +msgstr "Het serienummer moet na elke zone wijziging worden bijgewerkt." + +#: ../lib/modules/bindDLZ.inc:500 ../lib/modules/bindDLZ.inc:501 +#: ../lib/modules/bindDLZ.inc:514 ../lib/modules/bindDLZ.inc:515 +#, php-format +msgid "The server name \"%s\" is invalid." +msgstr "De servernaam \"%s\" is ongeldig." + +#: ../templates/3rdParty/pla/htdocs/copy.php:38 +msgid "The source and destination DN are the same." +msgstr "De bron en de bestemming DN zijn hetzelfde." + +#: ../lib/modules/range.inc:98 +msgid "The starting IP address of the range." +msgstr "Het eerste IP-adres van de reeks." + +#: ../lib/modules/windowsUser.inc:169 ../lib/modules/inetOrgPerson.inc:803 +#: ../lib/modules/inetOrgPerson.inc:807 +msgid "The state where the user resides or works." +msgstr "De staat waar de gebruiker woont of werkt." + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "The static text must contain at least one character." +msgstr "De statische tekst moet tenminste een teken bevatten." + +#: ../lib/modules/windowsUser.inc:173 ../lib/modules/inetOrgPerson.inc:679 +#: ../lib/modules/inetOrgPerson.inc:683 +msgid "The street name of the user's address." +msgstr "De straatnaam van het adres van de gebruiker." + +#: ../help/help.inc:249 +msgid "The subject of all password mails." +msgstr "Het onderwerp van alle wachtwoord e-mails." + +#: ../lib/modules/selfRegistration.inc:95 +#: ../lib/modules/passwordSelfReset.inc:121 +msgid "The subject of the mails." +msgstr "Het onderwerp van de e-mails." + +#: ../lib/modules/dhcp_settings.inc:319 +msgid "The subnet is already in use." +msgstr "Het subnet is al in gebruik." + +#: ../lib/modules/dhcp_settings.inc:320 ../lib/modules/dhcp_settings.inc:321 +msgid "The subnet is invalid." +msgstr "Het subnet is niet geldig." + +#: ../lib/modules/dhcp_settings.inc:334 ../lib/modules/dhcp_settings.inc:335 +msgid "The subnet mask is invalid." +msgstr "Het subnet mask is niet geldig." + +#: ../lib/modules/dhcp_settings.inc:190 +msgid "The subnet mask of the network." +msgstr "Het subnet mask van het netwerkt." + +#: ../lib/modules/sudoRole.inc:134 +msgid "The sudo command is not valid after this date." +msgstr "Het sudo commando is niet geldig na deze datum." + +#: ../lib/modules/sudoRole.inc:129 +msgid "The sudo command is not valid before this date." +msgstr "Het sudo commando is niet geldig voor deze datum." + +#: ../lib/modules/sudoRole.inc:91 ../lib/modules/sudoRole.inc:119 +msgid "The sudo commands are executed with these group memberships." +msgstr "Het sudo commando's worden uitgevoerd met deze groepslidmaatschappen." + +#: ../lib/modules/sudoRole.inc:87 ../lib/modules/sudoRole.inc:114 +msgid "The sudo commands may be run as these users (e.g. root)." +msgstr "" +"Het sudo commando's kunnen worden uitgevoerd als deze gebruikers " +"(bijvoorbeeld root)." + +#: ../lib/modules/bindDLZ.inc:220 +msgid "" +"The time (in seconds) a secondary server should wait before retrying a zone " +"refresh." +msgstr "" +"De tijd (in seconden) die een secundaire server moet wachten voordat het " +"opnieuw probeert een zone te verversen." + +#: ../lib/modules/bindDLZ.inc:216 +msgid "" +"The time (in seconds) that a secondary server should wait before checking " +"for zone updates." +msgstr "" +"De tijd (in seconden) die een secundaire server moet wachten voor het " +"controleren voor zone updates." + +#: ../lib/modules/bindDLZ.inc:212 +msgid "" +"The time (in seconds) that zone data is kept on a secondary server without " +"receiving a zone refresh." +msgstr "" +"De tijd (in seconden) die zone gegevens op een secundaire server gehouden " +"worden zonder het ontvangen van een zone refresh." + +#: ../lib/modules/bindDLZ.inc:479 ../lib/modules/bindDLZ.inc:480 +#: ../lib/modules/bindDLZ.inc:481 ../lib/modules/bindDLZ.inc:482 +#: ../lib/modules/bindDLZ.inc:483 ../lib/modules/bindDLZ.inc:484 +#: ../lib/modules/bindDLZ.inc:485 ../lib/modules/bindDLZ.inc:486 +#: ../lib/modules/bindDLZ.inc:487 ../lib/modules/bindDLZ.inc:488 +#: ../lib/modules/bindDLZ.inc:489 ../lib/modules/bindDLZ.inc:490 +#: ../lib/modules/bindDLZ.inc:491 ../lib/modules/bindDLZ.inc:492 +#: ../lib/modules/bindDLZ.inc:493 ../lib/modules/bindDLZ.inc:494 +#, php-format +msgid "The timeout \"%s\" must be a number." +msgstr "De timeout tijd \"%s\" moet een getal zijn." + +#: ../lib/modules/bindDLZ.inc:102 ../lib/modules/bindDLZ.inc:106 +#: ../lib/modules/bindDLZ.inc:111 ../lib/modules/bindDLZ.inc:116 +#: ../lib/modules/bindDLZ.inc:121 ../lib/modules/bindDLZ.inc:126 +#: ../lib/modules/bindDLZ.inc:131 +msgid "" +"The timeout specifies how long (in seconds) a record can be cached by " +"caching DNS servers." +msgstr "" +"De time-out gespecificeerd hoe lang (in seconden) een record kan worden " +"gecached door caching DNS-servers." + +#: ../lib/modules/customFields.inc:3562 ../lib/modules/customFields.inc:3649 +#, php-format +msgid "The uploaded file does not have the correct file extension (%s)." +msgstr "Het geüploade bestand heeft niet de juiste bestandsextensie (%s)." + +#: ../lib/modules/customFields.inc:3558 ../lib/modules/customFields.inc:3645 +#, php-format +msgid "The uploaded file is too large (> %s bytes)." +msgstr "Het geüploade bestand is te groot (> %s bytes)." + +#: ../templates/3rdParty/pla/lib/import_functions.php:396 +msgid "The url attribute value should begin with file://." +msgstr "De url attribuutwaarde moet beginnen met file://." + +#: ../lib/modules/zarafaUser.inc:113 +msgid "The user account is non-active and login is disabled." +msgstr "Het gebruikers account is niet-actieve en inloggen is uitgeschakeld." + +#: ../lib/modules/windowsUser.inc:202 +msgid "The user must log on using a smart card." +msgstr "De gebruiker moet zich aanmelden met een smartcard." + +#: ../lib/modules/zarafaUser.inc:93 +msgid "The user will get warned when his mailbox reaches this limit." +msgstr "" +"De gebruiker krijgt gewaarschuwd wanneer zijn mailbox deze limiet bereikt." + +#: ../lib/modules/qmailUser.inc:204 +msgid "The user's alternate email address." +msgstr "De gebruikers alternatieve e-mailadres." + +#: ../lib/modules/asteriskAccount.inc:136 +msgid "The user's call groups." +msgstr "De gebruikers bellen groepen." + +#: ../lib/modules/qmailUser.inc:200 ../lib/modules/windowsUser.inc:141 +#: ../lib/modules/pykotaUser.inc:117 ../lib/modules/inetOrgPerson.inc:743 +#: ../lib/modules/inetOrgPerson.inc:747 +msgid "The user's email address." +msgstr "Dit is een van de publieke e-mail adressen van de gebruiker." + +#: ../lib/modules/inetOrgPerson.inc:727 ../lib/modules/inetOrgPerson.inc:731 +msgid "The user's fax number." +msgstr "De gebruikers faxnummer" + +#: ../lib/modules/inetOrgPerson.inc:719 ../lib/modules/inetOrgPerson.inc:723 +msgid "The user's mobile number." +msgstr "De gebruikers mobielnummer" + +#: ../lib/modules/inetOrgPerson.inc:847 ../lib/modules/inetOrgPerson.inc:851 +msgid "The user's organisation name." +msgstr "De gebruikers naam van de organisatie." + +#: ../lib/modules/inetOrgPerson.inc:839 ../lib/modules/inetOrgPerson.inc:843 +msgid "The user's organisational unit." +msgstr "De gebruiker organisatorische eenheid." + +#: ../lib/modules/inetOrgPerson.inc:735 ../lib/modules/inetOrgPerson.inc:739 +msgid "The user's pager number." +msgstr "Het pager nummer van de gebruiker." + +#: ../lib/modules/inetOrgPerson.inc:775 ../lib/modules/inetOrgPerson.inc:779 +msgid "The user's private telephone number." +msgstr "De gebruikers prive telefoonnummer." + +#: ../lib/modules/windowsUser.inc:177 ../lib/modules/inetOrgPerson.inc:711 +#: ../lib/modules/inetOrgPerson.inc:715 +msgid "The user's telephone number." +msgstr "De gebruikers telefoonnummer" + +#: ../lib/modules/inetOrgPerson.inc:855 +msgid "The user's unique employee number." +msgstr "De gebruikers unieke personeelsnummer." + +#: ../lib/modules/windowsUser.inc:189 ../lib/modules/inetOrgPerson.inc:755 +#: ../lib/modules/inetOrgPerson.inc:759 +msgid "The user's web site (e.g. http://www.company.com)." +msgstr "De website van de gebruiker (bv http://www.bedrijf.nl)." + +#: ../lib/modules/sambaSamAccount.inc:122 +msgid "" +"The value for the Samba 3 field \"User can/must change password\" needs to " +"be a number." +msgstr "" +"De waarde voor de Samba 3 veld \"De gebruiker kan/moet wachtwoord wijzigen\" " +"moet een getal zijn." + +#: ../lib/modules/puppetClient.inc:188 ../lib/modules/puppetClient.inc:189 +msgid "The variables may only contain ASCII characters." +msgstr "De variabelen mogen alleen bestaan ​​uit ASCII-tekens." + +#: ../lib/modules/asteriskVoicemail.inc:226 +#: ../lib/modules/asteriskVoicemail.inc:227 +msgid "The voicemail context name is invalid." +msgstr "De voicemail context is ongeldig." + +#: ../lib/modules/bindDLZ.inc:510 ../lib/modules/bindDLZ.inc:511 +#, php-format +msgid "The weight \"%s\" is invalid." +msgstr "Gewicht \"%s\" is ongeldig." + +#: ../templates/3rdParty/pla/htdocs/create.php:42 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:36 +msgid "The were no attributes marked as an RDN attribute." +msgstr "De waren geen attributen gemarkeerd als een RDN attribuut." + +#: ../lib/modules/selfRegistration.inc:71 +msgid "The wildcard for the account creation link is @@creationLink@@." +msgstr "De wildcard voor het maken van een account link is @@creationLink@@." + +#: ../lib/modules/passwordSelfReset.inc:127 ../help/help.inc:254 +msgid "The wildcard for the new password is @@newPassword@@." +msgstr "De wildcard voor het nieuwe wachtwoord is @@newPassword@@." + +#: ../lib/modules/passwordSelfReset.inc:137 +msgid "The wildcard for the reset link is @@resetLink@@." +msgstr "De wildcard voor het reset link is @@resetLink@@." + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:60 +#, php-format +msgid "There are %s members in group %s:" +msgstr "Er zijn %s leden in de groep %s:" + +#: ../lib/modules/posixGroup.inc:607 ../lib/modules/sambaGroupMapping.inc:605 +msgid "There are still users who have this group as their primary group." +msgstr "Er zijn nog gebruikers die deze groep als primaire groep hebben." + +#: ../lib/modules/sambaGroupMapping.inc:602 +msgid "There can be only one group of this type." +msgstr "Er mag maar een groep bestaan van dit type." + +#: ../lib/modules/asteriskAccount.inc:557 +msgid "There is already another user with this caller ID." +msgstr "Er is al een andere gebruiker met dit beller-ID." + +#: ../lib/modules/asteriskVoicemail.inc:211 +msgid "There is already another user with this mailbox name." +msgstr "Er is al een andere gebruiker met deze mailbox naam." + +#: ../templates/massDoUpload.php:258 +msgid "There were errors while uploading:" +msgstr "Er zijn fouten opgetreden tijdens het uploaden:" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:80 +#, php-format +msgid "There will be %s updates done with this mass update" +msgstr "Er zullen %s updates gedaan worden met deze bulk-update" + +#: ../lib/modules/posixGroup.inc:501 +msgid "" +"These are the minimum and maximum numbers to use for group IDs when creating " +"new group accounts. New group accounts will always get the highest number in " +"use plus one." +msgstr "" +"Dit zijn de minimum en maximum nummers voor een groep IDsvoor het aanmalen " +"van een nieuwe groep. Nieuwe groepaccount zullen altijd het hoogste nummer + " +"1 toegewezen krijgen." + +#: ../lib/modules/posixAccount.inc:454 +msgid "" +"These are the minimum and maximum numbers to use for machine IDs when " +"creating new accounts for hosts. The range should be different from that of " +"users. New host accounts will always get the highest number in use plus one." +msgstr "" +"Dit zijn de minimum en maximum nummers voor machine IDs voor het aanmaken " +"van nieuwe Samba host accounts. Dit bereik dient verschilend te zijn van dat " +"van de gebruikers. Nieuwe host accounts zullen altijd het hoogdte nummer " +"krijgen + 1." + +#: ../lib/modules/posixAccount.inc:450 +msgid "" +"These are the minimum and maximum numbers to use for user IDs when creating " +"new user accounts. The range should be different from that of machines. New " +"user accounts will always get the highest number in use plus one." +msgstr "" +"Dit zijn de minimum en maximum nummers voor een gebruiker IDs die gebruikt " +"worden bij het aanmaken van nieuwe gebruikersaccounts. Dit bereik moet " +"verschillen met dan van de host. Nieuwe gebryuikers accounts zullen altijd " +"het hoogste nummer + 1 toegewezen krijgen." + +#: ../lib/modules/inetOrgPerson.inc:867 +msgid "These are the user's certificates." +msgstr "Dit zijn de gebruiker z'n certificaten." + +#: ../lib/modules/puppetClient.inc:113 +msgid "" +"These classes will be available as autocompletion hints when adding new " +"classes." +msgstr "" +"Deze klassen zullen beschikbaar zijn als automatisch aanvul hints bij het " +"toevoegen van nieuwe klassen." + +#: ../lib/modules/nisnetgroup.inc:96 ../lib/modules/nisnetgroup.inc:100 +msgid "" +"These entries specify the members of the netgroup. You can limit the set to " +"a host name, a user name, a domain name or any combination of them." +msgstr "" +"Deze items geven de leden van de netgroep weer. U kunt de set beperken een " +"host-naam, een gebruikersnaam, een domeinnaam of een combinatie daarvan." + +#: ../lib/modules/puppetClient.inc:117 +msgid "" +"These environments will be available as autocompletion hints when setting " +"the environment." +msgstr "" +"Deze omgevingen zullen beschikbaar zijn als het automatisch aanvul hints bij " +"het instellen van de omgevingen." + +#: ../lib/modules/asteriskExtension.inc:123 +msgid "" +"These options change the list of potential extension owners below. You can " +"select to show Asterisk accounts or all users. It is also possible to search " +"the tree suffix if you have users which are not in the standard user suffix." +msgstr "" +"Deze opties wijzigt u de lijst van mogelijke extensie eigenaren hieronder. U " +"kunt kiezen om Asterisk accounts of alle gebruikers weer te geven. Het is " +"ook mogelijk om in de boom suffix zoeken als u gebruikers heeft die niet in " +"de standaard gebruiker suffix bevinden." + +#: ../lib/modules/authorizedServiceObject.inc:94 +msgid "These services will show up as hint if you enter a new service." +msgstr "" +"Deze diensten zullen verschijnen als hint als u een nieuwe dienst invoert." + +#: ../lib/modules/posixAccount.inc:124 +msgid "" +"This GID number is invalid! Please provide either a number or a group name." +msgstr "De GID is niet valide! S.v.p. een getal of een groepsnaam opgeven." + +#: ../help/help.inc:235 +msgid "" +"This HTML code will be placed on top of all self service pages. E.g. you can " +"use this to place your custom logo. Any HTML code is permitted." +msgstr "" +"Deze HTML code wordt geplaatst op de top van alle zelf service pagina's. " +"Bijv. U kunt dit gebruiken om uw eigen logo plaatsen. Elke HTML-code is " +"toegestaan." + +#: ../lib/modules/fixed_ip.inc:462 +msgid "This PC name already exists." +msgstr "Deze PC naam bestaat al!" + +#: ../lib/modules/kolabGroup.inc:197 ../lib/modules/kolabUser.inc:292 +#: ../lib/modules/kolabSharedFolder.inc:274 +msgid "This account is marked for deletion." +msgstr "Dit account is gemerkt als te verwjderen." + +#: ../lib/modules/sambaSamAccount.inc:328 +msgid "" +"This allows you to define this account as a special user like administrator " +"or guest." +msgstr "" +"Dit biedt de mogelijkheid een account als speciale gebruiker de definieren " +"zoals beheerder of gast." + +#: ../templates/3rdParty/pla/lib/PageRender.php:376 +msgid "This attribute is not defined in the LDAP schema" +msgstr "Dit attribute is niet gedefinieerd in het LDAP-schema" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1988 +msgid "This attribute is required" +msgstr "Dit attribuut is verplicht" + +#: ../templates/3rdParty/pla/lib/PageRender.php:458 +msgid "This attribute is required for the RDN." +msgstr "Dit attribuut is verplicht voor het RDN" + +#: ../lib/modules/inetOrgPerson.inc:811 +msgid "This can be used to specify if the user has a car license." +msgstr "" +"Dit kan worden gebruikt om aan te geven of de gebruiker een rijbewijs heeft" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:64 +msgid "This change requires to add new attributes." +msgstr "Deze verandering vereist het toevoegen van nieuwe attributen." + +#: ../help/help.inc:137 +msgid "This changes the password of the selected profile." +msgstr "Dit verandert het wachtwoord van het geselecteeerde profiel." + +#: ../help/help.inc:139 +msgid "This changes the profile which is selected by default at login." +msgstr "Dit verandert het profiel dat als default wordt gekozen bij de login." + +#: ../templates/massBuildAccounts.php:177 +msgid "" +"This column is defined to include unique entries but duplicates were found:" +msgstr "" +"Deze kolom is zo gedefinieerd dat het alleen unieke entrees kan bevatten, " +"maar er zijn dubbele waarden gevonden:" + +#: ../lib/modules/heimdalKerberos.inc:119 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -K /etc/heimdal/apache.keytab -p " +"admin/admin passwd -p @@password@@ @@principal@@\"." +msgstr "" +"Deze opdracht zal worden uitgevoerd om het Kerberos-wachtwoord te wijzigen. " +"Normaal gesproken, zou het er ongeveer zo uitzien \"/usr/sbin/kadmin -K /etc/" +"heimdal/apache.keytab -p admin/admin passwd -p @@password@@ @@principal@@\"." + +#: ../lib/modules/mitKerberos.inc:149 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -k -t /home/www-data/apache.keytab " +"-p realm/changepwd\"." +msgstr "" +"Deze opdracht zal worden uitgevoerd om het Kerberos-wachtwoord te wijzigen. " +"Normaal gesproken, zou het er ongeveer zo uitzien \"/usr/sbin/kadmin -K /etc/" +"heimdal/apache.keytab -p admin/admin passwd -p @@password@@ @@principal@@\". " + +#: ../lib/modules/customScripts.inc:124 +msgid "This custom script setting includes an invalid account type." +msgstr "Deze aangepaste script instelling bevat een ongeldig type account." + +#: ../lib/modules/customScripts.inc:126 ../lib/modules/customScripts.inc:128 +msgid "This custom script setting includes an invalid action type." +msgstr "Deze aangepaste script instelling bevat een ongeldig type actie." + +#: ../help/help.inc:100 +msgid "" +"This defines the language of the login window and sets this language as the " +"default language. Users can change the language at login." +msgstr "" +"Dit bepaalt de taal van het loginscherm en het zal als standaard taal " +"gebruikt worden. Gebruikers kunnen de taal bij login wijzigen." + +#: ../help/help.inc:119 +msgid "" +"This defines the rights for the home directories which are created by " +"lamdaemon." +msgstr "" +"Dit definieert de rechten voor de home directories, die worden aangemaakt " +"door lamdaemon." + +#: ../lib/modules/asteriskExtension.inc:95 +msgid "" +"This defines what application Asterisk has to start for this user (e.g. SIP/" +"user1)." +msgstr "" +"Dit geeft aan welke toepassing Asterisk moet starten voor deze gebruiker " +"(bijv. SIP/user1)." + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:85 +#, php-format +msgid "This deletion request also includes %s child entries." +msgstr "Deze verwijdering omvat ook %s kind items." + +#: ../lib/modules/device.inc:78 +msgid "This describes the location of the device." +msgstr "Dit beschrijft de locatie van het apparaat." + +#: ../lib/modules/ipHost.inc:74 +msgid "This describes the location of the host." +msgstr "Dit beschrijft de locatie van de gastheer." + +#: ../lib/modules/windowsUser.inc:137 ../lib/modules/inetOrgPerson.inc:795 +#: ../lib/modules/inetOrgPerson.inc:799 +msgid "This describes the location of the user." +msgstr "Dit beschrijft de plaats van de gebruiker." + +#: ../lib/lamPDF.inc:126 +msgid "This document was automatically created by LDAP Account Manager" +msgstr "Dit document is automatisch gecreeerd door LDAP Account Manager" + +#: ../help/help.inc:258 +msgid "" +"This email address will be set as reply-to address of all password mails." +msgstr "" +"Dit email adres wordt als antwoord-naar adres gebruikt voor alle wachtwoord " +"mails." + +#: ../help/help.inc:247 +msgid "" +"This email address will be set as sender address of all password mails. If " +"empty the system default (php.ini) will be used." +msgstr "" +"Dit e-mailadres wordt ingesteld als afzender adres voor alle wachtwoord " +"mails. Indien leeg dan zal het systeem default (php.ini) worden gebruikt." + +#: ../lib/modules/selfRegistration.inc:91 +#: ../lib/modules/passwordSelfReset.inc:117 +msgid "" +"This email address will be set as sender address of the mails. If empty the " +"system default (php.ini) will be used." +msgstr "" +"Dit e-mailadres wordt ingesteld als afzender adres voorde mails. Indien leeg " +"dan zal het systeem default (php.ini) worden gebruikt." + +#: ../lib/modules/passwordSelfReset.inc:97 +msgid "This enables the password self reset function." +msgstr "Dit activeert de wachtwoord zelf reset functie." + +#: ../lib/modules/selfRegistration.inc:54 +msgid "This enables the self registration function." +msgstr "Dit activeert de zelfregistratie functie." + +#: ../templates/3rdParty/pla/htdocs/compare.php:79 +msgid "This entry has no attributes" +msgstr "Deze entree heeft geen attributen" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:57 +#, php-format +msgid "This entry is the root of a sub-tree containing %s entries." +msgstr "Deze entree is de basis voor een subtree met %s entrees." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:47 +#: ../lib/modules/selfRegistration.inc:512 +msgid "This field is required." +msgstr "Dit veld is verplicht" + +#: ../lib/modules/customFields.inc:188 +msgid "This field name already exists. Please choose a different one." +msgstr "Deze veldnaam bestaat al. Kies een andere." + +#: ../lib/modules/posixAccount.inc:126 +msgid "This gecos value is invalid!" +msgstr "Dit gecos veld is niet valide!" + +#: ../lib/modules/ipHost.inc:70 +msgid "This is a comma separated list of IP addresses." +msgstr "Dit is een komma gescheiden lijst van IP adressen" + +#: ../lib/modules/ieee802device.inc:73 +msgid "This is a comma separated list of MAC addresses." +msgstr "Dit is een komma gescheiden lijst van MAC adressen" + +#: ../lib/modules/kolabUser.inc:137 ../lib/modules/kolabSharedFolder.inc:143 +msgid "This is a comma separated list of delegates." +msgstr "Dit is een komma gescheiden lijst van gedelegeerden." + +#: ../lib/modules/kolabUser.inc:145 ../lib/modules/kolabSharedFolder.inc:151 +msgid "This is a comma separated list of eMail aliases." +msgstr "Dit is een komma gescheiden lijst van e-mail aliassen" + +#: ../lib/modules/kolabUser.inc:129 +msgid "This is a comma separated list of invitation policies." +msgstr "Dit is een komma gescheiden lijst van invitatie beleidsregels." + +#: ../lib/modules/nisMailAlias.inc:90 +msgid "This is a comma separated list of recipients." +msgstr "Dit is een komma gescheiden lijst van ontvangers" + +#: ../lib/modules/inetLocalMailRecipient.inc:77 +msgid "This is a comma separated list of the users public email addresses." +msgstr "" +"Dit is een komma gescheiden lijst van publieke e-mail adressen van de " +"gebruiker." + +#: ../help/help.inc:153 +msgid "" +"This is a list of IP addresses from hosts who may access LAM. You can use \"*" +"\" as wildcard (e.g. 192.168.0.*)." +msgstr "" +"Dit is een lijst van IP adressen van hosts die toegang hebben tot LAM. U " +"kunt gebruik maken van \"*\" als wildcard (bijv. 192.168.0 .*)." + +#: ../lib/modules/selfRegistration.inc:79 +msgid "" +"This is a list of additional attributes that the user can enter. Please note " +"that user name, password and email address are mandatory anyway and need not " +"be specified." +msgstr "" +"Dit is een lijst met extra attributen die de gebruiker kan invoeren. Let op: " +"gebruikersnaam, wachtwoord en e-mailadres zijn sowieso verplicht en hoeven " +"niet worden opgegeven." + +#: ../lib/modules/organizationalRole.inc:94 +#: ../lib/modules/windowsGroup.inc:131 ../lib/modules/groupOfNames.inc:102 +msgid "This is a list of members of this group." +msgstr "Dit is een lijst van leden van deze groep." + +#: ../lib/modules/organizationalRole.inc:98 +#: ../lib/modules/windowsGroup.inc:135 ../lib/modules/groupOfNames.inc:106 +msgid "" +"This is a list of members of this group. Multiple members are separated by " +"semicolons." +msgstr "" +"Gebruikers die lid worden van deze groep. De namen worden gescheiden door " +"een puntkomma." + +#: ../lib/modules/eduPerson.inc:102 +msgid "This is a list of nick names for this user." +msgstr "Dit is een lijst van bijnamen voor deze gebruiker." + +#: ../lib/modules/selfRegistration.inc:75 +msgid "" +"This is a list of object classes that are used to build the new user " +"accounts. Please enter one object class in each line." +msgstr "" +"Dit is een lijst van object klassen die worden gebruikt om de nieuwe " +"gebruikersaccounts op te bouwen. Een object klasse per regel." + +#: ../help/help.inc:115 +msgid "" +"This is a list of the servers where the lamdaemon scripts are stored. LDAP " +"Account Manager will make a SSH connection to the servers with the user name " +"and password provided at login. Multiple servers are separated by " +"semicolons. You can append a descriptive name after a colon." +msgstr "" +"Dit is de server waar de LAM-daemon script opgeslagen is. LDAP Account " +"Manager zal een SSH connectie naar deze server opbouwen met de " +"gebruikersnaam en wachtwoord welke bij de login gegeven zijn. Meerdere " +"servers worden gescheiden door puntkomma's. U kunt een beschrijvende naam " +"toevoegen na een dubbele punt." + +#: ../help/help.inc:93 +msgid "" +"This is a list of valid DN entries of all users that are allowed to login to " +"LDAP Account Manager. Please enter one DN per line." +msgstr "" +"Dit is een lijst van valide DN items van alle gebruikers die het toegestaan " +"zijn om in te loggen in LDAP Account Manager. Voer een DN per regel in." + +#: ../templates/3rdParty/pla/lib/PageRender.php:881 +msgid "This is a structural ObjectClass and cannot be removed." +msgstr "Dit is een structurele objectClass en kan niet worden verwijderd." + +#: ../lib/modules/nisObject.inc:74 ../lib/modules/automount.inc:73 +#: ../lib/modules/oracleService.inc:70 +msgid "This is an optional description for this entry." +msgstr "Dit is een optionele beschrijving voor dit item." + +#: ../help/help.inc:223 +msgid "" +"This is needed to find the LDAP DNs of your user accounts. E.g. if you use " +"\"uid\" and your user inputs \"miller\" then LAM will search for an account " +"with uid=miller." +msgstr "" +"Dit is nodig om de LDAP-DN uw gebruikersaccounts te vinden. Bijv. Als u " +"gebruik maakt \"uid\" en uw gebruikersnaam input is \"molenaar\" dan LAM zal " +"zoeken naar een account met uid=molenaar." + +#: ../lib/modules/zarafaDynamicGroup.inc:199 ../lib/modules/ipHost.inc:117 +#: ../lib/modules/posixGroup.inc:608 ../lib/modules/device.inc:142 +#: ../lib/modules/eduPerson.inc:246 ../lib/modules/eduPerson.inc:248 +#: ../lib/modules/zarafaAddressList.inc:170 +#: ../lib/modules/posixAccount.inc:131 ../lib/modules/inetOrgPerson.inc:100 +#: ../lib/modules/aliasEntry.inc:86 ../lib/modules/qmailGroup.inc:433 +#: ../lib/modules/qmailGroup.inc:434 ../lib/modules/qmailGroup.inc:435 +msgid "This is not a valid DN!" +msgstr "Dit is geen geldige DN!" + +#: ../lib/modules/sambaSamAccount.inc:109 +msgid "This is not a valid RID number!" +msgstr "Dit is geen geldig RID nummer!" + +#: ../lib/modules/sambaGroupMapping.inc:604 +msgid "This is not a valid Samba 3 group type!" +msgstr "Dit is geen geldige Samba 3 groep!" + +#: ../lib/modules/eduPerson.inc:250 +msgid "This is not a valid list of DNs!" +msgstr "Dit is geen geldige lijst van DNs!" + +#: ../lib/modules/qmailGroup.inc:436 ../lib/modules/qmailGroup.inc:437 +msgid "This is not a valid option." +msgstr "Dit is geen geldige optie." + +#: ../lib/modules/inetLocalMailRecipient.inc:73 +msgid "This is one of the users public email addresses." +msgstr "Dit is een van de publieke e-mail adressen van de gebruiker." + +#: ../help/help.inc:84 +msgid "" +"This is only needed for TLS/SSL connections. By default, LAM will use the " +"certificate authorities installed on your system. If you have a private CA " +"in your company you can upload your CA certificates here and override the " +"system certificates." +msgstr "" +"Dit is alleen nodig voor TLS / SSL-verbindingen. Standaard zal LAM de " +"certificaat autoriteiten gebruiken die op uw systeem geïnstalleerd zijn. Als " +"u een eigen CA in uw bedrijf gebruikt, kunt u uw CA-certificaten hier " +"uploaden. " + +#: ../lib/modules/asteriskAccount.inc:104 +msgid "" +"This is the ID of the user in the Asterisk database. It may contain digits " +"and letters (e.g. user1 or 200134)." +msgstr "" +"Dit is het ID van de gebruiker in de Asterisk database. Het kan cijfers en " +"letters bevatten (bijv. user1 of 200134)." + +#: ../lib/modules/freeRadius.inc:85 +msgid "This is the IP address for the user (e.g. 123.123.123.123)." +msgstr "Dit is het IP adres voor de gebruiker (bijv. 123.123.123.123)." + +#: ../lib/modules/ipHost.inc:66 +msgid "" +"This is the IP address of the network card of the device (e.g. " +"123.123.123.123)." +msgstr "" +"Dit is het IP adres van de netwerkinterface van het device (bijv. " +"123.123.123.123)." + +#: ../lib/modules/ipHost.inc:78 +msgid "This is the LDAP DN of the host's manager." +msgstr "Dit is de LDAP-DN van de manager van de host." + +#: ../lib/modules/inetOrgPerson.inc:671 ../lib/modules/inetOrgPerson.inc:675 +msgid "" +"This is the LDAP DN of the user's manager. Use this property to represent " +"hierarchies in your company." +msgstr "" +"Dit is de LDAP DN van de gebruikersbeheerder. Gebruik deze eigenschap om " +"hierarchie in je bedrijf te representeren." + +#: ../lib/modules/customFields.inc:117 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an activated " +"state. The value is case-insensitive." +msgstr "" +"Dit is het LDAP-kenmerk van de waarde die het vakje zet in een geactiveerde " +"toestand. De waarde is niet hoofdlettergevoelig." + +#: ../lib/modules/customFields.inc:121 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an deactivated " +"state. The value is case-insensitive." +msgstr "" +"Dit is het LDAP-kenmerk van de waarde die het vakje zet in een uitgeschakeld " +"staat. De waarde is niet hoofdlettergevoelig." + +#: ../lib/modules/ieee802device.inc:69 +msgid "" +"This is the MAC address of the network card of the device (e.g. 00:01:02:DE:" +"EF:18)." +msgstr "" +"Dit is het MAC adres van de netwerkinterface van het device (bijv. 00:02:DE:" +"EF:18)." + +#: ../lib/modules/sambaSamAccount.inc:325 +msgid "This is the SID of the user's primary Windows group." +msgstr "Dit is de SID van de primaire Windows groep van de gebruiker." + +#: ../help/help.inc:102 +msgid "" +"This is the absolute path to an external script for setting quotas and " +"creating home directories." +msgstr "" +"Dit is het absolute pad naar een extern script waarmee quota's ingesteld " +"kunnen worden en homedirectories gemaakt kunnen worden." + +#: ../lib/modules/mitKerberos.inc:157 ../lib/modules/heimdalKerberos.inc:125 +msgid "This is the account's Kerberos password." +msgstr "Dit is het account Kerberos wachtwoord." + +#: ../lib/modules/sambaSamAccount.inc:263 +msgid "This is the account's Windows password." +msgstr "Dit is het Windows wachtwoord van het account." + +#: ../lib/modules/sambaSamAccount.inc:260 ../lib/modules/windowsUser.inc:124 +msgid "This is the account's full name on Windows systems." +msgstr "Dit is de volledige naam van het account op Windows systemen." + +#: ../lib/modules/ppolicyUser.inc:56 +msgid "This is the active password policy for this account." +msgstr "Dit is het actieve wachtwoordbeleid voor deze account." + +#: ../lib/modules/passwordSelfReset.inc:85 +msgid "" +"This is the answer to the security question. It allows users to reset their " +"password." +msgstr "" +"Dit is het antwoord op de beveiligingsvraag. Het stelt gebruikers in staat " +"om zelf hun wachtwoord opnieuw in te stellen." + +#: ../lib/modules/mitKerberos.inc:145 +msgid "This is the date of the user's last login." +msgstr "Dit is de datum van de laatste keer inloggen van de gebruiker." + +#: ../lib/modules/mitKerberos.inc:125 ../lib/modules/heimdalKerberos.inc:103 +msgid "This is the date when the account will expire." +msgstr "Dit is de datum waarop het account zal verlopen." + +#: ../lib/modules/sambaSamAccount.inc:347 ../lib/modules/shadowAccount.inc:194 +msgid "This is the date when the account will expire. Format: DD-MM-YYYY" +msgstr "Dit is de datum waarop het account zal verlopen. Format: DD-MM-YYYY" + +#: ../lib/modules/mitKerberos.inc:141 ../lib/modules/sambaSamAccount.inc:398 +msgid "This is the date when the user changed his password." +msgstr "Dit is de datum wanneer de gebruiker zijn wachtwoord veranderde." + +#: ../lib/modules/shadowAccount.inc:202 +msgid "" +"This is the date when the user changed his password. If you specify a " +"maximum password age then you can force a password change here." +msgstr "" +"Dit is de dag waarop de gebruiker zijn wachtwoord veranderde. Als u een " +"maximum wachtwoord leeftijd opgeeft dan kunt u hier een wachtwoord " +"veranderen afdwingen." + +#: ../lib/modules/sambaGroupMapping.inc:147 +msgid "This is the group name which will be shown in Windows." +msgstr "Dit is de groepsnaam die getoond zal worden in Windows." + +#: ../lib/modules/windowsHost.inc:83 +msgid "This is the host's location (e.g. Munich, server room 3)." +msgstr "Dit is de locatie van de host (bijvoorbeeld München, serverruimte 3)." + +#: ../help/help.inc:187 +msgid "" +"This is the identifier for the relative DN value. It must be one of the " +"given allowed LDAP attributes (e.g. user accounts usually use \"uid\" while " +"groups use \"cn\")." +msgstr "" +"Hiermee wordt de relatieve DN waarde geidentificeerd. Het moet een van de " +"gegeven toegestane LDAP attributen zijn (bijv. gebruikersaccount is " +"gewoonlijk \"uid\" terwijl groepen meestal \"cn\" gebruiken)." + +#: ../lib/modules/selfRegistration.inc:99 +msgid "" +"This is the identifier for the relative DN value. LAM will use \"uid\" by " +"default." +msgstr "" +"Dit is de identificatie voor de relatieve DN waarde. LAM zal \"uid\" " +"standaard gebruiken." + +#: ../lib/modules/passwordSelfReset.inc:101 +msgid "" +"This is the label for the link to the password self reset. If empty \"Forgot " +"password?\" will be used." +msgstr "" +"Dit is het label voor de link naar de wachtwoord zelf reset. Indien leeg dan " +"zal \"Forgot password?\" worden gebruikt. " + +#: ../lib/modules/selfRegistration.inc:58 +msgid "" +"This is the label for the link to the self registration. If empty \"Register " +"new account\" will be used." +msgstr "" +"Dit is het label voor de link naar de zelf registratie. Indien leeg dan zal " +"\"Registreer nieuwe account\" worden gebruikt." + +#: ../help/help.inc:88 +msgid "" +"This is the list of attributes to show in the account list. The entries can " +"either be predefined values, \"#attribute\", or individual ones, \"attribute:" +"description\". Several entries are separated by semicolons." +msgstr "" +"Dit is een lijst van attributen die getoond worden in de account lijst. De " +"items kunnen ofwel voorgedefinieerde waarden zijn, \"#attribute\", of " +"afzonderlijke, \"attribute:description\". De verschillende items worden " +"door een puntkomma gescheiden." + +#: ../lib/modules/posixAccount.inc:494 +msgid "This is the list of valid login shells." +msgstr "Dit is de lijst met geldige login shells." + +#: ../lib/modules/asteriskAccount.inc:108 +msgid "" +"This is the machine id (e.g. IP address or host name) from which the user " +"can call/receive calls." +msgstr "" +"Dit is het machine-id (bijvoorbeeld IP-adres of de hostnaam), waarvan de " +"gebruiker kan bellen / gebeld worden." + +#: ../lib/modules/inetLocalMailRecipient.inc:81 +msgid "This is the mail server for the user." +msgstr "Dit is de mailserver voor de gebruiker." + +#: ../lib/modules/qmailUser.inc:220 +msgid "This is the mailbox size limit in bytes." +msgstr "Dit is de mailbox limiet in bytes." + +#: ../lib/modules/passwordSelfReset.inc:93 +msgid "This is the minimum length for answers to the security question." +msgstr "Dit is de minimale lengte voor antwoorden op de beveilingsvragen." + +#: ../lib/modules/nisnetgroup.inc:84 ../lib/modules/organizationalRole.inc:86 +#: ../lib/modules/groupOfNames.inc:86 +msgid "This is the name of this group." +msgstr "Dit is de naam van deze groep." + +#: ../lib/modules/posixAccount.inc:561 +msgid "" +"This is the natural name of the host. If empty, the host name will be used." +msgstr "" +"Dit is de algemene naam van de host; indien leeg wordt de hostnaam gebruikt." + +#: ../lib/modules/pykotaUser.inc:109 +msgid "This is the natural name of the user." +msgstr "Dit is de natuurlijke naam van de gebruiker." + +#: ../lib/modules/inetOrgPerson.inc:763 +msgid "" +"This is the natural name of the user. If empty, the first and last name is " +"used." +msgstr "" +"Dit is de algemene naam van de gebruiker; indien leeg wordt de voor- en " +"achternaam gebruikt." + +#: ../lib/modules/posixAccount.inc:539 ../lib/modules/windowsUser.inc:103 +msgid "" +"This is the natural name of the user. If empty, the first and last name or " +"user name is used." +msgstr "" +"Dit is de algemene naam van de gebruiker; indien leeg wordt de voor- en " +"achternaam of de gebruikersnaam gebruikt." + +#: ../lib/modules/sambaDomain.inc:122 +msgid "" +"This is the number of bad logon attempts (0 - 999) before the account is " +"deactivated. 0 means unlimited attempts." +msgstr "" +"Dit is het aantal slechte aanmeldingspogingen (0 - 999) voordat de account " +"wordt gedeactiveerd. 0 betekent ongelimiteerd pogingen." + +#: ../lib/modules/sambaDomain.inc:106 +msgid "" +"This is the number of passwords which are saved to prevent that users reuse " +"old passwords." +msgstr "" +"Dit is het aantal wachtwoorden die zijn opgeslagen om te voorkomen dat " +"gebruikers oude wachtwoorden hergebruiken." + +#: ../help/help.inc:98 +msgid "" +"This is the number of rows to show in the account list. If more entries are " +"found the list will be split into several pages." +msgstr "" +"Dit is het aantal rijen die getoond worden in de account list. Als er meer " +"items zin wordt de lijst verdeel over meerdere pagina's." + +#: ../lib/modules/sambaSamAccount.inc:356 +msgid "This is the path to the user's home directory." +msgstr "Dit is het pad naar de homedirectory van de gebruiker." + +#: ../lib/modules/sambaGroupMapping.inc:155 +msgid "" +"This is the relative ID (similar to UID on Unix) for Windows accounts. If " +"you leave this empty LAM will calculate the RID from the UID. This can be " +"either a number or the name of a special group:" +msgstr "" +"Dit is de relatieve ID (vergelijkbaar met UID in Unix) voor Window accounts. " +"Als het niet gevuld wordt zal LAM een RID bepalen op basis van de UID. Dit " +"kan ofwel een nummer of de naam van een speciale groep zijn." + +#: ../lib/modules/sambaSamAccount.inc:331 +msgid "" +"This is the relative ID number for your Windows account. You can either " +"enter a number or one of these special accounts: " +msgstr "" +"Dit is het relatieve ID nummer van je Windows account. Een nummer kan " +"ingegeven worden of een van de deze speciale accounts:" + +#: ../lib/modules/sambaSamAccount.inc:335 +msgid "" +"This is the relative ID number for your host account. If you leave this " +"empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" +"Dit is het relatieve ID nummer van je host account. Als het niet ingevuld " +"wordt zal LAM uidNumber*2 + sambaAlgorithmicRidBase gebruiken." + +#: ../lib/modules/imapAccess.inc:113 +msgid "" +"This is the separator for the mailbox path. Usually, this is \".\" but e.g. " +"Cyrus with \"unixhierarchysep\" will require \"/\"." +msgstr "" +"Dit is het scheidingsteken voor de mailbox pad. Meestal is dit \".\" , Maar " +"bijv. Cyrus met \"unixhierarchysep\" vereist \"/\". " + +#: ../help/help.inc:59 +msgid "" +"This is the server address of your LDAP server. Use ldap:// for unencrypted " +"LDAP connections or TLS encrypted connections. LDAP+SSL (LDAPS) encrypted " +"connections are specified with ldaps://. The port value is optional." +msgstr "" +"Dit is het adres van de LDAP server. Gebruik ldap:// voor een standaard LDAP " +"connectie en ldaps:// voor een encrypted (met server certificaat) " +"verbinding. De poortwaarde is optioneel." + +#: ../help/help.inc:78 +msgid "This is the suffix for the LDAP tree viewer." +msgstr "Dit is achtervoegsel voor de LDAP boom browser." + +#: ../help/help.inc:72 +msgid "" +"This is the suffix of the LDAP tree from where to search for LDAP entries. " +"Only entries in this subtree will be displayed in the account list. When " +"creating a new accont this will be the DN where it is saved." +msgstr "" +"Dit is achtervoegsel voor de LDAP boom vanwaar LDAP entrees gezocht worden. " +"Alleen entrees in deze subtree worden getoond in de account lijst. Wanneer " +"een nieuw account word gecreeerd zal dit de DN zijn waar het wordt " +"opgeslagen." + +#: ../lib/modules/inetLocalMailRecipient.inc:69 +msgid "This is the target email address for the user's mails." +msgstr "Dit is het uiteindelijke e-mail adres voor de gebruikers berichten." + +#: ../lib/modules/customScripts.inc:53 ../lib/modules/uidObject.inc:60 +#: ../lib/modules/aliasEntry.inc:62 +msgid "This is the target of this alias entry." +msgstr "Dit is een ontvanger voor deze alias." + +#: ../lib/modules/sambaDomain.inc:134 +msgid "" +"This is the time (in minutes) for which the user may not log in after the " +"account was locked. -1 means forever." +msgstr "" +"Dit is de tijd (in minuten) waarin de gebruiker niet kan inloggen nadat de " +"account was geblokkeerd. -1 Betekent voor altijd." + +#: ../help/help.inc:147 +msgid "" +"This is the time (in minutes) of inactivity after which a user is " +"automatically logged off." +msgstr "" +"Dit is de tijd (in minuten) van inactiviteit, waarna een gebruiker " +"automatisch wordt afgemeld." + +#: ../help/help.inc:108 +msgid "" +"This is the time in minutes which LAM caches its LDAP searches. Shorter " +"times will stress LDAP more but decrease the possibility that changes are " +"not identified." +msgstr "" +"Dit is de tijd in minuten waarin LAM de zoekresultaten tussentijds bewaart. " +"Een kortere tijd belast LDAP meer maar vermindert de kans dat veranderingen " +"niet gezien worden." + +#: ../lib/modules/sambaSamAccount.inc:350 +msgid "" +"This is the time zone of your Samba server. LAM needs this information to " +"display the logon hours correctly." +msgstr "" +"Dit is de tijdzone van uw Samba server. LAM heeft deze informatie nodig voor " +"het correct weergeven van logon uren." + +#: ../lib/modules/sambaSamAccount.inc:322 +msgid "This is the user's primary Windows group." +msgstr "Dit is de primaire Windows groep van de gebruiker." + +#: ../lib/modules/puppetClient.inc:89 +msgid "" +"This is this node's parent. All classes and variables are inherited from " +"this node." +msgstr "" +"Dit is ouder van de node. Alle klassen en variabelen zijn overgenomen van " +"deze node." + +#: ../lib/modules/asteriskAccount.inc:156 +msgid "" +"This is typically used to allow incoming calls (e.g. from FWD) while having " +"a type=friend entry defined with username and password." +msgstr "" +"Dit wordt meestal gebruikt om inkomende gesprekken (bijv. van FWD) mogelijk " +"maken wanneer ze een type=friend item gedefinieerd hebben met gebruikersnaam " +"en wachtwoord." + +#: ../lib/modules/zarafaUser.inc:117 +msgid "This is used to mark this account as resource." +msgstr "Dit wordt gebruikt om deze account te markeren als bron." + +#: ../lib/modules/posixAccount.inc:127 +msgid "This login shell is invalid!" +msgstr "De login shell in ongeldig!" + +#: ../lib/modules/inetLocalMailRecipient.inc:232 +msgid "This mail address is already in use:" +msgstr "Dit e-mailadres is al in gebruik:" + +#: ../lib/modules/imapAccess.inc:107 +msgid "This mailbox will be created/deleted." +msgstr "Deze mailbox wordt aangemaakt / verwijderd." + +#: ../lib/modules.inc:1245 +msgid "This may overwrite existing values with profile data. Continue?" +msgstr "Dit kan bestaande waarden overschrijven met profielgegevens. Doorgaan?" + +#: ../lib/modules/customFields.inc:113 +msgid "" +"This message is shown when the field value does not match the validation " +"expression." +msgstr "" +"Dit bericht wordt weergegeven als de waarde in het veld niet overeenkomt met " +"de validatie expressie." + +#: ../templates/schema/schema.php:350 +msgid "This object class is obsolete." +msgstr "Deze objectklasse is obsoleet." + +#: ../lib/modules/imapAccess.inc:84 +msgid "" +"This option allows you to disable the certificate check of your IMAP server " +"certificate. Disabling the certificate check is not recommended." +msgstr "" +"Deze optie stelt u in staat de certificaat controle van uw IMAP-server-" +"certificaat uit te schakelen. Het uitschakelen van de certificaat controle " +"wordt niet aanbevolen." + +#: ../lib/modules/sambaSamAccount.inc:341 +msgid "This option defines the allowed logon hours for this account." +msgstr "Deze optie bepaalt de toegestane login uren voor dit account." + +#: ../lib/modules/sambaSamAccount.inc:344 +msgid "" +"This option defines the allowed logon hours for this account. The format is " +"the same as for the LDAP attribute. The 24*7 hours are represented as 168 " +"bit which are saved as 21 hex (21*8 = 168) values. The first bit represents " +"Sunday 0:00 - 0:59 in GMT." +msgstr "" +"Deze optie bepaalt de toegestane login uren voor dit account. Het formaat is " +"hetzelfde als voor het LDAP attribuut. De 24*7 uren worden als 168 Bit " +"gerepresenteert, die als 21 Hex-waarde (21*8 = 168) opgeslagen wordt. Het " +"eerste bit representeert zondag 00:00 - 00:59 GMT." + +#: ../lib/modules/asteriskExtension.inc:192 +msgid "This pair of extension name and priority already exists." +msgstr "Deze combinatie van extensie naam en prioriteit bestaat reeds." + +#: ../lib/modules/sambaSamAccount.inc:365 +msgid "This program is run after the login." +msgstr "Dit programma wordt uitgevoerd nadat er is ingelogd." + +#: ../lib/modules/sambaSamAccount.inc:389 +msgid "This specifies the reconnect policy." +msgstr "Dit specificeert het opnieuw verbinding-beleid." + +#: ../lib/modules/zarafaDynamicGroup.inc:96 +#: ../lib/modules/zarafaContact.inc:107 ../lib/modules/zarafaGroup.inc:113 +#: ../lib/modules/zarafaAddressList.inc:84 ../lib/modules/zarafaUser.inc:172 +#: ../lib/modules/zarafaServer.inc:93 +msgid "" +"This specifies the used Zarafa LDAP schema. Select LDAP for e.g. OpenLDAP, " +"Apache Directory, OpenDJ and other non-Windows based LDAP servers. If you " +"run Zarafa against Samba 4 or Active Directory please select Active " +"Directory." +msgstr "" +"Dit specificeert het gebruikte Zarafa LDAP-schema. Selecteer LDAP voor bijv. " +"OpenLDAP, Apache Directory, OpenDJ en andere niet-Windows gebaseerde LDAP-" +"servers. Als u Zarafa gebruikt met Samba 4 of Active Directory selecteer dan " +"Active Directory." + +#: ../lib/modules/sambaSamAccount.inc:386 +msgid "This specifies what to do when the client connection is broken." +msgstr "" +"Dit geeft aan wat te doen wanneer de client verbinding wordt verbroken." + +#: ../help/help.inc:227 +msgid "" +"This text is displayed on top of the self service login page. You can also " +"input HTML code here." +msgstr "" +"Deze tekst wordt getoond op de top van de zelf-service login pagina. U kunt " +"hier ook HTML-codes invoeren." + +#: ../help/help.inc:229 +msgid "" +"This text is displayed on top of the self service main page. You can also " +"input HTML code here." +msgstr "" +"Deze tekst wordt getoond op de top van de zelf-service hoofd pagina. U kunt " +"hier ook HTML-codes invoeren." + +#: ../help/help.inc:239 +msgid "" +"This text is placed as label for the password field on the login page. LAM " +"will use \"Password\" if you do not enter any text." +msgstr "" +"Deze tekst is geplaatst als label voor het veld voor het wachtwoord op de " +"inlogpagina. LAM zal gebruik maken van\"Password\" als u geen tekst invoert." + +#: ../help/help.inc:225 +msgid "" +"This text should shortly describe your selected LDAP search attribute (e.g. " +"email or user name)." +msgstr "" +"Deze tekst geeft een korte beschrijven van het door u geselecteerde LDAP-" +"zoekopdracht attribuut (bijvoorbeeld e-mail of gebruikersnaam)." + +#: ../lib/modules/selfRegistration.inc:107 +#: ../lib/modules/passwordSelfReset.inc:157 +msgid "This text will be printed on top of the page." +msgstr "Deze tekst zal bovenaan iedere pagina verschijnen." + +#: ../lib/modules/qmailUser.inc:240 +msgid "" +"This text will be sent as reply to all incoming mails if the delivery mode " +"is set to autoreply." +msgstr "" +"Deze tekst wordt verzonden als antwoord op alle inkomende e-mails indien de " +"levering is ingesteld op automatische antwoord." + +#: ../lib/tools/pdfEdit.inc:53 +msgid "This tool allows you to customize the PDF pages." +msgstr "Dit hulpmiddel maakt het mogelijk de PDF pagina's aan te passen." + +#: ../templates/lists/changePassword.php:46 +#: ../templates/lists/changePassword.php:248 +msgid "This user is not supported or was not found." +msgstr "Deze gebruiker wordt niet ondersteund of is niet gevonden." + +#: ../lib/modules/windowsUser.inc:116 +msgid "This user name is only used for old Windows versions (e.g. NT4, W98)." +msgstr "" +"Deze gebruikersnaam wordt alleen gebruikt voor oude Windows-versies " +"(bijvoorbeeld NT4, W98)." + +#: ../templates/lists/userlink.php:61 +msgid "This user was not found!" +msgstr "Deze gebruiker is niet aangetroffen!" + +#: ../lib/modules/zarafaUser.inc:414 +msgid "This value can only be \"Room\" or \"Equipment\"." +msgstr "Deze waarde kan alleen maar \"Room\" of \"Equipment\" zijn." + +#: ../lib/modules/zarafaDynamicGroup.inc:204 +#: ../lib/modules/zarafaDynamicGroup.inc:205 +#: ../lib/modules/zarafaContact.inc:189 ../lib/modules/zarafaContact.inc:190 +#: ../lib/modules/zarafaGroup.inc:219 ../lib/modules/zarafaGroup.inc:220 +#: ../lib/modules/zarafaGroup.inc:221 ../lib/modules/zarafaAddressList.inc:171 +#: ../lib/modules/zarafaAddressList.inc:172 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 ../lib/modules/posixAccount.inc:128 +#: ../lib/modules/zarafaUser.inc:421 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:424 ../lib/modules/zarafaUser.inc:425 +#: ../lib/modules/zarafaUser.inc:426 ../lib/modules/zarafaUser.inc:427 +#: ../lib/modules/ppolicyUser.inc:97 ../lib/modules/inetOrgPerson.inc:108 +#: ../lib/modules/zarafaServer.inc:179 +msgid "This value can only be \"true\" or \"false\"." +msgstr "Deze waarde kan alleen maar \"true\" of \"false\" zijn." + +#: ../lib/modules/zarafaUser.inc:422 +msgid "This value can only be \"true\", \"false\" or \"system\"." +msgstr "Deze waarde kan alleen maar \"true\", \"false\" of \"system\" zijn." + +#: ../lib/modules/posixGroup.inc:606 +msgid "This value must be a list of user names separated by semicolons." +msgstr "" +"Deze waarde moet een lijst met gebruikersnamen zijn gescheiden door een " +"puntkomma." + +#: ../help/help.inc:264 +msgid "This will create a new organisational unit under the selected one." +msgstr "" +"Dit zal een nieuwe organisatie eenheid creëren onder de geselecteerde " +"eenheid." + +#: ../lib/modules/posixAccount.inc:482 +msgid "This will create the user's home directory on the specified server." +msgstr "" +"Dit zal leiden tot het aanmaken van de homedirectory van de gebruiker op de " +"opgegeven server." + +#: ../help/help.inc:266 +msgid "" +"This will delete the selected organisational unit. The OU has to be empty." +msgstr "" +"Dit zal de geselecteerde organisatie eenheid verwijderen. De OU moet leeg " +"zijn." + +#: ../help/help.inc:135 +msgid "This will delete the selected profile." +msgstr "Dit zal het geselecteerde profiel verwijderen." + +#: ../lib/modules/kolabGroup.inc:118 ../lib/modules/puppetClient.inc:109 +#: ../lib/modules/qmailUser.inc:264 ../lib/modules/zarafaContact.inc:88 +#: ../lib/modules/posixGroup.inc:538 ../lib/modules/eduPerson.inc:151 +#: ../lib/modules/pykotaGroup.inc:130 ../lib/modules/sambaSamAccount.inc:404 +#: ../lib/modules/posixAccount.inc:433 ../lib/modules/zarafaUser.inc:137 +#: ../lib/modules/pykotaUser.inc:161 ../lib/modules/shadowAccount.inc:198 +#: ../lib/modules/qmailGroup.inc:233 +#: ../lib/modules/authorizedServiceObject.inc:90 +#: ../lib/modules/passwordSelfReset.inc:153 ../lib/modules/hostObject.inc:84 +msgid "This will enable the extension automatically if this profile is loaded." +msgstr "" +"Als dit profiel wordt geladen, dan zal dit de extensie automatisch activeren." + +#: ../lib/modules/customScripts.inc:93 +msgid "" +"This will hide the custom scripts tab when you edit an account. Manual " +"actions are not possible when the tab is not visible." +msgstr "" +"Dit zal het tabblad aangepaste scripts te verbergen als u een account wilt " +"bewerken. Handmatige handelingen zijn niet mogelijk wanneer het tabblad niet " +"zichtbaar is." + +#: ../lib/modules/sambaSamAccount.inc:266 +msgid "This will reset the host's password to a default value." +msgstr "Dtr zal het wachtwoord van de host terugzetten naar de default waarde." + +#: ../templates/lists/changePassword.php:320 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail." +msgstr "" +"Dit zal een willekeurig wachtwoord genereren en weergeven op het scherm of " +"via e-mail sturen naar de gebruiker. " + +#: ../help/help.inc:245 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail. Please edit your LAM server profile to setup the mail " +"settings." +msgstr "" +"Dit zal een willekeurig wachtwoord genereren en weergeven op het scherm of " +"via e-mail sturen naar de gebruiker. Bewerk uw LAM server profiel voor het " +"beheren van de mail-instellingen." + +#: ../lib/modules/kolabGroup.inc:114 ../lib/modules/kolabUser.inc:179 +#: ../lib/modules/kolabSharedFolder.inc:167 +msgid "" +"This will set a special flag on the account which tells Kolabd to remove it. " +"Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes)." +msgstr "" +"Dit zal een speciale vlag instellen voor dit account wat aan Kolabd " +"duidelijk maakt het te verwijderen. Gebruik het om op een nette manier Kolab " +"accounts te verwijderen (bijv. dit verwijdert de postbussen)." + +#: ../lib/modules/qmailUser.inc:212 +msgid "" +"This will set the user's account status. You may disable the mail account " +"here." +msgstr "" +"Dit zal de gebruiker account status instellen. U kunt de mail-account hier " +"uitschakelen." + +#: ../lib/modules/sambaSamAccount.inc:1380 +msgid "Thursday" +msgstr "Donderdag" + +#: ../lib/modules/mitKerberos.inc:136 ../lib/modules/mitKerberos.inc:195 +#: ../lib/modules/mitKerberos.inc:230 ../lib/modules/mitKerberos.inc:254 +#: ../lib/modules/mitKerberos.inc:355 ../lib/modules/mitKerberos.inc:775 +#: ../lib/modules/heimdalKerberos.inc:110 +#: ../lib/modules/heimdalKerberos.inc:164 +#: ../lib/modules/heimdalKerberos.inc:199 +#: ../lib/modules/heimdalKerberos.inc:221 +#: ../lib/modules/heimdalKerberos.inc:302 +#: ../lib/modules/heimdalKerberos.inc:687 +msgid "Ticket lifetime" +msgstr "Ticket levensduur" + +#: ../lib/modules/mitKerberos.inc:293 ../lib/modules/mitKerberos.inc:294 +#: ../lib/modules/heimdalKerberos.inc:257 +#: ../lib/modules/heimdalKerberos.inc:258 +msgid "Ticket lifetime must be a number." +msgstr "Ticket levensduur moet een getal zijn." + +#: ../lib/modules/sambaSamAccount.inc:1402 +msgid "Time" +msgstr "Tijd" + +#: ../lib/modules/sambaSamAccount.inc:370 +msgid "Time limit" +msgstr "Tijdslimiet" + +#: ../lib/modules/sambaSamAccount.inc:349 +#: ../lib/modules/sambaSamAccount.inc:580 +msgid "Time zone" +msgstr "Tijdzone" + +#: ../lib/modules/bindDLZ.inc:101 ../lib/modules/bindDLZ.inc:105 +#: ../lib/modules/bindDLZ.inc:110 ../lib/modules/bindDLZ.inc:115 +#: ../lib/modules/bindDLZ.inc:120 ../lib/modules/bindDLZ.inc:125 +#: ../lib/modules/bindDLZ.inc:130 ../lib/modules/bindDLZ.inc:261 +#: ../lib/modules/bindDLZ.inc:274 ../lib/modules/bindDLZ.inc:294 +#: ../lib/modules/bindDLZ.inc:307 ../lib/modules/bindDLZ.inc:338 +#: ../lib/modules/bindDLZ.inc:370 ../lib/modules/bindDLZ.inc:382 +#: ../lib/modules/bindDLZ.inc:409 ../lib/modules/bindDLZ.inc:430 +#: ../lib/modules/bindDLZ.inc:476 ../lib/modules/bindDLZ.inc:479 +#: ../lib/modules/bindDLZ.inc:481 ../lib/modules/bindDLZ.inc:483 +#: ../lib/modules/bindDLZ.inc:485 ../lib/modules/bindDLZ.inc:487 +#: ../lib/modules/bindDLZ.inc:489 ../lib/modules/bindDLZ.inc:491 +#: ../lib/modules/bindDLZ.inc:493 ../lib/modules/bindDLZ.inc:658 +#: ../lib/modules/bindDLZ.inc:761 ../lib/modules/bindDLZ.inc:840 +#: ../lib/modules/bindDLZ.inc:929 ../lib/modules/bindDLZ.inc:1041 +#: ../lib/modules/bindDLZ.inc:1173 ../lib/modules/bindDLZ.inc:1251 +#: ../lib/modules/bindDLZ.inc:1377 ../lib/modules/bindDLZ.inc:1480 +#: ../lib/modules/bindDLZ.inc:1500 ../lib/modules/bindDLZ.inc:1521 +#: ../lib/modules/bindDLZ.inc:1555 ../lib/modules/bindDLZ.inc:1580 +#: ../lib/modules/bindDLZ.inc:1610 +msgid "Timeout" +msgstr "Timeout" + +#: ../lib/modules/bindDLZ.inc:437 +msgid "Timeouts" +msgstr "Timeouts" + +#: ../lib/modules/pykotaUser.inc:654 ../lib/modules/pykotaUser.inc:1003 +msgid "Title" +msgstr "Titel" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:45 +msgid "To" +msgstr "Tot" + +#: ../lib/modules/posixAccount.inc:531 +msgid "To disable login use /bin/false." +msgstr "Om login te disable gebruik /bin/false." + +#: ../lib/modules/sambaSamAccount.inc:574 +msgid "Tokyo, Seoul, Osaka, Yakutsk" +msgstr "Tokyo, Seoul, Osaka, Yakutsk" + +#: ../templates/config/confmain.php:406 +msgid "Tool settings" +msgstr "Hulpmiddel instellingen" + +#: ../templates/tools.php:63 ../templates/main_header.php:147 +msgid "Tools" +msgstr "Hulpmiddelen" + +#: ../templates/serverInfo.php:357 +msgid "Total" +msgstr "Totaal" + +#: ../templates/serverInfo.php:242 ../templates/serverInfo.php:247 +msgid "Total connections" +msgstr "Totaal aantal verbindingen" + +#: ../templates/3rdParty/pla/lib/export_functions.php:202 +msgid "Total entries" +msgstr "Totaal aantal entrees" + +#: ../lib/modules/pykotaUser.inc:141 +msgid "Total money paid by the user." +msgstr "Totale bedrag betaald door de gebruiker." + +#: ../lib/modules/pykotaUser.inc:140 ../lib/modules/pykotaUser.inc:264 +#: ../lib/modules/pykotaUser.inc:586 ../lib/modules/pykotaUser.inc:901 +#: ../lib/modules/pykotaUser.inc:954 +msgid "Total paid" +msgstr "Totaal betaald" + +#: ../lib/modules/pykotaUser.inc:282 +msgid "Total paid (read-only)" +msgstr "Totaal betaald (alleen-lezen)" + +#: ../lib/types/user.inc:682 +msgid "Translate GID number to group name" +msgstr "Vertaal GID nummer naar groepsnaam" + +#: ../templates/config/confmain.php:247 ../help/help.inc:77 +msgid "Tree suffix" +msgstr "Achtervoegsel van de boom" + +#: ../templates/multiEdit.php:92 ../templates/main_header.php:178 +msgid "Tree view" +msgstr "LDAP boom" + +#: ../templates/config/confmain.php:567 +msgid "TreeSuffix is invalid!" +msgstr "Achtervoegsel van de boom is niet valide!" + +#: ../lib/modules/sambaSamAccount.inc:1380 +msgid "Tuesday" +msgstr "Dinsdag" + +#: ../templates/multiEdit.php:118 ../templates/selfService/profManage.php:206 +#: ../templates/schema/schema.php:348 ../lib/modules/zarafaUser.inc:116 +#: ../lib/modules/zarafaUser.inc:238 ../lib/modules/zarafaUser.inc:361 +#: ../lib/modules/zarafaUser.inc:535 ../lib/modules/zarafaUser.inc:1251 +#: ../lib/modules/zarafaUser.inc:1797 ../lib/modules/kolabSharedFolder.inc:162 +#: ../lib/modules/kolabSharedFolder.inc:201 +#: ../lib/modules/kolabSharedFolder.inc:241 +#: ../lib/modules/kolabSharedFolder.inc:302 +#: ../lib/modules/kolabSharedFolder.inc:571 +#: ../lib/modules/customFields.inc:100 ../lib/modules/customFields.inc:1070 +#: ../lib/modules/customFields.inc:1702 +msgid "Type" +msgstr "Type" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:210 ../lib/modules/posixAccount.inc:228 +#: ../lib/modules/posixAccount.inc:497 +msgid "UID generator" +msgstr "UID generator" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID has changed. Do you want to change home directory?" +msgstr "De UID is veranderd; moet de homedirectory aangepast worden?" + +#: ../lib/modules/posixAccount.inc:107 +msgid "" +"UID must be a number. It has to be inside the UID range which is defined in " +"your configuration profile." +msgstr "" +"UID moet een getal zijn en het moet liggen binnen de range die in het " +"configuratieprofiel is aangegeven." + +#: ../lib/types/host.inc:95 ../lib/types/user.inc:92 +#: ../lib/modules/qmailUser.inc:112 ../lib/modules/qmailUser.inc:231 +#: ../lib/modules/qmailUser.inc:332 ../lib/modules/qmailUser.inc:418 +#: ../lib/modules/qmailUser.inc:570 ../lib/modules/qmailUser.inc:1142 +#: ../lib/modules/posixAccount.inc:108 ../lib/modules/posixAccount.inc:291 +#: ../lib/modules/posixAccount.inc:383 ../lib/modules/posixAccount.inc:412 +#: ../lib/modules/posixAccount.inc:449 ../lib/modules/posixAccount.inc:453 +#: ../lib/modules/posixAccount.inc:461 ../lib/modules/posixAccount.inc:1433 +#: ../lib/modules/posixAccount.inc:1857 +msgid "UID number" +msgstr "UID nummer" + +#: ../lib/modules/posixAccount.inc:108 +#, php-format +msgid "" +"UID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -uid %s -exec chown %s {} \\;'" +msgstr "" +"UID nummer is veranderd. Om de eigenaar van de bestaande bestanden ook aan " +"te passen voer het volgende commando als root uit: 'find / -uid %s -exec " +"chown %s {} \\;" + +#: ../lib/modules/qmailUser.inc:463 +msgid "UID number is already in use." +msgstr "UID nummer is al in gebruik." + +#: ../lib/modules/posixAccount.inc:99 +msgid "UID ranges for Unix accounts" +msgstr "Range UID voor Unix accounts." + +#: ../lib/modules/sambaSamAccount.inc:307 +msgid "" +"UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced " +"with user and group name." +msgstr "" +"UNC-pad (\\\\server\\share) van de homedirectory. $user en $group worden " +"vervanen door gebruikers- en groepsnaam." + +#: ../lib/modules/windowsUser.inc:248 +msgid "" +"UNC-path (\\\\server\\share\\) of home directory. If no home drive is set " +"then this directory must start with a drive letter (e.g. \"c:\\dir\\user\")." +msgstr "" +"UNC-path (\\\\server\\share\\) van een home directory. Als er geen huis " +"station is ingesteld dan moet deze map beginnen met een stationsletter " +"(bijv. \"c:\\dir\\user\")." + +#: ../lib/modules/eduPerson.inc:119 ../lib/modules/eduPerson.inc:123 +msgid "" +"URI (either URN or URL) that indicates a set of rights to specific resources." +msgstr "" +"URI (hetzij URN of URL), dat een set van rechten voor specifieke resources " +"aangeeft." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1883 +msgid "URL" +msgstr "URL" + +#: ../lib/modules/bindDLZ.inc:1705 ../lib/modules/bindDLZ.inc:1714 +#: ../lib/modules/bindDLZ.inc:1747 ../lib/modules/bindDLZ.inc:2339 +msgid "Unable to add DNS record." +msgstr "Kan geen DNS-record toevoegen." + +#: ../lib/modules/imapAccess.inc:180 +msgid "Unable to change ACL on IMAP server for mailbox deletion." +msgstr "" +"Kan ACL niet wijzigen op de IMAP-server voor het verwijderen van de mailbox." + +#: ../lib/modules/mitKerberos.inc:1155 ../lib/modules/mitKerberos.inc:1159 +#: ../lib/modules/heimdalKerberos.inc:1024 +msgid "Unable to change Kerberos password." +msgstr "Niet in staat om het Kerberos wachtwoord te veranderen." + +#: ../lib/modules/windowsUser.inc:1855 ../lib/modules/windowsUser.inc:1881 +msgid "Unable to change password." +msgstr "Niet in staat om het wachtwoord te wijzigen." + +#: ../templates/selfService/selfServiceMain.php:338 +msgid "" +"Unable to change your account. Maybe you do not have enough rights to change " +"the settings." +msgstr "" +"Niet in staat om uw account te veranderen. Misschien heb je niet genoeg " +"rechten om de instellingen te wijzigen." + +#: ../templates/selfService/selfServiceMain.php:335 +msgid "" +"Unable to change your account. Your changes might violate the password " +"policy." +msgstr "" +"Niet in staat om uw account te veranderen. Uw wijzigingen kunnen in strijd " +"zijn met het wachtwoordbeleid." + +#: ../templates/tests/lamdaemonTest.php:261 ../lib/lamdaemon.inc:76 +#: ../lib/lamdaemon.inc:81 +msgid "Unable to connect to remote server!" +msgstr "Kan geen verbinding maken met externe server!" + +#: ../templates/massDoUpload.php:193 +msgid "Unable to create ZIP file for PDF export." +msgstr "Niet in staat om een ZIP-bestand aan te maken voor PDF-export." + +#: ../lib/modules/selfRegistration.inc:699 +#: ../lib/modules/selfRegistration.inc:703 +msgid "Unable to create account." +msgstr "Niet in staat om de nieuwe account aan te maken." + +#: ../lib/modules/imapAccess.inc:182 +msgid "Unable to create mailbox on IMAP server." +msgstr "Kan mailbox op IMAP-server niet creëren." + +#: ../templates/ou_edit.php:80 +msgid "Unable to create new OU!" +msgstr "Onmogelijk nieuwe OU te maken!" + +#: ../lib/types/automountType.inc:270 +msgid "Unable to create new automount map." +msgstr "Niet in staat om nieuwe automount map te maken." + +#: ../templates/config/profmanage.php:82 +#: ../templates/selfService/profManage.php:59 +msgid "Unable to create new profile!" +msgstr "Onmogelijk nieuw profiel te maken" + +#: ../lib/types/bind.inc:215 +msgid "Unable to create new zone." +msgstr "Kan geen nieuwe zone maken." + +#: ../lib/modules/bindDLZ.inc:1684 +#, php-format +msgid "Unable to delete DNS record \"%s\"." +msgstr "Kan DNS-recocord \"%s\" niet verwijderen." + +#: ../lib/modules/bindDLZ.inc:1693 ../lib/modules/bindDLZ.inc:1743 +msgid "Unable to delete DNS record." +msgstr "Kan DNS-record niet verwijderen." + +#: ../templates/ou_edit.php:97 +msgid "Unable to delete OU!" +msgstr "Onmogelijk OU te verwijderen!" + +#: ../templates/pdfedit/pdfmain.php:94 +msgid "Unable to delete PDF structure!" +msgstr "Onmogelijk PDF struktuur te verwijderen!" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:25 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:57 +msgid "Unable to delete entry, it does not exist" +msgstr "Verwijderen item mislukt, het bestaat niet" + +#: ../lib/pdfstruct.inc:291 ../lib/pdfstruct.inc:303 +msgid "Unable to delete logo file." +msgstr "Kan logo bestand niet verwijderen." + +#: ../lib/modules/imapAccess.inc:181 +msgid "Unable to delete mailbox from IMAP server." +msgstr "Kan mailbox niet verwijderen van IMAP-server." + +#: ../templates/config/profmanage.php:123 +#: ../templates/selfService/profManage.php:87 +#: ../templates/profedit/profilemain.php:108 ../lib/config.inc:154 +#: ../lib/config.inc:166 ../lib/config.inc:173 ../lib/config.inc:181 +msgid "Unable to delete profile!" +msgstr "Onmogelijk profiel te verwijderen!" + +#: ../lib/modules/pykotaPrinter.inc:220 +#, php-format +msgid "Unable to find a printer with name \"%s\"." +msgstr "Niet in staat om een printer met de naam \"%s\" te vinden." + +#: ../lib/modules/posixAccount.inc:2078 ../lib/modules/posixAccount.inc:2087 +#: ../lib/modules/posixAccount.inc:2353 ../lib/modules/nisnetgroup.inc:543 +#: ../lib/modules/groupOfNamesUser.inc:389 +msgid "Unable to find group in LDAP." +msgstr "Onmogelijk groep te vinden in LDAP." + +#: ../lib/modules/passwordSelfReset.inc:950 +msgid "Unable to find password security answer for this account." +msgstr "Geen wachtwoord beveiligingsvragen gevonden voor dit account. " + +#: ../lib/modules/passwordSelfReset.inc:942 +#: ../lib/modules/passwordSelfReset.inc:1161 +msgid "Unable to find password security question for this account." +msgstr "Geen wachtwoord beveiligingsvragen gevonden voor dit account. " + +#: ../lib/modules/organizationalRoleUser.inc:334 +msgid "Unable to find role in LDAP." +msgstr "Niet in staat om de rol te vinden in LDAP." + +#: ../templates/login.php:591 ../templates/login.php:597 +msgid "Unable to find the user name in LDAP." +msgstr "Kan de gebruikersnaam niet vinden in LDAP." + +#: ../lib/modules/passwordSelfReset.inc:933 +#: ../lib/modules/passwordSelfReset.inc:1242 +msgid "Unable to find user account." +msgstr "Kan de gebruikers account niet vinden." + +#: ../templates/config/mainmanage.php:194 +msgid "Unable to import server certificate. Please use the upload function." +msgstr "" +"Niet in staat om het server-certificaat te importeren. Gebruik de " +"uploadfunctie." + +#: ../lib/modules.inc:1529 ../lib/modules.inc:1533 +msgid "Unable to load LDAP entry:" +msgstr "Kan LDAP item niet laden:" + +#: ../lib/profiles.inc:98 ../lib/profiles.inc:102 ../lib/selfService.inc:196 +#: ../lib/selfService.inc:200 +msgid "Unable to load profile!" +msgstr "Onmogelijk profiel te laden!" + +#: ../lib/modules/imapAccess.inc:183 +msgid "Unable to locate mailbox on IMAP." +msgstr "Kan mailbox niet vinden op IMAP." + +#: ../lib/modules/inetOrgPerson.inc:103 +msgid "Unable to process this file." +msgstr "Kan het bestand niet verwerken." + +#: ../templates/3rdParty/pla/lib/import_functions.php:388 +#: ../templates/3rdParty/pla/lib/import_functions.php:393 +msgid "Unable to read file." +msgstr "Kan het bestand niet lezen." + +#: ../lib/modules/selfRegistration.inc:692 +msgid "Unable to register your new account. Please try again." +msgstr "" +"Niet in staat om uw nieuwe account te registreren. Probeer het opnieuw." + +#: ../lib/modules/passwordSelfReset.inc:1440 +#: ../lib/modules/passwordSelfReset.inc:1449 +#: ../lib/modules/passwordSelfReset.inc:1455 +#: ../lib/modules/passwordSelfReset.inc:1464 +msgid "Unable to reset password." +msgstr "Niet in staat om het wachtwoord te reseten. " + +#: ../templates/3rdParty/pla/lib/functions.php:1945 +msgid "Unable to retrieve image" +msgstr "Niet in staat om plaatje op te halen" + +#: ../templates/tests/schemaTest.php:61 ../templates/schema/schema.php:93 +#: ../templates/schema/schema.php:111 ../templates/schema/schema.php:272 +#: ../templates/schema/schema.php:306 +msgid "Unable to retrieve schema!" +msgstr "Niet mogelijk het schema op te halen!" + +#: ../templates/selfService/adminMain.php:251 +#: ../templates/profedit/profilepage.php:124 +msgid "Unable to save profile!" +msgstr "Onmogelijk profiel te bewaren!" + +#: ../lib/account.inc:999 ../lib/account.inc:1037 +msgid "Unable to send mail!" +msgstr "Niet in staat om mail te sturen!" + +#: ../lib/modules/bindDLZ.inc:1734 +#, php-format +msgid "Unable to update DNS record \"%s\"." +msgstr "Kan DNS-recocord \"%s\" niet updaten." + +#: ../lib/pdfstruct.inc:249 ../lib/pdfstruct.inc:259 ../lib/pdfstruct.inc:262 +msgid "Unable to upload logo file." +msgstr "kan logo bestand niet uploaden." + +#: ../lib/modules/passwordSelfReset.inc:999 +#: ../lib/modules/passwordSelfReset.inc:1254 +msgid "Unable to verify your password reset request. Please try again." +msgstr "" +"Niet in staat om uw wachtwoord te resetten verzoek te verifiëren.Probeer " +"opnieuw." + +#: ../lib/modules/selfRegistration.inc:726 +msgid "Unable to verify your user creation request. Please try again." +msgstr "" +"Niet in staat om uw gebruikers aanmaak verzoek te verifiëren.Probeer opnieuw." + +#: ../templates/serverInfo.php:293 +msgid "Unbind" +msgstr "Ontkoppel" + +#: ../lib/modules/windowsGroup.inc:66 +msgid "Universal" +msgstr "Universeel" + +#: ../templates/lists/changePassword.php:407 +#: ../templates/lists/changePassword.php:438 ../lib/types/user.inc:268 +#: ../lib/types/user.inc:368 ../lib/types/user.inc:400 +#: ../lib/types/user.inc:821 ../lib/modules/posixGroup.inc:373 +#: ../lib/modules/posixAccount.inc:168 +msgid "Unix" +msgstr "Unix" + +#: ../templates/tests/lamdaemonTest.php:214 +msgid "Unix account" +msgstr "Unix account" + +#: ../lib/modules/posixAccount.inc:263 ../lib/modules/posixAccount.inc:1566 +msgid "Unix groups" +msgstr "Unix groepen" + +#: ../lib/modules/dhcp_settings.inc:201 ../lib/modules/dhcp_settings.inc:218 +#: ../lib/modules/dhcp_settings.inc:294 ../lib/modules/dhcp_settings.inc:602 +#: ../lib/modules/dhcp_settings.inc:682 +msgid "Unknown clients" +msgstr "Onbekend clients" + +#: ../lib/modules/kolabUser.inc:252 ../lib/modules/kolabSharedFolder.inc:256 +#, php-format +msgid "Unknown delegate address: %s" +msgstr "Onbekend delegatie adres:%s" + +#: ../templates/3rdParty/pla/lib/import_functions.php:233 +msgid "Unkown change type" +msgstr "Onbekend changetype" + +#: ../lib/types/user.inc:349 ../lib/types/user.inc:354 +#: ../lib/modules/windowsUser.inc:732 +msgid "Unlock" +msgstr "Ontgrendel" + +#: ../templates/lists/changePassword.php:210 +#: ../templates/lists/changePassword.php:404 +#: ../templates/lists/changePassword.php:424 +#: ../templates/lists/changePassword.php:426 +#: ../lib/modules/ppolicyUser.inc:146 +msgid "Unlock account" +msgstr "Ontgrendel account" + +#: ../templates/lists/changePassword.php:270 +msgid "Unlock account?" +msgstr "Ontgrendel account?" + +#: ../lib/modules/posixGroup.inc:211 ../lib/modules/posixAccount.inc:1502 +#: ../lib/modules/inetOrgPerson.inc:1595 +msgid "Unlock password" +msgstr "Ontgrendel wachtwoord" + +#: ../templates/masscreate.php:107 ../templates/config/confmodules.php:386 +msgid "Unsolved dependency:" +msgstr "Niet opgeloste afhankelijkheden:" + +#: ../templates/pdfedit/pdfpage.php:473 +msgid "Up" +msgstr "Omhoog" + +#: ../templates/lists/changePassword.php:225 +msgid "Update Samba password timestamp" +msgstr "Update Samba wachtwoord timestamp" + +#: ../lib/modules/sambaSamAccount.inc:250 +msgid "Update attribute \"sambaPwdLastSet\" on password change" +msgstr "Update-attribuut \"sambaPwdLastSet\" tijdens wachtwoord wijzigen" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1440 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:194 +msgid "Update object" +msgstr "Update object" + +#: ../lib/modules/imapAccess.inc:322 ../lib/modules/imapAccess.inc:331 +msgid "Update quota" +msgstr "Update quota" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:165 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:129 +msgid "Update values" +msgstr "Aangepaste waardes" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:118 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:118 +msgid "Updating object" +msgstr "Updaten object" + +#: ../templates/config/mainmanage.php:334 ../templates/pdfedit/pdfmain.php:247 +#: ../lib/modules/ldapPublicKey.inc:126 ../lib/modules/inetOrgPerson.inc:1863 +msgid "Upload" +msgstr "Uploaden" + +#: ../templates/config/mainmanage.php:336 +msgid "Upload CA certificate in DER/PEM format." +msgstr "Upload CA-certificaat in DER / PEM formaat." + +#: ../lib/modules/ldapPublicKey.inc:81 +msgid "Upload a file with one or more keys. Each line contains one key." +msgstr "" +"Upload een bestand met een of meer sleutels. Elke regel bevat een sleutel." + +#: ../templates/massBuildAccounts.php:242 +msgid "Upload accounts to LDAP" +msgstr "Upload accounts naar LDAP" + +#: ../lib/modules/ldapPublicKey.inc:122 ../lib/modules/customFields.inc:164 +#: ../lib/modules/customFields.inc:3428 +msgid "Upload file" +msgstr "Upload bestand" + +#: ../templates/masscreate.php:277 +msgid "Upload file and create accounts" +msgstr "Upload bestand en creeer accounts" + +#: ../templates/massDoUpload.php:254 ../lib/lists.inc:1071 +msgid "Upload has finished" +msgstr "Upload is voltooid" + +#: ../lib/modules.inc:504 +#, php-format +msgid "Upload was stopped after errors in %s module!" +msgstr "Upload is gestopt na fouten in module %s!" + +#: ../lib/pdfstruct.inc:256 +msgid "Uploaded logo file." +msgstr "Logo bestand geupload." + +#: ../templates/serverInfo.php:222 +msgid "Uptime" +msgstr "Uptime" + +#: ../templates/schema/schema.php:209 +msgid "Usage" +msgstr "Gebruik" + +#: ../lib/modules/authorizedServiceObject.inc:82 +#: ../lib/modules/authorizedServiceObject.inc:86 +msgid "Use * for all services." +msgstr "Gebruik * voor alle services." + +#: ../lib/modules/sambaSamAccount.inc:268 +#: ../lib/modules/sambaSamAccount.inc:271 +#: ../lib/modules/sambaSamAccount.inc:432 +msgid "Use Unix password" +msgstr "Gebruik Unix wachtwoord" + +#: ../templates/selfService/adminMain.php:437 ../help/help.inc:242 +msgid "Use for all operations" +msgstr "Gebruik voor alle bewerkingen" + +#: ../lib/modules/sambaSamAccount.inc:274 +#: ../lib/modules/sambaSamAccount.inc:277 +#: ../lib/modules/sambaSamAccount.inc:440 +#: ../lib/modules/sambaSamAccount.inc:1148 +#: ../lib/modules/sambaSamAccount.inc:1740 +msgid "Use no password" +msgstr "Geen wachtwoord gebruiken" + +#: ../help/help.inc:272 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of entries to modify." +msgstr "" +"Gebruik dit om een extra LDAP-filter (bijv. \"(cn!=admin)\") in te voeren " +"om het aantal zichtbare elementen te verminderen voor dit account type." + +#: ../help/help.inc:171 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of visible elements for this account type." +msgstr "" +"Gebruik dit om een extra LDAP-filter (bijv. \"(cn!=admin)\") in te voeren " +"om het aantal zichtbare elementen te verminderen voor dit account type." + +#: ../help/help.inc:241 +msgid "" +"Use this to enter an additional LDAP filter (e.g. " +"\"(objectClass=passwordSelfReset)\") to reduce the number of accounts who " +"may use self service." +msgstr "" +"Gebruik dit om een extra LDAP-filter (bijv. " +"\"(objectClass=passwordSelfReset)\") in te voeren om het aantal zichtbare " +"elementen te verminderen die self-service kunnen gebruiken." + +#: ../lib/modules/asteriskAccount.inc:188 +msgid "Use this to hide the caller ID." +msgstr "Gebruik dit om het beller-ID te verbergen." + +#: ../lib/modules/zarafaDynamicGroup.inc:80 +#: ../lib/modules/zarafaContact.inc:72 ../lib/modules/zarafaGroup.inc:86 +#: ../lib/modules/zarafaAddressList.inc:68 ../lib/modules/zarafaUser.inc:81 +msgid "Use this to hide this entry from the address book." +msgstr "Gebruik dit om dit item te verbergen voor het adresboek." + +#: ../lib/modules/sambaGroupMapping.inc:167 +msgid "" +"Use this to specify other groups or accounts from other domains as group " +"members." +msgstr "" +"Gebruik dit om andere groepen of accounts van andere domeinen op te geven " +"als groepsleden." + +#: ../lib/modules/imapAccess.inc:87 +msgid "" +"Use wildcards like $uid$ for LDAP attributes of the current LAM admin user." +msgstr "" +"Gebruik wildcards zoals $uid$ voor LDAP-attributen van de huidige LAM admin " +"gebruiker." + +#: ../lib/modules/pykotaBillingCode.inc:86 +msgid "Used balance for the billing code." +msgstr "Gebruikt balans voor de facturering code." + +#: ../lib/modules/quota.inc:109 ../lib/modules/quota.inc:400 +msgid "Used blocks" +msgstr "In gebruik zijnde blokken" + +#: ../lib/modules/quota.inc:110 +msgid "Used blocks. 1000 blocks are usually 1MB" +msgstr "In gebruik zijnde blokken. 1.000 blokken is doorgaans 1 Mb" + +#: ../templates/schema/schema.php:268 +msgid "Used by attributes" +msgstr "Gebruikt door attributen" + +#: ../templates/schema/schema.php:237 +msgid "Used by object classes" +msgstr "Gebruikt door objectklassen" + +#: ../lib/modules/sambaDomain.inc:98 +msgid "Used for calculating RIDs from UID/GID. Do not change if unsure." +msgstr "" +"Wordt gebruikt om de RID uit rekenen aan de hand van UID/GID. Indien " +"onzeker, niet veranderen." + +#: ../lib/modules/asteriskAccount.inc:220 +msgid "Used for registration context." +msgstr "Bestemd voor de registratie context." + +#: ../lib/modules/quota.inc:131 ../lib/modules/quota.inc:404 +msgid "Used inodes" +msgstr "In gebruik zijnde inodes" + +#: ../lib/modules/quota.inc:132 +msgid "Used inodes (files)" +msgstr "In gebruik zijnde inodes (bestanden)" + +#: ../lib/modules/asteriskAccount.inc:192 +msgid "Used to automatically hangup the call if no RTP traffic is received." +msgstr "" +"Gebruikt voor het automatisch ophangen van de oproep als er geen RTP-verkeer " +"wordt ontvangen." + +#: ../lib/modules/asteriskAccount.inc:168 +#: ../lib/modules/asteriskAccount.inc:172 +msgid "" +"Used to limit SIP traffic to and from this peer to a certain IP or network." +msgstr "" +"Gebruikt om het SIP-verkeer te beperken van en naar deze peer met een " +"bepaald IP of netwerk." + +#: ../lib/modules/asteriskAccount.inc:184 +msgid "Used to regularly check that a device is still online." +msgstr "" +"Gebruikt voor het regelmatig controleren of een apparaat nog steeds online " +"is." + +#: ../lib/types/sudo.inc:78 ../lib/modules/nisnetgroup.inc:220 +#: ../lib/modules/nisnetgroup.inc:586 ../lib/modules/nisMailAlias.inc:350 +msgid "User" +msgstr "Gebruiker" + +#: ../lib/types/user.inc:62 +msgid "User accounts (e.g. Unix, Samba and Kolab)" +msgstr "Gebruiker accounts (bijv. Unix, Samba en Kolab)" + +#: ../lib/modules/asteriskAccount.inc:127 +#: ../lib/modules/asteriskAccount.inc:270 +#: ../lib/modules/asteriskAccount.inc:340 +#: ../lib/modules/asteriskAccount.inc:598 +#: ../lib/modules/asteriskAccount.inc:986 +#: ../lib/modules/asteriskAccount.inc:1241 +msgid "User agent" +msgstr "User agent" + +#: ../lib/modules/sambaSamAccount.inc:298 +#: ../lib/modules/sambaSamAccount.inc:1172 +msgid "User can change password" +msgstr "Gebruiker mag wachtwoord wijzigen" + +#: ../lib/modules/inetOrgPerson.inc:166 ../lib/modules/inetOrgPerson.inc:866 +#: ../lib/modules/inetOrgPerson.inc:1540 ../lib/modules/inetOrgPerson.inc:2777 +#: ../lib/modules/inetOrgPerson.inc:3630 +msgid "User certificates" +msgstr "Gebruikerscertificaten" + +#: ../lib/types/user.inc:529 +#, php-format +msgid "User count: %s" +msgstr "Gebruikers aantal: %s" + +#: ../lib/modules/pykotaUser.inc:121 +msgid "User description." +msgstr "Beschrijving van de gebruiker." + +#: ../lib/modules/posixAccount.inc:511 +msgid "User description. If left empty first and last name will be used." +msgstr "" +"Gebruikersomschrijving. Indien open gelaten zal voor- en achternaam worden " +"gebruikt." + +#: ../lib/modules/inetOrgPerson.inc:647 +msgid "User description. If left empty sur- and give name will be used." +msgstr "" +"Omschrijving gebruiker. Indien leeg worden voor- en achternaam gebruikt." + +#: ../lib/modules/account.inc:106 +msgid "User description. If left empty user name will be used." +msgstr "" +"Gebruiker omschrijving. Indien leeg gelaten zal gebruikersnaam worden " +"gebruikt." + +#: ../templates/schema/schema.php:204 +msgid "User modification" +msgstr "Aanpassing gebruiker" + +#: ../lib/modules/mitKerberos.inc:224 ../lib/modules/mitKerberos.inc:250 +#: ../lib/modules/mitKerberos.inc:374 ../lib/modules/mitKerberos.inc:639 +#: ../lib/modules/mitKerberos.inc:779 ../lib/modules/sambaSamAccount.inc:300 +#: ../lib/modules/sambaSamAccount.inc:1178 ../lib/modules/windowsUser.inc:741 +#: ../lib/modules/heimdalKerberos.inc:106 +#: ../lib/modules/heimdalKerberos.inc:193 +#: ../lib/modules/heimdalKerberos.inc:220 +#: ../lib/modules/heimdalKerberos.inc:332 +#: ../lib/modules/heimdalKerberos.inc:549 +#: ../lib/modules/heimdalKerberos.inc:683 +msgid "User must change password" +msgstr "Gebruiker moet wachtwoord veranderen" + +#: ../templates/lists/changePassword.php:281 ../templates/login.php:334 +#: ../lib/types/alias.inc:91 ../lib/types/user.inc:91 +#: ../lib/selfService.inc:385 ../lib/modules/mitKerberos.inc:116 +#: ../lib/modules/mitKerberos.inc:211 ../lib/modules/mitKerberos.inc:249 +#: ../lib/modules/mitKerberos.inc:343 ../lib/modules/mitKerberos.inc:766 +#: ../lib/modules/selfRegistration.inc:393 +#: ../lib/modules/selfRegistration.inc:467 +#: ../lib/modules/selfRegistration.inc:475 ../lib/modules/account.inc:85 +#: ../lib/modules/account.inc:101 ../lib/modules/account.inc:124 +#: ../lib/modules/account.inc:126 ../lib/modules/account.inc:127 +#: ../lib/modules/account.inc:210 ../lib/modules/account.inc:230 +#: ../lib/modules/account.inc:254 ../lib/modules/uidObject.inc:45 +#: ../lib/modules/uidObject.inc:67 ../lib/modules/uidObject.inc:76 +#: ../lib/modules/uidObject.inc:85 ../lib/modules/uidObject.inc:100 +#: ../lib/modules/uidObject.inc:161 ../lib/modules/posixAccount.inc:113 +#: ../lib/modules/posixAccount.inc:114 ../lib/modules/posixAccount.inc:117 +#: ../lib/modules/posixAccount.inc:283 ../lib/modules/posixAccount.inc:409 +#: ../lib/modules/posixAccount.inc:506 ../lib/modules/posixAccount.inc:1420 +#: ../lib/modules/posixAccount.inc:1842 ../lib/modules/windowsUser.inc:107 +#: ../lib/modules/windowsUser.inc:264 ../lib/modules/windowsUser.inc:498 +#: ../lib/modules/windowsUser.inc:589 ../lib/modules/windowsUser.inc:689 +#: ../lib/modules/windowsUser.inc:1593 ../lib/modules/pykotaUser.inc:112 +#: ../lib/modules/pykotaUser.inc:208 ../lib/modules/pykotaUser.inc:268 +#: ../lib/modules/pykotaUser.inc:311 ../lib/modules/pykotaUser.inc:313 +#: ../lib/modules/pykotaUser.inc:340 ../lib/modules/pykotaUser.inc:889 +#: ../lib/modules/nisnetgroup.inc:152 ../lib/modules/nisnetgroup.inc:482 +#: ../lib/modules/inetOrgPerson.inc:97 ../lib/modules/inetOrgPerson.inc:166 +#: ../lib/modules/inetOrgPerson.inc:638 ../lib/modules/inetOrgPerson.inc:766 +#: ../lib/modules/inetOrgPerson.inc:1186 ../lib/modules/inetOrgPerson.inc:1189 +#: ../lib/modules/inetOrgPerson.inc:1942 ../lib/modules/inetOrgPerson.inc:2077 +#: ../lib/modules/inetOrgPerson.inc:2835 ../lib/modules/inetOrgPerson.inc:3638 +#: ../lib/modules/inetOrgPerson.inc:3664 +#: ../lib/modules/passwordSelfReset.inc:499 +#: ../lib/modules/passwordSelfReset.inc:843 +#: ../lib/modules/passwordSelfReset.inc:1015 +#: ../lib/modules/heimdalKerberos.inc:94 +#: ../lib/modules/heimdalKerberos.inc:180 +#: ../lib/modules/heimdalKerberos.inc:218 +#: ../lib/modules/heimdalKerberos.inc:293 +#: ../lib/modules/heimdalKerberos.inc:676 +msgid "User name" +msgstr "Gebruikersnaam" + +#: ../lib/modules/windowsUser.inc:115 ../lib/modules/windowsUser.inc:449 +#: ../lib/modules/windowsUser.inc:529 ../lib/modules/windowsUser.inc:565 +#: ../lib/modules/windowsUser.inc:593 ../lib/modules/windowsUser.inc:698 +#: ../lib/modules/windowsUser.inc:1595 +msgid "User name (pre W2K)" +msgstr "Gebruikersnaam (pre W2K)" + +#: ../lib/modules/selfRegistration.inc:475 ../lib/modules/posixAccount.inc:121 +#: ../lib/modules/pykotaUser.inc:313 ../lib/modules/pykotaUser.inc:314 +#: ../lib/modules/pykotaUser.inc:317 ../lib/modules/pykotaUser.inc:318 +#: ../lib/modules/inetOrgPerson.inc:99 +msgid "User name already exists!" +msgstr "Gebruikersnaam bestaat al!" + +#: ../lib/modules/passwordSelfReset.inc:501 +msgid "User name and email address" +msgstr "Gebruikersnaam en e-mailadres" + +#: ../lib/modules/imapAccess.inc:103 ../lib/modules/imapAccess.inc:144 +msgid "User name attribute" +msgstr "Gebruikersnaam attribuut" + +#: ../lib/modules/mitKerberos.inc:289 ../lib/modules/mitKerberos.inc:290 +#: ../lib/modules/selfRegistration.inc:467 ../lib/modules/account.inc:124 +#: ../lib/modules/account.inc:125 ../lib/modules/account.inc:127 +#: ../lib/modules/zarafaContact.inc:187 ../lib/modules/zarafaContact.inc:188 +#: ../lib/modules/uidObject.inc:85 ../lib/modules/zarafaGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:223 ../lib/modules/posixAccount.inc:114 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/zarafaUser.inc:419 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/windowsUser.inc:589 +#: ../lib/modules/windowsUser.inc:590 ../lib/modules/windowsUser.inc:593 +#: ../lib/modules/windowsUser.inc:594 ../lib/modules/pykotaUser.inc:311 +#: ../lib/modules/pykotaUser.inc:312 ../lib/modules/pykotaUser.inc:315 +#: ../lib/modules/pykotaUser.inc:316 ../lib/modules/nisnetgroup.inc:152 +#: ../lib/modules/inetOrgPerson.inc:97 ../lib/modules/inetOrgPerson.inc:98 +#: ../lib/modules/passwordSelfReset.inc:893 +#: ../lib/modules/passwordSelfReset.inc:1115 +#: ../lib/modules/heimdalKerberos.inc:253 +#: ../lib/modules/heimdalKerberos.inc:254 +msgid "" +"User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Gebruikersnaam bevat ongeldige tekens. Geldige tekens zijn: a-z, A-Z, 0-9 " +"and .-_ !" + +#: ../lib/modules/windowsUser.inc:253 +msgid "User name for NIS." +msgstr "Gebruikersnaam voor NIS." + +#: ../lib/modules/posixAccount.inc:117 +msgid "User name in use. Selected next free user name." +msgstr "" +"Gebruikersnaam wordt al gebruikt. Selecteer een volgende vrije " +"gebruikersnaam." + +#: ../lib/modules/mitKerberos.inc:117 ../lib/modules/account.inc:102 +#: ../lib/modules/pykotaUser.inc:113 ../lib/modules/inetOrgPerson.inc:767 +#: ../lib/modules/heimdalKerberos.inc:95 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_." +msgstr "" +"Gebruikersnaam van de gebruiker die moet worden gecreëerd. Geldige tekens " +"zijn: a-z,A-Z,0-9, @.-_." + +#: ../lib/modules/posixAccount.inc:507 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_. If user name is already used user name will be expanded with a " +"number. The next free number will be used." +msgstr "" +"Gebruikersnaam van de gebruiker die moet worden gecreëerd. Geldige tekens " +"zijn: a-z,A-Z,0-9, @.-_. Als de gebruikersnaam al wordt gebruikt als " +"gebruikersnaam zal hier een nummer aan worden toegevoegd. Het eerst volgende " +"vrije nummer zal worden gebruikt." + +#: ../lib/modules/passwordSelfReset.inc:502 +#: ../lib/modules/passwordSelfReset.inc:867 +#: ../lib/modules/passwordSelfReset.inc:1035 +msgid "User name or email address" +msgstr "Gebruikersnaam of e-mailadres" + +#: ../lib/modules/posixAccount.inc:270 ../lib/modules/posixAccount.inc:436 +msgid "User name suggestion" +msgstr "Gebruikersnaam suggestie" + +#: ../lib/modules/pykotaUser.inc:125 +msgid "User name that is used for PyKota." +msgstr "Gebruikersnaam die wordt gebruikt voor PyKota." + +#: ../lib/modules/windowsUser.inc:752 +msgid "User profile" +msgstr "Gebruikersprofiel" + +#: ../lib/modules/selfRegistration.inc:45 +msgid "User self registration" +msgstr "Gebruikers zelf registratie" + +#: ../lib/modules/zarafaUser.inc:128 ../lib/modules/zarafaUser.inc:275 +#: ../lib/modules/zarafaUser.inc:373 ../lib/modules/zarafaUser.inc:614 +#: ../lib/modules/zarafaUser.inc:1233 ../lib/modules/zarafaUser.inc:1322 +#: ../lib/modules/zarafaUser.inc:1805 +msgid "User server" +msgstr "Gebruiker server" + +#: ../lib/types/user.inc:53 ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:97 +#: ../lib/modules/posixAccount.inc:209 ../lib/modules/zarafaUser.inc:1779 +#: ../lib/modules/sudoRole.inc:74 ../lib/modules/sudoRole.inc:98 +#: ../lib/modules/sudoRole.inc:159 ../lib/modules/sudoRole.inc:216 +#: ../lib/modules/sudoRole.inc:228 ../lib/modules/sudoRole.inc:316 +#: ../lib/modules/sudoRole.inc:806 +msgid "Users" +msgstr "Gebruikers" + +#: ../lib/modules/zarafaContact.inc:80 ../lib/modules/zarafaGroup.inc:94 +#: ../lib/modules/zarafaUser.inc:105 +msgid "Users or groups that may directly send email as this user." +msgstr "" +"Gebruikers of groepen die direct e-mail kunnen sturen als deze gebruiker." + +#: ../lib/modules/posixGroup.inc:489 +msgid "" +"Users who are member of the current group. Users who have set their primary " +"group to this group will not be shown." +msgstr "" +"Gebruikers die lid zijn van de huidige groep. Gebruikers die hun primaire " +"groep ingesteld op deze groep worden niet getoond." + +#: ../lib/modules/posixGroup.inc:493 +msgid "" +"Users who will become member of the current group. User names are separated " +"by semicolons." +msgstr "" +"Gebruikers die lid worden van deze groep. De namen worden gescheiden door " +"een puntkomma." + +#: ../templates/tests/lamdaemonTest.php:207 +#, php-format +msgid "Using %s as lamdaemon remote server." +msgstr "Gebruik %s als lamdaemon remote server." + +#: ../templates/tests/lamdaemonTest.php:229 +#, php-format +msgid "Using %s to connect to remote server." +msgstr "Gebruik %s om verbinding maken met de externe server." + +#: ../lib/modules/posixAccount.inc:446 +msgid "" +"Usually, users are not added to groups as memberUid if they have this group " +"as primary group. If your application ignores primary groups then you can " +"select this option to override this behaviour." +msgstr "" +"Meestal worden gebruikers niet toegevoegd aan groepen als memberUid als ze " +"deze groep als primaire groep hebben. Als uw toepassing de primaire groepen " +"negeert, kunt u kunt deze optie selecteren om dit gedrag te negeren." + +#: ../templates/3rdParty/pla/lib/export_functions.php:543 +msgid "VCARD 2.1 Export" +msgstr "VCARD 2.1 Export" + +#: ../templates/config/mainmanage.php:360 +msgid "Valid to" +msgstr "Geldige tot" + +#: ../help/help.inc:92 +msgid "Valid users" +msgstr "Geldige gebruikers" + +#: ../lib/modules/imapAccess.inc:83 ../lib/modules/imapAccess.inc:121 +msgid "Validate server certificate" +msgstr "Valideer servercertificaat" + +#: ../lib/modules/customFields.inc:108 ../lib/modules/customFields.inc:1899 +msgid "Validation expression" +msgstr "Validatie expressie" + +#: ../lib/modules/customFields.inc:112 ../lib/modules/customFields.inc:1904 +msgid "Validation message" +msgstr "Validatie melding" + +#: ../templates/multiEdit.php:120 ../lib/modules/customFields.inc:2959 +msgid "Value" +msgstr "Waarde" + +#: ../lib/modules/customFields.inc:116 ../lib/modules/customFields.inc:2749 +msgid "Value for \"checked\"" +msgstr "Waarde voor \"aangevinkt\"" + +#: ../lib/modules/customFields.inc:120 ../lib/modules/customFields.inc:2755 +msgid "Value for \"unchecked\"" +msgstr "Waarde voor \"niet aangevinkt\"" + +#: ../lib/modules/customFields.inc:140 ../lib/modules/customFields.inc:2955 +msgid "Value mapping" +msgstr "Waarde mapping" + +#: ../templates/3rdParty/pla/lib/import_functions.php:512 +msgid "Value to delete does not exist in DN" +msgstr "Verwijder waarde bestaat niet in DN" + +#: ../lib/modules/puppetClient.inc:100 ../lib/modules/puppetClient.inc:104 +#: ../lib/modules/puppetClient.inc:146 ../lib/modules/puppetClient.inc:156 +#: ../lib/modules/puppetClient.inc:169 ../lib/modules/puppetClient.inc:277 +#: ../lib/modules/puppetClient.inc:439 +msgid "Variables" +msgstr "Variabelen" + +#: ../templates/serverInfo.php:134 +msgid "Vendor name" +msgstr "Verkoper naam" + +#: ../templates/serverInfo.php:140 +msgid "Vendor version" +msgstr "Leverancier versie" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +#, php-format +msgid "View %s children" +msgstr "Bekijk %s kinderen" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +msgid "View 1 child" +msgstr "Bekijk 1 kind" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1230 +msgid "View the children of this object" +msgstr "Bekijk de kinderen van dit object" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1028 +msgid "Viewing entry in read-only mode." +msgstr "Bekijk item in alleen-lezen-modus." + +#: ../lib/modules/asteriskVoicemail.inc:119 +#: ../lib/modules/asteriskVoicemail.inc:126 +#: ../lib/modules/asteriskVoicemail.inc:143 +#: ../lib/modules/asteriskVoicemail.inc:196 +#: ../lib/modules/asteriskVoicemail.inc:260 +#: ../lib/modules/asteriskVoicemail.inc:372 +msgid "Voicemail context" +msgstr "Voicemail context" + +#: ../lib/modules/asteriskVoicemail.inc:96 +msgid "Voicemail mailbox for this account." +msgstr "Voicemail mailbox voor deze account." + +#: ../templates/login.php:496 +msgid "Want more features? Get LAM Pro!" +msgstr "Wilt u meer functies? Schakel over op LAM Pro!" + +#: ../templates/config/mainmanage.php:408 +#: ../templates/3rdParty/pla/lib/page.php:76 +msgid "Warning" +msgstr "Waarschuwing" + +#: ../templates/delete.php:234 ../lib/modules/nisMailAliasUser.inc:505 +#: ../lib/modules/posixAccount.inc:850 ../lib/modules/posixAccount.inc:903 +#: ../lib/modules/organizationalRoleUser.inc:201 +#: ../lib/modules/organizationalRoleUser.inc:218 +#: ../lib/modules/windowsUser.inc:1127 ../lib/modules/groupOfNamesUser.inc:217 +#: ../lib/modules/groupOfNamesUser.inc:264 ../lib/modules.inc:1908 +#, php-format +msgid "Was unable to add attributes to DN: %s." +msgstr "Het is niet gelukt de volgende attributen toe te voegen aan DN: %s" + +#: ../lib/modules/nisMailAliasUser.inc:494 ../lib/modules/range.inc:665 +#: ../lib/modules.inc:1871 +#, php-format +msgid "Was unable to create DN: %s." +msgstr "Het is niet gelukt om DN te maken: %s." + +#: ../templates/delete.php:344 ../templates/delete.php:353 +#: ../lib/modules/nisMailAliasUser.inc:471 ../lib/modules/range.inc:732 +#, php-format +msgid "Was unable to delete DN: %s." +msgstr "Het is niet gelukt om DN te verwijderen: %s." + +#: ../templates/lists/changePassword.php:758 +#: ../templates/lists/changePassword.php:796 +#: ../templates/lists/changePassword.php:842 ../templates/delete.php:225 +#, php-format +msgid "Was unable to modify attributes from DN: %s." +msgstr "Modificeren van de attributen van DN: %s was niet mogelijk." + +#: ../lib/modules/posixAccount.inc:888 ../lib/modules/windowsUser.inc:1153 +#: ../lib/modules/windowsUser.inc:1566 ../lib/modules/range.inc:709 +#: ../lib/modules/groupOfNamesUser.inc:249 ../lib/modules.inc:1890 +#, php-format +msgid "Was unable to modify attributes of DN: %s." +msgstr "Was niet in staat om attributen van DN te wijzigen: %s." + +#: ../templates/delete.php:243 ../lib/modules/nisMailAliasUser.inc:482 +#: ../lib/modules/posixAccount.inc:858 ../lib/modules/posixAccount.inc:920 +#: ../lib/modules/organizationalRoleUser.inc:206 +#: ../lib/modules/organizationalRoleUser.inc:229 +#: ../lib/modules/windowsUser.inc:1140 ../lib/modules/groupOfNamesUser.inc:222 +#: ../lib/modules/groupOfNamesUser.inc:278 ../lib/modules.inc:1921 +#, php-format +msgid "Was unable to remove attributes from DN: %s." +msgstr "Het is niet gelukt om attributen te verwijderen van DN: %s." + +#: ../lib/modules/asteriskExtension.inc:905 ../lib/modules.inc:1851 +#, php-format +msgid "Was unable to rename DN: %s." +msgstr "Het is niet gelukt om DN te hernoemen: %s." + +#: ../lib/modules/windowsUser.inc:188 ../lib/modules/windowsUser.inc:374 +#: ../lib/modules/windowsUser.inc:516 ../lib/modules/windowsUser.inc:543 +#: ../lib/modules/windowsUser.inc:720 ../lib/modules/windowsUser.inc:1612 +#: ../lib/modules/windowsUser.inc:1735 ../lib/modules/inetOrgPerson.inc:165 +#: ../lib/modules/inetOrgPerson.inc:217 ../lib/modules/inetOrgPerson.inc:478 +#: ../lib/modules/inetOrgPerson.inc:601 ../lib/modules/inetOrgPerson.inc:754 +#: ../lib/modules/inetOrgPerson.inc:758 ../lib/modules/inetOrgPerson.inc:1455 +#: ../lib/modules/inetOrgPerson.inc:1458 ../lib/modules/inetOrgPerson.inc:1952 +#: ../lib/modules/inetOrgPerson.inc:2514 ../lib/modules/inetOrgPerson.inc:3628 +#: ../lib/modules/inetOrgPerson.inc:3654 +msgid "Web site" +msgstr "Website" + +#: ../lib/modules/sambaSamAccount.inc:1380 +msgid "Wednesday" +msgstr "Woensdag" + +#: ../lib/modules/bindDLZ.inc:187 ../lib/modules/bindDLZ.inc:191 +#: ../lib/modules/bindDLZ.inc:394 ../lib/modules/bindDLZ.inc:510 +#: ../lib/modules/bindDLZ.inc:1360 ../lib/modules/bindDLZ.inc:1607 +msgid "Weight" +msgstr "Gewicht" + +#: ../lib/selfService.inc:384 +msgid "Welcome to LAM self service. Please enter your user name and password." +msgstr "Welkom bij LAM zelf service. Vul uw gebruikersnaam en wachtwoord in." + +#: ../lib/modules/sambaSamAccount.inc:565 +msgid "Western Europe Time, London, Lisbon" +msgstr "Western Europe Time, London, Lisbon" + +#: ../lib/modules/passwordSelfReset.inc:179 +msgid "What is the name of your favourite pet?" +msgstr "Wat is de naam van uw favoriete huisdier?" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +msgid "" +"When performing a recursive copy, only copy those entries which match this " +"filter." +msgstr "" +"Bij het uitvoeren van een recursieve kopie, kopieert u alleen de items die " +"aan dit filter voldoen." + +#: ../lib/modules/zarafaUser.inc:101 +msgid "" +"When the hard quota limit is reached, email can not be delivered to that " +"user anymore." +msgstr "" +"Wanneer de harde quotum is bereikt, kan e-mail niet meer worden afgeleverd " +"aan de gebruiker." + +#: ../help/help.inc:70 +msgid "" +"When using ldaps:// or TLS be sure to use exactly the same IP/domain name as " +"in your certificate!" +msgstr "" +"Indien ldaps:// wordt gebruikt wees er dan zeker van dat dezelfde IP/" +"domeinnaam gebruikt wordt als in het certificaat!" + +#: ../templates/lists/changePassword.php:419 +#: ../templates/lists/changePassword.php:450 ../lib/types/user.inc:292 +#: ../lib/types/user.inc:380 ../lib/types/user.inc:412 +#: ../lib/types/user.inc:845 ../lib/modules/windowsHost.inc:64 +#: ../lib/modules/windowsUser.inc:89 ../lib/modules/windowsGroup.inc:99 +msgid "Windows" +msgstr "Windows" + +#: ../lib/modules/sambaSamAccount.inc:338 ../lib/modules/windowsUser.inc:112 +msgid "Windows domain name of account." +msgstr "Windows domeinnaam of account." + +#: ../lib/modules/sambaSamAccount.inc:212 +#: ../lib/modules/sambaSamAccount.inc:471 +#: ../lib/modules/sambaSamAccount.inc:1266 +#: ../lib/modules/sambaSamAccount.inc:1788 +#: ../lib/modules/sambaSamAccount.inc:1913 +#: ../lib/modules/sambaGroupMapping.inc:111 +#: ../lib/modules/sambaGroupMapping.inc:374 +#: ../lib/modules/sambaGroupMapping.inc:539 +msgid "Windows group" +msgstr "Windows groep" + +#: ../lib/modules/sambaGroupMapping.inc:150 +msgid "Windows group name" +msgstr "Windows groepsnaam" + +#: ../lib/modules/sambaGroupMapping.inc:163 +msgid "Windows group type." +msgstr "Windows groepstype." + +#: ../lib/modules/sambaSamAccount.inc:395 +msgid "" +"Windows password hashes are saved by default as NT and LM hashes. LM hashes " +"are insecure and only needed for old versions of Windows. You should disable " +"them unless you really need them." +msgstr "" +"Windows-wachtwoord hashes worden standaard opgeslagen als NT-en LM-hashes. " +"LM-hashes onveilig en alleen nodig voor oude versies van Windows. Je moet ze " +"uitschakelen, tenzij je ze echt nodig hebt." + +#: ../lib/modules/sambaSamAccount.inc:321 +msgid "Windows primary group" +msgstr "Primaire Windows groep" + +#: ../lib/modules/sambaSamAccount.inc:324 +msgid "Windows primary group SID" +msgstr "SID primaire Windows groep" + +#: ../lib/modules/sambaGroupMapping.inc:159 +msgid "Windows-Domain name of group." +msgstr "Windows-Domein naam van de groep." + +#: ../lib/modules/inetOrgPerson.inc:1466 +msgid "Work details" +msgstr "Werk-details" + +#: ../lib/modules/sambaDomain.inc:146 +msgid "Workgroup" +msgstr "Werkgroep" + +#: ../lib/modules/sambaSamAccount.inc:236 +#: ../lib/modules/sambaSamAccount.inc:367 +#: ../lib/modules/sambaSamAccount.inc:1522 +#: ../lib/modules/sambaSamAccount.inc:1932 +msgid "Working directory" +msgstr "Werkdirectory" + +#: ../lib/modules/sambaSamAccount.inc:368 +msgid "Working directory of initial program." +msgstr "Werk-directory oorspronkelijke programma." + +#: ../templates/config/confmain.php:318 +msgid "Write" +msgstr "Schrijf" + +#: ../templates/config/confmain.php:260 +msgid "Write access" +msgstr "Schrijf toegang" + +#: ../templates/login.php:579 ../templates/login.php:637 +#: ../templates/selfService/selfServiceLogin.php:160 +#: ../templates/selfService/selfServiceLogin.php:186 +msgid "Wrong password/user name combination. Please try again." +msgstr "Verkeerde wachtwoord/gebruikersnaam combinatie. Probeer opnieuw." + +#: ../lib/modules/imapAccess.inc:188 +msgid "Wrong quota format. Quota must be numeric." +msgstr "Verkeerde quota-formaat. Quotum moet numeriek zijn." + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/pykotaPrinter.inc:51 +#: ../lib/modules/pykotaPrinter.inc:170 ../lib/modules/qmailGroup.inc:322 +#: ../lib/modules/qmailGroup.inc:364 ../lib/modules/qmailGroup.inc:1030 +#: ../lib/modules/qmailGroup.inc:1031 ../lib/modules/qmailGroup.inc:1073 +#: ../lib/modules/qmailGroup.inc:1079 ../lib/modules/imapAccess.inc:121 +msgid "Yes" +msgstr "Ja" + +#: ../templates/lists/changePassword.php:537 +#: ../lib/modules/ppolicyUser.inc:344 ../lib/modules/ppolicyUser.inc:421 +msgid "You are reusing an old password. Please choose a different password." +msgstr "U hergebruik een oude wachtwoord. Kies een ander wachtwoord." + +#: ../lib/modules/account.inc:126 ../lib/modules/posixGroup.inc:602 +#: ../lib/modules/posixAccount.inc:113 ../lib/modules/posixAccount.inc:115 +msgid "" +"You are using capital letters. This can cause problems because Windows is " +"not case-sensitive." +msgstr "" +"Er worden hoofdletters gebruikt. Dit kan problemen geven omdat Windows niet " +"hoofdletter gevoelig is." + +#: ../lib/lists.inc:1073 +#, php-format +msgid "" +"You can download your PDF files {link=%s}{color=#d2131a}here{endcolor}" +"{endlink}." +msgstr "" +" U kunt uw PDF-bestanden {link=%s}{color=#d2131a}hier{endcolor}{endlink} " +"downloaden." + +#: ../templates/initsuff.php:181 +msgid "" +"You can setup the LDAP suffixes for all account types in your LAM server " +"profile on tab \"Account types\"." +msgstr "" +"U kunt het LDAP-achtervoegsels instellen voor alle soorten accounts in het " +"LAM server profiel op het tabblad \"Account soorten\"." + +#: ../help/help.inc:110 +msgid "" +"You can specify if LAM allows full write access, password changes or only " +"read access." +msgstr "" +"U kunt het toegang niveau van LAM aangeven, volledige schrijf toegang, het " +"wijzigen van wachtwoorden of alleen lezen toegang." + +#: ../lib/modules/windowsUser.inc:104 ../lib/modules/windowsUser.inc:125 +#: ../lib/modules/windowsUser.inc:141 ../lib/modules/windowsUser.inc:206 +#: ../lib/modules/windowsUser.inc:211 ../lib/modules/windowsUser.inc:228 +#: ../lib/modules/windowsUser.inc:233 ../lib/modules/windowsUser.inc:249 +#: ../lib/modules/inetOrgPerson.inc:743 ../lib/modules/inetOrgPerson.inc:748 +msgid "" +"You can use \"$user\", \"$firstname\" and \"$lastname\" as wildcards for " +"user name, first and last name." +msgstr "" +"U kunt \"$user\", \"$firstname\" en \"$lastname\" gebruiken als wildcards " +"voor de gebruikersnaam, voor-en achternaam." + +#: ../help/help.inc:172 +msgid "" +"You can use the wildcard @@LOGIN_DN@@ which will be substituted with the DN " +"of the user who is currently logged in to LAM." +msgstr "" +"U kunt gebruik maken van de wildcard @@LOGIN_DN@@ die zal worden vervangen " +"door de DN van de gebruiker die momenteel is aangemeld bij LAM." + +#: ../lib/modules/zarafaDynamicGroup.inc:84 +#: ../lib/modules/zarafaContact.inc:76 ../lib/modules/zarafaGroup.inc:90 +#: ../lib/modules/zarafaAddressList.inc:72 ../lib/modules/zarafaUser.inc:85 +msgid "You can use this to temporarily deactivate the Zarafa extension." +msgstr "U kunt de Zarafa extensie tijdelijk uitschakelen." + +#: ../lib/modules/passwordSelfReset.inc:126 +#: ../lib/modules/passwordSelfReset.inc:136 ../help/help.inc:253 +msgid "" +"You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. " +"@@uid@@ for the user name)." +msgstr "" +"U kunt gebruik maken van wildcards voor LDAP-attributen in de vorm van " +"@@attribute@@ (bijv. @@uid@@ voor de gebruiker naam)." + +#: ../lib/modules/customScripts.inc:65 ../lib/modules/customScripts.inc:78 +msgid "" +"You can use wildcards in the format $wildcard$ which are replaced by the " +"LDAP attribute with the same name. For multi-value attributes the values " +"will be separated by commas." +msgstr "" +"U kunt gebruik maken van wildcards in de vorm van $wildcard$, die worden " +"vervangen door de LDAP-attribuut met dezelfde naam. Voor multi-waarde " +"attributen worden de waarden gescheiden door komma's." + +#: ../lib/modules/zarafaContact.inc:191 +msgid "" +"You cannot add the Zarafa and Zarafa contact extension at the same time." +msgstr "" +"De Zarafa en Zarafa contact extensies kunnen niet gelijktijdig gebruikt " +"worden." + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:52 +msgid "You cannot perform updates while server is in read-only mode" +msgstr "" +"U kunt geen updates uitvoeren, wanneer server zich in alleen-lezen modus " +"bevind." + +#: ../templates/3rdParty/pla/htdocs/rename.php:26 +msgid "You cannot rename an entry which has child entries." +msgstr "Je kunt een item niet hernoemen wanneer het kind items heeft." + +#: ../templates/config/confmain.php:505 +msgid "" +"You cannot use SSL and TLS encryption at the same time. Please use either " +"\"ldaps://\" or TLS." +msgstr "" +"U kunt SSL-en TLS-encryptie niet gelijktijdig gebruiken. Gebruik ofwel " +"\"ldaps://\" of TLS." + +#: ../templates/3rdParty/pla/htdocs/rename.php:32 +msgid "You did not change the RDN" +msgstr "U heeft geen veranderingen gemaakt aan de RDN." + +#: ../templates/tests/schemaTest.php:61 +msgid "" +"You do not have the required access rights or the LDAP schema is not " +"published by your server." +msgstr "" +"Je hebt niet de vereiste toegangsrechten of het LDAP-schema is niet " +"gepubliceerd door de server." + +#: ../lib/modules/dhcp_settings.inc:322 ../lib/modules/dhcp_settings.inc:323 +msgid "You entered one or more invalid DNS servers." +msgstr "U heeft een of meer ongeldige DNS-servers opgegeven." + +#: ../templates/3rdParty/pla/lib/Template.php:417 +#: ../templates/3rdParty/pla/lib/Template.php:504 +msgid "You left the attribute value blank. Please go back and try again." +msgstr "" +"U heeft de attribuut waarde open gelaten. Ga terug en probeer het opnieuw." + +#: ../templates/3rdParty/pla/htdocs/create.php:51 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:45 +#, php-format +msgid "You left the value blank for required attribute (%s)." +msgstr "U heeft de waarde open gelaten voor het verplichte attribuut: %s" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:171 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:209 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:133 +msgid "You made no changes" +msgstr "U heeft geen veranderingen gemaakt." + +#: ../templates/config/mainmanage.php:172 +#: ../templates/config/mainmanage.php:178 +#: ../templates/config/mainmanage.php:190 +msgid "You might need to restart your webserver for changes to take effect." +msgstr "" +"Mogelijk moet u uw webserver opnieuw opstarten om wijzigingen door te voeren." + +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#, php-format +msgid "You might want to use %s instead of %s." +msgstr "U wilt misschien %s gebruiken in plaats van %s." + +#: ../templates/3rdParty/pla/lib/import_functions.php:95 +msgid "You must either upload a file or provide an import in the text box." +msgstr "Geef of een upload bestand of zorg voor een import in het tekstvak." + +#: ../lib/modules/groupOfNames.inc:210 ../lib/modules/groupOfNames.inc:211 +msgid "You need to add at least one member to this group." +msgstr "U moet ten minste een lid toe te voegen aan deze groep." + +#: ../lib/modules/passwordSelfReset.inc:229 +msgid "You specified an answer but no security question." +msgstr "U hebt een antwoord opgegeven, maar geen beveiliging vraag." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1136 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "You will be prompted to confirm this decision" +msgstr "U wordt gevraagd om deze beslissing te bevestigen" + +#: ../lib/modules/imapAccess.inc:184 +msgid "Your IMAP domains and email address domain do not match." +msgstr "Uw IMAP-domeinen en e-mailadres domein komen niet overeen." + +#: ../templates/tests/lamdaemonTest.php:234 +#, php-format +msgid "" +"Your LAM admin user (%s) must be a valid Unix account to work with lamdaemon!" +msgstr "" +"Uw LAM admin gebruiker (%s) moet een geldige Unix-account zijn voor " +"lamdaemon om met te werken." + +#: ../lib/lamdaemon.inc:61 ../lib/lamdaemon.inc:66 +msgid "" +"Your LAM admin user must be a valid Unix account to work with lamdaemon!" +msgstr "" +"Uw LAM admin gebruiker moet een geldige Unix-account zijn voor lamdaemon om " +"met te werken." + +#: ../lib/modules/imapAccess.inc:186 +msgid "Your LAM login password was not accepted by the IMAP server." +msgstr "Uw LAM wachtwoord wordt niet geaccepteerd door de IMAP-server." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:125 +msgid "" +"Your PHP configuration has disabled file uploads. Please check php.ini " +"before proceeding." +msgstr "" +"De PHP configuratie staat geen upload van bestanden toe. Controleer php.ini " +"voor verder te gaan." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:16 +msgid "" +"Your PHP.INI does not have file_uploads = ON. Please enable file uploads in " +"PHP." +msgstr "Het php.ini bevat niet file_uploads = ON. Corrigeer dit aub." + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:372 +msgid "" +"Your changes cannot be saved until you make the file writable for the " +"webserver user." +msgstr "" +"De wijzigingen kunnen niet worden opgeslagen totdat u het bestand " +"schrijfbaar maakt voor de webserver gebruiker." + +#: ../lib/modules/selfRegistration.inc:721 +msgid "" +"Your new account was created but post processing failed. Please contact your " +"local administrator." +msgstr "" +"Uw nieuwe account is aangemaakt maar nabewerking mislukte. Neem contact op " +"met uw lokale beheerder." + +#: ../lib/modules/selfRegistration.inc:718 +msgid "" +"Your new account was successfully created. Please return to login to change " +"your user data." +msgstr "" +"Uw nieuwe account is aangemaakt. Keer terug naar Login om u gegevens aan te " +"passen" + +#: ../lib/account.inc:1202 ../lib/modules/windowsUser.inc:1878 +msgid "" +"Your password does not meet the password strength qualifications. Please " +"retry with another one." +msgstr "" +"Uw wachtwoord voldoet niet aan de wachtwoord sterkte kwalificaties. Probeer " +"het opnieuw met een ander wachtwoord." + +#: ../lib/modules/passwordSelfReset.inc:563 +msgid "Your password was changed to @@newPassword@@." +msgstr "Je wachtwoord is gewijzigd in @@newPassword@@." + +#: ../lib/security.inc:192 +msgid "Your session expired, click here to go back to the login page." +msgstr "" +"Uw sessie is verlopen, klik hier om terug te gaan naar de login pagina." + +#: ../templates/login.php:296 +#: ../templates/selfService/selfServiceLogin.php:113 +msgid "Your session expired, please log in again." +msgstr "Uw sessie is verlopen, meld u opnieuw aan." + +#: ../templates/login.php:301 ../templates/login.php:306 +#: ../templates/login.php:315 +msgid "Your settings were successfully saved." +msgstr "Uw instellingen zijn met succes bewaard." + +#: ../lib/modules/windowsUser.inc:346 ../lib/modules/inetOrgPerson.inc:512 +#: ../lib/modules/inetOrgPerson.inc:544 +msgid "YourCompany" +msgstr "UwBedrijf" + +#: ../lib/modules/zarafaGroup.inc:56 ../lib/modules/zarafaUser.inc:61 +#: ../lib/modules/zarafaServer.inc:56 +msgid "Zarafa" +msgstr "Zarafa" + +#: ../lib/modules/zarafaAddressList.inc:51 +msgid "Zarafa address list" +msgstr "Zarafa adreslijst" + +#: ../lib/types/zarafaAddressListType.inc:53 +#: ../lib/types/zarafaAddressListType.inc:62 +msgid "Zarafa address lists" +msgstr "Zarafa adreslijsten" + +#: ../lib/modules/zarafaContact.inc:56 +msgid "Zarafa contact" +msgstr "Zarafa contact" + +#: ../lib/modules/zarafaDynamicGroup.inc:51 +msgid "Zarafa dynamic group" +msgstr "Zarafa dynamische groep" + +#: ../lib/types/zarafaDynamicGroupType.inc:53 +#: ../lib/types/zarafaDynamicGroupType.inc:62 +msgid "Zarafa dynamic groups" +msgstr "Zarafa dynamische groepen" + +#: ../lib/modules/zarafaDynamicGroup.inc:95 +#: ../lib/modules/zarafaDynamicGroup.inc:183 +#: ../lib/modules/zarafaContact.inc:106 ../lib/modules/zarafaContact.inc:123 +#: ../lib/modules/zarafaGroup.inc:112 ../lib/modules/zarafaGroup.inc:127 +#: ../lib/modules/zarafaAddressList.inc:83 +#: ../lib/modules/zarafaAddressList.inc:156 ../lib/modules/zarafaUser.inc:171 +#: ../lib/modules/zarafaUser.inc:394 ../lib/modules/zarafaUser.inc:1773 +#: ../lib/modules/zarafaServer.inc:92 ../lib/modules/zarafaServer.inc:153 +msgid "Zarafa schema" +msgstr "Zarafa schema" + +#: ../lib/modules/zarafaUser.inc:160 ../lib/modules/zarafaUser.inc:164 +msgid "Zarafa will store the user's archives on these servers." +msgstr "Zarafa slaat de gebruiker archieven op deze servers." + +#: ../lib/types/bind.inc:78 ../lib/modules/ddns.inc:102 +#: ../lib/modules/ddns.inc:113 ../lib/modules/ddns.inc:128 +#: ../lib/modules/ddns.inc:394 ../lib/modules/ddns.inc:425 +msgid "Zone name" +msgstr "Zone naam" + +#: ../lib/modules/ddns.inc:103 +msgid "Zone name for the DNS server (e.g. company.local)." +msgstr "Zone naam voor de DNS-server (bijv. company.local)." + +#: ../lib/modules/sambaSamAccount.inc:497 ../lib/modules/windowsUser.inc:438 +msgid "\\\\server\\homes\\smiller" +msgstr "\\\\server\\homes\\smiller" + +#: ../lib/modules/sambaSamAccount.inc:505 ../lib/modules/windowsUser.inc:420 +msgid "\\\\server\\profiles\\smiller" +msgstr "\\\\server\\profielen\\smiller" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "add value" +msgstr "waarde toevoegen" + +#: ../lib/modules/zarafaDynamicGroup.inc:118 ../lib/modules/posixGroup.inc:461 +#: ../lib/modules/zarafaAddressList.inc:106 ../lib/modules/pykotaGroup.inc:150 +#: ../lib/modules/pykotaGroup.inc:159 ../lib/modules/nisnetgroup.inc:114 +#: ../lib/modules/organizationalRole.inc:116 +#: ../lib/modules/windowsGroup.inc:237 ../lib/modules/groupOfNames.inc:128 +msgid "adminstrators" +msgstr "beheerders" + +#: ../templates/config/mainmanage.php:394 +#: ../templates/config/mainmanage.php:430 +msgid "all" +msgstr "alle" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:112 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:95 +msgid "attribute deleted" +msgstr "attribuut verwijderd" + +#: ../lib/modules/sudoRole.inc:148 +msgid "backupRootFileSystem" +msgstr "backupRootFileSystem" + +#: ../lib/modules/pykotaBillingCode.inc:103 +msgid "billingCode01" +msgstr "billingCode01" + +#: ../templates/3rdParty/pla/lib/functions.php:2298 +msgid "browse" +msgstr "verken" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "bytes" +msgstr "bytes" + +#: ../templates/schema/schema.php:220 +msgid "character" +msgstr "teken" + +#: ../templates/schema/schema.php:219 +msgid "characters" +msgstr "tekens" + +#: ../lib/modules/freeRadius.inc:179 +msgid "company.com" +msgstr "bedrijf.nl" + +#: ../templates/3rdParty/pla/lib/PageRender.php:619 +#: ../templates/3rdParty/pla/lib/PageRender.php:988 +msgid "confirm" +msgstr "bevestig" + +#: ../help/help.inc:82 +msgid "dc=yourcompany,dc=com" +msgstr "dc=uwbedrijf, dc=com" + +#: ../templates/config/mainmanage.php:429 ../lib/modules/ppolicyUser.inc:122 +msgid "default" +msgstr "default" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:205 +msgid "delete" +msgstr "verwijderen" + +#: ../templates/3rdParty/pla/lib/PageRender.php:677 +msgid "delete attribute" +msgstr "verwijder attribuut" + +#: ../lib/modules/sambaSamAccount.inc:1543 +#: ../lib/modules/sambaSamAccount.inc:1952 ../lib/modules/zarafaUser.inc:619 +#: ../lib/modules/zarafaUser.inc:1285 ../lib/modules/zarafaUser.inc:1326 +msgid "disabled" +msgstr "uitgeschakeld" + +#: ../lib/modules/sambaSamAccount.inc:1554 +#: ../lib/modules/sambaSamAccount.inc:1963 +msgid "disconnect" +msgstr "loskoppelen" + +#: ../lib/modules/windowsUser.inc:468 ../lib/modules/windowsGroup.inc:245 +msgid "domain" +msgstr "domain" + +#: ../templates/3rdParty/pla/lib/PageRender.php:664 +msgid "download value" +msgstr "download waarde" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:206 +msgid "edit" +msgstr "bewerk" + +#: ../lib/modules/zarafaUser.inc:619 ../lib/modules/zarafaUser.inc:1280 +#: ../lib/modules/zarafaUser.inc:1326 +msgid "enabled" +msgstr "actief" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:481 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:307 +msgid "export" +msgstr "export" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:123 +msgid "false" +msgstr "onwaar" + +#: ../lib/modules/ppolicy.inc:37 +msgid "force" +msgstr "afdwingen" + +#: ../lib/modules/sambaSamAccount.inc:1562 +#: ../lib/modules/sambaSamAccount.inc:1971 +msgid "from any client" +msgstr "vanaf een willekeurige client" + +#: ../lib/modules/sambaSamAccount.inc:1563 +#: ../lib/modules/sambaSamAccount.inc:1972 +msgid "from previous client only" +msgstr "van de vorige klant alleen" + +#: ../lib/modules/posixAccount.inc:306 ../lib/modules/posixAccount.inc:366 +#: ../lib/modules/nisnetgroup.inc:128 ../lib/modules/groupOfNamesUser.inc:73 +msgid "group01,group02" +msgstr "groep01,groep02" + +#: ../lib/modules/freeRadius.inc:187 +msgid "group01;group02" +msgstr "groep01;groep02" + +#: ../lib/modules/zarafaDynamicGroup.inc:132 +#: ../lib/modules/zarafaGroup.inc:164 +msgid "group1@company.com,group2@company.com" +msgstr "group1@company.com,group2@company.com" + +#: ../lib/modules/zarafaDynamicGroup.inc:126 +#: ../lib/modules/zarafaGroup.inc:172 ../lib/modules/windowsGroup.inc:221 +msgid "group@company.com" +msgstr "groep@bedrijf.nl" + +#: ../templates/3rdParty/pla/lib/PageRender.php:471 +msgid "hint" +msgstr "tip" + +#: ../lib/modules/quota.inc:198 ../lib/modules/quota.inc:200 +msgid "hours" +msgstr "uren" + +#: ../lib/modules/windowsUser.inc:376 ../lib/modules/windowsUser.inc:382 +#: ../lib/modules/inetOrgPerson.inc:480 +msgid "http://www.company.com" +msgstr "http://www.bedrijf.nl" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:294 +msgid "import" +msgstr "import" + +#: ../lib/modules/sambaSamAccount.inc:1547 +#: ../lib/modules/sambaSamAccount.inc:1956 +msgid "input off, notify off" +msgstr "input off, notify off" + +#: ../lib/modules/sambaSamAccount.inc:1546 +#: ../lib/modules/sambaSamAccount.inc:1955 +msgid "input off, notify on" +msgstr "input off, notify on" + +#: ../lib/modules/sambaSamAccount.inc:1545 +#: ../lib/modules/sambaSamAccount.inc:1954 +msgid "input on, notify off" +msgstr "input on, notify off" + +#: ../lib/modules/sambaSamAccount.inc:1544 +#: ../lib/modules/sambaSamAccount.inc:1953 +msgid "input on, notify on" +msgstr "input on, notify on" + +#: ../help/help.inc:64 +msgid "" +"ldap://localhost:389 connects to localhost using a standard LDAP connection " +"on port 389" +msgstr "" +"ldap://localhost:389 verbindt met een standaard LDAP connectie aan localhost " +"via poort 389" + +#: ../help/help.inc:66 +msgid "" +"ldaps://ldap.domain.com connects to ldap.domain.com using an encrypted LDAP " +"connection." +msgstr "" +"ldaps://ldap.domain.com connect naar ldap.domain.com wat gebruik maakt van " +"een versleutelde LDAP connectie." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:100 +msgid "list" +msgstr "lijst" + +#: ../templates/3rdParty/pla/lib/config_default.php:494 +#: ../templates/3rdParty/pla/lib/ds.php:318 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:529 +msgid "login" +msgstr "Login" + +#: ../lib/modules/posixAccount.inc:391 +msgid "machines" +msgstr "machines" + +#: ../lib/modules/inetLocalMailRecipient.inc:114 +msgid "mail.yourdomain.org" +msgstr "mail.yourdomain.org" + +#: ../lib/modules/sambaSamAccount.inc:416 +#: ../lib/modules/sambaSamAccount.inc:540 +msgid "mydomain" +msgstr "mijndomein" + +#: ../lib/modules/sambaSamAccount.inc:473 +msgid "mygroup" +msgstr "mijngroep" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:504 +msgid "new" +msgstr "nieuw" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:454 +#: ../lib/modules/zarafaDynamicGroup.inc:457 +#: ../lib/modules/zarafaContact.inc:568 ../lib/modules/zarafaGroup.inc:651 +#: ../lib/modules/zarafaGroup.inc:658 ../lib/modules/zarafaGroup.inc:661 +#: ../lib/modules/zarafaAddressList.inc:336 +#: ../lib/modules/zarafaAddressList.inc:339 +#: ../lib/modules/sambaSamAccount.inc:584 +#: ../lib/modules/sambaSamAccount.inc:1920 +#: ../lib/modules/sambaSamAccount.inc:1928 +#: ../lib/modules/sambaSamAccount.inc:1938 +#: ../lib/modules/sambaSamAccount.inc:1943 +#: ../lib/modules/sambaSamAccount.inc:1948 ../lib/modules/zarafaUser.inc:602 +#: ../lib/modules/zarafaUser.inc:1238 ../lib/modules/zarafaUser.inc:1253 +#: ../lib/modules/zarafaUser.inc:1264 ../lib/modules/zarafaUser.inc:1270 +#: ../lib/modules/windowsUser.inc:388 ../lib/modules/windowsUser.inc:389 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:396 +#: ../lib/modules/windowsUser.inc:397 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:404 ../lib/modules/windowsUser.inc:405 +#: ../lib/modules/windowsUser.inc:406 ../lib/modules/windowsUser.inc:412 +#: ../lib/modules/windowsUser.inc:413 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:1177 ../lib/modules/windowsUser.inc:1615 +#: ../lib/modules/windowsUser.inc:1620 ../lib/modules/windowsUser.inc:1625 +#: ../lib/modules/windowsUser.inc:1630 ../lib/modules/ppolicy.inc:35 +#: ../lib/modules/ppolicy.inc:481 ../lib/modules/ppolicy.inc:491 +#: ../lib/modules/ppolicy.inc:496 ../lib/modules/ppolicy.inc:503 +#: ../lib/modules/ppolicy.inc:506 ../lib/modules/generalInformation.inc:100 +#: ../lib/modules/zarafaServer.inc:358 ../lib/modules/customFields.inc:2890 +#: ../lib/modules/fixed_ip.inc:752 +msgid "no" +msgstr "nee" + +#: ../templates/3rdParty/pla/lib/functions.php:1902 +msgid "no description available" +msgstr "Geen omschrijving" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:68 +msgid "no entries" +msgstr "geen items" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:84 +msgid "no new attributes available for this entry" +msgstr "geen nieuwe attributen beschikbaar voor dit item" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:135 +msgid "no new binary attributes available for this entry" +msgstr "geen nieuwe binaire attributen beschikbaar voor dit item" + +#: ../templates/schema/schema.php:160 ../templates/schema/schema.php:229 +#: ../templates/schema/schema.php:240 ../templates/schema/schema.php:289 +#: ../templates/schema/schema.php:355 ../templates/schema/schema.php:370 +#: ../templates/schema/schema.php:404 ../templates/schema/schema.php:426 +#: ../templates/3rdParty/pla/lib/functions.php:2612 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1573 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1581 +msgid "none" +msgstr "geen" + +#: ../templates/3rdParty/pla/lib/PageRender.php:1109 +msgid "none, remove value" +msgstr "geen, verwijder waarde" + +#: ../templates/schema/schema.php:216 +msgid "not applicable" +msgstr "niet toepasbaar" + +#: ../templates/schema/schema.php:167 ../templates/schema/schema.php:172 +#: ../templates/schema/schema.php:177 ../templates/schema/schema.php:210 +msgid "not specified" +msgstr "niet gespecificeerd" + +#: ../help/help.inc:76 +msgid "" +"ou=People,dc=yourcompany,dc=com will read and store all accounts in this " +"subtree." +msgstr "" +"ou=People,dc=yourcompany,dc=com zal alle accounts in deze subtree lezen en " +"opslaan" + +#: ../lib/modules/eduPerson.inc:202 ../lib/modules/eduPerson.inc:208 +#: ../lib/modules/eduPerson.inc:214 +msgid "ou=accounts,dc=yourdomain,dc=org" +msgstr "ou=accounts,dc=uwbedrijf, dc=nl" + +#: ../lib/modules/posixAccount.inc:377 +msgid "pc01$" +msgstr "pc01$" + +#: ../lib/modules/posixAccount.inc:400 +msgid "pc01,Room 2.34" +msgstr "pc01,Kamer 2.34" + +#: ../lib/modules/hostObject.inc:93 +msgid "pc01,pc02" +msgstr "pc01,pc02" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +msgid "pixels" +msgstr "pixels" + +#: ../lib/modules/pykotaPrinter.inc:148 +msgid "printer01" +msgstr "printer01" + +#: ../lib/modules/pykotaPrinter.inc:188 +msgid "printergroup1" +msgstr "printergroup1" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:54 +msgid "read only" +msgstr "alleen-lezen" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:251 +msgid "refresh" +msgstr "ververs" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2126 +msgid "rename" +msgstr "hernoem" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 ../lib/html.inc:797 +#: ../lib/html.inc:1708 ../lib/html.inc:2285 +msgid "required" +msgstr "verplicht" + +#: ../lib/modules/sambaSamAccount.inc:1555 +#: ../lib/modules/sambaSamAccount.inc:1964 +msgid "reset" +msgstr "reset" + +#: ../lib/modules/organizationalRoleUser.inc:73 +msgid "role01,role02" +msgstr "role01,role02" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:237 +msgid "search" +msgstr "zoek" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:472 +msgid "seconds" +msgstr "seconden" + +#: ../lib/modules/mitKerberos.inc:244 ../lib/modules/asteriskAccount.inc:327 +#: ../lib/modules/posixGroup.inc:444 ../lib/modules/sambaSamAccount.inc:428 +#: ../lib/modules/posixAccount.inc:334 ../lib/modules/windowsUser.inc:274 +#: ../lib/modules/inetOrgPerson.inc:2088 +#: ../lib/modules/asteriskVoicemail.inc:167 +#: ../lib/modules/heimdalKerberos.inc:213 +msgid "secret" +msgstr "geheim" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1263 +msgid "select the rdn attribute" +msgstr "selecteer het RDN attribuut" + +#: ../lib/modules/mitKerberos.inc:213 ../lib/modules/uidObject.inc:69 +#: ../lib/modules/posixAccount.inc:285 ../lib/modules/windowsUser.inc:266 +#: ../lib/modules/windowsUser.inc:451 ../lib/modules/windowsUser.inc:460 +#: ../lib/modules/pykotaUser.inc:192 ../lib/modules/pykotaUser.inc:210 +#: ../lib/modules/inetOrgPerson.inc:2079 +#: ../lib/modules/heimdalKerberos.inc:182 ../lib/modules/nisMailAlias.inc:110 +msgid "smiller" +msgstr "smiller" + +#: ../lib/modules/inetLocalMailRecipient.inc:102 +msgid "smiller@otherdomain.org" +msgstr "smiller@otherdomain.org" + +#: ../lib/modules/inetLocalMailRecipient.inc:108 +msgid "smiller@yourdomain.org" +msgstr "smiller@yourdomain.org" + +#: ../lib/modules/ldapPublicKey.inc:90 +msgid "ssh-dss 234234 user@host" +msgstr "ssh-dss 234234 user@host" + +#: ../templates/3rdParty/pla/lib/PageRender.php:882 +msgid "structural" +msgstr "structureel" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:102 +msgid "table" +msgstr "tabel" + +#: ../lib/modules/asteriskExtension.inc:154 +msgid "test" +msgstr "test" + +#: ../lib/modules/asteriskExtension.inc:174 +msgid "test-start" +msgstr "test-start" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:122 +msgid "true" +msgstr "waar" + +#: ../lib/modules/ipHost.inc:99 ../lib/modules/inetOrgPerson.inc:366 +#: ../lib/modules/aliasEntry.inc:71 ../lib/modules/qmailGroup.inc:281 +#: ../lib/modules/qmailGroup.inc:289 ../lib/modules/qmailGroup.inc:297 +msgid "uid=smiller,ou=People,dc=company,dc=com" +msgstr "uid=smiller,ou=People,dc=uwBedrijf,dc=nl" + +#: ../templates/config/mainmanage.php:312 +msgid "use custom CA certificates" +msgstr "Gebruik aangepaste CA-certificaten" + +#: ../templates/config/mainmanage.php:309 +msgid "use system certificates" +msgstr "Gebruik systeem certificaten" + +#: ../lib/modules/posixGroup.inc:452 +msgid "user01,user02,user03" +msgstr "gebruiker01,gebruiker02,gebruiker03" + +#: ../lib/modules/qmailUser.inc:273 ../lib/modules/qmailUser.inc:279 +#: ../lib/modules/qmailUser.inc:301 ../lib/modules/eduPerson.inc:163 +#: ../lib/modules/windowsUser.inc:352 ../lib/modules/windowsUser.inc:358 +#: ../lib/modules/pykotaUser.inc:220 ../lib/modules/inetOrgPerson.inc:462 +#: ../lib/modules/kolabSharedFolder.inc:183 +#: ../lib/modules/asteriskVoicemail.inc:180 ../lib/modules/qmailGroup.inc:339 +#: ../lib/modules/qmailGroup.inc:347 ../lib/modules/qmailGroup.inc:355 +msgid "user@company.com" +msgstr "gebruiker@bedrijf.com" + +#: ../lib/modules/posixAccount.inc:299 +msgid "users" +msgstr "gebruikers" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:59 +msgid "view entries" +msgstr "bekijk items" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +msgid "with " +msgstr "met" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:452 +#: ../lib/modules/zarafaDynamicGroup.inc:459 +#: ../lib/modules/zarafaContact.inc:570 ../lib/modules/zarafaGroup.inc:653 +#: ../lib/modules/zarafaGroup.inc:656 ../lib/modules/zarafaGroup.inc:663 +#: ../lib/modules/zarafaAddressList.inc:334 +#: ../lib/modules/zarafaAddressList.inc:341 +#: ../lib/modules/sambaSamAccount.inc:584 +#: ../lib/modules/sambaSamAccount.inc:1918 +#: ../lib/modules/sambaSamAccount.inc:1926 +#: ../lib/modules/sambaSamAccount.inc:1936 +#: ../lib/modules/sambaSamAccount.inc:1941 +#: ../lib/modules/sambaSamAccount.inc:1946 ../lib/modules/zarafaUser.inc:602 +#: ../lib/modules/zarafaUser.inc:1240 ../lib/modules/zarafaUser.inc:1256 +#: ../lib/modules/zarafaUser.inc:1266 ../lib/modules/zarafaUser.inc:1272 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:406 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:1177 ../lib/modules/windowsUser.inc:1520 +#: ../lib/modules/windowsUser.inc:1617 ../lib/modules/windowsUser.inc:1622 +#: ../lib/modules/windowsUser.inc:1627 ../lib/modules/windowsUser.inc:1632 +#: ../lib/modules/ppolicy.inc:36 ../lib/modules/ppolicy.inc:493 +#: ../lib/modules/ppolicy.inc:498 ../lib/modules/ppolicy.inc:501 +#: ../lib/modules/ppolicy.inc:508 ../lib/modules/inetOrgPerson.inc:536 +#: ../lib/modules/generalInformation.inc:102 +#: ../lib/modules/zarafaServer.inc:360 ../lib/modules/customFields.inc:2890 +#: ../lib/modules/fixed_ip.inc:750 +msgid "yes" +msgstr "ja" + +#~ msgid "Mycity" +#~ msgstr "Mijnwoonplaats" + +#~ msgid "The IP address \"%s\" is invalid." +#~ msgstr "Het IP-adres \"%s\"is ongeldig!" + +#~ msgid "" +#~ "You cannot add the Kolab group and shared folder extension at the same " +#~ "time." +#~ msgstr "" +#~ "De Kolab group en shared folder extensies kunnen niet gelijktijdig " +#~ "gebruikt worden." + +#~ msgid "" +#~ "Each line represents one LDAP attribute. The options are separated by \"::" +#~ "\". The first option specifies if the attribute is mandatory. It can have " +#~ "the values \"optional\" and \"required\"." +#~ msgstr "" +#~ "Elke lijn staat voor een LDAP-kenmerk. De opties worden gescheiden door " +#~ "\"::\". De eerste optie geeft aan of het attribuut verplicht is. Het kan " +#~ "de waarde \"optional\" of \"required\" hebben." + +#~ msgid "New Authorized Service" +#~ msgstr "Nieuwe Authorized Service" + +#~ msgid "New IP address" +#~ msgstr "Nieuw IP adres" + +#~ msgid "New MAC address" +#~ msgstr "Nieuw MAC adres" + +#~ msgid "New SSH public key" +#~ msgstr "Nieuwe SSH publieke sleutel" + +#~ msgid "Options four and five are used for input validation." +#~ msgstr "Opties vier en vijf worden gebruikt voor de validatie van invoer." + +#~ msgid "" +#~ "Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") and an " +#~ "error message if the value does not match it. For a syntax description " +#~ "see here." +#~ msgstr "" +#~ "Geef de reguliere expressie (bijv. \"/^[0-9a-zA-Z]+$/\") en een " +#~ "foutmelding voor het geval de waarden niet overeenkomen. Voor een syntax " +#~ "beschrijving zie hier." + +#~ msgid "" +#~ "The second option is the LDAP attribute name and the third one is a " +#~ "descriptive label for it." +#~ msgstr "" +#~ "De tweede optie is de LDAP-attribuutnaam en de derde is voor een " +#~ "beschrijvend label." + +#~ msgid "User ID" +#~ msgstr "Gebruiker ID" + +#~ msgid "Deleted account" +#~ msgstr "Verwijderde account" + +#~ msgid "Invalid account" +#~ msgstr "Ongeldig account" + +#~ msgid "" +#~ "Password contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +#~ "and #*,.;:_-+!%&/|?{[()]}=@$ !" +#~ msgstr "" +#~ "Wachtwoord bevat ongeldige tekens. Geldige tekens: a-z, A-Z, 0-9 en #*,.;:" +#~ "_-+!%&/|?{[()]}=@$ !" + +#~ msgid "Sync Asterisk voicemail password with Unix password" +#~ msgstr "Sync Asterisk wachtwoord met Unix wachtwoord" + +#~ msgid "Sync Kerberos password with Unix password" +#~ msgstr "Sync Kerberos wachtwoord met Unix wachtwoord" + +#~ msgid "The domain name needs to have at least 3 characters." +#~ msgstr "De domeinnaam dient te beschikken over minimaal 3 tekens." + +#~ msgid "" +#~ "To disable login use /bin/false. The list of shells is read from lam/" +#~ "config/shells" +#~ msgstr "" +#~ "Om een login onmogelijk te maken gebruik /bin/false. Een lijst met " +#~ "mogelijke shells wordt uit lam/config/shells gehaald." + +#~ msgid "Unable to read sambaSID attribute." +#~ msgstr "Kan sambaSID attribuut niet lezen." + +#~ msgid "" +#~ "Unable to sync the time when the user can/must change his password " +#~ "because no domain was found." +#~ msgstr "" +#~ "Kan niet het tijdstip waarop de gebruiker zijn wachtwoord kan / moet " +#~ "wijzigen niet synchroniseren, omdat er geen domein werd gevonden ." + +#~ msgid "" +#~ "You are using a capital letters. This can cause problems because Windows " +#~ "isn't case-sensitive." +#~ msgstr "" +#~ "Er worden hoofdletters gebruikt. Dit kan problemen geven omdat Windows " +#~ "niet hoofdletter gevoelig is." + +#~ msgid "" +#~ "You are using a capital letters. This can cause problems because windows " +#~ "isn't case-sensitive." +#~ msgstr "" +#~ "Er worden hoofdletters gebruikt. Dit kan problemen geven omdat Windows " +#~ "niet hoofdletter gevoelig is." + +#~ msgid "Country" +#~ msgstr "Land" + +#~ msgid "Country name is invalid!" +#~ msgstr "Landnaam is ongeldig!" + +#~ msgid "Free/Busy interval" +#~ msgstr "Vrij/bezig interval" + +#~ msgid "Free/Busy interval must be a number!" +#~ msgstr "Vrij/bezig interval moet een getal zijn!" + +#~ msgid "Germany" +#~ msgstr "Duitsland" + +#~ msgid "Mail quota must be a number!" +#~ msgstr "Mail quota moet een getal zijn!" + +#~ msgid "" +#~ "The Cyrus mail quota for users in MBytes, leave blank for unlimited space." +#~ msgstr "" +#~ "The Cyrus mail quota voor gebruikers in MBytes, open laten voor " +#~ "ongelimiteerde ruimte." + +#~ msgid "" +#~ "This is the time limit (in days) for other users who want to check future " +#~ "appointments. If you leave this blank the default (60 days) will be set." +#~ msgstr "" +#~ "Dit is de tijdslimiet (in dagen) voor andere gebruikers die hun " +#~ "aankomende afspraken willen controleren. Indien leeg wordt de default " +#~ "waarde (60 dagen) gehanteerd." + +#~ msgid "YourCompany, Human Resources" +#~ msgstr "UwBedrijf, Human Resources" + +#~ msgid "%s DHCP(s) found" +#~ msgstr "%s DHCP(s) gevonden" + +#~ msgid "%s NIS object(s) found" +#~ msgstr "%s NIS object(en) gevonden" + +#~ msgid "%s address list(s) found" +#~ msgstr "%s adres lijst(en) gevonden" + +#~ msgid "%s alias(es) found" +#~ msgstr "%s alias(sen) gevonden" + +#~ msgid "%s automount entry(ies) found" +#~ msgstr "%s automount item(s) gevonden" + +#~ msgid "%s domain(s) found" +#~ msgstr "%s domein(en) gevonden" + +#~ msgid "%s extension(s) found" +#~ msgstr "%s extensie(s) gevonden" + +#~ msgid "%s group(s) found" +#~ msgstr "%s groep(en) gevonden" + +#~ msgid "%s host(s) found" +#~ msgstr "%s host(s) gevonden" + +#~ msgid "%s object(s) found" +#~ msgstr "%s object(en) gevonden" + +#~ msgid "%s policy(ies) found" +#~ msgstr "%s policy(ies) gevonden" + +#~ msgid "%s sudo role(s) found" +#~ msgstr "%s sudo rol(len) gevonden" + +#~ msgid "%s user(s) found" +#~ msgstr "%s gebruiker(s) gevonden" + +#~ msgid "Add phpGroupWare extension" +#~ msgstr "Voeg phpGroupWare extensie toe" + +#~ msgid "Delete DHCP(s)" +#~ msgstr "Verwijder DHCP(s)" + +#~ msgid "Delete host(s)" +#~ msgstr "Verwijder host(s)" + +#~ msgid "Delete object" +#~ msgstr "Verwijder object" + +#~ msgid "Delete user(s)" +#~ msgstr "Verwijder gebruiker(s)" + +#~ msgid "Here you can specify if the account is active or inactive." +#~ msgstr "Hier kunt u aangeven of de account actief of inactief is." + +#~ msgid "Host(s)" +#~ msgstr "Host(s)" + +#~ msgid "" +#~ "If you set this to \"true\" then the phpGroupware extension will be added." +#~ msgstr "" +#~ "Indien je dit op \"true \" zet dan zal de phpGroupware extensie worden " +#~ "toegevoegd." + +#~ msgid "" +#~ "In order to add these objectClass(es) to this entry, you must specify " +#~ "%s new attributes that this object class requires." +#~ msgstr "" +#~ "Om deze objectClass(n) toe te voegen aan dit item, moet u de vereist " +#~ "nieuwe attributen %s opgeven." + +#~ msgid "Last login from" +#~ msgstr "Laatste login van" + +#~ msgid "No extension(s) found!" +#~ msgstr "Geen extentie(s) gevonden!" + +#~ msgid "Please enter \"active\" or \"inactive\"." +#~ msgstr "Voer \"active\" of \"inactive\" in." + +#~ msgid "Reenter new master password" +#~ msgstr "Nieuw master wachtwoord opnieuw ingevn" + +#~ msgid "Reenter profile password" +#~ msgstr "Profiel wachtwoord opnieuw ingeven" + +#~ msgid "Remove phpGroupWare extension" +#~ msgstr "Verwijder phpGroupWare extensie" + +#~ msgid "Run group(s)" +#~ msgstr "Run groep(en)" + +#~ msgid "SSH public key(s)" +#~ msgstr "SSH publiek sleutel(s)" + +#~ msgid "The password(s) were set to:" +#~ msgstr "De wachtwoord(en) werden ingesteld op:" + +#~ msgid "Unlock Samba account" +#~ msgstr "Ontgrendel Samba account" + +#~ msgid "" +#~ "User name of the user who should be created. Valid characters are: a-z,A-" +#~ "Z,0-9, .-_. If user name is already used user name will be expanded with " +#~ "a number. The next free number will be used. Warning: Older systems have " +#~ "problems with user names longer than 8 characters. You can not log in to " +#~ "Windows if user name is longer than 16 characters." +#~ msgstr "" +#~ "Naam van de gebruiker die gecreerd moet worden. Geldige tekens zijn: a-" +#~ "z, 0-9, .-_. LAM staat niet toe dat een getal als eerste teken gebruikt " +#~ "wordt omdat useradd dat ook niet toestaat. LAM staat ook hoofdletter " +#~ "gebruik (A-Z) niet toe omdat het tot serieuze problemen kan leiden. Als " +#~ "de gebruikersnaam al in gebruik is wordt de naam uitgebreid met een " +#~ "getal. Het eerst vrije getal wordt gebruikt. Waarschuwing: oudere " +#~ "systemen hebben problemen met gebruikersnamen langer dan acht tekens. " +#~ "Verder, je kunt niet inlooggen op een Windows systeem als de " +#~ "gebruikersnaam langer dan 16 tekens is." + +#~ msgid "User(s)" +#~ msgstr "Gebruiker(s)" + +#~ msgid "active" +#~ msgstr "actief" + +#~ msgid "inactive" +#~ msgstr "Niet actief" + +#~ msgid "(example: cn=MyNewPerson)" +#~ msgstr "(voorbeeld: cn=MijnNieuwPersoon)" + +#~ msgid "(hint: do not include \"ou=\")" +#~ msgstr "(hint: laat \"ou=\" weg)" + +#~ msgid "Container DN" +#~ msgstr "Container DN" + +#~ msgid "Data field for RDN is empty!" +#~ msgstr "Data veld voor RDN is leeg!" + +#~ msgid "Next" +#~ msgstr "Volgende" + +#~ msgid "Optional binary attributes" +#~ msgstr "Optioneel binaire attributen" + +#~ msgid "Organizational unit" +#~ msgstr "Organizational unit (Organisatorisch eenheid)" + +#~ msgid "RDN" +#~ msgstr "RDN" + +#~ msgid "Really create this new OU?" +#~ msgstr "Werkelijk deze nieuwe OU aanmaken?" + +#~ msgid "Relative distinguished name" +#~ msgstr "Relative distinguished name" + +#~ msgid "Search Scope" +#~ msgstr "Zoekbereik" + +#~ msgid "Specifies whether the user is an admin." +#~ msgstr "Geeft aan of de gebruiker een admin is." + +#~ msgid "Step 1 of 2: Name and object class(es)" +#~ msgstr "Stap 1 van 2: Naam en object klas(sen)" + +#~ msgid "Step 2 of 2: Specify attributes and values" +#~ msgstr "Stap 2 van 2: Specificeer attributen en waarden" + +#~ msgid "" +#~ "You did not select any object classes for this object. Please go back and " +#~ "do so." +#~ msgstr "" +#~ "Er is geen enkele objectklasse gekozen voor dit object. Ga terug en kies " +#~ "er een." + +#~ msgid "Abort" +#~ msgstr "Afbreken" + +#~ msgid "Account lists - Filters" +#~ msgstr "Lijst accounts - Filters" + +#~ msgid "Account type selection" +#~ msgstr "Selectie type account" + +#~ msgid "Add section or static text" +#~ msgstr "Toevoegen sectie of vaste tekst" + +#~ msgid "Apply" +#~ msgstr "Toepassen" + +#~ msgid "Available PDF fields" +#~ msgstr "Beschikbare PDF velden" + +#~ msgid "Back to OU-Editor" +#~ msgstr "Terug naar OU-Editor" + +#~ msgid "Back to PDF Editor" +#~ msgstr "Terug naar PDF editor" + +#~ msgid "Back to preferences..." +#~ msgstr "Terug naar voorkeuren..." + +#~ msgid "Back to profile editor" +#~ msgstr "Terug naar profiel editor" + +#~ msgid "Cache timeout is invalid!" +#~ msgstr "Cache timeout is ongeldig!" + +#~ msgid "Changed value %s because only numeric values are allowed." +#~ msgstr "Waarde %s is veranderd omdat alleen getallen toegestaan zijn." + +#~ msgid "Configuration wizard" +#~ msgstr "Configuratie hulp" + +#~ msgid "Create Account" +#~ msgstr "Account maken" + +#~ msgid "Create PDF for all aliases" +#~ msgstr "PDF voor alle aliassen maken" + +#~ msgid "Create PDF for all domains" +#~ msgstr "PDF voor alle domeinen maken" + +#~ msgid "Create PDF for all hosts" +#~ msgstr "PDF voor alle hosts maken" + +#~ msgid "Create PDF for all objects" +#~ msgstr "PDF voor alle hosts maken" + +#~ msgid "Create PDF for selected alias(es)" +#~ msgstr "PDF voor geselecteerde alias(sen) maken" + +#~ msgid "Create PDF for selected domain(s)" +#~ msgstr "PDF voor geslecteerde domein(en) maken" + +#~ msgid "Create PDF for selected group(s)" +#~ msgstr "PDF voor geselecteerde groep(en) maken" + +#~ msgid "Create PDF for selected object(s)" +#~ msgstr "PDF voor geselecteerde object(en) maken" + +#~ msgid "Create PDF for selected user(s)" +#~ msgstr "PDF voor geselecteerde gebruiker(s) maken" + +#~ msgid "Delegates has invalid format!" +#~ msgstr "Gemachtige heeft ongeldig formaat!" + +#~ msgid "Delete Account" +#~ msgstr "Verwijder account" + +#~ msgid "Delete Kolab account" +#~ msgstr "Verwijder Kolab account" + +#~ msgid "Deleting. Please stand by ..." +#~ msgstr "Bezig met verwijderen. Moment ..." + +#~ msgid "Donate" +#~ msgstr "Donatie" + +#~ msgid "Drive letter assigned on windows workstations as homedirectory." +#~ msgstr "" +#~ "Toegekend stationsaanduiding aan homedirectory op het windows werkstation." + +#~ msgid "Edit account types" +#~ msgstr "Bewerk account types" + +#~ msgid "Edit logon hours" +#~ msgstr "Bewerk inloguren" + +#~ msgid "Entry %s deleted successfully." +#~ msgstr "Entree %s met succes verwijderd." + +#~ msgid "" +#~ "File name and path relative to the netlogon-share which should be " +#~ "executed on logon. $user and $group are replaced with user and group name." +#~ msgstr "" +#~ "Bestandsnaam en pad, relatief ten opzichte van netlogon-share. dat " +#~ "uitgevoerd moet worden tijdens de logon. $user en $group worden vervangen " +#~ "door gebruikers- en groepsnaam." + +#~ msgid "File upload failed!" +#~ msgstr "Bestand upload is mislukt!" + +#~ msgid "GID ranges for Unix groups" +#~ msgstr "GID range voor Unix groepen" + +#~ msgid "" +#~ "Host name contains invalid characters. Valid characters are: a-z, A-Z, " +#~ "0-9 and .-_ ! Host name must end with $ !" +#~ msgstr "" +#~ "Host naam bevat ongeldige tekens. Geldige tekens zijn: a-z, A-Z, 0-9 " +#~ "and .-_ ! Host naam moet eindigen op $ !" + +#~ msgid "" +#~ "If you want to create domain administrators or other special users use " +#~ "this option." +#~ msgstr "" +#~ "Als u een domeinbeheerder of andere speciale gebruikers wilt aanmaken " +#~ "gebruik dan deze optie." + +#~ msgid "Invalid password" +#~ msgstr "Ongeldig wachtwoord" + +#~ msgid "Invalid/Missing Message type" +#~ msgstr "Ongeldig/ontbrekend type boodschap" + +#~ msgid "" +#~ "LAM can recursively delete this entry and all of its children. See below " +#~ "for a list of all the entries that this action will delete. Do you want " +#~ "to do this?" +#~ msgstr "" +#~ "LAM kan deze entree en alle onderliggende gegevens recursief verwijderen. " +#~ "Hieronder staat aan een lijst met alle entrees die deze actie kan " +#~ "verwijderen. Doorgaan?" + +#~ msgid "LDAP" +#~ msgstr "LDAP" + +#~ msgid "Master Password:" +#~ msgstr "Master wachtwoord:" + +#~ msgid "Max list entries is invalid!" +#~ msgstr "Maximum lijstentrees is niet valide!" + +#~ msgid "Maximum GID number for Unix groups" +#~ msgstr "Maximum GID nummer voor Unix groepen" + +#~ msgid "Maximum UID number for Unix accounts (hosts)" +#~ msgstr "Maximum UID nummer voor Unix accounts (hosts)" + +#~ msgid "Maximum UID number for Unix accounts (users)" +#~ msgstr "Maximum UID nummer voor Unix accounts (gebruikers)" + +#~ msgid "Minimum GID number for Unix groups" +#~ msgstr "Minimum GID nummer voor Unix groepen" + +#~ msgid "Minimum UID number for Unix accounts (hosts)" +#~ msgstr "Minimum UID nummer voor Unix accounts (hosts)" + +#~ msgid "" +#~ "Note: You will get an \"inappropriate matching\" error if you have not " +#~ "setup an EQUALITY rule on your LDAP server for this attribute." +#~ msgstr "" +#~ "Aantekening: U zult een \"inappropriate matching\" (niet passende " +#~ "combinatie) fout krijgen als u geen setup voor EQUALITY regel heeft in " +#~ "de LDAP server voor dit attribuut." + +#~ msgid "ObjectClass %s required but not defined in LDAP." +#~ msgstr "Objectklasse %s is verplicht maar niet gedefinieerd in LDAP." + +#~ msgid "Password hash type for Unix accounts" +#~ msgstr "Type hash wachtwoord voor de Unix accounts" + +#~ msgid "Password hash type for Unix groups" +#~ msgstr "Type hash wachtwoord voor de Unix groepen" + +#~ msgid "" +#~ "Please enter a comma separated list of host names where this user is " +#~ "allowed to log in. Can be left empty." +#~ msgstr "" +#~ "S.v.p. een kommagescheiden lijst van hostnamen invoeren waar deze " +#~ "gebruiker mag inloggen. Mag open gelaten worden." + +#~ msgid "Please enter the same password in both password-fields." +#~ msgstr "S.v.p. hetzelfde wachtwoord in beide wachtwoordvelden invoeren." + +#~ msgid "" +#~ "Please report this error to the Bug-Tracker at {link=http://lam." +#~ "sourceforge.net}LDAP Account Manager Development Team{endlink}. The error " +#~ "number is {bold}0001:Invalid/Missing Message type.{endbold} Thank you." +#~ msgstr "" +#~ "S.v.p. een rapport van deze fout versturen naar Bug-Tracker op " +#~ "{link=http://lam.sourceforge.net}LDAP Account Manager Development " +#~ "Team{endlink}. Het fout nummer is {bold}0001:Invalid/Missing Message type." +#~ "{endbold} Bedankt." + +#~ msgid "Please select page:" +#~ msgstr "S.v.p. pagina selecteren:" + +#~ msgid "Please select your user name and enter your password to log in" +#~ msgstr "" +#~ "S.v.p. uw gebruikersnaam selecteren en geef uw wachtwoord om in te loggen" + +#~ msgid "Samba 2" +#~ msgstr "Samba 2" + +#~ msgid "Scope" +#~ msgstr "Bereik" + +#~ msgid "Server of external script" +#~ msgstr "Server van extern script" + +#~ msgid "Submit" +#~ msgstr "Verzend" + +#~ msgid "Text for user PDF" +#~ msgstr "Tekst voor gebruiker PDF" + +#~ msgid "There are new required attributes which need to be set." +#~ msgstr "Er zijn nieuwe verplichte attributen die moeten worden ingesteld." + +#~ msgid "" +#~ "This is an example how it would look in your spreadsheet program before " +#~ "you convert to CSV:" +#~ msgstr "" +#~ "Dit is een voorbeeld hoe het eruit zou zien in een spreadsheet voordat " +#~ "het geconverteerd wordt naar CVS:" + +#~ msgid "This saves your account to the LDAP database." +#~ msgstr "Dit slaat je account op in de LDAP database." + +#~ msgid "This value can only be \\\"true\\\" or \\\"false\\\"!" +#~ msgstr "Deze waarde kan alleen maar \\\"true\\\" or \\\"false\\\" zijn!" + +#~ msgid "" +#~ "This will set an invalid password which prevents logins with this account." +#~ msgstr "" +#~ "Dit zal een ongeldig wachtwoord veroorzaken waardoor dit account niet " +#~ "meer kan inloggen." + +#~ msgid "" +#~ "Unable to load available languages. Setting English as default language. " +#~ "For further instructions please contact the Admin of this site." +#~ msgstr "" +#~ "Niet mogelijk de beschibare talen te laden. Engels wordt als standaard " +#~ "taal inegsteld. Voor nadere instructies raadpleeg de beheerder van deze " +#~ "site." + +#~ msgid "Unix workstations" +#~ msgstr "Unix werkstations" + +#~ msgid "Unix workstations are invalid!" +#~ msgstr "Unix werkstations zijn ongeldig!" + +#~ msgid "" +#~ "Use it at your own risk and read the documentation for lamdaemon before " +#~ "you use it!" +#~ msgstr "" +#~ "Gebruik is voor eigen risico en lees de documentatie van lamdaemon " +#~ "voordat het gebruikt wordt!" + +#~ msgid "Use unix password" +#~ msgstr "Gebruik Unix wachtwoord" + +#~ msgid "Users who are member of the current group." +#~ msgstr "Gebruikers welke lid zijn van de huidige groep." + +#~ msgid "Using template:" +#~ msgstr "Het volgende sjabloon wordt gebruikt:" + +#~ msgid "Windows group RID" +#~ msgstr "Windows groep RID" + +#~ msgid "You cannot use this password options at the same time." +#~ msgstr "U kunt deze wachtwoordopties niet tegelijkertijd gebruiken" + +#~ msgid "You have been logged off from LDAP Account Manager." +#~ msgstr "U bent uitgelogd van LDAP account manager." + +#~ msgid "jpegPhoto contains errors" +#~ msgstr "jpegPhoto bevat fouten" diff --git a/lam/locale/pl_PL/LC_MESSAGES/messages.mo b/lam/locale/pl_PL/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..e16ad8d6 Binary files /dev/null and b/lam/locale/pl_PL/LC_MESSAGES/messages.mo differ diff --git a/lam/locale/pl_PL/LC_MESSAGES/messages.po b/lam/locale/pl_PL/LC_MESSAGES/messages.po new file mode 100644 index 00000000..1999a8d5 --- /dev/null +++ b/lam/locale/pl_PL/LC_MESSAGES/messages.po @@ -0,0 +1,6301 @@ +# translation of messages.po to Polski +# +# LDAP Account Manager +# +# Cezar Cichocki , 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: messages\n" +"Report-Msgid-Bugs-To: post@rolandgruber.de \n" +"POT-Creation-Date: 2004-01-14 17:45+0200\n" +"PO-Revision-Date: 2008-04-17 13:59+0200\n" +"Last-Translator: Cezar Cichocki \n" +"Language-Team: Polski \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\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/modules/posixAccount.inc:385 +msgid "$user and $group are replaced with user name or primary group name." +msgstr "" +"$user oraz $group zostaną zastąpione nazwami użytkownika lub nazwą grupy " +"głównej" + +#: ../lib/types/mailAlias.inc:108 +#, php-format +msgid "%s alias(es) found" +msgstr "znaleziono %s alias(ów)" + +#: ../lib/types/smbDomain.inc:108 +#, php-format +msgid "%s domain(s) found" +msgstr "znaleziono %s domen" + +#: ../lib/types/gon.inc:110 ../lib/types/group.inc:122 +#, php-format +msgid "%s group(s) found" +msgstr "znaleziono %s grup" + +#: ../lib/types/host.inc:112 +#, php-format +msgid "%s host(s) found" +msgstr "znaleziono %s hostów" + +#: ../lib/lists.inc:103 +#, php-format +msgid "%s object(s) found" +msgstr "znaleziono %s obiektów" + +#: ../lib/types/user.inc:126 +#, php-format +msgid "%s user(s) found" +msgstr "znaleziono %s użytkowników" + +#: ../templates/tree/templates/creation/custom.php:63 +msgid "(example: cn=MyNewPerson)" +msgstr "(przykład: cn=MojaNowaOsoba)" + +#: ../templates/tree/templates/creation/new_ou_template.php:60 +msgid "(hint: do not include \"ou=\")" +msgstr "(podpowiedź: nie dołączaj \"ou=\") " + +#: ../templates/tree/add_attr_form.php:136 +msgid "(no new attributes available for this entry)" +msgstr "brak nowych atrybutów dla tej pozycji" + +#: ../templates/tree/add_attr_form.php:174 +msgid "(no new binary attributes available for this entry)" +msgstr "bak atrybutów binarnych dla tej pozycji " + +#: ../lib/modules/posixAccount.inc:232 +msgid "/home/smiller" +msgstr "/home/smiler" + +#: ../lib/modules/inetOrgPerson.inc:265 +msgid "123-123-1234" +msgstr "123-123-1234" + +#: ../lib/modules/inetOrgPerson.inc:277 +msgid "123-123-1235" +msgstr "123-123-1235" + +#: ../lib/modules/inetOrgPerson.inc:283 +msgid "123-123-1236" +msgstr "123-123-1236" + +#: ../lib/modules/inetOrgPerson.inc:271 +msgid "123-124-1234" +msgstr "123-124-1234" + +#: ../lib/modules/inetOrgPerson.inc:259 +msgid "12345" +msgstr "12345" + +#: ../templates/massBuildAccounts.php:117 +msgid "A required column is missing in your CSV file." +msgstr "W pliku CSV brakuje wymagalnej kolumny" + +#: ../lib/modules/kolabUser.inc:154 +msgid "" +"A user may define who is allowed to act on behalf of herself. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"Użytkownik ma prawo zdecydować, kto będzie działał w jego imieniu. Ta " +"właściwość jest zaznaczona kiedy do wysyłania poczty używany jest w budowany " +"w system Kolab demon smtp (Postfix)" + +#: ../lib/modules/sambaSamAccount.inc:494 +msgid "Abu Dhabi, Muscat, Baku" +msgstr "Abu Dhabi, Muscat, Baku" + +#: ../templates/config/confmain.php:201 +msgid "Access level" +msgstr "Poziom dostępu" + +#: ../lib/modules/account.inc:58 +msgid "Account" +msgstr "Konto" + +#: ../templates/massBuildAccounts.php:170 ../lib/modules/account.inc:136 +#: ../lib/modules/ieee802device.inc:89 ../lib/modules/posixGroup.inc:477 +#: ../lib/modules/posixGroup.inc:481 ../lib/modules/posixGroup.inc:482 +#: ../lib/modules/quota.inc:46 ../lib/modules/quota.inc:48 +#: ../lib/modules/quota.inc:50 ../lib/modules/quota.inc:52 +#: ../lib/modules/quota.inc:54 ../lib/modules/quota.inc:56 +#: ../lib/modules/quota.inc:57 ../lib/modules/sambaAccount.inc:63 +#: ../lib/modules/sambaAccount.inc:66 ../lib/modules/sambaAccount.inc:69 +#: ../lib/modules/sambaAccount.inc:71 ../lib/modules/sambaAccount.inc:73 +#: ../lib/modules/sambaAccount.inc:76 ../lib/modules/sambaAccount.inc:77 +#: ../lib/modules/sambaAccount.inc:79 ../lib/modules/sambaAccount.inc:80 +#: ../lib/modules/sambaAccount.inc:81 ../lib/modules/sambaAccount.inc:82 +#: ../lib/modules/sambaAccount.inc:83 ../lib/modules/sambaAccount.inc:84 +#: ../lib/modules/sambaAccount.inc:85 ../lib/modules/sambaAccount.inc:86 +#: ../lib/modules/sambaAccount.inc:87 ../lib/modules/sambaSamAccount.inc:83 +#: ../lib/modules/sambaSamAccount.inc:86 ../lib/modules/sambaSamAccount.inc:89 +#: ../lib/modules/sambaSamAccount.inc:91 ../lib/modules/sambaSamAccount.inc:94 +#: ../lib/modules/sambaSamAccount.inc:95 ../lib/modules/sambaSamAccount.inc:96 +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:102 +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:105 +#: ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:107 +#: ../lib/modules/sambaSamAccount.inc:109 +#: ../lib/modules/sambaSamAccount.inc:110 ../lib/modules/posixAccount.inc:65 +#: ../lib/modules/posixAccount.inc:70 ../lib/modules/posixAccount.inc:74 +#: ../lib/modules/posixAccount.inc:82 ../lib/modules/posixAccount.inc:83 +#: ../lib/modules/posixAccount.inc:84 ../lib/modules/posixAccount.inc:85 +#: ../lib/modules/posixAccount.inc:86 ../lib/modules/posixAccount.inc:87 +#: ../lib/modules/posixAccount.inc:89 ../lib/modules/posixAccount.inc:90 +#: ../lib/modules/posixAccount.inc:91 ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/kolabUser.inc:246 ../lib/modules/kolabUser.inc:248 +#: ../lib/modules/kolabUser.inc:250 ../lib/modules/kolabUser.inc:252 +#: ../lib/modules/kolabUser.inc:254 ../lib/modules/kolabUser.inc:256 +#: ../lib/modules/kolabUser.inc:258 ../lib/modules/phpGroupwareUser.inc:124 +#: ../lib/modules/phpGroupwareUser.inc:125 +#: ../lib/modules/sambaGroupMapping.inc:398 +#: ../lib/modules/sambaGroupMapping.inc:399 +#: ../lib/modules/shadowAccount.inc:47 ../lib/modules/shadowAccount.inc:49 +#: ../lib/modules/shadowAccount.inc:51 ../lib/modules/shadowAccount.inc:53 +#: ../lib/modules/shadowAccount.inc:55 ../lib/modules/shadowAccount.inc:56 +#: ../lib/modules/sambaDomain.inc:189 ../lib/modules/sambaDomain.inc:191 +#: ../lib/modules/sambaDomain.inc:193 ../lib/modules/sambaDomain.inc:195 +#: ../lib/modules/sambaDomain.inc:197 ../lib/modules/sambaDomain.inc:199 +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:74 +#: ../lib/modules/inetOrgPerson.inc:76 ../lib/modules/inetOrgPerson.inc:78 +#: ../lib/modules/inetOrgPerson.inc:80 ../lib/modules/inetOrgPerson.inc:82 +#: ../lib/modules/inetOrgPerson.inc:84 ../lib/modules/inetOrgPerson.inc:86 +#: ../lib/modules/inetOrgPerson.inc:88 ../lib/modules/inetOrgPerson.inc:90 +#: ../lib/modules/inetOrgPerson.inc:92 ../lib/modules/inetOrgPerson.inc:94 +#: ../lib/modules/inetOrgPerson.inc:96 ../lib/modules/inetOrgPerson.inc:98 +#: ../lib/modules/inetOrgPerson.inc:100 ../lib/modules/inetOrgPerson.inc:101 +#: ../lib/modules/inetOrgPerson.inc:102 ../lib/modules/inetOrgPerson.inc:105 +#: ../lib/modules/inetOrgPerson.inc:108 +#: ../lib/modules/inetLocalMailRecipient.inc:125 +#: ../lib/modules/inetLocalMailRecipient.inc:127 +#: ../lib/modules/inetLocalMailRecipient.inc:129 +#: ../lib/modules/nisMailAlias.inc:106 ../lib/modules/nisMailAlias.inc:108 +#, php-format +msgid "Account %s:" +msgstr "Konto: %s:" + +#: ../templates/masscreate.php:86 +msgid "Account creation via file upload" +msgstr "Tworzenie kont z pliku" + +#: ../lib/modules/posixAccount.inc:392 +msgid "Account deactivated" +msgstr "Deaktywacja konta" + +#: ../templates/lists/changePassword.php:120 +msgid "Account details" +msgstr "Szczegóły konta" + +#: ../lib/modules/sambaSamAccount.inc:277 +#: ../lib/modules/sambaSamAccount.inc:397 +#: ../lib/modules/sambaSamAccount.inc:1028 +#: ../lib/modules/sambaSamAccount.inc:1261 +#: ../lib/modules/sambaSamAccount.inc:1451 +#: ../lib/modules/phpGroupwareUser.inc:82 +#: ../lib/modules/phpGroupwareUser.inc:111 +#: ../lib/modules/phpGroupwareUser.inc:142 +#: ../lib/modules/phpGroupwareUser.inc:225 +#: ../lib/modules/phpGroupwareUser.inc:378 +#: ../lib/modules/shadowAccount.inc:109 ../lib/modules/shadowAccount.inc:174 +#: ../lib/modules/shadowAccount.inc:206 ../lib/modules/shadowAccount.inc:294 +#: ../lib/modules/shadowAccount.inc:339 +msgid "Account expiration date" +msgstr "Data wygaśnięcia konta" + +#: ../lib/modules/shadowAccount.inc:367 +msgid "Account inactive" +msgstr "Konto nieaktywne" + +#: ../lib/modules/sambaAccount.inc:142 ../lib/modules/sambaAccount.inc:259 +#: ../lib/modules/sambaAccount.inc:371 ../lib/modules/sambaAccount.inc:374 +#: ../lib/modules/sambaAccount.inc:762 ../lib/modules/sambaSamAccount.inc:220 +#: ../lib/modules/sambaSamAccount.inc:226 +#: ../lib/modules/sambaSamAccount.inc:375 +#: ../lib/modules/sambaSamAccount.inc:971 +#: ../lib/modules/sambaSamAccount.inc:1439 +msgid "Account is deactivated" +msgstr "Konto zostało zdezaktywowane" + +#: ../lib/modules/sambaSamAccount.inc:223 +#: ../lib/modules/sambaSamAccount.inc:979 +msgid "Account is locked" +msgstr "Konto jest zablokowane" + +#: ../help/help.inc:139 +msgid "Account lists - Filters" +msgstr "Lista kont - Filtry" + +#: ../templates/delete.php:94 +msgid "Account name:" +msgstr "Nazwa konta:" + +#: ../lib/modules/phpGroupwareUser.inc:78 +#: ../lib/modules/phpGroupwareUser.inc:104 +#: ../lib/modules/phpGroupwareUser.inc:149 +#: ../lib/modules/phpGroupwareUser.inc:373 +msgid "Account status" +msgstr "Status konta" + +#: ../lib/modules/kolabUser.inc:134 ../lib/modules/kolabUser.inc:141 +msgid "Account suffix" +msgstr "Sufiks konta" + +#: ../templates/pdfedit/pdfdelete.php:87 ../lib/modules/groupOfNames.inc:225 +msgid "Account type" +msgstr "Typ konta" + +#: ../templates/config/conftypes.php:169 +msgid "Account type selection" +msgstr "Wybór typu konta" + +#: ../templates/config/confmain.php:235 ../help/help.inc:105 +msgid "Account types and modules" +msgstr "Typ konta i moduły" + +#: ../help/help.inc:107 +msgid "" +"Account types define which sorts of LDAP entries (e.g. users and groups) " +"should be managed. The account modules define which properties (e.g. Unix " +"and Samba) can be edited." +msgstr "" +"Typy kont określają, które rodzaje wpisów LDAP (na przykład: użytkownicy i " +"grupy) powinny być zarządzalne. Modula kont określają które właściwości (na " +"przykład: Unix bądź Samba) mogą być zmieniane." + +#: ../lib/modules.inc:1205 +msgid "Account was created successfully." +msgstr "Konto zostało utworzone poprawnie" + +#: ../templates/lists/changePassword.php:358 ../lib/modules.inc:1208 +msgid "Account was modified successfully." +msgstr "Konto zostało zmienione" + +#: ../lib/modules/sambaSamAccount.inc:284 +msgid "Activate this checkbox to allow this user to use the terminal service." +msgstr "Zezwól użytkownikowi na korzystanie z usług terminalowych." + +#: ../lib/modules/sambaSamAccount.inc:305 +msgid "Activate this checkbox to connect drives from the client machine." +msgstr "Podłącz dyski z maszyny klienta." + +#: ../lib/modules/sambaSamAccount.inc:308 +msgid "Activate this checkbox to connect printers from the client machine." +msgstr "Podłącz drukarki z maszyny klienta." + +#: ../lib/modules/sambaSamAccount.inc:293 +msgid "" +"Activate this checkbox to inherit the initial program and working directory " +"from the client machine." +msgstr "Pobierz ustawienia programów oraz katalogu domowego ze stacji klienta." + +#: ../lib/modules/sambaSamAccount.inc:311 +msgid "Activate this checkbox to set the client's printer as default printer." +msgstr "Ustaw drukarkę klienta jako domyślną." + +#: ../lib/modules/posixAccount.inc:364 +msgid "Activating this checkbox will remove the user's home directory." +msgstr "Usuń katalog domowy użytkownika." + +#: ../templates/config/conftypes.php:191 +msgid "Active account types" +msgstr "Aktywuj rodzaje kont" + +#: ../templates/tree/add_value_form.php:157 +#: ../templates/tree/add_value_form.php:182 +#: ../templates/tree/add_oclass_form.php:144 +#: ../templates/tree/add_attr_form.php:130 +#: ../templates/tree/add_attr_form.php:162 +#: ../templates/config/conftypes.php:180 ../templates/pdfedit/pdfpage.php:574 +#: ../templates/pdfedit/pdfpage.php:591 ../templates/pdfedit/pdfpage.php:621 +#: ../templates/pdfedit/pdfpage.php:659 ../lib/modules/ieee802device.inc:111 +#: ../lib/modules/kolabUser.inc:370 ../lib/modules/kolabUser.inc:387 +#: ../lib/modules/kolabUser.inc:413 ../lib/modules/kolabUser.inc:878 +#: ../lib/modules/kolabUser.inc:918 ../lib/modules/ldapPublicKey.inc:105 +#: ../lib/modules/inetLocalMailRecipient.inc:167 +#: ../lib/modules/groupOfNames.inc:168 ../lib/modules/groupOfNames.inc:310 +#: ../lib/modules/nisMailAlias.inc:154 +msgid "Add" +msgstr "Dodaj" + +#: ../lib/modules/sambaSamAccount.inc:1138 +#: ../lib/modules/sambaGroupMapping.inc:239 +msgid "Add Samba 3 account" +msgstr "Dodaj konto Samba 3" + +#: ../lib/modules/groupOfNames.inc:342 +msgid "Add entries of this type:" +msgstr "Dodaj pozycje następujących typów:" + +#: ../templates/selfService/adminMain.php:483 ../help/help.inc:173 +msgid "Add input field" +msgstr "Dodaj pole wejściowe" + +#: ../templates/tree/edit.php:130 ../templates/tree/add_value_form.php:95 +#: ../templates/tree/add_attr_form.php:72 +#: ../templates/tree/add_attr_form.php:109 +#, php-format +msgid "Add new attribute" +msgstr "Dodaj nowy atrybut" + +#: ../templates/tree/add_attr_form.php:142 +msgid "Add new binary attribute" +msgstr "Dodaj nowy atrybut binarny" + +#: ../templates/selfService/adminMain.php:466 ../help/help.inc:171 +msgid "Add new group" +msgstr "Dodaj nową grupę" + +#: ../lib/modules/inetOrgPerson.inc:462 ../lib/modules/inetOrgPerson.inc:939 +#: ../lib/modules/inetOrgPerson.inc:1030 ../lib/modules/inetOrgPerson.inc:1492 +msgid "Add photo" +msgstr "Dodaj zdjęcie" + +#: ../lib/modules/phpGroupwareGroup.inc:73 +#: ../lib/modules/phpGroupwareGroup.inc:83 +#: ../lib/modules/phpGroupwareGroup.inc:106 +#: ../lib/modules/phpGroupwareUser.inc:74 +#: ../lib/modules/phpGroupwareUser.inc:97 +#: ../lib/modules/phpGroupwareUser.inc:183 +msgid "Add phpGroupWare extension" +msgstr "" + +#: ../templates/config/profmanage.php:163 +#: ../templates/selfService/profManage.php:138 ../help/help.inc:113 +msgid "Add profile" +msgstr "Dodaj profil" + +#: ../templates/tree/add_value.php:97 +msgid "Adding attribute failed!" +msgstr "Dodawanie atrybutu nie powiodło się!" + +#: ../lib/modules/posixAccount.inc:224 ../lib/modules/posixAccount.inc:355 +#: ../lib/modules/posixAccount.inc:400 ../lib/modules/posixAccount.inc:995 +#: ../lib/modules/posixAccount.inc:1088 ../lib/modules/posixAccount.inc:1160 +#: ../lib/modules/posixAccount.inc:1220 +msgid "Additional groups" +msgstr "Dodatkowe grupy" + +#: ../templates/massDoUpload.php:106 +msgid "Additional tasks for module:" +msgstr "Dodatkowe zadania dla modułu:" + +#: ../help/help.inc:172 +msgid "" +"Adds a new group element to the list of self service options. Use this to " +"structure the input fields." +msgstr "" +"Dodaj nową grupę elementów do listy obsługiwanych opcji. Użyj tej " +"właściwości aby ustrukturyzować pola wprowadzania danych." + +#: ../help/help.inc:174 +msgid "Adds a new self service option to the selected group element." +msgstr "Dodaje nową opcję do wybranej grupy elementów." + +#: ../lib/modules/inetOrgPerson.inc:235 +msgid "Administration" +msgstr "Administracja" + +#: ../lib/modules/posixGroup.inc:364 ../lib/modules/groupOfNames.inc:93 +msgid "Administrators group" +msgstr "Grupa Administratorów" + +#: ../lib/modules/sambaSamAccount.inc:481 +msgid "Alaska" +msgstr "Alaska" + +#: ../lib/modules/sambaDomain.inc:198 ../lib/modules/sambaDomain.inc:199 +msgid "Algorithmic RID base is not a number!" +msgstr "Podstawa algorytmiczna RID nie jest wartością numeryczną!" + +#: ../lib/types/mailAlias.inc:82 ../lib/modules/nisMailAlias.inc:67 +#: ../lib/modules/nisMailAlias.inc:82 ../lib/modules/nisMailAlias.inc:139 +#: ../lib/modules/nisMailAlias.inc:276 +msgid "Alias name" +msgstr "Nazwa aliasu" + +#: ../templates/schema/schema.php:231 +msgid "Aliases" +msgstr "Aliasy" + +#: ../lib/lists.inc:659 +#, php-format +msgid "All accounts (%s)" +msgstr "Wszystkie konta (%s)" + +#: ../templates/selfService/selfServiceMain.php:146 +#: ../templates/initsuff.php:160 +msgid "All changes were successful." +msgstr "Zmiany powiodły się." + +#: ../help/help.inc:180 +msgid "All following lines form the mail body." +msgstr "Wszystkie następujące linnie z listu" + +#: ../lib/lists.inc:658 +#, php-format +msgid "All selected accounts (%s)" +msgstr "Wszystkie zaznaczone konta (%s)" + +#: ../lib/modules/sambaDomain.inc:110 ../lib/modules/sambaDomain.inc:299 +#: ../lib/modules/sambaDomain.inc:669 +msgid "Allow machine password changes" +msgstr "Zezwól na zmianę hasła maszyny" + +#: ../lib/modules/sambaSamAccount.inc:283 +#: ../lib/modules/sambaSamAccount.inc:1304 +#: ../lib/modules/sambaSamAccount.inc:1668 +msgid "Allow terminal server login" +msgstr "Zezwól na logowanie do serwera terminali" + +#: ../templates/config/mainmanage.php:188 ../lib/types/user.inc:86 +#: ../help/help.inc:135 +msgid "Allowed hosts" +msgstr "Dozwolone hosty" + +#: ../lib/modules/sambaAccount.inc:867 ../lib/modules/sambaAccount.inc:868 +#: ../lib/modules/sambaSamAccount.inc:1161 +#: ../lib/modules/sambaSamAccount.inc:1162 +msgid "Allowed workstations" +msgstr "Dozwolone stacje robocze" + +#: ../lib/modules/sambaSamAccount.inc:496 +msgid "Almaty, Dhaka, Colombo" +msgstr "Almaty, Dhaka, Colombo" + +#: ../lib/modules/kolabUser.inc:48 +msgid "Always accept" +msgstr "Zawsze zatwierdź" + +#: ../lib/modules/kolabUser.inc:49 +msgid "Always reject" +msgstr "Zawsze odrzuć" + +#: ../templates/tree/edit.php:143 +#, php-format +msgid "An attribute (%s) was modified and is highlighted below." +msgstr "Wyróżniony poniżej atrybut (%s) uległ zmianie." + +#: ../lib/modules/kolabUser.inc:352 ../lib/modules/kolabUser.inc:797 +#: ../lib/modules/kolabUser.inc:899 +msgid "Anyone" +msgstr "Każdy" + +#: ../templates/tree/delete_form.php:149 +msgid "Are you sure you want to permanently delete this object?" +msgstr "Na pewno nieodwołalnie usunąć ten obiekt?" + +#: ../lib/modules/sambaSamAccount.inc:486 +msgid "Atlantic time (Canada), Caracas" +msgstr "Atlantic time (Canada), Caracas" + +#: ../templates/tree/update_confirm.php:152 +msgid "Attribute" +msgstr "Atrybut" + +#: ../templates/schema/schema.php:74 ../templates/schema/schema.php:75 +msgid "Attribute types" +msgstr "Rodzaje atrybutów" + +#: ../lib/modules/sambaSamAccount.inc:502 +msgid "Auckland, Fiji, Kamchatka" +msgstr "Auckland, Fiji, Kamchatka" + +#: ../templates/config/conftypes.php:173 +msgid "Available account types" +msgstr "Dostępne rodzaje kont" + +#: ../lib/modules/posixAccount.inc:1100 +msgid "Available groups" +msgstr "Dostępne grupy" + +#: ../templates/config/confmodules.php:211 +msgid "Available modules" +msgstr "Dostępne moduły" + +#: ../lib/modules/posixGroup.inc:246 +msgid "Available users" +msgstr "Dostępni użytkownicy" + +#: ../lib/modules/sambaAccount.inc:873 ../lib/modules/sambaSamAccount.inc:1167 +msgid "Available workstations" +msgstr "Dostępne maszyny" + +#: ../lib/modules/sambaSamAccount.inc:489 +msgid "Azores, Cape Verde Islands" +msgstr "Azores, Cape Verde Islands" + +#: ../templates/tree/update_confirm.php:255 ../lib/modules/posixGroup.inc:252 +#: ../lib/modules/posixGroup.inc:275 ../lib/modules/sambaAccount.inc:878 +#: ../lib/modules/sambaSamAccount.inc:1171 +#: ../lib/modules/posixAccount.inc:1106 ../lib/modules/inetOrgPerson.inc:1031 +#: ../lib/modules/groupOfNames.inc:352 +msgid "Back" +msgstr "Wstecz" + +#: ../templates/config/index.php:114 ../templates/config/confmain.php:605 +#: ../templates/config/conflogin.php:153 ../templates/config/mainlogin.php:138 +#: ../templates/selfService/adminLogin.php:150 +#: ../templates/selfService/adminMain.php:114 ../templates/logout.php:78 +msgid "Back to Login" +msgstr "Powrót do ekranu logowania" + +#: ../templates/ou_edit.php:131 ../templates/ou_edit.php:135 +msgid "Back to OU-Editor" +msgstr "Powrót do edytora OU" + +#: ../templates/pdfedit/pdfdelete.php:67 ../templates/pdfedit/pdfdelete.php:75 +#: ../templates/pdfedit/pdfpage.php:106 +msgid "Back to PDF Editor" +msgstr "Powrót do edytora PDF" + +#: ../lib/modules.inc:1216 +msgid "Back to account list" +msgstr "Powrót do listy kont" + +#: ../templates/lists/userlink.php:66 +msgid "Back to group list" +msgstr "Powrót do listy grup" + +#: ../templates/delete.php:242 +msgid "Back to list" +msgstr "Powrót do listy" + +#: ../templates/config/mainmanage.php:141 +#: ../templates/config/mainmanage.php:384 +msgid "Back to login" +msgstr "Powrót do ekranu logowania" + +#: ../templates/profedit/profiledelete.php:67 +#: ../templates/profedit/profiledelete.php:75 +#: ../templates/profedit/profilepage.php:126 +msgid "Back to profile editor" +msgstr "Powrót do edytora profilu" + +#: ../templates/config/profmanage.php:368 +#: ../templates/selfService/profManage.php:268 +msgid "Back to profile login" +msgstr "Powrót do logowania do profilu" + +#: ../lib/modules/sambaSamAccount.inc:493 +msgid "Baghdad, Riyadh, Moscow" +msgstr "Baghdad, Riyadh, Moscow" + +#: ../lib/modules/sambaSamAccount.inc:497 +msgid "Bangkok, Hanoi, Jakarta" +msgstr "Bangkok, Hanoi, Jakarta" + +#: ../templates/tree/export_form.php:74 +msgid "Base (base DN only)" +msgstr "Baza (tylko bazowy DN)" + +#: ../templates/tree/export_form.php:99 +msgid "Base DN" +msgstr "Bazowy DN" + +#: ../templates/config/confmodules.php:120 ../help/help.inc:127 +msgid "Base module" +msgstr "Moduł bazowy" + +#: ../templates/pdfedit/pdfpage.php:406 +msgid "Beginning" +msgstr "Pekin" + +#: ../lib/modules/sambaSamAccount.inc:498 +msgid "Beijing, Perth, Singapore" +msgstr "Pekin, Perth, Singapur" + +#: ../templates/tree/edit.php:176 ../templates/tree/edit.php:305 +msgid "Binary value" +msgstr "Wartość binarna" + +#: ../lib/modules/quota.inc:47 +msgid "Block hard quota" +msgstr "Twarde ograniczenie rozmiaru." + +#: ../lib/modules/quota.inc:47 ../lib/modules/quota.inc:48 +msgid "" +"Block hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Twarde ograniczenie rozmiaru zawiera niedozwolone znaki. Dozwolone są " +"jedynie liczby naturalne." + +#: ../lib/modules/quota.inc:53 +msgid "Block quota" +msgstr "Ograniczenie rozmiaru" + +#: ../lib/modules/quota.inc:45 +msgid "Block soft quota" +msgstr "Miękkie ograniczenie rozmiaru" + +#: ../lib/modules/quota.inc:45 ../lib/modules/quota.inc:46 +msgid "" +"Block soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Miękkie ograniczenie rozmiaru zawiera niedozwolone znaki. Dozwolone są " +"jedynie liczby naturalne" + +#: ../lib/modules/quota.inc:53 ../lib/modules/quota.inc:54 +msgid "Block soft quota must be smaller than block hard quota." +msgstr "" +"Miękkie ograniczenie rozmiaru musi być mniejsze niż twarde ograniczenie " +"rozmiaru." + +#: ../lib/modules/sambaSamAccount.inc:487 +msgid "Brazil, Buenos Aires" +msgstr "Nrazylia, Buenosaires" + +#: ../lib/modules/sambaGroupMapping.inc:70 +msgid "Builtin group" +msgstr "Wbudowane grupy" + +#: ../lib/modules/inetOrgPerson.inc:107 ../lib/modules/inetOrgPerson.inc:233 +#: ../lib/modules/inetOrgPerson.inc:474 ../lib/modules/inetOrgPerson.inc:892 +#: ../lib/modules/inetOrgPerson.inc:1061 +msgid "Business category" +msgstr "Kategoria biznesowa" + +#: ../lib/modules/inetOrgPerson.inc:475 +msgid "Business category (e.g. Administration, IT-Services, Manangement, ...)" +msgstr "Kategoria biznesowa (np: Administracja, Dział Informatyki, Zarząd...)" + +#: ../templates/masscreate.php:137 +msgid "CSV file:" +msgstr "Plik CSV:" + +#: ../templates/config/confmain.php:178 ../help/help.inc:101 +msgid "Cache timeout" +msgstr "Cache timeout" + +#: ../templates/config/confmain.php:497 +msgid "Cache timeout is invalid!" +msgstr "Nieprawidłowa wartość cache timeout!" + +#: ../lib/modules/sambaAccount.inc:386 ../lib/modules/sambaAccount.inc:389 +#: ../lib/modules/sambaAccount.inc:392 ../lib/modules/sambaAccount.inc:398 +#: ../lib/modules/sambaAccount.inc:410 ../lib/modules/sambaSamAccount.inc:238 +#: ../lib/modules/sambaSamAccount.inc:241 +#: ../lib/modules/sambaSamAccount.inc:244 +#: ../lib/modules/sambaSamAccount.inc:250 ../lib/modules/posixAccount.inc:401 +#: ../lib/modules/sambaGroupMapping.inc:327 +#: ../lib/modules/shadowAccount.inc:159 ../lib/modules/shadowAccount.inc:163 +#: ../lib/modules/shadowAccount.inc:167 ../lib/modules/shadowAccount.inc:171 +msgid "Can be left empty." +msgstr "Nie może być pusty." + +#: ../templates/tree/update_confirm.php:241 +#: ../templates/tree/delete_form.php:119 ../templates/tree/delete_form.php:168 +#: ../templates/ou_edit.php:110 ../templates/config/confmodules.php:116 +#: ../templates/config/confmain.php:457 ../templates/config/conftypes.php:239 +#: ../templates/selfService/adminMain.php:547 +#: ../templates/pdfedit/pdfdelete.php:97 ../templates/pdfedit/pdfpage.php:705 +#: ../templates/pdfedit/pdfmain.php:156 ../templates/delete.php:117 +#: ../templates/profedit/profiledelete.php:86 +#: ../templates/profedit/profilepage.php:262 +#: ../templates/profedit/profilemain.php:169 ../templates/initsuff.php:193 +#: ../lib/modules/sambaSamAccount.inc:1236 +#: ../lib/modules/sambaSamAccount.inc:1284 +#: ../lib/modules/sambaSamAccount.inc:1407 +#: ../lib/modules/posixAccount.inc:1135 ../lib/modules/kolabUser.inc:589 +#: ../lib/modules/phpGroupwareUser.inc:248 +#: ../lib/modules/shadowAccount.inc:352 ../lib/modules/inetOrgPerson.inc:994 +#: ../lib/modules/groupOfNames.inc:231 ../lib/modules/groupOfNames.inc:258 +#: ../lib/modules/groupOfNames.inc:311 ../lib/lists.inc:669 +#: ../lib/lists.inc:900 +msgid "Cancel" +msgstr "Anuluj" + +#: ../templates/login.php:430 ../templates/login.php:435 +#: ../templates/selfService/selfServiceLogin.php:105 +#: ../templates/selfService/selfServiceLogin.php:109 +msgid "Cannot connect to specified LDAP server. Please try again." +msgstr "" +"Nie można nawiązać połączenia ze wskazanym serwerem LDAP. Proszę spróbować " +"ponownie." + +#: ../lib/config.inc:392 ../lib/config.inc:1016 +msgid "Cannot open config file!" +msgstr "Nie można otworzyć pliku konfiguracyjnego!" + +#: ../templates/selfService/adminMain.php:348 +msgid "Captions and labels" +msgstr "Nagłówki i etykiety" + +#: ../lib/modules/inetOrgPerson.inc:155 ../lib/modules/inetOrgPerson.inc:311 +#: ../lib/modules/inetOrgPerson.inc:486 ../lib/modules/inetOrgPerson.inc:878 +#: ../lib/modules/inetOrgPerson.inc:1063 ../lib/modules/inetOrgPerson.inc:1453 +msgid "Car license" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:491 +msgid "Central Europe Time, Paris, Berlin" +msgstr "Central Europe Time, Paris, Berlin" + +#: ../lib/modules/sambaSamAccount.inc:484 +msgid "Central Time (US & Canada), Mexico City" +msgstr "Central Time (US & Canada), Mexico City" + +#: ../templates/selfService/adminMain.php:409 +#: ../templates/pdfedit/pdfpage.php:453 ../templates/pdfedit/pdfpage.php:459 +#: ../lib/modules/sambaSamAccount.inc:997 +#: ../lib/modules/sambaSamAccount.inc:1014 +#: ../lib/modules/sambaSamAccount.inc:1031 +#: ../lib/modules/sambaSamAccount.inc:1280 +#: ../lib/modules/phpGroupwareUser.inc:145 +#: ../lib/modules/phpGroupwareUser.inc:244 +#: ../lib/modules/shadowAccount.inc:297 ../lib/modules/shadowAccount.inc:348 +#: ../lib/modules/groupOfNames.inc:157 ../lib/modules/groupOfNames.inc:174 +msgid "Change" +msgstr "Zmień" + +#: ../lib/modules/posixGroup.inc:198 +msgid "Change GID number of users and hosts" +msgstr "Zmień GID użytkowników i hostów" + +#: ../templates/config/profmanage.php:327 ../help/help.inc:121 +msgid "Change default profile" +msgstr "Zmień domyślny profil" + +#: ../lib/lists.inc:885 +msgid "Change list settings" +msgstr "Zmień ustawienia listy" + +#: ../templates/config/mainmanage.php:338 ../help/help.inc:123 +msgid "Change master password" +msgstr "Zmień hasło główne" + +#: ../templates/lists/changePassword.php:113 +#: ../templates/lists/changePassword.php:185 +#: ../templates/lists/changePassword.php:212 ../lib/types/user.inc:236 +#: ../lib/modules/posixGroup.inc:188 ../lib/modules/posixAccount.inc:1041 +#: ../lib/modules/inetOrgPerson.inc:765 ../help/help.inc:99 +msgid "Change password" +msgstr "Zmień hasło" + +#: ../templates/config/confmain.php:210 ../templates/config/confmain.php:213 +#, fuzzy +msgid "Change passwords" +msgstr "Zmień hasło" + +#: ../templates/login.php:356 +msgid "Change profile" +msgstr "Zmień profil" + +#: ../lib/lists.inc:723 ../lib/lists.inc:724 +msgid "Change settings" +msgstr "Zmień ustawienia" + +#: ../lib/lists.inc:698 +msgid "Change suffix" +msgstr "Zmień sufiks" + +#: ../lib/modules/posixAccount.inc:860 +msgid "Changed value because only ASCII characters are allowed." +msgstr "Zmień wartość - dopuszczalne są jedynie znaki ASCII." + +#: ../templates/tests/index.php:59 +msgid "Check if quotas and homedirectories can be managed." +msgstr "" +"Sprawdź czy można zarządzać ograniczeniami rozmiaru (quotami) katalogów " +"domowych." + +#: ../templates/tests/index.php:62 +msgid "" +"Check if the LDAP schema fits the requirements of the selected account " +"modules." +msgstr "Sprawdzenie czy schemat LDAP pasuje do wymogów narzuconych przez wybrane moduły obsługi kont." + +#: ../templates/tests/lamdaemonTest.php:98 +msgid "Check quotas" +msgstr "Sprawdź ograniczenia rozmiaru" + +#: ../templates/masscreate.php:128 +msgid "" +"Check your input carefully. LAM will only do some basic checks on the upload " +"data." +msgstr "" +"Proszę bardzo dokładnie sprawdzić wprowadzone dane. LAM dokonuje jedynie " +"pobieżnego sprawdzenia." + +#: ../lib/modules/posixAccount.inc:94 +msgid "Choose a server for the home directory!" +msgstr "Wybierz serwer dla katalogu domowego!" + +#: ../templates/tree/create_form.php:76 +msgid "Choose a template" +msgstr "Wybierz szablon" + +#: ../templates/tree/create.php:169 ../lib/config.inc:152 +msgid "Click here if you are not directed to the next page." +msgstr "Kliknij tu jeśli nie zostałeś automatycznie przeniesiony na następną stronę." + +#: ../lib/modules/sambaSamAccount.inc:310 +#: ../lib/modules/sambaSamAccount.inc:1370 +#: ../lib/modules/sambaSamAccount.inc:1696 +msgid "Client printer is default" +msgstr "Błąd drukarki klienta" + +#: ../templates/schema/schema.php:204 +msgid "Collective" +msgstr "Zbiorowy" + +#: ../templates/masscreate.php:147 +msgid "Columns:" +msgstr "Kolumny:" + +#: ../lib/modules/sambaAccount.inc:398 ../lib/modules/sambaSamAccount.inc:250 +msgid "" +"Comma separated list of Samba workstations the user is allowed to login. " +"Empty means every workstation." +msgstr "" +"Oddzielona przecinkami lista maszyn z których użytkownik może się zalogować. " +"Pusta lista oznacza wszystkie stacje." + +#: ../templates/tree/update_confirm.php:234 +msgid "Commit" +msgstr "Zatwierdź" + +#: ../lib/modules/posixAccount.inc:92 ../lib/modules/posixAccount.inc:205 +#: ../lib/modules/posixAccount.inc:404 ../lib/modules/posixAccount.inc:426 +#: ../lib/modules/posixAccount.inc:968 ../lib/modules/posixAccount.inc:1215 +#: ../lib/modules/inetOrgPerson.inc:97 ../lib/modules/inetOrgPerson.inc:328 +#: ../lib/modules/inetOrgPerson.inc:446 ../lib/modules/inetOrgPerson.inc:733 +#: ../lib/modules/inetOrgPerson.inc:1059 +msgid "Common name" +msgstr "Nazwa zwyczajowa" + +#: ../templates/config/index.php:48 +msgid "Configuration overview" +msgstr "Przegląd konfiguracji" + +#: ../help/help.inc:57 ../help/help.inc:59 ../help/help.inc:71 +#: ../help/help.inc:77 ../help/help.inc:83 ../help/help.inc:88 +#: ../help/help.inc:95 ../help/help.inc:97 ../help/help.inc:99 +#: ../help/help.inc:101 ../help/help.inc:103 ../help/help.inc:105 +#: ../help/help.inc:108 ../help/help.inc:111 ../help/help.inc:127 +msgid "Configuration wizard" +msgstr "Czarodziej konfiguracji" + +#: ../templates/config/confmodules.php:252 +msgid "Conflicting module:" +msgstr "Moduły pozostające w konflikcie:" + +#: ../lib/modules/sambaSamAccount.inc:304 +#: ../lib/modules/sambaSamAccount.inc:1360 +#: ../lib/modules/sambaSamAccount.inc:1686 +msgid "Connect client drives" +msgstr "Podłącz dyski klienta" + +#: ../lib/modules/sambaSamAccount.inc:307 +#: ../lib/modules/sambaSamAccount.inc:1365 +#: ../lib/modules/sambaSamAccount.inc:1691 +msgid "Connect client printers" +msgstr "Podłącz drukarki klienta" + +#: ../lib/modules/sambaSamAccount.inc:1345 +#: ../lib/modules/sambaSamAccount.inc:1679 +msgid "Connection time limit" +msgstr "Limit czasu połączenia" + +#: ../templates/tree/templates/creation/custom.php:66 +#: ../templates/tree/templates/creation/new_ou_template.php:105 +msgid "Container" +msgstr "Zasobnik" + +#: ../templates/tree/templates/creation/new_ou_template.php:64 +msgid "Container DN" +msgstr "Zasobnik DN" + +#: ../templates/tree/delete_attr.php:82 +msgid "Could not perform ldap_modify operation." +msgstr "Nie można dokonać operacji ldap_modify." + +#: ../templates/config/profmanage.php:100 +#: ../templates/selfService/profManage.php:86 +msgid "Could not rename file!" +msgstr "Nie można zmienić nazwy pliku!" + +#: ../templates/pdfedit/pdfpage.php:103 +msgid "Could not save PDF profile, access denied." +msgstr "Nie można zapisać pliku PDF, brak uprawnień." + +#: ../lib/modules/kolabUser.inc:89 ../lib/modules/kolabUser.inc:169 +#: ../lib/modules/kolabUser.inc:198 ../lib/modules/kolabUser.inc:312 +#: ../lib/modules/kolabUser.inc:773 +msgid "Country" +msgstr "Kraj" + +#: ../lib/modules/kolabUser.inc:249 ../lib/modules/kolabUser.inc:250 +msgid "Country name is invalid!" +msgstr "Nazwa kraju jest nieprawidłowa!" + +#: ../templates/tree/templates/creation/custom.php:234 +#: ../templates/tree/templates/creation/new_ou_template.php:107 +#: ../templates/initsuff.php:192 +msgid "Create" +msgstr "Stwórz" + +#: ../templates/tree/creation_template.php:85 +#: ../templates/tree/create_form.php:75 +msgid "Create Object" +msgstr "Stwórz obiekt" + +#: ../lib/lists.inc:471 ../lib/lists.inc:633 ../lib/modules.inc:1223 +#: ../help/help.inc:154 +msgid "Create PDF file" +msgstr "Stwórz plik PDF" + +#: ../lib/types/mailAlias.inc:113 +msgid "Create PDF for all aliases" +msgstr "Stwórz PDF dla wszystkich aliasów" + +#: ../lib/types/smbDomain.inc:113 +msgid "Create PDF for all domains" +msgstr "Stwórz PDF dla wszystkich domen" + +#: ../lib/types/gon.inc:115 ../lib/types/group.inc:127 +msgid "Create PDF for all groups" +msgstr "Stwórz PDF dla wszystkich grup" + +#: ../lib/types/host.inc:117 +msgid "Create PDF for all hosts" +msgstr "Stwórz PDF dla wszystkich hostów" + +#: ../lib/lists.inc:108 +msgid "Create PDF for all objects" +msgstr "Stwórz PDF dla wszystkich obiektów" + +#: ../lib/types/user.inc:131 +msgid "Create PDF for all users" +msgstr "Stwórz PDF dla wszystkich użytkowników" + +#: ../lib/types/mailAlias.inc:112 +msgid "Create PDF for selected alias(es)" +msgstr "Stwórz plik PDF dla wybranych aliasów" + +#: ../lib/types/smbDomain.inc:112 +msgid "Create PDF for selected domain(s)" +msgstr "Stwórz plik PDF dla wybranych domen" + +#: ../lib/types/gon.inc:114 ../lib/types/group.inc:126 +msgid "Create PDF for selected group(s)" +msgstr "Stwórz plik PDF dla wybranych grup" + +#: ../lib/types/host.inc:116 +msgid "Create PDF for selected host(s)" +msgstr "Stwórz plik PDF dla wybranych hostów" + +#: ../lib/lists.inc:107 +msgid "Create PDF for selected object(s)" +msgstr "Stwórz plik PDF dla wybranych obiektów" + +#: ../lib/types/user.inc:130 +msgid "Create PDF for selected user(s)" +msgstr "Stwórz plik PDF dla wybranych użytkowników" + +#: ../templates/pdfedit/pdfmain.php:123 +msgid "Create a new PDF structure for scope: " +msgstr "Stwórz nową strukturę PDF dla zakresu:" + +#: ../templates/profedit/profilemain.php:131 +msgid "Create a new profile" +msgstr "Stwórz nowy profil" + +#: ../lib/modules.inc:1215 +msgid "Create another account" +msgstr "Stwórz kolejne konto" + +#: ../lib/lists.inc:653 +msgid "Create for" +msgstr "Stwórz dla" + +#: ../lib/modules/posixAccount.inc:237 ../lib/modules/posixAccount.inc:1011 +msgid "Create home directory" +msgstr "Stwórz katalog domowy" + +#: ../templates/tree/edit.php:128 ../templates/tree/tree.php:189 +#: ../templates/tree/tree.php:191 ../templates/tree/tree.php:192 +#: ../lib/tree.inc:92 ../lib/tree.inc:93 ../lib/tree.inc:157 +#: ../lib/tree.inc:159 ../lib/tree.inc:160 +msgid "Create new entry" +msgstr "Stwórz nową pozycję" + +#: ../templates/config/profmanage.php:85 +#: ../templates/selfService/profManage.php:69 +msgid "Created new profile." +msgstr "Utworzono nowy profil." + +#: ../templates/tools.php:65 +msgid "Creates accounts by uploading a CSV formated file." +msgstr "Tworzenie kont przez załadowanie pliku w formacie CSV." + +#: ../templates/tree/add_value_form.php:101 +msgid "Current list of values for attribute:" +msgstr "Aktualna lista wartości dla atrybutu:" + +#: ../templates/tree/templates/templates.inc:51 +msgid "Custom" +msgstr "Własny" + +#: ../templates/tree/edit.php:92 ../templates/tree/add_value_form.php:99 +#: ../templates/tree/add_oclass_form.php:124 +#: ../templates/tree/update_confirm.php:79 +#: ../templates/tree/add_attr_form.php:73 ../templates/tree/delete_form.php:77 +#: ../templates/tree/delete_form.php:151 ../templates/delete.php:95 +#: ../lib/modules.inc:1308 ../lib/modules.inc:1748 +msgid "DN" +msgstr "DN" + +#: ../templates/masscreate.php:150 +msgid "DN settings" +msgstr "ustawienia DN" + +#: ../templates/masscreate.php:154 ../help/help.inc:148 +msgid "DN suffix" +msgstr "sufiks DN" + +#: ../lib/export.inc:511 +#, php-format +msgid "DSML Export for: %s" +msgstr "Eksport DSML dla: %s" + +#: ../templates/tree/templates/creation/custom.php:96 +msgid "Data field for RDN is empty!" +msgstr "Pole danych dla RDN jest puste!" + +#: ../lib/modules/sambaAccount.inc:378 ../lib/modules/sambaSamAccount.inc:230 +msgid "Date after the user is able to change his password. Format: DD-MM-YYYY" +msgstr "Data po której użytkownik może zmienić hasło. Format: DD-MM-RRRR" + +#: ../lib/modules/sambaAccount.inc:380 ../lib/modules/sambaSamAccount.inc:232 +msgid "Date after the user must change his password. Format: DD-MM-YYYY" +msgstr "Data po której użytkownik musi zmienić hasło. Format: DD-MM-RRRR" + +#: ../lib/modules/shadowAccount.inc:159 +msgid "" +"Days before password is to expire that user is warned of pending password " +"expiration. If set value must be >0." +msgstr "" +"Ilość dni przez które użytkownik będzie ostrzegany o konieczności zmiany " +"hasła. Jeżeli funkcja wykorzystywana to wartość musi być większa od 0." + +#: ../templates/config/confmain.php:298 ../help/help.inc:95 +msgid "Default language" +msgstr "Domyślny język" + +#: ../templates/masscreate.php:163 ../templates/masscreate.php:325 +msgid "Default value" +msgstr "Domyślna wartość" + +#: ../lib/modules/sambaDomain.inc:111 +msgid "Defines if workstations may change their passwords." +msgstr "Określa czy stacja robocza może zmienić swoje hasło." + +#: ../lib/modules/kolabUser.inc:128 ../lib/modules/kolabUser.inc:153 +#: ../lib/modules/kolabUser.inc:157 ../lib/modules/kolabUser.inc:217 +#: ../lib/modules/kolabUser.inc:416 ../lib/modules/kolabUser.inc:811 +#: ../lib/modules/kolabUser.inc:881 +msgid "Delegates" +msgstr "Delegacje" + +#: ../lib/modules/kolabUser.inc:254 +msgid "Delegates has invalid format!" +msgstr "Delegacje mają nieprawidłowy format!" + +#: ../templates/tree/edit.php:115 ../templates/tree/delete_form.php:159 +#: ../templates/ou_edit.php:109 ../templates/pdfedit/pdfdelete.php:96 +#: ../templates/delete.php:116 ../lib/tree.inc:1178 +#: ../lib/modules/kolabUser.inc:872 ../lib/lists.inc:467 +msgid "Delete" +msgstr "Usuń" + +#: ../templates/tree/delete_form.php:76 +#, php-format +msgid "Delete %s" +msgstr "Usuń %s" + +#: ../lib/modules/kolabUser.inc:425 +msgid "Delete Kolab account" +msgstr "Usuń konto Kolab" + +#: ../templates/pdfedit/pdfdelete.php:53 ../templates/pdfedit/pdfmain.php:145 +msgid "Delete PDF structure" +msgstr "Usuń strukturę PDF" + +#: ../lib/types/mailAlias.inc:111 +msgid "Delete alias(es)" +msgstr "Usuń aliasy" + +#: ../templates/tree/delete_form.php:111 +#, php-format +msgid "Delete all %s objects" +msgstr "Usuń wszystkie obiekty %s" + +#: ../lib/types/smbDomain.inc:111 +msgid "Delete domain(s)" +msgstr "Usuń domeny" + +#: ../lib/types/gon.inc:113 ../lib/types/group.inc:125 +msgid "Delete group(s)" +msgstr "Usuń grupy" + +#: ../lib/modules/posixAccount.inc:1060 +msgid "Delete home directory" +msgstr "Usuń katalog domowy" + +#: ../lib/types/host.inc:115 +msgid "Delete host(s)" +msgstr "Usuń hosty" + +#: ../lib/lists.inc:106 +msgid "Delete object" +msgstr "Usuń obiekt" + +#: ../templates/pdfedit/pdfdelete.php:74 +#: ../templates/profedit/profiledelete.php:74 +msgid "Delete operation canceled." +msgstr "Operacja usuwania wstrzymana." + +#: ../templates/ou_edit.php:183 ../help/help.inc:188 +msgid "Delete organizational unit" +msgstr "Usuń jednostkę organizacyjną" + +#: ../lib/modules/inetOrgPerson.inc:942 +msgid "Delete photo" +msgstr "Usuń zdjęcie" + +#: ../templates/config/profmanage.php:249 +#: ../templates/selfService/profManage.php:228 +#: ../templates/profedit/profiledelete.php:56 +#: ../templates/profedit/profilemain.php:157 ../help/help.inc:117 +msgid "Delete profile" +msgstr "Usuń profil" + +#: ../lib/types/user.inc:129 +msgid "Delete user(s)" +msgstr "Usuń użytkowników" + +#: ../templates/delete.php:230 +#, php-format +msgid "Deleted DN: %s" +msgstr "Usunięty DN: %s" + +#: ../templates/pdfedit/pdfdelete.php:65 +msgid "Deleted PDF structure:" +msgstr "Usunięta struktura PDF:" + +#: ../lib/modules/sambaGroupMapping.inc:71 +msgid "Deleted account" +msgstr "Usunięte konto" + +#: ../templates/profedit/profiledelete.php:66 +msgid "Deleted profile:" +msgstr "Usunięty profil:" + +#: ../templates/tree/rdelete.php:74 ../templates/tree/rdelete.php:136 +#: ../templates/tree/rdelete.php:148 +#, php-format +msgid "Deleting %s" +msgstr "Usuwanie %s" + +#: ../templates/delete.php:139 +msgid "Deleting. Please stand by ..." +msgstr "Usuwanie. Proszę czekać..." + +#: ../templates/tree/add_value_form.php:186 ../templates/schema/schema.php:94 +#: ../templates/schema/schema.php:148 ../templates/schema/schema.php:351 +#: ../lib/types/user.inc:92 ../lib/modules/account.inc:88 +#: ../lib/modules/account.inc:98 ../lib/modules/account.inc:122 +#: ../lib/modules/account.inc:226 ../lib/modules/account.inc:240 +#: ../lib/modules/posixGroup.inc:164 ../lib/modules/posixGroup.inc:390 +#: ../lib/modules/posixGroup.inc:452 ../lib/modules/sambaAccount.inc:898 +#: ../lib/modules/posixAccount.inc:310 ../lib/modules/posixAccount.inc:422 +#: ../lib/modules/sambaGroupMapping.inc:349 +#: ../lib/modules/inetOrgPerson.inc:209 ../lib/modules/inetOrgPerson.inc:390 +#: ../lib/modules/inetOrgPerson.inc:741 ../lib/modules/inetOrgPerson.inc:1043 +#: ../lib/modules/groupOfNames.inc:64 ../lib/modules/groupOfNames.inc:91 +#: ../lib/modules/groupOfNames.inc:143 ../lib/modules/groupOfNames.inc:443 +msgid "Description" +msgstr "Opis" + +#: ../lib/modules/sambaDomain.inc:106 ../lib/modules/sambaDomain.inc:288 +#: ../lib/modules/sambaDomain.inc:664 +msgid "Disconnect users outside logon hours" +msgstr "Odłącz użytkowników poza godzinami dozwolonych połączeń" + +#: ../lib/modules/sambaSamAccount.inc:1350 +#: ../lib/modules/sambaSamAccount.inc:1680 +msgid "Disconnection time limit" +msgstr "Limit czasu odłączenia" + +#: ../lib/modules/sambaDomain.inc:107 +msgid "Disconnects users if they are logged in outside logon hours." +msgstr "" +"Odłącz użytkowników jeśli usiłują połączyć się poza dozwolonymi godzinami " +"logowania" + +#: ../lib/modules/sambaAccount.inc:78 ../lib/modules/sambaAccount.inc:223 +#: ../lib/modules/sambaAccount.inc:344 ../lib/modules/sambaAccount.inc:728 +#: ../lib/modules/sambaAccount.inc:891 ../lib/modules/sambaSamAccount.inc:98 +#: ../lib/modules/sambaSamAccount.inc:193 +#: ../lib/modules/sambaSamAccount.inc:339 +#: ../lib/modules/sambaSamAccount.inc:943 +#: ../lib/modules/sambaSamAccount.inc:1637 +#: ../lib/modules/sambaGroupMapping.inc:197 +#: ../lib/modules/sambaGroupMapping.inc:314 +#: ../lib/modules/sambaGroupMapping.inc:347 +msgid "Display name" +msgstr "Wyświetlana nazwa" + +#: ../lib/modules.inc:449 +msgid "" +"Displayed account numbers start at \"0\". Add 2 to get the row in your " +"spreadsheet." +msgstr "" +"Wyświetlane numery kont rozpoczynają się od \"0\". Dodaj 2 aby uzyskać " +"rządek w swoim arkuszu kalkulacyjnym." + +#: ../templates/ou_edit.php:102 +msgid "Do you really want to delete this OU?" +msgstr "Czy na pewno usunąć ten OU?" + +#: ../templates/pdfedit/pdfdelete.php:82 +msgid "Do you really want to delete this PDF structure?" +msgstr "Czy na pewno usunąć tą strukturę PDF?" + +#: ../templates/profedit/profiledelete.php:81 +msgid "Do you really want to delete this profile?" +msgstr "Czy na pewno usunąć ten profil?" + +#: ../lib/modules/kolabUser.inc:584 +msgid "Do you really want to mark this account for deletion?" +msgstr "Czy na pewno zaznaczyć to konto do usunięcia?" + +#: ../templates/delete.php:89 +msgid "Do you really want to remove the following accounts?" +msgstr "Czy na pewno usunąć te konta?" + +#: ../templates/tree/update_confirm.php:146 +msgid "Do you want to make these changes?" +msgstr "Czy na pewno dokonać tych zmian?" + +#: ../lib/modules/sambaAccount.inc:181 ../lib/modules/sambaAccount.inc:325 +#: ../lib/modules/sambaAccount.inc:335 ../lib/modules/sambaAccount.inc:409 +#: ../lib/modules/sambaAccount.inc:839 ../lib/modules/sambaAccount.inc:897 +#: ../lib/modules/sambaSamAccount.inc:268 +#: ../lib/modules/sambaSamAccount.inc:332 +#: ../lib/modules/sambaSamAccount.inc:458 +#: ../lib/modules/sambaSamAccount.inc:1112 +#: ../lib/modules/sambaSamAccount.inc:1499 +#: ../lib/modules/sambaSamAccount.inc:1529 +#: ../lib/modules/sambaSamAccount.inc:1655 +#: ../lib/modules/sambaGroupMapping.inc:68 +#: ../lib/modules/sambaGroupMapping.inc:232 +#: ../lib/modules/sambaGroupMapping.inc:326 +#: ../lib/modules/sambaGroupMapping.inc:369 +msgid "Domain" +msgstr "Domena" + +#: ../lib/types/smbDomain.inc:82 ../lib/modules/sambaDomain.inc:74 +#: ../lib/modules/sambaDomain.inc:144 ../lib/modules/sambaDomain.inc:231 +#: ../lib/modules/sambaDomain.inc:237 ../lib/modules/sambaDomain.inc:636 +msgid "Domain SID" +msgstr "SID domeny" + +#: ../lib/modules/sambaGroupMapping.inc:293 +msgid "Domain administrators" +msgstr "Administratorzy domeny" + +#: ../lib/modules/sambaAccount.inc:48 ../lib/modules/sambaAccount.inc:320 +#: ../lib/modules/sambaSamAccount.inc:69 +#: ../lib/modules/sambaGroupMapping.inc:55 +#: ../lib/modules/sambaGroupMapping.inc:299 +msgid "Domain admins" +msgstr "Admini domeny" + +#: ../lib/modules/sambaAccount.inc:50 ../lib/modules/sambaSamAccount.inc:70 +#: ../lib/modules/sambaGroupMapping.inc:60 +msgid "Domain certificate admins" +msgstr "" + +#: ../lib/modules/sambaAccount.inc:49 ../lib/modules/sambaAccount.inc:570 +#: ../lib/modules/sambaSamAccount.inc:70 +#: ../lib/modules/sambaSamAccount.inc:646 +#: ../lib/modules/sambaGroupMapping.inc:58 +msgid "Domain computers" +msgstr "Komputery domeny" + +#: ../lib/modules/sambaAccount.inc:50 ../lib/modules/sambaSamAccount.inc:70 +#: ../lib/modules/sambaGroupMapping.inc:59 +msgid "Domain controllers" +msgstr "Kontrolery domen" + +#: ../lib/modules/sambaAccount.inc:51 ../lib/modules/sambaSamAccount.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:62 +msgid "Domain enterprise admins" +msgstr "" + +#: ../lib/modules/sambaGroupMapping.inc:67 +#: ../lib/modules/sambaGroupMapping.inc:222 +msgid "Domain group" +msgstr "Grupa domen" + +#: ../lib/modules/sambaAccount.inc:49 ../lib/modules/sambaSamAccount.inc:69 +#: ../lib/modules/sambaGroupMapping.inc:57 +msgid "Domain guests" +msgstr "Goście" + +#: ../lib/types/smbDomain.inc:83 ../lib/modules/sambaAccount.inc:72 +#: ../lib/modules/sambaDomain.inc:70 ../lib/modules/sambaDomain.inc:137 +#: ../lib/modules/sambaDomain.inc:218 ../lib/modules/sambaDomain.inc:224 +#: ../lib/modules/sambaDomain.inc:633 +msgid "Domain name" +msgstr "Nazwa domeny" + +#: ../lib/modules/sambaAccount.inc:72 ../lib/modules/sambaAccount.inc:73 +msgid "" +"Domain name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and -." +msgstr "" +"Nazwa domeny zawiera nieprawidłowe znaki. Znaki dozwolone to: a-z, A-Z, 0-9 " +"oraz -." + +#: ../lib/modules/sambaDomain.inc:188 ../lib/modules/sambaDomain.inc:189 +msgid "Domain name is invalid!" +msgstr "Nazwa domeny jest nieprawidłowa!" + +#: ../lib/modules/sambaAccount.inc:52 ../lib/modules/sambaSamAccount.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:63 +msgid "Domain policy admins" +msgstr "" + +#: ../lib/modules/sambaAccount.inc:51 ../lib/modules/sambaSamAccount.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:61 +msgid "Domain schema admins" +msgstr "" + +#: ../lib/modules/sambaAccount.inc:48 ../lib/modules/sambaSamAccount.inc:69 +#: ../lib/modules/sambaSamAccount.inc:1981 +#: ../lib/modules/sambaGroupMapping.inc:56 +msgid "Domain users" +msgstr "Użytkownicy domeny" + +#: ../templates/main_header.php:60 +msgid "Donate" +msgstr "Wesprzyj" + +#: ../templates/pdfedit/pdfpage.php:420 +msgid "Down" +msgstr "Dół" + +#: ../templates/masscreate.php:280 +msgid "Download sample CSV file" +msgstr "Pobierz przykładowy plik CSV" + +#: ../lib/modules/sambaAccount.inc:383 +msgid "Drive letter assigned on windows workstations as homedirectory." +msgstr "Litery dysków przeznane stacji roboczej jako katalog domowy." + +#: ../lib/types/user.inc:91 +msgid "E-Mail" +msgstr "E-Mail" + +#: ../lib/modules/kolabUser.inc:161 +msgid "EMail alias" +msgstr "alias e-mail" + +#: ../lib/modules/kolabUser.inc:162 +msgid "EMail alias for this account." +msgstr "Alias e-mail dla tego konta" + +#: ../lib/modules/kolabUser.inc:247 +msgid "EMail alias is invalid!" +msgstr "Nieprawidłowy alias e-mail!" + +#: ../lib/modules/kolabUser.inc:165 +msgid "EMail alias list" +msgstr "Lista aliasów e-mail" + +#: ../lib/modules/kolabUser.inc:248 +msgid "EMail alias list has invalid format!" +msgstr "Lista aliasów e-mail ma nieprawidłowy format!" + +#: ../lib/modules/kolabUser.inc:211 ../lib/modules/kolabUser.inc:390 +#: ../lib/modules/kolabUser.inc:807 +msgid "EMail aliases" +msgstr "Aliasy E-Mail" + +#: ../lib/modules/sambaSamAccount.inc:500 +msgid "East Australian Standard, Guam" +msgstr "East Australian Standard, Guam" + +#: ../lib/modules/sambaSamAccount.inc:492 +msgid "Eastern Europe Time, South Africa" +msgstr "Eastern Europe Time, South Africa" + +#: ../lib/modules/sambaSamAccount.inc:485 +msgid "Eastern Time (US & Canada), Bogota" +msgstr "Eastern Time (US & Canada), Bogota" + +#: ../lib/modules/sambaSamAccount.inc:1119 +#: ../lib/modules/sambaSamAccount.inc:1123 ../lib/lists.inc:462 +msgid "Edit" +msgstr "Edytuj" + +#: ../templates/pdfedit/pdfmain.php:134 +msgid "Edit PDF structure" +msgstr "Edytuj strukturę PDF" + +#: ../templates/config/confmain.php:245 +msgid "Edit account types" +msgstr "Edytuj typy kont" + +#: ../templates/config/mainmanage.php:58 ../templates/config/index.php:77 +msgid "Edit general settings" +msgstr "Edytuj ustawienia globalne" + +#: ../lib/modules/posixAccount.inc:996 +msgid "Edit groups" +msgstr "Edytuj grupy" + +#: ../lib/modules/posixGroup.inc:169 +msgid "Edit members" +msgstr "Edytuj członków" + +#: ../templates/config/confmain.php:247 +msgid "Edit modules" +msgstr "Edytuj moduły" + +#: ../templates/profedit/profilemain.php:144 +msgid "Edit profile" +msgstr "Edytuj profile" + +#: ../templates/config/index.php:103 +msgid "Edit self service" +msgstr "" + +#: ../templates/config/index.php:89 +msgid "Edit server profiles" +msgstr "Edytuj profile serwerowe" + +#: ../lib/modules/sambaAccount.inc:798 ../lib/modules/sambaSamAccount.inc:1071 +msgid "Edit workstations" +msgstr "Edytuj stacje robocze" + +#: ../lib/modules/inetOrgPerson.inc:95 ../lib/modules/inetOrgPerson.inc:172 +#: ../lib/modules/inetOrgPerson.inc:221 ../lib/modules/inetOrgPerson.inc:406 +#: ../lib/modules/inetOrgPerson.inc:885 ../lib/modules/inetOrgPerson.inc:1048 +msgid "Employee type" +msgstr "Typy pracownikół" + +#: ../lib/modules/inetOrgPerson.inc:407 +msgid "Employee type: Contractor, Employee, Intern, Temp, External, ..." +msgstr "Typ pracownika: kontraktowy, etatowy, czasowy, wolny strzelec..." + +#: ../templates/lists/changePassword.php:249 +#: ../templates/lists/changePassword.php:255 ../templates/login.php:398 +msgid "Empty password submitted. Please try again." +msgstr "Podano puste hasło. Proszę spróbować ponownie." + +#: ../templates/tree/download_binary_attr.php:71 +msgid "Encountered an error while performing search." +msgstr "W trakcie wyszukiwania napotkano błąd." + +#: ../lib/modules/sambaSamAccount.inc:478 +msgid "Eniwetok, Kwajalein" +msgstr "Eniwetok, Kwajalein" + +#: ../templates/tree/add_value_form.php:137 +msgid "Enter the value you would like to add:" +msgstr "Proszę podać wartość do wprowadzenia:" + +#: ../lib/export.inc:407 +msgid "Entry" +msgstr "Pozycja" + +#: ../templates/tree/rdelete.php:118 +#, php-format +msgid "Entry %s and sub-tree deleted successfully." +msgstr "Pozycja %s oraz poddrzewo usunięte poprawnie" + +#: ../templates/tree/delete.php:107 +#, php-format +msgid "Entry %s deleted successfully." +msgstr "Pozycja %s usunięta poprawnie" + +#: ../templates/schema/schema.php:171 +msgid "Equality" +msgstr "Równość" + +#: ../templates/config/mainmanage.php:256 +msgid "Error" +msgstr "Błąd" + +#: ../templates/delete.php:235 +#, php-format +msgid "Error while deleting DN: %s" +msgstr "Błąd podczas usuwania DN %s" + +#: ../help/help.inc:128 +msgid "" +"Every account type needs exactly one base module. This module provides a " +"structural object class." +msgstr "" +"Każdy typ konta wymaga dokładnie jednego modułu bazowego. Moduł ten " +"udostępnia strukturę obiektu klasy." + +#: ../help/help.inc:74 ../help/help.inc:80 ../help/help.inc:86 +#: ../help/help.inc:91 ../help/help.inc:110 +msgid "Example" +msgstr "Przykład" + +#: ../templates/masscreate.php:162 ../templates/masscreate.php:321 +msgid "Example value" +msgstr "Przykładowa wartość" + +#: ../help/help.inc:62 +msgid "Examples" +msgstr "Przykłady" + +#: ../templates/config/confmain.php:386 +msgid "Execute" +msgstr "Uruchom" + +#: ../templates/tests/lamdaemonTest.php:292 +msgid "Execute lamdaemon" +msgstr "Uruchom lamdaemon" + +#: ../templates/tree/edit.php:119 ../templates/tree/export_form.php:88 +#: ../templates/tree/export_form.php:96 +msgid "Export" +msgstr "Eksport" + +#: ../templates/tree/export_form.php:135 +msgid "Export format" +msgstr "Format eksportu" + +#: ../templates/tree/add_attr.php:132 +msgid "Failed to add the attribute." +msgstr "Nie udało się dodać atrybutu" + +#: ../templates/initsuff.php:154 +msgid "Failed to create entry!" +msgstr "Błąd tworzenia pozycji!" + +#: ../templates/tree/rdelete.php:121 ../templates/tree/rdelete.php:142 +#: ../templates/tree/rdelete.php:154 +#, php-format +msgid "Failed to delete entry %s" +msgstr "Błąd usuwania pozycji %s!" + +#: ../lib/modules/inetOrgPerson.inc:83 ../lib/modules/inetOrgPerson.inc:153 +#: ../lib/modules/inetOrgPerson.inc:281 ../lib/modules/inetOrgPerson.inc:438 +#: ../lib/modules/inetOrgPerson.inc:439 ../lib/modules/inetOrgPerson.inc:854 +#: ../lib/modules/inetOrgPerson.inc:1057 ../lib/modules/inetOrgPerson.inc:1389 +msgid "Fax number" +msgstr "Numer faksu" + +#: ../templates/config/mainmanage.php:329 +msgid "File" +msgstr "Plik" + +#: ../lib/modules/sambaSamAccount.inc:244 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user and $group are replaced with user and group name." +msgstr "" +"Nazwa pliku i ścieżka względna wobec zasobu netlogon który powinien być " +"wykonany w trakcie logowania. Zmienne $user oraz $group zostaną zastąpione " +"przez nazwę użytkownika i grupy." + +#: ../lib/modules/sambaAccount.inc:392 +msgid "" +"File name and path relative to the netlogon-share which should be executed " +"on logon. $user and $group are replaced with user and group name." +msgstr "" +"Nazwa pliku i ścieżka względna wobec zasobu netlogon który powinien być " +"wykonany w trakcie logowania. Zmienne $user oraz $group zostaną zastąpione " +"przez nazwę użytkownika i grupy." + +#: ../templates/tools.php:64 ../templates/masscreate.php:124 +msgid "File upload" +msgstr "Załaduj plik" + +#: ../templates/tree/add_attr.php:95 +msgid "File upload failed!" +msgstr "Ładowanie pliku nie powiodło się! " + +#: ../lib/lists.inc:389 +msgid "Filter" +msgstr "Filtr" + +#: ../lib/types/user.inc:87 ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:151 ../lib/modules/inetOrgPerson.inc:196 +#: ../lib/modules/inetOrgPerson.inc:398 ../lib/modules/inetOrgPerson.inc:718 +#: ../lib/modules/inetOrgPerson.inc:1046 ../lib/modules/inetOrgPerson.inc:1341 +msgid "First name" +msgstr "Imię" + +#: ../lib/modules/inetOrgPerson.inc:73 ../lib/modules/inetOrgPerson.inc:74 +msgid "First name contains invalid characters!" +msgstr "Imię zawiera niedozwolone znaki!" + +#: ../lib/modules/inetOrgPerson.inc:399 +msgid "First name of user. Only letters, - and spaces are allowed." +msgstr "Imię użytkownika. Dopuszczalne są jedynie litery i cyfry." + +#: ../lib/modules/kolabUser.inc:146 +msgid "For automatic invitation handling." +msgstr "Do obsługi automatycznych zaproszeń." + +#: ../help/help.inc:178 +msgid "Format" +msgstr "Format" + +#: ../lib/modules/kolabUser.inc:93 ../lib/modules/kolabUser.inc:127 +#: ../lib/modules/kolabUser.inc:177 ../lib/modules/kolabUser.inc:223 +#: ../lib/modules/kolabUser.inc:335 ../lib/modules/kolabUser.inc:785 +#: ../lib/modules/kolabUser.inc:837 +msgid "Free/Busy interval" +msgstr "Interwał wolny/zajęty" + +#: ../lib/modules/kolabUser.inc:255 ../lib/modules/kolabUser.inc:256 +msgid "Free/Busy interval must be a number!" +msgstr "Interwał wolny/zajęty musi być wartością liczbową!" + +#: ../lib/modules/sambaSamAccount.inc:1189 +msgid "Friday" +msgstr "Piątek " + +#: ../templates/lists/changePassword.php:139 +msgid "Full name" +msgstr "Pełne imię i nazwisko" + +#: ../lib/modules/inetOrgPerson.inc:247 +msgid "GB-12345" +msgstr "GB-12345" + +#: ../lib/types/host.inc:87 ../lib/types/group.inc:84 ../lib/types/user.inc:84 +#: ../lib/modules/posixGroup.inc:160 ../lib/modules/posixGroup.inc:356 +#: ../lib/modules/posixGroup.inc:386 ../lib/modules/posixGroup.inc:406 +#: ../lib/modules/posixGroup.inc:450 ../lib/modules/posixGroup.inc:470 +#: ../lib/modules/posixAccount.inc:88 ../lib/modules/posixAccount.inc:1217 +#: ../lib/modules/sambaGroupMapping.inc:345 +msgid "GID number" +msgstr "wartość GID" + +#: ../lib/modules/posixGroup.inc:470 +msgid "" +"GID number has changed. Please select checkbox to change GID number of users " +"and hosts." +msgstr "" +"Wartość GID uległa zmianie. Proszę zaznaczyć okienko aby zmienić wartość GID " +"dla użytkowników i maszyn." + +#: ../lib/modules/posixAccount.inc:88 +#, php-format +msgid "" +"GID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" +msgstr "" +"Wartość GID uległa zmianie. Aby zachować uprawnienia plików należy wykonać " +"jako root polecenie: 'find / -gid %s -uid %s -exec chgrp %s {} \\;' " + +#: ../lib/modules/posixGroup.inc:477 +msgid "GID number has to be a numeric value!" +msgstr "GID musi być wartością numeryczną!" + +#: ../lib/modules/posixAccount.inc:266 ../lib/modules/posixAccount.inc:298 +#: ../lib/modules/posixAccount.inc:376 ../lib/modules/posixAccount.inc:414 +#: ../lib/modules/posixAccount.inc:980 ../lib/modules/posixAccount.inc:1218 +msgid "Gecos" +msgstr "Gecos" + +#: ../templates/lists/changePassword.php:170 ../help/help.inc:175 +msgid "Generate random password" +msgstr "Wygeneruj losowe hasło" + +#: ../lib/modules/kolabUser.inc:200 +msgid "Germany" +msgstr "Niemcy" + +#: ../templates/schema/schema.php:133 ../templates/schema/schema.php:270 +#: ../templates/schema/schema.php:301 ../templates/schema/schema.php:326 +msgid "Go" +msgstr "Idź" + +#: ../lib/modules/quota.inc:112 ../lib/modules/quota.inc:360 +msgid "Grace block period" +msgstr "" + +#: ../lib/modules/quota.inc:113 +msgid "Grace block period. Most filesystems use a fixed maximum value of 7 days." +msgstr "" + +#: ../lib/modules/quota.inc:135 +msgid "" +"Grace inode (files) period. Most filesystems use a fixed maximum value of 7 " +"days." +msgstr "" + +#: ../lib/modules/quota.inc:134 ../lib/modules/quota.inc:364 +msgid "Grace inode period" +msgstr "" + +#: ../templates/config/confmain.php:391 +#: ../templates/selfService/adminMain.php:498 +msgid "Group" +msgstr "Grupa" + +#: ../lib/types/group.inc:54 +msgid "Group accounts (e.g. Unix and Samba)" +msgstr "Konta grup (w rozumieniu Unix i Samba)" + +#: ../lib/types/group.inc:87 ../lib/modules/posixGroup.inc:362 +msgid "Group description" +msgstr "Opis grupy" + +#: ../lib/modules/posixGroup.inc:391 +msgid "Group description. If left empty group name will be used." +msgstr "Opis grupy. Jeżeli pusty to zostanie użyta nazwa grupy." + +#: ../lib/types/gon.inc:83 ../lib/types/gon.inc:84 ../lib/types/group.inc:86 +msgid "Group member DNs" +msgstr "DN członków grupy" + +#: ../lib/types/group.inc:85 ../lib/modules/posixGroup.inc:168 +#: ../lib/modules/posixGroup.inc:234 ../lib/modules/posixGroup.inc:368 +#: ../lib/modules/posixGroup.inc:394 ../lib/modules/posixGroup.inc:398 +#: ../lib/modules/posixGroup.inc:451 +msgid "Group members" +msgstr "Członkowie grupy" + +#: ../lib/types/gon.inc:82 ../lib/types/group.inc:83 +#: ../lib/modules/posixGroup.inc:156 ../lib/modules/posixGroup.inc:348 +#: ../lib/modules/posixGroup.inc:382 ../lib/modules/posixGroup.inc:449 +#: ../lib/modules/posixGroup.inc:478 ../lib/modules/posixGroup.inc:479 +#: ../lib/modules/posixGroup.inc:480 ../lib/modules/groupOfNames.inc:60 +#: ../lib/modules/groupOfNames.inc:84 ../lib/modules/groupOfNames.inc:439 +msgid "Group name" +msgstr "Nazwa grupy" + +#: ../lib/modules/posixGroup.inc:480 ../lib/modules/posixGroup.inc:481 +msgid "" +"Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Nazwa grupy zawiera nieprawidłowe znaki. Dopuszczalne znaki to: a-z, A-Z, 0-" +"9 oraz .-_ !" + +#: ../lib/modules/posixGroup.inc:479 +msgid "Group name in use. Selected next free group name." +msgstr "Grupa już istnieje, proszę użyć innej nazwy." + +#: ../lib/modules/posixGroup.inc:383 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ . LAM does not allow a number as first character because " +"groupadd also does not allow it. If group name is already used group name " +"will be expanded with a number. The next free number will be used." +msgstr "" +"Nazwa grupy która ma być stworzona. Dopuszczalne znaki to: a-z, A-Z, 0-9 " +"oraz .-_ . LAM nie dopuszcza użycia cyfry jako pierwszego znaku nazwy. " +"Jeżeli nazwa grupy już istnieje to zostanie stworzona nowa poprzez dodanie " +"cyfry na końcu nazwy bieżącej." + +#: ../lib/types/gon.inc:44 ../lib/modules/groupOfNames.inc:44 +msgid "Group of names" +msgstr "Grupa nazw" + +#: ../lib/types/gon.inc:53 +#, fuzzy +msgid "Group of names accounts" +msgstr "Grupa nazw" + +#: ../lib/modules/groupOfUniqueNames.inc:42 +msgid "Group of unique names" +msgstr "Grupa unikalnych nazw" + +#: ../lib/modules/posixGroup.inc:374 ../lib/modules/posixGroup.inc:402 +msgid "Group password" +msgstr "Hasło grupy" + +#: ../lib/modules/sambaGroupMapping.inc:227 +msgid "Group type" +msgstr "Rodzaj grupy" + +#: ../lib/types/group.inc:45 ../lib/modules/posixGroup.inc:312 +msgid "Groups" +msgstr "Grupy" + +#: ../lib/modules/quota.inc:553 +msgid "Hard block" +msgstr "" + +#: ../lib/modules/quota.inc:106 ../lib/modules/quota.inc:107 +#: ../lib/modules/quota.inc:359 ../lib/modules/quota.inc:444 +msgid "Hard block limit" +msgstr "" + +#: ../lib/modules/quota.inc:555 +msgid "Hard inode" +msgstr "" + +#: ../lib/modules/quota.inc:129 +msgid "Hard inode (files) limit" +msgstr "" + +#: ../lib/modules/quota.inc:128 ../lib/modules/quota.inc:363 +#: ../lib/modules/quota.inc:446 +msgid "Hard inode limit" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:480 +msgid "Hawaii" +msgstr "Hawaje" + +#: ../templates/pdfedit/pdfpage.php:396 ../templates/pdfedit/pdfpage.php:565 +#: ../templates/pdfedit/pdfpage.php:579 +msgid "Headline" +msgstr "Nagłówek" + +#: ../templates/lists/changePassword.php:182 ../templates/ou_edit.php:177 +#: ../templates/ou_edit.php:192 ../templates/masscreate.php:157 +#: ../templates/masscreate.php:170 ../templates/masscreate.php:308 +#: ../templates/config/profmanage.php:174 +#: ../templates/config/profmanage.php:226 +#: ../templates/config/profmanage.php:256 +#: ../templates/config/profmanage.php:290 +#: ../templates/config/profmanage.php:335 +#: ../templates/config/profmanage.php:359 +#: ../templates/config/mainmanage.php:180 +#: ../templates/config/mainmanage.php:197 +#: ../templates/config/mainmanage.php:236 +#: ../templates/config/mainmanage.php:273 +#: ../templates/config/mainmanage.php:289 +#: ../templates/config/mainmanage.php:353 +#: ../templates/config/confmodules.php:123 +#: ../templates/config/confmain.php:154 ../templates/config/confmain.php:168 +#: ../templates/config/confmain.php:190 ../templates/config/confmain.php:225 +#: ../templates/config/confmain.php:249 ../templates/config/confmain.php:330 +#: ../templates/config/confmain.php:349 ../templates/config/confmain.php:358 +#: ../templates/config/confmain.php:403 ../templates/config/confmain.php:422 +#: ../templates/config/confmain.php:436 ../templates/config/conftypes.php:204 +#: ../templates/config/conftypes.php:220 ../templates/config/conflogin.php:129 +#: ../templates/config/mainlogin.php:120 +#: ../templates/selfService/profManage.php:160 +#: ../templates/selfService/profManage.php:200 +#: ../templates/selfService/profManage.php:235 +#: ../templates/selfService/profManage.php:259 +#: ../templates/selfService/adminLogin.php:126 +#: ../templates/selfService/adminMain.php:273 +#: ../templates/selfService/adminMain.php:287 +#: ../templates/selfService/adminMain.php:301 +#: ../templates/selfService/adminMain.php:315 +#: ../templates/selfService/adminMain.php:338 +#: ../templates/selfService/adminMain.php:358 +#: ../templates/selfService/adminMain.php:373 +#: ../templates/selfService/adminMain.php:388 +#: ../templates/selfService/adminMain.php:472 +#: ../templates/selfService/adminMain.php:506 +#: ../templates/pdfedit/pdfpage.php:682 +#: ../templates/profedit/profilepage.php:198 +#: ../templates/profedit/profilepage.php:218 +#: ../templates/profedit/profilepage.php:255 ../lib/lists.inc:385 +#: ../lib/modules.inc:831 ../lib/modules.inc:1168 ../lib/modules.inc:1224 +#: ../lib/modules.inc:1341 +msgid "Help" +msgstr "Pomoc" + +#: ../templates/masscreate.php:145 +msgid "" +"Here is a list of possible columns. The red columns must be included in the " +"CSV file and filled with data for all accounts." +msgstr "" +"Poniżej przedstawiono listę dostępnych kolumn. Kolumny zaznaczone na " +"czerwono muszą być wypełnione dla wszystkich kont." + +#: ../templates/tools.php:89 +msgid "Here you can browse LDAP object classes and attributes." +msgstr "Przeglądanie obiektów LDAP - klas i atrybutów." + +#: ../lib/modules/sambaSamAccount.inc:323 +msgid "Here you can change the settings for the terminal server access." +msgstr "Zmiana ustawień dostępu do serwera terminali." + +#: ../templates/masscreate.php:91 +msgid "Here you can create multiple accounts by providing a CSV file." +msgstr "Tworzenie wsadowe wielu kont poprzez załadunek z pliku w formacie CSV." + +#: ../lib/modules/groupOfNames.inc:65 +msgid "Here you can enter a description for this group." +msgstr "Miejsce na opis grupy." + +#: ../lib/modules/posixAccount.inc:356 +msgid "" +"Here you can enter a list of additional group memberships. The group names " +"are separated by commas." +msgstr "" +"Miejsce na wprowadzenie listy przynależności do dodatkowych grup. Nazwy grup " +"oddzielone są przecinkami." + +#: ../help/help.inc:140 +msgid "" +"Here you can input small filter expressions (e.g. 'value' or 'v*'). LAM will " +"filter case-insensitive." +msgstr "" +"Miejsce na wprowadzenie wyrażeń filtrujących (na przykład: 'wartość' bądź " +"'w*'). Filtrowanie nie uwzględnia wielkości znaków." + +#: ../help/help.inc:153 +msgid "" +"Here you can load an account profile to set default settings for your " +"account. The \"default\" profile is automatically loaded for new accounts." +msgstr "" +"Miejsce na załadowanie profilu konta w celu ustawienia wartości domyślnych. " +"Domyślny (\"default\") profil będzie ładowany dla wszystkich nowo tworzonych " +"kont." + +#: ../templates/tools.php:57 +msgid "Here you can manage your account profiles." +msgstr "Miejsce na zarządzanie profilami kont." + +#: ../help/help.inc:155 +msgid "Here you can select a PDF structure and export the account to a PDF file." +msgstr "Miejsce na wybór struktury pliku PDF i wyeksportowanie do niego kont." + +#: ../help/help.inc:134 +msgid "" +"Here you can select where LAM should save its log messages. System logging " +"will go to Syslog on Unix systems and event log on Windows. You can also " +"select an extra file." +msgstr "" +"Należy dokonać wyboru sposobu zapisywania dzienników systemowych. 'System " +"logging' oznacza zapis z użyciem demona syslog na systemach Unix lub " +"dziennika zdarzeń Windows. Można też wskazać wydzielony plik." + +#: ../help/help.inc:106 +msgid "Here you can select which plugins you want to use for account management." +msgstr "Należy dokonać wyboru wtyczek które używane będą do zarządzania kontami." + +#: ../lib/modules/phpGroupwareUser.inc:79 +#, fuzzy +msgid "Here you can specify if the account is active or inactive." +msgstr "Należy wskazać tryb shadowingu." + +#: ../help/help.inc:138 +#, fuzzy +msgid "" +"Here you can specify minimum requirements for passwords. The character " +"classes are: lowercase, uppercase, numeric and symbols." +msgstr "Należy wskazać minimalną długość hasła użytkownika." + +#: ../lib/modules/sambaDomain.inc:95 +msgid "Here you can specify the minimum number of characters for a user password." +msgstr "Należy wskazać minimalną długość hasła użytkownika." + +#: ../templates/lists/changePassword.php:192 +msgid "Here you can specify the new password yourself." +msgstr "Należy wpisać własne hasło." + +#: ../lib/modules/sambaSamAccount.inc:314 +msgid "Here you can specify the shadowing mode." +msgstr "Należy wskazać tryb shadowingu." + +#: ../templates/tools.php:96 +msgid "Here you can test if certain LAM features work on your installation." +msgstr "Tu można sprawdzić czy na tym systemie LAM posiada pełną funkcjonalność." + +#: ../templates/tree/edit.php:104 +msgid "Hide internal attributes" +msgstr "Ukryj atrybuty wewnętrzne" + +#: ../templates/masscreate.php:130 +msgid "" +"Hint: Format all cells as text in your spreadsheet program and turn off auto " +"correction." +msgstr "" +"Podpowiedź: proszę sformatować wszystkie komórki w arkuszu jako tekst i " +"wyłączyć automatyczną korekcję." + +#: ../templates/tree/edit.php:124 +msgid "Hint: To delete an attribute, empty the text field and click save." +msgstr "" +"Podpowiedź: aby usunąć atrybut należy opróżnić pole tekstowe i kliknąć " +"'zapisz'." + +#: ../lib/modules/posixAccount.inc:401 +msgid "Hold the CTRL-key to (de)select multiple groups." +msgstr "Należy wcisnąć i przytrzymać klawisz CTRL aby za(od)znaczyć kilka grup." + +#: ../lib/types/user.inc:89 ../lib/modules/sambaSamAccount.inc:286 +#: ../lib/modules/sambaSamAccount.inc:1309 +#: ../lib/modules/sambaSamAccount.inc:1669 ../lib/modules/posixAccount.inc:63 +#: ../lib/modules/posixAccount.inc:64 ../lib/modules/posixAccount.inc:66 +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:230 +#: ../lib/modules/posixAccount.inc:359 ../lib/modules/posixAccount.inc:363 +#: ../lib/modules/posixAccount.inc:367 ../lib/modules/posixAccount.inc:384 +#: ../lib/modules/posixAccount.inc:785 ../lib/modules/posixAccount.inc:999 +#: ../lib/modules/posixAccount.inc:1166 ../lib/modules/posixAccount.inc:1221 +msgid "Home directory" +msgstr "Katalog domowy" + +#: ../lib/modules/posixAccount.inc:66 +#, php-format +msgid "" +"Home directory changed. To keep home directory you have to run the following " +"command as root: 'mv %s %s'" +msgstr "" +"Katalog domowy został zmieniony. Aby zachować jego zawartość należy wykonać " +"jako root następujące polecenie: 'mv %s %s'" + +#: ../lib/modules/sambaAccount.inc:150 ../lib/modules/sambaAccount.inc:281 +#: ../lib/modules/sambaAccount.inc:382 ../lib/modules/sambaAccount.inc:785 +#: ../lib/modules/sambaAccount.inc:893 ../lib/modules/sambaSamAccount.inc:234 +#: ../lib/modules/sambaSamAccount.inc:404 +#: ../lib/modules/sambaSamAccount.inc:1042 +#: ../lib/modules/sambaSamAccount.inc:1320 +#: ../lib/modules/sambaSamAccount.inc:1464 +#: ../lib/modules/sambaSamAccount.inc:1643 +#: ../lib/modules/sambaSamAccount.inc:1670 +msgid "Home drive" +msgstr "" + +#: ../lib/modules/sambaAccount.inc:61 ../lib/modules/sambaAccount.inc:62 +#: ../lib/modules/sambaAccount.inc:156 ../lib/modules/sambaAccount.inc:287 +#: ../lib/modules/sambaAccount.inc:385 ../lib/modules/sambaAccount.inc:788 +#: ../lib/modules/sambaAccount.inc:892 ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaSamAccount.inc:82 +#: ../lib/modules/sambaSamAccount.inc:237 +#: ../lib/modules/sambaSamAccount.inc:410 +#: ../lib/modules/sambaSamAccount.inc:1050 +#: ../lib/modules/sambaSamAccount.inc:1470 +#: ../lib/modules/sambaSamAccount.inc:1640 +msgid "Home path" +msgstr "" + +#: ../lib/modules/sambaAccount.inc:61 ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaSamAccount.inc:83 +msgid "Home path is invalid." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:79 ../lib/modules/inetOrgPerson.inc:155 +#: ../lib/modules/inetOrgPerson.inc:269 ../lib/modules/inetOrgPerson.inc:466 +#: ../lib/modules/inetOrgPerson.inc:840 ../lib/modules/inetOrgPerson.inc:1055 +#: ../lib/modules/inetOrgPerson.inc:1373 +msgid "Home telephone number" +msgstr "Telefon domowy" + +#: ../lib/modules/posixAccount.inc:63 ../lib/modules/posixAccount.inc:65 +msgid "Homedirectory contains invalid characters." +msgstr "Nazwa katalogu domowego zawiera niedozwolone znaki." + +#: ../lib/types/host.inc:53 +msgid "Host accounts (e.g. Samba)" +msgstr "" + +#: ../lib/types/host.inc:85 +msgid "Host description" +msgstr "Opis maszyny" + +#: ../lib/modules/account.inc:89 ../lib/modules/posixAccount.inc:415 +#: ../lib/modules/posixAccount.inc:423 +msgid "Host description. If left empty host name will be used." +msgstr "Opis maszyny. Jeżeli zostanie pozostawiony pusty użyta będzie nazwa maszyny." + +#: ../lib/modules/account.inc:108 +msgid "Host list" +msgstr "Lista maszyn" + +#: ../lib/types/host.inc:82 ../lib/types/host.inc:83 +#: ../lib/modules/account.inc:84 ../lib/modules/posixAccount.inc:78 +#: ../lib/modules/posixAccount.inc:79 ../lib/modules/posixAccount.inc:81 +#: ../lib/modules/posixAccount.inc:277 ../lib/modules/posixAccount.inc:410 +msgid "Host name" +msgstr "Nazwa maszyny" + +#: ../lib/modules/posixAccount.inc:85 +msgid "Host name already exists!" +msgstr "Nazwa maszyny już istnieje!" + +#: ../lib/modules/posixAccount.inc:83 +msgid "" +"Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Nazwa maszyny zawiera nieprawidłowe znaki! Dopuszczalne są: a-z, A-Z, 0-9 " +"oraz .-_ !" + +#: ../lib/modules/posixAccount.inc:79 +msgid "" +"Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ ! Host name must end with $ !" +msgstr "" +"Nazwa maszyny zawiera nieprawidłowe znaki! Dopuszczalne są: a-z, A-Z, 0-9 " +"oraz .-_ ! Nazwa maszyny musi być zakończona znakiem dolara ($)! " + +#: ../lib/modules/posixAccount.inc:81 +msgid "Host name in use. Selected next free host name." +msgstr "Taka nazwa maszyny już istnieje. Należy wybrać kolejną dostępną." + +#: ../lib/modules/account.inc:85 ../lib/modules/posixAccount.inc:411 +msgid "" +"Host name of the host which should be created. Valid characters are: a-z,A-" +"Z,0-9, .-_$. LAM does not allow a number as first character because useradd " +"also does not allow it. Host names are always ending with $. If last " +"character is not $ it will be added. If host name is already used host name " +"will be expanded with a number. The next free number will be used." +msgstr "" +"Nazwa maszyny która ma konto jest tworzone. Dopuszczalne znaki to: .a-z,A-" +"Z,0-9, .-_$. LAM nie dopuszcza użycia cyfry jako pierwszego znaku nazwy. " +"Nazwy maszyn muszą być zakończone znakiem dolara ($), jeżeli nie to zostanie " +"on automatycznie dodany. Jeżeli nazwa maszyny jest już zarejestrowana w " +"systemie zostanie wybrana nowa nazwa, ze zwiększoną wartością liczbową na " +"końcu. Użyta zostanie następna wolna wartość numeryczna." + +#: ../lib/types/host.inc:44 ../lib/modules/posixAccount.inc:58 +#: ../lib/modules/posixAccount.inc:59 ../lib/modules/posixAccount.inc:61 +#: ../lib/modules/posixAccount.inc:166 +msgid "Hosts" +msgstr "Maszyny" + +#: ../templates/lists/changePassword.php:179 +msgid "I am sure" +msgstr "Jestem pewien" + +#: ../lib/modules/posixGroup.inc:473 ../lib/modules/posixGroup.inc:581 +#: ../lib/modules/posixAccount.inc:69 ../lib/modules/posixAccount.inc:767 +msgid "ID is already in use" +msgstr "ID jest już w użyciu" + +#: ../lib/modules/posixGroup.inc:471 ../lib/modules/posixGroup.inc:472 +#: ../lib/modules/posixGroup.inc:473 ../lib/modules/posixGroup.inc:573 +#: ../lib/modules/posixGroup.inc:581 ../lib/modules/posixAccount.inc:67 +#: ../lib/modules/posixAccount.inc:68 ../lib/modules/posixAccount.inc:69 +#: ../lib/modules/posixAccount.inc:763 ../lib/modules/posixAccount.inc:767 +msgid "ID-Number" +msgstr "Numer ID" + +#: ../templates/masscreate.php:161 ../templates/masscreate.php:174 +#: ../templates/masscreate.php:313 +msgid "Identifier" +msgstr "identyfikator" + +#: ../lib/modules/sambaSamAccount.inc:1355 +#: ../lib/modules/sambaSamAccount.inc:1681 +msgid "Idle time limit" +msgstr "czas bezczynności" + +#: ../lib/modules/sambaAccount.inc:354 ../lib/modules/sambaSamAccount.inc:203 +msgid "If checked Unix password will also be used as Samba password." +msgstr "jeżeli zaznaczono hasło Unix ostanie użyte jako hasło Samba" + +#: ../lib/modules/posixAccount.inc:393 +msgid "" +"If checked account will be deactivated by putting a \"!\" before the " +"encrypted password." +msgstr "" +"jeżeli zaznaczono konto zostanie zablokowane poprzez wstawienie wykrzyknika " +"przed zaszyfrowany hasłem." + +#: ../lib/modules/sambaAccount.inc:372 +msgid "If checked account will be deactivated. (Setting D-Flag)" +msgstr "jeżeli zaznaczono konto zostanie zablokowane (D-Flag)" + +#: ../lib/modules/sambaAccount.inc:360 ../lib/modules/sambaSamAccount.inc:209 +msgid "If checked no password will be used." +msgstr "jeżeli zaznaczono hasło nie będzie użyte." + +#: ../lib/modules/sambaAccount.inc:366 ../lib/modules/sambaSamAccount.inc:215 +msgid "If checked password does not expire. (Setting X-Flag)" +msgstr "Jeżeli zaznaczono hasło nigdy się nie przeterminuje (Setting X-Flag)" + +#: ../lib/modules/sambaSamAccount.inc:221 +msgid "If checked then the account will be deactivated. (Setting D-Flag)" +msgstr "jeżeli zaznaczono konto zostanie zablokowane (Setting D-Flag) " + +#: ../lib/modules/sambaSamAccount.inc:224 +msgid "" +"If checked then the account will be locked (setting L-Flag). You usually " +"want to use this setting to unlock user accounts which were locked because " +"of failed login attempts." +msgstr "jeżeli zaznaczono konto zostanie zablokowane (Setting L-Flag). Zwykle opcja ta używana jest do odblokowywania kont które zostały zablokowane z powodu zbyt dużej ilości błędnych logowań." + +#: ../lib/modules/posixGroup.inc:387 +msgid "" +"If empty GID number will be generated automaticly depending on your " +"configuration settings." +msgstr "jeżeli pole pozostawiono puste nowy numer GID zostanie wygenerowany automatycznie." + +#: ../lib/modules/posixAccount.inc:348 +msgid "If empty UID number will be generated automaticly." +msgstr "jeżeli pole pozostawiono puste nowy numer UID zostanie wygenerowany automatycznie." + +#: ../lib/modules/sambaDomain.inc:103 +msgid "If set then users need to login to change their password." +msgstr "jeżeli pole zaznaczone to użytkownik musi się zalogować aby zmienić hasło." + +#: ../lib/modules/sambaAccount.inc:357 ../lib/modules/sambaSamAccount.inc:206 +msgid "If set to \"true\" Unix password will also be used as Samba password." +msgstr "Jeżeli ustawiono ( \"true\" ) to hasło do konta Unix zostanie użyte również jako hasło Samba." + +#: ../lib/modules/sambaAccount.inc:375 ../lib/modules/sambaSamAccount.inc:227 +msgid "If set to \"true\" account will be deactivated. (Setting D-Flag)" +msgstr "Jeżeli ustawiono (\"true\") to konto zastanie zdezaktywowane (Setting D-Flag)" + +#: ../lib/modules/sambaAccount.inc:363 ../lib/modules/sambaSamAccount.inc:212 +msgid "If set to \"true\" no password will be used." +msgstr "Jeżeli ustawiono (\"true\") to nie zostanie użyte hasło." + +#: ../lib/modules/sambaAccount.inc:369 ../lib/modules/sambaSamAccount.inc:218 +msgid "If set to \"true\" password does not expire. (Setting X-Flag)" +msgstr "Jeżeli ustawiono (\"true\") to konto nie będzie ulegało przedawnieniu (Setting X-Flag) " + +#: ../help/help.inc:177 +msgid "" +"If you decide to send the password via mail then the mail template \"config/" +"passwordMailTemplate.txt\" will be used." +msgstr "jeżeli hasło ma być wysłane pocztą elektroniczną to użyty zostanie wzorzec znajdujący się w pliku \"config/passwordMailTemplate.txt\"" + +#: ../lib/modules/sambaSamAccount.inc:263 +msgid "If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "jeżeli pozostawiono puste to LAM wyliczy wartość ze wzoru: uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../lib/modules/phpGroupwareGroup.inc:74 +#: ../lib/modules/phpGroupwareUser.inc:75 +msgid "If you set this to \"true\" then the phpGroupware extension will be added." +msgstr "Jeżeli ustawiono (\"true\") to dołączone zostanie rozszerzenie phpGroupware" + +#: ../help/help.inc:100 +msgid "If you want to change the current preferences password, please enter it here." +msgstr "należy wprowadzić nowe hasło do ustawień w celu jego zmiany." + +#: ../help/help.inc:124 +msgid "" +"If you want to change your master configuration password, please enter it " +"here." +msgstr "należy wprowadzić nowe hasło do głównej konfiguracji w celu jego zmiany." + +#: ../lib/modules/sambaAccount.inc:407 +msgid "" +"If you want to create domain administrators or other special users use this " +"option." +msgstr "tworzenie administratorów domeny bądź użytkowników specjalnych." + +#: ../lib/modules/sambaAccount.inc:401 +#: ../lib/modules/sambaGroupMapping.inc:319 +msgid "If you want to use a well known RID you can selcet a well known group." +msgstr "" + +#: ../templates/tree/export_form.php:120 +msgid "Include system attributes" +msgstr "dołącz atrybuty systemowe" + +#: ../lib/modules/sambaSamAccount.inc:292 +#: ../lib/modules/sambaSamAccount.inc:1330 +#: ../lib/modules/sambaSamAccount.inc:1676 +msgid "Inherit client startup configuration" +msgstr "dołącz konfigurację rozruchową klienta" + +#: ../templates/schema/schema.php:401 ../templates/schema/schema.php:422 +msgid "Inherited from" +msgstr "odziedziczone z " + +#: ../templates/schema/schema.php:162 ../templates/schema/schema.php:358 +msgid "Inherits from" +msgstr "dziedziczy z " + +#: ../lib/modules/sambaSamAccount.inc:295 +#: ../lib/modules/sambaSamAccount.inc:1335 +#: ../lib/modules/sambaSamAccount.inc:1677 +msgid "Initial program" +msgstr "program rozruchowy " + +#: ../lib/modules/quota.inc:51 +msgid "Inode hard quota" +msgstr "" + +#: ../lib/modules/quota.inc:51 ../lib/modules/quota.inc:52 +msgid "" +"Inode hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" + +#: ../lib/modules/quota.inc:55 +msgid "Inode quota" +msgstr "" + +#: ../lib/modules/quota.inc:49 +msgid "Inode soft quota" +msgstr "" + +#: ../lib/modules/quota.inc:49 ../lib/modules/quota.inc:50 +msgid "" +"Inode soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" + +#: ../lib/modules/quota.inc:55 ../lib/modules/quota.inc:56 +msgid "Inode soft quota must be smaller than inode hard quota." +msgstr "" + +#: ../templates/selfService/adminMain.php:400 +msgid "Input fields" +msgstr "" + +#: ../lib/modules/sambaAccount.inc:62 ../lib/modules/sambaAccount.inc:63 +#: ../lib/modules/sambaSamAccount.inc:82 +msgid "Inserted user or group name in home path." +msgstr "Odziedziczona nazwa użytkownika bądź grupy w ścieżce katalogu domowego." + +#: ../lib/modules/sambaAccount.inc:68 ../lib/modules/sambaSamAccount.inc:88 +msgid "Inserted user or group name in logon script." +msgstr "Wstawiona nazwa użytkownika bądź grupy w skrypcie logowania." + +#: ../lib/modules/sambaAccount.inc:65 ../lib/modules/sambaAccount.inc:66 +#: ../lib/modules/sambaSamAccount.inc:85 +msgid "Inserted user or group name in profile path." +msgstr "Wstawiona nazwa użytkownika bądź grupy w ścieżce do profilu." + +#: ../templates/massBuildAccounts.php:170 +msgid "Invalid RDN attribute!" +msgstr "Nieprawidłowy atrybut RDN!" + +#: ../lib/modules/sambaGroupMapping.inc:72 +msgid "Invalid account" +msgstr "Nieprawidłowe konto" + +#: ../lib/modules/kolabUser.inc:129 ../lib/modules/kolabUser.inc:145 +#: ../lib/modules/kolabUser.inc:192 ../lib/modules/kolabUser.inc:373 +#: ../lib/modules/kolabUser.inc:797 ../lib/modules/kolabUser.inc:920 +msgid "Invitation policy" +msgstr "" + +#: ../lib/modules/kolabUser.inc:149 +msgid "Invitation policy list" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:495 +msgid "Islamabad, Karachi" +msgstr "Islamabad, Karachi" + +#: ../lib/modules/posixGroup.inc:471 ../lib/modules/posixAccount.inc:68 +msgid "" +"It is possible that this ID-number is reused. This can cause several " +"problems because files with old permissions might still exist. To avoid this " +"warning set maxUID to a higher value." +msgstr "Możliwe że ten numer ID jest wykorzystany ponownie. Może to spowodować problemy, ponieważ w systemie mogą już istnieć pliki z takimi uprawnieniami. Aby zapobiec takim sytuacjom ustaw zmienną maxUID na większą wartość." + +#: ../lib/modules/inetOrgPerson.inc:93 ../lib/modules/inetOrgPerson.inc:168 +#: ../lib/modules/inetOrgPerson.inc:215 ../lib/modules/inetOrgPerson.inc:394 +#: ../lib/modules/inetOrgPerson.inc:871 ../lib/modules/inetOrgPerson.inc:1045 +msgid "Job title" +msgstr "Stanowisko" + +#: ../lib/modules/inetOrgPerson.inc:395 +msgid "Job title of user: President, department manager, ..." +msgstr "Stanowisko użytkownika: prezes, kierownik,..." + +#: ../templates/schema/schema.php:260 +msgid "Jump to a matching rule" +msgstr "Idź do pasującej reguły" + +#: ../templates/schema/schema.php:119 +msgid "Jump to an attribute type" +msgstr "Idź do typu atrybutu" + +#: ../templates/schema/schema.php:313 ../templates/schema/schema.php:363 +#: ../templates/schema/schema.php:378 +msgid "Jump to an object class" +msgstr "Idź do obiektu klasy" + +#: ../lib/modules/kolabUser.inc:72 +msgid "Kolab" +msgstr "Kolab" + +#: ../templates/tree/delete_form.php:100 +#, php-format +msgid "" +"LAM can recursively delete this entry and all of its children. See below for " +"a list of all the entries that this action will delete. Do you want to do " +"this?" +msgstr "LAM może usunąć rekursywnie tą pozycję i wszystkie jej podpozycje. Poniżej przedstawiono listę wszystkich pozycji które będą usunięte. Czy jesteś pewien, że chcesz to zrobić?" + +#: ../templates/login.php:212 ../templates/config/index.php:61 +msgid "LAM configuration" +msgstr "Konfiguracja LAM" + +#: ../templates/massBuildAccounts.php:194 +msgid "LAM has checked your input and is now ready to create the accounts." +msgstr "LAM sprawdził podane dane wejściowe i jest gotowy do stworzenia kont." + +#: ../lib/modules/posixGroup.inc:411 ../lib/modules/posixAccount.inc:344 +msgid "" +"LAM supports CRYPT, SHA, SSHA, MD5 and SMD5 to generate the hash value of " +"passwords. SSHA and CRYPT are the most common but CRYPT does not support " +"passwords greater than 8 letters. We do not recommend to use plain text " +"passwords." +msgstr "Do kodowania haseł LAM używa następujących funkcji skrótu: CRYPT, SHA, SSHA, MD5 oraz SMD5. SSHA i CRYPT najbardziej rozpowszechnione, ale CRYPT nie honoruje haseł dłuższych niż 8 znaków. Użycie haseł w postaci nie kodowanej nie jest zalecane." + +#: ../templates/tests/index.php:54 +msgid "LAM tests" +msgstr "Testy LAM" + +#: ../templates/tree/create.php:184 ../templates/massDoUpload.php:90 +#, php-format +msgid "LAM was unable to create account %s! An LDAP error occured." +msgstr "LAM nie był w stanie utworzyć konta %s! Wystąpił błąd LDAP." + +#: ../lib/modules/sambaGroupMapping.inc:398 +msgid "LAM was unable to find a Samba 3 domain with this name!" +msgstr "LAM nie był w stanie zlokalizować domeny Samba 3 o tej nazwie!" + +#: ../lib/modules/sambaSamAccount.inc:107 +msgid "LAM was unable to find a domain with this name!" +msgstr "LAM nie był w stanie zlokalizować domeny Samba o tej nazwie!" + +#: ../lib/modules/posixAccount.inc:86 +msgid "LAM was unable to find a group with this name!" +msgstr "LAM nie był w stanie zlokalizować grupy o tej nazwie!" + +#: ../lib/modules/posixAccount.inc:1613 +#, php-format +msgid "LAM was unable to modify group memberships for group: %s" +msgstr "LAM nie był w stanie dokonać modyfikacji udziałów w grupie %s" + +#: ../help/help.inc:160 +msgid "LAM will search for accounts in this part of the LDAP tree." +msgstr "LAM wyszuka konta w tej części drzewa LDAP." + +#: ../help/help.inc:162 +msgid "" +"LAM will use this LDAP DN and password to search for accounts. It is " +"sufficient to specify an account with read rights. If nothing is inserted " +"then LAM will try to connect anonymously." +msgstr "LAM użyje tego DN oraz hasła w celu zlokalizowania kont. Wystarczające jest podanie konta z prawami jedynie do odczytu. Jeżeli nie zostały wprowadzone żadne dane, LAM spróbuje połączyć się anonimowo." + +#: ../templates/profedit/profilepage.php:179 +msgid "LDAP" +msgstr "LDAP" + +#: ../templates/config/confmodules.php:76 ../templates/config/confmain.php:121 +#: ../templates/config/confmain.php:597 ../templates/config/conftypes.php:154 +#: ../templates/selfService/adminMain.php:107 +msgid "LDAP Account Manager Configuration" +msgstr "LDAP Konfiguracja Zarządzania Kontami" + +#: ../lib/modules/kolabUser.inc:142 +msgid "" +"LDAP DN (e.g. dc=company,dc=com) of accounts. This is used to find possible " +"delegation candidates." +msgstr "DN LDAP konta (na przykład: dc=company,dc=com). Zostanie użyte w celu odnalezienia potencjalnych kandydatów do delegacji." + +#: ../lib/lists.inc:854 +msgid "LDAP Search failed! Please check your preferences." +msgstr "Wyszukiwanie LDAP nie powiodło się! Proszę sprawdzić ustawienia." + +#: ../templates/config/conftypes.php:79 +msgid "LDAP Suffix is invalid!" +msgstr "Nieprawidłowy sufiks LDAP!" + +#: ../templates/login.php:445 +msgid "LDAP error, server says:" +msgstr "Błąd LDAP! Odpowiedź serwera: " + +#: ../lib/modules.inc:1210 +msgid "LDAP operation successful." +msgstr "Operacja LDAP zakończona pomyślnie." + +#: ../templates/selfService/adminMain.php:311 +msgid "LDAP password" +msgstr "hasło LDAP" + +#: ../templates/selfService/adminMain.php:324 ../help/help.inc:163 +msgid "LDAP search attribute" +msgstr "atrybut wyszukiwania LDAP" + +#: ../templates/login.php:330 +msgid "LDAP server" +msgstr "serwer LDAP" + +#: ../lib/types/group.inc:240 ../lib/lists.inc:837 +msgid "LDAP sizelimit exceeded, not all entries are shown." +msgstr "Przekroczono limit wielkości zapytania LDAP, niektóre pozycje nie zostaną wyświetlone." + +#: ../templates/config/conftypes.php:200 +#: ../templates/selfService/adminMain.php:283 +#: ../templates/profedit/profilepage.php:183 ../help/help.inc:71 +#: ../help/help.inc:159 +msgid "LDAP suffix" +msgstr "sufiks LDAP" + +#: ../templates/massDoUpload.php:126 +msgid "LDAP upload has finished" +msgstr "Ładowanie LDAP zakończone" + +#: ../templates/massDoUpload.php:74 +msgid "LDAP upload in progress. Please wait." +msgstr "Ładowanie LDAP w toku, proszę czekać..." + +#: ../templates/selfService/adminMain.php:297 +msgid "LDAP user" +msgstr "użytkownik LDAP" + +#: ../help/help.inc:161 +msgid "LDAP user and password" +msgstr "użytkownik i hasło LDAP" + +#: ../lib/export.inc:441 +#, php-format +msgid "LDIF Export for: %s" +msgstr "eksport LDIFF dla: %s" + +#: ../templates/tests/lamdaemonTest.php:205 +msgid "Lamdaemon server and path" +msgstr "Scieżka do serwera lamdaemon" + +#: ../templates/tests/lamdaemonTest.php:169 +msgid "Lamdaemon successfully run." +msgstr "Lamdaemon uruchomiony poprawnie." + +#: ../templates/tests/index.php:58 ../templates/tests/lamdaemonTest.php:55 +#: ../templates/tests/lamdaemonTest.php:76 +msgid "Lamdaemon test" +msgstr "Testy lamdaemon" + +#: ../templates/tests/lamdaemonTest.php:300 +msgid "Lamdaemon test finished." +msgstr "Test lamdaemon zakończony." + +#: ../templates/tests/lamdaemonTest.php:294 +msgid "Lamdaemon: Quota module installed" +msgstr "Lamdaemon: moduł quota zainstalowany " + +#: ../templates/tests/lamdaemonTest.php:295 +msgid "Lamdaemon: read quotas" +msgstr "Lamdaemon: odczyt quot" + +#: ../templates/login.php:279 +msgid "Language" +msgstr "Język" + +#: ../templates/config/confmain.php:516 +msgid "Language is not defined!" +msgstr "Język nie został zdefiniowany!" + +#: ../templates/config/confmain.php:293 +msgid "Language settings" +msgstr "Ustawienia języka" + +#: ../lib/modules/phpGroupwareUser.inc:160 +#: ../lib/modules/phpGroupwareUser.inc:386 +msgid "Last login" +msgstr "Ostatnie logowanie" + +#: ../lib/modules/phpGroupwareUser.inc:168 +#: ../lib/modules/phpGroupwareUser.inc:381 +msgid "Last login from" +msgstr "Ostatnie logowanie z " + +#: ../lib/types/user.inc:88 ../lib/modules/inetOrgPerson.inc:75 +#: ../lib/modules/inetOrgPerson.inc:151 ../lib/modules/inetOrgPerson.inc:202 +#: ../lib/modules/inetOrgPerson.inc:402 ../lib/modules/inetOrgPerson.inc:725 +#: ../lib/modules/inetOrgPerson.inc:1047 ../lib/modules/inetOrgPerson.inc:1349 +msgid "Last name" +msgstr "Nazwisko" + +#: ../lib/modules/inetOrgPerson.inc:75 ../lib/modules/inetOrgPerson.inc:76 +msgid "Last name contains invalid characters or is empty!" +msgstr "Nazwisko zawiera nieprawidłowe znaki bądź jest puste!" + +#: ../lib/modules/inetOrgPerson.inc:403 +msgid "Last name of user. Only letters, - and spaces are allowed." +msgstr "Nazwisko użytkownika. Dopuszczalne znaki to litery, - oraz spacje." + +#: ../lib/modules/shadowAccount.inc:365 +msgid "Last password change" +msgstr "Zmian nazwiska" + +#: ../templates/tree/export_form.php:148 +msgid "Line ends" +msgstr "Koniec linii " + +#: ../templates/selfService/adminMain.php:254 +msgid "Link to login page for this self service profile" +msgstr "" + +#: ../templates/config/conftypes.php:216 ../help/help.inc:83 +msgid "List attributes" +msgstr "Atrybuty listy" + +#: ../templates/config/conftypes.php:86 +msgid "List attributes are invalid!" +msgstr "Nieprawidłowe atrybuty listy!" + +#: ../lib/modules/sambaAccount.inc:395 ../lib/modules/sambaSamAccount.inc:247 +msgid "" +"List of Samba workstations the user is allowed to login. Empty means every " +"workstation." +msgstr "Lista stacji roboczych Samba z których użytkownik może się logować. Pole puste oznacza brak restrykcji." + +#: ../templates/config/confmain.php:510 +msgid "List of admin users is empty or invalid!" +msgstr "Lista administratorów jest pusta bądź nieprawidłowa!" + +#: ../templates/tree/delete_form.php:130 +msgid "List of entries to be deleted:" +msgstr "Lista pozycji do usunięcia:" + +#: ../templates/config/confmain.php:418 +msgid "List of valid users" +msgstr "Lista uprawnionych użytkowników" + +#: ../lib/modules.inc:1166 ../help/help.inc:152 +msgid "Load profile" +msgstr "Załaduj profil" + +#: ../lib/modules/inetLocalMailRecipient.inc:65 +#: ../lib/modules/inetLocalMailRecipient.inc:158 +msgid "Local address" +msgstr "Adres lokalny" + +#: ../lib/modules/inetLocalMailRecipient.inc:69 +#: ../lib/modules/inetLocalMailRecipient.inc:102 +#: ../lib/modules/inetLocalMailRecipient.inc:316 +msgid "Local address list" +msgstr "Lokalna lista adresowa" + +#: ../lib/modules/sambaGroupMapping.inc:69 +msgid "Local group" +msgstr "Grupa loklana" + +#: ../lib/modules/inetOrgPerson.inc:156 ../lib/modules/inetOrgPerson.inc:160 +#: ../lib/modules/inetOrgPerson.inc:299 ../lib/modules/inetOrgPerson.inc:478 +#: ../lib/modules/inetOrgPerson.inc:795 ../lib/modules/inetOrgPerson.inc:1064 +#: ../lib/modules/inetOrgPerson.inc:1437 +msgid "Location" +msgstr "Lokalizacja" + +#: ../lib/modules/posixGroup.inc:178 ../lib/modules/posixAccount.inc:258 +#: ../lib/modules/posixAccount.inc:1032 +msgid "Lock password" +msgstr "Zablokuj hasło" + +#: ../lib/modules/sambaDomain.inc:126 ../lib/modules/sambaDomain.inc:203 +#: ../lib/modules/sambaDomain.inc:337 ../lib/modules/sambaDomain.inc:681 +msgid "Lockout duration" +msgstr "Czas trwania blokady" + +#: ../lib/modules/sambaDomain.inc:203 +msgid "Lockout duration must be are natural number." +msgstr "Czas trwania blokady musi być wartością naturalną" + +#: ../lib/modules/sambaDomain.inc:114 ../lib/modules/sambaDomain.inc:205 +#: ../lib/modules/sambaDomain.inc:310 ../lib/modules/sambaDomain.inc:672 +msgid "Lockout users after bad logon attempts" +msgstr "Zablokuj użytkownika po nieudanych próbach logowania." + +#: ../lib/modules/sambaDomain.inc:205 +msgid "Lockout users after bad logon attempts must be between 0 and 999." +msgstr "Zablokuj użytkownika po nieudanych próbach logowania - liczba z zakresu od 0 do 999" + +#: ../templates/config/mainmanage.php:282 ../help/help.inc:133 +msgid "Log destination" +msgstr "" + +#: ../templates/config/mainmanage.php:253 ../help/help.inc:131 +msgid "Log level" +msgstr "" + +#: ../templates/config/mainmanage.php:247 +msgid "Logging" +msgstr "" + +#: ../templates/login.php:305 ../templates/config/conflogin.php:59 +#: ../templates/config/mainlogin.php:67 +#: ../templates/selfService/selfServiceLogin.php:129 +#: ../templates/selfService/adminLogin.php:61 +#: ../templates/selfService/adminMain.php:255 ../help/help.inc:57 +msgid "Login" +msgstr "Login" + +#: ../templates/selfService/adminMain.php:352 ../help/help.inc:165 +msgid "Login attribute label" +msgstr "" + +#: ../templates/selfService/adminMain.php:367 ../help/help.inc:167 +msgid "Login caption" +msgstr "" + +#: ../lib/types/user.inc:90 ../lib/modules/posixAccount.inc:244 +#: ../lib/modules/posixAccount.inc:396 ../lib/modules/posixAccount.inc:1020 +#: ../lib/modules/posixAccount.inc:1171 ../lib/modules/posixAccount.inc:1222 +msgid "Login shell" +msgstr "" + +#: ../templates/pdfedit/pdfpage.php:399 +msgid "Logo" +msgstr "Logo" + +#: ../lib/modules/sambaDomain.inc:102 ../lib/modules/sambaDomain.inc:277 +#: ../lib/modules/sambaDomain.inc:659 +msgid "Logon for password change" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:108 +#: ../lib/modules/sambaSamAccount.inc:271 +#: ../lib/modules/sambaSamAccount.inc:274 +#: ../lib/modules/sambaSamAccount.inc:448 +#: ../lib/modules/sambaSamAccount.inc:1118 +#: ../lib/modules/sambaSamAccount.inc:1516 +msgid "Logon hours" +msgstr "" + +#: ../lib/modules/sambaAccount.inc:67 ../lib/modules/sambaAccount.inc:68 +#: ../lib/modules/sambaAccount.inc:168 ../lib/modules/sambaAccount.inc:299 +#: ../lib/modules/sambaAccount.inc:391 ../lib/modules/sambaAccount.inc:794 +#: ../lib/modules/sambaAccount.inc:894 ../lib/modules/sambaSamAccount.inc:87 +#: ../lib/modules/sambaSamAccount.inc:88 +#: ../lib/modules/sambaSamAccount.inc:243 +#: ../lib/modules/sambaSamAccount.inc:422 +#: ../lib/modules/sambaSamAccount.inc:1066 +#: ../lib/modules/sambaSamAccount.inc:1482 +#: ../lib/modules/sambaSamAccount.inc:1646 +msgid "Logon script" +msgstr "" + +#: ../lib/modules/sambaAccount.inc:67 ../lib/modules/sambaAccount.inc:69 +#: ../lib/modules/sambaSamAccount.inc:87 ../lib/modules/sambaSamAccount.inc:89 +msgid "Logon script is invalid!" +msgstr "" + +#: ../templates/selfService/selfServiceMain.php:233 +#: ../templates/main_header.php:69 ../templates/logout.php:67 +msgid "Logout" +msgstr "" + +#: ../lib/modules/ieee802device.inc:51 ../lib/modules/ieee802device.inc:61 +#: ../lib/modules/ieee802device.inc:72 ../lib/modules/ieee802device.inc:102 +msgid "MAC address" +msgstr "Adres MAC" + +#: ../lib/modules/ieee802device.inc:65 +msgid "MAC address list" +msgstr "Lista adresów MAC" + +#: ../lib/modules/ieee802device.inc:197 +msgid "MAC address(es)" +msgstr "Adresy MAC" + +#: ../lib/modules/sambaSamAccount.inc:501 +msgid "Magadan, Solomon Islands" +msgstr "Magadan, Wyspy Salomona" + +#: ../lib/types/mailAlias.inc:44 ../lib/modules/nisMailAlias.inc:55 +msgid "Mail aliases" +msgstr "Aliasy pocztowe" + +#: ../lib/modules/kolabUser.inc:97 ../lib/modules/kolabUser.inc:181 +#: ../lib/modules/kolabUser.inc:229 ../lib/modules/kolabUser.inc:330 +#: ../lib/modules/kolabUser.inc:781 +msgid "Mail quota" +msgstr "" + +#: ../lib/modules/kolabUser.inc:257 ../lib/modules/kolabUser.inc:258 +msgid "Mail quota must be a number!" +msgstr "" + +#: ../lib/modules/inetLocalMailRecipient.inc:51 +msgid "Mail routing" +msgstr "" + +#: ../lib/modules/kolabUser.inc:85 +#: ../lib/modules/inetLocalMailRecipient.inc:73 +#: ../lib/modules/inetLocalMailRecipient.inc:79 +#: ../lib/modules/inetLocalMailRecipient.inc:108 +#: ../lib/modules/inetLocalMailRecipient.inc:150 +#: ../lib/modules/inetLocalMailRecipient.inc:319 +msgid "Mail server" +msgstr "Serwer pocztowy" + +#: ../templates/lists/changePassword.php:319 +#, php-format +msgid "Mail successfully sent to %s." +msgstr "Poczta prawidłowo wysłana do: %s" + +#: ../lib/modules/kolabUser.inc:173 ../lib/modules/kolabUser.inc:204 +#: ../lib/modules/kolabUser.inc:318 ../lib/modules/kolabUser.inc:324 +#: ../lib/modules/kolabUser.inc:777 +msgid "Mailbox home server" +msgstr "" + +#: ../lib/modules/kolabUser.inc:253 +msgid "Mailbox home server name is empty!" +msgstr "" + +#: ../lib/modules/kolabUser.inc:251 ../lib/modules/kolabUser.inc:252 +msgid "Mailbox home server name is invalid!" +msgstr "" + +#: ../lib/types/mailAlias.inc:53 +msgid "Mailing aliases (e.g. NIS mail aliases)" +msgstr "" + +#: ../lib/modules/nisMailAlias.inc:68 +msgid "Mails to this name are forwarded to the recipients." +msgstr "" + +#: ../templates/pdfedit/pdfpage.php:645 +msgid "Main" +msgstr "" + +#: ../templates/selfService/adminMain.php:382 ../help/help.inc:169 +msgid "Main page caption" +msgstr "" + +#: ../templates/selfService/adminLogin.php:137 +msgid "Manage self service profiles" +msgstr "" + +#: ../templates/config/conflogin.php:140 +msgid "Manage server profiles" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:227 ../lib/modules/inetOrgPerson.inc:410 +#: ../lib/modules/inetOrgPerson.inc:921 ../lib/modules/inetOrgPerson.inc:1049 +msgid "Manager" +msgstr "" + +#: ../templates/tools.php:73 +msgid "Manages OU objects in your LDAP tree." +msgstr "Zarządza obiektami OU w Twoim drzewie LDAP" + +#: ../lib/modules/kolabUser.inc:50 +msgid "Manual" +msgstr "Ręcznie" + +#: ../lib/modules/kolabUser.inc:52 +msgid "Manual if conflicts" +msgstr "Ręcznie jeśli konflikty" + +#: ../lib/modules/kolabUser.inc:422 ../lib/modules/kolabUser.inc:588 +msgid "Mark account for deletion" +msgstr "Zaznacz konto do usunięcia" + +#: ../lib/modules/kolabUser.inc:185 +msgid "Mark for deletion" +msgstr "Zaznacz do usunięcia" + +#: ../templates/config/profmanage.php:349 +#: ../templates/selfService/profManage.php:249 ../help/help.inc:125 +msgid "Master password" +msgstr "Hasło główne" + +#: ../templates/config/profmanage.php:69 +#: ../templates/selfService/profManage.php:57 +msgid "Master password is wrong!" +msgstr "Błędne hasło główne!" + +#: ../templates/config/mainmanage.php:89 +msgid "Master passwords are different or empty!" +msgstr "Hasła różnią się, bądź są puste!" + +#: ../templates/schema/schema.php:273 +msgid "Matching rule OID" +msgstr "Pasujący wzorzec OID" + +#: ../templates/schema/schema.php:82 ../templates/schema/schema.php:83 +msgid "Matching rules" +msgstr "Pasujący wzorzec" + +#: ../lib/modules/posixGroup.inc:315 ../lib/modules/posixGroup.inc:475 +#: ../lib/modules/posixGroup.inc:476 +msgid "Maximum GID number" +msgstr "Maksymalna wartość GID" + +#: ../lib/modules/posixGroup.inc:475 +msgid "Maximum GID number is invalid or empty!" +msgstr "Maksymalna wartość GID jest nieprawidłowa bądź pusta!" + +#: ../lib/modules/posixGroup.inc:476 +msgid "Maximum GID number must be greater than minimum GID number!" +msgstr "Maksymalna wartość GID musi być większa od minimalnej wartości GID!" + +#: ../lib/modules/posixAccount.inc:57 ../lib/modules/posixAccount.inc:59 +#: ../lib/modules/posixAccount.inc:60 ../lib/modules/posixAccount.inc:61 +#: ../lib/modules/posixAccount.inc:160 ../lib/modules/posixAccount.inc:169 +msgid "Maximum UID number" +msgstr "Maksymalna wartość UID" + +#: ../lib/modules/posixAccount.inc:57 ../lib/modules/posixAccount.inc:59 +msgid "Maximum UID number is invalid!" +msgstr "Maksymalna wartość UID jest nieprawidłowa!" + +#: ../lib/modules/posixAccount.inc:60 ../lib/modules/posixAccount.inc:61 +msgid "Maximum UID number must be greater than minimum UID number!" +msgstr "Maksymalna wartość UID musi być większa od minimalnej wartości UID!" + +#: ../templates/tree/add_attr_form.php:167 +#, php-format +msgid "Maximum file size: %s" +msgstr "Maksymalna wielkość pliku: %s" + +#: ../templates/tree/add_value_form.php:194 ../templates/schema/schema.php:219 +msgid "Maximum length" +msgstr "Maksymalna długość" + +#: ../lib/lists.inc:875 ../help/help.inc:93 +msgid "Maximum list entries" +msgstr "Maksymalna lista pozycji" + +#: ../lib/modules/shadowAccount.inc:48 ../lib/modules/shadowAccount.inc:54 +#: ../lib/modules/shadowAccount.inc:104 ../lib/modules/shadowAccount.inc:170 +#: ../lib/modules/shadowAccount.inc:200 ../lib/modules/shadowAccount.inc:283 +#: ../lib/modules/sambaDomain.inc:122 ../lib/modules/sambaDomain.inc:200 +#: ../lib/modules/sambaDomain.inc:202 ../lib/modules/sambaDomain.inc:328 +#: ../lib/modules/sambaDomain.inc:678 +msgid "Maximum password age" +msgstr "Maksymalny wiek hasła" + +#: ../lib/modules/groupOfNames.inc:72 ../lib/modules/groupOfNames.inc:76 +#: ../lib/modules/groupOfNames.inc:103 ../lib/modules/groupOfNames.inc:173 +#: ../lib/modules/groupOfNames.inc:451 +msgid "Members" +msgstr "Członkowie" + +#: ../lib/modules/sambaSamAccount.inc:488 +msgid "Mid-Atlantic" +msgstr "Śródatlantycki" + +#: ../lib/modules/sambaSamAccount.inc:479 +msgid "Midway Island, Samoa" +msgstr "Wyspy Midway, Samoa" + +#: ../lib/modules/inetOrgPerson.inc:204 +msgid "Miller" +msgstr "Miller" + +#: ../lib/modules/sambaDomain.inc:94 ../lib/modules/sambaDomain.inc:255 +#: ../lib/modules/sambaDomain.inc:651 +msgid "Minimal password length" +msgstr "Minimalna długość hasła" + +#: ../lib/modules/posixGroup.inc:312 ../lib/modules/posixGroup.inc:474 +msgid "Minimum GID number" +msgstr "Minimalna wartość GID" + +#: ../lib/modules/posixGroup.inc:474 +msgid "Minimum GID number is invalid or empty!" +msgstr "Minimalna wartość GID jest nieprawidłowa bądź pusta!" + +#: ../lib/modules/posixAccount.inc:56 ../lib/modules/posixAccount.inc:58 +#: ../lib/modules/posixAccount.inc:157 ../lib/modules/posixAccount.inc:166 +msgid "Minimum UID number" +msgstr "Minimalna wartość UID" + +#: ../lib/modules/posixAccount.inc:56 ../lib/modules/posixAccount.inc:58 +msgid "Minimum UID number is invalid!" +msgstr "Minimalna wartość UID jest nieprawidłowa!" + +#: ../templates/config/mainmanage.php:216 +msgid "Minimum character classes" +msgstr "" + +#: ../templates/config/mainmanage.php:212 +msgid "Minimum lowercase characters" +msgstr "" + +#: ../templates/config/mainmanage.php:214 +msgid "Minimum numeric characters" +msgstr "" + +#: ../lib/modules/shadowAccount.inc:46 ../lib/modules/shadowAccount.inc:99 +#: ../lib/modules/shadowAccount.inc:166 ../lib/modules/shadowAccount.inc:194 +#: ../lib/modules/shadowAccount.inc:278 ../lib/modules/sambaDomain.inc:118 +#: ../lib/modules/sambaDomain.inc:201 ../lib/modules/sambaDomain.inc:319 +#: ../lib/modules/sambaDomain.inc:675 +msgid "Minimum password age" +msgstr "Minimalny wiek hasła" + +#: ../templates/config/mainmanage.php:211 +msgid "Minimum password length" +msgstr "Minimalna długość hasła" + +#: ../templates/config/mainmanage.php:215 +msgid "Minimum symbolic characters" +msgstr "" + +#: ../templates/config/mainmanage.php:213 +msgid "Minimum uppercase characters" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:81 ../lib/modules/inetOrgPerson.inc:152 +#: ../lib/modules/inetOrgPerson.inc:275 ../lib/modules/inetOrgPerson.inc:434 +#: ../lib/modules/inetOrgPerson.inc:435 ../lib/modules/inetOrgPerson.inc:847 +#: ../lib/modules/inetOrgPerson.inc:1056 +msgid "Mobile number" +msgstr "Numer komórki" + +#: ../lib/modules/inetOrgPerson.inc:1381 +msgid "Mobile telephone number" +msgstr "Numer telefonu komórkowego" + +#: ../templates/lists/changePassword.php:172 +msgid "Mode" +msgstr "Tryb" + +#: ../templates/config/confmodules.php:88 +msgid "Module selection" +msgstr "Wybór modułu" + +#: ../lib/modules/sambaSamAccount.inc:1188 +msgid "Monday" +msgstr "Poniedziałek" + +#: ../lib/modules/sambaSamAccount.inc:483 +msgid "Mountain Time (US & Canada)" +msgstr "Czas Górski (US i Kanada)" + +#: ../lib/modules/quota.inc:92 ../lib/modules/quota.inc:356 +#: ../lib/modules/quota.inc:442 ../lib/modules/quota.inc:551 +msgid "Mountpoint" +msgstr "" + +#: ../lib/modules/quota.inc:93 +msgid "Mountpoint of device with enabled quotas." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:301 +msgid "MyCity" +msgstr "MyCity" + +#: ../lib/modules/inetOrgPerson.inc:253 +msgid "Mycity" +msgstr "Mycity" + +#: ../lib/modules/inetOrgPerson.inc:241 +msgid "Mystreetname 42" +msgstr "Mystreetname 42" + +#: ../templates/tree/templates/creation/new_ou_template.php:59 +#: ../templates/tree/templates/creation/new_ou_template.php:104 +#: ../templates/schema/schema.php:273 ../templates/pdfedit/pdfdelete.php:62 +#: ../templates/pdfedit/pdfdelete.php:65 ../templates/pdfedit/pdfdelete.php:90 +#: ../lib/modules/groupOfNames.inc:138 +msgid "Name" +msgstr "Imię" + +#: ../help/help.inc:147 +msgid "" +"Name under which the profile will be saved. If a profile with the same name " +"exists, it will be overwritten." +msgstr "Nazwa pod jaką zostanie zapisany profil. Jeżeli profil o takiej nazwie już istnieje to zostanie nadpisany." + +#: ../lib/modules/ieee802device.inc:109 +msgid "New MAC address" +msgstr "Nowy adres MAC" + +#: ../templates/ou_edit.php:67 +msgid "New OU created successfully." +msgstr "Nowy OU stworzony prawidłowo." + +#: ../lib/modules/ldapPublicKey.inc:103 +msgid "New SSH public key" +msgstr "Nowy klucz publiczny SSH" + +#: ../lib/modules/inetOrgPerson.inc:307 +msgid "New York" +msgstr "Nowy Jork" + +#: ../lib/types/mailAlias.inc:110 +msgid "New alias" +msgstr "Nowy alias" + +#: ../templates/config/profmanage.php:126 +msgid "New default profile set successfully." +msgstr "Nowy domyślny profil ustawiony prawidłowo." + +#: ../lib/types/smbDomain.inc:110 +msgid "New domain" +msgstr "Nowa domena" + +#: ../templates/pdfedit/pdfpage.php:636 +msgid "New field" +msgstr "Nowe Pole" + +#: ../lib/types/gon.inc:112 ../lib/types/group.inc:124 +msgid "New group" +msgstr "Nowa grupa" + +#: ../lib/types/host.inc:114 +msgid "New host" +msgstr "Nowa maszyna" + +#: ../lib/modules/inetLocalMailRecipient.inc:165 +msgid "New local address" +msgstr "Nowy adres lokalny" + +#: ../templates/config/mainmanage.php:345 +msgid "New master password" +msgstr "Nowe hasło główne" + +#: ../templates/config/mainmanage.php:86 +msgid "New master password set successfully." +msgstr "Nowe hasło główne nadane prawidłowo." + +#: ../lib/lists.inc:105 +msgid "New object" +msgstr "Nowy obiekt" + +#: ../templates/tree/templates/creation/new_ou_template.php:47 +#: ../templates/ou_edit.php:168 ../help/help.inc:186 +msgid "New organizational unit" +msgstr "Nowa jednostka organizacyjna" + +#: ../lib/modules/groupOfNames.inc:252 +msgid "New owner" +msgstr "Nowy właściciel" + +#: ../templates/config/confmain.php:431 ../lib/modules/posixAccount.inc:1740 +msgid "New password" +msgstr "Nowe hasło" + +#: ../templates/config/profmanage.php:117 +msgid "New password set successfully." +msgstr "Nowe hasło ustanowione prawidłowo" + +#: ../lib/modules/nisMailAlias.inc:152 +msgid "New recipient" +msgstr "Nowy odbiorca" + +#: ../templates/tree/add_oclass_form.php:134 +msgid "New required attributes:" +msgstr "Nowy wymagany atrybut:" + +#: ../templates/pdfedit/pdfpage.php:553 +msgid "New section" +msgstr "Nowa sekcja DN" + +#: ../lib/types/user.inc:128 +msgid "New user" +msgstr "Nowy użytkownik" + +#: ../templates/tree/update_confirm.php:154 +msgid "New value" +msgstr "Nowa wartość" + +#: ../templates/tree/create_form.php:138 +#: ../templates/tree/templates/creation/custom.php:86 +#: ../templates/tree/templates/creation/new_ou_template.php:69 +msgid "Next" +msgstr "Następny" + +#: ../lib/modules/sambaDomain.inc:78 ../lib/modules/sambaDomain.inc:158 +#: ../lib/modules/sambaDomain.inc:359 ../lib/modules/sambaDomain.inc:639 +msgid "Next RID" +msgstr "Następny RID" + +#: ../lib/modules/sambaDomain.inc:192 ../lib/modules/sambaDomain.inc:193 +msgid "Next RID is not a number!" +msgstr "Następny RID to nie liczba!" + +#: ../lib/modules/sambaDomain.inc:79 +msgid "Next RID to use when creating accounts (only used by Winbind)." +msgstr "Następny RID w wypadku tworzenia konta (używane jedynie przez Winbind)" + +#: ../lib/modules/sambaDomain.inc:87 +msgid "Next RID to use when creating group accounts (only used by Winbind)." +msgstr "Następny RID w wypadku tworzenia grupy (używane jedynie przez Winbind)" + +#: ../lib/modules/sambaDomain.inc:83 +msgid "Next RID to use when creating user accounts (only used by Winbind)." +msgstr "Nowy RID w wypadku tworzenia kont użytkowników" + +#: ../lib/modules/sambaDomain.inc:86 ../lib/modules/sambaDomain.inc:170 +#: ../lib/modules/sambaDomain.inc:369 ../lib/modules/sambaDomain.inc:645 +msgid "Next group RID" +msgstr "Następny RID grupy" + +#: ../lib/modules/sambaDomain.inc:196 ../lib/modules/sambaDomain.inc:197 +msgid "Next group RID is not a number!" +msgstr "Następny RID grupy nie jest liczbą!" + +#: ../lib/modules/sambaDomain.inc:82 ../lib/modules/sambaDomain.inc:164 +#: ../lib/modules/sambaDomain.inc:364 ../lib/modules/sambaDomain.inc:642 +msgid "Next user RID" +msgstr "Następny RID użytkownika" + +#: ../lib/modules/sambaDomain.inc:194 ../lib/modules/sambaDomain.inc:195 +msgid "Next user RID is not a number!" +msgstr "Następny RID użytkownika nie jest liczbą!" + +#: ../templates/schema/schema.php:158 ../templates/schema/schema.php:200 +#: ../templates/schema/schema.php:205 ../templates/schema/schema.php:210 +msgid "No" +msgstr "Nie" + +#: ../lib/modules/sambaSamAccount.inc:525 +#: ../lib/modules/sambaSamAccount.inc:593 +#: ../lib/modules/sambaSamAccount.inc:918 +#: ../lib/modules/sambaGroupMapping.inc:89 +#: ../lib/modules/sambaGroupMapping.inc:180 +#: ../lib/modules/sambaGroupMapping.inc:429 +msgid "No Samba 3 domains found in LDAP! Please create one first." +msgstr "W drzewie LDAP nie odnaleziono domen Samba3! Proszę najpierw jakąś utworzyć." + +#: ../lib/modules/posixAccount.inc:448 ../lib/modules/posixAccount.inc:651 +#: ../lib/modules/posixAccount.inc:954 +msgid "No Unix groups found in LDAP! Please create one first." +msgstr "W drzewie LDAP nie odnaleziono grup Unix. Proszę najpierw jakąś utworzyć." + +#: ../lib/types/mailAlias.inc:109 +msgid "No aliases found!" +msgstr "Nie znaleziono aliasów!" + +#: ../templates/initsuff.php:166 +msgid "No changes were made." +msgstr "Nie dokonano zmian." + +#: ../templates/schema/schema.php:149 +msgid "No description" +msgstr "Bez opisu" + +#: ../lib/types/smbDomain.inc:109 +msgid "No domains found!" +msgstr "Nie znaleziono domen!" + +#: ../lib/modules/inetOrgPerson.inc:106 +msgid "No file selected." +msgstr "Nie wybrano pliku." + +#: ../lib/modules/posixGroup.inc:472 ../lib/modules/posixAccount.inc:67 +msgid "No free ID-Number!" +msgstr "Brak wolnego numeru ID!" + +#: ../lib/types/gon.inc:111 ../lib/types/group.inc:123 +msgid "No groups found!" +msgstr "Nie znaleziono grup!" + +#: ../lib/types/host.inc:113 +msgid "No hosts found!" +msgstr "Nie znaleziono maszyn!" + +#: ../templates/tree/edit.php:193 +msgid "No internal attributes" +msgstr "Brak atrybutów wewnętrznych" + +#: ../templates/tests/lamdaemonTest.php:212 +msgid "No lamdaemon path set, please update your LAM configuration settings." +msgstr "Nie wskazano ścieżki do lamdaemon, proszę poprawić konfigurację LAM." + +#: ../templates/tests/lamdaemonTest.php:113 +#: ../templates/tests/lamdaemonTest.php:208 +msgid "No lamdaemon server set, please update your LAM configuration settings." +msgstr "Nie wskazano serwera lamdaemon, proszę poprawić konfigurację LAM." + +#: ../templates/config/mainmanage.php:301 +msgid "No logging" +msgstr "" + +#: ../templates/pdfedit/pdfpage.php:371 +msgid "No logo" +msgstr "Brak logo." + +#: ../lib/lists.inc:104 +msgid "No objects found!" +msgstr "Nie znaleziono obiektów!" + +#: ../templates/config/confmodules.php:268 +msgid "No or more than one base module selected!" +msgstr "Nie wybrano żadnego, bądź wybrano więcej niż jeden moduł bazowy!" + +#: ../templates/config/confmain.php:52 +msgid "No password was entered!" +msgstr "Nie wprowadzono hasła!" + +#: ../templates/tests/schemaTest.php:80 +msgid "No problems found." +msgstr "Nie znaleziono problemów!" + +#: ../templates/pdfedit/pdfpage.php:126 +msgid "No section text specified" +msgstr "" + +#: ../templates/config/conflogin.php:95 +msgid "No server profiles found. Please create one." +msgstr "Nie znaleziono profili serwera. Proszę utworzyć takowy." + +#: ../templates/pdfedit/pdfpage.php:114 +msgid "No static text specified" +msgstr "" + +#: ../templates/tree/edit.php:81 +msgid "No such entry!" +msgstr "Nie ma takiej pozycji!" + +#: ../templates/schema/schema.php:442 +#, php-format +msgid "No such schema item: \"%s\"" +msgstr "Nie ma takiej pozycji schematu: \"%s\"" + +#: ../lib/types/user.inc:127 +msgid "No users found!" +msgstr "Nie znaleziono użytkowników!" + +#: ../help/help.inc:68 +msgid "Note" +msgstr "" + +#: ../templates/tree/add_value_form.php:115 +msgid "" +"Note: You will get an \"inappropriate matching\" error if you have not setup " +"an EQUALITY rule on your LDAP server for this attribute." +msgstr "" + +#: ../templates/config/mainmanage.php:256 +msgid "Notice" +msgstr "" + +#: ../templates/delete.php:98 +msgid "Number of child entries" +msgstr "" + +#: ../lib/modules/shadowAccount.inc:163 +msgid "Number of days a user can login even his password has expired. -1=always." +msgstr "" + +#: ../lib/modules/shadowAccount.inc:167 +msgid "" +"Number of days a user has to wait until he is allowed to change his password " +"again. If set value must be >0." +msgstr "" + +#: ../lib/modules/shadowAccount.inc:171 +msgid "" +"Number of days after a user has to change his password again. If set value " +"must be >0." +msgstr "" + +#: ../lib/modules/sambaDomain.inc:131 +msgid "Number of minutes after which the bad logon attempts are reset." +msgstr "" + +#: ../lib/modules/sambaDomain.inc:119 +msgid "Number of seconds after the user is allowed to change his password again." +msgstr "" + +#: ../lib/modules/sambaDomain.inc:123 +msgid "Number of seconds after which the user must change his password." +msgstr "" + +#: ../templates/schema/schema.php:152 ../templates/schema/schema.php:349 +msgid "OID" +msgstr "" + +#: ../templates/ou_edit.php:73 +msgid "OU already exists!" +msgstr "" + +#: ../templates/ou_edit.php:84 +msgid "OU deleted successfully." +msgstr "" + +#: ../templates/ou_edit.php:155 ../templates/tools.php:72 +msgid "OU editor" +msgstr "" + +#: ../templates/ou_edit.php:77 +msgid "OU is invalid!" +msgstr "" + +#: ../templates/ou_edit.php:114 +msgid "OU is not empty or invalid!" +msgstr "" + +#: ../help/help.inc:186 ../help/help.inc:188 +msgid "OU-Editor" +msgstr "" + +#: ../templates/tree/templates/creation/custom.php:70 +#: ../templates/schema/schema.php:70 ../templates/schema/schema.php:71 +msgid "Object classes" +msgstr "" + +#: ../templates/schema/schema.php:157 ../templates/schema/schema.php:288 +msgid "Obsolete" +msgstr "" + +#: ../lib/modules/sambaDomain.inc:279 ../lib/modules/sambaDomain.inc:290 +#: ../lib/modules/sambaDomain.inc:301 ../lib/modules/sambaDomain.inc:657 +#: ../lib/modules/sambaDomain.inc:662 ../lib/modules/sambaDomain.inc:667 +msgid "Off" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:156 ../lib/modules/inetOrgPerson.inc:317 +#: ../lib/modules/inetOrgPerson.inc:490 ../lib/modules/inetOrgPerson.inc:816 +#: ../lib/modules/inetOrgPerson.inc:1066 ../lib/modules/inetOrgPerson.inc:1461 +#, fuzzy +msgid "Office name" +msgstr "Nazwa użytkownika" + +#: ../templates/tree/export_form.php:165 +#: ../templates/tests/lamdaemonTest.php:108 ../templates/ou_edit.php:200 +#: ../templates/masscreate.php:110 ../templates/config/profmanage.php:354 +#: ../templates/config/mainmanage.php:374 +#: ../templates/config/confmodules.php:110 +#: ../templates/config/confmodules.php:113 +#: ../templates/config/confmain.php:454 ../templates/config/conftypes.php:238 +#: ../templates/config/conflogin.php:125 ../templates/config/conflogin.php:126 +#: ../templates/config/mainlogin.php:118 +#: ../templates/selfService/selfServiceLogin.php:203 +#: ../templates/selfService/profManage.php:254 +#: ../templates/selfService/adminLogin.php:122 +#: ../templates/selfService/adminLogin.php:123 +#: ../templates/selfService/adminMain.php:470 +#: ../templates/selfService/adminMain.php:504 +#: ../templates/selfService/adminMain.php:544 +#: ../templates/pdfedit/pdfmain.php:155 +#: ../templates/profedit/profiledelete.php:85 +#: ../templates/profedit/profilemain.php:168 ../lib/modules/posixGroup.inc:274 +#: ../lib/modules/sambaSamAccount.inc:1235 +#: ../lib/modules/sambaSamAccount.inc:1406 +#: ../lib/modules/posixAccount.inc:1134 ../lib/modules/inetOrgPerson.inc:993 +#: ../lib/modules/groupOfNames.inc:230 ../lib/modules/groupOfNames.inc:257 +#: ../lib/modules/groupOfNames.inc:344 ../lib/lists.inc:668 +#: ../lib/lists.inc:899 +msgid "Ok" +msgstr "" + +#: ../templates/tree/update_confirm.php:153 +msgid "Old value" +msgstr "" + +#: ../lib/modules/sambaDomain.inc:279 ../lib/modules/sambaDomain.inc:290 +#: ../lib/modules/sambaDomain.inc:301 ../lib/modules/sambaDomain.inc:658 +#: ../lib/modules/sambaDomain.inc:663 ../lib/modules/sambaDomain.inc:668 +msgid "On" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:316 +#: ../lib/modules/sambaSamAccount.inc:1391 +#: ../lib/modules/sambaSamAccount.inc:1715 +msgid "On broken or timed out connection" +msgstr "" + +#: ../templates/tree/export_form.php:75 +msgid "One (one level beneath base)" +msgstr "" + +#: ../templates/tree/templates/creation/custom.php:209 +#: ../templates/schema/schema.php:389 +msgid "Optional attributes" +msgstr "" + +#: ../templates/tree/templates/creation/custom.php:225 +msgid "Optional binary attributes" +msgstr "" + +#: ../templates/lists/changePassword.php:124 +msgid "Options" +msgstr "" + +#: ../templates/schema/schema.php:176 +msgid "Ordering" +msgstr "" + +#: ../templates/tree/templates/templates.inc:46 +msgid "Organizational unit" +msgstr "" + +#: ../templates/config/confmain.php:395 +msgid "Other" +msgstr "" + +#: ../templates/config/confmain.php:387 ../lib/types/gon.inc:85 +#: ../lib/modules/groupOfNames.inc:68 ../lib/modules/groupOfNames.inc:97 +#: ../lib/modules/groupOfNames.inc:149 ../lib/modules/groupOfNames.inc:167 +#: ../lib/modules/groupOfNames.inc:447 +msgid "Owner" +msgstr "" + +#: ../templates/tools.php:80 +msgid "PDF editor" +msgstr "" + +#: ../lib/lists.inc:640 +msgid "PDF structure" +msgstr "" + +#: ../templates/pdfedit/pdfpage.php:100 +msgid "PDF structure was successfully saved." +msgstr "" + +#: ../templates/pdfedit/pdfmain.php:115 +msgid "PDF structures" +msgstr "" + +#: ../templates/pdfedit/pdfpage.php:95 +msgid "PDF-structure name not valid" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:482 +msgid "Pacific Time (US & Canada)" +msgstr "" + +#: ../templates/schema/schema.php:371 +msgid "Parent to" +msgstr "" + +#: ../templates/lists/changePassword.php:196 ../templates/login.php:269 +#: ../templates/selfService/selfServiceLogin.php:189 +#: ../lib/modules/posixGroup.inc:173 ../lib/modules/posixGroup.inc:185 +#: ../lib/modules/posixGroup.inc:265 ../lib/modules/posixGroup.inc:468 +#: ../lib/modules/posixGroup.inc:469 ../lib/modules/sambaAccount.inc:74 +#: ../lib/modules/sambaAccount.inc:75 ../lib/modules/sambaAccount.inc:229 +#: ../lib/modules/sambaSamAccount.inc:92 ../lib/modules/sambaSamAccount.inc:93 +#: ../lib/modules/sambaSamAccount.inc:345 ../lib/modules/posixAccount.inc:72 +#: ../lib/modules/posixAccount.inc:73 ../lib/modules/posixAccount.inc:136 +#: ../lib/modules/posixAccount.inc:252 ../lib/modules/posixAccount.inc:388 +#: ../lib/modules/posixAccount.inc:1027 ../lib/modules/posixAccount.inc:1038 +#: ../lib/modules/posixAccount.inc:1119 ../lib/modules/posixAccount.inc:1225 +#: ../lib/modules/inetOrgPerson.inc:103 ../lib/modules/inetOrgPerson.inc:104 +#: ../lib/modules/inetOrgPerson.inc:458 ../lib/modules/inetOrgPerson.inc:753 +#: ../lib/modules/inetOrgPerson.inc:764 ../lib/modules/inetOrgPerson.inc:984 +msgid "Password" +msgstr "" + +#: ../lib/modules/posixGroup.inc:469 ../lib/modules/sambaAccount.inc:75 +#: ../lib/modules/sambaAccount.inc:76 ../lib/modules/sambaSamAccount.inc:93 +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/posixAccount.inc:73 +#: ../lib/modules/posixAccount.inc:74 ../lib/modules/inetOrgPerson.inc:104 +#: ../lib/modules/inetOrgPerson.inc:105 +msgid "" +"Password contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and #*,.;:_-+!%&/|?{[()]}=@$ !" +msgstr "" + +#: ../lib/modules/sambaAccount.inc:136 ../lib/modules/sambaAccount.inc:251 +#: ../lib/modules/sambaAccount.inc:365 ../lib/modules/sambaAccount.inc:368 +#: ../lib/modules/sambaAccount.inc:759 ../lib/modules/sambaSamAccount.inc:214 +#: ../lib/modules/sambaSamAccount.inc:217 +#: ../lib/modules/sambaSamAccount.inc:367 +#: ../lib/modules/sambaSamAccount.inc:967 +#: ../lib/modules/sambaSamAccount.inc:1445 +msgid "Password does not expire" +msgstr "" + +#: ../lib/modules/shadowAccount.inc:50 ../lib/modules/shadowAccount.inc:94 +#: ../lib/modules/shadowAccount.inc:162 ../lib/modules/shadowAccount.inc:188 +#: ../lib/modules/shadowAccount.inc:273 ../lib/modules/shadowAccount.inc:368 +msgid "Password expiration" +msgstr "" + +#: ../lib/modules/shadowAccount.inc:50 ../lib/modules/shadowAccount.inc:51 +msgid "Password expiration must be are natural number or -1." +msgstr "" + +#: ../lib/modules/posixGroup.inc:410 ../lib/modules/posixGroup.inc:429 +#: ../lib/modules/posixAccount.inc:140 ../lib/modules/posixAccount.inc:175 +#: ../lib/modules/posixAccount.inc:343 +msgid "Password hash type" +msgstr "" + +#: ../lib/modules/sambaDomain.inc:98 ../lib/modules/sambaDomain.inc:266 +#: ../lib/modules/sambaDomain.inc:654 +msgid "Password history length" +msgstr "" + +#: ../lib/modules/shadowAccount.inc:48 ../lib/modules/shadowAccount.inc:49 +#: ../lib/modules/sambaDomain.inc:202 +msgid "Password maximum age must be are natural number." +msgstr "" + +#: ../lib/modules/shadowAccount.inc:54 ../lib/modules/shadowAccount.inc:55 +#: ../lib/modules/sambaDomain.inc:200 +msgid "Password maximum age must be bigger as password minimum age." +msgstr "" + +#: ../lib/modules/shadowAccount.inc:46 ../lib/modules/shadowAccount.inc:47 +#: ../lib/modules/sambaDomain.inc:201 +msgid "Password minimum age must be are natural number." +msgstr "" + +#: ../templates/config/mainmanage.php:206 ../help/help.inc:137 +msgid "Password policy" +msgstr "" + +#: ../lib/modules/shadowAccount.inc:52 ../lib/modules/shadowAccount.inc:89 +#: ../lib/modules/shadowAccount.inc:158 ../lib/modules/shadowAccount.inc:182 +#: ../lib/modules/shadowAccount.inc:268 ../lib/modules/shadowAccount.inc:366 +msgid "Password warning" +msgstr "" + +#: ../lib/modules/shadowAccount.inc:52 ../lib/modules/shadowAccount.inc:53 +msgid "Password warning must be are natural number." +msgstr "" + +#: ../templates/config/confmain.php:543 +msgid "Passwords are different!" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:290 +msgid "Path of the user profile." +msgstr "" + +#: ../lib/modules/sambaAccount.inc:389 ../lib/modules/sambaSamAccount.inc:241 +msgid "" +"Path of the user profile. Can be a local absolute path or a UNC-path (\\" +"\\server\\share). $user and $group are replaced with user and group name." +msgstr "" + +#: ../templates/config/confmain.php:353 +msgid "Path to external script" +msgstr "" + +#: ../templates/tree/delete_form.php:81 +msgid "Permanently delete all children, too?" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:125 +msgid "Personal" +msgstr "" + +#: ../lib/types/user.inc:93 ../lib/types/user.inc:211 +#: ../lib/modules/inetOrgPerson.inc:154 ../lib/modules/inetOrgPerson.inc:937 +#: ../lib/modules/inetOrgPerson.inc:1473 ../lib/modules/inetOrgPerson.inc:1476 +#: ../lib/modules/inetOrgPerson.inc:1490 +msgid "Photo" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:1024 +msgid "Photo file (JPG format)" +msgstr "" + +#: ../lib/modules/ldapPublicKey.inc:67 +msgid "Please a comma separated list of your public SSH keys." +msgstr "" + +#: ../templates/delete.php:86 +msgid "Please confirm:" +msgstr "" + +#: ../lib/modules/phpGroupwareUser.inc:124 +msgid "Please enter \"active\" or \"inactive\"." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:95 +msgid "Please enter a RID number or the name of a special account!" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:455 +msgid "" +"Please enter a comma separated list of host names where this user is allowed " +"to log in. If you enable host restrictions for your servers then \"*\" means " +"every host and an empty field means no host." +msgstr "" + +#: ../lib/modules/sambaAccount.inc:70 ../lib/modules/sambaAccount.inc:71 +#: ../lib/modules/sambaSamAccount.inc:90 ../lib/modules/sambaSamAccount.inc:91 +msgid "Please enter a comma separated list of host names!" +msgstr "" + +#: ../lib/modules/groupOfNames.inc:120 +msgid "Please enter a group name!" +msgstr "" + +#: ../lib/modules/kolabUser.inc:291 ../lib/modules/kolabUser.inc:296 +#, php-format +msgid "Please enter a user password on this page: %s" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:107 ../lib/modules/inetOrgPerson.inc:108 +msgid "Please enter a valid business category!" +msgstr "" + +#: ../lib/modules/posixAccount.inc:92 ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/inetOrgPerson.inc:97 ../lib/modules/inetOrgPerson.inc:98 +msgid "Please enter a valid common name!" +msgstr "" + +#: ../lib/modules/sambaAccount.inc:83 ../lib/modules/sambaAccount.inc:84 +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:105 +msgid "Please enter a valid date in format DD-MM-YYYY." +msgstr "" + +#: ../lib/modules/sambaAccount.inc:77 ../lib/modules/sambaAccount.inc:78 +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:98 +msgid "Please enter a valid display name!" +msgstr "" + +#: ../lib/modules/sambaAccount.inc:85 ../lib/modules/sambaSamAccount.inc:106 +msgid "Please enter a valid drive letter." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:85 ../lib/modules/inetOrgPerson.inc:86 +msgid "Please enter a valid eMail address!" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:95 ../lib/modules/inetOrgPerson.inc:96 +msgid "Please enter a valid employee type!" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:83 ../lib/modules/inetOrgPerson.inc:84 +msgid "Please enter a valid fax number!" +msgstr "" + +#: ../lib/modules/sambaAccount.inc:86 +msgid "Please enter a valid group RID." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:110 +msgid "Please enter a valid group name!" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:93 ../lib/modules/inetOrgPerson.inc:94 +msgid "Please enter a valid job title!" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:81 ../lib/modules/inetOrgPerson.inc:82 +msgid "Please enter a valid mobile number!" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:89 ../lib/modules/inetOrgPerson.inc:90 +msgid "Please enter a valid postal address!" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:92 +msgid "Please enter a valid postal code!" +msgstr "" + +#: ../lib/modules/sambaAccount.inc:87 +msgid "Please enter a valid special user name." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:88 +msgid "Please enter a valid street name!" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:77 ../lib/modules/inetOrgPerson.inc:78 +#: ../lib/modules/inetOrgPerson.inc:79 ../lib/modules/inetOrgPerson.inc:80 +msgid "Please enter a valid telephone number!" +msgstr "" + +#: ../lib/modules/posixGroup.inc:573 ../lib/modules/posixAccount.inc:763 +#, php-format +msgid "Please enter a value between %s and %s!" +msgstr "" + +#: ../lib/modules/kolabUser.inc:301 +#, php-format +msgid "Please enter an email address on this page: %s" +msgstr "" + +#: ../lib/modules.inc:1088 +msgid "Please enter the account information on the other pages first." +msgstr "" + +#: ../help/help.inc:58 +msgid "" +"Please enter the configuration password. This is NOT your LDAP password. It " +"is stored in your .conf-file. If this is the first time you log in, enter " +"\"lam\"." +msgstr "" + +#: ../help/help.inc:126 +msgid "" +"Please enter the master configuration password. This is NOT your LDAP " +"password. It is stored in your config.cfg file. If this is the first time " +"you log in, enter \"lam\"." +msgstr "" + +#: ../templates/config/mainlogin.php:98 +msgid "Please enter the master password to change the general preferences:" +msgstr "" + +#: ../help/help.inc:114 +msgid "" +"Please enter the name of the new profile and the password to change its " +"settings. Profile names may contain letters, numbers and -/_." +msgstr "" + +#: ../help/help.inc:116 +msgid "" +"Please enter the new name of the profile. The name may contain letters, " +"numbers and -/_." +msgstr "" + +#: ../lib/modules/posixAccount.inc:389 ../lib/modules/inetOrgPerson.inc:459 +msgid "Please enter the password which you want to set for this account." +msgstr "" + +#: ../lib/modules/posixAccount.inc:360 +msgid "Please enter the path to the user's home directory." +msgstr "" + +#: ../lib/modules/quota.inc:141 +msgid "" +"Please enter the quota settings for this mount point. The syntax is: {soft " +"block limit},{hard block limit},{soft inode limit},{hard inode limit}" +msgstr "" + +#: ../lib/modules/posixAccount.inc:72 ../lib/modules/inetOrgPerson.inc:103 +msgid "Please enter the same password in both password fields." +msgstr "" + +#: ../templates/lists/changePassword.php:259 ../lib/modules/posixGroup.inc:468 +#: ../lib/modules/sambaAccount.inc:74 ../lib/modules/sambaSamAccount.inc:92 +msgid "Please enter the same password in both password-fields." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:302 +msgid "Please enter the time limit in minutes. 0 means unlimited." +msgstr "" + +#: ../templates/selfService/adminLogin.php:97 +msgid "" +"Please enter your master configuration password to change the self service " +"profile:" +msgstr "" + +#: ../templates/config/conflogin.php:90 +msgid "Please enter your password to change the server preferences:" +msgstr "" + +#: ../lib/modules/ldapPublicKey.inc:63 +msgid "Please enter your public SSH key." +msgstr "" + +#: ../templates/tests/lamdaemonTest.php:259 +msgid "Please install the SSH2 module for PHP and activate it in your php.ini!" +msgstr "" + +#: ../templates/masscreate.php:126 +msgid "" +"Please provide a CSV formated file with your account data. The cells in the " +"first row must be filled with the column identifiers. The following rows " +"represent one account for each row." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:463 +msgid "Please select an image file to upload. It must be in JPG format (.jpg/.jpeg)." +msgstr "" + +#: ../templates/masscreate.php:97 +msgid "Please select your account type:" +msgstr "" + +#: ../help/help.inc:132 +msgid "" +"Please select your prefered log level. Messages with a lower level will not " +"be logged." +msgstr "" + +#: ../templates/login.php:242 +msgid "Please select your user name and enter your password to log in." +msgstr "" + +#: ../lib/modules.inc:1043 +#, php-format +msgid "Please set up all required attributes on page: %s" +msgstr "" + +#: ../templates/config/profmanage.php:139 +#: ../templates/selfService/profManage.php:114 +msgid "Please set up your master configuration file (config/config.cfg) first!" +msgstr "" + +#: ../lib/modules/kolabUser.inc:246 +msgid "Policy list has invalid format!" +msgstr "" + +#: ../templates/pdfedit/pdfpage.php:568 ../templates/pdfedit/pdfpage.php:585 +#: ../templates/pdfedit/pdfpage.php:615 ../templates/pdfedit/pdfpage.php:655 +msgid "Position" +msgstr "" + +#: ../templates/masscreate.php:175 ../templates/masscreate.php:317 +#: ../lib/modules/sambaGroupMapping.inc:399 +msgid "Possible values" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:154 ../lib/modules/inetOrgPerson.inc:257 +#: ../lib/modules/inetOrgPerson.inc:418 ../lib/modules/inetOrgPerson.inc:419 +#: ../lib/modules/inetOrgPerson.inc:781 ../lib/modules/inetOrgPerson.inc:1051 +#: ../lib/modules/inetOrgPerson.inc:1421 +msgid "Post office box" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:89 ../lib/modules/inetOrgPerson.inc:153 +#: ../lib/modules/inetOrgPerson.inc:251 ../lib/modules/inetOrgPerson.inc:426 +#: ../lib/modules/inetOrgPerson.inc:809 ../lib/modules/inetOrgPerson.inc:1053 +#: ../lib/modules/inetOrgPerson.inc:1405 +msgid "Postal address" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:427 +msgid "Postal address, city" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:154 +#: ../lib/modules/inetOrgPerson.inc:245 ../lib/modules/inetOrgPerson.inc:422 +#: ../lib/modules/inetOrgPerson.inc:423 ../lib/modules/inetOrgPerson.inc:788 +#: ../lib/modules/inetOrgPerson.inc:1052 ../lib/modules/inetOrgPerson.inc:1413 +msgid "Postal code" +msgstr "" + +#: ../help/help.inc:87 +msgid "Predefined values" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:217 +msgid "President" +msgstr "" + +#: ../lib/modules/posixGroup.inc:483 ../lib/modules/posixAccount.inc:217 +#: ../lib/modules/posixAccount.inc:291 ../lib/modules/posixAccount.inc:351 +#: ../lib/modules/posixAccount.inc:380 ../lib/modules/posixAccount.inc:418 +#: ../lib/modules/posixAccount.inc:989 ../lib/modules/posixAccount.inc:1155 +#: ../lib/modules/posixAccount.inc:1178 ../lib/modules/posixAccount.inc:1219 +msgid "Primary group" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:467 +msgid "Private telephone number" +msgstr "" + +#: ../templates/config/profmanage.php:107 +#: ../templates/selfService/profManage.php:97 +msgid "Profile deleted." +msgstr "" + +#: ../templates/tools.php:56 +msgid "Profile editor" +msgstr "" + +#: ../templates/config/profmanage.php:50 +#: ../templates/config/profmanage.php:152 +#: ../templates/selfService/profManage.php:36 +#: ../templates/selfService/profManage.php:127 ../help/help.inc:113 +#: ../help/help.inc:115 ../help/help.inc:117 ../help/help.inc:119 +#: ../help/help.inc:121 +msgid "Profile management" +msgstr "" + +#: ../templates/config/profmanage.php:167 +#: ../templates/config/profmanage.php:219 +#: ../templates/selfService/profManage.php:142 +#: ../templates/selfService/profManage.php:193 +#: ../templates/profedit/profilepage.php:250 ../help/help.inc:146 +msgid "Profile name" +msgstr "" + +#: ../templates/config/profmanage.php:91 +#: ../templates/config/profmanage.php:102 +#: ../templates/selfService/profManage.php:73 +#: ../templates/selfService/profManage.php:88 +msgid "Profile name is invalid!" +msgstr "" + +#: ../templates/config/profmanage.php:183 +#: ../templates/config/profmanage.php:283 +msgid "Profile password" +msgstr "" + +#: ../templates/config/profmanage.php:89 +#: ../templates/config/profmanage.php:119 +msgid "Profile passwords are different or empty!" +msgstr "" + +#: ../lib/modules/sambaAccount.inc:64 ../lib/modules/sambaAccount.inc:65 +#: ../lib/modules/sambaAccount.inc:162 ../lib/modules/sambaAccount.inc:293 +#: ../lib/modules/sambaAccount.inc:388 ../lib/modules/sambaAccount.inc:791 +#: ../lib/modules/sambaAccount.inc:895 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaSamAccount.inc:85 +#: ../lib/modules/sambaSamAccount.inc:240 +#: ../lib/modules/sambaSamAccount.inc:289 +#: ../lib/modules/sambaSamAccount.inc:416 +#: ../lib/modules/sambaSamAccount.inc:1058 +#: ../lib/modules/sambaSamAccount.inc:1325 +#: ../lib/modules/sambaSamAccount.inc:1476 +#: ../lib/modules/sambaSamAccount.inc:1649 +#: ../lib/modules/sambaSamAccount.inc:1671 +msgid "Profile path" +msgstr "" + +#: ../lib/modules/sambaAccount.inc:64 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaSamAccount.inc:86 +msgid "Profile path is invalid!" +msgstr "" + +#: ../templates/profedit/profilepage.php:125 +msgid "Profile was saved." +msgstr "" + +#: ../lib/modules/quota.inc:74 ../lib/modules/quota.inc:140 +msgid "Quota" +msgstr "" + +#: ../lib/modules/quota.inc:608 +#, php-format +msgid "Quota for %s on %s" +msgstr "" + +#: ../lib/modules/quota.inc:57 +msgid "Quota has wrong format!" +msgstr "" + +#: ../templates/tree/templates/creation/custom.php:62 +msgid "RDN" +msgstr "" + +#: ../templates/masscreate.php:167 ../templates/profedit/profilepage.php:203 +#: ../lib/modules.inc:1330 ../help/help.inc:144 +msgid "RDN identifier" +msgstr "" + +#: ../lib/types/host.inc:84 +msgid "RID (Windows UID)" +msgstr "" + +#: ../lib/modules/sambaDomain.inc:90 ../lib/modules/sambaDomain.inc:151 +#: ../lib/modules/sambaDomain.inc:376 ../lib/modules/sambaDomain.inc:382 +#: ../lib/modules/sambaDomain.inc:648 +msgid "RID base" +msgstr "" + +#: ../templates/config/confmain.php:384 +msgid "Read" +msgstr "" + +#: ../templates/config/confmain.php:216 ../templates/config/confmain.php:219 +msgid "Read only" +msgstr "" + +#: ../templates/tree/templates/creation/new_ou_template.php:99 +msgid "Really create this new OU?" +msgstr "" + +#: ../templates/tree/edit.php:527 +msgid "Really delete attribute?" +msgstr "" + +#: ../lib/modules/nisMailAlias.inc:71 ../lib/modules/nisMailAlias.inc:145 +msgid "Recipient" +msgstr "" + +#: ../lib/types/mailAlias.inc:83 ../lib/modules/nisMailAlias.inc:75 +#: ../lib/modules/nisMailAlias.inc:89 ../lib/modules/nisMailAlias.inc:279 +msgid "Recipient list" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:319 +#: ../lib/modules/sambaSamAccount.inc:1400 +#: ../lib/modules/sambaSamAccount.inc:1723 +msgid "Reconnect if disconnected" +msgstr "" + +#: ../templates/tree/rdelete.php:75 +msgid "Recursive delete progress" +msgstr "" + +#: ../templates/config/mainmanage.php:361 +msgid "Reenter new master password" +msgstr "" + +#: ../templates/config/confmain.php:441 ../lib/modules/posixAccount.inc:1742 +msgid "Reenter password" +msgstr "" + +#: ../templates/config/profmanage.php:192 +#: ../templates/config/profmanage.php:299 +msgid "Reenter profile password" +msgstr "" + +#: ../templates/tree/edit.php:101 ../lib/tree.inc:88 ../lib/tree.inc:89 +#: ../lib/lists.inc:325 +msgid "Refresh" +msgstr "" + +#: ../lib/modules/kolabUser.inc:51 +msgid "Reject if conflicts" +msgstr "" + +#: ../templates/tree/templates/creation/custom.php:62 +msgid "Relative distinguished name" +msgstr "" + +#: ../templates/pdfedit/pdfpage.php:425 ../lib/modules/ieee802device.inc:104 +#: ../lib/modules/sambaSamAccount.inc:1282 ../lib/modules/kolabUser.inc:362 +#: ../lib/modules/kolabUser.inc:381 ../lib/modules/kolabUser.inc:407 +#: ../lib/modules/kolabUser.inc:910 ../lib/modules/phpGroupwareUser.inc:246 +#: ../lib/modules/shadowAccount.inc:350 ../lib/modules/ldapPublicKey.inc:98 +#: ../lib/modules/inetLocalMailRecipient.inc:160 +#: ../lib/modules/groupOfNames.inc:158 ../lib/modules/nisMailAlias.inc:147 +msgid "Remove" +msgstr "" + +#: ../lib/modules/posixGroup.inc:192 ../lib/modules/posixAccount.inc:1045 +msgid "Remove password" +msgstr "" + +#: ../lib/modules/phpGroupwareGroup.inc:101 +#: ../lib/modules/phpGroupwareUser.inc:178 +msgid "Remove phpGroupWare extension" +msgstr "" + +#: ../lib/modules/groupOfNames.inc:328 +msgid "Remove selected entries" +msgstr "" + +#: ../templates/config/conftypes.php:227 +msgid "Remove this account type" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:1481 +msgid "Remove/replace photo" +msgstr "" + +#: ../templates/config/profmanage.php:215 +#: ../templates/selfService/profManage.php:189 ../help/help.inc:115 +msgid "Rename profile" +msgstr "" + +#: ../templates/config/profmanage.php:98 +#: ../templates/selfService/profManage.php:84 +msgid "Renamed profile." +msgstr "" + +#: ../templates/lists/changePassword.php:204 ../lib/modules/posixGroup.inc:269 +#: ../lib/modules/sambaAccount.inc:748 ../lib/modules/sambaSamAccount.inc:954 +#: ../lib/modules/posixAccount.inc:1123 ../lib/modules/inetOrgPerson.inc:757 +#: ../lib/modules/inetOrgPerson.inc:988 +msgid "Repeat password" +msgstr "" + +#: ../lib/modules/posixAccount.inc:64 ../lib/modules/posixAccount.inc:785 +msgid "Replaced $user or $group in homedir." +msgstr "" + +#: ../templates/tree/edit.php:246 +#, php-format +msgid "Required attribute for objectClass(es) %s" +msgstr "" + +#: ../templates/tree/templates/creation/custom.php:187 +#: ../templates/schema/schema.php:388 +msgid "Required attributes" +msgstr "" + +#: ../templates/profedit/profilepage.php:260 +#: ../lib/modules/sambaAccount.inc:845 ../lib/modules/sambaSamAccount.inc:1131 +msgid "Reset" +msgstr "" + +#: ../lib/modules.inc:1149 +msgid "Reset changes" +msgstr "" + +#: ../lib/modules/sambaAccount.inc:350 ../lib/modules/sambaAccount.inc:844 +#: ../lib/modules/sambaSamAccount.inc:199 +#: ../lib/modules/sambaSamAccount.inc:1130 +msgid "Reset password" +msgstr "" + +#: ../lib/modules/sambaDomain.inc:130 ../lib/modules/sambaDomain.inc:204 +#: ../lib/modules/sambaDomain.inc:346 ../lib/modules/sambaDomain.inc:684 +msgid "Reset time after lockout" +msgstr "" + +#: ../lib/modules/sambaDomain.inc:204 +msgid "Reset time after lockout must be are natural number." +msgstr "" + +#: ../templates/config/confmain.php:361 ../help/help.inc:111 +msgid "Rights for the home directory" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:155 ../lib/modules/inetOrgPerson.inc:293 +#: ../lib/modules/inetOrgPerson.inc:470 ../lib/modules/inetOrgPerson.inc:823 +#: ../lib/modules/inetOrgPerson.inc:1060 ../lib/modules/inetOrgPerson.inc:1429 +msgid "Room number" +msgstr "" + +#: ../lib/modules/inetLocalMailRecipient.inc:61 +#: ../lib/modules/inetLocalMailRecipient.inc:96 +#: ../lib/modules/inetLocalMailRecipient.inc:143 +#: ../lib/modules/inetLocalMailRecipient.inc:313 +msgid "Routing address" +msgstr "" + +#: ../templates/tests/lamdaemonTest.php:269 +msgid "SSH connection" +msgstr "" + +#: ../templates/tests/lamdaemonTest.php:280 +msgid "SSH connection could be established." +msgstr "" + +#: ../lib/modules/ldapPublicKey.inc:52 ../lib/modules/ldapPublicKey.inc:62 +#: ../lib/modules/ldapPublicKey.inc:66 ../lib/modules/ldapPublicKey.inc:74 +#: ../lib/modules/ldapPublicKey.inc:96 +msgid "SSH public key" +msgstr "" + +#: ../lib/modules/ldapPublicKey.inc:167 +msgid "SSH public key(s)" +msgstr "" + +#: ../templates/tests/lamdaemonTest.php:252 +msgid "SSH2 module" +msgstr "" + +#: ../templates/tests/lamdaemonTest.php:255 +msgid "SSH2 module is installed." +msgstr "" + +#: ../lib/modules/sambaAccount.inc:109 +msgid "Samba 2" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:131 +#: ../lib/modules/sambaGroupMapping.inc:259 +msgid "Samba 3" +msgstr "" + +#: ../lib/modules/sambaDomain.inc:190 ../lib/modules/sambaDomain.inc:191 +msgid "Samba 3 domain SID is invalid!" +msgstr "" + +#: ../lib/types/smbDomain.inc:53 +msgid "Samba 3 domain entries" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:261 +#: ../lib/modules/sambaSamAccount.inc:265 +#: ../lib/modules/sambaSamAccount.inc:441 +#: ../lib/modules/sambaSamAccount.inc:465 +msgid "Samba RID" +msgstr "" + +#: ../lib/modules/sambaGroupMapping.inc:297 +#: ../lib/modules/sambaGroupMapping.inc:322 +msgid "Samba RID number" +msgstr "" + +#: ../lib/modules/sambaGroupMapping.inc:291 +msgid "Samba display name" +msgstr "" + +#: ../lib/modules/sambaDomain.inc:51 +msgid "Samba domain" +msgstr "" + +#: ../lib/modules/sambaGroupMapping.inc:283 +msgid "Samba domain name" +msgstr "" + +#: ../lib/types/smbDomain.inc:44 +msgid "Samba domains" +msgstr "" + +#: ../lib/modules/sambaGroupMapping.inc:303 +#: ../lib/modules/sambaGroupMapping.inc:330 +#: ../lib/modules/sambaGroupMapping.inc:348 +msgid "Samba group type" +msgstr "" + +#: ../lib/modules/sambaAccount.inc:347 ../lib/modules/sambaAccount.inc:745 +#: ../lib/modules/sambaSamAccount.inc:196 +#: ../lib/modules/sambaSamAccount.inc:950 +msgid "Samba password" +msgstr "" + +#: ../lib/modules/sambaAccount.inc:70 ../lib/modules/sambaAccount.inc:174 +#: ../lib/modules/sambaAccount.inc:305 ../lib/modules/sambaAccount.inc:394 +#: ../lib/modules/sambaAccount.inc:397 ../lib/modules/sambaAccount.inc:797 +#: ../lib/modules/sambaAccount.inc:896 ../lib/modules/sambaSamAccount.inc:90 +#: ../lib/modules/sambaSamAccount.inc:246 +#: ../lib/modules/sambaSamAccount.inc:249 +#: ../lib/modules/sambaSamAccount.inc:428 +#: ../lib/modules/sambaSamAccount.inc:1070 +#: ../lib/modules/sambaSamAccount.inc:1488 +#: ../lib/modules/sambaSamAccount.inc:1652 +msgid "Samba workstations" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:1189 +msgid "Saturday" +msgstr "" + +#: ../templates/tree/edit.php:512 +#: ../templates/selfService/selfServiceMain.php:230 +#: ../templates/pdfedit/pdfpage.php:668 ../templates/pdfedit/pdfpage.php:702 +#: ../templates/profedit/profilepage.php:258 ../lib/modules.inc:1146 +msgid "Save" +msgstr "" + +#: ../templates/tree/export_form.php:124 +msgid "Save as file" +msgstr "" + +#: ../templates/tools.php:88 +msgid "Schema browser" +msgstr "" + +#: ../templates/tests/schemaTest.php:61 ../templates/tests/index.php:61 +msgid "Schema test" +msgstr "" + +#: ../templates/pdfedit/pdfdelete.php:62 ../templates/pdfedit/pdfdelete.php:65 +msgid "Scope" +msgstr "" + +#: ../help/help.inc:97 +msgid "Script path" +msgstr "" + +#: ../templates/config/confmain.php:519 +msgid "Script path is invalid!" +msgstr "" + +#: ../templates/config/confmain.php:538 +msgid "Script rights are invalid!" +msgstr "" + +#: ../templates/config/confmain.php:522 +msgid "Script server is invalid!" +msgstr "" + +#: ../help/help.inc:108 +msgid "Script servers" +msgstr "" + +#: ../templates/config/confmain.php:340 +msgid "Script settings" +msgstr "" + +#: ../templates/tree/export_form.php:115 ../lib/export.inc:443 +#: ../lib/export.inc:513 +msgid "Search filter" +msgstr "" + +#: ../templates/tree/export_form.php:103 ../lib/export.inc:442 +#: ../lib/export.inc:512 +msgid "Search scope" +msgstr "" + +#: ../templates/pdfedit/pdfpage.php:560 +msgid "Section" +msgstr "" + +#: ../templates/config/mainmanage.php:153 ../templates/config/confmain.php:413 +msgid "Security settings" +msgstr "" + +#: ../lib/types/group.inc:240 ../lib/lists.inc:837 +msgid "See README.openldap.txt to solve this problem." +msgstr "" + +#: ../templates/help.php:91 +msgid "See also" +msgstr "" + +#: ../templates/tree/create_form.php:77 +msgid "Select a template for the creation process" +msgstr "" + +#: ../lib/lists.inc:448 +msgid "Select all" +msgstr "" + +#: ../lib/modules/posixAccount.inc:1090 +msgid "Selected groups" +msgstr "" + +#: ../templates/config/confmodules.php:183 +msgid "Selected modules" +msgstr "" + +#: ../lib/modules/posixGroup.inc:236 +msgid "Selected users" +msgstr "" + +#: ../templates/selfService/adminMain.php:225 +msgid "Self service configuration" +msgstr "" + +#: ../templates/selfService/adminMain.php:238 +msgid "Self service configuration editor" +msgstr "" + +#: ../templates/tests/lamdaemonTest.php:80 +msgid "Server" +msgstr "" + +#: ../templates/config/confmain.php:148 +#: ../templates/selfService/adminMain.php:267 ../help/help.inc:59 +msgid "Server address" +msgstr "" + +#: ../templates/config/confmain.php:494 +#: ../templates/selfService/adminMain.php:60 +msgid "Server address is invalid!" +msgstr "" + +#: ../templates/config/confmain.php:344 +msgid "Server list" +msgstr "" + +#: ../templates/login.php:338 +msgid "Server profile" +msgstr "" + +#: ../templates/config/confmain.php:145 +#: ../templates/selfService/adminMain.php:264 +msgid "Server settings" +msgstr "" + +#: ../templates/config/mainmanage.php:159 ../help/help.inc:129 +msgid "Session timeout" +msgstr "" + +#: ../lib/modules/posixGroup.inc:174 ../lib/modules/posixAccount.inc:1028 +msgid "Set password" +msgstr "" + +#: ../lib/modules/posixAccount.inc:183 ../lib/modules/posixAccount.inc:331 +msgid "Set primary group as memberUid" +msgstr "" + +#: ../templates/config/profmanage.php:279 ../help/help.inc:119 +msgid "Set profile password" +msgstr "" + +#: ../lib/modules/posixAccount.inc:1137 +msgid "Set random password" +msgstr "" + +#: ../templates/lists/changePassword.php:191 +msgid "Set specific password" +msgstr "" + +#: ../lib/modules/posixGroup.inc:403 +msgid "Sets the group password." +msgstr "" + +#: ../lib/modules/shadowAccount.inc:73 +msgid "Shadow" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:313 +#: ../lib/modules/sambaSamAccount.inc:1382 +#: ../lib/modules/sambaSamAccount.inc:1707 +msgid "Shadowing" +msgstr "" + +#: ../templates/massBuildAccounts.php:202 +msgid "Show LDIF file" +msgstr "" + +#: ../templates/tree/edit.php:107 +msgid "Show internal attributes" +msgstr "" + +#: ../lib/types/group.inc:262 +msgid "Show primary group members as normal group members" +msgstr "" + +#: ../templates/schema/schema.php:199 +msgid "Single valued" +msgstr "" + +#: ../lib/modules/quota.inc:552 +msgid "Soft block" +msgstr "" + +#: ../lib/modules/quota.inc:100 ../lib/modules/quota.inc:358 +#: ../lib/modules/quota.inc:443 +msgid "Soft block limit" +msgstr "" + +#: ../lib/modules/quota.inc:101 +msgid "Soft block limit." +msgstr "" + +#: ../lib/modules/quota.inc:554 +msgid "Soft inode" +msgstr "" + +#: ../lib/modules/quota.inc:123 +msgid "Soft inode (files) limit." +msgstr "" + +#: ../lib/modules/quota.inc:122 ../lib/modules/quota.inc:362 +#: ../lib/modules/quota.inc:445 +msgid "Soft inode limit" +msgstr "" + +#: ../templates/tree/edit.php:141 +#, php-format +msgid "Some attributes (%s) were modified and are highlighted below." +msgstr "" + +#: ../lib/modules.inc:1042 +msgid "Some required information is missing" +msgstr "" + +#: ../templates/help.php:121 +#, php-format +msgid "" +"Sorry this help id ({bold}%s{endbold}) is not available for this module " +"({bold}%s{endbold})." +msgstr "" + +#: ../templates/help.php:135 +#, php-format +msgid "Sorry this help number ({bold}%d{endbold}) is not available." +msgstr "" + +#: ../lib/modules/sambaAccount.inc:318 ../lib/modules/sambaAccount.inc:406 +#: ../lib/modules/sambaAccount.inc:835 ../lib/modules/sambaSamAccount.inc:258 +#: ../lib/modules/sambaSamAccount.inc:1107 +msgid "Special user" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:156 ../lib/modules/inetOrgPerson.inc:164 +#: ../lib/modules/inetOrgPerson.inc:305 ../lib/modules/inetOrgPerson.inc:482 +#: ../lib/modules/inetOrgPerson.inc:802 ../lib/modules/inetOrgPerson.inc:1065 +#: ../lib/modules/inetOrgPerson.inc:1445 +msgid "State" +msgstr "" + +#: ../templates/pdfedit/pdfpage.php:493 ../templates/pdfedit/pdfpage.php:497 +msgid "Static text" +msgstr "" + +#: ../templates/tree/templates/creation/custom.php:54 +msgid "Step 1 of 2: Name and object class(es)" +msgstr "" + +#: ../templates/tree/templates/creation/custom.php:177 +msgid "Step 2 of 2: Specify attributes and values" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:198 +msgid "Steve" +msgstr "" + +#: ../lib/modules/sambaAccount.inc:225 ../lib/modules/sambaSamAccount.inc:341 +#: ../lib/modules/posixAccount.inc:207 ../lib/modules/inetOrgPerson.inc:330 +msgid "Steve Miller" +msgstr "" + +#: ../lib/modules/posixAccount.inc:268 +msgid "Steve Miller,Room 2.14,123-123-1234,123-123-1234" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:153 +#: ../lib/modules/inetOrgPerson.inc:239 ../lib/modules/inetOrgPerson.inc:414 +#: ../lib/modules/inetOrgPerson.inc:415 ../lib/modules/inetOrgPerson.inc:774 +#: ../lib/modules/inetOrgPerson.inc:1050 ../lib/modules/inetOrgPerson.inc:1397 +msgid "Street" +msgstr "" + +#: ../templates/pdfedit/pdfpage.php:676 +msgid "Structure name" +msgstr "" + +#: ../templates/tree/export_form.php:76 +msgid "Sub (entire subtree)" +msgstr "" + +#: ../templates/schema/schema.php:181 +msgid "Substring Rule" +msgstr "" + +#: ../templates/tree/rdelete.php:139 ../templates/tree/rdelete.php:151 +msgid "Success" +msgstr "" + +#: ../templates/tests/lamdaemonTest.php:159 +msgid "Sudo is not setup correctly!" +msgstr "" + +#: ../lib/lists.inc:689 ../lib/modules.inc:1312 +msgid "Suffix" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:1189 +msgid "Sunday" +msgstr "" + +#: ../templates/lists/changePassword.php:95 +#: ../lib/modules/sambaSamAccount.inc:188 +msgid "Sync Samba LM password with Unix password" +msgstr "" + +#: ../templates/lists/changePassword.php:94 +#: ../lib/modules/sambaSamAccount.inc:187 +msgid "Sync Samba NT password with Unix password" +msgstr "" + +#: ../templates/tree/add_value_form.php:190 ../templates/schema/schema.php:186 +msgid "Syntax" +msgstr "" + +#: ../templates/schema/schema.php:94 +msgid "Syntax OID" +msgstr "" + +#: ../templates/schema/schema.php:78 ../templates/schema/schema.php:79 +msgid "Syntaxes" +msgstr "" + +#: ../templates/config/mainmanage.php:314 +msgid "System logging" +msgstr "" + +#: ../lib/modules/kolabUser.inc:245 +msgid "Target of invitation policy is invalid!" +msgstr "" + +#: ../templates/lists/changePassword.php:157 +#: ../lib/modules/inetOrgPerson.inc:77 ../lib/modules/inetOrgPerson.inc:152 +#: ../lib/modules/inetOrgPerson.inc:263 ../lib/modules/inetOrgPerson.inc:430 +#: ../lib/modules/inetOrgPerson.inc:431 ../lib/modules/inetOrgPerson.inc:833 +#: ../lib/modules/inetOrgPerson.inc:1054 ../lib/modules/inetOrgPerson.inc:1365 +msgid "Telephone number" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:223 +msgid "Temp" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:211 +msgid "Temp, contract until december" +msgstr "" + +#: ../templates/tree/create_form.php:83 +msgid "Template" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:322 +#: ../lib/modules/sambaSamAccount.inc:1122 +msgid "Terminal server options" +msgstr "" + +#: ../templates/tools.php:95 +msgid "Tests" +msgstr "" + +#: ../templates/pdfedit/pdfpage.php:607 +msgid "Text field" +msgstr "" + +#: ../help/help.inc:103 +msgid "Text for user PDF" +msgstr "" + +#: ../lib/modules/kolabUser.inc:182 +msgid "The Cyrus mail quota for users in MBytes, leave blank for unlimited space." +msgstr "" + +#: ../templates/config/mainmanage.php:107 +#, php-format +msgid "The IP address %s is invalid!" +msgstr "" + +#: ../lib/modules/sambaDomain.inc:75 +msgid "The SID of your Samba server. Get it with \"net getlocalsid\"." +msgstr "" + +#: ../lib/modules/posixAccount.inc:62 +msgid "" +"The UID ranges for users and hosts overlap! This is a problem because LAM " +"uses the highest UID in use + 1 for new accounts. Please set the minimum UID " +"to equal values or use independent ranges." +msgstr "" + +#: ../help/help.inc:149 +msgid "The account will be saved under this LDAP suffix." +msgstr "" + +#: ../templates/tests/schemaTest.php:133 +#, php-format +msgid "" +"The attribute %s is not supported for the object class(es) %s by your LDAP " +"server." +msgstr "" + +#: ../templates/tree/templates/creation/custom.php:99 +#, php-format +msgid "The container you specified (%s) does not exist. Please try again." +msgstr "" + +#: ../lib/modules/kolabUser.inc:170 +msgid "The country name of the user." +msgstr "" + +#: ../lib/modules/phpGroupwareUser.inc:125 ../lib/modules/shadowAccount.inc:56 +msgid "The expiration date is invalid." +msgstr "" + +#: ../help/help.inc:179 +msgid "The first line is the subject." +msgstr "" + +#: ../templates/initsuff.php:183 +msgid "The following suffix(es) are missing in LDAP. LAM can create them for you." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:108 +#: ../lib/modules/sambaSamAccount.inc:109 +msgid "The format of the logon hours field is invalid!" +msgstr "" + +#: ../templates/pdfedit/pdfpage.php:126 +msgid "The headline for a new section must contain at least one character." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:235 +msgid "The home directory will be connected under this drive letter." +msgstr "" + +#: ../templates/config/mainmanage.php:123 +msgid "" +"The log file is empty or contains invalid characters! Valid characters are: " +"a-z, A-Z, 0-9, /, \\, ., :, _ and -." +msgstr "" + +#: ../lib/modules.inc:1087 +#, php-format +msgid "The module %s is not yet ready." +msgstr "" + +#: ../templates/pdfedit/pdfpage.php:95 +msgid "" +"The name for that PDF-structure you submitted is not valid. A valid name " +"must constist at least of one of the following characters 'a-z','A-Z','0-" +"9','_','-','.'." +msgstr "" + +#: ../lib/modules/kolabUser.inc:174 +msgid "The name of the server where the mailbox is located." +msgstr "" + +#: ../lib/modules/sambaDomain.inc:71 +msgid "The name of your Windows domain or workgroup." +msgstr "" + +#: ../templates/tests/schemaTest.php:122 +#, php-format +msgid "The object class %s is not supported by your LDAP server." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:491 +msgid "The office name of the user (e.g. YourCompany, Human Resources)." +msgstr "" + +#: ../lib/modules/groupOfNames.inc:69 +msgid "The owner of this group." +msgstr "" + +#: ../templates/config/confmain.php:70 ../templates/config/mainlogin.php:56 +#: ../templates/selfService/adminLogin.php:51 +msgid "The password is invalid! Please try again." +msgstr "" + +#: ../lib/security.inc:226 +#, php-format +msgid "The password is too short. You have to enter at least %s characters." +msgstr "" + +#: ../lib/security.inc:278 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s different character " +"classes (upper/lower case, numbers and symbols)." +msgstr "" + +#: ../lib/security.inc:249 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s lower case " +"characters." +msgstr "" + +#: ../lib/security.inc:257 +#, php-format +msgid "The password is too weak. You have to enter at least %s numeric characters." +msgstr "" + +#: ../lib/security.inc:261 +#, php-format +msgid "The password is too weak. You have to enter at least %s symbolic characters." +msgstr "" + +#: ../lib/security.inc:253 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s upper case " +"characters." +msgstr "" + +#: ../templates/lists/changePassword.php:326 +msgid "The password(s) were set to:" +msgstr "" + +#: ../lib/modules/posixAccount.inc:352 +msgid "" +"The primary group for this account. You can insert a GID number or a group " +"name." +msgstr "" + +#: ../lib/modules/posixAccount.inc:419 +msgid "The primary group the host should be member of." +msgstr "" + +#: ../lib/modules/posixAccount.inc:381 +msgid "The primary group the user should be member of." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:471 +msgid "The room number of the employee's office." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:483 +msgid "The state where the user resides or works." +msgstr "" + +#: ../templates/pdfedit/pdfpage.php:114 +msgid "The static text must contain at least one character." +msgstr "" + +#: ../help/help.inc:182 +msgid "The wildcard for the new password is @@newPassword@@." +msgstr "" + +#: ../templates/tree/add_oclass_form.php:125 +msgid "There are new required attributes which need to be set." +msgstr "" + +#: ../lib/modules/posixGroup.inc:483 +msgid "There are still users who have this group as their primary group." +msgstr "" + +#: ../lib/modules/sambaGroupMapping.inc:397 +msgid "There can be only one group of this type." +msgstr "" + +#: ../templates/massDoUpload.php:128 +msgid "There were errors while uploading:" +msgstr "" + +#: ../lib/modules/posixGroup.inc:407 +msgid "" +"These are the minimum and maximum numbers to use for group IDs when creating " +"new group accounts. New group accounts will always get the highest number in " +"use plus one." +msgstr "" + +#: ../lib/modules/posixAccount.inc:340 +msgid "" +"These are the minimum and maximum numbers to use for machine IDs when " +"creating new accounts for Samba hosts. The range should be different from " +"that of users. New host accounts will always get the highest number in use " +"plus one." +msgstr "" + +#: ../lib/modules/posixAccount.inc:336 +msgid "" +"These are the minimum and maximum numbers to use for user IDs when creating " +"new user accounts. The range should be different from that of machines. New " +"user accounts will always get the highest number in use plus one." +msgstr "" + +#: ../lib/modules/posixAccount.inc:87 +msgid "This GID number is invalid! Please provide either a number or a group name." +msgstr "" + +#: ../lib/modules/kolabUser.inc:307 +msgid "This account is marked for deletion." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:259 +msgid "" +"This allows you to define this account as a special user like administrator " +"or guest." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:487 +msgid "This can be used to specify if the user has a car license." +msgstr "" + +#: ../help/help.inc:120 +msgid "This changes the password of the selected profile." +msgstr "" + +#: ../help/help.inc:122 +msgid "This changes the profile which is selected by default at login." +msgstr "" + +#: ../templates/massBuildAccounts.php:152 +msgid "This column is defined to include unique entries but duplicates were found:" +msgstr "" + +#: ../help/help.inc:96 +msgid "" +"This defines the language of the login window and sets this language as the " +"default language. Users can change the language at login." +msgstr "" + +#: ../help/help.inc:112 +msgid "" +"This defines the rights for the home directories which are created by " +"lamdaemon." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:479 +msgid "This describes the location of the user." +msgstr "" + +#: ../lib/lamPDF.inc:126 +msgid "This document was automatically created by LDAP Account Manager" +msgstr "" + +#: ../templates/tree/edit.php:210 +msgid "This entry has no attributes" +msgstr "" + +#: ../templates/tree/delete_form.php:96 +#, php-format +msgid "This entry is the root of a sub-tree containing %s entries." +msgstr "" + +#: ../lib/modules/posixAccount.inc:89 +msgid "This gecos value is invalid!" +msgstr "" + +#: ../lib/modules/ieee802device.inc:66 +msgid "This is a comma separated list of MAC addresses." +msgstr "" + +#: ../lib/modules/kolabUser.inc:158 +msgid "This is a comma separated list of delegates." +msgstr "" + +#: ../lib/modules/kolabUser.inc:166 +msgid "This is a comma separated list of eMail aliases." +msgstr "" + +#: ../lib/modules/kolabUser.inc:150 +msgid "This is a comma separated list of invitation policies." +msgstr "" + +#: ../lib/modules/nisMailAlias.inc:76 +msgid "This is a comma separated list of recipients." +msgstr "" + +#: ../lib/modules/inetLocalMailRecipient.inc:70 +msgid "This is a comma separated list of the users public email addresses." +msgstr "" + +#: ../help/help.inc:136 +msgid "" +"This is a list of IP addresses from hosts who may access LAM. You can use \"*" +"\" as wildcard (e.g. 192.168.0.*)." +msgstr "" + +#: ../lib/modules/groupOfNames.inc:73 +msgid "This is a list of members of this group." +msgstr "" + +#: ../lib/modules/groupOfNames.inc:77 +msgid "" +"This is a list of members of this group. Multiple members are separated by " +"semicolons." +msgstr "" + +#: ../help/help.inc:109 +msgid "" +"This is a list of the servers where the lamdaemon scripts are stored. LDAP " +"Account Manager will make a SSH connection to the servers with the user name " +"and password provided at login. Multiple servers are separated by " +"semicolons. You can append a descriptive name after a colon." +msgstr "" + +#: ../help/help.inc:89 +msgid "" +"This is a list of valid DN entries of all users that are allowed to login to " +"LDAP Account Manager. Please enter one DN per line." +msgstr "" + +#: ../templates/masscreate.php:227 +msgid "" +"This is an example how it would look in your spreadsheet program before you " +"convert to CSV:" +msgstr "" + +#: ../help/help.inc:164 +msgid "" +"This is needed to find the LDAP DNs of your user accounts. E.g. if you use " +"\"uid\" and your user inputs \"miller\" then LAM will search for an account " +"with uid=miller." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:102 +msgid "This is not a valid DN!" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:96 +msgid "This is not a valid RID number!" +msgstr "" + +#: ../lib/modules/sambaGroupMapping.inc:399 +msgid "This is not a valid Samba 3 group type!" +msgstr "" + +#: ../lib/modules/inetLocalMailRecipient.inc:66 +msgid "This is one of the users public email addresses." +msgstr "" + +#: ../lib/modules/nisMailAlias.inc:72 +msgid "This is one recipient for this alias." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:411 +msgid "" +"This is the LDAP DN of the user's manager. Use this property to represent " +"hierarchies in your company." +msgstr "" + +#: ../lib/modules/ieee802device.inc:62 +msgid "" +"This is the MAC address of the network card of the device (e.g. 00:01:02:DE:" +"EF:18)." +msgstr "" + +#: ../lib/modules/sambaAccount.inc:404 +msgid "This is the RID of the user's primary Windows group." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:256 +msgid "This is the SID of the user's primary Windows group." +msgstr "" + +#: ../help/help.inc:98 +msgid "" +"This is the absolute path to an external script for setting quotas and " +"creating home directories." +msgstr "" + +#: ../lib/modules/sambaAccount.inc:348 ../lib/modules/sambaSamAccount.inc:197 +msgid "This is the account's Windows password." +msgstr "" + +#: ../lib/modules/sambaAccount.inc:345 ../lib/modules/sambaSamAccount.inc:194 +msgid "This is the account's full name on Windows systems." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:278 +#: ../lib/modules/phpGroupwareUser.inc:83 ../lib/modules/shadowAccount.inc:175 +msgid "This is the date when the account will expire. Format: DD-MM-YYYY" +msgstr "" + +#: ../lib/modules/sambaGroupMapping.inc:315 +msgid "This is the group name which will be shown in Windows." +msgstr "" + +#: ../help/help.inc:145 +msgid "" +"This is the identifier for the relative DN value. It must be one of the " +"given allowed LDAP attributes (e.g. user accounts usually use \"uid\" while " +"groups use \"cn\")." +msgstr "" + +#: ../help/help.inc:84 +msgid "" +"This is the list of attributes to show in the account list. The entries can " +"either be predefined values, \"#attribute\", or individual ones, \"attribute:" +"description\". Several entries are separated by semicolons." +msgstr "" + +#: ../lib/modules/inetLocalMailRecipient.inc:74 +msgid "This is the mail server for the user." +msgstr "" + +#: ../lib/modules/groupOfNames.inc:61 +msgid "This is the name of this group." +msgstr "" + +#: ../lib/modules/posixAccount.inc:427 +msgid "This is the natural name of the host. If empty, the host name will be used." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:447 +msgid "" +"This is the natural name of the user. If empty, the first and last name is " +"used." +msgstr "" + +#: ../lib/modules/posixAccount.inc:405 +msgid "" +"This is the natural name of the user. If empty, the first and last name or " +"user name is used." +msgstr "" + +#: ../lib/modules/sambaDomain.inc:115 +msgid "" +"This is the number of bad logon attempts (0 - 999) before the account is " +"deactivated. 0 means unlimited attempts." +msgstr "" + +#: ../lib/modules/sambaDomain.inc:99 +msgid "" +"This is the number of passwords which are saved to prevent that users reuse " +"old passwords." +msgstr "" + +#: ../help/help.inc:94 +msgid "" +"This is the number of rows to show in the account list. If more entries are " +"found the list will be split into several pages." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:287 +msgid "This is the path to the user's home directory." +msgstr "" + +#: ../lib/modules/sambaGroupMapping.inc:323 +msgid "" +"This is the relative ID (similar to UID on Unix) for Windows accounts. If " +"you leave this empty LAM will calculate the RID from the UID. This can be " +"either a number or the name of a special group:" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:262 +msgid "" +"This is the relative ID number for your Windows account. You can either " +"enter a number or one of these special accounts: " +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:266 +msgid "" +"This is the relative ID number for your host account. If you leave this " +"empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" + +#: ../help/help.inc:60 +msgid "" +"This is the server address of your LDAP server. Use ldap:// for standard " +"LDAP connections and ldaps:// for encrypted (require server certificates) " +"connections. The port value is optional." +msgstr "" + +#: ../help/help.inc:78 +msgid "This is the suffix for the LDAP tree viewer." +msgstr "" + +#: ../help/help.inc:72 +msgid "" +"This is the suffix of the LDAP tree from where to search for LDAP entries. " +"Only entries in this subtree will be displayed in the account list. When " +"creating a new accont this will be the DN where it is saved." +msgstr "" + +#: ../lib/modules/inetLocalMailRecipient.inc:62 +msgid "This is the target email address for the user's mails." +msgstr "" + +#: ../lib/modules/sambaDomain.inc:127 +msgid "" +"This is the time (in minutes) for which the user may not log in after the " +"account was locked. -1 means forever." +msgstr "" + +#: ../help/help.inc:130 +msgid "" +"This is the time (in minutes) of inactivity after which a user is " +"automatically logged off." +msgstr "" + +#: ../help/help.inc:102 +msgid "" +"This is the time in minutes which LAM caches its LDAP searches. Shorter " +"times will stress LDAP more but decrease the possibility that changes are " +"not identified." +msgstr "" + +#: ../lib/modules/kolabUser.inc:178 +msgid "" +"This is the time limit (in days) for other users who want to check future " +"appointments. If you leave this blank the default (60 days) will be set." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:281 +msgid "" +"This is the time zone of your Samba server. LAM needs this information to " +"display the logon hours correctly." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:253 +msgid "This is the user's primary Windows group." +msgstr "" + +#: ../lib/modules/posixAccount.inc:90 +msgid "This login shell is invalid!" +msgstr "" + +#: ../lib/modules/inetLocalMailRecipient.inc:233 +msgid "This mail address is already in use:" +msgstr "Adres poczty elektronicznej jest już w użyciu:" + +#: ../templates/schema/schema.php:355 +msgid "This object class is obsolete." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:272 +msgid "This option defines the allowed logon hours for this account." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:275 +msgid "" +"This option defines the allowed logon hours for this account. The format is " +"the same as for the LDAP attribute. The 24*7 hours are represented as 168 " +"bit which are saved as 21 hex (21*8 = 168) values. The first bit represents " +"Sunday 0:00 - 0:59 in GMT." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:296 +msgid "This program is run after the login." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:320 +msgid "This specifies the reconnect policy." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:317 +msgid "This specifies what to do when the client connection is broken." +msgstr "" + +#: ../help/help.inc:168 +msgid "" +"This text is displayed on top of the self service login page. You can also " +"input HTML code here." +msgstr "" + +#: ../help/help.inc:170 +msgid "" +"This text is displayed on top of the self service main page. You can also " +"input HTML code here." +msgstr "" + +#: ../help/help.inc:166 +msgid "" +"This text should shortly describe your selected LDAP search attribute (e.g. " +"email or user name)." +msgstr "" + +#: ../help/help.inc:104 +msgid "This text will appear on top of every user PDF file." +msgstr "" + +#: ../templates/tools.php:81 +msgid "This tool allows you to customize the PDF pages." +msgstr "" + +#: ../templates/lists/userlink.php:64 ../templates/lists/changePassword.php:50 +msgid "This user was not found!" +msgstr "Nie znaleziono użytkownika!" + +#: ../lib/modules/sambaAccount.inc:79 ../lib/modules/sambaAccount.inc:80 +#: ../lib/modules/sambaAccount.inc:81 ../lib/modules/sambaAccount.inc:82 +#: ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:102 +msgid "This value can only be \\\"true\\\" or \\\"false\\\"!" +msgstr "" + +#: ../lib/modules/posixAccount.inc:91 +msgid "This value can only be \\\"true\\\" or \\\"false\\\"." +msgstr "" + +#: ../lib/modules/posixGroup.inc:482 +msgid "This value must be a list of user names separated by semicolons." +msgstr "" + +#: ../help/help.inc:187 +msgid "This will create a new organizational unit under the selected one." +msgstr "" + +#: ../lib/modules/posixAccount.inc:368 +msgid "This will create the user's home directory on the specified server." +msgstr "" + +#: ../help/help.inc:189 +msgid "This will delete the selected organizational unit. The OU has to be empty." +msgstr "" + +#: ../help/help.inc:118 +msgid "This will delete the selected profile." +msgstr "Spowoduje usunięcie wybranego profilu." + +#: ../lib/modules/sambaAccount.inc:351 ../lib/modules/sambaSamAccount.inc:200 +msgid "This will reset the host's password to a default value." +msgstr "" + +#: ../templates/lists/changePassword.php:171 ../help/help.inc:176 +msgid "" +"This will set a random password and display it on the screen or send it the " +"user via mail." +msgstr "" + +#: ../lib/modules/kolabUser.inc:186 +msgid "" +"This will set a special flag on the account which tells Kolabd to remove it. " +"Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes)." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:1188 +msgid "Thursday" +msgstr "Czwartek" + +#: ../lib/modules/sambaSamAccount.inc:1229 +msgid "Time" +msgstr "Czas" + +#: ../lib/modules/sambaSamAccount.inc:301 +msgid "Time limit" +msgstr "Limit czasu" + +#: ../lib/modules/sambaSamAccount.inc:280 +#: ../lib/modules/sambaSamAccount.inc:475 +msgid "Time zone" +msgstr "Strefa czasowa" + +#: ../templates/tests/lamdaemonTest.php:147 ../lib/lamdaemon.inc:121 +msgid "Timeout while executing lamdaemon commands!" +msgstr "" + +#: ../lib/modules/posixAccount.inc:397 +msgid "" +"To disable login use /bin/false. The list of shells is read from lam/config/" +"shells" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:499 +msgid "Tokyo, Seoul, Osaka, Yakutsk" +msgstr "Tokyo, Seoul, Osaka, Yakutsk" + +#: ../templates/main_header.php:64 +msgid "Tools" +msgstr "Narzędzia" + +#: ../lib/export.inc:444 ../lib/export.inc:514 +msgid "Total entries" +msgstr "" + +#: ../lib/types/user.inc:249 +msgid "Translate GID number to group name" +msgstr "" + +#: ../templates/config/confmain.php:164 ../help/help.inc:77 +msgid "Tree suffix" +msgstr "" + +#: ../templates/main_header.php:76 +msgid "Tree view" +msgstr "" + +#: ../templates/config/confmain.php:513 +msgid "TreeSuffix is invalid!" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:1188 +msgid "Tuesday" +msgstr "Wtorek" + +#: ../templates/selfService/profManage.php:145 +#: ../templates/schema/schema.php:353 +msgid "Type" +msgstr "Typ" + +#: ../lib/modules/posixAccount.inc:75 +msgid "UID" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:75 +msgid "UID has changed. Do you want to change home directory?" +msgstr "" + +#: ../lib/modules/posixAccount.inc:70 +msgid "" +"UID must be a number. It has to be inside the UID range which is defined in " +"your configuration profile." +msgstr "" + +#: ../lib/types/host.inc:86 ../lib/types/user.inc:83 +#: ../lib/modules/posixAccount.inc:71 ../lib/modules/posixAccount.inc:211 +#: ../lib/modules/posixAccount.inc:285 ../lib/modules/posixAccount.inc:335 +#: ../lib/modules/posixAccount.inc:339 ../lib/modules/posixAccount.inc:347 +#: ../lib/modules/posixAccount.inc:974 ../lib/modules/posixAccount.inc:1216 +msgid "UID number" +msgstr "Numer UID" + +#: ../lib/modules/posixAccount.inc:71 +#, php-format +msgid "" +"UID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -uid %s -exec chown %s {} \\;'" +msgstr "" + +#: ../lib/modules/posixAccount.inc:62 +msgid "UID ranges for Unix accounts" +msgstr "" + +#: ../lib/modules/sambaAccount.inc:386 ../lib/modules/sambaSamAccount.inc:238 +msgid "" +"UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced " +"with user and group name." +msgstr "" + +#: ../templates/selfService/selfServiceMain.php:136 +msgid "" +"Unable to change your account. Maybe you do not have enough rights to change " +"the settings." +msgstr "" + +#: ../templates/tests/lamdaemonTest.php:284 ../lib/lamdaemon.inc:134 +#: ../lib/lamdaemon.inc:139 +msgid "Unable to connect to remote server!" +msgstr "Nie można połączyć się ze zdalnym serwerem!" + +#: ../templates/ou_edit.php:70 +msgid "Unable to create new OU!" +msgstr "Nie można stworzyć nowego OU!" + +#: ../templates/config/profmanage.php:87 +#: ../templates/selfService/profManage.php:71 +msgid "Unable to create new profile!" +msgstr "Nie można stworzyć nowego profilu!" + +#: ../templates/ou_edit.php:87 +msgid "Unable to delete OU!" +msgstr "Nie udało się usunąć OU!" + +#: ../templates/pdfedit/pdfdelete.php:62 +msgid "Unable to delete PDF structure!" +msgstr "Nie udało się skasować struktury PDF!" + +#: ../templates/config/profmanage.php:109 +#: ../templates/selfService/profManage.php:99 +#: ../templates/profedit/profiledelete.php:64 +msgid "Unable to delete profile!" +msgstr "Nie można skasować profilu!" + +#: ../lib/modules/posixAccount.inc:1395 ../lib/modules/posixAccount.inc:1630 +msgid "Unable to find group in LDAP." +msgstr "Nie udało się znaleźć grupy LDAP." + +#: ../lib/modules.inc:1440 ../lib/modules.inc:1444 +msgid "Unable to load LDAP entry:" +msgstr "Nie udało się załadować następującej pozycji LDAP:" + +#: ../templates/config/confmain.php:325 +msgid "" +"Unable to load available languages. Setting English as default language. For " +"further instructions please contact the Admin of this site." +msgstr "" +"Nie udało się załadować dostępnych języków, ustawiono angielski jako " +"domyślny. W celu uzyskania wyjaśnień skontaktuj się z administratorem.," + +#: ../lib/profiles.inc:91 ../lib/profiles.inc:95 ../lib/selfService.inc:174 +#: ../lib/selfService.inc:178 +msgid "Unable to load profile!" +msgstr "Nie udało się załadować profilu!" + +#: ../templates/tests/schemaTest.php:67 ../templates/schema/schema.php:98 +#: ../templates/schema/schema.php:116 ../templates/schema/schema.php:277 +#: ../templates/schema/schema.php:311 +msgid "Unable to retrieve schema!" +msgstr "Nie udało się odczytać schematu!" + +#: ../templates/selfService/adminMain.php:124 +#: ../templates/profedit/profilepage.php:130 +msgid "Unable to save profile!" +msgstr "Zapis profilu zakończsony niepowodzeniem!" + +#: ../templates/lists/changePassword.php:322 +msgid "Unable to send mail!" +msgstr "Wysyłka poczty elektronicznej nie powidła się!" + +#: ../lib/modules/posixGroup.inc:298 ../lib/modules/posixAccount.inc:122 +msgid "Unix" +msgstr "Unix" + +#: ../templates/tests/lamdaemonTest.php:225 +msgid "Unix account" +msgstr "Konta Unix" + +#: ../lib/modules/inetOrgPerson.inc:71 ../lib/modules/inetOrgPerson.inc:348 +#: ../lib/modules/inetOrgPerson.inc:454 ../lib/modules/inetOrgPerson.inc:902 +#: ../lib/modules/inetOrgPerson.inc:1044 +msgid "Unix workstations" +msgstr "Stacje robocze Unix" + +#: ../lib/modules/inetOrgPerson.inc:71 ../lib/modules/inetOrgPerson.inc:72 +msgid "Unix workstations are invalid!" +msgstr "Stacje robocze Unix są nieprawidłowe!" + +#: ../templates/tests/lamdaemonTest.php:162 +msgid "Unknown error" +msgstr "Nieznany błąd" + +#: ../lib/modules/posixGroup.inc:181 ../lib/modules/posixAccount.inc:1035 +msgid "Unlock password" +msgstr "Odblokuj hasło" + +#: ../templates/config/confmodules.php:240 +msgid "Unsolved dependency:" +msgstr "Nierozwiązane zależności:" + +#: ../templates/pdfedit/pdfpage.php:415 +msgid "Up" +msgstr "Góra" + +#: ../templates/massBuildAccounts.php:199 +msgid "Upload accounts to LDAP" +msgstr "Załaduj konta do LDAP" + +#: ../templates/masscreate.php:138 +msgid "Upload file and create accounts" +msgstr "Załaduj plik i utwórz konta" + +#: ../lib/modules.inc:450 +#, php-format +msgid "Upload was stopped after errors in %s module!" +msgstr "Ładowanie zostało przerwane po napotkaniu błędów w module %s!" + +#: ../templates/schema/schema.php:214 +msgid "Usage" +msgstr "Sposób użycia" + +#: ../lib/modules/sambaAccount.inc:124 ../lib/modules/sambaAccount.inc:235 +#: ../lib/modules/sambaAccount.inc:353 ../lib/modules/sambaAccount.inc:356 +#: ../lib/modules/sambaAccount.inc:752 ../lib/modules/sambaSamAccount.inc:202 +#: ../lib/modules/sambaSamAccount.inc:205 +#: ../lib/modules/sambaSamAccount.inc:351 +#: ../lib/modules/sambaSamAccount.inc:958 +#: ../lib/modules/sambaSamAccount.inc:1427 +msgid "Use Unix password" +msgstr "Użyj hasła Unix" + +#: ../lib/modules/sambaAccount.inc:130 ../lib/modules/sambaAccount.inc:243 +#: ../lib/modules/sambaAccount.inc:359 ../lib/modules/sambaAccount.inc:362 +#: ../lib/modules/sambaAccount.inc:756 ../lib/modules/sambaSamAccount.inc:208 +#: ../lib/modules/sambaSamAccount.inc:211 +#: ../lib/modules/sambaSamAccount.inc:359 +#: ../lib/modules/sambaSamAccount.inc:963 +#: ../lib/modules/sambaSamAccount.inc:1433 +msgid "Use no password" +msgstr "Nie używaj hasła" + +#: ../lib/modules/quota.inc:96 ../lib/modules/quota.inc:357 +msgid "Used blocks" +msgstr "Użyte bloki" + +#: ../lib/modules/quota.inc:97 +msgid "Used blocks. 1000 blocks are usually 1MB" +msgstr "Użyte bloki. Zwykle 1000 bloków to 1MB" + +#: ../templates/schema/schema.php:273 +msgid "Used by attributes" +msgstr "Użyte przez atrybuty" + +#: ../templates/schema/schema.php:242 +msgid "Used by object classes" +msgstr "Użyte przez klasy obiektów" + +#: ../lib/modules/sambaDomain.inc:91 +msgid "Used for calculating RIDs from UID/GID. Do not change if unsure." +msgstr "Używane do wyliczania RID z UID.GID. Nie zmieniaj jeśli nie wiesz co robisz." + +#: ../lib/modules/quota.inc:118 ../lib/modules/quota.inc:361 +msgid "Used inodes" +msgstr "Inody użytkownika." + +#: ../lib/modules/quota.inc:119 +msgid "Used inodes (files)" +msgstr "Wykorzystane inody (pliki)." + +#: ../lib/modules/sambaGroupMapping.inc:66 +msgid "User" +msgstr "Użytkownik" + +#: ../lib/types/user.inc:82 +msgid "User ID" +msgstr "ID Użytkownika" + +#: ../lib/types/user.inc:53 +msgid "User accounts (e.g. Unix, Samba and Kolab)" +msgstr "Konta użytkowników (to znaczy: Unix, Samba i Kolab)" + +#: ../lib/modules/sambaAccount.inc:267 ../lib/modules/sambaAccount.inc:377 +#: ../lib/modules/sambaAccount.inc:768 ../lib/modules/sambaSamAccount.inc:229 +#: ../lib/modules/sambaSamAccount.inc:383 +#: ../lib/modules/sambaSamAccount.inc:994 +#: ../lib/modules/sambaSamAccount.inc:1251 +msgid "User can change password" +msgstr "Użytkownik może zmienić hasło" + +#: ../lib/modules/posixAccount.inc:377 +msgid "User description. If left empty first and last name will be used." +msgstr "" +"Opis użytkownika. Jeżeli będzie pozostawiony pusty to użyte zostaną imię i " +"nazwisko." + +#: ../lib/modules/inetOrgPerson.inc:391 +msgid "User description. If left empty sur- and give name will be used." +msgstr "" +"Opis użytkownika. Jeżeli będzie pozostawiony pusty to użyte zostaną imię i " +"nazwisko." + +#: ../lib/modules/account.inc:99 +msgid "User description. If left empty user name will be used." +msgstr "" +"Opis użytkownika. Jeżeli będzie pozostawiony pusty to użyta zostanie nazwa " +"użytkownika." + +#: ../templates/schema/schema.php:209 +msgid "User modification" +msgstr "Modyfikowanie użytkownika" + +#: ../lib/modules/sambaAccount.inc:274 ../lib/modules/sambaAccount.inc:379 +#: ../lib/modules/sambaAccount.inc:776 ../lib/modules/sambaSamAccount.inc:231 +#: ../lib/modules/sambaSamAccount.inc:390 +#: ../lib/modules/sambaSamAccount.inc:1011 +#: ../lib/modules/sambaSamAccount.inc:1256 +msgid "User must change password" +msgstr "Użytkownik musi zmienić hasło" + +#: ../templates/lists/changePassword.php:130 ../templates/login.php:248 +#: ../lib/types/user.inc:85 ../lib/modules/account.inc:94 +#: ../lib/modules/account.inc:115 ../lib/modules/account.inc:135 +#: ../lib/modules/account.inc:137 ../lib/modules/account.inc:138 +#: ../lib/modules/account.inc:220 ../lib/modules/account.inc:241 +#: ../lib/modules/posixAccount.inc:76 ../lib/modules/posixAccount.inc:77 +#: ../lib/modules/posixAccount.inc:80 ../lib/modules/posixAccount.inc:197 +#: ../lib/modules/posixAccount.inc:372 ../lib/modules/posixAccount.inc:962 +#: ../lib/modules/posixAccount.inc:1214 ../lib/modules/inetOrgPerson.inc:99 +#: ../lib/modules/inetOrgPerson.inc:335 ../lib/modules/inetOrgPerson.inc:450 +#: ../lib/modules/inetOrgPerson.inc:710 ../lib/modules/inetOrgPerson.inc:1062 +msgid "User name" +msgstr "Nazwa użytkownika" + +#: ../lib/modules/posixAccount.inc:84 ../lib/modules/inetOrgPerson.inc:101 +msgid "User name already exists!" +msgstr "Użytkownik istnieje!" + +#: ../lib/modules/account.inc:135 ../lib/modules/account.inc:136 +#: ../lib/modules/account.inc:138 ../lib/modules/posixAccount.inc:77 +#: ../lib/modules/posixAccount.inc:82 ../lib/modules/inetOrgPerson.inc:99 +#: ../lib/modules/inetOrgPerson.inc:100 +msgid "" +"User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Nazwa użytkownika zawiera nieprawidłowe znaki. Dopuszczalne znaki to: a-z, A-" +"Z, 0-9 oraz .-_ !" + +#: ../lib/modules/posixAccount.inc:80 +msgid "User name in use. Selected next free user name." +msgstr "Użytkownik istnieje. Proszę wybrać inną nazwę." + +#: ../lib/modules/account.inc:95 ../lib/modules/posixAccount.inc:373 +#: ../lib/modules/inetOrgPerson.inc:451 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-Z,0-" +"9, .-_. LAM does not allow a number as first character because useradd also " +"does not allow it. If user name is already used user name will be expanded " +"with a number. The next free number will be used. Warning: Older systems " +"have problems with user names longer than 8 characters. You can not log in " +"to Windows if user name is longer than 16 characters." +msgstr "" +"Nazwa użytkownika który będzie utworzony. Dopuszczalne znaki to: a-z,A-Z,0-" +"9, ,-,_. LAM nie pozwoli na " + +#: ../lib/types/user.inc:44 ../lib/modules/posixAccount.inc:56 +#: ../lib/modules/posixAccount.inc:57 ../lib/modules/posixAccount.inc:60 +#: ../lib/modules/posixAccount.inc:157 +msgid "Users" +msgstr "Użytkownicy" + +#: ../lib/modules/posixGroup.inc:395 +msgid "" +"Users who are member of the current group. Users who have set their primary " +"group to this group will not be shown." +msgstr "" +"Użytkownicy którzy są członkami tej grupy. Użytkownicy którzy ustawili ją " +"jako główną nie będą wyświetleni." + +#: ../lib/modules/posixGroup.inc:399 +msgid "" +"Users who will become member of the current group. User names are separated " +"by semicolons." +msgstr "" +"Użytkownicy którzy staną się członkami tej grupy. Nazwy użytkowników muszą " +"być rozdzielone średnikami." + +#: ../templates/tests/lamdaemonTest.php:217 +#, php-format +msgid "Using %s as lamdaemon remote server." +msgstr "Użyto %s jako zdalny serwer lamdaemon." + +#: ../templates/tests/lamdaemonTest.php:238 +#, php-format +msgid "Using %s to connect to remote server." +msgstr "Użyto %s do podłączenia do zdalnego serwera." + +#: ../templates/tree/creation_template.php:86 +msgid "Using template:" +msgstr "Użyty szablon:" + +#: ../lib/modules/posixAccount.inc:332 +msgid "" +"Usually, users are not added to groups as memberUid if they have this group " +"as primary group. If your application ignores primary groups then you can " +"select this option to override this behaviour." +msgstr "" + +#: ../help/help.inc:88 +msgid "Valid users" +msgstr "Prawidłowi użytkownicy" + +#: ../templates/login.php:207 +msgid "Want more features? Get LAM Pro!" +msgstr "Chcesz większą funkcjonalność? Pobierz LAM Pro!" + +#: ../templates/config/mainmanage.php:256 +msgid "Warning" +msgstr "Ostrzeżenie" + +#: ../templates/delete.php:204 ../lib/modules.inc:1705 +#, php-format +msgid "Was unable to add attribtues to DN: %s." +msgstr "Nie udało się dodać atrybutów do DN: %s." + +#: ../lib/modules.inc:1676 +#, php-format +msgid "Was unable to create DN: %s." +msgstr "Nie udało się stworzyć DN: %s." + +#: ../templates/tree/delete.php:113 ../templates/delete.php:284 +#: ../templates/delete.php:292 +#, php-format +msgid "Was unable to delete DN: %s." +msgstr "Nie udało się usunąć DN: %s" + +#: ../templates/tree/update.php:109 ../templates/tree/add_oclass.php:93 +#: ../templates/tree/add_oclass_form.php:162 ../templates/delete.php:196 +#: ../lib/modules.inc:1693 +#, php-format +msgid "Was unable to modify attribtues from DN: %s." +msgstr "Nie udało się zmienić atrybutów DN: %s." + +#: ../templates/lists/changePassword.php:352 +#, fuzzy, php-format +msgid "Was unable to modify attributes from DN: %s." +msgstr "Nie udało się zmienić atrybutów DN: %s." + +#: ../templates/delete.php:212 ../lib/modules/phpGroupwareGroup.inc:173 +#: ../lib/modules/phpGroupwareUser.inc:333 +#: ../lib/modules/phpGroupwareUser.inc:353 ../lib/modules.inc:1717 +#, php-format +msgid "Was unable to remove attribtues from DN: %s." +msgstr "Nie udało się usunąć atrybutów z DN: %s." + +#: ../lib/modules.inc:1663 +#, php-format +msgid "Was unable to rename DN: %s." +msgstr "Nie udało się zmienić nazwy DN: %s" + +#: ../lib/modules/sambaSamAccount.inc:1188 +msgid "Wednesday" +msgstr "Środa" + +#: ../lib/modules/sambaSamAccount.inc:490 +msgid "Western Europe Time, London, Lisbon" +msgstr "Western Europe Time, London, Lisbon" + +#: ../help/help.inc:70 +msgid "" +"When using ldaps:// be sure to use exactly the same IP/domain name as in " +"your certificate!" +msgstr "" +"Używając ldaps:// proszę upewnić się czy użyto dokładnie tej samej nazwy " +"domeny/adresu IP który podany jest w certyfikacie!" + +#: ../lib/modules/sambaAccount.inc:410 ../lib/modules/sambaSamAccount.inc:269 +msgid "Windows domain name of account." +msgstr "Nazwa domeny dla konta Windows" + +#: ../lib/modules/sambaAccount.inc:311 ../lib/modules/sambaAccount.inc:820 +#: ../lib/modules/sambaSamAccount.inc:434 +#: ../lib/modules/sambaSamAccount.inc:1088 +#: ../lib/modules/sambaSamAccount.inc:1510 +#: ../lib/modules/sambaSamAccount.inc:1658 +#: ../lib/modules/sambaGroupMapping.inc:217 +#: ../lib/modules/sambaGroupMapping.inc:346 +msgid "Windows group" +msgstr "Grupa Windows" + +#: ../lib/modules/sambaAccount.inc:403 +msgid "Windows group RID" +msgstr "RID grupy Windows" + +#: ../lib/modules/sambaAccount.inc:400 +#: ../lib/modules/sambaGroupMapping.inc:318 +msgid "Windows group name" +msgstr "Nazwa grupy Windows" + +#: ../lib/modules/sambaGroupMapping.inc:331 +msgid "Windows group type." +msgstr "Typ grupy Windows." + +#: ../lib/modules/sambaSamAccount.inc:252 +msgid "Windows primary group" +msgstr "Główna grupa Windows" + +#: ../lib/modules/sambaSamAccount.inc:255 +msgid "Windows primary group SID" +msgstr "SID głównej grupy Windows" + +#: ../lib/modules/sambaGroupMapping.inc:327 +msgid "Windows-Domain name of group." +msgstr "Nazwa domeny Windows" + +#: ../lib/modules/sambaDomain.inc:139 +msgid "Workgroup" +msgstr "Grupa robocza" + +#: ../lib/modules/sambaSamAccount.inc:298 +#: ../lib/modules/sambaSamAccount.inc:1340 +#: ../lib/modules/sambaSamAccount.inc:1678 +msgid "Working directory" +msgstr "Katalog roboczy" + +#: ../lib/modules/sambaSamAccount.inc:299 +msgid "Working directory of initial program." +msgstr "Katalog roboczy" + +#: ../templates/config/confmain.php:385 +msgid "Write" +msgstr "Zapisz" + +#: ../templates/config/confmain.php:204 ../templates/config/confmain.php:207 +msgid "Write access" +msgstr "" + +#: ../templates/login.php:440 ../templates/selfService/selfServiceLogin.php:89 +#: ../templates/selfService/selfServiceLogin.php:101 +msgid "Wrong password/user name combination. Please try again." +msgstr "Zła nazwa konta bądź hasło. Proszę spróbować ponownie." + +#: ../templates/schema/schema.php:158 ../templates/schema/schema.php:200 +#: ../templates/schema/schema.php:205 ../templates/schema/schema.php:210 +msgid "Yes" +msgstr "Tak" + +#: ../lib/modules/posixGroup.inc:478 +msgid "" +"You are using a capital letters. This can cause problems because Windows " +"isn't case-sensitive." +msgstr "" +"Użyto wielkich liter. Może to powodować problemy, ponieważ system Windows " +"nie odróżnia wielkości znaków." + +#: ../lib/modules/account.inc:137 ../lib/modules/posixAccount.inc:76 +#: ../lib/modules/posixAccount.inc:78 +msgid "" +"You are using a capital letters. This can cause problems because windows " +"isn't case-sensitive." +msgstr "" +"Użyto wielkich liter. Może to powodować problemy, ponieważ system Windows " +"nie odróżnia wielkości znaków." + +#: ../help/help.inc:181 +msgid "" +"You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. " +"@@uid@@ for the user name)." +msgstr "" +"Można użyć znaków globalnych dla atrybutów LDAP podając @@atrybut@@ " +"(przykładowo: @@uid@@ dla nazwy użytkownika)." + +#: ../templates/tree/templates/creation/custom.php:106 +msgid "" +"You did not select any object classes for this object. Please go back and do " +"so." +msgstr "" +"Nie wybrano żadnej klasy dla tego obiektu. Należy cofnąć się i dokonać " +"zmiany." + +#: ../templates/tests/schemaTest.php:67 +msgid "" +"You do not have the required access rights or the LDAP schema is not " +"published by your server." +msgstr "" + +#: ../templates/logout.php:77 +msgid "You have been logged off from LDAP Account Manager." +msgstr "Zostałeś wylogowany z Menadżera LDAP." + +#: ../templates/lists/changePassword.php:283 +msgid "You have to activate the \"I am sure\" checkbox." +msgstr "Należy zaznaczyć opcję \"Jestem pewien\"." + +#: ../templates/tree/add_attr.php:79 +msgid "You left the attribute value blank. Please go back and try again." +msgstr "Nie podano wartości atrybutów. Należy cofnąć się i spróbować ponownie." + +#: ../templates/tree/create.php:85 +#, php-format +msgid "You left the value blank for required attribute: %s." +msgstr "Nie nadano wartości wymaganemu atrybutowi %s." + +#: ../templates/tree/update_confirm.php:254 +msgid "You made no changes." +msgstr "Nie dokonano zmian." + +#: ../lib/modules/groupOfNames.inc:121 ../lib/modules/groupOfNames.inc:122 +msgid "You need to add at least one member to this group." +msgstr "Ta grupa musi posiadać co najmniej jednego członka." + +#: ../templates/tests/lamdaemonTest.php:242 +#, php-format +msgid "Your LAM admin user (%s) must be a valid Unix account to work with lamdaemon!" +msgstr "Użytkownik (%s)będący administatorem LAM musi istnieć w systemie Unix!" + +#: ../lib/lamdaemon.inc:105 ../lib/lamdaemon.inc:111 +msgid "Your LAM admin user must be a valid Unix account to work with lamdaemon!" +msgstr "Użytkownik będący administatorem LAM musi istnieć w systemie Unix!" + +#: ../templates/tree/add_attr_form.php:165 +msgid "" +"Your PHP configuration has disabled file uploads. Please check php.ini " +"before proceeding." +msgstr "" +"Konfiguracja PHP wyklucza możliwość wysyłania plików. Proszę poprawić plik " +"php.ini." + +#: ../lib/security.inc:134 +msgid "Your session expired, click here to go back to the login page." +msgstr "Sesja wygasła, kliknij tu aby przejść do strony logowania." + +#: ../templates/login.php:228 +msgid "Your session expired, please log in again." +msgstr "Sesja wygasła, proszę zalogować się ponownie." + +#: ../templates/config/mainmanage.php:139 +#: ../templates/selfService/adminMain.php:113 ../lib/config.inc:389 +msgid "Your settings were successfully saved." +msgstr "Zmiany zostały zapisane." + +#: ../lib/modules/inetOrgPerson.inc:319 +msgid "YourCompany, Human Resources" +msgstr "" + +#: ../templates/tree/update_confirm.php:192 +#: ../templates/tree/update_confirm.php:204 +msgid "[attribute deleted]" +msgstr "[atrybut usunięty]" + +#: ../lib/modules/sambaAccount.inc:289 ../lib/modules/sambaSamAccount.inc:412 +msgid "\\\\server\\homes\\smiller" +msgstr "\\\\server\\homes\\smiller" + +#: ../lib/modules/sambaAccount.inc:295 ../lib/modules/sambaSamAccount.inc:418 +msgid "\\\\server\\profiles\\smiller" +msgstr "\\\\server\\profiles\\smiller" + +#: ../lib/modules/phpGroupwareUser.inc:151 +#: ../lib/modules/phpGroupwareUser.inc:368 +#, fuzzy +msgid "active" +msgstr "Zbiorowy" + +#: ../templates/tree/edit.php:494 +msgid "add value" +msgstr "dodaj wartość" + +#: ../lib/modules/posixGroup.inc:350 ../lib/modules/groupOfNames.inc:86 +msgid "adminstrators" +msgstr "administratorzy" + +#: ../templates/schema/schema.php:225 +msgid "character" +msgstr "znak" + +#: ../templates/schema/schema.php:224 +msgid "characters" +msgstr "znaki(ów)" + +#: ../help/help.inc:82 +msgid "dc=yourcompany,dc=com" +msgstr "dc=yourcompany,dc=com" + +#: ../templates/tree/edit.php:314 +msgid "delete attribute" +msgstr "usuń atrybut" + +#: ../lib/modules/sambaSamAccount.inc:1375 +#: ../lib/modules/sambaSamAccount.inc:1698 +msgid "disabled" +msgstr "wyłączony" + +#: ../lib/modules/sambaSamAccount.inc:1387 +#: ../lib/modules/sambaSamAccount.inc:1709 +msgid "disconnect" +msgstr "odłącz" + +#: ../templates/lists/changePassword.php:174 +msgid "display on screen" +msgstr "wyświetl na ekranie" + +#: ../templates/tree/edit.php:179 ../templates/tree/edit.php:181 +#: ../templates/tree/edit.php:308 ../templates/tree/edit.php:310 +#: ../templates/tree/add_value_form.php:107 +#: ../templates/tree/add_value_form.php:110 +msgid "download value" +msgstr "" + +#: ../templates/lists/changePassword.php:148 +#: ../lib/modules/inetOrgPerson.inc:85 ../lib/modules/inetOrgPerson.inc:152 +#: ../lib/modules/inetOrgPerson.inc:287 ../lib/modules/inetOrgPerson.inc:442 +#: ../lib/modules/inetOrgPerson.inc:443 ../lib/modules/inetOrgPerson.inc:861 +#: ../lib/modules/inetOrgPerson.inc:1058 ../lib/modules/inetOrgPerson.inc:1357 +msgid "eMail address" +msgstr "adres e-mail" + +#: ../templates/tree/edit.php:391 +msgid "false" +msgstr "fałsz" + +#: ../lib/modules/sambaSamAccount.inc:1396 +#: ../lib/modules/sambaSamAccount.inc:1717 +msgid "from any client" +msgstr "z dowolnego klienta" + +#: ../lib/modules/sambaSamAccount.inc:1397 +#: ../lib/modules/sambaSamAccount.inc:1718 +msgid "from previous client only" +msgstr "tylko z poprzedniego klienta" + +#: ../lib/modules/posixAccount.inc:226 +msgid "group01,group02" +msgstr "group01,group02" + +#: ../lib/modules/quota.inc:180 ../lib/modules/quota.inc:182 +msgid "hours" +msgstr "godziny" + +#: ../lib/modules/phpGroupwareUser.inc:151 +#: ../lib/modules/phpGroupwareUser.inc:371 +#, fuzzy +msgid "inactive" +msgstr "Konto nieaktywne" + +#: ../lib/modules/sambaSamAccount.inc:1379 +#: ../lib/modules/sambaSamAccount.inc:1702 +msgid "input off, notify off" +msgstr "wprowadzanie wyłączone, powiadomienia wyłączone" + +#: ../lib/modules/sambaSamAccount.inc:1378 +#: ../lib/modules/sambaSamAccount.inc:1701 +msgid "input off, notify on" +msgstr "wprowadzanie wyłączone, powiadomienia włączone" + +#: ../lib/modules/sambaSamAccount.inc:1377 +#: ../lib/modules/sambaSamAccount.inc:1700 +msgid "input on, notify off" +msgstr "wprowadzanie włączone, powiadomienia wyłączone" + +#: ../lib/modules/sambaSamAccount.inc:1376 +#: ../lib/modules/sambaSamAccount.inc:1699 +msgid "input on, notify on" +msgstr "wprowadzanie włączone, powiadomienia włączone" + +#: ../lib/tree.inc:1177 +msgid "jpegPhoto contains errors" +msgstr "jpegPhotoC zawiera błędy" + +#: ../help/help.inc:64 +msgid "" +"ldap://localhost:389 connects to localhost using a standard LDAP connection " +"on port 389" +msgstr "" +"ldap://localhost:389 podwoduje połączenie LDAP do adresu localhost na " +"domyślnym porcie 389" + +#: ../help/help.inc:66 +msgid "" +"ldaps://141.40.146.133 connects to 141.40.146.133 using an encrypted LDAP " +"connection." +msgstr "" +"ldaps://141.40.146.133 połączy z adresem 141.40.146.133 z użyciem " +"szyfrowanego połączenia LDAP." + +#: ../lib/modules/posixAccount.inc:293 +msgid "machines" +msgstr "maszyny" + +#: ../lib/modules/inetLocalMailRecipient.inc:110 +msgid "mail.yourdomain.org" +msgstr "mail.yourdomain.org" + +#: ../lib/modules/sambaAccount.inc:327 ../lib/modules/sambaAccount.inc:337 +#: ../lib/modules/sambaSamAccount.inc:335 +#: ../lib/modules/sambaSamAccount.inc:461 +msgid "mydomain" +msgstr "mydomain" + +#: ../lib/modules/sambaSamAccount.inc:436 +msgid "mygroup" +msgstr "mygroup" + +#: ../lib/modules/sambaSamAccount.inc:1666 +#: ../lib/modules/sambaSamAccount.inc:1674 +#: ../lib/modules/sambaSamAccount.inc:1684 +#: ../lib/modules/sambaSamAccount.inc:1689 +#: ../lib/modules/sambaSamAccount.inc:1694 +msgid "no" +msgstr "nie" + +#: ../templates/tree/templates/creation/custom.php:189 +#: ../templates/tree/templates/creation/custom.php:212 +#: ../templates/schema/schema.php:165 ../templates/schema/schema.php:234 +#: ../templates/schema/schema.php:245 ../templates/schema/schema.php:294 +#: ../templates/schema/schema.php:360 ../templates/schema/schema.php:375 +#: ../templates/schema/schema.php:409 ../templates/schema/schema.php:431 +msgid "none" +msgstr "żaden" + +#: ../templates/tree/edit.php:392 +msgid "none, remove value" +msgstr "nic, usuń wartość" + +#: ../templates/schema/schema.php:221 +msgid "not applicable" +msgstr "nie dotyczy" + +#: ../templates/schema/schema.php:172 ../templates/schema/schema.php:177 +#: ../templates/schema/schema.php:182 ../templates/schema/schema.php:215 +msgid "not specified" +msgstr "nie podano" + +#: ../help/help.inc:76 +msgid "" +"ou=People,dc=yourcompany,dc=com will read and store all accounts in this " +"subtree." +msgstr "" +"ou=People,dc=yourcompany,dc=com odczyta i zapisze wszystkie konta w tym pod " +"drzewie." + +#: ../templates/masscreate.php:162 +msgid "ou=accounts,dc=yourdomain,dc=org" +msgstr "ou=accounts,dc=yourdomain,dc=org" + +#: ../lib/modules/posixAccount.inc:279 +msgid "pc01$" +msgstr "pc01$" + +#: ../lib/modules/posixAccount.inc:300 +msgid "pc01,Room 2.34" +msgstr "pc01,Room 2.34" + +#: ../lib/modules/inetOrgPerson.inc:350 +msgid "pc01,pc02" +msgstr "pc01,pc02" + +#: ../templates/tree/edit.php:246 ../templates/config/confmain.php:466 +#: ../templates/selfService/adminMain.php:554 ../lib/modules.inc:1134 +msgid "required" +msgstr "wymagane" + +#: ../lib/modules/sambaSamAccount.inc:1388 +#: ../lib/modules/sambaSamAccount.inc:1710 +msgid "reset" +msgstr "reset" + +#: ../lib/modules/posixGroup.inc:376 ../lib/modules/sambaAccount.inc:231 +#: ../lib/modules/sambaSamAccount.inc:347 ../lib/modules/posixAccount.inc:254 +msgid "secret" +msgstr "hasło" + +#: ../templates/lists/changePassword.php:176 +msgid "send via mail" +msgstr "wyślij pocztą elektroniczną" + +#: ../lib/modules/posixAccount.inc:199 ../lib/modules/inetOrgPerson.inc:337 +#: ../lib/modules/nisMailAlias.inc:91 +msgid "smiller" +msgstr "smiller" + +#: ../lib/modules/inetLocalMailRecipient.inc:98 +msgid "smiller@otherdomain.org" +msgstr "smiller@otherdomain.org" + +#: ../lib/modules/inetLocalMailRecipient.inc:104 +msgid "smiller@yourdomain.org" +msgstr "smiller@yourdomain.org" + +#: ../lib/modules/ldapPublicKey.inc:76 +msgid "ssh-dss 234234 user@host" +msgstr "ssh-dss 234234 user@host" + +#: ../templates/tree/edit.php:437 +msgid "structural" +msgstr "strukturalny" + +#: ../templates/tree/edit.php:389 +msgid "true" +msgstr "prawda" + +#: ../lib/modules/inetOrgPerson.inc:229 +msgid "uid=smiller,ou=People,dc=company,dc=com" +msgstr "uid=smiller,ou=People,dc=company,dc=com" + +#: ../lib/modules/posixGroup.inc:370 +msgid "user01,user02,user03" +msgstr "user01,user02,user03" + +#: ../lib/modules/inetOrgPerson.inc:289 +msgid "user@company.com" +msgstr "user@company.com" + +#: ../lib/modules/posixAccount.inc:219 +msgid "users" +msgstr "użytkownicy" + +#: ../lib/modules/sambaSamAccount.inc:1664 +#: ../lib/modules/sambaSamAccount.inc:1672 +#: ../lib/modules/sambaSamAccount.inc:1682 +#: ../lib/modules/sambaSamAccount.inc:1687 +#: ../lib/modules/sambaSamAccount.inc:1692 +#: ../lib/modules/inetOrgPerson.inc:313 +msgid "yes" +msgstr "tak" + diff --git a/lam/locale/pt_BR/LC_MESSAGES/messages.mo b/lam/locale/pt_BR/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..2f18e8ef Binary files /dev/null and b/lam/locale/pt_BR/LC_MESSAGES/messages.mo differ diff --git a/lam/locale/pt_BR/LC_MESSAGES/messages.po b/lam/locale/pt_BR/LC_MESSAGES/messages.po new file mode 100644 index 00000000..5a0df5b9 --- /dev/null +++ b/lam/locale/pt_BR/LC_MESSAGES/messages.po @@ -0,0 +1,14242 @@ +# +# LDAP Account Manager +# +msgid "" +msgstr "" +"Project-Id-Version: LAM 3.0.0\n" +"Report-Msgid-Bugs-To: post@rolandgruber.de\n" +"POT-Creation-Date: 2004-01-14 17:45+0200\n" +"PO-Revision-Date: 2012-12-10 10:41-0300\n" +"Last-Translator: Bernardino Gonçalves \n" +"Language-Team: Brazil \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Portuguese\n" +"X-Poedit-Country: BRAZIL\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: ../lib/modules/zarafaContact.inc:85 +#: ../lib/modules/zarafaContact.inc:88 +#: ../lib/modules/zarafaContact.inc:91 +#: ../lib/modules/zarafaContact.inc:102 +#: ../lib/modules/zarafaGroup.inc:87 +#: ../lib/modules/zarafaGroup.inc:90 +#: ../lib/modules/zarafaGroup.inc:93 +#: ../lib/modules/zarafaGroup.inc:117 +#: ../lib/modules/zarafaUser.inc:129 +#: ../lib/modules/zarafaUser.inc:132 +#: ../lib/modules/zarafaUser.inc:135 +#: ../lib/modules/zarafaUser.inc:191 +msgid "\"Send as\" attribute" +msgstr "Atributo \"Enviar como\"" + +#: ../lib/modules/zarafaContact.inc:69 +#: ../lib/modules/zarafaContact.inc:124 +#: ../lib/modules/zarafaContact.inc:147 +#: ../lib/modules/zarafaContact.inc:159 +#: ../lib/modules/zarafaContact.inc:196 +#: ../lib/modules/zarafaContact.inc:323 +#: ../lib/modules/zarafaContact.inc:543 +#: ../lib/modules/zarafaGroup.inc:83 +#: ../lib/modules/zarafaGroup.inc:111 +#: ../lib/modules/zarafaGroup.inc:164 +#: ../lib/modules/zarafaGroup.inc:178 +#: ../lib/modules/zarafaGroup.inc:194 +#: ../lib/modules/zarafaGroup.inc:233 +#: ../lib/modules/zarafaGroup.inc:379 +#: ../lib/modules/zarafaGroup.inc:631 +#: ../lib/modules/zarafaUser.inc:89 +#: ../lib/modules/zarafaUser.inc:172 +#: ../lib/modules/zarafaUser.inc:215 +#: ../lib/modules/zarafaUser.inc:374 +#: ../lib/modules/zarafaUser.inc:401 +#: ../lib/modules/zarafaUser.inc:422 +#: ../lib/modules/zarafaUser.inc:466 +#: ../lib/modules/zarafaUser.inc:842 +#: ../lib/modules/zarafaUser.inc:1338 +#: ../lib/modules/zarafaUser.inc:1539 +msgid "\"Send as\" privileges" +msgstr "Privilégios de \"Enviar como\" " + +#: ../lib/modules/posixAccount.inc:402 +msgid "$user and $group will be replaced with user name and primary group name." +msgstr "$user e $group serão substituídos pelo nome do usuário e nome do grupo primário respectivamente." + +#: ../lib/modules/nisnetgroup.inc:127 +msgid "(host1,user1,example.com);(host2,user2,example.com)" +msgstr "(host1,usuario1,exemplo.com);(host2,usuario2,exemplo.com)" + +#: ../lib/modules/qmailUser.inc:361 +#: ../lib/modules/posixAccount.inc:245 +msgid "/home/smiller" +msgstr "/home/smiller" + +#: ../lib/modules/inetOrgPerson.inc:445 +#: ../lib/modules/asteriskVoicemail.inc:177 +msgid "123-123-1234" +msgstr "123-123-1234" + +#: ../lib/modules/inetOrgPerson.inc:461 +msgid "123-123-1235" +msgstr "123-123-1235" + +#: ../lib/modules/inetOrgPerson.inc:469 +msgid "123-123-1236" +msgstr "123-123-1236" + +#: ../lib/modules/inetOrgPerson.inc:453 +msgid "123-124-1234" +msgstr "123-124-1234" + +#: ../lib/modules/inetOrgPerson.inc:437 +msgid "12345" +msgstr "12345" + +#: ../lib/modules/dhcp_settings.inc:160 +msgid "" +"B-Node (0x01): Broadcast.
    The client tries to find other workstations via broadcasting\n" +"(works only inside the same collision domain, viz. the same subnet).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"The client contacts a Netbios name server (NBNS) from Microsoft Windows Name Service (WINS) for name resolution.

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"The node tries broadcasting first. If that fails then it tries WINS.

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"The node tries WINS first. If that fails it tries broadcasting.

    \n" +"\n" +"By default, the nodes are configured as H-Nodes which fits for small networks. In large networks Point-to-Point (0x02) should be used." +msgstr "" +"Nó B (0x01): Difusão.
    O cliente tentará encontrar outras estações de trabalho por anúncio ou difusão na rede\n" +"(Trabalha somente no mesmo domínio de colisão, ver a mesma subrede).

    \n" +"\n" +"Nó P (0x02): Ponto a ponto
    \n" +"O cliente contactará um servidor de nomes Netbios (NBNS) de um Microsoft Windows Name Service (WINS) para tradução ou resolução de nomes na rede.

    \n" +"\n" +"Nó M (0x04): Mixto
    \n" +"O cliente primeiro tentará a difusão, caso falhe, então procurará um servidor WINS.

    \n" +"\n" +"Nó H (0x08): Híbrido
    \n" +"O nó procurará um servidor WINS primeiramente. Caso falhe tentará a difusão na rede.

    \n" +"\n" +"Por padrão, os nós são configurados como híbridos que deve funcionar bem em pequenas redes. em grandes redes, o tipo Nó P (0x02) é utilizável." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:145 +#, php-format +msgid "Maximum length: %s characters" +msgstr "Tamanho máximo: %s caracteres" + +#: ../lib/modules/selfRegistration.inc:539 +#: ../lib/modules/passwordSelfReset.inc:1191 +msgid "A confirmation mail was sent. Please click on the link in the mail to proceed." +msgstr "Um e-mail de confirmação foi enviado para você. Por favor clique no link que está neste e-mail para continuar." + +#: ../lib/modules/device.inc:75 +msgid "A description for this device." +msgstr "Esta é uma descrição para este dispositivo." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +msgid "A list of attributes to display in the results (comma-separated)" +msgstr "Uma lista de atributos para mostrar nos resultados (separados por vírgula)" + +#: ../lib/modules/sudoRole.inc:84 +#: ../lib/modules/sudoRole.inc:113 +msgid "A list of options (e.g. NOPASSWD)." +msgstr "Uma lista de opções (ex. SEMSENHA) ." + +#: ../templates/massBuildAccounts.php:122 +msgid "A required column is missing in your CSV file." +msgstr "Uma coluna requerida está faltando no seu arquivo CSV." + +#: ../lib/modules/kolabUser.inc:114 +msgid "A user may define who is allowed to act on behalf of herself. This property is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "Um usuário pode definir quem é concedido agir em seu nome. Esta propriedade é verificada ao usar o servidor de smtp Kolab (Postfix) para enviar correio eletrônico." + +#: ../templates/3rdParty/pla/lib/import_functions.php:593 +msgid "A valid deleteoldrdn attribute should be specified" +msgstr "Um atributo deleteoldrdn válido deve ser especificado" + +#: ../templates/3rdParty/pla/lib/import_functions.php:237 +msgid "A valid dn line is required" +msgstr "Uma linha dn válida é requerida." + +#: ../templates/3rdParty/pla/lib/import_functions.php:596 +msgid "A valid newrdn attribute should be specified" +msgstr "Um atributo newrdn válido deve ser especificado." + +#: ../templates/3rdParty/pla/lib/import_functions.php:587 +msgid "A valid newsuperior attribute should be specified" +msgstr "Um atributo \"newsuperior\" válido deve ser especificado" + +#: ../lib/modules/asteriskAccount.inc:122 +#: ../lib/modules/asteriskAccount.inc:251 +#: ../lib/modules/asteriskAccount.inc:333 +#: ../lib/modules/asteriskAccount.inc:409 +#: ../lib/modules/asteriskAccount.inc:701 +#: ../lib/modules/asteriskAccount.inc:1197 +msgid "AMA flags" +msgstr "Sinalizações AMA" + +#: ../templates/serverInfo.php:342 +msgid "Abandon" +msgstr "abandonar" + +#: ../templates/lists/changePassword.php:650 +msgid "Aborted password change." +msgstr "Troca de senha cancelada." + +#: ../lib/modules/sambaSamAccount.inc:553 +msgid "Abu Dhabi, Muscat, Baku" +msgstr "Abu Dhabi, Muscat, Baku" + +#: ../templates/config/confmain.php:263 +#: ../help/help.inc:103 +msgid "Access level" +msgstr "Nível de acesso" + +#: ../lib/modules/account.inc:58 +msgid "Account" +msgstr "Conta" + +#: ../templates/massBuildAccounts.php:178 +#: ../lib/modules/mitKerberos.inc:276 +#: ../lib/modules/mitKerberos.inc:277 +#: ../lib/modules/mitKerberos.inc:278 +#: ../lib/modules/mitKerberos.inc:280 +#: ../lib/modules/mitKerberos.inc:282 +#: ../lib/modules/mitKerberos.inc:283 +#: ../lib/modules/zarafaDynamicGroup.inc:171 +#: ../lib/modules/zarafaDynamicGroup.inc:173 +#: ../lib/modules/zarafaDynamicGroup.inc:175 +#: ../lib/modules/zarafaDynamicGroup.inc:177 +#: ../lib/modules/zarafaDynamicGroup.inc:178 +#: ../lib/modules/zarafaDynamicGroup.inc:179 +#: ../lib/modules/ipHost.inc:109 +#: ../lib/modules/ipHost.inc:110 +#: ../lib/modules/asteriskAccount.inc:620 +#: ../lib/modules/asteriskAccount.inc:623 +#: ../lib/modules/asteriskAccount.inc:626 +#: ../lib/modules/asteriskAccount.inc:629 +#: ../lib/modules/asteriskAccount.inc:631 +#: ../lib/modules/asteriskAccount.inc:633 +#: ../lib/modules/asteriskAccount.inc:635 +#: ../lib/modules/asteriskAccount.inc:637 +#: ../lib/modules/asteriskAccount.inc:639 +#: ../lib/modules/account.inc:118 +#: ../lib/modules/ieee802device.inc:89 +#: ../lib/modules/puppetClient.inc:178 +#: ../lib/modules/puppetClient.inc:180 +#: ../lib/modules/puppetClient.inc:182 +#: ../lib/modules/puppetClient.inc:183 +#: ../lib/modules/qmailUser.inc:442 +#: ../lib/modules/qmailUser.inc:444 +#: ../lib/modules/qmailUser.inc:446 +#: ../lib/modules/qmailUser.inc:447 +#: ../lib/modules/qmailUser.inc:448 +#: ../lib/modules/qmailUser.inc:450 +#: ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:454 +#: ../lib/modules/qmailUser.inc:457 +#: ../lib/modules/qmailUser.inc:460 +#: ../lib/modules/qmailUser.inc:462 +#: ../lib/modules/qmailUser.inc:463 +#: ../lib/modules/qmailUser.inc:464 +#: ../lib/modules/zarafaContact.inc:158 +#: ../lib/modules/zarafaContact.inc:160 +#: ../lib/modules/zarafaContact.inc:161 +#: ../lib/modules/zarafaContact.inc:162 +#: ../lib/modules/zarafaContact.inc:163 +#: ../lib/modules/posixGroup.inc:503 +#: ../lib/modules/posixGroup.inc:507 +#: ../lib/modules/posixGroup.inc:508 +#: ../lib/modules/zarafaGroup.inc:188 +#: ../lib/modules/zarafaGroup.inc:190 +#: ../lib/modules/zarafaGroup.inc:191 +#: ../lib/modules/zarafaGroup.inc:192 +#: ../lib/modules/zarafaGroup.inc:193 +#: ../lib/modules/zarafaGroup.inc:195 +#: ../lib/modules/device.inc:127 +#: ../lib/modules/device.inc:128 +#: ../lib/modules/dhcp_settings.inc:293 +#: ../lib/modules/dhcp_settings.inc:295 +#: ../lib/modules/dhcp_settings.inc:297 +#: ../lib/modules/dhcp_settings.inc:299 +#: ../lib/modules/dhcp_settings.inc:301 +#: ../lib/modules/dhcp_settings.inc:302 +#: ../lib/modules/dhcp_settings.inc:304 +#: ../lib/modules/dhcp_settings.inc:306 +#: ../lib/modules/dhcp_settings.inc:311 +#: ../lib/modules/dhcp_settings.inc:312 +#: ../lib/modules/eduPerson.inc:217 +#: ../lib/modules/eduPerson.inc:219 +#: ../lib/modules/eduPerson.inc:221 +#: ../lib/modules/eduPerson.inc:223 +#: ../lib/modules/eduPerson.inc:224 +#: ../lib/modules/eduPerson.inc:225 +#: ../lib/modules/eduPerson.inc:226 +#: ../lib/modules/quota.inc:52 +#: ../lib/modules/quota.inc:54 +#: ../lib/modules/quota.inc:56 +#: ../lib/modules/quota.inc:58 +#: ../lib/modules/quota.inc:60 +#: ../lib/modules/quota.inc:62 +#: ../lib/modules/quota.inc:63 +#: ../lib/modules/zarafaAddressList.inc:145 +#: ../lib/modules/zarafaAddressList.inc:146 +#: ../lib/modules/zarafaAddressList.inc:147 +#: ../lib/modules/sambaSamAccount.inc:94 +#: ../lib/modules/sambaSamAccount.inc:97 +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:102 +#: ../lib/modules/sambaSamAccount.inc:105 +#: ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:107 +#: ../lib/modules/sambaSamAccount.inc:108 +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:111 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 +#: ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/sambaSamAccount.inc:118 +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/posixAccount.inc:86 +#: ../lib/modules/posixAccount.inc:91 +#: ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:103 +#: ../lib/modules/posixAccount.inc:104 +#: ../lib/modules/posixAccount.inc:105 +#: ../lib/modules/posixAccount.inc:106 +#: ../lib/modules/posixAccount.inc:107 +#: ../lib/modules/posixAccount.inc:108 +#: ../lib/modules/posixAccount.inc:110 +#: ../lib/modules/posixAccount.inc:111 +#: ../lib/modules/posixAccount.inc:112 +#: ../lib/modules/posixAccount.inc:114 +#: ../lib/modules/zarafaUser.inc:412 +#: ../lib/modules/zarafaUser.inc:414 +#: ../lib/modules/zarafaUser.inc:416 +#: ../lib/modules/zarafaUser.inc:417 +#: ../lib/modules/zarafaUser.inc:419 +#: ../lib/modules/zarafaUser.inc:421 +#: ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:424 +#: ../lib/modules/zarafaUser.inc:425 +#: ../lib/modules/zarafaUser.inc:426 +#: ../lib/modules/zarafaUser.inc:427 +#: ../lib/modules/zarafaUser.inc:428 +#: ../lib/modules/zarafaUser.inc:429 +#: ../lib/modules/zarafaUser.inc:430 +#: ../lib/modules/ppolicyUser.inc:86 +#: ../lib/modules/kolabUser.inc:179 +#: ../lib/modules/kolabUser.inc:181 +#: ../lib/modules/kolabUser.inc:183 +#: ../lib/modules/kolabUser.inc:185 +#: ../lib/modules/ddns.inc:158 +#: ../lib/modules/nisObject.inc:117 +#: ../lib/modules/sambaGroupMapping.inc:441 +#: ../lib/modules/sambaGroupMapping.inc:442 +#: ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/shadowAccount.inc:62 +#: ../lib/modules/shadowAccount.inc:64 +#: ../lib/modules/shadowAccount.inc:66 +#: ../lib/modules/shadowAccount.inc:67 +#: ../lib/modules/automount.inc:108 +#: ../lib/modules/sambaDomain.inc:202 +#: ../lib/modules/sambaDomain.inc:204 +#: ../lib/modules/sambaDomain.inc:206 +#: ../lib/modules/sambaDomain.inc:208 +#: ../lib/modules/sambaDomain.inc:210 +#: ../lib/modules/sambaDomain.inc:212 +#: ../lib/modules/inetOrgPerson.inc:50 +#: ../lib/modules/inetOrgPerson.inc:52 +#: ../lib/modules/inetOrgPerson.inc:54 +#: ../lib/modules/inetOrgPerson.inc:56 +#: ../lib/modules/inetOrgPerson.inc:58 +#: ../lib/modules/inetOrgPerson.inc:60 +#: ../lib/modules/inetOrgPerson.inc:62 +#: ../lib/modules/inetOrgPerson.inc:64 +#: ../lib/modules/inetOrgPerson.inc:66 +#: ../lib/modules/inetOrgPerson.inc:68 +#: ../lib/modules/inetOrgPerson.inc:70 +#: ../lib/modules/inetOrgPerson.inc:72 +#: ../lib/modules/inetOrgPerson.inc:74 +#: ../lib/modules/inetOrgPerson.inc:76 +#: ../lib/modules/inetOrgPerson.inc:78 +#: ../lib/modules/inetOrgPerson.inc:79 +#: ../lib/modules/inetOrgPerson.inc:80 +#: ../lib/modules/inetOrgPerson.inc:83 +#: ../lib/modules/inetOrgPerson.inc:84 +#: ../lib/modules/systemQuotas.inc:91 +#: ../lib/modules/systemQuotas.inc:93 +#: ../lib/modules/systemQuotas.inc:95 +#: ../lib/modules/systemQuotas.inc:97 +#: ../lib/modules/systemQuotas.inc:99 +#: ../lib/modules/systemQuotas.inc:101 +#: ../lib/modules/systemQuotas.inc:103 +#: ../lib/modules/freeRadius.inc:243 +#: ../lib/modules/freeRadius.inc:245 +#: ../lib/modules/freeRadius.inc:247 +#: ../lib/modules/freeRadius.inc:249 +#: ../lib/modules/freeRadius.inc:251 +#: ../lib/modules/freeRadius.inc:253 +#: ../lib/modules/sudoRole.inc:224 +#: ../lib/modules/sudoRole.inc:226 +#: ../lib/modules/sudoRole.inc:228 +#: ../lib/modules/sudoRole.inc:230 +#: ../lib/modules/sudoRole.inc:232 +#: ../lib/modules/sudoRole.inc:234 +#: ../lib/modules/zarafaServer.inc:151 +#: ../lib/modules/zarafaServer.inc:153 +#: ../lib/modules/zarafaServer.inc:155 +#: ../lib/modules/zarafaServer.inc:156 +#: ../lib/modules/asteriskVoicemail.inc:206 +#: ../lib/modules/asteriskVoicemail.inc:212 +#: ../lib/modules/asteriskVoicemail.inc:214 +#: ../lib/modules/inetLocalMailRecipient.inc:124 +#: ../lib/modules/inetLocalMailRecipient.inc:126 +#: ../lib/modules/inetLocalMailRecipient.inc:128 +#: ../lib/modules/aliasEntry.inc:79 +#: ../lib/modules/authorizedServiceObject.inc:123 +#: ../lib/modules/heimdalKerberos.inc:240 +#: ../lib/modules/heimdalKerberos.inc:241 +#: ../lib/modules/heimdalKerberos.inc:242 +#: ../lib/modules/heimdalKerberos.inc:244 +#: ../lib/modules/heimdalKerberos.inc:246 +#: ../lib/modules/nisMailAlias.inc:107 +#: ../lib/modules/nisMailAlias.inc:109 +#: ../lib/modules/hostObject.inc:104 +#, php-format +msgid "Account %s:" +msgstr "Conta %s:" + +#: ../lib/types/asteriskExt.inc:95 +#: ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskAccount.inc:102 +#: ../lib/modules/asteriskAccount.inc:317 +#: ../lib/modules/asteriskAccount.inc:329 +#: ../lib/modules/asteriskAccount.inc:373 +#: ../lib/modules/asteriskAccount.inc:671 +#: ../lib/modules/asteriskAccount.inc:1189 +#: ../lib/modules/asteriskExtension.inc:91 +#: ../lib/modules/asteriskExtension.inc:122 +#: ../lib/modules/asteriskExtension.inc:129 +#: ../lib/modules/asteriskExtension.inc:145 +#: ../lib/modules/asteriskExtension.inc:299 +#: ../lib/modules/asteriskExtension.inc:806 +#: ../lib/modules/asteriskVoicemail.inc:82 +#: ../lib/modules/asteriskVoicemail.inc:118 +#: ../lib/modules/asteriskVoicemail.inc:128 +#: ../lib/modules/asteriskVoicemail.inc:142 +#: ../lib/modules/asteriskVoicemail.inc:244 +#: ../lib/modules/asteriskVoicemail.inc:394 +msgid "Account context" +msgstr "Contexto da conta" + +#: ../lib/modules/selfRegistration.inc:387 +msgid "Account creation" +msgstr "Criação de conta" + +#: ../lib/modules/selfRegistration.inc:77 +msgid "Account creation confirmation" +msgstr "Confirmação de criação de conta" + +#: ../templates/masscreate.php:123 +msgid "Account creation via file upload" +msgstr "Criação de conta via carga de arquivo" + +#: ../lib/modules/posixAccount.inc:409 +msgid "Account deactivated" +msgstr "Conta desativada" + +#: ../templates/lists/changePassword.php:250 +msgid "Account details" +msgstr "Detalhes da conta" + +#: ../lib/types/user.inc:104 +#: ../lib/modules/mitKerberos.inc:117 +#: ../lib/modules/mitKerberos.inc:206 +#: ../lib/modules/mitKerberos.inc:239 +#: ../lib/modules/mitKerberos.inc:381 +#: ../lib/modules/mitKerberos.inc:630 +#: ../lib/modules/mitKerberos.inc:783 +#: ../lib/modules/sambaSamAccount.inc:333 +#: ../lib/modules/sambaSamAccount.inc:448 +#: ../lib/modules/sambaSamAccount.inc:1162 +#: ../lib/modules/sambaSamAccount.inc:1409 +#: ../lib/modules/sambaSamAccount.inc:1555 +#: ../lib/modules/shadowAccount.inc:121 +#: ../lib/modules/shadowAccount.inc:184 +#: ../lib/modules/shadowAccount.inc:224 +#: ../lib/modules/shadowAccount.inc:341 +#: ../lib/modules/shadowAccount.inc:442 +#: ../lib/modules/shadowAccount.inc:506 +#: ../lib/modules/heimdalKerberos.inc:95 +#: ../lib/modules/heimdalKerberos.inc:175 +#: ../lib/modules/heimdalKerberos.inc:207 +#: ../lib/modules/heimdalKerberos.inc:313 +#: ../lib/modules/heimdalKerberos.inc:536 +#: ../lib/modules/heimdalKerberos.inc:673 +msgid "Account expiration date" +msgstr "Data de expiração da conta" + +#: ../lib/modules/shadowAccount.inc:162 +msgid "Account inactive" +msgstr "Conta inativa" + +#: ../lib/modules/sambaSamAccount.inc:273 +#: ../lib/modules/sambaSamAccount.inc:279 +#: ../lib/modules/sambaSamAccount.inc:440 +#: ../lib/modules/sambaSamAccount.inc:1130 +#: ../lib/modules/sambaSamAccount.inc:1551 +msgid "Account is deactivated" +msgstr "Conta está desativada" + +#: ../lib/modules/sambaSamAccount.inc:276 +#: ../lib/modules/sambaSamAccount.inc:1136 +msgid "Account is locked" +msgstr "Conta está bloqueada" + +#: ../templates/delete.php:95 +msgid "Account name:" +msgstr "Nome da conta:" + +#: ../lib/types/user.inc:279 +#: ../lib/types/user.inc:667 +#: ../lib/types/user.inc:782 +#: ../lib/modules/qmailUser.inc:204 +#: ../lib/modules/qmailUser.inc:276 +#: ../lib/modules/qmailUser.inc:395 +#: ../lib/modules/qmailUser.inc:602 +#: ../lib/modules/qmailUser.inc:1212 +msgid "Account status" +msgstr "Status da conta" + +#: ../templates/masscreate.php:150 +#: ../lib/modules/asteriskAccount.inc:110 +#: ../lib/modules/asteriskAccount.inc:318 +#: ../lib/modules/asteriskAccount.inc:331 +#: ../lib/modules/asteriskAccount.inc:393 +#: ../lib/modules/asteriskAccount.inc:679 +#: ../lib/modules/asteriskAccount.inc:1191 +#: ../lib/modules/customFields.inc:371 +#: ../lib/modules/customFields.inc:414 +msgid "Account type" +msgstr "Tipo de conta" + +#: ../templates/config/confmodules.php:168 +#: ../templates/config/confmain.php:209 +#: ../templates/config/moduleSettings.php:167 +#: ../templates/config/conftypes.php:186 +msgid "Account types" +msgstr "Tipos de conta" + +#: ../help/help.inc:105 +msgid "Account types and modules" +msgstr "Tipos de contas e módulos" + +#: ../help/help.inc:107 +msgid "Account types define which sorts of LDAP entries (e.g. users and groups) should be managed. The account modules define which properties (e.g. Unix and Samba) can be edited." +msgstr "Os tipos de conta definem quais entradas de LDAP (por exemplo usuários e grupos) devem ser controladas. Os módulos da conta definem quais propriedades (por exemplo Unix e Samba) podem ser editadas." + +#: ../lib/modules.inc:1248 +msgid "Account was created successfully." +msgstr "A conta foi criada com sucesso." + +#: ../templates/lists/changePassword.php:675 +#: ../templates/lists/changePassword.php:721 +#: ../templates/lists/changePassword.php:761 +#: ../lib/modules.inc:1251 +msgid "Account was modified successfully." +msgstr "A conta foi alterada com sucesso." + +#: ../lib/modules/customScripts.inc:134 +msgid "Action type" +msgstr "Tipo de ação" + +#: ../lib/modules/ddns.inc:87 +#: ../lib/modules/ddns.inc:352 +msgid "Activate DynDNS" +msgstr "Ativar DynDNS" + +#: ../templates/config/confmain.php:243 +#: ../templates/selfService/adminMain.php:405 +msgid "Activate TLS" +msgstr "Ativar TLS" + +#: ../lib/modules/sambaSamAccount.inc:340 +msgid "Activate this checkbox to allow this user to use the terminal service." +msgstr "Ativando esta caixa de checagem você irá habilitar o usuário a usar o serviço de terminal." + +#: ../lib/modules/sambaSamAccount.inc:361 +msgid "Activate this checkbox to connect drives from the client machine." +msgstr "Ativar esta caixa de checagem para conectar unidades na estação do cliente." + +#: ../lib/modules/sambaSamAccount.inc:364 +msgid "Activate this checkbox to connect printers from the client machine." +msgstr "Ativando esta caixa de checagem você irá conectar impressoras na estação de trabalho cliente." + +#: ../lib/modules/sambaSamAccount.inc:349 +msgid "Activate this checkbox to inherit the initial program and working directory from the client machine." +msgstr "Ativar esta caixa de checagem para herdar o programa inicial e o diretório de trabalho na estação cliente." + +#: ../lib/modules/sambaSamAccount.inc:367 +msgid "Activate this checkbox to set the client's printer as default printer." +msgstr "Ativando esta caixa de checagem você irá atribuir uma impressora como padrão do usuário." + +#: ../lib/modules/posixAccount.inc:377 +msgid "Activating this checkbox will remove the user's home directory." +msgstr "Ativando esta caixa de checagem você irá remover o diretório/pasta do usuário." + +#: ../lib/types/zarafaAddressListType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:93 +#: ../lib/modules/zarafaDynamicGroup.inc:76 +#: ../lib/modules/zarafaDynamicGroup.inc:133 +#: ../lib/modules/zarafaDynamicGroup.inc:156 +#: ../lib/modules/zarafaDynamicGroup.inc:255 +#: ../lib/modules/zarafaDynamicGroup.inc:469 +#: ../lib/modules/qmailUser.inc:41 +#: ../lib/modules/qmailUser.inc:278 +#: ../lib/modules/zarafaContact.inc:65 +#: ../lib/modules/zarafaContact.inc:130 +#: ../lib/modules/zarafaContact.inc:224 +#: ../lib/modules/zarafaGroup.inc:79 +#: ../lib/modules/zarafaGroup.inc:154 +#: ../lib/modules/zarafaGroup.inc:172 +#: ../lib/modules/zarafaGroup.inc:270 +#: ../lib/modules/zarafaGroup.inc:641 +#: ../lib/modules/zarafaAddressList.inc:64 +#: ../lib/modules/zarafaAddressList.inc:109 +#: ../lib/modules/zarafaAddressList.inc:131 +#: ../lib/modules/zarafaAddressList.inc:197 +#: ../lib/modules/zarafaAddressList.inc:330 +#: ../lib/modules/zarafaUser.inc:69 +#: ../lib/modules/zarafaUser.inc:180 +#: ../lib/modules/zarafaUser.inc:274 +#: ../lib/modules/zarafaUser.inc:597 +msgid "Active" +msgstr "Ativo" + +#: ../templates/config/conftypes.php:232 +msgid "Active account types" +msgstr "Tipos de contas ativas" + +#: ../templates/serverInfo.php:307 +#: ../templates/serverInfo.php:384 +#: ../templates/config/profmanage.php:251 +#: ../templates/config/confmodules.php:295 +#: ../templates/config/conftypes.php:223 +#: ../templates/selfService/profManage.php:218 +#: ../templates/pdfedit/pdfpage.php:545 +#: ../templates/pdfedit/pdfpage.php:555 +#: ../templates/pdfedit/pdfpage.php:565 +#: ../templates/pdfedit/pdfpage.php:579 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1206 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1210 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:78 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:121 +#: ../lib/modules/zarafaContact.inc:358 +#: ../lib/modules/zarafaGroup.inc:414 +#: ../lib/modules/device.inc:250 +#: ../lib/modules/zarafaUser.inc:877 +#: ../lib/modules/zarafaUser.inc:1536 +#: ../lib/modules/zarafaUser.inc:1568 +#: ../lib/modules/kolabUser.inc:716 +#: ../lib/modules/kolabUser.inc:764 +#: ../lib/modules/nisnetgroup.inc:275 +#: ../lib/modules/inetOrgPerson.inc:1980 +#: ../lib/modules/sudoRole.inc:269 +#: ../lib/modules/sudoRole.inc:296 +#: ../lib/modules/sudoRole.inc:323 +#: ../lib/modules/sudoRole.inc:350 +#: ../lib/modules/sudoRole.inc:377 +#: ../lib/modules/sudoRole.inc:404 +#: ../lib/modules/customFields.inc:680 +#: ../lib/modules/groupOfNames.inc:272 +#: ../lib/modules/groupOfNames.inc:384 +msgid "Add" +msgstr "Adicionar" + +#: ../lib/modules/asteriskAccount.inc:968 +msgid "Add Asterisk account" +msgstr "Adicionar conta Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:288 +msgid "Add Asterisk voicemail extension" +msgstr "Adicionar uma extensão de correio de voz do Asterisk" + +#: ../lib/modules/authorizedServiceObject.inc:195 +msgid "Add Authorized Service extension" +msgstr "Adicionar uma extensão de Serviço Autorizado" + +#: ../lib/modules/eduPerson.inc:399 +msgid "Add EDU person extension" +msgstr "Adicionar uma extensão de personalidade EDU" + +#: ../lib/modules/freeRadius.inc:345 +msgid "Add FreeRadius extension" +msgstr "Adicionar uma extensão FreeRadius" + +#: ../lib/modules/ipHost.inc:181 +msgid "Add IP address extension" +msgstr "Adicionar uma extensão de endereço IP" + +#: ../lib/modules/mitKerberos.inc:474 +#: ../lib/modules/heimdalKerberos.inc:394 +msgid "Add Kerberos extension" +msgstr "Adicionar uma extensão Kerberos" + +#: ../lib/modules/kolabUser.inc:319 +msgid "Add Kolab extension" +msgstr "Adicionar uma extensão Kolab" + +#: ../lib/modules/puppetClient.inc:217 +msgid "Add Puppet extension" +msgstr "Adicionar uma extensão Puppet" + +#: ../lib/modules/sambaSamAccount.inc:1273 +#: ../lib/modules/sambaGroupMapping.inc:293 +msgid "Add Samba 3 extension" +msgstr "Adicionar uma extensão Samba 3" + +#: ../lib/modules/shadowAccount.inc:369 +msgid "Add Shadow account extension" +msgstr "Adicionar uma extensão de conta Shadow" + +#: ../lib/modules/zarafaContact.inc:110 +#: ../lib/modules/zarafaContact.inc:174 +msgid "Add Zarafa contact extension" +msgstr "Adicionar uma extensão de Contato Zarafa" + +#: ../lib/modules/zarafaGroup.inc:280 +#: ../lib/modules/zarafaUser.inc:152 +#: ../lib/modules/zarafaUser.inc:153 +#: ../lib/modules/zarafaUser.inc:198 +#: ../lib/modules/zarafaUser.inc:441 +#: ../lib/modules/zarafaServer.inc:214 +msgid "Add Zarafa extension" +msgstr "Adicionar uma extensão Zarafa" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add all" +msgstr "Adicionar tudo" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2073 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2091 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "Add an additional value to attribute" +msgstr "Adicionar um valor adicional ao atributo" + +#: ../lib/modules/asteriskExtension.inc:343 +msgid "Add another rule" +msgstr "Adicionar outra regra" + +#: ../lib/modules/inetOrgPerson.inc:2015 +msgid "Add entries" +msgstr "Adicionar entradas" + +#: ../lib/modules/zarafaContact.inc:397 +#: ../lib/modules/zarafaGroup.inc:453 +#: ../lib/modules/device.inc:293 +#: ../lib/modules/zarafaUser.inc:916 +#: ../lib/modules/groupOfNames.inc:315 +#: ../lib/modules/groupOfNames.inc:427 +msgid "Add entries of this type:" +msgstr "Adicionar entradas do tipo:" + +#: ../lib/modules/customFields.inc:323 +msgid "Add extension" +msgstr "Adicionar uma extensão" + +#: ../lib/modules/ddns.inc:353 +msgid "Add fix IP addresses to DNS" +msgstr "Adicionar endereços IP fixos ao DNS" + +#: ../lib/modules/hostObject.inc:162 +msgid "Add host extension" +msgstr "Adicionar uma extensão de host" + +#: ../templates/selfService/adminMain.php:524 +#: ../help/help.inc:198 +msgid "Add input field" +msgstr "Adicionar campos de entrada" + +#: ../lib/modules/customFields.inc:1698 +msgid "Add more mapping fields" +msgstr "Adicionar mais campos de mapeamento" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:37 +#, php-format +msgid "Add new %s value to %s" +msgstr "Adicionar novo valor %s para %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1208 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:29 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:48 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:166 +msgid "Add new attribute" +msgstr "Adicionar novos atributos" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1207 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +msgid "Add new attribute to this object" +msgstr "Adicionar novo atributo para este objeto" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:89 +msgid "Add new binary attribute" +msgstr "Adicionar novo atributo binário" + +#: ../lib/modules/customFields.inc:639 +msgid "Add new field" +msgstr "Adicionar novo campo" + +#: ../templates/selfService/adminMain.php:516 +#: ../help/help.inc:196 +msgid "Add new group" +msgstr "Adicionar novo grupo" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:117 +msgid "Add new object class" +msgstr "Adicionar nova classe de objeto" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:60 +#, php-format +msgid "Add new object class to %s" +msgstr "Adicionar nova classe de objeto para %s" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:94 +msgid "Add object class and attributes" +msgstr "Adicionar classe de objeto e atributos" + +#: ../lib/modules/passwordSelfReset.inc:246 +msgid "Add password self reset extension" +msgstr "Adicionar extensão de redefinição de senha automática" + +#: ../lib/modules/inetOrgPerson.inc:754 +#: ../lib/modules/inetOrgPerson.inc:1902 +#: ../lib/modules/inetOrgPerson.inc:1939 +#: ../lib/modules/inetOrgPerson.inc:2889 +msgid "Add photo" +msgstr "Adicionar foto" + +#: ../templates/config/profmanage.php:239 +#: ../templates/config/profmanage.php:252 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:219 +#: ../help/help.inc:124 +msgid "Add profile" +msgstr "Adicionar perfil" + +#: ../lib/modules/qmailUser.inc:705 +msgid "Add qmail extension" +msgstr "Adicionar uma extensão qmail" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add selected" +msgstr "Adicionar selecionado" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:149 +msgid "Add value" +msgstr "Adicionar valor" + +#: ../templates/3rdParty/pla/htdocs/import.php:28 +msgid "Adding" +msgstr "Adicionando" + +#: ../lib/modules/range.inc:108 +msgid "Adding the range failed because errors occured." +msgstr "Adicionando o intervalo de falhas caso erros ocorram." + +#: ../templates/selfService/adminMain.php:452 +#: ../help/help.inc:202 +msgid "Additional CSS links" +msgstr "Links para CSS adicionais" + +#: ../lib/modules/zarafaDynamicGroup.inc:65 +#: ../lib/modules/zarafaDynamicGroup.inc:69 +#: ../lib/modules/zarafaGroup.inc:64 +#: ../lib/modules/zarafaGroup.inc:68 +msgid "Additional email addresses for this entry." +msgstr "Endereço de correio eletrônico adicional para esta entrada." + +#: ../lib/modules/posixAccount.inc:237 +#: ../lib/modules/posixAccount.inc:332 +#: ../lib/modules/posixAccount.inc:368 +#: ../lib/modules/posixAccount.inc:417 +#: ../lib/modules/posixAccount.inc:1124 +#: ../lib/modules/posixAccount.inc:1381 +#: ../lib/modules/posixAccount.inc:1483 +msgid "Additional groups" +msgstr "Grupos adicionais" + +#: ../templates/massDoUpload.php:149 +msgid "Additional tasks for module:" +msgstr "Tarefas adicionais para o módulo:" + +#: ../lib/modules/inetOrgPerson.inc:1360 +msgid "Address" +msgstr "Endereço" + +#: ../lib/types/zarafaAddressListType.inc:144 +#, php-format +msgid "Address list count: %s" +msgstr "Contagem de lista de endereços: %s" + +#: ../lib/modules/imapAccess.inc:71 +msgid "Address of IMAP server (e.g. mail.example.org)." +msgstr "Endereço do servidor IMAP (ex. mail.minhaempresa.org)" + +#: ../help/help.inc:197 +msgid "Adds a new group element to the list of self service options. Use this to structure the input fields." +msgstr "Adicionar um novo elemento de grupo à lista de opções. Use esta estrutura para entrada de campos." + +#: ../help/help.inc:199 +msgid "Adds a new self service option to the selected group element." +msgstr "Adicionar uma nova opção para o elemento de grupo selecionado." + +#: ../lib/modules/range.inc:95 +msgid "Adds input fields for a new IP range." +msgstr "Adiciona campos de entrada para novos intervalos de IP." + +#: ../lib/modules/zarafaUser.inc:93 +#: ../lib/modules/zarafaUser.inc:301 +#: ../lib/modules/zarafaUser.inc:359 +#: ../lib/modules/zarafaUser.inc:606 +#: ../lib/modules/zarafaUser.inc:1320 +msgid "Admin" +msgstr "Administrador" + +#: ../lib/modules/selfRegistration.inc:53 +#: ../lib/modules/selfRegistration.inc:100 +#: ../lib/modules/passwordSelfReset.inc:86 +#: ../lib/modules/passwordSelfReset.inc:174 +msgid "Admin DN" +msgstr "DN Administrador" + +#: ../lib/modules/selfRegistration.inc:58 +#: ../lib/modules/selfRegistration.inc:104 +#: ../lib/modules/passwordSelfReset.inc:90 +#: ../lib/modules/passwordSelfReset.inc:178 +msgid "Admin password" +msgstr "Senha de administrador" + +#: ../lib/modules/inetOrgPerson.inc:397 +#: ../lib/modules/inetOrgPerson.inc:501 +#: ../lib/modules/inetOrgPerson.inc:509 +msgid "Administration" +msgstr "Administração" + +#: ../lib/modules/posixGroup.inc:392 +#: ../lib/modules/nisnetgroup.inc:115 +#: ../lib/modules/groupOfNames.inc:101 +msgid "Administrators group" +msgstr "Grupo de Administradores" + +#: ../lib/modules/eduPerson.inc:93 +#: ../lib/modules/eduPerson.inc:97 +#: ../lib/modules/eduPerson.inc:161 +#: ../lib/modules/eduPerson.inc:199 +#: ../lib/modules/eduPerson.inc:288 +#: ../lib/modules/eduPerson.inc:678 +msgid "Affiliations" +msgstr "Afiliações" + +#: ../lib/modules/sambaSamAccount.inc:540 +msgid "Alaska" +msgstr "Alaska" + +#: ../lib/modules/sambaDomain.inc:211 +#: ../lib/modules/sambaDomain.inc:212 +msgid "Algorithmic RID base is not a number!" +msgstr "RID base algorítmico não é um número!" + +#: ../lib/modules/customFields.inc:64 +#: ../lib/modules/customFields.inc:375 +#: ../lib/modules/customFields.inc:417 +#: ../lib/modules/aliasEntry.inc:38 +msgid "Alias" +msgstr "Apelido" + +#: ../lib/types/mailAlias.inc:141 +#: ../lib/types/alias.inc:141 +#, php-format +msgid "Alias count: %s" +msgstr "Contagem de alias: %s" + +#: ../lib/types/alias.inc:62 +msgid "Alias entries" +msgstr "Entradas de apelidos" + +#: ../lib/modules/nisMailAlias.inc:106 +#: ../lib/modules/nisMailAlias.inc:107 +msgid "Alias is empty or invalid!" +msgstr "Apelido está vazio ou é inválido!" + +#: ../lib/types/mailAlias.inc:91 +#: ../lib/modules/nisMailAlias.inc:67 +#: ../lib/modules/nisMailAlias.inc:82 +#: ../lib/modules/nisMailAlias.inc:96 +#: ../lib/modules/nisMailAlias.inc:144 +#: ../lib/modules/nisMailAlias.inc:287 +msgid "Alias name" +msgstr "Apelido" + +#: ../lib/types/alias.inc:92 +#: ../lib/modules/customScripts.inc:45 +#: ../lib/modules/uidObject.inc:52 +#: ../lib/modules/aliasEntry.inc:54 +#: ../lib/modules/aliasEntry.inc:62 +#: ../lib/modules/aliasEntry.inc:70 +#: ../lib/modules/aliasEntry.inc:91 +#: ../lib/modules/aliasEntry.inc:100 +#: ../lib/modules/aliasEntry.inc:229 +msgid "Aliased entry" +msgstr "Entrada apelidada" + +#: ../templates/schema/schema.php:226 +#: ../lib/types/alias.inc:53 +msgid "Aliases" +msgstr "Apelidos" + +#: ../lib/lists.inc:652 +#, php-format +msgid "All accounts (%s)" +msgstr "Todas as contas (%s)" + +#: ../templates/selfService/selfServiceMain.php:332 +#: ../templates/initsuff.php:157 +msgid "All changes were successful." +msgstr "Todas as alterações foram bem sucedidas." + +#: ../lib/lists.inc:651 +#, php-format +msgid "All selected accounts (%s)" +msgstr "Todas as contas selecionadas (%s)" + +#: ../lib/modules/sambaDomain.inc:110 +#: ../lib/modules/sambaDomain.inc:187 +#: ../lib/modules/sambaDomain.inc:301 +#: ../lib/modules/sambaDomain.inc:671 +msgid "Allow machine password changes" +msgstr "Habilitar troca de senhas de máquinas" + +#: ../lib/modules/customFields.inc:128 +#: ../lib/modules/customFields.inc:1831 +msgid "Allow multiple values" +msgstr "Habilitar múltiplos valores" + +#: ../lib/types/ppolicyType.inc:90 +#: ../lib/modules/ppolicy.inc:125 +#: ../lib/modules/ppolicy.inc:148 +#: ../lib/modules/ppolicy.inc:287 +#: ../lib/modules/ppolicy.inc:498 +msgid "Allow password change" +msgstr "Habilitar troca de senhas" + +#: ../lib/modules/sambaSamAccount.inc:220 +#: ../lib/modules/sambaSamAccount.inc:339 +#: ../lib/modules/sambaSamAccount.inc:1461 +#: ../lib/modules/sambaSamAccount.inc:1747 +msgid "Allow terminal server login" +msgstr "Habilitar login no servidor de terminais" + +#: ../templates/selfService/adminMain.php:496 +msgid "Allow user input for this field." +msgstr "Habilitar entrada de usuário para este campo." + +#: ../lib/modules/asteriskAccount.inc:194 +#: ../lib/modules/asteriskAccount.inc:287 +#: ../lib/modules/asteriskAccount.inc:351 +#: ../lib/modules/asteriskAccount.inc:541 +#: ../lib/modules/asteriskAccount.inc:878 +#: ../lib/modules/asteriskAccount.inc:1251 +msgid "Allowed codec" +msgstr "Codec habilitado" + +#: ../templates/config/mainmanage.php:202 +#: ../lib/types/user.inc:95 +#: ../help/help.inc:146 +msgid "Allowed hosts" +msgstr "hosts habilitados" + +#: ../lib/modules/sambaSamAccount.inc:1299 +#: ../lib/modules/sambaSamAccount.inc:1300 +msgid "Allowed workstations" +msgstr "Estações de trabalho habilitadas" + +#: ../lib/modules/customFields.inc:129 +msgid "Allows to select multiple values from the list." +msgstr "Permite selecionar vários valores da lista." + +#: ../lib/modules/sambaSamAccount.inc:555 +msgid "Almaty, Dhaka, Colombo" +msgstr "Almaty, Dhaka, Colombo" + +#: ../lib/modules/qmailUser.inc:196 +#: ../lib/modules/qmailUser.inc:264 +#: ../lib/modules/qmailUser.inc:393 +#: ../lib/modules/qmailUser.inc:443 +#: ../lib/modules/qmailUser.inc:513 +#: ../lib/modules/qmailUser.inc:1192 +msgid "Alternate address" +msgstr "Endereço alternativo" + +#: ../lib/modules/kolabUser.inc:50 +msgid "Always accept" +msgstr "Sempre aceitar" + +#: ../lib/modules/kolabUser.inc:51 +msgid "Always reject" +msgstr "Sempre rejeitar" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1018 +#, php-format +msgid "An attribute (%s) was modified and is highlighted below." +msgstr "Um atributo (%s) foi modificado e está destacado abaixo." + +#: ../lib/modules/sudoRole.inc:222 +msgid "An sudo role with this name already exists. Please choose another name." +msgstr "Uma regra \"sudo\" com o mesmo nome já existe. Por favor escolha um outro nome." + +#: ../lib/modules/passwordSelfReset.inc:70 +#: ../lib/modules/passwordSelfReset.inc:145 +#: ../lib/modules/passwordSelfReset.inc:153 +#: ../lib/modules/passwordSelfReset.inc:224 +#: ../lib/modules/passwordSelfReset.inc:266 +#: ../lib/modules/passwordSelfReset.inc:373 +#: ../lib/modules/passwordSelfReset.inc:519 +#: ../lib/modules/passwordSelfReset.inc:797 +msgid "Answer" +msgstr "Resposta" + +#: ../lib/modules/kolabUser.inc:255 +#: ../lib/modules/kolabUser.inc:638 +#: ../lib/modules/kolabUser.inc:739 +#: ../lib/modules/kolabUser.inc:742 +msgid "Anyone" +msgstr "Qualquer um" + +#: ../lib/modules/asteriskExtension.inc:103 +#: ../lib/modules/asteriskExtension.inc:158 +#: ../lib/modules/asteriskExtension.inc:359 +#: ../lib/modules/asteriskExtension.inc:822 +msgid "Application" +msgstr "Aplicações" + +#: ../lib/modules/asteriskExtension.inc:87 +#: ../lib/modules/asteriskExtension.inc:165 +#: ../lib/modules/asteriskExtension.inc:367 +#: ../lib/modules/asteriskExtension.inc:823 +msgid "Application data" +msgstr "Dados da aplicação" + +#: ../lib/modules/zarafaUser.inc:144 +#: ../lib/modules/zarafaUser.inc:148 +#: ../lib/modules/zarafaUser.inc:188 +#: ../lib/modules/zarafaUser.inc:334 +#: ../lib/modules/zarafaUser.inc:398 +#: ../lib/modules/zarafaUser.inc:557 +#: ../lib/modules/zarafaUser.inc:960 +#: ../lib/modules/zarafaUser.inc:1368 +#: ../lib/modules/zarafaUser.inc:1393 +msgid "Archive servers" +msgstr "Servidores de arquivo" + +#: ../lib/modules/zarafaUser.inc:555 +msgid "Archiving" +msgstr "Arquivando" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:53 +msgid "Are you sure you want to permanently delete these objects?" +msgstr "Você tem certeza que quer apagar estes objetos permanentemente ?" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:107 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:51 +msgid "Are you sure you want to permanently delete this object?" +msgstr "Você tem certeza que quer apagar este objeto permanentemente ?" + +#: ../lib/modules/imapAccess.inc:118 +msgid "Ask" +msgstr "Perguntar" + +#: ../lib/modules/asteriskAccount.inc:66 +msgid "Asterisk" +msgstr "Asterisk" + +#: ../lib/modules/asteriskAccount.inc:123 +msgid "Asterisk AMA (Automated Message Accounting) flags." +msgstr "Sinalizações do AMA Asterisk (Contabilizador de Mensagens Automatizado do Asterisk)." + +#: ../lib/modules/asteriskExtension.inc:72 +msgid "Asterisk extension" +msgstr "Etensão Asterisk" + +#: ../lib/types/asteriskExt.inc:56 +msgid "Asterisk extensions" +msgstr "Extensões Asterisk" + +#: ../lib/types/asteriskExt.inc:65 +msgid "Asterisk extensions entries" +msgstr "Entradas de extensões do Asterisk" + +#: ../lib/modules/asteriskAccount.inc:114 +#: ../lib/modules/asteriskAccount.inc:241 +#: ../lib/modules/asteriskAccount.inc:311 +msgid "Asterisk realm" +msgstr "Reino Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:64 +msgid "Asterisk voicemail" +msgstr "Caixa de correio de voz do Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:111 +msgid "Asterisk voicemail context." +msgstr "Contexto de correio de voz do Asterisk." + +#: ../lib/modules/sambaSamAccount.inc:545 +msgid "Atlantic time (Canada), Caracas" +msgstr "Atlantic time (Canada), Caracas" + +#: ../templates/3rdParty/pla/lib/import_functions.php:455 +msgid "Attempting to delete a non existent attribute" +msgstr "Tentando excluir um atributo inexistente" + +#: ../templates/3rdParty/pla/lib/import_functions.php:466 +msgid "Attempting to replace a non existant attribute" +msgstr "Tentando substituir um atributo inexistente" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Attribute" +msgstr "Atributo" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:137 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:72 +msgid "Attribute doesn't exist" +msgstr "Atributo não existe" + +#: ../lib/modules/customFields.inc:80 +#: ../lib/modules/customFields.inc:665 +#: ../lib/modules/customFields.inc:1077 +msgid "Attribute name" +msgstr "Nome do atributo" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:117 +msgid "Attribute not available" +msgstr "Atributo não disponível" + +#: ../templates/3rdParty/pla/lib/import_functions.php:535 +msgid "Attribute not valid" +msgstr "Atributo não válido" + +#: ../templates/schema/schema.php:69 +#: ../templates/schema/schema.php:70 +msgid "Attribute types" +msgstr "Tipos de atributo" + +#: ../lib/modules/selfRegistration.inc:70 +#: ../lib/modules/selfRegistration.inc:117 +msgid "Attributes" +msgstr "Atributos" + +#: ../lib/modules/sambaSamAccount.inc:561 +msgid "Auckland, Fiji, Kamchatka" +msgstr "Auckland, Fiji, Kamchatka" + +#: ../lib/modules/asteriskAccount.inc:115 +msgid "Authentication realm for Asterisk server (default: asterisk). This value set in sip.conf (option: \"realm\")." +msgstr "Domínio de autenticação para o servidor Asterisk (padrão: asterisk). Este valor definido no sip.conf (opção: \"reino\")." + +#: ../lib/modules/asteriskAccount.inc:223 +msgid "Authentication user for outbound proxies." +msgstr "Autenticação de usuário para proxies de saída." + +#: ../lib/modules/authorizedServiceObject.inc:64 +#: ../lib/modules/authorizedServiceObject.inc:74 +#: ../lib/modules/authorizedServiceObject.inc:78 +#: ../lib/modules/authorizedServiceObject.inc:98 +#: ../lib/modules/authorizedServiceObject.inc:105 +#: ../lib/modules/authorizedServiceObject.inc:109 +#: ../lib/modules/authorizedServiceObject.inc:167 +#: ../lib/modules/authorizedServiceObject.inc:292 +msgid "Authorized Services" +msgstr "Serviços Autorizados" + +#: ../lib/modules/authorizedServiceObject.inc:122 +msgid "Authorized services are invalid." +msgstr "Serviços autorizados são inválidos." + +#: ../lib/modules/customScripts.inc:133 +msgid "Automatical scripts" +msgstr "Script automáticos" + +#: ../lib/modules/puppetClient.inc:101 +#: ../lib/modules/puppetClient.inc:153 +#: ../lib/modules/qmailUser.inc:124 +#: ../lib/modules/qmailUser.inc:256 +#: ../lib/modules/zarafaContact.inc:77 +#: ../lib/modules/zarafaContact.inc:560 +#: ../lib/modules/eduPerson.inc:130 +#: ../lib/modules/eduPerson.inc:135 +#: ../lib/modules/sambaSamAccount.inc:156 +#: ../lib/modules/sambaSamAccount.inc:387 +#: ../lib/modules/zarafaUser.inc:121 +#: ../lib/modules/zarafaUser.inc:1379 +#: ../lib/modules/shadowAccount.inc:99 +#: ../lib/modules/shadowAccount.inc:188 +#: ../lib/modules/authorizedServiceObject.inc:82 +#: ../lib/modules/authorizedServiceObject.inc:110 +#: ../lib/modules/passwordSelfReset.inc:129 +#: ../lib/modules/hostObject.inc:76 +#: ../lib/modules/hostObject.inc:94 +msgid "Automatically add this extension" +msgstr "Automaticamente adicione esta extensão" + +#: ../lib/types/automountType.inc:48 +#: ../lib/types/automountType.inc:57 +msgid "Automount entries" +msgstr "Entradas de mapeamento" + +#: ../lib/types/automountType.inc:87 +#: ../lib/modules/automount.inc:43 +#: ../lib/modules/automount.inc:61 +#: ../lib/modules/automount.inc:81 +#: ../lib/modules/automount.inc:97 +#: ../lib/modules/automount.inc:107 +#: ../lib/modules/automount.inc:127 +#: ../lib/modules/automount.inc:194 +msgid "Automount entry" +msgstr "Entrada de automontagem" + +#: ../lib/modules/automount.inc:107 +#: ../lib/modules/automount.inc:108 +msgid "Automount entry contains invalid characters. Only ASCII characters are allowed." +msgstr "A entrada de mapeamento contém caracteres inválidos. Somente caracteres ASCII são permitidos." + +#: ../lib/types/automountType.inc:215 +#, php-format +msgid "Automount entry count: %s" +msgstr "Contagem de entrada de automontagem: %s" + +#: ../lib/modules/qmailUser.inc:51 +msgid "Autoreply" +msgstr "Resposta Automática" + +#: ../lib/modules/qmailUser.inc:109 +#: ../lib/modules/qmailUser.inc:232 +#: ../lib/modules/qmailUser.inc:343 +#: ../lib/modules/qmailUser.inc:417 +#: ../lib/modules/qmailUser.inc:632 +#: ../lib/modules/qmailUser.inc:1243 +msgid "Autoreply text" +msgstr "Texto da Resposta Automática" + +#: ../templates/config/conftypes.php:215 +#: ../lib/modules/customScripts.inc:54 +msgid "Available account types" +msgstr "Tipos de conta disponíveis" + +#: ../lib/modules/customScripts.inc:55 +#: ../lib/modules/customScripts.inc:68 +msgid "Available actions" +msgstr "Ações disponíveis" + +#: ../lib/modules/posixAccount.inc:1219 +#: ../lib/modules/posixAccount.inc:1249 +#: ../lib/modules/nisnetgroup.inc:379 +#: ../lib/modules/groupOfNamesUser.inc:112 +msgid "Available groups" +msgstr "Grupos disponíveis" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:93 +msgid "Available members" +msgstr "Membros disponíveis" + +#: ../templates/config/confmodules.php:304 +msgid "Available modules" +msgstr "Módulos disponíveis" + +#: ../lib/modules/posixGroup.inc:255 +#: ../lib/modules/asteriskExtension.inc:456 +msgid "Available users" +msgstr "Usuários disponíveis" + +#: ../lib/modules/sambaSamAccount.inc:1302 +msgid "Available workstations" +msgstr "Estações de trabalho disponíveis" + +#: ../lib/modules/sambaSamAccount.inc:548 +msgid "Azores, Cape Verde Islands" +msgstr "Azores, Cape Verde Islands" + +#: ../lib/modules/dhcp_settings.inc:94 +msgid "B-Node (0x01)" +msgstr "Nó B (0x01)" + +#: ../templates/massBuildAccounts.php:254 +#: ../lib/modules/zarafaContact.inc:404 +#: ../lib/modules/posixGroup.inc:279 +#: ../lib/modules/zarafaGroup.inc:460 +#: ../lib/modules/device.inc:300 +#: ../lib/modules/sambaSamAccount.inc:1319 +#: ../lib/modules/posixAccount.inc:1287 +#: ../lib/modules/posixAccount.inc:1360 +#: ../lib/modules/zarafaUser.inc:923 +#: ../lib/modules/zarafaUser.inc:972 +#: ../lib/modules/nisnetgroup.inc:393 +#: ../lib/modules/inetOrgPerson.inc:1940 +#: ../lib/modules/inetOrgPerson.inc:2016 +#: ../lib/modules/groupOfNamesUser.inc:148 +#: ../lib/modules/groupOfNames.inc:322 +#: ../lib/modules/groupOfNames.inc:434 +msgid "Back" +msgstr "Voltar" + +#: ../lib/types/dhcp.inc:47 +msgid "Back to DHCP list" +msgstr "Voltar à lista DHCP" + +#: ../lib/types/nisObjectType.inc:30 +msgid "Back to NIS object list" +msgstr "Voltar à lista de objetos NIS" + +#: ../lib/baseType.inc:48 +msgid "Back to account list" +msgstr "Voltar à lista de contas" + +#: ../lib/types/zarafaAddressListType.inc:44 +msgid "Back to address list" +msgstr "Voltar à lista de endereços" + +#: ../lib/types/mailAlias.inc:44 +#: ../lib/types/alias.inc:44 +msgid "Back to alias list" +msgstr "Voltar à lista de apelidos" + +#: ../lib/types/automountType.inc:35 +msgid "Back to automount list" +msgstr "Voltar à lista de mapeamentos" + +#: ../lib/types/smbDomain.inc:44 +msgid "Back to domain list" +msgstr "Voltar à lista de domínios" + +#: ../lib/types/asteriskExt.inc:47 +msgid "Back to extensions list" +msgstr "Voltar à lista de estensões" + +#: ../templates/lists/userlink.php:63 +#: ../lib/types/gon.inc:44 +#: ../lib/types/zarafaDynamicGroupType.inc:44 +#: ../lib/types/group.inc:45 +#: ../lib/types/netgroup.inc:44 +msgid "Back to group list" +msgstr "Voltar à lista de grupos" + +#: ../lib/types/host.inc:44 +msgid "Back to host list" +msgstr "Voltar à lista de hosts" + +#: ../templates/delete.php:281 +msgid "Back to list" +msgstr "Voltar à lista" + +#: ../templates/config/mainmanage.php:163 +#: ../templates/config/index.php:79 +#: ../templates/config/conflogin.php:117 +#: ../templates/config/mainlogin.php:122 +#: ../templates/selfService/selfServiceSP.php:104 +#: ../templates/selfService/adminLogin.php:114 +msgid "Back to login" +msgstr "Voltar à tela de acesso" + +#: ../lib/types/ppolicyType.inc:30 +msgid "Back to policy list" +msgstr "Voltar à lista de políticas" + +#: ../templates/config/profmanage.php:177 +#: ../templates/selfService/profManage.php:144 +msgid "Back to profile login" +msgstr "Voltar para tela de acesso aos perfis" + +#: ../lib/types/sudo.inc:30 +msgid "Back to sudo role list" +msgstr "Voltar à lista de regras \"sudo\"" + +#: ../lib/types/user.inc:44 +msgid "Back to user list" +msgstr "Voltar à lista de usuários" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:64 +msgid "Back up" +msgstr "Voltar" + +#: ../templates/serverInfo.php:163 +msgid "Backends" +msgstr "Administração" + +#: ../lib/modules/sudoRole.inc:130 +msgid "Backup script" +msgstr "Script de cópia de segurança" + +#: ../lib/modules/sambaSamAccount.inc:552 +msgid "Baghdad, Riyadh, Moscow" +msgstr "Baghdad, Riyadh, Moscow" + +#: ../lib/modules/sambaSamAccount.inc:556 +msgid "Bangkok, Hanoi, Jakarta" +msgstr "Bangkok, Hanoi, Jakarta" + +#: ../lib/types/zarafaAddressListType.inc:93 +#: ../lib/types/zarafaDynamicGroupType.inc:94 +#: ../lib/modules/zarafaDynamicGroup.inc:80 +#: ../lib/modules/zarafaDynamicGroup.inc:90 +#: ../lib/modules/zarafaDynamicGroup.inc:141 +#: ../lib/modules/zarafaDynamicGroup.inc:159 +#: ../lib/modules/zarafaDynamicGroup.inc:172 +#: ../lib/modules/zarafaDynamicGroup.inc:205 +#: ../lib/modules/zarafaDynamicGroup.inc:454 +#: ../lib/modules/zarafaAddressList.inc:68 +#: ../lib/modules/zarafaAddressList.inc:78 +#: ../lib/modules/zarafaAddressList.inc:117 +#: ../lib/modules/zarafaAddressList.inc:133 +#: ../lib/modules/zarafaAddressList.inc:144 +#: ../lib/modules/zarafaAddressList.inc:173 +#: ../lib/modules/zarafaAddressList.inc:320 +msgid "Base" +msgstr "Base" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:142 +#: ../templates/3rdParty/pla/htdocs/export_form.php:31 +msgid "Base (base dn only)" +msgstr "Base (Somente DN base)" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:121 +#: ../templates/3rdParty/pla/lib/QueryRender.php:506 +#: ../templates/3rdParty/pla/htdocs/export_form.php:59 +msgid "Base DN" +msgstr "DN Base" + +#: ../templates/config/confmodules.php:212 +#: ../help/help.inc:138 +msgid "Base module" +msgstr "Módulo base" + +#: ../templates/pdfedit/pdfpage.php:436 +msgid "Beginning" +msgstr "Iniciando" + +#: ../lib/modules/sambaSamAccount.inc:557 +msgid "Beijing, Perth, Singapore" +msgstr "Beijing, Perth, Singapore" + +#: ../templates/3rdParty/pla/lib/PageRender.php:644 +#: ../templates/3rdParty/pla/lib/PageRender.php:648 +msgid "Binary value" +msgstr "Valor binário" + +#: ../templates/serverInfo.php:286 +#: ../templates/serverInfo.php:375 +msgid "Bind" +msgstr "Vincular" + +#: ../templates/config/confmain.php:419 +msgid "Bind password" +msgstr "Senha do usuário de execução" + +#: ../templates/config/confmain.php:417 +msgid "Bind user" +msgstr "Usuário de execução " + +#: ../help/help.inc:122 +msgid "Bind user and password" +msgstr "Usuário e senha de execução" + +#: ../lib/modules/quota.inc:53 +#: ../lib/modules/systemQuotas.inc:94 +msgid "Block hard quota" +msgstr "Limite absoluto de blocos de quota" + +#: ../lib/modules/quota.inc:53 +#: ../lib/modules/quota.inc:54 +#: ../lib/modules/systemQuotas.inc:94 +#: ../lib/modules/systemQuotas.inc:95 +msgid "Block hard quota contains invalid characters. Only natural numbers are allowed." +msgstr "O limite absoluto de quota contém caracteres inválidos. Somente números naturais são válidos." + +#: ../lib/modules/quota.inc:59 +#: ../lib/modules/systemQuotas.inc:100 +msgid "Block quota" +msgstr "Bloco de quota" + +#: ../lib/modules/quota.inc:51 +#: ../lib/modules/systemQuotas.inc:92 +msgid "Block soft quota" +msgstr "Limite máximo de blocos de quota" + +#: ../lib/modules/quota.inc:51 +#: ../lib/modules/quota.inc:52 +#: ../lib/modules/systemQuotas.inc:92 +#: ../lib/modules/systemQuotas.inc:93 +msgid "Block soft quota contains invalid characters. Only natural numbers are allowed." +msgstr "O limite máximo de quota contém caracteres inválidos. Somente números naturais são válidos." + +#: ../lib/modules/quota.inc:59 +#: ../lib/modules/quota.inc:60 +#: ../lib/modules/systemQuotas.inc:100 +#: ../lib/modules/systemQuotas.inc:101 +msgid "Block soft quota must be smaller than block hard quota." +msgstr "O limite máximo de blocos de quota deve ser menor que o limite absoluto de blocos de quota." + +#: ../lib/modules/sambaSamAccount.inc:546 +msgid "Brazil, Buenos Aires" +msgstr "Brasil, Buenos Aires" + +#: ../templates/3rdParty/pla/htdocs/copy.php:53 +msgid "Building snapshot of tree to copy" +msgstr "Construindo uma imagem da árvore para copiar" + +#: ../lib/modules/sambaGroupMapping.inc:73 +msgid "Builtin group" +msgstr "Grupo interno do sistema" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:63 +msgid "Bulk edit the following DNs" +msgstr "Edição segmentada dos seguintes DNs" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:48 +msgid "Bulk update the following DNs" +msgstr "Atualização segmentada dos seguintes DNs" + +#: ../lib/modules/inetOrgPerson.inc:82 +#: ../lib/modules/inetOrgPerson.inc:129 +#: ../lib/modules/inetOrgPerson.inc:301 +#: ../lib/modules/inetOrgPerson.inc:395 +#: ../lib/modules/inetOrgPerson.inc:615 +#: ../lib/modules/inetOrgPerson.inc:770 +#: ../lib/modules/inetOrgPerson.inc:1773 +#: ../lib/modules/inetOrgPerson.inc:2181 +#: ../lib/modules/inetOrgPerson.inc:2865 +msgid "Business category" +msgstr "Categoria de negócios" + +#: ../lib/modules/inetOrgPerson.inc:771 +msgid "Business category (e.g. Administration, IT-Services, Manangement, ...)" +msgstr "Categoria de negócios (Ex.: Administração, Serviços de TI, Gerenciamento, ...)" + +#: ../lib/modules/customScripts.inc:82 +msgid "By default, LAM will show the executed command along with any output of it. If you want to hide the command and only show the output then activate this option." +msgstr "Por padrão, o LAM vai mostrar o comando executado junto com qualquer saída dele. Se você deseja ocultar o comando e só mostrar a saída, então ative esta opção." + +#: ../templates/serverInfo.php:253 +#: ../templates/serverInfo.php:259 +msgid "Bytes sent" +msgstr "Bytes enviados" + +#: ../templates/masscreate.php:246 +msgid "CSV file" +msgstr "Arquivo CSV" + +#: ../help/help.inc:101 +msgid "Cache timeout" +msgstr "Intervalo de parada da àrea de transferência (cache)" + +#: ../lib/modules/asteriskAccount.inc:126 +#: ../lib/modules/asteriskAccount.inc:253 +#: ../lib/modules/asteriskAccount.inc:334 +#: ../lib/modules/asteriskAccount.inc:417 +#: ../lib/modules/asteriskAccount.inc:710 +#: ../lib/modules/asteriskAccount.inc:1200 +msgid "Call groups" +msgstr "Grupos de chamada" + +#: ../lib/modules/asteriskAccount.inc:94 +#: ../lib/modules/asteriskAccount.inc:328 +#: ../lib/modules/asteriskAccount.inc:366 +#: ../lib/modules/asteriskAccount.inc:655 +#: ../lib/modules/asteriskAccount.inc:1188 +msgid "Caller ID" +msgstr "ID's de chamada" + +#: ../lib/modules/sambaSamAccount.inc:294 +#: ../lib/modules/sambaSamAccount.inc:297 +#: ../lib/modules/sambaSamAccount.inc:300 +#: ../lib/modules/sambaSamAccount.inc:306 +#: ../lib/modules/posixAccount.inc:418 +#: ../lib/modules/sambaGroupMapping.inc:369 +#: ../lib/modules/shadowAccount.inc:169 +#: ../lib/modules/shadowAccount.inc:173 +#: ../lib/modules/shadowAccount.inc:177 +#: ../lib/modules/shadowAccount.inc:181 +#: ../lib/modules/groupOfNamesUser.inc:54 +msgid "Can be left empty." +msgstr "Pode ser vazio." + +#: ../lib/modules/asteriskAccount.inc:214 +#: ../lib/modules/asteriskAccount.inc:297 +#: ../lib/modules/asteriskAccount.inc:356 +#: ../lib/modules/asteriskAccount.inc:577 +#: ../lib/modules/asteriskAccount.inc:927 +#: ../lib/modules/asteriskAccount.inc:1266 +msgid "Can call forward" +msgstr "Pode enviar chamada" + +#: ../templates/lists/changePassword.php:301 +#: ../templates/lists/changePassword.php:330 +#: ../templates/lists/changePassword.php:364 +#: ../templates/lists/changePassword.php:390 +#: ../templates/ou_edit.php:121 +#: ../templates/config/profmanage.php:253 +#: ../templates/config/profmanage.php:265 +#: ../templates/config/profmanage.php:274 +#: ../templates/config/profmanage.php:291 +#: ../templates/config/profmanage.php:302 +#: ../templates/config/mainmanage.php:261 +#: ../templates/config/confmodules.php:227 +#: ../templates/config/confmain.php:445 +#: ../templates/config/moduleSettings.php:238 +#: ../templates/config/conftypes.php:289 +#: ../templates/selfService/profManage.php:220 +#: ../templates/selfService/profManage.php:236 +#: ../templates/selfService/profManage.php:249 +#: ../templates/selfService/adminMain.php:638 +#: ../templates/pdfedit/pdfpage.php:587 +#: ../templates/pdfedit/pdfmain.php:197 +#: ../templates/pdfedit/pdfmain.php:204 +#: ../templates/pdfedit/pdfmain.php:210 +#: ../templates/delete.php:117 +#: ../templates/profedit/profilepage.php:236 +#: ../templates/profedit/profilemain.php:196 +#: ../templates/profedit/profilemain.php:202 +#: ../templates/profedit/profilemain.php:208 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:197 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:83 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:136 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:121 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:119 +#: ../templates/initsuff.php:189 +#: ../lib/types/automountType.inc:234 +#: ../lib/types/user.inc:283 +#: ../lib/modules/mitKerberos.inc:686 +#: ../lib/modules/qmailUser.inc:914 +#: ../lib/modules/zarafaContact.inc:359 +#: ../lib/modules/zarafaGroup.inc:415 +#: ../lib/modules/device.inc:251 +#: ../lib/modules/sambaSamAccount.inc:1394 +#: ../lib/modules/sambaSamAccount.inc:1443 +#: ../lib/modules/sambaSamAccount.inc:1529 +#: ../lib/modules/zarafaUser.inc:878 +#: ../lib/modules/kolabUser.inc:455 +#: ../lib/modules/shadowAccount.inc:467 +#: ../lib/modules/nisnetgroup.inc:483 +#: ../lib/modules/inetOrgPerson.inc:1981 +#: ../lib/modules/freeRadius.inc:478 +#: ../lib/modules/aliasEntry.inc:140 +#: ../lib/modules/aliasEntry.inc:160 +#: ../lib/modules/heimdalKerberos.inc:592 +#: ../lib/modules/groupOfNames.inc:273 +#: ../lib/modules/groupOfNames.inc:385 +#: ../lib/lists.inc:661 +#: ../lib/lists.inc:738 +#: ../lib/modules.inc:1167 +msgid "Cancel" +msgstr "Cancelar" + +#: ../templates/login.php:499 +#: ../templates/login.php:557 +#: ../templates/login.php:562 +#: ../templates/selfService/selfServiceLogin.php:95 +#: ../templates/selfService/selfServiceLogin.php:131 +#: ../templates/selfService/selfServiceLogin.php:136 +#: ../templates/selfService/selfServiceMain.php:161 +#: ../templates/selfService/selfServiceMain.php:175 +#: ../lib/modules/selfRegistration.inc:588 +msgid "Cannot connect to specified LDAP server. Please try again." +msgstr "Não foi possível conectar-se ao servidor LDAP especificado. Por favor tente novamente." + +#: ../templates/login.php:279 +#: ../lib/config.inc:1457 +msgid "Cannot open config file!" +msgstr "Não foi possível abrir o arquivo de configuração!" + +#: ../lib/modules/imapAccess.inc:167 +msgid "Cannot update quota." +msgstr "Não foi possível atualizar quota." + +#: ../lib/modules/zarafaUser.inc:105 +#: ../lib/modules/zarafaUser.inc:178 +#: ../lib/modules/zarafaUser.inc:266 +#: ../lib/modules/zarafaUser.inc:383 +#: ../lib/modules/zarafaUser.inc:418 +#: ../lib/modules/zarafaUser.inc:548 +#: ../lib/modules/zarafaUser.inc:1303 +msgid "Capacity" +msgstr "Capacidade" + +#: ../templates/selfService/adminMain.php:453 +msgid "Captions and labels" +msgstr "Subtítulos e etiquetas" + +#: ../lib/modules/inetOrgPerson.inc:128 +#: ../lib/modules/inetOrgPerson.inc:297 +#: ../lib/modules/inetOrgPerson.inc:539 +#: ../lib/modules/inetOrgPerson.inc:609 +#: ../lib/modules/inetOrgPerson.inc:790 +#: ../lib/modules/inetOrgPerson.inc:1758 +#: ../lib/modules/inetOrgPerson.inc:2183 +#: ../lib/modules/inetOrgPerson.inc:2843 +msgid "Car license" +msgstr "Licensa CAR" + +#: ../lib/modules/sambaSamAccount.inc:550 +msgid "Central Europe Time, Paris, Berlin" +msgstr "Horário da Europa Central, Paris, Berlin" + +#: ../lib/modules/sambaSamAccount.inc:543 +msgid "Central Time (US & Canada), Mexico City" +msgstr "Horário central (EUA & Canadá), Cidade do México" + +#: ../templates/selfService/adminMain.php:470 +#: ../templates/pdfedit/pdfpage.php:486 +#: ../templates/pdfedit/pdfpage.php:495 +#: ../lib/modules/mitKerberos.inc:373 +#: ../lib/modules/mitKerberos.inc:384 +#: ../lib/modules/mitKerberos.inc:682 +#: ../lib/modules/qmailUser.inc:654 +#: ../lib/modules/qmailUser.inc:910 +#: ../lib/modules/zarafaContact.inc:199 +#: ../lib/modules/zarafaGroup.inc:236 +#: ../lib/modules/device.inc:180 +#: ../lib/modules/sambaSamAccount.inc:1165 +#: ../lib/modules/sambaSamAccount.inc:1439 +#: ../lib/modules/zarafaUser.inc:469 +#: ../lib/modules/zarafaUser.inc:560 +#: ../lib/modules/shadowAccount.inc:344 +#: ../lib/modules/shadowAccount.inc:463 +#: ../lib/modules/inetOrgPerson.inc:1858 +#: ../lib/modules/freeRadius.inc:334 +#: ../lib/modules/freeRadius.inc:474 +#: ../lib/modules/asteriskExtension.inc:229 +#: ../lib/modules/aliasEntry.inc:93 +#: ../lib/modules/passwordSelfReset.inc:272 +#: ../lib/modules/heimdalKerberos.inc:316 +#: ../lib/modules/heimdalKerberos.inc:327 +#: ../lib/modules/heimdalKerberos.inc:588 +#: ../lib/modules/groupOfNames.inc:181 +#: ../lib/modules/groupOfNames.inc:199 +msgid "Change" +msgstr "Alterar" + +#: ../lib/modules/posixGroup.inc:219 +#: ../lib/modules/posixGroup.inc:431 +msgid "Change GID number of users and hosts" +msgstr "Alterar número GID de usuários e hosts" + +#: ../lib/types/user.inc:283 +msgid "Change account status" +msgstr "Alterar a situação da conta" + +#: ../templates/config/profmanage.php:298 +#: ../templates/config/profmanage.php:301 +#: ../help/help.inc:132 +msgid "Change default profile" +msgstr "Alterar perfil padrão" + +#: ../lib/lists.inc:738 +msgid "Change list settings" +msgstr "Alterar configurações de lista" + +#: ../templates/config/mainmanage.php:253 +#: ../help/help.inc:134 +msgid "Change master password" +msgstr "Alterar senha mestre" + +#: ../templates/lists/changePassword.php:231 +#: ../templates/lists/changePassword.php:298 +#: ../templates/lists/changePassword.php:300 +#: ../templates/lists/changePassword.php:327 +#: ../templates/lists/changePassword.php:329 +#: ../lib/types/user.inc:622 +#: ../help/help.inc:99 +msgid "Change password" +msgstr "Alterar senha" + +#: ../templates/lists/changePassword.php:238 +#: ../templates/lists/changePassword.php:239 +msgid "Change password now?" +msgstr "Alterar senha agora ?" + +#: ../templates/config/confmain.php:260 +msgid "Change passwords" +msgstr "Alterar senhas" + +#: ../lib/lists.inc:739 +msgid "Change settings" +msgstr "Alterar configurações" + +#: ../lib/modules/posixAccount.inc:921 +msgid "Changed value because only ASCII characters are allowed." +msgstr "Valor alterado porque somente caracteres ASCII estão habilitados." + +#: ../lib/modules/passwordSelfReset.inc:147 +msgid "Charlie" +msgstr "Charlie" + +#: ../lib/modules/posixAccount.inc:1154 +msgid "Check home directories" +msgstr "Checar diretórios/pastas padrão" + +#: ../templates/tests/index.php:54 +#: ../lib/tools/tests.inc:112 +msgid "Check if quotas and homedirectories can be managed." +msgstr "Checar se quotas e diretórios/pastas padrão de usuário, podem ser gerenciadas." + +#: ../templates/tests/index.php:60 +#: ../lib/tools/tests.inc:118 +msgid "Check if the LDAP schema fits the requirements of the selected account modules." +msgstr "Marque se o esquema LDAP ajustará os requisitos dos módulos da conta selecionada." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2401 +msgid "Check password" +msgstr "Checar senha" + +#: ../templates/tests/lamdaemonTest.php:87 +msgid "Check quotas" +msgstr "Checagem de quotas" + +#: ../templates/masscreate.php:240 +msgid "Check your input carefully. LAM will only do some basic checks on the upload data." +msgstr "Checar seus dados de entrada com cuidado. LAM irá checar somente elementos básicos nos dados carregados." + +#: ../lib/modules/customFields.inc:1509 +msgid "Checkbox" +msgstr "Caixa de checagem" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1224 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1229 +msgid "Children" +msgstr "Filho" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:23 +msgid "Choose entry" +msgstr "Escolha uma entrada" + +#: ../lib/modules/imapAccess.inc:83 +msgid "Choose the way how to provide the IMAP admin password. You can use the same password as for the LAM login or LAM will ask you for a password when it is required." +msgstr "Escolher a forma como será fornecida a senha de administrador IMAP. Você pode usar a mesma senha do LAM para o login ou LAM irá pedir uma senha quando for necessário." + +#: ../lib/modules/puppetClient.inc:85 +#: ../lib/modules/puppetClient.inc:89 +#: ../lib/modules/puppetClient.inc:133 +#: ../lib/modules/puppetClient.inc:148 +#: ../lib/modules/puppetClient.inc:161 +#: ../lib/modules/puppetClient.inc:264 +#: ../lib/modules/puppetClient.inc:428 +msgid "Classes" +msgstr "Classes" + +#: ../lib/config.inc:197 +msgid "Click here if you are not directed to the next page." +msgstr "Clicar aqui se você não for direcionado para a próxima página." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2349 +msgid "Click to popup a dialog to select a date graphically" +msgstr "Clique para abrir uma janela de diálogo para selecionar uma data graficamente" + +#: ../templates/3rdParty/pla/lib/functions.php:2293 +msgid "Click to popup a dialog to select an entry (DN) graphically" +msgstr "Clique para abrir uma janela de diálogo para selecionar uma entrada DN graficamente" + +#: ../lib/types/user.inc:572 +msgid "Click to switch between thumbnail and original size." +msgstr "Clique para alternar entre miniatura e tamanho original." + +#: ../lib/modules/sambaSamAccount.inc:232 +#: ../lib/modules/sambaSamAccount.inc:366 +#: ../lib/modules/sambaSamAccount.inc:1497 +#: ../lib/modules/sambaSamAccount.inc:1775 +msgid "Client printer is default" +msgstr "Impressora padrão do cliente" + +#: ../templates/schema/schema.php:199 +msgid "Collective" +msgstr "Coletivo" + +#: ../templates/masscreate.php:275 +#: ../lib/modules/customFields.inc:112 +#: ../lib/modules/customFields.inc:1413 +msgid "Columns" +msgstr "Colunas" + +#: ../lib/modules/sambaSamAccount.inc:306 +msgid "Comma separated list of Samba workstations the user is allowed to login. Empty means every workstation." +msgstr "Lista separada por ponto e vírgula de estações de trabalho do Samba nas quais o usuário está autorizado a autenticar-se. Vazio para qualquer estação de trabalho." + +#: ../lib/modules/authorizedServiceObject.inc:79 +msgid "Comma separated list of services (e.g. sshd, imap, ftp)." +msgstr "Lista de serviços separados por vírgula (Ex. sshd, imap, ftp)." + +#: ../lib/types/sudo.inc:80 +#: ../lib/modules/customScripts.inc:135 +msgid "Command" +msgstr "Comando" + +#: ../lib/modules/sudoRole.inc:71 +#: ../lib/modules/sudoRole.inc:97 +#: ../lib/modules/sudoRole.inc:146 +#: ../lib/modules/sudoRole.inc:175 +#: ../lib/modules/sudoRole.inc:184 +#: ../lib/modules/sudoRole.inc:318 +#: ../lib/modules/sudoRole.inc:693 +msgid "Commands" +msgstr "Comandos" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:117 +msgid "Commit" +msgstr "Cometer" + +#: ../lib/modules/posixAccount.inc:113 +#: ../lib/modules/posixAccount.inc:158 +#: ../lib/modules/posixAccount.inc:218 +#: ../lib/modules/posixAccount.inc:335 +#: ../lib/modules/posixAccount.inc:421 +#: ../lib/modules/posixAccount.inc:443 +#: ../lib/modules/posixAccount.inc:1104 +#: ../lib/modules/posixAccount.inc:1479 +#: ../lib/modules/posixAccount.inc:2123 +#: ../lib/modules/inetOrgPerson.inc:75 +#: ../lib/modules/inetOrgPerson.inc:640 +#: ../lib/modules/inetOrgPerson.inc:746 +#: ../lib/modules/inetOrgPerson.inc:1323 +#: ../lib/modules/inetOrgPerson.inc:2179 +#: ../lib/modules/inetOrgPerson.inc:2311 +#: ../lib/modules/asteriskExtension.inc:111 +msgid "Common name" +msgstr "Nome comum" + +#: ../lib/modules/asteriskExtension.inc:112 +msgid "Common name of the Asterisk extension." +msgstr "Nome comum para a extensão Asterisk." + +#: ../templates/serverInfo.php:335 +#: ../templates/serverInfo.php:396 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1172 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:60 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:39 +msgid "Compare" +msgstr "Compare" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:28 +#, php-format +msgid "Compare another DN with %s" +msgstr "Compare outro DN com %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1169 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +msgid "Compare this DN with another" +msgstr "Compare este DN com um outro" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +msgid "Compare with another entry" +msgstr "Compare com uma outra entrada" + +#: ../templates/3rdParty/pla/htdocs/compare.php:42 +msgid "Comparing the following DNs" +msgstr "Comparando os seguintes DNs" + +#: ../templates/serverInfo.php:284 +#: ../templates/serverInfo.php:371 +msgid "Completed" +msgstr "Completado" + +#: ../templates/serverInfo.php:114 +msgid "Config suffix" +msgstr "Configurar sufixo" + +#: ../templates/config/index.php:50 +msgid "Configuration overview" +msgstr "Visão geral da configuração" + +#: ../lib/modules/qmailUser.inc:119 +#: ../lib/modules/qmailUser.inc:172 +#: ../lib/modules/qmailUser.inc:252 +#: ../lib/modules/qmailUser.inc:385 +#: ../lib/modules/qmailUser.inc:432 +#: ../lib/modules/qmailUser.inc:612 +#: ../lib/modules/qmailUser.inc:1275 +msgid "Configuration type" +msgstr "Tipo de configuração" + +#: ../lib/modules/selfRegistration.inc:74 +msgid "Confirmation mail settings" +msgstr "Opções do e-mail de confirmação" + +#: ../templates/config/confmodules.php:384 +msgid "Conflicting module:" +msgstr "Módulo conflitante:" + +#: ../lib/modules/sambaSamAccount.inc:230 +#: ../lib/modules/sambaSamAccount.inc:360 +#: ../lib/modules/sambaSamAccount.inc:1493 +#: ../lib/modules/sambaSamAccount.inc:1765 +msgid "Connect client drives" +msgstr "Conectar unidades do cliente" + +#: ../lib/modules/sambaSamAccount.inc:231 +#: ../lib/modules/sambaSamAccount.inc:363 +#: ../lib/modules/sambaSamAccount.inc:1495 +#: ../lib/modules/sambaSamAccount.inc:1770 +msgid "Connect client printers" +msgstr "Conectar impressoras do cliente" + +#: ../templates/serverInfo.php:230 +msgid "Connection statistics" +msgstr "Estatísticas de conexão" + +#: ../lib/modules/sambaSamAccount.inc:227 +#: ../lib/modules/sambaSamAccount.inc:1481 +#: ../lib/modules/sambaSamAccount.inc:1758 +msgid "Connection time limit" +msgstr "Tempo limite de conexão" + +#: ../lib/modules/inetOrgPerson.inc:1584 +msgid "Contact data" +msgstr "Dados de contato" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:721 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1301 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +msgid "Container" +msgstr "Recipiente" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1458 +msgid "Container and object classes" +msgstr "Recipiente e classes de objetos" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:27 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:88 +#: ../templates/3rdParty/pla/htdocs/copy.php:108 +msgid "Copy" +msgstr "Copiar" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:32 +#, php-format +msgid "Copy %s to a new object." +msgstr "Copiar %s para um novo objeto" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1098 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1102 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1103 +msgid "Copy or move this entry" +msgstr "Copiar ou mover esta entrada" + +#: ../templates/3rdParty/pla/htdocs/copy.php:130 +#, php-format +msgid "Copy successful. DN %s has been created." +msgstr "Copiado com sucesso. DN %s foi criado." + +#: ../templates/3rdParty/pla/htdocs/copy.php:48 +msgid "Copying" +msgstr "Copiando" + +#: ../templates/3rdParty/pla/htdocs/import.php:37 +msgid "Could not add object" +msgstr "Não foi possível adicionar o objeto" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:370 +msgid "Could not add the object to the LDAP server." +msgstr "Não foi possível adicionar o objeto para o servidor LDAP." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:30 +msgid "Could not delete attribute value." +msgstr "Não foi possível apagar o valor do atributo." + +#: ../templates/3rdParty/pla/htdocs/import.php:38 +msgid "Could not delete object" +msgstr "Não foi possível apagar o objeto" + +#: ../templates/3rdParty/pla/htdocs/delete.php:37 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:47 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:73 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:90 +msgid "Could not delete the entry." +msgstr "Não foi possível apagar a entrada" + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:37 +#, php-format +msgid "Could not fetch binary data from LDAP server for attribute [%s]." +msgstr "Não foi possível obter dados binários através de um servidor LDAP para o atributo [% s]." + +#: ../templates/3rdParty/pla/lib/functions.php:1946 +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:60 +#, php-format +msgid "Could not fetch jpeg data from LDAP server for attribute [%s]." +msgstr "Não foi possível buscar dados jpeg do servidor LDAP para o atributo [% s]." + +#: ../templates/3rdParty/pla/htdocs/import.php:41 +msgid "Could not modify object" +msgstr "Não foi possível modificar o objeto" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:528 +msgid "Could not perform ldap_modify operation." +msgstr "Operação ldap_modify não efetuada." + +#: ../templates/config/profmanage.php:98 +#: ../templates/selfService/profManage.php:74 +msgid "Could not rename file!" +msgstr "Arquivo não renomeado!" + +#: ../templates/3rdParty/pla/htdocs/import.php:39 +#: ../templates/3rdParty/pla/htdocs/import.php:40 +#: ../templates/3rdParty/pla/htdocs/rename.php:60 +msgid "Could not rename the entry." +msgstr "Não foi possível renomear a entrada." + +#: ../templates/pdfedit/pdfpage.php:101 +msgid "Could not save PDF structure, access denied." +msgstr "Não foi possível salvar o perfil PDF, acesso negado." + +#: ../templates/pdfedit/pdfmain.php:170 +#: ../templates/profedit/profilemain.php:166 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1185 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1189 +#: ../templates/initsuff.php:188 +#: ../lib/modules/posixAccount.inc:1339 +msgid "Create" +msgstr "Criar" + +#: ../lib/lists.inc:455 +#: ../lib/lists.inc:636 +#: ../lib/modules.inc:1279 +#: ../help/help.inc:168 +msgid "Create PDF file" +msgstr "Criar arquivo PDF" + +#: ../templates/massDoUpload.php:191 +#: ../templates/masscreate.php:257 +msgid "Create PDF files" +msgstr "Criar arquivos PDF" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1186 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1190 +msgid "Create a child entry" +msgstr "Criar uma entrada-filho" + +#: ../templates/pdfedit/pdfmain.php:163 +msgid "Create a new PDF structure" +msgstr "Criar nova estrutura de escopo PDF" + +#: ../templates/profedit/profilemain.php:154 +msgid "Create a new profile" +msgstr "Criar novo perfil" + +#: ../lib/types/dhcp.inc:46 +msgid "Create another DHCP entry" +msgstr "Criar outra entrada DHCP" + +#: ../lib/types/nisObjectType.inc:29 +msgid "Create another NIS object" +msgstr "Criar outro objeto NIS" + +#: ../lib/baseType.inc:47 +msgid "Create another account" +msgstr "Criar outra conta" + +#: ../lib/types/zarafaAddressListType.inc:43 +msgid "Create another address list" +msgstr "Criar outra lista de endereços" + +#: ../lib/types/mailAlias.inc:43 +#: ../lib/types/alias.inc:43 +msgid "Create another alias" +msgstr "Criar outro apelido" + +#: ../lib/types/automountType.inc:34 +msgid "Create another automount entry" +msgstr "Criar outra entrada de mapeamento" + +#: ../lib/types/smbDomain.inc:43 +msgid "Create another domain" +msgstr "Criar outro domínio" + +#: ../templates/3rdParty/pla/htdocs/create.php:100 +msgid "Create another entry" +msgstr "Criar outra entrada" + +#: ../lib/types/asteriskExt.inc:46 +msgid "Create another extension" +msgstr "Criar outra extensão" + +#: ../lib/types/gon.inc:43 +#: ../lib/types/zarafaDynamicGroupType.inc:43 +#: ../lib/types/group.inc:44 +#: ../lib/types/netgroup.inc:43 +msgid "Create another group" +msgstr "Criar outro grupo" + +#: ../lib/types/host.inc:43 +msgid "Create another host" +msgstr "Criar outra conta de host" + +#: ../lib/types/ppolicyType.inc:29 +msgid "Create another policy" +msgstr "Criar uma outra política" + +#: ../lib/types/sudo.inc:29 +msgid "Create another sudo role" +msgstr "Criar uma outra regra \"sudo\"" + +#: ../lib/types/user.inc:43 +msgid "Create another user" +msgstr "Criar outro usuário" + +#: ../lib/lists.inc:641 +msgid "Create for" +msgstr "Criar para" + +#: ../lib/modules/posixAccount.inc:250 +#: ../lib/modules/posixAccount.inc:1140 +#: ../lib/modules/posixAccount.inc:1404 +msgid "Create home directory" +msgstr "Criar diretório/pasta padrão de usuário" + +#: ../lib/modules/imapAccess.inc:243 +msgid "Create mailbox" +msgstr "Criar caixa de correio" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:278 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:281 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:283 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:506 +msgid "Create new entry here" +msgstr "Criar nova entrada aqui" + +#: ../lib/modules/customFields.inc:60 +#: ../lib/modules/customFields.inc:366 +#: ../lib/modules/customFields.inc:379 +msgid "Create new group" +msgstr "Criar novo grupo" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:698 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1541 +#: ../templates/3rdParty/pla/htdocs/create.php:84 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:52 +msgid "Create object" +msgstr "Criar objeto" + +#: ../lib/modules/generalInformation.inc:69 +msgid "Created by" +msgstr "Criado por" + +#: ../lib/types/automountType.inc:273 +msgid "Created new automount map." +msgstr "Criado novo mapeamento." + +#: ../templates/config/profmanage.php:75 +#: ../templates/selfService/profManage.php:55 +msgid "Created new profile." +msgstr "Novo perfil criado." + +#: ../lib/modules/customFields.inc:61 +msgid "Creates a new group for the given account type. Groups build a container for object classes and attributes." +msgstr "Cria um novo grupo para o tipo de conta determinado. Grupos constroem um recipiente para classes de objetos e atributos." + +#: ../lib/tools/fileUpload.inc:53 +msgid "Creates accounts by uploading a CSV formated file." +msgstr "Criar contas carregadas de um arquivo no formato CSV." + +#: ../templates/3rdParty/pla/htdocs/create.php:77 +#, php-format +msgid "Creation successful. DN %s has been created." +msgstr " DN % s foi criado com sucesso" + +#: ../lib/modules/generalInformation.inc:73 +msgid "Creation time" +msgstr "Hora da criação" + +#: ../templates/serverInfo.php:232 +#: ../templates/serverInfo.php:237 +msgid "Current connections" +msgstr "Conexões correntes" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:65 +#, php-format +msgid "Current list of %s values for attribute %s:" +msgstr "Lista corrente de valores %s para o atributo %s:" + +#: ../lib/modules/imapAccess.inc:297 +msgid "Current usage (kB)" +msgstr "Usado autalmente (kB)" + +#: ../lib/modules/customFields.inc:56 +#: ../lib/modules/customFields.inc:695 +msgid "Custom fields" +msgstr "Campos personalisados" + +#: ../lib/modules/customScripts.inc:41 +#: ../lib/modules/customScripts.inc:52 +#: ../lib/modules/customScripts.inc:66 +#: ../lib/modules/customScripts.inc:87 +#: ../lib/modules/customScripts.inc:96 +msgid "Custom scripts" +msgstr "Script personalizados" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1097 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1101 +msgid "Cut" +msgstr "Recortar" + +#: ../lib/modules/ddns.inc:69 +msgid "DDNS" +msgstr "DDNS" + +#: ../lib/modules/ddns.inc:362 +msgid "DDNS ist not activated. You can activate it in the DHCP settings (DDNS)." +msgstr "DDNS não está ativado. Você pode ativá-lo nas configurações de DHCP (DDNS)." + +#: ../lib/types/dhcp.inc:56 +msgid "DHCP" +msgstr "DHCP" + +#: ../lib/types/dhcp.inc:65 +msgid "DHCP administration" +msgstr "Administração DHCP" + +#: ../lib/types/dhcp.inc:170 +#, php-format +msgid "DHCP count: %s" +msgstr "Contagem DHCP: %s" + +#: ../lib/types/dhcp.inc:173 +#: ../lib/modules/dhcp_settings.inc:113 +msgid "DHCP settings" +msgstr "Configurações do DHCP" + +#: ../templates/delete.php:96 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:734 +#: ../templates/3rdParty/pla/lib/PageRender.php:110 +#: ../templates/3rdParty/pla/htdocs/compare.php:52 +#: ../templates/3rdParty/pla/htdocs/compare.php:58 +#: ../templates/3rdParty/pla/htdocs/create.php:92 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:35 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:112 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:57 +#: ../lib/modules.inc:388 +#: ../lib/modules.inc:1846 +msgid "DN" +msgstr "DN" + +#: ../templates/3rdParty/pla/lib/import_functions.php:210 +#: ../templates/3rdParty/pla/lib/import_functions.php:222 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1866 +msgid "DN does not exist" +msgstr "DN não existe" + +#: ../templates/masscreate.php:279 +msgid "DN settings" +msgstr "Configurações do DN" + +#: ../templates/masscreate.php:308 +#: ../help/help.inc:158 +msgid "DN suffix" +msgstr "Sufixo do DN" + +#: ../lib/modules/dhcp_settings.inc:193 +#: ../lib/modules/dhcp_settings.inc:207 +#: ../lib/modules/dhcp_settings.inc:246 +#: ../lib/modules/dhcp_settings.inc:552 +#: ../lib/modules/dhcp_settings.inc:639 +msgid "DNS" +msgstr "DNS" + +#: ../lib/modules/dhcp_settings.inc:147 +msgid "DNS (Domain Name System)" +msgstr "DNS (Sistema de nomes de domínios)" + +#: ../lib/modules/asteriskExtension.inc:108 +msgid "DNs of the extension owners" +msgstr "Dn´s de proprietários de extensão" + +#: ../templates/3rdParty/pla/lib/export_functions.php:343 +msgid "DSML V.1 Export" +msgstr "Exportação DSML V.1" + +#: ../lib/modules/asteriskAccount.inc:255 +#: ../lib/modules/asteriskAccount.inc:335 +#: ../lib/modules/asteriskAccount.inc:424 +#: ../lib/modules/asteriskAccount.inc:723 +msgid "DTFM flags" +msgstr "Sinalizações DTFM" + +#: ../lib/modules/asteriskAccount.inc:130 +#: ../lib/modules/asteriskAccount.inc:1203 +msgid "DTMF mode" +msgstr "Modo DTMF" + +#: ../lib/modules/asteriskAccount.inc:131 +msgid "DTMF mode for SIP client configuration." +msgstr "Configuração de modo DTMF para cliente SIP" + +#: ../templates/3rdParty/pla/htdocs/import.php:103 +msgid "Data" +msgstr "Dado" + +#: ../lib/modules/sambaSamAccount.inc:286 +msgid "Date after the user is able to change his password." +msgstr "Data após a qual o usuário estará habilitado a trocar esta senha." + +#: ../lib/modules/mitKerberos.inc:114 +#: ../lib/modules/sambaSamAccount.inc:288 +#: ../lib/modules/heimdalKerberos.inc:100 +msgid "Date after the user must change his password." +msgstr "Data após a qual o usuário deverá trocar esta senha." + +#: ../lib/modules/shadowAccount.inc:169 +msgid "Days before password is to expire that user is warned of pending password expiration. If set value must be >0." +msgstr "Dias antes da senha expirar em que o usuário será alertado sobre a expiração de sua senha. Se atribuir valor, este deve ser maior que 0." + +#: ../templates/config/mainmanage.php:223 +msgid "Debug" +msgstr "Depurar" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:592 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +#: ../lib/modules/qmailUser.inc:47 +#: ../lib/modules/qmailUser.inc:285 +#: ../lib/modules/qmailUser.inc:1069 +msgid "Default" +msgstr "Padrão" + +#: ../lib/modules/dhcp_settings.inc:151 +#: ../lib/modules/dhcp_settings.inc:194 +#: ../lib/modules/dhcp_settings.inc:208 +#: ../lib/modules/dhcp_settings.inc:252 +#: ../lib/modules/dhcp_settings.inc:554 +#: ../lib/modules/dhcp_settings.inc:640 +msgid "Default gateway" +msgstr "Roteador padrão da rede" + +#: ../templates/config/confmain.php:285 +#: ../help/help.inc:95 +msgid "Default language" +msgstr "Idioma padrão" + +#: ../lib/modules/asteriskAccount.inc:222 +#: ../lib/modules/asteriskAccount.inc:301 +#: ../lib/modules/asteriskAccount.inc:358 +#: ../lib/modules/asteriskAccount.inc:592 +#: ../lib/modules/asteriskAccount.inc:945 +#: ../lib/modules/asteriskAccount.inc:1272 +msgid "Default user" +msgstr "Usuário padrão" + +#: ../templates/masscreate.php:297 +#: ../templates/masscreate.php:372 +#: ../lib/modules/customFields.inc:108 +#: ../lib/modules/customFields.inc:1532 +msgid "Default value" +msgstr "Valor padrão" + +#: ../lib/modules/sambaDomain.inc:111 +msgid "Defines if workstations may change their passwords." +msgstr "Define se as estações de trabalho poderão trocar suas senhas." + +#: ../lib/modules/asteriskAccount.inc:151 +msgid "Defines the mailbox to check for message waiting indication (MWI) for this peer." +msgstr "Define a caixa de correio para verificar se há indicação de mensagem em espera (MWI) para este ponto." + +#: ../lib/modules/kolabUser.inc:97 +#: ../lib/modules/kolabUser.inc:113 +#: ../lib/modules/kolabUser.inc:117 +#: ../lib/modules/kolabUser.inc:159 +#: ../lib/modules/kolabUser.inc:169 +#: ../lib/modules/kolabUser.inc:295 +#: ../lib/modules/kolabUser.inc:652 +#: ../lib/modules/kolabUser.inc:718 +msgid "Delegates" +msgstr "Delegados" + +#: ../templates/serverInfo.php:321 +#: ../templates/serverInfo.php:390 +#: ../templates/ou_edit.php:120 +#: ../templates/config/profmanage.php:272 +#: ../templates/selfService/profManage.php:247 +#: ../templates/pdfedit/pdfmain.php:196 +#: ../templates/pdfedit/pdfmain.php:197 +#: ../templates/delete.php:116 +#: ../templates/profedit/profilemain.php:195 +#: ../templates/profedit/profilemain.php:196 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:33 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:124 +#: ../lib/modules/posixAccount.inc:1332 +#: ../lib/modules/zarafaUser.inc:1510 +#: ../lib/modules/zarafaUser.inc:1560 +#: ../lib/modules/kolabUser.inc:708 +#: ../lib/modules/nisnetgroup.inc:246 +#: ../lib/lists.inc:449 +msgid "Delete" +msgstr "Apagar" + +#: ../templates/3rdParty/pla/htdocs/delete.php:31 +msgid "Delete DN" +msgstr "Apagar DN" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:30 +msgid "Delete LDAP entries" +msgstr "Remover entradas LDAP selecionadas" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:77 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:84 +msgid "Delete after copy (move):" +msgstr "Apagar depois de copiar ou mover:" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:72 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:110 +#, php-format +msgid "Delete all %s objects" +msgstr "Apagar todos objetos %s" + +#: ../lib/modules/customFields.inc:467 +msgid "Delete group" +msgstr "Apagar grupo" + +#: ../lib/modules/posixAccount.inc:1189 +msgid "Delete home directory" +msgstr "Apagar diretório/pasta padrão do usuário" + +#: ../lib/modules/imapAccess.inc:236 +msgid "Delete mailbox" +msgstr "Apagar caixa de correio" + +#: ../templates/ou_edit.php:194 +#: ../help/help.inc:223 +msgid "Delete organisational unit" +msgstr "Apagar unidade organizacional" + +#: ../templates/3rdParty/pla/lib/functions.php:2014 +#: ../lib/modules/inetOrgPerson.inc:1905 +msgid "Delete photo" +msgstr "Apagar foto" + +#: ../templates/config/profmanage.php:270 +#: ../templates/config/profmanage.php:273 +#: ../templates/selfService/profManage.php:241 +#: ../templates/selfService/profManage.php:248 +#: ../help/help.inc:128 +msgid "Delete profile" +msgstr "Apagar perfil" + +#: ../lib/modules/range.inc:91 +#: ../lib/modules/range.inc:109 +#: ../lib/modules/range.inc:435 +msgid "Delete range" +msgstr "Excluir intervalo" + +#: ../lib/modules/asteriskExtension.inc:309 +#: ../lib/modules/asteriskExtension.inc:332 +msgid "Delete rule" +msgstr "Apagar regra" + +#: ../lib/types/dhcp.inc:174 +msgid "Delete selected DHCP entries" +msgstr "Remover entradas DHCP selecionadas" + +#: ../lib/types/nisObjectType.inc:158 +msgid "Delete selected NIS objects" +msgstr "Apagar objetos NIS selecionados" + +#: ../lib/types/zarafaAddressListType.inc:147 +msgid "Delete selected address lists" +msgstr "Apagar listas de endereços selecionadas" + +#: ../lib/types/mailAlias.inc:144 +#: ../lib/types/alias.inc:144 +msgid "Delete selected aliases" +msgstr "Apagar apelidos selecionados" + +#: ../lib/types/automountType.inc:218 +msgid "Delete selected automount entries" +msgstr "Apague as entradas de automontagem selecionadas" + +#: ../lib/types/smbDomain.inc:170 +msgid "Delete selected domains" +msgstr "Apagar domínios selecionados" + +#: ../lib/types/asteriskExt.inc:146 +msgid "Delete selected extensions" +msgstr "Apagar extensões selecionadas" + +#: ../lib/types/gon.inc:183 +#: ../lib/types/zarafaDynamicGroupType.inc:168 +#: ../lib/types/group.inc:207 +#: ../lib/types/netgroup.inc:172 +msgid "Delete selected groups" +msgstr "Apagar grupos selecionados" + +#: ../lib/types/host.inc:189 +msgid "Delete selected hosts" +msgstr "Apagar hosts selecionados" + +#: ../lib/lists.inc:115 +msgid "Delete selected objects" +msgstr "Apagar objetos selecionados" + +#: ../lib/types/ppolicyType.inc:152 +msgid "Delete selected policies" +msgstr "Apagar políticas selecionadas" + +#: ../lib/types/sudo.inc:162 +msgid "Delete selected sudo roles" +msgstr "Apagar regras \"sudo\" selecionadas" + +#: ../lib/types/user.inc:487 +msgid "Delete selected users" +msgstr "Apagar usuários selecionados" + +#: ../templates/3rdParty/pla/htdocs/copy.php:146 +#, php-format +msgid "Delete successful: %s" +msgstr "Apagado com sucesso: %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "Delete this entry" +msgstr "Apagar esta entrada" + +#: ../lib/modules/qmailUser.inc:44 +msgid "Deleted" +msgstr "Apagado" + +#: ../templates/delete.php:264 +#, php-format +msgid "Deleted DN: %s" +msgstr "DN apagado: %s" + +#: ../templates/pdfedit/pdfmain.php:86 +msgid "Deleted PDF structure." +msgstr "Estrutura PDF apagada." + +#: ../lib/modules/sambaGroupMapping.inc:74 +msgid "Deleted account" +msgstr "Conta apagada" + +#: ../templates/profedit/profilemain.php:102 +msgid "Deleted profile." +msgstr "Perfil apagado." + +#: ../lib/modules/range.inc:92 +msgid "Deletes an IP range." +msgstr "Excluir um intervalo de endereços IP" + +#: ../templates/3rdParty/pla/htdocs/import.php:29 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:65 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:82 +msgid "Deleting" +msgstr "Apagando" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:73 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:125 +msgid "Deleting objects" +msgstr "Apagando objetos" + +#: ../lib/modules/qmailUser.inc:117 +#: ../lib/modules/qmailUser.inc:248 +#: ../lib/modules/qmailUser.inc:375 +#: ../lib/modules/qmailUser.inc:429 +#: ../lib/modules/qmailUser.inc:651 +#: ../lib/modules/qmailUser.inc:892 +#: ../lib/modules/qmailUser.inc:1267 +msgid "Deletion date" +msgstr "Data de exclusão" + +#: ../lib/lists.inc:985 +msgid "Deletion was successful." +msgstr "Foi apagado com sucesso." + +#: ../lib/modules/qmailUser.inc:208 +#: ../lib/modules/qmailUser.inc:283 +#: ../lib/modules/qmailUser.inc:396 +#: ../lib/modules/qmailUser.inc:622 +#: ../lib/modules/qmailUser.inc:1219 +msgid "Delivery mode" +msgstr "Modo de Entrega" + +#: ../lib/modules/qmailUser.inc:115 +#: ../lib/modules/qmailUser.inc:168 +#: ../lib/modules/qmailUser.inc:244 +#: ../lib/modules/qmailUser.inc:367 +#: ../lib/modules/qmailUser.inc:426 +#: ../lib/modules/qmailUser.inc:641 +#: ../lib/modules/qmailUser.inc:1261 +msgid "Delivery program" +msgstr "Programa de Entrega" + +#: ../lib/modules/asteriskAccount.inc:158 +#: ../lib/modules/asteriskAccount.inc:269 +#: ../lib/modules/asteriskAccount.inc:342 +#: ../lib/modules/asteriskAccount.inc:476 +#: ../lib/modules/asteriskAccount.inc:794 +#: ../lib/modules/asteriskAccount.inc:1224 +msgid "Deny" +msgstr "Negar" + +#: ../lib/modules/inetOrgPerson.inc:130 +#: ../lib/modules/inetOrgPerson.inc:183 +#: ../lib/modules/inetOrgPerson.inc:303 +#: ../lib/modules/inetOrgPerson.inc:499 +#: ../lib/modules/inetOrgPerson.inc:618 +#: ../lib/modules/inetOrgPerson.inc:802 +#: ../lib/modules/inetOrgPerson.inc:806 +#: ../lib/modules/inetOrgPerson.inc:1783 +#: ../lib/modules/inetOrgPerson.inc:2194 +#: ../lib/modules/inetOrgPerson.inc:2903 +msgid "Department" +msgstr "Departamento" + +#: ../templates/schema/schema.php:89 +#: ../templates/schema/schema.php:143 +#: ../templates/schema/schema.php:346 +#: ../templates/3rdParty/pla/lib/functions.php:1898 +#: ../templates/3rdParty/pla/lib/functions.php:1902 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:139 +#: ../templates/3rdParty/pla/htdocs/import.php:101 +#: ../lib/types/automountType.inc:88 +#: ../lib/types/nisObjectType.inc:80 +#: ../lib/types/user.inc:101 +#: ../lib/types/sudo.inc:84 +#: ../lib/types/dhcp.inc:96 +#: ../lib/types/netgroup.inc:92 +#: ../lib/modules/account.inc:75 +#: ../lib/modules/account.inc:88 +#: ../lib/modules/account.inc:98 +#: ../lib/modules/account.inc:106 +#: ../lib/modules/account.inc:221 +#: ../lib/modules/account.inc:236 +#: ../lib/modules/posixGroup.inc:198 +#: ../lib/modules/posixGroup.inc:351 +#: ../lib/modules/posixGroup.inc:403 +#: ../lib/modules/posixGroup.inc:474 +#: ../lib/modules/device.inc:74 +#: ../lib/modules/device.inc:107 +#: ../lib/modules/device.inc:117 +#: ../lib/modules/device.inc:163 +#: ../lib/modules/device.inc:448 +#: ../lib/modules/dhcp_settings.inc:183 +#: ../lib/modules/dhcp_settings.inc:199 +#: ../lib/modules/dhcp_settings.inc:279 +#: ../lib/modules/dhcp_settings.inc:586 +#: ../lib/modules/dhcp_settings.inc:645 +#: ../lib/modules/posixAccount.inc:439 +#: ../lib/modules/nisObject.inc:66 +#: ../lib/modules/nisObject.inc:96 +#: ../lib/modules/nisObject.inc:107 +#: ../lib/modules/nisObject.inc:148 +#: ../lib/modules/nisObject.inc:213 +#: ../lib/modules/sambaGroupMapping.inc:325 +#: ../lib/modules/sambaGroupMapping.inc:394 +#: ../lib/modules/automount.inc:65 +#: ../lib/modules/automount.inc:88 +#: ../lib/modules/automount.inc:98 +#: ../lib/modules/automount.inc:133 +#: ../lib/modules/automount.inc:195 +#: ../lib/modules/nisnetgroup.inc:80 +#: ../lib/modules/nisnetgroup.inc:133 +#: ../lib/modules/nisnetgroup.inc:192 +#: ../lib/modules/nisnetgroup.inc:577 +#: ../lib/modules/inetOrgPerson.inc:141 +#: ../lib/modules/inetOrgPerson.inc:265 +#: ../lib/modules/inetOrgPerson.inc:355 +#: ../lib/modules/inetOrgPerson.inc:558 +#: ../lib/modules/inetOrgPerson.inc:646 +#: ../lib/modules/inetOrgPerson.inc:1336 +#: ../lib/modules/inetOrgPerson.inc:2163 +#: ../lib/modules/sudoRole.inc:59 +#: ../lib/modules/sudoRole.inc:128 +#: ../lib/modules/sudoRole.inc:172 +#: ../lib/modules/sudoRole.inc:253 +#: ../lib/modules/sudoRole.inc:684 +#: ../lib/modules/groupOfNames.inc:64 +#: ../lib/modules/groupOfNames.inc:99 +#: ../lib/modules/groupOfNames.inc:130 +#: ../lib/modules/groupOfNames.inc:178 +#: ../lib/modules/groupOfNames.inc:532 +msgid "Description" +msgstr "Descrição" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "Destination DN" +msgstr "DN de Destino" + +#: ../lib/modules/device.inc:38 +msgid "Device" +msgstr "Dispositivo" + +#: ../lib/modules/sambaSamAccount.inc:381 +#: ../lib/modules/sambaSamAccount.inc:569 +msgid "Disable LM hashes" +msgstr "Desabilitar LM hashes" + +#: ../lib/modules/ddns.inc:95 +#: ../lib/modules/ddns.inc:354 +msgid "Disable client updates" +msgstr "Desabilitar atualizações de clientes" + +#: ../lib/modules/qmailUser.inc:43 +msgid "Disabled" +msgstr "Desabilitado" + +#: ../lib/modules/ddns.inc:96 +msgid "Disables the client to update DNS entries." +msgstr "Desabilitar o cliente para atualizar entradas DNS." + +#: ../lib/modules/mitKerberos.inc:161 +msgid "Disables user-to-user authentication for this principal by prohibiting this principal from obtaining a session key for another user." +msgstr "Desativa a autenticação de \"usuário para usuário\" para este objeto, proibindo este objeto de obter uma chave de sessão para outro usuário." + +#: ../lib/modules/heimdalKerberos.inc:123 +#: ../lib/modules/heimdalKerberos.inc:370 +msgid "Disallow TGT-based tickets" +msgstr "Desabilitar bilhetes baseados em TGT" + +#: ../lib/modules/mitKerberos.inc:163 +#: ../lib/modules/mitKerberos.inc:448 +#: ../lib/modules/heimdalKerberos.inc:141 +#: ../lib/modules/heimdalKerberos.inc:375 +msgid "Disallow all tickets" +msgstr "Desabilitar todos os bilhetes" + +#: ../lib/modules/mitKerberos.inc:151 +#: ../lib/modules/mitKerberos.inc:418 +#: ../lib/modules/heimdalKerberos.inc:126 +#: ../lib/modules/heimdalKerberos.inc:345 +msgid "Disallow forwardable tickets" +msgstr "Proibir bilhetes de repasse" + +#: ../lib/modules/mitKerberos.inc:148 +#: ../lib/modules/mitKerberos.inc:433 +#: ../lib/modules/heimdalKerberos.inc:135 +#: ../lib/modules/heimdalKerberos.inc:360 +msgid "Disallow post-dated tickets" +msgstr "Desabilitar bilhetes pós-datados" + +#: ../lib/modules/mitKerberos.inc:157 +#: ../lib/modules/mitKerberos.inc:423 +#: ../lib/modules/heimdalKerberos.inc:129 +#: ../lib/modules/heimdalKerberos.inc:350 +msgid "Disallow proxiable tickets" +msgstr "Proibir bilhetes de procuração" + +#: ../lib/modules/mitKerberos.inc:154 +#: ../lib/modules/mitKerberos.inc:428 +#: ../lib/modules/heimdalKerberos.inc:132 +#: ../lib/modules/heimdalKerberos.inc:355 +msgid "Disallow renewable tickets" +msgstr "Proibir bilhetes renováveis" + +#: ../lib/modules/mitKerberos.inc:175 +#: ../lib/modules/mitKerberos.inc:438 +#: ../lib/modules/heimdalKerberos.inc:138 +#: ../lib/modules/heimdalKerberos.inc:365 +msgid "Disallow service tickets" +msgstr "desabilitar bilhetes de serviços" + +#: ../lib/modules/mitKerberos.inc:160 +#: ../lib/modules/mitKerberos.inc:443 +msgid "Disallow user-to-user authentication" +msgstr "Desabilita autenticação usuário para usuário" + +#: ../lib/modules/asteriskAccount.inc:190 +#: ../lib/modules/asteriskAccount.inc:285 +#: ../lib/modules/asteriskAccount.inc:350 +#: ../lib/modules/asteriskAccount.inc:534 +#: ../lib/modules/asteriskAccount.inc:869 +#: ../lib/modules/asteriskAccount.inc:1248 +msgid "Disallowed codec" +msgstr "Codec desabilitado" + +#: ../lib/modules/sambaDomain.inc:106 +#: ../lib/modules/sambaDomain.inc:186 +#: ../lib/modules/sambaDomain.inc:292 +#: ../lib/modules/sambaDomain.inc:666 +msgid "Disconnect users outside logon hours" +msgstr "Desconectar usuários quando expirarem seus horários de acesso" + +#: ../lib/modules/sambaSamAccount.inc:228 +#: ../lib/modules/sambaSamAccount.inc:1485 +#: ../lib/modules/sambaSamAccount.inc:1759 +msgid "Disconnection time limit" +msgstr "Tempo limite de desconexão" + +#: ../lib/modules/sambaDomain.inc:107 +msgid "Disconnects users if they are logged in outside logon hours." +msgstr "Desconectar usuários que estejam conectados fora de seu horário de acesso." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +msgid "Display format" +msgstr "Formato para mostrar" + +#: ../lib/modules/sambaSamAccount.inc:109 +#: ../lib/modules/sambaSamAccount.inc:200 +#: ../lib/modules/sambaSamAccount.inc:246 +#: ../lib/modules/sambaSamAccount.inc:404 +#: ../lib/modules/sambaSamAccount.inc:1121 +#: ../lib/modules/sambaSamAccount.inc:1716 +#: ../lib/modules/sambaGroupMapping.inc:263 +#: ../lib/modules/sambaGroupMapping.inc:323 +#: ../lib/modules/sambaGroupMapping.inc:356 +#: ../lib/modules/sambaGroupMapping.inc:392 +msgid "Display name" +msgstr "Nome para mostrar" + +#: ../templates/lists/changePassword.php:292 +msgid "Display on screen" +msgstr "Mostrar na tela" + +#: ../templates/3rdParty/pla/htdocs/create.php:97 +msgid "Display the created entry" +msgstr "Mostrar a entrada criada" + +#: ../lib/modules.inc:481 +msgid "Displayed account numbers start at \"0\". Add 2 to get the row in your spreadsheet." +msgstr "Os números de conta indicados começam em \"0\". Adicionar 2 para começar a linha em sua planilha. " + +#: ../lib/modules/passwordSelfReset.inc:122 +#: ../lib/modules/passwordSelfReset.inc:215 +msgid "Do not ask security question" +msgstr "Não use as perguntas de segurança" + +#: ../templates/ou_edit.php:112 +msgid "Do you really want to delete this OU?" +msgstr "Você quer realmente apagar esta OU? " + +#: ../templates/pdfedit/pdfmain.php:315 +msgid "Do you really want to delete this PDF structure?" +msgstr "Você quer realmente apagar esta estrutura PDF?" + +#: ../templates/profedit/profilemain.php:316 +msgid "Do you really want to delete this profile?" +msgstr "Você quer realmente apagar este perfil?" + +#: ../lib/modules/kolabUser.inc:450 +msgid "Do you really want to mark this account for deletion?" +msgstr "Você quer realmente marcar esta conta para ser apagada?" + +#: ../templates/delete.php:90 +msgid "Do you really want to remove the following accounts?" +msgstr "Você quer realmente apagar as seguintes contas?" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:59 +msgid "Do you want to create this entry?" +msgstr "Você quer realmente criar esta entrada ?" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:36 +msgid "Do you want to make these changes?" +msgstr "Você quer realmente aplicar estas alterações?" + +#: ../lib/modules/sambaSamAccount.inc:201 +#: ../lib/modules/sambaSamAccount.inc:324 +#: ../lib/modules/sambaSamAccount.inc:397 +#: ../lib/modules/sambaSamAccount.inc:521 +#: ../lib/modules/sambaSamAccount.inc:1242 +#: ../lib/modules/sambaSamAccount.inc:1590 +#: ../lib/modules/sambaSamAccount.inc:1612 +#: ../lib/modules/sambaSamAccount.inc:1734 +#: ../lib/modules/sambaGroupMapping.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:290 +#: ../lib/modules/sambaGroupMapping.inc:368 +#: ../lib/modules/sambaGroupMapping.inc:414 +#: ../lib/modules/nisnetgroup.inc:216 +#: ../lib/modules/nisnetgroup.inc:587 +msgid "Domain" +msgstr "Domínio" + +#: ../lib/modules/sambaSamAccount.inc:82 +msgid "Domain KRBTGT" +msgstr "Domínio KRBTGT" + +#: ../lib/types/smbDomain.inc:91 +#: ../lib/modules/sambaDomain.inc:74 +#: ../lib/modules/sambaDomain.inc:144 +#: ../lib/modules/sambaDomain.inc:178 +#: ../lib/modules/sambaDomain.inc:249 +#: ../lib/modules/sambaDomain.inc:254 +#: ../lib/modules/sambaDomain.inc:638 +msgid "Domain SID" +msgstr "SID do domínio" + +#: ../lib/modules/sambaGroupMapping.inc:335 +msgid "Domain administrators" +msgstr "Administradores do Domínio" + +#: ../lib/modules/sambaSamAccount.inc:77 +#: ../lib/modules/sambaSamAccount.inc:82 +#: ../lib/modules/sambaGroupMapping.inc:58 +#: ../lib/modules/sambaGroupMapping.inc:341 +msgid "Domain admins" +msgstr "Admins do Domínio" + +#: ../lib/modules/sambaSamAccount.inc:78 +#: ../lib/modules/sambaGroupMapping.inc:63 +msgid "Domain certificate admins" +msgstr "Admins certificados do domínio" + +#: ../lib/modules/sambaSamAccount.inc:78 +#: ../lib/modules/sambaSamAccount.inc:789 +#: ../lib/modules/sambaGroupMapping.inc:61 +msgid "Domain computers" +msgstr "Computadores do domínio" + +#: ../lib/modules/sambaSamAccount.inc:78 +#: ../lib/modules/sambaGroupMapping.inc:62 +msgid "Domain controllers" +msgstr "Controladores do domínio" + +#: ../lib/types/smbDomain.inc:167 +#, php-format +msgid "Domain count: %s" +msgstr "Contagem de domínios: %s" + +#: ../lib/modules/sambaSamAccount.inc:79 +#: ../lib/modules/sambaGroupMapping.inc:65 +msgid "Domain enterprise admins" +msgstr "Admins empresariais do domínio" + +#: ../lib/modules/sambaGroupMapping.inc:70 +#: ../lib/modules/sambaGroupMapping.inc:281 +msgid "Domain group" +msgstr "Grupo do domínio" + +#: ../lib/modules/sambaSamAccount.inc:77 +#: ../lib/modules/sambaSamAccount.inc:82 +#: ../lib/modules/sambaGroupMapping.inc:60 +msgid "Domain guests" +msgstr "Convidados do domínio" + +#: ../lib/types/smbDomain.inc:92 +#: ../lib/modules/dhcp_settings.inc:131 +#: ../lib/modules/dhcp_settings.inc:190 +#: ../lib/modules/dhcp_settings.inc:204 +#: ../lib/modules/dhcp_settings.inc:228 +#: ../lib/modules/dhcp_settings.inc:542 +#: ../lib/modules/dhcp_settings.inc:636 +#: ../lib/modules/nisnetgroup.inc:147 +#: ../lib/modules/sambaDomain.inc:70 +#: ../lib/modules/sambaDomain.inc:137 +#: ../lib/modules/sambaDomain.inc:177 +#: ../lib/modules/sambaDomain.inc:234 +#: ../lib/modules/sambaDomain.inc:239 +#: ../lib/modules/sambaDomain.inc:635 +msgid "Domain name" +msgstr "Nome do domínio" + +#: ../lib/modules/nisnetgroup.inc:147 +#: ../lib/modules/sambaDomain.inc:201 +#: ../lib/modules/sambaDomain.inc:202 +msgid "Domain name is invalid!" +msgstr "Nome do domínio inválido!" + +#: ../lib/modules/sambaSamAccount.inc:79 +#: ../lib/modules/sambaGroupMapping.inc:66 +msgid "Domain policy admins" +msgstr "Admins da política do domínio" + +#: ../lib/modules/sambaSamAccount.inc:79 +#: ../lib/modules/sambaGroupMapping.inc:64 +msgid "Domain schema admins" +msgstr "Admins da política do domínio" + +#: ../lib/modules/sambaSamAccount.inc:77 +#: ../lib/modules/sambaSamAccount.inc:2040 +#: ../lib/modules/sambaGroupMapping.inc:59 +msgid "Domain users" +msgstr "Usuários do domínio" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:43 +msgid "Don't stop on errors" +msgstr "Não parar quando existirem error" + +#: ../templates/pdfedit/pdfpage.php:461 +msgid "Down" +msgstr "Abaixo" + +#: ../templates/masscreate.php:249 +msgid "Download sample CSV file" +msgstr "Descarregar arquivo CSV de amostra" + +#: ../templates/serverInfo.php:124 +msgid "Dynamic subtrees" +msgstr "Subárvores dinâmicas" + +#: ../lib/modules/eduPerson.inc:65 +msgid "EDU person" +msgstr "Entidade EDU" + +#: ../lib/modules/selfRegistration.inc:119 +msgid "Each line represents one LDAP attribute. The options are separated by \"::\". The first option specifies if the attribute is mandatory. It can have the values \"optional\" and \"required\"." +msgstr "Cada linha representa um atributo LDAP. As opções são separados por \"::\". A primeira opção especifica se o atributo é mandatório. Poderá ter valores \"optional\" e \"required\"." + +#: ../lib/modules/sambaSamAccount.inc:559 +msgid "East Australian Standard, Guam" +msgstr "East Australian Standard, Guam" + +#: ../lib/modules/sambaSamAccount.inc:551 +msgid "Eastern Europe Time, South Africa" +msgstr "Eastern Europe Time, South Africa" + +#: ../lib/modules/sambaSamAccount.inc:544 +msgid "Eastern Time (US & Canada), Bogota" +msgstr "Eastern Time (US & Canada), Bogota" + +#: ../templates/pdfedit/pdfmain.php:193 +#: ../templates/profedit/profilemain.php:192 +#: ../lib/modules/sambaSamAccount.inc:1247 +#: ../lib/modules/sambaSamAccount.inc:1252 +#: ../lib/lists.inc:443 +msgid "Edit" +msgstr "Editar" + +#: ../lib/modules.inc:1287 +msgid "Edit again" +msgstr "Editar novamente" + +#: ../templates/config/mainmanage.php:134 +#: ../templates/config/index.php:99 +msgid "Edit general settings" +msgstr "Editar configurações gerais" + +#: ../lib/modules/posixAccount.inc:1125 +msgid "Edit groups" +msgstr "Editar grupos" + +#: ../lib/modules/posixGroup.inc:202 +msgid "Edit members" +msgstr "Editar membros" + +#: ../templates/config/index.php:125 +msgid "Edit self service" +msgstr "Editar auto serviço" + +#: ../templates/config/index.php:111 +msgid "Edit server profiles" +msgstr "Editar perfis de servidores" + +#: ../lib/modules/nisnetgroup.inc:201 +msgid "Edit subgroups" +msgstr "Editar subgrupos" + +#: ../lib/modules/sambaSamAccount.inc:1203 +msgid "Edit workstations" +msgstr "Editar estações de trabalho" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1872 +#: ../lib/types/zarafaDynamicGroupType.inc:92 +#: ../lib/types/user.inc:100 +#: ../lib/modules/zarafaDynamicGroup.inc:217 +#: ../lib/modules/zarafaDynamicGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:206 +#: ../lib/modules/zarafaGroup.inc:212 +msgid "Email" +msgstr "Correio Eletrônico" + +#: ../templates/lists/changePassword.php:258 +#: ../lib/modules/selfRegistration.inc:342 +#: ../lib/modules/selfRegistration.inc:417 +#: ../lib/modules/zarafaDynamicGroup.inc:60 +#: ../lib/modules/zarafaDynamicGroup.inc:61 +#: ../lib/modules/zarafaDynamicGroup.inc:113 +#: ../lib/modules/zarafaDynamicGroup.inc:155 +#: ../lib/modules/zarafaDynamicGroup.inc:174 +#: ../lib/modules/zarafaDynamicGroup.inc:449 +#: ../lib/modules/qmailUser.inc:192 +#: ../lib/modules/qmailUser.inc:292 +#: ../lib/modules/qmailUser.inc:399 +#: ../lib/modules/qmailUser.inc:441 +#: ../lib/modules/qmailUser.inc:485 +#: ../lib/modules/qmailUser.inc:1188 +#: ../lib/modules/zarafaGroup.inc:59 +#: ../lib/modules/zarafaGroup.inc:60 +#: ../lib/modules/zarafaGroup.inc:126 +#: ../lib/modules/zarafaGroup.inc:171 +#: ../lib/modules/zarafaGroup.inc:187 +#: ../lib/modules/zarafaGroup.inc:621 +#: ../lib/modules/inetOrgPerson.inc:61 +#: ../lib/modules/inetOrgPerson.inc:125 +#: ../lib/modules/inetOrgPerson.inc:177 +#: ../lib/modules/inetOrgPerson.inc:293 +#: ../lib/modules/inetOrgPerson.inc:475 +#: ../lib/modules/inetOrgPerson.inc:600 +#: ../lib/modules/inetOrgPerson.inc:730 +#: ../lib/modules/inetOrgPerson.inc:734 +#: ../lib/modules/inetOrgPerson.inc:1699 +#: ../lib/modules/inetOrgPerson.inc:2178 +#: ../lib/modules/inetOrgPerson.inc:2689 +#: ../lib/modules/asteriskVoicemail.inc:98 +#: ../lib/modules/asteriskVoicemail.inc:131 +#: ../lib/modules/asteriskVoicemail.inc:169 +#: ../lib/modules/asteriskVoicemail.inc:261 +#: ../lib/modules/asteriskVoicemail.inc:410 +#: ../lib/modules/imapAccess.inc:212 +#: ../lib/modules/passwordSelfReset.inc:676 +#: ../lib/modules/passwordSelfReset.inc:787 +msgid "Email address" +msgstr "Endereço de correio eletrônico" + +#: ../lib/modules/asteriskVoicemail.inc:99 +msgid "Email address for this voicemail account." +msgstr "Endereço de correio eletrônico para esta conta de caixa de correio de voz." + +#: ../lib/modules/zarafaContact.inc:73 +#: ../lib/modules/zarafaUser.inc:109 +#: ../lib/modules/kolabUser.inc:121 +msgid "Email alias" +msgstr "Apelido de E-Mail" + +#: ../lib/modules/zarafaContact.inc:74 +#: ../lib/modules/zarafaUser.inc:110 +#: ../lib/modules/kolabUser.inc:122 +msgid "Email alias for this account." +msgstr "Apelido de E-Mail para esta conta." + +#: ../lib/modules/zarafaContact.inc:157 +#: ../lib/modules/zarafaContact.inc:158 +#: ../lib/modules/zarafaUser.inc:420 +#: ../lib/modules/zarafaUser.inc:421 +#: ../lib/modules/kolabUser.inc:180 +msgid "Email alias is invalid!" +msgstr "Apelido de E-Mail inválido!" + +#: ../lib/modules/kolabUser.inc:125 +msgid "Email alias list" +msgstr "Lista de apelidos de E-Mail" + +#: ../lib/modules/kolabUser.inc:181 +msgid "Email alias list has invalid format!" +msgstr "Lista de apelidos de E-Mail está em um formato inválido!" + +#: ../lib/types/zarafaDynamicGroupType.inc:97 +#: ../lib/modules/zarafaDynamicGroup.inc:64 +#: ../lib/modules/zarafaDynamicGroup.inc:68 +#: ../lib/modules/zarafaDynamicGroup.inc:119 +#: ../lib/modules/zarafaDynamicGroup.inc:158 +#: ../lib/modules/zarafaDynamicGroup.inc:232 +#: ../lib/modules/zarafaDynamicGroup.inc:464 +#: ../lib/modules/zarafaContact.inc:118 +#: ../lib/modules/zarafaContact.inc:148 +#: ../lib/modules/zarafaContact.inc:178 +#: ../lib/modules/zarafaContact.inc:549 +#: ../lib/modules/zarafaGroup.inc:63 +#: ../lib/modules/zarafaGroup.inc:67 +#: ../lib/modules/zarafaGroup.inc:132 +#: ../lib/modules/zarafaGroup.inc:174 +#: ../lib/modules/zarafaGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:626 +#: ../lib/modules/zarafaUser.inc:182 +#: ../lib/modules/zarafaUser.inc:207 +#: ../lib/modules/zarafaUser.inc:389 +#: ../lib/modules/zarafaUser.inc:401 +#: ../lib/modules/zarafaUser.inc:446 +#: ../lib/modules/zarafaUser.inc:1344 +#: ../lib/modules/zarafaUser.inc:1571 +#: ../lib/modules/kolabUser.inc:153 +#: ../lib/modules/kolabUser.inc:168 +#: ../lib/modules/kolabUser.inc:275 +#: ../lib/modules/kolabUser.inc:648 +msgid "Email aliases" +msgstr "Apelidos de E-Mail" + +#: ../lib/modules/inetOrgPerson.inc:311 +#: ../lib/modules/inetOrgPerson.inc:371 +#: ../lib/modules/inetOrgPerson.inc:630 +#: ../lib/modules/inetOrgPerson.inc:834 +#: ../lib/modules/inetOrgPerson.inc:1763 +#: ../lib/modules/inetOrgPerson.inc:2189 +msgid "Employee number" +msgstr "Número do empregado" + +#: ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:195 +#: ../lib/modules/inetOrgPerson.inc:299 +#: ../lib/modules/inetOrgPerson.inc:379 +#: ../lib/modules/inetOrgPerson.inc:612 +#: ../lib/modules/inetOrgPerson.inc:662 +#: ../lib/modules/inetOrgPerson.inc:1768 +#: ../lib/modules/inetOrgPerson.inc:2167 +msgid "Employee type" +msgstr "Tipo de empregado" + +#: ../lib/modules/inetOrgPerson.inc:663 +msgid "Employee type: Contractor, Employee, Intern, Temp, External, ..." +msgstr "Tipo de empregado: Contratante, empregado, interno, temperatura, externa, …" + +#: ../templates/lists/changePassword.php:442 +#: ../templates/lists/changePassword.php:449 +#: ../templates/login.php:473 +msgid "Empty password submitted. Please try again." +msgstr "Senha vazia submetida. Por favor tente novamente." + +#: ../lib/modules/passwordSelfReset.inc:78 +#: ../lib/modules/passwordSelfReset.inc:162 +msgid "Enable password self reset link" +msgstr "Habilitar link para redefinição de senha" + +#: ../lib/modules/selfRegistration.inc:45 +#: ../lib/modules/selfRegistration.inc:92 +msgid "Enable self registration link" +msgstr "Habilitar link para registro de senha" + +#: ../lib/modules/ppolicy.inc:90 +msgid "Enables quality checking (e.g. password length) of passwords. If set to \"force\" then you need to disable password hashing in your LAM server profile to change passwords with LAM." +msgstr "Permite a verificação da qualidade (por exemplo, comprimento da senha) de senhas. Se definido como \"forçar\", então você precisa desativar a senha de hash no seu perfil do servidor LAM para alterar senhas com LAM." + +#: ../templates/3rdParty/pla/lib/export_functions.php:160 +msgid "Encountered an error while performing search." +msgstr "Foi encontrado um erro enquanto efetuava a pesquisa." + +#: ../lib/modules/imapAccess.inc:73 +#: ../lib/modules/imapAccess.inc:111 +msgid "Encryption protocol" +msgstr "Protocolo de criptografia" + +#: ../lib/modules/imapAccess.inc:74 +msgid "Encryption protocol for connecting to IMAP server. LAM requires an encrypted connection." +msgstr "Protocolo de criptografia para conexão com o servidor IMAP. LAM requer uma conexão criptografada." + +#: ../lib/modules/sambaSamAccount.inc:537 +msgid "Eniwetok, Kwajalein" +msgstr "Eniwetok, Kwajalein" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:91 +msgid "Enter the values you would like to add:" +msgstr "Entre com os valores que você gostaria de adicionar:" + +#: ../lib/modules/eduPerson.inc:106 +#: ../lib/modules/eduPerson.inc:110 +#: ../lib/modules/eduPerson.inc:174 +#: ../lib/modules/eduPerson.inc:205 +#: ../lib/modules/eduPerson.inc:336 +#: ../lib/modules/eduPerson.inc:682 +msgid "Entitlements" +msgstr "Direitos" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:471 +msgid "Entries found" +msgstr "Entradas encontradas" + +#: ../templates/serverInfo.php:269 +msgid "Entries sent" +msgstr "Entradas enviadas" + +#: ../templates/3rdParty/pla/lib/export_functions.php:473 +msgid "Entry" +msgstr "Entrada" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:43 +#, php-format +msgid "Entry %s and sub-tree deleted successfully." +msgstr "Entrada %s e sub-árvore apagada com sucesso." + +#: ../templates/3rdParty/pla/htdocs/create.php:90 +msgid "Entry created" +msgstr "Entrada criada" + +#: ../templates/delete.php:322 +#: ../templates/3rdParty/pla/htdocs/mass_update.php:26 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:26 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:27 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:24 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:56 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:33 +msgid "Entry does not exist" +msgstr "Entrada não existe" + +#: ../lib/modules/puppetClient.inc:73 +#: ../lib/modules/puppetClient.inc:77 +#: ../lib/modules/puppetClient.inc:121 +#: ../lib/modules/puppetClient.inc:146 +#: ../lib/modules/puppetClient.inc:154 +#: ../lib/modules/puppetClient.inc:232 +#: ../lib/modules/puppetClient.inc:422 +msgid "Environment" +msgstr "ambiente" + +#: ../templates/schema/schema.php:166 +msgid "Equality" +msgstr "Igualdade" + +#: ../lib/modules/zarafaUser.inc:532 +#: ../lib/modules/zarafaUser.inc:1295 +msgid "Equipment" +msgstr "Equipamento" + +#: ../templates/config/mainmanage.php:223 +#: ../templates/3rdParty/pla/lib/Template.php:430 +#: ../templates/3rdParty/pla/lib/Template.php:473 +#: ../templates/3rdParty/pla/lib/Template.php:517 +#: ../templates/3rdParty/pla/lib/functions.php:511 +#: ../templates/3rdParty/pla/lib/functions.php:513 +#: ../templates/3rdParty/pla/lib/ds_myldap.php:217 +#: ../templates/3rdParty/pla/htdocs/import.php:79 +msgid "Error" +msgstr "Erro" + +#: ../templates/3rdParty/pla/lib/functions.php:1897 +#: ../templates/3rdParty/pla/lib/functions.php:1901 +msgid "Error number" +msgstr "Número do erro" + +#: ../lib/modules/mitKerberos.inc:1169 +#: ../lib/modules/heimdalKerberos.inc:1035 +msgid "Error while changing Kerberos password." +msgstr "Erro na troca de senha do Kerberos." + +#: ../templates/delete.php:272 +#, php-format +msgid "Error while deleting DN: %s" +msgstr "Erro enquanto apagava o DN: %s" + +#: ../help/help.inc:139 +msgid "Every account type needs exactly one base module. This module provides a structural object class." +msgstr "Cada tipo de conta necessita exatamente um módulo base. Este módulo fornece uma classe estrutural do objeto." + +#: ../lib/modules/customScripts.inc:60 +#: ../lib/modules/customScripts.inc:73 +#: ../lib/modules/selfRegistration.inc:124 +#: ../lib/modules/zarafaContact.inc:87 +#: ../lib/modules/zarafaGroup.inc:89 +#: ../lib/modules/dhcp_settings.inc:539 +#: ../lib/modules/zarafaUser.inc:131 +#: ../help/help.inc:74 +#: ../help/help.inc:80 +#: ../help/help.inc:86 +#: ../help/help.inc:91 +#: ../help/help.inc:111 +msgid "Example" +msgstr "Exemplo" + +#: ../templates/masscreate.php:293 +#: ../templates/masscreate.php:368 +msgid "Example value" +msgstr "Valor de exemplo" + +#: ../help/help.inc:62 +msgid "Examples" +msgstr "Exemplos" + +#: ../templates/config/confmain.php:307 +msgid "Execute" +msgstr "Executar" + +#: ../templates/tests/lamdaemonTest.php:269 +msgid "Execute lamdaemon" +msgstr "Executar serviço LAM" + +#: ../lib/modules/freeRadius.inc:97 +#: ../lib/modules/freeRadius.inc:123 +#: ../lib/modules/freeRadius.inc:202 +#: ../lib/modules/freeRadius.inc:230 +#: ../lib/modules/freeRadius.inc:432 +#: ../lib/modules/freeRadius.inc:629 +msgid "Expiration date" +msgstr "Data de expiração" + +#: ../lib/modules/asteriskAccount.inc:202 +#: ../lib/modules/asteriskAccount.inc:291 +#: ../lib/modules/asteriskAccount.inc:353 +#: ../lib/modules/asteriskAccount.inc:556 +#: ../lib/modules/asteriskAccount.inc:896 +#: ../lib/modules/asteriskAccount.inc:1257 +msgid "Expiration timestamp" +msgstr "Data/hora de expiração" + +#: ../lib/modules/asteriskAccount.inc:203 +msgid "Expiration timestamp (\"regseconds\" option)." +msgstr "Data/hora de expiração (opção \"regseconds\")" + +#: ../lib/types/ppolicyType.inc:86 +#: ../lib/modules/ppolicy.inc:109 +#: ../lib/modules/ppolicy.inc:141 +#: ../lib/modules/ppolicy.inc:167 +#: ../lib/modules/ppolicy.inc:207 +#: ../lib/modules/ppolicy.inc:482 +msgid "Expire warning" +msgstr "Aviso de expiração" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1081 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1084 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:305 +#: ../templates/3rdParty/pla/htdocs/export_form.php:37 +#: ../templates/3rdParty/pla/htdocs/export_form.php:53 +msgid "Export" +msgstr "Exportar" + +#: ../templates/pdfedit/pdfmain.php:208 +#: ../templates/pdfedit/pdfmain.php:209 +#: ../help/help.inc:180 +msgid "Export PDF structure" +msgstr "Exportar estrutura PDF" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:105 +msgid "Export format" +msgstr "Exportar formato" + +#: ../templates/profedit/profilemain.php:206 +#: ../templates/profedit/profilemain.php:207 +#: ../help/help.inc:162 +msgid "Export profile" +msgstr "Exportar perfis" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Export subtree" +msgstr "Exportar sub-árvore" + +#: ../templates/pdfedit/pdfmain.php:114 +#: ../templates/profedit/profilemain.php:131 +msgid "Export successful" +msgstr "Exportação concluída com sucesso." + +#: ../templates/serverInfo.php:349 +msgid "Extended" +msgstr "Extendido" + +#: ../lib/types/asteriskExt.inc:143 +#, php-format +msgid "Extension count: %s" +msgstr "Contagem de extensões: %s" + +#: ../lib/types/asteriskExt.inc:94 +#: ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskExtension.inc:95 +#: ../lib/modules/asteriskExtension.inc:130 +#: ../lib/modules/asteriskExtension.inc:138 +#: ../lib/modules/asteriskExtension.inc:282 +#: ../lib/modules/asteriskExtension.inc:286 +#: ../lib/modules/asteriskExtension.inc:809 +msgid "Extension name" +msgstr "Nome da extensão" + +#: ../lib/modules/asteriskExtension.inc:107 +#: ../lib/modules/asteriskExtension.inc:131 +#: ../lib/modules/asteriskExtension.inc:152 +#: ../lib/modules/asteriskExtension.inc:226 +#: ../lib/modules/asteriskExtension.inc:474 +#: ../lib/modules/asteriskExtension.inc:812 +msgid "Extension owners" +msgstr "Proprietários da extensão" + +#: ../lib/modules/asteriskExtension.inc:183 +msgid "Extension with this name already exists." +msgstr "Já existe uma extensão com este nome cadastrada." + +#: ../templates/3rdParty/pla/htdocs/import.php:66 +msgid "Failed" +msgstr "Falhou" + +#: ../lib/modules/mitKerberos.inc:121 +#: ../lib/modules/mitKerberos.inc:240 +#: ../lib/modules/mitKerberos.inc:340 +#: ../lib/modules/mitKerberos.inc:767 +msgid "Failed logins" +msgstr "Logins que falharam" + +#: ../templates/initsuff.php:151 +msgid "Failed to create entry!" +msgstr "Falha ao criar entrada!" + +#: ../lib/profiles.inc:190 +#: ../lib/pdfstruct.inc:224 +msgid "Failed to export!" +msgstr "Falha ao exportar!" + +#: ../lib/profiles.inc:197 +#: ../lib/pdfstruct.inc:231 +msgid "Failed to import!" +msgstr "Falha ao importar!" + +#: ../lib/types/ppolicyType.inc:85 +#: ../lib/modules/ppolicy.inc:105 +#: ../lib/modules/ppolicy.inc:146 +#: ../lib/modules/ppolicy.inc:166 +#: ../lib/modules/ppolicy.inc:273 +#: ../lib/modules/ppolicy.inc:481 +msgid "Failure count interval" +msgstr "Contador de intervalo de falhas" + +#: ../lib/modules/inetOrgPerson.inc:59 +#: ../lib/modules/inetOrgPerson.inc:126 +#: ../lib/modules/inetOrgPerson.inc:174 +#: ../lib/modules/inetOrgPerson.inc:291 +#: ../lib/modules/inetOrgPerson.inc:467 +#: ../lib/modules/inetOrgPerson.inc:597 +#: ../lib/modules/inetOrgPerson.inc:722 +#: ../lib/modules/inetOrgPerson.inc:726 +#: ../lib/modules/inetOrgPerson.inc:1673 +#: ../lib/modules/inetOrgPerson.inc:2177 +#: ../lib/modules/inetOrgPerson.inc:2744 +msgid "Fax number" +msgstr "Número do Fax" + +#: ../lib/modules/zarafaUser.inc:140 +#: ../lib/modules/zarafaUser.inc:186 +#: ../lib/modules/zarafaUser.inc:395 +#: ../lib/modules/zarafaUser.inc:641 +#: ../lib/modules/zarafaUser.inc:1358 +#: ../lib/modules/zarafaUser.inc:1403 +msgid "Features" +msgstr "Características" + +#: ../templates/config/mainmanage.php:227 +#: ../templates/3rdParty/pla/lib/functions.php:533 +#: ../templates/3rdParty/pla/tools/unserialize.php:14 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "File" +msgstr "Arquivo" + +#: ../lib/modules/sambaSamAccount.inc:300 +msgid "File name and path relative to netlogon-share which should be executed on logon. $user and $group are replaced with user and group name." +msgstr "Nome e caminho relativo do arquivo para o compartilhamento netlogon, o qual deve ser executado no início de uma sessão. $user e $group serão substituídos com o nome de usuário ou grupo." + +#: ../lib/modules/zarafaServer.inc:69 +#: ../lib/modules/zarafaServer.inc:101 +#: ../lib/modules/zarafaServer.inc:126 +#: ../lib/modules/zarafaServer.inc:154 +#: ../lib/modules/zarafaServer.inc:196 +#: ../lib/modules/zarafaServer.inc:370 +msgid "File path" +msgstr "Caminho do arquivo" + +#: ../templates/masscreate.php:236 +#: ../lib/tools/fileUpload.inc:44 +#: ../lib/lists.inc:723 +msgid "File upload" +msgstr "Carga de arquivo" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +#: ../lib/types/zarafaAddressListType.inc:94 +#: ../lib/types/zarafaDynamicGroupType.inc:95 +#: ../lib/modules/zarafaDynamicGroup.inc:84 +#: ../lib/modules/zarafaDynamicGroup.inc:147 +#: ../lib/modules/zarafaDynamicGroup.inc:160 +#: ../lib/modules/zarafaDynamicGroup.inc:213 +#: ../lib/modules/zarafaDynamicGroup.inc:459 +#: ../lib/modules/zarafaContact.inc:81 +#: ../lib/modules/zarafaAddressList.inc:72 +#: ../lib/modules/zarafaAddressList.inc:123 +#: ../lib/modules/zarafaAddressList.inc:134 +#: ../lib/modules/zarafaAddressList.inc:181 +#: ../lib/modules/zarafaAddressList.inc:325 +#: ../lib/modules/zarafaUser.inc:125 +#: ../lib/modules/nisnetgroup.inc:97 +#: ../lib/modules/nisnetgroup.inc:470 +#: ../lib/lists.inc:351 +#: ../help/help.inc:150 +msgid "Filter" +msgstr "Filtro" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:509 +msgid "Filter performed" +msgstr "Filtro aplicado" + +#: ../lib/types/user.inc:96 +#: ../lib/modules/selfRegistration.inc:68 +#: ../lib/modules/selfRegistration.inc:125 +#: ../lib/modules/inetOrgPerson.inc:49 +#: ../lib/modules/inetOrgPerson.inc:124 +#: ../lib/modules/inetOrgPerson.inc:332 +#: ../lib/modules/inetOrgPerson.inc:554 +#: ../lib/modules/inetOrgPerson.inc:654 +#: ../lib/modules/inetOrgPerson.inc:1309 +#: ../lib/modules/inetOrgPerson.inc:2165 +#: ../lib/modules/inetOrgPerson.inc:2667 +msgid "First name" +msgstr "Primeiro nome" + +#: ../lib/modules/inetOrgPerson.inc:49 +#: ../lib/modules/inetOrgPerson.inc:50 +msgid "First name contains invalid characters!" +msgstr "Primeiro nome contém caracteres inválidos" + +#: ../lib/modules/inetOrgPerson.inc:655 +msgid "First name of user. Only letters, - and spaces are allowed." +msgstr "Primeiro nome do usuário. Somente letras, - e espaços são permitidos." + +#: ../lib/modules/ddns.inc:91 +msgid "Fix IP addresses" +msgstr "Fixar endereços IP" + +#: ../templates/config/confmain.php:396 +msgid "Fixed list" +msgstr "Lista fixa" + +#: ../lib/modules/kolabUser.inc:106 +msgid "For automatic invitation handling." +msgstr "Para a manipulação automática do convite." + +#: ../lib/modules/nisnetgroup.inc:94 +msgid "For the upload please specify the entries in the format \"(HOST,USER,DOMAIN)\". Multiple entries are separated by semicolon." +msgstr "Para o envio, especificar as entradas no formato \"(host, usuário, domínio)\". Múltiplas entradas são separadas por vírgula." + +#: ../templates/lists/changePassword.php:222 +#: ../lib/modules/mitKerberos.inc:172 +#: ../lib/modules/mitKerberos.inc:413 +#: ../lib/modules/shadowAccount.inc:358 +#: ../lib/modules/heimdalKerberos.inc:120 +#: ../lib/modules/heimdalKerberos.inc:340 +#: ../lib/modules.inc:1024 +#: ../help/help.inc:174 +msgid "Force password change" +msgstr "Forçar troca de senhas" + +#: ../lib/modules/passwordSelfReset.inc:619 +msgid "Forgot password?" +msgstr "esqueceu a senha?" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:484 +#: ../help/help.inc:212 +msgid "Format" +msgstr "Formato" + +#: ../lib/modules/qmailUser.inc:200 +#: ../lib/modules/qmailUser.inc:270 +#: ../lib/modules/qmailUser.inc:394 +#: ../lib/modules/qmailUser.inc:445 +#: ../lib/modules/qmailUser.inc:539 +#: ../lib/modules/qmailUser.inc:1196 +msgid "Forwarding address" +msgstr "Endereço de repasse" + +#: ../lib/modules/qmailUser.inc:201 +msgid "Forwards all incoming messages for this user to this address." +msgstr "Encaminha todas as mensagens recebidas para este usuário para este endereço." + +#: ../lib/modules/freeRadius.inc:67 +msgid "FreeRadius" +msgstr "FreeRadius" + +#: ../lib/modules/sambaSamAccount.inc:1338 +msgid "Friday" +msgstr "Sexta-feira " + +#: ../templates/config/confmain.php:331 +#: ../lib/modules/selfRegistration.inc:75 +#: ../lib/modules/selfRegistration.inc:131 +#: ../lib/modules/passwordSelfReset.inc:98 +#: ../lib/modules/passwordSelfReset.inc:191 +#: ../lib/modules/passwordSelfReset.inc:207 +#: ../help/help.inc:206 +msgid "From address" +msgstr "Endereços de origem" + +#: ../templates/config/confmain.php:488 +msgid "From address for password mails is invalid." +msgstr "Endereço de origem para mensagens sobre senha é inválido." + +#: ../lib/modules/asteriskAccount.inc:138 +#: ../lib/modules/asteriskAccount.inc:259 +#: ../lib/modules/asteriskAccount.inc:337 +#: ../lib/modules/asteriskAccount.inc:439 +#: ../lib/modules/asteriskAccount.inc:741 +#: ../lib/modules/asteriskAccount.inc:1209 +msgid "From domain" +msgstr "Domínio de origem" + +#: ../lib/modules/asteriskAccount.inc:139 +msgid "From domain setting for this account." +msgstr "Configuração de domínio de origem para esta conta." + +#: ../lib/modules/asteriskAccount.inc:134 +#: ../lib/modules/asteriskAccount.inc:257 +#: ../lib/modules/asteriskAccount.inc:336 +#: ../lib/modules/asteriskAccount.inc:432 +#: ../lib/modules/asteriskAccount.inc:732 +#: ../lib/modules/asteriskAccount.inc:1206 +msgid "From user" +msgstr "Usuário de origem" + +#: ../lib/modules/asteriskAccount.inc:135 +msgid "From user setting for this account." +msgstr "Configurações de usuário de origem para esta conta." + +#: ../lib/modules/asteriskAccount.inc:142 +#: ../lib/modules/asteriskAccount.inc:261 +#: ../lib/modules/asteriskAccount.inc:338 +#: ../lib/modules/asteriskAccount.inc:446 +#: ../lib/modules/asteriskAccount.inc:750 +#: ../lib/modules/asteriskAccount.inc:1212 +msgid "Full contact" +msgstr "Contato completo" + +#: ../templates/lists/changePassword.php:256 +#: ../lib/modules/asteriskVoicemail.inc:94 +#: ../lib/modules/asteriskVoicemail.inc:130 +#: ../lib/modules/asteriskVoicemail.inc:163 +#: ../lib/modules/asteriskVoicemail.inc:255 +#: ../lib/modules/asteriskVoicemail.inc:398 +msgid "Full name" +msgstr "Nome completo" + +#: ../lib/modules/asteriskVoicemail.inc:95 +msgid "Full name for Asterisk voicemail mailbox." +msgstr "Nome completo para caixa de correio de voz do Asterisk." + +#: ../templates/3rdParty/pla/lib/functions.php:537 +#: ../templates/3rdParty/pla/tools/unserialize.php:17 +msgid "Function" +msgstr "Função" + +#: ../lib/modules/inetOrgPerson.inc:413 +msgid "GB-12345" +msgstr "GB-12345" + +#: ../lib/types/host.inc:96 +#: ../lib/types/group.inc:93 +#: ../lib/types/user.inc:93 +#: ../lib/modules/qmailUser.inc:107 +#: ../lib/modules/qmailUser.inc:228 +#: ../lib/modules/qmailUser.inc:334 +#: ../lib/modules/qmailUser.inc:414 +#: ../lib/modules/qmailUser.inc:574 +#: ../lib/modules/qmailUser.inc:1204 +#: ../lib/modules/posixGroup.inc:188 +#: ../lib/modules/posixGroup.inc:344 +#: ../lib/modules/posixGroup.inc:357 +#: ../lib/modules/posixGroup.inc:399 +#: ../lib/modules/posixGroup.inc:419 +#: ../lib/modules/posixGroup.inc:472 +#: ../lib/modules/posixGroup.inc:496 +#: ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/posixAccount.inc:329 +#: ../lib/modules/posixAccount.inc:1481 +#: ../lib/modules/sambaGroupMapping.inc:321 +#: ../lib/modules/sambaGroupMapping.inc:390 +msgid "GID number" +msgstr "Número GID" + +#: ../lib/modules/posixGroup.inc:496 +msgid "GID number has changed. Please select checkbox to change GID number of users and hosts." +msgstr "Número GID foi alterado. Por favor selecione a caixa de checagem para alterar número GID de usuários e hosts." + +#: ../lib/modules/posixAccount.inc:109 +#, php-format +msgid "GID number has changed. To keep file ownership you have to run the following command as root: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" +msgstr "O número de GID mudou. Para manter a posse de dono do arquivo, você tem que executar o seguinte comando como o usuário root: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" + +#: ../lib/modules/posixGroup.inc:503 +msgid "GID number has to be a numeric value!" +msgstr "Número GID tem que ser um valor numérico!" + +#: ../lib/modules/qmailUser.inc:459 +msgid "GID number is already in use." +msgstr "GID já está em uso." + +#: ../lib/modules/posixAccount.inc:279 +#: ../lib/modules/posixAccount.inc:319 +#: ../lib/modules/posixAccount.inc:330 +#: ../lib/modules/posixAccount.inc:393 +#: ../lib/modules/posixAccount.inc:431 +#: ../lib/modules/posixAccount.inc:1113 +#: ../lib/modules/posixAccount.inc:1488 +msgid "Gecos" +msgstr "Gecos" + +#: ../lib/modules/generalInformation.inc:51 +msgid "General information" +msgstr "Informação Gerais" + +#: ../templates/config/confmodules.php:164 +#: ../templates/config/confmain.php:205 +#: ../templates/config/moduleSettings.php:163 +#: ../templates/config/conftypes.php:182 +#: ../templates/selfService/adminMain.php:388 +#: ../templates/profedit/profilepage.php:210 +msgid "General settings" +msgstr "Configurações gerais" + +#: ../templates/lists/changePassword.php:283 +#: ../help/help.inc:204 +msgid "Generate random password" +msgstr "Gerar uma senha aleatória" + +#: ../templates/3rdParty/pla/lib/functions.php:63 +#: ../templates/3rdParty/pla/lib/functions.php:595 +msgid "Generic Error" +msgstr "Erro genérico" + +#: ../templates/pdfedit/pdfmain.php:286 +#: ../templates/profedit/profilemain.php:286 +msgid "Global templates" +msgstr "Perfis globais" + +#: ../templates/schema/schema.php:128 +#: ../templates/schema/schema.php:265 +#: ../templates/schema/schema.php:296 +#: ../templates/schema/schema.php:321 +msgid "Go" +msgstr "Vai" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:215 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:139 +msgid "Go back" +msgstr "Voltar" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1864 +msgid "Go to" +msgstr "Ir para" + +#: ../lib/types/ppolicyType.inc:82 +#: ../lib/modules/ppolicy.inc:93 +#: ../lib/modules/ppolicy.inc:142 +#: ../lib/modules/ppolicy.inc:163 +#: ../lib/modules/ppolicy.inc:215 +#: ../lib/modules/ppolicy.inc:478 +msgid "Grace authentication limit" +msgstr "Tempo limite de autenticação" + +#: ../lib/modules/quota.inc:118 +#: ../lib/modules/quota.inc:396 +msgid "Grace block period" +msgstr "Período de tempo antes que o limite máximo de blocos seja imposto em um sistema de arquivo." + +#: ../lib/modules/quota.inc:119 +msgid "Grace block period. Most filesystems use a fixed maximum value of 7 days." +msgstr "Período de tempo antes que o limite máximo de blocos seja imposto em um sistema de arquivo. Muitos sistemas de arquivos usam um valor fixo máximo de 7 dias." + +#: ../lib/modules/quota.inc:141 +msgid "Grace inode (files) period. Most filesystems use a fixed maximum value of 7 days." +msgstr "Período de tempo antes que o limite máximo de nodos de arquivos seja imposto em um sistema de arquivo. Muitos sistemas de arquivos usam um valor fixo máximo de 7 dias." + +#: ../lib/modules/quota.inc:140 +#: ../lib/modules/quota.inc:400 +msgid "Grace inode period" +msgstr "Período de tempo antes que o limite máximo de nodos de arquivos seja imposto em um sistema de arquivo." + +#: ../templates/config/confmain.php:312 +#: ../templates/selfService/adminMain.php:563 +msgid "Group" +msgstr "Grupo" + +#: ../lib/types/group.inc:63 +msgid "Group accounts (e.g. Unix and Samba)" +msgstr "contas de grupo (Ex.: Unix e Samba)" + +#: ../lib/types/gon.inc:180 +#: ../lib/types/zarafaDynamicGroupType.inc:165 +#: ../lib/types/group.inc:204 +#: ../lib/types/netgroup.inc:169 +#, php-format +msgid "Group count: %s" +msgstr "Contagem de grupos: %s" + +#: ../lib/types/group.inc:96 +#: ../lib/modules/posixGroup.inc:390 +#: ../lib/modules/nisnetgroup.inc:113 +msgid "Group description" +msgstr "Descrição do grupo" + +#: ../lib/modules/posixGroup.inc:404 +msgid "Group description. If left empty group name will be used." +msgstr "Descrição do grupo. Caso não forneça, será usado um nome de grupo vazio." + +#: ../lib/types/gon.inc:92 +#: ../lib/types/gon.inc:93 +#: ../lib/types/group.inc:95 +msgid "Group member DNs" +msgstr "DN's membros do grupo" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:94 +#: ../lib/types/group.inc:94 +#: ../lib/modules/posixGroup.inc:201 +#: ../lib/modules/posixGroup.inc:251 +#: ../lib/modules/posixGroup.inc:345 +#: ../lib/modules/posixGroup.inc:363 +#: ../lib/modules/posixGroup.inc:407 +#: ../lib/modules/posixGroup.inc:411 +#: ../lib/modules/posixGroup.inc:473 +msgid "Group members" +msgstr "Membros do grupo" + +#: ../lib/types/gon.inc:91 +#: ../lib/types/zarafaDynamicGroupType.inc:91 +#: ../lib/types/group.inc:92 +#: ../lib/types/netgroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:56 +#: ../lib/modules/zarafaDynamicGroup.inc:105 +#: ../lib/modules/zarafaDynamicGroup.inc:154 +#: ../lib/modules/zarafaDynamicGroup.inc:169 +#: ../lib/modules/zarafaDynamicGroup.inc:170 +#: ../lib/modules/zarafaDynamicGroup.inc:194 +#: ../lib/modules/zarafaDynamicGroup.inc:444 +#: ../lib/modules/posixGroup.inc:178 +#: ../lib/modules/posixGroup.inc:348 +#: ../lib/modules/posixGroup.inc:378 +#: ../lib/modules/posixGroup.inc:427 +#: ../lib/modules/posixGroup.inc:471 +#: ../lib/modules/posixGroup.inc:504 +#: ../lib/modules/posixGroup.inc:505 +#: ../lib/modules/posixGroup.inc:506 +#: ../lib/modules/nisnetgroup.inc:76 +#: ../lib/modules/nisnetgroup.inc:105 +#: ../lib/modules/nisnetgroup.inc:132 +#: ../lib/modules/nisnetgroup.inc:144 +#: ../lib/modules/nisnetgroup.inc:186 +#: ../lib/modules/nisnetgroup.inc:575 +#: ../lib/modules/groupOfNames.inc:60 +#: ../lib/modules/groupOfNames.inc:92 +#: ../lib/modules/groupOfNames.inc:129 +#: ../lib/modules/groupOfNames.inc:528 +msgid "Group name" +msgstr "Nome do grupo" + +#: ../lib/modules/zarafaDynamicGroup.inc:169 +msgid "Group name already in use." +msgstr "Nome do grupo já está em uso." + +#: ../lib/modules/zarafaDynamicGroup.inc:170 +#: ../lib/modules/zarafaDynamicGroup.inc:171 +#: ../lib/modules/posixGroup.inc:506 +#: ../lib/modules/posixGroup.inc:507 +#: ../lib/modules/nisnetgroup.inc:144 +msgid "Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !" +msgstr "Nome do grupo contém caracteres inválidos. Os caracteres válidos são: a-z, A-Z, 0-9 e .-_ !" + +#: ../lib/modules/posixGroup.inc:505 +msgid "Group name in use. Selected next free group name." +msgstr "Nome do grupo já está em uso. Selecione o próximo nome de grupo livre." + +#: ../lib/modules/zarafaDynamicGroup.inc:57 +msgid "Group name of the group which should be created. Valid characters are: a-z, A-Z, 0-9 and .-_ ." +msgstr "Nome do grupo, que deve ser criado. Os caracteres válidos são: a-z, A-Z, 0-9 e .-_ !" + +#: ../lib/modules/posixGroup.inc:428 +msgid "Group name of the group which should be created. Valid characters are: a-z, A-Z, 0-9 and .-_ . If group name is already used group name will be expanded with a number. The next free number will be used." +msgstr "Nome do grupo para o grupo que deve ser criado. Os caracteres válidos são: a-z, 0-9,. - _. Se o nome de grupo já existir, o nome de grupo será expandido com um número. O número livre seguinte será usado." + +#: ../lib/modules/freeRadius.inc:89 +#: ../lib/modules/freeRadius.inc:93 +#: ../lib/modules/freeRadius.inc:121 +#: ../lib/modules/freeRadius.inc:147 +#: ../lib/modules/freeRadius.inc:178 +#: ../lib/modules/freeRadius.inc:227 +#: ../lib/modules/freeRadius.inc:281 +#: ../lib/modules/freeRadius.inc:626 +msgid "Group names" +msgstr "Nomes dos grupos" + +#: ../lib/types/gon.inc:53 +#: ../lib/modules/posixAccount.inc:287 +#: ../lib/modules/posixAccount.inc:339 +#: ../lib/modules/posixAccount.inc:1246 +#: ../lib/modules/posixAccount.inc:1392 +#: ../lib/modules/posixAccount.inc:1498 +#: ../lib/modules/groupOfNamesUser.inc:47 +#: ../lib/modules/groupOfNamesUser.inc:49 +#: ../lib/modules/groupOfNamesUser.inc:53 +#: ../lib/modules/groupOfNamesUser.inc:57 +#: ../lib/modules/groupOfNamesUser.inc:64 +#: ../lib/modules/groupOfNamesUser.inc:253 +#: ../lib/modules/groupOfNamesUser.inc:289 +#: ../lib/modules/groupOfNames.inc:44 +msgid "Group of names" +msgstr "Grupo de nomes" + +#: ../lib/types/gon.inc:62 +msgid "Group of names accounts" +msgstr "Grupo de nomes de contas" + +#: ../lib/modules/groupOfUniqueNames.inc:42 +msgid "Group of unique names" +msgstr "Grupo de nomes únicos" + +#: ../lib/modules/posixGroup.inc:369 +#: ../lib/modules/posixGroup.inc:415 +msgid "Group password" +msgstr "Senha do grupo" + +#: ../lib/modules/sambaGroupMapping.inc:286 +msgid "Group type" +msgstr "Tipo do grupo" + +#: ../lib/types/group.inc:54 +#: ../lib/modules/posixGroup.inc:315 +#: ../lib/modules/zarafaGroup.inc:105 +#: ../lib/modules/generalInformation.inc:103 +msgid "Groups" +msgstr "Grupos" + +#: ../lib/modules/dhcp_settings.inc:97 +msgid "H-Node (0x08)" +msgstr "Nó H (0x08)" + +#: ../templates/config/confmain.php:344 +#: ../lib/modules/selfRegistration.inc:81 +#: ../lib/modules/passwordSelfReset.inc:195 +#: ../lib/modules/passwordSelfReset.inc:211 +#: ../help/help.inc:215 +msgid "HTML format" +msgstr "Formato HTML" + +#: ../templates/config/confmain.php:423 +#: ../templates/selfService/adminMain.php:420 +#: ../help/help.inc:120 +msgid "HTTP authentication" +msgstr "Autenticação HTTP" + +#: ../lib/modules/zarafaServer.inc:61 +#: ../lib/modules/zarafaServer.inc:89 +#: ../lib/modules/zarafaServer.inc:124 +#: ../lib/modules/zarafaServer.inc:150 +#: ../lib/modules/zarafaServer.inc:172 +#: ../lib/modules/zarafaServer.inc:360 +msgid "HTTP port" +msgstr "Porta HTTP" + +#: ../lib/modules/quota.inc:627 +#: ../lib/modules/systemQuotas.inc:377 +msgid "Hard block" +msgstr "Bloco absoluto" + +#: ../lib/modules/quota.inc:112 +#: ../lib/modules/quota.inc:113 +#: ../lib/modules/quota.inc:395 +#: ../lib/modules/quota.inc:500 +#: ../lib/modules/systemQuotas.inc:119 +msgid "Hard block limit" +msgstr "Limite de bloco absoluto" + +#: ../lib/modules/quota.inc:629 +#: ../lib/modules/systemQuotas.inc:379 +msgid "Hard inode" +msgstr "Nodo absoluto" + +#: ../lib/modules/quota.inc:135 +msgid "Hard inode (files) limit" +msgstr "Limite absoluto de nodos (arquivos)" + +#: ../lib/modules/quota.inc:134 +#: ../lib/modules/quota.inc:399 +#: ../lib/modules/quota.inc:502 +#: ../lib/modules/systemQuotas.inc:123 +msgid "Hard inode limit" +msgstr "Limite absoluto de nodos" + +#: ../lib/modules/generalInformation.inc:97 +msgid "Has subentries" +msgstr "Possui sub-entradas" + +#: ../lib/modules/sambaSamAccount.inc:539 +msgid "Hawaii" +msgstr "Hawaii" + +#: ../templates/pdfedit/pdfpage.php:447 +#: ../templates/pdfedit/pdfpage.php:540 +#: ../templates/pdfedit/pdfpage.php:547 +msgid "Headline" +msgstr "Cabeçalho" + +#: ../lib/modules/heimdalKerberos.inc:223 +msgid "Heimdal Kerberos password change command" +msgstr "Comando de troca de senha Kerberos Heimdal" + +#: ../templates/main_header.php:138 +#: ../lib/modules.inc:646 +msgid "Help" +msgstr "Ajuda" + +#: ../lib/tools/schemaBrowser.inc:53 +msgid "Here you can browse LDAP object classes and attributes." +msgstr "Aqui você pode visualizar os objetos de LDAP, classes e atributos. " + +#: ../lib/modules/sambaSamAccount.inc:379 +msgid "Here you can change the settings for the terminal server access." +msgstr "Aqui você pode alterar as configurações para o acesso ao servidor de terminal." + +#: ../lib/selfService.inc:367 +msgid "Here you can change your personal settings." +msgstr "Aqui você pode alterar suas configurações pessoais." + +#: ../templates/masscreate.php:128 +msgid "Here you can create multiple accounts by providing a CSV file." +msgstr "Aqui você pode criar contas múltiplas fornecendo um arquivo de CSV." + +#: ../lib/modules/dhcp_settings.inc:184 +msgid "Here you can enter a description for this DHCP entry." +msgstr "Aqui você pode entrar com a descrição para esta entrada DHCP." + +#: ../lib/modules/nisnetgroup.inc:81 +#: ../lib/modules/groupOfNames.inc:65 +msgid "Here you can enter a description for this group." +msgstr "Aqui você pode entrar com a descrição para este grupo." + +#: ../lib/modules/sudoRole.inc:60 +msgid "Here you can enter a description for this role." +msgstr "Aqui você pode entrar com a descrição para esta regra." + +#: ../lib/modules/zarafaContact.inc:82 +#: ../lib/modules/zarafaUser.inc:126 +#: ../lib/modules/nisnetgroup.inc:98 +msgid "Here you can enter a filter value. Only entries which contain the filter text will be shown." +msgstr "Aqui você pode inserir um valor de filtro. Apenas as entradas que contenham o texto do filtro serão mostradas." + +#: ../lib/modules/posixAccount.inc:369 +#: ../lib/modules/groupOfNamesUser.inc:58 +msgid "Here you can enter a list of additional group memberships. The group names are separated by commas." +msgstr "Aqui você pode entrar com uma lista de membros adicionais para grupos. Os nomes de grupos devem estar separados por ponto e vírgula." + +#: ../lib/modules/device.inc:59 +msgid "Here you can enter a serial number for this device." +msgstr "Aqui você pode entrar com o número de série para este dispositivo." + +#: ../lib/modules/customFields.inc:69 +msgid "Here you can enter one or more object classes (separated by comma). This will allow you to add/remove the group's attributes including their object classes." +msgstr "Aqui você pode entrar com uma ou mais classes de objetos (separados por vírgula). Isso permitirá que você adicione / remova atributos do grupo, incluindo suas classes de objetos." + +#: ../lib/modules/inetOrgPerson.inc:803 +#: ../lib/modules/inetOrgPerson.inc:807 +msgid "Here you can enter the user's department." +msgstr "Aqui você pode informar os usuários do departamento." + +#: ../lib/modules/zarafaUser.inc:141 +msgid "Here you can explicitly enable and disable Zarafa features." +msgstr "Digite um texto ou endereço de um site ou traduza um documento.CancelarTradução do inglês para portuguêsportuguêsinglêsespanholAqui você pode explicitamente habilitar e desabilitar recursos Zarafa." + +#: ../help/help.inc:181 +msgid "Here you can export PDF structures to other server profiles (overwrite existing). You may also export a structure to the global templates. In this case it will always be copied to all server profiles that do not yet have a structure with this name." +msgstr "Aqui você pode exportar estruturas PDF para outros perfis de servidor (substituir existente). Você também pode exportar uma estrutura para os modelos globais. Neste caso, ele vai sempre ser copiado para todos os perfis de servidores que ainda não possuem uma estrutura com este nome." + +#: ../help/help.inc:163 +msgid "Here you can export account profiles to other server profiles (overwrite existing). You may also export a profile to the global templates. In this case it will always be copied to all server profiles that do not yet have a profile with this name." +msgstr "Aqui você pode exportar perfis de conta para outros perfis de servidores (substituir existente). Você também pode exportar um perfil para os modelos globais. Neste caso, ele vai sempre ser copiado para todos os perfis de servidores que ainda não possuem um perfil com este nome." + +#: ../help/help.inc:179 +msgid "Here you can import PDF structures from other server profiles (overwrite existing)." +msgstr "Aqui você pode importar estruturas PDF a partir de perfis de outro servidor (substituir existente)." + +#: ../help/help.inc:161 +msgid "Here you can import account profiles from other server profiles (overwrite existing)." +msgstr "Aqui você pode importar perfis de conta de outros perfis de servidor (substituir existente)." + +#: ../help/help.inc:151 +msgid "Here you can input simple filter expressions (e.g. 'value' or 'v*'). The filter is case-sensitive." +msgstr "Aqui você pode entrar com pequenas expressões de filtro (Ex.: 'valor' ou 'v*'). O LAM irá filtrar de forma sensitiva a caso, maiúsculo ou minúsculo." + +#: ../help/help.inc:167 +msgid "Here you can load an account profile to set default settings for your account. The \"default\" profile is automatically loaded for new accounts." +msgstr "Aqui você pode carregar um perfil de conta para definir como padrão para suas contas. O perfil \"padrão\" é automaticamente carregado para novas contas." + +#: ../lib/tools/profileEditor.inc:53 +msgid "Here you can manage your account profiles." +msgstr "Aqui você pode gerenciar seus perfis de conta." + +#: ../help/help.inc:169 +msgid "Here you can select a PDF structure and export the account to a PDF file." +msgstr "Aqui você pode selecionar uma estrutura PDF e exportar a conta para um arquivo PDF." + +#: ../help/help.inc:145 +msgid "Here you can select where LAM should save its log messages. System logging will go to Syslog on Unix systems and event log on Windows. You can also select an extra file." +msgstr "Aqui você pode selecionar onde o LAM deve conservar suas mensagens de registro. Registro do sistema irá ao Syslog em sistemas Unix e no log de eventos de início de uma sessão Windows. Você pode também selecionar um arquivo extra." + +#: ../help/help.inc:106 +msgid "Here you can select which plugins you want to use for account management." +msgstr "Aqui você pode selecionar que \"Plugins\" você quer usar para a gerência de contas. " + +#: ../help/help.inc:119 +msgid "Here you can set a limit for LDAP searches. This will restrict the number of results for LDAP searches. Please use this if LAM's LDAP queries produce too much load." +msgstr "Aqui você pode definir um limite para as consultas LDAP. Isto vai restringir o número de resultados para pesquisas LDAP. Utilize isto se as consultas LDAP produzir demasiada carga de processamento." + +#: ../help/help.inc:203 +msgid "Here you can specify additional CSS links to change the layout of the self service pages. This is useful to adapt them to your corporate design. Please enter one link per line." +msgstr "Aqui você pode especificar links adicionais CSS para alterar o layout das páginas de serviços. Isso é útil para adaptá-los ao seu design corporativo. Por favor, indique um link por linha." + +#: ../help/help.inc:149 +msgid "Here you can specify minimum requirements for passwords. The character classes are: lowercase, uppercase, numeric and symbols." +msgstr "Aqui você pode especificar o número mínimo dos caracteres para uma senha do usuário. Estes caracteres poderão ser letras maiúsculas e minúsculas, números e símbolos." + +#: ../lib/modules/nisnetgroup.inc:85 +msgid "Here you can specify subgroups which are included in this NIS netgroup. All members of the subgroups will be treated as members of this group." +msgstr "Aqui você pode especificar os subgrupos que estão incluídos neste grupo de rede NIS. Todos os membros dos subgrupos serão tratados como membros deste grupo." + +#: ../help/help.inc:123 +msgid "Here you can specify the DN and password of the bind user that will be used for the LDAP search. This is required if your LDAP server does not allow anonymous access." +msgstr "Você pode especificar o DN e a senha do usuário que será usado para fazer pesquisas no LDAP. Isto é requerido se seu servidor LDAP não suportar pesquisa de acesso anônimo." + +#: ../lib/modules/hostObject.inc:73 +msgid "Here you can specify the list of host names where this account has login privileges. The wildcard \"*\" represents all hosts. You may also use \"!\" in front of a host name to deny access to a host." +msgstr "Aqui você pode especificar a lista de nomes de host em que essa conta tem privilégios de login. O curinga \"* \" representa todos os hosts. Você também pode usar \"! \" Na frente de um nome de host para negar acesso a um host." + +#: ../lib/modules/sambaDomain.inc:95 +msgid "Here you can specify the minimum number of characters for a user password." +msgstr "Aqui você pode especificar o número mínimo dos caracteres para uma senha do usuário. " + +#: ../templates/lists/changePassword.php:311 +msgid "Here you can specify the new password yourself." +msgstr "Aqui você pode especificar sua nova senha de usuário. " + +#: ../lib/modules/sambaSamAccount.inc:370 +msgid "Here you can specify the shadowing mode." +msgstr "Aqui você pode especificar o modo de sombreamento." + +#: ../lib/tools/tests.inc:53 +msgid "Here you can test if certain LAM features work on your installation." +msgstr "Aqui você pode testar se determinadas características do LAM estão habilitadas em sua instalação. " + +#: ../lib/types/zarafaAddressListType.inc:95 +#: ../lib/types/zarafaDynamicGroupType.inc:96 +#: ../lib/modules/zarafaDynamicGroup.inc:72 +#: ../lib/modules/zarafaDynamicGroup.inc:125 +#: ../lib/modules/zarafaDynamicGroup.inc:157 +#: ../lib/modules/zarafaDynamicGroup.inc:247 +#: ../lib/modules/zarafaDynamicGroup.inc:474 +#: ../lib/modules/zarafaContact.inc:61 +#: ../lib/modules/zarafaContact.inc:138 +#: ../lib/modules/zarafaContact.inc:146 +#: ../lib/modules/zarafaContact.inc:217 +#: ../lib/modules/zarafaContact.inc:537 +#: ../lib/modules/zarafaGroup.inc:75 +#: ../lib/modules/zarafaGroup.inc:146 +#: ../lib/modules/zarafaGroup.inc:173 +#: ../lib/modules/zarafaGroup.inc:262 +#: ../lib/modules/zarafaGroup.inc:646 +#: ../lib/modules/zarafaAddressList.inc:60 +#: ../lib/modules/zarafaAddressList.inc:101 +#: ../lib/modules/zarafaAddressList.inc:132 +#: ../lib/modules/zarafaAddressList.inc:189 +#: ../lib/modules/zarafaAddressList.inc:335 +#: ../lib/modules/zarafaUser.inc:65 +#: ../lib/modules/zarafaUser.inc:309 +#: ../lib/modules/zarafaUser.inc:358 +#: ../lib/modules/zarafaUser.inc:386 +#: ../lib/modules/zarafaUser.inc:580 +#: ../lib/modules/zarafaUser.inc:1332 +msgid "Hidden" +msgstr "Oculto" + +#: ../lib/modules/asteriskAccount.inc:234 +#: ../lib/modules/asteriskAccount.inc:245 +#: ../lib/modules/qmailUser.inc:95 +#: ../lib/modules/qmailUser.inc:188 +#: ../lib/modules/zarafaGroup.inc:98 +#: ../lib/modules/zarafaGroup.inc:107 +#: ../lib/modules/sambaSamAccount.inc:384 +#: ../lib/modules/sambaSamAccount.inc:574 +#: ../lib/modules/zarafaUser.inc:117 +#: ../lib/modules/zarafaUser.inc:160 +#: ../lib/modules/inetOrgPerson.inc:261 +#: ../lib/modules/inetOrgPerson.inc:810 +#: ../lib/modules/freeRadius.inc:105 +#: ../lib/modules/freeRadius.inc:111 +#: ../lib/modules/zarafaServer.inc:81 +#: ../lib/modules/zarafaServer.inc:136 +msgid "Hidden options" +msgstr "Opções ocultas" + +#: ../templates/config/confmain.php:357 +msgid "Hidden tools" +msgstr "Ferramentas ocultas" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1115 +msgid "Hide" +msgstr "Ocultar" + +#: ../lib/modules/customScripts.inc:81 +#: ../lib/modules/customScripts.inc:91 +#: ../lib/modules/customScripts.inc:100 +msgid "Hide command in messages" +msgstr "Ocultar o comando nas mensagens" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1116 +msgid "Hide internal attributes" +msgstr "Esconder atributos internos" + +#: ../templates/3rdParty/pla/lib/page.php:407 +msgid "Hide/Unhide the tree" +msgstr "Ocultar/Mostrar a árvore" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:58 +msgid "Hint" +msgstr "Sugestão" + +#: ../templates/masscreate.php:242 +msgid "Hint: Format all cells as text in your spreadsheet program and turn off auto correction." +msgstr "Dica: Formate todas as células como texto em seu programa de planilha eletrônica e desligue a auto correção." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1005 +msgid "Hint: To delete an attribute, empty the text field and click save." +msgstr "dica: Para apagar um atributo, deixe o campo de texto vazio e clique em salvar." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1342 +msgid "Hint: You must choose exactly one structural object class (shown in bold above)" +msgstr "Sugestão: Você pode escolher exatamente uma classe de objeto estrutural (mostrado em negrito acima)" + +#: ../lib/modules/posixAccount.inc:418 +#: ../lib/modules/groupOfNamesUser.inc:54 +msgid "Hold the CTRL-key to (de)select multiple groups." +msgstr "Segure a tecla CTRL para (de)selecionar grupos múltiplos." + +#: ../lib/types/user.inc:98 +#: ../lib/modules/sambaSamAccount.inc:221 +#: ../lib/modules/sambaSamAccount.inc:342 +#: ../lib/modules/sambaSamAccount.inc:1463 +#: ../lib/modules/sambaSamAccount.inc:1748 +#: ../lib/modules/posixAccount.inc:84 +#: ../lib/modules/posixAccount.inc:85 +#: ../lib/modules/posixAccount.inc:87 +#: ../lib/modules/posixAccount.inc:243 +#: ../lib/modules/posixAccount.inc:333 +#: ../lib/modules/posixAccount.inc:372 +#: ../lib/modules/posixAccount.inc:376 +#: ../lib/modules/posixAccount.inc:380 +#: ../lib/modules/posixAccount.inc:401 +#: ../lib/modules/posixAccount.inc:898 +#: ../lib/modules/posixAccount.inc:1128 +#: ../lib/modules/posixAccount.inc:1299 +#: ../lib/modules/posixAccount.inc:1399 +#: ../lib/modules/posixAccount.inc:1484 +msgid "Home directory" +msgstr "Diretório/pasta padrão do usuário" + +#: ../lib/modules/posixAccount.inc:87 +#, php-format +msgid "Home directory changed. To keep home directory you have to run the following command as root: 'mv %s %s'" +msgstr "Diretório/pasta padrão do usuário alterado. Para manter o diretório/pasta padrão você tem que executar o seguinte comando como usuário root: 'mv %s %s'" + +#: ../lib/modules/sambaSamAccount.inc:205 +#: ../lib/modules/sambaSamAccount.inc:222 +#: ../lib/modules/sambaSamAccount.inc:290 +#: ../lib/modules/sambaSamAccount.inc:471 +#: ../lib/modules/sambaSamAccount.inc:579 +#: ../lib/modules/sambaSamAccount.inc:1176 +#: ../lib/modules/sambaSamAccount.inc:1471 +#: ../lib/modules/sambaSamAccount.inc:1566 +#: ../lib/modules/sambaSamAccount.inc:1722 +#: ../lib/modules/sambaSamAccount.inc:1749 +msgid "Home drive" +msgstr "Unidade padrão do usuário" + +#: ../lib/modules/sambaSamAccount.inc:92 +#: ../lib/modules/sambaSamAccount.inc:93 +#: ../lib/modules/sambaSamAccount.inc:208 +#: ../lib/modules/sambaSamAccount.inc:293 +#: ../lib/modules/sambaSamAccount.inc:479 +#: ../lib/modules/sambaSamAccount.inc:581 +#: ../lib/modules/sambaSamAccount.inc:1184 +#: ../lib/modules/sambaSamAccount.inc:1570 +#: ../lib/modules/sambaSamAccount.inc:1719 +msgid "Home path" +msgstr "Caminho padrão do usuário" + +#: ../lib/modules/sambaSamAccount.inc:92 +#: ../lib/modules/sambaSamAccount.inc:94 +msgid "Home path is invalid." +msgstr "Caminho padrão do usuário inválido." + +#: ../lib/modules/zarafaUser.inc:114 +msgid "Home server for the user." +msgstr "Servidor particular para o usuário." + +#: ../lib/modules/inetOrgPerson.inc:55 +#: ../lib/modules/inetOrgPerson.inc:128 +#: ../lib/modules/inetOrgPerson.inc:287 +#: ../lib/modules/inetOrgPerson.inc:451 +#: ../lib/modules/inetOrgPerson.inc:591 +#: ../lib/modules/inetOrgPerson.inc:758 +#: ../lib/modules/inetOrgPerson.inc:762 +#: ../lib/modules/inetOrgPerson.inc:1621 +#: ../lib/modules/inetOrgPerson.inc:2175 +#: ../lib/modules/inetOrgPerson.inc:2722 +msgid "Home telephone number" +msgstr "Número do telefone residencial" + +#: ../lib/modules/posixAccount.inc:84 +#: ../lib/modules/posixAccount.inc:86 +msgid "Homedirectory contains invalid characters." +msgstr "Diretório/pasta padrão do usuário contém caracteres inválidos." + +#: ../lib/types/sudo.inc:79 +#: ../lib/modules/asteriskAccount.inc:98 +#: ../lib/modules/asteriskAccount.inc:316 +#: ../lib/modules/asteriskAccount.inc:330 +#: ../lib/modules/asteriskAccount.inc:380 +#: ../lib/modules/asteriskAccount.inc:663 +#: ../lib/modules/asteriskAccount.inc:1190 +#: ../lib/modules/nisnetgroup.inc:210 +#: ../lib/modules/nisnetgroup.inc:585 +#: ../lib/modules/hostObject.inc:143 +msgid "Host" +msgstr "Host" + +#: ../lib/types/host.inc:62 +msgid "Host accounts (e.g. Samba)" +msgstr "Contas de hosts (Ex.: Samba)" + +#: ../lib/types/host.inc:186 +#, php-format +msgid "Host count: %s" +msgstr "Contagem de hosts: %s" + +#: ../lib/types/host.inc:94 +msgid "Host description" +msgstr "Descrição do host" + +#: ../lib/modules/account.inc:89 +#: ../lib/modules/posixAccount.inc:432 +#: ../lib/modules/posixAccount.inc:440 +msgid "Host description. If left empty host name will be used." +msgstr "Descrição do host. Caso deixe em braco, um nome de host vazio será usado." + +#: ../lib/modules/hostObject.inc:84 +#: ../lib/modules/hostObject.inc:91 +#: ../lib/modules/hostObject.inc:256 +msgid "Host list" +msgstr "Lista de hosts" + +#: ../lib/types/host.inc:91 +#: ../lib/types/host.inc:92 +#: ../lib/modules/account.inc:84 +#: ../lib/modules/account.inc:209 +#: ../lib/modules/posixAccount.inc:99 +#: ../lib/modules/posixAccount.inc:100 +#: ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/posixAccount.inc:298 +#: ../lib/modules/posixAccount.inc:427 +#: ../lib/modules/nisnetgroup.inc:146 +#: ../lib/modules/nisnetgroup.inc:474 +msgid "Host name" +msgstr "Nome do host (Ex.: MEU_SERVIDOR)" + +#: ../lib/modules/posixAccount.inc:106 +msgid "Host name already exists!" +msgstr "Nome do host já existe!" + +#: ../lib/modules/posixAccount.inc:100 +#: ../lib/modules/posixAccount.inc:104 +#: ../lib/modules/nisnetgroup.inc:146 +msgid "Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !" +msgstr "Nome do host contém caracteres inválidos. Os caracteres válidos são: a-z, A-Z, 0-9 e .-_ !" + +#: ../lib/modules/posixAccount.inc:102 +msgid "Host name in use. Selected next free host name." +msgstr "Nome de host está em uso. Será selecionado o próximo nome de host." + +#: ../lib/modules/sambaSamAccount.inc:1076 +msgid "Host name must end with $!" +msgstr "Nome do host deve terminar com \"$\" !" + +#: ../lib/modules/account.inc:85 +#: ../lib/modules/posixAccount.inc:428 +msgid "Host name of the host which should be created. Valid characters are: a-z,A-Z,0-9, .-_$. Host names are always ending with $. If last character is not $ it will be added. If host name is already used host name will be expanded with a number. The next free number will be used." +msgstr "Nome de host para o host que deve ser criado. Os caracteres válidos são: a-z, 0-9, .- _$. Os nomes de host devem terminar sempre com $. Se o último caracter não for $ adicionar-se-á. Se o nome de host já estiver sendo usado, o nome de host será expandido com um número. O número livre seguinte será usado." + +#: ../lib/types/host.inc:53 +#: ../lib/modules/posixAccount.inc:79 +#: ../lib/modules/posixAccount.inc:80 +#: ../lib/modules/posixAccount.inc:82 +#: ../lib/modules/posixAccount.inc:188 +#: ../lib/modules/sudoRole.inc:67 +#: ../lib/modules/sudoRole.inc:92 +#: ../lib/modules/sudoRole.inc:140 +#: ../lib/modules/sudoRole.inc:174 +#: ../lib/modules/sudoRole.inc:183 +#: ../lib/modules/sudoRole.inc:291 +#: ../lib/modules/sudoRole.inc:690 +#: ../lib/modules/fixed_ip.inc:70 +#: ../lib/modules/hostObject.inc:62 +#: ../lib/modules/hostObject.inc:72 +msgid "Hosts" +msgstr "Hosts" + +#: ../lib/modules/qmailUser.inc:345 +msgid "I am out of office." +msgstr "Eu estou fora do escritório." + +#: ../lib/modules/posixGroup.inc:499 +#: ../lib/modules/posixAccount.inc:90 +#: ../lib/modules/posixAccount.inc:868 +msgid "ID is already in use" +msgstr "ID já está em uso." + +#: ../lib/modules/posixGroup.inc:497 +#: ../lib/modules/posixGroup.inc:498 +#: ../lib/modules/posixGroup.inc:499 +#: ../lib/modules/posixGroup.inc:597 +#: ../lib/modules/posixAccount.inc:88 +#: ../lib/modules/posixAccount.inc:89 +#: ../lib/modules/posixAccount.inc:90 +#: ../lib/modules/posixAccount.inc:866 +#: ../lib/modules/posixAccount.inc:868 +msgid "ID-Number" +msgstr "Número ID" + +#: ../lib/modules/zarafaUser.inc:318 +#: ../lib/modules/zarafaUser.inc:645 +#: ../lib/modules/zarafaUser.inc:1407 +msgid "IMAP" +msgstr "IMAP" + +#: ../lib/modules/imapAccess.inc:79 +#: ../lib/modules/imapAccess.inc:115 +msgid "IMAP admin user" +msgstr "Usuário administrador do IMAP" + +#: ../lib/modules/imapAccess.inc:82 +#: ../lib/modules/imapAccess.inc:118 +msgid "IMAP password input" +msgstr "Informação de senha IMAP" + +#: ../lib/types/dhcp.inc:96 +#: ../lib/modules/ipHost.inc:48 +#: ../lib/modules/ipHost.inc:58 +#: ../lib/modules/ipHost.inc:127 +#: ../lib/modules/asteriskAccount.inc:218 +#: ../lib/modules/asteriskAccount.inc:299 +#: ../lib/modules/asteriskAccount.inc:357 +#: ../lib/modules/asteriskAccount.inc:584 +#: ../lib/modules/asteriskAccount.inc:936 +#: ../lib/modules/asteriskAccount.inc:1269 +#: ../lib/modules/freeRadius.inc:77 +#: ../lib/modules/freeRadius.inc:115 +#: ../lib/modules/freeRadius.inc:186 +#: ../lib/modules/freeRadius.inc:218 +#: ../lib/modules/freeRadius.inc:305 +#: ../lib/modules/freeRadius.inc:617 +#: ../lib/modules/fixed_ip.inc:94 +#: ../lib/modules/fixed_ip.inc:343 +#: ../lib/modules/fixed_ip.inc:523 +msgid "IP address" +msgstr "Endereços IP" + +#: ../lib/modules/ddns.inc:104 +#: ../lib/modules/ddns.inc:118 +#: ../lib/modules/ddns.inc:127 +#: ../lib/modules/ddns.inc:366 +#: ../lib/modules/ddns.inc:409 +msgid "IP address of the DNS server" +msgstr "Endereço IP do servidor DNS" + +#: ../lib/modules/asteriskAccount.inc:219 +msgid "IP address of the peer. Valid only for realtime peers." +msgstr "Endereço IP do ponto. Válido somente para pontos em tempo real." + +#: ../lib/modules/asteriskAccount.inc:227 +msgid "IP address or domain name of the registration server." +msgstr "Endereço IP ou domínio do servidor de registro." + +#: ../lib/modules/ipHost.inc:62 +#: ../lib/modules/ipHost.inc:77 +#: ../lib/modules/ipHost.inc:97 +#: ../lib/modules/ipHost.inc:309 +msgid "IP addresses" +msgstr "Endereços IP" + +#: ../lib/modules/fixed_ip.inc:98 +msgid "IP list" +msgstr "Lista de endereços IP" + +#: ../templates/masscreate.php:289 +#: ../templates/masscreate.php:364 +msgid "Identifier" +msgstr "Identificador" + +#: ../lib/modules/sambaSamAccount.inc:229 +#: ../lib/modules/sambaSamAccount.inc:1489 +#: ../lib/modules/sambaSamAccount.inc:1760 +msgid "Idle time limit" +msgstr "Limite de tempo ocioso" + +#: ../lib/modules/freeRadius.inc:101 +#: ../lib/modules/freeRadius.inc:125 +#: ../lib/modules/freeRadius.inc:150 +#: ../lib/modules/freeRadius.inc:210 +#: ../lib/modules/freeRadius.inc:233 +#: ../lib/modules/freeRadius.inc:321 +#: ../lib/modules/freeRadius.inc:632 +msgid "Idle timeout" +msgstr "Limite de tempo ocioso" + +#: ../lib/modules/qmailUser.inc:249 +msgid "If account status is set to deleted, the earliest date when the mail message store including all remaining content will be deleted from the filesystem." +msgstr "Se o status de conta é definida como excluído, a data mais antiga quando o armazenamento de mensagens de correio incluindo todo o conteúdo restante será excluído do sistema de arquivos." + +#: ../lib/modules/ppolicyUser.inc:53 +msgid "If activated then the user is forced to change his password at the next login." +msgstr "Se você marcar esta opção, o usuário terá que alterar a senha no próximo logon." + +#: ../lib/modules/sambaSamAccount.inc:256 +msgid "If checked Unix password will also be used as Samba password." +msgstr "Caso esteja marcado, a senha Unix será usado como a senha Samba." + +#: ../lib/modules/posixAccount.inc:410 +msgid "If checked account will be deactivated by putting a \"!\" before the encrypted password." +msgstr "Caso esteja marcado, a conta será desativada colocando um \"!\" antes da senha criptografada." + +#: ../lib/modules/sambaSamAccount.inc:262 +msgid "If checked no password will be used." +msgstr "Caso esteja marcado, será usado a conta sem senha." + +#: ../lib/modules/sambaSamAccount.inc:268 +msgid "If checked password does not expire. (Setting X-Flag)" +msgstr "Caso esteja marcado, a senha nunca expira (define atributo X)." + +#: ../lib/modules/sambaSamAccount.inc:274 +msgid "If checked then the account will be deactivated. (Setting D-Flag)" +msgstr "Caso esteja marcado, a conta será desativada (define atributo D)." + +#: ../lib/modules/sambaSamAccount.inc:277 +msgid "If checked then the account will be locked (setting L-Flag). You usually want to use this setting to unlock user accounts which were locked because of failed login attempts." +msgstr "Caso esteja marcado, a conta será bloqueada (define atributo L). Você usualmente poderá usar essa propriedade para desbloquear contas que forem bloqueadas por tentativas de início de sessão com senhas erradas pelo usuário." + +#: ../lib/modules/posixGroup.inc:400 +msgid "If empty GID number will be generated automaticly depending on your configuration settings." +msgstr "Caso deixe o número GID vazio, será gerado automaticamente um dependendo da configuração do LAM." + +#: ../lib/modules/qmailUser.inc:229 +msgid "If empty GID number will be generated automaticly." +msgstr "Caso deixe vazio, será gerado automaticamente um número GID." + +#: ../lib/modules/qmailUser.inc:225 +#: ../lib/modules/posixAccount.inc:361 +msgid "If empty UID number will be generated automaticly." +msgstr "Caso deixe vazio, será gerado automaticamente um número UID." + +#: ../lib/modules/ppolicy.inc:118 +msgid "If enabled the user will not be allowed to login after there have been a specified number of consecutive failed login attempts." +msgstr "Se ativado o usuário não será permitido entrar depois que houver um número especificado de tentativas consecutivas de login falhas." + +#: ../help/help.inc:121 +msgid "If enabled then LAM will use user and password that is provided by the web server via HTTP authentication." +msgstr "Se ativado, então LAM vai usar usuário e senha que é fornecida pelo servidor de web através de autenticação HTTP." + +#: ../lib/modules/ppolicy.inc:122 +msgid "If enabled users must change their passwords when they first login after a password is set or reset by the administrator." +msgstr "Se os usuários habilitados devem alterar suas senhas de login, depois de uma senha ser definida ou redefinida pelo administrador." + +#: ../lib/modules/asteriskAccount.inc:207 +msgid "If registration context is specified, Asterisk will dynamically create and destroy a NoOp priority 1 extension for a given peer who registers or unregisters with Asterisk." +msgstr "Se o contexto de registro é especificado, o Asterisk dinamicamente cria e destrói uma extensão NoOp de prioridade 1 para um dado ponto que se registra ou cancela o registro com o Asterisk." + +#: ../lib/modules/sambaDomain.inc:103 +msgid "If set then users need to login to change their password." +msgstr "Se habilitado, os usuários deverão iniciar uma sessão para alterar suas senhas." + +#: ../lib/modules/sambaSamAccount.inc:259 +msgid "If set to \"true\" Unix password will also be used as Samba password." +msgstr "Se habilitado, a senha Unix será usada como a senha Samba." + +#: ../lib/modules/sambaSamAccount.inc:280 +msgid "If set to \"true\" account will be deactivated. (Setting D-Flag)" +msgstr "Se habilitado, a conta será desativada (define atributo D)." + +#: ../lib/modules/sambaSamAccount.inc:265 +msgid "If set to \"true\" no password will be used." +msgstr "Se habilitado, será usado a conta de usuário sem senha." + +#: ../lib/modules/sambaSamAccount.inc:271 +msgid "If set to \"true\" password does not expire. (Setting X-Flag)" +msgstr "Se habilitado, a senha nunca expira (define atributo X)." + +#: ../lib/modules/customFields.inc:109 +msgid "If the LDAP attribute has no value then the checkbox is set to this value." +msgstr "Se p atributo LDAP não possuir nehum valor então a caixa de verificação será atribuída com este valor." + +#: ../lib/modules/zarafaUser.inc:82 +msgid "If the mailbox size reaches the soft quota limit, the user will not be able to send email until the size of the mailbox is reduced." +msgstr "Se o tamanho da caixa de correio atinge o limite de quota soft, o usuário não será capaz de enviar e-mail até que o tamanho da caixa de correio seja reduzido." + +#: ../lib/modules/sambaSamAccount.inc:319 +msgid "If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "Se você deixar em branco, LAM usará: uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../lib/modules/zarafaServer.inc:78 +msgid "If you run Zarafa behind a reverse proxy then you can specify the server URL here (e.g. \"https://zproxy.example.com:237/z1\")." +msgstr "Se você executar o Zarafa por trás de um proxy reverso, então você pode especificar a URL do servidor aqui (por exemplo \"https://zproxy.example.com:237/z1\")." + +#: ../lib/modules/passwordSelfReset.inc:123 +msgid "If you select this option then the user is only authenticated by his email address. LAM Pro will not ask for the answer to the security question. Please handle with care." +msgstr "Se você selecionar esta opção o usuário será autenticado somente por este endereço de correio eletrônico. LAM Pro não irá questionar sobre a pergunta de segurança. Por favor use com cuidado." + +#: ../lib/modules/heimdalKerberos.inc:124 +msgid "If you set this option then the user cannot request TGT-based tickets." +msgstr "Se você definir essa opção, então o usuário não poderá solicitar bilhetes baseados em TGT." + +#: ../lib/modules/mitKerberos.inc:164 +#: ../lib/modules/heimdalKerberos.inc:142 +msgid "If you set this option then the user cannot request any tickets." +msgstr "Se você definir essa opção, então o usuário não poderá solicitar nenhum bilhete." + +#: ../lib/modules/mitKerberos.inc:152 +#: ../lib/modules/heimdalKerberos.inc:127 +msgid "If you set this option then the user cannot request forwardable tickets." +msgstr "Se você definir essa opção, então o usuário não poderá solicitar bilhetes baseados em repasse." + +#: ../lib/modules/mitKerberos.inc:149 +#: ../lib/modules/heimdalKerberos.inc:136 +msgid "If you set this option then the user cannot request post-dated tickets." +msgstr "Se você definir essa opção, então o usuário não poderá solicitar bilhetes pós-datados." + +#: ../lib/modules/mitKerberos.inc:158 +#: ../lib/modules/heimdalKerberos.inc:130 +msgid "If you set this option then the user cannot request proxiable tickets." +msgstr "Se você definir essa opção, então o usuário não poderá solicitar bilhetes baseados em proxy." + +#: ../lib/modules/mitKerberos.inc:155 +#: ../lib/modules/heimdalKerberos.inc:133 +msgid "If you set this option then the user cannot request renewable tickets." +msgstr "Se você definir essa opção, então o usuário não poderá solicitar bilhetes renováveis." + +#: ../lib/modules/mitKerberos.inc:176 +#: ../lib/modules/heimdalKerberos.inc:139 +msgid "If you set this option then the user cannot request service tickets." +msgstr "Se você definir essa opção, então o usuário não poderá solicitar bilhetes de serviços." + +#: ../lib/modules/mitKerberos.inc:173 +#: ../lib/modules/sambaSamAccount.inc:283 +#: ../lib/modules/heimdalKerberos.inc:121 +#: ../help/help.inc:175 +msgid "If you set this option then the user has to change his password at the next login." +msgstr "Se você marcar esta opção, o usuário terá que alterar a senha no próximo login." + +#: ../lib/modules/mitKerberos.inc:170 +msgid "If you set this option then the user must preauthenticate himself using a hardware device." +msgstr "Se você definir essa opção, o usuário deve se pré-autenticado usando um dispositivo de hardware." + +#: ../lib/modules/mitKerberos.inc:167 +#: ../lib/modules/heimdalKerberos.inc:145 +msgid "If you set this option then the user must preauthenticate himself." +msgstr "Se você marcar esta opção, o usuário terá que pré-autenticar a si mesmo." + +#: ../lib/modules/mitKerberos.inc:179 +#: ../lib/modules/heimdalKerberos.inc:148 +msgid "If you set this option then this account is marked as password change service." +msgstr "Se você marcar esta opção, esta conta estará marcada para alteração de senha." + +#: ../lib/modules/selfRegistration.inc:128 +msgid "If you use the object class \"inetOrgPerson\" and do not provide the \"cn\" attribute then LAM will set it to the user name value." +msgstr "Se você usar a classe de objeto \"inetOrgPerson\" e não fornecer o atributo \"cn\", o LAM irá configurá-lo para o valor do nome do usuário." + +#: ../help/help.inc:100 +msgid "If you want to change the current preferences password, please enter it here." +msgstr "Se você quiser mudar a senha atual das preferências, favor digitá-la aqui." + +#: ../help/help.inc:135 +msgid "If you want to change your master configuration password, please enter it here." +msgstr "Se você quiser mudar a senha mestre de configuração, favor digitá-la aqui." + +#: ../lib/modules/sambaGroupMapping.inc:361 +msgid "If you want to use a well known RID you can select a well known group." +msgstr "Se você quiser usar um RID bem conhecido, você pode selecionar um grupo bem conhecido." + +#: ../help/help.inc:110 +msgid "If your server runs on another port then add a comma and the port number after the server." +msgstr "Se o servidor é executado em outra porta, então, adicione uma vírgula e o número da porta após o servidor." + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:49 +msgid "Image not available" +msgstr "Imagem não disponível" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:292 +#: ../templates/3rdParty/pla/htdocs/import.php:45 +#: ../templates/3rdParty/pla/htdocs/import_form.php:19 +msgid "Import" +msgstr "Importar" + +#: ../templates/pdfedit/pdfmain.php:202 +#: ../templates/pdfedit/pdfmain.php:203 +#: ../help/help.inc:178 +msgid "Import PDF structures" +msgstr "Importar estruturas PDF" + +#: ../templates/profedit/profilemain.php:200 +#: ../templates/profedit/profilemain.php:201 +#: ../help/help.inc:160 +msgid "Import profiles" +msgstr "Importar perfis" + +#: ../templates/pdfedit/pdfmain.php:106 +#: ../templates/profedit/profilemain.php:123 +msgid "Import successful" +msgstr "Importado com sucesso!" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:87 +msgid "Include system attributes" +msgstr "Incluir atributos de sistemas" + +#: ../lib/tools/serverInfo.inc:53 +msgid "Information about the LDAP server." +msgstr "Informação sobre o servidor LDAP." + +#: ../lib/modules/sambaSamAccount.inc:224 +#: ../lib/modules/sambaSamAccount.inc:348 +#: ../lib/modules/sambaSamAccount.inc:1475 +#: ../lib/modules/sambaSamAccount.inc:1755 +msgid "Inherit client startup configuration" +msgstr "Herdar configurações de inicialização do cliente" + +#: ../templates/schema/schema.php:396 +#: ../templates/schema/schema.php:417 +msgid "Inherited from" +msgstr "Herdado de" + +#: ../templates/schema/schema.php:157 +#: ../templates/schema/schema.php:353 +msgid "Inherits from" +msgstr "Herdar de" + +#: ../lib/modules/sambaSamAccount.inc:225 +#: ../lib/modules/sambaSamAccount.inc:351 +#: ../lib/modules/sambaSamAccount.inc:1477 +#: ../lib/modules/sambaSamAccount.inc:1756 +msgid "Initial program" +msgstr "Programa inicial" + +#: ../lib/modules/inetOrgPerson.inc:130 +#: ../lib/modules/inetOrgPerson.inc:138 +#: ../lib/modules/inetOrgPerson.inc:313 +#: ../lib/modules/inetOrgPerson.inc:347 +#: ../lib/modules/inetOrgPerson.inc:633 +#: ../lib/modules/inetOrgPerson.inc:838 +#: ../lib/modules/inetOrgPerson.inc:1318 +#: ../lib/modules/inetOrgPerson.inc:2190 +#: ../lib/modules/inetOrgPerson.inc:2914 +msgid "Initials" +msgstr "Iniciais" + +#: ../templates/serverInfo.php:282 +#: ../templates/serverInfo.php:368 +msgid "Initiated" +msgstr "Iniciado" + +#: ../lib/modules/quota.inc:57 +#: ../lib/modules/systemQuotas.inc:98 +msgid "Inode hard quota" +msgstr "Quota absoluta de nodos" + +#: ../lib/modules/quota.inc:57 +#: ../lib/modules/quota.inc:58 +#: ../lib/modules/systemQuotas.inc:98 +#: ../lib/modules/systemQuotas.inc:99 +msgid "Inode hard quota contains invalid characters. Only natural numbers are allowed." +msgstr "Quota absoluta de nodos contém caracteres inválidos. Somente números naturais são permitidos." + +#: ../lib/modules/quota.inc:61 +#: ../lib/modules/systemQuotas.inc:102 +msgid "Inode quota" +msgstr "Quota de nodos" + +#: ../lib/modules/quota.inc:55 +#: ../lib/modules/systemQuotas.inc:96 +msgid "Inode soft quota" +msgstr "Quota máxima de nodos" + +#: ../lib/modules/quota.inc:55 +#: ../lib/modules/quota.inc:56 +#: ../lib/modules/systemQuotas.inc:96 +#: ../lib/modules/systemQuotas.inc:97 +msgid "Inode soft quota contains invalid characters. Only natural numbers are allowed." +msgstr "Quota máxima de nodos contém caracteres inválidos. Somente números naturais são permitidos." + +#: ../lib/modules/quota.inc:61 +#: ../lib/modules/quota.inc:62 +#: ../lib/modules/systemQuotas.inc:102 +#: ../lib/modules/systemQuotas.inc:103 +msgid "Inode soft quota must be smaller than inode hard quota." +msgstr "Quota máxima de nodos deve ser menor que a quota absoluta de nodos." + +#: ../templates/selfService/adminMain.php:578 +msgid "Input fields" +msgstr "Campos de entrada" + +#: ../lib/modules/asteriskAccount.inc:146 +#: ../lib/modules/asteriskAccount.inc:263 +#: ../lib/modules/asteriskAccount.inc:339 +#: ../lib/modules/asteriskAccount.inc:453 +#: ../lib/modules/asteriskAccount.inc:763 +#: ../lib/modules/asteriskAccount.inc:1215 +msgid "Insecure" +msgstr "Inseguro" + +#: ../lib/modules/sambaSamAccount.inc:93 +msgid "Inserted user or group name in home path." +msgstr "Nome de usuário ou grupo inserido no caminho padrão." + +#: ../lib/modules/sambaSamAccount.inc:99 +msgid "Inserted user or group name in logon script." +msgstr "Nome de usuário ou grupo inserido no script de início de sessão." + +#: ../lib/modules/sambaSamAccount.inc:96 +msgid "Inserted user or group name in profile path." +msgstr "Nome de usuário ou grupo inserido no caminho de perfil de sessão." + +#: ../lib/modules/fixed_ip.inc:380 +msgid "Invalid MAC address." +msgstr "Endereço MAC inválido" + +#: ../templates/massBuildAccounts.php:178 +msgid "Invalid RDN attribute!" +msgstr "Atributo RDN inválido!" + +#: ../templates/3rdParty/pla/htdocs/rename.php:42 +msgid "Invalid RDN value" +msgstr "Valor para RDN inválido!" + +#: ../lib/modules/sambaGroupMapping.inc:75 +msgid "Invalid account" +msgstr "Conta inválida" + +#: ../templates/3rdParty/pla/lib/import_functions.php:560 +msgid "Invalid entry" +msgstr "Entrada inválida" + +#: ../lib/modules/selfRegistration.inc:150 +msgid "Invalid format for the specification of additional attributes." +msgstr "Formato inválido para a especificação de atributos adicionais." + +#: ../lib/modules/imapAccess.inc:165 +msgid "Invalid password for IMAP admin or other problem occured." +msgstr "Problema de senha inválida para o administrador IMAP ou outro problema ocorrido." + +#: ../lib/modules/kolabUser.inc:98 +#: ../lib/modules/kolabUser.inc:105 +#: ../lib/modules/kolabUser.inc:140 +#: ../lib/modules/kolabUser.inc:166 +#: ../lib/modules/kolabUser.inc:240 +#: ../lib/modules/kolabUser.inc:638 +#: ../lib/modules/kolabUser.inc:766 +msgid "Invitation policy" +msgstr "Política de convite" + +#: ../lib/modules/kolabUser.inc:109 +msgid "Invitation policy list" +msgstr "Lista de políticas de convite" + +#: ../lib/modules/sambaSamAccount.inc:554 +msgid "Islamabad, Karachi" +msgstr "Islamabad, Karachi" + +#: ../lib/modules/range.inc:109 +msgid "It is not possible to delete all ranges." +msgstr "Não é possível apagar todos os intervalos." + +#: ../lib/modules/posixGroup.inc:497 +#: ../lib/modules/posixAccount.inc:89 +msgid "It is possible that this ID-number is reused. This can cause several problems because files with old permissions might still exist. To avoid this warning set maxUID to a higher value." +msgstr "É possível que este ID seja reutilizado. Isto pode causar diversos problemas porque os arquivos com permissões velhas podem continuar a existir. Para evitar isso, ajuste o maxUID para um valor mais elevado." + +#: ../lib/modules/inetOrgPerson.inc:71 +#: ../lib/modules/inetOrgPerson.inc:130 +#: ../lib/modules/inetOrgPerson.inc:192 +#: ../lib/modules/inetOrgPerson.inc:295 +#: ../lib/modules/inetOrgPerson.inc:363 +#: ../lib/modules/inetOrgPerson.inc:606 +#: ../lib/modules/inetOrgPerson.inc:650 +#: ../lib/modules/inetOrgPerson.inc:1753 +#: ../lib/modules/inetOrgPerson.inc:2164 +#: ../lib/modules/inetOrgPerson.inc:2925 +msgid "Job title" +msgstr "Título do trabalho " + +#: ../lib/modules/inetOrgPerson.inc:651 +msgid "Job title of user: President, department manager, ..." +msgstr "Título do trabalho do usuário: Presidente, gerente de departamento, ..." + +#: ../lib/lists.inc:288 +msgid "Jump 10 pages backward" +msgstr "Saltar 10 páginas para trás" + +#: ../lib/lists.inc:308 +msgid "Jump 10 pages forward" +msgstr "Saltar 10 páginas para frente" + +#: ../templates/schema/schema.php:255 +msgid "Jump to a matching rule" +msgstr "Saltar para uma regra combinada" + +#: ../templates/schema/schema.php:114 +msgid "Jump to an attribute type" +msgstr "Saltar para um tipo de atributo" + +#: ../templates/schema/schema.php:308 +#: ../templates/schema/schema.php:358 +#: ../templates/schema/schema.php:373 +msgid "Jump to an object class" +msgstr "Saltar para uma classe de objetos" + +#: ../lib/lists.inc:283 +msgid "Jump to first page" +msgstr "Saltar para a primeira página" + +#: ../lib/lists.inc:313 +msgid "Jump to last page" +msgstr "Saltar para a última página" + +#: ../lib/modules/mitKerberos.inc:87 +#: ../lib/modules/heimdalKerberos.inc:74 +msgid "Kerberos" +msgstr "Kerberos" + +#: ../lib/modules/kolabUser.inc:73 +msgid "Kolab" +msgstr "Kolab" + +#: ../lib/modules/posixGroup.inc:436 +msgid "LAM checks if the entered group name and GID are unique. Here you can enter the LDAP suffix that is used to search for duplicates. By default the account type suffix is used. You only need to change this if you use multiple server profiles with different OUs but need unique group names or GIDs." +msgstr "LAM checará se o nome de grupo e o GID são únicos. Aqui você poderá informar o sufixo LDAP que será usado para procurar por duplicatas. Por padrão, o sufixo de tipo conta é usado. Você somente precisará alterar isto se você usar múltiplos perfis de servidores com diferentes unidades organizacionais, mas que necessitem de nomes grupos ou GIDs únicos." + +#: ../lib/modules/posixAccount.inc:385 +msgid "LAM checks if the entered user name and UID are unique. Here you can enter the LDAP suffix that is used to search for duplicates. By default the account type suffix is used. You only need to change this if you use multiple server profiles with different OUs but need unique user names or UIDs." +msgstr "LAM checa se o nome de usuário e UID são únicos. Aqui você pode informar o sufixo LDAP que será usado para pesquisar por duplicatas. Por padrão, o sufixo do tipo conta é usado. Você somente precisará alterar isto se você usar múltiplos perfis de servidores com diferentes unidades organizacionais, mas que necessitem de nomes de usuário ou UIds únicos." + +#: ../templates/login.php:239 +#: ../templates/config/index.php:85 +msgid "LAM configuration" +msgstr "Configuração LAM" + +#: ../templates/massBuildAccounts.php:215 +msgid "LAM has checked your input and is now ready to create the accounts." +msgstr "LAM checou sua entrada e agora está pronto para criar as contas." + +#: ../lib/modules/posixGroup.inc:424 +#: ../lib/modules/posixAccount.inc:357 +#: ../lib/modules/inetOrgPerson.inc:815 +#: ../lib/modules/customFields.inc:121 +msgid "LAM supports CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 and SMD5 to generate the hash value of passwords. SSHA and CRYPT are the most common but CRYPT does not support passwords greater than 8 letters. We do not recommend to use plain text passwords." +msgstr "LAM suporta criptografia tipo CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 e SMD5 para gerar o valor de hash das senhas. SSHA e CRYPT são os mais comuns, mas CRYPT não suporta senhas com mais de 8 caracteres. Não recomendamos o uso de senha em texto plano." + +#: ../templates/tests/index.php:50 +msgid "LAM tests" +msgstr "Testes LAM" + +#: ../lib/modules/imapAccess.inc:118 +msgid "LAM user password" +msgstr "Senha de usuário do LAM" + +#: ../templates/massDoUpload.php:121 +#, php-format +msgid "LAM was unable to create account %s! An LDAP error occured." +msgstr "LAM conseguiu criar a conta %s! Um erro LDAP ocorreu." + +#: ../lib/modules/sambaGroupMapping.inc:441 +msgid "LAM was unable to find a Samba 3 domain with this name!" +msgstr "LAM não encontrou um domínio Samba 3 com este nome!" + +#: ../lib/modules/sambaSamAccount.inc:116 +msgid "LAM was unable to find a domain with this name!" +msgstr "LAM não conseguiu encontrar um domínio com este nome!" + +#: ../lib/modules/posixAccount.inc:107 +msgid "LAM was unable to find a group with this name!" +msgstr "LAM não conseguiu encontrar um grupo com este nome!" + +#: ../lib/modules/posixAccount.inc:1942 +#: ../lib/modules/posixAccount.inc:2003 +#: ../lib/modules/groupOfNamesUser.inc:383 +#, php-format +msgid "LAM was unable to modify group memberships for group: %s" +msgstr "LAM não conseguiu alterar os membros de grupo para o grupo: %s" + +#: ../help/help.inc:185 +msgid "LAM will search for accounts in this part of the LDAP tree." +msgstr "LAM irá procurar contas nesta parte da árvore LDAP." + +#: ../help/help.inc:187 +msgid "LAM will use this LDAP DN and password to search for accounts. It is sufficient to specify an account with read rights. If nothing is inserted then LAM will try to connect anonymously." +msgstr "LAM usará este DN LDAP e senha para pesquisar por contas. É suficiente especificar uma conta com direitos de leitura somente. Se nada for inserido, LAM irá tentar conectar-se como anônimo." + +#: ../lib/modules/qmailUser.inc:57 +msgid "LDAP + program" +msgstr "LDAP + programa" + +#: ../templates/config/confmodules.php:97 +#: ../templates/config/confmain.php:127 +#: ../templates/config/moduleSettings.php:96 +#: ../templates/config/conftypes.php:115 +msgid "LDAP Account Manager Configuration" +msgstr "Configurador do LDAP Account Manager" + +#: ../templates/config/conftypes.php:334 +msgid "LDAP Suffix is invalid!" +msgstr "Sufixo LDAP inválido!" + +#: ../templates/serverInfo.php:182 +msgid "LDAP entries" +msgstr "Entradas LDAP" + +#: ../templates/login.php:572 +msgid "LDAP error, server says:" +msgstr "Erro LDAP , servidor reportou:" + +#: ../templates/config/confmain.php:413 +msgid "LDAP filter" +msgstr "Filtro LDAP" + +#: ../lib/modules.inc:1269 +msgid "LDAP operation successful." +msgstr "Operação LDAP concluída com sucesso." + +#: ../templates/selfService/adminMain.php:413 +msgid "LDAP password" +msgstr "Senha LDAP" + +#: ../templates/3rdParty/pla/lib/functions.php:1894 +msgid "LDAP said" +msgstr "LDAP respondeu" + +#: ../templates/config/confmain.php:397 +#: ../help/help.inc:116 +msgid "LDAP search" +msgstr "Pesquisa LDAP" + +#: ../templates/selfService/adminMain.php:418 +#: ../help/help.inc:188 +msgid "LDAP search attribute" +msgstr "Atributo de pesquisa LDAP" + +#: ../lib/account.inc:727 +msgid "LDAP search failed! Please check your preferences." +msgstr "A pesquisa LDAP falhou! Por favor cheque suas preferências." + +#: ../templates/config/confmain.php:253 +#: ../help/help.inc:118 +msgid "LDAP search limit" +msgstr "Limitador de pesquisa LDAP" + +#: ../templates/login.php:399 +msgid "LDAP server" +msgstr "servidor LDAP" + +#: ../lib/account.inc:718 +msgid "LDAP sizelimit exceeded, not all entries are shown." +msgstr "Limite de tamanho LDAP excedido, nem todas as entradas foram mostradas." + +#: ../templates/config/confmain.php:409 +#: ../templates/config/conftypes.php:243 +#: ../templates/selfService/adminMain.php:407 +#: ../templates/profedit/profilepage.php:197 +#: ../help/help.inc:71 +#: ../help/help.inc:184 +msgid "LDAP suffix" +msgstr "Sufixo LDAP" + +#: ../templates/massDoUpload.php:75 +msgid "LDAP upload in progress. Please wait." +msgstr "Carga LDAP em progresso. Por favor espere." + +#: ../templates/selfService/adminMain.php:411 +msgid "LDAP user" +msgstr "Usuário LDAP" + +#: ../help/help.inc:186 +msgid "LDAP user and password" +msgstr "Usuário e senha LDAP" + +#: ../templates/serverInfo.php:109 +msgid "LDAP version" +msgstr "Versão do LDAP" + +#: ../templates/3rdParty/pla/lib/export_functions.php:442 +msgid "LDIF Export" +msgstr "Exportação LDIF" + +#: ../templates/3rdParty/pla/lib/import_functions.php:149 +#: ../templates/3rdParty/pla/htdocs/import.php:71 +msgid "LDIF import" +msgstr "Importação LDIF" + +#: ../templates/3rdParty/pla/lib/import_functions.php:170 +msgid "LDIF import only supports version 1" +msgstr "Importador LDIF suporta apenas a versão 1." + +#: ../lib/modules/customFields.inc:76 +#: ../lib/modules/customFields.inc:656 +#: ../lib/modules/customFields.inc:1072 +#: ../lib/modules/customFields.inc:1685 +msgid "Label" +msgstr "Etiqueta" + +#: ../templates/tests/lamdaemonTest.php:201 +msgid "Lamdaemon path does not end with \".pl\". Did you enter the full path to the script?" +msgstr "O caminho do Lamdaemon não termina com \". Pl \". Será que você digitou o caminho completo para o script ?" + +#: ../templates/tests/lamdaemonTest.php:185 +msgid "Lamdaemon server and path" +msgstr "Servidor e caminho LAMdaemon" + +#: ../templates/config/confmain.php:322 +msgid "Lamdaemon settings" +msgstr "Configurações LAMdaemon" + +#: ../templates/tests/lamdaemonTest.php:135 +msgid "Lamdaemon successfully run." +msgstr "LAMdaemon iniciado." + +#: ../templates/tests/index.php:52 +#: ../templates/tests/lamdaemonTest.php:52 +#: ../lib/tools/tests.inc:110 +msgid "Lamdaemon test" +msgstr "Teste LAMdaemon" + +#: ../templates/tests/lamdaemonTest.php:291 +msgid "Lamdaemon test finished." +msgstr "Teste LAMdaemon finalizado." + +#: ../templates/tests/lamdaemonTest.php:273 +msgid "Lamdaemon version" +msgstr "Versão do LAMdaemon" + +#: ../templates/tests/lamdaemonTest.php:283 +msgid "Lamdaemon: Quota module installed" +msgstr "LAMdaemon: Módulo de quota instalado" + +#: ../templates/tests/lamdaemonTest.php:279 +msgid "Lamdaemon: check NSS LDAP" +msgstr "Lamdaemon: Checagem de NSS LDAP" + +#: ../templates/tests/lamdaemonTest.php:286 +msgid "Lamdaemon: read quotas" +msgstr "LAMdaemon: Lendo quotas" + +#: ../templates/login.php:353 +msgid "Language" +msgstr "Idioma" + +#: ../templates/config/confmain.php:529 +msgid "Language is not defined!" +msgstr "Idioma não definido!" + +#: ../templates/config/confmain.php:292 +msgid "Language settings" +msgstr "Configurações de idioma" + +#: ../lib/modules/mitKerberos.inc:137 +#: ../lib/modules/mitKerberos.inc:244 +#: ../lib/modules/mitKerberos.inc:400 +#: ../lib/modules/mitKerberos.inc:791 +msgid "Last login" +msgstr "Último login" + +#: ../lib/types/user.inc:97 +#: ../lib/modules/selfRegistration.inc:69 +#: ../lib/modules/selfRegistration.inc:126 +#: ../lib/modules/inetOrgPerson.inc:51 +#: ../lib/modules/inetOrgPerson.inc:124 +#: ../lib/modules/inetOrgPerson.inc:338 +#: ../lib/modules/inetOrgPerson.inc:555 +#: ../lib/modules/inetOrgPerson.inc:658 +#: ../lib/modules/inetOrgPerson.inc:1312 +#: ../lib/modules/inetOrgPerson.inc:2166 +#: ../lib/modules/inetOrgPerson.inc:2678 +msgid "Last name" +msgstr "Último nome" + +#: ../lib/modules/inetOrgPerson.inc:51 +#: ../lib/modules/inetOrgPerson.inc:52 +msgid "Last name contains invalid characters or is empty!" +msgstr "Último nome contém caracteres inválidos ou está vazio." + +#: ../lib/modules/inetOrgPerson.inc:659 +msgid "Last name of user. Only letters, - and spaces are allowed." +msgstr "Último nome do usuário. Somente letras, - e espaços são permitidos." + +#: ../lib/modules/mitKerberos.inc:133 +#: ../lib/modules/mitKerberos.inc:243 +#: ../lib/modules/mitKerberos.inc:392 +#: ../lib/modules/mitKerberos.inc:787 +#: ../lib/modules/ppolicyUser.inc:125 +#: ../lib/modules/shadowAccount.inc:160 +#: ../lib/modules/shadowAccount.inc:192 +#: ../lib/modules/shadowAccount.inc:354 +#: ../lib/modules/shadowAccount.inc:503 +msgid "Last password change" +msgstr "Última alteração de senha" + +#: ../lib/modules/asteriskAccount.inc:230 +#: ../lib/modules/asteriskAccount.inc:305 +#: ../lib/modules/asteriskAccount.inc:360 +#: ../lib/modules/asteriskAccount.inc:606 +#: ../lib/modules/asteriskAccount.inc:963 +#: ../lib/modules/asteriskAccount.inc:1278 +msgid "Last qualify milliseconds" +msgstr "Última qualificação em milisegundos" + +#: ../lib/modules/dhcp_settings.inc:139 +#: ../lib/modules/dhcp_settings.inc:191 +#: ../lib/modules/dhcp_settings.inc:205 +#: ../lib/modules/dhcp_settings.inc:234 +#: ../lib/modules/dhcp_settings.inc:544 +#: ../lib/modules/dhcp_settings.inc:637 +msgid "Lease time" +msgstr "Tempo de concessão" + +#: ../templates/3rdParty/pla/htdocs/import.php:102 +msgid "Line" +msgstr "Linha" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:121 +msgid "Line ends" +msgstr "Fins de linha" + +#: ../lib/modules/selfRegistration.inc:51 +#: ../lib/modules/selfRegistration.inc:96 +#: ../lib/modules/passwordSelfReset.inc:82 +#: ../lib/modules/passwordSelfReset.inc:172 +msgid "Link text" +msgstr "Texto do link" + +#: ../templates/selfService/adminMain.php:349 +msgid "Link to self service login page for your users" +msgstr "Link da página de auto login para seus usuários" + +#: ../templates/config/conftypes.php:258 +#: ../help/help.inc:83 +msgid "List attributes" +msgstr "Listar atributos" + +#: ../templates/config/conftypes.php:341 +msgid "List attributes are invalid!" +msgstr "Lista de atributos inválida!" + +#: ../lib/types/zarafaAddressListType.inc:91 +#: ../lib/modules/zarafaAddressList.inc:56 +#: ../lib/modules/zarafaAddressList.inc:93 +#: ../lib/modules/zarafaAddressList.inc:130 +#: ../lib/modules/zarafaAddressList.inc:143 +#: ../lib/modules/zarafaAddressList.inc:162 +#: ../lib/modules/zarafaAddressList.inc:315 +msgid "List name" +msgstr "Nome da lista" + +#: ../lib/modules/zarafaAddressList.inc:143 +msgid "List name already in use." +msgstr "Nome da lista já está em uso." + +#: ../lib/modules/sambaSamAccount.inc:303 +msgid "List of Samba workstations the user is allowed to login. Empty means every workstation." +msgstr "Lista de estações de trabalho Samba que o usuário tem permissão de iniciar uma sessão. Deixe vazio para habilitar qualquer estação de trabalho." + +#: ../templates/config/confmain.php:523 +msgid "List of admin users is empty or invalid!" +msgstr "Lista de usuários administradores está vazia ou inválida!" + +#: ../lib/modules/asteriskAccount.inc:195 +msgid "List of allowed codecs." +msgstr "Lista de codecs habilitados." + +#: ../lib/modules/asteriskAccount.inc:191 +msgid "List of disallowed codecs." +msgstr "Lista de codecs desabilitados." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:94 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:88 +msgid "List of entries to be deleted:" +msgstr "Lista de entradas para serem apagadas:" + +#: ../templates/config/confmain.php:405 +msgid "List of valid users" +msgstr "Lista de usuários válidos" + +#: ../templates/serverInfo.php:152 +msgid "Listeners" +msgstr "Ouvidores" + +#: ../lib/modules.inc:1178 +#: ../help/help.inc:166 +msgid "Load profile" +msgstr "Carregar perfil" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:279 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1226 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +msgid "Loading" +msgstr "Carregando" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:303 +msgid "Loading export" +msgstr "Carregando exportação" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:290 +msgid "Loading import" +msgstr "Carregando importação" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:497 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:233 +msgid "Loading search" +msgstr "Carregando a pesquisa " + +#: ../lib/modules/inetLocalMailRecipient.inc:65 +#: ../lib/modules/inetLocalMailRecipient.inc:150 +msgid "Local address" +msgstr "Endereço local" + +#: ../lib/modules/inetLocalMailRecipient.inc:69 +#: ../lib/modules/inetLocalMailRecipient.inc:99 +#: ../lib/modules/inetLocalMailRecipient.inc:113 +#: ../lib/modules/inetLocalMailRecipient.inc:303 +msgid "Local address list" +msgstr "Lista de endereços locais" + +#: ../lib/modules/sambaGroupMapping.inc:72 +msgid "Local group" +msgstr "Grupo local" + +#: ../lib/modules/ipHost.inc:66 +#: ../lib/modules/ipHost.inc:84 +#: ../lib/modules/ipHost.inc:98 +#: ../lib/modules/ipHost.inc:149 +#: ../lib/modules/ipHost.inc:312 +#: ../lib/modules/device.inc:70 +#: ../lib/modules/device.inc:101 +#: ../lib/modules/device.inc:116 +#: ../lib/modules/device.inc:177 +#: ../lib/modules/device.inc:436 +#: ../lib/modules/inetOrgPerson.inc:129 +#: ../lib/modules/inetOrgPerson.inc:153 +#: ../lib/modules/inetOrgPerson.inc:273 +#: ../lib/modules/inetOrgPerson.inc:523 +#: ../lib/modules/inetOrgPerson.inc:570 +#: ../lib/modules/inetOrgPerson.inc:774 +#: ../lib/modules/inetOrgPerson.inc:778 +#: ../lib/modules/inetOrgPerson.inc:1449 +#: ../lib/modules/inetOrgPerson.inc:2184 +#: ../lib/modules/inetOrgPerson.inc:2821 +msgid "Location" +msgstr "Localização" + +#: ../lib/types/user.inc:326 +#: ../lib/types/user.inc:334 +msgid "Lock" +msgstr "Bloqueio" + +#: ../templates/lists/changePassword.php:371 +#: ../templates/lists/changePassword.php:387 +#: ../templates/lists/changePassword.php:389 +#: ../lib/modules/ppolicyUser.inc:139 +msgid "Lock account" +msgstr "Bloquear conta" + +#: ../templates/lists/changePassword.php:241 +msgid "Lock account?" +msgstr "Bloquear conta ?" + +#: ../lib/modules/posixGroup.inc:209 +#: ../lib/modules/posixAccount.inc:271 +#: ../lib/modules/posixAccount.inc:1168 +#: ../lib/modules/inetOrgPerson.inc:1880 +msgid "Lock password" +msgstr "Bloquear senha" + +#: ../lib/types/ppolicyType.inc:83 +#: ../lib/modules/ppolicy.inc:97 +#: ../lib/modules/ppolicy.inc:144 +#: ../lib/modules/ppolicy.inc:164 +#: ../lib/modules/ppolicy.inc:257 +#: ../lib/modules/ppolicy.inc:479 +#: ../lib/modules/sambaDomain.inc:126 +#: ../lib/modules/sambaDomain.inc:191 +#: ../lib/modules/sambaDomain.inc:216 +#: ../lib/modules/sambaDomain.inc:333 +#: ../lib/modules/sambaDomain.inc:683 +msgid "Lockout duration" +msgstr "Duração do bloqueio" + +#: ../lib/modules/sambaDomain.inc:216 +msgid "Lockout duration must be are natural number." +msgstr "Duração do bloqueio deve ser um número natural." + +#: ../lib/modules/ppolicyUser.inc:131 +msgid "Lockout time" +msgstr "Tempo de bloqueio" + +#: ../lib/types/ppolicyType.inc:88 +#: ../lib/modules/ppolicy.inc:117 +#: ../lib/modules/ppolicy.inc:143 +#: ../lib/modules/ppolicy.inc:251 +#: ../lib/modules/ppolicy.inc:488 +msgid "Lockout users" +msgstr "Usuários bloqueados" + +#: ../lib/modules/sambaDomain.inc:114 +#: ../lib/modules/sambaDomain.inc:188 +#: ../lib/modules/sambaDomain.inc:218 +#: ../lib/modules/sambaDomain.inc:309 +#: ../lib/modules/sambaDomain.inc:674 +msgid "Lockout users after bad logon attempts" +msgstr "Bloquear usuários após tentativas de início de sessão mal sucedidas" + +#: ../lib/modules/sambaDomain.inc:218 +msgid "Lockout users after bad logon attempts must be between 0 and 999." +msgstr "O número de tentativas mal sucedidas de logon deve ser um número entre 0 e 999." + +#: ../templates/config/mainmanage.php:238 +#: ../help/help.inc:144 +msgid "Log destination" +msgstr "Destino do log" + +#: ../templates/config/mainmanage.php:224 +#: ../help/help.inc:142 +msgid "Log level" +msgstr "Nível de log" + +#: ../templates/main_header.php:126 +#, php-format +msgid "Logged in as: %s" +msgstr "Conectado como: %s" + +#: ../templates/config/mainmanage.php:241 +msgid "Logging" +msgstr "Gravando log" + +#: ../templates/login.php:372 +#: ../templates/config/conflogin.php:62 +#: ../templates/config/mainlogin.php:70 +#: ../templates/selfService/selfServiceLogin.php:168 +#: ../templates/selfService/selfServiceLogin.php:289 +#: ../templates/selfService/adminLogin.php:64 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:530 +#: ../help/help.inc:56 +msgid "Login" +msgstr "Início de sessão" + +#: ../templates/selfService/adminMain.php:429 +#: ../help/help.inc:190 +msgid "Login attribute label" +msgstr "Etiqueta do atributo de início de sessão" + +#: ../templates/selfService/adminMain.php:434 +#: ../help/help.inc:192 +msgid "Login caption" +msgstr "Subtítulo do início de sessão" + +#: ../templates/config/confmain.php:399 +#: ../help/help.inc:114 +msgid "Login method" +msgstr "Método do início de sessão (login)" + +#: ../lib/types/user.inc:99 +#: ../lib/modules/posixAccount.inc:158 +#: ../lib/modules/posixAccount.inc:257 +#: ../lib/modules/posixAccount.inc:334 +#: ../lib/modules/posixAccount.inc:413 +#: ../lib/modules/posixAccount.inc:1161 +#: ../lib/modules/posixAccount.inc:1401 +#: ../lib/modules/posixAccount.inc:1485 +#: ../lib/modules/posixAccount.inc:2135 +msgid "Login shell" +msgstr "Interpretador de comandos do início de sessão" + +#: ../templates/pdfedit/pdfpage.php:448 +msgid "Logo" +msgstr "Logo" + +#: ../lib/modules/sambaDomain.inc:102 +#: ../lib/modules/sambaDomain.inc:185 +#: ../lib/modules/sambaDomain.inc:283 +#: ../lib/modules/sambaDomain.inc:661 +msgid "Logon for password change" +msgstr "Iniciar uma sessão para alterar senha" + +#: ../lib/modules/sambaSamAccount.inc:117 +#: ../lib/modules/sambaSamAccount.inc:327 +#: ../lib/modules/sambaSamAccount.inc:330 +#: ../lib/modules/sambaSamAccount.inc:511 +#: ../lib/modules/sambaSamAccount.inc:589 +#: ../lib/modules/sambaSamAccount.inc:1246 +#: ../lib/modules/sambaSamAccount.inc:1602 +msgid "Logon hours" +msgstr "Horas de acesso" + +#: ../lib/modules/sambaSamAccount.inc:98 +#: ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:214 +#: ../lib/modules/sambaSamAccount.inc:299 +#: ../lib/modules/sambaSamAccount.inc:495 +#: ../lib/modules/sambaSamAccount.inc:585 +#: ../lib/modules/sambaSamAccount.inc:1199 +#: ../lib/modules/sambaSamAccount.inc:1578 +#: ../lib/modules/sambaSamAccount.inc:1725 +msgid "Logon script" +msgstr "Script de início de sessão" + +#: ../lib/modules/sambaSamAccount.inc:98 +#: ../lib/modules/sambaSamAccount.inc:100 +msgid "Logon script is invalid!" +msgstr "Script de início de sessão inválido" + +#: ../templates/selfService/selfServiceMain.php:63 +#: ../templates/selfService/selfServiceMain.php:383 +#: ../templates/main_header.php:133 +msgid "Logout" +msgstr "Sair" + +#: ../lib/modules/dhcp_settings.inc:96 +msgid "M-Node (0x04)" +msgstr "Nó M (0x04)" + +#: ../lib/types/dhcp.inc:96 +#: ../lib/modules/ieee802device.inc:51 +#: ../lib/modules/ieee802device.inc:61 +#: ../lib/modules/ieee802device.inc:72 +#: ../lib/modules/ieee802device.inc:104 +#: ../lib/modules/fixed_ip.inc:91 +#: ../lib/modules/fixed_ip.inc:339 +#: ../lib/modules/fixed_ip.inc:523 +msgid "MAC address" +msgstr "Endereço MAC" + +#: ../lib/modules/ieee802device.inc:65 +msgid "MAC address list" +msgstr "Lista de endereços MAC" + +#: ../lib/modules/ieee802device.inc:79 +#: ../lib/modules/ieee802device.inc:206 +msgid "MAC addresses" +msgstr "Endereços MAC" + +#: ../lib/modules/mitKerberos.inc:256 +msgid "MIT Kerberos password change command" +msgstr "Comando de troca de senha Kerberos MIT" + +#: ../lib/modules/sambaSamAccount.inc:560 +msgid "Magadan, Solomon Islands" +msgstr "Magadan, Solomon Islands" + +#: ../lib/types/mailAlias.inc:53 +#: ../lib/modules/nisMailAlias.inc:55 +msgid "Mail aliases" +msgstr "Apelidos de correio eletrônico" + +#: ../lib/modules/imapAccess.inc:91 +#: ../lib/modules/imapAccess.inc:122 +msgid "Mail domains" +msgstr "Domínios de correio eletrônico" + +#: ../lib/modules/inetLocalMailRecipient.inc:51 +msgid "Mail routing" +msgstr "Roteador de correio eletrônico" + +#: ../lib/modules/selfRegistration.inc:513 +#: ../lib/modules/selfRegistration.inc:543 +#: ../lib/modules/passwordSelfReset.inc:1154 +#: ../lib/modules/passwordSelfReset.inc:1195 +msgid "Mail sending failed." +msgstr "Envio de e-mail falhou." + +#: ../lib/modules/kolabUser.inc:84 +#: ../lib/modules/inetLocalMailRecipient.inc:73 +#: ../lib/modules/inetLocalMailRecipient.inc:78 +#: ../lib/modules/inetLocalMailRecipient.inc:105 +#: ../lib/modules/inetLocalMailRecipient.inc:114 +#: ../lib/modules/inetLocalMailRecipient.inc:145 +#: ../lib/modules/inetLocalMailRecipient.inc:306 +msgid "Mail server" +msgstr "Servidor de correio eletrônico" + +#: ../lib/account.inc:954 +#, php-format +msgid "Mail successfully sent to %s." +msgstr "Mensagem enviada com sucesso para %s." + +#: ../lib/modules/asteriskAccount.inc:150 +#: ../lib/modules/asteriskAccount.inc:265 +#: ../lib/modules/asteriskAccount.inc:340 +#: ../lib/modules/asteriskAccount.inc:461 +#: ../lib/modules/asteriskAccount.inc:772 +#: ../lib/modules/asteriskAccount.inc:1218 +#: ../lib/modules/asteriskVoicemail.inc:86 +#: ../lib/modules/asteriskVoicemail.inc:129 +#: ../lib/modules/asteriskVoicemail.inc:149 +#: ../lib/modules/asteriskVoicemail.inc:236 +#: ../lib/modules/asteriskVoicemail.inc:390 +#: ../lib/modules/imapAccess.inc:56 +#: ../lib/modules/imapAccess.inc:97 +#: ../lib/modules/imapAccess.inc:223 +msgid "Mailbox" +msgstr "E-Mail" + +#: ../lib/modules/imapAccess.inc:232 +msgid "Mailbox already exists on IMAP server." +msgstr "Caixa de correio já existe no servidor IMAP." + +#: ../lib/modules/imapAccess.inc:239 +msgid "Mailbox does not exist on IMAP server." +msgstr "Caixa de correio não existe no servidor IMAP." + +#: ../lib/modules/kolabUser.inc:129 +#: ../lib/modules/kolabUser.inc:146 +#: ../lib/modules/kolabUser.inc:167 +#: ../lib/modules/kolabUser.inc:229 +#: ../lib/modules/kolabUser.inc:234 +#: ../lib/modules/kolabUser.inc:626 +msgid "Mailbox home server" +msgstr "Servidor de caixa de correio eletrônico pessoal" + +#: ../lib/modules/kolabUser.inc:184 +msgid "Mailbox home server name is empty!" +msgstr "Servidor de caixa de correio eletrônico pessoal está vazio!" + +#: ../lib/modules/kolabUser.inc:182 +#: ../lib/modules/kolabUser.inc:183 +msgid "Mailbox home server name is invalid!" +msgstr "Servidor de caixa de correio eletrônico pessoal inválido!" + +#: ../lib/types/mailAlias.inc:62 +msgid "Mailing aliases (e.g. NIS mail aliases)" +msgstr "Apelidos de listas de envio (Ex.: NIS mail aliases)" + +#: ../lib/modules/nisMailAlias.inc:68 +msgid "Mails to this name are forwarded to the recipients." +msgstr "Mensagens para este nome serão reenviados para os recipientes." + +#: ../templates/pdfedit/pdfpage.php:362 +#: ../templates/pdfedit/pdfpage.php:617 +msgid "Main" +msgstr "Principal" + +#: ../templates/selfService/adminMain.php:440 +#: ../help/help.inc:194 +msgid "Main page caption" +msgstr "Subtítulo da página principal" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:79 +msgid "Make sure your filter (above) will select all child records." +msgstr "Verifique se o seu filtro (acima) irá selecionar todos os registros filho." + +#: ../templates/pdfedit/pdfmain.php:177 +msgid "Manage existing PDF structures" +msgstr "Gerenciar as estruturas PDF existentes" + +#: ../templates/profedit/profilemain.php:172 +msgid "Manage existing profiles" +msgstr "Gerenciar perfis existentes" + +#: ../templates/selfService/adminLogin.php:181 +msgid "Manage self service profiles" +msgstr "Gerencie perfis de auto serviço" + +#: ../templates/config/conflogin.php:186 +msgid "Manage server profiles" +msgstr "Gerencie perfis de servidores" + +#: ../templates/serverInfo.php:105 +msgid "Managed suffixes" +msgstr "Sufixos gerenciados" + +#: ../lib/modules/ipHost.inc:70 +#: ../lib/modules/ipHost.inc:90 +#: ../lib/modules/ipHost.inc:99 +#: ../lib/modules/ipHost.inc:170 +#: ../lib/modules/ipHost.inc:315 +#: ../lib/modules/inetOrgPerson.inc:305 +#: ../lib/modules/inetOrgPerson.inc:387 +#: ../lib/modules/inetOrgPerson.inc:621 +#: ../lib/modules/inetOrgPerson.inc:666 +#: ../lib/modules/inetOrgPerson.inc:670 +#: ../lib/modules/inetOrgPerson.inc:1857 +#: ../lib/modules/inetOrgPerson.inc:2168 +msgid "Manager" +msgstr "Gerente" + +#: ../lib/tools/ouEditor.inc:53 +msgid "Manages OU objects in your LDAP tree." +msgstr "Gerencie objetos OU na sua árvore LDAP." + +#: ../lib/modules/kolabUser.inc:52 +msgid "Manual" +msgstr "Manual" + +#: ../lib/modules/kolabUser.inc:54 +msgid "Manual if conflicts" +msgstr "Manual se conflitar" + +#: ../lib/modules/customScripts.inc:138 +msgid "Manual scripts" +msgstr "Scripts manuais" + +#: ../lib/types/nisObjectType.inc:78 +#: ../lib/modules/nisObject.inc:58 +#: ../lib/modules/nisObject.inc:89 +#: ../lib/modules/nisObject.inc:105 +#: ../lib/modules/nisObject.inc:116 +#: ../lib/modules/nisObject.inc:142 +#: ../lib/modules/nisObject.inc:211 +msgid "Mapping entry" +msgstr "Entrada de mapeamento" + +#: ../lib/modules/nisObject.inc:116 +#: ../lib/modules/nisObject.inc:117 +msgid "Mapping entry contains invalid characters. Only ASCII characters are allowed." +msgstr "Entrada de mapeamento contém caracteres inválidos. Somente caracteres ASCII são permitidos." + +#: ../lib/types/nisObjectType.inc:79 +#: ../lib/modules/nisObject.inc:62 +#: ../lib/modules/nisObject.inc:82 +#: ../lib/modules/nisObject.inc:106 +#: ../lib/modules/nisObject.inc:136 +#: ../lib/modules/nisObject.inc:212 +msgid "Mapping name" +msgstr "Nome do mapeamento" + +#: ../lib/modules/kolabUser.inc:313 +#: ../lib/modules/kolabUser.inc:454 +msgid "Mark account for deletion" +msgstr "Marque a conta para ser apagada" + +#: ../lib/modules/kolabUser.inc:133 +msgid "Mark for deletion" +msgstr "Marcar para apagar" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:44 +msgid "Mass delete" +msgstr "Exclusão em massa" + +#: ../templates/config/profmanage.php:221 +#: ../templates/selfService/profManage.php:171 +#: ../templates/pdfedit/pdfmain.php:151 +#: ../templates/pdfedit/pdfmain.php:254 +#: ../templates/pdfedit/pdfmain.php:301 +#: ../templates/profedit/profilemain.php:91 +#: ../templates/profedit/profilemain.php:254 +#: ../templates/profedit/profilemain.php:302 +#: ../help/help.inc:136 +msgid "Master password" +msgstr "Senha mestre" + +#: ../templates/config/profmanage.php:52 +#: ../templates/selfService/profManage.php:40 +#: ../templates/pdfedit/pdfmain.php:103 +#: ../templates/pdfedit/pdfmain.php:111 +#: ../templates/profedit/profilemain.php:120 +#: ../templates/profedit/profilemain.php:128 +msgid "Master password is wrong!" +msgstr "Senha mestre está errada!" + +#: ../templates/config/mainmanage.php:77 +msgid "Master passwords are different or empty!" +msgstr "Senhas mestre estão diferentes ou vazias!" + +#: ../templates/schema/schema.php:268 +msgid "Matching rule OID" +msgstr "Regra combinando OID" + +#: ../templates/schema/schema.php:77 +#: ../templates/schema/schema.php:78 +msgid "Matching rules" +msgstr "Regras combinadas" + +#: ../templates/serverInfo.php:173 +msgid "Max. file descriptors" +msgstr "Máx. descritores de arquivos" + +#: ../lib/modules/posixGroup.inc:319 +#: ../lib/modules/posixGroup.inc:501 +#: ../lib/modules/posixGroup.inc:502 +msgid "Maximum GID number" +msgstr "Número GID máximo" + +#: ../lib/modules/posixGroup.inc:501 +msgid "Maximum GID number is invalid or empty!" +msgstr "Número GID máximo é inválido ou está vazio!" + +#: ../lib/modules/posixGroup.inc:502 +msgid "Maximum GID number must be greater than minimum GID number!" +msgstr "Número GID máximo deve ser maior que o número GID mínimo!" + +#: ../lib/modules/posixAccount.inc:78 +#: ../lib/modules/posixAccount.inc:80 +#: ../lib/modules/posixAccount.inc:81 +#: ../lib/modules/posixAccount.inc:82 +#: ../lib/modules/posixAccount.inc:182 +#: ../lib/modules/posixAccount.inc:192 +msgid "Maximum UID number" +msgstr "Número UID máximo " + +#: ../lib/modules/posixAccount.inc:78 +#: ../lib/modules/posixAccount.inc:80 +msgid "Maximum UID number is invalid!" +msgstr "Número UID máximo inválido!" + +#: ../lib/modules/posixAccount.inc:81 +#: ../lib/modules/posixAccount.inc:82 +msgid "Maximum UID number must be greater than minimum UID number!" +msgstr "Número UID máximo deve ser maior que o número UID mínimo!" + +#: ../lib/types/ppolicyType.inc:84 +#: ../lib/modules/ppolicy.inc:101 +#: ../lib/modules/ppolicy.inc:145 +#: ../lib/modules/ppolicy.inc:165 +#: ../lib/modules/ppolicy.inc:265 +#: ../lib/modules/ppolicy.inc:480 +msgid "Maximum failure count" +msgstr "Contador máximo de falhas" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:128 +#: ../templates/3rdParty/pla/htdocs/import_form.php:36 +msgid "Maximum file size" +msgstr "Tamanho máximo para arquivo" + +#: ../lib/modules/dhcp_settings.inc:143 +#: ../lib/modules/dhcp_settings.inc:192 +#: ../lib/modules/dhcp_settings.inc:206 +#: ../lib/modules/dhcp_settings.inc:240 +#: ../lib/modules/dhcp_settings.inc:548 +#: ../lib/modules/dhcp_settings.inc:638 +msgid "Maximum lease time" +msgstr "Tempo máximo de concessão" + +#: ../templates/schema/schema.php:214 +msgid "Maximum length" +msgstr "Comprimento máximo" + +#: ../lib/lists.inc:928 +#: ../help/help.inc:93 +msgid "Maximum list entries" +msgstr "Número máximo de entradas na lista" + +#: ../lib/modules/asteriskAccount.inc:187 +msgid "Maximum number of seconds of inactivity before terminating a call on hold." +msgstr "Número máximo de segundos de inatividade antes de terminar uma chamada em espera." + +#: ../lib/types/ppolicyType.inc:79 +#: ../lib/modules/shadowAccount.inc:59 +#: ../lib/modules/shadowAccount.inc:65 +#: ../lib/modules/shadowAccount.inc:116 +#: ../lib/modules/shadowAccount.inc:180 +#: ../lib/modules/shadowAccount.inc:218 +#: ../lib/modules/shadowAccount.inc:329 +#: ../lib/modules/shadowAccount.inc:508 +#: ../lib/modules/ppolicy.inc:81 +#: ../lib/modules/ppolicy.inc:137 +#: ../lib/modules/ppolicy.inc:160 +#: ../lib/modules/ppolicy.inc:161 +#: ../lib/modules/ppolicy.inc:199 +#: ../lib/modules/ppolicy.inc:466 +#: ../lib/modules/sambaDomain.inc:122 +#: ../lib/modules/sambaDomain.inc:190 +#: ../lib/modules/sambaDomain.inc:213 +#: ../lib/modules/sambaDomain.inc:215 +#: ../lib/modules/sambaDomain.inc:325 +#: ../lib/modules/sambaDomain.inc:680 +msgid "Maximum password age" +msgstr "\tIdade máxima da senha " + +#: ../lib/types/netgroup.inc:94 +#: ../lib/modules/nisnetgroup.inc:88 +#: ../lib/modules/nisnetgroup.inc:92 +#: ../lib/modules/nisnetgroup.inc:125 +#: ../lib/modules/nisnetgroup.inc:135 +#: ../lib/modules/nisnetgroup.inc:279 +#: ../lib/modules/nisnetgroup.inc:583 +#: ../lib/modules/groupOfNames.inc:76 +#: ../lib/modules/groupOfNames.inc:80 +#: ../lib/modules/groupOfNames.inc:113 +#: ../lib/modules/groupOfNames.inc:121 +#: ../lib/modules/groupOfNames.inc:132 +#: ../lib/modules/groupOfNames.inc:198 +#: ../lib/modules/groupOfNames.inc:553 +msgid "Members" +msgstr "Membros" + +#: ../lib/modules/groupOfNames.inc:84 +#: ../lib/modules/groupOfNames.inc:136 +msgid "Members are optional" +msgstr "Membros são opicionais" + +#: ../lib/modules/qmailUser.inc:101 +#: ../lib/modules/qmailUser.inc:136 +#: ../lib/modules/qmailUser.inc:216 +#: ../lib/modules/qmailUser.inc:309 +#: ../lib/modules/qmailUser.inc:405 +#: ../lib/modules/qmailUser.inc:679 +#: ../lib/modules/qmailUser.inc:1231 +msgid "Message count limit" +msgstr "Contador de limite de mensagens" + +#: ../lib/modules/qmailUser.inc:103 +#: ../lib/modules/qmailUser.inc:146 +#: ../lib/modules/qmailUser.inc:220 +#: ../lib/modules/qmailUser.inc:317 +#: ../lib/modules/qmailUser.inc:408 +#: ../lib/modules/qmailUser.inc:690 +#: ../lib/modules/qmailUser.inc:1237 +msgid "Message size limit" +msgstr "Limite de tamanho da mensagem" + +#: ../lib/modules/qmailUser.inc:113 +#: ../lib/modules/qmailUser.inc:164 +#: ../lib/modules/qmailUser.inc:240 +#: ../lib/modules/qmailUser.inc:359 +#: ../lib/modules/qmailUser.inc:423 +#: ../lib/modules/qmailUser.inc:594 +#: ../lib/modules/qmailUser.inc:1255 +msgid "Message store" +msgstr "Armazenamento de Mensagem" + +#: ../lib/modules/sambaSamAccount.inc:547 +msgid "Mid-Atlantic" +msgstr "Mid-Atlantic" + +#: ../lib/modules/sambaSamAccount.inc:538 +msgid "Midway Island, Samoa" +msgstr "Midway Island, Samoa" + +#: ../lib/modules/inetOrgPerson.inc:340 +msgid "Miller" +msgstr "Miller" + +#: ../lib/modules/sambaDomain.inc:94 +#: ../lib/modules/sambaDomain.inc:183 +#: ../lib/modules/sambaDomain.inc:269 +#: ../lib/modules/sambaDomain.inc:653 +msgid "Minimal password length" +msgstr "Tamanho mínimo da senha" + +#: ../lib/modules/posixGroup.inc:316 +#: ../lib/modules/posixGroup.inc:500 +msgid "Minimum GID number" +msgstr "Número mínimo do GID" + +#: ../lib/modules/posixGroup.inc:500 +msgid "Minimum GID number is invalid or empty!" +msgstr "Número mínimo do GID é inválido ou está vazio!" + +#: ../lib/modules/posixAccount.inc:77 +#: ../lib/modules/posixAccount.inc:79 +#: ../lib/modules/posixAccount.inc:179 +#: ../lib/modules/posixAccount.inc:189 +msgid "Minimum UID number" +msgstr "Número mínimo para UID" + +#: ../lib/modules/posixAccount.inc:77 +#: ../lib/modules/posixAccount.inc:79 +msgid "Minimum UID number is invalid!" +msgstr "Número mínimo para UID inválido!" + +#: ../lib/modules/passwordSelfReset.inc:74 +#: ../lib/modules/passwordSelfReset.inc:170 +msgid "Minimum answer length" +msgstr "Tamanho mínimo para pergunta" + +#: ../templates/config/mainmanage.php:216 +msgid "Minimum character classes" +msgstr "Mínimo de classes de caracteres" + +#: ../templates/config/mainmanage.php:212 +msgid "Minimum lowercase characters" +msgstr "Mínimo de caracteres em minúsculo" + +#: ../templates/config/mainmanage.php:214 +msgid "Minimum numeric characters" +msgstr "Caracteres numéricos mínimos" + +#: ../lib/types/ppolicyType.inc:78 +#: ../lib/modules/shadowAccount.inc:57 +#: ../lib/modules/shadowAccount.inc:111 +#: ../lib/modules/shadowAccount.inc:176 +#: ../lib/modules/shadowAccount.inc:212 +#: ../lib/modules/shadowAccount.inc:321 +#: ../lib/modules/shadowAccount.inc:507 +#: ../lib/modules/ppolicy.inc:77 +#: ../lib/modules/ppolicy.inc:136 +#: ../lib/modules/ppolicy.inc:159 +#: ../lib/modules/ppolicy.inc:191 +#: ../lib/modules/ppolicy.inc:465 +#: ../lib/modules/sambaDomain.inc:118 +#: ../lib/modules/sambaDomain.inc:189 +#: ../lib/modules/sambaDomain.inc:214 +#: ../lib/modules/sambaDomain.inc:317 +#: ../lib/modules/sambaDomain.inc:677 +msgid "Minimum password age" +msgstr "Idade mínima para senha" + +#: ../templates/config/mainmanage.php:211 +#: ../lib/types/ppolicyType.inc:87 +#: ../lib/modules/ppolicy.inc:113 +#: ../lib/modules/ppolicy.inc:140 +#: ../lib/modules/ppolicy.inc:168 +#: ../lib/modules/ppolicy.inc:243 +#: ../lib/modules/ppolicy.inc:483 +msgid "Minimum password length" +msgstr "Tamanho mínimo para senha" + +#: ../templates/config/mainmanage.php:215 +msgid "Minimum symbolic characters" +msgstr "Caracteres simbólicos mínimos" + +#: ../templates/config/mainmanage.php:213 +msgid "Minimum uppercase characters" +msgstr "Caracteres maiúsculos mínimos" + +#: ../templates/3rdParty/pla/lib/import_functions.php:429 +msgid "Missing attributes for" +msgstr "Faltam atributos para" + +#: ../templates/3rdParty/pla/lib/import_functions.php:443 +msgid "Missing modify command add, delete or replace" +msgstr "Comando modificar falta acrescentar, apagar ou substituir" + +#: ../lib/types/user.inc:200 +#: ../lib/modules/inetOrgPerson.inc:57 +#: ../lib/modules/inetOrgPerson.inc:125 +#: ../lib/modules/inetOrgPerson.inc:289 +#: ../lib/modules/inetOrgPerson.inc:459 +#: ../lib/modules/inetOrgPerson.inc:594 +#: ../lib/modules/inetOrgPerson.inc:714 +#: ../lib/modules/inetOrgPerson.inc:718 +#: ../lib/modules/inetOrgPerson.inc:1647 +#: ../lib/modules/inetOrgPerson.inc:2176 +msgid "Mobile number" +msgstr "Telefone móvel" + +#: ../lib/modules/inetOrgPerson.inc:2733 +msgid "Mobile telephone number" +msgstr "Número do telefone móvel" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:61 +msgid "Modification not successful!" +msgstr "Operação de alteração falhou!" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:59 +msgid "Modification successful!" +msgstr "Operação de alteração concluída com sucesso!" + +#: ../lib/modules/generalInformation.inc:85 +msgid "Modification time" +msgstr "Hora da modificação" + +#: ../lib/modules/generalInformation.inc:81 +msgid "Modified by" +msgstr "Alterado por" + +#: ../templates/serverInfo.php:314 +#: ../templates/serverInfo.php:387 +msgid "Modify" +msgstr "Modificar" + +#: ../templates/serverInfo.php:328 +#: ../templates/serverInfo.php:393 +msgid "Modify RDN" +msgstr "RDN do alterador" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:57 +msgid "Modify group" +msgstr "Editar grupo" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2110 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2111 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2114 +msgid "Modify group members" +msgstr "Alterar membros do grupo" + +#: ../templates/3rdParty/pla/htdocs/import.php:32 +msgid "Modifying" +msgstr "Modificando" + +#: ../templates/config/confmodules.php:176 +#: ../templates/config/confmain.php:217 +#: ../templates/config/moduleSettings.php:175 +#: ../templates/config/conftypes.php:194 +#: ../templates/selfService/adminMain.php:390 +msgid "Module settings" +msgstr "Configurações do módulo" + +#: ../templates/config/confmodules.php:172 +#: ../templates/config/confmain.php:213 +#: ../templates/config/moduleSettings.php:171 +#: ../templates/config/conftypes.php:190 +msgid "Modules" +msgstr "Módulos" + +#: ../lib/modules/sambaSamAccount.inc:1337 +msgid "Monday" +msgstr "Segunda-feira " + +#: ../lib/modules/sambaSamAccount.inc:542 +msgid "Mountain Time (US & Canada)" +msgstr "Mountain Time (US & Canada)" + +#: ../lib/modules/quota.inc:98 +#: ../lib/modules/quota.inc:392 +#: ../lib/modules/quota.inc:498 +#: ../lib/modules/quota.inc:625 +#: ../lib/modules/systemQuotas.inc:90 +#: ../lib/modules/systemQuotas.inc:115 +#: ../lib/modules/systemQuotas.inc:375 +msgid "Mountpoint" +msgstr "Ponto de montagem" + +#: ../lib/modules/systemQuotas.inc:90 +#: ../lib/modules/systemQuotas.inc:91 +msgid "Mountpoint contains invalid characters." +msgstr "Ponto de montagem contém caracteres inválidos." + +#: ../lib/modules/quota.inc:99 +msgid "Mountpoint of device with enabled quotas." +msgstr "Ponto de montagem do dispositivo com quotas habilitadas." + +#: ../lib/modules/customFields.inc:1852 +msgid "Multi-select fields must not contain empty values." +msgstr "Campos de multi-seleção não devem conter valores vazios." + +#: ../lib/modules/zarafaDynamicGroup.inc:69 +#: ../lib/modules/zarafaGroup.inc:68 +#: ../lib/modules/eduPerson.inc:99 +#: ../lib/modules/eduPerson.inc:111 +#: ../lib/modules/eduPerson.inc:127 +#: ../lib/modules/zarafaUser.inc:149 +#: ../lib/modules/sudoRole.inc:89 +#: ../lib/modules/sudoRole.inc:94 +#: ../lib/modules/sudoRole.inc:99 +#: ../lib/modules/sudoRole.inc:104 +#: ../lib/modules/sudoRole.inc:109 +#: ../lib/modules/sudoRole.inc:114 +msgid "Multiple values are separated by comma." +msgstr "Valores múltiplos são separados por uma vírgula." + +#: ../lib/modules/puppetClient.inc:78 +#: ../lib/modules/puppetClient.inc:90 +#: ../lib/modules/puppetClient.inc:98 +#: ../lib/modules/device.inc:67 +#: ../lib/modules/inetOrgPerson.inc:671 +#: ../lib/modules/inetOrgPerson.inc:679 +#: ../lib/modules/inetOrgPerson.inc:687 +#: ../lib/modules/inetOrgPerson.inc:695 +#: ../lib/modules/inetOrgPerson.inc:711 +#: ../lib/modules/inetOrgPerson.inc:719 +#: ../lib/modules/inetOrgPerson.inc:727 +#: ../lib/modules/inetOrgPerson.inc:735 +#: ../lib/modules/inetOrgPerson.inc:743 +#: ../lib/modules/inetOrgPerson.inc:763 +#: ../lib/modules/inetOrgPerson.inc:779 +#: ../lib/modules/inetOrgPerson.inc:787 +#: ../lib/modules/inetOrgPerson.inc:799 +#: ../lib/modules/inetOrgPerson.inc:807 +#: ../lib/modules/inetOrgPerson.inc:823 +#: ../lib/modules/inetOrgPerson.inc:831 +#: ../lib/modules/inetOrgPerson.inc:839 +#: ../lib/modules/systemQuotas.inc:63 +#: ../lib/modules/freeRadius.inc:94 +#: ../lib/modules/groupOfNames.inc:73 +msgid "Multiple values are separated by semicolon." +msgstr "Valores múltiplos são separados por ponto e vírgula." + +#: ../lib/modules/asteriskAccount.inc:198 +#: ../lib/modules/asteriskAccount.inc:289 +#: ../lib/modules/asteriskAccount.inc:352 +#: ../lib/modules/asteriskAccount.inc:548 +#: ../lib/modules/asteriskAccount.inc:887 +#: ../lib/modules/asteriskAccount.inc:1254 +msgid "Music on hold" +msgstr "Música em espera" + +#: ../lib/modules/asteriskAccount.inc:199 +msgid "Music to play on hold." +msgstr "Música para tocar em espera." + +#: ../lib/modules/ipHost.inc:86 +#: ../lib/modules/device.inc:103 +#: ../lib/modules/inetOrgPerson.inc:525 +msgid "MyCity" +msgstr "Minha Cidade" + +#: ../lib/modules/inetOrgPerson.inc:421 +#: ../lib/modules/inetOrgPerson.inc:429 +msgid "Mycity" +msgstr "Minha cidade" + +#: ../lib/modules/inetOrgPerson.inc:405 +msgid "Mystreetname 42" +msgstr "Minha rua, 42" + +#: ../lib/modules/asteriskAccount.inc:154 +#: ../lib/modules/asteriskAccount.inc:267 +#: ../lib/modules/asteriskAccount.inc:341 +#: ../lib/modules/asteriskAccount.inc:468 +#: ../lib/modules/asteriskAccount.inc:785 +#: ../lib/modules/asteriskAccount.inc:1221 +msgid "NAT" +msgstr "NAT" + +#: ../lib/modules/asteriskAccount.inc:155 +msgid "NAT setting for this account." +msgstr "Configuração NAT para esta conta." + +#: ../lib/modules/nisnetgroup.inc:60 +msgid "NIS net group" +msgstr "Grupo de rede NIS" + +#: ../lib/types/netgroup.inc:62 +msgid "NIS netgroup entries" +msgstr "Entradas de grupos de rede NIS" + +#: ../lib/types/netgroup.inc:53 +msgid "NIS netgroups" +msgstr "Grupos de rede NIS" + +#: ../lib/modules/nisObject.inc:40 +msgid "NIS object" +msgstr "Objeto NIS" + +#: ../lib/types/nisObjectType.inc:155 +#, php-format +msgid "NIS object count: %s" +msgstr "Contagem de objeto NIS: %s" + +#: ../lib/types/nisObjectType.inc:48 +msgid "NIS object entries" +msgstr "Entradas de objeto NIS" + +#: ../lib/types/nisObjectType.inc:39 +msgid "NIS objects" +msgstr "Objetos NIS" + +#: ../templates/serverInfo.php:147 +#: ../templates/masscreate.php:285 +#: ../templates/masscreate.php:360 +#: ../templates/schema/schema.php:268 +#: ../lib/types/automountType.inc:86 +#: ../lib/types/automountType.inc:249 +#: ../lib/types/ppolicyType.inc:77 +#: ../lib/modules/device.inc:54 +#: ../lib/modules/device.inc:82 +#: ../lib/modules/device.inc:113 +#: ../lib/modules/device.inc:155 +#: ../lib/modules/device.inc:423 +#: ../lib/modules/nisObject.inc:54 +#: ../lib/modules/nisObject.inc:74 +#: ../lib/modules/nisObject.inc:104 +#: ../lib/modules/nisObject.inc:130 +#: ../lib/modules/nisObject.inc:210 +#: ../lib/modules/ppolicy.inc:73 +#: ../lib/modules/ppolicy.inc:135 +#: ../lib/modules/ppolicy.inc:158 +#: ../lib/modules/ppolicy.inc:183 +#: ../lib/modules/ppolicy.inc:464 +#: ../lib/modules/automount.inc:57 +#: ../lib/modules/automount.inc:73 +#: ../lib/modules/automount.inc:96 +#: ../lib/modules/automount.inc:121 +#: ../lib/modules/automount.inc:193 +#: ../lib/modules/asteriskExtension.inc:821 +#: ../lib/modules/customFields.inc:72 +#: ../lib/modules/customFields.inc:647 +#: ../lib/modules/customFields.inc:1063 +#: ../lib/modules/groupOfNames.inc:170 +msgid "Name" +msgstr "Nome" + +#: ../lib/modules/zarafaAddressList.inc:57 +msgid "Name of the address list which should be created." +msgstr "Nome da lista de endereço que deve ser criado." + +#: ../help/help.inc:157 +msgid "Name under which the profile will be saved. If a profile with the same name exists, it will be overwritten." +msgstr "Nome sob qual o perfil será gravado. Se um perfil com o mesmo nome existir, será sobrescrito. " + +#: ../lib/modules/namedObject.inc:38 +msgid "Named object" +msgstr "Objeto nomeado" + +#: ../lib/modules/dhcp_settings.inc:179 +#: ../lib/modules/dhcp_settings.inc:198 +#: ../lib/modules/dhcp_settings.inc:576 +#: ../lib/modules/dhcp_settings.inc:644 +#: ../lib/modules/freeRadius.inc:81 +#: ../lib/modules/freeRadius.inc:117 +#: ../lib/modules/freeRadius.inc:131 +#: ../lib/modules/freeRadius.inc:194 +#: ../lib/modules/freeRadius.inc:221 +#: ../lib/modules/freeRadius.inc:313 +#: ../lib/modules/freeRadius.inc:620 +msgid "Net mask" +msgstr "Máscara de rede" + +#: ../lib/modules/dhcp_settings.inc:155 +#: ../lib/modules/dhcp_settings.inc:195 +#: ../lib/modules/dhcp_settings.inc:209 +#: ../lib/modules/dhcp_settings.inc:258 +#: ../lib/modules/dhcp_settings.inc:556 +#: ../lib/modules/dhcp_settings.inc:641 +msgid "Netbios name servers" +msgstr "Servidores de nomes Netbios" + +#: ../lib/modules/dhcp_settings.inc:159 +#: ../lib/modules/dhcp_settings.inc:196 +#: ../lib/modules/dhcp_settings.inc:211 +#: ../lib/modules/dhcp_settings.inc:264 +#: ../lib/modules/dhcp_settings.inc:566 +#: ../lib/modules/dhcp_settings.inc:642 +msgid "Netbios node type" +msgstr "Tipo de nó Netbios" + +#: ../lib/modules/authorizedServiceObject.inc:180 +msgid "New Authorized Service" +msgstr "Novo Serviço Autorizado" + +#: ../lib/types/dhcp.inc:118 +#: ../lib/types/dhcp.inc:172 +msgid "New DHCP" +msgstr "Novo DHCP" + +#: ../lib/modules/ipHost.inc:139 +msgid "New IP address" +msgstr "Novo endereço IP" + +#: ../lib/modules/ieee802device.inc:114 +msgid "New MAC address" +msgstr "Novos endereços MAC" + +#: ../lib/types/nisObjectType.inc:102 +#: ../lib/types/nisObjectType.inc:157 +msgid "New NIS object" +msgstr "Novo objeto NIS" + +#: ../templates/ou_edit.php:77 +msgid "New OU created successfully." +msgstr "Novas OU criadas com sucesso." + +#: ../lib/modules/ldapPublicKey.inc:108 +msgid "New SSH public key" +msgstr "Nova chave pública SSH" + +#: ../lib/modules/inetOrgPerson.inc:533 +msgid "New York" +msgstr "Nova Iorque" + +#: ../lib/types/zarafaAddressListType.inc:117 +#: ../lib/types/zarafaAddressListType.inc:146 +msgid "New address list" +msgstr "Nova lista de endereços" + +#: ../lib/types/mailAlias.inc:114 +#: ../lib/types/mailAlias.inc:143 +#: ../lib/types/alias.inc:114 +#: ../lib/types/alias.inc:143 +msgid "New alias" +msgstr "Novo apelido" + +#: ../lib/types/automountType.inc:110 +#: ../lib/types/automountType.inc:217 +msgid "New automount entry" +msgstr "Nova entrada do automount" + +#: ../lib/types/automountType.inc:233 +#: ../lib/types/automountType.inc:234 +msgid "New automount map" +msgstr "Novo mapa do automount" + +#: ../templates/config/profmanage.php:135 +msgid "New default profile set successfully." +msgstr "Novo perfil padrão atribuído com sucesso." + +#: ../lib/types/smbDomain.inc:114 +#: ../lib/types/smbDomain.inc:169 +msgid "New domain" +msgstr "Novo domínio" + +#: ../lib/types/asteriskExt.inc:117 +#: ../lib/types/asteriskExt.inc:145 +msgid "New extension" +msgstr "Nova extensão" + +#: ../templates/pdfedit/pdfpage.php:569 +msgid "New field" +msgstr "Novo campo" + +#: ../lib/types/gon.inc:119 +#: ../lib/types/gon.inc:182 +#: ../lib/types/zarafaDynamicGroupType.inc:119 +#: ../lib/types/zarafaDynamicGroupType.inc:167 +#: ../lib/types/group.inc:135 +#: ../lib/types/group.inc:206 +#: ../lib/types/netgroup.inc:116 +#: ../lib/types/netgroup.inc:171 +msgid "New group" +msgstr "Novo grupo" + +#: ../lib/types/host.inc:124 +#: ../lib/types/host.inc:188 +#: ../lib/modules/hostObject.inc:150 +msgid "New host" +msgstr "Novo host" + +#: ../lib/modules/inetLocalMailRecipient.inc:156 +msgid "New local address" +msgstr "Novo endereço local" + +#: ../templates/config/mainmanage.php:247 +msgid "New master password" +msgstr "Nova senha mestre" + +#: ../templates/config/mainmanage.php:74 +msgid "New master password set successfully." +msgstr "Nova senha mestre cadastrada com sucesso." + +#: ../lib/lists.inc:114 +msgid "New object" +msgstr "Novo objeto" + +#: ../templates/ou_edit.php:180 +#: ../help/help.inc:221 +msgid "New organisational unit" +msgstr "Nova unidade organizacional" + +#: ../templates/config/confmain.php:426 +#: ../lib/modules/sambaSamAccount.inc:2147 +#: ../lib/modules/posixAccount.inc:2102 +#: ../lib/modules/passwordSelfReset.inc:810 +msgid "New password" +msgstr "Nova senha" + +#: ../templates/config/profmanage.php:122 +msgid "New password set successfully." +msgstr "Nova senha cadastrada com sucesso." + +#: ../lib/types/ppolicyType.inc:122 +#: ../lib/types/ppolicyType.inc:151 +msgid "New policy" +msgstr "Nova política" + +#: ../templates/config/profmanage.php:260 +#: ../templates/selfService/profManage.php:231 +msgid "New profile name" +msgstr "Nome do novo do perfil" + +#: ../lib/modules/range.inc:94 +#: ../lib/modules/range.inc:108 +#: ../lib/modules/range.inc:444 +msgid "New range" +msgstr "Novo intervalo" + +#: ../lib/modules/nisMailAlias.inc:161 +msgid "New recipient" +msgstr "Novo recipiente" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:81 +msgid "New required attributes" +msgstr "Novos atributos requeridos" + +#: ../templates/pdfedit/pdfpage.php:537 +msgid "New section" +msgstr "Nova seção" + +#: ../lib/types/sudo.inc:106 +#: ../lib/types/sudo.inc:161 +msgid "New sudo role" +msgstr "Nova regra sudo" + +#: ../lib/types/user.inc:168 +#: ../lib/types/user.inc:486 +msgid "New user" +msgstr "Novo usuário" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "New value" +msgstr "Novo valor" + +#: ../lib/modules/sambaDomain.inc:78 +#: ../lib/modules/sambaDomain.inc:158 +#: ../lib/modules/sambaDomain.inc:179 +#: ../lib/modules/sambaDomain.inc:354 +#: ../lib/modules/sambaDomain.inc:641 +msgid "Next RID" +msgstr "Próximo RID" + +#: ../lib/modules/sambaDomain.inc:205 +#: ../lib/modules/sambaDomain.inc:206 +msgid "Next RID is not a number!" +msgstr "Próximo RID não é um número!" + +#: ../lib/modules/sambaDomain.inc:79 +msgid "Next RID to use when creating accounts (only used by Winbind)." +msgstr "Próximo RID para ser usado na criação de contas(somente usado pelo Winbind)." + +#: ../lib/modules/sambaDomain.inc:87 +msgid "Next RID to use when creating group accounts (only used by Winbind)." +msgstr "Próximo RID para ser usado na criação de contas de grupos(somente usado pelo Winbind)." + +#: ../lib/modules/sambaDomain.inc:83 +msgid "Next RID to use when creating user accounts (only used by Winbind)." +msgstr "Próximo RID para ser usado na criação de contas de usuários(somente usado pelo Winbind)." + +#: ../lib/modules/sambaDomain.inc:86 +#: ../lib/modules/sambaDomain.inc:170 +#: ../lib/modules/sambaDomain.inc:181 +#: ../lib/modules/sambaDomain.inc:370 +#: ../lib/modules/sambaDomain.inc:647 +msgid "Next group RID" +msgstr "Próximo RID de grupo" + +#: ../lib/modules/sambaDomain.inc:209 +#: ../lib/modules/sambaDomain.inc:210 +msgid "Next group RID is not a number!" +msgstr "Próximo RID de grupo não é um número!" + +#: ../lib/modules/sambaDomain.inc:82 +#: ../lib/modules/sambaDomain.inc:164 +#: ../lib/modules/sambaDomain.inc:180 +#: ../lib/modules/sambaDomain.inc:362 +#: ../lib/modules/sambaDomain.inc:644 +msgid "Next user RID" +msgstr "Próximo RID de usuário" + +#: ../lib/modules/sambaDomain.inc:207 +#: ../lib/modules/sambaDomain.inc:208 +msgid "Next user RID is not a number!" +msgstr "Próximo RID de usuário não é um número!" + +#: ../lib/modules/eduPerson.inc:89 +#: ../lib/modules/eduPerson.inc:168 +#: ../lib/modules/eduPerson.inc:200 +#: ../lib/modules/eduPerson.inc:312 +#: ../lib/modules/eduPerson.inc:674 +msgid "Nick names" +msgstr "Apelidos" + +#: ../templates/schema/schema.php:153 +#: ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 +#: ../templates/schema/schema.php:205 +#: ../lib/modules/imapAccess.inc:112 +msgid "No" +msgstr "Não" + +#: ../lib/types/asteriskExt.inc:144 +msgid "No Asterisk extensions found." +msgstr "Extensões Asterisk não encontradas." + +#: ../lib/types/dhcp.inc:171 +msgid "No DHCPs found!" +msgstr "Nenhum host DHCP encontrado!" + +#: ../lib/types/nisObjectType.inc:156 +msgid "No NIS objects found!" +msgstr "Nenhum objeto NIS encontrado!" + +#: ../templates/3rdParty/pla/lib/Template.php:558 +#: ../templates/3rdParty/pla/lib/Template.php:559 +msgid "No RDN attribute was selected." +msgstr "Nenhum atributo RDN foi selecionado." + +#: ../lib/modules/sambaSamAccount.inc:1086 +#: ../lib/modules/sambaGroupMapping.inc:245 +msgid "No Samba 3 domains found in LDAP! Please create one first." +msgstr "Nenhum domínio Samba 3 encontrado no LDAP! Por favor crie um primeiro." + +#: ../lib/modules/posixAccount.inc:464 +#: ../lib/modules/posixAccount.inc:1063 +msgid "No Unix groups found in LDAP! Please create one first." +msgstr "Nenhum grupo UNIX encontrado no LDAP! Por favor crie um primeiro." + +#: ../lib/modules/qmailUser.inc:42 +msgid "No access" +msgstr "Sem acesso" + +#: ../lib/types/zarafaAddressListType.inc:145 +msgid "No address list found!" +msgstr "Nenhuma lista de endereços encontrada!" + +#: ../lib/types/mailAlias.inc:142 +#: ../lib/types/alias.inc:142 +msgid "No aliases found!" +msgstr "Nenhum apelido encontrado!" + +#: ../lib/types/automountType.inc:216 +msgid "No automount entries found!" +msgstr "Nenhuma entrada de mapeamento encontrada!" + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:36 +msgid "No binary data available" +msgstr "Nenhum dado binário disponível" + +#: ../templates/initsuff.php:163 +msgid "No changes were made." +msgstr "Nenhuma mudança foi feita." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:83 +#, php-format +msgid "No current value for attribute %s." +msgstr "Nenhum valor para o atributo %s." + +#: ../templates/schema/schema.php:144 +msgid "No description" +msgstr "Sem descrição" + +#: ../lib/types/smbDomain.inc:168 +msgid "No domains found!" +msgstr "Nenhum domínio encontrado!" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:20 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:21 +msgid "No entry was selected to delete" +msgstr "Nenhuma entrada foi selecionado para apagar" + +#: ../lib/modules/inetOrgPerson.inc:81 +msgid "No file selected." +msgstr "Nenhum arquivo selecionado." + +#: ../lib/modules/qmailUser.inc:48 +msgid "No forwarding" +msgstr "Sem repasse" + +#: ../lib/modules/posixGroup.inc:498 +#: ../lib/modules/posixAccount.inc:88 +msgid "No free ID-Number!" +msgstr "Nenhum número ID livre!" + +#: ../lib/types/gon.inc:181 +#: ../lib/types/zarafaDynamicGroupType.inc:166 +#: ../lib/types/group.inc:205 +#: ../lib/types/netgroup.inc:170 +msgid "No groups found!" +msgstr "Nenhum grupo encontrado!" + +#: ../lib/types/host.inc:187 +msgid "No hosts found!" +msgstr "Nenhum host encontrado!" + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:59 +msgid "No image available" +msgstr "Nenhuma imagem disponível" + +#: ../templates/3rdParty/pla/lib/import_functions.php:94 +msgid "No import input" +msgstr "Nenhuma entrada de importação" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1354 +msgid "No internal attributes" +msgstr "Nenhum atributo interno" + +#: ../templates/tests/lamdaemonTest.php:195 +msgid "No lamdaemon path set, please update your LAM configuration settings." +msgstr "Nenhum caminho para LAMdaemon cadastrado, por favor atualize as configurações do seu LAM." + +#: ../templates/tests/lamdaemonTest.php:97 +#: ../templates/tests/lamdaemonTest.php:190 +msgid "No lamdaemon server set, please update your LAM configuration settings." +msgstr "Nenhum servidor LAMdaemon cadastrado, por favor atualize as configurações do seu LAM." + +#: ../lib/modules/qmailUser.inc:49 +msgid "No local delivery" +msgstr "Sem entrega local" + +#: ../templates/config/mainmanage.php:227 +msgid "No logging" +msgstr "Não está registrando eventos" + +#: ../templates/pdfedit/pdfpage.php:424 +msgid "No logo" +msgstr "Nenhum logo" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:157 +msgid "No new attributes available for this entry" +msgstr "Não existem novos atributos disponíveis para esta entrada" + +#: ../lib/lists.inc:113 +msgid "No objects found!" +msgstr "Nenhum objeto encontrado!" + +#: ../templates/config/confmodules.php:396 +msgid "No or more than one base module selected!" +msgstr "Nenhum módulo base selecionado!" + +#: ../templates/config/confsave.php:53 +#: ../templates/config/confmain.php:55 +#: ../lib/modules/passwordSelfReset.inc:875 +msgid "No password was entered!" +msgstr "Nenhuma senha foi digitada!" + +#: ../lib/types/ppolicyType.inc:150 +msgid "No policies found!" +msgstr "Nenhuma política encontrada!" + +#: ../templates/tests/schemaTest.php:70 +msgid "No problems found." +msgstr "Nenhum problema encontrado." + +#: ../lib/modules/qmailUser.inc:50 +msgid "No program delivery" +msgstr "Nenhum programa para entregar" + +#: ../lib/modules/customScripts.inc:181 +msgid "No scripts to run." +msgstr "Nenhum script para rodar." + +#: ../templates/pdfedit/pdfpage.php:121 +msgid "No section text specified" +msgstr "Nenhuma seção de texto especificada" + +#: ../lib/modules/passwordSelfReset.inc:897 +msgid "No security answer found." +msgstr "Nenhuma pergunta secreta encontrada." + +#: ../templates/config/conflogin.php:136 +msgid "No server profiles found. Please create one." +msgstr "Nenhum perfil de servidor encontrado. Por favor crie um." + +#: ../templates/pdfedit/pdfpage.php:109 +msgid "No static text specified" +msgstr "Nenhum texto estático especificado" + +#: ../lib/modules/dhcp_settings.inc:290 +msgid "No subnet entered." +msgstr "Nenhuma subrede informada!" + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:45 +msgid "No such entry" +msgstr "Nenhuma entrada!" + +#: ../templates/3rdParty/pla/htdocs/compare.php:24 +#: ../templates/3rdParty/pla/htdocs/compare.php:27 +#: ../templates/3rdParty/pla/htdocs/delete.php:19 +msgid "No such entry." +msgstr "Nenhuma entrada!" + +#: ../templates/schema/schema.php:438 +#, php-format +msgid "No such schema item: \"%s\"" +msgstr "Nenhum item de esquema: \"%s\"" + +#: ../lib/types/sudo.inc:160 +msgid "No sudo roles found!" +msgstr "Nenhuma regra \"sudo\" encontrada!" + +#: ../lib/types/user.inc:485 +msgid "No users found!" +msgstr "Nenhum usuário encontrado!" + +#: ../lib/modules/qmailUser.inc:58 +msgid "None" +msgstr "Nenhum" + +#: ../help/help.inc:68 +msgid "Note" +msgstr "Nota" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:125 +msgid "Note: You may be required to enter new attributes that these object classes require" +msgstr "Nota: Você pode ser solicitado a inserir novos atributos que essas classes de objetos requerem" + +#: ../templates/3rdParty/pla/lib/export_functions.php:450 +msgid "Nothing to export" +msgstr "Nada para exportar" + +#: ../templates/config/mainmanage.php:223 +msgid "Notice" +msgstr "Observação" + +#: ../templates/delete.php:99 +msgid "Number of child entries" +msgstr "Número de entradas filho" + +#: ../lib/modules/customFields.inc:113 +msgid "Number of columns in text area." +msgstr "Número de colunas na área de texto." + +#: ../lib/modules/shadowAccount.inc:173 +msgid "Number of days a user can login even his password has expired. -1=always." +msgstr "Número de dias que um usuário poderá iniciar uma sessão mesmo que sua senha tenha expirado. -1=sempre." + +#: ../lib/modules/shadowAccount.inc:177 +msgid "Number of days a user has to wait until he is allowed to change his password again. If set value must be >0." +msgstr "Número de dias que um usuário irá esperar até que este esteja habilitado para trocar sua senha novamente. Se habilitado, deve ser um valor maior que 0." + +#: ../lib/modules/shadowAccount.inc:181 +msgid "Number of days after a user has to change his password again. If set value must be >0." +msgstr "Número de dias que um usuário irá esperar até que este esteja habilitado para trocar sua senha novamente. Se habilitado, deve ser um valor maior que 0." + +#: ../lib/modules/mitKerberos.inc:122 +msgid "Number of failed logins." +msgstr "Número de logins que falharam." + +#: ../lib/modules/sambaDomain.inc:131 +msgid "Number of minutes after which the bad logon attempts are reset." +msgstr "Número de minutos que o sistema vai esperar até limpar as tentativas mal sucedidas de início de sessão." + +#: ../lib/modules/customFields.inc:117 +msgid "Number of rows in text area." +msgstr "Número de linhas na área de texto." + +#: ../lib/modules/ppolicy.inc:78 +#: ../lib/modules/sambaDomain.inc:119 +msgid "Number of seconds after the user is allowed to change his password again." +msgstr "Número de segundos que o sistema vai esperar para permitir o usuário alterar a senha novamente." + +#: ../lib/modules/ppolicy.inc:82 +#: ../lib/modules/sambaDomain.inc:123 +msgid "Number of seconds after which the user must change his password." +msgstr "O número de segundos depois do qual o usuário deve mudar sua senha." + +#: ../templates/schema/schema.php:147 +#: ../templates/schema/schema.php:344 +msgid "OID" +msgstr "OID" + +#: ../templates/ou_edit.php:83 +msgid "OU already exists!" +msgstr "OU já existe!" + +#: ../templates/ou_edit.php:94 +msgid "OU deleted successfully." +msgstr "OU apagado com sucesso." + +#: ../templates/ou_edit.php:152 +#: ../lib/tools/ouEditor.inc:44 +msgid "OU editor" +msgstr "Editor de OU" + +#: ../templates/ou_edit.php:87 +msgid "OU is invalid!" +msgstr "OU inválido!" + +#: ../templates/ou_edit.php:131 +msgid "OU is not empty or invalid!" +msgstr "OU inválido ou vazio!" + +#: ../help/help.inc:221 +#: ../help/help.inc:223 +msgid "OU-Editor" +msgstr "Editor de OU" + +#: ../templates/schema/schema.php:65 +#: ../templates/schema/schema.php:66 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1324 +#: ../lib/modules/selfRegistration.inc:64 +#: ../lib/modules/selfRegistration.inc:113 +#: ../lib/modules/customFields.inc:68 +#: ../lib/modules/customFields.inc:422 +msgid "Object classes" +msgstr "Classes de objetos" + +#: ../lib/lists.inc:112 +#, php-format +msgid "Object count: %s" +msgstr "Contagem de objetos: %s" + +#: ../templates/schema/schema.php:152 +#: ../templates/schema/schema.php:283 +msgid "Obsolete" +msgstr "Obsoleto" + +#: ../lib/modules/sambaDomain.inc:282 +#: ../lib/modules/sambaDomain.inc:291 +#: ../lib/modules/sambaDomain.inc:300 +#: ../lib/modules/sambaDomain.inc:659 +#: ../lib/modules/sambaDomain.inc:664 +#: ../lib/modules/sambaDomain.inc:669 +msgid "Off" +msgstr "Desligado" + +#: ../lib/modules/inetOrgPerson.inc:129 +#: ../lib/modules/inetOrgPerson.inc:165 +#: ../lib/modules/inetOrgPerson.inc:281 +#: ../lib/modules/inetOrgPerson.inc:547 +#: ../lib/modules/inetOrgPerson.inc:582 +#: ../lib/modules/inetOrgPerson.inc:794 +#: ../lib/modules/inetOrgPerson.inc:798 +#: ../lib/modules/inetOrgPerson.inc:1557 +#: ../lib/modules/inetOrgPerson.inc:2186 +#: ../lib/modules/inetOrgPerson.inc:2854 +msgid "Office name" +msgstr "Nome do escritório" + +#: ../templates/lists/changePassword.php:301 +#: ../templates/lists/changePassword.php:330 +#: ../templates/lists/changePassword.php:364 +#: ../templates/lists/changePassword.php:390 +#: ../templates/tests/lamdaemonTest.php:92 +#: ../templates/ou_edit.php:188 +#: ../templates/ou_edit.php:202 +#: ../templates/masscreate.php:205 +#: ../templates/config/profmanage.php:253 +#: ../templates/config/profmanage.php:265 +#: ../templates/config/profmanage.php:274 +#: ../templates/config/profmanage.php:291 +#: ../templates/config/profmanage.php:300 +#: ../templates/config/profmanage.php:302 +#: ../templates/config/mainmanage.php:260 +#: ../templates/config/conflogin.php:171 +#: ../templates/config/mainlogin.php:163 +#: ../templates/selfService/profManage.php:220 +#: ../templates/selfService/profManage.php:236 +#: ../templates/selfService/profManage.php:249 +#: ../templates/selfService/adminLogin.php:164 +#: ../templates/selfService/adminMain.php:519 +#: ../templates/selfService/adminMain.php:572 +#: ../templates/pdfedit/pdfmain.php:197 +#: ../templates/pdfedit/pdfmain.php:204 +#: ../templates/pdfedit/pdfmain.php:210 +#: ../templates/profedit/profilemain.php:196 +#: ../templates/profedit/profilemain.php:202 +#: ../templates/profedit/profilemain.php:208 +#: ../lib/types/automountType.inc:234 +#: ../lib/types/user.inc:283 +#: ../lib/modules/selfRegistration.inc:384 +#: ../lib/modules/zarafaContact.inc:401 +#: ../lib/modules/zarafaGroup.inc:457 +#: ../lib/modules/device.inc:297 +#: ../lib/modules/sambaSamAccount.inc:1393 +#: ../lib/modules/sambaSamAccount.inc:1528 +#: ../lib/modules/zarafaUser.inc:920 +#: ../lib/modules/zarafaUser.inc:971 +#: ../lib/modules/nisnetgroup.inc:472 +#: ../lib/modules/nisnetgroup.inc:482 +#: ../lib/modules/asteriskExtension.inc:477 +#: ../lib/modules/aliasEntry.inc:139 +#: ../lib/modules/aliasEntry.inc:159 +#: ../lib/modules/imapAccess.inc:275 +#: ../lib/modules/passwordSelfReset.inc:680 +#: ../lib/modules/passwordSelfReset.inc:831 +#: ../lib/modules/groupOfNames.inc:319 +#: ../lib/modules/groupOfNames.inc:431 +#: ../lib/lists.inc:660 +#: ../lib/lists.inc:738 +#: ../lib/modules.inc:1166 +msgid "Ok" +msgstr "Ok" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:98 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +msgid "Old value" +msgstr "Valor antigo" + +#: ../lib/modules/sambaDomain.inc:282 +#: ../lib/modules/sambaDomain.inc:291 +#: ../lib/modules/sambaDomain.inc:300 +#: ../lib/modules/sambaDomain.inc:660 +#: ../lib/modules/sambaDomain.inc:665 +#: ../lib/modules/sambaDomain.inc:670 +msgid "On" +msgstr "Ligado" + +#: ../lib/modules/sambaSamAccount.inc:234 +#: ../lib/modules/sambaSamAccount.inc:372 +#: ../lib/modules/sambaSamAccount.inc:1514 +#: ../lib/modules/sambaSamAccount.inc:1794 +msgid "On broken or timed out connection" +msgstr "Quebrado ou tempo limite de conexão expirado" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:139 +#: ../templates/3rdParty/pla/htdocs/export_form.php:32 +msgid "One (one level beneath base)" +msgstr "One (um nível abaixo da base)" + +#: ../lib/modules/range.inc:107 +#: ../lib/modules/fixed_ip.inc:106 +msgid "One or more errors occured. The invalid fields are marked." +msgstr "Um ou mais erros. Os campos marcados são inválidos." + +#: ../templates/3rdParty/pla/htdocs/copy.php:98 +#: ../templates/3rdParty/pla/htdocs/copy.php:155 +#, php-format +msgid "Operation not successful. DN %s has not been created." +msgstr "Operação falhou. DN %s não pôde ser criado." + +#: ../templates/serverInfo.php:277 +#: ../templates/serverInfo.php:367 +msgid "Operation statistics" +msgstr "Estatísticas de operação" + +#: ../templates/3rdParty/pla/htdocs/copy.php:95 +#: ../templates/3rdParty/pla/htdocs/copy.php:153 +#, php-format +msgid "Operation successful. DN %s has been created." +msgstr "Operação realizada com sucesso. DN %s foi criado." + +#: ../templates/schema/schema.php:384 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1575 +msgid "Optional attributes" +msgstr "Atributos opcionais" + +#: ../lib/types/sudo.inc:83 +#: ../lib/modules/mitKerberos.inc:404 +#: ../lib/modules/zarafaDynamicGroup.inc:241 +#: ../lib/modules/zarafaContact.inc:211 +#: ../lib/modules/zarafaGroup.inc:248 +#: ../lib/modules/posixAccount.inc:198 +#: ../lib/modules/zarafaUser.inc:574 +#: ../lib/modules/sudoRole.inc:83 +#: ../lib/modules/sudoRole.inc:112 +#: ../lib/modules/sudoRole.inc:164 +#: ../lib/modules/sudoRole.inc:178 +#: ../lib/modules/sudoRole.inc:187 +#: ../lib/modules/sudoRole.inc:399 +#: ../lib/modules/sudoRole.inc:702 +#: ../lib/modules/asteriskExtension.inc:115 +#: ../lib/modules/asteriskVoicemail.inc:106 +#: ../lib/modules/asteriskVoicemail.inc:116 +#: ../lib/modules/asteriskVoicemail.inc:133 +#: ../lib/modules/asteriskVoicemail.inc:181 +#: ../lib/modules/asteriskVoicemail.inc:273 +#: ../lib/modules/asteriskVoicemail.inc:414 +#: ../lib/modules/heimdalKerberos.inc:331 +msgid "Options" +msgstr "Opções" + +#: ../lib/modules/asteriskVoicemail.inc:107 +msgid "Options for Asterisk voicemail account (e.g. sendvoicemail=yes)." +msgstr "Opções para a caixa de correio de voz do Asterisk (ex. sendvoicemail=yes)." + +#: ../lib/modules/selfRegistration.inc:121 +msgid "Options four and five are used for input validation." +msgstr "Opções quatro e cinco são usadas para validação de entrada." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:39 +msgid "Or paste your LDIF here" +msgstr "Ou cole seu LDIF aqui" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:166 +msgid "Order by" +msgstr "Ordenado por" + +#: ../templates/schema/schema.php:171 +msgid "Ordering" +msgstr "Ordenando" + +#: ../lib/modules/eduPerson.inc:114 +#: ../lib/modules/eduPerson.inc:180 +#: ../lib/modules/eduPerson.inc:201 +#: ../lib/modules/eduPerson.inc:218 +#: ../lib/modules/eduPerson.inc:354 +#: ../lib/modules/eduPerson.inc:685 +#: ../lib/modules/inetOrgPerson.inc:189 +#: ../lib/modules/inetOrgPerson.inc:309 +#: ../lib/modules/inetOrgPerson.inc:515 +#: ../lib/modules/inetOrgPerson.inc:624 +#: ../lib/modules/inetOrgPerson.inc:826 +#: ../lib/modules/inetOrgPerson.inc:830 +#: ../lib/modules/inetOrgPerson.inc:1837 +#: ../lib/modules/inetOrgPerson.inc:2188 +msgid "Organisation" +msgstr "Organização" + +#: ../lib/modules/inetOrgPerson.inc:186 +#: ../lib/modules/inetOrgPerson.inc:307 +#: ../lib/modules/inetOrgPerson.inc:507 +#: ../lib/modules/inetOrgPerson.inc:627 +#: ../lib/modules/inetOrgPerson.inc:818 +#: ../lib/modules/inetOrgPerson.inc:822 +#: ../lib/modules/inetOrgPerson.inc:1810 +#: ../lib/modules/inetOrgPerson.inc:2187 +msgid "Organisational unit" +msgstr "Unidade organizacional" + +#: ../lib/modules/eduPerson.inc:122 +#: ../lib/modules/eduPerson.inc:126 +#: ../lib/modules/eduPerson.inc:192 +#: ../lib/modules/eduPerson.inc:202 +#: ../lib/modules/eduPerson.inc:378 +#: ../lib/modules/eduPerson.inc:691 +msgid "Organisational units" +msgstr "Unidades organizacionais" + +#: ../lib/modules/eduPerson.inc:222 +msgid "Organisational units contains an invalid entry." +msgstr "Unidade organizacional contém uma entrada inválida." + +#: ../templates/config/confmain.php:316 +msgid "Other" +msgstr "Outros" + +#: ../lib/modules/customScripts.inc:77 +#: ../lib/modules/customScripts.inc:89 +#: ../lib/modules/customScripts.inc:98 +msgid "Output may contain HTML" +msgstr "Saída pode conter HTML" + +#: ../lib/modules/customScripts.inc:230 +#: ../lib/modules/customScripts.inc:516 +#, php-format +msgid "Output of command \"%s\" with return code %s" +msgstr "Saída do comando \"%s\" com código de retorno %s" + +#: ../templates/serverInfo.php:168 +msgid "Overlays" +msgstr "Sobreposições" + +#: ../lib/modules/zarafaUser.inc:74 +msgid "Override default quota settings." +msgstr "Substituir as configurações de quota padrão." + +#: ../templates/config/confmain.php:308 +#: ../lib/types/asteriskExt.inc:96 +#: ../lib/types/asteriskExt.inc:158 +msgid "Owner" +msgstr "Dono" + +#: ../lib/types/gon.inc:94 +#: ../lib/modules/device.inc:62 +#: ../lib/modules/device.inc:66 +#: ../lib/modules/device.inc:95 +#: ../lib/modules/device.inc:115 +#: ../lib/modules/device.inc:179 +#: ../lib/modules/device.inc:426 +#: ../lib/modules/groupOfNames.inc:68 +#: ../lib/modules/groupOfNames.inc:72 +#: ../lib/modules/groupOfNames.inc:105 +#: ../lib/modules/groupOfNames.inc:131 +#: ../lib/modules/groupOfNames.inc:180 +#: ../lib/modules/groupOfNames.inc:541 +msgid "Owners" +msgstr "Donos" + +#: ../lib/modules/dhcp_settings.inc:95 +msgid "P-Node (0x02)" +msgstr "Nó P (0x02)" + +#: ../lib/modules/fixed_ip.inc:88 +#: ../lib/modules/fixed_ip.inc:335 +#: ../lib/modules/fixed_ip.inc:523 +msgid "PC name" +msgstr "Nome da estação de trabalho" + +#: ../templates/pdfedit/pdfpage.php:440 +#: ../templates/pdfedit/pdfmain.php:81 +#: ../lib/tools/pdfEdit.inc:44 +msgid "PDF editor" +msgstr "Editor PDF" + +#: ../templates/masscreate.php:268 +#: ../templates/pdfedit/pdfmain.php:274 +#: ../lib/lists.inc:638 +#: ../help/help.inc:172 +msgid "PDF structure" +msgstr "Estrutura PDF" + +#: ../templates/pdfedit/pdfpage.php:92 +msgid "PDF structure name not valid" +msgstr "Nome de estrutura PDF inválido" + +#: ../templates/pdfedit/pdfmain.php:157 +msgid "PDF structure was successfully saved." +msgstr "Estrutura PDF foi salva com sucesso." + +#: ../templates/pdfedit/pdfmain.php:241 +msgid "PDF structures" +msgstr "Estruturas PDF" + +#: ../templates/serverInfo.php:264 +msgid "PDUs sent" +msgstr "PDUs enviado" + +#: ../lib/modules/zarafaUser.inc:325 +#: ../lib/modules/zarafaUser.inc:648 +#: ../lib/modules/zarafaUser.inc:1410 +msgid "POP3" +msgstr "POP3" + +#: ../templates/lists/changePassword.php:356 +#: ../templates/lists/changePassword.php:382 +#: ../lib/types/user.inc:355 +#: ../lib/types/user.inc:389 +msgid "PPolicy" +msgstr "Política" + +#: ../lib/modules/sambaSamAccount.inc:541 +msgid "Pacific Time (US & Canada)" +msgstr "Pacific Time (US & Canada)" + +#: ../lib/modules/dhcp_settings.inc:152 +msgid "Packets are sent to the default gateway if the receiver does not reside in the same network. The default gateway routes them to the target network." +msgstr "Os pacotes são enviados para o gateway padrão, se o receptor não residir na mesma rede. O gateway irá encaminhá-los à rede destino." + +#: ../templates/selfService/adminMain.php:446 +#: ../help/help.inc:200 +msgid "Page header" +msgstr "Cabeçalho da página" + +#: ../templates/selfService/adminMain.php:389 +msgid "Page layout" +msgstr "Leiaute de Página" + +#: ../lib/modules/asteriskVoicemail.inc:102 +#: ../lib/modules/asteriskVoicemail.inc:132 +#: ../lib/modules/asteriskVoicemail.inc:175 +#: ../lib/modules/asteriskVoicemail.inc:267 +#: ../lib/modules/asteriskVoicemail.inc:406 +msgid "Pager" +msgstr "Paginador" + +#: ../lib/modules/asteriskVoicemail.inc:103 +msgid "Pager number for Asterisk voicemail." +msgstr "Número de páginas para caixa de correio de voz do Asterisk." + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:35 +msgid "Parent DN" +msgstr "DN principal" + +#: ../lib/modules/puppetClient.inc:81 +#: ../lib/modules/puppetClient.inc:127 +#: ../lib/modules/puppetClient.inc:147 +#: ../lib/modules/puppetClient.inc:258 +#: ../lib/modules/puppetClient.inc:425 +#: ../lib/modules/puppetClient.inc:462 +msgid "Parent node" +msgstr "Nó pai" + +#: ../lib/modules/puppetClient.inc:183 +msgid "Parent node not found." +msgstr "Nó pai não encontrado." + +#: ../templates/schema/schema.php:366 +msgid "Parent to" +msgstr "Pai de" + +#: ../templates/3rdParty/pla/htdocs/import.php:98 +msgid "Parse error" +msgstr "Erro de interpretação" + +#: ../templates/lists/changePassword.php:317 +#: ../templates/login.php:335 +#: ../templates/selfService/selfServiceLogin.php:269 +#: ../lib/selfService.inc:373 +#: ../lib/modules/mitKerberos.inc:145 +#: ../lib/modules/mitKerberos.inc:230 +#: ../lib/modules/mitKerberos.inc:245 +#: ../lib/modules/mitKerberos.inc:795 +#: ../lib/modules/mitKerberos.inc:798 +#: ../lib/modules/selfRegistration.inc:349 +#: ../lib/modules/selfRegistration.inc:421 +#: ../lib/modules/selfRegistration.inc:424 +#: ../lib/modules/selfRegistration.inc:427 +#: ../lib/modules/asteriskAccount.inc:106 +#: ../lib/modules/asteriskAccount.inc:387 +#: ../lib/modules/posixGroup.inc:206 +#: ../lib/modules/posixGroup.inc:495 +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:241 +#: ../lib/modules/sambaSamAccount.inc:410 +#: ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/posixAccount.inc:94 +#: ../lib/modules/posixAccount.inc:158 +#: ../lib/modules/posixAccount.inc:265 +#: ../lib/modules/posixAccount.inc:336 +#: ../lib/modules/posixAccount.inc:405 +#: ../lib/modules/posixAccount.inc:1165 +#: ../lib/modules/posixAccount.inc:1501 +#: ../lib/modules/posixAccount.inc:1504 +#: ../lib/modules/inetOrgPerson.inc:842 +#: ../lib/modules/inetOrgPerson.inc:1877 +#: ../lib/modules/inetOrgPerson.inc:2326 +#: ../lib/modules/asteriskVoicemail.inc:90 +#: ../lib/modules/asteriskVoicemail.inc:156 +#: ../lib/modules/customFields.inc:1283 +#: ../lib/modules/heimdalKerberos.inc:117 +#: ../lib/modules/heimdalKerberos.inc:199 +#: ../lib/modules/heimdalKerberos.inc:211 +#: ../lib/modules/heimdalKerberos.inc:689 +#: ../lib/modules/heimdalKerberos.inc:692 +#: ../lib/modules.inc:1006 +#: ../help/help.inc:170 +msgid "Password" +msgstr "Senha" + +#: ../lib/modules/sambaSamAccount.inc:282 +#: ../lib/modules/sambaSamAccount.inc:1138 +msgid "Password change at next login" +msgstr "Senha será alterada no próximo login" + +#: ../lib/modules/mitKerberos.inc:141 +#: ../lib/modules/mitKerberos.inc:249 +#: ../lib/modules/heimdalKerberos.inc:111 +#: ../lib/modules/heimdalKerberos.inc:215 +msgid "Password change command" +msgstr "Comando de troca de senha" + +#: ../templates/lists/changePassword.php:270 +msgid "Password change options" +msgstr "Opções de troca de senha" + +#: ../lib/modules/ppolicyUser.inc:52 +#: ../lib/modules/ppolicyUser.inc:67 +#: ../lib/modules/ppolicyUser.inc:121 +#: ../lib/modules/ppolicyUser.inc:232 +msgid "Password change required" +msgstr "Troca de senha requerida" + +#: ../lib/types/ppolicyType.inc:91 +#: ../lib/modules/ppolicy.inc:129 +#: ../lib/modules/ppolicy.inc:149 +#: ../lib/modules/ppolicy.inc:293 +#: ../lib/modules/ppolicy.inc:503 +msgid "Password change requires old password" +msgstr "Alteração de senha requer a senha antiga" + +#: ../lib/modules/mitKerberos.inc:178 +#: ../lib/modules/mitKerberos.inc:463 +#: ../lib/modules/heimdalKerberos.inc:147 +#: ../lib/modules/heimdalKerberos.inc:385 +msgid "Password change service" +msgstr "Serviço de alteração de senha" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:30 +msgid "Password check" +msgstr "Checagem de senha" + +#: ../lib/modules/mitKerberos.inc:283 +#: ../lib/modules/selfRegistration.inc:424 +#: ../lib/modules/posixGroup.inc:495 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:105 +#: ../lib/modules/posixAccount.inc:94 +#: ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/inetOrgPerson.inc:84 +msgid "Password contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and #*,.;:_-+!%&/|?{[()]}=@$ !" +msgstr "A senha contém caracteres inválidos. Os caracteres válidos são: a-z, A-Z, 0-9 and #*,.;:_-+!%&/|?{[()]}=@$ !" + +#: ../lib/modules/sambaSamAccount.inc:267 +#: ../lib/modules/sambaSamAccount.inc:270 +#: ../lib/modules/sambaSamAccount.inc:432 +#: ../lib/modules/sambaSamAccount.inc:1128 +#: ../lib/modules/sambaSamAccount.inc:1553 +msgid "Password does not expire" +msgstr "Senha nunca expira" + +#: ../lib/types/user.inc:103 +#: ../lib/modules/shadowAccount.inc:61 +#: ../lib/modules/shadowAccount.inc:106 +#: ../lib/modules/shadowAccount.inc:163 +#: ../lib/modules/shadowAccount.inc:172 +#: ../lib/modules/shadowAccount.inc:206 +#: ../lib/modules/shadowAccount.inc:313 +#: ../lib/modules/shadowAccount.inc:505 +msgid "Password expiration" +msgstr "Expiração de senha" + +#: ../lib/modules/shadowAccount.inc:61 +#: ../lib/modules/shadowAccount.inc:62 +msgid "Password expiration must be are natural number or -1." +msgstr "Expiração de senha deve ser um número natural ou -1." + +#: ../lib/modules/asteriskVoicemail.inc:91 +msgid "Password for voicemail mailbox." +msgstr "Senha para a caixa de correio de voz." + +#: ../lib/modules/posixGroup.inc:423 +#: ../lib/modules/posixGroup.inc:455 +#: ../lib/modules/posixAccount.inc:164 +#: ../lib/modules/posixAccount.inc:200 +#: ../lib/modules/posixAccount.inc:356 +#: ../lib/modules/inetOrgPerson.inc:323 +#: ../lib/modules/inetOrgPerson.inc:814 +#: ../lib/modules/customFields.inc:120 +#: ../lib/modules/customFields.inc:1294 +msgid "Password hash type" +msgstr "Tipo de hash de senha" + +#: ../lib/types/ppolicyType.inc:80 +#: ../lib/modules/ppolicy.inc:85 +#: ../lib/modules/ppolicy.inc:138 +#: ../lib/modules/ppolicy.inc:162 +#: ../lib/modules/ppolicy.inc:223 +#: ../lib/modules/ppolicy.inc:467 +#: ../lib/modules/sambaDomain.inc:98 +#: ../lib/modules/sambaDomain.inc:184 +#: ../lib/modules/sambaDomain.inc:276 +#: ../lib/modules/sambaDomain.inc:656 +msgid "Password history length" +msgstr "Tamanho do histórico de senhas" + +#: ../templates/config/confmain.php:349 +msgid "Password mail settings" +msgstr "Configurações de senha de correio eletrônico" + +#: ../lib/modules/shadowAccount.inc:59 +#: ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/ppolicy.inc:160 +#: ../lib/modules/sambaDomain.inc:215 +msgid "Password maximum age must be are natural number." +msgstr "A idade máxima da senha deve ser um número natural." + +#: ../lib/modules/shadowAccount.inc:66 +msgid "Password maximum age must be bigger as password minimum age." +msgstr "A idade máxima da senha deve ser maior que a idade mínima da senha." + +#: ../lib/modules/shadowAccount.inc:65 +#: ../lib/modules/ppolicy.inc:161 +#: ../lib/modules/sambaDomain.inc:213 +msgid "Password maximum age must be bigger than password minimum age." +msgstr "A idade máxima da senha deve ser maior que a idade mínima da senha." + +#: ../lib/modules/shadowAccount.inc:57 +#: ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/ppolicy.inc:159 +#: ../lib/modules/sambaDomain.inc:214 +msgid "Password minimum age must be are natural number." +msgstr "A idade mínima da senha deve ser um número natural." + +#: ../lib/modules/imapAccess.inc:85 +#: ../lib/modules/imapAccess.inc:270 +msgid "Password of IMAP admin user" +msgstr "Senha para o usuário administrador do IMAP" + +#: ../lib/types/ppolicyType.inc:39 +msgid "Password policies" +msgstr "Políticas de senha" + +#: ../lib/types/ppolicyType.inc:48 +msgid "Password policies (ppolicy)" +msgstr "Política de senha (ppolicy)" + +#: ../templates/config/mainmanage.php:217 +#: ../lib/types/user.inc:271 +#: ../lib/types/user.inc:779 +#: ../lib/modules/ppolicyUser.inc:38 +#: ../lib/modules/ppolicyUser.inc:48 +#: ../lib/modules/ppolicyUser.inc:60 +#: ../lib/modules/ppolicyUser.inc:76 +#: ../lib/modules/ppolicyUser.inc:112 +#: ../lib/modules/ppolicyUser.inc:227 +#: ../lib/modules/ppolicyUser.inc:261 +#: ../lib/modules/ppolicy.inc:55 +#: ../lib/modules/sambaDomain.inc:259 +#: ../help/help.inc:148 +msgid "Password policy" +msgstr "Política de senha" + +#: ../lib/types/ppolicyType.inc:81 +#: ../lib/modules/ppolicy.inc:89 +#: ../lib/modules/ppolicy.inc:139 +#: ../lib/modules/ppolicy.inc:235 +#: ../lib/modules/ppolicy.inc:477 +msgid "Password quality check" +msgstr "Checagem de qualidade de senha" + +#: ../lib/modules/passwordSelfReset.inc:209 +msgid "Password reset confirmation" +msgstr "Confirmação de redefinição de senha" + +#: ../lib/modules/passwordSelfReset.inc:193 +msgid "Password reset notification" +msgstr "Notificação de redefinição de senha" + +#: ../lib/modules/passwordSelfReset.inc:52 +#: ../lib/modules/passwordSelfReset.inc:683 +#: ../lib/modules/passwordSelfReset.inc:834 +msgid "Password self reset" +msgstr "Redefinição de senha automática" + +#: ../lib/modules/passwordSelfReset.inc:1203 +msgid "Password successfully reset." +msgstr "Senha redefinida com sucesso." + +#: ../lib/modules/shadowAccount.inc:63 +#: ../lib/modules/shadowAccount.inc:101 +#: ../lib/modules/shadowAccount.inc:161 +#: ../lib/modules/shadowAccount.inc:168 +#: ../lib/modules/shadowAccount.inc:200 +#: ../lib/modules/shadowAccount.inc:305 +#: ../lib/modules/shadowAccount.inc:504 +msgid "Password warning" +msgstr "Aviso de senha" + +#: ../lib/modules/shadowAccount.inc:63 +#: ../lib/modules/shadowAccount.inc:64 +msgid "Password warning must be are natural number." +msgstr "O aviso de senha deve ser um número natural." + +#: ../templates/config/confmain.php:569 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:61 +#: ../lib/modules/passwordSelfReset.inc:880 +#: ../lib/modules.inc:1079 +msgid "Passwords are different!" +msgstr "Senhas não conferem!" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:59 +msgid "Passwords match." +msgstr "Senhas coincidem." + +#: ../lib/types/nisObjectType.inc:77 +msgid "Path" +msgstr "Caminho" + +#: ../lib/modules/sambaSamAccount.inc:346 +msgid "Path of the user profile." +msgstr "Caminho do perfil de usuário" + +#: ../lib/modules/sambaSamAccount.inc:297 +msgid "Path of the user profile. Can be a local absolute path or a UNC-path (\\\\server\\share). $user and $group are replaced with user and group name." +msgstr "Caminho para o perfil de usuário. Pode ser um caminho absoluto local ou um caminho UNC (\\\\servidor\\compartilhamento). $user e $group serão substituídos pelo nome de usuário e nome de grupo." + +#: ../lib/modules/imapAccess.inc:103 +#: ../lib/modules/imapAccess.inc:127 +msgid "Path separator" +msgstr "Separador de caminha" + +#: ../templates/config/confmain.php:299 +msgid "Path to external script" +msgstr "Caminho para script externo" + +#: ../lib/modules/ddns.inc:99 +#: ../lib/modules/ddns.inc:355 +msgid "Path to key for DNS updates" +msgstr "Caminho para a chave de autenticação para alterações DNS" + +#: ../lib/modules/qmailUser.inc:241 +msgid "Path to the maildir/mbox on the mail system." +msgstr "Caminho para o maildir/mbox no sistema de mensagens." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:41 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:64 +msgid "Permanently delete all children also?" +msgstr "Apagar permanentemente todas as entradas filhas? " + +#: ../lib/modules/asteriskAccount.inc:162 +#: ../lib/modules/asteriskAccount.inc:271 +#: ../lib/modules/asteriskAccount.inc:343 +#: ../lib/modules/asteriskAccount.inc:484 +#: ../lib/modules/asteriskAccount.inc:803 +#: ../lib/modules/asteriskAccount.inc:1227 +msgid "Permit" +msgstr "Permitir" + +#: ../lib/modules/inetOrgPerson.inc:101 +msgid "Personal" +msgstr "Pessoal" + +#: ../lib/selfService.inc:369 +msgid "Personal data" +msgstr "Dados pessoais" + +#: ../lib/types/user.inc:102 +#: ../lib/types/user.inc:573 +#: ../lib/modules/inetOrgPerson.inc:127 +#: ../lib/modules/inetOrgPerson.inc:2883 +#: ../lib/modules/inetOrgPerson.inc:2890 +msgid "Photo" +msgstr "Foto" + +#: ../lib/modules/inetOrgPerson.inc:1937 +msgid "Photo file (JPG format)" +msgstr "Arquivo de foto (formato JPG)" + +#: ../lib/modules/asteriskAccount.inc:166 +#: ../lib/modules/asteriskAccount.inc:273 +#: ../lib/modules/asteriskAccount.inc:344 +#: ../lib/modules/asteriskAccount.inc:491 +#: ../lib/modules/asteriskAccount.inc:812 +#: ../lib/modules/asteriskAccount.inc:1230 +msgid "Pickup group" +msgstr "Grupo de captura" + +#: ../lib/modules/ldapPublicKey.inc:67 +msgid "Please a comma separated list of your public SSH keys." +msgstr "Por favor uma lista separada por ponto e vírgula de suas chaves públicas de SSH." + +#: ../lib/modules/customScripts.inc:78 +msgid "Please activate this option if your scripts may generate HTML output. Otherwise, the output is treated as plain text." +msgstr "Por favor, ative esta opção se seus scripts podem gerar uma saída HTML. Caso contrário, a saída é tratada como texto simples." + +#: ../lib/modules/asteriskExtension.inc:186 +msgid "Please add at least one extension owner." +msgstr "Você necessita adicionar pelo menos um dono de extensão." + +#: ../lib/modules/sambaSamAccount.inc:1076 +msgid "Please check your settings on the Unix page!" +msgstr "Por favor cheque suas configurações na aba UNIX!" + +#: ../lib/modules/imapAccess.inc:95 +msgid "Please choose the attribute to get the IMAP user name. The default is \"mail\" but you can also use \"uid\"." +msgstr "Por favor, escolha o atributo para obter o nome de usuário IMAP. O padrão é \"mail \", mas você também pode usar \"uid \"." + +#: ../lib/types/user.inc:277 +msgid "Please click to lock/unlock this account." +msgstr "Por favor clique para bloquear ou desbloquear esta conta." + +#: ../lib/modules/sambaSamAccount.inc:106 +msgid "Please enter a RID number or the name of a special account!" +msgstr "Por favor entre um número RID ou o nome de uma conta especial!" + +#: ../lib/modules/asteriskAccount.inc:617 +msgid "Please enter a caller ID." +msgstr "Por favor entre com um ID de chamada." + +#: ../lib/modules/imapAccess.inc:92 +msgid "Please enter a comma separated list of domain names (e.g. \"company.com,example.com\"). LAM will only manage mailboxes from these domains." +msgstr "Por favor, digite uma lista separada por vírgulas de nomes de domínio (ex. \"company.com, example.com \"). LAM só vai gerenciar caixas de correio a partir desses domínios." + +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:102 +msgid "Please enter a comma separated list of host names!" +msgstr "Por favor entre com uma lista de nomes de hosts separados por vírgula!" + +#: ../lib/modules/asteriskExtension.inc:178 +msgid "Please enter a common name." +msgstr "Por favor entre com um nome comum." + +#: ../lib/modules/imapAccess.inc:159 +msgid "Please enter a correct list of valid mail domains." +msgstr "Por favor entre com uma lista de domínio de correio eletrônico válida." + +#: ../lib/modules/customFields.inc:77 +msgid "Please enter a descriptive label for this field." +msgstr "Por favor entre com a etiqueta de descrição para esta entrada." + +#: ../lib/modules/nisObject.inc:55 +#: ../lib/modules/automount.inc:58 +#: ../lib/modules/sudoRole.inc:56 +msgid "Please enter a descriptive name for this entry." +msgstr "Favor entrar com a descrição para esta entrada." + +#: ../lib/modules/groupOfNames.inc:145 +msgid "Please enter a group name!" +msgstr "Por favor entre com um nome de grupo!" + +#: ../lib/modules/selfRegistration.inc:149 +msgid "Please enter a list of object classes for the new accounts." +msgstr "Por favor entre com a lista de classes de objetos para novas contas." + +#: ../lib/modules/asteriskVoicemail.inc:200 +msgid "Please enter a mailbox." +msgstr "Por favor entre com um endereço de correio eletrônico." + +#: ../lib/modules/device.inc:55 +msgid "Please enter a name for this device." +msgstr "Por favor entre com um nome para esse dispositivo." + +#: ../lib/modules/ppolicy.inc:158 +msgid "Please enter a name for this policy." +msgstr "Por favor entre com um nome único para esta política." + +#: ../lib/modules/customFields.inc:1437 +msgid "Please enter a natural number for column count." +msgstr "Por favor entre com um valor numérico para contagem de colunas." + +#: ../lib/modules/customFields.inc:1447 +msgid "Please enter a natural number for row count." +msgstr "Por favor entre com um número natural para a contagem de linhas." + +#: ../lib/modules/qmailUser.inc:458 +#: ../lib/modules/qmailUser.inc:460 +msgid "Please enter a number for GID number." +msgstr "Por favor entre com um número para o número GID." + +#: ../lib/modules/qmailUser.inc:455 +#: ../lib/modules/qmailUser.inc:457 +msgid "Please enter a number for UID number." +msgstr "Por favor entre com um número para o número UID." + +#: ../lib/modules/qmailUser.inc:451 +#: ../lib/modules/qmailUser.inc:452 +msgid "Please enter a number for message count limit." +msgstr "Por favor entre com um número para a contagem de limite de mensagens." + +#: ../lib/modules/qmailUser.inc:453 +#: ../lib/modules/qmailUser.inc:454 +msgid "Please enter a number for message size limit." +msgstr "Por favor entre com um valor numérico para o limite de tamanho da mensagem." + +#: ../lib/modules/qmailUser.inc:449 +#: ../lib/modules/qmailUser.inc:450 +msgid "Please enter a number for quota size." +msgstr "Por favor entre com um número para o tamanho da quota." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:38 +#: ../lib/modules/zarafaUser.inc:411 +#: ../lib/modules/zarafaUser.inc:412 +#: ../lib/modules/zarafaUser.inc:413 +#: ../lib/modules/zarafaUser.inc:414 +#: ../lib/modules/zarafaUser.inc:415 +#: ../lib/modules/zarafaUser.inc:416 +#: ../lib/modules/zarafaUser.inc:418 +#: ../lib/modules/zarafaUser.inc:419 +msgid "Please enter a number." +msgstr "Por favor entre com um número." + +#: ../lib/modules/ppolicy.inc:167 +msgid "Please enter a numeric value for the expire warning." +msgstr "Por favor entre com um valor numérico para o aviso de expiração." + +#: ../lib/modules/ppolicy.inc:166 +msgid "Please enter a numeric value for the failure count interval." +msgstr "Por favor entre com um valor numérico para o intervalo de contagem de falhas." + +#: ../lib/modules/ppolicy.inc:163 +msgid "Please enter a numeric value for the grace authentication limit." +msgstr "Por favor entre com um valor numérico para o tempo limite de autenticação." + +#: ../lib/modules/freeRadius.inc:252 +#: ../lib/modules/freeRadius.inc:253 +msgid "Please enter a numeric value for the idle timeout." +msgstr "Por favor entre com um valor numérico para o tempo limite ocioso." + +#: ../lib/modules/ppolicy.inc:164 +msgid "Please enter a numeric value for the lockout duration." +msgstr "Por favor entre com um valor numérico para a duração do bloqueio de contas." + +#: ../lib/modules/ppolicy.inc:165 +msgid "Please enter a numeric value for the maximum failure count." +msgstr "Por favor entre com um valor numérico para o contador tentativas falhas de logon." + +#: ../lib/modules/ppolicy.inc:168 +msgid "Please enter a numeric value for the minimum password length." +msgstr "Por favor entre com um valor numérico para tamanho máximo de senha." + +#: ../lib/modules/ppolicy.inc:162 +msgid "Please enter a numeric value for the password history length." +msgstr "Por favor entre com um valor numérico para o tamanho do histórico de senhas." + +#: ../lib/modules/sudoRole.inc:221 +msgid "Please enter a role name." +msgstr "Por favor entre com um nome de regra." + +#: ../lib/modules/passwordSelfReset.inc:901 +msgid "Please enter a security answer." +msgstr "Por favor entre com pergunta secreta." + +#: ../lib/modules/selfRegistration.inc:147 +msgid "Please enter a subject for the confirmation mails." +msgstr "Por favor entre com um assunto para o e-mail de confirmação." + +#: ../lib/modules/selfRegistration.inc:148 +msgid "Please enter a text for the confirmation mails that includes the creation link." +msgstr "Por favor entre com um texto para os e-mails de confirmação que inclua o link de criação." + +#: ../lib/modules/customFields.inc:73 +msgid "Please enter a unique name for this field." +msgstr "Por favor entre com um nome único para este campo." + +#: ../lib/modules/ppolicy.inc:74 +msgid "Please enter a unique name for this password policy." +msgstr "Por favor entre com um nome único para a política de senhas." + +#: ../lib/modules/kolabUser.inc:201 +#: ../lib/modules/kolabUser.inc:207 +msgid "Please enter a user password." +msgstr "Por favor entre com a senha do usuário." + +#: ../lib/modules/zarafaDynamicGroup.inc:172 +#: ../lib/modules/eduPerson.inc:218 +#: ../lib/modules/eduPerson.inc:220 +#: ../lib/modules/zarafaAddressList.inc:144 +msgid "Please enter a valid DN in the field:" +msgstr "Por favor entre com um DN válido no campo:" + +#: ../lib/modules/customFields.inc:778 +#: ../lib/modules/customFields.inc:1100 +msgid "Please enter a valid LDAP attribute name. Allowed characters are a-z, 0-9, _ and -." +msgstr "Por favor entre com um nome de atributo LDAP válido. Os caracteres válidos são a-z, 0-9, _ and -." + +#: ../lib/modules/qmailUser.inc:447 +msgid "Please enter a valid account status." +msgstr "Por favor entre com uma situação de conta válida." + +#: ../templates/config/confmain.php:513 +msgid "Please enter a valid bind user." +msgstr "Por favor entre com um usuário vinculado válido!" + +#: ../lib/modules/inetOrgPerson.inc:82 +#: ../lib/modules/inetOrgPerson.inc:83 +msgid "Please enter a valid business category!" +msgstr "Por favor entre com uma categoria de negócios válida!" + +#: ../lib/modules/posixAccount.inc:113 +#: ../lib/modules/posixAccount.inc:114 +#: ../lib/modules/inetOrgPerson.inc:75 +#: ../lib/modules/inetOrgPerson.inc:76 +msgid "Please enter a valid common name!" +msgstr "Por favor entre com um nome comum válido!" + +#: ../lib/modules/qmailUser.inc:464 +msgid "Please enter a valid configuration type." +msgstr "Por favor entre com um tipo de configuração válido." + +#: ../lib/modules/mitKerberos.inc:277 +#: ../lib/modules/mitKerberos.inc:278 +#: ../lib/modules/qmailUser.inc:463 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/heimdalKerberos.inc:241 +#: ../lib/modules/heimdalKerberos.inc:242 +msgid "Please enter a valid date in format DD-MM-YYYY." +msgstr "Por favor entre com uma data válida no formato DD-MM-YYYY." + +#: ../lib/modules/asteriskAccount.inc:638 +#: ../lib/modules/asteriskAccount.inc:639 +msgid "Please enter a valid default user." +msgstr "Por favor entre com um usuário padrão válido." + +#: ../lib/modules/qmailUser.inc:448 +msgid "Please enter a valid delivery mode." +msgstr "Por favor entre com um modo de entraga válido." + +#: ../lib/modules/sambaSamAccount.inc:108 +#: ../lib/modules/sambaSamAccount.inc:109 +msgid "Please enter a valid display name!" +msgstr "Por favor entre com um nome para mostrar que seja válido!" + +#: ../lib/modules/sambaSamAccount.inc:115 +msgid "Please enter a valid drive letter." +msgstr "Por favor entre com uma letra de unidade válida." + +#: ../lib/modules/selfRegistration.inc:417 +#: ../lib/modules/zarafaDynamicGroup.inc:174 +#: ../lib/modules/zarafaDynamicGroup.inc:175 +#: ../lib/modules/qmailUser.inc:441 +#: ../lib/modules/qmailUser.inc:442 +#: ../lib/modules/qmailUser.inc:443 +#: ../lib/modules/qmailUser.inc:444 +#: ../lib/modules/qmailUser.inc:445 +#: ../lib/modules/qmailUser.inc:446 +#: ../lib/modules/zarafaGroup.inc:187 +#: ../lib/modules/zarafaGroup.inc:188 +#: ../lib/modules/inetOrgPerson.inc:61 +#: ../lib/modules/inetOrgPerson.inc:62 +#: ../lib/modules/passwordSelfReset.inc:700 +#: ../lib/modules/passwordSelfReset.inc:851 +msgid "Please enter a valid email address!" +msgstr "Por favor entre com um endereço de correio eletrônico válido!" + +#: ../lib/modules/zarafaDynamicGroup.inc:176 +#: ../lib/modules/zarafaDynamicGroup.inc:177 +#: ../lib/modules/zarafaGroup.inc:189 +#: ../lib/modules/zarafaGroup.inc:190 +msgid "Please enter a valid email alias." +msgstr "Por favor entre com um apelido de endereço de correio eletrônico válido!" + +#: ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:74 +msgid "Please enter a valid employee type!" +msgstr "Por favor entre com um tipo de empregado válido!" + +#: ../lib/modules/inetOrgPerson.inc:59 +#: ../lib/modules/inetOrgPerson.inc:60 +msgid "Please enter a valid fax number!" +msgstr "Por favor entre com um número de fax válido!" + +#: ../lib/modules/customFields.inc:139 +msgid "Please enter a valid field name. Only letters, numbers, dash and underline are allowed." +msgstr "Por favor informe um nome para o campo. Somente letras, números e \"_-\" são permitidos." + +#: ../lib/lists.inc:227 +msgid "Please enter a valid filter. Only letters, numbers and \" _*$.@-\" are allowed." +msgstr "Por favor informe um filtro válido. Somente letras, números e \"_*$.@-\" são permitidos." + +#: ../lib/modules/selfRegistration.inc:68 +#: ../lib/modules/selfRegistration.inc:125 +msgid "Please enter a valid first name." +msgstr "Por favor entre com um primeiro nome válido." + +#: ../lib/modules/asteriskAccount.inc:632 +#: ../lib/modules/asteriskAccount.inc:633 +msgid "Please enter a valid from domain." +msgstr "Por favor entre com um domínio de origem válido." + +#: ../lib/modules/asteriskAccount.inc:630 +#: ../lib/modules/asteriskAccount.inc:631 +msgid "Please enter a valid from user." +msgstr "Por favor entre com um usuário válido!" + +#: ../lib/modules/sambaSamAccount.inc:119 +msgid "Please enter a valid group name!" +msgstr "Por favor entre com um nome de grupo válido!" + +#: ../lib/modules/inetOrgPerson.inc:71 +#: ../lib/modules/inetOrgPerson.inc:72 +msgid "Please enter a valid job title!" +msgstr "Por favor entre com um título de trabalho válido!" + +#: ../lib/modules/selfRegistration.inc:69 +#: ../lib/modules/selfRegistration.inc:126 +msgid "Please enter a valid last name." +msgstr "Por favor entre com um último nome válido." + +#: ../lib/modules/eduPerson.inc:226 +msgid "Please enter a valid list of affiliations." +msgstr "Por favor entre com uma lista de afiliações válida." + +#: ../lib/modules/freeRadius.inc:248 +#: ../lib/modules/freeRadius.inc:249 +msgid "Please enter a valid list of group names." +msgstr "Por favor entre com uma lista de nomes de grupos válida." + +#: ../lib/modules/hostObject.inc:104 +msgid "Please enter a valid list of host names." +msgstr "Por favor entre com uma lista de nomes de hosts válida." + +#: ../lib/modules/authorizedServiceObject.inc:123 +msgid "Please enter a valid list of service names." +msgstr "Por favor entre com uma lista de nomes de serviços válida." + +#: ../lib/modules/inetOrgPerson.inc:57 +#: ../lib/modules/inetOrgPerson.inc:58 +msgid "Please enter a valid mobile number!" +msgstr "Por favor entre com um número de telefone móvel válido!" + +#: ../lib/modules/customFields.inc:141 +msgid "Please enter a valid object class." +msgstr "Por favor entre com uma classe de objeto válida." + +#: ../lib/modules/zarafaServer.inc:154 +#: ../lib/modules/zarafaServer.inc:155 +msgid "Please enter a valid path." +msgstr "Por favor entre com um caminho válido." + +#: ../lib/modules/asteriskAccount.inc:634 +#: ../lib/modules/asteriskAccount.inc:635 +#: ../lib/modules/zarafaServer.inc:150 +#: ../lib/modules/zarafaServer.inc:151 +#: ../lib/modules/zarafaServer.inc:152 +#: ../lib/modules/zarafaServer.inc:153 +msgid "Please enter a valid port number." +msgstr "Por favor entre com um número de porta válida!" + +#: ../lib/modules/inetOrgPerson.inc:65 +#: ../lib/modules/inetOrgPerson.inc:66 +msgid "Please enter a valid postal address!" +msgstr "Por favor entre com um endereço postal válido!" + +#: ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:70 +msgid "Please enter a valid postal code!" +msgstr "Por favor entre com um código postal válido!" + +#: ../lib/modules/eduPerson.inc:224 +msgid "Please enter a valid primary affiliation." +msgstr "Por favor entre com uma primeira afiliação válida." + +#: ../lib/modules/freeRadius.inc:246 +#: ../lib/modules/freeRadius.inc:247 +msgid "Please enter a valid realm." +msgstr "Por favor entre com um domínio válido." + +#: ../lib/modules/inetOrgPerson.inc:67 +#: ../lib/modules/inetOrgPerson.inc:68 +msgid "Please enter a valid registered address." +msgstr "Por favor entre com um endereço registrado e válido!" + +#: ../lib/modules/eduPerson.inc:225 +msgid "Please enter a valid scoped affiliation." +msgstr "Por favor entre com um escopo de afiliação válido." + +#: ../lib/modules/qmailUser.inc:461 +#: ../lib/modules/qmailUser.inc:462 +#: ../lib/modules/imapAccess.inc:158 +msgid "Please enter a valid server name where the mailboxes reside." +msgstr "Por favor informe um nome de servidor válido onde residam as caixas de correio." + +#: ../lib/modules/inetOrgPerson.inc:63 +#: ../lib/modules/inetOrgPerson.inc:64 +msgid "Please enter a valid street name!" +msgstr "Por favor entre com um nome de rua válido!" + +#: ../lib/modules/inetOrgPerson.inc:53 +#: ../lib/modules/inetOrgPerson.inc:54 +#: ../lib/modules/inetOrgPerson.inc:55 +#: ../lib/modules/inetOrgPerson.inc:56 +msgid "Please enter a valid telephone number!" +msgstr "Por favor entre com número de telefone válido!" + +#: ../lib/modules/posixGroup.inc:597 +#: ../lib/modules/posixAccount.inc:866 +#, php-format +msgid "Please enter a value between %s and %s!" +msgstr "Por favor entre com um valor entre %s e %s!" + +#: ../lib/modules/customFields.inc:1550 +msgid "Please enter a value for status \"checked\"." +msgstr "Por favor entre com um valor para a situação \"marcado\"." + +#: ../lib/modules/customFields.inc:1557 +msgid "Please enter a value for status \"unchecked\"." +msgstr "Por favor entre com um valor para a situação \"desmarcado\"." + +#: ../lib/modules/customFields.inc:65 +msgid "Please enter an alias for this group." +msgstr "Por favor entre com um apelido para este grupo." + +#: ../lib/modules/customFields.inc:140 +msgid "Please enter an alias name." +msgstr "Por favor entre com um apelido." + +#: ../lib/modules/kolabUser.inc:213 +#: ../lib/modules/imapAccess.inc:188 +#, php-format +msgid "Please enter an email address on this page: %s" +msgstr "Por favor entre com um endereço eletrônico nesta página: %s" + +#: ../lib/modules/sudoRole.inc:227 +#: ../lib/modules/sudoRole.inc:228 +msgid "Please enter only ASCII characters for the commands." +msgstr "Por favor preencha somente com caracteres ASCII para os comandos." + +#: ../lib/modules/sudoRole.inc:225 +#: ../lib/modules/sudoRole.inc:226 +msgid "Please enter only ASCII characters for the host names." +msgstr "Por favor preencha somente com caracteres ASCII para os nomes de host." + +#: ../lib/modules/sudoRole.inc:233 +#: ../lib/modules/sudoRole.inc:234 +msgid "Please enter only ASCII characters for the options." +msgstr "Por favor preencha somente com caracteres ASCII para as opções." + +#: ../lib/modules/sudoRole.inc:231 +#: ../lib/modules/sudoRole.inc:232 +msgid "Please enter only ASCII characters for the run groups." +msgstr "Por favor preencha somente com caracteres ASCII para os grupos de execução." + +#: ../lib/modules/sudoRole.inc:229 +#: ../lib/modules/sudoRole.inc:230 +msgid "Please enter only ASCII characters for the run users." +msgstr "Por favor preencha somente com caracteres ASCII para os usuários de execução." + +#: ../lib/modules/device.inc:126 +#: ../lib/modules/device.inc:127 +msgid "Please enter only ASCII characters for the serial number." +msgstr "Por favor preencha somente com caracteres ASCII para o número serial." + +#: ../lib/modules/sudoRole.inc:223 +#: ../lib/modules/sudoRole.inc:224 +msgid "Please enter only ASCII characters for the user names." +msgstr "Por favor preencha somente com caracteres ASCII para os nomes de usuário." + +#: ../lib/modules/passwordSelfReset.inc:235 +msgid "Please enter the DN and password of the administrative password self reset account." +msgstr "Por favor entre com o DN e a senha da conta de administrador para redefinição de senha." + +#: ../lib/modules/selfRegistration.inc:146 +msgid "Please enter the DN and password of the administrative self registration account." +msgstr "Por favor entre com o DN e a senha da conta de administrador para auto-registro de senha." + +#: ../lib/modules/ddns.inc:105 +msgid "Please enter the IP address of your DNS server." +msgstr "Por favor entre com o endereço IP do seu servidor de DNS." + +#: ../lib/modules/selfRegistration.inc:101 +msgid "Please enter the LDAP DN that should be used to create new users." +msgstr "Por favor entre com o DN LDAP que deve ser usado ​​para criar novos usuários." + +#: ../lib/modules/passwordSelfReset.inc:87 +msgid "Please enter the LDAP DN that should be used to reset passwords." +msgstr "Por favor entre com o DN LDAP que deve ser usado ​​para redefinir senhas" + +#: ../lib/modules/customFields.inc:81 +msgid "Please enter the LDAP attribute name for this field." +msgstr "Por favor entre com nome do atributo LDAP para este campo." + +#: ../help/help.inc:117 +msgid "Please enter the LDAP suffix where LAM should start to search for users. The LDAP filter needs to match the given user name to exactly one DN. The value \"%USER%\" will be replaced by the user name from the login page." +msgstr "Por favor, digite o sufixo LDAP onde o LAM deve começar a busca de usuários. O filtro LDAP precisa corresponder ao nome de utilizador atribuído a exatamente um DN. O valor \"%USER%\" será substituído pelo nome do usuário na página de login." + +#: ../lib/modules/asteriskExtension.inc:181 +#: ../lib/modules/asteriskVoicemail.inc:204 +msgid "Please enter the account context." +msgstr "Por favor informe o contexto da conta." + +#: ../lib/modules.inc:900 +msgid "Please enter the account information on the other pages first." +msgstr "Por favor entre com informação de conta em outra página primeiro." + +#: ../lib/modules/asteriskAccount.inc:627 +msgid "Please enter the account type." +msgstr "Por favor entre com o tipo da conta." + +#: ../lib/modules/asteriskAccount.inc:111 +msgid "Please enter the account's type (e.g. \"friend\")." +msgstr "Por favor entre com o tipo da conta (por exemplo, \"amigo\")." + +#: ../lib/modules/asteriskExtension.inc:180 +msgid "Please enter the application data." +msgstr "Por favor entre com os dados do aplicativo." + +#: ../lib/modules/asteriskExtension.inc:179 +msgid "Please enter the application." +msgstr "Por favor entre com a aplicação." + +#: ../lib/modules/automount.inc:62 +msgid "Please enter the automount entry (e.g. \"-fstype=nfs,rw server:/home\")." +msgstr "Por favor, indique a entrada de mapeamento (por exemplo, \"-fstype=nfs,rw server:/pasta\")." + +#: ../help/help.inc:57 +msgid "Please enter the configuration password. This is NOT your LDAP password. It is stored in your .conf-file. If this is the first time you log in, enter \"lam\"." +msgstr "Por favor entre com a senha de configuração. Esta NÃO é a sua senha LDAP. Esta está armazenada no seu arquivo .conf. Se esta é seu primeiro acesso, entre com \"lam\"." + +#: ../lib/modules/puppetClient.inc:74 +#: ../lib/modules/puppetClient.inc:78 +msgid "Please enter the environment name for this node (e.g. production)." +msgstr "Por favor, indique o nome do ambiente para este nó (por exemplo: producao)." + +#: ../lib/modules/asteriskAccount.inc:621 +msgid "Please enter the extension context." +msgstr "Por favor informe o contexto da extensão." + +#: ../lib/modules/asteriskExtension.inc:182 +msgid "Please enter the extension name." +msgstr "Por favor informe o nome da extensão." + +#: ../lib/modules/asteriskAccount.inc:624 +msgid "Please enter the host name." +msgstr "Por favor entre com um nome host." + +#: ../lib/modules/customScripts.inc:53 +msgid "Please enter the list of scripts which should be run. Each line has the following format: [account type] [action] [script and arguments]" +msgstr "Por favor, indique a lista de scripts que deve ser executado. Cada linha tem o seguinte formato: [tipo de conta] [Ação] [roteiro e argumentos]" + +#: ../lib/modules/customScripts.inc:67 +msgid "Please enter the list of scripts which should be run. Each line has the following format: [action] [script and arguments]" +msgstr "Por favor, indique a lista de scripts que deve ser executado. Cada linha tem o seguinte formato:[ação] [roteiro e argumentos]" + +#: ../lib/modules/nisObject.inc:59 +msgid "Please enter the mapping entry (e.g. \"-fstype=nfs,rw server:/projects\")." +msgstr "Por favor, indique a entrada de mapeamento (por exemplo, \"-fstype=nfs,rw server:/projetos\")." + +#: ../lib/modules/nisObject.inc:63 +msgid "Please enter the mapping name for this entry (e.g. auto.home)." +msgstr "Por favor, indique o nome da entrada de mapeamento (por exemplo, auto.home)." + +#: ../help/help.inc:137 +msgid "Please enter the master configuration password. This is NOT your LDAP password. It is stored in your config.cfg file. If this is the first time you log in, enter \"lam\"." +msgstr "Por favor entre com a senha mestre de configuração. Esta NÃO é a sua senha LDAP. Esta está armazenada no seu arquivo config.cfg. Se este é seu primeiro acesso, entre com \"lam\"." + +#: ../templates/config/mainlogin.php:143 +msgid "Please enter the master password to change the general preferences:" +msgstr "Por favor entre com a senha mestre para alterar as preferências gerais:" + +#: ../help/help.inc:125 +msgid "Please enter the name of the new profile and the password to change its settings. Profile names may contain letters, numbers and -/_." +msgstr "Por favor entre com o nome do novo perfil e a senha para trocar estas configurações. Nomes de perfil poderão conter letras, números e -/_." + +#: ../help/help.inc:127 +msgid "Please enter the new name of the profile. The name may contain letters, numbers and -/_." +msgstr "Por favor entre com o nome novo para o perfil. O nome poderá conter letras, números e -/_." + +#: ../lib/modules/selfRegistration.inc:105 +#: ../lib/modules/passwordSelfReset.inc:91 +msgid "Please enter the password for the admin DN. Please note that this is saved as clear-text in the self service profile." +msgstr "Digite um texto ou endereço de um site ou traduza um documento.CancelarTradução do inglês para portuguêsportuguêsinglêsespanholDigite a senha para o administrador do DN. Por favor note que este é salvo como texto simples no perfil de auto-atendimento." + +#: ../lib/modules/asteriskAccount.inc:107 +#: ../lib/modules/posixAccount.inc:406 +#: ../lib/modules/inetOrgPerson.inc:843 +msgid "Please enter the password which you want to set for this account." +msgstr "Por favor entre com a senha que você quer definir para esta conta." + +#: ../help/help.inc:171 +msgid "Please enter the password which you want to set for this account. You may also generate a random password (12 characters) which will be displayed on your screen." +msgstr "Por favor, digite a senha que você deseja definir para esta conta. Você também pode gerar uma senha aleatória (12 caracteres) que será exibido na tela." + +#: ../lib/modules/posixAccount.inc:373 +msgid "Please enter the path to the user's home directory." +msgstr "Por favor entre com o caminho para o diretório/pasta de usuário para esta conta." + +#: ../lib/modules/zarafaServer.inc:62 +msgid "Please enter the port number for (unencrypted) HTTP connections." +msgstr "Por favor informe o número da porta para conexões HTTP (não-criptografadas)." + +#: ../lib/modules/zarafaServer.inc:66 +msgid "Please enter the port number for encrypted connections." +msgstr "Por favor informe o número da porta de comunicação para conexões criptografadas." + +#: ../lib/modules/passwordSelfReset.inc:67 +msgid "Please enter the possible security questions for the password self reset." +msgstr "Por favor indicar as questões de segurança possíveis para a auto-repor senha." + +#: ../lib/modules/asteriskExtension.inc:184 +msgid "Please enter the priority." +msgstr "Por favor entre com a prioridade." + +#: ../lib/modules/imapAccess.inc:101 +msgid "Please enter the quota limit of this mailbox in kilobytes." +msgstr "Por favor entre com o limite de quota desta caixa de correio em kilobytes." + +#: ../lib/modules/quota.inc:147 +msgid "Please enter the quota settings for this mount point. The syntax is: {soft block limit},{hard block limit},{soft inode limit},{hard inode limit}" +msgstr "Por favor entre com as configurações de quota para este ponto de montagem. A sintaxe é: {soft block limit},{hard block limit},{soft inode limit},{hard inode limit}" + +#: ../lib/modules/systemQuotas.inc:62 +msgid "Please enter the quota settings for this user. The syntax is: {mount point},{soft block limit},{hard block limit},{soft inode limit},{hard inode limit}." +msgstr "Por favor entre com as configurações de quota para este usuário. A sintaxe é: {mount point},{soft block limit},{hard block limit},{soft inode limit},{hard inode limit}." + +#: ../lib/modules/selfRegistration.inc:122 +#, php-format +msgid "Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") and an error message if the value does not match it. For a syntax description see here." +msgstr "Por favor insira a expressão regular (por exemplo: \"/^[0-9a-zA-Z]+$/\") e uma mensagem de erro se o valor não coincide com ele. Para uma descrição da sintaxe ver aqui ." + +#: ../lib/modules/customFields.inc:93 +#, php-format +msgid "Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") to validate this field. For a syntax description see here." +msgstr "Por favor insira a expressão regular (por exemplo: \"/^[0-9a-zA-Z]+$/\") para validar este campo. Para uma descrição da sintaxe ver aqui ." + +#: ../templates/lists/changePassword.php:454 +#: ../lib/modules/selfRegistration.inc:421 +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/customFields.inc:1357 +msgid "Please enter the same password in both password fields." +msgstr "Por favor entre com a mesma senha em ambos campos de senha." + +#: ../lib/modules/passwordSelfReset.inc:63 +msgid "Please enter the security question for the password self reset." +msgstr "Por favor entre com a pergunta de segurança para trocar automaticamente a senha." + +#: ../lib/modules/sambaSamAccount.inc:358 +msgid "Please enter the time limit in minutes. 0 means unlimited." +msgstr "Por favor entre com o tempo limite em minutos. 0 para tornar ilimitado." + +#: ../lib/modules/puppetClient.inc:94 +#: ../lib/modules/puppetClient.inc:98 +msgid "Please enter your Puppet variables for this node (e.g. config_exim=true)." +msgstr "Por favor, indique as variáveis Puppet para este nó (por exemplo: config_exim=true)." + +#: ../templates/selfService/adminLogin.php:132 +msgid "Please enter your master configuration password to change the self service profile:" +msgstr "Por favor entre com a senha mestre de configuração para alterar este perfil de auto serviço:" + +#: ../templates/config/conflogin.php:131 +msgid "Please enter your password to change the server preferences:" +msgstr "Por favor entre com a senha para alterar as preferências de servidor:" + +#: ../lib/modules/ldapPublicKey.inc:63 +msgid "Please enter your public SSH key." +msgstr "Por favor entre com sua chave pública SSH." + +#: ../lib/modules/range.inc:394 +#: ../lib/modules/fixed_ip.inc:329 +msgid "Please fill out the DHCP settings first." +msgstr "Por favor, preencha as configurações DHCP primeiro." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "Please go back and try again." +msgstr "Volte por favor à página anterior e tente outra vez." + +#: ../templates/masscreate.php:239 +msgid "Please provide a CSV formated file with your account data. The cells in the first row must be filled with the column identifiers. The following rows represent one account for each row." +msgstr "Por favor carregue um arquivo formatado como CSV para as informações da conta, As células na primeira linha devem representar a identificação de coluna. As linhas seguintes devem representar uma conta por linha." + +#: ../templates/massBuildAccounts.php:237 +msgid "Please provide a file to upload." +msgstr "Por favor, forneça um arquivo para upload." + +#: ../lib/modules/inetOrgPerson.inc:755 +msgid "Please select an image file to upload. It must be in JPG format (.jpg/.jpeg)." +msgstr "Por favor selecione um arquivo de imagem para carregar. A imagem deve estar em formato JPG(.jpg/.jpeg)." + +#: ../lib/modules/customFields.inc:85 +msgid "Please select the field type (e.g. text field)." +msgstr "Por favor selecione o tipo de campo (por exemplo, campo texto)." + +#: ../help/help.inc:143 +msgid "Please select your prefered log level. Messages with a lower level will not be logged." +msgstr "Por favor selecione seu nível de log preferido. Mensagens com um nível baixo não serão geradoras de log." + +#: ../lib/modules/asteriskVoicemail.inc:215 +msgid "Please set the voicemail password with \"Set password\" before saving." +msgstr "Por favor indique a senha da caixa de correio de voz com \"Definir Senha\" antes de salvar." + +#: ../lib/modules.inc:849 +#, php-format +msgid "Please set up all required attributes on page: %s" +msgstr "Por favor preencha todos os atributos requeridos na página: %s" + +#: ../templates/config/profmanage.php:209 +#: ../templates/selfService/profManage.php:160 +msgid "Please set up your master configuration file (config/config.cfg) first!" +msgstr "Por favor configure seu arquivo de configuração mestre (config/config.cfg) primeiro!" + +#: ../lib/modules/dhcp_settings.inc:526 +#: ../lib/modules/ddns.inc:346 +msgid "Please set your LDAP suffix to an LDAP entry with object class \"dhcpServer\"." +msgstr "Por favor, defina o seu sufixo LDAP para uma entrada LDAP com classe de objeto \"dhcpServer\"." + +#: ../lib/modules/customFields.inc:125 +msgid "Please specify the possible values for this field. Each value can have a descriptive label that is displayed to the user." +msgstr "Por favor, especifique os valores possíveis para este campo. Cada valor pode ter um rótulo descritivo que é exibido para o usuário." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:172 +msgid "Please wait" +msgstr "Por favor aguarde" + +#: ../lib/types/ppolicyType.inc:149 +#, php-format +msgid "Policy count: %s" +msgstr "Contagem de regras: %s" + +#: ../lib/modules/kolabUser.inc:179 +msgid "Policy list has invalid format!" +msgstr "Lista de políticas está em um formato inválido!" + +#: ../lib/modules/asteriskAccount.inc:170 +#: ../lib/modules/asteriskAccount.inc:275 +#: ../lib/modules/asteriskAccount.inc:345 +#: ../lib/modules/asteriskAccount.inc:498 +#: ../lib/modules/asteriskAccount.inc:821 +#: ../lib/modules/asteriskAccount.inc:1233 +msgid "Port" +msgstr "Porta" + +#: ../lib/modules/asteriskAccount.inc:171 +msgid "Port number." +msgstr "Número da porta." + +#: ../templates/pdfedit/pdfpage.php:541 +#: ../templates/pdfedit/pdfpage.php:551 +#: ../templates/pdfedit/pdfpage.php:561 +#: ../templates/pdfedit/pdfpage.php:576 +msgid "Position" +msgstr "Posição" + +#: ../templates/masscreate.php:301 +#: ../templates/masscreate.php:376 +#: ../lib/modules/customScripts.inc:113 +#: ../lib/modules/customScripts.inc:115 +#: ../lib/modules/customScripts.inc:117 +#: ../lib/modules/sambaGroupMapping.inc:442 +msgid "Possible values" +msgstr "Valores possíveis" + +#: ../lib/modules/inetOrgPerson.inc:127 +#: ../lib/modules/inetOrgPerson.inc:147 +#: ../lib/modules/inetOrgPerson.inc:269 +#: ../lib/modules/inetOrgPerson.inc:435 +#: ../lib/modules/inetOrgPerson.inc:564 +#: ../lib/modules/inetOrgPerson.inc:682 +#: ../lib/modules/inetOrgPerson.inc:686 +#: ../lib/modules/inetOrgPerson.inc:1397 +#: ../lib/modules/inetOrgPerson.inc:2170 +#: ../lib/modules/inetOrgPerson.inc:2799 +msgid "Post office box" +msgstr "Caixa de correio em agência" + +#: ../lib/modules/inetOrgPerson.inc:65 +#: ../lib/modules/inetOrgPerson.inc:126 +#: ../lib/modules/inetOrgPerson.inc:159 +#: ../lib/modules/inetOrgPerson.inc:277 +#: ../lib/modules/inetOrgPerson.inc:419 +#: ../lib/modules/inetOrgPerson.inc:576 +#: ../lib/modules/inetOrgPerson.inc:698 +#: ../lib/modules/inetOrgPerson.inc:1503 +#: ../lib/modules/inetOrgPerson.inc:2172 +#: ../lib/modules/inetOrgPerson.inc:2766 +msgid "Postal address" +msgstr "Edereço postal" + +#: ../lib/modules/inetOrgPerson.inc:699 +msgid "Postal address, city" +msgstr "endereço postal, cidade" + +#: ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:127 +#: ../lib/modules/inetOrgPerson.inc:150 +#: ../lib/modules/inetOrgPerson.inc:271 +#: ../lib/modules/inetOrgPerson.inc:411 +#: ../lib/modules/inetOrgPerson.inc:567 +#: ../lib/modules/inetOrgPerson.inc:690 +#: ../lib/modules/inetOrgPerson.inc:694 +#: ../lib/modules/inetOrgPerson.inc:1423 +#: ../lib/modules/inetOrgPerson.inc:2171 +#: ../lib/modules/inetOrgPerson.inc:2788 +msgid "Postal code" +msgstr "Código postal" + +#: ../lib/modules/puppetClient.inc:105 +msgid "Predefined classes" +msgstr "Classes pré-definidas" + +#: ../lib/modules/puppetClient.inc:109 +#: ../lib/modules/puppetClient.inc:115 +msgid "Predefined environments" +msgstr "Ambientes pré-definidos" + +#: ../lib/modules/authorizedServiceObject.inc:86 +#: ../lib/modules/authorizedServiceObject.inc:92 +msgid "Predefined services" +msgstr "Serviços pré-definidos" + +#: ../help/help.inc:87 +msgid "Predefined values" +msgstr "Valores pré-definidos" + +#: ../lib/modules/imapAccess.inc:88 +#: ../lib/modules/imapAccess.inc:121 +msgid "Prefix for mailboxes" +msgstr "Prefixo para caixas de correio" + +#: ../lib/modules/inetOrgPerson.inc:365 +msgid "President" +msgstr "Presidente" + +#: ../lib/modules/eduPerson.inc:81 +#: ../lib/modules/eduPerson.inc:148 +#: ../lib/modules/eduPerson.inc:203 +#: ../lib/modules/eduPerson.inc:260 +#: ../lib/modules/eduPerson.inc:664 +msgid "Primary affiliation" +msgstr "A afiliação preliminar" + +#: ../lib/modules/posixAccount.inc:230 +#: ../lib/modules/posixAccount.inc:312 +#: ../lib/modules/posixAccount.inc:331 +#: ../lib/modules/posixAccount.inc:364 +#: ../lib/modules/posixAccount.inc:397 +#: ../lib/modules/posixAccount.inc:435 +#: ../lib/modules/posixAccount.inc:1118 +#: ../lib/modules/posixAccount.inc:1379 +#: ../lib/modules/posixAccount.inc:1425 +#: ../lib/modules/posixAccount.inc:1482 +msgid "Primary group" +msgstr "Grupo primário" + +#: ../lib/modules/eduPerson.inc:118 +#: ../lib/modules/eduPerson.inc:186 +#: ../lib/modules/eduPerson.inc:206 +#: ../lib/modules/eduPerson.inc:220 +#: ../lib/modules/eduPerson.inc:362 +#: ../lib/modules/eduPerson.inc:688 +msgid "Primary organisational unit" +msgstr "Unidade organizacional primária" + +#: ../lib/modules/eduPerson.inc:102 +#: ../lib/modules/eduPerson.inc:141 +#: ../lib/modules/eduPerson.inc:204 +#: ../lib/modules/eduPerson.inc:254 +#: ../lib/modules/eduPerson.inc:670 +msgid "Principal name" +msgstr "Nome principal" + +#: ../lib/modules/eduPerson.inc:216 +#: ../lib/modules/eduPerson.inc:217 +msgid "Principal name is invalid!" +msgstr "Nome principal inválido!" + +#: ../lib/modules/asteriskExtension.inc:99 +#: ../lib/modules/asteriskExtension.inc:824 +msgid "Priority" +msgstr "Prioridade" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1537 +#: ../templates/3rdParty/pla/htdocs/import_form.php:44 +#: ../templates/3rdParty/pla/htdocs/export_form.php:135 +msgid "Proceed" +msgstr "Prosseguir" + +#: ../templates/config/profmanage.php:110 +#: ../templates/selfService/profManage.php:85 +msgid "Profile deleted." +msgstr "Perfil apagado." + +#: ../templates/profedit/profilepage.php:177 +#: ../templates/profedit/profilemain.php:97 +#: ../lib/tools/profileEditor.inc:44 +msgid "Profile editor" +msgstr "Editor de perfil" + +#: ../templates/config/profmanage.php:148 +#: ../templates/config/profmanage.php:236 +#: ../templates/selfService/profManage.php:101 +#: ../templates/selfService/profManage.php:208 +#: ../help/help.inc:124 +#: ../help/help.inc:126 +#: ../help/help.inc:128 +#: ../help/help.inc:130 +#: ../help/help.inc:132 +msgid "Profile management" +msgstr "Gerenciador de perfil" + +#: ../templates/config/profmanage.php:240 +#: ../templates/config/profmanage.php:259 +#: ../templates/config/profmanage.php:271 +#: ../templates/config/profmanage.php:280 +#: ../templates/config/profmanage.php:299 +#: ../templates/selfService/profManage.php:212 +#: ../templates/selfService/profManage.php:226 +#: ../templates/selfService/profManage.php:242 +#: ../templates/profedit/profilepage.php:181 +#: ../templates/profedit/profilemain.php:274 +#: ../templates/profedit/profilemain.php:318 +#: ../help/help.inc:156 +msgid "Profile name" +msgstr "Nome do perfil" + +#: ../templates/config/profmanage.php:86 +#: ../templates/config/profmanage.php:105 +#: ../templates/config/profmanage.php:126 +#: ../templates/config/profmanage.php:137 +#: ../templates/selfService/profManage.php:61 +#: ../templates/selfService/profManage.php:76 +msgid "Profile name is invalid!" +msgstr "Nome do perfil inválido!" + +#: ../templates/config/profmanage.php:243 +#: ../templates/config/profmanage.php:281 +msgid "Profile password" +msgstr "Senha do perfil" + +#: ../templates/config/profmanage.php:84 +#: ../templates/config/profmanage.php:124 +msgid "Profile passwords are different or empty!" +msgstr "Senhas do perfil estão diferentes ou vazias!" + +#: ../lib/modules/sambaSamAccount.inc:95 +#: ../lib/modules/sambaSamAccount.inc:96 +#: ../lib/modules/sambaSamAccount.inc:211 +#: ../lib/modules/sambaSamAccount.inc:223 +#: ../lib/modules/sambaSamAccount.inc:296 +#: ../lib/modules/sambaSamAccount.inc:345 +#: ../lib/modules/sambaSamAccount.inc:487 +#: ../lib/modules/sambaSamAccount.inc:583 +#: ../lib/modules/sambaSamAccount.inc:1191 +#: ../lib/modules/sambaSamAccount.inc:1473 +#: ../lib/modules/sambaSamAccount.inc:1574 +#: ../lib/modules/sambaSamAccount.inc:1728 +#: ../lib/modules/sambaSamAccount.inc:1750 +msgid "Profile path" +msgstr "Caminho do perfil" + +#: ../lib/modules/sambaSamAccount.inc:95 +#: ../lib/modules/sambaSamAccount.inc:97 +msgid "Profile path is invalid!" +msgstr "Caminho do perfil inválido" + +#: ../templates/profedit/profilemain.php:148 +msgid "Profile was saved." +msgstr "Perfil salvo." + +#: ../templates/profedit/profilemain.php:241 +msgid "Profiles" +msgstr "Perfis" + +#: ../lib/modules/qmailUser.inc:245 +msgid "Program to execute for all incoming mails." +msgstr "Programa para executar para todas as mensagens que chegarem." + +#: ../lib/modules/zarafaServer.inc:77 +#: ../lib/modules/zarafaServer.inc:117 +#: ../lib/modules/zarafaServer.inc:130 +#: ../lib/modules/zarafaServer.inc:140 +#: ../lib/modules/zarafaServer.inc:189 +#: ../lib/modules/zarafaServer.inc:380 +msgid "Proxy URL" +msgstr "URL do Proxy" + +#: ../lib/modules/zarafaServer.inc:73 +#: ../lib/modules/zarafaServer.inc:107 +#: ../lib/modules/zarafaServer.inc:127 +#: ../lib/modules/zarafaServer.inc:202 +#: ../lib/modules/zarafaServer.inc:375 +msgid "Public store" +msgstr "Arquivo público" + +#: ../lib/modules/puppetClient.inc:63 +msgid "Puppet" +msgstr "Puppet" + +#: ../lib/modules/qmailUser.inc:80 +msgid "Qmail" +msgstr "Qmail" + +#: ../lib/modules/asteriskAccount.inc:174 +#: ../lib/modules/asteriskAccount.inc:277 +#: ../lib/modules/asteriskAccount.inc:346 +#: ../lib/modules/asteriskAccount.inc:505 +#: ../lib/modules/asteriskAccount.inc:831 +#: ../lib/modules/asteriskAccount.inc:1236 +msgid "Qualify" +msgstr "Qualificar" + +#: ../lib/modules/passwordSelfReset.inc:62 +#: ../lib/modules/passwordSelfReset.inc:132 +#: ../lib/modules/passwordSelfReset.inc:139 +#: ../lib/modules/passwordSelfReset.inc:152 +#: ../lib/modules/passwordSelfReset.inc:223 +#: ../lib/modules/passwordSelfReset.inc:259 +#: ../lib/modules/passwordSelfReset.inc:369 +#: ../lib/modules/passwordSelfReset.inc:514 +#: ../lib/modules/passwordSelfReset.inc:794 +msgid "Question" +msgstr "Questão" + +#: ../lib/modules/qmailUser.inc:661 +#: ../lib/modules/quota.inc:80 +#: ../lib/modules/quota.inc:93 +#: ../lib/modules/quota.inc:146 +#: ../lib/modules/zarafaUser.inc:484 +#: ../lib/modules/systemQuotas.inc:51 +#: ../lib/modules/systemQuotas.inc:61 +#: ../lib/modules/systemQuotas.inc:68 +#: ../lib/modules/systemQuotas.inc:74 +#: ../lib/modules/systemQuotas.inc:81 +#: ../lib/modules/imapAccess.inc:100 +#: ../lib/modules/imapAccess.inc:145 +msgid "Quota" +msgstr "Quota" + +#: ../lib/modules/quota.inc:690 +#, php-format +msgid "Quota for %s on %s" +msgstr "Quota para %s no %s" + +#: ../lib/modules/zarafaUser.inc:85 +#: ../lib/modules/zarafaUser.inc:170 +#: ../lib/modules/zarafaUser.inc:249 +#: ../lib/modules/zarafaUser.inc:371 +#: ../lib/modules/zarafaUser.inc:415 +#: ../lib/modules/zarafaUser.inc:519 +#: ../lib/modules/zarafaUser.inc:1288 +#: ../lib/modules/zarafaUser.inc:1390 +msgid "Quota hard limit" +msgstr "Limite máximo de quota" + +#: ../lib/modules/quota.inc:63 +msgid "Quota has wrong format!" +msgstr "Quota está em um formato errado!" + +#: ../lib/modules/imapAccess.inc:299 +#: ../lib/modules/imapAccess.inc:308 +msgid "Quota limit (kB)" +msgstr "Limite de quota (kB)" + +#: ../lib/modules/zarafaUser.inc:73 +#: ../lib/modules/zarafaUser.inc:164 +#: ../lib/modules/zarafaUser.inc:223 +#: ../lib/modules/zarafaUser.inc:362 +#: ../lib/modules/zarafaUser.inc:491 +#: ../lib/modules/zarafaUser.inc:1270 +#: ../lib/modules/zarafaUser.inc:1381 +msgid "Quota override" +msgstr "Substituir quota" + +#: ../lib/modules/qmailUser.inc:99 +#: ../lib/modules/qmailUser.inc:126 +#: ../lib/modules/qmailUser.inc:212 +#: ../lib/modules/qmailUser.inc:301 +#: ../lib/modules/qmailUser.inc:402 +#: ../lib/modules/qmailUser.inc:668 +#: ../lib/modules/qmailUser.inc:1225 +msgid "Quota size" +msgstr "Tamanho da quota" + +#: ../lib/modules/zarafaUser.inc:81 +#: ../lib/modules/zarafaUser.inc:168 +#: ../lib/modules/zarafaUser.inc:241 +#: ../lib/modules/zarafaUser.inc:368 +#: ../lib/modules/zarafaUser.inc:413 +#: ../lib/modules/zarafaUser.inc:509 +#: ../lib/modules/zarafaUser.inc:1282 +#: ../lib/modules/zarafaUser.inc:1387 +msgid "Quota soft limit" +msgstr "Limite de quota flexível" + +#: ../lib/modules/zarafaUser.inc:77 +#: ../lib/modules/zarafaUser.inc:166 +#: ../lib/modules/zarafaUser.inc:233 +#: ../lib/modules/zarafaUser.inc:365 +#: ../lib/modules/zarafaUser.inc:411 +#: ../lib/modules/zarafaUser.inc:499 +#: ../lib/modules/zarafaUser.inc:1276 +#: ../lib/modules/zarafaUser.inc:1384 +msgid "Quota warning limit" +msgstr "Limite aviso de quota" + +#: ../templates/masscreate.php:325 +#: ../templates/profedit/profilepage.php:208 +#: ../lib/modules.inc:966 +#: ../help/help.inc:154 +msgid "RDN identifier" +msgstr "Identificador RDN" + +#: ../lib/types/host.inc:93 +msgid "RID (Windows UID)" +msgstr "RID (UID Windows)" + +#: ../lib/modules/sambaDomain.inc:90 +#: ../lib/modules/sambaDomain.inc:151 +#: ../lib/modules/sambaDomain.inc:182 +#: ../lib/modules/sambaDomain.inc:376 +#: ../lib/modules/sambaDomain.inc:382 +#: ../lib/modules/sambaDomain.inc:650 +msgid "RID base" +msgstr "RID base" + +#: ../lib/modules/sambaDomain.inc:345 +msgid "RID settings" +msgstr "Configurações do RID" + +#: ../lib/modules/asteriskAccount.inc:186 +#: ../lib/modules/asteriskAccount.inc:283 +#: ../lib/modules/asteriskAccount.inc:349 +#: ../lib/modules/asteriskAccount.inc:527 +#: ../lib/modules/asteriskAccount.inc:859 +#: ../lib/modules/asteriskAccount.inc:1245 +msgid "RTP hold timeout" +msgstr "Tempo de espera do retenção RTP" + +#: ../lib/modules/asteriskAccount.inc:182 +#: ../lib/modules/asteriskAccount.inc:281 +#: ../lib/modules/asteriskAccount.inc:348 +#: ../lib/modules/asteriskAccount.inc:520 +#: ../lib/modules/asteriskAccount.inc:849 +#: ../lib/modules/asteriskAccount.inc:1242 +msgid "RTP timeout" +msgstr "Tempo de espera do RTP" + +#: ../lib/modules/customFields.inc:1656 +msgid "Radio buttons" +msgstr "Botões de múltipla escolha" + +#: ../lib/modules/range.inc:85 +#: ../lib/modules/range.inc:418 +msgid "Range from" +msgstr "Intervalo de" + +#: ../lib/modules/range.inc:88 +#: ../lib/modules/range.inc:430 +msgid "Range to" +msgstr "Intervalo de" + +#: ../lib/types/dhcp.inc:95 +#: ../lib/modules/range.inc:67 +#: ../lib/modules/range.inc:99 +#: ../lib/modules/range.inc:485 +msgid "Ranges" +msgstr "Intervalos" + +#: ../templates/config/confmain.php:305 +msgid "Read" +msgstr "Ler" + +#: ../templates/config/confmain.php:261 +#: ../lib/modules/customFields.inc:88 +msgid "Read-only" +msgstr "Somente leitura" + +#: ../lib/modules/customFields.inc:89 +msgid "Read-only fields cannot be changed by the user. Use this if you want to show an attribute just for information." +msgstr "Campos somente leitura não podem ser alterados pelo usuário. Use isto se você quer mostrar um atributo apenas para informações." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2289 +msgid "Really delete value from this attribute?" +msgstr "Realmente apagar valor para este atributo?" + +#: ../lib/modules/mitKerberos.inc:113 +#: ../lib/modules/freeRadius.inc:85 +#: ../lib/modules/freeRadius.inc:119 +#: ../lib/modules/freeRadius.inc:139 +#: ../lib/modules/freeRadius.inc:170 +#: ../lib/modules/freeRadius.inc:224 +#: ../lib/modules/freeRadius.inc:270 +#: ../lib/modules/freeRadius.inc:623 +#: ../lib/modules/heimdalKerberos.inc:91 +msgid "Realm" +msgstr "Reino" + +#: ../lib/modules/nisMailAlias.inc:71 +#: ../lib/modules/nisMailAlias.inc:154 +msgid "Recipient" +msgstr "Recipiente" + +#: ../lib/modules/nisMailAlias.inc:108 +#: ../lib/modules/nisMailAlias.inc:109 +msgid "Recipient is invalid!" +msgstr "Recipiente é inválido!" + +#: ../lib/types/mailAlias.inc:92 +#: ../lib/modules/nisMailAlias.inc:75 +#: ../lib/modules/nisMailAlias.inc:89 +#: ../lib/modules/nisMailAlias.inc:97 +#: ../lib/modules/nisMailAlias.inc:290 +msgid "Recipient list" +msgstr "Lista de recipientes" + +#: ../lib/modules/sambaSamAccount.inc:235 +#: ../lib/modules/sambaSamAccount.inc:375 +#: ../lib/modules/sambaSamAccount.inc:1522 +#: ../lib/modules/sambaSamAccount.inc:1802 +msgid "Reconnect if disconnected" +msgstr "Reconectar se desconectar" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:63 +msgid "Recursive copy" +msgstr "Cópia recursiva" + +#: ../templates/3rdParty/pla/htdocs/copy.php:49 +msgid "Recursive copy progress" +msgstr "Cópia recursiva em progresso" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:31 +msgid "Recursive delete progress" +msgstr "Deleção recursiva em progresso" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:65 +msgid "Recursively copy all children of this object as well." +msgstr "Recursivamente copiar todos os filhos deste objeto também." + +#: ../templates/config/profmanage.php:247 +#: ../templates/config/profmanage.php:285 +#: ../templates/config/mainmanage.php:250 +#: ../templates/config/confmain.php:428 +#: ../lib/modules/selfRegistration.inc:357 +#: ../lib/modules/sambaSamAccount.inc:2150 +#: ../lib/modules/posixAccount.inc:2105 +msgid "Reenter password" +msgstr "Reentre a senha" + +#: ../templates/serverInfo.php:187 +msgid "Referrals" +msgstr "Referências" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1051 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1054 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:249 +#: ../lib/modules/asteriskExtension.inc:447 +#: ../lib/lists.inc:734 +msgid "Refresh" +msgstr "Atualizar" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +msgid "Refresh this entry" +msgstr "Atualizar esta entrada" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:247 +msgid "Refreshing tree" +msgstr "Atualizar árvore" + +#: ../lib/modules/selfRegistration.inc:282 +msgid "Register new account" +msgstr "Criar nova conta" + +#: ../lib/modules/inetOrgPerson.inc:67 +#: ../lib/modules/inetOrgPerson.inc:126 +#: ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:279 +#: ../lib/modules/inetOrgPerson.inc:427 +#: ../lib/modules/inetOrgPerson.inc:579 +#: ../lib/modules/inetOrgPerson.inc:702 +#: ../lib/modules/inetOrgPerson.inc:1531 +#: ../lib/modules/inetOrgPerson.inc:2173 +#: ../lib/modules/inetOrgPerson.inc:2777 +msgid "Registered address" +msgstr "Endereço registrado" + +#: ../lib/modules/inetOrgPerson.inc:703 +msgid "Registered address, city" +msgstr "Endereço , cidade registrados" + +#: ../lib/modules/asteriskAccount.inc:206 +#: ../lib/modules/asteriskAccount.inc:293 +#: ../lib/modules/asteriskAccount.inc:354 +#: ../lib/modules/asteriskAccount.inc:563 +#: ../lib/modules/asteriskAccount.inc:905 +#: ../lib/modules/asteriskAccount.inc:1260 +msgid "Registration context" +msgstr "Contexto de registro" + +#: ../lib/modules/asteriskAccount.inc:210 +#: ../lib/modules/asteriskAccount.inc:295 +#: ../lib/modules/asteriskAccount.inc:355 +#: ../lib/modules/asteriskAccount.inc:570 +#: ../lib/modules/asteriskAccount.inc:914 +#: ../lib/modules/asteriskAccount.inc:1263 +msgid "Registration extension" +msgstr "Extensão de registro" + +#: ../lib/modules/asteriskAccount.inc:226 +#: ../lib/modules/asteriskAccount.inc:303 +#: ../lib/modules/asteriskAccount.inc:359 +#: ../lib/modules/asteriskAccount.inc:599 +#: ../lib/modules/asteriskAccount.inc:954 +#: ../lib/modules/asteriskAccount.inc:1275 +msgid "Registration server" +msgstr "Servidor de registro" + +#: ../lib/modules/kolabUser.inc:53 +msgid "Reject if conflicts" +msgstr "Rejeitar se conflitar" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +msgid "Reloading" +msgstr "Recarregando" + +#: ../templates/config/confmodules.php:300 +#: ../templates/pdfedit/pdfpage.php:463 +#: ../lib/modules/mitKerberos.inc:684 +#: ../lib/modules/qmailUser.inc:912 +#: ../lib/modules/sambaSamAccount.inc:1441 +#: ../lib/modules/kolabUser.inc:752 +#: ../lib/modules/shadowAccount.inc:465 +#: ../lib/modules/freeRadius.inc:476 +#: ../lib/modules/sudoRole.inc:266 +#: ../lib/modules/sudoRole.inc:293 +#: ../lib/modules/sudoRole.inc:320 +#: ../lib/modules/sudoRole.inc:347 +#: ../lib/modules/sudoRole.inc:374 +#: ../lib/modules/sudoRole.inc:401 +#: ../lib/modules/heimdalKerberos.inc:590 +msgid "Remove" +msgstr "Remover" + +#: ../lib/modules/asteriskVoicemail.inc:282 +msgid "Remove Asterisk voicemail extension" +msgstr "Remover extensão de caixa de correio de voz do Asterisk" + +#: ../lib/modules/authorizedServiceObject.inc:190 +msgid "Remove Authorized Service extension" +msgstr "Remove extensão de serviço autorizado" + +#: ../lib/modules/eduPerson.inc:394 +msgid "Remove EDU person extension" +msgstr "Remover a extensão pessoal EDU" + +#: ../lib/modules/freeRadius.inc:340 +msgid "Remove FreeRadius extension" +msgstr "Remover a extensão FreeRadius" + +#: ../lib/modules/ipHost.inc:176 +msgid "Remove IP address extension" +msgstr "Remover extensão de endereço IP" + +#: ../lib/modules/mitKerberos.inc:468 +#: ../lib/modules/heimdalKerberos.inc:389 +msgid "Remove Kerberos extension" +msgstr "Remover extensão Kerberos" + +#: ../lib/modules/puppetClient.inc:273 +msgid "Remove Puppet extension" +msgstr "Remover extensão Puppet" + +#: ../lib/modules/sambaSamAccount.inc:1268 +msgid "Remove Samba 3 extension" +msgstr "Remover extensão Samba 3" + +#: ../lib/modules/shadowAccount.inc:364 +msgid "Remove Shadow account extension" +msgstr "Remover extensão de conta Shadow" + +#: ../lib/modules/zarafaContact.inc:228 +#: ../lib/modules/zarafaGroup.inc:275 +#: ../lib/modules/zarafaUser.inc:658 +#: ../lib/modules/zarafaServer.inc:209 +msgid "Remove Zarafa extension" +msgstr "Remover extensão Zarafa" + +#: ../lib/modules/customFields.inc:341 +msgid "Remove extension" +msgstr "Remover extensão" + +#: ../lib/types/user.inc:360 +msgid "Remove from all Unix groups" +msgstr "Remover de todos os grupos Unix" + +#: ../lib/types/user.inc:365 +msgid "Remove from all group of (unique) names" +msgstr "Remover de todos os grupos de nomes (únicos)" + +#: ../lib/modules/hostObject.inc:157 +msgid "Remove host extension" +msgstr "Remover extensão de host" + +#: ../lib/modules/posixGroup.inc:214 +#: ../lib/modules/posixAccount.inc:1173 +#: ../lib/modules/inetOrgPerson.inc:1885 +msgid "Remove password" +msgstr "Remover senha" + +#: ../lib/modules/passwordSelfReset.inc:277 +msgid "Remove password self reset extension" +msgstr "Remover extensão de redefinição de senha" + +#: ../lib/modules/qmailUser.inc:699 +msgid "Remove qmail extension" +msgstr "Remover extensão qmail" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:147 +#: ../lib/modules/zarafaContact.inc:386 +#: ../lib/modules/zarafaGroup.inc:442 +#: ../lib/modules/device.inc:278 +#: ../lib/modules/zarafaUser.inc:905 +#: ../lib/modules/inetOrgPerson.inc:2008 +#: ../lib/modules/groupOfNames.inc:300 +#: ../lib/modules/groupOfNames.inc:412 +msgid "Remove selected entries" +msgstr "Remover entradas selecionadas" + +#: ../templates/config/conftypes.php:267 +msgid "Remove this account type" +msgstr "Remover este tipo de conta" + +#: ../lib/modules/inetOrgPerson.inc:2879 +msgid "Remove/replace photo" +msgstr "Remover/substituir foto" + +#: ../templates/config/profmanage.php:263 +#: ../templates/selfService/profManage.php:234 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1152 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1155 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:24 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:35 +#: ../templates/3rdParty/pla/htdocs/rename.php:53 +msgid "Rename" +msgstr "Renomear" + +#: ../templates/3rdParty/pla/htdocs/rename_form.php:28 +#, php-format +msgid "Rename %s to a new object." +msgstr "Renomear %s para um novo objeto." + +#: ../templates/config/profmanage.php:258 +#: ../templates/config/profmanage.php:264 +#: ../templates/selfService/profManage.php:225 +#: ../templates/selfService/profManage.php:235 +#: ../help/help.inc:126 +msgid "Rename profile" +msgstr "Renomear perfil" + +#: ../templates/3rdParty/pla/htdocs/rename.php:48 +msgid "Rename successful!" +msgstr "Renomeado com sucesso!" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +msgid "Rename this entry" +msgstr "Renomear esta entrada" + +#: ../templates/config/profmanage.php:96 +#: ../templates/selfService/profManage.php:72 +msgid "Renamed profile." +msgstr "Perfil renomeado." + +#: ../templates/3rdParty/pla/htdocs/import.php:30 +#: ../templates/3rdParty/pla/htdocs/import.php:31 +msgid "Renaming" +msgstr "Renomeando" + +#: ../lib/modules/mitKerberos.inc:125 +#: ../lib/modules/mitKerberos.inc:184 +#: ../lib/modules/mitKerberos.inc:224 +#: ../lib/modules/mitKerberos.inc:241 +#: ../lib/modules/mitKerberos.inc:362 +#: ../lib/modules/mitKerberos.inc:771 +#: ../lib/modules/heimdalKerberos.inc:107 +#: ../lib/modules/heimdalKerberos.inc:153 +#: ../lib/modules/heimdalKerberos.inc:193 +#: ../lib/modules/heimdalKerberos.inc:210 +#: ../lib/modules/heimdalKerberos.inc:305 +#: ../lib/modules/heimdalKerberos.inc:685 +msgid "Renewable lifetime" +msgstr "Renovável por toda vida" + +#: ../lib/modules/mitKerberos.inc:281 +#: ../lib/modules/mitKerberos.inc:282 +#: ../lib/modules/heimdalKerberos.inc:245 +#: ../lib/modules/heimdalKerberos.inc:246 +msgid "Renewable lifetime must be a number." +msgstr "Tempo de vida renovável deve ser um número." + +#: ../templates/lists/changePassword.php:320 +#: ../lib/modules/passwordSelfReset.inc:817 +#: ../lib/modules.inc:1011 +msgid "Repeat password" +msgstr "repetir senha" + +#: ../lib/modules/posixAccount.inc:85 +#: ../lib/modules/posixAccount.inc:898 +msgid "Replaced $user or $group in homedir." +msgstr "Substituído $user ou $group no diretório/pasta padrão." + +#: ../templates/config/confmain.php:334 +#: ../help/help.inc:217 +msgid "Reply-to address" +msgstr "Endereço(s) de resposta" + +#: ../templates/config/confmain.php:491 +msgid "Reply-to address for password mails is invalid." +msgstr "Endereço para resposta de correio possui senha é inválida." + +#: ../lib/types/ppolicyType.inc:89 +#: ../lib/modules/ppolicy.inc:121 +#: ../lib/modules/ppolicy.inc:147 +#: ../lib/modules/ppolicy.inc:281 +#: ../lib/modules/ppolicy.inc:493 +msgid "Require password change on first login" +msgstr "Requerer alteração de senha no primeiro login" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 +msgid "Required attribute for object classes" +msgstr "Atributo requerido para as classes de objeto." + +#: ../templates/schema/schema.php:383 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1567 +msgid "Required attributes" +msgstr "Atributos requeridos" + +#: ../lib/modules/mitKerberos.inc:169 +#: ../lib/modules/mitKerberos.inc:458 +msgid "Requires hardware authentication" +msgstr "Requer autenticação por hardeware" + +#: ../lib/modules/mitKerberos.inc:166 +#: ../lib/modules/mitKerberos.inc:453 +#: ../lib/modules/heimdalKerberos.inc:144 +#: ../lib/modules/heimdalKerberos.inc:380 +msgid "Requires preauthentication" +msgstr "Requer pré-autenticação" + +#: ../lib/modules/sambaSamAccount.inc:1262 +msgid "Reset" +msgstr "Limpar" + +#: ../lib/modules.inc:1158 +msgid "Reset changes" +msgstr "Limpar alterações" + +#: ../lib/modules/sambaSamAccount.inc:252 +#: ../lib/modules/sambaSamAccount.inc:1261 +msgid "Reset password" +msgstr "Limpar senha" + +#: ../lib/modules/sambaDomain.inc:130 +#: ../lib/modules/sambaDomain.inc:192 +#: ../lib/modules/sambaDomain.inc:217 +#: ../lib/modules/sambaDomain.inc:341 +#: ../lib/modules/sambaDomain.inc:686 +msgid "Reset time after lockout" +msgstr "Tempo de liberação depois de bloqueio" + +#: ../lib/modules/sambaDomain.inc:217 +msgid "Reset time after lockout must be are natural number." +msgstr "Tempo de liberação depois de bloqueio deve ser um número natural" + +#: ../lib/modules/zarafaUser.inc:526 +msgid "Resource settings" +msgstr "Configurações do recurso" + +#: ../lib/modules/asteriskAccount.inc:178 +#: ../lib/modules/asteriskAccount.inc:279 +#: ../lib/modules/asteriskAccount.inc:347 +#: ../lib/modules/asteriskAccount.inc:512 +#: ../lib/modules/asteriskAccount.inc:840 +#: ../lib/modules/asteriskAccount.inc:1239 +msgid "Restrict caller ID" +msgstr "ID de chamada restrito" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:113 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:118 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:550 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:587 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:198 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:84 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:122 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +msgid "Retrieving DN" +msgstr "Recuperando DN" + +#: ../lib/modules/ddns.inc:112 +#: ../lib/modules/ddns.inc:120 +#: ../lib/modules/ddns.inc:141 +#: ../lib/modules/ddns.inc:384 +#: ../lib/modules/ddns.inc:411 +msgid "Reverse zone names" +msgstr "Nomes de zona reversa" + +#: ../templates/config/confmain.php:301 +#: ../help/help.inc:112 +msgid "Rights for the home directory" +msgstr "Direitos para o diretório/pasta padrão" + +#: ../lib/types/sudo.inc:77 +#: ../lib/modules/sudoRole.inc:55 +#: ../lib/modules/sudoRole.inc:121 +#: ../lib/modules/sudoRole.inc:171 +#: ../lib/modules/sudoRole.inc:247 +#: ../lib/modules/sudoRole.inc:682 +msgid "Role name" +msgstr "Nome da regra" + +#: ../lib/modules/zarafaUser.inc:531 +#: ../lib/modules/zarafaUser.inc:1292 +msgid "Room" +msgstr "Sala" + +#: ../lib/modules/inetOrgPerson.inc:128 +#: ../lib/modules/inetOrgPerson.inc:168 +#: ../lib/modules/inetOrgPerson.inc:283 +#: ../lib/modules/inetOrgPerson.inc:491 +#: ../lib/modules/inetOrgPerson.inc:585 +#: ../lib/modules/inetOrgPerson.inc:766 +#: ../lib/modules/inetOrgPerson.inc:1578 +#: ../lib/modules/inetOrgPerson.inc:2180 +#: ../lib/modules/inetOrgPerson.inc:2810 +msgid "Room number" +msgstr "Número da sala" + +#: ../lib/modules/inetLocalMailRecipient.inc:61 +#: ../lib/modules/inetLocalMailRecipient.inc:93 +#: ../lib/modules/inetLocalMailRecipient.inc:112 +#: ../lib/modules/inetLocalMailRecipient.inc:141 +#: ../lib/modules/inetLocalMailRecipient.inc:300 +msgid "Routing address" +msgstr "Endereço de roteamento" + +#: ../lib/modules/customFields.inc:116 +#: ../lib/modules/customFields.inc:1419 +msgid "Rows" +msgstr "Linhas" + +#: ../lib/modules/asteriskExtension.inc:132 +#: ../lib/modules/asteriskExtension.inc:304 +msgid "Rules" +msgstr "Regras" + +#: ../lib/modules/customScripts.inc:153 +msgid "Run" +msgstr "Rodar" + +#: ../lib/types/sudo.inc:82 +msgid "Run group" +msgstr "Grupo de execução" + +#: ../lib/modules/sudoRole.inc:79 +#: ../lib/modules/sudoRole.inc:107 +#: ../lib/modules/sudoRole.inc:158 +#: ../lib/modules/sudoRole.inc:177 +#: ../lib/modules/sudoRole.inc:186 +#: ../lib/modules/sudoRole.inc:372 +#: ../lib/modules/sudoRole.inc:699 +msgid "Run groups" +msgstr "Grupos de execução" + +#: ../lib/types/sudo.inc:81 +msgid "Run user" +msgstr "Usuário de execução" + +#: ../lib/modules/sudoRole.inc:75 +#: ../lib/modules/sudoRole.inc:102 +#: ../lib/modules/sudoRole.inc:152 +#: ../lib/modules/sudoRole.inc:176 +#: ../lib/modules/sudoRole.inc:185 +#: ../lib/modules/sudoRole.inc:345 +#: ../lib/modules/sudoRole.inc:696 +msgid "Run users" +msgstr "Usuários de execução" + +#: ../templates/serverInfo.php:129 +msgid "SASL mechanisms" +msgstr "Mecanismos SASL" + +#: ../lib/modules/asteriskAccount.inc:143 +msgid "SIP URI for a realtime peer." +msgstr "URI SIP para um ponto em tempo real." + +#: ../lib/modules/asteriskAccount.inc:119 +msgid "SIP user agent identification." +msgstr "Identificação do usuário agente do SIP." + +#: ../templates/tests/lamdaemonTest.php:243 +msgid "SSH connection" +msgstr "Conexão SSH" + +#: ../templates/tests/lamdaemonTest.php:256 +msgid "SSH connection could be established." +msgstr "Conexão SSH não pode ser estabelecida." + +#: ../lib/modules/ldapPublicKey.inc:52 +#: ../lib/modules/ldapPublicKey.inc:62 +#: ../lib/modules/ldapPublicKey.inc:66 +#: ../lib/modules/ldapPublicKey.inc:74 +#: ../lib/modules/ldapPublicKey.inc:98 +msgid "SSH public key" +msgstr "Chave pública SSH" + +#: ../lib/modules/ldapPublicKey.inc:81 +#: ../lib/modules/ldapPublicKey.inc:176 +msgid "SSH public keys" +msgstr "Chaves públicas SSH" + +#: ../lib/modules/zarafaServer.inc:65 +#: ../lib/modules/zarafaServer.inc:95 +#: ../lib/modules/zarafaServer.inc:125 +#: ../lib/modules/zarafaServer.inc:152 +#: ../lib/modules/zarafaServer.inc:180 +#: ../lib/modules/zarafaServer.inc:365 +msgid "SSL port" +msgstr "Porta SSL" + +#: ../templates/lists/changePassword.php:352 +#: ../templates/lists/changePassword.php:378 +msgid "Samba" +msgstr "Samba" + +#: ../lib/types/user.inc:263 +#: ../lib/types/user.inc:350 +#: ../lib/types/user.inc:384 +#: ../lib/types/user.inc:771 +#: ../lib/modules/sambaSamAccount.inc:137 +#: ../lib/modules/sambaGroupMapping.inc:312 +msgid "Samba 3" +msgstr "Samba 3" + +#: ../lib/modules/sambaDomain.inc:203 +#: ../lib/modules/sambaDomain.inc:204 +msgid "Samba 3 domain SID is invalid!" +msgstr "SID do domínio Samba 3 inválido!" + +#: ../lib/types/smbDomain.inc:62 +msgid "Samba 3 domain entries" +msgstr "Entradas de domínio Samba 3" + +#: ../lib/modules/sambaSamAccount.inc:317 +#: ../lib/modules/sambaSamAccount.inc:321 +#: ../lib/modules/sambaSamAccount.inc:462 +#: ../lib/modules/sambaSamAccount.inc:528 +msgid "Samba RID" +msgstr "RID do Samba" + +#: ../lib/modules/sambaGroupMapping.inc:339 +#: ../lib/modules/sambaGroupMapping.inc:364 +msgid "Samba RID number" +msgstr "Número RID do Samba" + +#: ../lib/modules/sambaGroupMapping.inc:333 +msgid "Samba display name" +msgstr "Nome a mostrar do Samba" + +#: ../lib/modules/sambaDomain.inc:51 +msgid "Samba domain" +msgstr "Domínio Samba" + +#: ../lib/modules/sambaGroupMapping.inc:149 +msgid "Samba domain name" +msgstr "Nome do domínio Samba" + +#: ../lib/types/smbDomain.inc:53 +msgid "Samba domains" +msgstr "Domínios Samba" + +#: ../lib/modules/sambaGroupMapping.inc:324 +#: ../lib/modules/sambaGroupMapping.inc:345 +#: ../lib/modules/sambaGroupMapping.inc:372 +#: ../lib/modules/sambaGroupMapping.inc:393 +msgid "Samba group type" +msgstr "Tipo de grupo do Samba" + +#: ../lib/modules/sambaSamAccount.inc:249 +msgid "Samba password" +msgstr "Senha do Samba" + +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:217 +#: ../lib/modules/sambaSamAccount.inc:302 +#: ../lib/modules/sambaSamAccount.inc:305 +#: ../lib/modules/sambaSamAccount.inc:503 +#: ../lib/modules/sambaSamAccount.inc:587 +#: ../lib/modules/sambaSamAccount.inc:1202 +#: ../lib/modules/sambaSamAccount.inc:1582 +#: ../lib/modules/sambaSamAccount.inc:1731 +msgid "Samba workstations" +msgstr "Estações de trabalho do Samba" + +#: ../lib/modules/sambaSamAccount.inc:1338 +msgid "Saturday" +msgstr "Sábado" + +#: ../templates/config/confmodules.php:224 +#: ../templates/config/confmain.php:442 +#: ../templates/config/moduleSettings.php:235 +#: ../templates/config/conftypes.php:286 +#: ../templates/selfService/selfServiceMain.php:380 +#: ../templates/selfService/adminMain.php:635 +#: ../templates/pdfedit/pdfpage.php:585 +#: ../templates/profedit/profilepage.php:233 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1243 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1247 +#: ../lib/modules.inc:1153 +msgid "Save" +msgstr "Salvar" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +msgid "Save a dump of this object" +msgstr "Descarregar e salvar este objeto" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1244 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Save a dump of this object and all of its children" +msgstr "Descarregar e salvar este objeto e seus filhos" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:90 +msgid "Save as file" +msgstr "Salvar como arquivo" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:172 +msgid "Save changes" +msgstr "Salvar alterações" + +#: ../lib/tools/schemaBrowser.inc:44 +msgid "Schema browser" +msgstr "Visualizador de esquemas" + +#: ../templates/serverInfo.php:119 +msgid "Schema suffix" +msgstr "Sufixo Schema" + +#: ../templates/tests/schemaTest.php:55 +#: ../templates/tests/index.php:58 +#: ../lib/tools/tests.inc:116 +msgid "Schema test" +msgstr "Teste de esquemas" + +#: ../lib/modules/eduPerson.inc:85 +#: ../lib/modules/eduPerson.inc:155 +#: ../lib/modules/eduPerson.inc:207 +#: ../lib/modules/eduPerson.inc:269 +#: ../lib/modules/eduPerson.inc:667 +msgid "Scoped affiliation" +msgstr "Filiação no escopo" + +#: ../help/help.inc:97 +msgid "Script path" +msgstr "Caminho de script" + +#: ../templates/config/confmain.php:532 +msgid "Script path is invalid!" +msgstr "Caminho de script inválido!" + +#: ../templates/config/confmain.php:551 +msgid "Script rights are invalid!" +msgstr "Direitos de script inválidos!" + +#: ../templates/config/confmain.php:535 +msgid "Script server is invalid!" +msgstr "Servidor de scripts inválido!" + +#: ../help/help.inc:108 +msgid "Script servers" +msgstr "Servidores de script" + +#: ../templates/serverInfo.php:300 +#: ../templates/serverInfo.php:380 +#: ../templates/3rdParty/pla/lib/QueryRender.php:75 +#: ../templates/3rdParty/pla/lib/QueryRender.php:180 +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:619 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:235 +msgid "Search" +msgstr "Pesquisar" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +#: ../templates/3rdParty/pla/lib/QueryRender.php:190 +msgid "Search Results" +msgstr "Resultados de pesquisa" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +#: ../templates/3rdParty/pla/lib/export_functions.php:201 +#: ../templates/3rdParty/pla/htdocs/export_form.php:81 +msgid "Search filter" +msgstr "Filtro de pesquisa" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:293 +msgid "Search returned no results" +msgstr "Procurar nos resultados retornados" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +#: ../templates/3rdParty/pla/lib/export_functions.php:200 +#: ../templates/3rdParty/pla/htdocs/export_form.php:67 +msgid "Search scope" +msgstr "Escopo de pesquisa" + +#: ../lib/modules/asteriskExtension.inc:450 +msgid "Search tree suffix for users" +msgstr "Pesquisar no sufixo de árvore por usuários" + +#: ../templates/pdfedit/pdfpage.php:557 +msgid "Section" +msgstr "Seção" + +#: ../templates/3rdParty/pla/lib/Template.php:397 +#: ../templates/3rdParty/pla/lib/Template.php:422 +#: ../templates/3rdParty/pla/lib/Template.php:427 +#: ../templates/3rdParty/pla/lib/Template.php:484 +#: ../templates/3rdParty/pla/lib/Template.php:509 +#: ../templates/3rdParty/pla/lib/Template.php:514 +msgid "Security error: The file being uploaded may be malicious." +msgstr "Erro de segurança: O arquivo a ser carregado pode ser malicioso." + +#: ../lib/modules/zarafaGroup.inc:71 +#: ../lib/modules/zarafaGroup.inc:138 +#: ../lib/modules/zarafaGroup.inc:175 +#: ../lib/modules/zarafaGroup.inc:254 +#: ../lib/modules/zarafaGroup.inc:636 +msgid "Security group" +msgstr "Grupos de segurança" + +#: ../lib/modules/passwordSelfReset.inc:66 +#: ../lib/modules/passwordSelfReset.inc:157 +#: ../lib/modules/passwordSelfReset.inc:183 +msgid "Security questions" +msgstr "Questões de segurança" + +#: ../templates/config/mainmanage.php:203 +#: ../templates/config/confmain.php:432 +msgid "Security settings" +msgstr "Configurações de segurança" + +#: ../templates/help.php:94 +msgid "See also" +msgstr "Ver também" + +#: ../lib/account.inc:721 +msgid "See the manual for instructions to solve this problem." +msgstr "Veja o manual para instruções de como resolver este problema." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:494 +msgid "Select a template for the creation process" +msgstr "Selecionar um molde para o processo da criação " + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:498 +msgid "Select a template to edit the entry" +msgstr "Selecionar um modelo para editar esta entrada" + +#: ../lib/lists.inc:426 +msgid "Select all" +msgstr "Selecionar todos" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:31 +msgid "Select an LDIF file" +msgstr "Selecionar um arquivo LDIF" + +#: ../lib/modules/nisnetgroup.inc:233 +#: ../lib/modules/nisnetgroup.inc:262 +msgid "Select host" +msgstr "Selecionar host" + +#: ../lib/modules/customFields.inc:1820 +msgid "Select list" +msgstr "Lista de seleção" + +#: ../lib/modules/nisnetgroup.inc:239 +#: ../lib/modules/nisnetgroup.inc:268 +msgid "Select user" +msgstr "Selecionar usuários" + +#: ../lib/modules/posixAccount.inc:1217 +#: ../lib/modules/posixAccount.inc:1247 +#: ../lib/modules/nisnetgroup.inc:377 +#: ../lib/modules/groupOfNamesUser.inc:110 +msgid "Selected groups" +msgstr "Grupos selecionados" + +#: ../templates/masscreate.php:157 +#: ../templates/config/confmodules.php:289 +msgid "Selected modules" +msgstr "Módulos selecionados" + +#: ../lib/modules/posixGroup.inc:253 +#: ../lib/modules/asteriskExtension.inc:454 +msgid "Selected users" +msgstr "Usuários selecionados" + +#: ../templates/selfService/adminMain.php:290 +msgid "Self service configuration" +msgstr "Configuração de auto serviço" + +#: ../templates/selfService/adminMain.php:344 +msgid "Self service configuration editor" +msgstr "Editor de configuração de auto serviço" + +#: ../templates/selfService/adminMain.php:350 +msgid "Self service login" +msgstr "Login de auto serviço" + +#: ../templates/selfService/adminMain.php:336 +msgid "Self service profile" +msgstr "Perfil de auto serviço" + +#: ../lib/modules/passwordSelfReset.inc:112 +#: ../lib/modules/passwordSelfReset.inc:201 +msgid "Send confirmation mail" +msgstr "Enviar e-mail de confirmação" + +#: ../lib/modules/passwordSelfReset.inc:94 +#: ../lib/modules/passwordSelfReset.inc:185 +msgid "Send notification mail" +msgstr "Enviar e-mail de notificação" + +#: ../templates/lists/changePassword.php:294 +#: ../templates/lists/changePassword.php:324 +#: ../lib/modules.inc:1028 +#: ../help/help.inc:176 +msgid "Send via mail" +msgstr "Enviar via e-mail" + +#: ../lib/modules/passwordSelfReset.inc:95 +msgid "Sends a mail to the user to inform him about the password change." +msgstr "Enviar e-mail para o usuário informando sobre a troca de senha." + +#: ../lib/modules/passwordSelfReset.inc:113 +msgid "Sends a mail to the user to validate his email address before the password change." +msgstr "Enviar um e-mail para o usuário para validar seu endereço de e-mail antes de trocar a senha." + +#: ../help/help.inc:177 +msgid "Sends the password to the user via mail. Please edit your LAM server profile to setup the mail settings." +msgstr "Enviar senha para o usuário via e-mail. Por favor edite seu perfil de servidor LAM para configurar as opções de e-mail." + +#: ../lib/modules/device.inc:58 +#: ../lib/modules/device.inc:89 +#: ../lib/modules/device.inc:114 +#: ../lib/modules/device.inc:169 +#: ../lib/modules/device.inc:442 +msgid "Serial number" +msgstr "Número serial" + +#: ../templates/tests/lamdaemonTest.php:72 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:166 +#: ../templates/3rdParty/pla/htdocs/import.php:47 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:110 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +#: ../templates/3rdParty/pla/htdocs/export_form.php:56 +msgid "Server" +msgstr "Servidor" + +#: ../templates/config/confmain.php:238 +#: ../templates/selfService/adminMain.php:401 +#: ../lib/modules/qmailUser.inc:111 +#: ../lib/modules/qmailUser.inc:156 +#: ../lib/modules/qmailUser.inc:236 +#: ../lib/modules/qmailUser.inc:351 +#: ../lib/modules/qmailUser.inc:420 +#: ../lib/modules/qmailUser.inc:585 +#: ../lib/modules/qmailUser.inc:1249 +#: ../lib/modules/imapAccess.inc:70 +#: ../lib/modules/imapAccess.inc:108 +#: ../help/help.inc:58 +msgid "Server address" +msgstr "Endereço do servidor" + +#: ../templates/config/confmain.php:475 +#: ../templates/selfService/adminMain.php:122 +msgid "Server address is invalid!" +msgstr "Endereço do servidor inválido!" + +#: ../templates/serverInfo.php:103 +#: ../lib/tools/serverInfo.inc:44 +msgid "Server information" +msgstr "Informação do servidor" + +#: ../templates/config/confmain.php:298 +msgid "Server list" +msgstr "Lista de servidores" + +#: ../templates/login.php:407 +#: ../templates/config/confmodules.php:137 +#: ../templates/config/confmain.php:167 +#: ../templates/config/moduleSettings.php:136 +#: ../templates/config/conftypes.php:155 +msgid "Server profile" +msgstr "Perfil de servidor" + +#: ../templates/config/confmain.php:267 +#: ../templates/selfService/adminMain.php:421 +msgid "Server settings" +msgstr "Configurações de servidor" + +#: ../templates/serverInfo.php:180 +msgid "Server statistics" +msgstr "Estatísticas de servidor" + +#: ../templates/serverInfo.php:205 +#: ../templates/serverInfo.php:211 +msgid "Server time" +msgstr "Hora do servidor" + +#: ../lib/modules/zarafaServer.inc:134 +msgid "Servers" +msgstr "Servidores" + +#: ../lib/modules/authorizedServiceObject.inc:75 +msgid "Service name (e.g. sshd, imap, ftp). Enter one service per entry." +msgstr "Nome do serviço (Ex. sshd, imap, ftp). Apenas um serviço por entrada." + +#: ../templates/config/mainmanage.php:201 +#: ../help/help.inc:140 +msgid "Session timeout" +msgstr "Tempo de expiração de sessão" + +#: ../lib/modules/aliasEntry.inc:101 +msgid "Set" +msgstr "Atribuir" + +#: ../lib/modules/sambaSamAccount.inc:1429 +#: ../lib/modules/sambaSamAccount.inc:1432 +#: ../lib/modules/sambaSamAccount.inc:1435 +#: ../lib/modules/shadowAccount.inc:453 +#: ../lib/modules/shadowAccount.inc:456 +#: ../lib/modules/shadowAccount.inc:459 +msgid "Set also for Kerberos" +msgstr "Definir também para Kerberos" + +#: ../lib/modules/mitKerberos.inc:678 +#: ../lib/modules/shadowAccount.inc:450 +#: ../lib/modules/heimdalKerberos.inc:584 +msgid "Set also for Samba 3" +msgstr "Definir também para Samba 3" + +#: ../lib/modules/mitKerberos.inc:675 +#: ../lib/modules/sambaSamAccount.inc:1426 +#: ../lib/modules/heimdalKerberos.inc:581 +msgid "Set also for Shadow" +msgstr "Definir também para Shadow" + +#: ../lib/modules.inc:1164 +#: ../lib/modules.inc:1166 +msgid "Set password" +msgstr "Definir senha" + +#: ../lib/modules/posixAccount.inc:201 +#: ../lib/modules/posixAccount.inc:344 +msgid "Set primary group as memberUid" +msgstr "Atribuir o grupo primário e o atributo memberUid" + +#: ../templates/config/profmanage.php:279 +#: ../templates/config/profmanage.php:289 +#: ../templates/config/profmanage.php:290 +#: ../help/help.inc:130 +msgid "Set profile password" +msgstr "Definir senha de perfil" + +#: ../lib/modules.inc:1167 +msgid "Set random password" +msgstr "Definir senha randômica" + +#: ../templates/lists/changePassword.php:308 +msgid "Set specific password" +msgstr "Definir senha específica" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +msgid "Set the search results to 0 to retrieve all available records." +msgstr "Definir os resultados da pesquisa como \"0\" para recuperar todos os registros disponíveis." + +#: ../templates/selfService/adminMain.php:500 +msgid "Set this field read-only." +msgstr "Tornar este campo somente para leitura." + +#: ../lib/modules/groupOfNames.inc:85 +msgid "Set this only if your LDAP schema allows that groups may not have any members (e.g. if you use OpenDJ)." +msgstr "Definir isso somente se o esquema LDAP permite que os grupos não podem ter todos os membros (por exemplo, se você usa OpenDJ)." + +#: ../lib/modules/qmailUser.inc:209 +msgid "Sets the delivery mode (e.g. disable mail forwarding)." +msgstr "Define o modo de entrega (por exemplo, desativar o encaminhamento de e-mail)." + +#: ../lib/modules/posixGroup.inc:416 +msgid "Sets the group password." +msgstr "Definir senha de grupo." + +#: ../lib/modules/shadowAccount.inc:84 +msgid "Shadow" +msgstr "Sombra" + +#: ../lib/modules/sambaSamAccount.inc:233 +#: ../lib/modules/sambaSamAccount.inc:369 +#: ../lib/modules/sambaSamAccount.inc:1506 +#: ../lib/modules/sambaSamAccount.inc:1786 +msgid "Shadowing" +msgstr "Sombreando" + +#: ../lib/modules/zarafaUser.inc:97 +#: ../lib/modules/zarafaUser.inc:174 +#: ../lib/modules/zarafaUser.inc:284 +#: ../lib/modules/zarafaUser.inc:377 +#: ../lib/modules/zarafaUser.inc:588 +#: ../lib/modules/zarafaUser.inc:1326 +msgid "Shared store only" +msgstr "Arquivo compartilhado somente" + +#: ../lib/modules/ddns.inc:88 +msgid "Should DDNS (Dynamic DNS) be activated?" +msgstr "Ativar DDNS (Dynamic DNS) ?" + +#: ../lib/modules/ddns.inc:92 +msgid "Should fix IP addresses be added to the DNS server?" +msgstr "Ao fixar endereços IP, estes deverão ser adicionados ao servidor DNS?" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1121 +msgid "Show" +msgstr "Mostrar" + +#: ../templates/massBuildAccounts.php:220 +msgid "Show LDIF file" +msgstr "Mostrar arquivo LDIF" + +#: ../lib/types/user.inc:636 +msgid "Show account status" +msgstr "Mostrar status da conta" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +#: ../templates/3rdParty/pla/htdocs/export_form.php:84 +msgid "Show attributes" +msgstr "Mostrar atributos" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1122 +msgid "Show internal attributes" +msgstr "Mostrar atributos internos" + +#: ../lib/modules/asteriskExtension.inc:446 +msgid "Show only Asterisk accounts" +msgstr "Mostrar somente contas Asterisk" + +#: ../lib/types/group.inc:329 +msgid "Show primary group members as normal group members" +msgstr "Mostrar membros de grupos primários como membros de grupos normais" + +#: ../templates/schema/schema.php:194 +msgid "Single valued" +msgstr "Único avaliado" + +#: ../lib/modules/qmailUser.inc:221 +msgid "Size limit in bytes for a single mail. Larger mails will be bounced." +msgstr "Limite de tamanho em bytes para um único e-mail. Mensagens com tamanhos maiores serão devolvidos." + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Skip" +msgstr "Pular" + +#: ../lib/modules/quota.inc:626 +#: ../lib/modules/systemQuotas.inc:376 +msgid "Soft block" +msgstr "Bloco máximo" + +#: ../lib/modules/quota.inc:106 +#: ../lib/modules/quota.inc:394 +#: ../lib/modules/quota.inc:499 +#: ../lib/modules/systemQuotas.inc:117 +msgid "Soft block limit" +msgstr "Limite de bloco máximo" + +#: ../lib/modules/quota.inc:107 +msgid "Soft block limit." +msgstr "Limite de bloco máximo." + +#: ../lib/modules/quota.inc:628 +#: ../lib/modules/systemQuotas.inc:378 +msgid "Soft inode" +msgstr "Nodo máximo" + +#: ../lib/modules/quota.inc:129 +msgid "Soft inode (files) limit." +msgstr "Limite máximo de nodos (arquivos)." + +#: ../lib/modules/quota.inc:128 +#: ../lib/modules/quota.inc:398 +#: ../lib/modules/quota.inc:501 +#: ../lib/modules/systemQuotas.inc:121 +msgid "Soft inode limit" +msgstr "Limite máximo de nodos" + +#: ../lib/modules/imapAccess.inc:89 +msgid "Some IMAP servers store mailboxes with a prefix (e.g. \"user\" for Cyrus which results in \"user.username\")." +msgstr "Alguns servidores IMAP armazenam suas caixas de correio com um prefixo (por exemplo \"usuário \" para Cyrus que resulta em \"usuario.nomedeusuario \")." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1019 +#, php-format +msgid "Some attributes (%s) were modified and are highlighted below." +msgstr "Alguns atributos (%s) foram alterados e estão destacados abaixo." + +#: ../lib/modules.inc:848 +msgid "Some required information is missing" +msgstr "Algumas informações requeridas estão faltando" + +#: ../templates/help.php:123 +#, php-format +msgid "Sorry this help id ({bold}%s{endbold}) is not available for this module ({bold}%s{endbold})." +msgstr "Desculpe, este ID de ajuda ({bold}%s{endbold}) não está disponível para este módulo ({bold}%s{endbold})." + +#: ../templates/help.php:136 +#, php-format +msgid "Sorry this help number ({bold}%s{endbold}) is not available." +msgstr "Desculpe, este número de ajuda ({bold}%s{endbold}) não está disponível." + +#: ../lib/modules/sambaSamAccount.inc:314 +#: ../lib/modules/sambaSamAccount.inc:1239 +msgid "Special user" +msgstr "Usuário especial" + +#: ../lib/modules/zarafaDynamicGroup.inc:85 +#: ../lib/modules/zarafaAddressList.inc:73 +msgid "Specifies a filter that matches the members (e.g. \"(mail=*@zarafa.nl)\")." +msgstr "Especifique um filtro para encontrar membros (Ex. \"(mail=*@zarafa.nl)\")." + +#: ../help/help.inc:216 +msgid "Specifies if the mail should be sent as text or HTML." +msgstr "Especifica se o e-mail deve ser enviado como texto ou HTML." + +#: ../lib/modules/asteriskAccount.inc:215 +msgid "Specifies if the user can call forward." +msgstr "Especifica se o usuário pode fazer uma chamada." + +#: ../lib/modules/zarafaGroup.inc:72 +msgid "Specifies if this group has security possibilities." +msgstr "Especifica se esse grupo tem possibilidades de implementação de segurança." + +#: ../lib/modules/zarafaServer.inc:74 +msgid "Specifies if this server contains the public store. This may be changed only for new entries." +msgstr "Especifica se este servidor contém o arquivo público. Isto pode ser alterado apenas para novas entradas." + +#: ../lib/modules/ppolicy.inc:126 +msgid "Specifies if users are allowed to change their own passwords or not." +msgstr "Especifica se os usuários estão habilitados a trocar a própria senha ou não." + +#: ../lib/modules/zarafaDynamicGroup.inc:81 +#: ../lib/modules/zarafaAddressList.inc:69 +msgid "Specifies the LDAP base where to search for members (e.g. \"ou=zarafa,dc=company,dc=com\")." +msgstr "Especifica a base LDAP onde deve ser procurado os membros (Ex. \"ou=zarafa,dc=company,dc=com\")." + +#: ../lib/modules/zarafaContact.inc:86 +#: ../lib/modules/zarafaGroup.inc:88 +#: ../lib/modules/zarafaUser.inc:130 +msgid "Specifies the attribute that should be used to reference the entries. If you would like to reference also groups then this must be set to \"dn\"." +msgstr "Especifica o atributo que deve ser usado para referenciar as entradas. Se você gostaria de fazer referência a grupos, então este também deve ser definido como \"dn \"." + +#: ../lib/modules/zarafaUser.inc:106 +msgid "Specifies the capacity of this resource." +msgstr "Especificar a capacidade deste recurso." + +#: ../lib/modules/mitKerberos.inc:130 +#: ../lib/modules/heimdalKerberos.inc:104 +msgid "Specifies the maximum lifetime of a ticket in days." +msgstr "Especifica o tempo de vida máximo de um bilhete em dias." + +#: ../lib/modules/ppolicy.inc:110 +msgid "Specifies the maximum number of seconds before a password is due to expire that expiration warning messages will be returned to a user." +msgstr "Especifica o número máximo de segundos antes de uma senha expirar e que mensagem de aviso de vencimento será enviada ao usuário." + +#: ../lib/modules/freeRadius.inc:102 +msgid "Specifies the maximum number of seconds that a connection can be idle before the session is terminated." +msgstr "Especifica o número máximo de segundos que uma conexão pode ficar ociosa antes que a sessão seja encerrada." + +#: ../lib/modules/mitKerberos.inc:126 +#: ../lib/modules/heimdalKerberos.inc:108 +msgid "Specifies the maximum renewable lifetime of a ticket in days." +msgstr "Especifica o máximo de tempo de vida renovável de um bilhete em dias." + +#: ../lib/modules/ppolicy.inc:114 +msgid "Specifies the minimum number of characters that will be accepted in a password." +msgstr "Aqui você pode especificar o número mínimo de caracteres aceitos para uma senha. " + +#: ../lib/modules/ppolicy.inc:102 +msgid "Specifies the number of consecutive failed login attempts after which the password may not be used to login." +msgstr "Especifica o número de tentativas consecutivas de login falhas em que a senha será bloqueada para login." + +#: ../lib/modules/ppolicy.inc:86 +msgid "Specifies the number of previously used passwords which should be saved in the password history. New passwords can only be set if they are not in the password history." +msgstr "Especifica o número de senhas utilizadas anteriormente, que deve ser guardado no histórico de senhas. Novas senhas só podem ser definidas se estas não estão no histórico de senhas." + +#: ../lib/modules/ppolicy.inc:106 +msgid "Specifies the number of seconds after which old consecutive failed login attempts are purged from the failure counter, even though no successful authentication has occurred." +msgstr "Especifica o número de segundos após os quais as tentativas consecutivas de login são removidas do contador de falhas de login, mesmo que não tenha ocorrido a autenticação com sucesso." + +#: ../lib/modules/ppolicy.inc:98 +msgid "Specifies the number of seconds during which the password cannot be used to login due to too many consecutive failed bind attempts." +msgstr "Especifica o número de segundos durante os quais a senha não pode ser usado para login devido a muitas tentativas consecutivas de falçha de login." + +#: ../lib/modules/eduPerson.inc:86 +msgid "Specifies the person's affiliation within a particular security domain in broad categories such as student, faculty, staff, alum, etc." +msgstr "Especifica a filiação da pessoa dentro de um domínio de segurança particular em grandes categorias, como estudantes, professores, funcionários, etc" + +#: ../lib/modules/eduPerson.inc:82 +msgid "Specifies the person's primary relationship to the institution in broad categories such as student, faculty, staff, alum, etc." +msgstr "Especifica relação primária da pessoa para a instituição em grandes categorias, como estudantes, professores, funcionários, etc." + +#: ../lib/modules/eduPerson.inc:94 +#: ../lib/modules/eduPerson.inc:98 +msgid "Specifies the person's relationships to the institution in broad categories such as student, faculty, staff, alum, etc." +msgstr "Especifica a relação das pessoas com a instituição em grandes categorias, como estudantes, professores, funcionários, etc." + +#: ../lib/modules/asteriskAccount.inc:167 +msgid "Specifies the user's pickup group." +msgstr "Especifique o grupo primário do usuário." + +#: ../lib/modules/zarafaUser.inc:94 +msgid "Specifies whether the user is an admin. System administrators may additionally create, modify and delete companies." +msgstr "Especifica se o usuário é um administrador. Os administradores de sistema podem também criar, modificar e excluir as empresas." + +#: ../lib/modules/ppolicy.inc:130 +msgid "Specifies whether the user's existing password must be sent along with their new password when changing a password. Attention, LAM does not support password changes which require the old password." +msgstr "Especifica se a senha de registro do usuário deve ser enviado junto com sua nova senha quando mudar uma senha. Atenção, a LAM não oferece suporte a alterações de senhas, que exigem a senha antiga." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1460 +msgid "Specify attributes and values" +msgstr "Especificar atributos e valores" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +msgid "Standard LDAP search filter. Example: (&(sn=Smith)(givenName=David))" +msgstr "Filtro de pesquisa padrão para o LDAP. Exemplo: (&(sn=Smith)(givenName=Davi))" + +#: ../templates/serverInfo.php:193 +#: ../templates/serverInfo.php:199 +msgid "Start time" +msgstr "Hora de início" + +#: ../lib/modules/inetOrgPerson.inc:129 +#: ../lib/modules/inetOrgPerson.inc:156 +#: ../lib/modules/inetOrgPerson.inc:275 +#: ../lib/modules/inetOrgPerson.inc:531 +#: ../lib/modules/inetOrgPerson.inc:573 +#: ../lib/modules/inetOrgPerson.inc:782 +#: ../lib/modules/inetOrgPerson.inc:786 +#: ../lib/modules/inetOrgPerson.inc:1475 +#: ../lib/modules/inetOrgPerson.inc:2185 +#: ../lib/modules/inetOrgPerson.inc:2832 +msgid "State" +msgstr "SEstado" + +#: ../templates/pdfedit/pdfpage.php:507 +#: ../templates/pdfedit/pdfpage.php:509 +msgid "Static text" +msgstr "Texto estático" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1455 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1467 +#, php-format +msgid "Step %s of %s" +msgstr "Passo %s de %s" + +#: ../lib/modules/inetOrgPerson.inc:334 +msgid "Steve" +msgstr "Steve" + +#: ../lib/modules/sambaSamAccount.inc:406 +#: ../lib/modules/posixAccount.inc:220 +#: ../lib/modules/inetOrgPerson.inc:2313 +#: ../lib/modules/asteriskVoicemail.inc:165 +msgid "Steve Miller" +msgstr "Steve Miller" + +#: ../lib/modules/posixAccount.inc:281 +msgid "Steve Miller,Room 2.14,123-123-1234,123-123-1234" +msgstr "Steve Miller,Sala 2.14,123-123-1234,123-123-1234" + +#: ../lib/modules/eduPerson.inc:170 +msgid "Steve, Stevo" +msgstr "Steve, Stevo" + +#: ../lib/modules/inetOrgPerson.inc:63 +#: ../lib/modules/inetOrgPerson.inc:126 +#: ../lib/modules/inetOrgPerson.inc:144 +#: ../lib/modules/inetOrgPerson.inc:267 +#: ../lib/modules/inetOrgPerson.inc:403 +#: ../lib/modules/inetOrgPerson.inc:561 +#: ../lib/modules/inetOrgPerson.inc:674 +#: ../lib/modules/inetOrgPerson.inc:678 +#: ../lib/modules/inetOrgPerson.inc:1371 +#: ../lib/modules/inetOrgPerson.inc:2169 +#: ../lib/modules/inetOrgPerson.inc:2755 +msgid "Street" +msgstr "Rua" + +#: ../templates/pdfedit/pdfpage.php:444 +#: ../templates/pdfedit/pdfmain.php:317 +msgid "Structure name" +msgstr "Nome da estrutura" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:136 +#: ../templates/3rdParty/pla/htdocs/export_form.php:33 +msgid "Sub (entire subtree)" +msgstr "Sub (Toda a árvore)" + +#: ../lib/types/netgroup.inc:93 +#: ../lib/modules/nisnetgroup.inc:84 +#: ../lib/modules/nisnetgroup.inc:119 +#: ../lib/modules/nisnetgroup.inc:134 +#: ../lib/modules/nisnetgroup.inc:202 +#: ../lib/modules/nisnetgroup.inc:376 +#: ../lib/modules/nisnetgroup.inc:580 +msgid "Subgroups" +msgstr "Subgrupos" + +#: ../templates/config/confmain.php:337 +#: ../lib/modules/selfRegistration.inc:77 +#: ../lib/modules/selfRegistration.inc:135 +#: ../lib/modules/passwordSelfReset.inc:102 +#: ../lib/modules/passwordSelfReset.inc:193 +#: ../lib/modules/passwordSelfReset.inc:209 +#: ../help/help.inc:208 +msgid "Subject" +msgstr "Assunto" + +#: ../lib/types/dhcp.inc:94 +#: ../lib/modules/dhcp_settings.inc:135 +#: ../lib/modules/dhcp_settings.inc:189 +#: ../lib/modules/dhcp_settings.inc:203 +#: ../lib/modules/dhcp_settings.inc:220 +#: ../lib/modules/dhcp_settings.inc:536 +#: ../lib/modules/dhcp_settings.inc:635 +msgid "Subnet" +msgstr "Subrede" + +#: ../lib/modules/dhcp_settings.inc:175 +#: ../lib/modules/dhcp_settings.inc:197 +#: ../lib/modules/dhcp_settings.inc:214 +#: ../lib/modules/dhcp_settings.inc:272 +#: ../lib/modules/dhcp_settings.inc:572 +#: ../lib/modules/dhcp_settings.inc:643 +msgid "Subnet mask" +msgstr "Máscara de subrede" + +#: ../templates/schema/schema.php:176 +msgid "Substring Rule" +msgstr "Regra de sublinha" + +#: ../templates/3rdParty/pla/htdocs/import.php:63 +#: ../templates/3rdParty/pla/htdocs/copy.php:56 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:68 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:85 +msgid "Success" +msgstr "Sucesso" + +#: ../templates/3rdParty/pla/htdocs/delete.php:32 +#, php-format +msgid "Successfully deleted DN %s" +msgstr "DN %s apagado com sucesso." + +#: ../lib/modules/sudoRole.inc:38 +msgid "Sudo role" +msgstr "Regra sudo" + +#: ../lib/types/sudo.inc:159 +#, php-format +msgid "Sudo role count: %s" +msgstr "Contagem de regras sudo: %s" + +#: ../lib/types/sudo.inc:48 +msgid "Sudo role management" +msgstr "Gerenciador de regras \"sudo\"" + +#: ../lib/types/sudo.inc:39 +msgid "Sudo roles" +msgstr "Regras sudo" + +#: ../lib/modules.inc:950 +msgid "Suffix" +msgstr "Sufixo" + +#: ../lib/modules/posixGroup.inc:322 +#: ../lib/modules/posixGroup.inc:435 +msgid "Suffix for GID/group name check" +msgstr "Sufixo para checagem de nome do GID/grupo" + +#: ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:195 +#: ../lib/modules/posixAccount.inc:384 +msgid "Suffix for UID/user name check" +msgstr "Sufixo para checagem de nome do UID/usuário" + +#: ../lib/modules/sambaSamAccount.inc:1338 +msgid "Sunday" +msgstr "Domingo" + +#: ../templates/3rdParty/pla/htdocs/compare.php:72 +msgid "Switch entries" +msgstr "Selecione entradas" + +#: ../templates/lists/changePassword.php:210 +#: ../lib/modules/asteriskAccount.inc:89 +#: ../lib/modules/asteriskVoicemail.inc:77 +msgid "Sync Asterisk password with Unix password" +msgstr "Sincronize senha do Asterisk com a senha Unix" + +#: ../templates/lists/changePassword.php:219 +msgid "Sync Asterisk voicemail password with Unix password" +msgstr "Sincronize senha da caixa de voz do Asterix com a senha Unix" + +#: ../lib/modules/heimdalKerberos.inc:230 +msgid "Sync Heimdal Kerberos password with Unix password" +msgstr "Sincronize senha do Kerberos Heimdal com a senha Unix" + +#: ../templates/lists/changePassword.php:213 +#: ../templates/lists/changePassword.php:216 +msgid "Sync Kerberos password with Unix password" +msgstr "Sincronize senha do Kerberos com a senha Unix" + +#: ../lib/modules/mitKerberos.inc:265 +msgid "Sync MIT Kerberos password with Unix password" +msgstr "Sincronize senha do Kerberos MIT com a senha Unix" + +#: ../templates/lists/changePassword.php:203 +#: ../lib/modules/sambaSamAccount.inc:239 +msgid "Sync Samba LM password with Unix password" +msgstr "Sincronize senha Samba LM com a senha Unix" + +#: ../templates/lists/changePassword.php:201 +#: ../lib/modules/sambaSamAccount.inc:238 +msgid "Sync Samba NT password with Unix password" +msgstr "Sincronize senha Samba NT com a senha Unix" + +#: ../lib/modules/customFields.inc:707 +msgid "Sync fields with page layout" +msgstr "Sincronizar campos com o leiaute da página." + +#: ../templates/schema/schema.php:181 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:142 +msgid "Syntax" +msgstr "Sintaxe" + +#: ../templates/schema/schema.php:89 +msgid "Syntax OID" +msgstr "Sintaxe OID" + +#: ../templates/schema/schema.php:73 +#: ../templates/schema/schema.php:74 +msgid "Syntaxes" +msgstr "Sintaxes" + +#: ../lib/modules/zarafaUser.inc:605 +#: ../lib/modules/zarafaUser.inc:1317 +msgid "System administrator" +msgstr "Administrador do sistema" + +#: ../templates/config/mainmanage.php:227 +msgid "System logging" +msgstr "Log de sistema" + +#: ../help/help.inc:60 +msgid "TLS cannot be combined with ldaps://." +msgstr "TLS não pode ser combinado com ldaps://." + +#: ../lib/modules/kolabUser.inc:178 +msgid "Target of invitation policy is invalid!" +msgstr "Política de alvo de convite inválida!" + +#: ../templates/pdfedit/pdfmain.php:281 +#: ../templates/profedit/profilemain.php:281 +msgid "Target server profile" +msgstr "Perfil de servidor alvo" + +#: ../templates/help.php:89 +#: ../lib/modules.inc:638 +msgid "Technical name" +msgstr "Nome técnico" + +#: ../templates/lists/changePassword.php:260 +#: ../lib/types/user.inc:196 +#: ../lib/modules/inetOrgPerson.inc:53 +#: ../lib/modules/inetOrgPerson.inc:125 +#: ../lib/modules/inetOrgPerson.inc:171 +#: ../lib/modules/inetOrgPerson.inc:285 +#: ../lib/modules/inetOrgPerson.inc:443 +#: ../lib/modules/inetOrgPerson.inc:588 +#: ../lib/modules/inetOrgPerson.inc:706 +#: ../lib/modules/inetOrgPerson.inc:710 +#: ../lib/modules/inetOrgPerson.inc:1595 +#: ../lib/modules/inetOrgPerson.inc:2174 +#: ../lib/modules/inetOrgPerson.inc:2711 +msgid "Telephone number" +msgstr "Número de telefone" + +#: ../lib/modules/inetOrgPerson.inc:381 +msgid "Temp" +msgstr "Temporário" + +#: ../lib/modules/inetOrgPerson.inc:357 +msgid "Temp, contract until december" +msgstr "Temporário, contratado até dezembro" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +msgid "Template" +msgstr "Molde" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:520 +msgid "Templates" +msgstr "Modelos" + +#: ../lib/modules/sambaSamAccount.inc:378 +#: ../lib/modules/sambaSamAccount.inc:591 +#: ../lib/modules/sambaSamAccount.inc:1251 +msgid "Terminal server options" +msgstr "Opções de servidor de terminal" + +#: ../lib/tools/tests.inc:44 +msgid "Tests" +msgstr "Testes" + +#: ../templates/config/confmain.php:346 +#: ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:108 +#: ../lib/modules/passwordSelfReset.inc:106 +#: ../lib/modules/passwordSelfReset.inc:116 +#: ../lib/modules/passwordSelfReset.inc:197 +#: ../lib/modules/passwordSelfReset.inc:213 +#: ../help/help.inc:210 +msgid "Text" +msgstr "Texto" + +#: ../lib/modules/customFields.inc:1402 +msgid "Text area" +msgstr "Área de texto" + +#: ../templates/pdfedit/pdfpage.php:566 +#: ../lib/modules/customFields.inc:1146 +msgid "Text field" +msgstr "Campo de texto" + +#: ../lib/modules/eduPerson.inc:103 +msgid "The \"NetID\" of the person for the purposes of inter-institutional authentication. It should be represented in the form \"user@scope\" where scope defines a local security domain." +msgstr "O \"NetID\" da pessoa para fins de autenticação inter-institucional. Deve ser representado na forma \"usuario@escopo\" onde o escopo define um domínio de segurança local." + +#: ../lib/modules/dhcp_settings.inc:307 +msgid "The DHCP ranges were changed to fit for the new subnet." +msgstr "Os intervalos de DHCP foram alterado para se adequar a nova sub-rede." + +#: ../lib/modules/eduPerson.inc:115 +msgid "The DN of the directory entry representing the institution with which the person is associated." +msgstr "O DN da entrada de diretório que representa a instituição em que a pessoa está associado." + +#: ../lib/modules/eduPerson.inc:119 +msgid "The DN of the directory entry representing the person's primary organisational unit." +msgstr "O DN da entrada de diretório que representa unidade primária da unidade organizacional." + +#: ../lib/modules/eduPerson.inc:123 +#: ../lib/modules/eduPerson.inc:127 +msgid "The DNs of the directory entries representing the person's organisational units." +msgstr "Os DNs das entradas de diretório representando unidades organizacionais da pessoa." + +#: ../lib/modules/posixGroup.inc:432 +msgid "The ID of this group was changed. You can update all user and host entries to the new group ID." +msgstr "O ID deste grupo foi alterado. Você pode atualizar todas as entradas do usuário e ID de host para o novo grupo." + +#: ../templates/config/mainmanage.php:95 +#, php-format +msgid "The IP address %s is invalid!" +msgstr "O endereço IP %s é inválido!" + +#: ../lib/modules/fixed_ip.inc:394 +msgid "The IP address does not match the subnet." +msgstr "O endereço IP não coincide com a sub-rede." + +#: ../lib/modules/fixed_ip.inc:397 +msgid "The IP address is already in use." +msgstr "Este endereço IP já está em uso." + +#: ../lib/modules/ipHost.inc:108 +#: ../lib/modules/ipHost.inc:109 +#: ../lib/modules/asteriskAccount.inc:636 +#: ../lib/modules/asteriskAccount.inc:637 +#: ../lib/modules/ppolicyUser.inc:85 +#: ../lib/modules/range.inc:408 +#: ../lib/modules/range.inc:424 +#: ../lib/modules/freeRadius.inc:242 +#: ../lib/modules/freeRadius.inc:243 +#: ../lib/modules/fixed_ip.inc:389 +msgid "The IP address is invalid." +msgstr "O endereço IP é inválido!" + +#: ../lib/modules/fixed_ip.inc:95 +msgid "The IP address of the PC." +msgstr "O endereço IP da estação de trabalho é inválido!" + +#: ../lib/modules/dhcp_settings.inc:148 +msgid "The IP addresses of the DNS servers. Multiple addresses are separated by \",\". Example: 192.168.0.10, 192.168.0.11" +msgstr "Os endereços IP dos servidores de DNS. Múltiplos endereços devem ser separados por \",\". Exemplo: 192.168.0.10, 192.168.0.11" + +#: ../lib/modules/dhcp_settings.inc:156 +msgid "The IP addresses of the Netbios name servers (e.g. \"123.123.123.123, 123.123.123.124\")." +msgstr "O(s) endereço(s) IP dos servidores de nomes NetBIOS (por exemplo \"123.123.123.123, 123.123.123.124\")." + +#: ../lib/modules/range.inc:412 +#: ../lib/modules/range.inc:426 +msgid "The IP does not match the subnet." +msgstr "O IP não corresponde a sub-rede." + +#: ../lib/modules/heimdalKerberos.inc:92 +msgid "The Kerberos realm of this user." +msgstr "O domínio Kerberos desta conta de usuário." + +#: ../lib/modules/fixed_ip.inc:92 +msgid "The MAC address of the PC. Example: 11:22:33:44:55:aa" +msgstr "O endereço MAC da estação de trabalho. Exemplo: 11:22:33:44:55:aa" + +#: ../lib/modules/dhcp_settings.inc:300 +#: ../lib/modules/dhcp_settings.inc:301 +msgid "The Netbios server is invalid." +msgstr "O servidor de Netbios é inválido." + +#: ../lib/modules/fixed_ip.inc:361 +msgid "The PC name may not be longer than 20 characters." +msgstr "O nome da estação de trabalho não pode ter mais de 20 caracteres." + +#: ../lib/modules/fixed_ip.inc:370 +msgid "The PC name may only contain A-Z, a-z and 0-9." +msgstr "O nome da estação de trabalho somente pode conter os caracteres A-Z, a-z e 0-9." + +#: ../lib/modules/fixed_ip.inc:364 +msgid "The PC name needs to be at least 2 characters long." +msgstr "O nome da estação de trabalho precisa ter pelo menos 2 caracteres." + +#: ../help/help.inc:173 +msgid "The PDF structure defines what information is exported as PDF file and how the pages are structured. You can manage the PDF structures in the PDF editor (under \"Tools\")." +msgstr "A estrutura PDF define como a informação é exportada no formato de arquivo PDF e como as páginas são estruturadas. Você pode gerenciar as estruturas PDF no editor de PDF (em \"Ferramentas \")." + +#: ../templates/3rdParty/pla/htdocs/create.php:44 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:38 +msgid "The RDN field is empty." +msgstr "O campo de RDN está vazio." + +#: ../lib/modules/freeRadius.inc:86 +msgid "The Radius realm of this account." +msgstr "O domínio Radius desta conta." + +#: ../lib/modules/sambaDomain.inc:75 +msgid "The SID of your Samba server. Get it with \"net getlocalsid\"." +msgstr "O SID de seu servidor Samba. Pode conseguí-lo com o comando \"net getlocalsid\"." + +#: ../templates/selfService/selfServiceLogin.php:95 +#: ../templates/selfService/selfServiceMain.php:161 +msgid "The TLS encryption could not be started." +msgstr "Conexão TLS não pode ser iniciada." + +#: ../lib/modules/posixAccount.inc:83 +msgid "The UID ranges for users and hosts overlap! This is a problem because LAM uses the highest UID in use + 1 for new accounts. Please set the minimum UID to equal values or use independent ranges." +msgstr "O intervalo de números UID para usuários e hosts estão em sobreposição! Isto é um problema porque o LAM usa o maior valor de UID em uso e adiciona 1 para atribuir a novas contas. Por favor defina o UID mínimo para um valor igual ou use intervalos independentes." + +#: ../lib/modules/zarafaServer.inc:70 +msgid "The Unix socket or named pipe to the server." +msgstr "O socket Unix ou pipe nomeado para o servidor." + +#: ../lib/modules/asteriskVoicemail.inc:205 +#: ../lib/modules/asteriskVoicemail.inc:206 +msgid "The account context is invalid." +msgstr "O contexto da conta é inválido." + +#: ../lib/modules/asteriskAccount.inc:103 +#: ../lib/modules/asteriskExtension.inc:92 +#: ../lib/modules/asteriskVoicemail.inc:83 +msgid "The account context stores information about the dial plan." +msgstr "A conta do contexto armazena informações sobre o plano de discagem." + +#: ../lib/modules/asteriskAccount.inc:628 +#: ../lib/modules/asteriskAccount.inc:629 +msgid "The account type is invalid." +msgstr "Tipo de conta inválido." + +#: ../lib/modules/freeRadius.inc:98 +msgid "The account will be locked after this date." +msgstr "A nova conta será bloqueada depois desta data." + +#: ../help/help.inc:159 +msgid "The account will be saved under this LDAP suffix." +msgstr "A nova conta será salva neste sufixo LDAP." + +#: ../lib/modules/passwordSelfReset.inc:234 +#, php-format +msgid "The answer needs to be at least %s characters long." +msgstr "O pergunta secreta precisa ter pelo menos %s caracteres." + +#: ../lib/modules/passwordSelfReset.inc:909 +msgid "The answer to the security question is wrong." +msgstr "A resposta à pergunta de segurança está errada." + +#: ../templates/tests/schemaTest.php:128 +#, php-format +msgid "The attribute %s is not supported for the object class %s by your LDAP server." +msgstr "O atributo %s não é suportado para a classe de objeto %s pelo seu servidor LDAP." + +#: ../templates/3rdParty/pla/lib/import_functions.php:531 +#, php-format +msgid "The attribute to modify doesn't match the one specified by %s." +msgstr "O atributo a modificar não coincide com o especificado por %s." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:31 +msgid "The attribute value does not exist" +msgstr "O valor do atributo informado não existe." + +#: ../lib/modules/asteriskAccount.inc:618 +#: ../lib/modules/asteriskAccount.inc:620 +msgid "The caller ID format is invalid." +msgstr "O Id de chamada está em um formato inválido." + +#: ../lib/modules/puppetClient.inc:179 +#: ../lib/modules/puppetClient.inc:180 +msgid "The class names may only contain ASCII characters." +msgstr "Nomes de classe podem conter somente caracteres ASCII." + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:359 +msgid "The config file is not writable." +msgstr "O arquivo de configurações não é gravável." + +#: ../templates/3rdParty/pla/htdocs/create.php:29 +#: ../templates/3rdParty/pla/htdocs/copy.php:34 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:23 +#, php-format +msgid "The container you specified (%s) does not exist. Please try again." +msgstr "O recipiente que você especificou (%s) não existe. Por favor tente novamente." + +#: ../lib/modules/dhcp_settings.inc:298 +#: ../lib/modules/dhcp_settings.inc:299 +msgid "The default gateway is invalid." +msgstr "O roteador padrão da rede é inválido." + +#: ../lib/modules/qmailUser.inc:253 +msgid "The default interpretation of .qmail files." +msgstr "A interpretação padrão para arquivos .qmail ." + +#: ../templates/3rdParty/pla/htdocs/copy.php:31 +#, php-format +msgid "The destination entry (%s) already exists." +msgstr "A entrada de destino (%s) informada já existe!" + +#: ../lib/modules/dhcp_settings.inc:310 +#: ../lib/modules/dhcp_settings.inc:312 +msgid "The domain name includes invalid characters. Valid characters are A-Z, a-z, 0-9, \".\", \"_\",\"-\"." +msgstr "O nome do domínio contém caracteres inválidos. Os caracteres válidos são: a-z, A-Z, 0-9 e \".\", \"_\",\"-\"." + +#: ../lib/modules/dhcp_settings.inc:309 +#: ../lib/modules/dhcp_settings.inc:311 +msgid "The domain name needs to have at least 3 characters." +msgstr "O nome do domínio deve ter pelo menos 3 caracteres." + +#: ../lib/modules/dhcp_settings.inc:132 +msgid "The domain name of the subnet." +msgstr "O nome do domínio da subrede" + +#: ../lib/modules/asteriskVoicemail.inc:209 +msgid "The email address is invalid." +msgstr "O endereço de correio eletrônico é inválido!" + +#: ../lib/modules/range.inc:89 +msgid "The ending IP address of the range." +msgstr "O endereço IP final do intervalo." + +#: ../lib/modules/dhcp_settings.inc:302 +msgid "The entered Netbios node type does not exist." +msgstr "Tipo de nó de Netbios informado não existe." + +#: ../templates/3rdParty/pla/htdocs/update.php:27 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:22 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:21 +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:24 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:23 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:20 +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:24 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:20 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:27 +#, php-format +msgid "The entry (%s) does not exist." +msgstr "A entrada (%s) não existe." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:27 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:28 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:34 +msgid "The entry does not exist and will be ignored" +msgstr "A entrada não existe e será ignorada." + +#: ../lib/modules/puppetClient.inc:177 +#: ../lib/modules/puppetClient.inc:178 +msgid "The environment name may only contain ASCII characters." +msgstr "O nome do ambiente poderá conter somente caracteres ASCII." + +#: ../lib/modules/shadowAccount.inc:67 +msgid "The expiration date is invalid." +msgstr "Data de expiração inválida." + +#: ../lib/modules/freeRadius.inc:250 +#: ../lib/modules/freeRadius.inc:251 +msgid "The expiration date must be in format DD.MM.YYYY HH:MM." +msgstr "A data de expiração deve estar no formato DD.MM.YYYY HH:MM." + +#: ../lib/modules/asteriskAccount.inc:622 +#: ../lib/modules/asteriskAccount.inc:623 +msgid "The extension context is invalid." +msgstr "O contexto da extensão é inválido." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "The file you chose is either empty or does not exist." +msgstr "O arquivo que você escolheu está vazio ou não existe." + +#: ../templates/3rdParty/pla/lib/Template.php:412 +#: ../templates/3rdParty/pla/lib/Template.php:499 +msgid "The file you selected was only partially uploaded, likley due to a network error." +msgstr "O arquivo selecionado foi apenas parcialmente carregado, possivelmente devido a um erro de rede." + +#: ../templates/3rdParty/pla/lib/Template.php:402 +#: ../templates/3rdParty/pla/lib/Template.php:407 +#: ../templates/3rdParty/pla/lib/Template.php:489 +#: ../templates/3rdParty/pla/lib/Template.php:494 +msgid "The file you uploaded is too large. Please check php.ini, upload_max_size setting" +msgstr "O arquivo enviado é muito grande. Por favor verifique no php.ini, a opção upload_max_size" + +#: ../templates/initsuff.php:179 +msgid "The following suffixes are missing in LDAP. LAM can create them for you." +msgstr "Os seguintes sufixos estão faltando no LDAP. O LAM pode criá-los para você." + +#: ../lib/modules/sambaSamAccount.inc:117 +#: ../lib/modules/sambaSamAccount.inc:118 +msgid "The format of the logon hours field is invalid!" +msgstr "O formato das horas de início de sessão está inválido!" + +#: ../lib/modules/customScripts.inc:111 +msgid "The format of this custom script setting is invalid." +msgstr "O formato das configurações do script personalizado é inválido!" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +msgid "The format to show the query results" +msgstr "O formato para mostrar os resultados de consultas" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "The full DN of the new entry to be created when copying the source entry" +msgstr "O DN completo da entrada nova a ser criada ao copiar a entrada fonte" + +#: ../lib/modules/asteriskVoicemail.inc:208 +msgid "The full name is invalid." +msgstr "O nome completo é inválido." + +#: ../templates/login.php:513 +msgid "The given user name matches multiple LDAP entries." +msgstr "O nome de utilizador atribuído a múltiplas entradas LDAP." + +#: ../lib/modules/ppolicy.inc:94 +msgid "The grace authentication limit specifies the number of times that an expired password may be used to login." +msgstr "O limite de autenticação especifica o número de vezes que uma senha expirada pode ser usado para login." + +#: ../lib/modules/freeRadius.inc:90 +#: ../lib/modules/freeRadius.inc:94 +msgid "The group names for this account." +msgstr "Nomes dos grupos para esta conta." + +#: ../templates/pdfedit/pdfpage.php:121 +msgid "The headline for a new section must contain at least one character." +msgstr "O cabeçalho de linha para uma seção nova deve conter pelo menos um caráter." + +#: ../lib/modules/sambaSamAccount.inc:291 +msgid "The home directory will be connected under this drive letter." +msgstr "O diretório padrão do usuário será ligado a esta letra de unidade." + +#: ../lib/modules/asteriskAccount.inc:625 +#: ../lib/modules/asteriskAccount.inc:626 +msgid "The host name is invalid." +msgstr "O nome do host é inválido." + +#: ../lib/modules/inetOrgPerson.inc:839 +msgid "The initials of the user's first names." +msgstr "As iniciais do primeiro nome do usuário." + +#: ../lib/modules/ddns.inc:100 +msgid "The key enables the DHCP server to perform DNS updates. The key is generated with \"genDDNSkey\"." +msgstr "A chave permite que o servidor DHCP possa efetuar atualizações de DNS. A chave é gerado com \"genDDNSkey\"." + +#: ../lib/modules/dhcp_settings.inc:296 +#: ../lib/modules/dhcp_settings.inc:297 +msgid "The lease time is invalid." +msgstr "Tempo de concessão inválido." + +#: ../lib/modules/dhcp_settings.inc:140 +msgid "The lease time specifies after how many seconds the client should request a new IP address." +msgstr "O tempo de concessão especifica quantos segundos após este decorrido o cliente deve solicitar um novo endereço IP." + +#: ../lib/modules/sudoRole.inc:72 +#: ../lib/modules/sudoRole.inc:98 +msgid "The list of commands which may be run." +msgstr "A lista de comandos que podem ser executados." + +#: ../lib/modules/puppetClient.inc:86 +#: ../lib/modules/puppetClient.inc:90 +msgid "The list of configured Puppet classes for this node (e.g. ntp)." +msgstr "A lista de classes Puppet configuradas para este nó (por exemplo: ntp)." + +#: ../lib/modules/sudoRole.inc:68 +#: ../lib/modules/sudoRole.inc:93 +msgid "The list of hosts from which the user may run the commands." +msgstr "A lista de hosts a partir do qual o usuário pode executar os comandos." + +#: ../lib/modules/customFields.inc:1735 +msgid "The list of labels contains duplicates." +msgstr "A lista de etiquetas contém duplicatas." + +#: ../lib/modules/sudoRole.inc:64 +#: ../lib/modules/sudoRole.inc:88 +msgid "The list of users who own this sudo role and may run the commands." +msgstr "A lista de usuários que possui este privilégios sudo e pode executar os comandos." + +#: ../lib/modules/customFields.inc:1732 +msgid "The list of values contains duplicates." +msgstr "A lista de valores contém duplicatas." + +#: ../templates/config/mainmanage.php:111 +msgid "The log file is empty or contains invalid characters! Valid characters are: a-z, A-Z, 0-9, /, \\, ., :, _ and -." +msgstr "O arquivo de log está vazio ou contém caracteres inválidos! Os caracteres válidos são: a-z, A-Z, 0-9, /, \\, ., :, _ e -." + +#: ../lib/modules/imapAccess.inc:80 +msgid "The login name of your IMAP user who has rights to create/delete mailboxes." +msgstr "O nome de login do seu usuário IMAP que tem direitos para criar/excluir caixas de correio." + +#: ../lib/modules/qmailUser.inc:237 +msgid "The mail server that contains the message store." +msgstr "Este é o servidor de correio eletrônico que armazena a mensagem." + +#: ../help/help.inc:211 +msgid "The mail text of all password mails." +msgstr "O texto da mensagem para todas as senhas de caixas de correio." + +#: ../lib/modules/selfRegistration.inc:109 +msgid "The mail text of the confirmation mail." +msgstr "O texto da mensagem para os e-mails de confirmação." + +#: ../lib/modules/passwordSelfReset.inc:107 +#: ../lib/modules/passwordSelfReset.inc:117 +msgid "The mail text of the mails." +msgstr "O texto da mensagem para os e-mails." + +#: ../lib/modules/asteriskVoicemail.inc:201 +msgid "The mailbox format is invalid." +msgstr "A caixa de correio está em um formato inválido." + +#: ../lib/modules/dhcp_settings.inc:303 +#: ../lib/modules/dhcp_settings.inc:304 +msgid "The maximum lease time is invalid." +msgstr "Tempo máximo de concessão inválido." + +#: ../lib/modules/dhcp_settings.inc:144 +msgid "The maximum lease time specifies after how many seconds the client must request a new IP address." +msgstr "O tempo de concessão máximo especifica quantos segundos após decorrido este o cliente deve solicitar um novo endereço IP." + +#: ../lib/modules/qmailUser.inc:217 +msgid "The maximum number of mails that can be stored in the user's mailbox." +msgstr "O número máximo de e-mails que podem ser armazenados na caixa de entrada do usuário." + +#: ../lib/modules.inc:899 +#, php-format +msgid "The module %s is not yet ready." +msgstr "O módulo %s não está pronto." + +#: ../templates/pdfedit/pdfpage.php:92 +msgid "The name for that PDF-structure you submitted is not valid. A valid name must consist of the following characters: 'a-z','A-Z','0-9','_','-'." +msgstr "O nome da estrutura PDF que você submeteu não é válido. Um nome válido deve conter um ou mais dos caracteres seguintes: 'a-z','A-Z','0-9','_','-','.'." + +#: ../lib/modules/asteriskExtension.inc:104 +msgid "The name of a command to execute. The available commands may be listed at the Asterisk command line by executing \"core show applications\"." +msgstr "O nome de um comando para executar. Os comandos disponíveis podem ser listados na linha de comando do Asterisk executando \"core show applications\"." + +#: ../lib/modules/fixed_ip.inc:89 +msgid "The name of the PC." +msgstr "O nome da estação de trabalho." + +#: ../lib/modules/asteriskExtension.inc:96 +msgid "The name of the extension (e.g. voicemail or sip)." +msgstr "O nome da extensão (por exemplo. voicemail or sip)." + +#: ../lib/modules/kolabUser.inc:130 +msgid "The name of the server where the mailbox is located." +msgstr "O nome do servidor onde está localizado a caixa de correio." + +#: ../lib/modules/dhcp_settings.inc:136 +msgid "The name of the subnet. Example: 192.168.10.0" +msgstr "O nome da subrede. Exemplo: 192.168.10.0" + +#: ../lib/modules/sambaDomain.inc:71 +msgid "The name of your Windows domain or workgroup." +msgstr "O nome do domínio ou grupo de trabalho do Windows." + +#: ../lib/modules/freeRadius.inc:82 +msgid "The net mask for the IP address." +msgstr "A máscara de subrede para este endereço IP." + +#: ../lib/modules/dhcp_settings.inc:180 +msgid "The net mask is derived from the subnet mask. LAM will calculate it automatically." +msgstr "A máscara de rede é derivado da máscara de subrede. Se você deixar este campo em branco, em seguida, o LAM irá calcular para você." + +#: ../lib/modules/freeRadius.inc:244 +#: ../lib/modules/freeRadius.inc:245 +msgid "The net mask is invalid." +msgstr "A máscara de subrede é inválida." + +#: ../lib/modules.inc:1137 +msgid "The new password will be stored in the directory after you save this account." +msgstr "A nova senha será armazenada no diretório depois que você salvar esta conta." + +#: ../lib/modules/asteriskAccount.inc:231 +msgid "The number of milliseconds for the last qualify." +msgstr "O número em milisegundos para a última qualificação." + +#: ../help/help.inc:115 +msgid "The number of users who may login to LAM is restricted. This can be either a fixed list of DNs or LAM can search LDAP to find a DN which matches the given user name." +msgstr "O número de usuários que pode entrar para o LAM é restrito. Isso pode ser tanto uma lista fixa de DNS ou o LAM pode pesquisar o LDAP para localizar um DN que corresponda ao nome de determinado usuário." + +#: ../templates/tests/schemaTest.php:114 +#, php-format +msgid "The object class %s is not supported by your LDAP server." +msgstr "A classe de objeto %s não é suportado pelo seu servidor LDAP." + +#: ../lib/modules/inetOrgPerson.inc:795 +#: ../lib/modules/inetOrgPerson.inc:799 +msgid "The office name of the user (e.g. YourCompany, Human Resources)." +msgstr "O nome do escritório do usuário (por exemplo, Administrativo, Recursos Humanos)." + +#: ../templates/selfService/selfServiceMain.php:300 +#: ../lib/modules.inc:1730 +msgid "The operation was stopped because of the above errors." +msgstr "A operação foi interrompida por causa dos erros acima." + +#: ../lib/modules/asteriskVoicemail.inc:211 +#: ../lib/modules/asteriskVoicemail.inc:212 +msgid "The options have bad format." +msgstr "As opções estão em um formato inválido." + +#: ../lib/modules/device.inc:63 +#: ../lib/modules/device.inc:67 +msgid "The owners of this device." +msgstr "O dono deste dispositivo." + +#: ../lib/modules/groupOfNames.inc:69 +#: ../lib/modules/groupOfNames.inc:73 +msgid "The owners of this group." +msgstr "O dono deste grupo." + +#: ../lib/modules/asteriskVoicemail.inc:210 +msgid "The pager number has bad format." +msgstr "O número da página está em um formato inválido." + +#: ../lib/modules/heimdalKerberos.inc:114 +msgid "The parameter @@password@@ will be replaced with the new password." +msgstr "O parâmetro @@password@@ será substituído com a nova senha." + +#: ../lib/modules/heimdalKerberos.inc:113 +msgid "The parameter @@principal@@ will be replaced with the principal name." +msgstr "O parâmetro @@principal@@ será substituído com o nome principal." + +#: ../templates/config/confsave.php:71 +#: ../templates/config/confmain.php:73 +#: ../templates/config/mainlogin.php:59 +#: ../templates/selfService/adminLogin.php:54 +msgid "The password is invalid! Please try again." +msgstr "Senha inválida. Por favor tente novamente." + +#: ../lib/security.inc:237 +#, php-format +msgid "The password is too short. You have to enter at least %s characters." +msgstr "A senha está muito pequena. Você deve informar pelo menos %s caracteres." + +#: ../lib/security.inc:289 +#, php-format +msgid "The password is too weak. You have to enter at least %s different character classes (upper/lower case, numbers and symbols)." +msgstr "A senha é muito fraca. Você tem que entrar pelo menos %s caracteres diferentes (maiúsculas e minúsculas, números e símbolos)." + +#: ../lib/security.inc:260 +#, php-format +msgid "The password is too weak. You have to enter at least %s lower case characters." +msgstr "A senha é muito fraca. Você tem que entrar pelo menos %s caracteres minúsculos." + +#: ../lib/security.inc:268 +#, php-format +msgid "The password is too weak. You have to enter at least %s numeric characters." +msgstr "A senha é muito fraca. Você tem que entrar pelo menos %s caracteres numéricos." + +#: ../lib/security.inc:272 +#, php-format +msgid "The password is too weak. You have to enter at least %s symbolic characters." +msgstr "A senha é muito fraca. Você tem que entrar pelo menos %s caracteres simbólicos." + +#: ../lib/security.inc:264 +#, php-format +msgid "The password is too weak. You have to enter at least %s upper case characters." +msgstr "A senha é muito fraca. Você tem que entrar pelo menos %s caracteres maiúsculos." + +#: ../lib/modules/imapAccess.inc:86 +msgid "The password of your IMAP admin user. The login name for the IMAP admin user is stored in the LAM server profile." +msgstr "A senha do seu usuário administrador IMAP. O nome de login do usuário administrador IMAP é armazenado no perfil do servidor LAM." + +#: ../templates/lists/changePassword.php:507 +#: ../lib/modules.inc:1074 +msgid "The password was set to:" +msgstr "A senha será alterada para:" + +#: ../lib/modules/inetOrgPerson.inc:683 +#: ../lib/modules/inetOrgPerson.inc:687 +msgid "The post office box of the user's address." +msgstr "A caixa postal do endereço do usuário." + +#: ../lib/modules/inetOrgPerson.inc:691 +#: ../lib/modules/inetOrgPerson.inc:695 +msgid "The postal code of the user's address." +msgstr "O código postal do endereço do usuário." + +#: ../lib/modules/posixAccount.inc:365 +msgid "The primary group for this account. You can insert a GID number or a group name." +msgstr "O grupo primário para esta conta. Você pode inserir um número GID ou nome de um grupo." + +#: ../lib/modules/posixAccount.inc:436 +msgid "The primary group the host should be member of." +msgstr "O grupo primário que o host deve ser membro." + +#: ../lib/modules/posixAccount.inc:398 +msgid "The primary group the user should be member of." +msgstr "O grupo primário que o host deve ser membro." + +#: ../lib/modules/asteriskExtension.inc:100 +msgid "The priority is a sequence number used to order the execution of commands. Commands are executed beginning with the lowest sequence number." +msgstr "A prioridade é um número seqüencial usado para ordenar a execução de comandos. Os comandos são executados começando com o menor número da seqüência." + +#: ../lib/modules/range.inc:414 +msgid "The range conflicts with another range." +msgstr "O intervalo está em conflito com outro intervalo." + +#: ../lib/modules/range.inc:410 +msgid "The range end needs to be greater than the range start." +msgstr "O final do intervalo tem de ser maior do que o início do intervalo." + +#: ../lib/modules/inetOrgPerson.inc:767 +msgid "The room number of the employee's office." +msgstr "O número da sala do escritório do empregado." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +msgid "The scope in which to search" +msgstr "O escopo para a pesquisa" + +#: ../lib/modules/customScripts.inc:57 +#: ../lib/modules/customScripts.inc:70 +msgid "The scripts will be run on your web server in the user context of your web server (e.g. apache/www-data)." +msgstr "Os scripts serão executados em seu servidor web, no contexto do usuário do seu servidor web (por exemplo: apache/www-data)." + +#: ../lib/modules/selfRegistration.inc:120 +msgid "The second option is the LDAP attribute name and the third one is a descriptive label for it." +msgstr "A segunda opção é o nome do atributo LDAP e o terceiro é um rótulo descritivo para ele." + +#: ../lib/modules/asteriskAccount.inc:235 +#: ../lib/modules/qmailUser.inc:189 +#: ../lib/modules/zarafaGroup.inc:99 +#: ../lib/modules/sambaSamAccount.inc:385 +#: ../lib/modules/zarafaUser.inc:118 +#: ../lib/modules/inetOrgPerson.inc:811 +#: ../lib/modules/freeRadius.inc:106 +#: ../lib/modules/zarafaServer.inc:82 +msgid "The selected options will not be managed inside LAM. You can use this to reduce the number of displayed input fields." +msgstr "As opções selecionadas não serão geridas dentro do LAM. Você pode usar esse recurso para reduzir o número de campos de entrada exibida." + +#: ../templates/3rdParty/pla/htdocs/copy.php:38 +msgid "The source and destination DN are the same." +msgstr "O DN de origem e o de destino são o mesmo." + +#: ../lib/modules/range.inc:86 +msgid "The starting IP address of the range." +msgstr "O endereço IP inicial do intervalo." + +#: ../lib/modules/inetOrgPerson.inc:783 +#: ../lib/modules/inetOrgPerson.inc:787 +msgid "The state where the user resides or works." +msgstr "O estado onde o usuário reside ou trabalha." + +#: ../templates/pdfedit/pdfpage.php:109 +msgid "The static text must contain at least one character." +msgstr "O texto estático deve conter pelo menos um caractere." + +#: ../lib/modules/inetOrgPerson.inc:675 +#: ../lib/modules/inetOrgPerson.inc:679 +msgid "The street name of the user's address." +msgstr "O nome da rua no endereço do usuário." + +#: ../help/help.inc:209 +msgid "The subject of all password mails." +msgstr "O assunto para todas as mensagens de senha." + +#: ../lib/modules/selfRegistration.inc:136 +#: ../lib/modules/passwordSelfReset.inc:103 +msgid "The subject of the mails." +msgstr "O assunto para os e-mails." + +#: ../lib/modules/dhcp_settings.inc:291 +msgid "The subnet is already in use." +msgstr "A subrede já está em uso." + +#: ../lib/modules/dhcp_settings.inc:292 +#: ../lib/modules/dhcp_settings.inc:293 +msgid "The subnet is invalid." +msgstr "A subrede é inválida." + +#: ../lib/modules/dhcp_settings.inc:305 +#: ../lib/modules/dhcp_settings.inc:306 +msgid "The subnet mask is invalid." +msgstr "A máscara de subrede é inválida." + +#: ../lib/modules/dhcp_settings.inc:176 +msgid "The subnet mask of the network." +msgstr "A máscara de subrede da rede." + +#: ../lib/modules/sudoRole.inc:80 +#: ../lib/modules/sudoRole.inc:108 +msgid "The sudo commands are executed with these group memberships." +msgstr "Os comandos sudo são executados com estes membros do grupo." + +#: ../lib/modules/sudoRole.inc:76 +#: ../lib/modules/sudoRole.inc:103 +msgid "The sudo commands may be run as these users (e.g. root)." +msgstr "Os comandos sudo podem ser executados como estes usuários (root por exemplo)." + +#: ../templates/3rdParty/pla/lib/import_functions.php:396 +msgid "The url attribute value should begin with file://." +msgstr "O valor do atributo url deve começar com file:// ." + +#: ../lib/modules/zarafaUser.inc:98 +msgid "The user account is non-active and login is disabled." +msgstr "A conta de usuário não está ativa e login está desativado." + +#: ../lib/modules/zarafaUser.inc:78 +msgid "The user will get warned when his mailbox reaches this limit." +msgstr "O usuário vai receber um aviso quando sua caixa de correio atingir este limite." + +#: ../lib/modules/qmailUser.inc:197 +msgid "The user's alternate email address." +msgstr "O endereço de correio eletrônico alternativo do usuário." + +#: ../lib/modules/asteriskAccount.inc:127 +msgid "The user's call groups." +msgstr "O grupo de chamadas do usuário." + +#: ../lib/modules/qmailUser.inc:193 +#: ../lib/modules/inetOrgPerson.inc:731 +#: ../lib/modules/inetOrgPerson.inc:735 +msgid "The user's email address." +msgstr "O endereço de correio eletrônico do usuário." + +#: ../lib/modules/inetOrgPerson.inc:723 +#: ../lib/modules/inetOrgPerson.inc:727 +msgid "The user's fax number." +msgstr "O número de fax do usuário." + +#: ../lib/modules/inetOrgPerson.inc:715 +#: ../lib/modules/inetOrgPerson.inc:719 +msgid "The user's mobile number." +msgstr "O número de telefone celular do usuário." + +#: ../lib/modules/inetOrgPerson.inc:827 +#: ../lib/modules/inetOrgPerson.inc:831 +msgid "The user's organisation name." +msgstr "A unidade organizacional de usuário." + +#: ../lib/modules/inetOrgPerson.inc:819 +#: ../lib/modules/inetOrgPerson.inc:823 +msgid "The user's organisational unit." +msgstr "A unidade organizacional do usuário." + +#: ../lib/modules/inetOrgPerson.inc:759 +#: ../lib/modules/inetOrgPerson.inc:763 +msgid "The user's private telephone number." +msgstr "Número do telefone privado do usuário." + +#: ../lib/modules/inetOrgPerson.inc:707 +#: ../lib/modules/inetOrgPerson.inc:711 +msgid "The user's telephone number." +msgstr "Número do telefone do usuário." + +#: ../lib/modules/inetOrgPerson.inc:835 +msgid "The user's unique employee number." +msgstr "Número identificador único de empregado do usuário." + +#: ../lib/modules/inetOrgPerson.inc:739 +#: ../lib/modules/inetOrgPerson.inc:743 +msgid "The user's web site (e.g. http://www.company.com)." +msgstr "A página web pessoal do usuário (ex. http://www.meusite.com)." + +#: ../lib/modules/sambaSamAccount.inc:120 +msgid "The value for the Samba 3 field \"User can/must change password\" needs to be a number." +msgstr "O valor para o campo Samba 3 \"O usuário pode/deve alterar a senha\" deve ser um número." + +#: ../lib/modules/puppetClient.inc:181 +#: ../lib/modules/puppetClient.inc:182 +msgid "The variables may only contain ASCII characters." +msgstr "Estas variáveis poderão conter somente caracteres ASCII." + +#: ../lib/modules/asteriskVoicemail.inc:213 +#: ../lib/modules/asteriskVoicemail.inc:214 +msgid "The voicemail context name is invalid." +msgstr "O contexto da caixa de correio de voz é inválido." + +#: ../templates/3rdParty/pla/htdocs/create.php:42 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:36 +msgid "The were no attributes marked as an RDN attribute." +msgstr "Não existem atributos marcados como um atributo RDN." + +#: ../lib/modules/selfRegistration.inc:110 +msgid "The wildcard for the account creation link is @@creationLink@@." +msgstr "O caractere coringa para a link de criação de conta é @@creationLink@@." + +#: ../lib/modules/passwordSelfReset.inc:109 +#: ../help/help.inc:214 +msgid "The wildcard for the new password is @@newPassword@@." +msgstr "O caractere coringa para a nova senha é @@newPassword@@." + +#: ../lib/modules/passwordSelfReset.inc:119 +msgid "The wildcard for the reset link is @@resetLink@@." +msgstr "O caractere coringa para a link de renovação é @@resetLink@@." + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:60 +#, php-format +msgid "There are %s members in group %s:" +msgstr "Há %s membros no grupo %s:" + +#: ../lib/modules/posixGroup.inc:509 +msgid "There are still users who have this group as their primary group." +msgstr "Há usuários imóveis que têm este grupo como seu grupo primário." + +#: ../lib/modules/sambaGroupMapping.inc:440 +msgid "There can be only one group of this type." +msgstr "Pode haver somente um grupo deste tipo." + +#: ../lib/modules/asteriskAccount.inc:619 +msgid "There is already another user with this caller ID." +msgstr "Já existe um usuário com esta identidade." + +#: ../lib/modules/asteriskVoicemail.inc:202 +msgid "There is already another user with this mailbox name." +msgstr "Já existe um outro usuário com este endereço eletrônico." + +#: ../templates/massDoUpload.php:247 +msgid "There were errors while uploading:" +msgstr "Ocorreram os seguintes erros durante a carga do arquivo:" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:80 +#, php-format +msgid "There will be %s updates done with this mass update" +msgstr "Haverá %s atualizações feitas com esta atualização em massa" + +#: ../lib/modules/posixGroup.inc:420 +msgid "These are the minimum and maximum numbers to use for group IDs when creating new group accounts. New group accounts will always get the highest number in use plus one." +msgstr "Estes são os números mínimos e máximos a serem usados para os ID's de grupo ao criar novas contas de grupo. As novas contas de grupo começarão sempre com o número mais elevado no uso mais um." + +#: ../lib/modules/posixAccount.inc:353 +msgid "These are the minimum and maximum numbers to use for machine IDs when creating new accounts for hosts. The range should be different from that of users. New host accounts will always get the highest number in use plus one." +msgstr "Estes são os números mínimos e máximos a serem usados para a ID's de máquina ao criar novas contas de hosts. O intervalo deve ser diferente daquele dos usuários. As contas novas de host começarão sempre com o número mais elevado em uso mais um." + +#: ../lib/modules/posixAccount.inc:349 +msgid "These are the minimum and maximum numbers to use for user IDs when creating new user accounts. The range should be different from that of machines. New user accounts will always get the highest number in use plus one." +msgstr "Estes são os números mínimos e máximos a serem usados para ID's de usuário ao criar contas novas de usuário. O intervalo deve ser diferente daquele das máquinas. As contas novas de usuário começarão sempre com o número mais elevado no uso mais um." + +#: ../lib/modules/puppetClient.inc:106 +msgid "These classes will be available as autocompletion hints when adding new classes." +msgstr "Estas classes estarão disponíveis para função autocompletar ao adicionar novas classes." + +#: ../lib/modules/nisnetgroup.inc:89 +#: ../lib/modules/nisnetgroup.inc:93 +msgid "These entries specify the members of the netgroup. You can limit the set to a host name, a user name, a domain name or any combination of them." +msgstr "Estas entradas especificam os membros do grupo de trabalho da rede. Você pode limitar o conjunto a um nome de host, um nome de usuário, um nome de domínio ou qualquer combinação delas." + +#: ../lib/modules/puppetClient.inc:110 +msgid "These environments will be available as autocompletion hints when setting the environment." +msgstr "estes ambientes estarão disponíveis para função autocompletar ao configurar o ambiente." + +#: ../lib/modules/asteriskExtension.inc:116 +msgid "These options change the list of potential extension owners below. You can select to show Asterisk accounts or all users. It is also possible to search the tree suffix if you have users which are not in the standard user suffix." +msgstr "Estas opções alteram a lista de proprietários de extensão potenciais abaixo. Você pode selecionar para mostrar as contas Asterisk ou todos os usuários. Também é possível pesquisar o sufixo de árvore se você tiver usuários que não estão no sufixo de usuários padrão." + +#: ../lib/modules/authorizedServiceObject.inc:87 +msgid "These services will show up as hint if you enter a new service." +msgstr "Estes serviços vão aparecer como dica, se você entra em um novo serviço." + +#: ../lib/modules/posixAccount.inc:108 +msgid "This GID number is invalid! Please provide either a number or a group name." +msgstr "Este número GID é inválido! Por favor entre com outro número GID ou nome de grupo." + +#: ../help/help.inc:201 +msgid "This HTML code will be placed on top of all self service pages. E.g. you can use this to place your custom logo. Any HTML code is permitted." +msgstr "Este código HTML será colocado no topo de todas as páginas de serviços. Por exemplo você pode usar isso para colocar seu logotipo personalizado. Qualquer código HTML é permitido." + +#: ../lib/modules/fixed_ip.inc:367 +msgid "This PC name already exists." +msgstr "Nome do host informado já existe!" + +#: ../lib/modules/kolabUser.inc:219 +msgid "This account is marked for deletion." +msgstr "Esta conta esta marcada para ser apagada." + +#: ../lib/modules/sambaSamAccount.inc:315 +msgid "This allows you to define this account as a special user like administrator or guest." +msgstr "Isto habilita você a definir esta conta como um usuário especial como administrador ou convidado." + +#: ../templates/3rdParty/pla/lib/PageRender.php:376 +msgid "This attribute is not defined in the LDAP schema" +msgstr "Este atributo não está definido no esquema LDAP" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1988 +msgid "This attribute is required" +msgstr "O atributo é requerido" + +#: ../templates/3rdParty/pla/lib/PageRender.php:458 +msgid "This attribute is required for the RDN." +msgstr "O atributo é requerido para o RDN." + +#: ../lib/modules/inetOrgPerson.inc:791 +msgid "This can be used to specify if the user has a car license." +msgstr "Isso pode ser usado para especificar se o usuário tem uma licença CAR." + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:64 +msgid "This change requires to add new attributes." +msgstr "Esta alteração requer a adição de novos atributos." + +#: ../help/help.inc:131 +msgid "This changes the password of the selected profile." +msgstr "Isto muda a senha do perfil selecionado." + +#: ../help/help.inc:133 +msgid "This changes the profile which is selected by default at login." +msgstr "Isto muda o perfil que é selecionado por padrão no início de uma sessão. " + +#: ../templates/massBuildAccounts.php:157 +msgid "This column is defined to include unique entries but duplicates were found:" +msgstr "Esta coluna é definida para incluir entradas únicas, mas as duplicatas foram encontradas:" + +#: ../lib/modules/heimdalKerberos.inc:112 +msgid "This command will be called to change the Kerberos password. Usually, it should look similar to \"/usr/sbin/kadmin -K /etc/heimdal/apache.keytab -p admin/admin passwd -p @@password@@ @@principal@@\"." +msgstr "Este comando será chamado para trocar a senha do Kerberos. Usualmente será um comando similar a \"/usr/sbin/kadmin -K /etc/heimdal/apache.keytab -p admin/admin passwd -p @@password@@ @@principal@@\"." + +#: ../lib/modules/mitKerberos.inc:142 +msgid "This command will be called to change the Kerberos password. Usually, it should look similar to \"/usr/sbin/kadmin -k -t /home/www-data/apache.keytab -p realm/changepwd\"." +msgstr "Este comando será chamado para trocar a senha do Kerberos. Usualmente será um comando similar a \"/usr/sbin/kadmin -K -t /home/www-data/apache.keytab -p realm/changepwd\"." + +#: ../lib/modules/customScripts.inc:112 +msgid "This custom script setting includes an invalid account type." +msgstr "Esta configuração de script personalizado inclui um tipo de conta inválida." + +#: ../lib/modules/customScripts.inc:114 +#: ../lib/modules/customScripts.inc:116 +msgid "This custom script setting includes an invalid action type." +msgstr "Esta configuração de script personalizado inclui um tipo de ação inválida." + +#: ../help/help.inc:96 +msgid "This defines the language of the login window and sets this language as the default language. Users can change the language at login." +msgstr "Isto define o idioma da janela de início de uma sessão e ajusta este idioma como o padrão. Os usuários podem mudar o idioma no início de uma sessão." + +#: ../help/help.inc:113 +msgid "This defines the rights for the home directories which are created by lamdaemon." +msgstr "Isto define os direitos para o diretório/pasta padrão que \tsão criados pelo lamdaemon." + +#: ../lib/modules/asteriskExtension.inc:88 +msgid "This defines what application Asterisk has to start for this user (e.g. SIP/user1)." +msgstr "Isto define que aplicações Asterisk serão disponibilizadas para o usuário (por exemplo, SIP/usuario1)." + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:85 +#, php-format +msgid "This deletion request also includes %s child entries." +msgstr "Este pedido de exclusão também inclui %s entradas filho." + +#: ../lib/modules/device.inc:71 +msgid "This describes the location of the device." +msgstr "Este campo descreve a localização do dispositivo." + +#: ../lib/modules/ipHost.inc:67 +msgid "This describes the location of the host." +msgstr "Este campo descreve a localização do host." + +#: ../lib/modules/inetOrgPerson.inc:775 +#: ../lib/modules/inetOrgPerson.inc:779 +msgid "This describes the location of the user." +msgstr "Este campo descreve a localização do usuário." + +#: ../lib/lamPDF.inc:118 +msgid "This document was automatically created by LDAP Account Manager" +msgstr "Este documento foi automaticamente criado por LDAP Account Manager" + +#: ../help/help.inc:218 +msgid "This email address will be set as reply-to address of all password mails." +msgstr "Este endereço de e-mail será definido como endereço de resposta de todos as mensagens de redefinição de senha." + +#: ../help/help.inc:207 +msgid "This email address will be set as sender address of all password mails. If empty the system default (php.ini) will be used." +msgstr "Este endereço de e-mail será definido como endereço de remetente de todos os e-mails de senha. Se esvaziar, o padrão do sistema (php.ini) será usado." + +#: ../lib/modules/selfRegistration.inc:132 +#: ../lib/modules/passwordSelfReset.inc:99 +msgid "This email address will be set as sender address of the mails. If empty the system default (php.ini) will be used." +msgstr "Este endereço de e-mail será definido como endereço de remetente dos e-mails. Se deixar embranco, o padrão do sistema (php.ini) será usado." + +#: ../lib/modules/passwordSelfReset.inc:79 +msgid "This enables the password self reset function." +msgstr "Isto habilita a função de redefinição de senha." + +#: ../lib/modules/selfRegistration.inc:93 +msgid "This enables the self registration function." +msgstr "Isto habilita a função de auto-registro." + +#: ../templates/3rdParty/pla/htdocs/compare.php:79 +msgid "This entry has no attributes" +msgstr "Esta entrada não possui atributos" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:57 +#, php-format +msgid "This entry is the root of a sub-tree containing %s entries." +msgstr "Esta entrada é a raiz de uma sub-árvore contendo %s entradas." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:34 +#: ../lib/modules/selfRegistration.inc:455 +msgid "This field is required." +msgstr "Este campo é requerido" + +#: ../lib/modules/posixAccount.inc:110 +msgid "This gecos value is invalid!" +msgstr "Valor de gecos é inválido!" + +#: ../lib/modules/ipHost.inc:63 +msgid "This is a comma separated list of IP addresses." +msgstr "Esta é uma lista separada por vírgulas de endereços IP." + +#: ../lib/modules/ieee802device.inc:66 +msgid "This is a comma separated list of MAC addresses." +msgstr "Esta é uma lista separada por vírgulas de endereços MAC." + +#: ../lib/modules/kolabUser.inc:118 +msgid "This is a comma separated list of delegates." +msgstr "Esta é uma lista separada por vírgulas de delegados." + +#: ../lib/modules/kolabUser.inc:126 +msgid "This is a comma separated list of eMail aliases." +msgstr "Esta é uma lista separada por vírgulas de apelidos de correio eletrônico." + +#: ../lib/modules/kolabUser.inc:110 +msgid "This is a comma separated list of invitation policies." +msgstr "Esta é uma lista separada por vírgulas de políticas de convite." + +#: ../lib/modules/nisMailAlias.inc:76 +msgid "This is a comma separated list of recipients." +msgstr "Esta é uma lista separada por vírgulas de recipientes." + +#: ../lib/modules/inetLocalMailRecipient.inc:70 +msgid "This is a comma separated list of the users public email addresses." +msgstr "Esta é uma lista separada por vírgulas de endereços de correio eletrônico públicos dos usuários." + +#: ../help/help.inc:147 +msgid "This is a list of IP addresses from hosts who may access LAM. You can use \"*\" as wildcard (e.g. 192.168.0.*)." +msgstr "Esta é uma lista de endereços IP vindos dos hosts que podem acessar o LAM. Você pode usar \"*\" como coringa (Ex.: 192.168.0.*)." + +#: ../lib/modules/selfRegistration.inc:118 +msgid "This is a list of additional attributes that the user can enter. Please note that user name, password and email address are mandatory anyway and need not be specified." +msgstr "Esta é uma lista de atributos adicionais que o utilizador pode introduzir. Por favor, note que o nome de usuário, senha e endereço de e-mail são obrigatórios e mesmo assim não precisam serem especificados." + +#: ../lib/modules/groupOfNames.inc:77 +msgid "This is a list of members of this group." +msgstr "Esta é uma lista de membros do grupo." + +#: ../lib/modules/groupOfNames.inc:81 +msgid "This is a list of members of this group. Multiple members are separated by semicolons." +msgstr "Esta é uma lista de membros deste grupo. Membros múltiplos são separados por semi-colunas." + +#: ../lib/modules/eduPerson.inc:90 +msgid "This is a list of nick names for this user." +msgstr "Esta é uma lista de apelidos do usuário." + +#: ../lib/modules/selfRegistration.inc:114 +msgid "This is a list of object classes that are used to build the new user accounts. Please enter one object class in each line." +msgstr "Esta é uma lista de classes de objetos que são usados ​​para construir as novas contas de usuário. Por favor, indique uma classe de objeto em cada linha." + +#: ../help/help.inc:109 +msgid "This is a list of the servers where the lamdaemon scripts are stored. LDAP Account Manager will make a SSH connection to the servers with the user name and password provided at login. Multiple servers are separated by semicolons. You can append a descriptive name after a colon." +msgstr "Esta é uma lista dos servidores onde os scripts do lamdaemon estão armazenados. O LDAP Account Manager fará uma conexão de SSH aos servidores com o nome e a senha do usuário fornecidos no início da sessão. Os servidores múltiplos são separados por semi-colunas. Você pode adicionar um nome descritivo após dois pontos. " + +#: ../help/help.inc:89 +msgid "This is a list of valid DN entries of all users that are allowed to login to LDAP Account Manager. Please enter one DN per line." +msgstr "Esta é uma lista de entradas válidas do DN de todos os usuários que são permitidos a iniciar uma sessão no LDAP Account Manager. Entre por favor com um DN por linha." + +#: ../templates/3rdParty/pla/lib/PageRender.php:881 +msgid "This is a structural ObjectClass and cannot be removed." +msgstr "Esta é uma classe de objetos estrutural e não pode ser removida." + +#: ../lib/modules/nisObject.inc:67 +#: ../lib/modules/automount.inc:66 +msgid "This is an optional description for this entry." +msgstr "Esta é uma descrição opcional para esta entrada." + +#: ../help/help.inc:189 +msgid "This is needed to find the LDAP DNs of your user accounts. E.g. if you use \"uid\" and your user inputs \"miller\" then LAM will search for an account with uid=miller." +msgstr "Isto é necessário para encontrar os DN's de suas contas de usuários. Ex.: Se você usar \"UID\" e sua entrada for \"miller\", então LAM irá procurar por uma conta com uid=miller." + +#: ../lib/modules/zarafaDynamicGroup.inc:173 +#: ../lib/modules/ipHost.inc:110 +#: ../lib/modules/device.inc:128 +#: ../lib/modules/eduPerson.inc:219 +#: ../lib/modules/eduPerson.inc:221 +#: ../lib/modules/zarafaAddressList.inc:145 +#: ../lib/modules/inetOrgPerson.inc:80 +#: ../lib/modules/aliasEntry.inc:79 +msgid "This is not a valid DN!" +msgstr "DN inválido!" + +#: ../lib/modules/sambaSamAccount.inc:107 +msgid "This is not a valid RID number!" +msgstr "Número RID inválido!" + +#: ../lib/modules/sambaGroupMapping.inc:442 +msgid "This is not a valid Samba 3 group type!" +msgstr "Este não é um tipo de grupo do Samba 3 válido!" + +#: ../lib/modules/eduPerson.inc:223 +msgid "This is not a valid list of DNs!" +msgstr "Lista de DN's inválida." + +#: ../lib/modules/inetLocalMailRecipient.inc:66 +msgid "This is one of the users public email addresses." +msgstr "Este é um dos endereços de correio eletrônico públicos dos usuários." + +#: ../lib/modules/nisMailAlias.inc:72 +msgid "This is one recipient for this alias." +msgstr "Este é um recipiente para esse apelido." + +#: ../lib/modules/asteriskAccount.inc:95 +msgid "This is the ID of the user in the Asterisk database. It may contain digits and letters (e.g. user1 or 200134)." +msgstr "Esta é a identificação do usuário no banco de dados do Asterisk. Pode conter números e letras (por exemplo, usuario1 ou 200134)." + +#: ../lib/modules/freeRadius.inc:78 +msgid "This is the IP address for the user (e.g. 123.123.123.123)." +msgstr "Este é o endereço IP para o usuário (por exemplo, 123.123.123.123)." + +#: ../lib/modules/ipHost.inc:59 +msgid "This is the IP address of the network card of the device (e.g. 123.123.123.123)." +msgstr "Este é o endereço IP da placa de rede do dispositivo (por exemplo, 123.123.123.123)." + +#: ../lib/modules/ipHost.inc:71 +msgid "This is the LDAP DN of the host's manager." +msgstr "Este é o DN LDAP do gerenciador de host's." + +#: ../lib/modules/inetOrgPerson.inc:667 +#: ../lib/modules/inetOrgPerson.inc:671 +msgid "This is the LDAP DN of the user's manager. Use this property to represent hierarchies in your company." +msgstr "Este é o DN LDAP do administrador de usuários. Use esta propriedade para representar hierarquias na sua companhia." + +#: ../lib/modules/customFields.inc:101 +msgid "This is the LDAP attribute's value that puts the checkbox in an activated state. The value is case-insensitive." +msgstr "Este é o valor do atributo LDAP que coloca a caixa de seleção em um estado ativado. O valor diferencia maiúsculas de minúsculas." + +#: ../lib/modules/customFields.inc:105 +msgid "This is the LDAP attribute's value that puts the checkbox in an deactivated state. The value is case-insensitive." +msgstr "Este é o valor do atributo LDAP que coloca a caixa de seleção em um estado desativado. O valor diferencia maiúsculas de minúsculas." + +#: ../lib/modules/ieee802device.inc:62 +msgid "This is the MAC address of the network card of the device (e.g. 00:01:02:DE:EF:18)." +msgstr "Este é o endereço MAC da placa de rede do dispositivo(Ex.: 00:01:02:DE:EF:18)." + +#: ../lib/modules/sambaSamAccount.inc:312 +msgid "This is the SID of the user's primary Windows group." +msgstr "Este é o SID do grupo primário do Windows para o usuário." + +#: ../help/help.inc:98 +msgid "This is the absolute path to an external script for setting quotas and creating home directories." +msgstr "Este é o caminho absoluto para um script externo que configura quotas e cria diretórios/pastas padrão." + +#: ../lib/modules/mitKerberos.inc:146 +#: ../lib/modules/heimdalKerberos.inc:118 +msgid "This is the account's Kerberos password." +msgstr "Esta é a senha para a conta Kerberos." + +#: ../lib/modules/sambaSamAccount.inc:250 +msgid "This is the account's Windows password." +msgstr "Esta é a senha para a conta Windows." + +#: ../lib/modules/sambaSamAccount.inc:247 +msgid "This is the account's full name on Windows systems." +msgstr "Este é o nome completo para a conta nos sistemas Windows." + +#: ../lib/modules/ppolicyUser.inc:49 +msgid "This is the active password policy for this account." +msgstr "Esta é a política de senha ativa para esta conta." + +#: ../lib/modules/passwordSelfReset.inc:71 +msgid "This is the answer to the security question. It allows users to reset their password." +msgstr "Esta é a resposta à pergunta de segurança. Ele permite aos usuários redefinir suas senhas." + +#: ../lib/modules/mitKerberos.inc:138 +msgid "This is the date of the user's last login." +msgstr "Esta é a data do último login do usuário." + +#: ../lib/modules/mitKerberos.inc:118 +#: ../lib/modules/heimdalKerberos.inc:96 +msgid "This is the date when the account will expire." +msgstr "Esta é a data em que a conta irá expirar." + +#: ../lib/modules/sambaSamAccount.inc:334 +#: ../lib/modules/shadowAccount.inc:185 +msgid "This is the date when the account will expire. Format: DD-MM-YYYY" +msgstr "Esta é a data em que a conta expirará. Formato: DD-MM-YYYY" + +#: ../lib/modules/mitKerberos.inc:134 +msgid "This is the date when the user changed his password." +msgstr "Esta é a data em que o usuário alterou sua senha." + +#: ../lib/modules/shadowAccount.inc:193 +msgid "This is the date when the user changed his password. If you specify a maximum password age then you can force a password change here." +msgstr "Esta é a data em que o usuário alterou a sua senha. Se você especificar uma idade máxima da senha, então você pode forçar uma alteração de senha aqui." + +#: ../lib/modules/sambaGroupMapping.inc:357 +msgid "This is the group name which will be shown in Windows." +msgstr "Este é o nome de grupo que será mostrado no Windows." + +#: ../help/help.inc:155 +msgid "This is the identifier for the relative DN value. It must be one of the given allowed LDAP attributes (e.g. user accounts usually use \"uid\" while groups use \"cn\")." +msgstr "Este é o identificador para o valor relativo do DN. Deve ser um dos atributos LDAP permitidos (Ex.: contas de usuários usualmente usam \"uid\" enquanto grupos usam \"cn\")." + +#: ../lib/modules/passwordSelfReset.inc:83 +msgid "This is the label for the link to the password self reset. If empty \"Forgot password?\" will be used." +msgstr "Este é o rótulo para o link de redefinição da senha. Se vazio, \"Esqueceu a senha? \" será usado." + +#: ../lib/modules/selfRegistration.inc:97 +msgid "This is the label for the link to the self registration. If empty \"Register new account\" will be used." +msgstr "Este é o rótulo para o link de auto-registro. Se vazio \"Registrar nova conta\" será usado." + +#: ../help/help.inc:84 +msgid "This is the list of attributes to show in the account list. The entries can either be predefined values, \"#attribute\", or individual ones, \"attribute:description\". Several entries are separated by semicolons." +msgstr "Esta é a lista dos atributos mostrados na lista da conta. As entradas podem ser valores predefinidos \"#atributo\", ou individuais, \"atributo: descrição\". Diversas entradas são separadas por semi-colunas." + +#: ../lib/modules/asteriskAccount.inc:99 +msgid "This is the machine id (e.g. IP address or host name) from which the user can call/receive calls." +msgstr "Esta é a identificação de máquina (por exemplo, endereço IP ou nome do host) a partir do qual o usuário pode fazer ou receber chamadas." + +#: ../lib/modules/inetLocalMailRecipient.inc:74 +msgid "This is the mail server for the user." +msgstr "Este é o servidor de correio eletrônico do usuário." + +#: ../lib/modules/qmailUser.inc:213 +msgid "This is the mailbox size limit in bytes." +msgstr "Este é o limite em bytes da caixa de mensagens." + +#: ../lib/modules/passwordSelfReset.inc:75 +msgid "This is the minimum length for answers to the security question." +msgstr "Este é o comprimento mínimo de respostas para a pergunta secreta." + +#: ../lib/modules/nisnetgroup.inc:77 +#: ../lib/modules/groupOfNames.inc:61 +msgid "This is the name of this group." +msgstr "Este é o nome do grupo." + +#: ../lib/modules/posixAccount.inc:444 +msgid "This is the natural name of the host. If empty, the host name will be used." +msgstr "Este é o nome conhecido do host. Se vazio, o nome do host será usado." + +#: ../lib/modules/inetOrgPerson.inc:747 +msgid "This is the natural name of the user. If empty, the first and last name is used." +msgstr "Este é o nome conhecido do usuário. Se vazio, o primeiro e o último nomes serão usados." + +#: ../lib/modules/posixAccount.inc:422 +msgid "This is the natural name of the user. If empty, the first and last name or user name is used." +msgstr "Este é o nome conhecido do usuário. Se vazio, o primeiro e o último nomes serão usados." + +#: ../lib/modules/sambaDomain.inc:115 +msgid "This is the number of bad logon attempts (0 - 999) before the account is deactivated. 0 means unlimited attempts." +msgstr "Este é o número de tentativas de logon mal sucedidas (0 - 999) antes que a conta seja bloqueada. 0 significa tentativas ilimitadas." + +#: ../lib/modules/sambaDomain.inc:99 +msgid "This is the number of passwords which are saved to prevent that users reuse old passwords." +msgstr "Este é o número de senhas armazenadas em histórico para prevenir a reutilização de senhas antigas pelo usuário." + +#: ../help/help.inc:94 +msgid "This is the number of rows to show in the account list. If more entries are found the list will be split into several pages." +msgstr "Este é o número de linhas a mostrar na lista do usuário/grupo/host. Se mais entradas forem encontradas a lista estará separada em diversas páginas." + +#: ../lib/modules/sambaSamAccount.inc:343 +msgid "This is the path to the user's home directory." +msgstr "Por favor entre com o caminho para o diretório/pasta padrão de usuário para esta conta." + +#: ../lib/modules/sambaGroupMapping.inc:365 +msgid "This is the relative ID (similar to UID on Unix) for Windows accounts. If you leave this empty LAM will calculate the RID from the UID. This can be either a number or the name of a special group:" +msgstr "Este é o ID relativo (similar a UID no Unix) para clientes de Windows. Se você deixar vazio, o LAM calculará RID pelo UID. Este pode ser um número ou o nome de um grupo especial:" + +#: ../lib/modules/sambaSamAccount.inc:318 +msgid "This is the relative ID number for your Windows account. You can either enter a number or one of these special accounts: " +msgstr "Este é o número relativo do ID para seu cliente de Windows. Você pode entrar com um número ou um destes clientes especiais: " + +#: ../lib/modules/sambaSamAccount.inc:322 +msgid "This is the relative ID number for your host account. If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "Este é o número ID relativo para sua conta de host. Se você deixar vazio, o LAM irá usar: uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../lib/modules/imapAccess.inc:104 +msgid "This is the separator for the mailbox path. Usually, this is \".\" but e.g. Cyrus with \"unixhierarchysep\" will require \"/\"." +msgstr "Este é o separador para o caminho de caixa de correio. Normalmente, este é \". \", Mas, por exemplo, Cyrus com \"unixhierarchysep\" vai exigir \"/ \"." + +#: ../help/help.inc:59 +msgid "This is the server address of your LDAP server. Use ldap:// for unencrypted LDAP connections or TLS encrypted connections. LDAP+SSL (LDAPS) encrypted connections are specified with ldaps://. The port value is optional." +msgstr "Este é o endereço do servidor de seu servidor de LDAP. Use ldap:// para conexões padrão e ldaps:// para conexões criptografadas com TLS (requer certificados do servidor). O número da porta é opcional." + +#: ../help/help.inc:78 +msgid "This is the suffix for the LDAP tree viewer." +msgstr "Este é o sufixo para a visualização da árvore LDAP." + +#: ../help/help.inc:72 +msgid "This is the suffix of the LDAP tree from where to search for LDAP entries. Only entries in this subtree will be displayed in the account list. When creating a new accont this will be the DN where it is saved." +msgstr "Este é o sufixo da árvore de LDAP de onde o LAM procurará por entradas de LDAP. Somente as entradas nesta sub-árvore serão indicadas na lista de contas. Ao criar uma conta nova, este será o DN onde ela será salva." + +#: ../lib/modules/inetLocalMailRecipient.inc:62 +msgid "This is the target email address for the user's mails." +msgstr "Este é o endereço de correio eletrônico alvo para as mensagens do usuário." + +#: ../lib/modules/customScripts.inc:46 +#: ../lib/modules/uidObject.inc:53 +#: ../lib/modules/aliasEntry.inc:55 +msgid "This is the target of this alias entry." +msgstr "Este é o alvo desta entrada de apelido." + +#: ../lib/modules/sambaDomain.inc:127 +msgid "This is the time (in minutes) for which the user may not log in after the account was locked. -1 means forever." +msgstr "Este é o tempo (em minutos) para que o usuário não inicie uma sessão após a conta ser bloqueada. -1 definirá para sempre." + +#: ../help/help.inc:141 +msgid "This is the time (in minutes) of inactivity after which a user is automatically logged off." +msgstr "Este é o tempo (em minutos) de inatividade depois do qual um usuário é desconectado de sua sessão automaticamente." + +#: ../help/help.inc:102 +msgid "This is the time in minutes which LAM caches its LDAP searches. Shorter times will stress LDAP more but decrease the possibility that changes are not identified." +msgstr "Este é o tempo em minutos que o LAM guardara em cache suas buscas de LDAP. Tempos mais curtos forçarão mais o LDAP, mas diminuirão a possibilidade que as mudanças não estejam identificadas." + +#: ../lib/modules/sambaSamAccount.inc:337 +msgid "This is the time zone of your Samba server. LAM needs this information to display the logon hours correctly." +msgstr "Esta é o fuso horário do seu servidor Samba. LAM precisa desta informação para mostrar as horas de início de sessão corretamente." + +#: ../lib/modules/sambaSamAccount.inc:309 +msgid "This is the user's primary Windows group." +msgstr "Este é o grupo primário de Windows do usuário." + +#: ../lib/modules/puppetClient.inc:82 +msgid "This is this node's parent. All classes and variables are inherited from this node." +msgstr "Este é o nó pai. Todas as classes e variáveis herdarão deste nó." + +#: ../lib/modules/asteriskAccount.inc:147 +msgid "This is typically used to allow incoming calls (e.g. from FWD) while having a type=friend entry defined with username and password." +msgstr "Isto é tipicamente usado para permitir que as chamadas recebidas (por exemplo, de FWD), tendo uma entrada type=amigo definida com nome de usuário e senha." + +#: ../lib/modules/zarafaUser.inc:102 +msgid "This is used to mark this account as resource." +msgstr "Isto é usado para marcar esta conta como recurso." + +#: ../lib/modules/posixAccount.inc:111 +msgid "This login shell is invalid!" +msgstr "O interpretador de comandos do início de sessão do usuário não é válido!" + +#: ../lib/modules/inetLocalMailRecipient.inc:221 +msgid "This mail address is already in use:" +msgstr "Este endereço de correio já está em uso:" + +#: ../lib/modules/imapAccess.inc:98 +msgid "This mailbox will be created/deleted." +msgstr "A caixa de correio será criada/excluída." + +#: ../lib/modules/customFields.inc:97 +msgid "This message is shown when the field value does not match the validation expression." +msgstr "Esta mensagem é mostrada quando o valor do campo não coincide com a expressão de validação." + +#: ../templates/schema/schema.php:350 +msgid "This object class is obsolete." +msgstr "Esta classe de objetos está obsoleta." + +#: ../lib/modules/imapAccess.inc:77 +msgid "This option allows you to disable the certificate check of your IMAP server certificate. Disabling the certificate check is not recommended." +msgstr "Esta opção permite que você desabilite a verificação de certificado de seu certificado de servidor IMAP. Desativar a verificação de certificado não é recomendado." + +#: ../lib/modules/sambaSamAccount.inc:328 +msgid "This option defines the allowed logon hours for this account." +msgstr "Esta opção define as horas de início de sessão permitidas para esta conta." + +#: ../lib/modules/sambaSamAccount.inc:331 +msgid "This option defines the allowed logon hours for this account. The format is the same as for the LDAP attribute. The 24*7 hours are represented as 168 bit which are saved as 21 hex (21*8 = 168) values. The first bit represents Sunday 0:00 - 0:59 in GMT." +msgstr "Esta opção define as horas de início de uma sessão permitidas para esta conta. O formato é o mesmo que o atributo de LDAP. As horas 24*7 são representadas como 168 bit que são salvas como 21 hex (21*8 = 168) valores. O primeiro bit representa domingo 0:00 - 0:59 no GMT." + +#: ../lib/modules/asteriskExtension.inc:185 +msgid "This pair of extension name and priority already exists." +msgstr "Este par de nome de extensão e prioridade já existe." + +#: ../lib/modules/sambaSamAccount.inc:352 +msgid "This program is run after the login." +msgstr "Este programa é executado após o login." + +#: ../lib/modules/sambaSamAccount.inc:376 +msgid "This specifies the reconnect policy." +msgstr "Isto especifica a política de reconexão. " + +#: ../lib/modules/sambaSamAccount.inc:373 +msgid "This specifies what to do when the client connection is broken." +msgstr "Isto especifica o que fazer quando a conexão do cliente está quebrada." + +#: ../help/help.inc:193 +msgid "This text is displayed on top of the self service login page. You can also input HTML code here." +msgstr "Este texto é mostrado no topo da tela de início de sessão do auto serviço. Você pode entrar com código HTML aqui." + +#: ../help/help.inc:195 +msgid "This text is displayed on top of the self service main page. You can also input HTML code here." +msgstr "ESte texto é mostrado no topo da tela de início de sessão do auto serviço. Você pode entrar com código HTML aqui." + +#: ../help/help.inc:191 +msgid "This text should shortly describe your selected LDAP search attribute (e.g. email or user name)." +msgstr "Este texto deve descrever rapidamente seu atributo selecionado da busca de LDAP (nome por exemplo do email ou do usuário). " + +#: ../lib/modules/qmailUser.inc:233 +msgid "This text will be sent as reply to all incoming mails if the delivery mode is set to autoreply." +msgstr "Este texto será enviado como resposta a todos os e-mails recebidos, se o modo de entrega é definido para resposta automática." + +#: ../lib/tools/pdfEdit.inc:53 +msgid "This tool allows you to customize the PDF pages." +msgstr "Esta ferramenta habilita você a personalizar as páginas PDF." + +#: ../templates/lists/changePassword.php:46 +msgid "This user is not supported or was not found." +msgstr "Este usuário não é suportado ou não foi encontrado." + +#: ../templates/lists/userlink.php:61 +msgid "This user was not found!" +msgstr "Usuário não encontrado!" + +#: ../lib/modules/zarafaUser.inc:417 +msgid "This value can only be \"Room\" or \"Equipment\"." +msgstr "Este valor pode ser somente \"Sala\" ou \"Equipamento\"!" + +#: ../lib/modules/zarafaDynamicGroup.inc:178 +#: ../lib/modules/zarafaDynamicGroup.inc:179 +#: ../lib/modules/zarafaContact.inc:161 +#: ../lib/modules/zarafaContact.inc:162 +#: ../lib/modules/zarafaGroup.inc:191 +#: ../lib/modules/zarafaGroup.inc:192 +#: ../lib/modules/zarafaGroup.inc:193 +#: ../lib/modules/zarafaAddressList.inc:146 +#: ../lib/modules/zarafaAddressList.inc:147 +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:111 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/posixAccount.inc:112 +#: ../lib/modules/zarafaUser.inc:424 +#: ../lib/modules/zarafaUser.inc:426 +#: ../lib/modules/zarafaUser.inc:427 +#: ../lib/modules/zarafaUser.inc:428 +#: ../lib/modules/zarafaUser.inc:429 +#: ../lib/modules/zarafaUser.inc:430 +#: ../lib/modules/ppolicyUser.inc:86 +#: ../lib/modules/zarafaServer.inc:156 +msgid "This value can only be \"true\" or \"false\"." +msgstr "Este valor pode ser somente \"Verdadeiro\" ou \"Falso\"!" + +#: ../lib/modules/zarafaUser.inc:425 +msgid "This value can only be \"true\", \"false\" or \"system\"." +msgstr "Este valor pode ser somente \"Verdadeiro\", ou \"Falso\"." + +#: ../lib/modules/posixGroup.inc:508 +msgid "This value must be a list of user names separated by semicolons." +msgstr "Este valor deve ser uma lista de nomes de usuários separados por semi colunas." + +#: ../help/help.inc:222 +msgid "This will create a new organisational unit under the selected one." +msgstr "Isto criará uma unidade organizacional nova abaixo da selecionada." + +#: ../lib/modules/posixAccount.inc:381 +msgid "This will create the user's home directory on the specified server." +msgstr "Isto criará o diretório/pasta base do usuário no servidor especificado." + +#: ../help/help.inc:224 +msgid "This will delete the selected organisational unit. The OU has to be empty." +msgstr "Isto apagará a unidade organizacional selecionada. A \"OU\" deve estar vazia." + +#: ../help/help.inc:129 +msgid "This will delete the selected profile." +msgstr "Isto apagará o perfil selecionado." + +#: ../lib/modules/puppetClient.inc:102 +#: ../lib/modules/qmailUser.inc:257 +#: ../lib/modules/zarafaContact.inc:78 +#: ../lib/modules/eduPerson.inc:131 +#: ../lib/modules/sambaSamAccount.inc:388 +#: ../lib/modules/zarafaUser.inc:122 +#: ../lib/modules/shadowAccount.inc:189 +#: ../lib/modules/authorizedServiceObject.inc:83 +#: ../lib/modules/hostObject.inc:77 +msgid "This will enable the extension automatically if this profile is loaded." +msgstr "Esta extensão será automaticamente habilitada se o perfil for carregado." + +#: ../lib/modules/sambaSamAccount.inc:253 +msgid "This will reset the host's password to a default value." +msgstr "Isto limpará a senha do host para um valor padrão." + +#: ../templates/lists/changePassword.php:286 +msgid "This will set a random password and display it on the screen or send it to the user via mail." +msgstr "Isto irá definir uma senha aleatória e exibí-la na tela ou enviá-la ao usuário por correio eletrônico." + +#: ../help/help.inc:205 +msgid "This will set a random password and display it on the screen or send it to the user via mail. Please edit your LAM server profile to setup the mail settings." +msgstr "Isto irá definir uma senha aleatória e exibí-la na tela ou enviá-la ao usuário por correio eletrônico. Por favor edite seu perfil de servidor no LAM para configurar as opções de correio eletrônico." + +#: ../lib/modules/kolabUser.inc:134 +msgid "This will set a special flag on the account which tells Kolabd to remove it. Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes)." +msgstr "Isto ajustará uma sinalização especial na conta que diz ao Kolabd para removê-la. Usar isto para limpar contas de Kolab (Ex.: isto remove as caixas do correio)." + +#: ../lib/modules/qmailUser.inc:205 +msgid "This will set the user's account status. You may disable the mail account here." +msgstr "Isto irá definir o status da conta do usuário. Você pode desativar a conta de e-mail aqui." + +#: ../lib/modules/sambaSamAccount.inc:1337 +msgid "Thursday" +msgstr "Quinta-feira" + +#: ../lib/modules/mitKerberos.inc:129 +#: ../lib/modules/mitKerberos.inc:183 +#: ../lib/modules/mitKerberos.inc:218 +#: ../lib/modules/mitKerberos.inc:242 +#: ../lib/modules/mitKerberos.inc:351 +#: ../lib/modules/mitKerberos.inc:775 +#: ../lib/modules/heimdalKerberos.inc:103 +#: ../lib/modules/heimdalKerberos.inc:152 +#: ../lib/modules/heimdalKerberos.inc:187 +#: ../lib/modules/heimdalKerberos.inc:209 +#: ../lib/modules/heimdalKerberos.inc:294 +#: ../lib/modules/heimdalKerberos.inc:681 +msgid "Ticket lifetime" +msgstr "Tempo de vida do bilhete" + +#: ../lib/modules/mitKerberos.inc:279 +#: ../lib/modules/mitKerberos.inc:280 +#: ../lib/modules/heimdalKerberos.inc:243 +#: ../lib/modules/heimdalKerberos.inc:244 +msgid "Ticket lifetime must be a number." +msgstr "Tempo de vida do bilhete deve ser um número." + +#: ../lib/modules/sambaSamAccount.inc:1359 +msgid "Time" +msgstr "Tempo" + +#: ../lib/modules/sambaSamAccount.inc:357 +msgid "Time limit" +msgstr "Tempo limite" + +#: ../lib/modules/sambaSamAccount.inc:336 +#: ../lib/modules/sambaSamAccount.inc:564 +msgid "Time zone" +msgstr "Fuso horário" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:45 +msgid "To" +msgstr "Para" + +#: ../lib/modules/posixAccount.inc:414 +msgid "To disable login use /bin/false. The list of shells is read from lam/config/shells" +msgstr "Para desabilitar o início de sessão use /bin/false. A lista de interpretadores de comando é lida de lam/config/shells." + +#: ../lib/modules/sambaSamAccount.inc:558 +msgid "Tokyo, Seoul, Osaka, Yakutsk" +msgstr "Tokyo, Seoul, Osaka, Yakutsk" + +#: ../templates/config/confmain.php:388 +msgid "Tool settings" +msgstr "Configurações de ferramentas" + +#: ../templates/tools.php:63 +#: ../templates/main_header.php:145 +msgid "Tools" +msgstr "Ferramentas" + +#: ../templates/serverInfo.php:357 +msgid "Total" +msgstr "Total" + +#: ../templates/serverInfo.php:242 +#: ../templates/serverInfo.php:247 +msgid "Total connections" +msgstr "Total de conexões" + +#: ../templates/3rdParty/pla/lib/export_functions.php:202 +msgid "Total entries" +msgstr "Total de entradas" + +#: ../lib/types/user.inc:635 +msgid "Translate GID number to group name" +msgstr "Traduza número GID para o nome do grupo" + +#: ../templates/config/confmain.php:247 +#: ../help/help.inc:77 +msgid "Tree suffix" +msgstr "Sufixo da árvore" + +#: ../templates/main_header.php:176 +msgid "Tree view" +msgstr "Visualização em árvore" + +#: ../templates/config/confmain.php:526 +msgid "TreeSuffix is invalid!" +msgstr "Sufixo de árvore inválido!" + +#: ../lib/modules/sambaSamAccount.inc:1337 +msgid "Tuesday" +msgstr "Terça-feira" + +#: ../templates/selfService/profManage.php:215 +#: ../templates/schema/schema.php:348 +#: ../lib/modules/zarafaUser.inc:101 +#: ../lib/modules/zarafaUser.inc:176 +#: ../lib/modules/zarafaUser.inc:257 +#: ../lib/modules/zarafaUser.inc:380 +#: ../lib/modules/zarafaUser.inc:538 +#: ../lib/modules/zarafaUser.inc:1297 +#: ../lib/modules/customFields.inc:84 +#: ../lib/modules/customFields.inc:674 +#: ../lib/modules/customFields.inc:1069 +msgid "Type" +msgstr "Tipo" + +#: ../lib/modules/posixAccount.inc:96 +msgid "UID" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:96 +msgid "UID has changed. Do you want to change home directory?" +msgstr "UID alterado. Você deseja alterar o diretório/pasta padrão?" + +#: ../lib/modules/posixAccount.inc:91 +msgid "UID must be a number. It has to be inside the UID range which is defined in your configuration profile." +msgstr "UID deve ser um número. Tem que ser dentro do intervalo de UID que é definido em seu perfil de configuração. " + +#: ../lib/types/host.inc:95 +#: ../lib/types/user.inc:92 +#: ../lib/modules/qmailUser.inc:105 +#: ../lib/modules/qmailUser.inc:224 +#: ../lib/modules/qmailUser.inc:325 +#: ../lib/modules/qmailUser.inc:411 +#: ../lib/modules/qmailUser.inc:563 +#: ../lib/modules/qmailUser.inc:1200 +#: ../lib/modules/posixAccount.inc:92 +#: ../lib/modules/posixAccount.inc:224 +#: ../lib/modules/posixAccount.inc:306 +#: ../lib/modules/posixAccount.inc:328 +#: ../lib/modules/posixAccount.inc:348 +#: ../lib/modules/posixAccount.inc:352 +#: ../lib/modules/posixAccount.inc:360 +#: ../lib/modules/posixAccount.inc:1107 +#: ../lib/modules/posixAccount.inc:1480 +msgid "UID number" +msgstr "Número UID" + +#: ../lib/modules/posixAccount.inc:92 +#, php-format +msgid "UID number has changed. To keep file ownership you have to run the following command as root: 'find / -uid %s -exec chown %s {} \\;'" +msgstr "Número UID alterado. Para manter a posse sobre os arquivos, você tem que executar o seguinte comando como usuário root: 'find / -uid %s -exec chown %s {} \\;'" + +#: ../lib/modules/qmailUser.inc:456 +msgid "UID number is already in use." +msgstr "UID já está em uso." + +#: ../lib/modules/posixAccount.inc:83 +msgid "UID ranges for Unix accounts" +msgstr "Intervalos de UID para contas Unix." + +#: ../lib/modules/sambaSamAccount.inc:294 +msgid "UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced with user and group name." +msgstr "Caminho UNC(\\\\servidor\\compartilhamento) do diretório/pasta padrão. $user e $group serão substituídos pelo nome do usuário ou nome do grupo." + +#: ../lib/modules/eduPerson.inc:107 +#: ../lib/modules/eduPerson.inc:111 +msgid "URI (either URN or URL) that indicates a set of rights to specific resources." +msgstr "URI (ou URN ou URL) que indica um conjunto de direitos a recursos específicos." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1883 +msgid "URL" +msgstr "URL" + +#: ../lib/modules/imapAccess.inc:160 +msgid "Unable to change ACL on IMAP server for mailbox deletion." +msgstr "Não está habilitado para alterar ACL no servidor IMAP para exclusão da caixa de correio." + +#: ../lib/modules/mitKerberos.inc:1151 +#: ../lib/modules/mitKerberos.inc:1155 +#: ../lib/modules/heimdalKerberos.inc:1021 +msgid "Unable to change Kerberos password." +msgstr "Inabilitado para alterar senha Kerberos." + +#: ../templates/selfService/selfServiceMain.php:303 +msgid "Unable to change your account. Maybe you do not have enough rights to change the settings." +msgstr "Inabilitado para alterar sua conta. Talvez você não tenha direitos para mudar configurações da conta. " + +#: ../templates/tests/lamdaemonTest.php:261 +#: ../lib/lamdaemon.inc:76 +#: ../lib/lamdaemon.inc:81 +msgid "Unable to connect to remote server!" +msgstr "Inabilitado para conectar ao servidor remoto!" + +#: ../templates/massDoUpload.php:182 +msgid "Unable to create ZIP file for PDF export." +msgstr "Inabilitado para criar arquivo zip para exportação PDF." + +#: ../lib/modules/selfRegistration.inc:588 +#: ../lib/modules/selfRegistration.inc:592 +msgid "Unable to create account." +msgstr "Inabilitado para criar conta." + +#: ../lib/modules/imapAccess.inc:162 +msgid "Unable to create mailbox on IMAP server." +msgstr "Inabilitado para criar caixa de correio no servidor IMAP." + +#: ../templates/ou_edit.php:80 +msgid "Unable to create new OU!" +msgstr "Inabilitado para criar nova OU!" + +#: ../lib/types/automountType.inc:270 +msgid "Unable to create new automount map." +msgstr "Inabilitado para criar novo ponto de montagem." + +#: ../templates/config/profmanage.php:80 +#: ../templates/selfService/profManage.php:59 +msgid "Unable to create new profile!" +msgstr "Inabilitado para criar novo perfil!" + +#: ../templates/ou_edit.php:97 +msgid "Unable to delete OU!" +msgstr "Inabilitado para apagar OU!" + +#: ../templates/pdfedit/pdfmain.php:91 +msgid "Unable to delete PDF structure!" +msgstr "Inabilitado para apagar estrutura PDF!" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:25 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:57 +msgid "Unable to delete entry, it does not exist" +msgstr "Inabilitado para apagar a entrada, ela não existe" + +#: ../lib/modules/imapAccess.inc:161 +msgid "Unable to delete mailbox from IMAP server." +msgstr "Inabilitado para apagar a caixa de correio no servidor IMAP." + +#: ../templates/config/profmanage.php:112 +#: ../templates/selfService/profManage.php:87 +#: ../templates/profedit/profilemain.php:107 +#: ../lib/config.inc:127 +#: ../lib/config.inc:139 +#: ../lib/config.inc:146 +#: ../lib/config.inc:154 +msgid "Unable to delete profile!" +msgstr "Inabilitado para apagar perfil!" + +#: ../lib/modules/posixAccount.inc:1686 +#: ../lib/modules/posixAccount.inc:1695 +#: ../lib/modules/posixAccount.inc:1959 +#: ../lib/modules/nisnetgroup.inc:538 +#: ../lib/modules/groupOfNamesUser.inc:317 +msgid "Unable to find group in LDAP." +msgstr "Inabilitado para encontrar grupo no LDAP." + +#: ../lib/modules/passwordSelfReset.inc:719 +#: ../lib/modules/passwordSelfReset.inc:867 +msgid "Unable to find password security question for this account." +msgstr "Inabilitado para encontrar a pergunta secreta para esta conta." + +#: ../templates/login.php:521 +#: ../templates/login.php:527 +msgid "Unable to find the user name in LDAP." +msgstr "Inabilitado para encontrar nome do usuário no LDAP." + +#: ../lib/modules/passwordSelfReset.inc:710 +#: ../lib/modules/passwordSelfReset.inc:941 +msgid "Unable to find user account." +msgstr "Inabilitado para encontrar conta do usuário." + +#: ../lib/modules.inc:1455 +#: ../lib/modules.inc:1459 +msgid "Unable to load LDAP entry:" +msgstr "Inabilitado para carregar entrada LDAP:" + +#: ../lib/profiles.inc:98 +#: ../lib/profiles.inc:102 +#: ../lib/selfService.inc:196 +#: ../lib/selfService.inc:200 +msgid "Unable to load profile!" +msgstr "Inabilitado para carregar o perfil!" + +#: ../lib/modules/imapAccess.inc:163 +msgid "Unable to locate mailbox on IMAP." +msgstr "Inabilitado para localizar a caixa de correio no servidor IMAP." + +#: ../templates/3rdParty/pla/lib/import_functions.php:388 +#: ../templates/3rdParty/pla/lib/import_functions.php:393 +msgid "Unable to read file." +msgstr "Inabilitado para ler o arquivo." + +#: ../templates/lists/changePassword.php:562 +msgid "Unable to read sambaSID attribute." +msgstr "Inabilitado para ler o atributo sambaSID." + +#: ../lib/modules/passwordSelfReset.inc:1064 +#: ../lib/modules/passwordSelfReset.inc:1068 +#: ../lib/modules/passwordSelfReset.inc:1077 +msgid "Unable to reset password." +msgstr "Inabilitado para redefinir senha." + +#: ../templates/3rdParty/pla/lib/functions.php:1945 +msgid "Unable to retrieve image" +msgstr "Inabilitado para receber a imagem." + +#: ../templates/tests/schemaTest.php:61 +#: ../templates/schema/schema.php:93 +#: ../templates/schema/schema.php:111 +#: ../templates/schema/schema.php:272 +#: ../templates/schema/schema.php:306 +msgid "Unable to retrieve schema!" +msgstr "Inabilitado para ler o esquema!" + +#: ../templates/selfService/adminMain.php:180 +#: ../templates/profedit/profilepage.php:119 +msgid "Unable to save profile!" +msgstr "Inabilitado para salvar o perfil!" + +#: ../lib/account.inc:960 +msgid "Unable to send mail!" +msgstr "Inabilitado para enviar mensagem!" + +#: ../templates/lists/changePassword.php:557 +#: ../templates/lists/changePassword.php:574 +msgid "Unable to sync the time when the user can/must change his password because no domain was found." +msgstr "Não é possível sincronizar o momento em que o usuário pode/deve alterar sua senha de domínio, porque o domínio não foi encontrado." + +#: ../lib/modules/passwordSelfReset.inc:769 +#: ../lib/modules/passwordSelfReset.inc:952 +msgid "Unable to verify your password reset request. Please try again." +msgstr "Inabilitado para verificar sua requisição de renovação de senha. Por favor tente novamente." + +#: ../lib/modules/selfRegistration.inc:600 +msgid "Unable to verify your user creation request. Please try again." +msgstr "Inabilitado para verificar sua requisição de criação de senha. Por favor tente novamente." + +#: ../templates/serverInfo.php:293 +msgid "Unbind" +msgstr "Desligar-se" + +#: ../templates/lists/changePassword.php:348 +#: ../templates/lists/changePassword.php:374 +#: ../lib/types/user.inc:255 +#: ../lib/types/user.inc:345 +#: ../lib/types/user.inc:379 +#: ../lib/types/user.inc:763 +#: ../lib/modules/posixGroup.inc:302 +#: ../lib/modules/posixAccount.inc:144 +msgid "Unix" +msgstr "Unix" + +#: ../templates/tests/lamdaemonTest.php:214 +msgid "Unix account" +msgstr "Conta Unix" + +#: ../lib/modules/posixAccount.inc:1216 +msgid "Unix groups" +msgstr "Grupos UNIX" + +#: ../lib/modules/kolabUser.inc:185 +#, php-format +msgid "Unknown delegate address: %s" +msgstr "endereço de delegação desconhecido: %s" + +#: ../templates/3rdParty/pla/lib/import_functions.php:233 +msgid "Unkown change type" +msgstr "Tipo de alteração desconhecida" + +#: ../lib/types/user.inc:327 +#: ../lib/types/user.inc:335 +msgid "Unlock" +msgstr "Desbloquear" + +#: ../templates/lists/changePassword.php:198 +#: ../templates/lists/changePassword.php:345 +#: ../templates/lists/changePassword.php:361 +#: ../templates/lists/changePassword.php:363 +#: ../lib/modules/ppolicyUser.inc:135 +msgid "Unlock account" +msgstr "Desbloquear conta" + +#: ../templates/lists/changePassword.php:240 +msgid "Unlock account?" +msgstr "Desbloquear conta ?" + +#: ../lib/modules/posixGroup.inc:212 +#: ../lib/modules/posixAccount.inc:1171 +#: ../lib/modules/inetOrgPerson.inc:1883 +msgid "Unlock password" +msgstr "Desbloquear senha" + +#: ../templates/masscreate.php:105 +#: ../templates/config/confmodules.php:376 +msgid "Unsolved dependency:" +msgstr "Dependência não resolvida:" + +#: ../templates/pdfedit/pdfpage.php:459 +msgid "Up" +msgstr "Acima" + +#: ../templates/lists/changePassword.php:207 +msgid "Update Samba password timestamps" +msgstr "Alterar estampas de tempo da senha do Samba" + +#: ../lib/modules/sambaSamAccount.inc:240 +msgid "Update attribute \"sambaPwdLastSet\" on password change" +msgstr "Atributo de atualização \"sambaPwdLastSet\" na alteração de senha." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1440 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:194 +msgid "Update object" +msgstr "Atualizar objeto" + +#: ../lib/modules/imapAccess.inc:302 +#: ../lib/modules/imapAccess.inc:311 +msgid "Update quota" +msgstr "Atualizar quota" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:165 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:129 +msgid "Update values" +msgstr "Atualizar valores" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:118 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:118 +msgid "Updating object" +msgstr "Atualizando o objeto" + +#: ../templates/massBuildAccounts.php:218 +msgid "Upload accounts to LDAP" +msgstr "Carregar contas para LDAP" + +#: ../templates/masscreate.php:270 +msgid "Upload file and create accounts" +msgstr "Carregar arquivo e criar contas" + +#: ../templates/massDoUpload.php:243 +#: ../lib/lists.inc:988 +msgid "Upload has finished" +msgstr "Carga finalizada" + +#: ../lib/modules.inc:482 +#, php-format +msgid "Upload was stopped after errors in %s module!" +msgstr "Carga foi interrompida depois de erros reportados no módulo %s!" + +#: ../templates/serverInfo.php:222 +msgid "Uptime" +msgstr "Tempo de atividade" + +#: ../templates/schema/schema.php:209 +msgid "Usage" +msgstr "Uso" + +#: ../lib/modules/authorizedServiceObject.inc:75 +#: ../lib/modules/authorizedServiceObject.inc:79 +msgid "Use * for all services." +msgstr "Use * para todos os serviços." + +#: ../lib/modules/sambaSamAccount.inc:255 +#: ../lib/modules/sambaSamAccount.inc:258 +#: ../lib/modules/sambaSamAccount.inc:416 +msgid "Use Unix password" +msgstr "Usar senha Unix" + +#: ../lib/modules/sambaSamAccount.inc:261 +#: ../lib/modules/sambaSamAccount.inc:264 +#: ../lib/modules/sambaSamAccount.inc:424 +#: ../lib/modules/sambaSamAccount.inc:1126 +#: ../lib/modules/sambaSamAccount.inc:1549 +msgid "Use no password" +msgstr "Usar sem senha" + +#: ../lib/modules/asteriskAccount.inc:179 +msgid "Use this to hide the caller ID." +msgstr "Use isto para esconder o ID de chamada." + +#: ../lib/modules/zarafaDynamicGroup.inc:73 +#: ../lib/modules/zarafaContact.inc:62 +#: ../lib/modules/zarafaGroup.inc:76 +#: ../lib/modules/zarafaAddressList.inc:61 +#: ../lib/modules/zarafaUser.inc:66 +msgid "Use this to hide this entry from the address book." +msgstr "Use isso para esconder esta entrada do livro de endereços." + +#: ../lib/modules/quota.inc:102 +#: ../lib/modules/quota.inc:393 +msgid "Used blocks" +msgstr "Blocos usados" + +#: ../lib/modules/quota.inc:103 +msgid "Used blocks. 1000 blocks are usually 1MB" +msgstr "Blocos usados. 1000 blocos são usualmente 1MB" + +#: ../templates/schema/schema.php:268 +msgid "Used by attributes" +msgstr "Usado por atributos" + +#: ../templates/schema/schema.php:237 +msgid "Used by object classes" +msgstr "Usado por classes de objetos" + +#: ../lib/modules/sambaDomain.inc:91 +msgid "Used for calculating RIDs from UID/GID. Do not change if unsure." +msgstr "Usado para calcular RIDs a partir de UID/GID. Não altere se não tiver certeza do que está fazendo." + +#: ../lib/modules/asteriskAccount.inc:211 +msgid "Used for registration context." +msgstr "Usado para o contexto de registro." + +#: ../lib/modules/quota.inc:124 +#: ../lib/modules/quota.inc:397 +msgid "Used inodes" +msgstr "Nodos usados" + +#: ../lib/modules/quota.inc:125 +msgid "Used inodes (files)" +msgstr "Nodos (arquivos) usados" + +#: ../lib/modules/asteriskAccount.inc:183 +msgid "Used to automatically hangup the call if no RTP traffic is received." +msgstr "Usado para automaticamente desligar a chamada, se nenhum tráfego RTP for recebido." + +#: ../lib/modules/asteriskAccount.inc:159 +#: ../lib/modules/asteriskAccount.inc:163 +msgid "Used to limit SIP traffic to and from this peer to a certain IP or network." +msgstr "Usado para limitar o tráfego SIP entre este ponto e um determinado endereço IP ou rede." + +#: ../lib/modules/asteriskAccount.inc:175 +msgid "Used to regularly check that a device is still online." +msgstr "Usado para checar regularmente se o dispositivo está ativo." + +#: ../lib/types/sudo.inc:78 +#: ../lib/modules/sambaGroupMapping.inc:69 +#: ../lib/modules/nisnetgroup.inc:213 +#: ../lib/modules/nisnetgroup.inc:586 +msgid "User" +msgstr "Usuário" + +#: ../lib/types/user.inc:91 +msgid "User ID" +msgstr "ID de usuário" + +#: ../lib/types/user.inc:62 +msgid "User accounts (e.g. Unix, Samba and Kolab)" +msgstr "Contas de usuário (Ex.: Unix, Samba e Kolab)" + +#: ../lib/modules/asteriskAccount.inc:118 +#: ../lib/modules/asteriskAccount.inc:249 +#: ../lib/modules/asteriskAccount.inc:332 +#: ../lib/modules/asteriskAccount.inc:402 +#: ../lib/modules/asteriskAccount.inc:688 +#: ../lib/modules/asteriskAccount.inc:1194 +msgid "User agent" +msgstr "Nome do usuário agente" + +#: ../lib/modules/sambaSamAccount.inc:285 +#: ../lib/modules/sambaSamAccount.inc:1140 +msgid "User can change password" +msgstr "Usuário pode alterar a senha" + +#: ../lib/types/user.inc:484 +#, php-format +msgid "User count: %s" +msgstr "Conta de usuário: %s" + +#: ../lib/modules/posixAccount.inc:394 +msgid "User description. If left empty first and last name will be used." +msgstr "Descrição do usuário. Se vazio, o primeiro e o último nome será usado." + +#: ../lib/modules/inetOrgPerson.inc:647 +msgid "User description. If left empty sur- and give name will be used." +msgstr "Descrição do usuário. Se vazio, sobre-nome e nome dado serão usados." + +#: ../lib/modules/account.inc:99 +msgid "User description. If left empty user name will be used." +msgstr "Descrição do usuário. Se vazio, o nome do usuário será usado." + +#: ../templates/schema/schema.php:204 +msgid "User modification" +msgstr "Alteração de usuário" + +#: ../lib/modules/mitKerberos.inc:212 +#: ../lib/modules/mitKerberos.inc:238 +#: ../lib/modules/mitKerberos.inc:370 +#: ../lib/modules/mitKerberos.inc:635 +#: ../lib/modules/mitKerberos.inc:779 +#: ../lib/modules/sambaSamAccount.inc:287 +#: ../lib/modules/sambaSamAccount.inc:1146 +#: ../lib/modules/heimdalKerberos.inc:99 +#: ../lib/modules/heimdalKerberos.inc:181 +#: ../lib/modules/heimdalKerberos.inc:208 +#: ../lib/modules/heimdalKerberos.inc:324 +#: ../lib/modules/heimdalKerberos.inc:541 +#: ../lib/modules/heimdalKerberos.inc:677 +msgid "User must change password" +msgstr "Usuário deve trocar a senha" + +#: ../templates/lists/changePassword.php:251 +#: ../templates/login.php:303 +#: ../lib/types/alias.inc:91 +#: ../lib/types/user.inc:94 +#: ../lib/selfService.inc:366 +#: ../lib/modules/mitKerberos.inc:109 +#: ../lib/modules/mitKerberos.inc:199 +#: ../lib/modules/mitKerberos.inc:237 +#: ../lib/modules/mitKerberos.inc:332 +#: ../lib/modules/mitKerberos.inc:763 +#: ../lib/modules/selfRegistration.inc:335 +#: ../lib/modules/selfRegistration.inc:403 +#: ../lib/modules/selfRegistration.inc:411 +#: ../lib/modules/account.inc:78 +#: ../lib/modules/account.inc:94 +#: ../lib/modules/account.inc:117 +#: ../lib/modules/account.inc:119 +#: ../lib/modules/account.inc:120 +#: ../lib/modules/account.inc:207 +#: ../lib/modules/account.inc:237 +#: ../lib/modules/account.inc:261 +#: ../lib/modules/uidObject.inc:38 +#: ../lib/modules/uidObject.inc:60 +#: ../lib/modules/uidObject.inc:69 +#: ../lib/modules/uidObject.inc:78 +#: ../lib/modules/uidObject.inc:93 +#: ../lib/modules/uidObject.inc:155 +#: ../lib/modules/posixAccount.inc:97 +#: ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:101 +#: ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:327 +#: ../lib/modules/posixAccount.inc:389 +#: ../lib/modules/posixAccount.inc:1098 +#: ../lib/modules/posixAccount.inc:1478 +#: ../lib/modules/nisnetgroup.inc:145 +#: ../lib/modules/nisnetgroup.inc:475 +#: ../lib/modules/inetOrgPerson.inc:77 +#: ../lib/modules/inetOrgPerson.inc:639 +#: ../lib/modules/inetOrgPerson.inc:750 +#: ../lib/modules/inetOrgPerson.inc:1305 +#: ../lib/modules/inetOrgPerson.inc:2182 +#: ../lib/modules/inetOrgPerson.inc:2318 +#: ../lib/modules/passwordSelfReset.inc:673 +#: ../lib/modules/passwordSelfReset.inc:784 +#: ../lib/modules/heimdalKerberos.inc:87 +#: ../lib/modules/heimdalKerberos.inc:168 +#: ../lib/modules/heimdalKerberos.inc:206 +#: ../lib/modules/heimdalKerberos.inc:283 +#: ../lib/modules/heimdalKerberos.inc:669 +msgid "User name" +msgstr "Nome do usuário" + +#: ../lib/modules/selfRegistration.inc:411 +#: ../lib/modules/posixAccount.inc:105 +#: ../lib/modules/inetOrgPerson.inc:79 +msgid "User name already exists!" +msgstr "Nome de usuário já existe!" + +#: ../lib/modules/imapAccess.inc:94 +#: ../lib/modules/imapAccess.inc:125 +msgid "User name attribute" +msgstr "Atributo de nome de usuário" + +#: ../lib/modules/mitKerberos.inc:275 +#: ../lib/modules/mitKerberos.inc:276 +#: ../lib/modules/selfRegistration.inc:403 +#: ../lib/modules/account.inc:117 +#: ../lib/modules/account.inc:118 +#: ../lib/modules/account.inc:120 +#: ../lib/modules/zarafaContact.inc:159 +#: ../lib/modules/zarafaContact.inc:160 +#: ../lib/modules/uidObject.inc:78 +#: ../lib/modules/zarafaGroup.inc:194 +#: ../lib/modules/zarafaGroup.inc:195 +#: ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:103 +#: ../lib/modules/zarafaUser.inc:422 +#: ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/nisnetgroup.inc:145 +#: ../lib/modules/inetOrgPerson.inc:77 +#: ../lib/modules/inetOrgPerson.inc:78 +#: ../lib/modules/passwordSelfReset.inc:696 +#: ../lib/modules/passwordSelfReset.inc:847 +#: ../lib/modules/heimdalKerberos.inc:239 +#: ../lib/modules/heimdalKerberos.inc:240 +msgid "User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !" +msgstr "Nome do usuário contém caracteres inválidos. Os caracteres válidos são: a-z, A-Z, 0-9 and .-_ !" + +#: ../lib/modules/posixAccount.inc:101 +msgid "User name in use. Selected next free user name." +msgstr "Nome já está em uso. Selecione o próximo nome de usuário livre." + +#: ../lib/modules/mitKerberos.inc:110 +#: ../lib/modules/account.inc:95 +#: ../lib/modules/inetOrgPerson.inc:751 +#: ../lib/modules/heimdalKerberos.inc:88 +msgid "User name of the user who should be created. Valid characters are: a-z,A-Z,0-9, @.-_." +msgstr "Nome de usuário do usuário que deve ser criado. Os caracteres válidos são: a-z, A-Z, 0-9, e @.-_ ." + +#: ../lib/modules/posixAccount.inc:390 +msgid "User name of the user who should be created. Valid characters are: a-z,A-Z,0-9, @.-_. If user name is already used user name will be expanded with a number. The next free number will be used." +msgstr "Nome de usuário do usuário que deve ser criado. Os caracteres válidos são: a-z, A-Z, 0-9, e @.-_ . Se o nome de usuário já existir, este será expandido com um número. O número livre seguinte será usado." + +#: ../lib/modules/selfRegistration.inc:38 +msgid "User self registration" +msgstr "Auto-registro do usuário" + +#: ../lib/modules/zarafaUser.inc:113 +#: ../lib/modules/zarafaUser.inc:184 +#: ../lib/modules/zarafaUser.inc:294 +#: ../lib/modules/zarafaUser.inc:392 +#: ../lib/modules/zarafaUser.inc:617 +#: ../lib/modules/zarafaUser.inc:1309 +#: ../lib/modules/zarafaUser.inc:1398 +msgid "User server" +msgstr "Servidor do usuário" + +#: ../lib/types/user.inc:53 +#: ../lib/modules/posixAccount.inc:77 +#: ../lib/modules/posixAccount.inc:78 +#: ../lib/modules/posixAccount.inc:81 +#: ../lib/modules/posixAccount.inc:178 +#: ../lib/modules/zarafaUser.inc:158 +#: ../lib/modules/sudoRole.inc:63 +#: ../lib/modules/sudoRole.inc:87 +#: ../lib/modules/sudoRole.inc:134 +#: ../lib/modules/sudoRole.inc:173 +#: ../lib/modules/sudoRole.inc:182 +#: ../lib/modules/sudoRole.inc:264 +#: ../lib/modules/sudoRole.inc:687 +msgid "Users" +msgstr "Usuários" + +#: ../lib/modules/zarafaContact.inc:70 +#: ../lib/modules/zarafaGroup.inc:84 +#: ../lib/modules/zarafaUser.inc:90 +msgid "Users or groups that may directly send email as this user." +msgstr "Usuários ou grupos que podem enviar diretamente e-mail como este usuário." + +#: ../lib/modules/posixGroup.inc:408 +msgid "Users who are member of the current group. Users who have set their primary group to this group will not be shown." +msgstr "Usuários que são membro do grupo atual. Os usuários que ajustaram seu grupo primário para este grupo não serão mostrados." + +#: ../lib/modules/posixGroup.inc:412 +msgid "Users who will become member of the current group. User names are separated by semicolons." +msgstr "Usuários que se tornarão membros do grupo atual. Os nomes de usuário são separados por semi-colunas." + +#: ../templates/tests/lamdaemonTest.php:207 +#, php-format +msgid "Using %s as lamdaemon remote server." +msgstr "Usando %s como um servidor remoto lamdaemon." + +#: ../templates/tests/lamdaemonTest.php:229 +#, php-format +msgid "Using %s to connect to remote server." +msgstr "Usando %s para conectar-se ao servidor remoto." + +#: ../lib/modules/posixAccount.inc:345 +msgid "Usually, users are not added to groups as memberUid if they have this group as primary group. If your application ignores primary groups then you can select this option to override this behaviour." +msgstr "Normalmente, os usuários não são adicionados aos grupos como memberUid se eles têm esse grupo como grupo primário. Se seu aplicativo ignora grupos primários, então você pode selecionar esta opção para substituir esse comportamento." + +#: ../templates/3rdParty/pla/lib/export_functions.php:543 +msgid "VCARD 2.1 Export" +msgstr "Exportar VCARD 2.1" + +#: ../help/help.inc:88 +msgid "Valid users" +msgstr "Usuários válidos" + +#: ../lib/modules/imapAccess.inc:76 +#: ../lib/modules/imapAccess.inc:112 +msgid "Validate server certificate" +msgstr "Validar certificado do servidor" + +#: ../lib/modules/customFields.inc:92 +#: ../lib/modules/customFields.inc:1157 +msgid "Validation expression" +msgstr "Validação de expressão" + +#: ../lib/modules/customFields.inc:96 +#: ../lib/modules/customFields.inc:1162 +msgid "Validation message" +msgstr "Mensagem de validação" + +#: ../lib/modules/customFields.inc:1684 +msgid "Value" +msgstr "Valor" + +#: ../lib/modules/customFields.inc:100 +#: ../lib/modules/customFields.inc:1520 +msgid "Value for \"checked\"" +msgstr "Valor para \"marcado\"" + +#: ../lib/modules/customFields.inc:104 +#: ../lib/modules/customFields.inc:1526 +msgid "Value for \"unchecked\"" +msgstr "Valor para \"desmarcado\"" + +#: ../lib/modules/customFields.inc:124 +#: ../lib/modules/customFields.inc:1680 +msgid "Value mapping" +msgstr "Mapeamento de valor" + +#: ../templates/3rdParty/pla/lib/import_functions.php:512 +msgid "Value to delete does not exist in DN" +msgstr "Valor a excluir não existe no DN" + +#: ../lib/modules/puppetClient.inc:93 +#: ../lib/modules/puppetClient.inc:97 +#: ../lib/modules/puppetClient.inc:139 +#: ../lib/modules/puppetClient.inc:149 +#: ../lib/modules/puppetClient.inc:162 +#: ../lib/modules/puppetClient.inc:270 +#: ../lib/modules/puppetClient.inc:434 +msgid "Variables" +msgstr "Variáveis" + +#: ../templates/serverInfo.php:134 +msgid "Vendor name" +msgstr "Nome do fornecedor" + +#: ../templates/serverInfo.php:140 +msgid "Vendor version" +msgstr "Versão do vendedor" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +#, php-format +msgid "View %s children" +msgstr "Ver filhos de %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +msgid "View 1 child" +msgstr "Ver 1 filho" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1230 +msgid "View the children of this object" +msgstr "Ver filhos deste objeto" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1028 +msgid "Viewing entry in read-only mode." +msgstr "Ver esta entrada nomodo somente-leitura." + +#: ../lib/modules/asteriskVoicemail.inc:110 +#: ../lib/modules/asteriskVoicemail.inc:117 +#: ../lib/modules/asteriskVoicemail.inc:134 +#: ../lib/modules/asteriskVoicemail.inc:187 +#: ../lib/modules/asteriskVoicemail.inc:279 +#: ../lib/modules/asteriskVoicemail.inc:402 +msgid "Voicemail context" +msgstr "Contexto de correio de voz" + +#: ../lib/modules/asteriskVoicemail.inc:87 +msgid "Voicemail mailbox for this account." +msgstr "Caixa de correio de voz para esta conta." + +#: ../templates/login.php:432 +msgid "Want more features? Get LAM Pro!" +msgstr "Quer mais características? Conheça o LAM Pro!" + +#: ../templates/config/mainmanage.php:223 +#: ../templates/3rdParty/pla/lib/page.php:76 +msgid "Warning" +msgstr "Aviso" + +#: ../templates/delete.php:226 +#: ../lib/modules/posixAccount.inc:659 +#: ../lib/modules/posixAccount.inc:679 +#: ../lib/modules/groupOfNamesUser.inc:199 +#: ../lib/modules/groupOfNamesUser.inc:219 +#: ../lib/modules.inc:1799 +#, php-format +msgid "Was unable to add attributes to DN: %s." +msgstr "Inabilitado para adicionar atributos ao DN: %s." + +#: ../lib/modules.inc:1764 +#, php-format +msgid "Was unable to create DN: %s." +msgstr "Inabilitado para criar o DN: %s." + +#: ../templates/delete.php:336 +#: ../templates/delete.php:345 +#, php-format +msgid "Was unable to delete DN: %s." +msgstr "Inabilitado para apagar DN: %s." + +#: ../templates/lists/changePassword.php:680 +#: ../templates/lists/changePassword.php:712 +#: ../templates/lists/changePassword.php:752 +#: ../templates/delete.php:217 +#: ../lib/modules.inc:1782 +#, php-format +msgid "Was unable to modify attributes from DN: %s." +msgstr "Inabilitado para alterar atributos do DN: %s ." + +#: ../templates/delete.php:235 +#: ../lib/modules/posixAccount.inc:664 +#: ../lib/modules/posixAccount.inc:693 +#: ../lib/modules/groupOfNamesUser.inc:204 +#: ../lib/modules/groupOfNamesUser.inc:233 +#: ../lib/modules.inc:1811 +#, php-format +msgid "Was unable to remove attributes from DN: %s." +msgstr "Inabilitado para remover atributos do DN: %s." + +#: ../lib/modules/asteriskExtension.inc:910 +#: ../lib/modules.inc:1745 +#, php-format +msgid "Was unable to rename DN: %s." +msgstr "Inabilitado para renomear o DN: %s." + +#: ../lib/modules/inetOrgPerson.inc:130 +#: ../lib/modules/inetOrgPerson.inc:180 +#: ../lib/modules/inetOrgPerson.inc:315 +#: ../lib/modules/inetOrgPerson.inc:483 +#: ../lib/modules/inetOrgPerson.inc:603 +#: ../lib/modules/inetOrgPerson.inc:738 +#: ../lib/modules/inetOrgPerson.inc:742 +#: ../lib/modules/inetOrgPerson.inc:1725 +#: ../lib/modules/inetOrgPerson.inc:2191 +#: ../lib/modules/inetOrgPerson.inc:2700 +msgid "Web site" +msgstr "Sítio Web" + +#: ../lib/modules/sambaSamAccount.inc:1337 +msgid "Wednesday" +msgstr "Quarta-feira" + +#: ../lib/selfService.inc:365 +msgid "Welcome to LAM self service. Please enter your user name and password." +msgstr "Bem-vindo ao auto-serviço LAM. Digite seu nome de usuário e senha." + +#: ../lib/modules/sambaSamAccount.inc:549 +msgid "Western Europe Time, London, Lisbon" +msgstr "Western Europe Time, London, Lisbon" + +#: ../lib/modules/passwordSelfReset.inc:141 +msgid "What is the name of your favourite pet?" +msgstr "Qual o nome do seu animal de estimação favorito?" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +msgid "When performing a recursive copy, only copy those entries which match this filter." +msgstr "Ao realizar uma cópia recursiva, copiar apenas aquelas entradas que combinam com este filtro." + +#: ../lib/modules/zarafaUser.inc:86 +msgid "When the hard quota limit is reached, email can not be delivered to that user anymore." +msgstr "Quando o limite de cota de disco rígido for alcançado, nenhum e-mail poderá ser entregue ao usuário." + +#: ../help/help.inc:70 +msgid "When using ldaps:// or TLS be sure to use exactly the same IP/domain name as in your certificate!" +msgstr "Quando usar ldaps:// ou TLS, tenha certeza de estar usando exatamente o mesmo IP/nome de domínio do seu certificado!" + +#: ../lib/modules/sambaSamAccount.inc:325 +msgid "Windows domain name of account." +msgstr "Nome da conta no domínio Windows." + +#: ../lib/modules/sambaSamAccount.inc:202 +#: ../lib/modules/sambaSamAccount.inc:455 +#: ../lib/modules/sambaSamAccount.inc:1223 +#: ../lib/modules/sambaSamAccount.inc:1597 +#: ../lib/modules/sambaSamAccount.inc:1737 +#: ../lib/modules/sambaGroupMapping.inc:278 +#: ../lib/modules/sambaGroupMapping.inc:322 +#: ../lib/modules/sambaGroupMapping.inc:391 +msgid "Windows group" +msgstr "Grupo do Windows" + +#: ../lib/modules/sambaGroupMapping.inc:360 +msgid "Windows group name" +msgstr "Nome do grupo Windows" + +#: ../lib/modules/sambaGroupMapping.inc:373 +msgid "Windows group type." +msgstr "Tipo do grupo do Windows" + +#: ../lib/modules/sambaSamAccount.inc:382 +msgid "Windows password hashes are saved by default as NT and LM hashes. LM hashes are insecure and only needed for old versions of Windows. You should disable them unless you really need them." +msgstr "Hashes de senha do Windows são salvas por padrão como Windows NT hash e LM hash. Hashes LM são inseguros e necessário apenas para versões antigas do Windows. Você deve desativá-las a menos que você realmente precise deles." + +#: ../lib/modules/sambaSamAccount.inc:308 +msgid "Windows primary group" +msgstr "Grupo primário do Windows" + +#: ../lib/modules/sambaSamAccount.inc:311 +msgid "Windows primary group SID" +msgstr "SID do grupo primário do Windows" + +#: ../lib/modules/sambaGroupMapping.inc:369 +msgid "Windows-Domain name of group." +msgstr "Nome do grupo no domínio Windows." + +#: ../lib/modules/inetOrgPerson.inc:1747 +msgid "Work details" +msgstr "Detalhes de trabalho" + +#: ../lib/modules/sambaDomain.inc:139 +msgid "Workgroup" +msgstr "Grupo de trabalho" + +#: ../lib/modules/sambaSamAccount.inc:226 +#: ../lib/modules/sambaSamAccount.inc:354 +#: ../lib/modules/sambaSamAccount.inc:1479 +#: ../lib/modules/sambaSamAccount.inc:1757 +msgid "Working directory" +msgstr "Diretório/pasta de trabalho" + +#: ../lib/modules/sambaSamAccount.inc:355 +msgid "Working directory of initial program." +msgstr "Diretório de trabalho do programa inicial." + +#: ../templates/config/confmain.php:306 +msgid "Write" +msgstr "Gravar" + +#: ../templates/config/confmain.php:259 +msgid "Write access" +msgstr "Acesso de escrita" + +#: ../templates/login.php:509 +#: ../templates/login.php:567 +#: ../templates/selfService/selfServiceLogin.php:110 +#: ../templates/selfService/selfServiceLogin.php:127 +msgid "Wrong password/user name combination. Please try again." +msgstr "Combinação de usuário/senha inválida. Por favor tente novamente." + +#: ../lib/modules/imapAccess.inc:168 +msgid "Wrong quota format. Quota must be numeric." +msgstr "Formato de quota inválido. Quota deve ser numérico." + +#: ../templates/schema/schema.php:153 +#: ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 +#: ../templates/schema/schema.php:205 +#: ../lib/modules/imapAccess.inc:112 +msgid "Yes" +msgstr "Sim" + +#: ../lib/modules/posixGroup.inc:504 +msgid "You are using a capital letters. This can cause problems because Windows isn't case-sensitive." +msgstr "Você está usando letras maiúsculas. Isto pode causar problemas porque o Windows não é sensitivo a maiúsculas e minúsculas." + +#: ../lib/modules/account.inc:119 +msgid "You are using a capital letters. This can cause problems because windows isn't case-sensitive." +msgstr "Você está usando letras maiúsculas. Isto pode causar problemas porque o Windows não é sensitivo a maiúsculas e minúsculas." + +#: ../lib/modules/posixAccount.inc:97 +#: ../lib/modules/posixAccount.inc:99 +msgid "You are using capital letters. This can cause problems because Windows is not case-sensitive." +msgstr "Você está usando letras maiúsculas. Isto pode causar problemas porque o Windows não é sensitivo a maiúsculas e minúsculas." + +#: ../lib/lists.inc:990 +#, php-format +msgid "You can download your PDF files {link=%s}{color=#d2131a}here{endcolor}{endlink}." +msgstr "Você pode baixar seus arquivos PDF {link=%s}{color=#d2131a}aqui{endcolor}{endlink}." + +#: ../help/help.inc:104 +msgid "You can specify if LAM allows full write access, password changes or only read access." +msgstr "Você pode especificar se o LAM permite acesso completo a gravação, as alterações de senha ou apenas acesso de leitura." + +#: ../lib/modules/zarafaDynamicGroup.inc:77 +#: ../lib/modules/zarafaContact.inc:66 +#: ../lib/modules/zarafaGroup.inc:80 +#: ../lib/modules/zarafaAddressList.inc:65 +#: ../lib/modules/zarafaUser.inc:70 +msgid "You can use this to temporarily deactivate the Zarafa extension." +msgstr "Você pode usar isso para desativar temporariamente a extensão Zarafa." + +#: ../lib/modules/passwordSelfReset.inc:108 +#: ../lib/modules/passwordSelfReset.inc:118 +#: ../help/help.inc:213 +msgid "You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. @@uid@@ for the user name)." +msgstr "Você pode usar caracteres coringas para atributos LDAP na forma @@attribute@@ (Ex.: @@uid@@ para o nome do usuário)." + +#: ../lib/modules/customScripts.inc:58 +#: ../lib/modules/customScripts.inc:71 +msgid "You can use wildcards in the format $wildcard$ which are replaced by the LDAP attribute with the same name. For multi-value attributes the values will be separated by commas." +msgstr "Você pode usar caracteres coringa no formato $coringa$ que é substituído pelo atributo LDAP com o mesmo nome. Para sistemas com valores multi-atributos, os valores serão separados por vírgulas." + +#: ../lib/modules/zarafaContact.inc:163 +msgid "You cannot add the Zarafa and Zarafa contact extension at the same time." +msgstr "Você não poderá adicionar a extensão Zarafa e Contato Zarafa simultâneamente." + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:52 +msgid "You cannot perform updates while server is in read-only mode" +msgstr "Você não pode executar atualizações enquanto o servidor está em modo somente leitura" + +#: ../templates/3rdParty/pla/htdocs/rename.php:26 +msgid "You cannot rename an entry which has child entries." +msgstr "Você não pode renomear uma entrada que possui entradas-filho." + +#: ../templates/config/confmain.php:479 +msgid "You cannot use SSL and TLS encryption at the same time. Please use either \"ldaps://\" or TLS." +msgstr "Você não poderá usar criptografia SSL e TLS simultâneamente. Por favor use \"ldaps://\" ou TLS." + +#: ../templates/3rdParty/pla/htdocs/rename.php:32 +msgid "You did not change the RDN" +msgstr "Você não fez nenhuma mudança no RDN." + +#: ../templates/tests/schemaTest.php:61 +msgid "You do not have the required access rights or the LDAP schema is not published by your server." +msgstr "Você não tem os direitos de acesso necessários ou o esquema do LDAP não está publicado pelo seu servidor." + +#: ../lib/modules/dhcp_settings.inc:294 +#: ../lib/modules/dhcp_settings.inc:295 +msgid "You entered one or more invalid DNS servers." +msgstr "Você informou um ou mais servidores de DNS inválido(s)." + +#: ../templates/3rdParty/pla/lib/Template.php:417 +#: ../templates/3rdParty/pla/lib/Template.php:504 +msgid "You left the attribute value blank. Please go back and try again." +msgstr "Você deixou um espaço em branco no valor do atributo. Volte por favor à página anterior e tente outra vez." + +#: ../templates/3rdParty/pla/htdocs/create.php:51 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:45 +#, php-format +msgid "You left the value blank for required attribute (%s)." +msgstr "Você deixou um espaço em branco no valor do atributo requerido: (%s)." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:171 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:209 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:133 +msgid "You made no changes" +msgstr "Você não fez nenhuma mudança." + +#: ../lib/modules/posixAccount.inc:105 +#: ../lib/modules/posixAccount.inc:106 +#, php-format +msgid "You might want to use %s instead of %s." +msgstr "Você pode querer usar %s ao invés de %s." + +#: ../templates/3rdParty/pla/lib/import_functions.php:95 +msgid "You must either upload a file or provide an import in the text box." +msgstr "Você deve fazer envio de um arquivo ou fornecer uma importação na caixa de texto." + +#: ../lib/modules/groupOfNames.inc:146 +#: ../lib/modules/groupOfNames.inc:147 +msgid "You need to add at least one member to this group." +msgstr "Você necessita adicionar pelo menos um membro para este grupo." + +#: ../lib/modules/passwordSelfReset.inc:233 +msgid "You specified an answer but no security question." +msgstr "Você especificou uma resposta, mas não a pergunta de segurança." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1136 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "You will be prompted to confirm this decision" +msgstr "Você será solicitado a confirmar esta decisão" + +#: ../lib/modules/imapAccess.inc:164 +msgid "Your IMAP domains and email address domain do not match." +msgstr "Seus domínios IMAP e o domínio do endereço de e-mail não coincidem." + +#: ../templates/tests/lamdaemonTest.php:234 +#, php-format +msgid "Your LAM admin user (%s) must be a valid Unix account to work with lamdaemon!" +msgstr "Seu usuário administrador LAM (%s) deve ser uma conta Unix válida para trabalhar com lamdaemon." + +#: ../lib/lamdaemon.inc:61 +#: ../lib/lamdaemon.inc:66 +msgid "Your LAM admin user must be a valid Unix account to work with lamdaemon!" +msgstr "Seu usuário administrador LAM deve ser uma conta Unix válida para trabalhar com lamdaemon." + +#: ../lib/modules/imapAccess.inc:166 +msgid "Your LAM login password was not accepted by the IMAP server." +msgstr "Sua senha de login LAM não foi aceita pelo servidor IMAP." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:125 +msgid "Your PHP configuration has disabled file uploads. Please check php.ini before proceeding." +msgstr "Sua configuração PHP está desabilitando carga de arquivos. Por favor cheque o php.ini antes de prosseguir." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:16 +msgid "Your PHP.INI does not have file_uploads = ON. Please enable file uploads in PHP." +msgstr "Seu PHP.INI não está com a opção file_uploads=ON. Por favor habilite envio de arquivos no PHP." + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:359 +msgid "Your changes cannot be saved until you make the file writable for the webserver user." +msgstr "Você não poderá salvar as alterações enquanto não permitir que o arquivo seja gravável pelo usuário do servidor web." + +#: ../lib/modules/selfRegistration.inc:596 +msgid "Your new account was successfully created. Please return to login to change your user data." +msgstr "Sua nova conta foi criada com sucesso. Por favor, entre no sistema para alterar seus dados de usuário." + +#: ../lib/security.inc:145 +msgid "Your session expired, click here to go back to the login page." +msgstr "Sua sessão expirou, clique aqui para voltar à página de início de sessão." + +#: ../templates/login.php:265 +msgid "Your session expired, please log in again." +msgstr "Sua sessão expirou, por favor inicie uma nova sessão." + +#: ../templates/login.php:270 +#: ../templates/login.php:275 +#: ../templates/login.php:284 +msgid "Your settings were successfully saved." +msgstr "Suas configurações foram salvas com sucesso." + +#: ../lib/modules/inetOrgPerson.inc:517 +#: ../lib/modules/inetOrgPerson.inc:549 +msgid "YourCompany" +msgstr "SuaEmpresa" + +#: ../lib/modules/zarafaGroup.inc:49 +#: ../lib/modules/zarafaUser.inc:49 +#: ../lib/modules/zarafaServer.inc:49 +msgid "Zarafa" +msgstr "Zarafa" + +#: ../lib/modules/zarafaAddressList.inc:44 +msgid "Zarafa address list" +msgstr "Lista de endereços do Zarafa" + +#: ../lib/types/zarafaAddressListType.inc:53 +#: ../lib/types/zarafaAddressListType.inc:62 +msgid "Zarafa address lists" +msgstr "Listas de endereços do Zarafa" + +#: ../lib/modules/zarafaContact.inc:49 +msgid "Zarafa contact" +msgstr "Contato Zarafa" + +#: ../lib/modules/zarafaDynamicGroup.inc:44 +msgid "Zarafa dynamic group" +msgstr "Grupo dinâmico do Zarafa" + +#: ../lib/types/zarafaDynamicGroupType.inc:53 +#: ../lib/types/zarafaDynamicGroupType.inc:62 +msgid "Zarafa dynamic groups" +msgstr "Grupos dinâmicos do Zarafa" + +#: ../lib/modules/zarafaUser.inc:145 +#: ../lib/modules/zarafaUser.inc:149 +msgid "Zarafa will store the user's archives on these servers." +msgstr "O Zarafa irá guardar os arquivos de usuários nestes servidores." + +#: ../lib/modules/ddns.inc:108 +#: ../lib/modules/ddns.inc:119 +#: ../lib/modules/ddns.inc:134 +#: ../lib/modules/ddns.inc:380 +#: ../lib/modules/ddns.inc:410 +msgid "Zone names" +msgstr "Nomes de zona" + +#: ../lib/modules/ddns.inc:109 +msgid "Zone names for the DNS server (e.g. company.local)." +msgstr "Zona de nomes para o servidor DNS (por exemplo: empresa.local)." + +#: ../lib/modules/sambaSamAccount.inc:481 +msgid "\\\\server\\homes\\smiller" +msgstr "\\\\servidor\\homes\\smiller" + +#: ../lib/modules/sambaSamAccount.inc:489 +msgid "\\\\server\\profiles\\smiller" +msgstr "\\\\servidor\\homes\\smiller" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "add value" +msgstr "adicionar valor" + +#: ../lib/modules/zarafaDynamicGroup.inc:107 +#: ../lib/modules/posixGroup.inc:380 +#: ../lib/modules/zarafaAddressList.inc:95 +#: ../lib/modules/nisnetgroup.inc:107 +#: ../lib/modules/groupOfNames.inc:94 +msgid "adminstrators" +msgstr "administradores" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:112 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:95 +msgid "attribute deleted" +msgstr "atributo apagado" + +#: ../lib/modules/sudoRole.inc:123 +msgid "backupRootFileSystem" +msgstr "Backup de Sistema de Arquivos Raiz" + +#: ../templates/3rdParty/pla/lib/functions.php:2298 +msgid "browse" +msgstr "Visualizar" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "bytes" +msgstr "bytes" + +#: ../templates/schema/schema.php:220 +msgid "character" +msgstr "caracter" + +#: ../templates/schema/schema.php:219 +msgid "characters" +msgstr "caracteres" + +#: ../lib/modules/freeRadius.inc:172 +msgid "company.com" +msgstr "empresa.com" + +#: ../templates/3rdParty/pla/lib/PageRender.php:619 +#: ../templates/3rdParty/pla/lib/PageRender.php:988 +msgid "confirm" +msgstr "confirmar" + +#: ../help/help.inc:82 +msgid "dc=yourcompany,dc=com" +msgstr "dc=suaempresa,dc=com" + +#: ../lib/modules/ppolicyUser.inc:111 +msgid "default" +msgstr "padrão" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:205 +msgid "delete" +msgstr "apagar" + +#: ../templates/3rdParty/pla/lib/PageRender.php:677 +msgid "delete attribute" +msgstr "apagar atributo" + +#: ../lib/modules/sambaSamAccount.inc:1500 +#: ../lib/modules/sambaSamAccount.inc:1777 +#: ../lib/modules/zarafaUser.inc:622 +#: ../lib/modules/zarafaUser.inc:1355 +#: ../lib/modules/zarafaUser.inc:1402 +msgid "disabled" +msgstr "desabilitado" + +#: ../lib/modules/sambaSamAccount.inc:1511 +#: ../lib/modules/sambaSamAccount.inc:1788 +msgid "disconnect" +msgstr "desconectado" + +#: ../templates/3rdParty/pla/lib/PageRender.php:664 +msgid "download value" +msgstr "descarregar valor" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:206 +msgid "edit" +msgstr "editar" + +#: ../lib/modules/zarafaUser.inc:622 +#: ../lib/modules/zarafaUser.inc:1350 +#: ../lib/modules/zarafaUser.inc:1402 +msgid "enabled" +msgstr "habilitado" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:481 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:307 +msgid "export" +msgstr "exportar" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:123 +msgid "false" +msgstr "falso" + +#: ../lib/modules/ppolicy.inc:37 +msgid "force" +msgstr "forçar" + +#: ../lib/modules/sambaSamAccount.inc:1519 +#: ../lib/modules/sambaSamAccount.inc:1796 +msgid "from any client" +msgstr "de qualquer cliente" + +#: ../lib/modules/sambaSamAccount.inc:1520 +#: ../lib/modules/sambaSamAccount.inc:1797 +msgid "from previous client only" +msgstr "somente do cliente anterior" + +#: ../lib/modules/posixAccount.inc:239 +#: ../lib/modules/posixAccount.inc:289 +#: ../lib/modules/nisnetgroup.inc:121 +#: ../lib/modules/groupOfNamesUser.inc:66 +msgid "group01,group02" +msgstr "grupo1,grupo2" + +#: ../lib/modules/freeRadius.inc:180 +msgid "group01;group02" +msgstr "grupo1;grupo2" + +#: ../lib/modules/zarafaDynamicGroup.inc:121 +#: ../lib/modules/zarafaGroup.inc:134 +msgid "group1@company.com,group2@company.com" +msgstr "grupo1@suaempresa.com,grupo2@suaempresa.com" + +#: ../lib/modules/zarafaDynamicGroup.inc:115 +#: ../lib/modules/zarafaGroup.inc:128 +msgid "group@company.com" +msgstr "grupo@empresa.com" + +#: ../templates/3rdParty/pla/lib/PageRender.php:471 +msgid "hint" +msgstr "dica" + +#: ../lib/modules/quota.inc:191 +#: ../lib/modules/quota.inc:193 +msgid "hours" +msgstr "horas" + +#: ../lib/modules/inetOrgPerson.inc:485 +msgid "http://www.company.com" +msgstr "http://www.empresa.com" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:294 +msgid "import" +msgstr "importar" + +#: ../lib/modules/sambaSamAccount.inc:1504 +#: ../lib/modules/sambaSamAccount.inc:1781 +msgid "input off, notify off" +msgstr "entrada desligada, notificação desligada" + +#: ../lib/modules/sambaSamAccount.inc:1503 +#: ../lib/modules/sambaSamAccount.inc:1780 +msgid "input off, notify on" +msgstr "entrada desligada, notificação ligada" + +#: ../lib/modules/sambaSamAccount.inc:1502 +#: ../lib/modules/sambaSamAccount.inc:1779 +msgid "input on, notify off" +msgstr "entrada ligada, notificação desligada" + +#: ../lib/modules/sambaSamAccount.inc:1501 +#: ../lib/modules/sambaSamAccount.inc:1778 +msgid "input on, notify on" +msgstr "entrada ligada, notificação ligada" + +#: ../help/help.inc:64 +msgid "ldap://localhost:389 connects to localhost using a standard LDAP connection on port 389" +msgstr "ldap://localhost:389 conecta ao localhost usindo uma conexão LDAP padrão na porta 389" + +#: ../help/help.inc:66 +msgid "ldaps://ldap.domain.com connects to ldap.domain.com using an encrypted LDAP connection." +msgstr "ldaps://ldap.domain.com conecta ao ldap.domain.com usando uma conexão LDAP criptografada." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:100 +msgid "list" +msgstr "listar" + +#: ../templates/3rdParty/pla/lib/config_default.php:494 +#: ../templates/3rdParty/pla/lib/ds.php:318 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:529 +msgid "login" +msgstr "Início de sessão" + +#: ../lib/modules/posixAccount.inc:314 +msgid "machines" +msgstr "máquinas" + +#: ../lib/modules/inetLocalMailRecipient.inc:107 +msgid "mail.yourdomain.org" +msgstr "mail.seudominio.org" + +#: ../lib/modules/sambaSamAccount.inc:400 +#: ../lib/modules/sambaSamAccount.inc:524 +msgid "mydomain" +msgstr "meudomínio" + +#: ../lib/modules/sambaSamAccount.inc:457 +msgid "mygroup" +msgstr "meugrupo" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:504 +msgid "new" +msgstr "novo" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:467 +#: ../lib/modules/zarafaDynamicGroup.inc:470 +#: ../lib/modules/zarafaContact.inc:533 +#: ../lib/modules/zarafaGroup.inc:632 +#: ../lib/modules/zarafaGroup.inc:639 +#: ../lib/modules/zarafaGroup.inc:642 +#: ../lib/modules/zarafaAddressList.inc:328 +#: ../lib/modules/zarafaAddressList.inc:331 +#: ../lib/modules/sambaSamAccount.inc:568 +#: ../lib/modules/sambaSamAccount.inc:1745 +#: ../lib/modules/sambaSamAccount.inc:1753 +#: ../lib/modules/sambaSamAccount.inc:1763 +#: ../lib/modules/sambaSamAccount.inc:1768 +#: ../lib/modules/sambaSamAccount.inc:1773 +#: ../lib/modules/zarafaUser.inc:605 +#: ../lib/modules/zarafaUser.inc:1266 +#: ../lib/modules/zarafaUser.inc:1311 +#: ../lib/modules/zarafaUser.inc:1322 +#: ../lib/modules/zarafaUser.inc:1328 +#: ../lib/modules/ppolicy.inc:35 +#: ../lib/modules/ppolicy.inc:468 +#: ../lib/modules/ppolicy.inc:484 +#: ../lib/modules/ppolicy.inc:489 +#: ../lib/modules/ppolicy.inc:496 +#: ../lib/modules/ppolicy.inc:499 +#: ../lib/modules/generalInformation.inc:93 +#: ../lib/modules/zarafaServer.inc:371 +msgid "no" +msgstr "não" + +#: ../templates/3rdParty/pla/lib/functions.php:1902 +msgid "no description available" +msgstr "Sem descrição disponível" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:68 +msgid "no entries" +msgstr "Não existem entradas" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:84 +msgid "no new attributes available for this entry" +msgstr "Não existem novos atributos disponíveis para esta entrada" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:135 +msgid "no new binary attributes available for this entry" +msgstr "Não existem novos atributos binários disponíveis para esta entrada" + +#: ../templates/schema/schema.php:160 +#: ../templates/schema/schema.php:229 +#: ../templates/schema/schema.php:240 +#: ../templates/schema/schema.php:289 +#: ../templates/schema/schema.php:355 +#: ../templates/schema/schema.php:370 +#: ../templates/schema/schema.php:404 +#: ../templates/schema/schema.php:426 +#: ../templates/3rdParty/pla/lib/functions.php:2602 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1573 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1581 +msgid "none" +msgstr "nenhum" + +#: ../templates/3rdParty/pla/lib/PageRender.php:1109 +msgid "none, remove value" +msgstr "nenhum, remove valor" + +#: ../templates/schema/schema.php:216 +msgid "not applicable" +msgstr "não aplicável" + +#: ../templates/schema/schema.php:167 +#: ../templates/schema/schema.php:172 +#: ../templates/schema/schema.php:177 +#: ../templates/schema/schema.php:210 +msgid "not specified" +msgstr "não especificado" + +#: ../help/help.inc:76 +msgid "ou=People,dc=yourcompany,dc=com will read and store all accounts in this subtree." +msgstr "ou=People,dc=suaempresa,dc=com onde será lido e armazenado todas as contas nesta sub-árvore." + +#: ../lib/modules/eduPerson.inc:182 +#: ../lib/modules/eduPerson.inc:188 +#: ../lib/modules/eduPerson.inc:194 +msgid "ou=accounts,dc=yourdomain,dc=org" +msgstr "ou=contas,dc=suaempresa,dc=com" + +#: ../lib/modules/posixAccount.inc:300 +msgid "pc01$" +msgstr "pc01$" + +#: ../lib/modules/posixAccount.inc:321 +msgid "pc01,Room 2.34" +msgstr "pc01,Sala 2.34" + +#: ../lib/modules/hostObject.inc:86 +msgid "pc01,pc02" +msgstr "pc01,pc02" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +msgid "pixels" +msgstr "pixels" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:54 +msgid "read only" +msgstr "somente leitura" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:251 +msgid "refresh" +msgstr "atualizar" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2126 +msgid "rename" +msgstr "renomear" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 +#: ../lib/html.inc:634 +#: ../lib/html.inc:1401 +#: ../lib/html.inc:1913 +msgid "required" +msgstr "requerido" + +#: ../lib/modules/sambaSamAccount.inc:1512 +#: ../lib/modules/sambaSamAccount.inc:1789 +msgid "reset" +msgstr "limpar" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:237 +msgid "search" +msgstr "pesquisa" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:472 +msgid "seconds" +msgstr "segundos" + +#: ../lib/modules/mitKerberos.inc:232 +#: ../lib/modules/asteriskAccount.inc:389 +#: ../lib/modules/posixGroup.inc:371 +#: ../lib/modules/sambaSamAccount.inc:412 +#: ../lib/modules/posixAccount.inc:267 +#: ../lib/modules/inetOrgPerson.inc:2328 +#: ../lib/modules/asteriskVoicemail.inc:158 +#: ../lib/modules/heimdalKerberos.inc:201 +msgid "secret" +msgstr "secreto" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1263 +msgid "select the rdn attribute" +msgstr "selecione o atributo RDN" + +#: ../lib/modules/mitKerberos.inc:201 +#: ../lib/modules/uidObject.inc:62 +#: ../lib/modules/posixAccount.inc:212 +#: ../lib/modules/inetOrgPerson.inc:2320 +#: ../lib/modules/heimdalKerberos.inc:170 +#: ../lib/modules/nisMailAlias.inc:91 +msgid "smiller" +msgstr "smiller" + +#: ../lib/modules/inetLocalMailRecipient.inc:95 +msgid "smiller@otherdomain.org" +msgstr "smiller@outrodominio.org" + +#: ../lib/modules/inetLocalMailRecipient.inc:101 +msgid "smiller@yourdomain.org" +msgstr "smiller@seudominio.org" + +#: ../lib/modules/ldapPublicKey.inc:76 +msgid "ssh-dss 234234 user@host" +msgstr "ssh-dss 234234 usuario@host" + +#: ../templates/3rdParty/pla/lib/PageRender.php:882 +msgid "structural" +msgstr "estrutural" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:102 +msgid "table" +msgstr "tabela" + +#: ../lib/modules/asteriskExtension.inc:147 +msgid "test" +msgstr "teste" + +#: ../lib/modules/asteriskExtension.inc:167 +msgid "test-start" +msgstr "iniciar-test" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:122 +msgid "true" +msgstr "verdadeiro" + +#: ../lib/modules/ipHost.inc:92 +#: ../lib/modules/inetOrgPerson.inc:389 +#: ../lib/modules/aliasEntry.inc:64 +msgid "uid=smiller,ou=People,dc=company,dc=com" +msgstr "uid=smiller,ou=Usuarios,dc=suaempresa,dc=com" + +#: ../lib/modules/posixGroup.inc:365 +msgid "user01,user02,user03" +msgstr "usuario01,usuario02,usuario03" + +#: ../lib/modules/qmailUser.inc:266 +#: ../lib/modules/qmailUser.inc:272 +#: ../lib/modules/qmailUser.inc:294 +#: ../lib/modules/eduPerson.inc:143 +#: ../lib/modules/inetOrgPerson.inc:477 +#: ../lib/modules/asteriskVoicemail.inc:171 +msgid "user@company.com" +msgstr "usuario@empresa.com" + +#: ../lib/modules/posixAccount.inc:232 +msgid "users" +msgstr "usuários" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:59 +msgid "view entries" +msgstr "ver entradas" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +msgid "with " +msgstr "com" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:465 +#: ../lib/modules/zarafaDynamicGroup.inc:472 +#: ../lib/modules/zarafaContact.inc:535 +#: ../lib/modules/zarafaGroup.inc:634 +#: ../lib/modules/zarafaGroup.inc:637 +#: ../lib/modules/zarafaGroup.inc:644 +#: ../lib/modules/zarafaAddressList.inc:326 +#: ../lib/modules/zarafaAddressList.inc:333 +#: ../lib/modules/sambaSamAccount.inc:568 +#: ../lib/modules/sambaSamAccount.inc:1743 +#: ../lib/modules/sambaSamAccount.inc:1751 +#: ../lib/modules/sambaSamAccount.inc:1761 +#: ../lib/modules/sambaSamAccount.inc:1766 +#: ../lib/modules/sambaSamAccount.inc:1771 +#: ../lib/modules/zarafaUser.inc:605 +#: ../lib/modules/zarafaUser.inc:1268 +#: ../lib/modules/zarafaUser.inc:1314 +#: ../lib/modules/zarafaUser.inc:1324 +#: ../lib/modules/zarafaUser.inc:1330 +#: ../lib/modules/ppolicy.inc:36 +#: ../lib/modules/ppolicy.inc:486 +#: ../lib/modules/ppolicy.inc:491 +#: ../lib/modules/ppolicy.inc:494 +#: ../lib/modules/ppolicy.inc:501 +#: ../lib/modules/inetOrgPerson.inc:541 +#: ../lib/modules/generalInformation.inc:95 +#: ../lib/modules/zarafaServer.inc:373 +msgid "yes" +msgstr "sim" + +#~ msgid "Country" +#~ msgstr "País" +#~ msgid "Country name is invalid!" +#~ msgstr "Nome do país inválido!" +#~ msgid "Free/Busy interval" +#~ msgstr "Intervalo livre/ocupado" +#~ msgid "Free/Busy interval must be a number!" +#~ msgstr "Intervalo livre/ocupado deve ser um número!" +#~ msgid "Germany" +#~ msgstr "Germany" +#~ msgid "Mail quota" +#~ msgstr "Quota de correio eletrônico" +#~ msgid "Mail quota must be a number!" +#~ msgstr "Quota de correio eletrônico deve ser um número!" +#~ msgid "" +#~ "The Cyrus mail quota for users in MBytes, leave blank for unlimited space." +#~ msgstr "" +#~ "A quota, em MBytes, de mensagens do Cyrus para usuários, deixe em branco " +#~ "para espaço ilimitado." +#~ msgid "The country name of the user." +#~ msgstr "O nome do país do usuário." +#~ msgid "" +#~ "This is the time limit (in days) for other users who want to check future " +#~ "appointments. If you leave this blank the default (60 days) will be set." +#~ msgstr "" +#~ "Este é o limite de tempo (em dias) para outros usuários que querem " +#~ "verificar as nomeações futuras. Se você deixar em branco o padrão (60 " +#~ "dias) será definido." +#~ msgid "YourCompany, Human Resources" +#~ msgstr "SuaEmpresa, Recursos Humanos" +#~ msgid "%s DHCP(s) found" +#~ msgstr "%s cliente(s) DHCP(s) encontrado(s)" +#~ msgid "%s NIS object(s) found" +#~ msgstr "%s objeto(s) NIS encontrado(s)." +#~ msgid "%s address list(s) found" +#~ msgstr "%s lista de endereço(s) encontrado(s)." +#~ msgid "%s alias(es) found" +#~ msgstr "%s apelido(s) encontrado(s)." +#~ msgid "%s automount entry(ies) found" +#~ msgstr "%s entrada(s) de ponto(s) de montagem encontrada(s)" +#~ msgid "%s domain(s) found" +#~ msgstr "%s domínio(s) encontrado(s)." +#~ msgid "%s extension(s) found" +#~ msgstr "%s extensão(ões) encontrada(s)." +#~ msgid "%s group(s) found" +#~ msgstr "%s grupo(s) encontrado(s)." +#~ msgid "%s host(s) found" +#~ msgstr "%s host(s) encontrado(s)." +#~ msgid "%s object(s) found" +#~ msgstr "%s objeto(s) encontrado(s)." +#~ msgid "%s policy(ies) found" +#~ msgstr "%s políticas(s) encontrada(s)." +#~ msgid "%s sudo role(s) found" +#~ msgstr "%s regra(s) \"sudo\" encontrada(s)." +#~ msgid "%s user(s) found" +#~ msgstr "%s usuário(s) encontrado(s)." +#~ msgid "Add phpGroupWare extension" +#~ msgstr "Adicionar uma extensão phpGroupWare" +#~ msgid "Compress" +#~ msgstr "Compressão" +#~ msgid "Delete DHCP(s)" +#~ msgstr "Apagar host(s) DHCP" +#~ msgid "Delete host(s)" +#~ msgstr "Apagar host(s)" +#~ msgid "Delete object" +#~ msgstr "Apagar objeto" +#~ msgid "Delete user(s)" +#~ msgstr "Apagar usuário(s)" +#~ msgid "Here you can specify if the account is active or inactive." +#~ msgstr "Aqui você pode especificar se as contas estão ativas ou inativas." +#~ msgid "Host(s)" +#~ msgstr "Host(s)" +#~ msgid "" +#~ "If you set this to \"true\" then the phpGroupware extension will be added." +#~ msgstr "Se habilitado, a extensão phpGroupware será adicionada." +#~ msgid "" +#~ "In order to add these objectClass(es) to this entry, you must specify " +#~ "%s new attributes that this object class requires." +#~ msgstr "" +#~ "A fim de adicionar esta(s) classe(s) de objeto(s) para esta entrada, você " +#~ "deve especificar atributos % s novos que esta classe de objeto " +#~ "requer." +#~ msgid "Last login from" +#~ msgstr "Último login em" +#~ msgid "No extension(s) found!" +#~ msgstr "Nenhuma extensão encontrada!" +#~ msgid "Please enter \"active\" or \"inactive\"." +#~ msgstr "Por favor informe \"ativo\" ou \"inativo\"." +#~ msgid "Reenter new master password" +#~ msgstr "Redigite a nova senha mestre" +#~ msgid "Reenter profile password" +#~ msgstr "Reentre perfil de senha" +#~ msgid "Remove phpGroupWare extension" +#~ msgstr "Remover extensão phpGroupWare" +#~ msgid "Run group(s)" +#~ msgstr "Grupo(s) de execução" +#~ msgid "SSH public key(s)" +#~ msgstr "Chave(s) pública(s) SSH" +#~ msgid "The password(s) were set to:" +#~ msgstr "Senha(s) definida(s) como:" +#~ msgid "Unlock Samba account" +#~ msgstr "Desbloquear conta do Samba" +#~ msgid "" +#~ "User name of the user who should be created. Valid characters are: a-z,A-" +#~ "Z,0-9, .-_. If user name is already used user name will be expanded with " +#~ "a number. The next free number will be used. Warning: Older systems have " +#~ "problems with user names longer than 8 characters. You can not log in to " +#~ "Windows if user name is longer than 16 characters." +#~ msgstr "" +#~ "Nome de usuário para o usuário que deve ser criado. Os caracteres válidos " +#~ "são: a-z,A-Z, 0-9, - _. Se o nome de usuário já estiver em uso, o mesmo " +#~ "será acrescido de um número. O número livre seguinte será usado. Aviso: " +#~ "Alguns sistemas mais têm problemas com nomes de usuário com mais de 8 " +#~ "caracteres. Você não pode iniciar uma sessão no Windows se o nome do " +#~ "usuário for mais longo que 16 caracteres." +#~ msgid "User(s)" +#~ msgstr "Usuário(s)" +#~ msgid "active" +#~ msgstr "ativo" +#~ msgid "inactive" +#~ msgstr "inativo" +#~ msgid "(example: cn=MyNewPerson)" +#~ msgstr "(exemplo: cn=AMinhaNovaEntidade)" +#~ msgid "(hint: do not include \"ou=\")" +#~ msgstr "(Dica: Não inclua \"ou=\")" +#~ msgid "Container DN" +#~ msgstr "Recipiente DN" +#~ msgid "Custom" +#~ msgstr "Personaliza" +#~ msgid "Data field for RDN is empty!" +#~ msgstr "O campo de dados para RDN está vazio!" +#~ msgid "Next" +#~ msgstr "Próximo" +#~ msgid "Optional binary attributes" +#~ msgstr "Atributos binários opcionais" +#~ msgid "Organizational unit" +#~ msgstr "Unidade organizacional" +#~ msgid "RDN" +#~ msgstr "RDN" +#~ msgid "Really create this new OU?" +#~ msgstr "Realmente criar nova OU?" +#~ msgid "Relative distinguished name" +#~ msgstr "Nome relativo distinto" +#~ msgid "Search Scope" +#~ msgstr "Escopo de pesquisa" +#~ msgid "Specifies whether the user is an admin." +#~ msgstr "Especifica se o usuário é um administrador." +#~ msgid "Step 1 of 2: Name and object class(es)" +#~ msgstr "Passo 1 de 2: Nome e classe(s) de objeto" +#~ msgid "Step 2 of 2: Specify attributes and values" +#~ msgstr "Passo 2 de 2: Especificar atributos e valores" +#~ msgid "" +#~ "You did not select any object classes for this object. Please go back and " +#~ "do so." +#~ msgstr "" +#~ "Você não selecionou nenhuma classe de objeto para este objeto. Retorne à " +#~ "tela anterior e tente novamente." +#~ msgid "Adding attribute failed!" +#~ msgstr "Adição de atributo falhou!" +#~ msgid "All following lines form the mail body." +#~ msgstr "Todas as linhas seguintes formam o corpo de e-mail." +#~ msgid "" +#~ "Attention: The DHCP service needs to be restarted after changes in DDNS." +#~ msgstr "" +#~ "Atenção: O serviço de DHCP precisa ser reiniciado depois das alterações " +#~ "no DDNS." +#~ msgid "Back to Login" +#~ msgstr "Voltar à tela de acesso" +#~ msgid "Back to OU-Editor" +#~ msgstr "Voltar ao editor de OU" +#~ msgid "Back to PDF Editor" +#~ msgstr "Voltar ao editor de PDF" +#~ msgid "Back to profile editor" +#~ msgstr "Voltar para o editor de perfis" +#~ msgid "Cache timeout is invalid!" +#~ msgstr "Intervalo de parada da àrea de transferência (cache) inválido!" +#~ msgid "Change profile" +#~ msgstr "Alterar perfil" +#~ msgid "Choose a server for the home directory!" +#~ msgstr "Escolha um servidor para diretório/pasta padrão de usuário!" +#~ msgid "Delegates has invalid format!" +#~ msgstr "Delegados têm formato inválido!" +#~ msgid "Delete %s" +#~ msgstr "Apagar %s" +#~ msgid "Delete Kolab account" +#~ msgstr "Apagar conta Kolab" +#~ msgid "Delete operation canceled." +#~ msgstr "Operação de exclusão cancelada." +#~ msgid "Deleting. Please stand by ..." +#~ msgstr "Apagando. Por favor aguarde ..." +#~ msgid "Entry %s deleted successfully." +#~ msgstr "Entrada %s apagada com sucesso." +#~ msgid "File upload failed!" +#~ msgstr "Carga de arquivo falhou!" +#~ msgid "Fixed IP" +#~ msgstr "IP fixo" +#~ msgid "" +#~ "Here is a list of possible columns. The red columns must be included in " +#~ "the CSV file and filled with data for all accounts." +#~ msgstr "" +#~ "Esta é uma lista de colunas possíveis. As colunas vermelhas devem ser " +#~ "incluídas no arquivo CSV e ser preenchidas com os dados para todos as " +#~ "contas." +#~ msgid "Home directory server" +#~ msgstr "Servidor de diretório/pasta padrão do usuário" +#~ msgid "I am sure" +#~ msgstr "Eu tenho certeza" +#~ msgid "" +#~ "If you decide to send the password via mail then the mail template " +#~ "\"config/passwordMailTemplate.txt\" will be used." +#~ msgstr "" +#~ "Se você decidir enviar a senha por e-mail, então, o modelo de correio " +#~ "\"config/passwordMailTemplate.txt \" será utilizado." +#~ msgid "" +#~ "LAM can recursively delete this entry and all of its children. See below " +#~ "for a list of all the entries that this action will delete. Do you want " +#~ "to do this?" +#~ msgstr "" +#~ "LAM pode recursivamente apagar esta entrada e todas suas entradas filhas. " +#~ "Veja abaixo uma lista de todas as entradas que esta ação apagará. Você " +#~ "quer continuar?" +#~ msgid "LDAP" +#~ msgstr "LDAP" +#~ msgid "Link to login page for this self service profile" +#~ msgstr "Ligar à página de início de sessão para este perfil de auto serviço" +#~ msgid "Mode" +#~ msgstr "Modo" +#~ msgid "New owner" +#~ msgstr "Novo dono" +#~ msgid "" +#~ "Note: You will get an \"inappropriate matching\" error if you have not " +#~ "setup an EQUALITY rule on your LDAP server for this attribute." +#~ msgstr "" +#~ "Nota: Você poderá receber um erro de \"combinação imprópria\" se não " +#~ "tiver comfigurado uma regra de IGUALDADE no seu servidor LDAP para este " +#~ "atributo." +#~ msgid "" +#~ "Please enter a comma separated list of host names where this user is " +#~ "allowed to log in. If you enable host restrictions for your servers then " +#~ "\"*\" means every host and an empty field means no host." +#~ msgstr "" +#~ "Por favor entre com uma lista de nomes de estações de trabalho ou " +#~ "servidores, separados por vírgula, nos quais serão permitidos ao usuário " +#~ "iniciar sessão. Se você habilitar restrições de início de sessão em seus " +#~ "servidores então, \"*\" significa que todo host está habilitado e um " +#~ "campo vazio significa nenhum host habilitado." +#~ msgid "" +#~ "Please install the SSH2 module for PHP and activate it in your php.ini!" +#~ msgstr "Por favor instale o módulo PHP SSH2 e ative no seu php.ini!" +#~ msgid "Please select your user name and enter your password to log in." +#~ msgstr "" +#~ "Por favor selecione seu nome de usuário e sua senha para iniciar uma " +#~ "sessão." +#~ msgid "SSH2 module" +#~ msgstr "Módulo SSH2" +#~ msgid "SSH2 module is installed." +#~ msgstr "Módulo SSH2 instalado." +#~ msgid "Scope" +#~ msgstr "Escopo" +#~ msgid "Sudo is not setup correctly!" +#~ msgstr "Sudo não está configurado corretamente!" +#~ msgid "Text for user PDF" +#~ msgstr "texto para PDF de usuário" +#~ msgid "The domain name needs to be shorter than 15 characters." +#~ msgstr "O nome de domínio deve ser inferior a 15 caracteres." +#~ msgid "The first line is the subject." +#~ msgstr "A primeira linha é o assunto." +#~ msgid "There are new required attributes which need to be set." +#~ msgstr "Existem novos atributos requeridos que precisam ser definidos." +#~ msgid "" +#~ "This is an example how it would look in your spreadsheet program before " +#~ "you convert to CSV:" +#~ msgstr "" +#~ "Este é um exemplo de como devem ser inseridos os dados no seu programa de " +#~ "planilha eletrônica antes de converter para CSV:" +#~ msgid "This module requires the PHP ssh2 extension." +#~ msgstr "Este módulo requer a extensão PHP ssh2." +#~ msgid "This text will appear on top of every user PDF file." +#~ msgstr "Este texto será publicado no alto de cada arquivo PDF do usuário." +#~ msgid "This value can only be \\\"true\\\" or \\\"false\\\"!" +#~ msgstr "Este valor pode ser somente \\\"Verdadeiro\\\" ou \\\"Falso\\\"!" +#~ msgid "Timeout while executing lamdaemon commands!" +#~ msgstr "Tempo de espera para comandos executados pelo lamdaemon!" +#~ msgid "" +#~ "Unable to load available languages. Setting English as default language. " +#~ "For further instructions please contact the Admin of this site." +#~ msgstr "" +#~ "Inabilitado para carregar idiomas disponíveis. Definindo Inglês como seu " +#~ "idioma padrão. Para outras instruções por favor contate o Administrador " +#~ "deste site." +#~ msgid "Unix workstations" +#~ msgstr "Estações de trabalho Unix" +#~ msgid "Unix workstations are invalid!" +#~ msgstr "Estações de trabalho Unix inválidas!" +#~ msgid "Unknown error" +#~ msgstr "Erro desconhecido" +#~ msgid "Using template:" +#~ msgstr "Usando molde:" +#~ msgid "Was unable to modify attribtues from DN: %s." +#~ msgstr "Inabilitado para alterar atributos do DN: %s." +#~ msgid "You have been logged off from LDAP Account Manager." +#~ msgstr "Você já está desconectado do LDAP Account Manager." +#~ msgid "You have to activate the \"I am sure\" checkbox." +#~ msgstr "Você tem que ativar a opção \"Estou certo\"." +#~ msgid "jpegPhoto contains errors" +#~ msgstr "jpegPhoto contém erros" +#~ msgid "Add Samba 3 account" +#~ msgstr "Adicionar conta do Samba 3" +#~ msgid "Delete PDF structure" +#~ msgstr "Apagar estrutura PDF" +#~ msgid "Donate" +#~ msgstr "Doações" +#~ msgid "Please enter the same password in both password-fields." +#~ msgstr "Por favor entre com a mesma senha em ambos campos de senha." +#~ msgid "Please select your account type:" +#~ msgstr "Por favor selecione o seu tipo de conta:" +#~ msgid "Script settings" +#~ msgstr "Configurações de script" +#~ msgid "The net mask was invalid and was corrected." +#~ msgstr "A máscara de rede era inválida e foi corrigida." +#~ msgid "The netmask was set." +#~ msgstr "A máscara foi definida." +#~ msgid "Update attribute \"sambaPwdCanChange\" on password change" +#~ msgstr "" +#~ "Atributo de atualização \"sambaPwdCanChange\" na alteração de senha." +#~ msgid "Update attribute \"sambaPwdMustChange\" on password change" +#~ msgstr "" +#~ "Atributo de atualização \"sambaPwdMustChange\" na alteração de senha." +#~ msgid "User can/must change password" +#~ msgstr "Usuário pode/deve trocar a senha" +#~ msgid "Account lists - Filters" +#~ msgstr "Lista de contas - Filtros" +#~ msgid "Account type selection" +#~ msgstr "Seleção de tipo de conta" +#~ msgid "Add Neofonie attributes" +#~ msgstr "Adicionar novos atributos Neofonie" +#~ msgid "Add section or static text" +#~ msgstr "Adicionar seção ou texto estático" +#~ msgid "Apply" +#~ msgstr "aplicar" +#~ msgid "Available PDF fields" +#~ msgstr "Campos de PDF disponíveis" +#~ msgid "Birth date" +#~ msgstr "Data de aniversário" +#~ msgid "ComBots IDs" +#~ msgstr "ID's de ComBots" +#~ msgid "Configuration wizard" +#~ msgstr "Configuração assistida" +#~ msgid "Create PDF for all aliases" +#~ msgstr "Criar PDF para todos os apelidos" +#~ msgid "Create PDF for all domains" +#~ msgstr "Criar PDF para todos os domínios" +#~ msgid "Create PDF for all hosts" +#~ msgstr "Criar PDF para todos os hosts" +#~ msgid "Create PDF for all objects" +#~ msgstr "Criar PDF para todos os objetos" +#~ msgid "Create PDF for selected alias(es)" +#~ msgstr "Criar PDF para o(s) apelido(s) selecionado(s)" +#~ msgid "Create PDF for selected domain(s)" +#~ msgstr "Criar PDF para o(s) domínio(s) selecionado(s)" +#~ msgid "Create PDF for selected group(s)" +#~ msgstr "Criar PDF para o(s) grupo(s) selecionado(s)" +#~ msgid "Create PDF for selected object(s)" +#~ msgstr "Criar PDF para o(s) objeto(s) selecionado(s)" +#~ msgid "Create PDF for selected user(s)" +#~ msgstr "Criar PDF para o(s) usuário(s) selecionado(s)" +#~ msgid "Create account" +#~ msgstr "Criar conta" +#~ msgid "Date when the employee was initially employed." +#~ msgstr "Data quando o empregado foi admitido inicialmente." +#~ msgid "Drive letter assigned on windows workstations as homedirectory." +#~ msgstr "" +#~ "Letra de unidade de disco para estações de trabalho windows mapearem para " +#~ "o diretório/pasta de usuário." +#~ msgid "Edit account types" +#~ msgstr "Editar tipos de conta" +#~ msgid "Edit logon hours" +#~ msgstr "Editar horas de acesso do usuário" +#~ msgid "Employee skills" +#~ msgstr "Habilidades do empregado" +#~ msgid "Employment date" +#~ msgstr "Data de admissão do empregado" +#~ msgid "" +#~ "File name and path relative to the netlogon-share which should be " +#~ "executed on logon. $user and $group are replaced with user and group name." +#~ msgstr "" +#~ "Nome e caminho relativo do arquivo para o compartilhamento netlogon, o " +#~ "qual deve ser executado no início de uma sessão. $user e $group serão " +#~ "substituídos com o nome de usuário ou grupo." +#~ msgid "Group 1, Group 2" +#~ msgstr "Grupo1, Grupo2" +#~ msgid "" +#~ "Host name contains invalid characters. Valid characters are: a-z, A-Z, " +#~ "0-9 and .-_ ! Host name must end with $ !" +#~ msgstr "" +#~ "Nome do host contém caracteres inválidos. Os caracteres válidos são: a-z, " +#~ "A-Z, 0-9 e .-_ ! O nome do host deve terminar com $ !" +#~ msgid "IT" +#~ msgstr "TI" +#~ msgid "If checked account will be deactivated. (Setting D-Flag)" +#~ msgstr "Caso esteja marcado, a conta será desativada (define atributo D)." +#~ msgid "" +#~ "If you want to create domain administrators or other special users use " +#~ "this option." +#~ msgstr "" +#~ "Se você quiser criar administradores de domínio ou outros usuários " +#~ "especiais, use esta opção." +#~ msgid "Job position" +#~ msgstr "Posição de trabalho" +#~ msgid "Job position of this user (e.g. developer, temp, ...)." +#~ msgstr "" +#~ "Posição de trabalho deste usuário (Ex.: colaborador, temporário,…). " +#~ msgid "List of ComBots IDs." +#~ msgstr "Lista de ID's de ComBots" +#~ msgid "List of Jabber IDs." +#~ msgstr "Lista de ID's do Jabber." +#~ msgid "List of project groups of this user." +#~ msgstr "Lista de grupos de projeto deste usuário." +#~ msgid "List of projects the user is working on." +#~ msgstr "Lista de projetos em que o usuário está trabalhando." +#~ msgid "List of special skills that the user has." +#~ msgstr "Lista de habilidades especiais que o usuário tem." +#~ msgid "Max list entries is invalid!" +#~ msgstr "As entradas máximas da lista são inválidas!" +#~ msgid "Please enter a valid date (format DD.MM.YYYY)!" +#~ msgstr "Por favor entre com uma data válida (formato DD.MM.YYYY)!" +#~ msgid "Please select page:" +#~ msgstr "Por favor selecione a página:" +#~ msgid "Project 1, Project 2" +#~ msgstr "Projeto1, Projeto 2" +#~ msgid "Project groups" +#~ msgstr "Grupos de projeto" +#~ msgid "Quake ID" +#~ msgstr "ID do Quake" +#~ msgid "Samba 2" +#~ msgstr "Samba 2" +#~ msgid "The department where the employee is employed." +#~ msgstr "O departamento onde o empregado está lotado. " +#~ msgid "This is the RID of the user's primary Windows group." +#~ msgstr "Este é o RID do grupo primário do Windows para o usuário." +#~ msgid "This is the user's Quake ID." +#~ msgstr "Este é o ID de Quake do usuário." +#~ msgid "This is the user's login name for the wiki." +#~ msgstr "Este é o nome de acesso do usuário para o wiki." +#~ msgid "This saves your account to the LDAP database." +#~ msgstr "Isto salva sua conta no banco de dados LDAP." +#~ msgid "Windows group RID" +#~ msgstr "RID do grupo do Windows" + diff --git a/lam/locale/ru_RU/LC_MESSAGES/messages.mo b/lam/locale/ru_RU/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..85eb6736 Binary files /dev/null and b/lam/locale/ru_RU/LC_MESSAGES/messages.mo differ diff --git a/lam/locale/ru_RU/LC_MESSAGES/messages.po b/lam/locale/ru_RU/LC_MESSAGES/messages.po new file mode 100644 index 00000000..015fd1a2 --- /dev/null +++ b/lam/locale/ru_RU/LC_MESSAGES/messages.po @@ -0,0 +1,15433 @@ +# +# LDAP Account Manager +# +msgid "" +msgstr "" +"Project-Id-Version: LAM 2.9.0\n" +"Report-Msgid-Bugs-To: post@rolandgruber.de\n" +"POT-Creation-Date: 2004-01-14 17:45+0200\n" +"PO-Revision-Date: 2013-09-04 00:04+0600\n" +"Last-Translator: Anthony Melentev \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Generator: Poedit 1.5.5\n" + +#: ../lib/modules/zarafaContact.inc:88 ../lib/modules/zarafaContact.inc:91 +#: ../lib/modules/zarafaContact.inc:94 ../lib/modules/zarafaContact.inc:115 +#: ../lib/modules/zarafaGroup.inc:91 ../lib/modules/zarafaGroup.inc:94 +#: ../lib/modules/zarafaGroup.inc:97 ../lib/modules/zarafaGroup.inc:124 +#: ../lib/modules/zarafaUser.inc:137 ../lib/modules/zarafaUser.inc:140 +#: ../lib/modules/zarafaUser.inc:143 ../lib/modules/zarafaUser.inc:213 +msgid "\"Send as\" attribute" +msgstr "Атрибут \"Послать от имени\"" + +#: ../lib/modules/zarafaContact.inc:72 ../lib/modules/zarafaContact.inc:139 +#: ../lib/modules/zarafaContact.inc:162 ../lib/modules/zarafaContact.inc:176 +#: ../lib/modules/zarafaContact.inc:215 ../lib/modules/zarafaContact.inc:344 +#: ../lib/modules/zarafaContact.inc:554 ../lib/modules/zarafaGroup.inc:87 +#: ../lib/modules/zarafaGroup.inc:132 ../lib/modules/zarafaGroup.inc:182 +#: ../lib/modules/zarafaGroup.inc:200 ../lib/modules/zarafaGroup.inc:216 +#: ../lib/modules/zarafaGroup.inc:259 ../lib/modules/zarafaGroup.inc:413 +#: ../lib/modules/zarafaGroup.inc:656 ../lib/modules/zarafaUser.inc:97 +#: ../lib/modules/zarafaUser.inc:194 ../lib/modules/zarafaUser.inc:237 +#: ../lib/modules/zarafaUser.inc:396 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:451 ../lib/modules/zarafaUser.inc:495 +#: ../lib/modules/zarafaUser.inc:871 ../lib/modules/zarafaUser.inc:1300 +#: ../lib/modules/zarafaUser.inc:1531 +msgid "\"Send as\" privileges" +msgstr "Привилегии \"Send as\"" + +#: ../lib/modules/posixAccount.inc:508 +msgid "" +"$user and $group will be replaced with user name and primary group name." +msgstr "" +"$user и $group будут заменены именем пользователя и именем основной группы." + +#: ../lib/modules/nisnetgroup.inc:127 +msgid "(host1,user1,example.com);(host2,user2,example.com)" +msgstr "(host1,user1,example.com);(host2,user2,example.com)" + +#: ../lib/modules/qmailUser.inc:361 ../lib/modules/posixAccount.inc:305 +msgid "/home/smiller" +msgstr "/home/smiller" + +#: ../lib/modules/inetOrgPerson.inc:488 +#: ../lib/modules/asteriskVoicemail.inc:177 +msgid "123-123-1234" +msgstr "123-123-1234" + +#: ../lib/modules/inetOrgPerson.inc:504 +msgid "123-123-1235" +msgstr "123-123-1235" + +#: ../lib/modules/inetOrgPerson.inc:512 +msgid "123-123-1236" +msgstr "123-123-1236" + +#: ../lib/modules/windowsUser.inc:308 ../lib/modules/windowsUser.inc:314 +#: ../lib/modules/inetOrgPerson.inc:496 +msgid "123-124-1234" +msgstr "123-124-1234" + +#: ../lib/modules/windowsUser.inc:266 ../lib/modules/inetOrgPerson.inc:480 +msgid "12345" +msgstr "12345" + +#: ../lib/modules/dhcp_settings.inc:167 +msgid "" +"B-Node (0x01): Broadcast.
    The client tries to find other " +"workstations via broadcasting\n" +"(works only inside the same collision domain, viz. the same subnet).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"The client contacts a Netbios name server (NBNS) from Microsoft Windows Name " +"Service (WINS) for name resolution.

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"The node tries broadcasting first. If that fails then it tries WINS.

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"The node tries WINS first. If that fails it tries broadcasting.

    \n" +"\n" +"By default, the nodes are configured as H-Nodes which fits for small " +"networks. In large networks Point-to-Point (0x02) should be used." +msgstr "" +"B-Node (0x01): Broadcast.
    Клиент ищет другие компьютеры рассылая " +"широковещательные запросы\n" +"(работает только внутри домена,т.е. небольшая подсеть).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"Клиент запрашивает Netbios имя компьютера (NBNS) с сервера (WINS).

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"Клиент сперва пробует широковещательный запрос. Если не удалось, запрашивает " +"WINS.

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"Клиент сперва запрашивает WINS. Если не удалось, посылает широковещательный " +"запрос.

    \n" +"\n" +"По умолчанию используется H-Nodes для небольших сетей. Для больших сетей " +"должен быть использован Point-to-Point (0x02)." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:145 +#, php-format +msgid "Maximum length: %s characters" +msgstr "Максимальная длина: %s символов" + +#: ../lib/modules/selfRegistration.inc:540 +#: ../lib/modules/passwordSelfReset.inc:1456 +msgid "" +"A confirmation mail was sent. Please click on the link in the mail to " +"proceed." +msgstr "" +"Было послано подтверждающее письмо. Пожалуйста, перейдите по ссылке в письме " +"для продолжения." + +#: ../lib/modules/device.inc:75 +msgid "A description for this device." +msgstr "Описание для этого устройства" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +msgid "A list of attributes to display in the results (comma-separated)" +msgstr "Список атрибутов для показа в результатах (разделенный запятыми)" + +#: ../lib/modules/sudoRole.inc:84 ../lib/modules/sudoRole.inc:113 +msgid "A list of options (e.g. !authenticate)." +msgstr "Список опций (например !authenticate)" + +#: ../templates/massBuildAccounts.php:135 +msgid "A required column is missing in your CSV file." +msgstr "Нужный столбец не найден в CSV файле" + +#: ../lib/modules/kolabUser.inc:115 +msgid "" +"A user may define who is allowed to act on behalf of herself. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"Пользователь может определять, кому разрешено действовать от его имени. Это " +"свойство проверяется при использовании Kolab smtp демона (Postfix) для " +"отправки почты." + +#: ../templates/3rdParty/pla/lib/import_functions.php:593 +msgid "A valid deleteoldrdn attribute should be specified" +msgstr "Должен быть указан корректный атрибут deleteoldrdn" + +#: ../templates/3rdParty/pla/lib/import_functions.php:237 +msgid "A valid dn line is required" +msgstr "Требуется корректная строка dn." + +#: ../templates/3rdParty/pla/lib/import_functions.php:596 +msgid "A valid newrdn attribute should be specified" +msgstr "Должен быть указан корректный атрибут newrdn" + +#: ../templates/3rdParty/pla/lib/import_functions.php:587 +msgid "A valid newsuperior attribute should be specified" +msgstr "Должен быть указан корректный атрибут newsuperior" + +#: ../lib/modules/asteriskAccount.inc:122 +#: ../lib/modules/asteriskAccount.inc:251 +#: ../lib/modules/asteriskAccount.inc:333 +#: ../lib/modules/asteriskAccount.inc:409 +#: ../lib/modules/asteriskAccount.inc:701 +#: ../lib/modules/asteriskAccount.inc:1193 +msgid "AMA flags" +msgstr "Флаги AMA" + +#: ../templates/serverInfo.php:342 +msgid "Abandon" +msgstr "Покинуть" + +#: ../templates/lists/changePassword.php:659 +msgid "Aborted password change." +msgstr "Отменененное изменение пароля." + +#: ../lib/modules/sambaSamAccount.inc:555 +msgid "Abu Dhabi, Muscat, Baku" +msgstr "Abu Dhabi, Muscat, Baku" + +#: ../templates/config/confmain.php:263 ../help/help.inc:105 +msgid "Access level" +msgstr "Уровень доступа" + +#: ../lib/modules/account.inc:58 +msgid "Account" +msgstr "Аккаунт" + +#: ../templates/massBuildAccounts.php:201 ../lib/modules/kolabGroup.inc:159 +#: ../lib/modules/kolabGroup.inc:161 ../lib/modules/kolabGroup.inc:163 +#: ../lib/modules/kolabGroup.inc:165 ../lib/modules/mitKerberos.inc:281 +#: ../lib/modules/mitKerberos.inc:282 ../lib/modules/mitKerberos.inc:283 +#: ../lib/modules/mitKerberos.inc:285 ../lib/modules/mitKerberos.inc:287 +#: ../lib/modules/mitKerberos.inc:288 +#: ../lib/modules/zarafaDynamicGroup.inc:190 +#: ../lib/modules/zarafaDynamicGroup.inc:192 +#: ../lib/modules/zarafaDynamicGroup.inc:194 +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:197 +#: ../lib/modules/zarafaDynamicGroup.inc:198 ../lib/modules/ipHost.inc:109 +#: ../lib/modules/ipHost.inc:110 ../lib/modules/asteriskAccount.inc:620 +#: ../lib/modules/asteriskAccount.inc:623 +#: ../lib/modules/asteriskAccount.inc:626 +#: ../lib/modules/asteriskAccount.inc:629 +#: ../lib/modules/asteriskAccount.inc:631 +#: ../lib/modules/asteriskAccount.inc:633 +#: ../lib/modules/asteriskAccount.inc:635 +#: ../lib/modules/asteriskAccount.inc:637 +#: ../lib/modules/asteriskAccount.inc:639 ../lib/modules/account.inc:118 +#: ../lib/modules/ieee802device.inc:89 ../lib/modules/puppetClient.inc:178 +#: ../lib/modules/puppetClient.inc:180 ../lib/modules/puppetClient.inc:182 +#: ../lib/modules/puppetClient.inc:183 ../lib/modules/qmailUser.inc:442 +#: ../lib/modules/qmailUser.inc:444 ../lib/modules/qmailUser.inc:446 +#: ../lib/modules/qmailUser.inc:447 ../lib/modules/qmailUser.inc:448 +#: ../lib/modules/qmailUser.inc:450 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:454 ../lib/modules/qmailUser.inc:457 +#: ../lib/modules/qmailUser.inc:460 ../lib/modules/qmailUser.inc:462 +#: ../lib/modules/qmailUser.inc:463 ../lib/modules/qmailUser.inc:464 +#: ../lib/modules/zarafaContact.inc:175 ../lib/modules/zarafaContact.inc:177 +#: ../lib/modules/zarafaContact.inc:178 ../lib/modules/zarafaContact.inc:179 +#: ../lib/modules/zarafaContact.inc:180 ../lib/modules/windowsHost.inc:125 +#: ../lib/modules/posixGroup.inc:577 ../lib/modules/posixGroup.inc:581 +#: ../lib/modules/posixGroup.inc:582 ../lib/modules/zarafaGroup.inc:210 +#: ../lib/modules/zarafaGroup.inc:212 ../lib/modules/zarafaGroup.inc:213 +#: ../lib/modules/zarafaGroup.inc:214 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:217 ../lib/modules/device.inc:134 +#: ../lib/modules/device.inc:135 ../lib/modules/dhcp_settings.inc:314 +#: ../lib/modules/dhcp_settings.inc:316 ../lib/modules/dhcp_settings.inc:318 +#: ../lib/modules/dhcp_settings.inc:320 ../lib/modules/dhcp_settings.inc:322 +#: ../lib/modules/dhcp_settings.inc:323 ../lib/modules/dhcp_settings.inc:324 +#: ../lib/modules/dhcp_settings.inc:326 ../lib/modules/dhcp_settings.inc:328 +#: ../lib/modules/dhcp_settings.inc:332 ../lib/modules/eduPerson.inc:237 +#: ../lib/modules/eduPerson.inc:239 ../lib/modules/eduPerson.inc:241 +#: ../lib/modules/eduPerson.inc:243 ../lib/modules/eduPerson.inc:244 +#: ../lib/modules/eduPerson.inc:245 ../lib/modules/eduPerson.inc:246 +#: ../lib/modules/quota.inc:52 ../lib/modules/quota.inc:54 +#: ../lib/modules/quota.inc:56 ../lib/modules/quota.inc:58 +#: ../lib/modules/quota.inc:60 ../lib/modules/quota.inc:62 +#: ../lib/modules/quota.inc:63 ../lib/modules/zarafaAddressList.inc:163 +#: ../lib/modules/zarafaAddressList.inc:164 +#: ../lib/modules/zarafaAddressList.inc:165 +#: ../lib/modules/sambaSamAccount.inc:96 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:102 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:107 +#: ../lib/modules/sambaSamAccount.inc:108 +#: ../lib/modules/sambaSamAccount.inc:109 +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 +#: ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/sambaSamAccount.inc:117 +#: ../lib/modules/sambaSamAccount.inc:118 +#: ../lib/modules/sambaSamAccount.inc:120 +#: ../lib/modules/sambaSamAccount.inc:121 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/posixAccount.inc:107 ../lib/modules/posixAccount.inc:111 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/posixAccount.inc:124 +#: ../lib/modules/posixAccount.inc:126 ../lib/modules/posixAccount.inc:127 +#: ../lib/modules/posixAccount.inc:128 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/zarafaUser.inc:441 ../lib/modules/zarafaUser.inc:443 +#: ../lib/modules/zarafaUser.inc:445 ../lib/modules/zarafaUser.inc:446 +#: ../lib/modules/zarafaUser.inc:448 ../lib/modules/zarafaUser.inc:450 +#: ../lib/modules/zarafaUser.inc:452 ../lib/modules/zarafaUser.inc:453 +#: ../lib/modules/zarafaUser.inc:454 ../lib/modules/zarafaUser.inc:455 +#: ../lib/modules/zarafaUser.inc:456 ../lib/modules/zarafaUser.inc:457 +#: ../lib/modules/zarafaUser.inc:458 ../lib/modules/zarafaUser.inc:459 +#: ../lib/modules/ppolicyUser.inc:86 ../lib/modules/windowsUser.inc:444 +#: ../lib/modules/windowsUser.inc:446 ../lib/modules/windowsUser.inc:448 +#: ../lib/modules/windowsUser.inc:450 ../lib/modules/windowsUser.inc:452 +#: ../lib/modules/windowsUser.inc:454 ../lib/modules/windowsUser.inc:456 +#: ../lib/modules/windowsUser.inc:458 ../lib/modules/windowsUser.inc:460 +#: ../lib/modules/windowsUser.inc:462 ../lib/modules/windowsUser.inc:464 +#: ../lib/modules/windowsUser.inc:1022 ../lib/modules/windowsUser.inc:1031 +#: ../lib/modules/windowsUser.inc:1040 ../lib/modules/windowsUser.inc:1051 +#: ../lib/modules/windowsUser.inc:1087 ../lib/modules/kolabUser.inc:212 +#: ../lib/modules/kolabUser.inc:214 ../lib/modules/kolabUser.inc:216 +#: ../lib/modules/kolabUser.inc:218 ../lib/modules/kolabUser.inc:220 +#: ../lib/modules/kolabUser.inc:222 ../lib/modules/ddns.inc:145 +#: ../lib/modules/nisObject.inc:117 ../lib/modules/sambaGroupMapping.inc:590 +#: ../lib/modules/sambaGroupMapping.inc:591 +#: ../lib/modules/shadowAccount.inc:58 ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/shadowAccount.inc:62 ../lib/modules/shadowAccount.inc:64 +#: ../lib/modules/shadowAccount.inc:66 ../lib/modules/shadowAccount.inc:67 +#: ../lib/modules/automount.inc:108 ../lib/modules/sambaDomain.inc:202 +#: ../lib/modules/sambaDomain.inc:204 ../lib/modules/sambaDomain.inc:206 +#: ../lib/modules/sambaDomain.inc:208 ../lib/modules/sambaDomain.inc:210 +#: ../lib/modules/sambaDomain.inc:212 ../lib/modules/inetOrgPerson.inc:65 +#: ../lib/modules/inetOrgPerson.inc:67 ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:71 ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:75 ../lib/modules/inetOrgPerson.inc:77 +#: ../lib/modules/inetOrgPerson.inc:79 ../lib/modules/inetOrgPerson.inc:81 +#: ../lib/modules/inetOrgPerson.inc:83 ../lib/modules/inetOrgPerson.inc:85 +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:89 +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:93 +#: ../lib/modules/inetOrgPerson.inc:94 ../lib/modules/inetOrgPerson.inc:95 +#: ../lib/modules/inetOrgPerson.inc:98 ../lib/modules/inetOrgPerson.inc:99 +#: ../lib/modules/inetOrgPerson.inc:100 ../lib/modules/systemQuotas.inc:91 +#: ../lib/modules/systemQuotas.inc:93 ../lib/modules/systemQuotas.inc:95 +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:99 +#: ../lib/modules/systemQuotas.inc:101 ../lib/modules/systemQuotas.inc:103 +#: ../lib/modules/freeRadius.inc:243 ../lib/modules/freeRadius.inc:245 +#: ../lib/modules/freeRadius.inc:247 ../lib/modules/freeRadius.inc:249 +#: ../lib/modules/freeRadius.inc:251 ../lib/modules/freeRadius.inc:253 +#: ../lib/modules/sudoRole.inc:224 ../lib/modules/sudoRole.inc:226 +#: ../lib/modules/sudoRole.inc:228 ../lib/modules/sudoRole.inc:230 +#: ../lib/modules/sudoRole.inc:232 ../lib/modules/sudoRole.inc:234 +#: ../lib/modules/zarafaServer.inc:167 ../lib/modules/zarafaServer.inc:169 +#: ../lib/modules/zarafaServer.inc:171 ../lib/modules/zarafaServer.inc:172 +#: ../lib/modules/asteriskVoicemail.inc:206 +#: ../lib/modules/asteriskVoicemail.inc:212 +#: ../lib/modules/asteriskVoicemail.inc:214 +#: ../lib/modules/inetLocalMailRecipient.inc:124 +#: ../lib/modules/inetLocalMailRecipient.inc:126 +#: ../lib/modules/inetLocalMailRecipient.inc:128 +#: ../lib/modules/aliasEntry.inc:79 ../lib/modules/qmailGroup.inc:414 +#: ../lib/modules/qmailGroup.inc:416 ../lib/modules/qmailGroup.inc:419 +#: ../lib/modules/qmailGroup.inc:421 ../lib/modules/qmailGroup.inc:423 +#: ../lib/modules/qmailGroup.inc:425 ../lib/modules/qmailGroup.inc:426 +#: ../lib/modules/qmailGroup.inc:427 ../lib/modules/qmailGroup.inc:428 +#: ../lib/modules/qmailGroup.inc:429 ../lib/modules/qmailGroup.inc:430 +#: ../lib/modules/authorizedServiceObject.inc:123 +#: ../lib/modules/heimdalKerberos.inc:245 +#: ../lib/modules/heimdalKerberos.inc:246 +#: ../lib/modules/heimdalKerberos.inc:247 +#: ../lib/modules/heimdalKerberos.inc:249 +#: ../lib/modules/heimdalKerberos.inc:251 ../lib/modules/windowsGroup.inc:258 +#: ../lib/modules/windowsGroup.inc:260 ../lib/modules/windowsGroup.inc:262 +#: ../lib/modules/windowsGroup.inc:263 ../lib/modules/windowsGroup.inc:264 +#: ../lib/modules/nisMailAlias.inc:115 ../lib/modules/nisMailAlias.inc:117 +#: ../lib/modules/hostObject.inc:104 +#, php-format +msgid "Account %s:" +msgstr "Аккаунт %s:" + +#: ../lib/types/asteriskExt.inc:95 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskAccount.inc:102 +#: ../lib/modules/asteriskAccount.inc:317 +#: ../lib/modules/asteriskAccount.inc:329 +#: ../lib/modules/asteriskAccount.inc:373 +#: ../lib/modules/asteriskAccount.inc:671 +#: ../lib/modules/asteriskAccount.inc:1189 +#: ../lib/modules/asteriskExtension.inc:91 +#: ../lib/modules/asteriskExtension.inc:122 +#: ../lib/modules/asteriskExtension.inc:129 +#: ../lib/modules/asteriskExtension.inc:145 +#: ../lib/modules/asteriskExtension.inc:299 +#: ../lib/modules/asteriskExtension.inc:805 +#: ../lib/modules/asteriskVoicemail.inc:82 +#: ../lib/modules/asteriskVoicemail.inc:118 +#: ../lib/modules/asteriskVoicemail.inc:128 +#: ../lib/modules/asteriskVoicemail.inc:142 +#: ../lib/modules/asteriskVoicemail.inc:244 +#: ../lib/modules/asteriskVoicemail.inc:389 +msgid "Account context" +msgstr "Контекст аккаунта" + +#: ../lib/modules/selfRegistration.inc:387 +msgid "Account creation" +msgstr "Создание аккаунта" + +#: ../lib/modules/selfRegistration.inc:77 +msgid "Account creation confirmation" +msgstr "Потверждение создания аккаунта" + +#: ../templates/masscreate.php:124 +msgid "Account creation via file upload" +msgstr "Создание аккаунта при помощи загрузки файла" + +#: ../lib/modules/posixAccount.inc:515 +msgid "Account deactivated" +msgstr "Аккаунт отключен" + +#: ../templates/lists/changePassword.php:261 +msgid "Account details" +msgstr "Детали аккаунта" + +#: ../lib/types/user.inc:104 ../lib/modules/mitKerberos.inc:117 +#: ../lib/modules/mitKerberos.inc:211 ../lib/modules/mitKerberos.inc:244 +#: ../lib/modules/mitKerberos.inc:386 ../lib/modules/mitKerberos.inc:635 +#: ../lib/modules/mitKerberos.inc:784 ../lib/modules/sambaSamAccount.inc:335 +#: ../lib/modules/sambaSamAccount.inc:450 +#: ../lib/modules/sambaSamAccount.inc:1164 +#: ../lib/modules/sambaSamAccount.inc:1422 +#: ../lib/modules/sambaSamAccount.inc:1714 +#: ../lib/modules/shadowAccount.inc:121 ../lib/modules/shadowAccount.inc:186 +#: ../lib/modules/shadowAccount.inc:226 ../lib/modules/shadowAccount.inc:343 +#: ../lib/modules/shadowAccount.inc:444 ../lib/modules/shadowAccount.inc:490 +#: ../lib/modules/heimdalKerberos.inc:95 +#: ../lib/modules/heimdalKerberos.inc:180 +#: ../lib/modules/heimdalKerberos.inc:212 +#: ../lib/modules/heimdalKerberos.inc:318 +#: ../lib/modules/heimdalKerberos.inc:541 +#: ../lib/modules/heimdalKerberos.inc:676 +msgid "Account expiration date" +msgstr "Время окончания действия аккаунта" + +#: ../lib/modules/shadowAccount.inc:162 +msgid "Account inactive" +msgstr "Аккаунт неактивен" + +#: ../lib/modules/sambaSamAccount.inc:275 +#: ../lib/modules/sambaSamAccount.inc:281 +#: ../lib/modules/sambaSamAccount.inc:442 +#: ../lib/modules/sambaSamAccount.inc:1132 +#: ../lib/modules/sambaSamAccount.inc:1710 ../lib/modules/windowsUser.inc:171 +#: ../lib/modules/windowsUser.inc:330 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:563 ../lib/modules/windowsUser.inc:1237 +msgid "Account is deactivated" +msgstr "Аккаунт отключен" + +#: ../lib/modules/sambaSamAccount.inc:278 +#: ../lib/modules/sambaSamAccount.inc:1138 ../lib/modules/windowsUser.inc:174 +#: ../lib/modules/windowsUser.inc:544 +msgid "Account is locked" +msgstr "Аккаунт заблокирован" + +#: ../templates/delete.php:99 +msgid "Account name:" +msgstr "Имя аккаунта:" + +#: ../lib/types/user.inc:300 ../lib/types/user.inc:714 +#: ../lib/types/user.inc:848 ../lib/modules/qmailUser.inc:204 +#: ../lib/modules/qmailUser.inc:276 ../lib/modules/qmailUser.inc:395 +#: ../lib/modules/qmailUser.inc:602 ../lib/modules/qmailUser.inc:1204 +msgid "Account status" +msgstr "Статус аккаунта" + +#: ../templates/masscreate.php:151 ../lib/modules/asteriskAccount.inc:110 +#: ../lib/modules/asteriskAccount.inc:318 +#: ../lib/modules/asteriskAccount.inc:331 +#: ../lib/modules/asteriskAccount.inc:393 +#: ../lib/modules/asteriskAccount.inc:679 +#: ../lib/modules/asteriskAccount.inc:1191 ../lib/modules/customFields.inc:440 +#: ../lib/modules/customFields.inc:488 +msgid "Account type" +msgstr "Тип аккаунта" + +#: ../templates/config/confmodules.php:168 +#: ../templates/config/confmain.php:209 +#: ../templates/config/moduleSettings.php:167 +#: ../templates/config/conftypes.php:186 +msgid "Account types" +msgstr "Типы аккаунтов" + +#: ../help/help.inc:107 +msgid "Account types and modules" +msgstr "Типы аккаунтов и модули" + +#: ../help/help.inc:109 +msgid "" +"Account types define which sorts of LDAP entries (e.g. users and groups) " +"should be managed. The account modules define which properties (e.g. Unix " +"and Samba) can be edited." +msgstr "" +"Типы аккаунтов определяют какими типами записей LDAP (например пользователи " +"и группы) можно управлять. Модули определяют какие свойства (например Unix и " +"Samba) можно редактировать." + +#: ../lib/modules.inc:1281 +msgid "Account was created successfully." +msgstr "Аккаунт создан успешно" + +#: ../templates/lists/changePassword.php:689 +#: ../templates/lists/changePassword.php:741 +#: ../templates/lists/changePassword.php:787 ../lib/modules.inc:1284 +msgid "Account was modified successfully." +msgstr "Аккаунт изменен успешно" + +#: ../lib/modules/customScripts.inc:134 +msgid "Action type" +msgstr "Тип действия" + +#: ../lib/modules/ddns.inc:74 ../lib/modules/ddns.inc:361 +msgid "Activate DynDNS" +msgstr "Включить DynDNS" + +#: ../templates/config/confmain.php:243 +#: ../templates/selfService/adminMain.php:413 +msgid "Activate TLS" +msgstr "Включить TLS" + +#: ../lib/modules/sambaSamAccount.inc:342 +msgid "Activate this checkbox to allow this user to use the terminal service." +msgstr "Включить использование сервера терминалов для этого пользователя." + +#: ../lib/modules/sambaSamAccount.inc:363 +msgid "Activate this checkbox to connect drives from the client machine." +msgstr "Подключить диски с компьютера клиента." + +#: ../lib/modules/sambaSamAccount.inc:366 +msgid "Activate this checkbox to connect printers from the client machine." +msgstr "Включить подключение принтеров с компьютера клиента." + +#: ../lib/modules/sambaSamAccount.inc:351 +msgid "" +"Activate this checkbox to inherit the initial program and working directory " +"from the client machine." +msgstr "" +"Инициировать начальную программу и рабочий каталог с компьютера клиента." + +#: ../lib/modules/sambaSamAccount.inc:369 +msgid "Activate this checkbox to set the client's printer as default printer." +msgstr "Включить использование принтера клиента по умолчанию." + +#: ../lib/modules/posixAccount.inc:471 +msgid "Activating this checkbox will remove the user's home directory." +msgstr "Поставьте галочку для удаления домашней директории пользователя" + +#: ../lib/types/zarafaAddressListType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:93 +#: ../lib/modules/zarafaDynamicGroup.inc:76 +#: ../lib/modules/zarafaDynamicGroup.inc:137 +#: ../lib/modules/zarafaDynamicGroup.inc:161 +#: ../lib/modules/zarafaDynamicGroup.inc:274 +#: ../lib/modules/zarafaDynamicGroup.inc:473 ../lib/modules/qmailUser.inc:41 +#: ../lib/modules/qmailUser.inc:278 ../lib/modules/zarafaContact.inc:68 +#: ../lib/modules/zarafaContact.inc:145 ../lib/modules/zarafaContact.inc:243 +#: ../lib/modules/zarafaGroup.inc:83 ../lib/modules/zarafaGroup.inc:148 +#: ../lib/modules/zarafaGroup.inc:189 ../lib/modules/zarafaGroup.inc:298 +#: ../lib/modules/zarafaGroup.inc:666 ../lib/modules/zarafaAddressList.inc:64 +#: ../lib/modules/zarafaAddressList.inc:113 +#: ../lib/modules/zarafaAddressList.inc:135 +#: ../lib/modules/zarafaAddressList.inc:215 +#: ../lib/modules/zarafaAddressList.inc:341 ../lib/modules/zarafaUser.inc:77 +#: ../lib/modules/zarafaUser.inc:202 ../lib/modules/zarafaUser.inc:296 +#: ../lib/modules/zarafaUser.inc:626 ../lib/modules/fixed_ip.inc:100 +#: ../lib/modules/fixed_ip.inc:366 ../lib/modules/fixed_ip.inc:562 +msgid "Active" +msgstr "Активен" + +#: ../templates/config/conftypes.php:232 +msgid "Active account types" +msgstr "Активные типы аккаунтов" + +#: ../templates/serverInfo.php:307 ../templates/serverInfo.php:384 +#: ../templates/config/profmanage.php:251 +#: ../templates/config/confmodules.php:305 +#: ../templates/config/conftypes.php:223 +#: ../templates/selfService/profManage.php:209 +#: ../templates/pdfedit/pdfpage.php:596 ../templates/pdfedit/pdfpage.php:606 +#: ../templates/pdfedit/pdfpage.php:616 ../templates/pdfedit/pdfpage.php:630 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1206 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1210 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:78 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:121 +#: ../lib/modules/zarafaContact.inc:379 ../lib/modules/zarafaGroup.inc:448 +#: ../lib/modules/device.inc:259 ../lib/modules/zarafaUser.inc:906 +#: ../lib/modules/zarafaUser.inc:1528 ../lib/modules/zarafaUser.inc:1560 +#: ../lib/modules/kolabUser.inc:786 ../lib/modules/kolabUser.inc:834 +#: ../lib/modules/sambaGroupMapping.inc:385 +#: ../lib/modules/sambaGroupMapping.inc:476 +#: ../lib/modules/ldapPublicKey.inc:295 ../lib/modules/ldapPublicKey.inc:305 +#: ../lib/modules/nisnetgroup.inc:275 ../lib/modules/inetOrgPerson.inc:2185 +#: ../lib/modules/sudoRole.inc:269 ../lib/modules/sudoRole.inc:296 +#: ../lib/modules/sudoRole.inc:323 ../lib/modules/sudoRole.inc:350 +#: ../lib/modules/sudoRole.inc:377 ../lib/modules/sudoRole.inc:404 +#: ../lib/modules/customFields.inc:998 ../lib/modules/qmailGroup.inc:815 +#: ../lib/modules/windowsGroup.inc:510 ../lib/modules/groupOfNames.inc:338 +#: ../lib/modules/groupOfNames.inc:473 +msgid "Add" +msgstr "Добавить" + +#: ../lib/modules/asteriskAccount.inc:968 +msgid "Add Asterisk account" +msgstr "Добавить аккаунт Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:288 +msgid "Add Asterisk voicemail extension" +msgstr "Добавить расширение голосовой почты Asterisk" + +#: ../lib/modules/authorizedServiceObject.inc:195 +msgid "Add Authorized Service extension" +msgstr "Добавить расширение Authorized Service" + +#: ../lib/modules/eduPerson.inc:481 +msgid "Add EDU person extension" +msgstr "Добавить расширение EDU person" + +#: ../lib/modules/freeRadius.inc:345 +msgid "Add FreeRadius extension" +msgstr "Добавить расширение FreeRadius" + +#: ../lib/modules/ipHost.inc:181 +msgid "Add IP address extension" +msgstr "Добавить расширение IP адрес" + +#: ../lib/modules/mitKerberos.inc:479 ../lib/modules/heimdalKerberos.inc:399 +msgid "Add Kerberos extension" +msgstr "Добавить расширение Kerberos" + +#: ../lib/modules/kolabGroup.inc:201 ../lib/modules/kolabUser.inc:362 +msgid "Add Kolab extension" +msgstr "Добавить расширение Kolab" + +#: ../lib/modules/puppetClient.inc:217 +msgid "Add Puppet extension" +msgstr "Добавить расширение Puppet" + +#: ../lib/modules/sambaSamAccount.inc:1286 +#: ../lib/modules/sambaGroupMapping.inc:415 +msgid "Add Samba 3 extension" +msgstr "Добавить расширение Samba 3" + +#: ../lib/modules/shadowAccount.inc:371 +msgid "Add Shadow account extension" +msgstr "Добавить расширение аккаунта Shadow" + +#: ../lib/modules/posixGroup.inc:249 ../lib/modules/posixAccount.inc:1420 +msgid "Add Unix extension" +msgstr "Добавить Unix расширение" + +#: ../lib/modules/zarafaContact.inc:123 ../lib/modules/zarafaContact.inc:191 +msgid "Add Zarafa contact extension" +msgstr "Добавить расширение Zarafa contact" + +#: ../lib/modules/zarafaGroup.inc:308 ../lib/modules/zarafaUser.inc:160 +#: ../lib/modules/zarafaUser.inc:161 ../lib/modules/zarafaUser.inc:220 +#: ../lib/modules/zarafaUser.inc:470 ../lib/modules/zarafaServer.inc:230 +msgid "Add Zarafa extension" +msgstr "Добавить расширение Zarafa" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add all" +msgstr "Добавить все" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2073 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2091 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "Add an additional value to attribute" +msgstr "Добавить дополнительное значение атрибута" + +#: ../lib/modules/asteriskExtension.inc:343 +msgid "Add another rule" +msgstr "Добавить еще одно правило" + +#: ../lib/modules/inetOrgPerson.inc:2220 +msgid "Add entries" +msgstr "Добавить записи" + +#: ../lib/modules/zarafaContact.inc:418 ../lib/modules/zarafaGroup.inc:487 +#: ../lib/modules/device.inc:302 ../lib/modules/zarafaUser.inc:945 +#: ../lib/modules/sambaGroupMapping.inc:491 ../lib/modules/qmailGroup.inc:851 +#: ../lib/modules/windowsGroup.inc:553 ../lib/modules/groupOfNames.inc:381 +#: ../lib/modules/groupOfNames.inc:516 +msgid "Add entries of this type:" +msgstr "Добавьте записи этого вида:" + +#: ../lib/modules/customFields.inc:392 +msgid "Add extension" +msgstr "Добавить расширение" + +#: ../lib/modules/ddns.inc:362 +msgid "Add fix IP addresses to DNS" +msgstr "Добавить статические IP адреса в DNS" + +#: ../lib/modules/hostObject.inc:162 +msgid "Add host extension" +msgstr "Добавить расширение хоста" + +#: ../templates/selfService/adminMain.php:550 ../help/help.inc:212 +msgid "Add input field" +msgstr "Добавить поле ввода" + +#: ../lib/modules/customFields.inc:2463 +msgid "Add more mapping fields" +msgstr "Добавить еще поля соответствия" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:37 +#, php-format +msgid "Add new %s value to %s" +msgstr "Добавить новое %s значение к %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1208 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:29 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:48 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:166 +msgid "Add new attribute" +msgstr "Добавить новый атрибут" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1207 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +msgid "Add new attribute to this object" +msgstr "Добавить новый атрибут к этому объекту" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:89 +msgid "Add new binary attribute" +msgstr "Добавить новый бинарный атрибут" + +#: ../lib/modules/customFields.inc:955 +msgid "Add new field" +msgstr "Добавить новое поле" + +#: ../templates/selfService/adminMain.php:542 ../help/help.inc:210 +msgid "Add new group" +msgstr "Добавить новую группу" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:117 +msgid "Add new object class" +msgstr "Добавить новый класс объекта" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:60 +#, php-format +msgid "Add new object class to %s" +msgstr "Добавить новый класс объекта к %s" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:94 +msgid "Add object class and attributes" +msgstr "Добавить класс объекта и атрибуты" + +#: ../lib/modules/passwordSelfReset.inc:285 +msgid "Add password self reset extension" +msgstr "Добавить расширение самостоятельного сброса пароля" + +#: ../lib/modules/inetOrgPerson.inc:816 ../lib/modules/inetOrgPerson.inc:2106 +#: ../lib/modules/inetOrgPerson.inc:2144 ../lib/modules/inetOrgPerson.inc:3147 +msgid "Add photo" +msgstr "Добавить фото" + +#: ../templates/config/profmanage.php:239 +#: ../templates/config/profmanage.php:252 +#: ../templates/selfService/profManage.php:202 +#: ../templates/selfService/profManage.php:210 ../help/help.inc:126 +msgid "Add profile" +msgstr "Добавить профиль" + +#: ../lib/modules/qmailUser.inc:705 ../lib/modules/qmailGroup.inc:626 +msgid "Add qmail extension" +msgstr "Добавить расширение qmail" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add selected" +msgstr "Добавить выбранное" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:149 +msgid "Add value" +msgstr "Добавить значение" + +#: ../templates/3rdParty/pla/htdocs/import.php:28 +msgid "Adding" +msgstr "Добавление" + +#: ../lib/modules/range.inc:108 +msgid "Adding the range failed because errors occured." +msgstr "Не удается добавить диапазон из-за ошибок." + +#: ../templates/selfService/adminMain.php:460 ../help/help.inc:216 +msgid "Additional CSS links" +msgstr "Дополнительные CSS ссылки" + +#: ../templates/config/conftypes.php:274 ../help/help.inc:154 +msgid "Additional LDAP filter" +msgstr "Дополнительный LDAP фильтр" + +#: ../lib/modules/zarafaDynamicGroup.inc:65 +#: ../lib/modules/zarafaDynamicGroup.inc:69 ../lib/modules/zarafaGroup.inc:68 +#: ../lib/modules/zarafaGroup.inc:72 +msgid "Additional email addresses for this entry." +msgstr "Дополнительные адреса электронной почты для этой записи." + +#: ../lib/modules/posixAccount.inc:297 ../lib/modules/posixAccount.inc:408 +#: ../lib/modules/posixAccount.inc:462 ../lib/modules/posixAccount.inc:523 +#: ../lib/modules/posixAccount.inc:1355 ../lib/modules/posixAccount.inc:1633 +#: ../lib/modules/posixAccount.inc:1744 +msgid "Additional groups" +msgstr "Дополнительные группы" + +#: ../lib/modules/windowsGroup.inc:115 +msgid "Additional notes to describe this entry." +msgstr "Дополнительные заметки, описывающие эту запись." + +#: ../templates/massDoUpload.php:160 +msgid "Additional tasks for module:" +msgstr "Дополнительные задачи для модуля:" + +#: ../lib/modules/windowsUser.inc:526 ../lib/modules/inetOrgPerson.inc:1469 +msgid "Address" +msgstr "Адрес" + +#: ../lib/types/zarafaAddressListType.inc:144 +#, php-format +msgid "Address list count: %s" +msgstr "Количество списков адресов: %s" + +#: ../lib/modules/imapAccess.inc:71 +msgid "Address of IMAP server (e.g. mail.example.org)." +msgstr "Адрес IMAP сервера(например mail.example.org)." + +#: ../help/help.inc:211 +msgid "" +"Adds a new group element to the list of self service options. Use this to " +"structure the input fields." +msgstr "" +"Добавление нового элемента группировки в список опций самообслуживания. Это " +"используется для структурирования полей ввода." + +#: ../help/help.inc:213 +msgid "Adds a new self service option to the selected group element." +msgstr "Добавляет новые опции самообслуживания для выбранного элемента группы." + +#: ../lib/modules/range.inc:95 +msgid "Adds input fields for a new IP range." +msgstr "Добавляет поля ввода для нового диапазона IP адресов." + +#: ../lib/modules/zarafaUser.inc:101 ../lib/modules/zarafaUser.inc:323 +#: ../lib/modules/zarafaUser.inc:381 ../lib/modules/zarafaUser.inc:635 +#: ../lib/modules/zarafaUser.inc:1328 +msgid "Admin" +msgstr "Администратор" + +#: ../lib/modules/selfRegistration.inc:53 +#: ../lib/modules/selfRegistration.inc:100 +#: ../lib/modules/passwordSelfReset.inc:93 +#: ../lib/modules/passwordSelfReset.inc:209 +msgid "Admin DN" +msgstr "DN администратора" + +#: ../lib/modules/selfRegistration.inc:58 +#: ../lib/modules/selfRegistration.inc:104 +#: ../lib/modules/passwordSelfReset.inc:97 +#: ../lib/modules/passwordSelfReset.inc:213 +msgid "Admin password" +msgstr "Пароль администратора" + +#: ../lib/modules/inetOrgPerson.inc:440 ../lib/modules/inetOrgPerson.inc:554 +#: ../lib/modules/inetOrgPerson.inc:562 +msgid "Administration" +msgstr "Администрация" + +#: ../lib/modules/posixGroup.inc:448 ../lib/modules/nisnetgroup.inc:115 +#: ../lib/modules/groupOfNames.inc:112 +msgid "Administrators group" +msgstr "Группа администраторов" + +#: ../templates/config/conftypes.php:300 ../lib/modules/posixAccount.inc:264 +msgid "Advanced options" +msgstr "Расширенные опции" + +#: ../lib/modules/eduPerson.inc:98 ../lib/modules/eduPerson.inc:102 +#: ../lib/modules/eduPerson.inc:174 ../lib/modules/eduPerson.inc:218 +#: ../lib/modules/eduPerson.inc:325 ../lib/modules/eduPerson.inc:770 +msgid "Affiliations" +msgstr "Присоединение" + +#: ../lib/modules/sambaSamAccount.inc:542 +msgid "Alaska" +msgstr "Alaska" + +#: ../lib/modules/sambaDomain.inc:211 ../lib/modules/sambaDomain.inc:212 +msgid "Algorithmic RID base is not a number!" +msgstr "Алгоритм RID базы не число!" + +#: ../lib/modules/customFields.inc:66 ../lib/modules/customFields.inc:444 +#: ../lib/modules/customFields.inc:491 ../lib/modules/aliasEntry.inc:38 +msgid "Alias" +msgstr "Псевдоним" + +#: ../lib/types/mailAlias.inc:141 ../lib/types/alias.inc:141 +#, php-format +msgid "Alias count: %s" +msgstr "Количество псевдонимов: %s" + +#: ../lib/types/alias.inc:62 +msgid "Alias entries" +msgstr "Записи псевдонимов" + +#: ../lib/modules/nisMailAlias.inc:114 ../lib/modules/nisMailAlias.inc:115 +msgid "Alias is empty or invalid!" +msgstr "Псевдоним пуст или неверен!" + +#: ../lib/types/mailAlias.inc:91 ../lib/modules/nisMailAlias.inc:70 +#: ../lib/modules/nisMailAlias.inc:90 ../lib/modules/nisMailAlias.inc:104 +#: ../lib/modules/nisMailAlias.inc:152 ../lib/modules/nisMailAlias.inc:377 +msgid "Alias name" +msgstr "Имя псевдонима" + +#: ../lib/types/alias.inc:92 ../lib/modules/customScripts.inc:45 +#: ../lib/modules/uidObject.inc:52 ../lib/modules/aliasEntry.inc:54 +#: ../lib/modules/aliasEntry.inc:62 ../lib/modules/aliasEntry.inc:70 +#: ../lib/modules/aliasEntry.inc:91 ../lib/modules/aliasEntry.inc:100 +#: ../lib/modules/aliasEntry.inc:228 +msgid "Aliased entry" +msgstr "Запись псевдонима" + +#: ../templates/schema/schema.php:226 ../lib/types/alias.inc:53 +msgid "Aliases" +msgstr "Псевдонимы" + +#: ../lib/lists.inc:695 +#, php-format +msgid "All accounts (%s)" +msgstr "Все аккаунты (%s)" + +#: ../templates/selfService/selfServiceMain.php:349 +#: ../templates/initsuff.php:158 +msgid "All changes were successful." +msgstr "Все изменения прошли успешно." + +#: ../lib/lists.inc:694 +#, php-format +msgid "All selected accounts (%s)" +msgstr "Все выделенные аккаунты (%s)" + +#: ../lib/modules/dhcp_settings.inc:103 +msgid "Allow" +msgstr "Разрешить" + +#: ../lib/modules/sambaDomain.inc:110 ../lib/modules/sambaDomain.inc:187 +#: ../lib/modules/sambaDomain.inc:301 ../lib/modules/sambaDomain.inc:665 +msgid "Allow machine password changes" +msgstr "Разрешить смену пароля компьютера" + +#: ../lib/modules/customFields.inc:130 ../lib/modules/customFields.inc:134 +#: ../lib/modules/customFields.inc:2633 +msgid "Allow multiple values" +msgstr "Разрешить много значений" + +#: ../lib/types/ppolicyType.inc:90 ../lib/modules/ppolicy.inc:125 +#: ../lib/modules/ppolicy.inc:148 ../lib/modules/ppolicy.inc:287 +#: ../lib/modules/ppolicy.inc:498 +msgid "Allow password change" +msgstr "Разрешить смену пароля" + +#: ../lib/modules/sambaSamAccount.inc:222 +#: ../lib/modules/sambaSamAccount.inc:341 +#: ../lib/modules/sambaSamAccount.inc:1474 +#: ../lib/modules/sambaSamAccount.inc:1890 +msgid "Allow terminal server login" +msgstr "Включить доступ к серверу терминалов" + +#: ../templates/selfService/adminMain.php:522 +msgid "Allow user input for this field." +msgstr "Разрешить пользователю заполнять это поле." + +#: ../lib/modules/asteriskAccount.inc:194 +#: ../lib/modules/asteriskAccount.inc:287 +#: ../lib/modules/asteriskAccount.inc:351 +#: ../lib/modules/asteriskAccount.inc:541 +#: ../lib/modules/asteriskAccount.inc:878 +#: ../lib/modules/asteriskAccount.inc:1211 +msgid "Allowed codec" +msgstr "Разрешенный кодек" + +#: ../templates/config/mainmanage.php:260 ../lib/types/user.inc:95 +#: ../help/help.inc:148 +msgid "Allowed hosts" +msgstr "Разрешенные хосты" + +#: ../lib/modules/kolabGroup.inc:88 ../lib/modules/kolabGroup.inc:92 +#: ../lib/modules/kolabGroup.inc:122 ../lib/modules/kolabGroup.inc:145 +#: ../lib/modules/kolabGroup.inc:162 ../lib/modules/kolabGroup.inc:186 +#: ../lib/modules/kolabGroup.inc:401 ../lib/modules/kolabUser.inc:134 +#: ../lib/modules/kolabUser.inc:138 ../lib/modules/kolabUser.inc:184 +#: ../lib/modules/kolabUser.inc:201 ../lib/modules/kolabUser.inc:219 +#: ../lib/modules/kolabUser.inc:349 ../lib/modules/kolabUser.inc:722 +msgid "Allowed recepients" +msgstr "Разрешенные получатели" + +#: ../lib/modules/kolabGroup.inc:97 ../lib/modules/kolabGroup.inc:101 +#: ../lib/modules/kolabGroup.inc:128 ../lib/modules/kolabGroup.inc:146 +#: ../lib/modules/kolabGroup.inc:164 ../lib/modules/kolabGroup.inc:188 +#: ../lib/modules/kolabGroup.inc:402 ../lib/modules/kolabUser.inc:143 +#: ../lib/modules/kolabUser.inc:147 ../lib/modules/kolabUser.inc:190 +#: ../lib/modules/kolabUser.inc:202 ../lib/modules/kolabUser.inc:221 +#: ../lib/modules/kolabUser.inc:351 ../lib/modules/kolabUser.inc:723 +msgid "Allowed senders" +msgstr "Разрешенные отправители" + +#: ../lib/modules/sambaSamAccount.inc:1312 +#: ../lib/modules/sambaSamAccount.inc:1313 +msgid "Allowed workstations" +msgstr "Разрешенные рабочие станции" + +#: ../lib/modules/customFields.inc:135 +msgid "Allows to enter multiple values for this attribute." +msgstr "Позволяет указывать много значений для данного атрибута." + +#: ../lib/modules/customFields.inc:131 +msgid "Allows to select multiple values from the list." +msgstr "Разрешает выбор нескольких значений из списка." + +#: ../lib/modules/sambaSamAccount.inc:557 +msgid "Almaty, Dhaka, Colombo" +msgstr "Almaty, Dhaka, Colombo" + +#: ../lib/modules/qmailUser.inc:196 ../lib/modules/qmailUser.inc:264 +#: ../lib/modules/qmailUser.inc:393 ../lib/modules/qmailUser.inc:443 +#: ../lib/modules/qmailUser.inc:513 ../lib/modules/qmailUser.inc:1187 +#: ../lib/modules/qmailGroup.inc:124 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/qmailGroup.inc:240 ../lib/modules/qmailGroup.inc:363 +#: ../lib/modules/qmailGroup.inc:415 ../lib/modules/qmailGroup.inc:477 +#: ../lib/modules/qmailGroup.inc:1054 +msgid "Alternate address" +msgstr "Альтернативный адрес" + +#: ../lib/modules.inc:1066 ../lib/modules.inc:1161 ../help/help.inc:194 +msgid "Alternate recipient" +msgstr "Альтернативный получатель" + +#: ../lib/modules/kolabUser.inc:50 +msgid "Always accept" +msgstr "Всегда принимать" + +#: ../lib/modules/kolabUser.inc:51 +msgid "Always reject" +msgstr "Всегда отклонять" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1018 +#, php-format +msgid "An attribute (%s) was modified and is highlighted below." +msgstr "Аттрибут (%s) был изменен и выделен другим цветом." + +#: ../lib/modules/sudoRole.inc:222 +msgid "An sudo role with this name already exists. Please choose another name." +msgstr "" +"Роль sudo с таким именем уже существует. Пожалуйста, выберите другое имя." + +#: ../lib/modules/passwordSelfReset.inc:77 +#: ../lib/modules/passwordSelfReset.inc:164 +#: ../lib/modules/passwordSelfReset.inc:172 +#: ../lib/modules/passwordSelfReset.inc:263 +#: ../lib/modules/passwordSelfReset.inc:305 +#: ../lib/modules/passwordSelfReset.inc:410 +#: ../lib/modules/passwordSelfReset.inc:556 +#: ../lib/modules/passwordSelfReset.inc:913 +msgid "Answer" +msgstr "Ответ" + +#: ../lib/modules/kolabUser.inc:291 ../lib/modules/kolabUser.inc:712 +#: ../lib/modules/kolabUser.inc:809 ../lib/modules/kolabUser.inc:812 +msgid "Anyone" +msgstr "Любой" + +#: ../lib/modules/asteriskExtension.inc:103 +#: ../lib/modules/asteriskExtension.inc:158 +#: ../lib/modules/asteriskExtension.inc:359 +#: ../lib/modules/asteriskExtension.inc:816 +msgid "Application" +msgstr "Приложение" + +#: ../lib/modules/asteriskExtension.inc:87 +#: ../lib/modules/asteriskExtension.inc:165 +#: ../lib/modules/asteriskExtension.inc:367 +#: ../lib/modules/asteriskExtension.inc:817 +msgid "Application data" +msgstr "Данные приложения" + +#: ../lib/modules/zarafaUser.inc:152 ../lib/modules/zarafaUser.inc:156 +#: ../lib/modules/zarafaUser.inc:204 ../lib/modules/zarafaUser.inc:356 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/zarafaUser.inc:586 +#: ../lib/modules/zarafaUser.inc:989 ../lib/modules/zarafaUser.inc:1302 +#: ../lib/modules/zarafaUser.inc:1383 +msgid "Archive servers" +msgstr "Архивные серверы" + +#: ../lib/modules/zarafaUser.inc:584 +msgid "Archiving" +msgstr "Архивация" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:53 +msgid "Are you sure you want to permanently delete these objects?" +msgstr "Вы уверены, что Вы хотите совсем удалить эти объекты?" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:107 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:51 +msgid "Are you sure you want to permanently delete this object?" +msgstr "Вы уверены, что Вы хотите совсем удалить этот объект?" + +#: ../lib/modules/imapAccess.inc:118 +msgid "Ask" +msgstr "Спросить" + +#: ../lib/modules/eduPerson.inc:135 ../lib/modules/eduPerson.inc:139 +#: ../lib/modules/eduPerson.inc:211 ../lib/modules/eduPerson.inc:227 +#: ../lib/modules/eduPerson.inc:452 ../lib/modules/eduPerson.inc:775 +msgid "Assurance profiles" +msgstr "Заверенные профили" + +#: ../lib/modules/eduPerson.inc:136 ../lib/modules/eduPerson.inc:140 +msgid "" +"Assurance profiles are the set of standards that are met by an identity " +"assertion." +msgstr "" +"Заверенные профили это набор стандартов, которым удовлетворяет " +"подтверждение подлинности." + +#: ../lib/modules/asteriskAccount.inc:66 +msgid "Asterisk" +msgstr "Asterisk" + +#: ../lib/modules/asteriskAccount.inc:123 +msgid "Asterisk AMA (Automated Message Accounting) flags." +msgstr "Флаги Asterisk AMA (Automated Message Accounting)." + +#: ../lib/modules/asteriskExtension.inc:72 +msgid "Asterisk extension" +msgstr "Расширение Asterisk" + +#: ../lib/types/asteriskExt.inc:56 +msgid "Asterisk extensions" +msgstr "Расширения Asterisk" + +#: ../lib/types/asteriskExt.inc:65 +msgid "Asterisk extensions entries" +msgstr "Записи расширений Asterisk" + +#: ../lib/modules/asteriskAccount.inc:114 +#: ../lib/modules/asteriskAccount.inc:241 +#: ../lib/modules/asteriskAccount.inc:311 +msgid "Asterisk realm" +msgstr "Область Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:64 +msgid "Asterisk voicemail" +msgstr "Голосовая почта Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:111 +msgid "Asterisk voicemail context." +msgstr "Контекст голосовой почты Asterisk." + +#: ../lib/modules/sambaSamAccount.inc:547 +msgid "Atlantic time (Canada), Caracas" +msgstr "Atlantic time (Canada), Caracas" + +#: ../templates/3rdParty/pla/lib/import_functions.php:455 +msgid "Attempting to delete a non existent attribute" +msgstr "Попытка удалить несуществующий атрибут" + +#: ../templates/3rdParty/pla/lib/import_functions.php:466 +msgid "Attempting to replace a non existant attribute" +msgstr "Попытка заменить несуществующий атрибут" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Attribute" +msgstr "Атрибут" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:137 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:72 +msgid "Attribute doesn't exist" +msgstr "Атрибут не существует" + +#: ../lib/modules/customFields.inc:82 ../lib/modules/customFields.inc:982 +#: ../lib/modules/customFields.inc:1476 +msgid "Attribute name" +msgstr "Имя атрибута" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:117 +msgid "Attribute not available" +msgstr "Атрибут недоступен" + +#: ../templates/3rdParty/pla/lib/import_functions.php:535 +msgid "Attribute not valid" +msgstr "Атрибут неверен" + +#: ../templates/schema/schema.php:69 ../templates/schema/schema.php:70 +msgid "Attribute types" +msgstr "Типы атрибутов" + +#: ../lib/modules/selfRegistration.inc:70 +#: ../lib/modules/selfRegistration.inc:117 +msgid "Attributes" +msgstr "Атрибуты" + +#: ../lib/modules/sambaSamAccount.inc:563 +msgid "Auckland, Fiji, Kamchatka" +msgstr "Auckland, Fiji, Kamchatka" + +#: ../lib/modules/asteriskAccount.inc:115 +msgid "" +"Authentication realm for Asterisk server (default: asterisk). This value set " +"in sip.conf (option: \"realm\")." +msgstr "" +"Область аутентификации для сервера Asterisk (по умолчанию: asterisk). Это " +"значение настраивается в sip.conf (опция: \"realm\")." + +#: ../lib/modules/asteriskAccount.inc:223 +msgid "Authentication user for outbound proxies." +msgstr "Пользователь для аутентификации на исходящих прокси." + +#: ../lib/modules/authorizedServiceObject.inc:64 +#: ../lib/modules/authorizedServiceObject.inc:74 +#: ../lib/modules/authorizedServiceObject.inc:78 +#: ../lib/modules/authorizedServiceObject.inc:98 +#: ../lib/modules/authorizedServiceObject.inc:105 +#: ../lib/modules/authorizedServiceObject.inc:109 +#: ../lib/modules/authorizedServiceObject.inc:167 +#: ../lib/modules/authorizedServiceObject.inc:292 +msgid "Authorized Services" +msgstr "Authorized Services" + +#: ../lib/modules/authorizedServiceObject.inc:122 +msgid "Authorized services are invalid." +msgstr "Неверные Authorized services" + +#: ../lib/modules/customScripts.inc:133 +msgid "Automatical scripts" +msgstr "Автоматические скрипты" + +#: ../lib/modules/kolabGroup.inc:110 ../lib/modules/kolabGroup.inc:116 +#: ../lib/modules/puppetClient.inc:101 ../lib/modules/puppetClient.inc:153 +#: ../lib/modules/qmailUser.inc:124 ../lib/modules/qmailUser.inc:256 +#: ../lib/modules/zarafaContact.inc:80 ../lib/modules/zarafaContact.inc:572 +#: ../lib/modules/posixGroup.inc:376 ../lib/modules/posixGroup.inc:508 +#: ../lib/modules/eduPerson.inc:143 ../lib/modules/eduPerson.inc:148 +#: ../lib/modules/sambaSamAccount.inc:158 +#: ../lib/modules/sambaSamAccount.inc:389 ../lib/modules/posixAccount.inc:425 +#: ../lib/modules/posixAccount.inc:1680 ../lib/modules/zarafaUser.inc:129 +#: ../lib/modules/zarafaUser.inc:1369 ../lib/modules/shadowAccount.inc:99 +#: ../lib/modules/shadowAccount.inc:190 ../lib/modules/customFields.inc:777 +#: ../lib/modules/qmailGroup.inc:94 ../lib/modules/qmailGroup.inc:225 +#: ../lib/modules/authorizedServiceObject.inc:82 +#: ../lib/modules/authorizedServiceObject.inc:110 +#: ../lib/modules/passwordSelfReset.inc:141 +#: ../lib/modules/passwordSelfReset.inc:148 ../lib/modules/hostObject.inc:76 +#: ../lib/modules/hostObject.inc:94 +msgid "Automatically add this extension" +msgstr "Автоматически добавить это расширение" + +#: ../lib/types/automountType.inc:48 ../lib/types/automountType.inc:57 +msgid "Automount entries" +msgstr "Записи автомонтирования" + +#: ../lib/types/automountType.inc:87 ../lib/modules/automount.inc:43 +#: ../lib/modules/automount.inc:61 ../lib/modules/automount.inc:81 +#: ../lib/modules/automount.inc:97 ../lib/modules/automount.inc:107 +#: ../lib/modules/automount.inc:127 ../lib/modules/automount.inc:194 +msgid "Automount entry" +msgstr "Запись автомонтирования" + +#: ../lib/modules/automount.inc:107 ../lib/modules/automount.inc:108 +msgid "" +"Automount entry contains invalid characters. Only ASCII characters are " +"allowed." +msgstr "" +"Запись автомонтирования содержит неверные символы. Допустимы только символы " +"ASCII." + +#: ../lib/types/automountType.inc:215 +#, php-format +msgid "Automount entry count: %s" +msgstr "Количество записей автомонтирования : %s" + +#: ../lib/modules/qmailUser.inc:51 +msgid "Autoreply" +msgstr "Автоматический ответ" + +#: ../lib/modules/qmailUser.inc:109 ../lib/modules/qmailUser.inc:232 +#: ../lib/modules/qmailUser.inc:343 ../lib/modules/qmailUser.inc:417 +#: ../lib/modules/qmailUser.inc:632 ../lib/modules/qmailUser.inc:1194 +msgid "Autoreply text" +msgstr "Текст автоматического ответа" + +#: ../templates/config/conftypes.php:215 ../lib/modules/customScripts.inc:54 +msgid "Available account types" +msgstr "Доступные типы аккаунтов" + +#: ../lib/modules/customScripts.inc:55 ../lib/modules/customScripts.inc:68 +msgid "Available actions" +msgstr "Доступные действия" + +#: ../lib/modules/posixAccount.inc:1465 ../lib/modules/posixAccount.inc:1498 +#: ../lib/modules/windowsUser.inc:728 ../lib/modules/nisnetgroup.inc:379 +#: ../lib/modules/groupOfNamesUser.inc:113 +msgid "Available groups" +msgstr "Доступные группы" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:93 +msgid "Available members" +msgstr "Доступные участники" + +#: ../templates/config/confmodules.php:314 +msgid "Available modules" +msgstr "Доступные модули" + +#: ../lib/modules/posixGroup.inc:293 ../lib/modules/asteriskExtension.inc:456 +msgid "Available users" +msgstr "Доступные пользователи" + +#: ../lib/modules/sambaSamAccount.inc:1315 +msgid "Available workstations" +msgstr "Доступные рабочие станции" + +#: ../lib/modules/sambaSamAccount.inc:550 +msgid "Azores, Cape Verde Islands" +msgstr "Azores, Cape Verde Islands" + +#: ../lib/modules/dhcp_settings.inc:96 +msgid "B-Node (0x01)" +msgstr "B-Node (0x01)" + +#: ../templates/massBuildAccounts.php:276 ../lib/modules/zarafaContact.inc:425 +#: ../lib/modules/posixGroup.inc:338 ../lib/modules/zarafaGroup.inc:494 +#: ../lib/modules/device.inc:309 ../lib/modules/sambaSamAccount.inc:1332 +#: ../lib/modules/sambaSamAccount.inc:1616 +#: ../lib/modules/posixAccount.inc:1538 ../lib/modules/posixAccount.inc:1612 +#: ../lib/modules/zarafaUser.inc:952 ../lib/modules/zarafaUser.inc:1001 +#: ../lib/modules/windowsUser.inc:772 ../lib/modules/sambaGroupMapping.inc:498 +#: ../lib/modules/nisnetgroup.inc:393 ../lib/modules/inetOrgPerson.inc:2145 +#: ../lib/modules/inetOrgPerson.inc:2221 ../lib/modules/inetOrgPerson.inc:2308 +#: ../lib/modules/qmailGroup.inc:858 ../lib/modules/windowsGroup.inc:560 +#: ../lib/modules/groupOfNames.inc:388 ../lib/modules/groupOfNames.inc:523 +msgid "Back" +msgstr "Назад" + +#: ../lib/types/dhcp.inc:47 +msgid "Back to DHCP list" +msgstr "Вернуться к списку DHCP" + +#: ../lib/types/nisObjectType.inc:30 +msgid "Back to NIS object list" +msgstr "Вернуться к списку объектов NIS" + +#: ../lib/baseType.inc:48 +msgid "Back to account list" +msgstr "Вернуться к списку аккаунтов" + +#: ../lib/types/zarafaAddressListType.inc:44 +msgid "Back to address list" +msgstr "Вернуться к списку адресов" + +#: ../lib/types/mailAlias.inc:44 ../lib/types/alias.inc:44 +msgid "Back to alias list" +msgstr "Вернуться к списку псевдонимов" + +#: ../lib/types/automountType.inc:35 +msgid "Back to automount list" +msgstr "Вернуться к списку автомонтирования" + +#: ../lib/types/smbDomain.inc:44 +msgid "Back to domain list" +msgstr "Вернуться к списку доменов" + +#: ../lib/types/asteriskExt.inc:47 +msgid "Back to extensions list" +msgstr "Вернуться к списку расширений" + +#: ../templates/lists/userlink.php:63 ../lib/types/gon.inc:44 +#: ../lib/types/zarafaDynamicGroupType.inc:44 ../lib/types/group.inc:45 +#: ../lib/types/netgroup.inc:44 +msgid "Back to group list" +msgstr "Вернуться к списку групп" + +#: ../lib/types/host.inc:44 +msgid "Back to host list" +msgstr "Вернуться к списку хостов" + +#: ../templates/delete.php:289 +msgid "Back to list" +msgstr "Вернуться к списку" + +#: ../templates/config/mainmanage.php:218 ../templates/config/index.php:79 +#: ../templates/config/index.php:133 ../templates/config/conflogin.php:117 +#: ../templates/config/conflogin.php:196 ../templates/config/mainlogin.php:124 +#: ../templates/config/mainlogin.php:178 +#: ../templates/selfService/selfServiceSP.php:127 +#: ../templates/selfService/adminLogin.php:114 +#: ../templates/selfService/adminLogin.php:191 +msgid "Back to login" +msgstr "Вернуться на начало" + +#: ../lib/types/ppolicyType.inc:30 +msgid "Back to policy list" +msgstr "Вернуться к списку политик" + +#: ../templates/config/profmanage.php:188 +#: ../templates/config/profmanage.php:324 +#: ../templates/selfService/profManage.php:144 +#: ../templates/selfService/profManage.php:262 +msgid "Back to profile login" +msgstr "Вернуться назад" + +#: ../lib/types/sudo.inc:30 +msgid "Back to sudo role list" +msgstr "Вернуться к списку ролей sudo" + +#: ../lib/types/user.inc:44 +msgid "Back to user list" +msgstr "Вернуться к списку пользователей" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:64 +msgid "Back up" +msgstr "Резервное копирование" + +#: ../templates/serverInfo.php:163 +msgid "Backends" +msgstr "Бэкенды" + +#: ../lib/modules/sudoRole.inc:130 +msgid "Backup script" +msgstr "Скрипт резервного копирования" + +#: ../lib/modules/sambaSamAccount.inc:554 +msgid "Baghdad, Riyadh, Moscow" +msgstr "Baghdad, Riyadh, Moscow" + +#: ../lib/modules/sambaSamAccount.inc:558 +msgid "Bangkok, Hanoi, Jakarta" +msgstr "Bangkok, Hanoi, Jakarta" + +#: ../lib/types/zarafaAddressListType.inc:93 +#: ../lib/types/zarafaDynamicGroupType.inc:94 +#: ../lib/modules/zarafaDynamicGroup.inc:80 +#: ../lib/modules/zarafaDynamicGroup.inc:94 +#: ../lib/modules/zarafaDynamicGroup.inc:145 +#: ../lib/modules/zarafaDynamicGroup.inc:163 +#: ../lib/modules/zarafaDynamicGroup.inc:191 +#: ../lib/modules/zarafaDynamicGroup.inc:224 +#: ../lib/modules/zarafaDynamicGroup.inc:466 +#: ../lib/modules/zarafaAddressList.inc:68 +#: ../lib/modules/zarafaAddressList.inc:82 +#: ../lib/modules/zarafaAddressList.inc:121 +#: ../lib/modules/zarafaAddressList.inc:137 +#: ../lib/modules/zarafaAddressList.inc:162 +#: ../lib/modules/zarafaAddressList.inc:191 +#: ../lib/modules/zarafaAddressList.inc:335 +msgid "Base" +msgstr "База" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:142 +#: ../templates/3rdParty/pla/htdocs/export_form.php:31 +msgid "Base (base dn only)" +msgstr "База (только базовый dn)" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:121 +#: ../templates/3rdParty/pla/lib/QueryRender.php:506 +#: ../templates/3rdParty/pla/htdocs/export_form.php:59 +msgid "Base DN" +msgstr "Базовый DN" + +#: ../templates/config/confmodules.php:212 ../help/help.inc:140 +msgid "Base module" +msgstr "Основной модуль" + +#: ../templates/pdfedit/pdfpage.php:441 +msgid "Beginning" +msgstr "Начало" + +#: ../lib/modules/sambaSamAccount.inc:559 +msgid "Beijing, Perth, Singapore" +msgstr "Beijing, Perth, Singapore" + +#: ../templates/3rdParty/pla/lib/PageRender.php:644 +#: ../templates/3rdParty/pla/lib/PageRender.php:648 +msgid "Binary value" +msgstr "Бинарное значение" + +#: ../templates/serverInfo.php:286 ../templates/serverInfo.php:375 +msgid "Bind" +msgstr "Связать" + +#: ../templates/config/confmain.php:427 +msgid "Bind password" +msgstr "Пароль для связи" + +#: ../templates/config/confmain.php:425 +msgid "Bind user" +msgstr "Пользователь для связи" + +#: ../help/help.inc:124 +msgid "Bind user and password" +msgstr "Имя пользователя и пароль для связи" + +#: ../lib/modules/quota.inc:53 ../lib/modules/systemQuotas.inc:94 +msgid "Block hard quota" +msgstr "Жесткая квота на используемое место" + +#: ../lib/modules/quota.inc:53 ../lib/modules/quota.inc:54 +#: ../lib/modules/systemQuotas.inc:94 ../lib/modules/systemQuotas.inc:95 +msgid "" +"Block hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Жесткая квота на используемое место содержит недопустимые символы. Допустимы " +"только целые числа." + +#: ../lib/modules/quota.inc:59 ../lib/modules/systemQuotas.inc:100 +msgid "Block quota" +msgstr "Квота на используемое место" + +#: ../lib/modules/quota.inc:51 ../lib/modules/systemQuotas.inc:92 +msgid "Block soft quota" +msgstr "Мягкая квота на используемое место" + +#: ../lib/modules/quota.inc:51 ../lib/modules/quota.inc:52 +#: ../lib/modules/systemQuotas.inc:92 ../lib/modules/systemQuotas.inc:93 +msgid "" +"Block soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Мягкая квота на используемое место содержит недопустимые символы. Допустимы " +"только натуральные числа." + +#: ../lib/modules/quota.inc:59 ../lib/modules/quota.inc:60 +#: ../lib/modules/systemQuotas.inc:100 ../lib/modules/systemQuotas.inc:101 +msgid "Block soft quota must be smaller than block hard quota." +msgstr "Мягкая квота на используемое место должна быть меньше жесткой квоты." + +#: ../lib/modules/qmailGroup.inc:65 ../lib/modules/qmailGroup.inc:136 +#: ../lib/modules/qmailGroup.inc:140 ../lib/modules/qmailGroup.inc:256 +#: ../lib/modules/qmailGroup.inc:368 ../lib/modules/qmailGroup.inc:424 +#: ../lib/modules/qmailGroup.inc:515 ../lib/modules/qmailGroup.inc:1056 +msgid "Bounce admin email" +msgstr "Не принимать почту администратора " + +#: ../lib/modules/sambaSamAccount.inc:548 +msgid "Brazil, Buenos Aires" +msgstr "Brazil, Buenos Aires" + +#: ../templates/3rdParty/pla/htdocs/copy.php:53 +msgid "Building snapshot of tree to copy" +msgstr "Построение снимка дерева для копирования" + +#: ../lib/modules/sambaGroupMapping.inc:73 +msgid "Builtin group" +msgstr "Встроенная группа" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:63 +msgid "Bulk edit the following DNs" +msgstr "Групповое редактирование следующих DN" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:48 +msgid "Bulk update the following DNs" +msgstr "Групповое обновление следующих DN" + +#: ../lib/modules/inetOrgPerson.inc:97 ../lib/modules/inetOrgPerson.inc:145 +#: ../lib/modules/inetOrgPerson.inc:215 ../lib/modules/inetOrgPerson.inc:344 +#: ../lib/modules/inetOrgPerson.inc:438 ../lib/modules/inetOrgPerson.inc:668 +#: ../lib/modules/inetOrgPerson.inc:832 ../lib/modules/inetOrgPerson.inc:836 +#: ../lib/modules/inetOrgPerson.inc:1932 ../lib/modules/inetOrgPerson.inc:2375 +#: ../lib/modules/inetOrgPerson.inc:3123 +msgid "Business category" +msgstr "Бизнес-категория" + +#: ../lib/modules/inetOrgPerson.inc:833 ../lib/modules/inetOrgPerson.inc:837 +msgid "Business category (e.g. Administration, IT-Services, Manangement, ...)" +msgstr "Бизнес-категория (т.е. Администраторы, Менеджеры, IT-поддержка,...)" + +#: ../help/help.inc:157 +msgid "" +"By default LAM will show all accounts that match the selected account " +"modules." +msgstr "" +"По умолчанию, LAM будет показывать все аккаунты, которые соответствуют " +"выбранным модулям аккаунта." + +#: ../lib/modules/customScripts.inc:82 +msgid "" +"By default, LAM will show the executed command along with any output of it. " +"If you want to hide the command and only show the output then activate this " +"option." +msgstr "" +"По умолчанию, LAM покажет исполняемую команду вместе с ее выводом. Если вы " +"хотите скрыть команду и показывать только ее вывод, тогда активируйте эту " +"опцию." + +#: ../templates/serverInfo.php:253 ../templates/serverInfo.php:259 +msgid "Bytes sent" +msgstr "Байт послано" + +#: ../templates/masscreate.php:247 +msgid "CSV file" +msgstr "CSV файл" + +#: ../help/help.inc:103 +msgid "Cache timeout" +msgstr "Таймаут кэша" + +#: ../lib/modules/asteriskAccount.inc:126 +#: ../lib/modules/asteriskAccount.inc:253 +#: ../lib/modules/asteriskAccount.inc:334 +#: ../lib/modules/asteriskAccount.inc:417 +#: ../lib/modules/asteriskAccount.inc:710 +#: ../lib/modules/asteriskAccount.inc:1194 +msgid "Call groups" +msgstr "Группы вызовов" + +#: ../lib/modules/asteriskAccount.inc:94 +#: ../lib/modules/asteriskAccount.inc:328 +#: ../lib/modules/asteriskAccount.inc:366 +#: ../lib/modules/asteriskAccount.inc:655 +#: ../lib/modules/asteriskAccount.inc:1188 +msgid "Caller ID" +msgstr "Caller ID" + +#: ../lib/modules/sambaSamAccount.inc:296 +#: ../lib/modules/sambaSamAccount.inc:299 +#: ../lib/modules/sambaSamAccount.inc:302 +#: ../lib/modules/sambaSamAccount.inc:308 ../lib/modules/posixAccount.inc:524 +#: ../lib/modules/windowsUser.inc:184 ../lib/modules/windowsUser.inc:187 +#: ../lib/modules/sambaGroupMapping.inc:152 +#: ../lib/modules/shadowAccount.inc:171 ../lib/modules/shadowAccount.inc:175 +#: ../lib/modules/shadowAccount.inc:179 ../lib/modules/shadowAccount.inc:183 +#: ../lib/modules/groupOfNamesUser.inc:54 +msgid "Can be left empty." +msgstr "Можно оставить пустым." + +#: ../lib/modules/asteriskAccount.inc:214 +#: ../lib/modules/asteriskAccount.inc:297 +#: ../lib/modules/asteriskAccount.inc:356 +#: ../lib/modules/asteriskAccount.inc:577 +#: ../lib/modules/asteriskAccount.inc:927 +#: ../lib/modules/asteriskAccount.inc:1216 +msgid "Can call forward" +msgstr "Может переадресовать звонок" + +#: ../templates/lists/changePassword.php:312 +#: ../templates/lists/changePassword.php:341 +#: ../templates/lists/changePassword.php:382 +#: ../templates/lists/changePassword.php:413 ../templates/ou_edit.php:121 +#: ../templates/config/profmanage.php:253 +#: ../templates/config/profmanage.php:265 +#: ../templates/config/profmanage.php:274 +#: ../templates/config/profmanage.php:291 +#: ../templates/config/profmanage.php:302 +#: ../templates/config/mainmanage.php:389 +#: ../templates/config/confmodules.php:227 +#: ../templates/config/confmain.php:453 +#: ../templates/config/moduleSettings.php:238 +#: ../templates/config/conftypes.php:321 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminMain.php:663 +#: ../templates/pdfedit/pdfpage.php:638 ../templates/pdfedit/pdfmain.php:195 +#: ../templates/pdfedit/pdfmain.php:202 ../templates/pdfedit/pdfmain.php:208 +#: ../templates/delete.php:121 ../templates/profedit/profilepage.php:241 +#: ../templates/profedit/profilemain.php:197 +#: ../templates/profedit/profilemain.php:203 +#: ../templates/profedit/profilemain.php:209 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:197 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:83 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:136 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:121 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:119 +#: ../templates/initsuff.php:191 ../lib/types/automountType.inc:234 +#: ../lib/types/user.inc:304 ../lib/modules/kolabGroup.inc:275 +#: ../lib/modules/mitKerberos.inc:691 ../lib/modules/qmailUser.inc:914 +#: ../lib/modules/zarafaContact.inc:380 ../lib/modules/windowsHost.inc:219 +#: ../lib/modules/zarafaGroup.inc:449 ../lib/modules/device.inc:260 +#: ../lib/modules/sambaSamAccount.inc:1407 +#: ../lib/modules/sambaSamAccount.inc:1456 +#: ../lib/modules/sambaSamAccount.inc:1542 ../lib/modules/zarafaUser.inc:907 +#: ../lib/modules/kolabUser.inc:502 ../lib/modules/sambaGroupMapping.inc:477 +#: ../lib/modules/shadowAccount.inc:469 ../lib/modules/nisnetgroup.inc:483 +#: ../lib/modules/inetOrgPerson.inc:2186 ../lib/modules/freeRadius.inc:478 +#: ../lib/modules/aliasEntry.inc:140 ../lib/modules/aliasEntry.inc:160 +#: ../lib/modules/qmailGroup.inc:816 ../lib/modules/heimdalKerberos.inc:597 +#: ../lib/modules/windowsGroup.inc:459 ../lib/modules/windowsGroup.inc:511 +#: ../lib/modules/groupOfNames.inc:339 ../lib/modules/groupOfNames.inc:474 +#: ../lib/modules/nisMailAlias.inc:284 ../lib/lists.inc:704 +#: ../lib/lists.inc:785 ../lib/modules.inc:1200 +msgid "Cancel" +msgstr "Отмена" + +#: ../templates/login.php:572 ../templates/login.php:630 +#: ../templates/login.php:635 +#: ../templates/selfService/selfServiceLogin.php:107 +#: ../templates/selfService/selfServiceLogin.php:143 +#: ../templates/selfService/selfServiceLogin.php:148 +#: ../templates/selfService/selfServiceMain.php:168 +#: ../templates/selfService/selfServiceMain.php:182 +#: ../lib/modules/selfRegistration.inc:608 +msgid "Cannot connect to specified LDAP server. Please try again." +msgstr "" +"Невозможно подключиться к выбранному LDAP серверу. Пожалуйста, попробуйте " +"еще раз." + +#: ../templates/login.php:313 ../lib/config.inc:1495 +msgid "Cannot open config file!" +msgstr "Невозможно открыть конфигурационный файл!" + +#: ../lib/modules/imapAccess.inc:167 +msgid "Cannot update quota." +msgstr "Невозможно обновить квоту." + +#: ../lib/config.inc:1507 ../lib/config.inc:1515 +msgid "" +"Cannot write certificate file. Please check the permissions of config/" +"serverCerts.pem." +msgstr "" +"Невозможно записать файл сертификата. Пожалуйста, проверьте права доступа к " +"config/serverCerts.pem." + +#: ../lib/modules/zarafaUser.inc:113 ../lib/modules/zarafaUser.inc:200 +#: ../lib/modules/zarafaUser.inc:288 ../lib/modules/zarafaUser.inc:405 +#: ../lib/modules/zarafaUser.inc:447 ../lib/modules/zarafaUser.inc:577 +#: ../lib/modules/zarafaUser.inc:1298 +msgid "Capacity" +msgstr "Ёмкость" + +#: ../templates/selfService/adminMain.php:461 +msgid "Captions and labels" +msgstr "Заголовки и подписи" + +#: ../lib/modules/inetOrgPerson.inc:144 ../lib/modules/inetOrgPerson.inc:340 +#: ../lib/modules/inetOrgPerson.inc:592 ../lib/modules/inetOrgPerson.inc:662 +#: ../lib/modules/inetOrgPerson.inc:856 ../lib/modules/inetOrgPerson.inc:1907 +#: ../lib/modules/inetOrgPerson.inc:2377 ../lib/modules/inetOrgPerson.inc:3101 +msgid "Car license" +msgstr "Водительские права" + +#: ../lib/modules/sambaSamAccount.inc:552 +msgid "Central Europe Time, Paris, Berlin" +msgstr "Central Europe Time, Paris, Berlin" + +#: ../lib/modules/sambaSamAccount.inc:545 +msgid "Central Time (US & Canada), Mexico City" +msgstr "Central Time (US & Canada), Mexico City" + +#: ../templates/selfService/adminMain.php:479 +#: ../lib/modules/mitKerberos.inc:378 ../lib/modules/mitKerberos.inc:389 +#: ../lib/modules/mitKerberos.inc:687 ../lib/modules/qmailUser.inc:654 +#: ../lib/modules/qmailUser.inc:910 ../lib/modules/zarafaContact.inc:218 +#: ../lib/modules/windowsHost.inc:148 ../lib/modules/windowsHost.inc:218 +#: ../lib/modules/zarafaGroup.inc:262 ../lib/modules/device.inc:187 +#: ../lib/modules/sambaSamAccount.inc:1167 +#: ../lib/modules/sambaSamAccount.inc:1452 ../lib/modules/zarafaUser.inc:498 +#: ../lib/modules/zarafaUser.inc:589 ../lib/modules/shadowAccount.inc:346 +#: ../lib/modules/shadowAccount.inc:465 ../lib/modules/inetOrgPerson.inc:2059 +#: ../lib/modules/freeRadius.inc:334 ../lib/modules/freeRadius.inc:474 +#: ../lib/modules/asteriskExtension.inc:229 ../lib/modules/aliasEntry.inc:93 +#: ../lib/modules/qmailGroup.inc:565 ../lib/modules/passwordSelfReset.inc:311 +#: ../lib/modules/heimdalKerberos.inc:321 +#: ../lib/modules/heimdalKerberos.inc:332 +#: ../lib/modules/heimdalKerberos.inc:593 ../lib/modules/windowsGroup.inc:338 +#: ../lib/modules/windowsGroup.inc:458 ../lib/modules/groupOfNames.inc:214 +#: ../lib/modules/groupOfNames.inc:237 +msgid "Change" +msgstr "Изменить" + +#: ../templates/lists/changePassword.php:218 +msgid "Change Asterisk password" +msgstr "Сменить пароль Asterisk" + +#: ../templates/lists/changePassword.php:230 +msgid "Change Asterisk voicemail password" +msgstr "Сменить пароль ящика голосовой почты Asterisk" + +#: ../lib/modules/posixGroup.inc:216 ../lib/modules/posixGroup.inc:487 +msgid "Change GID number of users and hosts" +msgstr "Сменить номер GID пользователей и компьютеров" + +#: ../templates/lists/changePassword.php:221 +#: ../templates/lists/changePassword.php:224 +msgid "Change Kerberos password" +msgstr "Сменить пароль Kerberos" + +#: ../templates/lists/changePassword.php:211 +msgid "Change Samba LM password" +msgstr "Сменить пароль Samba LM" + +#: ../templates/lists/changePassword.php:209 +msgid "Change Samba NT password" +msgstr "Сменить пароль Samba NT" + +#: ../templates/lists/changePassword.php:206 +msgid "Change Unix password" +msgstr "Сменить пароль Unix" + +#: ../templates/lists/changePassword.php:227 +msgid "Change Windows password" +msgstr "Сменить пароль Windows" + +#: ../lib/types/user.inc:304 +msgid "Change account status" +msgstr "Сменить статус аккаунта" + +#: ../templates/config/profmanage.php:298 +#: ../templates/config/profmanage.php:301 ../help/help.inc:134 +msgid "Change default profile" +msgstr "Изменение профиля по умолчанию" + +#: ../lib/lists.inc:785 +msgid "Change list settings" +msgstr "Изменить настройки списка" + +#: ../templates/config/mainmanage.php:374 ../help/help.inc:136 +msgid "Change master password" +msgstr "Изменить мастер-пароль" + +#: ../templates/lists/changePassword.php:242 +#: ../templates/lists/changePassword.php:309 +#: ../templates/lists/changePassword.php:311 +#: ../templates/lists/changePassword.php:338 +#: ../templates/lists/changePassword.php:340 ../lib/types/user.inc:669 +#: ../help/help.inc:101 +msgid "Change password" +msgstr "Изменение пароля" + +#: ../templates/lists/changePassword.php:249 +#: ../templates/lists/changePassword.php:250 +msgid "Change password now?" +msgstr "Сменить пароль сейчас?" + +#: ../templates/config/confmain.php:260 +msgid "Change passwords" +msgstr "Изменение паролей" + +#: ../lib/lists.inc:786 +msgid "Change settings" +msgstr "Изменение настроек" + +#: ../lib/modules/posixAccount.inc:1143 +msgid "Changed value because only ASCII characters are allowed." +msgstr "Изменять значение допускается только ASCII символами." + +#: ../lib/modules/passwordSelfReset.inc:166 +msgid "Charlie" +msgstr "Charlie" + +#: ../lib/modules/posixAccount.inc:1387 +msgid "Check home directories" +msgstr "Проверить домашние директории" + +#: ../templates/tests/index.php:54 ../lib/tools/tests.inc:112 +msgid "Check if quotas and homedirectories can be managed." +msgstr "Проверить, можно ли управлять домашними каталогами и квотами." + +#: ../templates/tests/index.php:60 ../lib/tools/tests.inc:118 +msgid "" +"Check if the LDAP schema fits the requirements of the selected account " +"modules." +msgstr "" +"Проверьте, соответствует ли схема LDAP требованиям выбранных модулей " +"аккаунта." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2401 +msgid "Check password" +msgstr "Проверить пароль" + +#: ../templates/tests/lamdaemonTest.php:87 +msgid "Check quotas" +msgstr "Проверить квоты" + +#: ../templates/masscreate.php:241 +msgid "" +"Check your input carefully. LAM will only do some basic checks on the upload " +"data." +msgstr "" +"Тщательно проверьте введенные данные. LAM делает только основные проверки " +"загруженных данных." + +#: ../lib/modules/customFields.inc:2222 +msgid "Checkbox" +msgstr "Чекбокс" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1224 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1229 +msgid "Children" +msgstr "Дети" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:23 +msgid "Choose entry" +msgstr "Выберите запись" + +#: ../lib/modules/imapAccess.inc:83 +msgid "" +"Choose the way how to provide the IMAP admin password. You can use the same " +"password as for the LAM login or LAM will ask you for a password when it is " +"required." +msgstr "" +"Выберите способ, как предоставить пароль администратора IMAP. Вы можете " +"использовать тот же самый пароль, как для входа в LAM, или LAM спросит о " +"пароле, когда он потребуется." + +#: ../lib/modules/puppetClient.inc:85 ../lib/modules/puppetClient.inc:89 +#: ../lib/modules/puppetClient.inc:133 ../lib/modules/puppetClient.inc:148 +#: ../lib/modules/puppetClient.inc:161 ../lib/modules/puppetClient.inc:264 +#: ../lib/modules/puppetClient.inc:426 +msgid "Classes" +msgstr "Классы" + +#: ../lib/lists.inc:381 +msgid "Clear filter" +msgstr "Очистить фильтр" + +#: ../lib/config.inc:211 +msgid "Click here if you are not directed to the next page." +msgstr "Нажмите здесь, если Вы не были перемещены на следующую страницу." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2349 +msgid "Click to popup a dialog to select a date graphically" +msgstr "Кликните для появления диалога с графическим выбором даты" + +#: ../templates/3rdParty/pla/lib/functions.php:2293 +msgid "Click to popup a dialog to select an entry (DN) graphically" +msgstr "Кликните для появления диалога с графическим выбором записи (DN)" + +#: ../lib/types/user.inc:619 +msgid "Click to switch between thumbnail and original size." +msgstr "" +"Кликните для переключения между уменьшенным и оригинальным размером " +"изображения." + +#: ../lib/modules/sambaSamAccount.inc:234 +#: ../lib/modules/sambaSamAccount.inc:368 +#: ../lib/modules/sambaSamAccount.inc:1510 +#: ../lib/modules/sambaSamAccount.inc:1918 +msgid "Client printer is default" +msgstr "Принтер клиента является принтером по умолчанию" + +#: ../templates/schema/schema.php:199 +msgid "Collective" +msgstr "Коллективный" + +#: ../templates/masscreate.php:278 ../lib/modules/customFields.inc:114 +#: ../lib/modules/customFields.inc:2085 +msgid "Columns" +msgstr "Столбцы" + +#: ../lib/modules/sambaSamAccount.inc:308 +msgid "" +"Comma separated list of Samba workstations the user is allowed to login. " +"Empty means every workstation." +msgstr "" +"Список компьютеров с Samba (разделенных запятой) на которые пользователю " +"позволено входить. Пусто - любой компьютер." + +#: ../lib/modules/authorizedServiceObject.inc:79 +msgid "Comma separated list of services (e.g. sshd, imap, ftp)." +msgstr "Список сервисов, разделенный запятыми (например sshd, imap, ftp)." + +#: ../lib/types/sudo.inc:80 ../lib/modules/customScripts.inc:135 +msgid "Command" +msgstr "Команда" + +#: ../lib/modules/sudoRole.inc:71 ../lib/modules/sudoRole.inc:97 +#: ../lib/modules/sudoRole.inc:146 ../lib/modules/sudoRole.inc:175 +#: ../lib/modules/sudoRole.inc:184 ../lib/modules/sudoRole.inc:318 +#: ../lib/modules/sudoRole.inc:686 +msgid "Commands" +msgstr "Команды" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:117 +msgid "Commit" +msgstr "Подтвердить" + +#: ../lib/modules/posixAccount.inc:431 +msgid "Common examples are \"@givenname@%sn%\" or \"%givenname%.%sn%\"." +msgstr "Типичные примеры : \"@givenname@%sn%\" или \"%givenname%.%sn%\"." + +#: ../templates/config/mainmanage.php:316 ../lib/modules/posixAccount.inc:129 +#: ../lib/modules/posixAccount.inc:178 ../lib/modules/posixAccount.inc:341 +#: ../lib/modules/posixAccount.inc:414 ../lib/modules/posixAccount.inc:527 +#: ../lib/modules/posixAccount.inc:549 ../lib/modules/posixAccount.inc:1331 +#: ../lib/modules/posixAccount.inc:1747 ../lib/modules/posixAccount.inc:2447 +#: ../lib/modules/inetOrgPerson.inc:90 ../lib/modules/inetOrgPerson.inc:695 +#: ../lib/modules/inetOrgPerson.inc:808 ../lib/modules/inetOrgPerson.inc:1430 +#: ../lib/modules/inetOrgPerson.inc:2372 ../lib/modules/inetOrgPerson.inc:2503 +#: ../lib/modules/asteriskExtension.inc:111 +msgid "Common name" +msgstr "Общее имя" + +#: ../lib/modules/asteriskExtension.inc:112 +msgid "Common name of the Asterisk extension." +msgstr "CN расширения Asterisk." + +#: ../templates/serverInfo.php:335 ../templates/serverInfo.php:396 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1172 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:60 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:39 +msgid "Compare" +msgstr "Сравнить" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:28 +#, php-format +msgid "Compare another DN with %s" +msgstr "Сравнить другой DN с %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1169 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +msgid "Compare this DN with another" +msgstr "Сравнить этот DN с другим" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +msgid "Compare with another entry" +msgstr "Сравнить с другой записью" + +#: ../templates/3rdParty/pla/htdocs/compare.php:42 +msgid "Comparing the following DNs" +msgstr "Сравнивая следующие DN" + +#: ../templates/serverInfo.php:284 ../templates/serverInfo.php:371 +msgid "Completed" +msgstr "Завершено" + +#: ../templates/serverInfo.php:114 +msgid "Config suffix" +msgstr "Суффикс конфигурации" + +#: ../templates/config/index.php:50 +msgid "Configuration overview" +msgstr "Обзор конфигурации" + +#: ../lib/modules/qmailUser.inc:119 ../lib/modules/qmailUser.inc:172 +#: ../lib/modules/qmailUser.inc:252 ../lib/modules/qmailUser.inc:385 +#: ../lib/modules/qmailUser.inc:432 ../lib/modules/qmailUser.inc:612 +#: ../lib/modules/qmailUser.inc:1225 +msgid "Configuration type" +msgstr "Тип конфигурации" + +#: ../lib/modules/qmailGroup.inc:89 ../lib/modules/qmailGroup.inc:221 +#: ../lib/modules/qmailGroup.inc:354 ../lib/modules/qmailGroup.inc:404 +#: ../lib/modules/qmailGroup.inc:616 ../lib/modules/qmailGroup.inc:1078 +msgid "Confirm sender" +msgstr "Потвердите отправителя" + +#: ../lib/modules/selfRegistration.inc:74 +msgid "Confirmation mail settings" +msgstr "Настройки электронной почты для писем с подтверждением" + +#: ../lib/modules/qmailGroup.inc:67 ../lib/modules/qmailGroup.inc:96 +#: ../lib/modules/qmailGroup.inc:145 ../lib/modules/qmailGroup.inc:264 +#: ../lib/modules/qmailGroup.inc:371 ../lib/modules/qmailGroup.inc:584 +#: ../lib/modules/qmailGroup.inc:1057 +msgid "Confirmation text" +msgstr "Текст подтверждения" + +#: ../lib/modules/qmailGroup.inc:146 +msgid "" +"Confirmation text that is used if sender-confirmation is used. The usual " +"%HEADER% magic of qmail-reply etc. can be used here." +msgstr "" +"Текст подтверждения,если используется потверждение отправителя. Здесь может " +"быть использован обычный %HEADER% макрос qmail-reply и т.д." + +#: ../templates/config/confmodules.php:394 +msgid "Conflicting module:" +msgstr "Конфликтующий модуль:" + +#: ../lib/modules/sambaSamAccount.inc:232 +#: ../lib/modules/sambaSamAccount.inc:362 +#: ../lib/modules/sambaSamAccount.inc:1506 +#: ../lib/modules/sambaSamAccount.inc:1908 +msgid "Connect client drives" +msgstr "Подключение дисков клиента" + +#: ../lib/modules/sambaSamAccount.inc:233 +#: ../lib/modules/sambaSamAccount.inc:365 +#: ../lib/modules/sambaSamAccount.inc:1508 +#: ../lib/modules/sambaSamAccount.inc:1913 +msgid "Connect client printers" +msgstr "Подключение принтеров клиента" + +#: ../templates/serverInfo.php:230 +msgid "Connection statistics" +msgstr "Статистика соединения" + +#: ../lib/modules/sambaSamAccount.inc:229 +#: ../lib/modules/sambaSamAccount.inc:1494 +#: ../lib/modules/sambaSamAccount.inc:1901 +msgid "Connection time limit" +msgstr "Время ожидания подключения" + +#: ../lib/modules/windowsUser.inc:534 ../lib/modules/inetOrgPerson.inc:1702 +msgid "Contact data" +msgstr "Контактные данные" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:721 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1301 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +msgid "Container" +msgstr "Контейнер" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1458 +msgid "Container and object classes" +msgstr "Классы контейнера и объекта" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:27 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:88 +#: ../templates/3rdParty/pla/htdocs/copy.php:108 +msgid "Copy" +msgstr "Копировать" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:32 +#, php-format +msgid "Copy %s to a new object." +msgstr "Копировать %s в новый объект." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1098 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1102 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1103 +msgid "Copy or move this entry" +msgstr "Копировать или переместить эту запись" + +#: ../templates/3rdParty/pla/htdocs/copy.php:130 +#, php-format +msgid "Copy successful. DN %s has been created." +msgstr "Копирование завершено. DN %s было создано." + +#: ../templates/3rdParty/pla/htdocs/copy.php:48 +msgid "Copying" +msgstr "Копирование" + +#: ../templates/3rdParty/pla/htdocs/import.php:37 +msgid "Could not add object" +msgstr "Невозможно добавить объект" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:370 +msgid "Could not add the object to the LDAP server." +msgstr "Невозможно добавить объект к серверу LDAP." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:30 +msgid "Could not delete attribute value." +msgstr "Невозможно удалить значение атрибута." + +#: ../templates/3rdParty/pla/htdocs/import.php:38 +msgid "Could not delete object" +msgstr "Невозможно удалить объект" + +#: ../templates/3rdParty/pla/htdocs/delete.php:37 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:47 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:73 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:90 +msgid "Could not delete the entry." +msgstr "Невозможно удалить запись." + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:37 +#, php-format +msgid "Could not fetch binary data from LDAP server for attribute [%s]." +msgstr "Невозможно получить двоичные данные с LDAP сервера для атрибута [%s]." + +#: ../templates/3rdParty/pla/lib/functions.php:1946 +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:60 +#, php-format +msgid "Could not fetch jpeg data from LDAP server for attribute [%s]." +msgstr "Невозможно получить данные jpeg от LDAP сервера для атрибута [%s]." + +#: ../templates/3rdParty/pla/htdocs/import.php:41 +msgid "Could not modify object" +msgstr "Невозможно изменить объект" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:528 +msgid "Could not perform ldap_modify operation." +msgstr "Невозможно выполнить операцию ldap_modify." + +#: ../templates/config/profmanage.php:100 +#: ../templates/selfService/profManage.php:74 +msgid "Could not rename file!" +msgstr "Невозможно переименовать файл!" + +#: ../templates/3rdParty/pla/htdocs/import.php:39 +#: ../templates/3rdParty/pla/htdocs/import.php:40 +#: ../templates/3rdParty/pla/htdocs/rename.php:60 +msgid "Could not rename the entry." +msgstr "Невозможно переименовать запись!" + +#: ../templates/pdfedit/pdfpage.php:117 +msgid "Could not save PDF structure, access denied." +msgstr "Невозможно сохранить структуру PDF, доступ запрещен." + +#: ../templates/pdfedit/pdfmain.php:168 +#: ../templates/profedit/profilemain.php:167 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1185 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1189 +#: ../templates/initsuff.php:190 ../lib/modules/sambaSamAccount.inc:1595 +#: ../lib/modules/posixAccount.inc:1591 +msgid "Create" +msgstr "Создать" + +#: ../lib/lists.inc:497 ../lib/lists.inc:679 ../lib/modules.inc:1315 +#: ../help/help.inc:180 +msgid "Create PDF file" +msgstr "Создать PDF файл" + +#: ../templates/massDoUpload.php:202 ../templates/masscreate.php:258 +msgid "Create PDF files" +msgstr "Создать PDF файлы" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1186 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1190 +msgid "Create a child entry" +msgstr "Создать запись-потомка" + +#: ../templates/pdfedit/pdfmain.php:161 +msgid "Create a new PDF structure" +msgstr "Создать новую PDF структуру" + +#: ../templates/profedit/profilemain.php:155 +msgid "Create a new profile" +msgstr "Создать новый профиль" + +#: ../lib/types/dhcp.inc:46 +msgid "Create another DHCP entry" +msgstr "Создать еще одну запись DHCP" + +#: ../lib/types/nisObjectType.inc:29 +msgid "Create another NIS object" +msgstr "Создать еще один объект NIS" + +#: ../lib/baseType.inc:47 +msgid "Create another account" +msgstr "Создать еще один аккаунт" + +#: ../lib/types/zarafaAddressListType.inc:43 +msgid "Create another address list" +msgstr "Создать еще один список адресов" + +#: ../lib/types/mailAlias.inc:43 ../lib/types/alias.inc:43 +msgid "Create another alias" +msgstr "Создать еще один псевдоним" + +#: ../lib/types/automountType.inc:34 +msgid "Create another automount entry" +msgstr "Создать еще одну запись автомонтирования" + +#: ../lib/types/smbDomain.inc:43 +msgid "Create another domain" +msgstr "Создать еще один домен" + +#: ../templates/3rdParty/pla/htdocs/create.php:100 +msgid "Create another entry" +msgstr "Создать еще одну запись" + +#: ../lib/types/asteriskExt.inc:46 +msgid "Create another extension" +msgstr "Создать еще одно расширение" + +#: ../lib/types/gon.inc:43 ../lib/types/zarafaDynamicGroupType.inc:43 +#: ../lib/types/group.inc:44 ../lib/types/netgroup.inc:43 +msgid "Create another group" +msgstr "Создать еще одну группу" + +#: ../lib/types/host.inc:43 +msgid "Create another host" +msgstr "Создать еще один хост" + +#: ../lib/types/ppolicyType.inc:29 +msgid "Create another policy" +msgstr "Создать еще одну политику" + +#: ../lib/types/sudo.inc:29 +msgid "Create another sudo role" +msgstr "Создать еще одну роль sudo" + +#: ../lib/types/user.inc:43 +msgid "Create another user" +msgstr "Создать еще одного пользователя" + +#: ../lib/lists.inc:684 +msgid "Create for" +msgstr "Создать для" + +#: ../lib/modules/posixAccount.inc:310 ../lib/modules/posixAccount.inc:1373 +#: ../lib/modules/posixAccount.inc:1656 +msgid "Create home directory" +msgstr "Создать домашнюю директорию" + +#: ../lib/modules/imapAccess.inc:243 +msgid "Create mailbox" +msgstr "Создать почтовый ящик" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:278 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:281 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:283 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:506 +msgid "Create new entry here" +msgstr "Создать новую запись здесь" + +#: ../lib/modules/customFields.inc:62 ../lib/modules/customFields.inc:435 +#: ../lib/modules/customFields.inc:448 +msgid "Create new group" +msgstr "Создать новую группу" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:698 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1541 +#: ../templates/3rdParty/pla/htdocs/create.php:84 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:52 +msgid "Create object" +msgstr "Создать объект" + +#: ../lib/modules/generalInformation.inc:69 +msgid "Created by" +msgstr "Создано" + +#: ../lib/types/automountType.inc:273 +msgid "Created new automount map." +msgstr "Создана новая карта автомонтирования." + +#: ../templates/config/profmanage.php:77 +#: ../templates/selfService/profManage.php:55 +msgid "Created new profile." +msgstr "Создан новый профиль." + +#: ../lib/modules/customFields.inc:63 +msgid "" +"Creates a new group for the given account type. Groups build a container for " +"object classes and attributes." +msgstr "" +"Создаёт новую группу для этого типа аккаунта. Из групп составляется " +"контейнер для классов объектов и атрибутов." + +#: ../lib/tools/fileUpload.inc:53 +msgid "Creates accounts by uploading a CSV formated file." +msgstr "Создание учетных записей из загруженного CSV файла." + +#: ../templates/3rdParty/pla/htdocs/create.php:77 +#, php-format +msgid "Creation successful. DN %s has been created." +msgstr "Успешно создано. Было создано DN %s." + +#: ../lib/modules/generalInformation.inc:73 +msgid "Creation time" +msgstr "Время создания" + +#: ../templates/serverInfo.php:232 ../templates/serverInfo.php:237 +msgid "Current connections" +msgstr "Текущие соединения" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:65 +#, php-format +msgid "Current list of %s values for attribute %s:" +msgstr "Текущий список значений %s для атрибута %s:" + +#: ../lib/modules/imapAccess.inc:297 +msgid "Current usage (kB)" +msgstr "Текущее использование (кБ)" + +#: ../lib/modules/customFields.inc:58 ../lib/modules/customFields.inc:1013 +msgid "Custom fields" +msgstr "Пользовательские поля" + +#: ../lib/modules/customScripts.inc:41 ../lib/modules/customScripts.inc:52 +#: ../lib/modules/customScripts.inc:66 ../lib/modules/customScripts.inc:87 +#: ../lib/modules/customScripts.inc:96 +msgid "Custom scripts" +msgstr "Пользовательские скрипты" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1097 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1101 +msgid "Cut" +msgstr "Вырезать" + +#: ../lib/modules/ddns.inc:56 +msgid "DDNS" +msgstr "DDNS" + +#: ../lib/modules/ddns.inc:370 +msgid "" +"DDNS ist not activated. You can activate it in the DHCP settings (DDNS)." +msgstr "" +"DDNS не активирована. Вы можете активировать это в настройках DHCP (DDNS)." + +#: ../lib/types/dhcp.inc:56 +msgid "DHCP" +msgstr "DHCP" + +#: ../lib/types/dhcp.inc:65 +msgid "DHCP administration" +msgstr "Управление DHCP " + +#: ../lib/types/dhcp.inc:170 +#, php-format +msgid "DHCP count: %s" +msgstr "Количество DHCP: %s" + +#: ../lib/types/dhcp.inc:173 ../lib/modules/dhcp_settings.inc:120 +msgid "DHCP settings" +msgstr "Настройки DHCP" + +#: ../templates/delete.php:100 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:734 +#: ../templates/3rdParty/pla/lib/PageRender.php:110 +#: ../templates/3rdParty/pla/htdocs/compare.php:52 +#: ../templates/3rdParty/pla/htdocs/compare.php:58 +#: ../templates/3rdParty/pla/htdocs/create.php:92 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:35 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:112 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:57 ../lib/modules.inc:404 +#: ../lib/modules.inc:1891 +msgid "DN" +msgstr "DN" + +#: ../templates/3rdParty/pla/lib/import_functions.php:210 +#: ../templates/3rdParty/pla/lib/import_functions.php:222 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1866 +msgid "DN does not exist" +msgstr "DN не существует" + +#: ../templates/masscreate.php:282 +msgid "DN settings" +msgstr "DN настройки" + +#: ../templates/masscreate.php:311 ../help/help.inc:170 +msgid "DN suffix" +msgstr "DN суффикс" + +#: ../lib/modules/dhcp_settings.inc:204 ../lib/modules/dhcp_settings.inc:219 +#: ../lib/modules/dhcp_settings.inc:261 ../lib/modules/dhcp_settings.inc:570 +#: ../lib/modules/dhcp_settings.inc:670 +msgid "DNS" +msgstr "DNS" + +#: ../lib/modules/dhcp_settings.inc:154 +msgid "DNS (Domain Name System)" +msgstr "DNS (Domain Name System)" + +#: ../lib/modules/asteriskExtension.inc:108 +msgid "DNs of the extension owners" +msgstr "DN владельцев расширения" + +#: ../templates/3rdParty/pla/lib/export_functions.php:343 +msgid "DSML V.1 Export" +msgstr "Экспорт DSML V.1" + +#: ../lib/modules/asteriskAccount.inc:255 +#: ../lib/modules/asteriskAccount.inc:335 +#: ../lib/modules/asteriskAccount.inc:424 +#: ../lib/modules/asteriskAccount.inc:723 +msgid "DTFM flags" +msgstr "флаги DTFM" + +#: ../lib/modules/asteriskAccount.inc:130 +#: ../lib/modules/asteriskAccount.inc:1195 +msgid "DTMF mode" +msgstr "режим DTFM" + +#: ../lib/modules/asteriskAccount.inc:131 +msgid "DTMF mode for SIP client configuration." +msgstr "Конфигурация режима DTMF для клиентов SIP." + +#: ../templates/3rdParty/pla/htdocs/import.php:103 +msgid "Data" +msgstr "Данные" + +#: ../lib/modules/sambaSamAccount.inc:288 +msgid "Date after the user is able to change his password." +msgstr "Дата после которой пользователь может поменять свой пароль." + +#: ../lib/modules/mitKerberos.inc:114 ../lib/modules/sambaSamAccount.inc:290 +#: ../lib/modules/heimdalKerberos.inc:100 +msgid "Date after the user must change his password." +msgstr "Дата после которой пользователь должен поменять свой пароль." + +#: ../lib/modules/shadowAccount.inc:171 +msgid "" +"Days before password is to expire that user is warned of pending password " +"expiration. If set value must be >0." +msgstr "" +"Кол-во дней перед устареванием пароля, когда пользователь будет " +"предупрежден. Если установлено, то должно быть > 0." + +#: ../templates/config/mainmanage.php:352 +msgid "Debug" +msgstr "Отладка" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:592 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +#: ../lib/modules/qmailUser.inc:47 ../lib/modules/qmailUser.inc:285 +#: ../lib/modules/qmailUser.inc:1069 +msgid "Default" +msgstr "Значение по умолчанию" + +#: ../lib/modules/dhcp_settings.inc:158 ../lib/modules/dhcp_settings.inc:205 +#: ../lib/modules/dhcp_settings.inc:220 ../lib/modules/dhcp_settings.inc:267 +#: ../lib/modules/dhcp_settings.inc:572 ../lib/modules/dhcp_settings.inc:671 +msgid "Default gateway" +msgstr "Шлюз по умолчанию" + +#: ../templates/config/confmain.php:286 ../help/help.inc:97 +msgid "Default language" +msgstr "Язык по умолчанию" + +#: ../lib/modules/asteriskAccount.inc:222 +#: ../lib/modules/asteriskAccount.inc:301 +#: ../lib/modules/asteriskAccount.inc:358 +#: ../lib/modules/asteriskAccount.inc:592 +#: ../lib/modules/asteriskAccount.inc:945 +#: ../lib/modules/asteriskAccount.inc:1218 +msgid "Default user" +msgstr "Пользователь по умолчанию" + +#: ../templates/masscreate.php:300 ../templates/masscreate.php:375 +#: ../lib/modules/customFields.inc:110 ../lib/modules/customFields.inc:2248 +msgid "Default value" +msgstr "Значение по умолчанию" + +#: ../lib/modules/sambaDomain.inc:111 +msgid "Defines if workstations may change their passwords." +msgstr "Определяет, могут ли рабочие станции менять свои пароли." + +#: ../lib/modules/asteriskAccount.inc:151 +msgid "" +"Defines the mailbox to check for message waiting indication (MWI) for this " +"peer." +msgstr "" +"Определяет, какой почтовый ящик проверять для message waiting indication " +"(MWI) для этого узла." + +#: ../lib/modules/kolabUser.inc:98 ../lib/modules/kolabUser.inc:114 +#: ../lib/modules/kolabUser.inc:118 ../lib/modules/kolabUser.inc:178 +#: ../lib/modules/kolabUser.inc:200 ../lib/modules/kolabUser.inc:332 +#: ../lib/modules/kolabUser.inc:721 ../lib/modules/kolabUser.inc:788 +msgid "Delegates" +msgstr "Делегирования" + +#: ../templates/serverInfo.php:321 ../templates/serverInfo.php:390 +#: ../templates/ou_edit.php:120 ../templates/config/profmanage.php:272 +#: ../templates/selfService/profManage.php:238 +#: ../templates/pdfedit/pdfmain.php:194 ../templates/pdfedit/pdfmain.php:195 +#: ../templates/delete.php:120 ../templates/profedit/profilemain.php:196 +#: ../templates/profedit/profilemain.php:197 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:33 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:124 +#: ../lib/modules/sambaSamAccount.inc:1588 +#: ../lib/modules/posixAccount.inc:1584 ../lib/modules/zarafaUser.inc:1500 +#: ../lib/modules/zarafaUser.inc:1552 ../lib/modules/kolabUser.inc:778 +#: ../lib/modules/sambaGroupMapping.inc:398 +#: ../lib/modules/ldapPublicKey.inc:290 ../lib/modules/nisnetgroup.inc:246 +#: ../lib/modules/inetOrgPerson.inc:3241 ../lib/modules/customFields.inc:2950 +#: ../lib/lists.inc:491 +msgid "Delete" +msgstr "Удалить" + +#: ../templates/3rdParty/pla/htdocs/delete.php:31 +msgid "Delete DN" +msgstr "Удалить DN" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:30 +msgid "Delete LDAP entries" +msgstr "Удалить записи LDAP" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:77 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:84 +msgid "Delete after copy (move):" +msgstr "Удалить после копирования (перемещения):" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:72 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:110 +#, php-format +msgid "Delete all %s objects" +msgstr "Удалить все %s объекты" + +#: ../templates/config/mainmanage.php:278 +msgid "Delete all CA certificates" +msgstr "Удалить все сертификаты CA" + +#: ../lib/modules/customFields.inc:546 +msgid "Delete group" +msgstr "Удалить группу" + +#: ../lib/modules/posixAccount.inc:1434 +msgid "Delete home directory" +msgstr "Удалить домашнюю директорию" + +#: ../lib/modules/imapAccess.inc:236 +msgid "Delete mailbox" +msgstr "Удалить почтовый ящик" + +#: ../templates/ou_edit.php:197 ../help/help.inc:237 +msgid "Delete organisational unit" +msgstr "Удалить подразделение" + +#: ../templates/3rdParty/pla/lib/functions.php:2014 +#: ../lib/modules/inetOrgPerson.inc:2109 +msgid "Delete photo" +msgstr "Удалить фото" + +#: ../templates/config/profmanage.php:270 +#: ../templates/config/profmanage.php:273 +#: ../templates/selfService/profManage.php:232 +#: ../templates/selfService/profManage.php:239 ../help/help.inc:130 +msgid "Delete profile" +msgstr "Удалить профиль" + +#: ../lib/modules/range.inc:91 ../lib/modules/range.inc:109 +#: ../lib/modules/range.inc:437 +msgid "Delete range" +msgstr "Удалить диапазон" + +#: ../lib/modules/asteriskExtension.inc:309 +#: ../lib/modules/asteriskExtension.inc:332 +msgid "Delete rule" +msgstr "Удалить правило" + +#: ../lib/types/dhcp.inc:174 +msgid "Delete selected DHCP entries" +msgstr "Удалить выбранные записи DHCP" + +#: ../lib/types/nisObjectType.inc:158 +msgid "Delete selected NIS objects" +msgstr "Удалить выбранные объекты NIS" + +#: ../lib/types/zarafaAddressListType.inc:147 +msgid "Delete selected address lists" +msgstr "Удалить выбранные списки адресов" + +#: ../lib/types/mailAlias.inc:144 ../lib/types/alias.inc:144 +msgid "Delete selected aliases" +msgstr "Удалить выбранные псевдонимы" + +#: ../lib/types/automountType.inc:218 +msgid "Delete selected automount entries" +msgstr "Удалить выбранные записи автомонтирования" + +#: ../lib/types/smbDomain.inc:170 +msgid "Delete selected domains" +msgstr "Удалить выбранные домены" + +#: ../lib/types/asteriskExt.inc:146 +msgid "Delete selected extensions" +msgstr "Удалить выбранные расширения" + +#: ../lib/types/gon.inc:183 ../lib/types/zarafaDynamicGroupType.inc:168 +#: ../lib/types/group.inc:213 ../lib/types/netgroup.inc:172 +msgid "Delete selected groups" +msgstr "Удалить выбранные группы" + +#: ../lib/types/host.inc:196 +msgid "Delete selected hosts" +msgstr "Удалить выбранные хосты" + +#: ../lib/lists.inc:115 +msgid "Delete selected objects" +msgstr "Удалить выбранные объекты" + +#: ../lib/types/ppolicyType.inc:152 +msgid "Delete selected policies" +msgstr "Удалить выбранные политики" + +#: ../lib/types/sudo.inc:162 +msgid "Delete selected sudo roles" +msgstr "Удалить выбранные роли sudo" + +#: ../lib/types/user.inc:533 +msgid "Delete selected users" +msgstr "Удалить выбранных пользователей" + +#: ../templates/3rdParty/pla/htdocs/copy.php:146 +#, php-format +msgid "Delete successful: %s" +msgstr "Удаление успешно: %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "Delete this entry" +msgstr "Удалить эту запись" + +#: ../lib/modules/qmailUser.inc:44 +msgid "Deleted" +msgstr "Удалено" + +#: ../templates/delete.php:272 +#, php-format +msgid "Deleted DN: %s" +msgstr "Удалить DN: %s" + +#: ../templates/pdfedit/pdfmain.php:89 +msgid "Deleted PDF structure." +msgstr "Удаленная PDF структура." + +#: ../templates/profedit/profilemain.php:103 +msgid "Deleted profile." +msgstr "Удаленный профиль." + +#: ../lib/modules/range.inc:92 +msgid "Deletes an IP range." +msgstr "Удаляет диапазон IP." + +#: ../templates/3rdParty/pla/htdocs/import.php:29 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:65 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:82 +msgid "Deleting" +msgstr "Удаление" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:73 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:125 +msgid "Deleting objects" +msgstr "Удаление объектов" + +#: ../lib/modules/qmailUser.inc:117 ../lib/modules/qmailUser.inc:248 +#: ../lib/modules/qmailUser.inc:375 ../lib/modules/qmailUser.inc:429 +#: ../lib/modules/qmailUser.inc:651 ../lib/modules/qmailUser.inc:892 +#: ../lib/modules/qmailUser.inc:1217 +msgid "Deletion date" +msgstr "Дата удаления" + +#: ../lib/lists.inc:1061 +msgid "Deletion was successful." +msgstr "Удаление успешно." + +#: ../lib/modules/qmailUser.inc:208 ../lib/modules/qmailUser.inc:283 +#: ../lib/modules/qmailUser.inc:396 ../lib/modules/qmailUser.inc:622 +#: ../lib/modules/qmailUser.inc:1211 +msgid "Delivery mode" +msgstr "Режим отправки" + +#: ../lib/modules/qmailUser.inc:115 ../lib/modules/qmailUser.inc:168 +#: ../lib/modules/qmailUser.inc:244 ../lib/modules/qmailUser.inc:367 +#: ../lib/modules/qmailUser.inc:426 ../lib/modules/qmailUser.inc:641 +#: ../lib/modules/qmailUser.inc:1197 +msgid "Delivery program" +msgstr "Программа отправки" + +#: ../lib/modules/asteriskAccount.inc:158 +#: ../lib/modules/asteriskAccount.inc:269 +#: ../lib/modules/asteriskAccount.inc:342 +#: ../lib/modules/asteriskAccount.inc:476 +#: ../lib/modules/asteriskAccount.inc:794 +#: ../lib/modules/asteriskAccount.inc:1202 +#: ../lib/modules/dhcp_settings.inc:104 +msgid "Deny" +msgstr "Запрет" + +#: ../lib/modules/inetOrgPerson.inc:146 ../lib/modules/inetOrgPerson.inc:200 +#: ../lib/modules/inetOrgPerson.inc:346 ../lib/modules/inetOrgPerson.inc:552 +#: ../lib/modules/inetOrgPerson.inc:671 ../lib/modules/inetOrgPerson.inc:868 +#: ../lib/modules/inetOrgPerson.inc:872 ../lib/modules/inetOrgPerson.inc:1961 +#: ../lib/modules/inetOrgPerson.inc:2387 ../lib/modules/inetOrgPerson.inc:3161 +msgid "Department" +msgstr "Отдел" + +#: ../lib/modules/kolabGroup.inc:98 ../lib/modules/kolabGroup.inc:102 +#: ../lib/modules/kolabUser.inc:144 ../lib/modules/kolabUser.inc:148 +msgid "" +"Describes the allowed or disallowed SMTP addresses sending mail to this " +"account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "" +"Описывает разрешенные или запрещенные адреса SMTP для писем на этот аккаунт " +"(например \"domain.tld\" или \"-user@domain.tld\")." + +#: ../lib/modules/kolabGroup.inc:89 ../lib/modules/kolabGroup.inc:93 +#: ../lib/modules/kolabUser.inc:135 ../lib/modules/kolabUser.inc:139 +msgid "" +"Describes the allowed or disallowed SMTP recipient addresses for mail sent " +"by this account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "" +"Описывает разрешенные или запрещенные адреса SMTP для получателей писем, " +"отправляемых с этого аккаунта (например \"domain.tld\" или \"-user@domain.tld" +"\")." + +#: ../templates/schema/schema.php:89 ../templates/schema/schema.php:143 +#: ../templates/schema/schema.php:346 +#: ../templates/3rdParty/pla/lib/functions.php:1898 +#: ../templates/3rdParty/pla/lib/functions.php:1902 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:139 +#: ../templates/3rdParty/pla/htdocs/import.php:101 +#: ../lib/types/automountType.inc:88 ../lib/types/nisObjectType.inc:80 +#: ../lib/types/user.inc:101 ../lib/types/sudo.inc:84 ../lib/types/dhcp.inc:96 +#: ../lib/types/netgroup.inc:92 ../lib/modules/account.inc:75 +#: ../lib/modules/account.inc:88 ../lib/modules/account.inc:98 +#: ../lib/modules/account.inc:106 ../lib/modules/account.inc:221 +#: ../lib/modules/account.inc:232 ../lib/modules/windowsHost.inc:71 +#: ../lib/modules/windowsHost.inc:94 ../lib/modules/windowsHost.inc:113 +#: ../lib/modules/windowsHost.inc:136 ../lib/modules/windowsHost.inc:288 +#: ../lib/modules/posixGroup.inc:199 ../lib/modules/posixGroup.inc:407 +#: ../lib/modules/posixGroup.inc:459 ../lib/modules/posixGroup.inc:548 +#: ../lib/modules/device.inc:74 ../lib/modules/device.inc:108 +#: ../lib/modules/device.inc:123 ../lib/modules/device.inc:170 +#: ../lib/modules/device.inc:439 ../lib/modules/dhcp_settings.inc:190 +#: ../lib/modules/dhcp_settings.inc:210 ../lib/modules/dhcp_settings.inc:300 +#: ../lib/modules/dhcp_settings.inc:613 ../lib/modules/dhcp_settings.inc:677 +#: ../lib/modules/posixAccount.inc:545 ../lib/modules/windowsUser.inc:99 +#: ../lib/modules/windowsUser.inc:252 ../lib/modules/windowsUser.inc:381 +#: ../lib/modules/windowsUser.inc:524 ../lib/modules/windowsUser.inc:1216 +#: ../lib/modules/nisObject.inc:66 ../lib/modules/nisObject.inc:96 +#: ../lib/modules/nisObject.inc:107 ../lib/modules/nisObject.inc:148 +#: ../lib/modules/nisObject.inc:213 ../lib/modules/sambaGroupMapping.inc:107 +#: ../lib/modules/sambaGroupMapping.inc:529 ../lib/modules/automount.inc:65 +#: ../lib/modules/automount.inc:88 ../lib/modules/automount.inc:98 +#: ../lib/modules/automount.inc:133 ../lib/modules/automount.inc:195 +#: ../lib/modules/nisnetgroup.inc:80 ../lib/modules/nisnetgroup.inc:133 +#: ../lib/modules/nisnetgroup.inc:192 ../lib/modules/nisnetgroup.inc:575 +#: ../lib/modules/inetOrgPerson.inc:158 ../lib/modules/inetOrgPerson.inc:308 +#: ../lib/modules/inetOrgPerson.inc:398 ../lib/modules/inetOrgPerson.inc:611 +#: ../lib/modules/inetOrgPerson.inc:701 ../lib/modules/inetOrgPerson.inc:1444 +#: ../lib/modules/inetOrgPerson.inc:2358 ../lib/modules/sudoRole.inc:59 +#: ../lib/modules/sudoRole.inc:128 ../lib/modules/sudoRole.inc:172 +#: ../lib/modules/sudoRole.inc:253 ../lib/modules/sudoRole.inc:683 +#: ../lib/modules/windowsGroup.inc:110 ../lib/modules/windowsGroup.inc:175 +#: ../lib/modules/windowsGroup.inc:235 ../lib/modules/windowsGroup.inc:275 +#: ../lib/modules/windowsGroup.inc:714 ../lib/modules/groupOfNames.inc:68 +#: ../lib/modules/groupOfNames.inc:110 ../lib/modules/groupOfNames.inc:146 +#: ../lib/modules/groupOfNames.inc:164 ../lib/modules/groupOfNames.inc:208 +#: ../lib/modules/groupOfNames.inc:620 +msgid "Description" +msgstr "Описание" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "Destination DN" +msgstr "DN назначения" + +#: ../lib/modules/device.inc:38 +msgid "Device" +msgstr "Устройство" + +#: ../lib/modules/sambaSamAccount.inc:383 +#: ../lib/modules/sambaSamAccount.inc:571 +msgid "Disable LM hashes" +msgstr "Не использовать LM-хэши" + +#: ../lib/modules/ddns.inc:82 ../lib/modules/ddns.inc:363 +msgid "Disable client updates" +msgstr "Отключить обновления клиента" + +#: ../lib/modules/qmailUser.inc:43 +msgid "Disabled" +msgstr "Выключено" + +#: ../lib/modules/ddns.inc:83 +msgid "Disables the client to update DNS entries." +msgstr "Отключает клиента для обновления DNS записей." + +#: ../lib/modules/mitKerberos.inc:165 +msgid "" +"Disables user-to-user authentication for this principal by prohibiting this " +"principal from obtaining a session key for another user." +msgstr "" +"Отключает аутентификацию пользователь-пользователь для этого principal, " +"запрещая этому principal получать ключ сессии для другого пользователя." + +#: ../lib/modules/heimdalKerberos.inc:123 +#: ../lib/modules/heimdalKerberos.inc:375 +msgid "Disallow TGT-based tickets" +msgstr "Запретить TGT-based билеты" + +#: ../lib/modules/mitKerberos.inc:167 ../lib/modules/mitKerberos.inc:453 +#: ../lib/modules/heimdalKerberos.inc:141 +#: ../lib/modules/heimdalKerberos.inc:380 +msgid "Disallow all tickets" +msgstr "Отклонять все билеты" + +#: ../templates/config/conftypes.php:297 ../help/help.inc:162 +msgid "Disallow delete" +msgstr "Запретить удаление" + +#: ../lib/modules/mitKerberos.inc:155 ../lib/modules/mitKerberos.inc:423 +#: ../lib/modules/heimdalKerberos.inc:126 +#: ../lib/modules/heimdalKerberos.inc:350 +msgid "Disallow forwardable tickets" +msgstr "Запретить пересылаемые билеты" + +#: ../lib/modules/mitKerberos.inc:152 ../lib/modules/mitKerberos.inc:438 +#: ../lib/modules/heimdalKerberos.inc:135 +#: ../lib/modules/heimdalKerberos.inc:365 +msgid "Disallow post-dated tickets" +msgstr "Запретить post-dated билеты" + +#: ../lib/modules/mitKerberos.inc:161 ../lib/modules/mitKerberos.inc:428 +#: ../lib/modules/heimdalKerberos.inc:129 +#: ../lib/modules/heimdalKerberos.inc:355 +msgid "Disallow proxiable tickets" +msgstr "Запретить проксируемые билеты" + +#: ../lib/modules/mitKerberos.inc:158 ../lib/modules/mitKerberos.inc:433 +#: ../lib/modules/heimdalKerberos.inc:132 +#: ../lib/modules/heimdalKerberos.inc:360 +msgid "Disallow renewable tickets" +msgstr "Запретить обновляемые билеты" + +#: ../lib/modules/mitKerberos.inc:179 ../lib/modules/mitKerberos.inc:443 +#: ../lib/modules/heimdalKerberos.inc:138 +#: ../lib/modules/heimdalKerberos.inc:370 +msgid "Disallow service tickets" +msgstr "Отклонять сервисные билеты" + +#: ../lib/modules/mitKerberos.inc:164 ../lib/modules/mitKerberos.inc:448 +msgid "Disallow user-to-user authentication" +msgstr "Запретить аутентификацию пользователь-пользователь" + +#: ../lib/modules/asteriskAccount.inc:190 +#: ../lib/modules/asteriskAccount.inc:285 +#: ../lib/modules/asteriskAccount.inc:350 +#: ../lib/modules/asteriskAccount.inc:534 +#: ../lib/modules/asteriskAccount.inc:869 +#: ../lib/modules/asteriskAccount.inc:1210 +msgid "Disallowed codec" +msgstr "Запретить кодек" + +#: ../lib/modules/sambaDomain.inc:106 ../lib/modules/sambaDomain.inc:186 +#: ../lib/modules/sambaDomain.inc:292 ../lib/modules/sambaDomain.inc:660 +msgid "Disconnect users outside logon hours" +msgstr "Отключение пользователей в неразрешенное время для входа" + +#: ../lib/modules/sambaSamAccount.inc:230 +#: ../lib/modules/sambaSamAccount.inc:1498 +#: ../lib/modules/sambaSamAccount.inc:1902 +msgid "Disconnection time limit" +msgstr "Время ожидания отключения" + +#: ../lib/modules/sambaDomain.inc:107 +msgid "Disconnects users if they are logged in outside logon hours." +msgstr "Отключение пользователей, если они подключены в неразрешенное время." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +msgid "Display format" +msgstr "Формат отображения" + +#: ../lib/modules/sambaSamAccount.inc:111 +#: ../lib/modules/sambaSamAccount.inc:202 +#: ../lib/modules/sambaSamAccount.inc:248 +#: ../lib/modules/sambaSamAccount.inc:406 +#: ../lib/modules/sambaSamAccount.inc:1123 +#: ../lib/modules/sambaSamAccount.inc:1874 ../lib/modules/windowsUser.inc:103 +#: ../lib/modules/windowsUser.inc:240 ../lib/modules/windowsUser.inc:382 +#: ../lib/modules/windowsUser.inc:445 ../lib/modules/windowsUser.inc:522 +#: ../lib/modules/windowsUser.inc:1217 +#: ../lib/modules/sambaGroupMapping.inc:105 +#: ../lib/modules/sambaGroupMapping.inc:139 +#: ../lib/modules/sambaGroupMapping.inc:352 +#: ../lib/modules/sambaGroupMapping.inc:527 +msgid "Display name" +msgstr "Отображаемое имя" + +#: ../templates/lists/changePassword.php:303 +msgid "Display on screen" +msgstr "Отобразить на экране" + +#: ../templates/3rdParty/pla/htdocs/create.php:97 +msgid "Display the created entry" +msgstr "Показать созданную запись" + +#: ../lib/modules.inc:497 +msgid "" +"Displayed account numbers start at \"0\". Add 2 to get the row in your " +"spreadsheet." +msgstr "" +"Номера учетных записей начинаются с \"0\". Добавьте 2 чтобы добавить ряд в " +"таблице." + +#: ../lib/modules/windowsGroup.inc:61 +msgid "Distribution" +msgstr "Распределение" + +#: ../lib/modules/passwordSelfReset.inc:129 +#: ../lib/modules/passwordSelfReset.inc:252 +msgid "Do not ask security question" +msgstr "Не спрашивать секретный вопрос" + +#: ../templates/ou_edit.php:112 +msgid "Do you really want to delete this OU?" +msgstr "Вы действительно хотите удалить эту OU?" + +#: ../templates/pdfedit/pdfmain.php:313 +msgid "Do you really want to delete this PDF structure?" +msgstr "Вы действительно хотите удалить эту структуру PDF?" + +#: ../templates/profedit/profilemain.php:317 +msgid "Do you really want to delete this profile?" +msgstr "Вы действительно хотите удалить этот профиль?" + +#: ../lib/modules/kolabGroup.inc:266 ../lib/modules/kolabUser.inc:497 +msgid "Do you really want to mark this account for deletion?" +msgstr "Вы действительно хотите отметить этот аккаунт для удаления?" + +#: ../lib/modules/qmailGroup.inc:266 +msgid "Do you really want to post to this mailinglist?" +msgstr "Вы действительно хотите это отправить в список рассылки?" + +#: ../templates/delete.php:94 +msgid "Do you really want to remove the following accounts?" +msgstr "Вы действительно хотите удалить следующие аккаунты?" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:59 +msgid "Do you want to create this entry?" +msgstr "Вы хотите создать эту запись?" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:36 +msgid "Do you want to make these changes?" +msgstr "Вы действительно хотите сделать эти изменения?" + +#: ../lib/modules/sambaSamAccount.inc:203 +#: ../lib/modules/sambaSamAccount.inc:326 +#: ../lib/modules/sambaSamAccount.inc:399 +#: ../lib/modules/sambaSamAccount.inc:523 +#: ../lib/modules/sambaSamAccount.inc:1255 +#: ../lib/modules/sambaSamAccount.inc:1749 +#: ../lib/modules/sambaSamAccount.inc:1771 +#: ../lib/modules/sambaSamAccount.inc:1880 +#: ../lib/modules/sambaGroupMapping.inc:151 +#: ../lib/modules/sambaGroupMapping.inc:379 +#: ../lib/modules/sambaGroupMapping.inc:563 ../lib/modules/nisnetgroup.inc:216 +#: ../lib/modules/nisnetgroup.inc:582 +msgid "Domain" +msgstr "Домен" + +#: ../lib/modules/sambaSamAccount.inc:84 +msgid "Domain KRBTGT" +msgstr "KRBTGT домена" + +#: ../lib/types/smbDomain.inc:91 ../lib/modules/sambaDomain.inc:74 +#: ../lib/modules/sambaDomain.inc:144 ../lib/modules/sambaDomain.inc:178 +#: ../lib/modules/sambaDomain.inc:249 ../lib/modules/sambaDomain.inc:254 +#: ../lib/modules/sambaDomain.inc:639 +msgid "Domain SID" +msgstr "SID домена" + +#: ../lib/modules/sambaGroupMapping.inc:118 +#: ../lib/modules/windowsGroup.inc:170 ../lib/modules/windowsGroup.inc:177 +#: ../lib/modules/windowsGroup.inc:183 +msgid "Domain administrators" +msgstr "Администраторы домена" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:60 +#: ../lib/modules/sambaGroupMapping.inc:124 +msgid "Domain admins" +msgstr "Администраторы домена" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:65 +msgid "Domain certificate admins" +msgstr "Администраторы сертификатов домена" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaSamAccount.inc:791 +#: ../lib/modules/sambaGroupMapping.inc:63 +msgid "Domain computers" +msgstr "Компьютеры домена" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:64 +msgid "Domain controllers" +msgstr "Контроллеры домена" + +#: ../lib/types/smbDomain.inc:167 +#, php-format +msgid "Domain count: %s" +msgstr "Количество доменов: %s" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:67 +msgid "Domain enterprise admins" +msgstr "Администраторы домена уровня предприятия" + +#: ../lib/modules/sambaGroupMapping.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:370 +msgid "Domain group" +msgstr "Группа домена" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:62 +msgid "Domain guests" +msgstr "Гости домена" + +#: ../lib/modules/windowsGroup.inc:64 +msgid "Domain local" +msgstr "Локальный домен" + +#: ../lib/types/smbDomain.inc:92 ../lib/modules/dhcp_settings.inc:138 +#: ../lib/modules/dhcp_settings.inc:201 ../lib/modules/dhcp_settings.inc:216 +#: ../lib/modules/dhcp_settings.inc:243 ../lib/modules/dhcp_settings.inc:560 +#: ../lib/modules/dhcp_settings.inc:667 ../lib/modules/nisnetgroup.inc:147 +#: ../lib/modules/sambaDomain.inc:70 ../lib/modules/sambaDomain.inc:137 +#: ../lib/modules/sambaDomain.inc:177 ../lib/modules/sambaDomain.inc:234 +#: ../lib/modules/sambaDomain.inc:239 ../lib/modules/sambaDomain.inc:638 +msgid "Domain name" +msgstr "Имя домена" + +#: ../lib/modules/nisnetgroup.inc:147 ../lib/modules/sambaDomain.inc:201 +#: ../lib/modules/sambaDomain.inc:202 +msgid "Domain name is invalid!" +msgstr "Имя домена неправильное!" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:68 +msgid "Domain policy admins" +msgstr "Администраторы политик домена" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:66 +msgid "Domain schema admins" +msgstr "Администраторы схем домена" + +#: ../lib/modules/sambaSamAccount.inc:79 +#: ../lib/modules/sambaSamAccount.inc:2183 +#: ../lib/modules/sambaGroupMapping.inc:61 +msgid "Domain users" +msgstr "Пользователи домена" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:43 +msgid "Don't stop on errors" +msgstr "Не останавливаться на ошибках" + +#: ../templates/pdfedit/pdfpage.php:475 +msgid "Down" +msgstr "Вниз" + +#: ../templates/config/mainmanage.php:275 +msgid "Download CA certificates" +msgstr "Скачать все сертификаты CA" + +#: ../templates/masscreate.php:250 +msgid "Download sample CSV file" +msgstr "Скачать пример CSV файла" + +#: ../templates/serverInfo.php:124 +msgid "Dynamic subtrees" +msgstr "Динамические поддеревья" + +#: ../lib/modules/eduPerson.inc:65 +msgid "EDU person" +msgstr "EDU person" + +#: ../lib/modules/selfRegistration.inc:119 +msgid "" +"Each line represents one LDAP attribute. The options are separated by \"::" +"\". The first option specifies if the attribute is mandatory. It can have " +"the values \"optional\" and \"required\"." +msgstr "" +"Каждая линия представляет собой один атрибут LDAP. Опции разделены \"::\". " +"Первая опция определяет, обязателен ли атрибут. Он может иметь значения " +"\"optional\" и \"required\"." + +#: ../lib/modules/sambaSamAccount.inc:561 +msgid "East Australian Standard, Guam" +msgstr "East Australian Standard, Guam" + +#: ../lib/modules/sambaSamAccount.inc:553 +msgid "Eastern Europe Time, South Africa" +msgstr "Eastern Europe Time, South Africa" + +#: ../lib/modules/sambaSamAccount.inc:546 +msgid "Eastern Time (US & Canada), Bogota" +msgstr "Eastern Time (US & Canada), Bogota" + +#: ../templates/pdfedit/pdfmain.php:191 +#: ../templates/profedit/profilemain.php:193 +#: ../lib/modules/sambaSamAccount.inc:1260 +#: ../lib/modules/sambaSamAccount.inc:1265 ../lib/lists.inc:485 +msgid "Edit" +msgstr "Редактировать" + +#: ../lib/modules.inc:1323 +msgid "Edit again" +msgstr "Редактировать снова" + +#: ../templates/config/mainmanage.php:189 ../templates/config/index.php:99 +msgid "Edit general settings" +msgstr "Редактировать основные настройки" + +#: ../lib/modules/posixAccount.inc:1356 ../lib/modules/windowsUser.inc:582 +msgid "Edit groups" +msgstr "Редактировать группы" + +#: ../lib/modules/posixGroup.inc:220 ../lib/modules/windowsGroup.inc:348 +msgid "Edit members" +msgstr "Редактировать участников" + +#: ../templates/config/index.php:125 +msgid "Edit self service" +msgstr "Редактировать сервис самообслуживания" + +#: ../templates/config/index.php:111 +msgid "Edit server profiles" +msgstr "Редактировать профили сервера" + +#: ../lib/modules/nisnetgroup.inc:201 +msgid "Edit subgroups" +msgstr "Редактировать подгруппы" + +#: ../lib/modules/sambaSamAccount.inc:1216 +msgid "Edit workstations" +msgstr "Редактировать компьютеры" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1872 +#: ../lib/types/zarafaDynamicGroupType.inc:92 ../lib/types/user.inc:100 +#: ../lib/modules/zarafaDynamicGroup.inc:236 +#: ../lib/modules/zarafaDynamicGroup.inc:241 +#: ../lib/modules/zarafaGroup.inc:228 ../lib/modules/zarafaGroup.inc:235 +#: ../lib/modules/passwordSelfReset.inc:191 +#: ../lib/modules/nisMailAlias.inc:277 +msgid "Email" +msgstr "Электронная почта" + +#: ../templates/lists/changePassword.php:269 ../lib/modules/kolabGroup.inc:80 +#: ../lib/modules/kolabGroup.inc:84 ../lib/modules/kolabGroup.inc:136 +#: ../lib/modules/kolabGroup.inc:149 ../lib/modules/kolabGroup.inc:158 +#: ../lib/modules/kolabGroup.inc:160 ../lib/modules/kolabGroup.inc:183 +#: ../lib/modules/kolabGroup.inc:400 ../lib/modules/selfRegistration.inc:342 +#: ../lib/modules/selfRegistration.inc:417 +#: ../lib/modules/zarafaDynamicGroup.inc:60 +#: ../lib/modules/zarafaDynamicGroup.inc:61 +#: ../lib/modules/zarafaDynamicGroup.inc:117 +#: ../lib/modules/zarafaDynamicGroup.inc:159 +#: ../lib/modules/zarafaDynamicGroup.inc:193 +#: ../lib/modules/zarafaDynamicGroup.inc:465 ../lib/modules/qmailUser.inc:192 +#: ../lib/modules/qmailUser.inc:292 ../lib/modules/qmailUser.inc:399 +#: ../lib/modules/qmailUser.inc:441 ../lib/modules/qmailUser.inc:485 +#: ../lib/modules/qmailUser.inc:1186 ../lib/modules/zarafaGroup.inc:63 +#: ../lib/modules/zarafaGroup.inc:64 ../lib/modules/zarafaGroup.inc:158 +#: ../lib/modules/zarafaGroup.inc:193 ../lib/modules/zarafaGroup.inc:209 +#: ../lib/modules/zarafaGroup.inc:654 ../lib/modules/windowsUser.inc:119 +#: ../lib/modules/windowsUser.inc:294 ../lib/modules/windowsUser.inc:386 +#: ../lib/modules/windowsUser.inc:457 ../lib/modules/windowsUser.inc:535 +#: ../lib/modules/windowsUser.inc:1221 ../lib/modules/inetOrgPerson.inc:76 +#: ../lib/modules/inetOrgPerson.inc:141 ../lib/modules/inetOrgPerson.inc:194 +#: ../lib/modules/inetOrgPerson.inc:336 ../lib/modules/inetOrgPerson.inc:518 +#: ../lib/modules/inetOrgPerson.inc:653 ../lib/modules/inetOrgPerson.inc:789 +#: ../lib/modules/inetOrgPerson.inc:793 ../lib/modules/inetOrgPerson.inc:1821 +#: ../lib/modules/inetOrgPerson.inc:2371 ../lib/modules/inetOrgPerson.inc:2947 +#: ../lib/modules/asteriskVoicemail.inc:98 +#: ../lib/modules/asteriskVoicemail.inc:131 +#: ../lib/modules/asteriskVoicemail.inc:169 +#: ../lib/modules/asteriskVoicemail.inc:261 +#: ../lib/modules/asteriskVoicemail.inc:393 ../lib/modules/qmailGroup.inc:116 +#: ../lib/modules/qmailGroup.inc:120 ../lib/modules/qmailGroup.inc:233 +#: ../lib/modules/qmailGroup.inc:364 ../lib/modules/qmailGroup.inc:413 +#: ../lib/modules/qmailGroup.inc:450 ../lib/modules/qmailGroup.inc:1053 +#: ../lib/modules/imapAccess.inc:212 ../lib/modules/passwordSelfReset.inc:718 +#: ../lib/modules/passwordSelfReset.inc:887 +#: ../lib/modules/windowsGroup.inc:118 ../lib/modules/windowsGroup.inc:157 +#: ../lib/modules/windowsGroup.inc:211 ../lib/modules/windowsGroup.inc:242 +#: ../lib/modules/windowsGroup.inc:259 ../lib/modules/windowsGroup.inc:277 +#: ../lib/modules/windowsGroup.inc:716 +msgid "Email address" +msgstr "Адрес электронной почты" + +#: ../lib/modules/kolabGroup.inc:160 ../lib/modules/kolabGroup.inc:161 +msgid "Email address already exists." +msgstr "Этот почтовый адрес уже существует." + +#: ../lib/modules/asteriskVoicemail.inc:99 +msgid "Email address for this voicemail account." +msgstr "Адрес электронной почты для аккаунта этой голосовой почты." + +#: ../lib/modules/qmailGroup.inc:214 ../lib/modules/qmailGroup.inc:218 +msgid "Email addresses that are allowed to send to this list." +msgstr "Адреса электронной почты, с которых можно слать в этот список" + +#: ../lib/modules/qmailGroup.inc:198 ../lib/modules/qmailGroup.inc:202 +msgid "Email addresses that are member of this list." +msgstr "Адреса электронной почты, являющиеся участниками списка." + +#: ../lib/modules/qmailGroup.inc:206 ../lib/modules/qmailGroup.inc:210 +msgid "Email addresses that moderate this list (e.g. approve mails)." +msgstr "" +"Адреса электронной почты, которые модерируют этот список (например, " +"подтверждают письма)." + +#: ../lib/modules/zarafaContact.inc:76 ../lib/modules/zarafaUser.inc:117 +#: ../lib/modules/windowsUser.inc:202 ../lib/modules/windowsUser.inc:206 +#: ../lib/modules/windowsUser.inc:300 ../lib/modules/windowsUser.inc:387 +#: ../lib/modules/windowsUser.inc:459 ../lib/modules/windowsUser.inc:536 +#: ../lib/modules/windowsUser.inc:1222 ../lib/modules/kolabUser.inc:122 +#: ../lib/modules/windowsGroup.inc:122 ../lib/modules/windowsGroup.inc:126 +#: ../lib/modules/windowsGroup.inc:159 ../lib/modules/windowsGroup.inc:219 +#: ../lib/modules/windowsGroup.inc:245 ../lib/modules/windowsGroup.inc:261 +#: ../lib/modules/windowsGroup.inc:280 ../lib/modules/windowsGroup.inc:717 +msgid "Email alias" +msgstr "Почтовый псевдоним" + +#: ../lib/modules/zarafaContact.inc:77 ../lib/modules/zarafaUser.inc:118 +#: ../lib/modules/windowsUser.inc:203 ../lib/modules/windowsUser.inc:207 +#: ../lib/modules/kolabUser.inc:123 ../lib/modules/windowsGroup.inc:123 +#: ../lib/modules/windowsGroup.inc:127 +msgid "Email alias for this account." +msgstr "Почтовый псевдоним для этой учетной записи." + +#: ../lib/modules/zarafaContact.inc:174 ../lib/modules/zarafaContact.inc:175 +#: ../lib/modules/zarafaUser.inc:449 ../lib/modules/zarafaUser.inc:450 +#: ../lib/modules/windowsUser.inc:459 ../lib/modules/windowsUser.inc:460 +#: ../lib/modules/kolabUser.inc:213 ../lib/modules/windowsGroup.inc:261 +#: ../lib/modules/windowsGroup.inc:262 +msgid "Email alias is invalid!" +msgstr "Почтовый псевдоним неправильный!" + +#: ../lib/modules/kolabUser.inc:126 +msgid "Email alias list" +msgstr "Список почтовых псевдонимов" + +#: ../lib/modules/kolabUser.inc:214 +msgid "Email alias list has invalid format!" +msgstr "Список почтовых псевдонимов имеет неправильный формат!" + +#: ../lib/types/zarafaDynamicGroupType.inc:97 +#: ../lib/modules/zarafaDynamicGroup.inc:64 +#: ../lib/modules/zarafaDynamicGroup.inc:68 +#: ../lib/modules/zarafaDynamicGroup.inc:123 +#: ../lib/modules/zarafaDynamicGroup.inc:160 +#: ../lib/modules/zarafaDynamicGroup.inc:251 +#: ../lib/modules/zarafaDynamicGroup.inc:468 +#: ../lib/modules/zarafaContact.inc:132 ../lib/modules/zarafaContact.inc:165 +#: ../lib/modules/zarafaContact.inc:196 ../lib/modules/zarafaContact.inc:555 +#: ../lib/modules/zarafaGroup.inc:67 ../lib/modules/zarafaGroup.inc:71 +#: ../lib/modules/zarafaGroup.inc:166 ../lib/modules/zarafaGroup.inc:196 +#: ../lib/modules/zarafaGroup.inc:247 ../lib/modules/zarafaGroup.inc:655 +#: ../lib/modules/zarafaUser.inc:210 ../lib/modules/zarafaUser.inc:229 +#: ../lib/modules/zarafaUser.inc:411 ../lib/modules/zarafaUser.inc:426 +#: ../lib/modules/zarafaUser.inc:475 ../lib/modules/zarafaUser.inc:1301 +#: ../lib/modules/zarafaUser.inc:1563 ../lib/modules/kolabUser.inc:172 +#: ../lib/modules/kolabUser.inc:199 ../lib/modules/kolabUser.inc:311 +#: ../lib/modules/kolabUser.inc:720 +msgid "Email aliases" +msgstr "Почтовые псевдонимы" + +#: ../lib/modules/inetOrgPerson.inc:354 ../lib/modules/inetOrgPerson.inc:414 +#: ../lib/modules/inetOrgPerson.inc:683 ../lib/modules/inetOrgPerson.inc:900 +#: ../lib/modules/inetOrgPerson.inc:1913 ../lib/modules/inetOrgPerson.inc:2382 +#: ../lib/modules/passwordSelfReset.inc:194 +#: ../lib/modules/passwordSelfReset.inc:724 +#: ../lib/modules/passwordSelfReset.inc:892 +msgid "Employee number" +msgstr "Номер работника" + +#: ../lib/modules/inetOrgPerson.inc:88 ../lib/modules/inetOrgPerson.inc:212 +#: ../lib/modules/inetOrgPerson.inc:342 ../lib/modules/inetOrgPerson.inc:422 +#: ../lib/modules/inetOrgPerson.inc:665 ../lib/modules/inetOrgPerson.inc:721 +#: ../lib/modules/inetOrgPerson.inc:1919 ../lib/modules/inetOrgPerson.inc:2380 +msgid "Employee type" +msgstr "Тип работника" + +#: ../lib/modules/inetOrgPerson.inc:722 +msgid "Employee type: Contractor, Employee, Intern, Temp, External, ..." +msgstr "" +"Тип работника: По срочному договору, обычный работник, временный, " +"внешний, ..." + +#: ../templates/lists/changePassword.php:468 +#: ../templates/lists/changePassword.php:475 ../templates/login.php:546 +msgid "Empty password submitted. Please try again." +msgstr "Был отправлен пустой пароль. Пожалуйста, попробуйте еще раз." + +#: ../lib/modules/passwordSelfReset.inc:85 +#: ../lib/modules/passwordSelfReset.inc:181 +msgid "Enable password self reset link" +msgstr "Включить ссылку на самостоятельный сброс пароля" + +#: ../lib/modules/selfRegistration.inc:45 +#: ../lib/modules/selfRegistration.inc:92 +msgid "Enable self registration link" +msgstr "Включить ссылку самостоятельной регистрации" + +#: ../lib/modules/ppolicy.inc:90 +msgid "" +"Enables quality checking (e.g. password length) of passwords. If set to " +"\"force\" then you need to disable password hashing in your LAM server " +"profile to change passwords with LAM." +msgstr "" +"Включает проверку качества (например длину) для паролей. Если установлено в " +"\"принудительно\", тогда Вам нужно отключить хэширование паролей в профиле " +"вашего сервера LAM для смены паролей с помощью LAM." + +#: ../templates/3rdParty/pla/lib/export_functions.php:160 +msgid "Encountered an error while performing search." +msgstr "При поиске произошла ошибка." + +#: ../lib/modules/imapAccess.inc:73 ../lib/modules/imapAccess.inc:111 +msgid "Encryption protocol" +msgstr "Протокол шифрования" + +#: ../lib/modules/imapAccess.inc:74 +msgid "" +"Encryption protocol for connecting to IMAP server. LAM requires an encrypted " +"connection." +msgstr "" +"Протокол шифрования для соединения с сервером IMAP. LAM необходимо " +"шифрованное соединение." + +#: ../lib/modules/sambaSamAccount.inc:539 +msgid "Eniwetok, Kwajalein" +msgstr "Eniwetok, Kwajalein" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:91 +msgid "Enter the values you would like to add:" +msgstr "Введите значения, которые Вы хотели бы добавить:" + +#: ../lib/modules/eduPerson.inc:111 ../lib/modules/eduPerson.inc:115 +#: ../lib/modules/eduPerson.inc:187 ../lib/modules/eduPerson.inc:224 +#: ../lib/modules/eduPerson.inc:376 ../lib/modules/eduPerson.inc:771 +msgid "Entitlements" +msgstr "Entitlements" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:471 +msgid "Entries found" +msgstr "Записей найдено" + +#: ../templates/serverInfo.php:269 +msgid "Entries sent" +msgstr "Записей послано" + +#: ../templates/3rdParty/pla/lib/export_functions.php:473 +msgid "Entry" +msgstr "Запись" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:43 +#, php-format +msgid "Entry %s and sub-tree deleted successfully." +msgstr "Запись %s и поддерево удалены успешно." + +#: ../templates/3rdParty/pla/htdocs/create.php:90 +msgid "Entry created" +msgstr "Запись создана" + +#: ../templates/delete.php:330 +#: ../templates/3rdParty/pla/htdocs/mass_update.php:26 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:26 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:27 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:24 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:56 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:33 +msgid "Entry does not exist" +msgstr "Запись не существует" + +#: ../lib/modules/puppetClient.inc:73 ../lib/modules/puppetClient.inc:77 +#: ../lib/modules/puppetClient.inc:121 ../lib/modules/puppetClient.inc:146 +#: ../lib/modules/puppetClient.inc:154 ../lib/modules/puppetClient.inc:232 +#: ../lib/modules/puppetClient.inc:423 +msgid "Environment" +msgstr "Окружение" + +#: ../templates/schema/schema.php:166 +msgid "Equality" +msgstr "Эквивалент" + +#: ../lib/modules/zarafaUser.inc:561 ../lib/modules/zarafaUser.inc:1315 +msgid "Equipment" +msgstr "Оборудование" + +#: ../templates/config/mainmanage.php:352 +#: ../templates/3rdParty/pla/lib/Template.php:430 +#: ../templates/3rdParty/pla/lib/Template.php:473 +#: ../templates/3rdParty/pla/lib/Template.php:517 +#: ../templates/3rdParty/pla/lib/functions.php:511 +#: ../templates/3rdParty/pla/lib/functions.php:513 +#: ../templates/3rdParty/pla/lib/ds_myldap.php:217 +#: ../templates/3rdParty/pla/htdocs/import.php:79 +msgid "Error" +msgstr "Ошибка" + +#: ../templates/3rdParty/pla/lib/functions.php:1897 +#: ../templates/3rdParty/pla/lib/functions.php:1901 +msgid "Error number" +msgstr "Номер ошибки" + +#: ../lib/modules/mitKerberos.inc:1180 ../lib/modules/heimdalKerberos.inc:1041 +msgid "Error while changing Kerberos password." +msgstr "Ошибка при смене пароля Kerberos." + +#: ../templates/delete.php:280 +#, php-format +msgid "Error while deleting DN: %s" +msgstr "Ошибка при удалении DN: %s" + +#: ../help/help.inc:141 +msgid "" +"Every account type needs exactly one base module. This module provides a " +"structural object class." +msgstr "" +"Для каждого типа учетной записи требуется один основной модуль. Этот модуль " +"предоставляет структурный класс объекта." + +#: ../lib/modules/customScripts.inc:60 ../lib/modules/customScripts.inc:73 +#: ../lib/modules/selfRegistration.inc:124 ../lib/modules/zarafaContact.inc:90 +#: ../lib/modules/zarafaGroup.inc:93 ../lib/modules/dhcp_settings.inc:557 +#: ../lib/modules/zarafaUser.inc:139 ../help/help.inc:74 ../help/help.inc:80 +#: ../help/help.inc:88 ../help/help.inc:93 ../help/help.inc:113 +msgid "Example" +msgstr "Пример" + +#: ../templates/masscreate.php:296 ../templates/masscreate.php:371 +msgid "Example value" +msgstr "Возможное значение" + +#: ../help/help.inc:62 +msgid "Examples" +msgstr "Примеры" + +#: ../templates/config/confmain.php:308 +msgid "Execute" +msgstr "Выполнять" + +#: ../templates/tests/lamdaemonTest.php:269 +msgid "Execute lamdaemon" +msgstr "Выполните lamdaemon" + +#: ../lib/modules/freeRadius.inc:97 ../lib/modules/freeRadius.inc:123 +#: ../lib/modules/freeRadius.inc:202 ../lib/modules/freeRadius.inc:230 +#: ../lib/modules/freeRadius.inc:432 ../lib/modules/freeRadius.inc:622 +msgid "Expiration date" +msgstr "Дата окончания" + +#: ../lib/modules/asteriskAccount.inc:202 +#: ../lib/modules/asteriskAccount.inc:291 +#: ../lib/modules/asteriskAccount.inc:353 +#: ../lib/modules/asteriskAccount.inc:556 +#: ../lib/modules/asteriskAccount.inc:896 +#: ../lib/modules/asteriskAccount.inc:1213 +msgid "Expiration timestamp" +msgstr "Время окончания" + +#: ../lib/modules/asteriskAccount.inc:203 +msgid "Expiration timestamp (\"regseconds\" option)." +msgstr "Время окончания (опция \"regseconds\")." + +#: ../lib/types/ppolicyType.inc:86 ../lib/modules/ppolicy.inc:109 +#: ../lib/modules/ppolicy.inc:141 ../lib/modules/ppolicy.inc:167 +#: ../lib/modules/ppolicy.inc:207 ../lib/modules/ppolicy.inc:472 +msgid "Expire warning" +msgstr "Предупреждение об устаревании" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1081 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1084 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:305 +#: ../templates/3rdParty/pla/htdocs/export_form.php:37 +#: ../templates/3rdParty/pla/htdocs/export_form.php:53 +msgid "Export" +msgstr "Экспорт" + +#: ../templates/pdfedit/pdfmain.php:206 ../templates/pdfedit/pdfmain.php:207 +#: ../help/help.inc:192 +msgid "Export PDF structure" +msgstr "Экспортировать структуру PDF" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:105 +msgid "Export format" +msgstr "Формат экспорта" + +#: ../templates/profedit/profilemain.php:207 +#: ../templates/profedit/profilemain.php:208 ../help/help.inc:174 +msgid "Export profile" +msgstr "Экспорт профиля" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Export subtree" +msgstr "Экспорт поддерева" + +#: ../templates/pdfedit/pdfmain.php:117 +#: ../templates/profedit/profilemain.php:132 +msgid "Export successful" +msgstr "Экспорт успешен" + +#: ../templates/serverInfo.php:349 +msgid "Extended" +msgstr "Расширенный" + +#: ../lib/types/asteriskExt.inc:143 +#, php-format +msgid "Extension count: %s" +msgstr "Количество расширений: %s" + +#: ../lib/types/asteriskExt.inc:94 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskExtension.inc:95 +#: ../lib/modules/asteriskExtension.inc:130 +#: ../lib/modules/asteriskExtension.inc:138 +#: ../lib/modules/asteriskExtension.inc:282 +#: ../lib/modules/asteriskExtension.inc:286 +#: ../lib/modules/asteriskExtension.inc:806 +msgid "Extension name" +msgstr "Название расширения" + +#: ../lib/modules/asteriskExtension.inc:107 +#: ../lib/modules/asteriskExtension.inc:131 +#: ../lib/modules/asteriskExtension.inc:152 +#: ../lib/modules/asteriskExtension.inc:226 +#: ../lib/modules/asteriskExtension.inc:474 +#: ../lib/modules/asteriskExtension.inc:807 +msgid "Extension owners" +msgstr "Владельцы расширения" + +#: ../lib/modules/asteriskExtension.inc:183 +msgid "Extension with this name already exists." +msgstr "Расширение с этим именем уже существует." + +#: ../templates/3rdParty/pla/htdocs/import.php:66 +msgid "Failed" +msgstr "Не удалось" + +#: ../lib/modules/mitKerberos.inc:121 ../lib/modules/mitKerberos.inc:245 +#: ../lib/modules/mitKerberos.inc:345 ../lib/modules/mitKerberos.inc:769 +msgid "Failed logins" +msgstr "Неудачных попыток входа" + +#: ../templates/initsuff.php:152 +msgid "Failed to create entry!" +msgstr "Не удалось создать запись!" + +#: ../lib/profiles.inc:190 ../lib/pdfstruct.inc:224 +msgid "Failed to export!" +msgstr "Не удалось экспортировать!" + +#: ../lib/profiles.inc:197 ../lib/pdfstruct.inc:231 +msgid "Failed to import!" +msgstr "Не удалось импортировать!" + +#: ../lib/types/ppolicyType.inc:85 ../lib/modules/ppolicy.inc:105 +#: ../lib/modules/ppolicy.inc:146 ../lib/modules/ppolicy.inc:166 +#: ../lib/modules/ppolicy.inc:273 ../lib/modules/ppolicy.inc:471 +msgid "Failure count interval" +msgstr "Интервал подсчета ошибок" + +#: ../lib/modules/inetOrgPerson.inc:74 ../lib/modules/inetOrgPerson.inc:142 +#: ../lib/modules/inetOrgPerson.inc:191 ../lib/modules/inetOrgPerson.inc:334 +#: ../lib/modules/inetOrgPerson.inc:510 ../lib/modules/inetOrgPerson.inc:650 +#: ../lib/modules/inetOrgPerson.inc:781 ../lib/modules/inetOrgPerson.inc:785 +#: ../lib/modules/inetOrgPerson.inc:1794 ../lib/modules/inetOrgPerson.inc:2373 +#: ../lib/modules/inetOrgPerson.inc:3002 +msgid "Fax number" +msgstr "Номер факса" + +#: ../lib/modules/zarafaUser.inc:148 ../lib/modules/zarafaUser.inc:208 +#: ../lib/modules/zarafaUser.inc:417 ../lib/modules/zarafaUser.inc:670 +#: ../lib/modules/zarafaUser.inc:1354 ../lib/modules/zarafaUser.inc:1393 +msgid "Features" +msgstr "Возможности" + +#: ../templates/config/mainmanage.php:356 +#: ../templates/3rdParty/pla/lib/functions.php:533 +#: ../templates/3rdParty/pla/tools/unserialize.php:14 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "File" +msgstr "Файл" + +#: ../lib/modules/customFields.inc:142 ../lib/modules/customFields.inc:2790 +msgid "File extension" +msgstr "Расширение файла" + +#: ../lib/modules/sambaSamAccount.inc:302 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user and $group are replaced with user and group name." +msgstr "" +"Имя файла и путь относительно папки netlogon, который должен быть выполнен " +"при входе в систему. Вместо $user и $group будет подставлено имя " +"пользователя и группы." + +#: ../lib/modules/windowsUser.inc:187 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user is replaced with user name." +msgstr "" +"Имя файла и путь относительно папки netlogon, который должен быть выполнен " +"при входе в систему. Вместо $user будет подставлено имя пользователя." + +#: ../lib/modules/zarafaServer.inc:69 ../lib/modules/zarafaServer.inc:105 +#: ../lib/modules/zarafaServer.inc:130 ../lib/modules/zarafaServer.inc:170 +#: ../lib/modules/zarafaServer.inc:212 ../lib/modules/zarafaServer.inc:375 +msgid "File path" +msgstr "Путь к файлу" + +#: ../templates/masscreate.php:237 ../lib/tools/fileUpload.inc:44 +#: ../lib/modules/ldapPublicKey.inc:73 ../lib/modules/customFields.inc:2776 +#: ../lib/lists.inc:770 +msgid "File upload" +msgstr "Загрузка файла" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +#: ../lib/types/zarafaAddressListType.inc:94 +#: ../lib/types/zarafaDynamicGroupType.inc:95 +#: ../lib/modules/zarafaDynamicGroup.inc:84 +#: ../lib/modules/zarafaDynamicGroup.inc:151 +#: ../lib/modules/zarafaDynamicGroup.inc:164 +#: ../lib/modules/zarafaDynamicGroup.inc:232 +#: ../lib/modules/zarafaDynamicGroup.inc:467 +#: ../lib/modules/zarafaContact.inc:84 ../lib/modules/posixGroup.inc:331 +#: ../lib/modules/posixGroup.inc:503 ../lib/modules/zarafaAddressList.inc:72 +#: ../lib/modules/zarafaAddressList.inc:127 +#: ../lib/modules/zarafaAddressList.inc:138 +#: ../lib/modules/zarafaAddressList.inc:199 +#: ../lib/modules/zarafaAddressList.inc:336 ../lib/modules/zarafaUser.inc:133 +#: ../lib/modules/sambaGroupMapping.inc:163 +#: ../lib/modules/sambaGroupMapping.inc:470 ../lib/modules/nisnetgroup.inc:97 +#: ../lib/modules/nisnetgroup.inc:470 ../lib/modules/groupOfNames.inc:92 +#: ../lib/modules/groupOfNames.inc:332 ../lib/modules/groupOfNames.inc:467 +#: ../lib/modules/nisMailAlias.inc:82 ../lib/modules/nisMailAlias.inc:273 +#: ../lib/lists.inc:376 ../help/help.inc:152 +msgid "Filter" +msgstr "Фильтр" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:509 +msgid "Filter performed" +msgstr "Фильтр применен" + +#: ../lib/types/user.inc:96 ../lib/modules/selfRegistration.inc:68 +#: ../lib/modules/selfRegistration.inc:125 ../lib/modules/windowsUser.inc:107 +#: ../lib/modules/windowsUser.inc:228 ../lib/modules/windowsUser.inc:383 +#: ../lib/modules/windowsUser.inc:447 ../lib/modules/windowsUser.inc:520 +#: ../lib/modules/windowsUser.inc:1218 ../lib/modules/inetOrgPerson.inc:64 +#: ../lib/modules/inetOrgPerson.inc:140 ../lib/modules/inetOrgPerson.inc:375 +#: ../lib/modules/inetOrgPerson.inc:607 ../lib/modules/inetOrgPerson.inc:713 +#: ../lib/modules/inetOrgPerson.inc:1413 ../lib/modules/inetOrgPerson.inc:2360 +#: ../lib/modules/inetOrgPerson.inc:2925 +msgid "First name" +msgstr "Имя" + +#: ../lib/modules/windowsUser.inc:447 ../lib/modules/windowsUser.inc:448 +#: ../lib/modules/inetOrgPerson.inc:64 ../lib/modules/inetOrgPerson.inc:65 +msgid "First name contains invalid characters!" +msgstr "Имя содержит неправильные символы!" + +#: ../lib/modules/windowsUser.inc:108 ../lib/modules/inetOrgPerson.inc:714 +msgid "First name of user. Only letters, - and spaces are allowed." +msgstr "Имя пользователя. Допустимы буквы,- и пробелы." + +#: ../lib/modules/ddns.inc:78 +msgid "Fix IP addresses" +msgstr "Зафиксировать IP адреса" + +#: ../templates/config/confmain.php:397 +msgid "Fixed list" +msgstr "Фиксированный список" + +#: ../lib/modules/posixGroup.inc:382 ../lib/modules/posixAccount.inc:203 +#: ../lib/modules/posixAccount.inc:221 +msgid "Fixed range" +msgstr "Фиксированный диапазон" + +#: ../templates/pdfedit/pdfpage.php:461 +msgid "Folding marks" +msgstr "Знаки закладок" + +#: ../lib/modules/kolabUser.inc:107 +msgid "For automatic invitation handling." +msgstr "Для автоматической обработки приглашения." + +#: ../lib/modules/nisnetgroup.inc:94 +msgid "" +"For the upload please specify the entries in the format \"(HOST,USER," +"DOMAIN)\". Multiple entries are separated by semicolon." +msgstr "" +"Для загрузки укажите значения в формате \"(HOST,USER,DOMAIN)\". Несколько " +"значений разделяются точкой с запятой." + +#: ../templates/lists/changePassword.php:233 +#: ../lib/modules/mitKerberos.inc:176 ../lib/modules/mitKerberos.inc:418 +#: ../lib/modules/shadowAccount.inc:360 ../lib/modules/heimdalKerberos.inc:120 +#: ../lib/modules/heimdalKerberos.inc:345 ../lib/modules.inc:1058 +#: ../help/help.inc:186 +msgid "Force password change" +msgstr "Принудить к смене пароля" + +#: ../lib/modules/passwordSelfReset.inc:656 +msgid "Forgot password?" +msgstr "Забыли пароль?" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:484 ../help/help.inc:226 +msgid "Format" +msgstr "Формат" + +#: ../lib/modules/qmailUser.inc:200 ../lib/modules/qmailUser.inc:270 +#: ../lib/modules/qmailUser.inc:394 ../lib/modules/qmailUser.inc:445 +#: ../lib/modules/qmailUser.inc:539 ../lib/modules/qmailUser.inc:1188 +msgid "Forwarding address" +msgstr "Адрес пересылки" + +#: ../lib/modules/qmailUser.inc:201 +msgid "Forwards all incoming messages for this user to this address." +msgstr "" +"Пересылает все входящие сообщения для этого пользователя на этот адрес." + +#: ../lib/modules/freeRadius.inc:67 +msgid "FreeRadius" +msgstr "FreeRadius" + +#: ../lib/modules/sambaSamAccount.inc:1351 +msgid "Friday" +msgstr "Пятница" + +#: ../templates/config/confmain.php:332 ../lib/modules/selfRegistration.inc:75 +#: ../lib/modules/selfRegistration.inc:131 +#: ../lib/modules/passwordSelfReset.inc:105 +#: ../lib/modules/passwordSelfReset.inc:228 +#: ../lib/modules/passwordSelfReset.inc:244 ../help/help.inc:220 +msgid "From address" +msgstr "С адреса" + +#: ../templates/config/confmain.php:496 +msgid "From address for password mails is invalid." +msgstr "Неверный адрес отправителя для писем с паролем." + +#: ../lib/modules/asteriskAccount.inc:138 +#: ../lib/modules/asteriskAccount.inc:259 +#: ../lib/modules/asteriskAccount.inc:337 +#: ../lib/modules/asteriskAccount.inc:439 +#: ../lib/modules/asteriskAccount.inc:741 +#: ../lib/modules/asteriskAccount.inc:1197 +msgid "From domain" +msgstr "С домена" + +#: ../lib/modules/asteriskAccount.inc:139 +msgid "From domain setting for this account." +msgstr "Настройка \"с домена\" для этого аккаунта." + +#: ../lib/modules/asteriskAccount.inc:134 +#: ../lib/modules/asteriskAccount.inc:257 +#: ../lib/modules/asteriskAccount.inc:336 +#: ../lib/modules/asteriskAccount.inc:432 +#: ../lib/modules/asteriskAccount.inc:732 +#: ../lib/modules/asteriskAccount.inc:1196 +msgid "From user" +msgstr "От пользователя" + +#: ../lib/modules/asteriskAccount.inc:135 +msgid "From user setting for this account." +msgstr "Настройка \"от пользователя\" для этого аккаунта." + +#: ../lib/modules/asteriskAccount.inc:142 +#: ../lib/modules/asteriskAccount.inc:261 +#: ../lib/modules/asteriskAccount.inc:338 +#: ../lib/modules/asteriskAccount.inc:446 +#: ../lib/modules/asteriskAccount.inc:750 +#: ../lib/modules/asteriskAccount.inc:1198 +msgid "Full contact" +msgstr "Полные контактные данные" + +#: ../templates/lists/changePassword.php:267 +#: ../lib/modules/asteriskVoicemail.inc:94 +#: ../lib/modules/asteriskVoicemail.inc:130 +#: ../lib/modules/asteriskVoicemail.inc:163 +#: ../lib/modules/asteriskVoicemail.inc:255 +#: ../lib/modules/asteriskVoicemail.inc:390 +msgid "Full name" +msgstr "Полное имя" + +#: ../lib/modules/asteriskVoicemail.inc:95 +msgid "Full name for Asterisk voicemail mailbox." +msgstr "Полное имя для ящика голосовой почты Asterisk." + +#: ../templates/3rdParty/pla/lib/functions.php:537 +#: ../templates/3rdParty/pla/tools/unserialize.php:17 +msgid "Function" +msgstr "Функция" + +#: ../lib/modules/windowsUser.inc:272 ../lib/modules/inetOrgPerson.inc:456 +msgid "GB-12345" +msgstr "GB-12345" + +#: ../lib/modules/posixGroup.inc:382 ../lib/modules/posixGroup.inc:495 +msgid "GID generator" +msgstr "Генератор GID" + +#: ../lib/types/host.inc:96 ../lib/types/group.inc:93 ../lib/types/user.inc:93 +#: ../lib/modules/qmailUser.inc:107 ../lib/modules/qmailUser.inc:228 +#: ../lib/modules/qmailUser.inc:334 ../lib/modules/qmailUser.inc:414 +#: ../lib/modules/qmailUser.inc:574 ../lib/modules/qmailUser.inc:1190 +#: ../lib/modules/posixGroup.inc:189 ../lib/modules/posixGroup.inc:400 +#: ../lib/modules/posixGroup.inc:413 ../lib/modules/posixGroup.inc:455 +#: ../lib/modules/posixGroup.inc:475 ../lib/modules/posixGroup.inc:547 +#: ../lib/modules/posixGroup.inc:570 ../lib/modules/posixAccount.inc:125 +#: ../lib/modules/posixAccount.inc:406 ../lib/modules/posixAccount.inc:1749 +#: ../lib/modules/sambaGroupMapping.inc:103 +#: ../lib/modules/sambaGroupMapping.inc:525 +msgid "GID number" +msgstr "GID" + +#: ../lib/modules/posixGroup.inc:570 +msgid "" +"GID number has changed. Please select checkbox to change GID number of users " +"and hosts." +msgstr "" +"GID изменен. Пожалуйста, поставьте галочку для изменения GID пользователей и " +"хостов." + +#: ../lib/modules/posixAccount.inc:125 +#, php-format +msgid "" +"GID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" +msgstr "" +"GID изменен. Для сохранения владельца файла вы должны выполнить следующую " +"команду (из под root): 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" + +#: ../lib/modules/posixGroup.inc:577 +msgid "GID number has to be a numeric value!" +msgstr "GID имеет числовое значение!" + +#: ../lib/modules/qmailUser.inc:459 +msgid "GID number is already in use." +msgstr "Этот номер GID уже используется" + +#: ../lib/modules/posixAccount.inc:249 ../lib/modules/posixAccount.inc:349 +#: ../lib/modules/posixAccount.inc:391 ../lib/modules/posixAccount.inc:417 +#: ../lib/modules/posixAccount.inc:499 ../lib/modules/posixAccount.inc:537 +#: ../lib/modules/posixAccount.inc:1342 ../lib/modules/posixAccount.inc:1752 +msgid "Gecos" +msgstr "Описание (gecos)" + +#: ../lib/modules/windowsUser.inc:518 +msgid "General" +msgstr "Общие" + +#: ../lib/modules/generalInformation.inc:51 +msgid "General information" +msgstr "Общая информация" + +#: ../templates/config/mainmanage.php:396 +#: ../templates/config/confmodules.php:164 +#: ../templates/config/confmain.php:205 +#: ../templates/config/moduleSettings.php:163 +#: ../templates/config/conftypes.php:182 +#: ../templates/selfService/adminMain.php:396 +#: ../templates/profedit/profilepage.php:215 +msgid "General settings" +msgstr "Основные настройки" + +#: ../templates/lists/changePassword.php:294 ../help/help.inc:218 +msgid "Generate random password" +msgstr "Сгенерировать случайный пароль" + +#: ../templates/3rdParty/pla/lib/functions.php:63 +#: ../templates/3rdParty/pla/lib/functions.php:595 +msgid "Generic Error" +msgstr "Общая ошибка" + +#: ../lib/modules/windowsGroup.inc:65 +msgid "Global" +msgstr "Глобальный" + +#: ../templates/pdfedit/pdfmain.php:284 +#: ../templates/profedit/profilemain.php:287 +msgid "Global templates" +msgstr "Глобальные шаблоны" + +#: ../templates/schema/schema.php:128 ../templates/schema/schema.php:265 +#: ../templates/schema/schema.php:296 ../templates/schema/schema.php:321 +msgid "Go" +msgstr "Вперед" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:215 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:139 +msgid "Go back" +msgstr "Назад" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1864 +msgid "Go to" +msgstr "Переход к" + +#: ../lib/types/ppolicyType.inc:82 ../lib/modules/ppolicy.inc:93 +#: ../lib/modules/ppolicy.inc:142 ../lib/modules/ppolicy.inc:163 +#: ../lib/modules/ppolicy.inc:215 ../lib/modules/ppolicy.inc:468 +msgid "Grace authentication limit" +msgstr "Предел отсрочки для аутентификации" + +#: ../lib/modules/quota.inc:118 ../lib/modules/quota.inc:396 +msgid "Grace block period" +msgstr "Период отсрочки на используемое место" + +#: ../lib/modules/quota.inc:119 +msgid "" +"Grace block period. Most filesystems use a fixed maximum value of 7 days." +msgstr "" +"Период отсрочки на используемое место. Большинство файловых систем " +"используют фиксированное максимальное значение в 7 дней." + +#: ../lib/modules/quota.inc:141 +msgid "" +"Grace inode (files) period. Most filesystems use a fixed maximum value of 7 " +"days." +msgstr "" +"Период отсрочки на inode(файлы). Большинство файловых систем используют " +"фиксированное максимальное значение в 7 дней." + +#: ../lib/modules/quota.inc:140 ../lib/modules/quota.inc:400 +msgid "Grace inode period" +msgstr "Период отсрочки на inode" + +#: ../templates/config/confmain.php:313 +#: ../templates/selfService/adminMain.php:589 +msgid "Group" +msgstr "Группа" + +#: ../lib/types/group.inc:63 +msgid "Group accounts (e.g. Unix and Samba)" +msgstr "Аккаунты групп (например Unix и Samba)" + +#: ../lib/types/gon.inc:180 ../lib/types/zarafaDynamicGroupType.inc:165 +#: ../lib/types/group.inc:210 ../lib/types/netgroup.inc:169 +#, php-format +msgid "Group count: %s" +msgstr "Количество групп: %s" + +#: ../lib/types/group.inc:96 ../lib/modules/posixGroup.inc:446 +#: ../lib/modules/nisnetgroup.inc:113 +msgid "Group description" +msgstr "Описание группы" + +#: ../lib/modules/posixGroup.inc:460 +msgid "Group description. If left empty group name will be used." +msgstr "Описание группы. Если не задано, будет использовано имя группы." + +#: ../lib/types/gon.inc:92 ../lib/types/gon.inc:93 ../lib/types/group.inc:95 +msgid "Group member DNs" +msgstr "DN участников группы" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:94 +#: ../lib/types/group.inc:94 ../lib/modules/posixGroup.inc:219 +#: ../lib/modules/posixGroup.inc:289 ../lib/modules/posixGroup.inc:401 +#: ../lib/modules/posixGroup.inc:419 ../lib/modules/posixGroup.inc:463 +#: ../lib/modules/posixGroup.inc:467 ../lib/modules/posixGroup.inc:544 +#: ../lib/modules/windowsGroup.inc:347 +msgid "Group members" +msgstr "Участники группы" + +#: ../lib/types/gon.inc:91 ../lib/types/zarafaDynamicGroupType.inc:91 +#: ../lib/types/group.inc:92 ../lib/types/netgroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:56 +#: ../lib/modules/zarafaDynamicGroup.inc:109 +#: ../lib/modules/zarafaDynamicGroup.inc:158 +#: ../lib/modules/zarafaDynamicGroup.inc:188 +#: ../lib/modules/zarafaDynamicGroup.inc:189 +#: ../lib/modules/zarafaDynamicGroup.inc:213 +#: ../lib/modules/zarafaDynamicGroup.inc:464 ../lib/modules/posixGroup.inc:179 +#: ../lib/modules/posixGroup.inc:404 ../lib/modules/posixGroup.inc:434 +#: ../lib/modules/posixGroup.inc:483 ../lib/modules/posixGroup.inc:546 +#: ../lib/modules/posixGroup.inc:578 ../lib/modules/posixGroup.inc:579 +#: ../lib/modules/posixGroup.inc:580 ../lib/modules/nisnetgroup.inc:76 +#: ../lib/modules/nisnetgroup.inc:105 ../lib/modules/nisnetgroup.inc:132 +#: ../lib/modules/nisnetgroup.inc:144 ../lib/modules/nisnetgroup.inc:186 +#: ../lib/modules/nisnetgroup.inc:574 ../lib/modules/windowsGroup.inc:106 +#: ../lib/modules/windowsGroup.inc:168 ../lib/modules/windowsGroup.inc:234 +#: ../lib/modules/windowsGroup.inc:257 ../lib/modules/windowsGroup.inc:274 +#: ../lib/modules/windowsGroup.inc:713 ../lib/modules/groupOfNames.inc:64 +#: ../lib/modules/groupOfNames.inc:101 ../lib/modules/groupOfNames.inc:142 +#: ../lib/modules/groupOfNames.inc:619 +msgid "Group name" +msgstr "Имя группы" + +#: ../lib/modules/zarafaDynamicGroup.inc:188 +msgid "Group name already in use." +msgstr "Имя группы уже используется." + +#: ../lib/modules/zarafaDynamicGroup.inc:189 +#: ../lib/modules/zarafaDynamicGroup.inc:190 ../lib/modules/posixGroup.inc:580 +#: ../lib/modules/posixGroup.inc:581 ../lib/modules/nisnetgroup.inc:144 +#: ../lib/modules/windowsGroup.inc:257 ../lib/modules/windowsGroup.inc:258 +msgid "" +"Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Имя группы содержит недопустимые символы. Допустимые: a-z, A-Z, 0-9 и .-_ !" + +#: ../lib/modules/posixGroup.inc:579 +msgid "Group name in use. Selected next free group name." +msgstr "Имя группы уже используется. Выберите следующее свободное имя." + +#: ../lib/modules/zarafaDynamicGroup.inc:57 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ ." +msgstr "Имя группы для создания. Допустимые символы: a-z, A-Z, 0-9 и .-_ ." + +#: ../lib/modules/posixGroup.inc:484 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ . If group name is already used group name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"Имя группы для создания. Допустимые символы: a-z, A-Z, 0-9 и .-_ . Если имя " +"группы уже используется, то к названию группы будет добавлено число. Будет " +"использовано следующее свободное число." + +#: ../lib/modules/freeRadius.inc:89 ../lib/modules/freeRadius.inc:93 +#: ../lib/modules/freeRadius.inc:121 ../lib/modules/freeRadius.inc:147 +#: ../lib/modules/freeRadius.inc:178 ../lib/modules/freeRadius.inc:227 +#: ../lib/modules/freeRadius.inc:281 ../lib/modules/freeRadius.inc:619 +msgid "Group names" +msgstr "Имена групп" + +#: ../lib/modules/groupOfNames.inc:44 +msgid "Group of names" +msgstr "Группа имен" + +#: ../lib/types/gon.inc:62 +msgid "Group of names accounts" +msgstr "Группа имен аккаунтов" + +#: ../lib/modules/groupOfUniqueNames.inc:42 +msgid "Group of unique names" +msgstr "Группа уникальных имен" + +#: ../lib/modules/posixGroup.inc:425 ../lib/modules/posixGroup.inc:471 +msgid "Group password" +msgstr "Пароль группы" + +#: ../lib/modules/windowsGroup.inc:142 ../lib/modules/windowsGroup.inc:187 +#: ../lib/modules/windowsGroup.inc:239 ../lib/modules/windowsGroup.inc:315 +#: ../lib/modules/windowsGroup.inc:742 +msgid "Group scope" +msgstr "Видимость группы" + +#: ../lib/modules/sambaGroupMapping.inc:375 +#: ../lib/modules/windowsGroup.inc:138 ../lib/modules/windowsGroup.inc:195 +#: ../lib/modules/windowsGroup.inc:238 ../lib/modules/windowsGroup.inc:318 +#: ../lib/modules/windowsGroup.inc:743 +msgid "Group type" +msgstr "Тип группы" + +#: ../lib/types/group.inc:54 ../lib/modules/posixGroup.inc:381 +#: ../lib/modules/zarafaGroup.inc:113 ../lib/modules/windowsUser.inc:192 +#: ../lib/modules/windowsUser.inc:195 ../lib/modules/windowsUser.inc:374 +#: ../lib/modules/windowsUser.inc:404 ../lib/modules/windowsUser.inc:581 +#: ../lib/modules/windowsUser.inc:1259 ../lib/modules/windowsUser.inc:1282 +#: ../lib/modules/generalInformation.inc:103 +msgid "Groups" +msgstr "Группы" + +#: ../lib/types/gon.inc:53 ../lib/modules/posixAccount.inc:254 +#: ../lib/modules/posixAccount.inc:357 ../lib/modules/posixAccount.inc:420 +#: ../lib/modules/posixAccount.inc:1495 ../lib/modules/posixAccount.inc:1644 +#: ../lib/modules/posixAccount.inc:1761 ../lib/modules/windowsUser.inc:725 +#: ../lib/modules/groupOfNamesUser.inc:47 +#: ../lib/modules/groupOfNamesUser.inc:49 +#: ../lib/modules/groupOfNamesUser.inc:53 +#: ../lib/modules/groupOfNamesUser.inc:57 +#: ../lib/modules/groupOfNamesUser.inc:64 +#: ../lib/modules/groupOfNamesUser.inc:304 +#: ../lib/modules/groupOfNamesUser.inc:340 +msgid "Groups of names" +msgstr "Группы имен" + +#: ../lib/modules/dhcp_settings.inc:99 +msgid "H-Node (0x08)" +msgstr "H-Node (0x08)" + +#: ../templates/config/confmain.php:345 ../lib/modules/selfRegistration.inc:81 +#: ../lib/modules/passwordSelfReset.inc:232 +#: ../lib/modules/passwordSelfReset.inc:248 ../help/help.inc:229 +msgid "HTML format" +msgstr "Формат HTML" + +#: ../templates/config/confmain.php:431 +#: ../templates/selfService/adminMain.php:428 ../help/help.inc:122 +msgid "HTTP authentication" +msgstr "HTTP аутентификация" + +#: ../lib/modules/zarafaServer.inc:61 ../lib/modules/zarafaServer.inc:93 +#: ../lib/modules/zarafaServer.inc:128 ../lib/modules/zarafaServer.inc:166 +#: ../lib/modules/zarafaServer.inc:188 ../lib/modules/zarafaServer.inc:373 +msgid "HTTP port" +msgstr "Порт HTTP" + +#: ../lib/modules/quota.inc:628 ../lib/modules/systemQuotas.inc:377 +msgid "Hard block" +msgstr "Hard block" + +#: ../lib/modules/quota.inc:112 ../lib/modules/quota.inc:113 +#: ../lib/modules/quota.inc:395 ../lib/modules/quota.inc:501 +#: ../lib/modules/systemQuotas.inc:119 +msgid "Hard block limit" +msgstr "Жесткий лимит места" + +#: ../lib/modules/quota.inc:630 ../lib/modules/systemQuotas.inc:379 +msgid "Hard inode" +msgstr "Hard inode" + +#: ../lib/modules/quota.inc:135 +msgid "Hard inode (files) limit" +msgstr "Жесткий лимит кол-ва файлов (inodes)" + +#: ../lib/modules/quota.inc:134 ../lib/modules/quota.inc:399 +#: ../lib/modules/quota.inc:503 ../lib/modules/systemQuotas.inc:123 +msgid "Hard inode limit" +msgstr "Жесткий лимит inode" + +#: ../lib/modules/generalInformation.inc:97 +msgid "Has subentries" +msgstr "Имеет подзаписи" + +#: ../lib/modules/sambaSamAccount.inc:541 +msgid "Hawaii" +msgstr "Hawaii" + +#: ../templates/pdfedit/pdfpage.php:452 ../templates/pdfedit/pdfpage.php:591 +#: ../templates/pdfedit/pdfpage.php:598 +msgid "Headline" +msgstr "Заголовок" + +#: ../lib/modules/heimdalKerberos.inc:228 +msgid "Heimdal Kerberos password change command" +msgstr "Команда для смены пароля Heimdal Kerberos" + +#: ../templates/main_header.php:138 ../lib/modules.inc:664 +msgid "Help" +msgstr "Помощь" + +#: ../lib/tools/schemaBrowser.inc:53 +msgid "Here you can browse LDAP object classes and attributes." +msgstr "Здесь можно посмотреть LDAP объекты и атрибуты." + +#: ../lib/modules/sambaSamAccount.inc:381 +msgid "Here you can change the settings for the terminal server access." +msgstr "Изменение настроек для доступа к серверу терминалов." + +#: ../lib/selfService.inc:367 +msgid "Here you can change your personal settings." +msgstr "Здесь вы можете поменять свои персональные настройки." + +#: ../templates/masscreate.php:129 +msgid "Here you can create multiple accounts by providing a CSV file." +msgstr "Здесь можно создать несколько учетных записей при помощи CSV файла." + +#: ../lib/modules/dhcp_settings.inc:191 +msgid "Here you can enter a description for this DHCP entry." +msgstr "Здесь вы можете указать описание для этой записи DHCP." + +#: ../lib/modules/nisnetgroup.inc:81 ../lib/modules/groupOfNames.inc:69 +msgid "Here you can enter a description for this group." +msgstr "Здесь вы можете указать описание для этой группы." + +#: ../lib/modules/sudoRole.inc:60 +msgid "Here you can enter a description for this role." +msgstr "Здесь вы можете указать описания для этой роли." + +#: ../lib/modules/zarafaContact.inc:85 ../lib/modules/posixGroup.inc:504 +#: ../lib/modules/zarafaUser.inc:134 ../lib/modules/sambaGroupMapping.inc:164 +#: ../lib/modules/nisnetgroup.inc:98 ../lib/modules/groupOfNames.inc:93 +#: ../lib/modules/nisMailAlias.inc:83 +msgid "" +"Here you can enter a filter value. Only entries which contain the filter " +"text will be shown." +msgstr "" +"Здесь вы можете указать значение фильтра. Будут показаны только те записи, " +"которые содержат текст фильтра." + +#: ../lib/modules/posixAccount.inc:463 ../lib/modules/groupOfNamesUser.inc:58 +msgid "" +"Here you can enter a list of additional group memberships. The group names " +"are separated by commas." +msgstr "" +"Здесь вы можете указать другие группы, для членства в них. Имена групп " +"разделены запятыми." + +#: ../lib/modules/device.inc:59 +msgid "Here you can enter a serial number for this device." +msgstr "Здесь вы можете указать серийный номер для этого устройства." + +#: ../lib/modules/windowsUser.inc:160 ../lib/modules/windowsUser.inc:164 +msgid "Here you can enter additional web sites for the user." +msgstr "" +"Здесь вы можете указать дополнительные веб-сайты для этого пользователя." + +#: ../help/help.inc:195 +msgid "" +"Here you can enter an alternative mail address for the password. To use the " +"user's primary email address please leave the field blank." +msgstr "" +"Здесь вы можете указать другой адрес электронной почты для пароля. " +"Пожалуйста, оставьте это поле пустым, если хотите использовать свой основной " +"адрес электронной почты." + +#: ../lib/modules/customFields.inc:71 +msgid "" +"Here you can enter one or more object classes (separated by comma). This " +"will allow you to add/remove the group's attributes including their object " +"classes." +msgstr "" +"Здесь вы можете указать один или несколько классов объектов (разделенные " +"запятыми). Это позволит вам удалять/добавлять атрибуты группы, включая их " +"классы объектов." + +#: ../lib/modules/inetOrgPerson.inc:869 ../lib/modules/inetOrgPerson.inc:873 +msgid "Here you can enter the user's department." +msgstr "Здесь вы можете указать подразделение пользователя." + +#: ../lib/modules/zarafaUser.inc:149 +msgid "Here you can explicitly enable and disable Zarafa features." +msgstr "Здесь вы можете явно включать и отключать возможности Zarafa." + +#: ../help/help.inc:193 +msgid "" +"Here you can export PDF structures to other server profiles (overwrite " +"existing). You may also export a structure to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"structure with this name." +msgstr "" +"Здесь вы можете экспортировать структуры PDF в другие профили сервера " +"(перезаписывая существующие). Вы так же можете экспортировать структуру в " +"глобальные шаблоны. В этом случае это она будет скопирована во все профили " +"сервера не имеющие структуру с таким именем." + +#: ../help/help.inc:175 +msgid "" +"Here you can export account profiles to other server profiles (overwrite " +"existing). You may also export a profile to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"profile with this name." +msgstr "" +"Здесь вы можете экспортировать профили аккаунта в другие профили сервера " +"(перезаписывая существующие). Вы так же можете экспортировать профиль в " +"глобальные шаблоны. В этом случае это он будет скопирован во все профили " +"сервера не имеющие профиль с таким именем." + +#: ../help/help.inc:191 +msgid "" +"Here you can import PDF structures from other server profiles (overwrite " +"existing)." +msgstr "" +"Здесь вы можете импортировать структуры PDF из других профилей сервера " +"(перезаписывая существующие)." + +#: ../help/help.inc:173 +msgid "" +"Here you can import account profiles from other server profiles (overwrite " +"existing)." +msgstr "" +"Здесь вы можете импортировать профили аккаунтов из других профилей сервера " +"(перезаписывая существующие)." + +#: ../help/help.inc:153 +msgid "" +"Here you can input simple filter expressions (e.g. 'value' or 'v*'). The " +"filter is case-sensitive." +msgstr "" +"Здесь можно добавить простые фильтры (например 'value' или 'v*'). Фильтр " +"регистронезависим." + +#: ../help/help.inc:179 +msgid "" +"Here you can load an account profile to set default settings for your " +"account. The \"default\" profile is automatically loaded for new accounts." +msgstr "" +"Здесь можно загрузить профиль учетной записи для установки значений по " +"умолчанию. Профиль \"по умолчанию\" автоматически загружается для новых " +"учетных записей." + +#: ../lib/tools/profileEditor.inc:53 +msgid "Here you can manage your account profiles." +msgstr "Здесь вы можете управлять профилями вашего аккаунта." + +#: ../help/help.inc:181 +msgid "" +"Here you can select a PDF structure and export the account to a PDF file." +msgstr "" +"Здесь вы можете выбрать PDF структуру и экспортировать аккаунт в PDF файл." + +#: ../help/help.inc:147 +msgid "" +"Here you can select where LAM should save its log messages. System logging " +"will go to Syslog on Unix systems and event log on Windows. You can also " +"select an extra file." +msgstr "" +"Здесь можно выбрать куда LAM будет сохранять логи. Системный лог это Syslog " +"на Unix и журнал событий на Windows системах. Так же можно выбрать запись в " +"отдельный файл." + +#: ../help/help.inc:108 +msgid "" +"Here you can select which plugins you want to use for account management." +msgstr "" +"Здесь можно выбрать, какие плагины использовать для управления аккаунтами." + +#: ../help/help.inc:121 +msgid "" +"Here you can set a limit for LDAP searches. This will restrict the number of " +"results for LDAP searches. Please use this if LAM's LDAP queries produce too " +"much load." +msgstr "" +"Здесь вы можете ограничить поиск в LDAP. Это ограничит количество " +"результатов, возвращаемых поиском. Пожалуйста, используйте это, если " +"возникает слишком большая нагрузка в результате запросов к LDAP инициируемых " +"LAM." + +#: ../help/help.inc:217 +msgid "" +"Here you can specify additional CSS links to change the layout of the self " +"service pages. This is useful to adapt them to your corporate design. Please " +"enter one link per line." +msgstr "" +"Укажите дополнительные ссылки css для изменения внешнего вида страниц " +"самообслуживания. Это можно использовать для вашего корпоративного стиля. " +"Одна ссылка на одну строку." + +#: ../help/help.inc:151 +msgid "" +"Here you can specify minimum requirements for passwords. The character " +"classes are: lowercase, uppercase, numeric and symbols." +msgstr "" +"Здесь вы можете указать минимальные требования к паролям. Классы символов: " +"маленькие буквы, большие буквы , числа и символы." + +#: ../lib/modules/nisnetgroup.inc:85 +msgid "" +"Here you can specify subgroups which are included in this NIS netgroup. All " +"members of the subgroups will be treated as members of this group." +msgstr "" +"Здесь вы можете указать подгруппы, которые включены в эту сетевую группу " +"NIS. Все члены подгрупп будут рассматриваться как члены этой группы." + +#: ../help/help.inc:125 +msgid "" +"Here you can specify the DN and password of the bind user that will be used " +"for the LDAP search. This is required if your LDAP server does not allow " +"anonymous access." +msgstr "" +"Здесь Вы можете указать DN и пароль пользователя для связи, который будет " +"использоваться для поиска в LDAP. Если ваш сервер не разрешает анонимный " +"доступ, то это необходимо заполнить." + +#: ../lib/modules/hostObject.inc:73 +msgid "" +"Here you can specify the list of host names where this account has login " +"privileges. The wildcard \"*\" represents all hosts. You may also use \"!\" " +"in front of a host name to deny access to a host." +msgstr "" +"Здесь вы можете указать список хостов, где этот аккаунт может входить в " +"систему. Маска \"*\" означает все хосты. Вы также можете использовать \"!\" " +"перед именем хоста, если хотите запретить доступ к этому хосту." + +#: ../lib/modules/sambaDomain.inc:95 +msgid "" +"Here you can specify the minimum number of characters for a user password." +msgstr "Здесь задается минимальное кол-во символов для пароля пользователя." + +#: ../templates/lists/changePassword.php:322 +msgid "Here you can specify the new password yourself." +msgstr "Здесь вы можете указать новый пароль самостоятельно." + +#: ../lib/modules/sambaSamAccount.inc:372 +msgid "Here you can specify the shadowing mode." +msgstr "Здесь вы можете указать режим shadowing." + +#: ../lib/tools/tests.inc:53 +msgid "Here you can test if certain LAM features work on your installation." +msgstr "" +"Здесь можно протестировать, будут ли работать определенные функции LAM." + +#: ../lib/modules/customFields.inc:147 +msgid "Here you can upload a new file." +msgstr "Здесь вы можете закгрузить новый файл." + +#: ../templates/config/conftypes.php:283 +#: ../lib/types/zarafaAddressListType.inc:95 +#: ../lib/types/zarafaDynamicGroupType.inc:96 +#: ../lib/modules/zarafaDynamicGroup.inc:72 +#: ../lib/modules/zarafaDynamicGroup.inc:129 +#: ../lib/modules/zarafaDynamicGroup.inc:162 +#: ../lib/modules/zarafaDynamicGroup.inc:266 +#: ../lib/modules/zarafaDynamicGroup.inc:478 +#: ../lib/modules/zarafaContact.inc:64 ../lib/modules/zarafaContact.inc:153 +#: ../lib/modules/zarafaContact.inc:161 ../lib/modules/zarafaContact.inc:236 +#: ../lib/modules/zarafaContact.inc:561 ../lib/modules/zarafaGroup.inc:79 +#: ../lib/modules/zarafaGroup.inc:140 ../lib/modules/zarafaGroup.inc:190 +#: ../lib/modules/zarafaGroup.inc:290 ../lib/modules/zarafaGroup.inc:671 +#: ../lib/modules/zarafaAddressList.inc:60 +#: ../lib/modules/zarafaAddressList.inc:105 +#: ../lib/modules/zarafaAddressList.inc:136 +#: ../lib/modules/zarafaAddressList.inc:207 +#: ../lib/modules/zarafaAddressList.inc:346 ../lib/modules/zarafaUser.inc:73 +#: ../lib/modules/zarafaUser.inc:331 ../lib/modules/zarafaUser.inc:380 +#: ../lib/modules/zarafaUser.inc:408 ../lib/modules/zarafaUser.inc:609 +#: ../lib/modules/zarafaUser.inc:1340 ../help/help.inc:158 +msgid "Hidden" +msgstr "Скрыто" + +#: ../help/help.inc:159 +msgid "" +"Hidden account types will not show up in LAM. This is useful if you want to " +"display e.g. only groups but still need to manage their members." +msgstr "" +"Скрытые типы аккаунта не будут показаны в LAM. Это удобно, если вы хотите " +"показывать ,например, только группы, но при этом иметь возможность " +"редактировать их участников." + +#: ../lib/modules/asteriskAccount.inc:234 +#: ../lib/modules/asteriskAccount.inc:245 ../lib/modules/qmailUser.inc:95 +#: ../lib/modules/qmailUser.inc:188 ../lib/modules/zarafaGroup.inc:102 +#: ../lib/modules/zarafaGroup.inc:128 ../lib/modules/sambaSamAccount.inc:386 +#: ../lib/modules/sambaSamAccount.inc:576 ../lib/modules/posixAccount.inc:245 +#: ../lib/modules/posixAccount.inc:434 ../lib/modules/zarafaUser.inc:125 +#: ../lib/modules/zarafaUser.inc:182 ../lib/modules/inetOrgPerson.inc:304 +#: ../lib/modules/inetOrgPerson.inc:876 ../lib/modules/freeRadius.inc:105 +#: ../lib/modules/freeRadius.inc:111 ../lib/modules/zarafaServer.inc:81 +#: ../lib/modules/zarafaServer.inc:152 ../lib/modules/qmailGroup.inc:61 +#: ../lib/modules/qmailGroup.inc:112 ../lib/modules/windowsGroup.inc:102 +#: ../lib/modules/windowsGroup.inc:153 ../lib/modules/groupOfNames.inc:60 +#: ../lib/modules/groupOfNames.inc:158 +msgid "Hidden options" +msgstr "Скрытые опции" + +#: ../templates/config/confmain.php:358 +msgid "Hidden tools" +msgstr "Скрытые инструменты" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1115 +msgid "Hide" +msgstr "Скрыть" + +#: ../lib/modules/customScripts.inc:81 ../lib/modules/customScripts.inc:91 +#: ../lib/modules/customScripts.inc:100 +msgid "Hide command in messages" +msgstr "Скрыть команды в сообщениях" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1116 +msgid "Hide internal attributes" +msgstr "Скрыть внутренние атрибуты" + +#: ../templates/3rdParty/pla/lib/page.php:407 +msgid "Hide/Unhide the tree" +msgstr "Скрыть/Открыть дерево" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:58 +msgid "Hint" +msgstr "Подсказка" + +#: ../templates/masscreate.php:243 +msgid "" +"Hint: Format all cells as text in your spreadsheet program and turn off auto " +"correction." +msgstr "" +"Подсказка: Отформатируйте все ячейки как текст и выключите авто-коррекцию." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1005 +msgid "Hint: To delete an attribute, empty the text field and click save." +msgstr "Подсказка: для удаления атрибута, очистите строку и нажмите сохранить." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1342 +msgid "" +"Hint: You must choose exactly one structural object class (shown in bold " +"above)" +msgstr "" +"Подсказка: Вы должны выбрать только один структурный класс объекта (показан " +"жирным шрифтом выше)" + +#: ../lib/modules/posixAccount.inc:524 ../lib/modules/windowsUser.inc:193 +#: ../lib/modules/groupOfNamesUser.inc:54 +msgid "Hold the CTRL-key to (de)select multiple groups." +msgstr "Удерживайте CTRL для выбора нескольких групп." + +#: ../lib/types/user.inc:98 ../lib/modules/sambaSamAccount.inc:223 +#: ../lib/modules/sambaSamAccount.inc:344 +#: ../lib/modules/sambaSamAccount.inc:1476 +#: ../lib/modules/sambaSamAccount.inc:1891 ../lib/modules/posixAccount.inc:100 +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:103 +#: ../lib/modules/posixAccount.inc:303 ../lib/modules/posixAccount.inc:409 +#: ../lib/modules/posixAccount.inc:466 ../lib/modules/posixAccount.inc:470 +#: ../lib/modules/posixAccount.inc:474 ../lib/modules/posixAccount.inc:507 +#: ../lib/modules/posixAccount.inc:1117 ../lib/modules/posixAccount.inc:1361 +#: ../lib/modules/posixAccount.inc:1551 ../lib/modules/posixAccount.inc:1651 +#: ../lib/modules/posixAccount.inc:1750 +msgid "Home directory" +msgstr "Домашний каталог" + +#: ../lib/modules/posixAccount.inc:103 +#, php-format +msgid "" +"Home directory changed. To keep home directory you have to run the following " +"command as root: 'mv %s %s'" +msgstr "" +"Домашний каталог изменен. Чтобы не потерять домашний каталог выполните (из " +"под root): 'mv %s %s'" + +#: ../lib/modules/sambaSamAccount.inc:207 +#: ../lib/modules/sambaSamAccount.inc:224 +#: ../lib/modules/sambaSamAccount.inc:292 +#: ../lib/modules/sambaSamAccount.inc:473 +#: ../lib/modules/sambaSamAccount.inc:581 +#: ../lib/modules/sambaSamAccount.inc:1178 +#: ../lib/modules/sambaSamAccount.inc:1484 +#: ../lib/modules/sambaSamAccount.inc:1725 +#: ../lib/modules/sambaSamAccount.inc:1876 +#: ../lib/modules/sambaSamAccount.inc:1892 +msgid "Home drive" +msgstr "Сетевой диск" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:95 +#: ../lib/modules/sambaSamAccount.inc:210 +#: ../lib/modules/sambaSamAccount.inc:295 +#: ../lib/modules/sambaSamAccount.inc:481 +#: ../lib/modules/sambaSamAccount.inc:583 +#: ../lib/modules/sambaSamAccount.inc:1186 +#: ../lib/modules/sambaSamAccount.inc:1729 +#: ../lib/modules/sambaSamAccount.inc:1875 +msgid "Home path" +msgstr "Путь к домашнему каталогу" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:96 +msgid "Home path is invalid." +msgstr "Путь к домашнему каталогу не правильный." + +#: ../lib/modules/zarafaUser.inc:122 +msgid "Home server for the user." +msgstr "Домашний сервер для этого пользователя." + +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:144 +#: ../lib/modules/inetOrgPerson.inc:330 ../lib/modules/inetOrgPerson.inc:494 +#: ../lib/modules/inetOrgPerson.inc:644 ../lib/modules/inetOrgPerson.inc:820 +#: ../lib/modules/inetOrgPerson.inc:824 ../lib/modules/inetOrgPerson.inc:1740 +#: ../lib/modules/inetOrgPerson.inc:2369 ../lib/modules/inetOrgPerson.inc:2980 +msgid "Home telephone number" +msgstr "Домашний телефон" + +#: ../lib/modules/posixAccount.inc:100 ../lib/modules/posixAccount.inc:102 +msgid "Homedirectory contains invalid characters." +msgstr "Домашний каталог содержит недопустимые символы." + +#: ../lib/types/sudo.inc:79 ../lib/modules/asteriskAccount.inc:98 +#: ../lib/modules/asteriskAccount.inc:316 +#: ../lib/modules/asteriskAccount.inc:330 +#: ../lib/modules/asteriskAccount.inc:380 +#: ../lib/modules/asteriskAccount.inc:663 +#: ../lib/modules/asteriskAccount.inc:1190 ../lib/modules/nisnetgroup.inc:210 +#: ../lib/modules/nisnetgroup.inc:580 ../lib/modules/hostObject.inc:143 +msgid "Host" +msgstr "Хост" + +#: ../lib/types/host.inc:62 +msgid "Host accounts (e.g. Samba)" +msgstr "Аккаунты хостов (например, Samba)" + +#: ../lib/types/host.inc:193 +#, php-format +msgid "Host count: %s" +msgstr "Количество хостов: %s" + +#: ../lib/types/host.inc:94 +msgid "Host description" +msgstr "Описание хоста" + +#: ../lib/modules/account.inc:89 ../lib/modules/posixAccount.inc:538 +#: ../lib/modules/posixAccount.inc:546 +msgid "Host description. If left empty host name will be used." +msgstr "Описание хоста. Если не задано, будет использовано имя хоста." + +#: ../lib/modules/hostObject.inc:84 ../lib/modules/hostObject.inc:91 +#: ../lib/modules/hostObject.inc:255 +msgid "Host list" +msgstr "Список хостов" + +#: ../lib/types/host.inc:91 ../lib/types/host.inc:92 +#: ../lib/modules/account.inc:84 ../lib/modules/account.inc:209 +#: ../lib/modules/windowsHost.inc:67 ../lib/modules/windowsHost.inc:87 +#: ../lib/modules/windowsHost.inc:112 ../lib/modules/windowsHost.inc:124 +#: ../lib/modules/windowsHost.inc:135 ../lib/modules/windowsHost.inc:287 +#: ../lib/modules/posixAccount.inc:115 ../lib/modules/posixAccount.inc:116 +#: ../lib/modules/posixAccount.inc:118 ../lib/modules/posixAccount.inc:368 +#: ../lib/modules/posixAccount.inc:399 ../lib/modules/posixAccount.inc:533 +#: ../lib/modules/posixAccount.inc:1322 ../lib/modules/posixAccount.inc:1740 +#: ../lib/modules/nisnetgroup.inc:146 ../lib/modules/nisnetgroup.inc:474 +msgid "Host name" +msgstr "Имя хоста" + +#: ../lib/modules/posixAccount.inc:122 +msgid "Host name already exists!" +msgstr "Имя хоста уже существует!" + +#: ../lib/modules/windowsHost.inc:124 ../lib/modules/windowsHost.inc:125 +#: ../lib/modules/posixAccount.inc:116 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/nisnetgroup.inc:146 +msgid "" +"Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Имя хоста содержит недопустимые символы. Допустимые: a-z, A-Z, 0-9 и .-_ !" + +#: ../lib/modules/posixAccount.inc:118 +msgid "Host name in use. Selected next free host name." +msgstr "Имя хоста используется. Выберите другое имя." + +#: ../lib/modules/sambaSamAccount.inc:1078 +msgid "Host name must end with $!" +msgstr "Имя хоста должно заканчиваться на $!" + +#: ../lib/modules/account.inc:85 ../lib/modules/posixAccount.inc:534 +msgid "" +"Host name of the host which should be created. Valid characters are: a-z,A-" +"Z,0-9, .-_$. Host names are always ending with $. If last character is not $ " +"it will be added. If host name is already used host name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"Имя хоста для создания. Допустимые символы: a-z, A-Z, 0-9, .-_$. Имя хоста " +"всегда заканчивается на $. Если последний символ не $, то $ будет добавлен. " +"Если имя уже существует, то к имени будет добавлено число. Будет " +"использовано следующее свободное число." + +#: ../lib/types/host.inc:53 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:96 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:220 ../lib/modules/sudoRole.inc:67 +#: ../lib/modules/sudoRole.inc:92 ../lib/modules/sudoRole.inc:140 +#: ../lib/modules/sudoRole.inc:174 ../lib/modules/sudoRole.inc:183 +#: ../lib/modules/sudoRole.inc:291 ../lib/modules/sudoRole.inc:685 +#: ../lib/modules/fixed_ip.inc:70 ../lib/modules/hostObject.inc:62 +#: ../lib/modules/hostObject.inc:72 +msgid "Hosts" +msgstr "Хосты" + +#: ../lib/modules/qmailUser.inc:345 +msgid "I am out of office." +msgstr "Я вне офиса" + +#: ../lib/modules/posixGroup.inc:573 ../lib/modules/posixAccount.inc:106 +#: ../lib/modules/posixAccount.inc:1087 +msgid "ID is already in use" +msgstr "ID занят" + +#: ../lib/modules/posixGroup.inc:571 ../lib/modules/posixGroup.inc:572 +#: ../lib/modules/posixGroup.inc:573 ../lib/modules/posixGroup.inc:695 +#: ../lib/modules/posixAccount.inc:104 ../lib/modules/posixAccount.inc:105 +#: ../lib/modules/posixAccount.inc:106 ../lib/modules/posixAccount.inc:1078 +#: ../lib/modules/posixAccount.inc:1083 ../lib/modules/posixAccount.inc:1087 +msgid "ID-Number" +msgstr "ID-Number" + +#: ../lib/modules/zarafaUser.inc:340 ../lib/modules/zarafaUser.inc:674 +#: ../lib/modules/zarafaUser.inc:1397 +msgid "IMAP" +msgstr "IMAP" + +#: ../lib/modules/imapAccess.inc:79 ../lib/modules/imapAccess.inc:115 +msgid "IMAP admin user" +msgstr "Администратор IMAP" + +#: ../lib/modules/imapAccess.inc:82 ../lib/modules/imapAccess.inc:118 +msgid "IMAP password input" +msgstr "Ввод пароля IMAP" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ipHost.inc:48 +#: ../lib/modules/ipHost.inc:58 ../lib/modules/ipHost.inc:127 +#: ../lib/modules/asteriskAccount.inc:218 +#: ../lib/modules/asteriskAccount.inc:299 +#: ../lib/modules/asteriskAccount.inc:357 +#: ../lib/modules/asteriskAccount.inc:584 +#: ../lib/modules/asteriskAccount.inc:936 +#: ../lib/modules/asteriskAccount.inc:1217 ../lib/modules/freeRadius.inc:77 +#: ../lib/modules/freeRadius.inc:115 ../lib/modules/freeRadius.inc:186 +#: ../lib/modules/freeRadius.inc:218 ../lib/modules/freeRadius.inc:305 +#: ../lib/modules/freeRadius.inc:616 ../lib/modules/fixed_ip.inc:96 +#: ../lib/modules/fixed_ip.inc:362 ../lib/modules/fixed_ip.inc:560 +msgid "IP address" +msgstr "IP адрес" + +#: ../lib/modules/ddns.inc:91 ../lib/modules/ddns.inc:105 +#: ../lib/modules/ddns.inc:114 ../lib/modules/ddns.inc:374 +#: ../lib/modules/ddns.inc:417 +msgid "IP address of the DNS server" +msgstr "IP адрес DNS сервера" + +#: ../lib/modules/asteriskAccount.inc:219 +msgid "IP address of the peer. Valid only for realtime peers." +msgstr "" +"IP адрес участника. Действителен только для участников реального времени." + +#: ../lib/modules/asteriskAccount.inc:227 +msgid "IP address or domain name of the registration server." +msgstr "IP адрес или доменное имя сервера регистрации." + +#: ../lib/modules/ipHost.inc:62 ../lib/modules/ipHost.inc:77 +#: ../lib/modules/ipHost.inc:97 ../lib/modules/ipHost.inc:308 +msgid "IP addresses" +msgstr "IP адреса" + +#: ../lib/modules/fixed_ip.inc:105 +msgid "IP list" +msgstr "Список IP" + +#: ../lib/modules/passwordSelfReset.inc:133 +#: ../lib/modules/passwordSelfReset.inc:197 +msgid "Identification method" +msgstr "Метод идентификации" + +#: ../templates/masscreate.php:292 ../templates/masscreate.php:367 +msgid "Identifier" +msgstr "Идентификатор" + +#: ../lib/modules/sambaSamAccount.inc:231 +#: ../lib/modules/sambaSamAccount.inc:1502 +#: ../lib/modules/sambaSamAccount.inc:1903 +msgid "Idle time limit" +msgstr "Максимальное время неактивности" + +#: ../lib/modules/freeRadius.inc:101 ../lib/modules/freeRadius.inc:125 +#: ../lib/modules/freeRadius.inc:150 ../lib/modules/freeRadius.inc:210 +#: ../lib/modules/freeRadius.inc:233 ../lib/modules/freeRadius.inc:321 +#: ../lib/modules/freeRadius.inc:620 +msgid "Idle timeout" +msgstr "Время неактивности" + +#: ../lib/modules/qmailUser.inc:249 +msgid "" +"If account status is set to deleted, the earliest date when the mail message " +"store including all remaining content will be deleted from the filesystem." +msgstr "" +"Дата, после которой хранилище электронных писем может быть удалено, если " +"аккаунт имеет статус \"удален\"." + +#: ../lib/modules/ppolicyUser.inc:53 +msgid "" +"If activated then the user is forced to change his password at the next " +"login." +msgstr "" +"Если активировано, то пользователь будет обязан сменить свой пароль при " +"следующем входе в систему." + +#: ../lib/modules/sambaSamAccount.inc:258 +msgid "If checked Unix password will also be used as Samba password." +msgstr "Если отмечено, пароль Unix будет использоваться и для Samba." + +#: ../lib/modules/posixAccount.inc:516 +msgid "" +"If checked account will be deactivated by putting a \"!\" before the " +"encrypted password." +msgstr "" +"Если отмечено, учетная запись будет деактивирована (вставлен \"!\" перед " +"паролем)." + +#: ../lib/modules/sambaSamAccount.inc:264 +msgid "If checked no password will be used." +msgstr "Если отмечено, пароль не будет проверяться." + +#: ../lib/modules/windowsUser.inc:178 +msgid "If checked password does not expire." +msgstr "Если отмечено, пароль никогда не устареет." + +#: ../lib/modules/sambaSamAccount.inc:270 +msgid "If checked password does not expire. (Setting X-Flag)" +msgstr "Если отмечено, пароль никогда не устареет. (Установлен X-Flag)." + +#: ../lib/modules/windowsUser.inc:175 +msgid "" +"If checked then the account is locked. You may only unlock accounts but not " +"lock them." +msgstr "" +"Если отмечено, то аккаунт заблокирован. Вы можете только разблокировать " +"аккаунты, но не блокировать." + +#: ../lib/modules/windowsUser.inc:172 +msgid "If checked then the account will be deactivated." +msgstr "Если отмечено, аккаунт будет отключен." + +#: ../lib/modules/sambaSamAccount.inc:276 +msgid "If checked then the account will be deactivated. (Setting D-Flag)" +msgstr "Если отмечено, аккаунт будет отключен. (Установлен D-Flag)." + +#: ../lib/modules/sambaSamAccount.inc:279 +msgid "" +"If checked then the account will be locked (setting L-Flag). You usually " +"want to use this setting to unlock user accounts which were locked because " +"of failed login attempts." +msgstr "" +"Если отмечено, аккаунт будет заблокирован (установлен L-Flag). Вам обычно " +"потребуется использовать эту настройку для разблокирования аккаунтов, " +"которые были заблокированы из-за неудачных попыток входа." + +#: ../help/help.inc:161 +msgid "" +"If checked then the user will not be able to create new entries of this " +"account type." +msgstr "" +"Если отмечено, то пользователь не сможет создавать новые аккаунты такого " +"типа." + +#: ../help/help.inc:163 +msgid "" +"If checked then the user will not be able to delete entries of this account " +"type." +msgstr "Если отмечено, то пользователь не сможет удалять аккаунты такого типа." + +#: ../lib/modules/posixGroup.inc:456 +msgid "" +"If empty GID number will be generated automaticly depending on your " +"configuration settings." +msgstr "" +"Если не задано, GID будет сгенерирован автоматически, в зависимости от " +"конфигурации." + +#: ../lib/modules/qmailUser.inc:229 +msgid "If empty GID number will be generated automaticly." +msgstr "Если не задано, GID будет сгенерирован автоматически." + +#: ../lib/modules/qmailUser.inc:225 ../lib/modules/posixAccount.inc:455 +msgid "If empty UID number will be generated automaticly." +msgstr "Если не задано, UID будет сгенерирован автоматически." + +#: ../lib/modules/ppolicy.inc:118 +msgid "" +"If enabled the user will not be allowed to login after there have been a " +"specified number of consecutive failed login attempts." +msgstr "" +"Если включено, то пользователь не сможет войти в систему после указанного " +"количества неудачных попыток входа." + +#: ../help/help.inc:123 +msgid "" +"If enabled then LAM will use user and password that is provided by the web " +"server via HTTP authentication." +msgstr "" +"Если включено, то LAM будет использовать имя и пароль, полученные от веб-" +"сервера посредством HTTP-аутентификации." + +#: ../lib/modules/ppolicy.inc:122 +msgid "" +"If enabled users must change their passwords when they first login after a " +"password is set or reset by the administrator." +msgstr "" +"Если включено, то при смене или сбросе их паролей администратором, " +"пользователи должны будут сменить свои пароли после первого входа в систему." + +#: ../lib/modules/asteriskAccount.inc:207 +msgid "" +"If registration context is specified, Asterisk will dynamically create and " +"destroy a NoOp priority 1 extension for a given peer who registers or " +"unregisters with Asterisk." +msgstr "" +"Если указан контекст регистрации, Asterisk будет динамически создавать и " +"удалять расширение NoOp с приоритетом 1 для данного участника, который " +"регистрируется или разрегистрируется в Asterisk." + +#: ../lib/modules/sambaDomain.inc:103 +msgid "If set then users need to login to change their password." +msgstr "" +"Если установлено, пользователи обязаны войти в систему для смены пароля." + +#: ../lib/modules/sambaSamAccount.inc:261 +msgid "If set to \"true\" Unix password will also be used as Samba password." +msgstr "" +"Если установлено \"true\", пароль Unix будет использоваться и для Samba." + +#: ../lib/modules/sambaSamAccount.inc:282 +msgid "If set to \"true\" account will be deactivated. (Setting D-Flag)" +msgstr "" +"Если установлено \"true\", аккаунт будет деактивирован. (Установлен D-Flag)." + +#: ../lib/modules/sambaSamAccount.inc:267 +msgid "If set to \"true\" no password will be used." +msgstr "Если установлено \"true\", пароль не будет проверяться." + +#: ../lib/modules/sambaSamAccount.inc:273 +msgid "If set to \"true\" password does not expire. (Setting X-Flag)" +msgstr "" +"Если установлено \"true\", пароль никогда не устареет. (Установлен X-Flag)." + +# incomming = incoming +#: ../lib/modules/qmailGroup.inc:190 +msgid "" +"If set to true then all incomming mails needs to come from a member of the " +"list." +msgstr "" +"Если установлено, то все входящие сообщения должны быть от участника списка." + +#: ../lib/modules/customFields.inc:111 +msgid "" +"If the LDAP attribute has no value then the checkbox is set to this value." +msgstr "" +"Если атрибут LDAP не имеет значения, тогда чекбокс принимает это значение." + +#: ../lib/modules/zarafaUser.inc:90 +msgid "" +"If the mailbox size reaches the soft quota limit, the user will not be able " +"to send email until the size of the mailbox is reduced." +msgstr "" +"Если размер почтового ящика достигает размера мягкой квоты, то пользователь " +"не сможет посылать письма, пока размер ящика не уменьшится." + +#: ../lib/modules/passwordSelfReset.inc:138 +msgid "" +"If the user has a Samba 3 extension then the Samba password will also be " +"set. Otherwise, no action is taken." +msgstr "" +"Если пользователь использует расширение Samba 3, тогда пароль Samba так же " +"будет установлен. Иначе ничего не произойдет." + +#: ../lib/modules/windowsUser.inc:124 ../lib/modules/windowsUser.inc:128 +msgid "If the user has multiple telephone numbers then please enter it here." +msgstr "" +"Если у пользователя есть несколько телефонных номеров, то укажите их здесь." + +# incomming - extra "m" +#: ../lib/modules/qmailGroup.inc:222 +msgid "" +"If this is set to true then an incomming mail needs to be approved by the " +"sender." +msgstr "" +"Если установлено, то вся входящая почта должна быть подтверждена " +"отправителем." + +#: ../lib/modules/qmailGroup.inc:137 ../lib/modules/qmailGroup.inc:141 +msgid "" +"If you enter one or more email addresses then mail delivery errors are " +"forwarded to these addresses instead of the sender of the original mail." +msgstr "" +"Если Вы укажете один или несколько адресов электронной почты, то ошибки " +"доставки почты будут отправлены на эти адреса, а не отправителю " +"оригинального сообщения." + +#: ../lib/modules/sambaSamAccount.inc:321 +msgid "" +"If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "Если не задано, LAM использует: uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../lib/modules/zarafaServer.inc:78 +msgid "" +"If you run Zarafa behind a reverse proxy then you can specify the server URL " +"here (e.g. \"https://zproxy.example.com:237/z1\")." +msgstr "" +"Если Zarafa работает за обратным прокси, то Вы можете указать URL сервера " +"здесь (например \"https://zproxy.example.com:237/z1\")." + +#: ../lib/modules/passwordSelfReset.inc:130 +msgid "" +"If you select this option then the user is only authenticated by his email " +"address. LAM Pro will not ask for the answer to the security question. " +"Please handle with care." +msgstr "" +"Если Вы выберете эту опцию, то пользователь будет аутентифицирован только по " +"своему адресу электронной почты. LAM Pro не будет спрашивать ответ на " +"секретный вопрос. Пользоваться с осторожностью." + +#: ../lib/modules/heimdalKerberos.inc:124 +msgid "If you set this option then the user cannot request TGT-based tickets." +msgstr "" +"Если Вы установите эту опцию, то пользователь не сможет запрашивать TGT-" +"based билеты." + +#: ../lib/modules/mitKerberos.inc:168 ../lib/modules/heimdalKerberos.inc:142 +msgid "If you set this option then the user cannot request any tickets." +msgstr "" +"Если Вы установите эту опцию, то пользователь не сможет запрашивать любые " +"билеты." + +#: ../lib/modules/mitKerberos.inc:156 ../lib/modules/heimdalKerberos.inc:127 +msgid "" +"If you set this option then the user cannot request forwardable tickets." +msgstr "" +"Если Вы установите эту опцию, то пользователь не сможет запрашивать " +"пересылаемые билеты." + +#: ../lib/modules/mitKerberos.inc:153 ../lib/modules/heimdalKerberos.inc:136 +msgid "If you set this option then the user cannot request post-dated tickets." +msgstr "" +"Если Вы установите эту опцию, то пользователь не сможет запрашивать post-" +"dated билеты." + +#: ../lib/modules/mitKerberos.inc:162 ../lib/modules/heimdalKerberos.inc:130 +msgid "If you set this option then the user cannot request proxiable tickets." +msgstr "" +"Если Вы установите эту опцию, то пользователь не сможет запрашивать " +"проксируемые билеты." + +#: ../lib/modules/mitKerberos.inc:159 ../lib/modules/heimdalKerberos.inc:133 +msgid "If you set this option then the user cannot request renewable tickets." +msgstr "" +"Если Вы установите эту опцию, то пользователь не сможет запрашивать " +"обновляемые билеты." + +#: ../lib/modules/mitKerberos.inc:180 ../lib/modules/heimdalKerberos.inc:139 +msgid "If you set this option then the user cannot request service tickets." +msgstr "" +"Если Вы установите эту опцию, то пользователь не сможет запрашивать " +"сервисные билеты." + +#: ../lib/modules/mitKerberos.inc:177 ../lib/modules/sambaSamAccount.inc:285 +#: ../lib/modules/windowsUser.inc:190 ../lib/modules/heimdalKerberos.inc:121 +#: ../help/help.inc:187 +msgid "" +"If you set this option then the user has to change his password at the next " +"login." +msgstr "" +"Если Вы установите эту опцию для того, чтобы пользователь сменил свой пароль " +"при следующем входе в систему." + +#: ../lib/modules/mitKerberos.inc:174 +msgid "" +"If you set this option then the user must preauthenticate himself using a " +"hardware device." +msgstr "" +"Если Вы установите эту опцию, то пользователь должен предварительно " +"аутентифицироваться используя аппаратное устройство." + +#: ../lib/modules/mitKerberos.inc:171 ../lib/modules/heimdalKerberos.inc:145 +msgid "If you set this option then the user must preauthenticate himself." +msgstr "" +"Если Вы установите эту опцию, то пользователь должен предварительно " +"аутентифицироваться." + +#: ../lib/modules/mitKerberos.inc:183 ../lib/modules/heimdalKerberos.inc:148 +msgid "" +"If you set this option then this account is marked as password change " +"service." +msgstr "" +"Если Вы установите эту опцию, то этот аккаунт будет отмечен как сервис смены " +"пароля." + +#: ../lib/modules/selfRegistration.inc:128 +msgid "" +"If you use the object class \"inetOrgPerson\" and do not provide the \"cn\" " +"attribute then LAM will set it to the user name value." +msgstr "" +"Если Вы используете класс объекта \"inetOrgPerson\" и не укажете атрибут " +"\"cn\", то LAM запишет в него имя пользователя." + +#: ../help/help.inc:102 +msgid "" +"If you want to change the current preferences password, please enter it here." +msgstr "" +"Если Вы хотите изменить пароль для входа в мастер настроек, наберите новый " +"пароль здесь." + +#: ../help/help.inc:137 +msgid "" +"If you want to change your master configuration password, please enter it " +"here." +msgstr "Если Вы хотите изменить мастер-пароль, наберите новый пароль здесь." + +#: ../lib/modules/sambaGroupMapping.inc:144 +msgid "If you want to use a well known RID you can select a well known group." +msgstr "" +"Вы можете выбрать общеизвестную группу, если Вы хотите использовать " +"общеизвестный RID." + +#: ../help/help.inc:112 +msgid "" +"If your server runs on another port then add a comma and the port number " +"after the server." +msgstr "" +"Если сервер запущен на другом порту, добавьте запятую и номер порта после " +"имени сервера." + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:49 +msgid "Image not available" +msgstr "Изображение недоступно" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:292 +#: ../templates/3rdParty/pla/htdocs/import.php:45 +#: ../templates/3rdParty/pla/htdocs/import_form.php:19 +msgid "Import" +msgstr "Импорт" + +#: ../templates/pdfedit/pdfmain.php:200 ../templates/pdfedit/pdfmain.php:201 +#: ../help/help.inc:190 +msgid "Import PDF structures" +msgstr "Импорт структур PDF" + +#: ../templates/config/mainmanage.php:298 +msgid "Import from server" +msgstr "Импорт с сервера" + +#: ../templates/profedit/profilemain.php:201 +#: ../templates/profedit/profilemain.php:202 ../help/help.inc:172 +msgid "Import profiles" +msgstr "Импорт профилей" + +#: ../templates/pdfedit/pdfmain.php:109 +#: ../templates/profedit/profilemain.php:124 +msgid "Import successful" +msgstr "Импорт успешен" + +#: ../templates/config/mainmanage.php:155 +msgid "Imported certificate from server." +msgstr "Импортированный сертификат с сервера." + +#: ../templates/config/mainmanage.php:300 +msgid "Imports the certificate directly from your LDAP server." +msgstr "Импортирует сертификат непосредственно с вашего LDAP сервера." + +#: ../lib/modules/fixed_ip.inc:101 +msgid "Inactive hosts will not be able to get an address from the DHCP server." +msgstr "Неактивные хосты не будут способны получить адрес с сервера DHCP." + +#: ../templates/3rdParty/pla/htdocs/export_form.php:87 +msgid "Include system attributes" +msgstr "Включать системные атрибуты" + +#: ../lib/tools/serverInfo.inc:53 +msgid "Information about the LDAP server." +msgstr "Информация о LDAP сервере." + +#: ../lib/modules/sambaSamAccount.inc:226 +#: ../lib/modules/sambaSamAccount.inc:350 +#: ../lib/modules/sambaSamAccount.inc:1488 +#: ../lib/modules/sambaSamAccount.inc:1898 +msgid "Inherit client startup configuration" +msgstr "Наследовать стартовую конфигурация клиента" + +#: ../templates/schema/schema.php:396 ../templates/schema/schema.php:417 +msgid "Inherited from" +msgstr "Унаследованный от" + +#: ../templates/schema/schema.php:157 ../templates/schema/schema.php:353 +msgid "Inherits from" +msgstr "Наследует от" + +#: ../lib/modules/sambaSamAccount.inc:227 +#: ../lib/modules/sambaSamAccount.inc:353 +#: ../lib/modules/sambaSamAccount.inc:1490 +#: ../lib/modules/sambaSamAccount.inc:1899 +msgid "Initial program" +msgstr "Начальная программа" + +#: ../lib/modules/windowsUser.inc:111 ../lib/modules/windowsUser.inc:246 +#: ../lib/modules/windowsUser.inc:384 ../lib/modules/windowsUser.inc:523 +#: ../lib/modules/windowsUser.inc:1219 ../lib/modules/inetOrgPerson.inc:146 +#: ../lib/modules/inetOrgPerson.inc:155 ../lib/modules/inetOrgPerson.inc:356 +#: ../lib/modules/inetOrgPerson.inc:390 ../lib/modules/inetOrgPerson.inc:686 +#: ../lib/modules/inetOrgPerson.inc:904 ../lib/modules/inetOrgPerson.inc:1424 +#: ../lib/modules/inetOrgPerson.inc:2385 ../lib/modules/inetOrgPerson.inc:3172 +msgid "Initials" +msgstr "Инициалы" + +#: ../templates/serverInfo.php:282 ../templates/serverInfo.php:368 +msgid "Initiated" +msgstr "Инициировано" + +#: ../lib/modules/quota.inc:57 ../lib/modules/systemQuotas.inc:98 +msgid "Inode hard quota" +msgstr "Жесткая квота на inode" + +#: ../lib/modules/quota.inc:57 ../lib/modules/quota.inc:58 +#: ../lib/modules/systemQuotas.inc:98 ../lib/modules/systemQuotas.inc:99 +msgid "" +"Inode hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Жесткая квота на inode содержит недопустимые символы. Допустимы только целые " +"числа." + +#: ../lib/modules/quota.inc:61 ../lib/modules/systemQuotas.inc:102 +msgid "Inode quota" +msgstr "Квота на inode" + +#: ../lib/modules/quota.inc:55 ../lib/modules/systemQuotas.inc:96 +msgid "Inode soft quota" +msgstr "Мягкая квота на inode" + +#: ../lib/modules/quota.inc:55 ../lib/modules/quota.inc:56 +#: ../lib/modules/systemQuotas.inc:96 ../lib/modules/systemQuotas.inc:97 +msgid "" +"Inode soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Мягкая квота на inode содержит недопустимые символы. Допустимы только целые " +"числа." + +#: ../lib/modules/quota.inc:61 ../lib/modules/quota.inc:62 +#: ../lib/modules/systemQuotas.inc:102 ../lib/modules/systemQuotas.inc:103 +msgid "Inode soft quota must be smaller than inode hard quota." +msgstr "Мягкая квота на inode должна быть меньше жесткой квоты на inode." + +#: ../templates/selfService/adminMain.php:604 +msgid "Input fields" +msgstr "Поля для ввода" + +#: ../lib/modules/asteriskAccount.inc:146 +#: ../lib/modules/asteriskAccount.inc:263 +#: ../lib/modules/asteriskAccount.inc:339 +#: ../lib/modules/asteriskAccount.inc:453 +#: ../lib/modules/asteriskAccount.inc:763 +#: ../lib/modules/asteriskAccount.inc:1199 +msgid "Insecure" +msgstr "Небезопасно" + +#: ../lib/modules/sambaSamAccount.inc:95 +msgid "Inserted user or group name in home path." +msgstr "Имя пользователя или группы включено в путь домашнего каталога." + +#: ../lib/modules/sambaSamAccount.inc:101 +msgid "Inserted user or group name in logon script." +msgstr "Имя пользователя или группы включено в logon script." + +#: ../lib/modules/sambaSamAccount.inc:98 +msgid "Inserted user or group name in profile path." +msgstr "Имя пользователя или группы включено в путь профиля." + +#: ../lib/modules/fixed_ip.inc:403 +msgid "Invalid MAC address." +msgstr "Неправильный MAC адрес." + +#: ../templates/massBuildAccounts.php:201 +msgid "Invalid RDN attribute!" +msgstr "Неверный атрибут RDN!" + +#: ../templates/3rdParty/pla/htdocs/rename.php:42 +msgid "Invalid RDN value" +msgstr "Неверное значение RDN" + +#: ../templates/3rdParty/pla/lib/import_functions.php:560 +msgid "Invalid entry" +msgstr "Неверная запись" + +#: ../lib/modules/selfRegistration.inc:150 +msgid "Invalid format for the specification of additional attributes." +msgstr "Неверный формат для спецификации дополнительных атрибутов." + +#: ../lib/modules/imapAccess.inc:165 +msgid "Invalid password for IMAP admin or other problem occured." +msgstr "Неверный пароль для администратора IMAP или произошла другая ошибка." + +#: ../lib/modules/ldapPublicKey.inc:576 ../lib/modules/inetOrgPerson.inc:3698 +#: ../lib/modules/customFields.inc:1303 +msgid "Invalid request" +msgstr "Неверный запрос" + +#: ../templates/config/mainmanage.php:164 +msgid "Invalid server name. Please enter \"server\" or \"server:port\"." +msgstr "" +"Неверное имя сервера. Пожалуйста вводите \"сервер\" или \"сервер:порт\"." + +#: ../lib/modules/passwordSelfReset.inc:781 +#: ../lib/modules/passwordSelfReset.inc:1000 +#, php-format +msgid "Invalid value in field \"%s\"." +msgstr "Неверное значение в поле \"%s\"." + +#: ../lib/modules/kolabUser.inc:99 ../lib/modules/kolabUser.inc:106 +#: ../lib/modules/kolabUser.inc:159 ../lib/modules/kolabUser.inc:197 +#: ../lib/modules/kolabUser.inc:275 ../lib/modules/kolabUser.inc:712 +#: ../lib/modules/kolabUser.inc:836 +msgid "Invitation policy" +msgstr "Политика приглашения" + +#: ../lib/modules/kolabUser.inc:110 +msgid "Invitation policy list" +msgstr "Список политик приглашения" + +#: ../lib/modules/sambaSamAccount.inc:556 +msgid "Islamabad, Karachi" +msgstr "Islamabad, Karachi" + +#: ../lib/modules/range.inc:109 +msgid "It is not possible to delete all ranges." +msgstr "Невозможно удалить все диапазоны." + +#: ../lib/modules/posixGroup.inc:571 ../lib/modules/posixAccount.inc:105 +msgid "" +"It is possible that this ID-number is reused. This can cause several " +"problems because files with old permissions might still exist. To avoid this " +"warning set maxUID to a higher value." +msgstr "" +"Возможно, этот ID уже используется. Это может вызвать проблемы, потому что " +"файлы со старыми разрешениями могут еще существовать. Чтобы избежать этого " +"предупреждения установите maxUID больше." + +#: ../lib/modules/inetOrgPerson.inc:86 ../lib/modules/inetOrgPerson.inc:146 +#: ../lib/modules/inetOrgPerson.inc:209 ../lib/modules/inetOrgPerson.inc:338 +#: ../lib/modules/inetOrgPerson.inc:406 ../lib/modules/inetOrgPerson.inc:659 +#: ../lib/modules/inetOrgPerson.inc:705 ../lib/modules/inetOrgPerson.inc:709 +#: ../lib/modules/inetOrgPerson.inc:1883 ../lib/modules/inetOrgPerson.inc:2359 +#: ../lib/modules/inetOrgPerson.inc:3183 +msgid "Job title" +msgstr "Должность" + +#: ../lib/modules/inetOrgPerson.inc:706 ../lib/modules/inetOrgPerson.inc:710 +msgid "Job title of user: President, department manager, ..." +msgstr "Должность пользователя: Президент, руководитель подразделения, .." + +#: ../lib/lists.inc:297 +msgid "Jump 10 pages backward" +msgstr "Перейти на 10 страниц назад" + +#: ../lib/lists.inc:317 +msgid "Jump 10 pages forward" +msgstr "Перейти на 10 страниц вперед" + +#: ../templates/schema/schema.php:255 +msgid "Jump to a matching rule" +msgstr "Перейти к подходящему правилу" + +#: ../templates/schema/schema.php:114 +msgid "Jump to an attribute type" +msgstr "Перейти к типу атрибута" + +#: ../templates/schema/schema.php:308 ../templates/schema/schema.php:358 +#: ../templates/schema/schema.php:373 +msgid "Jump to an object class" +msgstr "Перейти к классу объекта" + +#: ../lib/lists.inc:292 +msgid "Jump to first page" +msgstr "Перейти на первую страницу" + +#: ../lib/lists.inc:322 +msgid "Jump to last page" +msgstr "Перейти на последнюю страницу" + +#: ../lib/modules/mitKerberos.inc:87 ../lib/modules/heimdalKerberos.inc:74 +msgid "Kerberos" +msgstr "Kerberos" + +#: ../lib/modules/kolabGroup.inc:67 ../lib/modules/kolabUser.inc:73 +msgid "Kolab" +msgstr "Kolab" + +#: ../lib/modules/posixGroup.inc:492 +msgid "" +"LAM checks if the entered group name and GID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique group names or " +"GIDs." +msgstr "" +"LAM проверяет, уникально ли указанное имя группы и GID. Здесь мы можете " +"указать суффикс LDAP, используемый для поиска дубликатов. По умолчанию " +"используется суффикс типа аккаунта. Вам нужно менять это только в том " +"случае, если вы используете несколько профилей серверов с разными OU, но при " +"этом требуется сохранять уникальность названий групп или GID." + +#: ../lib/modules/posixAccount.inc:479 +msgid "" +"LAM checks if the entered user name and UID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique user names or " +"UIDs." +msgstr "" +"LAM проверяет, уникально ли указанное имя пользователя и UID. Здесь мы " +"можете указать суффикс LDAP используемый для поиска дубликатов. По умолчанию " +"используется суффикс типа аккаунта. Вам нужно менять это только в том " +"случае, если вы используете несколько профилей серверов с разными OU, но при " +"этом требуется сохранять уникальность имен пользователя или UID." + +#: ../templates/login.php:268 ../templates/config/index.php:85 +msgid "LAM configuration" +msgstr "Конфигурация LAM" + +#: ../templates/massBuildAccounts.php:239 +msgid "LAM has checked your input and is now ready to create the accounts." +msgstr "LAM проверил введенные данные и готов создать аккаунты." + +#: ../lib/modules/posixGroup.inc:480 ../lib/modules/posixAccount.inc:451 +#: ../lib/modules/inetOrgPerson.inc:881 ../lib/modules/customFields.inc:123 +msgid "" +"LAM supports CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 and SMD5 to generate the " +"hash value of passwords. SSHA and CRYPT are the most common but CRYPT does " +"not support passwords greater than 8 letters. We do not recommend to use " +"plain text passwords." +msgstr "" +"LAM поддерживает CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 и SMD5 для создания " +"хэша пароля. SSHA и CRYPT в большинстве случаев подойдут, но CRYPT не " +"поддерживает больше пароли длиннее 8 символов. Не рекомендуется хранить " +"пароль в открытом виде." + +#: ../templates/tests/index.php:50 +msgid "LAM tests" +msgstr "LAM тесты" + +#: ../lib/modules/imapAccess.inc:118 +msgid "LAM user password" +msgstr "Пароль пользователя LAM" + +#: ../templates/massDoUpload.php:132 +#, php-format +msgid "LAM was unable to create account %s! An LDAP error occured." +msgstr "LAM не удалось создать аккаунт %s! Произошла ошибка LDAP." + +#: ../lib/modules/sambaGroupMapping.inc:590 +msgid "LAM was unable to find a Samba 3 domain with this name!" +msgstr "LAM не удалось найти Samba3 домен с этим именем!" + +#: ../lib/modules/sambaSamAccount.inc:118 +msgid "LAM was unable to find a domain with this name!" +msgstr "LAM не удалось найти домен с этим именем!" + +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/windowsUser.inc:1088 +msgid "LAM was unable to find a group with this name!" +msgstr "LAM не удалось найти группу с этим именем!" + +#: ../lib/modules/posixAccount.inc:2226 ../lib/modules/posixAccount.inc:2287 +#: ../lib/modules/windowsUser.inc:1165 ../lib/modules/groupOfNamesUser.inc:434 +#, php-format +msgid "LAM was unable to modify group memberships for group: %s" +msgstr "LAM не удалось поменять членов для группы: %s" + +#: ../lib/modules/posixGroup.inc:496 ../lib/modules/posixAccount.inc:487 +msgid "" +"LAM will automatically suggest UID/GID numbers. You can either use a fixed " +"range of numbers or an LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "" +"LAM будет автоматически предлагать номера UID/GID. Вы можете указать как " +"фиксированный диапазон номеров, так и запись LDAP с классом объекта " +"\"sambaUnixIdPool\"." + +#: ../help/help.inc:199 +msgid "LAM will search for accounts in this part of the LDAP tree." +msgstr "LAM будет искать учетные записи в этой части дерева LDAP." + +#: ../lib/modules/posixAccount.inc:430 +msgid "" +"LAM will suggest a user name based on e.g. first and last name. Here you can " +"specify the suggestion. %sn% will be replaced by the last name. @givenname@ " +"will be replaced by the first character of first name. Only attributes of " +"tab Personal may be used." +msgstr "" +"LAM будет предлагать имя пользователя используя, например, имя и фамилию. " +"Здесь вы можете указать шаблон : %sn% будет заменено на фамилию, @givenname@ " +"будет заменено на первую букву имени. Могут быть использованы атрибуты " +"только из вкладки Личная информация." + +#: ../help/help.inc:201 +msgid "" +"LAM will use this LDAP DN and password to search for accounts. It is " +"sufficient to specify an account with read rights. If nothing is inserted " +"then LAM will try to connect anonymously." +msgstr "" +"LAM будет использовать эту DN запись и пароль для поиска аккаунтов. " +"Достаточно указать аккаунт с правами на чтение. Если ничего не указано, LAM " +"будет подключаться как гость (anonymous)." + +#: ../lib/modules/qmailUser.inc:57 +msgid "LDAP + program" +msgstr "LDAP + программа" + +#: ../templates/config/confmodules.php:97 ../templates/config/confmain.php:127 +#: ../templates/config/moduleSettings.php:96 +#: ../templates/config/conftypes.php:115 +msgid "LDAP Account Manager Configuration" +msgstr "LDAP Account Manager конфигурация" + +#: ../templates/config/conftypes.php:366 +msgid "LDAP Suffix is invalid!" +msgstr "Суффикс LDAP неправильный!" + +#: ../templates/serverInfo.php:182 +msgid "LDAP entries" +msgstr "Записи LDAP" + +#: ../lib/modules/qmailGroup.inc:166 ../lib/modules/qmailGroup.inc:170 +msgid "LDAP entries that are allowed to send to this list." +msgstr "Записи LDAP, которые могут посылать в этот список." + +#: ../lib/modules/qmailGroup.inc:150 ../lib/modules/qmailGroup.inc:154 +msgid "LDAP entries that are member of this list." +msgstr "Записи LDAP являющиеся участниками этого списка." + +#: ../lib/modules/qmailGroup.inc:158 ../lib/modules/qmailGroup.inc:162 +msgid "LDAP entries that moderate this list (e.g. approve mails)." +msgstr "" +"Записи LDAP которые управляют этим списком (например утверждают письма)." + +#: ../templates/login.php:645 +msgid "LDAP error, server says:" +msgstr "Ошибка LDAP, сервер ответил:" + +#: ../templates/config/confmain.php:421 +msgid "LDAP filter" +msgstr "LDAP фильтр" + +#: ../lib/modules/qmailGroup.inc:182 ../lib/modules/qmailGroup.inc:186 +msgid "" +"LDAP filter to specify allowed senders of this list (e.g. " +"\"((objectclass=qmailUser)(employeeType=manager))\")." +msgstr "" +"Фильтр LDAP для определения разрешенных отправителей этого списка (например " +"\"((objectclass=qmailUser)(employeeType=manager))\")." + +#: ../lib/modules/qmailGroup.inc:174 ../lib/modules/qmailGroup.inc:178 +msgid "" +"LDAP filter to specify members of this list (e.g. \"((objectclass=qmailUser)" +"(employeeType=accountant))\")." +msgstr "" +"Фильтр LDAP для определения участников этого списка (например " +"\"((objectclass=qmailUser)(employeeType=accountant))\")." + +#: ../lib/modules.inc:1302 +msgid "LDAP operation successful." +msgstr "LDAP операция завершена успешно." + +#: ../templates/selfService/adminMain.php:421 +msgid "LDAP password" +msgstr "LDAP пароль" + +#: ../templates/3rdParty/pla/lib/functions.php:1894 +msgid "LDAP said" +msgstr "LDAP сказал" + +#: ../templates/config/confmain.php:398 ../help/help.inc:118 +msgid "LDAP search" +msgstr "LDAP поиск" + +#: ../templates/selfService/adminMain.php:426 ../help/help.inc:202 +msgid "LDAP search attribute" +msgstr "LDAP атрибут поиска" + +#: ../lib/account.inc:768 +msgid "LDAP search failed! Please check your preferences." +msgstr "Поиск в LDAP не удался! Проверьте ваши настройки." + +#: ../templates/config/confmain.php:253 ../help/help.inc:120 +msgid "LDAP search limit" +msgstr "Лимит поиска LDAP" + +#: ../templates/login.php:463 +msgid "LDAP server" +msgstr "LDAP сервер" + +#: ../lib/account.inc:759 +msgid "LDAP sizelimit exceeded, not all entries are shown." +msgstr "Превышен лимит размера LDAP, показаны не все записи." + +#: ../templates/config/confmain.php:417 ../templates/config/conftypes.php:252 +#: ../templates/selfService/adminMain.php:415 +#: ../templates/profedit/profilepage.php:202 ../help/help.inc:71 +#: ../help/help.inc:198 +msgid "LDAP suffix" +msgstr "LDAP суффикс" + +#: ../templates/massDoUpload.php:86 +msgid "LDAP upload in progress. Please wait." +msgstr "LDAP загрузка в процессе. Пожалуйста ждите." + +#: ../templates/selfService/adminMain.php:419 +msgid "LDAP user" +msgstr "LDAP пользователь" + +#: ../help/help.inc:200 +msgid "LDAP user and password" +msgstr "LDAP пользователь и пароль" + +#: ../templates/serverInfo.php:109 +msgid "LDAP version" +msgstr "Версия LDAP" + +#: ../templates/3rdParty/pla/lib/export_functions.php:442 +msgid "LDIF Export" +msgstr "LDIF экспорт" + +#: ../templates/3rdParty/pla/lib/import_functions.php:149 +#: ../templates/3rdParty/pla/htdocs/import.php:71 +msgid "LDIF import" +msgstr "LDIF импорт" + +#: ../templates/3rdParty/pla/lib/import_functions.php:170 +msgid "LDIF import only supports version 1" +msgstr "Импорт LDIF поддерживает только версию 1" + +#: ../lib/modules/customFields.inc:78 ../lib/modules/customFields.inc:973 +#: ../lib/modules/customFields.inc:1471 ../lib/modules/customFields.inc:2450 +msgid "Label" +msgstr "Метка" + +#: ../templates/tests/lamdaemonTest.php:201 +msgid "" +"Lamdaemon path does not end with \".pl\". Did you enter the full path to the " +"script?" +msgstr "" +"Путь к Lamdaemon не заканчивается \".pl\". Вы указали полный путь к скрипту?" + +#: ../templates/tests/lamdaemonTest.php:185 +msgid "Lamdaemon server and path" +msgstr "Сервер и путь для lamdaemon" + +#: ../templates/config/confmain.php:323 +msgid "Lamdaemon settings" +msgstr "Настройки lamdaemon" + +#: ../templates/tests/lamdaemonTest.php:135 +msgid "Lamdaemon successfully run." +msgstr "Lamdaemon успешно запущен." + +#: ../templates/tests/index.php:52 ../templates/tests/lamdaemonTest.php:52 +#: ../lib/tools/tests.inc:110 +msgid "Lamdaemon test" +msgstr "Тест lamdaemon" + +#: ../templates/tests/lamdaemonTest.php:291 +msgid "Lamdaemon test finished." +msgstr "Тест lamdaemon закончен." + +#: ../templates/tests/lamdaemonTest.php:273 +msgid "Lamdaemon version" +msgstr "Версия lamdaemon" + +#: ../templates/tests/lamdaemonTest.php:283 +msgid "Lamdaemon: Quota module installed" +msgstr "Lamdaemon: модуль квот установлен" + +#: ../templates/tests/lamdaemonTest.php:279 +msgid "Lamdaemon: check NSS LDAP" +msgstr "Lamdaemon: проверьте NSS LDAP" + +#: ../templates/tests/lamdaemonTest.php:286 +msgid "Lamdaemon: read quotas" +msgstr "Lamdaemon: чтение квот" + +#: ../templates/login.php:401 +msgid "Language" +msgstr "Язык" + +#: ../templates/config/confmain.php:540 +msgid "Language is not defined!" +msgstr "Язык не задан!" + +#: ../templates/config/confmain.php:293 +msgid "Language settings" +msgstr "Языковые настройки" + +#: ../lib/modules/mitKerberos.inc:137 ../lib/modules/mitKerberos.inc:249 +#: ../lib/modules/mitKerberos.inc:405 ../lib/modules/mitKerberos.inc:792 +msgid "Last login" +msgstr "Последний вход" + +#: ../lib/types/user.inc:97 ../lib/modules/selfRegistration.inc:69 +#: ../lib/modules/selfRegistration.inc:126 ../lib/modules/windowsUser.inc:143 +#: ../lib/modules/windowsUser.inc:234 ../lib/modules/windowsUser.inc:392 +#: ../lib/modules/windowsUser.inc:449 ../lib/modules/windowsUser.inc:521 +#: ../lib/modules/windowsUser.inc:1227 ../lib/modules/inetOrgPerson.inc:66 +#: ../lib/modules/inetOrgPerson.inc:140 ../lib/modules/inetOrgPerson.inc:381 +#: ../lib/modules/inetOrgPerson.inc:608 ../lib/modules/inetOrgPerson.inc:717 +#: ../lib/modules/inetOrgPerson.inc:1417 ../lib/modules/inetOrgPerson.inc:2361 +#: ../lib/modules/inetOrgPerson.inc:2936 +msgid "Last name" +msgstr "Фамилия" + +#: ../lib/modules/windowsUser.inc:449 ../lib/modules/windowsUser.inc:450 +#: ../lib/modules/inetOrgPerson.inc:66 ../lib/modules/inetOrgPerson.inc:67 +msgid "Last name contains invalid characters or is empty!" +msgstr "Фамилия содержит неправильные символы или пуста!" + +#: ../lib/modules/windowsUser.inc:144 ../lib/modules/inetOrgPerson.inc:718 +msgid "Last name of user. Only letters, - and spaces are allowed." +msgstr "Фамилия пользователя. Только буквы, - и пробелы допускаются." + +#: ../lib/modules/mitKerberos.inc:133 ../lib/modules/mitKerberos.inc:248 +#: ../lib/modules/mitKerberos.inc:397 ../lib/modules/mitKerberos.inc:788 +#: ../lib/modules/ppolicyUser.inc:125 ../lib/modules/shadowAccount.inc:160 +#: ../lib/modules/shadowAccount.inc:194 ../lib/modules/shadowAccount.inc:356 +#: ../lib/modules/shadowAccount.inc:489 +msgid "Last password change" +msgstr "Последнее изменение пароля" + +#: ../lib/modules/asteriskAccount.inc:230 +#: ../lib/modules/asteriskAccount.inc:305 +#: ../lib/modules/asteriskAccount.inc:360 +#: ../lib/modules/asteriskAccount.inc:606 +#: ../lib/modules/asteriskAccount.inc:963 +#: ../lib/modules/asteriskAccount.inc:1220 +msgid "Last qualify milliseconds" +msgstr "Last qualify миллисекунды" + +#: ../lib/modules/dhcp_settings.inc:146 ../lib/modules/dhcp_settings.inc:202 +#: ../lib/modules/dhcp_settings.inc:217 ../lib/modules/dhcp_settings.inc:249 +#: ../lib/modules/dhcp_settings.inc:562 ../lib/modules/dhcp_settings.inc:668 +msgid "Lease time" +msgstr "Время аренды" + +#: ../templates/3rdParty/pla/htdocs/import.php:102 +msgid "Line" +msgstr "Линия" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:121 +msgid "Line ends" +msgstr "Конец линии" + +#: ../lib/modules/selfRegistration.inc:51 +#: ../lib/modules/selfRegistration.inc:96 +#: ../lib/modules/passwordSelfReset.inc:89 +#: ../lib/modules/passwordSelfReset.inc:207 +msgid "Link text" +msgstr "Текст ссылки" + +#: ../templates/selfService/adminMain.php:357 +msgid "Link to self service login page for your users" +msgstr "" +"Ссылка для ваших пользователей на страницу входа в сервис самообслуживания " + +#: ../templates/config/conftypes.php:263 ../help/help.inc:85 +msgid "List attributes" +msgstr "Список атрибутов" + +#: ../templates/config/conftypes.php:374 +msgid "List attributes are invalid!" +msgstr "Список атрибутов неправильный!" + +#: ../lib/types/zarafaAddressListType.inc:91 +#: ../lib/modules/zarafaAddressList.inc:56 +#: ../lib/modules/zarafaAddressList.inc:97 +#: ../lib/modules/zarafaAddressList.inc:134 +#: ../lib/modules/zarafaAddressList.inc:161 +#: ../lib/modules/zarafaAddressList.inc:180 +#: ../lib/modules/zarafaAddressList.inc:334 +msgid "List name" +msgstr "Имя списка" + +#: ../lib/modules/zarafaAddressList.inc:161 +msgid "List name already in use." +msgstr "Имя списка уже используется." + +#: ../lib/modules/sambaSamAccount.inc:305 +msgid "" +"List of Samba workstations the user is allowed to login. Empty means every " +"workstation." +msgstr "" +"Список Samba компьютеров на которые пользователю разрешено входить. Не " +"задано - любой компьютер." + +#: ../templates/config/confmain.php:534 +msgid "List of admin users is empty or invalid!" +msgstr "Список администраторов пуст или неправильный!" + +#: ../lib/modules/asteriskAccount.inc:195 +msgid "List of allowed codecs." +msgstr "Список разрешенных кодеков." + +#: ../lib/modules/asteriskAccount.inc:191 +msgid "List of disallowed codecs." +msgstr "Список запрещенных кодеков." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:94 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:88 +msgid "List of entries to be deleted:" +msgstr "Список записей, которые будут удалены:" + +#: ../templates/config/confmain.php:413 +msgid "List of valid users" +msgstr "Список существующих пользователей" + +#: ../templates/serverInfo.php:152 +msgid "Listeners" +msgstr "Слушатели" + +#: ../lib/modules.inc:1211 ../help/help.inc:178 +msgid "Load profile" +msgstr "Загрузить профиль" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:279 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1226 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +msgid "Loading" +msgstr "Загрузка" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:303 +msgid "Loading export" +msgstr "Загрузка экспорта" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:290 +msgid "Loading import" +msgstr "Загрузка импорта" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:497 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:233 +msgid "Loading search" +msgstr "Загрузка поиска" + +#: ../lib/modules/inetLocalMailRecipient.inc:65 +#: ../lib/modules/inetLocalMailRecipient.inc:150 +msgid "Local address" +msgstr "Локальный адрес" + +#: ../lib/modules/inetLocalMailRecipient.inc:69 +#: ../lib/modules/inetLocalMailRecipient.inc:99 +#: ../lib/modules/inetLocalMailRecipient.inc:113 +#: ../lib/modules/inetLocalMailRecipient.inc:300 +msgid "Local address list" +msgstr "Список локальных адресов" + +#: ../lib/modules/sambaGroupMapping.inc:72 +msgid "Local group" +msgstr "Локальная группа" + +#: ../lib/modules/sambaGroupMapping.inc:108 +#: ../lib/modules/sambaGroupMapping.inc:159 +#: ../lib/modules/sambaGroupMapping.inc:381 +#: ../lib/modules/sambaGroupMapping.inc:542 +msgid "Local members" +msgstr "Локальные участники" + +#: ../lib/types/host.inc:97 ../lib/modules/ipHost.inc:66 +#: ../lib/modules/ipHost.inc:84 ../lib/modules/ipHost.inc:98 +#: ../lib/modules/ipHost.inc:149 ../lib/modules/ipHost.inc:309 +#: ../lib/modules/windowsHost.inc:75 ../lib/modules/windowsHost.inc:99 +#: ../lib/modules/windowsHost.inc:114 ../lib/modules/windowsHost.inc:137 +#: ../lib/modules/windowsHost.inc:289 ../lib/modules/device.inc:70 +#: ../lib/modules/device.inc:102 ../lib/modules/device.inc:122 +#: ../lib/modules/device.inc:184 ../lib/modules/device.inc:437 +#: ../lib/modules/windowsUser.inc:115 ../lib/modules/windowsUser.inc:276 +#: ../lib/modules/windowsUser.inc:385 ../lib/modules/windowsUser.inc:416 +#: ../lib/modules/windowsUser.inc:530 ../lib/modules/windowsUser.inc:1220 +#: ../lib/modules/windowsUser.inc:1341 ../lib/modules/inetOrgPerson.inc:145 +#: ../lib/modules/inetOrgPerson.inc:170 ../lib/modules/inetOrgPerson.inc:316 +#: ../lib/modules/inetOrgPerson.inc:576 ../lib/modules/inetOrgPerson.inc:623 +#: ../lib/modules/inetOrgPerson.inc:840 ../lib/modules/inetOrgPerson.inc:844 +#: ../lib/modules/inetOrgPerson.inc:1561 ../lib/modules/inetOrgPerson.inc:2381 +#: ../lib/modules/inetOrgPerson.inc:3079 +msgid "Location" +msgstr "Местонахождение" + +#: ../lib/types/user.inc:350 ../lib/types/user.inc:355 +msgid "Lock" +msgstr "Блокировать" + +#: ../templates/lists/changePassword.php:390 +#: ../templates/lists/changePassword.php:410 +#: ../templates/lists/changePassword.php:412 +#: ../lib/modules/ppolicyUser.inc:139 +msgid "Lock account" +msgstr "Заблокировать аккаунт" + +#: ../templates/lists/changePassword.php:252 +msgid "Lock account?" +msgstr "Заблокировать аккаунт?" + +#: ../lib/modules/posixGroup.inc:206 ../lib/modules/posixAccount.inc:331 +#: ../lib/modules/posixAccount.inc:1401 ../lib/modules/inetOrgPerson.inc:2084 +msgid "Lock password" +msgstr "Заблокировать пароль" + +#: ../lib/types/ppolicyType.inc:83 ../lib/modules/ppolicy.inc:97 +#: ../lib/modules/ppolicy.inc:144 ../lib/modules/ppolicy.inc:164 +#: ../lib/modules/ppolicy.inc:257 ../lib/modules/ppolicy.inc:469 +#: ../lib/modules/sambaDomain.inc:126 ../lib/modules/sambaDomain.inc:191 +#: ../lib/modules/sambaDomain.inc:216 ../lib/modules/sambaDomain.inc:333 +#: ../lib/modules/sambaDomain.inc:649 +msgid "Lockout duration" +msgstr "Продолжительность блокировки" + +#: ../lib/modules/sambaDomain.inc:216 +msgid "Lockout duration must be are natural number." +msgstr "Продолжительность блокировки должна быть целым числом." + +#: ../lib/modules/ppolicyUser.inc:131 +msgid "Lockout time" +msgstr "Время блокировки" + +#: ../lib/types/ppolicyType.inc:88 ../lib/modules/ppolicy.inc:117 +#: ../lib/modules/ppolicy.inc:143 ../lib/modules/ppolicy.inc:251 +#: ../lib/modules/ppolicy.inc:488 +msgid "Lockout users" +msgstr "Блокировка пользователей" + +#: ../lib/modules/sambaDomain.inc:114 ../lib/modules/sambaDomain.inc:188 +#: ../lib/modules/sambaDomain.inc:218 ../lib/modules/sambaDomain.inc:309 +#: ../lib/modules/sambaDomain.inc:646 +msgid "Lockout users after bad logon attempts" +msgstr "Блокировка пользователей после неудачных попыток входа" + +#: ../lib/modules/sambaDomain.inc:218 +msgid "Lockout users after bad logon attempts must be between 0 and 999." +msgstr "" +"Блокировка пользователей после неудачных попыток входа должна быть между 0 и " +"999." + +#: ../templates/config/mainmanage.php:367 ../help/help.inc:146 +msgid "Log destination" +msgstr "Где сохранять" + +#: ../templates/config/mainmanage.php:353 ../help/help.inc:144 +msgid "Log level" +msgstr "Уровень вывода" + +#: ../templates/main_header.php:126 +#, php-format +msgid "Logged in as: %s" +msgstr "Вошел в систему как: %s" + +#: ../templates/config/mainmanage.php:350 +msgid "Logging" +msgstr "Лог-файл" + +#: ../templates/login.php:436 ../templates/config/conflogin.php:62 +#: ../templates/config/mainlogin.php:72 +#: ../templates/selfService/selfServiceLogin.php:180 +#: ../templates/selfService/selfServiceLogin.php:292 +#: ../templates/selfService/adminLogin.php:64 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:530 ../help/help.inc:56 +msgid "Login" +msgstr "Вход" + +#: ../templates/selfService/adminMain.php:437 ../help/help.inc:204 +msgid "Login attribute label" +msgstr "Подпись атрибута входа" + +#: ../templates/selfService/adminMain.php:442 ../help/help.inc:206 +msgid "Login caption" +msgstr "Заголовок входа" + +#: ../templates/config/confmain.php:400 ../help/help.inc:116 +msgid "Login method" +msgstr "Метод входа" + +#: ../lib/types/user.inc:99 ../lib/modules/posixAccount.inc:178 +#: ../lib/modules/posixAccount.inc:317 ../lib/modules/posixAccount.inc:410 +#: ../lib/modules/posixAccount.inc:519 ../lib/modules/posixAccount.inc:1394 +#: ../lib/modules/posixAccount.inc:1653 ../lib/modules/posixAccount.inc:1751 +#: ../lib/modules/posixAccount.inc:2459 +msgid "Login shell" +msgstr "Оболочка" + +#: ../lib/modules/posixAccount.inc:186 ../lib/modules/posixAccount.inc:241 +#: ../lib/modules/posixAccount.inc:482 +msgid "Login shells" +msgstr "Оболочка" + +#: ../templates/pdfedit/pdfpage.php:453 +msgid "Logo" +msgstr "Изображение" + +#: ../lib/modules/sambaDomain.inc:102 ../lib/modules/sambaDomain.inc:185 +#: ../lib/modules/sambaDomain.inc:283 ../lib/modules/sambaDomain.inc:655 +msgid "Logon for password change" +msgstr "Вход в систему для изменения пароля" + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:329 +#: ../lib/modules/sambaSamAccount.inc:332 +#: ../lib/modules/sambaSamAccount.inc:513 +#: ../lib/modules/sambaSamAccount.inc:591 +#: ../lib/modules/sambaSamAccount.inc:1259 +#: ../lib/modules/sambaSamAccount.inc:1761 +msgid "Logon hours" +msgstr "Часы для входа" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:216 +#: ../lib/modules/sambaSamAccount.inc:301 +#: ../lib/modules/sambaSamAccount.inc:497 +#: ../lib/modules/sambaSamAccount.inc:587 +#: ../lib/modules/sambaSamAccount.inc:1212 +#: ../lib/modules/sambaSamAccount.inc:1737 +#: ../lib/modules/sambaSamAccount.inc:1877 ../lib/modules/windowsUser.inc:186 +#: ../lib/modules/windowsUser.inc:368 ../lib/modules/windowsUser.inc:402 +#: ../lib/modules/windowsUser.inc:463 ../lib/modules/windowsUser.inc:575 +#: ../lib/modules/windowsUser.inc:1254 +msgid "Logon script" +msgstr "Стартовый скрипт" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:102 ../lib/modules/windowsUser.inc:463 +#: ../lib/modules/windowsUser.inc:464 +msgid "Logon script is invalid!" +msgstr "Стартовый скрипт неправильный!" + +#: ../templates/selfService/selfServiceMain.php:63 +#: ../templates/selfService/selfServiceMain.php:400 +#: ../templates/main_header.php:133 +msgid "Logout" +msgstr "Выход" + +#: ../lib/modules/dhcp_settings.inc:98 +msgid "M-Node (0x04)" +msgstr "M-Node (0x04)" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ieee802device.inc:51 +#: ../lib/modules/ieee802device.inc:61 ../lib/modules/ieee802device.inc:72 +#: ../lib/modules/ieee802device.inc:104 ../lib/modules/fixed_ip.inc:92 +#: ../lib/modules/fixed_ip.inc:358 ../lib/modules/fixed_ip.inc:561 +msgid "MAC address" +msgstr "MAC адрес" + +#: ../lib/modules/ieee802device.inc:65 +msgid "MAC address list" +msgstr "Список MAC адресов" + +#: ../lib/modules/ieee802device.inc:79 ../lib/modules/ieee802device.inc:205 +msgid "MAC addresses" +msgstr "MAC адреса" + +#: ../lib/modules/mitKerberos.inc:261 +msgid "MIT Kerberos password change command" +msgstr "Команда изменения пароля MIT Kerberos" + +#: ../lib/modules/sambaSamAccount.inc:562 +msgid "Magadan, Solomon Islands" +msgstr "Magadan, Solomon Islands" + +#: ../lib/types/mailAlias.inc:53 ../lib/modules/nisMailAlias.inc:58 +msgid "Mail aliases" +msgstr "Почтовые псевдонимы" + +#: ../lib/modules/imapAccess.inc:91 ../lib/modules/imapAccess.inc:122 +msgid "Mail domains" +msgstr "Почтовые домены" + +#: ../lib/modules/inetLocalMailRecipient.inc:51 +msgid "Mail routing" +msgstr "Роутинг почты" + +#: ../lib/modules/selfRegistration.inc:514 +#: ../lib/modules/selfRegistration.inc:544 +#: ../lib/modules/passwordSelfReset.inc:1404 +#: ../lib/modules/passwordSelfReset.inc:1419 +#: ../lib/modules/passwordSelfReset.inc:1460 +msgid "Mail sending failed." +msgstr "Отправка письма не удалась." + +#: ../lib/modules/kolabUser.inc:85 +#: ../lib/modules/inetLocalMailRecipient.inc:73 +#: ../lib/modules/inetLocalMailRecipient.inc:78 +#: ../lib/modules/inetLocalMailRecipient.inc:105 +#: ../lib/modules/inetLocalMailRecipient.inc:114 +#: ../lib/modules/inetLocalMailRecipient.inc:145 +#: ../lib/modules/inetLocalMailRecipient.inc:301 +msgid "Mail server" +msgstr "Почтовый сервер" + +#: ../lib/account.inc:993 +#, php-format +msgid "Mail successfully sent to %s." +msgstr "Почта успешно отправлена %s." + +#: ../lib/modules/asteriskAccount.inc:150 +#: ../lib/modules/asteriskAccount.inc:265 +#: ../lib/modules/asteriskAccount.inc:340 +#: ../lib/modules/asteriskAccount.inc:461 +#: ../lib/modules/asteriskAccount.inc:772 +#: ../lib/modules/asteriskAccount.inc:1200 +#: ../lib/modules/asteriskVoicemail.inc:86 +#: ../lib/modules/asteriskVoicemail.inc:129 +#: ../lib/modules/asteriskVoicemail.inc:149 +#: ../lib/modules/asteriskVoicemail.inc:236 +#: ../lib/modules/asteriskVoicemail.inc:388 ../lib/modules/imapAccess.inc:56 +#: ../lib/modules/imapAccess.inc:97 ../lib/modules/imapAccess.inc:223 +msgid "Mailbox" +msgstr "Почтовый ящик" + +#: ../lib/modules/imapAccess.inc:232 +msgid "Mailbox already exists on IMAP server." +msgstr "Почтовый ящик уже существует на сервере IMAP/" + +#: ../lib/modules/imapAccess.inc:239 +msgid "Mailbox does not exist on IMAP server." +msgstr "Почтовый ящик не существует на сервере IMAP." + +#: ../lib/modules/kolabUser.inc:130 ../lib/modules/kolabUser.inc:165 +#: ../lib/modules/kolabUser.inc:198 ../lib/modules/kolabUser.inc:265 +#: ../lib/modules/kolabUser.inc:270 ../lib/modules/kolabUser.inc:701 +msgid "Mailbox home server" +msgstr "Домашний почтовый сервер" + +#: ../lib/modules/kolabUser.inc:217 +msgid "Mailbox home server name is empty!" +msgstr "Имя mailbox home server пусто!" + +#: ../lib/modules/kolabUser.inc:215 ../lib/modules/kolabUser.inc:216 +msgid "Mailbox home server name is invalid!" +msgstr "Имя mailbox home server неправильное!" + +#: ../lib/types/mailAlias.inc:62 +msgid "Mailing aliases (e.g. NIS mail aliases)" +msgstr "Почтовые псевдонимы (т.е. NIS mail aliases)" + +#: ../lib/modules/nisMailAlias.inc:71 +msgid "Mails to this name are forwarded to the recipients." +msgstr "Почта для этого имени будет перенаправлена для получателей." + +#: ../templates/pdfedit/pdfpage.php:367 ../templates/pdfedit/pdfpage.php:678 +msgid "Main" +msgstr "Главная" + +#: ../templates/selfService/adminMain.php:448 ../help/help.inc:208 +msgid "Main page caption" +msgstr "Заголовок главной страницы" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:79 +msgid "Make sure your filter (above) will select all child records." +msgstr "" +"Убедитесь, что все записи-потомки попадут в выборку вашего фильтра (выше)." + +#: ../lib/modules/inetOrgPerson.inc:2052 +msgid "Manage" +msgstr "Управлять" + +#: ../templates/pdfedit/pdfmain.php:175 +msgid "Manage existing PDF structures" +msgstr "Управление существующими PDF структурами" + +#: ../templates/profedit/profilemain.php:173 +msgid "Manage existing profiles" +msgstr "Управление существующими профилями" + +#: ../lib/modules/sambaSamAccount.inc:1199 +msgid "Manage profile directory" +msgstr "Управление каталогом профиля" + +#: ../templates/selfService/adminLogin.php:182 +msgid "Manage self service profiles" +msgstr "Управление профилями самообслуживания" + +#: ../templates/config/conflogin.php:187 +msgid "Manage server profiles" +msgstr "Управление профилями серверов" + +#: ../lib/modules/windowsHost.inc:79 ../lib/modules/windowsHost.inc:105 +#: ../lib/modules/windowsHost.inc:115 ../lib/modules/windowsHost.inc:139 +#: ../lib/modules/windowsHost.inc:294 ../lib/modules/windowsGroup.inc:146 +#: ../lib/modules/windowsGroup.inc:161 ../lib/modules/windowsGroup.inc:227 +#: ../lib/modules/windowsGroup.inc:248 ../lib/modules/windowsGroup.inc:329 +#: ../lib/modules/windowsGroup.inc:748 +msgid "Managed by" +msgstr "Управляется" + +#: ../templates/serverInfo.php:105 +msgid "Managed suffixes" +msgstr "Управляемые суффиксы" + +#: ../lib/modules/ipHost.inc:70 ../lib/modules/ipHost.inc:90 +#: ../lib/modules/ipHost.inc:99 ../lib/modules/ipHost.inc:170 +#: ../lib/modules/ipHost.inc:310 ../lib/modules/inetOrgPerson.inc:348 +#: ../lib/modules/inetOrgPerson.inc:430 ../lib/modules/inetOrgPerson.inc:674 +#: ../lib/modules/inetOrgPerson.inc:725 ../lib/modules/inetOrgPerson.inc:729 +#: ../lib/modules/inetOrgPerson.inc:2058 ../lib/modules/inetOrgPerson.inc:2362 +msgid "Manager" +msgstr "Менеджер" + +#: ../lib/tools/ouEditor.inc:53 +msgid "Manages OU objects in your LDAP tree." +msgstr "Управление OU объектами в LDAP дереве." + +#: ../lib/modules/kolabUser.inc:52 +msgid "Manual" +msgstr "Вручную" + +#: ../lib/modules/kolabUser.inc:54 +msgid "Manual if conflicts" +msgstr "Вручную, если конфликты" + +#: ../lib/modules/customScripts.inc:138 +msgid "Manual scripts" +msgstr "Ручные сценарии" + +#: ../lib/types/nisObjectType.inc:78 ../lib/modules/nisObject.inc:58 +#: ../lib/modules/nisObject.inc:89 ../lib/modules/nisObject.inc:105 +#: ../lib/modules/nisObject.inc:116 ../lib/modules/nisObject.inc:142 +#: ../lib/modules/nisObject.inc:211 +msgid "Mapping entry" +msgstr "Запись соответствия" + +#: ../lib/modules/nisObject.inc:116 ../lib/modules/nisObject.inc:117 +msgid "" +"Mapping entry contains invalid characters. Only ASCII characters are allowed." +msgstr "" +"Запись соответствия содержит недопустимые символы. Допустимы только ASCII " +"символы." + +#: ../lib/types/nisObjectType.inc:79 ../lib/modules/nisObject.inc:62 +#: ../lib/modules/nisObject.inc:82 ../lib/modules/nisObject.inc:106 +#: ../lib/modules/nisObject.inc:136 ../lib/modules/nisObject.inc:212 +msgid "Mapping name" +msgstr "Имя соответствия" + +#: ../lib/modules/kolabGroup.inc:194 ../lib/modules/kolabGroup.inc:274 +#: ../lib/modules/kolabUser.inc:356 ../lib/modules/kolabUser.inc:501 +msgid "Mark account for deletion" +msgstr "Отметить учетную запись для удаления" + +#: ../lib/modules/kolabGroup.inc:106 ../lib/modules/kolabUser.inc:152 +msgid "Mark for deletion" +msgstr "Отметить для удаления" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:44 +msgid "Mass delete" +msgstr "Массовое удаление" + +#: ../templates/config/profmanage.php:309 +#: ../templates/config/mainlogin.php:158 +#: ../templates/selfService/profManage.php:247 +#: ../templates/pdfedit/pdfmain.php:252 ../templates/pdfedit/pdfmain.php:299 +#: ../templates/profedit/profilemain.php:255 +#: ../templates/profedit/profilemain.php:303 ../help/help.inc:138 +msgid "Master password" +msgstr "Мастер-пароль" + +#: ../templates/config/profmanage.php:54 +#: ../templates/selfService/profManage.php:40 +#: ../templates/pdfedit/pdfmain.php:106 ../templates/pdfedit/pdfmain.php:114 +#: ../templates/profedit/profilemain.php:121 +#: ../templates/profedit/profilemain.php:129 +msgid "Master password is wrong!" +msgstr "Мастер-пароль неверен!" + +#: ../templates/config/mainmanage.php:82 +msgid "Master passwords are different or empty!" +msgstr "Мастер-пароли различаются или пустые!" + +#: ../templates/schema/schema.php:268 +msgid "Matching rule OID" +msgstr "Совпадающее правило OID" + +#: ../templates/schema/schema.php:77 ../templates/schema/schema.php:78 +msgid "Matching rules" +msgstr "Совпадающие правила" + +#: ../templates/serverInfo.php:173 +msgid "Max. file descriptors" +msgstr "Макс. дескрипторов файлов" + +#: ../lib/modules/posixGroup.inc:390 ../lib/modules/posixGroup.inc:575 +#: ../lib/modules/posixGroup.inc:576 +msgid "Maximum GID number" +msgstr "Максимальный GID" + +#: ../lib/modules/posixGroup.inc:575 +msgid "Maximum GID number is invalid or empty!" +msgstr "Максимальный GID неправильный или пуст!" + +#: ../lib/modules/posixGroup.inc:576 +msgid "Maximum GID number must be greater than minimum GID number!" +msgstr "Максимальный GID должен быть больше минимального GID!" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:214 ../lib/modules/posixAccount.inc:232 +msgid "Maximum UID number" +msgstr "Максимальный UID" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +msgid "Maximum UID number is invalid!" +msgstr "Максимальный UID не правильный!" + +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +msgid "Maximum UID number must be greater than minimum UID number!" +msgstr "Максимальный UID должен быть больше минимального UID!" + +#: ../lib/types/ppolicyType.inc:84 ../lib/modules/ppolicy.inc:101 +#: ../lib/modules/ppolicy.inc:145 ../lib/modules/ppolicy.inc:165 +#: ../lib/modules/ppolicy.inc:265 ../lib/modules/ppolicy.inc:470 +msgid "Maximum failure count" +msgstr "Максимальное количество отказов" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:128 +#: ../templates/3rdParty/pla/htdocs/import_form.php:36 +#: ../lib/modules/customFields.inc:138 ../lib/modules/customFields.inc:2795 +msgid "Maximum file size" +msgstr "Максимальный размер файла" + +#: ../lib/modules/customFields.inc:2827 +msgid "Maximum file size must be a number. Please enter 0 for no limit." +msgstr "" +"Максимальным размером файла должно быть число. Пожалуйста, укажите 0 в " +"случае отсутствующего лимита." + +#: ../lib/modules/dhcp_settings.inc:150 ../lib/modules/dhcp_settings.inc:203 +#: ../lib/modules/dhcp_settings.inc:218 ../lib/modules/dhcp_settings.inc:255 +#: ../lib/modules/dhcp_settings.inc:566 ../lib/modules/dhcp_settings.inc:669 +msgid "Maximum lease time" +msgstr "Максимальное время аренды" + +#: ../templates/schema/schema.php:214 +msgid "Maximum length" +msgstr "Максимальная длина" + +#: ../lib/lists.inc:1004 ../help/help.inc:95 +msgid "Maximum list entries" +msgstr "Максимальное кол-во записей в списке" + +#: ../lib/modules/asteriskAccount.inc:187 +msgid "" +"Maximum number of seconds of inactivity before terminating a call on hold." +msgstr "" +"Максимальное количество секунд бездействия перед завершением звонка на " +"удержании." + +#: ../lib/types/ppolicyType.inc:79 ../lib/modules/shadowAccount.inc:59 +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/shadowAccount.inc:116 +#: ../lib/modules/shadowAccount.inc:165 ../lib/modules/shadowAccount.inc:182 +#: ../lib/modules/shadowAccount.inc:220 ../lib/modules/shadowAccount.inc:331 +#: ../lib/modules/shadowAccount.inc:495 ../lib/modules/ppolicy.inc:81 +#: ../lib/modules/ppolicy.inc:137 ../lib/modules/ppolicy.inc:160 +#: ../lib/modules/ppolicy.inc:161 ../lib/modules/ppolicy.inc:199 +#: ../lib/modules/ppolicy.inc:466 ../lib/modules/sambaDomain.inc:122 +#: ../lib/modules/sambaDomain.inc:190 ../lib/modules/sambaDomain.inc:213 +#: ../lib/modules/sambaDomain.inc:215 ../lib/modules/sambaDomain.inc:325 +#: ../lib/modules/sambaDomain.inc:648 +msgid "Maximum password age" +msgstr "Максимальный срок действия пароля" + +#: ../lib/modules/qmailGroup.inc:73 ../lib/modules/qmailGroup.inc:197 +#: ../lib/modules/qmailGroup.inc:201 ../lib/modules/qmailGroup.inc:330 +#: ../lib/modules/qmailGroup.inc:395 ../lib/modules/qmailGroup.inc:418 +#: ../lib/modules/qmailGroup.inc:507 ../lib/modules/qmailGroup.inc:1060 +msgid "Member email addresses" +msgstr "Электронный почтовый адрес участника" + +#: ../lib/modules/qmailGroup.inc:71 ../lib/modules/qmailGroup.inc:149 +#: ../lib/modules/qmailGroup.inc:153 ../lib/modules/qmailGroup.inc:272 +#: ../lib/modules/qmailGroup.inc:374 ../lib/modules/qmailGroup.inc:509 +#: ../lib/modules/qmailGroup.inc:776 ../lib/modules/qmailGroup.inc:1059 +msgid "Member entries" +msgstr "Записи участников" + +#: ../lib/modules/qmailGroup.inc:75 ../lib/modules/qmailGroup.inc:173 +#: ../lib/modules/qmailGroup.inc:177 ../lib/modules/qmailGroup.inc:296 +#: ../lib/modules/qmailGroup.inc:383 ../lib/modules/qmailGroup.inc:508 +#: ../lib/modules/qmailGroup.inc:1061 +msgid "Member filter" +msgstr "Фильтр участника" + +#: ../lib/types/netgroup.inc:94 ../lib/modules/nisnetgroup.inc:88 +#: ../lib/modules/nisnetgroup.inc:92 ../lib/modules/nisnetgroup.inc:125 +#: ../lib/modules/nisnetgroup.inc:135 ../lib/modules/nisnetgroup.inc:279 +#: ../lib/modules/nisnetgroup.inc:578 ../lib/modules/windowsGroup.inc:130 +#: ../lib/modules/windowsGroup.inc:134 ../lib/modules/windowsGroup.inc:203 +#: ../lib/modules/windowsGroup.inc:237 ../lib/modules/windowsGroup.inc:757 +#: ../lib/modules/groupOfNames.inc:80 ../lib/modules/groupOfNames.inc:84 +#: ../lib/modules/groupOfNames.inc:126 ../lib/modules/groupOfNames.inc:134 +#: ../lib/modules/groupOfNames.inc:143 ../lib/modules/groupOfNames.inc:236 +#: ../lib/modules/groupOfNames.inc:640 +msgid "Members" +msgstr "Участники" + +#: ../lib/modules/groupOfNames.inc:88 ../lib/modules/groupOfNames.inc:154 +msgid "Members are optional" +msgstr "Участники опциональны" + +#: ../lib/modules/qmailGroup.inc:87 ../lib/modules/qmailGroup.inc:189 +#: ../lib/modules/qmailGroup.inc:312 ../lib/modules/qmailGroup.inc:389 +#: ../lib/modules/qmailGroup.inc:610 ../lib/modules/qmailGroup.inc:1072 +msgid "Members only" +msgstr "Только для участников" + +#: ../lib/modules/qmailUser.inc:101 ../lib/modules/qmailUser.inc:136 +#: ../lib/modules/qmailUser.inc:216 ../lib/modules/qmailUser.inc:309 +#: ../lib/modules/qmailUser.inc:405 ../lib/modules/qmailUser.inc:679 +#: ../lib/modules/qmailUser.inc:1192 +msgid "Message count limit" +msgstr "Ограничение на количество сообщений" + +#: ../lib/modules/qmailUser.inc:103 ../lib/modules/qmailUser.inc:146 +#: ../lib/modules/qmailUser.inc:220 ../lib/modules/qmailUser.inc:317 +#: ../lib/modules/qmailUser.inc:408 ../lib/modules/qmailUser.inc:690 +#: ../lib/modules/qmailUser.inc:1193 +msgid "Message size limit" +msgstr "Максимальный размер сообщения" + +#: ../lib/modules/qmailUser.inc:113 ../lib/modules/qmailUser.inc:164 +#: ../lib/modules/qmailUser.inc:240 ../lib/modules/qmailUser.inc:359 +#: ../lib/modules/qmailUser.inc:423 ../lib/modules/qmailUser.inc:594 +#: ../lib/modules/qmailUser.inc:1196 ../lib/modules/qmailGroup.inc:132 +#: ../lib/modules/qmailGroup.inc:247 ../lib/modules/qmailGroup.inc:365 +#: ../lib/modules/qmailGroup.inc:501 ../lib/modules/qmailGroup.inc:1055 +msgid "Message store" +msgstr "Хранилище сообщений" + +#: ../lib/modules/sambaSamAccount.inc:549 +msgid "Mid-Atlantic" +msgstr "Mid-Atlantic" + +#: ../lib/modules/sambaSamAccount.inc:540 +msgid "Midway Island, Samoa" +msgstr "Midway Island, Samoa" + +#: ../lib/modules/windowsUser.inc:236 ../lib/modules/inetOrgPerson.inc:383 +msgid "Miller" +msgstr "Miller" + +#: ../lib/modules/sambaDomain.inc:94 ../lib/modules/sambaDomain.inc:183 +#: ../lib/modules/sambaDomain.inc:269 ../lib/modules/sambaDomain.inc:644 +msgid "Minimal password length" +msgstr "Минимальная длина пароля" + +#: ../lib/modules/posixGroup.inc:387 ../lib/modules/posixGroup.inc:574 +msgid "Minimum GID number" +msgstr "Минимальный GID" + +#: ../lib/modules/posixGroup.inc:574 +msgid "Minimum GID number is invalid or empty!" +msgstr "Минимальный GID неправильный или пустой!" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:211 ../lib/modules/posixAccount.inc:229 +msgid "Minimum UID number" +msgstr "Минимальный UID" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +msgid "Minimum UID number is invalid!" +msgstr "Минимальный UID неправильный!" + +#: ../lib/modules/passwordSelfReset.inc:81 +#: ../lib/modules/passwordSelfReset.inc:205 +msgid "Minimum answer length" +msgstr "Минимальная длина ответа" + +#: ../templates/config/mainmanage.php:345 +msgid "Minimum character classes" +msgstr "Минимальное количество классов символов" + +#: ../templates/config/mainmanage.php:341 +msgid "Minimum lowercase characters" +msgstr "Минимум строчных знаков" + +#: ../templates/config/mainmanage.php:343 +msgid "Minimum numeric characters" +msgstr "Минимальное кол-во цифровых символов" + +#: ../lib/types/ppolicyType.inc:78 ../lib/modules/shadowAccount.inc:57 +#: ../lib/modules/shadowAccount.inc:111 ../lib/modules/shadowAccount.inc:164 +#: ../lib/modules/shadowAccount.inc:178 ../lib/modules/shadowAccount.inc:214 +#: ../lib/modules/shadowAccount.inc:323 ../lib/modules/shadowAccount.inc:494 +#: ../lib/modules/ppolicy.inc:77 ../lib/modules/ppolicy.inc:136 +#: ../lib/modules/ppolicy.inc:159 ../lib/modules/ppolicy.inc:191 +#: ../lib/modules/ppolicy.inc:465 ../lib/modules/sambaDomain.inc:118 +#: ../lib/modules/sambaDomain.inc:189 ../lib/modules/sambaDomain.inc:214 +#: ../lib/modules/sambaDomain.inc:317 ../lib/modules/sambaDomain.inc:647 +msgid "Minimum password age" +msgstr "Минимальный срок действия пароля" + +#: ../templates/config/mainmanage.php:340 ../lib/types/ppolicyType.inc:87 +#: ../lib/modules/ppolicy.inc:113 ../lib/modules/ppolicy.inc:140 +#: ../lib/modules/ppolicy.inc:168 ../lib/modules/ppolicy.inc:243 +#: ../lib/modules/ppolicy.inc:473 +msgid "Minimum password length" +msgstr "Минимальная длина пароля" + +#: ../templates/config/mainmanage.php:344 +msgid "Minimum symbolic characters" +msgstr "Минимум символических знаков" + +#: ../templates/config/mainmanage.php:342 +msgid "Minimum uppercase characters" +msgstr "Минимум заглавных знаков" + +#: ../templates/3rdParty/pla/lib/import_functions.php:429 +msgid "Missing attributes for" +msgstr "Отсутствуют атрибуты для" + +#: ../templates/3rdParty/pla/lib/import_functions.php:443 +msgid "Missing modify command add, delete or replace" +msgstr "Отсутствует команда модификации добавления, удаления или замены" + +#: ../lib/types/user.inc:207 ../lib/modules/inetOrgPerson.inc:72 +#: ../lib/modules/inetOrgPerson.inc:141 ../lib/modules/inetOrgPerson.inc:332 +#: ../lib/modules/inetOrgPerson.inc:502 ../lib/modules/inetOrgPerson.inc:647 +#: ../lib/modules/inetOrgPerson.inc:773 ../lib/modules/inetOrgPerson.inc:777 +#: ../lib/modules/inetOrgPerson.inc:1767 ../lib/modules/inetOrgPerson.inc:2370 +msgid "Mobile number" +msgstr "Мобильный телефон" + +#: ../lib/modules/inetOrgPerson.inc:2991 +msgid "Mobile telephone number" +msgstr "Мобильный телефон" + +#: ../lib/modules/qmailGroup.inc:79 ../lib/modules/qmailGroup.inc:205 +#: ../lib/modules/qmailGroup.inc:209 ../lib/modules/qmailGroup.inc:338 +#: ../lib/modules/qmailGroup.inc:398 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:510 ../lib/modules/qmailGroup.inc:1063 +msgid "Moderator email addresses" +msgstr "Электронный почтовый адрес модератора" + +#: ../lib/modules/qmailGroup.inc:77 ../lib/modules/qmailGroup.inc:157 +#: ../lib/modules/qmailGroup.inc:161 ../lib/modules/qmailGroup.inc:280 +#: ../lib/modules/qmailGroup.inc:377 ../lib/modules/qmailGroup.inc:511 +#: ../lib/modules/qmailGroup.inc:779 ../lib/modules/qmailGroup.inc:1062 +msgid "Moderator entries" +msgstr "Записи модераторов" + +#: ../lib/modules/qmailGroup.inc:69 ../lib/modules/qmailGroup.inc:99 +#: ../lib/modules/qmailGroup.inc:193 ../lib/modules/qmailGroup.inc:322 +#: ../lib/modules/qmailGroup.inc:392 ../lib/modules/qmailGroup.inc:596 +#: ../lib/modules/qmailGroup.inc:1058 +msgid "Moderator text" +msgstr "Текст модератора" + +#: ../lib/modules/qmailGroup.inc:194 +msgid "" +"Moderator text that is used to specify an own approval text used if the list " +"is moderated. The usual %HEADER% magic of qmail-reply etc. can be used here." +msgstr "" +"Текст модератора, используемый для указания собственного текста " +"подтверждения, применяемого в случае, если список модерируется. Здесь можно " +"использовать макрос %HEADER% из qmail-reply, и т.д." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:61 +msgid "Modification not successful!" +msgstr "Изменение неуспешно!" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:59 +msgid "Modification successful!" +msgstr "Изменение успешно!" + +#: ../lib/modules/generalInformation.inc:85 +msgid "Modification time" +msgstr "Время изменения" + +#: ../lib/modules/generalInformation.inc:81 +msgid "Modified by" +msgstr "Изменено" + +#: ../templates/serverInfo.php:314 ../templates/serverInfo.php:387 +msgid "Modify" +msgstr "Изменить" + +#: ../templates/serverInfo.php:328 ../templates/serverInfo.php:393 +msgid "Modify RDN" +msgstr "Изменить RDN" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:57 +msgid "Modify group" +msgstr "Изменить группу" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2110 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2111 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2114 +msgid "Modify group members" +msgstr "Изменить участников группы" + +#: ../templates/3rdParty/pla/htdocs/import.php:32 +msgid "Modifying" +msgstr "Изменяя" + +#: ../templates/config/confmodules.php:176 +#: ../templates/config/confmain.php:217 +#: ../templates/config/moduleSettings.php:175 +#: ../templates/config/conftypes.php:194 +#: ../templates/selfService/adminMain.php:398 +msgid "Module settings" +msgstr "Настройки модуля" + +#: ../templates/config/confmodules.php:172 +#: ../templates/config/confmain.php:213 +#: ../templates/config/moduleSettings.php:171 +#: ../templates/config/conftypes.php:190 +msgid "Modules" +msgstr "Модули" + +#: ../lib/modules/sambaSamAccount.inc:1350 +msgid "Monday" +msgstr "Понедельник" + +#: ../lib/modules/sambaSamAccount.inc:544 +msgid "Mountain Time (US & Canada)" +msgstr "Mountain Time (US & Canada)" + +#: ../lib/modules/quota.inc:98 ../lib/modules/quota.inc:392 +#: ../lib/modules/quota.inc:499 ../lib/modules/quota.inc:626 +#: ../lib/modules/systemQuotas.inc:90 ../lib/modules/systemQuotas.inc:115 +#: ../lib/modules/systemQuotas.inc:375 +msgid "Mountpoint" +msgstr "Точка подключения" + +#: ../lib/modules/systemQuotas.inc:90 ../lib/modules/systemQuotas.inc:91 +msgid "Mountpoint contains invalid characters." +msgstr "Точка монтирования содержит недопустимые символы." + +#: ../lib/modules/quota.inc:99 +msgid "Mountpoint of device with enabled quotas." +msgstr "Точка монтирования устройства с включенными квотами" + +#: ../lib/modules/customFields.inc:558 +msgid "Move down" +msgstr "Переместить вниз" + +#: ../lib/modules/customFields.inc:552 +msgid "Move up" +msgstr "Переместить вверх" + +#: ../lib/modules/customFields.inc:1671 ../lib/modules/customFields.inc:2800 +msgid "Multi value" +msgstr "Множественное значение" + +#: ../lib/modules/customFields.inc:2655 +msgid "Multi-select fields must not contain empty values." +msgstr "Поля с множественным выбором не должны содержать пустые значения." + +#: ../lib/modules/zarafaDynamicGroup.inc:69 ../lib/modules/zarafaGroup.inc:72 +#: ../lib/modules/eduPerson.inc:91 ../lib/modules/eduPerson.inc:104 +#: ../lib/modules/eduPerson.inc:116 ../lib/modules/eduPerson.inc:132 +#: ../lib/modules/eduPerson.inc:140 ../lib/modules/zarafaUser.inc:157 +#: ../lib/modules/sudoRole.inc:89 ../lib/modules/sudoRole.inc:94 +#: ../lib/modules/sudoRole.inc:99 ../lib/modules/sudoRole.inc:104 +#: ../lib/modules/sudoRole.inc:109 ../lib/modules/sudoRole.inc:114 +msgid "Multiple values are separated by comma." +msgstr "Несколько значений разделяются запятой." + +#: ../lib/modules/kolabGroup.inc:85 ../lib/modules/kolabGroup.inc:94 +#: ../lib/modules/kolabGroup.inc:103 ../lib/modules/puppetClient.inc:78 +#: ../lib/modules/puppetClient.inc:90 ../lib/modules/puppetClient.inc:98 +#: ../lib/modules/device.inc:67 ../lib/modules/windowsUser.inc:128 +#: ../lib/modules/windowsUser.inc:164 ../lib/modules/windowsUser.inc:196 +#: ../lib/modules/windowsUser.inc:207 ../lib/modules/kolabUser.inc:140 +#: ../lib/modules/kolabUser.inc:149 ../lib/modules/inetOrgPerson.inc:710 +#: ../lib/modules/inetOrgPerson.inc:730 ../lib/modules/inetOrgPerson.inc:738 +#: ../lib/modules/inetOrgPerson.inc:746 ../lib/modules/inetOrgPerson.inc:754 +#: ../lib/modules/inetOrgPerson.inc:770 ../lib/modules/inetOrgPerson.inc:778 +#: ../lib/modules/inetOrgPerson.inc:786 ../lib/modules/inetOrgPerson.inc:794 +#: ../lib/modules/inetOrgPerson.inc:805 ../lib/modules/inetOrgPerson.inc:825 +#: ../lib/modules/inetOrgPerson.inc:837 ../lib/modules/inetOrgPerson.inc:845 +#: ../lib/modules/inetOrgPerson.inc:853 ../lib/modules/inetOrgPerson.inc:865 +#: ../lib/modules/inetOrgPerson.inc:873 ../lib/modules/inetOrgPerson.inc:889 +#: ../lib/modules/inetOrgPerson.inc:897 ../lib/modules/inetOrgPerson.inc:905 +#: ../lib/modules/systemQuotas.inc:63 ../lib/modules/freeRadius.inc:94 +#: ../lib/modules/qmailGroup.inc:121 ../lib/modules/qmailGroup.inc:129 +#: ../lib/modules/qmailGroup.inc:142 ../lib/modules/qmailGroup.inc:154 +#: ../lib/modules/qmailGroup.inc:162 ../lib/modules/qmailGroup.inc:170 +#: ../lib/modules/qmailGroup.inc:178 ../lib/modules/qmailGroup.inc:186 +#: ../lib/modules/qmailGroup.inc:202 ../lib/modules/qmailGroup.inc:210 +#: ../lib/modules/qmailGroup.inc:218 ../lib/modules/windowsGroup.inc:127 +#: ../lib/modules/groupOfNames.inc:77 +msgid "Multiple values are separated by semicolon." +msgstr "Несколько значений разделяются запятой." + +#: ../lib/modules/asteriskAccount.inc:198 +#: ../lib/modules/asteriskAccount.inc:289 +#: ../lib/modules/asteriskAccount.inc:352 +#: ../lib/modules/asteriskAccount.inc:548 +#: ../lib/modules/asteriskAccount.inc:887 +#: ../lib/modules/asteriskAccount.inc:1212 +msgid "Music on hold" +msgstr "Музыка на удержании" + +#: ../lib/modules/asteriskAccount.inc:199 +msgid "Music to play on hold." +msgstr "Музыка для проигрывания на удержании." + +#: ../lib/modules/ipHost.inc:86 ../lib/modules/windowsHost.inc:101 +#: ../lib/modules/device.inc:104 ../lib/modules/windowsUser.inc:278 +#: ../lib/modules/inetOrgPerson.inc:578 +msgid "MyCity" +msgstr "Город" + +#: ../lib/modules/inetOrgPerson.inc:464 ../lib/modules/inetOrgPerson.inc:472 +msgid "Mycity" +msgstr "Mycity" + +#: ../lib/modules/windowsUser.inc:260 ../lib/modules/inetOrgPerson.inc:448 +msgid "Mystreetname 42" +msgstr "Mystreetname 42" + +#: ../lib/modules/asteriskAccount.inc:154 +#: ../lib/modules/asteriskAccount.inc:267 +#: ../lib/modules/asteriskAccount.inc:341 +#: ../lib/modules/asteriskAccount.inc:468 +#: ../lib/modules/asteriskAccount.inc:785 +#: ../lib/modules/asteriskAccount.inc:1201 +msgid "NAT" +msgstr "NAT" + +#: ../lib/modules/asteriskAccount.inc:155 +msgid "NAT setting for this account." +msgstr "Настройки NAT для этого аккаунта." + +#: ../lib/modules/nisnetgroup.inc:60 +msgid "NIS net group" +msgstr "Сетевая группа NIS" + +#: ../lib/types/netgroup.inc:62 +msgid "NIS netgroup entries" +msgstr "Записи сетевых групп NIS" + +#: ../lib/types/netgroup.inc:53 +msgid "NIS netgroups" +msgstr "Сетевые группы NIS " + +#: ../lib/modules/nisObject.inc:40 +msgid "NIS object" +msgstr "Объект NIS" + +#: ../lib/types/nisObjectType.inc:155 +#, php-format +msgid "NIS object count: %s" +msgstr "Количество объектов NIS: %s" + +#: ../lib/types/nisObjectType.inc:48 +msgid "NIS object entries" +msgstr "Записи объектов NIS" + +#: ../lib/types/nisObjectType.inc:39 +msgid "NIS objects" +msgstr "Объекты NIS" + +#: ../templates/serverInfo.php:147 ../templates/masscreate.php:288 +#: ../templates/masscreate.php:363 ../templates/schema/schema.php:268 +#: ../lib/types/automountType.inc:86 ../lib/types/automountType.inc:249 +#: ../lib/types/ppolicyType.inc:77 ../lib/modules/device.inc:54 +#: ../lib/modules/device.inc:82 ../lib/modules/device.inc:113 +#: ../lib/modules/device.inc:163 ../lib/modules/device.inc:436 +#: ../lib/modules/nisObject.inc:54 ../lib/modules/nisObject.inc:74 +#: ../lib/modules/nisObject.inc:104 ../lib/modules/nisObject.inc:130 +#: ../lib/modules/nisObject.inc:210 ../lib/modules/ppolicy.inc:73 +#: ../lib/modules/ppolicy.inc:135 ../lib/modules/ppolicy.inc:158 +#: ../lib/modules/ppolicy.inc:183 ../lib/modules/ppolicy.inc:464 +#: ../lib/modules/automount.inc:57 ../lib/modules/automount.inc:73 +#: ../lib/modules/automount.inc:96 ../lib/modules/automount.inc:121 +#: ../lib/modules/automount.inc:193 ../lib/modules/asteriskExtension.inc:815 +#: ../lib/modules/customFields.inc:74 ../lib/modules/customFields.inc:963 +#: ../lib/modules/customFields.inc:1454 ../lib/modules/groupOfNames.inc:199 +msgid "Name" +msgstr "Имя" + +#: ../lib/modules/zarafaAddressList.inc:57 +msgid "Name of the address list which should be created." +msgstr "Название списка адресов, который должен быть создан." + +#: ../help/help.inc:169 +msgid "" +"Name under which the profile will be saved. If a profile with the same name " +"exists, it will be overwritten." +msgstr "" +"Имя, под которым будет сохранен профиль. Если профиль с таким именем " +"существует, то будет перезаписан." + +#: ../lib/modules/namedObject.inc:38 +msgid "Named object" +msgstr "Именованный объект" + +#: ../lib/modules/dhcp_settings.inc:186 ../lib/modules/dhcp_settings.inc:209 +#: ../lib/modules/dhcp_settings.inc:603 ../lib/modules/dhcp_settings.inc:679 +#: ../lib/modules/freeRadius.inc:81 ../lib/modules/freeRadius.inc:117 +#: ../lib/modules/freeRadius.inc:131 ../lib/modules/freeRadius.inc:194 +#: ../lib/modules/freeRadius.inc:221 ../lib/modules/freeRadius.inc:313 +#: ../lib/modules/freeRadius.inc:617 +msgid "Net mask" +msgstr "Маска подсети" + +#: ../lib/modules/dhcp_settings.inc:162 ../lib/modules/dhcp_settings.inc:206 +#: ../lib/modules/dhcp_settings.inc:221 ../lib/modules/dhcp_settings.inc:273 +#: ../lib/modules/dhcp_settings.inc:574 ../lib/modules/dhcp_settings.inc:672 +msgid "Netbios name servers" +msgstr "Cерверы имен Netbios " + +#: ../lib/modules/dhcp_settings.inc:166 ../lib/modules/dhcp_settings.inc:207 +#: ../lib/modules/dhcp_settings.inc:223 ../lib/modules/dhcp_settings.inc:279 +#: ../lib/modules/dhcp_settings.inc:584 ../lib/modules/dhcp_settings.inc:673 +msgid "Netbios node type" +msgstr "Тип узла netbios" + +#: ../lib/modules/authorizedServiceObject.inc:180 +msgid "New Authorized Service" +msgstr "Новый Авторизованный Сервис" + +#: ../lib/types/dhcp.inc:118 ../lib/types/dhcp.inc:172 +msgid "New DHCP" +msgstr "Новый DHCP" + +#: ../lib/modules/ipHost.inc:139 +msgid "New IP address" +msgstr "Новый IP адрес" + +#: ../lib/modules/ieee802device.inc:114 +msgid "New MAC address" +msgstr "Новый MAC адрес" + +#: ../lib/types/nisObjectType.inc:102 ../lib/types/nisObjectType.inc:157 +msgid "New NIS object" +msgstr "Новый объект NIS" + +#: ../templates/ou_edit.php:77 +msgid "New OU created successfully." +msgstr "Новый OU создан успешно." + +#: ../lib/modules/ldapPublicKey.inc:127 +msgid "New SSH public key" +msgstr "Новый публичный ключ SSH" + +#: ../lib/modules/windowsUser.inc:284 ../lib/modules/inetOrgPerson.inc:586 +msgid "New York" +msgstr "New York" + +#: ../lib/types/zarafaAddressListType.inc:117 +#: ../lib/types/zarafaAddressListType.inc:146 +msgid "New address list" +msgstr "Новый список адресов" + +#: ../lib/types/mailAlias.inc:114 ../lib/types/mailAlias.inc:143 +#: ../lib/types/alias.inc:114 ../lib/types/alias.inc:143 +msgid "New alias" +msgstr "Новый почтовый псевдоним" + +#: ../lib/types/automountType.inc:110 ../lib/types/automountType.inc:217 +msgid "New automount entry" +msgstr "Новая запись автомонтирования" + +#: ../lib/types/automountType.inc:233 ../lib/types/automountType.inc:234 +msgid "New automount map" +msgstr "Новое соответствие автомонтирования" + +#: ../templates/config/profmanage.php:146 +msgid "New default profile set successfully." +msgstr "Новый профиль по умолчанию задан успешно." + +#: ../lib/types/smbDomain.inc:114 ../lib/types/smbDomain.inc:169 +msgid "New domain" +msgstr "Новый домен" + +#: ../lib/types/asteriskExt.inc:117 ../lib/types/asteriskExt.inc:145 +msgid "New extension" +msgstr "Новое расширение" + +#: ../templates/pdfedit/pdfpage.php:620 +msgid "New field" +msgstr "Новое поле" + +#: ../lib/types/gon.inc:119 ../lib/types/gon.inc:182 +#: ../lib/types/zarafaDynamicGroupType.inc:119 +#: ../lib/types/zarafaDynamicGroupType.inc:167 ../lib/types/group.inc:138 +#: ../lib/types/group.inc:212 ../lib/types/netgroup.inc:116 +#: ../lib/types/netgroup.inc:171 +msgid "New group" +msgstr "Новая группа" + +#: ../lib/types/host.inc:128 ../lib/types/host.inc:195 +#: ../lib/modules/hostObject.inc:150 +msgid "New host" +msgstr "Новый хост" + +#: ../lib/modules/inetLocalMailRecipient.inc:156 +msgid "New local address" +msgstr "Новый адрес" + +#: ../templates/config/mainmanage.php:376 +msgid "New master password" +msgstr "Новый мастер-пароль" + +#: ../templates/config/mainmanage.php:79 +msgid "New master password set successfully." +msgstr "Новый мастер-пароль задан успешно." + +#: ../lib/lists.inc:114 +msgid "New object" +msgstr "Новый объект" + +#: ../templates/ou_edit.php:183 ../help/help.inc:235 +msgid "New organisational unit" +msgstr "Новая организационная единица" + +#: ../templates/config/confmain.php:434 +#: ../lib/modules/sambaSamAccount.inc:2290 +#: ../lib/modules/posixAccount.inc:2426 ../lib/modules/windowsUser.inc:1319 +#: ../lib/modules/passwordSelfReset.inc:926 +msgid "New password" +msgstr "Новый пароль" + +#: ../templates/config/profmanage.php:133 +msgid "New password set successfully." +msgstr "Новый пароль задан успешно." + +#: ../lib/types/ppolicyType.inc:122 ../lib/types/ppolicyType.inc:151 +msgid "New policy" +msgstr "Новая политика" + +#: ../templates/config/profmanage.php:260 +#: ../templates/selfService/profManage.php:222 +msgid "New profile name" +msgstr "Имя нового профиля" + +#: ../lib/modules/range.inc:94 ../lib/modules/range.inc:108 +#: ../lib/modules/range.inc:446 +msgid "New range" +msgstr "Новый диапазон" + +#: ../lib/modules/nisMailAlias.inc:177 +msgid "New recipient" +msgstr "Новый получатель" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:81 +msgid "New required attributes" +msgstr "Новые необходимые атрибуты" + +#: ../templates/pdfedit/pdfpage.php:588 +msgid "New section" +msgstr "Новая секция" + +#: ../lib/types/sudo.inc:106 ../lib/types/sudo.inc:161 +msgid "New sudo role" +msgstr "Новая роль sudo" + +#: ../lib/types/user.inc:172 ../lib/types/user.inc:532 +msgid "New user" +msgstr "Новый пользователь" + +#: ../lib/modules/inetOrgPerson.inc:2299 +msgid "New user certificate" +msgstr "Новый сертификат пользователя" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "New value" +msgstr "Новое значение" + +#: ../lib/modules/sambaDomain.inc:78 ../lib/modules/sambaDomain.inc:158 +#: ../lib/modules/sambaDomain.inc:179 ../lib/modules/sambaDomain.inc:354 +#: ../lib/modules/sambaDomain.inc:640 +msgid "Next RID" +msgstr "Следующий RID" + +#: ../lib/modules/sambaDomain.inc:205 ../lib/modules/sambaDomain.inc:206 +msgid "Next RID is not a number!" +msgstr "Следующий RID не число!" + +#: ../lib/modules/sambaDomain.inc:79 +msgid "Next RID to use when creating accounts (only used by Winbind)." +msgstr "" +"Следующий RID для использования при создании аккаунтов (используется только " +"для Winbind)." + +#: ../lib/modules/sambaDomain.inc:87 +msgid "Next RID to use when creating group accounts (only used by Winbind)." +msgstr "" +"Следующий RID для использования при создании аккаунтов групп (используется " +"только для Winbind)." + +#: ../lib/modules/sambaDomain.inc:83 +msgid "Next RID to use when creating user accounts (only used by Winbind)." +msgstr "" +"Следующий RID для использования при создании пользовательских аккаунтов " +"(используется только для Winbind)." + +#: ../lib/modules/sambaDomain.inc:86 ../lib/modules/sambaDomain.inc:170 +#: ../lib/modules/sambaDomain.inc:181 ../lib/modules/sambaDomain.inc:370 +#: ../lib/modules/sambaDomain.inc:642 +msgid "Next group RID" +msgstr "Следующий RID группы" + +#: ../lib/modules/sambaDomain.inc:209 ../lib/modules/sambaDomain.inc:210 +msgid "Next group RID is not a number!" +msgstr "Следующий RID группы не число!" + +#: ../lib/modules/sambaDomain.inc:82 ../lib/modules/sambaDomain.inc:164 +#: ../lib/modules/sambaDomain.inc:180 ../lib/modules/sambaDomain.inc:362 +#: ../lib/modules/sambaDomain.inc:641 +msgid "Next user RID" +msgstr "Следующий RID пользователя" + +#: ../lib/modules/sambaDomain.inc:207 ../lib/modules/sambaDomain.inc:208 +msgid "Next user RID is not a number!" +msgstr "Следующий RID пользователя не число!" + +#: ../lib/modules/eduPerson.inc:94 ../lib/modules/eduPerson.inc:181 +#: ../lib/modules/eduPerson.inc:219 ../lib/modules/eduPerson.inc:346 +#: ../lib/modules/eduPerson.inc:769 +msgid "Nick names" +msgstr "Сокращенные имена" + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/qmailGroup.inc:314 +#: ../lib/modules/qmailGroup.inc:315 ../lib/modules/qmailGroup.inc:316 +#: ../lib/modules/qmailGroup.inc:356 ../lib/modules/qmailGroup.inc:357 +#: ../lib/modules/qmailGroup.inc:358 ../lib/modules/qmailGroup.inc:1027 +#: ../lib/modules/qmailGroup.inc:1068 ../lib/modules/qmailGroup.inc:1074 +#: ../lib/modules/imapAccess.inc:112 +msgid "No" +msgstr "Нет" + +#: ../lib/types/asteriskExt.inc:144 +msgid "No Asterisk extensions found." +msgstr "Не найдено расширений Asterisk." + +#: ../lib/types/dhcp.inc:171 +msgid "No DHCPs found!" +msgstr "DHCP не найден!" + +#: ../lib/types/nisObjectType.inc:156 +msgid "No NIS objects found!" +msgstr "NIS объекты не найдены!" + +#: ../templates/3rdParty/pla/lib/Template.php:558 +#: ../templates/3rdParty/pla/lib/Template.php:559 +msgid "No RDN attribute was selected." +msgstr "Не выбран атрибут RDN." + +#: ../lib/modules/sambaSamAccount.inc:1088 +#: ../lib/modules/sambaGroupMapping.inc:334 +msgid "No Samba 3 domains found in LDAP! Please create one first." +msgstr "Samba 3 домены не найдены в LDAP! Пожалуйста, вначале создайте их." + +#: ../lib/modules/posixAccount.inc:570 ../lib/modules/posixAccount.inc:1285 +msgid "No Unix groups found in LDAP! Please create one first." +msgstr "Unix группы не найдены в LDAP! Пожалуйста, вначале создайте их." + +#: ../lib/modules/qmailUser.inc:42 +msgid "No access" +msgstr "Нет доступа" + +#: ../lib/types/zarafaAddressListType.inc:145 +msgid "No address list found!" +msgstr "Не найден список адресов!" + +#: ../lib/types/mailAlias.inc:142 ../lib/types/alias.inc:142 +msgid "No aliases found!" +msgstr "Псевдонимы не найдены!" + +#: ../lib/types/automountType.inc:216 +msgid "No automount entries found!" +msgstr "Не найдены записи автомонтирования!" + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:36 +msgid "No binary data available" +msgstr "Нет двоичных данных" + +#: ../templates/initsuff.php:164 +msgid "No changes were made." +msgstr "Изменения не были сделаны." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:83 +#, php-format +msgid "No current value for attribute %s." +msgstr "Нет текущего значения для атрибута %s." + +#: ../templates/login.php:104 +msgid "" +"No default profile set. Please set it in the server profile configuration." +msgstr "" +"Не указан профиль по умолчанию. Пожалуйста, укажите его в конфигурации " +"профиля сервера." + +#: ../templates/schema/schema.php:144 +msgid "No description" +msgstr "Нет описания" + +#: ../lib/types/smbDomain.inc:168 +msgid "No domains found!" +msgstr "Не найдены домены!" + +#: ../lib/modules/passwordSelfReset.inc:1404 +msgid "No email address found." +msgstr "Не найден адрес электронного почтового ящика." + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:20 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:21 +msgid "No entry was selected to delete" +msgstr "Не выбрана запись для удаления" + +#: ../lib/modules/ldapPublicKey.inc:513 ../lib/modules/inetOrgPerson.inc:3632 +#: ../lib/modules/customFields.inc:3130 +msgid "No file received." +msgstr "Файл не получен." + +#: ../templates/config/mainmanage.php:127 ../lib/modules/ldapPublicKey.inc:102 +#: ../lib/modules/inetOrgPerson.inc:96 ../lib/modules/customFields.inc:3065 +msgid "No file selected." +msgstr "Файл не выбран." + +#: ../lib/modules/qmailUser.inc:48 +msgid "No forwarding" +msgstr "Нет пересылки" + +#: ../lib/modules/posixGroup.inc:572 ../lib/modules/posixAccount.inc:104 +msgid "No free ID-Number!" +msgstr "Нет свободного ID!" + +#: ../lib/types/gon.inc:181 ../lib/types/zarafaDynamicGroupType.inc:166 +#: ../lib/types/group.inc:211 ../lib/types/netgroup.inc:170 +msgid "No groups found!" +msgstr "Группы не найдены!" + +#: ../lib/types/host.inc:194 +msgid "No hosts found!" +msgstr "Хосты не найдены!" + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:59 +msgid "No image available" +msgstr "Нет изображения" + +#: ../templates/3rdParty/pla/lib/import_functions.php:94 +msgid "No import input" +msgstr "Нечего импортировать" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1354 +msgid "No internal attributes" +msgstr "Нет внутренних атрибутов." + +#: ../templates/tests/lamdaemonTest.php:195 +msgid "No lamdaemon path set, please update your LAM configuration settings." +msgstr "Не установлен путь к скрипту lamdaemon, проверьте конфигурацию LAM." + +#: ../templates/tests/lamdaemonTest.php:97 +#: ../templates/tests/lamdaemonTest.php:190 +msgid "No lamdaemon server set, please update your LAM configuration settings." +msgstr "" +"Не установлено имя сервера, где находится lamdaemon, проверьте конфигурацию " +"LAM." + +#: ../lib/modules/qmailUser.inc:49 +msgid "No local delivery" +msgstr "Нет локальной доставки" + +#: ../templates/config/mainmanage.php:356 +msgid "No logging" +msgstr "Логи не ведутся" + +#: ../templates/pdfedit/pdfpage.php:429 +msgid "No logo" +msgstr "Нет изображения" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:157 +msgid "No new attributes available for this entry" +msgstr "Нет новых атрибутов для этой записи" + +#: ../templates/config/conftypes.php:290 ../help/help.inc:160 +msgid "No new entries" +msgstr "Нет новых записей" + +#: ../lib/lists.inc:113 +msgid "No objects found!" +msgstr "Обьекты не найдены!" + +#: ../templates/config/confmodules.php:406 +msgid "No or more than one base module selected!" +msgstr "Нет или выбрано больше одного основного модуля!" + +#: ../templates/config/confsave.php:53 ../templates/config/confmain.php:55 +#: ../lib/modules/passwordSelfReset.inc:1033 +msgid "No password was entered!" +msgstr "Пароль не введен!" + +#: ../lib/types/ppolicyType.inc:150 +msgid "No policies found!" +msgstr "Политики не найдены!" + +#: ../templates/tests/schemaTest.php:70 +msgid "No problems found." +msgstr "Проблемы не обнаружены." + +#: ../lib/modules/qmailUser.inc:50 +msgid "No program delivery" +msgstr "Нет программной доставки" + +#: ../lib/modules/customScripts.inc:181 +msgid "No scripts to run." +msgstr "Нет скриптов для запуска." + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "No section text specified" +msgstr "Не определен текст секции" + +#: ../lib/modules/passwordSelfReset.inc:1055 +msgid "No security answer found." +msgstr "Не найден секретный ответ." + +#: ../templates/config/conflogin.php:137 +msgid "No server profiles found. Please create one." +msgstr "Не найдено профилей сервера. Пожалуйста, создайте его." + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "No static text specified" +msgstr "Не определен статический текст" + +#: ../lib/modules/dhcp_settings.inc:311 +msgid "No subnet entered." +msgstr "Не задана подсеть." + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:45 +msgid "No such entry" +msgstr "Нет такой записи" + +#: ../templates/3rdParty/pla/htdocs/compare.php:24 +#: ../templates/3rdParty/pla/htdocs/compare.php:27 +#: ../templates/3rdParty/pla/htdocs/delete.php:19 +msgid "No such entry." +msgstr "Нет такой записи." + +#: ../templates/schema/schema.php:438 +#, php-format +msgid "No such schema item: \"%s\"" +msgstr "Нет такого элемента схемы: \"%s\"" + +#: ../lib/types/sudo.inc:160 +msgid "No sudo roles found!" +msgstr "Не найдены роли sudo!" + +#: ../lib/types/user.inc:531 +msgid "No users found!" +msgstr "Пользователи не найдены!" + +#: ../lib/modules/qmailUser.inc:58 +msgid "None" +msgstr "Отсутствует" + +#: ../help/help.inc:68 +msgid "Note" +msgstr "Примечание" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:125 +msgid "" +"Note: You may be required to enter new attributes that these object classes " +"require" +msgstr "" +"Заметка: Вам, возможно, потребуется добавить новые атрибуты, необходимые для " +"этот класса объекта." + +#: ../lib/modules/windowsGroup.inc:114 ../lib/modules/windowsGroup.inc:181 +#: ../lib/modules/windowsGroup.inc:236 ../lib/modules/windowsGroup.inc:326 +#: ../lib/modules/windowsGroup.inc:715 +msgid "Notes" +msgstr "Примечания" + +#: ../templates/3rdParty/pla/lib/export_functions.php:450 +msgid "Nothing to export" +msgstr "Нечего экспортировать" + +#: ../templates/config/mainmanage.php:352 +msgid "Notice" +msgstr "Напоминание" + +#: ../templates/delete.php:103 +msgid "Number of child entries" +msgstr "Число потомков записи" + +#: ../lib/modules/customFields.inc:115 +msgid "Number of columns in text area." +msgstr "Количество колонок в области ввода." + +#: ../lib/modules/shadowAccount.inc:175 +msgid "" +"Number of days a user can login even his password has expired. -1=always." +msgstr "" +"Сколько дней пользователь может входить, после того, как его пароль устарел. " +"-1=всегда." + +#: ../lib/modules/shadowAccount.inc:179 +msgid "" +"Number of days a user has to wait until he is allowed to change his password " +"again. If set value must be >0." +msgstr "" +"Кол-во дней, перед тем как пользователь сможет поменять свой пароль. Если " +"установлено, то должно быть > 0." + +#: ../lib/modules/shadowAccount.inc:183 +msgid "" +"Number of days after a user has to change his password again. If set value " +"must be >0." +msgstr "" +"Кол-во дней, по прошествии которых пользователь будет должен поменять свой " +"пароль. Если установлено, то должно быть > 0." + +#: ../lib/modules/mitKerberos.inc:122 +msgid "Number of failed logins." +msgstr "Количество неудачных попыток входа." + +#: ../lib/modules/sambaDomain.inc:131 +msgid "Number of minutes after which the bad logon attempts are reset." +msgstr "" +"Время (в минутах), после которого сбрасывается счетчик попыток неудачного " +"входа." + +#: ../lib/modules/customFields.inc:119 +msgid "Number of rows in text area." +msgstr "Число рядов в области ввода." + +#: ../lib/modules/ppolicy.inc:78 ../lib/modules/sambaDomain.inc:119 +msgid "" +"Number of seconds after the user is allowed to change his password again." +msgstr "Кол-во секунд, после чего пользователю позволено сменить пароль снова." + +#: ../lib/modules/ppolicy.inc:82 ../lib/modules/sambaDomain.inc:123 +msgid "Number of seconds after which the user must change his password." +msgstr "" +"Кол-во секунд, по прошествии которых пользователь должен изменить свой " +"пароль." + +#: ../templates/schema/schema.php:147 ../templates/schema/schema.php:344 +msgid "OID" +msgstr "OID" + +#: ../templates/ou_edit.php:83 +msgid "OU already exists!" +msgstr "OU уже существует!" + +#: ../templates/ou_edit.php:94 +msgid "OU deleted successfully." +msgstr "OU успешно удален." + +#: ../templates/ou_edit.php:152 ../lib/tools/ouEditor.inc:44 +msgid "OU editor" +msgstr "OU редактор" + +#: ../templates/ou_edit.php:87 +msgid "OU is invalid!" +msgstr "OU неправильный!" + +#: ../templates/ou_edit.php:131 +msgid "OU is not empty or invalid!" +msgstr "OU не пуст или неправильный!" + +#: ../help/help.inc:235 ../help/help.inc:237 +msgid "OU-Editor" +msgstr "OU-Редактор" + +#: ../templates/schema/schema.php:65 ../templates/schema/schema.php:66 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1324 +#: ../lib/modules/selfRegistration.inc:64 +#: ../lib/modules/selfRegistration.inc:113 ../lib/modules/customFields.inc:70 +#: ../lib/modules/customFields.inc:496 +msgid "Object classes" +msgstr "Классы объектов" + +#: ../lib/lists.inc:112 +#, php-format +msgid "Object count: %s" +msgstr "Количество объектов: %s" + +#: ../templates/schema/schema.php:152 ../templates/schema/schema.php:283 +msgid "Obsolete" +msgstr "Устаревший" + +#: ../lib/modules/sambaDomain.inc:282 ../lib/modules/sambaDomain.inc:291 +#: ../lib/modules/sambaDomain.inc:300 ../lib/modules/sambaDomain.inc:653 +#: ../lib/modules/sambaDomain.inc:658 ../lib/modules/sambaDomain.inc:663 +msgid "Off" +msgstr "Выключено" + +#: ../lib/modules/windowsUser.inc:131 ../lib/modules/windowsUser.inc:288 +#: ../lib/modules/windowsUser.inc:389 ../lib/modules/windowsUser.inc:411 +#: ../lib/modules/windowsUser.inc:532 ../lib/modules/windowsUser.inc:1224 +#: ../lib/modules/windowsUser.inc:1332 ../lib/modules/inetOrgPerson.inc:145 +#: ../lib/modules/inetOrgPerson.inc:182 ../lib/modules/inetOrgPerson.inc:324 +#: ../lib/modules/inetOrgPerson.inc:600 ../lib/modules/inetOrgPerson.inc:635 +#: ../lib/modules/inetOrgPerson.inc:860 ../lib/modules/inetOrgPerson.inc:864 +#: ../lib/modules/inetOrgPerson.inc:1673 ../lib/modules/inetOrgPerson.inc:2379 +#: ../lib/modules/inetOrgPerson.inc:3112 +msgid "Office name" +msgstr "Имя офиса" + +#: ../templates/lists/changePassword.php:312 +#: ../templates/lists/changePassword.php:341 +#: ../templates/lists/changePassword.php:382 +#: ../templates/lists/changePassword.php:413 +#: ../templates/tests/lamdaemonTest.php:92 ../templates/ou_edit.php:191 +#: ../templates/ou_edit.php:205 ../templates/masscreate.php:206 +#: ../templates/config/profmanage.php:253 +#: ../templates/config/profmanage.php:265 +#: ../templates/config/profmanage.php:274 +#: ../templates/config/profmanage.php:291 +#: ../templates/config/profmanage.php:300 +#: ../templates/config/profmanage.php:302 +#: ../templates/config/mainmanage.php:388 +#: ../templates/config/conflogin.php:172 ../templates/config/mainlogin.php:165 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminLogin.php:165 +#: ../templates/selfService/adminMain.php:545 +#: ../templates/selfService/adminMain.php:598 +#: ../templates/pdfedit/pdfmain.php:195 ../templates/pdfedit/pdfmain.php:202 +#: ../templates/pdfedit/pdfmain.php:208 +#: ../templates/profedit/profilemain.php:197 +#: ../templates/profedit/profilemain.php:203 +#: ../templates/profedit/profilemain.php:209 +#: ../lib/types/automountType.inc:234 ../lib/types/user.inc:304 +#: ../lib/modules/selfRegistration.inc:384 +#: ../lib/modules/zarafaContact.inc:422 ../lib/modules/zarafaGroup.inc:491 +#: ../lib/modules/device.inc:306 ../lib/modules/sambaSamAccount.inc:1406 +#: ../lib/modules/sambaSamAccount.inc:1541 ../lib/modules/zarafaUser.inc:949 +#: ../lib/modules/zarafaUser.inc:1000 ../lib/modules/sambaGroupMapping.inc:495 +#: ../lib/modules/nisnetgroup.inc:472 ../lib/modules/nisnetgroup.inc:482 +#: ../lib/modules/asteriskExtension.inc:477 ../lib/modules/aliasEntry.inc:139 +#: ../lib/modules/aliasEntry.inc:159 ../lib/modules/qmailGroup.inc:855 +#: ../lib/modules/imapAccess.inc:275 ../lib/modules/passwordSelfReset.inc:741 +#: ../lib/modules/passwordSelfReset.inc:960 +#: ../lib/modules/windowsGroup.inc:557 ../lib/modules/groupOfNames.inc:385 +#: ../lib/modules/groupOfNames.inc:520 ../lib/modules/nisMailAlias.inc:275 +#: ../lib/modules/nisMailAlias.inc:283 ../lib/lists.inc:703 +#: ../lib/lists.inc:785 ../lib/modules.inc:1199 +msgid "Ok" +msgstr "Ok" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:98 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +msgid "Old value" +msgstr "Старое значение" + +#: ../lib/modules/sambaDomain.inc:282 ../lib/modules/sambaDomain.inc:291 +#: ../lib/modules/sambaDomain.inc:300 ../lib/modules/sambaDomain.inc:654 +#: ../lib/modules/sambaDomain.inc:659 ../lib/modules/sambaDomain.inc:664 +msgid "On" +msgstr "Включено" + +#: ../lib/modules/sambaSamAccount.inc:236 +#: ../lib/modules/sambaSamAccount.inc:374 +#: ../lib/modules/sambaSamAccount.inc:1527 +#: ../lib/modules/sambaSamAccount.inc:1937 +msgid "On broken or timed out connection" +msgstr "В случае разрыва или тайм-аута соединения" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:139 +#: ../templates/3rdParty/pla/htdocs/export_form.php:32 +msgid "One (one level beneath base)" +msgstr "Один (один уровень ниже)" + +#: ../lib/modules/range.inc:107 ../lib/modules/fixed_ip.inc:113 +msgid "One or more errors occured. The invalid fields are marked." +msgstr "Одна или несколько ошибок. Неправильные поля выделены." + +#: ../templates/3rdParty/pla/htdocs/copy.php:98 +#: ../templates/3rdParty/pla/htdocs/copy.php:155 +#, php-format +msgid "Operation not successful. DN %s has not been created." +msgstr "Операция неуспешна. DN %s не было создано." + +#: ../templates/serverInfo.php:277 ../templates/serverInfo.php:367 +msgid "Operation statistics" +msgstr "Статистика операции" + +#: ../templates/3rdParty/pla/htdocs/copy.php:95 +#: ../templates/3rdParty/pla/htdocs/copy.php:153 +#, php-format +msgid "Operation successful. DN %s has been created." +msgstr "Операция успешна. DN %s было создано." + +#: ../templates/schema/schema.php:384 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1575 +msgid "Optional attributes" +msgstr "Дополнительные атрибуты" + +#: ../lib/types/sudo.inc:83 ../lib/modules/mitKerberos.inc:409 +#: ../lib/modules/zarafaDynamicGroup.inc:260 +#: ../lib/modules/zarafaContact.inc:230 ../lib/modules/zarafaGroup.inc:274 +#: ../lib/modules/posixAccount.inc:238 ../lib/modules/zarafaUser.inc:603 +#: ../lib/modules/windowsUser.inc:542 ../lib/modules/kolabUser.inc:347 +#: ../lib/modules/sudoRole.inc:83 ../lib/modules/sudoRole.inc:112 +#: ../lib/modules/sudoRole.inc:164 ../lib/modules/sudoRole.inc:178 +#: ../lib/modules/sudoRole.inc:187 ../lib/modules/sudoRole.inc:399 +#: ../lib/modules/sudoRole.inc:689 ../lib/modules/asteriskExtension.inc:115 +#: ../lib/modules/asteriskVoicemail.inc:106 +#: ../lib/modules/asteriskVoicemail.inc:116 +#: ../lib/modules/asteriskVoicemail.inc:133 +#: ../lib/modules/asteriskVoicemail.inc:181 +#: ../lib/modules/asteriskVoicemail.inc:273 +#: ../lib/modules/asteriskVoicemail.inc:394 ../lib/modules/qmailGroup.inc:604 +#: ../lib/modules/heimdalKerberos.inc:336 +msgid "Options" +msgstr "Опции" + +#: ../lib/modules/asteriskVoicemail.inc:107 +msgid "Options for Asterisk voicemail account (e.g. sendvoicemail=yes)." +msgstr "" +"Опции для аккаунта голосовой почты Asterisk ( например sendvoicemail=yes)." + +#: ../lib/modules/selfRegistration.inc:121 +msgid "Options four and five are used for input validation." +msgstr "Опции четыре и пять используются для проверки пользовательского ввода." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:39 +msgid "Or paste your LDIF here" +msgstr "Или скопируйте LDIF сюда." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:166 +msgid "Order by" +msgstr "Заказано" + +#: ../templates/schema/schema.php:171 +msgid "Ordering" +msgstr "Заказ" + +#: ../lib/modules/eduPerson.inc:119 ../lib/modules/eduPerson.inc:193 +#: ../lib/modules/eduPerson.inc:220 ../lib/modules/eduPerson.inc:238 +#: ../lib/modules/eduPerson.inc:403 ../lib/modules/eduPerson.inc:772 +#: ../lib/modules/inetOrgPerson.inc:206 ../lib/modules/inetOrgPerson.inc:352 +#: ../lib/modules/inetOrgPerson.inc:568 ../lib/modules/inetOrgPerson.inc:677 +#: ../lib/modules/inetOrgPerson.inc:892 ../lib/modules/inetOrgPerson.inc:896 +#: ../lib/modules/inetOrgPerson.inc:2021 ../lib/modules/inetOrgPerson.inc:2384 +msgid "Organisation" +msgstr "Организация" + +#: ../lib/modules/inetOrgPerson.inc:203 ../lib/modules/inetOrgPerson.inc:350 +#: ../lib/modules/inetOrgPerson.inc:560 ../lib/modules/inetOrgPerson.inc:680 +#: ../lib/modules/inetOrgPerson.inc:884 ../lib/modules/inetOrgPerson.inc:888 +#: ../lib/modules/inetOrgPerson.inc:1991 ../lib/modules/inetOrgPerson.inc:2383 +msgid "Organisational unit" +msgstr "Организационная единица" + +#: ../lib/modules/eduPerson.inc:127 ../lib/modules/eduPerson.inc:131 +#: ../lib/modules/eduPerson.inc:205 ../lib/modules/eduPerson.inc:221 +#: ../lib/modules/eduPerson.inc:422 ../lib/modules/eduPerson.inc:774 +msgid "Organisational units" +msgstr "Организационные единицы" + +#: ../lib/modules/eduPerson.inc:242 +msgid "Organisational units contains an invalid entry." +msgstr "Организационные единицы содержат неправильную запись." + +#: ../templates/config/confmain.php:317 +msgid "Other" +msgstr "Другие" + +#: ../lib/modules/windowsUser.inc:123 ../lib/modules/windowsUser.inc:127 +#: ../lib/modules/windowsUser.inc:312 ../lib/modules/windowsUser.inc:388 +#: ../lib/modules/windowsUser.inc:453 ../lib/modules/windowsUser.inc:538 +#: ../lib/modules/windowsUser.inc:1223 +msgid "Other telephone numbers" +msgstr "Другие телефонные номера" + +#: ../lib/modules/windowsUser.inc:159 ../lib/modules/windowsUser.inc:163 +#: ../lib/modules/windowsUser.inc:324 ../lib/modules/windowsUser.inc:396 +#: ../lib/modules/windowsUser.inc:540 ../lib/modules/windowsUser.inc:1231 +msgid "Other web sites" +msgstr "Другие веб сайты" + +#: ../lib/modules/customScripts.inc:77 ../lib/modules/customScripts.inc:89 +#: ../lib/modules/customScripts.inc:98 +msgid "Output may contain HTML" +msgstr "Вывод может содержать HTML" + +#: ../lib/modules/customScripts.inc:230 ../lib/modules/customScripts.inc:520 +#, php-format +msgid "Output of command \"%s\" with return code %s" +msgstr "Вывод команды \"%s\" с кодом выхода %s" + +#: ../templates/serverInfo.php:168 +msgid "Overlays" +msgstr "Оверлеи" + +#: ../lib/modules/zarafaUser.inc:82 +msgid "Override default quota settings." +msgstr "Переопределить квоту по умолчанию." + +#: ../templates/config/confmain.php:309 ../lib/types/asteriskExt.inc:96 +#: ../lib/types/asteriskExt.inc:158 +msgid "Owner" +msgstr "Владелец" + +#: ../lib/types/gon.inc:94 ../lib/modules/device.inc:62 +#: ../lib/modules/device.inc:66 ../lib/modules/device.inc:96 +#: ../lib/modules/device.inc:121 ../lib/modules/device.inc:186 +#: ../lib/modules/device.inc:442 ../lib/modules/groupOfNames.inc:72 +#: ../lib/modules/groupOfNames.inc:76 ../lib/modules/groupOfNames.inc:118 +#: ../lib/modules/groupOfNames.inc:149 ../lib/modules/groupOfNames.inc:162 +#: ../lib/modules/groupOfNames.inc:213 ../lib/modules/groupOfNames.inc:628 +msgid "Owners" +msgstr "Владельцы" + +#: ../lib/modules/dhcp_settings.inc:97 +msgid "P-Node (0x02)" +msgstr "P-Node (0x02)" + +#: ../lib/modules/fixed_ip.inc:88 ../lib/modules/fixed_ip.inc:354 +#: ../lib/modules/fixed_ip.inc:559 +msgid "PC name" +msgstr "Имя компьютера" + +#: ../lib/modules/windowsHost.inc:89 +msgid "PC01" +msgstr "PC01" + +#: ../templates/pdfedit/pdfpage.php:445 ../templates/pdfedit/pdfmain.php:84 +#: ../lib/tools/pdfEdit.inc:44 +msgid "PDF editor" +msgstr "PDF редактор" + +#: ../templates/masscreate.php:269 ../templates/pdfedit/pdfmain.php:272 +#: ../lib/lists.inc:681 ../help/help.inc:184 +msgid "PDF structure" +msgstr "PDF структура" + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "PDF structure name not valid" +msgstr "Неправильное имя PDF структуры" + +#: ../templates/pdfedit/pdfmain.php:155 +msgid "PDF structure was successfully saved." +msgstr "PDF структура удачно сохранена." + +#: ../templates/pdfedit/pdfmain.php:239 +msgid "PDF structures" +msgstr "PDF структуры" + +#: ../templates/serverInfo.php:264 +msgid "PDUs sent" +msgstr "передано PDU " + +#: ../lib/modules/zarafaUser.inc:347 ../lib/modules/zarafaUser.inc:677 +#: ../lib/modules/zarafaUser.inc:1400 +msgid "POP3" +msgstr "POP3" + +#: ../templates/lists/changePassword.php:370 +#: ../templates/lists/changePassword.php:401 ../lib/types/user.inc:377 +#: ../lib/types/user.inc:409 +msgid "PPolicy" +msgstr "PPolicy" + +#: ../lib/modules/sambaSamAccount.inc:543 +msgid "Pacific Time (US & Canada)" +msgstr "Pacific Time (US & Canada)" + +#: ../lib/modules/dhcp_settings.inc:159 +msgid "" +"Packets are sent to the default gateway if the receiver does not reside in " +"the same network. The default gateway routes them to the target network." +msgstr "" +"Пакеты посылаются в шлюз по умолчанию, если получатель не в этой сети. Шлюз " +"перенаправляет их в нужную сеть." + +#: ../templates/selfService/adminMain.php:454 ../help/help.inc:214 +msgid "Page header" +msgstr "Заголовок страницы" + +#: ../templates/selfService/adminMain.php:397 +msgid "Page layout" +msgstr "Макет страницы" + +#: ../lib/modules/asteriskVoicemail.inc:102 +#: ../lib/modules/asteriskVoicemail.inc:132 +#: ../lib/modules/asteriskVoicemail.inc:175 +#: ../lib/modules/asteriskVoicemail.inc:267 +#: ../lib/modules/asteriskVoicemail.inc:392 +msgid "Pager" +msgstr "Пейджер" + +#: ../lib/modules/asteriskVoicemail.inc:103 +msgid "Pager number for Asterisk voicemail." +msgstr "Номер пейджера для голосовой почты Asterisk." + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:35 +msgid "Parent DN" +msgstr "Родительское DN" + +#: ../lib/modules/puppetClient.inc:81 ../lib/modules/puppetClient.inc:127 +#: ../lib/modules/puppetClient.inc:147 ../lib/modules/puppetClient.inc:258 +#: ../lib/modules/puppetClient.inc:424 ../lib/modules/puppetClient.inc:459 +msgid "Parent node" +msgstr "Родительский узел" + +#: ../lib/modules/puppetClient.inc:183 +msgid "Parent node not found." +msgstr "Родительский узел не найден." + +#: ../templates/schema/schema.php:366 +msgid "Parent to" +msgstr "Родитель к" + +#: ../templates/3rdParty/pla/htdocs/import.php:98 +msgid "Parse error" +msgstr "Ошибка парсинга" + +#: ../templates/lists/changePassword.php:328 ../templates/login.php:383 +#: ../templates/selfService/selfServiceLogin.php:275 +#: ../lib/selfService.inc:373 ../lib/modules/mitKerberos.inc:149 +#: ../lib/modules/mitKerberos.inc:235 ../lib/modules/mitKerberos.inc:250 +#: ../lib/modules/mitKerberos.inc:796 ../lib/modules/mitKerberos.inc:799 +#: ../lib/modules/selfRegistration.inc:349 +#: ../lib/modules/selfRegistration.inc:421 +#: ../lib/modules/selfRegistration.inc:424 +#: ../lib/modules/selfRegistration.inc:427 +#: ../lib/modules/asteriskAccount.inc:106 +#: ../lib/modules/asteriskAccount.inc:387 ../lib/modules/posixGroup.inc:203 +#: ../lib/modules/posixGroup.inc:569 ../lib/modules/sambaSamAccount.inc:105 +#: ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:243 +#: ../lib/modules/sambaSamAccount.inc:412 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/posixAccount.inc:110 ../lib/modules/posixAccount.inc:178 +#: ../lib/modules/posixAccount.inc:325 ../lib/modules/posixAccount.inc:411 +#: ../lib/modules/posixAccount.inc:511 ../lib/modules/posixAccount.inc:1398 +#: ../lib/modules/posixAccount.inc:1764 ../lib/modules/posixAccount.inc:1767 +#: ../lib/modules/windowsUser.inc:198 ../lib/modules/windowsUser.inc:222 +#: ../lib/modules/windowsUser.inc:405 ../lib/modules/windowsUser.inc:419 +#: ../lib/modules/windowsUser.inc:465 ../lib/modules/windowsUser.inc:466 +#: ../lib/modules/windowsUser.inc:1262 ../lib/modules/windowsUser.inc:1265 +#: ../lib/modules/inetOrgPerson.inc:908 ../lib/modules/inetOrgPerson.inc:2081 +#: ../lib/modules/inetOrgPerson.inc:2520 +#: ../lib/modules/asteriskVoicemail.inc:90 +#: ../lib/modules/asteriskVoicemail.inc:156 +#: ../lib/modules/customFields.inc:1928 ../lib/modules/heimdalKerberos.inc:117 +#: ../lib/modules/heimdalKerberos.inc:204 +#: ../lib/modules/heimdalKerberos.inc:216 +#: ../lib/modules/heimdalKerberos.inc:692 +#: ../lib/modules/heimdalKerberos.inc:695 ../lib/modules.inc:1040 +#: ../help/help.inc:182 +msgid "Password" +msgstr "Пароль" + +#: ../lib/modules/sambaSamAccount.inc:284 +#: ../lib/modules/sambaSamAccount.inc:1140 ../lib/modules/windowsUser.inc:189 +#: ../lib/modules/windowsUser.inc:354 ../lib/modules/windowsUser.inc:403 +#: ../lib/modules/windowsUser.inc:1252 +msgid "Password change at next login" +msgstr "Изменение пароля при следующем входе в систему" + +#: ../lib/modules/mitKerberos.inc:141 ../lib/modules/mitKerberos.inc:254 +#: ../lib/modules/heimdalKerberos.inc:111 +#: ../lib/modules/heimdalKerberos.inc:220 +msgid "Password change command" +msgstr "Команда для смены пароля" + +#: ../templates/lists/changePassword.php:281 +msgid "Password change options" +msgstr "Опции смены пароля" + +#: ../lib/modules/ppolicyUser.inc:52 ../lib/modules/ppolicyUser.inc:67 +#: ../lib/modules/ppolicyUser.inc:121 ../lib/modules/ppolicyUser.inc:254 +msgid "Password change required" +msgstr "Требуется смена пароля" + +#: ../lib/types/ppolicyType.inc:91 ../lib/modules/ppolicy.inc:129 +#: ../lib/modules/ppolicy.inc:149 ../lib/modules/ppolicy.inc:293 +#: ../lib/modules/ppolicy.inc:503 +msgid "Password change requires old password" +msgstr "Требуется старый пароль для смены пароля" + +#: ../lib/modules/mitKerberos.inc:182 ../lib/modules/mitKerberos.inc:468 +#: ../lib/modules/heimdalKerberos.inc:147 +#: ../lib/modules/heimdalKerberos.inc:390 +msgid "Password change service" +msgstr "Сервис смены пароля" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:30 +msgid "Password check" +msgstr "Проверка пароля" + +#: ../lib/modules/mitKerberos.inc:288 ../lib/modules/selfRegistration.inc:424 +#: ../lib/modules/posixGroup.inc:569 ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:107 ../lib/modules/posixAccount.inc:110 +#: ../lib/modules/posixAccount.inc:111 ../lib/modules/windowsUser.inc:466 +#: ../lib/modules/inetOrgPerson.inc:99 +msgid "Password contains invalid characters. Valid characters are:" +msgstr "Пароль содержит недопустимые символы. Допустимые: " + +#: ../lib/modules/sambaSamAccount.inc:269 +#: ../lib/modules/sambaSamAccount.inc:272 +#: ../lib/modules/sambaSamAccount.inc:434 +#: ../lib/modules/sambaSamAccount.inc:1130 +#: ../lib/modules/sambaSamAccount.inc:1712 ../lib/modules/windowsUser.inc:177 +#: ../lib/modules/windowsUser.inc:338 ../lib/modules/windowsUser.inc:399 +#: ../lib/modules/windowsUser.inc:566 ../lib/modules/windowsUser.inc:1242 +msgid "Password does not expire" +msgstr "Пароль не устаревает" + +#: ../lib/types/user.inc:103 ../lib/modules/shadowAccount.inc:61 +#: ../lib/modules/shadowAccount.inc:106 ../lib/modules/shadowAccount.inc:163 +#: ../lib/modules/shadowAccount.inc:174 ../lib/modules/shadowAccount.inc:208 +#: ../lib/modules/shadowAccount.inc:315 ../lib/modules/shadowAccount.inc:493 +msgid "Password expiration" +msgstr "Истечение срока действия пароля" + +#: ../lib/modules/shadowAccount.inc:61 ../lib/modules/shadowAccount.inc:62 +msgid "Password expiration must be are natural number or -1." +msgstr "Истечение срока действия пароля должно быть целым числом или -1." + +#: ../lib/modules/asteriskVoicemail.inc:91 +msgid "Password for voicemail mailbox." +msgstr "Пароль для ящика голосовой почты." + +#: ../lib/modules/posixGroup.inc:479 ../lib/modules/posixGroup.inc:528 +#: ../lib/modules/posixAccount.inc:184 ../lib/modules/posixAccount.inc:240 +#: ../lib/modules/posixAccount.inc:450 ../lib/modules/inetOrgPerson.inc:299 +#: ../lib/modules/inetOrgPerson.inc:880 ../lib/modules/customFields.inc:122 +#: ../lib/modules/customFields.inc:1942 +msgid "Password hash type" +msgstr "Тип хэша пароля" + +#: ../lib/types/ppolicyType.inc:80 ../lib/modules/ppolicy.inc:85 +#: ../lib/modules/ppolicy.inc:138 ../lib/modules/ppolicy.inc:162 +#: ../lib/modules/ppolicy.inc:223 ../lib/modules/ppolicy.inc:467 +#: ../lib/modules/sambaDomain.inc:98 ../lib/modules/sambaDomain.inc:184 +#: ../lib/modules/sambaDomain.inc:276 ../lib/modules/sambaDomain.inc:645 +msgid "Password history length" +msgstr "Длина истории пароля" + +#: ../templates/config/confmain.php:350 +msgid "Password mail settings" +msgstr "Настройки писем с паролями" + +#: ../lib/modules/shadowAccount.inc:59 ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/ppolicy.inc:160 ../lib/modules/sambaDomain.inc:215 +msgid "Password maximum age must be are natural number." +msgstr "Максимальный срок жизни пароля должен быть целым числом." + +#: ../lib/modules/shadowAccount.inc:66 +msgid "Password maximum age must be bigger as password minimum age." +msgstr "Максимальный срок жизни пароля должен быть больше минимального срока." + +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/ppolicy.inc:161 +#: ../lib/modules/sambaDomain.inc:213 +msgid "Password maximum age must be bigger than password minimum age." +msgstr "Максимальный срок жизни пароля должен быть больше минимального срока." + +#: ../lib/modules/shadowAccount.inc:57 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/ppolicy.inc:159 ../lib/modules/sambaDomain.inc:214 +msgid "Password minimum age must be are natural number." +msgstr "Минимальный срок жизни пароля должен быть целым числом." + +#: ../lib/modules/imapAccess.inc:85 ../lib/modules/imapAccess.inc:270 +msgid "Password of IMAP admin user" +msgstr "Пароль администратора IMAP" + +#: ../lib/types/ppolicyType.inc:39 +msgid "Password policies" +msgstr "Политика паролей" + +#: ../lib/types/ppolicyType.inc:48 +msgid "Password policies (ppolicy)" +msgstr "Политика паролей (ppolicy)" + +#: ../templates/config/mainmanage.php:336 ../lib/types/user.inc:284 +#: ../lib/types/user.inc:837 ../lib/modules/ppolicyUser.inc:38 +#: ../lib/modules/ppolicyUser.inc:48 ../lib/modules/ppolicyUser.inc:60 +#: ../lib/modules/ppolicyUser.inc:76 ../lib/modules/ppolicyUser.inc:112 +#: ../lib/modules/ppolicyUser.inc:249 ../lib/modules/ppolicyUser.inc:282 +#: ../lib/modules/ppolicy.inc:55 ../lib/modules/sambaDomain.inc:259 +#: ../help/help.inc:150 +msgid "Password policy" +msgstr "Политика паролей" + +#: ../lib/types/ppolicyType.inc:81 ../lib/modules/ppolicy.inc:89 +#: ../lib/modules/ppolicy.inc:139 ../lib/modules/ppolicy.inc:235 +#: ../lib/modules/ppolicy.inc:483 +msgid "Password quality check" +msgstr "Проверка качества пароля" + +#: ../lib/modules/passwordSelfReset.inc:246 +msgid "Password reset confirmation" +msgstr "Потверждение сброса пароля" + +#: ../lib/modules/passwordSelfReset.inc:230 +msgid "Password reset notification" +msgstr "Уведомление о сбросе пароля" + +#: ../lib/modules/passwordSelfReset.inc:59 +#: ../lib/modules/passwordSelfReset.inc:744 +#: ../lib/modules/passwordSelfReset.inc:963 +msgid "Password self reset" +msgstr "Самостоятельный сброс пароля" + +#: ../lib/modules/passwordSelfReset.inc:1468 +msgid "Password successfully reset." +msgstr "Пароль сброшен успешно." + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:101 +#: ../lib/modules/shadowAccount.inc:161 ../lib/modules/shadowAccount.inc:170 +#: ../lib/modules/shadowAccount.inc:202 ../lib/modules/shadowAccount.inc:307 +#: ../lib/modules/shadowAccount.inc:492 +msgid "Password warning" +msgstr "Предупреждение об устаревании пароля" + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:64 +msgid "Password warning must be are natural number." +msgstr "Предупреждение об устаревании пароля должно быть целым числом." + +#: ../templates/config/confmain.php:580 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:61 +#: ../lib/modules/passwordSelfReset.inc:1038 ../lib/modules.inc:1116 +msgid "Passwords are different!" +msgstr "Пароли не совпадают!" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:59 +msgid "Passwords match." +msgstr "Пароли совпадают." + +#: ../lib/types/nisObjectType.inc:77 +msgid "Path" +msgstr "Путь" + +#: ../lib/modules/windowsUser.inc:184 +msgid "" +"Path of the user profile (UNC-path, e.g. \\\\server\\share\\user). $user is " +"replaced with user name." +msgstr "" +"Путь к профилю пользователя (UNC-путь, например \\\\server\\share\\user). " +"Вместо $user будет подставлено имя пользователя." + +#: ../lib/modules/sambaSamAccount.inc:348 +msgid "Path of the user profile." +msgstr "Путь до профиля пользователя." + +#: ../lib/modules/sambaSamAccount.inc:299 +msgid "" +"Path of the user profile. Can be a local absolute path or a UNC-path (\\" +"\\server\\share). $user and $group are replaced with user and group name." +msgstr "" +"Путь к профилю пользователя. Должен быть задан локально - абсолютный путь " +"или UNC-путь (\\\\server\\share). В качестве $user и $group будут " +"подставлены имена пользователя и группы." + +#: ../lib/modules/imapAccess.inc:103 ../lib/modules/imapAccess.inc:127 +msgid "Path separator" +msgstr "Разделитель пути" + +#: ../templates/config/confmain.php:300 +msgid "Path to external script" +msgstr "Путь к внешнему скрипту" + +#: ../lib/modules/ddns.inc:86 ../lib/modules/ddns.inc:364 +msgid "Path to key for DNS updates" +msgstr "Путь до ключа для DNS обновлений" + +#: ../lib/modules/qmailGroup.inc:133 +msgid "" +"Path to the maildir/mbox on the mail system for sender confirmation and " +"moderation." +msgstr "" +"Путь к maildir/mbox на почтовой системе для подтверждения и модерации " +"отправителя." + +#: ../lib/modules/qmailUser.inc:241 +msgid "Path to the maildir/mbox on the mail system." +msgstr "Путь к maildir/mbox на почтовой системе." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:41 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:64 +msgid "Permanently delete all children also?" +msgstr "Также окончательно удалить всех потомков?" + +#: ../lib/modules/asteriskAccount.inc:162 +#: ../lib/modules/asteriskAccount.inc:271 +#: ../lib/modules/asteriskAccount.inc:343 +#: ../lib/modules/asteriskAccount.inc:484 +#: ../lib/modules/asteriskAccount.inc:803 +#: ../lib/modules/asteriskAccount.inc:1203 +msgid "Permit" +msgstr "Разрешить" + +#: ../lib/modules/inetOrgPerson.inc:117 +msgid "Personal" +msgstr "Personal" + +#: ../lib/selfService.inc:369 +msgid "Personal data" +msgstr "Персональные данные" + +#: ../lib/types/user.inc:102 ../lib/types/user.inc:620 +#: ../lib/modules/inetOrgPerson.inc:143 ../lib/modules/inetOrgPerson.inc:3141 +#: ../lib/modules/inetOrgPerson.inc:3148 +msgid "Photo" +msgstr "Фото" + +#: ../lib/modules/inetOrgPerson.inc:2142 +msgid "Photo file (JPG format)" +msgstr "Фото файл (в формате JPG)" + +#: ../lib/modules/asteriskAccount.inc:166 +#: ../lib/modules/asteriskAccount.inc:273 +#: ../lib/modules/asteriskAccount.inc:344 +#: ../lib/modules/asteriskAccount.inc:491 +#: ../lib/modules/asteriskAccount.inc:812 +#: ../lib/modules/asteriskAccount.inc:1204 +msgid "Pickup group" +msgstr "Группа перехвата вызова" + +#: ../lib/modules/ldapPublicKey.inc:70 +msgid "Please a comma separated list of your public SSH keys." +msgstr "Пожалуйста, список Ваших публичных SSH ключей (разделенных запятыми)." + +#: ../lib/modules/customScripts.inc:78 +msgid "" +"Please activate this option if your scripts may generate HTML output. " +"Otherwise, the output is treated as plain text." +msgstr "" +"Пожалуйста, активируйте эту опцию, если ваши скрипты могут отдавать HTML на " +"выходе. Иначе, вывод будет рассматриваться как текстовый." + +#: ../lib/modules/asteriskExtension.inc:186 +msgid "Please add at least one extension owner." +msgstr "Пожалуйста добавьте хотя бы одного владельца расширений." + +#: ../lib/modules/qmailGroup.inc:324 +msgid "Please check if this email should be sent." +msgstr "Пожалуйста проверьте, должно ли быть послано это письмо." + +#: ../lib/modules/sambaSamAccount.inc:1078 +msgid "Please check your settings on the Unix page!" +msgstr "Проверьте свои настройки на UNIX странице!" + +#: ../lib/modules/imapAccess.inc:95 +msgid "" +"Please choose the attribute to get the IMAP user name. The default is \"mail" +"\" but you can also use \"uid\"." +msgstr "" +"Пожалуйста, выберите атрибут для получения имени пользователя IMAP. По " +"умолчанию используется \"mail\", но вы так же можете использовать \"uid\"." + +#: ../lib/types/user.inc:298 +msgid "Please click to lock/unlock this account." +msgstr "Пожалуйста, щелкните для блокировки/разблокировки этого аккаунта." + +#: ../lib/modules/sambaSamAccount.inc:108 +msgid "Please enter a RID number or the name of a special account!" +msgstr "Пожалуйста, введите RID или имя специальной учетной записи!" + +#: ../lib/modules/asteriskAccount.inc:617 +msgid "Please enter a caller ID." +msgstr "Пожалуйста, укажите caller ID." + +#: ../lib/modules/imapAccess.inc:92 +msgid "" +"Please enter a comma separated list of domain names (e.g. \"company.com," +"example.com\"). LAM will only manage mailboxes from these domains." +msgstr "" +"Пожалуйста, введите список доменов, разделенных запятыми (например \"company." +"com,example.com\"). LAM будет управлять почтовыми ящиками только из этих " +"доменов." + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +msgid "Please enter a comma separated list of host names!" +msgstr "Пожалуйста, введите список хостов (разделенный запятыми) !" + +#: ../lib/modules/asteriskExtension.inc:178 +msgid "Please enter a common name." +msgstr "Пожалуйста, укажите CN." + +#: ../lib/modules/imapAccess.inc:159 +msgid "Please enter a correct list of valid mail domains." +msgstr "Пожалуйста, укажите корректный список реальных почтовых доменов." + +#: ../lib/modules/customFields.inc:79 +msgid "Please enter a descriptive label for this field." +msgstr "Пожалуйста, укажите описание для этого поля." + +#: ../lib/modules/nisObject.inc:55 ../lib/modules/automount.inc:58 +#: ../lib/modules/sudoRole.inc:56 +msgid "Please enter a descriptive name for this entry." +msgstr "Пожалуйста, укажите описательное название для этой записи." + +#: ../lib/modules/windowsGroup.inc:111 +msgid "Please enter a descriptive text for this group." +msgstr "Пожалуйста, укажите описание для этой группы." + +#: ../lib/modules/windowsHost.inc:72 +msgid "Please enter a descriptive text for this host." +msgstr "Пожалуйста, укажите описание для этого хоста." + +#: ../lib/modules/windowsUser.inc:100 +msgid "Please enter a descriptive text for this user." +msgstr "Пожалуйста, укажите описание для этого пользователя." + +#: ../lib/modules/groupOfNames.inc:174 +msgid "Please enter a group name!" +msgstr "Пожалуйста, введите имя группы!" + +#: ../lib/modules/selfRegistration.inc:149 +msgid "Please enter a list of object classes for the new accounts." +msgstr "Пожалуйста, укажите список классов объектов для новых аккаунтов." + +#: ../lib/modules/asteriskVoicemail.inc:200 +msgid "Please enter a mailbox." +msgstr "Пожалуйста, укажите почтовый ящик." + +#: ../lib/modules/device.inc:55 +msgid "Please enter a name for this device." +msgstr "Пожалуйста, укажите имя для этого устройства." + +#: ../lib/modules/ppolicy.inc:158 +msgid "Please enter a name for this policy." +msgstr "Пожалуйста, укажите имя для этой политики." + +#: ../lib/modules/customFields.inc:2110 +msgid "Please enter a natural number for column count." +msgstr "Пожалуйста, укажите натуральное число для количества колонок." + +#: ../lib/modules/customFields.inc:2120 +msgid "Please enter a natural number for row count." +msgstr "Пожалуйста, укажите натуральное число для количества рядов." + +#: ../lib/modules/qmailUser.inc:458 ../lib/modules/qmailUser.inc:460 +msgid "Please enter a number for GID number." +msgstr "Пожалуйста, укажите число для GID." + +#: ../lib/modules/qmailUser.inc:455 ../lib/modules/qmailUser.inc:457 +msgid "Please enter a number for UID number." +msgstr "Пожалуйста, укажите число для UID." + +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:452 +msgid "Please enter a number for message count limit." +msgstr "Пожалуйста, укажите число для лимита количества сообщений." + +#: ../lib/modules/qmailUser.inc:453 ../lib/modules/qmailUser.inc:454 +msgid "Please enter a number for message size limit." +msgstr "Пожалуйста, укажите число для максимального размера сообщения." + +#: ../lib/modules/qmailUser.inc:449 ../lib/modules/qmailUser.inc:450 +msgid "Please enter a number for quota size." +msgstr "Пожалуйста, укажите число для квоты." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:51 +#: ../templates/lib/141_jquery-validationEngine-lang.php:55 +#: ../lib/modules/zarafaUser.inc:440 ../lib/modules/zarafaUser.inc:441 +#: ../lib/modules/zarafaUser.inc:442 ../lib/modules/zarafaUser.inc:443 +#: ../lib/modules/zarafaUser.inc:444 ../lib/modules/zarafaUser.inc:445 +#: ../lib/modules/zarafaUser.inc:447 ../lib/modules/zarafaUser.inc:448 +msgid "Please enter a number." +msgstr "Пожалуйста, укажите число." + +#: ../lib/modules/ppolicy.inc:167 +msgid "Please enter a numeric value for the expire warning." +msgstr "Пожалуйста, укажите число для предупреждения об окончании действия." + +#: ../lib/modules/ppolicy.inc:166 +msgid "Please enter a numeric value for the failure count interval." +msgstr "Пожалуйста, укажите числовое значение для интервала подсчета ошибок." + +#: ../lib/modules/ppolicy.inc:163 +msgid "Please enter a numeric value for the grace authentication limit." +msgstr "" +"Пожалуйста, укажите числовое значение для предела отсрочки для " +"аутентификации." + +#: ../lib/modules/freeRadius.inc:252 ../lib/modules/freeRadius.inc:253 +msgid "Please enter a numeric value for the idle timeout." +msgstr "Пожалуйста, укажите число для таймаута по бездействию." + +#: ../lib/modules/ppolicy.inc:164 +msgid "Please enter a numeric value for the lockout duration." +msgstr "Пожалуйста, укажите число для длительности блокировки." + +#: ../lib/modules/ppolicy.inc:165 +msgid "Please enter a numeric value for the maximum failure count." +msgstr "Пожалуйста, укажите число для максимального количества отказов." + +#: ../lib/modules/ppolicy.inc:168 +msgid "Please enter a numeric value for the minimum password length." +msgstr "Пожалуйста, укажите число для минимальной длины пароля." + +#: ../lib/modules/ppolicy.inc:162 +msgid "Please enter a numeric value for the password history length." +msgstr "Пожалуйста, укажите число для глубины истории паролей." + +#: ../lib/modules/sudoRole.inc:221 +msgid "Please enter a role name." +msgstr "Пожалуйста, укажите имя роли." + +#: ../lib/modules/passwordSelfReset.inc:1059 +msgid "Please enter a security answer." +msgstr "Пожалуйста, укажите ответ на секретный вопрос." + +#: ../lib/modules/selfRegistration.inc:147 +msgid "Please enter a subject for the confirmation mails." +msgstr "Пожалуйста, укажите тему письма для писем с подтверждением." + +#: ../lib/modules/selfRegistration.inc:148 +msgid "" +"Please enter a text for the confirmation mails that includes the creation " +"link." +msgstr "" +"Пожалуйста, укажите текст для писем с подтверждениями, который будет " +"включать ссылку на создание." + +#: ../lib/modules/customFields.inc:75 +msgid "Please enter a unique name for this field." +msgstr "Пожалуйста, укажите уникальное имя для этого поля." + +#: ../lib/modules/ppolicy.inc:74 +msgid "Please enter a unique name for this password policy." +msgstr "Пожалуйста, укажите уникальное имя для этой политики паролей." + +#: ../lib/modules/kolabUser.inc:238 ../lib/modules/kolabUser.inc:244 +msgid "Please enter a user password." +msgstr "Пожалуйста, укажите пароль пользователя." + +#: ../lib/modules/zarafaDynamicGroup.inc:191 ../lib/modules/eduPerson.inc:238 +#: ../lib/modules/eduPerson.inc:240 ../lib/modules/zarafaAddressList.inc:162 +msgid "Please enter a valid DN in the field:" +msgstr "Пожалуйста, введите правильный DN в строке:" + +#: ../lib/modules/customFields.inc:1105 ../lib/modules/customFields.inc:1507 +msgid "" +"Please enter a valid LDAP attribute name. Allowed characters are a-z, 0-9, _ " +"and -." +msgstr "" +"Пожалуйста, укажите корректное имя атрибута LDAP. Допустимыми символами " +"являются a-z, 0-9,_ и -." + +#: ../lib/modules/qmailUser.inc:447 +msgid "Please enter a valid account status." +msgstr "Пожалуйста, укажите корректный статус аккаунта." + +#: ../templates/config/confmain.php:524 +msgid "Please enter a valid bind user." +msgstr "" +"Пожалуйста, укажите корректного пользователя для связи с LDAP сервером." + +#: ../lib/modules/inetOrgPerson.inc:97 ../lib/modules/inetOrgPerson.inc:98 +msgid "Please enter a valid business category!" +msgstr "Пожалуйста, введите правильную бизнес-категорию!" + +#: ../lib/modules/posixAccount.inc:129 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/inetOrgPerson.inc:90 ../lib/modules/inetOrgPerson.inc:91 +msgid "Please enter a valid common name!" +msgstr "Пожалуйста, введите правильное основное имя!" + +#: ../lib/modules/qmailUser.inc:464 +msgid "Please enter a valid configuration type." +msgstr "Пожалуйста, укажите корректный тип конфигурации." + +#: ../lib/modules/mitKerberos.inc:282 ../lib/modules/mitKerberos.inc:283 +#: ../lib/modules/qmailUser.inc:463 ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/heimdalKerberos.inc:246 +#: ../lib/modules/heimdalKerberos.inc:247 +msgid "Please enter a valid date in format DD-MM-YYYY." +msgstr "Пожалуйста, введите правильную дату в формате DD-MM-YYYY." + +#: ../lib/modules/asteriskAccount.inc:638 +#: ../lib/modules/asteriskAccount.inc:639 +msgid "Please enter a valid default user." +msgstr "Пожалуйста, укажите корректного пользователя по умолчанию." + +#: ../lib/modules/qmailUser.inc:448 +msgid "Please enter a valid delivery mode." +msgstr "Пожалуйста, укажите корректный режим доставки." + +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:111 ../lib/modules/windowsUser.inc:445 +#: ../lib/modules/windowsUser.inc:446 +msgid "Please enter a valid display name!" +msgstr "Пожалуйста, введите правильное отображаемое имя!" + +#: ../lib/modules/sambaSamAccount.inc:117 +msgid "Please enter a valid drive letter." +msgstr "Пожалуйста, введите правильную букву диска." + +#: ../lib/modules/kolabGroup.inc:158 ../lib/modules/kolabGroup.inc:159 +#: ../lib/modules/selfRegistration.inc:417 +#: ../lib/modules/zarafaDynamicGroup.inc:193 +#: ../lib/modules/zarafaDynamicGroup.inc:194 ../lib/modules/qmailUser.inc:441 +#: ../lib/modules/qmailUser.inc:442 ../lib/modules/qmailUser.inc:443 +#: ../lib/modules/qmailUser.inc:444 ../lib/modules/qmailUser.inc:445 +#: ../lib/modules/qmailUser.inc:446 ../lib/modules/zarafaGroup.inc:209 +#: ../lib/modules/zarafaGroup.inc:210 ../lib/modules/windowsUser.inc:457 +#: ../lib/modules/windowsUser.inc:458 ../lib/modules/inetOrgPerson.inc:76 +#: ../lib/modules/inetOrgPerson.inc:77 ../lib/modules/qmailGroup.inc:413 +#: ../lib/modules/qmailGroup.inc:414 ../lib/modules/qmailGroup.inc:415 +#: ../lib/modules/qmailGroup.inc:416 ../lib/modules/qmailGroup.inc:418 +#: ../lib/modules/qmailGroup.inc:419 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:421 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:424 +#: ../lib/modules/qmailGroup.inc:425 ../lib/modules/passwordSelfReset.inc:767 +#: ../lib/modules/passwordSelfReset.inc:986 +#: ../lib/modules/windowsGroup.inc:259 ../lib/modules/windowsGroup.inc:260 +#: ../lib/modules.inc:1161 +msgid "Please enter a valid email address!" +msgstr "Пожалуйста, укажите корректный адрес электронной почты!" + +#: ../lib/modules/zarafaDynamicGroup.inc:195 +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaGroup.inc:211 ../lib/modules/zarafaGroup.inc:212 +msgid "Please enter a valid email alias." +msgstr "Пожалуйста, укажите корректный почтовый псевдоним." + +#: ../lib/modules/passwordSelfReset.inc:774 +#: ../lib/modules/passwordSelfReset.inc:993 +msgid "Please enter a valid employee number." +msgstr "Пожалуйста, укажите корректный номер работника." + +#: ../lib/modules/inetOrgPerson.inc:88 ../lib/modules/inetOrgPerson.inc:89 +msgid "Please enter a valid employee type!" +msgstr "Пожалуйста, введите правильную должность!" + +#: ../lib/modules/inetOrgPerson.inc:74 ../lib/modules/inetOrgPerson.inc:75 +msgid "Please enter a valid fax number!" +msgstr "Пожалуйста, введите правильный номер факса!" + +#: ../lib/modules/customFields.inc:157 +msgid "" +"Please enter a valid field name. Only letters, numbers, dash and underline " +"are allowed." +msgstr "" +"Пожалуйста, укажите корректное имя поля. Допустимы только буквы, цифры, " +"дефис и подчеркивание." + +#: ../lib/lists.inc:229 +msgid "" +"Please enter a valid filter. Only letters, numbers and \" _*$.@-\" are " +"allowed." +msgstr "" +"Пожалуйста, укажите корректный фильтр. Допустимы только буквы, числа и \" _*" +"$.@-\"." + +#: ../lib/modules/selfRegistration.inc:68 +#: ../lib/modules/selfRegistration.inc:125 +msgid "Please enter a valid first name." +msgstr "Пожалуйста, укажите корректное имя." + +#: ../lib/modules/asteriskAccount.inc:632 +#: ../lib/modules/asteriskAccount.inc:633 +msgid "Please enter a valid from domain." +msgstr "Пожалуйста, укажите корректный домен \"от\"." + +#: ../lib/modules/asteriskAccount.inc:630 +#: ../lib/modules/asteriskAccount.inc:631 +msgid "Please enter a valid from user." +msgstr "Пожалуйста, укажите корректного пользователя \"от\"." + +#: ../lib/modules/sambaSamAccount.inc:121 +msgid "Please enter a valid group name!" +msgstr "Пожалуйста, введите правильное имя группы!" + +#: ../lib/modules/windowsGroup.inc:263 +msgid "Please enter a valid group scope." +msgstr "Пожалуйста, укажите корректную область видимости группы." + +#: ../lib/modules/windowsGroup.inc:264 +msgid "Please enter a valid group type." +msgstr "Пожалуйста, укажите корректный тип группы." + +#: ../lib/modules/inetOrgPerson.inc:86 ../lib/modules/inetOrgPerson.inc:87 +msgid "Please enter a valid job title!" +msgstr "Пожалуйста, введите правильное название должности!" + +#: ../lib/modules/selfRegistration.inc:69 +#: ../lib/modules/selfRegistration.inc:126 +msgid "Please enter a valid last name." +msgstr "Пожалуйста, укажите корректную фамилию." + +#: ../lib/modules/eduPerson.inc:246 +msgid "Please enter a valid list of affiliations." +msgstr "Пожалуйста, введите правильный список affiliations." + +#: ../lib/modules/freeRadius.inc:248 ../lib/modules/freeRadius.inc:249 +msgid "Please enter a valid list of group names." +msgstr "Пожалуйста, укажите корректный список имен групп." + +#: ../lib/modules/hostObject.inc:104 +msgid "Please enter a valid list of host names." +msgstr "Пожалуйста, введите корректный список имен хостов." + +#: ../lib/modules/authorizedServiceObject.inc:123 +msgid "Please enter a valid list of service names." +msgstr "Пожалуйста, укажите корректный список имен сервисов." + +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:73 +msgid "Please enter a valid mobile number!" +msgstr "Пожалуйста, введите правильный номер мобильного телефона!" + +#: ../lib/modules/customFields.inc:160 +msgid "Please enter a valid object class." +msgstr "Пожалуйста, укажите корректный класс объекта." + +#: ../lib/modules/dhcp_settings.inc:324 +msgid "Please enter a valid option." +msgstr "Пожалуйста, укажите корректную опцию." + +#: ../lib/modules/zarafaServer.inc:170 ../lib/modules/zarafaServer.inc:171 +msgid "Please enter a valid path." +msgstr "Пожалуйста, укажите корректный путь." + +#: ../lib/modules/asteriskAccount.inc:634 +#: ../lib/modules/asteriskAccount.inc:635 ../lib/modules/zarafaServer.inc:166 +#: ../lib/modules/zarafaServer.inc:167 ../lib/modules/zarafaServer.inc:168 +#: ../lib/modules/zarafaServer.inc:169 +msgid "Please enter a valid port number." +msgstr "Пожалуйста, укажите корректный номер порта." + +#: ../lib/modules/inetOrgPerson.inc:80 ../lib/modules/inetOrgPerson.inc:81 +msgid "Please enter a valid postal address!" +msgstr "Пожалуйста, введите правильный почтовый адрес!" + +#: ../lib/modules/windowsUser.inc:455 ../lib/modules/windowsUser.inc:456 +#: ../lib/modules/inetOrgPerson.inc:84 ../lib/modules/inetOrgPerson.inc:85 +msgid "Please enter a valid postal code!" +msgstr "Пожалуйста, введите правильный почтовый индекс!" + +#: ../lib/modules/eduPerson.inc:244 +msgid "Please enter a valid primary affiliation." +msgstr "Пожалуйста, введите правильную основную принадлежность." + +#: ../lib/modules/freeRadius.inc:246 ../lib/modules/freeRadius.inc:247 +msgid "Please enter a valid realm." +msgstr "Пожалуйста, укажите правильную область." + +#: ../lib/modules/kolabGroup.inc:162 ../lib/modules/kolabGroup.inc:163 +#: ../lib/modules/kolabUser.inc:219 ../lib/modules/kolabUser.inc:220 +msgid "Please enter a valid recepient expression." +msgstr "Пожалуйста, укажите корректное выражения для получателя." + +#: ../lib/modules/inetOrgPerson.inc:82 ../lib/modules/inetOrgPerson.inc:83 +msgid "Please enter a valid registered address." +msgstr "Пожалуйста, укажите корректный зарегистрированный адрес." + +#: ../lib/modules/eduPerson.inc:245 +msgid "Please enter a valid scoped affiliation." +msgstr "Пожалуйста, введите правильный scoped affiliation." + +#: ../lib/modules/kolabGroup.inc:164 ../lib/modules/kolabGroup.inc:165 +#: ../lib/modules/kolabUser.inc:221 ../lib/modules/kolabUser.inc:222 +msgid "Please enter a valid sender expression." +msgstr "Пожалуйста, укажите корректное выражение для отправителя." + +#: ../lib/modules/qmailUser.inc:461 ../lib/modules/qmailUser.inc:462 +#: ../lib/modules/imapAccess.inc:158 +msgid "Please enter a valid server name where the mailboxes reside." +msgstr "" +"Пожалуйста, укажите корректное имя сервера, где находятся почтовые ящики." + +#: ../lib/modules/inetOrgPerson.inc:78 ../lib/modules/inetOrgPerson.inc:79 +msgid "Please enter a valid street name!" +msgstr "Пожалуйста, введите правильное название улицы!" + +#: ../lib/modules/windowsUser.inc:451 ../lib/modules/windowsUser.inc:452 +#: ../lib/modules/windowsUser.inc:453 ../lib/modules/windowsUser.inc:454 +#: ../lib/modules/inetOrgPerson.inc:68 ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:71 +msgid "Please enter a valid telephone number!" +msgstr "Пожалуйста, введите правильный номер телефона!" + +#: ../lib/modules/passwordSelfReset.inc:788 +#: ../lib/modules/passwordSelfReset.inc:1007 +msgid "Please enter a valid user name or email address." +msgstr "" +"Пожалуйста, укажите корректное имя пользователя или адрес электронной почты." + +#: ../lib/modules/posixGroup.inc:695 ../lib/modules/posixAccount.inc:1078 +#: ../lib/modules/posixAccount.inc:1083 +#, php-format +msgid "Please enter a value between %s and %s!" +msgstr "Пожалуйста, введите значение между %s и %s !" + +#: ../lib/modules/customFields.inc:2267 +msgid "Please enter a value for status \"checked\"." +msgstr "Пожалуйста, укажите значение для статуса \"отмечено\"." + +#: ../lib/modules/customFields.inc:2274 +msgid "Please enter a value for status \"unchecked\"." +msgstr "Пожалуйста, укажите значение для статуса \"не отмечено\"." + +#: ../lib/modules/customFields.inc:67 +msgid "Please enter an alias for this group." +msgstr "Пожалуйста, укажите псевдоним для этой группы." + +#: ../lib/modules/customFields.inc:159 +msgid "Please enter an alias name." +msgstr "Пожалуйста, укажите имя псевдонима." + +#: ../lib/modules/kolabUser.inc:250 ../lib/modules/imapAccess.inc:188 +#, php-format +msgid "Please enter an email address on this page: %s" +msgstr "Пожалуйста, введите электронный почтовый адрес на этой странице: %s" + +#: ../lib/modules/windowsUser.inc:1022 ../lib/modules/windowsUser.inc:1031 +#: ../lib/modules/windowsUser.inc:1040 ../lib/modules/windowsUser.inc:1051 +msgid "Please enter either yes or no." +msgstr "Пожалуйста, введите \"да\" или \"нет\"." + +#: ../lib/modules/sudoRole.inc:227 ../lib/modules/sudoRole.inc:228 +msgid "Please enter only ASCII characters for the commands." +msgstr "Пожалуйста, используйте только символы ASCII для команд." + +#: ../lib/modules/sudoRole.inc:225 ../lib/modules/sudoRole.inc:226 +msgid "Please enter only ASCII characters for the host names." +msgstr "Пожалуйста, используйте только символы ASCII для имен хостов." + +#: ../lib/modules/sudoRole.inc:233 ../lib/modules/sudoRole.inc:234 +msgid "Please enter only ASCII characters for the options." +msgstr "Пожалуйста, используйте только символы ASCII для опций." + +#: ../lib/modules/sudoRole.inc:231 ../lib/modules/sudoRole.inc:232 +msgid "Please enter only ASCII characters for the run groups." +msgstr "Пожалуйста, используйте только символы ASCII для групп запуска." + +#: ../lib/modules/sudoRole.inc:229 ../lib/modules/sudoRole.inc:230 +msgid "Please enter only ASCII characters for the run users." +msgstr "" +"Пожалуйста, используйте только символы ASCII для пользователей запуска." + +#: ../lib/modules/device.inc:133 ../lib/modules/device.inc:134 +msgid "Please enter only ASCII characters for the serial number." +msgstr "Пожалуйста, используйте только символы ASCII для серийного номера." + +#: ../lib/modules/sudoRole.inc:223 ../lib/modules/sudoRole.inc:224 +msgid "Please enter only ASCII characters for the user names." +msgstr "Пожалуйста, используйте только символы ASCII для имен пользователей." + +#: ../lib/modules/passwordSelfReset.inc:274 +msgid "" +"Please enter the DN and password of the administrative password self reset " +"account." +msgstr "" +"Пожалуйста, укажите DN и пароль административного аккаунта для " +"самостоятельного сброса пароля." + +#: ../lib/modules/selfRegistration.inc:146 +msgid "" +"Please enter the DN and password of the administrative self registration " +"account." +msgstr "" +"Пожалуйста, укажите DN и пароль административного аккаунта для " +"самостоятельной регистрации." + +#: ../lib/modules/posixGroup.inc:500 ../lib/modules/posixAccount.inc:491 +msgid "" +"Please enter the DN of the LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "" +"Пожалуйста, укажите DN записи LDAP с классом объекта \"sambaUnixIdPool\"." + +#: ../lib/modules/ddns.inc:92 +msgid "Please enter the IP address of your DNS server." +msgstr "Пожалуйста, введите IP адрес вашего DNS." + +#: ../lib/modules/selfRegistration.inc:101 +msgid "Please enter the LDAP DN that should be used to create new users." +msgstr "" +"Пожалуйста, укажите LDAP DN, которое должно быть использовано для создания " +"новых пользователей." + +#: ../lib/modules/passwordSelfReset.inc:94 +msgid "Please enter the LDAP DN that should be used to reset passwords." +msgstr "" +"Пожалуйста, укажите LDAP DN, которое должно быть использовано для сброса " +"паролей." + +#: ../lib/modules/customFields.inc:83 +msgid "Please enter the LDAP attribute name for this field." +msgstr "Пожалуйста, укажите имя атрибута LDAP для этого поля." + +#: ../help/help.inc:119 +msgid "" +"Please enter the LDAP suffix where LAM should start to search for users. The " +"LDAP filter needs to match the given user name to exactly one DN. The value " +"\"%USER%\" will be replaced by the user name from the login page." +msgstr "" +"Введите LDAP суффикс, где LAM должен искать пользователей. В результате " +"применения фильтра LDAP данному имени пользователя должно соответствовать " +"точно одно DN. Значение \"%USER % \" будет заменено именем пользователя со " +"страницы входа в систему." + +#: ../lib/modules/asteriskExtension.inc:181 +#: ../lib/modules/asteriskVoicemail.inc:204 +msgid "Please enter the account context." +msgstr "Пожалуйста, укажите контекст аккаунта." + +#: ../lib/modules.inc:925 +msgid "Please enter the account information on the other pages first." +msgstr "Пожалуйста, введите информацию об аккаунте сперва на других страницах." + +#: ../lib/modules/asteriskAccount.inc:627 +msgid "Please enter the account type." +msgstr "Пожалуйста, укажите тип аккаунта." + +#: ../lib/modules/asteriskAccount.inc:111 +msgid "Please enter the account's type (e.g. \"friend\")." +msgstr "Пожалуйста, укажите тип аккаунта (например \"друг\")." + +#: ../lib/modules/asteriskExtension.inc:180 +msgid "Please enter the application data." +msgstr "Пожалуйста, укажите данные приложения." + +#: ../lib/modules/asteriskExtension.inc:179 +msgid "Please enter the application." +msgstr "Пожалуйста, укажите приложение." + +#: ../lib/modules/automount.inc:62 +msgid "" +"Please enter the automount entry (e.g. \"-fstype=nfs,rw server:/home\")." +msgstr "" +"Пожалуйста, укажите запись автомонтирования (например, \"-fstype=nfs,rw " +"server:/home\")." + +#: ../templates/login.php:295 +msgid "Please enter the configuration and create a server profile." +msgstr "Пожалуйста, введите конфигурацию и создайте профиль сервера." + +#: ../help/help.inc:57 +msgid "" +"Please enter the configuration password. This is NOT your LDAP password. It " +"is stored in your .conf-file. If this is the first time you log in, enter " +"\"lam\"." +msgstr "" +"Пожалуйста, введите пароль конфигурации. Это не LDAP пароль! Этот пароль " +"храниться в Вашем .conf файле. Если Вы входите первый раз, наберите \"lam\"." + +#: ../lib/modules/puppetClient.inc:74 ../lib/modules/puppetClient.inc:78 +msgid "Please enter the environment name for this node (e.g. production)." +msgstr "Пожалуйста укажите имя окружения для этого узла (например production)/" + +#: ../lib/modules/asteriskAccount.inc:621 +msgid "Please enter the extension context." +msgstr "Пожалуйста, укажите контекст расширения." + +#: ../lib/modules/asteriskExtension.inc:182 +msgid "Please enter the extension name." +msgstr "Пожалуйста, укажите имя расширения." + +#: ../lib/modules/windowsGroup.inc:107 +msgid "Please enter the group name." +msgstr "Пожалуйста, укажите имя группы." + +#: ../lib/modules/asteriskAccount.inc:624 ../lib/modules/windowsHost.inc:68 +msgid "Please enter the host name." +msgstr "Пожалуйста, укажите имя хоста." + +#: ../lib/modules/customScripts.inc:53 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [account type] [action] [script and arguments]" +msgstr "" +"Введите список скриптов, которые вы хотите запустить. Каждая строка имеет " +"следующий формат: [account type] [action] [script and arguments]" + +#: ../lib/modules/customScripts.inc:67 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [action] [script and arguments]" +msgstr "" +"Пожалуйста, укажите список скриптов, которые должны быть запущены. Каждая " +"строка имеет следующий формат: [действие] [скрипт и аргументы]" + +#: ../lib/modules/nisObject.inc:59 +msgid "" +"Please enter the mapping entry (e.g. \"-fstype=nfs,rw server:/projects\")." +msgstr "" +"Пожалуйста, укажите запись соответствия (например \"-fstype=nfs,rw server:/" +"projects\")." + +#: ../lib/modules/nisObject.inc:63 +msgid "Please enter the mapping name for this entry (e.g. auto.home)." +msgstr "" +"Пожалуйста, укажите имя соответствия для этой записи (например, auto.home)." + +#: ../help/help.inc:139 +msgid "" +"Please enter the master configuration password. This is NOT your LDAP " +"password. It is stored in your config.cfg file. If this is the first time " +"you log in, enter \"lam\"." +msgstr "" +"Пожалуйста, введите мастер-пароль. Это не LDAP пароль! Этот пароль храниться " +"в config.cfg файле. Если Вы входите первый раз, наберите \"lam\"." + +#: ../templates/config/mainlogin.php:145 +msgid "Please enter the master password to change the general preferences:" +msgstr "Пожалуйста, введите мастер-пароль для изменения основных настроек:" + +#: ../lib/modules/qmailGroup.inc:417 +msgid "Please enter the message store." +msgstr "Пожалуйста, укажите хранилище сообщений." + +#: ../help/help.inc:127 +msgid "" +"Please enter the name of the new profile and the password to change its " +"settings. Profile names may contain letters, numbers and -/_." +msgstr "" +"Пожалуйста, введите имя нового профиля и пароль. Имя профиля может содержать " +"буквы, цифры и -/_." + +#: ../help/help.inc:129 +msgid "" +"Please enter the new name of the profile. The name may contain letters, " +"numbers and -/_." +msgstr "" +"Пожалуйста, введите новое имя профиля. Имя профиля может содержать буквы, " +"цифры и -/_." + +#: ../lib/modules/selfRegistration.inc:105 +#: ../lib/modules/passwordSelfReset.inc:98 +msgid "" +"Please enter the password for the admin DN. Please note that this is saved " +"as clear-text in the self service profile." +msgstr "" +"Пожалуйста введите пароль для DN администратора. Обратите внимание, что он " +"сохраняется в текстовом виде в профиле самообслуживания." + +#: ../lib/modules/asteriskAccount.inc:107 ../lib/modules/posixAccount.inc:512 +#: ../lib/modules/windowsUser.inc:199 ../lib/modules/inetOrgPerson.inc:909 +msgid "Please enter the password which you want to set for this account." +msgstr "Пожалуйста, введите пароль для этого аккаунта." + +#: ../help/help.inc:183 +msgid "" +"Please enter the password which you want to set for this account. You may " +"also generate a random password (12 characters) which will be displayed on " +"your screen." +msgstr "" +"Пожалуйста укажите пароль для этого аккаунта. Вы так же можете сгенерировать " +"случайный пароль (12 символов), который будет показан на экране." + +#: ../lib/modules/posixAccount.inc:467 +msgid "Please enter the path to the user's home directory." +msgstr "Пожалуйста, введите путь для домашнего каталога пользователя." + +#: ../lib/modules/zarafaServer.inc:62 +msgid "Please enter the port number for (unencrypted) HTTP connections." +msgstr "Пожалуйста укажите номер порта для (незашифрованных) HTTP соединений." + +#: ../lib/modules/zarafaServer.inc:66 +msgid "Please enter the port number for encrypted connections." +msgstr "Пожалуйста, укажите номер порта для зашифрованных соединений." + +#: ../lib/modules/passwordSelfReset.inc:74 +msgid "" +"Please enter the possible security questions for the password self reset." +msgstr "" +"Пожалуйста, укажите возможные секретные вопросы для самостоятельного сброса " +"пароля." + +#: ../lib/modules/asteriskExtension.inc:184 +msgid "Please enter the priority." +msgstr "Пожалуйста, укажите приоритет." + +#: ../lib/modules/imapAccess.inc:101 +msgid "Please enter the quota limit of this mailbox in kilobytes." +msgstr "Пожалуйста, укажите квоту в килобайтах для этого почтового ящика." + +#: ../lib/modules/quota.inc:147 +msgid "" +"Please enter the quota settings for this mount point. The syntax is: {soft " +"block limit},{hard block limit},{soft inode limit},{hard inode limit}" +msgstr "" +"Пожалуйста, введите квоту для этой точки монтирования. Синтаксис: {Мягкое " +"ограничение на используемое место}{Жесткое ограничение на используемое место}" +"{Мягкое ограничение на кол-во inode}{Жесткое ограничение на кол-во inode}" + +#: ../lib/modules/systemQuotas.inc:62 +msgid "" +"Please enter the quota settings for this user. The syntax is: {mount point}," +"{soft block limit},{hard block limit},{soft inode limit},{hard inode limit}." +msgstr "" +"Пожалуйста, укажите квоту для этого пользователя. Синтаксис: {точка " +"монтирования}{Мягкое ограничение на используемое место},{Жесткое ограничение " +"на используемое место},{Мягкое ограничение на кол-во inode}{Жесткое " +"ограничение на кол-во inode}." + +#: ../lib/modules/selfRegistration.inc:122 +#, php-format +msgid "" +"Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") and an error " +"message if the value does not match it. For a syntax description see here." +msgstr "" +"Пожалуйста, укажите регулярное выражение (например \"/^[0-9a-zA-Z]+$/\") и " +"сообщение об ошибке, если значение ему не соответствует. Для описания " +"синтаксиса смотрите here." + +#: ../lib/modules/customFields.inc:95 +#, php-format +msgid "" +"Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") to validate " +"this field. For a syntax description see here." +msgstr "" +"Пожалуйста, укажите регулярное выражение (например \"/^[0-9a-zA-Z]+$/\") для " +"проверки этого поля. Для описания синтаксиса смотрите here." + +#: ../templates/lists/changePassword.php:480 +#: ../lib/modules/selfRegistration.inc:421 +#: ../lib/modules/sambaSamAccount.inc:105 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/windowsUser.inc:465 ../lib/modules/customFields.inc:2008 +msgid "Please enter the same password in both password fields." +msgstr "Пожалуйста, укажите одинаковый пароль в обоих полях." + +#: ../lib/modules/passwordSelfReset.inc:70 +msgid "Please enter the security question for the password self reset." +msgstr "" +"Пожалуйста, укажите секретный вопрос для самостоятельного сброса пароля." + +#: ../lib/modules/sambaSamAccount.inc:360 +msgid "Please enter the time limit in minutes. 0 means unlimited." +msgstr "Пожалуйста, укажите лимит времени в минутах. 0 - без лимита." + +#: ../lib/modules/windowsUser.inc:96 +msgid "Please enter the user's name." +msgstr "Пожалуйста, укажите имя пользователя." + +#: ../lib/modules/puppetClient.inc:94 ../lib/modules/puppetClient.inc:98 +msgid "" +"Please enter your Puppet variables for this node (e.g. config_exim=true)." +msgstr "" +"Пожалуйста, укажите ваши переменные Puppet для этого узла (например " +"config_exim=true)." + +#: ../templates/selfService/adminLogin.php:133 +msgid "" +"Please enter your master configuration password to change the self service " +"profile:" +msgstr "" +"Пожалуйста, введите Ваш мастер-пароль для изменения профиля сервиса " +"самообслуживания:" + +#: ../templates/config/conflogin.php:132 +msgid "Please enter your password to change the server preferences:" +msgstr "Пожалуйста, введите пароль для изменений настроек сервера:" + +#: ../lib/modules/ldapPublicKey.inc:66 +msgid "Please enter your public SSH key." +msgstr "Пожалуйста, введите Ваш публичный SSH ключ." + +#: ../lib/modules/range.inc:394 ../lib/modules/fixed_ip.inc:348 +msgid "Please fill out the DHCP settings first." +msgstr "Пожалуйста, заполните сперва DHCP настройки." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "Please go back and try again." +msgstr "Пожалуйста, вернитесь назад и попробуйте еще раз." + +#: ../templates/masscreate.php:240 +msgid "" +"Please provide a CSV formated file with your account data. The cells in the " +"first row must be filled with the column identifiers. The following rows " +"represent one account for each row." +msgstr "" +"Пожалуйста, подготовьте CSV файл с данными аккаунтов. Ячейки в первом ряду " +"должны содержать названия столбцов. Последующие ряды содержат данные : один " +"аккаунт - одна строка." + +#: ../lib/config.inc:1617 +msgid "Please provide a file in DER or PEM format." +msgstr "Пожалуйста, предоставьте файл в DER или PEM формате." + +#: ../templates/massBuildAccounts.php:256 +msgid "Please provide a file to upload." +msgstr "Пожалуйста, предоставьте файл для загрузки." + +#: ../lib/modules/inetOrgPerson.inc:817 +msgid "" +"Please select an image file to upload. It must be in JPG format (.jpg/.jpeg)." +msgstr "" +"Пожалуйста, выберите файл с изображением для загрузки. Должен быть JPG " +"формат (.jpg/.jpeg)." + +#: ../lib/modules/customFields.inc:87 +msgid "Please select the field type (e.g. text field)." +msgstr "Пожалуйста, выберите тип поля (например текстовое поле)." + +#: ../help/help.inc:145 +msgid "" +"Please select your prefered log level. Messages with a lower level will not " +"be logged." +msgstr "Выберите уровень вывода отладочной информации, (лог файл)." + +#: ../lib/modules/asteriskVoicemail.inc:215 +msgid "Please set the voicemail password with \"Set password\" before saving." +msgstr "" +"Пожалуйста, перед сохранением установите пароль на ящик голосовой почты при " +"помощи \"Установить пароль\"." + +#: ../lib/modules.inc:874 +#, php-format +msgid "Please set up all required attributes on page: %s" +msgstr "Пожалуйста, настройте все необходимые атрибуты на странице: %s" + +#: ../templates/config/profmanage.php:220 +#: ../templates/selfService/profManage.php:160 +msgid "Please set up your master configuration file (config/config.cfg) first!" +msgstr "Вначале настройте основной конфигурационный файл (config/config.cfg)!" + +#: ../lib/modules/dhcp_settings.inc:544 ../lib/modules/ddns.inc:355 +msgid "" +"Please set your LDAP suffix to an LDAP entry with object class \"dhcpService" +"\" or \"dhcpServer\"." +msgstr "" +"Пожалуйста, настройте LDAP суффикс на запись LDAP с классом объекта " +"\"dhcpService\" или \"dhcpServer\"." + +#: ../lib/modules/passwordSelfReset.inc:134 +msgid "Please specify how your users need to identify themselves." +msgstr "" +"Пожалуйста, укажите, как ваши пользователи должны себя идентифицировать." + +#: ../lib/modules/windowsGroup.inc:143 +msgid "Please specify the group scope." +msgstr "Пожалуйста, укажите область видимости группы." + +#: ../lib/modules/customFields.inc:127 +msgid "" +"Please specify the possible values for this field. Each value can have a " +"descriptive label that is displayed to the user." +msgstr "" +"Пожалуйста, укажите возможные значения для этого поля. Каждое значение может " +"иметь метку-описание, которая будет показана пользователю." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:172 +msgid "Please wait" +msgstr "Пожалуйста, подождите" + +#: ../lib/types/ppolicyType.inc:149 +#, php-format +msgid "Policy count: %s" +msgstr "Количество политик: %s" + +#: ../lib/modules/kolabUser.inc:212 +msgid "Policy list has invalid format!" +msgstr "Список политик имеет неправильный формат!" + +#: ../lib/modules/asteriskAccount.inc:170 +#: ../lib/modules/asteriskAccount.inc:275 +#: ../lib/modules/asteriskAccount.inc:345 +#: ../lib/modules/asteriskAccount.inc:498 +#: ../lib/modules/asteriskAccount.inc:821 +#: ../lib/modules/asteriskAccount.inc:1205 +msgid "Port" +msgstr "Порт" + +#: ../lib/modules/asteriskAccount.inc:171 +msgid "Port number." +msgstr "Номер порта." + +#: ../templates/pdfedit/pdfpage.php:592 ../templates/pdfedit/pdfpage.php:602 +#: ../templates/pdfedit/pdfpage.php:612 ../templates/pdfedit/pdfpage.php:627 +msgid "Position" +msgstr "Позиция" + +#: ../templates/masscreate.php:304 ../templates/masscreate.php:379 +#: ../lib/modules/customScripts.inc:113 ../lib/modules/customScripts.inc:115 +#: ../lib/modules/customScripts.inc:117 +#: ../lib/modules/sambaGroupMapping.inc:591 +msgid "Possible values" +msgstr "Возможные значения" + +#: ../lib/modules/posixGroup.inc:505 ../lib/modules/sambaGroupMapping.inc:165 +#: ../lib/modules/groupOfNames.inc:94 +msgid "" +"Possible wildcards are: \"*\" = any character, \"^\" = line start, \"$\" = " +"line end" +msgstr "" +"Возможные маски: \"*\" = любой символ, \"^\" = начало линии, \"$\" = конец " +"линии" + +#: ../lib/modules/windowsUser.inc:139 ../lib/modules/windowsUser.inc:264 +#: ../lib/modules/windowsUser.inc:391 ../lib/modules/windowsUser.inc:417 +#: ../lib/modules/windowsUser.inc:528 ../lib/modules/windowsUser.inc:1226 +#: ../lib/modules/windowsUser.inc:1342 ../lib/modules/inetOrgPerson.inc:143 +#: ../lib/modules/inetOrgPerson.inc:164 ../lib/modules/inetOrgPerson.inc:312 +#: ../lib/modules/inetOrgPerson.inc:478 ../lib/modules/inetOrgPerson.inc:617 +#: ../lib/modules/inetOrgPerson.inc:741 ../lib/modules/inetOrgPerson.inc:745 +#: ../lib/modules/inetOrgPerson.inc:1507 ../lib/modules/inetOrgPerson.inc:2364 +#: ../lib/modules/inetOrgPerson.inc:3057 +msgid "Post office box" +msgstr "Почтовый ящик" + +#: ../lib/modules/inetOrgPerson.inc:80 ../lib/modules/inetOrgPerson.inc:142 +#: ../lib/modules/inetOrgPerson.inc:176 ../lib/modules/inetOrgPerson.inc:320 +#: ../lib/modules/inetOrgPerson.inc:462 ../lib/modules/inetOrgPerson.inc:629 +#: ../lib/modules/inetOrgPerson.inc:757 ../lib/modules/inetOrgPerson.inc:1617 +#: ../lib/modules/inetOrgPerson.inc:2366 ../lib/modules/inetOrgPerson.inc:3024 +msgid "Postal address" +msgstr "Почтовый адрес" + +#: ../lib/modules/inetOrgPerson.inc:758 +msgid "Postal address, city" +msgstr "Почтовый адрес, город" + +#: ../lib/modules/windowsUser.inc:135 ../lib/modules/windowsUser.inc:270 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:418 +#: ../lib/modules/windowsUser.inc:455 ../lib/modules/windowsUser.inc:529 +#: ../lib/modules/windowsUser.inc:1225 ../lib/modules/windowsUser.inc:1343 +#: ../lib/modules/inetOrgPerson.inc:84 ../lib/modules/inetOrgPerson.inc:143 +#: ../lib/modules/inetOrgPerson.inc:167 ../lib/modules/inetOrgPerson.inc:314 +#: ../lib/modules/inetOrgPerson.inc:454 ../lib/modules/inetOrgPerson.inc:620 +#: ../lib/modules/inetOrgPerson.inc:749 ../lib/modules/inetOrgPerson.inc:753 +#: ../lib/modules/inetOrgPerson.inc:1534 ../lib/modules/inetOrgPerson.inc:2365 +#: ../lib/modules/inetOrgPerson.inc:3046 +msgid "Postal code" +msgstr "Почтовый индекс" + +#: ../lib/modules/puppetClient.inc:105 +msgid "Predefined classes" +msgstr "Предопределенные классы" + +#: ../lib/modules/puppetClient.inc:109 ../lib/modules/puppetClient.inc:115 +msgid "Predefined environments" +msgstr "Предопределенные окружения" + +#: ../lib/modules/authorizedServiceObject.inc:86 +#: ../lib/modules/authorizedServiceObject.inc:92 +msgid "Predefined services" +msgstr "Предопределенные сервисы" + +#: ../help/help.inc:89 +msgid "Predefined values" +msgstr "Предустановленные значения" + +#: ../lib/modules/imapAccess.inc:88 ../lib/modules/imapAccess.inc:121 +msgid "Prefix for mailboxes" +msgstr "Префикс для почтовых ящиков" + +#: ../lib/modules/inetOrgPerson.inc:408 +msgid "President" +msgstr "Президент" + +#: ../lib/modules/eduPerson.inc:81 ../lib/modules/eduPerson.inc:161 +#: ../lib/modules/eduPerson.inc:222 ../lib/modules/eduPerson.inc:280 +#: ../lib/modules/eduPerson.inc:766 +msgid "Primary affiliation" +msgstr "Основная принадлежность" + +#: ../lib/modules/posixAccount.inc:290 ../lib/modules/posixAccount.inc:382 +#: ../lib/modules/posixAccount.inc:407 ../lib/modules/posixAccount.inc:458 +#: ../lib/modules/posixAccount.inc:503 ../lib/modules/posixAccount.inc:541 +#: ../lib/modules/posixAccount.inc:1348 ../lib/modules/posixAccount.inc:1631 +#: ../lib/modules/posixAccount.inc:1677 ../lib/modules/posixAccount.inc:1743 +msgid "Primary group" +msgstr "Основная группа" + +#: ../lib/modules/eduPerson.inc:123 ../lib/modules/eduPerson.inc:199 +#: ../lib/modules/eduPerson.inc:225 ../lib/modules/eduPerson.inc:240 +#: ../lib/modules/eduPerson.inc:411 ../lib/modules/eduPerson.inc:773 +msgid "Primary organisational unit" +msgstr "Главная организационная единица" + +#: ../lib/modules/eduPerson.inc:107 ../lib/modules/eduPerson.inc:154 +#: ../lib/modules/eduPerson.inc:223 ../lib/modules/eduPerson.inc:274 +#: ../lib/modules/eduPerson.inc:768 +msgid "Principal name" +msgstr "Principal name" + +#: ../lib/modules/eduPerson.inc:236 ../lib/modules/eduPerson.inc:237 +msgid "Principal name is invalid!" +msgstr "Principal name неверное!" + +#: ../lib/modules/asteriskExtension.inc:99 +#: ../lib/modules/asteriskExtension.inc:818 +msgid "Priority" +msgstr "Приоритет" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1537 +#: ../templates/3rdParty/pla/htdocs/import_form.php:44 +#: ../templates/3rdParty/pla/htdocs/export_form.php:135 +msgid "Proceed" +msgstr "Продолжить" + +#: ../templates/config/profmanage.php:112 +#: ../templates/selfService/profManage.php:85 +msgid "Profile deleted." +msgstr "Профиль удален." + +#: ../templates/profedit/profilepage.php:182 +#: ../templates/profedit/profilemain.php:94 ../lib/tools/profileEditor.inc:44 +msgid "Profile editor" +msgstr "Редактор профилей" + +#: ../templates/config/profmanage.php:159 +#: ../templates/config/profmanage.php:236 +#: ../templates/selfService/profManage.php:101 +#: ../templates/selfService/profManage.php:199 ../help/help.inc:126 +#: ../help/help.inc:128 ../help/help.inc:130 ../help/help.inc:132 +#: ../help/help.inc:134 +msgid "Profile management" +msgstr "Управление профилями" + +#: ../templates/config/profmanage.php:240 +#: ../templates/config/profmanage.php:259 +#: ../templates/config/profmanage.php:271 +#: ../templates/config/profmanage.php:280 +#: ../templates/config/profmanage.php:299 +#: ../templates/selfService/profManage.php:203 +#: ../templates/selfService/profManage.php:217 +#: ../templates/selfService/profManage.php:233 +#: ../templates/profedit/profilepage.php:186 +#: ../templates/profedit/profilemain.php:275 +#: ../templates/profedit/profilemain.php:319 ../help/help.inc:168 +msgid "Profile name" +msgstr "Имя профиля" + +#: ../templates/config/profmanage.php:88 +#: ../templates/config/profmanage.php:107 +#: ../templates/config/profmanage.php:137 +#: ../templates/config/profmanage.php:148 +#: ../templates/selfService/profManage.php:61 +#: ../templates/selfService/profManage.php:76 +msgid "Profile name is invalid!" +msgstr "Имя профиля неправильное!" + +#: ../templates/config/profmanage.php:243 +#: ../templates/config/profmanage.php:281 +msgid "Profile password" +msgstr "Пароль профиля" + +#: ../templates/config/profmanage.php:86 +#: ../templates/config/profmanage.php:135 +msgid "Profile passwords are different or empty!" +msgstr "Пароли профиля не совпадают или пусты!" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:98 +#: ../lib/modules/sambaSamAccount.inc:213 +#: ../lib/modules/sambaSamAccount.inc:225 +#: ../lib/modules/sambaSamAccount.inc:298 +#: ../lib/modules/sambaSamAccount.inc:347 +#: ../lib/modules/sambaSamAccount.inc:489 +#: ../lib/modules/sambaSamAccount.inc:585 +#: ../lib/modules/sambaSamAccount.inc:1193 +#: ../lib/modules/sambaSamAccount.inc:1486 +#: ../lib/modules/sambaSamAccount.inc:1555 +#: ../lib/modules/sambaSamAccount.inc:1733 +#: ../lib/modules/sambaSamAccount.inc:1878 +#: ../lib/modules/sambaSamAccount.inc:1893 ../lib/modules/windowsUser.inc:183 +#: ../lib/modules/windowsUser.inc:362 ../lib/modules/windowsUser.inc:401 +#: ../lib/modules/windowsUser.inc:461 ../lib/modules/windowsUser.inc:573 +#: ../lib/modules/windowsUser.inc:1253 +msgid "Profile path" +msgstr "Путь к профилю" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/windowsUser.inc:461 ../lib/modules/windowsUser.inc:462 +msgid "Profile path is invalid!" +msgstr "Путь к профилю неправильный!" + +#: ../templates/profedit/profilemain.php:149 +msgid "Profile was saved." +msgstr "Профиль сохранен." + +#: ../templates/profedit/profilemain.php:242 +msgid "Profiles" +msgstr "Профили" + +#: ../lib/modules/qmailUser.inc:245 +msgid "Program to execute for all incoming mails." +msgstr "Программа, выполняющаяся для всех входящих писем." + +#: ../lib/modules/zarafaServer.inc:77 ../lib/modules/zarafaServer.inc:121 +#: ../lib/modules/zarafaServer.inc:134 ../lib/modules/zarafaServer.inc:156 +#: ../lib/modules/zarafaServer.inc:205 ../lib/modules/zarafaServer.inc:376 +msgid "Proxy URL" +msgstr "URL прокси" + +#: ../lib/modules/zarafaServer.inc:73 ../lib/modules/zarafaServer.inc:111 +#: ../lib/modules/zarafaServer.inc:131 ../lib/modules/zarafaServer.inc:218 +#: ../lib/modules/zarafaServer.inc:381 +msgid "Public store" +msgstr "Публичное хранилище" + +#: ../lib/modules/puppetClient.inc:63 +msgid "Puppet" +msgstr "Puppet" + +#: ../lib/modules/qmailUser.inc:80 ../lib/modules/qmailGroup.inc:49 +msgid "Qmail" +msgstr "Qmail" + +#: ../lib/modules/asteriskAccount.inc:174 +#: ../lib/modules/asteriskAccount.inc:277 +#: ../lib/modules/asteriskAccount.inc:346 +#: ../lib/modules/asteriskAccount.inc:505 +#: ../lib/modules/asteriskAccount.inc:831 +#: ../lib/modules/asteriskAccount.inc:1206 +msgid "Qualify" +msgstr "Квалифицировать" + +#: ../lib/modules/passwordSelfReset.inc:69 +#: ../lib/modules/passwordSelfReset.inc:151 +#: ../lib/modules/passwordSelfReset.inc:158 +#: ../lib/modules/passwordSelfReset.inc:171 +#: ../lib/modules/passwordSelfReset.inc:262 +#: ../lib/modules/passwordSelfReset.inc:298 +#: ../lib/modules/passwordSelfReset.inc:407 +#: ../lib/modules/passwordSelfReset.inc:551 +#: ../lib/modules/passwordSelfReset.inc:910 +msgid "Question" +msgstr "Вопрос" + +#: ../lib/modules/qmailUser.inc:661 ../lib/modules/quota.inc:80 +#: ../lib/modules/quota.inc:93 ../lib/modules/quota.inc:146 +#: ../lib/modules/zarafaUser.inc:513 ../lib/modules/systemQuotas.inc:51 +#: ../lib/modules/systemQuotas.inc:61 ../lib/modules/systemQuotas.inc:68 +#: ../lib/modules/systemQuotas.inc:74 ../lib/modules/systemQuotas.inc:81 +#: ../lib/modules/imapAccess.inc:100 ../lib/modules/imapAccess.inc:145 +msgid "Quota" +msgstr "Квота" + +#: ../lib/modules/quota.inc:691 +#, php-format +msgid "Quota for %s on %s" +msgstr "Квота для %s на %s" + +#: ../lib/modules/zarafaUser.inc:93 ../lib/modules/zarafaUser.inc:192 +#: ../lib/modules/zarafaUser.inc:271 ../lib/modules/zarafaUser.inc:393 +#: ../lib/modules/zarafaUser.inc:444 ../lib/modules/zarafaUser.inc:548 +#: ../lib/modules/zarafaUser.inc:1297 ../lib/modules/zarafaUser.inc:1380 +msgid "Quota hard limit" +msgstr "Жесткий лимит квоты" + +#: ../lib/modules/quota.inc:63 +msgid "Quota has wrong format!" +msgstr "Квота имеет неправильный формат!" + +#: ../lib/modules/imapAccess.inc:299 ../lib/modules/imapAccess.inc:308 +msgid "Quota limit (kB)" +msgstr "Лимит квоты (КиБ)" + +#: ../lib/modules/zarafaUser.inc:81 ../lib/modules/zarafaUser.inc:186 +#: ../lib/modules/zarafaUser.inc:245 ../lib/modules/zarafaUser.inc:384 +#: ../lib/modules/zarafaUser.inc:520 ../lib/modules/zarafaUser.inc:1308 +#: ../lib/modules/zarafaUser.inc:1371 +msgid "Quota override" +msgstr "Отмена квоты" + +#: ../lib/modules/qmailUser.inc:99 ../lib/modules/qmailUser.inc:126 +#: ../lib/modules/qmailUser.inc:212 ../lib/modules/qmailUser.inc:301 +#: ../lib/modules/qmailUser.inc:402 ../lib/modules/qmailUser.inc:668 +#: ../lib/modules/qmailUser.inc:1191 +msgid "Quota size" +msgstr "Размер квоты" + +#: ../lib/modules/zarafaUser.inc:89 ../lib/modules/zarafaUser.inc:190 +#: ../lib/modules/zarafaUser.inc:263 ../lib/modules/zarafaUser.inc:390 +#: ../lib/modules/zarafaUser.inc:442 ../lib/modules/zarafaUser.inc:538 +#: ../lib/modules/zarafaUser.inc:1296 ../lib/modules/zarafaUser.inc:1377 +msgid "Quota soft limit" +msgstr "Мягкий лимит квоты" + +#: ../lib/modules/zarafaUser.inc:85 ../lib/modules/zarafaUser.inc:188 +#: ../lib/modules/zarafaUser.inc:255 ../lib/modules/zarafaUser.inc:387 +#: ../lib/modules/zarafaUser.inc:440 ../lib/modules/zarafaUser.inc:528 +#: ../lib/modules/zarafaUser.inc:1295 ../lib/modules/zarafaUser.inc:1374 +msgid "Quota warning limit" +msgstr "Лимит предупреждений о превышении квоты" + +#: ../templates/masscreate.php:328 ../templates/profedit/profilepage.php:213 +#: ../lib/modules.inc:1001 ../help/help.inc:166 +msgid "RDN identifier" +msgstr "Идентификатор RDN" + +#: ../lib/types/host.inc:93 +msgid "RID (Windows UID)" +msgstr "RID (Windows UID)" + +#: ../lib/modules/sambaDomain.inc:90 ../lib/modules/sambaDomain.inc:151 +#: ../lib/modules/sambaDomain.inc:182 ../lib/modules/sambaDomain.inc:376 +#: ../lib/modules/sambaDomain.inc:382 ../lib/modules/sambaDomain.inc:643 +msgid "RID base" +msgstr "RID base" + +#: ../lib/modules/sambaDomain.inc:345 +msgid "RID settings" +msgstr "Настройки RID" + +#: ../lib/modules/asteriskAccount.inc:186 +#: ../lib/modules/asteriskAccount.inc:283 +#: ../lib/modules/asteriskAccount.inc:349 +#: ../lib/modules/asteriskAccount.inc:527 +#: ../lib/modules/asteriskAccount.inc:859 +#: ../lib/modules/asteriskAccount.inc:1209 +msgid "RTP hold timeout" +msgstr "Таймаут удержания RTP" + +#: ../lib/modules/asteriskAccount.inc:182 +#: ../lib/modules/asteriskAccount.inc:281 +#: ../lib/modules/asteriskAccount.inc:348 +#: ../lib/modules/asteriskAccount.inc:520 +#: ../lib/modules/asteriskAccount.inc:849 +#: ../lib/modules/asteriskAccount.inc:1208 +msgid "RTP timeout" +msgstr "Таймаут RTP" + +#: ../lib/modules/customFields.inc:2418 +msgid "Radio buttons" +msgstr "Радиокнопки" + +#: ../lib/modules/range.inc:85 ../lib/modules/range.inc:419 +msgid "Range from" +msgstr "Диапазон от" + +#: ../lib/modules/range.inc:88 ../lib/modules/range.inc:432 +msgid "Range to" +msgstr "Область до" + +#: ../lib/types/dhcp.inc:95 ../lib/modules/range.inc:67 +#: ../lib/modules/range.inc:99 ../lib/modules/range.inc:487 +msgid "Ranges" +msgstr "Диапазоны" + +#: ../templates/config/confmain.php:306 +msgid "Read" +msgstr "Читать" + +#: ../templates/config/confmain.php:261 ../lib/modules/customFields.inc:90 +#: ../lib/modules/customFields.inc:1483 +msgid "Read-only" +msgstr "Только для чтения" + +#: ../lib/modules/customFields.inc:91 +msgid "" +"Read-only fields cannot be changed by the user. Use this if you want to show " +"an attribute just for information." +msgstr "" +"Поля только для чтения не могут быть изменены пользователем. Используйте " +"это, если вы хотите показать атрибут только для информации." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2289 +msgid "Really delete value from this attribute?" +msgstr "Действительно удалить значение этого атрибута?" + +#: ../lib/modules/mitKerberos.inc:113 ../lib/modules/mitKerberos.inc:145 +#: ../lib/modules/mitKerberos.inc:187 ../lib/modules/freeRadius.inc:85 +#: ../lib/modules/freeRadius.inc:119 ../lib/modules/freeRadius.inc:139 +#: ../lib/modules/freeRadius.inc:170 ../lib/modules/freeRadius.inc:224 +#: ../lib/modules/freeRadius.inc:270 ../lib/modules/freeRadius.inc:618 +#: ../lib/modules/heimdalKerberos.inc:91 +#: ../lib/modules/heimdalKerberos.inc:150 +#: ../lib/modules/heimdalKerberos.inc:156 +msgid "Realm" +msgstr "Область" + +#: ../lib/modules/nisMailAlias.inc:74 ../lib/modules/nisMailAlias.inc:163 +msgid "Recipient" +msgstr "Получатель" + +#: ../lib/modules/nisMailAlias.inc:116 ../lib/modules/nisMailAlias.inc:117 +msgid "Recipient is invalid!" +msgstr "Получатель неверен!" + +#: ../lib/types/mailAlias.inc:92 ../lib/modules/nisMailAlias.inc:78 +#: ../lib/modules/nisMailAlias.inc:97 ../lib/modules/nisMailAlias.inc:105 +#: ../lib/modules/nisMailAlias.inc:378 +msgid "Recipient list" +msgstr "Список получателей" + +#: ../lib/modules/sambaSamAccount.inc:237 +#: ../lib/modules/sambaSamAccount.inc:377 +#: ../lib/modules/sambaSamAccount.inc:1535 +#: ../lib/modules/sambaSamAccount.inc:1945 +msgid "Reconnect if disconnected" +msgstr "При отключении переподключаться" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:63 +msgid "Recursive copy" +msgstr "Рекурсивная копия" + +#: ../templates/3rdParty/pla/htdocs/copy.php:49 +msgid "Recursive copy progress" +msgstr "Прогресс рекурсивного копирования" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:31 +msgid "Recursive delete progress" +msgstr "Процесс рекурсивного удаления" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:65 +msgid "Recursively copy all children of this object as well." +msgstr "Также рекурсивно скопировать всех потомков этого объекта." + +#: ../templates/config/profmanage.php:247 +#: ../templates/config/profmanage.php:285 +#: ../templates/config/mainmanage.php:379 ../templates/config/confmain.php:436 +#: ../lib/modules/selfRegistration.inc:357 +#: ../lib/modules/sambaSamAccount.inc:2293 +#: ../lib/modules/posixAccount.inc:2429 ../lib/modules/windowsUser.inc:1322 +msgid "Reenter password" +msgstr "Повторить ввод пароля" + +#: ../templates/serverInfo.php:187 +msgid "Referrals" +msgstr "Рефералы" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1051 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1054 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:249 +#: ../lib/modules/asteriskExtension.inc:447 ../lib/lists.inc:781 +msgid "Refresh" +msgstr "Обновить" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +msgid "Refresh this entry" +msgstr "Обновить эту запись" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:247 +msgid "Refreshing tree" +msgstr "Обновление дерева" + +#: ../lib/modules/selfRegistration.inc:282 +msgid "Register new account" +msgstr "Зарегистрировать новый аккаунт" + +#: ../lib/modules/inetOrgPerson.inc:82 ../lib/modules/inetOrgPerson.inc:142 +#: ../lib/modules/inetOrgPerson.inc:179 ../lib/modules/inetOrgPerson.inc:322 +#: ../lib/modules/inetOrgPerson.inc:470 ../lib/modules/inetOrgPerson.inc:632 +#: ../lib/modules/inetOrgPerson.inc:761 ../lib/modules/inetOrgPerson.inc:1646 +#: ../lib/modules/inetOrgPerson.inc:2367 ../lib/modules/inetOrgPerson.inc:3035 +msgid "Registered address" +msgstr "Зарегистрированный адрес" + +#: ../lib/modules/inetOrgPerson.inc:762 +msgid "Registered address, city" +msgstr "Зарегистрированный адрес, город" + +#: ../lib/modules/asteriskAccount.inc:206 +#: ../lib/modules/asteriskAccount.inc:293 +#: ../lib/modules/asteriskAccount.inc:354 +#: ../lib/modules/asteriskAccount.inc:563 +#: ../lib/modules/asteriskAccount.inc:905 +#: ../lib/modules/asteriskAccount.inc:1214 +msgid "Registration context" +msgstr "Контекст регистрации" + +#: ../lib/modules/asteriskAccount.inc:210 +#: ../lib/modules/asteriskAccount.inc:295 +#: ../lib/modules/asteriskAccount.inc:355 +#: ../lib/modules/asteriskAccount.inc:570 +#: ../lib/modules/asteriskAccount.inc:914 +#: ../lib/modules/asteriskAccount.inc:1215 +msgid "Registration extension" +msgstr "Расширение регистрации" + +#: ../lib/modules/asteriskAccount.inc:226 +#: ../lib/modules/asteriskAccount.inc:303 +#: ../lib/modules/asteriskAccount.inc:359 +#: ../lib/modules/asteriskAccount.inc:599 +#: ../lib/modules/asteriskAccount.inc:954 +#: ../lib/modules/asteriskAccount.inc:1219 +msgid "Registration server" +msgstr "Сервер регистрации" + +#: ../lib/modules/kolabUser.inc:53 +msgid "Reject if conflicts" +msgstr "Отклонить если конфликты" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +msgid "Reloading" +msgstr "Перегрузка" + +#: ../templates/login.php:430 +msgid "Remember user name" +msgstr "Запомнить имя пользователя" + +#: ../templates/config/confmodules.php:310 +#: ../templates/pdfedit/pdfpage.php:477 ../lib/modules/mitKerberos.inc:689 +#: ../lib/modules/qmailUser.inc:912 ../lib/modules/windowsHost.inc:151 +#: ../lib/modules/sambaSamAccount.inc:1454 ../lib/modules/kolabUser.inc:822 +#: ../lib/modules/shadowAccount.inc:467 ../lib/modules/freeRadius.inc:476 +#: ../lib/modules/sudoRole.inc:266 ../lib/modules/sudoRole.inc:293 +#: ../lib/modules/sudoRole.inc:320 ../lib/modules/sudoRole.inc:347 +#: ../lib/modules/sudoRole.inc:374 ../lib/modules/sudoRole.inc:401 +#: ../lib/modules/heimdalKerberos.inc:595 ../lib/modules/windowsGroup.inc:341 +msgid "Remove" +msgstr "Удалить" + +#: ../lib/modules/asteriskVoicemail.inc:282 +msgid "Remove Asterisk voicemail extension" +msgstr "Удалить расширение голосовой почты Asterisk" + +#: ../lib/modules/authorizedServiceObject.inc:190 +msgid "Remove Authorized Service extension" +msgstr "Удалить расширение Authorized Service" + +#: ../lib/modules/eduPerson.inc:476 +msgid "Remove EDU person extension" +msgstr "Удалить расширение EDU person." + +#: ../lib/modules/freeRadius.inc:340 +msgid "Remove FreeRadius extension" +msgstr "Удалить расширение FreeRadius." + +#: ../lib/modules/ipHost.inc:176 +msgid "Remove IP address extension" +msgstr "Удалить расширение IP address." + +#: ../lib/modules/mitKerberos.inc:473 ../lib/modules/heimdalKerberos.inc:394 +msgid "Remove Kerberos extension" +msgstr "Удалить расширение Kerberos." + +#: ../lib/modules/puppetClient.inc:273 +msgid "Remove Puppet extension" +msgstr "Удалить расширение Puppet." + +#: ../lib/modules/sambaSamAccount.inc:1281 +msgid "Remove Samba 3 extension" +msgstr "Удалить расширение Samba 3" + +#: ../lib/modules/shadowAccount.inc:366 +msgid "Remove Shadow account extension" +msgstr "Удалить расширение Shadow account" + +#: ../lib/modules/posixGroup.inc:242 ../lib/modules/posixAccount.inc:1413 +msgid "Remove Unix extension" +msgstr "Удалить UNIX расширение" + +#: ../lib/modules/zarafaContact.inc:247 ../lib/modules/zarafaGroup.inc:303 +#: ../lib/modules/zarafaUser.inc:687 ../lib/modules/zarafaServer.inc:225 +msgid "Remove Zarafa extension" +msgstr "Удалить расширение Zarafa" + +#: ../lib/modules/customFields.inc:410 +msgid "Remove extension" +msgstr "Удалить расширение" + +#: ../lib/types/user.inc:385 +msgid "Remove from all Unix groups" +msgstr "Удалить из всех Юникс групп" + +#: ../lib/types/user.inc:389 +msgid "Remove from all group of (unique) names" +msgstr "Удалить из всех групп (уникальных) имен" + +#: ../lib/modules/hostObject.inc:157 +msgid "Remove host extension" +msgstr "Удалить расширение host" + +#: ../lib/modules/posixGroup.inc:211 ../lib/modules/posixAccount.inc:1406 +#: ../lib/modules/inetOrgPerson.inc:2089 +msgid "Remove password" +msgstr "Удалить пароль" + +#: ../lib/modules/passwordSelfReset.inc:316 +msgid "Remove password self reset extension" +msgstr "Удалить расширение самостоятельного сброса пароля" + +#: ../lib/modules/qmailUser.inc:699 ../lib/modules/qmailGroup.inc:620 +msgid "Remove qmail extension" +msgstr "Удалить расширение qmail" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:147 +#: ../lib/modules/zarafaContact.inc:407 ../lib/modules/zarafaGroup.inc:476 +#: ../lib/modules/device.inc:287 ../lib/modules/zarafaUser.inc:934 +#: ../lib/modules/inetOrgPerson.inc:2213 ../lib/modules/qmailGroup.inc:843 +#: ../lib/modules/windowsGroup.inc:538 ../lib/modules/groupOfNames.inc:366 +#: ../lib/modules/groupOfNames.inc:501 +msgid "Remove selected entries" +msgstr "Удалить выделенные записи" + +#: ../templates/config/conftypes.php:248 +msgid "Remove this account type" +msgstr "Удалить этот тип аккаунтов" + +#: ../lib/modules/inetOrgPerson.inc:3137 +msgid "Remove/replace photo" +msgstr "Удалить/переместить фото" + +#: ../templates/config/profmanage.php:263 +#: ../templates/selfService/profManage.php:225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1152 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1155 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:24 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:35 +#: ../templates/3rdParty/pla/htdocs/rename.php:53 +msgid "Rename" +msgstr "Переименовать" + +#: ../templates/3rdParty/pla/htdocs/rename_form.php:28 +#, php-format +msgid "Rename %s to a new object." +msgstr "Переименовать %s в новый объект." + +#: ../templates/config/profmanage.php:258 +#: ../templates/config/profmanage.php:264 +#: ../templates/selfService/profManage.php:216 +#: ../templates/selfService/profManage.php:226 ../help/help.inc:128 +msgid "Rename profile" +msgstr "Переименовать профиль" + +#: ../templates/3rdParty/pla/htdocs/rename.php:48 +msgid "Rename successful!" +msgstr "Переименование успешно!" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +msgid "Rename this entry" +msgstr "Переименовать эту запись" + +#: ../templates/config/profmanage.php:98 +#: ../templates/selfService/profManage.php:72 +msgid "Renamed profile." +msgstr "Переименованный профиль." + +#: ../templates/3rdParty/pla/htdocs/import.php:30 +#: ../templates/3rdParty/pla/htdocs/import.php:31 +msgid "Renaming" +msgstr "Переименование" + +#: ../lib/modules/mitKerberos.inc:125 ../lib/modules/mitKerberos.inc:189 +#: ../lib/modules/mitKerberos.inc:229 ../lib/modules/mitKerberos.inc:246 +#: ../lib/modules/mitKerberos.inc:367 ../lib/modules/mitKerberos.inc:772 +#: ../lib/modules/heimdalKerberos.inc:107 +#: ../lib/modules/heimdalKerberos.inc:158 +#: ../lib/modules/heimdalKerberos.inc:198 +#: ../lib/modules/heimdalKerberos.inc:215 +#: ../lib/modules/heimdalKerberos.inc:310 +#: ../lib/modules/heimdalKerberos.inc:688 +msgid "Renewable lifetime" +msgstr "Обновляемое время жизни" + +#: ../lib/modules/mitKerberos.inc:286 ../lib/modules/mitKerberos.inc:287 +#: ../lib/modules/heimdalKerberos.inc:250 +#: ../lib/modules/heimdalKerberos.inc:251 +msgid "Renewable lifetime must be a number." +msgstr "Обновляемое время жизни должно быть числом." + +#: ../templates/lists/changePassword.php:331 +#: ../lib/modules/passwordSelfReset.inc:933 ../lib/modules.inc:1045 +msgid "Repeat password" +msgstr "Повторите пароль" + +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:1117 +msgid "Replaced $user or $group in homedir." +msgstr "Заменен $user или $group в домашнем каталоге." + +#: ../templates/config/confmain.php:335 ../help/help.inc:231 +msgid "Reply-to address" +msgstr "адрес Reply-to" + +#: ../templates/config/confmain.php:499 +msgid "Reply-to address for password mails is invalid." +msgstr "Неверный адрес Reply-to для писем с паролями." + +#: ../lib/types/ppolicyType.inc:89 ../lib/modules/ppolicy.inc:121 +#: ../lib/modules/ppolicy.inc:147 ../lib/modules/ppolicy.inc:281 +#: ../lib/modules/ppolicy.inc:493 +msgid "Require password change on first login" +msgstr "Требуется смена пароля при первом входе в систему" + +#: ../lib/modules/windowsUser.inc:180 ../lib/modules/windowsUser.inc:346 +#: ../lib/modules/windowsUser.inc:400 ../lib/modules/windowsUser.inc:569 +#: ../lib/modules/windowsUser.inc:1247 +msgid "Require smartcard" +msgstr "Требуется смарткарта" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 +msgid "Required attribute for object classes" +msgstr "Требуемый атрибут для классов объектов" + +#: ../templates/schema/schema.php:383 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1567 +msgid "Required attributes" +msgstr "Требуемые атрибуты" + +#: ../lib/modules/mitKerberos.inc:173 ../lib/modules/mitKerberos.inc:463 +msgid "Requires hardware authentication" +msgstr "Требуется хардварная аутетификация" + +#: ../lib/modules/mitKerberos.inc:170 ../lib/modules/mitKerberos.inc:458 +#: ../lib/modules/heimdalKerberos.inc:144 +#: ../lib/modules/heimdalKerberos.inc:385 +msgid "Requires preauthentication" +msgstr "Требуется предварительная аутентификация" + +#: ../lib/modules/sambaSamAccount.inc:1275 +msgid "Reset" +msgstr "Сброс" + +#: ../lib/modules.inc:1190 +msgid "Reset changes" +msgstr "Сброс изменений" + +#: ../lib/modules/sambaSamAccount.inc:254 +#: ../lib/modules/sambaSamAccount.inc:1274 +msgid "Reset password" +msgstr "Сброс пароля" + +#: ../lib/modules/sambaDomain.inc:130 ../lib/modules/sambaDomain.inc:192 +#: ../lib/modules/sambaDomain.inc:217 ../lib/modules/sambaDomain.inc:341 +#: ../lib/modules/sambaDomain.inc:650 +msgid "Reset time after lockout" +msgstr "Время сброса после блокировки" + +#: ../lib/modules/sambaDomain.inc:217 +msgid "Reset time after lockout must be are natural number." +msgstr "Время сброса после блокировки должно быть натуральным числом." + +#: ../lib/modules/zarafaUser.inc:555 +msgid "Resource settings" +msgstr "Настройки ресурса" + +#: ../lib/modules/asteriskAccount.inc:178 +#: ../lib/modules/asteriskAccount.inc:279 +#: ../lib/modules/asteriskAccount.inc:347 +#: ../lib/modules/asteriskAccount.inc:512 +#: ../lib/modules/asteriskAccount.inc:840 +#: ../lib/modules/asteriskAccount.inc:1207 +msgid "Restrict caller ID" +msgstr "Ограничить caller ID" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:113 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:118 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:550 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:587 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:198 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:84 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:122 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +msgid "Retrieving DN" +msgstr "Получаем DN" + +#: ../lib/modules/ddns.inc:99 ../lib/modules/ddns.inc:107 +#: ../lib/modules/ddns.inc:128 ../lib/modules/ddns.inc:390 +#: ../lib/modules/ddns.inc:419 +msgid "Reverse zone name" +msgstr "Имя обратной зоны" + +#: ../templates/config/confmain.php:302 ../help/help.inc:114 +msgid "Rights for the home directory" +msgstr "Права для домашнего каталога" + +#: ../lib/types/sudo.inc:77 ../lib/modules/sudoRole.inc:55 +#: ../lib/modules/sudoRole.inc:121 ../lib/modules/sudoRole.inc:171 +#: ../lib/modules/sudoRole.inc:247 ../lib/modules/sudoRole.inc:682 +msgid "Role name" +msgstr "Имя роли" + +#: ../lib/modules/zarafaUser.inc:560 ../lib/modules/zarafaUser.inc:1312 +msgid "Room" +msgstr "Комната" + +#: ../lib/modules/inetOrgPerson.inc:144 ../lib/modules/inetOrgPerson.inc:185 +#: ../lib/modules/inetOrgPerson.inc:326 ../lib/modules/inetOrgPerson.inc:544 +#: ../lib/modules/inetOrgPerson.inc:638 ../lib/modules/inetOrgPerson.inc:828 +#: ../lib/modules/inetOrgPerson.inc:1695 ../lib/modules/inetOrgPerson.inc:2374 +#: ../lib/modules/inetOrgPerson.inc:3068 +msgid "Room number" +msgstr "Номер офиса" + +#: ../lib/modules/inetLocalMailRecipient.inc:61 +#: ../lib/modules/inetLocalMailRecipient.inc:93 +#: ../lib/modules/inetLocalMailRecipient.inc:112 +#: ../lib/modules/inetLocalMailRecipient.inc:141 +#: ../lib/modules/inetLocalMailRecipient.inc:299 +msgid "Routing address" +msgstr "Перенаправляемый адрес" + +#: ../lib/modules/customFields.inc:118 ../lib/modules/customFields.inc:2091 +msgid "Rows" +msgstr "Ряды" + +#: ../lib/modules/asteriskExtension.inc:132 +#: ../lib/modules/asteriskExtension.inc:304 +msgid "Rules" +msgstr "Правила" + +#: ../lib/modules/customScripts.inc:153 +msgid "Run" +msgstr "Запуск" + +#: ../lib/types/sudo.inc:82 +msgid "Run group" +msgstr "Группа запуска" + +#: ../lib/modules/sudoRole.inc:79 ../lib/modules/sudoRole.inc:107 +#: ../lib/modules/sudoRole.inc:158 ../lib/modules/sudoRole.inc:177 +#: ../lib/modules/sudoRole.inc:186 ../lib/modules/sudoRole.inc:372 +#: ../lib/modules/sudoRole.inc:688 +msgid "Run groups" +msgstr "Группы запуска" + +#: ../lib/types/sudo.inc:81 +msgid "Run user" +msgstr "Пользователь запуска" + +#: ../lib/modules/sudoRole.inc:75 ../lib/modules/sudoRole.inc:102 +#: ../lib/modules/sudoRole.inc:152 ../lib/modules/sudoRole.inc:176 +#: ../lib/modules/sudoRole.inc:185 ../lib/modules/sudoRole.inc:345 +#: ../lib/modules/sudoRole.inc:687 +msgid "Run users" +msgstr "Пользователи запуска" + +#: ../lib/modules/windowsUser.inc:248 +msgid "S.M." +msgstr "S.M." + +#: ../templates/serverInfo.php:129 +msgid "SASL mechanisms" +msgstr "Механизмы SASL" + +#: ../lib/modules/asteriskAccount.inc:143 +msgid "SIP URI for a realtime peer." +msgstr "SIP URI для пира реального времени." + +#: ../lib/modules/asteriskAccount.inc:119 +msgid "SIP user agent identification." +msgstr "Идентификация пользовательского агента SIP." + +#: ../templates/tests/lamdaemonTest.php:243 +msgid "SSH connection" +msgstr "SSH подключение" + +#: ../templates/tests/lamdaemonTest.php:256 +msgid "SSH connection could be established." +msgstr "SSH соединение может быть установлено." + +#: ../lib/modules/ldapPublicKey.inc:55 ../lib/modules/ldapPublicKey.inc:65 +#: ../lib/modules/ldapPublicKey.inc:69 ../lib/modules/ldapPublicKey.inc:81 +#: ../lib/modules/ldapPublicKey.inc:117 +msgid "SSH public key" +msgstr "Публичный ключ SSH" + +#: ../lib/modules/ldapPublicKey.inc:88 ../lib/modules/ldapPublicKey.inc:92 +#: ../lib/modules/ldapPublicKey.inc:225 ../lib/modules/ldapPublicKey.inc:265 +msgid "SSH public keys" +msgstr "Публичный ключ SSH" + +#: ../help/help.inc:83 +msgid "SSL certificate" +msgstr "SSL сертификат" + +#: ../templates/config/mainmanage.php:262 +msgid "SSL certificates" +msgstr "SSL сертификаты" + +#: ../lib/modules/zarafaServer.inc:65 ../lib/modules/zarafaServer.inc:99 +#: ../lib/modules/zarafaServer.inc:129 ../lib/modules/zarafaServer.inc:168 +#: ../lib/modules/zarafaServer.inc:196 ../lib/modules/zarafaServer.inc:374 +msgid "SSL port" +msgstr "Порт SSL" + +#: ../templates/lists/changePassword.php:366 +#: ../templates/lists/changePassword.php:397 +msgid "Samba" +msgstr "Samba" + +#: ../lib/types/user.inc:276 ../lib/types/user.inc:373 +#: ../lib/types/user.inc:405 ../lib/types/user.inc:829 +#: ../lib/modules/sambaSamAccount.inc:139 +#: ../lib/modules/sambaGroupMapping.inc:94 +msgid "Samba 3" +msgstr "Samba 3" + +#: ../lib/modules/sambaDomain.inc:203 ../lib/modules/sambaDomain.inc:204 +msgid "Samba 3 domain SID is invalid!" +msgstr "Неправильный SID Samba 3 domain!" + +#: ../lib/types/smbDomain.inc:62 +msgid "Samba 3 domain entries" +msgstr "Учетные записи доменов Samba 3" + +#: ../lib/modules/posixGroup.inc:382 ../lib/modules/posixAccount.inc:203 +#: ../lib/modules/posixAccount.inc:221 +msgid "Samba ID pool" +msgstr "Пул Samba ID" + +#: ../lib/modules/posixGroup.inc:393 ../lib/modules/posixGroup.inc:499 +#: ../lib/modules/posixGroup.inc:584 ../lib/modules/posixAccount.inc:131 +#: ../lib/modules/posixAccount.inc:208 ../lib/modules/posixAccount.inc:226 +#: ../lib/modules/posixAccount.inc:490 +msgid "Samba ID pool DN" +msgstr "DN пула Samba ID" + +#: ../lib/modules/sambaSamAccount.inc:319 +#: ../lib/modules/sambaSamAccount.inc:323 +#: ../lib/modules/sambaSamAccount.inc:464 +#: ../lib/modules/sambaSamAccount.inc:530 +msgid "Samba RID" +msgstr "Samba RID" + +#: ../lib/modules/sambaGroupMapping.inc:122 +#: ../lib/modules/sambaGroupMapping.inc:147 +msgid "Samba RID number" +msgstr "Номер Samba RID " + +#: ../lib/modules/sambaGroupMapping.inc:116 +msgid "Samba display name" +msgstr "Samba отображаемое имя" + +#: ../lib/modules/sambaDomain.inc:51 +msgid "Samba domain" +msgstr "Домен Samba" + +#: ../lib/modules/sambaGroupMapping.inc:238 +msgid "Samba domain name" +msgstr "Имя домена Samba" + +#: ../lib/types/smbDomain.inc:53 +msgid "Samba domains" +msgstr "Samba домены" + +#: ../lib/modules/sambaGroupMapping.inc:106 +#: ../lib/modules/sambaGroupMapping.inc:128 +#: ../lib/modules/sambaGroupMapping.inc:155 +#: ../lib/modules/sambaGroupMapping.inc:528 +msgid "Samba group type" +msgstr "Samba тип группы" + +#: ../lib/modules/sambaSamAccount.inc:251 +msgid "Samba password" +msgstr "Samba пароль" + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:219 +#: ../lib/modules/sambaSamAccount.inc:304 +#: ../lib/modules/sambaSamAccount.inc:307 +#: ../lib/modules/sambaSamAccount.inc:505 +#: ../lib/modules/sambaSamAccount.inc:589 +#: ../lib/modules/sambaSamAccount.inc:1215 +#: ../lib/modules/sambaSamAccount.inc:1741 +#: ../lib/modules/sambaSamAccount.inc:1879 +msgid "Samba workstations" +msgstr "Samba компьютеры" + +#: ../lib/modules/sambaSamAccount.inc:1351 +msgid "Saturday" +msgstr "Суббота" + +#: ../templates/config/confmodules.php:224 +#: ../templates/config/confmain.php:450 +#: ../templates/config/moduleSettings.php:235 +#: ../templates/config/conftypes.php:318 +#: ../templates/selfService/selfServiceMain.php:397 +#: ../templates/selfService/adminMain.php:660 +#: ../templates/pdfedit/pdfpage.php:636 +#: ../templates/profedit/profilepage.php:238 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1243 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1247 +#: ../lib/modules/inetOrgPerson.inc:3237 ../lib/modules/customFields.inc:2944 +#: ../lib/modules.inc:1184 +msgid "Save" +msgstr "Сохранить" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +msgid "Save a dump of this object" +msgstr "Сохранить дамп этого объекта" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1244 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Save a dump of this object and all of its children" +msgstr "Сохранить дамп этого объекта и всех его потомков" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:90 +msgid "Save as file" +msgstr "Сохранить как файл" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:172 +msgid "Save changes" +msgstr "Сохранить изменения" + +#: ../lib/tools/schemaBrowser.inc:44 +msgid "Schema browser" +msgstr "Браузер схемы" + +#: ../templates/serverInfo.php:119 +msgid "Schema suffix" +msgstr "Суффикс схемы" + +#: ../templates/tests/schemaTest.php:55 ../templates/tests/index.php:58 +#: ../lib/tools/tests.inc:116 +msgid "Schema test" +msgstr "Тест схемы" + +#: ../lib/modules/eduPerson.inc:85 ../lib/modules/eduPerson.inc:89 +#: ../lib/modules/eduPerson.inc:168 ../lib/modules/eduPerson.inc:226 +#: ../lib/modules/eduPerson.inc:282 ../lib/modules/eduPerson.inc:767 +msgid "Scoped affiliations" +msgstr "Scoped affiliations" + +#: ../help/help.inc:99 +msgid "Script path" +msgstr "Путь к скрипту" + +#: ../templates/config/confmain.php:543 +msgid "Script path is invalid!" +msgstr "Путь к скрипту неправильный" + +#: ../templates/config/confmain.php:562 +msgid "Script rights are invalid!" +msgstr "Некорректные права скрипта!" + +#: ../templates/config/confmain.php:546 +msgid "Script server is invalid!" +msgstr "Сервер скрипта неправильный!" + +#: ../help/help.inc:110 +msgid "Script servers" +msgstr "Серверы скрипта" + +#: ../templates/serverInfo.php:300 ../templates/serverInfo.php:380 +#: ../templates/3rdParty/pla/lib/QueryRender.php:75 +#: ../templates/3rdParty/pla/lib/QueryRender.php:180 +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:619 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:235 +msgid "Search" +msgstr "Поиск" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +#: ../templates/3rdParty/pla/lib/QueryRender.php:190 +msgid "Search Results" +msgstr "Результаты поиска" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +#: ../templates/3rdParty/pla/lib/export_functions.php:201 +#: ../templates/3rdParty/pla/htdocs/export_form.php:81 +msgid "Search filter" +msgstr "Фильтр поиска" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:293 +msgid "Search returned no results" +msgstr "Ничего не найдено" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +#: ../templates/3rdParty/pla/lib/export_functions.php:200 +#: ../templates/3rdParty/pla/htdocs/export_form.php:67 +msgid "Search scope" +msgstr "Область поиска" + +#: ../lib/modules/asteriskExtension.inc:450 +msgid "Search tree suffix for users" +msgstr "Суффикс пользователей для поиска в дереве" + +#: ../templates/pdfedit/pdfpage.php:608 +msgid "Section" +msgstr "Секция" + +#: ../lib/modules/windowsGroup.inc:60 +msgid "Security" +msgstr "Безопасность" + +#: ../templates/3rdParty/pla/lib/Template.php:397 +#: ../templates/3rdParty/pla/lib/Template.php:422 +#: ../templates/3rdParty/pla/lib/Template.php:427 +#: ../templates/3rdParty/pla/lib/Template.php:484 +#: ../templates/3rdParty/pla/lib/Template.php:509 +#: ../templates/3rdParty/pla/lib/Template.php:514 +msgid "Security error: The file being uploaded may be malicious." +msgstr "Ошибка безопасности: Загружаемый файл может быть опасен." + +#: ../lib/modules/zarafaGroup.inc:75 ../lib/modules/zarafaGroup.inc:172 +#: ../lib/modules/zarafaGroup.inc:197 ../lib/modules/zarafaGroup.inc:281 +#: ../lib/modules/zarafaGroup.inc:661 +msgid "Security group" +msgstr "Группа безопасности" + +#: ../lib/modules/windowsGroup.inc:139 +msgid "" +"Security groups are used for permission management and distribution groups " +"as email lists." +msgstr "" +"Группы безопасности используются для управления и распределения разрешений " +"групп как списков рассылки." + +#: ../lib/modules/passwordSelfReset.inc:73 +#: ../lib/modules/passwordSelfReset.inc:176 +#: ../lib/modules/passwordSelfReset.inc:218 +msgid "Security questions" +msgstr "Секретные вопросы" + +#: ../templates/config/mainmanage.php:256 ../templates/config/confmain.php:440 +msgid "Security settings" +msgstr "Настройки безопасности" + +#: ../templates/help.php:94 +msgid "See also" +msgstr "Смотрите также" + +#: ../lib/account.inc:762 +msgid "See the manual for instructions to solve this problem." +msgstr "Смотрите руководство пользователя для решения этой проблемы." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:494 +msgid "Select a template for the creation process" +msgstr "Выберите шаблон для создания" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:498 +msgid "Select a template to edit the entry" +msgstr "Выберите шаблон для редактирования этой записи" + +#: ../lib/lists.inc:468 +msgid "Select all" +msgstr "Выбрать все" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:31 +msgid "Select an LDIF file" +msgstr "Выберите LDIF файл" + +#: ../lib/modules/nisnetgroup.inc:233 ../lib/modules/nisnetgroup.inc:262 +msgid "Select host" +msgstr "Выбрать хост" + +#: ../lib/modules/customFields.inc:2619 +msgid "Select list" +msgstr "Выберите список" + +#: ../lib/modules/nisMailAlias.inc:170 ../lib/modules/nisMailAlias.inc:185 +msgid "Select mail" +msgstr "Выберите почту" + +#: ../lib/modules/nisnetgroup.inc:239 ../lib/modules/nisnetgroup.inc:268 +msgid "Select user" +msgstr "Выбрать пользователя" + +#: ../lib/modules/posixAccount.inc:1463 ../lib/modules/posixAccount.inc:1496 +#: ../lib/modules/windowsUser.inc:726 ../lib/modules/nisnetgroup.inc:377 +#: ../lib/modules/groupOfNamesUser.inc:111 +msgid "Selected groups" +msgstr "Выбранные группы" + +#: ../templates/masscreate.php:158 ../templates/config/confmodules.php:299 +msgid "Selected modules" +msgstr "Выбранные модули" + +#: ../lib/modules/posixGroup.inc:291 ../lib/modules/asteriskExtension.inc:454 +msgid "Selected users" +msgstr "Выбранные пользователи" + +#: ../templates/selfService/adminMain.php:298 +msgid "Self service configuration" +msgstr "Конфигурация сервиса самообслуживания" + +#: ../templates/selfService/adminMain.php:352 +msgid "Self service configuration editor" +msgstr "Редактор конфигурации сервиса самообслуживания" + +#: ../templates/selfService/adminMain.php:358 +msgid "Self service login" +msgstr "Вход в сервис самообслуживания" + +#: ../lib/modules/passwordSelfReset.inc:195 +msgid "Self service login attribute" +msgstr "Атрибут, используемый для входа в сервис самообслуживания" + +#: ../templates/selfService/adminMain.php:344 +msgid "Self service profile" +msgstr "Профиль сервиса самообслуживания" + +#: ../lib/modules/passwordSelfReset.inc:119 +#: ../lib/modules/passwordSelfReset.inc:238 +msgid "Send confirmation mail" +msgstr "Послать письмо с подтверждением" + +#: ../lib/modules/passwordSelfReset.inc:101 +#: ../lib/modules/passwordSelfReset.inc:222 +msgid "Send notification mail" +msgstr "Послать письмо с уведомлением" + +#: ../lib/modules/inetOrgPerson.inc:525 ../lib/modules/inetOrgPerson.inc:797 +msgid "Send password via mail" +msgstr "Послать пароль по почте" + +#: ../templates/lists/changePassword.php:305 +#: ../templates/lists/changePassword.php:335 ../lib/modules.inc:1062 +#: ../help/help.inc:188 +msgid "Send via mail" +msgstr "Послать по почте" + +#: ../lib/modules/qmailGroup.inc:83 ../lib/modules/qmailGroup.inc:213 +#: ../lib/modules/qmailGroup.inc:217 ../lib/modules/qmailGroup.inc:346 +#: ../lib/modules/qmailGroup.inc:401 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:512 ../lib/modules/qmailGroup.inc:1065 +msgid "Sender email addresses" +msgstr "Адрес электронной почты отправителя" + +#: ../lib/modules/qmailGroup.inc:81 ../lib/modules/qmailGroup.inc:165 +#: ../lib/modules/qmailGroup.inc:169 ../lib/modules/qmailGroup.inc:288 +#: ../lib/modules/qmailGroup.inc:380 ../lib/modules/qmailGroup.inc:514 +#: ../lib/modules/qmailGroup.inc:783 ../lib/modules/qmailGroup.inc:1064 +msgid "Sender entries" +msgstr "Записи отправителя" + +#: ../lib/modules/qmailGroup.inc:85 ../lib/modules/qmailGroup.inc:181 +#: ../lib/modules/qmailGroup.inc:185 ../lib/modules/qmailGroup.inc:304 +#: ../lib/modules/qmailGroup.inc:386 ../lib/modules/qmailGroup.inc:513 +#: ../lib/modules/qmailGroup.inc:1066 +msgid "Sender filter" +msgstr "Фильтр отправителя" + +#: ../lib/modules/passwordSelfReset.inc:102 +msgid "Sends a mail to the user to inform him about the password change." +msgstr "Посылает письмо пользователю для уведомления его о смене пароля." + +#: ../lib/modules/passwordSelfReset.inc:120 +msgid "" +"Sends a mail to the user to validate his email address before the password " +"change." +msgstr "" +"Посылает письмо пользователю для проверки его адреса электронной почты перед " +"сменой пароля." + +#: ../lib/modules/inetOrgPerson.inc:798 ../help/help.inc:189 +msgid "" +"Sends the password to the user via mail. Please edit your LAM server profile " +"to setup the mail settings." +msgstr "" +"Посылает пароль по почте. Пожалуйста, измените профиль вашего LAM сервера и " +"укажите настройки почты." + +#: ../templates/config/mainmanage.php:312 ../lib/modules/device.inc:58 +#: ../lib/modules/device.inc:90 ../lib/modules/device.inc:120 +#: ../lib/modules/device.inc:176 ../lib/modules/device.inc:438 +msgid "Serial number" +msgstr "Серийный номер" + +#: ../templates/tests/lamdaemonTest.php:72 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:166 +#: ../templates/3rdParty/pla/htdocs/import.php:47 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:110 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +#: ../templates/3rdParty/pla/htdocs/export_form.php:56 +#: ../lib/modules/kolabGroup.inc:270 +msgid "Server" +msgstr "Сервер" + +#: ../templates/config/confmain.php:238 +#: ../templates/selfService/adminMain.php:409 ../lib/modules/qmailUser.inc:111 +#: ../lib/modules/qmailUser.inc:156 ../lib/modules/qmailUser.inc:236 +#: ../lib/modules/qmailUser.inc:351 ../lib/modules/qmailUser.inc:420 +#: ../lib/modules/qmailUser.inc:585 ../lib/modules/qmailUser.inc:1195 +#: ../lib/modules/imapAccess.inc:70 ../lib/modules/imapAccess.inc:108 +#: ../help/help.inc:58 +msgid "Server address" +msgstr "Адрес сервера" + +#: ../templates/config/confmain.php:483 +#: ../templates/selfService/adminMain.php:187 +msgid "Server address is invalid!" +msgstr "Неправильный адрес сервера!" + +#: ../templates/serverInfo.php:103 ../lib/tools/serverInfo.inc:44 +msgid "Server information" +msgstr "Информация о сервере" + +#: ../templates/config/confmain.php:299 +msgid "Server list" +msgstr "Список серверов" + +#: ../templates/login.php:471 ../templates/config/confmodules.php:137 +#: ../templates/config/confmain.php:167 +#: ../templates/config/moduleSettings.php:136 +#: ../templates/config/conftypes.php:155 +msgid "Server profile" +msgstr "Профиль сервера" + +#: ../templates/config/confmain.php:268 +#: ../templates/selfService/adminMain.php:429 +msgid "Server settings" +msgstr "Настройки сервера" + +#: ../templates/serverInfo.php:180 +msgid "Server statistics" +msgstr "Статистика сервера" + +#: ../templates/serverInfo.php:205 ../templates/serverInfo.php:211 +msgid "Server time" +msgstr "Время сервера" + +#: ../lib/modules/zarafaServer.inc:138 +msgid "Servers" +msgstr "Сервера" + +#: ../lib/modules/authorizedServiceObject.inc:75 +msgid "Service name (e.g. sshd, imap, ftp). Enter one service per entry." +msgstr "Имя сервиса (например, sshd, imap, ftp). Один сервис на запись." + +#: ../templates/config/mainmanage.php:259 ../help/help.inc:142 +msgid "Session timeout" +msgstr "Таймаут сессии" + +#: ../lib/modules/aliasEntry.inc:101 +msgid "Set" +msgstr "Задать" + +#: ../lib/modules/sambaSamAccount.inc:1442 +#: ../lib/modules/sambaSamAccount.inc:1445 +#: ../lib/modules/sambaSamAccount.inc:1448 +#: ../lib/modules/shadowAccount.inc:455 ../lib/modules/shadowAccount.inc:458 +#: ../lib/modules/shadowAccount.inc:461 +msgid "Set also for Kerberos" +msgstr "Также установить для Kerberos" + +#: ../lib/modules/mitKerberos.inc:683 ../lib/modules/shadowAccount.inc:452 +#: ../lib/modules/heimdalKerberos.inc:589 +msgid "Set also for Samba 3" +msgstr "Также установить для Samba 3" + +#: ../lib/modules/mitKerberos.inc:680 ../lib/modules/sambaSamAccount.inc:1439 +#: ../lib/modules/heimdalKerberos.inc:586 +msgid "Set also for Shadow" +msgstr "Так же установить для Shadow" + +#: ../lib/modules.inc:1197 ../lib/modules.inc:1199 +msgid "Set password" +msgstr "Установить пароль" + +#: ../lib/modules/posixAccount.inc:262 ../lib/modules/posixAccount.inc:438 +msgid "Set primary group as memberUid" +msgstr "Задать основную группу как memberUid" + +#: ../templates/config/profmanage.php:279 +#: ../templates/config/profmanage.php:289 +#: ../templates/config/profmanage.php:290 ../help/help.inc:132 +msgid "Set profile password" +msgstr "Задать пароль профиля" + +#: ../lib/modules.inc:1200 +msgid "Set random password" +msgstr "Задать случайный пароль" + +#: ../templates/lists/changePassword.php:319 +msgid "Set specific password" +msgstr "Задать выбранный пароль" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +msgid "Set the search results to 0 to retrieve all available records." +msgstr "Укажите 0 в результатах поиска, чтобы получить все доступные записи." + +#: ../templates/selfService/adminMain.php:526 +msgid "Set this field read-only." +msgstr "Сделать это поле только для чтения." + +#: ../lib/modules/groupOfNames.inc:89 +msgid "" +"Set this only if your LDAP schema allows that groups may not have any " +"members (e.g. if you use OpenDJ)." +msgstr "" +"Включайте это только если ваша схема LDAP позволяет иметь группы без " +"участников (например если вы используете OpenDJ)." + +#: ../lib/modules/qmailUser.inc:209 +msgid "Sets the delivery mode (e.g. disable mail forwarding)." +msgstr "Устанавливает режим отправки (например, запретить пересылку почты)." + +#: ../lib/modules/posixGroup.inc:472 +msgid "Sets the group password." +msgstr "Установка пароля группы." + +#: ../lib/modules/shadowAccount.inc:84 +msgid "Shadow" +msgstr "Shadow" + +#: ../lib/modules/sambaSamAccount.inc:235 +#: ../lib/modules/sambaSamAccount.inc:371 +#: ../lib/modules/sambaSamAccount.inc:1519 +#: ../lib/modules/sambaSamAccount.inc:1929 +msgid "Shadowing" +msgstr "Shadowing" + +#: ../lib/modules/zarafaUser.inc:105 ../lib/modules/zarafaUser.inc:196 +#: ../lib/modules/zarafaUser.inc:306 ../lib/modules/zarafaUser.inc:399 +#: ../lib/modules/zarafaUser.inc:617 ../lib/modules/zarafaUser.inc:1334 +msgid "Shared store only" +msgstr "Только расшаренное хранилище" + +#: ../lib/modules/ddns.inc:75 +msgid "Should DDNS (Dynamic DNS) be activated?" +msgstr "Должен быть активирован DDNS (Dynamic DNS) ?" + +#: ../lib/modules/ddns.inc:79 +msgid "Should fix IP addresses be added to the DNS server?" +msgstr "Должны быть добавлены фиксированные IP адреса в DNS ?" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1121 +msgid "Show" +msgstr "Показать" + +#: ../templates/massBuildAccounts.php:243 +msgid "Show LDIF file" +msgstr "Показать LDIF файл" + +#: ../lib/types/user.inc:683 +msgid "Show account status" +msgstr "Показать статус аккаунта" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +#: ../templates/3rdParty/pla/htdocs/export_form.php:84 +msgid "Show attributes" +msgstr "Показать атрибуты" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1122 +msgid "Show internal attributes" +msgstr "Показать служебные атрибуты" + +#: ../lib/modules/asteriskExtension.inc:446 +msgid "Show only Asterisk accounts" +msgstr "Показать только аккаунты Asterisk" + +#: ../lib/types/group.inc:343 +msgid "Show primary group members as normal group members" +msgstr "Отобразить главных членов группы, как обычных членов." + +#: ../templates/schema/schema.php:194 +msgid "Single valued" +msgstr "Одно значение" + +#: ../lib/modules/qmailUser.inc:221 +msgid "Size limit in bytes for a single mail. Larger mails will be bounced." +msgstr "Максимальный размер письма. Письма большего размера будут отвергнуты." + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Skip" +msgstr "Пропустить" + +#: ../lib/modules/quota.inc:627 ../lib/modules/systemQuotas.inc:376 +msgid "Soft block" +msgstr "Soft block" + +#: ../lib/modules/quota.inc:106 ../lib/modules/quota.inc:394 +#: ../lib/modules/quota.inc:500 ../lib/modules/systemQuotas.inc:117 +msgid "Soft block limit" +msgstr "Мягкий лимит на используемое место" + +#: ../lib/modules/quota.inc:107 +msgid "Soft block limit." +msgstr "Мягкий лимит на используемое место." + +#: ../lib/modules/quota.inc:629 ../lib/modules/systemQuotas.inc:378 +msgid "Soft inode" +msgstr "Soft inode" + +#: ../lib/modules/quota.inc:129 +msgid "Soft inode (files) limit." +msgstr "Мягкий лимит кол-ва файлов (inodes)." + +#: ../lib/modules/quota.inc:128 ../lib/modules/quota.inc:398 +#: ../lib/modules/quota.inc:502 ../lib/modules/systemQuotas.inc:121 +msgid "Soft inode limit" +msgstr "Мягкий лимит кол-ва inodes" + +#: ../lib/modules/imapAccess.inc:89 +msgid "" +"Some IMAP servers store mailboxes with a prefix (e.g. \"user\" for Cyrus " +"which results in \"user.username\")." +msgstr "" +"Некоторые IMAP сервера хранят почтовые ящики с префиксами (например \"user\" " +"для Cyrus - получается \"user.username\")." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1019 +#, php-format +msgid "Some attributes (%s) were modified and are highlighted below." +msgstr "Некоторые атрибуты (%s) были изменены и выделены ниже." + +#: ../lib/modules.inc:873 +msgid "Some required information is missing" +msgstr "Не вся необходимая информация" + +#: ../templates/help.php:123 +#, php-format +msgid "" +"Sorry this help id ({bold}%s{endbold}) is not available for this module " +"({bold}%s{endbold})." +msgstr "" +"Извините эта помощь id ({bold}%s{endbold}) не доступна для этого модуля " +"({bold}%s{endbold})." + +#: ../templates/help.php:136 +#, php-format +msgid "Sorry this help number ({bold}%s{endbold}) is not available." +msgstr "Извините, этот номер помощи ({bold}%s{endbold}) не доступен." + +#: ../lib/modules/sambaSamAccount.inc:316 +#: ../lib/modules/sambaSamAccount.inc:1252 +msgid "Special user" +msgstr "Специальный пользователь" + +#: ../lib/modules/zarafaDynamicGroup.inc:85 +#: ../lib/modules/zarafaAddressList.inc:73 +msgid "" +"Specifies a filter that matches the members (e.g. \"(mail=*@zarafa.nl)\")." +msgstr "" +"Задает фильтр, которому должны соответствовать участники (например " +"\"(mail=*@zarafa.nl)\")." + +#: ../help/help.inc:230 +msgid "Specifies if the mail should be sent as text or HTML." +msgstr "Указывает, должна ли почта посылаться как текст или как HTML/" + +#: ../lib/modules/asteriskAccount.inc:215 +msgid "Specifies if the user can call forward." +msgstr "Указывает, может ли пользователь делать переадресацию звонка." + +#: ../lib/modules/zarafaGroup.inc:76 +msgid "Specifies if this group has security possibilities." +msgstr "Указывает, имеет ли эта группа возможности безопасности." + +#: ../lib/modules/zarafaServer.inc:74 +msgid "" +"Specifies if this server contains the public store. This may be changed only " +"for new entries." +msgstr "" +"Указывает, содержит ли этот сервер публичное хранилище. Это может быть " +"изменено только для новых записей." + +#: ../lib/modules/dhcp_settings.inc:195 +msgid "Specifies if unknown clients are allowed." +msgstr "Указывает, разрешены ли неизвестные клиенты." + +#: ../lib/modules/ppolicy.inc:126 +msgid "Specifies if users are allowed to change their own passwords or not." +msgstr "Определяет, позволено ли пользователям менять свои пароли или нет." + +#: ../lib/modules/zarafaDynamicGroup.inc:81 +#: ../lib/modules/zarafaAddressList.inc:69 +msgid "" +"Specifies the LDAP base where to search for members (e.g. \"ou=zarafa," +"dc=company,dc=com\")." +msgstr "" +"Указывает базу LDAP для поиска участников (например \"ou=zarafa,dc=company," +"dc=com\")." + +#: ../lib/modules/customFields.inc:143 +msgid "Specifies the allowed file extension. This is checked at upload time." +msgstr "" +"Указывает допустимое расширение файла. Это проверяется во время загрузки " +"файла." + +#: ../lib/modules/zarafaContact.inc:89 ../lib/modules/zarafaGroup.inc:92 +#: ../lib/modules/zarafaUser.inc:138 +msgid "" +"Specifies the attribute that should be used to reference the entries. If you " +"would like to reference also groups then this must be set to \"dn\"." +msgstr "" +"Определяет атрибут, который должен быть использован для ссылок на записи. " +"Если вы также хотите ссылаться на группы, тогда здесь должно быть \"dn\"." + +#: ../lib/modules/zarafaUser.inc:114 +msgid "Specifies the capacity of this resource." +msgstr "Определяет емкость этого ресурса." + +#: ../lib/modules/customFields.inc:139 +msgid "Specifies the maximum allowed file size in bytes." +msgstr "Указывает максимально допустимый размер файла в байтах." + +#: ../lib/modules/mitKerberos.inc:130 ../lib/modules/heimdalKerberos.inc:104 +msgid "Specifies the maximum lifetime of a ticket in days." +msgstr "Указывает максимальное время жизни билета в днях." + +#: ../lib/modules/ppolicy.inc:110 +msgid "" +"Specifies the maximum number of seconds before a password is due to expire " +"that expiration warning messages will be returned to a user." +msgstr "" +"Определяет, за какое максимальное количество секунд до окончания действия " +"пароля пользователю начнут показываться предупреждения." + +#: ../lib/modules/freeRadius.inc:102 +msgid "" +"Specifies the maximum number of seconds that a connection can be idle before " +"the session is terminated." +msgstr "" +"Указывает максимальное количество секунд бездействия соединения до разрыва " +"сессии." + +#: ../lib/modules/mitKerberos.inc:126 ../lib/modules/heimdalKerberos.inc:108 +msgid "Specifies the maximum renewable lifetime of a ticket in days." +msgstr "Указывает максимальное обновляемое время жизни билета в днях." + +#: ../lib/modules/ppolicy.inc:114 +msgid "" +"Specifies the minimum number of characters that will be accepted in a " +"password." +msgstr "Задает минимальное кол-во символов для пароля пользователя." + +#: ../lib/modules/ppolicy.inc:102 +msgid "" +"Specifies the number of consecutive failed login attempts after which the " +"password may not be used to login." +msgstr "" +"Указывает максимальное количество последовательных неудачных попыток ввода " +"пароля, после которого пароль становится недействительным для входа в " +"систему." + +#: ../lib/modules/ppolicy.inc:86 +msgid "" +"Specifies the number of previously used passwords which should be saved in " +"the password history. New passwords can only be set if they are not in the " +"password history." +msgstr "" +"Указывает количество паролей использованных ранее, которое следует хранить в " +"истории паролей. Новый пароль может быть использован, только если его нет в " +"истории паролей." + +#: ../lib/modules/ppolicy.inc:106 +msgid "" +"Specifies the number of seconds after which old consecutive failed login " +"attempts are purged from the failure counter, even though no successful " +"authentication has occurred." +msgstr "" +"Указывает количество секунд, после которого сбрасывается счетчик неудачных " +"последовательных попыток входа в систему, даже если не удалось " +"аутентифицироваться." + +#: ../lib/modules/ppolicy.inc:98 +msgid "" +"Specifies the number of seconds during which the password cannot be used to " +"login due to too many consecutive failed bind attempts." +msgstr "" +"Определяет количество секунд, в течение которых пароль не может быть " +"использован для входа в силу слишком большого количества неудачных " +"последовательных попыток связи." + +#: ../lib/modules/eduPerson.inc:86 ../lib/modules/eduPerson.inc:90 +msgid "" +"Specifies the person's affiliation within a particular security domain in " +"broad categories such as student, faculty, staff, alum, etc." +msgstr "" +"Определяет принадлежность персоны в пределах конкретного security domain к " +"таким категориям, как student, faculty, staff, alum, и др." + +#: ../lib/modules/eduPerson.inc:82 +msgid "" +"Specifies the person's primary relationship to the institution in broad " +"categories such as student, faculty, staff, alum, etc." +msgstr "" +"Определяет основную принадлежность персоны в пределах учреждения к таким " +"категориям, как student, faculty, staff, alum, и др." + +#: ../lib/modules/eduPerson.inc:99 ../lib/modules/eduPerson.inc:103 +msgid "" +"Specifies the person's relationships to the institution in broad categories " +"such as student, faculty, staff, alum, etc." +msgstr "" +"Определяет отношение персоны к учреждению в широком смысле : например " +"student, faculty, staff, alum, и др." + +#: ../lib/modules/asteriskAccount.inc:167 +msgid "Specifies the user's pickup group." +msgstr "Описывает группа перехвата вызова пользователя." + +#: ../lib/modules/zarafaUser.inc:102 +msgid "" +"Specifies whether the user is an admin. System administrators may " +"additionally create, modify and delete companies." +msgstr "" +"Указывает, является ли пользователь администратором. Системные " +"администраторы могут также создавать, изменять и удалять компании." + +#: ../lib/modules/ppolicy.inc:130 +msgid "" +"Specifies whether the user's existing password must be sent along with their " +"new password when changing a password. Attention, LAM does not support " +"password changes which require the old password." +msgstr "" +"Определяет, должен ли при смене пароля существующий пароль пользователя " +"посылаться вместе с новым паролем. Внимание, LAM не поддерживает смены " +"пароля, которые требуют старый пароль." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1460 +msgid "Specify attributes and values" +msgstr "Определяет атрибуты и значения" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +msgid "Standard LDAP search filter. Example: (&(sn=Smith)(givenName=David))" +msgstr "" +"Стандартный поисковый фильтр LDAP. Например: (&(sn=Smith)(givenName=David))" + +#: ../templates/serverInfo.php:193 ../templates/serverInfo.php:199 +msgid "Start time" +msgstr "Время старта" + +#: ../lib/modules/windowsUser.inc:147 ../lib/modules/windowsUser.inc:282 +#: ../lib/modules/windowsUser.inc:393 ../lib/modules/windowsUser.inc:415 +#: ../lib/modules/windowsUser.inc:531 ../lib/modules/windowsUser.inc:1228 +#: ../lib/modules/windowsUser.inc:1340 ../lib/modules/inetOrgPerson.inc:145 +#: ../lib/modules/inetOrgPerson.inc:173 ../lib/modules/inetOrgPerson.inc:318 +#: ../lib/modules/inetOrgPerson.inc:584 ../lib/modules/inetOrgPerson.inc:626 +#: ../lib/modules/inetOrgPerson.inc:848 ../lib/modules/inetOrgPerson.inc:852 +#: ../lib/modules/inetOrgPerson.inc:1588 ../lib/modules/inetOrgPerson.inc:2378 +#: ../lib/modules/inetOrgPerson.inc:3090 +msgid "State" +msgstr "Область" + +#: ../templates/pdfedit/pdfpage.php:538 ../templates/pdfedit/pdfpage.php:540 +msgid "Static text" +msgstr "Текст" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1455 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1467 +#, php-format +msgid "Step %s of %s" +msgstr "Шаг %s из %s" + +#: ../lib/modules/windowsUser.inc:230 ../lib/modules/inetOrgPerson.inc:377 +msgid "Steve" +msgstr "Steve" + +#: ../lib/modules/sambaSamAccount.inc:408 ../lib/modules/posixAccount.inc:343 +#: ../lib/modules/windowsUser.inc:242 ../lib/modules/inetOrgPerson.inc:2505 +#: ../lib/modules/asteriskVoicemail.inc:165 +msgid "Steve Miller" +msgstr "Steve Miller" + +#: ../lib/modules/posixAccount.inc:351 +msgid "Steve Miller,Room 2.14,123-123-1234,123-123-1234" +msgstr "Steve Miller,Room 2.14,123-123-1234,123-123-1234" + +#: ../lib/modules/eduPerson.inc:183 +msgid "Steve, Stevo" +msgstr "Steve, Stevo" + +#: ../lib/modules/windowsUser.inc:151 ../lib/modules/windowsUser.inc:258 +#: ../lib/modules/windowsUser.inc:394 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:527 ../lib/modules/windowsUser.inc:1229 +#: ../lib/modules/windowsUser.inc:1339 ../lib/modules/inetOrgPerson.inc:78 +#: ../lib/modules/inetOrgPerson.inc:142 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:310 ../lib/modules/inetOrgPerson.inc:446 +#: ../lib/modules/inetOrgPerson.inc:614 ../lib/modules/inetOrgPerson.inc:733 +#: ../lib/modules/inetOrgPerson.inc:737 ../lib/modules/inetOrgPerson.inc:1480 +#: ../lib/modules/inetOrgPerson.inc:2363 ../lib/modules/inetOrgPerson.inc:3013 +msgid "Street" +msgstr "Улица" + +#: ../templates/pdfedit/pdfpage.php:449 ../templates/pdfedit/pdfmain.php:315 +msgid "Structure name" +msgstr "Имя структуры" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:136 +#: ../templates/3rdParty/pla/htdocs/export_form.php:33 +msgid "Sub (entire subtree)" +msgstr "Sub (все поддерево)" + +#: ../lib/types/netgroup.inc:93 ../lib/modules/nisnetgroup.inc:84 +#: ../lib/modules/nisnetgroup.inc:119 ../lib/modules/nisnetgroup.inc:134 +#: ../lib/modules/nisnetgroup.inc:202 ../lib/modules/nisnetgroup.inc:376 +#: ../lib/modules/nisnetgroup.inc:576 +msgid "Subgroups" +msgstr "Подгруппы" + +#: ../templates/config/confmain.php:338 ../lib/modules/selfRegistration.inc:77 +#: ../lib/modules/selfRegistration.inc:135 +#: ../lib/modules/passwordSelfReset.inc:109 +#: ../lib/modules/passwordSelfReset.inc:230 +#: ../lib/modules/passwordSelfReset.inc:246 ../help/help.inc:222 +msgid "Subject" +msgstr "Тема" + +#: ../lib/types/dhcp.inc:94 ../lib/modules/dhcp_settings.inc:142 +#: ../lib/modules/dhcp_settings.inc:200 ../lib/modules/dhcp_settings.inc:215 +#: ../lib/modules/dhcp_settings.inc:235 ../lib/modules/dhcp_settings.inc:554 +#: ../lib/modules/dhcp_settings.inc:678 +msgid "Subnet" +msgstr "Подсеть" + +#: ../lib/modules/dhcp_settings.inc:182 ../lib/modules/dhcp_settings.inc:208 +#: ../lib/modules/dhcp_settings.inc:226 ../lib/modules/dhcp_settings.inc:293 +#: ../lib/modules/dhcp_settings.inc:599 ../lib/modules/dhcp_settings.inc:674 +msgid "Subnet mask" +msgstr "Маска подсети" + +#: ../templates/schema/schema.php:176 +msgid "Substring Rule" +msgstr "Substring Rule" + +#: ../templates/3rdParty/pla/htdocs/import.php:63 +#: ../templates/3rdParty/pla/htdocs/copy.php:56 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:68 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:85 +msgid "Success" +msgstr "Удачно" + +#: ../templates/3rdParty/pla/htdocs/delete.php:32 +#, php-format +msgid "Successfully deleted DN %s" +msgstr "Успешно удалено DN %s" + +#: ../lib/modules/sudoRole.inc:38 +msgid "Sudo role" +msgstr "Роль sudo" + +#: ../lib/types/sudo.inc:159 +#, php-format +msgid "Sudo role count: %s" +msgstr "Количество ролей sudo: %s" + +#: ../lib/types/sudo.inc:48 +msgid "Sudo role management" +msgstr "Управление ролями sudo" + +#: ../lib/types/sudo.inc:39 +msgid "Sudo roles" +msgstr "Роли sudo" + +#: ../lib/modules.inc:985 +msgid "Suffix" +msgstr "Суффикс" + +#: ../lib/modules/posixGroup.inc:396 ../lib/modules/posixGroup.inc:491 +msgid "Suffix for GID/group name check" +msgstr "Суффикс для проверки GID/имени группы" + +#: ../lib/modules/posixAccount.inc:217 ../lib/modules/posixAccount.inc:235 +#: ../lib/modules/posixAccount.inc:478 +msgid "Suffix for UID/user name check" +msgstr "Суффикс для проверки UID/имени пользователя" + +#: ../lib/modules/sambaSamAccount.inc:1351 +msgid "Sunday" +msgstr "Воскресенье" + +#: ../templates/3rdParty/pla/htdocs/compare.php:72 +msgid "Switch entries" +msgstr "Переключить записи" + +#: ../lib/modules/asteriskAccount.inc:89 +#: ../lib/modules/asteriskVoicemail.inc:77 +msgid "Sync Asterisk password with Unix password" +msgstr "Синхронизировать пароль Asterisk с Unix паролем" + +#: ../lib/modules/heimdalKerberos.inc:235 +msgid "Sync Heimdal Kerberos password with Unix password" +msgstr "Синхронизировать пароль Heimdal Kerberos с Unix паролем" + +#: ../lib/modules/mitKerberos.inc:270 +msgid "Sync MIT Kerberos password with Unix password" +msgstr "Синхронизировать пароль MIT Kerberos с Unix паролем" + +#: ../lib/modules/passwordSelfReset.inc:137 +#: ../lib/modules/passwordSelfReset.inc:220 +msgid "Sync Samba 3 password" +msgstr "Синхронизировать пароль Samba 3" + +#: ../lib/modules/sambaSamAccount.inc:241 +msgid "Sync Samba LM password with Unix password" +msgstr "Синхронизировать Samba LM пароль с Unix паролем" + +#: ../lib/modules/sambaSamAccount.inc:240 +msgid "Sync Samba NT password with Unix password" +msgstr "Синхронизировать Samba NT пароль с Unix паролем" + +#: ../lib/modules/customFields.inc:1027 +msgid "Sync fields with page layout" +msgstr "Синхронизировать поля с макетом страницы" + +#: ../templates/schema/schema.php:181 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:142 +msgid "Syntax" +msgstr "Синтаксис" + +#: ../templates/schema/schema.php:89 +msgid "Syntax OID" +msgstr "Синтаксис OID" + +#: ../templates/schema/schema.php:73 ../templates/schema/schema.php:74 +msgid "Syntaxes" +msgstr "Синтаксисы" + +#: ../lib/modules/zarafaUser.inc:634 ../lib/modules/zarafaUser.inc:1325 +msgid "System administrator" +msgstr "Системный администратор" + +#: ../templates/config/mainmanage.php:356 +msgid "System logging" +msgstr "Запись в системный лог" + +#: ../help/help.inc:60 +msgid "TLS cannot be combined with ldaps://." +msgstr "TLS не может быть использована вместе с ldaps://." + +#: ../lib/modules/kolabUser.inc:211 +msgid "Target of invitation policy is invalid!" +msgstr "Цель политики приглашения недействительна!" + +#: ../templates/pdfedit/pdfmain.php:279 +#: ../templates/profedit/profilemain.php:282 +msgid "Target server profile" +msgstr "Профиль целевого сервера" + +#: ../templates/help.php:89 ../lib/modules.inc:654 +msgid "Technical name" +msgstr "Техническое имя" + +#: ../templates/lists/changePassword.php:271 ../lib/types/user.inc:203 +#: ../lib/modules/windowsUser.inc:155 ../lib/modules/windowsUser.inc:306 +#: ../lib/modules/windowsUser.inc:395 ../lib/modules/windowsUser.inc:412 +#: ../lib/modules/windowsUser.inc:451 ../lib/modules/windowsUser.inc:537 +#: ../lib/modules/windowsUser.inc:1230 ../lib/modules/windowsUser.inc:1333 +#: ../lib/modules/inetOrgPerson.inc:68 ../lib/modules/inetOrgPerson.inc:141 +#: ../lib/modules/inetOrgPerson.inc:188 ../lib/modules/inetOrgPerson.inc:328 +#: ../lib/modules/inetOrgPerson.inc:486 ../lib/modules/inetOrgPerson.inc:641 +#: ../lib/modules/inetOrgPerson.inc:765 ../lib/modules/inetOrgPerson.inc:769 +#: ../lib/modules/inetOrgPerson.inc:1713 ../lib/modules/inetOrgPerson.inc:2368 +#: ../lib/modules/inetOrgPerson.inc:2969 +msgid "Telephone number" +msgstr "Телефонный номер" + +#: ../lib/modules/inetOrgPerson.inc:424 +msgid "Temp" +msgstr "Temp" + +#: ../lib/modules/windowsUser.inc:254 ../lib/modules/inetOrgPerson.inc:400 +msgid "Temp, contract till December" +msgstr "Временно, контракт до декабря" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +msgid "Template" +msgstr "Шаблон" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:520 +msgid "Templates" +msgstr "Шаблоны" + +#: ../lib/modules/sambaSamAccount.inc:380 +#: ../lib/modules/sambaSamAccount.inc:593 +#: ../lib/modules/sambaSamAccount.inc:1264 +msgid "Terminal server options" +msgstr "Настройки сервера терминалов" + +#: ../lib/tools/tests.inc:44 +msgid "Tests" +msgstr "Тесты" + +#: ../templates/config/confmain.php:347 ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:108 +#: ../lib/modules/passwordSelfReset.inc:113 +#: ../lib/modules/passwordSelfReset.inc:123 +#: ../lib/modules/passwordSelfReset.inc:234 +#: ../lib/modules/passwordSelfReset.inc:250 ../help/help.inc:224 +msgid "Text" +msgstr "Текст" + +#: ../lib/modules/customFields.inc:2071 +msgid "Text area" +msgstr "Область ввода текста" + +#: ../templates/pdfedit/pdfpage.php:617 ../lib/modules/customFields.inc:1646 +msgid "Text field" +msgstr "Текстовое поле" + +#: ../lib/modules/eduPerson.inc:108 +msgid "" +"The \"NetID\" of the person for the purposes of inter-institutional " +"authentication. It should be represented in the form \"user@scope\" where " +"scope defines a local security domain." +msgstr "" +"\"NetID\" персоны для целей аутентификации между учреждениями. Должно быть " +"представлено в форме \"user@scope\" где scope определяет локальный security " +"domain." + +#: ../lib/modules/dhcp_settings.inc:329 +msgid "The DHCP ranges were changed to fit for the new subnet." +msgstr "DHCP диапазон был изменен в соответствии с новой подсетью." + +#: ../lib/modules/eduPerson.inc:120 +msgid "" +"The DN of the directory entry representing the institution with which the " +"person is associated." +msgstr "" +"DN записи каталога, представляющей учреждение, с которым связан человек." + +#: ../lib/modules/eduPerson.inc:124 +msgid "" +"The DN of the directory entry representing the person's primary " +"organisational unit." +msgstr "DN записи каталога, соответствующей основному OU персоны." + +#: ../lib/modules/eduPerson.inc:128 ../lib/modules/eduPerson.inc:132 +msgid "" +"The DNs of the directory entries representing the person's organisational " +"units." +msgstr "DN записей каталога, соответствующих OU персоны." + +#: ../lib/modules/posixGroup.inc:488 +msgid "" +"The ID of this group was changed. You can update all user and host entries " +"to the new group ID." +msgstr "" +"ID этой группы был изменен. Вы можете обновить ID группы во всех записях " +"пользователей и хостов на новый." + +#: ../templates/config/mainmanage.php:100 +#, php-format +msgid "The IP address %s is invalid!" +msgstr "IP адрес %s неправильный!" + +#: ../lib/modules/fixed_ip.inc:417 +msgid "The IP address does not match the subnet." +msgstr "IP адрес не соответствует подсети." + +#: ../lib/modules/fixed_ip.inc:420 +msgid "The IP address is already in use." +msgstr "Этот IP адрес уже используется." + +#: ../lib/modules/ipHost.inc:108 ../lib/modules/ipHost.inc:109 +#: ../lib/modules/asteriskAccount.inc:636 +#: ../lib/modules/asteriskAccount.inc:637 ../lib/modules/ppolicyUser.inc:85 +#: ../lib/modules/range.inc:410 ../lib/modules/range.inc:427 +#: ../lib/modules/freeRadius.inc:242 ../lib/modules/freeRadius.inc:243 +#: ../lib/modules/fixed_ip.inc:412 +msgid "The IP address is invalid." +msgstr "Этот IP адрес неправильный." + +#: ../lib/modules/fixed_ip.inc:97 +msgid "The IP address of the PC." +msgstr "IP адрес компьютера." + +#: ../lib/modules/dhcp_settings.inc:155 +msgid "" +"The IP addresses of the DNS servers. Multiple addresses are separated by \"," +"\". Example: 192.168.0.10, 192.168.0.11" +msgstr "" +"IP адреса DNS серверов. Несколько адресов разделяются запятой, т.е. " +"192.168.0.10, 192.168.0.11" + +#: ../lib/modules/dhcp_settings.inc:163 +msgid "" +"The IP addresses of the Netbios name servers (e.g. \"123.123.123.123, " +"123.123.123.124\")." +msgstr "" +"IP адреса Netbios name серверов (например \"123.123.123.123, " +"123.123.123.124\")." + +#: ../lib/modules/range.inc:414 ../lib/modules/range.inc:429 +msgid "The IP does not match the subnet." +msgstr "IP адрес не соответствует подсети." + +#: ../lib/modules/mitKerberos.inc:146 ../lib/modules/heimdalKerberos.inc:151 +msgid "The Kerberos realm for this account." +msgstr "Область Kerberos для этого аккаунта." + +#: ../lib/modules/heimdalKerberos.inc:92 +msgid "The Kerberos realm of this user." +msgstr "Область Kerberos этого пользователя." + +#: ../lib/modules/fixed_ip.inc:93 +msgid "The MAC address of the PC. Example: 11:22:33:44:55:aa" +msgstr "МАС-адрес компьютера, например 11:22:33:44:55:aa" + +#: ../lib/modules/dhcp_settings.inc:321 ../lib/modules/dhcp_settings.inc:322 +msgid "The Netbios server is invalid." +msgstr "Netbios сервер неправильный." + +#: ../lib/modules/fixed_ip.inc:384 +msgid "The PC name may not be longer than 20 characters." +msgstr "Имя компьютера не может быть длиннее 20 символов." + +#: ../lib/modules/fixed_ip.inc:393 +msgid "The PC name may only contain A-Z, a-z and 0-9." +msgstr "Имя компьютера может содержать только A-Z, a-z и 0-9." + +#: ../lib/modules/fixed_ip.inc:387 +msgid "The PC name needs to be at least 2 characters long." +msgstr "Имя компьютера должно иметь хотя бы 2 символа." + +#: ../help/help.inc:185 +msgid "" +"The PDF structure defines what information is exported as PDF file and how " +"the pages are structured. You can manage the PDF structures in the PDF " +"editor (under \"Tools\")." +msgstr "" +"Структура PDF определяет, какая информация будет экспортирована как файл PDF " +"и как будут построены страницы. Вы можете работать с PDF структурами в PDF " +"редакторе (в \"Инструменты\")." + +#: ../templates/3rdParty/pla/htdocs/create.php:44 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:38 +msgid "The RDN field is empty." +msgstr "Поле RDN пусто." + +#: ../lib/modules/freeRadius.inc:86 +msgid "The Radius realm of this account." +msgstr "Область Radius этого аккаунта." + +#: ../lib/modules/sambaDomain.inc:75 +msgid "The SID of your Samba server. Get it with \"net getlocalsid\"." +msgstr "SID Вашего Samba сервера. Узнать можно, выполнив: \"net getlocalsid\"." + +#: ../templates/selfService/selfServiceLogin.php:107 +#: ../templates/selfService/selfServiceMain.php:168 +msgid "The TLS encryption could not be started." +msgstr "Невозможно использовать TLS шифрование." + +#: ../lib/modules/posixAccount.inc:99 +msgid "" +"The UID ranges for users and hosts overlap! This is a problem because LAM " +"uses the highest UID in use + 1 for new accounts. Please set the minimum UID " +"to equal values or use independent ranges." +msgstr "" +"Диапазоны UID для пользователей и компьютеров перекрываются! Это проблема, " +"потому что для новых аккаунтов LAM использует наибольший используемый UID " +"+1. Выставите минимальный UID в одинаковые значения или используйте " +"непересекающиеся диапазоны." + +#: ../lib/modules/zarafaServer.inc:70 +msgid "The Unix socket or named pipe to the server." +msgstr "Unix socket или именованный канал к серверу." + +#: ../lib/modules/asteriskVoicemail.inc:205 +#: ../lib/modules/asteriskVoicemail.inc:206 +msgid "The account context is invalid." +msgstr "Контекст аккаунта неверен." + +#: ../lib/modules/asteriskAccount.inc:103 +#: ../lib/modules/asteriskExtension.inc:92 +#: ../lib/modules/asteriskVoicemail.inc:83 +msgid "The account context stores information about the dial plan." +msgstr "Контекст аккаунта хранит информацию о плане набора." + +#: ../lib/modules/asteriskAccount.inc:628 +#: ../lib/modules/asteriskAccount.inc:629 +msgid "The account type is invalid." +msgstr "Тип аккаунта неверен." + +#: ../lib/modules/freeRadius.inc:98 +msgid "The account will be locked after this date." +msgstr "Аккаунт будет заблокирован после этой даты." + +#: ../help/help.inc:171 +msgid "The account will be saved under this LDAP suffix." +msgstr "Аккаунт будет сохранен под этим суффиксом LDAP." + +#: ../lib/modules/passwordSelfReset.inc:273 +#, php-format +msgid "The answer needs to be at least %s characters long." +msgstr "Ответ должен быть длиной как минимум %s символов." + +#: ../lib/modules/passwordSelfReset.inc:1067 +msgid "The answer to the security question is wrong." +msgstr "Неверный ответ на секретный вопрос." + +#: ../templates/tests/schemaTest.php:128 +#, php-format +msgid "" +"The attribute %s is not supported for the object class %s by your LDAP " +"server." +msgstr "" +"Аттрибут %s не поддерживается для класса объекта %s вашим LDAP сервером." + +#: ../templates/3rdParty/pla/lib/import_functions.php:531 +#, php-format +msgid "The attribute to modify doesn't match the one specified by %s." +msgstr "Изменяемый атрибут не соответствует указанному в %s." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:31 +msgid "The attribute value does not exist" +msgstr "Значение атрибута не существует" + +#: ../lib/modules/asteriskAccount.inc:618 +#: ../lib/modules/asteriskAccount.inc:620 +msgid "The caller ID format is invalid." +msgstr "Неверный формат caller ID." + +#: ../lib/modules/puppetClient.inc:179 ../lib/modules/puppetClient.inc:180 +msgid "The class names may only contain ASCII characters." +msgstr "Имена классов могут содержать только ASCII символы." + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:367 +msgid "The config file is not writable." +msgstr "Невозможно записать конфигурационный фал." + +#: ../templates/3rdParty/pla/htdocs/create.php:29 +#: ../templates/3rdParty/pla/htdocs/copy.php:34 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:23 +#, php-format +msgid "The container you specified (%s) does not exist. Please try again." +msgstr "Указанный контейнер (%s) не существует. Попробуйте еще раз." + +#: ../lib/modules/dhcp_settings.inc:319 ../lib/modules/dhcp_settings.inc:320 +msgid "The default gateway is invalid." +msgstr "Шлюз по умолчанию неправильный." + +#: ../lib/modules/qmailUser.inc:253 +msgid "The default interpretation of .qmail files." +msgstr "Интерпретация по умолчанию файлов .qmail." + +#: ../templates/3rdParty/pla/htdocs/copy.php:31 +#, php-format +msgid "The destination entry (%s) already exists." +msgstr "Целевая запись (%s) уже существует." + +#: ../lib/modules/dhcp_settings.inc:331 ../lib/modules/dhcp_settings.inc:332 +msgid "" +"The domain name includes invalid characters. Valid characters are A-Z, a-z, " +"0-9, \".\", \"_\",\"-\"." +msgstr "" +"Имя домена содержит недопустимые символы. Допустимые: A-Z, a-z, 0-9, \".\", " +"\"_\",\"-\"." + +#: ../lib/modules/dhcp_settings.inc:139 +msgid "The domain name of the subnet." +msgstr "Имя домена подсети." + +#: ../lib/modules/asteriskVoicemail.inc:209 +msgid "The email address is invalid." +msgstr "Адрес электронной почты неверен." + +#: ../lib/modules/range.inc:89 +msgid "The ending IP address of the range." +msgstr "Последний IP адрес диапазона." + +#: ../lib/modules/dhcp_settings.inc:323 +msgid "The entered Netbios node type does not exist." +msgstr "Введенный Netbios node type не существует." + +#: ../templates/3rdParty/pla/htdocs/update.php:27 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:22 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:21 +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:24 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:23 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:20 +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:24 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:20 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:27 +#, php-format +msgid "The entry (%s) does not exist." +msgstr "Запись (%s) не существует." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:27 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:28 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:34 +msgid "The entry does not exist and will be ignored" +msgstr "Запись не существует и будет игнорирована." + +#: ../lib/modules/puppetClient.inc:177 ../lib/modules/puppetClient.inc:178 +msgid "The environment name may only contain ASCII characters." +msgstr "Имя окружения может содержать только ASCII символы." + +#: ../lib/modules/shadowAccount.inc:67 +msgid "The expiration date is invalid." +msgstr "Дата окончания действия имеет неправильный формат." + +#: ../lib/modules/freeRadius.inc:250 ../lib/modules/freeRadius.inc:251 +msgid "The expiration date must be in format DD.MM.YYYY HH:MM." +msgstr "Дата окончания действия должна быть в формате DD.MM.YYYY HH:MM." + +#: ../lib/modules/asteriskAccount.inc:622 +#: ../lib/modules/asteriskAccount.inc:623 +msgid "The extension context is invalid." +msgstr "Контекст расширения неверен." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "The file you chose is either empty or does not exist." +msgstr "Выбранный Вами файл пуст или не существует." + +# likley - likely +#: ../templates/3rdParty/pla/lib/Template.php:412 +#: ../templates/3rdParty/pla/lib/Template.php:499 +msgid "" +"The file you selected was only partially uploaded, likley due to a network " +"error." +msgstr "" +"Выбранный файл был загружен только частично, возможно из-за ошибки сети." + +#: ../templates/3rdParty/pla/lib/Template.php:402 +#: ../templates/3rdParty/pla/lib/Template.php:407 +#: ../templates/3rdParty/pla/lib/Template.php:489 +#: ../templates/3rdParty/pla/lib/Template.php:494 +msgid "" +"The file you uploaded is too large. Please check php.ini, upload_max_size " +"setting" +msgstr "" +"Загружаемый файл слишком велик. Пожалуйста, проверьте php.ini, настройку " +"upload_max_size" + +#: ../templates/initsuff.php:180 +msgid "" +"The following suffixes are missing in LDAP. LAM can create them for you." +msgstr "Следующие суффиксы не найдены в LDAP. LAM может создать их для вас." + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:120 +msgid "The format of the logon hours field is invalid!" +msgstr "Формат времени для входа неправильный!" + +#: ../lib/modules/customScripts.inc:111 +msgid "The format of this custom script setting is invalid." +msgstr "Формат настроек этого скрипта неправильный." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +msgid "The format to show the query results" +msgstr "Формат для отображения результатов запроса" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "" +"The full DN of the new entry to be created when copying the source entry" +msgstr "" +"Полный DN для новой записи, создаваемой при копировании исходной записи" + +#: ../lib/modules/asteriskVoicemail.inc:208 +msgid "The full name is invalid." +msgstr "Полное имя неверное." + +#: ../templates/login.php:586 +msgid "The given user name matches multiple LDAP entries." +msgstr "Данное имя пользователя соответствует нескольким записям LDAP." + +#: ../lib/modules/ppolicy.inc:94 +msgid "" +"The grace authentication limit specifies the number of times that an expired " +"password may be used to login." +msgstr "" +"Предел отсрочки для аутентификации указывает, сколько раз пароль с истекшим " +"сроком действия может использоваться для входа в систему." + +#: ../lib/modules/windowsGroup.inc:147 +msgid "The group is managed by this contact person." +msgstr "Группа управляется этой персоной." + +#: ../lib/modules/freeRadius.inc:90 ../lib/modules/freeRadius.inc:94 +msgid "The group names for this account." +msgstr "Имена групп для этого аккаунта." + +#: ../lib/modules/windowsUser.inc:196 +msgid "The groups for this account. You can insert a group name or DN." +msgstr "Группы для этого аккаунта. Вы можете указать имя группы или DN." + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "The headline for a new section must contain at least one character." +msgstr "" +"Заголовок для новой секции должен содержать по крайней мере один символ." + +#: ../lib/modules/sambaSamAccount.inc:293 +msgid "The home directory will be connected under this drive letter." +msgstr "Домашний каталог будет подключен как диск с использованием этой буквы." + +#: ../lib/modules/windowsHost.inc:80 +msgid "The host is managed by this contact person." +msgstr "Хост управляется этой персоной." + +#: ../lib/modules/asteriskAccount.inc:625 +#: ../lib/modules/asteriskAccount.inc:626 +msgid "The host name is invalid." +msgstr "Некорректное имя хоста." + +#: ../lib/modules/windowsUser.inc:112 ../lib/modules/inetOrgPerson.inc:905 +msgid "The initials of the user's first names." +msgstr "Инициалы имени и отчества пользователя." + +#: ../lib/modules/ddns.inc:87 +msgid "" +"The key enables the DHCP server to perform DNS updates. The key is generated " +"with \"genDDNSkey\"." +msgstr "" +"Ключ используется DHCP сервером для обновления динамической зоны DNS. Ключ " +"генерируется \"genDDNSkey\"." + +#: ../lib/modules/dhcp_settings.inc:317 ../lib/modules/dhcp_settings.inc:318 +msgid "The lease time is invalid." +msgstr "Время аренды неправильное." + +#: ../lib/modules/dhcp_settings.inc:147 +msgid "" +"The lease time specifies after how many seconds the client should request a " +"new IP address." +msgstr "" +"Время аренды определяет, через сколько секунд клиент должен бы запросить " +"новый IP адрес." + +#: ../lib/modules/sudoRole.inc:72 ../lib/modules/sudoRole.inc:98 +msgid "The list of commands which may be run." +msgstr "Список допустимых команд" + +#: ../lib/modules/puppetClient.inc:86 ../lib/modules/puppetClient.inc:90 +msgid "The list of configured Puppet classes for this node (e.g. ntp)." +msgstr "Список настроенных классов Puppet для этого узла (например ntp)." + +#: ../lib/modules/sudoRole.inc:68 ../lib/modules/sudoRole.inc:93 +msgid "The list of hosts from which the user may run the commands." +msgstr "Список хостов с которых пользователь может запускать команды." + +#: ../lib/modules/customFields.inc:2503 +msgid "The list of labels contains duplicates." +msgstr "Список подписей содержит дубликаты." + +#: ../lib/modules/sudoRole.inc:64 ../lib/modules/sudoRole.inc:88 +msgid "The list of users who own this sudo role and may run the commands." +msgstr "" +"Список пользователей владеющих этой ролью sudo и могущих выполнять команды." + +#: ../lib/modules/customFields.inc:2500 +msgid "The list of values contains duplicates." +msgstr "Список значений содержит дубликаты." + +#: ../lib/modules/qmailGroup.inc:125 ../lib/modules/qmailGroup.inc:129 +msgid "The list's alternate email address." +msgstr "Альтернативный адрес электронной почты списка." + +#: ../lib/modules/kolabGroup.inc:81 ../lib/modules/kolabGroup.inc:85 +#: ../lib/modules/qmailGroup.inc:117 ../lib/modules/qmailGroup.inc:121 +#: ../lib/modules/windowsGroup.inc:119 +msgid "The list's email address." +msgstr "Электронный почтовый адрес списка." + +#: ../templates/config/mainmanage.php:116 +msgid "" +"The log file is empty or contains invalid characters! Valid characters are: " +"a-z, A-Z, 0-9, /, \\, ., :, _ and -." +msgstr "" +"Лог файл пуст или содержит неправильные символы! Правильные: a-z, A-Z, " +"0-9, /, \\, ., :, _ и -." + +#: ../lib/modules/imapAccess.inc:80 +msgid "" +"The login name of your IMAP user who has rights to create/delete mailboxes." +msgstr "Имя пользователя IMAP могущего создавать/удалять почтовые ящики." + +#: ../lib/modules/qmailUser.inc:237 +msgid "The mail server that contains the message store." +msgstr "Почтовый сервер, на котором расположено хранилище сообщений." + +#: ../help/help.inc:225 +msgid "The mail text of all password mails." +msgstr "Текст писем всех писем с паролями." + +#: ../lib/modules/selfRegistration.inc:109 +msgid "The mail text of the confirmation mail." +msgstr "Текст писем всех писем с подтверждениями." + +#: ../lib/modules/passwordSelfReset.inc:114 +#: ../lib/modules/passwordSelfReset.inc:124 +msgid "The mail text of the mails." +msgstr "Текст писем." + +#: ../lib/modules/asteriskVoicemail.inc:201 +msgid "The mailbox format is invalid." +msgstr "Неверный формат почтового ящика." + +#: ../lib/modules/dhcp_settings.inc:325 ../lib/modules/dhcp_settings.inc:326 +msgid "The maximum lease time is invalid." +msgstr "Неверное максимальное время аренды." + +#: ../lib/modules/dhcp_settings.inc:151 +msgid "" +"The maximum lease time specifies after how many seconds the client must " +"request a new IP address." +msgstr "" +"Максимальное время аренды определяет, через сколько секунд клиент обязан " +"запросить новый IP адрес." + +#: ../lib/modules/qmailUser.inc:217 +msgid "The maximum number of mails that can be stored in the user's mailbox." +msgstr "Максимальное количество сообщений в пользовательском почтовом ящике." + +#: ../lib/modules.inc:924 +#, php-format +msgid "The module %s is not yet ready." +msgstr "Модуль %s еще не готов." + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "" +"The name for that PDF-structure you submitted is not valid. A valid name " +"must consist of the following characters: 'a-z','A-Z','0-9','_','-'." +msgstr "" +"Имя отправленной Вами PDF структуры некорректное. Для имени допустимы " +"следующие символы: 'a-z','A-Z','0-9','_'." + +#: ../lib/modules/asteriskExtension.inc:104 +msgid "" +"The name of a command to execute. The available commands may be listed at " +"the Asterisk command line by executing \"core show applications\"." +msgstr "" +"Имя команды для запуска. Допустимые команды можно увидеть, запустив \"core " +"show applications\" в командной строке Asterisk." + +#: ../lib/modules/fixed_ip.inc:89 +msgid "The name of the PC." +msgstr "Имя компьютера." + +#: ../lib/modules/asteriskExtension.inc:96 +msgid "The name of the extension (e.g. voicemail or sip)." +msgstr "Имя расширения (например, voicemail или sip)." + +#: ../lib/modules/kolabUser.inc:131 +msgid "The name of the server where the mailbox is located." +msgstr "Имя сервера, где находится почтовый ящик." + +#: ../lib/modules/dhcp_settings.inc:143 +msgid "The name of the subnet. Example: 192.168.10.0" +msgstr "Имя подсети. Например: 192.168.10.0" + +#: ../lib/modules/sambaDomain.inc:71 +msgid "The name of your Windows domain or workgroup." +msgstr "Имя Windows домена или рабочей группы." + +#: ../lib/modules/freeRadius.inc:82 +msgid "The net mask for the IP address." +msgstr "Сетевая маска IP адреса." + +#: ../lib/modules/dhcp_settings.inc:187 +msgid "" +"The net mask is derived from the subnet mask. LAM will calculate it " +"automatically." +msgstr "" +"Маска сети определяется маской подсети. LAM подсчитает ее автоматически." + +#: ../lib/modules/freeRadius.inc:244 ../lib/modules/freeRadius.inc:245 +msgid "The net mask is invalid." +msgstr "Маска сети неправильная." + +#: ../lib/modules.inc:1168 +msgid "" +"The new password will be stored in the directory after you save this account." +msgstr "" +"Новый пароль будет сохранен в каталоге после сохранения этого аккаунта." + +#: ../lib/modules/asteriskAccount.inc:231 +msgid "The number of milliseconds for the last qualify." +msgstr "Количество миллисекунд для last qualify." + +#: ../help/help.inc:117 +msgid "" +"The number of users who may login to LAM is restricted. This can be either a " +"fixed list of DNs or LAM can search LDAP to find a DN which matches the " +"given user name." +msgstr "" +"Можно ограничить доступ на подключение к LAM. Это может быть список DN " +"записей или LAM может найти в LDAP запись DN, соответствующую данному имени " +"пользователя." + +#: ../templates/tests/schemaTest.php:114 +#, php-format +msgid "The object class %s is not supported by your LDAP server." +msgstr "Класс объектов %s не поддерживается вашим LDAP сервером." + +#: ../lib/modules/windowsUser.inc:132 ../lib/modules/inetOrgPerson.inc:861 +#: ../lib/modules/inetOrgPerson.inc:865 +msgid "The office name of the user (e.g. YourCompany, Human Resources)." +msgstr "Имя офиса пользователя (т.е. YourCompany, Human Resources)" + +#: ../templates/selfService/selfServiceMain.php:312 ../lib/modules.inc:1767 +msgid "The operation was stopped because of the above errors." +msgstr "Операция была остановлена из-за вышеупомянутых ошибок." + +#: ../lib/modules/asteriskVoicemail.inc:211 +#: ../lib/modules/asteriskVoicemail.inc:212 +msgid "The options have bad format." +msgstr "Неверный формат опций." + +#: ../lib/modules/device.inc:63 ../lib/modules/device.inc:67 +msgid "The owners of this device." +msgstr "Владельцы этого устройства." + +#: ../lib/modules/groupOfNames.inc:73 ../lib/modules/groupOfNames.inc:77 +msgid "The owners of this group." +msgstr "Владельцы этой группы." + +#: ../lib/modules/asteriskVoicemail.inc:210 +msgid "The pager number has bad format." +msgstr "Неверный формат номера страницы." + +#: ../lib/modules/heimdalKerberos.inc:114 +msgid "The parameter @@password@@ will be replaced with the new password." +msgstr "Параметр @@password@@ будет заменен новым паролем." + +#: ../lib/modules/heimdalKerberos.inc:113 +msgid "The parameter @@principal@@ will be replaced with the principal name." +msgstr "Параметр @@principal@@ будет заменен principal name." + +#: ../templates/config/confsave.php:71 ../templates/config/confmain.php:73 +#: ../templates/config/mainlogin.php:61 +#: ../templates/selfService/adminLogin.php:54 +msgid "The password is invalid! Please try again." +msgstr "Пароль неправильный! Попробуйте еще раз." + +#: ../lib/security.inc:310 +#, php-format +msgid "The password is too short. You have to enter at least %s characters." +msgstr "Пароль слишком короток. Вы должны ввести по крайней мере %s символов." + +#: ../lib/security.inc:362 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s different character " +"classes (upper/lower case, numbers and symbols)." +msgstr "" +"Пароль слишком простой. Вы должны использовать как минимум %s различных " +"классов символов (большие/маленькие буквы, числа и служебные знаки)." + +#: ../lib/security.inc:333 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s lower case " +"characters." +msgstr "" +"Пароль слишком простой. Вы должны использовать как минимум %s маленьких букв." + +#: ../lib/security.inc:341 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s numeric characters." +msgstr "Пароль слишком простой. Вы должны использовать как минимум %s цифр." + +#: ../lib/security.inc:345 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s symbolic characters." +msgstr "" +"Пароль слишком простой. Вы должны использовать как минимум %s служебных " +"знаков." + +#: ../lib/security.inc:337 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s upper case " +"characters." +msgstr "" +"Пароль слишком простой. Вы должны использовать как минимум %s больших букв." + +#: ../lib/modules/imapAccess.inc:86 +msgid "" +"The password of your IMAP admin user. The login name for the IMAP admin user " +"is stored in the LAM server profile." +msgstr "" +"Пароль администратора IMAP. Логин администратора IMAP сохранен в профиле " +"сервера LAM." + +#: ../templates/lists/changePassword.php:545 ../lib/modules.inc:1111 +msgid "The password was set to:" +msgstr "Пароль был установлен в:" + +#: ../lib/modules/windowsUser.inc:140 ../lib/modules/inetOrgPerson.inc:742 +#: ../lib/modules/inetOrgPerson.inc:746 +msgid "The post office box of the user's address." +msgstr "Почтовый ящик адреса пользователя." + +#: ../lib/modules/windowsUser.inc:136 ../lib/modules/inetOrgPerson.inc:750 +#: ../lib/modules/inetOrgPerson.inc:754 +msgid "The postal code of the user's address." +msgstr "Почтовый индекс адреса пользователя." + +#: ../lib/modules/posixAccount.inc:459 +msgid "" +"The primary group for this account. You can insert a GID number or a group " +"name." +msgstr "" +"Основная группа для этой учетной записи. Нужно ввести GID или имя группы." + +#: ../lib/modules/posixAccount.inc:542 +msgid "The primary group the host should be member of." +msgstr "Основная группа хоста." + +#: ../lib/modules/posixAccount.inc:504 +msgid "The primary group the user should be member of." +msgstr "Основная группа пользователя." + +#: ../lib/modules/asteriskExtension.inc:100 +msgid "" +"The priority is a sequence number used to order the execution of commands. " +"Commands are executed beginning with the lowest sequence number." +msgstr "" +"Приоритет это число из последовательности, используемое для упорядочения " +"исполнения команд. Команды исполняются начиная с наименьшего числа." + +#: ../lib/modules/range.inc:416 +msgid "The range conflicts with another range." +msgstr "Диапазон пересекается с другим диапазоном." + +#: ../lib/modules/range.inc:412 +msgid "The range end needs to be greater than the range start." +msgstr "Конец диапазона должен быть больше чем начало диапазона." + +#: ../lib/modules/inetOrgPerson.inc:829 +msgid "The room number of the employee's office." +msgstr "Номер кабинета работника в офисе." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +msgid "The scope in which to search" +msgstr "Область поиска" + +#: ../lib/modules/customScripts.inc:57 ../lib/modules/customScripts.inc:70 +msgid "" +"The scripts will be run on your web server in the user context of your web " +"server (e.g. apache/www-data)." +msgstr "" +"Скрипты будут выполнены на Вашем веб-сервере в пользовательском контексте " +"Вашего веб-сервера (т.е, apache/www-data)." + +#: ../lib/modules/selfRegistration.inc:120 +msgid "" +"The second option is the LDAP attribute name and the third one is a " +"descriptive label for it." +msgstr "Вторая опция это имя атрибута LDAP, третья это его описание." + +#: ../lib/modules/asteriskAccount.inc:235 ../lib/modules/qmailUser.inc:189 +#: ../lib/modules/zarafaGroup.inc:103 ../lib/modules/sambaSamAccount.inc:387 +#: ../lib/modules/posixAccount.inc:435 ../lib/modules/zarafaUser.inc:126 +#: ../lib/modules/inetOrgPerson.inc:877 ../lib/modules/freeRadius.inc:106 +#: ../lib/modules/zarafaServer.inc:82 ../lib/modules/qmailGroup.inc:113 +#: ../lib/modules/windowsGroup.inc:103 ../lib/modules/groupOfNames.inc:61 +msgid "" +"The selected options will not be managed inside LAM. You can use this to " +"reduce the number of displayed input fields." +msgstr "" +"Выбранные опции не будут доступны в LAM. Вы можете использовать это для " +"уменьшения показываемых полей ввода." + +#: ../templates/3rdParty/pla/htdocs/copy.php:38 +msgid "The source and destination DN are the same." +msgstr "Исходное и целевое DN совпадают." + +#: ../lib/modules/range.inc:86 +msgid "The starting IP address of the range." +msgstr "Начальный IP адрес диапазона." + +#: ../lib/modules/windowsUser.inc:148 ../lib/modules/inetOrgPerson.inc:849 +#: ../lib/modules/inetOrgPerson.inc:853 +msgid "The state where the user resides or works." +msgstr "Местонахождение пользователя." + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "The static text must contain at least one character." +msgstr "Статичный текст должен содержать хотя бы один символ." + +#: ../lib/modules/windowsUser.inc:152 ../lib/modules/inetOrgPerson.inc:734 +#: ../lib/modules/inetOrgPerson.inc:738 +msgid "The street name of the user's address." +msgstr "Улица адреса пользователя." + +#: ../help/help.inc:223 +msgid "The subject of all password mails." +msgstr "Тема для всех почтовых сообщений с паролями." + +#: ../lib/modules/selfRegistration.inc:136 +#: ../lib/modules/passwordSelfReset.inc:110 +msgid "The subject of the mails." +msgstr "Тема для писем." + +#: ../lib/modules/dhcp_settings.inc:312 +msgid "The subnet is already in use." +msgstr "Подсеть уже используется." + +#: ../lib/modules/dhcp_settings.inc:313 ../lib/modules/dhcp_settings.inc:314 +msgid "The subnet is invalid." +msgstr "Подсеть неправильная." + +#: ../lib/modules/dhcp_settings.inc:327 ../lib/modules/dhcp_settings.inc:328 +msgid "The subnet mask is invalid." +msgstr "Маска подсети неправильная." + +#: ../lib/modules/dhcp_settings.inc:183 +msgid "The subnet mask of the network." +msgstr "Маска подсети сети." + +#: ../lib/modules/sudoRole.inc:80 ../lib/modules/sudoRole.inc:108 +msgid "The sudo commands are executed with these group memberships." +msgstr "Команды sudo выполняются с этими членствами в группах." + +#: ../lib/modules/sudoRole.inc:76 ../lib/modules/sudoRole.inc:103 +msgid "The sudo commands may be run as these users (e.g. root)." +msgstr "" +"Команды sudo могут быть выполнены от имени этих пользователей (например " +"root)." + +#: ../lib/modules/customFields.inc:3050 ../lib/modules/customFields.inc:3137 +#, php-format +msgid "The uploaded file does not have the correct file extension (%s)." +msgstr "У загруженного файла некорректное расширение (%s)." + +#: ../lib/modules/customFields.inc:3046 ../lib/modules/customFields.inc:3133 +#, php-format +msgid "The uploaded file is too large (> %s bytes)." +msgstr "Загруженный файл слишком большой (> %s байт)." + +#: ../templates/3rdParty/pla/lib/import_functions.php:396 +msgid "The url attribute value should begin with file://." +msgstr "Значение атрибута url должно начинаться с file://." + +#: ../lib/modules/zarafaUser.inc:106 +msgid "The user account is non-active and login is disabled." +msgstr "Аккаунт пользователя неактивен, вход отключен." + +#: ../lib/modules/windowsUser.inc:181 +msgid "The user must log on using a smart card." +msgstr "Пользователь должен войти используя смарт карту." + +#: ../lib/modules/zarafaUser.inc:86 +msgid "The user will get warned when his mailbox reaches this limit." +msgstr "" +"Размер почтового ящика по достижению которого пользователь будет " +"предупрежден." + +#: ../lib/modules/qmailUser.inc:197 +msgid "The user's alternate email address." +msgstr "Альтернативный адрес электронной почты пользователя." + +#: ../lib/modules/asteriskAccount.inc:127 +msgid "The user's call groups." +msgstr "Группы вызовов пользователя." + +#: ../lib/modules/qmailUser.inc:193 ../lib/modules/windowsUser.inc:120 +#: ../lib/modules/inetOrgPerson.inc:790 ../lib/modules/inetOrgPerson.inc:794 +msgid "The user's email address." +msgstr "Адрес электронной почты пользователя." + +#: ../lib/modules/inetOrgPerson.inc:782 ../lib/modules/inetOrgPerson.inc:786 +msgid "The user's fax number." +msgstr "Номер факса пользователя." + +#: ../lib/modules/inetOrgPerson.inc:774 ../lib/modules/inetOrgPerson.inc:778 +msgid "The user's mobile number." +msgstr "Мобильный телефон пользователя." + +#: ../lib/modules/inetOrgPerson.inc:893 ../lib/modules/inetOrgPerson.inc:897 +msgid "The user's organisation name." +msgstr "Имя организации пользователя." + +#: ../lib/modules/inetOrgPerson.inc:885 ../lib/modules/inetOrgPerson.inc:889 +msgid "The user's organisational unit." +msgstr "Организационная единица пользователя." + +#: ../lib/modules/inetOrgPerson.inc:821 ../lib/modules/inetOrgPerson.inc:825 +msgid "The user's private telephone number." +msgstr "Домашний телефонный номер пользователя." + +#: ../lib/modules/windowsUser.inc:156 ../lib/modules/inetOrgPerson.inc:766 +#: ../lib/modules/inetOrgPerson.inc:770 +msgid "The user's telephone number." +msgstr "Телефонный номер пользователя." + +#: ../lib/modules/inetOrgPerson.inc:901 +msgid "The user's unique employee number." +msgstr "Пользовательский уникальный номер наемного работника." + +#: ../lib/modules/windowsUser.inc:168 ../lib/modules/inetOrgPerson.inc:801 +#: ../lib/modules/inetOrgPerson.inc:805 +msgid "The user's web site (e.g. http://www.company.com)." +msgstr "Веб сайт пользователя (например, http://www.company.com)." + +#: ../lib/modules/sambaSamAccount.inc:122 +msgid "" +"The value for the Samba 3 field \"User can/must change password\" needs to " +"be a number." +msgstr "" +"Значение поля \"Пользователь может/должен сменить пароль\" устанавливается " +"числом." + +#: ../lib/modules/puppetClient.inc:181 ../lib/modules/puppetClient.inc:182 +msgid "The variables may only contain ASCII characters." +msgstr "Переменные могут содержать только ASCII символы." + +#: ../lib/modules/asteriskVoicemail.inc:213 +#: ../lib/modules/asteriskVoicemail.inc:214 +msgid "The voicemail context name is invalid." +msgstr "Имя контекста речевого почтового ящика некорректно." + +#: ../templates/3rdParty/pla/htdocs/create.php:42 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:36 +msgid "The were no attributes marked as an RDN attribute." +msgstr "Нет атрибутов помеченных как атрибут RDN/" + +#: ../lib/modules/selfRegistration.inc:110 +msgid "The wildcard for the account creation link is @@creationLink@@." +msgstr "Шаблон для ссылки на создание аккаунта : @@creationLink@@." + +#: ../lib/modules/passwordSelfReset.inc:116 ../help/help.inc:228 +msgid "The wildcard for the new password is @@newPassword@@." +msgstr "Шаблон для нового пароля @@newPassword@@." + +#: ../lib/modules/passwordSelfReset.inc:126 +msgid "The wildcard for the reset link is @@resetLink@@." +msgstr "Шаблон для ссылки на сброс : @@resetLink@@." + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:60 +#, php-format +msgid "There are %s members in group %s:" +msgstr "%s участников в группе %s:" + +#: ../lib/modules/posixGroup.inc:583 +msgid "There are still users who have this group as their primary group." +msgstr "Все еще есть пользователи, использующие эту группу, как основную." + +#: ../lib/modules/sambaGroupMapping.inc:589 +msgid "There can be only one group of this type." +msgstr "Может быть только одна группа этого типа." + +#: ../lib/modules/asteriskAccount.inc:619 +msgid "There is already another user with this caller ID." +msgstr "Уже есть пользователь с таким caller ID." + +#: ../lib/modules/asteriskVoicemail.inc:202 +msgid "There is already another user with this mailbox name." +msgstr "Уже существует другой пользователь с таким именем почтового ящика." + +#: ../templates/massDoUpload.php:258 +msgid "There were errors while uploading:" +msgstr "При загрузке возникли ошибки:" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:80 +#, php-format +msgid "There will be %s updates done with this mass update" +msgstr "Этим массовым изменением будет совершено %s изменений" + +#: ../lib/modules/posixGroup.inc:476 +msgid "" +"These are the minimum and maximum numbers to use for group IDs when creating " +"new group accounts. New group accounts will always get the highest number in " +"use plus one." +msgstr "" +"Мин. и макс. числа для использования в качестве GID при создании новых " +"учетных записей для групп. Новые аккаунты групп будут созданы с наибольшим " +"числом, которое используется, плюс один." + +#: ../lib/modules/posixAccount.inc:447 +msgid "" +"These are the minimum and maximum numbers to use for machine IDs when " +"creating new accounts for hosts. The range should be different from that of " +"users. New host accounts will always get the highest number in use plus one." +msgstr "" +"Диапазон чисел, используемых в качества ID компьютера при создании новых " +"учетных записей для хостов. Диапазон должен отличаться от диапазона ID для " +"пользователей. Новые аккаунты хостов будут всегда получать наибольшее " +"использованное ID + 1." + +#: ../lib/modules/posixAccount.inc:443 +msgid "" +"These are the minimum and maximum numbers to use for user IDs when creating " +"new user accounts. The range should be different from that of machines. New " +"user accounts will always get the highest number in use plus one." +msgstr "" +"Диапазон чисел, используемых в кач-ве ID пользователя при создании новых " +"аккаунтов пользователей. Диапазон должен отличаться от диапазона ID для " +"компьютеров. Новые аккаунты пользователей будут всегда получать наибольшее " +"использованное ID + 1." + +#: ../lib/modules/inetOrgPerson.inc:913 +msgid "These are the user's certificates." +msgstr "Это сертификаты пользователя." + +#: ../lib/modules/puppetClient.inc:106 +msgid "" +"These classes will be available as autocompletion hints when adding new " +"classes." +msgstr "" +"Эти классы будут показаны как подсказки автодополнения при добавлении новых " +"классов." + +#: ../lib/modules/nisnetgroup.inc:89 ../lib/modules/nisnetgroup.inc:93 +msgid "" +"These entries specify the members of the netgroup. You can limit the set to " +"a host name, a user name, a domain name or any combination of them." +msgstr "" +"Эти записи определяют членов netgroup. Вы можете ввести ограничение " +"установив имя хоста, имя пользователя, имя домена или любой комбинацией их." + +#: ../lib/modules/puppetClient.inc:110 +msgid "" +"These environments will be available as autocompletion hints when setting " +"the environment." +msgstr "" +"Эти окружения будут показаны как подсказки автодополнения при настройке " +"окружений." + +#: ../lib/modules/asteriskExtension.inc:116 +msgid "" +"These options change the list of potential extension owners below. You can " +"select to show Asterisk accounts or all users. It is also possible to search " +"the tree suffix if you have users which are not in the standard user suffix." +msgstr "" +"Эти опции меняют список потенциальных владельцев расширений показанный ниже. " +"Вы можете выбрать показывать аккаунты Asterisk всех пользователей. Также " +"можно поискать суффикс дерева, если есть пользователи находящиеся не в " +"стандартном суффиксе пользователя." + +#: ../lib/modules/authorizedServiceObject.inc:87 +msgid "These services will show up as hint if you enter a new service." +msgstr "Эти сервисы будут показаны как подсказка при создании нового сервиса." + +#: ../lib/modules/posixAccount.inc:124 +msgid "" +"This GID number is invalid! Please provide either a number or a group name." +msgstr "GID неправильный! Должно быть число или название группы." + +#: ../help/help.inc:215 +msgid "" +"This HTML code will be placed on top of all self service pages. E.g. you can " +"use this to place your custom logo. Any HTML code is permitted." +msgstr "" +"Этот HTML код будет помещен наверху всех страниц сервисов самообслуживания. " +"Это можно использовать, например, для размещения своего логотипа. Можно " +"использовать любой HTML код." + +#: ../lib/modules/fixed_ip.inc:390 +msgid "This PC name already exists." +msgstr "Имя компьютера уже существует." + +#: ../lib/modules/kolabGroup.inc:178 ../lib/modules/kolabUser.inc:256 +msgid "This account is marked for deletion." +msgstr "Этот аккаунт отмечен для удаления." + +#: ../lib/modules/sambaSamAccount.inc:317 +msgid "" +"This allows you to define this account as a special user like administrator " +"or guest." +msgstr "" +"Это позволяет определить этот аккаунт как специального пользователя, " +"например как администратора или гостя." + +#: ../templates/3rdParty/pla/lib/PageRender.php:376 +msgid "This attribute is not defined in the LDAP schema" +msgstr "Этот атрибут не определен в схеме LDAP" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1988 +msgid "This attribute is required" +msgstr "Атрибут обязателен" + +#: ../templates/3rdParty/pla/lib/PageRender.php:458 +msgid "This attribute is required for the RDN." +msgstr "Атрибут обязателен для RDN." + +#: ../lib/modules/inetOrgPerson.inc:857 +msgid "This can be used to specify if the user has a car license." +msgstr "" +"Это может быть использовано для хранения сведений о наличии водительских " +"прав у пользователя." + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:64 +msgid "This change requires to add new attributes." +msgstr "Это изменение потребует добавление новых атрибутов." + +#: ../help/help.inc:133 +msgid "This changes the password of the selected profile." +msgstr "Это меняет пароль выбранного профиля." + +#: ../help/help.inc:135 +msgid "This changes the profile which is selected by default at login." +msgstr "Это изменяет профиль, выбранный по умолчанию при входе." + +#: ../templates/massBuildAccounts.php:177 +msgid "" +"This column is defined to include unique entries but duplicates were found:" +msgstr "" +"Эта колонка была определена как содержащая только уникальные записи, однако " +"были найдены дубликаты:" + +#: ../lib/modules/heimdalKerberos.inc:112 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -K /etc/heimdal/apache.keytab -p " +"admin/admin passwd -p @@password@@ @@principal@@\"." +msgstr "" +"Эта команда будет использована для смены пароля Kerberos. Обычно она должна " +"выглядеть как \"/usr/sbin/kadmin -K /etc/heimdal/apache.keytab -p admin/" +"admin passwd -p @@password@@ @@principal@@\"." + +#: ../lib/modules/mitKerberos.inc:142 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -k -t /home/www-data/apache.keytab " +"-p realm/changepwd\"." +msgstr "" +"та команда будет использована для смены пароля Kerberos. Обычно она должна " +"выглядеть как \"/usr/sbin/kadmin -k -t /home/www-data/apache.keytab -p realm/" +"changepwd\"." + +#: ../lib/modules/customScripts.inc:112 +msgid "This custom script setting includes an invalid account type." +msgstr "Эта настройка скрипта использует неправильный тип учетной записи." + +#: ../lib/modules/customScripts.inc:114 ../lib/modules/customScripts.inc:116 +msgid "This custom script setting includes an invalid action type." +msgstr "Эта настройка скрипта использует неверный тип действия." + +#: ../help/help.inc:98 +msgid "" +"This defines the language of the login window and sets this language as the " +"default language. Users can change the language at login." +msgstr "" +"Это определяет язык окна приглашения для входа в систему и устанавливает " +"этот язык, как язык по умолчанию. Пользователи могут изменить язык после " +"входа в систему." + +#: ../help/help.inc:115 +msgid "" +"This defines the rights for the home directories which are created by " +"lamdaemon." +msgstr "" +"Это определяет права для домашних каталогов, которые были созданы lamdaemon." + +#: ../lib/modules/asteriskExtension.inc:88 +msgid "" +"This defines what application Asterisk has to start for this user (e.g. SIP/" +"user1)." +msgstr "" +"Это определяет какое приложение должен запустить Asterisk для этого " +"пользователя (например SIP/user1)." + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:85 +#, php-format +msgid "This deletion request also includes %s child entries." +msgstr "Запрос на удаление также удалит %s потомков." + +#: ../lib/modules/device.inc:71 +msgid "This describes the location of the device." +msgstr "Это описывает месторасположение устройства." + +#: ../lib/modules/ipHost.inc:67 +msgid "This describes the location of the host." +msgstr "Это описывает месторасположение хоста." + +#: ../lib/modules/windowsUser.inc:116 ../lib/modules/inetOrgPerson.inc:841 +#: ../lib/modules/inetOrgPerson.inc:845 +msgid "This describes the location of the user." +msgstr "Это описывает местоположение пользователя." + +#: ../lib/lamPDF.inc:126 +msgid "This document was automatically created by LDAP Account Manager" +msgstr "Этот документ был создан автоматически LDAP Account Manager" + +#: ../help/help.inc:232 +msgid "" +"This email address will be set as reply-to address of all password mails." +msgstr "" +"Этот адрес электронной почты будет указан как адрес reply-to для всех писем " +"с паролями." + +#: ../help/help.inc:221 +msgid "" +"This email address will be set as sender address of all password mails. If " +"empty the system default (php.ini) will be used." +msgstr "" +"Этот адрес электронной почты будет указан как адрес отправителя для всех " +"писем с паролями. Если пуст, то будет использоватся тот, что по умолчанию в " +"системе (php.ini)." + +#: ../lib/modules/selfRegistration.inc:132 +#: ../lib/modules/passwordSelfReset.inc:106 +msgid "" +"This email address will be set as sender address of the mails. If empty the " +"system default (php.ini) will be used." +msgstr "" +"Этот адрес электронной почты будет указан как адрес отправителя для писем. " +"Если пуст, то будет использоваться системный по умолчанию (php.ini)." + +#: ../lib/modules/passwordSelfReset.inc:86 +msgid "This enables the password self reset function." +msgstr "Это включает функцию самостоятельного сброса пароля." + +#: ../lib/modules/selfRegistration.inc:93 +msgid "This enables the self registration function." +msgstr "Это включает функцию саморегистрации." + +#: ../templates/3rdParty/pla/htdocs/compare.php:79 +msgid "This entry has no attributes" +msgstr "Эта запись не имеет атрибутов" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:57 +#, php-format +msgid "This entry is the root of a sub-tree containing %s entries." +msgstr "Эта запись является корневой для поддерева, содержащего %s записей." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:47 +#: ../lib/modules/selfRegistration.inc:455 +msgid "This field is required." +msgstr "Это поле обязательно." + +#: ../lib/modules/customFields.inc:158 +msgid "This field name already exists. Please choose a different one." +msgstr "Поле с таким именем уже существует. Пожалуйста, выберите другое." + +#: ../lib/modules/posixAccount.inc:126 +msgid "This gecos value is invalid!" +msgstr "Этот gecos неправильный!" + +#: ../lib/modules/ipHost.inc:63 +msgid "This is a comma separated list of IP addresses." +msgstr "Это разделенный запятыми список IP адресов." + +#: ../lib/modules/ieee802device.inc:66 +msgid "This is a comma separated list of MAC addresses." +msgstr "Это разделенный запятыми список MAC адресов." + +#: ../lib/modules/kolabUser.inc:119 +msgid "This is a comma separated list of delegates." +msgstr "Это разделенный запятыми список делегатов." + +#: ../lib/modules/kolabUser.inc:127 +msgid "This is a comma separated list of eMail aliases." +msgstr "Это разделенный запятыми список почтовых псевдонимов (aliases)." + +#: ../lib/modules/kolabUser.inc:111 +msgid "This is a comma separated list of invitation policies." +msgstr "Это разделенный запятыми список политик приглашения." + +#: ../lib/modules/nisMailAlias.inc:79 +msgid "This is a comma separated list of recipients." +msgstr "Это разделенный запятыми список получателей (recipients)." + +#: ../lib/modules/inetLocalMailRecipient.inc:70 +msgid "This is a comma separated list of the users public email addresses." +msgstr "" +"Это разделенный запятыми список публичных адресов эл. почты пользователей." + +#: ../help/help.inc:149 +msgid "" +"This is a list of IP addresses from hosts who may access LAM. You can use \"*" +"\" as wildcard (e.g. 192.168.0.*)." +msgstr "" +"Список IP адресов компьютеров, с которых есть доступ к LAM. Вы можете " +"использовать \"*\" как маску (например 192.168.0.*)." + +#: ../lib/modules/selfRegistration.inc:118 +msgid "" +"This is a list of additional attributes that the user can enter. Please note " +"that user name, password and email address are mandatory anyway and need not " +"be specified." +msgstr "" +"Это список дополнительных атрибутов доступных пользователю. Обратите " +"внимание, что имя пользователя, пароль и адрес электронной почты " +"обязательны, их не нужно сюда вносить." + +#: ../lib/modules/windowsGroup.inc:131 ../lib/modules/groupOfNames.inc:81 +msgid "This is a list of members of this group." +msgstr "Это список участников этой группы." + +#: ../lib/modules/windowsGroup.inc:135 ../lib/modules/groupOfNames.inc:85 +msgid "" +"This is a list of members of this group. Multiple members are separated by " +"semicolons." +msgstr "" +"Это список участников этой группы. Несколько пользователей разделяются " +"точкой с запятой (;)." + +#: ../lib/modules/eduPerson.inc:95 +msgid "This is a list of nick names for this user." +msgstr "Список сокращенных имен для этого пользователя." + +#: ../lib/modules/selfRegistration.inc:114 +msgid "" +"This is a list of object classes that are used to build the new user " +"accounts. Please enter one object class in each line." +msgstr "" +"Это список классов объектов, которые используются для создания новых " +"пользовательских аккаунтов. Пожалуйста, указывайте только один класс объекта " +"в каждой линии." + +#: ../help/help.inc:111 +msgid "" +"This is a list of the servers where the lamdaemon scripts are stored. LDAP " +"Account Manager will make a SSH connection to the servers with the user name " +"and password provided at login. Multiple servers are separated by " +"semicolons. You can append a descriptive name after a colon." +msgstr "" +"Это список серверов, на которых находится скрипт lamdaemon. LAM соединяется " +"к ним по SSH с именем пользователя и паролем, использованными для входа в " +"LAM. Несколько серверов в списке разделяются точкой с запятой(;). Вы можете " +"добавить описание после двоеточия." + +#: ../help/help.inc:91 +msgid "" +"This is a list of valid DN entries of all users that are allowed to login to " +"LDAP Account Manager. Please enter one DN per line." +msgstr "" +"Это список DN-записей всех пользователей, кому разрешено входить в LAM. Одна " +"строка должна содержать одну DN-запись." + +#: ../templates/3rdParty/pla/lib/PageRender.php:881 +msgid "This is a structural ObjectClass and cannot be removed." +msgstr "Это структурный ObjectClass - он не может быть удален." + +#: ../lib/modules/nisObject.inc:67 ../lib/modules/automount.inc:66 +msgid "This is an optional description for this entry." +msgstr "Это опциональное описание для этой записи." + +#: ../help/help.inc:203 +msgid "" +"This is needed to find the LDAP DNs of your user accounts. E.g. if you use " +"\"uid\" and your user inputs \"miller\" then LAM will search for an account " +"with uid=miller." +msgstr "" +"Это нужно для поиска в LDAP отличительных имен (DN) ваших аккаунтов " +"пользователей. Например, если Вы используете \"uid\" и ваш пользователь " +"наберет \"miller\" , LAM будет искать учетную запись с uid=miller." + +#: ../lib/modules/zarafaDynamicGroup.inc:192 ../lib/modules/ipHost.inc:110 +#: ../lib/modules/posixGroup.inc:584 ../lib/modules/device.inc:135 +#: ../lib/modules/eduPerson.inc:239 ../lib/modules/eduPerson.inc:241 +#: ../lib/modules/zarafaAddressList.inc:163 +#: ../lib/modules/posixAccount.inc:131 ../lib/modules/inetOrgPerson.inc:95 +#: ../lib/modules/aliasEntry.inc:79 ../lib/modules/qmailGroup.inc:426 +#: ../lib/modules/qmailGroup.inc:427 ../lib/modules/qmailGroup.inc:428 +msgid "This is not a valid DN!" +msgstr "Это неправильный DN!" + +#: ../lib/modules/sambaSamAccount.inc:109 +msgid "This is not a valid RID number!" +msgstr "Это неправильный RID!" + +#: ../lib/modules/sambaGroupMapping.inc:591 +msgid "This is not a valid Samba 3 group type!" +msgstr "Это неправильный тип группы Samba3!" + +#: ../lib/modules/eduPerson.inc:243 +msgid "This is not a valid list of DNs!" +msgstr "Это неправильный список DN!" + +#: ../lib/modules/qmailGroup.inc:429 ../lib/modules/qmailGroup.inc:430 +msgid "This is not a valid option." +msgstr "Это неверная опция." + +#: ../lib/modules/inetLocalMailRecipient.inc:66 +msgid "This is one of the users public email addresses." +msgstr "Это один из публичных адресов электронной почты пользователя." + +#: ../lib/modules/nisMailAlias.inc:75 +msgid "This is one recipient for this alias." +msgstr "Получатель для этого псевдонима." + +#: ../help/help.inc:84 +msgid "" +"This is only needed for TLS/SSL connections. By default, LAM will use the " +"certificate authorities installed on your system. If you have a private CA " +"in your company you can upload your CA certificates here and override the " +"system certificates." +msgstr "" +"Это нужно только для TLS/SSL соединений. По умолчанию, LAM будет " +"использовать центры сертификации, установленные на вашей системе. Если в " +"вашей компании используется собственный CA, вы можете загрузить сертификаты " +"вашего CA здесь и перекрыть сертификаты системы." + +#: ../lib/modules/asteriskAccount.inc:95 +msgid "" +"This is the ID of the user in the Asterisk database. It may contain digits " +"and letters (e.g. user1 or 200134)." +msgstr "" +"Это ID пользователя в базе данных Asterisk. Он может содержать цифры и буквы " +"(например user1 или 200134)." + +#: ../lib/modules/freeRadius.inc:78 +msgid "This is the IP address for the user (e.g. 123.123.123.123)." +msgstr "Это IP адрес пользователя (например 123.123.123.123)." + +#: ../lib/modules/ipHost.inc:59 +msgid "" +"This is the IP address of the network card of the device (e.g. " +"123.123.123.123)." +msgstr "Это IP адрес сетевой карты устройства (например 123.123.123.123)." + +#: ../lib/modules/ipHost.inc:71 +msgid "This is the LDAP DN of the host's manager." +msgstr "Это LDAP DN управляющего хостом." + +#: ../lib/modules/inetOrgPerson.inc:726 ../lib/modules/inetOrgPerson.inc:730 +msgid "" +"This is the LDAP DN of the user's manager. Use this property to represent " +"hierarchies in your company." +msgstr "" +"Это - DN менеджера пользователя. Используется для предоставления иерархии в " +"вашей компании." + +#: ../lib/modules/customFields.inc:103 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an activated " +"state. The value is case-insensitive." +msgstr "" +"Это значение атрибута LDAP при котором чекбокс будет включен. Значение " +"регистронезависимо." + +#: ../lib/modules/customFields.inc:107 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an deactivated " +"state. The value is case-insensitive." +msgstr "" +"Это значение атрибута LDAP при котором чекбокс будет выключен. Значение " +"регистронезависимо." + +#: ../lib/modules/ieee802device.inc:62 +msgid "" +"This is the MAC address of the network card of the device (e.g. 00:01:02:DE:" +"EF:18)." +msgstr "Это - MAC адрес сетевого адаптера (например 00:01:02:DE:EF:18)." + +#: ../lib/modules/sambaSamAccount.inc:314 +msgid "This is the SID of the user's primary Windows group." +msgstr "Это - SID основной Windows группы пользователя." + +#: ../help/help.inc:100 +msgid "" +"This is the absolute path to an external script for setting quotas and " +"creating home directories." +msgstr "" +"Это абсолютный путь до внешнего скрипта для установки квоты и создания " +"домашнего каталога." + +#: ../lib/modules/mitKerberos.inc:150 ../lib/modules/heimdalKerberos.inc:118 +msgid "This is the account's Kerberos password." +msgstr "Это Kerberos пароль аккаунта." + +#: ../lib/modules/sambaSamAccount.inc:252 +msgid "This is the account's Windows password." +msgstr "Это Windows пароль аккаунта." + +#: ../lib/modules/sambaSamAccount.inc:249 ../lib/modules/windowsUser.inc:104 +msgid "This is the account's full name on Windows systems." +msgstr "Это полное имя аккаунта на Windows системах." + +#: ../lib/modules/ppolicyUser.inc:49 +msgid "This is the active password policy for this account." +msgstr "Это активная политика паролей для этого аккаунта." + +#: ../lib/modules/passwordSelfReset.inc:78 +msgid "" +"This is the answer to the security question. It allows users to reset their " +"password." +msgstr "" +"Это ответ на секретный вопрос. С помощью него пользователи могут сбросить " +"свои пароли." + +#: ../lib/modules/mitKerberos.inc:138 +msgid "This is the date of the user's last login." +msgstr "Это дата последнего успешного входа пользователя в систему." + +#: ../lib/modules/mitKerberos.inc:118 ../lib/modules/heimdalKerberos.inc:96 +msgid "This is the date when the account will expire." +msgstr "Это дата, когда срок действия аккаунта завершится." + +#: ../lib/modules/sambaSamAccount.inc:336 ../lib/modules/shadowAccount.inc:187 +msgid "This is the date when the account will expire. Format: DD-MM-YYYY" +msgstr "Дата, до которой эта учетная запись активна. Формат: DD-MM-YYYY" + +#: ../lib/modules/mitKerberos.inc:134 +msgid "This is the date when the user changed his password." +msgstr "Это дата, когда пользователь сменил свой пароль." + +#: ../lib/modules/shadowAccount.inc:195 +msgid "" +"This is the date when the user changed his password. If you specify a " +"maximum password age then you can force a password change here." +msgstr "" +"Это дата смены пользователем своего пароля. Если вы укажете максимальный " +"срок действия пароля, тогда здесь вы можете форсировать смену пароля." + +#: ../lib/modules/sambaGroupMapping.inc:140 +msgid "This is the group name which will be shown in Windows." +msgstr "Это название группы, показываемое в Windows." + +#: ../lib/modules/windowsHost.inc:76 +msgid "This is the host's location (e.g. Munich, server room 3)." +msgstr "Это месторасположение хоста (например, Мюнхен, серверная номер 3)." + +#: ../help/help.inc:167 +msgid "" +"This is the identifier for the relative DN value. It must be one of the " +"given allowed LDAP attributes (e.g. user accounts usually use \"uid\" while " +"groups use \"cn\")." +msgstr "" +"Это идентификатор для соответствующего значения DN. Он должен быть одним из " +"разрешенных атрибутов LDAP (например пользовательские аккаунты используют " +"\"uid\" , а групповые \"cn\")." + +#: ../lib/modules/passwordSelfReset.inc:90 +msgid "" +"This is the label for the link to the password self reset. If empty \"Forgot " +"password?\" will be used." +msgstr "" +"Это подпись для ссылки на самостоятельный сброс пароля. Если пусто, будет " +"использовано \"Забыли пароль?\"." + +#: ../lib/modules/selfRegistration.inc:97 +msgid "" +"This is the label for the link to the self registration. If empty \"Register " +"new account\" will be used." +msgstr "" +"Это подпись для ссылки на самостоятельную регистрацию. Если пусто, будет " +"использовано \"Зарегистрировать новый аккаунт\"." + +#: ../help/help.inc:86 +msgid "" +"This is the list of attributes to show in the account list. The entries can " +"either be predefined values, \"#attribute\", or individual ones, \"attribute:" +"description\". Several entries are separated by semicolons." +msgstr "" +"Это список атрибутов показываемых в списке аккаунтов. Эти записи могут быть " +"предустановленными: \"#attribute\", или настроенными вручную: \"attribute:" +"description\". Несколько записей должны быть отделены друг от друга точкой с " +"запятой." + +#: ../lib/modules/posixAccount.inc:483 +msgid "This is the list of valid login shells." +msgstr "Это список корректных оболочек входа в систему." + +#: ../lib/modules/asteriskAccount.inc:99 +msgid "" +"This is the machine id (e.g. IP address or host name) from which the user " +"can call/receive calls." +msgstr "" +"Это идентификатор компьютера (например, IP адрес или имя хоста) с которого " +"пользователь может звонить/получать звонки." + +#: ../lib/modules/inetLocalMailRecipient.inc:74 +msgid "This is the mail server for the user." +msgstr "Это почтовый сервер для этого пользователя." + +#: ../lib/modules/qmailUser.inc:213 +msgid "This is the mailbox size limit in bytes." +msgstr "Это максимальный размер почтового ящика в байтах." + +#: ../lib/modules/passwordSelfReset.inc:82 +msgid "This is the minimum length for answers to the security question." +msgstr "Это минимальная длина ответа на секретный вопрос." + +#: ../lib/modules/nisnetgroup.inc:77 ../lib/modules/groupOfNames.inc:65 +msgid "This is the name of this group." +msgstr "Это имя для этой группы." + +#: ../lib/modules/posixAccount.inc:550 +msgid "" +"This is the natural name of the host. If empty, the host name will be used." +msgstr "" +"Это настоящее имя компьютера. Если не задано, будет использовано имя " +"компьютера." + +#: ../lib/modules/inetOrgPerson.inc:809 +msgid "" +"This is the natural name of the user. If empty, the first and last name is " +"used." +msgstr "" +"Это настоящее имя пользователя. Пусто - будут использованы имя и фамилия." + +#: ../lib/modules/posixAccount.inc:528 +msgid "" +"This is the natural name of the user. If empty, the first and last name or " +"user name is used." +msgstr "" +"Это настоящее имя пользователя. Пусто - будут использованы имя и фамилия или " +"имя пользователя." + +#: ../lib/modules/sambaDomain.inc:115 +msgid "" +"This is the number of bad logon attempts (0 - 999) before the account is " +"deactivated. 0 means unlimited attempts." +msgstr "" +"Кол-во неправильных попыток входа (0 - 999) перед тем как аккаунт " +"пользователя будет отключен. 0 - количество попыток не ограничено." + +#: ../lib/modules/sambaDomain.inc:99 +msgid "" +"This is the number of passwords which are saved to prevent that users reuse " +"old passwords." +msgstr "" +"Это число хранимых паролей пользователя, для предотвращения повторного " +"использования." + +#: ../help/help.inc:96 +msgid "" +"This is the number of rows to show in the account list. If more entries are " +"found the list will be split into several pages." +msgstr "" +"Кол-во строк в списке аккаунтов. Если записей будет больше, список будет " +"разделен на несколько страниц." + +#: ../lib/modules/sambaSamAccount.inc:345 +msgid "This is the path to the user's home directory." +msgstr "Путь до домашнего каталога пользователя." + +#: ../lib/modules/sambaGroupMapping.inc:148 +msgid "" +"This is the relative ID (similar to UID on Unix) for Windows accounts. If " +"you leave this empty LAM will calculate the RID from the UID. This can be " +"either a number or the name of a special group:" +msgstr "" +"Это ID (подобный UID в Unix) для учетных записей Windows. Если оставить поле " +"пустым, LAM вычислит RID из UID. Может быть числом или именем специальной " +"группы:" + +#: ../lib/modules/sambaSamAccount.inc:320 +msgid "" +"This is the relative ID number for your Windows account. You can either " +"enter a number or one of these special accounts: " +msgstr "" +"Это ID для вашего Windows аккаунта. Можно ввести число или одну из " +"специальных уч. записей:" + +#: ../lib/modules/sambaSamAccount.inc:324 +msgid "" +"This is the relative ID number for your host account. If you leave this " +"empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" +"Это ID для вашего аккаунта хоста. Если оставить поле пустым, LAM использует: " +"uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../lib/modules/imapAccess.inc:104 +msgid "" +"This is the separator for the mailbox path. Usually, this is \".\" but e.g. " +"Cyrus with \"unixhierarchysep\" will require \"/\"." +msgstr "" +"Это разделитель для пути к почтовому ящику. Обычно это \".\" но, например, " +"Cyrus с \"unixhierarchysep\" потребует \"/\"." + +#: ../help/help.inc:59 +msgid "" +"This is the server address of your LDAP server. Use ldap:// for unencrypted " +"LDAP connections or TLS encrypted connections. LDAP+SSL (LDAPS) encrypted " +"connections are specified with ldaps://. The port value is optional." +msgstr "" +"Адрес LDAP сервера. Используйте ldap:// для незащищенных или TLS защищенных " +"соединений. ldaps:// для защищенных соединений LDAP+SSL. Порт указывать не " +"обязательно." + +#: ../help/help.inc:78 +msgid "This is the suffix for the LDAP tree viewer." +msgstr "Это суффикс для просмотра дерева LDAP" + +#: ../help/help.inc:72 +msgid "" +"This is the suffix of the LDAP tree from where to search for LDAP entries. " +"Only entries in this subtree will be displayed in the account list. When " +"creating a new accont this will be the DN where it is saved." +msgstr "" +"Это суффикс, от которого будет производиться поиск в LDAP. Только записи в " +"этом поддереве будут показаны в списке аккаунтов. Новые аккаунты сохраняются " +"с этим DN." + +#: ../lib/modules/inetLocalMailRecipient.inc:62 +msgid "This is the target email address for the user's mails." +msgstr "Адрес электронной почты для приема писем пользователя." + +#: ../lib/modules/customScripts.inc:46 ../lib/modules/uidObject.inc:53 +#: ../lib/modules/aliasEntry.inc:55 +msgid "This is the target of this alias entry." +msgstr "Имя для которого используется этот псевдоним." + +#: ../lib/modules/sambaDomain.inc:127 +msgid "" +"This is the time (in minutes) for which the user may not log in after the " +"account was locked. -1 means forever." +msgstr "" +"Это - время (в минутах), после которого пользователь не сможет войти в " +"систему, после того, как учетная запись будет заблокировано. -1 всегда." + +#: ../help/help.inc:143 +msgid "" +"This is the time (in minutes) of inactivity after which a user is " +"automatically logged off." +msgstr "" +"Это время (в минутах) неактивности пользователя, по истечению которого " +"пользователь автоматически выйдет из системы." + +#: ../help/help.inc:104 +msgid "" +"This is the time in minutes which LAM caches its LDAP searches. Shorter " +"times will stress LDAP more but decrease the possibility that changes are " +"not identified." +msgstr "" +"Это время (в минутах), в течении которого LAM кэширует записи, найденные при " +"поиске в LDAP. Меньшее время увеличивает нагрузку на LDAP, но уменьшает " +"вероятность, что изменения не будут замечены." + +#: ../lib/modules/sambaSamAccount.inc:339 +msgid "" +"This is the time zone of your Samba server. LAM needs this information to " +"display the logon hours correctly." +msgstr "" +"Временная зона Вашего Samba сервера. Эта информация нужна для правильной " +"настройки интервала времени для разрешенного входа." + +#: ../lib/modules/sambaSamAccount.inc:311 +msgid "This is the user's primary Windows group." +msgstr "Это основная Windows группа пользователя." + +#: ../lib/modules/puppetClient.inc:82 +msgid "" +"This is this node's parent. All classes and variables are inherited from " +"this node." +msgstr "Это предок узла. Все классы и переменные наследуются от этого узла." + +#: ../lib/modules/asteriskAccount.inc:147 +msgid "" +"This is typically used to allow incoming calls (e.g. from FWD) while having " +"a type=friend entry defined with username and password." +msgstr "" +"Это обычно используется для разрешения входящих вызовов (например от FWD) в " +"случае если есть запись type=friend с паролем и именем пользователя." + +#: ../lib/modules/zarafaUser.inc:110 +msgid "This is used to mark this account as resource." +msgstr "Это используется, чтобы пометить данный аккаунт как ресурс." + +#: ../lib/modules/posixAccount.inc:127 +msgid "This login shell is invalid!" +msgstr "Эта оболочка для входа неправильная!" + +#: ../lib/modules/inetLocalMailRecipient.inc:221 +msgid "This mail address is already in use:" +msgstr "Этот почтовый адрес уже используется" + +#: ../lib/modules/imapAccess.inc:98 +msgid "This mailbox will be created/deleted." +msgstr "Этот почтовый ящик будет создан/удален." + +#: ../lib/modules/customFields.inc:99 +msgid "" +"This message is shown when the field value does not match the validation " +"expression." +msgstr "" +"Это сообщение показывается в случае если значение поля не удовлетворяет " +"проверочному выражению." + +#: ../templates/schema/schema.php:350 +msgid "This object class is obsolete." +msgstr "Этот класс объекта устарел." + +#: ../lib/modules/imapAccess.inc:77 +msgid "" +"This option allows you to disable the certificate check of your IMAP server " +"certificate. Disabling the certificate check is not recommended." +msgstr "" +"Эта опция позволяет отключить проверку сертификата вашего IMAP сервера. " +"Отключение проверки не рекомендуется." + +#: ../lib/modules/sambaSamAccount.inc:330 +msgid "This option defines the allowed logon hours for this account." +msgstr "Эта опция устанавливает разрешенное время входа для этого аккаунта." + +#: ../lib/modules/sambaSamAccount.inc:333 +msgid "" +"This option defines the allowed logon hours for this account. The format is " +"the same as for the LDAP attribute. The 24*7 hours are represented as 168 " +"bit which are saved as 21 hex (21*8 = 168) values. The first bit represents " +"Sunday 0:00 - 0:59 in GMT." +msgstr "" +"Эта опция устанавливает разрешенное время входа для этого аккаунта. Формат " +"такой же, как для атрибута LDAP. Все время (24*7) - это 168 бит, которые " +"сохраняются как 21 hex (21*8 = 168) значения. Первый бит представляет 0:00 - " +"0:59 GMT воскресенья." + +#: ../lib/modules/asteriskExtension.inc:185 +msgid "This pair of extension name and priority already exists." +msgstr "Эта пара имени расширения и приоритета уже существует." + +#: ../lib/modules/sambaSamAccount.inc:354 +msgid "This program is run after the login." +msgstr "Программа, запускаемая после входа." + +#: ../lib/modules/sambaSamAccount.inc:378 +msgid "This specifies the reconnect policy." +msgstr "Определяет политику переподключения." + +#: ../lib/modules/zarafaDynamicGroup.inc:89 +#: ../lib/modules/zarafaContact.inc:100 ../lib/modules/zarafaGroup.inc:107 +#: ../lib/modules/zarafaAddressList.inc:77 ../lib/modules/zarafaUser.inc:165 +#: ../lib/modules/zarafaServer.inc:86 +msgid "" +"This specifies the used Zarafa LDAP schema. Select LDAP for e.g. OpenLDAP, " +"Apache Directory, OpenDJ and other non-Windows based LDAP servers. If you " +"run Zarafa against Samba 4 or Active Directory please select Active " +"Directory." +msgstr "" +"Это указывает используемую LDAP схему Zarafa. Выберите LDAP для OpenLDAP, " +"Apache Directory, OpenDJ и других LDAP серверов работающих не на платформе " +"Windows. В случае если Zarafa работает с Samba 4 или Active Directory, " +"выберите Active Directory." + +#: ../lib/modules/sambaSamAccount.inc:375 +msgid "This specifies what to do when the client connection is broken." +msgstr "Это определяет, что делать, если подключение клиента разорвалось." + +#: ../help/help.inc:207 +msgid "" +"This text is displayed on top of the self service login page. You can also " +"input HTML code here." +msgstr "" +"Этот текст будет наверху входной страницы сервиса самообслуживания. " +"Допускается HTML код." + +#: ../help/help.inc:209 +msgid "" +"This text is displayed on top of the self service main page. You can also " +"input HTML code here." +msgstr "" +"Этот текст показывается вверху основной страницы сервиса самообслуживания. " +"Можно использовать HTML код." + +#: ../help/help.inc:205 +msgid "" +"This text should shortly describe your selected LDAP search attribute (e.g. " +"email or user name)." +msgstr "" +"Этот текст кратко описывает выбранный атрибут для поиска в LDAP (например, " +"электронная почта или имя пользователя)." + +#: ../lib/modules/qmailUser.inc:233 +msgid "" +"This text will be sent as reply to all incoming mails if the delivery mode " +"is set to autoreply." +msgstr "" +"Этот текст будет послан в качестве ответа на все входящие сообщения, в " +"случае если режим отправки установлен в автоответчик." + +#: ../lib/tools/pdfEdit.inc:53 +msgid "This tool allows you to customize the PDF pages." +msgstr "Эта утилита позволяет Вам редактировать содержание PDF страниц." + +#: ../templates/lists/changePassword.php:46 +msgid "This user is not supported or was not found." +msgstr "Этот пользователь не поддерживается или не найден." + +#: ../templates/lists/userlink.php:61 +msgid "This user was not found!" +msgstr "Этот пользователь не найден!" + +#: ../lib/modules/zarafaUser.inc:446 +msgid "This value can only be \"Room\" or \"Equipment\"." +msgstr "Это значение может быть только \"Комната\" или \"Оборудование\"." + +#: ../lib/modules/zarafaDynamicGroup.inc:197 +#: ../lib/modules/zarafaDynamicGroup.inc:198 +#: ../lib/modules/zarafaContact.inc:178 ../lib/modules/zarafaContact.inc:179 +#: ../lib/modules/zarafaGroup.inc:213 ../lib/modules/zarafaGroup.inc:214 +#: ../lib/modules/zarafaGroup.inc:215 ../lib/modules/zarafaAddressList.inc:164 +#: ../lib/modules/zarafaAddressList.inc:165 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 ../lib/modules/posixAccount.inc:128 +#: ../lib/modules/zarafaUser.inc:453 ../lib/modules/zarafaUser.inc:455 +#: ../lib/modules/zarafaUser.inc:456 ../lib/modules/zarafaUser.inc:457 +#: ../lib/modules/zarafaUser.inc:458 ../lib/modules/zarafaUser.inc:459 +#: ../lib/modules/ppolicyUser.inc:86 ../lib/modules/inetOrgPerson.inc:100 +#: ../lib/modules/zarafaServer.inc:172 +msgid "This value can only be \"true\" or \"false\"." +msgstr "Это значение может быть только \"true\" или \"false\"." + +#: ../lib/modules/zarafaUser.inc:454 +msgid "This value can only be \"true\", \"false\" or \"system\"." +msgstr "Это значение может быть только \"true\", \"false\" or \"system\"." + +#: ../lib/modules/posixGroup.inc:582 +msgid "This value must be a list of user names separated by semicolons." +msgstr "" +"Эта запись должна быть списком имен пользователей, разделенных точкой с " +"запятой." + +#: ../help/help.inc:236 +msgid "This will create a new organisational unit under the selected one." +msgstr "Это создаст новую организационную единицу, входящую в выбранную." + +#: ../lib/modules/posixAccount.inc:475 +msgid "This will create the user's home directory on the specified server." +msgstr "Это создаст домашний каталог пользователя на указанном сервере." + +#: ../help/help.inc:238 +msgid "" +"This will delete the selected organisational unit. The OU has to be empty." +msgstr "Это удалит выбранную организационную единицу. OU должна быть пустая." + +#: ../help/help.inc:131 +msgid "This will delete the selected profile." +msgstr "Это удалит выбранный профиль." + +#: ../lib/modules/kolabGroup.inc:111 ../lib/modules/puppetClient.inc:102 +#: ../lib/modules/qmailUser.inc:257 ../lib/modules/zarafaContact.inc:81 +#: ../lib/modules/posixGroup.inc:509 ../lib/modules/eduPerson.inc:144 +#: ../lib/modules/sambaSamAccount.inc:390 ../lib/modules/posixAccount.inc:426 +#: ../lib/modules/zarafaUser.inc:130 ../lib/modules/shadowAccount.inc:191 +#: ../lib/modules/qmailGroup.inc:226 +#: ../lib/modules/authorizedServiceObject.inc:83 +#: ../lib/modules/passwordSelfReset.inc:142 ../lib/modules/hostObject.inc:77 +msgid "This will enable the extension automatically if this profile is loaded." +msgstr "Это включит расширение автоматически, если загружен этот профиль." + +#: ../lib/modules/sambaSamAccount.inc:255 +msgid "This will reset the host's password to a default value." +msgstr "Это сбросит пароль хоста в значение по умолчанию." + +#: ../templates/lists/changePassword.php:297 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail." +msgstr "" +"Это установит случайный пароль и покажет его на экране или пошлет его " +"пользователю по почте." + +#: ../help/help.inc:219 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail. Please edit your LAM server profile to setup the mail " +"settings." +msgstr "" +"Это установит случайный пароль и покажет его на экране или пошлет его " +"пользователю по почте. Пожалуйста, отредактируйте профайл вашего сервера " +"LAM, чтобы настроить почту." + +#: ../lib/modules/kolabGroup.inc:107 ../lib/modules/kolabUser.inc:153 +msgid "" +"This will set a special flag on the account which tells Kolabd to remove it. " +"Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes)." +msgstr "" +"Это устанавливает специальный флаг, говорящий Kolabd удалить этот аккаунт. " +"Используйте это для полного удаления Kolab аккаунтов (например, это удаляет " +"почтовые ящики)." + +#: ../lib/modules/qmailUser.inc:205 +msgid "" +"This will set the user's account status. You may disable the mail account " +"here." +msgstr "" +"Здесь можно задать статус пользовательского аккаунта. Вы можете отключить " +"здесь почтовый аккаунт." + +#: ../lib/modules/sambaSamAccount.inc:1350 +msgid "Thursday" +msgstr "Четверг" + +#: ../lib/modules/mitKerberos.inc:129 ../lib/modules/mitKerberos.inc:188 +#: ../lib/modules/mitKerberos.inc:223 ../lib/modules/mitKerberos.inc:247 +#: ../lib/modules/mitKerberos.inc:356 ../lib/modules/mitKerberos.inc:776 +#: ../lib/modules/heimdalKerberos.inc:103 +#: ../lib/modules/heimdalKerberos.inc:157 +#: ../lib/modules/heimdalKerberos.inc:192 +#: ../lib/modules/heimdalKerberos.inc:214 +#: ../lib/modules/heimdalKerberos.inc:299 +#: ../lib/modules/heimdalKerberos.inc:684 +msgid "Ticket lifetime" +msgstr "Время жизни билета" + +#: ../lib/modules/mitKerberos.inc:284 ../lib/modules/mitKerberos.inc:285 +#: ../lib/modules/heimdalKerberos.inc:248 +#: ../lib/modules/heimdalKerberos.inc:249 +msgid "Ticket lifetime must be a number." +msgstr "Время жизни билета должно быть числом." + +#: ../lib/modules/sambaSamAccount.inc:1372 +msgid "Time" +msgstr "Время" + +#: ../lib/modules/sambaSamAccount.inc:359 +msgid "Time limit" +msgstr "Лимит времени" + +#: ../lib/modules/sambaSamAccount.inc:338 +#: ../lib/modules/sambaSamAccount.inc:566 +msgid "Time zone" +msgstr "Временная зона" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:45 +msgid "To" +msgstr "Кому" + +#: ../lib/modules/posixAccount.inc:520 +msgid "To disable login use /bin/false." +msgstr "Для отключения возможности входа в систему используйте /bin/false." + +#: ../lib/modules/sambaSamAccount.inc:560 +msgid "Tokyo, Seoul, Osaka, Yakutsk" +msgstr "Tokyo, Seoul, Osaka, Yakutsk" + +#: ../templates/config/confmain.php:389 +msgid "Tool settings" +msgstr "Настройки средств" + +#: ../templates/tools.php:63 ../templates/main_header.php:145 +msgid "Tools" +msgstr "Утилиты" + +#: ../templates/serverInfo.php:357 +msgid "Total" +msgstr "Всего" + +#: ../templates/serverInfo.php:242 ../templates/serverInfo.php:247 +msgid "Total connections" +msgstr "Всего подключений" + +#: ../templates/3rdParty/pla/lib/export_functions.php:202 +msgid "Total entries" +msgstr "Всего записей" + +#: ../lib/types/user.inc:682 +msgid "Translate GID number to group name" +msgstr "Перевести GID в имя группы" + +#: ../templates/config/confmain.php:247 ../help/help.inc:77 +msgid "Tree suffix" +msgstr "Суффикс дерева" + +#: ../templates/main_header.php:176 +msgid "Tree view" +msgstr "Просмотр дерева" + +#: ../templates/config/confmain.php:537 +msgid "TreeSuffix is invalid!" +msgstr "Суффикс дерева (TreeSuffix) не правильный!" + +#: ../lib/modules/sambaSamAccount.inc:1350 +msgid "Tuesday" +msgstr "Вторник" + +#: ../templates/selfService/profManage.php:206 +#: ../templates/schema/schema.php:348 ../lib/modules/zarafaUser.inc:109 +#: ../lib/modules/zarafaUser.inc:198 ../lib/modules/zarafaUser.inc:279 +#: ../lib/modules/zarafaUser.inc:402 ../lib/modules/zarafaUser.inc:567 +#: ../lib/modules/zarafaUser.inc:1317 ../lib/modules/customFields.inc:86 +#: ../lib/modules/customFields.inc:992 ../lib/modules/customFields.inc:1468 +msgid "Type" +msgstr "Тип" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:203 ../lib/modules/posixAccount.inc:221 +#: ../lib/modules/posixAccount.inc:486 +msgid "UID generator" +msgstr "Генератор UID" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID has changed. Do you want to change home directory?" +msgstr "UID был изменен. Хотите изменить домашний каталог?" + +#: ../lib/modules/posixAccount.inc:107 +msgid "" +"UID must be a number. It has to be inside the UID range which is defined in " +"your configuration profile." +msgstr "" +"UID должен быть числом. UID должен быть в диапазоне определенном в " +"конфигурационном профиле." + +#: ../lib/types/host.inc:95 ../lib/types/user.inc:92 +#: ../lib/modules/qmailUser.inc:105 ../lib/modules/qmailUser.inc:224 +#: ../lib/modules/qmailUser.inc:325 ../lib/modules/qmailUser.inc:411 +#: ../lib/modules/qmailUser.inc:563 ../lib/modules/qmailUser.inc:1189 +#: ../lib/modules/posixAccount.inc:108 ../lib/modules/posixAccount.inc:284 +#: ../lib/modules/posixAccount.inc:376 ../lib/modules/posixAccount.inc:405 +#: ../lib/modules/posixAccount.inc:442 ../lib/modules/posixAccount.inc:446 +#: ../lib/modules/posixAccount.inc:454 ../lib/modules/posixAccount.inc:1335 +#: ../lib/modules/posixAccount.inc:1748 +msgid "UID number" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:108 +#, php-format +msgid "" +"UID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -uid %s -exec chown %s {} \\;'" +msgstr "" +"UID был изменен. Чтобы не потерять владельца файлов необходимо выполнить: " +"(из под root) 'find / -uid %s -exec chown %s {} \\;'" + +#: ../lib/modules/qmailUser.inc:456 +msgid "UID number is already in use." +msgstr "UID уже используется" + +#: ../lib/modules/posixAccount.inc:99 +msgid "UID ranges for Unix accounts" +msgstr "Диапазон UID для UNIX аккаунтов" + +#: ../lib/modules/sambaSamAccount.inc:296 +msgid "" +"UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced " +"with user and group name." +msgstr "" +"UNC-путь (\\\\server\\share) для домашнего каталога. Вместо $user и $group " +"будет подставлено имя пользователя и группы." + +#: ../lib/modules/eduPerson.inc:112 ../lib/modules/eduPerson.inc:116 +msgid "" +"URI (either URN or URL) that indicates a set of rights to specific resources." +msgstr "URI (URN или URL), показывающие права на определенные ресурсы." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1883 +msgid "URL" +msgstr "URL" + +#: ../lib/modules/imapAccess.inc:160 +msgid "Unable to change ACL on IMAP server for mailbox deletion." +msgstr "Невозможно сменить ACL на сервере IMAP для удаления почтового ящика." + +#: ../lib/modules/mitKerberos.inc:1162 ../lib/modules/mitKerberos.inc:1166 +#: ../lib/modules/heimdalKerberos.inc:1027 +msgid "Unable to change Kerberos password." +msgstr "Невозможно сменить пароль Kerberos." + +#: ../lib/modules/windowsUser.inc:1446 ../lib/modules/windowsUser.inc:1467 +msgid "Unable to change password." +msgstr "Невозможно сменить пароль." + +#: ../templates/selfService/selfServiceMain.php:319 +msgid "" +"Unable to change your account. Maybe you do not have enough rights to change " +"the settings." +msgstr "" +"Невозможно изменить Вашу учетную запись. Возможно, у Вас нет прав для " +"изменения настроек." + +#: ../templates/selfService/selfServiceMain.php:316 +msgid "" +"Unable to change your account. Your changes might violate the password " +"policy." +msgstr "" +"Невозможно изменить Ваш аккаунт. Ваши изменения могут не соответствовать " +"политике паролей." + +#: ../templates/tests/lamdaemonTest.php:261 ../lib/lamdaemon.inc:76 +#: ../lib/lamdaemon.inc:81 +msgid "Unable to connect to remote server!" +msgstr "Невозможно подключиться к удаленному серверу!" + +#: ../templates/massDoUpload.php:193 +msgid "Unable to create ZIP file for PDF export." +msgstr "Невозможно создать ZIP файл для экспорта PDF." + +#: ../lib/modules/selfRegistration.inc:608 +#: ../lib/modules/selfRegistration.inc:612 +msgid "Unable to create account." +msgstr "Невозможно создать аккаунт." + +#: ../lib/modules/imapAccess.inc:162 +msgid "Unable to create mailbox on IMAP server." +msgstr "Невозможно создать почтовый ящик на сервере IMAP." + +#: ../templates/ou_edit.php:80 +msgid "Unable to create new OU!" +msgstr "Невозможно создать новую OU!" + +#: ../lib/types/automountType.inc:270 +msgid "Unable to create new automount map." +msgstr "Невозможно создать новую карту автомонтирования." + +#: ../templates/config/profmanage.php:82 +#: ../templates/selfService/profManage.php:59 +msgid "Unable to create new profile!" +msgstr "Невозможно создать новый профиль!" + +#: ../templates/ou_edit.php:97 +msgid "Unable to delete OU!" +msgstr "Невозможно удалить OU!" + +#: ../templates/pdfedit/pdfmain.php:94 +msgid "Unable to delete PDF structure!" +msgstr "Невозможно удалить PDF структуру!" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:25 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:57 +msgid "Unable to delete entry, it does not exist" +msgstr "Невозможно удалить запись, она не существует" + +#: ../lib/modules/imapAccess.inc:161 +msgid "Unable to delete mailbox from IMAP server." +msgstr "Невозможно удалить почтовый ящик с сервера IMAP." + +#: ../templates/config/profmanage.php:123 +#: ../templates/selfService/profManage.php:87 +#: ../templates/profedit/profilemain.php:108 ../lib/config.inc:141 +#: ../lib/config.inc:153 ../lib/config.inc:160 ../lib/config.inc:168 +msgid "Unable to delete profile!" +msgstr "Невозможно удалить профиль!" + +#: ../lib/modules/posixAccount.inc:1968 ../lib/modules/posixAccount.inc:1977 +#: ../lib/modules/posixAccount.inc:2243 ../lib/modules/nisnetgroup.inc:538 +#: ../lib/modules/groupOfNamesUser.inc:368 +msgid "Unable to find group in LDAP." +msgstr "Невозможно найти группу в LDAP!" + +#: ../lib/modules/passwordSelfReset.inc:817 +msgid "Unable to find password security answer for this account." +msgstr "Невозможно найти парольный секретный ответ для этого аккаунта." + +#: ../lib/modules/passwordSelfReset.inc:809 +#: ../lib/modules/passwordSelfReset.inc:1025 +msgid "Unable to find password security question for this account." +msgstr "Невозможно найти парольный секретный вопрос для этого аккаунта." + +#: ../templates/login.php:594 ../templates/login.php:600 +msgid "Unable to find the user name in LDAP." +msgstr "Невозможно найти пользователя в LDAP." + +#: ../lib/modules/passwordSelfReset.inc:800 +#: ../lib/modules/passwordSelfReset.inc:1098 +msgid "Unable to find user account." +msgstr "Невозможно найти аккаунт пользователя." + +#: ../templates/config/mainmanage.php:160 +msgid "Unable to import server certificate. Please use the upload function." +msgstr "" +"Невозможно импортировать сертификат сервера. Пожалуйста используйте функцию " +"загрузки." + +#: ../lib/modules.inc:1492 ../lib/modules.inc:1496 +msgid "Unable to load LDAP entry:" +msgstr "Невозможно загрузить запись LDAP:" + +#: ../lib/profiles.inc:98 ../lib/profiles.inc:102 ../lib/selfService.inc:196 +#: ../lib/selfService.inc:200 +msgid "Unable to load profile!" +msgstr "Невозможно загрузить профиль!" + +#: ../lib/modules/imapAccess.inc:163 +msgid "Unable to locate mailbox on IMAP." +msgstr "Невозможно найти почтовый ящик IMAP." + +#: ../templates/3rdParty/pla/lib/import_functions.php:388 +#: ../templates/3rdParty/pla/lib/import_functions.php:393 +msgid "Unable to read file." +msgstr "Невозможно прочитать файл." + +#: ../lib/modules/selfRegistration.inc:601 +msgid "Unable to register your new account. Please try again." +msgstr "" +"Невозможно зарегистрировать Ваш новый аккаунт. Пожалуйста, попробуйте еще " +"раз." + +#: ../lib/modules/passwordSelfReset.inc:1293 +#: ../lib/modules/passwordSelfReset.inc:1302 +#: ../lib/modules/passwordSelfReset.inc:1308 +#: ../lib/modules/passwordSelfReset.inc:1317 +msgid "Unable to reset password." +msgstr "Невозможно сбросить пароль." + +#: ../templates/3rdParty/pla/lib/functions.php:1945 +msgid "Unable to retrieve image" +msgstr "Невозможно получить изображение" + +#: ../templates/tests/schemaTest.php:61 ../templates/schema/schema.php:93 +#: ../templates/schema/schema.php:111 ../templates/schema/schema.php:272 +#: ../templates/schema/schema.php:306 +msgid "Unable to retrieve schema!" +msgstr "Невозможно получить схему!" + +#: ../templates/selfService/adminMain.php:245 +#: ../templates/profedit/profilepage.php:124 +msgid "Unable to save profile!" +msgstr "Невозможно сохранить профиль!" + +#: ../lib/account.inc:999 +msgid "Unable to send mail!" +msgstr "Невозможно отправить почту!" + +#: ../lib/modules/passwordSelfReset.inc:866 +#: ../lib/modules/passwordSelfReset.inc:1110 +msgid "Unable to verify your password reset request. Please try again." +msgstr "" +"Невозможно проверить Ваш запрос на сброс пароля. Пожалуйста, попробуйте еще " +"раз." + +#: ../lib/modules/selfRegistration.inc:635 +msgid "Unable to verify your user creation request. Please try again." +msgstr "" +"Невозможно проверить Ваш запрос на создание пользователя. Попробуйте еще раз." + +#: ../templates/serverInfo.php:293 +msgid "Unbind" +msgstr "Отвязать" + +#: ../lib/modules/windowsGroup.inc:66 +msgid "Universal" +msgstr "Универсальный" + +#: ../templates/lists/changePassword.php:362 +#: ../templates/lists/changePassword.php:393 ../lib/types/user.inc:268 +#: ../lib/types/user.inc:369 ../lib/types/user.inc:401 +#: ../lib/types/user.inc:821 ../lib/modules/posixGroup.inc:362 +#: ../lib/modules/posixAccount.inc:161 +msgid "Unix" +msgstr "Unix" + +#: ../templates/tests/lamdaemonTest.php:214 +msgid "Unix account" +msgstr "аккаунт Unix" + +#: ../lib/modules/posixAccount.inc:256 ../lib/modules/posixAccount.inc:1462 +msgid "Unix groups" +msgstr "Группы UNIX" + +#: ../lib/modules/dhcp_settings.inc:194 ../lib/modules/dhcp_settings.inc:211 +#: ../lib/modules/dhcp_settings.inc:287 ../lib/modules/dhcp_settings.inc:595 +#: ../lib/modules/dhcp_settings.inc:675 +msgid "Unknown clients" +msgstr "Неизвестные клиенты" + +#: ../lib/modules/kolabUser.inc:218 +#, php-format +msgid "Unknown delegate address: %s" +msgstr "Неизвестный адрес делегата: %s" + +#: ../templates/3rdParty/pla/lib/import_functions.php:233 +msgid "Unkown change type" +msgstr "Неизвестный тип для смены" + +#: ../lib/types/user.inc:350 ../lib/types/user.inc:355 +#: ../lib/modules/windowsUser.inc:551 +msgid "Unlock" +msgstr "Разблокировать" + +#: ../templates/lists/changePassword.php:203 +#: ../templates/lists/changePassword.php:359 +#: ../templates/lists/changePassword.php:379 +#: ../templates/lists/changePassword.php:381 +#: ../lib/modules/ppolicyUser.inc:135 +msgid "Unlock account" +msgstr "Разблокировать аккаунт" + +#: ../templates/lists/changePassword.php:251 +msgid "Unlock account?" +msgstr "Разблокировать аккаунт?" + +#: ../lib/modules/posixGroup.inc:209 ../lib/modules/posixAccount.inc:1404 +#: ../lib/modules/inetOrgPerson.inc:2087 +msgid "Unlock password" +msgstr "Разблокировать пароль" + +#: ../templates/masscreate.php:106 ../templates/config/confmodules.php:386 +msgid "Unsolved dependency:" +msgstr "Неразрешенная зависимость:" + +#: ../templates/pdfedit/pdfpage.php:473 +msgid "Up" +msgstr "Вверх" + +#: ../templates/lists/changePassword.php:215 +msgid "Update Samba password timestamp" +msgstr "Обновить timestamp пароля Samba" + +#: ../lib/modules/sambaSamAccount.inc:242 +msgid "Update attribute \"sambaPwdLastSet\" on password change" +msgstr "Обновить атрибут \"sambaPwdLastSet\" при изменении пароля" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1440 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:194 +msgid "Update object" +msgstr "Обновить объект" + +#: ../lib/modules/imapAccess.inc:302 ../lib/modules/imapAccess.inc:311 +msgid "Update quota" +msgstr "Обновить квоту" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:165 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:129 +msgid "Update values" +msgstr "Обновить значения" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:118 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:118 +msgid "Updating object" +msgstr "Обновление объекта" + +#: ../templates/config/mainmanage.php:288 ../lib/modules/ldapPublicKey.inc:141 +#: ../lib/modules/inetOrgPerson.inc:2303 +msgid "Upload" +msgstr "Загрузить" + +#: ../templates/config/mainmanage.php:290 +msgid "Upload CA certificate in DER/PEM format." +msgstr "Загрузить сертификат CA в формате DER/PEM." + +#: ../lib/modules/ldapPublicKey.inc:74 +msgid "Upload a file with one or more keys. Each line contains one key." +msgstr "" +"Загрузить файл с одним или более ключами. Каждая строка содержит один ключ." + +#: ../templates/massBuildAccounts.php:242 +msgid "Upload accounts to LDAP" +msgstr "Загрузить аккаунты в LDAP" + +#: ../lib/modules/ldapPublicKey.inc:137 ../lib/modules/customFields.inc:146 +#: ../lib/modules/customFields.inc:2916 +msgid "Upload file" +msgstr "Загрузить файл" + +#: ../templates/masscreate.php:271 +msgid "Upload file and create accounts" +msgstr "Загрузить файл и создать аккаунты" + +#: ../templates/massDoUpload.php:254 ../lib/lists.inc:1064 +msgid "Upload has finished" +msgstr "Загрузка завершена" + +#: ../lib/modules.inc:498 +#, php-format +msgid "Upload was stopped after errors in %s module!" +msgstr "Загрузка остановлена после ошибок в %s модуле!" + +#: ../templates/serverInfo.php:222 +msgid "Uptime" +msgstr "Время работы" + +#: ../templates/schema/schema.php:209 +msgid "Usage" +msgstr "Использование" + +#: ../lib/modules/authorizedServiceObject.inc:75 +#: ../lib/modules/authorizedServiceObject.inc:79 +msgid "Use * for all services." +msgstr "Используйте * для всех сервисов." + +#: ../lib/modules/sambaSamAccount.inc:257 +#: ../lib/modules/sambaSamAccount.inc:260 +#: ../lib/modules/sambaSamAccount.inc:418 +msgid "Use Unix password" +msgstr "Использовать Unix пароль" + +#: ../lib/modules/sambaSamAccount.inc:263 +#: ../lib/modules/sambaSamAccount.inc:266 +#: ../lib/modules/sambaSamAccount.inc:426 +#: ../lib/modules/sambaSamAccount.inc:1128 +#: ../lib/modules/sambaSamAccount.inc:1708 +msgid "Use no password" +msgstr "Не использовать пароль" + +#: ../help/help.inc:155 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of visible elements for this account type." +msgstr "" +"Используйте это для указания дополнительного фильтра LDAP (например \"(cn!" +"=admin)\") для уменьшения количества видимых элементов данному типу " +"аккаунта." + +#: ../lib/modules/asteriskAccount.inc:179 +msgid "Use this to hide the caller ID." +msgstr "Используйте это для скрытия caller ID." + +#: ../lib/modules/zarafaDynamicGroup.inc:73 +#: ../lib/modules/zarafaContact.inc:65 ../lib/modules/zarafaGroup.inc:80 +#: ../lib/modules/zarafaAddressList.inc:61 ../lib/modules/zarafaUser.inc:74 +msgid "Use this to hide this entry from the address book." +msgstr "Используйте это для скрытия этой записи из адресной книги." + +#: ../lib/modules/sambaGroupMapping.inc:160 +msgid "" +"Use this to specify other groups or accounts from other domains as group " +"members." +msgstr "" +"Используйте это, чтобы определить группы или аккаунты из других доменов как " +"участников группы." + +#: ../lib/modules/quota.inc:102 ../lib/modules/quota.inc:393 +msgid "Used blocks" +msgstr "Занято блоков" + +#: ../lib/modules/quota.inc:103 +msgid "Used blocks. 1000 blocks are usually 1MB" +msgstr "Занято блоков, используемых пользователем. 1000 блоков это обычно 1Мб." + +#: ../templates/schema/schema.php:268 +msgid "Used by attributes" +msgstr "Использовано атрибутами" + +#: ../templates/schema/schema.php:237 +msgid "Used by object classes" +msgstr "Использовано классами объектов" + +#: ../lib/modules/sambaDomain.inc:91 +msgid "Used for calculating RIDs from UID/GID. Do not change if unsure." +msgstr "" +"Использовано для вычисления RIDs из UID/GID. Не изменяйте, если не уверены." + +#: ../lib/modules/asteriskAccount.inc:211 +msgid "Used for registration context." +msgstr "Используется для контекста регистрации." + +#: ../lib/modules/quota.inc:124 ../lib/modules/quota.inc:397 +msgid "Used inodes" +msgstr "Inodes использовано" + +#: ../lib/modules/quota.inc:125 +msgid "Used inodes (files)" +msgstr "Inodes(files) использовано" + +#: ../lib/modules/asteriskAccount.inc:183 +msgid "Used to automatically hangup the call if no RTP traffic is received." +msgstr "" +"Используется для автоматического сброса звонка в случае отсутствия трафика " +"RTP." + +#: ../lib/modules/asteriskAccount.inc:159 +#: ../lib/modules/asteriskAccount.inc:163 +msgid "" +"Used to limit SIP traffic to and from this peer to a certain IP or network." +msgstr "" +"Используется для ограничения входящего/исходящего SIP трафика этого " +"участника к конкретному IP или сети." + +#: ../lib/modules/asteriskAccount.inc:175 +msgid "Used to regularly check that a device is still online." +msgstr "Используется для регулярной проверки работоспособности устройства." + +#: ../lib/types/sudo.inc:78 ../lib/modules/nisnetgroup.inc:213 +#: ../lib/modules/nisnetgroup.inc:581 +msgid "User" +msgstr "Пользователь" + +#: ../lib/types/user.inc:91 +msgid "User ID" +msgstr "ID пользователя" + +#: ../lib/types/user.inc:62 +msgid "User accounts (e.g. Unix, Samba and Kolab)" +msgstr "Аккаунты пользователей (например, Unix, Samba и Kolab)" + +#: ../lib/modules/asteriskAccount.inc:118 +#: ../lib/modules/asteriskAccount.inc:249 +#: ../lib/modules/asteriskAccount.inc:332 +#: ../lib/modules/asteriskAccount.inc:402 +#: ../lib/modules/asteriskAccount.inc:688 +#: ../lib/modules/asteriskAccount.inc:1192 +msgid "User agent" +msgstr "User agent" + +#: ../lib/modules/sambaSamAccount.inc:287 +#: ../lib/modules/sambaSamAccount.inc:1142 +msgid "User can change password" +msgstr "Пользователь может сменить пароль" + +#: ../lib/modules/inetOrgPerson.inc:147 ../lib/modules/inetOrgPerson.inc:360 +#: ../lib/modules/inetOrgPerson.inc:912 ../lib/modules/inetOrgPerson.inc:2044 +#: ../lib/modules/inetOrgPerson.inc:3210 +msgid "User certificates" +msgstr "Сертификаты пользователя" + +#: ../lib/types/user.inc:530 +#, php-format +msgid "User count: %s" +msgstr "Количество пользователей: %s" + +#: ../lib/modules/posixAccount.inc:500 +msgid "User description. If left empty first and last name will be used." +msgstr "" +"Описание пользователя. Если не задано, будут использованы имя и фамилия." + +#: ../lib/modules/inetOrgPerson.inc:702 +msgid "User description. If left empty sur- and give name will be used." +msgstr "" +"Описание пользователя. Если не задано, будут использованы имя и фамилия." + +#: ../lib/modules/account.inc:99 +msgid "User description. If left empty user name will be used." +msgstr "" +"Описание пользователя. Если не задано, будет использовано имя пользователя." + +#: ../templates/schema/schema.php:204 +msgid "User modification" +msgstr "Изменение пользователя" + +#: ../lib/modules/mitKerberos.inc:217 ../lib/modules/mitKerberos.inc:243 +#: ../lib/modules/mitKerberos.inc:375 ../lib/modules/mitKerberos.inc:640 +#: ../lib/modules/mitKerberos.inc:780 ../lib/modules/sambaSamAccount.inc:289 +#: ../lib/modules/sambaSamAccount.inc:1148 ../lib/modules/windowsUser.inc:560 +#: ../lib/modules/heimdalKerberos.inc:99 +#: ../lib/modules/heimdalKerberos.inc:186 +#: ../lib/modules/heimdalKerberos.inc:213 +#: ../lib/modules/heimdalKerberos.inc:329 +#: ../lib/modules/heimdalKerberos.inc:546 +#: ../lib/modules/heimdalKerberos.inc:680 +msgid "User must change password" +msgstr "Пользователь должен сменить пароль" + +#: ../templates/lists/changePassword.php:262 ../templates/login.php:338 +#: ../lib/types/alias.inc:91 ../lib/types/user.inc:94 +#: ../lib/selfService.inc:366 ../lib/modules/mitKerberos.inc:109 +#: ../lib/modules/mitKerberos.inc:204 ../lib/modules/mitKerberos.inc:242 +#: ../lib/modules/mitKerberos.inc:337 ../lib/modules/mitKerberos.inc:767 +#: ../lib/modules/selfRegistration.inc:335 +#: ../lib/modules/selfRegistration.inc:403 +#: ../lib/modules/selfRegistration.inc:411 ../lib/modules/account.inc:78 +#: ../lib/modules/account.inc:94 ../lib/modules/account.inc:117 +#: ../lib/modules/account.inc:119 ../lib/modules/account.inc:120 +#: ../lib/modules/account.inc:207 ../lib/modules/account.inc:233 +#: ../lib/modules/account.inc:257 ../lib/modules/uidObject.inc:38 +#: ../lib/modules/uidObject.inc:60 ../lib/modules/uidObject.inc:69 +#: ../lib/modules/uidObject.inc:78 ../lib/modules/uidObject.inc:93 +#: ../lib/modules/uidObject.inc:154 ../lib/modules/posixAccount.inc:113 +#: ../lib/modules/posixAccount.inc:114 ../lib/modules/posixAccount.inc:117 +#: ../lib/modules/posixAccount.inc:276 ../lib/modules/posixAccount.inc:402 +#: ../lib/modules/posixAccount.inc:495 ../lib/modules/posixAccount.inc:1320 +#: ../lib/modules/posixAccount.inc:1738 ../lib/modules/windowsUser.inc:95 +#: ../lib/modules/windowsUser.inc:214 ../lib/modules/windowsUser.inc:380 +#: ../lib/modules/windowsUser.inc:443 ../lib/modules/windowsUser.inc:519 +#: ../lib/modules/windowsUser.inc:1215 ../lib/modules/nisnetgroup.inc:145 +#: ../lib/modules/nisnetgroup.inc:475 ../lib/modules/inetOrgPerson.inc:92 +#: ../lib/modules/inetOrgPerson.inc:366 ../lib/modules/inetOrgPerson.inc:693 +#: ../lib/modules/inetOrgPerson.inc:812 ../lib/modules/inetOrgPerson.inc:1408 +#: ../lib/modules/inetOrgPerson.inc:2376 ../lib/modules/inetOrgPerson.inc:2511 +#: ../lib/modules/passwordSelfReset.inc:190 +#: ../lib/modules/passwordSelfReset.inc:712 +#: ../lib/modules/passwordSelfReset.inc:882 +#: ../lib/modules/heimdalKerberos.inc:87 +#: ../lib/modules/heimdalKerberos.inc:173 +#: ../lib/modules/heimdalKerberos.inc:211 +#: ../lib/modules/heimdalKerberos.inc:288 +#: ../lib/modules/heimdalKerberos.inc:673 +msgid "User name" +msgstr "Имя пользователя" + +#: ../lib/modules/selfRegistration.inc:411 ../lib/modules/posixAccount.inc:121 +#: ../lib/modules/inetOrgPerson.inc:94 +msgid "User name already exists!" +msgstr "Имя пользователя уже существует!" + +#: ../lib/modules/passwordSelfReset.inc:192 +msgid "User name and email address" +msgstr "Имя пользователя и адрес электронной почты" + +#: ../lib/modules/imapAccess.inc:94 ../lib/modules/imapAccess.inc:125 +msgid "User name attribute" +msgstr "Атрибут имени пользователя" + +#: ../lib/modules/mitKerberos.inc:280 ../lib/modules/mitKerberos.inc:281 +#: ../lib/modules/selfRegistration.inc:403 ../lib/modules/account.inc:117 +#: ../lib/modules/account.inc:118 ../lib/modules/account.inc:120 +#: ../lib/modules/zarafaContact.inc:176 ../lib/modules/zarafaContact.inc:177 +#: ../lib/modules/uidObject.inc:78 ../lib/modules/zarafaGroup.inc:216 +#: ../lib/modules/zarafaGroup.inc:217 ../lib/modules/posixAccount.inc:114 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/zarafaUser.inc:451 +#: ../lib/modules/zarafaUser.inc:452 ../lib/modules/windowsUser.inc:443 +#: ../lib/modules/windowsUser.inc:444 ../lib/modules/nisnetgroup.inc:145 +#: ../lib/modules/inetOrgPerson.inc:92 ../lib/modules/inetOrgPerson.inc:93 +#: ../lib/modules/passwordSelfReset.inc:760 +#: ../lib/modules/passwordSelfReset.inc:979 +#: ../lib/modules/heimdalKerberos.inc:244 +#: ../lib/modules/heimdalKerberos.inc:245 +msgid "" +"User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Имя пользователя содержит недопустимые символы. Допустимые: a-z, A-Z, 0-9 " +"and .-_ !" + +#: ../lib/modules/posixAccount.inc:117 +msgid "User name in use. Selected next free user name." +msgstr "Имя пользователя занято. Выберите следующее свободное имя." + +#: ../lib/modules/mitKerberos.inc:110 ../lib/modules/account.inc:95 +#: ../lib/modules/inetOrgPerson.inc:813 ../lib/modules/heimdalKerberos.inc:88 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_." +msgstr "" +"Имя для создаваемого пользователя. Допустимые символы: a-z,A-Z,0-9, @.-_." + +#: ../lib/modules/posixAccount.inc:496 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_. If user name is already used user name will be expanded with a " +"number. The next free number will be used." +msgstr "" +"Имя для создаваемого пользователя. Допустимые символы: a-z,A-Z,0-9, @.-_. " +"Если имя пользователя уже использовано, к имени будет добавлено число. Будет " +"использовано следующее свободное число." + +#: ../lib/modules/passwordSelfReset.inc:193 +#: ../lib/modules/passwordSelfReset.inc:736 +#: ../lib/modules/passwordSelfReset.inc:902 +msgid "User name or email address" +msgstr "Имя пользователя или адрес электронной почты" + +#: ../lib/modules/posixAccount.inc:263 ../lib/modules/posixAccount.inc:429 +msgid "User name suggestion" +msgstr "Вариант имени пользователя" + +#: ../lib/modules/windowsUser.inc:571 +msgid "User profile" +msgstr "Профиль пользователя" + +#: ../lib/modules/selfRegistration.inc:38 +msgid "User self registration" +msgstr "Самостоятельная регистрация пользователя" + +#: ../lib/modules/zarafaUser.inc:121 ../lib/modules/zarafaUser.inc:206 +#: ../lib/modules/zarafaUser.inc:316 ../lib/modules/zarafaUser.inc:414 +#: ../lib/modules/zarafaUser.inc:646 ../lib/modules/zarafaUser.inc:1299 +#: ../lib/modules/zarafaUser.inc:1388 +msgid "User server" +msgstr "Сервер пользователя" + +#: ../lib/types/user.inc:53 ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:97 +#: ../lib/modules/posixAccount.inc:202 ../lib/modules/zarafaUser.inc:180 +#: ../lib/modules/sudoRole.inc:63 ../lib/modules/sudoRole.inc:87 +#: ../lib/modules/sudoRole.inc:134 ../lib/modules/sudoRole.inc:173 +#: ../lib/modules/sudoRole.inc:182 ../lib/modules/sudoRole.inc:264 +#: ../lib/modules/sudoRole.inc:684 +msgid "Users" +msgstr "Пользователи" + +#: ../lib/modules/zarafaContact.inc:73 ../lib/modules/zarafaGroup.inc:88 +#: ../lib/modules/zarafaUser.inc:98 +msgid "Users or groups that may directly send email as this user." +msgstr "" +"Пользователи или группы, могущие напрямую отсылать электронную почту от " +"имени этого пользователя." + +#: ../lib/modules/posixGroup.inc:464 +msgid "" +"Users who are member of the current group. Users who have set their primary " +"group to this group will not be shown." +msgstr "" +"Пользователи, являющиеся членами этой группы. Пользователи, которые " +"установили эту группу, как первичную, не будут показываться." + +#: ../lib/modules/posixGroup.inc:468 +msgid "" +"Users who will become member of the current group. User names are separated " +"by semicolons." +msgstr "" +"Пользователи, которые станут членами этой группы. Имена пользователей " +"разделены точками с запятой." + +#: ../templates/tests/lamdaemonTest.php:207 +#, php-format +msgid "Using %s as lamdaemon remote server." +msgstr "Используется %s как удаленный сервер lamdaemon." + +#: ../templates/tests/lamdaemonTest.php:229 +#, php-format +msgid "Using %s to connect to remote server." +msgstr "Используется %s для подключения к удаленному серверу." + +#: ../lib/modules/posixAccount.inc:439 +msgid "" +"Usually, users are not added to groups as memberUid if they have this group " +"as primary group. If your application ignores primary groups then you can " +"select this option to override this behaviour." +msgstr "" +"Обычно, пользователи не добавляются к группам как memberUid, если эта группа " +"для них первичная. Если Ваше приложение игнорирует первичные группы, тогда " +"Вы можете выбрать эту опцию, чтобы отменить это поведение." + +#: ../templates/3rdParty/pla/lib/export_functions.php:543 +msgid "VCARD 2.1 Export" +msgstr "Экспорт VCARD 2.1" + +#: ../templates/config/mainmanage.php:314 +msgid "Valid to" +msgstr "Действительно до" + +#: ../help/help.inc:90 +msgid "Valid users" +msgstr "Доступные пользователи" + +#: ../lib/modules/imapAccess.inc:76 ../lib/modules/imapAccess.inc:112 +msgid "Validate server certificate" +msgstr "Проверить сертификат сервера" + +#: ../lib/modules/customFields.inc:94 ../lib/modules/customFields.inc:1660 +msgid "Validation expression" +msgstr "Выражение для проверки" + +#: ../lib/modules/customFields.inc:98 ../lib/modules/customFields.inc:1665 +msgid "Validation message" +msgstr "Сообщение проверки" + +#: ../lib/modules/customFields.inc:2449 +msgid "Value" +msgstr "Значение" + +#: ../lib/modules/customFields.inc:102 ../lib/modules/customFields.inc:2236 +msgid "Value for \"checked\"" +msgstr "Значение для \"отмечено\"" + +#: ../lib/modules/customFields.inc:106 ../lib/modules/customFields.inc:2242 +msgid "Value for \"unchecked\"" +msgstr "Значение для \"сброшено\"" + +#: ../lib/modules/customFields.inc:126 ../lib/modules/customFields.inc:2445 +msgid "Value mapping" +msgstr "Соответствие значения" + +#: ../templates/3rdParty/pla/lib/import_functions.php:512 +msgid "Value to delete does not exist in DN" +msgstr "Удаляемое значение не существует в DN" + +#: ../lib/modules/puppetClient.inc:93 ../lib/modules/puppetClient.inc:97 +#: ../lib/modules/puppetClient.inc:139 ../lib/modules/puppetClient.inc:149 +#: ../lib/modules/puppetClient.inc:162 ../lib/modules/puppetClient.inc:270 +#: ../lib/modules/puppetClient.inc:432 +msgid "Variables" +msgstr "Переменные" + +#: ../templates/serverInfo.php:134 +msgid "Vendor name" +msgstr "Имя производителя" + +#: ../templates/serverInfo.php:140 +msgid "Vendor version" +msgstr "Версия производителя" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +#, php-format +msgid "View %s children" +msgstr "Просмотр %s потомков" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +msgid "View 1 child" +msgstr "Посмотреть 1 потомка" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1230 +msgid "View the children of this object" +msgstr "Посмотреть потомка этого объекта" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1028 +msgid "Viewing entry in read-only mode." +msgstr "Просмотр записи в режиме только для чтения." + +#: ../lib/modules/asteriskVoicemail.inc:110 +#: ../lib/modules/asteriskVoicemail.inc:117 +#: ../lib/modules/asteriskVoicemail.inc:134 +#: ../lib/modules/asteriskVoicemail.inc:187 +#: ../lib/modules/asteriskVoicemail.inc:279 +#: ../lib/modules/asteriskVoicemail.inc:391 +msgid "Voicemail context" +msgstr "Контекст ящика речевой почты" + +#: ../lib/modules/asteriskVoicemail.inc:87 +msgid "Voicemail mailbox for this account." +msgstr "Речевой почтовый ящик для этого аккаунта." + +#: ../templates/login.php:499 +msgid "Want more features? Get LAM Pro!" +msgstr "Хотите больше возможностей? Используйте LAM Pro!" + +#: ../templates/config/mainmanage.php:352 +#: ../templates/3rdParty/pla/lib/page.php:76 +msgid "Warning" +msgstr "Внимание" + +#: ../templates/delete.php:234 ../lib/modules/posixAccount.inc:786 +#: ../lib/modules/posixAccount.inc:839 ../lib/modules/windowsUser.inc:819 +#: ../lib/modules/groupOfNamesUser.inc:197 +#: ../lib/modules/groupOfNamesUser.inc:244 ../lib/modules.inc:1836 +#, php-format +msgid "Was unable to add attributes to DN: %s." +msgstr "Невозможно добавить атрибуты к DN: %s." + +#: ../lib/modules.inc:1801 +#, php-format +msgid "Was unable to create DN: %s." +msgstr "Невозможно создать DN: %s." + +#: ../templates/delete.php:344 ../templates/delete.php:353 +#, php-format +msgid "Was unable to delete DN: %s." +msgstr "Невозможно удалить DN: %s." + +#: ../templates/lists/changePassword.php:694 +#: ../templates/lists/changePassword.php:732 +#: ../templates/lists/changePassword.php:778 ../templates/delete.php:225 +#, php-format +msgid "Was unable to modify attributes from DN: %s." +msgstr "Невозможно изменить атрибуты DN: %s." + +#: ../lib/modules/posixAccount.inc:824 ../lib/modules/windowsUser.inc:845 +#: ../lib/modules/windowsUser.inc:1188 ../lib/modules/groupOfNamesUser.inc:229 +#: ../lib/modules.inc:1819 +#, php-format +msgid "Was unable to modify attributes of DN: %s." +msgstr "Невозможно изменить атрибуты DN: %s." + +#: ../templates/delete.php:243 ../lib/modules/posixAccount.inc:794 +#: ../lib/modules/posixAccount.inc:856 ../lib/modules/windowsUser.inc:832 +#: ../lib/modules/groupOfNamesUser.inc:202 +#: ../lib/modules/groupOfNamesUser.inc:258 ../lib/modules.inc:1848 +#, php-format +msgid "Was unable to remove attributes from DN: %s." +msgstr "Невозможно удалить атрибуты из DN: %s." + +#: ../lib/modules/asteriskExtension.inc:904 ../lib/modules.inc:1782 +#, php-format +msgid "Was unable to rename DN: %s." +msgstr "Невозможно переименовать DN: %s." + +#: ../lib/modules/windowsUser.inc:167 ../lib/modules/windowsUser.inc:318 +#: ../lib/modules/windowsUser.inc:397 ../lib/modules/windowsUser.inc:413 +#: ../lib/modules/windowsUser.inc:539 ../lib/modules/windowsUser.inc:1232 +#: ../lib/modules/windowsUser.inc:1334 ../lib/modules/inetOrgPerson.inc:146 +#: ../lib/modules/inetOrgPerson.inc:197 ../lib/modules/inetOrgPerson.inc:358 +#: ../lib/modules/inetOrgPerson.inc:536 ../lib/modules/inetOrgPerson.inc:656 +#: ../lib/modules/inetOrgPerson.inc:800 ../lib/modules/inetOrgPerson.inc:804 +#: ../lib/modules/inetOrgPerson.inc:1848 ../lib/modules/inetOrgPerson.inc:2386 +#: ../lib/modules/inetOrgPerson.inc:2958 +msgid "Web site" +msgstr "Веб сайт" + +#: ../lib/modules/sambaSamAccount.inc:1350 +msgid "Wednesday" +msgstr "Среда" + +#: ../lib/selfService.inc:365 +msgid "Welcome to LAM self service. Please enter your user name and password." +msgstr "" +"Добро пожаловать в сервис самообслуживания LAM. Пожалуйста введите ваше имя " +"пользователя и пароль." + +#: ../lib/modules/sambaSamAccount.inc:551 +msgid "Western Europe Time, London, Lisbon" +msgstr "Western Europe Time, London, Lisbon" + +#: ../lib/modules/passwordSelfReset.inc:160 +msgid "What is the name of your favourite pet?" +msgstr "Имя вашего любимого домашнего животного?" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +msgid "" +"When performing a recursive copy, only copy those entries which match this " +"filter." +msgstr "" +"Копировать только удовлетворяющие этому фильтру записи при выполнении " +"рекурсивного копирования, " + +#: ../lib/modules/zarafaUser.inc:94 +msgid "" +"When the hard quota limit is reached, email can not be delivered to that " +"user anymore." +msgstr "" +"Электронная почта не будет доставляться пользователю в случае превышения " +"жесткой квоты." + +#: ../help/help.inc:70 +msgid "" +"When using ldaps:// or TLS be sure to use exactly the same IP/domain name as " +"in your certificate!" +msgstr "" +"Используя ldaps:// или TLS нужно убедиться, что IP адрес/имя домена " +"соответствует используемому в сертификате!" + +#: ../templates/lists/changePassword.php:374 +#: ../templates/lists/changePassword.php:405 ../lib/types/user.inc:292 +#: ../lib/types/user.inc:381 ../lib/types/user.inc:413 +#: ../lib/types/user.inc:845 ../lib/modules/windowsHost.inc:57 +#: ../lib/modules/windowsUser.inc:82 ../lib/modules/windowsGroup.inc:92 +msgid "Windows" +msgstr "Windows" + +#: ../lib/modules/sambaSamAccount.inc:327 +msgid "Windows domain name of account." +msgstr "Имя домена Windows аккаунта." + +#: ../lib/modules/sambaSamAccount.inc:204 +#: ../lib/modules/sambaSamAccount.inc:457 +#: ../lib/modules/sambaSamAccount.inc:1236 +#: ../lib/modules/sambaSamAccount.inc:1756 +#: ../lib/modules/sambaSamAccount.inc:1881 +#: ../lib/modules/sambaGroupMapping.inc:104 +#: ../lib/modules/sambaGroupMapping.inc:367 +#: ../lib/modules/sambaGroupMapping.inc:526 +msgid "Windows group" +msgstr "Windows группа" + +#: ../lib/modules/sambaGroupMapping.inc:143 +msgid "Windows group name" +msgstr "Имя Windows группы" + +#: ../lib/modules/sambaGroupMapping.inc:156 +msgid "Windows group type." +msgstr "Тип Windows группы" + +#: ../lib/modules/sambaSamAccount.inc:384 +msgid "" +"Windows password hashes are saved by default as NT and LM hashes. LM hashes " +"are insecure and only needed for old versions of Windows. You should disable " +"them unless you really need them." +msgstr "" +"Хэши Windows паролей сохраняются по умолчанию как NT и LM хэши. LM хэши " +"небезопасны и используются только со старыми версиями Windows и они должны " +"быть отключены. Включайте, если только это действительно необходимо." + +#: ../lib/modules/sambaSamAccount.inc:310 +msgid "Windows primary group" +msgstr "Основная Windows группа" + +#: ../lib/modules/sambaSamAccount.inc:313 +msgid "Windows primary group SID" +msgstr "SID основной Windows группы" + +#: ../lib/modules/sambaGroupMapping.inc:152 +msgid "Windows-Domain name of group." +msgstr "Имя группы в Windows домене" + +#: ../lib/modules/inetOrgPerson.inc:1872 +msgid "Work details" +msgstr "Детали работы" + +#: ../lib/modules/sambaDomain.inc:139 +msgid "Workgroup" +msgstr "Рабочая группа" + +#: ../lib/modules/sambaSamAccount.inc:228 +#: ../lib/modules/sambaSamAccount.inc:356 +#: ../lib/modules/sambaSamAccount.inc:1492 +#: ../lib/modules/sambaSamAccount.inc:1900 +msgid "Working directory" +msgstr "Рабочий каталог" + +#: ../lib/modules/sambaSamAccount.inc:357 +msgid "Working directory of initial program." +msgstr "Рабочий каталог начальной программы." + +#: ../templates/config/confmain.php:307 +msgid "Write" +msgstr "Записывать" + +#: ../templates/config/confmain.php:259 +msgid "Write access" +msgstr "Доступ на запись" + +#: ../templates/login.php:582 ../templates/login.php:640 +#: ../templates/selfService/selfServiceLogin.php:122 +#: ../templates/selfService/selfServiceLogin.php:139 +msgid "Wrong password/user name combination. Please try again." +msgstr "Неправильные имя/пароль. Попробуйте еще раз." + +#: ../lib/modules/imapAccess.inc:168 +msgid "Wrong quota format. Quota must be numeric." +msgstr "Неверный формат квоты. Квота должна быть числом." + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/qmailGroup.inc:315 +#: ../lib/modules/qmailGroup.inc:357 ../lib/modules/qmailGroup.inc:1027 +#: ../lib/modules/qmailGroup.inc:1028 ../lib/modules/qmailGroup.inc:1070 +#: ../lib/modules/qmailGroup.inc:1076 ../lib/modules/imapAccess.inc:112 +msgid "Yes" +msgstr "Да" + +#: ../templates/lists/changePassword.php:491 +#: ../lib/modules/ppolicyUser.inc:333 ../lib/modules/ppolicyUser.inc:382 +msgid "You are reusing an old password. Please choose a different password." +msgstr "" +"Вы повторно используете старый пароль. Пожалуйста, выберите другой пароль." + +#: ../lib/modules/account.inc:119 ../lib/modules/posixGroup.inc:578 +#: ../lib/modules/posixAccount.inc:113 ../lib/modules/posixAccount.inc:115 +msgid "" +"You are using capital letters. This can cause problems because Windows is " +"not case-sensitive." +msgstr "" +"Вы используете заглавные буквы. Это может вызвать проблемы, потому что " +"Windows нечувствительна к регистру." + +#: ../lib/lists.inc:1066 +#, php-format +msgid "" +"You can download your PDF files {link=%s}{color=#d2131a}here{endcolor}" +"{endlink}." +msgstr "" +"Вы можете скачать ваши PDF файлы {link=%s}{color=#d2131a}здесь{endcolor}" +"{endlink}." + +#: ../templates/initsuff.php:181 +msgid "" +"You can setup the LDAP suffixes for all account types in your LAM server " +"profile on tab \"Account types\"." +msgstr "" +"В профиле вашего сервера LAM на вкладке \"Типы аккаунтов\" Вы можете " +"определить суффиксы LDAP для всех типов аккаунтов." + +#: ../help/help.inc:106 +msgid "" +"You can specify if LAM allows full write access, password changes or only " +"read access." +msgstr "" +"Вы можете указать, что позволяет LAM : полный доступ на запись, изменение " +"паролей или только чтение." + +#: ../help/help.inc:156 +msgid "" +"You can use the wildcard @@LOGIN_DN@@ which will be substituted with the DN " +"of the user who is currently logged in to LAM." +msgstr "" +"Вы можете использовать макрос @@LOGIN_DN@@ который будет заменен на DN " +"пользователя вошедшего в LAM." + +#: ../lib/modules/zarafaDynamicGroup.inc:77 +#: ../lib/modules/zarafaContact.inc:69 ../lib/modules/zarafaGroup.inc:84 +#: ../lib/modules/zarafaAddressList.inc:65 ../lib/modules/zarafaUser.inc:78 +msgid "You can use this to temporarily deactivate the Zarafa extension." +msgstr "" +"Вы можете это использовать для временного отключения расширения Zarafa." + +#: ../lib/modules/passwordSelfReset.inc:115 +#: ../lib/modules/passwordSelfReset.inc:125 ../help/help.inc:227 +msgid "" +"You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. " +"@@uid@@ for the user name)." +msgstr "" +"Вы можете использовать шаблоны для LDAP атрибутов в форме @@attribute@@ " +"(например @@uid@@ для имени пользователя)." + +#: ../lib/modules/customScripts.inc:58 ../lib/modules/customScripts.inc:71 +msgid "" +"You can use wildcards in the format $wildcard$ which are replaced by the " +"LDAP attribute with the same name. For multi-value attributes the values " +"will be separated by commas." +msgstr "" +"Вы можете использовать шаблоны в формате $wildcard$, который будет заменен " +"LDAP атрибутом с этим же именем. Для многозначных атрибутов значения будут " +"разделены запятыми." + +#: ../lib/modules/zarafaContact.inc:180 +msgid "" +"You cannot add the Zarafa and Zarafa contact extension at the same time." +msgstr "" +"Вы не можете использовать расширения Zarafa и Zarafa contact в то же самое " +"время." + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:52 +msgid "You cannot perform updates while server is in read-only mode" +msgstr "" +"Вы не можете выполнять обновления пока сервер в режиме \"только для чтения\"." + +#: ../templates/3rdParty/pla/htdocs/rename.php:26 +msgid "You cannot rename an entry which has child entries." +msgstr "Вы не можете переименовать запись, имеющую потомков." + +#: ../templates/config/confmain.php:487 +msgid "" +"You cannot use SSL and TLS encryption at the same time. Please use either " +"\"ldaps://\" or TLS." +msgstr "" +"Вы не можете использовать SSL и TLS шифрование одновременно. Пожалуйста, " +"используйте или \"ldaps://\" или TLS." + +#: ../templates/3rdParty/pla/htdocs/rename.php:32 +msgid "You did not change the RDN" +msgstr "Вы не поменяли RDN" + +#: ../templates/tests/schemaTest.php:61 +msgid "" +"You do not have the required access rights or the LDAP schema is not " +"published by your server." +msgstr "" +"У Вас нет необходимых прав доступа или LDAP схема не подключена к серверу." + +#: ../lib/modules/dhcp_settings.inc:315 ../lib/modules/dhcp_settings.inc:316 +msgid "You entered one or more invalid DNS servers." +msgstr "Вы указали один или более неправильных DNS серверов." + +#: ../templates/3rdParty/pla/lib/Template.php:417 +#: ../templates/3rdParty/pla/lib/Template.php:504 +msgid "You left the attribute value blank. Please go back and try again." +msgstr "" +"Вы оставили значение атрибута пустым. Пожалуйста, вернитесь назад и " +"попробуйте еще раз." + +#: ../templates/3rdParty/pla/htdocs/create.php:51 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:45 +#, php-format +msgid "You left the value blank for required attribute (%s)." +msgstr "Вы оставили значение пустым для необходимого атрибута (%s)." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:171 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:209 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:133 +msgid "You made no changes" +msgstr "Вы не сделали никаких изменений." + +#: ../templates/config/mainmanage.php:138 +#: ../templates/config/mainmanage.php:144 +#: ../templates/config/mainmanage.php:156 +msgid "You might need to restart your webserver for changes to take effect." +msgstr "" +"Можеть быть необходим перезапуск веб-сервера для вступления в силу изменений." + +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#, php-format +msgid "You might want to use %s instead of %s." +msgstr "Может быть вы хотели использовать %s вместо %s." + +#: ../templates/3rdParty/pla/lib/import_functions.php:95 +msgid "You must either upload a file or provide an import in the text box." +msgstr "" +"Вы должны либо загрузить файл либо внести импортируемую информацию в " +"текстовое поле." + +#: ../lib/modules/groupOfNames.inc:175 ../lib/modules/groupOfNames.inc:176 +msgid "You need to add at least one member to this group." +msgstr "Вы должны добавить по крайней мере одного члена к этой группе." + +#: ../lib/modules/passwordSelfReset.inc:272 +msgid "You specified an answer but no security question." +msgstr "Вы указали ответ без секретного вопроса." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1136 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "You will be prompted to confirm this decision" +msgstr "Вам предложат подтвердить это решение." + +#: ../lib/modules/imapAccess.inc:164 +msgid "Your IMAP domains and email address domain do not match." +msgstr "" +"Ваши домены IMAP и домен почтового адреса электронной почты не совпадают." + +#: ../templates/tests/lamdaemonTest.php:234 +#, php-format +msgid "" +"Your LAM admin user (%s) must be a valid Unix account to work with lamdaemon!" +msgstr "" +"Для работы с lamdaemon ваш LAM администратор (%s) должен иметь действующий " +"аккаунт Unix!" + +#: ../lib/lamdaemon.inc:61 ../lib/lamdaemon.inc:66 +msgid "" +"Your LAM admin user must be a valid Unix account to work with lamdaemon!" +msgstr "" +"Для работы с lamdaemon ваш LAM администратор должен иметь действующий " +"аккаунт Unix!" + +#: ../lib/modules/imapAccess.inc:166 +msgid "Your LAM login password was not accepted by the IMAP server." +msgstr "Ваши LAM логин и пароль не были приняты IMAP сервером." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:125 +msgid "" +"Your PHP configuration has disabled file uploads. Please check php.ini " +"before proceeding." +msgstr "Конфигурация PHP не позволяет загружать файлы. Проверьте php.ini." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:16 +msgid "" +"Your PHP.INI does not have file_uploads = ON. Please enable file uploads in " +"PHP." +msgstr "" +"В вашем PHP.INI отсутствует file_uploads = ON. Включите поддержку загрузки " +"файлов в PHP." + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:367 +msgid "" +"Your changes cannot be saved until you make the file writable for the " +"webserver user." +msgstr "" +"Ваши изменения не будут сохранены, пока вы не разрешите запись файла для " +"учетной записи, под которой работает веб-сервер." + +#: ../lib/modules/selfRegistration.inc:630 +msgid "" +"Your new account was created but post processing failed. Please contact your " +"local administrator." +msgstr "" +"Ваш новый аккаунт был создан, но дополнительная обработка после создания " +"завершилась неуспешно. Пожалуйста, свяжитесь со своим администратором." + +#: ../lib/modules/selfRegistration.inc:627 +msgid "" +"Your new account was successfully created. Please return to login to change " +"your user data." +msgstr "" +"Ваш новый аккаунт был успешно создан. Пожалуйста, вернитесь к логину для " +"смены ваших данных." + +#: ../lib/security.inc:177 +msgid "Your session expired, click here to go back to the login page." +msgstr "Сессия устарела, нажмите здесь для возврата на страницу для входа." + +#: ../templates/login.php:299 ../templates/selfService/selfServiceLogin.php:79 +msgid "Your session expired, please log in again." +msgstr "Сессия устарела, пожалуйста, войдите снова." + +#: ../templates/login.php:304 ../templates/login.php:309 +#: ../templates/login.php:318 +msgid "Your settings were successfully saved." +msgstr "Ваши настройки успешно сохранены." + +#: ../lib/modules/windowsUser.inc:290 ../lib/modules/inetOrgPerson.inc:570 +#: ../lib/modules/inetOrgPerson.inc:602 +msgid "YourCompany" +msgstr "YourCompany" + +#: ../lib/modules/zarafaGroup.inc:49 ../lib/modules/zarafaUser.inc:54 +#: ../lib/modules/zarafaServer.inc:49 +msgid "Zarafa" +msgstr "Zarafa" + +#: ../lib/modules/zarafaAddressList.inc:44 +msgid "Zarafa address list" +msgstr "Список адресов Zarafa" + +#: ../lib/types/zarafaAddressListType.inc:53 +#: ../lib/types/zarafaAddressListType.inc:62 +msgid "Zarafa address lists" +msgstr "Списки адресов Zarafa" + +#: ../lib/modules/zarafaContact.inc:49 +msgid "Zarafa contact" +msgstr "Контакт Zarafa" + +#: ../lib/modules/zarafaDynamicGroup.inc:44 +msgid "Zarafa dynamic group" +msgstr "Zarafa dynamic group" + +#: ../lib/types/zarafaDynamicGroupType.inc:53 +#: ../lib/types/zarafaDynamicGroupType.inc:62 +msgid "Zarafa dynamic groups" +msgstr "Zarafa dynamic groups" + +#: ../lib/modules/zarafaDynamicGroup.inc:88 +#: ../lib/modules/zarafaDynamicGroup.inc:176 +#: ../lib/modules/zarafaContact.inc:99 ../lib/modules/zarafaContact.inc:112 +#: ../lib/modules/zarafaGroup.inc:106 ../lib/modules/zarafaGroup.inc:121 +#: ../lib/modules/zarafaAddressList.inc:76 +#: ../lib/modules/zarafaAddressList.inc:149 ../lib/modules/zarafaUser.inc:164 +#: ../lib/modules/zarafaUser.inc:174 ../lib/modules/zarafaServer.inc:85 +#: ../lib/modules/zarafaServer.inc:146 +msgid "Zarafa schema" +msgstr "Схема Zarafa" + +#: ../lib/modules/zarafaUser.inc:153 ../lib/modules/zarafaUser.inc:157 +msgid "Zarafa will store the user's archives on these servers." +msgstr "Zarafa будет хранить архивы пользователя на этих серверах." + +#: ../lib/modules/ddns.inc:95 ../lib/modules/ddns.inc:106 +#: ../lib/modules/ddns.inc:121 ../lib/modules/ddns.inc:387 +#: ../lib/modules/ddns.inc:418 +msgid "Zone name" +msgstr "Имя зоны" + +#: ../lib/modules/ddns.inc:96 +msgid "Zone name for the DNS server (e.g. company.local)." +msgstr "Имя зоны для DNS сервера (например company.local)." + +#: ../lib/modules/sambaSamAccount.inc:483 +msgid "\\\\server\\homes\\smiller" +msgstr "\\\\server\\homes\\smiller" + +#: ../lib/modules/sambaSamAccount.inc:491 ../lib/modules/windowsUser.inc:364 +msgid "\\\\server\\profiles\\smiller" +msgstr "\\\\server\\profiles\\smiller" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "add value" +msgstr "добавить значение" + +#: ../lib/modules/zarafaDynamicGroup.inc:111 ../lib/modules/posixGroup.inc:436 +#: ../lib/modules/zarafaAddressList.inc:99 ../lib/modules/nisnetgroup.inc:107 +#: ../lib/modules/groupOfNames.inc:103 +msgid "adminstrators" +msgstr "администраторы" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:112 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:95 +msgid "attribute deleted" +msgstr "атрибут удален" + +#: ../lib/modules/sudoRole.inc:123 +msgid "backupRootFileSystem" +msgstr "backupRootFileSystem" + +#: ../templates/3rdParty/pla/lib/functions.php:2298 +msgid "browse" +msgstr "Обзор" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "bytes" +msgstr "байтов" + +#: ../templates/schema/schema.php:220 +msgid "character" +msgstr "символ" + +#: ../templates/schema/schema.php:219 +msgid "characters" +msgstr "символы" + +#: ../lib/modules/freeRadius.inc:172 +msgid "company.com" +msgstr "сompany.com" + +#: ../templates/3rdParty/pla/lib/PageRender.php:619 +#: ../templates/3rdParty/pla/lib/PageRender.php:988 +msgid "confirm" +msgstr "подтвердите" + +#: ../help/help.inc:82 +msgid "dc=yourcompany,dc=com" +msgstr "dc=yourcompany,dc=com" + +#: ../lib/modules/ppolicyUser.inc:111 +msgid "default" +msgstr "по умолчанию" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:205 +msgid "delete" +msgstr "удалить" + +#: ../templates/3rdParty/pla/lib/PageRender.php:677 +msgid "delete attribute" +msgstr "удалить атрибут" + +#: ../lib/modules/sambaSamAccount.inc:1513 +#: ../lib/modules/sambaSamAccount.inc:1920 ../lib/modules/zarafaUser.inc:651 +#: ../lib/modules/zarafaUser.inc:1351 ../lib/modules/zarafaUser.inc:1392 +msgid "disabled" +msgstr "отключено" + +#: ../lib/modules/sambaSamAccount.inc:1524 +#: ../lib/modules/sambaSamAccount.inc:1931 +msgid "disconnect" +msgstr "отключить" + +#: ../templates/3rdParty/pla/lib/PageRender.php:664 +msgid "download value" +msgstr "загрузить значение" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:206 +msgid "edit" +msgstr "редактировать" + +#: ../lib/modules/zarafaUser.inc:651 ../lib/modules/zarafaUser.inc:1346 +#: ../lib/modules/zarafaUser.inc:1392 +msgid "enabled" +msgstr "включено" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:481 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:307 +msgid "export" +msgstr "экспорт" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:123 +msgid "false" +msgstr "ложь" + +#: ../lib/modules/ppolicy.inc:37 +msgid "force" +msgstr "принудительно" + +#: ../lib/modules/sambaSamAccount.inc:1532 +#: ../lib/modules/sambaSamAccount.inc:1939 +msgid "from any client" +msgstr "с любого клиента" + +#: ../lib/modules/sambaSamAccount.inc:1533 +#: ../lib/modules/sambaSamAccount.inc:1940 +msgid "from previous client only" +msgstr "только с предыдущего клиента" + +#: ../lib/modules/posixAccount.inc:299 ../lib/modules/posixAccount.inc:359 +#: ../lib/modules/nisnetgroup.inc:121 ../lib/modules/groupOfNamesUser.inc:66 +msgid "group01,group02" +msgstr "group01,group02" + +#: ../lib/modules/freeRadius.inc:180 +msgid "group01;group02" +msgstr "group01,group02" + +#: ../lib/modules/zarafaDynamicGroup.inc:125 +#: ../lib/modules/zarafaGroup.inc:168 +msgid "group1@company.com,group2@company.com" +msgstr "group1@company.com,group2@company.com" + +#: ../lib/modules/zarafaDynamicGroup.inc:119 +#: ../lib/modules/zarafaGroup.inc:160 ../lib/modules/windowsGroup.inc:213 +#: ../lib/modules/windowsGroup.inc:221 +msgid "group@company.com" +msgstr "group@company.com" + +#: ../templates/3rdParty/pla/lib/PageRender.php:471 +msgid "hint" +msgstr "подсказка" + +#: ../lib/modules/quota.inc:191 ../lib/modules/quota.inc:193 +msgid "hours" +msgstr "часы" + +#: ../lib/modules/windowsUser.inc:320 ../lib/modules/windowsUser.inc:326 +#: ../lib/modules/inetOrgPerson.inc:538 +msgid "http://www.company.com" +msgstr "http://www.company.com" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:294 +msgid "import" +msgstr "импорт" + +#: ../lib/modules/sambaSamAccount.inc:1517 +#: ../lib/modules/sambaSamAccount.inc:1924 +msgid "input off, notify off" +msgstr "ввод отключен, напоминание отключено" + +#: ../lib/modules/sambaSamAccount.inc:1516 +#: ../lib/modules/sambaSamAccount.inc:1923 +msgid "input off, notify on" +msgstr "ввод отключен, напоминание включено" + +#: ../lib/modules/sambaSamAccount.inc:1515 +#: ../lib/modules/sambaSamAccount.inc:1922 +msgid "input on, notify off" +msgstr "ввод включен, напоминание отключено" + +#: ../lib/modules/sambaSamAccount.inc:1514 +#: ../lib/modules/sambaSamAccount.inc:1921 +msgid "input on, notify on" +msgstr "ввод включен, напоминание включено" + +#: ../help/help.inc:64 +msgid "" +"ldap://localhost:389 connects to localhost using a standard LDAP connection " +"on port 389" +msgstr "" +"ldap://localhost:389 подключается к localhost, используя незащищенное LDAP " +"соединение на порт 389" + +#: ../help/help.inc:66 +msgid "" +"ldaps://ldap.domain.com connects to ldap.domain.com using an encrypted LDAP " +"connection." +msgstr "" +"ldaps://ldap.domain.com подключается к ldap.domain.com, используя защищенное " +"LDAP соединение." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:100 +msgid "list" +msgstr "список" + +#: ../templates/3rdParty/pla/lib/config_default.php:494 +#: ../templates/3rdParty/pla/lib/ds.php:318 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:529 +msgid "login" +msgstr "вход" + +#: ../lib/modules/posixAccount.inc:384 +msgid "machines" +msgstr "компьютеры" + +#: ../lib/modules/inetLocalMailRecipient.inc:107 +msgid "mail.yourdomain.org" +msgstr "mail.ваш-домен.ru" + +#: ../lib/modules/sambaSamAccount.inc:402 +#: ../lib/modules/sambaSamAccount.inc:526 +msgid "mydomain" +msgstr "mydomain" + +#: ../lib/modules/sambaSamAccount.inc:459 +msgid "mygroup" +msgstr "mygroup" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:504 +msgid "new" +msgstr "новый" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:471 +#: ../lib/modules/zarafaDynamicGroup.inc:474 +#: ../lib/modules/zarafaContact.inc:557 ../lib/modules/zarafaGroup.inc:657 +#: ../lib/modules/zarafaGroup.inc:664 ../lib/modules/zarafaGroup.inc:667 +#: ../lib/modules/zarafaAddressList.inc:339 +#: ../lib/modules/zarafaAddressList.inc:342 +#: ../lib/modules/sambaSamAccount.inc:570 +#: ../lib/modules/sambaSamAccount.inc:1888 +#: ../lib/modules/sambaSamAccount.inc:1896 +#: ../lib/modules/sambaSamAccount.inc:1906 +#: ../lib/modules/sambaSamAccount.inc:1911 +#: ../lib/modules/sambaSamAccount.inc:1916 ../lib/modules/zarafaUser.inc:634 +#: ../lib/modules/zarafaUser.inc:1304 ../lib/modules/zarafaUser.inc:1319 +#: ../lib/modules/zarafaUser.inc:1330 ../lib/modules/zarafaUser.inc:1336 +#: ../lib/modules/windowsUser.inc:332 ../lib/modules/windowsUser.inc:333 +#: ../lib/modules/windowsUser.inc:334 ../lib/modules/windowsUser.inc:340 +#: ../lib/modules/windowsUser.inc:341 ../lib/modules/windowsUser.inc:342 +#: ../lib/modules/windowsUser.inc:348 ../lib/modules/windowsUser.inc:349 +#: ../lib/modules/windowsUser.inc:350 ../lib/modules/windowsUser.inc:356 +#: ../lib/modules/windowsUser.inc:357 ../lib/modules/windowsUser.inc:358 +#: ../lib/modules/windowsUser.inc:868 ../lib/modules/windowsUser.inc:1233 +#: ../lib/modules/windowsUser.inc:1238 ../lib/modules/windowsUser.inc:1243 +#: ../lib/modules/windowsUser.inc:1248 ../lib/modules/ppolicy.inc:35 +#: ../lib/modules/ppolicy.inc:474 ../lib/modules/ppolicy.inc:484 +#: ../lib/modules/ppolicy.inc:489 ../lib/modules/ppolicy.inc:496 +#: ../lib/modules/ppolicy.inc:499 ../lib/modules/generalInformation.inc:93 +#: ../lib/modules/zarafaServer.inc:377 ../lib/modules/customFields.inc:2371 +#: ../lib/modules/fixed_ip.inc:570 +msgid "no" +msgstr "нет" + +#: ../templates/3rdParty/pla/lib/functions.php:1902 +msgid "no description available" +msgstr "описание отсутствует" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:68 +msgid "no entries" +msgstr "нет записей" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:84 +msgid "no new attributes available for this entry" +msgstr "нет новых доступных атрибутов для этой записи" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:135 +msgid "no new binary attributes available for this entry" +msgstr "нет новых доступных бинарных атрибутов для этой записи" + +#: ../templates/schema/schema.php:160 ../templates/schema/schema.php:229 +#: ../templates/schema/schema.php:240 ../templates/schema/schema.php:289 +#: ../templates/schema/schema.php:355 ../templates/schema/schema.php:370 +#: ../templates/schema/schema.php:404 ../templates/schema/schema.php:426 +#: ../templates/3rdParty/pla/lib/functions.php:2612 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1573 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1581 +msgid "none" +msgstr "нет" + +#: ../templates/3rdParty/pla/lib/PageRender.php:1109 +msgid "none, remove value" +msgstr "нет, удалить значение" + +#: ../templates/schema/schema.php:216 +msgid "not applicable" +msgstr "не применимо" + +#: ../templates/schema/schema.php:167 ../templates/schema/schema.php:172 +#: ../templates/schema/schema.php:177 ../templates/schema/schema.php:210 +msgid "not specified" +msgstr "не определено" + +#: ../help/help.inc:76 +msgid "" +"ou=People,dc=yourcompany,dc=com will read and store all accounts in this " +"subtree." +msgstr "" +"ou=People,dc=yourcompany,dc=com - в этом поддереве будут читаться и " +"сохраняться учетные записи." + +#: ../lib/modules/eduPerson.inc:195 ../lib/modules/eduPerson.inc:201 +#: ../lib/modules/eduPerson.inc:207 +msgid "ou=accounts,dc=yourdomain,dc=org" +msgstr "ou=accounts,dc=yourdomain,dc=org" + +#: ../lib/modules/posixAccount.inc:370 +msgid "pc01$" +msgstr "pc01$" + +#: ../lib/modules/posixAccount.inc:393 +msgid "pc01,Room 2.34" +msgstr "pc01,Room 2.34" + +#: ../lib/modules/hostObject.inc:86 +msgid "pc01,pc02" +msgstr "pc01,pc02" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +msgid "pixels" +msgstr "пикселы" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:54 +msgid "read only" +msgstr "только для чтения" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:251 +msgid "refresh" +msgstr "обновить" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2126 +msgid "rename" +msgstr "переименовать" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 ../lib/html.inc:742 +#: ../lib/html.inc:1633 ../lib/html.inc:2148 +msgid "required" +msgstr "требуется" + +#: ../lib/modules/sambaSamAccount.inc:1525 +#: ../lib/modules/sambaSamAccount.inc:1932 +msgid "reset" +msgstr "сбросить" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:237 +msgid "search" +msgstr "поиск" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:472 +msgid "seconds" +msgstr "секунды" + +#: ../lib/modules/mitKerberos.inc:237 ../lib/modules/asteriskAccount.inc:389 +#: ../lib/modules/posixGroup.inc:427 ../lib/modules/sambaSamAccount.inc:414 +#: ../lib/modules/posixAccount.inc:327 ../lib/modules/windowsUser.inc:224 +#: ../lib/modules/inetOrgPerson.inc:2522 +#: ../lib/modules/asteriskVoicemail.inc:158 +#: ../lib/modules/heimdalKerberos.inc:206 +msgid "secret" +msgstr "secret" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1263 +msgid "select the rdn attribute" +msgstr "выберите атрибут rdn" + +#: ../lib/modules/mitKerberos.inc:206 ../lib/modules/uidObject.inc:62 +#: ../lib/modules/posixAccount.inc:278 ../lib/modules/windowsUser.inc:216 +#: ../lib/modules/inetOrgPerson.inc:2513 +#: ../lib/modules/heimdalKerberos.inc:175 ../lib/modules/nisMailAlias.inc:99 +msgid "smiller" +msgstr "smiller" + +#: ../lib/modules/inetLocalMailRecipient.inc:95 +msgid "smiller@otherdomain.org" +msgstr "vasya@другой-домен.ru" + +#: ../lib/modules/inetLocalMailRecipient.inc:101 +msgid "smiller@yourdomain.org" +msgstr "vasya@ваш-домен.ru" + +#: ../lib/modules/ldapPublicKey.inc:83 +msgid "ssh-dss 234234 user@host" +msgstr "ssh-dss 234234 user@host" + +#: ../templates/3rdParty/pla/lib/PageRender.php:882 +msgid "structural" +msgstr "структурный" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:102 +msgid "table" +msgstr "таблица" + +#: ../lib/modules/asteriskExtension.inc:147 +msgid "test" +msgstr "тест" + +#: ../lib/modules/asteriskExtension.inc:167 +msgid "test-start" +msgstr "тестовый запуск" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:122 +msgid "true" +msgstr "true" + +#: ../lib/modules/ipHost.inc:92 ../lib/modules/inetOrgPerson.inc:432 +#: ../lib/modules/aliasEntry.inc:64 ../lib/modules/qmailGroup.inc:274 +#: ../lib/modules/qmailGroup.inc:282 ../lib/modules/qmailGroup.inc:290 +msgid "uid=smiller,ou=People,dc=company,dc=com" +msgstr "uid=smiller,ou=People,dc=company,dc=com" + +#: ../templates/config/mainmanage.php:266 +msgid "use custom CA certificates" +msgstr "использовать пользовательские сертификаты CA" + +#: ../templates/config/mainmanage.php:263 +msgid "use system certificates" +msgstr "использовать системные сертификаты" + +#: ../lib/modules/posixGroup.inc:421 +msgid "user01,user02,user03" +msgstr "user01,user02,user03" + +#: ../lib/modules/qmailUser.inc:266 ../lib/modules/qmailUser.inc:272 +#: ../lib/modules/qmailUser.inc:294 ../lib/modules/eduPerson.inc:156 +#: ../lib/modules/windowsUser.inc:296 ../lib/modules/windowsUser.inc:302 +#: ../lib/modules/inetOrgPerson.inc:520 +#: ../lib/modules/asteriskVoicemail.inc:171 ../lib/modules/qmailGroup.inc:332 +#: ../lib/modules/qmailGroup.inc:340 ../lib/modules/qmailGroup.inc:348 +msgid "user@company.com" +msgstr "user@company.com" + +#: ../lib/modules/posixAccount.inc:292 +msgid "users" +msgstr "users" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:59 +msgid "view entries" +msgstr "просмотр записей" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +msgid "with " +msgstr "с" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:469 +#: ../lib/modules/zarafaDynamicGroup.inc:476 +#: ../lib/modules/zarafaContact.inc:559 ../lib/modules/zarafaGroup.inc:659 +#: ../lib/modules/zarafaGroup.inc:662 ../lib/modules/zarafaGroup.inc:669 +#: ../lib/modules/zarafaAddressList.inc:337 +#: ../lib/modules/zarafaAddressList.inc:344 +#: ../lib/modules/sambaSamAccount.inc:570 +#: ../lib/modules/sambaSamAccount.inc:1886 +#: ../lib/modules/sambaSamAccount.inc:1894 +#: ../lib/modules/sambaSamAccount.inc:1904 +#: ../lib/modules/sambaSamAccount.inc:1909 +#: ../lib/modules/sambaSamAccount.inc:1914 ../lib/modules/zarafaUser.inc:634 +#: ../lib/modules/zarafaUser.inc:1306 ../lib/modules/zarafaUser.inc:1322 +#: ../lib/modules/zarafaUser.inc:1332 ../lib/modules/zarafaUser.inc:1338 +#: ../lib/modules/windowsUser.inc:334 ../lib/modules/windowsUser.inc:342 +#: ../lib/modules/windowsUser.inc:350 ../lib/modules/windowsUser.inc:358 +#: ../lib/modules/windowsUser.inc:868 ../lib/modules/windowsUser.inc:1142 +#: ../lib/modules/windowsUser.inc:1235 ../lib/modules/windowsUser.inc:1240 +#: ../lib/modules/windowsUser.inc:1245 ../lib/modules/windowsUser.inc:1250 +#: ../lib/modules/ppolicy.inc:36 ../lib/modules/ppolicy.inc:486 +#: ../lib/modules/ppolicy.inc:491 ../lib/modules/ppolicy.inc:494 +#: ../lib/modules/ppolicy.inc:501 ../lib/modules/inetOrgPerson.inc:594 +#: ../lib/modules/generalInformation.inc:95 +#: ../lib/modules/zarafaServer.inc:379 ../lib/modules/customFields.inc:2371 +#: ../lib/modules/fixed_ip.inc:568 +msgid "yes" +msgstr "да" + +#~ msgid "%s DHCP(s) found" +#~ msgstr "%s DHCP найдено" + +#~ msgid "%s alias(es) found" +#~ msgstr "%s псевдоним(ов) найдено" + +#~ msgid "%s domain(s) found" +#~ msgstr "%s домен(ов) найдено" + +#~ msgid "%s group(s) found" +#~ msgstr "%s групп(а) найдено" + +#~ msgid "%s host(s) found" +#~ msgstr "%s компьютера(ов) найдено" + +#~ msgid "%s object(s) found" +#~ msgstr "%s обьекта(ов) найдено" + +#~ msgid "%s user(s) found" +#~ msgstr "%s пользователя(ей) найдено" + +#~ msgid "(example: cn=MyNewPerson)" +#~ msgstr "(пример: cn=MyNewPerson)" + +#~ msgid "(hint: do not include \"ou=\")" +#~ msgstr "(подсказка: без \"ou=\")" + +#~ msgid "Add Samba 3 account" +#~ msgstr "Добавить учетную запись Samba 3" + +#~ msgid "Adding attribute failed!" +#~ msgstr "Добавление аттрибута не удалось!" + +#~ msgid "All following lines form the mail body." +#~ msgstr "Все следующие строки тела письма." + +#~ msgid "" +#~ "Attention: The DHCP service needs to be restarted after changes in DDNS." +#~ msgstr "Внимание: DHCP сервер нужно перегрузить после изменений в DDNS." + +#~ msgid "Back to Login" +#~ msgstr "Вернуться на начало" + +#~ msgid "Back to OU-Editor" +#~ msgstr "Вернуться в OU-редактор" + +#~ msgid "Back to PDF Editor" +#~ msgstr "Вернуться в PDF-редактор" + +#~ msgid "Back to profile editor" +#~ msgstr "Вернуться в редактор профилей" + +#~ msgid "Cache timeout is invalid!" +#~ msgstr "Таймаут кэша неправильный!" + +#~ msgid "Choose a server for the home directory!" +#~ msgstr "Выберите сервер для домашнего каталога" + +#~ msgid "Container DN" +#~ msgstr "Контейнер DN" + +#~ msgid "Country" +#~ msgstr "Страна" + +#~ msgid "Country name is invalid!" +#~ msgstr "Название страны не правильное!" + +#~ msgid "Delegates has invalid format!" +#~ msgstr "Делегирование имеет не правильный формат!" + +#~ msgid "Delete %s" +#~ msgstr "Удалить %s" + +#~ msgid "Delete DHCP(s)" +#~ msgstr "Удалить DHCP" + +#~ msgid "Delete Kolab account" +#~ msgstr "Удалить учетную запись Kolab" + +#~ msgid "Delete PDF structure" +#~ msgstr "Удалить PDF шаблон" + +#~ msgid "Delete host(s)" +#~ msgstr "Удалить компьютер(ы)" + +#~ msgid "Delete operation canceled." +#~ msgstr "Операция отменена." + +#~ msgid "Delete user(s)" +#~ msgstr "Удалить пользователя(ей)" + +#~ msgid "Deleted account" +#~ msgstr "Удаленная учетная запись" + +#~ msgid "Deleting. Please stand by ..." +#~ msgstr "Удаление. Пожалуйста ждите..." + +#~ msgid "Donate" +#~ msgstr "Спонсировать" + +#~ msgid "Drive letter assigned on windows workstations as homedirectory." +#~ msgstr "Имя сетевого диска подключенного как домашний каталог." + +#~ msgid "Entry %s deleted successfully." +#~ msgstr "Строка %s удалена успешно." + +#~ msgid "" +#~ "File name and path relative to the netlogon-share which should be " +#~ "executed on logon. $user and $group are replaced with user and group name." +#~ msgstr "" +#~ "Имя файла и путь относительно папки netlogon, который должен быть " +#~ "выполнен при входе в систему. Вместо $user и $group будет подставлено имя " +#~ "группы и пользователя." + +#~ msgid "File upload failed!" +#~ msgstr "Загрузка файла не удалась!" + +#~ msgid "Fixed IP" +#~ msgstr "Постоянный IP" + +#~ msgid "Free/Busy interval must be a number!" +#~ msgstr "Интервал Свободно/Занято должен быть цифрой!" + +#~ msgid "Germany" +#~ msgstr "Германия" + +#~ msgid "" +#~ "Here is a list of possible columns. The red columns must be included in " +#~ "the CSV file and filled with data for all accounts." +#~ msgstr "" +#~ "Это список допустимых столбцов. Выделенные красным обязательно должны " +#~ "быть включены в CSV файл и заполнены для всех учетных записей." + +#~ msgid "Here you can specify if the account is active or inactive." +#~ msgstr "Активная или неактивная учетная запись." + +#~ msgid "Home directory server" +#~ msgstr "Сервер домашнего каталога" + +#~ msgid "I am sure" +#~ msgstr "Я уверен" + +#~ msgid "If checked account will be deactivated. (Setting D-Flag)" +#~ msgstr "" +#~ "Если отмечено, учетная запись будет деактивирована. (Установлен D-Flag)." + +#~ msgid "" +#~ "If you decide to send the password via mail then the mail template " +#~ "\"config/passwordMailTemplate.txt\" will be used." +#~ msgstr "" +#~ "При отсылке пароля через почтовое сообщение, будет использоваться шаблон " +#~ "\"config/passwordMailTemplate.txt\"" + +#~ msgid "" +#~ "If you set this to \"true\" then the phpGroupware extension will be added." +#~ msgstr "Если установлено \"true\", будет добавлено расширение phpGroupware." + +#~ msgid "" +#~ "If you want to create domain administrators or other special users use " +#~ "this option." +#~ msgstr "" +#~ "Если хотите создать администратора домена или другого \"специального\" " +#~ "пользователя, используйте эту опцию." + +#~ msgid "" +#~ "LAM can recursively delete this entry and all of its children. See below " +#~ "for a list of all the entries that this action will delete. Do you want " +#~ "to do this?" +#~ msgstr "" +#~ "LAM может рекурсивно удалить эту запись и всех потомков. Ниже смотрите " +#~ "список удаляемых записей. Удалить?" + +#~ msgid "LDAP" +#~ msgstr "LDAP" + +#~ msgid "Last login from" +#~ msgstr "Последний вход с" + +#~ msgid "Link to login page for this self service profile" +#~ msgstr "Ссылка на страницу входа для профиля конфигурации" + +#~ msgid "Mail quota" +#~ msgstr "Mail quota" + +#~ msgid "Mode" +#~ msgstr "Режим" + +#~ msgid "New owner" +#~ msgstr "Новый владелец" + +#~ msgid "Next" +#~ msgstr "Следующий" + +#~ msgid "" +#~ "Note: You will get an \"inappropriate matching\" error if you have not " +#~ "setup an EQUALITY rule on your LDAP server for this attribute." +#~ msgstr "" +#~ "Примечание: Вы получите \"ошибку сравнения\" если не установите знак " +#~ "равенства для этого аттрибута." + +#~ msgid "Optional binary attributes" +#~ msgstr "Дополнительные бинарные аттрибуты" + +#~ msgid "" +#~ "Password contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +#~ "and #*,.;:_-+!%&/|?{[()]}=@$ !" +#~ msgstr "" +#~ "Пароль содержит недопустимые символы. Допустимые: a-z, A-Z, 0-9 and #*,.;:" +#~ "_-+!%&/|?{[()]}=@$ !" + +#~ msgid "" +#~ "Please enter a comma separated list of host names where this user is " +#~ "allowed to log in. If you enable host restrictions for your servers then " +#~ "\"*\" means every host and an empty field means no host." +#~ msgstr "" +#~ "Пожалуйста, введите список компьютеров (разделенный запятыми), " +#~ "разрешенных для входа этого пользователя. \"*\" означает любой компьютер, " +#~ "пусто - не разрешен ни один из компьютеров." + +#~ msgid "Please enter the same password in both password-fields." +#~ msgstr "Пожалуйста, наберите какой-нибудь пароль в обоих полях." + +#~ msgid "" +#~ "Please install the SSH2 module for PHP and activate it in your php.ini!" +#~ msgstr "Установите модуль SSH2 для PHP и активируйте его в php.ini !" + +#~ msgid "Please select your user name and enter your password to log in." +#~ msgstr "Пожалуйста выберите имя пользователя и введите пароль." + +#~ msgid "RDN" +#~ msgstr "RDN" + +#~ msgid "Really create this new OU?" +#~ msgstr "Действительно создать этот новый OU?" + +#~ msgid "Reenter new master password" +#~ msgstr "Повторить" + +#~ msgid "Reenter profile password" +#~ msgstr "Повторите пароль" + +#~ msgid "Relative distinguished name" +#~ msgstr "Относительное отличительное имя" + +#~ msgid "SSH public key(s)" +#~ msgstr "SSH публичные ключи" + +#~ msgid "SSH2 module" +#~ msgstr "SSH2 модуль" + +#~ msgid "SSH2 module is installed." +#~ msgstr "SSH2 модуль инсталлирован." + +#~ msgid "Scope" +#~ msgstr "Область" + +#~ msgid "Script settings" +#~ msgstr "Настройки скрипта" + +#~ msgid "Step 1 of 2: Name and object class(es)" +#~ msgstr "Шаг 1 из 2: Имя и object class(es)" + +#~ msgid "Sudo is not setup correctly!" +#~ msgstr "Настройка sudo не правильная!" + +#~ msgid "Text for user PDF" +#~ msgstr "Текст для пользователя PDF" + +#~ msgid "" +#~ "The Cyrus mail quota for users in MBytes, leave blank for unlimited space." +#~ msgstr "" +#~ "Cyrus почтовая квота для пользователей в Mbytes, пусто - без ограничений." + +#~ msgid "The domain name needs to be shorter than 15 characters." +#~ msgstr "Имя домена должно содержать не более 15 символов." + +#~ msgid "The domain name needs to have at least 3 characters." +#~ msgstr "Имя домена должно содержать хотя бы 3 символа." + +#~ msgid "The first line is the subject." +#~ msgstr "Первая строка - тема." + +#~ msgid "The net mask was invalid and was corrected." +#~ msgstr "Маска сети неправильная и была исправлена." + +#~ msgid "The netmask was set." +#~ msgstr "Маска сети установлена." + +#~ msgid "There are new required attributes which need to be set." +#~ msgstr "Есть новые необходимые аттрибуты, которые нужно настроить." + +#~ msgid "" +#~ "This is an example how it would look in your spreadsheet program before " +#~ "you convert to CSV:" +#~ msgstr "" +#~ "Пример как это выглядит в электронной таблице, перед конвертацией в CSV:" + +#~ msgid "" +#~ "This is the time limit (in days) for other users who want to check future " +#~ "appointments. If you leave this blank the default (60 days) will be set." +#~ msgstr "" +#~ "Это лимит времени для других пользователей, кто хочет проверить будущее " +#~ "назначение. Если не задано, будет установлено 60 дней." + +#~ msgid "This text will appear on top of every user PDF file." +#~ msgstr "Этот текст будет вверху всех PDF файлов пользователей." + +#~ msgid "This value can only be \\\"true\\\" or \\\"false\\\"!" +#~ msgstr "Только \\\"true\\\" или \\\"false\\\"!" + +#~ msgid "Timeout while executing lamdaemon commands!" +#~ msgstr "Перерыв, пока lamdaemon выполняет команды!" + +#~ msgid "" +#~ "To disable login use /bin/false. The list of shells is read from lam/" +#~ "config/shells" +#~ msgstr "" +#~ "Чтобы отключить вход используйте /bin/false. Список оболочек читайте в " +#~ "lam/config/shells" + +#~ msgid "" +#~ "Unable to load available languages. Setting English as default language. " +#~ "For further instructions please contact the Admin of this site." +#~ msgstr "" +#~ "Не возможно загрузить доступные языки. Установлен английский, как язык по " +#~ "умолчанию. Для дальнейших инструкций, свяжитесь с администратором этого " +#~ "сайта." + +#~ msgid "Unable to read sambaSID attribute." +#~ msgstr "Невозможно прочитать sambaSID атрибут." + +#~ msgid "" +#~ "Unable to sync the time when the user can/must change his password " +#~ "because no domain was found." +#~ msgstr "" +#~ "Невозможно синхронизировать время, когда пользователь может/должен " +#~ "сменить свой пароль, потому что домен не найден." + +#~ msgid "Unix workstations" +#~ msgstr "Unix компьютер" + +#~ msgid "Unix workstations are invalid!" +#~ msgstr "Unix компьютер не правильный!" + +#~ msgid "Update attribute \"sambaPwdCanChange\" on password change" +#~ msgstr "Обновлен атрибут \"sambaPwdCanChange\" при изменении пароля" + +#~ msgid "Update attribute \"sambaPwdMustChange\" on password change" +#~ msgstr "Обновлен атрибут \"sambaPwdMustChange\" при изменении пароля" + +#~ msgid "User can/must change password" +#~ msgstr "Пользователь может/должен сменить пароль" + +#~ msgid "" +#~ "User name of the user who should be created. Valid characters are: a-z,A-" +#~ "Z,0-9, .-_. LAM does not allow a number as first character because " +#~ "useradd also does not allow it. If user name is already used user name " +#~ "will be expanded with a number. The next free number will be used. " +#~ "Warning: Older systems have problems with user names longer than 8 " +#~ "characters. You can not log in to Windows if user name is longer than 16 " +#~ "characters." +#~ msgstr "" +#~ "Имя создаваемого пользователя. Разрешенные символы: a-z, A-Z, 0-9, .-_. " +#~ "Число не может быть первым символом, поскольку useradd не позволяет " +#~ "сделать это. Если имя пользователя существует, оно будет дополнено " +#~ "цифрой. ВНИМАНИЕ: Старые системы не поддерживают имена длиннее 8 " +#~ "символов. Если имя будет длиннее 16 символов, Windows может не пустить " +#~ "такого пользователя." + +#~ msgid "Using template:" +#~ msgstr "Используйте шаблон:" + +#~ msgid "Was unable to modify attribtues from DN: %s." +#~ msgstr "Не возможно изменить аттрибуты из DN: %s." + +#~ msgid "Windows group RID" +#~ msgstr "RID Windows группы" + +#~ msgid "" +#~ "You are using a capital letters. This can cause problems because windows " +#~ "isn't case-sensitive." +#~ msgstr "" +#~ "Вы используете заглавные буквы. Это может вызвать проблемы, потому что " +#~ "Windows не чувствительна к регистру." + +#~ msgid "" +#~ "You did not select any object classes for this object. Please go back and " +#~ "do so." +#~ msgstr "" +#~ "Вы не выбирали никаких классов для этого объекта. Пожалуйста вернитесь и " +#~ "выберите их." + +#~ msgid "You have been logged off from LDAP Account Manager." +#~ msgstr "Вы вышли из LDAP Account Manager." + +#~ msgid "You have to activate the \"I am sure\" checkbox." +#~ msgstr "Нужно поставить галочку \"Я уверен\"." + +#~ msgid "YourCompany, Human Resources" +#~ msgstr "YourCompany, Human Resources" + +#~ msgid "inactive" +#~ msgstr "неактивна" + +#~ msgid "jpegPhoto contains errors" +#~ msgstr "jpegPhoto содержит ошибки" + +#~ msgid "Account lists - Filters" +#~ msgstr "Список учетных записей - Фильтры" + +#~ msgid "Account type selection" +#~ msgstr "Выбор учетных записей" + +#~ msgid "Add Neofonie attributes" +#~ msgstr "Добавить Neofonie аттрибут" + +#~ msgid "Add section or static text" +#~ msgstr "Добавить секцию или текст" + +#~ msgid "Apply" +#~ msgstr "Применить" + +#~ msgid "Available PDF fields" +#~ msgstr "Доступные поля PDF" + +#~ msgid "Birth date" +#~ msgstr "День Рождения" + +#~ msgid "ComBots IDs" +#~ msgstr "ComBots IDs" + +#~ msgid "Configuration wizard" +#~ msgstr "Помощник настройки" + +#~ msgid "Create PDF for all aliases" +#~ msgstr "Создать PDF для всех псевдонимов" + +#~ msgid "Create PDF for all domains" +#~ msgstr "Создать PDF для всех доменов" + +#~ msgid "Create PDF for all hosts" +#~ msgstr "Создать PDF для всех компьютеров" + +#~ msgid "Create PDF for all objects" +#~ msgstr "Создать PDF для всех обьектов" + +#~ msgid "Create PDF for selected alias(es)" +#~ msgstr "Создать PDF для выбранного псевдонима(ов)" + +#~ msgid "Create PDF for selected domain(s)" +#~ msgstr "Создать PDF для выбранного домена(ов)" + +#~ msgid "Create PDF for selected group(s)" +#~ msgstr "Создать PDF для выбранной группы" + +#~ msgid "Create PDF for selected object(s)" +#~ msgstr "Создать PDF для выбранного обьекта(ов)" + +#~ msgid "Create PDF for selected user(s)" +#~ msgstr "Создать PDF для выбранного пользователя(ей)" + +#~ msgid "Create account" +#~ msgstr "Создать учетную запись" + +#~ msgid "Date when the employee was initially employed." +#~ msgstr "Дата, когда служащий был первоначально нанят." + +#~ msgid "Edit account types" +#~ msgstr "Редактировать типы учетных записей" + +#~ msgid "Employee skills" +#~ msgstr "Навыки служащего" + +#~ msgid "Employment date" +#~ msgstr "Дата занятости" + +#~ msgid "Group 1, Group 2" +#~ msgstr "Группа 1, группа 2" + +#~ msgid "" +#~ "Host name contains invalid characters. Valid characters are: a-z, A-Z, " +#~ "0-9 and .-_ ! Host name must end with $ !" +#~ msgstr "" +#~ "Имя компьютера содержит не допустимые символы. Допустимые: a-z, A-Z, 0-9 " +#~ "и .-_ ! Имя должно заканчиваться на $ !" + +#~ msgid "IT" +#~ msgstr "IT" + +#~ msgid "Job position" +#~ msgstr "Должность" + +#~ msgid "Job position of this user (e.g. developer, temp, ...)." +#~ msgstr "Должность этого пользователя (разработчик, секретарь...)." + +#~ msgid "List of ComBots IDs." +#~ msgstr "Список ComBots IDs." + +#~ msgid "List of Jabber IDs." +#~ msgstr "Список Jabber IDs." + +#~ msgid "List of project groups of this user." +#~ msgstr "Список проектных групп этого пользователя." + +#~ msgid "List of projects the user is working on." +#~ msgstr "Список проектов, в которых участвует этот пользователь." + +#~ msgid "List of special skills that the user has." +#~ msgstr "Список специальных навыков, которые имеет этот пользователь." + +#~ msgid "Max list entries is invalid!" +#~ msgstr "Главные списки не правильные!" + +#~ msgid "Please enter a valid date (format DD.MM.YYYY)!" +#~ msgstr "Пожалуйста, введите правильную дату. (формат DD.MM.YYYY)!" + +#~ msgid "Project 1, Project 2" +#~ msgstr "Проект 1, проект 2" + +#~ msgid "Project groups" +#~ msgstr "Группы проекта" + +#~ msgid "Quake ID" +#~ msgstr "Quake ID" + +#~ msgid "Save account" +#~ msgstr "Сохранить учетную запись" + +#~ msgid "The department where the employee is employed." +#~ msgstr "Отдел, где нанят служащий." + +#~ msgid "This is the user's login name for the wiki." +#~ msgstr "Имя пользователя для wiki." + +#~ msgid "This saves your account to the LDAP database." +#~ msgstr "Это сохранение учетной записи в LDAP." + +#~ msgid "required for Samba 3 accounts" +#~ msgstr "требуется для Samba 3 учетных записей" + +#~ msgid "Edit logon hours" +#~ msgstr "Редактировать время для входа" + +#~ msgid "Here you can define to deactivate accounts after bad logon attempts." +#~ msgstr "Здесь отключается учетная запись после неудачных попыток входа." + +#~ msgid "Please select page:" +#~ msgstr "Выберите страницу:" + +#~ msgid "Server of external script" +#~ msgstr "Сервер внешнего скрипта" + +#~ msgid "" +#~ "Use it at your own risk and read the documentation for lamdaemon before " +#~ "you use it!" +#~ msgstr "" +#~ "Используйте это на свой страх и риск, читайте документацию для lamdaemon " +#~ "прежде, чем Вы используете это!" + +#~ msgid "GID ranges for Unix groups" +#~ msgstr "GID диапазон для UNIX групп" + +#~ msgid "Maximum GID number for Unix groups" +#~ msgstr "Максимальный GID для Unix групп" + +#~ msgid "Maximum UID number for Unix accounts (hosts)" +#~ msgstr "Максимальный UID для Unix учетных записей (компьютеров)" + +#~ msgid "Maximum UID number for Unix accounts (users)" +#~ msgstr "Максимальный UID для Unix учетных записей (пользователей)" + +#~ msgid "Minimum GID number for Unix groups" +#~ msgstr "Минимальный GID для Unix групп" + +#~ msgid "Minimum UID number for Unix accounts (hosts)" +#~ msgstr "Минимальный UID для Unix учетных записей (компьютеры)" + +#~ msgid "Password hash type for Unix accounts" +#~ msgstr "Тип хэша пароля для Unix учетных записей" + +#~ msgid "Password hash type for Unix groups" +#~ msgstr "Тип хэша пароля для Unix групп" + +#~ msgid "Samba 3 settings" +#~ msgstr "Samba 3 настройки" + +#~ msgid "Delete Account" +#~ msgstr "Удалить учетную запись" + +#~ msgid "A required PHP extension is missing!" +#~ msgstr "Нужное PHP-расширение не найдено" + +#~ msgid "Invalid/Missing Message type" +#~ msgstr "Не правильный тип сообщения" + +#~ msgid "" +#~ "Please report this error to the Bug-Tracker at {link=http://lam." +#~ "sourceforge.net}LDAP Account Manager Development Team{endlink}. The error " +#~ "number is {bold}0001:Invalid/Missing Message type.{endbold} Thank you." +#~ msgstr "" +#~ "Пожалуйста отправьте сообщение об ошибке на Bug-Tracker {link=http://lam." +#~ "sourceforge.net}LDAP Account Manager Development Team{endlink}. Номер " +#~ "ошибки {bold}0001:Invalid/Missing Message type.{endbold} Спасибо." + +#~ msgid "Server Address is empty!" +#~ msgstr "Адрес сервера пуст!" + +#~ msgid "" +#~ "This will set an invalid password which prevents logins with this account." +#~ msgstr "" +#~ "Это установит неправильный пароль, чтобы запретить логиниться с этой уч. " +#~ "записью." + +#~ msgid "Use unix password" +#~ msgstr "Использовать unix пароль" + +#~ msgid "You cannot use this password options at the same time." +#~ msgstr "Вы не можете использовать эти опции пароля в то же самое время." diff --git a/lam/locale/sk_SK/LC_MESSAGES/messages.mo b/lam/locale/sk_SK/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..b0827667 Binary files /dev/null and b/lam/locale/sk_SK/LC_MESSAGES/messages.mo differ diff --git a/lam/locale/sk_SK/LC_MESSAGES/messages.po b/lam/locale/sk_SK/LC_MESSAGES/messages.po new file mode 100644 index 00000000..2bfc765e --- /dev/null +++ b/lam/locale/sk_SK/LC_MESSAGES/messages.po @@ -0,0 +1,14539 @@ +# LDAP Account Manager +# Slavko , 2011, 2012, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: LAM 3.9\n" +"Report-Msgid-Bugs-To: post@rolandgruber.de \n" +"POT-Creation-Date: 2004-01-14 17:45+0200\n" +"PO-Revision-Date: 2013-05-21 17:05+0200\n" +"Last-Translator: Slavko \n" +"Language-Team: slovenčina \n" +"Language: \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==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"X-POFile-SpellExtra: podstrome uid objectClass Asterix CRYPT pixely\n" +"X-POFile-SpellExtra: spolocnost podstromu SID vasaspolocnost domena\n" +"X-POFile-SpellExtra: memberUID TLS homes cfg vasadomena home aliasy UID\n" +"X-POFile-SpellExtra: SSHA aliasov ucty LM Asterisk neaktivity ldaps\n" +"X-POFile-SpellExtra: memberUid config ldap SMD5 ferko lam Account shell\n" +"X-POFile-SpellExtra: MD5 LDAPS IP dc Lamdaemon Nedoporučujeme SHA GID\n" +"X-POFile-SpellExtra: Gecos NIS PDF RDN ID DHCP LAM People profiles\n" +"X-POFile-SpellExtra: lamdaemon sk Syslog Manager SSH LDAP LDIF Pro Kolab\n" +"X-POFile-SpellExtra: localhost inadomena ín Aliasy Service jhrasko Quota\n" +"X-POFile-SpellExtra: skupina2 skupina1 RTP Karakas Buenos Hraško yes\n" +"X-POFile-SpellExtra: vypršanom NOPASSWD group Islamabád Zarafa add tj\n" +"X-POFile-SpellExtra: NAT RID automontu dn VašaSpoločnosť URN URI\n" +"X-POFile-SpellExtra: sambaPwdLastSet ACL POP3 priklad DynDNS rdn\n" +"X-POFile-SpellExtra: FreeRadius OID Authorized sambaAlgorithmicRidBase\n" +"X-POFile-SpellExtra: podpoložky fileuploads Winbind Autentifikačná\n" +"X-POFile-SpellExtra: aliasu Administrators Postfix Aires NoOp Aliasovaná\n" +"X-POFile-SpellExtra: NetBIOS kalkulátore kodeky host mojadomena CSV IMAP\n" +"X-POFile-SpellExtra: Azora podržaného WINS voicemail sambaSID INI\n" +"X-POFile-SpellExtra: Message delete inody newsuperier replace peer\n" +"X-POFile-SpellExtra: pouziv02 false skupina01 Karáči automount skupina02\n" +"X-POFile-SpellExtra: CSS Automated deleteoldrdn maxUID Stredoatlantický\n" +"X-POFile-SpellExtra: štruktúrovanie PDU pc02 pc01 UNC DNS Bagdád grace\n" +"X-POFile-SpellExtra: sendvoicemail account local mv NBNS EDU pouziv inodov\n" +"X-POFile-SpellExtra: sudo uidNumber CVS phpGroupware ini conf stroj1\n" +"X-POFile-SpellExtra: stroj2 mojaskupina 0x08 atribúta kodekov 0x04\n" +"X-POFile-SpellExtra: H-Nodes pagera 0x01 0x02 newrdn deaktivovaný Shadow\n" +"X-POFile-SpellExtra: NSS backupRootFileSystem asterisk IT pouziv03 realm\n" +"X-POFile-SpellExtra: pouziv01 Abú pouziv2 pouziv1 phpGroupWare VCARD\n" +"X-POFile-SpellExtra: person Accounting Dháka Dhabí prehrávaná\n" +"X-POFile-SpellExtra: všesmerového Broadcast true samobslužné\n" +"X-POFile-SpellExtra: všesmerové landeamon popisovačov odregistruje\n" +"X-POFile-SpellExtra: Auckland Jakarta ssh-dss Magadan Kapverdy Pert Mixed\n" +"X-POFile-SpellExtra: test-start Pager Midway cache www HTTP B-Node color\n" +"X-POFile-SpellExtra: root PHP 123-123-1234 Max PPolicy a-z loga https 237\n" +"X-POFile-SpellExtra: cn endcolor 123 sip ZIP TGT AMA 42 Samoregistrácia\n" +"X-POFile-SpellExtra: inetOrgPerson zproxy H-Node webovým endlink P-Node\n" +"X-POFile-SpellExtra: Nenájdení http HTML predautentifikovať M-Node\n" +"X-POFile-SpellExtra: CRYPT-SHA512 999 0-9 d2131a A-Z link user 389 php z1\n" +"X-POFile-SpellExtra: 10 123-124-1234 OK Potvrdzovací\n" +"X-POFile-SpellExtra: newsuperior bind example Unix webového Puppet\n" +"X-POFile-SpellExtra: Alma-ata 234234 com 123-123-1235 123-123-1236 1000\n" +"X-POFile-SpellExtra: 12345 proxovateľné Zálohovací Manažment\n" +"X-POFile-SpellExtra: zdieľanie Backendy Point-To-Point Heimdal MIT pl\n" +"X-POFile-SpellExtra: QMail configexim zarafa inod predautentifikáciu jpg\n" +"X-POFile-SpellExtra: PSČ manager JPG imap admin bold ftp authenticate\n" +"X-POFile-SpellExtra: employeeType qmailUser shelly accountant dhcpService\n" +"X-POFile-SpellExtra: endbold DD-MM-YYYY principalu dhcpServer maildir\n" +"X-POFile-SpellExtra: OpenDJ sshd fstype HEADER rw jpeg sambaUnixIdPool\n" +"X-POFile-SpellExtra: SASL qmail-reply projects Qmail Reply-to 12 0-9a-zA-Z\n" +"X-POFile-SpellExtra: objectclass ppolicy preposielania nfs bounced mbox\n" +"X-POFile-SpellExtra: DDNS USER LOGINDN samoregistrácie preposielanie\n" +"X-POFile-SpellExtra: autentizácie pridržania Odkazovače scope givenname\n" +"X-Generator: Gtranslator 2.91.5\n" +"X-POFile-SpellExtra: sn PC01 smart\n" + +#: ../lib/modules/zarafaContact.inc:88 ../lib/modules/zarafaContact.inc:91 +#: ../lib/modules/zarafaContact.inc:94 ../lib/modules/zarafaContact.inc:115 +#: ../lib/modules/zarafaGroup.inc:91 ../lib/modules/zarafaGroup.inc:94 +#: ../lib/modules/zarafaGroup.inc:97 ../lib/modules/zarafaGroup.inc:124 +#: ../lib/modules/zarafaUser.inc:137 ../lib/modules/zarafaUser.inc:140 +#: ../lib/modules/zarafaUser.inc:143 ../lib/modules/zarafaUser.inc:213 +msgid "\"Send as\" attribute" +msgstr "Atribút „Poslať ako”" + +#: ../lib/modules/zarafaContact.inc:72 ../lib/modules/zarafaContact.inc:139 +#: ../lib/modules/zarafaContact.inc:162 ../lib/modules/zarafaContact.inc:176 +#: ../lib/modules/zarafaContact.inc:215 ../lib/modules/zarafaContact.inc:344 +#: ../lib/modules/zarafaContact.inc:554 ../lib/modules/zarafaGroup.inc:87 +#: ../lib/modules/zarafaGroup.inc:132 ../lib/modules/zarafaGroup.inc:182 +#: ../lib/modules/zarafaGroup.inc:200 ../lib/modules/zarafaGroup.inc:216 +#: ../lib/modules/zarafaGroup.inc:259 ../lib/modules/zarafaGroup.inc:413 +#: ../lib/modules/zarafaGroup.inc:656 ../lib/modules/zarafaUser.inc:97 +#: ../lib/modules/zarafaUser.inc:194 ../lib/modules/zarafaUser.inc:237 +#: ../lib/modules/zarafaUser.inc:396 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:451 ../lib/modules/zarafaUser.inc:495 +#: ../lib/modules/zarafaUser.inc:871 ../lib/modules/zarafaUser.inc:1300 +#: ../lib/modules/zarafaUser.inc:1531 +msgid "\"Send as\" privileges" +msgstr "Práva „Poslať ako”" + +#: ../lib/modules/posixAccount.inc:479 +msgid "" +"$user and $group will be replaced with user name and primary group name." +msgstr "" +"$user a $group sú nahradené používateľským menom a menom primárnej skupiny." + +#: ../lib/modules/nisnetgroup.inc:127 +msgid "(host1,user1,example.com);(host2,user2,example.com)" +msgstr "(stroj1,pouziv1,example.com);(stroj2,pouziv2,example.com)" + +#: ../lib/modules/qmailUser.inc:361 ../lib/modules/posixAccount.inc:290 +msgid "/home/smiller" +msgstr "/home/jhrasko" + +#: ../lib/modules/inetOrgPerson.inc:488 +#: ../lib/modules/asteriskVoicemail.inc:177 +msgid "123-123-1234" +msgstr "123-123-1234" + +#: ../lib/modules/inetOrgPerson.inc:504 +msgid "123-123-1235" +msgstr "123-123-1235" + +#: ../lib/modules/inetOrgPerson.inc:512 +msgid "123-123-1236" +msgstr "123-123-1236" + +#: ../lib/modules/windowsUser.inc:308 ../lib/modules/windowsUser.inc:314 +#: ../lib/modules/inetOrgPerson.inc:496 +msgid "123-124-1234" +msgstr "123-124-1234" + +#: ../lib/modules/windowsUser.inc:266 ../lib/modules/inetOrgPerson.inc:480 +msgid "12345" +msgstr "12345" + +#: ../lib/modules/dhcp_settings.inc:160 +msgid "" +"B-Node (0x01): Broadcast.
    The client tries to find other " +"workstations via broadcasting\n" +"(works only inside the same collision domain, viz. the same subnet).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"The client contacts a Netbios name server (NBNS) from Microsoft Windows Name " +"Service (WINS) for name resolution.

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"The node tries broadcasting first. If that fails then it tries WINS.

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"The node tries WINS first. If that fails it tries broadcasting.

    \n" +"\n" +"By default, the nodes are configured as H-Nodes which fits for small " +"networks. In large networks Point-to-Point (0x02) should be used." +msgstr "" +"B-Node (0x01): Broadcast.
    Klient sa ostatné pracovné stanice " +"pokúša nájsť pomocou všesmerového vysielania\n" +"(pracuje len vrámci kolíznej domény, tj. v rovnakej podsieti).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"Klient na preklad mena kontaktuje menný server NetBIOS (NBNS) z Microsoft " +"Windows Name Service (WINS).

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"Uzol sa najprv pokúša o všesmerové vysielanie. Ak zlyhá, použije WINS.

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"Uzol najprv skúša WINS. Ak zlyhá, použije všesmerové vysielanie.

    \n" +"\n" +"Predvolene sú uzly nastavené ako H-Nodes, čo stačí pre malé siete. Vo " +"veľkých sieťach by ste mali použiť Point-To-Point (0x02)." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:145 +#, php-format +msgid "Maximum length: %s characters" +msgstr "Maximálna dĺžka: %s znakov" + +#: ../lib/modules/selfRegistration.inc:539 +#: ../lib/modules/passwordSelfReset.inc:1372 +msgid "" +"A confirmation mail was sent. Please click on the link in the mail to " +"proceed." +msgstr "" +"Potvrdzujúci email bol odoslaný. Prosím, kliknite na odkaz v v správe na " +"pokračovanie." + +#: ../lib/modules/device.inc:75 +msgid "A description for this device." +msgstr "Popis tohoto zariadenia." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +msgid "A list of attributes to display in the results (comma-separated)" +msgstr "Zoznam atribútov, zobrazených vo výsledkoch (oddelené čiarkou)" + +#: ../lib/modules/sudoRole.inc:84 ../lib/modules/sudoRole.inc:113 +msgid "A list of options (e.g. !authenticate)." +msgstr "Zoznam volieb (napr. !authenticate)." + +#: ../templates/massBuildAccounts.php:135 +msgid "A required column is missing in your CSV file." +msgstr "Vo vašom súbore CVS chýba povinný stĺpec." + +#: ../lib/modules/kolabUser.inc:114 +msgid "" +"A user may define who is allowed to act on behalf of herself. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"Používateľ môže definovať, kto má právo jednať v jeho zastúpení. Táto " +"vlastnosť je kontrolovaná pri odosielaní emailov pomocou SMTP démona Kolab " +"(Postfix)." + +#: ../templates/3rdParty/pla/lib/import_functions.php:593 +msgid "A valid deleteoldrdn attribute should be specified" +msgstr "Musí byť zadaný platný atribút deleteoldrdn" + +#: ../templates/3rdParty/pla/lib/import_functions.php:237 +msgid "A valid dn line is required" +msgstr "Je vyžadovaný platný DN" + +#: ../templates/3rdParty/pla/lib/import_functions.php:596 +msgid "A valid newrdn attribute should be specified" +msgstr "Musí byť zadaný platný atribút newrdn" + +#: ../templates/3rdParty/pla/lib/import_functions.php:587 +msgid "A valid newsuperior attribute should be specified" +msgstr "Musí byť zadaný platný atribút newsuperior" + +#: ../lib/modules/asteriskAccount.inc:122 +#: ../lib/modules/asteriskAccount.inc:251 +#: ../lib/modules/asteriskAccount.inc:333 +#: ../lib/modules/asteriskAccount.inc:409 +#: ../lib/modules/asteriskAccount.inc:701 +#: ../lib/modules/asteriskAccount.inc:1193 +msgid "AMA flags" +msgstr "Príznaky AMA" + +#: ../templates/serverInfo.php:342 +msgid "Abandon" +msgstr "Opustiť" + +#: ../templates/lists/changePassword.php:643 +msgid "Aborted password change." +msgstr "Zmena hesla zrušená." + +#: ../lib/modules/sambaSamAccount.inc:555 +msgid "Abu Dhabi, Muscat, Baku" +msgstr "Abú Dhabí, Maskat, Baku" + +#: ../templates/config/confmain.php:263 ../help/help.inc:103 +msgid "Access level" +msgstr "Prístupová úroveň" + +#: ../lib/modules/account.inc:58 +msgid "Account" +msgstr "Účet" + +#: ../templates/massBuildAccounts.php:201 ../lib/modules/mitKerberos.inc:281 +#: ../lib/modules/mitKerberos.inc:282 ../lib/modules/mitKerberos.inc:283 +#: ../lib/modules/mitKerberos.inc:285 ../lib/modules/mitKerberos.inc:287 +#: ../lib/modules/mitKerberos.inc:288 +#: ../lib/modules/zarafaDynamicGroup.inc:190 +#: ../lib/modules/zarafaDynamicGroup.inc:192 +#: ../lib/modules/zarafaDynamicGroup.inc:194 +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:197 +#: ../lib/modules/zarafaDynamicGroup.inc:198 ../lib/modules/ipHost.inc:109 +#: ../lib/modules/ipHost.inc:110 ../lib/modules/asteriskAccount.inc:620 +#: ../lib/modules/asteriskAccount.inc:623 +#: ../lib/modules/asteriskAccount.inc:626 +#: ../lib/modules/asteriskAccount.inc:629 +#: ../lib/modules/asteriskAccount.inc:631 +#: ../lib/modules/asteriskAccount.inc:633 +#: ../lib/modules/asteriskAccount.inc:635 +#: ../lib/modules/asteriskAccount.inc:637 +#: ../lib/modules/asteriskAccount.inc:639 ../lib/modules/account.inc:118 +#: ../lib/modules/ieee802device.inc:89 ../lib/modules/puppetClient.inc:178 +#: ../lib/modules/puppetClient.inc:180 ../lib/modules/puppetClient.inc:182 +#: ../lib/modules/puppetClient.inc:183 ../lib/modules/qmailUser.inc:442 +#: ../lib/modules/qmailUser.inc:444 ../lib/modules/qmailUser.inc:446 +#: ../lib/modules/qmailUser.inc:447 ../lib/modules/qmailUser.inc:448 +#: ../lib/modules/qmailUser.inc:450 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:454 ../lib/modules/qmailUser.inc:457 +#: ../lib/modules/qmailUser.inc:460 ../lib/modules/qmailUser.inc:462 +#: ../lib/modules/qmailUser.inc:463 ../lib/modules/qmailUser.inc:464 +#: ../lib/modules/zarafaContact.inc:175 ../lib/modules/zarafaContact.inc:177 +#: ../lib/modules/zarafaContact.inc:178 ../lib/modules/zarafaContact.inc:179 +#: ../lib/modules/zarafaContact.inc:180 ../lib/modules/windowsHost.inc:125 +#: ../lib/modules/posixGroup.inc:537 ../lib/modules/posixGroup.inc:541 +#: ../lib/modules/posixGroup.inc:542 ../lib/modules/zarafaGroup.inc:210 +#: ../lib/modules/zarafaGroup.inc:212 ../lib/modules/zarafaGroup.inc:213 +#: ../lib/modules/zarafaGroup.inc:214 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:217 ../lib/modules/device.inc:134 +#: ../lib/modules/device.inc:135 ../lib/modules/dhcp_settings.inc:293 +#: ../lib/modules/dhcp_settings.inc:295 ../lib/modules/dhcp_settings.inc:297 +#: ../lib/modules/dhcp_settings.inc:299 ../lib/modules/dhcp_settings.inc:301 +#: ../lib/modules/dhcp_settings.inc:302 ../lib/modules/dhcp_settings.inc:304 +#: ../lib/modules/dhcp_settings.inc:306 ../lib/modules/dhcp_settings.inc:310 +#: ../lib/modules/eduPerson.inc:237 ../lib/modules/eduPerson.inc:239 +#: ../lib/modules/eduPerson.inc:241 ../lib/modules/eduPerson.inc:243 +#: ../lib/modules/eduPerson.inc:244 ../lib/modules/eduPerson.inc:245 +#: ../lib/modules/eduPerson.inc:246 ../lib/modules/quota.inc:52 +#: ../lib/modules/quota.inc:54 ../lib/modules/quota.inc:56 +#: ../lib/modules/quota.inc:58 ../lib/modules/quota.inc:60 +#: ../lib/modules/quota.inc:62 ../lib/modules/quota.inc:63 +#: ../lib/modules/zarafaAddressList.inc:163 +#: ../lib/modules/zarafaAddressList.inc:164 +#: ../lib/modules/zarafaAddressList.inc:165 +#: ../lib/modules/sambaSamAccount.inc:96 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:102 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:107 +#: ../lib/modules/sambaSamAccount.inc:108 +#: ../lib/modules/sambaSamAccount.inc:109 +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 +#: ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/sambaSamAccount.inc:117 +#: ../lib/modules/sambaSamAccount.inc:118 +#: ../lib/modules/sambaSamAccount.inc:120 +#: ../lib/modules/sambaSamAccount.inc:121 ../lib/modules/posixAccount.inc:84 +#: ../lib/modules/posixAccount.inc:89 ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/posixAccount.inc:103 ../lib/modules/posixAccount.inc:104 +#: ../lib/modules/posixAccount.inc:105 ../lib/modules/posixAccount.inc:106 +#: ../lib/modules/posixAccount.inc:108 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/posixAccount.inc:110 ../lib/modules/posixAccount.inc:112 +#: ../lib/modules/zarafaUser.inc:441 ../lib/modules/zarafaUser.inc:443 +#: ../lib/modules/zarafaUser.inc:445 ../lib/modules/zarafaUser.inc:446 +#: ../lib/modules/zarafaUser.inc:448 ../lib/modules/zarafaUser.inc:450 +#: ../lib/modules/zarafaUser.inc:452 ../lib/modules/zarafaUser.inc:453 +#: ../lib/modules/zarafaUser.inc:454 ../lib/modules/zarafaUser.inc:455 +#: ../lib/modules/zarafaUser.inc:456 ../lib/modules/zarafaUser.inc:457 +#: ../lib/modules/zarafaUser.inc:458 ../lib/modules/zarafaUser.inc:459 +#: ../lib/modules/ppolicyUser.inc:86 ../lib/modules/windowsUser.inc:444 +#: ../lib/modules/windowsUser.inc:446 ../lib/modules/windowsUser.inc:448 +#: ../lib/modules/windowsUser.inc:450 ../lib/modules/windowsUser.inc:452 +#: ../lib/modules/windowsUser.inc:454 ../lib/modules/windowsUser.inc:456 +#: ../lib/modules/windowsUser.inc:458 ../lib/modules/windowsUser.inc:460 +#: ../lib/modules/windowsUser.inc:462 ../lib/modules/windowsUser.inc:464 +#: ../lib/modules/windowsUser.inc:1022 ../lib/modules/windowsUser.inc:1031 +#: ../lib/modules/windowsUser.inc:1040 ../lib/modules/windowsUser.inc:1051 +#: ../lib/modules/windowsUser.inc:1087 ../lib/modules/kolabUser.inc:179 +#: ../lib/modules/kolabUser.inc:181 ../lib/modules/kolabUser.inc:183 +#: ../lib/modules/kolabUser.inc:185 ../lib/modules/ddns.inc:145 +#: ../lib/modules/nisObject.inc:117 ../lib/modules/sambaGroupMapping.inc:435 +#: ../lib/modules/sambaGroupMapping.inc:436 +#: ../lib/modules/shadowAccount.inc:58 ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/shadowAccount.inc:62 ../lib/modules/shadowAccount.inc:64 +#: ../lib/modules/shadowAccount.inc:66 ../lib/modules/shadowAccount.inc:67 +#: ../lib/modules/automount.inc:108 ../lib/modules/sambaDomain.inc:202 +#: ../lib/modules/sambaDomain.inc:204 ../lib/modules/sambaDomain.inc:206 +#: ../lib/modules/sambaDomain.inc:208 ../lib/modules/sambaDomain.inc:210 +#: ../lib/modules/sambaDomain.inc:212 ../lib/modules/inetOrgPerson.inc:65 +#: ../lib/modules/inetOrgPerson.inc:67 ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:71 ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:75 ../lib/modules/inetOrgPerson.inc:77 +#: ../lib/modules/inetOrgPerson.inc:79 ../lib/modules/inetOrgPerson.inc:81 +#: ../lib/modules/inetOrgPerson.inc:83 ../lib/modules/inetOrgPerson.inc:85 +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:89 +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:93 +#: ../lib/modules/inetOrgPerson.inc:94 ../lib/modules/inetOrgPerson.inc:95 +#: ../lib/modules/inetOrgPerson.inc:98 ../lib/modules/inetOrgPerson.inc:99 +#: ../lib/modules/inetOrgPerson.inc:100 ../lib/modules/systemQuotas.inc:91 +#: ../lib/modules/systemQuotas.inc:93 ../lib/modules/systemQuotas.inc:95 +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:99 +#: ../lib/modules/systemQuotas.inc:101 ../lib/modules/systemQuotas.inc:103 +#: ../lib/modules/freeRadius.inc:243 ../lib/modules/freeRadius.inc:245 +#: ../lib/modules/freeRadius.inc:247 ../lib/modules/freeRadius.inc:249 +#: ../lib/modules/freeRadius.inc:251 ../lib/modules/freeRadius.inc:253 +#: ../lib/modules/sudoRole.inc:224 ../lib/modules/sudoRole.inc:226 +#: ../lib/modules/sudoRole.inc:228 ../lib/modules/sudoRole.inc:230 +#: ../lib/modules/sudoRole.inc:232 ../lib/modules/sudoRole.inc:234 +#: ../lib/modules/zarafaServer.inc:167 ../lib/modules/zarafaServer.inc:169 +#: ../lib/modules/zarafaServer.inc:171 ../lib/modules/zarafaServer.inc:172 +#: ../lib/modules/asteriskVoicemail.inc:206 +#: ../lib/modules/asteriskVoicemail.inc:212 +#: ../lib/modules/asteriskVoicemail.inc:214 +#: ../lib/modules/inetLocalMailRecipient.inc:124 +#: ../lib/modules/inetLocalMailRecipient.inc:126 +#: ../lib/modules/inetLocalMailRecipient.inc:128 +#: ../lib/modules/aliasEntry.inc:79 ../lib/modules/qmailGroup.inc:414 +#: ../lib/modules/qmailGroup.inc:416 ../lib/modules/qmailGroup.inc:419 +#: ../lib/modules/qmailGroup.inc:421 ../lib/modules/qmailGroup.inc:423 +#: ../lib/modules/qmailGroup.inc:425 ../lib/modules/qmailGroup.inc:426 +#: ../lib/modules/qmailGroup.inc:427 ../lib/modules/qmailGroup.inc:428 +#: ../lib/modules/qmailGroup.inc:429 ../lib/modules/qmailGroup.inc:430 +#: ../lib/modules/authorizedServiceObject.inc:123 +#: ../lib/modules/heimdalKerberos.inc:240 +#: ../lib/modules/heimdalKerberos.inc:241 +#: ../lib/modules/heimdalKerberos.inc:242 +#: ../lib/modules/heimdalKerberos.inc:244 +#: ../lib/modules/heimdalKerberos.inc:246 ../lib/modules/windowsGroup.inc:241 +#: ../lib/modules/windowsGroup.inc:243 ../lib/modules/windowsGroup.inc:245 +#: ../lib/modules/windowsGroup.inc:246 ../lib/modules/windowsGroup.inc:247 +#: ../lib/modules/nisMailAlias.inc:115 ../lib/modules/nisMailAlias.inc:117 +#: ../lib/modules/hostObject.inc:104 +#, php-format +msgid "Account %s:" +msgstr "Účet %s:" + +#: ../lib/types/asteriskExt.inc:95 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskAccount.inc:102 +#: ../lib/modules/asteriskAccount.inc:317 +#: ../lib/modules/asteriskAccount.inc:329 +#: ../lib/modules/asteriskAccount.inc:373 +#: ../lib/modules/asteriskAccount.inc:671 +#: ../lib/modules/asteriskAccount.inc:1189 +#: ../lib/modules/asteriskExtension.inc:91 +#: ../lib/modules/asteriskExtension.inc:122 +#: ../lib/modules/asteriskExtension.inc:129 +#: ../lib/modules/asteriskExtension.inc:145 +#: ../lib/modules/asteriskExtension.inc:299 +#: ../lib/modules/asteriskExtension.inc:805 +#: ../lib/modules/asteriskVoicemail.inc:82 +#: ../lib/modules/asteriskVoicemail.inc:118 +#: ../lib/modules/asteriskVoicemail.inc:128 +#: ../lib/modules/asteriskVoicemail.inc:142 +#: ../lib/modules/asteriskVoicemail.inc:244 +#: ../lib/modules/asteriskVoicemail.inc:389 +msgid "Account context" +msgstr "Kontext účtu" + +#: ../lib/modules/selfRegistration.inc:387 +msgid "Account creation" +msgstr "Vytvorenie účtu" + +#: ../lib/modules/selfRegistration.inc:77 +msgid "Account creation confirmation" +msgstr "Potvrdenie vytvorenia účtu" + +#: ../templates/masscreate.php:124 +msgid "Account creation via file upload" +msgstr "Vytvorenie účtov pomocou nahrania súboru" + +#: ../lib/modules/posixAccount.inc:486 +msgid "Account deactivated" +msgstr "Účet deaktivovaný" + +#: ../templates/lists/changePassword.php:261 +msgid "Account details" +msgstr "Podrobnosti účtu" + +#: ../lib/types/user.inc:104 ../lib/modules/mitKerberos.inc:117 +#: ../lib/modules/mitKerberos.inc:211 ../lib/modules/mitKerberos.inc:244 +#: ../lib/modules/mitKerberos.inc:386 ../lib/modules/mitKerberos.inc:635 +#: ../lib/modules/mitKerberos.inc:784 ../lib/modules/sambaSamAccount.inc:335 +#: ../lib/modules/sambaSamAccount.inc:450 +#: ../lib/modules/sambaSamAccount.inc:1164 +#: ../lib/modules/sambaSamAccount.inc:1422 +#: ../lib/modules/sambaSamAccount.inc:1714 +#: ../lib/modules/shadowAccount.inc:121 ../lib/modules/shadowAccount.inc:186 +#: ../lib/modules/shadowAccount.inc:226 ../lib/modules/shadowAccount.inc:343 +#: ../lib/modules/shadowAccount.inc:444 ../lib/modules/shadowAccount.inc:490 +#: ../lib/modules/heimdalKerberos.inc:95 +#: ../lib/modules/heimdalKerberos.inc:175 +#: ../lib/modules/heimdalKerberos.inc:207 +#: ../lib/modules/heimdalKerberos.inc:313 +#: ../lib/modules/heimdalKerberos.inc:536 +#: ../lib/modules/heimdalKerberos.inc:671 +msgid "Account expiration date" +msgstr "Dátum vypršania platnosti účtu" + +#: ../lib/modules/shadowAccount.inc:162 +msgid "Account inactive" +msgstr "Neaktívny účet" + +#: ../lib/modules/sambaSamAccount.inc:275 +#: ../lib/modules/sambaSamAccount.inc:281 +#: ../lib/modules/sambaSamAccount.inc:442 +#: ../lib/modules/sambaSamAccount.inc:1132 +#: ../lib/modules/sambaSamAccount.inc:1710 ../lib/modules/windowsUser.inc:171 +#: ../lib/modules/windowsUser.inc:330 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:563 ../lib/modules/windowsUser.inc:1237 +msgid "Account is deactivated" +msgstr "Účet je deaktivovaný" + +#: ../lib/modules/sambaSamAccount.inc:278 +#: ../lib/modules/sambaSamAccount.inc:1138 ../lib/modules/windowsUser.inc:174 +#: ../lib/modules/windowsUser.inc:544 +msgid "Account is locked" +msgstr "Účet je zamknutý" + +#: ../templates/delete.php:99 +msgid "Account name:" +msgstr "Meno účtu:" + +#: ../lib/types/user.inc:300 ../lib/types/user.inc:714 +#: ../lib/types/user.inc:848 ../lib/modules/qmailUser.inc:204 +#: ../lib/modules/qmailUser.inc:276 ../lib/modules/qmailUser.inc:395 +#: ../lib/modules/qmailUser.inc:602 ../lib/modules/qmailUser.inc:1204 +msgid "Account status" +msgstr "Stav účtu" + +#: ../templates/masscreate.php:151 ../lib/modules/asteriskAccount.inc:110 +#: ../lib/modules/asteriskAccount.inc:318 +#: ../lib/modules/asteriskAccount.inc:331 +#: ../lib/modules/asteriskAccount.inc:393 +#: ../lib/modules/asteriskAccount.inc:679 +#: ../lib/modules/asteriskAccount.inc:1191 ../lib/modules/customFields.inc:425 +#: ../lib/modules/customFields.inc:468 +msgid "Account type" +msgstr "Typ účtu" + +#: ../templates/config/confmodules.php:168 +#: ../templates/config/confmain.php:209 +#: ../templates/config/moduleSettings.php:167 +#: ../templates/config/conftypes.php:186 +msgid "Account types" +msgstr "Typy účtov" + +#: ../help/help.inc:105 +msgid "Account types and modules" +msgstr "Typy účtov a moduly" + +#: ../help/help.inc:107 +msgid "" +"Account types define which sorts of LDAP entries (e.g. users and groups) " +"should be managed. The account modules define which properties (e.g. Unix " +"and Samba) can be edited." +msgstr "" +"Typy účtov udávajú, ktoré typy položiek LDAP (napr. používatelia a skupiny) " +"majú byť spravované. Moduly účtov definujú, ktoré vlastnosti (napr. Unix a " +"Samba) možno upravovať." + +#: ../lib/modules.inc:1281 +msgid "Account was created successfully." +msgstr "Účet bol úspešne vytvorený." + +#: ../templates/lists/changePassword.php:668 +#: ../templates/lists/changePassword.php:720 +#: ../templates/lists/changePassword.php:766 ../lib/modules.inc:1284 +msgid "Account was modified successfully." +msgstr "Účet bol úspešne upravený." + +#: ../lib/modules/customScripts.inc:134 +msgid "Action type" +msgstr "Typ akcie" + +#: ../lib/modules/ddns.inc:74 ../lib/modules/ddns.inc:361 +msgid "Activate DynDNS" +msgstr "Aktivovať DynDNS" + +#: ../templates/config/confmain.php:243 +msgid "Activate TLS" +msgstr "Aktivovať TLS" + +#: ../lib/modules/sambaSamAccount.inc:342 +msgid "Activate this checkbox to allow this user to use the terminal service." +msgstr "" +"Aktivácia tohoto zaškrtávacieho poľa umožní tomuto používateľovi použiť " +"terminálovú službu." + +#: ../lib/modules/sambaSamAccount.inc:363 +msgid "Activate this checkbox to connect drives from the client machine." +msgstr "" +"Aktivácia tohoto zaškrtávacieho poľa umožní pripojiť zariadenia klientského " +"stroja." + +#: ../lib/modules/sambaSamAccount.inc:366 +msgid "Activate this checkbox to connect printers from the client machine." +msgstr "" +"Aktivácia tohoto zaškrtávacieho poľa umožní pripojiť tlačiarne klientského " +"stroja." + +#: ../lib/modules/sambaSamAccount.inc:351 +msgid "" +"Activate this checkbox to inherit the initial program and working directory " +"from the client machine." +msgstr "" +"Aktivácia tohoto zaškrtávacieho poľa umožní zdediť počiatočný pracovný a " +"programový adresár klientského stroja." + +#: ../lib/modules/sambaSamAccount.inc:369 +msgid "Activate this checkbox to set the client's printer as default printer." +msgstr "" +"Aktivácia tohoto zaškrtávacieho poľa umožní nastaviť tlačiareň klienta ako " +"predvolenú tlačiareň." + +#: ../lib/modules/posixAccount.inc:442 +msgid "Activating this checkbox will remove the user's home directory." +msgstr "" +"Aktivácia tohoto zaškrtávacieho poľa odstráni domovský adresár používateľa." + +#: ../lib/types/zarafaAddressListType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:93 +#: ../lib/modules/zarafaDynamicGroup.inc:76 +#: ../lib/modules/zarafaDynamicGroup.inc:137 +#: ../lib/modules/zarafaDynamicGroup.inc:161 +#: ../lib/modules/zarafaDynamicGroup.inc:274 +#: ../lib/modules/zarafaDynamicGroup.inc:473 ../lib/modules/qmailUser.inc:41 +#: ../lib/modules/qmailUser.inc:278 ../lib/modules/zarafaContact.inc:68 +#: ../lib/modules/zarafaContact.inc:145 ../lib/modules/zarafaContact.inc:243 +#: ../lib/modules/zarafaGroup.inc:83 ../lib/modules/zarafaGroup.inc:148 +#: ../lib/modules/zarafaGroup.inc:189 ../lib/modules/zarafaGroup.inc:298 +#: ../lib/modules/zarafaGroup.inc:666 ../lib/modules/zarafaAddressList.inc:64 +#: ../lib/modules/zarafaAddressList.inc:113 +#: ../lib/modules/zarafaAddressList.inc:135 +#: ../lib/modules/zarafaAddressList.inc:215 +#: ../lib/modules/zarafaAddressList.inc:341 ../lib/modules/zarafaUser.inc:77 +#: ../lib/modules/zarafaUser.inc:202 ../lib/modules/zarafaUser.inc:296 +#: ../lib/modules/zarafaUser.inc:626 +msgid "Active" +msgstr "Aktívne" + +#: ../templates/config/conftypes.php:232 +msgid "Active account types" +msgstr "Aktívne typy účtov" + +#: ../templates/serverInfo.php:307 ../templates/serverInfo.php:384 +#: ../templates/config/profmanage.php:251 +#: ../templates/config/confmodules.php:295 +#: ../templates/config/conftypes.php:223 ../templates/pdfedit/pdfpage.php:561 +#: ../templates/pdfedit/pdfpage.php:571 ../templates/pdfedit/pdfpage.php:581 +#: ../templates/pdfedit/pdfpage.php:595 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1206 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1210 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:78 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:121 +#: ../lib/modules/zarafaContact.inc:379 ../lib/modules/zarafaGroup.inc:448 +#: ../lib/modules/device.inc:259 ../lib/modules/zarafaUser.inc:906 +#: ../lib/modules/zarafaUser.inc:1528 ../lib/modules/zarafaUser.inc:1560 +#: ../lib/modules/kolabUser.inc:707 ../lib/modules/kolabUser.inc:755 +#: ../lib/modules/nisnetgroup.inc:275 ../lib/modules/inetOrgPerson.inc:2185 +#: ../lib/modules/sudoRole.inc:269 ../lib/modules/sudoRole.inc:296 +#: ../lib/modules/sudoRole.inc:323 ../lib/modules/sudoRole.inc:350 +#: ../lib/modules/sudoRole.inc:377 ../lib/modules/sudoRole.inc:404 +#: ../lib/modules/customFields.inc:895 ../lib/modules/qmailGroup.inc:815 +#: ../lib/modules/windowsGroup.inc:416 ../lib/modules/groupOfNames.inc:282 +#: ../lib/modules/groupOfNames.inc:396 +msgid "Add" +msgstr "Pridať" + +#: ../lib/modules/asteriskAccount.inc:968 +msgid "Add Asterisk account" +msgstr "Pridať účet Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:288 +msgid "Add Asterisk voicemail extension" +msgstr "Pridať rozšírenie Asterisk voicemail" + +#: ../lib/modules/authorizedServiceObject.inc:195 +msgid "Add Authorized Service extension" +msgstr "Pridať rozšírenie Authorized Service" + +#: ../lib/modules/eduPerson.inc:481 +msgid "Add EDU person extension" +msgstr "Pridať rozšírenie EDU person" + +#: ../lib/modules/freeRadius.inc:345 +msgid "Add FreeRadius extension" +msgstr "Pridať rozšírenie FreeRadius" + +#: ../lib/modules/ipHost.inc:181 +msgid "Add IP address extension" +msgstr "Pridať rozšírenie IP adresy" + +#: ../lib/modules/mitKerberos.inc:479 ../lib/modules/heimdalKerberos.inc:394 +msgid "Add Kerberos extension" +msgstr "Pridať rozšírenie Kerberos" + +#: ../lib/modules/kolabUser.inc:319 +msgid "Add Kolab extension" +msgstr "Pridať rozšírenie Kolab" + +#: ../lib/modules/puppetClient.inc:217 +msgid "Add Puppet extension" +msgstr "Pridať rozšírenie Puppet" + +#: ../lib/modules/sambaSamAccount.inc:1286 +#: ../lib/modules/sambaGroupMapping.inc:289 +msgid "Add Samba 3 extension" +msgstr "Pridať rozšírenie Samba 3" + +#: ../lib/modules/shadowAccount.inc:371 +msgid "Add Shadow account extension" +msgstr "Pridať rozšírenie Shadow account" + +#: ../lib/modules/zarafaContact.inc:123 ../lib/modules/zarafaContact.inc:191 +msgid "Add Zarafa contact extension" +msgstr "Pridať rozšírenie Zarafa kontakt" + +#: ../lib/modules/zarafaGroup.inc:308 ../lib/modules/zarafaUser.inc:160 +#: ../lib/modules/zarafaUser.inc:161 ../lib/modules/zarafaUser.inc:220 +#: ../lib/modules/zarafaUser.inc:470 ../lib/modules/zarafaServer.inc:230 +msgid "Add Zarafa extension" +msgstr "Pridať rozšírenie Zarafa" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add all" +msgstr "Pridať všetko" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2073 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2091 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "Add an additional value to attribute" +msgstr "Pridá atribútu ďalšiu hodnotu" + +#: ../lib/modules/asteriskExtension.inc:343 +msgid "Add another rule" +msgstr "Pridať iné pravidlo" + +#: ../lib/modules/inetOrgPerson.inc:2220 +msgid "Add entries" +msgstr "Pridať položky" + +#: ../lib/modules/zarafaContact.inc:418 ../lib/modules/zarafaGroup.inc:487 +#: ../lib/modules/device.inc:302 ../lib/modules/zarafaUser.inc:945 +#: ../lib/modules/qmailGroup.inc:851 ../lib/modules/windowsGroup.inc:459 +#: ../lib/modules/groupOfNames.inc:325 ../lib/modules/groupOfNames.inc:439 +msgid "Add entries of this type:" +msgstr "Pridať položky tohoto typu:" + +#: ../lib/modules/customFields.inc:377 +msgid "Add extension" +msgstr "Pridať rozšírenie" + +#: ../lib/modules/ddns.inc:362 +msgid "Add fix IP addresses to DNS" +msgstr "Pridať do DNS statické IP adresy" + +#: ../lib/modules/hostObject.inc:162 +msgid "Add host extension" +msgstr "Pridať rozšírenie host" + +#: ../help/help.inc:210 +msgid "Add input field" +msgstr "Pridať vstupné pole" + +#: ../lib/modules/customFields.inc:2203 +msgid "Add more mapping fields" +msgstr "Pridať viac polí mapovania" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:37 +#, php-format +msgid "Add new %s value to %s" +msgstr "Pridať novú hodnotu %s do %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1208 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:29 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:48 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:166 +msgid "Add new attribute" +msgstr "Pridať nový atribút" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1207 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +msgid "Add new attribute to this object" +msgstr "Pridá touto objektu nový atribút" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:89 +msgid "Add new binary attribute" +msgstr "Pridať nový binárny atribút" + +#: ../lib/modules/customFields.inc:852 +msgid "Add new field" +msgstr "Pridať nové pole" + +#: ../help/help.inc:208 +msgid "Add new group" +msgstr "Pridať novú skupinu" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:117 +msgid "Add new object class" +msgstr "Pridať novú triedu objektu" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:60 +#, php-format +msgid "Add new object class to %s" +msgstr "Pridať novú triedu objektu do %s" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:94 +msgid "Add object class and attributes" +msgstr "Pridať novú triedu objektu a atribúty" + +#: ../lib/modules/passwordSelfReset.inc:269 +msgid "Add password self reset extension" +msgstr "Pridať rozšírenie obnovenia hesla" + +#: ../lib/modules/inetOrgPerson.inc:816 ../lib/modules/inetOrgPerson.inc:2106 +#: ../lib/modules/inetOrgPerson.inc:2144 ../lib/modules/inetOrgPerson.inc:3145 +msgid "Add photo" +msgstr "Pridať fotografiu" + +#: ../templates/config/profmanage.php:239 +#: ../templates/config/profmanage.php:252 ../help/help.inc:124 +msgid "Add profile" +msgstr "Pridať profil" + +#: ../lib/modules/qmailUser.inc:705 ../lib/modules/qmailGroup.inc:626 +msgid "Add qmail extension" +msgstr "Pridať rozšírenie QMail" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add selected" +msgstr "Pridať vybrané" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:149 +msgid "Add value" +msgstr "Pridať hodnotu" + +#: ../templates/3rdParty/pla/htdocs/import.php:28 +msgid "Adding" +msgstr "Pridávanie" + +#: ../lib/modules/range.inc:108 +msgid "Adding the range failed because errors occured." +msgstr "Pridanie rozsahu zlyhalo, pretože nastala chyba." + +#: ../help/help.inc:214 +msgid "Additional CSS links" +msgstr "Ďalšie pripojené CSS" + +#: ../templates/config/conftypes.php:274 ../help/help.inc:152 +msgid "Additional LDAP filter" +msgstr "Ďalší filter LDAP" + +#: ../lib/modules/zarafaDynamicGroup.inc:65 +#: ../lib/modules/zarafaDynamicGroup.inc:69 ../lib/modules/zarafaGroup.inc:68 +#: ../lib/modules/zarafaGroup.inc:72 +msgid "Additional email addresses for this entry." +msgstr "Ďalšie emailové adresy tejto položky." + +#: ../lib/modules/posixAccount.inc:282 ../lib/modules/posixAccount.inc:385 +#: ../lib/modules/posixAccount.inc:433 ../lib/modules/posixAccount.inc:494 +#: ../lib/modules/posixAccount.inc:1253 ../lib/modules/posixAccount.inc:1518 +#: ../lib/modules/posixAccount.inc:1620 +msgid "Additional groups" +msgstr "Ďalšie skupiny" + +#: ../lib/modules/windowsGroup.inc:115 +msgid "Additional notes to describe this entry." +msgstr "Ďalšie poznámky na popísanie tejto položky." + +#: ../templates/massDoUpload.php:160 +msgid "Additional tasks for module:" +msgstr "Ďalšie úlohy pre modul:" + +#: ../lib/modules/windowsUser.inc:526 ../lib/modules/inetOrgPerson.inc:1469 +msgid "Address" +msgstr "Adresa" + +#: ../lib/types/zarafaAddressListType.inc:144 +#, php-format +msgid "Address list count: %s" +msgstr "Počet zoznamov adries: %s" + +#: ../lib/modules/imapAccess.inc:71 +msgid "Address of IMAP server (e.g. mail.example.org)." +msgstr "Adresa servera IMAP (napr. mail.example.com)." + +#: ../help/help.inc:209 +msgid "" +"Adds a new group element to the list of self service options. Use this to " +"structure the input fields." +msgstr "" +"Pridáva do zoznamu samoobslužných volieb novú skupinu prvkov. Použite na " +"štruktúrovanie vstupných polí." + +#: ../help/help.inc:211 +msgid "Adds a new self service option to the selected group element." +msgstr "Do zvolenej skupiny prvkov pridá novú samoobslužnú voľbu." + +#: ../lib/modules/range.inc:95 +msgid "Adds input fields for a new IP range." +msgstr "Pridáva vstupné polia pre nový rozsah IP adries." + +#: ../lib/modules/zarafaUser.inc:101 ../lib/modules/zarafaUser.inc:323 +#: ../lib/modules/zarafaUser.inc:381 ../lib/modules/zarafaUser.inc:635 +#: ../lib/modules/zarafaUser.inc:1328 +msgid "Admin" +msgstr "Administrátor" + +#: ../lib/modules/selfRegistration.inc:53 +#: ../lib/modules/selfRegistration.inc:100 +#: ../lib/modules/passwordSelfReset.inc:92 +#: ../lib/modules/passwordSelfReset.inc:195 +msgid "Admin DN" +msgstr "DN administrátora" + +#: ../lib/modules/selfRegistration.inc:58 +#: ../lib/modules/selfRegistration.inc:104 +#: ../lib/modules/passwordSelfReset.inc:96 +#: ../lib/modules/passwordSelfReset.inc:199 +msgid "Admin password" +msgstr "Heslo administrátora" + +#: ../lib/modules/inetOrgPerson.inc:440 ../lib/modules/inetOrgPerson.inc:554 +#: ../lib/modules/inetOrgPerson.inc:562 +msgid "Administration" +msgstr "Administrácia" + +#: ../lib/modules/posixGroup.inc:412 ../lib/modules/nisnetgroup.inc:115 +#: ../lib/modules/groupOfNames.inc:101 +msgid "Administrators group" +msgstr "Skupina Administrators" + +#: ../templates/config/conftypes.php:300 ../lib/modules/posixAccount.inc:243 +msgid "Advanced options" +msgstr "Pokročilé voľby" + +#: ../lib/modules/eduPerson.inc:98 ../lib/modules/eduPerson.inc:102 +#: ../lib/modules/eduPerson.inc:174 ../lib/modules/eduPerson.inc:218 +#: ../lib/modules/eduPerson.inc:325 ../lib/modules/eduPerson.inc:770 +msgid "Affiliations" +msgstr "Vzťahy" + +#: ../lib/modules/sambaSamAccount.inc:542 +msgid "Alaska" +msgstr "Aljaška" + +#: ../lib/modules/sambaDomain.inc:211 ../lib/modules/sambaDomain.inc:212 +msgid "Algorithmic RID base is not a number!" +msgstr "Algoritmický základ RID nie je číslo!" + +#: ../lib/modules/customFields.inc:64 ../lib/modules/customFields.inc:429 +#: ../lib/modules/customFields.inc:471 ../lib/modules/aliasEntry.inc:38 +msgid "Alias" +msgstr "Alias" + +#: ../lib/types/mailAlias.inc:141 ../lib/types/alias.inc:141 +#, php-format +msgid "Alias count: %s" +msgstr "Počet aliasov: %s" + +#: ../lib/types/alias.inc:62 +msgid "Alias entries" +msgstr "Položky aliasov" + +#: ../lib/modules/nisMailAlias.inc:114 ../lib/modules/nisMailAlias.inc:115 +msgid "Alias is empty or invalid!" +msgstr "Alias je neplatný alebo prázdny!" + +#: ../lib/types/mailAlias.inc:91 ../lib/modules/nisMailAlias.inc:70 +#: ../lib/modules/nisMailAlias.inc:90 ../lib/modules/nisMailAlias.inc:104 +#: ../lib/modules/nisMailAlias.inc:152 ../lib/modules/nisMailAlias.inc:377 +msgid "Alias name" +msgstr "Meno aliasu" + +#: ../lib/types/alias.inc:92 ../lib/modules/customScripts.inc:45 +#: ../lib/modules/uidObject.inc:52 ../lib/modules/aliasEntry.inc:54 +#: ../lib/modules/aliasEntry.inc:62 ../lib/modules/aliasEntry.inc:70 +#: ../lib/modules/aliasEntry.inc:91 ../lib/modules/aliasEntry.inc:100 +#: ../lib/modules/aliasEntry.inc:228 +msgid "Aliased entry" +msgstr "Aliasovaná položka" + +#: ../templates/schema/schema.php:226 ../lib/types/alias.inc:53 +msgid "Aliases" +msgstr "Aliasy" + +#: ../lib/lists.inc:695 +#, php-format +msgid "All accounts (%s)" +msgstr "Všetky účty (%s)" + +#: ../templates/initsuff.php:157 +msgid "All changes were successful." +msgstr "Všetky zmeny boli úspešné." + +#: ../lib/lists.inc:694 +#, php-format +msgid "All selected accounts (%s)" +msgstr "Všetky zvolené účty (%s)" + +#: ../lib/modules/sambaDomain.inc:110 ../lib/modules/sambaDomain.inc:187 +#: ../lib/modules/sambaDomain.inc:301 ../lib/modules/sambaDomain.inc:661 +msgid "Allow machine password changes" +msgstr "Povoliť zmeny hesiel strojov" + +#: ../lib/modules/customFields.inc:128 ../lib/modules/customFields.inc:132 +#: ../lib/modules/customFields.inc:2361 +msgid "Allow multiple values" +msgstr "Povoliť viac hodnôt" + +#: ../lib/types/ppolicyType.inc:90 ../lib/modules/ppolicy.inc:125 +#: ../lib/modules/ppolicy.inc:148 ../lib/modules/ppolicy.inc:287 +#: ../lib/modules/ppolicy.inc:498 +msgid "Allow password change" +msgstr "Povoliť zmenu hesla" + +#: ../lib/modules/sambaSamAccount.inc:222 +#: ../lib/modules/sambaSamAccount.inc:341 +#: ../lib/modules/sambaSamAccount.inc:1474 +#: ../lib/modules/sambaSamAccount.inc:1890 +msgid "Allow terminal server login" +msgstr "Povoliť prihlásenie k terminálovému serveru" + +#: ../lib/modules/asteriskAccount.inc:194 +#: ../lib/modules/asteriskAccount.inc:287 +#: ../lib/modules/asteriskAccount.inc:351 +#: ../lib/modules/asteriskAccount.inc:541 +#: ../lib/modules/asteriskAccount.inc:878 +#: ../lib/modules/asteriskAccount.inc:1211 +msgid "Allowed codec" +msgstr "Povolené kodeky" + +#: ../templates/config/mainmanage.php:202 ../lib/types/user.inc:95 +#: ../help/help.inc:146 +msgid "Allowed hosts" +msgstr "Povolené stroje" + +#: ../lib/modules/sambaSamAccount.inc:1312 +#: ../lib/modules/sambaSamAccount.inc:1313 +msgid "Allowed workstations" +msgstr "Povolené pracovné stanice" + +#: ../lib/modules/customFields.inc:133 +msgid "Allows to enter multiple values for this attribute." +msgstr "Povoľuje zadanie viacerých hodnôt tohoto atribútu." + +#: ../lib/modules/customFields.inc:129 +msgid "Allows to select multiple values from the list." +msgstr "Povoľuje výber viacerých hodnôt zo zoznamu." + +#: ../lib/modules/sambaSamAccount.inc:557 +msgid "Almaty, Dhaka, Colombo" +msgstr "Alma-ata, Dháka, Kolombo" + +#: ../lib/modules/qmailUser.inc:196 ../lib/modules/qmailUser.inc:264 +#: ../lib/modules/qmailUser.inc:393 ../lib/modules/qmailUser.inc:443 +#: ../lib/modules/qmailUser.inc:513 ../lib/modules/qmailUser.inc:1187 +#: ../lib/modules/qmailGroup.inc:124 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/qmailGroup.inc:240 ../lib/modules/qmailGroup.inc:363 +#: ../lib/modules/qmailGroup.inc:415 ../lib/modules/qmailGroup.inc:477 +#: ../lib/modules/qmailGroup.inc:1054 +msgid "Alternate address" +msgstr "Alternatívna adresa" + +#: ../lib/modules.inc:1066 ../lib/modules.inc:1161 ../help/help.inc:192 +msgid "Alternate recipient" +msgstr "Alternatívny príjemca" + +#: ../lib/modules/kolabUser.inc:50 +msgid "Always accept" +msgstr "Vždy prijať" + +#: ../lib/modules/kolabUser.inc:51 +msgid "Always reject" +msgstr "Vždy odmietnuť" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1018 +#, php-format +msgid "An attribute (%s) was modified and is highlighted below." +msgstr "Atribút (%s) bol zmenený a je zvýraznený nižšie." + +#: ../lib/modules/sudoRole.inc:222 +msgid "An sudo role with this name already exists. Please choose another name." +msgstr "Rola sudo s týmto menom už existuje. Prosím, zvoľte iné meno." + +#: ../lib/modules/passwordSelfReset.inc:76 +#: ../lib/modules/passwordSelfReset.inc:155 +#: ../lib/modules/passwordSelfReset.inc:163 +#: ../lib/modules/passwordSelfReset.inc:247 +#: ../lib/modules/passwordSelfReset.inc:289 +#: ../lib/modules/passwordSelfReset.inc:394 +#: ../lib/modules/passwordSelfReset.inc:540 +#: ../lib/modules/passwordSelfReset.inc:871 +msgid "Answer" +msgstr "Odpoveď" + +#: ../lib/modules/kolabUser.inc:255 ../lib/modules/kolabUser.inc:635 +#: ../lib/modules/kolabUser.inc:730 ../lib/modules/kolabUser.inc:733 +msgid "Anyone" +msgstr "Všetci" + +#: ../lib/modules/asteriskExtension.inc:103 +#: ../lib/modules/asteriskExtension.inc:158 +#: ../lib/modules/asteriskExtension.inc:359 +#: ../lib/modules/asteriskExtension.inc:816 +msgid "Application" +msgstr "Aplikácia" + +#: ../lib/modules/asteriskExtension.inc:87 +#: ../lib/modules/asteriskExtension.inc:165 +#: ../lib/modules/asteriskExtension.inc:367 +#: ../lib/modules/asteriskExtension.inc:817 +msgid "Application data" +msgstr "Dáta aplikácie" + +#: ../lib/modules/zarafaUser.inc:152 ../lib/modules/zarafaUser.inc:156 +#: ../lib/modules/zarafaUser.inc:204 ../lib/modules/zarafaUser.inc:356 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/zarafaUser.inc:586 +#: ../lib/modules/zarafaUser.inc:989 ../lib/modules/zarafaUser.inc:1302 +#: ../lib/modules/zarafaUser.inc:1383 +msgid "Archive servers" +msgstr "Archívne servery" + +#: ../lib/modules/zarafaUser.inc:584 +msgid "Archiving" +msgstr "Archivovanie" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:53 +msgid "Are you sure you want to permanently delete these objects?" +msgstr "Naozaj chcete trvalo odstrániť tieto objekty?" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:107 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:51 +msgid "Are you sure you want to permanently delete this object?" +msgstr "Naozaj chcete trvalo odstrániť tento objekt?" + +#: ../lib/modules/imapAccess.inc:118 +msgid "Ask" +msgstr "Spýtať sa" + +#: ../lib/modules/eduPerson.inc:135 ../lib/modules/eduPerson.inc:139 +#: ../lib/modules/eduPerson.inc:211 ../lib/modules/eduPerson.inc:227 +#: ../lib/modules/eduPerson.inc:452 ../lib/modules/eduPerson.inc:775 +msgid "Assurance profiles" +msgstr "" + +#: ../lib/modules/eduPerson.inc:136 ../lib/modules/eduPerson.inc:140 +msgid "" +"Assurance profiles are the set of standards that are met by an identity " +"assertion." +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:66 +msgid "Asterisk" +msgstr "Asterisk" + +#: ../lib/modules/asteriskAccount.inc:123 +msgid "Asterisk AMA (Automated Message Accounting) flags." +msgstr "Príznaky Asterisk AMA (Automated Message Accounting)." + +#: ../lib/modules/asteriskExtension.inc:72 +msgid "Asterisk extension" +msgstr "Rozšírenie Asterisk" + +#: ../lib/types/asteriskExt.inc:56 +msgid "Asterisk extensions" +msgstr "Rozšírenia Asterisk" + +#: ../lib/types/asteriskExt.inc:65 +msgid "Asterisk extensions entries" +msgstr "Položky rozšírení Asterix" + +#: ../lib/modules/asteriskAccount.inc:114 +#: ../lib/modules/asteriskAccount.inc:241 +#: ../lib/modules/asteriskAccount.inc:311 +msgid "Asterisk realm" +msgstr "Autentifikačná doména Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:64 +msgid "Asterisk voicemail" +msgstr "Asterisk voicemail" + +#: ../lib/modules/asteriskVoicemail.inc:111 +msgid "Asterisk voicemail context." +msgstr "kontext Asterisk voicemail." + +#: ../lib/modules/sambaSamAccount.inc:547 +msgid "Atlantic time (Canada), Caracas" +msgstr "Atlantický čas (Kanada), Karakas" + +#: ../templates/3rdParty/pla/lib/import_functions.php:455 +msgid "Attempting to delete a non existent attribute" +msgstr "Pokúšate sa odstrániť neexistujúci atribút" + +#: ../templates/3rdParty/pla/lib/import_functions.php:466 +msgid "Attempting to replace a non existant attribute" +msgstr "Pokúšate sa nahradiť neexistujúci atribút" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Attribute" +msgstr "Atribút" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:137 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:72 +msgid "Attribute doesn't exist" +msgstr "Atribút neexistuje" + +#: ../lib/modules/customFields.inc:80 ../lib/modules/customFields.inc:879 +#: ../lib/modules/customFields.inc:1293 +msgid "Attribute name" +msgstr "Názov atribúta" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:117 +msgid "Attribute not available" +msgstr "Atribút nie je dostupný" + +#: ../templates/3rdParty/pla/lib/import_functions.php:535 +msgid "Attribute not valid" +msgstr "Atribút nie je platný" + +#: ../templates/schema/schema.php:69 ../templates/schema/schema.php:70 +msgid "Attribute types" +msgstr "Typy atribútov" + +#: ../lib/modules/selfRegistration.inc:70 +#: ../lib/modules/selfRegistration.inc:117 +msgid "Attributes" +msgstr "Atribúty" + +#: ../lib/modules/sambaSamAccount.inc:563 +msgid "Auckland, Fiji, Kamchatka" +msgstr "Auckland, Fidži, Kamčatka" + +#: ../lib/modules/asteriskAccount.inc:115 +msgid "" +"Authentication realm for Asterisk server (default: asterisk). This value set " +"in sip.conf (option: \"realm\")." +msgstr "" +"Autentifikačná doména (realm) pre server Asterisk (predvolené: asterisk). " +"Táto hodnota sa nastavuje v sip.conf (voľba: „realm”)." + +#: ../lib/modules/asteriskAccount.inc:223 +msgid "Authentication user for outbound proxies." +msgstr "Overenie používateľa pre odchádzajúce proxy." + +#: ../lib/modules/authorizedServiceObject.inc:64 +#: ../lib/modules/authorizedServiceObject.inc:74 +#: ../lib/modules/authorizedServiceObject.inc:78 +#: ../lib/modules/authorizedServiceObject.inc:98 +#: ../lib/modules/authorizedServiceObject.inc:105 +#: ../lib/modules/authorizedServiceObject.inc:109 +#: ../lib/modules/authorizedServiceObject.inc:167 +#: ../lib/modules/authorizedServiceObject.inc:292 +msgid "Authorized Services" +msgstr "Autorizované služby" + +#: ../lib/modules/authorizedServiceObject.inc:122 +msgid "Authorized services are invalid." +msgstr "Autorizované služby nie sú platné." + +#: ../lib/modules/customScripts.inc:133 +msgid "Automatical scripts" +msgstr "Automatické skripty" + +#: ../lib/modules/puppetClient.inc:101 ../lib/modules/puppetClient.inc:153 +#: ../lib/modules/qmailUser.inc:124 ../lib/modules/qmailUser.inc:256 +#: ../lib/modules/zarafaContact.inc:80 ../lib/modules/zarafaContact.inc:572 +#: ../lib/modules/eduPerson.inc:143 ../lib/modules/eduPerson.inc:148 +#: ../lib/modules/sambaSamAccount.inc:158 +#: ../lib/modules/sambaSamAccount.inc:389 ../lib/modules/zarafaUser.inc:129 +#: ../lib/modules/zarafaUser.inc:1369 ../lib/modules/shadowAccount.inc:99 +#: ../lib/modules/shadowAccount.inc:190 ../lib/modules/customFields.inc:694 +#: ../lib/modules/qmailGroup.inc:94 ../lib/modules/qmailGroup.inc:225 +#: ../lib/modules/authorizedServiceObject.inc:82 +#: ../lib/modules/authorizedServiceObject.inc:110 +#: ../lib/modules/passwordSelfReset.inc:139 ../lib/modules/hostObject.inc:76 +#: ../lib/modules/hostObject.inc:94 +msgid "Automatically add this extension" +msgstr "Automaticky pridať toto rozšírenie" + +#: ../lib/types/automountType.inc:48 ../lib/types/automountType.inc:57 +msgid "Automount entries" +msgstr "Položky automount" + +#: ../lib/types/automountType.inc:87 ../lib/modules/automount.inc:43 +#: ../lib/modules/automount.inc:61 ../lib/modules/automount.inc:81 +#: ../lib/modules/automount.inc:97 ../lib/modules/automount.inc:107 +#: ../lib/modules/automount.inc:127 ../lib/modules/automount.inc:194 +msgid "Automount entry" +msgstr "Položka automount" + +#: ../lib/modules/automount.inc:107 ../lib/modules/automount.inc:108 +msgid "" +"Automount entry contains invalid characters. Only ASCII characters are " +"allowed." +msgstr "" +"Položka automount obsahuje neplatné znaky. Povolené sú len znaky ASCII." + +#: ../lib/types/automountType.inc:215 +#, php-format +msgid "Automount entry count: %s" +msgstr "Počet položiek automount: %s" + +#: ../lib/modules/qmailUser.inc:51 +msgid "Autoreply" +msgstr "Automatická odpoveď" + +#: ../lib/modules/qmailUser.inc:109 ../lib/modules/qmailUser.inc:232 +#: ../lib/modules/qmailUser.inc:343 ../lib/modules/qmailUser.inc:417 +#: ../lib/modules/qmailUser.inc:632 ../lib/modules/qmailUser.inc:1194 +msgid "Autoreply text" +msgstr "Text automatickej odpovede" + +#: ../templates/config/conftypes.php:215 ../lib/modules/customScripts.inc:54 +msgid "Available account types" +msgstr "Dostupné typy účtov" + +#: ../lib/modules/customScripts.inc:55 ../lib/modules/customScripts.inc:68 +msgid "Available actions" +msgstr "Dostupné akcie" + +#: ../lib/modules/posixAccount.inc:1350 ../lib/modules/posixAccount.inc:1383 +#: ../lib/modules/windowsUser.inc:728 ../lib/modules/nisnetgroup.inc:379 +#: ../lib/modules/groupOfNamesUser.inc:113 +msgid "Available groups" +msgstr "Dostupné skupiny" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:93 +msgid "Available members" +msgstr "Dostupní členovia" + +#: ../templates/config/confmodules.php:304 +msgid "Available modules" +msgstr "Dostupné moduly" + +#: ../lib/modules/posixGroup.inc:263 ../lib/modules/asteriskExtension.inc:456 +msgid "Available users" +msgstr "Dostupní používatelia" + +#: ../lib/modules/sambaSamAccount.inc:1315 +msgid "Available workstations" +msgstr "Dostupné pracovné stanice" + +#: ../lib/modules/sambaSamAccount.inc:550 +msgid "Azores, Cape Verde Islands" +msgstr "Azora, Kapverdy" + +#: ../lib/modules/dhcp_settings.inc:94 +msgid "B-Node (0x01)" +msgstr "B-Node (0x01)" + +#: ../templates/massBuildAccounts.php:276 ../lib/modules/zarafaContact.inc:425 +#: ../lib/modules/posixGroup.inc:308 ../lib/modules/zarafaGroup.inc:494 +#: ../lib/modules/device.inc:309 ../lib/modules/sambaSamAccount.inc:1332 +#: ../lib/modules/sambaSamAccount.inc:1616 +#: ../lib/modules/posixAccount.inc:1423 ../lib/modules/posixAccount.inc:1497 +#: ../lib/modules/zarafaUser.inc:952 ../lib/modules/zarafaUser.inc:1001 +#: ../lib/modules/windowsUser.inc:772 ../lib/modules/nisnetgroup.inc:393 +#: ../lib/modules/inetOrgPerson.inc:2145 ../lib/modules/inetOrgPerson.inc:2221 +#: ../lib/modules/inetOrgPerson.inc:2306 ../lib/modules/qmailGroup.inc:858 +#: ../lib/modules/windowsGroup.inc:466 ../lib/modules/groupOfNames.inc:332 +#: ../lib/modules/groupOfNames.inc:446 +msgid "Back" +msgstr "Späť" + +#: ../lib/types/dhcp.inc:47 +msgid "Back to DHCP list" +msgstr "Späť na zoznam DHCP" + +#: ../lib/types/nisObjectType.inc:30 +msgid "Back to NIS object list" +msgstr "Späť na zoznam objektov NIS" + +#: ../lib/baseType.inc:48 +msgid "Back to account list" +msgstr "Späť na zoznam účtov" + +#: ../lib/types/zarafaAddressListType.inc:44 +msgid "Back to address list" +msgstr "Späť na zoznam adries" + +#: ../lib/types/mailAlias.inc:44 ../lib/types/alias.inc:44 +msgid "Back to alias list" +msgstr "Späť na zoznam aliasov" + +#: ../lib/types/automountType.inc:35 +msgid "Back to automount list" +msgstr "Späť na zoznam automount" + +#: ../lib/types/smbDomain.inc:44 +msgid "Back to domain list" +msgstr "Späť na zoznam domén" + +#: ../lib/types/asteriskExt.inc:47 +msgid "Back to extensions list" +msgstr "Späť na zoznam rozšírení" + +#: ../templates/lists/userlink.php:63 ../lib/types/gon.inc:44 +#: ../lib/types/zarafaDynamicGroupType.inc:44 ../lib/types/group.inc:45 +#: ../lib/types/netgroup.inc:44 +msgid "Back to group list" +msgstr "Späť na zoznam skupín" + +#: ../lib/types/host.inc:44 +msgid "Back to host list" +msgstr "Späť na zoznam strojov" + +#: ../templates/delete.php:289 +msgid "Back to list" +msgstr "Späť na zoznam" + +#: ../templates/config/mainmanage.php:163 ../templates/config/index.php:79 +#: ../templates/config/index.php:133 ../templates/config/conflogin.php:117 +#: ../templates/config/conflogin.php:196 ../templates/config/mainlogin.php:122 +#: ../templates/config/mainlogin.php:176 +msgid "Back to login" +msgstr "Späť na prihlásenie" + +#: ../lib/types/ppolicyType.inc:30 +msgid "Back to policy list" +msgstr "Späť na zoznam politík" + +#: ../templates/config/profmanage.php:188 +#: ../templates/config/profmanage.php:324 +msgid "Back to profile login" +msgstr "Späť na prihlásenie k profilom" + +#: ../lib/types/sudo.inc:30 +msgid "Back to sudo role list" +msgstr "Späť na zoznam rolí sudo" + +#: ../lib/types/user.inc:44 +msgid "Back to user list" +msgstr "Späť na zoznam používateľov" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:64 +msgid "Back up" +msgstr "Späť hore" + +#: ../templates/serverInfo.php:163 +msgid "Backends" +msgstr "Backendy" + +#: ../lib/modules/sudoRole.inc:130 +msgid "Backup script" +msgstr "Zálohovací skript" + +#: ../lib/modules/sambaSamAccount.inc:554 +msgid "Baghdad, Riyadh, Moscow" +msgstr "Bagdád, Rijád, Moskva" + +#: ../lib/modules/sambaSamAccount.inc:558 +msgid "Bangkok, Hanoi, Jakarta" +msgstr "Bangkok, Hanoj, Jakarta" + +#: ../lib/types/zarafaAddressListType.inc:93 +#: ../lib/types/zarafaDynamicGroupType.inc:94 +#: ../lib/modules/zarafaDynamicGroup.inc:80 +#: ../lib/modules/zarafaDynamicGroup.inc:94 +#: ../lib/modules/zarafaDynamicGroup.inc:145 +#: ../lib/modules/zarafaDynamicGroup.inc:163 +#: ../lib/modules/zarafaDynamicGroup.inc:191 +#: ../lib/modules/zarafaDynamicGroup.inc:224 +#: ../lib/modules/zarafaDynamicGroup.inc:466 +#: ../lib/modules/zarafaAddressList.inc:68 +#: ../lib/modules/zarafaAddressList.inc:82 +#: ../lib/modules/zarafaAddressList.inc:121 +#: ../lib/modules/zarafaAddressList.inc:137 +#: ../lib/modules/zarafaAddressList.inc:162 +#: ../lib/modules/zarafaAddressList.inc:191 +#: ../lib/modules/zarafaAddressList.inc:335 +msgid "Base" +msgstr "Základ" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:142 +#: ../templates/3rdParty/pla/htdocs/export_form.php:31 +msgid "Base (base dn only)" +msgstr "Základ (len základný dn)" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:121 +#: ../templates/3rdParty/pla/lib/QueryRender.php:506 +#: ../templates/3rdParty/pla/htdocs/export_form.php:59 +msgid "Base DN" +msgstr "Základný DN" + +#: ../templates/config/confmodules.php:212 ../help/help.inc:138 +msgid "Base module" +msgstr "Základný modul" + +#: ../templates/pdfedit/pdfpage.php:444 +msgid "Beginning" +msgstr "Začínanie" + +#: ../lib/modules/sambaSamAccount.inc:559 +msgid "Beijing, Perth, Singapore" +msgstr "Peking, Pert, Singapur" + +#: ../templates/3rdParty/pla/lib/PageRender.php:644 +#: ../templates/3rdParty/pla/lib/PageRender.php:648 +msgid "Binary value" +msgstr "Binárna hodnota" + +#: ../templates/serverInfo.php:286 ../templates/serverInfo.php:375 +msgid "Bind" +msgstr "Zviazať" + +#: ../templates/config/confmain.php:426 +msgid "Bind password" +msgstr "Heslo väzby (bind)" + +#: ../templates/config/confmain.php:424 +msgid "Bind user" +msgstr "Používateľ väzby (bind)" + +#: ../help/help.inc:122 +msgid "Bind user and password" +msgstr "Používateľ a heslo väzby (bind)" + +#: ../lib/modules/quota.inc:53 ../lib/modules/systemQuotas.inc:94 +msgid "Block hard quota" +msgstr "Pevná kvóta blokov" + +#: ../lib/modules/quota.inc:53 ../lib/modules/quota.inc:54 +#: ../lib/modules/systemQuotas.inc:94 ../lib/modules/systemQuotas.inc:95 +msgid "" +"Block hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Pevná kvóta blokov obsahuje neplatné znaky. Dovolené sú len prirodzené čísla." + +#: ../lib/modules/quota.inc:59 ../lib/modules/systemQuotas.inc:100 +msgid "Block quota" +msgstr "Kvóta blokov" + +#: ../lib/modules/quota.inc:51 ../lib/modules/systemQuotas.inc:92 +msgid "Block soft quota" +msgstr "Mäkká kvóta blokov" + +#: ../lib/modules/quota.inc:51 ../lib/modules/quota.inc:52 +#: ../lib/modules/systemQuotas.inc:92 ../lib/modules/systemQuotas.inc:93 +msgid "" +"Block soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Mäkká kvóta blokov obsahuje neplatné znaky. Dovolené sú len prirodzené čísla." + +#: ../lib/modules/quota.inc:59 ../lib/modules/quota.inc:60 +#: ../lib/modules/systemQuotas.inc:100 ../lib/modules/systemQuotas.inc:101 +msgid "Block soft quota must be smaller than block hard quota." +msgstr "Mäkká kvóta blokov musí byť menšia ako pevná kvóta blokov." + +#: ../lib/modules/qmailGroup.inc:65 ../lib/modules/qmailGroup.inc:136 +#: ../lib/modules/qmailGroup.inc:140 ../lib/modules/qmailGroup.inc:256 +#: ../lib/modules/qmailGroup.inc:368 ../lib/modules/qmailGroup.inc:424 +#: ../lib/modules/qmailGroup.inc:515 ../lib/modules/qmailGroup.inc:1056 +msgid "Bounce admin email" +msgstr "Email administrátora odmietnutí" + +#: ../lib/modules/sambaSamAccount.inc:548 +msgid "Brazil, Buenos Aires" +msgstr "Brazília, Buenos Aires" + +#: ../templates/3rdParty/pla/htdocs/copy.php:53 +msgid "Building snapshot of tree to copy" +msgstr "Zostavovanie snímky stromu na kopírovanie" + +#: ../lib/modules/sambaGroupMapping.inc:71 +msgid "Builtin group" +msgstr "Zabudovaná skupiny" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:63 +msgid "Bulk edit the following DNs" +msgstr "Hromadná úprava nasledujúcich DN" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:48 +msgid "Bulk update the following DNs" +msgstr "Hromadná aktualizácia nasledujúcich DN" + +#: ../lib/modules/inetOrgPerson.inc:97 ../lib/modules/inetOrgPerson.inc:145 +#: ../lib/modules/inetOrgPerson.inc:215 ../lib/modules/inetOrgPerson.inc:344 +#: ../lib/modules/inetOrgPerson.inc:438 ../lib/modules/inetOrgPerson.inc:668 +#: ../lib/modules/inetOrgPerson.inc:832 ../lib/modules/inetOrgPerson.inc:836 +#: ../lib/modules/inetOrgPerson.inc:1932 ../lib/modules/inetOrgPerson.inc:2373 +#: ../lib/modules/inetOrgPerson.inc:3121 +msgid "Business category" +msgstr "Obchodná kategória" + +#: ../lib/modules/inetOrgPerson.inc:833 ../lib/modules/inetOrgPerson.inc:837 +msgid "Business category (e.g. Administration, IT-Services, Manangement, ...)" +msgstr "Obchodná kategória (napr. Administrácia, Služby IT, Manažment, ...)" + +#: ../help/help.inc:155 +msgid "" +"By default LAM will show all accounts that match the selected account " +"modules." +msgstr "" +"Predvolene bude LAM zobrazovať všetky účty, ktoré vyhovujú zvoleným modulom " +"účtu." + +#: ../lib/modules/customScripts.inc:82 +msgid "" +"By default, LAM will show the executed command along with any output of it. " +"If you want to hide the command and only show the output then activate this " +"option." +msgstr "" +"LAM bude predvolene bude ukazovať vykonávané príkazy spolu s ich celým " +"výstupom. Ak chcete skryť príkazy a zobraziť len ich výstup, aktivujte túto " +"voľbu." + +#: ../templates/serverInfo.php:253 ../templates/serverInfo.php:259 +msgid "Bytes sent" +msgstr "odoslaných bajtov" + +#: ../templates/masscreate.php:247 +msgid "CSV file" +msgstr "Súbor CVS" + +#: ../help/help.inc:101 +msgid "Cache timeout" +msgstr "Časový limit cache" + +#: ../lib/modules/asteriskAccount.inc:126 +#: ../lib/modules/asteriskAccount.inc:253 +#: ../lib/modules/asteriskAccount.inc:334 +#: ../lib/modules/asteriskAccount.inc:417 +#: ../lib/modules/asteriskAccount.inc:710 +#: ../lib/modules/asteriskAccount.inc:1194 +msgid "Call groups" +msgstr "Skupiny volajúcich" + +#: ../lib/modules/asteriskAccount.inc:94 +#: ../lib/modules/asteriskAccount.inc:328 +#: ../lib/modules/asteriskAccount.inc:366 +#: ../lib/modules/asteriskAccount.inc:655 +#: ../lib/modules/asteriskAccount.inc:1188 +msgid "Caller ID" +msgstr "ID volajúceho" + +#: ../lib/modules/sambaSamAccount.inc:296 +#: ../lib/modules/sambaSamAccount.inc:299 +#: ../lib/modules/sambaSamAccount.inc:302 +#: ../lib/modules/sambaSamAccount.inc:308 ../lib/modules/posixAccount.inc:495 +#: ../lib/modules/windowsUser.inc:184 ../lib/modules/windowsUser.inc:187 +#: ../lib/modules/sambaGroupMapping.inc:365 +#: ../lib/modules/shadowAccount.inc:171 ../lib/modules/shadowAccount.inc:175 +#: ../lib/modules/shadowAccount.inc:179 ../lib/modules/shadowAccount.inc:183 +#: ../lib/modules/groupOfNamesUser.inc:54 +msgid "Can be left empty." +msgstr "Možno ponechať prázdne." + +#: ../lib/modules/asteriskAccount.inc:214 +#: ../lib/modules/asteriskAccount.inc:297 +#: ../lib/modules/asteriskAccount.inc:356 +#: ../lib/modules/asteriskAccount.inc:577 +#: ../lib/modules/asteriskAccount.inc:927 +#: ../lib/modules/asteriskAccount.inc:1216 +msgid "Can call forward" +msgstr "Môže presmerovať hovory" + +#: ../templates/lists/changePassword.php:312 +#: ../templates/lists/changePassword.php:341 +#: ../templates/lists/changePassword.php:381 +#: ../templates/lists/changePassword.php:412 ../templates/ou_edit.php:121 +#: ../templates/config/profmanage.php:253 +#: ../templates/config/profmanage.php:265 +#: ../templates/config/profmanage.php:274 +#: ../templates/config/profmanage.php:291 +#: ../templates/config/profmanage.php:302 +#: ../templates/config/mainmanage.php:261 +#: ../templates/config/confmodules.php:227 +#: ../templates/config/confmain.php:452 +#: ../templates/config/moduleSettings.php:238 +#: ../templates/config/conftypes.php:321 ../templates/pdfedit/pdfpage.php:603 +#: ../templates/pdfedit/pdfmain.php:195 ../templates/pdfedit/pdfmain.php:202 +#: ../templates/pdfedit/pdfmain.php:208 ../templates/delete.php:121 +#: ../templates/profedit/profilepage.php:241 +#: ../templates/profedit/profilemain.php:197 +#: ../templates/profedit/profilemain.php:203 +#: ../templates/profedit/profilemain.php:209 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:197 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:83 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:136 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:121 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:119 +#: ../templates/initsuff.php:189 ../lib/types/automountType.inc:234 +#: ../lib/types/user.inc:304 ../lib/modules/mitKerberos.inc:691 +#: ../lib/modules/qmailUser.inc:914 ../lib/modules/zarafaContact.inc:380 +#: ../lib/modules/windowsHost.inc:219 ../lib/modules/zarafaGroup.inc:449 +#: ../lib/modules/device.inc:260 ../lib/modules/sambaSamAccount.inc:1407 +#: ../lib/modules/sambaSamAccount.inc:1456 +#: ../lib/modules/sambaSamAccount.inc:1542 ../lib/modules/zarafaUser.inc:907 +#: ../lib/modules/kolabUser.inc:455 ../lib/modules/shadowAccount.inc:469 +#: ../lib/modules/nisnetgroup.inc:483 ../lib/modules/inetOrgPerson.inc:2186 +#: ../lib/modules/freeRadius.inc:478 ../lib/modules/aliasEntry.inc:140 +#: ../lib/modules/aliasEntry.inc:160 ../lib/modules/qmailGroup.inc:816 +#: ../lib/modules/heimdalKerberos.inc:592 ../lib/modules/windowsGroup.inc:417 +#: ../lib/modules/groupOfNames.inc:283 ../lib/modules/groupOfNames.inc:397 +#: ../lib/modules/nisMailAlias.inc:284 ../lib/lists.inc:704 +#: ../lib/lists.inc:785 ../lib/modules.inc:1200 +msgid "Cancel" +msgstr "Zrušiť" + +#: ../templates/login.php:558 ../templates/login.php:616 +#: ../templates/login.php:621 ../lib/modules/selfRegistration.inc:588 +msgid "Cannot connect to specified LDAP server. Please try again." +msgstr "Nemožno sa pripojiť k zadanému serveru LDAP. Prosím, skúste znova." + +#: ../templates/login.php:303 ../lib/config.inc:1474 +msgid "Cannot open config file!" +msgstr "Nemožno otvoriť konfiguračný súbor!" + +#: ../lib/modules/imapAccess.inc:167 +msgid "Cannot update quota." +msgstr "Nemožno zmeniť kvótu." + +#: ../lib/modules/zarafaUser.inc:113 ../lib/modules/zarafaUser.inc:200 +#: ../lib/modules/zarafaUser.inc:288 ../lib/modules/zarafaUser.inc:405 +#: ../lib/modules/zarafaUser.inc:447 ../lib/modules/zarafaUser.inc:577 +#: ../lib/modules/zarafaUser.inc:1298 +msgid "Capacity" +msgstr "kapacita" + +#: ../lib/modules/inetOrgPerson.inc:144 ../lib/modules/inetOrgPerson.inc:340 +#: ../lib/modules/inetOrgPerson.inc:592 ../lib/modules/inetOrgPerson.inc:662 +#: ../lib/modules/inetOrgPerson.inc:856 ../lib/modules/inetOrgPerson.inc:1907 +#: ../lib/modules/inetOrgPerson.inc:2375 ../lib/modules/inetOrgPerson.inc:3099 +msgid "Car license" +msgstr "Vodičský preukaz" + +#: ../lib/modules/sambaSamAccount.inc:552 +msgid "Central Europe Time, Paris, Berlin" +msgstr "Stredoeurópsky čas, Paríž, Berlín" + +#: ../lib/modules/sambaSamAccount.inc:545 +msgid "Central Time (US & Canada), Mexico City" +msgstr "Centrálny čas (USA & Kanada), Mexiko" + +#: ../templates/pdfedit/pdfpage.php:502 ../templates/pdfedit/pdfpage.php:511 +#: ../lib/modules/mitKerberos.inc:378 ../lib/modules/mitKerberos.inc:389 +#: ../lib/modules/mitKerberos.inc:687 ../lib/modules/qmailUser.inc:654 +#: ../lib/modules/qmailUser.inc:910 ../lib/modules/zarafaContact.inc:218 +#: ../lib/modules/windowsHost.inc:148 ../lib/modules/windowsHost.inc:218 +#: ../lib/modules/zarafaGroup.inc:262 ../lib/modules/device.inc:187 +#: ../lib/modules/sambaSamAccount.inc:1167 +#: ../lib/modules/sambaSamAccount.inc:1452 ../lib/modules/zarafaUser.inc:498 +#: ../lib/modules/zarafaUser.inc:589 ../lib/modules/shadowAccount.inc:346 +#: ../lib/modules/shadowAccount.inc:465 ../lib/modules/inetOrgPerson.inc:2059 +#: ../lib/modules/freeRadius.inc:334 ../lib/modules/freeRadius.inc:474 +#: ../lib/modules/asteriskExtension.inc:229 ../lib/modules/aliasEntry.inc:93 +#: ../lib/modules/qmailGroup.inc:565 ../lib/modules/passwordSelfReset.inc:295 +#: ../lib/modules/heimdalKerberos.inc:316 +#: ../lib/modules/heimdalKerberos.inc:327 +#: ../lib/modules/heimdalKerberos.inc:588 ../lib/modules/groupOfNames.inc:182 +#: ../lib/modules/groupOfNames.inc:204 +msgid "Change" +msgstr "Zmeniť" + +#: ../templates/lists/changePassword.php:218 +msgid "Change Asterisk password" +msgstr "Zmeniť heslo Asterisk" + +#: ../templates/lists/changePassword.php:230 +msgid "Change Asterisk voicemail password" +msgstr "Zmeniť heslo hlasového účtu Asterisk" + +#: ../lib/modules/posixGroup.inc:219 ../lib/modules/posixGroup.inc:451 +msgid "Change GID number of users and hosts" +msgstr "Zmeniť číslo GID používateľov a strojov" + +#: ../templates/lists/changePassword.php:221 +#: ../templates/lists/changePassword.php:224 +msgid "Change Kerberos password" +msgstr "Zmeniť heslo Kerberos" + +#: ../templates/lists/changePassword.php:211 +msgid "Change Samba LM password" +msgstr "Zmeniť heslo Samba LM" + +#: ../templates/lists/changePassword.php:209 +msgid "Change Samba NT password" +msgstr "Zmeniť heslo Samba NT" + +#: ../templates/lists/changePassword.php:206 +msgid "Change Unix password" +msgstr "Zmeniť heslo Unix" + +#: ../templates/lists/changePassword.php:227 +msgid "Change Windows password" +msgstr "Zmeniť heslo Windows" + +#: ../lib/types/user.inc:304 +msgid "Change account status" +msgstr "Zmeniť stav účtu" + +#: ../templates/config/profmanage.php:298 +#: ../templates/config/profmanage.php:301 ../help/help.inc:132 +msgid "Change default profile" +msgstr "Zmeniť predvolený profil" + +#: ../lib/lists.inc:785 +msgid "Change list settings" +msgstr "Zmeniť nastavenia zoznamu" + +#: ../templates/config/mainmanage.php:253 ../help/help.inc:134 +msgid "Change master password" +msgstr "Zmeniť hlavné heslo" + +#: ../templates/lists/changePassword.php:242 +#: ../templates/lists/changePassword.php:309 +#: ../templates/lists/changePassword.php:311 +#: ../templates/lists/changePassword.php:338 +#: ../templates/lists/changePassword.php:340 ../lib/types/user.inc:669 +#: ../help/help.inc:99 +msgid "Change password" +msgstr "Zmeniť heslo" + +#: ../templates/lists/changePassword.php:249 +#: ../templates/lists/changePassword.php:250 +msgid "Change password now?" +msgstr "Zmeniť heslo teraz?" + +#: ../templates/config/confmain.php:260 +msgid "Change passwords" +msgstr "Zmeniť heslá" + +#: ../lib/lists.inc:786 +msgid "Change settings" +msgstr "Zmeniť nastavenia" + +#: ../lib/modules/posixAccount.inc:1041 +msgid "Changed value because only ASCII characters are allowed." +msgstr "Hodnota mzenená, pretože sú poovolené len znaky ASCII." + +#: ../lib/modules/passwordSelfReset.inc:157 +msgid "Charlie" +msgstr "Janko" + +#: ../lib/modules/posixAccount.inc:1284 +msgid "Check home directories" +msgstr "Skontrolovať domovské adresáre" + +#: ../templates/tests/index.php:54 ../lib/tools/tests.inc:112 +msgid "Check if quotas and homedirectories can be managed." +msgstr "Skontrolovať, či možno spravovať kvóty a domovské adresáre." + +#: ../templates/tests/index.php:60 ../lib/tools/tests.inc:118 +msgid "" +"Check if the LDAP schema fits the requirements of the selected account " +"modules." +msgstr "Skontrolovať, či schéma LDAP spĺňa požiadavky na zvolené moduly účtu." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2401 +msgid "Check password" +msgstr "Skontrolvoať heslo" + +#: ../templates/tests/lamdaemonTest.php:87 +msgid "Check quotas" +msgstr "Skontrolovať kvóty" + +#: ../templates/masscreate.php:241 +msgid "" +"Check your input carefully. LAM will only do some basic checks on the upload " +"data." +msgstr "" +"Skontrolujte pozorne svoj vstup. LAM bude robiť len základné kontroly " +"nahrávaných dát." + +#: ../lib/modules/customFields.inc:1976 +msgid "Checkbox" +msgstr "Zaškrtávacie pole" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1224 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1229 +msgid "Children" +msgstr "Potomkovia" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:23 +msgid "Choose entry" +msgstr "Zvoľte položku" + +#: ../lib/modules/imapAccess.inc:83 +msgid "" +"Choose the way how to provide the IMAP admin password. You can use the same " +"password as for the LAM login or LAM will ask you for a password when it is " +"required." +msgstr "" +"Vyberte spôsob, akým poskytnúť heslo administrátora IMAP. Môžete použiť " +"rovnaké heslo ako pre prihlásenie do LAM alebo si LAM heslo vyžiada, keď to " +"bude potrebné." + +#: ../lib/modules/puppetClient.inc:85 ../lib/modules/puppetClient.inc:89 +#: ../lib/modules/puppetClient.inc:133 ../lib/modules/puppetClient.inc:148 +#: ../lib/modules/puppetClient.inc:161 ../lib/modules/puppetClient.inc:264 +#: ../lib/modules/puppetClient.inc:426 +msgid "Classes" +msgstr "Triedy" + +#: ../lib/lists.inc:381 +msgid "Clear filter" +msgstr "Vymazať filter" + +#: ../lib/config.inc:197 +msgid "Click here if you are not directed to the next page." +msgstr "Kliknite tu, ak ste neboli presmerovaný na nasledujúcu stránku." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2349 +msgid "Click to popup a dialog to select a date graphically" +msgstr "Kliknite a vo vyskakovacom kone vyberte dáta graficky" + +#: ../templates/3rdParty/pla/lib/functions.php:2293 +msgid "Click to popup a dialog to select an entry (DN) graphically" +msgstr "Kliknite a vo vyskakovacom kone vyberte položku (DN) graficky" + +#: ../lib/types/user.inc:619 +msgid "Click to switch between thumbnail and original size." +msgstr "Kliknite na prepnutie medzi miniatúrou a originálnou veľkosťou." + +#: ../lib/modules/sambaSamAccount.inc:234 +#: ../lib/modules/sambaSamAccount.inc:368 +#: ../lib/modules/sambaSamAccount.inc:1510 +#: ../lib/modules/sambaSamAccount.inc:1918 +msgid "Client printer is default" +msgstr "Tlačiareň klienta je predvolená" + +#: ../templates/schema/schema.php:199 +msgid "Collective" +msgstr "Spoločný" + +#: ../templates/masscreate.php:278 ../lib/modules/customFields.inc:112 +#: ../lib/modules/customFields.inc:1849 +msgid "Columns" +msgstr "Stĺpce" + +#: ../lib/modules/sambaSamAccount.inc:308 +msgid "" +"Comma separated list of Samba workstations the user is allowed to login. " +"Empty means every workstation." +msgstr "" +"Čiarkou oddelený zoznam pracovných staníc Samba, ku ktorým má používateľ " +"dovolené prihlásiť sa. Prázdne znamneá všetky stanice." + +#: ../lib/modules/authorizedServiceObject.inc:79 +msgid "Comma separated list of services (e.g. sshd, imap, ftp)." +msgstr "Čiarkou oddelený zoznam služieb (napr. sshd,imap,ftp)." + +#: ../lib/types/sudo.inc:80 ../lib/modules/customScripts.inc:135 +msgid "Command" +msgstr "Príkaz" + +#: ../lib/modules/sudoRole.inc:71 ../lib/modules/sudoRole.inc:97 +#: ../lib/modules/sudoRole.inc:146 ../lib/modules/sudoRole.inc:175 +#: ../lib/modules/sudoRole.inc:184 ../lib/modules/sudoRole.inc:318 +#: ../lib/modules/sudoRole.inc:686 +msgid "Commands" +msgstr "Príkazy" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:117 +msgid "Commit" +msgstr "Odoslať" + +#: ../lib/modules/posixAccount.inc:402 +msgid "Common examples are \"@givenname@%sn%\" or \"%givenname%.%sn%\"." +msgstr "Bežné príklady sú „@givenname@%sn%” alebo „%givenname%.%sn%”." + +#: ../lib/modules/posixAccount.inc:111 ../lib/modules/posixAccount.inc:157 +#: ../lib/modules/posixAccount.inc:263 ../lib/modules/posixAccount.inc:388 +#: ../lib/modules/posixAccount.inc:498 ../lib/modules/posixAccount.inc:520 +#: ../lib/modules/posixAccount.inc:1230 ../lib/modules/posixAccount.inc:1623 +#: ../lib/modules/posixAccount.inc:2319 ../lib/modules/inetOrgPerson.inc:90 +#: ../lib/modules/inetOrgPerson.inc:695 ../lib/modules/inetOrgPerson.inc:808 +#: ../lib/modules/inetOrgPerson.inc:1430 ../lib/modules/inetOrgPerson.inc:2370 +#: ../lib/modules/inetOrgPerson.inc:2501 +#: ../lib/modules/asteriskExtension.inc:111 +msgid "Common name" +msgstr "Bežné meno" + +#: ../lib/modules/asteriskExtension.inc:112 +msgid "Common name of the Asterisk extension." +msgstr "Bežné meno rozšírenia Asterisk." + +#: ../templates/serverInfo.php:335 ../templates/serverInfo.php:396 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1172 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:60 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:39 +msgid "Compare" +msgstr "Porovnať" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:28 +#, php-format +msgid "Compare another DN with %s" +msgstr "Porovnať iný DN s %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1169 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +msgid "Compare this DN with another" +msgstr "Porovnať túto položku DN a inou" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +msgid "Compare with another entry" +msgstr "Porovnať s inou položkou" + +#: ../templates/3rdParty/pla/htdocs/compare.php:42 +msgid "Comparing the following DNs" +msgstr "provnávanie nasledujúcich DN" + +#: ../templates/serverInfo.php:284 ../templates/serverInfo.php:371 +msgid "Completed" +msgstr "Dokončené" + +#: ../templates/serverInfo.php:114 +msgid "Config suffix" +msgstr "Prípona nastavení" + +#: ../templates/config/index.php:50 +msgid "Configuration overview" +msgstr "Prehľad nastavení" + +#: ../lib/modules/qmailUser.inc:119 ../lib/modules/qmailUser.inc:172 +#: ../lib/modules/qmailUser.inc:252 ../lib/modules/qmailUser.inc:385 +#: ../lib/modules/qmailUser.inc:432 ../lib/modules/qmailUser.inc:612 +#: ../lib/modules/qmailUser.inc:1225 +msgid "Configuration type" +msgstr "Typ nastavenia" + +#: ../lib/modules/qmailGroup.inc:89 ../lib/modules/qmailGroup.inc:221 +#: ../lib/modules/qmailGroup.inc:354 ../lib/modules/qmailGroup.inc:404 +#: ../lib/modules/qmailGroup.inc:616 ../lib/modules/qmailGroup.inc:1078 +msgid "Confirm sender" +msgstr "Potvrdiť odosielateľa" + +#: ../lib/modules/selfRegistration.inc:74 +msgid "Confirmation mail settings" +msgstr "Nastavenia potvrdzujúceho emailu" + +#: ../lib/modules/qmailGroup.inc:67 ../lib/modules/qmailGroup.inc:96 +#: ../lib/modules/qmailGroup.inc:145 ../lib/modules/qmailGroup.inc:264 +#: ../lib/modules/qmailGroup.inc:371 ../lib/modules/qmailGroup.inc:584 +#: ../lib/modules/qmailGroup.inc:1057 +msgid "Confirmation text" +msgstr "Potvrdzujúci text" + +#: ../lib/modules/qmailGroup.inc:146 +msgid "" +"Confirmation text that is used if sender-confirmation is used. The usual " +"%HEADER% magic of qmail-reply etc. can be used here." +msgstr "" +"Potvrdzujúci text je použitý, ak je použité potvrdenie odosielateľa. Možno " +"tu použiť zvyčajné kúzlo %HEADER% qmail-reply a pod." + +#: ../templates/config/confmodules.php:384 +msgid "Conflicting module:" +msgstr "Konfliktný modul:" + +#: ../lib/modules/sambaSamAccount.inc:232 +#: ../lib/modules/sambaSamAccount.inc:362 +#: ../lib/modules/sambaSamAccount.inc:1506 +#: ../lib/modules/sambaSamAccount.inc:1908 +msgid "Connect client drives" +msgstr "Pripojiť disky klienta" + +#: ../lib/modules/sambaSamAccount.inc:233 +#: ../lib/modules/sambaSamAccount.inc:365 +#: ../lib/modules/sambaSamAccount.inc:1508 +#: ../lib/modules/sambaSamAccount.inc:1913 +msgid "Connect client printers" +msgstr "Pripojiť tlačiarne klienta" + +#: ../templates/serverInfo.php:230 +msgid "Connection statistics" +msgstr "Štatistiky pripojenia" + +#: ../lib/modules/sambaSamAccount.inc:229 +#: ../lib/modules/sambaSamAccount.inc:1494 +#: ../lib/modules/sambaSamAccount.inc:1901 +msgid "Connection time limit" +msgstr "Časový limit pripojenia" + +#: ../lib/modules/windowsUser.inc:534 ../lib/modules/inetOrgPerson.inc:1702 +msgid "Contact data" +msgstr "Údaje kontaktu" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:721 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1301 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +msgid "Container" +msgstr "Kontajner" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1458 +msgid "Container and object classes" +msgstr "Kontajner a triedy objektov" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:27 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:88 +#: ../templates/3rdParty/pla/htdocs/copy.php:108 +msgid "Copy" +msgstr "Kopírovať" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:32 +#, php-format +msgid "Copy %s to a new object." +msgstr "Kopírovať %s do nového objektu." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1098 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1102 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1103 +msgid "Copy or move this entry" +msgstr "Kopírovať alebo presunúť túto položku" + +#: ../templates/3rdParty/pla/htdocs/copy.php:130 +#, php-format +msgid "Copy successful. DN %s has been created." +msgstr "Kopírovanie úspešné. DN %s bol vytvorený." + +#: ../templates/3rdParty/pla/htdocs/copy.php:48 +msgid "Copying" +msgstr "Kopírovanie" + +#: ../templates/3rdParty/pla/htdocs/import.php:37 +msgid "Could not add object" +msgstr "Nemožno pridať objekt" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:370 +msgid "Could not add the object to the LDAP server." +msgstr "Nemožno pridať objekt do servera LDAP." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:30 +msgid "Could not delete attribute value." +msgstr "Nemožno odstrániť hodnotu atribútu." + +#: ../templates/3rdParty/pla/htdocs/import.php:38 +msgid "Could not delete object" +msgstr "Nemožno odstrániť objekt" + +#: ../templates/3rdParty/pla/htdocs/delete.php:37 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:47 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:73 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:90 +msgid "Could not delete the entry." +msgstr "Nemožno zmazať položku." + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:37 +#, php-format +msgid "Could not fetch binary data from LDAP server for attribute [%s]." +msgstr "Nemožno získať binárne dáta atribútu [%s] zo servera LDAP." + +#: ../templates/3rdParty/pla/lib/functions.php:1946 +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:60 +#, php-format +msgid "Could not fetch jpeg data from LDAP server for attribute [%s]." +msgstr "Nemožno získať dáta JPEG atribútu [%s] zo servera LDAP." + +#: ../templates/3rdParty/pla/htdocs/import.php:41 +msgid "Could not modify object" +msgstr "Nemožno zmeniť objekt" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:528 +msgid "Could not perform ldap_modify operation." +msgstr "Nemožno vykonať operáciu ldap_modify." + +#: ../templates/config/profmanage.php:100 +msgid "Could not rename file!" +msgstr "Nemožno premenovať súbor!" + +#: ../templates/3rdParty/pla/htdocs/import.php:39 +#: ../templates/3rdParty/pla/htdocs/import.php:40 +#: ../templates/3rdParty/pla/htdocs/rename.php:60 +msgid "Could not rename the entry." +msgstr "Nemožno premenovať položku." + +#: ../templates/pdfedit/pdfpage.php:109 +msgid "Could not save PDF structure, access denied." +msgstr "Nemožno uložiť štruktúru PDF, prístup odmietnutý." + +#: ../templates/pdfedit/pdfmain.php:168 +#: ../templates/profedit/profilemain.php:167 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1185 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1189 +#: ../templates/initsuff.php:188 ../lib/modules/sambaSamAccount.inc:1595 +#: ../lib/modules/posixAccount.inc:1476 +msgid "Create" +msgstr "Vytvoriť" + +#: ../lib/lists.inc:497 ../lib/lists.inc:679 ../lib/modules.inc:1315 +#: ../help/help.inc:178 +msgid "Create PDF file" +msgstr "Vytvoriť súbor PDF" + +#: ../templates/massDoUpload.php:202 ../templates/masscreate.php:258 +msgid "Create PDF files" +msgstr "Vytvoriť súbory PDF" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1186 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1190 +msgid "Create a child entry" +msgstr "Vytvoriť podriadenú položku" + +#: ../templates/pdfedit/pdfmain.php:161 +msgid "Create a new PDF structure" +msgstr "Vytvoriť novú štruktúru PDF" + +#: ../templates/profedit/profilemain.php:155 +msgid "Create a new profile" +msgstr "Vytvoriť nový profil" + +#: ../lib/types/dhcp.inc:46 +msgid "Create another DHCP entry" +msgstr "Vytvoriť ďalšiu položku DHCP" + +#: ../lib/types/nisObjectType.inc:29 +msgid "Create another NIS object" +msgstr "Vytvoriť ďalší objekt NIS" + +#: ../lib/baseType.inc:47 +msgid "Create another account" +msgstr "Vytvoriť ďalší účet" + +#: ../lib/types/zarafaAddressListType.inc:43 +msgid "Create another address list" +msgstr "Vytvoriť ďalší zoznam adries" + +#: ../lib/types/mailAlias.inc:43 ../lib/types/alias.inc:43 +msgid "Create another alias" +msgstr "Vytvoriť ďalší alias" + +#: ../lib/types/automountType.inc:34 +msgid "Create another automount entry" +msgstr "Vytvoriť ďalšiu položku automount" + +#: ../lib/types/smbDomain.inc:43 +msgid "Create another domain" +msgstr "Vytvoriť ďalšiu doménu" + +#: ../templates/3rdParty/pla/htdocs/create.php:100 +msgid "Create another entry" +msgstr "Vytvoriť ďalší položku" + +#: ../lib/types/asteriskExt.inc:46 +msgid "Create another extension" +msgstr "Vytvoriť ďalšie rozšírenie" + +#: ../lib/types/gon.inc:43 ../lib/types/zarafaDynamicGroupType.inc:43 +#: ../lib/types/group.inc:44 ../lib/types/netgroup.inc:43 +msgid "Create another group" +msgstr "Vytvoriť ďalšiu skupinu" + +#: ../lib/types/host.inc:43 +msgid "Create another host" +msgstr "Vytvoriť ďalší stroj" + +#: ../lib/types/ppolicyType.inc:29 +msgid "Create another policy" +msgstr "Vytvoriť ďalšiu politiku" + +#: ../lib/types/sudo.inc:29 +msgid "Create another sudo role" +msgstr "Vytvoriť ďalšiu rolu sudo" + +#: ../lib/types/user.inc:43 +msgid "Create another user" +msgstr "Vytvoriť ďalšieho používateľa" + +#: ../lib/lists.inc:684 +msgid "Create for" +msgstr "Vytvoriť pre" + +#: ../lib/modules/posixAccount.inc:295 ../lib/modules/posixAccount.inc:1270 +#: ../lib/modules/posixAccount.inc:1541 +msgid "Create home directory" +msgstr "Vytvoriť domovský adresár" + +#: ../lib/modules/imapAccess.inc:243 +msgid "Create mailbox" +msgstr "Vytvoriť poštovú schránku" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:278 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:281 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:283 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:506 +msgid "Create new entry here" +msgstr "Vytvoriť tu novú položku" + +#: ../lib/modules/customFields.inc:60 ../lib/modules/customFields.inc:420 +#: ../lib/modules/customFields.inc:433 +msgid "Create new group" +msgstr "Vytvoriť novú skupinu" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:698 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1541 +#: ../templates/3rdParty/pla/htdocs/create.php:84 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:52 +msgid "Create object" +msgstr "Vytvoriť objekt" + +#: ../lib/modules/generalInformation.inc:69 +msgid "Created by" +msgstr "Vytvorili" + +#: ../lib/types/automountType.inc:273 +msgid "Created new automount map." +msgstr "vytvorená nová mapa automount." + +#: ../templates/config/profmanage.php:77 +msgid "Created new profile." +msgstr "Vytvorený nový profil." + +#: ../lib/modules/customFields.inc:61 +msgid "" +"Creates a new group for the given account type. Groups build a container for " +"object classes and attributes." +msgstr "" +"Vytvára novú skupinu pre daný typ účtu. Skupiny vytvárajú kontajner pre " +"triedy objektov a atribúty." + +#: ../lib/tools/fileUpload.inc:53 +msgid "Creates accounts by uploading a CSV formated file." +msgstr "Vytvára účty nahraním súboru vo formáte CSV." + +#: ../templates/3rdParty/pla/htdocs/create.php:77 +#, php-format +msgid "Creation successful. DN %s has been created." +msgstr "Vytvorenie úspešné. DN %s bolo vytvorené." + +#: ../lib/modules/generalInformation.inc:73 +msgid "Creation time" +msgstr "Dátum vytvorenia" + +#: ../templates/serverInfo.php:232 ../templates/serverInfo.php:237 +msgid "Current connections" +msgstr "Aktuálne pripojenia" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:65 +#, php-format +msgid "Current list of %s values for attribute %s:" +msgstr "Aktuálny zoznam %s hodnôt pre atribút %s:" + +#: ../lib/modules/imapAccess.inc:297 +msgid "Current usage (kB)" +msgstr "Aktuálne využitie (kB)" + +#: ../lib/modules/customFields.inc:56 ../lib/modules/customFields.inc:910 +msgid "Custom fields" +msgstr "Vlastné polia" + +#: ../lib/modules/customScripts.inc:41 ../lib/modules/customScripts.inc:52 +#: ../lib/modules/customScripts.inc:66 ../lib/modules/customScripts.inc:87 +#: ../lib/modules/customScripts.inc:96 +msgid "Custom scripts" +msgstr "Vlastné skripty" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1097 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1101 +msgid "Cut" +msgstr "Vystrihnúť" + +#: ../lib/modules/ddns.inc:56 +msgid "DDNS" +msgstr "DDNS" + +#: ../lib/modules/ddns.inc:370 +msgid "" +"DDNS ist not activated. You can activate it in the DHCP settings (DDNS)." +msgstr "" +"DDNS nie ja aktivovaný. Môžete ho aktivovať v nastaveniach DHCP (DDNS)." + +#: ../lib/types/dhcp.inc:56 +msgid "DHCP" +msgstr "DHCP" + +#: ../lib/types/dhcp.inc:65 +msgid "DHCP administration" +msgstr "Správa DHCP" + +#: ../lib/types/dhcp.inc:170 +#, php-format +msgid "DHCP count: %s" +msgstr "Počet DHCP %s" + +#: ../lib/types/dhcp.inc:173 ../lib/modules/dhcp_settings.inc:113 +msgid "DHCP settings" +msgstr "Nastavenia DHCP" + +#: ../templates/delete.php:100 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:734 +#: ../templates/3rdParty/pla/lib/PageRender.php:110 +#: ../templates/3rdParty/pla/htdocs/compare.php:52 +#: ../templates/3rdParty/pla/htdocs/compare.php:58 +#: ../templates/3rdParty/pla/htdocs/create.php:92 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:35 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:112 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:57 ../lib/modules.inc:404 +#: ../lib/modules.inc:1891 +msgid "DN" +msgstr "DN" + +#: ../templates/3rdParty/pla/lib/import_functions.php:210 +#: ../templates/3rdParty/pla/lib/import_functions.php:222 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1866 +msgid "DN does not exist" +msgstr "DN neexistuje" + +#: ../templates/masscreate.php:282 +msgid "DN settings" +msgstr "Nastavenia DN" + +#: ../templates/masscreate.php:311 ../help/help.inc:168 +msgid "DN suffix" +msgstr "Prípona DN" + +#: ../lib/modules/dhcp_settings.inc:193 ../lib/modules/dhcp_settings.inc:207 +#: ../lib/modules/dhcp_settings.inc:246 ../lib/modules/dhcp_settings.inc:547 +#: ../lib/modules/dhcp_settings.inc:633 +msgid "DNS" +msgstr "DNS" + +#: ../lib/modules/dhcp_settings.inc:147 +msgid "DNS (Domain Name System)" +msgstr "DNS (Domain Name System)" + +#: ../lib/modules/asteriskExtension.inc:108 +msgid "DNs of the extension owners" +msgstr "DN vlastníkov rozšírení" + +#: ../templates/3rdParty/pla/lib/export_functions.php:343 +msgid "DSML V.1 Export" +msgstr "Export DSML V.1" + +#: ../lib/modules/asteriskAccount.inc:255 +#: ../lib/modules/asteriskAccount.inc:335 +#: ../lib/modules/asteriskAccount.inc:424 +#: ../lib/modules/asteriskAccount.inc:723 +msgid "DTFM flags" +msgstr "Príznaky DTFM" + +#: ../lib/modules/asteriskAccount.inc:130 +#: ../lib/modules/asteriskAccount.inc:1195 +msgid "DTMF mode" +msgstr "Režim DTMF" + +#: ../lib/modules/asteriskAccount.inc:131 +msgid "DTMF mode for SIP client configuration." +msgstr "Nastavenie režimu DTMF klienta SIP." + +#: ../templates/3rdParty/pla/htdocs/import.php:103 +msgid "Data" +msgstr "Dáta" + +#: ../lib/modules/sambaSamAccount.inc:288 +msgid "Date after the user is able to change his password." +msgstr "Dátum, po ktorom si používateľ môže zmeniť svoje heslo." + +#: ../lib/modules/mitKerberos.inc:114 ../lib/modules/sambaSamAccount.inc:290 +#: ../lib/modules/heimdalKerberos.inc:100 +msgid "Date after the user must change his password." +msgstr "Dátum, po ktorom si používateľ musí zmeniť svoje heslo." + +#: ../lib/modules/shadowAccount.inc:171 +msgid "" +"Days before password is to expire that user is warned of pending password " +"expiration. If set value must be >0." +msgstr "" +"Počet dní pred vypršaním hesla, kedy je používateľ upozornený na nastávajúce " +"vypršanie hesla. Ak je nastavené, hodnota musí byť väčšia ako 0." + +#: ../templates/config/mainmanage.php:223 +msgid "Debug" +msgstr "Ladenie" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:592 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +#: ../lib/modules/qmailUser.inc:47 ../lib/modules/qmailUser.inc:285 +#: ../lib/modules/qmailUser.inc:1069 +msgid "Default" +msgstr "Predvolený" + +#: ../lib/modules/dhcp_settings.inc:151 ../lib/modules/dhcp_settings.inc:194 +#: ../lib/modules/dhcp_settings.inc:208 ../lib/modules/dhcp_settings.inc:252 +#: ../lib/modules/dhcp_settings.inc:549 ../lib/modules/dhcp_settings.inc:634 +msgid "Default gateway" +msgstr "Predvolená brána" + +#: ../templates/config/confmain.php:285 ../help/help.inc:95 +msgid "Default language" +msgstr "Predvolený jazyk" + +#: ../lib/modules/asteriskAccount.inc:222 +#: ../lib/modules/asteriskAccount.inc:301 +#: ../lib/modules/asteriskAccount.inc:358 +#: ../lib/modules/asteriskAccount.inc:592 +#: ../lib/modules/asteriskAccount.inc:945 +#: ../lib/modules/asteriskAccount.inc:1218 +msgid "Default user" +msgstr "Predvolený používateľ" + +#: ../templates/masscreate.php:300 ../templates/masscreate.php:375 +#: ../lib/modules/customFields.inc:108 ../lib/modules/customFields.inc:2000 +msgid "Default value" +msgstr "Predvolená hodnota" + +#: ../lib/modules/sambaDomain.inc:111 +msgid "Defines if workstations may change their passwords." +msgstr "Udáva, či pracovné satnice môžu zmeniť svoje heslá." + +#: ../lib/modules/asteriskAccount.inc:151 +msgid "" +"Defines the mailbox to check for message waiting indication (MWI) for this " +"peer." +msgstr "" +"Definuje poštovú schránku, v ktorej kontroluje indikáciu čakajúcej správy " +"(message waiting indication –MWI) tohoto partnera." + +#: ../lib/modules/kolabUser.inc:97 ../lib/modules/kolabUser.inc:113 +#: ../lib/modules/kolabUser.inc:117 ../lib/modules/kolabUser.inc:159 +#: ../lib/modules/kolabUser.inc:169 ../lib/modules/kolabUser.inc:295 +#: ../lib/modules/kolabUser.inc:644 ../lib/modules/kolabUser.inc:709 +msgid "Delegates" +msgstr "Delegáti" + +#: ../templates/serverInfo.php:321 ../templates/serverInfo.php:390 +#: ../templates/ou_edit.php:120 ../templates/config/profmanage.php:272 +#: ../templates/pdfedit/pdfmain.php:194 ../templates/pdfedit/pdfmain.php:195 +#: ../templates/delete.php:120 ../templates/profedit/profilemain.php:196 +#: ../templates/profedit/profilemain.php:197 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:33 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:124 +#: ../lib/modules/sambaSamAccount.inc:1588 +#: ../lib/modules/posixAccount.inc:1469 ../lib/modules/zarafaUser.inc:1500 +#: ../lib/modules/zarafaUser.inc:1552 ../lib/modules/kolabUser.inc:699 +#: ../lib/modules/nisnetgroup.inc:246 ../lib/modules/inetOrgPerson.inc:3239 +#: ../lib/lists.inc:491 +msgid "Delete" +msgstr "Odstrániť" + +#: ../templates/3rdParty/pla/htdocs/delete.php:31 +msgid "Delete DN" +msgstr "Odstrániť DN" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:30 +msgid "Delete LDAP entries" +msgstr "Odstrániť položky LDAP" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:77 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:84 +msgid "Delete after copy (move):" +msgstr "Odstrániť po kopírovaní (presune):" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:72 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:110 +#, php-format +msgid "Delete all %s objects" +msgstr "Odstrániť všetky %s objekty" + +#: ../lib/modules/customFields.inc:521 +msgid "Delete group" +msgstr "Odstrániť skupinu" + +#: ../lib/modules/posixAccount.inc:1319 +msgid "Delete home directory" +msgstr "Odstrániť domovský adresár" + +#: ../lib/modules/imapAccess.inc:236 +msgid "Delete mailbox" +msgstr "Odstrániť poštovú schránku" + +#: ../templates/ou_edit.php:197 ../help/help.inc:235 +msgid "Delete organisational unit" +msgstr "Odstrániť organizačnú jednotku" + +#: ../templates/3rdParty/pla/lib/functions.php:2014 +#: ../lib/modules/inetOrgPerson.inc:2109 +msgid "Delete photo" +msgstr "Odstrániť fotografiu" + +#: ../templates/config/profmanage.php:270 +#: ../templates/config/profmanage.php:273 ../help/help.inc:128 +msgid "Delete profile" +msgstr "Odstrániť profil" + +#: ../lib/modules/range.inc:91 ../lib/modules/range.inc:109 +#: ../lib/modules/range.inc:437 +msgid "Delete range" +msgstr "Odstrániť rozsah" + +#: ../lib/modules/asteriskExtension.inc:309 +#: ../lib/modules/asteriskExtension.inc:332 +msgid "Delete rule" +msgstr "Odstrániť pravidlo" + +#: ../lib/types/dhcp.inc:174 +msgid "Delete selected DHCP entries" +msgstr "Odstrániť zvolené položky DHCP" + +#: ../lib/types/nisObjectType.inc:158 +msgid "Delete selected NIS objects" +msgstr "Odstrániť zvolené objekty NIS" + +#: ../lib/types/zarafaAddressListType.inc:147 +msgid "Delete selected address lists" +msgstr "Odstrániť zvolené zoznamy adries" + +#: ../lib/types/mailAlias.inc:144 ../lib/types/alias.inc:144 +msgid "Delete selected aliases" +msgstr "Odstrániť zvolené aliasy" + +#: ../lib/types/automountType.inc:218 +msgid "Delete selected automount entries" +msgstr "Odstrániť zvolené položky automount" + +#: ../lib/types/smbDomain.inc:170 +msgid "Delete selected domains" +msgstr "Odstrániť zvolené domény" + +#: ../lib/types/asteriskExt.inc:146 +msgid "Delete selected extensions" +msgstr "Odstrániť zvolené rozšírenia" + +#: ../lib/types/gon.inc:183 ../lib/types/zarafaDynamicGroupType.inc:168 +#: ../lib/types/group.inc:213 ../lib/types/netgroup.inc:172 +msgid "Delete selected groups" +msgstr "Zvolené zvolené skupiny" + +#: ../lib/types/host.inc:196 +msgid "Delete selected hosts" +msgstr "Odstrániť zvolené stroje" + +#: ../lib/lists.inc:115 +msgid "Delete selected objects" +msgstr "Odstrániť zvolené objekty" + +#: ../lib/types/ppolicyType.inc:152 +msgid "Delete selected policies" +msgstr "Odstrániť zvolené politiky" + +#: ../lib/types/sudo.inc:162 +msgid "Delete selected sudo roles" +msgstr "Odstrániť zvolené role sudo" + +#: ../lib/types/user.inc:533 +msgid "Delete selected users" +msgstr "Odstrániť zvolených používateľov" + +#: ../templates/3rdParty/pla/htdocs/copy.php:146 +#, php-format +msgid "Delete successful: %s" +msgstr "Odstránenie úspešné: %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "Delete this entry" +msgstr "Odstrániť túto položku" + +#: ../lib/modules/qmailUser.inc:44 +msgid "Deleted" +msgstr "Odstránené" + +#: ../templates/delete.php:272 +#, php-format +msgid "Deleted DN: %s" +msgstr "Odstránený DN: %s" + +#: ../templates/pdfedit/pdfmain.php:89 +msgid "Deleted PDF structure." +msgstr "Odstránená štruktúra PDF." + +#: ../templates/profedit/profilemain.php:103 +msgid "Deleted profile." +msgstr "Odstránený profil." + +#: ../lib/modules/range.inc:92 +msgid "Deletes an IP range." +msgstr "Odstráni rozsah IP adries." + +#: ../templates/3rdParty/pla/htdocs/import.php:29 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:65 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:82 +msgid "Deleting" +msgstr "Odstraňovanie" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:73 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:125 +msgid "Deleting objects" +msgstr "Odstraňovanie objektov" + +#: ../lib/modules/qmailUser.inc:117 ../lib/modules/qmailUser.inc:248 +#: ../lib/modules/qmailUser.inc:375 ../lib/modules/qmailUser.inc:429 +#: ../lib/modules/qmailUser.inc:651 ../lib/modules/qmailUser.inc:892 +#: ../lib/modules/qmailUser.inc:1217 +msgid "Deletion date" +msgstr "Dátum odstránenia" + +#: ../lib/lists.inc:1060 +msgid "Deletion was successful." +msgstr "Odstránenie úspešné." + +#: ../lib/modules/qmailUser.inc:208 ../lib/modules/qmailUser.inc:283 +#: ../lib/modules/qmailUser.inc:396 ../lib/modules/qmailUser.inc:622 +#: ../lib/modules/qmailUser.inc:1211 +msgid "Delivery mode" +msgstr "Režim doručenia" + +#: ../lib/modules/qmailUser.inc:115 ../lib/modules/qmailUser.inc:168 +#: ../lib/modules/qmailUser.inc:244 ../lib/modules/qmailUser.inc:367 +#: ../lib/modules/qmailUser.inc:426 ../lib/modules/qmailUser.inc:641 +#: ../lib/modules/qmailUser.inc:1197 +msgid "Delivery program" +msgstr "Doručovací program" + +#: ../lib/modules/asteriskAccount.inc:158 +#: ../lib/modules/asteriskAccount.inc:269 +#: ../lib/modules/asteriskAccount.inc:342 +#: ../lib/modules/asteriskAccount.inc:476 +#: ../lib/modules/asteriskAccount.inc:794 +#: ../lib/modules/asteriskAccount.inc:1202 +msgid "Deny" +msgstr "Odmietnuť" + +#: ../lib/modules/inetOrgPerson.inc:146 ../lib/modules/inetOrgPerson.inc:200 +#: ../lib/modules/inetOrgPerson.inc:346 ../lib/modules/inetOrgPerson.inc:552 +#: ../lib/modules/inetOrgPerson.inc:671 ../lib/modules/inetOrgPerson.inc:868 +#: ../lib/modules/inetOrgPerson.inc:872 ../lib/modules/inetOrgPerson.inc:1961 +#: ../lib/modules/inetOrgPerson.inc:2385 ../lib/modules/inetOrgPerson.inc:3159 +msgid "Department" +msgstr "Oddelenie" + +#: ../templates/schema/schema.php:89 ../templates/schema/schema.php:143 +#: ../templates/schema/schema.php:346 +#: ../templates/3rdParty/pla/lib/functions.php:1898 +#: ../templates/3rdParty/pla/lib/functions.php:1902 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:139 +#: ../templates/3rdParty/pla/htdocs/import.php:101 +#: ../lib/types/automountType.inc:88 ../lib/types/nisObjectType.inc:80 +#: ../lib/types/user.inc:101 ../lib/types/sudo.inc:84 ../lib/types/dhcp.inc:96 +#: ../lib/types/netgroup.inc:92 ../lib/modules/account.inc:75 +#: ../lib/modules/account.inc:88 ../lib/modules/account.inc:98 +#: ../lib/modules/account.inc:106 ../lib/modules/account.inc:221 +#: ../lib/modules/account.inc:232 ../lib/modules/windowsHost.inc:71 +#: ../lib/modules/windowsHost.inc:94 ../lib/modules/windowsHost.inc:113 +#: ../lib/modules/windowsHost.inc:136 ../lib/modules/windowsHost.inc:288 +#: ../lib/modules/posixGroup.inc:198 ../lib/modules/posixGroup.inc:371 +#: ../lib/modules/posixGroup.inc:423 ../lib/modules/posixGroup.inc:508 +#: ../lib/modules/device.inc:74 ../lib/modules/device.inc:108 +#: ../lib/modules/device.inc:123 ../lib/modules/device.inc:170 +#: ../lib/modules/device.inc:439 ../lib/modules/dhcp_settings.inc:183 +#: ../lib/modules/dhcp_settings.inc:199 ../lib/modules/dhcp_settings.inc:279 +#: ../lib/modules/dhcp_settings.inc:581 ../lib/modules/dhcp_settings.inc:639 +#: ../lib/modules/posixAccount.inc:516 ../lib/modules/windowsUser.inc:99 +#: ../lib/modules/windowsUser.inc:252 ../lib/modules/windowsUser.inc:381 +#: ../lib/modules/windowsUser.inc:524 ../lib/modules/windowsUser.inc:1216 +#: ../lib/modules/nisObject.inc:66 ../lib/modules/nisObject.inc:96 +#: ../lib/modules/nisObject.inc:107 ../lib/modules/nisObject.inc:148 +#: ../lib/modules/nisObject.inc:213 ../lib/modules/sambaGroupMapping.inc:321 +#: ../lib/modules/sambaGroupMapping.inc:388 ../lib/modules/automount.inc:65 +#: ../lib/modules/automount.inc:88 ../lib/modules/automount.inc:98 +#: ../lib/modules/automount.inc:133 ../lib/modules/automount.inc:195 +#: ../lib/modules/nisnetgroup.inc:80 ../lib/modules/nisnetgroup.inc:133 +#: ../lib/modules/nisnetgroup.inc:192 ../lib/modules/nisnetgroup.inc:575 +#: ../lib/modules/inetOrgPerson.inc:158 ../lib/modules/inetOrgPerson.inc:308 +#: ../lib/modules/inetOrgPerson.inc:398 ../lib/modules/inetOrgPerson.inc:611 +#: ../lib/modules/inetOrgPerson.inc:701 ../lib/modules/inetOrgPerson.inc:1444 +#: ../lib/modules/inetOrgPerson.inc:2356 ../lib/modules/sudoRole.inc:59 +#: ../lib/modules/sudoRole.inc:128 ../lib/modules/sudoRole.inc:172 +#: ../lib/modules/sudoRole.inc:253 ../lib/modules/sudoRole.inc:683 +#: ../lib/modules/windowsGroup.inc:110 ../lib/modules/windowsGroup.inc:169 +#: ../lib/modules/windowsGroup.inc:221 ../lib/modules/windowsGroup.inc:258 +#: ../lib/modules/windowsGroup.inc:616 ../lib/modules/groupOfNames.inc:64 +#: ../lib/modules/groupOfNames.inc:99 ../lib/modules/groupOfNames.inc:130 +#: ../lib/modules/groupOfNames.inc:178 ../lib/modules/groupOfNames.inc:539 +msgid "Description" +msgstr "Popis" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "Destination DN" +msgstr "Cieľové DN" + +#: ../lib/modules/device.inc:38 +msgid "Device" +msgstr "Zariadenie" + +#: ../lib/modules/sambaSamAccount.inc:383 +#: ../lib/modules/sambaSamAccount.inc:571 +msgid "Disable LM hashes" +msgstr "Vypnúť odtlačky LM" + +#: ../lib/modules/ddns.inc:82 ../lib/modules/ddns.inc:363 +msgid "Disable client updates" +msgstr "Vypnúť aktulizácie klienta" + +#: ../lib/modules/qmailUser.inc:43 +msgid "Disabled" +msgstr "Zakázané" + +#: ../lib/modules/ddns.inc:83 +msgid "Disables the client to update DNS entries." +msgstr "Vypína aktulizáciu položiek DNS klienta." + +#: ../lib/modules/mitKerberos.inc:165 +msgid "" +"Disables user-to-user authentication for this principal by prohibiting this " +"principal from obtaining a session key for another user." +msgstr "" +"Vypína autentifikáciu user-to-user tohoto principal tým, že mu zabráni " +"získať kľúč relácie pre iného používateľa." + +#: ../lib/modules/heimdalKerberos.inc:123 +#: ../lib/modules/heimdalKerberos.inc:370 +msgid "Disallow TGT-based tickets" +msgstr "Zakázaný lístky založené na TGT" + +#: ../lib/modules/mitKerberos.inc:167 ../lib/modules/mitKerberos.inc:453 +#: ../lib/modules/heimdalKerberos.inc:141 +#: ../lib/modules/heimdalKerberos.inc:375 +msgid "Disallow all tickets" +msgstr "Zakázať všetky lístky" + +#: ../templates/config/conftypes.php:297 ../help/help.inc:160 +msgid "Disallow delete" +msgstr "Zakázaný odstránenie" + +#: ../lib/modules/mitKerberos.inc:155 ../lib/modules/mitKerberos.inc:423 +#: ../lib/modules/heimdalKerberos.inc:126 +#: ../lib/modules/heimdalKerberos.inc:345 +msgid "Disallow forwardable tickets" +msgstr "Zakázať prenosné (forwardable) lístky" + +#: ../lib/modules/mitKerberos.inc:152 ../lib/modules/mitKerberos.inc:438 +#: ../lib/modules/heimdalKerberos.inc:135 +#: ../lib/modules/heimdalKerberos.inc:360 +msgid "Disallow post-dated tickets" +msgstr "Zakázať antedatované (post-dated) lístky" + +#: ../lib/modules/mitKerberos.inc:161 ../lib/modules/mitKerberos.inc:428 +#: ../lib/modules/heimdalKerberos.inc:129 +#: ../lib/modules/heimdalKerberos.inc:350 +msgid "Disallow proxiable tickets" +msgstr "Zakázať proxovateľné (proxiable) lístky" + +#: ../lib/modules/mitKerberos.inc:158 ../lib/modules/mitKerberos.inc:433 +#: ../lib/modules/heimdalKerberos.inc:132 +#: ../lib/modules/heimdalKerberos.inc:355 +msgid "Disallow renewable tickets" +msgstr "Zakázať obnoviteľné (renewable) lístky" + +#: ../lib/modules/mitKerberos.inc:179 ../lib/modules/mitKerberos.inc:443 +#: ../lib/modules/heimdalKerberos.inc:138 +#: ../lib/modules/heimdalKerberos.inc:365 +msgid "Disallow service tickets" +msgstr "Zakázať služobné (service) lístky" + +#: ../lib/modules/mitKerberos.inc:164 ../lib/modules/mitKerberos.inc:448 +msgid "Disallow user-to-user authentication" +msgstr "Zakázať autentifikáciu user-to-user" + +#: ../lib/modules/asteriskAccount.inc:190 +#: ../lib/modules/asteriskAccount.inc:285 +#: ../lib/modules/asteriskAccount.inc:350 +#: ../lib/modules/asteriskAccount.inc:534 +#: ../lib/modules/asteriskAccount.inc:869 +#: ../lib/modules/asteriskAccount.inc:1210 +msgid "Disallowed codec" +msgstr "Zakázaný kodek" + +#: ../lib/modules/sambaDomain.inc:106 ../lib/modules/sambaDomain.inc:186 +#: ../lib/modules/sambaDomain.inc:292 ../lib/modules/sambaDomain.inc:656 +msgid "Disconnect users outside logon hours" +msgstr "Odpojiť používateľa mimo prihlasovacích hodín" + +#: ../lib/modules/sambaSamAccount.inc:230 +#: ../lib/modules/sambaSamAccount.inc:1498 +#: ../lib/modules/sambaSamAccount.inc:1902 +msgid "Disconnection time limit" +msgstr "Časový limit odpojenia" + +#: ../lib/modules/sambaDomain.inc:107 +msgid "Disconnects users if they are logged in outside logon hours." +msgstr "Odpája použvateľov, ak sú prihlásení mimo prihlasovacích hodín." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +msgid "Display format" +msgstr "Formát zobrazenia" + +#: ../lib/modules/sambaSamAccount.inc:111 +#: ../lib/modules/sambaSamAccount.inc:202 +#: ../lib/modules/sambaSamAccount.inc:248 +#: ../lib/modules/sambaSamAccount.inc:406 +#: ../lib/modules/sambaSamAccount.inc:1123 +#: ../lib/modules/sambaSamAccount.inc:1874 ../lib/modules/windowsUser.inc:103 +#: ../lib/modules/windowsUser.inc:240 ../lib/modules/windowsUser.inc:382 +#: ../lib/modules/windowsUser.inc:445 ../lib/modules/windowsUser.inc:522 +#: ../lib/modules/windowsUser.inc:1217 +#: ../lib/modules/sambaGroupMapping.inc:259 +#: ../lib/modules/sambaGroupMapping.inc:319 +#: ../lib/modules/sambaGroupMapping.inc:352 +#: ../lib/modules/sambaGroupMapping.inc:386 +msgid "Display name" +msgstr "Zobrazené meno" + +#: ../templates/lists/changePassword.php:303 +msgid "Display on screen" +msgstr "Zobraziť na obrazovke" + +#: ../templates/3rdParty/pla/htdocs/create.php:97 +msgid "Display the created entry" +msgstr "Zobraziť vytvorenú položku" + +#: ../lib/modules.inc:497 +msgid "" +"Displayed account numbers start at \"0\". Add 2 to get the row in your " +"spreadsheet." +msgstr "" +"Zobrazené čísla účtov začínajú od „0”. Pripočítajte „2” a dostanete číslo " +"riadku vo svojom tabuľkovom kalkulátore." + +#: ../lib/modules/windowsGroup.inc:61 +msgid "Distribution" +msgstr "Distribúcia" + +#: ../lib/modules/passwordSelfReset.inc:128 +#: ../lib/modules/passwordSelfReset.inc:236 +msgid "Do not ask security question" +msgstr "Neklásť bezpečnostnú otázku" + +#: ../templates/ou_edit.php:112 +msgid "Do you really want to delete this OU?" +msgstr "Naouaj chcete odstrániť toto OU?" + +#: ../templates/pdfedit/pdfmain.php:313 +msgid "Do you really want to delete this PDF structure?" +msgstr "Naozaj chete odstrániť túto štruktúru PDF?" + +#: ../templates/profedit/profilemain.php:317 +msgid "Do you really want to delete this profile?" +msgstr "Naozaj chcete odstrániť tento profil?" + +#: ../lib/modules/kolabUser.inc:450 +msgid "Do you really want to mark this account for deletion?" +msgstr "Naozaj chcete označiť tento účet na odstránenie?" + +#: ../lib/modules/qmailGroup.inc:266 +msgid "Do you really want to post to this mailinglist?" +msgstr "Naozaj chcete odoslať do tejto emailovej konferencie?" + +#: ../templates/delete.php:94 +msgid "Do you really want to remove the following accounts?" +msgstr "Naozaj chcete odstrániť nasledujúce účty?" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:59 +msgid "Do you want to create this entry?" +msgstr "Chcete vytvoriť túto položku?" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:36 +msgid "Do you want to make these changes?" +msgstr "Chcete urobiť tieto zmeny?" + +#: ../lib/modules/sambaSamAccount.inc:203 +#: ../lib/modules/sambaSamAccount.inc:326 +#: ../lib/modules/sambaSamAccount.inc:399 +#: ../lib/modules/sambaSamAccount.inc:523 +#: ../lib/modules/sambaSamAccount.inc:1255 +#: ../lib/modules/sambaSamAccount.inc:1749 +#: ../lib/modules/sambaSamAccount.inc:1771 +#: ../lib/modules/sambaSamAccount.inc:1880 +#: ../lib/modules/sambaGroupMapping.inc:286 +#: ../lib/modules/sambaGroupMapping.inc:364 +#: ../lib/modules/sambaGroupMapping.inc:408 ../lib/modules/nisnetgroup.inc:216 +#: ../lib/modules/nisnetgroup.inc:582 +msgid "Domain" +msgstr "Doména" + +#: ../lib/modules/sambaSamAccount.inc:84 +msgid "Domain KRBTGT" +msgstr "Doména KRBTGT" + +#: ../lib/types/smbDomain.inc:91 ../lib/modules/sambaDomain.inc:74 +#: ../lib/modules/sambaDomain.inc:144 ../lib/modules/sambaDomain.inc:178 +#: ../lib/modules/sambaDomain.inc:249 ../lib/modules/sambaDomain.inc:254 +#: ../lib/modules/sambaDomain.inc:635 +msgid "Domain SID" +msgstr "SID domény" + +#: ../lib/modules/sambaGroupMapping.inc:331 +#: ../lib/modules/windowsGroup.inc:164 ../lib/modules/windowsGroup.inc:171 +#: ../lib/modules/windowsGroup.inc:177 +msgid "Domain administrators" +msgstr "Doménoví administrátori" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:58 +#: ../lib/modules/sambaGroupMapping.inc:337 +msgid "Domain admins" +msgstr "Doménoví adminsitrátori" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:63 +msgid "Domain certificate admins" +msgstr "Doménoví adninistrátori certifikátov" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaSamAccount.inc:791 +#: ../lib/modules/sambaGroupMapping.inc:61 +msgid "Domain computers" +msgstr "Doménové počítače" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:62 +msgid "Domain controllers" +msgstr "Doménové radiče" + +#: ../lib/types/smbDomain.inc:167 +#, php-format +msgid "Domain count: %s" +msgstr "Počet domén: %s" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:65 +msgid "Domain enterprise admins" +msgstr "Doménoví podnikoví administrátori" + +#: ../lib/modules/sambaGroupMapping.inc:69 +#: ../lib/modules/sambaGroupMapping.inc:277 +msgid "Domain group" +msgstr "Doménová skupina" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:60 +msgid "Domain guests" +msgstr "Doménoví hostia" + +#: ../lib/modules/windowsGroup.inc:64 +msgid "Domain local" +msgstr "Lokálna doména" + +#: ../lib/types/smbDomain.inc:92 ../lib/modules/dhcp_settings.inc:131 +#: ../lib/modules/dhcp_settings.inc:190 ../lib/modules/dhcp_settings.inc:204 +#: ../lib/modules/dhcp_settings.inc:228 ../lib/modules/dhcp_settings.inc:537 +#: ../lib/modules/dhcp_settings.inc:630 ../lib/modules/nisnetgroup.inc:147 +#: ../lib/modules/sambaDomain.inc:70 ../lib/modules/sambaDomain.inc:137 +#: ../lib/modules/sambaDomain.inc:177 ../lib/modules/sambaDomain.inc:234 +#: ../lib/modules/sambaDomain.inc:239 ../lib/modules/sambaDomain.inc:634 +msgid "Domain name" +msgstr "Meno domény" + +#: ../lib/modules/nisnetgroup.inc:147 ../lib/modules/sambaDomain.inc:201 +#: ../lib/modules/sambaDomain.inc:202 +msgid "Domain name is invalid!" +msgstr "Neplatné doménové meno!" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:66 +msgid "Domain policy admins" +msgstr "Doménoví administrátori politík" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:64 +msgid "Domain schema admins" +msgstr "Doménoví administrátori schém" + +#: ../lib/modules/sambaSamAccount.inc:79 +#: ../lib/modules/sambaSamAccount.inc:2183 +#: ../lib/modules/sambaGroupMapping.inc:59 +msgid "Domain users" +msgstr "Doménoví používatelia" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:43 +msgid "Don't stop on errors" +msgstr "Nezastaviť pri chybe" + +#: ../templates/pdfedit/pdfpage.php:477 +msgid "Down" +msgstr "Dole" + +#: ../templates/masscreate.php:250 +msgid "Download sample CSV file" +msgstr "Stiahnuť vzorový súbor CSV" + +#: ../templates/serverInfo.php:124 +msgid "Dynamic subtrees" +msgstr "Dynamické podstromy" + +#: ../lib/modules/eduPerson.inc:65 +msgid "EDU person" +msgstr "EDU person" + +#: ../lib/modules/selfRegistration.inc:119 +msgid "" +"Each line represents one LDAP attribute. The options are separated by \"::" +"\". The first option specifies if the attribute is mandatory. It can have " +"the values \"optional\" and \"required\"." +msgstr "" +"Každý riadok predstavuje jeden atribút LDAP. Voľby sú oddelené pomocou \"::" +"\". Prvá voľba udáva, či je atribút vyžadovaný. Môže mať hodnoty „optional” " +"a „required”." + +#: ../lib/modules/sambaSamAccount.inc:561 +msgid "East Australian Standard, Guam" +msgstr "Východoaustrálsky štandardný, Guam" + +#: ../lib/modules/sambaSamAccount.inc:553 +msgid "Eastern Europe Time, South Africa" +msgstr "Východoeurópsky čas, Južná Afrika" + +#: ../lib/modules/sambaSamAccount.inc:546 +msgid "Eastern Time (US & Canada), Bogota" +msgstr "Východný čas (USA a Kanada), Bogota" + +#: ../templates/pdfedit/pdfmain.php:191 +#: ../templates/profedit/profilemain.php:193 +#: ../lib/modules/sambaSamAccount.inc:1260 +#: ../lib/modules/sambaSamAccount.inc:1265 ../lib/lists.inc:485 +msgid "Edit" +msgstr "Upraviť" + +#: ../lib/modules.inc:1323 +msgid "Edit again" +msgstr "Znova upraviť" + +#: ../templates/config/mainmanage.php:134 ../templates/config/index.php:99 +msgid "Edit general settings" +msgstr "Upraviť všeobecné nastavenia" + +#: ../lib/modules/posixAccount.inc:1254 ../lib/modules/windowsUser.inc:582 +msgid "Edit groups" +msgstr "Upraviť skupiny" + +#: ../lib/modules/posixGroup.inc:202 ../lib/modules/windowsGroup.inc:313 +msgid "Edit members" +msgstr "Upraviť členov" + +#: ../templates/config/index.php:125 +msgid "Edit self service" +msgstr "Upraviť samoobslužnú služnu" + +#: ../templates/config/index.php:111 +msgid "Edit server profiles" +msgstr "Upraviť profily servera" + +#: ../lib/modules/nisnetgroup.inc:201 +msgid "Edit subgroups" +msgstr "Upraviť podskupiny" + +#: ../lib/modules/sambaSamAccount.inc:1216 +msgid "Edit workstations" +msgstr "Upraviť pracovné stanice" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1872 +#: ../lib/types/zarafaDynamicGroupType.inc:92 ../lib/types/user.inc:100 +#: ../lib/modules/zarafaDynamicGroup.inc:236 +#: ../lib/modules/zarafaDynamicGroup.inc:241 +#: ../lib/modules/zarafaGroup.inc:228 ../lib/modules/zarafaGroup.inc:235 +#: ../lib/modules/passwordSelfReset.inc:178 +#: ../lib/modules/nisMailAlias.inc:277 +msgid "Email" +msgstr "Email" + +#: ../templates/lists/changePassword.php:269 +#: ../lib/modules/selfRegistration.inc:342 +#: ../lib/modules/selfRegistration.inc:417 +#: ../lib/modules/zarafaDynamicGroup.inc:60 +#: ../lib/modules/zarafaDynamicGroup.inc:61 +#: ../lib/modules/zarafaDynamicGroup.inc:117 +#: ../lib/modules/zarafaDynamicGroup.inc:159 +#: ../lib/modules/zarafaDynamicGroup.inc:193 +#: ../lib/modules/zarafaDynamicGroup.inc:465 ../lib/modules/qmailUser.inc:192 +#: ../lib/modules/qmailUser.inc:292 ../lib/modules/qmailUser.inc:399 +#: ../lib/modules/qmailUser.inc:441 ../lib/modules/qmailUser.inc:485 +#: ../lib/modules/qmailUser.inc:1186 ../lib/modules/zarafaGroup.inc:63 +#: ../lib/modules/zarafaGroup.inc:64 ../lib/modules/zarafaGroup.inc:158 +#: ../lib/modules/zarafaGroup.inc:193 ../lib/modules/zarafaGroup.inc:209 +#: ../lib/modules/zarafaGroup.inc:654 ../lib/modules/windowsUser.inc:119 +#: ../lib/modules/windowsUser.inc:294 ../lib/modules/windowsUser.inc:386 +#: ../lib/modules/windowsUser.inc:457 ../lib/modules/windowsUser.inc:535 +#: ../lib/modules/windowsUser.inc:1221 ../lib/modules/inetOrgPerson.inc:76 +#: ../lib/modules/inetOrgPerson.inc:141 ../lib/modules/inetOrgPerson.inc:194 +#: ../lib/modules/inetOrgPerson.inc:336 ../lib/modules/inetOrgPerson.inc:518 +#: ../lib/modules/inetOrgPerson.inc:653 ../lib/modules/inetOrgPerson.inc:789 +#: ../lib/modules/inetOrgPerson.inc:793 ../lib/modules/inetOrgPerson.inc:1821 +#: ../lib/modules/inetOrgPerson.inc:2369 ../lib/modules/inetOrgPerson.inc:2945 +#: ../lib/modules/asteriskVoicemail.inc:98 +#: ../lib/modules/asteriskVoicemail.inc:131 +#: ../lib/modules/asteriskVoicemail.inc:169 +#: ../lib/modules/asteriskVoicemail.inc:261 +#: ../lib/modules/asteriskVoicemail.inc:393 ../lib/modules/qmailGroup.inc:116 +#: ../lib/modules/qmailGroup.inc:120 ../lib/modules/qmailGroup.inc:233 +#: ../lib/modules/qmailGroup.inc:364 ../lib/modules/qmailGroup.inc:413 +#: ../lib/modules/qmailGroup.inc:450 ../lib/modules/qmailGroup.inc:1053 +#: ../lib/modules/imapAccess.inc:212 ../lib/modules/passwordSelfReset.inc:702 +#: ../lib/modules/passwordSelfReset.inc:850 +#: ../lib/modules/windowsGroup.inc:118 ../lib/modules/windowsGroup.inc:153 +#: ../lib/modules/windowsGroup.inc:205 ../lib/modules/windowsGroup.inc:228 +#: ../lib/modules/windowsGroup.inc:242 ../lib/modules/windowsGroup.inc:260 +#: ../lib/modules/windowsGroup.inc:618 +msgid "Email address" +msgstr "Emailové adresy" + +#: ../lib/modules/asteriskVoicemail.inc:99 +msgid "Email address for this voicemail account." +msgstr "Emailové adresy tohoto hlasového účtu." + +#: ../lib/modules/qmailGroup.inc:214 ../lib/modules/qmailGroup.inc:218 +msgid "Email addresses that are allowed to send to this list." +msgstr "Emailové adresy, ktoré môžu posielať do konferencie." + +#: ../lib/modules/qmailGroup.inc:198 ../lib/modules/qmailGroup.inc:202 +msgid "Email addresses that are member of this list." +msgstr "Emailové adresy, ktoré sú členmi tejto konferencie." + +#: ../lib/modules/qmailGroup.inc:206 ../lib/modules/qmailGroup.inc:210 +msgid "Email addresses that moderate this list (e.g. approve mails)." +msgstr "" +"Emailové adresy, ktoré moderujú túto konferenciu (napr. schvaľovanie " +"emailov)." + +#: ../lib/modules/zarafaContact.inc:76 ../lib/modules/zarafaUser.inc:117 +#: ../lib/modules/windowsUser.inc:202 ../lib/modules/windowsUser.inc:206 +#: ../lib/modules/windowsUser.inc:300 ../lib/modules/windowsUser.inc:387 +#: ../lib/modules/windowsUser.inc:459 ../lib/modules/windowsUser.inc:536 +#: ../lib/modules/windowsUser.inc:1222 ../lib/modules/kolabUser.inc:121 +#: ../lib/modules/windowsGroup.inc:122 ../lib/modules/windowsGroup.inc:126 +#: ../lib/modules/windowsGroup.inc:155 ../lib/modules/windowsGroup.inc:213 +#: ../lib/modules/windowsGroup.inc:231 ../lib/modules/windowsGroup.inc:244 +#: ../lib/modules/windowsGroup.inc:263 ../lib/modules/windowsGroup.inc:619 +msgid "Email alias" +msgstr "Emailový alias" + +#: ../lib/modules/zarafaContact.inc:77 ../lib/modules/zarafaUser.inc:118 +#: ../lib/modules/windowsUser.inc:203 ../lib/modules/windowsUser.inc:207 +#: ../lib/modules/kolabUser.inc:122 ../lib/modules/windowsGroup.inc:123 +#: ../lib/modules/windowsGroup.inc:127 +msgid "Email alias for this account." +msgstr "Emailový alias tohoto účtu." + +#: ../lib/modules/zarafaContact.inc:174 ../lib/modules/zarafaContact.inc:175 +#: ../lib/modules/zarafaUser.inc:449 ../lib/modules/zarafaUser.inc:450 +#: ../lib/modules/windowsUser.inc:459 ../lib/modules/windowsUser.inc:460 +#: ../lib/modules/kolabUser.inc:180 ../lib/modules/windowsGroup.inc:244 +#: ../lib/modules/windowsGroup.inc:245 +msgid "Email alias is invalid!" +msgstr "Emailový alias je neplatný!" + +#: ../lib/modules/kolabUser.inc:125 +msgid "Email alias list" +msgstr "Zoznam emailových aliasov" + +#: ../lib/modules/kolabUser.inc:181 +msgid "Email alias list has invalid format!" +msgstr "Zoznam emailových aliasov má neplatný formát!" + +#: ../lib/types/zarafaDynamicGroupType.inc:97 +#: ../lib/modules/zarafaDynamicGroup.inc:64 +#: ../lib/modules/zarafaDynamicGroup.inc:68 +#: ../lib/modules/zarafaDynamicGroup.inc:123 +#: ../lib/modules/zarafaDynamicGroup.inc:160 +#: ../lib/modules/zarafaDynamicGroup.inc:251 +#: ../lib/modules/zarafaDynamicGroup.inc:468 +#: ../lib/modules/zarafaContact.inc:132 ../lib/modules/zarafaContact.inc:165 +#: ../lib/modules/zarafaContact.inc:196 ../lib/modules/zarafaContact.inc:555 +#: ../lib/modules/zarafaGroup.inc:67 ../lib/modules/zarafaGroup.inc:71 +#: ../lib/modules/zarafaGroup.inc:166 ../lib/modules/zarafaGroup.inc:196 +#: ../lib/modules/zarafaGroup.inc:247 ../lib/modules/zarafaGroup.inc:655 +#: ../lib/modules/zarafaUser.inc:210 ../lib/modules/zarafaUser.inc:229 +#: ../lib/modules/zarafaUser.inc:411 ../lib/modules/zarafaUser.inc:426 +#: ../lib/modules/zarafaUser.inc:475 ../lib/modules/zarafaUser.inc:1301 +#: ../lib/modules/zarafaUser.inc:1563 ../lib/modules/kolabUser.inc:153 +#: ../lib/modules/kolabUser.inc:168 ../lib/modules/kolabUser.inc:275 +#: ../lib/modules/kolabUser.inc:643 +msgid "Email aliases" +msgstr "Emailové aliasy" + +#: ../lib/modules/inetOrgPerson.inc:354 ../lib/modules/inetOrgPerson.inc:414 +#: ../lib/modules/inetOrgPerson.inc:683 ../lib/modules/inetOrgPerson.inc:900 +#: ../lib/modules/inetOrgPerson.inc:1913 ../lib/modules/inetOrgPerson.inc:2380 +#: ../lib/modules/passwordSelfReset.inc:181 +#: ../lib/modules/passwordSelfReset.inc:708 +#: ../lib/modules/passwordSelfReset.inc:855 +msgid "Employee number" +msgstr "Číslo zamestnanca" + +#: ../lib/modules/inetOrgPerson.inc:88 ../lib/modules/inetOrgPerson.inc:212 +#: ../lib/modules/inetOrgPerson.inc:342 ../lib/modules/inetOrgPerson.inc:422 +#: ../lib/modules/inetOrgPerson.inc:665 ../lib/modules/inetOrgPerson.inc:721 +#: ../lib/modules/inetOrgPerson.inc:1919 ../lib/modules/inetOrgPerson.inc:2378 +msgid "Employee type" +msgstr "Druh prac. vzťahu" + +#: ../lib/modules/inetOrgPerson.inc:722 +msgid "Employee type: Contractor, Employee, Intern, Temp, External, ..." +msgstr "" +"Druh pracovného vzťahu: dodávateľ, zamestnanec, interný, dočasný, " +"externý, ..." + +#: ../templates/lists/changePassword.php:464 +#: ../templates/lists/changePassword.php:471 ../templates/login.php:532 +msgid "Empty password submitted. Please try again." +msgstr "Zadané prázdne heslo. Prosím, skúste znova." + +#: ../lib/modules/passwordSelfReset.inc:84 +#: ../lib/modules/passwordSelfReset.inc:172 +msgid "Enable password self reset link" +msgstr "Zapnúť odkaz na obnovenie hesla" + +#: ../lib/modules/selfRegistration.inc:45 +#: ../lib/modules/selfRegistration.inc:92 +msgid "Enable self registration link" +msgstr "Zapnúť odkaz na registráciu" + +#: ../lib/modules/ppolicy.inc:90 +msgid "" +"Enables quality checking (e.g. password length) of passwords. If set to " +"\"force\" then you need to disable password hashing in your LAM server " +"profile to change passwords with LAM." +msgstr "" +"Zapína kontrolu kvality (tj. dĺžku hesla) hesiel. Ak je nastavené na " +"„vynútiť”, budete potrebovať vpynúť odtlačky hesiel vo svojom profile " +"servera LAM (zmena hesiel)." + +#: ../templates/3rdParty/pla/lib/export_functions.php:160 +msgid "Encountered an error while performing search." +msgstr "Nastala chyba pri vykonávaní hľadania." + +#: ../lib/modules/imapAccess.inc:73 ../lib/modules/imapAccess.inc:111 +msgid "Encryption protocol" +msgstr "Šifrovací protokol" + +#: ../lib/modules/imapAccess.inc:74 +msgid "" +"Encryption protocol for connecting to IMAP server. LAM requires an encrypted " +"connection." +msgstr "" +"Šifrovací protokol na spojenie so serverom IMAP. LAM vyžaduje šifrované " +"spojenie." + +#: ../lib/modules/sambaSamAccount.inc:539 +msgid "Eniwetok, Kwajalein" +msgstr "Eniwetok, Kwajalein" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:91 +msgid "Enter the values you would like to add:" +msgstr "Zadajte hodnoty, ktoré chcete pridať:" + +#: ../lib/modules/eduPerson.inc:111 ../lib/modules/eduPerson.inc:115 +#: ../lib/modules/eduPerson.inc:187 ../lib/modules/eduPerson.inc:224 +#: ../lib/modules/eduPerson.inc:376 ../lib/modules/eduPerson.inc:771 +msgid "Entitlements" +msgstr "Oprávnenia" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:471 +msgid "Entries found" +msgstr "Nájdené položky" + +#: ../templates/serverInfo.php:269 +msgid "Entries sent" +msgstr "Odoslané položky" + +#: ../templates/3rdParty/pla/lib/export_functions.php:473 +msgid "Entry" +msgstr "Položka" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:43 +#, php-format +msgid "Entry %s and sub-tree deleted successfully." +msgstr "Položka %s a podstrom úspešne odstránené." + +#: ../templates/3rdParty/pla/htdocs/create.php:90 +msgid "Entry created" +msgstr "Položka vytvorená" + +#: ../templates/delete.php:330 +#: ../templates/3rdParty/pla/htdocs/mass_update.php:26 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:26 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:27 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:24 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:56 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:33 +msgid "Entry does not exist" +msgstr "Položka neexistuje" + +#: ../lib/modules/puppetClient.inc:73 ../lib/modules/puppetClient.inc:77 +#: ../lib/modules/puppetClient.inc:121 ../lib/modules/puppetClient.inc:146 +#: ../lib/modules/puppetClient.inc:154 ../lib/modules/puppetClient.inc:232 +#: ../lib/modules/puppetClient.inc:423 +msgid "Environment" +msgstr "Prostredie" + +#: ../templates/schema/schema.php:166 +msgid "Equality" +msgstr "Zhoda" + +#: ../lib/modules/zarafaUser.inc:561 ../lib/modules/zarafaUser.inc:1315 +msgid "Equipment" +msgstr "Vybavenie" + +#: ../templates/config/mainmanage.php:223 +#: ../templates/3rdParty/pla/lib/Template.php:430 +#: ../templates/3rdParty/pla/lib/Template.php:473 +#: ../templates/3rdParty/pla/lib/Template.php:517 +#: ../templates/3rdParty/pla/lib/functions.php:511 +#: ../templates/3rdParty/pla/lib/functions.php:513 +#: ../templates/3rdParty/pla/lib/ds_myldap.php:217 +#: ../templates/3rdParty/pla/htdocs/import.php:79 +msgid "Error" +msgstr "Chyba" + +#: ../templates/3rdParty/pla/lib/functions.php:1897 +#: ../templates/3rdParty/pla/lib/functions.php:1901 +msgid "Error number" +msgstr "Číslo chyby" + +#: ../lib/modules/mitKerberos.inc:1185 ../lib/modules/heimdalKerberos.inc:1033 +msgid "Error while changing Kerberos password." +msgstr "Chyba pri zmene hesla Kerberos." + +#: ../templates/delete.php:280 +#, php-format +msgid "Error while deleting DN: %s" +msgstr "Chyba pri odstraňovaní DN: %s" + +#: ../help/help.inc:139 +msgid "" +"Every account type needs exactly one base module. This module provides a " +"structural object class." +msgstr "" +"Každý typ účtu vyžaduje práve jeden základný modul. Tento modul poskytuje " +"triedu štrukturálnych objektov." + +#: ../lib/modules/customScripts.inc:60 ../lib/modules/customScripts.inc:73 +#: ../lib/modules/selfRegistration.inc:124 ../lib/modules/zarafaContact.inc:90 +#: ../lib/modules/zarafaGroup.inc:93 ../lib/modules/dhcp_settings.inc:534 +#: ../lib/modules/zarafaUser.inc:139 ../help/help.inc:74 ../help/help.inc:80 +#: ../help/help.inc:86 ../help/help.inc:91 ../help/help.inc:111 +msgid "Example" +msgstr "Príklad" + +#: ../templates/masscreate.php:296 ../templates/masscreate.php:371 +msgid "Example value" +msgstr "Ukážková hodnota" + +#: ../help/help.inc:62 +msgid "Examples" +msgstr "Príklady" + +#: ../templates/config/confmain.php:307 +msgid "Execute" +msgstr "Spustiť" + +#: ../templates/tests/lamdaemonTest.php:269 +msgid "Execute lamdaemon" +msgstr "Spustiť lamdaemon" + +#: ../lib/modules/freeRadius.inc:97 ../lib/modules/freeRadius.inc:123 +#: ../lib/modules/freeRadius.inc:202 ../lib/modules/freeRadius.inc:230 +#: ../lib/modules/freeRadius.inc:432 ../lib/modules/freeRadius.inc:622 +msgid "Expiration date" +msgstr "Dátum vypršania" + +#: ../lib/modules/asteriskAccount.inc:202 +#: ../lib/modules/asteriskAccount.inc:291 +#: ../lib/modules/asteriskAccount.inc:353 +#: ../lib/modules/asteriskAccount.inc:556 +#: ../lib/modules/asteriskAccount.inc:896 +#: ../lib/modules/asteriskAccount.inc:1213 +msgid "Expiration timestamp" +msgstr "Čas vypršania" + +#: ../lib/modules/asteriskAccount.inc:203 +msgid "Expiration timestamp (\"regseconds\" option)." +msgstr "Čas vypršania (voľba \"regseconds\")." + +#: ../lib/types/ppolicyType.inc:86 ../lib/modules/ppolicy.inc:109 +#: ../lib/modules/ppolicy.inc:141 ../lib/modules/ppolicy.inc:167 +#: ../lib/modules/ppolicy.inc:207 ../lib/modules/ppolicy.inc:472 +msgid "Expire warning" +msgstr "Upozornenie na vypršanie" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1081 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1084 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:305 +#: ../templates/3rdParty/pla/htdocs/export_form.php:37 +#: ../templates/3rdParty/pla/htdocs/export_form.php:53 +msgid "Export" +msgstr "Exportovať" + +#: ../templates/pdfedit/pdfmain.php:206 ../templates/pdfedit/pdfmain.php:207 +#: ../help/help.inc:190 +msgid "Export PDF structure" +msgstr "Exportovať štruktúru PDF" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:105 +msgid "Export format" +msgstr "Formát exportu" + +#: ../templates/profedit/profilemain.php:207 +#: ../templates/profedit/profilemain.php:208 ../help/help.inc:172 +msgid "Export profile" +msgstr "Exportovať profil" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Export subtree" +msgstr "Exportovať podstrom" + +#: ../templates/pdfedit/pdfmain.php:117 +#: ../templates/profedit/profilemain.php:132 +msgid "Export successful" +msgstr "Export úspešný." + +#: ../templates/serverInfo.php:349 +msgid "Extended" +msgstr "Rozšírené" + +#: ../lib/types/asteriskExt.inc:143 +#, php-format +msgid "Extension count: %s" +msgstr "Počet rozšírení: %s" + +#: ../lib/types/asteriskExt.inc:94 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskExtension.inc:95 +#: ../lib/modules/asteriskExtension.inc:130 +#: ../lib/modules/asteriskExtension.inc:138 +#: ../lib/modules/asteriskExtension.inc:282 +#: ../lib/modules/asteriskExtension.inc:286 +#: ../lib/modules/asteriskExtension.inc:806 +msgid "Extension name" +msgstr "Meno rozšírenia" + +#: ../lib/modules/asteriskExtension.inc:107 +#: ../lib/modules/asteriskExtension.inc:131 +#: ../lib/modules/asteriskExtension.inc:152 +#: ../lib/modules/asteriskExtension.inc:226 +#: ../lib/modules/asteriskExtension.inc:474 +#: ../lib/modules/asteriskExtension.inc:807 +msgid "Extension owners" +msgstr "Vlastníci rozšírení" + +#: ../lib/modules/asteriskExtension.inc:183 +msgid "Extension with this name already exists." +msgstr "Rozšírenie s týmto názvom už existuje." + +#: ../templates/3rdParty/pla/htdocs/import.php:66 +msgid "Failed" +msgstr "Zlyhalo" + +#: ../lib/modules/mitKerberos.inc:121 ../lib/modules/mitKerberos.inc:245 +#: ../lib/modules/mitKerberos.inc:345 ../lib/modules/mitKerberos.inc:769 +msgid "Failed logins" +msgstr "Neúspešné prihlásenia" + +#: ../templates/initsuff.php:151 +msgid "Failed to create entry!" +msgstr "Zlyhalo vytvorenie položky!" + +#: ../lib/profiles.inc:190 ../lib/pdfstruct.inc:224 +msgid "Failed to export!" +msgstr "Export zlyhal!" + +#: ../lib/profiles.inc:197 ../lib/pdfstruct.inc:231 +msgid "Failed to import!" +msgstr "Import zlyhal!" + +#: ../lib/types/ppolicyType.inc:85 ../lib/modules/ppolicy.inc:105 +#: ../lib/modules/ppolicy.inc:146 ../lib/modules/ppolicy.inc:166 +#: ../lib/modules/ppolicy.inc:273 ../lib/modules/ppolicy.inc:471 +msgid "Failure count interval" +msgstr "Interval počítania zlyhaní" + +#: ../lib/modules/inetOrgPerson.inc:74 ../lib/modules/inetOrgPerson.inc:142 +#: ../lib/modules/inetOrgPerson.inc:191 ../lib/modules/inetOrgPerson.inc:334 +#: ../lib/modules/inetOrgPerson.inc:510 ../lib/modules/inetOrgPerson.inc:650 +#: ../lib/modules/inetOrgPerson.inc:781 ../lib/modules/inetOrgPerson.inc:785 +#: ../lib/modules/inetOrgPerson.inc:1794 ../lib/modules/inetOrgPerson.inc:2371 +#: ../lib/modules/inetOrgPerson.inc:3000 +msgid "Fax number" +msgstr "Číslo faxu" + +#: ../lib/modules/zarafaUser.inc:148 ../lib/modules/zarafaUser.inc:208 +#: ../lib/modules/zarafaUser.inc:417 ../lib/modules/zarafaUser.inc:670 +#: ../lib/modules/zarafaUser.inc:1354 ../lib/modules/zarafaUser.inc:1393 +msgid "Features" +msgstr "Vlastnosti" + +#: ../templates/config/mainmanage.php:227 +#: ../templates/3rdParty/pla/lib/functions.php:533 +#: ../templates/3rdParty/pla/tools/unserialize.php:14 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "File" +msgstr "Súbor" + +#: ../lib/modules/sambaSamAccount.inc:302 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user and $group are replaced with user and group name." +msgstr "" +"Meno súboru (a cesta, relatívna k zdieľaniu netlogon), ktorý má byť spustený " +"pri prihlásení. $user a $group sú nahradené menom používateľa a jeho skupiny." + +#: ../lib/modules/windowsUser.inc:187 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user is replaced with user name." +msgstr "" +"Meno súboru a relatívna cesta k zdieľaniu netlogon, ktorý má byť spustený " +"pri prihlásení. $user je nahradené menom používateľa." + +#: ../lib/modules/zarafaServer.inc:69 ../lib/modules/zarafaServer.inc:105 +#: ../lib/modules/zarafaServer.inc:130 ../lib/modules/zarafaServer.inc:170 +#: ../lib/modules/zarafaServer.inc:212 ../lib/modules/zarafaServer.inc:375 +msgid "File path" +msgstr "Cesta súboru" + +#: ../templates/masscreate.php:237 ../lib/tools/fileUpload.inc:44 +#: ../lib/lists.inc:770 +msgid "File upload" +msgstr "Nahrať súbor" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +#: ../lib/types/zarafaAddressListType.inc:94 +#: ../lib/types/zarafaDynamicGroupType.inc:95 +#: ../lib/modules/zarafaDynamicGroup.inc:84 +#: ../lib/modules/zarafaDynamicGroup.inc:151 +#: ../lib/modules/zarafaDynamicGroup.inc:164 +#: ../lib/modules/zarafaDynamicGroup.inc:232 +#: ../lib/modules/zarafaDynamicGroup.inc:467 +#: ../lib/modules/zarafaContact.inc:84 ../lib/modules/posixGroup.inc:301 +#: ../lib/modules/posixGroup.inc:467 ../lib/modules/zarafaAddressList.inc:72 +#: ../lib/modules/zarafaAddressList.inc:127 +#: ../lib/modules/zarafaAddressList.inc:138 +#: ../lib/modules/zarafaAddressList.inc:199 +#: ../lib/modules/zarafaAddressList.inc:336 ../lib/modules/zarafaUser.inc:133 +#: ../lib/modules/nisnetgroup.inc:97 ../lib/modules/nisnetgroup.inc:470 +#: ../lib/modules/nisMailAlias.inc:82 ../lib/modules/nisMailAlias.inc:273 +#: ../lib/lists.inc:376 ../help/help.inc:150 +msgid "Filter" +msgstr "Filter" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:509 +msgid "Filter performed" +msgstr "Použitý filter" + +#: ../lib/types/user.inc:96 ../lib/modules/selfRegistration.inc:68 +#: ../lib/modules/selfRegistration.inc:125 ../lib/modules/windowsUser.inc:107 +#: ../lib/modules/windowsUser.inc:228 ../lib/modules/windowsUser.inc:383 +#: ../lib/modules/windowsUser.inc:447 ../lib/modules/windowsUser.inc:520 +#: ../lib/modules/windowsUser.inc:1218 ../lib/modules/inetOrgPerson.inc:64 +#: ../lib/modules/inetOrgPerson.inc:140 ../lib/modules/inetOrgPerson.inc:375 +#: ../lib/modules/inetOrgPerson.inc:607 ../lib/modules/inetOrgPerson.inc:713 +#: ../lib/modules/inetOrgPerson.inc:1413 ../lib/modules/inetOrgPerson.inc:2358 +#: ../lib/modules/inetOrgPerson.inc:2923 +msgid "First name" +msgstr "Krstné meno" + +#: ../lib/modules/windowsUser.inc:447 ../lib/modules/windowsUser.inc:448 +#: ../lib/modules/inetOrgPerson.inc:64 ../lib/modules/inetOrgPerson.inc:65 +msgid "First name contains invalid characters!" +msgstr "Krstné meno obsahuje neplatné znaky!" + +#: ../lib/modules/windowsUser.inc:108 ../lib/modules/inetOrgPerson.inc:714 +msgid "First name of user. Only letters, - and spaces are allowed." +msgstr "Krstné meno používateľa. Dovolené sú len písmená a medzery." + +#: ../lib/modules/ddns.inc:78 +msgid "Fix IP addresses" +msgstr "Staická IP adresa" + +#: ../templates/config/confmain.php:396 +msgid "Fixed list" +msgstr "Statický zoznam" + +#: ../lib/modules/posixGroup.inc:346 ../lib/modules/posixAccount.inc:182 +#: ../lib/modules/posixAccount.inc:200 +msgid "Fixed range" +msgstr "Pevný rozsah" + +#: ../templates/pdfedit/pdfpage.php:464 +msgid "Folding marks" +msgstr "Značky skladania" + +#: ../lib/modules/kolabUser.inc:106 +msgid "For automatic invitation handling." +msgstr "Na obsluhu automatických pozvaní." + +#: ../lib/modules/nisnetgroup.inc:94 +msgid "" +"For the upload please specify the entries in the format \"(HOST,USER," +"DOMAIN)\". Multiple entries are separated by semicolon." +msgstr "" +"Položky na nahranie, prosím, zadajte vo formáte „(STROJ,POUŽÍVATEĽ," +"DOMÉNA)\". Viac položiek možno oddeliť bodkočiarkou." + +#: ../templates/lists/changePassword.php:233 +#: ../lib/modules/mitKerberos.inc:176 ../lib/modules/mitKerberos.inc:418 +#: ../lib/modules/shadowAccount.inc:360 ../lib/modules/heimdalKerberos.inc:120 +#: ../lib/modules/heimdalKerberos.inc:340 ../lib/modules.inc:1058 +#: ../help/help.inc:184 +msgid "Force password change" +msgstr "Vynútiť zmenu hesla" + +#: ../lib/modules/passwordSelfReset.inc:640 +msgid "Forgot password?" +msgstr "Zabudnuté heslo?" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:484 ../help/help.inc:224 +msgid "Format" +msgstr "Formát" + +#: ../lib/modules/qmailUser.inc:200 ../lib/modules/qmailUser.inc:270 +#: ../lib/modules/qmailUser.inc:394 ../lib/modules/qmailUser.inc:445 +#: ../lib/modules/qmailUser.inc:539 ../lib/modules/qmailUser.inc:1188 +msgid "Forwarding address" +msgstr "Adresa preposlania" + +#: ../lib/modules/qmailUser.inc:201 +msgid "Forwards all incoming messages for this user to this address." +msgstr "" +"Preposiela všetky prichádzajúce správy tohoto používateľa na zadanú adresu." + +#: ../lib/modules/freeRadius.inc:67 +msgid "FreeRadius" +msgstr "FreeRadius" + +#: ../lib/modules/sambaSamAccount.inc:1351 +msgid "Friday" +msgstr "Piatok" + +#: ../templates/config/confmain.php:331 ../lib/modules/selfRegistration.inc:75 +#: ../lib/modules/selfRegistration.inc:131 +#: ../lib/modules/passwordSelfReset.inc:104 +#: ../lib/modules/passwordSelfReset.inc:212 +#: ../lib/modules/passwordSelfReset.inc:228 ../help/help.inc:218 +msgid "From address" +msgstr "Adresa odosielateľa" + +#: ../templates/config/confmain.php:495 +msgid "From address for password mails is invalid." +msgstr "Neplatný odosielateľ emailov s heslami." + +#: ../lib/modules/asteriskAccount.inc:138 +#: ../lib/modules/asteriskAccount.inc:259 +#: ../lib/modules/asteriskAccount.inc:337 +#: ../lib/modules/asteriskAccount.inc:439 +#: ../lib/modules/asteriskAccount.inc:741 +#: ../lib/modules/asteriskAccount.inc:1197 +msgid "From domain" +msgstr "Doména odosielateľa" + +#: ../lib/modules/asteriskAccount.inc:139 +msgid "From domain setting for this account." +msgstr "Nastavenie domény odosielateľa pre tento účtu." + +#: ../lib/modules/asteriskAccount.inc:134 +#: ../lib/modules/asteriskAccount.inc:257 +#: ../lib/modules/asteriskAccount.inc:336 +#: ../lib/modules/asteriskAccount.inc:432 +#: ../lib/modules/asteriskAccount.inc:732 +#: ../lib/modules/asteriskAccount.inc:1196 +msgid "From user" +msgstr "Odosielateľ" + +#: ../lib/modules/asteriskAccount.inc:135 +msgid "From user setting for this account." +msgstr "nastavenie odosielateľa pre tento účet." + +#: ../lib/modules/asteriskAccount.inc:142 +#: ../lib/modules/asteriskAccount.inc:261 +#: ../lib/modules/asteriskAccount.inc:338 +#: ../lib/modules/asteriskAccount.inc:446 +#: ../lib/modules/asteriskAccount.inc:750 +#: ../lib/modules/asteriskAccount.inc:1198 +msgid "Full contact" +msgstr "Celý kontakt" + +#: ../templates/lists/changePassword.php:267 +#: ../lib/modules/asteriskVoicemail.inc:94 +#: ../lib/modules/asteriskVoicemail.inc:130 +#: ../lib/modules/asteriskVoicemail.inc:163 +#: ../lib/modules/asteriskVoicemail.inc:255 +#: ../lib/modules/asteriskVoicemail.inc:390 +msgid "Full name" +msgstr "Celé meno" + +#: ../lib/modules/asteriskVoicemail.inc:95 +msgid "Full name for Asterisk voicemail mailbox." +msgstr "Celé meno pre halsovú schránku Asterisk." + +#: ../templates/3rdParty/pla/lib/functions.php:537 +#: ../templates/3rdParty/pla/tools/unserialize.php:17 +msgid "Function" +msgstr "Funkcia" + +#: ../lib/modules/windowsUser.inc:272 ../lib/modules/inetOrgPerson.inc:456 +msgid "GB-12345" +msgstr "123 45" + +#: ../lib/modules/posixGroup.inc:346 ../lib/modules/posixGroup.inc:459 +msgid "GID generator" +msgstr "Generátor GID" + +#: ../lib/types/host.inc:96 ../lib/types/group.inc:93 ../lib/types/user.inc:93 +#: ../lib/modules/qmailUser.inc:107 ../lib/modules/qmailUser.inc:228 +#: ../lib/modules/qmailUser.inc:334 ../lib/modules/qmailUser.inc:414 +#: ../lib/modules/qmailUser.inc:574 ../lib/modules/qmailUser.inc:1190 +#: ../lib/modules/posixGroup.inc:188 ../lib/modules/posixGroup.inc:364 +#: ../lib/modules/posixGroup.inc:377 ../lib/modules/posixGroup.inc:419 +#: ../lib/modules/posixGroup.inc:439 ../lib/modules/posixGroup.inc:507 +#: ../lib/modules/posixGroup.inc:530 ../lib/modules/posixAccount.inc:107 +#: ../lib/modules/posixAccount.inc:383 ../lib/modules/posixAccount.inc:1625 +#: ../lib/modules/sambaGroupMapping.inc:317 +#: ../lib/modules/sambaGroupMapping.inc:384 +msgid "GID number" +msgstr "Číslo GID" + +#: ../lib/modules/posixGroup.inc:530 +msgid "" +"GID number has changed. Please select checkbox to change GID number of users " +"and hosts." +msgstr "" +"Číslo GID bolo zmenené. Prosím použite zaškrtávacie pole na zmenu čísla GID " +"používateľov a strojov." + +#: ../lib/modules/posixAccount.inc:107 +#, php-format +msgid "" +"GID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" +msgstr "" +"Číslo GID bolo zmenené. Na zachovanie vlastníctva musíte ako root sputiť " +"tent príkaz: „find / -gid %s -uid %s -exec chgrp %s {} \\;”" + +#: ../lib/modules/posixGroup.inc:537 +msgid "GID number has to be a numeric value!" +msgstr "Číslo GID musí byť číselná hodnota!" + +#: ../lib/modules/qmailUser.inc:459 +msgid "GID number is already in use." +msgstr "GID je už použité." + +#: ../lib/modules/posixAccount.inc:228 ../lib/modules/posixAccount.inc:326 +#: ../lib/modules/posixAccount.inc:368 ../lib/modules/posixAccount.inc:392 +#: ../lib/modules/posixAccount.inc:470 ../lib/modules/posixAccount.inc:508 +#: ../lib/modules/posixAccount.inc:1240 ../lib/modules/posixAccount.inc:1628 +msgid "Gecos" +msgstr "Gecos" + +#: ../lib/modules/windowsUser.inc:518 +msgid "General" +msgstr "Všeobecné" + +#: ../lib/modules/generalInformation.inc:51 +msgid "General information" +msgstr "Všeobecné informácie" + +#: ../templates/config/confmodules.php:164 +#: ../templates/config/confmain.php:205 +#: ../templates/config/moduleSettings.php:163 +#: ../templates/config/conftypes.php:182 +#: ../templates/profedit/profilepage.php:215 +msgid "General settings" +msgstr "Všeobecné nastavenia" + +#: ../templates/lists/changePassword.php:294 ../help/help.inc:216 +msgid "Generate random password" +msgstr "Generovať náhodné heslo" + +#: ../templates/3rdParty/pla/lib/functions.php:63 +#: ../templates/3rdParty/pla/lib/functions.php:595 +msgid "Generic Error" +msgstr "Neošetrená chyba" + +#: ../lib/modules/windowsGroup.inc:65 +msgid "Global" +msgstr "Globálne" + +#: ../templates/pdfedit/pdfmain.php:284 +#: ../templates/profedit/profilemain.php:287 +msgid "Global templates" +msgstr "Globálne šablóny" + +#: ../templates/schema/schema.php:128 ../templates/schema/schema.php:265 +#: ../templates/schema/schema.php:296 ../templates/schema/schema.php:321 +msgid "Go" +msgstr "Ísť" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:215 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:139 +msgid "Go back" +msgstr "Ísť späť" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1864 +msgid "Go to" +msgstr "ísť na" + +#: ../lib/types/ppolicyType.inc:82 ../lib/modules/ppolicy.inc:93 +#: ../lib/modules/ppolicy.inc:142 ../lib/modules/ppolicy.inc:163 +#: ../lib/modules/ppolicy.inc:215 ../lib/modules/ppolicy.inc:468 +msgid "Grace authentication limit" +msgstr "Tolerovaný limit overenia" + +#: ../lib/modules/quota.inc:118 ../lib/modules/quota.inc:396 +msgid "Grace block period" +msgstr "Tolerovaná doba blokov" + +#: ../lib/modules/quota.inc:119 +msgid "" +"Grace block period. Most filesystems use a fixed maximum value of 7 days." +msgstr "" +"Tolerovaná (grace) doba blokov. Väčšina súborových systémov používa pevnú " +"maximálnu hodnotu 7 dní." + +#: ../lib/modules/quota.inc:141 +msgid "" +"Grace inode (files) period. Most filesystems use a fixed maximum value of 7 " +"days." +msgstr "" +"Tolerovaná (grace) doba inodov (súborov). Väčšina súborových systémov " +"používa pevnú maximálnu hodnotu 7 dní." + +#: ../lib/modules/quota.inc:140 ../lib/modules/quota.inc:400 +msgid "Grace inode period" +msgstr "Tolerovaná doba inodov" + +#: ../templates/config/confmain.php:312 +msgid "Group" +msgstr "Skupina" + +#: ../lib/types/group.inc:63 +msgid "Group accounts (e.g. Unix and Samba)" +msgstr "Účty skupín (napr. Unix a Samba)" + +#: ../lib/types/gon.inc:180 ../lib/types/zarafaDynamicGroupType.inc:165 +#: ../lib/types/group.inc:210 ../lib/types/netgroup.inc:169 +#, php-format +msgid "Group count: %s" +msgstr "Počet skupín: %s" + +#: ../lib/types/group.inc:96 ../lib/modules/posixGroup.inc:410 +#: ../lib/modules/nisnetgroup.inc:113 +msgid "Group description" +msgstr "Popis skupiny" + +#: ../lib/modules/posixGroup.inc:424 +msgid "Group description. If left empty group name will be used." +msgstr "Popis skupiny. Ak necháte prázdne, bude použité meno skupiny." + +#: ../lib/types/gon.inc:92 ../lib/types/gon.inc:93 ../lib/types/group.inc:95 +msgid "Group member DNs" +msgstr "DN členov skupiny" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:94 +#: ../lib/types/group.inc:94 ../lib/modules/posixGroup.inc:201 +#: ../lib/modules/posixGroup.inc:259 ../lib/modules/posixGroup.inc:365 +#: ../lib/modules/posixGroup.inc:383 ../lib/modules/posixGroup.inc:427 +#: ../lib/modules/posixGroup.inc:431 ../lib/modules/posixGroup.inc:504 +#: ../lib/modules/windowsGroup.inc:312 +msgid "Group members" +msgstr "Členovia skupiny" + +#: ../lib/types/gon.inc:91 ../lib/types/zarafaDynamicGroupType.inc:91 +#: ../lib/types/group.inc:92 ../lib/types/netgroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:56 +#: ../lib/modules/zarafaDynamicGroup.inc:109 +#: ../lib/modules/zarafaDynamicGroup.inc:158 +#: ../lib/modules/zarafaDynamicGroup.inc:188 +#: ../lib/modules/zarafaDynamicGroup.inc:189 +#: ../lib/modules/zarafaDynamicGroup.inc:213 +#: ../lib/modules/zarafaDynamicGroup.inc:464 ../lib/modules/posixGroup.inc:178 +#: ../lib/modules/posixGroup.inc:368 ../lib/modules/posixGroup.inc:398 +#: ../lib/modules/posixGroup.inc:447 ../lib/modules/posixGroup.inc:506 +#: ../lib/modules/posixGroup.inc:538 ../lib/modules/posixGroup.inc:539 +#: ../lib/modules/posixGroup.inc:540 ../lib/modules/nisnetgroup.inc:76 +#: ../lib/modules/nisnetgroup.inc:105 ../lib/modules/nisnetgroup.inc:132 +#: ../lib/modules/nisnetgroup.inc:144 ../lib/modules/nisnetgroup.inc:186 +#: ../lib/modules/nisnetgroup.inc:574 ../lib/modules/windowsGroup.inc:106 +#: ../lib/modules/windowsGroup.inc:162 ../lib/modules/windowsGroup.inc:220 +#: ../lib/modules/windowsGroup.inc:240 ../lib/modules/windowsGroup.inc:257 +#: ../lib/modules/windowsGroup.inc:615 ../lib/modules/groupOfNames.inc:60 +#: ../lib/modules/groupOfNames.inc:92 ../lib/modules/groupOfNames.inc:129 +#: ../lib/modules/groupOfNames.inc:538 +msgid "Group name" +msgstr "Meno skupiny" + +#: ../lib/modules/zarafaDynamicGroup.inc:188 +msgid "Group name already in use." +msgstr "Meno skupiny je už použité." + +#: ../lib/modules/zarafaDynamicGroup.inc:189 +#: ../lib/modules/zarafaDynamicGroup.inc:190 ../lib/modules/posixGroup.inc:540 +#: ../lib/modules/posixGroup.inc:541 ../lib/modules/nisnetgroup.inc:144 +#: ../lib/modules/windowsGroup.inc:240 ../lib/modules/windowsGroup.inc:241 +msgid "" +"Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Meno skupiny obsahuje neplatné znaky. Platné znaky sú: a-z, A-Z, 0-9 a .-_ !" + +#: ../lib/modules/posixGroup.inc:539 +msgid "Group name in use. Selected next free group name." +msgstr "Meno skupiny je už použité. Vybrané nasledujúce voľné meno skupiny." + +#: ../lib/modules/zarafaDynamicGroup.inc:57 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ ." +msgstr "" +"Meno skupiny, ktorá má byť vytvorená. Platné znaky sú: a-z, A-Z, 0-9 a .-_ ." + +#: ../lib/modules/posixGroup.inc:448 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ . If group name is already used group name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"Meno skupiny, ktorá má byť vytvorená. Platné znaky sú: a-z, A-Z, 0-9 a .-_ . " +"Ak už meno skupiny existuje, bude rozšírené číslom, pričom bude použité " +"nasledujúce voľné číslo." + +#: ../lib/modules/freeRadius.inc:89 ../lib/modules/freeRadius.inc:93 +#: ../lib/modules/freeRadius.inc:121 ../lib/modules/freeRadius.inc:147 +#: ../lib/modules/freeRadius.inc:178 ../lib/modules/freeRadius.inc:227 +#: ../lib/modules/freeRadius.inc:281 ../lib/modules/freeRadius.inc:619 +msgid "Group names" +msgstr "Mená skupín" + +#: ../lib/modules/groupOfNames.inc:44 +msgid "Group of names" +msgstr "Mená skupín" + +#: ../lib/types/gon.inc:62 +msgid "Group of names accounts" +msgstr "Skupina mien účtov" + +#: ../lib/modules/groupOfUniqueNames.inc:42 +msgid "Group of unique names" +msgstr "Skupina jedinečných mien" + +#: ../lib/modules/posixGroup.inc:389 ../lib/modules/posixGroup.inc:435 +msgid "Group password" +msgstr "Heslo skupiny" + +#: ../lib/modules/windowsGroup.inc:142 ../lib/modules/windowsGroup.inc:181 +#: ../lib/modules/windowsGroup.inc:225 ../lib/modules/windowsGroup.inc:298 +#: ../lib/modules/windowsGroup.inc:644 +msgid "Group scope" +msgstr "Záber (scope) skupiny" + +#: ../lib/modules/sambaGroupMapping.inc:282 +#: ../lib/modules/windowsGroup.inc:138 ../lib/modules/windowsGroup.inc:189 +#: ../lib/modules/windowsGroup.inc:224 ../lib/modules/windowsGroup.inc:301 +#: ../lib/modules/windowsGroup.inc:645 +msgid "Group type" +msgstr "Typ skupiny" + +#: ../lib/types/group.inc:54 ../lib/modules/posixGroup.inc:345 +#: ../lib/modules/zarafaGroup.inc:113 ../lib/modules/windowsUser.inc:192 +#: ../lib/modules/windowsUser.inc:195 ../lib/modules/windowsUser.inc:374 +#: ../lib/modules/windowsUser.inc:404 ../lib/modules/windowsUser.inc:581 +#: ../lib/modules/windowsUser.inc:1259 ../lib/modules/windowsUser.inc:1282 +#: ../lib/modules/generalInformation.inc:103 +msgid "Groups" +msgstr "Skupiny" + +#: ../lib/types/gon.inc:53 ../lib/modules/posixAccount.inc:233 +#: ../lib/modules/posixAccount.inc:334 ../lib/modules/posixAccount.inc:395 +#: ../lib/modules/posixAccount.inc:1380 ../lib/modules/posixAccount.inc:1529 +#: ../lib/modules/posixAccount.inc:1637 ../lib/modules/windowsUser.inc:725 +#: ../lib/modules/groupOfNamesUser.inc:47 +#: ../lib/modules/groupOfNamesUser.inc:49 +#: ../lib/modules/groupOfNamesUser.inc:53 +#: ../lib/modules/groupOfNamesUser.inc:57 +#: ../lib/modules/groupOfNamesUser.inc:64 +#: ../lib/modules/groupOfNamesUser.inc:276 +#: ../lib/modules/groupOfNamesUser.inc:312 +msgid "Groups of names" +msgstr "Skupiny mien" + +#: ../lib/modules/dhcp_settings.inc:97 +msgid "H-Node (0x08)" +msgstr "H-Node (0x08)" + +#: ../templates/config/confmain.php:344 ../lib/modules/selfRegistration.inc:81 +#: ../lib/modules/passwordSelfReset.inc:216 +#: ../lib/modules/passwordSelfReset.inc:232 ../help/help.inc:227 +msgid "HTML format" +msgstr "Formát HTML" + +#: ../templates/config/confmain.php:430 ../help/help.inc:120 +msgid "HTTP authentication" +msgstr "Overenie HTTP" + +#: ../lib/modules/zarafaServer.inc:61 ../lib/modules/zarafaServer.inc:93 +#: ../lib/modules/zarafaServer.inc:128 ../lib/modules/zarafaServer.inc:166 +#: ../lib/modules/zarafaServer.inc:188 ../lib/modules/zarafaServer.inc:373 +msgid "HTTP port" +msgstr "Port HTTP" + +#: ../lib/modules/quota.inc:627 ../lib/modules/systemQuotas.inc:377 +msgid "Hard block" +msgstr "Pevný blok" + +#: ../lib/modules/quota.inc:112 ../lib/modules/quota.inc:113 +#: ../lib/modules/quota.inc:395 ../lib/modules/quota.inc:500 +#: ../lib/modules/systemQuotas.inc:119 +msgid "Hard block limit" +msgstr "Pevný limit blokov" + +#: ../lib/modules/quota.inc:629 ../lib/modules/systemQuotas.inc:379 +msgid "Hard inode" +msgstr "Pevný inodov" + +#: ../lib/modules/quota.inc:135 +msgid "Hard inode (files) limit" +msgstr "Pevný limit inodov (súborov)" + +#: ../lib/modules/quota.inc:134 ../lib/modules/quota.inc:399 +#: ../lib/modules/quota.inc:502 ../lib/modules/systemQuotas.inc:123 +msgid "Hard inode limit" +msgstr "Pevný limit inodov" + +#: ../lib/modules/generalInformation.inc:97 +msgid "Has subentries" +msgstr "Má podpoložky" + +#: ../lib/modules/sambaSamAccount.inc:541 +msgid "Hawaii" +msgstr "Havaj" + +#: ../templates/pdfedit/pdfpage.php:455 ../templates/pdfedit/pdfpage.php:556 +#: ../templates/pdfedit/pdfpage.php:563 +msgid "Headline" +msgstr "Hlavička" + +#: ../lib/modules/heimdalKerberos.inc:223 +msgid "Heimdal Kerberos password change command" +msgstr "Príkaz zmeny hesla Heimdal Kerberos" + +#: ../templates/main_header.php:138 ../lib/modules.inc:664 +msgid "Help" +msgstr "Pomocník" + +#: ../lib/tools/schemaBrowser.inc:53 +msgid "Here you can browse LDAP object classes and attributes." +msgstr "Tu môžete prechádzať triedy objektov a atribútov LDAP." + +#: ../lib/modules/sambaSamAccount.inc:381 +msgid "Here you can change the settings for the terminal server access." +msgstr "Tu môžete zmeniť nastavenia prístupu k terminálovému serveru." + +#: ../lib/selfService.inc:367 +msgid "Here you can change your personal settings." +msgstr "Tu môžete zmeniť svoje osobné nastavenia." + +#: ../templates/masscreate.php:129 +msgid "Here you can create multiple accounts by providing a CSV file." +msgstr "Tu môžete vytvoriť viacero účtov nahraním súboru CSV." + +#: ../lib/modules/dhcp_settings.inc:184 +msgid "Here you can enter a description for this DHCP entry." +msgstr "Tu môžete zadať popis tejto položky DHCP." + +#: ../lib/modules/nisnetgroup.inc:81 ../lib/modules/groupOfNames.inc:65 +msgid "Here you can enter a description for this group." +msgstr "Tu môžete zadať popis tejto skupiny." + +#: ../lib/modules/sudoRole.inc:60 +msgid "Here you can enter a description for this role." +msgstr "Tu môžete zadať popis tejto roly." + +#: ../lib/modules/zarafaContact.inc:85 ../lib/modules/posixGroup.inc:468 +#: ../lib/modules/zarafaUser.inc:134 ../lib/modules/nisnetgroup.inc:98 +#: ../lib/modules/nisMailAlias.inc:83 +msgid "" +"Here you can enter a filter value. Only entries which contain the filter " +"text will be shown." +msgstr "" +"Tu môžete zadať hodnotu filtra. Zobrazené budú len položky, ktoré obsahujú " +"filtrovaný text." + +#: ../lib/modules/posixAccount.inc:434 ../lib/modules/groupOfNamesUser.inc:58 +msgid "" +"Here you can enter a list of additional group memberships. The group names " +"are separated by commas." +msgstr "" +"Tu môžete zadať zoznam dodatočných skupín, ktorých je členom. Mená skupín sú " +"oddelené čiarkami." + +#: ../lib/modules/device.inc:59 +msgid "Here you can enter a serial number for this device." +msgstr "Tu môžete zadať sériové číslo tohoto zariadenia." + +#: ../lib/modules/windowsUser.inc:160 ../lib/modules/windowsUser.inc:164 +msgid "Here you can enter additional web sites for the user." +msgstr "Tu môžete zadať ďalšie webové stránky tohoto používateľa." + +#: ../help/help.inc:193 +msgid "" +"Here you can enter an alternative mail address for the password. To use the " +"user's primary email address please leave the field blank." +msgstr "" +"Tu môžete zadať ďalšie emailové adresy pre heslo. Aby bola použitá primárna " +"emailová adresa používateľa, nechajte, prosím, toto pole prázdne." + +#: ../lib/modules/customFields.inc:69 +msgid "" +"Here you can enter one or more object classes (separated by comma). This " +"will allow you to add/remove the group's attributes including their object " +"classes." +msgstr "" +"Tu môžete zadať jednu alebo viac tried objektov (oddelených čiarkami). Tým " +"môžete pridať/odstrániť atribúty skupiny, vrátane ich tried objektov." + +#: ../lib/modules/inetOrgPerson.inc:869 ../lib/modules/inetOrgPerson.inc:873 +msgid "Here you can enter the user's department." +msgstr "Tu môžete zadať oddelenie používateľa." + +#: ../lib/modules/zarafaUser.inc:149 +msgid "Here you can explicitly enable and disable Zarafa features." +msgstr "Tu môžete výslovne povoliť a zakázať vlastnosti Zarafa." + +#: ../help/help.inc:191 +msgid "" +"Here you can export PDF structures to other server profiles (overwrite " +"existing). You may also export a structure to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"structure with this name." +msgstr "" +"Tu môžete exportovať štruktúry PDF do profilov iných serverov (prepíše " +"existujúci). Môžete tiež exportovať štruktúru do globálnych šablón. V tomto " +"prípade bude vždy kopírovaná do všetkých profilov serverov, ktoré ešte " +"nemajú štruktúru s týmto menom." + +#: ../help/help.inc:173 +msgid "" +"Here you can export account profiles to other server profiles (overwrite " +"existing). You may also export a profile to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"profile with this name." +msgstr "" +"Tu môžete exportovať profily účtov do profilov iných serverov (prepíše " +"existujúci). Môžete tiež exportovať štruktúru do globálnych šablón. V tomto " +"prípade bude vždy kopírovaná do všetkých profilov serverov, ktoré ešte " +"nemajú štruktúru s týmto menom." + +#: ../help/help.inc:189 +msgid "" +"Here you can import PDF structures from other server profiles (overwrite " +"existing)." +msgstr "" +"Tu môžete importovať štruktúry PDF z profilov iných serverov (prepíše " +"existujúci)." + +#: ../help/help.inc:171 +msgid "" +"Here you can import account profiles from other server profiles (overwrite " +"existing)." +msgstr "" +"Tu môžete importovať profily účtov z iných profilov servov (prepíše " +"existujúci)." + +#: ../help/help.inc:151 +msgid "" +"Here you can input simple filter expressions (e.g. 'value' or 'v*'). The " +"filter is case-sensitive." +msgstr "" +"Tu môžete zadať jednoduché výrazy filtra (napr. 'hodnota' alebo 'h*'). " +"Filter rozlišuje veľkosť písmen." + +#: ../help/help.inc:177 +msgid "" +"Here you can load an account profile to set default settings for your " +"account. The \"default\" profile is automatically loaded for new accounts." +msgstr "" +"Tu môžete načítať profil účtu a tým nastaviť predvolené hodnoty svojho účtu. " +"„Predvolený” profil je pri nových účtoch načítaný automaticky." + +#: ../lib/tools/profileEditor.inc:53 +msgid "Here you can manage your account profiles." +msgstr "Tu môžete spravovať svoje profily účtov." + +#: ../help/help.inc:179 +msgid "" +"Here you can select a PDF structure and export the account to a PDF file." +msgstr "Tu môžete vybrať štruktúru PDF a exportovať účet do súboru PDF." + +#: ../help/help.inc:145 +msgid "" +"Here you can select where LAM should save its log messages. System logging " +"will go to Syslog on Unix systems and event log on Windows. You can also " +"select an extra file." +msgstr "" +"Tu môžete vybrať, kde má LAM ukladať svoj záznam. Systémový záznam pôjde na " +"Unixových systémoch do Syslog a na Windows do záznamu udalostí. Môžete si " +"zvoliť aj samostatný súbor." + +#: ../help/help.inc:106 +msgid "" +"Here you can select which plugins you want to use for account management." +msgstr "" +"Tu môžete vybrať, ktoré zásuvné moduly chcete používať na správu účtov." + +#: ../help/help.inc:119 +msgid "" +"Here you can set a limit for LDAP searches. This will restrict the number of " +"results for LDAP searches. Please use this if LAM's LDAP queries produce too " +"much load." +msgstr "" +"Tu môžete nastaviť limit pre hľadania v LDAP. Tento limit obmedzí počet " +"nájdených výsledkov hľadaní LDAP. Prosím, použite tento limit, ak požiadavky " +"LDAP od LAM produkujú veľkú záťaž." + +#: ../help/help.inc:215 +msgid "" +"Here you can specify additional CSS links to change the layout of the self " +"service pages. This is useful to adapt them to your corporate design. Please " +"enter one link per line." +msgstr "" +"Tu môžete zadať dodatočné odkazy CSS, na zmenu vzhľadu samoobslužných " +"stránok. Je to užitočné na ich prispôsobenie firemnému dizajnu. Prosím, " +"zadajte jeden odkaz na riadok." + +#: ../help/help.inc:149 +msgid "" +"Here you can specify minimum requirements for passwords. The character " +"classes are: lowercase, uppercase, numeric and symbols." +msgstr "" +"Tu môžete zadať minimálne požiadavky na heslá. Druhy znakov sú: malé " +"písmená, veľké písmená, číslice a špeciálne znaky." + +#: ../lib/modules/nisnetgroup.inc:85 +msgid "" +"Here you can specify subgroups which are included in this NIS netgroup. All " +"members of the subgroups will be treated as members of this group." +msgstr "" +"Tu môžete zadať podskupiny, ktoré sú zahrnuté v tejto sieťovej skupine NIS. " +"Všetci členovia podskupín budú považovaní aj za členov tejto skupiny." + +#: ../help/help.inc:123 +msgid "" +"Here you can specify the DN and password of the bind user that will be used " +"for the LDAP search. This is required if your LDAP server does not allow " +"anonymous access." +msgstr "" +"Tu môžete zadať DN a heslo používateľa väzby (bind), ktoré budú použité na " +"hľadania v LDAP. Toto nastavenie je vyžadované, ak váš server LDAP " +"nepovoľuje anonymný prístup." + +#: ../lib/modules/hostObject.inc:73 +msgid "" +"Here you can specify the list of host names where this account has login " +"privileges. The wildcard \"*\" represents all hosts. You may also use \"!\" " +"in front of a host name to deny access to a host." +msgstr "" +"Tu môžete zadať zoznam mien strojov, kde sa môže používateľ prihlásiť. " +"Zástupný znak „*” reprezentuje všetky stroje. Môžete použiť aj znak „!” pred " +"menom stroja, čím zakážete prístup k tomuto stroju." + +#: ../lib/modules/sambaDomain.inc:95 +msgid "" +"Here you can specify the minimum number of characters for a user password." +msgstr "Tu môžete zadať minimálny počet znakov používateľských hesiel." + +#: ../templates/lists/changePassword.php:322 +msgid "Here you can specify the new password yourself." +msgstr "Tu môžete sami zadať svoje nové heslo." + +#: ../lib/modules/sambaSamAccount.inc:372 +msgid "Here you can specify the shadowing mode." +msgstr "Tu môžete zadať tieňový režim." + +#: ../lib/tools/tests.inc:53 +msgid "Here you can test if certain LAM features work on your installation." +msgstr "" +"Tu môžete skontrolovať, či vo vašej inštalácii fungujú niektoré vlastnosti " +"LAM." + +#: ../templates/config/conftypes.php:283 +#: ../lib/types/zarafaAddressListType.inc:95 +#: ../lib/types/zarafaDynamicGroupType.inc:96 +#: ../lib/modules/zarafaDynamicGroup.inc:72 +#: ../lib/modules/zarafaDynamicGroup.inc:129 +#: ../lib/modules/zarafaDynamicGroup.inc:162 +#: ../lib/modules/zarafaDynamicGroup.inc:266 +#: ../lib/modules/zarafaDynamicGroup.inc:478 +#: ../lib/modules/zarafaContact.inc:64 ../lib/modules/zarafaContact.inc:153 +#: ../lib/modules/zarafaContact.inc:161 ../lib/modules/zarafaContact.inc:236 +#: ../lib/modules/zarafaContact.inc:561 ../lib/modules/zarafaGroup.inc:79 +#: ../lib/modules/zarafaGroup.inc:140 ../lib/modules/zarafaGroup.inc:190 +#: ../lib/modules/zarafaGroup.inc:290 ../lib/modules/zarafaGroup.inc:671 +#: ../lib/modules/zarafaAddressList.inc:60 +#: ../lib/modules/zarafaAddressList.inc:105 +#: ../lib/modules/zarafaAddressList.inc:136 +#: ../lib/modules/zarafaAddressList.inc:207 +#: ../lib/modules/zarafaAddressList.inc:346 ../lib/modules/zarafaUser.inc:73 +#: ../lib/modules/zarafaUser.inc:331 ../lib/modules/zarafaUser.inc:380 +#: ../lib/modules/zarafaUser.inc:408 ../lib/modules/zarafaUser.inc:609 +#: ../lib/modules/zarafaUser.inc:1340 ../help/help.inc:156 +msgid "Hidden" +msgstr "Skryté" + +#: ../help/help.inc:157 +msgid "" +"Hidden account types will not show up in LAM. This is useful if you want to " +"display e.g. only groups but still need to manage their members." +msgstr "" +"Skryté typy účtov nebudú v LAM zobrazované. Je to užitočné, ak chcete " +"zobraziť napríklad len skupiny, ale chcete spravovať ich členov." + +#: ../lib/modules/asteriskAccount.inc:234 +#: ../lib/modules/asteriskAccount.inc:245 ../lib/modules/qmailUser.inc:95 +#: ../lib/modules/qmailUser.inc:188 ../lib/modules/zarafaGroup.inc:102 +#: ../lib/modules/zarafaGroup.inc:128 ../lib/modules/sambaSamAccount.inc:386 +#: ../lib/modules/sambaSamAccount.inc:576 ../lib/modules/posixAccount.inc:224 +#: ../lib/modules/posixAccount.inc:405 ../lib/modules/zarafaUser.inc:125 +#: ../lib/modules/zarafaUser.inc:182 ../lib/modules/inetOrgPerson.inc:304 +#: ../lib/modules/inetOrgPerson.inc:876 ../lib/modules/freeRadius.inc:105 +#: ../lib/modules/freeRadius.inc:111 ../lib/modules/zarafaServer.inc:81 +#: ../lib/modules/zarafaServer.inc:152 ../lib/modules/qmailGroup.inc:61 +#: ../lib/modules/qmailGroup.inc:112 ../lib/modules/windowsGroup.inc:102 +#: ../lib/modules/windowsGroup.inc:149 +msgid "Hidden options" +msgstr "Skryté voľby" + +#: ../templates/config/confmain.php:357 +msgid "Hidden tools" +msgstr "Skryté nástroje" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1115 +msgid "Hide" +msgstr "Skryť" + +#: ../lib/modules/customScripts.inc:81 ../lib/modules/customScripts.inc:91 +#: ../lib/modules/customScripts.inc:100 +msgid "Hide command in messages" +msgstr "Skryť príkaz v správach" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1116 +msgid "Hide internal attributes" +msgstr "Skryť interné atribúty" + +#: ../templates/3rdParty/pla/lib/page.php:407 +msgid "Hide/Unhide the tree" +msgstr "Skryť/Zobraziť strom" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:58 +msgid "Hint" +msgstr "Tip" + +#: ../templates/masscreate.php:243 +msgid "" +"Hint: Format all cells as text in your spreadsheet program and turn off auto " +"correction." +msgstr "" +"Tip: Vo svojom tabuľkovom kalkulátore naformátujte všetky polia ako text a " +"vypnite automatické opravy." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1005 +msgid "Hint: To delete an attribute, empty the text field and click save." +msgstr "" +"Tip: Na odstránenie atribútu, vyprázdnite textové pole a kliknite na Uložiť." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1342 +msgid "" +"Hint: You must choose exactly one structural object class (shown in bold " +"above)" +msgstr "" +"Tip: Musíte zvoliť práve jednu štrukturálnu triedu objektu (zobrazená vyššie " +"tučne)" + +#: ../lib/modules/posixAccount.inc:495 ../lib/modules/windowsUser.inc:193 +#: ../lib/modules/groupOfNamesUser.inc:54 +msgid "Hold the CTRL-key to (de)select multiple groups." +msgstr "Stlačte kláves CTRL na výber/zrušenie viacerých skupín." + +#: ../lib/types/user.inc:98 ../lib/modules/sambaSamAccount.inc:223 +#: ../lib/modules/sambaSamAccount.inc:344 +#: ../lib/modules/sambaSamAccount.inc:1476 +#: ../lib/modules/sambaSamAccount.inc:1891 ../lib/modules/posixAccount.inc:82 +#: ../lib/modules/posixAccount.inc:83 ../lib/modules/posixAccount.inc:85 +#: ../lib/modules/posixAccount.inc:288 ../lib/modules/posixAccount.inc:386 +#: ../lib/modules/posixAccount.inc:437 ../lib/modules/posixAccount.inc:441 +#: ../lib/modules/posixAccount.inc:445 ../lib/modules/posixAccount.inc:478 +#: ../lib/modules/posixAccount.inc:1015 ../lib/modules/posixAccount.inc:1258 +#: ../lib/modules/posixAccount.inc:1436 ../lib/modules/posixAccount.inc:1536 +#: ../lib/modules/posixAccount.inc:1626 +msgid "Home directory" +msgstr "Domovský adresár" + +#: ../lib/modules/posixAccount.inc:85 +#, php-format +msgid "" +"Home directory changed. To keep home directory you have to run the following " +"command as root: 'mv %s %s'" +msgstr "" +"Domovský adresár zmenený. Na jeho zachovanie musíte spustiť ako root " +"nasledujúci príkaz: „mv %s %s”" + +#: ../lib/modules/sambaSamAccount.inc:207 +#: ../lib/modules/sambaSamAccount.inc:224 +#: ../lib/modules/sambaSamAccount.inc:292 +#: ../lib/modules/sambaSamAccount.inc:473 +#: ../lib/modules/sambaSamAccount.inc:581 +#: ../lib/modules/sambaSamAccount.inc:1178 +#: ../lib/modules/sambaSamAccount.inc:1484 +#: ../lib/modules/sambaSamAccount.inc:1725 +#: ../lib/modules/sambaSamAccount.inc:1876 +#: ../lib/modules/sambaSamAccount.inc:1892 +msgid "Home drive" +msgstr "Domovský disk" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:95 +#: ../lib/modules/sambaSamAccount.inc:210 +#: ../lib/modules/sambaSamAccount.inc:295 +#: ../lib/modules/sambaSamAccount.inc:481 +#: ../lib/modules/sambaSamAccount.inc:583 +#: ../lib/modules/sambaSamAccount.inc:1186 +#: ../lib/modules/sambaSamAccount.inc:1729 +#: ../lib/modules/sambaSamAccount.inc:1875 +msgid "Home path" +msgstr "Domovská cesta" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:96 +msgid "Home path is invalid." +msgstr "Neplatná domovská cesta." + +#: ../lib/modules/zarafaUser.inc:122 +msgid "Home server for the user." +msgstr "Domovský server používateľa." + +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:144 +#: ../lib/modules/inetOrgPerson.inc:330 ../lib/modules/inetOrgPerson.inc:494 +#: ../lib/modules/inetOrgPerson.inc:644 ../lib/modules/inetOrgPerson.inc:820 +#: ../lib/modules/inetOrgPerson.inc:824 ../lib/modules/inetOrgPerson.inc:1740 +#: ../lib/modules/inetOrgPerson.inc:2367 ../lib/modules/inetOrgPerson.inc:2978 +msgid "Home telephone number" +msgstr "Číslo telefónu domov" + +#: ../lib/modules/posixAccount.inc:82 ../lib/modules/posixAccount.inc:84 +msgid "Homedirectory contains invalid characters." +msgstr "Domovský adresár obsahuje neplatné znaky." + +#: ../lib/types/sudo.inc:79 ../lib/modules/asteriskAccount.inc:98 +#: ../lib/modules/asteriskAccount.inc:316 +#: ../lib/modules/asteriskAccount.inc:330 +#: ../lib/modules/asteriskAccount.inc:380 +#: ../lib/modules/asteriskAccount.inc:663 +#: ../lib/modules/asteriskAccount.inc:1190 ../lib/modules/nisnetgroup.inc:210 +#: ../lib/modules/nisnetgroup.inc:580 ../lib/modules/hostObject.inc:143 +msgid "Host" +msgstr "Stroj" + +#: ../lib/types/host.inc:62 +msgid "Host accounts (e.g. Samba)" +msgstr "Účty strojov (napr. Samba)" + +#: ../lib/types/host.inc:193 +#, php-format +msgid "Host count: %s" +msgstr "Počet strojov: %s" + +#: ../lib/types/host.inc:94 +msgid "Host description" +msgstr "Popis stroja" + +#: ../lib/modules/account.inc:89 ../lib/modules/posixAccount.inc:509 +#: ../lib/modules/posixAccount.inc:517 +msgid "Host description. If left empty host name will be used." +msgstr "" +"Popis stroja. Ak ponecháte toto pole prázdne, bude použité meno stroja." + +#: ../lib/modules/hostObject.inc:84 ../lib/modules/hostObject.inc:91 +#: ../lib/modules/hostObject.inc:255 +msgid "Host list" +msgstr "Zoznam strojov" + +#: ../lib/types/host.inc:91 ../lib/types/host.inc:92 +#: ../lib/modules/account.inc:84 ../lib/modules/account.inc:209 +#: ../lib/modules/windowsHost.inc:67 ../lib/modules/windowsHost.inc:87 +#: ../lib/modules/windowsHost.inc:112 ../lib/modules/windowsHost.inc:124 +#: ../lib/modules/windowsHost.inc:135 ../lib/modules/windowsHost.inc:287 +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:100 ../lib/modules/posixAccount.inc:345 +#: ../lib/modules/posixAccount.inc:376 ../lib/modules/posixAccount.inc:504 +#: ../lib/modules/posixAccount.inc:1222 ../lib/modules/posixAccount.inc:1616 +#: ../lib/modules/nisnetgroup.inc:146 ../lib/modules/nisnetgroup.inc:474 +msgid "Host name" +msgstr "Meno stroja" + +#: ../lib/modules/posixAccount.inc:104 +msgid "Host name already exists!" +msgstr "meno stroja už existuje!" + +#: ../lib/modules/windowsHost.inc:124 ../lib/modules/windowsHost.inc:125 +#: ../lib/modules/posixAccount.inc:98 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/nisnetgroup.inc:146 +msgid "" +"Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Meno stroja obsahuje neplatné znaky. Platné znaky sú: a-z, A-Z, 0-9 a .-_ !" + +#: ../lib/modules/posixAccount.inc:100 +msgid "Host name in use. Selected next free host name." +msgstr "Meno stroja je už použité. Vybrané nasledujúce voľné meno stroja." + +#: ../lib/modules/sambaSamAccount.inc:1078 +msgid "Host name must end with $!" +msgstr "Meno stroja musí končiť na $!" + +#: ../lib/modules/account.inc:85 ../lib/modules/posixAccount.inc:505 +msgid "" +"Host name of the host which should be created. Valid characters are: a-z,A-" +"Z,0-9, .-_$. Host names are always ending with $. If last character is not $ " +"it will be added. If host name is already used host name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"Meno stroja, ktorý má byť vytvorený. Platné znaky sú: a-z,A-Z,0-9, .-_$. " +"Mená strojov musia vždy končiť na $. Ak posledný znak nie je $, bude " +"pridaný. Ak už je meno stroja použité, bude k nemu pridané najbližšie voľné " +"číslo." + +#: ../lib/types/host.inc:53 ../lib/modules/posixAccount.inc:77 +#: ../lib/modules/posixAccount.inc:78 ../lib/modules/posixAccount.inc:80 +#: ../lib/modules/posixAccount.inc:199 ../lib/modules/sudoRole.inc:67 +#: ../lib/modules/sudoRole.inc:92 ../lib/modules/sudoRole.inc:140 +#: ../lib/modules/sudoRole.inc:174 ../lib/modules/sudoRole.inc:183 +#: ../lib/modules/sudoRole.inc:291 ../lib/modules/sudoRole.inc:685 +#: ../lib/modules/fixed_ip.inc:70 ../lib/modules/hostObject.inc:62 +#: ../lib/modules/hostObject.inc:72 +msgid "Hosts" +msgstr "Stroje" + +#: ../lib/modules/qmailUser.inc:345 +msgid "I am out of office." +msgstr "Som mimo kancelárie." + +#: ../lib/modules/posixGroup.inc:533 ../lib/modules/posixAccount.inc:88 +#: ../lib/modules/posixAccount.inc:985 +msgid "ID is already in use" +msgstr "ID je už použité" + +#: ../lib/modules/posixGroup.inc:531 ../lib/modules/posixGroup.inc:532 +#: ../lib/modules/posixGroup.inc:533 ../lib/modules/posixGroup.inc:632 +#: ../lib/modules/posixAccount.inc:86 ../lib/modules/posixAccount.inc:87 +#: ../lib/modules/posixAccount.inc:88 ../lib/modules/posixAccount.inc:976 +#: ../lib/modules/posixAccount.inc:981 ../lib/modules/posixAccount.inc:985 +msgid "ID-Number" +msgstr "Číslo ID" + +#: ../lib/modules/zarafaUser.inc:340 ../lib/modules/zarafaUser.inc:674 +#: ../lib/modules/zarafaUser.inc:1397 +msgid "IMAP" +msgstr "IMAP" + +#: ../lib/modules/imapAccess.inc:79 ../lib/modules/imapAccess.inc:115 +msgid "IMAP admin user" +msgstr "Administrátor IMAP" + +#: ../lib/modules/imapAccess.inc:82 ../lib/modules/imapAccess.inc:118 +msgid "IMAP password input" +msgstr "Zadanie hesla IMAP" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ipHost.inc:48 +#: ../lib/modules/ipHost.inc:58 ../lib/modules/ipHost.inc:127 +#: ../lib/modules/asteriskAccount.inc:218 +#: ../lib/modules/asteriskAccount.inc:299 +#: ../lib/modules/asteriskAccount.inc:357 +#: ../lib/modules/asteriskAccount.inc:584 +#: ../lib/modules/asteriskAccount.inc:936 +#: ../lib/modules/asteriskAccount.inc:1217 ../lib/modules/freeRadius.inc:77 +#: ../lib/modules/freeRadius.inc:115 ../lib/modules/freeRadius.inc:186 +#: ../lib/modules/freeRadius.inc:218 ../lib/modules/freeRadius.inc:305 +#: ../lib/modules/freeRadius.inc:616 ../lib/modules/fixed_ip.inc:94 +#: ../lib/modules/fixed_ip.inc:343 ../lib/modules/fixed_ip.inc:523 +msgid "IP address" +msgstr "IP adresa" + +#: ../lib/modules/ddns.inc:91 ../lib/modules/ddns.inc:105 +#: ../lib/modules/ddns.inc:114 ../lib/modules/ddns.inc:374 +#: ../lib/modules/ddns.inc:417 +msgid "IP address of the DNS server" +msgstr "IP adresa servera DNS" + +#: ../lib/modules/asteriskAccount.inc:219 +msgid "IP address of the peer. Valid only for realtime peers." +msgstr "IP adresa partnera (peer). Platné len pre partnerov v reálnom čase." + +#: ../lib/modules/asteriskAccount.inc:227 +msgid "IP address or domain name of the registration server." +msgstr "IP adresa alebo doménové meno registračného servera." + +#: ../lib/modules/ipHost.inc:62 ../lib/modules/ipHost.inc:77 +#: ../lib/modules/ipHost.inc:97 ../lib/modules/ipHost.inc:308 +msgid "IP addresses" +msgstr "IP adresa" + +#: ../lib/modules/fixed_ip.inc:98 +msgid "IP list" +msgstr "Zoznam IP" + +#: ../lib/modules/passwordSelfReset.inc:132 +#: ../lib/modules/passwordSelfReset.inc:183 +msgid "Identification method" +msgstr "Metóda identifikácie" + +#: ../templates/masscreate.php:292 ../templates/masscreate.php:367 +msgid "Identifier" +msgstr "Identifikátor" + +#: ../lib/modules/sambaSamAccount.inc:231 +#: ../lib/modules/sambaSamAccount.inc:1502 +#: ../lib/modules/sambaSamAccount.inc:1903 +msgid "Idle time limit" +msgstr "Limit doby nečinnosti" + +#: ../lib/modules/freeRadius.inc:101 ../lib/modules/freeRadius.inc:125 +#: ../lib/modules/freeRadius.inc:150 ../lib/modules/freeRadius.inc:210 +#: ../lib/modules/freeRadius.inc:233 ../lib/modules/freeRadius.inc:321 +#: ../lib/modules/freeRadius.inc:620 +msgid "Idle timeout" +msgstr "Časový limit nečinnosti" + +#: ../lib/modules/qmailUser.inc:249 +msgid "" +"If account status is set to deleted, the earliest date when the mail message " +"store including all remaining content will be deleted from the filesystem." +msgstr "" +"Ak je stav účtu nastavený na zmazaný, bude úložisko správ, vrátane celého " +"existujúceho obsahu, pri najbližšej príležitosti odstránené zo súborového " +"systému." + +#: ../lib/modules/ppolicyUser.inc:53 +msgid "" +"If activated then the user is forced to change his password at the next " +"login." +msgstr "" +"Ak je zaškrtnuté, potom používateľ musí pri nasledujúcom prihlásení zmeniť " +"heslo." + +#: ../lib/modules/sambaSamAccount.inc:258 +msgid "If checked Unix password will also be used as Samba password." +msgstr "Ak je zaškrtnuté, bude Unixové heslo použité aj ako heslo Samba." + +#: ../lib/modules/posixAccount.inc:487 +msgid "" +"If checked account will be deactivated by putting a \"!\" before the " +"encrypted password." +msgstr "" +"Ak je zaškrtnuté, bude účet deaktivovaný pridaním znaku „!” pred šifrované " +"heslo." + +#: ../lib/modules/sambaSamAccount.inc:264 +msgid "If checked no password will be used." +msgstr "Ak je zaškrtnuté, nebude použité heslo." + +#: ../lib/modules/windowsUser.inc:178 +msgid "If checked password does not expire." +msgstr "Ak je zaškrtnuté, bude heslo vždy platné." + +#: ../lib/modules/sambaSamAccount.inc:270 +msgid "If checked password does not expire. (Setting X-Flag)" +msgstr "Ak je zaškrtnuté, bude heslo vždy platné. (Nastavenie príznaku X)" + +#: ../lib/modules/windowsUser.inc:175 +msgid "" +"If checked then the account is locked. You may only unlock accounts but not " +"lock them." +msgstr "" +"Ak je zaškrtnuté, účet je zamknutý. Účet môžete len odomknúť, nie zamknúť." + +#: ../lib/modules/windowsUser.inc:172 +msgid "If checked then the account will be deactivated." +msgstr "Ak je zaškrtnuté, bude účet deaktivovaný." + +#: ../lib/modules/sambaSamAccount.inc:276 +msgid "If checked then the account will be deactivated. (Setting D-Flag)" +msgstr "Ak je zaškrtnuté, bude účet deaktivovaný. (Nastavenie príznaku D)" + +#: ../lib/modules/sambaSamAccount.inc:279 +msgid "" +"If checked then the account will be locked (setting L-Flag). You usually " +"want to use this setting to unlock user accounts which were locked because " +"of failed login attempts." +msgstr "" +"Ak je zaškrtnuté, bude účet zamknutý (nastavenie príznaku L). Zvyčajne " +"budete chcieť toto nastavenie použiť na odomknutie používateľského účtu, " +"ktorý bol predtým zamknutý kvôli neúspešným pokusom o prihlásenie." + +#: ../help/help.inc:159 +msgid "" +"If checked then the user will not be able to create new entries of this " +"account type." +msgstr "" +"Ak je zaškrtnuté, používateľ nebude môcť vytvárať nové položky tohoto typu " +"účtu." + +#: ../help/help.inc:161 +msgid "" +"If checked then the user will not be able to delete entries of this account " +"type." +msgstr "" +"Ak je zaškrtnuté, používateľ nebude môcť odstraňovať položky tohoto typu " +"účtu." + +#: ../lib/modules/posixGroup.inc:420 +msgid "" +"If empty GID number will be generated automaticly depending on your " +"configuration settings." +msgstr "" +"Ak je prázdne, bude číslo GID vygenerované automaticky, na základe vašich " +"nastavení." + +#: ../lib/modules/qmailUser.inc:229 +msgid "If empty GID number will be generated automaticly." +msgstr "Ak je prázdne, bude číslo GID vygenerované automaticky." + +#: ../lib/modules/qmailUser.inc:225 ../lib/modules/posixAccount.inc:426 +msgid "If empty UID number will be generated automaticly." +msgstr "Ak je prázdne, bude číslo UID vygenerované automaticky." + +#: ../lib/modules/ppolicy.inc:118 +msgid "" +"If enabled the user will not be allowed to login after there have been a " +"specified number of consecutive failed login attempts." +msgstr "" +"Ak je zapnuté, používateľovi nebude dovolené prihlásenie po zadanom počte po " +"sebe nasledujúcich neúspešných pokusov o prihlásenie." + +#: ../help/help.inc:121 +msgid "" +"If enabled then LAM will use user and password that is provided by the web " +"server via HTTP authentication." +msgstr "" +"Ak je zapnuté, bude LAM používať používateľa a heslo, ktoré je poskytnuté " +"webovým serverom cez autentifikáciu HTTP." + +#: ../lib/modules/ppolicy.inc:122 +msgid "" +"If enabled users must change their passwords when they first login after a " +"password is set or reset by the administrator." +msgstr "" +"Ak je zapnuté, musia používatelia zmeniť svoje heslá pri prvom prihlásené po " +"nastavení alebo vymazaní hesla administrátorom." + +#: ../lib/modules/asteriskAccount.inc:207 +msgid "" +"If registration context is specified, Asterisk will dynamically create and " +"destroy a NoOp priority 1 extension for a given peer who registers or " +"unregisters with Asterisk." +msgstr "" +"Ak je zadaný kontext registrácie, bude Asterisk dynamicky vytvárať a rušiť " +"rozšírenie NoOp priority 1 daného partnera, ktorý sa registruje alebo " +"odregistruje pomocou Asterisk." + +#: ../lib/modules/sambaDomain.inc:103 +msgid "If set then users need to login to change their password." +msgstr "" +"Ak je nastavené, musia sa používatelia prihlásiť, aby mohli zmeniť heslo." + +#: ../lib/modules/sambaSamAccount.inc:261 +msgid "If set to \"true\" Unix password will also be used as Samba password." +msgstr "" +"Ak je nastavené na „pravda”, bude Unixové heslo použité aj ako heslo Samba." + +#: ../lib/modules/sambaSamAccount.inc:282 +msgid "If set to \"true\" account will be deactivated. (Setting D-Flag)" +msgstr "" +"Ak je nastavené na „pravda”, bude účet deaktivovaný. (Nastavenie príznaku D)" + +#: ../lib/modules/sambaSamAccount.inc:267 +msgid "If set to \"true\" no password will be used." +msgstr "Ak je nastavené na „pravda”, nebude použité heslo." + +#: ../lib/modules/sambaSamAccount.inc:273 +msgid "If set to \"true\" password does not expire. (Setting X-Flag)" +msgstr "" +"Ak je nastavené na „pravda”, platnosť hesla nevyprší. (Nastavenie príznaku X)" + +#: ../lib/modules/qmailGroup.inc:190 +msgid "" +"If set to true then all incomming mails needs to come from a member of the " +"list." +msgstr "" +"Ak je nastavené, potom všetky prichádzajúce emaily musia prichádzať od " +"členov konferencie." + +#: ../lib/modules/customFields.inc:109 +msgid "" +"If the LDAP attribute has no value then the checkbox is set to this value." +msgstr "" +"Ak atribút LDAP nemá hodnotu, potom je zaškrtávacie políčko nastavené " +"nastavené na túto hodnotu." + +#: ../lib/modules/zarafaUser.inc:90 +msgid "" +"If the mailbox size reaches the soft quota limit, the user will not be able " +"to send email until the size of the mailbox is reduced." +msgstr "" +"Keď veľkosť poštovej schránky dosiahne mäkký limit kvóty, používateľ nebude " +"môcť posielať emaily, kým nezmenší veľkosť poštovej schránky." + +#: ../lib/modules/windowsUser.inc:124 ../lib/modules/windowsUser.inc:128 +msgid "If the user has multiple telephone numbers then please enter it here." +msgstr "Ak má používateľ viac telefónnych čísel, zadajte ich, prosím, tu." + +#: ../lib/modules/qmailGroup.inc:222 +msgid "" +"If this is set to true then an incomming mail needs to be approved by the " +"sender." +msgstr "" +"Ak je nastavené, potom všetky prichádzajúce emaily musia byť schválené " +"odosielateľom." + +#: ../lib/modules/qmailGroup.inc:137 ../lib/modules/qmailGroup.inc:141 +msgid "" +"If you enter one or more email addresses then mail delivery errors are " +"forwarded to these addresses instead of the sender of the original mail." +msgstr "" +"Ak zadáte jednu alebo viac emailových adries, budú chyby doručenia emailu " +"presmerované na tieto adresy, namiesto odosielateľovi pôvodného emailu." + +#: ../lib/modules/sambaSamAccount.inc:321 +msgid "" +"If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" +"Ak ponecháte toto pole prázdne, LAM použije: uidNumber*2 + " +"sambaAlgorithmicRidBase." + +#: ../lib/modules/zarafaServer.inc:78 +msgid "" +"If you run Zarafa behind a reverse proxy then you can specify the server URL " +"here (e.g. \"https://zproxy.example.com:237/z1\")." +msgstr "" +"Ak vaša Zarafa beží za reverzným proxy, potom tu môžete zadať URL servera " +"(napr. \"https://zproxy.example.com:237/z1\")." + +#: ../lib/modules/passwordSelfReset.inc:129 +msgid "" +"If you select this option then the user is only authenticated by his email " +"address. LAM Pro will not ask for the answer to the security question. " +"Please handle with care." +msgstr "" +"Ak si vyberiete túto voľbu, potom bude používateľ autentifikovaný len " +"pomocou svojej emailovej adresy. LAM Pro nebude klásť bezpečnostné otázky. " +"Prosím, používajte opatrne." + +#: ../lib/modules/heimdalKerberos.inc:124 +msgid "If you set this option then the user cannot request TGT-based tickets." +msgstr "" +"Ak nastavíte túto voľbu, používateľ nebude môcť požiadať o lístky založené " +"na TGT." + +#: ../lib/modules/mitKerberos.inc:168 ../lib/modules/heimdalKerberos.inc:142 +msgid "If you set this option then the user cannot request any tickets." +msgstr "" +"Ak nastavíte túto voľbu, používateľ nebude môcť požiadať o žiadne lístky." + +#: ../lib/modules/mitKerberos.inc:156 ../lib/modules/heimdalKerberos.inc:127 +msgid "" +"If you set this option then the user cannot request forwardable tickets." +msgstr "" +"Ak nastavíte túto voľbu, používateľ nebude môcť požiadať o prenosné lístky." + +#: ../lib/modules/mitKerberos.inc:153 ../lib/modules/heimdalKerberos.inc:136 +msgid "If you set this option then the user cannot request post-dated tickets." +msgstr "" +"Ak nastavíte túto voľbu, používateľ nebude môcť požiadať o antedatované " +"lístky." + +#: ../lib/modules/mitKerberos.inc:162 ../lib/modules/heimdalKerberos.inc:130 +msgid "If you set this option then the user cannot request proxiable tickets." +msgstr "" +"Ak nastavíte túto voľbu, používateľ nebude môcť požiadať o proxovateľné " +"lístky." + +#: ../lib/modules/mitKerberos.inc:159 ../lib/modules/heimdalKerberos.inc:133 +msgid "If you set this option then the user cannot request renewable tickets." +msgstr "" +"Ak nastavíte túto voľbu, používateľ nebude môcť požiadať o obnoviteľné " +"lístky." + +#: ../lib/modules/mitKerberos.inc:180 ../lib/modules/heimdalKerberos.inc:139 +msgid "If you set this option then the user cannot request service tickets." +msgstr "" +"Ak nastavíte túto voľbu, používateľ nebude môcť požiadať o servisné lístky." + +#: ../lib/modules/mitKerberos.inc:177 ../lib/modules/sambaSamAccount.inc:285 +#: ../lib/modules/windowsUser.inc:190 ../lib/modules/heimdalKerberos.inc:121 +#: ../help/help.inc:185 +msgid "" +"If you set this option then the user has to change his password at the next " +"login." +msgstr "" +"Ak nastavíte túto voľbu, bude musieť používateľ zmeniť svoje heslo pri " +"nasledujúcom prihlásení." + +#: ../lib/modules/mitKerberos.inc:174 +msgid "" +"If you set this option then the user must preauthenticate himself using a " +"hardware device." +msgstr "" +"Ak nastavíte túto voľbu, bude sa musieť používateľ najprv predautentifikovať " +"pomocou hardvérového zariadenia." + +#: ../lib/modules/mitKerberos.inc:171 ../lib/modules/heimdalKerberos.inc:145 +msgid "If you set this option then the user must preauthenticate himself." +msgstr "" +"Ak nastavíte túto voľbu, bude sa musieť používateľ najprv predautentifikovať." + +#: ../lib/modules/mitKerberos.inc:183 ../lib/modules/heimdalKerberos.inc:148 +msgid "" +"If you set this option then this account is marked as password change " +"service." +msgstr "" +"Ak nastavíte túto voľbu, bude tento účet označený ako služba zmeny hesla." + +#: ../lib/modules/selfRegistration.inc:128 +msgid "" +"If you use the object class \"inetOrgPerson\" and do not provide the \"cn\" " +"attribute then LAM will set it to the user name value." +msgstr "" +"Ak používate triedu objektov „inetOrgPerson” a neposkytnete atribút „cn”, " +"potom ho LAM nastaví na hodnotu mena používateľa." + +#: ../help/help.inc:100 +msgid "" +"If you want to change the current preferences password, please enter it here." +msgstr "Ak chcete zmeniť aktuálne heslo do nastavení, prosím, zadajte ho tu." + +#: ../help/help.inc:135 +msgid "" +"If you want to change your master configuration password, please enter it " +"here." +msgstr "" +"Ak chcete zmeniť svoje hlavné heslo do nastavenia, zadajte ho, prosím, tu." + +#: ../lib/modules/sambaGroupMapping.inc:357 +msgid "If you want to use a well known RID you can select a well known group." +msgstr "" +"Ak chcete použiť všeobecne známe RID, môžete použiť všeobecne známu skupinu." + +#: ../help/help.inc:110 +msgid "" +"If your server runs on another port then add a comma and the port number " +"after the server." +msgstr "" +"Ak váš server beží na inom porte, pridajte za server čiarku a číslo portu." + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:49 +msgid "Image not available" +msgstr "Obrázok nie je dostupný" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:292 +#: ../templates/3rdParty/pla/htdocs/import.php:45 +#: ../templates/3rdParty/pla/htdocs/import_form.php:19 +msgid "Import" +msgstr "Importovať" + +#: ../templates/pdfedit/pdfmain.php:200 ../templates/pdfedit/pdfmain.php:201 +#: ../help/help.inc:188 +msgid "Import PDF structures" +msgstr "Importovať štruktúru PDF" + +#: ../templates/profedit/profilemain.php:201 +#: ../templates/profedit/profilemain.php:202 ../help/help.inc:170 +msgid "Import profiles" +msgstr "Importovať profily" + +#: ../templates/pdfedit/pdfmain.php:109 +#: ../templates/profedit/profilemain.php:124 +msgid "Import successful" +msgstr "Import úspešný!" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:87 +msgid "Include system attributes" +msgstr "Zahrnúť systémové atribúty" + +#: ../lib/tools/serverInfo.inc:53 +msgid "Information about the LDAP server." +msgstr "Informácie o servere LDAP." + +#: ../lib/modules/sambaSamAccount.inc:226 +#: ../lib/modules/sambaSamAccount.inc:350 +#: ../lib/modules/sambaSamAccount.inc:1488 +#: ../lib/modules/sambaSamAccount.inc:1898 +msgid "Inherit client startup configuration" +msgstr "Zdediť nastavenie spustenia klienta" + +#: ../templates/schema/schema.php:396 ../templates/schema/schema.php:417 +msgid "Inherited from" +msgstr "Zdediť od" + +#: ../templates/schema/schema.php:157 ../templates/schema/schema.php:353 +msgid "Inherits from" +msgstr "Dedí od" + +#: ../lib/modules/sambaSamAccount.inc:227 +#: ../lib/modules/sambaSamAccount.inc:353 +#: ../lib/modules/sambaSamAccount.inc:1490 +#: ../lib/modules/sambaSamAccount.inc:1899 +msgid "Initial program" +msgstr "Východzí program" + +#: ../lib/modules/windowsUser.inc:111 ../lib/modules/windowsUser.inc:246 +#: ../lib/modules/windowsUser.inc:384 ../lib/modules/windowsUser.inc:523 +#: ../lib/modules/windowsUser.inc:1219 ../lib/modules/inetOrgPerson.inc:146 +#: ../lib/modules/inetOrgPerson.inc:155 ../lib/modules/inetOrgPerson.inc:356 +#: ../lib/modules/inetOrgPerson.inc:390 ../lib/modules/inetOrgPerson.inc:686 +#: ../lib/modules/inetOrgPerson.inc:904 ../lib/modules/inetOrgPerson.inc:1424 +#: ../lib/modules/inetOrgPerson.inc:2383 ../lib/modules/inetOrgPerson.inc:3170 +msgid "Initials" +msgstr "Iniciály" + +#: ../templates/serverInfo.php:282 ../templates/serverInfo.php:368 +msgid "Initiated" +msgstr "Inicializované" + +#: ../lib/modules/quota.inc:57 ../lib/modules/systemQuotas.inc:98 +msgid "Inode hard quota" +msgstr "Pevná kvóta inodov" + +#: ../lib/modules/quota.inc:57 ../lib/modules/quota.inc:58 +#: ../lib/modules/systemQuotas.inc:98 ../lib/modules/systemQuotas.inc:99 +msgid "" +"Inode hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Pevná kvóta inodov obsahuje neplatné znaky. Dovolené sú len prirodzené čísla." + +#: ../lib/modules/quota.inc:61 ../lib/modules/systemQuotas.inc:102 +msgid "Inode quota" +msgstr "Kvóta inodov" + +#: ../lib/modules/quota.inc:55 ../lib/modules/systemQuotas.inc:96 +msgid "Inode soft quota" +msgstr "Mäkka kvóta inodov" + +#: ../lib/modules/quota.inc:55 ../lib/modules/quota.inc:56 +#: ../lib/modules/systemQuotas.inc:96 ../lib/modules/systemQuotas.inc:97 +msgid "" +"Inode soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Mäkka kvóta inodov obsahuje neplatné znaky. Dovolené sú len prirodzené čísla." + +#: ../lib/modules/quota.inc:61 ../lib/modules/quota.inc:62 +#: ../lib/modules/systemQuotas.inc:102 ../lib/modules/systemQuotas.inc:103 +msgid "Inode soft quota must be smaller than inode hard quota." +msgstr "Mäkka kvóta inodov musí byť menšia ako pevná kvóta inodov." + +#: ../lib/modules/asteriskAccount.inc:146 +#: ../lib/modules/asteriskAccount.inc:263 +#: ../lib/modules/asteriskAccount.inc:339 +#: ../lib/modules/asteriskAccount.inc:453 +#: ../lib/modules/asteriskAccount.inc:763 +#: ../lib/modules/asteriskAccount.inc:1199 +msgid "Insecure" +msgstr "nebezpečné" + +#: ../lib/modules/sambaSamAccount.inc:95 +msgid "Inserted user or group name in home path." +msgstr "" +"Meno používateľa alebo skupiny bolo pridané do cesty domovského adresára." + +#: ../lib/modules/sambaSamAccount.inc:101 +msgid "Inserted user or group name in logon script." +msgstr "" +"Meno používateľa alebo skupiny bolo pridané do prihlasovacieho skriptu." + +#: ../lib/modules/sambaSamAccount.inc:98 +msgid "Inserted user or group name in profile path." +msgstr "Meno používateľa alebo skupiny bolo pridané do cesty profilu." + +#: ../lib/modules/fixed_ip.inc:380 +msgid "Invalid MAC address." +msgstr "Neplatná adresa MAC." + +#: ../templates/massBuildAccounts.php:201 +msgid "Invalid RDN attribute!" +msgstr "Neplatný atribút RDN!" + +#: ../templates/3rdParty/pla/htdocs/rename.php:42 +msgid "Invalid RDN value" +msgstr "Neplatná hodnota RDN" + +#: ../templates/3rdParty/pla/lib/import_functions.php:560 +msgid "Invalid entry" +msgstr "Neplatná položky" + +#: ../lib/modules/selfRegistration.inc:150 +msgid "Invalid format for the specification of additional attributes." +msgstr "Neplatný formát špecifikácie dodatočných atribútov." + +#: ../lib/modules/imapAccess.inc:165 +msgid "Invalid password for IMAP admin or other problem occured." +msgstr "Neplatné heslo administrátora IMAP alebo nastal iný problém." + +#: ../lib/modules/inetOrgPerson.inc:3696 +msgid "Invalid request" +msgstr "Neplatná požiadavka" + +#: ../lib/modules/kolabUser.inc:98 ../lib/modules/kolabUser.inc:105 +#: ../lib/modules/kolabUser.inc:140 ../lib/modules/kolabUser.inc:166 +#: ../lib/modules/kolabUser.inc:240 ../lib/modules/kolabUser.inc:635 +#: ../lib/modules/kolabUser.inc:757 +msgid "Invitation policy" +msgstr "Politika pozvaní" + +#: ../lib/modules/kolabUser.inc:109 +msgid "Invitation policy list" +msgstr "Zoznam politík pozvaní" + +#: ../lib/modules/sambaSamAccount.inc:556 +msgid "Islamabad, Karachi" +msgstr "Islamabád, Karáči" + +#: ../lib/modules/range.inc:109 +msgid "It is not possible to delete all ranges." +msgstr "Nie je možné odstrániť všetky rozsahy." + +#: ../lib/modules/posixGroup.inc:531 ../lib/modules/posixAccount.inc:87 +msgid "" +"It is possible that this ID-number is reused. This can cause several " +"problems because files with old permissions might still exist. To avoid this " +"warning set maxUID to a higher value." +msgstr "" +"Je možné, že toto číslo ID je použité znova. Môže to spôsobiť viacero " +"problémov, pretože stále môžu existovať súbory so starými právami. Aby ste " +"sa vyhli tomuto upozorneniu, nastavte maxUID na vyššiu hodnotu." + +#: ../lib/modules/inetOrgPerson.inc:86 ../lib/modules/inetOrgPerson.inc:146 +#: ../lib/modules/inetOrgPerson.inc:209 ../lib/modules/inetOrgPerson.inc:338 +#: ../lib/modules/inetOrgPerson.inc:406 ../lib/modules/inetOrgPerson.inc:659 +#: ../lib/modules/inetOrgPerson.inc:705 ../lib/modules/inetOrgPerson.inc:709 +#: ../lib/modules/inetOrgPerson.inc:1883 ../lib/modules/inetOrgPerson.inc:2357 +#: ../lib/modules/inetOrgPerson.inc:3181 +msgid "Job title" +msgstr "Pracovné zaradenie" + +#: ../lib/modules/inetOrgPerson.inc:706 ../lib/modules/inetOrgPerson.inc:710 +msgid "Job title of user: President, department manager, ..." +msgstr "Pracovné zaradenie používateľa: Prezident, vedúci oddelenia, ..." + +#: ../lib/lists.inc:297 +msgid "Jump 10 pages backward" +msgstr "Prejsť o 10 strán späť" + +#: ../lib/lists.inc:317 +msgid "Jump 10 pages forward" +msgstr "Prejsť o 10 strán vpred" + +#: ../templates/schema/schema.php:255 +msgid "Jump to a matching rule" +msgstr "Prejsť na vyhovujúce pravidlo" + +#: ../templates/schema/schema.php:114 +msgid "Jump to an attribute type" +msgstr "Prejsť na typ atribútu" + +#: ../templates/schema/schema.php:308 ../templates/schema/schema.php:358 +#: ../templates/schema/schema.php:373 +msgid "Jump to an object class" +msgstr "Prejsť na triedu objektu" + +#: ../lib/lists.inc:292 +msgid "Jump to first page" +msgstr "Prejsť na prvú stranu" + +#: ../lib/lists.inc:322 +msgid "Jump to last page" +msgstr "Prejsť na poslednú stranu" + +#: ../lib/modules/mitKerberos.inc:87 ../lib/modules/heimdalKerberos.inc:74 +msgid "Kerberos" +msgstr "Kerberos" + +#: ../lib/modules/kolabUser.inc:73 +msgid "Kolab" +msgstr "Kolab" + +#: ../lib/modules/posixGroup.inc:456 +msgid "" +"LAM checks if the entered group name and GID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique group names or " +"GIDs." +msgstr "" +"LAM kontroluje, či sú zadané meno skupiny a GID jedinečné. Tu môžete zadať " +"príponu LDAP, ktorá je použitá na hľadanie duplikátov. Predvolene je použitá " +"prípona typu účtu. Túto hodnotu budete potrebovať meniť len, ak používate " +"viac profilov servera s rôznymi OU, ale s požiadavkou mať jedinečné mená " +"skupín alebo GID." + +#: ../lib/modules/posixAccount.inc:450 +msgid "" +"LAM checks if the entered user name and UID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique user names or " +"UIDs." +msgstr "" +"LAM kontroluje, či sú zadané meno používateľa UID jedinečné. Tu môžete zadať " +"príponu LDAP, ktorá je použitá na hľadanie duplikátov. Predvolene je použitá " +"prípona typu účtu. Túto hodnotu budete potrebovať meniť len, ak používate " +"viac profilov servera s rôznymi OU, ale s požiadavkou mať jedinečné mená " +"používateľov alebo UID." + +#: ../templates/login.php:258 ../templates/config/index.php:85 +msgid "LAM configuration" +msgstr "Nastavenie LAM" + +#: ../templates/massBuildAccounts.php:239 +msgid "LAM has checked your input and is now ready to create the accounts." +msgstr "LAM skontroloval váš vstup a je teraz pripravený vytvoriť účty." + +#: ../lib/modules/posixGroup.inc:444 ../lib/modules/posixAccount.inc:422 +#: ../lib/modules/inetOrgPerson.inc:881 ../lib/modules/customFields.inc:121 +msgid "" +"LAM supports CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 and SMD5 to generate the " +"hash value of passwords. SSHA and CRYPT are the most common but CRYPT does " +"not support passwords greater than 8 letters. We do not recommend to use " +"plain text passwords." +msgstr "" +"LAM podporuje na generovanie odtlačku hesiel CRYPT, CRYPT-SHA512, SHA, SSHA, " +"MD5 a SMD5. SSHA a CRYPT sú používané najčastejšie, ale CRYPT nepodporuje " +"heslá dlhšie ako 8 znakov. Neodporúčame používať heslá v prostom texte " +"(nešifrované)." + +#: ../templates/tests/index.php:50 +msgid "LAM tests" +msgstr "Testy LAM" + +#: ../lib/modules/imapAccess.inc:118 +msgid "LAM user password" +msgstr "Heslo používateľa LAM" + +#: ../templates/massDoUpload.php:132 +#, php-format +msgid "LAM was unable to create account %s! An LDAP error occured." +msgstr "LAM nemohol vytvoriť účet %s! Nastala chyba LDAP." + +#: ../lib/modules/sambaGroupMapping.inc:435 +msgid "LAM was unable to find a Samba 3 domain with this name!" +msgstr "LAM nemohol nájsť doménu Samba 3 s týmto menom!" + +#: ../lib/modules/sambaSamAccount.inc:118 +msgid "LAM was unable to find a domain with this name!" +msgstr "LAM nemohol nájsť doménu s týmto menom!" + +#: ../lib/modules/posixAccount.inc:105 ../lib/modules/windowsUser.inc:1088 +msgid "LAM was unable to find a group with this name!" +msgstr "LAM nemohol nájsť skupinu s týmto menom!" + +#: ../lib/modules/posixAccount.inc:2098 ../lib/modules/posixAccount.inc:2159 +#: ../lib/modules/windowsUser.inc:1165 ../lib/modules/groupOfNamesUser.inc:406 +#, php-format +msgid "LAM was unable to modify group memberships for group: %s" +msgstr "LAM nemohol zmeniť členstvo v skupine: %s" + +#: ../lib/modules/posixGroup.inc:460 ../lib/modules/posixAccount.inc:458 +msgid "" +"LAM will automatically suggest UID/GID numbers. You can either use a fixed " +"range of numbers or an LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "" +"LAM bude automaticky navrhovať čísla UID/GID. Môžete použiť bu pevný rozsah " +"čísel alebo položku LDAP, s triedou objektu \"sambaUnixIdPool\"." + +#: ../help/help.inc:197 +msgid "LAM will search for accounts in this part of the LDAP tree." +msgstr "LAM bude hľadať účty v tejto časti stromu LDAP." + +#: ../lib/modules/posixAccount.inc:401 +msgid "" +"LAM will suggest a user name based on e.g. first and last name. Here you can " +"specify the suggestion. %sn% will be replaced by the last name. @givenname@ " +"will be replaced by the first character of first name. Only attributes of " +"tab Personal may be used." +msgstr "" +"LAM navrhne používateľské meno založené na rodnom mene a priezvisku. Tu " +"môžete zadať návrhy. %sn% bude nahradené priezviskom. @givenname@ bude " +"nahradené prvým znakom rodného mena. Použité môžu byť len atribúty záložky " +"Osobné." + +#: ../help/help.inc:199 +msgid "" +"LAM will use this LDAP DN and password to search for accounts. It is " +"sufficient to specify an account with read rights. If nothing is inserted " +"then LAM will try to connect anonymously." +msgstr "" +"LAM použije na hľadanie účtov toto DN a heslo LDAP. Stačí zadať účet s " +"právom na čítanie. Ak nie je nič zadané, LAM sa pokúsi pripojiť anonymne." + +#: ../lib/modules/qmailUser.inc:57 +msgid "LDAP + program" +msgstr "LDAP + program" + +#: ../templates/config/confmodules.php:97 ../templates/config/confmain.php:127 +#: ../templates/config/moduleSettings.php:96 +#: ../templates/config/conftypes.php:115 +msgid "LDAP Account Manager Configuration" +msgstr "Nastavenie LDAP Account Manager" + +#: ../templates/config/conftypes.php:366 +msgid "LDAP Suffix is invalid!" +msgstr "Neplatná prípona LDAP!" + +#: ../templates/serverInfo.php:182 +msgid "LDAP entries" +msgstr "Položky LDAP" + +#: ../lib/modules/qmailGroup.inc:166 ../lib/modules/qmailGroup.inc:170 +msgid "LDAP entries that are allowed to send to this list." +msgstr "Položky LDAP, ktoré majú povolené posielať do tejto konferencie." + +#: ../lib/modules/qmailGroup.inc:150 ../lib/modules/qmailGroup.inc:154 +msgid "LDAP entries that are member of this list." +msgstr "Položky LDAP, ktoré sú členmi tejto konferencie." + +#: ../lib/modules/qmailGroup.inc:158 ../lib/modules/qmailGroup.inc:162 +msgid "LDAP entries that moderate this list (e.g. approve mails)." +msgstr "" +"Položky LDAP, ktoré moderujú túto konferenciu (napr. schvaľovanie emailov)." + +#: ../templates/login.php:631 +msgid "LDAP error, server says:" +msgstr "Chyba LDAP, server odpovedal:" + +#: ../templates/config/confmain.php:420 +msgid "LDAP filter" +msgstr "Filter LDAP" + +#: ../lib/modules/qmailGroup.inc:182 ../lib/modules/qmailGroup.inc:186 +msgid "" +"LDAP filter to specify allowed senders of this list (e.g. " +"\"((objectclass=qmailUser)(employeeType=manager))\")." +msgstr "" +"Filter LDAP na definovanie povolených odosielateľov tejto konferencie (napr. " +"„((objectclass=qmailUser)(employeeType=manager))”)." + +#: ../lib/modules/qmailGroup.inc:174 ../lib/modules/qmailGroup.inc:178 +msgid "" +"LDAP filter to specify members of this list (e.g. \"((objectclass=qmailUser)" +"(employeeType=accountant))\")." +msgstr "" +"Filter LDAP na definovanie členov tejto konferencie (napr. " +"„((objectclass=qmailUser)(employeeType=accountant))”)." + +#: ../lib/modules.inc:1302 +msgid "LDAP operation successful." +msgstr "Operácia LDAP úspešná." + +#: ../templates/3rdParty/pla/lib/functions.php:1894 +msgid "LDAP said" +msgstr "LDAP odpovedal" + +#: ../templates/config/confmain.php:397 ../help/help.inc:116 +msgid "LDAP search" +msgstr "Hľadanie LDAP" + +#: ../help/help.inc:200 +msgid "LDAP search attribute" +msgstr "Hľadaný atribút LDAP" + +#: ../lib/account.inc:705 +msgid "LDAP search failed! Please check your preferences." +msgstr "Hľadanie LDAP zlyhalo! Prosím, skontrolujte svoje nastavenia." + +#: ../templates/config/confmain.php:253 ../help/help.inc:118 +msgid "LDAP search limit" +msgstr "Limit hľadania LDAP" + +#: ../templates/login.php:449 +msgid "LDAP server" +msgstr "Server LDAP" + +#: ../lib/account.inc:696 +msgid "LDAP sizelimit exceeded, not all entries are shown." +msgstr "Bol dosiahnutý limit veľkosti LDAP, nebudú zobrazené všetky položky." + +#: ../templates/config/confmain.php:416 ../templates/config/conftypes.php:252 +#: ../templates/profedit/profilepage.php:202 ../help/help.inc:71 +#: ../help/help.inc:196 +msgid "LDAP suffix" +msgstr "Prípona LDAP" + +#: ../templates/massDoUpload.php:86 +msgid "LDAP upload in progress. Please wait." +msgstr "Prebieha nahrávanie LDAP. Prosím počkajte." + +#: ../help/help.inc:198 +msgid "LDAP user and password" +msgstr "Používateľ a heslo LDAP" + +#: ../templates/serverInfo.php:109 +msgid "LDAP version" +msgstr "Verzia LDAP" + +#: ../templates/3rdParty/pla/lib/export_functions.php:442 +msgid "LDIF Export" +msgstr "Export LDIF" + +#: ../templates/3rdParty/pla/lib/import_functions.php:149 +#: ../templates/3rdParty/pla/htdocs/import.php:71 +msgid "LDIF import" +msgstr "Import LDIF" + +#: ../templates/3rdParty/pla/lib/import_functions.php:170 +msgid "LDIF import only supports version 1" +msgstr "Import LDIF podporuje len verziu 1" + +#: ../lib/modules/customFields.inc:76 ../lib/modules/customFields.inc:870 +#: ../lib/modules/customFields.inc:1288 ../lib/modules/customFields.inc:2190 +msgid "Label" +msgstr "Menovka" + +#: ../templates/tests/lamdaemonTest.php:201 +msgid "" +"Lamdaemon path does not end with \".pl\". Did you enter the full path to the " +"script?" +msgstr "" +"Cesta k lamdaemon nemá na konci „.pl”. Zadali ste úplnú cestu ku skriptu?" + +#: ../templates/tests/lamdaemonTest.php:185 +msgid "Lamdaemon server and path" +msgstr "Server a cesta landeamon" + +#: ../templates/config/confmain.php:322 +msgid "Lamdaemon settings" +msgstr "Nastavenia landeamon" + +#: ../templates/tests/lamdaemonTest.php:135 +msgid "Lamdaemon successfully run." +msgstr "Lamdaemon úspešne spustený." + +#: ../templates/tests/index.php:52 ../templates/tests/lamdaemonTest.php:52 +#: ../lib/tools/tests.inc:110 +msgid "Lamdaemon test" +msgstr "Test landeamon" + +#: ../templates/tests/lamdaemonTest.php:291 +msgid "Lamdaemon test finished." +msgstr "Test landeamon skončený." + +#: ../templates/tests/lamdaemonTest.php:273 +msgid "Lamdaemon version" +msgstr "Verzia landeamon" + +#: ../templates/tests/lamdaemonTest.php:283 +msgid "Lamdaemon: Quota module installed" +msgstr "Lamdaemon: modul Quota nainštalovaný" + +#: ../templates/tests/lamdaemonTest.php:279 +msgid "Lamdaemon: check NSS LDAP" +msgstr "Lamdaemon: kontrola NSS LDAP" + +#: ../templates/tests/lamdaemonTest.php:286 +msgid "Lamdaemon: read quotas" +msgstr "Lamdaemon: číta kvóty" + +#: ../templates/login.php:387 +msgid "Language" +msgstr "Jazyk" + +#: ../templates/config/confmain.php:536 +msgid "Language is not defined!" +msgstr "Jazyk nie je definovaný!" + +#: ../templates/config/confmain.php:292 +msgid "Language settings" +msgstr "Nastavenia jazyka" + +#: ../lib/modules/mitKerberos.inc:137 ../lib/modules/mitKerberos.inc:249 +#: ../lib/modules/mitKerberos.inc:405 ../lib/modules/mitKerberos.inc:792 +msgid "Last login" +msgstr "Posledné prihlásenie" + +#: ../lib/types/user.inc:97 ../lib/modules/selfRegistration.inc:69 +#: ../lib/modules/selfRegistration.inc:126 ../lib/modules/windowsUser.inc:143 +#: ../lib/modules/windowsUser.inc:234 ../lib/modules/windowsUser.inc:392 +#: ../lib/modules/windowsUser.inc:449 ../lib/modules/windowsUser.inc:521 +#: ../lib/modules/windowsUser.inc:1227 ../lib/modules/inetOrgPerson.inc:66 +#: ../lib/modules/inetOrgPerson.inc:140 ../lib/modules/inetOrgPerson.inc:381 +#: ../lib/modules/inetOrgPerson.inc:608 ../lib/modules/inetOrgPerson.inc:717 +#: ../lib/modules/inetOrgPerson.inc:1417 ../lib/modules/inetOrgPerson.inc:2359 +#: ../lib/modules/inetOrgPerson.inc:2934 +msgid "Last name" +msgstr "Priezvisko" + +#: ../lib/modules/windowsUser.inc:449 ../lib/modules/windowsUser.inc:450 +#: ../lib/modules/inetOrgPerson.inc:66 ../lib/modules/inetOrgPerson.inc:67 +msgid "Last name contains invalid characters or is empty!" +msgstr "Priezvisko je prázdne alebo obsahuje neplatné znaky!" + +#: ../lib/modules/windowsUser.inc:144 ../lib/modules/inetOrgPerson.inc:718 +msgid "Last name of user. Only letters, - and spaces are allowed." +msgstr "Priezvisko používateľa. Povolené sú len písmená a medzery." + +#: ../lib/modules/mitKerberos.inc:133 ../lib/modules/mitKerberos.inc:248 +#: ../lib/modules/mitKerberos.inc:397 ../lib/modules/mitKerberos.inc:788 +#: ../lib/modules/ppolicyUser.inc:125 ../lib/modules/shadowAccount.inc:160 +#: ../lib/modules/shadowAccount.inc:194 ../lib/modules/shadowAccount.inc:356 +#: ../lib/modules/shadowAccount.inc:489 +msgid "Last password change" +msgstr "Posledná zmena hesla" + +#: ../lib/modules/asteriskAccount.inc:230 +#: ../lib/modules/asteriskAccount.inc:305 +#: ../lib/modules/asteriskAccount.inc:360 +#: ../lib/modules/asteriskAccount.inc:606 +#: ../lib/modules/asteriskAccount.inc:963 +#: ../lib/modules/asteriskAccount.inc:1220 +msgid "Last qualify milliseconds" +msgstr "Počet milisekúnd poslednej kontroly" + +#: ../lib/modules/dhcp_settings.inc:139 ../lib/modules/dhcp_settings.inc:191 +#: ../lib/modules/dhcp_settings.inc:205 ../lib/modules/dhcp_settings.inc:234 +#: ../lib/modules/dhcp_settings.inc:539 ../lib/modules/dhcp_settings.inc:631 +msgid "Lease time" +msgstr "Doba výpožičky" + +#: ../templates/3rdParty/pla/htdocs/import.php:102 +msgid "Line" +msgstr "Riadok" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:121 +msgid "Line ends" +msgstr "Konce riadkov" + +#: ../lib/modules/selfRegistration.inc:51 +#: ../lib/modules/selfRegistration.inc:96 +#: ../lib/modules/passwordSelfReset.inc:88 +#: ../lib/modules/passwordSelfReset.inc:193 +msgid "Link text" +msgstr "Text odkazu" + +#: ../templates/config/conftypes.php:263 ../help/help.inc:83 +msgid "List attributes" +msgstr "Zoznam atribútov" + +#: ../templates/config/conftypes.php:374 +msgid "List attributes are invalid!" +msgstr "Zoznam neplatných atribútov!" + +#: ../lib/types/zarafaAddressListType.inc:91 +#: ../lib/modules/zarafaAddressList.inc:56 +#: ../lib/modules/zarafaAddressList.inc:97 +#: ../lib/modules/zarafaAddressList.inc:134 +#: ../lib/modules/zarafaAddressList.inc:161 +#: ../lib/modules/zarafaAddressList.inc:180 +#: ../lib/modules/zarafaAddressList.inc:334 +msgid "List name" +msgstr "Meno zoznamu" + +#: ../lib/modules/zarafaAddressList.inc:161 +msgid "List name already in use." +msgstr "Meno zoznamu je už použité." + +#: ../lib/modules/sambaSamAccount.inc:305 +msgid "" +"List of Samba workstations the user is allowed to login. Empty means every " +"workstation." +msgstr "" +"Zoznam pracovných staníc Samby, na ktoré sa používateľ môže prihlásiť. " +"Prázdne znamená každá pracovná stanica." + +#: ../templates/config/confmain.php:530 +msgid "List of admin users is empty or invalid!" +msgstr "Zoznam administrátorov je prázdny alebo neplatný!" + +#: ../lib/modules/asteriskAccount.inc:195 +msgid "List of allowed codecs." +msgstr "Zoznam dovolených kodekov." + +#: ../lib/modules/asteriskAccount.inc:191 +msgid "List of disallowed codecs." +msgstr "Zoznam nedovolených kodekov." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:94 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:88 +msgid "List of entries to be deleted:" +msgstr "Zoznam položiek na odstránenie:" + +#: ../templates/config/confmain.php:412 +msgid "List of valid users" +msgstr "Zoznam platných používateľov" + +#: ../templates/serverInfo.php:152 +msgid "Listeners" +msgstr "Prijímanie na portoch" + +#: ../lib/modules.inc:1211 ../help/help.inc:176 +msgid "Load profile" +msgstr "Načítať profil" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:279 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1226 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +msgid "Loading" +msgstr "Načítanie" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:303 +msgid "Loading export" +msgstr "Načítanie exportu" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:290 +msgid "Loading import" +msgstr "Načítanie importu" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:497 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:233 +msgid "Loading search" +msgstr "Načítanie hľadania" + +#: ../lib/modules/inetLocalMailRecipient.inc:65 +#: ../lib/modules/inetLocalMailRecipient.inc:150 +msgid "Local address" +msgstr "Lokálna adresa" + +#: ../lib/modules/inetLocalMailRecipient.inc:69 +#: ../lib/modules/inetLocalMailRecipient.inc:99 +#: ../lib/modules/inetLocalMailRecipient.inc:113 +#: ../lib/modules/inetLocalMailRecipient.inc:300 +msgid "Local address list" +msgstr "Zoznam lokálnych adries" + +#: ../lib/modules/sambaGroupMapping.inc:70 +msgid "Local group" +msgstr "Lokálna skupina" + +#: ../lib/types/host.inc:97 ../lib/modules/ipHost.inc:66 +#: ../lib/modules/ipHost.inc:84 ../lib/modules/ipHost.inc:98 +#: ../lib/modules/ipHost.inc:149 ../lib/modules/ipHost.inc:309 +#: ../lib/modules/windowsHost.inc:75 ../lib/modules/windowsHost.inc:99 +#: ../lib/modules/windowsHost.inc:114 ../lib/modules/windowsHost.inc:137 +#: ../lib/modules/windowsHost.inc:289 ../lib/modules/device.inc:70 +#: ../lib/modules/device.inc:102 ../lib/modules/device.inc:122 +#: ../lib/modules/device.inc:184 ../lib/modules/device.inc:437 +#: ../lib/modules/windowsUser.inc:115 ../lib/modules/windowsUser.inc:276 +#: ../lib/modules/windowsUser.inc:385 ../lib/modules/windowsUser.inc:416 +#: ../lib/modules/windowsUser.inc:530 ../lib/modules/windowsUser.inc:1220 +#: ../lib/modules/windowsUser.inc:1341 ../lib/modules/inetOrgPerson.inc:145 +#: ../lib/modules/inetOrgPerson.inc:170 ../lib/modules/inetOrgPerson.inc:316 +#: ../lib/modules/inetOrgPerson.inc:576 ../lib/modules/inetOrgPerson.inc:623 +#: ../lib/modules/inetOrgPerson.inc:840 ../lib/modules/inetOrgPerson.inc:844 +#: ../lib/modules/inetOrgPerson.inc:1561 ../lib/modules/inetOrgPerson.inc:2379 +#: ../lib/modules/inetOrgPerson.inc:3077 +msgid "Location" +msgstr "Umiestnenie" + +#: ../lib/types/user.inc:350 ../lib/types/user.inc:355 +msgid "Lock" +msgstr "Zamknúť" + +#: ../templates/lists/changePassword.php:389 +#: ../templates/lists/changePassword.php:409 +#: ../templates/lists/changePassword.php:411 +#: ../lib/modules/ppolicyUser.inc:139 +msgid "Lock account" +msgstr "Zamknúť účet" + +#: ../templates/lists/changePassword.php:252 +msgid "Lock account?" +msgstr "Zamknúť účet?" + +#: ../lib/modules/posixGroup.inc:209 ../lib/modules/posixAccount.inc:316 +#: ../lib/modules/posixAccount.inc:1298 ../lib/modules/inetOrgPerson.inc:2084 +msgid "Lock password" +msgstr "Zamknúť heslo" + +#: ../lib/types/ppolicyType.inc:83 ../lib/modules/ppolicy.inc:97 +#: ../lib/modules/ppolicy.inc:144 ../lib/modules/ppolicy.inc:164 +#: ../lib/modules/ppolicy.inc:257 ../lib/modules/ppolicy.inc:469 +#: ../lib/modules/sambaDomain.inc:126 ../lib/modules/sambaDomain.inc:191 +#: ../lib/modules/sambaDomain.inc:216 ../lib/modules/sambaDomain.inc:333 +#: ../lib/modules/sambaDomain.inc:645 +msgid "Lockout duration" +msgstr "Trvanie uzamknutia" + +#: ../lib/modules/sambaDomain.inc:216 +msgid "Lockout duration must be are natural number." +msgstr "Trvanie uzamknutia musí byť prirodzené číslo." + +#: ../lib/modules/ppolicyUser.inc:131 +msgid "Lockout time" +msgstr "Čas uzamknutia" + +#: ../lib/types/ppolicyType.inc:88 ../lib/modules/ppolicy.inc:117 +#: ../lib/modules/ppolicy.inc:143 ../lib/modules/ppolicy.inc:251 +#: ../lib/modules/ppolicy.inc:488 +msgid "Lockout users" +msgstr "Uzamknutí používatelia" + +#: ../lib/modules/sambaDomain.inc:114 ../lib/modules/sambaDomain.inc:188 +#: ../lib/modules/sambaDomain.inc:218 ../lib/modules/sambaDomain.inc:309 +#: ../lib/modules/sambaDomain.inc:642 +msgid "Lockout users after bad logon attempts" +msgstr "Odomknutie používateľov po neúspešných pokusoch o prihlásenie" + +#: ../lib/modules/sambaDomain.inc:218 +msgid "Lockout users after bad logon attempts must be between 0 and 999." +msgstr "" +"Odomknutie používateľov po neúspešných pokusoch o prihlásenie musí byť medzi " +"0 a 999." + +#: ../templates/config/mainmanage.php:238 ../help/help.inc:144 +msgid "Log destination" +msgstr "Cieľ záznamu" + +#: ../templates/config/mainmanage.php:224 ../help/help.inc:142 +msgid "Log level" +msgstr "Úroveň záznamov" + +#: ../templates/main_header.php:126 +#, php-format +msgid "Logged in as: %s" +msgstr "Prihlásený ako: %s" + +#: ../templates/config/mainmanage.php:241 +msgid "Logging" +msgstr "Zaznamenávanie" + +#: ../templates/login.php:422 ../templates/config/conflogin.php:62 +#: ../templates/config/mainlogin.php:70 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:530 ../help/help.inc:56 +msgid "Login" +msgstr "Prihlásiť" + +#: ../help/help.inc:202 +msgid "Login attribute label" +msgstr "Menovka atribútu prihlásenia" + +#: ../help/help.inc:204 +msgid "Login caption" +msgstr "Nadpis prihlásenia" + +#: ../templates/config/confmain.php:399 ../help/help.inc:114 +msgid "Login method" +msgstr "Metóda prihlásenia" + +#: ../lib/types/user.inc:99 ../lib/modules/posixAccount.inc:157 +#: ../lib/modules/posixAccount.inc:302 ../lib/modules/posixAccount.inc:387 +#: ../lib/modules/posixAccount.inc:490 ../lib/modules/posixAccount.inc:1291 +#: ../lib/modules/posixAccount.inc:1538 ../lib/modules/posixAccount.inc:1627 +#: ../lib/modules/posixAccount.inc:2331 +msgid "Login shell" +msgstr "Prihlasovací shell" + +#: ../lib/modules/posixAccount.inc:165 ../lib/modules/posixAccount.inc:220 +#: ../lib/modules/posixAccount.inc:453 +msgid "Login shells" +msgstr "Prihlasovacie shelly" + +#: ../templates/pdfedit/pdfpage.php:456 +msgid "Logo" +msgstr "Logo" + +#: ../lib/modules/sambaDomain.inc:102 ../lib/modules/sambaDomain.inc:185 +#: ../lib/modules/sambaDomain.inc:283 ../lib/modules/sambaDomain.inc:651 +msgid "Logon for password change" +msgstr "Prihlásenie na zmenu hesla" + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:329 +#: ../lib/modules/sambaSamAccount.inc:332 +#: ../lib/modules/sambaSamAccount.inc:513 +#: ../lib/modules/sambaSamAccount.inc:591 +#: ../lib/modules/sambaSamAccount.inc:1259 +#: ../lib/modules/sambaSamAccount.inc:1761 +msgid "Logon hours" +msgstr "Prihlasovacie hodiny" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:216 +#: ../lib/modules/sambaSamAccount.inc:301 +#: ../lib/modules/sambaSamAccount.inc:497 +#: ../lib/modules/sambaSamAccount.inc:587 +#: ../lib/modules/sambaSamAccount.inc:1212 +#: ../lib/modules/sambaSamAccount.inc:1737 +#: ../lib/modules/sambaSamAccount.inc:1877 ../lib/modules/windowsUser.inc:186 +#: ../lib/modules/windowsUser.inc:368 ../lib/modules/windowsUser.inc:402 +#: ../lib/modules/windowsUser.inc:463 ../lib/modules/windowsUser.inc:575 +#: ../lib/modules/windowsUser.inc:1254 +msgid "Logon script" +msgstr "Prihlasovací skript" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:102 ../lib/modules/windowsUser.inc:463 +#: ../lib/modules/windowsUser.inc:464 +msgid "Logon script is invalid!" +msgstr "Neplatný prihlasovací skript!" + +#: ../templates/main_header.php:133 +msgid "Logout" +msgstr "Odhlásiť" + +#: ../lib/modules/dhcp_settings.inc:96 +msgid "M-Node (0x04)" +msgstr "M-Node (0x04)" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ieee802device.inc:51 +#: ../lib/modules/ieee802device.inc:61 ../lib/modules/ieee802device.inc:72 +#: ../lib/modules/ieee802device.inc:104 ../lib/modules/fixed_ip.inc:91 +#: ../lib/modules/fixed_ip.inc:339 ../lib/modules/fixed_ip.inc:523 +msgid "MAC address" +msgstr "Adresa MAC" + +#: ../lib/modules/ieee802device.inc:65 +msgid "MAC address list" +msgstr "Zoznam adries MAC" + +#: ../lib/modules/ieee802device.inc:79 ../lib/modules/ieee802device.inc:205 +msgid "MAC addresses" +msgstr "Adresa MAC" + +#: ../lib/modules/mitKerberos.inc:261 +msgid "MIT Kerberos password change command" +msgstr "Príkaz zmeny hesla MIT Kerberos" + +#: ../lib/modules/sambaSamAccount.inc:562 +msgid "Magadan, Solomon Islands" +msgstr "Magadan, Šalamúnove ostrovy" + +#: ../lib/types/mailAlias.inc:53 ../lib/modules/nisMailAlias.inc:58 +msgid "Mail aliases" +msgstr "Emailové aliasy" + +#: ../lib/modules/imapAccess.inc:91 ../lib/modules/imapAccess.inc:122 +msgid "Mail domains" +msgstr "Emailové domény" + +#: ../lib/modules/inetLocalMailRecipient.inc:51 +msgid "Mail routing" +msgstr "Smerovanie pošty" + +#: ../lib/modules/selfRegistration.inc:513 +#: ../lib/modules/selfRegistration.inc:543 +#: ../lib/modules/passwordSelfReset.inc:1320 +#: ../lib/modules/passwordSelfReset.inc:1335 +#: ../lib/modules/passwordSelfReset.inc:1376 +msgid "Mail sending failed." +msgstr "Odoslanie emailu zlyhalo." + +#: ../lib/modules/kolabUser.inc:84 +#: ../lib/modules/inetLocalMailRecipient.inc:73 +#: ../lib/modules/inetLocalMailRecipient.inc:78 +#: ../lib/modules/inetLocalMailRecipient.inc:105 +#: ../lib/modules/inetLocalMailRecipient.inc:114 +#: ../lib/modules/inetLocalMailRecipient.inc:145 +#: ../lib/modules/inetLocalMailRecipient.inc:301 +msgid "Mail server" +msgstr "Poštový server" + +#: ../lib/account.inc:943 +#, php-format +msgid "Mail successfully sent to %s." +msgstr "Email úspešne odoslaný adresátovi %s." + +#: ../lib/modules/asteriskAccount.inc:150 +#: ../lib/modules/asteriskAccount.inc:265 +#: ../lib/modules/asteriskAccount.inc:340 +#: ../lib/modules/asteriskAccount.inc:461 +#: ../lib/modules/asteriskAccount.inc:772 +#: ../lib/modules/asteriskAccount.inc:1200 +#: ../lib/modules/asteriskVoicemail.inc:86 +#: ../lib/modules/asteriskVoicemail.inc:129 +#: ../lib/modules/asteriskVoicemail.inc:149 +#: ../lib/modules/asteriskVoicemail.inc:236 +#: ../lib/modules/asteriskVoicemail.inc:388 ../lib/modules/imapAccess.inc:56 +#: ../lib/modules/imapAccess.inc:97 ../lib/modules/imapAccess.inc:223 +msgid "Mailbox" +msgstr "Emailová schránka" + +#: ../lib/modules/imapAccess.inc:232 +msgid "Mailbox already exists on IMAP server." +msgstr "Emailová schránka už na servere IMAP existuje." + +#: ../lib/modules/imapAccess.inc:239 +msgid "Mailbox does not exist on IMAP server." +msgstr "Emailová schránka na servere IMAP neexistuje." + +#: ../lib/modules/kolabUser.inc:129 ../lib/modules/kolabUser.inc:146 +#: ../lib/modules/kolabUser.inc:167 ../lib/modules/kolabUser.inc:229 +#: ../lib/modules/kolabUser.inc:234 ../lib/modules/kolabUser.inc:624 +msgid "Mailbox home server" +msgstr "Domovský server emailovej schránky" + +#: ../lib/modules/kolabUser.inc:184 +msgid "Mailbox home server name is empty!" +msgstr "Meno domovského servera emailovej schránky je prázdne!" + +#: ../lib/modules/kolabUser.inc:182 ../lib/modules/kolabUser.inc:183 +msgid "Mailbox home server name is invalid!" +msgstr "Meno domovského servera emailovej schránky nie je platné!" + +#: ../lib/types/mailAlias.inc:62 +msgid "Mailing aliases (e.g. NIS mail aliases)" +msgstr "Emailové aliasy (napr. emailové aliasy NIS)" + +#: ../lib/modules/nisMailAlias.inc:71 +msgid "Mails to this name are forwarded to the recipients." +msgstr "Emaily tomuto adresátovi sú presmerované príjemcom." + +#: ../templates/pdfedit/pdfpage.php:370 ../templates/pdfedit/pdfpage.php:633 +msgid "Main" +msgstr "Hlavná" + +#: ../help/help.inc:206 +msgid "Main page caption" +msgstr "Nadpis hlavnej stránky" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:79 +msgid "Make sure your filter (above) will select all child records." +msgstr "Skontrolujte, že váš filter (nižšie) vyberie všetky záznamy potomkov." + +#: ../lib/modules/inetOrgPerson.inc:2052 +msgid "Manage" +msgstr "Spravovať" + +#: ../templates/pdfedit/pdfmain.php:175 +msgid "Manage existing PDF structures" +msgstr "Spravovať existujúce štruktúry PDF" + +#: ../templates/profedit/profilemain.php:173 +msgid "Manage existing profiles" +msgstr "Spravovať existujúce profily" + +#: ../lib/modules/sambaSamAccount.inc:1199 +msgid "Manage profile directory" +msgstr "Vytvoriť adresár profilu" + +#: ../templates/config/conflogin.php:187 +msgid "Manage server profiles" +msgstr "Spravovať profily servera" + +#: ../lib/modules/windowsHost.inc:79 ../lib/modules/windowsHost.inc:105 +#: ../lib/modules/windowsHost.inc:115 ../lib/modules/windowsHost.inc:139 +#: ../lib/modules/windowsHost.inc:294 +msgid "Managed by" +msgstr "Spravuje" + +#: ../templates/serverInfo.php:105 +msgid "Managed suffixes" +msgstr "Spravované prípony" + +#: ../lib/modules/ipHost.inc:70 ../lib/modules/ipHost.inc:90 +#: ../lib/modules/ipHost.inc:99 ../lib/modules/ipHost.inc:170 +#: ../lib/modules/ipHost.inc:310 ../lib/modules/inetOrgPerson.inc:348 +#: ../lib/modules/inetOrgPerson.inc:430 ../lib/modules/inetOrgPerson.inc:674 +#: ../lib/modules/inetOrgPerson.inc:725 ../lib/modules/inetOrgPerson.inc:729 +#: ../lib/modules/inetOrgPerson.inc:2058 ../lib/modules/inetOrgPerson.inc:2360 +msgid "Manager" +msgstr "Manažér" + +#: ../lib/tools/ouEditor.inc:53 +msgid "Manages OU objects in your LDAP tree." +msgstr "Spravuje objekty OU vo vašom strome LDAP." + +#: ../lib/modules/kolabUser.inc:52 +msgid "Manual" +msgstr "Manuálne" + +#: ../lib/modules/kolabUser.inc:54 +msgid "Manual if conflicts" +msgstr "Manuálne, ak nastane konflikt" + +#: ../lib/modules/customScripts.inc:138 +msgid "Manual scripts" +msgstr "Manuálne skripty" + +#: ../lib/types/nisObjectType.inc:78 ../lib/modules/nisObject.inc:58 +#: ../lib/modules/nisObject.inc:89 ../lib/modules/nisObject.inc:105 +#: ../lib/modules/nisObject.inc:116 ../lib/modules/nisObject.inc:142 +#: ../lib/modules/nisObject.inc:211 +msgid "Mapping entry" +msgstr "Položka mapovania" + +#: ../lib/modules/nisObject.inc:116 ../lib/modules/nisObject.inc:117 +msgid "" +"Mapping entry contains invalid characters. Only ASCII characters are allowed." +msgstr "" +"Položka mapovania obsahuje neplatné znaky. Povolené sú len znaky ASCII." + +#: ../lib/types/nisObjectType.inc:79 ../lib/modules/nisObject.inc:62 +#: ../lib/modules/nisObject.inc:82 ../lib/modules/nisObject.inc:106 +#: ../lib/modules/nisObject.inc:136 ../lib/modules/nisObject.inc:212 +msgid "Mapping name" +msgstr "Názov mapovania" + +#: ../lib/modules/kolabUser.inc:313 ../lib/modules/kolabUser.inc:454 +msgid "Mark account for deletion" +msgstr "Označiť účet na odstránenie" + +#: ../lib/modules/kolabUser.inc:133 +msgid "Mark for deletion" +msgstr "Označiť na odstránenie" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:44 +msgid "Mass delete" +msgstr "Hromadné odstránenie" + +#: ../templates/config/profmanage.php:309 +#: ../templates/config/mainlogin.php:156 ../templates/pdfedit/pdfmain.php:252 +#: ../templates/pdfedit/pdfmain.php:299 +#: ../templates/profedit/profilemain.php:255 +#: ../templates/profedit/profilemain.php:303 ../help/help.inc:136 +msgid "Master password" +msgstr "Hlavné heslo" + +#: ../templates/config/profmanage.php:54 ../templates/pdfedit/pdfmain.php:106 +#: ../templates/pdfedit/pdfmain.php:114 +#: ../templates/profedit/profilemain.php:121 +#: ../templates/profedit/profilemain.php:129 +msgid "Master password is wrong!" +msgstr "Hlavné heslo je zlé!" + +#: ../templates/config/mainmanage.php:77 +msgid "Master passwords are different or empty!" +msgstr "Hlavné heslá sa nezhodujú alebo sú prázdne!" + +#: ../templates/schema/schema.php:268 +msgid "Matching rule OID" +msgstr "Vyhovujúce pravidlá OID" + +#: ../templates/schema/schema.php:77 ../templates/schema/schema.php:78 +msgid "Matching rules" +msgstr "Vyhovujúce pravidlá" + +#: ../templates/serverInfo.php:173 +msgid "Max. file descriptors" +msgstr "Max. popisovačov súborov" + +#: ../lib/modules/posixGroup.inc:354 ../lib/modules/posixGroup.inc:535 +#: ../lib/modules/posixGroup.inc:536 +msgid "Maximum GID number" +msgstr "Maximálne číslo GID" + +#: ../lib/modules/posixGroup.inc:535 +msgid "Maximum GID number is invalid or empty!" +msgstr "Neplatné alebo prázdne maximálne číslo GID!" + +#: ../lib/modules/posixGroup.inc:536 +msgid "Maximum GID number must be greater than minimum GID number!" +msgstr "Maximálne číslo GID musí byť väčšie ako minimálne číslo GID!" + +#: ../lib/modules/posixAccount.inc:76 ../lib/modules/posixAccount.inc:78 +#: ../lib/modules/posixAccount.inc:79 ../lib/modules/posixAccount.inc:80 +#: ../lib/modules/posixAccount.inc:193 ../lib/modules/posixAccount.inc:211 +msgid "Maximum UID number" +msgstr "Maximálne číslo UID" + +#: ../lib/modules/posixAccount.inc:76 ../lib/modules/posixAccount.inc:78 +msgid "Maximum UID number is invalid!" +msgstr "Neplatné maximálne číslo UID!" + +#: ../lib/modules/posixAccount.inc:79 ../lib/modules/posixAccount.inc:80 +msgid "Maximum UID number must be greater than minimum UID number!" +msgstr "Maximálne číslo UID musí byť väčšie ako minimálne číslo UID!" + +#: ../lib/types/ppolicyType.inc:84 ../lib/modules/ppolicy.inc:101 +#: ../lib/modules/ppolicy.inc:145 ../lib/modules/ppolicy.inc:165 +#: ../lib/modules/ppolicy.inc:265 ../lib/modules/ppolicy.inc:470 +msgid "Maximum failure count" +msgstr "Maximálny počet zlyhaní" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:128 +#: ../templates/3rdParty/pla/htdocs/import_form.php:36 +msgid "Maximum file size" +msgstr "Maximálna veľkosť súboru" + +#: ../lib/modules/dhcp_settings.inc:143 ../lib/modules/dhcp_settings.inc:192 +#: ../lib/modules/dhcp_settings.inc:206 ../lib/modules/dhcp_settings.inc:240 +#: ../lib/modules/dhcp_settings.inc:543 ../lib/modules/dhcp_settings.inc:632 +msgid "Maximum lease time" +msgstr "maximálna doba výpožičky" + +#: ../templates/schema/schema.php:214 +msgid "Maximum length" +msgstr "Maximálna dĺžka" + +#: ../lib/lists.inc:1003 ../help/help.inc:93 +msgid "Maximum list entries" +msgstr "Maximálny počet položiek zoznamu" + +#: ../lib/modules/asteriskAccount.inc:187 +msgid "" +"Maximum number of seconds of inactivity before terminating a call on hold." +msgstr "Maximálny počet sekúnd neaktivity pred ukončením podržaného volania." + +#: ../lib/types/ppolicyType.inc:79 ../lib/modules/shadowAccount.inc:59 +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/shadowAccount.inc:116 +#: ../lib/modules/shadowAccount.inc:165 ../lib/modules/shadowAccount.inc:182 +#: ../lib/modules/shadowAccount.inc:220 ../lib/modules/shadowAccount.inc:331 +#: ../lib/modules/shadowAccount.inc:495 ../lib/modules/ppolicy.inc:81 +#: ../lib/modules/ppolicy.inc:137 ../lib/modules/ppolicy.inc:160 +#: ../lib/modules/ppolicy.inc:161 ../lib/modules/ppolicy.inc:199 +#: ../lib/modules/ppolicy.inc:466 ../lib/modules/sambaDomain.inc:122 +#: ../lib/modules/sambaDomain.inc:190 ../lib/modules/sambaDomain.inc:213 +#: ../lib/modules/sambaDomain.inc:215 ../lib/modules/sambaDomain.inc:325 +#: ../lib/modules/sambaDomain.inc:644 +msgid "Maximum password age" +msgstr "Maximálny vek hesla" + +#: ../lib/modules/qmailGroup.inc:73 ../lib/modules/qmailGroup.inc:197 +#: ../lib/modules/qmailGroup.inc:201 ../lib/modules/qmailGroup.inc:330 +#: ../lib/modules/qmailGroup.inc:395 ../lib/modules/qmailGroup.inc:418 +#: ../lib/modules/qmailGroup.inc:507 ../lib/modules/qmailGroup.inc:1060 +msgid "Member email addresses" +msgstr "Emailové adresy člena." + +#: ../lib/modules/qmailGroup.inc:71 ../lib/modules/qmailGroup.inc:149 +#: ../lib/modules/qmailGroup.inc:153 ../lib/modules/qmailGroup.inc:272 +#: ../lib/modules/qmailGroup.inc:374 ../lib/modules/qmailGroup.inc:509 +#: ../lib/modules/qmailGroup.inc:776 ../lib/modules/qmailGroup.inc:1059 +msgid "Member entries" +msgstr "Položky člena" + +#: ../lib/modules/qmailGroup.inc:75 ../lib/modules/qmailGroup.inc:173 +#: ../lib/modules/qmailGroup.inc:177 ../lib/modules/qmailGroup.inc:296 +#: ../lib/modules/qmailGroup.inc:383 ../lib/modules/qmailGroup.inc:508 +#: ../lib/modules/qmailGroup.inc:1061 +msgid "Member filter" +msgstr "Filter člena" + +#: ../lib/types/netgroup.inc:94 ../lib/modules/nisnetgroup.inc:88 +#: ../lib/modules/nisnetgroup.inc:92 ../lib/modules/nisnetgroup.inc:125 +#: ../lib/modules/nisnetgroup.inc:135 ../lib/modules/nisnetgroup.inc:279 +#: ../lib/modules/nisnetgroup.inc:578 ../lib/modules/windowsGroup.inc:130 +#: ../lib/modules/windowsGroup.inc:134 ../lib/modules/windowsGroup.inc:197 +#: ../lib/modules/windowsGroup.inc:223 ../lib/modules/windowsGroup.inc:653 +#: ../lib/modules/groupOfNames.inc:76 ../lib/modules/groupOfNames.inc:80 +#: ../lib/modules/groupOfNames.inc:113 ../lib/modules/groupOfNames.inc:121 +#: ../lib/modules/groupOfNames.inc:132 ../lib/modules/groupOfNames.inc:203 +#: ../lib/modules/groupOfNames.inc:559 +msgid "Members" +msgstr "Členovia" + +#: ../lib/modules/groupOfNames.inc:84 ../lib/modules/groupOfNames.inc:136 +msgid "Members are optional" +msgstr "Členovia sú voliteľní" + +#: ../lib/modules/qmailGroup.inc:87 ../lib/modules/qmailGroup.inc:189 +#: ../lib/modules/qmailGroup.inc:312 ../lib/modules/qmailGroup.inc:389 +#: ../lib/modules/qmailGroup.inc:610 ../lib/modules/qmailGroup.inc:1072 +msgid "Members only" +msgstr "Len členovia" + +#: ../lib/modules/qmailUser.inc:101 ../lib/modules/qmailUser.inc:136 +#: ../lib/modules/qmailUser.inc:216 ../lib/modules/qmailUser.inc:309 +#: ../lib/modules/qmailUser.inc:405 ../lib/modules/qmailUser.inc:679 +#: ../lib/modules/qmailUser.inc:1192 +msgid "Message count limit" +msgstr "Limit počtu správ" + +#: ../lib/modules/qmailUser.inc:103 ../lib/modules/qmailUser.inc:146 +#: ../lib/modules/qmailUser.inc:220 ../lib/modules/qmailUser.inc:317 +#: ../lib/modules/qmailUser.inc:408 ../lib/modules/qmailUser.inc:690 +#: ../lib/modules/qmailUser.inc:1193 +msgid "Message size limit" +msgstr "Limit veľkosti správy" + +#: ../lib/modules/qmailUser.inc:113 ../lib/modules/qmailUser.inc:164 +#: ../lib/modules/qmailUser.inc:240 ../lib/modules/qmailUser.inc:359 +#: ../lib/modules/qmailUser.inc:423 ../lib/modules/qmailUser.inc:594 +#: ../lib/modules/qmailUser.inc:1196 ../lib/modules/qmailGroup.inc:132 +#: ../lib/modules/qmailGroup.inc:247 ../lib/modules/qmailGroup.inc:365 +#: ../lib/modules/qmailGroup.inc:501 ../lib/modules/qmailGroup.inc:1055 +msgid "Message store" +msgstr "Úložisko správ" + +#: ../lib/modules/sambaSamAccount.inc:549 +msgid "Mid-Atlantic" +msgstr "Stredoatlantický čas" + +#: ../lib/modules/sambaSamAccount.inc:540 +msgid "Midway Island, Samoa" +msgstr "Ostrov Midway, Samoa" + +#: ../lib/modules/windowsUser.inc:236 ../lib/modules/inetOrgPerson.inc:383 +msgid "Miller" +msgstr "Hraško" + +#: ../lib/modules/sambaDomain.inc:94 ../lib/modules/sambaDomain.inc:183 +#: ../lib/modules/sambaDomain.inc:269 ../lib/modules/sambaDomain.inc:640 +msgid "Minimal password length" +msgstr "Minimálna dĺžka hesla" + +#: ../lib/modules/posixGroup.inc:351 ../lib/modules/posixGroup.inc:534 +msgid "Minimum GID number" +msgstr "Minimálne číslo GID" + +#: ../lib/modules/posixGroup.inc:534 +msgid "Minimum GID number is invalid or empty!" +msgstr "Neplatné alebo prázdne minimálne číslo GID!" + +#: ../lib/modules/posixAccount.inc:75 ../lib/modules/posixAccount.inc:77 +#: ../lib/modules/posixAccount.inc:190 ../lib/modules/posixAccount.inc:208 +msgid "Minimum UID number" +msgstr "Minimálne číslo UID" + +#: ../lib/modules/posixAccount.inc:75 ../lib/modules/posixAccount.inc:77 +msgid "Minimum UID number is invalid!" +msgstr "Neplatné minimálne číslo UID!" + +#: ../lib/modules/passwordSelfReset.inc:80 +#: ../lib/modules/passwordSelfReset.inc:191 +msgid "Minimum answer length" +msgstr "Minimálna dĺžka odpovede" + +#: ../templates/config/mainmanage.php:216 +msgid "Minimum character classes" +msgstr "Minimálny počet druhov znakov" + +#: ../templates/config/mainmanage.php:212 +msgid "Minimum lowercase characters" +msgstr "Minimálny počet malých písmen" + +#: ../templates/config/mainmanage.php:214 +msgid "Minimum numeric characters" +msgstr "Minimálny počet číslic" + +#: ../lib/types/ppolicyType.inc:78 ../lib/modules/shadowAccount.inc:57 +#: ../lib/modules/shadowAccount.inc:111 ../lib/modules/shadowAccount.inc:164 +#: ../lib/modules/shadowAccount.inc:178 ../lib/modules/shadowAccount.inc:214 +#: ../lib/modules/shadowAccount.inc:323 ../lib/modules/shadowAccount.inc:494 +#: ../lib/modules/ppolicy.inc:77 ../lib/modules/ppolicy.inc:136 +#: ../lib/modules/ppolicy.inc:159 ../lib/modules/ppolicy.inc:191 +#: ../lib/modules/ppolicy.inc:465 ../lib/modules/sambaDomain.inc:118 +#: ../lib/modules/sambaDomain.inc:189 ../lib/modules/sambaDomain.inc:214 +#: ../lib/modules/sambaDomain.inc:317 ../lib/modules/sambaDomain.inc:643 +msgid "Minimum password age" +msgstr "Minimálny vek hesla" + +#: ../templates/config/mainmanage.php:211 ../lib/types/ppolicyType.inc:87 +#: ../lib/modules/ppolicy.inc:113 ../lib/modules/ppolicy.inc:140 +#: ../lib/modules/ppolicy.inc:168 ../lib/modules/ppolicy.inc:243 +#: ../lib/modules/ppolicy.inc:473 +msgid "Minimum password length" +msgstr "Minimálna dĺžka hesla" + +#: ../templates/config/mainmanage.php:215 +msgid "Minimum symbolic characters" +msgstr "Minimálny počet špeciálnych znakov" + +#: ../templates/config/mainmanage.php:213 +msgid "Minimum uppercase characters" +msgstr "Minimálny počet veľkých písmen" + +#: ../templates/3rdParty/pla/lib/import_functions.php:429 +msgid "Missing attributes for" +msgstr "Chýbajúce atribúty pre" + +#: ../templates/3rdParty/pla/lib/import_functions.php:443 +msgid "Missing modify command add, delete or replace" +msgstr "Chýba príkaz modifikácie add, delete alebo replace" + +#: ../lib/types/user.inc:207 ../lib/modules/inetOrgPerson.inc:72 +#: ../lib/modules/inetOrgPerson.inc:141 ../lib/modules/inetOrgPerson.inc:332 +#: ../lib/modules/inetOrgPerson.inc:502 ../lib/modules/inetOrgPerson.inc:647 +#: ../lib/modules/inetOrgPerson.inc:773 ../lib/modules/inetOrgPerson.inc:777 +#: ../lib/modules/inetOrgPerson.inc:1767 ../lib/modules/inetOrgPerson.inc:2368 +msgid "Mobile number" +msgstr "Číslo mobilu" + +#: ../lib/modules/inetOrgPerson.inc:2989 +msgid "Mobile telephone number" +msgstr "Číslo mobilného telefónu" + +#: ../lib/modules/qmailGroup.inc:79 ../lib/modules/qmailGroup.inc:205 +#: ../lib/modules/qmailGroup.inc:209 ../lib/modules/qmailGroup.inc:338 +#: ../lib/modules/qmailGroup.inc:398 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:510 ../lib/modules/qmailGroup.inc:1063 +msgid "Moderator email addresses" +msgstr "Emailové adresy moderátora." + +#: ../lib/modules/qmailGroup.inc:77 ../lib/modules/qmailGroup.inc:157 +#: ../lib/modules/qmailGroup.inc:161 ../lib/modules/qmailGroup.inc:280 +#: ../lib/modules/qmailGroup.inc:377 ../lib/modules/qmailGroup.inc:511 +#: ../lib/modules/qmailGroup.inc:779 ../lib/modules/qmailGroup.inc:1062 +msgid "Moderator entries" +msgstr "Položka moderátora" + +#: ../lib/modules/qmailGroup.inc:69 ../lib/modules/qmailGroup.inc:99 +#: ../lib/modules/qmailGroup.inc:193 ../lib/modules/qmailGroup.inc:322 +#: ../lib/modules/qmailGroup.inc:392 ../lib/modules/qmailGroup.inc:596 +#: ../lib/modules/qmailGroup.inc:1058 +msgid "Moderator text" +msgstr "Text moderátora" + +#: ../lib/modules/qmailGroup.inc:194 +msgid "" +"Moderator text that is used to specify an own approval text used if the list " +"is moderated. The usual %HEADER% magic of qmail-reply etc. can be used here." +msgstr "" +"Text moderátora, ktorý je použitý na zadanie vlastného schvaľovacieho textu, " +"ak je konferencia moderovaná. Možno tu použiť zvyčajné kúzlo %HEADER% qmail-" +"reply a pod." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:61 +msgid "Modification not successful!" +msgstr "Zmena neúspešná!" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:59 +msgid "Modification successful!" +msgstr "Zmena úspešná!" + +#: ../lib/modules/generalInformation.inc:85 +msgid "Modification time" +msgstr "Čas zmeny" + +#: ../lib/modules/generalInformation.inc:81 +msgid "Modified by" +msgstr "Zmenil" + +#: ../templates/serverInfo.php:314 ../templates/serverInfo.php:387 +msgid "Modify" +msgstr "Zmeniť" + +#: ../templates/serverInfo.php:328 ../templates/serverInfo.php:393 +msgid "Modify RDN" +msgstr "Zmeniť RDN" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:57 +msgid "Modify group" +msgstr "Zmeniť skupinu" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2110 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2111 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2114 +msgid "Modify group members" +msgstr "Zmeniť členov skupiny" + +#: ../templates/3rdParty/pla/htdocs/import.php:32 +msgid "Modifying" +msgstr "Zápis zmien" + +#: ../templates/config/confmodules.php:176 +#: ../templates/config/confmain.php:217 +#: ../templates/config/moduleSettings.php:175 +#: ../templates/config/conftypes.php:194 +msgid "Module settings" +msgstr "Nastavenia modulu" + +#: ../templates/config/confmodules.php:172 +#: ../templates/config/confmain.php:213 +#: ../templates/config/moduleSettings.php:171 +#: ../templates/config/conftypes.php:190 +msgid "Modules" +msgstr "Moduly" + +#: ../lib/modules/sambaSamAccount.inc:1350 +msgid "Monday" +msgstr "Pondelok" + +#: ../lib/modules/sambaSamAccount.inc:544 +msgid "Mountain Time (US & Canada)" +msgstr "Horský čas (USA a Kanada)" + +#: ../lib/modules/quota.inc:98 ../lib/modules/quota.inc:392 +#: ../lib/modules/quota.inc:498 ../lib/modules/quota.inc:625 +#: ../lib/modules/systemQuotas.inc:90 ../lib/modules/systemQuotas.inc:115 +#: ../lib/modules/systemQuotas.inc:375 +msgid "Mountpoint" +msgstr "Prípojný bod" + +#: ../lib/modules/systemQuotas.inc:90 ../lib/modules/systemQuotas.inc:91 +msgid "Mountpoint contains invalid characters." +msgstr "Prípojný bod obsahuje neplatné znaky." + +#: ../lib/modules/quota.inc:99 +msgid "Mountpoint of device with enabled quotas." +msgstr "Prípojný bod na zariadení so zapnutými kvótami." + +#: ../lib/modules/customFields.inc:1453 +msgid "Multi value" +msgstr "Viacnásobná hodnota" + +#: ../lib/modules/customFields.inc:2382 +msgid "Multi-select fields must not contain empty values." +msgstr "Polia s viacnásobným výberom nemôžu obsahovať prázdne hodnoty." + +#: ../lib/modules/zarafaDynamicGroup.inc:69 ../lib/modules/zarafaGroup.inc:72 +#: ../lib/modules/eduPerson.inc:91 ../lib/modules/eduPerson.inc:104 +#: ../lib/modules/eduPerson.inc:116 ../lib/modules/eduPerson.inc:132 +#: ../lib/modules/eduPerson.inc:140 ../lib/modules/zarafaUser.inc:157 +#: ../lib/modules/sudoRole.inc:89 ../lib/modules/sudoRole.inc:94 +#: ../lib/modules/sudoRole.inc:99 ../lib/modules/sudoRole.inc:104 +#: ../lib/modules/sudoRole.inc:109 ../lib/modules/sudoRole.inc:114 +msgid "Multiple values are separated by comma." +msgstr "Viaceré hodnoty sú oddelené čiarkami." + +#: ../lib/modules/puppetClient.inc:78 ../lib/modules/puppetClient.inc:90 +#: ../lib/modules/puppetClient.inc:98 ../lib/modules/device.inc:67 +#: ../lib/modules/windowsUser.inc:128 ../lib/modules/windowsUser.inc:164 +#: ../lib/modules/windowsUser.inc:196 ../lib/modules/windowsUser.inc:207 +#: ../lib/modules/inetOrgPerson.inc:710 ../lib/modules/inetOrgPerson.inc:730 +#: ../lib/modules/inetOrgPerson.inc:738 ../lib/modules/inetOrgPerson.inc:746 +#: ../lib/modules/inetOrgPerson.inc:754 ../lib/modules/inetOrgPerson.inc:770 +#: ../lib/modules/inetOrgPerson.inc:778 ../lib/modules/inetOrgPerson.inc:786 +#: ../lib/modules/inetOrgPerson.inc:794 ../lib/modules/inetOrgPerson.inc:805 +#: ../lib/modules/inetOrgPerson.inc:825 ../lib/modules/inetOrgPerson.inc:837 +#: ../lib/modules/inetOrgPerson.inc:845 ../lib/modules/inetOrgPerson.inc:853 +#: ../lib/modules/inetOrgPerson.inc:865 ../lib/modules/inetOrgPerson.inc:873 +#: ../lib/modules/inetOrgPerson.inc:889 ../lib/modules/inetOrgPerson.inc:897 +#: ../lib/modules/inetOrgPerson.inc:905 ../lib/modules/systemQuotas.inc:63 +#: ../lib/modules/freeRadius.inc:94 ../lib/modules/qmailGroup.inc:121 +#: ../lib/modules/qmailGroup.inc:129 ../lib/modules/qmailGroup.inc:142 +#: ../lib/modules/qmailGroup.inc:154 ../lib/modules/qmailGroup.inc:162 +#: ../lib/modules/qmailGroup.inc:170 ../lib/modules/qmailGroup.inc:178 +#: ../lib/modules/qmailGroup.inc:186 ../lib/modules/qmailGroup.inc:202 +#: ../lib/modules/qmailGroup.inc:210 ../lib/modules/qmailGroup.inc:218 +#: ../lib/modules/windowsGroup.inc:127 ../lib/modules/groupOfNames.inc:73 +msgid "Multiple values are separated by semicolon." +msgstr "Viaceré hodnoty sú oddelené bodkočiarkami." + +#: ../lib/modules/asteriskAccount.inc:198 +#: ../lib/modules/asteriskAccount.inc:289 +#: ../lib/modules/asteriskAccount.inc:352 +#: ../lib/modules/asteriskAccount.inc:548 +#: ../lib/modules/asteriskAccount.inc:887 +#: ../lib/modules/asteriskAccount.inc:1212 +msgid "Music on hold" +msgstr "Hudba pri podržaní" + +#: ../lib/modules/asteriskAccount.inc:199 +msgid "Music to play on hold." +msgstr "Hudba, ktorá bude prehrávaná pri podržaní hovoru." + +#: ../lib/modules/ipHost.inc:86 ../lib/modules/windowsHost.inc:101 +#: ../lib/modules/device.inc:104 ../lib/modules/windowsUser.inc:278 +#: ../lib/modules/inetOrgPerson.inc:578 +msgid "MyCity" +msgstr "Moje mesto" + +#: ../lib/modules/inetOrgPerson.inc:464 ../lib/modules/inetOrgPerson.inc:472 +msgid "Mycity" +msgstr "Moje mesto" + +#: ../lib/modules/windowsUser.inc:260 ../lib/modules/inetOrgPerson.inc:448 +msgid "Mystreetname 42" +msgstr "Moja ulica 42" + +#: ../lib/modules/asteriskAccount.inc:154 +#: ../lib/modules/asteriskAccount.inc:267 +#: ../lib/modules/asteriskAccount.inc:341 +#: ../lib/modules/asteriskAccount.inc:468 +#: ../lib/modules/asteriskAccount.inc:785 +#: ../lib/modules/asteriskAccount.inc:1201 +msgid "NAT" +msgstr "NAT" + +#: ../lib/modules/asteriskAccount.inc:155 +msgid "NAT setting for this account." +msgstr "Nastavenia NAT tohoto účtu." + +#: ../lib/modules/nisnetgroup.inc:60 +msgid "NIS net group" +msgstr "Sieťová skupina NIS" + +#: ../lib/types/netgroup.inc:62 +msgid "NIS netgroup entries" +msgstr "Položky sieťových skupín NIS" + +#: ../lib/types/netgroup.inc:53 +msgid "NIS netgroups" +msgstr "Sieťové skupiny NIS" + +#: ../lib/modules/nisObject.inc:40 +msgid "NIS object" +msgstr "Objekt NIS" + +#: ../lib/types/nisObjectType.inc:155 +#, php-format +msgid "NIS object count: %s" +msgstr "Počet objektov NIS: %s" + +#: ../lib/types/nisObjectType.inc:48 +msgid "NIS object entries" +msgstr "Položky objektu NIS" + +#: ../lib/types/nisObjectType.inc:39 +msgid "NIS objects" +msgstr "Objekty NIS" + +#: ../templates/serverInfo.php:147 ../templates/masscreate.php:288 +#: ../templates/masscreate.php:363 ../templates/schema/schema.php:268 +#: ../lib/types/automountType.inc:86 ../lib/types/automountType.inc:249 +#: ../lib/types/ppolicyType.inc:77 ../lib/modules/device.inc:54 +#: ../lib/modules/device.inc:82 ../lib/modules/device.inc:113 +#: ../lib/modules/device.inc:163 ../lib/modules/device.inc:436 +#: ../lib/modules/nisObject.inc:54 ../lib/modules/nisObject.inc:74 +#: ../lib/modules/nisObject.inc:104 ../lib/modules/nisObject.inc:130 +#: ../lib/modules/nisObject.inc:210 ../lib/modules/ppolicy.inc:73 +#: ../lib/modules/ppolicy.inc:135 ../lib/modules/ppolicy.inc:158 +#: ../lib/modules/ppolicy.inc:183 ../lib/modules/ppolicy.inc:464 +#: ../lib/modules/automount.inc:57 ../lib/modules/automount.inc:73 +#: ../lib/modules/automount.inc:96 ../lib/modules/automount.inc:121 +#: ../lib/modules/automount.inc:193 ../lib/modules/asteriskExtension.inc:815 +#: ../lib/modules/customFields.inc:72 ../lib/modules/customFields.inc:860 +#: ../lib/modules/customFields.inc:1279 ../lib/modules/groupOfNames.inc:170 +msgid "Name" +msgstr "Meno" + +#: ../lib/modules/zarafaAddressList.inc:57 +msgid "Name of the address list which should be created." +msgstr "Meno zoznamu adries, ktorý má byť vytvorený." + +#: ../help/help.inc:167 +msgid "" +"Name under which the profile will be saved. If a profile with the same name " +"exists, it will be overwritten." +msgstr "" +"Meno, pod ktorým bude profil uložený. Ak už profil s rovnakým menom " +"existuje, bude prepísaný." + +#: ../lib/modules/namedObject.inc:38 +msgid "Named object" +msgstr "Pomenovaný objekt" + +#: ../lib/modules/dhcp_settings.inc:179 ../lib/modules/dhcp_settings.inc:198 +#: ../lib/modules/dhcp_settings.inc:571 ../lib/modules/dhcp_settings.inc:641 +#: ../lib/modules/freeRadius.inc:81 ../lib/modules/freeRadius.inc:117 +#: ../lib/modules/freeRadius.inc:131 ../lib/modules/freeRadius.inc:194 +#: ../lib/modules/freeRadius.inc:221 ../lib/modules/freeRadius.inc:313 +#: ../lib/modules/freeRadius.inc:617 +msgid "Net mask" +msgstr "Sieťová maska" + +#: ../lib/modules/dhcp_settings.inc:155 ../lib/modules/dhcp_settings.inc:195 +#: ../lib/modules/dhcp_settings.inc:209 ../lib/modules/dhcp_settings.inc:258 +#: ../lib/modules/dhcp_settings.inc:551 ../lib/modules/dhcp_settings.inc:635 +msgid "Netbios name servers" +msgstr "Menné servery NetBIOS" + +#: ../lib/modules/dhcp_settings.inc:159 ../lib/modules/dhcp_settings.inc:196 +#: ../lib/modules/dhcp_settings.inc:211 ../lib/modules/dhcp_settings.inc:264 +#: ../lib/modules/dhcp_settings.inc:561 ../lib/modules/dhcp_settings.inc:636 +msgid "Netbios node type" +msgstr "Typ uzla NetBIOS" + +#: ../lib/modules/authorizedServiceObject.inc:180 +msgid "New Authorized Service" +msgstr "Nová autorizovaná služba" + +#: ../lib/types/dhcp.inc:118 ../lib/types/dhcp.inc:172 +msgid "New DHCP" +msgstr "Nové DHCP" + +#: ../lib/modules/ipHost.inc:139 +msgid "New IP address" +msgstr "Nová adresa IP" + +#: ../lib/modules/ieee802device.inc:114 +msgid "New MAC address" +msgstr "Nová adresa MAC" + +#: ../lib/types/nisObjectType.inc:102 ../lib/types/nisObjectType.inc:157 +msgid "New NIS object" +msgstr "Nový objekt NIS" + +#: ../templates/ou_edit.php:77 +msgid "New OU created successfully." +msgstr "Nové OU úspešne vytvorené." + +#: ../lib/modules/ldapPublicKey.inc:113 +msgid "New SSH public key" +msgstr "Nový verejný kľúč SSH" + +#: ../lib/modules/windowsUser.inc:284 ../lib/modules/inetOrgPerson.inc:586 +msgid "New York" +msgstr "Kežmarok" + +#: ../lib/types/zarafaAddressListType.inc:117 +#: ../lib/types/zarafaAddressListType.inc:146 +msgid "New address list" +msgstr "Nový zoznam adries" + +#: ../lib/types/mailAlias.inc:114 ../lib/types/mailAlias.inc:143 +#: ../lib/types/alias.inc:114 ../lib/types/alias.inc:143 +msgid "New alias" +msgstr "Nový alias" + +#: ../lib/types/automountType.inc:110 ../lib/types/automountType.inc:217 +msgid "New automount entry" +msgstr "Nová položka automount" + +#: ../lib/types/automountType.inc:233 ../lib/types/automountType.inc:234 +msgid "New automount map" +msgstr "Nová mapa automount" + +#: ../templates/config/profmanage.php:146 +msgid "New default profile set successfully." +msgstr "Nový predvolený profil úspešne uložený." + +#: ../lib/types/smbDomain.inc:114 ../lib/types/smbDomain.inc:169 +msgid "New domain" +msgstr "Nová doména" + +#: ../lib/types/asteriskExt.inc:117 ../lib/types/asteriskExt.inc:145 +msgid "New extension" +msgstr "Nové rozšírenie" + +#: ../templates/pdfedit/pdfpage.php:585 +msgid "New field" +msgstr "Nové pole" + +#: ../lib/types/gon.inc:119 ../lib/types/gon.inc:182 +#: ../lib/types/zarafaDynamicGroupType.inc:119 +#: ../lib/types/zarafaDynamicGroupType.inc:167 ../lib/types/group.inc:138 +#: ../lib/types/group.inc:212 ../lib/types/netgroup.inc:116 +#: ../lib/types/netgroup.inc:171 +msgid "New group" +msgstr "Nová skupina" + +#: ../lib/types/host.inc:128 ../lib/types/host.inc:195 +#: ../lib/modules/hostObject.inc:150 +msgid "New host" +msgstr "Nový stroj" + +#: ../lib/modules/inetLocalMailRecipient.inc:156 +msgid "New local address" +msgstr "Nová lokálna adresa" + +#: ../templates/config/mainmanage.php:247 +msgid "New master password" +msgstr "Nové hlavné heslo" + +#: ../templates/config/mainmanage.php:74 +msgid "New master password set successfully." +msgstr "Nové hlavné heslo úspešne nastavené." + +#: ../lib/lists.inc:114 +msgid "New object" +msgstr "Nový objekt" + +#: ../templates/ou_edit.php:183 ../help/help.inc:233 +msgid "New organisational unit" +msgstr "Nová organizačná jednotka" + +#: ../templates/config/confmain.php:433 +#: ../lib/modules/sambaSamAccount.inc:2290 +#: ../lib/modules/posixAccount.inc:2298 ../lib/modules/windowsUser.inc:1319 +#: ../lib/modules/passwordSelfReset.inc:884 +msgid "New password" +msgstr "Nové heslo" + +#: ../templates/config/profmanage.php:133 +msgid "New password set successfully." +msgstr "Nové heslo úspešne nastavené." + +#: ../lib/types/ppolicyType.inc:122 ../lib/types/ppolicyType.inc:151 +msgid "New policy" +msgstr "Nová politika" + +#: ../templates/config/profmanage.php:260 +msgid "New profile name" +msgstr "Nové meno profilu" + +#: ../lib/modules/range.inc:94 ../lib/modules/range.inc:108 +#: ../lib/modules/range.inc:446 +msgid "New range" +msgstr "Nový rozsah" + +#: ../lib/modules/nisMailAlias.inc:177 +msgid "New recipient" +msgstr "Nový príjemca" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:81 +msgid "New required attributes" +msgstr "Nové povinné atribúty" + +#: ../templates/pdfedit/pdfpage.php:553 +msgid "New section" +msgstr "Nová sekcia" + +#: ../lib/types/sudo.inc:106 ../lib/types/sudo.inc:161 +msgid "New sudo role" +msgstr "Nová rola sudo" + +#: ../lib/types/user.inc:172 ../lib/types/user.inc:532 +msgid "New user" +msgstr "Nový používateľ" + +#: ../lib/modules/inetOrgPerson.inc:2297 +msgid "New user certificate" +msgstr "Certifikát nového používateľa" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "New value" +msgstr "Nová hodnota" + +#: ../lib/modules/sambaDomain.inc:78 ../lib/modules/sambaDomain.inc:158 +#: ../lib/modules/sambaDomain.inc:179 ../lib/modules/sambaDomain.inc:354 +#: ../lib/modules/sambaDomain.inc:636 +msgid "Next RID" +msgstr "Nasledujúce RID" + +#: ../lib/modules/sambaDomain.inc:205 ../lib/modules/sambaDomain.inc:206 +msgid "Next RID is not a number!" +msgstr "Nasledujúce RID nie je číslo!" + +#: ../lib/modules/sambaDomain.inc:79 +msgid "Next RID to use when creating accounts (only used by Winbind)." +msgstr "Nasledujúce RID, použité pri vytváraní účtov (používa len Winbind)." + +#: ../lib/modules/sambaDomain.inc:87 +msgid "Next RID to use when creating group accounts (only used by Winbind)." +msgstr "" +"Nasledujúce RID, použité pri vytváraní skupín účtov (používa len Winbind)." + +#: ../lib/modules/sambaDomain.inc:83 +msgid "Next RID to use when creating user accounts (only used by Winbind)." +msgstr "" +"Nasledujúce RID, použité pri vytváraní používateľských účtov (používa len " +"Winbind)." + +#: ../lib/modules/sambaDomain.inc:86 ../lib/modules/sambaDomain.inc:170 +#: ../lib/modules/sambaDomain.inc:181 ../lib/modules/sambaDomain.inc:370 +#: ../lib/modules/sambaDomain.inc:638 +msgid "Next group RID" +msgstr "Nasledujúce RID skupiny" + +#: ../lib/modules/sambaDomain.inc:209 ../lib/modules/sambaDomain.inc:210 +msgid "Next group RID is not a number!" +msgstr "Nasledujúce RID skupiny nie je číslo!" + +#: ../lib/modules/sambaDomain.inc:82 ../lib/modules/sambaDomain.inc:164 +#: ../lib/modules/sambaDomain.inc:180 ../lib/modules/sambaDomain.inc:362 +#: ../lib/modules/sambaDomain.inc:637 +msgid "Next user RID" +msgstr "Nasledujúce RID používateľa" + +#: ../lib/modules/sambaDomain.inc:207 ../lib/modules/sambaDomain.inc:208 +msgid "Next user RID is not a number!" +msgstr "Nasledujúce RID používateľa nie je číslo!" + +#: ../lib/modules/eduPerson.inc:94 ../lib/modules/eduPerson.inc:181 +#: ../lib/modules/eduPerson.inc:219 ../lib/modules/eduPerson.inc:346 +#: ../lib/modules/eduPerson.inc:769 +msgid "Nick names" +msgstr "Prezývky" + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:463 ../lib/modules/qmailGroup.inc:314 +#: ../lib/modules/qmailGroup.inc:315 ../lib/modules/qmailGroup.inc:316 +#: ../lib/modules/qmailGroup.inc:356 ../lib/modules/qmailGroup.inc:357 +#: ../lib/modules/qmailGroup.inc:358 ../lib/modules/qmailGroup.inc:1027 +#: ../lib/modules/qmailGroup.inc:1068 ../lib/modules/qmailGroup.inc:1074 +#: ../lib/modules/imapAccess.inc:112 +msgid "No" +msgstr "Nie" + +#: ../lib/types/asteriskExt.inc:144 +msgid "No Asterisk extensions found." +msgstr "Nenájdené rozšírenie Asterisk." + +#: ../lib/types/dhcp.inc:171 +msgid "No DHCPs found!" +msgstr "Nenájdené žiadne DHCP!" + +#: ../lib/types/nisObjectType.inc:156 +msgid "No NIS objects found!" +msgstr "Nenájdené žiadne objekty NIS!" + +#: ../templates/3rdParty/pla/lib/Template.php:558 +#: ../templates/3rdParty/pla/lib/Template.php:559 +msgid "No RDN attribute was selected." +msgstr "Nebol zvolený atribút RDN." + +#: ../lib/modules/sambaSamAccount.inc:1088 +#: ../lib/modules/sambaGroupMapping.inc:241 +msgid "No Samba 3 domains found in LDAP! Please create one first." +msgstr "" +"Nenájdené žiadne domény Samba 3 v LDAP! Prosím, najprv nejakú vytvorte." + +#: ../lib/modules/posixAccount.inc:541 ../lib/modules/posixAccount.inc:1185 +msgid "No Unix groups found in LDAP! Please create one first." +msgstr "" +"Nenájdené žiadne domény unixové skupiny v LDAP! Prosím, najprv nejakú " +"vytvorte." + +#: ../lib/modules/qmailUser.inc:42 +msgid "No access" +msgstr "Prístup odopretý" + +#: ../lib/types/zarafaAddressListType.inc:145 +msgid "No address list found!" +msgstr "Nenájdené žiadne zoznamy adries!" + +#: ../lib/types/mailAlias.inc:142 ../lib/types/alias.inc:142 +msgid "No aliases found!" +msgstr "Nenájdené žiadne aliasy!" + +#: ../lib/types/automountType.inc:216 +msgid "No automount entries found!" +msgstr "Nenájdené žiadne položky automount!" + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:36 +msgid "No binary data available" +msgstr "Binárne dáta nie sú dostupné" + +#: ../templates/initsuff.php:163 +msgid "No changes were made." +msgstr "Neboli vykonané žiadne zmeny." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:83 +#, php-format +msgid "No current value for attribute %s." +msgstr "Chýba aktuálna hodnota atribúta %s." + +#: ../templates/login.php:97 +msgid "" +"No default profile set. Please set it in the server profile configuration." +msgstr "" +"Nie je nastavený predvolený profil. Prosím, nastavte ho v konfigurácii " +"profilu servera." + +#: ../templates/schema/schema.php:144 +msgid "No description" +msgstr "Chýba popis" + +#: ../lib/types/smbDomain.inc:168 +msgid "No domains found!" +msgstr "Nenájdené žiadne domény!" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:20 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:21 +msgid "No entry was selected to delete" +msgstr "Nebola zvolená žiadna položka na odstránenie" + +#: ../lib/modules/inetOrgPerson.inc:3630 +msgid "No file received." +msgstr "Nebol prijatý súbor." + +#: ../lib/modules/inetOrgPerson.inc:96 +msgid "No file selected." +msgstr "Nebol zvolený súbor." + +#: ../lib/modules/qmailUser.inc:48 +msgid "No forwarding" +msgstr "Bez preposielania" + +#: ../lib/modules/posixGroup.inc:532 ../lib/modules/posixAccount.inc:86 +msgid "No free ID-Number!" +msgstr "Žiadne voľné číslo ID!" + +#: ../lib/types/gon.inc:181 ../lib/types/zarafaDynamicGroupType.inc:166 +#: ../lib/types/group.inc:211 ../lib/types/netgroup.inc:170 +msgid "No groups found!" +msgstr "Nenájdené žiadne skupiny!" + +#: ../lib/types/host.inc:194 +msgid "No hosts found!" +msgstr "Nenájdené žiadne stroje!" + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:59 +msgid "No image available" +msgstr "Obrázok nie je dostupný" + +#: ../templates/3rdParty/pla/lib/import_functions.php:94 +msgid "No import input" +msgstr "Žiadny vstup importu" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1354 +msgid "No internal attributes" +msgstr "Žiadne interné atribúty" + +#: ../templates/tests/lamdaemonTest.php:195 +msgid "No lamdaemon path set, please update your LAM configuration settings." +msgstr "" +"Nie je nastavená cesta k lamdaemon, prosím, upravte svoje nastavenia LAM." + +#: ../templates/tests/lamdaemonTest.php:97 +#: ../templates/tests/lamdaemonTest.php:190 +msgid "No lamdaemon server set, please update your LAM configuration settings." +msgstr "" +"Nie je nastavený server pre lamdaemon, prosím, upravte svoje nastavenia LAM." + +#: ../lib/modules/qmailUser.inc:49 +msgid "No local delivery" +msgstr "Bez lokálneho doručovania" + +#: ../templates/config/mainmanage.php:227 +msgid "No logging" +msgstr "Bez záznamu" + +#: ../templates/pdfedit/pdfpage.php:432 +msgid "No logo" +msgstr "Bez loga" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:157 +msgid "No new attributes available for this entry" +msgstr "Pre túto položku nie sú dostupné žiadne nové atribúty" + +#: ../templates/config/conftypes.php:290 ../help/help.inc:158 +msgid "No new entries" +msgstr "Žiadne nové položky" + +#: ../lib/lists.inc:113 +msgid "No objects found!" +msgstr "Nenájdené žiadne objekty!" + +#: ../templates/config/confmodules.php:396 +msgid "No or more than one base module selected!" +msgstr "Zvolený žiadny alebo viac ako jeden základný modul!" + +#: ../templates/config/confsave.php:53 ../templates/config/confmain.php:55 +#: ../lib/modules/passwordSelfReset.inc:981 +msgid "No password was entered!" +msgstr "Nebolo zadané heslo!" + +#: ../lib/types/ppolicyType.inc:150 +msgid "No policies found!" +msgstr "Nenájdené žiadne politiky!" + +#: ../templates/tests/schemaTest.php:70 +msgid "No problems found." +msgstr "Nenájdené žiadne problémy." + +#: ../lib/modules/qmailUser.inc:50 +msgid "No program delivery" +msgstr "Bez doručovacieho programu" + +#: ../lib/modules/customScripts.inc:181 +msgid "No scripts to run." +msgstr "Žiadny skript na spustenie." + +#: ../templates/pdfedit/pdfpage.php:129 +msgid "No section text specified" +msgstr "Nebol zadaný text sekcie" + +#: ../lib/modules/passwordSelfReset.inc:1003 +msgid "No security answer found." +msgstr "Nenájdená žiadna bezpečnostná odpoveď." + +#: ../templates/config/conflogin.php:137 +msgid "No server profiles found. Please create one." +msgstr "Neboli nájdené profily servera. Prosím, vytvorte nejaký." + +#: ../templates/pdfedit/pdfpage.php:117 +msgid "No static text specified" +msgstr "Nebol zadaný statický text" + +#: ../lib/modules/dhcp_settings.inc:290 +msgid "No subnet entered." +msgstr "Nebola zadaná podsieť." + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:45 +msgid "No such entry" +msgstr "Žiadna vyhovujúca položka" + +#: ../templates/3rdParty/pla/htdocs/compare.php:24 +#: ../templates/3rdParty/pla/htdocs/compare.php:27 +#: ../templates/3rdParty/pla/htdocs/delete.php:19 +msgid "No such entry." +msgstr "Žiadna vyhovujúca položka." + +#: ../templates/schema/schema.php:438 +#, php-format +msgid "No such schema item: \"%s\"" +msgstr "Neexistuje položka schémy: \"%s\"" + +#: ../lib/types/sudo.inc:160 +msgid "No sudo roles found!" +msgstr "Nenájdené žiadne role sudo!" + +#: ../lib/types/user.inc:531 +msgid "No users found!" +msgstr "Nenájdení žiadni používatelia!" + +#: ../lib/modules/qmailUser.inc:58 +msgid "None" +msgstr "Žiadne" + +#: ../help/help.inc:68 +msgid "Note" +msgstr "Poznámka" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:125 +msgid "" +"Note: You may be required to enter new attributes that these object classes " +"require" +msgstr "" +"Poznámka: Možno budete musieť zadať nové atribúty, ktoré tieto objectClass " +"vyžadujú" + +#: ../lib/modules/windowsGroup.inc:114 ../lib/modules/windowsGroup.inc:175 +#: ../lib/modules/windowsGroup.inc:222 ../lib/modules/windowsGroup.inc:309 +#: ../lib/modules/windowsGroup.inc:617 +msgid "Notes" +msgstr "Poznámky" + +#: ../templates/3rdParty/pla/lib/export_functions.php:450 +msgid "Nothing to export" +msgstr "Nie je čo exportovať" + +#: ../templates/config/mainmanage.php:223 +msgid "Notice" +msgstr "Oznam" + +#: ../templates/delete.php:103 +msgid "Number of child entries" +msgstr "Počet položiek potomkov" + +#: ../lib/modules/customFields.inc:113 +msgid "Number of columns in text area." +msgstr "Počet stĺpcov v textovej oblasti." + +#: ../lib/modules/shadowAccount.inc:175 +msgid "" +"Number of days a user can login even his password has expired. -1=always." +msgstr "" +"Počet dní, počas ktorých sa môže používateľ prihlásiť, hoci jeho heslo " +"vypršalo. -1=vždy." + +#: ../lib/modules/shadowAccount.inc:179 +msgid "" +"Number of days a user has to wait until he is allowed to change his password " +"again. If set value must be >0." +msgstr "" +"Počet dní, ktoré musí používateľ počkať, kým mu bude dovolené znova zmeniť " +"svoje heslo. Ak je nastavené, hodnota musí byť >0." + +#: ../lib/modules/shadowAccount.inc:183 +msgid "" +"Number of days after a user has to change his password again. If set value " +"must be >0." +msgstr "" +"Počet dní, po ktorých si používateľ musí znova zmeniť svoje heslo. Ak je " +"nastavené, hodnota musí byť >0." + +#: ../lib/modules/mitKerberos.inc:122 +msgid "Number of failed logins." +msgstr "Počet neúspešných prihlásení." + +#: ../lib/modules/sambaDomain.inc:131 +msgid "Number of minutes after which the bad logon attempts are reset." +msgstr "Počet minút, po ktorých sú neúspešné pokusy o prihlásenie vymazané." + +#: ../lib/modules/customFields.inc:117 +msgid "Number of rows in text area." +msgstr "Počet riadkov v textovej oblasti." + +#: ../lib/modules/ppolicy.inc:78 ../lib/modules/sambaDomain.inc:119 +msgid "" +"Number of seconds after the user is allowed to change his password again." +msgstr "Počet sekúnd, po ktorých si môže používateľ znova zmeniť heslo." + +#: ../lib/modules/ppolicy.inc:82 ../lib/modules/sambaDomain.inc:123 +msgid "Number of seconds after which the user must change his password." +msgstr "Počet sekúnd, po ktorých si používateľ musí zmeniť svoje heslo." + +#: ../templates/schema/schema.php:147 ../templates/schema/schema.php:344 +msgid "OID" +msgstr "OID" + +#: ../templates/ou_edit.php:83 +msgid "OU already exists!" +msgstr "OU už existuje!" + +#: ../templates/ou_edit.php:94 +msgid "OU deleted successfully." +msgstr "OU úspešne odstránené." + +#: ../templates/ou_edit.php:152 ../lib/tools/ouEditor.inc:44 +msgid "OU editor" +msgstr "Editor OU" + +#: ../templates/ou_edit.php:87 +msgid "OU is invalid!" +msgstr "OU nie je platné!" + +#: ../templates/ou_edit.php:131 +msgid "OU is not empty or invalid!" +msgstr "OU nie je prázdne alebo nie je platné!" + +#: ../help/help.inc:233 ../help/help.inc:235 +msgid "OU-Editor" +msgstr "Editor OU" + +#: ../templates/schema/schema.php:65 ../templates/schema/schema.php:66 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1324 +#: ../lib/modules/selfRegistration.inc:64 +#: ../lib/modules/selfRegistration.inc:113 ../lib/modules/customFields.inc:68 +#: ../lib/modules/customFields.inc:476 +msgid "Object classes" +msgstr "Triedy objektov" + +#: ../lib/lists.inc:112 +#, php-format +msgid "Object count: %s" +msgstr "Počet objektov: %s" + +#: ../templates/schema/schema.php:152 ../templates/schema/schema.php:283 +msgid "Obsolete" +msgstr "Zastarané" + +#: ../lib/modules/sambaDomain.inc:282 ../lib/modules/sambaDomain.inc:291 +#: ../lib/modules/sambaDomain.inc:300 ../lib/modules/sambaDomain.inc:649 +#: ../lib/modules/sambaDomain.inc:654 ../lib/modules/sambaDomain.inc:659 +msgid "Off" +msgstr "Vypnúť" + +#: ../lib/modules/windowsUser.inc:131 ../lib/modules/windowsUser.inc:288 +#: ../lib/modules/windowsUser.inc:389 ../lib/modules/windowsUser.inc:411 +#: ../lib/modules/windowsUser.inc:532 ../lib/modules/windowsUser.inc:1224 +#: ../lib/modules/windowsUser.inc:1332 ../lib/modules/inetOrgPerson.inc:145 +#: ../lib/modules/inetOrgPerson.inc:182 ../lib/modules/inetOrgPerson.inc:324 +#: ../lib/modules/inetOrgPerson.inc:600 ../lib/modules/inetOrgPerson.inc:635 +#: ../lib/modules/inetOrgPerson.inc:860 ../lib/modules/inetOrgPerson.inc:864 +#: ../lib/modules/inetOrgPerson.inc:1673 ../lib/modules/inetOrgPerson.inc:2377 +#: ../lib/modules/inetOrgPerson.inc:3110 +msgid "Office name" +msgstr "Názov oddelenia" + +#: ../templates/lists/changePassword.php:312 +#: ../templates/lists/changePassword.php:341 +#: ../templates/lists/changePassword.php:381 +#: ../templates/lists/changePassword.php:412 +#: ../templates/tests/lamdaemonTest.php:92 ../templates/ou_edit.php:191 +#: ../templates/ou_edit.php:205 ../templates/masscreate.php:206 +#: ../templates/config/profmanage.php:253 +#: ../templates/config/profmanage.php:265 +#: ../templates/config/profmanage.php:274 +#: ../templates/config/profmanage.php:291 +#: ../templates/config/profmanage.php:300 +#: ../templates/config/profmanage.php:302 +#: ../templates/config/mainmanage.php:260 +#: ../templates/config/conflogin.php:172 ../templates/config/mainlogin.php:163 +#: ../templates/pdfedit/pdfmain.php:195 ../templates/pdfedit/pdfmain.php:202 +#: ../templates/pdfedit/pdfmain.php:208 +#: ../templates/profedit/profilemain.php:197 +#: ../templates/profedit/profilemain.php:203 +#: ../templates/profedit/profilemain.php:209 +#: ../lib/types/automountType.inc:234 ../lib/types/user.inc:304 +#: ../lib/modules/selfRegistration.inc:384 +#: ../lib/modules/zarafaContact.inc:422 ../lib/modules/zarafaGroup.inc:491 +#: ../lib/modules/device.inc:306 ../lib/modules/sambaSamAccount.inc:1406 +#: ../lib/modules/sambaSamAccount.inc:1541 ../lib/modules/zarafaUser.inc:949 +#: ../lib/modules/zarafaUser.inc:1000 ../lib/modules/nisnetgroup.inc:472 +#: ../lib/modules/nisnetgroup.inc:482 ../lib/modules/asteriskExtension.inc:477 +#: ../lib/modules/aliasEntry.inc:139 ../lib/modules/aliasEntry.inc:159 +#: ../lib/modules/qmailGroup.inc:855 ../lib/modules/imapAccess.inc:275 +#: ../lib/modules/passwordSelfReset.inc:719 +#: ../lib/modules/passwordSelfReset.inc:915 +#: ../lib/modules/windowsGroup.inc:463 ../lib/modules/groupOfNames.inc:329 +#: ../lib/modules/groupOfNames.inc:443 ../lib/modules/nisMailAlias.inc:275 +#: ../lib/modules/nisMailAlias.inc:283 ../lib/lists.inc:703 +#: ../lib/lists.inc:785 ../lib/modules.inc:1199 +msgid "Ok" +msgstr "OK" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:98 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +msgid "Old value" +msgstr "Stará hodnota" + +#: ../lib/modules/sambaDomain.inc:282 ../lib/modules/sambaDomain.inc:291 +#: ../lib/modules/sambaDomain.inc:300 ../lib/modules/sambaDomain.inc:650 +#: ../lib/modules/sambaDomain.inc:655 ../lib/modules/sambaDomain.inc:660 +msgid "On" +msgstr "Zapnúť" + +#: ../lib/modules/sambaSamAccount.inc:236 +#: ../lib/modules/sambaSamAccount.inc:374 +#: ../lib/modules/sambaSamAccount.inc:1527 +#: ../lib/modules/sambaSamAccount.inc:1937 +msgid "On broken or timed out connection" +msgstr "Pri prerušenom alebo vypršanom spojení" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:139 +#: ../templates/3rdParty/pla/htdocs/export_form.php:32 +msgid "One (one level beneath base)" +msgstr "Jedna (jedna úroveň pod základom)" + +#: ../lib/modules/range.inc:107 ../lib/modules/fixed_ip.inc:106 +msgid "One or more errors occured. The invalid fields are marked." +msgstr "nastala jedna alebo viac chýb. Neplatné polia sú označené." + +#: ../templates/3rdParty/pla/htdocs/copy.php:98 +#: ../templates/3rdParty/pla/htdocs/copy.php:155 +#, php-format +msgid "Operation not successful. DN %s has not been created." +msgstr "Operácia nebola úspešná. DN %s nebolo vytvorené." + +#: ../templates/serverInfo.php:277 ../templates/serverInfo.php:367 +msgid "Operation statistics" +msgstr "Štatistiky operácie" + +#: ../templates/3rdParty/pla/htdocs/copy.php:95 +#: ../templates/3rdParty/pla/htdocs/copy.php:153 +#, php-format +msgid "Operation successful. DN %s has been created." +msgstr "Operácia úspešná. DN %s bolo vytvorené." + +#: ../templates/schema/schema.php:384 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1575 +msgid "Optional attributes" +msgstr "Voliteľné atribúty" + +#: ../lib/types/sudo.inc:83 ../lib/modules/mitKerberos.inc:409 +#: ../lib/modules/zarafaDynamicGroup.inc:260 +#: ../lib/modules/zarafaContact.inc:230 ../lib/modules/zarafaGroup.inc:274 +#: ../lib/modules/posixAccount.inc:217 ../lib/modules/zarafaUser.inc:603 +#: ../lib/modules/windowsUser.inc:542 ../lib/modules/sudoRole.inc:83 +#: ../lib/modules/sudoRole.inc:112 ../lib/modules/sudoRole.inc:164 +#: ../lib/modules/sudoRole.inc:178 ../lib/modules/sudoRole.inc:187 +#: ../lib/modules/sudoRole.inc:399 ../lib/modules/sudoRole.inc:689 +#: ../lib/modules/asteriskExtension.inc:115 +#: ../lib/modules/asteriskVoicemail.inc:106 +#: ../lib/modules/asteriskVoicemail.inc:116 +#: ../lib/modules/asteriskVoicemail.inc:133 +#: ../lib/modules/asteriskVoicemail.inc:181 +#: ../lib/modules/asteriskVoicemail.inc:273 +#: ../lib/modules/asteriskVoicemail.inc:394 ../lib/modules/qmailGroup.inc:604 +#: ../lib/modules/heimdalKerberos.inc:331 +msgid "Options" +msgstr "Voľby" + +#: ../lib/modules/asteriskVoicemail.inc:107 +msgid "Options for Asterisk voicemail account (e.g. sendvoicemail=yes)." +msgstr "Voľby účtu hlasovej schránky Asterisk (napr. sendvoicemail=yes)." + +#: ../lib/modules/selfRegistration.inc:121 +msgid "Options four and five are used for input validation." +msgstr "Voľby štyri a päť slúžia na overenie vstupu." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:39 +msgid "Or paste your LDIF here" +msgstr "Alebo vložte svoj LDIF tu" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:166 +msgid "Order by" +msgstr "Radiť podľa" + +#: ../templates/schema/schema.php:171 +msgid "Ordering" +msgstr "Radenie" + +#: ../lib/modules/eduPerson.inc:119 ../lib/modules/eduPerson.inc:193 +#: ../lib/modules/eduPerson.inc:220 ../lib/modules/eduPerson.inc:238 +#: ../lib/modules/eduPerson.inc:403 ../lib/modules/eduPerson.inc:772 +#: ../lib/modules/inetOrgPerson.inc:206 ../lib/modules/inetOrgPerson.inc:352 +#: ../lib/modules/inetOrgPerson.inc:568 ../lib/modules/inetOrgPerson.inc:677 +#: ../lib/modules/inetOrgPerson.inc:892 ../lib/modules/inetOrgPerson.inc:896 +#: ../lib/modules/inetOrgPerson.inc:2021 ../lib/modules/inetOrgPerson.inc:2382 +msgid "Organisation" +msgstr "Organizácia" + +#: ../lib/modules/inetOrgPerson.inc:203 ../lib/modules/inetOrgPerson.inc:350 +#: ../lib/modules/inetOrgPerson.inc:560 ../lib/modules/inetOrgPerson.inc:680 +#: ../lib/modules/inetOrgPerson.inc:884 ../lib/modules/inetOrgPerson.inc:888 +#: ../lib/modules/inetOrgPerson.inc:1991 ../lib/modules/inetOrgPerson.inc:2381 +msgid "Organisational unit" +msgstr "Organizačná jednotka" + +#: ../lib/modules/eduPerson.inc:127 ../lib/modules/eduPerson.inc:131 +#: ../lib/modules/eduPerson.inc:205 ../lib/modules/eduPerson.inc:221 +#: ../lib/modules/eduPerson.inc:422 ../lib/modules/eduPerson.inc:774 +msgid "Organisational units" +msgstr "Organizačné jednotky" + +#: ../lib/modules/eduPerson.inc:242 +msgid "Organisational units contains an invalid entry." +msgstr "Organizačná jednotka obsahuje neplatnú položku." + +#: ../templates/config/confmain.php:316 +msgid "Other" +msgstr "Ostatní" + +#: ../lib/modules/windowsUser.inc:123 ../lib/modules/windowsUser.inc:127 +#: ../lib/modules/windowsUser.inc:312 ../lib/modules/windowsUser.inc:388 +#: ../lib/modules/windowsUser.inc:453 ../lib/modules/windowsUser.inc:538 +#: ../lib/modules/windowsUser.inc:1223 +msgid "Other telephone numbers" +msgstr "Ďalšie telefónne čísla" + +#: ../lib/modules/windowsUser.inc:159 ../lib/modules/windowsUser.inc:163 +#: ../lib/modules/windowsUser.inc:324 ../lib/modules/windowsUser.inc:396 +#: ../lib/modules/windowsUser.inc:540 ../lib/modules/windowsUser.inc:1231 +msgid "Other web sites" +msgstr "Ďalšie webové stránky" + +#: ../lib/modules/customScripts.inc:77 ../lib/modules/customScripts.inc:89 +#: ../lib/modules/customScripts.inc:98 +msgid "Output may contain HTML" +msgstr "Výstup môže obsahovať HTML" + +#: ../lib/modules/customScripts.inc:230 ../lib/modules/customScripts.inc:516 +#, php-format +msgid "Output of command \"%s\" with return code %s" +msgstr "Výstup príkazu „%s” s návratovým kódom %s" + +#: ../templates/serverInfo.php:168 +msgid "Overlays" +msgstr "Prekrytia" + +#: ../lib/modules/zarafaUser.inc:82 +msgid "Override default quota settings." +msgstr "Prepísať predvolené nastavenia kvót." + +#: ../templates/config/confmain.php:308 ../lib/types/asteriskExt.inc:96 +#: ../lib/types/asteriskExt.inc:158 +msgid "Owner" +msgstr "Vlastník" + +#: ../lib/types/gon.inc:94 ../lib/modules/device.inc:62 +#: ../lib/modules/device.inc:66 ../lib/modules/device.inc:96 +#: ../lib/modules/device.inc:121 ../lib/modules/device.inc:186 +#: ../lib/modules/device.inc:442 ../lib/modules/groupOfNames.inc:68 +#: ../lib/modules/groupOfNames.inc:72 ../lib/modules/groupOfNames.inc:105 +#: ../lib/modules/groupOfNames.inc:131 ../lib/modules/groupOfNames.inc:181 +#: ../lib/modules/groupOfNames.inc:547 +msgid "Owners" +msgstr "Vlastníci" + +#: ../lib/modules/dhcp_settings.inc:95 +msgid "P-Node (0x02)" +msgstr "P-Node (0x02)" + +#: ../lib/modules/fixed_ip.inc:88 ../lib/modules/fixed_ip.inc:335 +#: ../lib/modules/fixed_ip.inc:523 +msgid "PC name" +msgstr "Meno PC" + +#: ../lib/modules/windowsHost.inc:89 +msgid "PC01" +msgstr "PC01" + +#: ../templates/pdfedit/pdfpage.php:448 ../templates/pdfedit/pdfmain.php:84 +#: ../lib/tools/pdfEdit.inc:44 +msgid "PDF editor" +msgstr "Editor PDF" + +#: ../templates/masscreate.php:269 ../templates/pdfedit/pdfmain.php:272 +#: ../lib/lists.inc:681 ../help/help.inc:182 +msgid "PDF structure" +msgstr "Štruktúra PDF" + +#: ../templates/pdfedit/pdfpage.php:100 +msgid "PDF structure name not valid" +msgstr "Meno štruktúry PDF nie je platné" + +#: ../templates/pdfedit/pdfmain.php:155 +msgid "PDF structure was successfully saved." +msgstr "Štruktúra PDF úspešne uložená." + +#: ../templates/pdfedit/pdfmain.php:239 +msgid "PDF structures" +msgstr "Štruktúry PDF" + +#: ../templates/serverInfo.php:264 +msgid "PDUs sent" +msgstr "PDU poslané" + +#: ../lib/modules/zarafaUser.inc:347 ../lib/modules/zarafaUser.inc:677 +#: ../lib/modules/zarafaUser.inc:1400 +msgid "POP3" +msgstr "POP3" + +#: ../templates/lists/changePassword.php:369 +#: ../templates/lists/changePassword.php:400 ../lib/types/user.inc:377 +#: ../lib/types/user.inc:409 +msgid "PPolicy" +msgstr "PPolicy" + +#: ../lib/modules/sambaSamAccount.inc:543 +msgid "Pacific Time (US & Canada)" +msgstr "Pacifický čas (USA a Kanada)" + +#: ../lib/modules/dhcp_settings.inc:152 +msgid "" +"Packets are sent to the default gateway if the receiver does not reside in " +"the same network. The default gateway routes them to the target network." +msgstr "" +"Pakety sú posielané na predvolenú bránu, ak prijímateľ nesídli v rovnakej " +"sieti. Predvolené brána ich smeruje do cieľovej siete." + +#: ../help/help.inc:212 +msgid "Page header" +msgstr "Hlavička stránky" + +#: ../lib/modules/asteriskVoicemail.inc:102 +#: ../lib/modules/asteriskVoicemail.inc:132 +#: ../lib/modules/asteriskVoicemail.inc:175 +#: ../lib/modules/asteriskVoicemail.inc:267 +#: ../lib/modules/asteriskVoicemail.inc:392 +msgid "Pager" +msgstr "Pager" + +#: ../lib/modules/asteriskVoicemail.inc:103 +msgid "Pager number for Asterisk voicemail." +msgstr "Číslo pagera pre hlasovú schránku Asterisk." + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:35 +msgid "Parent DN" +msgstr "DN rodiča" + +#: ../lib/modules/puppetClient.inc:81 ../lib/modules/puppetClient.inc:127 +#: ../lib/modules/puppetClient.inc:147 ../lib/modules/puppetClient.inc:258 +#: ../lib/modules/puppetClient.inc:424 ../lib/modules/puppetClient.inc:459 +msgid "Parent node" +msgstr "Rodičovský uzol" + +#: ../lib/modules/puppetClient.inc:183 +msgid "Parent node not found." +msgstr "Rodičovský uzol nenájdený." + +#: ../templates/schema/schema.php:366 +msgid "Parent to" +msgstr "Rodič pre" + +#: ../templates/3rdParty/pla/htdocs/import.php:98 +msgid "Parse error" +msgstr "Spracovať chybu" + +#: ../templates/lists/changePassword.php:328 ../templates/login.php:369 +#: ../lib/selfService.inc:373 ../lib/modules/mitKerberos.inc:149 +#: ../lib/modules/mitKerberos.inc:235 ../lib/modules/mitKerberos.inc:250 +#: ../lib/modules/mitKerberos.inc:796 ../lib/modules/mitKerberos.inc:799 +#: ../lib/modules/selfRegistration.inc:349 +#: ../lib/modules/selfRegistration.inc:421 +#: ../lib/modules/selfRegistration.inc:424 +#: ../lib/modules/selfRegistration.inc:427 +#: ../lib/modules/asteriskAccount.inc:106 +#: ../lib/modules/asteriskAccount.inc:387 ../lib/modules/posixGroup.inc:206 +#: ../lib/modules/posixGroup.inc:529 ../lib/modules/sambaSamAccount.inc:105 +#: ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:243 +#: ../lib/modules/sambaSamAccount.inc:412 ../lib/modules/posixAccount.inc:91 +#: ../lib/modules/posixAccount.inc:92 ../lib/modules/posixAccount.inc:157 +#: ../lib/modules/posixAccount.inc:310 ../lib/modules/posixAccount.inc:389 +#: ../lib/modules/posixAccount.inc:482 ../lib/modules/posixAccount.inc:1295 +#: ../lib/modules/posixAccount.inc:1640 ../lib/modules/posixAccount.inc:1643 +#: ../lib/modules/windowsUser.inc:198 ../lib/modules/windowsUser.inc:222 +#: ../lib/modules/windowsUser.inc:405 ../lib/modules/windowsUser.inc:419 +#: ../lib/modules/windowsUser.inc:465 ../lib/modules/windowsUser.inc:466 +#: ../lib/modules/windowsUser.inc:1262 ../lib/modules/windowsUser.inc:1265 +#: ../lib/modules/inetOrgPerson.inc:908 ../lib/modules/inetOrgPerson.inc:2081 +#: ../lib/modules/inetOrgPerson.inc:2518 +#: ../lib/modules/asteriskVoicemail.inc:90 +#: ../lib/modules/asteriskVoicemail.inc:156 +#: ../lib/modules/customFields.inc:1706 ../lib/modules/heimdalKerberos.inc:117 +#: ../lib/modules/heimdalKerberos.inc:199 +#: ../lib/modules/heimdalKerberos.inc:211 +#: ../lib/modules/heimdalKerberos.inc:687 +#: ../lib/modules/heimdalKerberos.inc:690 ../lib/modules.inc:1040 +#: ../help/help.inc:180 +msgid "Password" +msgstr "Heslo" + +#: ../lib/modules/sambaSamAccount.inc:284 +#: ../lib/modules/sambaSamAccount.inc:1140 ../lib/modules/windowsUser.inc:189 +#: ../lib/modules/windowsUser.inc:354 ../lib/modules/windowsUser.inc:403 +#: ../lib/modules/windowsUser.inc:1252 +msgid "Password change at next login" +msgstr "Zmeniť heslo pri nasledujúcom prihlásení" + +#: ../lib/modules/mitKerberos.inc:141 ../lib/modules/mitKerberos.inc:254 +#: ../lib/modules/heimdalKerberos.inc:111 +#: ../lib/modules/heimdalKerberos.inc:215 +msgid "Password change command" +msgstr "Príkaz zmeny hesla" + +#: ../templates/lists/changePassword.php:281 +msgid "Password change options" +msgstr "Voľby zmeny hesla" + +#: ../lib/modules/ppolicyUser.inc:52 ../lib/modules/ppolicyUser.inc:67 +#: ../lib/modules/ppolicyUser.inc:121 ../lib/modules/ppolicyUser.inc:232 +msgid "Password change required" +msgstr "Vyžadovaná zmena hesla" + +#: ../lib/types/ppolicyType.inc:91 ../lib/modules/ppolicy.inc:129 +#: ../lib/modules/ppolicy.inc:149 ../lib/modules/ppolicy.inc:293 +#: ../lib/modules/ppolicy.inc:503 +msgid "Password change requires old password" +msgstr "Zmena hesla vyžaduje staré heslo" + +#: ../lib/modules/mitKerberos.inc:182 ../lib/modules/mitKerberos.inc:468 +#: ../lib/modules/heimdalKerberos.inc:147 +#: ../lib/modules/heimdalKerberos.inc:385 +msgid "Password change service" +msgstr "Služba zmeny hesla" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:30 +msgid "Password check" +msgstr "Kontrola hesla" + +#: ../lib/modules/mitKerberos.inc:288 ../lib/modules/selfRegistration.inc:424 +#: ../lib/modules/posixGroup.inc:529 ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:107 ../lib/modules/posixAccount.inc:92 +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/windowsUser.inc:466 +#: ../lib/modules/inetOrgPerson.inc:99 +msgid "Password contains invalid characters. Valid characters are:" +msgstr "Heslo obsahuje neplatné znaky. Platné znaky sú:" + +#: ../lib/modules/sambaSamAccount.inc:269 +#: ../lib/modules/sambaSamAccount.inc:272 +#: ../lib/modules/sambaSamAccount.inc:434 +#: ../lib/modules/sambaSamAccount.inc:1130 +#: ../lib/modules/sambaSamAccount.inc:1712 ../lib/modules/windowsUser.inc:177 +#: ../lib/modules/windowsUser.inc:338 ../lib/modules/windowsUser.inc:399 +#: ../lib/modules/windowsUser.inc:566 ../lib/modules/windowsUser.inc:1242 +msgid "Password does not expire" +msgstr "Heslo stále platné" + +#: ../lib/types/user.inc:103 ../lib/modules/shadowAccount.inc:61 +#: ../lib/modules/shadowAccount.inc:106 ../lib/modules/shadowAccount.inc:163 +#: ../lib/modules/shadowAccount.inc:174 ../lib/modules/shadowAccount.inc:208 +#: ../lib/modules/shadowAccount.inc:315 ../lib/modules/shadowAccount.inc:493 +msgid "Password expiration" +msgstr "Doba platnosti hesla" + +#: ../lib/modules/shadowAccount.inc:61 ../lib/modules/shadowAccount.inc:62 +msgid "Password expiration must be are natural number or -1." +msgstr "Doba platnosti hesla musí byť prirodzené číslo alebo -1." + +#: ../lib/modules/asteriskVoicemail.inc:91 +msgid "Password for voicemail mailbox." +msgstr "Heslo hlasovej schránky." + +#: ../lib/modules/posixGroup.inc:443 ../lib/modules/posixGroup.inc:488 +#: ../lib/modules/posixAccount.inc:163 ../lib/modules/posixAccount.inc:219 +#: ../lib/modules/posixAccount.inc:421 ../lib/modules/inetOrgPerson.inc:299 +#: ../lib/modules/inetOrgPerson.inc:880 ../lib/modules/customFields.inc:120 +#: ../lib/modules/customFields.inc:1718 +msgid "Password hash type" +msgstr "Typ odtlačku hesla" + +#: ../lib/types/ppolicyType.inc:80 ../lib/modules/ppolicy.inc:85 +#: ../lib/modules/ppolicy.inc:138 ../lib/modules/ppolicy.inc:162 +#: ../lib/modules/ppolicy.inc:223 ../lib/modules/ppolicy.inc:467 +#: ../lib/modules/sambaDomain.inc:98 ../lib/modules/sambaDomain.inc:184 +#: ../lib/modules/sambaDomain.inc:276 ../lib/modules/sambaDomain.inc:641 +msgid "Password history length" +msgstr "Dĺžka histórie hesiel" + +#: ../templates/config/confmain.php:349 +msgid "Password mail settings" +msgstr "Nastavenia emailu na zaslanie hesla" + +#: ../lib/modules/shadowAccount.inc:59 ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/ppolicy.inc:160 ../lib/modules/sambaDomain.inc:215 +msgid "Password maximum age must be are natural number." +msgstr "Maximálny vek hesla musí byť prirodzené číslo." + +#: ../lib/modules/shadowAccount.inc:66 +msgid "Password maximum age must be bigger as password minimum age." +msgstr "Maximálny vek hesla musí byť väčší ako minimálny vek hesla." + +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/ppolicy.inc:161 +#: ../lib/modules/sambaDomain.inc:213 +msgid "Password maximum age must be bigger than password minimum age." +msgstr "Maximálny vek hesla musí byť väčší ako minimálny vek hesla." + +#: ../lib/modules/shadowAccount.inc:57 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/ppolicy.inc:159 ../lib/modules/sambaDomain.inc:214 +msgid "Password minimum age must be are natural number." +msgstr "Minimálny vek hesla musí byť prirodzené číslo." + +#: ../lib/modules/imapAccess.inc:85 ../lib/modules/imapAccess.inc:270 +msgid "Password of IMAP admin user" +msgstr "Heslo administrátora IMAP" + +#: ../lib/types/ppolicyType.inc:39 +msgid "Password policies" +msgstr "Politiky hesla" + +#: ../lib/types/ppolicyType.inc:48 +msgid "Password policies (ppolicy)" +msgstr "Politiky hesiel (ppolicy)" + +#: ../templates/config/mainmanage.php:217 ../lib/types/user.inc:284 +#: ../lib/types/user.inc:837 ../lib/modules/ppolicyUser.inc:38 +#: ../lib/modules/ppolicyUser.inc:48 ../lib/modules/ppolicyUser.inc:60 +#: ../lib/modules/ppolicyUser.inc:76 ../lib/modules/ppolicyUser.inc:112 +#: ../lib/modules/ppolicyUser.inc:227 ../lib/modules/ppolicyUser.inc:260 +#: ../lib/modules/ppolicy.inc:55 ../lib/modules/sambaDomain.inc:259 +#: ../help/help.inc:148 +msgid "Password policy" +msgstr "Politika hesla" + +#: ../lib/types/ppolicyType.inc:81 ../lib/modules/ppolicy.inc:89 +#: ../lib/modules/ppolicy.inc:139 ../lib/modules/ppolicy.inc:235 +#: ../lib/modules/ppolicy.inc:483 +msgid "Password quality check" +msgstr "Kontrola kvality hesla" + +#: ../lib/modules/passwordSelfReset.inc:230 +msgid "Password reset confirmation" +msgstr "Potvrdenie obnovenia hesla" + +#: ../lib/modules/passwordSelfReset.inc:214 +msgid "Password reset notification" +msgstr "Oznámenie obnovenia hesla" + +#: ../lib/modules/passwordSelfReset.inc:58 +#: ../lib/modules/passwordSelfReset.inc:722 +#: ../lib/modules/passwordSelfReset.inc:918 +msgid "Password self reset" +msgstr "Obnovenie hesla" + +#: ../lib/modules/passwordSelfReset.inc:1384 +msgid "Password successfully reset." +msgstr "Heslo úspešne vymazané." + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:101 +#: ../lib/modules/shadowAccount.inc:161 ../lib/modules/shadowAccount.inc:170 +#: ../lib/modules/shadowAccount.inc:202 ../lib/modules/shadowAccount.inc:307 +#: ../lib/modules/shadowAccount.inc:492 +msgid "Password warning" +msgstr "Upozornenie hesla" + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:64 +msgid "Password warning must be are natural number." +msgstr "Upozornenie hesla musí byť prirodzené číslo." + +#: ../templates/config/confmain.php:576 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:61 +#: ../lib/modules/passwordSelfReset.inc:986 ../lib/modules.inc:1116 +msgid "Passwords are different!" +msgstr "Heslá nie sú rovnaké!" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:59 +msgid "Passwords match." +msgstr "Heslá súhlasia." + +#: ../lib/types/nisObjectType.inc:77 +msgid "Path" +msgstr "Cesta" + +#: ../lib/modules/windowsUser.inc:184 +msgid "" +"Path of the user profile (UNC-path, e.g. \\\\server\\share\\user). $user is " +"replaced with user name." +msgstr "" +"Cesta k používateľskému profilu (cesta UNC, napr. (\\\\server" +"\\zdieľanie)\\user. $user je nahradené menom používateľa." + +#: ../lib/modules/sambaSamAccount.inc:348 +msgid "Path of the user profile." +msgstr "Cesta používateľského profilu." + +#: ../lib/modules/sambaSamAccount.inc:299 +msgid "" +"Path of the user profile. Can be a local absolute path or a UNC-path (\\" +"\\server\\share). $user and $group are replaced with user and group name." +msgstr "" +"Cesta k používateľskému profilu. Môže to byť lokálna absolútna cesta alebo " +"cesta UNC (\\\\server\\zdieľanie). $user a $group sú nahradené menom " +"používateľa a skupiny." + +#: ../lib/modules/imapAccess.inc:103 ../lib/modules/imapAccess.inc:127 +msgid "Path separator" +msgstr "Oddeľovač cesty" + +#: ../templates/config/confmain.php:299 +msgid "Path to external script" +msgstr "Cesta k externému skriptu" + +#: ../lib/modules/ddns.inc:86 ../lib/modules/ddns.inc:364 +msgid "Path to key for DNS updates" +msgstr "Cesta ku kľúču na aktualizácie DNS" + +#: ../lib/modules/qmailGroup.inc:133 +msgid "" +"Path to the maildir/mbox on the mail system for sender confirmation and " +"moderation." +msgstr "" +"Cesta k maildir/mbox v poštovom systéme na potvrdenie odosielateľa a " +"moderovanie." + +#: ../lib/modules/qmailUser.inc:241 +msgid "Path to the maildir/mbox on the mail system." +msgstr "Cesta k maildir/mbox poštového systému." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:41 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:64 +msgid "Permanently delete all children also?" +msgstr "Trvalo odstrániť aj všetkých potomkov?" + +#: ../lib/modules/asteriskAccount.inc:162 +#: ../lib/modules/asteriskAccount.inc:271 +#: ../lib/modules/asteriskAccount.inc:343 +#: ../lib/modules/asteriskAccount.inc:484 +#: ../lib/modules/asteriskAccount.inc:803 +#: ../lib/modules/asteriskAccount.inc:1203 +msgid "Permit" +msgstr "Povoliť" + +#: ../lib/modules/inetOrgPerson.inc:117 +msgid "Personal" +msgstr "Osobné" + +#: ../lib/selfService.inc:369 +msgid "Personal data" +msgstr "Osobné údaje" + +#: ../lib/types/user.inc:102 ../lib/types/user.inc:620 +#: ../lib/modules/inetOrgPerson.inc:143 ../lib/modules/inetOrgPerson.inc:3139 +#: ../lib/modules/inetOrgPerson.inc:3146 +msgid "Photo" +msgstr "Fotografia" + +#: ../lib/modules/inetOrgPerson.inc:2142 +msgid "Photo file (JPG format)" +msgstr "Súbor fotografie (formát JPG)" + +#: ../lib/modules/asteriskAccount.inc:166 +#: ../lib/modules/asteriskAccount.inc:273 +#: ../lib/modules/asteriskAccount.inc:344 +#: ../lib/modules/asteriskAccount.inc:491 +#: ../lib/modules/asteriskAccount.inc:812 +#: ../lib/modules/asteriskAccount.inc:1204 +msgid "Pickup group" +msgstr "Skupina príjemcov" + +#: ../lib/modules/ldapPublicKey.inc:67 +msgid "Please a comma separated list of your public SSH keys." +msgstr "Prosím, čiarkou oddelený zoznam svojich kľúčov SSH." + +#: ../lib/modules/customScripts.inc:78 +msgid "" +"Please activate this option if your scripts may generate HTML output. " +"Otherwise, the output is treated as plain text." +msgstr "" +"Prosím, aktivujte túto voľbu, ak vyše skripty môžu generovať výstup HTML. " +"Inak bude výstup považovaný za prostý text." + +#: ../lib/modules/asteriskExtension.inc:186 +msgid "Please add at least one extension owner." +msgstr "Prosím, pridajte aspoň jedného vlastníka rozšírenia." + +#: ../lib/modules/qmailGroup.inc:324 +msgid "Please check if this email should be sent." +msgstr "Prosím, skontrolujte, či má byť tento email odoslaný." + +#: ../lib/modules/sambaSamAccount.inc:1078 +msgid "Please check your settings on the Unix page!" +msgstr "Prosím, skontrolujte svoje nastavenia v stránke Unix!" + +#: ../lib/modules/imapAccess.inc:95 +msgid "" +"Please choose the attribute to get the IMAP user name. The default is \"mail" +"\" but you can also use \"uid\"." +msgstr "" +"Prosím, vyberte atribút, z ktorého bude získané používateľské meno IMAP. " +"Predvolený je „mail”, ale môžete použiť aj „uid”." + +#: ../lib/types/user.inc:298 +msgid "Please click to lock/unlock this account." +msgstr "Prosím, kliknite na zamknutie/odomknutie účtu." + +#: ../lib/modules/sambaSamAccount.inc:108 +msgid "Please enter a RID number or the name of a special account!" +msgstr "Prosím, zadajte číslo RID alebo meno špeciálneho účtu!" + +#: ../lib/modules/asteriskAccount.inc:617 +msgid "Please enter a caller ID." +msgstr "Prosím, zadajte ID volajúceho." + +#: ../lib/modules/imapAccess.inc:92 +msgid "" +"Please enter a comma separated list of domain names (e.g. \"company.com," +"example.com\"). LAM will only manage mailboxes from these domains." +msgstr "" +"Prosím, zadajte čiarkou oddelený zoznam doménových mien (napr. \"spolocnost." +"sk,example.com\"). LAM bude spravovať len poštové schránky týchto domén." + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +msgid "Please enter a comma separated list of host names!" +msgstr "Prosím, zadajte čiarkou oddelený zoznam mien strojov!" + +#: ../lib/modules/asteriskExtension.inc:178 +msgid "Please enter a common name." +msgstr "Prosím, zadajte bežné meno (cn)." + +#: ../lib/modules/imapAccess.inc:159 +msgid "Please enter a correct list of valid mail domains." +msgstr "Prosím, zadajte správny zoznam platných poštových domén." + +#: ../lib/modules/customFields.inc:77 +msgid "Please enter a descriptive label for this field." +msgstr "Prosím, zadajte popisné meno tohto poľa." + +#: ../lib/modules/nisObject.inc:55 ../lib/modules/automount.inc:58 +#: ../lib/modules/sudoRole.inc:56 +msgid "Please enter a descriptive name for this entry." +msgstr "Prosím, zadajte popisné meno tejto položky." + +#: ../lib/modules/windowsGroup.inc:111 +msgid "Please enter a descriptive text for this group." +msgstr "Prosím, zadajte popisný text tejto skupiny." + +#: ../lib/modules/windowsHost.inc:72 +msgid "Please enter a descriptive text for this host." +msgstr "Prosím, zadajte popisný text tohoto stroja." + +#: ../lib/modules/windowsUser.inc:100 +msgid "Please enter a descriptive text for this user." +msgstr "Prosím, zadajte popisný text tohoto používateľa." + +#: ../lib/modules/groupOfNames.inc:145 +msgid "Please enter a group name!" +msgstr "Prosím, zadajte meno skupiny!" + +#: ../lib/modules/selfRegistration.inc:149 +msgid "Please enter a list of object classes for the new accounts." +msgstr "Prosím, zadajte zoznam triedy objektov nových účtov." + +#: ../lib/modules/asteriskVoicemail.inc:200 +msgid "Please enter a mailbox." +msgstr "Prosím, zadajte poštovú schránku." + +#: ../lib/modules/device.inc:55 +msgid "Please enter a name for this device." +msgstr "Prosím, zadajte meno tohoto zariadenia." + +#: ../lib/modules/ppolicy.inc:158 +msgid "Please enter a name for this policy." +msgstr "Prosím, zadajte meno tejto politiky." + +#: ../lib/modules/customFields.inc:1873 +msgid "Please enter a natural number for column count." +msgstr "Prosím, zadajte prirodzené číslo počtu stĺpcov." + +#: ../lib/modules/customFields.inc:1883 +msgid "Please enter a natural number for row count." +msgstr "Prosím, zadajte prirodzené číslo počtu riadkov." + +#: ../lib/modules/qmailUser.inc:458 ../lib/modules/qmailUser.inc:460 +msgid "Please enter a number for GID number." +msgstr "Prosím, do GID zadajte číslo." + +#: ../lib/modules/qmailUser.inc:455 ../lib/modules/qmailUser.inc:457 +msgid "Please enter a number for UID number." +msgstr "Prosím, do UID zadajte číslo." + +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:452 +msgid "Please enter a number for message count limit." +msgstr "Prosím, do limitu počtu správ zadajte číslo." + +#: ../lib/modules/qmailUser.inc:453 ../lib/modules/qmailUser.inc:454 +msgid "Please enter a number for message size limit." +msgstr "Prosím, do limitu veľkosti správy zadajte číslo." + +#: ../lib/modules/qmailUser.inc:449 ../lib/modules/qmailUser.inc:450 +msgid "Please enter a number for quota size." +msgstr "Prosím, do veľkosti kvóty zadajte číslo." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:51 +#: ../lib/modules/zarafaUser.inc:440 ../lib/modules/zarafaUser.inc:441 +#: ../lib/modules/zarafaUser.inc:442 ../lib/modules/zarafaUser.inc:443 +#: ../lib/modules/zarafaUser.inc:444 ../lib/modules/zarafaUser.inc:445 +#: ../lib/modules/zarafaUser.inc:447 ../lib/modules/zarafaUser.inc:448 +msgid "Please enter a number." +msgstr "Prosím, zadajte číslo." + +#: ../lib/modules/ppolicy.inc:167 +msgid "Please enter a numeric value for the expire warning." +msgstr "Prosím, zadajte číselnú hodnotu varovania vypršania platnosti." + +#: ../lib/modules/ppolicy.inc:166 +msgid "Please enter a numeric value for the failure count interval." +msgstr "Prosím, zadajte číselnú hodnotu intervalu počtu neúspechov." + +#: ../lib/modules/ppolicy.inc:163 +msgid "Please enter a numeric value for the grace authentication limit." +msgstr "Prosím, zadajte číselnú hodnotu limitu odkladu autentizácie." + +#: ../lib/modules/freeRadius.inc:252 ../lib/modules/freeRadius.inc:253 +msgid "Please enter a numeric value for the idle timeout." +msgstr "Prosím, zadajte číselnú hodnotu časového limitu nečinnosti." + +#: ../lib/modules/ppolicy.inc:164 +msgid "Please enter a numeric value for the lockout duration." +msgstr "Prosím, zadajte číselnú hodnotu trvania uzamknutia." + +#: ../lib/modules/ppolicy.inc:165 +msgid "Please enter a numeric value for the maximum failure count." +msgstr "Prosím, zadajte číselnú hodnotu maximálneho počtu neúspechov." + +#: ../lib/modules/ppolicy.inc:168 +msgid "Please enter a numeric value for the minimum password length." +msgstr "Prosím, zadajte číselnú hodnotu minimálnej dĺžky hesla." + +#: ../lib/modules/ppolicy.inc:162 +msgid "Please enter a numeric value for the password history length." +msgstr "Prosím, zadajte číselnú hodnotu dĺžky histórie hesiel." + +#: ../lib/modules/sudoRole.inc:221 +msgid "Please enter a role name." +msgstr "Prosím, zadajte meno role." + +#: ../lib/modules/passwordSelfReset.inc:1007 +msgid "Please enter a security answer." +msgstr "Prosím, zadajte bezpečnostnú otázku." + +#: ../lib/modules/selfRegistration.inc:147 +msgid "Please enter a subject for the confirmation mails." +msgstr "Prosím, zadajte predmet potvrdzujúceho emailu." + +#: ../lib/modules/selfRegistration.inc:148 +msgid "" +"Please enter a text for the confirmation mails that includes the creation " +"link." +msgstr "" +"Prosím, zadajte text potvrdzujúceho emailu, ktorý bude obsahovať odkaz na " +"vytvorenie." + +#: ../lib/modules/customFields.inc:73 +msgid "Please enter a unique name for this field." +msgstr "Prosím, zadajte jedinečné meno tohoto poľa." + +#: ../lib/modules/ppolicy.inc:74 +msgid "Please enter a unique name for this password policy." +msgstr "Prosím, zadajte jedinečné meno tejto politiky hesla." + +#: ../lib/modules/kolabUser.inc:201 ../lib/modules/kolabUser.inc:207 +msgid "Please enter a user password." +msgstr "Prosím, zadajte heslo používateľa." + +#: ../lib/modules/zarafaDynamicGroup.inc:191 ../lib/modules/eduPerson.inc:238 +#: ../lib/modules/eduPerson.inc:240 ../lib/modules/zarafaAddressList.inc:162 +msgid "Please enter a valid DN in the field:" +msgstr "Prosím, zadajte platné DN v poli:" + +#: ../lib/modules/customFields.inc:993 ../lib/modules/customFields.inc:1316 +msgid "" +"Please enter a valid LDAP attribute name. Allowed characters are a-z, 0-9, _ " +"and -." +msgstr "" +"Prosím, zadajte platné meno atribúta LDAP. Povolené znaky sú: a-z, 0-9, _ a " +"-." + +#: ../lib/modules/qmailUser.inc:447 +msgid "Please enter a valid account status." +msgstr "Prosím, zadajte platný stav účtu." + +#: ../templates/config/confmain.php:520 +msgid "Please enter a valid bind user." +msgstr "Prosím, zadajte platného používateľa väzby (bind)." + +#: ../lib/modules/inetOrgPerson.inc:97 ../lib/modules/inetOrgPerson.inc:98 +msgid "Please enter a valid business category!" +msgstr "Prosím, zadajte platnú obchodnú kategóriu!" + +#: ../lib/modules/posixAccount.inc:111 ../lib/modules/posixAccount.inc:112 +#: ../lib/modules/inetOrgPerson.inc:90 ../lib/modules/inetOrgPerson.inc:91 +msgid "Please enter a valid common name!" +msgstr "Prosím, zadajte platné bežné meno (cn)!" + +#: ../lib/modules/qmailUser.inc:464 +msgid "Please enter a valid configuration type." +msgstr "Prosím, zadajte platný typ nastavenia." + +#: ../lib/modules/mitKerberos.inc:282 ../lib/modules/mitKerberos.inc:283 +#: ../lib/modules/qmailUser.inc:463 ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/heimdalKerberos.inc:241 +#: ../lib/modules/heimdalKerberos.inc:242 +msgid "Please enter a valid date in format DD-MM-YYYY." +msgstr "Prosím, zadajte platný dátum vo formáte DD-MM-YYYY." + +#: ../lib/modules/asteriskAccount.inc:638 +#: ../lib/modules/asteriskAccount.inc:639 +msgid "Please enter a valid default user." +msgstr "Prosím, zadajte platného predvoleného používateľa." + +#: ../lib/modules/qmailUser.inc:448 +msgid "Please enter a valid delivery mode." +msgstr "Prosím, zadajte platný režim doručenia." + +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:111 ../lib/modules/windowsUser.inc:445 +#: ../lib/modules/windowsUser.inc:446 +msgid "Please enter a valid display name!" +msgstr "Prosím, zadajte platné zobrazované meno!" + +#: ../lib/modules/sambaSamAccount.inc:117 +msgid "Please enter a valid drive letter." +msgstr "Prosím, zadajte platné písmeno disku." + +#: ../lib/modules/selfRegistration.inc:417 +#: ../lib/modules/zarafaDynamicGroup.inc:193 +#: ../lib/modules/zarafaDynamicGroup.inc:194 ../lib/modules/qmailUser.inc:441 +#: ../lib/modules/qmailUser.inc:442 ../lib/modules/qmailUser.inc:443 +#: ../lib/modules/qmailUser.inc:444 ../lib/modules/qmailUser.inc:445 +#: ../lib/modules/qmailUser.inc:446 ../lib/modules/zarafaGroup.inc:209 +#: ../lib/modules/zarafaGroup.inc:210 ../lib/modules/windowsUser.inc:457 +#: ../lib/modules/windowsUser.inc:458 ../lib/modules/inetOrgPerson.inc:76 +#: ../lib/modules/inetOrgPerson.inc:77 ../lib/modules/qmailGroup.inc:413 +#: ../lib/modules/qmailGroup.inc:414 ../lib/modules/qmailGroup.inc:415 +#: ../lib/modules/qmailGroup.inc:416 ../lib/modules/qmailGroup.inc:418 +#: ../lib/modules/qmailGroup.inc:419 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:421 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:424 +#: ../lib/modules/qmailGroup.inc:425 ../lib/modules/passwordSelfReset.inc:745 +#: ../lib/modules/passwordSelfReset.inc:941 +#: ../lib/modules/windowsGroup.inc:242 ../lib/modules/windowsGroup.inc:243 +#: ../lib/modules.inc:1161 +msgid "Please enter a valid email address!" +msgstr "Prosím, zadajte platnú emailovú adresu!" + +#: ../lib/modules/zarafaDynamicGroup.inc:195 +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaGroup.inc:211 ../lib/modules/zarafaGroup.inc:212 +msgid "Please enter a valid email alias." +msgstr "Prosím, zadajte platný alias emailu." + +#: ../lib/modules/passwordSelfReset.inc:752 +#: ../lib/modules/passwordSelfReset.inc:948 +msgid "Please enter a valid employee number." +msgstr "Prosím, zadajte platné číslo zamestnanca." + +#: ../lib/modules/inetOrgPerson.inc:88 ../lib/modules/inetOrgPerson.inc:89 +msgid "Please enter a valid employee type!" +msgstr "Prosím, zadajte platný typ pracovného pomeru!" + +#: ../lib/modules/inetOrgPerson.inc:74 ../lib/modules/inetOrgPerson.inc:75 +msgid "Please enter a valid fax number!" +msgstr "Prosím, zadajte platné číslo faxu!" + +#: ../lib/modules/customFields.inc:143 +msgid "" +"Please enter a valid field name. Only letters, numbers, dash and underline " +"are allowed." +msgstr "" +"Prosím, zdajte platné meno poľa. Povolené sú len písmená, číslice, pomlčka a " +"podčiarkovník." + +#: ../lib/lists.inc:229 +msgid "" +"Please enter a valid filter. Only letters, numbers and \" _*$.@-\" are " +"allowed." +msgstr "" +"Prosím, zadajte platný filter. Dovolené sú len písmená, číslice a „ _*$.@-”." + +#: ../lib/modules/selfRegistration.inc:68 +#: ../lib/modules/selfRegistration.inc:125 +msgid "Please enter a valid first name." +msgstr "Prosím, zadajte platné rodné meno." + +#: ../lib/modules/asteriskAccount.inc:632 +#: ../lib/modules/asteriskAccount.inc:633 +msgid "Please enter a valid from domain." +msgstr "Prosím, zadajte platnú doménu odosielateľa." + +#: ../lib/modules/asteriskAccount.inc:630 +#: ../lib/modules/asteriskAccount.inc:631 +msgid "Please enter a valid from user." +msgstr "Prosím, zadajte platného odosielateľa." + +#: ../lib/modules/sambaSamAccount.inc:121 +msgid "Please enter a valid group name!" +msgstr "Prosím, zadajte platné meno skupiny!" + +#: ../lib/modules/windowsGroup.inc:246 +msgid "Please enter a valid group scope." +msgstr "Prosím, zadajte platný rozsah skupiny!" + +#: ../lib/modules/windowsGroup.inc:247 +msgid "Please enter a valid group type." +msgstr "Prosím, zadajte platný typ skupiny!" + +#: ../lib/modules/inetOrgPerson.inc:86 ../lib/modules/inetOrgPerson.inc:87 +msgid "Please enter a valid job title!" +msgstr "Prosím, zadajte platné pracovné zaradenie!" + +#: ../lib/modules/selfRegistration.inc:69 +#: ../lib/modules/selfRegistration.inc:126 +msgid "Please enter a valid last name." +msgstr "Prosím, zadajte platné priezvisko!" + +#: ../lib/modules/eduPerson.inc:246 +msgid "Please enter a valid list of affiliations." +msgstr "Prosím, zadajte zadajte platný zoznam vzťahov." + +#: ../lib/modules/freeRadius.inc:248 ../lib/modules/freeRadius.inc:249 +msgid "Please enter a valid list of group names." +msgstr "Prosím, zadajte zoznam mien skupín." + +#: ../lib/modules/hostObject.inc:104 +msgid "Please enter a valid list of host names." +msgstr "Prosím, zadajte zoznam mien strojov." + +#: ../lib/modules/authorizedServiceObject.inc:123 +msgid "Please enter a valid list of service names." +msgstr "Prosím, zadajte platný zoznam mien služieb." + +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:73 +msgid "Please enter a valid mobile number!" +msgstr "Prosím, zadajte platné číslo mobilu!" + +#: ../lib/modules/customFields.inc:145 +msgid "Please enter a valid object class." +msgstr "Prosím, zadajte platnú triedu objektu." + +#: ../lib/modules/zarafaServer.inc:170 ../lib/modules/zarafaServer.inc:171 +msgid "Please enter a valid path." +msgstr "Prosím, zadajte platnú cestu." + +#: ../lib/modules/asteriskAccount.inc:634 +#: ../lib/modules/asteriskAccount.inc:635 ../lib/modules/zarafaServer.inc:166 +#: ../lib/modules/zarafaServer.inc:167 ../lib/modules/zarafaServer.inc:168 +#: ../lib/modules/zarafaServer.inc:169 +msgid "Please enter a valid port number." +msgstr "Prosím, zadajte platné číslo portu." + +#: ../lib/modules/inetOrgPerson.inc:80 ../lib/modules/inetOrgPerson.inc:81 +msgid "Please enter a valid postal address!" +msgstr "Prosím, zadajte platnú poštovú adresu!" + +#: ../lib/modules/windowsUser.inc:455 ../lib/modules/windowsUser.inc:456 +#: ../lib/modules/inetOrgPerson.inc:84 ../lib/modules/inetOrgPerson.inc:85 +msgid "Please enter a valid postal code!" +msgstr "Prosím, zadajte platné PSČ!" + +#: ../lib/modules/eduPerson.inc:244 +msgid "Please enter a valid primary affiliation." +msgstr "Prosím, zadajte platný primárny vzťah." + +#: ../lib/modules/freeRadius.inc:246 ../lib/modules/freeRadius.inc:247 +msgid "Please enter a valid realm." +msgstr "Prosím, zadajte platnú autentifikačnú doménu (realm)." + +#: ../lib/modules/inetOrgPerson.inc:82 ../lib/modules/inetOrgPerson.inc:83 +msgid "Please enter a valid registered address." +msgstr "Prosím, zadajte platnú poštovú adresu." + +#: ../lib/modules/eduPerson.inc:245 +msgid "Please enter a valid scoped affiliation." +msgstr "Prosím, zadajte platnú rolu vzťahu." + +#: ../lib/modules/qmailUser.inc:461 ../lib/modules/qmailUser.inc:462 +#: ../lib/modules/imapAccess.inc:158 +msgid "Please enter a valid server name where the mailboxes reside." +msgstr "" +"Prosím, zadajte platné meno servera, kde sú umiestnené poštové schránky." + +#: ../lib/modules/inetOrgPerson.inc:78 ../lib/modules/inetOrgPerson.inc:79 +msgid "Please enter a valid street name!" +msgstr "Prosím, zadajte platné meno ulice!" + +#: ../lib/modules/windowsUser.inc:451 ../lib/modules/windowsUser.inc:452 +#: ../lib/modules/windowsUser.inc:453 ../lib/modules/windowsUser.inc:454 +#: ../lib/modules/inetOrgPerson.inc:68 ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:71 +msgid "Please enter a valid telephone number!" +msgstr "Prosím, zadajte platné telefónne číslo!" + +#: ../lib/modules/passwordSelfReset.inc:759 +#: ../lib/modules/passwordSelfReset.inc:955 +msgid "Please enter a valid user name or email address." +msgstr "Prosím, zadajte platné používateľské meno alebo emailovú adresu." + +#: ../lib/modules/posixGroup.inc:632 ../lib/modules/posixAccount.inc:976 +#: ../lib/modules/posixAccount.inc:981 +#, php-format +msgid "Please enter a value between %s and %s!" +msgstr "Prosím, zadajte hodnotu medzi %s a %s!" + +#: ../lib/modules/customFields.inc:2018 +msgid "Please enter a value for status \"checked\"." +msgstr "Prosím, zadajte hodnotu pre stav „zaškrtnuté”." + +#: ../lib/modules/customFields.inc:2025 +msgid "Please enter a value for status \"unchecked\"." +msgstr "Prosím, zadajte hodnotu pre stav „nezaškrtnuté”." + +#: ../lib/modules/customFields.inc:65 +msgid "Please enter an alias for this group." +msgstr "Prosím, zadajte alias tejto skupiny." + +#: ../lib/modules/customFields.inc:144 +msgid "Please enter an alias name." +msgstr "Prosím, zadajte názov aliasu!" + +#: ../lib/modules/kolabUser.inc:213 ../lib/modules/imapAccess.inc:188 +#, php-format +msgid "Please enter an email address on this page: %s" +msgstr "Prosím, zadajte na tejto stránke emailovú adresu: %s" + +#: ../lib/modules/windowsUser.inc:1022 ../lib/modules/windowsUser.inc:1031 +#: ../lib/modules/windowsUser.inc:1040 ../lib/modules/windowsUser.inc:1051 +msgid "Please enter either yes or no." +msgstr "Prosím, zadajte áno alebo nie." + +#: ../lib/modules/sudoRole.inc:227 ../lib/modules/sudoRole.inc:228 +msgid "Please enter only ASCII characters for the commands." +msgstr "Prosím, pre príkaz zadajte len znaky ASCII." + +#: ../lib/modules/sudoRole.inc:225 ../lib/modules/sudoRole.inc:226 +msgid "Please enter only ASCII characters for the host names." +msgstr "Prosím, pre mená strojov zadajte len znaky ASCII." + +#: ../lib/modules/sudoRole.inc:233 ../lib/modules/sudoRole.inc:234 +msgid "Please enter only ASCII characters for the options." +msgstr "Prosím, pre voľby zadajte len znaky ASCII." + +#: ../lib/modules/sudoRole.inc:231 ../lib/modules/sudoRole.inc:232 +msgid "Please enter only ASCII characters for the run groups." +msgstr "Prosím, pre skupiny na spustenie zadajte len znaky ASCII." + +#: ../lib/modules/sudoRole.inc:229 ../lib/modules/sudoRole.inc:230 +msgid "Please enter only ASCII characters for the run users." +msgstr "Prosím, pre používateľov na spustenie zadajte len znaky ASCII." + +#: ../lib/modules/device.inc:133 ../lib/modules/device.inc:134 +msgid "Please enter only ASCII characters for the serial number." +msgstr "Prosím, pre sériové číslo zadajte len znaky ASCII." + +#: ../lib/modules/sudoRole.inc:223 ../lib/modules/sudoRole.inc:224 +msgid "Please enter only ASCII characters for the user names." +msgstr "Prosím, pre používateľské mená zadajte len znaky ASCII." + +#: ../lib/modules/passwordSelfReset.inc:258 +msgid "" +"Please enter the DN and password of the administrative password self reset " +"account." +msgstr "Prosím, zadajte DN a heslo účtu na obnovenie hesla administrátora." + +#: ../lib/modules/selfRegistration.inc:146 +msgid "" +"Please enter the DN and password of the administrative self registration " +"account." +msgstr "Prosím, zadajte DN a heslo administrácie samoregistrácie účtu." + +#: ../lib/modules/posixGroup.inc:464 ../lib/modules/posixAccount.inc:462 +msgid "" +"Please enter the DN of the LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "Prosím, zadajte DN položky LDAP s triedou objektu „sambaUnixIdPool”." + +#: ../lib/modules/ddns.inc:92 +msgid "Please enter the IP address of your DNS server." +msgstr "Prosím, zadajte adresu IP svojho servera DNS." + +#: ../lib/modules/selfRegistration.inc:101 +msgid "Please enter the LDAP DN that should be used to create new users." +msgstr "" +"Prosím, zadajte LDAP DN, ktoré má byť použité na vytvorenie nových " +"požívateľov." + +#: ../lib/modules/passwordSelfReset.inc:93 +msgid "Please enter the LDAP DN that should be used to reset passwords." +msgstr "Prosím, zadajte LDAP DN, ktoré má byť použité na obnovenie hesla." + +#: ../lib/modules/customFields.inc:81 +msgid "Please enter the LDAP attribute name for this field." +msgstr "Prosím, zadajte názov atribútu LDAP tohoto poľa." + +#: ../help/help.inc:117 +msgid "" +"Please enter the LDAP suffix where LAM should start to search for users. The " +"LDAP filter needs to match the given user name to exactly one DN. The value " +"\"%USER%\" will be replaced by the user name from the login page." +msgstr "" +"Prosím, zadajte príponu LDAP, kde má LAM začať hľadanie používateľov. Filter " +"LDAP musí pre zadané meno vrátiť práve jedno DN. Hodnota „%USER%” bude " +"nahradená menom používateľa, zadaným pomocou prihlasovacej stránky." + +#: ../lib/modules/asteriskExtension.inc:181 +#: ../lib/modules/asteriskVoicemail.inc:204 +msgid "Please enter the account context." +msgstr "Prosím, zadajte kontext účtu." + +#: ../lib/modules.inc:925 +msgid "Please enter the account information on the other pages first." +msgstr "Prosím, najprv zadajte informácie účtu na ostatných stránkach." + +#: ../lib/modules/asteriskAccount.inc:627 +msgid "Please enter the account type." +msgstr "Prosím, zadajte typ účtu." + +#: ../lib/modules/asteriskAccount.inc:111 +msgid "Please enter the account's type (e.g. \"friend\")." +msgstr "Prosím, zadajte typ účtu (napr. „priateľ”)." + +#: ../lib/modules/asteriskExtension.inc:180 +msgid "Please enter the application data." +msgstr "Prosím, zadajte dáta aplikácie." + +#: ../lib/modules/asteriskExtension.inc:179 +msgid "Please enter the application." +msgstr "Prosím, zadajte aplikáciu." + +#: ../lib/modules/automount.inc:62 +msgid "" +"Please enter the automount entry (e.g. \"-fstype=nfs,rw server:/home\")." +msgstr "" +"Prosím, zadajte položku automount (napr. „-fstype=nfs,rw server:/home”)." + +#: ../templates/login.php:285 +msgid "Please enter the configuration and create a server profile." +msgstr "Prosím, zadajte konfiguráciu a vytvorte profil servera." + +#: ../help/help.inc:57 +msgid "" +"Please enter the configuration password. This is NOT your LDAP password. It " +"is stored in your .conf-file. If this is the first time you log in, enter " +"\"lam\"." +msgstr "" +"Prosím, zadajte heslo nastavení. Nie je to vaše heslo LDAP. Je uložené vo " +"vašom súbore .conf. Ak je toto prvé prihlásenie, zadajte „lam”." + +#: ../lib/modules/puppetClient.inc:74 ../lib/modules/puppetClient.inc:78 +msgid "Please enter the environment name for this node (e.g. production)." +msgstr "Prosím, zadajte názov prostredie tohoto uzla (napr. výroba)." + +#: ../lib/modules/asteriskAccount.inc:621 +msgid "Please enter the extension context." +msgstr "Prosím, zadajte kontext rozšírenia." + +#: ../lib/modules/asteriskExtension.inc:182 +msgid "Please enter the extension name." +msgstr "Prosím, zadajte meno rozšírenia." + +#: ../lib/modules/windowsGroup.inc:107 +msgid "Please enter the group name." +msgstr "Prosím, zadajte meno skupiny." + +#: ../lib/modules/asteriskAccount.inc:624 ../lib/modules/windowsHost.inc:68 +msgid "Please enter the host name." +msgstr "Prosím, zadajte meno stroja." + +#: ../lib/modules/customScripts.inc:53 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [account type] [action] [script and arguments]" +msgstr "" +"Prosím, zadajte zoznam skriptov, ktoré majú byť spustené. Každý riadok má " +"nasledujúci formát: [typ účtu] [akcia] [skript a argumenty]" + +#: ../lib/modules/customScripts.inc:67 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [action] [script and arguments]" +msgstr "" +"Prosím, zadajte zoznam skriptov, ktoré majú byť spustené. Každý riadok má " +"nasledujúci formát: [akcia] [skript a argumenty]" + +#: ../lib/modules/nisObject.inc:59 +msgid "" +"Please enter the mapping entry (e.g. \"-fstype=nfs,rw server:/projects\")." +msgstr "" +"Prosím, zadajte mapovaciu položku (napr. „-fstype=nfs,rw server:/projects”)." + +#: ../lib/modules/nisObject.inc:63 +msgid "Please enter the mapping name for this entry (e.g. auto.home)." +msgstr "Prosím, zadajte meno tejto položky mapovania (napr. auto.home)." + +#: ../help/help.inc:137 +msgid "" +"Please enter the master configuration password. This is NOT your LDAP " +"password. It is stored in your config.cfg file. If this is the first time " +"you log in, enter \"lam\"." +msgstr "" +"Prosím, zadajte hlavné heslo nastavenia. Nie je to vaše heslo v LDAP. Je " +"uložené vo vašom súbore config.cfg. Ak je to vaše prvé prihlásenie, zadajte " +"„lam”." + +#: ../templates/config/mainlogin.php:143 +msgid "Please enter the master password to change the general preferences:" +msgstr "Prosím, na zmenu všeobecných nastavení zadajte hlavné heslo:" + +#: ../lib/modules/qmailGroup.inc:417 +msgid "Please enter the message store." +msgstr "Prosím, zadajte úložisko správy." + +#: ../help/help.inc:125 +msgid "" +"Please enter the name of the new profile and the password to change its " +"settings. Profile names may contain letters, numbers and -/_." +msgstr "" +"Prosím, zadajte meno nového profilu a heslo na zmenu jeho nastavení. Meno " +"profilu môže obsahovať písmená, číslice a -/_." + +#: ../help/help.inc:127 +msgid "" +"Please enter the new name of the profile. The name may contain letters, " +"numbers and -/_." +msgstr "" +"Prosím, zadajte nové meno profilu. Meno môže obsahovať písmená, číslice a -/" +"_." + +#: ../lib/modules/selfRegistration.inc:105 +#: ../lib/modules/passwordSelfReset.inc:97 +msgid "" +"Please enter the password for the admin DN. Please note that this is saved " +"as clear-text in the self service profile." +msgstr "" +"Prosím, zadajte heslo DN administrátora. Prosím, pamätajte, že je ukladané " +"ako prostý text samoobslužnom profile." + +#: ../lib/modules/asteriskAccount.inc:107 ../lib/modules/posixAccount.inc:483 +#: ../lib/modules/windowsUser.inc:199 ../lib/modules/inetOrgPerson.inc:909 +msgid "Please enter the password which you want to set for this account." +msgstr "Prosím, zadajte heslo, ktoré chcete nastaviť tomuto účtu." + +#: ../help/help.inc:181 +msgid "" +"Please enter the password which you want to set for this account. You may " +"also generate a random password (12 characters) which will be displayed on " +"your screen." +msgstr "" +"Prosím, zadajte heslo, ktoré chcete nastaviť tomuto účtu. Môžete si nechať " +"vygenerovať aj náhodné heslo (12 znakov), ktoré bude potom zobrazené na " +"obrazovke." + +#: ../lib/modules/posixAccount.inc:438 +msgid "Please enter the path to the user's home directory." +msgstr "Prosím, zadajte cestu domovského adresára používateľa." + +#: ../lib/modules/zarafaServer.inc:62 +msgid "Please enter the port number for (unencrypted) HTTP connections." +msgstr "Prosím, zadajte číslo portu (nešifrovaných) spojení HTTP." + +#: ../lib/modules/zarafaServer.inc:66 +msgid "Please enter the port number for encrypted connections." +msgstr "Prosím, zadajte číslo portu šifrovaných spojení." + +#: ../lib/modules/passwordSelfReset.inc:73 +msgid "" +"Please enter the possible security questions for the password self reset." +msgstr "Prosím, zadajte možné bezpečnostné otázky na obnovenie hesla." + +#: ../lib/modules/asteriskExtension.inc:184 +msgid "Please enter the priority." +msgstr "Prosím, zadajte prioritu." + +#: ../lib/modules/imapAccess.inc:101 +msgid "Please enter the quota limit of this mailbox in kilobytes." +msgstr "Prosím, zadajte limit kvóty tejto poštovej schránky v kilobajtoch." + +#: ../lib/modules/quota.inc:147 +msgid "" +"Please enter the quota settings for this mount point. The syntax is: {soft " +"block limit},{hard block limit},{soft inode limit},{hard inode limit}" +msgstr "" +"Prosím, zadajte nastavenie kvót tohoto prípojného bodu. Syntax je: {mäkký " +"limit blokov},{pevný limit blokov},{mäkký limit inodov},{pevný limit inodov}" + +#: ../lib/modules/systemQuotas.inc:62 +msgid "" +"Please enter the quota settings for this user. The syntax is: {mount point}," +"{soft block limit},{hard block limit},{soft inode limit},{hard inode limit}." +msgstr "" +"Prosím, zadajte nastavenia kvót tohoto používateľa. Syntax je: {prípojný " +"bod},{mäkký limit blokov},{pevný limit blokov},{mäkký limit inodov},{pevný " +"limit inodov}." + +#: ../lib/modules/selfRegistration.inc:122 +#, php-format +msgid "" +"Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") and an error " +"message if the value does not match it. For a syntax description see
    here." +msgstr "" +"Prosím, zadajte regulárny výraz (napr. „/^[0-9a-zA-Z]+$/”) a chybovú správu, " +"keď mu hodnota nebude vyhovovať. Popis syntaxe nájdete tu." + +#: ../lib/modules/customFields.inc:93 +#, php-format +msgid "" +"Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") to validate " +"this field. For a syntax description see here." +msgstr "" +"Prosím, zadajte regulárny výraz (napr. „/^[0-9a-zA-Z]+$/”) na overenie " +"tohoto poľa. Popis syntaxe nájdete tu." + +#: ../templates/lists/changePassword.php:476 +#: ../lib/modules/selfRegistration.inc:421 +#: ../lib/modules/sambaSamAccount.inc:105 ../lib/modules/posixAccount.inc:91 +#: ../lib/modules/windowsUser.inc:465 ../lib/modules/customFields.inc:1783 +msgid "Please enter the same password in both password fields." +msgstr "Prosím, zadajte rovnaké heslo v oboch poliach hesla." + +#: ../lib/modules/passwordSelfReset.inc:69 +msgid "Please enter the security question for the password self reset." +msgstr "Prosím, zadajte bezpečnostnú otázku na obnovenie hesla." + +#: ../lib/modules/sambaSamAccount.inc:360 +msgid "Please enter the time limit in minutes. 0 means unlimited." +msgstr "Prosím, zadajte časový limit v minútach. 0 znamená neobmedzené." + +#: ../lib/modules/windowsUser.inc:96 +msgid "Please enter the user's name." +msgstr "Prosím, zadajte meno používateľa." + +#: ../lib/modules/puppetClient.inc:94 ../lib/modules/puppetClient.inc:98 +msgid "" +"Please enter your Puppet variables for this node (e.g. config_exim=true)." +msgstr "Prosím, zadajte premenné Puppet tohoto uzla (napr. config_exim=true)." + +#: ../templates/config/conflogin.php:132 +msgid "Please enter your password to change the server preferences:" +msgstr "Prosím, na zmenu nastavení servera zadajte svoje heslo:" + +#: ../lib/modules/ldapPublicKey.inc:63 +msgid "Please enter your public SSH key." +msgstr "Prosím, zadajte svoj verejný kľúč SSH." + +#: ../lib/modules/range.inc:394 ../lib/modules/fixed_ip.inc:329 +msgid "Please fill out the DHCP settings first." +msgstr "Prosím, najprv vyplňte nastavenia DHCP." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "Please go back and try again." +msgstr "Prosím, vráťte sa a skúste znova." + +#: ../templates/masscreate.php:240 +msgid "" +"Please provide a CSV formated file with your account data. The cells in the " +"first row must be filled with the column identifiers. The following rows " +"represent one account for each row." +msgstr "" +"Prosím, zadajte súbor CSV, s údajmi o účtoch. Bunky prvého riadku musia " +"obsahovať identifikátory stĺpcov. Nasledujúce riadky reprezentujú každý " +"jeden účet." + +#: ../templates/massBuildAccounts.php:256 +msgid "Please provide a file to upload." +msgstr "Prosím, zadajte súbor na nahranie." + +#: ../lib/modules/inetOrgPerson.inc:817 +msgid "" +"Please select an image file to upload. It must be in JPG format (.jpg/.jpeg)." +msgstr "" +"Prosím, vyberte súbor s obrázkom na nahranie. Musí byť vo formáte JPG (.jpg/." +"jpeg)." + +#: ../lib/modules/customFields.inc:85 +msgid "Please select the field type (e.g. text field)." +msgstr "Prosím, vyberte typ poľa (e.g. textové pole)." + +#: ../help/help.inc:143 +msgid "" +"Please select your prefered log level. Messages with a lower level will not " +"be logged." +msgstr "" +"Prosím, vyberte požadovanú úroveň záznamov. Správy s nižšou úrovňou nebudú " +"zaznamenávané." + +#: ../lib/modules/asteriskVoicemail.inc:215 +msgid "Please set the voicemail password with \"Set password\" before saving." +msgstr "" +"Prosím, pred uložením nastavte heslo hlasovej schránky pomocou „Nastaviť " +"heslo”." + +#: ../lib/modules.inc:874 +#, php-format +msgid "Please set up all required attributes on page: %s" +msgstr "Prosím, nastavte všetky povinné atribúty v stránke: %s" + +#: ../templates/config/profmanage.php:220 +msgid "Please set up your master configuration file (config/config.cfg) first!" +msgstr "" +"Prosím, najprv nastavte svoj hlavný konfiguračný súbor (config/config.cfg)!" + +#: ../lib/modules/dhcp_settings.inc:521 ../lib/modules/ddns.inc:355 +msgid "" +"Please set your LDAP suffix to an LDAP entry with object class \"dhcpService" +"\" or \"dhcpServer\"." +msgstr "" +"Prosím, nastavte svoju príponu LDAP položky LDAP s triedou objektu " +"„dhcpService” alebo „dhcpServer”." + +#: ../lib/modules/passwordSelfReset.inc:133 +msgid "Please specify how your users need to identify themselves." +msgstr "Prosím, zadajte ako sa majú vaši používatelia identifikovať." + +#: ../lib/modules/windowsGroup.inc:143 +msgid "Please specify the group scope." +msgstr "Prosím, zadajte rozsah skupiny." + +#: ../lib/modules/customFields.inc:125 +msgid "" +"Please specify the possible values for this field. Each value can have a " +"descriptive label that is displayed to the user." +msgstr "" +"Prosím, zadajte možné hodnoty tohoto poľa. Každá hodnota musí mať popisnú " +"menovku, ktorá bude zobrazená používateľom." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:172 +msgid "Please wait" +msgstr "Prosím, počkajte" + +#: ../lib/types/ppolicyType.inc:149 +#, php-format +msgid "Policy count: %s" +msgstr "Počet politík: %s" + +#: ../lib/modules/kolabUser.inc:179 +msgid "Policy list has invalid format!" +msgstr "Zoznam politík má neplatný formát!" + +#: ../lib/modules/asteriskAccount.inc:170 +#: ../lib/modules/asteriskAccount.inc:275 +#: ../lib/modules/asteriskAccount.inc:345 +#: ../lib/modules/asteriskAccount.inc:498 +#: ../lib/modules/asteriskAccount.inc:821 +#: ../lib/modules/asteriskAccount.inc:1205 +msgid "Port" +msgstr "Port" + +#: ../lib/modules/asteriskAccount.inc:171 +msgid "Port number." +msgstr "Číslo portu." + +#: ../templates/pdfedit/pdfpage.php:557 ../templates/pdfedit/pdfpage.php:567 +#: ../templates/pdfedit/pdfpage.php:577 ../templates/pdfedit/pdfpage.php:592 +msgid "Position" +msgstr "Pozícia" + +#: ../templates/masscreate.php:304 ../templates/masscreate.php:379 +#: ../lib/modules/customScripts.inc:113 ../lib/modules/customScripts.inc:115 +#: ../lib/modules/customScripts.inc:117 +#: ../lib/modules/sambaGroupMapping.inc:436 +msgid "Possible values" +msgstr "Možné hodnoty" + +#: ../lib/modules/posixGroup.inc:469 +msgid "" +"Possible wildcards are: \"*\" = any character, \"^\" = line start, \"$\" = " +"line end" +msgstr "" +"Možné žolíky sú: \"*\" = akýkoľvek znak, \"^\" = začiatok riadku, \"$\" = " +"koniec riadku" + +#: ../lib/modules/windowsUser.inc:139 ../lib/modules/windowsUser.inc:264 +#: ../lib/modules/windowsUser.inc:391 ../lib/modules/windowsUser.inc:417 +#: ../lib/modules/windowsUser.inc:528 ../lib/modules/windowsUser.inc:1226 +#: ../lib/modules/windowsUser.inc:1342 ../lib/modules/inetOrgPerson.inc:143 +#: ../lib/modules/inetOrgPerson.inc:164 ../lib/modules/inetOrgPerson.inc:312 +#: ../lib/modules/inetOrgPerson.inc:478 ../lib/modules/inetOrgPerson.inc:617 +#: ../lib/modules/inetOrgPerson.inc:741 ../lib/modules/inetOrgPerson.inc:745 +#: ../lib/modules/inetOrgPerson.inc:1507 ../lib/modules/inetOrgPerson.inc:2362 +#: ../lib/modules/inetOrgPerson.inc:3055 +msgid "Post office box" +msgstr "PO box" + +#: ../lib/modules/inetOrgPerson.inc:80 ../lib/modules/inetOrgPerson.inc:142 +#: ../lib/modules/inetOrgPerson.inc:176 ../lib/modules/inetOrgPerson.inc:320 +#: ../lib/modules/inetOrgPerson.inc:462 ../lib/modules/inetOrgPerson.inc:629 +#: ../lib/modules/inetOrgPerson.inc:757 ../lib/modules/inetOrgPerson.inc:1617 +#: ../lib/modules/inetOrgPerson.inc:2364 ../lib/modules/inetOrgPerson.inc:3022 +msgid "Postal address" +msgstr "Počtová adresa" + +#: ../lib/modules/inetOrgPerson.inc:758 +msgid "Postal address, city" +msgstr "Poštová adresa, mesto" + +#: ../lib/modules/windowsUser.inc:135 ../lib/modules/windowsUser.inc:270 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:418 +#: ../lib/modules/windowsUser.inc:455 ../lib/modules/windowsUser.inc:529 +#: ../lib/modules/windowsUser.inc:1225 ../lib/modules/windowsUser.inc:1343 +#: ../lib/modules/inetOrgPerson.inc:84 ../lib/modules/inetOrgPerson.inc:143 +#: ../lib/modules/inetOrgPerson.inc:167 ../lib/modules/inetOrgPerson.inc:314 +#: ../lib/modules/inetOrgPerson.inc:454 ../lib/modules/inetOrgPerson.inc:620 +#: ../lib/modules/inetOrgPerson.inc:749 ../lib/modules/inetOrgPerson.inc:753 +#: ../lib/modules/inetOrgPerson.inc:1534 ../lib/modules/inetOrgPerson.inc:2363 +#: ../lib/modules/inetOrgPerson.inc:3044 +msgid "Postal code" +msgstr "PSČ" + +#: ../lib/modules/puppetClient.inc:105 +msgid "Predefined classes" +msgstr "Preddefinované triedy" + +#: ../lib/modules/puppetClient.inc:109 ../lib/modules/puppetClient.inc:115 +msgid "Predefined environments" +msgstr "Preddefinované prostredia" + +#: ../lib/modules/authorizedServiceObject.inc:86 +#: ../lib/modules/authorizedServiceObject.inc:92 +msgid "Predefined services" +msgstr "Preddefinované služby" + +#: ../help/help.inc:87 +msgid "Predefined values" +msgstr "Preddefinované hodnoty" + +#: ../lib/modules/imapAccess.inc:88 ../lib/modules/imapAccess.inc:121 +msgid "Prefix for mailboxes" +msgstr "Predpona poštových schránok" + +#: ../lib/modules/inetOrgPerson.inc:408 +msgid "President" +msgstr "Riaditeľ" + +#: ../lib/modules/eduPerson.inc:81 ../lib/modules/eduPerson.inc:161 +#: ../lib/modules/eduPerson.inc:222 ../lib/modules/eduPerson.inc:280 +#: ../lib/modules/eduPerson.inc:766 +msgid "Primary affiliation" +msgstr "Primárny vzťah" + +#: ../lib/modules/posixAccount.inc:275 ../lib/modules/posixAccount.inc:359 +#: ../lib/modules/posixAccount.inc:384 ../lib/modules/posixAccount.inc:429 +#: ../lib/modules/posixAccount.inc:474 ../lib/modules/posixAccount.inc:512 +#: ../lib/modules/posixAccount.inc:1246 ../lib/modules/posixAccount.inc:1516 +#: ../lib/modules/posixAccount.inc:1562 ../lib/modules/posixAccount.inc:1619 +msgid "Primary group" +msgstr "Primárna skupina" + +#: ../lib/modules/eduPerson.inc:123 ../lib/modules/eduPerson.inc:199 +#: ../lib/modules/eduPerson.inc:225 ../lib/modules/eduPerson.inc:240 +#: ../lib/modules/eduPerson.inc:411 ../lib/modules/eduPerson.inc:773 +msgid "Primary organisational unit" +msgstr "Primárna organizačná jednotka" + +#: ../lib/modules/eduPerson.inc:107 ../lib/modules/eduPerson.inc:154 +#: ../lib/modules/eduPerson.inc:223 ../lib/modules/eduPerson.inc:274 +#: ../lib/modules/eduPerson.inc:768 +msgid "Principal name" +msgstr "Meno principalu" + +#: ../lib/modules/eduPerson.inc:236 ../lib/modules/eduPerson.inc:237 +msgid "Principal name is invalid!" +msgstr "Meno principalu nie je platné!" + +#: ../lib/modules/asteriskExtension.inc:99 +#: ../lib/modules/asteriskExtension.inc:818 +msgid "Priority" +msgstr "Priorita" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1537 +#: ../templates/3rdParty/pla/htdocs/import_form.php:44 +#: ../templates/3rdParty/pla/htdocs/export_form.php:135 +msgid "Proceed" +msgstr "Spracovať" + +#: ../templates/config/profmanage.php:112 +msgid "Profile deleted." +msgstr "Profil odstránený." + +#: ../templates/profedit/profilepage.php:182 +#: ../templates/profedit/profilemain.php:94 ../lib/tools/profileEditor.inc:44 +msgid "Profile editor" +msgstr "Editor profilov" + +#: ../templates/config/profmanage.php:159 +#: ../templates/config/profmanage.php:236 ../help/help.inc:124 +#: ../help/help.inc:126 ../help/help.inc:128 ../help/help.inc:130 +#: ../help/help.inc:132 +msgid "Profile management" +msgstr "Správa profilov" + +#: ../templates/config/profmanage.php:240 +#: ../templates/config/profmanage.php:259 +#: ../templates/config/profmanage.php:271 +#: ../templates/config/profmanage.php:280 +#: ../templates/config/profmanage.php:299 +#: ../templates/profedit/profilepage.php:186 +#: ../templates/profedit/profilemain.php:275 +#: ../templates/profedit/profilemain.php:319 ../help/help.inc:166 +msgid "Profile name" +msgstr "Meno profilu" + +#: ../templates/config/profmanage.php:88 +#: ../templates/config/profmanage.php:107 +#: ../templates/config/profmanage.php:137 +#: ../templates/config/profmanage.php:148 +msgid "Profile name is invalid!" +msgstr "Neplatné meno profilu!" + +#: ../templates/config/profmanage.php:243 +#: ../templates/config/profmanage.php:281 +msgid "Profile password" +msgstr "Heslo profilu" + +#: ../templates/config/profmanage.php:86 +#: ../templates/config/profmanage.php:135 +msgid "Profile passwords are different or empty!" +msgstr "Heslá profilu sa nezhodujú alebo sú prázdne!" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:98 +#: ../lib/modules/sambaSamAccount.inc:213 +#: ../lib/modules/sambaSamAccount.inc:225 +#: ../lib/modules/sambaSamAccount.inc:298 +#: ../lib/modules/sambaSamAccount.inc:347 +#: ../lib/modules/sambaSamAccount.inc:489 +#: ../lib/modules/sambaSamAccount.inc:585 +#: ../lib/modules/sambaSamAccount.inc:1193 +#: ../lib/modules/sambaSamAccount.inc:1486 +#: ../lib/modules/sambaSamAccount.inc:1555 +#: ../lib/modules/sambaSamAccount.inc:1733 +#: ../lib/modules/sambaSamAccount.inc:1878 +#: ../lib/modules/sambaSamAccount.inc:1893 ../lib/modules/windowsUser.inc:183 +#: ../lib/modules/windowsUser.inc:362 ../lib/modules/windowsUser.inc:401 +#: ../lib/modules/windowsUser.inc:461 ../lib/modules/windowsUser.inc:573 +#: ../lib/modules/windowsUser.inc:1253 +msgid "Profile path" +msgstr "Cesta profilu" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/windowsUser.inc:461 ../lib/modules/windowsUser.inc:462 +msgid "Profile path is invalid!" +msgstr "Neplatná cesta profilu!" + +#: ../templates/profedit/profilemain.php:149 +msgid "Profile was saved." +msgstr "Profil bol uložený." + +#: ../templates/profedit/profilemain.php:242 +msgid "Profiles" +msgstr "Profily" + +#: ../lib/modules/qmailUser.inc:245 +msgid "Program to execute for all incoming mails." +msgstr "Program na spracovanie všetkých prichádzajúcich správ." + +#: ../lib/modules/zarafaServer.inc:77 ../lib/modules/zarafaServer.inc:121 +#: ../lib/modules/zarafaServer.inc:134 ../lib/modules/zarafaServer.inc:156 +#: ../lib/modules/zarafaServer.inc:205 ../lib/modules/zarafaServer.inc:376 +msgid "Proxy URL" +msgstr "URL proxy" + +#: ../lib/modules/zarafaServer.inc:73 ../lib/modules/zarafaServer.inc:111 +#: ../lib/modules/zarafaServer.inc:131 ../lib/modules/zarafaServer.inc:218 +#: ../lib/modules/zarafaServer.inc:381 +msgid "Public store" +msgstr "Verejné úložisko" + +#: ../lib/modules/puppetClient.inc:63 +msgid "Puppet" +msgstr "Puppet" + +#: ../lib/modules/qmailUser.inc:80 ../lib/modules/qmailGroup.inc:49 +msgid "Qmail" +msgstr "Qmail" + +#: ../lib/modules/asteriskAccount.inc:174 +#: ../lib/modules/asteriskAccount.inc:277 +#: ../lib/modules/asteriskAccount.inc:346 +#: ../lib/modules/asteriskAccount.inc:505 +#: ../lib/modules/asteriskAccount.inc:831 +#: ../lib/modules/asteriskAccount.inc:1206 +msgid "Qualify" +msgstr "Kontrolovať" + +#: ../lib/modules/passwordSelfReset.inc:68 +#: ../lib/modules/passwordSelfReset.inc:142 +#: ../lib/modules/passwordSelfReset.inc:149 +#: ../lib/modules/passwordSelfReset.inc:162 +#: ../lib/modules/passwordSelfReset.inc:246 +#: ../lib/modules/passwordSelfReset.inc:282 +#: ../lib/modules/passwordSelfReset.inc:391 +#: ../lib/modules/passwordSelfReset.inc:535 +#: ../lib/modules/passwordSelfReset.inc:868 +msgid "Question" +msgstr "Otázka" + +#: ../lib/modules/qmailUser.inc:661 ../lib/modules/quota.inc:80 +#: ../lib/modules/quota.inc:93 ../lib/modules/quota.inc:146 +#: ../lib/modules/zarafaUser.inc:513 ../lib/modules/systemQuotas.inc:51 +#: ../lib/modules/systemQuotas.inc:61 ../lib/modules/systemQuotas.inc:68 +#: ../lib/modules/systemQuotas.inc:74 ../lib/modules/systemQuotas.inc:81 +#: ../lib/modules/imapAccess.inc:100 ../lib/modules/imapAccess.inc:145 +msgid "Quota" +msgstr "Kvóta" + +#: ../lib/modules/quota.inc:690 +#, php-format +msgid "Quota for %s on %s" +msgstr "Kvóta pre %s na %s" + +#: ../lib/modules/zarafaUser.inc:93 ../lib/modules/zarafaUser.inc:192 +#: ../lib/modules/zarafaUser.inc:271 ../lib/modules/zarafaUser.inc:393 +#: ../lib/modules/zarafaUser.inc:444 ../lib/modules/zarafaUser.inc:548 +#: ../lib/modules/zarafaUser.inc:1297 ../lib/modules/zarafaUser.inc:1380 +msgid "Quota hard limit" +msgstr "Pevný limit kvóty" + +#: ../lib/modules/quota.inc:63 +msgid "Quota has wrong format!" +msgstr "Kvóta má zlý formát!" + +#: ../lib/modules/imapAccess.inc:299 ../lib/modules/imapAccess.inc:308 +msgid "Quota limit (kB)" +msgstr "Limit kvóty (kB)" + +#: ../lib/modules/zarafaUser.inc:81 ../lib/modules/zarafaUser.inc:186 +#: ../lib/modules/zarafaUser.inc:245 ../lib/modules/zarafaUser.inc:384 +#: ../lib/modules/zarafaUser.inc:520 ../lib/modules/zarafaUser.inc:1308 +#: ../lib/modules/zarafaUser.inc:1371 +msgid "Quota override" +msgstr "Prepísanie kvóty" + +#: ../lib/modules/qmailUser.inc:99 ../lib/modules/qmailUser.inc:126 +#: ../lib/modules/qmailUser.inc:212 ../lib/modules/qmailUser.inc:301 +#: ../lib/modules/qmailUser.inc:402 ../lib/modules/qmailUser.inc:668 +#: ../lib/modules/qmailUser.inc:1191 +msgid "Quota size" +msgstr "Veľkosť kvóty" + +#: ../lib/modules/zarafaUser.inc:89 ../lib/modules/zarafaUser.inc:190 +#: ../lib/modules/zarafaUser.inc:263 ../lib/modules/zarafaUser.inc:390 +#: ../lib/modules/zarafaUser.inc:442 ../lib/modules/zarafaUser.inc:538 +#: ../lib/modules/zarafaUser.inc:1296 ../lib/modules/zarafaUser.inc:1377 +msgid "Quota soft limit" +msgstr "Mäkký limit kvóty" + +#: ../lib/modules/zarafaUser.inc:85 ../lib/modules/zarafaUser.inc:188 +#: ../lib/modules/zarafaUser.inc:255 ../lib/modules/zarafaUser.inc:387 +#: ../lib/modules/zarafaUser.inc:440 ../lib/modules/zarafaUser.inc:528 +#: ../lib/modules/zarafaUser.inc:1295 ../lib/modules/zarafaUser.inc:1374 +msgid "Quota warning limit" +msgstr "Varovanie limitu kvóty" + +#: ../templates/masscreate.php:328 ../templates/profedit/profilepage.php:213 +#: ../lib/modules.inc:1001 ../help/help.inc:164 +msgid "RDN identifier" +msgstr "Identifikátor RDN" + +#: ../lib/types/host.inc:93 +msgid "RID (Windows UID)" +msgstr "RID (Windows UID)" + +#: ../lib/modules/sambaDomain.inc:90 ../lib/modules/sambaDomain.inc:151 +#: ../lib/modules/sambaDomain.inc:182 ../lib/modules/sambaDomain.inc:376 +#: ../lib/modules/sambaDomain.inc:382 ../lib/modules/sambaDomain.inc:639 +msgid "RID base" +msgstr "Základ RID" + +#: ../lib/modules/sambaDomain.inc:345 +msgid "RID settings" +msgstr "Nastavenia RID" + +#: ../lib/modules/asteriskAccount.inc:186 +#: ../lib/modules/asteriskAccount.inc:283 +#: ../lib/modules/asteriskAccount.inc:349 +#: ../lib/modules/asteriskAccount.inc:527 +#: ../lib/modules/asteriskAccount.inc:859 +#: ../lib/modules/asteriskAccount.inc:1209 +msgid "RTP hold timeout" +msgstr "Časový limit pridržania RTP" + +#: ../lib/modules/asteriskAccount.inc:182 +#: ../lib/modules/asteriskAccount.inc:281 +#: ../lib/modules/asteriskAccount.inc:348 +#: ../lib/modules/asteriskAccount.inc:520 +#: ../lib/modules/asteriskAccount.inc:849 +#: ../lib/modules/asteriskAccount.inc:1208 +msgid "RTP timeout" +msgstr "Časový limit RTP" + +#: ../lib/modules/customFields.inc:2160 +msgid "Radio buttons" +msgstr "Prepínače" + +#: ../lib/modules/range.inc:85 ../lib/modules/range.inc:419 +msgid "Range from" +msgstr "Rozsah od" + +#: ../lib/modules/range.inc:88 ../lib/modules/range.inc:432 +msgid "Range to" +msgstr "Rozsah do" + +#: ../lib/types/dhcp.inc:95 ../lib/modules/range.inc:67 +#: ../lib/modules/range.inc:99 ../lib/modules/range.inc:487 +msgid "Ranges" +msgstr "Rozsahy" + +#: ../templates/config/confmain.php:305 +msgid "Read" +msgstr "Čítanie" + +#: ../templates/config/confmain.php:261 ../lib/modules/customFields.inc:88 +msgid "Read-only" +msgstr "Len na čítanie" + +#: ../lib/modules/customFields.inc:89 +msgid "" +"Read-only fields cannot be changed by the user. Use this if you want to show " +"an attribute just for information." +msgstr "" +"Polia len na čítanie nemôžu používatelia meniť. Použite ich, keď chcete " +"atribút zobraziť len na informovanie." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2289 +msgid "Really delete value from this attribute?" +msgstr "Naozaj odstrániť hodnotu tohoto atribútu?" + +#: ../lib/modules/mitKerberos.inc:113 ../lib/modules/mitKerberos.inc:145 +#: ../lib/modules/mitKerberos.inc:187 ../lib/modules/freeRadius.inc:85 +#: ../lib/modules/freeRadius.inc:119 ../lib/modules/freeRadius.inc:139 +#: ../lib/modules/freeRadius.inc:170 ../lib/modules/freeRadius.inc:224 +#: ../lib/modules/freeRadius.inc:270 ../lib/modules/freeRadius.inc:618 +#: ../lib/modules/heimdalKerberos.inc:91 +msgid "Realm" +msgstr "Autentifikačná doména (realm)" + +#: ../lib/modules/nisMailAlias.inc:74 ../lib/modules/nisMailAlias.inc:163 +msgid "Recipient" +msgstr "Príjemca" + +#: ../lib/modules/nisMailAlias.inc:116 ../lib/modules/nisMailAlias.inc:117 +msgid "Recipient is invalid!" +msgstr "Príjemca nie je platný!" + +#: ../lib/types/mailAlias.inc:92 ../lib/modules/nisMailAlias.inc:78 +#: ../lib/modules/nisMailAlias.inc:97 ../lib/modules/nisMailAlias.inc:105 +#: ../lib/modules/nisMailAlias.inc:378 +msgid "Recipient list" +msgstr "Zoznam príjemcov" + +#: ../lib/modules/sambaSamAccount.inc:237 +#: ../lib/modules/sambaSamAccount.inc:377 +#: ../lib/modules/sambaSamAccount.inc:1535 +#: ../lib/modules/sambaSamAccount.inc:1945 +msgid "Reconnect if disconnected" +msgstr "Pri odpojení znova pripojiť" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:63 +msgid "Recursive copy" +msgstr "Rekurzívne kopírovať" + +#: ../templates/3rdParty/pla/htdocs/copy.php:49 +msgid "Recursive copy progress" +msgstr "Priebeh rekurzívneho kopírovania" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:31 +msgid "Recursive delete progress" +msgstr "Priebeh rekurzívneho odstraňovania" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:65 +msgid "Recursively copy all children of this object as well." +msgstr "Rekurzívne kopíruje aj všetkých potomkov tohoto objektu." + +#: ../templates/config/profmanage.php:247 +#: ../templates/config/profmanage.php:285 +#: ../templates/config/mainmanage.php:250 ../templates/config/confmain.php:435 +#: ../lib/modules/selfRegistration.inc:357 +#: ../lib/modules/sambaSamAccount.inc:2293 +#: ../lib/modules/posixAccount.inc:2301 ../lib/modules/windowsUser.inc:1322 +msgid "Reenter password" +msgstr "Zopakujte heslo" + +#: ../templates/serverInfo.php:187 +msgid "Referrals" +msgstr "Odkazovače" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1051 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1054 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:249 +#: ../lib/modules/asteriskExtension.inc:447 ../lib/lists.inc:781 +msgid "Refresh" +msgstr "Obnoviť" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +msgid "Refresh this entry" +msgstr "Obnoví túto položku" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:247 +msgid "Refreshing tree" +msgstr "Obnovovanie stromu" + +#: ../lib/modules/selfRegistration.inc:282 +msgid "Register new account" +msgstr "Registrovať nový účet" + +#: ../lib/modules/inetOrgPerson.inc:82 ../lib/modules/inetOrgPerson.inc:142 +#: ../lib/modules/inetOrgPerson.inc:179 ../lib/modules/inetOrgPerson.inc:322 +#: ../lib/modules/inetOrgPerson.inc:470 ../lib/modules/inetOrgPerson.inc:632 +#: ../lib/modules/inetOrgPerson.inc:761 ../lib/modules/inetOrgPerson.inc:1646 +#: ../lib/modules/inetOrgPerson.inc:2365 ../lib/modules/inetOrgPerson.inc:3033 +msgid "Registered address" +msgstr "Poštová adresa" + +#: ../lib/modules/inetOrgPerson.inc:762 +msgid "Registered address, city" +msgstr "Poštová adresa, mesto" + +#: ../lib/modules/asteriskAccount.inc:206 +#: ../lib/modules/asteriskAccount.inc:293 +#: ../lib/modules/asteriskAccount.inc:354 +#: ../lib/modules/asteriskAccount.inc:563 +#: ../lib/modules/asteriskAccount.inc:905 +#: ../lib/modules/asteriskAccount.inc:1214 +msgid "Registration context" +msgstr "Kontext registrácie" + +#: ../lib/modules/asteriskAccount.inc:210 +#: ../lib/modules/asteriskAccount.inc:295 +#: ../lib/modules/asteriskAccount.inc:355 +#: ../lib/modules/asteriskAccount.inc:570 +#: ../lib/modules/asteriskAccount.inc:914 +#: ../lib/modules/asteriskAccount.inc:1215 +msgid "Registration extension" +msgstr "Rozšírenie registrácie" + +#: ../lib/modules/asteriskAccount.inc:226 +#: ../lib/modules/asteriskAccount.inc:303 +#: ../lib/modules/asteriskAccount.inc:359 +#: ../lib/modules/asteriskAccount.inc:599 +#: ../lib/modules/asteriskAccount.inc:954 +#: ../lib/modules/asteriskAccount.inc:1219 +msgid "Registration server" +msgstr "Server registrácie" + +#: ../lib/modules/kolabUser.inc:53 +msgid "Reject if conflicts" +msgstr "Odmietnuť pri konflikte" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +msgid "Reloading" +msgstr "Opätovné načítanie" + +#: ../templates/login.php:416 +msgid "Remember user name" +msgstr "Zapamätať meno používateľa" + +#: ../templates/config/confmodules.php:300 +#: ../templates/pdfedit/pdfpage.php:479 ../lib/modules/mitKerberos.inc:689 +#: ../lib/modules/qmailUser.inc:912 ../lib/modules/windowsHost.inc:151 +#: ../lib/modules/sambaSamAccount.inc:1454 ../lib/modules/kolabUser.inc:743 +#: ../lib/modules/shadowAccount.inc:467 ../lib/modules/freeRadius.inc:476 +#: ../lib/modules/sudoRole.inc:266 ../lib/modules/sudoRole.inc:293 +#: ../lib/modules/sudoRole.inc:320 ../lib/modules/sudoRole.inc:347 +#: ../lib/modules/sudoRole.inc:374 ../lib/modules/sudoRole.inc:401 +#: ../lib/modules/heimdalKerberos.inc:590 +msgid "Remove" +msgstr "Odstrániť" + +#: ../lib/modules/asteriskVoicemail.inc:282 +msgid "Remove Asterisk voicemail extension" +msgstr "Odstrániť rozšírenie Asterisk voicemail" + +#: ../lib/modules/authorizedServiceObject.inc:190 +msgid "Remove Authorized Service extension" +msgstr "Odstrániť rozšírenie Authorized Service" + +#: ../lib/modules/eduPerson.inc:476 +msgid "Remove EDU person extension" +msgstr "Odstrániť rozšírenie EDU person" + +#: ../lib/modules/freeRadius.inc:340 +msgid "Remove FreeRadius extension" +msgstr "Odstrániť rozšírenie FreeRadius" + +#: ../lib/modules/ipHost.inc:176 +msgid "Remove IP address extension" +msgstr "Odstrániť rozšírenie IP adresa" + +#: ../lib/modules/mitKerberos.inc:473 ../lib/modules/heimdalKerberos.inc:389 +msgid "Remove Kerberos extension" +msgstr "Odstrániť rozšírenie Kerberos" + +#: ../lib/modules/puppetClient.inc:273 +msgid "Remove Puppet extension" +msgstr "Odstrániť rozšírenie Puppet" + +#: ../lib/modules/sambaSamAccount.inc:1281 +msgid "Remove Samba 3 extension" +msgstr "Odstrániť rozšírenie Samba 3" + +#: ../lib/modules/shadowAccount.inc:366 +msgid "Remove Shadow account extension" +msgstr "Odstrániť rozšírenie Shadow account" + +#: ../lib/modules/zarafaContact.inc:247 ../lib/modules/zarafaGroup.inc:303 +#: ../lib/modules/zarafaUser.inc:687 ../lib/modules/zarafaServer.inc:225 +msgid "Remove Zarafa extension" +msgstr "Odstrániť rozšírenie Zarafa" + +#: ../lib/modules/customFields.inc:395 +msgid "Remove extension" +msgstr "Odstrániť rozšírenie" + +#: ../lib/types/user.inc:385 +msgid "Remove from all Unix groups" +msgstr "Odstráni zo všetkých skupín Unix" + +#: ../lib/types/user.inc:389 +msgid "Remove from all group of (unique) names" +msgstr "Odstrániť zo všetkých skupín (jedinečné) mená" + +#: ../lib/modules/hostObject.inc:157 +msgid "Remove host extension" +msgstr "Odstrániť rozšírenie host" + +#: ../lib/modules/posixGroup.inc:214 ../lib/modules/posixAccount.inc:1303 +#: ../lib/modules/inetOrgPerson.inc:2089 +msgid "Remove password" +msgstr "Odstrániť heslo" + +#: ../lib/modules/passwordSelfReset.inc:300 +msgid "Remove password self reset extension" +msgstr "Odstrániť rozšírenie obnovenia hesla" + +#: ../lib/modules/qmailUser.inc:699 ../lib/modules/qmailGroup.inc:620 +msgid "Remove qmail extension" +msgstr "Odstrániť rozšírenie QMail" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:147 +#: ../lib/modules/zarafaContact.inc:407 ../lib/modules/zarafaGroup.inc:476 +#: ../lib/modules/device.inc:287 ../lib/modules/zarafaUser.inc:934 +#: ../lib/modules/inetOrgPerson.inc:2213 ../lib/modules/qmailGroup.inc:843 +#: ../lib/modules/windowsGroup.inc:444 ../lib/modules/groupOfNames.inc:310 +#: ../lib/modules/groupOfNames.inc:424 +msgid "Remove selected entries" +msgstr "Odstrániť zvolené položky" + +#: ../templates/config/conftypes.php:248 +msgid "Remove this account type" +msgstr "Odstrániť tento typ účtov" + +#: ../lib/modules/inetOrgPerson.inc:3135 +msgid "Remove/replace photo" +msgstr "Odstrániť/nahradiť fotografiu" + +#: ../templates/config/profmanage.php:263 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1152 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1155 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:24 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:35 +#: ../templates/3rdParty/pla/htdocs/rename.php:53 +msgid "Rename" +msgstr "Premenovať" + +#: ../templates/3rdParty/pla/htdocs/rename_form.php:28 +#, php-format +msgid "Rename %s to a new object." +msgstr "Premenovať %s na nový objekt." + +#: ../templates/config/profmanage.php:258 +#: ../templates/config/profmanage.php:264 ../help/help.inc:126 +msgid "Rename profile" +msgstr "Premenovať profil" + +#: ../templates/3rdParty/pla/htdocs/rename.php:48 +msgid "Rename successful!" +msgstr "Premenovanie úspešné!" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +msgid "Rename this entry" +msgstr "Premenovať túto položku" + +#: ../templates/config/profmanage.php:98 +msgid "Renamed profile." +msgstr "Premenovaný profil." + +#: ../templates/3rdParty/pla/htdocs/import.php:30 +#: ../templates/3rdParty/pla/htdocs/import.php:31 +msgid "Renaming" +msgstr "Premenovávanie" + +#: ../lib/modules/mitKerberos.inc:125 ../lib/modules/mitKerberos.inc:189 +#: ../lib/modules/mitKerberos.inc:229 ../lib/modules/mitKerberos.inc:246 +#: ../lib/modules/mitKerberos.inc:367 ../lib/modules/mitKerberos.inc:772 +#: ../lib/modules/heimdalKerberos.inc:107 +#: ../lib/modules/heimdalKerberos.inc:153 +#: ../lib/modules/heimdalKerberos.inc:193 +#: ../lib/modules/heimdalKerberos.inc:210 +#: ../lib/modules/heimdalKerberos.inc:305 +#: ../lib/modules/heimdalKerberos.inc:683 +msgid "Renewable lifetime" +msgstr "Doba platnosti obnovenia" + +#: ../lib/modules/mitKerberos.inc:286 ../lib/modules/mitKerberos.inc:287 +#: ../lib/modules/heimdalKerberos.inc:245 +#: ../lib/modules/heimdalKerberos.inc:246 +msgid "Renewable lifetime must be a number." +msgstr "Doba platnosti obnovenia musí byť číslo." + +#: ../templates/lists/changePassword.php:331 +#: ../lib/modules/passwordSelfReset.inc:891 ../lib/modules.inc:1045 +msgid "Repeat password" +msgstr "Zopakujte heslo" + +#: ../lib/modules/posixAccount.inc:83 ../lib/modules/posixAccount.inc:1015 +msgid "Replaced $user or $group in homedir." +msgstr "Nahradené $user alebo $group v domovskom adresári." + +#: ../templates/config/confmain.php:334 ../help/help.inc:229 +msgid "Reply-to address" +msgstr "Adresa Reply-to" + +#: ../templates/config/confmain.php:498 +msgid "Reply-to address for password mails is invalid." +msgstr "Adresa Reply-to pre emaily s heslom nie je platná." + +#: ../lib/types/ppolicyType.inc:89 ../lib/modules/ppolicy.inc:121 +#: ../lib/modules/ppolicy.inc:147 ../lib/modules/ppolicy.inc:281 +#: ../lib/modules/ppolicy.inc:493 +msgid "Require password change on first login" +msgstr "Vyžiadať zmenu hesla pri prvom prihlásení" + +#: ../lib/modules/windowsUser.inc:180 ../lib/modules/windowsUser.inc:346 +#: ../lib/modules/windowsUser.inc:400 ../lib/modules/windowsUser.inc:569 +#: ../lib/modules/windowsUser.inc:1247 +msgid "Require smartcard" +msgstr "Vyžaduje kartu smart" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 +msgid "Required attribute for object classes" +msgstr "Povinný atribút pre triedy objektov" + +#: ../templates/schema/schema.php:383 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1567 +msgid "Required attributes" +msgstr "Vyžadované atribúty" + +#: ../lib/modules/mitKerberos.inc:173 ../lib/modules/mitKerberos.inc:463 +msgid "Requires hardware authentication" +msgstr "Vyžaduje hardvérovú autentifikáciu" + +#: ../lib/modules/mitKerberos.inc:170 ../lib/modules/mitKerberos.inc:458 +#: ../lib/modules/heimdalKerberos.inc:144 +#: ../lib/modules/heimdalKerberos.inc:380 +msgid "Requires preauthentication" +msgstr "Vyžaduje predautentifikáciu" + +#: ../lib/modules/sambaSamAccount.inc:1275 +msgid "Reset" +msgstr "Obnoviť" + +#: ../lib/modules.inc:1190 +msgid "Reset changes" +msgstr "Obnoviť zmeny" + +#: ../lib/modules/sambaSamAccount.inc:254 +#: ../lib/modules/sambaSamAccount.inc:1274 +msgid "Reset password" +msgstr "Obnoviť heslo" + +#: ../lib/modules/sambaDomain.inc:130 ../lib/modules/sambaDomain.inc:192 +#: ../lib/modules/sambaDomain.inc:217 ../lib/modules/sambaDomain.inc:341 +#: ../lib/modules/sambaDomain.inc:646 +msgid "Reset time after lockout" +msgstr "Čas obnovenia po zablokovaní" + +#: ../lib/modules/sambaDomain.inc:217 +msgid "Reset time after lockout must be are natural number." +msgstr "Čas obnovenia po zablokovaní musí byť prirodzené číslo." + +#: ../lib/modules/zarafaUser.inc:555 +msgid "Resource settings" +msgstr "nastavenie zdrojov" + +#: ../lib/modules/asteriskAccount.inc:178 +#: ../lib/modules/asteriskAccount.inc:279 +#: ../lib/modules/asteriskAccount.inc:347 +#: ../lib/modules/asteriskAccount.inc:512 +#: ../lib/modules/asteriskAccount.inc:840 +#: ../lib/modules/asteriskAccount.inc:1207 +msgid "Restrict caller ID" +msgstr "Obmedziť ID volajúceho" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:113 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:118 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:550 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:587 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:198 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:84 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:122 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +msgid "Retrieving DN" +msgstr "Získavanie DN" + +#: ../lib/modules/ddns.inc:99 ../lib/modules/ddns.inc:107 +#: ../lib/modules/ddns.inc:128 ../lib/modules/ddns.inc:390 +#: ../lib/modules/ddns.inc:419 +msgid "Reverse zone name" +msgstr "Meno reverznej zóny" + +#: ../templates/config/confmain.php:301 ../help/help.inc:112 +msgid "Rights for the home directory" +msgstr "Práva domovského adresára" + +#: ../lib/types/sudo.inc:77 ../lib/modules/sudoRole.inc:55 +#: ../lib/modules/sudoRole.inc:121 ../lib/modules/sudoRole.inc:171 +#: ../lib/modules/sudoRole.inc:247 ../lib/modules/sudoRole.inc:682 +msgid "Role name" +msgstr "Meno role" + +#: ../lib/modules/zarafaUser.inc:560 ../lib/modules/zarafaUser.inc:1312 +msgid "Room" +msgstr "Miestnosť" + +#: ../lib/modules/inetOrgPerson.inc:144 ../lib/modules/inetOrgPerson.inc:185 +#: ../lib/modules/inetOrgPerson.inc:326 ../lib/modules/inetOrgPerson.inc:544 +#: ../lib/modules/inetOrgPerson.inc:638 ../lib/modules/inetOrgPerson.inc:828 +#: ../lib/modules/inetOrgPerson.inc:1695 ../lib/modules/inetOrgPerson.inc:2372 +#: ../lib/modules/inetOrgPerson.inc:3066 +msgid "Room number" +msgstr "Číslo miestnosti" + +#: ../lib/modules/inetLocalMailRecipient.inc:61 +#: ../lib/modules/inetLocalMailRecipient.inc:93 +#: ../lib/modules/inetLocalMailRecipient.inc:112 +#: ../lib/modules/inetLocalMailRecipient.inc:141 +#: ../lib/modules/inetLocalMailRecipient.inc:299 +msgid "Routing address" +msgstr "Smerovacia adresa" + +#: ../lib/modules/customFields.inc:116 ../lib/modules/customFields.inc:1855 +msgid "Rows" +msgstr "Riadky" + +#: ../lib/modules/asteriskExtension.inc:132 +#: ../lib/modules/asteriskExtension.inc:304 +msgid "Rules" +msgstr "Pravidlá" + +#: ../lib/modules/customScripts.inc:153 +msgid "Run" +msgstr "Spustiť" + +#: ../lib/types/sudo.inc:82 +msgid "Run group" +msgstr "Skupina na spustenie" + +#: ../lib/modules/sudoRole.inc:79 ../lib/modules/sudoRole.inc:107 +#: ../lib/modules/sudoRole.inc:158 ../lib/modules/sudoRole.inc:177 +#: ../lib/modules/sudoRole.inc:186 ../lib/modules/sudoRole.inc:372 +#: ../lib/modules/sudoRole.inc:688 +msgid "Run groups" +msgstr "Skupiny na spustenie" + +#: ../lib/types/sudo.inc:81 +msgid "Run user" +msgstr "Používateľ na spustenie" + +#: ../lib/modules/sudoRole.inc:75 ../lib/modules/sudoRole.inc:102 +#: ../lib/modules/sudoRole.inc:152 ../lib/modules/sudoRole.inc:176 +#: ../lib/modules/sudoRole.inc:185 ../lib/modules/sudoRole.inc:345 +#: ../lib/modules/sudoRole.inc:687 +msgid "Run users" +msgstr "Používatelia na spustenie" + +#: ../lib/modules/windowsUser.inc:248 +msgid "S.M." +msgstr "S.M." + +#: ../templates/serverInfo.php:129 +msgid "SASL mechanisms" +msgstr "Mechanizmus SASL" + +#: ../lib/modules/asteriskAccount.inc:143 +msgid "SIP URI for a realtime peer." +msgstr "SIP URI partnera v reálnom čase." + +#: ../lib/modules/asteriskAccount.inc:119 +msgid "SIP user agent identification." +msgstr "Identifikácia používateľského agenta SIP." + +#: ../templates/tests/lamdaemonTest.php:243 +msgid "SSH connection" +msgstr "Spojenie SSH" + +#: ../templates/tests/lamdaemonTest.php:256 +msgid "SSH connection could be established." +msgstr "Nemožno vytvoriť spojenie SSH." + +#: ../lib/modules/ldapPublicKey.inc:52 ../lib/modules/ldapPublicKey.inc:62 +#: ../lib/modules/ldapPublicKey.inc:66 ../lib/modules/ldapPublicKey.inc:74 +#: ../lib/modules/ldapPublicKey.inc:103 +msgid "SSH public key" +msgstr "Verejný kľúč SSH" + +#: ../lib/modules/ldapPublicKey.inc:81 ../lib/modules/ldapPublicKey.inc:85 +#: ../lib/modules/ldapPublicKey.inc:181 ../lib/modules/ldapPublicKey.inc:221 +msgid "SSH public keys" +msgstr "Verejné kľúče SSH" + +#: ../lib/modules/zarafaServer.inc:65 ../lib/modules/zarafaServer.inc:99 +#: ../lib/modules/zarafaServer.inc:129 ../lib/modules/zarafaServer.inc:168 +#: ../lib/modules/zarafaServer.inc:196 ../lib/modules/zarafaServer.inc:374 +msgid "SSL port" +msgstr "Port SSL" + +#: ../templates/lists/changePassword.php:365 +#: ../templates/lists/changePassword.php:396 +msgid "Samba" +msgstr "Samba" + +#: ../lib/types/user.inc:276 ../lib/types/user.inc:373 +#: ../lib/types/user.inc:405 ../lib/types/user.inc:829 +#: ../lib/modules/sambaSamAccount.inc:139 +#: ../lib/modules/sambaGroupMapping.inc:308 +msgid "Samba 3" +msgstr "Samba 3" + +#: ../lib/modules/sambaDomain.inc:203 ../lib/modules/sambaDomain.inc:204 +msgid "Samba 3 domain SID is invalid!" +msgstr "Neplatný SID domény Samba 3!" + +#: ../lib/types/smbDomain.inc:62 +msgid "Samba 3 domain entries" +msgstr "Položky doména Samba 3" + +#: ../lib/modules/posixGroup.inc:346 ../lib/modules/posixAccount.inc:182 +#: ../lib/modules/posixAccount.inc:200 +msgid "Samba ID pool" +msgstr "Samba ID pool" + +#: ../lib/modules/posixGroup.inc:357 ../lib/modules/posixGroup.inc:463 +#: ../lib/modules/posixGroup.inc:544 ../lib/modules/posixAccount.inc:113 +#: ../lib/modules/posixAccount.inc:187 ../lib/modules/posixAccount.inc:205 +#: ../lib/modules/posixAccount.inc:461 +msgid "Samba ID pool DN" +msgstr "DN Samba ID pool" + +#: ../lib/modules/sambaSamAccount.inc:319 +#: ../lib/modules/sambaSamAccount.inc:323 +#: ../lib/modules/sambaSamAccount.inc:464 +#: ../lib/modules/sambaSamAccount.inc:530 +msgid "Samba RID" +msgstr "RID Samby" + +#: ../lib/modules/sambaGroupMapping.inc:335 +#: ../lib/modules/sambaGroupMapping.inc:360 +msgid "Samba RID number" +msgstr "Číslo RID Samby" + +#: ../lib/modules/sambaGroupMapping.inc:329 +msgid "Samba display name" +msgstr "Zobrazené meno Samby" + +#: ../lib/modules/sambaDomain.inc:51 +msgid "Samba domain" +msgstr "Doména Samby" + +#: ../lib/modules/sambaGroupMapping.inc:145 +msgid "Samba domain name" +msgstr "Meno domény Samby" + +#: ../lib/types/smbDomain.inc:53 +msgid "Samba domains" +msgstr "Domény Samba" + +#: ../lib/modules/sambaGroupMapping.inc:320 +#: ../lib/modules/sambaGroupMapping.inc:341 +#: ../lib/modules/sambaGroupMapping.inc:368 +#: ../lib/modules/sambaGroupMapping.inc:387 +msgid "Samba group type" +msgstr "Typ skupiny Samby" + +#: ../lib/modules/sambaSamAccount.inc:251 +msgid "Samba password" +msgstr "Heslo Samby" + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:219 +#: ../lib/modules/sambaSamAccount.inc:304 +#: ../lib/modules/sambaSamAccount.inc:307 +#: ../lib/modules/sambaSamAccount.inc:505 +#: ../lib/modules/sambaSamAccount.inc:589 +#: ../lib/modules/sambaSamAccount.inc:1215 +#: ../lib/modules/sambaSamAccount.inc:1741 +#: ../lib/modules/sambaSamAccount.inc:1879 +msgid "Samba workstations" +msgstr "Stanice Samba" + +#: ../lib/modules/sambaSamAccount.inc:1351 +msgid "Saturday" +msgstr "Sobota" + +#: ../templates/config/confmodules.php:224 +#: ../templates/config/confmain.php:449 +#: ../templates/config/moduleSettings.php:235 +#: ../templates/config/conftypes.php:318 ../templates/pdfedit/pdfpage.php:601 +#: ../templates/profedit/profilepage.php:238 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1243 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1247 +#: ../lib/modules/inetOrgPerson.inc:3235 ../lib/modules.inc:1184 +msgid "Save" +msgstr "Uložiť" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +msgid "Save a dump of this object" +msgstr "Uloží výpis tohoto objektu" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1244 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Save a dump of this object and all of its children" +msgstr "Uloží výpis tohoto objektu a všetkých jeho potomkov" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:90 +msgid "Save as file" +msgstr "Uložiť ako súbor" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:172 +msgid "Save changes" +msgstr "Uložiť zmeny" + +#: ../lib/tools/schemaBrowser.inc:44 +msgid "Schema browser" +msgstr "Prehliadač schémy" + +#: ../templates/serverInfo.php:119 +msgid "Schema suffix" +msgstr "Prípona schémy" + +#: ../templates/tests/schemaTest.php:55 ../templates/tests/index.php:58 +#: ../lib/tools/tests.inc:116 +msgid "Schema test" +msgstr "Test schémy" + +#: ../lib/modules/eduPerson.inc:85 ../lib/modules/eduPerson.inc:89 +#: ../lib/modules/eduPerson.inc:168 ../lib/modules/eduPerson.inc:226 +#: ../lib/modules/eduPerson.inc:282 ../lib/modules/eduPerson.inc:767 +msgid "Scoped affiliations" +msgstr "" + +#: ../help/help.inc:97 +msgid "Script path" +msgstr "Cesta skriptu" + +#: ../templates/config/confmain.php:539 +msgid "Script path is invalid!" +msgstr "Cesta skriptu nie je platná!" + +#: ../templates/config/confmain.php:558 +msgid "Script rights are invalid!" +msgstr "Práva skriptu nie sú platné!" + +#: ../templates/config/confmain.php:542 +msgid "Script server is invalid!" +msgstr "Server skriptu " + +#: ../help/help.inc:108 +msgid "Script servers" +msgstr "Servery skriptu" + +#: ../templates/serverInfo.php:300 ../templates/serverInfo.php:380 +#: ../templates/3rdParty/pla/lib/QueryRender.php:75 +#: ../templates/3rdParty/pla/lib/QueryRender.php:180 +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:619 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:235 +msgid "Search" +msgstr "Hľadať" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +#: ../templates/3rdParty/pla/lib/QueryRender.php:190 +msgid "Search Results" +msgstr "Výsledky hľadania" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +#: ../templates/3rdParty/pla/lib/export_functions.php:201 +#: ../templates/3rdParty/pla/htdocs/export_form.php:81 +msgid "Search filter" +msgstr "Filter hľadania" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:293 +msgid "Search returned no results" +msgstr "hľadanie vrátilo prázdny výsledok" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +#: ../templates/3rdParty/pla/lib/export_functions.php:200 +#: ../templates/3rdParty/pla/htdocs/export_form.php:67 +msgid "Search scope" +msgstr "Rozsah hľadania" + +#: ../lib/modules/asteriskExtension.inc:450 +msgid "Search tree suffix for users" +msgstr "Prípona stromu hľadania používateľov" + +#: ../templates/pdfedit/pdfpage.php:573 +msgid "Section" +msgstr "Sekcia" + +#: ../lib/modules/windowsGroup.inc:60 +msgid "Security" +msgstr "Bezpečnosť" + +#: ../templates/3rdParty/pla/lib/Template.php:397 +#: ../templates/3rdParty/pla/lib/Template.php:422 +#: ../templates/3rdParty/pla/lib/Template.php:427 +#: ../templates/3rdParty/pla/lib/Template.php:484 +#: ../templates/3rdParty/pla/lib/Template.php:509 +#: ../templates/3rdParty/pla/lib/Template.php:514 +msgid "Security error: The file being uploaded may be malicious." +msgstr "Bezpečnostná chyba: Nahrávaný súbor môže byť škodlivý." + +#: ../lib/modules/zarafaGroup.inc:75 ../lib/modules/zarafaGroup.inc:172 +#: ../lib/modules/zarafaGroup.inc:197 ../lib/modules/zarafaGroup.inc:281 +#: ../lib/modules/zarafaGroup.inc:661 +msgid "Security group" +msgstr "Bezpečnostná skupina" + +#: ../lib/modules/windowsGroup.inc:139 +msgid "" +"Security groups are used for permission management and distribution groups " +"as email lists." +msgstr "" +"Bezpečnostné skupiny sú použité na povolenie skupín správy a distribúcie ako " +"emailové konferencie." + +#: ../lib/modules/passwordSelfReset.inc:72 +#: ../lib/modules/passwordSelfReset.inc:167 +#: ../lib/modules/passwordSelfReset.inc:204 +msgid "Security questions" +msgstr "Bezpečnostné otázky" + +#: ../templates/config/mainmanage.php:203 ../templates/config/confmain.php:439 +msgid "Security settings" +msgstr "Nastavenia bezpečnosti" + +#: ../templates/help.php:94 +msgid "See also" +msgstr "Ďalšie informácie" + +#: ../lib/account.inc:699 +msgid "See the manual for instructions to solve this problem." +msgstr "Inštrukcie na vyriešenie tohoto problému hľadajte v manuáli." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:494 +msgid "Select a template for the creation process" +msgstr "Vyberte šablónu na vytvorenie" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:498 +msgid "Select a template to edit the entry" +msgstr "Vyberte šablónu na úpravu položku" + +#: ../lib/lists.inc:468 +msgid "Select all" +msgstr "Vybrať všetky" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:31 +msgid "Select an LDIF file" +msgstr "Vyberte súbor LDIF" + +#: ../lib/modules/nisnetgroup.inc:233 ../lib/modules/nisnetgroup.inc:262 +msgid "Select host" +msgstr "Vyberte stroj" + +#: ../lib/modules/customFields.inc:2349 +msgid "Select list" +msgstr "Zoznam" + +#: ../lib/modules/nisMailAlias.inc:170 ../lib/modules/nisMailAlias.inc:185 +msgid "Select mail" +msgstr "Vybrať email" + +#: ../lib/modules/nisnetgroup.inc:239 ../lib/modules/nisnetgroup.inc:268 +msgid "Select user" +msgstr "Vyberte používateľa" + +#: ../lib/modules/posixAccount.inc:1348 ../lib/modules/posixAccount.inc:1381 +#: ../lib/modules/windowsUser.inc:726 ../lib/modules/nisnetgroup.inc:377 +#: ../lib/modules/groupOfNamesUser.inc:111 +msgid "Selected groups" +msgstr "Zvolené skupiny" + +#: ../templates/masscreate.php:158 ../templates/config/confmodules.php:289 +msgid "Selected modules" +msgstr "Zvolené moduly" + +#: ../lib/modules/posixGroup.inc:261 ../lib/modules/asteriskExtension.inc:454 +msgid "Selected users" +msgstr "Zvolení používatelia" + +#: ../lib/modules/passwordSelfReset.inc:118 +#: ../lib/modules/passwordSelfReset.inc:222 +msgid "Send confirmation mail" +msgstr "Poslať potvrdzujúci email" + +#: ../lib/modules/passwordSelfReset.inc:100 +#: ../lib/modules/passwordSelfReset.inc:206 +msgid "Send notification mail" +msgstr "Poslať oznamovací email" + +#: ../lib/modules/inetOrgPerson.inc:525 ../lib/modules/inetOrgPerson.inc:797 +msgid "Send password via mail" +msgstr "Poslať heslo emailom" + +#: ../templates/lists/changePassword.php:305 +#: ../templates/lists/changePassword.php:335 ../lib/modules.inc:1062 +#: ../help/help.inc:186 +msgid "Send via mail" +msgstr "Poslať emailom" + +#: ../lib/modules/qmailGroup.inc:83 ../lib/modules/qmailGroup.inc:213 +#: ../lib/modules/qmailGroup.inc:217 ../lib/modules/qmailGroup.inc:346 +#: ../lib/modules/qmailGroup.inc:401 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:512 ../lib/modules/qmailGroup.inc:1065 +msgid "Sender email addresses" +msgstr "Emailové adresy odosielateľa." + +#: ../lib/modules/qmailGroup.inc:81 ../lib/modules/qmailGroup.inc:165 +#: ../lib/modules/qmailGroup.inc:169 ../lib/modules/qmailGroup.inc:288 +#: ../lib/modules/qmailGroup.inc:380 ../lib/modules/qmailGroup.inc:514 +#: ../lib/modules/qmailGroup.inc:783 ../lib/modules/qmailGroup.inc:1064 +msgid "Sender entries" +msgstr "Položky odosielateľa" + +#: ../lib/modules/qmailGroup.inc:85 ../lib/modules/qmailGroup.inc:181 +#: ../lib/modules/qmailGroup.inc:185 ../lib/modules/qmailGroup.inc:304 +#: ../lib/modules/qmailGroup.inc:386 ../lib/modules/qmailGroup.inc:513 +#: ../lib/modules/qmailGroup.inc:1066 +msgid "Sender filter" +msgstr "Filter odosielateľa" + +#: ../lib/modules/passwordSelfReset.inc:101 +msgid "Sends a mail to the user to inform him about the password change." +msgstr "Posiela používateľovi email, aby bol informovaný o zmene hesla." + +#: ../lib/modules/passwordSelfReset.inc:119 +msgid "" +"Sends a mail to the user to validate his email address before the password " +"change." +msgstr "" +"Posiela používateľovi email, na overenie jeho emailovej adresy pred zmenou " +"hesla." + +#: ../lib/modules/inetOrgPerson.inc:798 ../help/help.inc:187 +msgid "" +"Sends the password to the user via mail. Please edit your LAM server profile " +"to setup the mail settings." +msgstr "" +"Posiela používateľovi heslo emailom. Prosím, upravte svoj profil servera LAM " +"a zadajte nastavenia emailu." + +#: ../lib/modules/device.inc:58 ../lib/modules/device.inc:90 +#: ../lib/modules/device.inc:120 ../lib/modules/device.inc:176 +#: ../lib/modules/device.inc:438 +msgid "Serial number" +msgstr "Sériové číslo" + +#: ../templates/tests/lamdaemonTest.php:72 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:166 +#: ../templates/3rdParty/pla/htdocs/import.php:47 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:110 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +#: ../templates/3rdParty/pla/htdocs/export_form.php:56 +msgid "Server" +msgstr "Server" + +#: ../templates/config/confmain.php:238 ../lib/modules/qmailUser.inc:111 +#: ../lib/modules/qmailUser.inc:156 ../lib/modules/qmailUser.inc:236 +#: ../lib/modules/qmailUser.inc:351 ../lib/modules/qmailUser.inc:420 +#: ../lib/modules/qmailUser.inc:585 ../lib/modules/qmailUser.inc:1195 +#: ../lib/modules/imapAccess.inc:70 ../lib/modules/imapAccess.inc:108 +#: ../help/help.inc:58 +msgid "Server address" +msgstr "Adresa servera" + +#: ../templates/config/confmain.php:482 +msgid "Server address is invalid!" +msgstr "Adresa servera nie je platná!" + +#: ../templates/serverInfo.php:103 ../lib/tools/serverInfo.inc:44 +msgid "Server information" +msgstr "Informácie o servere" + +#: ../templates/config/confmain.php:298 +msgid "Server list" +msgstr "Zoznam serverov" + +#: ../templates/login.php:457 ../templates/config/confmodules.php:137 +#: ../templates/config/confmain.php:167 +#: ../templates/config/moduleSettings.php:136 +#: ../templates/config/conftypes.php:155 +msgid "Server profile" +msgstr "Profil servera" + +#: ../templates/config/confmain.php:267 +msgid "Server settings" +msgstr "Nastavenia servera" + +#: ../templates/serverInfo.php:180 +msgid "Server statistics" +msgstr "Štatistiky servera" + +#: ../templates/serverInfo.php:205 ../templates/serverInfo.php:211 +msgid "Server time" +msgstr "Čas servera" + +#: ../lib/modules/zarafaServer.inc:138 +msgid "Servers" +msgstr "Servery" + +#: ../lib/modules/authorizedServiceObject.inc:75 +msgid "Service name (e.g. sshd, imap, ftp). Enter one service per entry." +msgstr "Meno služby (napr. sshd, imap, ftp). Zadajte jednu službu na položku." + +#: ../templates/config/mainmanage.php:201 ../help/help.inc:140 +msgid "Session timeout" +msgstr "Časový limit relácie" + +#: ../lib/modules/aliasEntry.inc:101 +msgid "Set" +msgstr "Nastaviť" + +#: ../lib/modules/sambaSamAccount.inc:1442 +#: ../lib/modules/sambaSamAccount.inc:1445 +#: ../lib/modules/sambaSamAccount.inc:1448 +#: ../lib/modules/shadowAccount.inc:455 ../lib/modules/shadowAccount.inc:458 +#: ../lib/modules/shadowAccount.inc:461 +msgid "Set also for Kerberos" +msgstr "Nastaviť aj pre Kerberos" + +#: ../lib/modules/mitKerberos.inc:683 ../lib/modules/shadowAccount.inc:452 +#: ../lib/modules/heimdalKerberos.inc:584 +msgid "Set also for Samba 3" +msgstr "Nastaviť aj pre Samba 3" + +#: ../lib/modules/mitKerberos.inc:680 ../lib/modules/sambaSamAccount.inc:1439 +#: ../lib/modules/heimdalKerberos.inc:581 +msgid "Set also for Shadow" +msgstr "Nastaviť aj pre Tieňové heslá" + +#: ../lib/modules.inc:1197 ../lib/modules.inc:1199 +msgid "Set password" +msgstr "Nastaviť heslo" + +#: ../lib/modules/posixAccount.inc:241 ../lib/modules/posixAccount.inc:409 +msgid "Set primary group as memberUid" +msgstr "Nastaviť primárnu skupinu ako memberUid" + +#: ../templates/config/profmanage.php:279 +#: ../templates/config/profmanage.php:289 +#: ../templates/config/profmanage.php:290 ../help/help.inc:130 +msgid "Set profile password" +msgstr "Nastaviť heslo profilu" + +#: ../lib/modules.inc:1200 +msgid "Set random password" +msgstr "Nastaviť náhodné heslo" + +#: ../templates/lists/changePassword.php:319 +msgid "Set specific password" +msgstr "Nastaviť heslo" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +msgid "Set the search results to 0 to retrieve all available records." +msgstr "" +"Nastavte výsledky hľadania na 0 aby ste získali všetky dostupné záznamy." + +#: ../lib/modules/groupOfNames.inc:85 +msgid "" +"Set this only if your LDAP schema allows that groups may not have any " +"members (e.g. if you use OpenDJ)." +msgstr "" +"Toto nastavte, len ak vaša schéma LDAP dovoľuje skupiny bez členov (napr. ak " +"používate OpenDJ)." + +#: ../lib/modules/qmailUser.inc:209 +msgid "Sets the delivery mode (e.g. disable mail forwarding)." +msgstr "Nastavuje režim doručenia (napr. vypnúť preposielanie správ)." + +#: ../lib/modules/posixGroup.inc:436 +msgid "Sets the group password." +msgstr "Nastaviť heslo skupiny." + +#: ../lib/modules/shadowAccount.inc:84 +msgid "Shadow" +msgstr "Tieňové heslá" + +#: ../lib/modules/sambaSamAccount.inc:235 +#: ../lib/modules/sambaSamAccount.inc:371 +#: ../lib/modules/sambaSamAccount.inc:1519 +#: ../lib/modules/sambaSamAccount.inc:1929 +msgid "Shadowing" +msgstr "Tieňovanie" + +#: ../lib/modules/zarafaUser.inc:105 ../lib/modules/zarafaUser.inc:196 +#: ../lib/modules/zarafaUser.inc:306 ../lib/modules/zarafaUser.inc:399 +#: ../lib/modules/zarafaUser.inc:617 ../lib/modules/zarafaUser.inc:1334 +msgid "Shared store only" +msgstr "Len zdieľané úložisko" + +#: ../lib/modules/ddns.inc:75 +msgid "Should DDNS (Dynamic DNS) be activated?" +msgstr "Má byť aktivované DDNS (Dynamické DNS)?" + +#: ../lib/modules/ddns.inc:79 +msgid "Should fix IP addresses be added to the DNS server?" +msgstr "Majú byť pevné adresy IP pridané do servera DNS?" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1121 +msgid "Show" +msgstr "Zobraziť" + +#: ../templates/massBuildAccounts.php:243 +msgid "Show LDIF file" +msgstr "Zobraziť súbor LDIF" + +#: ../lib/types/user.inc:683 +msgid "Show account status" +msgstr "Zobraziť stav účtu" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +#: ../templates/3rdParty/pla/htdocs/export_form.php:84 +msgid "Show attributes" +msgstr "Zobraziť atribúty" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1122 +msgid "Show internal attributes" +msgstr "Zobraziť interné atribúty" + +#: ../lib/modules/asteriskExtension.inc:446 +msgid "Show only Asterisk accounts" +msgstr "Zobraziť len účty Asterisk" + +#: ../lib/types/group.inc:343 +msgid "Show primary group members as normal group members" +msgstr "Zobraziť primárny členov skupiny ako bežných členov skupiny" + +#: ../templates/schema/schema.php:194 +msgid "Single valued" +msgstr "Jedna hodnota" + +#: ../lib/modules/qmailUser.inc:221 +msgid "Size limit in bytes for a single mail. Larger mails will be bounced." +msgstr "" +"Limit veľkosti jednej správy v bajtoch. Väčšie správy budú odmietnuté " +"(bounced)." + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Skip" +msgstr "Preskočiť" + +#: ../lib/modules/quota.inc:626 ../lib/modules/systemQuotas.inc:376 +msgid "Soft block" +msgstr "Mäkký blok" + +#: ../lib/modules/quota.inc:106 ../lib/modules/quota.inc:394 +#: ../lib/modules/quota.inc:499 ../lib/modules/systemQuotas.inc:117 +msgid "Soft block limit" +msgstr "Mäkký limit blokov" + +#: ../lib/modules/quota.inc:107 +msgid "Soft block limit." +msgstr "Mäkký limit blokov." + +#: ../lib/modules/quota.inc:628 ../lib/modules/systemQuotas.inc:378 +msgid "Soft inode" +msgstr "Mäkký inod" + +#: ../lib/modules/quota.inc:129 +msgid "Soft inode (files) limit." +msgstr "Mäkký limit inodov (súborov)." + +#: ../lib/modules/quota.inc:128 ../lib/modules/quota.inc:398 +#: ../lib/modules/quota.inc:501 ../lib/modules/systemQuotas.inc:121 +msgid "Soft inode limit" +msgstr "Mäkký limit inodov" + +#: ../lib/modules/imapAccess.inc:89 +msgid "" +"Some IMAP servers store mailboxes with a prefix (e.g. \"user\" for Cyrus " +"which results in \"user.username\")." +msgstr "" +"Niektoré servery IMAP uchovávajú poštové schránky s predponou (napr. Cyrus " +"používa „user”, čoho výsledkom je „user.meno používateľa”)." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1019 +#, php-format +msgid "Some attributes (%s) were modified and are highlighted below." +msgstr "Niektoré atribúty (%s) boli zmenené a sú nižšie zvýraznené." + +#: ../lib/modules.inc:873 +msgid "Some required information is missing" +msgstr "Niektoré povinné informácie chýbajú" + +#: ../templates/help.php:123 +#, php-format +msgid "" +"Sorry this help id ({bold}%s{endbold}) is not available for this module " +"({bold}%s{endbold})." +msgstr "" +"Prepáčte, ale toto ID pomocníka ({bold}%s{endbold}) nie je dostupné pre " +"tento modul ({bold}%s{endbold})." + +#: ../templates/help.php:136 +#, php-format +msgid "Sorry this help number ({bold}%s{endbold}) is not available." +msgstr "" +"Prepáčte, ale toto číslo pomocníka ({bold}%s{endbold}) nie je dostupné." + +#: ../lib/modules/sambaSamAccount.inc:316 +#: ../lib/modules/sambaSamAccount.inc:1252 +msgid "Special user" +msgstr "Špeciálny používateľ" + +#: ../lib/modules/zarafaDynamicGroup.inc:85 +#: ../lib/modules/zarafaAddressList.inc:73 +msgid "" +"Specifies a filter that matches the members (e.g. \"(mail=*@zarafa.nl)\")." +msgstr "Udáva filter, ktorý hľadá zhody členov (napr. „(mail=*@zarafa.sk)”)." + +#: ../help/help.inc:228 +msgid "Specifies if the mail should be sent as text or HTML." +msgstr "Udáva, či má byť email poslaný ako text alebo ako HTML." + +#: ../lib/modules/asteriskAccount.inc:215 +msgid "Specifies if the user can call forward." +msgstr "Udáva, či používateľ môže presmerovať hovory." + +#: ../lib/modules/zarafaGroup.inc:76 +msgid "Specifies if this group has security possibilities." +msgstr "udáva, či skupina má bezpečnostné možnosti." + +#: ../lib/modules/zarafaServer.inc:74 +msgid "" +"Specifies if this server contains the public store. This may be changed only " +"for new entries." +msgstr "" +"Udáva, či tento server obsahuje verejné úložisko. Toto možno zmeniť len pri " +"nových položkách." + +#: ../lib/modules/ppolicy.inc:126 +msgid "Specifies if users are allowed to change their own passwords or not." +msgstr "Udáva, či si používatelia môžu zmeniť svoje heslá alebo nie." + +#: ../lib/modules/zarafaDynamicGroup.inc:81 +#: ../lib/modules/zarafaAddressList.inc:69 +msgid "" +"Specifies the LDAP base where to search for members (e.g. \"ou=zarafa," +"dc=company,dc=com\")." +msgstr "" +"Udáva základ LDAP, kde budú hľadaní členovia (napr. „ou=zarafa,dc=spolocnost," +"dc=sk”)." + +#: ../lib/modules/zarafaContact.inc:89 ../lib/modules/zarafaGroup.inc:92 +#: ../lib/modules/zarafaUser.inc:138 +msgid "" +"Specifies the attribute that should be used to reference the entries. If you " +"would like to reference also groups then this must be set to \"dn\"." +msgstr "" +"Udáva atribút, ktorý má byť použitý na odkazovanie položiek. Ak chcete " +"odkazovať aj skupiny, potom musí byť nastavený na „dn”." + +#: ../lib/modules/zarafaUser.inc:114 +msgid "Specifies the capacity of this resource." +msgstr "Udáva kapacitu tohoto zdroja." + +#: ../lib/modules/mitKerberos.inc:130 ../lib/modules/heimdalKerberos.inc:104 +msgid "Specifies the maximum lifetime of a ticket in days." +msgstr "Udáva maximálnu životnosť tiketu v dňoch." + +#: ../lib/modules/ppolicy.inc:110 +msgid "" +"Specifies the maximum number of seconds before a password is due to expire " +"that expiration warning messages will be returned to a user." +msgstr "" +"Udáva maximálny počet sekúnd do vypršania hesla, počas ktorých bude " +"používateľovi zobrazovaná varovanie na vypršanie hesla." + +#: ../lib/modules/freeRadius.inc:102 +msgid "" +"Specifies the maximum number of seconds that a connection can be idle before " +"the session is terminated." +msgstr "" +"Udáva maximálny počet sekúnd, počas ktorých môže byť spojenie nečinné pred " +"tým ako bude relácia prerušená." + +#: ../lib/modules/mitKerberos.inc:126 ../lib/modules/heimdalKerberos.inc:108 +msgid "Specifies the maximum renewable lifetime of a ticket in days." +msgstr "Udáva maximálnu dobu platnosti obnovenia v dňoch." + +#: ../lib/modules/ppolicy.inc:114 +msgid "" +"Specifies the minimum number of characters that will be accepted in a " +"password." +msgstr "Udáva maximálny počet znakov hesla používateľa." + +#: ../lib/modules/ppolicy.inc:102 +msgid "" +"Specifies the number of consecutive failed login attempts after which the " +"password may not be used to login." +msgstr "" +"Udáva počet, po sebe idúcich, neúspešných pokusov o prihlásenie, po ktorých " +"heslo nebude možné použiť na prihlásenie." + +#: ../lib/modules/ppolicy.inc:86 +msgid "" +"Specifies the number of previously used passwords which should be saved in " +"the password history. New passwords can only be set if they are not in the " +"password history." +msgstr "" +"Udáva počet predošlých hesiel, ktoré majú byť uložené v histórii hesiel. " +"Nové heslá bude možno nastaviť, iba ak nebudú v histórii hesiel." + +#: ../lib/modules/ppolicy.inc:106 +msgid "" +"Specifies the number of seconds after which old consecutive failed login " +"attempts are purged from the failure counter, even though no successful " +"authentication has occurred." +msgstr "" +"Udáva počet sekúnd, po ktorých sú staré neúspešné pokusy o prihlásenie " +"zahodené z počítadla neúspechov, hoci nedošlo k úspešnému prihláseniu." + +#: ../lib/modules/ppolicy.inc:98 +msgid "" +"Specifies the number of seconds during which the password cannot be used to " +"login due to too many consecutive failed bind attempts." +msgstr "" +"Udáva počet sekúnd, počas ktorých nemožno heslo použiť na prihlásenie, kvôli " +"veľkému počtu po sebe idúcich neúspešných pokusov o prihlásenie." + +#: ../lib/modules/eduPerson.inc:86 ../lib/modules/eduPerson.inc:90 +msgid "" +"Specifies the person's affiliation within a particular security domain in " +"broad categories such as student, faculty, staff, alum, etc." +msgstr "" +"Udáva pričlenenie osoby v rámci danej bezpečnostnej domény v častých " +"kategóriách, ako študent, fakulta, učiteľ, apod." + +#: ../lib/modules/eduPerson.inc:82 +msgid "" +"Specifies the person's primary relationship to the institution in broad " +"categories such as student, faculty, staff, alum, etc." +msgstr "" +"Udáva hlavný vzťah osoby k inštitúcii v bežnej kategórii, ako študent, " +"fakulta, učiteľ, apod." + +#: ../lib/modules/eduPerson.inc:99 ../lib/modules/eduPerson.inc:103 +msgid "" +"Specifies the person's relationships to the institution in broad categories " +"such as student, faculty, staff, alum, etc." +msgstr "" +"Udáva vzťah osoby k inštitúcii v bežných kategóriách, ako študent, fakulta, " +"učiteľ, apod." + +#: ../lib/modules/asteriskAccount.inc:167 +msgid "Specifies the user's pickup group." +msgstr "Udáva skupinu príjemcov používateľa." + +#: ../lib/modules/zarafaUser.inc:102 +msgid "" +"Specifies whether the user is an admin. System administrators may " +"additionally create, modify and delete companies." +msgstr "" +"Udáva, či je používateľ administrátorom. Administrátori systému môžu naviac " +"vytvoriť, zmeniť alebo odstrániť spoločnosti." + +#: ../lib/modules/ppolicy.inc:130 +msgid "" +"Specifies whether the user's existing password must be sent along with their " +"new password when changing a password. Attention, LAM does not support " +"password changes which require the old password." +msgstr "" +"Udáva, či má byť, pri zmene hesla, existujúce heslo používateľa poslané " +"spolu s jeho novým heslom. Upozornenie, LAM nepodporuje zmeny hesla, ktoré " +"vyžadujú staré heslo." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1460 +msgid "Specify attributes and values" +msgstr "Zadajte atribúty a hodnoty" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +msgid "Standard LDAP search filter. Example: (&(sn=Smith)(givenName=David))" +msgstr "" +"Štandardný filter hľadania LDAP. Príklad: (&(sn=Hraško)(givenName=Janko))" + +#: ../templates/serverInfo.php:193 ../templates/serverInfo.php:199 +msgid "Start time" +msgstr "Čas začiatku" + +#: ../lib/modules/windowsUser.inc:147 ../lib/modules/windowsUser.inc:282 +#: ../lib/modules/windowsUser.inc:393 ../lib/modules/windowsUser.inc:415 +#: ../lib/modules/windowsUser.inc:531 ../lib/modules/windowsUser.inc:1228 +#: ../lib/modules/windowsUser.inc:1340 ../lib/modules/inetOrgPerson.inc:145 +#: ../lib/modules/inetOrgPerson.inc:173 ../lib/modules/inetOrgPerson.inc:318 +#: ../lib/modules/inetOrgPerson.inc:584 ../lib/modules/inetOrgPerson.inc:626 +#: ../lib/modules/inetOrgPerson.inc:848 ../lib/modules/inetOrgPerson.inc:852 +#: ../lib/modules/inetOrgPerson.inc:1588 ../lib/modules/inetOrgPerson.inc:2376 +#: ../lib/modules/inetOrgPerson.inc:3088 +msgid "State" +msgstr "Územný celok" + +#: ../templates/pdfedit/pdfpage.php:523 ../templates/pdfedit/pdfpage.php:525 +msgid "Static text" +msgstr "Statický text" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1455 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1467 +#, php-format +msgid "Step %s of %s" +msgstr "Krok %s z %s" + +#: ../lib/modules/windowsUser.inc:230 ../lib/modules/inetOrgPerson.inc:377 +msgid "Steve" +msgstr "Janko" + +#: ../lib/modules/sambaSamAccount.inc:408 ../lib/modules/posixAccount.inc:265 +#: ../lib/modules/windowsUser.inc:242 ../lib/modules/inetOrgPerson.inc:2503 +#: ../lib/modules/asteriskVoicemail.inc:165 +msgid "Steve Miller" +msgstr "Janko Hraško" + +#: ../lib/modules/posixAccount.inc:328 +msgid "Steve Miller,Room 2.14,123-123-1234,123-123-1234" +msgstr "Janko Hraško,Miestnosť 123,123-123-1234,123-123-1234" + +#: ../lib/modules/eduPerson.inc:183 +msgid "Steve, Stevo" +msgstr "Janko, Jano" + +#: ../lib/modules/windowsUser.inc:151 ../lib/modules/windowsUser.inc:258 +#: ../lib/modules/windowsUser.inc:394 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:527 ../lib/modules/windowsUser.inc:1229 +#: ../lib/modules/windowsUser.inc:1339 ../lib/modules/inetOrgPerson.inc:78 +#: ../lib/modules/inetOrgPerson.inc:142 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:310 ../lib/modules/inetOrgPerson.inc:446 +#: ../lib/modules/inetOrgPerson.inc:614 ../lib/modules/inetOrgPerson.inc:733 +#: ../lib/modules/inetOrgPerson.inc:737 ../lib/modules/inetOrgPerson.inc:1480 +#: ../lib/modules/inetOrgPerson.inc:2361 ../lib/modules/inetOrgPerson.inc:3011 +msgid "Street" +msgstr "Ulica" + +#: ../templates/pdfedit/pdfpage.php:452 ../templates/pdfedit/pdfmain.php:315 +msgid "Structure name" +msgstr "Meno štruktúry" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:136 +#: ../templates/3rdParty/pla/htdocs/export_form.php:33 +msgid "Sub (entire subtree)" +msgstr "Vnorenie (celý podstrom)" + +#: ../lib/types/netgroup.inc:93 ../lib/modules/nisnetgroup.inc:84 +#: ../lib/modules/nisnetgroup.inc:119 ../lib/modules/nisnetgroup.inc:134 +#: ../lib/modules/nisnetgroup.inc:202 ../lib/modules/nisnetgroup.inc:376 +#: ../lib/modules/nisnetgroup.inc:576 +msgid "Subgroups" +msgstr "Podskupiny" + +#: ../templates/config/confmain.php:337 ../lib/modules/selfRegistration.inc:77 +#: ../lib/modules/selfRegistration.inc:135 +#: ../lib/modules/passwordSelfReset.inc:108 +#: ../lib/modules/passwordSelfReset.inc:214 +#: ../lib/modules/passwordSelfReset.inc:230 ../help/help.inc:220 +msgid "Subject" +msgstr "Predmet" + +#: ../lib/types/dhcp.inc:94 ../lib/modules/dhcp_settings.inc:135 +#: ../lib/modules/dhcp_settings.inc:189 ../lib/modules/dhcp_settings.inc:203 +#: ../lib/modules/dhcp_settings.inc:220 ../lib/modules/dhcp_settings.inc:531 +#: ../lib/modules/dhcp_settings.inc:640 +msgid "Subnet" +msgstr "Podsieť" + +#: ../lib/modules/dhcp_settings.inc:175 ../lib/modules/dhcp_settings.inc:197 +#: ../lib/modules/dhcp_settings.inc:214 ../lib/modules/dhcp_settings.inc:272 +#: ../lib/modules/dhcp_settings.inc:567 ../lib/modules/dhcp_settings.inc:637 +msgid "Subnet mask" +msgstr "Maska podsiete" + +#: ../templates/schema/schema.php:176 +msgid "Substring Rule" +msgstr "Pravidlo podreťazca" + +#: ../templates/3rdParty/pla/htdocs/import.php:63 +#: ../templates/3rdParty/pla/htdocs/copy.php:56 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:68 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:85 +msgid "Success" +msgstr "Úspešné" + +#: ../templates/3rdParty/pla/htdocs/delete.php:32 +#, php-format +msgid "Successfully deleted DN %s" +msgstr "Úspešne odstránený DN %s" + +#: ../lib/modules/sudoRole.inc:38 +msgid "Sudo role" +msgstr "Rola sudo" + +#: ../lib/types/sudo.inc:159 +#, php-format +msgid "Sudo role count: %s" +msgstr "Počet rolí sudo: %s" + +#: ../lib/types/sudo.inc:48 +msgid "Sudo role management" +msgstr "Správa rolí sudo" + +#: ../lib/types/sudo.inc:39 +msgid "Sudo roles" +msgstr "Role sudo" + +#: ../lib/modules.inc:985 +msgid "Suffix" +msgstr "Prípona" + +#: ../lib/modules/posixGroup.inc:360 ../lib/modules/posixGroup.inc:455 +msgid "Suffix for GID/group name check" +msgstr "Prípona kontroly mena GID/skupiny" + +#: ../lib/modules/posixAccount.inc:196 ../lib/modules/posixAccount.inc:214 +#: ../lib/modules/posixAccount.inc:449 +msgid "Suffix for UID/user name check" +msgstr "Prípona kontroly mena UID/používateľa" + +#: ../lib/modules/sambaSamAccount.inc:1351 +msgid "Sunday" +msgstr "Nedeľa" + +#: ../templates/3rdParty/pla/htdocs/compare.php:72 +msgid "Switch entries" +msgstr "Prepnúť položky" + +#: ../lib/modules/asteriskAccount.inc:89 +#: ../lib/modules/asteriskVoicemail.inc:77 +msgid "Sync Asterisk password with Unix password" +msgstr "Synchronizovať heslo Asterisk s heslom Unix" + +#: ../lib/modules/heimdalKerberos.inc:230 +msgid "Sync Heimdal Kerberos password with Unix password" +msgstr "Synchronizovať heslo Heimdal Kerberos s heslom Unix" + +#: ../lib/modules/mitKerberos.inc:270 +msgid "Sync MIT Kerberos password with Unix password" +msgstr "Synchronizovať heslo MIT Kerberos s heslom Unix" + +#: ../lib/modules/sambaSamAccount.inc:241 +msgid "Sync Samba LM password with Unix password" +msgstr "Synchronizovať heslo Samba LM s heslom Unix" + +#: ../lib/modules/sambaSamAccount.inc:240 +msgid "Sync Samba NT password with Unix password" +msgstr "Synchronizovať heslo Samba NT s heslom Unix" + +#: ../lib/modules/customFields.inc:922 +msgid "Sync fields with page layout" +msgstr "Synchronizovať polia s rozložením stránky" + +#: ../templates/schema/schema.php:181 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:142 +msgid "Syntax" +msgstr "Syntax" + +#: ../templates/schema/schema.php:89 +msgid "Syntax OID" +msgstr "Syntax OID" + +#: ../templates/schema/schema.php:73 ../templates/schema/schema.php:74 +msgid "Syntaxes" +msgstr "Syntax" + +#: ../lib/modules/zarafaUser.inc:634 ../lib/modules/zarafaUser.inc:1325 +msgid "System administrator" +msgstr "Administrátor systému" + +#: ../templates/config/mainmanage.php:227 +msgid "System logging" +msgstr "Systémový záznam" + +#: ../help/help.inc:60 +msgid "TLS cannot be combined with ldaps://." +msgstr "TLS nemožno kombinovať s ldaps://." + +#: ../lib/modules/kolabUser.inc:178 +msgid "Target of invitation policy is invalid!" +msgstr "Cieľ politiky privítania nie je platný!" + +#: ../templates/pdfedit/pdfmain.php:279 +#: ../templates/profedit/profilemain.php:282 +msgid "Target server profile" +msgstr "Cieľový profil servera" + +#: ../templates/help.php:89 ../lib/modules.inc:654 +msgid "Technical name" +msgstr "Technické meno" + +#: ../templates/lists/changePassword.php:271 ../lib/types/user.inc:203 +#: ../lib/modules/windowsUser.inc:155 ../lib/modules/windowsUser.inc:306 +#: ../lib/modules/windowsUser.inc:395 ../lib/modules/windowsUser.inc:412 +#: ../lib/modules/windowsUser.inc:451 ../lib/modules/windowsUser.inc:537 +#: ../lib/modules/windowsUser.inc:1230 ../lib/modules/windowsUser.inc:1333 +#: ../lib/modules/inetOrgPerson.inc:68 ../lib/modules/inetOrgPerson.inc:141 +#: ../lib/modules/inetOrgPerson.inc:188 ../lib/modules/inetOrgPerson.inc:328 +#: ../lib/modules/inetOrgPerson.inc:486 ../lib/modules/inetOrgPerson.inc:641 +#: ../lib/modules/inetOrgPerson.inc:765 ../lib/modules/inetOrgPerson.inc:769 +#: ../lib/modules/inetOrgPerson.inc:1713 ../lib/modules/inetOrgPerson.inc:2366 +#: ../lib/modules/inetOrgPerson.inc:2967 +msgid "Telephone number" +msgstr "Číslo telefónu" + +#: ../lib/modules/inetOrgPerson.inc:424 +msgid "Temp" +msgstr "Dočasný" + +#: ../lib/modules/windowsUser.inc:254 ../lib/modules/inetOrgPerson.inc:400 +msgid "Temp, contract til December" +msgstr "Dočasný, zmluva do decembra" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +msgid "Template" +msgstr "Šablóna" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:520 +msgid "Templates" +msgstr "Šablóny" + +#: ../lib/modules/sambaSamAccount.inc:380 +#: ../lib/modules/sambaSamAccount.inc:593 +#: ../lib/modules/sambaSamAccount.inc:1264 +msgid "Terminal server options" +msgstr "Voľby terminálového servera" + +#: ../lib/tools/tests.inc:44 +msgid "Tests" +msgstr "Testy" + +#: ../templates/config/confmain.php:346 ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:108 +#: ../lib/modules/passwordSelfReset.inc:112 +#: ../lib/modules/passwordSelfReset.inc:122 +#: ../lib/modules/passwordSelfReset.inc:218 +#: ../lib/modules/passwordSelfReset.inc:234 ../help/help.inc:222 +msgid "Text" +msgstr "Text" + +#: ../lib/modules/customFields.inc:1837 +msgid "Text area" +msgstr "Textové pole" + +#: ../templates/pdfedit/pdfpage.php:582 ../lib/modules/customFields.inc:1430 +msgid "Text field" +msgstr "Textové pole" + +#: ../lib/modules/eduPerson.inc:108 +msgid "" +"The \"NetID\" of the person for the purposes of inter-institutional " +"authentication. It should be represented in the form \"user@scope\" where " +"scope defines a local security domain." +msgstr "" +"„NetID” osoby na účely interného overenia. Môže byť uvedené v podobe " +"„používateľ@rozsah”, kde rozsah definuje lokálnu bezpečnostnú doménu." + +#: ../lib/modules/dhcp_settings.inc:307 +msgid "The DHCP ranges were changed to fit for the new subnet." +msgstr "Rozsahy DHCP boli zmenené tak, aby zodpovedali novej podsieti." + +#: ../lib/modules/eduPerson.inc:120 +msgid "" +"The DN of the directory entry representing the institution with which the " +"person is associated." +msgstr "" +"DN položky adresára, ktorá reprezentuje inštitúciu, s ktorou je osoba " +"spojená." + +#: ../lib/modules/eduPerson.inc:124 +msgid "" +"The DN of the directory entry representing the person's primary " +"organisational unit." +msgstr "" +"DN položky adresára, ktorá reprezentuje primárnu organizačnú jednotku osoby." + +#: ../lib/modules/eduPerson.inc:128 ../lib/modules/eduPerson.inc:132 +msgid "" +"The DNs of the directory entries representing the person's organisational " +"units." +msgstr "DN položky adresára, ktorá reprezentuje organizačné jednotky osoby." + +#: ../lib/modules/posixGroup.inc:452 +msgid "" +"The ID of this group was changed. You can update all user and host entries " +"to the new group ID." +msgstr "" +"ID tejto skupiny bolo zmenené. Môžete aktualizovať položky všetkých " +"používateľov a strojov na nové ID skupiny." + +#: ../templates/config/mainmanage.php:95 +#, php-format +msgid "The IP address %s is invalid!" +msgstr "Adresa IP %s nje je platná!" + +#: ../lib/modules/fixed_ip.inc:394 +msgid "The IP address does not match the subnet." +msgstr "Adresa IP nepatrí do podsiete." + +#: ../lib/modules/fixed_ip.inc:397 +msgid "The IP address is already in use." +msgstr "Adresa IP je už používaná." + +#: ../lib/modules/ipHost.inc:108 ../lib/modules/ipHost.inc:109 +#: ../lib/modules/asteriskAccount.inc:636 +#: ../lib/modules/asteriskAccount.inc:637 ../lib/modules/ppolicyUser.inc:85 +#: ../lib/modules/range.inc:410 ../lib/modules/range.inc:427 +#: ../lib/modules/freeRadius.inc:242 ../lib/modules/freeRadius.inc:243 +#: ../lib/modules/fixed_ip.inc:389 +msgid "The IP address is invalid." +msgstr "Adresa IP nie je platná." + +#: ../lib/modules/fixed_ip.inc:95 +msgid "The IP address of the PC." +msgstr "Adresa IP počítača." + +#: ../lib/modules/dhcp_settings.inc:148 +msgid "" +"The IP addresses of the DNS servers. Multiple addresses are separated by \"," +"\". Example: 192.168.0.10, 192.168.0.11" +msgstr "" +"Adresy IP serverov DNS. Viac adries IP možno oddeliť „,”. Príklad: " +"192.168.0.10, 192.168.0.11" + +#: ../lib/modules/dhcp_settings.inc:156 +msgid "" +"The IP addresses of the Netbios name servers (e.g. \"123.123.123.123, " +"123.123.123.124\")." +msgstr "" +"Adresa(y) IP menných serverov NetBIOS (napr. „123.123.123.123, " +"123.123.123.124”)." + +#: ../lib/modules/range.inc:414 ../lib/modules/range.inc:429 +msgid "The IP does not match the subnet." +msgstr "Adresa IP nepatrí do podsiete." + +#: ../lib/modules/mitKerberos.inc:146 +msgid "The Kerberos realm for this account." +msgstr "Autentifikačná doména (realm) Kerberos tohoto účtu" + +#: ../lib/modules/heimdalKerberos.inc:92 +msgid "The Kerberos realm of this user." +msgstr "Autentifikačná doména (realm) Kerberos tohoto používateľa" + +#: ../lib/modules/fixed_ip.inc:92 +msgid "The MAC address of the PC. Example: 11:22:33:44:55:aa" +msgstr "Adresa MAC počítača. Príklad: 11:22:33:44:55:aa" + +#: ../lib/modules/dhcp_settings.inc:300 ../lib/modules/dhcp_settings.inc:301 +msgid "The Netbios server is invalid." +msgstr "Server NetBIOS nie je platný." + +#: ../lib/modules/fixed_ip.inc:361 +msgid "The PC name may not be longer than 20 characters." +msgstr "Meno stroja nemôže byť dlhšie ako 20 znakov." + +#: ../lib/modules/fixed_ip.inc:370 +msgid "The PC name may only contain A-Z, a-z and 0-9." +msgstr "Meno stroja môže obsahovať len A-Z, a-z a 0-9." + +#: ../lib/modules/fixed_ip.inc:364 +msgid "The PC name needs to be at least 2 characters long." +msgstr "Meno stroja musí byť aspoň 2 znaky dlhé." + +#: ../help/help.inc:183 +msgid "" +"The PDF structure defines what information is exported as PDF file and how " +"the pages are structured. You can manage the PDF structures in the PDF " +"editor (under \"Tools\")." +msgstr "" +"Štruktúra PDF definuje, ktoré informácie sú exportované do súboru PDF a ako " +"sú štruktúrované strany. Štruktúry PDF môžete spravovať v Editore PDF (pod " +"\"Nástroje\")." + +#: ../templates/3rdParty/pla/htdocs/create.php:44 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:38 +msgid "The RDN field is empty." +msgstr "Pole RDN je prázdne." + +#: ../lib/modules/freeRadius.inc:86 +msgid "The Radius realm of this account." +msgstr "Autentifikačná doména (realm) tohoto účtu" + +#: ../lib/modules/sambaDomain.inc:75 +msgid "The SID of your Samba server. Get it with \"net getlocalsid\"." +msgstr "SID vášho servera Samba. Získate ho pomocou „net getlocalsid”." + +#: ../lib/modules/posixAccount.inc:81 +msgid "" +"The UID ranges for users and hosts overlap! This is a problem because LAM " +"uses the highest UID in use + 1 for new accounts. Please set the minimum UID " +"to equal values or use independent ranges." +msgstr "" +"Rozsahy UID používateľov a strojov sa prekrývajú! Je to problém, pretože LAM " +"používa na nové účty najvyššie použité UID + 1. Prosím, nastavte minimálne " +"UID na rovnaké hodnoty alebo použite nezávislé rozsahy." + +#: ../lib/modules/zarafaServer.inc:70 +msgid "The Unix socket or named pipe to the server." +msgstr "Unixový soket alebo pomenovaná rúra servera." + +#: ../lib/modules/asteriskVoicemail.inc:205 +#: ../lib/modules/asteriskVoicemail.inc:206 +msgid "The account context is invalid." +msgstr "Kontext účtu nie je platný." + +#: ../lib/modules/asteriskAccount.inc:103 +#: ../lib/modules/asteriskExtension.inc:92 +#: ../lib/modules/asteriskVoicemail.inc:83 +msgid "The account context stores information about the dial plan." +msgstr "Kontext účtu uchováva informácie a pláne vytáčania." + +#: ../lib/modules/asteriskAccount.inc:628 +#: ../lib/modules/asteriskAccount.inc:629 +msgid "The account type is invalid." +msgstr "Typ účtu nie je platný." + +#: ../lib/modules/freeRadius.inc:98 +msgid "The account will be locked after this date." +msgstr "Účet bude po tomto dátume uzamknutý." + +#: ../help/help.inc:169 +msgid "The account will be saved under this LDAP suffix." +msgstr "Účet bude uložený pod touto príponou LDAP." + +#: ../lib/modules/passwordSelfReset.inc:257 +#, php-format +msgid "The answer needs to be at least %s characters long." +msgstr "Odpoveď musí byť dlhá aspoň %s znakov." + +#: ../lib/modules/passwordSelfReset.inc:1015 +msgid "The answer to the security question is wrong." +msgstr "Odpoveď na bezpečnostnú otázku nie je správna." + +#: ../templates/tests/schemaTest.php:128 +#, php-format +msgid "" +"The attribute %s is not supported for the object class %s by your LDAP " +"server." +msgstr "" +"Atribút %s nie je podporovaný pre triedu objektu %s vášho servera LDAP." + +#: ../templates/3rdParty/pla/lib/import_functions.php:531 +#, php-format +msgid "The attribute to modify doesn't match the one specified by %s." +msgstr "Atribút na modifikáciu nezodpovedá tomu, ktorý je zadaný pomocou %s." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:31 +msgid "The attribute value does not exist" +msgstr "Hodnota atribútu neexistuje" + +#: ../lib/modules/asteriskAccount.inc:618 +#: ../lib/modules/asteriskAccount.inc:620 +msgid "The caller ID format is invalid." +msgstr "Formát ID volajúceho nie je platný." + +#: ../lib/modules/puppetClient.inc:179 ../lib/modules/puppetClient.inc:180 +msgid "The class names may only contain ASCII characters." +msgstr "Meno triedy môže obsahovať len znaky ASCII." + +#: ../templates/config/confmain.php:176 +msgid "The config file is not writable." +msgstr "Konfiguračný súbor nie je zapisovateľný." + +#: ../templates/3rdParty/pla/htdocs/create.php:29 +#: ../templates/3rdParty/pla/htdocs/copy.php:34 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:23 +#, php-format +msgid "The container you specified (%s) does not exist. Please try again." +msgstr "Kontajner, ktorý ste zadali (%s) neexistuje. Prosím, skúste znova." + +#: ../lib/modules/dhcp_settings.inc:298 ../lib/modules/dhcp_settings.inc:299 +msgid "The default gateway is invalid." +msgstr "Predvolená brána nie je platná." + +#: ../lib/modules/qmailUser.inc:253 +msgid "The default interpretation of .qmail files." +msgstr "Predvolená interpretácia súborov .qmail." + +#: ../templates/3rdParty/pla/htdocs/copy.php:31 +#, php-format +msgid "The destination entry (%s) already exists." +msgstr "Cieľová položka (%s) už existuje." + +#: ../lib/modules/dhcp_settings.inc:309 ../lib/modules/dhcp_settings.inc:310 +msgid "" +"The domain name includes invalid characters. Valid characters are A-Z, a-z, " +"0-9, \".\", \"_\",\"-\"." +msgstr "" +"Doménové meno obsahuje neplatné znaky. Platné znaky sú A-Z, a-z, 0-9, „.”, " +"„_”, „-”." + +#: ../lib/modules/dhcp_settings.inc:132 +msgid "The domain name of the subnet." +msgstr "Doménové meno podsiete." + +#: ../lib/modules/asteriskVoicemail.inc:209 +msgid "The email address is invalid." +msgstr "Emailové adresa nie je platná." + +#: ../lib/modules/range.inc:89 +msgid "The ending IP address of the range." +msgstr "Koncová adresa je mimo rozsahu." + +#: ../lib/modules/dhcp_settings.inc:302 +msgid "The entered Netbios node type does not exist." +msgstr "Zadaný typ uzla NetBIOS neexistuje." + +#: ../templates/3rdParty/pla/htdocs/update.php:27 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:22 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:21 +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:24 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:23 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:20 +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:24 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:20 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:27 +#, php-format +msgid "The entry (%s) does not exist." +msgstr "Položka (%s) neexistuje." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:27 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:28 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:34 +msgid "The entry does not exist and will be ignored" +msgstr "Položka neexistuje a bude ignorovaná" + +#: ../lib/modules/puppetClient.inc:177 ../lib/modules/puppetClient.inc:178 +msgid "The environment name may only contain ASCII characters." +msgstr "Názov prostredia môže obsahovať len znaky ASCII." + +#: ../lib/modules/shadowAccount.inc:67 +msgid "The expiration date is invalid." +msgstr "Dátum vypršania nie je platný." + +#: ../lib/modules/freeRadius.inc:250 ../lib/modules/freeRadius.inc:251 +msgid "The expiration date must be in format DD.MM.YYYY HH:MM." +msgstr "Dátum vypršania musí byť vo formáte DD.MM.YYYY HH:MM." + +#: ../lib/modules/asteriskAccount.inc:622 +#: ../lib/modules/asteriskAccount.inc:623 +msgid "The extension context is invalid." +msgstr "Kontext rozšírenia nie je platný." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "The file you chose is either empty or does not exist." +msgstr "Súbor, ktorý ste zvolili je buď prázdny alebo neexistuje." + +#: ../templates/3rdParty/pla/lib/Template.php:412 +#: ../templates/3rdParty/pla/lib/Template.php:499 +msgid "" +"The file you selected was only partially uploaded, likley due to a network " +"error." +msgstr "" +"Súbor, ktorý ste zvolili bol nahraný len čiastočne, pravdepodobne kvôli " +"chybe siete." + +#: ../templates/3rdParty/pla/lib/Template.php:402 +#: ../templates/3rdParty/pla/lib/Template.php:407 +#: ../templates/3rdParty/pla/lib/Template.php:489 +#: ../templates/3rdParty/pla/lib/Template.php:494 +msgid "" +"The file you uploaded is too large. Please check php.ini, upload_max_size " +"setting" +msgstr "" +"Súbor, ktorý nahrávate je príliš veľký. Prosím, skontrolujte nastavenie " +"upload_max_size v php.ini" + +#: ../templates/initsuff.php:179 +msgid "" +"The following suffixes are missing in LDAP. LAM can create them for you." +msgstr "Nasledujúce prípony chýbajú v LDAP. LAM ich môže pre vás vytvoriť." + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:120 +msgid "The format of the logon hours field is invalid!" +msgstr "Formát doby prihlásenia nie je platný!" + +#: ../lib/modules/customScripts.inc:111 +msgid "The format of this custom script setting is invalid." +msgstr "Formát nastavenia tohoto vlastného skriptu nie je platný." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +msgid "The format to show the query results" +msgstr "Formát zobrazenia výsledkov dopytu" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "" +"The full DN of the new entry to be created when copying the source entry" +msgstr "" +"Úplný DN novej položky, ktorá má byť vytvorená pri kopírovaní zdrojovej " +"položky" + +#: ../lib/modules/asteriskVoicemail.inc:208 +msgid "The full name is invalid." +msgstr "Celé meno nie je platné." + +#: ../templates/login.php:572 +msgid "The given user name matches multiple LDAP entries." +msgstr "Zadané meno používateľa zodpovedá viacerým položkám LDAP." + +#: ../lib/modules/ppolicy.inc:94 +msgid "" +"The grace authentication limit specifies the number of times that an expired " +"password may be used to login." +msgstr "" +"Limit odkladu autentifikácie udáva koľko krát môže byť na prihlásenie " +"použité vypršané heslo." + +#: ../lib/modules/freeRadius.inc:90 ../lib/modules/freeRadius.inc:94 +msgid "The group names for this account." +msgstr "Mená skupín tohoto účtu." + +#: ../lib/modules/windowsUser.inc:196 +msgid "The groups for this account. You can insert a group name or DN." +msgstr "Skupiny tohoto účtu. Môžete zadať číslo meno skupiny alebo DN." + +#: ../templates/pdfedit/pdfpage.php:129 +msgid "The headline for a new section must contain at least one character." +msgstr "Hlavička novej sekcie musí obsahovať aspoň jeden znak." + +#: ../lib/modules/sambaSamAccount.inc:293 +msgid "The home directory will be connected under this drive letter." +msgstr "Domovský adresár bude pripojený pod týmto písmenom disku." + +#: ../lib/modules/windowsHost.inc:80 +msgid "The host is managed by this contact person." +msgstr "Stroj je spravovaný touto kontaktnou osobou." + +#: ../lib/modules/asteriskAccount.inc:625 +#: ../lib/modules/asteriskAccount.inc:626 +msgid "The host name is invalid." +msgstr "Meno stroja nie je platné." + +#: ../lib/modules/windowsUser.inc:112 ../lib/modules/inetOrgPerson.inc:905 +msgid "The initials of the user's first names." +msgstr "Iniciály krstného mena používateľa." + +#: ../lib/modules/ddns.inc:87 +msgid "" +"The key enables the DHCP server to perform DNS updates. The key is generated " +"with \"genDDNSkey\"." +msgstr "" +"Kľúč dovoľuje serveru DHCP vykonávať aktualizácie DNS. Kľúč je generovaný " +"pomocou „genDDNSkey”." + +#: ../lib/modules/dhcp_settings.inc:296 ../lib/modules/dhcp_settings.inc:297 +msgid "The lease time is invalid." +msgstr "Čas pridelenia nie je platný." + +#: ../lib/modules/dhcp_settings.inc:140 +msgid "" +"The lease time specifies after how many seconds the client should request a " +"new IP address." +msgstr "" +"Čas pridelenia udáva počet sekúnd, po ktorých uplynutí musí klient požiadať " +"o novú adresu IP." + +#: ../lib/modules/sudoRole.inc:72 ../lib/modules/sudoRole.inc:98 +msgid "The list of commands which may be run." +msgstr "Zoznam príkazov, ktoré môžu byť spustené." + +#: ../lib/modules/puppetClient.inc:86 ../lib/modules/puppetClient.inc:90 +msgid "The list of configured Puppet classes for this node (e.g. ntp)." +msgstr "Zoznam nastavených tried Puppet tohoto uzla (napr. ntp)." + +#: ../lib/modules/sudoRole.inc:68 ../lib/modules/sudoRole.inc:93 +msgid "The list of hosts from which the user may run the commands." +msgstr "Zoznam strojov, z ktorých môže používateľ púšťať príkazy." + +#: ../lib/modules/customFields.inc:2242 +msgid "The list of labels contains duplicates." +msgstr "Zoznam menoviek, ktoré obsahujú duplikáty." + +#: ../lib/modules/sudoRole.inc:64 ../lib/modules/sudoRole.inc:88 +msgid "The list of users who own this sudo role and may run the commands." +msgstr "" +"Zoznam používateľov, ktorí vlastnia túto rolu sudo a môžu spúšťať príkazy." + +#: ../lib/modules/customFields.inc:2239 +msgid "The list of values contains duplicates." +msgstr "Zoznam hodnôt, ktoré obsahujú duplikáty." + +#: ../lib/modules/qmailGroup.inc:125 ../lib/modules/qmailGroup.inc:129 +msgid "The list's alternate email address." +msgstr "Alternatívna emailová adresa konferencie." + +#: ../lib/modules/qmailGroup.inc:117 ../lib/modules/qmailGroup.inc:121 +#: ../lib/modules/windowsGroup.inc:119 +msgid "The list's email address." +msgstr "Emailové adresy konferencie." + +#: ../templates/config/mainmanage.php:111 +msgid "" +"The log file is empty or contains invalid characters! Valid characters are: " +"a-z, A-Z, 0-9, /, \\, ., :, _ and -." +msgstr "" +"Súbor záznamu je prázdny alebo obsahuje neplatné znaky! Platné znaky sú: a-" +"z, A-Z, 0-9, /, \\, ., :, _ a -." + +#: ../lib/modules/imapAccess.inc:80 +msgid "" +"The login name of your IMAP user who has rights to create/delete mailboxes." +msgstr "" +"Prihlasovacie meno používateľa IMAP, ktorý má právo pridávať/odstraňovať " +"emailové schránky." + +#: ../lib/modules/qmailUser.inc:237 +msgid "The mail server that contains the message store." +msgstr "Poštový server, ktorý obsahuje úložisko správ." + +#: ../help/help.inc:223 +msgid "The mail text of all password mails." +msgstr "Texta emailu všetkých emailov s heslami." + +#: ../lib/modules/selfRegistration.inc:109 +msgid "The mail text of the confirmation mail." +msgstr "Text tela správy potvrdzujúceho emailu." + +#: ../lib/modules/passwordSelfReset.inc:113 +#: ../lib/modules/passwordSelfReset.inc:123 +msgid "The mail text of the mails." +msgstr "Text emailov." + +#: ../lib/modules/asteriskVoicemail.inc:201 +msgid "The mailbox format is invalid." +msgstr "Formát emailovej schránky nie je platný." + +#: ../lib/modules/dhcp_settings.inc:303 ../lib/modules/dhcp_settings.inc:304 +msgid "The maximum lease time is invalid." +msgstr "Maximálna doba pridelenia nie je platná." + +#: ../lib/modules/dhcp_settings.inc:144 +msgid "" +"The maximum lease time specifies after how many seconds the client must " +"request a new IP address." +msgstr "" +"maximálny čas pridelenia udáva počet sekúnd, po ktorých uplynutí musí klient " +"požiadať o novú adresu IP." + +#: ../lib/modules/qmailUser.inc:217 +msgid "The maximum number of mails that can be stored in the user's mailbox." +msgstr "" +"Maximálny počet emailov, ktoré môžu byť uložené v schránke používateľa." + +#: ../lib/modules.inc:924 +#, php-format +msgid "The module %s is not yet ready." +msgstr "Modul %s zatiaľ nie je pripravený." + +#: ../templates/pdfedit/pdfpage.php:100 +msgid "" +"The name for that PDF-structure you submitted is not valid. A valid name " +"must consist of the following characters: 'a-z','A-Z','0-9','_','-'." +msgstr "" +"Názov štruktúry PDF, ktorý ste zadali nie je platný. Platné meno sa môže " +"skladať len z nasledujúcich znakov: 'a-z','A-Z','0-9','_','-'." + +#: ../lib/modules/asteriskExtension.inc:104 +msgid "" +"The name of a command to execute. The available commands may be listed at " +"the Asterisk command line by executing \"core show applications\"." +msgstr "" +"Meno príkazu na vykonanie. Dostupné príkazy môžu byť vypísané v príkazovom " +"riadku Asterisk zadaním „core show applications”." + +#: ../lib/modules/fixed_ip.inc:89 +msgid "The name of the PC." +msgstr "Meno počítača." + +#: ../lib/modules/asteriskExtension.inc:96 +msgid "The name of the extension (e.g. voicemail or sip)." +msgstr "Meno rozšírenia (napr. voicemail alebo sip)." + +#: ../lib/modules/kolabUser.inc:130 +msgid "The name of the server where the mailbox is located." +msgstr "Meno servera, na ktorom je poštová schránka umiestnená." + +#: ../lib/modules/dhcp_settings.inc:136 +msgid "The name of the subnet. Example: 192.168.10.0" +msgstr "Meno podsiete. Napríklad: 192.168.10.0" + +#: ../lib/modules/sambaDomain.inc:71 +msgid "The name of your Windows domain or workgroup." +msgstr "Meno vašej domény alebo pracovnej skupiny Windows." + +#: ../lib/modules/freeRadius.inc:82 +msgid "The net mask for the IP address." +msgstr "Sieťová maska pre adresy IP." + +#: ../lib/modules/dhcp_settings.inc:180 +msgid "" +"The net mask is derived from the subnet mask. LAM will calculate it " +"automatically." +msgstr "" +"Sieťová maska je odvodená od masky podsiete. LAM ju vypočíta automaticky." + +#: ../lib/modules/freeRadius.inc:244 ../lib/modules/freeRadius.inc:245 +msgid "The net mask is invalid." +msgstr "Sieťová maska nie je platná." + +#: ../lib/modules.inc:1168 +msgid "" +"The new password will be stored in the directory after you save this account." +msgstr "Nové heslo bude v adresári uložené po uložení tohoto účtu." + +#: ../lib/modules/asteriskAccount.inc:231 +msgid "The number of milliseconds for the last qualify." +msgstr "Počet milisekúnd poslednej kontroly." + +#: ../help/help.inc:115 +msgid "" +"The number of users who may login to LAM is restricted. This can be either a " +"fixed list of DNs or LAM can search LDAP to find a DN which matches the " +"given user name." +msgstr "" +"Počet používateľov, ktorí sa môžu prihlásiť do LAM je obmedzený. Môže to byť " +"buď pevný zoznam DN alebo môže LAM prehľadať LDAP a nájsť DN, ktoré vyhovujú " +"zadanému používateľskému menu." + +#: ../templates/tests/schemaTest.php:114 +#, php-format +msgid "The object class %s is not supported by your LDAP server." +msgstr "Trieda objektu %s nie je vašim serverom LDAP podporovaná." + +#: ../lib/modules/windowsUser.inc:132 ../lib/modules/inetOrgPerson.inc:861 +#: ../lib/modules/inetOrgPerson.inc:865 +msgid "The office name of the user (e.g. YourCompany, Human Resources)." +msgstr "Oddelenie používateľa (napr. VašaSpoločnosť, Ľudské zdroje)." + +#: ../lib/modules.inc:1767 +msgid "The operation was stopped because of the above errors." +msgstr "Operácia bola zastavená, kvôli uvedeným chybám." + +#: ../lib/modules/asteriskVoicemail.inc:211 +#: ../lib/modules/asteriskVoicemail.inc:212 +msgid "The options have bad format." +msgstr "Voľby má zlý formát." + +#: ../lib/modules/device.inc:63 ../lib/modules/device.inc:67 +msgid "The owners of this device." +msgstr "Vlastníci tohoto zariadenia." + +#: ../lib/modules/groupOfNames.inc:69 ../lib/modules/groupOfNames.inc:73 +msgid "The owners of this group." +msgstr "Vlastníci tejto skupiny." + +#: ../lib/modules/asteriskVoicemail.inc:210 +msgid "The pager number has bad format." +msgstr "Číslo pagera má zlý formát." + +#: ../lib/modules/heimdalKerberos.inc:114 +msgid "The parameter @@password@@ will be replaced with the new password." +msgstr "Parameter @@password@@ bude nahradený novým heslom." + +#: ../lib/modules/heimdalKerberos.inc:113 +msgid "The parameter @@principal@@ will be replaced with the principal name." +msgstr "Parameter @@principal@@ bude nahradený menom principalu." + +#: ../templates/config/confsave.php:71 ../templates/config/confmain.php:73 +#: ../templates/config/mainlogin.php:59 +msgid "The password is invalid! Please try again." +msgstr "Neplatné heslo! Prosím, skúste znova." + +#: ../lib/security.inc:301 +#, php-format +msgid "The password is too short. You have to enter at least %s characters." +msgstr "Heslo je príliš krátke. Musíte zadať aspoň %s znakov." + +#: ../lib/security.inc:353 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s different character " +"classes (upper/lower case, numbers and symbols)." +msgstr "" +"Heslo je príliš jednoduché. Musíte zadať aspoň %s rôznych znakových tried " +"(veľké/malé písmená, číslice a špeciálne znaky)." + +#: ../lib/security.inc:324 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s lower case " +"characters." +msgstr "Heslo je príliš jednoduché. Musíte zadať aspoň %s malých písmen." + +#: ../lib/security.inc:332 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s numeric characters." +msgstr "Heslo je príliš jednoduché. Musíte zadať aspoň %s číslic." + +#: ../lib/security.inc:336 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s symbolic characters." +msgstr "Heslo je príliš jednoduché. Musíte zadať aspoň %s špeciálnych znakov." + +#: ../lib/security.inc:328 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s upper case " +"characters." +msgstr "Heslo je príliš jednoduché. Musíte zadať aspoň %s veľkých písmen." + +#: ../lib/modules/imapAccess.inc:86 +msgid "" +"The password of your IMAP admin user. The login name for the IMAP admin user " +"is stored in the LAM server profile." +msgstr "" +"Heslo administrátora IMAP. Prihlasovacie meno administrátora IMAP je uložené " +"v profile servera LAM." + +#: ../templates/lists/changePassword.php:529 ../lib/modules.inc:1111 +msgid "The password was set to:" +msgstr "Heslo bolo nastavené na:" + +#: ../lib/modules/windowsUser.inc:140 ../lib/modules/inetOrgPerson.inc:742 +#: ../lib/modules/inetOrgPerson.inc:746 +msgid "The post office box of the user's address." +msgstr "P.O. box adresy používateľa." + +#: ../lib/modules/windowsUser.inc:136 ../lib/modules/inetOrgPerson.inc:750 +#: ../lib/modules/inetOrgPerson.inc:754 +msgid "The postal code of the user's address." +msgstr "Poštové smerovacie číslo adresy používateľa." + +#: ../lib/modules/posixAccount.inc:430 +msgid "" +"The primary group for this account. You can insert a GID number or a group " +"name." +msgstr "" +"Primárna skupina tohoto účtu. Môžete zadať číslo GID alebo meno skupiny." + +#: ../lib/modules/posixAccount.inc:513 +msgid "The primary group the host should be member of." +msgstr "Primárna skupina stroja, ktorej má byť členom." + +#: ../lib/modules/posixAccount.inc:475 +msgid "The primary group the user should be member of." +msgstr "Primárna ksupina používateľa, ktorej má byť členom." + +#: ../lib/modules/asteriskExtension.inc:100 +msgid "" +"The priority is a sequence number used to order the execution of commands. " +"Commands are executed beginning with the lowest sequence number." +msgstr "" +"Priorita je číslo, použité na zostavenie poradia vykonania príkazov. Príkazy " +"s nižším číslom sú vykonané skôr." + +#: ../lib/modules/range.inc:416 +msgid "The range conflicts with another range." +msgstr "Rozsah je v konflikte s iným rozsahom." + +#: ../lib/modules/range.inc:412 +msgid "The range end needs to be greater than the range start." +msgstr "Koniec rozsahu musí byť väčší ako jeho začiatok." + +#: ../lib/modules/inetOrgPerson.inc:829 +msgid "The room number of the employee's office." +msgstr "Číslo miestnosti kancelárie zamestnanca." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +msgid "The scope in which to search" +msgstr "Rozsah, v ktorom hľadať" + +#: ../lib/modules/customScripts.inc:57 ../lib/modules/customScripts.inc:70 +msgid "" +"The scripts will be run on your web server in the user context of your web " +"server (e.g. apache/www-data)." +msgstr "" +"Skripty budú spustené na vašom webovom servere, s právami používateľa vášho " +"webového servera (napr. apache/www-data)." + +#: ../lib/modules/selfRegistration.inc:120 +msgid "" +"The second option is the LDAP attribute name and the third one is a " +"descriptive label for it." +msgstr "Druhá voľba je názov atribútu LDAP a tretia je jeho popisná menovka." + +#: ../lib/modules/asteriskAccount.inc:235 ../lib/modules/qmailUser.inc:189 +#: ../lib/modules/zarafaGroup.inc:103 ../lib/modules/sambaSamAccount.inc:387 +#: ../lib/modules/posixAccount.inc:406 ../lib/modules/zarafaUser.inc:126 +#: ../lib/modules/inetOrgPerson.inc:877 ../lib/modules/freeRadius.inc:106 +#: ../lib/modules/zarafaServer.inc:82 ../lib/modules/qmailGroup.inc:113 +#: ../lib/modules/windowsGroup.inc:103 +msgid "" +"The selected options will not be managed inside LAM. You can use this to " +"reduce the number of displayed input fields." +msgstr "" +"Zvolené voľby nebudú v LAM spravované. Môžete to použiť na zmenšenie počtu " +"zobrazených vstupných polí." + +#: ../templates/3rdParty/pla/htdocs/copy.php:38 +msgid "The source and destination DN are the same." +msgstr "Zdrojové a cieľové DN sú rovnaké." + +#: ../lib/modules/range.inc:86 +msgid "The starting IP address of the range." +msgstr "Počiatočná adresa IP je rozsahu." + +#: ../lib/modules/windowsUser.inc:148 ../lib/modules/inetOrgPerson.inc:849 +#: ../lib/modules/inetOrgPerson.inc:853 +msgid "The state where the user resides or works." +msgstr "Územný celok, v ktorom používateľ sídli alebo pracuje." + +#: ../templates/pdfedit/pdfpage.php:117 +msgid "The static text must contain at least one character." +msgstr "Statický text musí obsahovať aspoň jeden znak." + +#: ../lib/modules/windowsUser.inc:152 ../lib/modules/inetOrgPerson.inc:734 +#: ../lib/modules/inetOrgPerson.inc:738 +msgid "The street name of the user's address." +msgstr "Meno ulice adresy používateľa." + +#: ../help/help.inc:221 +msgid "The subject of all password mails." +msgstr "Predmet všetkých emailov s heslami." + +#: ../lib/modules/selfRegistration.inc:136 +#: ../lib/modules/passwordSelfReset.inc:109 +msgid "The subject of the mails." +msgstr "Predmet emailov." + +#: ../lib/modules/dhcp_settings.inc:291 +msgid "The subnet is already in use." +msgstr "Podsieť už je použitá." + +#: ../lib/modules/dhcp_settings.inc:292 ../lib/modules/dhcp_settings.inc:293 +msgid "The subnet is invalid." +msgstr "Podsieť nie je platná." + +#: ../lib/modules/dhcp_settings.inc:305 ../lib/modules/dhcp_settings.inc:306 +msgid "The subnet mask is invalid." +msgstr "Maska podsiete nie je platná." + +#: ../lib/modules/dhcp_settings.inc:176 +msgid "The subnet mask of the network." +msgstr "Maska podsiete danej siete." + +#: ../lib/modules/sudoRole.inc:80 ../lib/modules/sudoRole.inc:108 +msgid "The sudo commands are executed with these group memberships." +msgstr "Príkazy sudo sú spúšťané členmi tejto skupiny." + +#: ../lib/modules/sudoRole.inc:76 ../lib/modules/sudoRole.inc:103 +msgid "The sudo commands may be run as these users (e.g. root)." +msgstr "" +"Príkazy sudo môžu byť spustené s právami týchto používateľov (napr. root)." + +#: ../templates/3rdParty/pla/lib/import_functions.php:396 +msgid "The url attribute value should begin with file://." +msgstr "Hodnota atribútu URL musí začínať file://." + +#: ../lib/modules/zarafaUser.inc:106 +msgid "The user account is non-active and login is disabled." +msgstr "Používateľský účet nie je aktívny a prihlásenie je zakázané." + +#: ../lib/modules/windowsUser.inc:181 +msgid "The user must log on using a smart card." +msgstr "Používateľ sa musí prihlásiť pomocou karty smart." + +#: ../lib/modules/zarafaUser.inc:86 +msgid "The user will get warned when his mailbox reaches this limit." +msgstr "" +"Používateľ bude upozornený, keď jeho emailová schránka dosiahne tento limit." + +#: ../lib/modules/qmailUser.inc:197 +msgid "The user's alternate email address." +msgstr "Alternatívna emailová adresa používateľa." + +#: ../lib/modules/asteriskAccount.inc:127 +msgid "The user's call groups." +msgstr "Skupiny volajúcich používateľa." + +#: ../lib/modules/qmailUser.inc:193 ../lib/modules/windowsUser.inc:120 +#: ../lib/modules/inetOrgPerson.inc:790 ../lib/modules/inetOrgPerson.inc:794 +msgid "The user's email address." +msgstr "Emailové adresy používateľa." + +#: ../lib/modules/inetOrgPerson.inc:782 ../lib/modules/inetOrgPerson.inc:786 +msgid "The user's fax number." +msgstr "Číslo faxu používateľa." + +#: ../lib/modules/inetOrgPerson.inc:774 ../lib/modules/inetOrgPerson.inc:778 +msgid "The user's mobile number." +msgstr "Číslo mobilu používateľa." + +#: ../lib/modules/inetOrgPerson.inc:893 ../lib/modules/inetOrgPerson.inc:897 +msgid "The user's organisation name." +msgstr "Organizačné meno používateľa." + +#: ../lib/modules/inetOrgPerson.inc:885 ../lib/modules/inetOrgPerson.inc:889 +msgid "The user's organisational unit." +msgstr "Organizačná jednotka používateľa." + +#: ../lib/modules/inetOrgPerson.inc:821 ../lib/modules/inetOrgPerson.inc:825 +msgid "The user's private telephone number." +msgstr "Súkromné telefónne číslo používateľa." + +#: ../lib/modules/windowsUser.inc:156 ../lib/modules/inetOrgPerson.inc:766 +#: ../lib/modules/inetOrgPerson.inc:770 +msgid "The user's telephone number." +msgstr "Telefónne číslo používateľa." + +#: ../lib/modules/inetOrgPerson.inc:901 +msgid "The user's unique employee number." +msgstr "Jedinečné osobné číslo používateľa." + +#: ../lib/modules/windowsUser.inc:168 ../lib/modules/inetOrgPerson.inc:801 +#: ../lib/modules/inetOrgPerson.inc:805 +msgid "The user's web site (e.g. http://www.company.com)." +msgstr "Webová stránka používateľa (napr. http://www.spolocnost.sk)." + +#: ../lib/modules/sambaSamAccount.inc:122 +msgid "" +"The value for the Samba 3 field \"User can/must change password\" needs to " +"be a number." +msgstr "" +"Hodnota poľa Samba 3 „Používateľ môže/musí zmeniť heslo” musí byť číslo." + +#: ../lib/modules/puppetClient.inc:181 ../lib/modules/puppetClient.inc:182 +msgid "The variables may only contain ASCII characters." +msgstr "Premenné môžu obsahovať len znaky ASCII." + +#: ../lib/modules/asteriskVoicemail.inc:213 +#: ../lib/modules/asteriskVoicemail.inc:214 +msgid "The voicemail context name is invalid." +msgstr "Meno hlasovej schránky nie je platné." + +#: ../templates/3rdParty/pla/htdocs/create.php:42 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:36 +msgid "The were no attributes marked as an RDN attribute." +msgstr "Žiadne atribúty neboli označené ako atribút RDN." + +#: ../lib/modules/selfRegistration.inc:110 +msgid "The wildcard for the account creation link is @@creationLink@@." +msgstr "Zástupný reťazec odkazu vytvorenia účtu je @@creationLink@@." + +#: ../lib/modules/passwordSelfReset.inc:115 ../help/help.inc:226 +msgid "The wildcard for the new password is @@newPassword@@." +msgstr "Zástupný reťazec hesla je @@newPassword@@." + +#: ../lib/modules/passwordSelfReset.inc:125 +msgid "The wildcard for the reset link is @@resetLink@@." +msgstr "Zástupný reťazec odkazu obnovenia je @@newPassword@@." + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:60 +#, php-format +msgid "There are %s members in group %s:" +msgstr "%s členov skupiny %s:" + +#: ../lib/modules/posixGroup.inc:543 +msgid "There are still users who have this group as their primary group." +msgstr "" +"Stále existujú používatelia, ktorí majú túto skupinu ako svoju primárnu " +"skupinu." + +#: ../lib/modules/sambaGroupMapping.inc:434 +msgid "There can be only one group of this type." +msgstr "Môže existovať len jedna skupina tohoto typu." + +#: ../lib/modules/asteriskAccount.inc:619 +msgid "There is already another user with this caller ID." +msgstr "Už existuje iný používateľ s týmto ID volajúceho." + +#: ../lib/modules/asteriskVoicemail.inc:202 +msgid "There is already another user with this mailbox name." +msgstr "Už existuje iný používateľ s takým menom poštovej schránky." + +#: ../templates/massDoUpload.php:258 +msgid "There were errors while uploading:" +msgstr "Pri nahrávaní sa vyskytli chyby:" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:80 +#, php-format +msgid "There will be %s updates done with this mass update" +msgstr "Pri hromadnej aktualizácii bude urobených %s aktualizácií" + +#: ../lib/modules/posixGroup.inc:440 +msgid "" +"These are the minimum and maximum numbers to use for group IDs when creating " +"new group accounts. New group accounts will always get the highest number in " +"use plus one." +msgstr "" +"Minimálne a maximálne hodnoty pre ID skupiny sú použité pri vytváraní nových " +"skupín. Nové skupiny vždy dostanú najvyššie číslo plus jedna." + +#: ../lib/modules/posixAccount.inc:418 +msgid "" +"These are the minimum and maximum numbers to use for machine IDs when " +"creating new accounts for hosts. The range should be different from that of " +"users. New host accounts will always get the highest number in use plus one." +msgstr "" +"Minimálne a maximálne hodnoty pre ID účtov strojov sú použité pri vytváraní " +"nových strojov. Rozsah musí byť iný ako ten pre používateľov. Nové účty " +"strojov vždy dostanú najvyššie číslo plus jedna." + +#: ../lib/modules/posixAccount.inc:414 +msgid "" +"These are the minimum and maximum numbers to use for user IDs when creating " +"new user accounts. The range should be different from that of machines. New " +"user accounts will always get the highest number in use plus one." +msgstr "" +"Minimálne a maximálne hodnoty pre ID účtov používateľov sú použité pri " +"vytváraní nových používateľských účtov. Rozsah musí byť iný ako ten pre " +"stroje. Nové účty používateľov vždy dostanú najvyššie číslo plus jedna." + +#: ../lib/modules/inetOrgPerson.inc:913 +msgid "These are the user's certificates." +msgstr "Tieto sú certifikáty používateľa." + +#: ../lib/modules/puppetClient.inc:106 +msgid "" +"These classes will be available as autocompletion hints when adding new " +"classes." +msgstr "" +"Tieto triedy budú dostupné ako návrhy automatického dopĺňania pri pridávaní " +"nových tried." + +#: ../lib/modules/nisnetgroup.inc:89 ../lib/modules/nisnetgroup.inc:93 +msgid "" +"These entries specify the members of the netgroup. You can limit the set to " +"a host name, a user name, a domain name or any combination of them." +msgstr "" +"Tieto položky udávajú členov sieťovej skupiny. Môžete ich obmedziť pomocou " +"mena stroja, mena používateľa, mena domény alebo ich ľubovoľnej kombinácie." + +#: ../lib/modules/puppetClient.inc:110 +msgid "" +"These environments will be available as autocompletion hints when setting " +"the environment." +msgstr "" +"Tieto prostredia budú dostupné ako návrhy automatického dopĺňania pri " +"nastavovaní prostredia." + +#: ../lib/modules/asteriskExtension.inc:116 +msgid "" +"These options change the list of potential extension owners below. You can " +"select to show Asterisk accounts or all users. It is also possible to search " +"the tree suffix if you have users which are not in the standard user suffix." +msgstr "" +"Tieto voľby menia zoznam potencionálnych vlastníkov rozšírení. Môžete si " +"zvoliť zobrazenie účtov Asterisk alebo všetkých používateľov. Je možné aj " +"prehľadávať príponu stromu, ak máte používateľov, ktorí nemajú štandardnú " +"príponu používateľov." + +#: ../lib/modules/authorizedServiceObject.inc:87 +msgid "These services will show up as hint if you enter a new service." +msgstr "Tieto služby sa zobrazia ako tip, ak zadáte novú službu." + +#: ../lib/modules/posixAccount.inc:106 +msgid "" +"This GID number is invalid! Please provide either a number or a group name." +msgstr "Číslo GID nie je platné! Prosím, zdajte číslo alebo meno skupiny." + +#: ../help/help.inc:213 +msgid "" +"This HTML code will be placed on top of all self service pages. E.g. you can " +"use this to place your custom logo. Any HTML code is permitted." +msgstr "" +"Tento kód HTML bude umiestnený na začiatku všetkých samoobslužných stránok. " +"Môžete ho použiť, napríklad, na umiestnenie vlastného loga. Dovolený je " +"akýkoľvek kód HTML." + +#: ../lib/modules/fixed_ip.inc:367 +msgid "This PC name already exists." +msgstr "Toto meno stroja už existuje." + +#: ../lib/modules/kolabUser.inc:219 +msgid "This account is marked for deletion." +msgstr "Tento účet je označený na odstránenie." + +#: ../lib/modules/sambaSamAccount.inc:317 +msgid "" +"This allows you to define this account as a special user like administrator " +"or guest." +msgstr "" +"Týmto môžete účet definovať ako špeciálny účet, ako administrátor alebo hosť." + +#: ../templates/3rdParty/pla/lib/PageRender.php:376 +msgid "This attribute is not defined in the LDAP schema" +msgstr "Tento atribút nie je definovaný v schéme LDAP" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1988 +msgid "This attribute is required" +msgstr "Tento atribút je povinný" + +#: ../templates/3rdParty/pla/lib/PageRender.php:458 +msgid "This attribute is required for the RDN." +msgstr "Tento atribút je povinný pre RDN" + +#: ../lib/modules/inetOrgPerson.inc:857 +msgid "This can be used to specify if the user has a car license." +msgstr "Toto môžete použiť na zadanie, či používateľ vlastní vodičský preukaz." + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:64 +msgid "This change requires to add new attributes." +msgstr "Táto zmena vyžaduje pridanie nových atribútov." + +#: ../help/help.inc:131 +msgid "This changes the password of the selected profile." +msgstr "Zmení heslo zvoleného profilu." + +#: ../help/help.inc:133 +msgid "This changes the profile which is selected by default at login." +msgstr "Zmení profil, ktorý je predvolene zvolený pri prihlásený." + +#: ../templates/massBuildAccounts.php:177 +msgid "" +"This column is defined to include unique entries but duplicates were found:" +msgstr "" +"Tento stĺpec je definovaný ako jedinečný, ale boli nájdené duplicitné " +"hodnoty:" + +#: ../lib/modules/heimdalKerberos.inc:112 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -K /etc/heimdal/apache.keytab -p " +"admin/admin passwd -p @@password@@ @@principal@@\"." +msgstr "" +"Tento príkaz bude volaný na zmenu hesla Kerberos. Zvyčajne by mal vyzerať " +"podobne ako „/usr/sbin/kadmin -K /etc/heimdal/apache.keytab -p admin/admin " +"passwd -p @@password@@ @@principal@@”." + +#: ../lib/modules/mitKerberos.inc:142 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -k -t /home/www-data/apache.keytab " +"-p realm/changepwd\"." +msgstr "" +"Tento príkaz bude volaný na zmenu hesla Kerberos. Zvyčajne by mal vyzerať " +"podobne ako „/usr/sbin/kadmin -k -t /home/www-data/apache.keytab -p realm/" +"changepwd”." + +#: ../lib/modules/customScripts.inc:112 +msgid "This custom script setting includes an invalid account type." +msgstr "Nastavenia tohoto vlastného skriptu obsahujú neplatný typ účtu." + +#: ../lib/modules/customScripts.inc:114 ../lib/modules/customScripts.inc:116 +msgid "This custom script setting includes an invalid action type." +msgstr "Nastavenia tohoto vlastného skriptu obsahujú neplatný typ akcie." + +#: ../help/help.inc:96 +msgid "" +"This defines the language of the login window and sets this language as the " +"default language. Users can change the language at login." +msgstr "" +"Definuje jazyk prihlasovacieho okna nastavuje tento jazyk ako predvolený " +"jazyk. Používatelia môžu zmeniť jazyk pri prihlásení." + +#: ../help/help.inc:113 +msgid "" +"This defines the rights for the home directories which are created by " +"lamdaemon." +msgstr "" +"Definuje práva domovských adresárov, ktoré sú vytvárané pomocou lamdaemon." + +#: ../lib/modules/asteriskExtension.inc:88 +msgid "" +"This defines what application Asterisk has to start for this user (e.g. SIP/" +"user1)." +msgstr "" +"Definuje, ktorá aplikácia Asterisk má byť pre tohoto používateľa spustená " +"(napr. SIP/pouzivatel1)." + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:85 +#, php-format +msgid "This deletion request also includes %s child entries." +msgstr "Tento požiadavok na odstránenie zahŕňa aj %s vnorených položiek." + +#: ../lib/modules/device.inc:71 +msgid "This describes the location of the device." +msgstr "Popisuje umiestnenie zariadenia." + +#: ../lib/modules/ipHost.inc:67 +msgid "This describes the location of the host." +msgstr "Popisuje umiestnenie stroja." + +#: ../lib/modules/windowsUser.inc:116 ../lib/modules/inetOrgPerson.inc:841 +#: ../lib/modules/inetOrgPerson.inc:845 +msgid "This describes the location of the user." +msgstr "Popisuje umiestnenie používateľa." + +#: ../lib/lamPDF.inc:126 +msgid "This document was automatically created by LDAP Account Manager" +msgstr "Tento dokument bol vytvorený automaticky pomocou LDAP Account Manager" + +#: ../help/help.inc:230 +msgid "" +"This email address will be set as reply-to address of all password mails." +msgstr "" +"Táto emailová adresa bude použitá ako adresa na odpovede (reply-to) všetkých " +"emailov s heslami." + +#: ../help/help.inc:219 +msgid "" +"This email address will be set as sender address of all password mails. If " +"empty the system default (php.ini) will be used." +msgstr "" +"Táto emailová adresa bude použitá ako adresa odosielateľa všetkých emailov s " +"heslami. Ak necháte prázdne, bude použitá predvolená adresa systému (php." +"ini)." + +#: ../lib/modules/selfRegistration.inc:132 +#: ../lib/modules/passwordSelfReset.inc:105 +msgid "" +"This email address will be set as sender address of the mails. If empty the " +"system default (php.ini) will be used." +msgstr "" +"Táto emailová adresa bude použitá ako adresa odosielateľa emailov. Ak " +"necháte prázdne, bude použitá predvolená adresa systému (php.ini)." + +#: ../lib/modules/passwordSelfReset.inc:85 +msgid "This enables the password self reset function." +msgstr "Zapína funkciu obnovenia hesla." + +#: ../lib/modules/selfRegistration.inc:93 +msgid "This enables the self registration function." +msgstr "Zapína funkciu samoregistrácie hesla." + +#: ../templates/3rdParty/pla/htdocs/compare.php:79 +msgid "This entry has no attributes" +msgstr "Táto položka nemá atribúty" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:57 +#, php-format +msgid "This entry is the root of a sub-tree containing %s entries." +msgstr "Táto položka je koreň podstromu, ktorý obsahuje %s položiek." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:47 +#: ../lib/modules/selfRegistration.inc:455 +msgid "This field is required." +msgstr "Toto pole je povinné." + +#: ../lib/modules/posixAccount.inc:108 +msgid "This gecos value is invalid!" +msgstr "Hodnota gecos nie je platná!" + +#: ../lib/modules/ipHost.inc:63 +msgid "This is a comma separated list of IP addresses." +msgstr "Čiarkou oddelený zoznam adries IP." + +#: ../lib/modules/ieee802device.inc:66 +msgid "This is a comma separated list of MAC addresses." +msgstr "Čiarkou oddelený zoznam adries MAC." + +#: ../lib/modules/kolabUser.inc:118 +msgid "This is a comma separated list of delegates." +msgstr "Čiarkou oddelený zoznam delegátov." + +#: ../lib/modules/kolabUser.inc:126 +msgid "This is a comma separated list of eMail aliases." +msgstr "Čiarkou oddelený zoznam emailových aliasov." + +#: ../lib/modules/kolabUser.inc:110 +msgid "This is a comma separated list of invitation policies." +msgstr "Čiarkou oddelený zoznam politík pozvánok." + +#: ../lib/modules/nisMailAlias.inc:79 +msgid "This is a comma separated list of recipients." +msgstr "Čiarkou oddelený zoznam príjemcov." + +#: ../lib/modules/inetLocalMailRecipient.inc:70 +msgid "This is a comma separated list of the users public email addresses." +msgstr "Čiarkou oddelený zoznam verejných emailových adries používateľa." + +#: ../help/help.inc:147 +msgid "" +"This is a list of IP addresses from hosts who may access LAM. You can use \"*" +"\" as wildcard (e.g. 192.168.0.*)." +msgstr "" +"Zoznam adries IP, z ktorých možno pristupovať k LAM. Môžete použiť zástupný " +"znak „*” (napr. 192.168.0.*)." + +#: ../lib/modules/selfRegistration.inc:118 +msgid "" +"This is a list of additional attributes that the user can enter. Please note " +"that user name, password and email address are mandatory anyway and need not " +"be specified." +msgstr "" +"Zoznam doplnkových atribútov, ktoré môže používateľ zadať. Prosím, " +"pamätajte, že používateľské meno, heslo a emailová adresa sú i tak záväzné a " +"netreba ich zadávať." + +#: ../lib/modules/windowsGroup.inc:131 ../lib/modules/groupOfNames.inc:77 +msgid "This is a list of members of this group." +msgstr "Zoznam členov tejto skupiny." + +#: ../lib/modules/windowsGroup.inc:135 ../lib/modules/groupOfNames.inc:81 +msgid "" +"This is a list of members of this group. Multiple members are separated by " +"semicolons." +msgstr "" +"Zoznam členov tejto skupiny. Viacerí členovia môžu byť oddelení bodkočiarkou." + +#: ../lib/modules/eduPerson.inc:95 +msgid "This is a list of nick names for this user." +msgstr "Zoznam prezývok tohoto používateľa." + +#: ../lib/modules/selfRegistration.inc:114 +msgid "" +"This is a list of object classes that are used to build the new user " +"accounts. Please enter one object class in each line." +msgstr "" +"Zoznam tried objektov, ktoré sú použité na vytvorenie nového používateľského " +"účtu. Prosím, zadajte jednu triedu objektov na riadok." + +#: ../help/help.inc:109 +msgid "" +"This is a list of the servers where the lamdaemon scripts are stored. LDAP " +"Account Manager will make a SSH connection to the servers with the user name " +"and password provided at login. Multiple servers are separated by " +"semicolons. You can append a descriptive name after a colon." +msgstr "" +"Zoznam serverov, kde sú uložené skripty lamdaemon. LDAP Account Manager bude " +"vytvárať spojenia SSH na servery s používateľským menom a heslom poskytnutým " +"pri prihlásení. Viacero serverov oddeľujte bodkočiarkami. Za čiarkou môžete " +"poskytnúť popisné meno." + +#: ../help/help.inc:89 +msgid "" +"This is a list of valid DN entries of all users that are allowed to login to " +"LDAP Account Manager. Please enter one DN per line." +msgstr "" +"Zoznam platných položiek DN všetkých používateľov, ktorým je dovolené " +"prihlásiť sa do LDAP Account Manager. Prosím, zadajte jedno DN na riadok." + +#: ../templates/3rdParty/pla/lib/PageRender.php:881 +msgid "This is a structural ObjectClass and cannot be removed." +msgstr "Je to štrukturálna ObjectClass a nemôže byť odstránená." + +#: ../lib/modules/nisObject.inc:67 ../lib/modules/automount.inc:66 +msgid "This is an optional description for this entry." +msgstr "Voliteľný popis tejto položky." + +#: ../help/help.inc:201 +msgid "" +"This is needed to find the LDAP DNs of your user accounts. E.g. if you use " +"\"uid\" and your user inputs \"miller\" then LAM will search for an account " +"with uid=miller." +msgstr "" +"Je to potrebné na nájdenie LDAP DN vašich používateľských účtov. Napr., ak " +"použijete „uid” a váš používateľ zadá „jhrasko”, bude LAM hľadať účet s " +"uid=jhrasko." + +#: ../lib/modules/zarafaDynamicGroup.inc:192 ../lib/modules/ipHost.inc:110 +#: ../lib/modules/posixGroup.inc:544 ../lib/modules/device.inc:135 +#: ../lib/modules/eduPerson.inc:239 ../lib/modules/eduPerson.inc:241 +#: ../lib/modules/zarafaAddressList.inc:163 +#: ../lib/modules/posixAccount.inc:113 ../lib/modules/inetOrgPerson.inc:95 +#: ../lib/modules/aliasEntry.inc:79 ../lib/modules/qmailGroup.inc:426 +#: ../lib/modules/qmailGroup.inc:427 ../lib/modules/qmailGroup.inc:428 +msgid "This is not a valid DN!" +msgstr "Toto nie je platné DN!" + +#: ../lib/modules/sambaSamAccount.inc:109 +msgid "This is not a valid RID number!" +msgstr "Toto nie je platné číslo RID!" + +#: ../lib/modules/sambaGroupMapping.inc:436 +msgid "This is not a valid Samba 3 group type!" +msgstr "Toto nie je platný typ skupiny Samba 3!" + +#: ../lib/modules/eduPerson.inc:243 +msgid "This is not a valid list of DNs!" +msgstr "Toto nie je platný zoznam DN!" + +#: ../lib/modules/qmailGroup.inc:429 ../lib/modules/qmailGroup.inc:430 +msgid "This is not a valid option." +msgstr "Toto nie je platná voľba." + +#: ../lib/modules/inetLocalMailRecipient.inc:66 +msgid "This is one of the users public email addresses." +msgstr "Jedna z verejných emailových adries používateľa." + +#: ../lib/modules/nisMailAlias.inc:75 +msgid "This is one recipient for this alias." +msgstr "jeden príjemca tohoto aliasu." + +#: ../lib/modules/asteriskAccount.inc:95 +msgid "" +"This is the ID of the user in the Asterisk database. It may contain digits " +"and letters (e.g. user1 or 200134)." +msgstr "" +"ID používateľa v databáze Asterisk. Môže obsahovať číslice a písmena (napr. " +"pouzivatel1 alebo 200134)." + +#: ../lib/modules/freeRadius.inc:78 +msgid "This is the IP address for the user (e.g. 123.123.123.123)." +msgstr "Adresa IP používateľa (napr. 123.123.123.123)." + +#: ../lib/modules/ipHost.inc:59 +msgid "" +"This is the IP address of the network card of the device (e.g. " +"123.123.123.123)." +msgstr "Adresa IP sieťovej karty zariadenia (napr. 123.123.123.123)." + +#: ../lib/modules/ipHost.inc:71 +msgid "This is the LDAP DN of the host's manager." +msgstr "LDAP DN správcu strojov." + +#: ../lib/modules/inetOrgPerson.inc:726 ../lib/modules/inetOrgPerson.inc:730 +msgid "" +"This is the LDAP DN of the user's manager. Use this property to represent " +"hierarchies in your company." +msgstr "" +"LDAP DN správcu používateľov. Použite túto vlastnosť na reprezentáciu " +"hierarchií vo vašej spoločnosti." + +#: ../lib/modules/customFields.inc:101 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an activated " +"state. The value is case-insensitive." +msgstr "" +"Hodnota atribútu LDAP, ktorá nastavuje zaškrtávacie políčko do " +"„zaškrtnutého” stavu. Hodnota je citlivá na veľkosť písmen." + +#: ../lib/modules/customFields.inc:105 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an deactivated " +"state. The value is case-insensitive." +msgstr "" +"Hodnota atribútu LDAP, ktorá nastavuje zaškrtávacie políčko do " +"„nezaškrtnutého” stavu. Hodnota je citlivá na veľkosť písmen." + +#: ../lib/modules/ieee802device.inc:62 +msgid "" +"This is the MAC address of the network card of the device (e.g. 00:01:02:DE:" +"EF:18)." +msgstr "Adresa MAC sieťovej karty zariadenia (napr. 00:01:02:DE:EF:18)." + +#: ../lib/modules/sambaSamAccount.inc:314 +msgid "This is the SID of the user's primary Windows group." +msgstr "SID primárnej skupiny Windows používateľa." + +#: ../help/help.inc:98 +msgid "" +"This is the absolute path to an external script for setting quotas and " +"creating home directories." +msgstr "" +"Absolútna cesta k externému skriptu na nastavovanie kvót a vytváranie " +"domovských adresárov." + +#: ../lib/modules/mitKerberos.inc:150 ../lib/modules/heimdalKerberos.inc:118 +msgid "This is the account's Kerberos password." +msgstr "Heslo účtu Kerberos." + +#: ../lib/modules/sambaSamAccount.inc:252 +msgid "This is the account's Windows password." +msgstr "Heslo účtu Windows." + +#: ../lib/modules/sambaSamAccount.inc:249 ../lib/modules/windowsUser.inc:104 +msgid "This is the account's full name on Windows systems." +msgstr "Úplné meno účtu v systémoch Windows." + +#: ../lib/modules/ppolicyUser.inc:49 +msgid "This is the active password policy for this account." +msgstr "Aktívna politika hesla tohoto účtu." + +#: ../lib/modules/passwordSelfReset.inc:77 +msgid "" +"This is the answer to the security question. It allows users to reset their " +"password." +msgstr "" +"Odpoveď na bezpečnostnú otázku. Umožňuje používateľovi obnoviť svoje heslo." + +#: ../lib/modules/mitKerberos.inc:138 +msgid "This is the date of the user's last login." +msgstr "Dátum posledného prihlásenia používateľa." + +#: ../lib/modules/mitKerberos.inc:118 ../lib/modules/heimdalKerberos.inc:96 +msgid "This is the date when the account will expire." +msgstr "Dátum vypršania platnosti účtu." + +#: ../lib/modules/sambaSamAccount.inc:336 ../lib/modules/shadowAccount.inc:187 +msgid "This is the date when the account will expire. Format: DD-MM-YYYY" +msgstr "Dátum vypršania platnosti účtu. Formát: DD-MM-YYYY" + +#: ../lib/modules/mitKerberos.inc:134 +msgid "This is the date when the user changed his password." +msgstr "Dátum, kedy si používateľ zmenil svoje heslo." + +#: ../lib/modules/shadowAccount.inc:195 +msgid "" +"This is the date when the user changed his password. If you specify a " +"maximum password age then you can force a password change here." +msgstr "" +"Dátum, kedy používateľ zmenil svoje heslo. Ak zadáte maximálny vek hesla, " +"potom tu môžete vynútiť zmenu hesla." + +#: ../lib/modules/sambaGroupMapping.inc:353 +msgid "This is the group name which will be shown in Windows." +msgstr "Meno skupiny, ktoré bude zobrazené vo Windows." + +#: ../lib/modules/windowsHost.inc:76 +msgid "This is the host's location (e.g. Munich, server room 3)." +msgstr "Umiestnenie stroja (napr. Kežmarok, serverovňa 3)." + +#: ../help/help.inc:165 +msgid "" +"This is the identifier for the relative DN value. It must be one of the " +"given allowed LDAP attributes (e.g. user accounts usually use \"uid\" while " +"groups use \"cn\")." +msgstr "" +"identifikátor relatívnej hodnoty DN. Musí to byť jeden z poskytnutých " +"povolených atribútov LDAP (napr. používateľské účty zvyčajne používajú " +"„uid”, zatiaľčo skupiny používajú „cn”)." + +#: ../lib/modules/passwordSelfReset.inc:89 +msgid "" +"This is the label for the link to the password self reset. If empty \"Forgot " +"password?\" will be used." +msgstr "" +"Menovka odkazu na obnovenie hesla. Ak necháte prázdne, bude použité " +"„Zabudnuté heslo?”." + +#: ../lib/modules/selfRegistration.inc:97 +msgid "" +"This is the label for the link to the self registration. If empty \"Register " +"new account\" will be used." +msgstr "" +"Toto je menovka odkazu na samo-registráciu. Ak necháte pole prázdne, bude " +"použité „Registrovať nový účet”." + +#: ../help/help.inc:84 +msgid "" +"This is the list of attributes to show in the account list. The entries can " +"either be predefined values, \"#attribute\", or individual ones, \"attribute:" +"description\". Several entries are separated by semicolons." +msgstr "" +"Zoznam atribútov, ktoré budú zobrazené v zozname účtov. Položky môžu byť buď " +"preddefinované hodnoty „#atribút” alebo samostatné položky, \"atribút:popis" +"\". Viacero položiek treba oddeliť bodkočiarkami." + +#: ../lib/modules/posixAccount.inc:454 +msgid "This is the list of valid login shells." +msgstr "Toto je zoznam platných prihlasovacích shellov." + +#: ../lib/modules/asteriskAccount.inc:99 +msgid "" +"This is the machine id (e.g. IP address or host name) from which the user " +"can call/receive calls." +msgstr "" +"ID stroja (napr. adresa IP alebo meno stroja), z ktorého môže používateľ " +"volať/prijímať volania." + +#: ../lib/modules/inetLocalMailRecipient.inc:74 +msgid "This is the mail server for the user." +msgstr "Poštový server používateľa." + +#: ../lib/modules/qmailUser.inc:213 +msgid "This is the mailbox size limit in bytes." +msgstr "Limit veľkosti poštovej schránky v bajtoch." + +#: ../lib/modules/passwordSelfReset.inc:81 +msgid "This is the minimum length for answers to the security question." +msgstr "Minimálna dĺžka odpovedí na bezpečnostnú otázku." + +#: ../lib/modules/nisnetgroup.inc:77 ../lib/modules/groupOfNames.inc:61 +msgid "This is the name of this group." +msgstr "Meno tejto skupiny." + +#: ../lib/modules/posixAccount.inc:521 +msgid "" +"This is the natural name of the host. If empty, the host name will be used." +msgstr "" +"Prirodzený názov stroja. Ak ponecháte prázdne, bude použité meno stroja." + +#: ../lib/modules/inetOrgPerson.inc:809 +msgid "" +"This is the natural name of the user. If empty, the first and last name is " +"used." +msgstr "" +"Prirodzené meno používateľa. Ak ponecháte prázdne, bude použité krstné meno " +"a priezvisko." + +#: ../lib/modules/posixAccount.inc:499 +msgid "" +"This is the natural name of the user. If empty, the first and last name or " +"user name is used." +msgstr "" +"Prirodzené meno používateľa. Ak ponecháte prázdne, bude použité krstné meno " +"a priezvisko alebo meno používateľa." + +#: ../lib/modules/sambaDomain.inc:115 +msgid "" +"This is the number of bad logon attempts (0 - 999) before the account is " +"deactivated. 0 means unlimited attempts." +msgstr "" +"Počet neúspešných pokusov o prihlásenie (0 - 999) pred zablokovaním účtu. 0 " +"znamená neobmedzený počet pokusov." + +#: ../lib/modules/sambaDomain.inc:99 +msgid "" +"This is the number of passwords which are saved to prevent that users reuse " +"old passwords." +msgstr "" +"Počet hesiel, ktoré sú ukladané kvôli predchádzaniu opakovania starých " +"hesiel používateľom." + +#: ../help/help.inc:94 +msgid "" +"This is the number of rows to show in the account list. If more entries are " +"found the list will be split into several pages." +msgstr "" +"Počet riadkov, zobrazených v zozname účtov. Ak je nájdených viac položiek, " +"zoznam bude rozdelený na viacero stránok." + +#: ../lib/modules/sambaSamAccount.inc:345 +msgid "This is the path to the user's home directory." +msgstr "Cesta domovského adresára používateľa." + +#: ../lib/modules/sambaGroupMapping.inc:361 +msgid "" +"This is the relative ID (similar to UID on Unix) for Windows accounts. If " +"you leave this empty LAM will calculate the RID from the UID. This can be " +"either a number or the name of a special group:" +msgstr "" +"Relatívne ID (podobné UID v Unixe) pre účty Windows. Ak necháte prázdne, LAM " +"vypočíta RID z UID. Môže to byť buď číslo alebo meno špeciálnej skupiny:" + +#: ../lib/modules/sambaSamAccount.inc:320 +msgid "" +"This is the relative ID number for your Windows account. You can either " +"enter a number or one of these special accounts: " +msgstr "" +"Relatívne číslo ID vášho účtu Windows. Môže zadať buď číslo alebo jeden z " +"týchto špeciálnych účtov:" + +#: ../lib/modules/sambaSamAccount.inc:324 +msgid "" +"This is the relative ID number for your host account. If you leave this " +"empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" +"Relatívne číslo ID účtu vášho stroja. Ak necháte prázdne, LAM použije: " +"uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../lib/modules/imapAccess.inc:104 +msgid "" +"This is the separator for the mailbox path. Usually, this is \".\" but e.g. " +"Cyrus with \"unixhierarchysep\" will require \"/\"." +msgstr "" +"Oddeľovač cesty poštovej schránky. Zvyčajne to je „.”, ale napr. Cyrus s " +"„unixhierarchysep” bude vyžadovať „/”." + +#: ../help/help.inc:59 +msgid "" +"This is the server address of your LDAP server. Use ldap:// for unencrypted " +"LDAP connections or TLS encrypted connections. LDAP+SSL (LDAPS) encrypted " +"connections are specified with ldaps://. The port value is optional." +msgstr "" +"Adresa vášho servera LDAP. Použite ldap:// pre nešifrované pripojenia k LDAP " +"alebo spojenia šifrované pomocou TLS. Šifrované spojenia LDAP+SSL (LDAPS) sú " +"zadané pomocou protokolu ldaps://. Hodnota pre port je voliteľná." + +#: ../help/help.inc:78 +msgid "This is the suffix for the LDAP tree viewer." +msgstr "Prípona pre prehliadač stromu LDAP." + +#: ../help/help.inc:72 +msgid "" +"This is the suffix of the LDAP tree from where to search for LDAP entries. " +"Only entries in this subtree will be displayed in the account list. When " +"creating a new accont this will be the DN where it is saved." +msgstr "" +"Prípona stromu LDAP, v ktorej budú hľadané položky LDAP. V zozname účtov " +"budú zobrazené len položky v tomto podstrome. Pri vytváraní nového účtu, sú " +"tieto tiež ukladané do tohoto podstromu." + +#: ../lib/modules/inetLocalMailRecipient.inc:62 +msgid "This is the target email address for the user's mails." +msgstr "Cieľová emailová adresa emailov používateľa." + +#: ../lib/modules/customScripts.inc:46 ../lib/modules/uidObject.inc:53 +#: ../lib/modules/aliasEntry.inc:55 +msgid "This is the target of this alias entry." +msgstr "Cieľ tejto položky aliasu." + +#: ../lib/modules/sambaDomain.inc:127 +msgid "" +"This is the time (in minutes) for which the user may not log in after the " +"account was locked. -1 means forever." +msgstr "" +"Čas (v minútach), po ktorý sa používateľ nebude môcť prihlásiť po zamknutí " +"účtu. -1 znamená navždy." + +#: ../help/help.inc:141 +msgid "" +"This is the time (in minutes) of inactivity after which a user is " +"automatically logged off." +msgstr "" +"Čas (v minútach) neaktivity, po ktorom bude používateľ automaticky odhlásený." + +#: ../help/help.inc:102 +msgid "" +"This is the time in minutes which LAM caches its LDAP searches. Shorter " +"times will stress LDAP more but decrease the possibility that changes are " +"not identified." +msgstr "" +"Čas v minútach, počas ktorého LAM ukladá svoje hľadania LDAP vo vyrovnávacej " +"pamäti. Kratší čas viac zaťaží LDAP, ale zníži riziko nezaznamenaných zmien." + +#: ../lib/modules/sambaSamAccount.inc:339 +msgid "" +"This is the time zone of your Samba server. LAM needs this information to " +"display the logon hours correctly." +msgstr "" +"Časová zóna vášho servera Samba. LAM túto informáciu potrebuje na správne " +"zobrazenie prihlasovacích hodín." + +#: ../lib/modules/sambaSamAccount.inc:311 +msgid "This is the user's primary Windows group." +msgstr "Primárna Windows skupina používateľa." + +#: ../lib/modules/puppetClient.inc:82 +msgid "" +"This is this node's parent. All classes and variables are inherited from " +"this node." +msgstr "" +"Toto je rodičovský uzol. Všetky triedy a premenné sú dedené z tohoto uzla." + +#: ../lib/modules/asteriskAccount.inc:147 +msgid "" +"This is typically used to allow incoming calls (e.g. from FWD) while having " +"a type=friend entry defined with username and password." +msgstr "" +"Zvyčajne použité na povolenie prichádzajúcich volaní (napr. z FWD) pri " +"zachovaní definície položky type=friend s používateľským menom a heslom." + +#: ../lib/modules/zarafaUser.inc:110 +msgid "This is used to mark this account as resource." +msgstr "Slúži na označenie tohoto účtu ako zdroja." + +#: ../lib/modules/posixAccount.inc:109 +msgid "This login shell is invalid!" +msgstr "Tento prihlasovací shell nie je platný!" + +#: ../lib/modules/inetLocalMailRecipient.inc:221 +msgid "This mail address is already in use:" +msgstr "Táto emailová adresa je už používaná:" + +#: ../lib/modules/imapAccess.inc:98 +msgid "This mailbox will be created/deleted." +msgstr "Táto poštová schránka bude vytvorená/odstránená." + +#: ../lib/modules/customFields.inc:97 +msgid "" +"This message is shown when the field value does not match the validation " +"expression." +msgstr "" +"Táto správa je zobrazená, keď hodnota poľa nezodpovedá overovaciemu výrazu." + +#: ../templates/schema/schema.php:350 +msgid "This object class is obsolete." +msgstr "Táto trieda objektu je zastaraná." + +#: ../lib/modules/imapAccess.inc:77 +msgid "" +"This option allows you to disable the certificate check of your IMAP server " +"certificate. Disabling the certificate check is not recommended." +msgstr "" +"Voľba umožňuje vypnúť kontrolu certifikátu servera IMAP. Vypnutie kontroly " +"certifikátu nie je odporúčané." + +#: ../lib/modules/sambaSamAccount.inc:330 +msgid "This option defines the allowed logon hours for this account." +msgstr "Udáva povolené hodiny prihlásenia tohoto účtu." + +#: ../lib/modules/sambaSamAccount.inc:333 +msgid "" +"This option defines the allowed logon hours for this account. The format is " +"the same as for the LDAP attribute. The 24*7 hours are represented as 168 " +"bit which are saved as 21 hex (21*8 = 168) values. The first bit represents " +"Sunday 0:00 - 0:59 in GMT." +msgstr "" +"Definuje povolené hodiny prihlásenia tohoto účtu. Formát je rovnaký ako pre " +"atribút LDAP. Týždenný rozvrh (24*7 hodín) je reprezentovaný ako 168 bitov, " +"ktoré sú uložené ako 21 osmičkových (21*8 = 168) hodnôt. Prvý bit udáva " +"Nedeľu 0:00 - 0:59 (v GMT)." + +#: ../lib/modules/asteriskExtension.inc:185 +msgid "This pair of extension name and priority already exists." +msgstr "Pár meno rozšírenia a priorita už existuje." + +#: ../lib/modules/sambaSamAccount.inc:354 +msgid "This program is run after the login." +msgstr "Tento program je spustený po prihlásení." + +#: ../lib/modules/sambaSamAccount.inc:378 +msgid "This specifies the reconnect policy." +msgstr "Udáva politiku opätovného pripojenia." + +#: ../lib/modules/zarafaDynamicGroup.inc:89 +#: ../lib/modules/zarafaContact.inc:100 ../lib/modules/zarafaGroup.inc:107 +#: ../lib/modules/zarafaAddressList.inc:77 ../lib/modules/zarafaUser.inc:165 +#: ../lib/modules/zarafaServer.inc:86 +msgid "" +"This specifies the used Zarafa LDAP schema. Select LDAP for e.g. OpenLDAP, " +"Apache Directory, OpenDJ and other non-Windows based LDAP servers. If you " +"run Zarafa against Samba 4 or Active Directory please select Active " +"Directory." +msgstr "" +"Udáva Schému LDAP, ktorú používa Zarafa. Vyberte LDAP pre napr. OpenLDAP, " +"Apache Directory, OpenDJ a iné LDAP servery nezaložené na Windows. Ak Zarafa " +"baží proti Samba 4 alebo Active Directory, prosím vyberte Active Directory." + +#: ../lib/modules/sambaSamAccount.inc:375 +msgid "This specifies what to do when the client connection is broken." +msgstr "udáva čo urobiť, keď je prerušené spojenie s klientom." + +#: ../help/help.inc:205 +msgid "" +"This text is displayed on top of the self service login page. You can also " +"input HTML code here." +msgstr "" +"Text, zobrazený na začiatku samoobslužnej prihlasovacej stránky. Môžete tu " +"zadať aj kód HTML." + +#: ../help/help.inc:207 +msgid "" +"This text is displayed on top of the self service main page. You can also " +"input HTML code here." +msgstr "" +"Text, zobrazený na začiatku samoobslužnej hlavnej stránky. Môžete tu zadať " +"aj kód HTML." + +#: ../help/help.inc:203 +msgid "" +"This text should shortly describe your selected LDAP search attribute (e.g. " +"email or user name)." +msgstr "" +"Tento text by mal krátko popísať zvolený atribút hľadania LDAP (napr. email " +"alebo meno používateľa)." + +#: ../lib/modules/qmailUser.inc:233 +msgid "" +"This text will be sent as reply to all incoming mails if the delivery mode " +"is set to autoreply." +msgstr "" +"Tento text bude poslaný ako odpoveď na všetky emaily, ak je režim doručenia " +"nastavený na automatickú odpoveď." + +#: ../lib/tools/pdfEdit.inc:53 +msgid "This tool allows you to customize the PDF pages." +msgstr "Umožňuje prispôsobenie strán PDF." + +#: ../templates/lists/changePassword.php:46 +msgid "This user is not supported or was not found." +msgstr "Tento používateľ nie je podporovaný alebo nebol nájdený!" + +#: ../templates/lists/userlink.php:61 +msgid "This user was not found!" +msgstr "Tento používateľ nebol nájdený!" + +#: ../lib/modules/zarafaUser.inc:446 +msgid "This value can only be \"Room\" or \"Equipment\"." +msgstr "Táto hodnota môže byť len \"Miestnosť\" alebo \"Vybavenie\"." + +#: ../lib/modules/zarafaDynamicGroup.inc:197 +#: ../lib/modules/zarafaDynamicGroup.inc:198 +#: ../lib/modules/zarafaContact.inc:178 ../lib/modules/zarafaContact.inc:179 +#: ../lib/modules/zarafaGroup.inc:213 ../lib/modules/zarafaGroup.inc:214 +#: ../lib/modules/zarafaGroup.inc:215 ../lib/modules/zarafaAddressList.inc:164 +#: ../lib/modules/zarafaAddressList.inc:165 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 ../lib/modules/posixAccount.inc:110 +#: ../lib/modules/zarafaUser.inc:453 ../lib/modules/zarafaUser.inc:455 +#: ../lib/modules/zarafaUser.inc:456 ../lib/modules/zarafaUser.inc:457 +#: ../lib/modules/zarafaUser.inc:458 ../lib/modules/zarafaUser.inc:459 +#: ../lib/modules/ppolicyUser.inc:86 ../lib/modules/inetOrgPerson.inc:100 +#: ../lib/modules/zarafaServer.inc:172 +msgid "This value can only be \"true\" or \"false\"." +msgstr "Táto hodnota môže byť len „true” alebo „false”." + +#: ../lib/modules/zarafaUser.inc:454 +msgid "This value can only be \"true\", \"false\" or \"system\"." +msgstr "Táto hodnota môže byť len „true”, „false” alebo „system”." + +#: ../lib/modules/posixGroup.inc:542 +msgid "This value must be a list of user names separated by semicolons." +msgstr "" +"Táto hodnota musí byť zoznam používateľských mien, oddelených bodkočiarkou." + +#: ../help/help.inc:234 +msgid "This will create a new organisational unit under the selected one." +msgstr "Vytvorí novú organizačnú jednotku (OU) vo zvolenej OU." + +#: ../lib/modules/posixAccount.inc:446 +msgid "This will create the user's home directory on the specified server." +msgstr "Vytvorí domovský adresár používateľa na zadanom servere." + +#: ../help/help.inc:236 +msgid "" +"This will delete the selected organisational unit. The OU has to be empty." +msgstr "Odstráni zvolenú organizačnú jednotku (OU). OU musí byť prázdna." + +#: ../help/help.inc:129 +msgid "This will delete the selected profile." +msgstr "Odstráni zvolený profil." + +#: ../lib/modules/puppetClient.inc:102 ../lib/modules/qmailUser.inc:257 +#: ../lib/modules/zarafaContact.inc:81 ../lib/modules/eduPerson.inc:144 +#: ../lib/modules/sambaSamAccount.inc:390 ../lib/modules/zarafaUser.inc:130 +#: ../lib/modules/shadowAccount.inc:191 ../lib/modules/qmailGroup.inc:226 +#: ../lib/modules/authorizedServiceObject.inc:83 +#: ../lib/modules/hostObject.inc:77 +msgid "This will enable the extension automatically if this profile is loaded." +msgstr "Automaticky zapne rozšírenie, pri načítaní tohoto profilu." + +#: ../lib/modules/sambaSamAccount.inc:255 +msgid "This will reset the host's password to a default value." +msgstr "Nastaví heslo stroja na predvolenú hodnotu." + +#: ../templates/lists/changePassword.php:297 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail." +msgstr "" +"Nastaví náhodné heslo a zobrazí ho na obrazovke, alebo ho pošle " +"používateľovi emailom." + +#: ../help/help.inc:217 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail. Please edit your LAM server profile to setup the mail " +"settings." +msgstr "" +"Nastaví náhodné heslo a zobrazí ho na obrazovke, alebo ho pošle " +"používateľovi emailom. Prosím, upravte svoj serverový profil LAM a nastavte " +"nastavenia emailu." + +#: ../lib/modules/kolabUser.inc:134 +msgid "" +"This will set a special flag on the account which tells Kolabd to remove it. " +"Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes)." +msgstr "" +"Nastaví špeciálny príznak účtu, ktorý bude informovať Kolabd, aby ho " +"odstránil. Použite to na čisté odstránenie účtov Kolab (napr. vrátane " +"odstránenia poštových schránok)." + +#: ../lib/modules/qmailUser.inc:205 +msgid "" +"This will set the user's account status. You may disable the mail account " +"here." +msgstr "Nastaví stav účtu používateľa. Tu môžete zakázať emailový účet." + +#: ../lib/modules/sambaSamAccount.inc:1350 +msgid "Thursday" +msgstr "Štvrtok" + +#: ../lib/modules/mitKerberos.inc:129 ../lib/modules/mitKerberos.inc:188 +#: ../lib/modules/mitKerberos.inc:223 ../lib/modules/mitKerberos.inc:247 +#: ../lib/modules/mitKerberos.inc:356 ../lib/modules/mitKerberos.inc:776 +#: ../lib/modules/heimdalKerberos.inc:103 +#: ../lib/modules/heimdalKerberos.inc:152 +#: ../lib/modules/heimdalKerberos.inc:187 +#: ../lib/modules/heimdalKerberos.inc:209 +#: ../lib/modules/heimdalKerberos.inc:294 +#: ../lib/modules/heimdalKerberos.inc:679 +msgid "Ticket lifetime" +msgstr "Doba platnosti tiketu" + +#: ../lib/modules/mitKerberos.inc:284 ../lib/modules/mitKerberos.inc:285 +#: ../lib/modules/heimdalKerberos.inc:243 +#: ../lib/modules/heimdalKerberos.inc:244 +msgid "Ticket lifetime must be a number." +msgstr "Doba platnosti tiketu musí byť číslo." + +#: ../lib/modules/sambaSamAccount.inc:1372 +msgid "Time" +msgstr "Čas" + +#: ../lib/modules/sambaSamAccount.inc:359 +msgid "Time limit" +msgstr "Časový limit" + +#: ../lib/modules/sambaSamAccount.inc:338 +#: ../lib/modules/sambaSamAccount.inc:566 +msgid "Time zone" +msgstr "Časová zóna" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:45 +msgid "To" +msgstr "Komu" + +#: ../lib/modules/posixAccount.inc:491 +msgid "To disable login use /bin/false." +msgstr "Na zakázanie prihlásenia použite /bin/false." + +#: ../lib/modules/sambaSamAccount.inc:560 +msgid "Tokyo, Seoul, Osaka, Yakutsk" +msgstr "Tokio, Soul, Osaka, Jakutsko" + +#: ../templates/config/confmain.php:388 +msgid "Tool settings" +msgstr "Nastavenia nástroja" + +#: ../templates/tools.php:63 ../templates/main_header.php:145 +msgid "Tools" +msgstr "Nástroje" + +#: ../templates/serverInfo.php:357 +msgid "Total" +msgstr "Celkom" + +#: ../templates/serverInfo.php:242 ../templates/serverInfo.php:247 +msgid "Total connections" +msgstr "Celkom spojení" + +#: ../templates/3rdParty/pla/lib/export_functions.php:202 +msgid "Total entries" +msgstr "Celkom položiek" + +#: ../lib/types/user.inc:682 +msgid "Translate GID number to group name" +msgstr "Preložiť číslo GID na meno skupiny" + +#: ../templates/config/confmain.php:247 ../help/help.inc:77 +msgid "Tree suffix" +msgstr "Prípona stromu" + +#: ../templates/main_header.php:176 +msgid "Tree view" +msgstr "Strom" + +#: ../templates/config/confmain.php:533 +msgid "TreeSuffix is invalid!" +msgstr "TreeSuffix nie je platný!" + +#: ../lib/modules/sambaSamAccount.inc:1350 +msgid "Tuesday" +msgstr "Utorok" + +#: ../templates/schema/schema.php:348 ../lib/modules/zarafaUser.inc:109 +#: ../lib/modules/zarafaUser.inc:198 ../lib/modules/zarafaUser.inc:279 +#: ../lib/modules/zarafaUser.inc:402 ../lib/modules/zarafaUser.inc:567 +#: ../lib/modules/zarafaUser.inc:1317 ../lib/modules/customFields.inc:84 +#: ../lib/modules/customFields.inc:889 ../lib/modules/customFields.inc:1285 +msgid "Type" +msgstr "Typ" + +#: ../lib/modules/posixAccount.inc:94 +msgid "UID" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:182 ../lib/modules/posixAccount.inc:200 +#: ../lib/modules/posixAccount.inc:457 +msgid "UID generator" +msgstr "Generátor UID" + +#: ../lib/modules/posixAccount.inc:94 +msgid "UID has changed. Do you want to change home directory?" +msgstr "UID bolo zmenené. Chcete zmeniť domovský adresár?" + +#: ../lib/modules/posixAccount.inc:89 +msgid "" +"UID must be a number. It has to be inside the UID range which is defined in " +"your configuration profile." +msgstr "" +"UID musí byť číslo. Musí byť v rozsahu UID, ktorý je definovaný vo vašom " +"konfiguračnom profile." + +#: ../lib/types/host.inc:95 ../lib/types/user.inc:92 +#: ../lib/modules/qmailUser.inc:105 ../lib/modules/qmailUser.inc:224 +#: ../lib/modules/qmailUser.inc:325 ../lib/modules/qmailUser.inc:411 +#: ../lib/modules/qmailUser.inc:563 ../lib/modules/qmailUser.inc:1189 +#: ../lib/modules/posixAccount.inc:90 ../lib/modules/posixAccount.inc:269 +#: ../lib/modules/posixAccount.inc:353 ../lib/modules/posixAccount.inc:382 +#: ../lib/modules/posixAccount.inc:413 ../lib/modules/posixAccount.inc:417 +#: ../lib/modules/posixAccount.inc:425 ../lib/modules/posixAccount.inc:1233 +#: ../lib/modules/posixAccount.inc:1624 +msgid "UID number" +msgstr "Číslo UID" + +#: ../lib/modules/posixAccount.inc:90 +#, php-format +msgid "" +"UID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -uid %s -exec chown %s {} \\;'" +msgstr "" +"Číslo UID bolo zmenené. Na zachovanie vlastníctva súborov musí spustiť " +"nasledujúci príkaz /ako root): „find / -uid %s -exec chown %s {} \\;”" + +#: ../lib/modules/qmailUser.inc:456 +msgid "UID number is already in use." +msgstr "UID je už použité." + +#: ../lib/modules/posixAccount.inc:81 +msgid "UID ranges for Unix accounts" +msgstr "Rozsahy UID pre účty Unix" + +#: ../lib/modules/sambaSamAccount.inc:296 +msgid "" +"UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced " +"with user and group name." +msgstr "" +"Cesta UNC (\\\\server\\zdieľanie) domovského adresára. $user a $group sú " +"nahradené menom používateľa a skupiny." + +#: ../lib/modules/eduPerson.inc:112 ../lib/modules/eduPerson.inc:116 +msgid "" +"URI (either URN or URL) that indicates a set of rights to specific resources." +msgstr "URI (URN alebo URL), ktoré udáva množinu práv k zadaným zdrojom." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1883 +msgid "URL" +msgstr "URL" + +#: ../lib/modules/imapAccess.inc:160 +msgid "Unable to change ACL on IMAP server for mailbox deletion." +msgstr "Nemožno zmeniť ACL na servere IMAP pri mazaní poštovej schránky." + +#: ../lib/modules/mitKerberos.inc:1167 ../lib/modules/mitKerberos.inc:1171 +#: ../lib/modules/heimdalKerberos.inc:1019 +msgid "Unable to change Kerberos password." +msgstr "Nemožno zmeniť heslo Kerberos." + +#: ../lib/modules/windowsUser.inc:1446 ../lib/modules/windowsUser.inc:1467 +msgid "Unable to change password." +msgstr "Nemožno zmeniť heslo." + +#: ../templates/tests/lamdaemonTest.php:261 ../lib/lamdaemon.inc:76 +#: ../lib/lamdaemon.inc:81 +msgid "Unable to connect to remote server!" +msgstr "Nemožno sa pripojiť k vzdialenému serveru!" + +#: ../templates/massDoUpload.php:193 +msgid "Unable to create ZIP file for PDF export." +msgstr "Nemožno vytvoriť súbor ZIP pre export PDF." + +#: ../lib/modules/selfRegistration.inc:588 +#: ../lib/modules/selfRegistration.inc:592 +msgid "Unable to create account." +msgstr "Nemožno vytvoriť účet." + +#: ../lib/modules/imapAccess.inc:162 +msgid "Unable to create mailbox on IMAP server." +msgstr "Nemožno vytvoriť poštovú schránku na servere IMAP." + +#: ../templates/ou_edit.php:80 +msgid "Unable to create new OU!" +msgstr "Nemožno vytvoriť novú OU!" + +#: ../lib/types/automountType.inc:270 +msgid "Unable to create new automount map." +msgstr "Nemožno vytvoriť nové mapovanie automontu." + +#: ../templates/config/profmanage.php:82 +msgid "Unable to create new profile!" +msgstr "Nemožno vytvoriť nový profil!" + +#: ../templates/ou_edit.php:97 +msgid "Unable to delete OU!" +msgstr "Nemožno odstrániť OU!" + +#: ../templates/pdfedit/pdfmain.php:94 +msgid "Unable to delete PDF structure!" +msgstr "Nemožno odstrániť štruktúru PDF!" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:25 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:57 +msgid "Unable to delete entry, it does not exist" +msgstr "Nemožno odstrániť položku, pretože neexistuje" + +#: ../lib/modules/imapAccess.inc:161 +msgid "Unable to delete mailbox from IMAP server." +msgstr "Nemožno odstrániť poštovú schránku zo servera IMAP." + +#: ../templates/config/profmanage.php:123 +#: ../templates/profedit/profilemain.php:108 ../lib/config.inc:127 +#: ../lib/config.inc:139 ../lib/config.inc:146 ../lib/config.inc:154 +msgid "Unable to delete profile!" +msgstr "Nemožno odstrániť profil!" + +#: ../lib/modules/posixAccount.inc:1842 ../lib/modules/posixAccount.inc:1851 +#: ../lib/modules/posixAccount.inc:2115 ../lib/modules/nisnetgroup.inc:538 +#: ../lib/modules/groupOfNamesUser.inc:340 +msgid "Unable to find group in LDAP." +msgstr "Nemožno nájsť skupinu v LDAP." + +#: ../lib/modules/passwordSelfReset.inc:780 +#: ../lib/modules/passwordSelfReset.inc:973 +msgid "Unable to find password security question for this account." +msgstr "Nemožno nájsť bezpečnostnú otázku hesla tohoto účtu." + +#: ../templates/login.php:580 ../templates/login.php:586 +msgid "Unable to find the user name in LDAP." +msgstr "Nemožno nájsť používateľské meno v LDAP." + +#: ../lib/modules/passwordSelfReset.inc:771 +#: ../lib/modules/passwordSelfReset.inc:1046 +msgid "Unable to find user account." +msgstr "Nemožno nájsť používateľský účet." + +#: ../lib/modules.inc:1492 ../lib/modules.inc:1496 +msgid "Unable to load LDAP entry:" +msgstr "Nemožno načítať položku LDAP:" + +#: ../lib/profiles.inc:98 ../lib/profiles.inc:102 ../lib/selfService.inc:196 +#: ../lib/selfService.inc:200 +msgid "Unable to load profile!" +msgstr "Nemožno načítať profil!" + +#: ../lib/modules/imapAccess.inc:163 +msgid "Unable to locate mailbox on IMAP." +msgstr "Nemožno nájsť poštovú schránku v IMAP." + +#: ../templates/3rdParty/pla/lib/import_functions.php:388 +#: ../templates/3rdParty/pla/lib/import_functions.php:393 +msgid "Unable to read file." +msgstr "Nemožno čítať súbor." + +#: ../lib/modules/passwordSelfReset.inc:1208 +#: ../lib/modules/passwordSelfReset.inc:1218 +#: ../lib/modules/passwordSelfReset.inc:1224 +#: ../lib/modules/passwordSelfReset.inc:1233 +msgid "Unable to reset password." +msgstr "Nemožno vymazať heslo." + +#: ../templates/3rdParty/pla/lib/functions.php:1945 +msgid "Unable to retrieve image" +msgstr "Nemožno získať obrázok" + +#: ../templates/tests/schemaTest.php:61 ../templates/schema/schema.php:93 +#: ../templates/schema/schema.php:111 ../templates/schema/schema.php:272 +#: ../templates/schema/schema.php:306 +msgid "Unable to retrieve schema!" +msgstr "Nemožno získať schému!" + +#: ../templates/profedit/profilepage.php:124 +msgid "Unable to save profile!" +msgstr "Nemožno uložiť profil!" + +#: ../lib/account.inc:949 +msgid "Unable to send mail!" +msgstr "Nemožno odoslať email!" + +#: ../lib/modules/passwordSelfReset.inc:829 +#: ../lib/modules/passwordSelfReset.inc:1058 +msgid "Unable to verify your password reset request. Please try again." +msgstr "" +"Nemožno overiť požiadavku na obnovenie vášho hesla. Prosím, skúste znova." + +#: ../lib/modules/selfRegistration.inc:600 +msgid "Unable to verify your user creation request. Please try again." +msgstr "Nemožno overiť požiadavku na vytvorenie účtu. Prosím, skúste znova." + +#: ../templates/serverInfo.php:293 +msgid "Unbind" +msgstr "Odviazať" + +#: ../lib/modules/windowsGroup.inc:66 +msgid "Universal" +msgstr "Univerzálne" + +#: ../templates/lists/changePassword.php:361 +#: ../templates/lists/changePassword.php:392 ../lib/types/user.inc:268 +#: ../lib/types/user.inc:369 ../lib/types/user.inc:401 +#: ../lib/types/user.inc:821 ../lib/modules/posixGroup.inc:332 +#: ../lib/modules/posixAccount.inc:143 +msgid "Unix" +msgstr "Unix" + +#: ../templates/tests/lamdaemonTest.php:214 +msgid "Unix account" +msgstr "Unixový účet" + +#: ../lib/modules/posixAccount.inc:235 ../lib/modules/posixAccount.inc:1347 +msgid "Unix groups" +msgstr "Unixová skupina" + +#: ../lib/modules/kolabUser.inc:185 +#, php-format +msgid "Unknown delegate address: %s" +msgstr "Neznáma adresa zástupcu: %s" + +#: ../templates/3rdParty/pla/lib/import_functions.php:233 +msgid "Unkown change type" +msgstr "Neznámy typ zmeny" + +#: ../lib/types/user.inc:350 ../lib/types/user.inc:355 +#: ../lib/modules/windowsUser.inc:551 +msgid "Unlock" +msgstr "Odomknúť" + +#: ../templates/lists/changePassword.php:203 +#: ../templates/lists/changePassword.php:358 +#: ../templates/lists/changePassword.php:378 +#: ../templates/lists/changePassword.php:380 +#: ../lib/modules/ppolicyUser.inc:135 +msgid "Unlock account" +msgstr "Odomknúť účet" + +#: ../templates/lists/changePassword.php:251 +msgid "Unlock account?" +msgstr "Odomknúť účet?" + +#: ../lib/modules/posixGroup.inc:212 ../lib/modules/posixAccount.inc:1301 +#: ../lib/modules/inetOrgPerson.inc:2087 +msgid "Unlock password" +msgstr "Odblokovať heslo" + +#: ../templates/masscreate.php:106 ../templates/config/confmodules.php:376 +msgid "Unsolved dependency:" +msgstr "Nevyriešená závislosť:" + +#: ../templates/pdfedit/pdfpage.php:475 +msgid "Up" +msgstr "Hore" + +#: ../templates/lists/changePassword.php:215 +msgid "Update Samba password timestamp" +msgstr "Aktualizovať časovú pečiatku hesla Samba" + +#: ../lib/modules/sambaSamAccount.inc:242 +msgid "Update attribute \"sambaPwdLastSet\" on password change" +msgstr "Aktualizovať atribút „sambaPwdLastSet” pri zmene hesla" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1440 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:194 +msgid "Update object" +msgstr "Aktualizovať objekt" + +#: ../lib/modules/imapAccess.inc:302 ../lib/modules/imapAccess.inc:311 +msgid "Update quota" +msgstr "Aktualizovať kvótu" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:165 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:129 +msgid "Update values" +msgstr "Aktualizovať hodnoty" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:118 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:118 +msgid "Updating object" +msgstr "Nahrávanie objektu" + +#: ../lib/modules/inetOrgPerson.inc:2301 +msgid "Upload" +msgstr "Nahrať" + +#: ../templates/massBuildAccounts.php:242 +msgid "Upload accounts to LDAP" +msgstr "Nahrať účty do LDAP" + +#: ../templates/masscreate.php:271 +msgid "Upload file and create accounts" +msgstr "Nahrať súbor a vytvoriť účty" + +#: ../templates/massDoUpload.php:254 ../lib/lists.inc:1063 +msgid "Upload has finished" +msgstr "Nahrávanie dokončené" + +#: ../lib/modules.inc:498 +#, php-format +msgid "Upload was stopped after errors in %s module!" +msgstr "nahrávanie bolo prerušené po chybách v module %s!" + +#: ../templates/serverInfo.php:222 +msgid "Uptime" +msgstr "Od spustenia" + +#: ../templates/schema/schema.php:209 +msgid "Usage" +msgstr "Použitie" + +#: ../lib/modules/authorizedServiceObject.inc:75 +#: ../lib/modules/authorizedServiceObject.inc:79 +msgid "Use * for all services." +msgstr "Použite hviezdičku (*) na všetky služby." + +#: ../lib/modules/sambaSamAccount.inc:257 +#: ../lib/modules/sambaSamAccount.inc:260 +#: ../lib/modules/sambaSamAccount.inc:418 +msgid "Use Unix password" +msgstr "Použiť heslo Unix" + +#: ../lib/modules/sambaSamAccount.inc:263 +#: ../lib/modules/sambaSamAccount.inc:266 +#: ../lib/modules/sambaSamAccount.inc:426 +#: ../lib/modules/sambaSamAccount.inc:1128 +#: ../lib/modules/sambaSamAccount.inc:1708 +msgid "Use no password" +msgstr "Použiť prázdne heslo" + +#: ../help/help.inc:153 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of visible elements for this account type." +msgstr "" +"Použite na zadanie doplnkového filtra LDAP (napr. „(cn!=admin)”), ktorým " +"obmedzíte počet viditeľných prvkov tohoto typu účtu." + +#: ../lib/modules/asteriskAccount.inc:179 +msgid "Use this to hide the caller ID." +msgstr "Použite na skrytie ID volajúceho." + +#: ../lib/modules/zarafaDynamicGroup.inc:73 +#: ../lib/modules/zarafaContact.inc:65 ../lib/modules/zarafaGroup.inc:80 +#: ../lib/modules/zarafaAddressList.inc:61 ../lib/modules/zarafaUser.inc:74 +msgid "Use this to hide this entry from the address book." +msgstr "Použite na skrytie tejto položky z adresára." + +#: ../lib/modules/quota.inc:102 ../lib/modules/quota.inc:393 +msgid "Used blocks" +msgstr "Použité bloky" + +#: ../lib/modules/quota.inc:103 +msgid "Used blocks. 1000 blocks are usually 1MB" +msgstr "Použité bloky. 1000 blokov zvyčajne je 1 MB" + +#: ../templates/schema/schema.php:268 +msgid "Used by attributes" +msgstr "Použité atribútmi" + +#: ../templates/schema/schema.php:237 +msgid "Used by object classes" +msgstr "Použité triedami objektov" + +#: ../lib/modules/sambaDomain.inc:91 +msgid "Used for calculating RIDs from UID/GID. Do not change if unsure." +msgstr "Použité na vypočítanie RID z UID/GID. Nemeňte, ak si nie ste istí." + +#: ../lib/modules/asteriskAccount.inc:211 +msgid "Used for registration context." +msgstr "Použité na registračný kontext." + +#: ../lib/modules/quota.inc:124 ../lib/modules/quota.inc:397 +msgid "Used inodes" +msgstr "Použité inody" + +#: ../lib/modules/quota.inc:125 +msgid "Used inodes (files)" +msgstr "Použité inody (súbory)" + +#: ../lib/modules/asteriskAccount.inc:183 +msgid "Used to automatically hangup the call if no RTP traffic is received." +msgstr "" +"Použité na automatické ukončenie hovoru, ak nie je prijatá prevádzka RTP." + +#: ../lib/modules/asteriskAccount.inc:159 +#: ../lib/modules/asteriskAccount.inc:163 +msgid "" +"Used to limit SIP traffic to and from this peer to a certain IP or network." +msgstr "" +"Použité na obmedzenie prevádzky SIP ku a od tohoto partnera do určitej IP " +"alebo siete." + +#: ../lib/modules/asteriskAccount.inc:175 +msgid "Used to regularly check that a device is still online." +msgstr "Použité na pravidelnú kontrolu, že zariadenie je stále pripojené." + +#: ../lib/types/sudo.inc:78 ../lib/modules/nisnetgroup.inc:213 +#: ../lib/modules/nisnetgroup.inc:581 +msgid "User" +msgstr "Používateľ" + +#: ../lib/types/user.inc:91 +msgid "User ID" +msgstr "ID používateľa" + +#: ../lib/types/user.inc:62 +msgid "User accounts (e.g. Unix, Samba and Kolab)" +msgstr "Účty používateľov (napr. Unix, Samba a Kolab)" + +#: ../lib/modules/asteriskAccount.inc:118 +#: ../lib/modules/asteriskAccount.inc:249 +#: ../lib/modules/asteriskAccount.inc:332 +#: ../lib/modules/asteriskAccount.inc:402 +#: ../lib/modules/asteriskAccount.inc:688 +#: ../lib/modules/asteriskAccount.inc:1192 +msgid "User agent" +msgstr "Používateľský agent" + +#: ../lib/modules/sambaSamAccount.inc:287 +#: ../lib/modules/sambaSamAccount.inc:1142 +msgid "User can change password" +msgstr "Používateľ môže zmeniť heslo" + +#: ../lib/modules/inetOrgPerson.inc:147 ../lib/modules/inetOrgPerson.inc:360 +#: ../lib/modules/inetOrgPerson.inc:912 ../lib/modules/inetOrgPerson.inc:2044 +#: ../lib/modules/inetOrgPerson.inc:3208 +msgid "User certificates" +msgstr "Certifikáty používateľa" + +#: ../lib/types/user.inc:530 +#, php-format +msgid "User count: %s" +msgstr "Počet používateľov: %s" + +#: ../lib/modules/posixAccount.inc:471 +msgid "User description. If left empty first and last name will be used." +msgstr "" +"Popis používateľa. Ak necháte prázdne, bude použité krstné meno a priezvisko." + +#: ../lib/modules/inetOrgPerson.inc:702 +msgid "User description. If left empty sur- and give name will be used." +msgstr "" +"Popis používateľa. Ak necháte prázdne, bude použité priezvisko a celé meno." + +#: ../lib/modules/account.inc:99 +msgid "User description. If left empty user name will be used." +msgstr "Popis používateľa. Ak necháte prázdne, bude použité meno používateľa." + +#: ../templates/schema/schema.php:204 +msgid "User modification" +msgstr "Zmeny používateľa" + +#: ../lib/modules/mitKerberos.inc:217 ../lib/modules/mitKerberos.inc:243 +#: ../lib/modules/mitKerberos.inc:375 ../lib/modules/mitKerberos.inc:640 +#: ../lib/modules/mitKerberos.inc:780 ../lib/modules/sambaSamAccount.inc:289 +#: ../lib/modules/sambaSamAccount.inc:1148 ../lib/modules/windowsUser.inc:560 +#: ../lib/modules/heimdalKerberos.inc:99 +#: ../lib/modules/heimdalKerberos.inc:181 +#: ../lib/modules/heimdalKerberos.inc:208 +#: ../lib/modules/heimdalKerberos.inc:324 +#: ../lib/modules/heimdalKerberos.inc:541 +#: ../lib/modules/heimdalKerberos.inc:675 +msgid "User must change password" +msgstr "Používateľ musí zmeniť heslo" + +#: ../templates/lists/changePassword.php:262 ../templates/login.php:328 +#: ../lib/types/alias.inc:91 ../lib/types/user.inc:94 +#: ../lib/selfService.inc:366 ../lib/modules/mitKerberos.inc:109 +#: ../lib/modules/mitKerberos.inc:204 ../lib/modules/mitKerberos.inc:242 +#: ../lib/modules/mitKerberos.inc:337 ../lib/modules/mitKerberos.inc:767 +#: ../lib/modules/selfRegistration.inc:335 +#: ../lib/modules/selfRegistration.inc:403 +#: ../lib/modules/selfRegistration.inc:411 ../lib/modules/account.inc:78 +#: ../lib/modules/account.inc:94 ../lib/modules/account.inc:117 +#: ../lib/modules/account.inc:119 ../lib/modules/account.inc:120 +#: ../lib/modules/account.inc:207 ../lib/modules/account.inc:233 +#: ../lib/modules/account.inc:257 ../lib/modules/uidObject.inc:38 +#: ../lib/modules/uidObject.inc:60 ../lib/modules/uidObject.inc:69 +#: ../lib/modules/uidObject.inc:78 ../lib/modules/uidObject.inc:93 +#: ../lib/modules/uidObject.inc:154 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:96 ../lib/modules/posixAccount.inc:99 +#: ../lib/modules/posixAccount.inc:255 ../lib/modules/posixAccount.inc:379 +#: ../lib/modules/posixAccount.inc:466 ../lib/modules/posixAccount.inc:1220 +#: ../lib/modules/posixAccount.inc:1614 ../lib/modules/windowsUser.inc:95 +#: ../lib/modules/windowsUser.inc:214 ../lib/modules/windowsUser.inc:380 +#: ../lib/modules/windowsUser.inc:443 ../lib/modules/windowsUser.inc:519 +#: ../lib/modules/windowsUser.inc:1215 ../lib/modules/nisnetgroup.inc:145 +#: ../lib/modules/nisnetgroup.inc:475 ../lib/modules/inetOrgPerson.inc:92 +#: ../lib/modules/inetOrgPerson.inc:366 ../lib/modules/inetOrgPerson.inc:693 +#: ../lib/modules/inetOrgPerson.inc:812 ../lib/modules/inetOrgPerson.inc:1408 +#: ../lib/modules/inetOrgPerson.inc:2374 ../lib/modules/inetOrgPerson.inc:2509 +#: ../lib/modules/passwordSelfReset.inc:177 +#: ../lib/modules/passwordSelfReset.inc:696 +#: ../lib/modules/passwordSelfReset.inc:845 +#: ../lib/modules/heimdalKerberos.inc:87 +#: ../lib/modules/heimdalKerberos.inc:168 +#: ../lib/modules/heimdalKerberos.inc:206 +#: ../lib/modules/heimdalKerberos.inc:283 +#: ../lib/modules/heimdalKerberos.inc:668 +msgid "User name" +msgstr "Meno používateľa" + +#: ../lib/modules/selfRegistration.inc:411 ../lib/modules/posixAccount.inc:103 +#: ../lib/modules/inetOrgPerson.inc:94 +msgid "User name already exists!" +msgstr "Meno používateľa už existuje!" + +#: ../lib/modules/passwordSelfReset.inc:179 +msgid "User name and email address" +msgstr "Meno používateľa a emailová adresa" + +#: ../lib/modules/imapAccess.inc:94 ../lib/modules/imapAccess.inc:125 +msgid "User name attribute" +msgstr "Atribút mena používateľa" + +#: ../lib/modules/mitKerberos.inc:280 ../lib/modules/mitKerberos.inc:281 +#: ../lib/modules/selfRegistration.inc:403 ../lib/modules/account.inc:117 +#: ../lib/modules/account.inc:118 ../lib/modules/account.inc:120 +#: ../lib/modules/zarafaContact.inc:176 ../lib/modules/zarafaContact.inc:177 +#: ../lib/modules/uidObject.inc:78 ../lib/modules/zarafaGroup.inc:216 +#: ../lib/modules/zarafaGroup.inc:217 ../lib/modules/posixAccount.inc:96 +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/zarafaUser.inc:451 +#: ../lib/modules/zarafaUser.inc:452 ../lib/modules/windowsUser.inc:443 +#: ../lib/modules/windowsUser.inc:444 ../lib/modules/nisnetgroup.inc:145 +#: ../lib/modules/inetOrgPerson.inc:92 ../lib/modules/inetOrgPerson.inc:93 +#: ../lib/modules/passwordSelfReset.inc:738 +#: ../lib/modules/passwordSelfReset.inc:934 +#: ../lib/modules/heimdalKerberos.inc:239 +#: ../lib/modules/heimdalKerberos.inc:240 +msgid "" +"User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Meno používateľa obsahuje neplatné znaky. Platné znaky sú: a-z, A-Z, 0-9 a .-" +"_ !" + +#: ../lib/modules/posixAccount.inc:99 +msgid "User name in use. Selected next free user name." +msgstr "" +"Meno používateľa je už použité. Vybrané nasledujúce voľné meno používateľa." + +#: ../lib/modules/mitKerberos.inc:110 ../lib/modules/account.inc:95 +#: ../lib/modules/inetOrgPerson.inc:813 ../lib/modules/heimdalKerberos.inc:88 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_." +msgstr "" +"Meno používateľa, ktorý má byť vytvorený. Platné znaky sú: a-z, A-Z, 0-9 a " +"@.-_." + +#: ../lib/modules/posixAccount.inc:467 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_. If user name is already used user name will be expanded with a " +"number. The next free number will be used." +msgstr "" +"Meno používateľa, ktorý má byť vytvorený. Platné znaky sú: a-z, A-Z, 0-9 a " +"@.-_. Ak už meno používateľa existuje, bude rozšírené číslom, pričom bude " +"použité nasledujúce voľné číslo." + +#: ../lib/modules/passwordSelfReset.inc:180 +#: ../lib/modules/passwordSelfReset.inc:714 +#: ../lib/modules/passwordSelfReset.inc:860 +msgid "User name or email address" +msgstr "Meno používateľa alebo emailová adresa" + +#: ../lib/modules/posixAccount.inc:242 ../lib/modules/posixAccount.inc:400 +msgid "User name suggestion" +msgstr "navrhované meno používateľa" + +#: ../lib/modules/windowsUser.inc:571 +msgid "User profile" +msgstr "Profil používateľa" + +#: ../lib/modules/selfRegistration.inc:38 +msgid "User self registration" +msgstr "Samoregistrácia používateľa" + +#: ../lib/modules/zarafaUser.inc:121 ../lib/modules/zarafaUser.inc:206 +#: ../lib/modules/zarafaUser.inc:316 ../lib/modules/zarafaUser.inc:414 +#: ../lib/modules/zarafaUser.inc:646 ../lib/modules/zarafaUser.inc:1299 +#: ../lib/modules/zarafaUser.inc:1388 +msgid "User server" +msgstr "Server používateľa" + +#: ../lib/types/user.inc:53 ../lib/modules/posixAccount.inc:75 +#: ../lib/modules/posixAccount.inc:76 ../lib/modules/posixAccount.inc:79 +#: ../lib/modules/posixAccount.inc:181 ../lib/modules/zarafaUser.inc:180 +#: ../lib/modules/sudoRole.inc:63 ../lib/modules/sudoRole.inc:87 +#: ../lib/modules/sudoRole.inc:134 ../lib/modules/sudoRole.inc:173 +#: ../lib/modules/sudoRole.inc:182 ../lib/modules/sudoRole.inc:264 +#: ../lib/modules/sudoRole.inc:684 +msgid "Users" +msgstr "Používatelia" + +#: ../lib/modules/zarafaContact.inc:73 ../lib/modules/zarafaGroup.inc:88 +#: ../lib/modules/zarafaUser.inc:98 +msgid "Users or groups that may directly send email as this user." +msgstr "" +"Používatelia alebo skupiny, ktoré môžu priamo posielať email ako tento " +"používateľ." + +#: ../lib/modules/posixGroup.inc:428 +msgid "" +"Users who are member of the current group. Users who have set their primary " +"group to this group will not be shown." +msgstr "" +"Používatelia, ktorí sú členmi aktuálnej skupiny. Používatelia, ktorí majú " +"nastavenú svoju primárnu skupinu na túto skupinu nie sú zobrazení." + +#: ../lib/modules/posixGroup.inc:432 +msgid "" +"Users who will become member of the current group. User names are separated " +"by semicolons." +msgstr "" +"Používatelia, ktorí sa stanú členmi aktuálnej skupiny. Mená používateľov sú " +"oddelené bodkočiarkami." + +#: ../templates/tests/lamdaemonTest.php:207 +#, php-format +msgid "Using %s as lamdaemon remote server." +msgstr "Použite %s ako vzdialeného servera lamdaemon." + +#: ../templates/tests/lamdaemonTest.php:229 +#, php-format +msgid "Using %s to connect to remote server." +msgstr "Použitie %s na pripojenie k vzdialenému serveru." + +#: ../lib/modules/posixAccount.inc:410 +msgid "" +"Usually, users are not added to groups as memberUid if they have this group " +"as primary group. If your application ignores primary groups then you can " +"select this option to override this behaviour." +msgstr "" +"Zvyčajne nie sú používatelia pridávaní do skupiny (memberUID), ak majú túto " +"skupinu nastavenú ak svoju primárnu. Ak vaša aplikácia ignoruje primárne " +"skupiny, môžete zvoliť túto voľbu na prepísanie takéhoto správania." + +#: ../templates/3rdParty/pla/lib/export_functions.php:543 +msgid "VCARD 2.1 Export" +msgstr "Export VCARD 2.1" + +#: ../help/help.inc:88 +msgid "Valid users" +msgstr "Platní používatelia" + +#: ../lib/modules/imapAccess.inc:76 ../lib/modules/imapAccess.inc:112 +msgid "Validate server certificate" +msgstr "Overiť certifikát servera" + +#: ../lib/modules/customFields.inc:92 ../lib/modules/customFields.inc:1442 +msgid "Validation expression" +msgstr "Výraz overenia" + +#: ../lib/modules/customFields.inc:96 ../lib/modules/customFields.inc:1447 +msgid "Validation message" +msgstr "Správa overenia" + +#: ../lib/modules/customFields.inc:2189 +msgid "Value" +msgstr "Hodnota" + +#: ../lib/modules/customFields.inc:100 ../lib/modules/customFields.inc:1988 +msgid "Value for \"checked\"" +msgstr "Hodnota pre „zaškrtnuté”" + +#: ../lib/modules/customFields.inc:104 ../lib/modules/customFields.inc:1994 +msgid "Value for \"unchecked\"" +msgstr "Hodnota pre „nezaškrtnuté”" + +#: ../lib/modules/customFields.inc:124 ../lib/modules/customFields.inc:2185 +msgid "Value mapping" +msgstr "Mapovanie hodnoty" + +#: ../templates/3rdParty/pla/lib/import_functions.php:512 +msgid "Value to delete does not exist in DN" +msgstr "odstraňovaná hodnota v DN neexistuje" + +#: ../lib/modules/puppetClient.inc:93 ../lib/modules/puppetClient.inc:97 +#: ../lib/modules/puppetClient.inc:139 ../lib/modules/puppetClient.inc:149 +#: ../lib/modules/puppetClient.inc:162 ../lib/modules/puppetClient.inc:270 +#: ../lib/modules/puppetClient.inc:432 +msgid "Variables" +msgstr "Premenné" + +#: ../templates/serverInfo.php:134 +msgid "Vendor name" +msgstr "Názov predajcu" + +#: ../templates/serverInfo.php:140 +msgid "Vendor version" +msgstr "Verzia predajcu" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +#, php-format +msgid "View %s children" +msgstr "Zobraziť %s potomkov" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +msgid "View 1 child" +msgstr "Zobraziť 1 potomka" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1230 +msgid "View the children of this object" +msgstr "Zobraziť potomkov tohoto objektu" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1028 +msgid "Viewing entry in read-only mode." +msgstr "Zobrazovanie položky v režime len na čítanie." + +#: ../lib/modules/asteriskVoicemail.inc:110 +#: ../lib/modules/asteriskVoicemail.inc:117 +#: ../lib/modules/asteriskVoicemail.inc:134 +#: ../lib/modules/asteriskVoicemail.inc:187 +#: ../lib/modules/asteriskVoicemail.inc:279 +#: ../lib/modules/asteriskVoicemail.inc:391 +msgid "Voicemail context" +msgstr "Kontext hlasovej schránky" + +#: ../lib/modules/asteriskVoicemail.inc:87 +msgid "Voicemail mailbox for this account." +msgstr "Hlasová schránka tohoto účtu." + +#: ../templates/login.php:485 +msgid "Want more features? Get LAM Pro!" +msgstr "Chcete viac funkcií? Získajte LAM Pro!" + +#: ../templates/config/mainmanage.php:223 +#: ../templates/3rdParty/pla/lib/page.php:76 +msgid "Warning" +msgstr "Upozornenie" + +#: ../templates/delete.php:234 ../lib/modules/posixAccount.inc:737 +#: ../lib/modules/posixAccount.inc:763 ../lib/modules/windowsUser.inc:819 +#: ../lib/modules/groupOfNamesUser.inc:196 +#: ../lib/modules/groupOfNamesUser.inc:216 ../lib/modules.inc:1836 +#, php-format +msgid "Was unable to add attributes to DN: %s." +msgstr "Nebolo možné pridať atribúty do DN: %s." + +#: ../lib/modules.inc:1801 +#, php-format +msgid "Was unable to create DN: %s." +msgstr "Nebolo možné vytvoriť DN: %s." + +#: ../templates/delete.php:344 ../templates/delete.php:353 +#, php-format +msgid "Was unable to delete DN: %s." +msgstr "Nebolo možné odstrániť DN: %s." + +#: ../templates/lists/changePassword.php:673 +#: ../templates/lists/changePassword.php:711 +#: ../templates/lists/changePassword.php:757 ../templates/delete.php:225 +#, php-format +msgid "Was unable to modify attributes from DN: %s." +msgstr "Nebolo možné upraviť atribúty z DN: %s." + +#: ../lib/modules/windowsUser.inc:845 ../lib/modules/windowsUser.inc:1188 +#: ../lib/modules.inc:1819 +#, php-format +msgid "Was unable to modify attributes of DN: %s." +msgstr "Nebolo možné upraviť atribúty DN: %s." + +#: ../templates/delete.php:243 ../lib/modules/posixAccount.inc:745 +#: ../lib/modules/posixAccount.inc:780 ../lib/modules/windowsUser.inc:832 +#: ../lib/modules/groupOfNamesUser.inc:201 +#: ../lib/modules/groupOfNamesUser.inc:230 ../lib/modules.inc:1848 +#, php-format +msgid "Was unable to remove attributes from DN: %s." +msgstr "Nebolo možné odstrániť atribúty z DN: %s." + +#: ../lib/modules/asteriskExtension.inc:904 ../lib/modules.inc:1782 +#, php-format +msgid "Was unable to rename DN: %s." +msgstr "Nebolo možné premenovať DN: %s." + +#: ../lib/modules/windowsUser.inc:167 ../lib/modules/windowsUser.inc:318 +#: ../lib/modules/windowsUser.inc:397 ../lib/modules/windowsUser.inc:413 +#: ../lib/modules/windowsUser.inc:539 ../lib/modules/windowsUser.inc:1232 +#: ../lib/modules/windowsUser.inc:1334 ../lib/modules/inetOrgPerson.inc:146 +#: ../lib/modules/inetOrgPerson.inc:197 ../lib/modules/inetOrgPerson.inc:358 +#: ../lib/modules/inetOrgPerson.inc:536 ../lib/modules/inetOrgPerson.inc:656 +#: ../lib/modules/inetOrgPerson.inc:800 ../lib/modules/inetOrgPerson.inc:804 +#: ../lib/modules/inetOrgPerson.inc:1848 ../lib/modules/inetOrgPerson.inc:2384 +#: ../lib/modules/inetOrgPerson.inc:2956 +msgid "Web site" +msgstr "Webová stránka" + +#: ../lib/modules/sambaSamAccount.inc:1350 +msgid "Wednesday" +msgstr "Streda" + +#: ../lib/selfService.inc:365 +msgid "Welcome to LAM self service. Please enter your user name and password." +msgstr "" +"Vitajte v samoobslužnej službe LAM. Prosím, zadajte svoje používateľské meno " +"a heslo." + +#: ../lib/modules/sambaSamAccount.inc:551 +msgid "Western Europe Time, London, Lisbon" +msgstr "Západoeurópsky čas, Londýn, Lisabon" + +#: ../lib/modules/passwordSelfReset.inc:151 +msgid "What is the name of your favourite pet?" +msgstr "Aké je vaše obľúbené meno domáceho zvieraťa?" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +msgid "" +"When performing a recursive copy, only copy those entries which match this " +"filter." +msgstr "" +"Pri vykonávaní rekurzívneho kopírovania, kopírovať len položky, ktoré " +"zodpovedajú tomuto filtru." + +#: ../lib/modules/zarafaUser.inc:94 +msgid "" +"When the hard quota limit is reached, email can not be delivered to that " +"user anymore." +msgstr "" +"Pri dosiahnutí limitu pevnej kvóty, tomuto používateľovi nebudú môcť byť " +"doručené ani emaily." + +#: ../help/help.inc:70 +msgid "" +"When using ldaps:// or TLS be sure to use exactly the same IP/domain name as " +"in your certificate!" +msgstr "" +"Pri používaní ldaps:// alebo TLS si overte, že rovnaké meno domény/IP adresa " +"je aj vo vašom certifikáte!" + +#: ../templates/lists/changePassword.php:373 +#: ../templates/lists/changePassword.php:404 ../lib/types/user.inc:292 +#: ../lib/types/user.inc:381 ../lib/types/user.inc:413 +#: ../lib/types/user.inc:845 ../lib/modules/windowsHost.inc:57 +#: ../lib/modules/windowsUser.inc:82 ../lib/modules/windowsGroup.inc:92 +msgid "Windows" +msgstr "Windows" + +#: ../lib/modules/sambaSamAccount.inc:327 +msgid "Windows domain name of account." +msgstr "Meno domény Windows účtu." + +#: ../lib/modules/sambaSamAccount.inc:204 +#: ../lib/modules/sambaSamAccount.inc:457 +#: ../lib/modules/sambaSamAccount.inc:1236 +#: ../lib/modules/sambaSamAccount.inc:1756 +#: ../lib/modules/sambaSamAccount.inc:1881 +#: ../lib/modules/sambaGroupMapping.inc:274 +#: ../lib/modules/sambaGroupMapping.inc:318 +#: ../lib/modules/sambaGroupMapping.inc:385 +msgid "Windows group" +msgstr "Skupina vo Windows" + +#: ../lib/modules/sambaGroupMapping.inc:356 +msgid "Windows group name" +msgstr "Meno skupiny vo Windows" + +#: ../lib/modules/sambaGroupMapping.inc:369 +msgid "Windows group type." +msgstr "Typ skupiny vo Windows." + +#: ../lib/modules/sambaSamAccount.inc:384 +msgid "" +"Windows password hashes are saved by default as NT and LM hashes. LM hashes " +"are insecure and only needed for old versions of Windows. You should disable " +"them unless you really need them." +msgstr "" +"Odtlačky hesiel Windows sú predvolene ukladané ako odtlačky NT a LM. " +"Odtlačky LM sú nebezpečné a sú potrebné len kvôli starým verziám. Mali by " +"ste ich zakázať, ak ich naozaj nepotrebujete." + +#: ../lib/modules/sambaSamAccount.inc:310 +msgid "Windows primary group" +msgstr "Primárna skupina vo Windows" + +#: ../lib/modules/sambaSamAccount.inc:313 +msgid "Windows primary group SID" +msgstr "SID primárnej skupiny vo Windows" + +#: ../lib/modules/sambaGroupMapping.inc:365 +msgid "Windows-Domain name of group." +msgstr "Doménové meno skupiny Windows." + +#: ../lib/modules/inetOrgPerson.inc:1872 +msgid "Work details" +msgstr "Podrobnosti práce" + +#: ../lib/modules/sambaDomain.inc:139 +msgid "Workgroup" +msgstr "Pracovná skupina" + +#: ../lib/modules/sambaSamAccount.inc:228 +#: ../lib/modules/sambaSamAccount.inc:356 +#: ../lib/modules/sambaSamAccount.inc:1492 +#: ../lib/modules/sambaSamAccount.inc:1900 +msgid "Working directory" +msgstr "Pracovný adresár" + +#: ../lib/modules/sambaSamAccount.inc:357 +msgid "Working directory of initial program." +msgstr "Pracovný adresár východzieho programu." + +#: ../templates/config/confmain.php:306 +msgid "Write" +msgstr "Zápis" + +#: ../templates/config/confmain.php:259 +msgid "Write access" +msgstr "Právo zápisu" + +#: ../templates/login.php:568 ../templates/login.php:626 +msgid "Wrong password/user name combination. Please try again." +msgstr "Neplatná kombinácia heslo/používateľský účet. Prosím, skúste znova." + +#: ../lib/modules/imapAccess.inc:168 +msgid "Wrong quota format. Quota must be numeric." +msgstr "Zlý formát kvóty. Kvóta musí byť číselná." + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:463 ../lib/modules/qmailGroup.inc:315 +#: ../lib/modules/qmailGroup.inc:357 ../lib/modules/qmailGroup.inc:1027 +#: ../lib/modules/qmailGroup.inc:1028 ../lib/modules/qmailGroup.inc:1070 +#: ../lib/modules/qmailGroup.inc:1076 ../lib/modules/imapAccess.inc:112 +msgid "Yes" +msgstr "Áno" + +#: ../lib/modules/account.inc:119 ../lib/modules/posixGroup.inc:538 +#: ../lib/modules/posixAccount.inc:95 ../lib/modules/posixAccount.inc:97 +msgid "" +"You are using capital letters. This can cause problems because Windows is " +"not case-sensitive." +msgstr "" +"Používate veľké písmená. Môže to spôsobovať problémy, pretože Windows " +"nerozlišuje veľkosť písmen." + +#: ../lib/lists.inc:1065 +#, php-format +msgid "" +"You can download your PDF files {link=%s}{color=#d2131a}here{endcolor}" +"{endlink}." +msgstr "" +"Tu si môžete stiahnuť svoje {link=%s}{color=#d2131a}súbory PDF{endcolor}" +"{endlink}." + +#: ../help/help.inc:104 +msgid "" +"You can specify if LAM allows full write access, password changes or only " +"read access." +msgstr "" +"Môžete zadať, či LAM povolí plný prístup na zápis, zmeny hesla alebo prístup " +"len na čítanie." + +#: ../help/help.inc:154 +msgid "" +"You can use the wildcard @@LOGIN_DN@@ which will be substituted with the DN " +"of the user who is currently logged in to LAM." +msgstr "" +"Môžete použiť masku @@LOGIN_DN@@, ktorá bude nahradená DN práve prihláseného " +"používateľa LAM." + +#: ../lib/modules/zarafaDynamicGroup.inc:77 +#: ../lib/modules/zarafaContact.inc:69 ../lib/modules/zarafaGroup.inc:84 +#: ../lib/modules/zarafaAddressList.inc:65 ../lib/modules/zarafaUser.inc:78 +msgid "You can use this to temporarily deactivate the Zarafa extension." +msgstr "Toto môžete využiť na dočasné vypnutie rozšírenia Zarafa." + +#: ../lib/modules/passwordSelfReset.inc:114 +#: ../lib/modules/passwordSelfReset.inc:124 ../help/help.inc:225 +msgid "" +"You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. " +"@@uid@@ for the user name)." +msgstr "" +"Pre atribúty LDAP môžete použiť zástupné znaky vo formáte @@atribút@@ (napr. " +"@@uid@@ pre meno používateľa)." + +#: ../lib/modules/customScripts.inc:58 ../lib/modules/customScripts.inc:71 +msgid "" +"You can use wildcards in the format $wildcard$ which are replaced by the " +"LDAP attribute with the same name. For multi-value attributes the values " +"will be separated by commas." +msgstr "" +"Môžete použiť zástupné znaky vo formáte $náhrada$, ktoré budú nahradené " +"atribútom LDAP s rovnakým menom. Pre atribúty s viacnásobnými hodnotami, " +"oddeľte hodnoty čiarkou." + +#: ../lib/modules/zarafaContact.inc:180 +msgid "" +"You cannot add the Zarafa and Zarafa contact extension at the same time." +msgstr "Nemôžete pridať rozšírenia Zarafa a Zarafa kontakt naraz." + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:52 +msgid "You cannot perform updates while server is in read-only mode" +msgstr "Nemôžete robiť aktualizácie, keď je server v režime len na čítanie" + +#: ../templates/3rdParty/pla/htdocs/rename.php:26 +msgid "You cannot rename an entry which has child entries." +msgstr "Nemôžete premenovať položku, ktorá má potomkov." + +#: ../templates/config/confmain.php:486 +msgid "" +"You cannot use SSL and TLS encryption at the same time. Please use either " +"\"ldaps://\" or TLS." +msgstr "" +"Nemôžete použiť šifrovanie SSL a TLS naraz. Prosím, použite buď „ldaps://” " +"alebo TLS." + +#: ../templates/3rdParty/pla/htdocs/rename.php:32 +msgid "You did not change the RDN" +msgstr "Nemôžete zmeniť RDN" + +#: ../templates/tests/schemaTest.php:61 +msgid "" +"You do not have the required access rights or the LDAP schema is not " +"published by your server." +msgstr "" +"Nemáte požadované prístupové práva alebo vašim serverom nie je zverejnené " +"schéma LDAP." + +#: ../lib/modules/dhcp_settings.inc:294 ../lib/modules/dhcp_settings.inc:295 +msgid "You entered one or more invalid DNS servers." +msgstr "Zadali ste jeden alebo viac neplatných serverov DNS." + +#: ../templates/3rdParty/pla/lib/Template.php:417 +#: ../templates/3rdParty/pla/lib/Template.php:504 +msgid "You left the attribute value blank. Please go back and try again." +msgstr "" +"Nechali ste prázdnu hodnotu atribútu. Prosím, vráťte sa a skúste znova." + +#: ../templates/3rdParty/pla/htdocs/create.php:51 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:45 +#, php-format +msgid "You left the value blank for required attribute (%s)." +msgstr "Nechali ste prázdnu hodnotu povinného atribútu (%s)." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:171 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:209 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:133 +msgid "You made no changes" +msgstr "Neurobili ste zmeny" + +#: ../lib/modules/posixAccount.inc:103 ../lib/modules/posixAccount.inc:104 +#, php-format +msgid "You might want to use %s instead of %s." +msgstr "Možno ste chceli použiť %s namiesto %s." + +#: ../templates/3rdParty/pla/lib/import_functions.php:95 +msgid "You must either upload a file or provide an import in the text box." +msgstr "Musíte buď nahrať súbor alebo zadať import v textovom poli." + +#: ../lib/modules/groupOfNames.inc:146 ../lib/modules/groupOfNames.inc:147 +msgid "You need to add at least one member to this group." +msgstr "Musíte do tejto skupiny pridať aspoň jedného člena." + +#: ../lib/modules/passwordSelfReset.inc:256 +msgid "You specified an answer but no security question." +msgstr "Zadali ste odpoveď, ale nie bezpečnostnú otázku." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1136 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "You will be prompted to confirm this decision" +msgstr "Budete vyzvaný na potvrdenie tohoto rozhodnutia" + +#: ../lib/modules/imapAccess.inc:164 +msgid "Your IMAP domains and email address domain do not match." +msgstr "Vaše domény IMAP a doména emailovej adresy sa nezhodujú." + +#: ../templates/tests/lamdaemonTest.php:234 +#, php-format +msgid "" +"Your LAM admin user (%s) must be a valid Unix account to work with lamdaemon!" +msgstr "" +"Váš administrátor LAM (%s) musí byť platný účet Unix, aby mohol pracovať s " +"lamdaemon!" + +#: ../lib/lamdaemon.inc:61 ../lib/lamdaemon.inc:66 +msgid "" +"Your LAM admin user must be a valid Unix account to work with lamdaemon!" +msgstr "" +"Váš administrátor LAM musí byť platný účet Unix, aby mohol pracovať s " +"lamdaemon!" + +#: ../lib/modules/imapAccess.inc:166 +msgid "Your LAM login password was not accepted by the IMAP server." +msgstr "vaše prihlasovacie heslo LAM nebolo prijaté serverom IMAP." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:125 +msgid "" +"Your PHP configuration has disabled file uploads. Please check php.ini " +"before proceeding." +msgstr "" +"Vaše nastavenie PHP má zakázané nahrávanie súborov. Prosím, najprv " +"skontrolujte svoj php.ini." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:16 +msgid "" +"Your PHP.INI does not have file_uploads = ON. Please enable file uploads in " +"PHP." +msgstr "" +"Váš PHP.INI nemá file_uploads = ON. Prosím, povoľte nahrávanie súborov v PHP." + +#: ../templates/config/confmain.php:176 +msgid "" +"Your changes cannot be saved until you make the file writable for the " +"webserver user." +msgstr "" +"Vaše zmeny nemôžu byť uložené, kým súbor nebude zapisovateľný pre " +"používateľa webového servera." + +#: ../lib/modules/selfRegistration.inc:596 +msgid "" +"Your new account was successfully created. Please return to login to change " +"your user data." +msgstr "" +"Váš nový účet bol úspešne vytvorený. Prosím, vráťte sa na prihlásenie a " +"zmeňte svoje používateľské údaje." + +#: ../lib/security.inc:168 +msgid "Your session expired, click here to go back to the login page." +msgstr "Vaša relácia vypršala, kliknite tu na návrat na prihlasovaciu stránku." + +#: ../templates/login.php:289 +msgid "Your session expired, please log in again." +msgstr "Vaša relácia vypršala, prosím, znova sa prihláste." + +#: ../templates/login.php:294 ../templates/login.php:299 +#: ../templates/login.php:308 +msgid "Your settings were successfully saved." +msgstr "Vaše nastavenia boli uložené." + +#: ../lib/modules/windowsUser.inc:290 ../lib/modules/inetOrgPerson.inc:570 +#: ../lib/modules/inetOrgPerson.inc:602 +msgid "YourCompany" +msgstr "VašaSpoločnosť" + +#: ../lib/modules/zarafaGroup.inc:49 ../lib/modules/zarafaUser.inc:54 +#: ../lib/modules/zarafaServer.inc:49 +msgid "Zarafa" +msgstr "Zarafa" + +#: ../lib/modules/zarafaAddressList.inc:44 +msgid "Zarafa address list" +msgstr "Zoznam adries Zarafa" + +#: ../lib/types/zarafaAddressListType.inc:53 +#: ../lib/types/zarafaAddressListType.inc:62 +msgid "Zarafa address lists" +msgstr "Zoznamy adries Zarafa" + +#: ../lib/modules/zarafaContact.inc:49 +msgid "Zarafa contact" +msgstr "Kontakt Zarafa" + +#: ../lib/modules/zarafaDynamicGroup.inc:44 +msgid "Zarafa dynamic group" +msgstr "Dynamická skupina Zarafa" + +#: ../lib/types/zarafaDynamicGroupType.inc:53 +#: ../lib/types/zarafaDynamicGroupType.inc:62 +msgid "Zarafa dynamic groups" +msgstr "Dynamické skupiny Zarafa" + +#: ../lib/modules/zarafaDynamicGroup.inc:88 +#: ../lib/modules/zarafaDynamicGroup.inc:176 +#: ../lib/modules/zarafaContact.inc:99 ../lib/modules/zarafaContact.inc:112 +#: ../lib/modules/zarafaGroup.inc:106 ../lib/modules/zarafaGroup.inc:121 +#: ../lib/modules/zarafaAddressList.inc:76 +#: ../lib/modules/zarafaAddressList.inc:149 ../lib/modules/zarafaUser.inc:164 +#: ../lib/modules/zarafaUser.inc:174 ../lib/modules/zarafaServer.inc:85 +#: ../lib/modules/zarafaServer.inc:146 +msgid "Zarafa schema" +msgstr "Schéma Zarafa" + +#: ../lib/modules/zarafaUser.inc:153 ../lib/modules/zarafaUser.inc:157 +msgid "Zarafa will store the user's archives on these servers." +msgstr "Zarafa bude na týchto serveroch ukladať používateľove archívy." + +#: ../lib/modules/ddns.inc:95 ../lib/modules/ddns.inc:106 +#: ../lib/modules/ddns.inc:121 ../lib/modules/ddns.inc:387 +#: ../lib/modules/ddns.inc:418 +msgid "Zone name" +msgstr "Meno zóny" + +#: ../lib/modules/ddns.inc:96 +msgid "Zone name for the DNS server (e.g. company.local)." +msgstr "Meno zóny pre server DNS (napr. spolocnost.local)." + +#: ../lib/modules/sambaSamAccount.inc:483 +msgid "\\\\server\\homes\\smiller" +msgstr "\\\\server\\homes\\jhrasko" + +#: ../lib/modules/sambaSamAccount.inc:491 ../lib/modules/windowsUser.inc:364 +msgid "\\\\server\\profiles\\smiller" +msgstr "\\\\server\\profiles\\jhrasko" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "add value" +msgstr "pridať hodnotu" + +#: ../lib/modules/zarafaDynamicGroup.inc:111 ../lib/modules/posixGroup.inc:400 +#: ../lib/modules/zarafaAddressList.inc:99 ../lib/modules/nisnetgroup.inc:107 +#: ../lib/modules/groupOfNames.inc:94 +msgid "adminstrators" +msgstr "administrátori" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:112 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:95 +msgid "attribute deleted" +msgstr "atribút zmazaný" + +#: ../lib/modules/sudoRole.inc:123 +msgid "backupRootFileSystem" +msgstr "backupRootFileSystem" + +#: ../templates/3rdParty/pla/lib/functions.php:2298 +msgid "browse" +msgstr "prechádzať" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "bytes" +msgstr "bajty" + +#: ../templates/schema/schema.php:220 +msgid "character" +msgstr "znak" + +#: ../templates/schema/schema.php:219 +msgid "characters" +msgstr "znaky" + +#: ../lib/modules/freeRadius.inc:172 +msgid "company.com" +msgstr "spolocnost.sk" + +#: ../templates/3rdParty/pla/lib/PageRender.php:619 +#: ../templates/3rdParty/pla/lib/PageRender.php:988 +msgid "confirm" +msgstr "potvrdiť" + +#: ../help/help.inc:82 +msgid "dc=yourcompany,dc=com" +msgstr "dc=vasaspolocnost,dc=sk" + +#: ../lib/modules/ppolicyUser.inc:111 +msgid "default" +msgstr "predvolený" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:205 +msgid "delete" +msgstr "odstrániť" + +#: ../templates/3rdParty/pla/lib/PageRender.php:677 +msgid "delete attribute" +msgstr "odstrániť atribút" + +#: ../lib/modules/sambaSamAccount.inc:1513 +#: ../lib/modules/sambaSamAccount.inc:1920 ../lib/modules/zarafaUser.inc:651 +#: ../lib/modules/zarafaUser.inc:1351 ../lib/modules/zarafaUser.inc:1392 +msgid "disabled" +msgstr "zakázané" + +#: ../lib/modules/sambaSamAccount.inc:1524 +#: ../lib/modules/sambaSamAccount.inc:1931 +msgid "disconnect" +msgstr "odpojené" + +#: ../templates/3rdParty/pla/lib/PageRender.php:664 +msgid "download value" +msgstr "stiahnuť hodnotu" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:206 +msgid "edit" +msgstr "upraviť" + +#: ../lib/modules/zarafaUser.inc:651 ../lib/modules/zarafaUser.inc:1346 +#: ../lib/modules/zarafaUser.inc:1392 +msgid "enabled" +msgstr "povolené" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:481 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:307 +msgid "export" +msgstr "export" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:123 +msgid "false" +msgstr "false" + +#: ../lib/modules/ppolicy.inc:37 +msgid "force" +msgstr "vynútiť" + +#: ../lib/modules/sambaSamAccount.inc:1532 +#: ../lib/modules/sambaSamAccount.inc:1939 +msgid "from any client" +msgstr "z každého klienta" + +#: ../lib/modules/sambaSamAccount.inc:1533 +#: ../lib/modules/sambaSamAccount.inc:1940 +msgid "from previous client only" +msgstr "len z predošlého klienta" + +#: ../lib/modules/posixAccount.inc:284 ../lib/modules/posixAccount.inc:336 +#: ../lib/modules/nisnetgroup.inc:121 ../lib/modules/groupOfNamesUser.inc:66 +msgid "group01,group02" +msgstr "skupina01,skupina02" + +#: ../lib/modules/freeRadius.inc:180 +msgid "group01;group02" +msgstr "skupina01;skupina02" + +#: ../lib/modules/zarafaDynamicGroup.inc:125 +#: ../lib/modules/zarafaGroup.inc:168 +msgid "group1@company.com,group2@company.com" +msgstr "skupina1@spolocnost.sk,skupina2@spolocnost.sk" + +#: ../lib/modules/zarafaDynamicGroup.inc:119 +#: ../lib/modules/zarafaGroup.inc:160 ../lib/modules/windowsGroup.inc:207 +#: ../lib/modules/windowsGroup.inc:215 +msgid "group@company.com" +msgstr "skupina@spolocnost.sk" + +#: ../templates/3rdParty/pla/lib/PageRender.php:471 +msgid "hint" +msgstr "tip" + +#: ../lib/modules/quota.inc:191 ../lib/modules/quota.inc:193 +msgid "hours" +msgstr "hodiny" + +#: ../lib/modules/windowsUser.inc:320 ../lib/modules/windowsUser.inc:326 +#: ../lib/modules/inetOrgPerson.inc:538 +msgid "http://www.company.com" +msgstr "http://www.spolocnost.sk" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:294 +msgid "import" +msgstr "import" + +#: ../lib/modules/sambaSamAccount.inc:1517 +#: ../lib/modules/sambaSamAccount.inc:1924 +msgid "input off, notify off" +msgstr "vstup vypnutý, oznámenie vypnuté" + +#: ../lib/modules/sambaSamAccount.inc:1516 +#: ../lib/modules/sambaSamAccount.inc:1923 +msgid "input off, notify on" +msgstr "vstup vypnutý, oznámenie zapnuté" + +#: ../lib/modules/sambaSamAccount.inc:1515 +#: ../lib/modules/sambaSamAccount.inc:1922 +msgid "input on, notify off" +msgstr "vstup zapnutý, oznámenie vypnuté" + +#: ../lib/modules/sambaSamAccount.inc:1514 +#: ../lib/modules/sambaSamAccount.inc:1921 +msgid "input on, notify on" +msgstr "vstup zapnutý, oznámenie zapnuté" + +#: ../help/help.inc:64 +msgid "" +"ldap://localhost:389 connects to localhost using a standard LDAP connection " +"on port 389" +msgstr "" +"ldap://localhost:389 sa pripája na lokálneho hostiteľa (localhost), pomocou " +"štandardného spojenia LDAP na porte 389" + +#: ../help/help.inc:66 +msgid "" +"ldaps://ldap.domain.com connects to ldap.domain.com using an encrypted LDAP " +"connection." +msgstr "" +"ldaps://ldap.domena.sk sa pripája na ldap.domena.sk, pomocou šifrovaného " +"spojenia LDAP." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:100 +msgid "list" +msgstr "zoznam" + +#: ../templates/3rdParty/pla/lib/config_default.php:494 +#: ../templates/3rdParty/pla/lib/ds.php:318 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:529 +msgid "login" +msgstr "prihlásenie" + +#: ../lib/modules/posixAccount.inc:361 +msgid "machines" +msgstr "stroje" + +#: ../lib/modules/inetLocalMailRecipient.inc:107 +msgid "mail.yourdomain.org" +msgstr "mail.vasadomena.sk" + +#: ../lib/modules/sambaSamAccount.inc:402 +#: ../lib/modules/sambaSamAccount.inc:526 +msgid "mydomain" +msgstr "mojadomena" + +#: ../lib/modules/sambaSamAccount.inc:459 +msgid "mygroup" +msgstr "mojaskupina" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:504 +msgid "new" +msgstr "nové" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:471 +#: ../lib/modules/zarafaDynamicGroup.inc:474 +#: ../lib/modules/zarafaContact.inc:557 ../lib/modules/zarafaGroup.inc:657 +#: ../lib/modules/zarafaGroup.inc:664 ../lib/modules/zarafaGroup.inc:667 +#: ../lib/modules/zarafaAddressList.inc:339 +#: ../lib/modules/zarafaAddressList.inc:342 +#: ../lib/modules/sambaSamAccount.inc:570 +#: ../lib/modules/sambaSamAccount.inc:1888 +#: ../lib/modules/sambaSamAccount.inc:1896 +#: ../lib/modules/sambaSamAccount.inc:1906 +#: ../lib/modules/sambaSamAccount.inc:1911 +#: ../lib/modules/sambaSamAccount.inc:1916 ../lib/modules/zarafaUser.inc:634 +#: ../lib/modules/zarafaUser.inc:1304 ../lib/modules/zarafaUser.inc:1319 +#: ../lib/modules/zarafaUser.inc:1330 ../lib/modules/zarafaUser.inc:1336 +#: ../lib/modules/windowsUser.inc:332 ../lib/modules/windowsUser.inc:333 +#: ../lib/modules/windowsUser.inc:334 ../lib/modules/windowsUser.inc:340 +#: ../lib/modules/windowsUser.inc:341 ../lib/modules/windowsUser.inc:342 +#: ../lib/modules/windowsUser.inc:348 ../lib/modules/windowsUser.inc:349 +#: ../lib/modules/windowsUser.inc:350 ../lib/modules/windowsUser.inc:356 +#: ../lib/modules/windowsUser.inc:357 ../lib/modules/windowsUser.inc:358 +#: ../lib/modules/windowsUser.inc:868 ../lib/modules/windowsUser.inc:1233 +#: ../lib/modules/windowsUser.inc:1238 ../lib/modules/windowsUser.inc:1243 +#: ../lib/modules/windowsUser.inc:1248 ../lib/modules/ppolicy.inc:35 +#: ../lib/modules/ppolicy.inc:474 ../lib/modules/ppolicy.inc:484 +#: ../lib/modules/ppolicy.inc:489 ../lib/modules/ppolicy.inc:496 +#: ../lib/modules/ppolicy.inc:499 ../lib/modules/generalInformation.inc:93 +#: ../lib/modules/zarafaServer.inc:377 ../lib/modules/customFields.inc:2122 +msgid "no" +msgstr "nie" + +#: ../templates/3rdParty/pla/lib/functions.php:1902 +msgid "no description available" +msgstr "bez popisnej hodnoty" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:68 +msgid "no entries" +msgstr "bez položiek" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:84 +msgid "no new attributes available for this entry" +msgstr "žiadne nové atribúty pre túto položku" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:135 +msgid "no new binary attributes available for this entry" +msgstr "žiadne nové binárne atribúty pre túto položku" + +#: ../templates/schema/schema.php:160 ../templates/schema/schema.php:229 +#: ../templates/schema/schema.php:240 ../templates/schema/schema.php:289 +#: ../templates/schema/schema.php:355 ../templates/schema/schema.php:370 +#: ../templates/schema/schema.php:404 ../templates/schema/schema.php:426 +#: ../templates/3rdParty/pla/lib/functions.php:2602 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1573 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1581 +msgid "none" +msgstr "nič" + +#: ../templates/3rdParty/pla/lib/PageRender.php:1109 +msgid "none, remove value" +msgstr "nič, odstrániť hodnotu" + +#: ../templates/schema/schema.php:216 +msgid "not applicable" +msgstr "nepoužiteľné" + +#: ../templates/schema/schema.php:167 ../templates/schema/schema.php:172 +#: ../templates/schema/schema.php:177 ../templates/schema/schema.php:210 +msgid "not specified" +msgstr "nezadané" + +#: ../help/help.inc:76 +msgid "" +"ou=People,dc=yourcompany,dc=com will read and store all accounts in this " +"subtree." +msgstr "" +"ou=People,dc=vasaspolocnost,dc=sk bude čítať a ukladať všetky účty v tomto " +"podstrome." + +#: ../lib/modules/eduPerson.inc:195 ../lib/modules/eduPerson.inc:201 +#: ../lib/modules/eduPerson.inc:207 +msgid "ou=accounts,dc=yourdomain,dc=org" +msgstr "ou=ucty,dc=vasadomena,dc=sk" + +#: ../lib/modules/posixAccount.inc:347 +msgid "pc01$" +msgstr "pc01$" + +#: ../lib/modules/posixAccount.inc:370 +msgid "pc01,Room 2.34" +msgstr "pc01,Miestnosť 123" + +#: ../lib/modules/hostObject.inc:86 +msgid "pc01,pc02" +msgstr "pc01,pc02" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +msgid "pixels" +msgstr "pixely" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:54 +msgid "read only" +msgstr "len na čítanie" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:251 +msgid "refresh" +msgstr "obnoviť" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2126 +msgid "rename" +msgstr "premenovať" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 ../lib/html.inc:718 +#: ../lib/html.inc:1609 ../lib/html.inc:2124 +msgid "required" +msgstr "povinné" + +#: ../lib/modules/sambaSamAccount.inc:1525 +#: ../lib/modules/sambaSamAccount.inc:1932 +msgid "reset" +msgstr "vymazať" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:237 +msgid "search" +msgstr "hľadať" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:472 +msgid "seconds" +msgstr "sekúnd" + +#: ../lib/modules/mitKerberos.inc:237 ../lib/modules/asteriskAccount.inc:389 +#: ../lib/modules/posixGroup.inc:391 ../lib/modules/sambaSamAccount.inc:414 +#: ../lib/modules/posixAccount.inc:312 ../lib/modules/windowsUser.inc:224 +#: ../lib/modules/inetOrgPerson.inc:2520 +#: ../lib/modules/asteriskVoicemail.inc:158 +#: ../lib/modules/heimdalKerberos.inc:201 +msgid "secret" +msgstr "tajné" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1263 +msgid "select the rdn attribute" +msgstr "vyberte atribút rdn" + +#: ../lib/modules/mitKerberos.inc:206 ../lib/modules/uidObject.inc:62 +#: ../lib/modules/posixAccount.inc:257 ../lib/modules/windowsUser.inc:216 +#: ../lib/modules/inetOrgPerson.inc:2511 +#: ../lib/modules/heimdalKerberos.inc:170 ../lib/modules/nisMailAlias.inc:99 +msgid "smiller" +msgstr "jhrasko" + +#: ../lib/modules/inetLocalMailRecipient.inc:95 +msgid "smiller@otherdomain.org" +msgstr "jhrasko@inadomena.sk" + +#: ../lib/modules/inetLocalMailRecipient.inc:101 +msgid "smiller@yourdomain.org" +msgstr "jhrasko@vasadomena.sk" + +#: ../lib/modules/ldapPublicKey.inc:76 +msgid "ssh-dss 234234 user@host" +msgstr "ssh-dss 234234 používateľ@stroj" + +#: ../templates/3rdParty/pla/lib/PageRender.php:882 +msgid "structural" +msgstr "štrukturálne" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:102 +msgid "table" +msgstr "tabuľka" + +#: ../lib/modules/asteriskExtension.inc:147 +msgid "test" +msgstr "test" + +#: ../lib/modules/asteriskExtension.inc:167 +msgid "test-start" +msgstr "test-start" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:122 +msgid "true" +msgstr "true" + +#: ../lib/modules/ipHost.inc:92 ../lib/modules/inetOrgPerson.inc:432 +#: ../lib/modules/aliasEntry.inc:64 ../lib/modules/qmailGroup.inc:274 +#: ../lib/modules/qmailGroup.inc:282 ../lib/modules/qmailGroup.inc:290 +msgid "uid=smiller,ou=People,dc=company,dc=com" +msgstr "uid=jhrasko,ou=People,dc=spolocnost,dc=sk" + +#: ../lib/modules/posixGroup.inc:385 +msgid "user01,user02,user03" +msgstr "pouziv01,pouziv02,pouziv03" + +#: ../lib/modules/qmailUser.inc:266 ../lib/modules/qmailUser.inc:272 +#: ../lib/modules/qmailUser.inc:294 ../lib/modules/eduPerson.inc:156 +#: ../lib/modules/windowsUser.inc:296 ../lib/modules/windowsUser.inc:302 +#: ../lib/modules/inetOrgPerson.inc:520 +#: ../lib/modules/asteriskVoicemail.inc:171 ../lib/modules/qmailGroup.inc:332 +#: ../lib/modules/qmailGroup.inc:340 ../lib/modules/qmailGroup.inc:348 +msgid "user@company.com" +msgstr "pouziv@spolocnost.sk" + +#: ../lib/modules/posixAccount.inc:277 +msgid "users" +msgstr "používatelia" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:59 +msgid "view entries" +msgstr "zobraziť položky" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +msgid "with " +msgstr "s" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:469 +#: ../lib/modules/zarafaDynamicGroup.inc:476 +#: ../lib/modules/zarafaContact.inc:559 ../lib/modules/zarafaGroup.inc:659 +#: ../lib/modules/zarafaGroup.inc:662 ../lib/modules/zarafaGroup.inc:669 +#: ../lib/modules/zarafaAddressList.inc:337 +#: ../lib/modules/zarafaAddressList.inc:344 +#: ../lib/modules/sambaSamAccount.inc:570 +#: ../lib/modules/sambaSamAccount.inc:1886 +#: ../lib/modules/sambaSamAccount.inc:1894 +#: ../lib/modules/sambaSamAccount.inc:1904 +#: ../lib/modules/sambaSamAccount.inc:1909 +#: ../lib/modules/sambaSamAccount.inc:1914 ../lib/modules/zarafaUser.inc:634 +#: ../lib/modules/zarafaUser.inc:1306 ../lib/modules/zarafaUser.inc:1322 +#: ../lib/modules/zarafaUser.inc:1332 ../lib/modules/zarafaUser.inc:1338 +#: ../lib/modules/windowsUser.inc:334 ../lib/modules/windowsUser.inc:342 +#: ../lib/modules/windowsUser.inc:350 ../lib/modules/windowsUser.inc:358 +#: ../lib/modules/windowsUser.inc:868 ../lib/modules/windowsUser.inc:1142 +#: ../lib/modules/windowsUser.inc:1235 ../lib/modules/windowsUser.inc:1240 +#: ../lib/modules/windowsUser.inc:1245 ../lib/modules/windowsUser.inc:1250 +#: ../lib/modules/ppolicy.inc:36 ../lib/modules/ppolicy.inc:486 +#: ../lib/modules/ppolicy.inc:491 ../lib/modules/ppolicy.inc:494 +#: ../lib/modules/ppolicy.inc:501 ../lib/modules/inetOrgPerson.inc:594 +#: ../lib/modules/generalInformation.inc:95 +#: ../lib/modules/zarafaServer.inc:379 ../lib/modules/customFields.inc:2122 +msgid "yes" +msgstr "áno" + +#~ msgid "Deleted account" +#~ msgstr "Odstránený účet" + +#~ msgid "Invalid account" +#~ msgstr "Neplatný účet" + +#~ msgid "Allow user input for this field." +#~ msgstr "Povoliť používateľský vstup pre toto pole." + +#~ msgid "Captions and labels" +#~ msgstr "Nadpisy a menovky" + +#~ msgid "Input fields" +#~ msgstr "Vstupné polia" + +#~ msgid "LDAP password" +#~ msgstr "Heslo LDAP" + +#~ msgid "LDAP user" +#~ msgstr "Používateľ LDAP" + +#~ msgid "Link to self service login page for your users" +#~ msgstr "Odkaz na samoobslužnej služby pre používateľov" + +#~ msgid "Manage self service profiles" +#~ msgstr "Spravovať samobslužné profily" + +#~ msgid "Page layout" +#~ msgstr "Vzhľad stránky" + +#~ msgid "" +#~ "Password contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +#~ "and #*,.;:_-+!%&/|?{[()]}=@$ !" +#~ msgstr "" +#~ "Heslo obsahuje neplatné znaky. Platné znaky sú: a-z, A-Z, 0-9 a #*,.;:_-+!" +#~ "%&/|?{[()]}=@$ !" + +#~ msgid "Self service configuration" +#~ msgstr "Nastavenie samoobslužnej služby" + +#~ msgid "Self service configuration editor" +#~ msgstr "Editor nastavenia samoobslužnej služby" + +#~ msgid "Self service login" +#~ msgstr "Prihlásenie samoobslužnej časti" + +#~ msgid "Set this field read-only." +#~ msgstr "nastavuje toto pole len na čítanie" + +#~ msgid "Sync Asterisk voicemail password with Unix password" +#~ msgstr "Synchronizovať heslo hlasovej schránky Asterisk s heslom Unix" + +#~ msgid "Sync Kerberos password with Unix password" +#~ msgstr "Synchronizovať heslo Kerberos s heslom Unix" + +#~ msgid "The TLS encryption could not be started." +#~ msgstr "Nemožno spustiť šifrovanie TLS." + +#~ msgid "The domain name needs to have at least 3 characters." +#~ msgstr "Doménové meno musí byť dlhé aspoň 3 znaky." + +#~ msgid "" +#~ "To disable login use /bin/false. The list of shells is read from lam/" +#~ "config/shells" +#~ msgstr "" +#~ "Na zakázanie prihlásenia použite /bin/false. Zoznam shellov je čítaný z " +#~ "lam/config/shells" + +#~ msgid "" +#~ "Unable to change your account. Maybe you do not have enough rights to " +#~ "change the settings." +#~ msgstr "" +#~ "Nemožno zmeniť váš účet. Možno nemáte dostatočné práva na zmenu nastavení." + +#~ msgid "Unable to read sambaSID attribute." +#~ msgstr "Nemožno čítať atribút sambaSID." + +#~ msgid "" +#~ "Unable to sync the time when the user can/must change his password " +#~ "because no domain was found." +#~ msgstr "" +#~ "Nemožno synchronizovať čas, kedy používateľ môže/musí zmeniť svoje heslo, " +#~ "pretože nebola nájdená doména." + +#~ msgid "" +#~ "You are using a capital letters. This can cause problems because Windows " +#~ "isn't case-sensitive." +#~ msgstr "" +#~ "Používate veľké písmená. Môže to spôsobovať problémy, pretože Windows " +#~ "nerozlišuje veľkosť písmen." + +#~ msgid "" +#~ "You are using a capital letters. This can cause problems because windows " +#~ "isn't case-sensitive." +#~ msgstr "" +#~ "Používate veľké písmená. Môže to spôsobovať problémy, pretože Windows " +#~ "nerozlišuje veľkosť písmen." + +#~ msgid "Country" +#~ msgstr "Krajina" + +#~ msgid "Country name is invalid!" +#~ msgstr "Meno krajiny nie je platné!" + +#~ msgid "Free/Busy interval" +#~ msgstr "Interval Voľný/Obsadený" + +#~ msgid "Free/Busy interval must be a number!" +#~ msgstr "Interval Vošný/Obsadený musí byť číslo!" + +#~ msgid "Germany" +#~ msgstr "Nemecko" + +#~ msgid "Mail quota" +#~ msgstr "Kvóta emailov" + +#~ msgid "Mail quota must be a number!" +#~ msgstr "Kvóta emailov musí byť číslo!" + +#~ msgid "" +#~ "The Cyrus mail quota for users in MBytes, leave blank for unlimited space." +#~ msgstr "" +#~ "Kvóta Cyrus mail pre používateľov v megabajtoch, nechajte prázdne pre " +#~ "neobmedzené miesto." + +#~ msgid "The country name of the user." +#~ msgstr "Meno krajiny používateľa." + +#~ msgid "" +#~ "This is the time limit (in days) for other users who want to check future " +#~ "appointments. If you leave this blank the default (60 days) will be set." +#~ msgstr "" +#~ "Časový limit (v dňoch) pre ostatných používateľov, ktorí chcú kontrolovať " +#~ "budúce stretnutia. Ak necháte toto pole prázdne, bude nastavená " +#~ "predvolená hodnota (60 dní)." + +#~ msgid "YourCompany, Human Resources" +#~ msgstr "VašaSpoločnosť, Ľudské zdroje" + +#~ msgid "%s DHCP(s) found" +#~ msgstr "Nájdené DHCP: %s" + +#~ msgid "%s NIS object(s) found" +#~ msgstr "Nájdené NIS: %s" + +#~ msgid "%s address list(s) found" +#~ msgstr "Nájdené zoznamy adries: %s" + +#~ msgid "%s alias(es) found" +#~ msgstr "Nájdené aliasy: %s" + +#~ msgid "%s automount entry(ies) found" +#~ msgstr "Nájdené položky automount: %s" + +#~ msgid "%s domain(s) found" +#~ msgstr "Nájdené domény: %s" + +#~ msgid "%s extension(s) found" +#~ msgstr "Nájdené rozšírenia: %s" + +#~ msgid "%s group(s) found" +#~ msgstr "Nájdené skupiny: %s" + +#~ msgid "%s host(s) found" +#~ msgstr "Nájdené stroje: %s" + +#~ msgid "%s object(s) found" +#~ msgstr "Nájdené objekty: %s" + +#~ msgid "%s policy(ies) found" +#~ msgstr "Nájdené politiky: %s" + +#~ msgid "%s sudo role(s) found" +#~ msgstr "Nájdené role sudo: %s" + +#~ msgid "%s user(s) found" +#~ msgstr "Nájdení používatelia: %s" + +#~ msgid "Add phpGroupWare extension" +#~ msgstr "Pridať rozšírenie phpGroupWare" + +#~ msgid "Compress" +#~ msgstr "Komprimovať" + +#~ msgid "Delete DHCP(s)" +#~ msgstr "Odstrániť DHCP" + +#~ msgid "Delete object" +#~ msgstr "Odstrániť Objekt" + +#~ msgid "Delete user(s)" +#~ msgstr "Odstrániť používateľa(ov)" + +#~ msgid "Group name(s)" +#~ msgstr "Meno skupiny(ín)" + +#~ msgid "Here you can specify if the account is active or inactive." +#~ msgstr "Tu môžete zadať, ši je účet aktívny alebo nie." + +#~ msgid "Host(s)" +#~ msgstr "Stroj(e)" + +#~ msgid "" +#~ "If you set this to \"true\" then the phpGroupware extension will be added." +#~ msgstr "" +#~ "Ak túto voľbu nastavíte na „pravda”, bude pridané rozšírenie phpGroupware." + +#~ msgid "" +#~ "In order to add these objectClass(es) to this entry, you must specify " +#~ "%s new attributes that this object class requires." +#~ msgstr "" +#~ "Aby ste mohli pridať tieto objectClass do tejto položky, musíte zadať " +#~ "%s nový atribút(y), ktoré táto trieda objektu vyžaduje." + +#~ msgid "Last login from" +#~ msgstr "Posledné prihlásenie z" + +#~ msgid "No extension(s) found!" +#~ msgstr "Nenájdené žiadne rozšírenie(a)!" + +#~ msgid "Please enter \"active\" or \"inactive\"." +#~ msgstr "Prosím, zadajte „aktívne” alebo „neaktívne”." + +#~ msgid "Reenter new master password" +#~ msgstr "Zadajte znova hlavné heslo" + +#~ msgid "Reenter profile password" +#~ msgstr "Potvrdenie hesla profilu" + +#~ msgid "Remove phpGroupWare extension" +#~ msgstr "Odstrániť rozšírenie phpGroupWare" + +#~ msgid "Run group(s)" +#~ msgstr "Skupina(y) na spustenie" + +#~ msgid "SSH public key(s)" +#~ msgstr "Verejný kľúč(e) SSH" + +#~ msgid "The password(s) were set to:" +#~ msgstr "Heslo(á) boli nastavené na:" + +#~ msgid "Unlock Samba account" +#~ msgstr "Odomknúť účet Samba" + +#~ msgid "" +#~ "User name of the user who should be created. Valid characters are: a-z,A-" +#~ "Z,0-9, .-_. If user name is already used user name will be expanded with " +#~ "a number. The next free number will be used. Warning: Older systems have " +#~ "problems with user names longer than 8 characters. You can not log in to " +#~ "Windows if user name is longer than 16 characters." +#~ msgstr "" +#~ "Meno používateľa, ktorý má byť vytvorený. Platné znaky sú: a-z,A-Z,0-9, .-" +#~ "_. Ak je už meno používateľa použité, bude rozšírené pomocou čísla. " +#~ "Použité bude najbližšie voľné číslo. Upozornenie: Staršie systémy majú " +#~ "problém s používateľskými menami, ktoré sú dlhšie ako 8 znakov. Nebudete " +#~ "sa môcť prihlásiť do Windows, ak je meno používateľa dlhšie ako 16 znakov." + +#~ msgid "User(s)" +#~ msgstr "Používateľ(ia)" + +#~ msgid "active" +#~ msgstr "aktívne" + +#~ msgid "inactive" +#~ msgstr "neaktívne" diff --git a/lam/locale/tr_TR/LC_MESSAGES/messages.mo b/lam/locale/tr_TR/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..7cac1fcd Binary files /dev/null and b/lam/locale/tr_TR/LC_MESSAGES/messages.mo differ diff --git a/lam/locale/tr_TR/LC_MESSAGES/messages.po b/lam/locale/tr_TR/LC_MESSAGES/messages.po new file mode 100644 index 00000000..baa3e1dc --- /dev/null +++ b/lam/locale/tr_TR/LC_MESSAGES/messages.po @@ -0,0 +1,14203 @@ +# +# LDAP Account Manager +# +msgid "" +msgstr "" +"Project-Id-Version: LAM\n" +"Report-Msgid-Bugs-To: post@rolandgruber.de\n" +"PO-Revision-Date: 2013-11-29 17:15+0200\n" +"Last-Translator: EYLÜL YASA \n" +"Language-Team: Turkish\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"POT-Creation-Date: \n" +"X-Generator: Poedit 1.5.7\n" +"Language: Turkish\n" + +#: ../lib/modules/zarafaContact.inc:88 ../lib/modules/zarafaContact.inc:91 +#: ../lib/modules/zarafaContact.inc:94 ../lib/modules/zarafaContact.inc:115 +#: ../lib/modules/zarafaGroup.inc:91 ../lib/modules/zarafaGroup.inc:94 +#: ../lib/modules/zarafaGroup.inc:97 ../lib/modules/zarafaGroup.inc:124 +#: ../lib/modules/zarafaUser.inc:137 ../lib/modules/zarafaUser.inc:140 +#: ../lib/modules/zarafaUser.inc:143 ../lib/modules/zarafaUser.inc:213 +msgid "\"Send as\" attribute" +msgstr "\"Send as\" öznitelik" + +#: ../lib/modules/zarafaContact.inc:72 ../lib/modules/zarafaContact.inc:139 +#: ../lib/modules/zarafaContact.inc:162 ../lib/modules/zarafaContact.inc:176 +#: ../lib/modules/zarafaContact.inc:215 ../lib/modules/zarafaContact.inc:344 +#: ../lib/modules/zarafaContact.inc:554 ../lib/modules/zarafaGroup.inc:87 +#: ../lib/modules/zarafaGroup.inc:132 ../lib/modules/zarafaGroup.inc:182 +#: ../lib/modules/zarafaGroup.inc:200 ../lib/modules/zarafaGroup.inc:216 +#: ../lib/modules/zarafaGroup.inc:259 ../lib/modules/zarafaGroup.inc:413 +#: ../lib/modules/zarafaGroup.inc:656 ../lib/modules/zarafaUser.inc:97 +#: ../lib/modules/zarafaUser.inc:194 ../lib/modules/zarafaUser.inc:237 +#: ../lib/modules/zarafaUser.inc:396 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:451 ../lib/modules/zarafaUser.inc:495 +#: ../lib/modules/zarafaUser.inc:871 ../lib/modules/zarafaUser.inc:1300 +#: ../lib/modules/zarafaUser.inc:1531 +msgid "\"Send as\" privileges" +msgstr "\"Send as\" öncelikler" + +#: ../lib/modules/posixAccount.inc:508 +msgid "" +"$user and $group will be replaced with user name and primary group name." +msgstr "" +"$user ve $group, kullanıcı adı ve birincil grup adı olarak değiştirilecektir" + +#: ../lib/modules/nisnetgroup.inc:127 +msgid "(host1,user1,example.com);(host2,user2,example.com)" +msgstr "(host1,user1,example.com);(host2,user2,example.com)" + +#: ../lib/modules/qmailUser.inc:361 ../lib/modules/posixAccount.inc:305 +msgid "/home/smiller" +msgstr "/home/smiller" + +#: ../lib/modules/inetOrgPerson.inc:488 +#: ../lib/modules/asteriskVoicemail.inc:177 +msgid "123-123-1234" +msgstr "123-123-1234" + +#: ../lib/modules/inetOrgPerson.inc:504 +msgid "123-123-1235" +msgstr "123-123-1235" + +#: ../lib/modules/inetOrgPerson.inc:512 +msgid "123-123-1236" +msgstr "123-123-1236" + +#: ../lib/modules/windowsUser.inc:308 ../lib/modules/windowsUser.inc:314 +#: ../lib/modules/inetOrgPerson.inc:496 +msgid "123-124-1234" +msgstr "123-124-1234" + +#: ../lib/modules/windowsUser.inc:266 ../lib/modules/inetOrgPerson.inc:480 +msgid "12345" +msgstr "12345" + +#: ../lib/modules/dhcp_settings.inc:167 +msgid "" +"B-Node (0x01): Broadcast.
    The client tries to find other " +"workstations via broadcasting\n" +"(works only inside the same collision domain, viz. the same subnet).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"The client contacts a Netbios name server (NBNS) from Microsoft Windows Name " +"Service (WINS) for name resolution.

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"The node tries broadcasting first. If that fails then it tries WINS.

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"The node tries WINS first. If that fails it tries broadcasting.

    \n" +"\n" +"By default, the nodes are configured as H-Nodes which fits for small " +"networks. In large networks Point-to-Point (0x02) should be used." +msgstr "" +"B-Node (0x01): Broadcast.
    İstemci , broadcasting kanalıyla diğer " +"iş istasyonlarını bulmayı dener \n" +"( yalnızca , özdeş çarpışma alanları içerisinde çalışır yani aynı alt ağ) " +"

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"İstemci , Microsoft Windows Name Service (WINS) dan gelen bir Netbios name " +"server (NBNS) ile bağlantı kurar." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:145 +#, php-format +msgid "Maximum length: %s characters" +msgstr "En büyük uzunluk : %s karakter" + +#: ../lib/modules/selfRegistration.inc:540 +#: ../lib/modules/passwordSelfReset.inc:1456 +msgid "" +"A confirmation mail was sent. Please click on the link in the mail to " +"proceed." +msgstr "" +"Bir doğrulama e-postası gönderildi. Devam etmek için lütfen e-postada yer " +"alan bağlantının üzerine tıklayınız" + +#: ../lib/modules/device.inc:75 +msgid "A description for this device." +msgstr "Bu aygıt için bir tanımlama" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +msgid "A list of attributes to display in the results (comma-separated)" +msgstr "" +"Sonuçlar içerisinde görüntüleme için attribute listesi (virgülle ayrılmış)" + +#: ../lib/modules/sudoRole.inc:84 ../lib/modules/sudoRole.inc:113 +msgid "A list of options (e.g. !authenticate)." +msgstr "Sıralama seçeneklerinin bir listesi (örneğin !kimlik doğrulama)" + +#: ../templates/massBuildAccounts.php:135 +msgid "A required column is missing in your CSV file." +msgstr "Gerekli bir sütun, CSV dosyanızın içerisinde yer almıyor." + +#: ../lib/modules/kolabUser.inc:115 +msgid "" +"A user may define who is allowed to act on behalf of herself. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"Bir kullanıcı, onun adına hareket etmesi hususunda kendisine izin veren " +"şahsı tanımlayabilir. Bu özellik e-posta göndermek için Kolab smtp servisi " +"(Postfix) kullanılırken kontrol edilir." + +#: ../templates/3rdParty/pla/lib/import_functions.php:593 +msgid "A valid deleteoldrdn attribute should be specified" +msgstr "Geçerli bir eski RDN silme özniteliği tanımlanmalıdır." + +#: ../templates/3rdParty/pla/lib/import_functions.php:237 +msgid "A valid dn line is required" +msgstr "Geçerli bir dn satırı gereklidir." + +#: ../templates/3rdParty/pla/lib/import_functions.php:596 +msgid "A valid newrdn attribute should be specified" +msgstr "Geçerli bir yeni RDN özniteliği belirlenmelidir." + +#: ../templates/3rdParty/pla/lib/import_functions.php:587 +msgid "A valid newsuperior attribute should be specified" +msgstr "Geçerli bir newsuperior özniteliği belirlenmelidir" + +#: ../lib/modules/asteriskAccount.inc:122 +#: ../lib/modules/asteriskAccount.inc:251 +#: ../lib/modules/asteriskAccount.inc:333 +#: ../lib/modules/asteriskAccount.inc:409 +#: ../lib/modules/asteriskAccount.inc:701 +#: ../lib/modules/asteriskAccount.inc:1193 +msgid "AMA flags" +msgstr "AMA işaretleri" + +#: ../templates/serverInfo.php:342 +msgid "Abandon" +msgstr "Hizmet dışı kalma" + +#: ../templates/lists/changePassword.php:659 +msgid "Aborted password change." +msgstr "İptal edilen kullanıcı erişim şifresini değiştirme" + +#: ../lib/modules/sambaSamAccount.inc:555 +msgid "Abu Dhabi, Muscat, Baku" +msgstr "Abu Dabi, Muskat, Bakü" + +#: ../templates/config/confmain.php:263 ../help/help.inc:105 +msgid "Access level" +msgstr "Erişim seviyesi" + +#: ../lib/modules/account.inc:58 +msgid "Account" +msgstr "Hesap" + +#: ../templates/massBuildAccounts.php:201 ../lib/modules/kolabGroup.inc:159 +#: ../lib/modules/kolabGroup.inc:161 ../lib/modules/kolabGroup.inc:163 +#: ../lib/modules/kolabGroup.inc:165 ../lib/modules/mitKerberos.inc:281 +#: ../lib/modules/mitKerberos.inc:282 ../lib/modules/mitKerberos.inc:283 +#: ../lib/modules/mitKerberos.inc:285 ../lib/modules/mitKerberos.inc:287 +#: ../lib/modules/mitKerberos.inc:288 +#: ../lib/modules/zarafaDynamicGroup.inc:190 +#: ../lib/modules/zarafaDynamicGroup.inc:192 +#: ../lib/modules/zarafaDynamicGroup.inc:194 +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:197 +#: ../lib/modules/zarafaDynamicGroup.inc:198 ../lib/modules/ipHost.inc:109 +#: ../lib/modules/ipHost.inc:110 ../lib/modules/asteriskAccount.inc:620 +#: ../lib/modules/asteriskAccount.inc:623 +#: ../lib/modules/asteriskAccount.inc:626 +#: ../lib/modules/asteriskAccount.inc:629 +#: ../lib/modules/asteriskAccount.inc:631 +#: ../lib/modules/asteriskAccount.inc:633 +#: ../lib/modules/asteriskAccount.inc:635 +#: ../lib/modules/asteriskAccount.inc:637 +#: ../lib/modules/asteriskAccount.inc:639 ../lib/modules/account.inc:118 +#: ../lib/modules/ieee802device.inc:89 ../lib/modules/puppetClient.inc:178 +#: ../lib/modules/puppetClient.inc:180 ../lib/modules/puppetClient.inc:182 +#: ../lib/modules/puppetClient.inc:183 ../lib/modules/qmailUser.inc:442 +#: ../lib/modules/qmailUser.inc:444 ../lib/modules/qmailUser.inc:446 +#: ../lib/modules/qmailUser.inc:447 ../lib/modules/qmailUser.inc:448 +#: ../lib/modules/qmailUser.inc:450 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:454 ../lib/modules/qmailUser.inc:457 +#: ../lib/modules/qmailUser.inc:460 ../lib/modules/qmailUser.inc:462 +#: ../lib/modules/qmailUser.inc:463 ../lib/modules/qmailUser.inc:464 +#: ../lib/modules/zarafaContact.inc:175 ../lib/modules/zarafaContact.inc:177 +#: ../lib/modules/zarafaContact.inc:178 ../lib/modules/zarafaContact.inc:179 +#: ../lib/modules/zarafaContact.inc:180 ../lib/modules/windowsHost.inc:125 +#: ../lib/modules/posixGroup.inc:577 ../lib/modules/posixGroup.inc:581 +#: ../lib/modules/posixGroup.inc:582 ../lib/modules/zarafaGroup.inc:210 +#: ../lib/modules/zarafaGroup.inc:212 ../lib/modules/zarafaGroup.inc:213 +#: ../lib/modules/zarafaGroup.inc:214 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:217 ../lib/modules/device.inc:134 +#: ../lib/modules/device.inc:135 ../lib/modules/dhcp_settings.inc:314 +#: ../lib/modules/dhcp_settings.inc:316 ../lib/modules/dhcp_settings.inc:318 +#: ../lib/modules/dhcp_settings.inc:320 ../lib/modules/dhcp_settings.inc:322 +#: ../lib/modules/dhcp_settings.inc:323 ../lib/modules/dhcp_settings.inc:324 +#: ../lib/modules/dhcp_settings.inc:326 ../lib/modules/dhcp_settings.inc:328 +#: ../lib/modules/dhcp_settings.inc:332 ../lib/modules/eduPerson.inc:237 +#: ../lib/modules/eduPerson.inc:239 ../lib/modules/eduPerson.inc:241 +#: ../lib/modules/eduPerson.inc:243 ../lib/modules/eduPerson.inc:244 +#: ../lib/modules/eduPerson.inc:245 ../lib/modules/eduPerson.inc:246 +#: ../lib/modules/quota.inc:52 ../lib/modules/quota.inc:54 +#: ../lib/modules/quota.inc:56 ../lib/modules/quota.inc:58 +#: ../lib/modules/quota.inc:60 ../lib/modules/quota.inc:62 +#: ../lib/modules/quota.inc:63 ../lib/modules/zarafaAddressList.inc:163 +#: ../lib/modules/zarafaAddressList.inc:164 +#: ../lib/modules/zarafaAddressList.inc:165 +#: ../lib/modules/sambaSamAccount.inc:96 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:102 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:107 +#: ../lib/modules/sambaSamAccount.inc:108 +#: ../lib/modules/sambaSamAccount.inc:109 +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 +#: ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/sambaSamAccount.inc:117 +#: ../lib/modules/sambaSamAccount.inc:118 +#: ../lib/modules/sambaSamAccount.inc:120 +#: ../lib/modules/sambaSamAccount.inc:121 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/posixAccount.inc:107 ../lib/modules/posixAccount.inc:111 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/posixAccount.inc:124 +#: ../lib/modules/posixAccount.inc:126 ../lib/modules/posixAccount.inc:127 +#: ../lib/modules/posixAccount.inc:128 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/zarafaUser.inc:441 ../lib/modules/zarafaUser.inc:443 +#: ../lib/modules/zarafaUser.inc:445 ../lib/modules/zarafaUser.inc:446 +#: ../lib/modules/zarafaUser.inc:448 ../lib/modules/zarafaUser.inc:450 +#: ../lib/modules/zarafaUser.inc:452 ../lib/modules/zarafaUser.inc:453 +#: ../lib/modules/zarafaUser.inc:454 ../lib/modules/zarafaUser.inc:455 +#: ../lib/modules/zarafaUser.inc:456 ../lib/modules/zarafaUser.inc:457 +#: ../lib/modules/zarafaUser.inc:458 ../lib/modules/zarafaUser.inc:459 +#: ../lib/modules/ppolicyUser.inc:86 ../lib/modules/windowsUser.inc:444 +#: ../lib/modules/windowsUser.inc:446 ../lib/modules/windowsUser.inc:448 +#: ../lib/modules/windowsUser.inc:450 ../lib/modules/windowsUser.inc:452 +#: ../lib/modules/windowsUser.inc:454 ../lib/modules/windowsUser.inc:456 +#: ../lib/modules/windowsUser.inc:458 ../lib/modules/windowsUser.inc:460 +#: ../lib/modules/windowsUser.inc:462 ../lib/modules/windowsUser.inc:464 +#: ../lib/modules/windowsUser.inc:1022 ../lib/modules/windowsUser.inc:1031 +#: ../lib/modules/windowsUser.inc:1040 ../lib/modules/windowsUser.inc:1051 +#: ../lib/modules/windowsUser.inc:1087 ../lib/modules/kolabUser.inc:212 +#: ../lib/modules/kolabUser.inc:214 ../lib/modules/kolabUser.inc:216 +#: ../lib/modules/kolabUser.inc:218 ../lib/modules/kolabUser.inc:220 +#: ../lib/modules/kolabUser.inc:222 ../lib/modules/ddns.inc:145 +#: ../lib/modules/nisObject.inc:117 ../lib/modules/sambaGroupMapping.inc:590 +#: ../lib/modules/sambaGroupMapping.inc:591 +#: ../lib/modules/shadowAccount.inc:58 ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/shadowAccount.inc:62 ../lib/modules/shadowAccount.inc:64 +#: ../lib/modules/shadowAccount.inc:66 ../lib/modules/shadowAccount.inc:67 +#: ../lib/modules/automount.inc:108 ../lib/modules/sambaDomain.inc:202 +#: ../lib/modules/sambaDomain.inc:204 ../lib/modules/sambaDomain.inc:206 +#: ../lib/modules/sambaDomain.inc:208 ../lib/modules/sambaDomain.inc:210 +#: ../lib/modules/sambaDomain.inc:212 ../lib/modules/inetOrgPerson.inc:65 +#: ../lib/modules/inetOrgPerson.inc:67 ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:71 ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:75 ../lib/modules/inetOrgPerson.inc:77 +#: ../lib/modules/inetOrgPerson.inc:79 ../lib/modules/inetOrgPerson.inc:81 +#: ../lib/modules/inetOrgPerson.inc:83 ../lib/modules/inetOrgPerson.inc:85 +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:89 +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:93 +#: ../lib/modules/inetOrgPerson.inc:94 ../lib/modules/inetOrgPerson.inc:95 +#: ../lib/modules/inetOrgPerson.inc:98 ../lib/modules/inetOrgPerson.inc:99 +#: ../lib/modules/inetOrgPerson.inc:100 ../lib/modules/systemQuotas.inc:91 +#: ../lib/modules/systemQuotas.inc:93 ../lib/modules/systemQuotas.inc:95 +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:99 +#: ../lib/modules/systemQuotas.inc:101 ../lib/modules/systemQuotas.inc:103 +#: ../lib/modules/freeRadius.inc:243 ../lib/modules/freeRadius.inc:245 +#: ../lib/modules/freeRadius.inc:247 ../lib/modules/freeRadius.inc:249 +#: ../lib/modules/freeRadius.inc:251 ../lib/modules/freeRadius.inc:253 +#: ../lib/modules/sudoRole.inc:224 ../lib/modules/sudoRole.inc:226 +#: ../lib/modules/sudoRole.inc:228 ../lib/modules/sudoRole.inc:230 +#: ../lib/modules/sudoRole.inc:232 ../lib/modules/sudoRole.inc:234 +#: ../lib/modules/zarafaServer.inc:167 ../lib/modules/zarafaServer.inc:169 +#: ../lib/modules/zarafaServer.inc:171 ../lib/modules/zarafaServer.inc:172 +#: ../lib/modules/asteriskVoicemail.inc:206 +#: ../lib/modules/asteriskVoicemail.inc:212 +#: ../lib/modules/asteriskVoicemail.inc:214 +#: ../lib/modules/inetLocalMailRecipient.inc:124 +#: ../lib/modules/inetLocalMailRecipient.inc:126 +#: ../lib/modules/inetLocalMailRecipient.inc:128 +#: ../lib/modules/aliasEntry.inc:79 ../lib/modules/qmailGroup.inc:414 +#: ../lib/modules/qmailGroup.inc:416 ../lib/modules/qmailGroup.inc:419 +#: ../lib/modules/qmailGroup.inc:421 ../lib/modules/qmailGroup.inc:423 +#: ../lib/modules/qmailGroup.inc:425 ../lib/modules/qmailGroup.inc:426 +#: ../lib/modules/qmailGroup.inc:427 ../lib/modules/qmailGroup.inc:428 +#: ../lib/modules/qmailGroup.inc:429 ../lib/modules/qmailGroup.inc:430 +#: ../lib/modules/authorizedServiceObject.inc:123 +#: ../lib/modules/heimdalKerberos.inc:245 +#: ../lib/modules/heimdalKerberos.inc:246 +#: ../lib/modules/heimdalKerberos.inc:247 +#: ../lib/modules/heimdalKerberos.inc:249 +#: ../lib/modules/heimdalKerberos.inc:251 ../lib/modules/windowsGroup.inc:258 +#: ../lib/modules/windowsGroup.inc:260 ../lib/modules/windowsGroup.inc:262 +#: ../lib/modules/windowsGroup.inc:263 ../lib/modules/windowsGroup.inc:264 +#: ../lib/modules/nisMailAlias.inc:115 ../lib/modules/nisMailAlias.inc:117 +#: ../lib/modules/hostObject.inc:104 +#, php-format +msgid "Account %s:" +msgstr "Hesap %s:" + +#: ../lib/types/asteriskExt.inc:95 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskAccount.inc:102 +#: ../lib/modules/asteriskAccount.inc:317 +#: ../lib/modules/asteriskAccount.inc:329 +#: ../lib/modules/asteriskAccount.inc:373 +#: ../lib/modules/asteriskAccount.inc:671 +#: ../lib/modules/asteriskAccount.inc:1189 +#: ../lib/modules/asteriskExtension.inc:91 +#: ../lib/modules/asteriskExtension.inc:122 +#: ../lib/modules/asteriskExtension.inc:129 +#: ../lib/modules/asteriskExtension.inc:145 +#: ../lib/modules/asteriskExtension.inc:299 +#: ../lib/modules/asteriskExtension.inc:805 +#: ../lib/modules/asteriskVoicemail.inc:82 +#: ../lib/modules/asteriskVoicemail.inc:118 +#: ../lib/modules/asteriskVoicemail.inc:128 +#: ../lib/modules/asteriskVoicemail.inc:142 +#: ../lib/modules/asteriskVoicemail.inc:244 +#: ../lib/modules/asteriskVoicemail.inc:389 +msgid "Account context" +msgstr "Hesap içeriği" + +#: ../lib/modules/selfRegistration.inc:387 +msgid "Account creation" +msgstr "Hesap oluşturma" + +#: ../lib/modules/selfRegistration.inc:77 +msgid "Account creation confirmation" +msgstr "Hesap oluşturmayı doğrulama" + +#: ../templates/masscreate.php:124 +msgid "Account creation via file upload" +msgstr "Dosya yükleme kanalıyla hesap oluşturma" + +#: ../lib/modules/posixAccount.inc:515 +msgid "Account deactivated" +msgstr "Hesabı devre dışı bırakma" + +#: ../templates/lists/changePassword.php:261 +msgid "Account details" +msgstr "Hesap detayları" + +#: ../lib/types/user.inc:104 ../lib/modules/mitKerberos.inc:117 +#: ../lib/modules/mitKerberos.inc:211 ../lib/modules/mitKerberos.inc:244 +#: ../lib/modules/mitKerberos.inc:386 ../lib/modules/mitKerberos.inc:635 +#: ../lib/modules/mitKerberos.inc:784 ../lib/modules/sambaSamAccount.inc:335 +#: ../lib/modules/sambaSamAccount.inc:450 +#: ../lib/modules/sambaSamAccount.inc:1164 +#: ../lib/modules/sambaSamAccount.inc:1422 +#: ../lib/modules/sambaSamAccount.inc:1714 +#: ../lib/modules/shadowAccount.inc:121 ../lib/modules/shadowAccount.inc:186 +#: ../lib/modules/shadowAccount.inc:226 ../lib/modules/shadowAccount.inc:343 +#: ../lib/modules/shadowAccount.inc:444 ../lib/modules/shadowAccount.inc:490 +#: ../lib/modules/heimdalKerberos.inc:95 +#: ../lib/modules/heimdalKerberos.inc:180 +#: ../lib/modules/heimdalKerberos.inc:212 +#: ../lib/modules/heimdalKerberos.inc:318 +#: ../lib/modules/heimdalKerberos.inc:541 +#: ../lib/modules/heimdalKerberos.inc:676 +msgid "Account expiration date" +msgstr "Hesap oluşum tarihi" + +#: ../lib/modules/shadowAccount.inc:162 +msgid "Account inactive" +msgstr "Hesabı devre dışı bırakma" + +#: ../lib/modules/sambaSamAccount.inc:275 +#: ../lib/modules/sambaSamAccount.inc:281 +#: ../lib/modules/sambaSamAccount.inc:442 +#: ../lib/modules/sambaSamAccount.inc:1132 +#: ../lib/modules/sambaSamAccount.inc:1710 ../lib/modules/windowsUser.inc:171 +#: ../lib/modules/windowsUser.inc:330 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:563 ../lib/modules/windowsUser.inc:1237 +msgid "Account is deactivated" +msgstr "Devre dışı bırakılan hesap" + +#: ../lib/modules/sambaSamAccount.inc:278 +#: ../lib/modules/sambaSamAccount.inc:1138 ../lib/modules/windowsUser.inc:174 +#: ../lib/modules/windowsUser.inc:544 +msgid "Account is locked" +msgstr "Kilitlenen hesap" + +#: ../templates/delete.php:99 +msgid "Account name:" +msgstr "Hesap adı" + +#: ../lib/types/user.inc:300 ../lib/types/user.inc:714 +#: ../lib/types/user.inc:848 ../lib/modules/qmailUser.inc:204 +#: ../lib/modules/qmailUser.inc:276 ../lib/modules/qmailUser.inc:395 +#: ../lib/modules/qmailUser.inc:602 ../lib/modules/qmailUser.inc:1204 +msgid "Account status" +msgstr "Hesap durumu" + +#: ../templates/masscreate.php:151 ../lib/modules/asteriskAccount.inc:110 +#: ../lib/modules/asteriskAccount.inc:318 +#: ../lib/modules/asteriskAccount.inc:331 +#: ../lib/modules/asteriskAccount.inc:393 +#: ../lib/modules/asteriskAccount.inc:679 +#: ../lib/modules/asteriskAccount.inc:1191 ../lib/modules/customFields.inc:440 +#: ../lib/modules/customFields.inc:488 +msgid "Account type" +msgstr "Hesap tipi" + +#: ../templates/config/confmodules.php:168 +#: ../templates/config/confmain.php:209 +#: ../templates/config/moduleSettings.php:167 +#: ../templates/config/conftypes.php:186 +msgid "Account types" +msgstr "Hesap tipleri" + +#: ../help/help.inc:107 +msgid "Account types and modules" +msgstr "Hesap tipleri ve modüller" + +#: ../help/help.inc:109 +msgid "" +"Account types define which sorts of LDAP entries (e.g. users and groups) " +"should be managed. The account modules define which properties (e.g. Unix " +"and Samba) can be edited." +msgstr "" +"LDAP girdilerinin türleri olan hesap tiplerinin tanımlanması ( örneğin " +"kullanıcılar ve gruplar) yönetilmelidir. Hesap modülleri tanımlanmasında, " +"örneğin Unix ve Samba gibi özellikler düzenlenebilir." + +#: ../lib/modules.inc:1281 +msgid "Account was created successfully." +msgstr "Hesap başarıyla oluşturuldu." + +#: ../templates/lists/changePassword.php:689 +#: ../templates/lists/changePassword.php:741 +#: ../templates/lists/changePassword.php:787 ../lib/modules.inc:1284 +msgid "Account was modified successfully." +msgstr "Hesap başarıyla değiştirildi." + +#: ../lib/modules/customScripts.inc:134 +msgid "Action type" +msgstr "Eylem tipi" + +#: ../lib/modules/ddns.inc:74 ../lib/modules/ddns.inc:361 +msgid "Activate DynDNS" +msgstr "DynDNS aktivasyonu" + +#: ../templates/config/confmain.php:243 +#: ../templates/selfService/adminMain.php:413 +msgid "Activate TLS" +msgstr "TLS aktivasyonu" + +#: ../lib/modules/sambaSamAccount.inc:342 +msgid "Activate this checkbox to allow this user to use the terminal service." +msgstr "" +"Kullanıcıya terminal servis kullanımı izni vermek için bu onay kutusunu " +"aktifleştir" + +#: ../lib/modules/sambaSamAccount.inc:363 +msgid "Activate this checkbox to connect drives from the client machine." +msgstr "" +"İstemci makineden, sürücü bağlantısı sağlanabilmesi için bu onay kutusunu " +"aktifleştir" + +#: ../lib/modules/sambaSamAccount.inc:366 +msgid "Activate this checkbox to connect printers from the client machine." +msgstr "" +"İstemci makineden yazıcı bağlantısı kurabilmek için, bu onay kutusunu " +"aktifleştir" + +#: ../lib/modules/sambaSamAccount.inc:351 +msgid "" +"Activate this checkbox to inherit the initial program and working directory " +"from the client machine." +msgstr "" +"Başlangıç programı ve geçerli dizin ayarlarını istemci makineden almak için " +"bu onay kutusunu aktifleştir" + +#: ../lib/modules/sambaSamAccount.inc:369 +msgid "Activate this checkbox to set the client's printer as default printer." +msgstr "" +"İstemci yazıcısını önceden belirlenmiş yazıcı olarak ayarlanmak için bu onay " +"kutusunu aktifleştir" + +#: ../lib/modules/posixAccount.inc:471 +msgid "Activating this checkbox will remove the user's home directory." +msgstr "" +"Bu onay kutusunun aktivasyonu kullanıcının ana dizinini kaldırılacaktır." + +#: ../lib/types/zarafaAddressListType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:93 +#: ../lib/modules/zarafaDynamicGroup.inc:76 +#: ../lib/modules/zarafaDynamicGroup.inc:137 +#: ../lib/modules/zarafaDynamicGroup.inc:161 +#: ../lib/modules/zarafaDynamicGroup.inc:274 +#: ../lib/modules/zarafaDynamicGroup.inc:473 ../lib/modules/qmailUser.inc:41 +#: ../lib/modules/qmailUser.inc:278 ../lib/modules/zarafaContact.inc:68 +#: ../lib/modules/zarafaContact.inc:145 ../lib/modules/zarafaContact.inc:243 +#: ../lib/modules/zarafaGroup.inc:83 ../lib/modules/zarafaGroup.inc:148 +#: ../lib/modules/zarafaGroup.inc:189 ../lib/modules/zarafaGroup.inc:298 +#: ../lib/modules/zarafaGroup.inc:666 ../lib/modules/zarafaAddressList.inc:64 +#: ../lib/modules/zarafaAddressList.inc:113 +#: ../lib/modules/zarafaAddressList.inc:135 +#: ../lib/modules/zarafaAddressList.inc:215 +#: ../lib/modules/zarafaAddressList.inc:341 ../lib/modules/zarafaUser.inc:77 +#: ../lib/modules/zarafaUser.inc:202 ../lib/modules/zarafaUser.inc:296 +#: ../lib/modules/zarafaUser.inc:626 ../lib/modules/fixed_ip.inc:100 +#: ../lib/modules/fixed_ip.inc:366 ../lib/modules/fixed_ip.inc:562 +msgid "Active" +msgstr "Aktif" + +#: ../templates/config/conftypes.php:232 +msgid "Active account types" +msgstr "Aktif hesap tipleri" + +#: ../templates/serverInfo.php:307 ../templates/serverInfo.php:384 +#: ../templates/config/profmanage.php:251 +#: ../templates/config/confmodules.php:305 +#: ../templates/config/conftypes.php:223 +#: ../templates/selfService/profManage.php:209 +#: ../templates/pdfedit/pdfpage.php:596 ../templates/pdfedit/pdfpage.php:606 +#: ../templates/pdfedit/pdfpage.php:616 ../templates/pdfedit/pdfpage.php:630 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1206 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1210 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:78 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:121 +#: ../lib/modules/zarafaContact.inc:379 ../lib/modules/zarafaGroup.inc:448 +#: ../lib/modules/device.inc:259 ../lib/modules/zarafaUser.inc:906 +#: ../lib/modules/zarafaUser.inc:1528 ../lib/modules/zarafaUser.inc:1560 +#: ../lib/modules/kolabUser.inc:786 ../lib/modules/kolabUser.inc:834 +#: ../lib/modules/sambaGroupMapping.inc:385 +#: ../lib/modules/sambaGroupMapping.inc:476 +#: ../lib/modules/ldapPublicKey.inc:295 ../lib/modules/ldapPublicKey.inc:305 +#: ../lib/modules/nisnetgroup.inc:275 ../lib/modules/inetOrgPerson.inc:2185 +#: ../lib/modules/sudoRole.inc:269 ../lib/modules/sudoRole.inc:296 +#: ../lib/modules/sudoRole.inc:323 ../lib/modules/sudoRole.inc:350 +#: ../lib/modules/sudoRole.inc:377 ../lib/modules/sudoRole.inc:404 +#: ../lib/modules/customFields.inc:998 ../lib/modules/qmailGroup.inc:815 +#: ../lib/modules/windowsGroup.inc:510 ../lib/modules/groupOfNames.inc:338 +#: ../lib/modules/groupOfNames.inc:473 +msgid "Add" +msgstr "Ekle" + +#: ../lib/modules/asteriskAccount.inc:968 +msgid "Add Asterisk account" +msgstr "Asterisk hesabı ekle" + +#: ../lib/modules/asteriskVoicemail.inc:288 +msgid "Add Asterisk voicemail extension" +msgstr "Asterisk sesli posta uzantısı ekle" + +#: ../lib/modules/authorizedServiceObject.inc:195 +msgid "Add Authorized Service extension" +msgstr "Yetkili servis uzantısı ekle" + +#: ../lib/modules/eduPerson.inc:481 +msgid "Add EDU person extension" +msgstr "EDU kişi uzantısı ekle" + +#: ../lib/modules/freeRadius.inc:345 +msgid "Add FreeRadius extension" +msgstr "FreeRadius uzantısı ekle" + +#: ../lib/modules/ipHost.inc:181 +msgid "Add IP address extension" +msgstr "IP adres uzantısı ekle" + +#: ../lib/modules/mitKerberos.inc:479 ../lib/modules/heimdalKerberos.inc:399 +msgid "Add Kerberos extension" +msgstr "Kerberos uzantısı ekle" + +#: ../lib/modules/kolabGroup.inc:201 ../lib/modules/kolabUser.inc:362 +msgid "Add Kolab extension" +msgstr "Kolab uzantısı ekle" + +#: ../lib/modules/puppetClient.inc:217 +msgid "Add Puppet extension" +msgstr "Puppet uzantısı ekle" + +#: ../lib/modules/sambaSamAccount.inc:1286 +#: ../lib/modules/sambaGroupMapping.inc:415 +msgid "Add Samba 3 extension" +msgstr "Samba 3 uzantısı ekle" + +#: ../lib/modules/shadowAccount.inc:371 +msgid "Add Shadow account extension" +msgstr "Shadow hesap uzantısı ekle" + +#: ../lib/modules/posixGroup.inc:249 ../lib/modules/posixAccount.inc:1420 +msgid "Add Unix extension" +msgstr "Unix uzantısı ekle" + +#: ../lib/modules/zarafaContact.inc:123 ../lib/modules/zarafaContact.inc:191 +msgid "Add Zarafa contact extension" +msgstr "Zarafa bağlantı uzantısı ekle" + +#: ../lib/modules/zarafaGroup.inc:308 ../lib/modules/zarafaUser.inc:160 +#: ../lib/modules/zarafaUser.inc:161 ../lib/modules/zarafaUser.inc:220 +#: ../lib/modules/zarafaUser.inc:470 ../lib/modules/zarafaServer.inc:230 +msgid "Add Zarafa extension" +msgstr "Zarafa uzantısı ekle" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add all" +msgstr "Hepsini ekle" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2073 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2091 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "Add an additional value to attribute" +msgstr "Dayandırmak için ek bir değer ekle" + +#: ../lib/modules/asteriskExtension.inc:343 +msgid "Add another rule" +msgstr "Başka kural ekle" + +#: ../lib/modules/inetOrgPerson.inc:2220 +msgid "Add entries" +msgstr "Girdileri ekle" + +#: ../lib/modules/zarafaContact.inc:418 ../lib/modules/zarafaGroup.inc:487 +#: ../lib/modules/device.inc:302 ../lib/modules/zarafaUser.inc:945 +#: ../lib/modules/sambaGroupMapping.inc:491 ../lib/modules/qmailGroup.inc:851 +#: ../lib/modules/windowsGroup.inc:553 ../lib/modules/groupOfNames.inc:381 +#: ../lib/modules/groupOfNames.inc:516 +msgid "Add entries of this type:" +msgstr "Bu türün girdilerini ekle" + +#: ../lib/modules/customFields.inc:392 +msgid "Add extension" +msgstr "Uzantı ekle" + +#: ../lib/modules/ddns.inc:362 +msgid "Add fix IP addresses to DNS" +msgstr "DNS e sabit IP adresleri ekle" + +#: ../lib/modules/hostObject.inc:162 +msgid "Add host extension" +msgstr "Ana bilgisayar uzantısı ekle" + +#: ../templates/selfService/adminMain.php:550 ../help/help.inc:212 +msgid "Add input field" +msgstr "Veri giriş alanı ekle" + +#: ../lib/modules/customFields.inc:2463 +msgid "Add more mapping fields" +msgstr "Daha fazla eşleştirme alanı ekle" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:37 +#, php-format +msgid "Add new %s value to %s" +msgstr "Yeni %s değer %s ekle" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1208 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:29 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:48 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:166 +msgid "Add new attribute" +msgstr "Yeni öznitelik ekle" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1207 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +msgid "Add new attribute to this object" +msgstr "Bu nesneye yeni öznitelik ekle" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:89 +msgid "Add new binary attribute" +msgstr "İki bileşenli yeni bir özellik ekle" + +#: ../lib/modules/customFields.inc:955 +msgid "Add new field" +msgstr "Yeni alan ekle" + +#: ../templates/selfService/adminMain.php:542 ../help/help.inc:210 +msgid "Add new group" +msgstr "Yeni grup ekle" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:117 +msgid "Add new object class" +msgstr "Yeni nesne sınıfı ekle" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:60 +#, php-format +msgid "Add new object class to %s" +msgstr "%s ye yeni nesne sınıfı ekle" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:94 +msgid "Add object class and attributes" +msgstr "Nesne sınıfı ve nesne özellikleri ekle" + +#: ../lib/modules/passwordSelfReset.inc:285 +msgid "Add password self reset extension" +msgstr "Kişisel parola sıfırlama uzantısı ekle" + +#: ../lib/modules/inetOrgPerson.inc:816 ../lib/modules/inetOrgPerson.inc:2106 +#: ../lib/modules/inetOrgPerson.inc:2144 ../lib/modules/inetOrgPerson.inc:3147 +msgid "Add photo" +msgstr "Resim ekle" + +#: ../templates/config/profmanage.php:239 +#: ../templates/config/profmanage.php:252 +#: ../templates/selfService/profManage.php:202 +#: ../templates/selfService/profManage.php:210 ../help/help.inc:126 +msgid "Add profile" +msgstr "Profil ekle" + +#: ../lib/modules/qmailUser.inc:705 ../lib/modules/qmailGroup.inc:626 +msgid "Add qmail extension" +msgstr "Qmail uzantısı ekle" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add selected" +msgstr "Seçilenleri ekle" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:149 +msgid "Add value" +msgstr "Değer ekle" + +#: ../templates/3rdParty/pla/htdocs/import.php:28 +msgid "Adding" +msgstr "Ekleme" + +#: ../lib/modules/range.inc:108 +msgid "Adding the range failed because errors occured." +msgstr "Hata nedeniyle aralık başarısız oldu ekleme" + +#: ../templates/selfService/adminMain.php:460 ../help/help.inc:216 +msgid "Additional CSS links" +msgstr "Ek CSS bağlantıları" + +#: ../templates/config/conftypes.php:274 ../help/help.inc:154 +msgid "Additional LDAP filter" +msgstr "Ek LDAP filtresi" + +#: ../lib/modules/zarafaDynamicGroup.inc:65 +#: ../lib/modules/zarafaDynamicGroup.inc:69 ../lib/modules/zarafaGroup.inc:68 +#: ../lib/modules/zarafaGroup.inc:72 +msgid "Additional email addresses for this entry." +msgstr "Bu girdi için ek e-posta adresleri" + +#: ../lib/modules/posixAccount.inc:297 ../lib/modules/posixAccount.inc:408 +#: ../lib/modules/posixAccount.inc:462 ../lib/modules/posixAccount.inc:523 +#: ../lib/modules/posixAccount.inc:1355 ../lib/modules/posixAccount.inc:1633 +#: ../lib/modules/posixAccount.inc:1744 +msgid "Additional groups" +msgstr "Ek gruplar" + +#: ../lib/modules/windowsGroup.inc:115 +msgid "Additional notes to describe this entry." +msgstr "Bu girdiyi tanımlamak için ek notlar" + +#: ../templates/massDoUpload.php:160 +msgid "Additional tasks for module:" +msgstr "Modül için ek görevler" + +#: ../lib/modules/windowsUser.inc:526 ../lib/modules/inetOrgPerson.inc:1469 +msgid "Address" +msgstr "Adres" + +#: ../lib/types/zarafaAddressListType.inc:144 +#, php-format +msgid "Address list count: %s" +msgstr "Adres listesi sayımı: %s" + +#: ../lib/modules/imapAccess.inc:71 +msgid "Address of IMAP server (e.g. mail.example.org)." +msgstr "IMAP server adresi (örneğin mail.example.org)" + +#: ../help/help.inc:211 +msgid "" +"Adds a new group element to the list of self service options. Use this to " +"structure the input fields." +msgstr "" +"Otomatik sıralama seçenekleri listesine yeni bir grup elementi ekle. Bunu " +"veri giriş alanı yapılandırmasına kullan." + +#: ../help/help.inc:213 +msgid "Adds a new self service option to the selected group element." +msgstr "Seçilen grup elementine yeni bir otomatik seçenek ekle" + +#: ../lib/modules/range.inc:95 +msgid "Adds input fields for a new IP range." +msgstr "Yeni bir IP aralığı için veri giriş alanı ekle" + +#: ../lib/modules/zarafaUser.inc:101 ../lib/modules/zarafaUser.inc:323 +#: ../lib/modules/zarafaUser.inc:381 ../lib/modules/zarafaUser.inc:635 +#: ../lib/modules/zarafaUser.inc:1328 +msgid "Admin" +msgstr "Yönetici" + +#: ../lib/modules/selfRegistration.inc:53 +#: ../lib/modules/selfRegistration.inc:100 +#: ../lib/modules/passwordSelfReset.inc:93 +#: ../lib/modules/passwordSelfReset.inc:209 +msgid "Admin DN" +msgstr "DN yöneticisi" + +#: ../lib/modules/selfRegistration.inc:58 +#: ../lib/modules/selfRegistration.inc:104 +#: ../lib/modules/passwordSelfReset.inc:97 +#: ../lib/modules/passwordSelfReset.inc:213 +msgid "Admin password" +msgstr "Yönetici şifresi" + +#: ../lib/modules/inetOrgPerson.inc:440 ../lib/modules/inetOrgPerson.inc:554 +#: ../lib/modules/inetOrgPerson.inc:562 +msgid "Administration" +msgstr "Yönetim" + +#: ../lib/modules/posixGroup.inc:448 ../lib/modules/nisnetgroup.inc:115 +#: ../lib/modules/groupOfNames.inc:112 +msgid "Administrators group" +msgstr "Yöneticiler grubu" + +#: ../templates/config/conftypes.php:300 ../lib/modules/posixAccount.inc:264 +msgid "Advanced options" +msgstr "Gelişmiş seçenekler" + +#: ../lib/modules/eduPerson.inc:98 ../lib/modules/eduPerson.inc:102 +#: ../lib/modules/eduPerson.inc:174 ../lib/modules/eduPerson.inc:218 +#: ../lib/modules/eduPerson.inc:325 ../lib/modules/eduPerson.inc:770 +msgid "Affiliations" +msgstr "Bağlantılar" + +#: ../lib/modules/sambaSamAccount.inc:542 +msgid "Alaska" +msgstr "Alaska" + +#: ../lib/modules/sambaDomain.inc:211 ../lib/modules/sambaDomain.inc:212 +msgid "Algorithmic RID base is not a number!" +msgstr "Algoritmik RID tabanı bir sayı değildir!" + +#: ../lib/modules/customFields.inc:66 ../lib/modules/customFields.inc:444 +#: ../lib/modules/customFields.inc:491 ../lib/modules/aliasEntry.inc:38 +msgid "Alias" +msgstr "Takma ad " + +#: ../lib/types/mailAlias.inc:141 ../lib/types/alias.inc:141 +#, php-format +msgid "Alias count: %s" +msgstr "Takma ad sayımı: %s" + +#: ../lib/types/alias.inc:62 +msgid "Alias entries" +msgstr "Takma ad girdileri" + +#: ../lib/modules/nisMailAlias.inc:114 ../lib/modules/nisMailAlias.inc:115 +msgid "Alias is empty or invalid!" +msgstr "Takma ad boş ya da geçersiz !" + +#: ../lib/types/mailAlias.inc:91 ../lib/modules/nisMailAlias.inc:70 +#: ../lib/modules/nisMailAlias.inc:90 ../lib/modules/nisMailAlias.inc:104 +#: ../lib/modules/nisMailAlias.inc:152 ../lib/modules/nisMailAlias.inc:377 +msgid "Alias name" +msgstr "Takma ad" + +#: ../lib/types/alias.inc:92 ../lib/modules/customScripts.inc:45 +#: ../lib/modules/uidObject.inc:52 ../lib/modules/aliasEntry.inc:54 +#: ../lib/modules/aliasEntry.inc:62 ../lib/modules/aliasEntry.inc:70 +#: ../lib/modules/aliasEntry.inc:91 ../lib/modules/aliasEntry.inc:100 +#: ../lib/modules/aliasEntry.inc:228 +msgid "Aliased entry" +msgstr "Takma adlı girdi" + +#: ../templates/schema/schema.php:226 ../lib/types/alias.inc:53 +msgid "Aliases" +msgstr "Takma adlar" + +#: ../lib/lists.inc:695 +#, php-format +msgid "All accounts (%s)" +msgstr "Tüm hesaplar (%s)" + +#: ../templates/selfService/selfServiceMain.php:349 +#: ../templates/initsuff.php:158 +msgid "All changes were successful." +msgstr "Tüm değişiklikler başarıyla gerçekleştirildi." + +#: ../lib/lists.inc:694 +#, php-format +msgid "All selected accounts (%s)" +msgstr "Seçilen tüm hesaplar: %s" + +#: ../lib/modules/dhcp_settings.inc:103 +msgid "Allow" +msgstr "İzin ver" + +#: ../lib/modules/sambaDomain.inc:110 ../lib/modules/sambaDomain.inc:187 +#: ../lib/modules/sambaDomain.inc:301 ../lib/modules/sambaDomain.inc:665 +msgid "Allow machine password changes" +msgstr "Makine şifresi değiştirme izni" + +#: ../lib/modules/customFields.inc:130 ../lib/modules/customFields.inc:134 +#: ../lib/modules/customFields.inc:2633 +msgid "Allow multiple values" +msgstr "Çoklu değerler izni" + +#: ../lib/types/ppolicyType.inc:90 ../lib/modules/ppolicy.inc:125 +#: ../lib/modules/ppolicy.inc:148 ../lib/modules/ppolicy.inc:287 +#: ../lib/modules/ppolicy.inc:498 +msgid "Allow password change" +msgstr "Kullanıcı şifresi değiştirme izni" + +#: ../lib/modules/sambaSamAccount.inc:222 +#: ../lib/modules/sambaSamAccount.inc:341 +#: ../lib/modules/sambaSamAccount.inc:1474 +#: ../lib/modules/sambaSamAccount.inc:1890 +msgid "Allow terminal server login" +msgstr "Terminal server giriş izni" + +#: ../templates/selfService/adminMain.php:522 +msgid "Allow user input for this field." +msgstr "Kullanıcıya bu alan için veri giriş izni" + +#: ../lib/modules/asteriskAccount.inc:194 +#: ../lib/modules/asteriskAccount.inc:287 +#: ../lib/modules/asteriskAccount.inc:351 +#: ../lib/modules/asteriskAccount.inc:541 +#: ../lib/modules/asteriskAccount.inc:878 +#: ../lib/modules/asteriskAccount.inc:1211 +msgid "Allowed codec" +msgstr "İzin verilen codec" + +#: ../templates/config/mainmanage.php:260 ../lib/types/user.inc:95 +#: ../help/help.inc:148 +msgid "Allowed hosts" +msgstr "İzin verilen sunucular" + +#: ../lib/modules/kolabGroup.inc:88 ../lib/modules/kolabGroup.inc:92 +#: ../lib/modules/kolabGroup.inc:122 ../lib/modules/kolabGroup.inc:145 +#: ../lib/modules/kolabGroup.inc:162 ../lib/modules/kolabGroup.inc:186 +#: ../lib/modules/kolabGroup.inc:401 ../lib/modules/kolabUser.inc:134 +#: ../lib/modules/kolabUser.inc:138 ../lib/modules/kolabUser.inc:184 +#: ../lib/modules/kolabUser.inc:201 ../lib/modules/kolabUser.inc:219 +#: ../lib/modules/kolabUser.inc:349 ../lib/modules/kolabUser.inc:722 +msgid "Allowed recepients" +msgstr "İzin verilen alıcılar" + +#: ../lib/modules/kolabGroup.inc:97 ../lib/modules/kolabGroup.inc:101 +#: ../lib/modules/kolabGroup.inc:128 ../lib/modules/kolabGroup.inc:146 +#: ../lib/modules/kolabGroup.inc:164 ../lib/modules/kolabGroup.inc:188 +#: ../lib/modules/kolabGroup.inc:402 ../lib/modules/kolabUser.inc:143 +#: ../lib/modules/kolabUser.inc:147 ../lib/modules/kolabUser.inc:190 +#: ../lib/modules/kolabUser.inc:202 ../lib/modules/kolabUser.inc:221 +#: ../lib/modules/kolabUser.inc:351 ../lib/modules/kolabUser.inc:723 +msgid "Allowed senders" +msgstr "İzin verilen göndericiler" + +#: ../lib/modules/sambaSamAccount.inc:1312 +#: ../lib/modules/sambaSamAccount.inc:1313 +msgid "Allowed workstations" +msgstr "İzin verilen iş istasyonları" + +#: ../lib/modules/customFields.inc:135 +msgid "Allows to enter multiple values for this attribute." +msgstr "Bu öznitelik için çoklu değer giriş izni" + +#: ../lib/modules/customFields.inc:131 +msgid "Allows to select multiple values from the list." +msgstr "Listeden çoklu değer seçme izni" + +#: ../lib/modules/sambaSamAccount.inc:557 +msgid "Almaty, Dhaka, Colombo" +msgstr "Almaata, Dhaka, Kolombo" + +#: ../lib/modules/qmailUser.inc:196 ../lib/modules/qmailUser.inc:264 +#: ../lib/modules/qmailUser.inc:393 ../lib/modules/qmailUser.inc:443 +#: ../lib/modules/qmailUser.inc:513 ../lib/modules/qmailUser.inc:1187 +#: ../lib/modules/qmailGroup.inc:124 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/qmailGroup.inc:240 ../lib/modules/qmailGroup.inc:363 +#: ../lib/modules/qmailGroup.inc:415 ../lib/modules/qmailGroup.inc:477 +#: ../lib/modules/qmailGroup.inc:1054 +msgid "Alternate address" +msgstr "Alternatif adres" + +#: ../lib/modules.inc:1066 ../lib/modules.inc:1161 ../help/help.inc:194 +msgid "Alternate recipient" +msgstr "Alternatif alıcı" + +#: ../lib/modules/kolabUser.inc:50 +msgid "Always accept" +msgstr "Her zaman kabul et" + +#: ../lib/modules/kolabUser.inc:51 +msgid "Always reject" +msgstr "Her zaman reddet" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1018 +#, php-format +msgid "An attribute (%s) was modified and is highlighted below." +msgstr "Öznitelik (%s) değiştirildi ve altta vurgulandı" + +#: ../lib/modules/sudoRole.inc:222 +msgid "An sudo role with this name already exists. Please choose another name." +msgstr "Bu isimle kullanılan bir sudo role mevcut . Lütfen başka isim seçiniz" + +#: ../lib/modules/passwordSelfReset.inc:77 +#: ../lib/modules/passwordSelfReset.inc:164 +#: ../lib/modules/passwordSelfReset.inc:172 +#: ../lib/modules/passwordSelfReset.inc:263 +#: ../lib/modules/passwordSelfReset.inc:305 +#: ../lib/modules/passwordSelfReset.inc:410 +#: ../lib/modules/passwordSelfReset.inc:556 +#: ../lib/modules/passwordSelfReset.inc:913 +msgid "Answer" +msgstr "Cevap ver" + +#: ../lib/modules/kolabUser.inc:291 ../lib/modules/kolabUser.inc:712 +#: ../lib/modules/kolabUser.inc:809 ../lib/modules/kolabUser.inc:812 +msgid "Anyone" +msgstr "Herkes" + +#: ../lib/modules/asteriskExtension.inc:103 +#: ../lib/modules/asteriskExtension.inc:158 +#: ../lib/modules/asteriskExtension.inc:359 +#: ../lib/modules/asteriskExtension.inc:816 +msgid "Application" +msgstr "Uygulama" + +#: ../lib/modules/asteriskExtension.inc:87 +#: ../lib/modules/asteriskExtension.inc:165 +#: ../lib/modules/asteriskExtension.inc:367 +#: ../lib/modules/asteriskExtension.inc:817 +msgid "Application data" +msgstr "Uygulama verileri" + +#: ../lib/modules/zarafaUser.inc:152 ../lib/modules/zarafaUser.inc:156 +#: ../lib/modules/zarafaUser.inc:204 ../lib/modules/zarafaUser.inc:356 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/zarafaUser.inc:586 +#: ../lib/modules/zarafaUser.inc:989 ../lib/modules/zarafaUser.inc:1302 +#: ../lib/modules/zarafaUser.inc:1383 +msgid "Archive servers" +msgstr "Arşiv sunucuları" + +#: ../lib/modules/zarafaUser.inc:584 +msgid "Archiving" +msgstr "Arşivleme" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:53 +msgid "Are you sure you want to permanently delete these objects?" +msgstr "Bu öğeleri kalıcı olarak silmek istediğinizden emin misiniz?" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:107 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:51 +msgid "Are you sure you want to permanently delete this object?" +msgstr "Bu öğeyi kalıcı olarak silmek istediğinizden emin misiniz?" + +#: ../lib/modules/imapAccess.inc:118 +msgid "Ask" +msgstr "Sor" + +#: ../lib/modules/eduPerson.inc:135 ../lib/modules/eduPerson.inc:139 +#: ../lib/modules/eduPerson.inc:211 ../lib/modules/eduPerson.inc:227 +#: ../lib/modules/eduPerson.inc:452 ../lib/modules/eduPerson.inc:775 +msgid "Assurance profiles" +msgstr "Güvenli profiller" + +#: ../lib/modules/eduPerson.inc:136 ../lib/modules/eduPerson.inc:140 +msgid "" +"Assurance profiles are the set of standards that are met by an identity " +"assertion." +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:66 +msgid "Asterisk" +msgstr "Yıldız imi" + +#: ../lib/modules/asteriskAccount.inc:123 +msgid "Asterisk AMA (Automated Message Accounting) flags." +msgstr "Asterisk AMA (Otomatik mesaj sayma) işaretleri" + +#: ../lib/modules/asteriskExtension.inc:72 +msgid "Asterisk extension" +msgstr "Asterisk uzantısı" + +#: ../lib/types/asteriskExt.inc:56 +msgid "Asterisk extensions" +msgstr "Asterisk uzantıları" + +#: ../lib/types/asteriskExt.inc:65 +msgid "Asterisk extensions entries" +msgstr "Asterisk uzantılı girdiler" + +#: ../lib/modules/asteriskAccount.inc:114 +#: ../lib/modules/asteriskAccount.inc:241 +#: ../lib/modules/asteriskAccount.inc:311 +msgid "Asterisk realm" +msgstr "Asterisk alanları" + +#: ../lib/modules/asteriskVoicemail.inc:64 +msgid "Asterisk voicemail" +msgstr "Asterisk sesli mesaj" + +#: ../lib/modules/asteriskVoicemail.inc:111 +msgid "Asterisk voicemail context." +msgstr "Asterisk sesli mesaj içeriği" + +#: ../lib/modules/sambaSamAccount.inc:547 +msgid "Atlantic time (Canada), Caracas" +msgstr "Atlantik saati (Kanada), Karakas" + +#: ../templates/3rdParty/pla/lib/import_functions.php:455 +msgid "Attempting to delete a non existent attribute" +msgstr "" + +#: ../templates/3rdParty/pla/lib/import_functions.php:466 +msgid "Attempting to replace a non existant attribute" +msgstr "" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Attribute" +msgstr "Öznitelik" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:137 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:72 +msgid "Attribute doesn't exist" +msgstr "Öznitelik yok" + +#: ../lib/modules/customFields.inc:82 ../lib/modules/customFields.inc:982 +#: ../lib/modules/customFields.inc:1476 +msgid "Attribute name" +msgstr "Öznitelik adı" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:117 +msgid "Attribute not available" +msgstr "Öznitelik uygun değil " + +#: ../templates/3rdParty/pla/lib/import_functions.php:535 +msgid "Attribute not valid" +msgstr "Öznitelik geçersiz" + +#: ../templates/schema/schema.php:69 ../templates/schema/schema.php:70 +msgid "Attribute types" +msgstr "Öznitelik tipleri" + +#: ../lib/modules/selfRegistration.inc:70 +#: ../lib/modules/selfRegistration.inc:117 +msgid "Attributes" +msgstr "Öznitelikler" + +#: ../lib/modules/sambaSamAccount.inc:563 +msgid "Auckland, Fiji, Kamchatka" +msgstr "Auckland, Fiji, Kamçatka" + +#: ../lib/modules/asteriskAccount.inc:115 +msgid "" +"Authentication realm for Asterisk server (default: asterisk). This value set " +"in sip.conf (option: \"realm\")." +msgstr "Asterisk sunucusu için yetki alanı doğrulama" + +#: ../lib/modules/asteriskAccount.inc:223 +msgid "Authentication user for outbound proxies." +msgstr "Giden proxyler için kullanıcı kimliği doğrulama" + +#: ../lib/modules/authorizedServiceObject.inc:64 +#: ../lib/modules/authorizedServiceObject.inc:74 +#: ../lib/modules/authorizedServiceObject.inc:78 +#: ../lib/modules/authorizedServiceObject.inc:98 +#: ../lib/modules/authorizedServiceObject.inc:105 +#: ../lib/modules/authorizedServiceObject.inc:109 +#: ../lib/modules/authorizedServiceObject.inc:167 +#: ../lib/modules/authorizedServiceObject.inc:292 +msgid "Authorized Services" +msgstr "Lisanslı hizmetler" + +#: ../lib/modules/authorizedServiceObject.inc:122 +msgid "Authorized services are invalid." +msgstr "Lisanslı hizmetler geçersiz." + +#: ../lib/modules/customScripts.inc:133 +msgid "Automatical scripts" +msgstr "Otomatik komutlar" + +#: ../lib/modules/kolabGroup.inc:110 ../lib/modules/kolabGroup.inc:116 +#: ../lib/modules/puppetClient.inc:101 ../lib/modules/puppetClient.inc:153 +#: ../lib/modules/qmailUser.inc:124 ../lib/modules/qmailUser.inc:256 +#: ../lib/modules/zarafaContact.inc:80 ../lib/modules/zarafaContact.inc:572 +#: ../lib/modules/posixGroup.inc:376 ../lib/modules/posixGroup.inc:508 +#: ../lib/modules/eduPerson.inc:143 ../lib/modules/eduPerson.inc:148 +#: ../lib/modules/sambaSamAccount.inc:158 +#: ../lib/modules/sambaSamAccount.inc:389 ../lib/modules/posixAccount.inc:425 +#: ../lib/modules/posixAccount.inc:1680 ../lib/modules/zarafaUser.inc:129 +#: ../lib/modules/zarafaUser.inc:1369 ../lib/modules/shadowAccount.inc:99 +#: ../lib/modules/shadowAccount.inc:190 ../lib/modules/customFields.inc:777 +#: ../lib/modules/qmailGroup.inc:94 ../lib/modules/qmailGroup.inc:225 +#: ../lib/modules/authorizedServiceObject.inc:82 +#: ../lib/modules/authorizedServiceObject.inc:110 +#: ../lib/modules/passwordSelfReset.inc:141 +#: ../lib/modules/passwordSelfReset.inc:148 ../lib/modules/hostObject.inc:76 +#: ../lib/modules/hostObject.inc:94 +msgid "Automatically add this extension" +msgstr "Bu uzantıyı otomatik olarak ekle" + +#: ../lib/types/automountType.inc:48 ../lib/types/automountType.inc:57 +msgid "Automount entries" +msgstr "Otomatik oluşan girdiler" + +#: ../lib/types/automountType.inc:87 ../lib/modules/automount.inc:43 +#: ../lib/modules/automount.inc:61 ../lib/modules/automount.inc:81 +#: ../lib/modules/automount.inc:97 ../lib/modules/automount.inc:107 +#: ../lib/modules/automount.inc:127 ../lib/modules/automount.inc:194 +msgid "Automount entry" +msgstr "Otomatik oluşan girdi" + +#: ../lib/modules/automount.inc:107 ../lib/modules/automount.inc:108 +msgid "" +"Automount entry contains invalid characters. Only ASCII characters are " +"allowed." +msgstr "" +"Otomatik oluşan girdi uygun olmayan karakterler içeriyor . Sadece ASCII " +"karakterleri görülebilir." + +#: ../lib/types/automountType.inc:215 +#, php-format +msgid "Automount entry count: %s" +msgstr "Otomatik oluşan girdi sayısı: %s" + +#: ../lib/modules/qmailUser.inc:51 +msgid "Autoreply" +msgstr "Otomatik cevap" + +#: ../lib/modules/qmailUser.inc:109 ../lib/modules/qmailUser.inc:232 +#: ../lib/modules/qmailUser.inc:343 ../lib/modules/qmailUser.inc:417 +#: ../lib/modules/qmailUser.inc:632 ../lib/modules/qmailUser.inc:1194 +msgid "Autoreply text" +msgstr "Otomatik cevap metni" + +#: ../templates/config/conftypes.php:215 ../lib/modules/customScripts.inc:54 +msgid "Available account types" +msgstr "Geçerli hesap tipleri" + +#: ../lib/modules/customScripts.inc:55 ../lib/modules/customScripts.inc:68 +msgid "Available actions" +msgstr "Geçerli eylemler" + +#: ../lib/modules/posixAccount.inc:1465 ../lib/modules/posixAccount.inc:1498 +#: ../lib/modules/windowsUser.inc:728 ../lib/modules/nisnetgroup.inc:379 +#: ../lib/modules/groupOfNamesUser.inc:113 +msgid "Available groups" +msgstr "Geçerli gruplar" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:93 +msgid "Available members" +msgstr "Geçerli üyeler" + +#: ../templates/config/confmodules.php:314 +msgid "Available modules" +msgstr "Geçerli modüller" + +#: ../lib/modules/posixGroup.inc:293 ../lib/modules/asteriskExtension.inc:456 +msgid "Available users" +msgstr "Geçerli kullanıcılar" + +#: ../lib/modules/sambaSamAccount.inc:1315 +msgid "Available workstations" +msgstr "Geçerli iş istasyonları" + +#: ../lib/modules/sambaSamAccount.inc:550 +msgid "Azores, Cape Verde Islands" +msgstr "Azor Adaları, Cape Verde Adaları" + +#: ../lib/modules/dhcp_settings.inc:96 +msgid "B-Node (0x01)" +msgstr "B - Ağı (0x01)" + +#: ../templates/massBuildAccounts.php:276 ../lib/modules/zarafaContact.inc:425 +#: ../lib/modules/posixGroup.inc:338 ../lib/modules/zarafaGroup.inc:494 +#: ../lib/modules/device.inc:309 ../lib/modules/sambaSamAccount.inc:1332 +#: ../lib/modules/sambaSamAccount.inc:1616 +#: ../lib/modules/posixAccount.inc:1538 ../lib/modules/posixAccount.inc:1612 +#: ../lib/modules/zarafaUser.inc:952 ../lib/modules/zarafaUser.inc:1001 +#: ../lib/modules/windowsUser.inc:772 ../lib/modules/sambaGroupMapping.inc:498 +#: ../lib/modules/nisnetgroup.inc:393 ../lib/modules/inetOrgPerson.inc:2145 +#: ../lib/modules/inetOrgPerson.inc:2221 ../lib/modules/inetOrgPerson.inc:2308 +#: ../lib/modules/qmailGroup.inc:858 ../lib/modules/windowsGroup.inc:560 +#: ../lib/modules/groupOfNames.inc:388 ../lib/modules/groupOfNames.inc:523 +msgid "Back" +msgstr "Geri" + +#: ../lib/types/dhcp.inc:47 +msgid "Back to DHCP list" +msgstr "DHCP listesine dön" + +#: ../lib/types/nisObjectType.inc:30 +msgid "Back to NIS object list" +msgstr "NIS nesne listesine dön" + +#: ../lib/baseType.inc:48 +msgid "Back to account list" +msgstr "Hesap listesine dön" + +#: ../lib/types/zarafaAddressListType.inc:44 +msgid "Back to address list" +msgstr "Adres listesine dön" + +#: ../lib/types/mailAlias.inc:44 ../lib/types/alias.inc:44 +msgid "Back to alias list" +msgstr "Takma ad listesine dön" + +#: ../lib/types/automountType.inc:35 +msgid "Back to automount list" +msgstr "Otomatik listeye dön" + +#: ../lib/types/smbDomain.inc:44 +msgid "Back to domain list" +msgstr "Etki alanı listesine dön" + +#: ../lib/types/asteriskExt.inc:47 +msgid "Back to extensions list" +msgstr "Uzantılar listesine dön" + +#: ../templates/lists/userlink.php:63 ../lib/types/gon.inc:44 +#: ../lib/types/zarafaDynamicGroupType.inc:44 ../lib/types/group.inc:45 +#: ../lib/types/netgroup.inc:44 +msgid "Back to group list" +msgstr "Grup listesine dön" + +#: ../lib/types/host.inc:44 +msgid "Back to host list" +msgstr "Sunucu listesine dön" + +#: ../templates/delete.php:289 +msgid "Back to list" +msgstr "Listeye dön" + +#: ../templates/config/mainmanage.php:218 ../templates/config/index.php:79 +#: ../templates/config/index.php:133 ../templates/config/conflogin.php:117 +#: ../templates/config/conflogin.php:196 ../templates/config/mainlogin.php:124 +#: ../templates/config/mainlogin.php:178 +#: ../templates/selfService/selfServiceSP.php:127 +#: ../templates/selfService/adminLogin.php:114 +#: ../templates/selfService/adminLogin.php:191 +msgid "Back to login" +msgstr "Girişe dön" + +#: ../lib/types/ppolicyType.inc:30 +msgid "Back to policy list" +msgstr "İlke listesine dön" + +#: ../templates/config/profmanage.php:188 +#: ../templates/config/profmanage.php:324 +#: ../templates/selfService/profManage.php:144 +#: ../templates/selfService/profManage.php:262 +msgid "Back to profile login" +msgstr "Profil girişine dön" + +#: ../lib/types/sudo.inc:30 +msgid "Back to sudo role list" +msgstr "Sudo rolü listesine dön" + +#: ../lib/types/user.inc:44 +msgid "Back to user list" +msgstr "Kullanıcı listesine dön" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:64 +msgid "Back up" +msgstr "Yedekleme" + +#: ../templates/serverInfo.php:163 +msgid "Backends" +msgstr "Sunucu uygulamaları" + +#: ../lib/modules/sudoRole.inc:130 +msgid "Backup script" +msgstr "Destek komutu" + +#: ../lib/modules/sambaSamAccount.inc:554 +msgid "Baghdad, Riyadh, Moscow" +msgstr "Bağdat, Riyad, Moskova" + +#: ../lib/modules/sambaSamAccount.inc:558 +msgid "Bangkok, Hanoi, Jakarta" +msgstr "Bangkok, Hanoi, Cakarta" + +#: ../lib/types/zarafaAddressListType.inc:93 +#: ../lib/types/zarafaDynamicGroupType.inc:94 +#: ../lib/modules/zarafaDynamicGroup.inc:80 +#: ../lib/modules/zarafaDynamicGroup.inc:94 +#: ../lib/modules/zarafaDynamicGroup.inc:145 +#: ../lib/modules/zarafaDynamicGroup.inc:163 +#: ../lib/modules/zarafaDynamicGroup.inc:191 +#: ../lib/modules/zarafaDynamicGroup.inc:224 +#: ../lib/modules/zarafaDynamicGroup.inc:466 +#: ../lib/modules/zarafaAddressList.inc:68 +#: ../lib/modules/zarafaAddressList.inc:82 +#: ../lib/modules/zarafaAddressList.inc:121 +#: ../lib/modules/zarafaAddressList.inc:137 +#: ../lib/modules/zarafaAddressList.inc:162 +#: ../lib/modules/zarafaAddressList.inc:191 +#: ../lib/modules/zarafaAddressList.inc:335 +msgid "Base" +msgstr "Taban" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:142 +#: ../templates/3rdParty/pla/htdocs/export_form.php:31 +msgid "Base (base dn only)" +msgstr "Taban (yalnızca dn tabanı)" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:121 +#: ../templates/3rdParty/pla/lib/QueryRender.php:506 +#: ../templates/3rdParty/pla/htdocs/export_form.php:59 +msgid "Base DN" +msgstr "DN tabanı" + +#: ../templates/config/confmodules.php:212 ../help/help.inc:140 +msgid "Base module" +msgstr "Modül tabanı" + +#: ../templates/pdfedit/pdfpage.php:441 +msgid "Beginning" +msgstr "Başlangıç" + +#: ../lib/modules/sambaSamAccount.inc:559 +msgid "Beijing, Perth, Singapore" +msgstr "Pekin, Perth, Singapur" + +#: ../templates/3rdParty/pla/lib/PageRender.php:644 +#: ../templates/3rdParty/pla/lib/PageRender.php:648 +msgid "Binary value" +msgstr "İkili değer" + +#: ../templates/serverInfo.php:286 ../templates/serverInfo.php:375 +msgid "Bind" +msgstr "Bağlama" + +#: ../templates/config/confmain.php:427 +msgid "Bind password" +msgstr "Bağlanma şifresi" + +#: ../templates/config/confmain.php:425 +msgid "Bind user" +msgstr "Bağlanan kullanıcı" + +#: ../help/help.inc:124 +msgid "Bind user and password" +msgstr "Bağlanan kullanıcı ve bağlanma şifresi" + +#: ../lib/modules/quota.inc:53 ../lib/modules/systemQuotas.inc:94 +msgid "Block hard quota" +msgstr "Blok için sabit kota" + +#: ../lib/modules/quota.inc:53 ../lib/modules/quota.inc:54 +#: ../lib/modules/systemQuotas.inc:94 ../lib/modules/systemQuotas.inc:95 +msgid "" +"Block hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Blok için sabit kota geçersiz karakterler içeriyor. Yalnızca doğal sayılar " +"görülebilir" + +#: ../lib/modules/quota.inc:59 ../lib/modules/systemQuotas.inc:100 +msgid "Block quota" +msgstr "Blok kotası" + +#: ../lib/modules/quota.inc:51 ../lib/modules/systemQuotas.inc:92 +msgid "Block soft quota" +msgstr "Blok için esnek kota" + +#: ../lib/modules/quota.inc:51 ../lib/modules/quota.inc:52 +#: ../lib/modules/systemQuotas.inc:92 ../lib/modules/systemQuotas.inc:93 +msgid "" +"Block soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" + +#: ../lib/modules/quota.inc:59 ../lib/modules/quota.inc:60 +#: ../lib/modules/systemQuotas.inc:100 ../lib/modules/systemQuotas.inc:101 +msgid "Block soft quota must be smaller than block hard quota." +msgstr "Blok için, esnek olan kota sabit olan kotadan küçük olmak zorundadır." + +#: ../lib/modules/qmailGroup.inc:65 ../lib/modules/qmailGroup.inc:136 +#: ../lib/modules/qmailGroup.inc:140 ../lib/modules/qmailGroup.inc:256 +#: ../lib/modules/qmailGroup.inc:368 ../lib/modules/qmailGroup.inc:424 +#: ../lib/modules/qmailGroup.inc:515 ../lib/modules/qmailGroup.inc:1056 +msgid "Bounce admin email" +msgstr "Admin e-posta sekmesi" + +#: ../lib/modules/sambaSamAccount.inc:548 +msgid "Brazil, Buenos Aires" +msgstr "Brezilya, Buenos Aires" + +#: ../templates/3rdParty/pla/htdocs/copy.php:53 +msgid "Building snapshot of tree to copy" +msgstr "" + +#: ../lib/modules/sambaGroupMapping.inc:73 +msgid "Builtin group" +msgstr "Oluşumiçi grup" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:63 +msgid "Bulk edit the following DNs" +msgstr "Takip eden DNS'i toplu düzenleme" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:48 +msgid "Bulk update the following DNs" +msgstr "Takip eden DNS'i toplu güncelleme" + +#: ../lib/modules/inetOrgPerson.inc:97 ../lib/modules/inetOrgPerson.inc:145 +#: ../lib/modules/inetOrgPerson.inc:215 ../lib/modules/inetOrgPerson.inc:344 +#: ../lib/modules/inetOrgPerson.inc:438 ../lib/modules/inetOrgPerson.inc:668 +#: ../lib/modules/inetOrgPerson.inc:832 ../lib/modules/inetOrgPerson.inc:836 +#: ../lib/modules/inetOrgPerson.inc:1932 ../lib/modules/inetOrgPerson.inc:2375 +#: ../lib/modules/inetOrgPerson.inc:3123 +msgid "Business category" +msgstr "İş kategorisi" + +#: ../lib/modules/inetOrgPerson.inc:833 ../lib/modules/inetOrgPerson.inc:837 +msgid "Business category (e.g. Administration, IT-Services, Manangement, ...)" +msgstr "İş kategorisi (örneğin; yönetim, IT - hizmetleri ...)" + +#: ../help/help.inc:157 +msgid "" +"By default LAM will show all accounts that match the selected account " +"modules." +msgstr "" + +#: ../lib/modules/customScripts.inc:82 +msgid "" +"By default, LAM will show the executed command along with any output of it. " +"If you want to hide the command and only show the output then activate this " +"option." +msgstr "" + +#: ../templates/serverInfo.php:253 ../templates/serverInfo.php:259 +msgid "Bytes sent" +msgstr "" + +#: ../templates/masscreate.php:247 +msgid "CSV file" +msgstr "CSV dosyası" + +#: ../help/help.inc:103 +msgid "Cache timeout" +msgstr "Önbellek zaman aşımı" + +#: ../lib/modules/asteriskAccount.inc:126 +#: ../lib/modules/asteriskAccount.inc:253 +#: ../lib/modules/asteriskAccount.inc:334 +#: ../lib/modules/asteriskAccount.inc:417 +#: ../lib/modules/asteriskAccount.inc:710 +#: ../lib/modules/asteriskAccount.inc:1194 +msgid "Call groups" +msgstr "Grupları ara" + +#: ../lib/modules/asteriskAccount.inc:94 +#: ../lib/modules/asteriskAccount.inc:328 +#: ../lib/modules/asteriskAccount.inc:366 +#: ../lib/modules/asteriskAccount.inc:655 +#: ../lib/modules/asteriskAccount.inc:1188 +msgid "Caller ID" +msgstr "Arayanın kimliği" + +#: ../lib/modules/sambaSamAccount.inc:296 +#: ../lib/modules/sambaSamAccount.inc:299 +#: ../lib/modules/sambaSamAccount.inc:302 +#: ../lib/modules/sambaSamAccount.inc:308 ../lib/modules/posixAccount.inc:524 +#: ../lib/modules/windowsUser.inc:184 ../lib/modules/windowsUser.inc:187 +#: ../lib/modules/sambaGroupMapping.inc:152 +#: ../lib/modules/shadowAccount.inc:171 ../lib/modules/shadowAccount.inc:175 +#: ../lib/modules/shadowAccount.inc:179 ../lib/modules/shadowAccount.inc:183 +#: ../lib/modules/groupOfNamesUser.inc:54 +msgid "Can be left empty." +msgstr "Boş bırakılabilir." + +#: ../lib/modules/asteriskAccount.inc:214 +#: ../lib/modules/asteriskAccount.inc:297 +#: ../lib/modules/asteriskAccount.inc:356 +#: ../lib/modules/asteriskAccount.inc:577 +#: ../lib/modules/asteriskAccount.inc:927 +#: ../lib/modules/asteriskAccount.inc:1216 +msgid "Can call forward" +msgstr "" + +#: ../templates/lists/changePassword.php:312 +#: ../templates/lists/changePassword.php:341 +#: ../templates/lists/changePassword.php:382 +#: ../templates/lists/changePassword.php:413 ../templates/ou_edit.php:121 +#: ../templates/config/profmanage.php:253 +#: ../templates/config/profmanage.php:265 +#: ../templates/config/profmanage.php:274 +#: ../templates/config/profmanage.php:291 +#: ../templates/config/profmanage.php:302 +#: ../templates/config/mainmanage.php:389 +#: ../templates/config/confmodules.php:227 +#: ../templates/config/confmain.php:453 +#: ../templates/config/moduleSettings.php:238 +#: ../templates/config/conftypes.php:321 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminMain.php:663 +#: ../templates/pdfedit/pdfpage.php:638 ../templates/pdfedit/pdfmain.php:195 +#: ../templates/pdfedit/pdfmain.php:202 ../templates/pdfedit/pdfmain.php:208 +#: ../templates/delete.php:121 ../templates/profedit/profilepage.php:241 +#: ../templates/profedit/profilemain.php:197 +#: ../templates/profedit/profilemain.php:203 +#: ../templates/profedit/profilemain.php:209 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:197 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:83 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:136 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:121 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:119 +#: ../templates/initsuff.php:191 ../lib/types/automountType.inc:234 +#: ../lib/types/user.inc:304 ../lib/modules/kolabGroup.inc:275 +#: ../lib/modules/mitKerberos.inc:691 ../lib/modules/qmailUser.inc:914 +#: ../lib/modules/zarafaContact.inc:380 ../lib/modules/windowsHost.inc:219 +#: ../lib/modules/zarafaGroup.inc:449 ../lib/modules/device.inc:260 +#: ../lib/modules/sambaSamAccount.inc:1407 +#: ../lib/modules/sambaSamAccount.inc:1456 +#: ../lib/modules/sambaSamAccount.inc:1542 ../lib/modules/zarafaUser.inc:907 +#: ../lib/modules/kolabUser.inc:502 ../lib/modules/sambaGroupMapping.inc:477 +#: ../lib/modules/shadowAccount.inc:469 ../lib/modules/nisnetgroup.inc:483 +#: ../lib/modules/inetOrgPerson.inc:2186 ../lib/modules/freeRadius.inc:478 +#: ../lib/modules/aliasEntry.inc:140 ../lib/modules/aliasEntry.inc:160 +#: ../lib/modules/qmailGroup.inc:816 ../lib/modules/heimdalKerberos.inc:597 +#: ../lib/modules/windowsGroup.inc:459 ../lib/modules/windowsGroup.inc:511 +#: ../lib/modules/groupOfNames.inc:339 ../lib/modules/groupOfNames.inc:474 +#: ../lib/modules/nisMailAlias.inc:284 ../lib/lists.inc:704 +#: ../lib/lists.inc:785 ../lib/modules.inc:1200 +msgid "Cancel" +msgstr "Çıkış" + +#: ../templates/login.php:572 ../templates/login.php:630 +#: ../templates/login.php:635 +#: ../templates/selfService/selfServiceLogin.php:107 +#: ../templates/selfService/selfServiceLogin.php:143 +#: ../templates/selfService/selfServiceLogin.php:148 +#: ../templates/selfService/selfServiceMain.php:168 +#: ../templates/selfService/selfServiceMain.php:182 +#: ../lib/modules/selfRegistration.inc:608 +msgid "Cannot connect to specified LDAP server. Please try again." +msgstr "Belirlenen LDAP sunucusuna bağlanamıyorsunuz. Lütfen tekrar deneyiniz" + +#: ../templates/login.php:313 ../lib/config.inc:1495 +msgid "Cannot open config file!" +msgstr "Yapılandırma dosyası açılamadı!" + +#: ../lib/modules/imapAccess.inc:167 +msgid "Cannot update quota." +msgstr "Kota güncellenemez" + +#: ../lib/config.inc:1507 ../lib/config.inc:1515 +msgid "" +"Cannot write certificate file. Please check the permissions of config/" +"serverCerts.pem." +msgstr "" + +#: ../lib/modules/zarafaUser.inc:113 ../lib/modules/zarafaUser.inc:200 +#: ../lib/modules/zarafaUser.inc:288 ../lib/modules/zarafaUser.inc:405 +#: ../lib/modules/zarafaUser.inc:447 ../lib/modules/zarafaUser.inc:577 +#: ../lib/modules/zarafaUser.inc:1298 +msgid "Capacity" +msgstr "Kapasite" + +#: ../templates/selfService/adminMain.php:461 +msgid "Captions and labels" +msgstr "Resim yazısı ve etiketler" + +#: ../lib/modules/inetOrgPerson.inc:144 ../lib/modules/inetOrgPerson.inc:340 +#: ../lib/modules/inetOrgPerson.inc:592 ../lib/modules/inetOrgPerson.inc:662 +#: ../lib/modules/inetOrgPerson.inc:856 ../lib/modules/inetOrgPerson.inc:1907 +#: ../lib/modules/inetOrgPerson.inc:2377 ../lib/modules/inetOrgPerson.inc:3101 +msgid "Car license" +msgstr "Araba ruhsatı" + +#: ../lib/modules/sambaSamAccount.inc:552 +msgid "Central Europe Time, Paris, Berlin" +msgstr "Standart Avrupa saati, Paris, Berlin" + +#: ../lib/modules/sambaSamAccount.inc:545 +msgid "Central Time (US & Canada), Mexico City" +msgstr "Standart Saat (US & Kanada), Meksico" + +#: ../templates/selfService/adminMain.php:479 +#: ../lib/modules/mitKerberos.inc:378 ../lib/modules/mitKerberos.inc:389 +#: ../lib/modules/mitKerberos.inc:687 ../lib/modules/qmailUser.inc:654 +#: ../lib/modules/qmailUser.inc:910 ../lib/modules/zarafaContact.inc:218 +#: ../lib/modules/windowsHost.inc:148 ../lib/modules/windowsHost.inc:218 +#: ../lib/modules/zarafaGroup.inc:262 ../lib/modules/device.inc:187 +#: ../lib/modules/sambaSamAccount.inc:1167 +#: ../lib/modules/sambaSamAccount.inc:1452 ../lib/modules/zarafaUser.inc:498 +#: ../lib/modules/zarafaUser.inc:589 ../lib/modules/shadowAccount.inc:346 +#: ../lib/modules/shadowAccount.inc:465 ../lib/modules/inetOrgPerson.inc:2059 +#: ../lib/modules/freeRadius.inc:334 ../lib/modules/freeRadius.inc:474 +#: ../lib/modules/asteriskExtension.inc:229 ../lib/modules/aliasEntry.inc:93 +#: ../lib/modules/qmailGroup.inc:565 ../lib/modules/passwordSelfReset.inc:311 +#: ../lib/modules/heimdalKerberos.inc:321 +#: ../lib/modules/heimdalKerberos.inc:332 +#: ../lib/modules/heimdalKerberos.inc:593 ../lib/modules/windowsGroup.inc:338 +#: ../lib/modules/windowsGroup.inc:458 ../lib/modules/groupOfNames.inc:214 +#: ../lib/modules/groupOfNames.inc:237 +msgid "Change" +msgstr "Değiştir" + +#: ../templates/lists/changePassword.php:218 +msgid "Change Asterisk password" +msgstr "Asterisk erişim şifresini değiştir" + +#: ../templates/lists/changePassword.php:230 +msgid "Change Asterisk voicemail password" +msgstr "Asterisk sesli posta erişim şifresini değiştir" + +#: ../lib/modules/posixGroup.inc:216 ../lib/modules/posixGroup.inc:487 +msgid "Change GID number of users and hosts" +msgstr "Ana bilgisayar ve kullanıcıların kullandığı GID numarasını değiştir" + +#: ../templates/lists/changePassword.php:221 +#: ../templates/lists/changePassword.php:224 +msgid "Change Kerberos password" +msgstr "Kerberos erişim şifresini değiştir" + +#: ../templates/lists/changePassword.php:211 +msgid "Change Samba LM password" +msgstr "Samba LM erişim şifresini değiştir" + +#: ../templates/lists/changePassword.php:209 +msgid "Change Samba NT password" +msgstr "Samba NT erişim şifresini değiştir" + +#: ../templates/lists/changePassword.php:206 +msgid "Change Unix password" +msgstr "Unix şifresini değiştir" + +#: ../templates/lists/changePassword.php:227 +msgid "Change Windows password" +msgstr "Windows erişim şifresini değiştir" + +#: ../lib/types/user.inc:304 +msgid "Change account status" +msgstr "Hesap durumunu değiştir" + +#: ../templates/config/profmanage.php:298 +#: ../templates/config/profmanage.php:301 ../help/help.inc:134 +msgid "Change default profile" +msgstr "Varsayılan profili değiştir" + +#: ../lib/lists.inc:785 +msgid "Change list settings" +msgstr "Liste ayarları " + +#: ../templates/config/mainmanage.php:374 ../help/help.inc:136 +msgid "Change master password" +msgstr "Ana parolayı değiştir" + +#: ../templates/lists/changePassword.php:242 +#: ../templates/lists/changePassword.php:309 +#: ../templates/lists/changePassword.php:311 +#: ../templates/lists/changePassword.php:338 +#: ../templates/lists/changePassword.php:340 ../lib/types/user.inc:669 +#: ../help/help.inc:101 +msgid "Change password" +msgstr "Erişim şifresini değiştir" + +#: ../templates/lists/changePassword.php:249 +#: ../templates/lists/changePassword.php:250 +msgid "Change password now?" +msgstr "Parola şimdi değiştirilsin mi?" + +#: ../templates/config/confmain.php:260 +msgid "Change passwords" +msgstr "Parolaları değiştir" + +#: ../lib/lists.inc:786 +msgid "Change settings" +msgstr "Ayarları değiştir" + +#: ../lib/modules/posixAccount.inc:1143 +msgid "Changed value because only ASCII characters are allowed." +msgstr "" + +#: ../lib/modules/passwordSelfReset.inc:166 +msgid "Charlie" +msgstr "Charlie" + +#: ../lib/modules/posixAccount.inc:1387 +msgid "Check home directories" +msgstr "Ana dizini kontrol et" + +#: ../templates/tests/index.php:54 ../lib/tools/tests.inc:112 +msgid "Check if quotas and homedirectories can be managed." +msgstr "" + +#: ../templates/tests/index.php:60 ../lib/tools/tests.inc:118 +msgid "" +"Check if the LDAP schema fits the requirements of the selected account " +"modules." +msgstr "" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2401 +msgid "Check password" +msgstr "Parolayı kontrol et" + +#: ../templates/tests/lamdaemonTest.php:87 +msgid "Check quotas" +msgstr "Kotaları kontrol et" + +#: ../templates/masscreate.php:241 +msgid "" +"Check your input carefully. LAM will only do some basic checks on the upload " +"data." +msgstr "" + +#: ../lib/modules/customFields.inc:2222 +msgid "Checkbox" +msgstr "Kontrol kutusu" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1224 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1229 +msgid "Children" +msgstr "Alt öğe" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:23 +msgid "Choose entry" +msgstr "Girdi seç" + +#: ../lib/modules/imapAccess.inc:83 +msgid "" +"Choose the way how to provide the IMAP admin password. You can use the same " +"password as for the LAM login or LAM will ask you for a password when it is " +"required." +msgstr "" + +#: ../lib/modules/puppetClient.inc:85 ../lib/modules/puppetClient.inc:89 +#: ../lib/modules/puppetClient.inc:133 ../lib/modules/puppetClient.inc:148 +#: ../lib/modules/puppetClient.inc:161 ../lib/modules/puppetClient.inc:264 +#: ../lib/modules/puppetClient.inc:426 +msgid "Classes" +msgstr "Sınıflar" + +#: ../lib/lists.inc:381 +msgid "Clear filter" +msgstr "Filtreyi temizle" + +#: ../lib/config.inc:211 +msgid "Click here if you are not directed to the next page." +msgstr "" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2349 +msgid "Click to popup a dialog to select a date graphically" +msgstr "" + +#: ../templates/3rdParty/pla/lib/functions.php:2293 +msgid "Click to popup a dialog to select an entry (DN) graphically" +msgstr "" + +#: ../lib/types/user.inc:619 +msgid "Click to switch between thumbnail and original size." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:234 +#: ../lib/modules/sambaSamAccount.inc:368 +#: ../lib/modules/sambaSamAccount.inc:1510 +#: ../lib/modules/sambaSamAccount.inc:1918 +msgid "Client printer is default" +msgstr "İstemci yazıcısı varsayılandır." + +#: ../templates/schema/schema.php:199 +msgid "Collective" +msgstr "Birleşik" + +#: ../templates/masscreate.php:278 ../lib/modules/customFields.inc:114 +#: ../lib/modules/customFields.inc:2085 +msgid "Columns" +msgstr "kolonlar" + +#: ../lib/modules/sambaSamAccount.inc:308 +msgid "" +"Comma separated list of Samba workstations the user is allowed to login. " +"Empty means every workstation." +msgstr "" + +#: ../lib/modules/authorizedServiceObject.inc:79 +msgid "Comma separated list of services (e.g. sshd, imap, ftp)." +msgstr "Servislerin virgülle ayrılmış listesi (örn. sshd, imap, ftp)." + +#: ../lib/types/sudo.inc:80 ../lib/modules/customScripts.inc:135 +msgid "Command" +msgstr "Komut" + +#: ../lib/modules/sudoRole.inc:71 ../lib/modules/sudoRole.inc:97 +#: ../lib/modules/sudoRole.inc:146 ../lib/modules/sudoRole.inc:175 +#: ../lib/modules/sudoRole.inc:184 ../lib/modules/sudoRole.inc:318 +#: ../lib/modules/sudoRole.inc:686 +msgid "Commands" +msgstr "Komutlar" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:117 +msgid "Commit" +msgstr "Onayla" + +#: ../lib/modules/posixAccount.inc:431 +msgid "Common examples are \"@givenname@%sn%\" or \"%givenname%.%sn%\"." +msgstr "Genel örnekler \"@verilen ad @%sn%\" or \"% verilen ad %.%sn%\"." + +#: ../templates/config/mainmanage.php:316 ../lib/modules/posixAccount.inc:129 +#: ../lib/modules/posixAccount.inc:178 ../lib/modules/posixAccount.inc:341 +#: ../lib/modules/posixAccount.inc:414 ../lib/modules/posixAccount.inc:527 +#: ../lib/modules/posixAccount.inc:549 ../lib/modules/posixAccount.inc:1331 +#: ../lib/modules/posixAccount.inc:1747 ../lib/modules/posixAccount.inc:2447 +#: ../lib/modules/inetOrgPerson.inc:90 ../lib/modules/inetOrgPerson.inc:695 +#: ../lib/modules/inetOrgPerson.inc:808 ../lib/modules/inetOrgPerson.inc:1430 +#: ../lib/modules/inetOrgPerson.inc:2372 ../lib/modules/inetOrgPerson.inc:2503 +#: ../lib/modules/asteriskExtension.inc:111 +msgid "Common name" +msgstr "Ortak ad" + +#: ../lib/modules/asteriskExtension.inc:112 +msgid "Common name of the Asterisk extension." +msgstr "Asterisk uzantısı ortak adı" + +#: ../templates/serverInfo.php:335 ../templates/serverInfo.php:396 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1172 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:60 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:39 +msgid "Compare" +msgstr "Karşılaştır" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:28 +#, php-format +msgid "Compare another DN with %s" +msgstr "Başka DN ile %s kıyasla" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1169 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +msgid "Compare this DN with another" +msgstr "Bu DN'yi diğeriyle kıyasla" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +msgid "Compare with another entry" +msgstr "Başka girdi ile kıyasla" + +#: ../templates/3rdParty/pla/htdocs/compare.php:42 +msgid "Comparing the following DNs" +msgstr "" + +#: ../templates/serverInfo.php:284 ../templates/serverInfo.php:371 +msgid "Completed" +msgstr "Tamamlandı" + +#: ../templates/serverInfo.php:114 +msgid "Config suffix" +msgstr "Yapılandırma son eki" + +#: ../templates/config/index.php:50 +msgid "Configuration overview" +msgstr "Yapılandırmaya genel bakış" + +#: ../lib/modules/qmailUser.inc:119 ../lib/modules/qmailUser.inc:172 +#: ../lib/modules/qmailUser.inc:252 ../lib/modules/qmailUser.inc:385 +#: ../lib/modules/qmailUser.inc:432 ../lib/modules/qmailUser.inc:612 +#: ../lib/modules/qmailUser.inc:1225 +msgid "Configuration type" +msgstr "Yapılandırma tipi" + +#: ../lib/modules/qmailGroup.inc:89 ../lib/modules/qmailGroup.inc:221 +#: ../lib/modules/qmailGroup.inc:354 ../lib/modules/qmailGroup.inc:404 +#: ../lib/modules/qmailGroup.inc:616 ../lib/modules/qmailGroup.inc:1078 +msgid "Confirm sender" +msgstr "Göndereni doğrula" + +#: ../lib/modules/selfRegistration.inc:74 +msgid "Confirmation mail settings" +msgstr "Doğrulama postası ayarları" + +#: ../lib/modules/qmailGroup.inc:67 ../lib/modules/qmailGroup.inc:96 +#: ../lib/modules/qmailGroup.inc:145 ../lib/modules/qmailGroup.inc:264 +#: ../lib/modules/qmailGroup.inc:371 ../lib/modules/qmailGroup.inc:584 +#: ../lib/modules/qmailGroup.inc:1057 +msgid "Confirmation text" +msgstr "Doğrulama metini" + +#: ../lib/modules/qmailGroup.inc:146 +msgid "" +"Confirmation text that is used if sender-confirmation is used. The usual " +"%HEADER% magic of qmail-reply etc. can be used here." +msgstr "" + +#: ../templates/config/confmodules.php:394 +msgid "Conflicting module:" +msgstr "Çakışma modülü" + +#: ../lib/modules/sambaSamAccount.inc:232 +#: ../lib/modules/sambaSamAccount.inc:362 +#: ../lib/modules/sambaSamAccount.inc:1506 +#: ../lib/modules/sambaSamAccount.inc:1908 +msgid "Connect client drives" +msgstr "İstemci sürücüsüne bağlan" + +#: ../lib/modules/sambaSamAccount.inc:233 +#: ../lib/modules/sambaSamAccount.inc:365 +#: ../lib/modules/sambaSamAccount.inc:1508 +#: ../lib/modules/sambaSamAccount.inc:1913 +msgid "Connect client printers" +msgstr "İstemci yazıcısına bağlan" + +#: ../templates/serverInfo.php:230 +msgid "Connection statistics" +msgstr "Bağlantı istatistikleri" + +#: ../lib/modules/sambaSamAccount.inc:229 +#: ../lib/modules/sambaSamAccount.inc:1494 +#: ../lib/modules/sambaSamAccount.inc:1901 +msgid "Connection time limit" +msgstr "Bağlantı süresi limiti" + +#: ../lib/modules/windowsUser.inc:534 ../lib/modules/inetOrgPerson.inc:1702 +msgid "Contact data" +msgstr "İletişim verisi" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:721 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1301 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +msgid "Container" +msgstr "Kapsayıcı" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1458 +msgid "Container and object classes" +msgstr "Kapsayıcı ve nesne sınıfları" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:27 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:88 +#: ../templates/3rdParty/pla/htdocs/copy.php:108 +msgid "Copy" +msgstr "kopyala" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:32 +#, php-format +msgid "Copy %s to a new object." +msgstr "Yeni nesneye kopyala %s " + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1098 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1102 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1103 +msgid "Copy or move this entry" +msgstr "Bu iletiyi kopyala ya da kaldır" + +#: ../templates/3rdParty/pla/htdocs/copy.php:130 +#, php-format +msgid "Copy successful. DN %s has been created." +msgstr "Kopyalama başarıyla sonuçlandı. DN %s oluşturuldu" + +#: ../templates/3rdParty/pla/htdocs/copy.php:48 +msgid "Copying" +msgstr "Kopyalama" + +#: ../templates/3rdParty/pla/htdocs/import.php:37 +msgid "Could not add object" +msgstr "Nesne eklenemedi" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:370 +msgid "Could not add the object to the LDAP server." +msgstr "LDAP sunucusuna nesne eklenemedi." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:30 +msgid "Could not delete attribute value." +msgstr "Öznitelik değeri silinemedi" + +#: ../templates/3rdParty/pla/htdocs/import.php:38 +msgid "Could not delete object" +msgstr "Nesne silinemedi" + +#: ../templates/3rdParty/pla/htdocs/delete.php:37 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:47 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:73 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:90 +msgid "Could not delete the entry." +msgstr "Girdi silinemedi." + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:37 +#, php-format +msgid "Could not fetch binary data from LDAP server for attribute [%s]." +msgstr "" + +#: ../templates/3rdParty/pla/lib/functions.php:1946 +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:60 +#, php-format +msgid "Could not fetch jpeg data from LDAP server for attribute [%s]." +msgstr "Öznitelik için [%s] jpeg verisi LDAP sunucusundan getirilemedi." + +#: ../templates/3rdParty/pla/htdocs/import.php:41 +msgid "Could not modify object" +msgstr "Nesne değiştirilemedi" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:528 +msgid "Could not perform ldap_modify operation." +msgstr "ldap_modify işlemi gerçekleşemedi." + +#: ../templates/config/profmanage.php:100 +#: ../templates/selfService/profManage.php:74 +msgid "Could not rename file!" +msgstr "Dosya yeniden adlandırılamadı!" + +#: ../templates/3rdParty/pla/htdocs/import.php:39 +#: ../templates/3rdParty/pla/htdocs/import.php:40 +#: ../templates/3rdParty/pla/htdocs/rename.php:60 +msgid "Could not rename the entry." +msgstr "Girdi yeniden adlandırılamadı." + +#: ../templates/pdfedit/pdfpage.php:117 +msgid "Could not save PDF structure, access denied." +msgstr "PDF yapısı kaydedilemedi, erişim reddedildi." + +#: ../templates/pdfedit/pdfmain.php:168 +#: ../templates/profedit/profilemain.php:167 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1185 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1189 +#: ../templates/initsuff.php:190 ../lib/modules/sambaSamAccount.inc:1595 +#: ../lib/modules/posixAccount.inc:1591 +msgid "Create" +msgstr "Oluştur" + +#: ../lib/lists.inc:497 ../lib/lists.inc:679 ../lib/modules.inc:1315 +#: ../help/help.inc:180 +msgid "Create PDF file" +msgstr "PDF dosyası oluştur" + +#: ../templates/massDoUpload.php:202 ../templates/masscreate.php:258 +msgid "Create PDF files" +msgstr "PDF dosyaları oluştur" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1186 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1190 +msgid "Create a child entry" +msgstr "Bir alt öğe girdisi oluştur" + +#: ../templates/pdfedit/pdfmain.php:161 +msgid "Create a new PDF structure" +msgstr "Yeni bir PDF yapısı oluştur" + +#: ../templates/profedit/profilemain.php:155 +msgid "Create a new profile" +msgstr "Yeni bir profil oluştur" + +#: ../lib/types/dhcp.inc:46 +msgid "Create another DHCP entry" +msgstr "Başka DHCP girdisi oluştur" + +#: ../lib/types/nisObjectType.inc:29 +msgid "Create another NIS object" +msgstr "Başka NIS nesnesi oluştur" + +#: ../lib/baseType.inc:47 +msgid "Create another account" +msgstr "Başka hesap oluştur" + +#: ../lib/types/zarafaAddressListType.inc:43 +msgid "Create another address list" +msgstr "Başka adres listesi oluştur" + +#: ../lib/types/mailAlias.inc:43 ../lib/types/alias.inc:43 +msgid "Create another alias" +msgstr "Başka takma isim oluştur" + +#: ../lib/types/automountType.inc:34 +msgid "Create another automount entry" +msgstr "Diğer otomatik girdiyi oluştur" + +#: ../lib/types/smbDomain.inc:43 +msgid "Create another domain" +msgstr "Başka etki alanı oluştur" + +#: ../templates/3rdParty/pla/htdocs/create.php:100 +msgid "Create another entry" +msgstr "Başka girdi oluştur" + +#: ../lib/types/asteriskExt.inc:46 +msgid "Create another extension" +msgstr "Başka uzantı oluştur" + +#: ../lib/types/gon.inc:43 ../lib/types/zarafaDynamicGroupType.inc:43 +#: ../lib/types/group.inc:44 ../lib/types/netgroup.inc:43 +msgid "Create another group" +msgstr "Farklı grup oluştur" + +#: ../lib/types/host.inc:43 +msgid "Create another host" +msgstr "Başka ana bilgisayar oluştur" + +#: ../lib/types/ppolicyType.inc:29 +msgid "Create another policy" +msgstr "Diğer ilkeyi oluştur" + +#: ../lib/types/sudo.inc:29 +msgid "Create another sudo role" +msgstr "Başka sudo rolü oluştur" + +#: ../lib/types/user.inc:43 +msgid "Create another user" +msgstr "Başka kullanıcı oluştur" + +#: ../lib/lists.inc:684 +msgid "Create for" +msgstr "için oluştur" + +#: ../lib/modules/posixAccount.inc:310 ../lib/modules/posixAccount.inc:1373 +#: ../lib/modules/posixAccount.inc:1656 +msgid "Create home directory" +msgstr "Ana dizin oluştur" + +#: ../lib/modules/imapAccess.inc:243 +msgid "Create mailbox" +msgstr "e-posta kutusu oluştur" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:278 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:281 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:283 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:506 +msgid "Create new entry here" +msgstr "Buraya yeni girdi oluştur" + +#: ../lib/modules/customFields.inc:62 ../lib/modules/customFields.inc:435 +#: ../lib/modules/customFields.inc:448 +msgid "Create new group" +msgstr "Yeni grup oluştur" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:698 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1541 +#: ../templates/3rdParty/pla/htdocs/create.php:84 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:52 +msgid "Create object" +msgstr "Nesne oluştur" + +#: ../lib/modules/generalInformation.inc:69 +msgid "Created by" +msgstr "Oluşturan" + +#: ../lib/types/automountType.inc:273 +msgid "Created new automount map." +msgstr "Yeni otomatik harita oluşturuldu." + +#: ../templates/config/profmanage.php:77 +#: ../templates/selfService/profManage.php:55 +msgid "Created new profile." +msgstr "Yeni profil oluşturuldu." + +#: ../lib/modules/customFields.inc:63 +msgid "" +"Creates a new group for the given account type. Groups build a container for " +"object classes and attributes." +msgstr "" +"Verilen hesap türü için yeni bir grup oluştur. Gruplar nesne sınıfları ve " +"öznitelikleri için bir kapsayıcı oluşturur." + +#: ../lib/tools/fileUpload.inc:53 +msgid "Creates accounts by uploading a CSV formated file." +msgstr "Hesapları CSV formatında bir dosya yükleyerek oluştur." + +#: ../templates/3rdParty/pla/htdocs/create.php:77 +#, php-format +msgid "Creation successful. DN %s has been created." +msgstr "Oluşturma başarılı. DN %s oluşturuldu." + +#: ../lib/modules/generalInformation.inc:73 +msgid "Creation time" +msgstr "Oluşturma zamanı" + +#: ../templates/serverInfo.php:232 ../templates/serverInfo.php:237 +msgid "Current connections" +msgstr "Mevcut koşullar" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:65 +#, php-format +msgid "Current list of %s values for attribute %s:" +msgstr "Öznitelik için %s: değerlerin %s güncel listesi" + +#: ../lib/modules/imapAccess.inc:297 +msgid "Current usage (kB)" +msgstr "Güncel kullanım (kB)" + +#: ../lib/modules/customFields.inc:58 ../lib/modules/customFields.inc:1013 +msgid "Custom fields" +msgstr "Özel alanlar" + +#: ../lib/modules/customScripts.inc:41 ../lib/modules/customScripts.inc:52 +#: ../lib/modules/customScripts.inc:66 ../lib/modules/customScripts.inc:87 +#: ../lib/modules/customScripts.inc:96 +msgid "Custom scripts" +msgstr "Özel komutlar" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1097 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1101 +msgid "Cut" +msgstr "Kes" + +#: ../lib/modules/ddns.inc:56 +msgid "DDNS" +msgstr "DDNS" + +#: ../lib/modules/ddns.inc:370 +msgid "" +"DDNS ist not activated. You can activate it in the DHCP settings (DDNS)." +msgstr "" +"DDNS etkin değil. DHCP ayarları (DDNS) içerisinden etkinleştirebilirsiniz." + +#: ../lib/types/dhcp.inc:56 +msgid "DHCP" +msgstr "DHCP" + +#: ../lib/types/dhcp.inc:65 +msgid "DHCP administration" +msgstr "DHCP yönetimi" + +#: ../lib/types/dhcp.inc:170 +#, php-format +msgid "DHCP count: %s" +msgstr "DHCP sayısı: %s" + +#: ../lib/types/dhcp.inc:173 ../lib/modules/dhcp_settings.inc:120 +msgid "DHCP settings" +msgstr "DHCP ayarları" + +#: ../templates/delete.php:100 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:734 +#: ../templates/3rdParty/pla/lib/PageRender.php:110 +#: ../templates/3rdParty/pla/htdocs/compare.php:52 +#: ../templates/3rdParty/pla/htdocs/compare.php:58 +#: ../templates/3rdParty/pla/htdocs/create.php:92 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:35 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:112 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:57 ../lib/modules.inc:404 +#: ../lib/modules.inc:1891 +msgid "DN" +msgstr "DN" + +#: ../templates/3rdParty/pla/lib/import_functions.php:210 +#: ../templates/3rdParty/pla/lib/import_functions.php:222 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1866 +msgid "DN does not exist" +msgstr "DN yok" + +#: ../templates/masscreate.php:282 +msgid "DN settings" +msgstr "DN ayarları" + +#: ../templates/masscreate.php:311 ../help/help.inc:170 +msgid "DN suffix" +msgstr "DN soneki" + +#: ../lib/modules/dhcp_settings.inc:204 ../lib/modules/dhcp_settings.inc:219 +#: ../lib/modules/dhcp_settings.inc:261 ../lib/modules/dhcp_settings.inc:570 +#: ../lib/modules/dhcp_settings.inc:670 +msgid "DNS" +msgstr "DN" + +#: ../lib/modules/dhcp_settings.inc:154 +msgid "DNS (Domain Name System)" +msgstr "DNS" + +#: ../lib/modules/asteriskExtension.inc:108 +msgid "DNs of the extension owners" +msgstr "Uzantı sahiplerinin DNs i" + +#: ../templates/3rdParty/pla/lib/export_functions.php:343 +msgid "DSML V.1 Export" +msgstr "DSML V.1 dışa aktar" + +#: ../lib/modules/asteriskAccount.inc:255 +#: ../lib/modules/asteriskAccount.inc:335 +#: ../lib/modules/asteriskAccount.inc:424 +#: ../lib/modules/asteriskAccount.inc:723 +msgid "DTFM flags" +msgstr "DTFM işaretleri" + +#: ../lib/modules/asteriskAccount.inc:130 +#: ../lib/modules/asteriskAccount.inc:1195 +msgid "DTMF mode" +msgstr "DTMF modu" + +#: ../lib/modules/asteriskAccount.inc:131 +msgid "DTMF mode for SIP client configuration." +msgstr "SIP sürücü yapılandırması için DTMF kipi." + +#: ../templates/3rdParty/pla/htdocs/import.php:103 +msgid "Data" +msgstr "Veri" + +#: ../lib/modules/sambaSamAccount.inc:288 +msgid "Date after the user is able to change his password." +msgstr "" + +#: ../lib/modules/mitKerberos.inc:114 ../lib/modules/sambaSamAccount.inc:290 +#: ../lib/modules/heimdalKerberos.inc:100 +msgid "Date after the user must change his password." +msgstr "" + +#: ../lib/modules/shadowAccount.inc:171 +msgid "" +"Days before password is to expire that user is warned of pending password " +"expiration. If set value must be >0." +msgstr "" + +#: ../templates/config/mainmanage.php:352 +msgid "Debug" +msgstr "Düzelt" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:592 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +#: ../lib/modules/qmailUser.inc:47 ../lib/modules/qmailUser.inc:285 +#: ../lib/modules/qmailUser.inc:1069 +msgid "Default" +msgstr "Varsayılan" + +#: ../lib/modules/dhcp_settings.inc:158 ../lib/modules/dhcp_settings.inc:205 +#: ../lib/modules/dhcp_settings.inc:220 ../lib/modules/dhcp_settings.inc:267 +#: ../lib/modules/dhcp_settings.inc:572 ../lib/modules/dhcp_settings.inc:671 +msgid "Default gateway" +msgstr "Varsayılan ağ geçidi" + +#: ../templates/config/confmain.php:286 ../help/help.inc:97 +msgid "Default language" +msgstr "Vasayılan dil" + +#: ../lib/modules/asteriskAccount.inc:222 +#: ../lib/modules/asteriskAccount.inc:301 +#: ../lib/modules/asteriskAccount.inc:358 +#: ../lib/modules/asteriskAccount.inc:592 +#: ../lib/modules/asteriskAccount.inc:945 +#: ../lib/modules/asteriskAccount.inc:1218 +msgid "Default user" +msgstr "Varsayılan kullanıcı" + +#: ../templates/masscreate.php:300 ../templates/masscreate.php:375 +#: ../lib/modules/customFields.inc:110 ../lib/modules/customFields.inc:2248 +msgid "Default value" +msgstr "Varsayılan değer" + +#: ../lib/modules/sambaDomain.inc:111 +msgid "Defines if workstations may change their passwords." +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:151 +msgid "" +"Defines the mailbox to check for message waiting indication (MWI) for this " +"peer." +msgstr "" + +#: ../lib/modules/kolabUser.inc:98 ../lib/modules/kolabUser.inc:114 +#: ../lib/modules/kolabUser.inc:118 ../lib/modules/kolabUser.inc:178 +#: ../lib/modules/kolabUser.inc:200 ../lib/modules/kolabUser.inc:332 +#: ../lib/modules/kolabUser.inc:721 ../lib/modules/kolabUser.inc:788 +msgid "Delegates" +msgstr "Temsilciler" + +#: ../templates/serverInfo.php:321 ../templates/serverInfo.php:390 +#: ../templates/ou_edit.php:120 ../templates/config/profmanage.php:272 +#: ../templates/selfService/profManage.php:238 +#: ../templates/pdfedit/pdfmain.php:194 ../templates/pdfedit/pdfmain.php:195 +#: ../templates/delete.php:120 ../templates/profedit/profilemain.php:196 +#: ../templates/profedit/profilemain.php:197 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:33 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:124 +#: ../lib/modules/sambaSamAccount.inc:1588 +#: ../lib/modules/posixAccount.inc:1584 ../lib/modules/zarafaUser.inc:1500 +#: ../lib/modules/zarafaUser.inc:1552 ../lib/modules/kolabUser.inc:778 +#: ../lib/modules/sambaGroupMapping.inc:398 +#: ../lib/modules/ldapPublicKey.inc:290 ../lib/modules/nisnetgroup.inc:246 +#: ../lib/modules/inetOrgPerson.inc:3241 ../lib/modules/customFields.inc:2950 +#: ../lib/lists.inc:491 +msgid "Delete" +msgstr "Sil" + +#: ../templates/3rdParty/pla/htdocs/delete.php:31 +msgid "Delete DN" +msgstr "DN sil" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:30 +msgid "Delete LDAP entries" +msgstr "LDAP girdilerini sil" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:77 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:84 +msgid "Delete after copy (move):" +msgstr "Kopyalamadan sonra sil ( kaldır)" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:72 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:110 +#, php-format +msgid "Delete all %s objects" +msgstr "Tüm %s nesneleri sil" + +#: ../templates/config/mainmanage.php:278 +msgid "Delete all CA certificates" +msgstr "Tüm CA serifikalarını sil" + +#: ../lib/modules/customFields.inc:546 +msgid "Delete group" +msgstr "Grup sil" + +#: ../lib/modules/posixAccount.inc:1434 +msgid "Delete home directory" +msgstr "Geçerli dizini sil" + +#: ../lib/modules/imapAccess.inc:236 +msgid "Delete mailbox" +msgstr "E-posta kutusunu sil" + +#: ../templates/ou_edit.php:197 ../help/help.inc:237 +msgid "Delete organisational unit" +msgstr "Kurumsal birimi sil" + +#: ../templates/3rdParty/pla/lib/functions.php:2014 +#: ../lib/modules/inetOrgPerson.inc:2109 +msgid "Delete photo" +msgstr "Resim sil" + +#: ../templates/config/profmanage.php:270 +#: ../templates/config/profmanage.php:273 +#: ../templates/selfService/profManage.php:232 +#: ../templates/selfService/profManage.php:239 ../help/help.inc:130 +msgid "Delete profile" +msgstr "Profil sil" + +#: ../lib/modules/range.inc:91 ../lib/modules/range.inc:109 +#: ../lib/modules/range.inc:437 +msgid "Delete range" +msgstr "Aralık sil" + +#: ../lib/modules/asteriskExtension.inc:309 +#: ../lib/modules/asteriskExtension.inc:332 +msgid "Delete rule" +msgstr "Kuralı sil" + +#: ../lib/types/dhcp.inc:174 +msgid "Delete selected DHCP entries" +msgstr "Seçilen DHCP girdilerini sil" + +#: ../lib/types/nisObjectType.inc:158 +msgid "Delete selected NIS objects" +msgstr "Seçilen NIS nesnelerini sil" + +#: ../lib/types/zarafaAddressListType.inc:147 +msgid "Delete selected address lists" +msgstr "Seçilen adres listelerini sil" + +#: ../lib/types/mailAlias.inc:144 ../lib/types/alias.inc:144 +msgid "Delete selected aliases" +msgstr "Seçilen takma adları sil" + +#: ../lib/types/automountType.inc:218 +msgid "Delete selected automount entries" +msgstr "Seçilen otomatik girdileri sil" + +#: ../lib/types/smbDomain.inc:170 +msgid "Delete selected domains" +msgstr "Seçilen etki alanlarını sil" + +#: ../lib/types/asteriskExt.inc:146 +msgid "Delete selected extensions" +msgstr "Seçilen uzantıları sil" + +#: ../lib/types/gon.inc:183 ../lib/types/zarafaDynamicGroupType.inc:168 +#: ../lib/types/group.inc:213 ../lib/types/netgroup.inc:172 +msgid "Delete selected groups" +msgstr "Seçilen grupları sil" + +#: ../lib/types/host.inc:196 +msgid "Delete selected hosts" +msgstr "Seçilen ana bilgisayarları sil" + +#: ../lib/lists.inc:115 +msgid "Delete selected objects" +msgstr "Seçilen nesneleri sil" + +#: ../lib/types/ppolicyType.inc:152 +msgid "Delete selected policies" +msgstr "Seçilen ilkeleri sil" + +#: ../lib/types/sudo.inc:162 +msgid "Delete selected sudo roles" +msgstr "Seçilen sudo rolleri sil" + +#: ../lib/types/user.inc:533 +msgid "Delete selected users" +msgstr "Seçilen kullanıcıları sil" + +#: ../templates/3rdParty/pla/htdocs/copy.php:146 +#, php-format +msgid "Delete successful: %s" +msgstr "Silme işlemi başarılı: %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "Delete this entry" +msgstr "Bu g silirdiyi" + +#: ../lib/modules/qmailUser.inc:44 +msgid "Deleted" +msgstr "Silindi" + +#: ../templates/delete.php:272 +#, php-format +msgid "Deleted DN: %s" +msgstr "DN: %s silindi" + +#: ../templates/pdfedit/pdfmain.php:89 +msgid "Deleted PDF structure." +msgstr "PDF yapısı silindi" + +#: ../templates/profedit/profilemain.php:103 +msgid "Deleted profile." +msgstr "Profil silindi" + +#: ../lib/modules/range.inc:92 +msgid "Deletes an IP range." +msgstr "IP aralığını siler." + +#: ../templates/3rdParty/pla/htdocs/import.php:29 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:65 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:82 +msgid "Deleting" +msgstr "Siliniyor" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:73 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:125 +msgid "Deleting objects" +msgstr "Nesneler siliniyor" + +#: ../lib/modules/qmailUser.inc:117 ../lib/modules/qmailUser.inc:248 +#: ../lib/modules/qmailUser.inc:375 ../lib/modules/qmailUser.inc:429 +#: ../lib/modules/qmailUser.inc:651 ../lib/modules/qmailUser.inc:892 +#: ../lib/modules/qmailUser.inc:1217 +msgid "Deletion date" +msgstr "Silme tarihi" + +#: ../lib/lists.inc:1061 +msgid "Deletion was successful." +msgstr "Silme işlemi başarıyla gerçekleştirildi." + +#: ../lib/modules/qmailUser.inc:208 ../lib/modules/qmailUser.inc:283 +#: ../lib/modules/qmailUser.inc:396 ../lib/modules/qmailUser.inc:622 +#: ../lib/modules/qmailUser.inc:1211 +msgid "Delivery mode" +msgstr "İletme durumu" + +#: ../lib/modules/qmailUser.inc:115 ../lib/modules/qmailUser.inc:168 +#: ../lib/modules/qmailUser.inc:244 ../lib/modules/qmailUser.inc:367 +#: ../lib/modules/qmailUser.inc:426 ../lib/modules/qmailUser.inc:641 +#: ../lib/modules/qmailUser.inc:1197 +msgid "Delivery program" +msgstr "İletme programı" + +#: ../lib/modules/asteriskAccount.inc:158 +#: ../lib/modules/asteriskAccount.inc:269 +#: ../lib/modules/asteriskAccount.inc:342 +#: ../lib/modules/asteriskAccount.inc:476 +#: ../lib/modules/asteriskAccount.inc:794 +#: ../lib/modules/asteriskAccount.inc:1202 +#: ../lib/modules/dhcp_settings.inc:104 +msgid "Deny" +msgstr "Engelle" + +#: ../lib/modules/inetOrgPerson.inc:146 ../lib/modules/inetOrgPerson.inc:200 +#: ../lib/modules/inetOrgPerson.inc:346 ../lib/modules/inetOrgPerson.inc:552 +#: ../lib/modules/inetOrgPerson.inc:671 ../lib/modules/inetOrgPerson.inc:868 +#: ../lib/modules/inetOrgPerson.inc:872 ../lib/modules/inetOrgPerson.inc:1961 +#: ../lib/modules/inetOrgPerson.inc:2387 ../lib/modules/inetOrgPerson.inc:3161 +msgid "Department" +msgstr "Bölüm" + +#: ../lib/modules/kolabGroup.inc:98 ../lib/modules/kolabGroup.inc:102 +#: ../lib/modules/kolabUser.inc:144 ../lib/modules/kolabUser.inc:148 +msgid "" +"Describes the allowed or disallowed SMTP addresses sending mail to this " +"account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "" + +#: ../lib/modules/kolabGroup.inc:89 ../lib/modules/kolabGroup.inc:93 +#: ../lib/modules/kolabUser.inc:135 ../lib/modules/kolabUser.inc:139 +msgid "" +"Describes the allowed or disallowed SMTP recipient addresses for mail sent " +"by this account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "" + +#: ../templates/schema/schema.php:89 ../templates/schema/schema.php:143 +#: ../templates/schema/schema.php:346 +#: ../templates/3rdParty/pla/lib/functions.php:1898 +#: ../templates/3rdParty/pla/lib/functions.php:1902 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:139 +#: ../templates/3rdParty/pla/htdocs/import.php:101 +#: ../lib/types/automountType.inc:88 ../lib/types/nisObjectType.inc:80 +#: ../lib/types/user.inc:101 ../lib/types/sudo.inc:84 ../lib/types/dhcp.inc:96 +#: ../lib/types/netgroup.inc:92 ../lib/modules/account.inc:75 +#: ../lib/modules/account.inc:88 ../lib/modules/account.inc:98 +#: ../lib/modules/account.inc:106 ../lib/modules/account.inc:221 +#: ../lib/modules/account.inc:232 ../lib/modules/windowsHost.inc:71 +#: ../lib/modules/windowsHost.inc:94 ../lib/modules/windowsHost.inc:113 +#: ../lib/modules/windowsHost.inc:136 ../lib/modules/windowsHost.inc:288 +#: ../lib/modules/posixGroup.inc:199 ../lib/modules/posixGroup.inc:407 +#: ../lib/modules/posixGroup.inc:459 ../lib/modules/posixGroup.inc:548 +#: ../lib/modules/device.inc:74 ../lib/modules/device.inc:108 +#: ../lib/modules/device.inc:123 ../lib/modules/device.inc:170 +#: ../lib/modules/device.inc:439 ../lib/modules/dhcp_settings.inc:190 +#: ../lib/modules/dhcp_settings.inc:210 ../lib/modules/dhcp_settings.inc:300 +#: ../lib/modules/dhcp_settings.inc:613 ../lib/modules/dhcp_settings.inc:677 +#: ../lib/modules/posixAccount.inc:545 ../lib/modules/windowsUser.inc:99 +#: ../lib/modules/windowsUser.inc:252 ../lib/modules/windowsUser.inc:381 +#: ../lib/modules/windowsUser.inc:524 ../lib/modules/windowsUser.inc:1216 +#: ../lib/modules/nisObject.inc:66 ../lib/modules/nisObject.inc:96 +#: ../lib/modules/nisObject.inc:107 ../lib/modules/nisObject.inc:148 +#: ../lib/modules/nisObject.inc:213 ../lib/modules/sambaGroupMapping.inc:107 +#: ../lib/modules/sambaGroupMapping.inc:529 ../lib/modules/automount.inc:65 +#: ../lib/modules/automount.inc:88 ../lib/modules/automount.inc:98 +#: ../lib/modules/automount.inc:133 ../lib/modules/automount.inc:195 +#: ../lib/modules/nisnetgroup.inc:80 ../lib/modules/nisnetgroup.inc:133 +#: ../lib/modules/nisnetgroup.inc:192 ../lib/modules/nisnetgroup.inc:575 +#: ../lib/modules/inetOrgPerson.inc:158 ../lib/modules/inetOrgPerson.inc:308 +#: ../lib/modules/inetOrgPerson.inc:398 ../lib/modules/inetOrgPerson.inc:611 +#: ../lib/modules/inetOrgPerson.inc:701 ../lib/modules/inetOrgPerson.inc:1444 +#: ../lib/modules/inetOrgPerson.inc:2358 ../lib/modules/sudoRole.inc:59 +#: ../lib/modules/sudoRole.inc:128 ../lib/modules/sudoRole.inc:172 +#: ../lib/modules/sudoRole.inc:253 ../lib/modules/sudoRole.inc:683 +#: ../lib/modules/windowsGroup.inc:110 ../lib/modules/windowsGroup.inc:175 +#: ../lib/modules/windowsGroup.inc:235 ../lib/modules/windowsGroup.inc:275 +#: ../lib/modules/windowsGroup.inc:714 ../lib/modules/groupOfNames.inc:68 +#: ../lib/modules/groupOfNames.inc:110 ../lib/modules/groupOfNames.inc:146 +#: ../lib/modules/groupOfNames.inc:164 ../lib/modules/groupOfNames.inc:208 +#: ../lib/modules/groupOfNames.inc:620 +msgid "Description" +msgstr "Açıklama" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "Destination DN" +msgstr "Hedef DN" + +#: ../lib/modules/device.inc:38 +msgid "Device" +msgstr "Cihaz" + +#: ../lib/modules/sambaSamAccount.inc:383 +#: ../lib/modules/sambaSamAccount.inc:571 +msgid "Disable LM hashes" +msgstr "LM komutlarını devredışı bırak" + +#: ../lib/modules/ddns.inc:82 ../lib/modules/ddns.inc:363 +msgid "Disable client updates" +msgstr "İstemci güncellemelerini devre dışı bırak" + +#: ../lib/modules/qmailUser.inc:43 +msgid "Disabled" +msgstr "Devredışı" + +#: ../lib/modules/ddns.inc:83 +msgid "Disables the client to update DNS entries." +msgstr "Sürücü DNS girdilerini devredışı bırakır." + +#: ../lib/modules/mitKerberos.inc:165 +msgid "" +"Disables user-to-user authentication for this principal by prohibiting this " +"principal from obtaining a session key for another user." +msgstr "" + +#: ../lib/modules/heimdalKerberos.inc:123 +#: ../lib/modules/heimdalKerberos.inc:375 +msgid "Disallow TGT-based tickets" +msgstr "TGT- tabanlı biletleri reddet" + +#: ../lib/modules/mitKerberos.inc:167 ../lib/modules/mitKerberos.inc:453 +#: ../lib/modules/heimdalKerberos.inc:141 +#: ../lib/modules/heimdalKerberos.inc:380 +msgid "Disallow all tickets" +msgstr "Tüm biletleri reddet" + +#: ../templates/config/conftypes.php:297 ../help/help.inc:162 +msgid "Disallow delete" +msgstr "Silmeyi reddet" + +#: ../lib/modules/mitKerberos.inc:155 ../lib/modules/mitKerberos.inc:423 +#: ../lib/modules/heimdalKerberos.inc:126 +#: ../lib/modules/heimdalKerberos.inc:350 +msgid "Disallow forwardable tickets" +msgstr "Gönderilebilir biletlere izin verme" + +#: ../lib/modules/mitKerberos.inc:152 ../lib/modules/mitKerberos.inc:438 +#: ../lib/modules/heimdalKerberos.inc:135 +#: ../lib/modules/heimdalKerberos.inc:365 +msgid "Disallow post-dated tickets" +msgstr "İleri tarihli biletlere izin verme" + +#: ../lib/modules/mitKerberos.inc:161 ../lib/modules/mitKerberos.inc:428 +#: ../lib/modules/heimdalKerberos.inc:129 +#: ../lib/modules/heimdalKerberos.inc:355 +msgid "Disallow proxiable tickets" +msgstr "Yetkilendirilebilir biletlere izin verme" + +#: ../lib/modules/mitKerberos.inc:158 ../lib/modules/mitKerberos.inc:433 +#: ../lib/modules/heimdalKerberos.inc:132 +#: ../lib/modules/heimdalKerberos.inc:360 +msgid "Disallow renewable tickets" +msgstr "Yenilenebilir biletlere izin verme" + +#: ../lib/modules/mitKerberos.inc:179 ../lib/modules/mitKerberos.inc:443 +#: ../lib/modules/heimdalKerberos.inc:138 +#: ../lib/modules/heimdalKerberos.inc:370 +msgid "Disallow service tickets" +msgstr "Servis biletlerine izin verme" + +#: ../lib/modules/mitKerberos.inc:164 ../lib/modules/mitKerberos.inc:448 +msgid "Disallow user-to-user authentication" +msgstr "Kullanıcıdan-kullanıcıya doğrulama işlemine izin verme" + +#: ../lib/modules/asteriskAccount.inc:190 +#: ../lib/modules/asteriskAccount.inc:285 +#: ../lib/modules/asteriskAccount.inc:350 +#: ../lib/modules/asteriskAccount.inc:534 +#: ../lib/modules/asteriskAccount.inc:869 +#: ../lib/modules/asteriskAccount.inc:1210 +msgid "Disallowed codec" +msgstr "İzinsiz kodlayıcı" + +#: ../lib/modules/sambaDomain.inc:106 ../lib/modules/sambaDomain.inc:186 +#: ../lib/modules/sambaDomain.inc:292 ../lib/modules/sambaDomain.inc:660 +msgid "Disconnect users outside logon hours" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:230 +#: ../lib/modules/sambaSamAccount.inc:1498 +#: ../lib/modules/sambaSamAccount.inc:1902 +msgid "Disconnection time limit" +msgstr "" + +#: ../lib/modules/sambaDomain.inc:107 +msgid "Disconnects users if they are logged in outside logon hours." +msgstr "" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +msgid "Display format" +msgstr "Görüntü formatı" + +#: ../lib/modules/sambaSamAccount.inc:111 +#: ../lib/modules/sambaSamAccount.inc:202 +#: ../lib/modules/sambaSamAccount.inc:248 +#: ../lib/modules/sambaSamAccount.inc:406 +#: ../lib/modules/sambaSamAccount.inc:1123 +#: ../lib/modules/sambaSamAccount.inc:1874 ../lib/modules/windowsUser.inc:103 +#: ../lib/modules/windowsUser.inc:240 ../lib/modules/windowsUser.inc:382 +#: ../lib/modules/windowsUser.inc:445 ../lib/modules/windowsUser.inc:522 +#: ../lib/modules/windowsUser.inc:1217 +#: ../lib/modules/sambaGroupMapping.inc:105 +#: ../lib/modules/sambaGroupMapping.inc:139 +#: ../lib/modules/sambaGroupMapping.inc:352 +#: ../lib/modules/sambaGroupMapping.inc:527 +msgid "Display name" +msgstr "Görüntü adı" + +#: ../templates/lists/changePassword.php:303 +msgid "Display on screen" +msgstr "Ekrandaki görüntü" + +#: ../templates/3rdParty/pla/htdocs/create.php:97 +msgid "Display the created entry" +msgstr "Oluşturulan girdinin görüntüsü" + +#: ../lib/modules.inc:497 +msgid "" +"Displayed account numbers start at \"0\". Add 2 to get the row in your " +"spreadsheet." +msgstr "" + +#: ../lib/modules/windowsGroup.inc:61 +msgid "Distribution" +msgstr "Dağıtma" + +#: ../lib/modules/passwordSelfReset.inc:129 +#: ../lib/modules/passwordSelfReset.inc:252 +msgid "Do not ask security question" +msgstr "Güvenlik sorusu sorma" + +#: ../templates/ou_edit.php:112 +msgid "Do you really want to delete this OU?" +msgstr "OU yu gerçekten silmek istiyor musunuz?" + +#: ../templates/pdfedit/pdfmain.php:313 +msgid "Do you really want to delete this PDF structure?" +msgstr "Bu PDF yapısını silmek istediğinizden emin misiniz?" + +#: ../templates/profedit/profilemain.php:317 +msgid "Do you really want to delete this profile?" +msgstr "Bu profili silmek istediğinizden emin misiniz?" + +#: ../lib/modules/kolabGroup.inc:266 ../lib/modules/kolabUser.inc:497 +msgid "Do you really want to mark this account for deletion?" +msgstr "Bu hesabı silmek için işaretlemek istiyor musunuz?" + +#: ../lib/modules/qmailGroup.inc:266 +msgid "Do you really want to post to this mailinglist?" +msgstr "Bu posta listesini göndermek istediğinizden emin misiniz?" + +#: ../templates/delete.php:94 +msgid "Do you really want to remove the following accounts?" +msgstr "Aşağıda yer alan hesapları kaldırmak istediğinizden emin misiniz?" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:59 +msgid "Do you want to create this entry?" +msgstr "Bu girdiyi oluşturmak istiyor musunuz?" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:36 +msgid "Do you want to make these changes?" +msgstr "Bu değişiklikleri yapmak istiyor musunuz?" + +#: ../lib/modules/sambaSamAccount.inc:203 +#: ../lib/modules/sambaSamAccount.inc:326 +#: ../lib/modules/sambaSamAccount.inc:399 +#: ../lib/modules/sambaSamAccount.inc:523 +#: ../lib/modules/sambaSamAccount.inc:1255 +#: ../lib/modules/sambaSamAccount.inc:1749 +#: ../lib/modules/sambaSamAccount.inc:1771 +#: ../lib/modules/sambaSamAccount.inc:1880 +#: ../lib/modules/sambaGroupMapping.inc:151 +#: ../lib/modules/sambaGroupMapping.inc:379 +#: ../lib/modules/sambaGroupMapping.inc:563 ../lib/modules/nisnetgroup.inc:216 +#: ../lib/modules/nisnetgroup.inc:582 +msgid "Domain" +msgstr "Etki alanı" + +#: ../lib/modules/sambaSamAccount.inc:84 +msgid "Domain KRBTGT" +msgstr "KRBTGT etki alanı" + +#: ../lib/types/smbDomain.inc:91 ../lib/modules/sambaDomain.inc:74 +#: ../lib/modules/sambaDomain.inc:144 ../lib/modules/sambaDomain.inc:178 +#: ../lib/modules/sambaDomain.inc:249 ../lib/modules/sambaDomain.inc:254 +#: ../lib/modules/sambaDomain.inc:639 +msgid "Domain SID" +msgstr "SID etki alanı" + +#: ../lib/modules/sambaGroupMapping.inc:118 +#: ../lib/modules/windowsGroup.inc:170 ../lib/modules/windowsGroup.inc:177 +#: ../lib/modules/windowsGroup.inc:183 +msgid "Domain administrators" +msgstr "Etki alanı yöneticileri" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:60 +#: ../lib/modules/sambaGroupMapping.inc:124 +msgid "Domain admins" +msgstr "Etki alanı yöneticileri" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:65 +msgid "Domain certificate admins" +msgstr "Etki alanı sertifikası yöneticileri" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaSamAccount.inc:791 +#: ../lib/modules/sambaGroupMapping.inc:63 +msgid "Domain computers" +msgstr "Etki alanı bilgisayarları" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:64 +msgid "Domain controllers" +msgstr "Etki alanı denetim birimleri" + +#: ../lib/types/smbDomain.inc:167 +#, php-format +msgid "Domain count: %s" +msgstr "Etki alanı sayısı: %s" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:67 +msgid "Domain enterprise admins" +msgstr "Şirket etki alanı yöneticileri" + +#: ../lib/modules/sambaGroupMapping.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:370 +msgid "Domain group" +msgstr "Etki alanı grubu" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:62 +msgid "Domain guests" +msgstr "Etki alanı misafirleri" + +#: ../lib/modules/windowsGroup.inc:64 +msgid "Domain local" +msgstr "Yerel etki alanı" + +#: ../lib/types/smbDomain.inc:92 ../lib/modules/dhcp_settings.inc:138 +#: ../lib/modules/dhcp_settings.inc:201 ../lib/modules/dhcp_settings.inc:216 +#: ../lib/modules/dhcp_settings.inc:243 ../lib/modules/dhcp_settings.inc:560 +#: ../lib/modules/dhcp_settings.inc:667 ../lib/modules/nisnetgroup.inc:147 +#: ../lib/modules/sambaDomain.inc:70 ../lib/modules/sambaDomain.inc:137 +#: ../lib/modules/sambaDomain.inc:177 ../lib/modules/sambaDomain.inc:234 +#: ../lib/modules/sambaDomain.inc:239 ../lib/modules/sambaDomain.inc:638 +msgid "Domain name" +msgstr "Etki alanı adı" + +#: ../lib/modules/nisnetgroup.inc:147 ../lib/modules/sambaDomain.inc:201 +#: ../lib/modules/sambaDomain.inc:202 +msgid "Domain name is invalid!" +msgstr "Etki alanı adı geçersiz!" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:68 +msgid "Domain policy admins" +msgstr "Etki alanı ilkesi yöneticileri" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:66 +msgid "Domain schema admins" +msgstr "Etki alanı şeması yöneticileri" + +#: ../lib/modules/sambaSamAccount.inc:79 +#: ../lib/modules/sambaSamAccount.inc:2183 +#: ../lib/modules/sambaGroupMapping.inc:61 +msgid "Domain users" +msgstr "Etki alanı kullanıcıları" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:43 +msgid "Don't stop on errors" +msgstr "" + +#: ../templates/pdfedit/pdfpage.php:475 +msgid "Down" +msgstr "Aşağı" + +#: ../templates/config/mainmanage.php:275 +msgid "Download CA certificates" +msgstr "CA sertifikaları yükle" + +#: ../templates/masscreate.php:250 +msgid "Download sample CSV file" +msgstr "CSV dosya örneği indir" + +#: ../templates/serverInfo.php:124 +msgid "Dynamic subtrees" +msgstr "Alt ağaçların dinamiği" + +#: ../lib/modules/eduPerson.inc:65 +msgid "EDU person" +msgstr "EDU kişi" + +#: ../lib/modules/selfRegistration.inc:119 +msgid "" +"Each line represents one LDAP attribute. The options are separated by \"::" +"\". The first option specifies if the attribute is mandatory. It can have " +"the values \"optional\" and \"required\"." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:561 +msgid "East Australian Standard, Guam" +msgstr "Doğu Avustralya Standartı, Guam" + +#: ../lib/modules/sambaSamAccount.inc:553 +msgid "Eastern Europe Time, South Africa" +msgstr "Doğu Avrupa Saati, Güney Afrika" + +#: ../lib/modules/sambaSamAccount.inc:546 +msgid "Eastern Time (US & Canada), Bogota" +msgstr "Doğu saati (US & Kanada), Bogata" + +#: ../templates/pdfedit/pdfmain.php:191 +#: ../templates/profedit/profilemain.php:193 +#: ../lib/modules/sambaSamAccount.inc:1260 +#: ../lib/modules/sambaSamAccount.inc:1265 ../lib/lists.inc:485 +msgid "Edit" +msgstr "Düzenle" + +#: ../lib/modules.inc:1323 +msgid "Edit again" +msgstr "Yeniden düzenle" + +#: ../templates/config/mainmanage.php:189 ../templates/config/index.php:99 +msgid "Edit general settings" +msgstr "Genel ayarları düzenle" + +#: ../lib/modules/posixAccount.inc:1356 ../lib/modules/windowsUser.inc:582 +msgid "Edit groups" +msgstr "Grupları düzenle" + +#: ../lib/modules/posixGroup.inc:220 ../lib/modules/windowsGroup.inc:348 +msgid "Edit members" +msgstr "Düzenleme üyeleri" + +#: ../templates/config/index.php:125 +msgid "Edit self service" +msgstr "Self servis düzenle" + +#: ../templates/config/index.php:111 +msgid "Edit server profiles" +msgstr "Sunucu profillerini düzenle" + +#: ../lib/modules/nisnetgroup.inc:201 +msgid "Edit subgroups" +msgstr "Alt grupları düzenle" + +#: ../lib/modules/sambaSamAccount.inc:1216 +msgid "Edit workstations" +msgstr "İş istasyonlarını düzenle" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1872 +#: ../lib/types/zarafaDynamicGroupType.inc:92 ../lib/types/user.inc:100 +#: ../lib/modules/zarafaDynamicGroup.inc:236 +#: ../lib/modules/zarafaDynamicGroup.inc:241 +#: ../lib/modules/zarafaGroup.inc:228 ../lib/modules/zarafaGroup.inc:235 +#: ../lib/modules/passwordSelfReset.inc:191 +#: ../lib/modules/nisMailAlias.inc:277 +msgid "Email" +msgstr "E-posta" + +#: ../templates/lists/changePassword.php:269 ../lib/modules/kolabGroup.inc:80 +#: ../lib/modules/kolabGroup.inc:84 ../lib/modules/kolabGroup.inc:136 +#: ../lib/modules/kolabGroup.inc:149 ../lib/modules/kolabGroup.inc:158 +#: ../lib/modules/kolabGroup.inc:160 ../lib/modules/kolabGroup.inc:183 +#: ../lib/modules/kolabGroup.inc:400 ../lib/modules/selfRegistration.inc:342 +#: ../lib/modules/selfRegistration.inc:417 +#: ../lib/modules/zarafaDynamicGroup.inc:60 +#: ../lib/modules/zarafaDynamicGroup.inc:61 +#: ../lib/modules/zarafaDynamicGroup.inc:117 +#: ../lib/modules/zarafaDynamicGroup.inc:159 +#: ../lib/modules/zarafaDynamicGroup.inc:193 +#: ../lib/modules/zarafaDynamicGroup.inc:465 ../lib/modules/qmailUser.inc:192 +#: ../lib/modules/qmailUser.inc:292 ../lib/modules/qmailUser.inc:399 +#: ../lib/modules/qmailUser.inc:441 ../lib/modules/qmailUser.inc:485 +#: ../lib/modules/qmailUser.inc:1186 ../lib/modules/zarafaGroup.inc:63 +#: ../lib/modules/zarafaGroup.inc:64 ../lib/modules/zarafaGroup.inc:158 +#: ../lib/modules/zarafaGroup.inc:193 ../lib/modules/zarafaGroup.inc:209 +#: ../lib/modules/zarafaGroup.inc:654 ../lib/modules/windowsUser.inc:119 +#: ../lib/modules/windowsUser.inc:294 ../lib/modules/windowsUser.inc:386 +#: ../lib/modules/windowsUser.inc:457 ../lib/modules/windowsUser.inc:535 +#: ../lib/modules/windowsUser.inc:1221 ../lib/modules/inetOrgPerson.inc:76 +#: ../lib/modules/inetOrgPerson.inc:141 ../lib/modules/inetOrgPerson.inc:194 +#: ../lib/modules/inetOrgPerson.inc:336 ../lib/modules/inetOrgPerson.inc:518 +#: ../lib/modules/inetOrgPerson.inc:653 ../lib/modules/inetOrgPerson.inc:789 +#: ../lib/modules/inetOrgPerson.inc:793 ../lib/modules/inetOrgPerson.inc:1821 +#: ../lib/modules/inetOrgPerson.inc:2371 ../lib/modules/inetOrgPerson.inc:2947 +#: ../lib/modules/asteriskVoicemail.inc:98 +#: ../lib/modules/asteriskVoicemail.inc:131 +#: ../lib/modules/asteriskVoicemail.inc:169 +#: ../lib/modules/asteriskVoicemail.inc:261 +#: ../lib/modules/asteriskVoicemail.inc:393 ../lib/modules/qmailGroup.inc:116 +#: ../lib/modules/qmailGroup.inc:120 ../lib/modules/qmailGroup.inc:233 +#: ../lib/modules/qmailGroup.inc:364 ../lib/modules/qmailGroup.inc:413 +#: ../lib/modules/qmailGroup.inc:450 ../lib/modules/qmailGroup.inc:1053 +#: ../lib/modules/imapAccess.inc:212 ../lib/modules/passwordSelfReset.inc:718 +#: ../lib/modules/passwordSelfReset.inc:887 +#: ../lib/modules/windowsGroup.inc:118 ../lib/modules/windowsGroup.inc:157 +#: ../lib/modules/windowsGroup.inc:211 ../lib/modules/windowsGroup.inc:242 +#: ../lib/modules/windowsGroup.inc:259 ../lib/modules/windowsGroup.inc:277 +#: ../lib/modules/windowsGroup.inc:716 +msgid "Email address" +msgstr "E-posta adresi" + +#: ../lib/modules/kolabGroup.inc:160 ../lib/modules/kolabGroup.inc:161 +msgid "Email address already exists." +msgstr "E-posta adresi zaten var." + +#: ../lib/modules/asteriskVoicemail.inc:99 +msgid "Email address for this voicemail account." +msgstr "Bu sesli posta hesabı için e-posta adresi" + +#: ../lib/modules/qmailGroup.inc:214 ../lib/modules/qmailGroup.inc:218 +msgid "Email addresses that are allowed to send to this list." +msgstr "Bu listeye gönderilmek için izne sahip e-posta adresleri." + +#: ../lib/modules/qmailGroup.inc:198 ../lib/modules/qmailGroup.inc:202 +msgid "Email addresses that are member of this list." +msgstr "Bu listede yer alan e-posta adresleri." + +#: ../lib/modules/qmailGroup.inc:206 ../lib/modules/qmailGroup.inc:210 +msgid "Email addresses that moderate this list (e.g. approve mails)." +msgstr "" + +#: ../lib/modules/zarafaContact.inc:76 ../lib/modules/zarafaUser.inc:117 +#: ../lib/modules/windowsUser.inc:202 ../lib/modules/windowsUser.inc:206 +#: ../lib/modules/windowsUser.inc:300 ../lib/modules/windowsUser.inc:387 +#: ../lib/modules/windowsUser.inc:459 ../lib/modules/windowsUser.inc:536 +#: ../lib/modules/windowsUser.inc:1222 ../lib/modules/kolabUser.inc:122 +#: ../lib/modules/windowsGroup.inc:122 ../lib/modules/windowsGroup.inc:126 +#: ../lib/modules/windowsGroup.inc:159 ../lib/modules/windowsGroup.inc:219 +#: ../lib/modules/windowsGroup.inc:245 ../lib/modules/windowsGroup.inc:261 +#: ../lib/modules/windowsGroup.inc:280 ../lib/modules/windowsGroup.inc:717 +msgid "Email alias" +msgstr "E-posta diğer adı" + +#: ../lib/modules/zarafaContact.inc:77 ../lib/modules/zarafaUser.inc:118 +#: ../lib/modules/windowsUser.inc:203 ../lib/modules/windowsUser.inc:207 +#: ../lib/modules/kolabUser.inc:123 ../lib/modules/windowsGroup.inc:123 +#: ../lib/modules/windowsGroup.inc:127 +msgid "Email alias for this account." +msgstr "Bu hesap için e-posta diğer adı" + +#: ../lib/modules/zarafaContact.inc:174 ../lib/modules/zarafaContact.inc:175 +#: ../lib/modules/zarafaUser.inc:449 ../lib/modules/zarafaUser.inc:450 +#: ../lib/modules/windowsUser.inc:459 ../lib/modules/windowsUser.inc:460 +#: ../lib/modules/kolabUser.inc:213 ../lib/modules/windowsGroup.inc:261 +#: ../lib/modules/windowsGroup.inc:262 +msgid "Email alias is invalid!" +msgstr "E-posta diğer adı geçersiz!" + +#: ../lib/modules/kolabUser.inc:126 +msgid "Email alias list" +msgstr "E-posta diğer adı listesi" + +#: ../lib/modules/kolabUser.inc:214 +msgid "Email alias list has invalid format!" +msgstr "E-posta takma ad listesi geçersiz biçimde!" + +#: ../lib/types/zarafaDynamicGroupType.inc:97 +#: ../lib/modules/zarafaDynamicGroup.inc:64 +#: ../lib/modules/zarafaDynamicGroup.inc:68 +#: ../lib/modules/zarafaDynamicGroup.inc:123 +#: ../lib/modules/zarafaDynamicGroup.inc:160 +#: ../lib/modules/zarafaDynamicGroup.inc:251 +#: ../lib/modules/zarafaDynamicGroup.inc:468 +#: ../lib/modules/zarafaContact.inc:132 ../lib/modules/zarafaContact.inc:165 +#: ../lib/modules/zarafaContact.inc:196 ../lib/modules/zarafaContact.inc:555 +#: ../lib/modules/zarafaGroup.inc:67 ../lib/modules/zarafaGroup.inc:71 +#: ../lib/modules/zarafaGroup.inc:166 ../lib/modules/zarafaGroup.inc:196 +#: ../lib/modules/zarafaGroup.inc:247 ../lib/modules/zarafaGroup.inc:655 +#: ../lib/modules/zarafaUser.inc:210 ../lib/modules/zarafaUser.inc:229 +#: ../lib/modules/zarafaUser.inc:411 ../lib/modules/zarafaUser.inc:426 +#: ../lib/modules/zarafaUser.inc:475 ../lib/modules/zarafaUser.inc:1301 +#: ../lib/modules/zarafaUser.inc:1563 ../lib/modules/kolabUser.inc:172 +#: ../lib/modules/kolabUser.inc:199 ../lib/modules/kolabUser.inc:311 +#: ../lib/modules/kolabUser.inc:720 +msgid "Email aliases" +msgstr "E-posta takma adları" + +#: ../lib/modules/inetOrgPerson.inc:354 ../lib/modules/inetOrgPerson.inc:414 +#: ../lib/modules/inetOrgPerson.inc:683 ../lib/modules/inetOrgPerson.inc:900 +#: ../lib/modules/inetOrgPerson.inc:1913 ../lib/modules/inetOrgPerson.inc:2382 +#: ../lib/modules/passwordSelfReset.inc:194 +#: ../lib/modules/passwordSelfReset.inc:724 +#: ../lib/modules/passwordSelfReset.inc:892 +msgid "Employee number" +msgstr "Personel numarası" + +#: ../lib/modules/inetOrgPerson.inc:88 ../lib/modules/inetOrgPerson.inc:212 +#: ../lib/modules/inetOrgPerson.inc:342 ../lib/modules/inetOrgPerson.inc:422 +#: ../lib/modules/inetOrgPerson.inc:665 ../lib/modules/inetOrgPerson.inc:721 +#: ../lib/modules/inetOrgPerson.inc:1919 ../lib/modules/inetOrgPerson.inc:2380 +msgid "Employee type" +msgstr "Personel tipi" + +#: ../lib/modules/inetOrgPerson.inc:722 +msgid "Employee type: Contractor, Employee, Intern, Temp, External, ..." +msgstr "Personel tipi: Müteahhit, İşçi, Stajyer, Geçici işçi, Yabancılar, ..." + +#: ../templates/lists/changePassword.php:468 +#: ../templates/lists/changePassword.php:475 ../templates/login.php:546 +msgid "Empty password submitted. Please try again." +msgstr "Boş parola girildi. Lütfen tekrar deneyin." + +#: ../lib/modules/passwordSelfReset.inc:85 +#: ../lib/modules/passwordSelfReset.inc:181 +msgid "Enable password self reset link" +msgstr "" + +#: ../lib/modules/selfRegistration.inc:45 +#: ../lib/modules/selfRegistration.inc:92 +msgid "Enable self registration link" +msgstr "" + +#: ../lib/modules/ppolicy.inc:90 +msgid "" +"Enables quality checking (e.g. password length) of passwords. If set to " +"\"force\" then you need to disable password hashing in your LAM server " +"profile to change passwords with LAM." +msgstr "" + +#: ../templates/3rdParty/pla/lib/export_functions.php:160 +msgid "Encountered an error while performing search." +msgstr "" + +#: ../lib/modules/imapAccess.inc:73 ../lib/modules/imapAccess.inc:111 +msgid "Encryption protocol" +msgstr "Şifreleme protokolü" + +#: ../lib/modules/imapAccess.inc:74 +msgid "" +"Encryption protocol for connecting to IMAP server. LAM requires an encrypted " +"connection." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:539 +msgid "Eniwetok, Kwajalein" +msgstr "Eniwetok, Kwajalein" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:91 +msgid "Enter the values you would like to add:" +msgstr "Eklemek istediğiniz değerleri girin:" + +#: ../lib/modules/eduPerson.inc:111 ../lib/modules/eduPerson.inc:115 +#: ../lib/modules/eduPerson.inc:187 ../lib/modules/eduPerson.inc:224 +#: ../lib/modules/eduPerson.inc:376 ../lib/modules/eduPerson.inc:771 +msgid "Entitlements" +msgstr "Yetkililer" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:471 +msgid "Entries found" +msgstr "Girdiler bulundu" + +#: ../templates/serverInfo.php:269 +msgid "Entries sent" +msgstr "Girdiler gönderildi" + +#: ../templates/3rdParty/pla/lib/export_functions.php:473 +msgid "Entry" +msgstr "Girdi" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:43 +#, php-format +msgid "Entry %s and sub-tree deleted successfully." +msgstr "Girdi %s ve alt-ağaç başarıyla silindi" + +#: ../templates/3rdParty/pla/htdocs/create.php:90 +msgid "Entry created" +msgstr "Girdi oluşturuldu" + +#: ../templates/delete.php:330 +#: ../templates/3rdParty/pla/htdocs/mass_update.php:26 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:26 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:27 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:24 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:56 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:33 +msgid "Entry does not exist" +msgstr "Girdi yok" + +#: ../lib/modules/puppetClient.inc:73 ../lib/modules/puppetClient.inc:77 +#: ../lib/modules/puppetClient.inc:121 ../lib/modules/puppetClient.inc:146 +#: ../lib/modules/puppetClient.inc:154 ../lib/modules/puppetClient.inc:232 +#: ../lib/modules/puppetClient.inc:423 +msgid "Environment" +msgstr "Çevre" + +#: ../templates/schema/schema.php:166 +msgid "Equality" +msgstr "Eşitlik" + +#: ../lib/modules/zarafaUser.inc:561 ../lib/modules/zarafaUser.inc:1315 +msgid "Equipment" +msgstr "Araç" + +#: ../templates/config/mainmanage.php:352 +#: ../templates/3rdParty/pla/lib/Template.php:430 +#: ../templates/3rdParty/pla/lib/Template.php:473 +#: ../templates/3rdParty/pla/lib/Template.php:517 +#: ../templates/3rdParty/pla/lib/functions.php:511 +#: ../templates/3rdParty/pla/lib/functions.php:513 +#: ../templates/3rdParty/pla/lib/ds_myldap.php:217 +#: ../templates/3rdParty/pla/htdocs/import.php:79 +msgid "Error" +msgstr "Hata" + +#: ../templates/3rdParty/pla/lib/functions.php:1897 +#: ../templates/3rdParty/pla/lib/functions.php:1901 +msgid "Error number" +msgstr "Hata numarası" + +#: ../lib/modules/mitKerberos.inc:1180 ../lib/modules/heimdalKerberos.inc:1041 +msgid "Error while changing Kerberos password." +msgstr "Kerberos şifresi değiştirilirken hata." + +#: ../templates/delete.php:280 +#, php-format +msgid "Error while deleting DN: %s" +msgstr "DN: %s silinirken hata" + +#: ../help/help.inc:141 +msgid "" +"Every account type needs exactly one base module. This module provides a " +"structural object class." +msgstr "" + +#: ../lib/modules/customScripts.inc:60 ../lib/modules/customScripts.inc:73 +#: ../lib/modules/selfRegistration.inc:124 ../lib/modules/zarafaContact.inc:90 +#: ../lib/modules/zarafaGroup.inc:93 ../lib/modules/dhcp_settings.inc:557 +#: ../lib/modules/zarafaUser.inc:139 ../help/help.inc:74 ../help/help.inc:80 +#: ../help/help.inc:88 ../help/help.inc:93 ../help/help.inc:113 +msgid "Example" +msgstr "Örnek" + +#: ../templates/masscreate.php:296 ../templates/masscreate.php:371 +msgid "Example value" +msgstr "Örnek değer" + +#: ../help/help.inc:62 +msgid "Examples" +msgstr "Örnekler" + +#: ../templates/config/confmain.php:308 +msgid "Execute" +msgstr "Çalıştır" + +#: ../templates/tests/lamdaemonTest.php:269 +msgid "Execute lamdaemon" +msgstr "Lamdaemonu çalıştır" + +#: ../lib/modules/freeRadius.inc:97 ../lib/modules/freeRadius.inc:123 +#: ../lib/modules/freeRadius.inc:202 ../lib/modules/freeRadius.inc:230 +#: ../lib/modules/freeRadius.inc:432 ../lib/modules/freeRadius.inc:622 +msgid "Expiration date" +msgstr "Süre sonu" + +#: ../lib/modules/asteriskAccount.inc:202 +#: ../lib/modules/asteriskAccount.inc:291 +#: ../lib/modules/asteriskAccount.inc:353 +#: ../lib/modules/asteriskAccount.inc:556 +#: ../lib/modules/asteriskAccount.inc:896 +#: ../lib/modules/asteriskAccount.inc:1213 +msgid "Expiration timestamp" +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:203 +msgid "Expiration timestamp (\"regseconds\" option)." +msgstr "" + +#: ../lib/types/ppolicyType.inc:86 ../lib/modules/ppolicy.inc:109 +#: ../lib/modules/ppolicy.inc:141 ../lib/modules/ppolicy.inc:167 +#: ../lib/modules/ppolicy.inc:207 ../lib/modules/ppolicy.inc:472 +msgid "Expire warning" +msgstr "Dolan süre uyarısı" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1081 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1084 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:305 +#: ../templates/3rdParty/pla/htdocs/export_form.php:37 +#: ../templates/3rdParty/pla/htdocs/export_form.php:53 +msgid "Export" +msgstr "Dışa aktar" + +#: ../templates/pdfedit/pdfmain.php:206 ../templates/pdfedit/pdfmain.php:207 +#: ../help/help.inc:192 +msgid "Export PDF structure" +msgstr "PDF yapısını dışa aktar" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:105 +msgid "Export format" +msgstr "Dışa aktarma formatı" + +#: ../templates/profedit/profilemain.php:207 +#: ../templates/profedit/profilemain.php:208 ../help/help.inc:174 +msgid "Export profile" +msgstr "Dışa aktarma profili" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Export subtree" +msgstr "Alt ağacı dışa aktar" + +#: ../templates/pdfedit/pdfmain.php:117 +#: ../templates/profedit/profilemain.php:132 +msgid "Export successful" +msgstr "Dışa aktarım başarılı" + +#: ../templates/serverInfo.php:349 +msgid "Extended" +msgstr "Genişletilmiş" + +#: ../lib/types/asteriskExt.inc:143 +#, php-format +msgid "Extension count: %s" +msgstr "Uzantı sayısı: %s" + +#: ../lib/types/asteriskExt.inc:94 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskExtension.inc:95 +#: ../lib/modules/asteriskExtension.inc:130 +#: ../lib/modules/asteriskExtension.inc:138 +#: ../lib/modules/asteriskExtension.inc:282 +#: ../lib/modules/asteriskExtension.inc:286 +#: ../lib/modules/asteriskExtension.inc:806 +msgid "Extension name" +msgstr "Uzantı adı" + +#: ../lib/modules/asteriskExtension.inc:107 +#: ../lib/modules/asteriskExtension.inc:131 +#: ../lib/modules/asteriskExtension.inc:152 +#: ../lib/modules/asteriskExtension.inc:226 +#: ../lib/modules/asteriskExtension.inc:474 +#: ../lib/modules/asteriskExtension.inc:807 +msgid "Extension owners" +msgstr "Uzantı sahipleri" + +#: ../lib/modules/asteriskExtension.inc:183 +msgid "Extension with this name already exists." +msgstr "Bu isim ile uzantı zaten var." + +#: ../templates/3rdParty/pla/htdocs/import.php:66 +msgid "Failed" +msgstr "Başarısız" + +#: ../lib/modules/mitKerberos.inc:121 ../lib/modules/mitKerberos.inc:245 +#: ../lib/modules/mitKerberos.inc:345 ../lib/modules/mitKerberos.inc:769 +msgid "Failed logins" +msgstr "Oturum açma başarısız" + +#: ../templates/initsuff.php:152 +msgid "Failed to create entry!" +msgstr "Girdi oluşturma başarısız!" + +#: ../lib/profiles.inc:190 ../lib/pdfstruct.inc:224 +msgid "Failed to export!" +msgstr "Dışa aktarma başarısız !" + +#: ../lib/profiles.inc:197 ../lib/pdfstruct.inc:231 +msgid "Failed to import!" +msgstr "İçe aktarma başarısız !" + +#: ../lib/types/ppolicyType.inc:85 ../lib/modules/ppolicy.inc:105 +#: ../lib/modules/ppolicy.inc:146 ../lib/modules/ppolicy.inc:166 +#: ../lib/modules/ppolicy.inc:273 ../lib/modules/ppolicy.inc:471 +msgid "Failure count interval" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:74 ../lib/modules/inetOrgPerson.inc:142 +#: ../lib/modules/inetOrgPerson.inc:191 ../lib/modules/inetOrgPerson.inc:334 +#: ../lib/modules/inetOrgPerson.inc:510 ../lib/modules/inetOrgPerson.inc:650 +#: ../lib/modules/inetOrgPerson.inc:781 ../lib/modules/inetOrgPerson.inc:785 +#: ../lib/modules/inetOrgPerson.inc:1794 ../lib/modules/inetOrgPerson.inc:2373 +#: ../lib/modules/inetOrgPerson.inc:3002 +msgid "Fax number" +msgstr "Faks numarası" + +#: ../lib/modules/zarafaUser.inc:148 ../lib/modules/zarafaUser.inc:208 +#: ../lib/modules/zarafaUser.inc:417 ../lib/modules/zarafaUser.inc:670 +#: ../lib/modules/zarafaUser.inc:1354 ../lib/modules/zarafaUser.inc:1393 +msgid "Features" +msgstr "Özellikler" + +#: ../templates/config/mainmanage.php:356 +#: ../templates/3rdParty/pla/lib/functions.php:533 +#: ../templates/3rdParty/pla/tools/unserialize.php:14 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "File" +msgstr "Dosya" + +#: ../lib/modules/customFields.inc:142 ../lib/modules/customFields.inc:2790 +msgid "File extension" +msgstr "Dosya uzantısı" + +#: ../lib/modules/sambaSamAccount.inc:302 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user and $group are replaced with user and group name." +msgstr "" + +#: ../lib/modules/windowsUser.inc:187 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user is replaced with user name." +msgstr "" + +#: ../lib/modules/zarafaServer.inc:69 ../lib/modules/zarafaServer.inc:105 +#: ../lib/modules/zarafaServer.inc:130 ../lib/modules/zarafaServer.inc:170 +#: ../lib/modules/zarafaServer.inc:212 ../lib/modules/zarafaServer.inc:375 +msgid "File path" +msgstr "Dosya yolu" + +#: ../templates/masscreate.php:237 ../lib/tools/fileUpload.inc:44 +#: ../lib/modules/ldapPublicKey.inc:73 ../lib/modules/customFields.inc:2776 +#: ../lib/lists.inc:770 +msgid "File upload" +msgstr "Dosya yükle" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +#: ../lib/types/zarafaAddressListType.inc:94 +#: ../lib/types/zarafaDynamicGroupType.inc:95 +#: ../lib/modules/zarafaDynamicGroup.inc:84 +#: ../lib/modules/zarafaDynamicGroup.inc:151 +#: ../lib/modules/zarafaDynamicGroup.inc:164 +#: ../lib/modules/zarafaDynamicGroup.inc:232 +#: ../lib/modules/zarafaDynamicGroup.inc:467 +#: ../lib/modules/zarafaContact.inc:84 ../lib/modules/posixGroup.inc:331 +#: ../lib/modules/posixGroup.inc:503 ../lib/modules/zarafaAddressList.inc:72 +#: ../lib/modules/zarafaAddressList.inc:127 +#: ../lib/modules/zarafaAddressList.inc:138 +#: ../lib/modules/zarafaAddressList.inc:199 +#: ../lib/modules/zarafaAddressList.inc:336 ../lib/modules/zarafaUser.inc:133 +#: ../lib/modules/sambaGroupMapping.inc:163 +#: ../lib/modules/sambaGroupMapping.inc:470 ../lib/modules/nisnetgroup.inc:97 +#: ../lib/modules/nisnetgroup.inc:470 ../lib/modules/groupOfNames.inc:92 +#: ../lib/modules/groupOfNames.inc:332 ../lib/modules/groupOfNames.inc:467 +#: ../lib/modules/nisMailAlias.inc:82 ../lib/modules/nisMailAlias.inc:273 +#: ../lib/lists.inc:376 ../help/help.inc:152 +msgid "Filter" +msgstr "Filtre" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:509 +msgid "Filter performed" +msgstr "" + +#: ../lib/types/user.inc:96 ../lib/modules/selfRegistration.inc:68 +#: ../lib/modules/selfRegistration.inc:125 ../lib/modules/windowsUser.inc:107 +#: ../lib/modules/windowsUser.inc:228 ../lib/modules/windowsUser.inc:383 +#: ../lib/modules/windowsUser.inc:447 ../lib/modules/windowsUser.inc:520 +#: ../lib/modules/windowsUser.inc:1218 ../lib/modules/inetOrgPerson.inc:64 +#: ../lib/modules/inetOrgPerson.inc:140 ../lib/modules/inetOrgPerson.inc:375 +#: ../lib/modules/inetOrgPerson.inc:607 ../lib/modules/inetOrgPerson.inc:713 +#: ../lib/modules/inetOrgPerson.inc:1413 ../lib/modules/inetOrgPerson.inc:2360 +#: ../lib/modules/inetOrgPerson.inc:2925 +msgid "First name" +msgstr "Ad" + +#: ../lib/modules/windowsUser.inc:447 ../lib/modules/windowsUser.inc:448 +#: ../lib/modules/inetOrgPerson.inc:64 ../lib/modules/inetOrgPerson.inc:65 +msgid "First name contains invalid characters!" +msgstr "Ad geçersiz karakterler içeriyor!" + +#: ../lib/modules/windowsUser.inc:108 ../lib/modules/inetOrgPerson.inc:714 +msgid "First name of user. Only letters, - and spaces are allowed." +msgstr "Kullanıcının adı. Yalnızca harfler, - ve boşluk kullanılabilir." + +#: ../lib/modules/ddns.inc:78 +msgid "Fix IP addresses" +msgstr "Sabit IP adresleri" + +#: ../templates/config/confmain.php:397 +msgid "Fixed list" +msgstr "Sabitlenen liste" + +#: ../lib/modules/posixGroup.inc:382 ../lib/modules/posixAccount.inc:203 +#: ../lib/modules/posixAccount.inc:221 +msgid "Fixed range" +msgstr "Sabitlenen aralık" + +#: ../templates/pdfedit/pdfpage.php:461 +msgid "Folding marks" +msgstr "Katlanabilir imler" + +#: ../lib/modules/kolabUser.inc:107 +msgid "For automatic invitation handling." +msgstr "Otomatik davet alımı için." + +#: ../lib/modules/nisnetgroup.inc:94 +msgid "" +"For the upload please specify the entries in the format \"(HOST,USER," +"DOMAIN)\". Multiple entries are separated by semicolon." +msgstr "" + +#: ../templates/lists/changePassword.php:233 +#: ../lib/modules/mitKerberos.inc:176 ../lib/modules/mitKerberos.inc:418 +#: ../lib/modules/shadowAccount.inc:360 ../lib/modules/heimdalKerberos.inc:120 +#: ../lib/modules/heimdalKerberos.inc:345 ../lib/modules.inc:1058 +#: ../help/help.inc:186 +msgid "Force password change" +msgstr "Parolayı değişimine zorla" + +#: ../lib/modules/passwordSelfReset.inc:656 +msgid "Forgot password?" +msgstr "Parolayı unuttunuz mu?" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:484 ../help/help.inc:226 +msgid "Format" +msgstr "Biçim" + +#: ../lib/modules/qmailUser.inc:200 ../lib/modules/qmailUser.inc:270 +#: ../lib/modules/qmailUser.inc:394 ../lib/modules/qmailUser.inc:445 +#: ../lib/modules/qmailUser.inc:539 ../lib/modules/qmailUser.inc:1188 +msgid "Forwarding address" +msgstr "İletim adresi" + +#: ../lib/modules/qmailUser.inc:201 +msgid "Forwards all incoming messages for this user to this address." +msgstr "" + +#: ../lib/modules/freeRadius.inc:67 +msgid "FreeRadius" +msgstr "Serbest çap" + +#: ../lib/modules/sambaSamAccount.inc:1351 +msgid "Friday" +msgstr "Cuma" + +#: ../templates/config/confmain.php:332 ../lib/modules/selfRegistration.inc:75 +#: ../lib/modules/selfRegistration.inc:131 +#: ../lib/modules/passwordSelfReset.inc:105 +#: ../lib/modules/passwordSelfReset.inc:228 +#: ../lib/modules/passwordSelfReset.inc:244 ../help/help.inc:220 +msgid "From address" +msgstr "Gönderenin adresi" + +#: ../templates/config/confmain.php:496 +msgid "From address for password mails is invalid." +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:138 +#: ../lib/modules/asteriskAccount.inc:259 +#: ../lib/modules/asteriskAccount.inc:337 +#: ../lib/modules/asteriskAccount.inc:439 +#: ../lib/modules/asteriskAccount.inc:741 +#: ../lib/modules/asteriskAccount.inc:1197 +msgid "From domain" +msgstr "İlk etki alanı" + +#: ../lib/modules/asteriskAccount.inc:139 +msgid "From domain setting for this account." +msgstr "Bu hesap için ilk etki alanı ayarları" + +#: ../lib/modules/asteriskAccount.inc:134 +#: ../lib/modules/asteriskAccount.inc:257 +#: ../lib/modules/asteriskAccount.inc:336 +#: ../lib/modules/asteriskAccount.inc:432 +#: ../lib/modules/asteriskAccount.inc:732 +#: ../lib/modules/asteriskAccount.inc:1196 +msgid "From user" +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:135 +msgid "From user setting for this account." +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:142 +#: ../lib/modules/asteriskAccount.inc:261 +#: ../lib/modules/asteriskAccount.inc:338 +#: ../lib/modules/asteriskAccount.inc:446 +#: ../lib/modules/asteriskAccount.inc:750 +#: ../lib/modules/asteriskAccount.inc:1198 +msgid "Full contact" +msgstr "" + +#: ../templates/lists/changePassword.php:267 +#: ../lib/modules/asteriskVoicemail.inc:94 +#: ../lib/modules/asteriskVoicemail.inc:130 +#: ../lib/modules/asteriskVoicemail.inc:163 +#: ../lib/modules/asteriskVoicemail.inc:255 +#: ../lib/modules/asteriskVoicemail.inc:390 +msgid "Full name" +msgstr "Tam ad" + +#: ../lib/modules/asteriskVoicemail.inc:95 +msgid "Full name for Asterisk voicemail mailbox." +msgstr "Asterisk sesli posta posta kutusu için tam ad" + +#: ../templates/3rdParty/pla/lib/functions.php:537 +#: ../templates/3rdParty/pla/tools/unserialize.php:17 +msgid "Function" +msgstr "Fonksiyon" + +#: ../lib/modules/windowsUser.inc:272 ../lib/modules/inetOrgPerson.inc:456 +msgid "GB-12345" +msgstr "GB-12345" + +#: ../lib/modules/posixGroup.inc:382 ../lib/modules/posixGroup.inc:495 +msgid "GID generator" +msgstr "GID üretici" + +#: ../lib/types/host.inc:96 ../lib/types/group.inc:93 ../lib/types/user.inc:93 +#: ../lib/modules/qmailUser.inc:107 ../lib/modules/qmailUser.inc:228 +#: ../lib/modules/qmailUser.inc:334 ../lib/modules/qmailUser.inc:414 +#: ../lib/modules/qmailUser.inc:574 ../lib/modules/qmailUser.inc:1190 +#: ../lib/modules/posixGroup.inc:189 ../lib/modules/posixGroup.inc:400 +#: ../lib/modules/posixGroup.inc:413 ../lib/modules/posixGroup.inc:455 +#: ../lib/modules/posixGroup.inc:475 ../lib/modules/posixGroup.inc:547 +#: ../lib/modules/posixGroup.inc:570 ../lib/modules/posixAccount.inc:125 +#: ../lib/modules/posixAccount.inc:406 ../lib/modules/posixAccount.inc:1749 +#: ../lib/modules/sambaGroupMapping.inc:103 +#: ../lib/modules/sambaGroupMapping.inc:525 +msgid "GID number" +msgstr "GID numarası" + +#: ../lib/modules/posixGroup.inc:570 +msgid "" +"GID number has changed. Please select checkbox to change GID number of users " +"and hosts." +msgstr "" +"GID numarası değiştirdi. Lütfen kullanıcılar ve ana bilgisayarlara ait GID " +"numaralarını değiştirmel için kontrol kutusunu seçiniz." + +#: ../lib/modules/posixAccount.inc:125 +#, php-format +msgid "" +"GID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" +msgstr "" + +#: ../lib/modules/posixGroup.inc:577 +msgid "GID number has to be a numeric value!" +msgstr "GID numarası numerik bir değer olmalı!" + +#: ../lib/modules/qmailUser.inc:459 +msgid "GID number is already in use." +msgstr "GID numarası kullanılıyor." + +#: ../lib/modules/posixAccount.inc:249 ../lib/modules/posixAccount.inc:349 +#: ../lib/modules/posixAccount.inc:391 ../lib/modules/posixAccount.inc:417 +#: ../lib/modules/posixAccount.inc:499 ../lib/modules/posixAccount.inc:537 +#: ../lib/modules/posixAccount.inc:1342 ../lib/modules/posixAccount.inc:1752 +msgid "Gecos" +msgstr "Gecos" + +#: ../lib/modules/windowsUser.inc:518 +msgid "General" +msgstr "Genel" + +#: ../lib/modules/generalInformation.inc:51 +msgid "General information" +msgstr "Genel bilgi" + +#: ../templates/config/mainmanage.php:396 +#: ../templates/config/confmodules.php:164 +#: ../templates/config/confmain.php:205 +#: ../templates/config/moduleSettings.php:163 +#: ../templates/config/conftypes.php:182 +#: ../templates/selfService/adminMain.php:396 +#: ../templates/profedit/profilepage.php:215 +msgid "General settings" +msgstr "Genel ayarlar" + +#: ../templates/lists/changePassword.php:294 ../help/help.inc:218 +msgid "Generate random password" +msgstr "" + +#: ../templates/3rdParty/pla/lib/functions.php:63 +#: ../templates/3rdParty/pla/lib/functions.php:595 +msgid "Generic Error" +msgstr "Genel hata" + +#: ../lib/modules/windowsGroup.inc:65 +msgid "Global" +msgstr "Genel" + +#: ../templates/pdfedit/pdfmain.php:284 +#: ../templates/profedit/profilemain.php:287 +msgid "Global templates" +msgstr "Genel şablonlar" + +#: ../templates/schema/schema.php:128 ../templates/schema/schema.php:265 +#: ../templates/schema/schema.php:296 ../templates/schema/schema.php:321 +msgid "Go" +msgstr "Git" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:215 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:139 +msgid "Go back" +msgstr "Geriye git" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1864 +msgid "Go to" +msgstr "Git" + +#: ../lib/types/ppolicyType.inc:82 ../lib/modules/ppolicy.inc:93 +#: ../lib/modules/ppolicy.inc:142 ../lib/modules/ppolicy.inc:163 +#: ../lib/modules/ppolicy.inc:215 ../lib/modules/ppolicy.inc:468 +msgid "Grace authentication limit" +msgstr "" + +#: ../lib/modules/quota.inc:118 ../lib/modules/quota.inc:396 +msgid "Grace block period" +msgstr "" + +#: ../lib/modules/quota.inc:119 +msgid "" +"Grace block period. Most filesystems use a fixed maximum value of 7 days." +msgstr "" + +#: ../lib/modules/quota.inc:141 +msgid "" +"Grace inode (files) period. Most filesystems use a fixed maximum value of 7 " +"days." +msgstr "" + +#: ../lib/modules/quota.inc:140 ../lib/modules/quota.inc:400 +msgid "Grace inode period" +msgstr "" + +#: ../templates/config/confmain.php:313 +#: ../templates/selfService/adminMain.php:589 +msgid "Group" +msgstr "Grup" + +#: ../lib/types/group.inc:63 +msgid "Group accounts (e.g. Unix and Samba)" +msgstr "Grup hesapları (ör. Unix ve Samba)" + +#: ../lib/types/gon.inc:180 ../lib/types/zarafaDynamicGroupType.inc:165 +#: ../lib/types/group.inc:210 ../lib/types/netgroup.inc:169 +#, php-format +msgid "Group count: %s" +msgstr "Grup sayısı: %s" + +#: ../lib/types/group.inc:96 ../lib/modules/posixGroup.inc:446 +#: ../lib/modules/nisnetgroup.inc:113 +msgid "Group description" +msgstr "Grup tanımlaması" + +#: ../lib/modules/posixGroup.inc:460 +msgid "Group description. If left empty group name will be used." +msgstr "Grup tanımlaması. Eğer boş bırakılırsa grup adı kullanılacaktır." + +#: ../lib/types/gon.inc:92 ../lib/types/gon.inc:93 ../lib/types/group.inc:95 +msgid "Group member DNs" +msgstr "DNs grup üyesi" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:94 +#: ../lib/types/group.inc:94 ../lib/modules/posixGroup.inc:219 +#: ../lib/modules/posixGroup.inc:289 ../lib/modules/posixGroup.inc:401 +#: ../lib/modules/posixGroup.inc:419 ../lib/modules/posixGroup.inc:463 +#: ../lib/modules/posixGroup.inc:467 ../lib/modules/posixGroup.inc:544 +#: ../lib/modules/windowsGroup.inc:347 +msgid "Group members" +msgstr "Grup üyeleri" + +#: ../lib/types/gon.inc:91 ../lib/types/zarafaDynamicGroupType.inc:91 +#: ../lib/types/group.inc:92 ../lib/types/netgroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:56 +#: ../lib/modules/zarafaDynamicGroup.inc:109 +#: ../lib/modules/zarafaDynamicGroup.inc:158 +#: ../lib/modules/zarafaDynamicGroup.inc:188 +#: ../lib/modules/zarafaDynamicGroup.inc:189 +#: ../lib/modules/zarafaDynamicGroup.inc:213 +#: ../lib/modules/zarafaDynamicGroup.inc:464 ../lib/modules/posixGroup.inc:179 +#: ../lib/modules/posixGroup.inc:404 ../lib/modules/posixGroup.inc:434 +#: ../lib/modules/posixGroup.inc:483 ../lib/modules/posixGroup.inc:546 +#: ../lib/modules/posixGroup.inc:578 ../lib/modules/posixGroup.inc:579 +#: ../lib/modules/posixGroup.inc:580 ../lib/modules/nisnetgroup.inc:76 +#: ../lib/modules/nisnetgroup.inc:105 ../lib/modules/nisnetgroup.inc:132 +#: ../lib/modules/nisnetgroup.inc:144 ../lib/modules/nisnetgroup.inc:186 +#: ../lib/modules/nisnetgroup.inc:574 ../lib/modules/windowsGroup.inc:106 +#: ../lib/modules/windowsGroup.inc:168 ../lib/modules/windowsGroup.inc:234 +#: ../lib/modules/windowsGroup.inc:257 ../lib/modules/windowsGroup.inc:274 +#: ../lib/modules/windowsGroup.inc:713 ../lib/modules/groupOfNames.inc:64 +#: ../lib/modules/groupOfNames.inc:101 ../lib/modules/groupOfNames.inc:142 +#: ../lib/modules/groupOfNames.inc:619 +msgid "Group name" +msgstr "Grup adı" + +#: ../lib/modules/zarafaDynamicGroup.inc:188 +msgid "Group name already in use." +msgstr "Grup adı kullanılıyor" + +#: ../lib/modules/zarafaDynamicGroup.inc:189 +#: ../lib/modules/zarafaDynamicGroup.inc:190 ../lib/modules/posixGroup.inc:580 +#: ../lib/modules/posixGroup.inc:581 ../lib/modules/nisnetgroup.inc:144 +#: ../lib/modules/windowsGroup.inc:257 ../lib/modules/windowsGroup.inc:258 +msgid "" +"Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Grup adı geçersiz karakterler içeriyor. Geçerli karakterler: a-z, A-Z, 0-9 " +"ve .-_ !" + +#: ../lib/modules/posixGroup.inc:579 +msgid "Group name in use. Selected next free group name." +msgstr "Grup adı kullanılıyor. Kullanılmayan bir grup adı seçildi." + +#: ../lib/modules/zarafaDynamicGroup.inc:57 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ ." +msgstr "" + +#: ../lib/modules/posixGroup.inc:484 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ . If group name is already used group name will be expanded " +"with a number. The next free number will be used." +msgstr "" + +#: ../lib/modules/freeRadius.inc:89 ../lib/modules/freeRadius.inc:93 +#: ../lib/modules/freeRadius.inc:121 ../lib/modules/freeRadius.inc:147 +#: ../lib/modules/freeRadius.inc:178 ../lib/modules/freeRadius.inc:227 +#: ../lib/modules/freeRadius.inc:281 ../lib/modules/freeRadius.inc:619 +msgid "Group names" +msgstr "Grup adları" + +#: ../lib/modules/groupOfNames.inc:44 +msgid "Group of names" +msgstr "Adların grubu" + +#: ../lib/types/gon.inc:62 +msgid "Group of names accounts" +msgstr "Hesap adları grubu." + +#: ../lib/modules/groupOfUniqueNames.inc:42 +msgid "Group of unique names" +msgstr "Adların grubu" + +#: ../lib/modules/posixGroup.inc:425 ../lib/modules/posixGroup.inc:471 +msgid "Group password" +msgstr "Grup şifresi" + +#: ../lib/modules/windowsGroup.inc:142 ../lib/modules/windowsGroup.inc:187 +#: ../lib/modules/windowsGroup.inc:239 ../lib/modules/windowsGroup.inc:315 +#: ../lib/modules/windowsGroup.inc:742 +msgid "Group scope" +msgstr "Grup kapsamı" + +#: ../lib/modules/sambaGroupMapping.inc:375 +#: ../lib/modules/windowsGroup.inc:138 ../lib/modules/windowsGroup.inc:195 +#: ../lib/modules/windowsGroup.inc:238 ../lib/modules/windowsGroup.inc:318 +#: ../lib/modules/windowsGroup.inc:743 +msgid "Group type" +msgstr "Grup tipi" + +#: ../lib/types/group.inc:54 ../lib/modules/posixGroup.inc:381 +#: ../lib/modules/zarafaGroup.inc:113 ../lib/modules/windowsUser.inc:192 +#: ../lib/modules/windowsUser.inc:195 ../lib/modules/windowsUser.inc:374 +#: ../lib/modules/windowsUser.inc:404 ../lib/modules/windowsUser.inc:581 +#: ../lib/modules/windowsUser.inc:1259 ../lib/modules/windowsUser.inc:1282 +#: ../lib/modules/generalInformation.inc:103 +msgid "Groups" +msgstr "Gruplar" + +#: ../lib/types/gon.inc:53 ../lib/modules/posixAccount.inc:254 +#: ../lib/modules/posixAccount.inc:357 ../lib/modules/posixAccount.inc:420 +#: ../lib/modules/posixAccount.inc:1495 ../lib/modules/posixAccount.inc:1644 +#: ../lib/modules/posixAccount.inc:1761 ../lib/modules/windowsUser.inc:725 +#: ../lib/modules/groupOfNamesUser.inc:47 +#: ../lib/modules/groupOfNamesUser.inc:49 +#: ../lib/modules/groupOfNamesUser.inc:53 +#: ../lib/modules/groupOfNamesUser.inc:57 +#: ../lib/modules/groupOfNamesUser.inc:64 +#: ../lib/modules/groupOfNamesUser.inc:304 +#: ../lib/modules/groupOfNamesUser.inc:340 +msgid "Groups of names" +msgstr "Adların grupları" + +#: ../lib/modules/dhcp_settings.inc:99 +msgid "H-Node (0x08)" +msgstr "H-ağı (0x08)" + +#: ../templates/config/confmain.php:345 ../lib/modules/selfRegistration.inc:81 +#: ../lib/modules/passwordSelfReset.inc:232 +#: ../lib/modules/passwordSelfReset.inc:248 ../help/help.inc:229 +msgid "HTML format" +msgstr "HTML formatı" + +#: ../templates/config/confmain.php:431 +#: ../templates/selfService/adminMain.php:428 ../help/help.inc:122 +msgid "HTTP authentication" +msgstr "HTTP nin aslına uygunluğu" + +#: ../lib/modules/zarafaServer.inc:61 ../lib/modules/zarafaServer.inc:93 +#: ../lib/modules/zarafaServer.inc:128 ../lib/modules/zarafaServer.inc:166 +#: ../lib/modules/zarafaServer.inc:188 ../lib/modules/zarafaServer.inc:373 +msgid "HTTP port" +msgstr "HTTP bağlantı noktası" + +#: ../lib/modules/quota.inc:628 ../lib/modules/systemQuotas.inc:377 +msgid "Hard block" +msgstr "" + +#: ../lib/modules/quota.inc:112 ../lib/modules/quota.inc:113 +#: ../lib/modules/quota.inc:395 ../lib/modules/quota.inc:501 +#: ../lib/modules/systemQuotas.inc:119 +msgid "Hard block limit" +msgstr "" + +#: ../lib/modules/quota.inc:630 ../lib/modules/systemQuotas.inc:379 +msgid "Hard inode" +msgstr "" + +#: ../lib/modules/quota.inc:135 +msgid "Hard inode (files) limit" +msgstr "" + +#: ../lib/modules/quota.inc:134 ../lib/modules/quota.inc:399 +#: ../lib/modules/quota.inc:503 ../lib/modules/systemQuotas.inc:123 +msgid "Hard inode limit" +msgstr "" + +#: ../lib/modules/generalInformation.inc:97 +msgid "Has subentries" +msgstr "Alt girdilere sahip" + +#: ../lib/modules/sambaSamAccount.inc:541 +msgid "Hawaii" +msgstr "Hawai" + +#: ../templates/pdfedit/pdfpage.php:452 ../templates/pdfedit/pdfpage.php:591 +#: ../templates/pdfedit/pdfpage.php:598 +msgid "Headline" +msgstr "Başlık" + +#: ../lib/modules/heimdalKerberos.inc:228 +msgid "Heimdal Kerberos password change command" +msgstr "Heimdal Kerberos parola değiştir komutu" + +#: ../templates/main_header.php:138 ../lib/modules.inc:664 +msgid "Help" +msgstr "Yardım" + +#: ../lib/tools/schemaBrowser.inc:53 +msgid "Here you can browse LDAP object classes and attributes." +msgstr "Burada LDAP nesne sınıfları ve özniteliklere göz atabilirsiniz." + +#: ../lib/modules/sambaSamAccount.inc:381 +msgid "Here you can change the settings for the terminal server access." +msgstr "Buradan terminal sunucu erişimi için ayarları değiştirebilirsiniz." + +#: ../lib/selfService.inc:367 +msgid "Here you can change your personal settings." +msgstr "Buradan kişisel ayarlarınızı değiştirebilirsiniz." + +#: ../templates/masscreate.php:129 +msgid "Here you can create multiple accounts by providing a CSV file." +msgstr "Burada sağlanan bir CSV dosyasıyla çoklu hesaplar oluşturabilirsiniz." + +#: ../lib/modules/dhcp_settings.inc:191 +msgid "Here you can enter a description for this DHCP entry." +msgstr "Buraya bu DHCP girdisi için bir tanımlama girebilirsiniz." + +#: ../lib/modules/nisnetgroup.inc:81 ../lib/modules/groupOfNames.inc:69 +msgid "Here you can enter a description for this group." +msgstr "Burada bu grup için tanımlama girebilirsiniz" + +#: ../lib/modules/sudoRole.inc:60 +msgid "Here you can enter a description for this role." +msgstr "Buraya bu rol için tanımlama girebilirsiniz." + +#: ../lib/modules/zarafaContact.inc:85 ../lib/modules/posixGroup.inc:504 +#: ../lib/modules/zarafaUser.inc:134 ../lib/modules/sambaGroupMapping.inc:164 +#: ../lib/modules/nisnetgroup.inc:98 ../lib/modules/groupOfNames.inc:93 +#: ../lib/modules/nisMailAlias.inc:83 +msgid "" +"Here you can enter a filter value. Only entries which contain the filter " +"text will be shown." +msgstr "" +"Buraya bir filtre değeri girebilirsiniz. Filtre metni kapsamında yalnızca " +"girdiler gösterilecektir." + +#: ../lib/modules/posixAccount.inc:463 ../lib/modules/groupOfNamesUser.inc:58 +msgid "" +"Here you can enter a list of additional group memberships. The group names " +"are separated by commas." +msgstr "" +"Buraya ek grup üyeliklerinin listesini girebilirsiniz. Grup adları virgül " +"ile ayrıldı." + +#: ../lib/modules/device.inc:59 +msgid "Here you can enter a serial number for this device." +msgstr "Buraya bu cihaz için bir seri numarası girebilirsiniz." + +#: ../lib/modules/windowsUser.inc:160 ../lib/modules/windowsUser.inc:164 +msgid "Here you can enter additional web sites for the user." +msgstr "Buraya kullanıcı için ek web sitesi adresleri girebilirsiniz" + +#: ../help/help.inc:195 +msgid "" +"Here you can enter an alternative mail address for the password. To use the " +"user's primary email address please leave the field blank." +msgstr "" +"Buraya parola için alternatif e-posta adresi girebilirsiniz. Kullanıcının " +"birinci mail adresinin kullanılması için bu alanı boş brakınız." + +#: ../lib/modules/customFields.inc:71 +msgid "" +"Here you can enter one or more object classes (separated by comma). This " +"will allow you to add/remove the group's attributes including their object " +"classes." +msgstr "" +"Buraya bir ya da birden fazla nesne sınıfları girebilirsiniz ( virgülle " +"ayrılmış) . Bu size grup özniteliklerini içeren nesne sınıflarını ekleme/" +"kaldırma izni sağlayacaktır." + +#: ../lib/modules/inetOrgPerson.inc:869 ../lib/modules/inetOrgPerson.inc:873 +msgid "Here you can enter the user's department." +msgstr "Buraya kullanıcının bölümünü girebililirsiniz." + +#: ../lib/modules/zarafaUser.inc:149 +msgid "Here you can explicitly enable and disable Zarafa features." +msgstr "" +"Burada doğrudan Zarafa özelliğini etkinleştirebilir ya da devredışı " +"bırakabilirsiniz." + +#: ../help/help.inc:193 +msgid "" +"Here you can export PDF structures to other server profiles (overwrite " +"existing). You may also export a structure to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"structure with this name." +msgstr "" + +#: ../help/help.inc:175 +msgid "" +"Here you can export account profiles to other server profiles (overwrite " +"existing). You may also export a profile to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"profile with this name." +msgstr "" + +#: ../help/help.inc:191 +msgid "" +"Here you can import PDF structures from other server profiles (overwrite " +"existing)." +msgstr "" +"Burada PDF yapılarını diğer sunucu profillerinden aktarabilirsiniz (üzerine " +"yazarak)" + +#: ../help/help.inc:173 +msgid "" +"Here you can import account profiles from other server profiles (overwrite " +"existing)." +msgstr "" + +#: ../help/help.inc:153 +msgid "" +"Here you can input simple filter expressions (e.g. 'value' or 'v*'). The " +"filter is case-sensitive." +msgstr "" + +#: ../help/help.inc:179 +msgid "" +"Here you can load an account profile to set default settings for your " +"account. The \"default\" profile is automatically loaded for new accounts." +msgstr "" + +#: ../lib/tools/profileEditor.inc:53 +msgid "Here you can manage your account profiles." +msgstr "Burada hesap profillerinizi yönetebilirsiniz." + +#: ../help/help.inc:181 +msgid "" +"Here you can select a PDF structure and export the account to a PDF file." +msgstr "" + +#: ../help/help.inc:147 +msgid "" +"Here you can select where LAM should save its log messages. System logging " +"will go to Syslog on Unix systems and event log on Windows. You can also " +"select an extra file." +msgstr "" + +#: ../help/help.inc:108 +msgid "" +"Here you can select which plugins you want to use for account management." +msgstr "" +"Buradan hesap yönetimi için kullanmak istediğiniz eklentiyi seçebilirsiniz." + +#: ../help/help.inc:121 +msgid "" +"Here you can set a limit for LDAP searches. This will restrict the number of " +"results for LDAP searches. Please use this if LAM's LDAP queries produce too " +"much load." +msgstr "" + +#: ../help/help.inc:217 +msgid "" +"Here you can specify additional CSS links to change the layout of the self " +"service pages. This is useful to adapt them to your corporate design. Please " +"enter one link per line." +msgstr "" + +#: ../help/help.inc:151 +msgid "" +"Here you can specify minimum requirements for passwords. The character " +"classes are: lowercase, uppercase, numeric and symbols." +msgstr "" + +#: ../lib/modules/nisnetgroup.inc:85 +msgid "" +"Here you can specify subgroups which are included in this NIS netgroup. All " +"members of the subgroups will be treated as members of this group." +msgstr "" +"Burada NIS netgrup içerisinde yer alan alt grupları özelleştirebilirsiniz. " +"Alt grupların tüm üyeleri bu grubun üyeleri olarak işlem görecektir." + +#: ../help/help.inc:125 +msgid "" +"Here you can specify the DN and password of the bind user that will be used " +"for the LDAP search. This is required if your LDAP server does not allow " +"anonymous access." +msgstr "" + +#: ../lib/modules/hostObject.inc:73 +msgid "" +"Here you can specify the list of host names where this account has login " +"privileges. The wildcard \"*\" represents all hosts. You may also use \"!\" " +"in front of a host name to deny access to a host." +msgstr "" + +#: ../lib/modules/sambaDomain.inc:95 +msgid "" +"Here you can specify the minimum number of characters for a user password." +msgstr "" +"Burada kullanıcı parolası için minimum karakter sayısını " +"özelleştirebilirsiniz." + +#: ../templates/lists/changePassword.php:322 +msgid "Here you can specify the new password yourself." +msgstr "Burada yeni parolanızı özelleştirebilirsiniz." + +#: ../lib/modules/sambaSamAccount.inc:372 +msgid "Here you can specify the shadowing mode." +msgstr "Burada gölgelendirme biçimini özelleştirebilirsiniz." + +#: ../lib/tools/tests.inc:53 +msgid "Here you can test if certain LAM features work on your installation." +msgstr "" + +#: ../lib/modules/customFields.inc:147 +msgid "Here you can upload a new file." +msgstr "Buraya yeni bir dosya yükleyebilirsiniz." + +#: ../templates/config/conftypes.php:283 +#: ../lib/types/zarafaAddressListType.inc:95 +#: ../lib/types/zarafaDynamicGroupType.inc:96 +#: ../lib/modules/zarafaDynamicGroup.inc:72 +#: ../lib/modules/zarafaDynamicGroup.inc:129 +#: ../lib/modules/zarafaDynamicGroup.inc:162 +#: ../lib/modules/zarafaDynamicGroup.inc:266 +#: ../lib/modules/zarafaDynamicGroup.inc:478 +#: ../lib/modules/zarafaContact.inc:64 ../lib/modules/zarafaContact.inc:153 +#: ../lib/modules/zarafaContact.inc:161 ../lib/modules/zarafaContact.inc:236 +#: ../lib/modules/zarafaContact.inc:561 ../lib/modules/zarafaGroup.inc:79 +#: ../lib/modules/zarafaGroup.inc:140 ../lib/modules/zarafaGroup.inc:190 +#: ../lib/modules/zarafaGroup.inc:290 ../lib/modules/zarafaGroup.inc:671 +#: ../lib/modules/zarafaAddressList.inc:60 +#: ../lib/modules/zarafaAddressList.inc:105 +#: ../lib/modules/zarafaAddressList.inc:136 +#: ../lib/modules/zarafaAddressList.inc:207 +#: ../lib/modules/zarafaAddressList.inc:346 ../lib/modules/zarafaUser.inc:73 +#: ../lib/modules/zarafaUser.inc:331 ../lib/modules/zarafaUser.inc:380 +#: ../lib/modules/zarafaUser.inc:408 ../lib/modules/zarafaUser.inc:609 +#: ../lib/modules/zarafaUser.inc:1340 ../help/help.inc:158 +msgid "Hidden" +msgstr "Gizle" + +#: ../help/help.inc:159 +msgid "" +"Hidden account types will not show up in LAM. This is useful if you want to " +"display e.g. only groups but still need to manage their members." +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:234 +#: ../lib/modules/asteriskAccount.inc:245 ../lib/modules/qmailUser.inc:95 +#: ../lib/modules/qmailUser.inc:188 ../lib/modules/zarafaGroup.inc:102 +#: ../lib/modules/zarafaGroup.inc:128 ../lib/modules/sambaSamAccount.inc:386 +#: ../lib/modules/sambaSamAccount.inc:576 ../lib/modules/posixAccount.inc:245 +#: ../lib/modules/posixAccount.inc:434 ../lib/modules/zarafaUser.inc:125 +#: ../lib/modules/zarafaUser.inc:182 ../lib/modules/inetOrgPerson.inc:304 +#: ../lib/modules/inetOrgPerson.inc:876 ../lib/modules/freeRadius.inc:105 +#: ../lib/modules/freeRadius.inc:111 ../lib/modules/zarafaServer.inc:81 +#: ../lib/modules/zarafaServer.inc:152 ../lib/modules/qmailGroup.inc:61 +#: ../lib/modules/qmailGroup.inc:112 ../lib/modules/windowsGroup.inc:102 +#: ../lib/modules/windowsGroup.inc:153 ../lib/modules/groupOfNames.inc:60 +#: ../lib/modules/groupOfNames.inc:158 +msgid "Hidden options" +msgstr "Gizli seçenekler" + +#: ../templates/config/confmain.php:358 +msgid "Hidden tools" +msgstr "Gizli araçlar" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1115 +msgid "Hide" +msgstr "Gizle" + +#: ../lib/modules/customScripts.inc:81 ../lib/modules/customScripts.inc:91 +#: ../lib/modules/customScripts.inc:100 +msgid "Hide command in messages" +msgstr "Mesajlardaki komutları gizle" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1116 +msgid "Hide internal attributes" +msgstr "Başlangıç özniteliklerini gizle" + +#: ../templates/3rdParty/pla/lib/page.php:407 +msgid "Hide/Unhide the tree" +msgstr "Ağacı gizle/göster" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:58 +msgid "Hint" +msgstr "İpucu" + +#: ../templates/masscreate.php:243 +msgid "" +"Hint: Format all cells as text in your spreadsheet program and turn off auto " +"correction." +msgstr "" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1005 +msgid "Hint: To delete an attribute, empty the text field and click save." +msgstr "" +"İpucu: Özniteliği silmek için, metin alanına boş tıkla ve kaydete tıkla" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1342 +msgid "" +"Hint: You must choose exactly one structural object class (shown in bold " +"above)" +msgstr "" + +#: ../lib/modules/posixAccount.inc:524 ../lib/modules/windowsUser.inc:193 +#: ../lib/modules/groupOfNamesUser.inc:54 +msgid "Hold the CTRL-key to (de)select multiple groups." +msgstr "" + +#: ../lib/types/user.inc:98 ../lib/modules/sambaSamAccount.inc:223 +#: ../lib/modules/sambaSamAccount.inc:344 +#: ../lib/modules/sambaSamAccount.inc:1476 +#: ../lib/modules/sambaSamAccount.inc:1891 ../lib/modules/posixAccount.inc:100 +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:103 +#: ../lib/modules/posixAccount.inc:303 ../lib/modules/posixAccount.inc:409 +#: ../lib/modules/posixAccount.inc:466 ../lib/modules/posixAccount.inc:470 +#: ../lib/modules/posixAccount.inc:474 ../lib/modules/posixAccount.inc:507 +#: ../lib/modules/posixAccount.inc:1117 ../lib/modules/posixAccount.inc:1361 +#: ../lib/modules/posixAccount.inc:1551 ../lib/modules/posixAccount.inc:1651 +#: ../lib/modules/posixAccount.inc:1750 +msgid "Home directory" +msgstr "Ana dizin" + +#: ../lib/modules/posixAccount.inc:103 +#, php-format +msgid "" +"Home directory changed. To keep home directory you have to run the following " +"command as root: 'mv %s %s'" +msgstr "" +"Ana dizin değiştirildi. Ana dizine devam etmek için aşağıdaki komutu kök " +"olarak çalıştırmanız gerekiyor: 'mv %s %s'" + +#: ../lib/modules/sambaSamAccount.inc:207 +#: ../lib/modules/sambaSamAccount.inc:224 +#: ../lib/modules/sambaSamAccount.inc:292 +#: ../lib/modules/sambaSamAccount.inc:473 +#: ../lib/modules/sambaSamAccount.inc:581 +#: ../lib/modules/sambaSamAccount.inc:1178 +#: ../lib/modules/sambaSamAccount.inc:1484 +#: ../lib/modules/sambaSamAccount.inc:1725 +#: ../lib/modules/sambaSamAccount.inc:1876 +#: ../lib/modules/sambaSamAccount.inc:1892 +msgid "Home drive" +msgstr "Ana sürücü" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:95 +#: ../lib/modules/sambaSamAccount.inc:210 +#: ../lib/modules/sambaSamAccount.inc:295 +#: ../lib/modules/sambaSamAccount.inc:481 +#: ../lib/modules/sambaSamAccount.inc:583 +#: ../lib/modules/sambaSamAccount.inc:1186 +#: ../lib/modules/sambaSamAccount.inc:1729 +#: ../lib/modules/sambaSamAccount.inc:1875 +msgid "Home path" +msgstr "Ana yol" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:96 +msgid "Home path is invalid." +msgstr "Ana yol geçersiz." + +#: ../lib/modules/zarafaUser.inc:122 +msgid "Home server for the user." +msgstr "Bu kullanıcı için ana sunucu." + +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:144 +#: ../lib/modules/inetOrgPerson.inc:330 ../lib/modules/inetOrgPerson.inc:494 +#: ../lib/modules/inetOrgPerson.inc:644 ../lib/modules/inetOrgPerson.inc:820 +#: ../lib/modules/inetOrgPerson.inc:824 ../lib/modules/inetOrgPerson.inc:1740 +#: ../lib/modules/inetOrgPerson.inc:2369 ../lib/modules/inetOrgPerson.inc:2980 +msgid "Home telephone number" +msgstr "Ev telefonu numarası" + +#: ../lib/modules/posixAccount.inc:100 ../lib/modules/posixAccount.inc:102 +msgid "Homedirectory contains invalid characters." +msgstr "Ana dizin geçersiz karakterler içeriyor." + +#: ../lib/types/sudo.inc:79 ../lib/modules/asteriskAccount.inc:98 +#: ../lib/modules/asteriskAccount.inc:316 +#: ../lib/modules/asteriskAccount.inc:330 +#: ../lib/modules/asteriskAccount.inc:380 +#: ../lib/modules/asteriskAccount.inc:663 +#: ../lib/modules/asteriskAccount.inc:1190 ../lib/modules/nisnetgroup.inc:210 +#: ../lib/modules/nisnetgroup.inc:580 ../lib/modules/hostObject.inc:143 +msgid "Host" +msgstr "Ana bilgisayar" + +#: ../lib/types/host.inc:62 +msgid "Host accounts (e.g. Samba)" +msgstr "Ana bilgisayar hesapları" + +#: ../lib/types/host.inc:193 +#, php-format +msgid "Host count: %s" +msgstr "Ana bilgisayar: %s" + +#: ../lib/types/host.inc:94 +msgid "Host description" +msgstr "Ana bilgisayar tanımlaması" + +#: ../lib/modules/account.inc:89 ../lib/modules/posixAccount.inc:538 +#: ../lib/modules/posixAccount.inc:546 +msgid "Host description. If left empty host name will be used." +msgstr "" +"Ana bilgisayar tanımlaması. Boş bırakılırsa ana bilgisayar adı " +"kullanılacaktır." + +#: ../lib/modules/hostObject.inc:84 ../lib/modules/hostObject.inc:91 +#: ../lib/modules/hostObject.inc:255 +msgid "Host list" +msgstr "Ana bilgisayar listesi" + +#: ../lib/types/host.inc:91 ../lib/types/host.inc:92 +#: ../lib/modules/account.inc:84 ../lib/modules/account.inc:209 +#: ../lib/modules/windowsHost.inc:67 ../lib/modules/windowsHost.inc:87 +#: ../lib/modules/windowsHost.inc:112 ../lib/modules/windowsHost.inc:124 +#: ../lib/modules/windowsHost.inc:135 ../lib/modules/windowsHost.inc:287 +#: ../lib/modules/posixAccount.inc:115 ../lib/modules/posixAccount.inc:116 +#: ../lib/modules/posixAccount.inc:118 ../lib/modules/posixAccount.inc:368 +#: ../lib/modules/posixAccount.inc:399 ../lib/modules/posixAccount.inc:533 +#: ../lib/modules/posixAccount.inc:1322 ../lib/modules/posixAccount.inc:1740 +#: ../lib/modules/nisnetgroup.inc:146 ../lib/modules/nisnetgroup.inc:474 +msgid "Host name" +msgstr "Ana bilgisayar adı" + +#: ../lib/modules/posixAccount.inc:122 +msgid "Host name already exists!" +msgstr "Ana bilgisayar adı var !" + +#: ../lib/modules/windowsHost.inc:124 ../lib/modules/windowsHost.inc:125 +#: ../lib/modules/posixAccount.inc:116 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/nisnetgroup.inc:146 +msgid "" +"Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Ana bilgisayar adı geçersiz karakterler içeriyor. Geçerli karakterler: a-z, " +"A-Z, 0-9 ve .-_ !" + +#: ../lib/modules/posixAccount.inc:118 +msgid "Host name in use. Selected next free host name." +msgstr "" +"Ana bilgisayar adı kullanımda. Kullanılabilir diğer ana bilgisayar adı " +"seçildi." + +#: ../lib/modules/sambaSamAccount.inc:1078 +msgid "Host name must end with $!" +msgstr "Ana bilgisayar adının $ ile bitmesi gerekiyor!" + +#: ../lib/modules/account.inc:85 ../lib/modules/posixAccount.inc:534 +msgid "" +"Host name of the host which should be created. Valid characters are: a-z,A-" +"Z,0-9, .-_$. Host names are always ending with $. If last character is not $ " +"it will be added. If host name is already used host name will be expanded " +"with a number. The next free number will be used." +msgstr "" + +#: ../lib/types/host.inc:53 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:96 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:220 ../lib/modules/sudoRole.inc:67 +#: ../lib/modules/sudoRole.inc:92 ../lib/modules/sudoRole.inc:140 +#: ../lib/modules/sudoRole.inc:174 ../lib/modules/sudoRole.inc:183 +#: ../lib/modules/sudoRole.inc:291 ../lib/modules/sudoRole.inc:685 +#: ../lib/modules/fixed_ip.inc:70 ../lib/modules/hostObject.inc:62 +#: ../lib/modules/hostObject.inc:72 +msgid "Hosts" +msgstr "Ana bilgisayarlar" + +#: ../lib/modules/qmailUser.inc:345 +msgid "I am out of office." +msgstr "Dışarıdayım" + +#: ../lib/modules/posixGroup.inc:573 ../lib/modules/posixAccount.inc:106 +#: ../lib/modules/posixAccount.inc:1087 +msgid "ID is already in use" +msgstr "ID zaten kullanılıyor" + +#: ../lib/modules/posixGroup.inc:571 ../lib/modules/posixGroup.inc:572 +#: ../lib/modules/posixGroup.inc:573 ../lib/modules/posixGroup.inc:695 +#: ../lib/modules/posixAccount.inc:104 ../lib/modules/posixAccount.inc:105 +#: ../lib/modules/posixAccount.inc:106 ../lib/modules/posixAccount.inc:1078 +#: ../lib/modules/posixAccount.inc:1083 ../lib/modules/posixAccount.inc:1087 +msgid "ID-Number" +msgstr "Kimlik numarası" + +#: ../lib/modules/zarafaUser.inc:340 ../lib/modules/zarafaUser.inc:674 +#: ../lib/modules/zarafaUser.inc:1397 +msgid "IMAP" +msgstr "IMAP" + +#: ../lib/modules/imapAccess.inc:79 ../lib/modules/imapAccess.inc:115 +msgid "IMAP admin user" +msgstr "IMAP yönetici kullanıcı" + +#: ../lib/modules/imapAccess.inc:82 ../lib/modules/imapAccess.inc:118 +msgid "IMAP password input" +msgstr "" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ipHost.inc:48 +#: ../lib/modules/ipHost.inc:58 ../lib/modules/ipHost.inc:127 +#: ../lib/modules/asteriskAccount.inc:218 +#: ../lib/modules/asteriskAccount.inc:299 +#: ../lib/modules/asteriskAccount.inc:357 +#: ../lib/modules/asteriskAccount.inc:584 +#: ../lib/modules/asteriskAccount.inc:936 +#: ../lib/modules/asteriskAccount.inc:1217 ../lib/modules/freeRadius.inc:77 +#: ../lib/modules/freeRadius.inc:115 ../lib/modules/freeRadius.inc:186 +#: ../lib/modules/freeRadius.inc:218 ../lib/modules/freeRadius.inc:305 +#: ../lib/modules/freeRadius.inc:616 ../lib/modules/fixed_ip.inc:96 +#: ../lib/modules/fixed_ip.inc:362 ../lib/modules/fixed_ip.inc:560 +msgid "IP address" +msgstr "IP adresi" + +#: ../lib/modules/ddns.inc:91 ../lib/modules/ddns.inc:105 +#: ../lib/modules/ddns.inc:114 ../lib/modules/ddns.inc:374 +#: ../lib/modules/ddns.inc:417 +msgid "IP address of the DNS server" +msgstr "DNS sunucusunun IP adresi" + +#: ../lib/modules/asteriskAccount.inc:219 +msgid "IP address of the peer. Valid only for realtime peers." +msgstr "" +"Sadece gerçek zamanlı eşdüzeylilik için geçerli . Eşdüzeylilik IP adresi." + +#: ../lib/modules/asteriskAccount.inc:227 +msgid "IP address or domain name of the registration server." +msgstr "Kayıt sunucusunun IP adresi ya da alan adı." + +#: ../lib/modules/ipHost.inc:62 ../lib/modules/ipHost.inc:77 +#: ../lib/modules/ipHost.inc:97 ../lib/modules/ipHost.inc:308 +msgid "IP addresses" +msgstr "IP adresleri" + +#: ../lib/modules/fixed_ip.inc:105 +msgid "IP list" +msgstr "IP listesi" + +#: ../lib/modules/passwordSelfReset.inc:133 +#: ../lib/modules/passwordSelfReset.inc:197 +msgid "Identification method" +msgstr "Tanıtma yöntemi" + +#: ../templates/masscreate.php:292 ../templates/masscreate.php:367 +msgid "Identifier" +msgstr "Tanıtıcı" + +#: ../lib/modules/sambaSamAccount.inc:231 +#: ../lib/modules/sambaSamAccount.inc:1502 +#: ../lib/modules/sambaSamAccount.inc:1903 +msgid "Idle time limit" +msgstr "Idle süre sınırlaması" + +#: ../lib/modules/freeRadius.inc:101 ../lib/modules/freeRadius.inc:125 +#: ../lib/modules/freeRadius.inc:150 ../lib/modules/freeRadius.inc:210 +#: ../lib/modules/freeRadius.inc:233 ../lib/modules/freeRadius.inc:321 +#: ../lib/modules/freeRadius.inc:620 +msgid "Idle timeout" +msgstr "Idle zamanaşımı" + +#: ../lib/modules/qmailUser.inc:249 +msgid "" +"If account status is set to deleted, the earliest date when the mail message " +"store including all remaining content will be deleted from the filesystem." +msgstr "" +"Hesap durumu silinmeye ayarlanırsa , Dosya sisteminden silineceği en erken " +"tarih posta iletilerinin kalan tüm içeriği kapsadığı zamandır." + +#: ../lib/modules/ppolicyUser.inc:53 +msgid "" +"If activated then the user is forced to change his password at the next " +"login." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:258 +msgid "If checked Unix password will also be used as Samba password." +msgstr "Kontrol edilen UNIX parolası Samba parolası olarak kullanılacaktır." + +#: ../lib/modules/posixAccount.inc:516 +msgid "" +"If checked account will be deactivated by putting a \"!\" before the " +"encrypted password." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:264 +msgid "If checked no password will be used." +msgstr "" + +#: ../lib/modules/windowsUser.inc:178 +msgid "If checked password does not expire." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:270 +msgid "If checked password does not expire. (Setting X-Flag)" +msgstr "" + +#: ../lib/modules/windowsUser.inc:175 +msgid "" +"If checked then the account is locked. You may only unlock accounts but not " +"lock them." +msgstr "" + +#: ../lib/modules/windowsUser.inc:172 +msgid "If checked then the account will be deactivated." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:276 +msgid "If checked then the account will be deactivated. (Setting D-Flag)" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:279 +msgid "" +"If checked then the account will be locked (setting L-Flag). You usually " +"want to use this setting to unlock user accounts which were locked because " +"of failed login attempts." +msgstr "" + +#: ../help/help.inc:161 +msgid "" +"If checked then the user will not be able to create new entries of this " +"account type." +msgstr "" + +#: ../help/help.inc:163 +msgid "" +"If checked then the user will not be able to delete entries of this account " +"type." +msgstr "" + +#: ../lib/modules/posixGroup.inc:456 +msgid "" +"If empty GID number will be generated automaticly depending on your " +"configuration settings." +msgstr "" + +#: ../lib/modules/qmailUser.inc:229 +msgid "If empty GID number will be generated automaticly." +msgstr "" + +#: ../lib/modules/qmailUser.inc:225 ../lib/modules/posixAccount.inc:455 +msgid "If empty UID number will be generated automaticly." +msgstr "" + +#: ../lib/modules/ppolicy.inc:118 +msgid "" +"If enabled the user will not be allowed to login after there have been a " +"specified number of consecutive failed login attempts." +msgstr "" + +#: ../help/help.inc:123 +msgid "" +"If enabled then LAM will use user and password that is provided by the web " +"server via HTTP authentication." +msgstr "" + +#: ../lib/modules/ppolicy.inc:122 +msgid "" +"If enabled users must change their passwords when they first login after a " +"password is set or reset by the administrator." +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:207 +msgid "" +"If registration context is specified, Asterisk will dynamically create and " +"destroy a NoOp priority 1 extension for a given peer who registers or " +"unregisters with Asterisk." +msgstr "" + +#: ../lib/modules/sambaDomain.inc:103 +msgid "If set then users need to login to change their password." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:261 +msgid "If set to \"true\" Unix password will also be used as Samba password." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:282 +msgid "If set to \"true\" account will be deactivated. (Setting D-Flag)" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:267 +msgid "If set to \"true\" no password will be used." +msgstr "\"doğru\" olarak ayarlarsanız parola kullanılmayacak." + +#: ../lib/modules/sambaSamAccount.inc:273 +msgid "If set to \"true\" password does not expire. (Setting X-Flag)" +msgstr "" + +#: ../lib/modules/qmailGroup.inc:190 +msgid "" +"If set to true then all incomming mails needs to come from a member of the " +"list." +msgstr "" + +#: ../lib/modules/customFields.inc:111 +msgid "" +"If the LDAP attribute has no value then the checkbox is set to this value." +msgstr "" + +#: ../lib/modules/zarafaUser.inc:90 +msgid "" +"If the mailbox size reaches the soft quota limit, the user will not be able " +"to send email until the size of the mailbox is reduced." +msgstr "" + +#: ../lib/modules/passwordSelfReset.inc:138 +msgid "" +"If the user has a Samba 3 extension then the Samba password will also be " +"set. Otherwise, no action is taken." +msgstr "" +"Kullanıcı Samba 3 uzantısına sahipse ,birde Samba parolası ayarlanacaktır. " +"Aksi takdirde işlem yapılamaz." + +#: ../lib/modules/windowsUser.inc:124 ../lib/modules/windowsUser.inc:128 +msgid "If the user has multiple telephone numbers then please enter it here." +msgstr "Kullanıcı çoklu telefon numaralarına sahipse . lütfen buraya giriniz." + +#: ../lib/modules/qmailGroup.inc:222 +msgid "" +"If this is set to true then an incomming mail needs to be approved by the " +"sender." +msgstr "" + +#: ../lib/modules/qmailGroup.inc:137 ../lib/modules/qmailGroup.inc:141 +msgid "" +"If you enter one or more email addresses then mail delivery errors are " +"forwarded to these addresses instead of the sender of the original mail." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:321 +msgid "" +"If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" + +#: ../lib/modules/zarafaServer.inc:78 +msgid "" +"If you run Zarafa behind a reverse proxy then you can specify the server URL " +"here (e.g. \"https://zproxy.example.com:237/z1\")." +msgstr "" + +#: ../lib/modules/passwordSelfReset.inc:130 +msgid "" +"If you select this option then the user is only authenticated by his email " +"address. LAM Pro will not ask for the answer to the security question. " +"Please handle with care." +msgstr "" + +#: ../lib/modules/heimdalKerberos.inc:124 +msgid "If you set this option then the user cannot request TGT-based tickets." +msgstr "Bu seçeneği ayarlarsanız kullanıcı TGT bazlı biletleri isteyemecek." + +#: ../lib/modules/mitKerberos.inc:168 ../lib/modules/heimdalKerberos.inc:142 +msgid "If you set this option then the user cannot request any tickets." +msgstr "Bu seçeneği ayarlarsanız kullanıcı biletleri isteyemeyecek." + +#: ../lib/modules/mitKerberos.inc:156 ../lib/modules/heimdalKerberos.inc:127 +msgid "" +"If you set this option then the user cannot request forwardable tickets." +msgstr "" +"Bu seçeneği ayarlarsanız kullanıcı iletilebilir biletleri isteyemeyecek." + +#: ../lib/modules/mitKerberos.inc:153 ../lib/modules/heimdalKerberos.inc:136 +msgid "If you set this option then the user cannot request post-dated tickets." +msgstr "" +"Bu seçeneği ayarlarsanız kullanıcı ileri tarihli biletleri talep edemez." + +#: ../lib/modules/mitKerberos.inc:162 ../lib/modules/heimdalKerberos.inc:130 +msgid "If you set this option then the user cannot request proxiable tickets." +msgstr "" +"Bu seçeneği ayarlarsanız kullanıcı yetkilendirilebilir biletleri " +"isteyemeyecek." + +#: ../lib/modules/mitKerberos.inc:159 ../lib/modules/heimdalKerberos.inc:133 +msgid "If you set this option then the user cannot request renewable tickets." +msgstr "" +"Bu seçeneği ayarlarsanız kullanıcı yenilenebilir biletleri isteyemeyecek." + +#: ../lib/modules/mitKerberos.inc:180 ../lib/modules/heimdalKerberos.inc:139 +msgid "If you set this option then the user cannot request service tickets." +msgstr "Bu seçeneği ayarlarsanız kullanıcı servis biletlerini isteyemeyecek." + +#: ../lib/modules/mitKerberos.inc:177 ../lib/modules/sambaSamAccount.inc:285 +#: ../lib/modules/windowsUser.inc:190 ../lib/modules/heimdalKerberos.inc:121 +#: ../help/help.inc:187 +msgid "" +"If you set this option then the user has to change his password at the next " +"login." +msgstr "" +"Bu seçeneği ayarlarsanız kullanıcının sonraki sisteme girişinde parolasını " +"değiştirmesi gerekir." + +#: ../lib/modules/mitKerberos.inc:174 +msgid "" +"If you set this option then the user must preauthenticate himself using a " +"hardware device." +msgstr "" + +#: ../lib/modules/mitKerberos.inc:171 ../lib/modules/heimdalKerberos.inc:145 +msgid "If you set this option then the user must preauthenticate himself." +msgstr "" + +#: ../lib/modules/mitKerberos.inc:183 ../lib/modules/heimdalKerberos.inc:148 +msgid "" +"If you set this option then this account is marked as password change " +"service." +msgstr "" + +#: ../lib/modules/selfRegistration.inc:128 +msgid "" +"If you use the object class \"inetOrgPerson\" and do not provide the \"cn\" " +"attribute then LAM will set it to the user name value." +msgstr "" + +#: ../help/help.inc:102 +msgid "" +"If you want to change the current preferences password, please enter it here." +msgstr "" + +#: ../help/help.inc:137 +msgid "" +"If you want to change your master configuration password, please enter it " +"here." +msgstr "" + +#: ../lib/modules/sambaGroupMapping.inc:144 +msgid "If you want to use a well known RID you can select a well known group." +msgstr "" + +#: ../help/help.inc:112 +msgid "" +"If your server runs on another port then add a comma and the port number " +"after the server." +msgstr "" + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:49 +msgid "Image not available" +msgstr "Görüntü kullanılabilir değil." + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:292 +#: ../templates/3rdParty/pla/htdocs/import.php:45 +#: ../templates/3rdParty/pla/htdocs/import_form.php:19 +msgid "Import" +msgstr "Içe aktar" + +#: ../templates/pdfedit/pdfmain.php:200 ../templates/pdfedit/pdfmain.php:201 +#: ../help/help.inc:190 +msgid "Import PDF structures" +msgstr "PDF yapılarını içe aktar" + +#: ../templates/config/mainmanage.php:298 +msgid "Import from server" +msgstr "Sunucudan içe aktar" + +#: ../templates/profedit/profilemain.php:201 +#: ../templates/profedit/profilemain.php:202 ../help/help.inc:172 +msgid "Import profiles" +msgstr "İçe aktarım profilleri" + +#: ../templates/pdfedit/pdfmain.php:109 +#: ../templates/profedit/profilemain.php:124 +msgid "Import successful" +msgstr "İçe aktarım başarılı" + +#: ../templates/config/mainmanage.php:155 +msgid "Imported certificate from server." +msgstr "Sunucudan içe aktarılan sertifika" + +#: ../templates/config/mainmanage.php:300 +msgid "Imports the certificate directly from your LDAP server." +msgstr "" + +#: ../lib/modules/fixed_ip.inc:101 +msgid "Inactive hosts will not be able to get an address from the DHCP server." +msgstr "" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:87 +msgid "Include system attributes" +msgstr "Sistem özniteliklerini içer" + +#: ../lib/tools/serverInfo.inc:53 +msgid "Information about the LDAP server." +msgstr "LDAP sunucu hakkında bilgi." + +#: ../lib/modules/sambaSamAccount.inc:226 +#: ../lib/modules/sambaSamAccount.inc:350 +#: ../lib/modules/sambaSamAccount.inc:1488 +#: ../lib/modules/sambaSamAccount.inc:1898 +msgid "Inherit client startup configuration" +msgstr "" + +#: ../templates/schema/schema.php:396 ../templates/schema/schema.php:417 +msgid "Inherited from" +msgstr "Devralındığı yer" + +#: ../templates/schema/schema.php:157 ../templates/schema/schema.php:353 +msgid "Inherits from" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:227 +#: ../lib/modules/sambaSamAccount.inc:353 +#: ../lib/modules/sambaSamAccount.inc:1490 +#: ../lib/modules/sambaSamAccount.inc:1899 +msgid "Initial program" +msgstr "Başlangıç programı" + +#: ../lib/modules/windowsUser.inc:111 ../lib/modules/windowsUser.inc:246 +#: ../lib/modules/windowsUser.inc:384 ../lib/modules/windowsUser.inc:523 +#: ../lib/modules/windowsUser.inc:1219 ../lib/modules/inetOrgPerson.inc:146 +#: ../lib/modules/inetOrgPerson.inc:155 ../lib/modules/inetOrgPerson.inc:356 +#: ../lib/modules/inetOrgPerson.inc:390 ../lib/modules/inetOrgPerson.inc:686 +#: ../lib/modules/inetOrgPerson.inc:904 ../lib/modules/inetOrgPerson.inc:1424 +#: ../lib/modules/inetOrgPerson.inc:2385 ../lib/modules/inetOrgPerson.inc:3172 +msgid "Initials" +msgstr "İlk harfler" + +#: ../templates/serverInfo.php:282 ../templates/serverInfo.php:368 +msgid "Initiated" +msgstr "" + +#: ../lib/modules/quota.inc:57 ../lib/modules/systemQuotas.inc:98 +msgid "Inode hard quota" +msgstr "" + +#: ../lib/modules/quota.inc:57 ../lib/modules/quota.inc:58 +#: ../lib/modules/systemQuotas.inc:98 ../lib/modules/systemQuotas.inc:99 +msgid "" +"Inode hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" + +#: ../lib/modules/quota.inc:61 ../lib/modules/systemQuotas.inc:102 +msgid "Inode quota" +msgstr "" + +#: ../lib/modules/quota.inc:55 ../lib/modules/systemQuotas.inc:96 +msgid "Inode soft quota" +msgstr "" + +#: ../lib/modules/quota.inc:55 ../lib/modules/quota.inc:56 +#: ../lib/modules/systemQuotas.inc:96 ../lib/modules/systemQuotas.inc:97 +msgid "" +"Inode soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" + +#: ../lib/modules/quota.inc:61 ../lib/modules/quota.inc:62 +#: ../lib/modules/systemQuotas.inc:102 ../lib/modules/systemQuotas.inc:103 +msgid "Inode soft quota must be smaller than inode hard quota." +msgstr "" + +#: ../templates/selfService/adminMain.php:604 +msgid "Input fields" +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:146 +#: ../lib/modules/asteriskAccount.inc:263 +#: ../lib/modules/asteriskAccount.inc:339 +#: ../lib/modules/asteriskAccount.inc:453 +#: ../lib/modules/asteriskAccount.inc:763 +#: ../lib/modules/asteriskAccount.inc:1199 +msgid "Insecure" +msgstr "Güvenli değil" + +#: ../lib/modules/sambaSamAccount.inc:95 +msgid "Inserted user or group name in home path." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:101 +msgid "Inserted user or group name in logon script." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:98 +msgid "Inserted user or group name in profile path." +msgstr "" + +#: ../lib/modules/fixed_ip.inc:403 +msgid "Invalid MAC address." +msgstr "Geçersiz MAC adresi." + +#: ../templates/massBuildAccounts.php:201 +msgid "Invalid RDN attribute!" +msgstr "Geçersiz RDN özniteliği" + +#: ../templates/3rdParty/pla/htdocs/rename.php:42 +msgid "Invalid RDN value" +msgstr "Geçersiz RDN değeri" + +#: ../templates/3rdParty/pla/lib/import_functions.php:560 +msgid "Invalid entry" +msgstr "Geçersiz girdi" + +#: ../lib/modules/selfRegistration.inc:150 +msgid "Invalid format for the specification of additional attributes." +msgstr "" + +#: ../lib/modules/imapAccess.inc:165 +msgid "Invalid password for IMAP admin or other problem occured." +msgstr "IMAP yöneticisi için geçersiz parola ya da başka problem ortaya çıktı." + +#: ../lib/modules/ldapPublicKey.inc:576 ../lib/modules/inetOrgPerson.inc:3698 +#: ../lib/modules/customFields.inc:1303 +msgid "Invalid request" +msgstr "Geçersiz istek" + +#: ../templates/config/mainmanage.php:164 +msgid "Invalid server name. Please enter \"server\" or \"server:port\"." +msgstr "Geçersiz sunucu adı. Lütfen \"server\" ya da \"server:port\" girin." + +#: ../lib/modules/passwordSelfReset.inc:781 +#: ../lib/modules/passwordSelfReset.inc:1000 +#, php-format +msgid "Invalid value in field \"%s\"." +msgstr "Alanda geçersiz değer \"%s\"." + +#: ../lib/modules/kolabUser.inc:99 ../lib/modules/kolabUser.inc:106 +#: ../lib/modules/kolabUser.inc:159 ../lib/modules/kolabUser.inc:197 +#: ../lib/modules/kolabUser.inc:275 ../lib/modules/kolabUser.inc:712 +#: ../lib/modules/kolabUser.inc:836 +msgid "Invitation policy" +msgstr "Davet ilkesi" + +#: ../lib/modules/kolabUser.inc:110 +msgid "Invitation policy list" +msgstr "Davet ilkesi listesi" + +#: ../lib/modules/sambaSamAccount.inc:556 +msgid "Islamabad, Karachi" +msgstr "İslamabad, Karaşi" + +#: ../lib/modules/range.inc:109 +msgid "It is not possible to delete all ranges." +msgstr "Tüm aralıkları silmek mümkün değil." + +#: ../lib/modules/posixGroup.inc:571 ../lib/modules/posixAccount.inc:105 +msgid "" +"It is possible that this ID-number is reused. This can cause several " +"problems because files with old permissions might still exist. To avoid this " +"warning set maxUID to a higher value." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:86 ../lib/modules/inetOrgPerson.inc:146 +#: ../lib/modules/inetOrgPerson.inc:209 ../lib/modules/inetOrgPerson.inc:338 +#: ../lib/modules/inetOrgPerson.inc:406 ../lib/modules/inetOrgPerson.inc:659 +#: ../lib/modules/inetOrgPerson.inc:705 ../lib/modules/inetOrgPerson.inc:709 +#: ../lib/modules/inetOrgPerson.inc:1883 ../lib/modules/inetOrgPerson.inc:2359 +#: ../lib/modules/inetOrgPerson.inc:3183 +msgid "Job title" +msgstr "İş başlığı" + +#: ../lib/modules/inetOrgPerson.inc:706 ../lib/modules/inetOrgPerson.inc:710 +msgid "Job title of user: President, department manager, ..." +msgstr "Kullanıcının iş başlığı: Başkan, departman müdürü" + +#: ../lib/lists.inc:297 +msgid "Jump 10 pages backward" +msgstr "10 sayfa geriye git" + +#: ../lib/lists.inc:317 +msgid "Jump 10 pages forward" +msgstr "10 sayfa ileriye git" + +#: ../templates/schema/schema.php:255 +msgid "Jump to a matching rule" +msgstr "Eşleşen bir kurala atla" + +#: ../templates/schema/schema.php:114 +msgid "Jump to an attribute type" +msgstr "Bir öznitelik tipine atla" + +#: ../templates/schema/schema.php:308 ../templates/schema/schema.php:358 +#: ../templates/schema/schema.php:373 +msgid "Jump to an object class" +msgstr "Bir nesne sınıfına atla" + +#: ../lib/lists.inc:292 +msgid "Jump to first page" +msgstr "İlk sayfaya atla" + +#: ../lib/lists.inc:322 +msgid "Jump to last page" +msgstr "Son sayfaya atla" + +#: ../lib/modules/mitKerberos.inc:87 ../lib/modules/heimdalKerberos.inc:74 +msgid "Kerberos" +msgstr "Kerberos" + +#: ../lib/modules/kolabGroup.inc:67 ../lib/modules/kolabUser.inc:73 +msgid "Kolab" +msgstr "Kolab" + +#: ../lib/modules/posixGroup.inc:492 +msgid "" +"LAM checks if the entered group name and GID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique group names or " +"GIDs." +msgstr "" + +#: ../lib/modules/posixAccount.inc:479 +msgid "" +"LAM checks if the entered user name and UID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique user names or " +"UIDs." +msgstr "" + +#: ../templates/login.php:268 ../templates/config/index.php:85 +msgid "LAM configuration" +msgstr "LAM yapılandırması" + +#: ../templates/massBuildAccounts.php:239 +msgid "LAM has checked your input and is now ready to create the accounts." +msgstr "" + +#: ../lib/modules/posixGroup.inc:480 ../lib/modules/posixAccount.inc:451 +#: ../lib/modules/inetOrgPerson.inc:881 ../lib/modules/customFields.inc:123 +msgid "" +"LAM supports CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 and SMD5 to generate the " +"hash value of passwords. SSHA and CRYPT are the most common but CRYPT does " +"not support passwords greater than 8 letters. We do not recommend to use " +"plain text passwords." +msgstr "" + +#: ../templates/tests/index.php:50 +msgid "LAM tests" +msgstr "LAM testleri" + +#: ../lib/modules/imapAccess.inc:118 +msgid "LAM user password" +msgstr "LAM kullanıcı şifresi" + +#: ../templates/massDoUpload.php:132 +#, php-format +msgid "LAM was unable to create account %s! An LDAP error occured." +msgstr "" + +#: ../lib/modules/sambaGroupMapping.inc:590 +msgid "LAM was unable to find a Samba 3 domain with this name!" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:118 +msgid "LAM was unable to find a domain with this name!" +msgstr "" + +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/windowsUser.inc:1088 +msgid "LAM was unable to find a group with this name!" +msgstr "" + +#: ../lib/modules/posixAccount.inc:2226 ../lib/modules/posixAccount.inc:2287 +#: ../lib/modules/windowsUser.inc:1165 ../lib/modules/groupOfNamesUser.inc:434 +#, php-format +msgid "LAM was unable to modify group memberships for group: %s" +msgstr "" + +#: ../lib/modules/posixGroup.inc:496 ../lib/modules/posixAccount.inc:487 +msgid "" +"LAM will automatically suggest UID/GID numbers. You can either use a fixed " +"range of numbers or an LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "" + +#: ../help/help.inc:199 +msgid "LAM will search for accounts in this part of the LDAP tree." +msgstr "" + +#: ../lib/modules/posixAccount.inc:430 +msgid "" +"LAM will suggest a user name based on e.g. first and last name. Here you can " +"specify the suggestion. %sn% will be replaced by the last name. @givenname@ " +"will be replaced by the first character of first name. Only attributes of " +"tab Personal may be used." +msgstr "" + +#: ../help/help.inc:201 +msgid "" +"LAM will use this LDAP DN and password to search for accounts. It is " +"sufficient to specify an account with read rights. If nothing is inserted " +"then LAM will try to connect anonymously." +msgstr "" + +#: ../lib/modules/qmailUser.inc:57 +msgid "LDAP + program" +msgstr "LDAP + program" + +#: ../templates/config/confmodules.php:97 ../templates/config/confmain.php:127 +#: ../templates/config/moduleSettings.php:96 +#: ../templates/config/conftypes.php:115 +msgid "LDAP Account Manager Configuration" +msgstr "LDAP Hesap Yöneticisi Yapılandırması" + +#: ../templates/config/conftypes.php:366 +msgid "LDAP Suffix is invalid!" +msgstr "LDAP son eki geçersiz!" + +#: ../templates/serverInfo.php:182 +msgid "LDAP entries" +msgstr "LDAP girdileri" + +#: ../lib/modules/qmailGroup.inc:166 ../lib/modules/qmailGroup.inc:170 +msgid "LDAP entries that are allowed to send to this list." +msgstr "Bu listeye gönderilme izni olan LDAP girdileri." + +#: ../lib/modules/qmailGroup.inc:150 ../lib/modules/qmailGroup.inc:154 +msgid "LDAP entries that are member of this list." +msgstr "Bu listenin üyesi olan LDAP girdileri." + +#: ../lib/modules/qmailGroup.inc:158 ../lib/modules/qmailGroup.inc:162 +msgid "LDAP entries that moderate this list (e.g. approve mails)." +msgstr "" + +#: ../templates/login.php:645 +msgid "LDAP error, server says:" +msgstr "" + +#: ../templates/config/confmain.php:421 +msgid "LDAP filter" +msgstr "LDAP filtresi" + +#: ../lib/modules/qmailGroup.inc:182 ../lib/modules/qmailGroup.inc:186 +msgid "" +"LDAP filter to specify allowed senders of this list (e.g. " +"\"((objectclass=qmailUser)(employeeType=manager))\")." +msgstr "" + +#: ../lib/modules/qmailGroup.inc:174 ../lib/modules/qmailGroup.inc:178 +msgid "" +"LDAP filter to specify members of this list (e.g. \"((objectclass=qmailUser)" +"(employeeType=accountant))\")." +msgstr "" + +#: ../lib/modules.inc:1302 +msgid "LDAP operation successful." +msgstr "LDAP operasyonu başarılı." + +#: ../templates/selfService/adminMain.php:421 +msgid "LDAP password" +msgstr "LDAP şifresi" + +#: ../templates/3rdParty/pla/lib/functions.php:1894 +msgid "LDAP said" +msgstr "" + +#: ../templates/config/confmain.php:398 ../help/help.inc:118 +msgid "LDAP search" +msgstr "LDAP araştır" + +#: ../templates/selfService/adminMain.php:426 ../help/help.inc:202 +msgid "LDAP search attribute" +msgstr "LDAP araştır özniteliği" + +#: ../lib/account.inc:768 +msgid "LDAP search failed! Please check your preferences." +msgstr "LDAP arama başarısız! Lütfen tercihlerinizi kontrol edin." + +#: ../templates/config/confmain.php:253 ../help/help.inc:120 +msgid "LDAP search limit" +msgstr "LDAP arama limiti" + +#: ../templates/login.php:463 +msgid "LDAP server" +msgstr "LDAP sunucusu" + +#: ../lib/account.inc:759 +msgid "LDAP sizelimit exceeded, not all entries are shown." +msgstr "" + +#: ../templates/config/confmain.php:417 ../templates/config/conftypes.php:252 +#: ../templates/selfService/adminMain.php:415 +#: ../templates/profedit/profilepage.php:202 ../help/help.inc:71 +#: ../help/help.inc:198 +msgid "LDAP suffix" +msgstr "LDAP son eki" + +#: ../templates/massDoUpload.php:86 +msgid "LDAP upload in progress. Please wait." +msgstr "LDAP yükleniyor. Lütfen bekleyin." + +#: ../templates/selfService/adminMain.php:419 +msgid "LDAP user" +msgstr "LDAP kullanıcısı" + +#: ../help/help.inc:200 +msgid "LDAP user and password" +msgstr "LDAP kullanıcısı ve parolası" + +#: ../templates/serverInfo.php:109 +msgid "LDAP version" +msgstr "LDAP versiyonu" + +#: ../templates/3rdParty/pla/lib/export_functions.php:442 +msgid "LDIF Export" +msgstr "LDIF dışa aktar" + +#: ../templates/3rdParty/pla/lib/import_functions.php:149 +#: ../templates/3rdParty/pla/htdocs/import.php:71 +msgid "LDIF import" +msgstr "LDIF içer " + +#: ../templates/3rdParty/pla/lib/import_functions.php:170 +msgid "LDIF import only supports version 1" +msgstr "LDIF içe aktar yalnızca versiyon 1 i destekler" + +#: ../lib/modules/customFields.inc:78 ../lib/modules/customFields.inc:973 +#: ../lib/modules/customFields.inc:1471 ../lib/modules/customFields.inc:2450 +msgid "Label" +msgstr "Etiket" + +#: ../templates/tests/lamdaemonTest.php:201 +msgid "" +"Lamdaemon path does not end with \".pl\". Did you enter the full path to the " +"script?" +msgstr "" + +#: ../templates/tests/lamdaemonTest.php:185 +msgid "Lamdaemon server and path" +msgstr "Lamdaemon sunucusu ve yolu" + +#: ../templates/config/confmain.php:323 +msgid "Lamdaemon settings" +msgstr "Lamdaemon ayarları" + +#: ../templates/tests/lamdaemonTest.php:135 +msgid "Lamdaemon successfully run." +msgstr "" + +#: ../templates/tests/index.php:52 ../templates/tests/lamdaemonTest.php:52 +#: ../lib/tools/tests.inc:110 +msgid "Lamdaemon test" +msgstr "Lamdaemon testi" + +#: ../templates/tests/lamdaemonTest.php:291 +msgid "Lamdaemon test finished." +msgstr "Lamdaemon test tamamlandı." + +#: ../templates/tests/lamdaemonTest.php:273 +msgid "Lamdaemon version" +msgstr "Lamdaemon versiyon" + +#: ../templates/tests/lamdaemonTest.php:283 +msgid "Lamdaemon: Quota module installed" +msgstr "Lamdaemon: Kota modülü kuruldu" + +#: ../templates/tests/lamdaemonTest.php:279 +msgid "Lamdaemon: check NSS LDAP" +msgstr "Lamdaemon: NSS LDAPı kontrol et." + +#: ../templates/tests/lamdaemonTest.php:286 +msgid "Lamdaemon: read quotas" +msgstr "Lamdaemon: kotaları oku" + +#: ../templates/login.php:401 +msgid "Language" +msgstr "Dil " + +#: ../templates/config/confmain.php:540 +msgid "Language is not defined!" +msgstr "Dil belirlenmedi!" + +#: ../templates/config/confmain.php:293 +msgid "Language settings" +msgstr "Dil ayarları" + +#: ../lib/modules/mitKerberos.inc:137 ../lib/modules/mitKerberos.inc:249 +#: ../lib/modules/mitKerberos.inc:405 ../lib/modules/mitKerberos.inc:792 +msgid "Last login" +msgstr "Son giriş" + +#: ../lib/types/user.inc:97 ../lib/modules/selfRegistration.inc:69 +#: ../lib/modules/selfRegistration.inc:126 ../lib/modules/windowsUser.inc:143 +#: ../lib/modules/windowsUser.inc:234 ../lib/modules/windowsUser.inc:392 +#: ../lib/modules/windowsUser.inc:449 ../lib/modules/windowsUser.inc:521 +#: ../lib/modules/windowsUser.inc:1227 ../lib/modules/inetOrgPerson.inc:66 +#: ../lib/modules/inetOrgPerson.inc:140 ../lib/modules/inetOrgPerson.inc:381 +#: ../lib/modules/inetOrgPerson.inc:608 ../lib/modules/inetOrgPerson.inc:717 +#: ../lib/modules/inetOrgPerson.inc:1417 ../lib/modules/inetOrgPerson.inc:2361 +#: ../lib/modules/inetOrgPerson.inc:2936 +msgid "Last name" +msgstr "Soyadı" + +#: ../lib/modules/windowsUser.inc:449 ../lib/modules/windowsUser.inc:450 +#: ../lib/modules/inetOrgPerson.inc:66 ../lib/modules/inetOrgPerson.inc:67 +msgid "Last name contains invalid characters or is empty!" +msgstr "Soyadı geçersiz karakterler içeriyor ya da boş!" + +#: ../lib/modules/windowsUser.inc:144 ../lib/modules/inetOrgPerson.inc:718 +msgid "Last name of user. Only letters, - and spaces are allowed." +msgstr "Kullanıcının soyadı. Sadece harfler, - ve boşluk kullanılabilir." + +#: ../lib/modules/mitKerberos.inc:133 ../lib/modules/mitKerberos.inc:248 +#: ../lib/modules/mitKerberos.inc:397 ../lib/modules/mitKerberos.inc:788 +#: ../lib/modules/ppolicyUser.inc:125 ../lib/modules/shadowAccount.inc:160 +#: ../lib/modules/shadowAccount.inc:194 ../lib/modules/shadowAccount.inc:356 +#: ../lib/modules/shadowAccount.inc:489 +msgid "Last password change" +msgstr " " + +#: ../lib/modules/asteriskAccount.inc:230 +#: ../lib/modules/asteriskAccount.inc:305 +#: ../lib/modules/asteriskAccount.inc:360 +#: ../lib/modules/asteriskAccount.inc:606 +#: ../lib/modules/asteriskAccount.inc:963 +#: ../lib/modules/asteriskAccount.inc:1220 +msgid "Last qualify milliseconds" +msgstr "" + +#: ../lib/modules/dhcp_settings.inc:146 ../lib/modules/dhcp_settings.inc:202 +#: ../lib/modules/dhcp_settings.inc:217 ../lib/modules/dhcp_settings.inc:249 +#: ../lib/modules/dhcp_settings.inc:562 ../lib/modules/dhcp_settings.inc:668 +msgid "Lease time" +msgstr "Kira süresi" + +#: ../templates/3rdParty/pla/htdocs/import.php:102 +msgid "Line" +msgstr "Satır" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:121 +msgid "Line ends" +msgstr "Satır sonu" + +#: ../lib/modules/selfRegistration.inc:51 +#: ../lib/modules/selfRegistration.inc:96 +#: ../lib/modules/passwordSelfReset.inc:89 +#: ../lib/modules/passwordSelfReset.inc:207 +msgid "Link text" +msgstr "Bağlantı metini" + +#: ../templates/selfService/adminMain.php:357 +msgid "Link to self service login page for your users" +msgstr "" + +#: ../templates/config/conftypes.php:263 ../help/help.inc:85 +msgid "List attributes" +msgstr "Liste öznitelikleri" + +#: ../templates/config/conftypes.php:374 +msgid "List attributes are invalid!" +msgstr "Liste öznitelikleri geçersiz!" + +#: ../lib/types/zarafaAddressListType.inc:91 +#: ../lib/modules/zarafaAddressList.inc:56 +#: ../lib/modules/zarafaAddressList.inc:97 +#: ../lib/modules/zarafaAddressList.inc:134 +#: ../lib/modules/zarafaAddressList.inc:161 +#: ../lib/modules/zarafaAddressList.inc:180 +#: ../lib/modules/zarafaAddressList.inc:334 +msgid "List name" +msgstr "Liste adı" + +#: ../lib/modules/zarafaAddressList.inc:161 +msgid "List name already in use." +msgstr "Kullanımda olan liste adı" + +#: ../lib/modules/sambaSamAccount.inc:305 +msgid "" +"List of Samba workstations the user is allowed to login. Empty means every " +"workstation." +msgstr "" +"Kullanıcı giriş izni olan Samba iş istasyonları listesi.Boşluk her iş " +"istasyonu anlamına gelir." + +#: ../templates/config/confmain.php:534 +msgid "List of admin users is empty or invalid!" +msgstr "Yönetici kullanıcıların listesi boş ya da geçersiz!" + +#: ../lib/modules/asteriskAccount.inc:195 +msgid "List of allowed codecs." +msgstr "İzinli kodlayıcıların listesi" + +#: ../lib/modules/asteriskAccount.inc:191 +msgid "List of disallowed codecs." +msgstr "İzinsiz kodlayıcıların listesi" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:94 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:88 +msgid "List of entries to be deleted:" +msgstr "Silinen girdilerin listesi" + +#: ../templates/config/confmain.php:413 +msgid "List of valid users" +msgstr "Geçerli kullanıcılar" + +#: ../templates/serverInfo.php:152 +msgid "Listeners" +msgstr "Dinleyiciler" + +#: ../lib/modules.inc:1211 ../help/help.inc:178 +msgid "Load profile" +msgstr "Profil yükle" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:279 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1226 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +msgid "Loading" +msgstr "Yükleme" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:303 +msgid "Loading export" +msgstr "Yükleme dışa aktar" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:290 +msgid "Loading import" +msgstr "Yükleme içe aktar" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:497 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:233 +msgid "Loading search" +msgstr "Yükleme ara" + +#: ../lib/modules/inetLocalMailRecipient.inc:65 +#: ../lib/modules/inetLocalMailRecipient.inc:150 +msgid "Local address" +msgstr "Yerel adres" + +#: ../lib/modules/inetLocalMailRecipient.inc:69 +#: ../lib/modules/inetLocalMailRecipient.inc:99 +#: ../lib/modules/inetLocalMailRecipient.inc:113 +#: ../lib/modules/inetLocalMailRecipient.inc:300 +msgid "Local address list" +msgstr "Yerel adres listesi" + +#: ../lib/modules/sambaGroupMapping.inc:72 +msgid "Local group" +msgstr "Yerel grup" + +#: ../lib/modules/sambaGroupMapping.inc:108 +#: ../lib/modules/sambaGroupMapping.inc:159 +#: ../lib/modules/sambaGroupMapping.inc:381 +#: ../lib/modules/sambaGroupMapping.inc:542 +msgid "Local members" +msgstr "Yerel üyeler" + +#: ../lib/types/host.inc:97 ../lib/modules/ipHost.inc:66 +#: ../lib/modules/ipHost.inc:84 ../lib/modules/ipHost.inc:98 +#: ../lib/modules/ipHost.inc:149 ../lib/modules/ipHost.inc:309 +#: ../lib/modules/windowsHost.inc:75 ../lib/modules/windowsHost.inc:99 +#: ../lib/modules/windowsHost.inc:114 ../lib/modules/windowsHost.inc:137 +#: ../lib/modules/windowsHost.inc:289 ../lib/modules/device.inc:70 +#: ../lib/modules/device.inc:102 ../lib/modules/device.inc:122 +#: ../lib/modules/device.inc:184 ../lib/modules/device.inc:437 +#: ../lib/modules/windowsUser.inc:115 ../lib/modules/windowsUser.inc:276 +#: ../lib/modules/windowsUser.inc:385 ../lib/modules/windowsUser.inc:416 +#: ../lib/modules/windowsUser.inc:530 ../lib/modules/windowsUser.inc:1220 +#: ../lib/modules/windowsUser.inc:1341 ../lib/modules/inetOrgPerson.inc:145 +#: ../lib/modules/inetOrgPerson.inc:170 ../lib/modules/inetOrgPerson.inc:316 +#: ../lib/modules/inetOrgPerson.inc:576 ../lib/modules/inetOrgPerson.inc:623 +#: ../lib/modules/inetOrgPerson.inc:840 ../lib/modules/inetOrgPerson.inc:844 +#: ../lib/modules/inetOrgPerson.inc:1561 ../lib/modules/inetOrgPerson.inc:2381 +#: ../lib/modules/inetOrgPerson.inc:3079 +msgid "Location" +msgstr "Yer" + +#: ../lib/types/user.inc:350 ../lib/types/user.inc:355 +msgid "Lock" +msgstr "Kilitle" + +#: ../templates/lists/changePassword.php:390 +#: ../templates/lists/changePassword.php:410 +#: ../templates/lists/changePassword.php:412 +#: ../lib/modules/ppolicyUser.inc:139 +msgid "Lock account" +msgstr "Hesabı kilitle" + +#: ../templates/lists/changePassword.php:252 +msgid "Lock account?" +msgstr "Hesabı kilitle?" + +#: ../lib/modules/posixGroup.inc:206 ../lib/modules/posixAccount.inc:331 +#: ../lib/modules/posixAccount.inc:1401 ../lib/modules/inetOrgPerson.inc:2084 +msgid "Lock password" +msgstr "Parola kilitle" + +#: ../lib/types/ppolicyType.inc:83 ../lib/modules/ppolicy.inc:97 +#: ../lib/modules/ppolicy.inc:144 ../lib/modules/ppolicy.inc:164 +#: ../lib/modules/ppolicy.inc:257 ../lib/modules/ppolicy.inc:469 +#: ../lib/modules/sambaDomain.inc:126 ../lib/modules/sambaDomain.inc:191 +#: ../lib/modules/sambaDomain.inc:216 ../lib/modules/sambaDomain.inc:333 +#: ../lib/modules/sambaDomain.inc:649 +msgid "Lockout duration" +msgstr "Kilitleme süresi" + +#: ../lib/modules/sambaDomain.inc:216 +msgid "Lockout duration must be are natural number." +msgstr "" + +#: ../lib/modules/ppolicyUser.inc:131 +msgid "Lockout time" +msgstr "Kilitleme zamanı" + +#: ../lib/types/ppolicyType.inc:88 ../lib/modules/ppolicy.inc:117 +#: ../lib/modules/ppolicy.inc:143 ../lib/modules/ppolicy.inc:251 +#: ../lib/modules/ppolicy.inc:488 +msgid "Lockout users" +msgstr "Kilitli kullanıcılar" + +#: ../lib/modules/sambaDomain.inc:114 ../lib/modules/sambaDomain.inc:188 +#: ../lib/modules/sambaDomain.inc:218 ../lib/modules/sambaDomain.inc:309 +#: ../lib/modules/sambaDomain.inc:646 +msgid "Lockout users after bad logon attempts" +msgstr "" + +#: ../lib/modules/sambaDomain.inc:218 +msgid "Lockout users after bad logon attempts must be between 0 and 999." +msgstr "" + +#: ../templates/config/mainmanage.php:367 ../help/help.inc:146 +msgid "Log destination" +msgstr "" + +#: ../templates/config/mainmanage.php:353 ../help/help.inc:144 +msgid "Log level" +msgstr "Sistem günlüğü seviyesi" + +#: ../templates/main_header.php:126 +#, php-format +msgid "Logged in as: %s" +msgstr "" + +#: ../templates/config/mainmanage.php:350 +msgid "Logging" +msgstr "Günlük" + +#: ../templates/login.php:436 ../templates/config/conflogin.php:62 +#: ../templates/config/mainlogin.php:72 +#: ../templates/selfService/selfServiceLogin.php:180 +#: ../templates/selfService/selfServiceLogin.php:292 +#: ../templates/selfService/adminLogin.php:64 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:530 ../help/help.inc:56 +msgid "Login" +msgstr "Giriş" + +#: ../templates/selfService/adminMain.php:437 ../help/help.inc:204 +msgid "Login attribute label" +msgstr "Sisteme giriş özniteliği etiketi" + +#: ../templates/selfService/adminMain.php:442 ../help/help.inc:206 +msgid "Login caption" +msgstr "Sisteme giriş yazısı" + +#: ../templates/config/confmain.php:400 ../help/help.inc:116 +msgid "Login method" +msgstr "Oturum açma yöntemi" + +#: ../lib/types/user.inc:99 ../lib/modules/posixAccount.inc:178 +#: ../lib/modules/posixAccount.inc:317 ../lib/modules/posixAccount.inc:410 +#: ../lib/modules/posixAccount.inc:519 ../lib/modules/posixAccount.inc:1394 +#: ../lib/modules/posixAccount.inc:1653 ../lib/modules/posixAccount.inc:1751 +#: ../lib/modules/posixAccount.inc:2459 +msgid "Login shell" +msgstr "Sisteme giriş kabuğu" + +#: ../lib/modules/posixAccount.inc:186 ../lib/modules/posixAccount.inc:241 +#: ../lib/modules/posixAccount.inc:482 +msgid "Login shells" +msgstr "Sisteme giriş kabukları" + +#: ../templates/pdfedit/pdfpage.php:453 +msgid "Logo" +msgstr "Logo" + +#: ../lib/modules/sambaDomain.inc:102 ../lib/modules/sambaDomain.inc:185 +#: ../lib/modules/sambaDomain.inc:283 ../lib/modules/sambaDomain.inc:655 +msgid "Logon for password change" +msgstr "Parola değiştirmek için oturum aç" + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:329 +#: ../lib/modules/sambaSamAccount.inc:332 +#: ../lib/modules/sambaSamAccount.inc:513 +#: ../lib/modules/sambaSamAccount.inc:591 +#: ../lib/modules/sambaSamAccount.inc:1259 +#: ../lib/modules/sambaSamAccount.inc:1761 +msgid "Logon hours" +msgstr "Logon saatleri" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:216 +#: ../lib/modules/sambaSamAccount.inc:301 +#: ../lib/modules/sambaSamAccount.inc:497 +#: ../lib/modules/sambaSamAccount.inc:587 +#: ../lib/modules/sambaSamAccount.inc:1212 +#: ../lib/modules/sambaSamAccount.inc:1737 +#: ../lib/modules/sambaSamAccount.inc:1877 ../lib/modules/windowsUser.inc:186 +#: ../lib/modules/windowsUser.inc:368 ../lib/modules/windowsUser.inc:402 +#: ../lib/modules/windowsUser.inc:463 ../lib/modules/windowsUser.inc:575 +#: ../lib/modules/windowsUser.inc:1254 +msgid "Logon script" +msgstr "Logon komutu" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:102 ../lib/modules/windowsUser.inc:463 +#: ../lib/modules/windowsUser.inc:464 +msgid "Logon script is invalid!" +msgstr "Logon komutu" + +#: ../templates/selfService/selfServiceMain.php:63 +#: ../templates/selfService/selfServiceMain.php:400 +#: ../templates/main_header.php:133 +msgid "Logout" +msgstr "Çıkış" + +#: ../lib/modules/dhcp_settings.inc:98 +msgid "M-Node (0x04)" +msgstr "M-Ağı (0x04)" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ieee802device.inc:51 +#: ../lib/modules/ieee802device.inc:61 ../lib/modules/ieee802device.inc:72 +#: ../lib/modules/ieee802device.inc:104 ../lib/modules/fixed_ip.inc:92 +#: ../lib/modules/fixed_ip.inc:358 ../lib/modules/fixed_ip.inc:561 +msgid "MAC address" +msgstr "MAC adresi" + +#: ../lib/modules/ieee802device.inc:65 +msgid "MAC address list" +msgstr "MAC adres listesi" + +#: ../lib/modules/ieee802device.inc:79 ../lib/modules/ieee802device.inc:205 +msgid "MAC addresses" +msgstr "MAC adresleri" + +#: ../lib/modules/mitKerberos.inc:261 +msgid "MIT Kerberos password change command" +msgstr "MIT Kerberos parola değiştirme komutu" + +#: ../lib/modules/sambaSamAccount.inc:562 +msgid "Magadan, Solomon Islands" +msgstr "Magadan, Solomon Adaları" + +#: ../lib/types/mailAlias.inc:53 ../lib/modules/nisMailAlias.inc:58 +msgid "Mail aliases" +msgstr "Posta takma adları" + +#: ../lib/modules/imapAccess.inc:91 ../lib/modules/imapAccess.inc:122 +msgid "Mail domains" +msgstr "Posta etki alanları" + +#: ../lib/modules/inetLocalMailRecipient.inc:51 +msgid "Mail routing" +msgstr "Mail dolaştırma" + +#: ../lib/modules/selfRegistration.inc:514 +#: ../lib/modules/selfRegistration.inc:544 +#: ../lib/modules/passwordSelfReset.inc:1404 +#: ../lib/modules/passwordSelfReset.inc:1419 +#: ../lib/modules/passwordSelfReset.inc:1460 +msgid "Mail sending failed." +msgstr "Posta gönderimi başarısız." + +#: ../lib/modules/kolabUser.inc:85 +#: ../lib/modules/inetLocalMailRecipient.inc:73 +#: ../lib/modules/inetLocalMailRecipient.inc:78 +#: ../lib/modules/inetLocalMailRecipient.inc:105 +#: ../lib/modules/inetLocalMailRecipient.inc:114 +#: ../lib/modules/inetLocalMailRecipient.inc:145 +#: ../lib/modules/inetLocalMailRecipient.inc:301 +msgid "Mail server" +msgstr "Posta sunucusu" + +#: ../lib/account.inc:993 +#, php-format +msgid "Mail successfully sent to %s." +msgstr "Posta başarıyla gönderildi %s." + +#: ../lib/modules/asteriskAccount.inc:150 +#: ../lib/modules/asteriskAccount.inc:265 +#: ../lib/modules/asteriskAccount.inc:340 +#: ../lib/modules/asteriskAccount.inc:461 +#: ../lib/modules/asteriskAccount.inc:772 +#: ../lib/modules/asteriskAccount.inc:1200 +#: ../lib/modules/asteriskVoicemail.inc:86 +#: ../lib/modules/asteriskVoicemail.inc:129 +#: ../lib/modules/asteriskVoicemail.inc:149 +#: ../lib/modules/asteriskVoicemail.inc:236 +#: ../lib/modules/asteriskVoicemail.inc:388 ../lib/modules/imapAccess.inc:56 +#: ../lib/modules/imapAccess.inc:97 ../lib/modules/imapAccess.inc:223 +msgid "Mailbox" +msgstr "posta kutusu" + +#: ../lib/modules/imapAccess.inc:232 +msgid "Mailbox already exists on IMAP server." +msgstr "IMAP sunucusu üstünde e-posta kutusu zaten var." + +#: ../lib/modules/imapAccess.inc:239 +msgid "Mailbox does not exist on IMAP server." +msgstr "IMAP sunucusu üstünde e-posta kutusu yok." + +#: ../lib/modules/kolabUser.inc:130 ../lib/modules/kolabUser.inc:165 +#: ../lib/modules/kolabUser.inc:198 ../lib/modules/kolabUser.inc:265 +#: ../lib/modules/kolabUser.inc:270 ../lib/modules/kolabUser.inc:701 +msgid "Mailbox home server" +msgstr "Posta kutusu ana sunucusu" + +#: ../lib/modules/kolabUser.inc:217 +msgid "Mailbox home server name is empty!" +msgstr "Posta kutusu ana sunucusunun adı boş!" + +#: ../lib/modules/kolabUser.inc:215 ../lib/modules/kolabUser.inc:216 +msgid "Mailbox home server name is invalid!" +msgstr "Posta kutusu ana sunucusunun adı geçersiz !" + +#: ../lib/types/mailAlias.inc:62 +msgid "Mailing aliases (e.g. NIS mail aliases)" +msgstr "Posta takma adları (Örn. NIS posta takma adları)" + +#: ../lib/modules/nisMailAlias.inc:71 +msgid "Mails to this name are forwarded to the recipients." +msgstr "" + +#: ../templates/pdfedit/pdfpage.php:367 ../templates/pdfedit/pdfpage.php:678 +msgid "Main" +msgstr "Ana grup" + +#: ../templates/selfService/adminMain.php:448 ../help/help.inc:208 +msgid "Main page caption" +msgstr "Ana sayfa yazısı" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:79 +msgid "Make sure your filter (above) will select all child records." +msgstr "" +"Yukarıda yer alan filtrenizin alt basamak girdi kayıtlarını seçtiğinden emin " +"olun." + +#: ../lib/modules/inetOrgPerson.inc:2052 +msgid "Manage" +msgstr "Yönet" + +#: ../templates/pdfedit/pdfmain.php:175 +msgid "Manage existing PDF structures" +msgstr "Varolan PDF yapılarını yönet" + +#: ../templates/profedit/profilemain.php:173 +msgid "Manage existing profiles" +msgstr "Varolan profilleri yönet" + +#: ../lib/modules/sambaSamAccount.inc:1199 +msgid "Manage profile directory" +msgstr "Profil dizini yönet" + +#: ../templates/selfService/adminLogin.php:182 +msgid "Manage self service profiles" +msgstr "Self servis profilleri yönet" + +#: ../templates/config/conflogin.php:187 +msgid "Manage server profiles" +msgstr "Sunucu profillerini yönet" + +#: ../lib/modules/windowsHost.inc:79 ../lib/modules/windowsHost.inc:105 +#: ../lib/modules/windowsHost.inc:115 ../lib/modules/windowsHost.inc:139 +#: ../lib/modules/windowsHost.inc:294 ../lib/modules/windowsGroup.inc:146 +#: ../lib/modules/windowsGroup.inc:161 ../lib/modules/windowsGroup.inc:227 +#: ../lib/modules/windowsGroup.inc:248 ../lib/modules/windowsGroup.inc:329 +#: ../lib/modules/windowsGroup.inc:748 +msgid "Managed by" +msgstr "Yöneten" + +#: ../templates/serverInfo.php:105 +msgid "Managed suffixes" +msgstr "Yönetilen son ekler" + +#: ../lib/modules/ipHost.inc:70 ../lib/modules/ipHost.inc:90 +#: ../lib/modules/ipHost.inc:99 ../lib/modules/ipHost.inc:170 +#: ../lib/modules/ipHost.inc:310 ../lib/modules/inetOrgPerson.inc:348 +#: ../lib/modules/inetOrgPerson.inc:430 ../lib/modules/inetOrgPerson.inc:674 +#: ../lib/modules/inetOrgPerson.inc:725 ../lib/modules/inetOrgPerson.inc:729 +#: ../lib/modules/inetOrgPerson.inc:2058 ../lib/modules/inetOrgPerson.inc:2362 +msgid "Manager" +msgstr "Yönetici" + +#: ../lib/tools/ouEditor.inc:53 +msgid "Manages OU objects in your LDAP tree." +msgstr "OU nesnelerini LDAP ağacınızda yönetin." + +#: ../lib/modules/kolabUser.inc:52 +msgid "Manual" +msgstr "" + +#: ../lib/modules/kolabUser.inc:54 +msgid "Manual if conflicts" +msgstr "" + +#: ../lib/modules/customScripts.inc:138 +msgid "Manual scripts" +msgstr "Kullanıcı tarafından girilen komutlar" + +#: ../lib/types/nisObjectType.inc:78 ../lib/modules/nisObject.inc:58 +#: ../lib/modules/nisObject.inc:89 ../lib/modules/nisObject.inc:105 +#: ../lib/modules/nisObject.inc:116 ../lib/modules/nisObject.inc:142 +#: ../lib/modules/nisObject.inc:211 +msgid "Mapping entry" +msgstr "Girdi eşleme" + +#: ../lib/modules/nisObject.inc:116 ../lib/modules/nisObject.inc:117 +msgid "" +"Mapping entry contains invalid characters. Only ASCII characters are allowed." +msgstr "" +"Haritalanan girdi geçersiz karakterler içeriyor. Sadece ASCII karakterleri " +"kullanılabilir." + +#: ../lib/types/nisObjectType.inc:79 ../lib/modules/nisObject.inc:62 +#: ../lib/modules/nisObject.inc:82 ../lib/modules/nisObject.inc:106 +#: ../lib/modules/nisObject.inc:136 ../lib/modules/nisObject.inc:212 +msgid "Mapping name" +msgstr "Ad eşleme" + +#: ../lib/modules/kolabGroup.inc:194 ../lib/modules/kolabGroup.inc:274 +#: ../lib/modules/kolabUser.inc:356 ../lib/modules/kolabUser.inc:501 +msgid "Mark account for deletion" +msgstr "Silmek için hesap işaretle" + +#: ../lib/modules/kolabGroup.inc:106 ../lib/modules/kolabUser.inc:152 +msgid "Mark for deletion" +msgstr "Silmek için işaretle" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:44 +msgid "Mass delete" +msgstr "Toplu sil" + +#: ../templates/config/profmanage.php:309 +#: ../templates/config/mainlogin.php:158 +#: ../templates/selfService/profManage.php:247 +#: ../templates/pdfedit/pdfmain.php:252 ../templates/pdfedit/pdfmain.php:299 +#: ../templates/profedit/profilemain.php:255 +#: ../templates/profedit/profilemain.php:303 ../help/help.inc:138 +msgid "Master password" +msgstr "Ana parola" + +#: ../templates/config/profmanage.php:54 +#: ../templates/selfService/profManage.php:40 +#: ../templates/pdfedit/pdfmain.php:106 ../templates/pdfedit/pdfmain.php:114 +#: ../templates/profedit/profilemain.php:121 +#: ../templates/profedit/profilemain.php:129 +msgid "Master password is wrong!" +msgstr "Ana parola yanlış!" + +#: ../templates/config/mainmanage.php:82 +msgid "Master passwords are different or empty!" +msgstr "Ana parolalar farklı ya da boş!" + +#: ../templates/schema/schema.php:268 +msgid "Matching rule OID" +msgstr "Eşleşen OID kuralı" + +#: ../templates/schema/schema.php:77 ../templates/schema/schema.php:78 +msgid "Matching rules" +msgstr "Eşleşen kurallar" + +#: ../templates/serverInfo.php:173 +msgid "Max. file descriptors" +msgstr "En büyük dosya tanımlayıcıları" + +#: ../lib/modules/posixGroup.inc:390 ../lib/modules/posixGroup.inc:575 +#: ../lib/modules/posixGroup.inc:576 +msgid "Maximum GID number" +msgstr "En büyük GID numarası" + +#: ../lib/modules/posixGroup.inc:575 +msgid "Maximum GID number is invalid or empty!" +msgstr "En büyük GID numarası geçersiz ya da boş!" + +#: ../lib/modules/posixGroup.inc:576 +msgid "Maximum GID number must be greater than minimum GID number!" +msgstr "En büyük GID numarası en küçük GID numarasından büyük olmak zorunda!" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:214 ../lib/modules/posixAccount.inc:232 +msgid "Maximum UID number" +msgstr "En büyük UID numarası" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +msgid "Maximum UID number is invalid!" +msgstr "En büyük UID numarası geçersiz!" + +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +msgid "Maximum UID number must be greater than minimum UID number!" +msgstr "En büyük UID numarası en küçük UID numarasından büyük olmak zorunda!" + +#: ../lib/types/ppolicyType.inc:84 ../lib/modules/ppolicy.inc:101 +#: ../lib/modules/ppolicy.inc:145 ../lib/modules/ppolicy.inc:165 +#: ../lib/modules/ppolicy.inc:265 ../lib/modules/ppolicy.inc:470 +msgid "Maximum failure count" +msgstr "En fazla başarısızlık sayısı" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:128 +#: ../templates/3rdParty/pla/htdocs/import_form.php:36 +#: ../lib/modules/customFields.inc:138 ../lib/modules/customFields.inc:2795 +msgid "Maximum file size" +msgstr "En büyük dosya boyutu" + +#: ../lib/modules/customFields.inc:2827 +msgid "Maximum file size must be a number. Please enter 0 for no limit." +msgstr "" +"En büyük dosya boyutu bir sayı olmak zorunda. Sınırsız olması için lütfen 0 " +"girin." + +#: ../lib/modules/dhcp_settings.inc:150 ../lib/modules/dhcp_settings.inc:203 +#: ../lib/modules/dhcp_settings.inc:218 ../lib/modules/dhcp_settings.inc:255 +#: ../lib/modules/dhcp_settings.inc:566 ../lib/modules/dhcp_settings.inc:669 +msgid "Maximum lease time" +msgstr "En fazla kiralama süresi" + +#: ../templates/schema/schema.php:214 +msgid "Maximum length" +msgstr "En büyük uzunluk" + +#: ../lib/lists.inc:1004 ../help/help.inc:95 +msgid "Maximum list entries" +msgstr "En büyük liste girdileri" + +#: ../lib/modules/asteriskAccount.inc:187 +msgid "" +"Maximum number of seconds of inactivity before terminating a call on hold." +msgstr "" + +#: ../lib/types/ppolicyType.inc:79 ../lib/modules/shadowAccount.inc:59 +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/shadowAccount.inc:116 +#: ../lib/modules/shadowAccount.inc:165 ../lib/modules/shadowAccount.inc:182 +#: ../lib/modules/shadowAccount.inc:220 ../lib/modules/shadowAccount.inc:331 +#: ../lib/modules/shadowAccount.inc:495 ../lib/modules/ppolicy.inc:81 +#: ../lib/modules/ppolicy.inc:137 ../lib/modules/ppolicy.inc:160 +#: ../lib/modules/ppolicy.inc:161 ../lib/modules/ppolicy.inc:199 +#: ../lib/modules/ppolicy.inc:466 ../lib/modules/sambaDomain.inc:122 +#: ../lib/modules/sambaDomain.inc:190 ../lib/modules/sambaDomain.inc:213 +#: ../lib/modules/sambaDomain.inc:215 ../lib/modules/sambaDomain.inc:325 +#: ../lib/modules/sambaDomain.inc:648 +msgid "Maximum password age" +msgstr "En büyük parola yaşı" + +#: ../lib/modules/qmailGroup.inc:73 ../lib/modules/qmailGroup.inc:197 +#: ../lib/modules/qmailGroup.inc:201 ../lib/modules/qmailGroup.inc:330 +#: ../lib/modules/qmailGroup.inc:395 ../lib/modules/qmailGroup.inc:418 +#: ../lib/modules/qmailGroup.inc:507 ../lib/modules/qmailGroup.inc:1060 +msgid "Member email addresses" +msgstr "Üye e-posta adresleri" + +#: ../lib/modules/qmailGroup.inc:71 ../lib/modules/qmailGroup.inc:149 +#: ../lib/modules/qmailGroup.inc:153 ../lib/modules/qmailGroup.inc:272 +#: ../lib/modules/qmailGroup.inc:374 ../lib/modules/qmailGroup.inc:509 +#: ../lib/modules/qmailGroup.inc:776 ../lib/modules/qmailGroup.inc:1059 +msgid "Member entries" +msgstr "Üye girdileri" + +#: ../lib/modules/qmailGroup.inc:75 ../lib/modules/qmailGroup.inc:173 +#: ../lib/modules/qmailGroup.inc:177 ../lib/modules/qmailGroup.inc:296 +#: ../lib/modules/qmailGroup.inc:383 ../lib/modules/qmailGroup.inc:508 +#: ../lib/modules/qmailGroup.inc:1061 +msgid "Member filter" +msgstr "Üye filtresi" + +#: ../lib/types/netgroup.inc:94 ../lib/modules/nisnetgroup.inc:88 +#: ../lib/modules/nisnetgroup.inc:92 ../lib/modules/nisnetgroup.inc:125 +#: ../lib/modules/nisnetgroup.inc:135 ../lib/modules/nisnetgroup.inc:279 +#: ../lib/modules/nisnetgroup.inc:578 ../lib/modules/windowsGroup.inc:130 +#: ../lib/modules/windowsGroup.inc:134 ../lib/modules/windowsGroup.inc:203 +#: ../lib/modules/windowsGroup.inc:237 ../lib/modules/windowsGroup.inc:757 +#: ../lib/modules/groupOfNames.inc:80 ../lib/modules/groupOfNames.inc:84 +#: ../lib/modules/groupOfNames.inc:126 ../lib/modules/groupOfNames.inc:134 +#: ../lib/modules/groupOfNames.inc:143 ../lib/modules/groupOfNames.inc:236 +#: ../lib/modules/groupOfNames.inc:640 +msgid "Members" +msgstr "üYELER" + +#: ../lib/modules/groupOfNames.inc:88 ../lib/modules/groupOfNames.inc:154 +msgid "Members are optional" +msgstr "Üyeler seçime bağlı." + +#: ../lib/modules/qmailGroup.inc:87 ../lib/modules/qmailGroup.inc:189 +#: ../lib/modules/qmailGroup.inc:312 ../lib/modules/qmailGroup.inc:389 +#: ../lib/modules/qmailGroup.inc:610 ../lib/modules/qmailGroup.inc:1072 +msgid "Members only" +msgstr "Yanlızca üyeler" + +#: ../lib/modules/qmailUser.inc:101 ../lib/modules/qmailUser.inc:136 +#: ../lib/modules/qmailUser.inc:216 ../lib/modules/qmailUser.inc:309 +#: ../lib/modules/qmailUser.inc:405 ../lib/modules/qmailUser.inc:679 +#: ../lib/modules/qmailUser.inc:1192 +msgid "Message count limit" +msgstr "İleti sayısı limiti" + +#: ../lib/modules/qmailUser.inc:103 ../lib/modules/qmailUser.inc:146 +#: ../lib/modules/qmailUser.inc:220 ../lib/modules/qmailUser.inc:317 +#: ../lib/modules/qmailUser.inc:408 ../lib/modules/qmailUser.inc:690 +#: ../lib/modules/qmailUser.inc:1193 +msgid "Message size limit" +msgstr "İleti büyüklüğü limiti" + +#: ../lib/modules/qmailUser.inc:113 ../lib/modules/qmailUser.inc:164 +#: ../lib/modules/qmailUser.inc:240 ../lib/modules/qmailUser.inc:359 +#: ../lib/modules/qmailUser.inc:423 ../lib/modules/qmailUser.inc:594 +#: ../lib/modules/qmailUser.inc:1196 ../lib/modules/qmailGroup.inc:132 +#: ../lib/modules/qmailGroup.inc:247 ../lib/modules/qmailGroup.inc:365 +#: ../lib/modules/qmailGroup.inc:501 ../lib/modules/qmailGroup.inc:1055 +msgid "Message store" +msgstr "İleti deposu" + +#: ../lib/modules/sambaSamAccount.inc:549 +msgid "Mid-Atlantic" +msgstr "Orta - Atlantik" + +#: ../lib/modules/sambaSamAccount.inc:540 +msgid "Midway Island, Samoa" +msgstr "Midway Adası, Samoa" + +#: ../lib/modules/windowsUser.inc:236 ../lib/modules/inetOrgPerson.inc:383 +msgid "Miller" +msgstr "Miller" + +#: ../lib/modules/sambaDomain.inc:94 ../lib/modules/sambaDomain.inc:183 +#: ../lib/modules/sambaDomain.inc:269 ../lib/modules/sambaDomain.inc:644 +msgid "Minimal password length" +msgstr "En küçük parola uzunluğu" + +#: ../lib/modules/posixGroup.inc:387 ../lib/modules/posixGroup.inc:574 +msgid "Minimum GID number" +msgstr "En küçük GID numarası" + +#: ../lib/modules/posixGroup.inc:574 +msgid "Minimum GID number is invalid or empty!" +msgstr "En küçük GID numarası geçersiz ya da boş!" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:211 ../lib/modules/posixAccount.inc:229 +msgid "Minimum UID number" +msgstr "En küçük UID numarası" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +msgid "Minimum UID number is invalid!" +msgstr "En küçük UID numarası geçersiz!" + +#: ../lib/modules/passwordSelfReset.inc:81 +#: ../lib/modules/passwordSelfReset.inc:205 +msgid "Minimum answer length" +msgstr "En küçük cevap uzunluğu" + +#: ../templates/config/mainmanage.php:345 +msgid "Minimum character classes" +msgstr "En küçük karakter sınıfları" + +#: ../templates/config/mainmanage.php:341 +msgid "Minimum lowercase characters" +msgstr "" + +#: ../templates/config/mainmanage.php:343 +msgid "Minimum numeric characters" +msgstr "En küçük numerik karakterler" + +#: ../lib/types/ppolicyType.inc:78 ../lib/modules/shadowAccount.inc:57 +#: ../lib/modules/shadowAccount.inc:111 ../lib/modules/shadowAccount.inc:164 +#: ../lib/modules/shadowAccount.inc:178 ../lib/modules/shadowAccount.inc:214 +#: ../lib/modules/shadowAccount.inc:323 ../lib/modules/shadowAccount.inc:494 +#: ../lib/modules/ppolicy.inc:77 ../lib/modules/ppolicy.inc:136 +#: ../lib/modules/ppolicy.inc:159 ../lib/modules/ppolicy.inc:191 +#: ../lib/modules/ppolicy.inc:465 ../lib/modules/sambaDomain.inc:118 +#: ../lib/modules/sambaDomain.inc:189 ../lib/modules/sambaDomain.inc:214 +#: ../lib/modules/sambaDomain.inc:317 ../lib/modules/sambaDomain.inc:647 +msgid "Minimum password age" +msgstr "En küçük parola yaşı" + +#: ../templates/config/mainmanage.php:340 ../lib/types/ppolicyType.inc:87 +#: ../lib/modules/ppolicy.inc:113 ../lib/modules/ppolicy.inc:140 +#: ../lib/modules/ppolicy.inc:168 ../lib/modules/ppolicy.inc:243 +#: ../lib/modules/ppolicy.inc:473 +msgid "Minimum password length" +msgstr "En küçük parola uzunluğu" + +#: ../templates/config/mainmanage.php:344 +msgid "Minimum symbolic characters" +msgstr "En küçük sembolik karakterler" + +#: ../templates/config/mainmanage.php:342 +msgid "Minimum uppercase characters" +msgstr "" + +#: ../templates/3rdParty/pla/lib/import_functions.php:429 +msgid "Missing attributes for" +msgstr "için kayıp öznitelikler" + +#: ../templates/3rdParty/pla/lib/import_functions.php:443 +msgid "Missing modify command add, delete or replace" +msgstr "Kayıp yenileme komutunu ekle,sil ya da değiştir" + +#: ../lib/types/user.inc:207 ../lib/modules/inetOrgPerson.inc:72 +#: ../lib/modules/inetOrgPerson.inc:141 ../lib/modules/inetOrgPerson.inc:332 +#: ../lib/modules/inetOrgPerson.inc:502 ../lib/modules/inetOrgPerson.inc:647 +#: ../lib/modules/inetOrgPerson.inc:773 ../lib/modules/inetOrgPerson.inc:777 +#: ../lib/modules/inetOrgPerson.inc:1767 ../lib/modules/inetOrgPerson.inc:2370 +msgid "Mobile number" +msgstr "Cep telefonu numarası" + +#: ../lib/modules/inetOrgPerson.inc:2991 +msgid "Mobile telephone number" +msgstr "Cep telefonu numarası" + +#: ../lib/modules/qmailGroup.inc:79 ../lib/modules/qmailGroup.inc:205 +#: ../lib/modules/qmailGroup.inc:209 ../lib/modules/qmailGroup.inc:338 +#: ../lib/modules/qmailGroup.inc:398 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:510 ../lib/modules/qmailGroup.inc:1063 +msgid "Moderator email addresses" +msgstr "Moderatör e-posta adresleri" + +#: ../lib/modules/qmailGroup.inc:77 ../lib/modules/qmailGroup.inc:157 +#: ../lib/modules/qmailGroup.inc:161 ../lib/modules/qmailGroup.inc:280 +#: ../lib/modules/qmailGroup.inc:377 ../lib/modules/qmailGroup.inc:511 +#: ../lib/modules/qmailGroup.inc:779 ../lib/modules/qmailGroup.inc:1062 +msgid "Moderator entries" +msgstr "Moderatör girdileri" + +#: ../lib/modules/qmailGroup.inc:69 ../lib/modules/qmailGroup.inc:99 +#: ../lib/modules/qmailGroup.inc:193 ../lib/modules/qmailGroup.inc:322 +#: ../lib/modules/qmailGroup.inc:392 ../lib/modules/qmailGroup.inc:596 +#: ../lib/modules/qmailGroup.inc:1058 +msgid "Moderator text" +msgstr "Moderatör metni" + +#: ../lib/modules/qmailGroup.inc:194 +msgid "" +"Moderator text that is used to specify an own approval text used if the list " +"is moderated. The usual %HEADER% magic of qmail-reply etc. can be used here." +msgstr "" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:61 +msgid "Modification not successful!" +msgstr "Değişiklik başarısız!" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:59 +msgid "Modification successful!" +msgstr "Değişiklik başarılı!!" + +#: ../lib/modules/generalInformation.inc:85 +msgid "Modification time" +msgstr "Değişiklik saati" + +#: ../lib/modules/generalInformation.inc:81 +msgid "Modified by" +msgstr "Değiştiren" + +#: ../templates/serverInfo.php:314 ../templates/serverInfo.php:387 +msgid "Modify" +msgstr "Değiştir" + +#: ../templates/serverInfo.php:328 ../templates/serverInfo.php:393 +msgid "Modify RDN" +msgstr "RDN değiştir" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:57 +msgid "Modify group" +msgstr "Grup değiştir" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2110 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2111 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2114 +msgid "Modify group members" +msgstr "Grup üyelerini değiştir" + +#: ../templates/3rdParty/pla/htdocs/import.php:32 +msgid "Modifying" +msgstr "Değiştirme" + +#: ../templates/config/confmodules.php:176 +#: ../templates/config/confmain.php:217 +#: ../templates/config/moduleSettings.php:175 +#: ../templates/config/conftypes.php:194 +#: ../templates/selfService/adminMain.php:398 +msgid "Module settings" +msgstr "Modül ayarları" + +#: ../templates/config/confmodules.php:172 +#: ../templates/config/confmain.php:213 +#: ../templates/config/moduleSettings.php:171 +#: ../templates/config/conftypes.php:190 +msgid "Modules" +msgstr "Modüller" + +#: ../lib/modules/sambaSamAccount.inc:1350 +msgid "Monday" +msgstr "Pazartesi" + +#: ../lib/modules/sambaSamAccount.inc:544 +msgid "Mountain Time (US & Canada)" +msgstr "Sıradağlar Saati (US & Kanada)" + +#: ../lib/modules/quota.inc:98 ../lib/modules/quota.inc:392 +#: ../lib/modules/quota.inc:499 ../lib/modules/quota.inc:626 +#: ../lib/modules/systemQuotas.inc:90 ../lib/modules/systemQuotas.inc:115 +#: ../lib/modules/systemQuotas.inc:375 +msgid "Mountpoint" +msgstr "" + +#: ../lib/modules/systemQuotas.inc:90 ../lib/modules/systemQuotas.inc:91 +msgid "Mountpoint contains invalid characters." +msgstr "" + +#: ../lib/modules/quota.inc:99 +msgid "Mountpoint of device with enabled quotas." +msgstr "" + +#: ../lib/modules/customFields.inc:558 +msgid "Move down" +msgstr "Aşağı taşı" + +#: ../lib/modules/customFields.inc:552 +msgid "Move up" +msgstr "Yukarı taşı" + +#: ../lib/modules/customFields.inc:1671 ../lib/modules/customFields.inc:2800 +msgid "Multi value" +msgstr "Çoklu değer" + +#: ../lib/modules/customFields.inc:2655 +msgid "Multi-select fields must not contain empty values." +msgstr "Çoklu - seçim alanları boş değerler içeremez." + +#: ../lib/modules/zarafaDynamicGroup.inc:69 ../lib/modules/zarafaGroup.inc:72 +#: ../lib/modules/eduPerson.inc:91 ../lib/modules/eduPerson.inc:104 +#: ../lib/modules/eduPerson.inc:116 ../lib/modules/eduPerson.inc:132 +#: ../lib/modules/eduPerson.inc:140 ../lib/modules/zarafaUser.inc:157 +#: ../lib/modules/sudoRole.inc:89 ../lib/modules/sudoRole.inc:94 +#: ../lib/modules/sudoRole.inc:99 ../lib/modules/sudoRole.inc:104 +#: ../lib/modules/sudoRole.inc:109 ../lib/modules/sudoRole.inc:114 +msgid "Multiple values are separated by comma." +msgstr "Virgülle ayrılan çoklu değerler." + +#: ../lib/modules/kolabGroup.inc:85 ../lib/modules/kolabGroup.inc:94 +#: ../lib/modules/kolabGroup.inc:103 ../lib/modules/puppetClient.inc:78 +#: ../lib/modules/puppetClient.inc:90 ../lib/modules/puppetClient.inc:98 +#: ../lib/modules/device.inc:67 ../lib/modules/windowsUser.inc:128 +#: ../lib/modules/windowsUser.inc:164 ../lib/modules/windowsUser.inc:196 +#: ../lib/modules/windowsUser.inc:207 ../lib/modules/kolabUser.inc:140 +#: ../lib/modules/kolabUser.inc:149 ../lib/modules/inetOrgPerson.inc:710 +#: ../lib/modules/inetOrgPerson.inc:730 ../lib/modules/inetOrgPerson.inc:738 +#: ../lib/modules/inetOrgPerson.inc:746 ../lib/modules/inetOrgPerson.inc:754 +#: ../lib/modules/inetOrgPerson.inc:770 ../lib/modules/inetOrgPerson.inc:778 +#: ../lib/modules/inetOrgPerson.inc:786 ../lib/modules/inetOrgPerson.inc:794 +#: ../lib/modules/inetOrgPerson.inc:805 ../lib/modules/inetOrgPerson.inc:825 +#: ../lib/modules/inetOrgPerson.inc:837 ../lib/modules/inetOrgPerson.inc:845 +#: ../lib/modules/inetOrgPerson.inc:853 ../lib/modules/inetOrgPerson.inc:865 +#: ../lib/modules/inetOrgPerson.inc:873 ../lib/modules/inetOrgPerson.inc:889 +#: ../lib/modules/inetOrgPerson.inc:897 ../lib/modules/inetOrgPerson.inc:905 +#: ../lib/modules/systemQuotas.inc:63 ../lib/modules/freeRadius.inc:94 +#: ../lib/modules/qmailGroup.inc:121 ../lib/modules/qmailGroup.inc:129 +#: ../lib/modules/qmailGroup.inc:142 ../lib/modules/qmailGroup.inc:154 +#: ../lib/modules/qmailGroup.inc:162 ../lib/modules/qmailGroup.inc:170 +#: ../lib/modules/qmailGroup.inc:178 ../lib/modules/qmailGroup.inc:186 +#: ../lib/modules/qmailGroup.inc:202 ../lib/modules/qmailGroup.inc:210 +#: ../lib/modules/qmailGroup.inc:218 ../lib/modules/windowsGroup.inc:127 +#: ../lib/modules/groupOfNames.inc:77 +msgid "Multiple values are separated by semicolon." +msgstr "Noktalı virgülle ayrılan çoklu değerler." + +#: ../lib/modules/asteriskAccount.inc:198 +#: ../lib/modules/asteriskAccount.inc:289 +#: ../lib/modules/asteriskAccount.inc:352 +#: ../lib/modules/asteriskAccount.inc:548 +#: ../lib/modules/asteriskAccount.inc:887 +#: ../lib/modules/asteriskAccount.inc:1212 +msgid "Music on hold" +msgstr "Müzik beklemede." + +#: ../lib/modules/asteriskAccount.inc:199 +msgid "Music to play on hold." +msgstr "Çalınacak müzik beklemede." + +#: ../lib/modules/ipHost.inc:86 ../lib/modules/windowsHost.inc:101 +#: ../lib/modules/device.inc:104 ../lib/modules/windowsUser.inc:278 +#: ../lib/modules/inetOrgPerson.inc:578 +msgid "MyCity" +msgstr "MyCity" + +#: ../lib/modules/inetOrgPerson.inc:464 ../lib/modules/inetOrgPerson.inc:472 +msgid "Mycity" +msgstr "Mycity" + +#: ../lib/modules/windowsUser.inc:260 ../lib/modules/inetOrgPerson.inc:448 +msgid "Mystreetname 42" +msgstr "Mystreetname 42" + +#: ../lib/modules/asteriskAccount.inc:154 +#: ../lib/modules/asteriskAccount.inc:267 +#: ../lib/modules/asteriskAccount.inc:341 +#: ../lib/modules/asteriskAccount.inc:468 +#: ../lib/modules/asteriskAccount.inc:785 +#: ../lib/modules/asteriskAccount.inc:1201 +msgid "NAT" +msgstr "NAT" + +#: ../lib/modules/asteriskAccount.inc:155 +msgid "NAT setting for this account." +msgstr "Bu hesap için Nat ayarı." + +#: ../lib/modules/nisnetgroup.inc:60 +msgid "NIS net group" +msgstr "NIS net grup" + +#: ../lib/types/netgroup.inc:62 +msgid "NIS netgroup entries" +msgstr "NIS net grup girdileri" + +#: ../lib/types/netgroup.inc:53 +msgid "NIS netgroups" +msgstr "NIS net grupları" + +#: ../lib/modules/nisObject.inc:40 +msgid "NIS object" +msgstr "NIS nesnesi" + +#: ../lib/types/nisObjectType.inc:155 +#, php-format +msgid "NIS object count: %s" +msgstr "NIS nesne sayısı: %s" + +#: ../lib/types/nisObjectType.inc:48 +msgid "NIS object entries" +msgstr "NIS nesne girdileri" + +#: ../lib/types/nisObjectType.inc:39 +msgid "NIS objects" +msgstr "NIS nesneleri" + +#: ../templates/serverInfo.php:147 ../templates/masscreate.php:288 +#: ../templates/masscreate.php:363 ../templates/schema/schema.php:268 +#: ../lib/types/automountType.inc:86 ../lib/types/automountType.inc:249 +#: ../lib/types/ppolicyType.inc:77 ../lib/modules/device.inc:54 +#: ../lib/modules/device.inc:82 ../lib/modules/device.inc:113 +#: ../lib/modules/device.inc:163 ../lib/modules/device.inc:436 +#: ../lib/modules/nisObject.inc:54 ../lib/modules/nisObject.inc:74 +#: ../lib/modules/nisObject.inc:104 ../lib/modules/nisObject.inc:130 +#: ../lib/modules/nisObject.inc:210 ../lib/modules/ppolicy.inc:73 +#: ../lib/modules/ppolicy.inc:135 ../lib/modules/ppolicy.inc:158 +#: ../lib/modules/ppolicy.inc:183 ../lib/modules/ppolicy.inc:464 +#: ../lib/modules/automount.inc:57 ../lib/modules/automount.inc:73 +#: ../lib/modules/automount.inc:96 ../lib/modules/automount.inc:121 +#: ../lib/modules/automount.inc:193 ../lib/modules/asteriskExtension.inc:815 +#: ../lib/modules/customFields.inc:74 ../lib/modules/customFields.inc:963 +#: ../lib/modules/customFields.inc:1454 ../lib/modules/groupOfNames.inc:199 +msgid "Name" +msgstr "Adres" + +#: ../lib/modules/zarafaAddressList.inc:57 +msgid "Name of the address list which should be created." +msgstr "Oluşturulması gereken adres listesinin adı." + +#: ../help/help.inc:169 +msgid "" +"Name under which the profile will be saved. If a profile with the same name " +"exists, it will be overwritten." +msgstr "" +"Kaydedilecek profil altında yer alan ad. Eğer bir profil aynı isimle varsa, " +"üzerine yazılacak." + +#: ../lib/modules/namedObject.inc:38 +msgid "Named object" +msgstr "İsimlendirilen nesne" + +#: ../lib/modules/dhcp_settings.inc:186 ../lib/modules/dhcp_settings.inc:209 +#: ../lib/modules/dhcp_settings.inc:603 ../lib/modules/dhcp_settings.inc:679 +#: ../lib/modules/freeRadius.inc:81 ../lib/modules/freeRadius.inc:117 +#: ../lib/modules/freeRadius.inc:131 ../lib/modules/freeRadius.inc:194 +#: ../lib/modules/freeRadius.inc:221 ../lib/modules/freeRadius.inc:313 +#: ../lib/modules/freeRadius.inc:617 +msgid "Net mask" +msgstr "Ağ maskesi" + +#: ../lib/modules/dhcp_settings.inc:162 ../lib/modules/dhcp_settings.inc:206 +#: ../lib/modules/dhcp_settings.inc:221 ../lib/modules/dhcp_settings.inc:273 +#: ../lib/modules/dhcp_settings.inc:574 ../lib/modules/dhcp_settings.inc:672 +msgid "Netbios name servers" +msgstr "Netbios ad sunucuları" + +#: ../lib/modules/dhcp_settings.inc:166 ../lib/modules/dhcp_settings.inc:207 +#: ../lib/modules/dhcp_settings.inc:223 ../lib/modules/dhcp_settings.inc:279 +#: ../lib/modules/dhcp_settings.inc:584 ../lib/modules/dhcp_settings.inc:673 +msgid "Netbios node type" +msgstr "Netbios ağ tipi" + +#: ../lib/modules/authorizedServiceObject.inc:180 +msgid "New Authorized Service" +msgstr "Yeni yetkili servis" + +#: ../lib/types/dhcp.inc:118 ../lib/types/dhcp.inc:172 +msgid "New DHCP" +msgstr "Yeni DHCP" + +#: ../lib/modules/ipHost.inc:139 +msgid "New IP address" +msgstr "Yeni IP adresi" + +#: ../lib/modules/ieee802device.inc:114 +msgid "New MAC address" +msgstr "yeni MAC adresi" + +#: ../lib/types/nisObjectType.inc:102 ../lib/types/nisObjectType.inc:157 +msgid "New NIS object" +msgstr "Yeni NIS nesnesi" + +#: ../templates/ou_edit.php:77 +msgid "New OU created successfully." +msgstr "Yeni OU başarıyla yaratıldı" + +#: ../lib/modules/ldapPublicKey.inc:127 +msgid "New SSH public key" +msgstr "Yeni SSH ortak anahtar" + +#: ../lib/modules/windowsUser.inc:284 ../lib/modules/inetOrgPerson.inc:586 +msgid "New York" +msgstr "Newyork" + +#: ../lib/types/zarafaAddressListType.inc:117 +#: ../lib/types/zarafaAddressListType.inc:146 +msgid "New address list" +msgstr "Yeni adres listesi" + +#: ../lib/types/mailAlias.inc:114 ../lib/types/mailAlias.inc:143 +#: ../lib/types/alias.inc:114 ../lib/types/alias.inc:143 +msgid "New alias" +msgstr "Yeni adlar" + +#: ../lib/types/automountType.inc:110 ../lib/types/automountType.inc:217 +msgid "New automount entry" +msgstr "Yeni otomatik girdi" + +#: ../lib/types/automountType.inc:233 ../lib/types/automountType.inc:234 +msgid "New automount map" +msgstr "Yeni otomatik harita" + +#: ../templates/config/profmanage.php:146 +msgid "New default profile set successfully." +msgstr "Yeni varsayılan profil başarıyla ayarlandı." + +#: ../lib/types/smbDomain.inc:114 ../lib/types/smbDomain.inc:169 +msgid "New domain" +msgstr "Yeni erişim alanı" + +#: ../lib/types/asteriskExt.inc:117 ../lib/types/asteriskExt.inc:145 +msgid "New extension" +msgstr "Yeni uzantı" + +#: ../templates/pdfedit/pdfpage.php:620 +msgid "New field" +msgstr "Yeni alan" + +#: ../lib/types/gon.inc:119 ../lib/types/gon.inc:182 +#: ../lib/types/zarafaDynamicGroupType.inc:119 +#: ../lib/types/zarafaDynamicGroupType.inc:167 ../lib/types/group.inc:138 +#: ../lib/types/group.inc:212 ../lib/types/netgroup.inc:116 +#: ../lib/types/netgroup.inc:171 +msgid "New group" +msgstr "Yeni grup" + +#: ../lib/types/host.inc:128 ../lib/types/host.inc:195 +#: ../lib/modules/hostObject.inc:150 +msgid "New host" +msgstr "Yeni ana bilgisayar" + +#: ../lib/modules/inetLocalMailRecipient.inc:156 +msgid "New local address" +msgstr "Yeni yerel adres" + +#: ../templates/config/mainmanage.php:376 +msgid "New master password" +msgstr "Yeni ana parola" + +#: ../templates/config/mainmanage.php:79 +msgid "New master password set successfully." +msgstr "Yeni ana parola başarıyla ayarlandı." + +#: ../lib/lists.inc:114 +msgid "New object" +msgstr "Yeni nesne" + +#: ../templates/ou_edit.php:183 ../help/help.inc:235 +msgid "New organisational unit" +msgstr "Yeni kurumsal birim" + +#: ../templates/config/confmain.php:434 +#: ../lib/modules/sambaSamAccount.inc:2290 +#: ../lib/modules/posixAccount.inc:2426 ../lib/modules/windowsUser.inc:1319 +#: ../lib/modules/passwordSelfReset.inc:926 +msgid "New password" +msgstr "Yeni parola" + +#: ../templates/config/profmanage.php:133 +msgid "New password set successfully." +msgstr "Yeni parola başarıyla düzenlendi." + +#: ../lib/types/ppolicyType.inc:122 ../lib/types/ppolicyType.inc:151 +msgid "New policy" +msgstr "Yeni ilke" + +#: ../templates/config/profmanage.php:260 +#: ../templates/selfService/profManage.php:222 +msgid "New profile name" +msgstr "Yeni profil adı" + +#: ../lib/modules/range.inc:94 ../lib/modules/range.inc:108 +#: ../lib/modules/range.inc:446 +msgid "New range" +msgstr "Yeni aralık" + +#: ../lib/modules/nisMailAlias.inc:177 +msgid "New recipient" +msgstr "Yeni alıcı" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:81 +msgid "New required attributes" +msgstr "Yeni gerekli öznitelikler" + +#: ../templates/pdfedit/pdfpage.php:588 +msgid "New section" +msgstr "Yeni bölüm" + +#: ../lib/types/sudo.inc:106 ../lib/types/sudo.inc:161 +msgid "New sudo role" +msgstr "Yeni sudo rolü" + +#: ../lib/types/user.inc:172 ../lib/types/user.inc:532 +msgid "New user" +msgstr "Yeni kullanıcı adı" + +#: ../lib/modules/inetOrgPerson.inc:2299 +msgid "New user certificate" +msgstr "Yeni kullanıcı sertifikası" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "New value" +msgstr "Yeni değer" + +#: ../lib/modules/sambaDomain.inc:78 ../lib/modules/sambaDomain.inc:158 +#: ../lib/modules/sambaDomain.inc:179 ../lib/modules/sambaDomain.inc:354 +#: ../lib/modules/sambaDomain.inc:640 +msgid "Next RID" +msgstr "Sonraki RID" + +#: ../lib/modules/sambaDomain.inc:205 ../lib/modules/sambaDomain.inc:206 +msgid "Next RID is not a number!" +msgstr "Sonraki RID bir sayı değil!" + +#: ../lib/modules/sambaDomain.inc:79 +msgid "Next RID to use when creating accounts (only used by Winbind)." +msgstr "" +"Hesaplar oluşturulurken kullanılacak diğer RID (sadece Winbind tarafından " +"kullanılır)." + +#: ../lib/modules/sambaDomain.inc:87 +msgid "Next RID to use when creating group accounts (only used by Winbind)." +msgstr "" +"Grup hesapları oluşturulurken kullanılacak diğer RID (sadece Winbind " +"tarafından kullanılır)." + +#: ../lib/modules/sambaDomain.inc:83 +msgid "Next RID to use when creating user accounts (only used by Winbind)." +msgstr "" +"Kullanıcı hesapları oluştururken kullanılacak diğer RID ( sadece Winbind " +"tarafından kullanılır)." + +#: ../lib/modules/sambaDomain.inc:86 ../lib/modules/sambaDomain.inc:170 +#: ../lib/modules/sambaDomain.inc:181 ../lib/modules/sambaDomain.inc:370 +#: ../lib/modules/sambaDomain.inc:642 +msgid "Next group RID" +msgstr "Sonraki grup RID" + +#: ../lib/modules/sambaDomain.inc:209 ../lib/modules/sambaDomain.inc:210 +msgid "Next group RID is not a number!" +msgstr "Sonraki grup RID bir sayı değil!" + +#: ../lib/modules/sambaDomain.inc:82 ../lib/modules/sambaDomain.inc:164 +#: ../lib/modules/sambaDomain.inc:180 ../lib/modules/sambaDomain.inc:362 +#: ../lib/modules/sambaDomain.inc:641 +msgid "Next user RID" +msgstr "Sonraki kullanıcı RID" + +#: ../lib/modules/sambaDomain.inc:207 ../lib/modules/sambaDomain.inc:208 +msgid "Next user RID is not a number!" +msgstr "Sonraki kullanıcı RID bir sayı değil!" + +#: ../lib/modules/eduPerson.inc:94 ../lib/modules/eduPerson.inc:181 +#: ../lib/modules/eduPerson.inc:219 ../lib/modules/eduPerson.inc:346 +#: ../lib/modules/eduPerson.inc:769 +msgid "Nick names" +msgstr "Takma adlar" + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/qmailGroup.inc:314 +#: ../lib/modules/qmailGroup.inc:315 ../lib/modules/qmailGroup.inc:316 +#: ../lib/modules/qmailGroup.inc:356 ../lib/modules/qmailGroup.inc:357 +#: ../lib/modules/qmailGroup.inc:358 ../lib/modules/qmailGroup.inc:1027 +#: ../lib/modules/qmailGroup.inc:1068 ../lib/modules/qmailGroup.inc:1074 +#: ../lib/modules/imapAccess.inc:112 +msgid "No" +msgstr "Hayır" + +#: ../lib/types/asteriskExt.inc:144 +msgid "No Asterisk extensions found." +msgstr "Asterisk uzantıları bulunamadı." + +#: ../lib/types/dhcp.inc:171 +msgid "No DHCPs found!" +msgstr "DHCP bulunamadı!" + +#: ../lib/types/nisObjectType.inc:156 +msgid "No NIS objects found!" +msgstr "NIS nesneleri bulunamadı!" + +#: ../templates/3rdParty/pla/lib/Template.php:558 +#: ../templates/3rdParty/pla/lib/Template.php:559 +msgid "No RDN attribute was selected." +msgstr "RDN özniteliği seçilmedi" + +#: ../lib/modules/sambaSamAccount.inc:1088 +#: ../lib/modules/sambaGroupMapping.inc:334 +msgid "No Samba 3 domains found in LDAP! Please create one first." +msgstr "" +"Samba 3 etki alanarı LDAP içerisinde bulunamadı! Lütfen ilk olarak bir etki " +"alanı oluşturun." + +#: ../lib/modules/posixAccount.inc:570 ../lib/modules/posixAccount.inc:1285 +msgid "No Unix groups found in LDAP! Please create one first." +msgstr "" +"Unix grupları LDAP içerisinde bulunamadı! Lütfen ilk olarak bir grup " +"oluşturun." + +#: ../lib/modules/qmailUser.inc:42 +msgid "No access" +msgstr "Erişim yok" + +#: ../lib/types/zarafaAddressListType.inc:145 +msgid "No address list found!" +msgstr "Adres listesi bulunamadı!" + +#: ../lib/types/mailAlias.inc:142 ../lib/types/alias.inc:142 +msgid "No aliases found!" +msgstr "Takma adlar bulunamadı!" + +#: ../lib/types/automountType.inc:216 +msgid "No automount entries found!" +msgstr "Otomatik girdiler bulunamadı!" + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:36 +msgid "No binary data available" +msgstr "Uygun olan ikili veri yok" + +#: ../templates/initsuff.php:164 +msgid "No changes were made." +msgstr "Değişiklikler yapılmadı" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:83 +#, php-format +msgid "No current value for attribute %s." +msgstr "Öznitelik için varsayılan değer yok %s" + +#: ../templates/login.php:104 +msgid "" +"No default profile set. Please set it in the server profile configuration." +msgstr "" +"Varsayılan profil ayarlanamadı. Lütfen sunucu profili yapılandırması " +"içerisinde ayarlayınız." + +#: ../templates/schema/schema.php:144 +msgid "No description" +msgstr "Tanımlama yok" + +#: ../lib/types/smbDomain.inc:168 +msgid "No domains found!" +msgstr "Etki alanları bulunamadı!" + +#: ../lib/modules/passwordSelfReset.inc:1404 +msgid "No email address found." +msgstr "E-posta adresi bulunamadı." + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:20 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:21 +msgid "No entry was selected to delete" +msgstr "Silmek için girdi seçilmedi" + +#: ../lib/modules/ldapPublicKey.inc:513 ../lib/modules/inetOrgPerson.inc:3632 +#: ../lib/modules/customFields.inc:3130 +msgid "No file received." +msgstr "Dosya alınmadı" + +#: ../templates/config/mainmanage.php:127 ../lib/modules/ldapPublicKey.inc:102 +#: ../lib/modules/inetOrgPerson.inc:96 ../lib/modules/customFields.inc:3065 +msgid "No file selected." +msgstr "Dosya seçilmedi" + +#: ../lib/modules/qmailUser.inc:48 +msgid "No forwarding" +msgstr "İletim yok" + +#: ../lib/modules/posixGroup.inc:572 ../lib/modules/posixAccount.inc:104 +msgid "No free ID-Number!" +msgstr "Serbest ID-Numarası yok!" + +#: ../lib/types/gon.inc:181 ../lib/types/zarafaDynamicGroupType.inc:166 +#: ../lib/types/group.inc:211 ../lib/types/netgroup.inc:170 +msgid "No groups found!" +msgstr "Gruplar bulunamadı!" + +#: ../lib/types/host.inc:194 +msgid "No hosts found!" +msgstr "Ana bilgisayarlar bulunamadı!" + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:59 +msgid "No image available" +msgstr "Uygun görüntü yok" + +#: ../templates/3rdParty/pla/lib/import_functions.php:94 +msgid "No import input" +msgstr "" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1354 +msgid "No internal attributes" +msgstr "İç öznitelikler yok" + +#: ../templates/tests/lamdaemonTest.php:195 +msgid "No lamdaemon path set, please update your LAM configuration settings." +msgstr "" + +#: ../templates/tests/lamdaemonTest.php:97 +#: ../templates/tests/lamdaemonTest.php:190 +msgid "No lamdaemon server set, please update your LAM configuration settings." +msgstr "" + +#: ../lib/modules/qmailUser.inc:49 +msgid "No local delivery" +msgstr "Yerel gönderim yok" + +#: ../templates/config/mainmanage.php:356 +msgid "No logging" +msgstr "Günlük yok" + +#: ../templates/pdfedit/pdfpage.php:429 +msgid "No logo" +msgstr "Logo yok" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:157 +msgid "No new attributes available for this entry" +msgstr "Bu girdi için uygun yeni öznitelikler yok" + +#: ../templates/config/conftypes.php:290 ../help/help.inc:160 +msgid "No new entries" +msgstr "Yeni girdiler yok" + +#: ../lib/lists.inc:113 +msgid "No objects found!" +msgstr "Nesneler bulunamadı!" + +#: ../templates/config/confmodules.php:406 +msgid "No or more than one base module selected!" +msgstr "" + +#: ../templates/config/confsave.php:53 ../templates/config/confmain.php:55 +#: ../lib/modules/passwordSelfReset.inc:1033 +msgid "No password was entered!" +msgstr "Parola girilmedi!" + +#: ../lib/types/ppolicyType.inc:150 +msgid "No policies found!" +msgstr "İlkeler bulunamadı!" + +#: ../templates/tests/schemaTest.php:70 +msgid "No problems found." +msgstr "Problemler bulunamadu" + +#: ../lib/modules/qmailUser.inc:50 +msgid "No program delivery" +msgstr "Program gönderilemedi" + +#: ../lib/modules/customScripts.inc:181 +msgid "No scripts to run." +msgstr "Komutlar çalıştırılamadı." + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "No section text specified" +msgstr "" + +#: ../lib/modules/passwordSelfReset.inc:1055 +msgid "No security answer found." +msgstr "Güvenlik yanıtı bulunamadı." + +#: ../templates/config/conflogin.php:137 +msgid "No server profiles found. Please create one." +msgstr "Sunucu profilleri bulunamadı. Lütfen bir tane oluşturun." + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "No static text specified" +msgstr "" + +#: ../lib/modules/dhcp_settings.inc:311 +msgid "No subnet entered." +msgstr "Alt ağ girilmedi" + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:45 +msgid "No such entry" +msgstr "Böyle bir girdi yok" + +#: ../templates/3rdParty/pla/htdocs/compare.php:24 +#: ../templates/3rdParty/pla/htdocs/compare.php:27 +#: ../templates/3rdParty/pla/htdocs/delete.php:19 +msgid "No such entry." +msgstr "Böyle bir girdi yok." + +#: ../templates/schema/schema.php:438 +#, php-format +msgid "No such schema item: \"%s\"" +msgstr "Böyle bir şema öğesi yok: \"%s\"" + +#: ../lib/types/sudo.inc:160 +msgid "No sudo roles found!" +msgstr "Sudo rolleri bulunamadu" + +#: ../lib/types/user.inc:531 +msgid "No users found!" +msgstr "Kullanıcılar bulunmadı!" + +#: ../lib/modules/qmailUser.inc:58 +msgid "None" +msgstr "Hiçbiri" + +#: ../help/help.inc:68 +msgid "Note" +msgstr "Not" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:125 +msgid "" +"Note: You may be required to enter new attributes that these object classes " +"require" +msgstr "" + +#: ../lib/modules/windowsGroup.inc:114 ../lib/modules/windowsGroup.inc:181 +#: ../lib/modules/windowsGroup.inc:236 ../lib/modules/windowsGroup.inc:326 +#: ../lib/modules/windowsGroup.inc:715 +msgid "Notes" +msgstr "Notlar" + +#: ../templates/3rdParty/pla/lib/export_functions.php:450 +msgid "Nothing to export" +msgstr "" + +#: ../templates/config/mainmanage.php:352 +msgid "Notice" +msgstr "Uyarı" + +#: ../templates/delete.php:103 +msgid "Number of child entries" +msgstr "Alt basamak girdilerinin numarası" + +#: ../lib/modules/customFields.inc:115 +msgid "Number of columns in text area." +msgstr "Metin alanında yer alan kolonların sayısı" + +#: ../lib/modules/shadowAccount.inc:175 +msgid "" +"Number of days a user can login even his password has expired. -1=always." +msgstr "" + +#: ../lib/modules/shadowAccount.inc:179 +msgid "" +"Number of days a user has to wait until he is allowed to change his password " +"again. If set value must be >0." +msgstr "" + +#: ../lib/modules/shadowAccount.inc:183 +msgid "" +"Number of days after a user has to change his password again. If set value " +"must be >0." +msgstr "" + +#: ../lib/modules/mitKerberos.inc:122 +msgid "Number of failed logins." +msgstr "Başarısız oturum açma sayısı." + +#: ../lib/modules/sambaDomain.inc:131 +msgid "Number of minutes after which the bad logon attempts are reset." +msgstr "" + +#: ../lib/modules/customFields.inc:119 +msgid "Number of rows in text area." +msgstr "Metin alanındaki satırların sayısı." + +#: ../lib/modules/ppolicy.inc:78 ../lib/modules/sambaDomain.inc:119 +msgid "" +"Number of seconds after the user is allowed to change his password again." +msgstr "" + +#: ../lib/modules/ppolicy.inc:82 ../lib/modules/sambaDomain.inc:123 +msgid "Number of seconds after which the user must change his password." +msgstr "" + +#: ../templates/schema/schema.php:147 ../templates/schema/schema.php:344 +msgid "OID" +msgstr "OID" + +#: ../templates/ou_edit.php:83 +msgid "OU already exists!" +msgstr "OU zaten var!" + +#: ../templates/ou_edit.php:94 +msgid "OU deleted successfully." +msgstr "OU başarıyla silindi" + +#: ../templates/ou_edit.php:152 ../lib/tools/ouEditor.inc:44 +msgid "OU editor" +msgstr "OU düzenleyici" + +#: ../templates/ou_edit.php:87 +msgid "OU is invalid!" +msgstr "OU geçersiz !" + +#: ../templates/ou_edit.php:131 +msgid "OU is not empty or invalid!" +msgstr "OU boş ya da geçersiz" + +#: ../help/help.inc:235 ../help/help.inc:237 +msgid "OU-Editor" +msgstr "OU- düzenleyici" + +#: ../templates/schema/schema.php:65 ../templates/schema/schema.php:66 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1324 +#: ../lib/modules/selfRegistration.inc:64 +#: ../lib/modules/selfRegistration.inc:113 ../lib/modules/customFields.inc:70 +#: ../lib/modules/customFields.inc:496 +msgid "Object classes" +msgstr "Nesne sınıfları" + +#: ../lib/lists.inc:112 +#, php-format +msgid "Object count: %s" +msgstr "Nesne sayısı: %s" + +#: ../templates/schema/schema.php:152 ../templates/schema/schema.php:283 +msgid "Obsolete" +msgstr "Geçersiz" + +#: ../lib/modules/sambaDomain.inc:282 ../lib/modules/sambaDomain.inc:291 +#: ../lib/modules/sambaDomain.inc:300 ../lib/modules/sambaDomain.inc:653 +#: ../lib/modules/sambaDomain.inc:658 ../lib/modules/sambaDomain.inc:663 +msgid "Off" +msgstr "Kapat" + +#: ../lib/modules/windowsUser.inc:131 ../lib/modules/windowsUser.inc:288 +#: ../lib/modules/windowsUser.inc:389 ../lib/modules/windowsUser.inc:411 +#: ../lib/modules/windowsUser.inc:532 ../lib/modules/windowsUser.inc:1224 +#: ../lib/modules/windowsUser.inc:1332 ../lib/modules/inetOrgPerson.inc:145 +#: ../lib/modules/inetOrgPerson.inc:182 ../lib/modules/inetOrgPerson.inc:324 +#: ../lib/modules/inetOrgPerson.inc:600 ../lib/modules/inetOrgPerson.inc:635 +#: ../lib/modules/inetOrgPerson.inc:860 ../lib/modules/inetOrgPerson.inc:864 +#: ../lib/modules/inetOrgPerson.inc:1673 ../lib/modules/inetOrgPerson.inc:2379 +#: ../lib/modules/inetOrgPerson.inc:3112 +msgid "Office name" +msgstr "Ofis adı" + +#: ../templates/lists/changePassword.php:312 +#: ../templates/lists/changePassword.php:341 +#: ../templates/lists/changePassword.php:382 +#: ../templates/lists/changePassword.php:413 +#: ../templates/tests/lamdaemonTest.php:92 ../templates/ou_edit.php:191 +#: ../templates/ou_edit.php:205 ../templates/masscreate.php:206 +#: ../templates/config/profmanage.php:253 +#: ../templates/config/profmanage.php:265 +#: ../templates/config/profmanage.php:274 +#: ../templates/config/profmanage.php:291 +#: ../templates/config/profmanage.php:300 +#: ../templates/config/profmanage.php:302 +#: ../templates/config/mainmanage.php:388 +#: ../templates/config/conflogin.php:172 ../templates/config/mainlogin.php:165 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminLogin.php:165 +#: ../templates/selfService/adminMain.php:545 +#: ../templates/selfService/adminMain.php:598 +#: ../templates/pdfedit/pdfmain.php:195 ../templates/pdfedit/pdfmain.php:202 +#: ../templates/pdfedit/pdfmain.php:208 +#: ../templates/profedit/profilemain.php:197 +#: ../templates/profedit/profilemain.php:203 +#: ../templates/profedit/profilemain.php:209 +#: ../lib/types/automountType.inc:234 ../lib/types/user.inc:304 +#: ../lib/modules/selfRegistration.inc:384 +#: ../lib/modules/zarafaContact.inc:422 ../lib/modules/zarafaGroup.inc:491 +#: ../lib/modules/device.inc:306 ../lib/modules/sambaSamAccount.inc:1406 +#: ../lib/modules/sambaSamAccount.inc:1541 ../lib/modules/zarafaUser.inc:949 +#: ../lib/modules/zarafaUser.inc:1000 ../lib/modules/sambaGroupMapping.inc:495 +#: ../lib/modules/nisnetgroup.inc:472 ../lib/modules/nisnetgroup.inc:482 +#: ../lib/modules/asteriskExtension.inc:477 ../lib/modules/aliasEntry.inc:139 +#: ../lib/modules/aliasEntry.inc:159 ../lib/modules/qmailGroup.inc:855 +#: ../lib/modules/imapAccess.inc:275 ../lib/modules/passwordSelfReset.inc:741 +#: ../lib/modules/passwordSelfReset.inc:960 +#: ../lib/modules/windowsGroup.inc:557 ../lib/modules/groupOfNames.inc:385 +#: ../lib/modules/groupOfNames.inc:520 ../lib/modules/nisMailAlias.inc:275 +#: ../lib/modules/nisMailAlias.inc:283 ../lib/lists.inc:703 +#: ../lib/lists.inc:785 ../lib/modules.inc:1199 +msgid "Ok" +msgstr "Tamam" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:98 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +msgid "Old value" +msgstr "Eski değer" + +#: ../lib/modules/sambaDomain.inc:282 ../lib/modules/sambaDomain.inc:291 +#: ../lib/modules/sambaDomain.inc:300 ../lib/modules/sambaDomain.inc:654 +#: ../lib/modules/sambaDomain.inc:659 ../lib/modules/sambaDomain.inc:664 +msgid "On" +msgstr "Aç" + +#: ../lib/modules/sambaSamAccount.inc:236 +#: ../lib/modules/sambaSamAccount.inc:374 +#: ../lib/modules/sambaSamAccount.inc:1527 +#: ../lib/modules/sambaSamAccount.inc:1937 +msgid "On broken or timed out connection" +msgstr "" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:139 +#: ../templates/3rdParty/pla/htdocs/export_form.php:32 +msgid "One (one level beneath base)" +msgstr "" + +#: ../lib/modules/range.inc:107 ../lib/modules/fixed_ip.inc:113 +msgid "One or more errors occured. The invalid fields are marked." +msgstr "Bir ya da daha fazla hata oluştu. Geçersiz alanlar işaretlendi." + +#: ../templates/3rdParty/pla/htdocs/copy.php:98 +#: ../templates/3rdParty/pla/htdocs/copy.php:155 +#, php-format +msgid "Operation not successful. DN %s has not been created." +msgstr "Operasyon başarısız. DN %s oluşturulamadı." + +#: ../templates/serverInfo.php:277 ../templates/serverInfo.php:367 +msgid "Operation statistics" +msgstr "İşlem istatistikleri" + +#: ../templates/3rdParty/pla/htdocs/copy.php:95 +#: ../templates/3rdParty/pla/htdocs/copy.php:153 +#, php-format +msgid "Operation successful. DN %s has been created." +msgstr "İşlem başarılı . DN %s oluşturuldu." + +#: ../templates/schema/schema.php:384 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1575 +msgid "Optional attributes" +msgstr "Seçeneğe bağlı öznitelikler" + +#: ../lib/types/sudo.inc:83 ../lib/modules/mitKerberos.inc:409 +#: ../lib/modules/zarafaDynamicGroup.inc:260 +#: ../lib/modules/zarafaContact.inc:230 ../lib/modules/zarafaGroup.inc:274 +#: ../lib/modules/posixAccount.inc:238 ../lib/modules/zarafaUser.inc:603 +#: ../lib/modules/windowsUser.inc:542 ../lib/modules/kolabUser.inc:347 +#: ../lib/modules/sudoRole.inc:83 ../lib/modules/sudoRole.inc:112 +#: ../lib/modules/sudoRole.inc:164 ../lib/modules/sudoRole.inc:178 +#: ../lib/modules/sudoRole.inc:187 ../lib/modules/sudoRole.inc:399 +#: ../lib/modules/sudoRole.inc:689 ../lib/modules/asteriskExtension.inc:115 +#: ../lib/modules/asteriskVoicemail.inc:106 +#: ../lib/modules/asteriskVoicemail.inc:116 +#: ../lib/modules/asteriskVoicemail.inc:133 +#: ../lib/modules/asteriskVoicemail.inc:181 +#: ../lib/modules/asteriskVoicemail.inc:273 +#: ../lib/modules/asteriskVoicemail.inc:394 ../lib/modules/qmailGroup.inc:604 +#: ../lib/modules/heimdalKerberos.inc:336 +msgid "Options" +msgstr "Seçenekler" + +#: ../lib/modules/asteriskVoicemail.inc:107 +msgid "Options for Asterisk voicemail account (e.g. sendvoicemail=yes)." +msgstr "Asterisk sesli posta hesabı için seçenekler" + +#: ../lib/modules/selfRegistration.inc:121 +msgid "Options four and five are used for input validation." +msgstr "" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:39 +msgid "Or paste your LDIF here" +msgstr "" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:166 +msgid "Order by" +msgstr "Düzenleyen" + +#: ../templates/schema/schema.php:171 +msgid "Ordering" +msgstr "Düzenleme" + +#: ../lib/modules/eduPerson.inc:119 ../lib/modules/eduPerson.inc:193 +#: ../lib/modules/eduPerson.inc:220 ../lib/modules/eduPerson.inc:238 +#: ../lib/modules/eduPerson.inc:403 ../lib/modules/eduPerson.inc:772 +#: ../lib/modules/inetOrgPerson.inc:206 ../lib/modules/inetOrgPerson.inc:352 +#: ../lib/modules/inetOrgPerson.inc:568 ../lib/modules/inetOrgPerson.inc:677 +#: ../lib/modules/inetOrgPerson.inc:892 ../lib/modules/inetOrgPerson.inc:896 +#: ../lib/modules/inetOrgPerson.inc:2021 ../lib/modules/inetOrgPerson.inc:2384 +msgid "Organisation" +msgstr "Organizasyon" + +#: ../lib/modules/inetOrgPerson.inc:203 ../lib/modules/inetOrgPerson.inc:350 +#: ../lib/modules/inetOrgPerson.inc:560 ../lib/modules/inetOrgPerson.inc:680 +#: ../lib/modules/inetOrgPerson.inc:884 ../lib/modules/inetOrgPerson.inc:888 +#: ../lib/modules/inetOrgPerson.inc:1991 ../lib/modules/inetOrgPerson.inc:2383 +msgid "Organisational unit" +msgstr "Kurumsal birim" + +#: ../lib/modules/eduPerson.inc:127 ../lib/modules/eduPerson.inc:131 +#: ../lib/modules/eduPerson.inc:205 ../lib/modules/eduPerson.inc:221 +#: ../lib/modules/eduPerson.inc:422 ../lib/modules/eduPerson.inc:774 +msgid "Organisational units" +msgstr "Kurumsal birimler" + +#: ../lib/modules/eduPerson.inc:242 +msgid "Organisational units contains an invalid entry." +msgstr "Kurumsal birimler geçersiz bir girdi içeriyor." + +#: ../templates/config/confmain.php:317 +msgid "Other" +msgstr "Diğer" + +#: ../lib/modules/windowsUser.inc:123 ../lib/modules/windowsUser.inc:127 +#: ../lib/modules/windowsUser.inc:312 ../lib/modules/windowsUser.inc:388 +#: ../lib/modules/windowsUser.inc:453 ../lib/modules/windowsUser.inc:538 +#: ../lib/modules/windowsUser.inc:1223 +msgid "Other telephone numbers" +msgstr "Diğer telefon numaraları" + +#: ../lib/modules/windowsUser.inc:159 ../lib/modules/windowsUser.inc:163 +#: ../lib/modules/windowsUser.inc:324 ../lib/modules/windowsUser.inc:396 +#: ../lib/modules/windowsUser.inc:540 ../lib/modules/windowsUser.inc:1231 +msgid "Other web sites" +msgstr "Diğer web siteleri" + +#: ../lib/modules/customScripts.inc:77 ../lib/modules/customScripts.inc:89 +#: ../lib/modules/customScripts.inc:98 +msgid "Output may contain HTML" +msgstr "Çıktı HTML içerebilir" + +#: ../lib/modules/customScripts.inc:230 ../lib/modules/customScripts.inc:520 +#, php-format +msgid "Output of command \"%s\" with return code %s" +msgstr "" + +#: ../templates/serverInfo.php:168 +msgid "Overlays" +msgstr "Yer paylaşımı" + +#: ../lib/modules/zarafaUser.inc:82 +msgid "Override default quota settings." +msgstr "" + +#: ../templates/config/confmain.php:309 ../lib/types/asteriskExt.inc:96 +#: ../lib/types/asteriskExt.inc:158 +msgid "Owner" +msgstr "Sahip" + +#: ../lib/types/gon.inc:94 ../lib/modules/device.inc:62 +#: ../lib/modules/device.inc:66 ../lib/modules/device.inc:96 +#: ../lib/modules/device.inc:121 ../lib/modules/device.inc:186 +#: ../lib/modules/device.inc:442 ../lib/modules/groupOfNames.inc:72 +#: ../lib/modules/groupOfNames.inc:76 ../lib/modules/groupOfNames.inc:118 +#: ../lib/modules/groupOfNames.inc:149 ../lib/modules/groupOfNames.inc:162 +#: ../lib/modules/groupOfNames.inc:213 ../lib/modules/groupOfNames.inc:628 +msgid "Owners" +msgstr "Sahipler" + +#: ../lib/modules/dhcp_settings.inc:97 +msgid "P-Node (0x02)" +msgstr "P- ağı (0x02)" + +#: ../lib/modules/fixed_ip.inc:88 ../lib/modules/fixed_ip.inc:354 +#: ../lib/modules/fixed_ip.inc:559 +msgid "PC name" +msgstr "Bilgisayar adı" + +#: ../lib/modules/windowsHost.inc:89 +msgid "PC01" +msgstr "PC01" + +#: ../templates/pdfedit/pdfpage.php:445 ../templates/pdfedit/pdfmain.php:84 +#: ../lib/tools/pdfEdit.inc:44 +msgid "PDF editor" +msgstr "PDF düzenleyici" + +#: ../templates/masscreate.php:269 ../templates/pdfedit/pdfmain.php:272 +#: ../lib/lists.inc:681 ../help/help.inc:184 +msgid "PDF structure" +msgstr "PDF yapısı" + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "PDF structure name not valid" +msgstr "PDF yapısının adı geçersiz" + +#: ../templates/pdfedit/pdfmain.php:155 +msgid "PDF structure was successfully saved." +msgstr "PDF yapısı başarıyla kaydedildi." + +#: ../templates/pdfedit/pdfmain.php:239 +msgid "PDF structures" +msgstr "PDF yapıları" + +#: ../templates/serverInfo.php:264 +msgid "PDUs sent" +msgstr "PDUs gönderildi" + +#: ../lib/modules/zarafaUser.inc:347 ../lib/modules/zarafaUser.inc:677 +#: ../lib/modules/zarafaUser.inc:1400 +msgid "POP3" +msgstr "POP3" + +#: ../templates/lists/changePassword.php:370 +#: ../templates/lists/changePassword.php:401 ../lib/types/user.inc:377 +#: ../lib/types/user.inc:409 +msgid "PPolicy" +msgstr "İlke" + +#: ../lib/modules/sambaSamAccount.inc:543 +msgid "Pacific Time (US & Canada)" +msgstr "Pasifik saati (US & Kanada)" + +#: ../lib/modules/dhcp_settings.inc:159 +msgid "" +"Packets are sent to the default gateway if the receiver does not reside in " +"the same network. The default gateway routes them to the target network." +msgstr "" + +#: ../templates/selfService/adminMain.php:454 ../help/help.inc:214 +msgid "Page header" +msgstr "Sayfa üst bilgisi" + +#: ../templates/selfService/adminMain.php:397 +msgid "Page layout" +msgstr "Sayfa anahat düzeni" + +#: ../lib/modules/asteriskVoicemail.inc:102 +#: ../lib/modules/asteriskVoicemail.inc:132 +#: ../lib/modules/asteriskVoicemail.inc:175 +#: ../lib/modules/asteriskVoicemail.inc:267 +#: ../lib/modules/asteriskVoicemail.inc:392 +msgid "Pager" +msgstr "Çağrı" + +#: ../lib/modules/asteriskVoicemail.inc:103 +msgid "Pager number for Asterisk voicemail." +msgstr "Asterisk sesli postası içinçağrı numarası" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:35 +msgid "Parent DN" +msgstr "Üst DN" + +#: ../lib/modules/puppetClient.inc:81 ../lib/modules/puppetClient.inc:127 +#: ../lib/modules/puppetClient.inc:147 ../lib/modules/puppetClient.inc:258 +#: ../lib/modules/puppetClient.inc:424 ../lib/modules/puppetClient.inc:459 +msgid "Parent node" +msgstr "Üst ağ" + +#: ../lib/modules/puppetClient.inc:183 +msgid "Parent node not found." +msgstr "Üst ağ bulunamadı." + +#: ../templates/schema/schema.php:366 +msgid "Parent to" +msgstr "" + +#: ../templates/3rdParty/pla/htdocs/import.php:98 +msgid "Parse error" +msgstr "Çözümleme hatası" + +#: ../templates/lists/changePassword.php:328 ../templates/login.php:383 +#: ../templates/selfService/selfServiceLogin.php:275 +#: ../lib/selfService.inc:373 ../lib/modules/mitKerberos.inc:149 +#: ../lib/modules/mitKerberos.inc:235 ../lib/modules/mitKerberos.inc:250 +#: ../lib/modules/mitKerberos.inc:796 ../lib/modules/mitKerberos.inc:799 +#: ../lib/modules/selfRegistration.inc:349 +#: ../lib/modules/selfRegistration.inc:421 +#: ../lib/modules/selfRegistration.inc:424 +#: ../lib/modules/selfRegistration.inc:427 +#: ../lib/modules/asteriskAccount.inc:106 +#: ../lib/modules/asteriskAccount.inc:387 ../lib/modules/posixGroup.inc:203 +#: ../lib/modules/posixGroup.inc:569 ../lib/modules/sambaSamAccount.inc:105 +#: ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:243 +#: ../lib/modules/sambaSamAccount.inc:412 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/posixAccount.inc:110 ../lib/modules/posixAccount.inc:178 +#: ../lib/modules/posixAccount.inc:325 ../lib/modules/posixAccount.inc:411 +#: ../lib/modules/posixAccount.inc:511 ../lib/modules/posixAccount.inc:1398 +#: ../lib/modules/posixAccount.inc:1764 ../lib/modules/posixAccount.inc:1767 +#: ../lib/modules/windowsUser.inc:198 ../lib/modules/windowsUser.inc:222 +#: ../lib/modules/windowsUser.inc:405 ../lib/modules/windowsUser.inc:419 +#: ../lib/modules/windowsUser.inc:465 ../lib/modules/windowsUser.inc:466 +#: ../lib/modules/windowsUser.inc:1262 ../lib/modules/windowsUser.inc:1265 +#: ../lib/modules/inetOrgPerson.inc:908 ../lib/modules/inetOrgPerson.inc:2081 +#: ../lib/modules/inetOrgPerson.inc:2520 +#: ../lib/modules/asteriskVoicemail.inc:90 +#: ../lib/modules/asteriskVoicemail.inc:156 +#: ../lib/modules/customFields.inc:1928 ../lib/modules/heimdalKerberos.inc:117 +#: ../lib/modules/heimdalKerberos.inc:204 +#: ../lib/modules/heimdalKerberos.inc:216 +#: ../lib/modules/heimdalKerberos.inc:692 +#: ../lib/modules/heimdalKerberos.inc:695 ../lib/modules.inc:1040 +#: ../help/help.inc:182 +msgid "Password" +msgstr "Parola" + +#: ../lib/modules/sambaSamAccount.inc:284 +#: ../lib/modules/sambaSamAccount.inc:1140 ../lib/modules/windowsUser.inc:189 +#: ../lib/modules/windowsUser.inc:354 ../lib/modules/windowsUser.inc:403 +#: ../lib/modules/windowsUser.inc:1252 +msgid "Password change at next login" +msgstr "Sonraki oturum açmasa parola değiştirme" + +#: ../lib/modules/mitKerberos.inc:141 ../lib/modules/mitKerberos.inc:254 +#: ../lib/modules/heimdalKerberos.inc:111 +#: ../lib/modules/heimdalKerberos.inc:220 +msgid "Password change command" +msgstr "Parola değiştir komutu" + +#: ../templates/lists/changePassword.php:281 +msgid "Password change options" +msgstr "Parola değiştirme seçenekleri" + +#: ../lib/modules/ppolicyUser.inc:52 ../lib/modules/ppolicyUser.inc:67 +#: ../lib/modules/ppolicyUser.inc:121 ../lib/modules/ppolicyUser.inc:254 +msgid "Password change required" +msgstr "Parola değişimi gerekli" + +#: ../lib/types/ppolicyType.inc:91 ../lib/modules/ppolicy.inc:129 +#: ../lib/modules/ppolicy.inc:149 ../lib/modules/ppolicy.inc:293 +#: ../lib/modules/ppolicy.inc:503 +msgid "Password change requires old password" +msgstr "" + +#: ../lib/modules/mitKerberos.inc:182 ../lib/modules/mitKerberos.inc:468 +#: ../lib/modules/heimdalKerberos.inc:147 +#: ../lib/modules/heimdalKerberos.inc:390 +msgid "Password change service" +msgstr "Parola değiştime" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:30 +msgid "Password check" +msgstr "Parolayı kontrol et" + +#: ../lib/modules/mitKerberos.inc:288 ../lib/modules/selfRegistration.inc:424 +#: ../lib/modules/posixGroup.inc:569 ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:107 ../lib/modules/posixAccount.inc:110 +#: ../lib/modules/posixAccount.inc:111 ../lib/modules/windowsUser.inc:466 +#: ../lib/modules/inetOrgPerson.inc:99 +msgid "Password contains invalid characters. Valid characters are:" +msgstr "Parola geçersiz karakterler içeriyor. Geçerli karakterler :" + +#: ../lib/modules/sambaSamAccount.inc:269 +#: ../lib/modules/sambaSamAccount.inc:272 +#: ../lib/modules/sambaSamAccount.inc:434 +#: ../lib/modules/sambaSamAccount.inc:1130 +#: ../lib/modules/sambaSamAccount.inc:1712 ../lib/modules/windowsUser.inc:177 +#: ../lib/modules/windowsUser.inc:338 ../lib/modules/windowsUser.inc:399 +#: ../lib/modules/windowsUser.inc:566 ../lib/modules/windowsUser.inc:1242 +msgid "Password does not expire" +msgstr "" + +#: ../lib/types/user.inc:103 ../lib/modules/shadowAccount.inc:61 +#: ../lib/modules/shadowAccount.inc:106 ../lib/modules/shadowAccount.inc:163 +#: ../lib/modules/shadowAccount.inc:174 ../lib/modules/shadowAccount.inc:208 +#: ../lib/modules/shadowAccount.inc:315 ../lib/modules/shadowAccount.inc:493 +msgid "Password expiration" +msgstr "" + +#: ../lib/modules/shadowAccount.inc:61 ../lib/modules/shadowAccount.inc:62 +msgid "Password expiration must be are natural number or -1." +msgstr "" + +#: ../lib/modules/asteriskVoicemail.inc:91 +msgid "Password for voicemail mailbox." +msgstr "Sesli e-posta kutusu için parola" + +#: ../lib/modules/posixGroup.inc:479 ../lib/modules/posixGroup.inc:528 +#: ../lib/modules/posixAccount.inc:184 ../lib/modules/posixAccount.inc:240 +#: ../lib/modules/posixAccount.inc:450 ../lib/modules/inetOrgPerson.inc:299 +#: ../lib/modules/inetOrgPerson.inc:880 ../lib/modules/customFields.inc:122 +#: ../lib/modules/customFields.inc:1942 +msgid "Password hash type" +msgstr "" + +#: ../lib/types/ppolicyType.inc:80 ../lib/modules/ppolicy.inc:85 +#: ../lib/modules/ppolicy.inc:138 ../lib/modules/ppolicy.inc:162 +#: ../lib/modules/ppolicy.inc:223 ../lib/modules/ppolicy.inc:467 +#: ../lib/modules/sambaDomain.inc:98 ../lib/modules/sambaDomain.inc:184 +#: ../lib/modules/sambaDomain.inc:276 ../lib/modules/sambaDomain.inc:645 +msgid "Password history length" +msgstr "Parola geçmiş uzunluğu" + +#: ../templates/config/confmain.php:350 +msgid "Password mail settings" +msgstr "Parola posta ayarları" + +#: ../lib/modules/shadowAccount.inc:59 ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/ppolicy.inc:160 ../lib/modules/sambaDomain.inc:215 +msgid "Password maximum age must be are natural number." +msgstr "En büyük parola yaşının doğal sayı olması gerekir." + +#: ../lib/modules/shadowAccount.inc:66 +msgid "Password maximum age must be bigger as password minimum age." +msgstr "" +"En büyük parola yaşının en küçük parola yaşı kadar büyük olması gerekir." + +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/ppolicy.inc:161 +#: ../lib/modules/sambaDomain.inc:213 +msgid "Password maximum age must be bigger than password minimum age." +msgstr "" +"En büyük parola yaşının en küçük parola yaşından daha büyük olması gerekir." + +#: ../lib/modules/shadowAccount.inc:57 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/ppolicy.inc:159 ../lib/modules/sambaDomain.inc:214 +msgid "Password minimum age must be are natural number." +msgstr "En küçük parola yaşının doğal sayı olması gerekir." + +#: ../lib/modules/imapAccess.inc:85 ../lib/modules/imapAccess.inc:270 +msgid "Password of IMAP admin user" +msgstr "IMAP yöneten kullanıcı şifresi" + +#: ../lib/types/ppolicyType.inc:39 +msgid "Password policies" +msgstr "Parola ilkeleri" + +#: ../lib/types/ppolicyType.inc:48 +msgid "Password policies (ppolicy)" +msgstr "Parola ilkeleri (ppolicy)" + +#: ../templates/config/mainmanage.php:336 ../lib/types/user.inc:284 +#: ../lib/types/user.inc:837 ../lib/modules/ppolicyUser.inc:38 +#: ../lib/modules/ppolicyUser.inc:48 ../lib/modules/ppolicyUser.inc:60 +#: ../lib/modules/ppolicyUser.inc:76 ../lib/modules/ppolicyUser.inc:112 +#: ../lib/modules/ppolicyUser.inc:249 ../lib/modules/ppolicyUser.inc:282 +#: ../lib/modules/ppolicy.inc:55 ../lib/modules/sambaDomain.inc:259 +#: ../help/help.inc:150 +msgid "Password policy" +msgstr "Parola ilkesi" + +#: ../lib/types/ppolicyType.inc:81 ../lib/modules/ppolicy.inc:89 +#: ../lib/modules/ppolicy.inc:139 ../lib/modules/ppolicy.inc:235 +#: ../lib/modules/ppolicy.inc:483 +msgid "Password quality check" +msgstr "Parola nitelik kontrolü" + +#: ../lib/modules/passwordSelfReset.inc:246 +msgid "Password reset confirmation" +msgstr "Pa" + +#: ../lib/modules/passwordSelfReset.inc:230 +msgid "Password reset notification" +msgstr "Parola sıfırlama bildirimi" + +#: ../lib/modules/passwordSelfReset.inc:59 +#: ../lib/modules/passwordSelfReset.inc:744 +#: ../lib/modules/passwordSelfReset.inc:963 +msgid "Password self reset" +msgstr "" + +#: ../lib/modules/passwordSelfReset.inc:1468 +msgid "Password successfully reset." +msgstr "Parola başarıyla sıfırlandı" + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:101 +#: ../lib/modules/shadowAccount.inc:161 ../lib/modules/shadowAccount.inc:170 +#: ../lib/modules/shadowAccount.inc:202 ../lib/modules/shadowAccount.inc:307 +#: ../lib/modules/shadowAccount.inc:492 +msgid "Password warning" +msgstr "Parola uyarısı" + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:64 +msgid "Password warning must be are natural number." +msgstr "Parola uyarısının doğal sayı olması gerekir." + +#: ../templates/config/confmain.php:580 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:61 +#: ../lib/modules/passwordSelfReset.inc:1038 ../lib/modules.inc:1116 +msgid "Passwords are different!" +msgstr "Parolalar farklı!" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:59 +msgid "Passwords match." +msgstr "Parolalar eşleşti." + +#: ../lib/types/nisObjectType.inc:77 +msgid "Path" +msgstr "Yol" + +#: ../lib/modules/windowsUser.inc:184 +msgid "" +"Path of the user profile (UNC-path, e.g. \\\\server\\share\\user). $user is " +"replaced with user name." +msgstr "" +"Kullanıcı profiline giden yol (UNC-yol, örn.\\\\sunucu\\paylaş\\kullanıcı)." +"$user kullanıcı adı ile değiştirildi." + +#: ../lib/modules/sambaSamAccount.inc:348 +msgid "Path of the user profile." +msgstr "Kullanıcı profili yolu" + +#: ../lib/modules/sambaSamAccount.inc:299 +msgid "" +"Path of the user profile. Can be a local absolute path or a UNC-path (\\" +"\\server\\share). $user and $group are replaced with user and group name." +msgstr "" +"Kullanıcı profili yolu. Yerel salt bir yol ya da UNC-yolu olabilir (\\" +"\\sunucu\\paylaş). $kullanıcı ve $grup kullanıcı ve grup adı ile " +"değiştirilir." + +#: ../lib/modules/imapAccess.inc:103 ../lib/modules/imapAccess.inc:127 +msgid "Path separator" +msgstr "Yol ayırıcı" + +#: ../templates/config/confmain.php:300 +msgid "Path to external script" +msgstr "Dış komuta giden yol" + +#: ../lib/modules/ddns.inc:86 ../lib/modules/ddns.inc:364 +msgid "Path to key for DNS updates" +msgstr "DNS güncellemeleri için anahtara giden yol" + +#: ../lib/modules/qmailGroup.inc:133 +msgid "" +"Path to the maildir/mbox on the mail system for sender confirmation and " +"moderation." +msgstr "" + +#: ../lib/modules/qmailUser.inc:241 +msgid "Path to the maildir/mbox on the mail system." +msgstr "" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:41 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:64 +msgid "Permanently delete all children also?" +msgstr "Kalıcı olarak tüm alt basamak girdilerini sil?" + +#: ../lib/modules/asteriskAccount.inc:162 +#: ../lib/modules/asteriskAccount.inc:271 +#: ../lib/modules/asteriskAccount.inc:343 +#: ../lib/modules/asteriskAccount.inc:484 +#: ../lib/modules/asteriskAccount.inc:803 +#: ../lib/modules/asteriskAccount.inc:1203 +msgid "Permit" +msgstr "İzin ver" + +#: ../lib/modules/inetOrgPerson.inc:117 +msgid "Personal" +msgstr "Kişisel" + +#: ../lib/selfService.inc:369 +msgid "Personal data" +msgstr "Kişisel veri" + +#: ../lib/types/user.inc:102 ../lib/types/user.inc:620 +#: ../lib/modules/inetOrgPerson.inc:143 ../lib/modules/inetOrgPerson.inc:3141 +#: ../lib/modules/inetOrgPerson.inc:3148 +msgid "Photo" +msgstr "Fotoğraf" + +#: ../lib/modules/inetOrgPerson.inc:2142 +msgid "Photo file (JPG format)" +msgstr "Fotoğraf dosyası (JPG formatı)" + +#: ../lib/modules/asteriskAccount.inc:166 +#: ../lib/modules/asteriskAccount.inc:273 +#: ../lib/modules/asteriskAccount.inc:344 +#: ../lib/modules/asteriskAccount.inc:491 +#: ../lib/modules/asteriskAccount.inc:812 +#: ../lib/modules/asteriskAccount.inc:1204 +msgid "Pickup group" +msgstr "Kişisel" + +#: ../lib/modules/ldapPublicKey.inc:70 +msgid "Please a comma separated list of your public SSH keys." +msgstr "" + +#: ../lib/modules/customScripts.inc:78 +msgid "" +"Please activate this option if your scripts may generate HTML output. " +"Otherwise, the output is treated as plain text." +msgstr "" + +#: ../lib/modules/asteriskExtension.inc:186 +msgid "Please add at least one extension owner." +msgstr "Lütfen sona bir uzantı sahibi ekleyin." + +#: ../lib/modules/qmailGroup.inc:324 +msgid "Please check if this email should be sent." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:1078 +msgid "Please check your settings on the Unix page!" +msgstr "Lütfen UNIX sayfası üzerinden ayarlarınızı kontrol edin !" + +#: ../lib/modules/imapAccess.inc:95 +msgid "" +"Please choose the attribute to get the IMAP user name. The default is \"mail" +"\" but you can also use \"uid\"." +msgstr "" +"Lütfen IMAP kullanıcı adı almak için öznitelik seçin. Varsayılan \"posta\" " +"ama \"uid\" de kullanabilirsiniz." + +#: ../lib/types/user.inc:298 +msgid "Please click to lock/unlock this account." +msgstr "Lütfen bu hesabı kilitlemek ya da kilidini açmak için tıklayın." + +#: ../lib/modules/sambaSamAccount.inc:108 +msgid "Please enter a RID number or the name of a special account!" +msgstr "Lütfen bir RID numarası ya da özel bir hesap adı girin !" + +#: ../lib/modules/asteriskAccount.inc:617 +msgid "Please enter a caller ID." +msgstr "Lütfen arayan kimliği girin." + +#: ../lib/modules/imapAccess.inc:92 +msgid "" +"Please enter a comma separated list of domain names (e.g. \"company.com," +"example.com\"). LAM will only manage mailboxes from these domains." +msgstr "" +"Lütfen ayrılan etki alanları listesine bir virgül girin (örn. \"şirket.com," +"örnek.com\"). LAM bu etki alanlarından yalnızca posta kutularını yönetecek." + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +msgid "Please enter a comma separated list of host names!" +msgstr "Lütfen ana bilgisayar adlarının virgülle ayrılmış bir listesini girin!" + +#: ../lib/modules/asteriskExtension.inc:178 +msgid "Please enter a common name." +msgstr "Lütfen ortak bir ad girin." + +#: ../lib/modules/imapAccess.inc:159 +msgid "Please enter a correct list of valid mail domains." +msgstr "Lütfen geçerli posta alanlarının doğru bir listesini girin." + +#: ../lib/modules/customFields.inc:79 +msgid "Please enter a descriptive label for this field." +msgstr "Lütfen bu alan için tanımlayıcı bir etiket girin" + +#: ../lib/modules/nisObject.inc:55 ../lib/modules/automount.inc:58 +#: ../lib/modules/sudoRole.inc:56 +msgid "Please enter a descriptive name for this entry." +msgstr "Lütfen bu girdi için tanımlayıcı bir ad girin" + +#: ../lib/modules/windowsGroup.inc:111 +msgid "Please enter a descriptive text for this group." +msgstr "Lütfen bu grup için tanımlayıcı bir metin girin." + +#: ../lib/modules/windowsHost.inc:72 +msgid "Please enter a descriptive text for this host." +msgstr "Lütfen bu ana bilgisayar için tanımlayıcı bir metin girin." + +#: ../lib/modules/windowsUser.inc:100 +msgid "Please enter a descriptive text for this user." +msgstr "Lütfen bu kullanıcı için tanımlayıcı bir metin girin" + +#: ../lib/modules/groupOfNames.inc:174 +msgid "Please enter a group name!" +msgstr "Lütfen bir grup adı girin!" + +#: ../lib/modules/selfRegistration.inc:149 +msgid "Please enter a list of object classes for the new accounts." +msgstr "Lütfen yeni hesaplar için bir nesne sınıfları listesi girin." + +#: ../lib/modules/asteriskVoicemail.inc:200 +msgid "Please enter a mailbox." +msgstr "Lütfen bir e-posta kutusu girin" + +#: ../lib/modules/device.inc:55 +msgid "Please enter a name for this device." +msgstr "Lütfen bu cihaz için bir isim girin." + +#: ../lib/modules/ppolicy.inc:158 +msgid "Please enter a name for this policy." +msgstr "Lütfen bu ilke için bir ad girin" + +#: ../lib/modules/customFields.inc:2110 +msgid "Please enter a natural number for column count." +msgstr "Lütfen kolon sayısı için bir değer girin." + +#: ../lib/modules/customFields.inc:2120 +msgid "Please enter a natural number for row count." +msgstr "Lütfen satır sayısı için bir doğal sayı girin." + +#: ../lib/modules/qmailUser.inc:458 ../lib/modules/qmailUser.inc:460 +msgid "Please enter a number for GID number." +msgstr "Lütfen GID numarası kısmına bir numara girin" + +#: ../lib/modules/qmailUser.inc:455 ../lib/modules/qmailUser.inc:457 +msgid "Please enter a number for UID number." +msgstr "Lütfen UID numarası için bir numara girin" + +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:452 +msgid "Please enter a number for message count limit." +msgstr "Lütfen ileti sayısı limiti için bir sayı girin." + +#: ../lib/modules/qmailUser.inc:453 ../lib/modules/qmailUser.inc:454 +msgid "Please enter a number for message size limit." +msgstr "Lütfen ileti büyüklüğü limiti için bir sayı girin." + +#: ../lib/modules/qmailUser.inc:449 ../lib/modules/qmailUser.inc:450 +msgid "Please enter a number for quota size." +msgstr "Lütfen kota genişliği için bir numara girin" + +#: ../templates/lib/141_jquery-validationEngine-lang.php:51 +#: ../templates/lib/141_jquery-validationEngine-lang.php:55 +#: ../lib/modules/zarafaUser.inc:440 ../lib/modules/zarafaUser.inc:441 +#: ../lib/modules/zarafaUser.inc:442 ../lib/modules/zarafaUser.inc:443 +#: ../lib/modules/zarafaUser.inc:444 ../lib/modules/zarafaUser.inc:445 +#: ../lib/modules/zarafaUser.inc:447 ../lib/modules/zarafaUser.inc:448 +msgid "Please enter a number." +msgstr "Lütfen bir numara girin" + +#: ../lib/modules/ppolicy.inc:167 +msgid "Please enter a numeric value for the expire warning." +msgstr "Lütfen süre dolumu uyarısı için numerik bir değer girin." + +#: ../lib/modules/ppolicy.inc:166 +msgid "Please enter a numeric value for the failure count interval." +msgstr "" + +#: ../lib/modules/ppolicy.inc:163 +msgid "Please enter a numeric value for the grace authentication limit." +msgstr "" + +#: ../lib/modules/freeRadius.inc:252 ../lib/modules/freeRadius.inc:253 +msgid "Please enter a numeric value for the idle timeout." +msgstr "Lütfen idle zaman aşımı için numerik bir değer girin." + +#: ../lib/modules/ppolicy.inc:164 +msgid "Please enter a numeric value for the lockout duration." +msgstr "" + +#: ../lib/modules/ppolicy.inc:165 +msgid "Please enter a numeric value for the maximum failure count." +msgstr "Lütfen en fazla başarısızlık sayısına numerik bir değer girin." + +#: ../lib/modules/ppolicy.inc:168 +msgid "Please enter a numeric value for the minimum password length." +msgstr "Lütfen en küçük parola uzunluğu için bir değer girin." + +#: ../lib/modules/ppolicy.inc:162 +msgid "Please enter a numeric value for the password history length." +msgstr "Lütfen geçmiş parola uzunluğu için numerik bir değer girin." + +#: ../lib/modules/sudoRole.inc:221 +msgid "Please enter a role name." +msgstr "Lütfen bir rol adı girin" + +#: ../lib/modules/passwordSelfReset.inc:1059 +msgid "Please enter a security answer." +msgstr "Lütfen bir güvenlik yanıtı girin." + +#: ../lib/modules/selfRegistration.inc:147 +msgid "Please enter a subject for the confirmation mails." +msgstr "Lütfen doğrulama e-postaları için bir konu girin." + +#: ../lib/modules/selfRegistration.inc:148 +msgid "" +"Please enter a text for the confirmation mails that includes the creation " +"link." +msgstr "" +"Lütfen doğrulama e-postaları için oluşturma bağlantısı içeren bir metin " +"girin." + +#: ../lib/modules/customFields.inc:75 +msgid "Please enter a unique name for this field." +msgstr "Lütfen bu alan için bir ad girin." + +#: ../lib/modules/ppolicy.inc:74 +msgid "Please enter a unique name for this password policy." +msgstr "Lütfen bu parola ilkesi için bir ad girin." + +#: ../lib/modules/kolabUser.inc:238 ../lib/modules/kolabUser.inc:244 +msgid "Please enter a user password." +msgstr "Lütfen bir kullanıcı parolası girin." + +#: ../lib/modules/zarafaDynamicGroup.inc:191 ../lib/modules/eduPerson.inc:238 +#: ../lib/modules/eduPerson.inc:240 ../lib/modules/zarafaAddressList.inc:162 +msgid "Please enter a valid DN in the field:" +msgstr "Lütfen bu alan içerisinde geçerli olan bir DN girin:" + +#: ../lib/modules/customFields.inc:1105 ../lib/modules/customFields.inc:1507 +msgid "" +"Please enter a valid LDAP attribute name. Allowed characters are a-z, 0-9, _ " +"and -." +msgstr "" +"Lütfen geçerli bir LDAP öznitelik adı girin. a-z, 0-9, _ ve - karakterleri " +"kullanılabilir." + +#: ../lib/modules/qmailUser.inc:447 +msgid "Please enter a valid account status." +msgstr "Lütfen geçerli bir hesap durumu girin" + +#: ../templates/config/confmain.php:524 +msgid "Please enter a valid bind user." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:97 ../lib/modules/inetOrgPerson.inc:98 +msgid "Please enter a valid business category!" +msgstr "Lütfen geçerli bir iş kategorisi girin!" + +#: ../lib/modules/posixAccount.inc:129 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/inetOrgPerson.inc:90 ../lib/modules/inetOrgPerson.inc:91 +msgid "Please enter a valid common name!" +msgstr "Lütfen geçerli bir ortak ad girin" + +#: ../lib/modules/qmailUser.inc:464 +msgid "Please enter a valid configuration type." +msgstr "Lütfen geçerli bir yapılandırma tipi girin" + +#: ../lib/modules/mitKerberos.inc:282 ../lib/modules/mitKerberos.inc:283 +#: ../lib/modules/qmailUser.inc:463 ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/heimdalKerberos.inc:246 +#: ../lib/modules/heimdalKerberos.inc:247 +msgid "Please enter a valid date in format DD-MM-YYYY." +msgstr "Lütfen geçerli bir tarih formatı girin DD-MM-YYYY." + +#: ../lib/modules/asteriskAccount.inc:638 +#: ../lib/modules/asteriskAccount.inc:639 +msgid "Please enter a valid default user." +msgstr "Lütfen geçerli bir varsayılan kullanıcı girin." + +#: ../lib/modules/qmailUser.inc:448 +msgid "Please enter a valid delivery mode." +msgstr "Lütfen geçerli bir gönderme kipi girin." + +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:111 ../lib/modules/windowsUser.inc:445 +#: ../lib/modules/windowsUser.inc:446 +msgid "Please enter a valid display name!" +msgstr "Lütfen geçerli bir görüntü adı girin!" + +#: ../lib/modules/sambaSamAccount.inc:117 +msgid "Please enter a valid drive letter." +msgstr "Lütfen geçerli bir sürücü harfi girin" + +#: ../lib/modules/kolabGroup.inc:158 ../lib/modules/kolabGroup.inc:159 +#: ../lib/modules/selfRegistration.inc:417 +#: ../lib/modules/zarafaDynamicGroup.inc:193 +#: ../lib/modules/zarafaDynamicGroup.inc:194 ../lib/modules/qmailUser.inc:441 +#: ../lib/modules/qmailUser.inc:442 ../lib/modules/qmailUser.inc:443 +#: ../lib/modules/qmailUser.inc:444 ../lib/modules/qmailUser.inc:445 +#: ../lib/modules/qmailUser.inc:446 ../lib/modules/zarafaGroup.inc:209 +#: ../lib/modules/zarafaGroup.inc:210 ../lib/modules/windowsUser.inc:457 +#: ../lib/modules/windowsUser.inc:458 ../lib/modules/inetOrgPerson.inc:76 +#: ../lib/modules/inetOrgPerson.inc:77 ../lib/modules/qmailGroup.inc:413 +#: ../lib/modules/qmailGroup.inc:414 ../lib/modules/qmailGroup.inc:415 +#: ../lib/modules/qmailGroup.inc:416 ../lib/modules/qmailGroup.inc:418 +#: ../lib/modules/qmailGroup.inc:419 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:421 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:424 +#: ../lib/modules/qmailGroup.inc:425 ../lib/modules/passwordSelfReset.inc:767 +#: ../lib/modules/passwordSelfReset.inc:986 +#: ../lib/modules/windowsGroup.inc:259 ../lib/modules/windowsGroup.inc:260 +#: ../lib/modules.inc:1161 +msgid "Please enter a valid email address!" +msgstr "Lütfn geçerli bir e-posta adresi girin" + +#: ../lib/modules/zarafaDynamicGroup.inc:195 +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaGroup.inc:211 ../lib/modules/zarafaGroup.inc:212 +msgid "Please enter a valid email alias." +msgstr "Lütfen geçerli bir e-posta takma adı girin." + +#: ../lib/modules/passwordSelfReset.inc:774 +#: ../lib/modules/passwordSelfReset.inc:993 +msgid "Please enter a valid employee number." +msgstr "Lütfen geçerli bir personel numarası girin." + +#: ../lib/modules/inetOrgPerson.inc:88 ../lib/modules/inetOrgPerson.inc:89 +msgid "Please enter a valid employee type!" +msgstr "Lütfen geçerli bir personel tipi girin!" + +#: ../lib/modules/inetOrgPerson.inc:74 ../lib/modules/inetOrgPerson.inc:75 +msgid "Please enter a valid fax number!" +msgstr "Lütfen geçerli bir fax numarası girin!" + +#: ../lib/modules/customFields.inc:157 +msgid "" +"Please enter a valid field name. Only letters, numbers, dash and underline " +"are allowed." +msgstr "" +"Lütfen geçerli bir alan adı girin. Sadece harfler, sayılar, tire ve alt " +"çizgi kullanılabilir." + +#: ../lib/lists.inc:229 +msgid "" +"Please enter a valid filter. Only letters, numbers and \" _*$.@-\" are " +"allowed." +msgstr "" +"Lütfen geçerli bir filtre girin. Sadece harfler, sayılar ve \" _*$.@-\" " +"kullanılabilir." + +#: ../lib/modules/selfRegistration.inc:68 +#: ../lib/modules/selfRegistration.inc:125 +msgid "Please enter a valid first name." +msgstr "Lütfen geçerli bir ad girin" + +#: ../lib/modules/asteriskAccount.inc:632 +#: ../lib/modules/asteriskAccount.inc:633 +msgid "Please enter a valid from domain." +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:630 +#: ../lib/modules/asteriskAccount.inc:631 +msgid "Please enter a valid from user." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:121 +msgid "Please enter a valid group name!" +msgstr "Lütfen geçerli bir grup adı girin!" + +#: ../lib/modules/windowsGroup.inc:263 +msgid "Please enter a valid group scope." +msgstr "" + +#: ../lib/modules/windowsGroup.inc:264 +msgid "Please enter a valid group type." +msgstr "Lütfen geçerli bir grup tipi girin" + +#: ../lib/modules/inetOrgPerson.inc:86 ../lib/modules/inetOrgPerson.inc:87 +msgid "Please enter a valid job title!" +msgstr "Lütfen geçerli bir iş başlığı girin!" + +#: ../lib/modules/selfRegistration.inc:69 +#: ../lib/modules/selfRegistration.inc:126 +msgid "Please enter a valid last name." +msgstr "Lütfen geçerli bir soyisim girin" + +#: ../lib/modules/eduPerson.inc:246 +msgid "Please enter a valid list of affiliations." +msgstr "" + +#: ../lib/modules/freeRadius.inc:248 ../lib/modules/freeRadius.inc:249 +msgid "Please enter a valid list of group names." +msgstr "Lütfen geçerli bir grup adları istesi girin" + +#: ../lib/modules/hostObject.inc:104 +msgid "Please enter a valid list of host names." +msgstr "Lütfen ana bilgisayar adlarının geçerli bir listesini girin." + +#: ../lib/modules/authorizedServiceObject.inc:123 +msgid "Please enter a valid list of service names." +msgstr "Lütfen geçerli bir servis adları listesi girin" + +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:73 +msgid "Please enter a valid mobile number!" +msgstr "Lütfen geçerli bir cep telefonu numarası girin!" + +#: ../lib/modules/customFields.inc:160 +msgid "Please enter a valid object class." +msgstr "Lütfen geçerli bir nesne sınıfı girin" + +#: ../lib/modules/dhcp_settings.inc:324 +msgid "Please enter a valid option." +msgstr "Lütfen geçerli bir seçenek girin" + +#: ../lib/modules/zarafaServer.inc:170 ../lib/modules/zarafaServer.inc:171 +msgid "Please enter a valid path." +msgstr "Lütfen geçerli bir yol girin." + +#: ../lib/modules/asteriskAccount.inc:634 +#: ../lib/modules/asteriskAccount.inc:635 ../lib/modules/zarafaServer.inc:166 +#: ../lib/modules/zarafaServer.inc:167 ../lib/modules/zarafaServer.inc:168 +#: ../lib/modules/zarafaServer.inc:169 +msgid "Please enter a valid port number." +msgstr "Lütfen geçerli bir bağlantı noktası numarası girin." + +#: ../lib/modules/inetOrgPerson.inc:80 ../lib/modules/inetOrgPerson.inc:81 +msgid "Please enter a valid postal address!" +msgstr "Lütfen geçerli bir posta adresi girin!" + +#: ../lib/modules/windowsUser.inc:455 ../lib/modules/windowsUser.inc:456 +#: ../lib/modules/inetOrgPerson.inc:84 ../lib/modules/inetOrgPerson.inc:85 +msgid "Please enter a valid postal code!" +msgstr "Lütfen geçerli bir posta kodu girin!" + +#: ../lib/modules/eduPerson.inc:244 +msgid "Please enter a valid primary affiliation." +msgstr "" + +#: ../lib/modules/freeRadius.inc:246 ../lib/modules/freeRadius.inc:247 +msgid "Please enter a valid realm." +msgstr "Lütfen geçerli bir yetki alanı girin" + +#: ../lib/modules/kolabGroup.inc:162 ../lib/modules/kolabGroup.inc:163 +#: ../lib/modules/kolabUser.inc:219 ../lib/modules/kolabUser.inc:220 +msgid "Please enter a valid recepient expression." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:82 ../lib/modules/inetOrgPerson.inc:83 +msgid "Please enter a valid registered address." +msgstr "Lütfen geçerli bir kayıtlı adres girin." + +#: ../lib/modules/eduPerson.inc:245 +msgid "Please enter a valid scoped affiliation." +msgstr "" + +#: ../lib/modules/kolabGroup.inc:164 ../lib/modules/kolabGroup.inc:165 +#: ../lib/modules/kolabUser.inc:221 ../lib/modules/kolabUser.inc:222 +msgid "Please enter a valid sender expression." +msgstr "Lütfen geçerli bir gönderici uzantısı girin." + +#: ../lib/modules/qmailUser.inc:461 ../lib/modules/qmailUser.inc:462 +#: ../lib/modules/imapAccess.inc:158 +msgid "Please enter a valid server name where the mailboxes reside." +msgstr "Lütfen e-posta kutularının yer aldığı geçerli bir sunucu adı girin." + +#: ../lib/modules/inetOrgPerson.inc:78 ../lib/modules/inetOrgPerson.inc:79 +msgid "Please enter a valid street name!" +msgstr "Lütfen geçerli bir cadde adı girin!" + +#: ../lib/modules/windowsUser.inc:451 ../lib/modules/windowsUser.inc:452 +#: ../lib/modules/windowsUser.inc:453 ../lib/modules/windowsUser.inc:454 +#: ../lib/modules/inetOrgPerson.inc:68 ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:71 +msgid "Please enter a valid telephone number!" +msgstr "Lütfen geçerli bir telefon numarası girin!" + +#: ../lib/modules/passwordSelfReset.inc:788 +#: ../lib/modules/passwordSelfReset.inc:1007 +msgid "Please enter a valid user name or email address." +msgstr "Lütfen geçerli bir kullanıcı adı ya da e posta adresi girin" + +#: ../lib/modules/posixGroup.inc:695 ../lib/modules/posixAccount.inc:1078 +#: ../lib/modules/posixAccount.inc:1083 +#, php-format +msgid "Please enter a value between %s and %s!" +msgstr "Lütfen %s ve %s arasında bir değer girin!" + +#: ../lib/modules/customFields.inc:2267 +msgid "Please enter a value for status \"checked\"." +msgstr "Lütfen durumlar için geçerli bir değer girin \"kontrol edildi\"." + +#: ../lib/modules/customFields.inc:2274 +msgid "Please enter a value for status \"unchecked\"." +msgstr "Lütfen durumlar için geçerli bir değer girin \"kontrol edilmedi\"." + +#: ../lib/modules/customFields.inc:67 +msgid "Please enter an alias for this group." +msgstr "Lütfen bu grup için bir rumuz girin." + +#: ../lib/modules/customFields.inc:159 +msgid "Please enter an alias name." +msgstr "Lütfen bir rumuz girin." + +#: ../lib/modules/kolabUser.inc:250 ../lib/modules/imapAccess.inc:188 +#, php-format +msgid "Please enter an email address on this page: %s" +msgstr "Lütfen bu sayfaya: %s bir e-posta adresi girin." + +#: ../lib/modules/windowsUser.inc:1022 ../lib/modules/windowsUser.inc:1031 +#: ../lib/modules/windowsUser.inc:1040 ../lib/modules/windowsUser.inc:1051 +msgid "Please enter either yes or no." +msgstr "Lütfen ya evet ya da hayır girin." + +#: ../lib/modules/sudoRole.inc:227 ../lib/modules/sudoRole.inc:228 +msgid "Please enter only ASCII characters for the commands." +msgstr "Lütfen komutlar için sadece ASCII karakterlerini girin." + +#: ../lib/modules/sudoRole.inc:225 ../lib/modules/sudoRole.inc:226 +msgid "Please enter only ASCII characters for the host names." +msgstr "Lütfen ana bilgisayar adları için sadece ASCII karakterlerini girin." + +#: ../lib/modules/sudoRole.inc:233 ../lib/modules/sudoRole.inc:234 +msgid "Please enter only ASCII characters for the options." +msgstr "Lütfen seçenekler için sadece ASCII karakterlerini girin." + +#: ../lib/modules/sudoRole.inc:231 ../lib/modules/sudoRole.inc:232 +msgid "Please enter only ASCII characters for the run groups." +msgstr "Lütfen çalışan gruplar için ASCII karakterleri girin." + +#: ../lib/modules/sudoRole.inc:229 ../lib/modules/sudoRole.inc:230 +msgid "Please enter only ASCII characters for the run users." +msgstr "Lütfen çalışan kullanıcılar için ASCII karakterleri girin." + +#: ../lib/modules/device.inc:133 ../lib/modules/device.inc:134 +msgid "Please enter only ASCII characters for the serial number." +msgstr "Lütfen seri numarası için yalnızca ASCII karakterlerini girin" + +#: ../lib/modules/sudoRole.inc:223 ../lib/modules/sudoRole.inc:224 +msgid "Please enter only ASCII characters for the user names." +msgstr "Lütfen kullanıcı adları için yalnızca ASCII karakterlerini girin" + +#: ../lib/modules/passwordSelfReset.inc:274 +msgid "" +"Please enter the DN and password of the administrative password self reset " +"account." +msgstr "" + +#: ../lib/modules/selfRegistration.inc:146 +msgid "" +"Please enter the DN and password of the administrative self registration " +"account." +msgstr "" + +#: ../lib/modules/posixGroup.inc:500 ../lib/modules/posixAccount.inc:491 +msgid "" +"Please enter the DN of the LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "" + +#: ../lib/modules/ddns.inc:92 +msgid "Please enter the IP address of your DNS server." +msgstr "Lütfen DNS sunucunuzun IP adresini girin" + +#: ../lib/modules/selfRegistration.inc:101 +msgid "Please enter the LDAP DN that should be used to create new users." +msgstr "" + +#: ../lib/modules/passwordSelfReset.inc:94 +msgid "Please enter the LDAP DN that should be used to reset passwords." +msgstr "" + +#: ../lib/modules/customFields.inc:83 +msgid "Please enter the LDAP attribute name for this field." +msgstr "Lütfen bu alan için LDAP öznitelik adını girin" + +#: ../help/help.inc:119 +msgid "" +"Please enter the LDAP suffix where LAM should start to search for users. The " +"LDAP filter needs to match the given user name to exactly one DN. The value " +"\"%USER%\" will be replaced by the user name from the login page." +msgstr "" + +#: ../lib/modules/asteriskExtension.inc:181 +#: ../lib/modules/asteriskVoicemail.inc:204 +msgid "Please enter the account context." +msgstr "Lütfen hesap içeriğini girin" + +#: ../lib/modules.inc:925 +msgid "Please enter the account information on the other pages first." +msgstr "Lütfen ilk olarak diğer sayfalar üzerindeki hesap bilgilerini girin." + +#: ../lib/modules/asteriskAccount.inc:627 +msgid "Please enter the account type." +msgstr "Lütfen hesap tipini girin" + +#: ../lib/modules/asteriskAccount.inc:111 +msgid "Please enter the account's type (e.g. \"friend\")." +msgstr "Lütfen hesap tipini girin (örn. \"friend\")" + +#: ../lib/modules/asteriskExtension.inc:180 +msgid "Please enter the application data." +msgstr "Lütfen uygulama verisini girin." + +#: ../lib/modules/asteriskExtension.inc:179 +msgid "Please enter the application." +msgstr "Lütfen uygulamayı girin." + +#: ../lib/modules/automount.inc:62 +msgid "" +"Please enter the automount entry (e.g. \"-fstype=nfs,rw server:/home\")." +msgstr "Lütfen otomatik girdiyi girin (örn.\"-fstype=nfs,rw server:/home\")." + +#: ../templates/login.php:295 +msgid "Please enter the configuration and create a server profile." +msgstr "Lütfen yapılandırma ayarlarını girin ve bir sunucu profili oluşturun." + +#: ../help/help.inc:57 +msgid "" +"Please enter the configuration password. This is NOT your LDAP password. It " +"is stored in your .conf-file. If this is the first time you log in, enter " +"\"lam\"." +msgstr "" +"Lütfen conf- dosyanızda yer alan yapılandırma parolasını girin. Bu sizin " +"LDAP parolanız değil.Eğer bu oturumu ilk açışınız ise, \"lam\" girin." + +#: ../lib/modules/puppetClient.inc:74 ../lib/modules/puppetClient.inc:78 +msgid "Please enter the environment name for this node (e.g. production)." +msgstr "Lütfen bu ağ için bir çevre adı girin (örn. üretim)" + +#: ../lib/modules/asteriskAccount.inc:621 +msgid "Please enter the extension context." +msgstr "Lütfen uzantı içeriğini girin" + +#: ../lib/modules/asteriskExtension.inc:182 +msgid "Please enter the extension name." +msgstr "Lütfen uzantı adını girin" + +#: ../lib/modules/windowsGroup.inc:107 +msgid "Please enter the group name." +msgstr "Lütfen grup adını girin" + +#: ../lib/modules/asteriskAccount.inc:624 ../lib/modules/windowsHost.inc:68 +msgid "Please enter the host name." +msgstr "Lütfen ana bilgisayar adı girin" + +#: ../lib/modules/customScripts.inc:53 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [account type] [action] [script and arguments]" +msgstr "" +"Lütfen çalışması gereken komutların listesini girin.Her satır aşağıdaki " +"biçime sahiptir: [hesap tipi] [eylem] [komut ve parametreler]" + +#: ../lib/modules/customScripts.inc:67 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [action] [script and arguments]" +msgstr "" +"Lütfen çalışması gereken komutların listesini girin.Her satır aşağıdaki " +"biçime sahiptir: [eylem] [komut ve parametreler]" + +#: ../lib/modules/nisObject.inc:59 +msgid "" +"Please enter the mapping entry (e.g. \"-fstype=nfs,rw server:/projects\")." +msgstr "" +"Lütfen eşleştirme girdisini girin.(örn. \"-fstype=nfs,rw sunucu:/projeler\")." + +#: ../lib/modules/nisObject.inc:63 +msgid "Please enter the mapping name for this entry (e.g. auto.home)." +msgstr "Lütfen bu girdi için eşleştirme adı girin (örn. auto.home)." + +#: ../help/help.inc:139 +msgid "" +"Please enter the master configuration password. This is NOT your LDAP " +"password. It is stored in your config.cfg file. If this is the first time " +"you log in, enter \"lam\"." +msgstr "" +"Lütfen config.cfg dosyanız içerisinde yer alan ana yapılandırma parolasını " +"girin. Bu sizin LDAP parolanız değil. Eğer bu oturumu ilk açışınız ise, \"lam" +"\" girin." + +#: ../templates/config/mainlogin.php:145 +msgid "Please enter the master password to change the general preferences:" +msgstr "Lütfen genel tercihleri değiştirmek için ana parolayı girin:" + +#: ../lib/modules/qmailGroup.inc:417 +msgid "Please enter the message store." +msgstr "Lütfen ileti depolama alanını girin." + +#: ../help/help.inc:127 +msgid "" +"Please enter the name of the new profile and the password to change its " +"settings. Profile names may contain letters, numbers and -/_." +msgstr "" +"Lütfen ayarlarını değiştirmek için yeni profilin adını ve parolasını girin. " +"Profil adları harfleri,sayıları ve /_ içerebilir." + +#: ../help/help.inc:129 +msgid "" +"Please enter the new name of the profile. The name may contain letters, " +"numbers and -/_." +msgstr "" +"Lütfen profilin yeni adını girin. Ad harfları, sayıları ve -/_ içerebilir." + +#: ../lib/modules/selfRegistration.inc:105 +#: ../lib/modules/passwordSelfReset.inc:98 +msgid "" +"Please enter the password for the admin DN. Please note that this is saved " +"as clear-text in the self service profile." +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:107 ../lib/modules/posixAccount.inc:512 +#: ../lib/modules/windowsUser.inc:199 ../lib/modules/inetOrgPerson.inc:909 +msgid "Please enter the password which you want to set for this account." +msgstr "Lütfen bu hesap için ayarlamak istediğiniz parolayı girin." + +#: ../help/help.inc:183 +msgid "" +"Please enter the password which you want to set for this account. You may " +"also generate a random password (12 characters) which will be displayed on " +"your screen." +msgstr "" + +#: ../lib/modules/posixAccount.inc:467 +msgid "Please enter the path to the user's home directory." +msgstr "Lütfen kullanıcının ana dizinine olan yolu girin." + +#: ../lib/modules/zarafaServer.inc:62 +msgid "Please enter the port number for (unencrypted) HTTP connections." +msgstr "" +"Lütfen HTTP bağlantıları için bağlantı noktası numarasını (şifrelenmemiş) " +"girin." + +#: ../lib/modules/zarafaServer.inc:66 +msgid "Please enter the port number for encrypted connections." +msgstr "" + +#: ../lib/modules/passwordSelfReset.inc:74 +msgid "" +"Please enter the possible security questions for the password self reset." +msgstr "" + +#: ../lib/modules/asteriskExtension.inc:184 +msgid "Please enter the priority." +msgstr "Lütfen önceliği girin." + +#: ../lib/modules/imapAccess.inc:101 +msgid "Please enter the quota limit of this mailbox in kilobytes." +msgstr "" + +#: ../lib/modules/quota.inc:147 +msgid "" +"Please enter the quota settings for this mount point. The syntax is: {soft " +"block limit},{hard block limit},{soft inode limit},{hard inode limit}" +msgstr "" + +#: ../lib/modules/systemQuotas.inc:62 +msgid "" +"Please enter the quota settings for this user. The syntax is: {mount point}," +"{soft block limit},{hard block limit},{soft inode limit},{hard inode limit}." +msgstr "" + +#: ../lib/modules/selfRegistration.inc:122 +#, php-format +msgid "" +"Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") and an error " +"message if the value does not match it. For a syntax description see here." +msgstr "" + +#: ../lib/modules/customFields.inc:95 +#, php-format +msgid "" +"Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") to validate " +"this field. For a syntax description see here." +msgstr "" + +#: ../templates/lists/changePassword.php:480 +#: ../lib/modules/selfRegistration.inc:421 +#: ../lib/modules/sambaSamAccount.inc:105 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/windowsUser.inc:465 ../lib/modules/customFields.inc:2008 +msgid "Please enter the same password in both password fields." +msgstr "Lütfen bütün parola alanlarına aynı parolayı girin." + +#: ../lib/modules/passwordSelfReset.inc:70 +msgid "Please enter the security question for the password self reset." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:360 +msgid "Please enter the time limit in minutes. 0 means unlimited." +msgstr "" + +#: ../lib/modules/windowsUser.inc:96 +msgid "Please enter the user's name." +msgstr "Lütfen kullanıcı adını girin" + +#: ../lib/modules/puppetClient.inc:94 ../lib/modules/puppetClient.inc:98 +msgid "" +"Please enter your Puppet variables for this node (e.g. config_exim=true)." +msgstr "" + +#: ../templates/selfService/adminLogin.php:133 +msgid "" +"Please enter your master configuration password to change the self service " +"profile:" +msgstr "" +"Lütfen self servis profilinizi değiştirmek için ana yapılandırma parolanızı " +"girin:" + +#: ../templates/config/conflogin.php:132 +msgid "Please enter your password to change the server preferences:" +msgstr "Lütfen sunucu tercihlerini değiştirmek için parolanızı girin:" + +#: ../lib/modules/ldapPublicKey.inc:66 +msgid "Please enter your public SSH key." +msgstr "Lütfen ortak SSH anahtarınızı girin" + +#: ../lib/modules/range.inc:394 ../lib/modules/fixed_ip.inc:348 +msgid "Please fill out the DHCP settings first." +msgstr "Lütfen ilk olarak DHCP ayarlarını doldurun." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "Please go back and try again." +msgstr "Lütfen geri dön ve tekrar dene." + +#: ../templates/masscreate.php:240 +msgid "" +"Please provide a CSV formated file with your account data. The cells in the " +"first row must be filled with the column identifiers. The following rows " +"represent one account for each row." +msgstr "" + +#: ../lib/config.inc:1617 +msgid "Please provide a file in DER or PEM format." +msgstr "Lütfen DER ya da PEM biçiminde bir dosya sağlayın." + +#: ../templates/massBuildAccounts.php:256 +msgid "Please provide a file to upload." +msgstr "Lütfen yüklemek için bir dosya sağlayın." + +#: ../lib/modules/inetOrgPerson.inc:817 +msgid "" +"Please select an image file to upload. It must be in JPG format (.jpg/.jpeg)." +msgstr "" + +#: ../lib/modules/customFields.inc:87 +msgid "Please select the field type (e.g. text field)." +msgstr "Lütfen alan tipini seçin (örn. metin alanı)." + +#: ../help/help.inc:145 +msgid "" +"Please select your prefered log level. Messages with a lower level will not " +"be logged." +msgstr "" + +#: ../lib/modules/asteriskVoicemail.inc:215 +msgid "Please set the voicemail password with \"Set password\" before saving." +msgstr "" + +#: ../lib/modules.inc:874 +#, php-format +msgid "Please set up all required attributes on page: %s" +msgstr "Lütfen sayfa üzerinde yer alan gerekli tüm öznitelikleri kurun: %s" + +#: ../templates/config/profmanage.php:220 +#: ../templates/selfService/profManage.php:160 +msgid "Please set up your master configuration file (config/config.cfg) first!" +msgstr "Lütfen ilk olarak ana yapılandırma dosyanızı (config/config.cfg)!" + +#: ../lib/modules/dhcp_settings.inc:544 ../lib/modules/ddns.inc:355 +msgid "" +"Please set your LDAP suffix to an LDAP entry with object class \"dhcpService" +"\" or \"dhcpServer\"." +msgstr "" + +#: ../lib/modules/passwordSelfReset.inc:134 +msgid "Please specify how your users need to identify themselves." +msgstr "" + +#: ../lib/modules/windowsGroup.inc:143 +msgid "Please specify the group scope." +msgstr "" + +#: ../lib/modules/customFields.inc:127 +msgid "" +"Please specify the possible values for this field. Each value can have a " +"descriptive label that is displayed to the user." +msgstr "" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:172 +msgid "Please wait" +msgstr "Lütfen bekleyin" + +#: ../lib/types/ppolicyType.inc:149 +#, php-format +msgid "Policy count: %s" +msgstr "İlke sayısı: %s" + +#: ../lib/modules/kolabUser.inc:212 +msgid "Policy list has invalid format!" +msgstr "İlke listesi geçersiz formata sahip!" + +#: ../lib/modules/asteriskAccount.inc:170 +#: ../lib/modules/asteriskAccount.inc:275 +#: ../lib/modules/asteriskAccount.inc:345 +#: ../lib/modules/asteriskAccount.inc:498 +#: ../lib/modules/asteriskAccount.inc:821 +#: ../lib/modules/asteriskAccount.inc:1205 +msgid "Port" +msgstr "Bağlantı noktası" + +#: ../lib/modules/asteriskAccount.inc:171 +msgid "Port number." +msgstr "Bağlantı noktası numarası" + +#: ../templates/pdfedit/pdfpage.php:592 ../templates/pdfedit/pdfpage.php:602 +#: ../templates/pdfedit/pdfpage.php:612 ../templates/pdfedit/pdfpage.php:627 +msgid "Position" +msgstr "Durum" + +#: ../templates/masscreate.php:304 ../templates/masscreate.php:379 +#: ../lib/modules/customScripts.inc:113 ../lib/modules/customScripts.inc:115 +#: ../lib/modules/customScripts.inc:117 +#: ../lib/modules/sambaGroupMapping.inc:591 +msgid "Possible values" +msgstr "Olası değerler" + +#: ../lib/modules/posixGroup.inc:505 ../lib/modules/sambaGroupMapping.inc:165 +#: ../lib/modules/groupOfNames.inc:94 +msgid "" +"Possible wildcards are: \"*\" = any character, \"^\" = line start, \"$\" = " +"line end" +msgstr "" + +#: ../lib/modules/windowsUser.inc:139 ../lib/modules/windowsUser.inc:264 +#: ../lib/modules/windowsUser.inc:391 ../lib/modules/windowsUser.inc:417 +#: ../lib/modules/windowsUser.inc:528 ../lib/modules/windowsUser.inc:1226 +#: ../lib/modules/windowsUser.inc:1342 ../lib/modules/inetOrgPerson.inc:143 +#: ../lib/modules/inetOrgPerson.inc:164 ../lib/modules/inetOrgPerson.inc:312 +#: ../lib/modules/inetOrgPerson.inc:478 ../lib/modules/inetOrgPerson.inc:617 +#: ../lib/modules/inetOrgPerson.inc:741 ../lib/modules/inetOrgPerson.inc:745 +#: ../lib/modules/inetOrgPerson.inc:1507 ../lib/modules/inetOrgPerson.inc:2364 +#: ../lib/modules/inetOrgPerson.inc:3057 +msgid "Post office box" +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:80 ../lib/modules/inetOrgPerson.inc:142 +#: ../lib/modules/inetOrgPerson.inc:176 ../lib/modules/inetOrgPerson.inc:320 +#: ../lib/modules/inetOrgPerson.inc:462 ../lib/modules/inetOrgPerson.inc:629 +#: ../lib/modules/inetOrgPerson.inc:757 ../lib/modules/inetOrgPerson.inc:1617 +#: ../lib/modules/inetOrgPerson.inc:2366 ../lib/modules/inetOrgPerson.inc:3024 +msgid "Postal address" +msgstr "Posta adresi" + +#: ../lib/modules/inetOrgPerson.inc:758 +msgid "Postal address, city" +msgstr "Posta adresi, şehir" + +#: ../lib/modules/windowsUser.inc:135 ../lib/modules/windowsUser.inc:270 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:418 +#: ../lib/modules/windowsUser.inc:455 ../lib/modules/windowsUser.inc:529 +#: ../lib/modules/windowsUser.inc:1225 ../lib/modules/windowsUser.inc:1343 +#: ../lib/modules/inetOrgPerson.inc:84 ../lib/modules/inetOrgPerson.inc:143 +#: ../lib/modules/inetOrgPerson.inc:167 ../lib/modules/inetOrgPerson.inc:314 +#: ../lib/modules/inetOrgPerson.inc:454 ../lib/modules/inetOrgPerson.inc:620 +#: ../lib/modules/inetOrgPerson.inc:749 ../lib/modules/inetOrgPerson.inc:753 +#: ../lib/modules/inetOrgPerson.inc:1534 ../lib/modules/inetOrgPerson.inc:2365 +#: ../lib/modules/inetOrgPerson.inc:3046 +msgid "Postal code" +msgstr "Posta kodu" + +#: ../lib/modules/puppetClient.inc:105 +msgid "Predefined classes" +msgstr "Önceden tanımlanan sınıflar" + +#: ../lib/modules/puppetClient.inc:109 ../lib/modules/puppetClient.inc:115 +msgid "Predefined environments" +msgstr "Önceden tanımlanan çevreler" + +#: ../lib/modules/authorizedServiceObject.inc:86 +#: ../lib/modules/authorizedServiceObject.inc:92 +msgid "Predefined services" +msgstr "Önceden tanımlanan servisler" + +#: ../help/help.inc:89 +msgid "Predefined values" +msgstr "Önceden tanımlanan değerler" + +#: ../lib/modules/imapAccess.inc:88 ../lib/modules/imapAccess.inc:121 +msgid "Prefix for mailboxes" +msgstr "E-posta kutuları için önek" + +#: ../lib/modules/inetOrgPerson.inc:408 +msgid "President" +msgstr "Başkan" + +#: ../lib/modules/eduPerson.inc:81 ../lib/modules/eduPerson.inc:161 +#: ../lib/modules/eduPerson.inc:222 ../lib/modules/eduPerson.inc:280 +#: ../lib/modules/eduPerson.inc:766 +msgid "Primary affiliation" +msgstr "" + +#: ../lib/modules/posixAccount.inc:290 ../lib/modules/posixAccount.inc:382 +#: ../lib/modules/posixAccount.inc:407 ../lib/modules/posixAccount.inc:458 +#: ../lib/modules/posixAccount.inc:503 ../lib/modules/posixAccount.inc:541 +#: ../lib/modules/posixAccount.inc:1348 ../lib/modules/posixAccount.inc:1631 +#: ../lib/modules/posixAccount.inc:1677 ../lib/modules/posixAccount.inc:1743 +msgid "Primary group" +msgstr "Birincil grup" + +#: ../lib/modules/eduPerson.inc:123 ../lib/modules/eduPerson.inc:199 +#: ../lib/modules/eduPerson.inc:225 ../lib/modules/eduPerson.inc:240 +#: ../lib/modules/eduPerson.inc:411 ../lib/modules/eduPerson.inc:773 +msgid "Primary organisational unit" +msgstr "Birincil kurumsal birim" + +#: ../lib/modules/eduPerson.inc:107 ../lib/modules/eduPerson.inc:154 +#: ../lib/modules/eduPerson.inc:223 ../lib/modules/eduPerson.inc:274 +#: ../lib/modules/eduPerson.inc:768 +msgid "Principal name" +msgstr "Asıl ad" + +#: ../lib/modules/eduPerson.inc:236 ../lib/modules/eduPerson.inc:237 +msgid "Principal name is invalid!" +msgstr "Asıl ad geçersiz" + +#: ../lib/modules/asteriskExtension.inc:99 +#: ../lib/modules/asteriskExtension.inc:818 +msgid "Priority" +msgstr "Öncelik" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1537 +#: ../templates/3rdParty/pla/htdocs/import_form.php:44 +#: ../templates/3rdParty/pla/htdocs/export_form.php:135 +msgid "Proceed" +msgstr "İlerle" + +#: ../templates/config/profmanage.php:112 +#: ../templates/selfService/profManage.php:85 +msgid "Profile deleted." +msgstr "Profil silindi" + +#: ../templates/profedit/profilepage.php:182 +#: ../templates/profedit/profilemain.php:94 ../lib/tools/profileEditor.inc:44 +msgid "Profile editor" +msgstr "Profil editörü" + +#: ../templates/config/profmanage.php:159 +#: ../templates/config/profmanage.php:236 +#: ../templates/selfService/profManage.php:101 +#: ../templates/selfService/profManage.php:199 ../help/help.inc:126 +#: ../help/help.inc:128 ../help/help.inc:130 ../help/help.inc:132 +#: ../help/help.inc:134 +msgid "Profile management" +msgstr "Profil yönetimi" + +#: ../templates/config/profmanage.php:240 +#: ../templates/config/profmanage.php:259 +#: ../templates/config/profmanage.php:271 +#: ../templates/config/profmanage.php:280 +#: ../templates/config/profmanage.php:299 +#: ../templates/selfService/profManage.php:203 +#: ../templates/selfService/profManage.php:217 +#: ../templates/selfService/profManage.php:233 +#: ../templates/profedit/profilepage.php:186 +#: ../templates/profedit/profilemain.php:275 +#: ../templates/profedit/profilemain.php:319 ../help/help.inc:168 +msgid "Profile name" +msgstr "Profil adı" + +#: ../templates/config/profmanage.php:88 +#: ../templates/config/profmanage.php:107 +#: ../templates/config/profmanage.php:137 +#: ../templates/config/profmanage.php:148 +#: ../templates/selfService/profManage.php:61 +#: ../templates/selfService/profManage.php:76 +msgid "Profile name is invalid!" +msgstr "Profil adı geçersiz!" + +#: ../templates/config/profmanage.php:243 +#: ../templates/config/profmanage.php:281 +msgid "Profile password" +msgstr "Profil parolası" + +#: ../templates/config/profmanage.php:86 +#: ../templates/config/profmanage.php:135 +msgid "Profile passwords are different or empty!" +msgstr "Profil parolaları farklı ya da boş!" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:98 +#: ../lib/modules/sambaSamAccount.inc:213 +#: ../lib/modules/sambaSamAccount.inc:225 +#: ../lib/modules/sambaSamAccount.inc:298 +#: ../lib/modules/sambaSamAccount.inc:347 +#: ../lib/modules/sambaSamAccount.inc:489 +#: ../lib/modules/sambaSamAccount.inc:585 +#: ../lib/modules/sambaSamAccount.inc:1193 +#: ../lib/modules/sambaSamAccount.inc:1486 +#: ../lib/modules/sambaSamAccount.inc:1555 +#: ../lib/modules/sambaSamAccount.inc:1733 +#: ../lib/modules/sambaSamAccount.inc:1878 +#: ../lib/modules/sambaSamAccount.inc:1893 ../lib/modules/windowsUser.inc:183 +#: ../lib/modules/windowsUser.inc:362 ../lib/modules/windowsUser.inc:401 +#: ../lib/modules/windowsUser.inc:461 ../lib/modules/windowsUser.inc:573 +#: ../lib/modules/windowsUser.inc:1253 +msgid "Profile path" +msgstr "Profil yolu" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/windowsUser.inc:461 ../lib/modules/windowsUser.inc:462 +msgid "Profile path is invalid!" +msgstr "Profil yolu geçersiz!" + +#: ../templates/profedit/profilemain.php:149 +msgid "Profile was saved." +msgstr "Profil kaydedildi" + +#: ../templates/profedit/profilemain.php:242 +msgid "Profiles" +msgstr "Profiller" + +#: ../lib/modules/qmailUser.inc:245 +msgid "Program to execute for all incoming mails." +msgstr "" + +#: ../lib/modules/zarafaServer.inc:77 ../lib/modules/zarafaServer.inc:121 +#: ../lib/modules/zarafaServer.inc:134 ../lib/modules/zarafaServer.inc:156 +#: ../lib/modules/zarafaServer.inc:205 ../lib/modules/zarafaServer.inc:376 +msgid "Proxy URL" +msgstr "Proxy URL" + +#: ../lib/modules/zarafaServer.inc:73 ../lib/modules/zarafaServer.inc:111 +#: ../lib/modules/zarafaServer.inc:131 ../lib/modules/zarafaServer.inc:218 +#: ../lib/modules/zarafaServer.inc:381 +msgid "Public store" +msgstr "" + +#: ../lib/modules/puppetClient.inc:63 +msgid "Puppet" +msgstr "Puppet" + +#: ../lib/modules/qmailUser.inc:80 ../lib/modules/qmailGroup.inc:49 +msgid "Qmail" +msgstr "Qmail" + +#: ../lib/modules/asteriskAccount.inc:174 +#: ../lib/modules/asteriskAccount.inc:277 +#: ../lib/modules/asteriskAccount.inc:346 +#: ../lib/modules/asteriskAccount.inc:505 +#: ../lib/modules/asteriskAccount.inc:831 +#: ../lib/modules/asteriskAccount.inc:1206 +msgid "Qualify" +msgstr "Nitelik" + +#: ../lib/modules/passwordSelfReset.inc:69 +#: ../lib/modules/passwordSelfReset.inc:151 +#: ../lib/modules/passwordSelfReset.inc:158 +#: ../lib/modules/passwordSelfReset.inc:171 +#: ../lib/modules/passwordSelfReset.inc:262 +#: ../lib/modules/passwordSelfReset.inc:298 +#: ../lib/modules/passwordSelfReset.inc:407 +#: ../lib/modules/passwordSelfReset.inc:551 +#: ../lib/modules/passwordSelfReset.inc:910 +msgid "Question" +msgstr "Soru" + +#: ../lib/modules/qmailUser.inc:661 ../lib/modules/quota.inc:80 +#: ../lib/modules/quota.inc:93 ../lib/modules/quota.inc:146 +#: ../lib/modules/zarafaUser.inc:513 ../lib/modules/systemQuotas.inc:51 +#: ../lib/modules/systemQuotas.inc:61 ../lib/modules/systemQuotas.inc:68 +#: ../lib/modules/systemQuotas.inc:74 ../lib/modules/systemQuotas.inc:81 +#: ../lib/modules/imapAccess.inc:100 ../lib/modules/imapAccess.inc:145 +msgid "Quota" +msgstr "Kota" + +#: ../lib/modules/quota.inc:691 +#, php-format +msgid "Quota for %s on %s" +msgstr "" + +#: ../lib/modules/zarafaUser.inc:93 ../lib/modules/zarafaUser.inc:192 +#: ../lib/modules/zarafaUser.inc:271 ../lib/modules/zarafaUser.inc:393 +#: ../lib/modules/zarafaUser.inc:444 ../lib/modules/zarafaUser.inc:548 +#: ../lib/modules/zarafaUser.inc:1297 ../lib/modules/zarafaUser.inc:1380 +msgid "Quota hard limit" +msgstr "" + +#: ../lib/modules/quota.inc:63 +msgid "Quota has wrong format!" +msgstr "" + +#: ../lib/modules/imapAccess.inc:299 ../lib/modules/imapAccess.inc:308 +msgid "Quota limit (kB)" +msgstr "Kota limiti" + +#: ../lib/modules/zarafaUser.inc:81 ../lib/modules/zarafaUser.inc:186 +#: ../lib/modules/zarafaUser.inc:245 ../lib/modules/zarafaUser.inc:384 +#: ../lib/modules/zarafaUser.inc:520 ../lib/modules/zarafaUser.inc:1308 +#: ../lib/modules/zarafaUser.inc:1371 +msgid "Quota override" +msgstr "Kota aşımı" + +#: ../lib/modules/qmailUser.inc:99 ../lib/modules/qmailUser.inc:126 +#: ../lib/modules/qmailUser.inc:212 ../lib/modules/qmailUser.inc:301 +#: ../lib/modules/qmailUser.inc:402 ../lib/modules/qmailUser.inc:668 +#: ../lib/modules/qmailUser.inc:1191 +msgid "Quota size" +msgstr "Kota genişliği" + +#: ../lib/modules/zarafaUser.inc:89 ../lib/modules/zarafaUser.inc:190 +#: ../lib/modules/zarafaUser.inc:263 ../lib/modules/zarafaUser.inc:390 +#: ../lib/modules/zarafaUser.inc:442 ../lib/modules/zarafaUser.inc:538 +#: ../lib/modules/zarafaUser.inc:1296 ../lib/modules/zarafaUser.inc:1377 +msgid "Quota soft limit" +msgstr "" + +#: ../lib/modules/zarafaUser.inc:85 ../lib/modules/zarafaUser.inc:188 +#: ../lib/modules/zarafaUser.inc:255 ../lib/modules/zarafaUser.inc:387 +#: ../lib/modules/zarafaUser.inc:440 ../lib/modules/zarafaUser.inc:528 +#: ../lib/modules/zarafaUser.inc:1295 ../lib/modules/zarafaUser.inc:1374 +msgid "Quota warning limit" +msgstr "Kota uyarı limiti" + +#: ../templates/masscreate.php:328 ../templates/profedit/profilepage.php:213 +#: ../lib/modules.inc:1001 ../help/help.inc:166 +msgid "RDN identifier" +msgstr "RDN tanımlayıcı" + +#: ../lib/types/host.inc:93 +msgid "RID (Windows UID)" +msgstr "RID (Windows UID)" + +#: ../lib/modules/sambaDomain.inc:90 ../lib/modules/sambaDomain.inc:151 +#: ../lib/modules/sambaDomain.inc:182 ../lib/modules/sambaDomain.inc:376 +#: ../lib/modules/sambaDomain.inc:382 ../lib/modules/sambaDomain.inc:643 +msgid "RID base" +msgstr "RID tabanı" + +#: ../lib/modules/sambaDomain.inc:345 +msgid "RID settings" +msgstr "RID ayarları" + +#: ../lib/modules/asteriskAccount.inc:186 +#: ../lib/modules/asteriskAccount.inc:283 +#: ../lib/modules/asteriskAccount.inc:349 +#: ../lib/modules/asteriskAccount.inc:527 +#: ../lib/modules/asteriskAccount.inc:859 +#: ../lib/modules/asteriskAccount.inc:1209 +msgid "RTP hold timeout" +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:182 +#: ../lib/modules/asteriskAccount.inc:281 +#: ../lib/modules/asteriskAccount.inc:348 +#: ../lib/modules/asteriskAccount.inc:520 +#: ../lib/modules/asteriskAccount.inc:849 +#: ../lib/modules/asteriskAccount.inc:1208 +msgid "RTP timeout" +msgstr "RTP zaman aşımı" + +#: ../lib/modules/customFields.inc:2418 +msgid "Radio buttons" +msgstr "Radyo butonları" + +#: ../lib/modules/range.inc:85 ../lib/modules/range.inc:419 +msgid "Range from" +msgstr "" + +#: ../lib/modules/range.inc:88 ../lib/modules/range.inc:432 +msgid "Range to" +msgstr "" + +#: ../lib/types/dhcp.inc:95 ../lib/modules/range.inc:67 +#: ../lib/modules/range.inc:99 ../lib/modules/range.inc:487 +msgid "Ranges" +msgstr "Aralıklar" + +#: ../templates/config/confmain.php:306 +msgid "Read" +msgstr "Oku" + +#: ../templates/config/confmain.php:261 ../lib/modules/customFields.inc:90 +#: ../lib/modules/customFields.inc:1483 +msgid "Read-only" +msgstr "Salt - oku" + +#: ../lib/modules/customFields.inc:91 +msgid "" +"Read-only fields cannot be changed by the user. Use this if you want to show " +"an attribute just for information." +msgstr "" +"Salt-okunur alanlar kullanıcı tarafından değiştirilemez. Sadece bilgi için " +"öznitelik göstermek istediğinizde bunu kullanın" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2289 +msgid "Really delete value from this attribute?" +msgstr "Bu özniteliğin değerini silmek istediğinizden emin misiniz?" + +#: ../lib/modules/mitKerberos.inc:113 ../lib/modules/mitKerberos.inc:145 +#: ../lib/modules/mitKerberos.inc:187 ../lib/modules/freeRadius.inc:85 +#: ../lib/modules/freeRadius.inc:119 ../lib/modules/freeRadius.inc:139 +#: ../lib/modules/freeRadius.inc:170 ../lib/modules/freeRadius.inc:224 +#: ../lib/modules/freeRadius.inc:270 ../lib/modules/freeRadius.inc:618 +#: ../lib/modules/heimdalKerberos.inc:91 +#: ../lib/modules/heimdalKerberos.inc:150 +#: ../lib/modules/heimdalKerberos.inc:156 +msgid "Realm" +msgstr "erişim alanı" + +#: ../lib/modules/nisMailAlias.inc:74 ../lib/modules/nisMailAlias.inc:163 +msgid "Recipient" +msgstr "Alıcı" + +#: ../lib/modules/nisMailAlias.inc:116 ../lib/modules/nisMailAlias.inc:117 +msgid "Recipient is invalid!" +msgstr "Alıcı geçersiz!" + +#: ../lib/types/mailAlias.inc:92 ../lib/modules/nisMailAlias.inc:78 +#: ../lib/modules/nisMailAlias.inc:97 ../lib/modules/nisMailAlias.inc:105 +#: ../lib/modules/nisMailAlias.inc:378 +msgid "Recipient list" +msgstr "Alıcı listesi" + +#: ../lib/modules/sambaSamAccount.inc:237 +#: ../lib/modules/sambaSamAccount.inc:377 +#: ../lib/modules/sambaSamAccount.inc:1535 +#: ../lib/modules/sambaSamAccount.inc:1945 +msgid "Reconnect if disconnected" +msgstr "Bağlantı kesildiğinde yeniden bağlan" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:63 +msgid "Recursive copy" +msgstr "Özyineli kopyalama" + +#: ../templates/3rdParty/pla/htdocs/copy.php:49 +msgid "Recursive copy progress" +msgstr "Özyineli kopyalama süreci" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:31 +msgid "Recursive delete progress" +msgstr "Özyineli silme süreci" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:65 +msgid "Recursively copy all children of this object as well." +msgstr "" + +#: ../templates/config/profmanage.php:247 +#: ../templates/config/profmanage.php:285 +#: ../templates/config/mainmanage.php:379 ../templates/config/confmain.php:436 +#: ../lib/modules/selfRegistration.inc:357 +#: ../lib/modules/sambaSamAccount.inc:2293 +#: ../lib/modules/posixAccount.inc:2429 ../lib/modules/windowsUser.inc:1322 +msgid "Reenter password" +msgstr "Parolayı yeniden gir" + +#: ../templates/serverInfo.php:187 +msgid "Referrals" +msgstr "" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1051 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1054 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:249 +#: ../lib/modules/asteriskExtension.inc:447 ../lib/lists.inc:781 +msgid "Refresh" +msgstr "yenile" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +msgid "Refresh this entry" +msgstr "Bu iletiyi yenile" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:247 +msgid "Refreshing tree" +msgstr "" + +#: ../lib/modules/selfRegistration.inc:282 +msgid "Register new account" +msgstr "Yeni hesap kaydet" + +#: ../lib/modules/inetOrgPerson.inc:82 ../lib/modules/inetOrgPerson.inc:142 +#: ../lib/modules/inetOrgPerson.inc:179 ../lib/modules/inetOrgPerson.inc:322 +#: ../lib/modules/inetOrgPerson.inc:470 ../lib/modules/inetOrgPerson.inc:632 +#: ../lib/modules/inetOrgPerson.inc:761 ../lib/modules/inetOrgPerson.inc:1646 +#: ../lib/modules/inetOrgPerson.inc:2367 ../lib/modules/inetOrgPerson.inc:3035 +msgid "Registered address" +msgstr "Kayıtlı adres" + +#: ../lib/modules/inetOrgPerson.inc:762 +msgid "Registered address, city" +msgstr "Kayıtlı adres,şeir" + +#: ../lib/modules/asteriskAccount.inc:206 +#: ../lib/modules/asteriskAccount.inc:293 +#: ../lib/modules/asteriskAccount.inc:354 +#: ../lib/modules/asteriskAccount.inc:563 +#: ../lib/modules/asteriskAccount.inc:905 +#: ../lib/modules/asteriskAccount.inc:1214 +msgid "Registration context" +msgstr "Kayıt ,çeriğ" + +#: ../lib/modules/asteriskAccount.inc:210 +#: ../lib/modules/asteriskAccount.inc:295 +#: ../lib/modules/asteriskAccount.inc:355 +#: ../lib/modules/asteriskAccount.inc:570 +#: ../lib/modules/asteriskAccount.inc:914 +#: ../lib/modules/asteriskAccount.inc:1215 +msgid "Registration extension" +msgstr "Kayıt uzantısı" + +#: ../lib/modules/asteriskAccount.inc:226 +#: ../lib/modules/asteriskAccount.inc:303 +#: ../lib/modules/asteriskAccount.inc:359 +#: ../lib/modules/asteriskAccount.inc:599 +#: ../lib/modules/asteriskAccount.inc:954 +#: ../lib/modules/asteriskAccount.inc:1219 +msgid "Registration server" +msgstr "Kayıt sunucusu" + +#: ../lib/modules/kolabUser.inc:53 +msgid "Reject if conflicts" +msgstr "" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +msgid "Reloading" +msgstr "Yeniden yükleme" + +#: ../templates/login.php:430 +msgid "Remember user name" +msgstr "Kullanıcı adını hatırla" + +#: ../templates/config/confmodules.php:310 +#: ../templates/pdfedit/pdfpage.php:477 ../lib/modules/mitKerberos.inc:689 +#: ../lib/modules/qmailUser.inc:912 ../lib/modules/windowsHost.inc:151 +#: ../lib/modules/sambaSamAccount.inc:1454 ../lib/modules/kolabUser.inc:822 +#: ../lib/modules/shadowAccount.inc:467 ../lib/modules/freeRadius.inc:476 +#: ../lib/modules/sudoRole.inc:266 ../lib/modules/sudoRole.inc:293 +#: ../lib/modules/sudoRole.inc:320 ../lib/modules/sudoRole.inc:347 +#: ../lib/modules/sudoRole.inc:374 ../lib/modules/sudoRole.inc:401 +#: ../lib/modules/heimdalKerberos.inc:595 ../lib/modules/windowsGroup.inc:341 +msgid "Remove" +msgstr "Kaldır" + +#: ../lib/modules/asteriskVoicemail.inc:282 +msgid "Remove Asterisk voicemail extension" +msgstr "Asterisk sesli posta uzantısını kaldır" + +#: ../lib/modules/authorizedServiceObject.inc:190 +msgid "Remove Authorized Service extension" +msgstr "Yetkili servis uzantısını kaldır" + +#: ../lib/modules/eduPerson.inc:476 +msgid "Remove EDU person extension" +msgstr "EDU person uzantısını kaldır" + +#: ../lib/modules/freeRadius.inc:340 +msgid "Remove FreeRadius extension" +msgstr "FreeRadius uzantısını kaldır" + +#: ../lib/modules/ipHost.inc:176 +msgid "Remove IP address extension" +msgstr "IP adresi uzantısını kaldır" + +#: ../lib/modules/mitKerberos.inc:473 ../lib/modules/heimdalKerberos.inc:394 +msgid "Remove Kerberos extension" +msgstr "Kerberos uzantısını kaldır" + +#: ../lib/modules/puppetClient.inc:273 +msgid "Remove Puppet extension" +msgstr "Puppet uzantısını kaldır" + +#: ../lib/modules/sambaSamAccount.inc:1281 +msgid "Remove Samba 3 extension" +msgstr "Samba 3 uzantısını kaldır" + +#: ../lib/modules/shadowAccount.inc:366 +msgid "Remove Shadow account extension" +msgstr "Shadow hesap uzantısını kalır" + +#: ../lib/modules/posixGroup.inc:242 ../lib/modules/posixAccount.inc:1413 +msgid "Remove Unix extension" +msgstr "Unix uzantısını kaldır" + +#: ../lib/modules/zarafaContact.inc:247 ../lib/modules/zarafaGroup.inc:303 +#: ../lib/modules/zarafaUser.inc:687 ../lib/modules/zarafaServer.inc:225 +msgid "Remove Zarafa extension" +msgstr "Zarafa uzantısını kaldır" + +#: ../lib/modules/customFields.inc:410 +msgid "Remove extension" +msgstr "Uzantıyı kaldır" + +#: ../lib/types/user.inc:385 +msgid "Remove from all Unix groups" +msgstr "Tüm UNIX gruplarını kaldır" + +#: ../lib/types/user.inc:389 +msgid "Remove from all group of (unique) names" +msgstr "Tüm grup adlarını kaldır" + +#: ../lib/modules/hostObject.inc:157 +msgid "Remove host extension" +msgstr "Ana uzantıyı kaldır" + +#: ../lib/modules/posixGroup.inc:211 ../lib/modules/posixAccount.inc:1406 +#: ../lib/modules/inetOrgPerson.inc:2089 +msgid "Remove password" +msgstr "Parolayı kaldır" + +#: ../lib/modules/passwordSelfReset.inc:316 +msgid "Remove password self reset extension" +msgstr "" + +#: ../lib/modules/qmailUser.inc:699 ../lib/modules/qmailGroup.inc:620 +msgid "Remove qmail extension" +msgstr "qmail uzantısını kaldır" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:147 +#: ../lib/modules/zarafaContact.inc:407 ../lib/modules/zarafaGroup.inc:476 +#: ../lib/modules/device.inc:287 ../lib/modules/zarafaUser.inc:934 +#: ../lib/modules/inetOrgPerson.inc:2213 ../lib/modules/qmailGroup.inc:843 +#: ../lib/modules/windowsGroup.inc:538 ../lib/modules/groupOfNames.inc:366 +#: ../lib/modules/groupOfNames.inc:501 +msgid "Remove selected entries" +msgstr "Seçili tüm girdileri kaldır" + +#: ../templates/config/conftypes.php:248 +msgid "Remove this account type" +msgstr "Bu hesap tipini kaldır" + +#: ../lib/modules/inetOrgPerson.inc:3137 +msgid "Remove/replace photo" +msgstr "Resim kaldır/değiştir" + +#: ../templates/config/profmanage.php:263 +#: ../templates/selfService/profManage.php:225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1152 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1155 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:24 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:35 +#: ../templates/3rdParty/pla/htdocs/rename.php:53 +msgid "Rename" +msgstr "Yeniden adlandır" + +#: ../templates/3rdParty/pla/htdocs/rename_form.php:28 +#, php-format +msgid "Rename %s to a new object." +msgstr "Yeni bir nesneyi eniden adlandır %s" + +#: ../templates/config/profmanage.php:258 +#: ../templates/config/profmanage.php:264 +#: ../templates/selfService/profManage.php:216 +#: ../templates/selfService/profManage.php:226 ../help/help.inc:128 +msgid "Rename profile" +msgstr "Profili yeiden adlandırma" + +#: ../templates/3rdParty/pla/htdocs/rename.php:48 +msgid "Rename successful!" +msgstr "Yeniden adlandırma başarıyla gerçekleştirildi!" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +msgid "Rename this entry" +msgstr "Bu girdiyi yeniden adlandır" + +#: ../templates/config/profmanage.php:98 +#: ../templates/selfService/profManage.php:72 +msgid "Renamed profile." +msgstr "Yeniden adlandırılan profil" + +#: ../templates/3rdParty/pla/htdocs/import.php:30 +#: ../templates/3rdParty/pla/htdocs/import.php:31 +msgid "Renaming" +msgstr "Yeniden adlandırma" + +#: ../lib/modules/mitKerberos.inc:125 ../lib/modules/mitKerberos.inc:189 +#: ../lib/modules/mitKerberos.inc:229 ../lib/modules/mitKerberos.inc:246 +#: ../lib/modules/mitKerberos.inc:367 ../lib/modules/mitKerberos.inc:772 +#: ../lib/modules/heimdalKerberos.inc:107 +#: ../lib/modules/heimdalKerberos.inc:158 +#: ../lib/modules/heimdalKerberos.inc:198 +#: ../lib/modules/heimdalKerberos.inc:215 +#: ../lib/modules/heimdalKerberos.inc:310 +#: ../lib/modules/heimdalKerberos.inc:688 +msgid "Renewable lifetime" +msgstr "" + +#: ../lib/modules/mitKerberos.inc:286 ../lib/modules/mitKerberos.inc:287 +#: ../lib/modules/heimdalKerberos.inc:250 +#: ../lib/modules/heimdalKerberos.inc:251 +msgid "Renewable lifetime must be a number." +msgstr "" + +#: ../templates/lists/changePassword.php:331 +#: ../lib/modules/passwordSelfReset.inc:933 ../lib/modules.inc:1045 +msgid "Repeat password" +msgstr "Parola tekrarla" + +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:1117 +msgid "Replaced $user or $group in homedir." +msgstr "" + +#: ../templates/config/confmain.php:335 ../help/help.inc:231 +msgid "Reply-to address" +msgstr "" + +#: ../templates/config/confmain.php:499 +msgid "Reply-to address for password mails is invalid." +msgstr "" + +#: ../lib/types/ppolicyType.inc:89 ../lib/modules/ppolicy.inc:121 +#: ../lib/modules/ppolicy.inc:147 ../lib/modules/ppolicy.inc:281 +#: ../lib/modules/ppolicy.inc:493 +msgid "Require password change on first login" +msgstr "" + +#: ../lib/modules/windowsUser.inc:180 ../lib/modules/windowsUser.inc:346 +#: ../lib/modules/windowsUser.inc:400 ../lib/modules/windowsUser.inc:569 +#: ../lib/modules/windowsUser.inc:1247 +msgid "Require smartcard" +msgstr "" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 +msgid "Required attribute for object classes" +msgstr "Nesne sınıfları için gereken öznitelik" + +#: ../templates/schema/schema.php:383 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1567 +msgid "Required attributes" +msgstr "Gerekli öznitelikler" + +#: ../lib/modules/mitKerberos.inc:173 ../lib/modules/mitKerberos.inc:463 +msgid "Requires hardware authentication" +msgstr "Gerekli donanımı doğrulama" + +#: ../lib/modules/mitKerberos.inc:170 ../lib/modules/mitKerberos.inc:458 +#: ../lib/modules/heimdalKerberos.inc:144 +#: ../lib/modules/heimdalKerberos.inc:385 +msgid "Requires preauthentication" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:1275 +msgid "Reset" +msgstr "Yeniden başlat" + +#: ../lib/modules.inc:1190 +msgid "Reset changes" +msgstr "Değişiklikleri sıfırla." + +#: ../lib/modules/sambaSamAccount.inc:254 +#: ../lib/modules/sambaSamAccount.inc:1274 +msgid "Reset password" +msgstr "Sıfırlama şifresi" + +#: ../lib/modules/sambaDomain.inc:130 ../lib/modules/sambaDomain.inc:192 +#: ../lib/modules/sambaDomain.inc:217 ../lib/modules/sambaDomain.inc:341 +#: ../lib/modules/sambaDomain.inc:650 +msgid "Reset time after lockout" +msgstr "" + +#: ../lib/modules/sambaDomain.inc:217 +msgid "Reset time after lockout must be are natural number." +msgstr "" + +#: ../lib/modules/zarafaUser.inc:555 +msgid "Resource settings" +msgstr "Kaynak yazılım ayarları" + +#: ../lib/modules/asteriskAccount.inc:178 +#: ../lib/modules/asteriskAccount.inc:279 +#: ../lib/modules/asteriskAccount.inc:347 +#: ../lib/modules/asteriskAccount.inc:512 +#: ../lib/modules/asteriskAccount.inc:840 +#: ../lib/modules/asteriskAccount.inc:1207 +msgid "Restrict caller ID" +msgstr "" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:113 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:118 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:550 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:587 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:198 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:84 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:122 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +msgid "Retrieving DN" +msgstr "" + +#: ../lib/modules/ddns.inc:99 ../lib/modules/ddns.inc:107 +#: ../lib/modules/ddns.inc:128 ../lib/modules/ddns.inc:390 +#: ../lib/modules/ddns.inc:419 +msgid "Reverse zone name" +msgstr "" + +#: ../templates/config/confmain.php:302 ../help/help.inc:114 +msgid "Rights for the home directory" +msgstr "Ana dizin için haklar" + +#: ../lib/types/sudo.inc:77 ../lib/modules/sudoRole.inc:55 +#: ../lib/modules/sudoRole.inc:121 ../lib/modules/sudoRole.inc:171 +#: ../lib/modules/sudoRole.inc:247 ../lib/modules/sudoRole.inc:682 +msgid "Role name" +msgstr "Rol adı" + +#: ../lib/modules/zarafaUser.inc:560 ../lib/modules/zarafaUser.inc:1312 +msgid "Room" +msgstr "Oda" + +#: ../lib/modules/inetOrgPerson.inc:144 ../lib/modules/inetOrgPerson.inc:185 +#: ../lib/modules/inetOrgPerson.inc:326 ../lib/modules/inetOrgPerson.inc:544 +#: ../lib/modules/inetOrgPerson.inc:638 ../lib/modules/inetOrgPerson.inc:828 +#: ../lib/modules/inetOrgPerson.inc:1695 ../lib/modules/inetOrgPerson.inc:2374 +#: ../lib/modules/inetOrgPerson.inc:3068 +msgid "Room number" +msgstr "Oda numarası" + +#: ../lib/modules/inetLocalMailRecipient.inc:61 +#: ../lib/modules/inetLocalMailRecipient.inc:93 +#: ../lib/modules/inetLocalMailRecipient.inc:112 +#: ../lib/modules/inetLocalMailRecipient.inc:141 +#: ../lib/modules/inetLocalMailRecipient.inc:299 +msgid "Routing address" +msgstr "Yönlendirme adresi" + +#: ../lib/modules/customFields.inc:118 ../lib/modules/customFields.inc:2091 +msgid "Rows" +msgstr "" + +#: ../lib/modules/asteriskExtension.inc:132 +#: ../lib/modules/asteriskExtension.inc:304 +msgid "Rules" +msgstr "Kurallar" + +#: ../lib/modules/customScripts.inc:153 +msgid "Run" +msgstr "başla" + +#: ../lib/types/sudo.inc:82 +msgid "Run group" +msgstr "Başlangıç grubu" + +#: ../lib/modules/sudoRole.inc:79 ../lib/modules/sudoRole.inc:107 +#: ../lib/modules/sudoRole.inc:158 ../lib/modules/sudoRole.inc:177 +#: ../lib/modules/sudoRole.inc:186 ../lib/modules/sudoRole.inc:372 +#: ../lib/modules/sudoRole.inc:688 +msgid "Run groups" +msgstr "Başlangıç grupları" + +#: ../lib/types/sudo.inc:81 +msgid "Run user" +msgstr "Başlangıç kullanıcısı" + +#: ../lib/modules/sudoRole.inc:75 ../lib/modules/sudoRole.inc:102 +#: ../lib/modules/sudoRole.inc:152 ../lib/modules/sudoRole.inc:176 +#: ../lib/modules/sudoRole.inc:185 ../lib/modules/sudoRole.inc:345 +#: ../lib/modules/sudoRole.inc:687 +msgid "Run users" +msgstr "Başlangıç kullanıcıları" + +#: ../lib/modules/windowsUser.inc:248 +msgid "S.M." +msgstr "S.M." + +#: ../templates/serverInfo.php:129 +msgid "SASL mechanisms" +msgstr "SASL mekanizması" + +#: ../lib/modules/asteriskAccount.inc:143 +msgid "SIP URI for a realtime peer." +msgstr "Gerçek zamanlı kollektif bir çalışma için SIP URI" + +#: ../lib/modules/asteriskAccount.inc:119 +msgid "SIP user agent identification." +msgstr "SIP kullanıcı aracısı tanımlama" + +#: ../templates/tests/lamdaemonTest.php:243 +msgid "SSH connection" +msgstr "SSH bağlantı" + +#: ../templates/tests/lamdaemonTest.php:256 +msgid "SSH connection could be established." +msgstr "SSH bağlantısı kuruldu." + +#: ../lib/modules/ldapPublicKey.inc:55 ../lib/modules/ldapPublicKey.inc:65 +#: ../lib/modules/ldapPublicKey.inc:69 ../lib/modules/ldapPublicKey.inc:81 +#: ../lib/modules/ldapPublicKey.inc:117 +msgid "SSH public key" +msgstr "SSH ortak anahtar" + +#: ../lib/modules/ldapPublicKey.inc:88 ../lib/modules/ldapPublicKey.inc:92 +#: ../lib/modules/ldapPublicKey.inc:225 ../lib/modules/ldapPublicKey.inc:265 +msgid "SSH public keys" +msgstr "SSH ortak anahtarlar" + +#: ../help/help.inc:83 +msgid "SSL certificate" +msgstr "SSL sertifikası" + +#: ../templates/config/mainmanage.php:262 +msgid "SSL certificates" +msgstr "SSL sertifikaları" + +#: ../lib/modules/zarafaServer.inc:65 ../lib/modules/zarafaServer.inc:99 +#: ../lib/modules/zarafaServer.inc:129 ../lib/modules/zarafaServer.inc:168 +#: ../lib/modules/zarafaServer.inc:196 ../lib/modules/zarafaServer.inc:374 +msgid "SSL port" +msgstr "SSL portu" + +#: ../templates/lists/changePassword.php:366 +#: ../templates/lists/changePassword.php:397 +msgid "Samba" +msgstr "Samba" + +#: ../lib/types/user.inc:276 ../lib/types/user.inc:373 +#: ../lib/types/user.inc:405 ../lib/types/user.inc:829 +#: ../lib/modules/sambaSamAccount.inc:139 +#: ../lib/modules/sambaGroupMapping.inc:94 +msgid "Samba 3" +msgstr "Samba 3" + +#: ../lib/modules/sambaDomain.inc:203 ../lib/modules/sambaDomain.inc:204 +msgid "Samba 3 domain SID is invalid!" +msgstr "Samba 3 SID erişim alanı geçersiz!" + +#: ../lib/types/smbDomain.inc:62 +msgid "Samba 3 domain entries" +msgstr "Samba 3 erişim alanı girdileri" + +#: ../lib/modules/posixGroup.inc:382 ../lib/modules/posixAccount.inc:203 +#: ../lib/modules/posixAccount.inc:221 +msgid "Samba ID pool" +msgstr "Samba ID havuzu" + +#: ../lib/modules/posixGroup.inc:393 ../lib/modules/posixGroup.inc:499 +#: ../lib/modules/posixGroup.inc:584 ../lib/modules/posixAccount.inc:131 +#: ../lib/modules/posixAccount.inc:208 ../lib/modules/posixAccount.inc:226 +#: ../lib/modules/posixAccount.inc:490 +msgid "Samba ID pool DN" +msgstr "Samba ID havuz DN" + +#: ../lib/modules/sambaSamAccount.inc:319 +#: ../lib/modules/sambaSamAccount.inc:323 +#: ../lib/modules/sambaSamAccount.inc:464 +#: ../lib/modules/sambaSamAccount.inc:530 +msgid "Samba RID" +msgstr "Samba RID" + +#: ../lib/modules/sambaGroupMapping.inc:122 +#: ../lib/modules/sambaGroupMapping.inc:147 +msgid "Samba RID number" +msgstr "Samba RID numarası" + +#: ../lib/modules/sambaGroupMapping.inc:116 +msgid "Samba display name" +msgstr "Samba görüntü adı" + +#: ../lib/modules/sambaDomain.inc:51 +msgid "Samba domain" +msgstr "Samba erişim alanı" + +#: ../lib/modules/sambaGroupMapping.inc:238 +msgid "Samba domain name" +msgstr "Samba erişim alanı adı" + +#: ../lib/types/smbDomain.inc:53 +msgid "Samba domains" +msgstr "Samba erişim alanları" + +#: ../lib/modules/sambaGroupMapping.inc:106 +#: ../lib/modules/sambaGroupMapping.inc:128 +#: ../lib/modules/sambaGroupMapping.inc:155 +#: ../lib/modules/sambaGroupMapping.inc:528 +msgid "Samba group type" +msgstr "Samba grup tipi" + +#: ../lib/modules/sambaSamAccount.inc:251 +msgid "Samba password" +msgstr "Samba parolası" + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:219 +#: ../lib/modules/sambaSamAccount.inc:304 +#: ../lib/modules/sambaSamAccount.inc:307 +#: ../lib/modules/sambaSamAccount.inc:505 +#: ../lib/modules/sambaSamAccount.inc:589 +#: ../lib/modules/sambaSamAccount.inc:1215 +#: ../lib/modules/sambaSamAccount.inc:1741 +#: ../lib/modules/sambaSamAccount.inc:1879 +msgid "Samba workstations" +msgstr "Samba iş istasyonları" + +#: ../lib/modules/sambaSamAccount.inc:1351 +msgid "Saturday" +msgstr "Cumartesi" + +#: ../templates/config/confmodules.php:224 +#: ../templates/config/confmain.php:450 +#: ../templates/config/moduleSettings.php:235 +#: ../templates/config/conftypes.php:318 +#: ../templates/selfService/selfServiceMain.php:397 +#: ../templates/selfService/adminMain.php:660 +#: ../templates/pdfedit/pdfpage.php:636 +#: ../templates/profedit/profilepage.php:238 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1243 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1247 +#: ../lib/modules/inetOrgPerson.inc:3237 ../lib/modules/customFields.inc:2944 +#: ../lib/modules.inc:1184 +msgid "Save" +msgstr "Kaydet" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +msgid "Save a dump of this object" +msgstr "Bu nesnenin bir dökümünü kaydet." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1244 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Save a dump of this object and all of its children" +msgstr "Bu nesnenin ve alt basamak girdilerinin tümünün bir dökümünü kaydet" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:90 +msgid "Save as file" +msgstr "Dosya olarak kaydet" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:172 +msgid "Save changes" +msgstr "Değişiklikleri kaydet" + +#: ../lib/tools/schemaBrowser.inc:44 +msgid "Schema browser" +msgstr "Düzen tarayıcısı" + +#: ../templates/serverInfo.php:119 +msgid "Schema suffix" +msgstr "Şema son eki" + +#: ../templates/tests/schemaTest.php:55 ../templates/tests/index.php:58 +#: ../lib/tools/tests.inc:116 +msgid "Schema test" +msgstr "Düzen testi" + +#: ../lib/modules/eduPerson.inc:85 ../lib/modules/eduPerson.inc:89 +#: ../lib/modules/eduPerson.inc:168 ../lib/modules/eduPerson.inc:226 +#: ../lib/modules/eduPerson.inc:282 ../lib/modules/eduPerson.inc:767 +msgid "Scoped affiliations" +msgstr "" + +#: ../help/help.inc:99 +msgid "Script path" +msgstr "Komut yolu" + +#: ../templates/config/confmain.php:543 +msgid "Script path is invalid!" +msgstr "komut yolu geçersiz" + +#: ../templates/config/confmain.php:562 +msgid "Script rights are invalid!" +msgstr "Komut hakları geçersiz!" + +#: ../templates/config/confmain.php:546 +msgid "Script server is invalid!" +msgstr "Komut sunucusu uygun değil!" + +#: ../help/help.inc:110 +msgid "Script servers" +msgstr "Komut sunucuları" + +#: ../templates/serverInfo.php:300 ../templates/serverInfo.php:380 +#: ../templates/3rdParty/pla/lib/QueryRender.php:75 +#: ../templates/3rdParty/pla/lib/QueryRender.php:180 +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:619 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:235 +msgid "Search" +msgstr "Ara" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +#: ../templates/3rdParty/pla/lib/QueryRender.php:190 +msgid "Search Results" +msgstr "Arama sonuçları" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +#: ../templates/3rdParty/pla/lib/export_functions.php:201 +#: ../templates/3rdParty/pla/htdocs/export_form.php:81 +msgid "Search filter" +msgstr "Arama filtresi" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:293 +msgid "Search returned no results" +msgstr "" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +#: ../templates/3rdParty/pla/lib/export_functions.php:200 +#: ../templates/3rdParty/pla/htdocs/export_form.php:67 +msgid "Search scope" +msgstr "Arama kapsamı" + +#: ../lib/modules/asteriskExtension.inc:450 +msgid "Search tree suffix for users" +msgstr "" + +#: ../templates/pdfedit/pdfpage.php:608 +msgid "Section" +msgstr "Bölüm" + +#: ../lib/modules/windowsGroup.inc:60 +msgid "Security" +msgstr "Güvenlik" + +#: ../templates/3rdParty/pla/lib/Template.php:397 +#: ../templates/3rdParty/pla/lib/Template.php:422 +#: ../templates/3rdParty/pla/lib/Template.php:427 +#: ../templates/3rdParty/pla/lib/Template.php:484 +#: ../templates/3rdParty/pla/lib/Template.php:509 +#: ../templates/3rdParty/pla/lib/Template.php:514 +msgid "Security error: The file being uploaded may be malicious." +msgstr "Güvenlik hatası: Yüklenen dosya kötü amaçlı olabilir." + +#: ../lib/modules/zarafaGroup.inc:75 ../lib/modules/zarafaGroup.inc:172 +#: ../lib/modules/zarafaGroup.inc:197 ../lib/modules/zarafaGroup.inc:281 +#: ../lib/modules/zarafaGroup.inc:661 +msgid "Security group" +msgstr "Güvenlik grubu" + +#: ../lib/modules/windowsGroup.inc:139 +msgid "" +"Security groups are used for permission management and distribution groups " +"as email lists." +msgstr "" + +#: ../lib/modules/passwordSelfReset.inc:73 +#: ../lib/modules/passwordSelfReset.inc:176 +#: ../lib/modules/passwordSelfReset.inc:218 +msgid "Security questions" +msgstr "Güvenlik soruları" + +#: ../templates/config/mainmanage.php:256 ../templates/config/confmain.php:440 +msgid "Security settings" +msgstr "Güvenlik ayarları" + +#: ../templates/help.php:94 +msgid "See also" +msgstr "" + +#: ../lib/account.inc:762 +msgid "See the manual for instructions to solve this problem." +msgstr "" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:494 +msgid "Select a template for the creation process" +msgstr "Oluşturma süreci için bir şablon seç" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:498 +msgid "Select a template to edit the entry" +msgstr "Girdi düzenlemek için bir şablon seç" + +#: ../lib/lists.inc:468 +msgid "Select all" +msgstr "Hepsini seç" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:31 +msgid "Select an LDIF file" +msgstr "Bir LDIF dosyası seç" + +#: ../lib/modules/nisnetgroup.inc:233 ../lib/modules/nisnetgroup.inc:262 +msgid "Select host" +msgstr "Yönetici seç" + +#: ../lib/modules/customFields.inc:2619 +msgid "Select list" +msgstr "Liste seç" + +#: ../lib/modules/nisMailAlias.inc:170 ../lib/modules/nisMailAlias.inc:185 +msgid "Select mail" +msgstr "Mail seç" + +#: ../lib/modules/nisnetgroup.inc:239 ../lib/modules/nisnetgroup.inc:268 +msgid "Select user" +msgstr "Kullanıcı seç" + +#: ../lib/modules/posixAccount.inc:1463 ../lib/modules/posixAccount.inc:1496 +#: ../lib/modules/windowsUser.inc:726 ../lib/modules/nisnetgroup.inc:377 +#: ../lib/modules/groupOfNamesUser.inc:111 +msgid "Selected groups" +msgstr "Seçilen gruplar" + +#: ../templates/masscreate.php:158 ../templates/config/confmodules.php:299 +msgid "Selected modules" +msgstr "Seçilen modüller" + +#: ../lib/modules/posixGroup.inc:291 ../lib/modules/asteriskExtension.inc:454 +msgid "Selected users" +msgstr "Seçilen kullanıcılar" + +#: ../templates/selfService/adminMain.php:298 +msgid "Self service configuration" +msgstr "Self servis yapılandırma" + +#: ../templates/selfService/adminMain.php:352 +msgid "Self service configuration editor" +msgstr "Self servis yapılandırma editörü" + +#: ../templates/selfService/adminMain.php:358 +msgid "Self service login" +msgstr "Self servis oturum açma" + +#: ../lib/modules/passwordSelfReset.inc:195 +msgid "Self service login attribute" +msgstr "Self servis oturum açma özniteliği" + +#: ../templates/selfService/adminMain.php:344 +msgid "Self service profile" +msgstr "Self servis profili" + +#: ../lib/modules/passwordSelfReset.inc:119 +#: ../lib/modules/passwordSelfReset.inc:238 +msgid "Send confirmation mail" +msgstr "Doğrulama maili gönder" + +#: ../lib/modules/passwordSelfReset.inc:101 +#: ../lib/modules/passwordSelfReset.inc:222 +msgid "Send notification mail" +msgstr "Bildirim maili gönder" + +#: ../lib/modules/inetOrgPerson.inc:525 ../lib/modules/inetOrgPerson.inc:797 +msgid "Send password via mail" +msgstr "Mail kanalıyla parolagönder" + +#: ../templates/lists/changePassword.php:305 +#: ../templates/lists/changePassword.php:335 ../lib/modules.inc:1062 +#: ../help/help.inc:188 +msgid "Send via mail" +msgstr "Mail kanalıyla gönder" + +#: ../lib/modules/qmailGroup.inc:83 ../lib/modules/qmailGroup.inc:213 +#: ../lib/modules/qmailGroup.inc:217 ../lib/modules/qmailGroup.inc:346 +#: ../lib/modules/qmailGroup.inc:401 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:512 ../lib/modules/qmailGroup.inc:1065 +msgid "Sender email addresses" +msgstr "Gönderici e-posta adresleri" + +#: ../lib/modules/qmailGroup.inc:81 ../lib/modules/qmailGroup.inc:165 +#: ../lib/modules/qmailGroup.inc:169 ../lib/modules/qmailGroup.inc:288 +#: ../lib/modules/qmailGroup.inc:380 ../lib/modules/qmailGroup.inc:514 +#: ../lib/modules/qmailGroup.inc:783 ../lib/modules/qmailGroup.inc:1064 +msgid "Sender entries" +msgstr "Gönderici girdileri" + +#: ../lib/modules/qmailGroup.inc:85 ../lib/modules/qmailGroup.inc:181 +#: ../lib/modules/qmailGroup.inc:185 ../lib/modules/qmailGroup.inc:304 +#: ../lib/modules/qmailGroup.inc:386 ../lib/modules/qmailGroup.inc:513 +#: ../lib/modules/qmailGroup.inc:1066 +msgid "Sender filter" +msgstr "Gönderici filtresi" + +#: ../lib/modules/passwordSelfReset.inc:102 +msgid "Sends a mail to the user to inform him about the password change." +msgstr "Parola değiştirmesi için kullanıcıya e-posta gönderme" + +#: ../lib/modules/passwordSelfReset.inc:120 +msgid "" +"Sends a mail to the user to validate his email address before the password " +"change." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:798 ../help/help.inc:189 +msgid "" +"Sends the password to the user via mail. Please edit your LAM server profile " +"to setup the mail settings." +msgstr "" + +#: ../templates/config/mainmanage.php:312 ../lib/modules/device.inc:58 +#: ../lib/modules/device.inc:90 ../lib/modules/device.inc:120 +#: ../lib/modules/device.inc:176 ../lib/modules/device.inc:438 +msgid "Serial number" +msgstr "Seri numarası" + +#: ../templates/tests/lamdaemonTest.php:72 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:166 +#: ../templates/3rdParty/pla/htdocs/import.php:47 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:110 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +#: ../templates/3rdParty/pla/htdocs/export_form.php:56 +#: ../lib/modules/kolabGroup.inc:270 +msgid "Server" +msgstr "Sunucu" + +#: ../templates/config/confmain.php:238 +#: ../templates/selfService/adminMain.php:409 ../lib/modules/qmailUser.inc:111 +#: ../lib/modules/qmailUser.inc:156 ../lib/modules/qmailUser.inc:236 +#: ../lib/modules/qmailUser.inc:351 ../lib/modules/qmailUser.inc:420 +#: ../lib/modules/qmailUser.inc:585 ../lib/modules/qmailUser.inc:1195 +#: ../lib/modules/imapAccess.inc:70 ../lib/modules/imapAccess.inc:108 +#: ../help/help.inc:58 +msgid "Server address" +msgstr "Sunucu adresi" + +#: ../templates/config/confmain.php:483 +#: ../templates/selfService/adminMain.php:187 +msgid "Server address is invalid!" +msgstr "Sunucu adresi uygun değil!" + +#: ../templates/serverInfo.php:103 ../lib/tools/serverInfo.inc:44 +msgid "Server information" +msgstr "Sunucu bilgisi" + +#: ../templates/config/confmain.php:299 +msgid "Server list" +msgstr "Sunucu listesi" + +#: ../templates/login.php:471 ../templates/config/confmodules.php:137 +#: ../templates/config/confmain.php:167 +#: ../templates/config/moduleSettings.php:136 +#: ../templates/config/conftypes.php:155 +msgid "Server profile" +msgstr "Sunucu profili" + +#: ../templates/config/confmain.php:268 +#: ../templates/selfService/adminMain.php:429 +msgid "Server settings" +msgstr "Sunucu ayarları" + +#: ../templates/serverInfo.php:180 +msgid "Server statistics" +msgstr "Sunucu istatistikleri" + +#: ../templates/serverInfo.php:205 ../templates/serverInfo.php:211 +msgid "Server time" +msgstr "Sunucu saati" + +#: ../lib/modules/zarafaServer.inc:138 +msgid "Servers" +msgstr "Sunucular" + +#: ../lib/modules/authorizedServiceObject.inc:75 +msgid "Service name (e.g. sshd, imap, ftp). Enter one service per entry." +msgstr "" + +#: ../templates/config/mainmanage.php:259 ../help/help.inc:142 +msgid "Session timeout" +msgstr "Oturum zaman aşımı" + +#: ../lib/modules/aliasEntry.inc:101 +msgid "Set" +msgstr "Ayarla" + +#: ../lib/modules/sambaSamAccount.inc:1442 +#: ../lib/modules/sambaSamAccount.inc:1445 +#: ../lib/modules/sambaSamAccount.inc:1448 +#: ../lib/modules/shadowAccount.inc:455 ../lib/modules/shadowAccount.inc:458 +#: ../lib/modules/shadowAccount.inc:461 +msgid "Set also for Kerberos" +msgstr "Kerberos için de ayarla" + +#: ../lib/modules/mitKerberos.inc:683 ../lib/modules/shadowAccount.inc:452 +#: ../lib/modules/heimdalKerberos.inc:589 +msgid "Set also for Samba 3" +msgstr "Samba 3 için de ayarla" + +#: ../lib/modules/mitKerberos.inc:680 ../lib/modules/sambaSamAccount.inc:1439 +#: ../lib/modules/heimdalKerberos.inc:586 +msgid "Set also for Shadow" +msgstr "Shadow için de ayarla" + +#: ../lib/modules.inc:1197 ../lib/modules.inc:1199 +msgid "Set password" +msgstr "Parolayı ayarla" + +#: ../lib/modules/posixAccount.inc:262 ../lib/modules/posixAccount.inc:438 +msgid "Set primary group as memberUid" +msgstr "Birincil grubu memberUid olarak ayarla" + +#: ../templates/config/profmanage.php:279 +#: ../templates/config/profmanage.php:289 +#: ../templates/config/profmanage.php:290 ../help/help.inc:132 +msgid "Set profile password" +msgstr "Profil parolası ayarla" + +#: ../lib/modules.inc:1200 +msgid "Set random password" +msgstr "Rastgele parola ayarla" + +#: ../templates/lists/changePassword.php:319 +msgid "Set specific password" +msgstr "Özel parola ayarla" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +msgid "Set the search results to 0 to retrieve all available records." +msgstr "" + +#: ../templates/selfService/adminMain.php:526 +msgid "Set this field read-only." +msgstr "Bu alanı salt-okunur olarak ayarla." + +#: ../lib/modules/groupOfNames.inc:89 +msgid "" +"Set this only if your LDAP schema allows that groups may not have any " +"members (e.g. if you use OpenDJ)." +msgstr "" + +#: ../lib/modules/qmailUser.inc:209 +msgid "Sets the delivery mode (e.g. disable mail forwarding)." +msgstr "" + +#: ../lib/modules/posixGroup.inc:472 +msgid "Sets the group password." +msgstr "Grup parolasını ayarlar" + +#: ../lib/modules/shadowAccount.inc:84 +msgid "Shadow" +msgstr "Gölge" + +#: ../lib/modules/sambaSamAccount.inc:235 +#: ../lib/modules/sambaSamAccount.inc:371 +#: ../lib/modules/sambaSamAccount.inc:1519 +#: ../lib/modules/sambaSamAccount.inc:1929 +msgid "Shadowing" +msgstr "Gölgelendirme" + +#: ../lib/modules/zarafaUser.inc:105 ../lib/modules/zarafaUser.inc:196 +#: ../lib/modules/zarafaUser.inc:306 ../lib/modules/zarafaUser.inc:399 +#: ../lib/modules/zarafaUser.inc:617 ../lib/modules/zarafaUser.inc:1334 +msgid "Shared store only" +msgstr "" + +#: ../lib/modules/ddns.inc:75 +msgid "Should DDNS (Dynamic DNS) be activated?" +msgstr "" + +#: ../lib/modules/ddns.inc:79 +msgid "Should fix IP addresses be added to the DNS server?" +msgstr "" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1121 +msgid "Show" +msgstr "Göster" + +#: ../templates/massBuildAccounts.php:243 +msgid "Show LDIF file" +msgstr "LDIF dosyası göter" + +#: ../lib/types/user.inc:683 +msgid "Show account status" +msgstr "Hesap durumlarını göster" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +#: ../templates/3rdParty/pla/htdocs/export_form.php:84 +msgid "Show attributes" +msgstr "Öznitelikleri göster" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1122 +msgid "Show internal attributes" +msgstr "Başlangıç program özniteliklerini göster" + +#: ../lib/modules/asteriskExtension.inc:446 +msgid "Show only Asterisk accounts" +msgstr "Sadece Asterisk hesaplarını göster" + +#: ../lib/types/group.inc:343 +msgid "Show primary group members as normal group members" +msgstr "Birincil grup üyelerini , normal grup üyeleri gibi göster " + +#: ../templates/schema/schema.php:194 +msgid "Single valued" +msgstr "Tek değerli" + +#: ../lib/modules/qmailUser.inc:221 +msgid "Size limit in bytes for a single mail. Larger mails will be bounced." +msgstr "" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Skip" +msgstr "Atla" + +#: ../lib/modules/quota.inc:627 ../lib/modules/systemQuotas.inc:376 +msgid "Soft block" +msgstr "Esnek blok" + +#: ../lib/modules/quota.inc:106 ../lib/modules/quota.inc:394 +#: ../lib/modules/quota.inc:500 ../lib/modules/systemQuotas.inc:117 +msgid "Soft block limit" +msgstr "Esnek blok limiti" + +#: ../lib/modules/quota.inc:107 +msgid "Soft block limit." +msgstr "Esnek blok limiti." + +#: ../lib/modules/quota.inc:629 ../lib/modules/systemQuotas.inc:378 +msgid "Soft inode" +msgstr "Esnek inod" + +#: ../lib/modules/quota.inc:129 +msgid "Soft inode (files) limit." +msgstr "Esnek inod (dosyalar) limiti" + +#: ../lib/modules/quota.inc:128 ../lib/modules/quota.inc:398 +#: ../lib/modules/quota.inc:502 ../lib/modules/systemQuotas.inc:121 +msgid "Soft inode limit" +msgstr "Esnek inod limiti" + +#: ../lib/modules/imapAccess.inc:89 +msgid "" +"Some IMAP servers store mailboxes with a prefix (e.g. \"user\" for Cyrus " +"which results in \"user.username\")." +msgstr "" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1019 +#, php-format +msgid "Some attributes (%s) were modified and are highlighted below." +msgstr "Bazı öznitelikler (%s) değiştirildi ve aşağıda vurgulandı" + +#: ../lib/modules.inc:873 +msgid "Some required information is missing" +msgstr "" + +#: ../templates/help.php:123 +#, php-format +msgid "" +"Sorry this help id ({bold}%s{endbold}) is not available for this module " +"({bold}%s{endbold})." +msgstr "" + +#: ../templates/help.php:136 +#, php-format +msgid "Sorry this help number ({bold}%s{endbold}) is not available." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:316 +#: ../lib/modules/sambaSamAccount.inc:1252 +msgid "Special user" +msgstr "Özel kullanıcı" + +#: ../lib/modules/zarafaDynamicGroup.inc:85 +#: ../lib/modules/zarafaAddressList.inc:73 +msgid "" +"Specifies a filter that matches the members (e.g. \"(mail=*@zarafa.nl)\")." +msgstr "" + +#: ../help/help.inc:230 +msgid "Specifies if the mail should be sent as text or HTML." +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:215 +msgid "Specifies if the user can call forward." +msgstr "" + +#: ../lib/modules/zarafaGroup.inc:76 +msgid "Specifies if this group has security possibilities." +msgstr "" + +#: ../lib/modules/zarafaServer.inc:74 +msgid "" +"Specifies if this server contains the public store. This may be changed only " +"for new entries." +msgstr "" + +#: ../lib/modules/dhcp_settings.inc:195 +msgid "Specifies if unknown clients are allowed." +msgstr "" + +#: ../lib/modules/ppolicy.inc:126 +msgid "Specifies if users are allowed to change their own passwords or not." +msgstr "" + +#: ../lib/modules/zarafaDynamicGroup.inc:81 +#: ../lib/modules/zarafaAddressList.inc:69 +msgid "" +"Specifies the LDAP base where to search for members (e.g. \"ou=zarafa," +"dc=company,dc=com\")." +msgstr "" + +#: ../lib/modules/customFields.inc:143 +msgid "Specifies the allowed file extension. This is checked at upload time." +msgstr "" + +#: ../lib/modules/zarafaContact.inc:89 ../lib/modules/zarafaGroup.inc:92 +#: ../lib/modules/zarafaUser.inc:138 +msgid "" +"Specifies the attribute that should be used to reference the entries. If you " +"would like to reference also groups then this must be set to \"dn\"." +msgstr "" + +#: ../lib/modules/zarafaUser.inc:114 +msgid "Specifies the capacity of this resource." +msgstr "" + +#: ../lib/modules/customFields.inc:139 +msgid "Specifies the maximum allowed file size in bytes." +msgstr "" + +#: ../lib/modules/mitKerberos.inc:130 ../lib/modules/heimdalKerberos.inc:104 +msgid "Specifies the maximum lifetime of a ticket in days." +msgstr "" + +#: ../lib/modules/ppolicy.inc:110 +msgid "" +"Specifies the maximum number of seconds before a password is due to expire " +"that expiration warning messages will be returned to a user." +msgstr "" + +#: ../lib/modules/freeRadius.inc:102 +msgid "" +"Specifies the maximum number of seconds that a connection can be idle before " +"the session is terminated." +msgstr "" + +#: ../lib/modules/mitKerberos.inc:126 ../lib/modules/heimdalKerberos.inc:108 +msgid "Specifies the maximum renewable lifetime of a ticket in days." +msgstr "" + +#: ../lib/modules/ppolicy.inc:114 +msgid "" +"Specifies the minimum number of characters that will be accepted in a " +"password." +msgstr "" + +#: ../lib/modules/ppolicy.inc:102 +msgid "" +"Specifies the number of consecutive failed login attempts after which the " +"password may not be used to login." +msgstr "" + +#: ../lib/modules/ppolicy.inc:86 +msgid "" +"Specifies the number of previously used passwords which should be saved in " +"the password history. New passwords can only be set if they are not in the " +"password history." +msgstr "" + +#: ../lib/modules/ppolicy.inc:106 +msgid "" +"Specifies the number of seconds after which old consecutive failed login " +"attempts are purged from the failure counter, even though no successful " +"authentication has occurred." +msgstr "" + +#: ../lib/modules/ppolicy.inc:98 +msgid "" +"Specifies the number of seconds during which the password cannot be used to " +"login due to too many consecutive failed bind attempts." +msgstr "" + +#: ../lib/modules/eduPerson.inc:86 ../lib/modules/eduPerson.inc:90 +msgid "" +"Specifies the person's affiliation within a particular security domain in " +"broad categories such as student, faculty, staff, alum, etc." +msgstr "" + +#: ../lib/modules/eduPerson.inc:82 +msgid "" +"Specifies the person's primary relationship to the institution in broad " +"categories such as student, faculty, staff, alum, etc." +msgstr "" + +#: ../lib/modules/eduPerson.inc:99 ../lib/modules/eduPerson.inc:103 +msgid "" +"Specifies the person's relationships to the institution in broad categories " +"such as student, faculty, staff, alum, etc." +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:167 +msgid "Specifies the user's pickup group." +msgstr "" + +#: ../lib/modules/zarafaUser.inc:102 +msgid "" +"Specifies whether the user is an admin. System administrators may " +"additionally create, modify and delete companies." +msgstr "" + +#: ../lib/modules/ppolicy.inc:130 +msgid "" +"Specifies whether the user's existing password must be sent along with their " +"new password when changing a password. Attention, LAM does not support " +"password changes which require the old password." +msgstr "" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1460 +msgid "Specify attributes and values" +msgstr "Öznitelikleri ve değerleri belirt" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +msgid "Standard LDAP search filter. Example: (&(sn=Smith)(givenName=David))" +msgstr "" + +#: ../templates/serverInfo.php:193 ../templates/serverInfo.php:199 +msgid "Start time" +msgstr "Başlama zamanı" + +#: ../lib/modules/windowsUser.inc:147 ../lib/modules/windowsUser.inc:282 +#: ../lib/modules/windowsUser.inc:393 ../lib/modules/windowsUser.inc:415 +#: ../lib/modules/windowsUser.inc:531 ../lib/modules/windowsUser.inc:1228 +#: ../lib/modules/windowsUser.inc:1340 ../lib/modules/inetOrgPerson.inc:145 +#: ../lib/modules/inetOrgPerson.inc:173 ../lib/modules/inetOrgPerson.inc:318 +#: ../lib/modules/inetOrgPerson.inc:584 ../lib/modules/inetOrgPerson.inc:626 +#: ../lib/modules/inetOrgPerson.inc:848 ../lib/modules/inetOrgPerson.inc:852 +#: ../lib/modules/inetOrgPerson.inc:1588 ../lib/modules/inetOrgPerson.inc:2378 +#: ../lib/modules/inetOrgPerson.inc:3090 +msgid "State" +msgstr "Durum" + +#: ../templates/pdfedit/pdfpage.php:538 ../templates/pdfedit/pdfpage.php:540 +msgid "Static text" +msgstr "Sabit metin" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1455 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1467 +#, php-format +msgid "Step %s of %s" +msgstr "" + +#: ../lib/modules/windowsUser.inc:230 ../lib/modules/inetOrgPerson.inc:377 +msgid "Steve" +msgstr "Steve" + +#: ../lib/modules/sambaSamAccount.inc:408 ../lib/modules/posixAccount.inc:343 +#: ../lib/modules/windowsUser.inc:242 ../lib/modules/inetOrgPerson.inc:2505 +#: ../lib/modules/asteriskVoicemail.inc:165 +msgid "Steve Miller" +msgstr "Steve Miller" + +#: ../lib/modules/posixAccount.inc:351 +msgid "Steve Miller,Room 2.14,123-123-1234,123-123-1234" +msgstr "Steve Miller , oda 2.14,123-123-1234,123-123-1234" + +#: ../lib/modules/eduPerson.inc:183 +msgid "Steve, Stevo" +msgstr "Steve,Stevo" + +#: ../lib/modules/windowsUser.inc:151 ../lib/modules/windowsUser.inc:258 +#: ../lib/modules/windowsUser.inc:394 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:527 ../lib/modules/windowsUser.inc:1229 +#: ../lib/modules/windowsUser.inc:1339 ../lib/modules/inetOrgPerson.inc:78 +#: ../lib/modules/inetOrgPerson.inc:142 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:310 ../lib/modules/inetOrgPerson.inc:446 +#: ../lib/modules/inetOrgPerson.inc:614 ../lib/modules/inetOrgPerson.inc:733 +#: ../lib/modules/inetOrgPerson.inc:737 ../lib/modules/inetOrgPerson.inc:1480 +#: ../lib/modules/inetOrgPerson.inc:2363 ../lib/modules/inetOrgPerson.inc:3013 +msgid "Street" +msgstr "Cadde" + +#: ../templates/pdfedit/pdfpage.php:449 ../templates/pdfedit/pdfmain.php:315 +msgid "Structure name" +msgstr "Yapı adı" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:136 +#: ../templates/3rdParty/pla/htdocs/export_form.php:33 +msgid "Sub (entire subtree)" +msgstr "" + +#: ../lib/types/netgroup.inc:93 ../lib/modules/nisnetgroup.inc:84 +#: ../lib/modules/nisnetgroup.inc:119 ../lib/modules/nisnetgroup.inc:134 +#: ../lib/modules/nisnetgroup.inc:202 ../lib/modules/nisnetgroup.inc:376 +#: ../lib/modules/nisnetgroup.inc:576 +msgid "Subgroups" +msgstr "Alt gruplar" + +#: ../templates/config/confmain.php:338 ../lib/modules/selfRegistration.inc:77 +#: ../lib/modules/selfRegistration.inc:135 +#: ../lib/modules/passwordSelfReset.inc:109 +#: ../lib/modules/passwordSelfReset.inc:230 +#: ../lib/modules/passwordSelfReset.inc:246 ../help/help.inc:222 +msgid "Subject" +msgstr "Konu" + +#: ../lib/types/dhcp.inc:94 ../lib/modules/dhcp_settings.inc:142 +#: ../lib/modules/dhcp_settings.inc:200 ../lib/modules/dhcp_settings.inc:215 +#: ../lib/modules/dhcp_settings.inc:235 ../lib/modules/dhcp_settings.inc:554 +#: ../lib/modules/dhcp_settings.inc:678 +msgid "Subnet" +msgstr "Alt ağ" + +#: ../lib/modules/dhcp_settings.inc:182 ../lib/modules/dhcp_settings.inc:208 +#: ../lib/modules/dhcp_settings.inc:226 ../lib/modules/dhcp_settings.inc:293 +#: ../lib/modules/dhcp_settings.inc:599 ../lib/modules/dhcp_settings.inc:674 +msgid "Subnet mask" +msgstr "Alt ağ maskesi" + +#: ../templates/schema/schema.php:176 +msgid "Substring Rule" +msgstr "Karakter dizisi içerisindeli kural" + +#: ../templates/3rdParty/pla/htdocs/import.php:63 +#: ../templates/3rdParty/pla/htdocs/copy.php:56 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:68 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:85 +msgid "Success" +msgstr "Başarı" + +#: ../templates/3rdParty/pla/htdocs/delete.php:32 +#, php-format +msgid "Successfully deleted DN %s" +msgstr "DN %s başarıyla silindi" + +#: ../lib/modules/sudoRole.inc:38 +msgid "Sudo role" +msgstr "Sudo rolü" + +#: ../lib/types/sudo.inc:159 +#, php-format +msgid "Sudo role count: %s" +msgstr "Sudo rolü sayısı: %s" + +#: ../lib/types/sudo.inc:48 +msgid "Sudo role management" +msgstr "Sudo rolü yönetimi" + +#: ../lib/types/sudo.inc:39 +msgid "Sudo roles" +msgstr "Sudo rolleri" + +#: ../lib/modules.inc:985 +msgid "Suffix" +msgstr "Son ek" + +#: ../lib/modules/posixGroup.inc:396 ../lib/modules/posixGroup.inc:491 +msgid "Suffix for GID/group name check" +msgstr "GID grup adı kontrolü için son ek" + +#: ../lib/modules/posixAccount.inc:217 ../lib/modules/posixAccount.inc:235 +#: ../lib/modules/posixAccount.inc:478 +msgid "Suffix for UID/user name check" +msgstr "UID/kullanıcı adı kontrolü için son ek" + +#: ../lib/modules/sambaSamAccount.inc:1351 +msgid "Sunday" +msgstr "Pazar" + +#: ../templates/3rdParty/pla/htdocs/compare.php:72 +msgid "Switch entries" +msgstr "Çoklayıcı girdileri" + +#: ../lib/modules/asteriskAccount.inc:89 +#: ../lib/modules/asteriskVoicemail.inc:77 +msgid "Sync Asterisk password with Unix password" +msgstr "Asterisk parolasını Unix parolası ile eşleştir" + +#: ../lib/modules/heimdalKerberos.inc:235 +msgid "Sync Heimdal Kerberos password with Unix password" +msgstr "Heimdal Kerberos parolasını Unix parolası ile eşleştir" + +#: ../lib/modules/mitKerberos.inc:270 +msgid "Sync MIT Kerberos password with Unix password" +msgstr "Kerberos parolasını Unix Parolası ile eşleştir" + +#: ../lib/modules/passwordSelfReset.inc:137 +#: ../lib/modules/passwordSelfReset.inc:220 +msgid "Sync Samba 3 password" +msgstr "Samba 3 parolasını eşleştir" + +#: ../lib/modules/sambaSamAccount.inc:241 +msgid "Sync Samba LM password with Unix password" +msgstr "Samba LM parolasını Unix parolası ile eşleştir" + +#: ../lib/modules/sambaSamAccount.inc:240 +msgid "Sync Samba NT password with Unix password" +msgstr "Samba NT parolasını UNIX parolası ile eşleştir" + +#: ../lib/modules/customFields.inc:1027 +msgid "Sync fields with page layout" +msgstr "Eşleştirme alanları ve sayfa düzeni" + +#: ../templates/schema/schema.php:181 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:142 +msgid "Syntax" +msgstr "Sözdizimi" + +#: ../templates/schema/schema.php:89 +msgid "Syntax OID" +msgstr "OID sözdizimi" + +#: ../templates/schema/schema.php:73 ../templates/schema/schema.php:74 +msgid "Syntaxes" +msgstr "Sözdizimleri" + +#: ../lib/modules/zarafaUser.inc:634 ../lib/modules/zarafaUser.inc:1325 +msgid "System administrator" +msgstr "Sistem yöneticisi" + +#: ../templates/config/mainmanage.php:356 +msgid "System logging" +msgstr "" + +#: ../help/help.inc:60 +msgid "TLS cannot be combined with ldaps://." +msgstr "" + +#: ../lib/modules/kolabUser.inc:211 +msgid "Target of invitation policy is invalid!" +msgstr "Davet ilkesi hedefi geçersiz!" + +#: ../templates/pdfedit/pdfmain.php:279 +#: ../templates/profedit/profilemain.php:282 +msgid "Target server profile" +msgstr "Sunucu profili hedefi" + +#: ../templates/help.php:89 ../lib/modules.inc:654 +msgid "Technical name" +msgstr "Teknik adı" + +#: ../templates/lists/changePassword.php:271 ../lib/types/user.inc:203 +#: ../lib/modules/windowsUser.inc:155 ../lib/modules/windowsUser.inc:306 +#: ../lib/modules/windowsUser.inc:395 ../lib/modules/windowsUser.inc:412 +#: ../lib/modules/windowsUser.inc:451 ../lib/modules/windowsUser.inc:537 +#: ../lib/modules/windowsUser.inc:1230 ../lib/modules/windowsUser.inc:1333 +#: ../lib/modules/inetOrgPerson.inc:68 ../lib/modules/inetOrgPerson.inc:141 +#: ../lib/modules/inetOrgPerson.inc:188 ../lib/modules/inetOrgPerson.inc:328 +#: ../lib/modules/inetOrgPerson.inc:486 ../lib/modules/inetOrgPerson.inc:641 +#: ../lib/modules/inetOrgPerson.inc:765 ../lib/modules/inetOrgPerson.inc:769 +#: ../lib/modules/inetOrgPerson.inc:1713 ../lib/modules/inetOrgPerson.inc:2368 +#: ../lib/modules/inetOrgPerson.inc:2969 +msgid "Telephone number" +msgstr "Telefon numarası" + +#: ../lib/modules/inetOrgPerson.inc:424 +msgid "Temp" +msgstr "Şablon" + +#: ../lib/modules/windowsUser.inc:254 ../lib/modules/inetOrgPerson.inc:400 +msgid "Temp, contract till December" +msgstr "" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +msgid "Template" +msgstr "Şablon" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:520 +msgid "Templates" +msgstr "Şablonlar" + +#: ../lib/modules/sambaSamAccount.inc:380 +#: ../lib/modules/sambaSamAccount.inc:593 +#: ../lib/modules/sambaSamAccount.inc:1264 +msgid "Terminal server options" +msgstr "Terminal sunucu seçenekleri" + +#: ../lib/tools/tests.inc:44 +msgid "Tests" +msgstr "Testler" + +#: ../templates/config/confmain.php:347 ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:108 +#: ../lib/modules/passwordSelfReset.inc:113 +#: ../lib/modules/passwordSelfReset.inc:123 +#: ../lib/modules/passwordSelfReset.inc:234 +#: ../lib/modules/passwordSelfReset.inc:250 ../help/help.inc:224 +msgid "Text" +msgstr "Metin" + +#: ../lib/modules/customFields.inc:2071 +msgid "Text area" +msgstr "Metin alanı" + +#: ../templates/pdfedit/pdfpage.php:617 ../lib/modules/customFields.inc:1646 +msgid "Text field" +msgstr "Metin alanı" + +#: ../lib/modules/eduPerson.inc:108 +msgid "" +"The \"NetID\" of the person for the purposes of inter-institutional " +"authentication. It should be represented in the form \"user@scope\" where " +"scope defines a local security domain." +msgstr "" + +#: ../lib/modules/dhcp_settings.inc:329 +msgid "The DHCP ranges were changed to fit for the new subnet." +msgstr "" + +#: ../lib/modules/eduPerson.inc:120 +msgid "" +"The DN of the directory entry representing the institution with which the " +"person is associated." +msgstr "" + +#: ../lib/modules/eduPerson.inc:124 +msgid "" +"The DN of the directory entry representing the person's primary " +"organisational unit." +msgstr "" + +#: ../lib/modules/eduPerson.inc:128 ../lib/modules/eduPerson.inc:132 +msgid "" +"The DNs of the directory entries representing the person's organisational " +"units." +msgstr "" + +#: ../lib/modules/posixGroup.inc:488 +msgid "" +"The ID of this group was changed. You can update all user and host entries " +"to the new group ID." +msgstr "" +"Bu gruba ait ID değiştirildi. Tüm kullanıcıları ve ana bilgisayar " +"girdilerini yeni grup IDsine güncelleyebilirsiniz." + +#: ../templates/config/mainmanage.php:100 +#, php-format +msgid "The IP address %s is invalid!" +msgstr "IP adresi %s geçersiz!" + +#: ../lib/modules/fixed_ip.inc:417 +msgid "The IP address does not match the subnet." +msgstr "IP adresi altağ a eşlenmedi" + +#: ../lib/modules/fixed_ip.inc:420 +msgid "The IP address is already in use." +msgstr "IP adresi kullanılıyor." + +#: ../lib/modules/ipHost.inc:108 ../lib/modules/ipHost.inc:109 +#: ../lib/modules/asteriskAccount.inc:636 +#: ../lib/modules/asteriskAccount.inc:637 ../lib/modules/ppolicyUser.inc:85 +#: ../lib/modules/range.inc:410 ../lib/modules/range.inc:427 +#: ../lib/modules/freeRadius.inc:242 ../lib/modules/freeRadius.inc:243 +#: ../lib/modules/fixed_ip.inc:412 +msgid "The IP address is invalid." +msgstr "IP adresi geçersiz." + +#: ../lib/modules/fixed_ip.inc:97 +msgid "The IP address of the PC." +msgstr "Bilgisayarın IP adresi" + +#: ../lib/modules/dhcp_settings.inc:155 +msgid "" +"The IP addresses of the DNS servers. Multiple addresses are separated by \"," +"\". Example: 192.168.0.10, 192.168.0.11" +msgstr "" +"DNS sunucularının IP adresleri. Çoklu adresleri ayıran \",\". Örneğin: " +"192.168.0.10, 192.168.0.11" + +#: ../lib/modules/dhcp_settings.inc:163 +msgid "" +"The IP addresses of the Netbios name servers (e.g. \"123.123.123.123, " +"123.123.123.124\")." +msgstr "" +"Netbios ad sunucularının IP adresleri ( Örn. \"123.123.123.123, " +"123.123.123.124\")." + +#: ../lib/modules/range.inc:414 ../lib/modules/range.inc:429 +msgid "The IP does not match the subnet." +msgstr "IP altağ ile eşleşmedi." + +#: ../lib/modules/mitKerberos.inc:146 ../lib/modules/heimdalKerberos.inc:151 +msgid "The Kerberos realm for this account." +msgstr "Bu hesap için Kerberos yetki alanı" + +#: ../lib/modules/heimdalKerberos.inc:92 +msgid "The Kerberos realm of this user." +msgstr "Bu kullanıcı için Kerberos yetki alanı" + +#: ../lib/modules/fixed_ip.inc:93 +msgid "The MAC address of the PC. Example: 11:22:33:44:55:aa" +msgstr "Bilgisayarın MAC adresi. Örneğin: 11:22:33:44:55:aa" + +#: ../lib/modules/dhcp_settings.inc:321 ../lib/modules/dhcp_settings.inc:322 +msgid "The Netbios server is invalid." +msgstr "Netbios sunucusu geçersiz." + +#: ../lib/modules/fixed_ip.inc:384 +msgid "The PC name may not be longer than 20 characters." +msgstr "" + +#: ../lib/modules/fixed_ip.inc:393 +msgid "The PC name may only contain A-Z, a-z and 0-9." +msgstr "" + +#: ../lib/modules/fixed_ip.inc:387 +msgid "The PC name needs to be at least 2 characters long." +msgstr "" + +#: ../help/help.inc:185 +msgid "" +"The PDF structure defines what information is exported as PDF file and how " +"the pages are structured. You can manage the PDF structures in the PDF " +"editor (under \"Tools\")." +msgstr "" + +#: ../templates/3rdParty/pla/htdocs/create.php:44 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:38 +msgid "The RDN field is empty." +msgstr "RDN alanı boş." + +#: ../lib/modules/freeRadius.inc:86 +msgid "The Radius realm of this account." +msgstr "Bu hesap için Realm yetki alanı" + +#: ../lib/modules/sambaDomain.inc:75 +msgid "The SID of your Samba server. Get it with \"net getlocalsid\"." +msgstr "" + +#: ../templates/selfService/selfServiceLogin.php:107 +#: ../templates/selfService/selfServiceMain.php:168 +msgid "The TLS encryption could not be started." +msgstr "" + +#: ../lib/modules/posixAccount.inc:99 +msgid "" +"The UID ranges for users and hosts overlap! This is a problem because LAM " +"uses the highest UID in use + 1 for new accounts. Please set the minimum UID " +"to equal values or use independent ranges." +msgstr "" + +#: ../lib/modules/zarafaServer.inc:70 +msgid "The Unix socket or named pipe to the server." +msgstr "" + +#: ../lib/modules/asteriskVoicemail.inc:205 +#: ../lib/modules/asteriskVoicemail.inc:206 +msgid "The account context is invalid." +msgstr "Hesap içeriği geçersiz." + +#: ../lib/modules/asteriskAccount.inc:103 +#: ../lib/modules/asteriskExtension.inc:92 +#: ../lib/modules/asteriskVoicemail.inc:83 +msgid "The account context stores information about the dial plan." +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:628 +#: ../lib/modules/asteriskAccount.inc:629 +msgid "The account type is invalid." +msgstr "Hesap tipi geçersiz." + +#: ../lib/modules/freeRadius.inc:98 +msgid "The account will be locked after this date." +msgstr "" + +#: ../help/help.inc:171 +msgid "The account will be saved under this LDAP suffix." +msgstr "" + +#: ../lib/modules/passwordSelfReset.inc:273 +#, php-format +msgid "The answer needs to be at least %s characters long." +msgstr "" + +#: ../lib/modules/passwordSelfReset.inc:1067 +msgid "The answer to the security question is wrong." +msgstr "" + +#: ../templates/tests/schemaTest.php:128 +#, php-format +msgid "" +"The attribute %s is not supported for the object class %s by your LDAP " +"server." +msgstr "" + +#: ../templates/3rdParty/pla/lib/import_functions.php:531 +#, php-format +msgid "The attribute to modify doesn't match the one specified by %s." +msgstr "" + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:31 +msgid "The attribute value does not exist" +msgstr "Öznitelik değeri yok" + +#: ../lib/modules/asteriskAccount.inc:618 +#: ../lib/modules/asteriskAccount.inc:620 +msgid "The caller ID format is invalid." +msgstr "" + +#: ../lib/modules/puppetClient.inc:179 ../lib/modules/puppetClient.inc:180 +msgid "The class names may only contain ASCII characters." +msgstr "" + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:367 +msgid "The config file is not writable." +msgstr "Yapılandırma dosyası salt - okunur." + +#: ../templates/3rdParty/pla/htdocs/create.php:29 +#: ../templates/3rdParty/pla/htdocs/copy.php:34 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:23 +#, php-format +msgid "The container you specified (%s) does not exist. Please try again." +msgstr "" + +#: ../lib/modules/dhcp_settings.inc:319 ../lib/modules/dhcp_settings.inc:320 +msgid "The default gateway is invalid." +msgstr "Varsayılan ağ geçidi geçersiz." + +#: ../lib/modules/qmailUser.inc:253 +msgid "The default interpretation of .qmail files." +msgstr ".qmail dosyalarının varsayılan yorumlaması" + +#: ../templates/3rdParty/pla/htdocs/copy.php:31 +#, php-format +msgid "The destination entry (%s) already exists." +msgstr "Hedef dosya girdisi (%s) zaten var." + +#: ../lib/modules/dhcp_settings.inc:331 ../lib/modules/dhcp_settings.inc:332 +msgid "" +"The domain name includes invalid characters. Valid characters are A-Z, a-z, " +"0-9, \".\", \"_\",\"-\"." +msgstr "" +"Alan adı geçersiz karakterler içeriyor. Geçerli karakterler A-Z, a-z, 0-9, " +"\".\", \"_\",\"-\"." + +#: ../lib/modules/dhcp_settings.inc:139 +msgid "The domain name of the subnet." +msgstr "Alt ağın etki alanı adı" + +#: ../lib/modules/asteriskVoicemail.inc:209 +msgid "The email address is invalid." +msgstr "E-posta adresi geçersiz." + +#: ../lib/modules/range.inc:89 +msgid "The ending IP address of the range." +msgstr "" + +#: ../lib/modules/dhcp_settings.inc:323 +msgid "The entered Netbios node type does not exist." +msgstr "Girilen Netbios düğüm tipi yok." + +#: ../templates/3rdParty/pla/htdocs/update.php:27 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:22 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:21 +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:24 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:23 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:20 +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:24 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:20 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:27 +#, php-format +msgid "The entry (%s) does not exist." +msgstr "Girdi (%s) yok." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:27 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:28 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:34 +msgid "The entry does not exist and will be ignored" +msgstr "Girdi yok ve reddedilecek" + +#: ../lib/modules/puppetClient.inc:177 ../lib/modules/puppetClient.inc:178 +msgid "The environment name may only contain ASCII characters." +msgstr "Çevre adı yalnızca ASCII karakterlerini içerebilir." + +#: ../lib/modules/shadowAccount.inc:67 +msgid "The expiration date is invalid." +msgstr "Sona erme tarihi geçersiz." + +#: ../lib/modules/freeRadius.inc:250 ../lib/modules/freeRadius.inc:251 +msgid "The expiration date must be in format DD.MM.YYYY HH:MM." +msgstr "Sona erme tarihi DD.MM.YYYY HH:MM formatında olmak zorunda." + +#: ../lib/modules/asteriskAccount.inc:622 +#: ../lib/modules/asteriskAccount.inc:623 +msgid "The extension context is invalid." +msgstr "Uzantı içeriği geçersiz." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "The file you chose is either empty or does not exist." +msgstr "Seçtiğiniz dosya ya boş ya da yok." + +#: ../templates/3rdParty/pla/lib/Template.php:412 +#: ../templates/3rdParty/pla/lib/Template.php:499 +msgid "" +"The file you selected was only partially uploaded, likley due to a network " +"error." +msgstr "" + +#: ../templates/3rdParty/pla/lib/Template.php:402 +#: ../templates/3rdParty/pla/lib/Template.php:407 +#: ../templates/3rdParty/pla/lib/Template.php:489 +#: ../templates/3rdParty/pla/lib/Template.php:494 +msgid "" +"The file you uploaded is too large. Please check php.ini, upload_max_size " +"setting" +msgstr "" +"Yüklediğiniz dosyanın boyutu çok büyük. Lütfen php.ini, upload_max_size " +"ayarlarını kontrol edin" + +#: ../templates/initsuff.php:180 +msgid "" +"The following suffixes are missing in LDAP. LAM can create them for you." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:120 +msgid "The format of the logon hours field is invalid!" +msgstr "Oturum açma saatleri alanı geçersiz!" + +#: ../lib/modules/customScripts.inc:111 +msgid "The format of this custom script setting is invalid." +msgstr "Bu özel komut ayarının formatı geçersiz." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +msgid "The format to show the query results" +msgstr "" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "" +"The full DN of the new entry to be created when copying the source entry" +msgstr "" + +#: ../lib/modules/asteriskVoicemail.inc:208 +msgid "The full name is invalid." +msgstr "Tam ad geçersiz." + +#: ../templates/login.php:586 +msgid "The given user name matches multiple LDAP entries." +msgstr "" + +#: ../lib/modules/ppolicy.inc:94 +msgid "" +"The grace authentication limit specifies the number of times that an expired " +"password may be used to login." +msgstr "" + +#: ../lib/modules/windowsGroup.inc:147 +msgid "The group is managed by this contact person." +msgstr "" + +#: ../lib/modules/freeRadius.inc:90 ../lib/modules/freeRadius.inc:94 +msgid "The group names for this account." +msgstr "Bu hesap için grup adları" + +#: ../lib/modules/windowsUser.inc:196 +msgid "The groups for this account. You can insert a group name or DN." +msgstr "Bu hesap için gruplar. Bir grup adı ya da DN ekleyebilirsiniz." + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "The headline for a new section must contain at least one character." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:293 +msgid "The home directory will be connected under this drive letter." +msgstr "" + +#: ../lib/modules/windowsHost.inc:80 +msgid "The host is managed by this contact person." +msgstr "Ana bilgisayar bu yetkili kişi tarafından yönetilir." + +#: ../lib/modules/asteriskAccount.inc:625 +#: ../lib/modules/asteriskAccount.inc:626 +msgid "The host name is invalid." +msgstr "Ana bilgisayar adı geçersiz." + +#: ../lib/modules/windowsUser.inc:112 ../lib/modules/inetOrgPerson.inc:905 +msgid "The initials of the user's first names." +msgstr "Kullanıcı adlarının ilk harfleri." + +#: ../lib/modules/ddns.inc:87 +msgid "" +"The key enables the DHCP server to perform DNS updates. The key is generated " +"with \"genDDNSkey\"." +msgstr "" + +#: ../lib/modules/dhcp_settings.inc:317 ../lib/modules/dhcp_settings.inc:318 +msgid "The lease time is invalid." +msgstr "" + +#: ../lib/modules/dhcp_settings.inc:147 +msgid "" +"The lease time specifies after how many seconds the client should request a " +"new IP address." +msgstr "" + +#: ../lib/modules/sudoRole.inc:72 ../lib/modules/sudoRole.inc:98 +msgid "The list of commands which may be run." +msgstr "" + +#: ../lib/modules/puppetClient.inc:86 ../lib/modules/puppetClient.inc:90 +msgid "The list of configured Puppet classes for this node (e.g. ntp)." +msgstr "" + +#: ../lib/modules/sudoRole.inc:68 ../lib/modules/sudoRole.inc:93 +msgid "The list of hosts from which the user may run the commands." +msgstr "" + +#: ../lib/modules/customFields.inc:2503 +msgid "The list of labels contains duplicates." +msgstr "" + +#: ../lib/modules/sudoRole.inc:64 ../lib/modules/sudoRole.inc:88 +msgid "The list of users who own this sudo role and may run the commands." +msgstr "" + +#: ../lib/modules/customFields.inc:2500 +msgid "The list of values contains duplicates." +msgstr "" + +#: ../lib/modules/qmailGroup.inc:125 ../lib/modules/qmailGroup.inc:129 +msgid "The list's alternate email address." +msgstr "Alternatif e-posta adres listesi." + +#: ../lib/modules/kolabGroup.inc:81 ../lib/modules/kolabGroup.inc:85 +#: ../lib/modules/qmailGroup.inc:117 ../lib/modules/qmailGroup.inc:121 +#: ../lib/modules/windowsGroup.inc:119 +msgid "The list's email address." +msgstr "E-posta adres listesi" + +#: ../templates/config/mainmanage.php:116 +msgid "" +"The log file is empty or contains invalid characters! Valid characters are: " +"a-z, A-Z, 0-9, /, \\, ., :, _ and -." +msgstr "" + +#: ../lib/modules/imapAccess.inc:80 +msgid "" +"The login name of your IMAP user who has rights to create/delete mailboxes." +msgstr "" + +#: ../lib/modules/qmailUser.inc:237 +msgid "The mail server that contains the message store." +msgstr "" + +#: ../help/help.inc:225 +msgid "The mail text of all password mails." +msgstr "" + +#: ../lib/modules/selfRegistration.inc:109 +msgid "The mail text of the confirmation mail." +msgstr "" + +#: ../lib/modules/passwordSelfReset.inc:114 +#: ../lib/modules/passwordSelfReset.inc:124 +msgid "The mail text of the mails." +msgstr "" + +#: ../lib/modules/asteriskVoicemail.inc:201 +msgid "The mailbox format is invalid." +msgstr "Posta kutusu formatı geçersiz." + +#: ../lib/modules/dhcp_settings.inc:325 ../lib/modules/dhcp_settings.inc:326 +msgid "The maximum lease time is invalid." +msgstr "" + +#: ../lib/modules/dhcp_settings.inc:151 +msgid "" +"The maximum lease time specifies after how many seconds the client must " +"request a new IP address." +msgstr "" + +#: ../lib/modules/qmailUser.inc:217 +msgid "The maximum number of mails that can be stored in the user's mailbox." +msgstr "Kullanıcının posta kutusunda depolanabilen en fazla e-posta sayısı" + +#: ../lib/modules.inc:924 +#, php-format +msgid "The module %s is not yet ready." +msgstr "Modül %s hazır değil." + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "" +"The name for that PDF-structure you submitted is not valid. A valid name " +"must consist of the following characters: 'a-z','A-Z','0-9','_','-'." +msgstr "" + +#: ../lib/modules/asteriskExtension.inc:104 +msgid "" +"The name of a command to execute. The available commands may be listed at " +"the Asterisk command line by executing \"core show applications\"." +msgstr "" + +#: ../lib/modules/fixed_ip.inc:89 +msgid "The name of the PC." +msgstr "PC adı" + +#: ../lib/modules/asteriskExtension.inc:96 +msgid "The name of the extension (e.g. voicemail or sip)." +msgstr "Uzantı adı (Örn. sesli posta ya da sip)" + +#: ../lib/modules/kolabUser.inc:131 +msgid "The name of the server where the mailbox is located." +msgstr "Posta kutusunun yer aldığı sunucunun adı." + +#: ../lib/modules/dhcp_settings.inc:143 +msgid "The name of the subnet. Example: 192.168.10.0" +msgstr "Alt ağ adı . Örnek: 92.168.10.0" + +#: ../lib/modules/sambaDomain.inc:71 +msgid "The name of your Windows domain or workgroup." +msgstr "Windows alanı ya da çalışma grubunun adı." + +#: ../lib/modules/freeRadius.inc:82 +msgid "The net mask for the IP address." +msgstr "IP adresi için net maskesi." + +#: ../lib/modules/dhcp_settings.inc:187 +msgid "" +"The net mask is derived from the subnet mask. LAM will calculate it " +"automatically." +msgstr "" + +#: ../lib/modules/freeRadius.inc:244 ../lib/modules/freeRadius.inc:245 +msgid "The net mask is invalid." +msgstr "Net maskesi geçersiz." + +#: ../lib/modules.inc:1168 +msgid "" +"The new password will be stored in the directory after you save this account." +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:231 +msgid "The number of milliseconds for the last qualify." +msgstr "" + +#: ../help/help.inc:117 +msgid "" +"The number of users who may login to LAM is restricted. This can be either a " +"fixed list of DNs or LAM can search LDAP to find a DN which matches the " +"given user name." +msgstr "" + +#: ../templates/tests/schemaTest.php:114 +#, php-format +msgid "The object class %s is not supported by your LDAP server." +msgstr "" + +#: ../lib/modules/windowsUser.inc:132 ../lib/modules/inetOrgPerson.inc:861 +#: ../lib/modules/inetOrgPerson.inc:865 +msgid "The office name of the user (e.g. YourCompany, Human Resources)." +msgstr "Kullanıcının şirket adı (Örn. Şirketiniz, İnsan Kaynakları)." + +#: ../templates/selfService/selfServiceMain.php:312 ../lib/modules.inc:1767 +msgid "The operation was stopped because of the above errors." +msgstr "İşlemler yukarıdaki hatalar nedeniyle durduruldu." + +#: ../lib/modules/asteriskVoicemail.inc:211 +#: ../lib/modules/asteriskVoicemail.inc:212 +msgid "The options have bad format." +msgstr "Seçenekler kötü formatta." + +#: ../lib/modules/device.inc:63 ../lib/modules/device.inc:67 +msgid "The owners of this device." +msgstr "Bu cihazın sahipleri." + +#: ../lib/modules/groupOfNames.inc:73 ../lib/modules/groupOfNames.inc:77 +msgid "The owners of this group." +msgstr "Bu grubun sahipleri." + +#: ../lib/modules/asteriskVoicemail.inc:210 +msgid "The pager number has bad format." +msgstr "" + +#: ../lib/modules/heimdalKerberos.inc:114 +msgid "The parameter @@password@@ will be replaced with the new password." +msgstr "" + +#: ../lib/modules/heimdalKerberos.inc:113 +msgid "The parameter @@principal@@ will be replaced with the principal name." +msgstr "" + +#: ../templates/config/confsave.php:71 ../templates/config/confmain.php:73 +#: ../templates/config/mainlogin.php:61 +#: ../templates/selfService/adminLogin.php:54 +msgid "The password is invalid! Please try again." +msgstr "Şifre geçersiz! Lütfen tekrar deneyiniz." + +#: ../lib/security.inc:310 +#, php-format +msgid "The password is too short. You have to enter at least %s characters." +msgstr "" + +#: ../lib/security.inc:362 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s different character " +"classes (upper/lower case, numbers and symbols)." +msgstr "" + +#: ../lib/security.inc:333 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s lower case " +"characters." +msgstr "" + +#: ../lib/security.inc:341 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s numeric characters." +msgstr "" + +#: ../lib/security.inc:345 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s symbolic characters." +msgstr "" + +#: ../lib/security.inc:337 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s upper case " +"characters." +msgstr "" + +#: ../lib/modules/imapAccess.inc:86 +msgid "" +"The password of your IMAP admin user. The login name for the IMAP admin user " +"is stored in the LAM server profile." +msgstr "" + +#: ../templates/lists/changePassword.php:545 ../lib/modules.inc:1111 +msgid "The password was set to:" +msgstr "" + +#: ../lib/modules/windowsUser.inc:140 ../lib/modules/inetOrgPerson.inc:742 +#: ../lib/modules/inetOrgPerson.inc:746 +msgid "The post office box of the user's address." +msgstr "" + +#: ../lib/modules/windowsUser.inc:136 ../lib/modules/inetOrgPerson.inc:750 +#: ../lib/modules/inetOrgPerson.inc:754 +msgid "The postal code of the user's address." +msgstr "Kullanıcı adresinin posta kodu." + +#: ../lib/modules/posixAccount.inc:459 +msgid "" +"The primary group for this account. You can insert a GID number or a group " +"name." +msgstr "" +"Bu hesap için birincil grup. Bir GID numarası ya da grup adı " +"ekleyebilirsiniz." + +#: ../lib/modules/posixAccount.inc:542 +msgid "The primary group the host should be member of." +msgstr "" + +#: ../lib/modules/posixAccount.inc:504 +msgid "The primary group the user should be member of." +msgstr "" + +#: ../lib/modules/asteriskExtension.inc:100 +msgid "" +"The priority is a sequence number used to order the execution of commands. " +"Commands are executed beginning with the lowest sequence number." +msgstr "" + +#: ../lib/modules/range.inc:416 +msgid "The range conflicts with another range." +msgstr "" + +#: ../lib/modules/range.inc:412 +msgid "The range end needs to be greater than the range start." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:829 +msgid "The room number of the employee's office." +msgstr "Personel ofisinin oda numarası." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +msgid "The scope in which to search" +msgstr "" + +#: ../lib/modules/customScripts.inc:57 ../lib/modules/customScripts.inc:70 +msgid "" +"The scripts will be run on your web server in the user context of your web " +"server (e.g. apache/www-data)." +msgstr "" + +#: ../lib/modules/selfRegistration.inc:120 +msgid "" +"The second option is the LDAP attribute name and the third one is a " +"descriptive label for it." +msgstr "" +"Onun için ikinci seçenek LDAP öznitelik adı ve üçüncüsü ise tanımlayıcı bir " +"etiket." + +#: ../lib/modules/asteriskAccount.inc:235 ../lib/modules/qmailUser.inc:189 +#: ../lib/modules/zarafaGroup.inc:103 ../lib/modules/sambaSamAccount.inc:387 +#: ../lib/modules/posixAccount.inc:435 ../lib/modules/zarafaUser.inc:126 +#: ../lib/modules/inetOrgPerson.inc:877 ../lib/modules/freeRadius.inc:106 +#: ../lib/modules/zarafaServer.inc:82 ../lib/modules/qmailGroup.inc:113 +#: ../lib/modules/windowsGroup.inc:103 ../lib/modules/groupOfNames.inc:61 +msgid "" +"The selected options will not be managed inside LAM. You can use this to " +"reduce the number of displayed input fields." +msgstr "" + +#: ../templates/3rdParty/pla/htdocs/copy.php:38 +msgid "The source and destination DN are the same." +msgstr "" + +#: ../lib/modules/range.inc:86 +msgid "The starting IP address of the range." +msgstr "Aralığın başlangıç IP adresi." + +#: ../lib/modules/windowsUser.inc:148 ../lib/modules/inetOrgPerson.inc:849 +#: ../lib/modules/inetOrgPerson.inc:853 +msgid "The state where the user resides or works." +msgstr "" + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "The static text must contain at least one character." +msgstr "" + +#: ../lib/modules/windowsUser.inc:152 ../lib/modules/inetOrgPerson.inc:734 +#: ../lib/modules/inetOrgPerson.inc:738 +msgid "The street name of the user's address." +msgstr "Kullanıcı adresininin cadde adı." + +#: ../help/help.inc:223 +msgid "The subject of all password mails." +msgstr "" + +#: ../lib/modules/selfRegistration.inc:136 +#: ../lib/modules/passwordSelfReset.inc:110 +msgid "The subject of the mails." +msgstr "E-postaların konu başlığı" + +#: ../lib/modules/dhcp_settings.inc:312 +msgid "The subnet is already in use." +msgstr "Alt ağ kullanılıyor." + +#: ../lib/modules/dhcp_settings.inc:313 ../lib/modules/dhcp_settings.inc:314 +msgid "The subnet is invalid." +msgstr "Alt ağ geçersiz." + +#: ../lib/modules/dhcp_settings.inc:327 ../lib/modules/dhcp_settings.inc:328 +msgid "The subnet mask is invalid." +msgstr "Alt ağ maskesi geçersiz." + +#: ../lib/modules/dhcp_settings.inc:183 +msgid "The subnet mask of the network." +msgstr "" + +#: ../lib/modules/sudoRole.inc:80 ../lib/modules/sudoRole.inc:108 +msgid "The sudo commands are executed with these group memberships." +msgstr "" + +#: ../lib/modules/sudoRole.inc:76 ../lib/modules/sudoRole.inc:103 +msgid "The sudo commands may be run as these users (e.g. root)." +msgstr "" + +#: ../lib/modules/customFields.inc:3050 ../lib/modules/customFields.inc:3137 +#, php-format +msgid "The uploaded file does not have the correct file extension (%s)." +msgstr "" + +#: ../lib/modules/customFields.inc:3046 ../lib/modules/customFields.inc:3133 +#, php-format +msgid "The uploaded file is too large (> %s bytes)." +msgstr "" + +#: ../templates/3rdParty/pla/lib/import_functions.php:396 +msgid "The url attribute value should begin with file://." +msgstr "" + +#: ../lib/modules/zarafaUser.inc:106 +msgid "The user account is non-active and login is disabled." +msgstr "" + +#: ../lib/modules/windowsUser.inc:181 +msgid "The user must log on using a smart card." +msgstr "" + +#: ../lib/modules/zarafaUser.inc:86 +msgid "The user will get warned when his mailbox reaches this limit." +msgstr "" + +#: ../lib/modules/qmailUser.inc:197 +msgid "The user's alternate email address." +msgstr "Kullanıcının alternatif e-posta adresi" + +#: ../lib/modules/asteriskAccount.inc:127 +msgid "The user's call groups." +msgstr "" + +#: ../lib/modules/qmailUser.inc:193 ../lib/modules/windowsUser.inc:120 +#: ../lib/modules/inetOrgPerson.inc:790 ../lib/modules/inetOrgPerson.inc:794 +msgid "The user's email address." +msgstr "Kullanıcının e-posta adresi." + +#: ../lib/modules/inetOrgPerson.inc:782 ../lib/modules/inetOrgPerson.inc:786 +msgid "The user's fax number." +msgstr "Kullanıcının faks numarası." + +#: ../lib/modules/inetOrgPerson.inc:774 ../lib/modules/inetOrgPerson.inc:778 +msgid "The user's mobile number." +msgstr "Kullanıcının cep telefonu numarası." + +#: ../lib/modules/inetOrgPerson.inc:893 ../lib/modules/inetOrgPerson.inc:897 +msgid "The user's organisation name." +msgstr "Kullanıcının organizasyon adı." + +#: ../lib/modules/inetOrgPerson.inc:885 ../lib/modules/inetOrgPerson.inc:889 +msgid "The user's organisational unit." +msgstr "Kullanı" + +#: ../lib/modules/inetOrgPerson.inc:821 ../lib/modules/inetOrgPerson.inc:825 +msgid "The user's private telephone number." +msgstr "Kullanıcının özel telefon numarası." + +#: ../lib/modules/windowsUser.inc:156 ../lib/modules/inetOrgPerson.inc:766 +#: ../lib/modules/inetOrgPerson.inc:770 +msgid "The user's telephone number." +msgstr "Kullanıcının telefon numarası." + +#: ../lib/modules/inetOrgPerson.inc:901 +msgid "The user's unique employee number." +msgstr "" + +#: ../lib/modules/windowsUser.inc:168 ../lib/modules/inetOrgPerson.inc:801 +#: ../lib/modules/inetOrgPerson.inc:805 +msgid "The user's web site (e.g. http://www.company.com)." +msgstr "Kullanıcıya ait web sitesi (Örn. http://www.sirket.com)." + +#: ../lib/modules/sambaSamAccount.inc:122 +msgid "" +"The value for the Samba 3 field \"User can/must change password\" needs to " +"be a number." +msgstr "" + +#: ../lib/modules/puppetClient.inc:181 ../lib/modules/puppetClient.inc:182 +msgid "The variables may only contain ASCII characters." +msgstr "" + +#: ../lib/modules/asteriskVoicemail.inc:213 +#: ../lib/modules/asteriskVoicemail.inc:214 +msgid "The voicemail context name is invalid." +msgstr "Sesli posta kullanıcı adı geçersiz." + +#: ../templates/3rdParty/pla/htdocs/create.php:42 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:36 +msgid "The were no attributes marked as an RDN attribute." +msgstr "" + +#: ../lib/modules/selfRegistration.inc:110 +msgid "The wildcard for the account creation link is @@creationLink@@." +msgstr "" + +#: ../lib/modules/passwordSelfReset.inc:116 ../help/help.inc:228 +msgid "The wildcard for the new password is @@newPassword@@." +msgstr "" + +#: ../lib/modules/passwordSelfReset.inc:126 +msgid "The wildcard for the reset link is @@resetLink@@." +msgstr "" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:60 +#, php-format +msgid "There are %s members in group %s:" +msgstr "" + +#: ../lib/modules/posixGroup.inc:583 +msgid "There are still users who have this group as their primary group." +msgstr "" + +#: ../lib/modules/sambaGroupMapping.inc:589 +msgid "There can be only one group of this type." +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:619 +msgid "There is already another user with this caller ID." +msgstr "" + +#: ../lib/modules/asteriskVoicemail.inc:202 +msgid "There is already another user with this mailbox name." +msgstr "" + +#: ../templates/massDoUpload.php:258 +msgid "There were errors while uploading:" +msgstr "" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:80 +#, php-format +msgid "There will be %s updates done with this mass update" +msgstr "" + +#: ../lib/modules/posixGroup.inc:476 +msgid "" +"These are the minimum and maximum numbers to use for group IDs when creating " +"new group accounts. New group accounts will always get the highest number in " +"use plus one." +msgstr "" + +#: ../lib/modules/posixAccount.inc:447 +msgid "" +"These are the minimum and maximum numbers to use for machine IDs when " +"creating new accounts for hosts. The range should be different from that of " +"users. New host accounts will always get the highest number in use plus one." +msgstr "" + +#: ../lib/modules/posixAccount.inc:443 +msgid "" +"These are the minimum and maximum numbers to use for user IDs when creating " +"new user accounts. The range should be different from that of machines. New " +"user accounts will always get the highest number in use plus one." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:913 +msgid "These are the user's certificates." +msgstr "" + +#: ../lib/modules/puppetClient.inc:106 +msgid "" +"These classes will be available as autocompletion hints when adding new " +"classes." +msgstr "" + +#: ../lib/modules/nisnetgroup.inc:89 ../lib/modules/nisnetgroup.inc:93 +msgid "" +"These entries specify the members of the netgroup. You can limit the set to " +"a host name, a user name, a domain name or any combination of them." +msgstr "" + +#: ../lib/modules/puppetClient.inc:110 +msgid "" +"These environments will be available as autocompletion hints when setting " +"the environment." +msgstr "" + +#: ../lib/modules/asteriskExtension.inc:116 +msgid "" +"These options change the list of potential extension owners below. You can " +"select to show Asterisk accounts or all users. It is also possible to search " +"the tree suffix if you have users which are not in the standard user suffix." +msgstr "" + +#: ../lib/modules/authorizedServiceObject.inc:87 +msgid "These services will show up as hint if you enter a new service." +msgstr "" + +#: ../lib/modules/posixAccount.inc:124 +msgid "" +"This GID number is invalid! Please provide either a number or a group name." +msgstr "" + +#: ../help/help.inc:215 +msgid "" +"This HTML code will be placed on top of all self service pages. E.g. you can " +"use this to place your custom logo. Any HTML code is permitted." +msgstr "" + +#: ../lib/modules/fixed_ip.inc:390 +msgid "This PC name already exists." +msgstr "" + +#: ../lib/modules/kolabGroup.inc:178 ../lib/modules/kolabUser.inc:256 +msgid "This account is marked for deletion." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:317 +msgid "" +"This allows you to define this account as a special user like administrator " +"or guest." +msgstr "" + +#: ../templates/3rdParty/pla/lib/PageRender.php:376 +msgid "This attribute is not defined in the LDAP schema" +msgstr "" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1988 +msgid "This attribute is required" +msgstr "" + +#: ../templates/3rdParty/pla/lib/PageRender.php:458 +msgid "This attribute is required for the RDN." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:857 +msgid "This can be used to specify if the user has a car license." +msgstr "" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:64 +msgid "This change requires to add new attributes." +msgstr "" + +#: ../help/help.inc:133 +msgid "This changes the password of the selected profile." +msgstr "" + +#: ../help/help.inc:135 +msgid "This changes the profile which is selected by default at login." +msgstr "" + +#: ../templates/massBuildAccounts.php:177 +msgid "" +"This column is defined to include unique entries but duplicates were found:" +msgstr "" + +#: ../lib/modules/heimdalKerberos.inc:112 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -K /etc/heimdal/apache.keytab -p " +"admin/admin passwd -p @@password@@ @@principal@@\"." +msgstr "" + +#: ../lib/modules/mitKerberos.inc:142 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -k -t /home/www-data/apache.keytab " +"-p realm/changepwd\"." +msgstr "" + +#: ../lib/modules/customScripts.inc:112 +msgid "This custom script setting includes an invalid account type." +msgstr "" + +#: ../lib/modules/customScripts.inc:114 ../lib/modules/customScripts.inc:116 +msgid "This custom script setting includes an invalid action type." +msgstr "" + +#: ../help/help.inc:98 +msgid "" +"This defines the language of the login window and sets this language as the " +"default language. Users can change the language at login." +msgstr "" + +#: ../help/help.inc:115 +msgid "" +"This defines the rights for the home directories which are created by " +"lamdaemon." +msgstr "" + +#: ../lib/modules/asteriskExtension.inc:88 +msgid "" +"This defines what application Asterisk has to start for this user (e.g. SIP/" +"user1)." +msgstr "" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:85 +#, php-format +msgid "This deletion request also includes %s child entries." +msgstr "" + +#: ../lib/modules/device.inc:71 +msgid "This describes the location of the device." +msgstr "" + +#: ../lib/modules/ipHost.inc:67 +msgid "This describes the location of the host." +msgstr "" + +#: ../lib/modules/windowsUser.inc:116 ../lib/modules/inetOrgPerson.inc:841 +#: ../lib/modules/inetOrgPerson.inc:845 +msgid "This describes the location of the user." +msgstr "" + +#: ../lib/lamPDF.inc:126 +msgid "This document was automatically created by LDAP Account Manager" +msgstr "" + +#: ../help/help.inc:232 +msgid "" +"This email address will be set as reply-to address of all password mails." +msgstr "" + +#: ../help/help.inc:221 +msgid "" +"This email address will be set as sender address of all password mails. If " +"empty the system default (php.ini) will be used." +msgstr "" + +#: ../lib/modules/selfRegistration.inc:132 +#: ../lib/modules/passwordSelfReset.inc:106 +msgid "" +"This email address will be set as sender address of the mails. If empty the " +"system default (php.ini) will be used." +msgstr "" + +#: ../lib/modules/passwordSelfReset.inc:86 +msgid "This enables the password self reset function." +msgstr "" + +#: ../lib/modules/selfRegistration.inc:93 +msgid "This enables the self registration function." +msgstr "" + +#: ../templates/3rdParty/pla/htdocs/compare.php:79 +msgid "This entry has no attributes" +msgstr "Bu girdi özniteliklere sahip değil." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:57 +#, php-format +msgid "This entry is the root of a sub-tree containing %s entries." +msgstr "" + +#: ../templates/lib/141_jquery-validationEngine-lang.php:47 +#: ../lib/modules/selfRegistration.inc:455 +msgid "This field is required." +msgstr "" + +#: ../lib/modules/customFields.inc:158 +msgid "This field name already exists. Please choose a different one." +msgstr "" + +#: ../lib/modules/posixAccount.inc:126 +msgid "This gecos value is invalid!" +msgstr "Bu gecos değeri geçersiz!" + +#: ../lib/modules/ipHost.inc:63 +msgid "This is a comma separated list of IP addresses." +msgstr "" + +#: ../lib/modules/ieee802device.inc:66 +msgid "This is a comma separated list of MAC addresses." +msgstr "" + +#: ../lib/modules/kolabUser.inc:119 +msgid "This is a comma separated list of delegates." +msgstr "" + +#: ../lib/modules/kolabUser.inc:127 +msgid "This is a comma separated list of eMail aliases." +msgstr "" + +#: ../lib/modules/kolabUser.inc:111 +msgid "This is a comma separated list of invitation policies." +msgstr "" + +#: ../lib/modules/nisMailAlias.inc:79 +msgid "This is a comma separated list of recipients." +msgstr "" + +#: ../lib/modules/inetLocalMailRecipient.inc:70 +msgid "This is a comma separated list of the users public email addresses." +msgstr "" + +#: ../help/help.inc:149 +msgid "" +"This is a list of IP addresses from hosts who may access LAM. You can use \"*" +"\" as wildcard (e.g. 192.168.0.*)." +msgstr "" + +#: ../lib/modules/selfRegistration.inc:118 +msgid "" +"This is a list of additional attributes that the user can enter. Please note " +"that user name, password and email address are mandatory anyway and need not " +"be specified." +msgstr "" + +#: ../lib/modules/windowsGroup.inc:131 ../lib/modules/groupOfNames.inc:81 +msgid "This is a list of members of this group." +msgstr "" + +#: ../lib/modules/windowsGroup.inc:135 ../lib/modules/groupOfNames.inc:85 +msgid "" +"This is a list of members of this group. Multiple members are separated by " +"semicolons." +msgstr "" + +#: ../lib/modules/eduPerson.inc:95 +msgid "This is a list of nick names for this user." +msgstr "" + +#: ../lib/modules/selfRegistration.inc:114 +msgid "" +"This is a list of object classes that are used to build the new user " +"accounts. Please enter one object class in each line." +msgstr "" + +#: ../help/help.inc:111 +msgid "" +"This is a list of the servers where the lamdaemon scripts are stored. LDAP " +"Account Manager will make a SSH connection to the servers with the user name " +"and password provided at login. Multiple servers are separated by " +"semicolons. You can append a descriptive name after a colon." +msgstr "" + +#: ../help/help.inc:91 +msgid "" +"This is a list of valid DN entries of all users that are allowed to login to " +"LDAP Account Manager. Please enter one DN per line." +msgstr "" + +#: ../templates/3rdParty/pla/lib/PageRender.php:881 +msgid "This is a structural ObjectClass and cannot be removed." +msgstr "" + +#: ../lib/modules/nisObject.inc:67 ../lib/modules/automount.inc:66 +msgid "This is an optional description for this entry." +msgstr "" + +#: ../help/help.inc:203 +msgid "" +"This is needed to find the LDAP DNs of your user accounts. E.g. if you use " +"\"uid\" and your user inputs \"miller\" then LAM will search for an account " +"with uid=miller." +msgstr "" + +#: ../lib/modules/zarafaDynamicGroup.inc:192 ../lib/modules/ipHost.inc:110 +#: ../lib/modules/posixGroup.inc:584 ../lib/modules/device.inc:135 +#: ../lib/modules/eduPerson.inc:239 ../lib/modules/eduPerson.inc:241 +#: ../lib/modules/zarafaAddressList.inc:163 +#: ../lib/modules/posixAccount.inc:131 ../lib/modules/inetOrgPerson.inc:95 +#: ../lib/modules/aliasEntry.inc:79 ../lib/modules/qmailGroup.inc:426 +#: ../lib/modules/qmailGroup.inc:427 ../lib/modules/qmailGroup.inc:428 +msgid "This is not a valid DN!" +msgstr "Geçersiz DN!" + +#: ../lib/modules/sambaSamAccount.inc:109 +msgid "This is not a valid RID number!" +msgstr "Bu RID numarası geçersiz!" + +#: ../lib/modules/sambaGroupMapping.inc:591 +msgid "This is not a valid Samba 3 group type!" +msgstr "Bu geçerli bir Samba 3 grubu değil!" + +#: ../lib/modules/eduPerson.inc:243 +msgid "This is not a valid list of DNs!" +msgstr "Bu DNs listesi geçersiz!" + +#: ../lib/modules/qmailGroup.inc:429 ../lib/modules/qmailGroup.inc:430 +msgid "This is not a valid option." +msgstr "Bu seçenek geçersiz." + +#: ../lib/modules/inetLocalMailRecipient.inc:66 +msgid "This is one of the users public email addresses." +msgstr "" + +#: ../lib/modules/nisMailAlias.inc:75 +msgid "This is one recipient for this alias." +msgstr "" + +#: ../help/help.inc:84 +msgid "" +"This is only needed for TLS/SSL connections. By default, LAM will use the " +"certificate authorities installed on your system. If you have a private CA " +"in your company you can upload your CA certificates here and override the " +"system certificates." +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:95 +msgid "" +"This is the ID of the user in the Asterisk database. It may contain digits " +"and letters (e.g. user1 or 200134)." +msgstr "" + +#: ../lib/modules/freeRadius.inc:78 +msgid "This is the IP address for the user (e.g. 123.123.123.123)." +msgstr "" + +#: ../lib/modules/ipHost.inc:59 +msgid "" +"This is the IP address of the network card of the device (e.g. " +"123.123.123.123)." +msgstr "" + +#: ../lib/modules/ipHost.inc:71 +msgid "This is the LDAP DN of the host's manager." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:726 ../lib/modules/inetOrgPerson.inc:730 +msgid "" +"This is the LDAP DN of the user's manager. Use this property to represent " +"hierarchies in your company." +msgstr "" + +#: ../lib/modules/customFields.inc:103 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an activated " +"state. The value is case-insensitive." +msgstr "" + +#: ../lib/modules/customFields.inc:107 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an deactivated " +"state. The value is case-insensitive." +msgstr "" + +#: ../lib/modules/ieee802device.inc:62 +msgid "" +"This is the MAC address of the network card of the device (e.g. 00:01:02:DE:" +"EF:18)." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:314 +msgid "This is the SID of the user's primary Windows group." +msgstr "" + +#: ../help/help.inc:100 +msgid "" +"This is the absolute path to an external script for setting quotas and " +"creating home directories." +msgstr "" + +#: ../lib/modules/mitKerberos.inc:150 ../lib/modules/heimdalKerberos.inc:118 +msgid "This is the account's Kerberos password." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:252 +msgid "This is the account's Windows password." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:249 ../lib/modules/windowsUser.inc:104 +msgid "This is the account's full name on Windows systems." +msgstr "" + +#: ../lib/modules/ppolicyUser.inc:49 +msgid "This is the active password policy for this account." +msgstr "" + +#: ../lib/modules/passwordSelfReset.inc:78 +msgid "" +"This is the answer to the security question. It allows users to reset their " +"password." +msgstr "" + +#: ../lib/modules/mitKerberos.inc:138 +msgid "This is the date of the user's last login." +msgstr "Bu kullanıcının son giriş tarihi" + +#: ../lib/modules/mitKerberos.inc:118 ../lib/modules/heimdalKerberos.inc:96 +msgid "This is the date when the account will expire." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:336 ../lib/modules/shadowAccount.inc:187 +msgid "This is the date when the account will expire. Format: DD-MM-YYYY" +msgstr "" + +#: ../lib/modules/mitKerberos.inc:134 +msgid "This is the date when the user changed his password." +msgstr "" + +#: ../lib/modules/shadowAccount.inc:195 +msgid "" +"This is the date when the user changed his password. If you specify a " +"maximum password age then you can force a password change here." +msgstr "" + +#: ../lib/modules/sambaGroupMapping.inc:140 +msgid "This is the group name which will be shown in Windows." +msgstr "" + +#: ../lib/modules/windowsHost.inc:76 +msgid "This is the host's location (e.g. Munich, server room 3)." +msgstr "" + +#: ../help/help.inc:167 +msgid "" +"This is the identifier for the relative DN value. It must be one of the " +"given allowed LDAP attributes (e.g. user accounts usually use \"uid\" while " +"groups use \"cn\")." +msgstr "" + +#: ../lib/modules/passwordSelfReset.inc:90 +msgid "" +"This is the label for the link to the password self reset. If empty \"Forgot " +"password?\" will be used." +msgstr "" + +#: ../lib/modules/selfRegistration.inc:97 +msgid "" +"This is the label for the link to the self registration. If empty \"Register " +"new account\" will be used." +msgstr "" + +#: ../help/help.inc:86 +msgid "" +"This is the list of attributes to show in the account list. The entries can " +"either be predefined values, \"#attribute\", or individual ones, \"attribute:" +"description\". Several entries are separated by semicolons." +msgstr "" + +#: ../lib/modules/posixAccount.inc:483 +msgid "This is the list of valid login shells." +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:99 +msgid "" +"This is the machine id (e.g. IP address or host name) from which the user " +"can call/receive calls." +msgstr "" + +#: ../lib/modules/inetLocalMailRecipient.inc:74 +msgid "This is the mail server for the user." +msgstr "Kullanıcı için posta sunucusu" + +#: ../lib/modules/qmailUser.inc:213 +msgid "This is the mailbox size limit in bytes." +msgstr "" + +#: ../lib/modules/passwordSelfReset.inc:82 +msgid "This is the minimum length for answers to the security question." +msgstr "" + +#: ../lib/modules/nisnetgroup.inc:77 ../lib/modules/groupOfNames.inc:65 +msgid "This is the name of this group." +msgstr "" + +#: ../lib/modules/posixAccount.inc:550 +msgid "" +"This is the natural name of the host. If empty, the host name will be used." +msgstr "" + +#: ../lib/modules/inetOrgPerson.inc:809 +msgid "" +"This is the natural name of the user. If empty, the first and last name is " +"used." +msgstr "" + +#: ../lib/modules/posixAccount.inc:528 +msgid "" +"This is the natural name of the user. If empty, the first and last name or " +"user name is used." +msgstr "" + +#: ../lib/modules/sambaDomain.inc:115 +msgid "" +"This is the number of bad logon attempts (0 - 999) before the account is " +"deactivated. 0 means unlimited attempts." +msgstr "" + +#: ../lib/modules/sambaDomain.inc:99 +msgid "" +"This is the number of passwords which are saved to prevent that users reuse " +"old passwords." +msgstr "" + +#: ../help/help.inc:96 +msgid "" +"This is the number of rows to show in the account list. If more entries are " +"found the list will be split into several pages." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:345 +msgid "This is the path to the user's home directory." +msgstr "Bu kullanıcının ana dizinine yol." + +#: ../lib/modules/sambaGroupMapping.inc:148 +msgid "" +"This is the relative ID (similar to UID on Unix) for Windows accounts. If " +"you leave this empty LAM will calculate the RID from the UID. This can be " +"either a number or the name of a special group:" +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:320 +msgid "" +"This is the relative ID number for your Windows account. You can either " +"enter a number or one of these special accounts: " +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:324 +msgid "" +"This is the relative ID number for your host account. If you leave this " +"empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" + +#: ../lib/modules/imapAccess.inc:104 +msgid "" +"This is the separator for the mailbox path. Usually, this is \".\" but e.g. " +"Cyrus with \"unixhierarchysep\" will require \"/\"." +msgstr "" + +#: ../help/help.inc:59 +msgid "" +"This is the server address of your LDAP server. Use ldap:// for unencrypted " +"LDAP connections or TLS encrypted connections. LDAP+SSL (LDAPS) encrypted " +"connections are specified with ldaps://. The port value is optional." +msgstr "" + +#: ../help/help.inc:78 +msgid "This is the suffix for the LDAP tree viewer." +msgstr "" + +#: ../help/help.inc:72 +msgid "" +"This is the suffix of the LDAP tree from where to search for LDAP entries. " +"Only entries in this subtree will be displayed in the account list. When " +"creating a new accont this will be the DN where it is saved." +msgstr "" + +#: ../lib/modules/inetLocalMailRecipient.inc:62 +msgid "This is the target email address for the user's mails." +msgstr "Bu kullanıcı postaları için e-posta adres hedefi." + +#: ../lib/modules/customScripts.inc:46 ../lib/modules/uidObject.inc:53 +#: ../lib/modules/aliasEntry.inc:55 +msgid "This is the target of this alias entry." +msgstr "" + +#: ../lib/modules/sambaDomain.inc:127 +msgid "" +"This is the time (in minutes) for which the user may not log in after the " +"account was locked. -1 means forever." +msgstr "" + +#: ../help/help.inc:143 +msgid "" +"This is the time (in minutes) of inactivity after which a user is " +"automatically logged off." +msgstr "" + +#: ../help/help.inc:104 +msgid "" +"This is the time in minutes which LAM caches its LDAP searches. Shorter " +"times will stress LDAP more but decrease the possibility that changes are " +"not identified." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:339 +msgid "" +"This is the time zone of your Samba server. LAM needs this information to " +"display the logon hours correctly." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:311 +msgid "This is the user's primary Windows group." +msgstr "Bu kullanıcının birincil Windows grubu." + +#: ../lib/modules/puppetClient.inc:82 +msgid "" +"This is this node's parent. All classes and variables are inherited from " +"this node." +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:147 +msgid "" +"This is typically used to allow incoming calls (e.g. from FWD) while having " +"a type=friend entry defined with username and password." +msgstr "" + +#: ../lib/modules/zarafaUser.inc:110 +msgid "This is used to mark this account as resource." +msgstr "" + +#: ../lib/modules/posixAccount.inc:127 +msgid "This login shell is invalid!" +msgstr "" + +#: ../lib/modules/inetLocalMailRecipient.inc:221 +msgid "This mail address is already in use:" +msgstr "Bu posta adresi zaten kullanımda" + +#: ../lib/modules/imapAccess.inc:98 +msgid "This mailbox will be created/deleted." +msgstr "Bu posta kutusunu oluştur/sil" + +#: ../lib/modules/customFields.inc:99 +msgid "" +"This message is shown when the field value does not match the validation " +"expression." +msgstr "" + +#: ../templates/schema/schema.php:350 +msgid "This object class is obsolete." +msgstr "Bu nesne sınıfı eski." + +#: ../lib/modules/imapAccess.inc:77 +msgid "" +"This option allows you to disable the certificate check of your IMAP server " +"certificate. Disabling the certificate check is not recommended." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:330 +msgid "This option defines the allowed logon hours for this account." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:333 +msgid "" +"This option defines the allowed logon hours for this account. The format is " +"the same as for the LDAP attribute. The 24*7 hours are represented as 168 " +"bit which are saved as 21 hex (21*8 = 168) values. The first bit represents " +"Sunday 0:00 - 0:59 in GMT." +msgstr "" + +#: ../lib/modules/asteriskExtension.inc:185 +msgid "This pair of extension name and priority already exists." +msgstr "Uzantı adının ve önceliğin bu parçası zaten var." + +#: ../lib/modules/sambaSamAccount.inc:354 +msgid "This program is run after the login." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:378 +msgid "This specifies the reconnect policy." +msgstr "Bağlantı yenileme ilkesini belirler." + +#: ../lib/modules/zarafaDynamicGroup.inc:89 +#: ../lib/modules/zarafaContact.inc:100 ../lib/modules/zarafaGroup.inc:107 +#: ../lib/modules/zarafaAddressList.inc:77 ../lib/modules/zarafaUser.inc:165 +#: ../lib/modules/zarafaServer.inc:86 +msgid "" +"This specifies the used Zarafa LDAP schema. Select LDAP for e.g. OpenLDAP, " +"Apache Directory, OpenDJ and other non-Windows based LDAP servers. If you " +"run Zarafa against Samba 4 or Active Directory please select Active " +"Directory." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:375 +msgid "This specifies what to do when the client connection is broken." +msgstr "" + +#: ../help/help.inc:207 +msgid "" +"This text is displayed on top of the self service login page. You can also " +"input HTML code here." +msgstr "" + +#: ../help/help.inc:209 +msgid "" +"This text is displayed on top of the self service main page. You can also " +"input HTML code here." +msgstr "" + +#: ../help/help.inc:205 +msgid "" +"This text should shortly describe your selected LDAP search attribute (e.g. " +"email or user name)." +msgstr "" + +#: ../lib/modules/qmailUser.inc:233 +msgid "" +"This text will be sent as reply to all incoming mails if the delivery mode " +"is set to autoreply." +msgstr "" + +#: ../lib/tools/pdfEdit.inc:53 +msgid "This tool allows you to customize the PDF pages." +msgstr "Bu araç size PDF sayfalarını özelleştirme iznini verir." + +#: ../templates/lists/changePassword.php:46 +msgid "This user is not supported or was not found." +msgstr "Kullanıcı desteklenmedi ya da bulunmadı." + +#: ../templates/lists/userlink.php:61 +msgid "This user was not found!" +msgstr "Bu kullanıcı bulunamadı!" + +#: ../lib/modules/zarafaUser.inc:446 +msgid "This value can only be \"Room\" or \"Equipment\"." +msgstr "Bu değer sadece \"Oda\" ya da \"Ekipman\" olabilir." + +#: ../lib/modules/zarafaDynamicGroup.inc:197 +#: ../lib/modules/zarafaDynamicGroup.inc:198 +#: ../lib/modules/zarafaContact.inc:178 ../lib/modules/zarafaContact.inc:179 +#: ../lib/modules/zarafaGroup.inc:213 ../lib/modules/zarafaGroup.inc:214 +#: ../lib/modules/zarafaGroup.inc:215 ../lib/modules/zarafaAddressList.inc:164 +#: ../lib/modules/zarafaAddressList.inc:165 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 ../lib/modules/posixAccount.inc:128 +#: ../lib/modules/zarafaUser.inc:453 ../lib/modules/zarafaUser.inc:455 +#: ../lib/modules/zarafaUser.inc:456 ../lib/modules/zarafaUser.inc:457 +#: ../lib/modules/zarafaUser.inc:458 ../lib/modules/zarafaUser.inc:459 +#: ../lib/modules/ppolicyUser.inc:86 ../lib/modules/inetOrgPerson.inc:100 +#: ../lib/modules/zarafaServer.inc:172 +msgid "This value can only be \"true\" or \"false\"." +msgstr "Bu değer sadece \"doğru\" ya da \"yanlış\" olabilir." + +#: ../lib/modules/zarafaUser.inc:454 +msgid "This value can only be \"true\", \"false\" or \"system\"." +msgstr "Bu değer sadece \"doğru\", \"yanlış\" veya \"sistem\" olabilir." + +#: ../lib/modules/posixGroup.inc:582 +msgid "This value must be a list of user names separated by semicolons." +msgstr "" +"Bu değerin noktalı virgülle ayrılan kullanıcı adlarının bir listesi olması " +"gerekiyor." + +#: ../help/help.inc:236 +msgid "This will create a new organisational unit under the selected one." +msgstr "Seçilen birinin altında yeni bir organizasyon birimi oluşturacak." + +#: ../lib/modules/posixAccount.inc:475 +msgid "This will create the user's home directory on the specified server." +msgstr "Belirtilen sunucu üzerinde kullanıcının ana dizinini oluşturacak." + +#: ../help/help.inc:238 +msgid "" +"This will delete the selected organisational unit. The OU has to be empty." +msgstr "Seçilen kurumsal birimi silecek. OU boş olmak zorunda." + +#: ../help/help.inc:131 +msgid "This will delete the selected profile." +msgstr "Seçilen profili silecek." + +#: ../lib/modules/kolabGroup.inc:111 ../lib/modules/puppetClient.inc:102 +#: ../lib/modules/qmailUser.inc:257 ../lib/modules/zarafaContact.inc:81 +#: ../lib/modules/posixGroup.inc:509 ../lib/modules/eduPerson.inc:144 +#: ../lib/modules/sambaSamAccount.inc:390 ../lib/modules/posixAccount.inc:426 +#: ../lib/modules/zarafaUser.inc:130 ../lib/modules/shadowAccount.inc:191 +#: ../lib/modules/qmailGroup.inc:226 +#: ../lib/modules/authorizedServiceObject.inc:83 +#: ../lib/modules/passwordSelfReset.inc:142 ../lib/modules/hostObject.inc:77 +msgid "This will enable the extension automatically if this profile is loaded." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:255 +msgid "This will reset the host's password to a default value." +msgstr "" + +#: ../templates/lists/changePassword.php:297 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail." +msgstr "" + +#: ../help/help.inc:219 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail. Please edit your LAM server profile to setup the mail " +"settings." +msgstr "" + +#: ../lib/modules/kolabGroup.inc:107 ../lib/modules/kolabUser.inc:153 +msgid "" +"This will set a special flag on the account which tells Kolabd to remove it. " +"Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes)." +msgstr "" + +#: ../lib/modules/qmailUser.inc:205 +msgid "" +"This will set the user's account status. You may disable the mail account " +"here." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:1350 +msgid "Thursday" +msgstr "Perşembe" + +#: ../lib/modules/mitKerberos.inc:129 ../lib/modules/mitKerberos.inc:188 +#: ../lib/modules/mitKerberos.inc:223 ../lib/modules/mitKerberos.inc:247 +#: ../lib/modules/mitKerberos.inc:356 ../lib/modules/mitKerberos.inc:776 +#: ../lib/modules/heimdalKerberos.inc:103 +#: ../lib/modules/heimdalKerberos.inc:157 +#: ../lib/modules/heimdalKerberos.inc:192 +#: ../lib/modules/heimdalKerberos.inc:214 +#: ../lib/modules/heimdalKerberos.inc:299 +#: ../lib/modules/heimdalKerberos.inc:684 +msgid "Ticket lifetime" +msgstr "Etiket ömrü" + +#: ../lib/modules/mitKerberos.inc:284 ../lib/modules/mitKerberos.inc:285 +#: ../lib/modules/heimdalKerberos.inc:248 +#: ../lib/modules/heimdalKerberos.inc:249 +msgid "Ticket lifetime must be a number." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:1372 +msgid "Time" +msgstr "Zaman" + +#: ../lib/modules/sambaSamAccount.inc:359 +msgid "Time limit" +msgstr "Süre sınırlaması" + +#: ../lib/modules/sambaSamAccount.inc:338 +#: ../lib/modules/sambaSamAccount.inc:566 +msgid "Time zone" +msgstr "Zaman dilimi" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:45 +msgid "To" +msgstr "" + +#: ../lib/modules/posixAccount.inc:520 +msgid "To disable login use /bin/false." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:560 +msgid "Tokyo, Seoul, Osaka, Yakutsk" +msgstr "Tokyo, Seul, Osaka, Yakutsk" + +#: ../templates/config/confmain.php:389 +msgid "Tool settings" +msgstr "Araç ayarları" + +#: ../templates/tools.php:63 ../templates/main_header.php:145 +msgid "Tools" +msgstr "Araçlar" + +#: ../templates/serverInfo.php:357 +msgid "Total" +msgstr "Toplam" + +#: ../templates/serverInfo.php:242 ../templates/serverInfo.php:247 +msgid "Total connections" +msgstr "Tüm bağlantılar" + +#: ../templates/3rdParty/pla/lib/export_functions.php:202 +msgid "Total entries" +msgstr "Tüm girdiler" + +#: ../lib/types/user.inc:682 +msgid "Translate GID number to group name" +msgstr "GID numarasını grup ismine çevir" + +#: ../templates/config/confmain.php:247 ../help/help.inc:77 +msgid "Tree suffix" +msgstr "Ağaç soneki" + +#: ../templates/main_header.php:176 +msgid "Tree view" +msgstr "" + +#: ../templates/config/confmain.php:537 +msgid "TreeSuffix is invalid!" +msgstr "AğaçSoneki geçersiz!" + +#: ../lib/modules/sambaSamAccount.inc:1350 +msgid "Tuesday" +msgstr "Salı" + +#: ../templates/selfService/profManage.php:206 +#: ../templates/schema/schema.php:348 ../lib/modules/zarafaUser.inc:109 +#: ../lib/modules/zarafaUser.inc:198 ../lib/modules/zarafaUser.inc:279 +#: ../lib/modules/zarafaUser.inc:402 ../lib/modules/zarafaUser.inc:567 +#: ../lib/modules/zarafaUser.inc:1317 ../lib/modules/customFields.inc:86 +#: ../lib/modules/customFields.inc:992 ../lib/modules/customFields.inc:1468 +msgid "Type" +msgstr "Tip" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:203 ../lib/modules/posixAccount.inc:221 +#: ../lib/modules/posixAccount.inc:486 +msgid "UID generator" +msgstr "UID üreteci" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID has changed. Do you want to change home directory?" +msgstr "UID değiştirildi. Ana dizini değiştirmek istiyor musunuz?" + +#: ../lib/modules/posixAccount.inc:107 +msgid "" +"UID must be a number. It has to be inside the UID range which is defined in " +"your configuration profile." +msgstr "" + +#: ../lib/types/host.inc:95 ../lib/types/user.inc:92 +#: ../lib/modules/qmailUser.inc:105 ../lib/modules/qmailUser.inc:224 +#: ../lib/modules/qmailUser.inc:325 ../lib/modules/qmailUser.inc:411 +#: ../lib/modules/qmailUser.inc:563 ../lib/modules/qmailUser.inc:1189 +#: ../lib/modules/posixAccount.inc:108 ../lib/modules/posixAccount.inc:284 +#: ../lib/modules/posixAccount.inc:376 ../lib/modules/posixAccount.inc:405 +#: ../lib/modules/posixAccount.inc:442 ../lib/modules/posixAccount.inc:446 +#: ../lib/modules/posixAccount.inc:454 ../lib/modules/posixAccount.inc:1335 +#: ../lib/modules/posixAccount.inc:1748 +msgid "UID number" +msgstr "UID numarası" + +#: ../lib/modules/posixAccount.inc:108 +#, php-format +msgid "" +"UID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -uid %s -exec chown %s {} \\;'" +msgstr "" + +#: ../lib/modules/qmailUser.inc:456 +msgid "UID number is already in use." +msgstr "UID numarası kullanımda." + +#: ../lib/modules/posixAccount.inc:99 +msgid "UID ranges for Unix accounts" +msgstr "Unix hesapları için UID aralıkları" + +#: ../lib/modules/sambaSamAccount.inc:296 +msgid "" +"UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced " +"with user and group name." +msgstr "" +"Ana dizinin UNC-yolu (\\\\sunucu\\paylaş). $kullanıcı ve $grup kullanıcı ve " +"grup adıyla değiştirilir." + +#: ../lib/modules/eduPerson.inc:112 ../lib/modules/eduPerson.inc:116 +msgid "" +"URI (either URN or URL) that indicates a set of rights to specific resources." +msgstr "" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1883 +msgid "URL" +msgstr "URL" + +#: ../lib/modules/imapAccess.inc:160 +msgid "Unable to change ACL on IMAP server for mailbox deletion." +msgstr "" + +#: ../lib/modules/mitKerberos.inc:1162 ../lib/modules/mitKerberos.inc:1166 +#: ../lib/modules/heimdalKerberos.inc:1027 +msgid "Unable to change Kerberos password." +msgstr "Kerberos parolası değiştirilemedi." + +#: ../lib/modules/windowsUser.inc:1446 ../lib/modules/windowsUser.inc:1467 +msgid "Unable to change password." +msgstr "Parola değiştirilemedi" + +#: ../templates/selfService/selfServiceMain.php:319 +msgid "" +"Unable to change your account. Maybe you do not have enough rights to change " +"the settings." +msgstr "" + +#: ../templates/selfService/selfServiceMain.php:316 +msgid "" +"Unable to change your account. Your changes might violate the password " +"policy." +msgstr "" + +#: ../templates/tests/lamdaemonTest.php:261 ../lib/lamdaemon.inc:76 +#: ../lib/lamdaemon.inc:81 +msgid "Unable to connect to remote server!" +msgstr "" + +#: ../templates/massDoUpload.php:193 +msgid "Unable to create ZIP file for PDF export." +msgstr "PDF dışa aktarımı için gereken ZIP dosyası oluşturulamadı" + +#: ../lib/modules/selfRegistration.inc:608 +#: ../lib/modules/selfRegistration.inc:612 +msgid "Unable to create account." +msgstr "Hesap oluşturulamadı" + +#: ../lib/modules/imapAccess.inc:162 +msgid "Unable to create mailbox on IMAP server." +msgstr "IMAP sunucusu üzerinde e-posta kutusu oluşturulamadı." + +#: ../templates/ou_edit.php:80 +msgid "Unable to create new OU!" +msgstr "Yeni OU oluşturulamıyor!" + +#: ../lib/types/automountType.inc:270 +msgid "Unable to create new automount map." +msgstr "" + +#: ../templates/config/profmanage.php:82 +#: ../templates/selfService/profManage.php:59 +msgid "Unable to create new profile!" +msgstr "Yeni profil oluşturulamıyor!" + +#: ../templates/ou_edit.php:97 +msgid "Unable to delete OU!" +msgstr "OU silinemiyor!" + +#: ../templates/pdfedit/pdfmain.php:94 +msgid "Unable to delete PDF structure!" +msgstr "PDF yapısı silinemiyor!" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:25 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:57 +msgid "Unable to delete entry, it does not exist" +msgstr "Mevcut olmayan girdi silinemedi." + +#: ../lib/modules/imapAccess.inc:161 +msgid "Unable to delete mailbox from IMAP server." +msgstr "" + +#: ../templates/config/profmanage.php:123 +#: ../templates/selfService/profManage.php:87 +#: ../templates/profedit/profilemain.php:108 ../lib/config.inc:141 +#: ../lib/config.inc:153 ../lib/config.inc:160 ../lib/config.inc:168 +msgid "Unable to delete profile!" +msgstr "Profil silinemiyor" + +#: ../lib/modules/posixAccount.inc:1968 ../lib/modules/posixAccount.inc:1977 +#: ../lib/modules/posixAccount.inc:2243 ../lib/modules/nisnetgroup.inc:538 +#: ../lib/modules/groupOfNamesUser.inc:368 +msgid "Unable to find group in LDAP." +msgstr "LDAP ta grup bulunamadı." + +#: ../lib/modules/passwordSelfReset.inc:817 +msgid "Unable to find password security answer for this account." +msgstr "Bu hesaba ait parola için güvenlik cevabı bulunamadı" + +#: ../lib/modules/passwordSelfReset.inc:809 +#: ../lib/modules/passwordSelfReset.inc:1025 +msgid "Unable to find password security question for this account." +msgstr "Bu hesaba ait parola için güvenlik sorusu bulunamadı" + +#: ../templates/login.php:594 ../templates/login.php:600 +msgid "Unable to find the user name in LDAP." +msgstr "LDAP ta kullanıcı adı bulunamıyor" + +#: ../lib/modules/passwordSelfReset.inc:800 +#: ../lib/modules/passwordSelfReset.inc:1098 +msgid "Unable to find user account." +msgstr "Kullanıcı hesabı bulunamıyor" + +#: ../templates/config/mainmanage.php:160 +msgid "Unable to import server certificate. Please use the upload function." +msgstr "" +"Sunucu sertifikası dışa aktarılamıyor. Lütfen karşıdan fonksiyon yükleme " +"işlevini kullanınız." + +#: ../lib/modules.inc:1492 ../lib/modules.inc:1496 +msgid "Unable to load LDAP entry:" +msgstr "LDAP girdisi yüklenemedi" + +#: ../lib/profiles.inc:98 ../lib/profiles.inc:102 ../lib/selfService.inc:196 +#: ../lib/selfService.inc:200 +msgid "Unable to load profile!" +msgstr "Profil yüklenemiyor" + +#: ../lib/modules/imapAccess.inc:163 +msgid "Unable to locate mailbox on IMAP." +msgstr "" + +#: ../templates/3rdParty/pla/lib/import_functions.php:388 +#: ../templates/3rdParty/pla/lib/import_functions.php:393 +msgid "Unable to read file." +msgstr "Dosya okunamıyor" + +#: ../lib/modules/selfRegistration.inc:601 +msgid "Unable to register your new account. Please try again." +msgstr "Yeni hesap kaydınız yapılamıyor. Lütfen tekrar deneyiniz" + +#: ../lib/modules/passwordSelfReset.inc:1293 +#: ../lib/modules/passwordSelfReset.inc:1302 +#: ../lib/modules/passwordSelfReset.inc:1308 +#: ../lib/modules/passwordSelfReset.inc:1317 +msgid "Unable to reset password." +msgstr "Parola sıfırlama işlemi yapılamıyor" + +#: ../templates/3rdParty/pla/lib/functions.php:1945 +msgid "Unable to retrieve image" +msgstr "" + +#: ../templates/tests/schemaTest.php:61 ../templates/schema/schema.php:93 +#: ../templates/schema/schema.php:111 ../templates/schema/schema.php:272 +#: ../templates/schema/schema.php:306 +msgid "Unable to retrieve schema!" +msgstr "" + +#: ../templates/selfService/adminMain.php:245 +#: ../templates/profedit/profilepage.php:124 +msgid "Unable to save profile!" +msgstr "Profil kaydedilemiyor!" + +#: ../lib/account.inc:999 +msgid "Unable to send mail!" +msgstr "Mail gönderilemiyor !" + +#: ../lib/modules/passwordSelfReset.inc:866 +#: ../lib/modules/passwordSelfReset.inc:1110 +msgid "Unable to verify your password reset request. Please try again." +msgstr "Parola sıfırma isteğiniz gerçekleştirilemiyor. Lütfen tekrar deneyiniz" + +#: ../lib/modules/selfRegistration.inc:635 +msgid "Unable to verify your user creation request. Please try again." +msgstr "" +"Kullanıcı oluşturma isteğiniz gerçekleştirilemiyor . Lütfen tekrar deneyiniz" + +#: ../templates/serverInfo.php:293 +msgid "Unbind" +msgstr "çıkar" + +#: ../lib/modules/windowsGroup.inc:66 +msgid "Universal" +msgstr "Evrensel" + +#: ../templates/lists/changePassword.php:362 +#: ../templates/lists/changePassword.php:393 ../lib/types/user.inc:268 +#: ../lib/types/user.inc:369 ../lib/types/user.inc:401 +#: ../lib/types/user.inc:821 ../lib/modules/posixGroup.inc:362 +#: ../lib/modules/posixAccount.inc:161 +msgid "Unix" +msgstr "Unix" + +#: ../templates/tests/lamdaemonTest.php:214 +msgid "Unix account" +msgstr "Unix hesabı" + +#: ../lib/modules/posixAccount.inc:256 ../lib/modules/posixAccount.inc:1462 +msgid "Unix groups" +msgstr "Unix grupları" + +#: ../lib/modules/dhcp_settings.inc:194 ../lib/modules/dhcp_settings.inc:211 +#: ../lib/modules/dhcp_settings.inc:287 ../lib/modules/dhcp_settings.inc:595 +#: ../lib/modules/dhcp_settings.inc:675 +msgid "Unknown clients" +msgstr "Bilinmeyen istemci" + +#: ../lib/modules/kolabUser.inc:218 +#, php-format +msgid "Unknown delegate address: %s" +msgstr "Bilinmeyen temsilci adresi: %s" + +#: ../templates/3rdParty/pla/lib/import_functions.php:233 +msgid "Unkown change type" +msgstr "Bilinmeyen değiştirme türü" + +#: ../lib/types/user.inc:350 ../lib/types/user.inc:355 +#: ../lib/modules/windowsUser.inc:551 +msgid "Unlock" +msgstr "Kilitle" + +#: ../templates/lists/changePassword.php:203 +#: ../templates/lists/changePassword.php:359 +#: ../templates/lists/changePassword.php:379 +#: ../templates/lists/changePassword.php:381 +#: ../lib/modules/ppolicyUser.inc:135 +msgid "Unlock account" +msgstr "Hesabı kilitle" + +#: ../templates/lists/changePassword.php:251 +msgid "Unlock account?" +msgstr "Hesabı kilitle?" + +#: ../lib/modules/posixGroup.inc:209 ../lib/modules/posixAccount.inc:1404 +#: ../lib/modules/inetOrgPerson.inc:2087 +msgid "Unlock password" +msgstr "Parolayı kilitle" + +#: ../templates/masscreate.php:106 ../templates/config/confmodules.php:386 +msgid "Unsolved dependency:" +msgstr "Çözülmemiş destek dosyaları:" + +#: ../templates/pdfedit/pdfpage.php:473 +msgid "Up" +msgstr "Yukarı" + +#: ../templates/lists/changePassword.php:215 +msgid "Update Samba password timestamp" +msgstr "Samba parola tarih bilgisini güncelle" + +#: ../lib/modules/sambaSamAccount.inc:242 +msgid "Update attribute \"sambaPwdLastSet\" on password change" +msgstr "Özniteliği \"sambaPwdLastSet\" şifre değiştirerek güncelle ." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1440 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:194 +msgid "Update object" +msgstr "Nesne güncelle" + +#: ../lib/modules/imapAccess.inc:302 ../lib/modules/imapAccess.inc:311 +msgid "Update quota" +msgstr "Kota güncelle" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:165 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:129 +msgid "Update values" +msgstr "Değerleri güncelle" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:118 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:118 +msgid "Updating object" +msgstr "Nesneyi güncelleme" + +#: ../templates/config/mainmanage.php:288 ../lib/modules/ldapPublicKey.inc:141 +#: ../lib/modules/inetOrgPerson.inc:2303 +msgid "Upload" +msgstr "Yükleme" + +#: ../templates/config/mainmanage.php:290 +msgid "Upload CA certificate in DER/PEM format." +msgstr "DER/PEM formatında CA sertifikası yükleme" + +#: ../lib/modules/ldapPublicKey.inc:74 +msgid "Upload a file with one or more keys. Each line contains one key." +msgstr "" +"Bir ya da daha fazla anahta ile dosya yükle. Her bir satır bir anahtar " +"içerir." + +#: ../templates/massBuildAccounts.php:242 +msgid "Upload accounts to LDAP" +msgstr "LDAP'a hesapları yükleme" + +#: ../lib/modules/ldapPublicKey.inc:137 ../lib/modules/customFields.inc:146 +#: ../lib/modules/customFields.inc:2916 +msgid "Upload file" +msgstr "Dosya yükleme" + +#: ../templates/masscreate.php:271 +msgid "Upload file and create accounts" +msgstr "Karşıya dosya yükleme ve hesap oluşturma" + +#: ../templates/massDoUpload.php:254 ../lib/lists.inc:1064 +msgid "Upload has finished" +msgstr "Yükleme sona erdi" + +#: ../lib/modules.inc:498 +#, php-format +msgid "Upload was stopped after errors in %s module!" +msgstr "%s modülünde oluşan hatalar sonrasında yükleme durduruldu!" + +#: ../templates/serverInfo.php:222 +msgid "Uptime" +msgstr "Çalışma zamanı" + +#: ../templates/schema/schema.php:209 +msgid "Usage" +msgstr "Kullanım" + +#: ../lib/modules/authorizedServiceObject.inc:75 +#: ../lib/modules/authorizedServiceObject.inc:79 +msgid "Use * for all services." +msgstr "Tüm servisler için * kullan" + +#: ../lib/modules/sambaSamAccount.inc:257 +#: ../lib/modules/sambaSamAccount.inc:260 +#: ../lib/modules/sambaSamAccount.inc:418 +msgid "Use Unix password" +msgstr "Unix parolası kullan" + +#: ../lib/modules/sambaSamAccount.inc:263 +#: ../lib/modules/sambaSamAccount.inc:266 +#: ../lib/modules/sambaSamAccount.inc:426 +#: ../lib/modules/sambaSamAccount.inc:1128 +#: ../lib/modules/sambaSamAccount.inc:1708 +msgid "Use no password" +msgstr "Parola kullanma" + +#: ../help/help.inc:155 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of visible elements for this account type." +msgstr "" +"Bu hesap tipi için görsel elementlerin sayısını azaltan ek bir LDAP " +"filtresi girmek için bunu kullan." + +#: ../lib/modules/asteriskAccount.inc:179 +msgid "Use this to hide the caller ID." +msgstr "Arayanın kimliğini gizlemek için bunu kullan" + +#: ../lib/modules/zarafaDynamicGroup.inc:73 +#: ../lib/modules/zarafaContact.inc:65 ../lib/modules/zarafaGroup.inc:80 +#: ../lib/modules/zarafaAddressList.inc:61 ../lib/modules/zarafaUser.inc:74 +msgid "Use this to hide this entry from the address book." +msgstr "Bu girdiyi adres defterinden gizlemek için bunu kullan." + +#: ../lib/modules/sambaGroupMapping.inc:160 +msgid "" +"Use this to specify other groups or accounts from other domains as group " +"members." +msgstr "" +"Grup üyeleri olan diğer etki alanlarından diğer grupları ya da hesapları " +"belirlemek için bunu kullan." + +#: ../lib/modules/quota.inc:102 ../lib/modules/quota.inc:393 +msgid "Used blocks" +msgstr "Kullanılan bloklar" + +#: ../lib/modules/quota.inc:103 +msgid "Used blocks. 1000 blocks are usually 1MB" +msgstr "" + +#: ../templates/schema/schema.php:268 +msgid "Used by attributes" +msgstr "Kullanılan öznitelikler" + +#: ../templates/schema/schema.php:237 +msgid "Used by object classes" +msgstr "Kullanılan nesne sınıfları" + +#: ../lib/modules/sambaDomain.inc:91 +msgid "Used for calculating RIDs from UID/GID. Do not change if unsure." +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:211 +msgid "Used for registration context." +msgstr "Kayıt içeriği için kullanıldı." + +#: ../lib/modules/quota.inc:124 ../lib/modules/quota.inc:397 +msgid "Used inodes" +msgstr "Kullanılmış dosya sayısı" + +#: ../lib/modules/quota.inc:125 +msgid "Used inodes (files)" +msgstr "Kullanılmış dosya sayısı ( dosyalar)" + +#: ../lib/modules/asteriskAccount.inc:183 +msgid "Used to automatically hangup the call if no RTP traffic is received." +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:159 +#: ../lib/modules/asteriskAccount.inc:163 +msgid "" +"Used to limit SIP traffic to and from this peer to a certain IP or network." +msgstr "" + +#: ../lib/modules/asteriskAccount.inc:175 +msgid "Used to regularly check that a device is still online." +msgstr "" + +#: ../lib/types/sudo.inc:78 ../lib/modules/nisnetgroup.inc:213 +#: ../lib/modules/nisnetgroup.inc:581 +msgid "User" +msgstr "Kullanıcı" + +#: ../lib/types/user.inc:91 +msgid "User ID" +msgstr "Kullanıcı kimliği" + +#: ../lib/types/user.inc:62 +msgid "User accounts (e.g. Unix, Samba and Kolab)" +msgstr "Kullanıcı hesaplar ( örn. Unix ,Samba ve Kolab)" + +#: ../lib/modules/asteriskAccount.inc:118 +#: ../lib/modules/asteriskAccount.inc:249 +#: ../lib/modules/asteriskAccount.inc:332 +#: ../lib/modules/asteriskAccount.inc:402 +#: ../lib/modules/asteriskAccount.inc:688 +#: ../lib/modules/asteriskAccount.inc:1192 +msgid "User agent" +msgstr "Kullanıcı aracısı" + +#: ../lib/modules/sambaSamAccount.inc:287 +#: ../lib/modules/sambaSamAccount.inc:1142 +msgid "User can change password" +msgstr "Kullanıcı parolayı değiştirebilir" + +#: ../lib/modules/inetOrgPerson.inc:147 ../lib/modules/inetOrgPerson.inc:360 +#: ../lib/modules/inetOrgPerson.inc:912 ../lib/modules/inetOrgPerson.inc:2044 +#: ../lib/modules/inetOrgPerson.inc:3210 +msgid "User certificates" +msgstr "Kullanıcı sertifikaları" + +#: ../lib/types/user.inc:530 +#, php-format +msgid "User count: %s" +msgstr "Kullanıcı sayısı : %s" + +#: ../lib/modules/posixAccount.inc:500 +msgid "User description. If left empty first and last name will be used." +msgstr "Kullanıcı tanımlaması. Boş bırakılırsa ad ve soyad kullanılacaktır." + +#: ../lib/modules/inetOrgPerson.inc:702 +msgid "User description. If left empty sur- and give name will be used." +msgstr "" +"Kullanıcı tanımlaması. Boş bırakılırsa soyad ve verilen ad kullanılacaktır." + +#: ../lib/modules/account.inc:99 +msgid "User description. If left empty user name will be used." +msgstr "Kullanıcı tanımlaması. Boş bırakılırsa kulllanıcı adı kullanılacaktır." + +#: ../templates/schema/schema.php:204 +msgid "User modification" +msgstr "Kullanıcı değişikliği" + +#: ../lib/modules/mitKerberos.inc:217 ../lib/modules/mitKerberos.inc:243 +#: ../lib/modules/mitKerberos.inc:375 ../lib/modules/mitKerberos.inc:640 +#: ../lib/modules/mitKerberos.inc:780 ../lib/modules/sambaSamAccount.inc:289 +#: ../lib/modules/sambaSamAccount.inc:1148 ../lib/modules/windowsUser.inc:560 +#: ../lib/modules/heimdalKerberos.inc:99 +#: ../lib/modules/heimdalKerberos.inc:186 +#: ../lib/modules/heimdalKerberos.inc:213 +#: ../lib/modules/heimdalKerberos.inc:329 +#: ../lib/modules/heimdalKerberos.inc:546 +#: ../lib/modules/heimdalKerberos.inc:680 +msgid "User must change password" +msgstr "Kullanıcı parolayı değiştirmelidir." + +#: ../templates/lists/changePassword.php:262 ../templates/login.php:338 +#: ../lib/types/alias.inc:91 ../lib/types/user.inc:94 +#: ../lib/selfService.inc:366 ../lib/modules/mitKerberos.inc:109 +#: ../lib/modules/mitKerberos.inc:204 ../lib/modules/mitKerberos.inc:242 +#: ../lib/modules/mitKerberos.inc:337 ../lib/modules/mitKerberos.inc:767 +#: ../lib/modules/selfRegistration.inc:335 +#: ../lib/modules/selfRegistration.inc:403 +#: ../lib/modules/selfRegistration.inc:411 ../lib/modules/account.inc:78 +#: ../lib/modules/account.inc:94 ../lib/modules/account.inc:117 +#: ../lib/modules/account.inc:119 ../lib/modules/account.inc:120 +#: ../lib/modules/account.inc:207 ../lib/modules/account.inc:233 +#: ../lib/modules/account.inc:257 ../lib/modules/uidObject.inc:38 +#: ../lib/modules/uidObject.inc:60 ../lib/modules/uidObject.inc:69 +#: ../lib/modules/uidObject.inc:78 ../lib/modules/uidObject.inc:93 +#: ../lib/modules/uidObject.inc:154 ../lib/modules/posixAccount.inc:113 +#: ../lib/modules/posixAccount.inc:114 ../lib/modules/posixAccount.inc:117 +#: ../lib/modules/posixAccount.inc:276 ../lib/modules/posixAccount.inc:402 +#: ../lib/modules/posixAccount.inc:495 ../lib/modules/posixAccount.inc:1320 +#: ../lib/modules/posixAccount.inc:1738 ../lib/modules/windowsUser.inc:95 +#: ../lib/modules/windowsUser.inc:214 ../lib/modules/windowsUser.inc:380 +#: ../lib/modules/windowsUser.inc:443 ../lib/modules/windowsUser.inc:519 +#: ../lib/modules/windowsUser.inc:1215 ../lib/modules/nisnetgroup.inc:145 +#: ../lib/modules/nisnetgroup.inc:475 ../lib/modules/inetOrgPerson.inc:92 +#: ../lib/modules/inetOrgPerson.inc:366 ../lib/modules/inetOrgPerson.inc:693 +#: ../lib/modules/inetOrgPerson.inc:812 ../lib/modules/inetOrgPerson.inc:1408 +#: ../lib/modules/inetOrgPerson.inc:2376 ../lib/modules/inetOrgPerson.inc:2511 +#: ../lib/modules/passwordSelfReset.inc:190 +#: ../lib/modules/passwordSelfReset.inc:712 +#: ../lib/modules/passwordSelfReset.inc:882 +#: ../lib/modules/heimdalKerberos.inc:87 +#: ../lib/modules/heimdalKerberos.inc:173 +#: ../lib/modules/heimdalKerberos.inc:211 +#: ../lib/modules/heimdalKerberos.inc:288 +#: ../lib/modules/heimdalKerberos.inc:673 +msgid "User name" +msgstr "Kullanıcı adı" + +#: ../lib/modules/selfRegistration.inc:411 ../lib/modules/posixAccount.inc:121 +#: ../lib/modules/inetOrgPerson.inc:94 +msgid "User name already exists!" +msgstr "Kullanıcı adı oluşturuldu !" + +#: ../lib/modules/passwordSelfReset.inc:192 +msgid "User name and email address" +msgstr "Kullanıcı adı ve email adresi" + +#: ../lib/modules/imapAccess.inc:94 ../lib/modules/imapAccess.inc:125 +msgid "User name attribute" +msgstr "Kullanıcı adı özniteliği" + +#: ../lib/modules/mitKerberos.inc:280 ../lib/modules/mitKerberos.inc:281 +#: ../lib/modules/selfRegistration.inc:403 ../lib/modules/account.inc:117 +#: ../lib/modules/account.inc:118 ../lib/modules/account.inc:120 +#: ../lib/modules/zarafaContact.inc:176 ../lib/modules/zarafaContact.inc:177 +#: ../lib/modules/uidObject.inc:78 ../lib/modules/zarafaGroup.inc:216 +#: ../lib/modules/zarafaGroup.inc:217 ../lib/modules/posixAccount.inc:114 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/zarafaUser.inc:451 +#: ../lib/modules/zarafaUser.inc:452 ../lib/modules/windowsUser.inc:443 +#: ../lib/modules/windowsUser.inc:444 ../lib/modules/nisnetgroup.inc:145 +#: ../lib/modules/inetOrgPerson.inc:92 ../lib/modules/inetOrgPerson.inc:93 +#: ../lib/modules/passwordSelfReset.inc:760 +#: ../lib/modules/passwordSelfReset.inc:979 +#: ../lib/modules/heimdalKerberos.inc:244 +#: ../lib/modules/heimdalKerberos.inc:245 +msgid "" +"User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Kullanıcı adı geçersiz karakterler içeriyor. Geçerli karakterler: a-z, A-Z, " +"0-9 ve .-_ !" + +#: ../lib/modules/posixAccount.inc:117 +msgid "User name in use. Selected next free user name." +msgstr "" +"Seçilen kullanıcı adı kullanımda. Lütfen farklı bir kullanıcı adı seçiniz" + +#: ../lib/modules/mitKerberos.inc:110 ../lib/modules/account.inc:95 +#: ../lib/modules/inetOrgPerson.inc:813 ../lib/modules/heimdalKerberos.inc:88 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_." +msgstr "" +"Kullanıcı tarafından oluşturulması gereken kullanıcı adı. Geçerli " +"karakterler: a-z,A-Z,0-9, @.-_." + +#: ../lib/modules/posixAccount.inc:496 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_. If user name is already used user name will be expanded with a " +"number. The next free number will be used." +msgstr "" + +#: ../lib/modules/passwordSelfReset.inc:193 +#: ../lib/modules/passwordSelfReset.inc:736 +#: ../lib/modules/passwordSelfReset.inc:902 +msgid "User name or email address" +msgstr "Kullanıcı adı ya da e-mail adresi" + +#: ../lib/modules/posixAccount.inc:263 ../lib/modules/posixAccount.inc:429 +msgid "User name suggestion" +msgstr "Kullanıcı adı önerisi" + +#: ../lib/modules/windowsUser.inc:571 +msgid "User profile" +msgstr "Kullanıcı profili" + +#: ../lib/modules/selfRegistration.inc:38 +msgid "User self registration" +msgstr "Kullanıcı kişisel kaydı" + +#: ../lib/modules/zarafaUser.inc:121 ../lib/modules/zarafaUser.inc:206 +#: ../lib/modules/zarafaUser.inc:316 ../lib/modules/zarafaUser.inc:414 +#: ../lib/modules/zarafaUser.inc:646 ../lib/modules/zarafaUser.inc:1299 +#: ../lib/modules/zarafaUser.inc:1388 +msgid "User server" +msgstr "Kullanıcı sunucusu" + +#: ../lib/types/user.inc:53 ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:97 +#: ../lib/modules/posixAccount.inc:202 ../lib/modules/zarafaUser.inc:180 +#: ../lib/modules/sudoRole.inc:63 ../lib/modules/sudoRole.inc:87 +#: ../lib/modules/sudoRole.inc:134 ../lib/modules/sudoRole.inc:173 +#: ../lib/modules/sudoRole.inc:182 ../lib/modules/sudoRole.inc:264 +#: ../lib/modules/sudoRole.inc:684 +msgid "Users" +msgstr "Kullanıcılar" + +#: ../lib/modules/zarafaContact.inc:73 ../lib/modules/zarafaGroup.inc:88 +#: ../lib/modules/zarafaUser.inc:98 +msgid "Users or groups that may directly send email as this user." +msgstr "" +"Bu kullanıcı gibi doğrudan e-posta gönderebilecek kullanıcılar ya da gruplar" + +#: ../lib/modules/posixGroup.inc:464 +msgid "" +"Users who are member of the current group. Users who have set their primary " +"group to this group will not be shown." +msgstr "" +"Varsayılan gruba üye olacak kullanıcılar. Bu gruba gösterilmeyecek olan " +"birincil gruplarının ayarlarına sahip kullanıcılar." + +#: ../lib/modules/posixGroup.inc:468 +msgid "" +"Users who will become member of the current group. User names are separated " +"by semicolons." +msgstr "" +"Varsayılan gruba üye olacak kullanıcılar.Kullanıcı adları noktalı virgülle " +"ayrılır." + +#: ../templates/tests/lamdaemonTest.php:207 +#, php-format +msgid "Using %s as lamdaemon remote server." +msgstr "" + +#: ../templates/tests/lamdaemonTest.php:229 +#, php-format +msgid "Using %s to connect to remote server." +msgstr "" + +#: ../lib/modules/posixAccount.inc:439 +msgid "" +"Usually, users are not added to groups as memberUid if they have this group " +"as primary group. If your application ignores primary groups then you can " +"select this option to override this behaviour." +msgstr "" + +#: ../templates/3rdParty/pla/lib/export_functions.php:543 +msgid "VCARD 2.1 Export" +msgstr "VCARD 2.1 dışa aktar" + +#: ../templates/config/mainmanage.php:314 +msgid "Valid to" +msgstr "Geçerlilik sonu" + +#: ../help/help.inc:90 +msgid "Valid users" +msgstr "Geçerli kullanıcı" + +#: ../lib/modules/imapAccess.inc:76 ../lib/modules/imapAccess.inc:112 +msgid "Validate server certificate" +msgstr "Sunucu sertifikasını doğrula" + +#: ../lib/modules/customFields.inc:94 ../lib/modules/customFields.inc:1660 +msgid "Validation expression" +msgstr "Doğrulama ifadesi" + +#: ../lib/modules/customFields.inc:98 ../lib/modules/customFields.inc:1665 +msgid "Validation message" +msgstr "Doğrulama iletisi" + +#: ../lib/modules/customFields.inc:2449 +msgid "Value" +msgstr "Değer" + +#: ../lib/modules/customFields.inc:102 ../lib/modules/customFields.inc:2236 +msgid "Value for \"checked\"" +msgstr "\" işaretlenen \" için değer" + +#: ../lib/modules/customFields.inc:106 ../lib/modules/customFields.inc:2242 +msgid "Value for \"unchecked\"" +msgstr "\" işaretlenmeyen \" için değer" + +#: ../lib/modules/customFields.inc:126 ../lib/modules/customFields.inc:2445 +msgid "Value mapping" +msgstr "Değer eşlemesi" + +#: ../templates/3rdParty/pla/lib/import_functions.php:512 +msgid "Value to delete does not exist in DN" +msgstr "Silmek için değer DN de yok" + +#: ../lib/modules/puppetClient.inc:93 ../lib/modules/puppetClient.inc:97 +#: ../lib/modules/puppetClient.inc:139 ../lib/modules/puppetClient.inc:149 +#: ../lib/modules/puppetClient.inc:162 ../lib/modules/puppetClient.inc:270 +#: ../lib/modules/puppetClient.inc:432 +msgid "Variables" +msgstr "Değişkenler" + +#: ../templates/serverInfo.php:134 +msgid "Vendor name" +msgstr "Satıcı adı" + +#: ../templates/serverInfo.php:140 +msgid "Vendor version" +msgstr "Satıcı versiyonu" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +#, php-format +msgid "View %s children" +msgstr "Alt basamakları %s görüntüle" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +msgid "View 1 child" +msgstr "1 alt basamak görüntüle" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1230 +msgid "View the children of this object" +msgstr "Bu nesnenin alt basamaklarını görüntüle" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1028 +msgid "Viewing entry in read-only mode." +msgstr "Salt- okunur modda girdi görüntüleme" + +#: ../lib/modules/asteriskVoicemail.inc:110 +#: ../lib/modules/asteriskVoicemail.inc:117 +#: ../lib/modules/asteriskVoicemail.inc:134 +#: ../lib/modules/asteriskVoicemail.inc:187 +#: ../lib/modules/asteriskVoicemail.inc:279 +#: ../lib/modules/asteriskVoicemail.inc:391 +msgid "Voicemail context" +msgstr "Sesli posta içeriği" + +#: ../lib/modules/asteriskVoicemail.inc:87 +msgid "Voicemail mailbox for this account." +msgstr "Bu hesap için sesli mail kutusu" + +#: ../templates/login.php:499 +msgid "Want more features? Get LAM Pro!" +msgstr "Daha fazla özellik mi istiyorsunuz ? LAM Pro edinin" + +#: ../templates/config/mainmanage.php:352 +#: ../templates/3rdParty/pla/lib/page.php:76 +msgid "Warning" +msgstr "Uyarı" + +#: ../templates/delete.php:234 ../lib/modules/posixAccount.inc:786 +#: ../lib/modules/posixAccount.inc:839 ../lib/modules/windowsUser.inc:819 +#: ../lib/modules/groupOfNamesUser.inc:197 +#: ../lib/modules/groupOfNamesUser.inc:244 ../lib/modules.inc:1836 +#, php-format +msgid "Was unable to add attributes to DN: %s." +msgstr "DN: %s ye öznitelikler eklennemiyor" + +#: ../lib/modules.inc:1801 +#, php-format +msgid "Was unable to create DN: %s." +msgstr "DN: %s oluşumu gerçekleştirilemiyor" + +#: ../templates/delete.php:344 ../templates/delete.php:353 +#, php-format +msgid "Was unable to delete DN: %s." +msgstr "DN: %s silinemiyor." + +#: ../templates/lists/changePassword.php:694 +#: ../templates/lists/changePassword.php:732 +#: ../templates/lists/changePassword.php:778 ../templates/delete.php:225 +#, php-format +msgid "Was unable to modify attributes from DN: %s." +msgstr "DN: %s kaynaklı öznitelik değiştirilemiyor." + +#: ../lib/modules/posixAccount.inc:824 ../lib/modules/windowsUser.inc:845 +#: ../lib/modules/windowsUser.inc:1188 ../lib/modules/groupOfNamesUser.inc:229 +#: ../lib/modules.inc:1819 +#, php-format +msgid "Was unable to modify attributes of DN: %s." +msgstr "DN: %s özniteliği değiştirilemiyor." + +#: ../templates/delete.php:243 ../lib/modules/posixAccount.inc:794 +#: ../lib/modules/posixAccount.inc:856 ../lib/modules/windowsUser.inc:832 +#: ../lib/modules/groupOfNamesUser.inc:202 +#: ../lib/modules/groupOfNamesUser.inc:258 ../lib/modules.inc:1848 +#, php-format +msgid "Was unable to remove attributes from DN: %s." +msgstr "DN: %s kaynaklı öznitelik kaldırılamıyor." + +#: ../lib/modules/asteriskExtension.inc:904 ../lib/modules.inc:1782 +#, php-format +msgid "Was unable to rename DN: %s." +msgstr "DN: %s yeniden adlandırması yapılamıyor" + +#: ../lib/modules/windowsUser.inc:167 ../lib/modules/windowsUser.inc:318 +#: ../lib/modules/windowsUser.inc:397 ../lib/modules/windowsUser.inc:413 +#: ../lib/modules/windowsUser.inc:539 ../lib/modules/windowsUser.inc:1232 +#: ../lib/modules/windowsUser.inc:1334 ../lib/modules/inetOrgPerson.inc:146 +#: ../lib/modules/inetOrgPerson.inc:197 ../lib/modules/inetOrgPerson.inc:358 +#: ../lib/modules/inetOrgPerson.inc:536 ../lib/modules/inetOrgPerson.inc:656 +#: ../lib/modules/inetOrgPerson.inc:800 ../lib/modules/inetOrgPerson.inc:804 +#: ../lib/modules/inetOrgPerson.inc:1848 ../lib/modules/inetOrgPerson.inc:2386 +#: ../lib/modules/inetOrgPerson.inc:2958 +msgid "Web site" +msgstr "Web sitesi" + +#: ../lib/modules/sambaSamAccount.inc:1350 +msgid "Wednesday" +msgstr "Çarşamba" + +#: ../lib/selfService.inc:365 +msgid "Welcome to LAM self service. Please enter your user name and password." +msgstr "" +"LAM self-servis e hoşgeldiniz. Lütfen kullanıcı adı ve şifresini giriniz." + +#: ../lib/modules/sambaSamAccount.inc:551 +msgid "Western Europe Time, London, Lisbon" +msgstr "Batı Avrupa saati, Londra, Lizbon" + +#: ../lib/modules/passwordSelfReset.inc:160 +msgid "What is the name of your favourite pet?" +msgstr "En sevdiğiniz evcil hayvanınızın adı ?" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +msgid "" +"When performing a recursive copy, only copy those entries which match this " +"filter." +msgstr "" + +#: ../lib/modules/zarafaUser.inc:94 +msgid "" +"When the hard quota limit is reached, email can not be delivered to that " +"user anymore." +msgstr "" + +#: ../help/help.inc:70 +msgid "" +"When using ldaps:// or TLS be sure to use exactly the same IP/domain name as " +"in your certificate!" +msgstr "" + +#: ../templates/lists/changePassword.php:374 +#: ../templates/lists/changePassword.php:405 ../lib/types/user.inc:292 +#: ../lib/types/user.inc:381 ../lib/types/user.inc:413 +#: ../lib/types/user.inc:845 ../lib/modules/windowsHost.inc:57 +#: ../lib/modules/windowsUser.inc:82 ../lib/modules/windowsGroup.inc:92 +msgid "Windows" +msgstr "Windows" + +#: ../lib/modules/sambaSamAccount.inc:327 +msgid "Windows domain name of account." +msgstr "Hesabın Windows erişim alanı adı" + +#: ../lib/modules/sambaSamAccount.inc:204 +#: ../lib/modules/sambaSamAccount.inc:457 +#: ../lib/modules/sambaSamAccount.inc:1236 +#: ../lib/modules/sambaSamAccount.inc:1756 +#: ../lib/modules/sambaSamAccount.inc:1881 +#: ../lib/modules/sambaGroupMapping.inc:104 +#: ../lib/modules/sambaGroupMapping.inc:367 +#: ../lib/modules/sambaGroupMapping.inc:526 +msgid "Windows group" +msgstr "Windows grup" + +#: ../lib/modules/sambaGroupMapping.inc:143 +msgid "Windows group name" +msgstr "Windows grup adı" + +#: ../lib/modules/sambaGroupMapping.inc:156 +msgid "Windows group type." +msgstr "Windows grup tipi" + +#: ../lib/modules/sambaSamAccount.inc:384 +msgid "" +"Windows password hashes are saved by default as NT and LM hashes. LM hashes " +"are insecure and only needed for old versions of Windows. You should disable " +"them unless you really need them." +msgstr "" + +#: ../lib/modules/sambaSamAccount.inc:310 +msgid "Windows primary group" +msgstr "Windows birincil grup" + +#: ../lib/modules/sambaSamAccount.inc:313 +msgid "Windows primary group SID" +msgstr "Windows birincil grup SID" + +#: ../lib/modules/sambaGroupMapping.inc:152 +msgid "Windows-Domain name of group." +msgstr "Grubun Windows erişim adı" + +#: ../lib/modules/inetOrgPerson.inc:1872 +msgid "Work details" +msgstr "Çalışma ayrıntıları" + +#: ../lib/modules/sambaDomain.inc:139 +msgid "Workgroup" +msgstr "Çalışma grubu" + +#: ../lib/modules/sambaSamAccount.inc:228 +#: ../lib/modules/sambaSamAccount.inc:356 +#: ../lib/modules/sambaSamAccount.inc:1492 +#: ../lib/modules/sambaSamAccount.inc:1900 +msgid "Working directory" +msgstr "Yürürlükteki dizin" + +#: ../lib/modules/sambaSamAccount.inc:357 +msgid "Working directory of initial program." +msgstr "Başlangıç programı dizini" + +#: ../templates/config/confmain.php:307 +msgid "Write" +msgstr "Yaz" + +#: ../templates/config/confmain.php:259 +msgid "Write access" +msgstr "yazma erişimi" + +#: ../templates/login.php:582 ../templates/login.php:640 +#: ../templates/selfService/selfServiceLogin.php:122 +#: ../templates/selfService/selfServiceLogin.php:139 +msgid "Wrong password/user name combination. Please try again." +msgstr "hatalı şifre/kullanıcı adı. Lütfen tekrar deneyiniz." + +#: ../lib/modules/imapAccess.inc:168 +msgid "Wrong quota format. Quota must be numeric." +msgstr "Hatalı kota formatı . Kota numerik olmalı" + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/qmailGroup.inc:315 +#: ../lib/modules/qmailGroup.inc:357 ../lib/modules/qmailGroup.inc:1027 +#: ../lib/modules/qmailGroup.inc:1028 ../lib/modules/qmailGroup.inc:1070 +#: ../lib/modules/qmailGroup.inc:1076 ../lib/modules/imapAccess.inc:112 +msgid "Yes" +msgstr "evet" + +#: ../templates/lists/changePassword.php:491 +#: ../lib/modules/ppolicyUser.inc:333 ../lib/modules/ppolicyUser.inc:382 +msgid "You are reusing an old password. Please choose a different password." +msgstr "Eski bir parola kullanıyorsunuz. Lütfen değiştiriniz" + +#: ../lib/modules/account.inc:119 ../lib/modules/posixGroup.inc:578 +#: ../lib/modules/posixAccount.inc:113 ../lib/modules/posixAccount.inc:115 +msgid "" +"You are using capital letters. This can cause problems because Windows is " +"not case-sensitive." +msgstr "" +"Büyük harf kullanıyorsunuz. Windows büyük/küçük harf duyarlılığına sahip " +"olmadığından problem yaratabilir" + +#: ../lib/lists.inc:1066 +#, php-format +msgid "" +"You can download your PDF files {link=%s}{color=#d2131a}here{endcolor}" +"{endlink}." +msgstr "" +"PDF dosyalarınızı yükleyebilirsiniz {link=%s}{color=#d2131a}here{endcolor}" +"{endlink}." + +#: ../templates/initsuff.php:181 +msgid "" +"You can setup the LDAP suffixes for all account types in your LAM server " +"profile on tab \"Account types\"." +msgstr "" +"\"Account types\" sekmesi üzerindeki LAM sunucu profilinizde yer alan bütün " +"hesap tipleri için LDAP soneklerini kurabilirsiniz." + +#: ../help/help.inc:106 +msgid "" +"You can specify if LAM allows full write access, password changes or only " +"read access." +msgstr "" + +#: ../help/help.inc:156 +msgid "" +"You can use the wildcard @@LOGIN_DN@@ which will be substituted with the DN " +"of the user who is currently logged in to LAM." +msgstr "" + +#: ../lib/modules/zarafaDynamicGroup.inc:77 +#: ../lib/modules/zarafaContact.inc:69 ../lib/modules/zarafaGroup.inc:84 +#: ../lib/modules/zarafaAddressList.inc:65 ../lib/modules/zarafaUser.inc:78 +msgid "You can use this to temporarily deactivate the Zarafa extension." +msgstr "" +"Zarafa uzantısını düzenli olarak devredışı bırakmak için bunu " +"kullanabilirsiniz." + +#: ../lib/modules/passwordSelfReset.inc:115 +#: ../lib/modules/passwordSelfReset.inc:125 ../help/help.inc:227 +msgid "" +"You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. " +"@@uid@@ for the user name)." +msgstr "" + +#: ../lib/modules/customScripts.inc:58 ../lib/modules/customScripts.inc:71 +msgid "" +"You can use wildcards in the format $wildcard$ which are replaced by the " +"LDAP attribute with the same name. For multi-value attributes the values " +"will be separated by commas." +msgstr "" + +#: ../lib/modules/zarafaContact.inc:180 +msgid "" +"You cannot add the Zarafa and Zarafa contact extension at the same time." +msgstr "Zarafa ve Zarafa admin uzantısını aynı zamanda ekleyemezsiniz." + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:52 +msgid "You cannot perform updates while server is in read-only mode" +msgstr "Sunucunuz salt-okunur modda iken güncellemeleri gerçekleştiremezsiniz." + +#: ../templates/3rdParty/pla/htdocs/rename.php:26 +msgid "You cannot rename an entry which has child entries." +msgstr "Alt basamak girdilerine sahipbir girdiyi yeniden adlandıramazsınız." + +#: ../templates/config/confmain.php:487 +msgid "" +"You cannot use SSL and TLS encryption at the same time. Please use either " +"\"ldaps://\" or TLS." +msgstr "" +"SSL ve TLS şifrelemesini aynı anda kullanamazsinız. Lütfen ya \"ldaps://\" " +"ya da TLS kullanın." + +#: ../templates/3rdParty/pla/htdocs/rename.php:32 +msgid "You did not change the RDN" +msgstr "RDN değiştirmediniz" + +#: ../templates/tests/schemaTest.php:61 +msgid "" +"You do not have the required access rights or the LDAP schema is not " +"published by your server." +msgstr "" +"Gerekli erişim haklarına sahip değilsiniz ya da LDAP şeması sunucunuz " +"tarafından yayımlanmadı." + +#: ../lib/modules/dhcp_settings.inc:315 ../lib/modules/dhcp_settings.inc:316 +msgid "You entered one or more invalid DNS servers." +msgstr "Bir ya da birden fazla geçersiz DNS sunucuları girdiniz." + +#: ../templates/3rdParty/pla/lib/Template.php:417 +#: ../templates/3rdParty/pla/lib/Template.php:504 +msgid "You left the attribute value blank. Please go back and try again." +msgstr "" +"Öznitelik değeri boşluğu bıraktınız. Lütfen geri dönüp tekrar deneyiniz." + +#: ../templates/3rdParty/pla/htdocs/create.php:51 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:45 +#, php-format +msgid "You left the value blank for required attribute (%s)." +msgstr "Gerekli öznitelik için (%s) değer boşluğu bıraktınız." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:171 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:209 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:133 +msgid "You made no changes" +msgstr "Değişiklik yapmadınız" + +#: ../templates/config/mainmanage.php:138 +#: ../templates/config/mainmanage.php:144 +#: ../templates/config/mainmanage.php:156 +msgid "You might need to restart your webserver for changes to take effect." +msgstr "" +"Değişiklikleri etkinleştirmek için web sunucunuzu yeniden başlatmanız " +"gerekebilir." + +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#, php-format +msgid "You might want to use %s instead of %s." +msgstr "%s kullanmak yerine %s kullanmak isteyebilirsiniz." + +#: ../templates/3rdParty/pla/lib/import_functions.php:95 +msgid "You must either upload a file or provide an import in the text box." +msgstr "" +"Ya bir dosya yüklemeniz ya da metin kutusundan içe aktarım sağlamanız " +"gerekiyor." + +#: ../lib/modules/groupOfNames.inc:175 ../lib/modules/groupOfNames.inc:176 +msgid "You need to add at least one member to this group." +msgstr "Bu grubun sonuna bir üye eklemeniz gerekiyor." + +#: ../lib/modules/passwordSelfReset.inc:272 +msgid "You specified an answer but no security question." +msgstr "Bir cevap belirlediniz ama güvenlik sorusu yok." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1136 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "You will be prompted to confirm this decision" +msgstr "Bu kararı doğrulamak için komut istenecek." + +#: ../lib/modules/imapAccess.inc:164 +msgid "Your IMAP domains and email address domain do not match." +msgstr "IMAP etki alanlarınız ve e-posta adresiniz eşlenmedi." + +#: ../templates/tests/lamdaemonTest.php:234 +#, php-format +msgid "" +"Your LAM admin user (%s) must be a valid Unix account to work with lamdaemon!" +msgstr "" +"LAM yönetici kullanıcınızın(%s) lamdaemon ile çalışmak için geçerli bir " +"UNİX hesabı olması gerekiyor!" + +#: ../lib/lamdaemon.inc:61 ../lib/lamdaemon.inc:66 +msgid "" +"Your LAM admin user must be a valid Unix account to work with lamdaemon!" +msgstr "" +"LAM yönetici kullanıcınızın lamdaemon ile çalışmak için geçerli bir UNİX " +"hesabı olması gerekiyor!" + +#: ../lib/modules/imapAccess.inc:166 +msgid "Your LAM login password was not accepted by the IMAP server." +msgstr "LAM oturum açma parolanız IMAP sunucunuz tarafından kabul edilmedi." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:125 +msgid "" +"Your PHP configuration has disabled file uploads. Please check php.ini " +"before proceeding." +msgstr "" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:16 +msgid "" +"Your PHP.INI does not have file_uploads = ON. Please enable file uploads in " +"PHP." +msgstr "" + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:367 +msgid "" +"Your changes cannot be saved until you make the file writable for the " +"webserver user." +msgstr "" +"Dosyayı web sunucusu kullanıcısı için yazılabilir yapana kadar " +"değişikliklerinizi kaydedemezsiniz." + +#: ../lib/modules/selfRegistration.inc:630 +msgid "" +"Your new account was created but post processing failed. Please contact your " +"local administrator." +msgstr "" +"Yeni hesabınız oluşturuldu ama işlem sonucu başarısız oldu. Lütfen yerel " +"yöneticinizle bağlantı kurun." + +#: ../lib/modules/selfRegistration.inc:627 +msgid "" +"Your new account was successfully created. Please return to login to change " +"your user data." +msgstr "" +"Yeni hesabınız başarıyla oluşturuldu . Lütfen giriş için kullanıcı " +"bilgilerini değiştiriniz" + +#: ../lib/security.inc:177 +msgid "Your session expired, click here to go back to the login page." +msgstr "Oturumunuzun süresi doldu. Giriş sayfasına dönmek için tıklayınız" + +#: ../templates/login.php:299 ../templates/selfService/selfServiceLogin.php:79 +msgid "Your session expired, please log in again." +msgstr "Oturumunuzun süresi doldu . Lütfen tekrar giriş yapınız." + +#: ../templates/login.php:304 ../templates/login.php:309 +#: ../templates/login.php:318 +msgid "Your settings were successfully saved." +msgstr "Ayarlarınız başarıyla kaydedildi" + +#: ../lib/modules/windowsUser.inc:290 ../lib/modules/inetOrgPerson.inc:570 +#: ../lib/modules/inetOrgPerson.inc:602 +msgid "YourCompany" +msgstr "Şirketiniz" + +#: ../lib/modules/zarafaGroup.inc:49 ../lib/modules/zarafaUser.inc:54 +#: ../lib/modules/zarafaServer.inc:49 +msgid "Zarafa" +msgstr "Zarafa" + +#: ../lib/modules/zarafaAddressList.inc:44 +msgid "Zarafa address list" +msgstr "Zarafa adres listesi" + +#: ../lib/types/zarafaAddressListType.inc:53 +#: ../lib/types/zarafaAddressListType.inc:62 +msgid "Zarafa address lists" +msgstr "Zarafa adres listeleri" + +#: ../lib/modules/zarafaContact.inc:49 +msgid "Zarafa contact" +msgstr "Zarafa bağlantısı" + +#: ../lib/modules/zarafaDynamicGroup.inc:44 +msgid "Zarafa dynamic group" +msgstr "Zarafa dinamik grup" + +#: ../lib/types/zarafaDynamicGroupType.inc:53 +#: ../lib/types/zarafaDynamicGroupType.inc:62 +msgid "Zarafa dynamic groups" +msgstr "Zarafa dinamik grupları" + +#: ../lib/modules/zarafaDynamicGroup.inc:88 +#: ../lib/modules/zarafaDynamicGroup.inc:176 +#: ../lib/modules/zarafaContact.inc:99 ../lib/modules/zarafaContact.inc:112 +#: ../lib/modules/zarafaGroup.inc:106 ../lib/modules/zarafaGroup.inc:121 +#: ../lib/modules/zarafaAddressList.inc:76 +#: ../lib/modules/zarafaAddressList.inc:149 ../lib/modules/zarafaUser.inc:164 +#: ../lib/modules/zarafaUser.inc:174 ../lib/modules/zarafaServer.inc:85 +#: ../lib/modules/zarafaServer.inc:146 +msgid "Zarafa schema" +msgstr "Zarafa şeması" + +#: ../lib/modules/zarafaUser.inc:153 ../lib/modules/zarafaUser.inc:157 +msgid "Zarafa will store the user's archives on these servers." +msgstr "Zarafa bu sunucular üzerindeki kullanıcının arşivlerini depolayacak." + +#: ../lib/modules/ddns.inc:95 ../lib/modules/ddns.inc:106 +#: ../lib/modules/ddns.inc:121 ../lib/modules/ddns.inc:387 +#: ../lib/modules/ddns.inc:418 +msgid "Zone name" +msgstr "Alan adı" + +#: ../lib/modules/ddns.inc:96 +msgid "Zone name for the DNS server (e.g. company.local)." +msgstr "DNS sunucusu için alan adı" + +#: ../lib/modules/sambaSamAccount.inc:483 +msgid "\\\\server\\homes\\smiller" +msgstr "\\\\server\\homes\\smiller" + +#: ../lib/modules/sambaSamAccount.inc:491 ../lib/modules/windowsUser.inc:364 +msgid "\\\\server\\profiles\\smiller" +msgstr "\\\\server\\profiles\\smiller" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "add value" +msgstr "Değer ekle" + +#: ../lib/modules/zarafaDynamicGroup.inc:111 ../lib/modules/posixGroup.inc:436 +#: ../lib/modules/zarafaAddressList.inc:99 ../lib/modules/nisnetgroup.inc:107 +#: ../lib/modules/groupOfNames.inc:103 +msgid "adminstrators" +msgstr "yöneticiler" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:112 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:95 +msgid "attribute deleted" +msgstr "öznitelik silindi" + +#: ../lib/modules/sudoRole.inc:123 +msgid "backupRootFileSystem" +msgstr "Kök dosya sistemini yedekle" + +#: ../templates/3rdParty/pla/lib/functions.php:2298 +msgid "browse" +msgstr "Göz at" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "bytes" +msgstr "bayt" + +#: ../templates/schema/schema.php:220 +msgid "character" +msgstr "Karakter" + +#: ../templates/schema/schema.php:219 +msgid "characters" +msgstr "karakterler" + +#: ../lib/modules/freeRadius.inc:172 +msgid "company.com" +msgstr "company.com" + +#: ../templates/3rdParty/pla/lib/PageRender.php:619 +#: ../templates/3rdParty/pla/lib/PageRender.php:988 +msgid "confirm" +msgstr "onayla" + +#: ../help/help.inc:82 +msgid "dc=yourcompany,dc=com" +msgstr "dc = şirketiniz , dc=com" + +#: ../lib/modules/ppolicyUser.inc:111 +msgid "default" +msgstr "varsayılan" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:205 +msgid "delete" +msgstr "Sil" + +#: ../templates/3rdParty/pla/lib/PageRender.php:677 +msgid "delete attribute" +msgstr "Özniteliği sil" + +#: ../lib/modules/sambaSamAccount.inc:1513 +#: ../lib/modules/sambaSamAccount.inc:1920 ../lib/modules/zarafaUser.inc:651 +#: ../lib/modules/zarafaUser.inc:1351 ../lib/modules/zarafaUser.inc:1392 +msgid "disabled" +msgstr "devre dışı" + +#: ../lib/modules/sambaSamAccount.inc:1524 +#: ../lib/modules/sambaSamAccount.inc:1931 +msgid "disconnect" +msgstr "bağlantıyı kes" + +#: ../templates/3rdParty/pla/lib/PageRender.php:664 +msgid "download value" +msgstr "değer yükleme" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:206 +msgid "edit" +msgstr "düzenle" + +#: ../lib/modules/zarafaUser.inc:651 ../lib/modules/zarafaUser.inc:1346 +#: ../lib/modules/zarafaUser.inc:1392 +msgid "enabled" +msgstr "etkin" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:481 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:307 +msgid "export" +msgstr "dışa aktar" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:123 +msgid "false" +msgstr "yanlış" + +#: ../lib/modules/ppolicy.inc:37 +msgid "force" +msgstr "zorla" + +#: ../lib/modules/sambaSamAccount.inc:1532 +#: ../lib/modules/sambaSamAccount.inc:1939 +msgid "from any client" +msgstr "herhangi bir istemciden" + +#: ../lib/modules/sambaSamAccount.inc:1533 +#: ../lib/modules/sambaSamAccount.inc:1940 +msgid "from previous client only" +msgstr "önceki istemciden" + +#: ../lib/modules/posixAccount.inc:299 ../lib/modules/posixAccount.inc:359 +#: ../lib/modules/nisnetgroup.inc:121 ../lib/modules/groupOfNamesUser.inc:66 +msgid "group01,group02" +msgstr "grup01,grup02" + +#: ../lib/modules/freeRadius.inc:180 +msgid "group01;group02" +msgstr "grup01;grup02" + +#: ../lib/modules/zarafaDynamicGroup.inc:125 +#: ../lib/modules/zarafaGroup.inc:168 +msgid "group1@company.com,group2@company.com" +msgstr "grup1@şirket.com,grup2@şirket.com" + +#: ../lib/modules/zarafaDynamicGroup.inc:119 +#: ../lib/modules/zarafaGroup.inc:160 ../lib/modules/windowsGroup.inc:213 +#: ../lib/modules/windowsGroup.inc:221 +msgid "group@company.com" +msgstr "grup@şirket.com" + +#: ../templates/3rdParty/pla/lib/PageRender.php:471 +msgid "hint" +msgstr "ipucu" + +#: ../lib/modules/quota.inc:191 ../lib/modules/quota.inc:193 +msgid "hours" +msgstr "saat" + +#: ../lib/modules/windowsUser.inc:320 ../lib/modules/windowsUser.inc:326 +#: ../lib/modules/inetOrgPerson.inc:538 +msgid "http://www.company.com" +msgstr "http://www.şirket.com" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:294 +msgid "import" +msgstr "veri al" + +#: ../lib/modules/sambaSamAccount.inc:1517 +#: ../lib/modules/sambaSamAccount.inc:1924 +msgid "input off, notify off" +msgstr "veri girii kapalı , bildirme kapalı" + +#: ../lib/modules/sambaSamAccount.inc:1516 +#: ../lib/modules/sambaSamAccount.inc:1923 +msgid "input off, notify on" +msgstr "veri girişi kapalı , bildirme açık" + +#: ../lib/modules/sambaSamAccount.inc:1515 +#: ../lib/modules/sambaSamAccount.inc:1922 +msgid "input on, notify off" +msgstr "veri girişi açık , bildirme kapalı" + +#: ../lib/modules/sambaSamAccount.inc:1514 +#: ../lib/modules/sambaSamAccount.inc:1921 +msgid "input on, notify on" +msgstr "veri girişi açık , bildirme açık" + +#: ../help/help.inc:64 +msgid "" +"ldap://localhost:389 connects to localhost using a standard LDAP connection " +"on port 389" +msgstr "" +"ldap://localhost:389 , yerel hizmet bilgisayarına , port 389 üstünden " +"standart bir LDAP bağlantısıyla bağlanır." + +#: ../help/help.inc:66 +msgid "" +"ldaps://ldap.domain.com connects to ldap.domain.com using an encrypted LDAP " +"connection." +msgstr "" +"ldaps://ldap.etkialanı.com şifrelenmiş bir LDAP bağlantısı kullanarak ldap." +"etkialanı.com a bağlanır." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:100 +msgid "list" +msgstr "Liste" + +#: ../templates/3rdParty/pla/lib/config_default.php:494 +#: ../templates/3rdParty/pla/lib/ds.php:318 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:529 +msgid "login" +msgstr "giriş" + +#: ../lib/modules/posixAccount.inc:384 +msgid "machines" +msgstr "Makineler" + +#: ../lib/modules/inetLocalMailRecipient.inc:107 +msgid "mail.yourdomain.org" +msgstr "posta. erişim alanınız . org" + +#: ../lib/modules/sambaSamAccount.inc:402 +#: ../lib/modules/sambaSamAccount.inc:526 +msgid "mydomain" +msgstr "erişim alanım" + +#: ../lib/modules/sambaSamAccount.inc:459 +msgid "mygroup" +msgstr "Grubum" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:504 +msgid "new" +msgstr "yeni" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:471 +#: ../lib/modules/zarafaDynamicGroup.inc:474 +#: ../lib/modules/zarafaContact.inc:557 ../lib/modules/zarafaGroup.inc:657 +#: ../lib/modules/zarafaGroup.inc:664 ../lib/modules/zarafaGroup.inc:667 +#: ../lib/modules/zarafaAddressList.inc:339 +#: ../lib/modules/zarafaAddressList.inc:342 +#: ../lib/modules/sambaSamAccount.inc:570 +#: ../lib/modules/sambaSamAccount.inc:1888 +#: ../lib/modules/sambaSamAccount.inc:1896 +#: ../lib/modules/sambaSamAccount.inc:1906 +#: ../lib/modules/sambaSamAccount.inc:1911 +#: ../lib/modules/sambaSamAccount.inc:1916 ../lib/modules/zarafaUser.inc:634 +#: ../lib/modules/zarafaUser.inc:1304 ../lib/modules/zarafaUser.inc:1319 +#: ../lib/modules/zarafaUser.inc:1330 ../lib/modules/zarafaUser.inc:1336 +#: ../lib/modules/windowsUser.inc:332 ../lib/modules/windowsUser.inc:333 +#: ../lib/modules/windowsUser.inc:334 ../lib/modules/windowsUser.inc:340 +#: ../lib/modules/windowsUser.inc:341 ../lib/modules/windowsUser.inc:342 +#: ../lib/modules/windowsUser.inc:348 ../lib/modules/windowsUser.inc:349 +#: ../lib/modules/windowsUser.inc:350 ../lib/modules/windowsUser.inc:356 +#: ../lib/modules/windowsUser.inc:357 ../lib/modules/windowsUser.inc:358 +#: ../lib/modules/windowsUser.inc:868 ../lib/modules/windowsUser.inc:1233 +#: ../lib/modules/windowsUser.inc:1238 ../lib/modules/windowsUser.inc:1243 +#: ../lib/modules/windowsUser.inc:1248 ../lib/modules/ppolicy.inc:35 +#: ../lib/modules/ppolicy.inc:474 ../lib/modules/ppolicy.inc:484 +#: ../lib/modules/ppolicy.inc:489 ../lib/modules/ppolicy.inc:496 +#: ../lib/modules/ppolicy.inc:499 ../lib/modules/generalInformation.inc:93 +#: ../lib/modules/zarafaServer.inc:377 ../lib/modules/customFields.inc:2371 +#: ../lib/modules/fixed_ip.inc:570 +msgid "no" +msgstr "hayır" + +#: ../templates/3rdParty/pla/lib/functions.php:1902 +msgid "no description available" +msgstr "Uygun tanımlama yok" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:68 +msgid "no entries" +msgstr "girdi yok" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:84 +msgid "no new attributes available for this entry" +msgstr "Bu girdiye uygun yeni öznitelik yok" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:135 +msgid "no new binary attributes available for this entry" +msgstr "Bu girdiye uygun yeni ikili öznitelik yok" + +#: ../templates/schema/schema.php:160 ../templates/schema/schema.php:229 +#: ../templates/schema/schema.php:240 ../templates/schema/schema.php:289 +#: ../templates/schema/schema.php:355 ../templates/schema/schema.php:370 +#: ../templates/schema/schema.php:404 ../templates/schema/schema.php:426 +#: ../templates/3rdParty/pla/lib/functions.php:2612 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1573 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1581 +msgid "none" +msgstr "yok " + +#: ../templates/3rdParty/pla/lib/PageRender.php:1109 +msgid "none, remove value" +msgstr "yok, değeri kaldır" + +#: ../templates/schema/schema.php:216 +msgid "not applicable" +msgstr "Uygulanamaz" + +#: ../templates/schema/schema.php:167 ../templates/schema/schema.php:172 +#: ../templates/schema/schema.php:177 ../templates/schema/schema.php:210 +msgid "not specified" +msgstr "belirlenmedi" + +#: ../help/help.inc:76 +msgid "" +"ou=People,dc=yourcompany,dc=com will read and store all accounts in this " +"subtree." +msgstr "" +"ou=Kişiler,dc=şirketiniz ,dc=com , bu alt ağaçtaki tüm hesaplar okunup " +"düzenlenecek" + +#: ../lib/modules/eduPerson.inc:195 ../lib/modules/eduPerson.inc:201 +#: ../lib/modules/eduPerson.inc:207 +msgid "ou=accounts,dc=yourdomain,dc=org" +msgstr "ou=hesaplar,dc=erişim alanınız ,dc=org" + +#: ../lib/modules/posixAccount.inc:370 +msgid "pc01$" +msgstr "pc01$" + +#: ../lib/modules/posixAccount.inc:393 +msgid "pc01,Room 2.34" +msgstr "pc01,Room 2.34" + +#: ../lib/modules/hostObject.inc:86 +msgid "pc01,pc02" +msgstr "pc01,pc02" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +msgid "pixels" +msgstr "piksel sayısı" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:54 +msgid "read only" +msgstr "salt oku (nur)" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:251 +msgid "refresh" +msgstr "yenile" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2126 +msgid "rename" +msgstr "yeniden adlandır" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 ../lib/html.inc:742 +#: ../lib/html.inc:1633 ../lib/html.inc:2148 +msgid "required" +msgstr "gerekli" + +#: ../lib/modules/sambaSamAccount.inc:1525 +#: ../lib/modules/sambaSamAccount.inc:1932 +msgid "reset" +msgstr "sıfırla" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:237 +msgid "search" +msgstr "araştır" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:472 +msgid "seconds" +msgstr "saniyeler" + +#: ../lib/modules/mitKerberos.inc:237 ../lib/modules/asteriskAccount.inc:389 +#: ../lib/modules/posixGroup.inc:427 ../lib/modules/sambaSamAccount.inc:414 +#: ../lib/modules/posixAccount.inc:327 ../lib/modules/windowsUser.inc:224 +#: ../lib/modules/inetOrgPerson.inc:2522 +#: ../lib/modules/asteriskVoicemail.inc:158 +#: ../lib/modules/heimdalKerberos.inc:206 +msgid "secret" +msgstr "Gizlilik" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1263 +msgid "select the rdn attribute" +msgstr "RDN özniteliği seç" + +#: ../lib/modules/mitKerberos.inc:206 ../lib/modules/uidObject.inc:62 +#: ../lib/modules/posixAccount.inc:278 ../lib/modules/windowsUser.inc:216 +#: ../lib/modules/inetOrgPerson.inc:2513 +#: ../lib/modules/heimdalKerberos.inc:175 ../lib/modules/nisMailAlias.inc:99 +msgid "smiller" +msgstr "smiller" + +#: ../lib/modules/inetLocalMailRecipient.inc:95 +msgid "smiller@otherdomain.org" +msgstr "smiller@otherdomain.org" + +#: ../lib/modules/inetLocalMailRecipient.inc:101 +msgid "smiller@yourdomain.org" +msgstr "smiller@yourdomain.org" + +#: ../lib/modules/ldapPublicKey.inc:83 +msgid "ssh-dss 234234 user@host" +msgstr "ssh-dss 234234 user@host" + +#: ../templates/3rdParty/pla/lib/PageRender.php:882 +msgid "structural" +msgstr "Yapısal" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:102 +msgid "table" +msgstr "Tablo" + +#: ../lib/modules/asteriskExtension.inc:147 +msgid "test" +msgstr "Test" + +#: ../lib/modules/asteriskExtension.inc:167 +msgid "test-start" +msgstr "Teste başla" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:122 +msgid "true" +msgstr "doğru" + +#: ../lib/modules/ipHost.inc:92 ../lib/modules/inetOrgPerson.inc:432 +#: ../lib/modules/aliasEntry.inc:64 ../lib/modules/qmailGroup.inc:274 +#: ../lib/modules/qmailGroup.inc:282 ../lib/modules/qmailGroup.inc:290 +msgid "uid=smiller,ou=People,dc=company,dc=com" +msgstr "uid=smiller,ou=kişiler,dc=şirket,dc=com" + +#: ../templates/config/mainmanage.php:266 +msgid "use custom CA certificates" +msgstr "Özel CA sertifikalarını kullan" + +#: ../templates/config/mainmanage.php:263 +msgid "use system certificates" +msgstr "Sistem sertifikalarını kullan" + +#: ../lib/modules/posixGroup.inc:421 +msgid "user01,user02,user03" +msgstr "kullanıcı01, kullanıcı02, kullanıcı03" + +#: ../lib/modules/qmailUser.inc:266 ../lib/modules/qmailUser.inc:272 +#: ../lib/modules/qmailUser.inc:294 ../lib/modules/eduPerson.inc:156 +#: ../lib/modules/windowsUser.inc:296 ../lib/modules/windowsUser.inc:302 +#: ../lib/modules/inetOrgPerson.inc:520 +#: ../lib/modules/asteriskVoicemail.inc:171 ../lib/modules/qmailGroup.inc:332 +#: ../lib/modules/qmailGroup.inc:340 ../lib/modules/qmailGroup.inc:348 +msgid "user@company.com" +msgstr "kullanıcı@şirket.com" + +#: ../lib/modules/posixAccount.inc:292 +msgid "users" +msgstr "Kullanıcılar" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:59 +msgid "view entries" +msgstr "girdileri görüntüle" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +msgid "with " +msgstr "ile" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:469 +#: ../lib/modules/zarafaDynamicGroup.inc:476 +#: ../lib/modules/zarafaContact.inc:559 ../lib/modules/zarafaGroup.inc:659 +#: ../lib/modules/zarafaGroup.inc:662 ../lib/modules/zarafaGroup.inc:669 +#: ../lib/modules/zarafaAddressList.inc:337 +#: ../lib/modules/zarafaAddressList.inc:344 +#: ../lib/modules/sambaSamAccount.inc:570 +#: ../lib/modules/sambaSamAccount.inc:1886 +#: ../lib/modules/sambaSamAccount.inc:1894 +#: ../lib/modules/sambaSamAccount.inc:1904 +#: ../lib/modules/sambaSamAccount.inc:1909 +#: ../lib/modules/sambaSamAccount.inc:1914 ../lib/modules/zarafaUser.inc:634 +#: ../lib/modules/zarafaUser.inc:1306 ../lib/modules/zarafaUser.inc:1322 +#: ../lib/modules/zarafaUser.inc:1332 ../lib/modules/zarafaUser.inc:1338 +#: ../lib/modules/windowsUser.inc:334 ../lib/modules/windowsUser.inc:342 +#: ../lib/modules/windowsUser.inc:350 ../lib/modules/windowsUser.inc:358 +#: ../lib/modules/windowsUser.inc:868 ../lib/modules/windowsUser.inc:1142 +#: ../lib/modules/windowsUser.inc:1235 ../lib/modules/windowsUser.inc:1240 +#: ../lib/modules/windowsUser.inc:1245 ../lib/modules/windowsUser.inc:1250 +#: ../lib/modules/ppolicy.inc:36 ../lib/modules/ppolicy.inc:486 +#: ../lib/modules/ppolicy.inc:491 ../lib/modules/ppolicy.inc:494 +#: ../lib/modules/ppolicy.inc:501 ../lib/modules/inetOrgPerson.inc:594 +#: ../lib/modules/generalInformation.inc:95 +#: ../lib/modules/zarafaServer.inc:379 ../lib/modules/customFields.inc:2371 +#: ../lib/modules/fixed_ip.inc:568 +msgid "yes" +msgstr "evet" diff --git a/lam/locale/uk_UA/LC_MESSAGES/messages.mo b/lam/locale/uk_UA/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..44489d60 Binary files /dev/null and b/lam/locale/uk_UA/LC_MESSAGES/messages.mo differ diff --git a/lam/locale/uk_UA/LC_MESSAGES/messages.po b/lam/locale/uk_UA/LC_MESSAGES/messages.po new file mode 100644 index 00000000..a7da02cd --- /dev/null +++ b/lam/locale/uk_UA/LC_MESSAGES/messages.po @@ -0,0 +1,17185 @@ +# +# LDAP Account Manager +# +# Maksym Mokriiev , 2013, 2014. +msgid "" +msgstr "" +"Project-Id-Version: LAM\n" +"Report-Msgid-Bugs-To: post@rolandgruber.de \n" +"PO-Revision-Date: 2014-06-07 22:33+0300\n" +"Last-Translator: Maksym Mokriiev \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.5\n" + +#: ../lib/modules/zarafaContact.inc:95 ../lib/modules/zarafaContact.inc:98 +#: ../lib/modules/zarafaContact.inc:101 ../lib/modules/zarafaContact.inc:126 +#: ../lib/modules/zarafaGroup.inc:97 ../lib/modules/zarafaGroup.inc:100 +#: ../lib/modules/zarafaGroup.inc:103 ../lib/modules/zarafaGroup.inc:130 +#: ../lib/modules/zarafaUser.inc:144 ../lib/modules/zarafaUser.inc:147 +#: ../lib/modules/zarafaUser.inc:150 ../lib/modules/zarafaUser.inc:1812 +msgid "\"Send as\" attribute" +msgstr "Атрибут \"Надіслати як\"" + +#: ../lib/modules/zarafaContact.inc:79 ../lib/modules/zarafaContact.inc:150 +#: ../lib/modules/zarafaContact.inc:173 ../lib/modules/zarafaContact.inc:187 +#: ../lib/modules/zarafaContact.inc:226 ../lib/modules/zarafaContact.inc:355 +#: ../lib/modules/zarafaContact.inc:565 ../lib/modules/zarafaGroup.inc:93 +#: ../lib/modules/zarafaGroup.inc:138 ../lib/modules/zarafaGroup.inc:188 +#: ../lib/modules/zarafaGroup.inc:206 ../lib/modules/zarafaGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:263 ../lib/modules/zarafaGroup.inc:415 +#: ../lib/modules/zarafaGroup.inc:650 ../lib/modules/zarafaUser.inc:104 +#: ../lib/modules/zarafaUser.inc:196 ../lib/modules/zarafaUser.inc:355 +#: ../lib/modules/zarafaUser.inc:382 ../lib/modules/zarafaUser.inc:419 +#: ../lib/modules/zarafaUser.inc:463 ../lib/modules/zarafaUser.inc:839 +#: ../lib/modules/zarafaUser.inc:1234 ../lib/modules/zarafaUser.inc:1465 +#: ../lib/modules/zarafaUser.inc:1793 +msgid "\"Send as\" privileges" +msgstr "Привілеї \"Надіслати як\"" + +#: ../lib/modules/posixAccount.inc:519 +msgid "" +"$user and $group will be replaced with user name and primary group name." +msgstr "" +"$user та $group буде замінено псевдоім'ям користувача та назвою основної " +"групи." + +#: ../lib/modules/nisnetgroup.inc:134 +msgid "(host1,user1,example.com);(host2,user2,example.com)" +msgstr "(host1,user1,example.com);(host2,user2,example.com)" + +#: ../lib/modules/qmailUser.inc:368 ../lib/modules/posixAccount.inc:312 +msgid "/home/smiller" +msgstr "/home/smiller" + +#: ../lib/modules/inetOrgPerson.inc:419 +#: ../lib/modules/asteriskVoicemail.inc:186 +msgid "123-123-1234" +msgstr "123-123-1234" + +#: ../lib/modules/inetOrgPerson.inc:435 +msgid "123-123-1235" +msgstr "123-123-1235" + +#: ../lib/modules/inetOrgPerson.inc:443 +msgid "123-123-1236" +msgstr "123-123-1236" + +#: ../lib/modules/windowsUser.inc:364 ../lib/modules/windowsUser.inc:370 +#: ../lib/modules/inetOrgPerson.inc:427 +msgid "123-124-1234" +msgstr "123-124-1234" + +#: ../lib/modules/windowsUser.inc:322 ../lib/modules/inetOrgPerson.inc:411 +msgid "12345" +msgstr "12345" + +#: ../lib/modules/dhcp_settings.inc:174 +msgid "" +"B-Node (0x01): Broadcast.
    The client tries to find other " +"workstations via broadcasting\n" +"(works only inside the same collision domain, viz. the same subnet).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"The client contacts a Netbios name server (NBNS) from Microsoft Windows Name " +"Service (WINS) for name resolution.

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"The node tries broadcasting first. If that fails then it tries WINS.

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"The node tries WINS first. If that fails it tries broadcasting.

    \n" +"\n" +"By default, the nodes are configured as H-Nodes which fits for small " +"networks. In large networks Point-to-Point (0x02) should be used." +msgstr "" +"B-Node (0x01): Broadcast.
    Клієнт намагається знайти інші " +"комп'ютери розсилаючи широковіщальні запити\n" +"(працює тільки в середині домену, тобто невелика підмережа).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"Клієнт запитує Netbios ім'я сервера (NBNS) з Сервісу Імені Microsoft " +"Windows (WINS).

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"Клієнт спочатку пробує широковіщальний запит. Якщо не вдається, запитує WINS." +"

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"Клієнт спочатку пробує WINS. Якщо не вдається, надсилає широковіщальний " +"запит.

    \n" +"\n" +"Типово використовується H-Nodes для невеликих мереж. Для великих мереж " +"потрібно використовувати Point-to-Point (0x02)." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:145 +#, php-format +msgid "Maximum length: %s characters" +msgstr "Максимальна довжина: %s символів" + +#: ../lib/modules/bindDLZ.inc:492 +msgid "A CNAME record allows no other records." +msgstr "Запис CNAME не допускає інші записи." + +#: ../lib/modules/bindDLZ.inc:526 +msgid "A NS record allows no other records except SOA/MX/A records." +msgstr "Запис NS не допускає інші записи крім SOA/MX/A записів." + +#: ../lib/modules/bindDLZ.inc:510 +msgid "A SOA record allows no other records except NS/MX/A records." +msgstr "Запис SOA не допускає інші записи крім NS/MX/A записів." + +#: ../lib/modules/bindDLZ.inc:511 +msgid "A SOA record requires that the host name is set to \"@\"." +msgstr "Запис SOA вимагає встановлення назви хоста в \"@\"." + +#: ../lib/modules/selfRegistration.inc:631 +#: ../lib/modules/passwordSelfReset.inc:1590 +msgid "" +"A confirmation mail was sent. Please click on the link in the mail to " +"proceed." +msgstr "" +"Надіслано лист підтвердження. Будь ласка, перейдіть за посиланням в листі " +"для продовження." + +#: ../lib/modules/device.inc:82 +msgid "A description for this device." +msgstr "Опис для цього пристрою" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +msgid "A list of attributes to display in the results (comma-separated)" +msgstr "Список атрибутів для показу в результатах (розділення комами)" + +#: ../lib/modules/sudoRole.inc:95 ../lib/modules/sudoRole.inc:124 +msgid "A list of options (e.g. !authenticate)." +msgstr "Список опцій (наприклад, !authenticate)" + +#: ../templates/massBuildAccounts.php:135 +msgid "A required column is missing in your CSV file." +msgstr "Не знайдено потрібну колонку в CSV файлі" + +#: ../lib/modules/bindDLZ.inc:165 ../lib/modules/bindDLZ.inc:169 +msgid "A server name for this service (e.g. \"ldap.example.com.\")." +msgstr "Назва сервера для цього сервісу (наприклад, \"ldap.example.com.\")." + +#: ../lib/modules/bindDLZ.inc:157 ../lib/modules/bindDLZ.inc:161 +msgid "A text value for this host." +msgstr "Текстове для цього хоста." + +#: ../lib/modules/kolabUser.inc:133 +msgid "" +"A user may define who is allowed to act on behalf of herself. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"Користувач може визначати, кому дозволено діяти від його імені. Ця " +"властивість перевіряється при використанні Kolab smtp демона (Postfix) для " +"відправки пошти." + +#: ../templates/3rdParty/pla/lib/import_functions.php:593 +msgid "A valid deleteoldrdn attribute should be specified" +msgstr "Потрібно вказати коректний атрибут deleteoldrdn" + +#: ../templates/3rdParty/pla/lib/import_functions.php:237 +msgid "A valid dn line is required" +msgstr "Потрібен коректний рядок dn" + +#: ../templates/3rdParty/pla/lib/import_functions.php:596 +msgid "A valid newrdn attribute should be specified" +msgstr "Потрібно вказати коректний атрибут newrdn" + +#: ../templates/3rdParty/pla/lib/import_functions.php:587 +msgid "A valid newsuperior attribute should be specified" +msgstr "Потрібно вказати коректний атрибут newsuperior" + +#: ../lib/modules/bindDLZ.inc:89 ../lib/modules/bindDLZ.inc:98 +#: ../lib/modules/bindDLZ.inc:248 ../lib/modules/bindDLZ.inc:254 +#: ../lib/modules/bindDLZ.inc:472 +msgid "A/AAAA record" +msgstr "A/AAAA запис" + +#: ../lib/modules/bindDLZ.inc:411 ../lib/modules/bindDLZ.inc:431 +#: ../lib/modules/bindDLZ.inc:1469 +msgid "A/AAAA records" +msgstr "A/AAAA записи" + +#: ../lib/modules/asteriskAccount.inc:131 +#: ../lib/modules/asteriskAccount.inc:271 +#: ../lib/modules/asteriskAccount.inc:347 +#: ../lib/modules/asteriskAccount.inc:610 +#: ../lib/modules/asteriskAccount.inc:987 +#: ../lib/modules/asteriskAccount.inc:1243 +msgid "AMA flags" +msgstr "Прапорці AMA" + +#: ../templates/serverInfo.php:342 +msgid "Abandon" +msgstr "Відмовитися" + +#: ../templates/lists/changePassword.php:714 +msgid "Aborted password change." +msgstr "Скасована зміна пароля" + +#: ../lib/modules/sambaSamAccount.inc:568 +msgid "Abu Dhabi, Muscat, Baku" +msgstr "Abu Dhabi, Muscat, Baku" + +#: ../templates/config/confmain.php:264 ../help/help.inc:109 +msgid "Access level" +msgstr "Рівень доступу" + +#: ../lib/modules/account.inc:65 +msgid "Account" +msgstr "Акаунт" + +#: ../templates/massBuildAccounts.php:201 ../lib/modules/kolabGroup.inc:178 +#: ../lib/modules/kolabGroup.inc:180 ../lib/modules/kolabGroup.inc:182 +#: ../lib/modules/kolabGroup.inc:184 ../lib/modules/pykotaPrinter.inc:210 +#: ../lib/modules/pykotaPrinter.inc:212 ../lib/modules/pykotaPrinter.inc:214 +#: ../lib/modules/pykotaPrinter.inc:216 ../lib/modules/pykotaPrinter.inc:218 +#: ../lib/modules/pykotaPrinter.inc:219 ../lib/modules/pykotaPrinter.inc:220 +#: ../lib/modules/mitKerberos.inc:290 ../lib/modules/mitKerberos.inc:291 +#: ../lib/modules/mitKerberos.inc:292 ../lib/modules/mitKerberos.inc:294 +#: ../lib/modules/mitKerberos.inc:296 ../lib/modules/mitKerberos.inc:297 +#: ../lib/modules/zarafaDynamicGroup.inc:197 +#: ../lib/modules/zarafaDynamicGroup.inc:199 +#: ../lib/modules/zarafaDynamicGroup.inc:201 +#: ../lib/modules/zarafaDynamicGroup.inc:203 +#: ../lib/modules/zarafaDynamicGroup.inc:204 +#: ../lib/modules/zarafaDynamicGroup.inc:205 ../lib/modules/ipHost.inc:116 +#: ../lib/modules/ipHost.inc:117 ../lib/modules/asteriskAccount.inc:558 +#: ../lib/modules/asteriskAccount.inc:561 +#: ../lib/modules/asteriskAccount.inc:564 +#: ../lib/modules/asteriskAccount.inc:567 +#: ../lib/modules/asteriskAccount.inc:569 +#: ../lib/modules/asteriskAccount.inc:571 +#: ../lib/modules/asteriskAccount.inc:573 +#: ../lib/modules/asteriskAccount.inc:575 +#: ../lib/modules/asteriskAccount.inc:577 ../lib/modules/account.inc:125 +#: ../lib/modules/ieee802device.inc:96 ../lib/modules/puppetClient.inc:185 +#: ../lib/modules/puppetClient.inc:187 ../lib/modules/puppetClient.inc:189 +#: ../lib/modules/puppetClient.inc:190 ../lib/modules/qmailUser.inc:449 +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:453 +#: ../lib/modules/qmailUser.inc:454 ../lib/modules/qmailUser.inc:455 +#: ../lib/modules/qmailUser.inc:457 ../lib/modules/qmailUser.inc:459 +#: ../lib/modules/qmailUser.inc:461 ../lib/modules/qmailUser.inc:464 +#: ../lib/modules/qmailUser.inc:467 ../lib/modules/qmailUser.inc:469 +#: ../lib/modules/qmailUser.inc:470 ../lib/modules/qmailUser.inc:471 +#: ../lib/modules/zarafaContact.inc:186 ../lib/modules/zarafaContact.inc:188 +#: ../lib/modules/zarafaContact.inc:189 ../lib/modules/zarafaContact.inc:190 +#: ../lib/modules/zarafaContact.inc:191 ../lib/modules/windowsHost.inc:132 +#: ../lib/modules/posixGroup.inc:606 ../lib/modules/posixGroup.inc:610 +#: ../lib/modules/posixGroup.inc:611 ../lib/modules/zarafaGroup.inc:216 +#: ../lib/modules/zarafaGroup.inc:218 ../lib/modules/zarafaGroup.inc:219 +#: ../lib/modules/zarafaGroup.inc:220 ../lib/modules/zarafaGroup.inc:221 +#: ../lib/modules/zarafaGroup.inc:223 ../lib/modules/device.inc:141 +#: ../lib/modules/device.inc:142 ../lib/modules/dhcp_settings.inc:321 +#: ../lib/modules/dhcp_settings.inc:323 ../lib/modules/dhcp_settings.inc:325 +#: ../lib/modules/dhcp_settings.inc:327 ../lib/modules/dhcp_settings.inc:329 +#: ../lib/modules/dhcp_settings.inc:330 ../lib/modules/dhcp_settings.inc:331 +#: ../lib/modules/dhcp_settings.inc:333 ../lib/modules/dhcp_settings.inc:335 +#: ../lib/modules/dhcp_settings.inc:339 ../lib/modules/eduPerson.inc:244 +#: ../lib/modules/eduPerson.inc:246 ../lib/modules/eduPerson.inc:248 +#: ../lib/modules/eduPerson.inc:250 ../lib/modules/eduPerson.inc:251 +#: ../lib/modules/eduPerson.inc:252 ../lib/modules/eduPerson.inc:253 +#: ../lib/modules/quota.inc:52 ../lib/modules/quota.inc:54 +#: ../lib/modules/quota.inc:56 ../lib/modules/quota.inc:58 +#: ../lib/modules/quota.inc:60 ../lib/modules/quota.inc:62 +#: ../lib/modules/quota.inc:63 ../lib/modules/zarafaAddressList.inc:170 +#: ../lib/modules/zarafaAddressList.inc:171 +#: ../lib/modules/zarafaAddressList.inc:172 ../lib/modules/pykotaGroup.inc:198 +#: ../lib/modules/pykotaGroup.inc:200 ../lib/modules/pykotaGroup.inc:202 +#: ../lib/modules/pykotaGroup.inc:204 ../lib/modules/pykotaGroup.inc:205 +#: ../lib/modules/sambaSamAccount.inc:96 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:102 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:107 +#: ../lib/modules/sambaSamAccount.inc:108 +#: ../lib/modules/sambaSamAccount.inc:109 +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 +#: ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/sambaSamAccount.inc:117 +#: ../lib/modules/sambaSamAccount.inc:118 +#: ../lib/modules/sambaSamAccount.inc:120 +#: ../lib/modules/sambaSamAccount.inc:121 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/posixAccount.inc:107 ../lib/modules/posixAccount.inc:111 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/posixAccount.inc:124 +#: ../lib/modules/posixAccount.inc:126 ../lib/modules/posixAccount.inc:127 +#: ../lib/modules/posixAccount.inc:128 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/zarafaUser.inc:409 ../lib/modules/zarafaUser.inc:411 +#: ../lib/modules/zarafaUser.inc:413 ../lib/modules/zarafaUser.inc:414 +#: ../lib/modules/zarafaUser.inc:416 ../lib/modules/zarafaUser.inc:418 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/zarafaUser.inc:421 +#: ../lib/modules/zarafaUser.inc:422 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:424 ../lib/modules/zarafaUser.inc:425 +#: ../lib/modules/zarafaUser.inc:426 ../lib/modules/zarafaUser.inc:427 +#: ../lib/modules/ppolicyUser.inc:97 ../lib/modules/bindDLZ.inc:471 +#: ../lib/modules/bindDLZ.inc:473 ../lib/modules/bindDLZ.inc:475 +#: ../lib/modules/bindDLZ.inc:477 ../lib/modules/bindDLZ.inc:479 +#: ../lib/modules/bindDLZ.inc:481 ../lib/modules/bindDLZ.inc:483 +#: ../lib/modules/bindDLZ.inc:485 ../lib/modules/bindDLZ.inc:487 +#: ../lib/modules/bindDLZ.inc:489 ../lib/modules/bindDLZ.inc:491 +#: ../lib/modules/bindDLZ.inc:492 ../lib/modules/bindDLZ.inc:494 +#: ../lib/modules/bindDLZ.inc:496 ../lib/modules/bindDLZ.inc:498 +#: ../lib/modules/bindDLZ.inc:500 ../lib/modules/bindDLZ.inc:502 +#: ../lib/modules/bindDLZ.inc:504 ../lib/modules/bindDLZ.inc:506 +#: ../lib/modules/bindDLZ.inc:508 ../lib/modules/bindDLZ.inc:509 +#: ../lib/modules/bindDLZ.inc:510 ../lib/modules/bindDLZ.inc:511 +#: ../lib/modules/bindDLZ.inc:513 ../lib/modules/bindDLZ.inc:515 +#: ../lib/modules/bindDLZ.inc:517 ../lib/modules/bindDLZ.inc:519 +#: ../lib/modules/bindDLZ.inc:521 ../lib/modules/bindDLZ.inc:523 +#: ../lib/modules/bindDLZ.inc:525 ../lib/modules/bindDLZ.inc:526 +#: ../lib/modules/windowsUser.inc:590 ../lib/modules/windowsUser.inc:592 +#: ../lib/modules/windowsUser.inc:594 ../lib/modules/windowsUser.inc:596 +#: ../lib/modules/windowsUser.inc:598 ../lib/modules/windowsUser.inc:600 +#: ../lib/modules/windowsUser.inc:602 ../lib/modules/windowsUser.inc:604 +#: ../lib/modules/windowsUser.inc:606 ../lib/modules/windowsUser.inc:608 +#: ../lib/modules/windowsUser.inc:610 ../lib/modules/windowsUser.inc:612 +#: ../lib/modules/windowsUser.inc:614 ../lib/modules/windowsUser.inc:617 +#: ../lib/modules/windowsUser.inc:619 ../lib/modules/windowsUser.inc:621 +#: ../lib/modules/windowsUser.inc:1352 ../lib/modules/windowsUser.inc:1361 +#: ../lib/modules/windowsUser.inc:1370 ../lib/modules/windowsUser.inc:1381 +#: ../lib/modules/windowsUser.inc:1448 ../lib/modules/kolabUser.inc:246 +#: ../lib/modules/kolabUser.inc:248 ../lib/modules/kolabUser.inc:250 +#: ../lib/modules/kolabUser.inc:252 ../lib/modules/kolabUser.inc:254 +#: ../lib/modules/kolabUser.inc:256 ../lib/modules/kolabUser.inc:258 +#: ../lib/modules/ddns.inc:152 ../lib/modules/nisObject.inc:124 +#: ../lib/modules/sambaGroupMapping.inc:603 +#: ../lib/modules/sambaGroupMapping.inc:604 ../lib/modules/pykotaUser.inc:312 +#: ../lib/modules/pykotaUser.inc:314 ../lib/modules/pykotaUser.inc:316 +#: ../lib/modules/pykotaUser.inc:318 ../lib/modules/pykotaUser.inc:320 +#: ../lib/modules/pykotaUser.inc:321 ../lib/modules/pykotaUser.inc:323 +#: ../lib/modules/pykotaUser.inc:325 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/shadowAccount.inc:60 ../lib/modules/shadowAccount.inc:62 +#: ../lib/modules/shadowAccount.inc:64 ../lib/modules/shadowAccount.inc:66 +#: ../lib/modules/shadowAccount.inc:67 ../lib/modules/automount.inc:115 +#: ../lib/modules/sambaDomain.inc:209 ../lib/modules/sambaDomain.inc:211 +#: ../lib/modules/sambaDomain.inc:213 ../lib/modules/sambaDomain.inc:215 +#: ../lib/modules/sambaDomain.inc:217 ../lib/modules/sambaDomain.inc:219 +#: ../lib/modules/inetOrgPerson.inc:67 ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:71 ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:75 ../lib/modules/inetOrgPerson.inc:77 +#: ../lib/modules/inetOrgPerson.inc:80 ../lib/modules/inetOrgPerson.inc:82 +#: ../lib/modules/inetOrgPerson.inc:84 ../lib/modules/inetOrgPerson.inc:86 +#: ../lib/modules/inetOrgPerson.inc:88 ../lib/modules/inetOrgPerson.inc:90 +#: ../lib/modules/inetOrgPerson.inc:92 ../lib/modules/inetOrgPerson.inc:94 +#: ../lib/modules/inetOrgPerson.inc:96 ../lib/modules/inetOrgPerson.inc:97 +#: ../lib/modules/inetOrgPerson.inc:98 ../lib/modules/inetOrgPerson.inc:104 +#: ../lib/modules/inetOrgPerson.inc:105 ../lib/modules/inetOrgPerson.inc:106 +#: ../lib/modules/systemQuotas.inc:98 ../lib/modules/systemQuotas.inc:100 +#: ../lib/modules/systemQuotas.inc:102 ../lib/modules/systemQuotas.inc:104 +#: ../lib/modules/systemQuotas.inc:106 ../lib/modules/systemQuotas.inc:108 +#: ../lib/modules/systemQuotas.inc:110 ../lib/modules/freeRadius.inc:250 +#: ../lib/modules/freeRadius.inc:252 ../lib/modules/freeRadius.inc:254 +#: ../lib/modules/freeRadius.inc:256 ../lib/modules/freeRadius.inc:258 +#: ../lib/modules/freeRadius.inc:260 ../lib/modules/sudoRole.inc:270 +#: ../lib/modules/sudoRole.inc:272 ../lib/modules/sudoRole.inc:274 +#: ../lib/modules/sudoRole.inc:276 ../lib/modules/sudoRole.inc:278 +#: ../lib/modules/sudoRole.inc:280 ../lib/modules/sudoRole.inc:282 +#: ../lib/modules/sudoRole.inc:284 ../lib/modules/sudoRole.inc:286 +#: ../lib/modules/kolabSharedFolder.inc:251 +#: ../lib/modules/kolabSharedFolder.inc:253 +#: ../lib/modules/kolabSharedFolder.inc:255 +#: ../lib/modules/kolabSharedFolder.inc:256 +#: ../lib/modules/kolabSharedFolder.inc:258 +#: ../lib/modules/kolabSharedFolder.inc:260 +#: ../lib/modules/zarafaServer.inc:174 ../lib/modules/zarafaServer.inc:176 +#: ../lib/modules/zarafaServer.inc:178 ../lib/modules/zarafaServer.inc:179 +#: ../lib/modules/asteriskVoicemail.inc:212 +#: ../lib/modules/asteriskVoicemail.inc:216 +#: ../lib/modules/asteriskVoicemail.inc:219 +#: ../lib/modules/asteriskVoicemail.inc:221 +#: ../lib/modules/asteriskVoicemail.inc:223 +#: ../lib/modules/asteriskVoicemail.inc:225 +#: ../lib/modules/asteriskVoicemail.inc:227 +#: ../lib/modules/inetLocalMailRecipient.inc:131 +#: ../lib/modules/inetLocalMailRecipient.inc:133 +#: ../lib/modules/inetLocalMailRecipient.inc:135 +#: ../lib/modules/aliasEntry.inc:86 ../lib/modules/qmailGroup.inc:421 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:426 +#: ../lib/modules/qmailGroup.inc:428 ../lib/modules/qmailGroup.inc:430 +#: ../lib/modules/qmailGroup.inc:432 ../lib/modules/qmailGroup.inc:433 +#: ../lib/modules/qmailGroup.inc:434 ../lib/modules/qmailGroup.inc:435 +#: ../lib/modules/qmailGroup.inc:436 ../lib/modules/qmailGroup.inc:437 +#: ../lib/modules/authorizedServiceObject.inc:130 +#: ../lib/modules/passwordSelfReset.inc:233 +#: ../lib/modules/heimdalKerberos.inc:254 +#: ../lib/modules/heimdalKerberos.inc:255 +#: ../lib/modules/heimdalKerberos.inc:256 +#: ../lib/modules/heimdalKerberos.inc:258 +#: ../lib/modules/heimdalKerberos.inc:260 +#: ../lib/modules/pykotaBillingCode.inc:128 +#: ../lib/modules/pykotaBillingCode.inc:130 +#: ../lib/modules/windowsGroup.inc:284 ../lib/modules/windowsGroup.inc:286 +#: ../lib/modules/windowsGroup.inc:287 ../lib/modules/windowsGroup.inc:288 +#: ../lib/modules/windowsGroup.inc:290 ../lib/modules/nisMailAlias.inc:126 +#: ../lib/modules/nisMailAlias.inc:128 ../lib/modules/hostObject.inc:111 +#, php-format +msgid "Account %s:" +msgstr "Акаунт %s:" + +#: ../lib/types/asteriskExt.inc:95 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskAccount.inc:111 +#: ../lib/modules/asteriskAccount.inc:255 +#: ../lib/modules/asteriskAccount.inc:267 +#: ../lib/modules/asteriskAccount.inc:311 +#: ../lib/modules/asteriskAccount.inc:593 +#: ../lib/modules/asteriskAccount.inc:983 +#: ../lib/modules/asteriskExtension.inc:98 +#: ../lib/modules/asteriskExtension.inc:129 +#: ../lib/modules/asteriskExtension.inc:136 +#: ../lib/modules/asteriskExtension.inc:152 +#: ../lib/modules/asteriskExtension.inc:306 +#: ../lib/modules/asteriskExtension.inc:812 +#: ../lib/modules/asteriskVoicemail.inc:91 +#: ../lib/modules/asteriskVoicemail.inc:127 +#: ../lib/modules/asteriskVoicemail.inc:137 +#: ../lib/modules/asteriskVoicemail.inc:151 +#: ../lib/modules/asteriskVoicemail.inc:247 +#: ../lib/modules/asteriskVoicemail.inc:370 +msgid "Account context" +msgstr "Контекст акаунта" + +#: ../lib/modules/selfRegistration.inc:449 +msgid "Account creation" +msgstr "Створення акаунта" + +#: ../lib/modules/selfRegistration.inc:231 +msgid "Account creation confirmation" +msgstr "Підтвердження створення акаунта" + +#: ../templates/masscreate.php:125 +msgid "Account creation via file upload" +msgstr "Створення акаунта за допомогою завантаження файлу" + +#: ../lib/modules/posixAccount.inc:526 +msgid "Account deactivated" +msgstr "Акаунт відключено" + +#: ../templates/lists/changePassword.php:275 +msgid "Account details" +msgstr "Деталі акаунта" + +#: ../lib/types/user.inc:104 ../lib/modules/mitKerberos.inc:124 +#: ../lib/modules/mitKerberos.inc:218 ../lib/modules/mitKerberos.inc:251 +#: ../lib/modules/mitKerberos.inc:385 ../lib/modules/mitKerberos.inc:634 +#: ../lib/modules/mitKerberos.inc:783 ../lib/modules/sambaSamAccount.inc:345 +#: ../lib/modules/sambaSamAccount.inc:463 +#: ../lib/modules/sambaSamAccount.inc:1189 +#: ../lib/modules/sambaSamAccount.inc:1447 +#: ../lib/modules/sambaSamAccount.inc:1739 +#: ../lib/modules/shadowAccount.inc:128 ../lib/modules/shadowAccount.inc:193 +#: ../lib/modules/shadowAccount.inc:233 ../lib/modules/shadowAccount.inc:352 +#: ../lib/modules/shadowAccount.inc:453 ../lib/modules/shadowAccount.inc:499 +#: ../lib/modules/heimdalKerberos.inc:102 +#: ../lib/modules/heimdalKerberos.inc:187 +#: ../lib/modules/heimdalKerberos.inc:219 +#: ../lib/modules/heimdalKerberos.inc:321 +#: ../lib/modules/heimdalKerberos.inc:544 +#: ../lib/modules/heimdalKerberos.inc:679 +msgid "Account expiration date" +msgstr "Час закінчення дії акаунта" + +#: ../lib/modules/shadowAccount.inc:169 +msgid "Account inactive" +msgstr "Акаунт неактивний" + +#: ../lib/modules/sambaSamAccount.inc:285 +#: ../lib/modules/sambaSamAccount.inc:291 +#: ../lib/modules/sambaSamAccount.inc:455 +#: ../lib/modules/sambaSamAccount.inc:1147 +#: ../lib/modules/sambaSamAccount.inc:1735 ../lib/modules/windowsUser.inc:192 +#: ../lib/modules/windowsUser.inc:386 ../lib/modules/windowsUser.inc:517 +#: ../lib/modules/windowsUser.inc:744 ../lib/modules/windowsUser.inc:1611 +msgid "Account is deactivated" +msgstr "Акаунт відключено" + +#: ../lib/modules/sambaSamAccount.inc:288 +#: ../lib/modules/sambaSamAccount.inc:1153 ../lib/modules/windowsUser.inc:195 +#: ../lib/modules/windowsUser.inc:725 +msgid "Account is locked" +msgstr "Акаунт заблоковано" + +#: ../templates/delete.php:99 +msgid "Account name:" +msgstr "Ім'я акаунта:" + +#: ../lib/types/user.inc:305 ../lib/types/user.inc:714 +#: ../lib/types/user.inc:848 ../lib/modules/qmailUser.inc:211 +#: ../lib/modules/qmailUser.inc:283 ../lib/modules/qmailUser.inc:402 +#: ../lib/modules/qmailUser.inc:609 ../lib/modules/qmailUser.inc:1157 +msgid "Account status" +msgstr "Статус акаунта" + +#: ../templates/masscreate.php:152 ../lib/modules/asteriskAccount.inc:119 +#: ../lib/modules/asteriskAccount.inc:256 +#: ../lib/modules/asteriskAccount.inc:269 +#: ../lib/modules/asteriskAccount.inc:331 +#: ../lib/modules/asteriskAccount.inc:595 +#: ../lib/modules/asteriskAccount.inc:985 ../lib/modules/customFields.inc:524 +#: ../lib/modules/customFields.inc:566 +msgid "Account type" +msgstr "Тип акаунта" + +#: ../templates/config/confmodules.php:168 +#: ../templates/config/confmain.php:209 +#: ../templates/config/moduleSettings.php:167 +#: ../templates/config/conftypes.php:186 +msgid "Account types" +msgstr "Типи акаунта" + +#: ../help/help.inc:111 +msgid "Account types and modules" +msgstr "Типи та модулі акаунта" + +#: ../help/help.inc:113 +msgid "" +"Account types define which sorts of LDAP entries (e.g. users and groups) " +"should be managed. The account modules define which properties (e.g. Unix " +"and Samba) can be edited." +msgstr "" +"Типи акаунтів визначають, якими типами записів LDAP (наприклад, користувачі " +"та групи) можна управляти. Модулі визначають, які властивості (наприклад, " +"Unix та Samba) можна редагувати." + +#: ../lib/modules.inc:1307 +msgid "Account was created successfully." +msgstr "Акаунт успішно створено" + +#: ../templates/lists/changePassword.php:744 +#: ../templates/lists/changePassword.php:796 +#: ../templates/lists/changePassword.php:842 ../lib/modules.inc:1310 +msgid "Account was modified successfully." +msgstr "Акаунт успішно змінено" + +#: ../lib/modules/customScripts.inc:168 +msgid "Action type" +msgstr "Тип дії" + +#: ../lib/modules/ddns.inc:81 ../lib/modules/ddns.inc:368 +msgid "Activate DynDNS" +msgstr "Увімкнути DynDNS" + +#: ../templates/config/confmain.php:243 +#: ../templates/selfService/adminMain.php:451 +msgid "Activate TLS" +msgstr "Увімкнути TLS" + +#: ../lib/modules/sambaSamAccount.inc:352 +msgid "Activate this checkbox to allow this user to use the terminal service." +msgstr "Включити використання сервера терміналів для цього користувача" + +#: ../lib/modules/sambaSamAccount.inc:373 +msgid "Activate this checkbox to connect drives from the client machine." +msgstr "Підключити диски з комп'ютера клієнта" + +#: ../lib/modules/sambaSamAccount.inc:376 +msgid "Activate this checkbox to connect printers from the client machine." +msgstr "Включити підключення принтерів з комп'ютера клієнта" + +#: ../lib/modules/sambaSamAccount.inc:361 +msgid "" +"Activate this checkbox to inherit the initial program and working directory " +"from the client machine." +msgstr "Ініціювати початкову програму та робочий каталог з комп'ютера клієнта" + +#: ../lib/modules/sambaSamAccount.inc:379 +msgid "Activate this checkbox to set the client's printer as default printer." +msgstr "Включити використання принтера клієнта по замовчуванню." + +#: ../lib/modules/posixAccount.inc:478 +msgid "Activating this checkbox will remove the user's home directory." +msgstr "Встановіть прапорець для видалення домашнього каталогу користувача." + +#: ../lib/types/zarafaAddressListType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:93 +#: ../lib/modules/zarafaDynamicGroup.inc:83 +#: ../lib/modules/zarafaDynamicGroup.inc:144 +#: ../lib/modules/zarafaDynamicGroup.inc:168 +#: ../lib/modules/zarafaDynamicGroup.inc:281 +#: ../lib/modules/zarafaDynamicGroup.inc:456 ../lib/modules/qmailUser.inc:41 +#: ../lib/modules/qmailUser.inc:285 ../lib/modules/zarafaContact.inc:75 +#: ../lib/modules/zarafaContact.inc:156 ../lib/modules/zarafaContact.inc:254 +#: ../lib/modules/zarafaGroup.inc:89 ../lib/modules/zarafaGroup.inc:154 +#: ../lib/modules/zarafaGroup.inc:195 ../lib/modules/zarafaGroup.inc:302 +#: ../lib/modules/zarafaGroup.inc:660 ../lib/modules/zarafaAddressList.inc:71 +#: ../lib/modules/zarafaAddressList.inc:120 +#: ../lib/modules/zarafaAddressList.inc:142 +#: ../lib/modules/zarafaAddressList.inc:222 +#: ../lib/modules/zarafaAddressList.inc:338 ../lib/modules/zarafaUser.inc:84 +#: ../lib/modules/zarafaUser.inc:255 ../lib/modules/zarafaUser.inc:594 +#: ../lib/modules/zarafaUser.inc:1801 ../lib/modules/fixed_ip.inc:114 +#: ../lib/modules/fixed_ip.inc:438 ../lib/modules/fixed_ip.inc:743 +msgid "Active" +msgstr "Активно" + +#: ../templates/config/conftypes.php:232 +msgid "Active account types" +msgstr "Активні типи акаунтів" + +#: ../templates/serverInfo.php:307 ../templates/serverInfo.php:384 +#: ../templates/multiEdit.php:126 ../templates/config/profmanage.php:252 +#: ../templates/config/confmodules.php:305 +#: ../templates/config/conftypes.php:223 +#: ../templates/selfService/profManage.php:209 +#: ../templates/pdfedit/pdfpage.php:596 ../templates/pdfedit/pdfpage.php:606 +#: ../templates/pdfedit/pdfpage.php:616 ../templates/pdfedit/pdfpage.php:630 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1206 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1210 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:78 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:121 +#: ../lib/modules/pykotaPrinter.inc:269 ../lib/modules/pykotaPrinter.inc:430 +#: ../lib/modules/nisMailAliasUser.inc:162 +#: ../lib/modules/nisMailAliasUser.inc:201 +#: ../lib/modules/nisMailAliasUser.inc:387 +#: ../lib/modules/zarafaContact.inc:390 ../lib/modules/zarafaGroup.inc:450 +#: ../lib/modules/device.inc:253 ../lib/modules/zarafaUser.inc:874 +#: ../lib/modules/zarafaUser.inc:1462 ../lib/modules/zarafaUser.inc:1494 +#: ../lib/modules/bindDLZ.inc:668 ../lib/modules/bindDLZ.inc:760 +#: ../lib/modules/bindDLZ.inc:840 ../lib/modules/bindDLZ.inc:944 +#: ../lib/modules/bindDLZ.inc:1060 ../lib/modules/bindDLZ.inc:1172 +#: ../lib/modules/bindDLZ.inc:1268 ../lib/modules/bindDLZ.inc:1382 +#: ../lib/modules/kolabUser.inc:835 ../lib/modules/kolabUser.inc:883 +#: ../lib/modules/sambaGroupMapping.inc:392 +#: ../lib/modules/sambaGroupMapping.inc:489 ../lib/modules/pykotaUser.inc:377 +#: ../lib/modules/ldapPublicKey.inc:267 ../lib/modules/ldapPublicKey.inc:277 +#: ../lib/modules/nisnetgroup.inc:282 ../lib/modules/inetOrgPerson.inc:1709 +#: ../lib/modules/sudoRole.inc:321 ../lib/modules/sudoRole.inc:348 +#: ../lib/modules/sudoRole.inc:375 ../lib/modules/sudoRole.inc:402 +#: ../lib/modules/sudoRole.inc:429 ../lib/modules/sudoRole.inc:456 +#: ../lib/modules/customFields.inc:1083 ../lib/modules/customFields.inc:2091 +#: ../lib/modules/customFields.inc:2101 ../lib/modules/qmailGroup.inc:822 +#: ../lib/modules/organizationalRole.inc:317 ../lib/modules/fixed_ip.inc:586 +#: ../lib/modules/windowsGroup.inc:556 ../lib/modules/groupOfNames.inc:374 +#: ../lib/modules/groupOfNames.inc:529 +msgid "Add" +msgstr "Додати" + +#: ../lib/modules/asteriskAccount.inc:762 +msgid "Add Asterisk account" +msgstr "Додати акаунт Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:269 +msgid "Add Asterisk voicemail extension" +msgstr "Додати розширення голосової пошти Asterisk" + +#: ../lib/modules/authorizedServiceObject.inc:175 +msgid "Add Authorized Service extension" +msgstr "Додати розширення Authorized Service" + +#: ../lib/modules/eduPerson.inc:360 +msgid "Add EDU person extension" +msgstr "Додати розширення EDU person" + +#: ../lib/modules/freeRadius.inc:312 +msgid "Add FreeRadius extension" +msgstr "Додати розширення FreeRadius" + +#: ../lib/modules/ipHost.inc:165 +msgid "Add IP address extension" +msgstr "Додати розширення ІР-адреси" + +#: ../lib/modules/mitKerberos.inc:478 ../lib/modules/heimdalKerberos.inc:402 +msgid "Add Kerberos extension" +msgstr "Додати розширення Kerberos" + +#: ../lib/modules/kolabGroup.inc:121 ../lib/modules/kolabGroup.inc:133 +#: ../lib/modules/kolabGroup.inc:220 ../lib/modules/kolabUser.inc:394 +msgid "Add Kolab extension" +msgstr "Додати розширення Kolab" + +#: ../lib/modules/puppetClient.inc:224 +msgid "Add Puppet extension" +msgstr "Додати розширення Puppet" + +#: ../lib/modules/pykotaGroup.inc:245 ../lib/modules/pykotaUser.inc:425 +msgid "Add PyKota extension" +msgstr "Додати розширення PyKota" + +#: ../lib/modules/sambaSamAccount.inc:1311 +#: ../lib/modules/sambaGroupMapping.inc:428 +msgid "Add Samba 3 extension" +msgstr "Додати розширення Samba 3" + +#: ../lib/modules/shadowAccount.inc:380 +msgid "Add Shadow account extension" +msgstr "Додати розширення акаунта Shadow" + +#: ../lib/modules/posixGroup.inc:253 ../lib/modules/posixAccount.inc:1518 +msgid "Add Unix extension" +msgstr "Додати розширення Unix" + +#: ../lib/modules/zarafaContact.inc:134 ../lib/modules/zarafaContact.inc:202 +msgid "Add Zarafa contact extension" +msgstr "Додати розширення контактів Zarafa" + +#: ../lib/modules/zarafaContact.inc:110 ../lib/modules/zarafaContact.inc:111 +#: ../lib/modules/zarafaGroup.inc:312 ../lib/modules/zarafaUser.inc:167 +#: ../lib/modules/zarafaUser.inc:168 ../lib/modules/zarafaUser.inc:179 +#: ../lib/modules/zarafaUser.inc:438 ../lib/modules/zarafaServer.inc:237 +msgid "Add Zarafa extension" +msgstr "Додати розширення Zarafa" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add all" +msgstr "Додати все" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2073 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2091 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "Add an additional value to attribute" +msgstr "Додати додаткове значення атрибуту" + +#: ../lib/modules/asteriskExtension.inc:350 +msgid "Add another rule" +msgstr "Додати інше правило" + +#: ../lib/modules/inetOrgPerson.inc:1744 +#: ../lib/modules/organizationalRole.inc:322 +#: ../lib/modules/groupOfNames.inc:379 ../lib/modules/groupOfNames.inc:534 +msgid "Add entries" +msgstr "Додати записи" + +#: ../lib/modules/zarafaContact.inc:429 ../lib/modules/zarafaGroup.inc:489 +#: ../lib/modules/device.inc:296 ../lib/modules/zarafaUser.inc:913 +#: ../lib/modules/sambaGroupMapping.inc:504 ../lib/modules/qmailGroup.inc:858 +#: ../lib/modules/organizationalRole.inc:333 +#: ../lib/modules/windowsGroup.inc:599 ../lib/modules/groupOfNames.inc:390 +#: ../lib/modules/groupOfNames.inc:545 +msgid "Add entries of this type:" +msgstr "Додати записи цього типу:" + +#: ../lib/modules/fixed_ip.inc:544 +msgid "Add existing host" +msgstr "Додати існуючий хост" + +#: ../lib/modules/customFields.inc:439 +msgid "Add extension" +msgstr "Додати розширення" + +#: ../lib/modules/ddns.inc:369 +msgid "Add fix IP addresses to DNS" +msgstr "Додати статичні ІР-адреси в DNS" + +#: ../lib/modules/hostObject.inc:152 +msgid "Add host extension" +msgstr "Додати розширення хоста" + +#: ../templates/selfService/adminMain.php:631 ../help/help.inc:232 +msgid "Add input field" +msgstr "Додати поле вводу" + +#: ../templates/multiEdit.php:148 +msgid "Add more fields" +msgstr "Додати ще полів" + +#: ../lib/modules/customFields.inc:2973 +msgid "Add more mapping fields" +msgstr "Додати ще поля відповідності" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:37 +#, php-format +msgid "Add new %s value to %s" +msgstr "Додати нове %sзначення до %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1208 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:29 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:48 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:166 +msgid "Add new attribute" +msgstr "Додати новий атрибут" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1207 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +msgid "Add new attribute to this object" +msgstr "Додати новий атрибут до цього об'єкту" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:89 +msgid "Add new binary attribute" +msgstr "Додати новий бінарний атрибут" + +#: ../lib/modules/customFields.inc:1082 ../lib/modules/customFields.inc:1083 +msgid "Add new field" +msgstr "Додати нове поле" + +#: ../templates/selfService/adminMain.php:623 ../help/help.inc:230 +msgid "Add new group" +msgstr "Додати нову групу" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:117 +msgid "Add new object class" +msgstr "Додати новий клас об'єкту" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:60 +#, php-format +msgid "Add new object class to %s" +msgstr "Додати новий клас об'єкту до %s" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:94 +msgid "Add object class and attributes" +msgstr "Додати клас об'єкту та атрибути" + +#: ../lib/modules/passwordSelfReset.inc:245 +msgid "Add password self reset extension" +msgstr "Додати розширення самоскидання пароля" + +#: ../lib/modules/inetOrgPerson.inc:748 ../lib/modules/inetOrgPerson.inc:1585 +#: ../lib/modules/inetOrgPerson.inc:1668 ../lib/modules/inetOrgPerson.inc:2656 +msgid "Add photo" +msgstr "Додати фото" + +#: ../templates/config/profmanage.php:239 +#: ../templates/config/profmanage.php:253 +#: ../templates/selfService/profManage.php:202 +#: ../templates/selfService/profManage.php:210 ../help/help.inc:130 +msgid "Add profile" +msgstr "Додати профіль" + +#: ../lib/modules/qmailUser.inc:712 ../lib/modules/qmailGroup.inc:633 +msgid "Add qmail extension" +msgstr "Додати розширення qmail" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add selected" +msgstr "Додати вибране" + +#: ../lib/modules/nisMailAliasUser.inc:374 +msgid "Add to existing alias" +msgstr "Додати існуючий псевдонім" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:149 +msgid "Add value" +msgstr "Додати значення" + +#: ../templates/3rdParty/pla/htdocs/import.php:28 +msgid "Adding" +msgstr "Додавання" + +#: ../lib/modules/range.inc:115 +msgid "Adding the range failed because errors occured." +msgstr "Не вдається додати діапазон через помилки." + +#: ../templates/selfService/adminMain.php:527 ../help/help.inc:236 +msgid "Additional CSS links" +msgstr "Додаткові CSS посилання" + +#: ../templates/config/conftypes.php:274 +#: ../templates/selfService/adminMain.php:472 ../help/help.inc:170 +#: ../help/help.inc:240 +msgid "Additional LDAP filter" +msgstr "Додатковий LDAP фільтр" + +#: ../lib/modules/zarafaDynamicGroup.inc:72 +#: ../lib/modules/zarafaDynamicGroup.inc:76 ../lib/modules/zarafaGroup.inc:74 +#: ../lib/modules/zarafaGroup.inc:78 +msgid "Additional email addresses for this entry." +msgstr "Додаткові адреси електронної пошти цього запису." + +#: ../lib/modules/posixAccount.inc:304 ../lib/modules/posixAccount.inc:415 +#: ../lib/modules/posixAccount.inc:469 ../lib/modules/posixAccount.inc:534 +#: ../lib/modules/posixAccount.inc:1453 ../lib/modules/posixAccount.inc:1737 +#: ../lib/modules/posixAccount.inc:1848 +msgid "Additional groups" +msgstr "Додаткові групи" + +#: ../lib/modules/windowsGroup.inc:123 +msgid "Additional notes to describe this entry." +msgstr "Додаткові примітки для опису цього запису." + +#: ../templates/config/mainmanage.php:440 +msgid "Additional options" +msgstr "Додаткові опції" + +#: ../templates/massDoUpload.php:160 +msgid "Additional tasks for module:" +msgstr "Додаткові задачі для модуля:" + +#: ../lib/modules/windowsUser.inc:707 ../lib/modules/inetOrgPerson.inc:1219 +msgid "Address" +msgstr "Адреса" + +#: ../lib/types/zarafaAddressListType.inc:144 +#, php-format +msgid "Address list count: %s" +msgstr "Кількість списків адрес: %s" + +#: ../lib/modules/imapAccess.inc:78 +msgid "Address of IMAP server (e.g. mail.example.org)." +msgstr "Адреса сервера IMAP (наприклад, mail.example.org)." + +#: ../help/help.inc:231 +msgid "" +"Adds a new group element to the list of self service options. Use this to " +"structure the input fields." +msgstr "" +"Додавання нового елементу групування в список опцій самообслуговування. Це " +"використовується для структурування полів вводу." + +#: ../help/help.inc:233 +msgid "Adds a new self service option to the selected group element." +msgstr "Додає нові опції самообслуговування для вибраного елемента групи." + +#: ../lib/modules/range.inc:102 +msgid "Adds input fields for a new IP range." +msgstr "Додає поля вводу для нового діапазону ІР-адрес." + +#: ../lib/modules/pykotaUser.inc:153 +msgid "Adds the amount to the user's balance. You can also specify a comment." +msgstr "" +"Додає кількість на баланс користувача. Ви також можете вказати коментар." + +#: ../lib/modules/kolabUser.inc:171 +msgid "Adds the object class \"mailrecipient\" to all user accounts." +msgstr "Додає об’єктний клас \"mailrecipient\" до всіх акаунтів користувачів." + +#: ../lib/modules/kolabGroup.inc:122 +msgid "Adds this Kolab extension." +msgstr "Додає це розширення Kolab." + +#: ../lib/modules/zarafaUser.inc:108 ../lib/modules/zarafaUser.inc:282 +#: ../lib/modules/zarafaUser.inc:340 ../lib/modules/zarafaUser.inc:603 +#: ../lib/modules/zarafaUser.inc:1262 +msgid "Admin" +msgstr "Адміністратор" + +#: ../lib/modules/selfRegistration.inc:61 +#: ../lib/modules/selfRegistration.inc:199 +#: ../lib/modules/passwordSelfReset.inc:104 +#: ../lib/modules/passwordSelfReset.inc:518 +msgid "Admin DN" +msgstr "DN Адміністратора" + +#: ../lib/modules/bindDLZ.inc:224 ../lib/modules/bindDLZ.inc:344 +#: ../lib/modules/bindDLZ.inc:421 ../lib/modules/bindDLZ.inc:522 +#: ../lib/modules/bindDLZ.inc:1044 ../lib/modules/bindDLZ.inc:1546 +msgid "Admin email" +msgstr "Ел.пошта адміністратора" + +#: ../lib/modules/selfRegistration.inc:65 +#: ../lib/modules/selfRegistration.inc:204 ../lib/modules/imapAccess.inc:136 +#: ../lib/modules/passwordSelfReset.inc:108 +#: ../lib/modules/passwordSelfReset.inc:522 +msgid "Admin password" +msgstr "Пароль Адміністратора" + +#: ../lib/modules/inetOrgPerson.inc:371 ../lib/modules/inetOrgPerson.inc:485 +#: ../lib/modules/inetOrgPerson.inc:493 +msgid "Administration" +msgstr "Адміністрація" + +#: ../lib/modules/posixGroup.inc:473 ../lib/modules/pykotaGroup.inc:168 +#: ../lib/modules/nisnetgroup.inc:122 +#: ../lib/modules/organizationalRole.inc:125 +#: ../lib/modules/groupOfNames.inc:137 +msgid "Administrators group" +msgstr "Група адміністраторів" + +#: ../templates/config/confmain.php:276 ../templates/config/conftypes.php:320 +#: ../lib/modules/posixAccount.inc:271 ../lib/modules/inetOrgPerson.inc:3616 +msgid "Advanced options" +msgstr "Додаткові опції" + +#: ../lib/modules/eduPerson.inc:105 ../lib/modules/eduPerson.inc:109 +#: ../lib/modules/eduPerson.inc:181 ../lib/modules/eduPerson.inc:225 +#: ../lib/modules/eduPerson.inc:328 ../lib/modules/eduPerson.inc:585 +msgid "Affiliations" +msgstr "Приєднання" + +#: ../lib/modules/sambaSamAccount.inc:555 +msgid "Alaska" +msgstr "Alaska" + +#: ../lib/modules/sambaDomain.inc:218 ../lib/modules/sambaDomain.inc:219 +msgid "Algorithmic RID base is not a number!" +msgstr "Алгоритм RID бази не число!" + +#: ../lib/modules/customFields.inc:76 ../lib/modules/customFields.inc:528 +#: ../lib/modules/customFields.inc:569 ../lib/modules/aliasEntry.inc:45 +msgid "Alias" +msgstr "Псевдонім" + +#: ../lib/types/mailAlias.inc:141 ../lib/types/alias.inc:141 +#, php-format +msgid "Alias count: %s" +msgstr "Кількість псевдонімів: %s" + +#: ../lib/types/alias.inc:62 +msgid "Alias entries" +msgstr "Записи псевдонімів" + +#: ../lib/modules/nisMailAlias.inc:125 ../lib/modules/nisMailAlias.inc:126 +msgid "Alias is empty or invalid!" +msgstr "Псевдонім порожній або неправильний!" + +#: ../lib/types/mailAlias.inc:91 ../lib/modules/nisMailAliasUser.inc:96 +#: ../lib/modules/nisMailAliasUser.inc:364 ../lib/modules/bindDLZ.inc:128 +#: ../lib/modules/bindDLZ.inc:261 ../lib/modules/bindDLZ.inc:412 +#: ../lib/modules/bindDLZ.inc:490 ../lib/modules/bindDLZ.inc:829 +#: ../lib/modules/bindDLZ.inc:1531 ../lib/modules/nisMailAlias.inc:81 +#: ../lib/modules/nisMailAlias.inc:101 ../lib/modules/nisMailAlias.inc:115 +#: ../lib/modules/nisMailAlias.inc:163 ../lib/modules/nisMailAlias.inc:475 +msgid "Alias name" +msgstr "Ім'я псевдоніма" + +#: ../lib/modules/bindDLZ.inc:827 +msgid "Alias name (\"CNAME\" record)" +msgstr "Назва псевдоніма (\"CNAME\" запис)" + +#: ../lib/modules/nisMailAliasUser.inc:120 +msgid "Alias name already exists." +msgstr "Така псевдонім вже існує." + +#: ../lib/modules/nisMailAliasUser.inc:119 +msgid "Alias name is invalid." +msgstr "Назва псевдоніма неправильна." + +#: ../lib/modules/nisMailAliasUser.inc:100 +#: ../lib/modules/nisMailAliasUser.inc:110 +#: ../lib/modules/nisMailAliasUser.inc:382 +#: ../lib/modules/nisMailAliasUser.inc:541 +msgid "Alias names" +msgstr "Назви псевдонімів" + +#: ../lib/modules/nisMailAliasUser.inc:84 +#: ../lib/modules/nisMailAliasUser.inc:88 +msgid "Alias names with email address" +msgstr "Назви псевдонімів з адресами ел.пошти" + +#: ../lib/modules/nisMailAliasUser.inc:76 +#: ../lib/modules/nisMailAliasUser.inc:80 +msgid "Alias names with user name" +msgstr "Назви псевдонімів з псевдоім’ям користувача." + +#: ../lib/modules/bindDLZ.inc:413 ../lib/modules/bindDLZ.inc:1532 +msgid "Alias timeout" +msgstr "Тайм-аут псевдоніма" + +#: ../lib/types/alias.inc:92 ../lib/modules/customScripts.inc:52 +#: ../lib/modules/uidObject.inc:59 ../lib/modules/aliasEntry.inc:61 +#: ../lib/modules/aliasEntry.inc:69 ../lib/modules/aliasEntry.inc:77 +#: ../lib/modules/aliasEntry.inc:98 ../lib/modules/aliasEntry.inc:107 +#: ../lib/modules/aliasEntry.inc:228 +msgid "Aliased entry" +msgstr "Запис псевдоніма" + +#: ../templates/schema/schema.php:226 ../lib/types/alias.inc:53 +msgid "Aliases" +msgstr "Псевдоніми" + +#: ../lib/modules/nisMailAliasUser.inc:169 +#: ../lib/modules/nisMailAliasUser.inc:569 +msgid "Aliases for email" +msgstr "Псевдоніми для ел.пошти" + +#: ../lib/modules/nisMailAliasUser.inc:139 +#: ../lib/modules/nisMailAliasUser.inc:567 +msgid "Aliases for user name" +msgstr "Псевдоніми для псевдоімені користувача" + +#: ../lib/lists.inc:702 +#, php-format +msgid "All accounts (%s)" +msgstr "Всі акаунти (%s)" + +#: ../templates/selfService/selfServiceMain.php:368 +#: ../templates/initsuff.php:158 +msgid "All changes were successful." +msgstr "Всі зміни пройшли успішно." + +#: ../lib/lists.inc:701 +#, php-format +msgid "All selected accounts (%s)" +msgstr "Всі вибрані акаунти (%s)" + +#: ../lib/modules/dhcp_settings.inc:103 +msgid "Allow" +msgstr "Дозволити" + +#: ../templates/config/confmain.php:362 ../help/help.inc:259 +msgid "Allow alternate address" +msgstr "Дозволити альтернативну адресу" + +#: ../lib/modules/sambaDomain.inc:117 ../lib/modules/sambaDomain.inc:194 +#: ../lib/modules/sambaDomain.inc:308 ../lib/modules/sambaDomain.inc:626 +msgid "Allow machine password changes" +msgstr "Дозволити зміну пароля комп'ютера" + +#: ../lib/modules/customFields.inc:144 ../lib/modules/customFields.inc:148 +#: ../lib/modules/customFields.inc:3140 +msgid "Allow multiple values" +msgstr "Дозволити багато значень" + +#: ../lib/types/ppolicyType.inc:90 ../lib/modules/ppolicy.inc:132 +#: ../lib/modules/ppolicy.inc:155 ../lib/modules/ppolicy.inc:294 +#: ../lib/modules/ppolicy.inc:505 +msgid "Allow password change" +msgstr "Дозволити зміну пароля" + +#: ../lib/modules/sambaSamAccount.inc:229 +#: ../lib/modules/sambaSamAccount.inc:351 +#: ../lib/modules/sambaSamAccount.inc:1499 +#: ../lib/modules/sambaSamAccount.inc:1915 +msgid "Allow terminal server login" +msgstr "Дозволити доступ до сервера терміналів" + +#: ../templates/selfService/adminMain.php:589 +msgid "Allow user input for this field." +msgstr "Дозволити користувачу заповнювати це поле" + +#: ../lib/modules/asteriskAccount.inc:203 +#: ../lib/modules/asteriskAccount.inc:289 +#: ../lib/modules/asteriskAccount.inc:479 +#: ../lib/modules/asteriskAccount.inc:713 +#: ../lib/modules/asteriskAccount.inc:1005 +#: ../lib/modules/asteriskAccount.inc:1279 +msgid "Allowed codec" +msgstr "Дозволений кодек" + +#: ../templates/config/mainmanage.php:299 ../lib/types/user.inc:95 +#: ../help/help.inc:152 +msgid "Allowed hosts" +msgstr "Дозволені хости" + +#: ../templates/config/mainmanage.php:301 +msgid "Allowed hosts (self service)" +msgstr "Дозволені хости (сервіс самообслуговування)" + +#: ../lib/modules/kolabGroup.inc:95 ../lib/modules/kolabGroup.inc:99 +#: ../lib/modules/kolabGroup.inc:141 ../lib/modules/kolabGroup.inc:164 +#: ../lib/modules/kolabGroup.inc:181 ../lib/modules/kolabGroup.inc:205 +#: ../lib/modules/kolabGroup.inc:424 ../lib/modules/kolabUser.inc:152 +#: ../lib/modules/kolabUser.inc:156 ../lib/modules/kolabUser.inc:217 +#: ../lib/modules/kolabUser.inc:235 ../lib/modules/kolabUser.inc:253 +#: ../lib/modules/kolabUser.inc:381 ../lib/modules/kolabUser.inc:766 +#: ../lib/modules/kolabSharedFolder.inc:120 +#: ../lib/modules/kolabSharedFolder.inc:124 +#: ../lib/modules/kolabSharedFolder.inc:208 +#: ../lib/modules/kolabSharedFolder.inc:234 +#: ../lib/modules/kolabSharedFolder.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:307 +#: ../lib/modules/kolabSharedFolder.inc:561 +msgid "Allowed recipients" +msgstr "Дозволені одержувачі" + +#: ../lib/modules/kolabGroup.inc:104 ../lib/modules/kolabGroup.inc:108 +#: ../lib/modules/kolabGroup.inc:147 ../lib/modules/kolabGroup.inc:165 +#: ../lib/modules/kolabGroup.inc:183 ../lib/modules/kolabGroup.inc:207 +#: ../lib/modules/kolabGroup.inc:425 ../lib/modules/kolabUser.inc:161 +#: ../lib/modules/kolabUser.inc:165 ../lib/modules/kolabUser.inc:223 +#: ../lib/modules/kolabUser.inc:236 ../lib/modules/kolabUser.inc:255 +#: ../lib/modules/kolabUser.inc:383 ../lib/modules/kolabUser.inc:767 +#: ../lib/modules/kolabSharedFolder.inc:129 +#: ../lib/modules/kolabSharedFolder.inc:133 +#: ../lib/modules/kolabSharedFolder.inc:214 +#: ../lib/modules/kolabSharedFolder.inc:235 +#: ../lib/modules/kolabSharedFolder.inc:252 +#: ../lib/modules/kolabSharedFolder.inc:309 +#: ../lib/modules/kolabSharedFolder.inc:562 +msgid "Allowed senders" +msgstr "Дозволені відправники" + +#: ../lib/modules/sambaSamAccount.inc:1337 +#: ../lib/modules/sambaSamAccount.inc:1338 +msgid "Allowed workstations" +msgstr "Дозволені робочі станції" + +#: ../lib/modules/customFields.inc:149 +msgid "Allows to enter multiple values for this attribute." +msgstr "Дозволяє вказувати багато значень для цього атрибута." + +#: ../lib/modules/customFields.inc:145 +msgid "Allows to select multiple values from the list." +msgstr "Дозволяє вибирати багато значень з цього списку." + +#: ../lib/modules/sambaSamAccount.inc:570 +msgid "Almaty, Dhaka, Colombo" +msgstr "Almaty, Dhaka, Colombo" + +#: ../templates/lists/changePassword.php:334 +#: ../templates/lists/changePassword.php:370 ../lib/modules/qmailUser.inc:203 +#: ../lib/modules/qmailUser.inc:271 ../lib/modules/qmailUser.inc:400 +#: ../lib/modules/qmailUser.inc:450 ../lib/modules/qmailUser.inc:520 +#: ../lib/modules/qmailUser.inc:1140 ../lib/modules/qmailGroup.inc:131 +#: ../lib/modules/qmailGroup.inc:135 ../lib/modules/qmailGroup.inc:247 +#: ../lib/modules/qmailGroup.inc:370 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:484 ../lib/modules/qmailGroup.inc:1057 +msgid "Alternate address" +msgstr "Альтернативна адреса" + +#: ../lib/modules.inc:1071 ../lib/modules.inc:1170 ../help/help.inc:214 +msgid "Alternate recipient" +msgstr "Альтернативний отримувач" + +#: ../lib/modules/kolabUser.inc:50 +msgid "Always accept" +msgstr "Завжди приймати" + +#: ../lib/modules/kolabUser.inc:51 +msgid "Always reject" +msgstr "Завжди відхиляти" + +#: ../lib/modules/pykotaUser.inc:372 ../lib/modules/pykotaUser.inc:597 +#: ../lib/modules/pykotaUser.inc:906 ../lib/modules/pykotaUser.inc:965 +msgid "Amount" +msgstr "Обсяг" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1018 +#, php-format +msgid "An attribute (%s) was modified and is highlighted below." +msgstr "Атрибут (%s) було змінено та підсвічено." + +#: ../lib/modules/sudoRole.inc:268 +msgid "An sudo role with this name already exists. Please choose another name." +msgstr "Роль sudo з таким ім'ям вже існує. Будь ласка, виберіть інше ім'я." + +#: ../lib/modules/passwordSelfReset.inc:84 +#: ../lib/modules/passwordSelfReset.inc:183 +#: ../lib/modules/passwordSelfReset.inc:198 +#: ../lib/modules/passwordSelfReset.inc:219 +#: ../lib/modules/passwordSelfReset.inc:265 +#: ../lib/modules/passwordSelfReset.inc:384 +#: ../lib/modules/passwordSelfReset.inc:663 +#: ../lib/modules/passwordSelfReset.inc:1046 +msgid "Answer" +msgstr "Відповідь" + +#: ../lib/modules/kolabUser.inc:331 ../lib/modules/kolabUser.inc:756 +#: ../lib/modules/kolabUser.inc:858 ../lib/modules/kolabUser.inc:861 +msgid "Anyone" +msgstr "Будь-що" + +#: ../lib/modules/customFields.inc:506 +msgid "Appearance" +msgstr "Поява" + +#: ../lib/modules/asteriskExtension.inc:110 +#: ../lib/modules/asteriskExtension.inc:165 +#: ../lib/modules/asteriskExtension.inc:366 +#: ../lib/modules/asteriskExtension.inc:823 +msgid "Application" +msgstr "Застосунок" + +#: ../lib/modules/asteriskExtension.inc:94 +#: ../lib/modules/asteriskExtension.inc:172 +#: ../lib/modules/asteriskExtension.inc:374 +#: ../lib/modules/asteriskExtension.inc:824 +msgid "Application data" +msgstr "Дані застосунку" + +#: ../templates/multiEdit.php:166 +msgid "Apply changes" +msgstr "Застосувати зміни" + +#: ../lib/modules/zarafaUser.inc:159 ../lib/modules/zarafaUser.inc:163 +#: ../lib/modules/zarafaUser.inc:315 ../lib/modules/zarafaUser.inc:379 +#: ../lib/modules/zarafaUser.inc:554 ../lib/modules/zarafaUser.inc:957 +#: ../lib/modules/zarafaUser.inc:1236 ../lib/modules/zarafaUser.inc:1317 +#: ../lib/modules/zarafaUser.inc:1803 +msgid "Archive servers" +msgstr "Архівні сервери" + +#: ../lib/modules/zarafaUser.inc:552 +msgid "Archiving" +msgstr "Архівація" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:53 +msgid "Are you sure you want to permanently delete these objects?" +msgstr "Ви впевнені, що ви хочете повністю видалити ці об'єкти?" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:107 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:51 +msgid "Are you sure you want to permanently delete this object?" +msgstr "Ви впевнені, що ви хочете повністю видалити цей об'єкт?" + +#: ../lib/modules/imapAccess.inc:129 +msgid "Ask" +msgstr "Спитати" + +#: ../lib/modules/eduPerson.inc:142 ../lib/modules/eduPerson.inc:146 +#: ../lib/modules/eduPerson.inc:218 ../lib/modules/eduPerson.inc:234 +#: ../lib/modules/eduPerson.inc:352 ../lib/modules/eduPerson.inc:590 +msgid "Assurance profiles" +msgstr "Завірені профілі" + +#: ../lib/modules/eduPerson.inc:143 ../lib/modules/eduPerson.inc:147 +msgid "" +"Assurance profiles are the set of standards that are met by an identity " +"assertion." +msgstr "" +"Завірені профілі це набір стандартів, яким задовольняють підтвердження " +"справжності." + +#: ../lib/modules/asteriskAccount.inc:73 +msgid "Asterisk" +msgstr "Asterisk" + +#: ../lib/modules/asteriskAccount.inc:132 +msgid "Asterisk AMA (Automated Message Accounting) flags." +msgstr "Позначки Asterisk AMA (Automated Message Accounting." + +#: ../lib/modules/asteriskExtension.inc:79 +msgid "Asterisk extension" +msgstr "Розширення Asterisk" + +#: ../lib/types/asteriskExt.inc:56 +msgid "Asterisk extensions" +msgstr "Розширення Asterisk" + +#: ../lib/types/asteriskExt.inc:65 +msgid "Asterisk extensions entries" +msgstr "Записи розширень Asterisk" + +#: ../lib/modules/asteriskAccount.inc:123 +#: ../lib/modules/asteriskAccount.inc:249 +#: ../lib/modules/asteriskAccount.inc:1233 +msgid "Asterisk realm" +msgstr "Область астерікс" + +#: ../lib/modules/asteriskVoicemail.inc:71 +msgid "Asterisk voicemail" +msgstr "Голосова пошта Asterisk" + +#: ../lib/modules/asteriskVoicemail.inc:120 +msgid "Asterisk voicemail context." +msgstr "Контекст голосової пошти Asterisk" + +#: ../lib/modules/sambaSamAccount.inc:560 +msgid "Atlantic time (Canada), Caracas" +msgstr "Atlantic time (Canada), Caracas" + +#: ../templates/3rdParty/pla/lib/import_functions.php:455 +msgid "Attempting to delete a non existent attribute" +msgstr "Спроба видалити неіснуючий атрибут" + +#: ../templates/3rdParty/pla/lib/import_functions.php:466 +msgid "Attempting to replace a non existant attribute" +msgstr "Спроба замінити неіснуючий атрибут" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Attribute" +msgstr "Атрибут" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:137 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:72 +msgid "Attribute doesn't exist" +msgstr "Атрибут не існує" + +#: ../templates/multiEdit.php:119 ../lib/modules/customFields.inc:92 +#: ../lib/modules/customFields.inc:1060 ../lib/modules/customFields.inc:1710 +msgid "Attribute name" +msgstr "Назва атрибута" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:117 +msgid "Attribute not available" +msgstr "Атрибут недоступний" + +#: ../templates/3rdParty/pla/lib/import_functions.php:535 +msgid "Attribute not valid" +msgstr "Неправильний атрибут" + +#: ../templates/schema/schema.php:69 ../templates/schema/schema.php:70 +msgid "Attribute types" +msgstr "Типи атрибутів" + +#: ../lib/modules/selfRegistration.inc:78 +#: ../lib/modules/selfRegistration.inc:220 +msgid "Attributes" +msgstr "Атрибути" + +#: ../lib/modules/sambaSamAccount.inc:576 +msgid "Auckland, Fiji, Kamchatka" +msgstr "Auckland, Fiji, Kamchatka" + +#: ../lib/modules/asteriskAccount.inc:124 +msgid "" +"Authentication realm for Asterisk server (default: asterisk). This value set " +"in sip.conf (option: \"realm\")." +msgstr "" +"Область аутентифікації для сервера Asterisk (типово: asterisk). Це значення " +"налаштовується в sip.conf (опція: \"realm\")." + +#: ../lib/modules/asteriskAccount.inc:232 +msgid "Authentication user for outbound proxies." +msgstr "Аутентифікація користувача на зовнішніх проксі." + +#: ../lib/modules/bindDLZ.inc:1013 +msgid "Authoritative information (\"SOA\" record)" +msgstr "Достовірна інформація (\"SOA\" запис)" + +#: ../lib/modules/authorizedServiceObject.inc:71 +#: ../lib/modules/authorizedServiceObject.inc:81 +#: ../lib/modules/authorizedServiceObject.inc:85 +#: ../lib/modules/authorizedServiceObject.inc:105 +#: ../lib/modules/authorizedServiceObject.inc:112 +#: ../lib/modules/authorizedServiceObject.inc:116 +#: ../lib/modules/authorizedServiceObject.inc:168 +#: ../lib/modules/authorizedServiceObject.inc:243 +msgid "Authorized Services" +msgstr "Authorized Services" + +#: ../lib/modules/authorizedServiceObject.inc:129 +msgid "Authorized services are invalid." +msgstr "Неправильні Authorized services." + +#: ../lib/modules/customFields.inc:152 ../lib/modules/customFields.inc:1917 +msgid "Auto-completion" +msgstr "Авто-завершення" + +#: ../lib/modules/bindDLZ.inc:232 ../lib/modules/bindDLZ.inc:2526 +msgid "Automatic PTR changes" +msgstr "Автоматичні PTR зміни" + +#: ../lib/modules/customScripts.inc:167 +msgid "Automatical scripts" +msgstr "Автоматичні скрипти" + +#: ../lib/modules/kolabGroup.inc:117 ../lib/modules/kolabGroup.inc:127 +#: ../lib/modules/puppetClient.inc:108 ../lib/modules/puppetClient.inc:160 +#: ../lib/modules/qmailUser.inc:131 ../lib/modules/qmailUser.inc:263 +#: ../lib/modules/zarafaContact.inc:87 ../lib/modules/zarafaContact.inc:583 +#: ../lib/modules/posixGroup.inc:396 ../lib/modules/posixGroup.inc:537 +#: ../lib/modules/eduPerson.inc:150 ../lib/modules/eduPerson.inc:155 +#: ../lib/modules/pykotaGroup.inc:129 ../lib/modules/pykotaGroup.inc:140 +#: ../lib/modules/sambaSamAccount.inc:165 +#: ../lib/modules/sambaSamAccount.inc:402 ../lib/modules/posixAccount.inc:432 +#: ../lib/modules/posixAccount.inc:1784 ../lib/modules/zarafaUser.inc:136 +#: ../lib/modules/zarafaUser.inc:1303 ../lib/modules/pykotaUser.inc:160 +#: ../lib/modules/pykotaUser.inc:173 ../lib/modules/shadowAccount.inc:106 +#: ../lib/modules/shadowAccount.inc:197 ../lib/modules/customFields.inc:856 +#: ../lib/modules/qmailGroup.inc:101 ../lib/modules/qmailGroup.inc:232 +#: ../lib/modules/authorizedServiceObject.inc:89 +#: ../lib/modules/authorizedServiceObject.inc:117 +#: ../lib/modules/passwordSelfReset.inc:152 +#: ../lib/modules/passwordSelfReset.inc:167 ../lib/modules/hostObject.inc:83 +#: ../lib/modules/hostObject.inc:101 +msgid "Automatically add this extension" +msgstr "Автоматично додати це розширення" + +#: ../lib/modules/bindDLZ.inc:233 +msgid "" +"Automatically adds and removes PTR entries when A/AAAA records are created " +"or deleted." +msgstr "" +"Автоматично додавати та вилучати PTR записи, коли A/AAAA записи створюються " +"або вилучаються" + +#: ../lib/types/automountType.inc:48 ../lib/types/automountType.inc:57 +msgid "Automount entries" +msgstr "Записи автомонтування" + +#: ../lib/types/automountType.inc:87 ../lib/modules/automount.inc:50 +#: ../lib/modules/automount.inc:68 ../lib/modules/automount.inc:88 +#: ../lib/modules/automount.inc:104 ../lib/modules/automount.inc:114 +#: ../lib/modules/automount.inc:131 ../lib/modules/automount.inc:182 +msgid "Automount entry" +msgstr "Запис автомонтування" + +#: ../lib/modules/automount.inc:114 ../lib/modules/automount.inc:115 +msgid "" +"Automount entry contains invalid characters. Only ASCII characters are " +"allowed." +msgstr "" +"Запис автомонтування має неправильні символи. Дозволено тільки ASCII символи." + +#: ../lib/types/automountType.inc:215 +#, php-format +msgid "Automount entry count: %s" +msgstr "Кількість записів автомонтування: %s" + +#: ../lib/modules/qmailUser.inc:51 +msgid "Autoreply" +msgstr "Автоматична відповідь" + +#: ../lib/modules/qmailUser.inc:116 ../lib/modules/qmailUser.inc:239 +#: ../lib/modules/qmailUser.inc:350 ../lib/modules/qmailUser.inc:424 +#: ../lib/modules/qmailUser.inc:639 ../lib/modules/qmailUser.inc:1147 +msgid "Autoreply text" +msgstr "Текст автоматичної відповіді" + +#: ../templates/config/conftypes.php:215 ../lib/modules/customScripts.inc:61 +msgid "Available account types" +msgstr "Доступні типи акаунтів" + +#: ../lib/modules/customScripts.inc:62 ../lib/modules/customScripts.inc:75 +msgid "Available actions" +msgstr "Доступні дії" + +#: ../lib/modules/posixAccount.inc:1569 ../lib/modules/posixAccount.inc:1602 +#: ../lib/modules/windowsUser.inc:1032 ../lib/modules/nisnetgroup.inc:386 +#: ../lib/modules/groupOfNamesUser.inc:133 +msgid "Available groups" +msgstr "Доступні групи" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:93 +msgid "Available members" +msgstr "Доступні учасники" + +#: ../templates/config/confmodules.php:314 +msgid "Available modules" +msgstr "Доступні модулі" + +#: ../lib/modules/organizationalRoleUser.inc:118 +msgid "Available roles" +msgstr "Доступні ролі" + +#: ../lib/modules/posixGroup.inc:297 ../lib/modules/asteriskExtension.inc:463 +msgid "Available users" +msgstr "Доступні користувачі" + +#: ../lib/modules/sambaSamAccount.inc:1340 +msgid "Available workstations" +msgstr "Доступні робочі станції" + +#: ../lib/modules/sambaSamAccount.inc:563 +msgid "Azores, Cape Verde Islands" +msgstr "Azores, Cape Verde Islands" + +#: ../lib/modules/dhcp_settings.inc:96 +msgid "B-Node (0x01)" +msgstr "B-Node (0x01)" + +#: ../templates/massBuildAccounts.php:276 ../lib/modules/zarafaContact.inc:436 +#: ../lib/modules/posixGroup.inc:342 ../lib/modules/zarafaGroup.inc:496 +#: ../lib/modules/device.inc:303 ../lib/modules/sambaSamAccount.inc:1357 +#: ../lib/modules/sambaSamAccount.inc:1641 +#: ../lib/modules/posixAccount.inc:1642 ../lib/modules/posixAccount.inc:1716 +#: ../lib/modules/zarafaUser.inc:920 ../lib/modules/zarafaUser.inc:969 +#: ../lib/modules/windowsUser.inc:1076 +#: ../lib/modules/sambaGroupMapping.inc:511 ../lib/modules/pykotaUser.inc:618 +#: ../lib/modules/pykotaUser.inc:675 ../lib/modules/nisnetgroup.inc:400 +#: ../lib/modules/inetOrgPerson.inc:1669 ../lib/modules/inetOrgPerson.inc:1745 +#: ../lib/modules/inetOrgPerson.inc:1835 ../lib/modules/qmailGroup.inc:865 +#: ../lib/modules/organizationalRole.inc:389 +#: ../lib/modules/windowsGroup.inc:606 ../lib/modules/groupOfNames.inc:447 +#: ../lib/modules/groupOfNames.inc:601 +msgid "Back" +msgstr "Назад" + +#: ../lib/types/dhcp.inc:47 +msgid "Back to DHCP list" +msgstr "Повернутися до списку DHCP" + +#: ../lib/types/bind.inc:30 +msgid "Back to DNS list" +msgstr "ПОвернутися до списку DNS" + +#: ../lib/types/nisObjectType.inc:30 +msgid "Back to NIS object list" +msgstr "Повернутися до списку NIS об'єктів" + +#: ../lib/baseType.inc:48 +msgid "Back to account list" +msgstr "Повернутися до списку акаунтів" + +#: ../lib/types/zarafaAddressListType.inc:44 +msgid "Back to address list" +msgstr "Повернутися до списку адрес" + +#: ../lib/types/mailAlias.inc:44 ../lib/types/alias.inc:44 +msgid "Back to alias list" +msgstr "Повернутися до списку псевдонімів" + +#: ../lib/types/automountType.inc:35 +msgid "Back to automount list" +msgstr "Повернутися до списку автомонтування" + +#: ../lib/types/pykotaBillingCodeType.inc:44 +msgid "Back to billing code list" +msgstr "Повернутися до списку коду білінгу" + +#: ../lib/types/oracleContextType.inc:30 +msgid "Back to database list" +msgstr "Повернутися до списку баз даних" + +#: ../lib/types/smbDomain.inc:44 +msgid "Back to domain list" +msgstr "Повернутися до списку доменів" + +#: ../lib/types/asteriskExt.inc:47 +msgid "Back to extensions list" +msgstr "Повернутися до списку розширень" + +#: ../templates/lists/userlink.php:63 ../lib/types/gon.inc:44 +#: ../lib/types/zarafaDynamicGroupType.inc:44 ../lib/types/group.inc:45 +#: ../lib/types/netgroup.inc:44 +msgid "Back to group list" +msgstr "Повернутися до списку груп" + +#: ../lib/types/host.inc:44 +msgid "Back to host list" +msgstr "Повернутися до списку хостів" + +#: ../templates/delete.php:289 +msgid "Back to list" +msgstr "Повернутися до списку" + +#: ../templates/config/mainmanage.php:257 ../templates/config/index.php:79 +#: ../templates/config/index.php:133 ../templates/config/conflogin.php:117 +#: ../templates/config/conflogin.php:201 ../templates/config/mainlogin.php:124 +#: ../templates/config/mainlogin.php:178 +#: ../templates/selfService/selfServiceSP.php:139 +#: ../templates/selfService/adminLogin.php:114 +#: ../templates/selfService/adminLogin.php:191 +msgid "Back to login" +msgstr "Повернутися на початок" + +#: ../lib/types/ppolicyType.inc:30 +msgid "Back to policy list" +msgstr "Повернутися до списку політик" + +#: ../lib/types/pykotaPrinterType.inc:44 +msgid "Back to printer list" +msgstr "Повернутися до списку принтерів" + +#: ../templates/config/profmanage.php:188 +#: ../templates/config/profmanage.php:326 +#: ../templates/selfService/profManage.php:144 +#: ../templates/selfService/profManage.php:262 +msgid "Back to profile login" +msgstr "Повернутися назад" + +#: ../lib/types/gon.inc:49 ../lib/types/group.inc:50 +msgid "Back to role list" +msgstr "Повернутися до списку ролей" + +#: ../lib/types/kolabSharedFolderType.inc:44 +msgid "Back to shared folder list" +msgstr "Повернутися до списку відкритих каталогів" + +#: ../lib/types/sudo.inc:30 +msgid "Back to sudo role list" +msgstr "Повернутися до списку ролей sudo" + +#: ../lib/types/user.inc:44 +msgid "Back to user list" +msgstr "Повернутися до списку користувачів" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:64 +msgid "Back up" +msgstr "Резервне копіювання" + +#: ../templates/serverInfo.php:163 +msgid "Backends" +msgstr "Бекенди" + +#: ../lib/modules/passwordSelfReset.inc:88 +#: ../lib/modules/passwordSelfReset.inc:191 +#: ../lib/modules/passwordSelfReset.inc:201 +#: ../lib/modules/passwordSelfReset.inc:213 +#: ../lib/modules/passwordSelfReset.inc:220 +#: ../lib/modules/passwordSelfReset.inc:276 +#: ../lib/modules/passwordSelfReset.inc:387 +#: ../lib/modules/passwordSelfReset.inc:675 +msgid "Backup email" +msgstr "Резервне копіювання ел.пошти" + +#: ../lib/modules/passwordSelfReset.inc:89 +msgid "" +"Backup email address for password reset mails. Useful if user password " +"grants access to standard mailbox." +msgstr "" +"Резервне копіювання адреси ел.пошти для адрес по скиданню паролів. Корисно, " +"якщо пароль користувача надає доступ до стандартної поштової скриньки." + +#: ../lib/modules/sudoRole.inc:155 +msgid "Backup script" +msgstr "Скрипт резервного копіювання" + +#: ../lib/modules/sambaSamAccount.inc:567 +msgid "Baghdad, Riyadh, Moscow" +msgstr "Baghdad, Riyadh, Moscow" + +#: ../lib/types/pykotaBillingCodeType.inc:93 ../lib/modules/pykotaGroup.inc:62 +#: ../lib/modules/pykotaUser.inc:62 ../lib/modules/pykotaUser.inc:132 +#: ../lib/modules/pykotaUser.inc:170 ../lib/modules/pykotaUser.inc:241 +#: ../lib/modules/pykotaUser.inc:262 ../lib/modules/pykotaUser.inc:322 +#: ../lib/modules/pykotaUser.inc:365 ../lib/modules/pykotaUser.inc:900 +#: ../lib/modules/pykotaUser.inc:947 ../lib/modules/pykotaBillingCode.inc:85 +#: ../lib/modules/pykotaBillingCode.inc:117 +#: ../lib/modules/pykotaBillingCode.inc:143 +#: ../lib/modules/pykotaBillingCode.inc:263 +msgid "Balance" +msgstr "Баланс" + +#: ../lib/modules/pykotaUser.inc:281 +msgid "Balance (read-only)" +msgstr "Баланс (тільки читання)" + +#: ../lib/modules/pykotaUser.inc:136 ../lib/modules/pykotaUser.inc:247 +msgid "Balance comment" +msgstr "Баланс коментар" + +#: ../lib/modules/sambaSamAccount.inc:571 +msgid "Bangkok, Hanoi, Jakarta" +msgstr "Bangkok, Hanoi, Jakarta" + +#: ../lib/types/zarafaAddressListType.inc:93 +#: ../lib/types/zarafaDynamicGroupType.inc:94 +#: ../lib/modules/zarafaDynamicGroup.inc:87 +#: ../lib/modules/zarafaDynamicGroup.inc:101 +#: ../lib/modules/zarafaDynamicGroup.inc:152 +#: ../lib/modules/zarafaDynamicGroup.inc:170 +#: ../lib/modules/zarafaDynamicGroup.inc:198 +#: ../lib/modules/zarafaDynamicGroup.inc:231 +#: ../lib/modules/zarafaDynamicGroup.inc:449 +#: ../lib/modules/zarafaAddressList.inc:75 +#: ../lib/modules/zarafaAddressList.inc:89 +#: ../lib/modules/zarafaAddressList.inc:128 +#: ../lib/modules/zarafaAddressList.inc:144 +#: ../lib/modules/zarafaAddressList.inc:169 +#: ../lib/modules/zarafaAddressList.inc:198 +#: ../lib/modules/zarafaAddressList.inc:332 +msgid "Base" +msgstr "База" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:142 +#: ../templates/3rdParty/pla/htdocs/export_form.php:31 +msgid "Base (base dn only)" +msgstr "База (тільки базовий dn)" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:121 +#: ../templates/3rdParty/pla/lib/QueryRender.php:506 +#: ../templates/3rdParty/pla/htdocs/export_form.php:59 +msgid "Base DN" +msgstr "Базовий DN" + +#: ../templates/config/confmodules.php:212 ../help/help.inc:144 +msgid "Base module" +msgstr "Базовий модуль" + +#: ../templates/pdfedit/pdfpage.php:441 +msgid "Beginning" +msgstr "Початок" + +#: ../lib/modules/sambaSamAccount.inc:572 +msgid "Beijing, Perth, Singapore" +msgstr "Beijing, Perth, Singapore" + +#: ../lib/types/pykotaBillingCodeType.inc:91 +#: ../lib/modules/pykotaBillingCode.inc:77 +#: ../lib/modules/pykotaBillingCode.inc:115 +#: ../lib/modules/pykotaBillingCode.inc:127 +#: ../lib/modules/pykotaBillingCode.inc:129 +#: ../lib/modules/pykotaBillingCode.inc:141 +#: ../lib/modules/pykotaBillingCode.inc:261 +msgid "Billing code" +msgstr "Код оплати" + +#: ../lib/modules/pykotaBillingCode.inc:129 +#: ../lib/modules/pykotaBillingCode.inc:130 +msgid "Billing code already exists!" +msgstr "Такий код оплати вже існує!" + +#: ../lib/modules/pykotaBillingCode.inc:127 +#: ../lib/modules/pykotaBillingCode.inc:128 +msgid "" +"Billing code contains invalid characters. Valid characters are: a-z, A-Z, " +"0-9 and .-_ !" +msgstr "" +"Код оплати містить неприпустимі символи. Дозволяється: a-z, A-Z, 0-9 та .-_ !" + +#: ../lib/types/pykotaBillingCodeType.inc:163 +#, php-format +msgid "Billing code count: %s" +msgstr "Кількість кодів оплати: %s" + +#: ../lib/modules/pykotaBillingCode.inc:82 +msgid "Billing code description." +msgstr "Опис коду оплати." + +#: ../lib/modules/pykotaBillingCode.inc:78 +msgid "" +"Billing code name which should be created. Valid characters are: a-z, A-Z, " +"0-9 and .-_ ." +msgstr "" +"Назва коду оплати, яка має бути створена. Дозволяються символи: a-z, A-Z, " +"0-9 and .-_ ." + +#: ../lib/types/pykotaBillingCodeType.inc:53 +msgid "Billing codes" +msgstr "Коди оплат" + +#: ../templates/3rdParty/pla/lib/PageRender.php:644 +#: ../templates/3rdParty/pla/lib/PageRender.php:648 +msgid "Binary value" +msgstr "Бінарне значення" + +#: ../templates/serverInfo.php:286 ../templates/serverInfo.php:375 +msgid "Bind" +msgstr "Зв'язати" + +#: ../lib/types/bind.inc:39 +msgid "Bind DNS" +msgstr "Зв’язаний DNS" + +#: ../lib/types/bind.inc:48 +msgid "Bind DNS entries" +msgstr "Записи зв’язаного DNS" + +#: ../templates/config/confmain.php:444 +msgid "Bind password" +msgstr "Пароль для зв'язку" + +#: ../templates/config/confmain.php:442 +msgid "Bind user" +msgstr "Користувач для зв'язку" + +#: ../help/help.inc:128 +msgid "Bind user and password" +msgstr "Користувач та пароль зв'язку" + +#: ../lib/modules/quota.inc:53 ../lib/modules/systemQuotas.inc:101 +msgid "Block hard quota" +msgstr "Жорстка квота на використання місця" + +#: ../lib/modules/quota.inc:53 ../lib/modules/quota.inc:54 +#: ../lib/modules/systemQuotas.inc:101 ../lib/modules/systemQuotas.inc:102 +msgid "" +"Block hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Жорстка квота на використання місця має неприпустимі символи. Модна " +"використовувати тільки цілі числа." + +#: ../lib/modules/quota.inc:59 ../lib/modules/systemQuotas.inc:107 +msgid "Block quota" +msgstr "Квота на використання місця" + +#: ../lib/modules/quota.inc:51 ../lib/modules/systemQuotas.inc:99 +msgid "Block soft quota" +msgstr "М'яка квота на використання місця" + +#: ../lib/modules/quota.inc:51 ../lib/modules/quota.inc:52 +#: ../lib/modules/systemQuotas.inc:99 ../lib/modules/systemQuotas.inc:100 +msgid "" +"Block soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"М'яка квота на використання місця має неприпустимі символи. Модна " +"використовувати тільки натуральні числа." + +#: ../lib/modules/quota.inc:59 ../lib/modules/quota.inc:60 +#: ../lib/modules/systemQuotas.inc:107 ../lib/modules/systemQuotas.inc:108 +msgid "Block soft quota must be smaller than block hard quota." +msgstr "М'яка квота на використання місця повинна бути менше жорсткої квоти." + +#: ../lib/modules/qmailGroup.inc:72 ../lib/modules/qmailGroup.inc:143 +#: ../lib/modules/qmailGroup.inc:147 ../lib/modules/qmailGroup.inc:263 +#: ../lib/modules/qmailGroup.inc:375 ../lib/modules/qmailGroup.inc:431 +#: ../lib/modules/qmailGroup.inc:522 ../lib/modules/qmailGroup.inc:1059 +msgid "Bounce admin email" +msgstr "Не приймати пошту адміністратора" + +#: ../lib/modules/sambaSamAccount.inc:561 +msgid "Brazil, Buenos Aires" +msgstr "Brazil, Buenos Aires" + +#: ../templates/3rdParty/pla/htdocs/copy.php:53 +msgid "Building snapshot of tree to copy" +msgstr "Побудова знімку дерева для копіювання" + +#: ../lib/modules/sambaGroupMapping.inc:73 +msgid "Builtin group" +msgstr "Вбудована група" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:63 +msgid "Bulk edit the following DNs" +msgstr "Групове редагування наступних DN" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:48 +msgid "Bulk update the following DNs" +msgstr "Групове оновлення наступних DN" + +#: ../lib/modules/inetOrgPerson.inc:103 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:232 ../lib/modules/inetOrgPerson.inc:369 +#: ../lib/modules/inetOrgPerson.inc:599 ../lib/modules/inetOrgPerson.inc:764 +#: ../lib/modules/inetOrgPerson.inc:768 ../lib/modules/inetOrgPerson.inc:1473 +#: ../lib/modules/inetOrgPerson.inc:1476 ../lib/modules/inetOrgPerson.inc:1907 +#: ../lib/modules/inetOrgPerson.inc:2632 ../lib/modules/inetOrgPerson.inc:3545 +#: ../lib/modules/inetOrgPerson.inc:3586 +msgid "Business category" +msgstr "Бізнес-категорія" + +#: ../lib/modules/inetOrgPerson.inc:765 ../lib/modules/inetOrgPerson.inc:769 +msgid "Business category (e.g. Administration, IT-Services, Manangement, ...)" +msgstr "" +"Бізнес-категорія (наприклад, Адміністратори, IT-підтримка, Менеджери, ...)" + +#: ../help/help.inc:173 +msgid "" +"By default LAM will show all accounts that match the selected account " +"modules." +msgstr "" +"Типово LAM буде показувати всі акаунти, які відповідають вибраним модулям " +"акаунта." + +#: ../help/help.inc:243 +msgid "" +"By default all modifications are done as the user that authenticated in self " +"service. If active then LAM will use the connection user for all LDAP " +"modifications and searches." +msgstr "" +"Типово всі модифікації застосовуються, коли користувач аутентифікувався в " +"сервісі самообслуговування. Якщо активно, то LAM буде викорситовувати " +"з’єднання користувача для всіх LDAP модифікацій та результатів." + +#: ../lib/modules/selfRegistration.inc:103 +msgid "" +"By default all users are created in the self service LDAP suffix. You can " +"enter an alternative suffix here." +msgstr "" +"Типово всі користувачі, які створюватимуться через сервіс " +"самообслуговування, будуть з цим суфіксом LDAP. ТУт ви можете вказати " +"альтернативний суфікс." + +#: ../lib/modules/customScripts.inc:89 +msgid "" +"By default, LAM will show the executed command along with any output of it. " +"If you want to hide the command and only show the output then activate this " +"option." +msgstr "" +"Типово, LAM покаже виконувану команду разом з її виводом. Якщо ви хочете " +"приховати команду та показувати тільки її вивід, то активуйте цю опцію." + +#: ../templates/serverInfo.php:253 ../templates/serverInfo.php:259 +msgid "Bytes sent" +msgstr "Байт надіслано" + +#: ../lib/modules/bindDLZ.inc:261 ../lib/modules/bindDLZ.inc:267 +#: ../lib/modules/bindDLZ.inc:474 ../lib/modules/bindDLZ.inc:490 +msgid "CNAME record" +msgstr "Запис CNAME" + +#: ../lib/modules/bindDLZ.inc:432 +msgid "CNAME records" +msgstr "Записи CNAME" + +#: ../templates/masscreate.php:253 +msgid "CSV file" +msgstr "CSV файл" + +#: ../help/help.inc:107 +msgid "Cache timeout" +msgstr "Тайм-аут кешу" + +#: ../lib/modules/asteriskAccount.inc:135 +#: ../lib/modules/asteriskAccount.inc:272 +#: ../lib/modules/asteriskAccount.inc:355 +#: ../lib/modules/asteriskAccount.inc:615 +#: ../lib/modules/asteriskAccount.inc:988 +#: ../lib/modules/asteriskAccount.inc:1245 +msgid "Call groups" +msgstr "Групи викликів" + +#: ../lib/modules/asteriskAccount.inc:103 +#: ../lib/modules/asteriskAccount.inc:266 +#: ../lib/modules/asteriskAccount.inc:304 +#: ../lib/modules/asteriskAccount.inc:589 +#: ../lib/modules/asteriskAccount.inc:982 +msgid "Caller ID" +msgstr "Caller ID" + +#: ../lib/modules/sambaSamAccount.inc:306 +#: ../lib/modules/sambaSamAccount.inc:309 +#: ../lib/modules/sambaSamAccount.inc:312 +#: ../lib/modules/sambaSamAccount.inc:318 ../lib/modules/posixAccount.inc:535 +#: ../lib/modules/organizationalRoleUser.inc:61 +#: ../lib/modules/windowsUser.inc:205 ../lib/modules/windowsUser.inc:210 +#: ../lib/modules/sambaGroupMapping.inc:159 +#: ../lib/modules/shadowAccount.inc:178 ../lib/modules/shadowAccount.inc:182 +#: ../lib/modules/shadowAccount.inc:186 ../lib/modules/shadowAccount.inc:190 +#: ../lib/modules/groupOfNamesUser.inc:61 +msgid "Can be left empty." +msgstr "Можна залишити порожнім" + +#: ../lib/modules/asteriskAccount.inc:223 +#: ../lib/modules/asteriskAccount.inc:294 +#: ../lib/modules/asteriskAccount.inc:515 +#: ../lib/modules/asteriskAccount.inc:741 +#: ../lib/modules/asteriskAccount.inc:1010 +#: ../lib/modules/asteriskAccount.inc:1289 +msgid "Can call forward" +msgstr "Може переадресувати дзвінок" + +#: ../templates/lists/changePassword.php:340 +#: ../templates/lists/changePassword.php:377 +#: ../templates/lists/changePassword.php:418 +#: ../templates/lists/changePassword.php:449 ../templates/ou_edit.php:121 +#: ../templates/config/profmanage.php:254 +#: ../templates/config/profmanage.php:266 +#: ../templates/config/profmanage.php:275 +#: ../templates/config/profmanage.php:293 +#: ../templates/config/profmanage.php:304 +#: ../templates/config/mainmanage.php:470 +#: ../templates/config/confmodules.php:227 +#: ../templates/config/confmain.php:471 +#: ../templates/config/moduleSettings.php:241 +#: ../templates/config/conftypes.php:341 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminMain.php:748 +#: ../templates/pdfedit/pdfpage.php:638 ../templates/pdfedit/pdfmain.php:210 +#: ../templates/pdfedit/pdfmain.php:217 ../templates/pdfedit/pdfmain.php:223 +#: ../templates/delete.php:121 ../templates/profedit/profilepage.php:241 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/profedit/profilemain.php:205 +#: ../templates/profedit/profilemain.php:211 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:197 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:83 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:136 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:121 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:119 +#: ../templates/initsuff.php:191 ../lib/types/automountType.inc:234 +#: ../lib/types/user.inc:303 ../lib/types/bind.inc:175 +#: ../lib/modules/kolabGroup.inc:294 ../lib/modules/pykotaPrinter.inc:431 +#: ../lib/modules/mitKerberos.inc:690 ../lib/modules/qmailUser.inc:921 +#: ../lib/modules/zarafaContact.inc:391 ../lib/modules/windowsHost.inc:226 +#: ../lib/modules/zarafaGroup.inc:451 ../lib/modules/device.inc:254 +#: ../lib/modules/sambaSamAccount.inc:1432 +#: ../lib/modules/sambaSamAccount.inc:1481 +#: ../lib/modules/sambaSamAccount.inc:1567 ../lib/modules/zarafaUser.inc:875 +#: ../lib/modules/kolabUser.inc:520 ../lib/modules/sambaGroupMapping.inc:490 +#: ../lib/modules/shadowAccount.inc:478 ../lib/modules/nisnetgroup.inc:490 +#: ../lib/modules/inetOrgPerson.inc:1710 ../lib/modules/freeRadius.inc:431 +#: ../lib/modules/kolabSharedFolder.inc:434 +#: ../lib/modules/customFields.inc:1084 ../lib/modules/aliasEntry.inc:147 +#: ../lib/modules/aliasEntry.inc:167 ../lib/modules/qmailGroup.inc:823 +#: ../lib/modules/organizationalRole.inc:318 ../lib/modules/fixed_ip.inc:587 +#: ../lib/modules/heimdalKerberos.inc:600 ../lib/modules/windowsGroup.inc:505 +#: ../lib/modules/windowsGroup.inc:557 ../lib/modules/groupOfNames.inc:375 +#: ../lib/modules/groupOfNames.inc:530 ../lib/modules/nisMailAlias.inc:385 +#: ../lib/lists.inc:711 ../lib/lists.inc:792 ../lib/modules.inc:1222 +msgid "Cancel" +msgstr "Скасувати" + +#: ../templates/login.php:569 ../templates/login.php:627 +#: ../templates/login.php:632 +#: ../templates/selfService/selfServiceLogin.php:141 +#: ../templates/selfService/selfServiceLogin.php:190 +#: ../templates/selfService/selfServiceLogin.php:195 +#: ../templates/selfService/selfServiceMain.php:168 +#: ../templates/selfService/selfServiceMain.php:189 +#: ../lib/modules/selfRegistration.inc:699 +msgid "Cannot connect to specified LDAP server. Please try again." +msgstr "" +"Не вдається підключитися до вибраного LDAP серверу. Будь ласка, спробуйте " +"же раз." + +#: ../templates/login.php:310 ../lib/config.inc:1641 +msgid "Cannot open config file!" +msgstr "Не вдається відкрити конфігураційний файл!" + +#: ../lib/modules/imapAccess.inc:187 +msgid "Cannot update quota." +msgstr "Не вдається оновити квоту." + +#: ../lib/config.inc:1653 ../lib/config.inc:1661 +msgid "" +"Cannot write certificate file. Please check the permissions of config/" +"serverCerts.pem." +msgstr "" +"Не вдається записати файл сертифікату. Будь ласка, перевірте права доступу " +"до config/serverCerts.pem." + +#: ../lib/modules/zarafaUser.inc:120 ../lib/modules/zarafaUser.inc:247 +#: ../lib/modules/zarafaUser.inc:364 ../lib/modules/zarafaUser.inc:415 +#: ../lib/modules/zarafaUser.inc:545 ../lib/modules/zarafaUser.inc:1232 +#: ../lib/modules/zarafaUser.inc:1799 +msgid "Capacity" +msgstr "Ємність" + +#: ../templates/selfService/adminMain.php:528 +msgid "Captions and labels" +msgstr "Заголовки та підписи" + +#: ../lib/modules/inetOrgPerson.inc:160 ../lib/modules/inetOrgPerson.inc:523 +#: ../lib/modules/inetOrgPerson.inc:593 ../lib/modules/inetOrgPerson.inc:788 +#: ../lib/modules/inetOrgPerson.inc:1446 ../lib/modules/inetOrgPerson.inc:1449 +#: ../lib/modules/inetOrgPerson.inc:1909 ../lib/modules/inetOrgPerson.inc:2610 +#: ../lib/modules/inetOrgPerson.inc:3541 ../lib/modules/inetOrgPerson.inc:3585 +msgid "Car license" +msgstr "Водійське посвідчення" + +#: ../lib/modules/sambaSamAccount.inc:565 +msgid "Central Europe Time, Paris, Berlin" +msgstr "Central Europe Time, Paris, Berlin" + +#: ../lib/modules/sambaSamAccount.inc:558 +msgid "Central Time (US & Canada), Mexico City" +msgstr "Central Time (US & Canada), Mexico City" + +#: ../templates/selfService/adminMain.php:546 +#: ../lib/modules/mitKerberos.inc:377 ../lib/modules/mitKerberos.inc:388 +#: ../lib/modules/mitKerberos.inc:686 ../lib/modules/qmailUser.inc:661 +#: ../lib/modules/qmailUser.inc:917 ../lib/modules/zarafaContact.inc:229 +#: ../lib/modules/windowsHost.inc:155 ../lib/modules/windowsHost.inc:225 +#: ../lib/modules/zarafaGroup.inc:266 ../lib/modules/device.inc:181 +#: ../lib/modules/sambaSamAccount.inc:1192 +#: ../lib/modules/sambaSamAccount.inc:1477 ../lib/modules/zarafaUser.inc:466 +#: ../lib/modules/zarafaUser.inc:557 ../lib/modules/shadowAccount.inc:355 +#: ../lib/modules/shadowAccount.inc:474 ../lib/modules/inetOrgPerson.inc:1533 +#: ../lib/modules/freeRadius.inc:301 ../lib/modules/freeRadius.inc:427 +#: ../lib/modules/asteriskExtension.inc:236 ../lib/modules/aliasEntry.inc:100 +#: ../lib/modules/qmailGroup.inc:572 ../lib/modules/organizationalRole.inc:194 +#: ../lib/modules/passwordSelfReset.inc:271 +#: ../lib/modules/heimdalKerberos.inc:324 +#: ../lib/modules/heimdalKerberos.inc:335 +#: ../lib/modules/heimdalKerberos.inc:596 ../lib/modules/windowsGroup.inc:361 +#: ../lib/modules/windowsGroup.inc:504 ../lib/modules/groupOfNames.inc:241 +#: ../lib/modules/groupOfNames.inc:248 +msgid "Change" +msgstr "Змінити" + +#: ../templates/lists/changePassword.php:223 +msgid "Change Asterisk password" +msgstr "Змінити пароль Asterisk" + +#: ../templates/lists/changePassword.php:235 +msgid "Change Asterisk voicemail password" +msgstr "Змінити пароль скриньки голосової пошти Asterisk" + +#: ../lib/modules/posixGroup.inc:218 ../lib/modules/posixGroup.inc:512 +msgid "Change GID number of users and hosts" +msgstr "Змінити номер GID користувачів та комп'ютерів" + +#: ../templates/lists/changePassword.php:226 +#: ../templates/lists/changePassword.php:229 +msgid "Change Kerberos password" +msgstr "Змінити пароль Kerberos" + +#: ../templates/lists/changePassword.php:216 +msgid "Change Samba LM password" +msgstr "Змінити пароль Samba LM" + +#: ../templates/lists/changePassword.php:214 +msgid "Change Samba NT password" +msgstr "Змінити пароль Samba NT" + +#: ../templates/lists/changePassword.php:208 +msgid "Change Unix password" +msgstr "Змінити пароль Unix" + +#: ../templates/lists/changePassword.php:232 +msgid "Change Windows password" +msgstr "Змінити пароль Windows" + +#: ../lib/types/user.inc:303 +msgid "Change account status" +msgstr "Змінити статус акаунта" + +#: ../templates/config/profmanage.php:300 +#: ../templates/config/profmanage.php:303 ../help/help.inc:138 +msgid "Change default profile" +msgstr "Змінити типовий профіль" + +#: ../templates/selfService/adminMain.php:607 +msgid "Change field label." +msgstr "Змінити мітку поля." + +#: ../lib/lists.inc:792 +msgid "Change list settings" +msgstr "Змінити список налаштувань" + +#: ../templates/config/mainmanage.php:454 ../help/help.inc:140 +msgid "Change master password" +msgstr "Змінити майстер пароль" + +#: ../templates/lists/changePassword.php:211 +#: ../templates/lists/changePassword.php:256 +#: ../templates/lists/changePassword.php:337 +#: ../templates/lists/changePassword.php:339 +#: ../templates/lists/changePassword.php:374 +#: ../templates/lists/changePassword.php:376 ../lib/types/user.inc:669 +#: ../help/help.inc:105 +msgid "Change password" +msgstr "Змінити пароль" + +#: ../templates/lists/changePassword.php:263 +#: ../templates/lists/changePassword.php:264 +msgid "Change password now?" +msgstr "Змінити пароль зараз?" + +#: ../templates/config/confmain.php:261 +msgid "Change passwords" +msgstr "Змінення паролів" + +#: ../lib/lists.inc:793 +msgid "Change settings" +msgstr "Зміна налаштувань" + +#: ../lib/modules/posixAccount.inc:1225 +msgid "Changed value because only ASCII characters are allowed." +msgstr "Змінювати значення дозволяється тільки ASCII символами." + +#: ../lib/modules/passwordSelfReset.inc:185 +msgid "Charlie" +msgstr "Charlie" + +#: ../lib/modules/posixAccount.inc:1485 +msgid "Check home directories" +msgstr "Перевірити домашні директорії" + +#: ../templates/tests/index.php:54 ../lib/tools/tests.inc:112 +msgid "Check if quotas and homedirectories can be managed." +msgstr "Перевірити, чи можна управляти домашніми каталогами та квотами." + +#: ../templates/tests/index.php:60 ../lib/tools/tests.inc:118 +msgid "" +"Check if the LDAP schema fits the requirements of the selected account " +"modules." +msgstr "Перевірити, чи відповідає схема LDAP вимогам вибраних модулів акаунта." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2401 +msgid "Check password" +msgstr "Перевірити пароль" + +#: ../templates/tests/lamdaemonTest.php:87 +msgid "Check quotas" +msgstr "Перевірити квоти" + +#: ../templates/masscreate.php:247 +msgid "" +"Check your input carefully. LAM will only do some basic checks on the upload " +"data." +msgstr "" +"Ретельно перевірте введені дані. LAM робить тільки основні перевірки " +"завантажених даних." + +#: ../lib/modules/customFields.inc:2735 +msgid "Checkbox" +msgstr "Чекбокс" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1224 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1229 +msgid "Children" +msgstr "Діти" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:23 +msgid "Choose entry" +msgstr "Виберіть запис" + +#: ../lib/modules/imapAccess.inc:90 +msgid "" +"Choose the way how to provide the IMAP admin password. You can use the same " +"password as for the LAM login or LAM will ask you for a password when it is " +"required." +msgstr "" +"Виберіть спосіб, як надати пароль адміністратора IMAP. Ви можете використати " +"той же пароль, як для входу в LAM, або LAM спитає про пароль, коли він буде " +"потрібен." + +#: ../lib/modules/puppetClient.inc:92 ../lib/modules/puppetClient.inc:96 +#: ../lib/modules/puppetClient.inc:140 ../lib/modules/puppetClient.inc:155 +#: ../lib/modules/puppetClient.inc:168 ../lib/modules/puppetClient.inc:271 +#: ../lib/modules/puppetClient.inc:433 +msgid "Classes" +msgstr "Класи" + +#: ../lib/lists.inc:384 +msgid "Clear filter" +msgstr "Очистити фільтр" + +#: ../lib/config.inc:224 +msgid "Click here if you are not directed to the next page." +msgstr "Натисніть тут, якщо вас було переміщено на наступну сторінку." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2349 +msgid "Click to popup a dialog to select a date graphically" +msgstr "Клацніть для з'явлення діалогу з графічним вибором дати" + +#: ../templates/3rdParty/pla/lib/functions.php:2293 +msgid "Click to popup a dialog to select an entry (DN) graphically" +msgstr "Клацніть для з'явлення діалогу з графічним вибором запису (DN)" + +#: ../lib/types/user.inc:619 +msgid "Click to switch between thumbnail and original size." +msgstr "" +"Клацніть для переключення між зменшеним та оригінальним розміром зображення" + +#: ../lib/modules/sambaSamAccount.inc:241 +#: ../lib/modules/sambaSamAccount.inc:378 +#: ../lib/modules/sambaSamAccount.inc:1535 +#: ../lib/modules/sambaSamAccount.inc:1943 +msgid "Client printer is default" +msgstr "Принтер клієнта є принтером по замовчуванню" + +#: ../templates/schema/schema.php:199 +msgid "Collective" +msgstr "Колективний" + +#: ../lib/modules/pykotaPrinter.inc:155 +msgid "Color laser printer" +msgstr "Кольоровий лазерний принтер" + +#: ../templates/masscreate.php:284 ../lib/modules/customFields.inc:128 +#: ../lib/modules/customFields.inc:2601 +msgid "Columns" +msgstr "Колонки" + +#: ../lib/modules/sambaSamAccount.inc:318 +msgid "" +"Comma separated list of Samba workstations the user is allowed to login. " +"Empty means every workstation." +msgstr "" +"Список комп'ютерів з Samba (розділених комами) на які користувачам дозволено " +"входити. Порожньо - будь-який комп'ютер." + +#: ../lib/modules/authorizedServiceObject.inc:86 +msgid "Comma separated list of services (e.g. sshd, imap, ftp)." +msgstr "Список сервісів, розділений комами (наприклад, sshd, imap, ftp)." + +#: ../lib/types/sudo.inc:80 ../lib/modules/customScripts.inc:169 +msgid "Command" +msgstr "Команда" + +#: ../lib/modules/sudoRole.inc:82 ../lib/modules/sudoRole.inc:108 +#: ../lib/modules/sudoRole.inc:171 ../lib/modules/sudoRole.inc:218 +#: ../lib/modules/sudoRole.inc:230 ../lib/modules/sudoRole.inc:370 +#: ../lib/modules/sudoRole.inc:808 +msgid "Commands" +msgstr "Команди" + +#: ../lib/modules/pykotaUser.inc:375 ../lib/modules/pykotaUser.inc:599 +#: ../lib/modules/pykotaUser.inc:907 ../lib/modules/pykotaUser.inc:967 +msgid "Comment" +msgstr "Коментар" + +#: ../lib/modules/pykotaUser.inc:137 +msgid "Comment for initial balance." +msgstr "Коментар для початкового балансу." + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:117 +msgid "Commit" +msgstr "Підтвердити" + +#: ../lib/modules/posixAccount.inc:438 +msgid "Common examples are \"@givenname@%sn%\" or \"%givenname%.%sn%\"." +msgstr "Типові приклади: \"@givenname@%sn%\" або \"%givenname%.%sn%\"." + +#: ../templates/config/mainmanage.php:362 ../lib/types/user.inc:94 +#: ../lib/modules/pykotaGroup.inc:113 ../lib/modules/pykotaGroup.inc:157 +#: ../lib/modules/pykotaGroup.inc:185 ../lib/modules/pykotaGroup.inc:466 +#: ../lib/modules/posixAccount.inc:129 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:348 ../lib/modules/posixAccount.inc:421 +#: ../lib/modules/posixAccount.inc:538 ../lib/modules/posixAccount.inc:560 +#: ../lib/modules/posixAccount.inc:1429 ../lib/modules/posixAccount.inc:1851 +#: ../lib/modules/posixAccount.inc:2552 ../lib/modules/windowsUser.inc:102 +#: ../lib/modules/windowsUser.inc:290 ../lib/modules/windowsUser.inc:473 +#: ../lib/modules/windowsUser.inc:499 ../lib/modules/windowsUser.inc:591 +#: ../lib/modules/windowsUser.inc:702 ../lib/modules/windowsUser.inc:1586 +#: ../lib/modules/pykotaUser.inc:108 ../lib/modules/pykotaUser.inc:199 +#: ../lib/modules/pykotaUser.inc:271 ../lib/modules/pykotaUser.inc:405 +#: ../lib/modules/pykotaUser.inc:888 ../lib/modules/inetOrgPerson.inc:93 +#: ../lib/modules/inetOrgPerson.inc:626 ../lib/modules/inetOrgPerson.inc:740 +#: ../lib/modules/inetOrgPerson.inc:1197 ../lib/modules/inetOrgPerson.inc:1200 +#: ../lib/modules/inetOrgPerson.inc:1904 ../lib/modules/inetOrgPerson.inc:2035 +#: ../lib/modules/inetOrgPerson.inc:3595 +#: ../lib/modules/asteriskExtension.inc:118 +msgid "Common name" +msgstr "Загальне ім'я" + +#: ../lib/modules/asteriskExtension.inc:119 +msgid "Common name of the Asterisk extension." +msgstr "CN розширення Asterisk" + +#: ../templates/serverInfo.php:335 ../templates/serverInfo.php:396 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1172 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:60 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:39 +msgid "Compare" +msgstr "Порівняти" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:28 +#, php-format +msgid "Compare another DN with %s" +msgstr "Порівняти інший DN з %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1169 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +msgid "Compare this DN with another" +msgstr "Порівняти цей DN з іншим" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +msgid "Compare with another entry" +msgstr "Порівняти з іншим записом" + +#: ../templates/3rdParty/pla/htdocs/compare.php:42 +msgid "Comparing the following DNs" +msgstr "Порівнюючи з іншим DN" + +#: ../templates/serverInfo.php:284 ../templates/serverInfo.php:371 +msgid "Completed" +msgstr "Закінчено" + +#: ../templates/serverInfo.php:114 +msgid "Config suffix" +msgstr "Суфікс конфігурації" + +#: ../templates/config/index.php:50 +msgid "Configuration overview" +msgstr "Огляд конфігурації" + +#: ../lib/modules/qmailUser.inc:126 ../lib/modules/qmailUser.inc:179 +#: ../lib/modules/qmailUser.inc:259 ../lib/modules/qmailUser.inc:392 +#: ../lib/modules/qmailUser.inc:439 ../lib/modules/qmailUser.inc:619 +#: ../lib/modules/qmailUser.inc:1178 +msgid "Configuration type" +msgstr "Тип конфігурації" + +#: ../lib/modules/qmailGroup.inc:96 ../lib/modules/qmailGroup.inc:228 +#: ../lib/modules/qmailGroup.inc:361 ../lib/modules/qmailGroup.inc:411 +#: ../lib/modules/qmailGroup.inc:623 ../lib/modules/qmailGroup.inc:1081 +msgid "Confirm sender" +msgstr "Підтвердіть відправника" + +#: ../lib/modules/selfRegistration.inc:228 +msgid "Confirmation mail settings" +msgstr "Налаштування електронної пошти для листів з підтвердженням" + +#: ../lib/modules/qmailGroup.inc:74 ../lib/modules/qmailGroup.inc:103 +#: ../lib/modules/qmailGroup.inc:152 ../lib/modules/qmailGroup.inc:271 +#: ../lib/modules/qmailGroup.inc:378 ../lib/modules/qmailGroup.inc:591 +#: ../lib/modules/qmailGroup.inc:1060 +msgid "Confirmation text" +msgstr "Текст підтвердження" + +#: ../lib/modules/qmailGroup.inc:153 +msgid "" +"Confirmation text that is used if sender-confirmation is used. The usual " +"%HEADER% magic of qmail-reply etc. can be used here." +msgstr "" +"Текст підтвердження, якщо використовується підтвердження відправника. Тут " +"може бути використано звичайний %HEADER% макрос qmail-reply та ін." + +#: ../templates/config/confmodules.php:394 +msgid "Conflicting module:" +msgstr "Конфліктний модуль:" + +#: ../lib/modules/sambaSamAccount.inc:239 +#: ../lib/modules/sambaSamAccount.inc:372 +#: ../lib/modules/sambaSamAccount.inc:1531 +#: ../lib/modules/sambaSamAccount.inc:1933 +msgid "Connect client drives" +msgstr "Підключення дисків клієнта" + +#: ../lib/modules/sambaSamAccount.inc:240 +#: ../lib/modules/sambaSamAccount.inc:375 +#: ../lib/modules/sambaSamAccount.inc:1533 +#: ../lib/modules/sambaSamAccount.inc:1938 +msgid "Connect client printers" +msgstr "Підключення принтерів клієнта" + +#: ../templates/serverInfo.php:230 +msgid "Connection statistics" +msgstr "Статистика з'єднання" + +#: ../lib/types/oracleContextType.inc:78 ../lib/modules/oracleService.inc:65 +#: ../lib/modules/oracleService.inc:85 ../lib/modules/oracleService.inc:99 +#: ../lib/modules/oracleService.inc:123 ../lib/modules/oracleService.inc:171 +msgid "Connection string" +msgstr "Рядок з'єднання" + +#: ../lib/modules/sambaSamAccount.inc:236 +#: ../lib/modules/sambaSamAccount.inc:1519 +#: ../lib/modules/sambaSamAccount.inc:1926 +msgid "Connection time limit" +msgstr "Час скидання підключення" + +#: ../lib/modules/bindDLZ.inc:225 +msgid "Contact address for this zone (e.g. \"root.example.com.\")." +msgstr "Контактна адреса для цієї зони (наприклад, \"root.example.com.\")" + +#: ../lib/modules/windowsUser.inc:715 ../lib/modules/inetOrgPerson.inc:1377 +msgid "Contact data" +msgstr "Контактні дані" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:721 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1301 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +msgid "Container" +msgstr "Контейнер" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1458 +msgid "Container and object classes" +msgstr "Класи контейнера та об'єкта" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:27 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:88 +#: ../templates/3rdParty/pla/htdocs/copy.php:108 +msgid "Copy" +msgstr "Копіювати" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:32 +#, php-format +msgid "Copy %s to a new object." +msgstr "Копіювати %s до нового об'єкту." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1098 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1102 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1103 +msgid "Copy or move this entry" +msgstr "Копіювати або перемістити цей запис" + +#: ../templates/3rdParty/pla/htdocs/copy.php:130 +#, php-format +msgid "Copy successful. DN %s has been created." +msgstr "Копіювання завершено. DN %s створено." + +#: ../templates/3rdParty/pla/htdocs/copy.php:48 +msgid "Copying" +msgstr "Копіювання" + +#: ../templates/3rdParty/pla/htdocs/import.php:37 +msgid "Could not add object" +msgstr "Не вдається додати об'єкт" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:370 +msgid "Could not add the object to the LDAP server." +msgstr "Не вдається додати об'єкт до LDAP сервера." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:30 +msgid "Could not delete attribute value." +msgstr "Не вдається видалити значення атрибута." + +#: ../templates/3rdParty/pla/htdocs/import.php:38 +msgid "Could not delete object" +msgstr "Не вдається видалити об'єкт" + +#: ../templates/3rdParty/pla/htdocs/delete.php:37 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:47 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:73 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:90 +msgid "Could not delete the entry." +msgstr "Не вдається видалити запис." + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:37 +#, php-format +msgid "Could not fetch binary data from LDAP server for attribute [%s]." +msgstr "Не вдається отримати двійкові дані з LDAP сервера для атрибуту [%s]." + +#: ../templates/3rdParty/pla/lib/functions.php:1946 +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:60 +#, php-format +msgid "Could not fetch jpeg data from LDAP server for attribute [%s]." +msgstr "Не вдається отримати дані jpeg від LDAP сервера для атрибуту [%s]." + +#: ../templates/3rdParty/pla/htdocs/import.php:41 +msgid "Could not modify object" +msgstr "Не вдається змінити об'єкт" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:528 +msgid "Could not perform ldap_modify operation." +msgstr "Не вдається виконати операцію ldap_modify." + +#: ../templates/config/profmanage.php:100 +#: ../templates/selfService/profManage.php:74 +msgid "Could not rename file!" +msgstr "Не вдається перейменувати файл!" + +#: ../templates/3rdParty/pla/htdocs/import.php:39 +#: ../templates/3rdParty/pla/htdocs/import.php:40 +#: ../templates/3rdParty/pla/htdocs/rename.php:60 +msgid "Could not rename the entry." +msgstr "Не вдається перейменувати запис." + +#: ../templates/pdfedit/pdfpage.php:117 +msgid "Could not save PDF structure, access denied." +msgstr "Не вдається зберегти PDF структуру, доступ заборонено." + +#: ../templates/pdfedit/pdfmain.php:182 +#: ../templates/profedit/profilemain.php:168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1185 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1189 +#: ../templates/initsuff.php:190 ../lib/modules/nisMailAliasUser.inc:366 +#: ../lib/modules/sambaSamAccount.inc:1620 +#: ../lib/modules/posixAccount.inc:1695 +msgid "Create" +msgstr "Створити" + +#: ../lib/lists.inc:500 ../lib/lists.inc:686 ../lib/modules.inc:1341 +#: ../help/help.inc:200 +msgid "Create PDF file" +msgstr "Створити PDF файл" + +#: ../templates/massDoUpload.php:202 ../templates/masscreate.php:264 +msgid "Create PDF files" +msgstr "Створити PDF файли" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1186 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1190 +msgid "Create a child entry" +msgstr "Створити дочірній запис" + +#: ../templates/pdfedit/pdfmain.php:175 +msgid "Create a new PDF structure" +msgstr "Створити нову PDF структуру" + +#: ../templates/profedit/profilemain.php:156 +msgid "Create a new profile" +msgstr "Створити новий профіль" + +#: ../lib/types/dhcp.inc:46 +msgid "Create another DHCP entry" +msgstr "Створити ще один DHCP запис" + +#: ../lib/types/bind.inc:29 +msgid "Create another DNS entry" +msgstr "Створити новий запис DNS" + +#: ../lib/types/nisObjectType.inc:29 +msgid "Create another NIS object" +msgstr "Створити ще один NIS об'єкт" + +#: ../lib/baseType.inc:47 +msgid "Create another account" +msgstr "Створити ще один акаунт" + +#: ../lib/types/zarafaAddressListType.inc:43 +msgid "Create another address list" +msgstr "Створити ще один список адрес" + +#: ../lib/types/mailAlias.inc:43 ../lib/types/alias.inc:43 +msgid "Create another alias" +msgstr "Створити ще один псевдонім" + +#: ../lib/types/automountType.inc:34 +msgid "Create another automount entry" +msgstr "Створити ще один запис автомонтування" + +#: ../lib/types/pykotaBillingCodeType.inc:43 +msgid "Create another billing code" +msgstr "Створити ще один код оплати" + +#: ../lib/types/oracleContextType.inc:29 +msgid "Create another database entry" +msgstr "Створити ще один запис" + +#: ../lib/types/smbDomain.inc:43 +msgid "Create another domain" +msgstr "Створити ще один домен" + +#: ../templates/3rdParty/pla/htdocs/create.php:100 +msgid "Create another entry" +msgstr "Створити ще один запис" + +#: ../lib/types/asteriskExt.inc:46 +msgid "Create another extension" +msgstr "Створити ще одне розширення" + +#: ../lib/types/gon.inc:43 ../lib/types/zarafaDynamicGroupType.inc:43 +#: ../lib/types/group.inc:44 ../lib/types/netgroup.inc:43 +msgid "Create another group" +msgstr "Створити ще одну групу" + +#: ../lib/types/host.inc:43 +msgid "Create another host" +msgstr "Створити ще один хост" + +#: ../lib/types/ppolicyType.inc:29 +msgid "Create another policy" +msgstr "Створити ще одну політику" + +#: ../lib/types/pykotaPrinterType.inc:43 +msgid "Create another printer" +msgstr "Створити ще один принтер" + +#: ../lib/types/gon.inc:48 ../lib/types/group.inc:49 +msgid "Create another role" +msgstr "Створити ще одну роль" + +#: ../lib/types/kolabSharedFolderType.inc:43 +msgid "Create another shared folder" +msgstr "Створити ще один відкритий каталог" + +#: ../lib/types/sudo.inc:29 +msgid "Create another sudo role" +msgstr "Створити ще одну роль sudo" + +#: ../lib/types/user.inc:43 +msgid "Create another user" +msgstr "Створити ще одного користувача" + +#: ../lib/lists.inc:691 +msgid "Create for" +msgstr "Створити для" + +#: ../lib/modules/posixAccount.inc:317 ../lib/modules/posixAccount.inc:1471 +#: ../lib/modules/posixAccount.inc:1760 +msgid "Create home directory" +msgstr "Створити домашню директорію" + +#: ../lib/modules/imapAccess.inc:263 +msgid "Create mailbox" +msgstr "Створити поштову скриньку" + +#: ../lib/modules/nisMailAliasUser.inc:359 +msgid "Create new alias" +msgstr "Створити новий псевдонім" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:278 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:281 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:283 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:506 +msgid "Create new entry here" +msgstr "Створити новий запис тут" + +#: ../lib/modules/customFields.inc:72 ../lib/modules/customFields.inc:519 +#: ../lib/modules/customFields.inc:532 +msgid "Create new group" +msgstr "Створити нову групу" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:698 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1541 +#: ../templates/3rdParty/pla/htdocs/create.php:84 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:52 +msgid "Create object" +msgstr "Створити об'єкт" + +#: ../lib/modules/generalInformation.inc:76 +msgid "Created by" +msgstr "Створено" + +#: ../lib/types/automountType.inc:273 +msgid "Created new automount map." +msgstr "Створено нову карту автомонтування." + +#: ../templates/config/profmanage.php:77 +#: ../templates/selfService/profManage.php:55 +msgid "Created new profile." +msgstr "Створено новий профіль." + +#: ../lib/types/bind.inc:240 +msgid "Created new zone." +msgstr "Створено нову зону." + +#: ../lib/modules/customFields.inc:73 +msgid "" +"Creates a new group for the given account type. Groups build a container for " +"object classes and attributes." +msgstr "" +"Створює нову групу для цього типу акаунта. З груп складається контейнер для " +"класів об'єктів та атрибутів." + +#: ../lib/tools/fileUpload.inc:53 +msgid "Creates accounts by uploading a CSV formated file." +msgstr "Створення акаунтів із завантаженого CSV файлу." + +#: ../templates/3rdParty/pla/htdocs/create.php:77 +#, php-format +msgid "Creation successful. DN %s has been created." +msgstr "Успішно створено. Було створено DN %s. " + +#: ../lib/modules/generalInformation.inc:80 +msgid "Creation time" +msgstr "Час створення" + +#: ../lib/modules/pykotaUser.inc:133 +msgid "Current account balance for the user." +msgstr "Поточний баланс акаунта користувача." + +#: ../templates/serverInfo.php:232 ../templates/serverInfo.php:237 +msgid "Current connections" +msgstr "Поточні з'єднання" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:65 +#, php-format +msgid "Current list of %s values for attribute %s:" +msgstr "Поточний список значень %s для атрибуту %s:" + +#: ../lib/modules/imapAccess.inc:317 +msgid "Current usage (kB)" +msgstr "Поточне використання (кБ)" + +#: ../lib/modules/customFields.inc:1097 ../lib/modules/customFields.inc:1420 +msgid "Custom fields" +msgstr "Користувацькі поля" + +#: ../lib/modules/customFields.inc:172 +msgid "Custom icon" +msgstr "Користувацький значок" + +#: ../templates/config/conftypes.php:300 ../lib/modules/customFields.inc:168 +#: ../help/help.inc:180 +msgid "Custom label" +msgstr "Користувацька мітка" + +#: ../lib/modules/customScripts.inc:48 ../lib/modules/customScripts.inc:59 +#: ../lib/modules/customScripts.inc:73 ../lib/modules/customScripts.inc:98 +#: ../lib/modules/customScripts.inc:108 +msgid "Custom scripts" +msgstr "Користувацькі скрипти" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1097 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1101 +msgid "Cut" +msgstr "Вирізати" + +#: ../lib/modules/ddns.inc:63 +msgid "DDNS" +msgstr "DDNS" + +#: ../lib/modules/ddns.inc:377 +msgid "" +"DDNS ist not activated. You can activate it in the DHCP settings (DDNS)." +msgstr "" +"DDNS не активовано. Ви можете активувати це в налаштуваннях DHCP (DDNS)." + +#: ../lib/types/dhcp.inc:56 +msgid "DHCP" +msgstr "DHCP" + +#: ../lib/types/dhcp.inc:65 +msgid "DHCP administration" +msgstr "Керування DHCP" + +#: ../lib/types/dhcp.inc:170 +#, php-format +msgid "DHCP count: %s" +msgstr "Кількість DHCP: %s" + +#: ../lib/types/dhcp.inc:173 ../lib/modules/dhcp_settings.inc:127 +msgid "DHCP settings" +msgstr "Налаштування DHCP" + +#: ../templates/delete.php:100 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:734 +#: ../templates/3rdParty/pla/lib/PageRender.php:110 +#: ../templates/3rdParty/pla/htdocs/compare.php:52 +#: ../templates/3rdParty/pla/htdocs/compare.php:58 +#: ../templates/3rdParty/pla/htdocs/create.php:92 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:35 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:112 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:57 ../lib/modules.inc:410 +#: ../lib/modules.inc:1956 +msgid "DN" +msgstr "DN" + +#: ../templates/3rdParty/pla/lib/import_functions.php:210 +#: ../templates/3rdParty/pla/lib/import_functions.php:222 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1866 +msgid "DN does not exist" +msgstr "DN не існує" + +#: ../templates/masscreate.php:288 +msgid "DN settings" +msgstr "DN налаштування" + +#: ../templates/masscreate.php:317 ../help/help.inc:190 +msgid "DN suffix" +msgstr "DN суфікс" + +#: ../lib/modules/dhcp_settings.inc:211 ../lib/modules/dhcp_settings.inc:226 +#: ../lib/modules/dhcp_settings.inc:268 ../lib/modules/dhcp_settings.inc:577 +#: ../lib/modules/dhcp_settings.inc:677 +msgid "DNS" +msgstr "DNS" + +#: ../lib/modules/dhcp_settings.inc:161 +msgid "DNS (Domain Name System)" +msgstr "DNS (Domain Name System)" + +#: ../lib/modules/bindDLZ.inc:67 +msgid "DNS entry" +msgstr "Запис DNS" + +#: ../lib/types/bind.inc:159 +#, php-format +msgid "DNS entry count: %s" +msgstr "Кількість DNS записів: %s" + +#: ../lib/modules/asteriskExtension.inc:115 +msgid "DNs of the extension owners" +msgstr "DN власників розширень" + +#: ../templates/3rdParty/pla/lib/export_functions.php:343 +msgid "DSML V.1 Export" +msgstr "Експорт DSML V.1" + +#: ../lib/modules/asteriskAccount.inc:273 +#: ../lib/modules/asteriskAccount.inc:362 +#: ../lib/modules/asteriskAccount.inc:627 +#: ../lib/modules/asteriskAccount.inc:1247 +msgid "DTFM flags" +msgstr "Відмітки DTFM" + +#: ../lib/modules/asteriskAccount.inc:139 +#: ../lib/modules/asteriskAccount.inc:989 +msgid "DTMF mode" +msgstr "режим DTMF" + +#: ../lib/modules/asteriskAccount.inc:140 +msgid "DTMF mode for SIP client configuration." +msgstr "Конфігурація режиму DTMF для клієнтів SIP" + +#: ../templates/3rdParty/pla/htdocs/import.php:103 +msgid "Data" +msgstr "Дані" + +#: ../lib/types/oracleContextType.inc:186 +#, php-format +msgid "Database count: %s" +msgstr "Кількість баз даних: %s" + +#: ../lib/modules/pykotaUser.inc:595 ../lib/modules/pykotaUser.inc:646 +#: ../lib/modules/pykotaUser.inc:905 ../lib/modules/pykotaUser.inc:963 +#: ../lib/modules/pykotaUser.inc:995 +msgid "Date" +msgstr "Дата" + +#: ../lib/modules/sambaSamAccount.inc:298 +msgid "Date after the user is able to change his password." +msgstr "Дата, після якої користувач може змінити свій пароль" + +#: ../lib/modules/mitKerberos.inc:121 ../lib/modules/sambaSamAccount.inc:300 +#: ../lib/modules/heimdalKerberos.inc:107 +msgid "Date after the user must change his password." +msgstr "Дата, після якої користувач повинен змінити свій пароль" + +#: ../lib/modules/shadowAccount.inc:178 +msgid "" +"Days before password is to expire that user is warned of pending password " +"expiration. If set value must be >0." +msgstr "" +"К-сть днів до застарівання пароля, коли користувача буде попереджено. Якщо " +"встановлено, то повинно бути > 0." + +#: ../templates/config/mainmanage.php:408 +msgid "Debug" +msgstr "Налагодження" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:592 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +#: ../lib/modules/qmailUser.inc:47 ../lib/modules/qmailUser.inc:292 +#: ../lib/modules/qmailUser.inc:1060 +msgid "Default" +msgstr "Типово" + +#: ../templates/config/mainmanage.php:443 +msgid "Default (\\r\\n)" +msgstr "Типово (\\r\\n)" + +#: ../lib/modules/dhcp_settings.inc:165 ../lib/modules/dhcp_settings.inc:212 +#: ../lib/modules/dhcp_settings.inc:227 ../lib/modules/dhcp_settings.inc:274 +#: ../lib/modules/dhcp_settings.inc:579 ../lib/modules/dhcp_settings.inc:678 +msgid "Default gateway" +msgstr "Типовий шлюз" + +#: ../templates/config/confmain.php:297 +#: ../templates/selfService/adminMain.php:485 ../help/help.inc:99 +msgid "Default language" +msgstr "Типова мова" + +#: ../lib/modules/asteriskAccount.inc:231 +#: ../lib/modules/asteriskAccount.inc:296 +#: ../lib/modules/asteriskAccount.inc:530 +#: ../lib/modules/asteriskAccount.inc:750 +#: ../lib/modules/asteriskAccount.inc:1012 +#: ../lib/modules/asteriskAccount.inc:1293 +msgid "Default user" +msgstr "Типовий користувач" + +#: ../templates/masscreate.php:306 ../templates/masscreate.php:380 +#: ../lib/modules/customFields.inc:124 ../lib/modules/customFields.inc:2761 +msgid "Default value" +msgstr "Типове значення" + +#: ../help/help.inc:159 +msgid "" +"Defines if the PHP error reporting setting from php.ini is used or the " +"setting preferred by LAM (\"E_ALL & ~E_NOTICE\"). If you do not develop LAM " +"modules please use the default. This will prevent displaying messages that " +"are useful only for developers." +msgstr "" +"Визначає чи використовувати систему сповіщення помилок визначену в php.ini " +"чи визначені в LAM (\"E_ALL & ~E_NOTICE\"). Якщо ви е є розробником LAM " +"модулів, будь ласка, використовуйте типове значення. Це дозволить запобігти " +"показу помилок, які насправді важливі тільки розробникам." + +#: ../lib/modules/sambaDomain.inc:118 +msgid "Defines if workstations may change their passwords." +msgstr "Визначає, чи можуть робочі станції змінювати свої паролі." + +#: ../lib/modules/asteriskAccount.inc:160 +msgid "" +"Defines the mailbox to check for message waiting indication (MWI) for this " +"peer." +msgstr "" +"Визначає, яка поштова скринька буде перевіряти для message waiting " +"indication (MWI) для цього вузла." + +#: ../lib/types/kolabSharedFolderType.inc:91 ../lib/modules/kolabUser.inc:116 +#: ../lib/modules/kolabUser.inc:132 ../lib/modules/kolabUser.inc:136 +#: ../lib/modules/kolabUser.inc:211 ../lib/modules/kolabUser.inc:234 +#: ../lib/modules/kolabUser.inc:359 ../lib/modules/kolabUser.inc:765 +#: ../lib/modules/kolabUser.inc:837 ../lib/modules/kolabSharedFolder.inc:138 +#: ../lib/modules/kolabSharedFolder.inc:142 +#: ../lib/modules/kolabSharedFolder.inc:226 +#: ../lib/modules/kolabSharedFolder.inc:237 +#: ../lib/modules/kolabSharedFolder.inc:320 +#: ../lib/modules/kolabSharedFolder.inc:564 +msgid "Delegates" +msgstr "Делегування" + +#: ../lib/modules/kolabSharedFolder.inc:139 +msgid "" +"Delegates are allowed to act on behalf of the shared folder. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"Делегатам дозволяється діяти від імені спільнокаталогу. Ця " +"властивістьперевіряється при використанні Kolab smtp daemon (Postfix) при " +"відправленні електронної пошти." + +#: ../templates/serverInfo.php:321 ../templates/serverInfo.php:390 +#: ../templates/multiEdit.php:126 ../templates/ou_edit.php:120 +#: ../templates/config/profmanage.php:273 +#: ../templates/selfService/profManage.php:238 +#: ../templates/pdfedit/pdfmain.php:209 ../templates/pdfedit/pdfmain.php:210 +#: ../templates/pdfedit/pdfmain.php:243 ../templates/delete.php:120 +#: ../templates/profedit/profilemain.php:198 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:33 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:124 +#: ../lib/modules/pykotaPrinter.inc:281 +#: ../lib/modules/sambaSamAccount.inc:1613 +#: ../lib/modules/posixAccount.inc:1688 ../lib/modules/zarafaUser.inc:1434 +#: ../lib/modules/zarafaUser.inc:1486 ../lib/modules/bindDLZ.inc:1055 +#: ../lib/modules/bindDLZ.inc:1376 ../lib/modules/kolabUser.inc:827 +#: ../lib/modules/sambaGroupMapping.inc:405 +#: ../lib/modules/ldapPublicKey.inc:262 ../lib/modules/nisnetgroup.inc:253 +#: ../lib/modules/inetOrgPerson.inc:2805 ../lib/modules/customFields.inc:2086 +#: ../lib/modules/customFields.inc:3462 ../lib/lists.inc:494 +msgid "Delete" +msgstr "Вилучити" + +#: ../templates/3rdParty/pla/htdocs/delete.php:31 +msgid "Delete DN" +msgstr "Вилучити DN" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:30 +msgid "Delete LDAP entries" +msgstr "Вилучити LDAP записи" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:77 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:84 +msgid "Delete after copy (move):" +msgstr "Вилучити після копіювання (переміщення):" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:72 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:110 +#, php-format +msgid "Delete all %s objects" +msgstr "Вилучити всі %s об'єкти" + +#: ../templates/config/mainmanage.php:324 +msgid "Delete all CA certificates" +msgstr "Вилучити всі CA сертифікати" + +#: ../lib/modules/customFields.inc:624 +msgid "Delete group" +msgstr "Вилучити групу" + +#: ../lib/modules/posixAccount.inc:1532 +msgid "Delete home directory" +msgstr "Вилучити домашню директорію" + +#: ../lib/modules/imapAccess.inc:256 +msgid "Delete mailbox" +msgstr "Вилучити поштову скриньку" + +#: ../templates/ou_edit.php:199 ../help/help.inc:265 +msgid "Delete organisational unit" +msgstr "Вилучити підрозділ" + +#: ../templates/3rdParty/pla/lib/functions.php:2014 +#: ../lib/modules/inetOrgPerson.inc:1588 +msgid "Delete photo" +msgstr "Вилучити фото" + +#: ../templates/config/profmanage.php:271 +#: ../templates/config/profmanage.php:274 +#: ../templates/selfService/profManage.php:232 +#: ../templates/selfService/profManage.php:239 ../help/help.inc:134 +msgid "Delete profile" +msgstr "Вилучити профіль" + +#: ../lib/modules/range.inc:98 ../lib/modules/range.inc:116 +#: ../lib/modules/range.inc:445 +msgid "Delete range" +msgstr "Вилучити діапазон" + +#: ../lib/modules/asteriskExtension.inc:316 +#: ../lib/modules/asteriskExtension.inc:339 +msgid "Delete rule" +msgstr "Вилучити правило" + +#: ../lib/types/dhcp.inc:174 +msgid "Delete selected DHCP entries" +msgstr "Вилучити вибрані DHCP записи" + +#: ../lib/types/bind.inc:162 +msgid "Delete selected DNS entries" +msgstr "Вилучити вибрані записи DNS" + +#: ../lib/types/nisObjectType.inc:158 +msgid "Delete selected NIS objects" +msgstr "Вилучити вибрані NIS об'єкти" + +#: ../lib/types/zarafaAddressListType.inc:147 +msgid "Delete selected address lists" +msgstr "Вилучити вибрані списки адрес" + +#: ../lib/types/mailAlias.inc:144 ../lib/types/alias.inc:144 +msgid "Delete selected aliases" +msgstr "Вилучити вибрані псевдоніми" + +#: ../lib/types/automountType.inc:218 +msgid "Delete selected automount entries" +msgstr "Вилучити вибрані записи автомонтування" + +#: ../lib/types/pykotaBillingCodeType.inc:166 +msgid "Delete selected billing codes" +msgstr "Вилучити вибрані коди оплати" + +#: ../lib/types/oracleContextType.inc:189 +msgid "Delete selected database entries" +msgstr "Вилучити вибрані записи бази даних" + +#: ../lib/types/smbDomain.inc:170 +msgid "Delete selected domains" +msgstr "Вилучити вибрані домени" + +#: ../lib/types/asteriskExt.inc:146 +msgid "Delete selected extensions" +msgstr "Вилучити вибрані розширення" + +#: ../lib/types/gon.inc:205 ../lib/types/zarafaDynamicGroupType.inc:168 +#: ../lib/types/group.inc:243 ../lib/types/netgroup.inc:172 +msgid "Delete selected groups" +msgstr "Вилучити вибрані групи" + +#: ../lib/types/host.inc:196 +msgid "Delete selected hosts" +msgstr "Вилучити вибрані хости" + +#: ../lib/lists.inc:115 +msgid "Delete selected objects" +msgstr "Вилучити вибрані об'єкти" + +#: ../lib/types/ppolicyType.inc:152 +msgid "Delete selected policies" +msgstr "Вилучити вибрані політики" + +#: ../lib/types/pykotaPrinterType.inc:167 +msgid "Delete selected printers" +msgstr "Вилучити вибрані принтери" + +#: ../lib/types/gon.inc:212 ../lib/types/group.inc:250 +msgid "Delete selected roles" +msgstr "Вилучити вибрані ролі" + +#: ../lib/types/kolabSharedFolderType.inc:144 +msgid "Delete selected shared folders" +msgstr "Вилучити вибрані загльні каталоги" + +#: ../lib/types/sudo.inc:162 +msgid "Delete selected sudo roles" +msgstr "Вилучити вибрані правила sudo" + +#: ../lib/types/user.inc:532 +msgid "Delete selected users" +msgstr "Вилучити вибраних користувачів" + +#: ../templates/3rdParty/pla/htdocs/copy.php:146 +#, php-format +msgid "Delete successful: %s" +msgstr "Вилучення успішне: %s" + +#: ../lib/modules/posixAccount.inc:485 ../lib/modules/posixAccount.inc:1538 +msgid "Delete sudo rights" +msgstr "Вилучити правила sudo" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "Delete this entry" +msgstr "Вилучити цей запис" + +#: ../lib/modules/nisMailAliasUser.inc:156 +#: ../lib/modules/nisMailAliasUser.inc:195 +#, php-format +msgid "Delete whole alias entry which includes %s recipients." +msgstr "Вилучити всі записи псевдоніма, які включають %s отримувачів." + +#: ../lib/modules/qmailUser.inc:44 +msgid "Deleted" +msgstr "Вилучено" + +#: ../templates/delete.php:272 +#, php-format +msgid "Deleted DN: %s" +msgstr "Вилучено DN: %s" + +#: ../templates/pdfedit/pdfmain.php:89 +msgid "Deleted PDF structure." +msgstr "Вилучено PDF структуру." + +#: ../templates/profedit/profilemain.php:103 +msgid "Deleted profile." +msgstr "Вилучений профіль" + +#: ../lib/modules/range.inc:99 +msgid "Deletes an IP range." +msgstr "Вилучає діапазон ІР-адрес" + +#: ../lib/modules/posixAccount.inc:486 +msgid "Deletes the user from all existing sudo rights." +msgstr "Вилучити користувача зі всіх існуючих правил sudo." + +#: ../templates/3rdParty/pla/htdocs/import.php:29 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:65 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:82 +msgid "Deleting" +msgstr "Вилучення" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:73 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:125 +msgid "Deleting objects" +msgstr "Вилучення об'єктів" + +#: ../lib/modules/qmailUser.inc:124 ../lib/modules/qmailUser.inc:255 +#: ../lib/modules/qmailUser.inc:382 ../lib/modules/qmailUser.inc:436 +#: ../lib/modules/qmailUser.inc:658 ../lib/modules/qmailUser.inc:899 +#: ../lib/modules/qmailUser.inc:1170 +msgid "Deletion date" +msgstr "Дата вилучення" + +#: ../lib/lists.inc:1068 +msgid "Deletion was successful." +msgstr "Вилучення успішне" + +#: ../lib/modules/qmailUser.inc:215 ../lib/modules/qmailUser.inc:290 +#: ../lib/modules/qmailUser.inc:403 ../lib/modules/qmailUser.inc:629 +#: ../lib/modules/qmailUser.inc:1164 +msgid "Delivery mode" +msgstr "Режим відправки" + +#: ../lib/modules/qmailUser.inc:122 ../lib/modules/qmailUser.inc:175 +#: ../lib/modules/qmailUser.inc:251 ../lib/modules/qmailUser.inc:374 +#: ../lib/modules/qmailUser.inc:433 ../lib/modules/qmailUser.inc:648 +#: ../lib/modules/qmailUser.inc:1150 +msgid "Delivery program" +msgstr "Програма відправки" + +#: ../lib/modules/asteriskAccount.inc:167 +#: ../lib/modules/asteriskAccount.inc:280 +#: ../lib/modules/asteriskAccount.inc:414 +#: ../lib/modules/asteriskAccount.inc:674 +#: ../lib/modules/asteriskAccount.inc:996 +#: ../lib/modules/asteriskAccount.inc:1261 +#: ../lib/modules/dhcp_settings.inc:104 +msgid "Deny" +msgstr "Заборона" + +#: ../lib/modules/pykotaGroup.inc:65 ../lib/modules/pykotaUser.inc:65 +msgid "Deny printing" +msgstr "Заборонити друк" + +#: ../lib/modules/inetOrgPerson.inc:162 ../lib/modules/inetOrgPerson.inc:217 +#: ../lib/modules/inetOrgPerson.inc:483 ../lib/modules/inetOrgPerson.inc:602 +#: ../lib/modules/inetOrgPerson.inc:800 ../lib/modules/inetOrgPerson.inc:804 +#: ../lib/modules/inetOrgPerson.inc:1481 ../lib/modules/inetOrgPerson.inc:1484 +#: ../lib/modules/inetOrgPerson.inc:1919 ../lib/modules/inetOrgPerson.inc:2670 +#: ../lib/modules/inetOrgPerson.inc:3547 ../lib/modules/inetOrgPerson.inc:3587 +msgid "Department" +msgstr "Відділ" + +#: ../lib/modules/kolabGroup.inc:105 ../lib/modules/kolabGroup.inc:109 +#: ../lib/modules/kolabUser.inc:162 ../lib/modules/kolabUser.inc:166 +#: ../lib/modules/kolabSharedFolder.inc:130 +#: ../lib/modules/kolabSharedFolder.inc:134 +msgid "" +"Describes the allowed or disallowed SMTP addresses sending mail to this " +"account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "" +"Описує дозволи або заборони адрес SMTP для листів на цей акаунта (наприклад, " +"\"domain.tld\" або \"-user@domain.tld\")." + +#: ../lib/modules/kolabGroup.inc:96 ../lib/modules/kolabGroup.inc:100 +#: ../lib/modules/kolabUser.inc:153 ../lib/modules/kolabUser.inc:157 +#: ../lib/modules/kolabSharedFolder.inc:121 +#: ../lib/modules/kolabSharedFolder.inc:125 +msgid "" +"Describes the allowed or disallowed SMTP recipient addresses for mail sent " +"by this account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "" +"Описує дозволи або заборони адрес SMTP для отримувачів листів з цього " +"акаунта (наприклад, \"domain.tld\" або \"-user@domain.tld\")." + +#: ../templates/schema/schema.php:89 ../templates/schema/schema.php:143 +#: ../templates/schema/schema.php:346 +#: ../templates/3rdParty/pla/lib/functions.php:1898 +#: ../templates/3rdParty/pla/lib/functions.php:1902 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:139 +#: ../templates/3rdParty/pla/htdocs/import.php:101 +#: ../lib/types/automountType.inc:88 ../lib/types/nisObjectType.inc:80 +#: ../lib/types/oracleContextType.inc:79 +#: ../lib/types/pykotaBillingCodeType.inc:92 ../lib/types/user.inc:101 +#: ../lib/types/pykotaPrinterType.inc:92 ../lib/types/sudo.inc:84 +#: ../lib/types/dhcp.inc:96 ../lib/types/netgroup.inc:92 +#: ../lib/modules/pykotaPrinter.inc:99 ../lib/modules/pykotaPrinter.inc:153 +#: ../lib/modules/pykotaPrinter.inc:194 ../lib/modules/pykotaPrinter.inc:248 +#: ../lib/modules/pykotaPrinter.inc:585 ../lib/modules/account.inc:82 +#: ../lib/modules/account.inc:95 ../lib/modules/account.inc:105 +#: ../lib/modules/account.inc:113 ../lib/modules/account.inc:218 +#: ../lib/modules/account.inc:229 ../lib/modules/windowsHost.inc:78 +#: ../lib/modules/windowsHost.inc:101 ../lib/modules/windowsHost.inc:120 +#: ../lib/modules/windowsHost.inc:143 ../lib/modules/windowsHost.inc:289 +#: ../lib/modules/posixGroup.inc:201 ../lib/modules/posixGroup.inc:430 +#: ../lib/modules/posixGroup.inc:484 ../lib/modules/posixGroup.inc:577 +#: ../lib/modules/device.inc:81 ../lib/modules/device.inc:115 +#: ../lib/modules/device.inc:130 ../lib/modules/device.inc:173 +#: ../lib/modules/device.inc:421 ../lib/modules/dhcp_settings.inc:197 +#: ../lib/modules/dhcp_settings.inc:217 ../lib/modules/dhcp_settings.inc:307 +#: ../lib/modules/dhcp_settings.inc:620 ../lib/modules/dhcp_settings.inc:684 +#: ../lib/modules/pykotaGroup.inc:117 ../lib/modules/pykotaGroup.inc:166 +#: ../lib/modules/pykotaGroup.inc:188 ../lib/modules/pykotaGroup.inc:233 +#: ../lib/modules/pykotaGroup.inc:468 ../lib/modules/posixAccount.inc:556 +#: ../lib/modules/windowsUser.inc:119 ../lib/modules/windowsUser.inc:308 +#: ../lib/modules/windowsUser.inc:500 ../lib/modules/windowsUser.inc:705 +#: ../lib/modules/windowsUser.inc:1588 ../lib/modules/nisObject.inc:73 +#: ../lib/modules/nisObject.inc:103 ../lib/modules/nisObject.inc:114 +#: ../lib/modules/nisObject.inc:155 ../lib/modules/nisObject.inc:212 +#: ../lib/modules/sambaGroupMapping.inc:114 +#: ../lib/modules/sambaGroupMapping.inc:542 ../lib/modules/pykotaUser.inc:120 +#: ../lib/modules/pykotaUser.inc:226 ../lib/modules/pykotaUser.inc:277 +#: ../lib/modules/pykotaUser.inc:413 ../lib/modules/pykotaUser.inc:892 +#: ../lib/modules/automount.inc:72 ../lib/modules/automount.inc:95 +#: ../lib/modules/automount.inc:105 ../lib/modules/automount.inc:132 +#: ../lib/modules/automount.inc:183 ../lib/modules/nisnetgroup.inc:87 +#: ../lib/modules/nisnetgroup.inc:140 ../lib/modules/nisnetgroup.inc:199 +#: ../lib/modules/nisnetgroup.inc:580 ../lib/modules/inetOrgPerson.inc:163 +#: ../lib/modules/inetOrgPerson.inc:175 ../lib/modules/inetOrgPerson.inc:329 +#: ../lib/modules/inetOrgPerson.inc:542 ../lib/modules/inetOrgPerson.inc:632 +#: ../lib/modules/inetOrgPerson.inc:1207 ../lib/modules/inetOrgPerson.inc:1210 +#: ../lib/modules/inetOrgPerson.inc:1890 ../lib/modules/inetOrgPerson.inc:2765 +#: ../lib/modules/inetOrgPerson.inc:3509 ../lib/modules/inetOrgPerson.inc:3576 +#: ../lib/modules/sudoRole.inc:70 ../lib/modules/sudoRole.inc:153 +#: ../lib/modules/sudoRole.inc:215 ../lib/modules/sudoRole.inc:305 +#: ../lib/modules/sudoRole.inc:805 ../lib/modules/oracleService.inc:69 +#: ../lib/modules/oracleService.inc:92 ../lib/modules/oracleService.inc:100 +#: ../lib/modules/oracleService.inc:122 ../lib/modules/oracleService.inc:172 +#: ../lib/modules/organizationalRole.inc:89 +#: ../lib/modules/organizationalRole.inc:123 +#: ../lib/modules/organizationalRole.inc:141 +#: ../lib/modules/organizationalRole.inc:163 +#: ../lib/modules/organizationalRole.inc:189 +#: ../lib/modules/organizationalRole.inc:453 ../lib/modules/fixed_ip.inc:110 +#: ../lib/modules/fixed_ip.inc:433 ../lib/modules/fixed_ip.inc:744 +#: ../lib/modules/pykotaBillingCode.inc:81 +#: ../lib/modules/pykotaBillingCode.inc:109 +#: ../lib/modules/pykotaBillingCode.inc:116 +#: ../lib/modules/pykotaBillingCode.inc:159 +#: ../lib/modules/pykotaBillingCode.inc:262 +#: ../lib/modules/windowsGroup.inc:118 ../lib/modules/windowsGroup.inc:183 +#: ../lib/modules/windowsGroup.inc:258 ../lib/modules/windowsGroup.inc:301 +#: ../lib/modules/windowsGroup.inc:746 ../lib/modules/groupOfNames.inc:89 +#: ../lib/modules/groupOfNames.inc:135 ../lib/modules/groupOfNames.inc:171 +#: ../lib/modules/groupOfNames.inc:199 ../lib/modules/groupOfNames.inc:235 +#: ../lib/modules/groupOfNames.inc:694 +msgid "Description" +msgstr "Опис" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "Destination DN" +msgstr "DN призначення" + +#: ../lib/modules/device.inc:45 +msgid "Device" +msgstr "Пристрій" + +#: ../lib/modules/sambaSamAccount.inc:393 +#: ../lib/modules/sambaSamAccount.inc:584 +msgid "Disable LM hashes" +msgstr "Не використовувати LM-хеш" + +#: ../lib/modules/ddns.inc:89 ../lib/modules/ddns.inc:370 +msgid "Disable client updates" +msgstr "Відключити оновлення клієнта" + +#: ../lib/modules/posixGroup.inc:417 ../lib/modules/posixGroup.inc:533 +msgid "Disable membership management" +msgstr "Відключити управління користувачами" + +#: ../lib/modules/qmailUser.inc:43 +msgid "Disabled" +msgstr "Відключено" + +#: ../lib/modules/ddns.inc:90 +msgid "Disables the client to update DNS entries." +msgstr "Відключає клієнта для оновлення DNS записів." + +#: ../lib/modules/posixGroup.inc:534 +msgid "Disables the group membership management." +msgstr "Відключає управління групами користувачів" + +#: ../lib/modules/mitKerberos.inc:172 +msgid "" +"Disables user-to-user authentication for this principal by prohibiting this " +"principal from obtaining a session key for another user." +msgstr "" +"Відключає аутентифікацію користувач-користувач для цього principal, " +"забороняючи цьому principal отримувати ключ сесії для іншого користувача." + +#: ../lib/modules/heimdalKerberos.inc:130 +#: ../lib/modules/heimdalKerberos.inc:378 +msgid "Disallow TGT-based tickets" +msgstr "Заборонити TGT-based квитки" + +#: ../lib/modules/mitKerberos.inc:174 ../lib/modules/mitKerberos.inc:452 +#: ../lib/modules/heimdalKerberos.inc:148 +#: ../lib/modules/heimdalKerberos.inc:383 +msgid "Disallow all tickets" +msgstr "Відхиляти всі квитки" + +#: ../templates/config/conftypes.php:317 ../help/help.inc:178 +msgid "Disallow delete" +msgstr "Заборонити вилучення" + +#: ../lib/modules/mitKerberos.inc:162 ../lib/modules/mitKerberos.inc:422 +#: ../lib/modules/heimdalKerberos.inc:133 +#: ../lib/modules/heimdalKerberos.inc:353 +msgid "Disallow forwardable tickets" +msgstr "Заборонити квитки пересилання" + +#: ../lib/modules/mitKerberos.inc:159 ../lib/modules/mitKerberos.inc:437 +#: ../lib/modules/heimdalKerberos.inc:142 +#: ../lib/modules/heimdalKerberos.inc:368 +msgid "Disallow post-dated tickets" +msgstr "Заборонити post-dated квитки" + +#: ../lib/modules/mitKerberos.inc:168 ../lib/modules/mitKerberos.inc:427 +#: ../lib/modules/heimdalKerberos.inc:136 +#: ../lib/modules/heimdalKerberos.inc:358 +msgid "Disallow proxiable tickets" +msgstr "Заборонити проксовані квитки" + +#: ../lib/modules/mitKerberos.inc:165 ../lib/modules/mitKerberos.inc:432 +#: ../lib/modules/heimdalKerberos.inc:139 +#: ../lib/modules/heimdalKerberos.inc:363 +msgid "Disallow renewable tickets" +msgstr "Заборонити оновлювані квитки" + +#: ../lib/modules/mitKerberos.inc:186 ../lib/modules/mitKerberos.inc:442 +#: ../lib/modules/heimdalKerberos.inc:145 +#: ../lib/modules/heimdalKerberos.inc:373 +msgid "Disallow service tickets" +msgstr "Відхиляти сервісні квитки" + +#: ../lib/modules/mitKerberos.inc:171 ../lib/modules/mitKerberos.inc:447 +msgid "Disallow user-to-user authentication" +msgstr "Заборонити аутентифікацію користувач-користувач" + +#: ../lib/modules/asteriskAccount.inc:199 +#: ../lib/modules/asteriskAccount.inc:288 +#: ../lib/modules/asteriskAccount.inc:472 +#: ../lib/modules/asteriskAccount.inc:709 +#: ../lib/modules/asteriskAccount.inc:1004 +#: ../lib/modules/asteriskAccount.inc:1277 +msgid "Disallowed codec" +msgstr "Заборонити кодек" + +#: ../lib/modules/sambaDomain.inc:113 ../lib/modules/sambaDomain.inc:193 +#: ../lib/modules/sambaDomain.inc:299 ../lib/modules/sambaDomain.inc:621 +msgid "Disconnect users outside logon hours" +msgstr "Відключення користувачів в недозволений час для входу" + +#: ../lib/modules/sambaSamAccount.inc:237 +#: ../lib/modules/sambaSamAccount.inc:1523 +#: ../lib/modules/sambaSamAccount.inc:1927 +msgid "Disconnection time limit" +msgstr "Час очікування відключення" + +#: ../lib/modules/sambaDomain.inc:114 +msgid "Disconnects users if they are logged in outside logon hours." +msgstr "Відключення користувачів у недозволений час для входу" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +#: ../lib/modules/organizationalRole.inc:106 +#: ../lib/modules/organizationalRole.inc:153 +#: ../lib/modules/groupOfNames.inc:118 ../lib/modules/groupOfNames.inc:187 +msgid "Display format" +msgstr "Формат відображення" + +#: ../lib/modules/customFields.inc:176 ../lib/modules/customFields.inc:509 +msgid "Display multiple groups as accordion" +msgstr "Показувати кілька груп як об’єднання" + +#: ../lib/modules/sambaSamAccount.inc:111 +#: ../lib/modules/sambaSamAccount.inc:209 +#: ../lib/modules/sambaSamAccount.inc:258 +#: ../lib/modules/sambaSamAccount.inc:419 +#: ../lib/modules/sambaSamAccount.inc:1138 +#: ../lib/modules/sambaSamAccount.inc:1899 ../lib/modules/windowsUser.inc:123 +#: ../lib/modules/windowsUser.inc:296 ../lib/modules/windowsUser.inc:474 +#: ../lib/modules/windowsUser.inc:501 ../lib/modules/windowsUser.inc:595 +#: ../lib/modules/windowsUser.inc:703 ../lib/modules/windowsUser.inc:1589 +#: ../lib/modules/sambaGroupMapping.inc:112 +#: ../lib/modules/sambaGroupMapping.inc:146 +#: ../lib/modules/sambaGroupMapping.inc:359 +#: ../lib/modules/sambaGroupMapping.inc:540 +msgid "Display name" +msgstr "Показувати ім'я" + +#: ../templates/lists/changePassword.php:317 +msgid "Display on screen" +msgstr "Показувати на екрані" + +#: ../templates/3rdParty/pla/htdocs/create.php:97 +msgid "Display the created entry" +msgstr "Показувати створений запис" + +#: ../lib/modules.inc:503 +msgid "" +"Displayed account numbers start at \"0\". Add 2 to get the row in your " +"spreadsheet." +msgstr "" +"Номера облікових записів починаються з \"0\". Додайте 2, щоб отримати рядок " +"в таблиці." + +#: ../lib/modules/windowsGroup.inc:61 +msgid "Distribution" +msgstr "Розподілення" + +#: ../lib/modules/passwordSelfReset.inc:140 +#: ../lib/modules/passwordSelfReset.inc:545 +msgid "Do not ask security question" +msgstr "Не питати секретне питання" + +#: ../templates/ou_edit.php:112 +msgid "Do you really want to delete this OU?" +msgstr "Ви дійсно хочете вилучити цю OU?" + +#: ../templates/pdfedit/pdfmain.php:351 +msgid "Do you really want to delete this PDF structure?" +msgstr "Ви дійсно хочете вилучити цю PDF структуру?" + +#: ../templates/profedit/profilemain.php:319 +msgid "Do you really want to delete this profile?" +msgstr "Ви дійсно хочете вилучити цей профіль?" + +#: ../lib/modules/kolabGroup.inc:285 ../lib/modules/kolabUser.inc:515 +#: ../lib/modules/kolabSharedFolder.inc:425 +msgid "Do you really want to mark this account for deletion?" +msgstr "Ви дійсно хочете відмітити цей акаунт для видалення?" + +#: ../lib/modules/qmailGroup.inc:273 +msgid "Do you really want to post to this mailinglist?" +msgstr "Ви дійсно хочете це відправити до списку розсилання?" + +#: ../templates/delete.php:94 +msgid "Do you really want to remove the following accounts?" +msgstr "Ви дійсно хочете видалити наступні акаунти?" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:59 +msgid "Do you want to create this entry?" +msgstr "Ви хочете створити цей запис?" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:36 +msgid "Do you want to make these changes?" +msgstr "Ви дійсно хочете провести ці зміни?" + +#: ../lib/modules/sambaSamAccount.inc:210 +#: ../lib/modules/sambaSamAccount.inc:336 +#: ../lib/modules/sambaSamAccount.inc:412 +#: ../lib/modules/sambaSamAccount.inc:536 +#: ../lib/modules/sambaSamAccount.inc:1280 +#: ../lib/modules/sambaSamAccount.inc:1774 +#: ../lib/modules/sambaSamAccount.inc:1796 +#: ../lib/modules/sambaSamAccount.inc:1905 ../lib/modules/windowsUser.inc:111 +#: ../lib/modules/windowsUser.inc:1656 +#: ../lib/modules/sambaGroupMapping.inc:158 +#: ../lib/modules/sambaGroupMapping.inc:386 +#: ../lib/modules/sambaGroupMapping.inc:576 ../lib/modules/nisnetgroup.inc:223 +#: ../lib/modules/nisnetgroup.inc:587 +msgid "Domain" +msgstr "Домен" + +#: ../lib/modules/sambaSamAccount.inc:84 +msgid "Domain KRBTGT" +msgstr "KRBTGT домену" + +#: ../lib/types/smbDomain.inc:91 ../lib/modules/sambaDomain.inc:81 +#: ../lib/modules/sambaDomain.inc:151 ../lib/modules/sambaDomain.inc:185 +#: ../lib/modules/sambaDomain.inc:256 ../lib/modules/sambaDomain.inc:261 +#: ../lib/modules/sambaDomain.inc:600 +msgid "Domain SID" +msgstr "SID домену" + +#: ../lib/modules/sambaGroupMapping.inc:125 +#: ../lib/modules/windowsGroup.inc:178 ../lib/modules/windowsGroup.inc:185 +#: ../lib/modules/windowsGroup.inc:191 +msgid "Domain administrators" +msgstr "Адміністратори домену" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:60 +#: ../lib/modules/sambaGroupMapping.inc:131 +msgid "Domain admins" +msgstr "Адміністратори домену" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:65 +msgid "Domain certificate admins" +msgstr "Адміністратори сертифікатів домену" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaSamAccount.inc:806 +#: ../lib/modules/sambaGroupMapping.inc:63 +msgid "Domain computers" +msgstr "Комп'ютери домену" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:64 +msgid "Domain controllers" +msgstr "Контролери домену" + +#: ../lib/types/smbDomain.inc:167 +#, php-format +msgid "Domain count: %s" +msgstr "Кількість доменів: %s" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:67 +msgid "Domain enterprise admins" +msgstr "Адміністратори домену рівня підприємства" + +#: ../lib/modules/sambaGroupMapping.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:377 +msgid "Domain group" +msgstr "Група домену" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:62 +msgid "Domain guests" +msgstr "Гості домену" + +#: ../lib/modules/windowsGroup.inc:64 +msgid "Domain local" +msgstr "Локальний домен" + +#: ../lib/types/smbDomain.inc:92 ../lib/modules/dhcp_settings.inc:145 +#: ../lib/modules/dhcp_settings.inc:208 ../lib/modules/dhcp_settings.inc:223 +#: ../lib/modules/dhcp_settings.inc:250 ../lib/modules/dhcp_settings.inc:567 +#: ../lib/modules/dhcp_settings.inc:674 ../lib/modules/nisnetgroup.inc:154 +#: ../lib/modules/sambaDomain.inc:77 ../lib/modules/sambaDomain.inc:144 +#: ../lib/modules/sambaDomain.inc:184 ../lib/modules/sambaDomain.inc:241 +#: ../lib/modules/sambaDomain.inc:246 ../lib/modules/sambaDomain.inc:599 +msgid "Domain name" +msgstr "Назва домену" + +#: ../lib/modules/nisnetgroup.inc:154 ../lib/modules/sambaDomain.inc:208 +#: ../lib/modules/sambaDomain.inc:209 +msgid "Domain name is invalid!" +msgstr "Назва домену неправильна!" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:68 +msgid "Domain policy admins" +msgstr "Адміністратори політик домену" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:66 +msgid "Domain schema admins" +msgstr "Адміністратори схем домену" + +#: ../lib/modules/sambaSamAccount.inc:79 +#: ../lib/modules/sambaSamAccount.inc:2168 +#: ../lib/modules/sambaGroupMapping.inc:61 +msgid "Domain users" +msgstr "Користувачі домену" + +#: ../lib/modules/windowsUser.inc:240 ../lib/modules/windowsUser.inc:557 +msgid "Domains" +msgstr "Домени" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:43 +msgid "Don't stop on errors" +msgstr "Не зупинятися на помилках" + +#: ../templates/pdfedit/pdfpage.php:475 +msgid "Down" +msgstr "Донизу" + +#: ../templates/config/mainmanage.php:321 +msgid "Download CA certificates" +msgstr "Завантажити CA сертифікати" + +#: ../templates/masscreate.php:256 +msgid "Download sample CSV file" +msgstr "Завантажити приклад CSV файлу" + +#: ../templates/multiEdit.php:162 +msgid "Dry run" +msgstr "Спробувати без застосування" + +#: ../templates/multiEdit.php:437 +msgid "DryRun finished." +msgstr "Спробу закінчено." + +#: ../templates/serverInfo.php:124 +msgid "Dynamic subtrees" +msgstr "Динамічні піддерева" + +#: ../lib/modules/eduPerson.inc:72 +msgid "EDU person" +msgstr "EDU person" + +#: ../lib/modules/selfRegistration.inc:80 +msgid "" +"Each line represents one LDAP attribute. Please see the manual for a syntax " +"description." +msgstr "" +"Кожен рядок представляє один LDAP атрибут. Будь ласка, перегляньте допомогу " +"для використання правильного синтаксису." + +#: ../lib/modules/sambaSamAccount.inc:574 +msgid "East Australian Standard, Guam" +msgstr "East Australian Standard, Guam" + +#: ../lib/modules/sambaSamAccount.inc:566 +msgid "Eastern Europe Time, South Africa" +msgstr "Eastern Europe Time, South Africa" + +#: ../lib/modules/sambaSamAccount.inc:559 +msgid "Eastern Time (US & Canada), Bogota" +msgstr "Eastern Time (US & Canada), Bogota" + +#: ../templates/pdfedit/pdfmain.php:206 +#: ../templates/profedit/profilemain.php:195 +#: ../lib/modules/sambaSamAccount.inc:1285 +#: ../lib/modules/sambaSamAccount.inc:1290 ../lib/lists.inc:488 +msgid "Edit" +msgstr "Редагувати" + +#: ../lib/modules.inc:1349 +msgid "Edit again" +msgstr "Редагувати знову" + +#: ../templates/config/mainmanage.php:228 ../templates/config/index.php:99 +msgid "Edit general settings" +msgstr "Редагувати основні налаштування" + +#: ../lib/modules/posixAccount.inc:1454 ../lib/modules/windowsUser.inc:786 +msgid "Edit groups" +msgstr "Редагувати групи" + +#: ../lib/modules/posixGroup.inc:223 ../lib/modules/windowsGroup.inc:382 +msgid "Edit members" +msgstr "Редагувати учасників" + +#: ../templates/config/index.php:125 +msgid "Edit self service" +msgstr "Редагувати сервіси самообслуговування" + +#: ../templates/config/index.php:111 +msgid "Edit server profiles" +msgstr "Редагувати профілі сервера" + +#: ../lib/modules/nisnetgroup.inc:208 +msgid "Edit subgroups" +msgstr "Редагувати підгрупи" + +#: ../lib/modules/sambaSamAccount.inc:1241 +msgid "Edit workstations" +msgstr "Редагувати комп'ютери" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1872 +#: ../lib/types/zarafaDynamicGroupType.inc:92 ../lib/types/user.inc:100 +#: ../lib/modules/zarafaDynamicGroup.inc:243 +#: ../lib/modules/zarafaDynamicGroup.inc:248 +#: ../lib/modules/zarafaGroup.inc:234 ../lib/modules/zarafaGroup.inc:241 +#: ../lib/modules/passwordSelfReset.inc:500 +#: ../lib/modules/nisMailAlias.inc:344 +msgid "Email" +msgstr "Ел. пошта" + +#: ../lib/modules/inetOrgPerson.inc:79 +#, php-format +msgid "Email \"%s\" already in use." +msgstr "Ел.адреса \"%s\" вже використовується." + +#: ../templates/lists/changePassword.php:283 ../lib/modules/kolabGroup.inc:87 +#: ../lib/modules/kolabGroup.inc:91 ../lib/modules/kolabGroup.inc:155 +#: ../lib/modules/kolabGroup.inc:168 ../lib/modules/kolabGroup.inc:177 +#: ../lib/modules/kolabGroup.inc:179 ../lib/modules/kolabGroup.inc:202 +#: ../lib/modules/kolabGroup.inc:423 ../lib/modules/selfRegistration.inc:400 +#: ../lib/modules/selfRegistration.inc:482 +#: ../lib/modules/zarafaDynamicGroup.inc:67 +#: ../lib/modules/zarafaDynamicGroup.inc:68 +#: ../lib/modules/zarafaDynamicGroup.inc:124 +#: ../lib/modules/zarafaDynamicGroup.inc:166 +#: ../lib/modules/zarafaDynamicGroup.inc:200 +#: ../lib/modules/zarafaDynamicGroup.inc:448 ../lib/modules/qmailUser.inc:199 +#: ../lib/modules/qmailUser.inc:299 ../lib/modules/qmailUser.inc:406 +#: ../lib/modules/qmailUser.inc:448 ../lib/modules/qmailUser.inc:492 +#: ../lib/modules/qmailUser.inc:1139 ../lib/modules/zarafaGroup.inc:69 +#: ../lib/modules/zarafaGroup.inc:70 ../lib/modules/zarafaGroup.inc:170 +#: ../lib/modules/zarafaGroup.inc:200 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:648 ../lib/modules/windowsUser.inc:140 +#: ../lib/modules/windowsUser.inc:350 ../lib/modules/windowsUser.inc:475 +#: ../lib/modules/windowsUser.inc:505 ../lib/modules/windowsUser.inc:607 +#: ../lib/modules/windowsUser.inc:716 ../lib/modules/windowsUser.inc:1593 +#: ../lib/modules/pykotaUser.inc:116 ../lib/modules/pykotaUser.inc:218 +#: ../lib/modules/pykotaUser.inc:274 ../lib/modules/pykotaUser.inc:319 +#: ../lib/modules/pykotaUser.inc:409 ../lib/modules/pykotaUser.inc:890 +#: ../lib/modules/inetOrgPerson.inc:78 ../lib/modules/inetOrgPerson.inc:79 +#: ../lib/modules/inetOrgPerson.inc:157 ../lib/modules/inetOrgPerson.inc:211 +#: ../lib/modules/inetOrgPerson.inc:449 ../lib/modules/inetOrgPerson.inc:584 +#: ../lib/modules/inetOrgPerson.inc:720 ../lib/modules/inetOrgPerson.inc:724 +#: ../lib/modules/inetOrgPerson.inc:1414 ../lib/modules/inetOrgPerson.inc:1417 +#: ../lib/modules/inetOrgPerson.inc:1903 ../lib/modules/inetOrgPerson.inc:2456 +#: ../lib/modules/inetOrgPerson.inc:3537 ../lib/modules/inetOrgPerson.inc:3584 +#: ../lib/modules/kolabSharedFolder.inc:116 +#: ../lib/modules/kolabSharedFolder.inc:181 +#: ../lib/modules/kolabSharedFolder.inc:239 +#: ../lib/modules/kolabSharedFolder.inc:259 +#: ../lib/modules/kolabSharedFolder.inc:281 +#: ../lib/modules/kolabSharedFolder.inc:558 +#: ../lib/modules/asteriskVoicemail.inc:107 +#: ../lib/modules/asteriskVoicemail.inc:140 +#: ../lib/modules/asteriskVoicemail.inc:178 +#: ../lib/modules/asteriskVoicemail.inc:254 +#: ../lib/modules/asteriskVoicemail.inc:374 ../lib/modules/qmailGroup.inc:123 +#: ../lib/modules/qmailGroup.inc:127 ../lib/modules/qmailGroup.inc:240 +#: ../lib/modules/qmailGroup.inc:371 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:457 ../lib/modules/qmailGroup.inc:1056 +#: ../lib/modules/imapAccess.inc:232 ../lib/modules/passwordSelfReset.inc:849 +#: ../lib/modules/passwordSelfReset.inc:1020 +#: ../lib/modules/windowsGroup.inc:126 ../lib/modules/windowsGroup.inc:165 +#: ../lib/modules/windowsGroup.inc:219 ../lib/modules/windowsGroup.inc:265 +#: ../lib/modules/windowsGroup.inc:285 ../lib/modules/windowsGroup.inc:303 +#: ../lib/modules/windowsGroup.inc:748 +msgid "Email address" +msgstr "Адреса ел. пошти" + +#: ../lib/modules/kolabGroup.inc:179 ../lib/modules/kolabGroup.inc:180 +msgid "Email address already exists." +msgstr "Ця поштова адреса вже існує" + +#: ../lib/modules/asteriskVoicemail.inc:108 +msgid "Email address for this voicemail account." +msgstr "Адреса ел.пошти для акаунта цієї голосової пошти" + +#: ../lib/modules/qmailGroup.inc:221 ../lib/modules/qmailGroup.inc:225 +msgid "Email addresses that are allowed to send to this list." +msgstr "Адреси ел. пошти, з яких можна надсилати в цей список." + +#: ../lib/modules/qmailGroup.inc:205 ../lib/modules/qmailGroup.inc:209 +msgid "Email addresses that are member of this list." +msgstr "Адреси ел. пошти, що є учасниками списку." + +#: ../lib/modules/qmailGroup.inc:213 ../lib/modules/qmailGroup.inc:217 +msgid "Email addresses that moderate this list (e.g. approve mails)." +msgstr "" +"Адреси ел. пошти, які модерують цей список (наприклад, підтверджують листи)." + +#: ../lib/modules/zarafaContact.inc:83 ../lib/modules/zarafaUser.inc:124 +#: ../lib/modules/windowsUser.inc:227 ../lib/modules/windowsUser.inc:231 +#: ../lib/modules/windowsUser.inc:356 ../lib/modules/windowsUser.inc:476 +#: ../lib/modules/windowsUser.inc:506 ../lib/modules/windowsUser.inc:609 +#: ../lib/modules/windowsUser.inc:717 ../lib/modules/windowsUser.inc:1594 +#: ../lib/modules/kolabUser.inc:140 ../lib/modules/kolabSharedFolder.inc:146 +msgid "Email alias" +msgstr "Поштовий псевдонім" + +#: ../lib/modules/zarafaContact.inc:84 ../lib/modules/zarafaUser.inc:125 +#: ../lib/modules/windowsUser.inc:228 ../lib/modules/windowsUser.inc:232 +#: ../lib/modules/kolabUser.inc:141 ../lib/modules/kolabSharedFolder.inc:147 +msgid "Email alias for this account." +msgstr "Поштовий псевдонім для цього акаунта." + +#: ../lib/modules/zarafaContact.inc:185 ../lib/modules/zarafaContact.inc:186 +#: ../lib/modules/zarafaUser.inc:417 ../lib/modules/zarafaUser.inc:418 +#: ../lib/modules/windowsUser.inc:609 ../lib/modules/windowsUser.inc:610 +#: ../lib/modules/kolabUser.inc:247 ../lib/modules/kolabSharedFolder.inc:254 +msgid "Email alias is invalid!" +msgstr "Поштовий псевдонім неправильний!" + +#: ../lib/modules/kolabUser.inc:144 ../lib/modules/kolabSharedFolder.inc:150 +msgid "Email alias list" +msgstr "Список поштових псевдонімів" + +#: ../lib/modules/kolabUser.inc:248 ../lib/modules/kolabSharedFolder.inc:255 +msgid "Email alias list has invalid format!" +msgstr "Список поштових псевдонімів має неправильний формат!" + +#: ../lib/types/kolabSharedFolderType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:97 +#: ../lib/modules/zarafaDynamicGroup.inc:71 +#: ../lib/modules/zarafaDynamicGroup.inc:75 +#: ../lib/modules/zarafaDynamicGroup.inc:130 +#: ../lib/modules/zarafaDynamicGroup.inc:167 +#: ../lib/modules/zarafaDynamicGroup.inc:258 +#: ../lib/modules/zarafaDynamicGroup.inc:451 +#: ../lib/modules/zarafaContact.inc:143 ../lib/modules/zarafaContact.inc:176 +#: ../lib/modules/zarafaContact.inc:207 ../lib/modules/zarafaContact.inc:566 +#: ../lib/modules/zarafaGroup.inc:73 ../lib/modules/zarafaGroup.inc:77 +#: ../lib/modules/zarafaGroup.inc:162 ../lib/modules/zarafaGroup.inc:197 +#: ../lib/modules/zarafaGroup.inc:252 ../lib/modules/zarafaGroup.inc:649 +#: ../lib/modules/zarafaUser.inc:188 ../lib/modules/zarafaUser.inc:370 +#: ../lib/modules/zarafaUser.inc:385 ../lib/modules/zarafaUser.inc:443 +#: ../lib/modules/zarafaUser.inc:1235 ../lib/modules/zarafaUser.inc:1497 +#: ../lib/modules/zarafaUser.inc:1809 ../lib/modules/kolabUser.inc:205 +#: ../lib/modules/kolabUser.inc:233 ../lib/modules/kolabUser.inc:351 +#: ../lib/modules/kolabUser.inc:764 ../lib/modules/kolabSharedFolder.inc:220 +#: ../lib/modules/kolabSharedFolder.inc:236 +#: ../lib/modules/kolabSharedFolder.inc:312 +#: ../lib/modules/kolabSharedFolder.inc:563 +msgid "Email aliases" +msgstr "Поштові псевдоніми" + +#: ../templates/config/mainmanage.php:446 ../help/help.inc:156 +msgid "Email format" +msgstr "Формат ел.пошти" + +#: ../lib/modules/inetOrgPerson.inc:345 ../lib/modules/inetOrgPerson.inc:614 +#: ../lib/modules/inetOrgPerson.inc:832 ../lib/modules/inetOrgPerson.inc:1455 +#: ../lib/modules/inetOrgPerson.inc:1458 ../lib/modules/inetOrgPerson.inc:1914 +#: ../lib/modules/inetOrgPerson.inc:3555 ../lib/modules/inetOrgPerson.inc:3589 +#: ../lib/modules/passwordSelfReset.inc:503 +#: ../lib/modules/passwordSelfReset.inc:855 +#: ../lib/modules/passwordSelfReset.inc:1025 +msgid "Employee number" +msgstr "Номер працівника" + +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:229 +#: ../lib/modules/inetOrgPerson.inc:353 ../lib/modules/inetOrgPerson.inc:596 +#: ../lib/modules/inetOrgPerson.inc:652 ../lib/modules/inetOrgPerson.inc:1464 +#: ../lib/modules/inetOrgPerson.inc:1467 ../lib/modules/inetOrgPerson.inc:1912 +#: ../lib/modules/inetOrgPerson.inc:3543 ../lib/modules/inetOrgPerson.inc:3586 +msgid "Employee type" +msgstr "Тип працівника" + +#: ../lib/modules/inetOrgPerson.inc:653 +msgid "Employee type: Contractor, Employee, Intern, Temp, External, ..." +msgstr "Тип працівника: По контракту, Штатний, Тимчасовий, Зовнішній..." + +#: ../templates/lists/changePassword.php:505 +#: ../templates/lists/changePassword.php:512 ../templates/login.php:543 +msgid "Empty password submitted. Please try again." +msgstr "Було відправлено порожній пароль. Будь ласка, спробуйте ще раз." + +#: ../lib/modules/passwordSelfReset.inc:96 +#: ../lib/modules/passwordSelfReset.inc:490 +msgid "Enable password self reset link" +msgstr "Включити посилання на самостійне скидання пароля" + +#: ../lib/modules/selfRegistration.inc:53 +#: ../lib/modules/selfRegistration.inc:190 +msgid "Enable self registration link" +msgstr "Включити посилання самореєстрації" + +#: ../lib/modules/customFields.inc:153 +msgid "" +"Enables auto-completion for this field. All existing values of this " +"attribute will be offered as auto-complete values." +msgstr "" +"Включає авто-завершення для всіх полів. Всі існуючі записи цього атрибута " +"будуть пропонуватися як варіанти авто-завершення." + +#: ../lib/modules/ppolicy.inc:97 +msgid "" +"Enables quality checking (e.g. password length) of passwords. If set to " +"\"force\" then you need to disable password hashing in your LAM server " +"profile to change passwords with LAM." +msgstr "" +"Включає перевірку якості (наприклад, довжину) для паролів. Якщо встановлено " +"в \"примусово\", тоді вам потрібно відключити хешування паролів в профілі " +"вашого сервера LAM для зміни паролів за допомогою LAM." + +#: ../templates/multiEdit.php:312 +#: ../templates/3rdParty/pla/lib/export_functions.php:160 +msgid "Encountered an error while performing search." +msgstr "Під час пошуку трапилася помилка." + +#: ../templates/config/mainmanage.php:304 ../help/help.inc:160 +msgid "Encrypt session" +msgstr "Шифрування сесії" + +#: ../lib/modules/imapAccess.inc:80 ../lib/modules/imapAccess.inc:120 +msgid "Encryption protocol" +msgstr "Протокол шифрування" + +#: ../lib/modules/imapAccess.inc:81 +msgid "" +"Encryption protocol for connecting to IMAP server. LAM requires an encrypted " +"connection." +msgstr "" +"Протокол шифрування для з'єднання з сервером IMAP. LAM потрібно шифроване " +"з'єднання." + +#: ../help/help.inc:161 +msgid "" +"Encrypts sensitive data like passwords in your session. This requires the " +"PHP MCrypt extension." +msgstr "" +"Шифрування конфіденційних даних, таких як паролі, у вашій сесії. Це вимагає " +"розширення PHP MCrypt." + +#: ../templates/selfService/adminMain.php:489 ../help/help.inc:103 +msgid "Enforce language" +msgstr "Примусова мова" + +#: ../lib/modules/sambaSamAccount.inc:552 +msgid "Eniwetok, Kwajalein" +msgstr "Eniwetok, Kwajalein" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:91 +msgid "Enter the values you would like to add:" +msgstr "Введіть значення, яке ви б хотіли додати:" + +#: ../lib/modules/eduPerson.inc:118 ../lib/modules/eduPerson.inc:122 +#: ../lib/modules/eduPerson.inc:194 ../lib/modules/eduPerson.inc:231 +#: ../lib/modules/eduPerson.inc:344 ../lib/modules/eduPerson.inc:586 +msgid "Entitlements" +msgstr "Посібники" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:471 +msgid "Entries found" +msgstr "Знайдено записів" + +#: ../templates/serverInfo.php:269 +msgid "Entries sent" +msgstr "Записів надіслано" + +#: ../templates/3rdParty/pla/lib/export_functions.php:473 +msgid "Entry" +msgstr "Запис" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:43 +#, php-format +msgid "Entry %s and sub-tree deleted successfully." +msgstr "Запис %s та піддерево успішно видалені." + +#: ../templates/3rdParty/pla/htdocs/create.php:90 +msgid "Entry created" +msgstr "Запис створено" + +#: ../templates/delete.php:330 +#: ../templates/3rdParty/pla/htdocs/mass_update.php:26 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:26 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:27 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:24 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:56 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:33 +msgid "Entry does not exist" +msgstr "Запису не існує" + +#: ../lib/modules/puppetClient.inc:80 ../lib/modules/puppetClient.inc:84 +#: ../lib/modules/puppetClient.inc:128 ../lib/modules/puppetClient.inc:153 +#: ../lib/modules/puppetClient.inc:161 ../lib/modules/puppetClient.inc:239 +#: ../lib/modules/puppetClient.inc:430 +msgid "Environment" +msgstr "Оточення" + +#: ../templates/schema/schema.php:166 +msgid "Equality" +msgstr "Рівність" + +#: ../lib/modules/zarafaUser.inc:529 ../lib/modules/zarafaUser.inc:1249 +msgid "Equipment" +msgstr "Обладнання" + +#: ../templates/config/mainmanage.php:408 +#: ../templates/3rdParty/pla/lib/Template.php:430 +#: ../templates/3rdParty/pla/lib/Template.php:473 +#: ../templates/3rdParty/pla/lib/Template.php:517 +#: ../templates/3rdParty/pla/lib/functions.php:511 +#: ../templates/3rdParty/pla/lib/functions.php:513 +#: ../templates/3rdParty/pla/lib/ds_myldap.php:219 +#: ../templates/3rdParty/pla/htdocs/import.php:79 +msgid "Error" +msgstr "Помилка" + +#: ../templates/3rdParty/pla/lib/functions.php:1897 +#: ../templates/3rdParty/pla/lib/functions.php:1901 +msgid "Error number" +msgstr "Номер помилки" + +#: ../lib/modules/mitKerberos.inc:1173 ../lib/modules/heimdalKerberos.inc:1038 +msgid "Error while changing Kerberos password." +msgstr "Помилка при зміні пароля Kerberos." + +#: ../templates/delete.php:280 +#, php-format +msgid "Error while deleting DN: %s" +msgstr "Помилка при видаленні DN: %s" + +#: ../help/help.inc:145 +msgid "" +"Every account type needs exactly one base module. This module provides a " +"structural object class." +msgstr "" +"Для кожного типу акаунта потрібен один основний модуль. Цей модуль надає " +"структурний клас об’єкту." + +#: ../lib/modules/customScripts.inc:67 ../lib/modules/customScripts.inc:80 +#: ../lib/modules/selfRegistration.inc:82 ../lib/modules/zarafaContact.inc:97 +#: ../lib/modules/zarafaGroup.inc:99 ../lib/modules/dhcp_settings.inc:564 +#: ../lib/modules/zarafaUser.inc:146 ../help/help.inc:74 ../help/help.inc:80 +#: ../help/help.inc:90 ../help/help.inc:95 ../help/help.inc:117 +msgid "Example" +msgstr "Приклад" + +#: ../templates/masscreate.php:302 ../templates/masscreate.php:376 +msgid "Example value" +msgstr "Можливе значення" + +#: ../help/help.inc:62 +msgid "Examples" +msgstr "Приклади" + +#: ../templates/config/confmain.php:319 +msgid "Execute" +msgstr "Запустіть" + +#: ../templates/tests/lamdaemonTest.php:269 +msgid "Execute lamdaemon" +msgstr "Запустіть lamdaemon" + +#: ../lib/modules/freeRadius.inc:104 ../lib/modules/freeRadius.inc:130 +#: ../lib/modules/freeRadius.inc:209 ../lib/modules/freeRadius.inc:237 +#: ../lib/modules/freeRadius.inc:385 ../lib/modules/freeRadius.inc:543 +msgid "Expiration date" +msgstr "Дата закінчення" + +#: ../lib/modules/bindDLZ.inc:204 ../lib/modules/bindDLZ.inc:307 +#: ../lib/modules/bindDLZ.inc:419 ../lib/modules/bindDLZ.inc:512 +#: ../lib/modules/bindDLZ.inc:1015 ../lib/modules/bindDLZ.inc:1544 +msgid "Expiration time" +msgstr "Час закінчення" + +#: ../lib/modules/asteriskAccount.inc:211 +#: ../lib/modules/asteriskAccount.inc:291 +#: ../lib/modules/asteriskAccount.inc:494 +#: ../lib/modules/asteriskAccount.inc:721 +#: ../lib/modules/asteriskAccount.inc:1007 +#: ../lib/modules/asteriskAccount.inc:1283 +msgid "Expiration timestamp" +msgstr "Час закінчення" + +#: ../lib/modules/asteriskAccount.inc:212 +msgid "Expiration timestamp (\"regseconds\" option)." +msgstr "Час закінчення (опція \"regseconds\")." + +#: ../lib/types/ppolicyType.inc:86 ../lib/modules/ppolicy.inc:116 +#: ../lib/modules/ppolicy.inc:148 ../lib/modules/ppolicy.inc:174 +#: ../lib/modules/ppolicy.inc:214 ../lib/modules/ppolicy.inc:479 +msgid "Expire warning" +msgstr "Попередження про застарівання" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1081 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1084 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:305 +#: ../templates/3rdParty/pla/htdocs/export_form.php:37 +#: ../templates/3rdParty/pla/htdocs/export_form.php:53 +msgid "Export" +msgstr "Експорт" + +#: ../templates/pdfedit/pdfmain.php:221 ../templates/pdfedit/pdfmain.php:222 +#: ../help/help.inc:212 +msgid "Export PDF structure" +msgstr "Експорт PDF структури" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:105 +msgid "Export format" +msgstr "Формат експорту" + +#: ../templates/profedit/profilemain.php:209 +#: ../templates/profedit/profilemain.php:210 ../help/help.inc:194 +msgid "Export profile" +msgstr "Експорт профіля" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Export subtree" +msgstr "Експорт піддерева" + +#: ../templates/pdfedit/pdfmain.php:117 +#: ../templates/profedit/profilemain.php:132 +msgid "Export successful" +msgstr "Експорт успішний" + +#: ../templates/serverInfo.php:349 +msgid "Extended" +msgstr "Розширений" + +#: ../lib/types/asteriskExt.inc:143 +#, php-format +msgid "Extension count: %s" +msgstr "Кількість розширень: %s" + +#: ../lib/types/asteriskExt.inc:94 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskExtension.inc:102 +#: ../lib/modules/asteriskExtension.inc:137 +#: ../lib/modules/asteriskExtension.inc:145 +#: ../lib/modules/asteriskExtension.inc:289 +#: ../lib/modules/asteriskExtension.inc:293 +#: ../lib/modules/asteriskExtension.inc:813 +msgid "Extension name" +msgstr "Назва розширення" + +#: ../lib/modules/asteriskExtension.inc:114 +#: ../lib/modules/asteriskExtension.inc:138 +#: ../lib/modules/asteriskExtension.inc:159 +#: ../lib/modules/asteriskExtension.inc:233 +#: ../lib/modules/asteriskExtension.inc:481 +#: ../lib/modules/asteriskExtension.inc:814 +msgid "Extension owners" +msgstr "Власники розширення" + +#: ../lib/modules/asteriskExtension.inc:190 +msgid "Extension with this name already exists." +msgstr "Розширення з такою назвою вже існує." + +#: ../templates/3rdParty/pla/htdocs/import.php:66 +msgid "Failed" +msgstr "Не вдалося" + +#: ../lib/modules/mitKerberos.inc:128 ../lib/modules/mitKerberos.inc:252 +#: ../lib/modules/mitKerberos.inc:298 ../lib/modules/mitKerberos.inc:345 +#: ../lib/modules/mitKerberos.inc:768 +msgid "Failed logins" +msgstr "Невдалих спроб входу" + +#: ../templates/initsuff.php:152 +msgid "Failed to create entry!" +msgstr "Не вдалося створити запис!" + +#: ../lib/profiles.inc:190 ../lib/pdfstruct.inc:224 +msgid "Failed to export!" +msgstr "Не вдалося експортувати!" + +#: ../lib/profiles.inc:197 ../lib/pdfstruct.inc:231 +msgid "Failed to import!" +msgstr "Не вдалося імпортувати!" + +#: ../lib/types/ppolicyType.inc:85 ../lib/modules/ppolicy.inc:112 +#: ../lib/modules/ppolicy.inc:153 ../lib/modules/ppolicy.inc:173 +#: ../lib/modules/ppolicy.inc:280 ../lib/modules/ppolicy.inc:478 +msgid "Failure count interval" +msgstr "Інтервал підрахунку помилок" + +#: ../lib/modules/inetOrgPerson.inc:76 ../lib/modules/inetOrgPerson.inc:158 +#: ../lib/modules/inetOrgPerson.inc:208 ../lib/modules/inetOrgPerson.inc:441 +#: ../lib/modules/inetOrgPerson.inc:581 ../lib/modules/inetOrgPerson.inc:712 +#: ../lib/modules/inetOrgPerson.inc:716 ../lib/modules/inetOrgPerson.inc:1406 +#: ../lib/modules/inetOrgPerson.inc:1409 ../lib/modules/inetOrgPerson.inc:1905 +#: ../lib/modules/inetOrgPerson.inc:2511 ../lib/modules/inetOrgPerson.inc:3535 +#: ../lib/modules/inetOrgPerson.inc:3583 +msgid "Fax number" +msgstr "Номер факсу" + +#: ../lib/modules/zarafaUser.inc:155 ../lib/modules/zarafaUser.inc:376 +#: ../lib/modules/zarafaUser.inc:638 ../lib/modules/zarafaUser.inc:1288 +#: ../lib/modules/zarafaUser.inc:1327 ../lib/modules/zarafaUser.inc:1807 +msgid "Features" +msgstr "Особливості" + +#: ../templates/config/mainmanage.php:412 +#: ../templates/3rdParty/pla/lib/functions.php:533 +#: ../templates/3rdParty/pla/tools/unserialize.php:14 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "File" +msgstr "Файл" + +#: ../lib/pdfstruct.inc:282 +msgid "File does not exist." +msgstr "Файл не створено." + +#: ../lib/modules/customFields.inc:160 ../lib/modules/customFields.inc:3294 +msgid "File extension" +msgstr "Розширення файлу" + +#: ../lib/modules/inetOrgPerson.inc:102 +#, php-format +msgid "File is too large. Maximum allowed size is %s kB." +msgstr "Файл завеликий. Максимально дозволений розмір %s Кб." + +#: ../lib/modules/sambaSamAccount.inc:312 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user and $group are replaced with user and group name." +msgstr "" +"Ім’я файлу та шлях відносно каталогу netlogon, який повинен виконатися при " +"вході в систему. Замість $user буде використано ім’я користувача та групи." + +#: ../lib/modules/windowsUser.inc:210 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user is replaced with user name." +msgstr "" +"Ім’я файлу та шлях відносно каталогу netlogon, який повинен виконатися при " +"вході в систему. Замість $user буде використано псевдоім’я користувача." + +#: ../lib/modules/zarafaServer.inc:76 ../lib/modules/zarafaServer.inc:112 +#: ../lib/modules/zarafaServer.inc:137 ../lib/modules/zarafaServer.inc:177 +#: ../lib/modules/zarafaServer.inc:219 ../lib/modules/zarafaServer.inc:356 +msgid "File path" +msgstr "Шлях до файлу" + +#: ../templates/masscreate.php:243 ../lib/tools/fileUpload.inc:44 +#: ../lib/modules/ldapPublicKey.inc:80 ../lib/modules/customFields.inc:3280 +#: ../lib/lists.inc:777 +msgid "File upload" +msgstr "Завантаження файлу" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +#: ../lib/types/zarafaAddressListType.inc:94 +#: ../lib/types/zarafaDynamicGroupType.inc:95 +#: ../lib/modules/pykotaPrinter.inc:128 ../lib/modules/pykotaPrinter.inc:425 +#: ../lib/modules/zarafaDynamicGroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:158 +#: ../lib/modules/zarafaDynamicGroup.inc:171 +#: ../lib/modules/zarafaDynamicGroup.inc:239 +#: ../lib/modules/zarafaDynamicGroup.inc:450 +#: ../lib/modules/zarafaContact.inc:91 ../lib/modules/posixGroup.inc:335 +#: ../lib/modules/posixGroup.inc:528 ../lib/modules/zarafaAddressList.inc:79 +#: ../lib/modules/zarafaAddressList.inc:134 +#: ../lib/modules/zarafaAddressList.inc:145 +#: ../lib/modules/zarafaAddressList.inc:206 +#: ../lib/modules/zarafaAddressList.inc:333 ../lib/modules/zarafaUser.inc:140 +#: ../lib/modules/sambaGroupMapping.inc:170 +#: ../lib/modules/sambaGroupMapping.inc:483 ../lib/modules/nisnetgroup.inc:104 +#: ../lib/modules/nisnetgroup.inc:477 +#: ../lib/modules/organizationalRole.inc:101 +#: ../lib/modules/organizationalRole.inc:282 +#: ../lib/modules/organizationalRole.inc:372 +#: ../lib/modules/groupOfNames.inc:113 ../lib/modules/groupOfNames.inc:339 +#: ../lib/modules/groupOfNames.inc:429 ../lib/modules/groupOfNames.inc:494 +#: ../lib/modules/groupOfNames.inc:584 ../lib/modules/nisMailAlias.inc:93 +#: ../lib/modules/nisMailAlias.inc:373 ../lib/lists.inc:379 +#: ../help/help.inc:168 +msgid "Filter" +msgstr "Фільтр" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:509 +msgid "Filter performed" +msgstr "Застосовано фільтр" + +#: ../templates/multiEdit.php:514 +msgid "Finished all operations." +msgstr "Закінчено всі операції." + +#: ../lib/types/user.inc:96 ../lib/modules/selfRegistration.inc:83 +#: ../lib/modules/selfRegistration.inc:218 ../lib/modules/windowsUser.inc:128 +#: ../lib/modules/windowsUser.inc:278 ../lib/modules/windowsUser.inc:502 +#: ../lib/modules/windowsUser.inc:597 ../lib/modules/windowsUser.inc:700 +#: ../lib/modules/windowsUser.inc:1590 ../lib/modules/inetOrgPerson.inc:66 +#: ../lib/modules/inetOrgPerson.inc:156 ../lib/modules/inetOrgPerson.inc:306 +#: ../lib/modules/inetOrgPerson.inc:538 ../lib/modules/inetOrgPerson.inc:644 +#: ../lib/modules/inetOrgPerson.inc:1170 ../lib/modules/inetOrgPerson.inc:1173 +#: ../lib/modules/inetOrgPerson.inc:1892 ../lib/modules/inetOrgPerson.inc:2434 +#: ../lib/modules/inetOrgPerson.inc:3577 +msgid "First name" +msgstr "Ім’я" + +#: ../lib/modules/windowsUser.inc:597 ../lib/modules/windowsUser.inc:598 +#: ../lib/modules/inetOrgPerson.inc:66 ../lib/modules/inetOrgPerson.inc:67 +msgid "First name contains invalid characters!" +msgstr "Ім’я має неправильні символи!" + +#: ../lib/modules/windowsUser.inc:129 ../lib/modules/inetOrgPerson.inc:645 +msgid "First name of user. Only letters, - and spaces are allowed." +msgstr "Ім’я користувача. Дозволяється тільки літери, - та пробіли." + +#: ../lib/modules/ddns.inc:85 +msgid "Fix IP addresses" +msgstr "Зафіксувати IP-адресу" + +#: ../templates/config/confmain.php:414 +msgid "Fixed list" +msgstr "Фіксований список" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:228 +msgid "Fixed range" +msgstr "Фіксований діапазон" + +#: ../templates/pdfedit/pdfpage.php:461 +msgid "Folding marks" +msgstr "Знаки закладок" + +#: ../templates/config/confmain.php:273 ../help/help.inc:85 +msgid "Follow referrals" +msgstr "Дотримуватися рефералів" + +#: ../lib/modules/kolabUser.inc:125 +msgid "For automatic invitation handling." +msgstr "Для автоматичної обробки запрошення" + +#: ../lib/modules/nisnetgroup.inc:101 +msgid "" +"For the upload please specify the entries in the format \"(HOST,USER," +"DOMAIN)\". Multiple entries are separated by semicolon." +msgstr "" +"Для завантаження вкажіть значення у форматі \"(HOST,USER,DOMAIN)\". Кілька " +"значень розділяються крапкою з комою." + +#: ../templates/lists/changePassword.php:238 +#: ../lib/modules/mitKerberos.inc:183 ../lib/modules/mitKerberos.inc:417 +#: ../lib/modules/shadowAccount.inc:369 ../lib/modules/heimdalKerberos.inc:127 +#: ../lib/modules/heimdalKerberos.inc:348 ../lib/modules.inc:1062 +#: ../help/help.inc:206 +msgid "Force password change" +msgstr "Примусити змінити пароль" + +#: ../lib/modules/passwordSelfReset.inc:787 +msgid "Forgot password?" +msgstr "Забули пароль?" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:484 ../help/help.inc:252 +msgid "Format" +msgstr "Формат" + +#: ../lib/modules/qmailUser.inc:207 ../lib/modules/qmailUser.inc:277 +#: ../lib/modules/qmailUser.inc:401 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:546 ../lib/modules/qmailUser.inc:1141 +msgid "Forwarding address" +msgstr "Адреса пересилання" + +#: ../lib/modules/qmailUser.inc:208 +msgid "Forwards all incoming messages for this user to this address." +msgstr "Пересилає всі вхідні повідомлення для цього користувача на цю адресу." + +#: ../lib/modules/pykotaGroup.inc:64 ../lib/modules/pykotaUser.inc:64 +msgid "Free printing" +msgstr "Вільний друк" + +#: ../lib/modules/freeRadius.inc:74 +msgid "FreeRadius" +msgstr "FreeRadius" + +#: ../lib/modules/sambaSamAccount.inc:1376 +msgid "Friday" +msgstr "П’ятниця" + +#: ../templates/config/confmain.php:343 ../lib/modules/selfRegistration.inc:90 +#: ../lib/modules/selfRegistration.inc:229 +#: ../lib/modules/passwordSelfReset.inc:116 +#: ../lib/modules/passwordSelfReset.inc:537 +#: ../lib/modules/passwordSelfReset.inc:557 ../help/help.inc:246 +msgid "From address" +msgstr "З адреси" + +#: ../templates/config/confmain.php:520 +msgid "From address for password mails is invalid." +msgstr "Неправильна адреса відправника для листів з паролем." + +#: ../lib/modules/asteriskAccount.inc:147 +#: ../lib/modules/asteriskAccount.inc:275 +#: ../lib/modules/asteriskAccount.inc:377 +#: ../lib/modules/asteriskAccount.inc:636 +#: ../lib/modules/asteriskAccount.inc:991 +#: ../lib/modules/asteriskAccount.inc:1251 +msgid "From domain" +msgstr "З домену" + +#: ../lib/modules/asteriskAccount.inc:148 +msgid "From domain setting for this account." +msgstr "Налаштування \"з домену\" для цього акаунта." + +#: ../lib/modules/asteriskAccount.inc:143 +#: ../lib/modules/asteriskAccount.inc:274 +#: ../lib/modules/asteriskAccount.inc:370 +#: ../lib/modules/asteriskAccount.inc:632 +#: ../lib/modules/asteriskAccount.inc:990 +#: ../lib/modules/asteriskAccount.inc:1249 +msgid "From user" +msgstr "Від користувача" + +#: ../lib/modules/asteriskAccount.inc:144 +msgid "From user setting for this account." +msgstr "Налаштування \"від користувача\" для цього акаунта." + +#: ../lib/modules/asteriskAccount.inc:151 +#: ../lib/modules/asteriskAccount.inc:276 +#: ../lib/modules/asteriskAccount.inc:384 +#: ../lib/modules/asteriskAccount.inc:640 +#: ../lib/modules/asteriskAccount.inc:992 +#: ../lib/modules/asteriskAccount.inc:1253 +msgid "Full contact" +msgstr "Повні контактні дані" + +#: ../templates/lists/changePassword.php:281 +#: ../lib/modules/asteriskVoicemail.inc:103 +#: ../lib/modules/asteriskVoicemail.inc:139 +#: ../lib/modules/asteriskVoicemail.inc:172 +#: ../lib/modules/asteriskVoicemail.inc:252 +#: ../lib/modules/asteriskVoicemail.inc:371 +msgid "Full name" +msgstr "Повне ім’я" + +#: ../lib/modules/asteriskVoicemail.inc:104 +msgid "Full name for Asterisk voicemail mailbox." +msgstr "Повне ім’я для скриньки голосової пошти Asterisk" + +#: ../templates/3rdParty/pla/lib/functions.php:537 +#: ../templates/3rdParty/pla/tools/unserialize.php:17 +msgid "Function" +msgstr "Функція" + +#: ../lib/modules/windowsUser.inc:328 ../lib/modules/inetOrgPerson.inc:387 +msgid "GB-12345" +msgstr "GB-12345" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixGroup.inc:520 +msgid "GID generator" +msgstr "Генератор GID" + +#: ../lib/types/host.inc:96 ../lib/types/group.inc:106 +#: ../lib/types/user.inc:93 ../lib/modules/qmailUser.inc:114 +#: ../lib/modules/qmailUser.inc:235 ../lib/modules/qmailUser.inc:341 +#: ../lib/modules/qmailUser.inc:421 ../lib/modules/qmailUser.inc:581 +#: ../lib/modules/qmailUser.inc:1143 ../lib/modules/posixGroup.inc:191 +#: ../lib/modules/posixGroup.inc:421 ../lib/modules/posixGroup.inc:436 +#: ../lib/modules/posixGroup.inc:480 ../lib/modules/posixGroup.inc:500 +#: ../lib/modules/posixGroup.inc:576 ../lib/modules/posixGroup.inc:599 +#: ../lib/modules/posixAccount.inc:125 ../lib/modules/posixAccount.inc:413 +#: ../lib/modules/posixAccount.inc:1853 +#: ../lib/modules/sambaGroupMapping.inc:110 +#: ../lib/modules/sambaGroupMapping.inc:538 +msgid "GID number" +msgstr "GID" + +#: ../lib/modules/posixGroup.inc:599 +msgid "" +"GID number has changed. Please select checkbox to change GID number of users " +"and hosts." +msgstr "" +"GID змінено. Будь ласка, позначте для зміни GID користувачів та хостів." + +#: ../lib/modules/posixAccount.inc:125 +#, php-format +msgid "" +"GID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" +msgstr "" +"GID змінено. Для збереження власника файлу ви повинні виконати таку команду " +"(як root): 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" + +#: ../lib/modules/posixGroup.inc:606 +msgid "GID number has to be a numeric value!" +msgstr "GID повинно бути числом!" + +#: ../lib/modules/qmailUser.inc:466 +msgid "GID number is already in use." +msgstr "GID вже використовується!" + +#: ../lib/modules/posixAccount.inc:256 ../lib/modules/posixAccount.inc:356 +#: ../lib/modules/posixAccount.inc:398 ../lib/modules/posixAccount.inc:424 +#: ../lib/modules/posixAccount.inc:510 ../lib/modules/posixAccount.inc:548 +#: ../lib/modules/posixAccount.inc:1440 ../lib/modules/posixAccount.inc:1856 +msgid "Gecos" +msgstr "Опис (Gecos)" + +#: ../lib/modules/windowsUser.inc:673 +msgid "General" +msgstr "Загальне" + +#: ../lib/modules/generalInformation.inc:58 +msgid "General information" +msgstr "Загальна інформація" + +#: ../templates/config/mainmanage.php:477 +#: ../templates/config/confmodules.php:164 +#: ../templates/config/confmain.php:205 +#: ../templates/config/moduleSettings.php:163 +#: ../templates/config/conftypes.php:182 +#: ../templates/selfService/adminMain.php:433 +#: ../templates/profedit/profilepage.php:215 +msgid "General settings" +msgstr "Загальні налаштування" + +#: ../templates/lists/changePassword.php:308 ../help/help.inc:244 +msgid "Generate random password" +msgstr "Згенерувати випадковий пароль" + +#: ../templates/3rdParty/pla/lib/functions.php:63 +#: ../templates/3rdParty/pla/lib/functions.php:595 +msgid "Generic Error" +msgstr "Загальна помилка" + +#: ../lib/modules/windowsGroup.inc:65 +msgid "Global" +msgstr "Глобальне" + +#: ../templates/pdfedit/pdfmain.php:322 +#: ../templates/profedit/profilemain.php:289 +msgid "Global templates" +msgstr "Глобальні шаблони" + +#: ../templates/schema/schema.php:128 ../templates/schema/schema.php:265 +#: ../templates/schema/schema.php:296 ../templates/schema/schema.php:321 +msgid "Go" +msgstr "Вперед" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:215 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:139 +msgid "Go back" +msgstr "Назад" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1864 +msgid "Go to" +msgstr "Перейти до" + +#: ../lib/types/ppolicyType.inc:82 ../lib/modules/ppolicy.inc:100 +#: ../lib/modules/ppolicy.inc:149 ../lib/modules/ppolicy.inc:170 +#: ../lib/modules/ppolicy.inc:222 ../lib/modules/ppolicy.inc:475 +msgid "Grace authentication limit" +msgstr "Межа відтермінування для аутентифікації" + +#: ../lib/modules/quota.inc:125 ../lib/modules/quota.inc:403 +msgid "Grace block period" +msgstr "Період відтермінування на використовуване місце" + +#: ../lib/modules/quota.inc:126 +msgid "" +"Grace block period. Most filesystems use a fixed maximum value of 7 days." +msgstr "" +"Період відтермінування на використовуване місце. Більшість файлових систем " +"використовують фіксоване максимальне значення в 7 днів." + +#: ../lib/modules/quota.inc:148 +msgid "" +"Grace inode (files) period. Most filesystems use a fixed maximum value of 7 " +"days." +msgstr "" +"Період відтермінування на inode (файли). Більшість файлових систем " +"використовують фіксоване максимальне значення в 7 днів." + +#: ../lib/modules/quota.inc:147 ../lib/modules/quota.inc:407 +msgid "Grace inode period" +msgstr "Період відтермінування на inode." + +#: ../templates/config/confmain.php:324 +#: ../templates/selfService/adminMain.php:670 +msgid "Group" +msgstr "Група" + +#: ../lib/types/group.inc:76 +msgid "Group accounts (e.g. Unix and Samba)" +msgstr "Акаунти груп (наприклад, Unix та Samba)" + +#: ../lib/types/gon.inc:202 ../lib/types/zarafaDynamicGroupType.inc:165 +#: ../lib/types/group.inc:240 ../lib/types/netgroup.inc:169 +#, php-format +msgid "Group count: %s" +msgstr "Кількість груп: %s" + +#: ../lib/types/group.inc:111 ../lib/modules/posixGroup.inc:471 +#: ../lib/modules/nisnetgroup.inc:120 +msgid "Group description" +msgstr "Опис групи" + +#: ../lib/modules/pykotaGroup.inc:118 +msgid "Group description." +msgstr "Опис групи." + +#: ../lib/modules/posixGroup.inc:485 +msgid "Group description. If left empty group name will be used." +msgstr "Опис групи. Якщо не задано, то буде використано назва групи." + +#: ../lib/types/gon.inc:105 ../lib/types/gon.inc:106 +#: ../lib/types/group.inc:108 ../lib/types/group.inc:109 +msgid "Group member DNs" +msgstr "DN учасників групи" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:94 +#: ../lib/types/group.inc:107 ../lib/modules/pykotaPrinter.inc:119 +#: ../lib/modules/pykotaPrinter.inc:123 ../lib/modules/pykotaPrinter.inc:186 +#: ../lib/modules/pykotaPrinter.inc:199 ../lib/modules/pykotaPrinter.inc:265 +#: ../lib/modules/pykotaPrinter.inc:607 ../lib/modules/posixGroup.inc:222 +#: ../lib/modules/posixGroup.inc:293 ../lib/modules/posixGroup.inc:424 +#: ../lib/modules/posixGroup.inc:450 ../lib/modules/posixGroup.inc:488 +#: ../lib/modules/posixGroup.inc:492 ../lib/modules/posixGroup.inc:573 +#: ../lib/modules/windowsGroup.inc:381 +msgid "Group members" +msgstr "Учасники групи" + +#: ../lib/types/gon.inc:104 ../lib/types/zarafaDynamicGroupType.inc:91 +#: ../lib/types/group.inc:105 ../lib/types/netgroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:63 +#: ../lib/modules/zarafaDynamicGroup.inc:116 +#: ../lib/modules/zarafaDynamicGroup.inc:165 +#: ../lib/modules/zarafaDynamicGroup.inc:195 +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:220 +#: ../lib/modules/zarafaDynamicGroup.inc:447 ../lib/modules/posixGroup.inc:181 +#: ../lib/modules/posixGroup.inc:427 ../lib/modules/posixGroup.inc:459 +#: ../lib/modules/posixGroup.inc:508 ../lib/modules/posixGroup.inc:575 +#: ../lib/modules/posixGroup.inc:607 ../lib/modules/posixGroup.inc:608 +#: ../lib/modules/posixGroup.inc:609 ../lib/modules/pykotaGroup.inc:197 +#: ../lib/modules/pykotaGroup.inc:199 ../lib/modules/pykotaGroup.inc:218 +#: ../lib/modules/nisnetgroup.inc:83 ../lib/modules/nisnetgroup.inc:112 +#: ../lib/modules/nisnetgroup.inc:139 ../lib/modules/nisnetgroup.inc:151 +#: ../lib/modules/nisnetgroup.inc:193 ../lib/modules/nisnetgroup.inc:579 +#: ../lib/modules/organizationalRole.inc:85 +#: ../lib/modules/organizationalRole.inc:114 +#: ../lib/modules/organizationalRole.inc:137 +#: ../lib/modules/organizationalRole.inc:452 +#: ../lib/modules/windowsGroup.inc:114 ../lib/modules/windowsGroup.inc:176 +#: ../lib/modules/windowsGroup.inc:257 ../lib/modules/windowsGroup.inc:283 +#: ../lib/modules/windowsGroup.inc:300 ../lib/modules/windowsGroup.inc:745 +#: ../lib/modules/groupOfNames.inc:85 ../lib/modules/groupOfNames.inc:126 +#: ../lib/modules/groupOfNames.inc:167 ../lib/modules/groupOfNames.inc:693 +msgid "Group name" +msgstr "Назва групи" + +#: ../lib/modules/pykotaGroup.inc:199 ../lib/modules/pykotaGroup.inc:200 +#: ../lib/modules/pykotaGroup.inc:203 ../lib/modules/pykotaGroup.inc:204 +msgid "Group name already exists!" +msgstr "Така назва групи вже існує!" + +#: ../lib/modules/zarafaDynamicGroup.inc:195 +msgid "Group name already in use." +msgstr "Назва групи вже використовується." + +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:197 ../lib/modules/posixGroup.inc:609 +#: ../lib/modules/posixGroup.inc:610 ../lib/modules/pykotaGroup.inc:197 +#: ../lib/modules/pykotaGroup.inc:198 ../lib/modules/pykotaGroup.inc:201 +#: ../lib/modules/pykotaGroup.inc:202 ../lib/modules/nisnetgroup.inc:151 +#: ../lib/modules/windowsGroup.inc:283 ../lib/modules/windowsGroup.inc:284 +msgid "" +"Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Назва групи має недопустимі символи. Можливі сисмволи: a-z, A-Z, 0-9 та .-_ !" + +#: ../lib/modules/windowsGroup.inc:151 +msgid "Group name for NIS." +msgstr "Назва групи для NIS." + +#: ../lib/modules/posixGroup.inc:608 +msgid "Group name in use. Selected next free group name." +msgstr "Назва групи вже використовується. Вибрано наступну вільну назву групи." + +#: ../lib/modules/zarafaDynamicGroup.inc:64 ../lib/modules/pykotaGroup.inc:114 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ ." +msgstr "" +"Назва групи для створюваної групи. Можливі символи: a-z, A-Z, 0-9 та .-_ ." + +#: ../lib/modules/posixGroup.inc:509 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ . If group name is already used group name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"Назва групи для створюваної групи. Можливі символи: a-z, A-Z, 0-9 та .-_ . " +"Якщо назва групи вже використовується, то до назви буде додано число. " +"Використовуватиметься наступне вільне число." + +#: ../lib/modules/pykotaGroup.inc:122 +msgid "Group name that is used for PyKota." +msgstr "Назва групи, яка використовується для PyKota." + +#: ../lib/modules/freeRadius.inc:96 ../lib/modules/freeRadius.inc:100 +#: ../lib/modules/freeRadius.inc:128 ../lib/modules/freeRadius.inc:154 +#: ../lib/modules/freeRadius.inc:185 ../lib/modules/freeRadius.inc:234 +#: ../lib/modules/freeRadius.inc:277 ../lib/modules/freeRadius.inc:540 +msgid "Group names" +msgstr "Назви груп" + +#: ../lib/modules/groupOfNames.inc:65 +msgid "Group of names" +msgstr "Група імен" + +#: ../lib/types/gon.inc:75 +msgid "Group of names accounts" +msgstr "Група імен акаунтів" + +#: ../lib/modules/groupOfUniqueNames.inc:42 +msgid "Group of unique names" +msgstr "Група унікальних імен" + +#: ../lib/modules/posixGroup.inc:442 ../lib/modules/posixGroup.inc:496 +msgid "Group password" +msgstr "Пароль групи" + +#: ../lib/modules/windowsGroup.inc:142 ../lib/modules/windowsGroup.inc:195 +#: ../lib/modules/windowsGroup.inc:262 ../lib/modules/windowsGroup.inc:338 +#: ../lib/modules/windowsGroup.inc:775 +msgid "Group scope" +msgstr "Видимість групи" + +#: ../lib/modules/sambaGroupMapping.inc:382 +#: ../lib/modules/windowsGroup.inc:138 ../lib/modules/windowsGroup.inc:203 +#: ../lib/modules/windowsGroup.inc:261 ../lib/modules/windowsGroup.inc:341 +#: ../lib/modules/windowsGroup.inc:776 +msgid "Group type" +msgstr "Тип групи" + +#: ../lib/types/group.inc:67 ../lib/modules/posixGroup.inc:401 +#: ../lib/modules/zarafaGroup.inc:119 ../lib/modules/windowsUser.inc:217 +#: ../lib/modules/windowsUser.inc:220 ../lib/modules/windowsUser.inc:442 +#: ../lib/modules/windowsUser.inc:523 ../lib/modules/windowsUser.inc:785 +#: ../lib/modules/windowsUser.inc:1635 ../lib/modules/windowsUser.inc:1663 +#: ../lib/modules/generalInformation.inc:110 +msgid "Groups" +msgstr "Групи" + +#: ../lib/types/gon.inc:66 ../lib/modules/posixAccount.inc:261 +#: ../lib/modules/posixAccount.inc:364 ../lib/modules/posixAccount.inc:427 +#: ../lib/modules/posixAccount.inc:1599 ../lib/modules/posixAccount.inc:1748 +#: ../lib/modules/posixAccount.inc:1865 ../lib/modules/windowsUser.inc:1029 +#: ../lib/modules/groupOfNamesUser.inc:54 +#: ../lib/modules/groupOfNamesUser.inc:56 +#: ../lib/modules/groupOfNamesUser.inc:60 +#: ../lib/modules/groupOfNamesUser.inc:64 +#: ../lib/modules/groupOfNamesUser.inc:71 +#: ../lib/modules/groupOfNamesUser.inc:324 +#: ../lib/modules/groupOfNamesUser.inc:360 +msgid "Groups of names" +msgstr "Групи імен" + +#: ../lib/modules/dhcp_settings.inc:99 +msgid "H-Node (0x08)" +msgstr "H-Node (0x08)" + +#: ../templates/config/confmain.php:356 +#: ../lib/modules/selfRegistration.inc:235 +#: ../lib/modules/passwordSelfReset.inc:541 +#: ../lib/modules/passwordSelfReset.inc:561 ../help/help.inc:255 +msgid "HTML format" +msgstr "HTML формат" + +#: ../templates/config/confmain.php:448 +#: ../templates/selfService/adminMain.php:474 ../help/help.inc:126 +msgid "HTTP authentication" +msgstr "HTTP аутентифікація" + +#: ../lib/modules/zarafaServer.inc:68 ../lib/modules/zarafaServer.inc:100 +#: ../lib/modules/zarafaServer.inc:135 ../lib/modules/zarafaServer.inc:173 +#: ../lib/modules/zarafaServer.inc:195 ../lib/modules/zarafaServer.inc:354 +msgid "HTTP port" +msgstr "HTTP порт" + +#: ../lib/modules/quota.inc:635 ../lib/modules/systemQuotas.inc:384 +msgid "Hard block" +msgstr "Hard block" + +#: ../lib/modules/quota.inc:119 ../lib/modules/quota.inc:120 +#: ../lib/modules/quota.inc:402 ../lib/modules/quota.inc:508 +#: ../lib/modules/systemQuotas.inc:126 +msgid "Hard block limit" +msgstr "Жорсткий ліміт місця" + +#: ../lib/modules/quota.inc:637 ../lib/modules/systemQuotas.inc:386 +msgid "Hard inode" +msgstr "Hard inode" + +#: ../lib/modules/quota.inc:142 +msgid "Hard inode (files) limit" +msgstr "Жорсткий ліміт к-сті файлів (inode)" + +#: ../lib/modules/quota.inc:141 ../lib/modules/quota.inc:406 +#: ../lib/modules/quota.inc:510 ../lib/modules/systemQuotas.inc:130 +msgid "Hard inode limit" +msgstr "Жорсткий ліміт inode" + +#: ../lib/modules/generalInformation.inc:104 +msgid "Has subentries" +msgstr "Має підзаписи" + +#: ../lib/modules/sambaSamAccount.inc:554 +msgid "Hawaii" +msgstr "Hawaii" + +#: ../lib/modules/selfRegistration.inc:106 +#: ../lib/modules/selfRegistration.inc:224 +#: ../lib/modules/passwordSelfReset.inc:156 +#: ../lib/modules/passwordSelfReset.inc:567 +msgid "Header" +msgstr "Заголовок" + +#: ../templates/pdfedit/pdfpage.php:452 ../templates/pdfedit/pdfpage.php:591 +#: ../templates/pdfedit/pdfpage.php:598 +msgid "Headline" +msgstr "Заголовок" + +#: ../lib/modules/heimdalKerberos.inc:235 +msgid "Heimdal Kerberos password change command" +msgstr "Команда для зміни пароля Heimdal Kerberos" + +#: ../templates/main_header.php:140 ../lib/modules.inc:667 +msgid "Help" +msgstr "Допомога" + +#: ../lib/modules/customFields.inc:96 ../lib/modules/customFields.inc:1716 +msgid "Help text" +msgstr "Допомога" + +#: ../lib/tools/schemaBrowser.inc:53 +msgid "Here you can browse LDAP object classes and attributes." +msgstr "Тут можна переглянути LDAP об’єкти та атрибути." + +#: ../lib/modules/sambaSamAccount.inc:391 +msgid "Here you can change the settings for the terminal server access." +msgstr "Тут можна змінити налаштування для доступу до сервера терміналів." + +#: ../lib/selfService.inc:387 +msgid "Here you can change your personal settings." +msgstr "Тут ви можете змінити свої персональні налаштування." + +#: ../templates/masscreate.php:130 +msgid "Here you can create multiple accounts by providing a CSV file." +msgstr "Тут можна створити кілька акаунтів за допомогою CSV файлу." + +#: ../lib/modules/dhcp_settings.inc:198 +msgid "Here you can enter a description for this DHCP entry." +msgstr "Тут ви можете вказати опис для цього запису DHCP." + +#: ../lib/modules/nisnetgroup.inc:88 ../lib/modules/organizationalRole.inc:90 +#: ../lib/modules/groupOfNames.inc:90 +msgid "Here you can enter a description for this group." +msgstr "Тут ви можете вказати опис для цієї групи." + +#: ../lib/modules/sudoRole.inc:71 +msgid "Here you can enter a description for this role." +msgstr "Тут ви можете вказати опис для цієї ролі." + +#: ../lib/modules/pykotaPrinter.inc:129 ../lib/modules/zarafaContact.inc:92 +#: ../lib/modules/posixGroup.inc:529 ../lib/modules/zarafaUser.inc:141 +#: ../lib/modules/sambaGroupMapping.inc:171 ../lib/modules/nisnetgroup.inc:105 +#: ../lib/modules/organizationalRole.inc:102 +#: ../lib/modules/groupOfNames.inc:114 ../lib/modules/nisMailAlias.inc:94 +msgid "" +"Here you can enter a filter value. Only entries which contain the filter " +"text will be shown." +msgstr "" +"Тут ви можете вказати значення фільтра. Будуть показуватися тільки записи, " +"які містять текст фільтра." + +#: ../lib/modules/posixAccount.inc:470 ../lib/modules/groupOfNamesUser.inc:65 +msgid "" +"Here you can enter a list of additional group memberships. The group names " +"are separated by commas." +msgstr "" +"Тут ви можете вказати інші групи для членства в них. Назви груп розділяються " +"комами." + +#: ../lib/modules/organizationalRoleUser.inc:65 +msgid "" +"Here you can enter a list of roles. The role names are separated by commas." +msgstr "Тут ви можете вказати список ролей. Назви ролей розділяються комами." + +#: ../lib/modules/device.inc:66 +msgid "Here you can enter a serial number for this device." +msgstr "Тут ви можете вказати серійний номер цього пристрою." + +#: ../lib/modules/windowsUser.inc:181 ../lib/modules/windowsUser.inc:185 +msgid "Here you can enter additional web sites for the user." +msgstr "Тут ви можете вказати додаткові веб-сайти для цього користувача." + +#: ../help/help.inc:215 +msgid "" +"Here you can enter an alternative mail address for the password. To use the " +"user's primary email address please leave the field blank." +msgstr "" +"Тут ви можете вказати іншу адресу електронної пошти для пароля. Будь ласка, " +"залиште це поле порожнім, якщо хочете використовувати свою основну адресу." + +#: ../lib/modules/customFields.inc:81 +msgid "" +"Here you can enter one or more object classes (separated by comma). This " +"will allow you to add/remove the group's attributes including their object " +"classes." +msgstr "" +"Тут ви можете вказати один або кілька класів об’єктів (розділені комами). Це " +"дозволить вам додавати / видаляти атрибути групи, включно з їх класами " +"об’єктів." + +#: ../lib/modules/inetOrgPerson.inc:801 ../lib/modules/inetOrgPerson.inc:805 +msgid "Here you can enter the user's department." +msgstr "Тут ви можете вказати підрозділ користувача." + +#: ../lib/modules/zarafaUser.inc:156 +msgid "Here you can explicitly enable and disable Zarafa features." +msgstr "Тут ви можете явно включати та виключати можливості Zarafa." + +#: ../help/help.inc:213 +msgid "" +"Here you can export PDF structures to other server profiles (overwrite " +"existing). You may also export a structure to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"structure with this name." +msgstr "" +"Тут ви можете експортувати структури PDF в інші профілі сервера " +"(перезаписуючи існуюючі). Ви також можете експортувати структуру в глобальні " +"шаблони. В цьому випадку вона буде зкопійована у всі профілі сервера, які ще " +"не мають структуру з такою назвою." + +#: ../help/help.inc:195 +msgid "" +"Here you can export account profiles to other server profiles (overwrite " +"existing). You may also export a profile to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"profile with this name." +msgstr "" +"Тут ви можете експортувати профілі акаунта в інші профілі сервера " +"(перезаписуючи існуючі). Ви також можете експортувати профіль в глобальні " +"шаблони. В цьому випадку його буде скопійовано у всі профілі сервера, які ще " +"не мають профіль з такою назвою." + +#: ../help/help.inc:211 +msgid "" +"Here you can import PDF structures from other server profiles (overwrite " +"existing)." +msgstr "" +"Тут ви можете імпортувати PDF структури з інших профілів сервера " +"(перезаписуючи існуючі)." + +#: ../help/help.inc:193 +msgid "" +"Here you can import account profiles from other server profiles (overwrite " +"existing)." +msgstr "" +"Тут ви можете імпортувати профілі акаунтів з інших профілів сервера " +"(перезаписуючи існуючі)." + +#: ../help/help.inc:169 +msgid "" +"Here you can input simple filter expressions (e.g. 'value' or 'v*'). The " +"filter is case-sensitive." +msgstr "" +"Тут ви можете додати прості фільтри (наприклад, 'value' або 'v*'). Фільтр " +"регістронезалежний." + +#: ../help/help.inc:199 +msgid "" +"Here you can load an account profile to set default settings for your " +"account. The \"default\" profile is automatically loaded for new accounts." +msgstr "" +"Тут ви можете завантажити профіль акаунта для встановлення типових значень. " +"\"Типовий\" профіль автоматично завантажується для нових акаунтів." + +#: ../lib/tools/profileEditor.inc:53 +msgid "Here you can manage your account profiles." +msgstr "Тут ви можете управляти профілями вашого акаунта." + +#: ../help/help.inc:181 +msgid "Here you can overwrite the display name for this account type." +msgstr "Тут ви можете переписати показуване ім’я для цього типу акаунта." + +#: ../help/help.inc:201 +msgid "" +"Here you can select a PDF structure and export the account to a PDF file." +msgstr "Тут ви можете вибрати PDF структуру та експортувати акаунт в PDF файл." + +#: ../help/help.inc:151 +msgid "" +"Here you can select where LAM should save its log messages. System logging " +"will go to Syslog on Unix systems and event log on Windows. You can also " +"select an extra file." +msgstr "" +"Тут можна вибрати, куди LAM буде зберігати логи. Системний лог - це Syslog " +"на Unix та журнал подій на Windows системах. Ткож ви можете вибрати запис в " +"окремий файл." + +#: ../help/help.inc:112 +msgid "" +"Here you can select which plugins you want to use for account management." +msgstr "" +"Тут можна вибрати, які модулі використовувати для управління акаунтами." + +#: ../lib/modules/customFields.inc:169 +msgid "Here you can set a custom display name for this module." +msgstr "Тут ви можете встановити користувацьку назву для цього модуля." + +#: ../lib/modules/customFields.inc:97 +msgid "Here you can set a describing text for your custom field." +msgstr "Тут ви можете встановити описовий текст для створюваного поля." + +#: ../help/help.inc:125 +msgid "" +"Here you can set a limit for LDAP searches. This will restrict the number of " +"results for LDAP searches. Please use this if LAM's LDAP queries produce too " +"much load." +msgstr "" +"Тут ви можете обмежити пошук в LDAP. Це обмежить кількість результатів, які " +"повертає пошук. Будь ласка, використовуйте це, якщо виникає завелике " +"навантаження на сервер LDAP від запитів LAM." + +#: ../lib/modules/customFields.inc:173 +msgid "Here you can set the URL to a custom icon (32x32px) for this module." +msgstr "" +"Тут ви можете встановити URL для користувацького значка (32x32px) цього " +"модуля." + +#: ../help/help.inc:237 +msgid "" +"Here you can specify additional CSS links to change the layout of the self " +"service pages. This is useful to adapt them to your corporate design. Please " +"enter one link per line." +msgstr "" +"Тут ви можете вказати додаткові посилання CSS для зміни зовнішнього виду " +"сторінок самообслуговування. Це можна використати для вашого корпоративного " +"стиля. Одне посилання на один рядок." + +#: ../help/help.inc:155 +msgid "" +"Here you can specify minimum requirements for passwords. The character " +"classes are: lowercase, uppercase, numeric and symbols." +msgstr "" +"Тут ви можете вказати мінімальні вимоги до паролей. Класи символів: маленькі " +"літери, великі літери, цифри та символи." + +#: ../lib/modules/nisnetgroup.inc:92 +msgid "" +"Here you can specify subgroups which are included in this NIS netgroup. All " +"members of the subgroups will be treated as members of this group." +msgstr "" +"Тут ви можете вказати підгрупи, які включено в цю мережеву групу NIS. Всі " +"члени підгрупи будуть розглядатися, як члени цієї групи." + +#: ../help/help.inc:129 +msgid "" +"Here you can specify the DN and password of the bind user that will be used " +"for the LDAP search. This is required if your LDAP server does not allow " +"anonymous access." +msgstr "" +"Тут ви можете вказати DN та пароль користувача для зв’язку, який буде " +"використано для пошуку в LDAP. Якщо ваш сервер не дозволяє анонімний доступ, " +"то це необхідно заповнити." + +#: ../lib/modules/hostObject.inc:80 +msgid "" +"Here you can specify the list of host names where this account has login " +"privileges. The wildcard \"*\" represents all hosts. You may also use \"!\" " +"in front of a host name to deny access to a host." +msgstr "" +"Тут ви можете вказати список хостів, де цей акаунт може входити в систему. " +"Маска \"*\" означає всі хости. Ви також можете використовувати \"!\" перед " +"назвою хоста, якщо хочете заборонити доступ до цього хоста." + +#: ../lib/modules/sambaDomain.inc:102 +msgid "" +"Here you can specify the minimum number of characters for a user password." +msgstr "Тут задається мінімальна кількість символів для пароля користувача." + +#: ../templates/lists/changePassword.php:350 +msgid "Here you can specify the new password yourself." +msgstr "Тут ви можете вказати новий пароль самостійно." + +#: ../lib/modules/sambaSamAccount.inc:382 +msgid "Here you can specify the shadowing mode." +msgstr "Тут ви можете вказати режим shadowing." + +#: ../lib/tools/tests.inc:53 +msgid "Here you can test if certain LAM features work on your installation." +msgstr "Тут можна протестувати, чи будуть працювати визначені функції LAM." + +#: ../lib/modules/customFields.inc:165 +msgid "Here you can upload a new file." +msgstr "Тут ви можете завантажити новий файл." + +#: ../templates/config/conftypes.php:283 +#: ../lib/types/zarafaAddressListType.inc:95 +#: ../lib/types/zarafaDynamicGroupType.inc:96 +#: ../lib/modules/zarafaDynamicGroup.inc:79 +#: ../lib/modules/zarafaDynamicGroup.inc:136 +#: ../lib/modules/zarafaDynamicGroup.inc:169 +#: ../lib/modules/zarafaDynamicGroup.inc:273 +#: ../lib/modules/zarafaDynamicGroup.inc:461 +#: ../lib/modules/zarafaContact.inc:71 ../lib/modules/zarafaContact.inc:164 +#: ../lib/modules/zarafaContact.inc:172 ../lib/modules/zarafaContact.inc:247 +#: ../lib/modules/zarafaContact.inc:572 ../lib/modules/zarafaGroup.inc:85 +#: ../lib/modules/zarafaGroup.inc:146 ../lib/modules/zarafaGroup.inc:196 +#: ../lib/modules/zarafaGroup.inc:294 ../lib/modules/zarafaGroup.inc:665 +#: ../lib/modules/zarafaAddressList.inc:67 +#: ../lib/modules/zarafaAddressList.inc:112 +#: ../lib/modules/zarafaAddressList.inc:143 +#: ../lib/modules/zarafaAddressList.inc:214 +#: ../lib/modules/zarafaAddressList.inc:343 ../lib/modules/zarafaUser.inc:80 +#: ../lib/modules/zarafaUser.inc:290 ../lib/modules/zarafaUser.inc:339 +#: ../lib/modules/zarafaUser.inc:367 ../lib/modules/zarafaUser.inc:577 +#: ../lib/modules/zarafaUser.inc:1274 ../help/help.inc:174 +msgid "Hidden" +msgstr "Сховано" + +#: ../help/help.inc:175 +msgid "" +"Hidden account types will not show up in LAM. This is useful if you want to " +"display e.g. only groups but still need to manage their members." +msgstr "" +"Сховані типи акаунта не будуть показуватися в LAM. Це зручно, якщо ви хочете " +"показувати, наприклад, тільки групи, але при цьому мати можливість " +"редагувати їх учасників." + +#: ../lib/modules/nisMailAliasUser.inc:104 +#: ../lib/modules/nisMailAliasUser.inc:563 +#: ../lib/modules/asteriskAccount.inc:243 +#: ../lib/modules/asteriskAccount.inc:1237 ../lib/modules/qmailUser.inc:102 +#: ../lib/modules/qmailUser.inc:195 ../lib/modules/zarafaGroup.inc:108 +#: ../lib/modules/zarafaGroup.inc:134 ../lib/modules/sambaSamAccount.inc:399 +#: ../lib/modules/sambaSamAccount.inc:589 ../lib/modules/posixAccount.inc:252 +#: ../lib/modules/posixAccount.inc:441 ../lib/modules/zarafaUser.inc:132 +#: ../lib/modules/zarafaUser.inc:1781 ../lib/modules/windowsUser.inc:236 +#: ../lib/modules/windowsUser.inc:561 ../lib/modules/inetOrgPerson.inc:808 +#: ../lib/modules/inetOrgPerson.inc:3505 ../lib/modules/freeRadius.inc:112 +#: ../lib/modules/freeRadius.inc:118 ../lib/modules/zarafaServer.inc:88 +#: ../lib/modules/zarafaServer.inc:159 ../lib/modules/qmailGroup.inc:68 +#: ../lib/modules/qmailGroup.inc:119 ../lib/modules/organizationalRole.inc:81 +#: ../lib/modules/organizationalRole.inc:159 +#: ../lib/modules/passwordSelfReset.inc:160 +#: ../lib/modules/passwordSelfReset.inc:209 +#: ../lib/modules/windowsGroup.inc:110 ../lib/modules/windowsGroup.inc:161 +#: ../lib/modules/groupOfNames.inc:81 ../lib/modules/groupOfNames.inc:193 +msgid "Hidden options" +msgstr "Сховані опції" + +#: ../templates/config/confmain.php:375 +msgid "Hidden tools" +msgstr "Сховані інструменти" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1115 +msgid "Hide" +msgstr "Сховати" + +#: ../lib/modules/customScripts.inc:88 ../lib/modules/customScripts.inc:102 +#: ../lib/modules/customScripts.inc:112 +msgid "Hide command in messages" +msgstr "Сховати команди у повідомленнях" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1116 +msgid "Hide internal attributes" +msgstr "Сховати внутрішні атрибути" + +#: ../lib/modules/customScripts.inc:92 ../lib/modules/customScripts.inc:104 +msgid "Hide tab" +msgstr "Приховати вкладку" + +#: ../templates/3rdParty/pla/lib/page.php:407 +msgid "Hide/Unhide the tree" +msgstr "Сховати / Показати дерево" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:58 +msgid "Hint" +msgstr "Підказка" + +#: ../templates/masscreate.php:249 +msgid "" +"Hint: Format all cells as text in your spreadsheet program and turn off auto " +"correction." +msgstr "" +"Підказка: Відформатуйте всі клітинки як текст та вимкніть автокорекцію." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1005 +msgid "Hint: To delete an attribute, empty the text field and click save." +msgstr "" +"Підказка: для вилучення атрибута, очистіть рядок та натисніть зберегти." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1342 +msgid "" +"Hint: You must choose exactly one structural object class (shown in bold " +"above)" +msgstr "" +"Підказка: Ви повинні вибрати тільки один структурний клас об’єкта (показано " +"жирним шрифтом вище)" + +#: ../lib/modules/posixAccount.inc:535 ../lib/modules/windowsUser.inc:218 +#: ../lib/modules/groupOfNamesUser.inc:61 +msgid "Hold the CTRL-key to (de)select multiple groups." +msgstr "Утримуйте CTRL для вибору кількох груп." + +#: ../lib/modules/organizationalRoleUser.inc:61 +msgid "Hold the CTRL-key to (de)select multiple roles." +msgstr "Утримуйте CTRL для вибору кількох ролей." + +#: ../lib/types/user.inc:98 ../lib/modules/sambaSamAccount.inc:230 +#: ../lib/modules/sambaSamAccount.inc:354 +#: ../lib/modules/sambaSamAccount.inc:1501 +#: ../lib/modules/sambaSamAccount.inc:1916 ../lib/modules/posixAccount.inc:100 +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:103 +#: ../lib/modules/posixAccount.inc:310 ../lib/modules/posixAccount.inc:416 +#: ../lib/modules/posixAccount.inc:473 ../lib/modules/posixAccount.inc:477 +#: ../lib/modules/posixAccount.inc:481 ../lib/modules/posixAccount.inc:518 +#: ../lib/modules/posixAccount.inc:1199 ../lib/modules/posixAccount.inc:1459 +#: ../lib/modules/posixAccount.inc:1655 ../lib/modules/posixAccount.inc:1755 +#: ../lib/modules/posixAccount.inc:1854 ../lib/modules/windowsUser.inc:247 +#: ../lib/modules/windowsUser.inc:436 ../lib/modules/windowsUser.inc:479 +#: ../lib/modules/windowsUser.inc:526 ../lib/modules/windowsUser.inc:618 +#: ../lib/modules/windowsUser.inc:768 ../lib/modules/windowsUser.inc:1629 +msgid "Home directory" +msgstr "Домашній каталог" + +#: ../lib/modules/posixAccount.inc:103 +#, php-format +msgid "" +"Home directory changed. To keep home directory you have to run the following " +"command as root: 'mv %s %s'" +msgstr "" +"Домашній каталог змінено. Щоб не втратити домашній каталог виконайте (як " +"root): 'mv %s %s'" + +#: ../lib/modules/sambaSamAccount.inc:214 +#: ../lib/modules/sambaSamAccount.inc:231 +#: ../lib/modules/sambaSamAccount.inc:302 +#: ../lib/modules/sambaSamAccount.inc:486 +#: ../lib/modules/sambaSamAccount.inc:594 +#: ../lib/modules/sambaSamAccount.inc:1203 +#: ../lib/modules/sambaSamAccount.inc:1509 +#: ../lib/modules/sambaSamAccount.inc:1750 +#: ../lib/modules/sambaSamAccount.inc:1901 +#: ../lib/modules/sambaSamAccount.inc:1917 ../lib/modules/windowsUser.inc:244 +#: ../lib/modules/windowsUser.inc:430 ../lib/modules/windowsUser.inc:525 +#: ../lib/modules/windowsUser.inc:766 ../lib/modules/windowsUser.inc:1630 +msgid "Home drive" +msgstr "Мережевий диск" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:95 +#: ../lib/modules/sambaSamAccount.inc:217 +#: ../lib/modules/sambaSamAccount.inc:305 +#: ../lib/modules/sambaSamAccount.inc:494 +#: ../lib/modules/sambaSamAccount.inc:596 +#: ../lib/modules/sambaSamAccount.inc:1211 +#: ../lib/modules/sambaSamAccount.inc:1754 +#: ../lib/modules/sambaSamAccount.inc:1900 +msgid "Home path" +msgstr "Шлях до домашнього каталогу" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:96 +msgid "Home path is invalid." +msgstr "Неправильний шлях до домашнього каталогу." + +#: ../lib/modules/zarafaUser.inc:129 +msgid "Home server for the user." +msgstr "Домашній сервер для цього користувача." + +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:160 +#: ../lib/modules/inetOrgPerson.inc:425 ../lib/modules/inetOrgPerson.inc:575 +#: ../lib/modules/inetOrgPerson.inc:752 ../lib/modules/inetOrgPerson.inc:756 +#: ../lib/modules/inetOrgPerson.inc:1390 ../lib/modules/inetOrgPerson.inc:1393 +#: ../lib/modules/inetOrgPerson.inc:1901 ../lib/modules/inetOrgPerson.inc:2489 +#: ../lib/modules/inetOrgPerson.inc:3531 ../lib/modules/inetOrgPerson.inc:3582 +msgid "Home telephone number" +msgstr "Домашній телефон" + +#: ../lib/modules/posixAccount.inc:100 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/windowsUser.inc:618 ../lib/modules/windowsUser.inc:619 +msgid "Homedirectory contains invalid characters." +msgstr "Домашній каталог містить неприпустимі символи." + +#: ../lib/types/sudo.inc:79 ../lib/modules/asteriskAccount.inc:107 +#: ../lib/modules/asteriskAccount.inc:254 +#: ../lib/modules/asteriskAccount.inc:268 +#: ../lib/modules/asteriskAccount.inc:318 +#: ../lib/modules/asteriskAccount.inc:591 +#: ../lib/modules/asteriskAccount.inc:984 ../lib/modules/nisnetgroup.inc:217 +#: ../lib/modules/nisnetgroup.inc:585 ../lib/modules/fixed_ip.inc:580 +#: ../lib/modules/hostObject.inc:145 +msgid "Host" +msgstr "Хост" + +#: ../lib/types/host.inc:62 +msgid "Host accounts (e.g. Samba)" +msgstr "Акаути хоста (наприклад, Samba)" + +#: ../lib/types/host.inc:193 +#, php-format +msgid "Host count: %s" +msgstr "Кількість хостів: %s" + +#: ../lib/types/host.inc:94 +msgid "Host description" +msgstr "Опис хоста" + +#: ../lib/modules/account.inc:96 ../lib/modules/posixAccount.inc:549 +#: ../lib/modules/posixAccount.inc:557 +msgid "Host description. If left empty host name will be used." +msgstr "Опис хоста. Якщо не задано, то використовуватиметься назва хоста." + +#: ../lib/modules/hostObject.inc:91 ../lib/modules/hostObject.inc:98 +#: ../lib/modules/hostObject.inc:217 +msgid "Host list" +msgstr "Список хостів" + +#: ../lib/types/host.inc:91 ../lib/types/host.inc:92 ../lib/types/bind.inc:77 +#: ../lib/modules/account.inc:91 ../lib/modules/account.inc:212 +#: ../lib/modules/windowsHost.inc:74 ../lib/modules/windowsHost.inc:94 +#: ../lib/modules/windowsHost.inc:119 ../lib/modules/windowsHost.inc:131 +#: ../lib/modules/windowsHost.inc:142 ../lib/modules/windowsHost.inc:288 +#: ../lib/modules/posixAccount.inc:115 ../lib/modules/posixAccount.inc:116 +#: ../lib/modules/posixAccount.inc:118 ../lib/modules/posixAccount.inc:375 +#: ../lib/modules/posixAccount.inc:406 ../lib/modules/posixAccount.inc:544 +#: ../lib/modules/posixAccount.inc:1422 ../lib/modules/posixAccount.inc:1844 +#: ../lib/modules/bindDLZ.inc:81 ../lib/modules/bindDLZ.inc:140 +#: ../lib/modules/bindDLZ.inc:144 ../lib/modules/bindDLZ.inc:240 +#: ../lib/modules/bindDLZ.inc:294 ../lib/modules/bindDLZ.inc:410 +#: ../lib/modules/bindDLZ.inc:470 ../lib/modules/bindDLZ.inc:497 +#: ../lib/modules/bindDLZ.inc:542 ../lib/modules/bindDLZ.inc:546 +#: ../lib/modules/bindDLZ.inc:750 ../lib/modules/bindDLZ.inc:1464 +#: ../lib/modules/bindDLZ.inc:1492 ../lib/modules/nisnetgroup.inc:153 +#: ../lib/modules/nisnetgroup.inc:481 +msgid "Host name" +msgstr "Назва хоста" + +#: ../lib/modules/posixAccount.inc:122 +msgid "Host name already exists!" +msgstr "Назва хоста вже існує!" + +#: ../lib/modules/windowsHost.inc:131 ../lib/modules/windowsHost.inc:132 +#: ../lib/modules/posixAccount.inc:116 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/nisnetgroup.inc:153 +msgid "" +"Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Назва хоста містить неприпустимі сисмволи. Можливі символи: a-z, A-Z, 0-9 " +"та .-_ !" + +#: ../lib/modules/posixAccount.inc:118 +msgid "Host name in use. Selected next free host name." +msgstr "Назва хоста вже використовується. Виберіть іншу назву." + +#: ../lib/modules/sambaSamAccount.inc:1093 +msgid "Host name must end with $!" +msgstr "Назва хоста повинна завершуватися на $!" + +#: ../lib/modules/account.inc:92 ../lib/modules/posixAccount.inc:545 +msgid "" +"Host name of the host which should be created. Valid characters are: a-z,A-" +"Z,0-9, .-_$. Host names are always ending with $. If last character is not $ " +"it will be added. If host name is already used host name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"Назва хоста для хоста, який буде створено. Можливі символи: a-z,A-Z,0-9, .-_" +"$. Назва хоста завжди закінчується на $. Якщо останній смвол не $, то $ буде " +"додано. Якщо назва вже існує, то до назви буде додано число. Буде " +"використовуватися наступне вільне число." + +#: ../lib/types/host.inc:53 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:96 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:227 ../lib/modules/sudoRole.inc:78 +#: ../lib/modules/sudoRole.inc:103 ../lib/modules/sudoRole.inc:165 +#: ../lib/modules/sudoRole.inc:217 ../lib/modules/sudoRole.inc:229 +#: ../lib/modules/sudoRole.inc:343 ../lib/modules/sudoRole.inc:807 +#: ../lib/modules/fixed_ip.inc:80 ../lib/modules/hostObject.inc:69 +#: ../lib/modules/hostObject.inc:79 +msgid "Hosts" +msgstr "Хости" + +#: ../lib/modules/qmailUser.inc:352 +msgid "I am out of office." +msgstr "Я поза офісом." + +#: ../lib/modules/posixGroup.inc:602 ../lib/modules/posixAccount.inc:106 +#: ../lib/modules/posixAccount.inc:1169 +msgid "ID is already in use" +msgstr "ID вже зайнято" + +#: ../lib/modules/posixGroup.inc:600 ../lib/modules/posixGroup.inc:601 +#: ../lib/modules/posixGroup.inc:602 ../lib/modules/posixGroup.inc:724 +#: ../lib/modules/posixAccount.inc:104 ../lib/modules/posixAccount.inc:105 +#: ../lib/modules/posixAccount.inc:106 ../lib/modules/posixAccount.inc:1160 +#: ../lib/modules/posixAccount.inc:1165 ../lib/modules/posixAccount.inc:1169 +msgid "ID-Number" +msgstr "ID-Number" + +#: ../lib/modules/zarafaUser.inc:299 ../lib/modules/zarafaUser.inc:642 +#: ../lib/modules/zarafaUser.inc:1331 +msgid "IMAP" +msgstr "IMAP" + +#: ../lib/modules/imapAccess.inc:86 ../lib/modules/imapAccess.inc:124 +msgid "IMAP admin user" +msgstr "Адміністратор IMAP" + +#: ../lib/modules/imapAccess.inc:89 ../lib/modules/imapAccess.inc:131 +msgid "IMAP password input" +msgstr "Введення пароля IMAP" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ipHost.inc:55 +#: ../lib/modules/ipHost.inc:65 ../lib/modules/ipHost.inc:128 +#: ../lib/modules/asteriskAccount.inc:227 +#: ../lib/modules/asteriskAccount.inc:295 +#: ../lib/modules/asteriskAccount.inc:522 +#: ../lib/modules/asteriskAccount.inc:746 +#: ../lib/modules/asteriskAccount.inc:1011 +#: ../lib/modules/asteriskAccount.inc:1291 ../lib/modules/bindDLZ.inc:85 +#: ../lib/modules/bindDLZ.inc:89 ../lib/modules/bindDLZ.inc:248 +#: ../lib/modules/bindDLZ.inc:488 ../lib/modules/bindDLZ.inc:645 +#: ../lib/modules/bindDLZ.inc:1472 ../lib/modules/freeRadius.inc:84 +#: ../lib/modules/freeRadius.inc:122 ../lib/modules/freeRadius.inc:193 +#: ../lib/modules/freeRadius.inc:225 ../lib/modules/freeRadius.inc:281 +#: ../lib/modules/freeRadius.inc:537 ../lib/modules/fixed_ip.inc:106 +#: ../lib/modules/fixed_ip.inc:421 ../lib/modules/fixed_ip.inc:741 +msgid "IP address" +msgstr "ІР-адреса" + +#: ../lib/modules/ddns.inc:98 ../lib/modules/ddns.inc:112 +#: ../lib/modules/ddns.inc:121 ../lib/modules/ddns.inc:381 +#: ../lib/modules/ddns.inc:424 +msgid "IP address of the DNS server" +msgstr "ІР-адреса DNS сервера" + +#: ../lib/modules/asteriskAccount.inc:228 +msgid "IP address of the peer. Valid only for realtime peers." +msgstr "ІР-адреса учасника. Дійсно тільки для учасників реального часу." + +#: ../lib/modules/asteriskAccount.inc:236 +msgid "IP address or domain name of the registration server." +msgstr "ІР-адреса або доменна назва сервера реєстрації." + +#: ../lib/modules/ipHost.inc:69 ../lib/modules/ipHost.inc:84 +#: ../lib/modules/ipHost.inc:104 ../lib/modules/ipHost.inc:251 +msgid "IP addresses" +msgstr "ІР-адреси" + +#: ../lib/modules/bindDLZ.inc:642 +msgid "IP addresses (\"A/AAAA\" records)" +msgstr "IP адреси (\"A/AAAA\" записи)" + +#: ../lib/modules/fixed_ip.inc:119 +msgid "IP list" +msgstr "Список ІР" + +#: ../lib/modules/customFields.inc:514 +msgid "Icon" +msgstr "Значок" + +#: ../lib/modules/passwordSelfReset.inc:144 +#: ../lib/modules/passwordSelfReset.inc:506 +msgid "Identification method" +msgstr "Метод ідентифікації" + +#: ../templates/masscreate.php:298 ../templates/masscreate.php:372 +msgid "Identifier" +msgstr "Ідентифікатор" + +#: ../lib/modules/sambaSamAccount.inc:238 +#: ../lib/modules/sambaSamAccount.inc:1527 +#: ../lib/modules/sambaSamAccount.inc:1928 +msgid "Idle time limit" +msgstr "Максимальний час неактивності" + +#: ../lib/modules/freeRadius.inc:108 ../lib/modules/freeRadius.inc:132 +#: ../lib/modules/freeRadius.inc:157 ../lib/modules/freeRadius.inc:217 +#: ../lib/modules/freeRadius.inc:240 ../lib/modules/freeRadius.inc:289 +#: ../lib/modules/freeRadius.inc:541 +msgid "Idle timeout" +msgstr "Час неактивності" + +#: ../lib/modules/qmailUser.inc:256 +msgid "" +"If account status is set to deleted, the earliest date when the mail message " +"store including all remaining content will be deleted from the filesystem." +msgstr "" +"Дат, після якої сховище електронних листів може бути вилучено, якщо акаунт " +"має статус \"видалено\"." + +#: ../lib/modules/customFields.inc:177 +msgid "" +"If activated then LAM will show an accordion view if there is more than one " +"group per account type." +msgstr "" +"Якщо активовано, то LAM буде показувати об’єднаний перегляд при більш ніж " +"одній групі на тип акаунту." + +#: ../lib/modules/ppolicyUser.inc:60 +msgid "" +"If activated then the user is forced to change his password at the next " +"login." +msgstr "" +"Якщо активовано, то користувач повинен змінити свій пароль під час " +"наступного входу в систему." + +#: ../lib/modules/sambaSamAccount.inc:268 +msgid "If checked Unix password will also be used as Samba password." +msgstr "Якщо відмічено, то пароль Unix буде використано і для Samba." + +#: ../lib/modules/posixAccount.inc:527 +msgid "" +"If checked account will be deactivated by putting a \"!\" before the " +"encrypted password." +msgstr "" +"Якщо відмічено, то акаунт буде деактивовано (встановлено \"!\" перед " +"паролем)." + +#: ../lib/modules/sambaSamAccount.inc:274 +msgid "If checked no password will be used." +msgstr "Якщо відмічено, то пароль не буде перевірятися." + +#: ../lib/modules/windowsUser.inc:199 +msgid "If checked password does not expire." +msgstr "Якщо відмічено, то пароль ніколи не застаріває." + +#: ../lib/modules/sambaSamAccount.inc:280 +msgid "If checked password does not expire. (Setting X-Flag)" +msgstr "Якщо відмічено, то пароль ніколи не застаріває. (Встановлено X-Flag)" + +#: ../lib/modules/windowsUser.inc:196 +msgid "" +"If checked then the account is locked. You may only unlock accounts but not " +"lock them." +msgstr "" +"Якщо відмічено, то акаунт заблоковано. Ви можете тільки розблокувати " +"акаунти, але не блокувати." + +#: ../lib/modules/windowsUser.inc:193 +msgid "If checked then the account will be deactivated." +msgstr "Якщо відмічено, то акаунт буде відключено." + +#: ../lib/modules/sambaSamAccount.inc:286 +msgid "If checked then the account will be deactivated. (Setting D-Flag)" +msgstr "Якщо відмічено, то акаунт буде відключено. (Встановлено D-Flag)" + +#: ../lib/modules/sambaSamAccount.inc:289 +msgid "" +"If checked then the account will be locked (setting L-Flag). You usually " +"want to use this setting to unlock user accounts which were locked because " +"of failed login attempts." +msgstr "" +"Якщо відмічено, то акаунт буде заблоковано (встановлено L-Flag). Вам " +"зазвичай потрібно буде використовувати це налаштування для розблокування " +"акаунтів, які були заблоковані через невдалі спроби входу." + +#: ../help/help.inc:177 +msgid "" +"If checked then the user will not be able to create new entries of this " +"account type." +msgstr "" +"Якщо відмічено, то користувач не зможе створювати нові акаунти такого типу." + +#: ../help/help.inc:179 +msgid "" +"If checked then the user will not be able to delete entries of this account " +"type." +msgstr "Якщо відмічено, то користувач не зможе вилучати акаунти такого типу." + +#: ../lib/modules/posixGroup.inc:481 +msgid "" +"If empty GID number will be generated automaticly depending on your " +"configuration settings." +msgstr "" +"Якщо порожньо, то GID буде згенеровано автоматично, в залежності від " +"конфігурації." + +#: ../lib/modules/qmailUser.inc:236 +msgid "If empty GID number will be generated automaticly." +msgstr "Якщо порожньо, то GID буде згенеровано автоматично." + +#: ../lib/modules/qmailUser.inc:232 ../lib/modules/posixAccount.inc:462 +msgid "If empty UID number will be generated automaticly." +msgstr "Якщо порожньо, то UID буде згенеровано автоматично." + +#: ../lib/modules/ppolicy.inc:125 +msgid "" +"If enabled the user will not be allowed to login after there have been a " +"specified number of consecutive failed login attempts." +msgstr "" +"Якщо включено, то користувач не зможе увійти в систему після вказаної " +"кількості невдалих спроб входу." + +#: ../help/help.inc:127 +msgid "" +"If enabled then LAM will use user and password that is provided by the web " +"server via HTTP authentication." +msgstr "" +"Якщо включено, то LAM буде використовувати ім’я та пароль отримані від веб- " +"серверачерез HTTP-аутентифікацію." + +#: ../help/help.inc:104 +msgid "" +"If enabled then the default language will be enforced and cannot be chosen " +"by the user." +msgstr "" +"Якщо включено, то типова мова буде встановлена примусово без можливості " +"зміни користувачем." + +#: ../lib/modules/ppolicy.inc:129 +msgid "" +"If enabled users must change their passwords when they first login after a " +"password is set or reset by the administrator." +msgstr "" +"Якщо включено, то при зміні або скиданні їх паролей адміністратором, " +"користувачі повинні будуть змінити свої паролі після першого входу в систему." + +#: ../lib/modules/asteriskAccount.inc:216 +msgid "" +"If registration context is specified, Asterisk will dynamically create and " +"destroy a NoOp priority 1 extension for a given peer who registers or " +"unregisters with Asterisk." +msgstr "" +"Якщо вказано контекст реєстрації, то Asterisk буде динамічно створювати та " +"вилучати розширення NoOp з пріорітетом 1 для даного учасника, який " +"реєструється або розреєструється в Asterisk." + +#: ../lib/modules/sambaDomain.inc:110 +msgid "If set then users need to login to change their password." +msgstr "" +"Якщо встановлено, то користувач зобов’язаний увійти в систему для зміни " +"пароля." + +#: ../lib/modules/sambaSamAccount.inc:271 +msgid "If set to \"true\" Unix password will also be used as Samba password." +msgstr "" +"Якщо встановлено \"true\", то пароль Unix буде використано і для Samba." + +#: ../lib/modules/sambaSamAccount.inc:292 +msgid "If set to \"true\" account will be deactivated. (Setting D-Flag)" +msgstr "" +"Якщо встановлено \"true\", то акаунт буде деактивовано (Встановлено D-Flag)" + +#: ../lib/modules/sambaSamAccount.inc:277 +msgid "If set to \"true\" no password will be used." +msgstr "Якщо встановлено \"true\", то пароль не буде перевірятися." + +#: ../lib/modules/sambaSamAccount.inc:283 +msgid "If set to \"true\" password does not expire. (Setting X-Flag)" +msgstr "" +"Якщо встановлено \"true\", то пароль ніколи не затаріє. (Встановлено X-" +"Flag)" + +#: ../lib/modules/qmailGroup.inc:197 +msgid "" +"If set to true then all incomming mails needs to come from a member of the " +"list." +msgstr "" +"Якщо встановлено, то всі вхідні повідомленняповинні бути від учасника в " +"списку." + +#: ../lib/modules/customFields.inc:125 +msgid "" +"If the LDAP attribute has no value then the checkbox is set to this value." +msgstr "" +"Якщо у атрибута LDAP відсутнє значення, тоді чекбокс приймає це значення." + +#: ../lib/modules/zarafaUser.inc:97 +msgid "" +"If the mailbox size reaches the soft quota limit, the user will not be able " +"to send email until the size of the mailbox is reduced." +msgstr "" +"Якщо розмір поштової скриньки досягає розміру м’якої квоти, то користувач не " +"зможе надсилати листи, поки розмір скриньки не зменшиться." + +#: ../lib/modules/passwordSelfReset.inc:149 +msgid "" +"If the user has a Samba 3 extension then the Samba password will also be " +"set. Otherwise, no action is taken." +msgstr "" +"Якщо користувач використовує розширення Samba 3, тоді пароль Samba також " +"буде встановлено. Інакше нічого не відбудеться." + +#: ../lib/modules/windowsUser.inc:145 ../lib/modules/windowsUser.inc:149 +msgid "If the user has multiple telephone numbers then please enter it here." +msgstr "Якщо користувач має кілька телефонних номерів, то вкажіть їх тут." + +#: ../lib/modules/pykotaPrinter.inc:120 ../lib/modules/pykotaPrinter.inc:124 +msgid "" +"If this entry should be a printer group then you can set the member names " +"here." +msgstr "" +"Якщо цей запис повинен бути групою принтерів, то ви можете вписати імена " +"принтерів тут." + +#: ../lib/modules/qmailGroup.inc:229 +msgid "" +"If this is set to true then an incomming mail needs to be approved by the " +"sender." +msgstr "" +"Якщо встановлено, то вся вхідна пошта повинна бути підтверджена відправником." + +#: ../lib/modules/qmailGroup.inc:144 ../lib/modules/qmailGroup.inc:148 +msgid "" +"If you enter one or more email addresses then mail delivery errors are " +"forwarded to these addresses instead of the sender of the original mail." +msgstr "" +"Якщо ви вкажете один або кілька адрес ел.пошти, то помилки доставки будуть " +"відправлятися на ці адреси, а не відправнику оригінального повідомлення." + +#: ../lib/modules/sambaSamAccount.inc:331 +msgid "" +"If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" +"Якщо не задано, то LAM використовує: uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../lib/modules/zarafaServer.inc:85 +msgid "" +"If you run Zarafa behind a reverse proxy then you can specify the server URL " +"here (e.g. \"https://zproxy.example.com:237/z1\")." +msgstr "" +"Якщо Zarafa працює за оберненим проксі, то ви можете вказати тут URL сервера " +"(наприклад, \"https://zproxy.example.com:237/z1\")." + +#: ../lib/modules/passwordSelfReset.inc:141 +msgid "" +"If you select this option then the user is only authenticated by his email " +"address. LAM Pro will not ask for the answer to the security question. " +"Please handle with care." +msgstr "" +"Якщо ви виберете цю опцію, то користувача буде аутентифіковано тільки за " +"власною адресою ел.пошти. LAM Pro не буде питати відповіді на секретн " +"питання. Користуватися обережно." + +#: ../lib/modules/heimdalKerberos.inc:131 +msgid "If you set this option then the user cannot request TGT-based tickets." +msgstr "" +"Якщо ви встановите цю опцію, то користувач не зможе запитувати TGT-based " +"квитки." + +#: ../lib/modules/mitKerberos.inc:175 ../lib/modules/heimdalKerberos.inc:149 +msgid "If you set this option then the user cannot request any tickets." +msgstr "" +"Якщо ви встановите цю опцію, то користувач не зможе запитувати будь-які " +"квитки." + +#: ../lib/modules/mitKerberos.inc:163 ../lib/modules/heimdalKerberos.inc:134 +msgid "" +"If you set this option then the user cannot request forwardable tickets." +msgstr "" +"Якщо ви встановите цю опцію, то користувач не зможе запитувати квитки, які " +"пересилаються." + +#: ../lib/modules/mitKerberos.inc:160 ../lib/modules/heimdalKerberos.inc:143 +msgid "If you set this option then the user cannot request post-dated tickets." +msgstr "" +"Якщо ви встановите цю опцію, то користувач не зможе запитувати post-dated " +"квитки." + +#: ../lib/modules/mitKerberos.inc:169 ../lib/modules/heimdalKerberos.inc:137 +msgid "If you set this option then the user cannot request proxiable tickets." +msgstr "" +"Якщо ви встановите цю опцію, то користувач не зможе запитувати проксовані " +"квитки." + +#: ../lib/modules/mitKerberos.inc:166 ../lib/modules/heimdalKerberos.inc:140 +msgid "If you set this option then the user cannot request renewable tickets." +msgstr "" +"Якщо ви встановите цю опцію, то користувач не зможе запитувати оновлювані " +"квитки." + +#: ../lib/modules/mitKerberos.inc:187 ../lib/modules/heimdalKerberos.inc:146 +msgid "If you set this option then the user cannot request service tickets." +msgstr "" +"Якщо ви встановите цю опцію, то користувач не зможе запитувати сервісні " +"квитки." + +#: ../lib/modules/mitKerberos.inc:184 ../lib/modules/sambaSamAccount.inc:295 +#: ../lib/modules/windowsUser.inc:215 ../lib/modules/heimdalKerberos.inc:128 +#: ../help/help.inc:207 +msgid "" +"If you set this option then the user has to change his password at the next " +"login." +msgstr "" +"Якщо ви встановите цю опцію, то користувач змушений буде змінити свій пароль " +"при наступному вході в систему." + +#: ../lib/modules/mitKerberos.inc:181 +msgid "" +"If you set this option then the user must preauthenticate himself using a " +"hardware device." +msgstr "" +"Якщо ви встановите цю опцію, то користувач повинен попередньо " +"аутентифікуватися використовуючи апаратний пристрій." + +#: ../lib/modules/mitKerberos.inc:178 ../lib/modules/heimdalKerberos.inc:152 +msgid "If you set this option then the user must preauthenticate himself." +msgstr "" +"Якщо ви встановите цю опцію, то користувач повинен попередньо " +"аутентифікуватися." + +#: ../lib/modules/mitKerberos.inc:190 ../lib/modules/heimdalKerberos.inc:155 +msgid "" +"If you set this option then this account is marked as password change " +"service." +msgstr "" +"Якщо ви встановите цю опцію, то цей акаунт буде помічено, як сервіс зміни " +"пароля." + +#: ../lib/modules/selfRegistration.inc:87 +msgid "" +"If you use the object class \"inetOrgPerson\" and do not provide the \"cn\" " +"attribute then LAM will set it to the user name value." +msgstr "" +"Якщо ви використовуєте клас об’єкту \"inetOrgPerson\" та не вкажете атрибут " +"\"cn\", то LAM запише в нього ім’я користувача." + +#: ../help/help.inc:106 +msgid "" +"If you want to change the current preferences password, please enter it here." +msgstr "" +"Якщо ви хочете змінити пароль для входу до майстра налаштувань, наберіть " +"новий пароль тут." + +#: ../help/help.inc:141 +msgid "" +"If you want to change your master configuration password, please enter it " +"here." +msgstr "Якщо ви хочете змінити майстер-пароль, наберіть новий пароль тут." + +#: ../lib/modules/sambaGroupMapping.inc:151 +msgid "If you want to use a well known RID you can select a well known group." +msgstr "" +"Ви можете вибрати загальновідому групу, якщо ви хочете використовувати " +"загальновідомий RID." + +#: ../help/help.inc:116 +msgid "" +"If your server runs on another port then add a comma and the port number " +"after the server." +msgstr "" +"Якщо сервер запущено на іншому порту, додайте кому та номер порта після " +"назви сервера." + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:49 +msgid "Image not available" +msgstr "Зображення недоступно" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:292 +#: ../templates/3rdParty/pla/htdocs/import.php:45 +#: ../templates/3rdParty/pla/htdocs/import_form.php:19 +msgid "Import" +msgstr "Імпорт" + +#: ../templates/pdfedit/pdfmain.php:215 ../templates/pdfedit/pdfmain.php:216 +#: ../help/help.inc:210 +msgid "Import PDF structures" +msgstr "Імпорт структур PDF" + +#: ../templates/config/mainmanage.php:344 +msgid "Import from server" +msgstr "Імпорт з сервера" + +#: ../templates/profedit/profilemain.php:203 +#: ../templates/profedit/profilemain.php:204 ../help/help.inc:192 +msgid "Import profiles" +msgstr "Імпорт профілів" + +#: ../templates/pdfedit/pdfmain.php:109 +#: ../templates/profedit/profilemain.php:124 +msgid "Import successful" +msgstr "Імпорт успішний" + +#: ../templates/config/mainmanage.php:189 +msgid "Imported certificate from server." +msgstr "Імпортований сертифікат з сервера." + +#: ../templates/config/mainmanage.php:346 +msgid "Imports the certificate directly from your LDAP server." +msgstr "Імпортує сертифікат безпосередньо з вашого LDAP сервера." + +#: ../lib/modules/pykotaPrinter.inc:108 +msgid "" +"In passthrough mode, users are allowed to print without any impact on their " +"quota or account balance." +msgstr "" +"В режимі passthrough, користувачі можуть друкувати без врахування їх квоти " +"або балансу рахунку." + +#: ../lib/modules/fixed_ip.inc:115 +msgid "Inactive hosts will not be able to get an address from the DHCP server." +msgstr "Неактивні хости не будуть здатні отримати адресу з сервера DHCP." + +#: ../templates/3rdParty/pla/htdocs/export_form.php:87 +msgid "Include system attributes" +msgstr "Включати системні атрибути" + +#: ../lib/tools/serverInfo.inc:53 +msgid "Information about the LDAP server." +msgstr "Інформація про LDAP сервер." + +#: ../lib/modules/sambaSamAccount.inc:233 +#: ../lib/modules/sambaSamAccount.inc:360 +#: ../lib/modules/sambaSamAccount.inc:1513 +#: ../lib/modules/sambaSamAccount.inc:1923 +msgid "Inherit client startup configuration" +msgstr "Успадковувати стартову конфігурацію клієнта" + +#: ../templates/schema/schema.php:396 ../templates/schema/schema.php:417 +msgid "Inherited from" +msgstr "Успадковано від" + +#: ../templates/schema/schema.php:157 ../templates/schema/schema.php:353 +msgid "Inherits from" +msgstr "Успадковує від" + +#: ../lib/modules/pykotaUser.inc:249 +msgid "Initial payment" +msgstr "Початковий платіж" + +#: ../lib/modules/sambaSamAccount.inc:234 +#: ../lib/modules/sambaSamAccount.inc:363 +#: ../lib/modules/sambaSamAccount.inc:1515 +#: ../lib/modules/sambaSamAccount.inc:1924 +msgid "Initial program" +msgstr "Початкова програма" + +#: ../lib/modules/windowsUser.inc:132 ../lib/modules/windowsUser.inc:302 +#: ../lib/modules/windowsUser.inc:503 ../lib/modules/windowsUser.inc:704 +#: ../lib/modules/windowsUser.inc:1591 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:172 ../lib/modules/inetOrgPerson.inc:321 +#: ../lib/modules/inetOrgPerson.inc:617 ../lib/modules/inetOrgPerson.inc:836 +#: ../lib/modules/inetOrgPerson.inc:1187 ../lib/modules/inetOrgPerson.inc:1190 +#: ../lib/modules/inetOrgPerson.inc:1917 ../lib/modules/inetOrgPerson.inc:2681 +#: ../lib/modules/inetOrgPerson.inc:3557 ../lib/modules/inetOrgPerson.inc:3589 +msgid "Initials" +msgstr "Ініціали" + +#: ../templates/serverInfo.php:282 ../templates/serverInfo.php:368 +msgid "Initiated" +msgstr "Ініційовано" + +#: ../lib/modules/quota.inc:57 ../lib/modules/systemQuotas.inc:105 +msgid "Inode hard quota" +msgstr "Жорстка квота на inode" + +#: ../lib/modules/quota.inc:57 ../lib/modules/quota.inc:58 +#: ../lib/modules/systemQuotas.inc:105 ../lib/modules/systemQuotas.inc:106 +msgid "" +"Inode hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"Жорстка квота на inode містить неприпустимі символи. Допускається тільки " +"цілі числа." + +#: ../lib/modules/quota.inc:61 ../lib/modules/systemQuotas.inc:109 +msgid "Inode quota" +msgstr "Квота на inode" + +#: ../lib/modules/quota.inc:55 ../lib/modules/systemQuotas.inc:103 +msgid "Inode soft quota" +msgstr "М’яка квота на inode" + +#: ../lib/modules/quota.inc:55 ../lib/modules/quota.inc:56 +#: ../lib/modules/systemQuotas.inc:103 ../lib/modules/systemQuotas.inc:104 +msgid "" +"Inode soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "" +"М’яка квота на inode містить неприпустимі символи. Допускається тільки цілі " +"числа." + +#: ../lib/modules/quota.inc:61 ../lib/modules/quota.inc:62 +#: ../lib/modules/systemQuotas.inc:109 ../lib/modules/systemQuotas.inc:110 +msgid "Inode soft quota must be smaller than inode hard quota." +msgstr "М’яка квота на inode повинна бути менше жорсткої квоти на inode." + +#: ../templates/selfService/adminMain.php:685 +msgid "Input fields" +msgstr "Поля для вводу" + +#: ../lib/modules/asteriskAccount.inc:155 +#: ../lib/modules/asteriskAccount.inc:277 +#: ../lib/modules/asteriskAccount.inc:391 +#: ../lib/modules/asteriskAccount.inc:652 +#: ../lib/modules/asteriskAccount.inc:993 +#: ../lib/modules/asteriskAccount.inc:1255 +msgid "Insecure" +msgstr "Небезпечно" + +#: ../lib/modules/sambaSamAccount.inc:95 +msgid "Inserted user or group name in home path." +msgstr "Ім’я користувача або групи включено в шлях домашнього каталогу." + +#: ../lib/modules/sambaSamAccount.inc:101 +msgid "Inserted user or group name in logon script." +msgstr "Ім’я користувача або групи включено в logon script." + +#: ../lib/modules/sambaSamAccount.inc:98 +msgid "Inserted user or group name in profile path." +msgstr "Ім’я користувача або групи включено в шлях профіля." + +#: ../lib/modules/fixed_ip.inc:475 +msgid "Invalid MAC address." +msgstr "Неправильна MAC адреса." + +#: ../templates/massBuildAccounts.php:201 +msgid "Invalid RDN attribute!" +msgstr "Неправильний атрибут RDN!" + +#: ../templates/3rdParty/pla/htdocs/rename.php:42 +msgid "Invalid RDN value" +msgstr "Неправильне значення RDN" + +#: ../lib/modules/fixed_ip.inc:484 +msgid "Invalid description." +msgstr "Неправильний опис." + +#: ../templates/3rdParty/pla/lib/import_functions.php:560 +msgid "Invalid entry" +msgstr "Неправильний запис" + +#: ../lib/modules/selfRegistration.inc:121 +msgid "Invalid format for the specification of additional attributes." +msgstr "Неправильний формат для специфікації додаткових атрибутів." + +#: ../lib/modules/imapAccess.inc:185 +msgid "Invalid password for IMAP admin or other problem occured." +msgstr "Неправильний пароль для адміністратора IMAP або виникла інша помилка." + +#: ../lib/modules/ldapPublicKey.inc:546 ../lib/modules/inetOrgPerson.inc:3287 +#: ../lib/modules/customFields.inc:1403 +msgid "Invalid request" +msgstr "Неправильний запит" + +#: ../templates/config/mainmanage.php:198 +msgid "Invalid server name. Please enter \"server\" or \"server:port\"." +msgstr "" +"Неправильна назва сервера. Будь ласка, вкажіть \"сервер\" або \"сервер:порт" +"\"." + +#: ../lib/modules/passwordSelfReset.inc:914 +#: ../lib/modules/passwordSelfReset.inc:1136 +#, php-format +msgid "Invalid value in field \"%s\"." +msgstr "Неправильне значення в полі \"%s\"." + +#: ../lib/modules/kolabUser.inc:117 ../lib/modules/kolabUser.inc:124 +#: ../lib/modules/kolabUser.inc:186 ../lib/modules/kolabUser.inc:230 +#: ../lib/modules/kolabUser.inc:315 ../lib/modules/kolabUser.inc:756 +#: ../lib/modules/kolabUser.inc:885 +msgid "Invitation policy" +msgstr "Політика запрошення" + +#: ../lib/modules/kolabUser.inc:128 +msgid "Invitation policy list" +msgstr "Список політик запрошення" + +#: ../lib/modules/sambaSamAccount.inc:569 +msgid "Islamabad, Karachi" +msgstr "Islamabad, Karachi" + +#: ../lib/modules/range.inc:116 +msgid "It is not possible to delete all ranges." +msgstr "Не вдається вилучити всі діапазони." + +#: ../lib/modules/posixGroup.inc:600 ../lib/modules/posixAccount.inc:105 +msgid "" +"It is possible that this ID-number is reused. This can cause several " +"problems because files with old permissions might still exist. To avoid this " +"warning set maxUID to a higher value." +msgstr "" +"Можливо цей ID вже використовується. Це може викликати проблеми, тому що " +"файли зі старими розширеннями можуть ще існувати, Щоб запобігти цьому " +"попередженню встановіть maxUID більшим." + +#: ../lib/modules/pykotaUser.inc:284 ../lib/modules/pykotaUser.inc:387 +#: ../lib/modules/pykotaUser.inc:1021 +msgid "Job history" +msgstr "Історія роботи" + +#: ../lib/modules/pykotaUser.inc:156 ../lib/modules/pykotaUser.inc:289 +#: ../lib/modules/pykotaUser.inc:295 ../lib/modules/pykotaUser.inc:327 +msgid "Job suffix" +msgstr "Суфікс роботи" + +#: ../lib/modules/inetOrgPerson.inc:89 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:226 ../lib/modules/inetOrgPerson.inc:337 +#: ../lib/modules/inetOrgPerson.inc:590 ../lib/modules/inetOrgPerson.inc:636 +#: ../lib/modules/inetOrgPerson.inc:640 ../lib/modules/inetOrgPerson.inc:1438 +#: ../lib/modules/inetOrgPerson.inc:1441 ../lib/modules/inetOrgPerson.inc:1891 +#: ../lib/modules/inetOrgPerson.inc:2692 ../lib/modules/inetOrgPerson.inc:3539 +#: ../lib/modules/inetOrgPerson.inc:3585 +msgid "Job title" +msgstr "Посада" + +#: ../lib/modules/inetOrgPerson.inc:637 ../lib/modules/inetOrgPerson.inc:641 +msgid "Job title of user: President, department manager, ..." +msgstr "Посада користувача: Президент, керівник підрозділу,..." + +#: ../lib/lists.inc:297 +msgid "Jump 10 pages backward" +msgstr "Перейти на 10 сторінок назад" + +#: ../lib/lists.inc:317 +msgid "Jump 10 pages forward" +msgstr "Перейти на 10 сторінок уперед" + +#: ../templates/schema/schema.php:255 +msgid "Jump to a matching rule" +msgstr "Перейти до відповідного правила" + +#: ../templates/schema/schema.php:114 +msgid "Jump to an attribute type" +msgstr "Перейти до типу атрибуту" + +#: ../templates/schema/schema.php:308 ../templates/schema/schema.php:358 +#: ../templates/schema/schema.php:373 +msgid "Jump to an object class" +msgstr "Перейти до класу об’єкта" + +#: ../lib/lists.inc:292 +msgid "Jump to first page" +msgstr "Перейти до першої сторінки" + +#: ../lib/lists.inc:322 +msgid "Jump to last page" +msgstr "Перейти до останньої сторінки" + +#: ../lib/modules/mitKerberos.inc:94 ../lib/modules/heimdalKerberos.inc:81 +msgid "Kerberos" +msgstr "Kerberos" + +#: ../lib/modules/kolabGroup.inc:74 ../lib/modules/kolabUser.inc:80 +msgid "Kolab" +msgstr "Kolab" + +#: ../lib/modules/kolabSharedFolder.inc:82 +msgid "Kolab shared folder" +msgstr "Загальний каталог Kolab" + +#: ../lib/types/kolabSharedFolderType.inc:53 +msgid "Kolab shared folders" +msgstr "Загальні каталоги Kolab" + +#: ../lib/types/kolabSharedFolderType.inc:62 +msgid "Kolab shared folders (e.g. mail folders)" +msgstr "Загальні каталоги Kolab (наприклад, поштові каталоги)" + +#: ../lib/modules/posixGroup.inc:517 +msgid "" +"LAM checks if the entered group name and GID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique group names or " +"GIDs." +msgstr "" +"LAM перевіряє, чи унікальна вказана назва групи та GID. Тут ви зможете " +"вказати суфікс LDAP, який використовуватиметься для пошуку дублікатів. " +"Типово використовується суфікс типу акаунта. Вам потрібно змінювати це лише " +"в тому випадку, якщо ви використовуєте кілька профілів серверів з різними " +"OU, але при цьому потрібно зберігати унікальність назв груп або GID." + +#: ../lib/modules/posixAccount.inc:490 +msgid "" +"LAM checks if the entered user name and UID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique user names or " +"UIDs." +msgstr "" +"LAM перевіряє, чи унікальне вказане псевдоім’я користувача та UID. Тут ви " +"зможете " +"вказати суфікс LDAP, який використовуватиметься для пошуку дублікатів. " +"Типово використовується суфікс типу акаунта. Вам потрібно змінювати це лише " +"в тому випадку, якщо ви використовуєте кілька профілів серверів з різними " +"OU, але при цьому потрібно зберігати унікальність псевдоімен користувачів або " +"UID." + +#: ../templates/login.php:265 ../templates/config/index.php:85 +msgid "LAM configuration" +msgstr "Конфігурація LAM" + +#: ../templates/massBuildAccounts.php:239 +msgid "LAM has checked your input and is now ready to create the accounts." +msgstr "LAM перевірив введені дані та готовий створити акаунти." + +#: ../lib/modules/posixGroup.inc:505 ../lib/modules/posixAccount.inc:458 +#: ../lib/modules/inetOrgPerson.inc:813 ../lib/modules/customFields.inc:137 +msgid "" +"LAM supports CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 and SMD5 to generate the " +"hash value of passwords. SSHA and CRYPT are the most common but CRYPT does " +"not support passwords greater than 8 letters. We do not recommend to use " +"plain text passwords." +msgstr "" +"LAM підтримує CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 та SMD5 для створення хеша " +"пароля. SSHA та CRYPT підійдуть у більшості випадків, але CRYPT не підтримує " +"паролі понад 8 символів. Не рокомендується зберігати паролі у відкритому " +"виді." + +#: ../templates/tests/index.php:50 +msgid "LAM tests" +msgstr "LAM тести" + +#: ../lib/modules/imapAccess.inc:128 +msgid "LAM user password" +msgstr "Пароль користуавча LAM" + +#: ../templates/massDoUpload.php:132 +#, php-format +msgid "LAM was unable to create account %s! An LDAP error occured." +msgstr "LAM не вдалося створити акаунт %s! Виникла помилка LDAP." + +#: ../lib/modules/sambaGroupMapping.inc:603 +msgid "LAM was unable to find a Samba 3 domain with this name!" +msgstr "LAM не вдалося знайти Samba 3 домен з такою назвою!" + +#: ../lib/modules/sambaSamAccount.inc:118 +msgid "LAM was unable to find a domain with this name!" +msgstr "LAM не вдалося знайти домен з такою назвою!" + +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/windowsUser.inc:1449 +msgid "LAM was unable to find a group with this name!" +msgstr "LAM не вдалося знайти групу з такою назвою!" + +#: ../lib/modules/posixAccount.inc:2330 ../lib/modules/posixAccount.inc:2391 +#: ../lib/modules/windowsUser.inc:1535 ../lib/modules/groupOfNamesUser.inc:454 +#, php-format +msgid "LAM was unable to modify group memberships for group: %s" +msgstr "LAM не вдалося змінити членів для групи: %s" + +#: ../lib/modules/organizationalRoleUser.inc:397 +#, php-format +msgid "LAM was unable to modify memberships for role: %s" +msgstr "LAM не зміг змінити членство для ролі: %s" + +#: ../lib/modules/posixGroup.inc:521 ../lib/modules/posixAccount.inc:498 +msgid "" +"LAM will automatically suggest UID/GID numbers. You can either use a fixed " +"range of numbers or an LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "" +"LAM буде автоматично пропонувати номера UID/GID. Ви можете вказати як " +"фіксований діапазон номерів, та к і запис LDAP з класом об’єкта " +"\"sambaUnixIdPool\"." + +#: ../help/help.inc:219 +msgid "LAM will search for accounts in this part of the LDAP tree." +msgstr "LAM буде шукати акаунти в цій частині дерева LDAP." + +#: ../lib/modules/posixAccount.inc:437 +msgid "" +"LAM will suggest a user name based on e.g. first and last name. Here you can " +"specify the suggestion. %sn% will be replaced by the last name. @givenname@ " +"will be replaced by the first character of first name. Only attributes of " +"tab Personal may be used." +msgstr "" +"LAM буде пропонувати псевдоім’я користувача використовуючи, наприклад, ім’я " +"та " +"прізвище. Тут ви можете вказати шаблон: %sn% буде змінено на прізвище, " +"@givenname@ буде змінено на першу букву імені. Можна використовувати " +"атрибути тільки з вкладки \"Особиста інформація\"." + +#: ../help/help.inc:221 +msgid "" +"LAM will use this LDAP DN and password to search for accounts. It is " +"sufficient to specify an account with read rights. If nothing is inserted " +"then LAM will try to connect anonymously." +msgstr "" +"LAM буде використовувати цей запис DN та пароль для пошуку акаунтів. " +"Достатньо вказати акаунт з правами на читання. Якщо нічого не вказано, LAM " +"буде підключатися як гість (anonymous)." + +#: ../lib/modules/qmailUser.inc:57 +msgid "LDAP + program" +msgstr "LDAP + програма" + +#: ../templates/config/confmodules.php:97 ../templates/config/confmain.php:127 +#: ../templates/config/moduleSettings.php:96 +#: ../templates/config/conftypes.php:115 +msgid "LDAP Account Manager Configuration" +msgstr "LDAP Account Manager конфігурація" + +#: ../templates/multiEdit.php:198 ../templates/config/conftypes.php:386 +msgid "LDAP Suffix is invalid!" +msgstr "Суфікс LDAP неправильний!" + +#: ../templates/serverInfo.php:182 +msgid "LDAP entries" +msgstr "Записи LDAP" + +#: ../lib/modules/qmailGroup.inc:173 ../lib/modules/qmailGroup.inc:177 +msgid "LDAP entries that are allowed to send to this list." +msgstr "Записи LDAP, які можуть надсилати в цей список." + +#: ../lib/modules/qmailGroup.inc:157 ../lib/modules/qmailGroup.inc:161 +msgid "LDAP entries that are member of this list." +msgstr "Записи LDAP, які є учасниками цього списку." + +#: ../lib/modules/qmailGroup.inc:165 ../lib/modules/qmailGroup.inc:169 +msgid "LDAP entries that moderate this list (e.g. approve mails)." +msgstr "" +"Записи LDAP, які управляють цим списком (наприклад, затверджують пошту)." + +#: ../templates/login.php:642 ../lib/account.inc:1204 +msgid "LDAP error, server says:" +msgstr "Помилка LDAP, сервер відповів:" + +#: ../templates/multiEdit.php:115 ../templates/config/confmain.php:438 +#: ../help/help.inc:271 +msgid "LDAP filter" +msgstr "LDAP фільтр" + +#: ../lib/modules/qmailGroup.inc:189 ../lib/modules/qmailGroup.inc:193 +msgid "" +"LDAP filter to specify allowed senders of this list (e.g. " +"\"((objectclass=qmailUser)(employeeType=manager))\")." +msgstr "" +"Фільтр LDAP для визначення дозволених відправників цього списку (наприклад, " +"\"((objectclass=qmailUser)(employeeType=manager))\")." + +#: ../lib/modules/qmailGroup.inc:181 ../lib/modules/qmailGroup.inc:185 +msgid "" +"LDAP filter to specify members of this list (e.g. \"((objectclass=qmailUser)" +"(employeeType=accountant))\")." +msgstr "" +"Фільтр LDAP для визначення учасників цього списку (наприклад, " +"\"((objectclass=qmailUser)(employeeType=accountant))\")." + +#: ../lib/modules.inc:1328 +msgid "LDAP operation successful." +msgstr "LDAP операція закінчена успішно." + +#: ../templates/selfService/adminMain.php:464 +msgid "LDAP password" +msgstr "LDAP пароль" + +#: ../templates/3rdParty/pla/lib/functions.php:1894 +msgid "LDAP said" +msgstr "LDAP сказав" + +#: ../templates/config/confmain.php:415 ../help/help.inc:122 +msgid "LDAP search" +msgstr "LDAP пошук" + +#: ../templates/selfService/adminMain.php:459 ../help/help.inc:222 +msgid "LDAP search attribute" +msgstr "LDAP атрибут пошуку" + +#: ../lib/account.inc:796 +msgid "LDAP search failed! Please check your preferences." +msgstr "Пошук в LDAP не вийшов! Перевірте ваші налаштування." + +#: ../templates/config/confmain.php:253 ../help/help.inc:124 +msgid "LDAP search limit" +msgstr "Ліміт пошуку LDAP" + +#: ../templates/login.php:460 +msgid "LDAP server" +msgstr "LDAP сервер" + +#: ../lib/account.inc:787 +msgid "LDAP sizelimit exceeded, not all entries are shown." +msgstr "Перевищено ліміт розміру LDAP, показано не всі записи." + +#: ../templates/multiEdit.php:82 ../templates/config/confmain.php:434 +#: ../templates/config/conftypes.php:252 +#: ../templates/selfService/adminMain.php:453 +#: ../templates/profedit/profilepage.php:202 ../help/help.inc:71 +#: ../help/help.inc:218 ../help/help.inc:269 +msgid "LDAP suffix" +msgstr "LDAP суфікс" + +#: ../templates/massDoUpload.php:86 +msgid "LDAP upload in progress. Please wait." +msgstr "LDAP завантаження в процесі. Будь ласка, зачекайте." + +#: ../templates/selfService/adminMain.php:461 +msgid "LDAP user" +msgstr "LDAP користувач" + +#: ../help/help.inc:220 +msgid "LDAP user and password" +msgstr "LDAP користувач та пароль" + +#: ../templates/serverInfo.php:109 +msgid "LDAP version" +msgstr "LDAP версія" + +#: ../templates/3rdParty/pla/lib/export_functions.php:442 +msgid "LDIF Export" +msgstr "LDIF експорт" + +#: ../templates/multiEdit.php:443 +msgid "LDIF file" +msgstr "Файл LDIF" + +#: ../templates/3rdParty/pla/lib/import_functions.php:149 +#: ../templates/3rdParty/pla/htdocs/import.php:71 +msgid "LDIF import" +msgstr "LDIF імпорт" + +#: ../templates/3rdParty/pla/lib/import_functions.php:170 +msgid "LDIF import only supports version 1" +msgstr "Імпорт LDIF підтримує лише версію 1" + +#: ../lib/modules/customFields.inc:88 ../lib/modules/customFields.inc:513 +#: ../lib/modules/customFields.inc:1051 ../lib/modules/customFields.inc:1705 +#: ../lib/modules/customFields.inc:2960 +msgid "Label" +msgstr "Мітка" + +#: ../templates/tests/lamdaemonTest.php:201 +msgid "" +"Lamdaemon path does not end with \".pl\". Did you enter the full path to the " +"script?" +msgstr "" +"Шлях до lamdaemon не закінчується на \".pl\". Ви вказали повний шлях до " +"скрпта?" + +#: ../templates/tests/lamdaemonTest.php:185 +msgid "Lamdaemon server and path" +msgstr "Сервер та шлях до lamdaemon" + +#: ../templates/config/confmain.php:334 +msgid "Lamdaemon settings" +msgstr "Налаштування lamdaemon" + +#: ../templates/tests/lamdaemonTest.php:135 +msgid "Lamdaemon successfully run." +msgstr "Lamdaemon успішно запушено." + +#: ../templates/tests/index.php:52 ../templates/tests/lamdaemonTest.php:52 +#: ../lib/tools/tests.inc:110 +msgid "Lamdaemon test" +msgstr "Перевірка Lamdaemon" + +#: ../templates/tests/lamdaemonTest.php:291 +msgid "Lamdaemon test finished." +msgstr "Перевірку Lamdaemon закінчено." + +#: ../templates/tests/lamdaemonTest.php:273 +msgid "Lamdaemon version" +msgstr "Версія Lamdaemon" + +#: ../templates/tests/lamdaemonTest.php:283 +msgid "Lamdaemon: Quota module installed" +msgstr "Lamdaemon: модуль квот встановлено" + +#: ../templates/tests/lamdaemonTest.php:279 +msgid "Lamdaemon: check NSS LDAP" +msgstr "Lamdaemon: перевірте NSS LDAP" + +#: ../templates/tests/lamdaemonTest.php:286 +msgid "Lamdaemon: read quotas" +msgstr "Lamdaemon: читання квот" + +#: ../templates/login.php:397 +#: ../templates/selfService/selfServiceLogin.php:344 +msgid "Language" +msgstr "Мова" + +#: ../templates/config/confmain.php:570 +msgid "Language is not defined!" +msgstr "Мову не знайдено!" + +#: ../templates/config/confmain.php:304 +msgid "Language settings" +msgstr "Мовні налаштування" + +#: ../lib/modules/mitKerberos.inc:144 ../lib/modules/mitKerberos.inc:256 +#: ../lib/modules/mitKerberos.inc:404 ../lib/modules/mitKerberos.inc:791 +msgid "Last login" +msgstr "Останній вхід" + +#: ../lib/types/user.inc:97 ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:219 ../lib/modules/windowsUser.inc:164 +#: ../lib/modules/windowsUser.inc:284 ../lib/modules/windowsUser.inc:511 +#: ../lib/modules/windowsUser.inc:599 ../lib/modules/windowsUser.inc:701 +#: ../lib/modules/windowsUser.inc:1599 ../lib/modules/inetOrgPerson.inc:68 +#: ../lib/modules/inetOrgPerson.inc:156 ../lib/modules/inetOrgPerson.inc:312 +#: ../lib/modules/inetOrgPerson.inc:539 ../lib/modules/inetOrgPerson.inc:648 +#: ../lib/modules/inetOrgPerson.inc:1178 ../lib/modules/inetOrgPerson.inc:1181 +#: ../lib/modules/inetOrgPerson.inc:1893 ../lib/modules/inetOrgPerson.inc:2445 +#: ../lib/modules/inetOrgPerson.inc:3577 +msgid "Last name" +msgstr "Прізвище" + +#: ../lib/modules/windowsUser.inc:599 ../lib/modules/windowsUser.inc:600 +#: ../lib/modules/inetOrgPerson.inc:68 ../lib/modules/inetOrgPerson.inc:69 +msgid "Last name contains invalid characters or is empty!" +msgstr "Прізвище містить неправильні символи або порожнє!" + +#: ../lib/modules/windowsUser.inc:165 ../lib/modules/inetOrgPerson.inc:649 +msgid "Last name of user. Only letters, - and spaces are allowed." +msgstr "Прізвище користувача. Допускаються тільки літери, - та пробіли." + +#: ../lib/modules/mitKerberos.inc:140 ../lib/modules/mitKerberos.inc:255 +#: ../lib/modules/mitKerberos.inc:396 ../lib/modules/mitKerberos.inc:787 +#: ../lib/modules/sambaSamAccount.inc:396 +#: ../lib/modules/sambaSamAccount.inc:602 +#: ../lib/modules/sambaSamAccount.inc:1162 +#: ../lib/modules/sambaSamAccount.inc:2282 ../lib/modules/ppolicyUser.inc:87 +#: ../lib/modules/ppolicyUser.inc:136 ../lib/modules/ppolicyUser.inc:395 +#: ../lib/modules/shadowAccount.inc:167 ../lib/modules/shadowAccount.inc:201 +#: ../lib/modules/shadowAccount.inc:365 ../lib/modules/shadowAccount.inc:498 +#: ../lib/modules/shadowAccount.inc:668 +msgid "Last password change" +msgstr "Остання зміна пароля" + +#: ../lib/modules/sambaSamAccount.inc:251 ../lib/modules/shadowAccount.inc:239 +msgid "Last password change (read-only)" +msgstr "Список змін пароля (тільки читання)" + +#: ../lib/modules/asteriskAccount.inc:239 +#: ../lib/modules/asteriskAccount.inc:298 +#: ../lib/modules/asteriskAccount.inc:544 +#: ../lib/modules/asteriskAccount.inc:758 +#: ../lib/modules/asteriskAccount.inc:1014 +#: ../lib/modules/asteriskAccount.inc:1297 +msgid "Last qualify milliseconds" +msgstr "Останнє доступний в мілісекундах" + +#: ../lib/modules/dhcp_settings.inc:153 ../lib/modules/dhcp_settings.inc:209 +#: ../lib/modules/dhcp_settings.inc:224 ../lib/modules/dhcp_settings.inc:256 +#: ../lib/modules/dhcp_settings.inc:569 ../lib/modules/dhcp_settings.inc:675 +msgid "Lease time" +msgstr "Час оренди" + +#: ../lib/modules/pykotaGroup.inc:125 ../lib/modules/pykotaGroup.inc:135 +#: ../lib/modules/pykotaGroup.inc:173 ../lib/modules/pykotaGroup.inc:182 +#: ../lib/modules/pykotaGroup.inc:227 ../lib/modules/pykotaGroup.inc:474 +#: ../lib/modules/pykotaUser.inc:128 ../lib/modules/pykotaUser.inc:166 +#: ../lib/modules/pykotaUser.inc:233 ../lib/modules/pykotaUser.inc:261 +#: ../lib/modules/pykotaUser.inc:397 ../lib/modules/pykotaUser.inc:898 +msgid "Limit type" +msgstr "Тип ліміту" + +#: ../templates/3rdParty/pla/htdocs/import.php:102 +msgid "Line" +msgstr "Лінія" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:121 +msgid "Line ends" +msgstr "Кінець лінії" + +#: ../lib/modules/selfRegistration.inc:57 +#: ../lib/modules/selfRegistration.inc:197 +#: ../lib/modules/passwordSelfReset.inc:100 +#: ../lib/modules/passwordSelfReset.inc:516 +msgid "Link text" +msgstr "Текст посилання" + +#: ../templates/selfService/adminMain.php:394 +msgid "Link to self service login page for your users" +msgstr "" +"Посилання для ваших користувачів на сторінку входу в сервіс " +"самообслуговування" + +#: ../templates/config/conftypes.php:263 ../help/help.inc:87 +msgid "List attributes" +msgstr "Список атрибутів" + +#: ../templates/config/conftypes.php:394 +msgid "List attributes are invalid!" +msgstr "Список атрибутів неправильний!" + +#: ../lib/types/zarafaAddressListType.inc:91 +#: ../lib/modules/zarafaAddressList.inc:63 +#: ../lib/modules/zarafaAddressList.inc:104 +#: ../lib/modules/zarafaAddressList.inc:141 +#: ../lib/modules/zarafaAddressList.inc:168 +#: ../lib/modules/zarafaAddressList.inc:187 +#: ../lib/modules/zarafaAddressList.inc:331 +msgid "List name" +msgstr "Назва списку" + +#: ../lib/modules/zarafaAddressList.inc:168 +msgid "List name already in use." +msgstr "Назва списку вже використовується!" + +#: ../lib/modules/sambaSamAccount.inc:315 +msgid "" +"List of Samba workstations the user is allowed to login. Empty means every " +"workstation." +msgstr "" +"Список Samba комп’ютерів, на які користувачу дозволено заходити. Якщо не " +"вказано, то будь-який комп’ютер." + +#: ../templates/config/confmain.php:564 +msgid "List of admin users is empty or invalid!" +msgstr "Список адміністраторів порожній або неправильний!" + +#: ../lib/modules/asteriskAccount.inc:204 +msgid "List of allowed codecs." +msgstr "Список дозволених кодеків." + +#: ../lib/modules/asteriskAccount.inc:200 +msgid "List of disallowed codecs." +msgstr "Список заборонених кодеків." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:94 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:88 +msgid "List of entries to be deleted:" +msgstr "Список записів, які буде видалено:" + +#: ../templates/config/confmain.php:430 +msgid "List of valid users" +msgstr "Список існуючих користувачів" + +#: ../templates/serverInfo.php:152 +msgid "Listeners" +msgstr "Слухачі" + +#: ../lib/modules.inc:1233 ../help/help.inc:198 +msgid "Load profile" +msgstr "Завантажити профіль" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:279 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1226 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +msgid "Loading" +msgstr "Завантаження" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:303 +msgid "Loading export" +msgstr "Завантаження екпорту" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:290 +msgid "Loading import" +msgstr "Завантаження імпорту" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:497 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:233 +msgid "Loading search" +msgstr "Завантаження пошуку" + +#: ../lib/modules/inetLocalMailRecipient.inc:72 +#: ../lib/modules/inetLocalMailRecipient.inc:154 +msgid "Local address" +msgstr "Локальна адреса" + +#: ../lib/modules/inetLocalMailRecipient.inc:76 +#: ../lib/modules/inetLocalMailRecipient.inc:106 +#: ../lib/modules/inetLocalMailRecipient.inc:120 +#: ../lib/modules/inetLocalMailRecipient.inc:293 +msgid "Local address list" +msgstr "Список локальних адрес" + +#: ../lib/modules/sambaGroupMapping.inc:72 +msgid "Local group" +msgstr "Локальна група" + +#: ../lib/modules/sambaGroupMapping.inc:115 +#: ../lib/modules/sambaGroupMapping.inc:166 +#: ../lib/modules/sambaGroupMapping.inc:388 +#: ../lib/modules/sambaGroupMapping.inc:555 +msgid "Local members" +msgstr "Локальні учасники" + +#: ../lib/types/host.inc:97 ../lib/modules/ipHost.inc:73 +#: ../lib/modules/ipHost.inc:91 ../lib/modules/ipHost.inc:105 +#: ../lib/modules/ipHost.inc:130 ../lib/modules/ipHost.inc:252 +#: ../lib/modules/windowsHost.inc:82 ../lib/modules/windowsHost.inc:106 +#: ../lib/modules/windowsHost.inc:121 ../lib/modules/windowsHost.inc:144 +#: ../lib/modules/windowsHost.inc:290 ../lib/modules/device.inc:77 +#: ../lib/modules/device.inc:109 ../lib/modules/device.inc:129 +#: ../lib/modules/device.inc:178 ../lib/modules/device.inc:419 +#: ../lib/modules/windowsUser.inc:136 ../lib/modules/windowsUser.inc:332 +#: ../lib/modules/windowsUser.inc:504 ../lib/modules/windowsUser.inc:546 +#: ../lib/modules/windowsUser.inc:711 ../lib/modules/windowsUser.inc:1592 +#: ../lib/modules/windowsUser.inc:1734 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:187 ../lib/modules/inetOrgPerson.inc:507 +#: ../lib/modules/inetOrgPerson.inc:554 ../lib/modules/inetOrgPerson.inc:772 +#: ../lib/modules/inetOrgPerson.inc:776 ../lib/modules/inetOrgPerson.inc:1252 +#: ../lib/modules/inetOrgPerson.inc:1255 ../lib/modules/inetOrgPerson.inc:1913 +#: ../lib/modules/inetOrgPerson.inc:2588 ../lib/modules/inetOrgPerson.inc:3517 +#: ../lib/modules/inetOrgPerson.inc:3579 +msgid "Location" +msgstr "Місцезнаходження" + +#: ../lib/modules/nisMailAliasUser.inc:93 +msgid "Location where new alias is stored." +msgstr "Місце, де новий псевдонім зберігається." + +#: ../lib/types/user.inc:349 ../lib/types/user.inc:354 +msgid "Lock" +msgstr "Блокувати" + +#: ../templates/lists/changePassword.php:426 +#: ../templates/lists/changePassword.php:446 +#: ../templates/lists/changePassword.php:448 +#: ../lib/modules/ppolicyUser.inc:150 +msgid "Lock account" +msgstr "Блокувати акаунт" + +#: ../templates/lists/changePassword.php:266 +msgid "Lock account?" +msgstr "Блокувати акаунт?" + +#: ../lib/modules/posixGroup.inc:208 ../lib/modules/posixAccount.inc:338 +#: ../lib/modules/posixAccount.inc:1499 ../lib/modules/inetOrgPerson.inc:1559 +msgid "Lock password" +msgstr "Блокувати пароль" + +#: ../lib/types/ppolicyType.inc:83 ../lib/modules/ppolicy.inc:104 +#: ../lib/modules/ppolicy.inc:151 ../lib/modules/ppolicy.inc:171 +#: ../lib/modules/ppolicy.inc:264 ../lib/modules/ppolicy.inc:476 +#: ../lib/modules/sambaDomain.inc:133 ../lib/modules/sambaDomain.inc:198 +#: ../lib/modules/sambaDomain.inc:223 ../lib/modules/sambaDomain.inc:340 +#: ../lib/modules/sambaDomain.inc:610 +msgid "Lockout duration" +msgstr "Термін блокування" + +#: ../lib/modules/sambaDomain.inc:223 +msgid "Lockout duration must be are natural number." +msgstr "Термін блокування повинен бути цілим числом." + +#: ../lib/modules/ppolicyUser.inc:142 +msgid "Lockout time" +msgstr "Час блокування" + +#: ../lib/types/ppolicyType.inc:88 ../lib/modules/ppolicy.inc:124 +#: ../lib/modules/ppolicy.inc:150 ../lib/modules/ppolicy.inc:258 +#: ../lib/modules/ppolicy.inc:495 +msgid "Lockout users" +msgstr "Блокування користувачів" + +#: ../lib/modules/sambaDomain.inc:121 ../lib/modules/sambaDomain.inc:195 +#: ../lib/modules/sambaDomain.inc:225 ../lib/modules/sambaDomain.inc:316 +#: ../lib/modules/sambaDomain.inc:607 +msgid "Lockout users after bad logon attempts" +msgstr "Блокування користувачів після невдалих спроб входу" + +#: ../lib/modules/sambaDomain.inc:225 +msgid "Lockout users after bad logon attempts must be between 0 and 999." +msgstr "" +"Блокування користувачів після невдалих спроб входу повинна бути між 0 та 999." + +#: ../templates/config/mainmanage.php:423 ../help/help.inc:150 +msgid "Log destination" +msgstr "Де зберігати" + +#: ../templates/config/mainmanage.php:409 ../help/help.inc:148 +msgid "Log level" +msgstr "Рівень виводу" + +#: ../templates/multiEdit.php:448 +msgid "Log output" +msgstr "Журнал виходу" + +#: ../templates/main_header.php:128 +#, php-format +msgid "Logged in as: %s" +msgstr "Увійшов до системи як: %s" + +#: ../templates/config/mainmanage.php:406 +msgid "Logging" +msgstr "Лог-файл" + +#: ../templates/login.php:433 ../templates/config/conflogin.php:62 +#: ../templates/config/mainlogin.php:72 +#: ../templates/selfService/selfServiceLogin.php:227 +#: ../templates/selfService/selfServiceLogin.php:366 +#: ../templates/selfService/adminLogin.php:64 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:530 ../help/help.inc:56 +msgid "Login" +msgstr "Вхід" + +#: ../templates/selfService/adminMain.php:500 ../help/help.inc:224 +msgid "Login attribute label" +msgstr "Мітка атрибута входу" + +#: ../templates/selfService/adminMain.php:509 ../help/help.inc:226 +msgid "Login caption" +msgstr "Заголовок входу" + +#: ../templates/config/confmain.php:417 ../help/help.inc:120 +msgid "Login method" +msgstr "Метод входу" + +#: ../lib/types/user.inc:99 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:324 ../lib/modules/posixAccount.inc:417 +#: ../lib/modules/posixAccount.inc:530 ../lib/modules/posixAccount.inc:1492 +#: ../lib/modules/posixAccount.inc:1757 ../lib/modules/posixAccount.inc:1855 +#: ../lib/modules/posixAccount.inc:2564 +msgid "Login shell" +msgstr "Оболонка" + +#: ../lib/modules/posixAccount.inc:193 ../lib/modules/posixAccount.inc:248 +#: ../lib/modules/posixAccount.inc:493 +msgid "Login shells" +msgstr "Оболонки" + +#: ../templates/pdfedit/pdfpage.php:453 +msgid "Logo" +msgstr "Логотип" + +#: ../lib/pdfstruct.inc:300 +msgid "Logo file deleted." +msgstr "Файл логотипу вилучено." + +#: ../lib/pdfstruct.inc:292 +#, php-format +msgid "Logo is still in use by PDF structure \"%s\" in account type \"%s\"." +msgstr "" +"Логотип все ще використовується PDF структурою \"%s\" в типі акаунта \"%s\"." + +#: ../lib/modules/sambaDomain.inc:109 ../lib/modules/sambaDomain.inc:192 +#: ../lib/modules/sambaDomain.inc:290 ../lib/modules/sambaDomain.inc:616 +msgid "Logon for password change" +msgstr "Вхід в систему для зміни пароля" + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:339 +#: ../lib/modules/sambaSamAccount.inc:342 +#: ../lib/modules/sambaSamAccount.inc:526 +#: ../lib/modules/sambaSamAccount.inc:606 +#: ../lib/modules/sambaSamAccount.inc:1284 +#: ../lib/modules/sambaSamAccount.inc:1786 +msgid "Logon hours" +msgstr "Години для входу" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:223 +#: ../lib/modules/sambaSamAccount.inc:311 +#: ../lib/modules/sambaSamAccount.inc:510 +#: ../lib/modules/sambaSamAccount.inc:600 +#: ../lib/modules/sambaSamAccount.inc:1237 +#: ../lib/modules/sambaSamAccount.inc:1762 +#: ../lib/modules/sambaSamAccount.inc:1902 ../lib/modules/windowsUser.inc:209 +#: ../lib/modules/windowsUser.inc:424 ../lib/modules/windowsUser.inc:477 +#: ../lib/modules/windowsUser.inc:521 ../lib/modules/windowsUser.inc:613 +#: ../lib/modules/windowsUser.inc:756 ../lib/modules/windowsUser.inc:1628 +msgid "Logon script" +msgstr "Стартовий скрипт" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:102 ../lib/modules/windowsUser.inc:613 +#: ../lib/modules/windowsUser.inc:614 +msgid "Logon script is invalid!" +msgstr "Стартовий скрипт неправильний!" + +#: ../templates/selfService/selfServiceMain.php:63 +#: ../templates/selfService/selfServiceMain.php:419 +#: ../templates/main_header.php:135 +msgid "Logout" +msgstr "Вихід" + +#: ../lib/modules/dhcp_settings.inc:98 +msgid "M-Node (0x04)" +msgstr "M-Node (0x04)" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ieee802device.inc:58 +#: ../lib/modules/ieee802device.inc:68 ../lib/modules/ieee802device.inc:79 +#: ../lib/modules/ieee802device.inc:106 ../lib/modules/fixed_ip.inc:102 +#: ../lib/modules/fixed_ip.inc:429 ../lib/modules/fixed_ip.inc:742 +msgid "MAC address" +msgstr "MAC адреса" + +#: ../lib/modules/ieee802device.inc:72 +msgid "MAC address list" +msgstr "Список MAC адрес" + +#: ../lib/modules/ieee802device.inc:86 ../lib/modules/ieee802device.inc:162 +msgid "MAC addresses" +msgstr "MAC адреси" + +#: ../lib/modules/mitKerberos.inc:268 +msgid "MIT Kerberos password change command" +msgstr "Команда зміни пароля MIT Kerberos" + +#: ../lib/modules/bindDLZ.inc:103 ../lib/modules/bindDLZ.inc:274 +#: ../lib/modules/bindDLZ.inc:280 ../lib/modules/bindDLZ.inc:287 +#: ../lib/modules/bindDLZ.inc:476 ../lib/modules/bindDLZ.inc:495 +msgid "MX record" +msgstr "Запис MX" + +#: ../lib/modules/bindDLZ.inc:414 ../lib/modules/bindDLZ.inc:433 +#: ../lib/modules/bindDLZ.inc:1509 +msgid "MX records" +msgstr "Записи MX" + +#: ../lib/modules/sambaSamAccount.inc:575 +msgid "Magadan, Solomon Islands" +msgstr "Magadan, Solomon Islands" + +#: ../lib/types/mailAlias.inc:53 ../lib/modules/nisMailAliasUser.inc:70 +#: ../lib/modules/nisMailAlias.inc:69 +msgid "Mail aliases" +msgstr "Поштові псевдоніми" + +#: ../lib/modules/imapAccess.inc:100 ../lib/modules/imapAccess.inc:140 +msgid "Mail domains" +msgstr "Поштові домени" + +#: ../lib/modules/inetLocalMailRecipient.inc:58 +msgid "Mail routing" +msgstr "Роутінг пошти" + +#: ../lib/modules/selfRegistration.inc:615 +#: ../lib/modules/selfRegistration.inc:635 +#: ../lib/modules/passwordSelfReset.inc:1546 +#: ../lib/modules/passwordSelfReset.inc:1561 +#: ../lib/modules/passwordSelfReset.inc:1594 +msgid "Mail sending failed." +msgstr "Не вдалося відправити лист." + +#: ../lib/modules/bindDLZ.inc:132 ../lib/modules/bindDLZ.inc:136 +#: ../lib/modules/bindDLZ.inc:274 ../lib/modules/bindDLZ.inc:493 +#: ../lib/modules/bindDLZ.inc:910 ../lib/modules/bindDLZ.inc:1512 +#: ../lib/modules/kolabUser.inc:98 ../lib/modules/kolabSharedFolder.inc:98 +#: ../lib/modules/inetLocalMailRecipient.inc:80 +#: ../lib/modules/inetLocalMailRecipient.inc:85 +#: ../lib/modules/inetLocalMailRecipient.inc:112 +#: ../lib/modules/inetLocalMailRecipient.inc:121 +#: ../lib/modules/inetLocalMailRecipient.inc:148 +#: ../lib/modules/inetLocalMailRecipient.inc:294 +msgid "Mail server" +msgstr "Поштовий сервер" + +#: ../lib/modules/bindDLZ.inc:907 +msgid "Mail servers (\"MX\" records)" +msgstr "Поштові сервери (\"MX\" записи)" + +#: ../lib/account.inc:1031 +#, php-format +msgid "Mail successfully sent to %s." +msgstr "Пошта успішно відправлена до %s." + +#: ../lib/modules/asteriskAccount.inc:159 +#: ../lib/modules/asteriskAccount.inc:278 +#: ../lib/modules/asteriskAccount.inc:399 +#: ../lib/modules/asteriskAccount.inc:657 +#: ../lib/modules/asteriskAccount.inc:994 +#: ../lib/modules/asteriskAccount.inc:1257 +#: ../lib/modules/asteriskVoicemail.inc:95 +#: ../lib/modules/asteriskVoicemail.inc:138 +#: ../lib/modules/asteriskVoicemail.inc:158 +#: ../lib/modules/asteriskVoicemail.inc:245 +#: ../lib/modules/asteriskVoicemail.inc:369 ../lib/modules/imapAccess.inc:63 +#: ../lib/modules/imapAccess.inc:106 ../lib/modules/imapAccess.inc:243 +msgid "Mailbox" +msgstr "Поштова скринька" + +#: ../lib/modules/imapAccess.inc:252 +msgid "Mailbox already exists on IMAP server." +msgstr "Поштова скринька вже існує на сервері IMAP." + +#: ../lib/modules/imapAccess.inc:259 +msgid "Mailbox does not exist on IMAP server." +msgstr "Поштова скринька не існує на сервері IMAP." + +#: ../lib/modules/kolabUser.inc:148 ../lib/modules/kolabUser.inc:192 +#: ../lib/modules/kolabUser.inc:231 ../lib/modules/kolabUser.inc:297 +#: ../lib/modules/kolabUser.inc:300 ../lib/modules/kolabUser.inc:745 +#: ../lib/modules/kolabSharedFolder.inc:154 +#: ../lib/modules/kolabSharedFolder.inc:188 +#: ../lib/modules/kolabSharedFolder.inc:238 +#: ../lib/modules/kolabSharedFolder.inc:284 +#: ../lib/modules/kolabSharedFolder.inc:287 +#: ../lib/modules/kolabSharedFolder.inc:559 +msgid "Mailbox home server" +msgstr "Домашній поштовий сервер" + +#: ../lib/modules/kolabUser.inc:251 +msgid "Mailbox home server name is empty!" +msgstr "Назва домашнього поштового сервера порожня!" + +#: ../lib/modules/kolabUser.inc:249 ../lib/modules/kolabUser.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:257 +#: ../lib/modules/kolabSharedFolder.inc:258 +msgid "Mailbox home server name is invalid!" +msgstr "Назва домашнього поштового сервера неправильнв!" + +#: ../lib/modules/kolabUser.inc:99 ../lib/modules/kolabUser.inc:174 +#: ../lib/modules/kolabUser.inc:199 ../lib/modules/kolabUser.inc:232 +#: ../lib/modules/kolabUser.inc:257 ../lib/modules/kolabUser.inc:310 +#: ../lib/modules/kolabUser.inc:772 +msgid "Mailbox quota" +msgstr "Квота поштової скриньки" + +#: ../lib/types/mailAlias.inc:62 +msgid "Mailing aliases (e.g. NIS mail aliases)" +msgstr "Поштові псевдоніми (тобто, NIS mail aliases)" + +#: ../lib/modules/nisMailAlias.inc:82 +msgid "Mails to this name are forwarded to the recipients." +msgstr "Пошта для цього імені буде перенаправлена для отримувачів." + +#: ../templates/pdfedit/pdfpage.php:367 ../templates/pdfedit/pdfpage.php:678 +msgid "Main" +msgstr "Головна" + +#: ../templates/selfService/adminMain.php:515 ../help/help.inc:228 +msgid "Main page caption" +msgstr "Заголовок головної сторінки" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:79 +msgid "Make sure your filter (above) will select all child records." +msgstr "" +"Переконайтеся, що всі записи-нащадки потраплять у вибірку вашого фільтра " +"(вище)." + +#: ../lib/modules/inetOrgPerson.inc:1516 +msgid "Manage" +msgstr "Керувати" + +#: ../templates/pdfedit/pdfmain.php:190 +msgid "Manage existing PDF structures" +msgstr "Керування існуючими PDF структурами" + +#: ../templates/profedit/profilemain.php:175 +msgid "Manage existing profiles" +msgstr "Керування існуючими профілями" + +#: ../templates/pdfedit/pdfmain.php:232 +msgid "Manage logos" +msgstr "Керування логотипами" + +#: ../lib/modules/kolabUser.inc:112 ../lib/modules/kolabUser.inc:170 +msgid "Manage object class \"mailrecipient\"" +msgstr "Керування об’єктним класом \"mailrecipient\"" + +#: ../lib/modules/sambaSamAccount.inc:1224 +msgid "Manage profile directory" +msgstr "Керування каталогом профіля" + +#: ../templates/selfService/adminLogin.php:182 +msgid "Manage self service profiles" +msgstr "Керування профілями самообслуговування" + +#: ../templates/config/conflogin.php:192 +msgid "Manage server profiles" +msgstr "Керування профілями серверів" + +#: ../lib/modules/windowsHost.inc:86 ../lib/modules/windowsHost.inc:112 +#: ../lib/modules/windowsHost.inc:122 ../lib/modules/windowsHost.inc:146 +#: ../lib/modules/windowsHost.inc:295 ../lib/modules/windowsGroup.inc:146 +#: ../lib/modules/windowsGroup.inc:167 ../lib/modules/windowsGroup.inc:227 +#: ../lib/modules/windowsGroup.inc:268 ../lib/modules/windowsGroup.inc:352 +#: ../lib/modules/windowsGroup.inc:781 +msgid "Managed by" +msgstr "Керує" + +#: ../templates/serverInfo.php:105 +msgid "Managed suffixes" +msgstr "Керовані суфікси" + +#: ../lib/modules/ipHost.inc:77 ../lib/modules/ipHost.inc:97 +#: ../lib/modules/ipHost.inc:106 ../lib/modules/ipHost.inc:154 +#: ../lib/modules/ipHost.inc:253 ../lib/modules/inetOrgPerson.inc:361 +#: ../lib/modules/inetOrgPerson.inc:605 ../lib/modules/inetOrgPerson.inc:656 +#: ../lib/modules/inetOrgPerson.inc:660 ../lib/modules/inetOrgPerson.inc:1528 +#: ../lib/modules/inetOrgPerson.inc:1894 ../lib/modules/inetOrgPerson.inc:3549 +#: ../lib/modules/inetOrgPerson.inc:3587 +msgid "Manager" +msgstr "Менеджер" + +#: ../lib/tools/ouEditor.inc:53 +msgid "Manages OU objects in your LDAP tree." +msgstr "Керування OU об’єктами в LDAP дереві" + +#: ../lib/modules/kolabUser.inc:52 +msgid "Manual" +msgstr "Вручну" + +#: ../lib/modules/kolabUser.inc:54 +msgid "Manual if conflicts" +msgstr "Вручну, якщо конфлікти" + +#: ../lib/modules/customScripts.inc:172 +msgid "Manual scripts" +msgstr "Ручні сценарії" + +#: ../lib/types/nisObjectType.inc:78 ../lib/modules/nisObject.inc:65 +#: ../lib/modules/nisObject.inc:96 ../lib/modules/nisObject.inc:112 +#: ../lib/modules/nisObject.inc:123 ../lib/modules/nisObject.inc:149 +#: ../lib/modules/nisObject.inc:210 +msgid "Mapping entry" +msgstr " Запис відповідності" + +#: ../lib/modules/nisObject.inc:123 ../lib/modules/nisObject.inc:124 +msgid "" +"Mapping entry contains invalid characters. Only ASCII characters are allowed." +msgstr "" +"Запис відповідності містть неприпустимі символи. Дозволяється тільки ASCII " +"символи." + +#: ../lib/types/nisObjectType.inc:79 ../lib/modules/nisObject.inc:69 +#: ../lib/modules/nisObject.inc:89 ../lib/modules/nisObject.inc:113 +#: ../lib/modules/nisObject.inc:143 ../lib/modules/nisObject.inc:211 +msgid "Mapping name" +msgstr "Назва відповідності" + +#: ../lib/modules/kolabGroup.inc:213 ../lib/modules/kolabGroup.inc:293 +#: ../lib/modules/kolabUser.inc:388 ../lib/modules/kolabUser.inc:519 +#: ../lib/modules/kolabSharedFolder.inc:345 +#: ../lib/modules/kolabSharedFolder.inc:433 +msgid "Mark account for deletion" +msgstr "Відмітити акаунт для вилучення" + +#: ../lib/modules/kolabGroup.inc:113 ../lib/modules/kolabUser.inc:178 +#: ../lib/modules/kolabSharedFolder.inc:166 +msgid "Mark for deletion" +msgstr "Відмітити для вилучення" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:44 +msgid "Mass delete" +msgstr "Гуртове видалення" + +#: ../templates/config/profmanage.php:311 +#: ../templates/config/mainlogin.php:158 +#: ../templates/selfService/profManage.php:247 +#: ../templates/pdfedit/pdfmain.php:290 ../templates/pdfedit/pdfmain.php:337 +#: ../templates/profedit/profilemain.php:257 +#: ../templates/profedit/profilemain.php:305 ../help/help.inc:142 +msgid "Master password" +msgstr "Майстер-пароль" + +#: ../templates/config/profmanage.php:54 +#: ../templates/selfService/profManage.php:40 +#: ../templates/pdfedit/pdfmain.php:106 ../templates/pdfedit/pdfmain.php:114 +#: ../templates/profedit/profilemain.php:121 +#: ../templates/profedit/profilemain.php:129 +msgid "Master password is wrong!" +msgstr "Майстер-пароль неправильний!" + +#: ../templates/config/mainmanage.php:82 +msgid "Master passwords are different or empty!" +msgstr "Майстер-паролі не співпадають або порожні!" + +#: ../templates/schema/schema.php:268 +msgid "Matching rule OID" +msgstr "Співпадаюче правило OID" + +#: ../templates/schema/schema.php:77 ../templates/schema/schema.php:78 +msgid "Matching rules" +msgstr "Співпадаючі правила" + +#: ../templates/serverInfo.php:173 +msgid "Max. file descriptors" +msgstr "Макс. дескрипторів файлів" + +#: ../lib/modules/posixGroup.inc:410 ../lib/modules/posixGroup.inc:604 +#: ../lib/modules/posixGroup.inc:605 +msgid "Maximum GID number" +msgstr "Максимальний GID" + +#: ../lib/modules/posixGroup.inc:604 +msgid "Maximum GID number is invalid or empty!" +msgstr "Максимальний GID неправильний або порожній!" + +#: ../lib/modules/posixGroup.inc:605 +msgid "Maximum GID number must be greater than minimum GID number!" +msgstr "Максимальний GID повинен бути більше мінімального GID!" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:221 ../lib/modules/posixAccount.inc:239 +msgid "Maximum UID number" +msgstr "Максимальний UID" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +msgid "Maximum UID number is invalid!" +msgstr "Максимальний UID непривильний!" + +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +msgid "Maximum UID number must be greater than minimum UID number!" +msgstr "Максимальний UID повинен бути більше мінімального UID!" + +#: ../lib/types/ppolicyType.inc:84 ../lib/modules/ppolicy.inc:108 +#: ../lib/modules/ppolicy.inc:152 ../lib/modules/ppolicy.inc:172 +#: ../lib/modules/ppolicy.inc:272 ../lib/modules/ppolicy.inc:477 +msgid "Maximum failure count" +msgstr "Максимальна кількість відмов" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:128 +#: ../templates/3rdParty/pla/htdocs/import_form.php:36 +#: ../lib/modules/customFields.inc:156 ../lib/modules/customFields.inc:3299 +msgid "Maximum file size" +msgstr "Максимальний розмір файлу" + +#: ../lib/modules/inetOrgPerson.inc:3614 +msgid "Maximum file size (kB)" +msgstr "Максимальний розмір файлу (Кб)" + +#: ../lib/modules/customFields.inc:3331 +msgid "Maximum file size must be a number. Please enter 0 for no limit." +msgstr "" +"Максимальний розмір файлу повинен бути числом. Будь ласка, вкажіть 0 у " +"випадку відсутності ліміту." + +#: ../lib/modules/inetOrgPerson.inc:3613 +msgid "Maximum height (px)" +msgstr "Максимальна довжина (px)" + +#: ../lib/types/pykotaPrinterType.inc:95 ../lib/modules/pykotaPrinter.inc:103 +#: ../lib/modules/pykotaPrinter.inc:135 ../lib/modules/pykotaPrinter.inc:159 +#: ../lib/modules/pykotaPrinter.inc:195 ../lib/modules/pykotaPrinter.inc:213 +#: ../lib/modules/pykotaPrinter.inc:233 ../lib/modules/pykotaPrinter.inc:586 +msgid "Maximum job size" +msgstr "Максимальний об’єм роботи" + +#: ../lib/modules/dhcp_settings.inc:157 ../lib/modules/dhcp_settings.inc:210 +#: ../lib/modules/dhcp_settings.inc:225 ../lib/modules/dhcp_settings.inc:262 +#: ../lib/modules/dhcp_settings.inc:573 ../lib/modules/dhcp_settings.inc:676 +msgid "Maximum lease time" +msgstr "Максимальний час аренди" + +#: ../templates/schema/schema.php:214 +msgid "Maximum length" +msgstr "Максимальна довжина" + +#: ../lib/lists.inc:1011 ../help/help.inc:97 +msgid "Maximum list entries" +msgstr "Максимальна кількість записів у списку" + +#: ../lib/modules/asteriskAccount.inc:196 +msgid "" +"Maximum number of seconds of inactivity before terminating a call on hold." +msgstr "" +"Максимальна кількість секунд бездіяльності перед закінченням дзвінка на " +"утриманні." + +#: ../lib/types/ppolicyType.inc:79 ../lib/modules/shadowAccount.inc:59 +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/shadowAccount.inc:123 +#: ../lib/modules/shadowAccount.inc:172 ../lib/modules/shadowAccount.inc:189 +#: ../lib/modules/shadowAccount.inc:227 ../lib/modules/shadowAccount.inc:340 +#: ../lib/modules/shadowAccount.inc:504 ../lib/modules/ppolicy.inc:88 +#: ../lib/modules/ppolicy.inc:144 ../lib/modules/ppolicy.inc:167 +#: ../lib/modules/ppolicy.inc:168 ../lib/modules/ppolicy.inc:206 +#: ../lib/modules/ppolicy.inc:473 ../lib/modules/sambaDomain.inc:129 +#: ../lib/modules/sambaDomain.inc:197 ../lib/modules/sambaDomain.inc:220 +#: ../lib/modules/sambaDomain.inc:222 ../lib/modules/sambaDomain.inc:332 +#: ../lib/modules/sambaDomain.inc:609 +msgid "Maximum password age" +msgstr "Максимальний строк дії пароля" + +#: ../lib/modules/inetOrgPerson.inc:3612 +msgid "Maximum width (px)" +msgstr "Максимальна довжина (px)" + +#: ../lib/modules/qmailGroup.inc:80 ../lib/modules/qmailGroup.inc:204 +#: ../lib/modules/qmailGroup.inc:208 ../lib/modules/qmailGroup.inc:337 +#: ../lib/modules/qmailGroup.inc:402 ../lib/modules/qmailGroup.inc:425 +#: ../lib/modules/qmailGroup.inc:514 ../lib/modules/qmailGroup.inc:1063 +msgid "Member email addresses" +msgstr "Ел. пошти учасника" + +#: ../lib/modules/qmailGroup.inc:78 ../lib/modules/qmailGroup.inc:156 +#: ../lib/modules/qmailGroup.inc:160 ../lib/modules/qmailGroup.inc:279 +#: ../lib/modules/qmailGroup.inc:381 ../lib/modules/qmailGroup.inc:516 +#: ../lib/modules/qmailGroup.inc:783 ../lib/modules/qmailGroup.inc:1062 +msgid "Member entries" +msgstr "Записи учасників" + +#: ../lib/modules/qmailGroup.inc:82 ../lib/modules/qmailGroup.inc:180 +#: ../lib/modules/qmailGroup.inc:184 ../lib/modules/qmailGroup.inc:303 +#: ../lib/modules/qmailGroup.inc:390 ../lib/modules/qmailGroup.inc:515 +#: ../lib/modules/qmailGroup.inc:1064 +msgid "Member filter" +msgstr "Фільтр учасника" + +#: ../lib/types/netgroup.inc:94 ../lib/modules/nisnetgroup.inc:95 +#: ../lib/modules/nisnetgroup.inc:99 ../lib/modules/nisnetgroup.inc:132 +#: ../lib/modules/nisnetgroup.inc:142 ../lib/modules/nisnetgroup.inc:286 +#: ../lib/modules/nisnetgroup.inc:583 ../lib/modules/organizationalRole.inc:93 +#: ../lib/modules/organizationalRole.inc:97 +#: ../lib/modules/organizationalRole.inc:130 +#: ../lib/modules/organizationalRole.inc:138 +#: ../lib/modules/organizationalRole.inc:193 +#: ../lib/modules/organizationalRole.inc:341 +#: ../lib/modules/organizationalRole.inc:461 +#: ../lib/modules/windowsGroup.inc:130 ../lib/modules/windowsGroup.inc:134 +#: ../lib/modules/windowsGroup.inc:211 ../lib/modules/windowsGroup.inc:260 +#: ../lib/modules/windowsGroup.inc:790 ../lib/modules/groupOfNames.inc:101 +#: ../lib/modules/groupOfNames.inc:105 ../lib/modules/groupOfNames.inc:151 +#: ../lib/modules/groupOfNames.inc:159 ../lib/modules/groupOfNames.inc:168 +#: ../lib/modules/groupOfNames.inc:247 ../lib/modules/groupOfNames.inc:553 +#: ../lib/modules/groupOfNames.inc:714 +msgid "Members" +msgstr "Учасники" + +#: ../lib/modules/groupOfNames.inc:109 ../lib/modules/groupOfNames.inc:179 +msgid "Members are optional" +msgstr "Учасники опціональні" + +#: ../lib/modules/qmailGroup.inc:94 ../lib/modules/qmailGroup.inc:196 +#: ../lib/modules/qmailGroup.inc:319 ../lib/modules/qmailGroup.inc:396 +#: ../lib/modules/qmailGroup.inc:617 ../lib/modules/qmailGroup.inc:1075 +msgid "Members only" +msgstr "Тільки для учасників" + +#: ../lib/modules/qmailUser.inc:108 ../lib/modules/qmailUser.inc:143 +#: ../lib/modules/qmailUser.inc:223 ../lib/modules/qmailUser.inc:316 +#: ../lib/modules/qmailUser.inc:412 ../lib/modules/qmailUser.inc:686 +#: ../lib/modules/qmailUser.inc:1145 +msgid "Message count limit" +msgstr "Обмеження на кількість повідомлень" + +#: ../lib/modules/qmailUser.inc:110 ../lib/modules/qmailUser.inc:153 +#: ../lib/modules/qmailUser.inc:227 ../lib/modules/qmailUser.inc:324 +#: ../lib/modules/qmailUser.inc:415 ../lib/modules/qmailUser.inc:697 +#: ../lib/modules/qmailUser.inc:1146 +msgid "Message size limit" +msgstr "Максимальний розмір повідомлення" + +#: ../lib/modules/qmailUser.inc:120 ../lib/modules/qmailUser.inc:171 +#: ../lib/modules/qmailUser.inc:247 ../lib/modules/qmailUser.inc:366 +#: ../lib/modules/qmailUser.inc:430 ../lib/modules/qmailUser.inc:601 +#: ../lib/modules/qmailUser.inc:1149 ../lib/modules/qmailGroup.inc:139 +#: ../lib/modules/qmailGroup.inc:254 ../lib/modules/qmailGroup.inc:372 +#: ../lib/modules/qmailGroup.inc:508 ../lib/modules/qmailGroup.inc:1058 +msgid "Message store" +msgstr "Сховище повідомлень" + +#: ../lib/modules/sambaSamAccount.inc:562 +msgid "Mid-Atlantic" +msgstr "Mid-Atlantic" + +#: ../lib/modules/sambaSamAccount.inc:553 +msgid "Midway Island, Samoa" +msgstr "Midway Island, Samoa" + +#: ../lib/modules/windowsUser.inc:286 ../lib/modules/inetOrgPerson.inc:314 +msgid "Miller" +msgstr "Miller" + +#: ../lib/modules/sambaDomain.inc:101 ../lib/modules/sambaDomain.inc:190 +#: ../lib/modules/sambaDomain.inc:276 ../lib/modules/sambaDomain.inc:605 +msgid "Minimal password length" +msgstr "Мінімальна довжина пароля" + +#: ../lib/modules/posixGroup.inc:407 ../lib/modules/posixGroup.inc:603 +msgid "Minimum GID number" +msgstr "Мінімальний GID" + +#: ../lib/modules/posixGroup.inc:603 +msgid "Minimum GID number is invalid or empty!" +msgstr "Мінімальний GID неправильний або порожній!" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:218 ../lib/modules/posixAccount.inc:236 +msgid "Minimum UID number" +msgstr "Мінімальний UID" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +msgid "Minimum UID number is invalid!" +msgstr "Мінімальний UID неправильний!" + +#: ../lib/modules/passwordSelfReset.inc:92 +#: ../lib/modules/passwordSelfReset.inc:514 +msgid "Minimum answer length" +msgstr "Мінімальна довжина відповіді" + +#: ../templates/config/mainmanage.php:392 +msgid "Minimum character classes" +msgstr "Мінімум символів класів" + +#: ../templates/config/mainmanage.php:388 +msgid "Minimum lowercase characters" +msgstr "Мінімальна к-сть малих літер" + +#: ../templates/config/mainmanage.php:390 +msgid "Minimum numeric characters" +msgstr "Мінімальна к-сть цифрових символів" + +#: ../lib/types/ppolicyType.inc:78 ../lib/modules/shadowAccount.inc:57 +#: ../lib/modules/shadowAccount.inc:118 ../lib/modules/shadowAccount.inc:171 +#: ../lib/modules/shadowAccount.inc:185 ../lib/modules/shadowAccount.inc:221 +#: ../lib/modules/shadowAccount.inc:332 ../lib/modules/shadowAccount.inc:503 +#: ../lib/modules/ppolicy.inc:84 ../lib/modules/ppolicy.inc:143 +#: ../lib/modules/ppolicy.inc:166 ../lib/modules/ppolicy.inc:198 +#: ../lib/modules/ppolicy.inc:472 ../lib/modules/sambaDomain.inc:125 +#: ../lib/modules/sambaDomain.inc:196 ../lib/modules/sambaDomain.inc:221 +#: ../lib/modules/sambaDomain.inc:324 ../lib/modules/sambaDomain.inc:608 +msgid "Minimum password age" +msgstr "Мінімальний час дії пароля" + +#: ../templates/config/mainmanage.php:386 ../lib/types/ppolicyType.inc:87 +#: ../lib/modules/ppolicy.inc:120 ../lib/modules/ppolicy.inc:147 +#: ../lib/modules/ppolicy.inc:175 ../lib/modules/ppolicy.inc:250 +#: ../lib/modules/ppolicy.inc:480 +msgid "Minimum password length" +msgstr "Мінімальна довжина пароля" + +#: ../templates/config/mainmanage.php:391 +msgid "Minimum symbolic characters" +msgstr "Мінмальна к-сть символьних знаків" + +#: ../lib/modules/bindDLZ.inc:216 ../lib/modules/bindDLZ.inc:319 +#: ../lib/modules/bindDLZ.inc:420 ../lib/modules/bindDLZ.inc:518 +#: ../lib/modules/bindDLZ.inc:1023 ../lib/modules/bindDLZ.inc:1545 +msgid "Minimum time" +msgstr "Мінімальний час" + +#: ../templates/config/mainmanage.php:389 +msgid "Minimum uppercase characters" +msgstr "Мінімальна к-сть великих літер" + +#: ../templates/3rdParty/pla/lib/import_functions.php:429 +msgid "Missing attributes for" +msgstr "Відсутні атрибути для" + +#: ../templates/3rdParty/pla/lib/import_functions.php:443 +msgid "Missing modify command add, delete or replace" +msgstr "Відсутня команда модифікаціх додавання, вилучення або заміни" + +#: ../lib/types/user.inc:207 ../lib/modules/inetOrgPerson.inc:74 +#: ../lib/modules/inetOrgPerson.inc:157 ../lib/modules/inetOrgPerson.inc:433 +#: ../lib/modules/inetOrgPerson.inc:578 ../lib/modules/inetOrgPerson.inc:704 +#: ../lib/modules/inetOrgPerson.inc:708 ../lib/modules/inetOrgPerson.inc:1398 +#: ../lib/modules/inetOrgPerson.inc:1401 ../lib/modules/inetOrgPerson.inc:1902 +#: ../lib/modules/inetOrgPerson.inc:3533 ../lib/modules/inetOrgPerson.inc:3583 +msgid "Mobile number" +msgstr "Мобільний телефон" + +#: ../lib/modules/inetOrgPerson.inc:2500 +msgid "Mobile telephone number" +msgstr "Мобільний телфон" + +#: ../lib/modules/qmailGroup.inc:86 ../lib/modules/qmailGroup.inc:212 +#: ../lib/modules/qmailGroup.inc:216 ../lib/modules/qmailGroup.inc:345 +#: ../lib/modules/qmailGroup.inc:405 ../lib/modules/qmailGroup.inc:427 +#: ../lib/modules/qmailGroup.inc:517 ../lib/modules/qmailGroup.inc:1066 +msgid "Moderator email addresses" +msgstr "Ел.пошта модератора" + +#: ../lib/modules/qmailGroup.inc:84 ../lib/modules/qmailGroup.inc:164 +#: ../lib/modules/qmailGroup.inc:168 ../lib/modules/qmailGroup.inc:287 +#: ../lib/modules/qmailGroup.inc:384 ../lib/modules/qmailGroup.inc:518 +#: ../lib/modules/qmailGroup.inc:786 ../lib/modules/qmailGroup.inc:1065 +msgid "Moderator entries" +msgstr "Записи модераторів" + +#: ../lib/modules/qmailGroup.inc:76 ../lib/modules/qmailGroup.inc:106 +#: ../lib/modules/qmailGroup.inc:200 ../lib/modules/qmailGroup.inc:329 +#: ../lib/modules/qmailGroup.inc:399 ../lib/modules/qmailGroup.inc:603 +#: ../lib/modules/qmailGroup.inc:1061 +msgid "Moderator text" +msgstr "Текст модератора" + +#: ../lib/modules/qmailGroup.inc:201 +msgid "" +"Moderator text that is used to specify an own approval text used if the list " +"is moderated. The usual %HEADER% magic of qmail-reply etc. can be used here." +msgstr "" +"Текст модератора, який використовужться для власного тексту підтверження, що " +"застосовується у випадках модерування списку. Тут можна використовувати " +"макрос %HEADER% з qmail-reply , тощо." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:61 +msgid "Modification not successful!" +msgstr "Зміни не відбулися!" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:59 +msgid "Modification successful!" +msgstr "Зміни пройшли успішно!" + +#: ../lib/modules/generalInformation.inc:92 +msgid "Modification time" +msgstr "Час зміни" + +#: ../lib/modules/generalInformation.inc:88 +msgid "Modified by" +msgstr "Змінено" + +#: ../templates/serverInfo.php:314 ../templates/serverInfo.php:387 +#: ../templates/multiEdit.php:126 +msgid "Modify" +msgstr "Змінити" + +#: ../templates/serverInfo.php:328 ../templates/serverInfo.php:393 +msgid "Modify RDN" +msgstr "Змінити RDN" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:57 +msgid "Modify group" +msgstr "Змінити групу" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2110 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2111 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2114 +msgid "Modify group members" +msgstr "Змінити учасників групи" + +#: ../templates/3rdParty/pla/htdocs/import.php:32 +msgid "Modifying" +msgstr "Проводяться зміни" + +#: ../templates/config/confmodules.php:176 +#: ../templates/config/confmain.php:217 +#: ../templates/config/moduleSettings.php:175 +#: ../templates/config/conftypes.php:194 +#: ../templates/selfService/adminMain.php:435 +msgid "Module settings" +msgstr "Налаштування модуля" + +#: ../templates/config/confmodules.php:172 +#: ../templates/config/confmain.php:213 +#: ../templates/config/moduleSettings.php:171 +#: ../templates/config/conftypes.php:190 +msgid "Modules" +msgstr "Модулі" + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Monday" +msgstr "Понеділок" + +#: ../lib/modules/sambaSamAccount.inc:557 +msgid "Mountain Time (US & Canada)" +msgstr "Mountain Time (US & Canada)" + +#: ../lib/modules/quota.inc:105 ../lib/modules/quota.inc:399 +#: ../lib/modules/quota.inc:506 ../lib/modules/quota.inc:633 +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:122 +#: ../lib/modules/systemQuotas.inc:382 +msgid "Mountpoint" +msgstr "Точка підключення" + +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:98 +msgid "Mountpoint contains invalid characters." +msgstr "Точка підключення містить неприпустимі символи." + +#: ../lib/modules/quota.inc:106 +msgid "Mountpoint of device with enabled quotas." +msgstr "Точка підключення пристрою з увімкнутими квотами." + +#: ../lib/modules/customFields.inc:636 +msgid "Move down" +msgstr "Меремістити вниз" + +#: ../lib/modules/customFields.inc:630 +msgid "Move up" +msgstr "Перемістити вгору" + +#: ../templates/multiEdit.php:78 ../lib/tools/multiEdit.inc:44 +msgid "Multi edit" +msgstr "Масове редагування" + +#: ../lib/modules/customFields.inc:1910 ../lib/modules/customFields.inc:3304 +msgid "Multi value" +msgstr "Кілька значень" + +#: ../lib/modules/customFields.inc:3162 +msgid "Multi-select fields must not contain empty values." +msgstr "Поля з мультивобором не повинні містити порожні значення." + +#: ../lib/modules/pykotaPrinter.inc:125 +#: ../lib/modules/zarafaDynamicGroup.inc:76 ../lib/modules/zarafaGroup.inc:78 +#: ../lib/modules/eduPerson.inc:98 ../lib/modules/eduPerson.inc:111 +#: ../lib/modules/eduPerson.inc:123 ../lib/modules/eduPerson.inc:139 +#: ../lib/modules/eduPerson.inc:147 ../lib/modules/zarafaUser.inc:164 +#: ../lib/modules/sudoRole.inc:100 ../lib/modules/sudoRole.inc:105 +#: ../lib/modules/sudoRole.inc:110 ../lib/modules/sudoRole.inc:115 +#: ../lib/modules/sudoRole.inc:120 ../lib/modules/sudoRole.inc:125 +msgid "Multiple values are separated by comma." +msgstr "Кілька значень розділяються комами." + +#: ../lib/modules/kolabGroup.inc:92 ../lib/modules/kolabGroup.inc:101 +#: ../lib/modules/kolabGroup.inc:110 ../lib/modules/nisMailAliasUser.inc:81 +#: ../lib/modules/nisMailAliasUser.inc:89 ../lib/modules/puppetClient.inc:85 +#: ../lib/modules/puppetClient.inc:97 ../lib/modules/puppetClient.inc:105 +#: ../lib/modules/device.inc:74 ../lib/modules/bindDLZ.inc:91 +#: ../lib/modules/bindDLZ.inc:100 ../lib/modules/bindDLZ.inc:105 +#: ../lib/modules/bindDLZ.inc:110 ../lib/modules/bindDLZ.inc:115 +#: ../lib/modules/bindDLZ.inc:120 ../lib/modules/bindDLZ.inc:125 +#: ../lib/modules/bindDLZ.inc:137 ../lib/modules/bindDLZ.inc:145 +#: ../lib/modules/bindDLZ.inc:153 ../lib/modules/bindDLZ.inc:161 +#: ../lib/modules/bindDLZ.inc:169 ../lib/modules/bindDLZ.inc:177 +#: ../lib/modules/bindDLZ.inc:185 ../lib/modules/bindDLZ.inc:193 +#: ../lib/modules/bindDLZ.inc:201 ../lib/modules/windowsUser.inc:149 +#: ../lib/modules/windowsUser.inc:185 ../lib/modules/windowsUser.inc:221 +#: ../lib/modules/windowsUser.inc:232 ../lib/modules/kolabUser.inc:158 +#: ../lib/modules/kolabUser.inc:167 ../lib/modules/inetOrgPerson.inc:641 +#: ../lib/modules/inetOrgPerson.inc:661 ../lib/modules/inetOrgPerson.inc:669 +#: ../lib/modules/inetOrgPerson.inc:677 ../lib/modules/inetOrgPerson.inc:685 +#: ../lib/modules/inetOrgPerson.inc:701 ../lib/modules/inetOrgPerson.inc:709 +#: ../lib/modules/inetOrgPerson.inc:717 ../lib/modules/inetOrgPerson.inc:725 +#: ../lib/modules/inetOrgPerson.inc:737 ../lib/modules/inetOrgPerson.inc:757 +#: ../lib/modules/inetOrgPerson.inc:769 ../lib/modules/inetOrgPerson.inc:777 +#: ../lib/modules/inetOrgPerson.inc:785 ../lib/modules/inetOrgPerson.inc:797 +#: ../lib/modules/inetOrgPerson.inc:805 ../lib/modules/inetOrgPerson.inc:821 +#: ../lib/modules/inetOrgPerson.inc:829 ../lib/modules/inetOrgPerson.inc:837 +#: ../lib/modules/systemQuotas.inc:70 ../lib/modules/freeRadius.inc:101 +#: ../lib/modules/kolabSharedFolder.inc:126 +#: ../lib/modules/kolabSharedFolder.inc:135 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/qmailGroup.inc:136 ../lib/modules/qmailGroup.inc:149 +#: ../lib/modules/qmailGroup.inc:161 ../lib/modules/qmailGroup.inc:169 +#: ../lib/modules/qmailGroup.inc:177 ../lib/modules/qmailGroup.inc:185 +#: ../lib/modules/qmailGroup.inc:193 ../lib/modules/qmailGroup.inc:209 +#: ../lib/modules/qmailGroup.inc:217 ../lib/modules/qmailGroup.inc:225 +#: ../lib/modules/groupOfNames.inc:98 +msgid "Multiple values are separated by semicolon." +msgstr "Кілька значень розділяються крапкою з комою." + +#: ../lib/modules/asteriskAccount.inc:207 +#: ../lib/modules/asteriskAccount.inc:290 +#: ../lib/modules/asteriskAccount.inc:486 +#: ../lib/modules/asteriskAccount.inc:717 +#: ../lib/modules/asteriskAccount.inc:1006 +#: ../lib/modules/asteriskAccount.inc:1281 +msgid "Music on hold" +msgstr "Музика на утриманні" + +#: ../lib/modules/asteriskAccount.inc:208 +msgid "Music to play on hold." +msgstr "Музика для програвання на утриманні." + +#: ../lib/modules/ipHost.inc:93 ../lib/modules/windowsHost.inc:108 +#: ../lib/modules/device.inc:111 ../lib/modules/windowsUser.inc:334 +#: ../lib/modules/inetOrgPerson.inc:395 ../lib/modules/inetOrgPerson.inc:403 +#: ../lib/modules/inetOrgPerson.inc:509 +msgid "MyCity" +msgstr "Місто" + +#: ../lib/modules/windowsUser.inc:316 ../lib/modules/inetOrgPerson.inc:379 +msgid "Mystreetname 42" +msgstr "Mystreetname 42" + +#: ../lib/modules/asteriskAccount.inc:163 +#: ../lib/modules/asteriskAccount.inc:279 +#: ../lib/modules/asteriskAccount.inc:406 +#: ../lib/modules/asteriskAccount.inc:669 +#: ../lib/modules/asteriskAccount.inc:995 +#: ../lib/modules/asteriskAccount.inc:1259 +msgid "NAT" +msgstr "NAT" + +#: ../lib/modules/asteriskAccount.inc:164 +msgid "NAT setting for this account." +msgstr "Налаштування NAT для цього акаунта." + +#: ../lib/modules/windowsUser.inc:772 ../lib/modules/windowsGroup.inc:370 +msgid "NIS" +msgstr "NIS" + +#: ../lib/modules/windowsUser.inc:256 ../lib/modules/windowsUser.inc:466 +#: ../lib/modules/windowsUser.inc:481 ../lib/modules/windowsUser.inc:535 +#: ../lib/modules/windowsUser.inc:567 ../lib/modules/windowsUser.inc:777 +#: ../lib/modules/windowsUser.inc:1606 ../lib/modules/windowsGroup.inc:154 +#: ../lib/modules/windowsGroup.inc:169 ../lib/modules/windowsGroup.inc:243 +#: ../lib/modules/windowsGroup.inc:251 ../lib/modules/windowsGroup.inc:274 +#: ../lib/modules/windowsGroup.inc:375 ../lib/modules/windowsGroup.inc:750 +msgid "NIS domain" +msgstr "NIS домен" + +#: ../lib/modules/windowsUser.inc:257 ../lib/modules/windowsGroup.inc:155 +msgid "NIS domain name." +msgstr "Назва домену NIS" + +#: ../lib/modules/windowsUser.inc:252 ../lib/modules/windowsUser.inc:458 +#: ../lib/modules/windowsUser.inc:532 ../lib/modules/windowsUser.inc:566 +#: ../lib/modules/windowsUser.inc:620 ../lib/modules/windowsUser.inc:774 +#: ../lib/modules/windowsUser.inc:1605 ../lib/modules/windowsGroup.inc:150 +#: ../lib/modules/windowsGroup.inc:168 ../lib/modules/windowsGroup.inc:235 +#: ../lib/modules/windowsGroup.inc:271 ../lib/modules/windowsGroup.inc:289 +#: ../lib/modules/windowsGroup.inc:372 ../lib/modules/windowsGroup.inc:749 +msgid "NIS name" +msgstr "NIS назва" + +#: ../lib/modules/windowsUser.inc:620 ../lib/modules/windowsUser.inc:621 +#: ../lib/modules/windowsGroup.inc:289 ../lib/modules/windowsGroup.inc:290 +msgid "" +"NIS name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"NIS назва хоста містить неприпустимі сисмволи. Можливі символи: a-z, A-Z, " +"0-9 та .-_ !" + +#: ../lib/modules/nisnetgroup.inc:67 +msgid "NIS net group" +msgstr "Мережева група NIS" + +#: ../lib/types/netgroup.inc:62 +msgid "NIS netgroup entries" +msgstr "Записи мережевих груп NIS." + +#: ../lib/types/netgroup.inc:53 +msgid "NIS netgroups" +msgstr "Мережеві групи NIS" + +#: ../lib/modules/nisObject.inc:47 +msgid "NIS object" +msgstr "Об’єкт NIS" + +#: ../lib/types/nisObjectType.inc:155 +#, php-format +msgid "NIS object count: %s" +msgstr "Кількість об’єктів NIS: %s" + +#: ../lib/types/nisObjectType.inc:48 +msgid "NIS object entries" +msgstr "Записи об’єктів NIS" + +#: ../lib/types/nisObjectType.inc:39 +msgid "NIS objects" +msgstr "Об’єкти NIS" + +#: ../lib/modules/bindDLZ.inc:113 ../lib/modules/bindDLZ.inc:357 +#: ../lib/modules/bindDLZ.inc:363 ../lib/modules/bindDLZ.inc:482 +msgid "NS record" +msgstr "Запис NS" + +#: ../templates/serverInfo.php:147 ../templates/masscreate.php:294 +#: ../templates/masscreate.php:368 ../templates/schema/schema.php:268 +#: ../lib/types/automountType.inc:86 ../lib/types/automountType.inc:249 +#: ../lib/types/oracleContextType.inc:77 ../lib/types/ppolicyType.inc:77 +#: ../lib/types/bind.inc:190 ../lib/modules/device.inc:61 +#: ../lib/modules/device.inc:89 ../lib/modules/device.inc:120 +#: ../lib/modules/device.inc:170 ../lib/modules/device.inc:418 +#: ../lib/modules/nisObject.inc:61 ../lib/modules/nisObject.inc:81 +#: ../lib/modules/nisObject.inc:111 ../lib/modules/nisObject.inc:137 +#: ../lib/modules/nisObject.inc:209 ../lib/modules/ppolicy.inc:80 +#: ../lib/modules/ppolicy.inc:142 ../lib/modules/ppolicy.inc:165 +#: ../lib/modules/ppolicy.inc:190 ../lib/modules/ppolicy.inc:471 +#: ../lib/modules/automount.inc:64 ../lib/modules/automount.inc:80 +#: ../lib/modules/automount.inc:103 ../lib/modules/automount.inc:128 +#: ../lib/modules/automount.inc:181 ../lib/modules/kolabSharedFolder.inc:112 +#: ../lib/modules/kolabSharedFolder.inc:174 +#: ../lib/modules/kolabSharedFolder.inc:233 +#: ../lib/modules/kolabSharedFolder.inc:261 +#: ../lib/modules/kolabSharedFolder.inc:279 +#: ../lib/modules/kolabSharedFolder.inc:557 +#: ../lib/modules/asteriskExtension.inc:822 +#: ../lib/modules/oracleService.inc:61 ../lib/modules/oracleService.inc:77 +#: ../lib/modules/oracleService.inc:98 ../lib/modules/oracleService.inc:121 +#: ../lib/modules/oracleService.inc:170 ../lib/modules/customFields.inc:84 +#: ../lib/modules/customFields.inc:1041 ../lib/modules/customFields.inc:1688 +#: ../lib/modules/organizationalRole.inc:186 +#: ../lib/modules/groupOfNames.inc:232 +msgid "Name" +msgstr "Назва" + +#: ../lib/modules/nisMailAliasUser.inc:97 +msgid "Name of new alias entry." +msgstr "Назва нового запису псевдоніма." + +#: ../lib/modules/zarafaAddressList.inc:64 +msgid "Name of the address list which should be created." +msgstr "Назва списку адрес, який потрібно створити." + +#: ../lib/modules/bindDLZ.inc:148 ../lib/modules/bindDLZ.inc:152 +#: ../lib/modules/bindDLZ.inc:357 ../lib/modules/bindDLZ.inc:499 +#: ../lib/modules/bindDLZ.inc:1162 +msgid "Name server" +msgstr "Сервер імен" + +#: ../lib/modules/bindDLZ.inc:424 ../lib/modules/bindDLZ.inc:1562 +msgid "Name servers" +msgstr "Сервери імен" + +#: ../lib/modules/bindDLZ.inc:1160 +msgid "Name servers (\"NS\" records)" +msgstr "Сервери імен (\"NS\" записи)" + +#: ../help/help.inc:189 +msgid "" +"Name under which the profile will be saved. If a profile with the same name " +"exists, it will be overwritten." +msgstr "" +"Назва, під якою буде збережено профіль. Якщо профіль з такою назвою вже " +"існує, то буде перезаписаним." + +#: ../lib/modules/namedObject.inc:45 +msgid "Named object" +msgstr "Іменований об’єкт" + +#: ../lib/modules/dhcp_settings.inc:193 ../lib/modules/dhcp_settings.inc:216 +#: ../lib/modules/dhcp_settings.inc:610 ../lib/modules/dhcp_settings.inc:686 +#: ../lib/modules/freeRadius.inc:88 ../lib/modules/freeRadius.inc:124 +#: ../lib/modules/freeRadius.inc:138 ../lib/modules/freeRadius.inc:201 +#: ../lib/modules/freeRadius.inc:228 ../lib/modules/freeRadius.inc:285 +#: ../lib/modules/freeRadius.inc:538 +msgid "Net mask" +msgstr "Маска підмережі" + +#: ../lib/modules/dhcp_settings.inc:169 ../lib/modules/dhcp_settings.inc:213 +#: ../lib/modules/dhcp_settings.inc:228 ../lib/modules/dhcp_settings.inc:280 +#: ../lib/modules/dhcp_settings.inc:581 ../lib/modules/dhcp_settings.inc:679 +msgid "Netbios name servers" +msgstr "Сервер імен Netbios" + +#: ../lib/modules/dhcp_settings.inc:173 ../lib/modules/dhcp_settings.inc:214 +#: ../lib/modules/dhcp_settings.inc:230 ../lib/modules/dhcp_settings.inc:286 +#: ../lib/modules/dhcp_settings.inc:591 ../lib/modules/dhcp_settings.inc:680 +msgid "Netbios node type" +msgstr "Тип вузла Netbios" + +#: ../lib/types/dhcp.inc:118 ../lib/types/dhcp.inc:172 +msgid "New DHCP" +msgstr "Новий DHCP" + +#: ../lib/types/bind.inc:100 ../lib/types/bind.inc:161 +msgid "New DNS entry" +msgstr "Новий запис DNS" + +#: ../lib/types/nisObjectType.inc:102 ../lib/types/nisObjectType.inc:157 +msgid "New NIS object" +msgstr "Новий NIS об’єкт" + +#: ../templates/ou_edit.php:77 +msgid "New OU created successfully." +msgstr "Новий OU успішно створено." + +#: ../lib/modules/windowsUser.inc:340 ../lib/modules/inetOrgPerson.inc:517 +msgid "New York" +msgstr "New York" + +#: ../lib/types/zarafaAddressListType.inc:117 +#: ../lib/types/zarafaAddressListType.inc:146 +msgid "New address list" +msgstr "Новий список адрес" + +#: ../lib/types/mailAlias.inc:114 ../lib/types/mailAlias.inc:143 +#: ../lib/types/alias.inc:114 ../lib/types/alias.inc:143 +msgid "New alias" +msgstr "Новий псевдонім" + +#: ../lib/types/automountType.inc:110 ../lib/types/automountType.inc:217 +msgid "New automount entry" +msgstr "Новий запис автомонтування" + +#: ../lib/types/automountType.inc:233 ../lib/types/automountType.inc:234 +msgid "New automount map" +msgstr "Нова відповідність автомонтування" + +#: ../lib/types/pykotaBillingCodeType.inc:116 +#: ../lib/types/pykotaBillingCodeType.inc:165 +msgid "New billing code" +msgstr "Новий код оплати" + +#: ../lib/types/oracleContextType.inc:101 +#: ../lib/types/oracleContextType.inc:188 +msgid "New database entry" +msgstr "Новий запис бази даних" + +#: ../templates/config/profmanage.php:146 +msgid "New default profile set successfully." +msgstr "Новий типовий профіль визначено успішно." + +#: ../lib/types/smbDomain.inc:114 ../lib/types/smbDomain.inc:169 +msgid "New domain" +msgstr "Новий домен" + +#: ../lib/types/asteriskExt.inc:117 ../lib/types/asteriskExt.inc:145 +msgid "New extension" +msgstr "Нове розширення" + +#: ../templates/pdfedit/pdfpage.php:620 +msgid "New field" +msgstr "Нове поле" + +#: ../lib/types/gon.inc:140 ../lib/types/gon.inc:204 +#: ../lib/types/zarafaDynamicGroupType.inc:119 +#: ../lib/types/zarafaDynamicGroupType.inc:167 ../lib/types/group.inc:163 +#: ../lib/types/group.inc:242 ../lib/types/netgroup.inc:116 +#: ../lib/types/netgroup.inc:171 +msgid "New group" +msgstr "Нова група" + +#: ../lib/types/host.inc:128 ../lib/types/host.inc:195 +msgid "New host" +msgstr "Новий хост" + +#: ../lib/modules/inetLocalMailRecipient.inc:167 +msgid "New local address" +msgstr "Нова локальна адреса" + +#: ../templates/config/mainmanage.php:456 +msgid "New master password" +msgstr "Новий майстер-пароль" + +#: ../templates/config/mainmanage.php:79 +msgid "New master password set successfully." +msgstr "Новий майстер-пароль успішно встановлено." + +#: ../lib/lists.inc:114 +msgid "New object" +msgstr "Новий об’єкт" + +#: ../templates/ou_edit.php:185 ../help/help.inc:263 +msgid "New organisational unit" +msgstr "Нова організаційна одиниця" + +#: ../templates/config/confmain.php:451 +#: ../lib/modules/sambaSamAccount.inc:2265 +#: ../lib/modules/posixAccount.inc:2530 ../lib/modules/windowsUser.inc:1711 +#: ../lib/modules/passwordSelfReset.inc:1059 +msgid "New password" +msgstr "Новий пароль" + +#: ../templates/config/profmanage.php:133 +msgid "New password set successfully." +msgstr "Новий пароль успішно встановлено" + +#: ../lib/types/ppolicyType.inc:122 ../lib/types/ppolicyType.inc:151 +msgid "New policy" +msgstr "Нова політика" + +#: ../lib/types/pykotaPrinterType.inc:117 +#: ../lib/types/pykotaPrinterType.inc:166 +msgid "New printer" +msgstr "Новий принтер" + +#: ../templates/config/profmanage.php:261 +#: ../templates/selfService/profManage.php:222 +msgid "New profile name" +msgstr "Нова назва профіля" + +#: ../lib/modules/range.inc:101 ../lib/modules/range.inc:115 +#: ../lib/modules/range.inc:454 +msgid "New range" +msgstr "Новий діапазон" + +#: ../lib/modules/nisMailAlias.inc:208 +msgid "New recipient" +msgstr "Новий отримувач" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:81 +msgid "New required attributes" +msgstr "Нові необхідні атрибути" + +#: ../lib/types/gon.inc:211 ../lib/types/group.inc:249 +msgid "New role" +msgstr "Нова роль" + +#: ../templates/pdfedit/pdfpage.php:588 +msgid "New section" +msgstr "Нова секція" + +#: ../lib/types/kolabSharedFolderType.inc:114 +#: ../lib/types/kolabSharedFolderType.inc:143 +msgid "New shared folder" +msgstr "Новий загальний каталог" + +#: ../lib/types/sudo.inc:106 ../lib/types/sudo.inc:161 +msgid "New sudo role" +msgstr "Нова роль sudo" + +#: ../lib/types/user.inc:172 ../lib/types/user.inc:531 +msgid "New user" +msgstr "Новий користувач" + +#: ../lib/modules/inetOrgPerson.inc:1826 +msgid "New user certificate" +msgstr "Новий сертифікат користувача" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "New value" +msgstr "Нове значення" + +#: ../lib/types/bind.inc:174 ../lib/types/bind.inc:175 +msgid "New zone" +msgstr "Нова зона" + +#: ../lib/modules/sambaDomain.inc:85 ../lib/modules/sambaDomain.inc:165 +#: ../lib/modules/sambaDomain.inc:186 ../lib/modules/sambaDomain.inc:361 +#: ../lib/modules/sambaDomain.inc:601 +msgid "Next RID" +msgstr "Наступний RID" + +#: ../lib/modules/sambaDomain.inc:212 ../lib/modules/sambaDomain.inc:213 +msgid "Next RID is not a number!" +msgstr "Наступний RID не число!" + +#: ../lib/modules/sambaDomain.inc:86 +msgid "Next RID to use when creating accounts (only used by Winbind)." +msgstr "" +"Наступний RID для використання при створенні акаунтів (використовується " +"тільки для Winbind)." + +#: ../lib/modules/sambaDomain.inc:94 +msgid "Next RID to use when creating group accounts (only used by Winbind)." +msgstr "" +"Наступний RID для використання при створенні акаунтів групове " +"(використовується тільки для Winbind)." + +#: ../lib/modules/sambaDomain.inc:90 +msgid "Next RID to use when creating user accounts (only used by Winbind)." +msgstr "" +"Наступний RID для використання при створенні акаунтів користувачів " +"(використовується тільки для Winbind)." + +#: ../lib/modules/sambaDomain.inc:93 ../lib/modules/sambaDomain.inc:177 +#: ../lib/modules/sambaDomain.inc:188 ../lib/modules/sambaDomain.inc:377 +#: ../lib/modules/sambaDomain.inc:603 +msgid "Next group RID" +msgstr "Наступний RID групи" + +#: ../lib/modules/sambaDomain.inc:216 ../lib/modules/sambaDomain.inc:217 +msgid "Next group RID is not a number!" +msgstr "Наступний RID групи не число!" + +#: ../lib/modules/sambaDomain.inc:89 ../lib/modules/sambaDomain.inc:171 +#: ../lib/modules/sambaDomain.inc:187 ../lib/modules/sambaDomain.inc:369 +#: ../lib/modules/sambaDomain.inc:602 +msgid "Next user RID" +msgstr "Наступний RID користувача" + +#: ../lib/modules/sambaDomain.inc:214 ../lib/modules/sambaDomain.inc:215 +msgid "Next user RID is not a number!" +msgstr "Наступний RID користувача не число!" + +#: ../lib/modules/eduPerson.inc:101 ../lib/modules/eduPerson.inc:188 +#: ../lib/modules/eduPerson.inc:226 ../lib/modules/eduPerson.inc:342 +#: ../lib/modules/eduPerson.inc:584 +msgid "Nick names" +msgstr "Зменшені імена" + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/pykotaPrinter.inc:52 +#: ../lib/modules/pykotaPrinter.inc:168 ../lib/modules/pykotaPrinter.inc:169 +#: ../lib/modules/pykotaPrinter.inc:170 ../lib/modules/qmailGroup.inc:321 +#: ../lib/modules/qmailGroup.inc:322 ../lib/modules/qmailGroup.inc:323 +#: ../lib/modules/qmailGroup.inc:363 ../lib/modules/qmailGroup.inc:364 +#: ../lib/modules/qmailGroup.inc:365 ../lib/modules/qmailGroup.inc:1030 +#: ../lib/modules/qmailGroup.inc:1071 ../lib/modules/qmailGroup.inc:1077 +#: ../lib/modules/imapAccess.inc:121 +msgid "No" +msgstr "Ні" + +#: ../lib/types/asteriskExt.inc:144 +msgid "No Asterisk extensions found." +msgstr "Не знайдено розширень Asterisk." + +#: ../lib/types/dhcp.inc:171 +msgid "No DHCPs found!" +msgstr "Не знайдено DHCP!" + +#: ../lib/types/bind.inc:160 +msgid "No DNS entries found!" +msgstr "Не знайдено DNS записів!" + +#: ../lib/types/nisObjectType.inc:156 +msgid "No NIS objects found!" +msgstr "Не знайдено NIS об’єкти!" + +#: ../templates/3rdParty/pla/lib/Template.php:558 +#: ../templates/3rdParty/pla/lib/Template.php:559 +msgid "No RDN attribute was selected." +msgstr "Не вибрано RDN атрибут." + +#: ../lib/modules/sambaSamAccount.inc:1103 +#: ../lib/modules/sambaGroupMapping.inc:341 +msgid "No Samba 3 domains found in LDAP! Please create one first." +msgstr "Не знайдено Samba 3 домени в LDAP! Будь ласка, створіть їх спочатку." + +#: ../lib/modules/posixAccount.inc:581 ../lib/modules/posixAccount.inc:1367 +msgid "No Unix groups found in LDAP! Please create one first." +msgstr "Не знайдено Unix групи в LDAP! Будь ласка, створіть їх спочатку." + +#: ../lib/modules/qmailUser.inc:42 +msgid "No access" +msgstr "Немає доступу" + +#: ../lib/types/zarafaAddressListType.inc:145 +msgid "No address list found!" +msgstr "Не знайдено списку адрес!" + +#: ../lib/types/mailAlias.inc:142 ../lib/types/alias.inc:142 +msgid "No aliases found!" +msgstr "Не знайдено псевдонімів!" + +#: ../lib/types/automountType.inc:216 +msgid "No automount entries found!" +msgstr "Не знайдено записів автомонтування!" + +#: ../lib/types/pykotaBillingCodeType.inc:164 +msgid "No billing codes found!" +msgstr "Не знайдено кодів оплати!" + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:36 +msgid "No binary data available" +msgstr "Немає двійкових даних" + +#: ../templates/initsuff.php:164 +msgid "No changes were made." +msgstr "Зміни не було зроблено." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:83 +#, php-format +msgid "No current value for attribute %s." +msgstr "Немає поточного значення для атрибута %s." + +#: ../lib/types/oracleContextType.inc:187 +msgid "No database entries found!" +msgstr "Не знайдено записів бази даних!" + +#: ../templates/login.php:104 +msgid "" +"No default profile set. Please set it in the server profile configuration." +msgstr "" +"Не вказано типовий профіль. Будь ласка, вкажіть його в конфігурації профіля " +"сервера." + +#: ../templates/schema/schema.php:144 +msgid "No description" +msgstr "Немає опису" + +#: ../lib/types/smbDomain.inc:168 +msgid "No domains found!" +msgstr "Не знайдено домени!" + +#: ../lib/modules/passwordSelfReset.inc:1546 +msgid "No email address found." +msgstr "Не знайдено адрес ел.пошти." + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:20 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:21 +msgid "No entry was selected to delete" +msgstr "Не вибрано записи для вилучення" + +#: ../lib/modules/ldapPublicKey.inc:483 ../lib/modules/inetOrgPerson.inc:3221 +#: ../lib/modules/customFields.inc:3642 +msgid "No file received." +msgstr "Файл не отримано" + +#: ../templates/config/mainmanage.php:161 ../lib/modules/ldapPublicKey.inc:109 +#: ../lib/modules/inetOrgPerson.inc:99 ../lib/modules/customFields.inc:3577 +msgid "No file selected." +msgstr "Файл не вибрано" + +#: ../lib/modules/qmailUser.inc:48 +msgid "No forwarding" +msgstr "Немає пересилання" + +#: ../lib/modules/posixGroup.inc:601 ../lib/modules/posixAccount.inc:104 +msgid "No free ID-Number!" +msgstr "Немає вільного ID!" + +#: ../lib/types/gon.inc:203 ../lib/types/zarafaDynamicGroupType.inc:166 +#: ../lib/types/group.inc:241 ../lib/types/netgroup.inc:170 +msgid "No groups found!" +msgstr "Не знайдено груп!" + +#: ../lib/types/host.inc:194 +msgid "No hosts found!" +msgstr "Не знайдено хостів!" + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:59 +msgid "No image available" +msgstr "Немає зображення" + +#: ../templates/3rdParty/pla/lib/import_functions.php:94 +msgid "No import input" +msgstr "Нічого імпортувати" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1354 +msgid "No internal attributes" +msgstr "Немає внутрішніх атрибутів" + +#: ../templates/tests/lamdaemonTest.php:195 +msgid "No lamdaemon path set, please update your LAM configuration settings." +msgstr "Не встановлено шлях до скрипта lamdaemon, перевірте конфігурацію LAM." + +#: ../templates/tests/lamdaemonTest.php:97 +#: ../templates/tests/lamdaemonTest.php:190 +msgid "No lamdaemon server set, please update your LAM configuration settings." +msgstr "" +"Не визначено назву сервера, встановлено lamdaemon, перевірте конфігурацію " +"LAM." + +#: ../lib/modules/qmailUser.inc:49 +msgid "No local delivery" +msgstr "Немає локальної доставки" + +#: ../templates/config/mainmanage.php:412 +msgid "No logging" +msgstr "Логи не ведуться" + +#: ../templates/pdfedit/pdfpage.php:429 +msgid "No logo" +msgstr "Немає логотипа" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:157 +msgid "No new attributes available for this entry" +msgstr "Немає нових атрибутів для цього запису" + +#: ../templates/config/conftypes.php:310 ../help/help.inc:176 +msgid "No new entries" +msgstr "Немає нових записів" + +#: ../templates/multiEdit.php:315 ../lib/lists.inc:113 +msgid "No objects found!" +msgstr "Не знайдено об’єкти!" + +#: ../templates/config/confmodules.php:406 +msgid "No or more than one base module selected!" +msgstr "Немає або вибрано більше одного основного модуля!" + +#: ../templates/config/confsave.php:53 ../templates/config/confmain.php:55 +#: ../lib/modules/passwordSelfReset.inc:1169 +msgid "No password was entered!" +msgstr "Не введено пароль!" + +#: ../lib/types/ppolicyType.inc:150 +msgid "No policies found!" +msgstr "Не знайдено політики!" + +#: ../lib/types/pykotaPrinterType.inc:165 +msgid "No printers found!" +msgstr "Не знайдено принтерів!" + +#: ../templates/tests/schemaTest.php:70 +msgid "No problems found." +msgstr "Проблем не виявлено." + +#: ../lib/modules/qmailUser.inc:50 +msgid "No program delivery" +msgstr "Немає програмної доставки" + +#: ../lib/modules/pykotaGroup.inc:63 ../lib/modules/pykotaUser.inc:63 +msgid "No quota" +msgstr "Без обмежень" + +#: ../lib/types/gon.inc:210 ../lib/types/group.inc:248 +msgid "No roles found!" +msgstr "Не знайдено ролей!" + +#: ../lib/modules/customScripts.inc:215 +msgid "No scripts to run." +msgstr "Немає скриптів для запуска" + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "No section text specified" +msgstr "Не визначено текст секції" + +#: ../lib/modules/passwordSelfReset.inc:1199 +msgid "No security answer found." +msgstr "Не знайдено секретної відповіді." + +#: ../templates/config/conflogin.php:137 +msgid "No server profiles found. Please create one." +msgstr "Не знайдено профіля сервера. Будь ласка, створіть його." + +#: ../lib/types/kolabSharedFolderType.inc:142 +msgid "No shared folders found!" +msgstr "Не знайдено загальних каталогів!" + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "No static text specified" +msgstr "Не визначено статичний текст" + +#: ../lib/modules/dhcp_settings.inc:318 +msgid "No subnet entered." +msgstr "Не задано підмережу" + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:45 +msgid "No such entry" +msgstr "Немає такого запису" + +#: ../templates/3rdParty/pla/htdocs/compare.php:24 +#: ../templates/3rdParty/pla/htdocs/compare.php:27 +#: ../templates/3rdParty/pla/htdocs/delete.php:19 +msgid "No such entry." +msgstr "Немає такого запису" + +#: ../templates/schema/schema.php:438 +#, php-format +msgid "No such schema item: \"%s\"" +msgstr "Немає такого елемента схеми: \"%s\"" + +#: ../lib/types/sudo.inc:160 +msgid "No sudo roles found!" +msgstr "Не знайдено ролей sudo!" + +#: ../lib/types/user.inc:530 +msgid "No users found!" +msgstr "Не знайдено користувачів!" + +#: ../templates/config/mainmanage.php:444 +msgid "Non-standard (\\n)" +msgstr "Не стандартно (\\n)" + +#: ../lib/modules/qmailUser.inc:58 +msgid "None" +msgstr "Відсутнє" + +#: ../lib/modules/sudoRole.inc:133 ../lib/modules/sudoRole.inc:195 +#: ../lib/modules/sudoRole.inc:222 ../lib/modules/sudoRole.inc:281 +#: ../lib/modules/sudoRole.inc:481 ../lib/modules/sudoRole.inc:822 +msgid "Not after" +msgstr "Не після" + +#: ../lib/modules/sudoRole.inc:128 ../lib/modules/sudoRole.inc:201 +#: ../lib/modules/sudoRole.inc:223 ../lib/modules/sudoRole.inc:283 +#: ../lib/modules/sudoRole.inc:474 ../lib/modules/sudoRole.inc:817 +msgid "Not before" +msgstr "Не перед" + +#: ../help/help.inc:68 +msgid "Note" +msgstr "Примітка" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:125 +msgid "" +"Note: You may be required to enter new attributes that these object classes " +"require" +msgstr "" +"Примітка: Можливо, вам знадобиться додати нові атрибути, необхідні для цього " +"класу об’єкту" + +#: ../lib/modules/windowsGroup.inc:122 ../lib/modules/windowsGroup.inc:189 +#: ../lib/modules/windowsGroup.inc:259 ../lib/modules/windowsGroup.inc:349 +#: ../lib/modules/windowsGroup.inc:747 +msgid "Notes" +msgstr "Примітки" + +#: ../templates/3rdParty/pla/lib/export_functions.php:450 +msgid "Nothing to export" +msgstr "Нічого експортувати" + +#: ../templates/config/mainmanage.php:408 +msgid "Notice" +msgstr "Нагадування" + +#: ../templates/delete.php:103 +msgid "Number of child entries" +msgstr "Кількість дочірніх записів" + +#: ../lib/modules/customFields.inc:129 +msgid "Number of columns in text area." +msgstr "Кількість колонок в текстовій області." + +#: ../lib/modules/shadowAccount.inc:182 +msgid "" +"Number of days a user can login even his password has expired. -1=always." +msgstr "" +"Скільки днів користувач може входити, після того, як його пароль застарів. " +"-1=завжди." + +#: ../lib/modules/shadowAccount.inc:186 +msgid "" +"Number of days a user has to wait until he is allowed to change his password " +"again. If set value must be >0." +msgstr "" +"Кількість днів до того, як користувач зможе змінити свій пароль. Якщо " +"встановлено, то повинно бути > 0." + +#: ../lib/modules/shadowAccount.inc:190 +msgid "" +"Number of days after a user has to change his password again. If set value " +"must be >0." +msgstr "" +"Кількість днів, після яких корстувач змушений буде змінити свій пароль. Якщо " +"встановлено, то повинно бути > 0." + +#: ../lib/modules/mitKerberos.inc:129 +msgid "Number of failed logins." +msgstr "Кількість невдалих спроб входу." + +#: ../lib/modules/sambaDomain.inc:138 +msgid "Number of minutes after which the bad logon attempts are reset." +msgstr "Час (в хвилинах), коли скидається лічильник невдалих спроб." + +#: ../lib/modules/pykotaBillingCode.inc:90 +msgid "Number of pages printed with this billing code." +msgstr "Кількість сторінок надрукованих за цим кодом оплати." + +#: ../lib/modules/customFields.inc:133 +msgid "Number of rows in text area." +msgstr "Кількість рядків у текстовій області." + +#: ../templates/config/mainmanage.php:395 ../help/help.inc:162 +msgid "Number of rules that must match" +msgstr "Кількість правил, які повинні співпадати" + +#: ../lib/modules/ppolicy.inc:85 ../lib/modules/sambaDomain.inc:126 +msgid "" +"Number of seconds after the user is allowed to change his password again." +msgstr "" +"Кількість секунд, після яких користувачу дозволяється знову змінити пароль." + +#: ../lib/modules/ppolicy.inc:89 ../lib/modules/sambaDomain.inc:130 +msgid "Number of seconds after which the user must change his password." +msgstr "Кількість секунд, після яких користувач змушений буде змінити пароль." + +#: ../templates/schema/schema.php:147 ../templates/schema/schema.php:344 +msgid "OID" +msgstr "OID" + +#: ../templates/ou_edit.php:83 +msgid "OU already exists!" +msgstr "OU вже створено!" + +#: ../templates/ou_edit.php:94 +msgid "OU deleted successfully." +msgstr "OU успішно вилучено." + +#: ../templates/ou_edit.php:152 ../lib/tools/ouEditor.inc:44 +msgid "OU editor" +msgstr "OU редактор" + +#: ../templates/ou_edit.php:87 +msgid "OU is invalid!" +msgstr "OU неправильний!" + +#: ../templates/ou_edit.php:131 +msgid "OU is not empty or invalid!" +msgstr "OU не порожній або неправильний!" + +#: ../help/help.inc:263 ../help/help.inc:265 +msgid "OU-Editor" +msgstr "OU-редактор" + +#: ../templates/schema/schema.php:65 ../templates/schema/schema.php:66 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1324 +#: ../lib/modules/selfRegistration.inc:74 +#: ../lib/modules/selfRegistration.inc:214 ../lib/modules/customFields.inc:80 +#: ../lib/modules/customFields.inc:574 +msgid "Object classes" +msgstr "Класи об’єктів" + +#: ../lib/lists.inc:112 +#, php-format +msgid "Object count: %s" +msgstr "Кількість об’єктів: %s" + +#: ../templates/schema/schema.php:152 ../templates/schema/schema.php:283 +msgid "Obsolete" +msgstr "Застарілий" + +#: ../lib/modules/sambaDomain.inc:289 ../lib/modules/sambaDomain.inc:298 +#: ../lib/modules/sambaDomain.inc:307 ../lib/modules/sambaDomain.inc:614 +#: ../lib/modules/sambaDomain.inc:619 ../lib/modules/sambaDomain.inc:624 +msgid "Off" +msgstr "Вимкнено" + +#: ../lib/modules/windowsUser.inc:152 ../lib/modules/windowsUser.inc:344 +#: ../lib/modules/windowsUser.inc:508 ../lib/modules/windowsUser.inc:541 +#: ../lib/modules/windowsUser.inc:713 ../lib/modules/windowsUser.inc:1596 +#: ../lib/modules/windowsUser.inc:1725 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:199 ../lib/modules/inetOrgPerson.inc:531 +#: ../lib/modules/inetOrgPerson.inc:566 ../lib/modules/inetOrgPerson.inc:792 +#: ../lib/modules/inetOrgPerson.inc:796 ../lib/modules/inetOrgPerson.inc:1358 +#: ../lib/modules/inetOrgPerson.inc:1361 ../lib/modules/inetOrgPerson.inc:1911 +#: ../lib/modules/inetOrgPerson.inc:2621 ../lib/modules/inetOrgPerson.inc:3525 +#: ../lib/modules/inetOrgPerson.inc:3581 +msgid "Office name" +msgstr "Назва офіса" + +#: ../templates/lists/changePassword.php:340 +#: ../templates/lists/changePassword.php:377 +#: ../templates/lists/changePassword.php:418 +#: ../templates/lists/changePassword.php:449 +#: ../templates/tests/lamdaemonTest.php:92 ../templates/ou_edit.php:193 +#: ../templates/ou_edit.php:207 ../templates/masscreate.php:211 +#: ../templates/config/profmanage.php:254 +#: ../templates/config/profmanage.php:266 +#: ../templates/config/profmanage.php:275 +#: ../templates/config/profmanage.php:293 +#: ../templates/config/profmanage.php:302 +#: ../templates/config/profmanage.php:304 +#: ../templates/config/mainmanage.php:469 +#: ../templates/config/conflogin.php:177 ../templates/config/mainlogin.php:165 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminLogin.php:165 +#: ../templates/selfService/adminMain.php:626 +#: ../templates/selfService/adminMain.php:679 +#: ../templates/pdfedit/pdfmain.php:210 ../templates/pdfedit/pdfmain.php:217 +#: ../templates/pdfedit/pdfmain.php:223 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/profedit/profilemain.php:205 +#: ../templates/profedit/profilemain.php:211 +#: ../lib/types/automountType.inc:234 ../lib/types/user.inc:303 +#: ../lib/types/bind.inc:175 ../lib/modules/selfRegistration.inc:446 +#: ../lib/modules/zarafaContact.inc:433 ../lib/modules/zarafaGroup.inc:493 +#: ../lib/modules/device.inc:300 ../lib/modules/sambaSamAccount.inc:1431 +#: ../lib/modules/sambaSamAccount.inc:1566 ../lib/modules/zarafaUser.inc:917 +#: ../lib/modules/zarafaUser.inc:968 ../lib/modules/sambaGroupMapping.inc:508 +#: ../lib/modules/nisnetgroup.inc:479 ../lib/modules/nisnetgroup.inc:489 +#: ../lib/modules/asteriskExtension.inc:484 ../lib/modules/aliasEntry.inc:146 +#: ../lib/modules/aliasEntry.inc:166 ../lib/modules/qmailGroup.inc:862 +#: ../lib/modules/imapAccess.inc:295 ../lib/modules/organizationalRole.inc:337 +#: ../lib/modules/passwordSelfReset.inc:872 +#: ../lib/modules/passwordSelfReset.inc:1094 +#: ../lib/modules/windowsGroup.inc:603 ../lib/modules/groupOfNames.inc:394 +#: ../lib/modules/groupOfNames.inc:549 ../lib/modules/nisMailAlias.inc:375 +#: ../lib/modules/nisMailAlias.inc:384 ../lib/lists.inc:710 +#: ../lib/lists.inc:792 ../lib/modules.inc:1221 +msgid "Ok" +msgstr "Гаразд" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:98 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +msgid "Old value" +msgstr "Старе значення" + +#: ../lib/modules/sambaDomain.inc:289 ../lib/modules/sambaDomain.inc:298 +#: ../lib/modules/sambaDomain.inc:307 ../lib/modules/sambaDomain.inc:615 +#: ../lib/modules/sambaDomain.inc:620 ../lib/modules/sambaDomain.inc:625 +msgid "On" +msgstr "Увімкнуто" + +#: ../lib/modules/sambaSamAccount.inc:243 +#: ../lib/modules/sambaSamAccount.inc:384 +#: ../lib/modules/sambaSamAccount.inc:1552 +#: ../lib/modules/sambaSamAccount.inc:1962 +msgid "On broken or timed out connection" +msgstr "У випадку розрива або тайм-аута з’єднання" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:139 +#: ../templates/3rdParty/pla/htdocs/export_form.php:32 +msgid "One (one level beneath base)" +msgstr "Один (один рівень нижче)" + +#: ../lib/modules/range.inc:114 ../lib/modules/fixed_ip.inc:127 +msgid "One or more errors occured. The invalid fields are marked." +msgstr "Одна або кілька помилок. Неправильні поля виділено." + +#: ../templates/3rdParty/pla/htdocs/copy.php:98 +#: ../templates/3rdParty/pla/htdocs/copy.php:155 +#, php-format +msgid "Operation not successful. DN %s has not been created." +msgstr "Операція не успішна. DN %s не було створено." + +#: ../templates/serverInfo.php:277 ../templates/serverInfo.php:367 +msgid "Operation statistics" +msgstr "Статистика операцій" + +#: ../templates/3rdParty/pla/htdocs/copy.php:95 +#: ../templates/3rdParty/pla/htdocs/copy.php:153 +#, php-format +msgid "Operation successful. DN %s has been created." +msgstr "Операція успішна. DN %s створено." + +#: ../templates/multiEdit.php:117 ../help/help.inc:273 +msgid "Operations" +msgstr "Операції" + +#: ../templates/schema/schema.php:384 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1575 +msgid "Optional attributes" +msgstr "Додаткові атрибути" + +#: ../lib/modules/fixed_ip.inc:111 +msgid "Optional description for the PC." +msgstr "Додатковий опис для цього ПК." + +#: ../lib/types/sudo.inc:83 ../lib/modules/mitKerberos.inc:408 +#: ../lib/modules/zarafaDynamicGroup.inc:267 +#: ../lib/modules/zarafaContact.inc:241 ../lib/modules/zarafaGroup.inc:278 +#: ../lib/modules/posixAccount.inc:245 ../lib/modules/zarafaUser.inc:571 +#: ../lib/modules/windowsUser.inc:723 ../lib/modules/kolabUser.inc:379 +#: ../lib/modules/sudoRole.inc:94 ../lib/modules/sudoRole.inc:123 +#: ../lib/modules/sudoRole.inc:189 ../lib/modules/sudoRole.inc:221 +#: ../lib/modules/sudoRole.inc:233 ../lib/modules/sudoRole.inc:451 +#: ../lib/modules/sudoRole.inc:811 ../lib/modules/asteriskExtension.inc:122 +#: ../lib/modules/asteriskVoicemail.inc:115 +#: ../lib/modules/asteriskVoicemail.inc:125 +#: ../lib/modules/asteriskVoicemail.inc:142 +#: ../lib/modules/asteriskVoicemail.inc:190 +#: ../lib/modules/asteriskVoicemail.inc:258 +#: ../lib/modules/asteriskVoicemail.inc:375 ../lib/modules/qmailGroup.inc:611 +#: ../lib/modules/heimdalKerberos.inc:339 +msgid "Options" +msgstr "Опції" + +#: ../lib/modules/asteriskVoicemail.inc:116 +msgid "Options for Asterisk voicemail account (e.g. sendvoicemail=yes)." +msgstr "" +"Опції для акаунта голосової пошти Asterisk (наприклад, sendvoicemail=yes)" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:39 +msgid "Or paste your LDIF here" +msgstr "Або вставте ваш LDIF тут" + +#: ../lib/modules/oracleService.inc:47 +msgid "Oracle database" +msgstr "База даних Oracle" + +#: ../lib/types/oracleContextType.inc:48 +msgid "Oracle database entries" +msgstr "Записи БД Oracle" + +#: ../lib/types/oracleContextType.inc:39 +msgid "Oracle databases" +msgstr "Бази даних Oracle" + +#: ../lib/modules/sudoRole.inc:138 ../lib/modules/sudoRole.inc:207 +#: ../lib/modules/sudoRole.inc:224 ../lib/modules/sudoRole.inc:285 +#: ../lib/modules/sudoRole.inc:484 ../lib/modules/sudoRole.inc:812 +msgid "Order" +msgstr "Порядок" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:166 +msgid "Order by" +msgstr "Сортувати за" + +#: ../templates/schema/schema.php:171 +msgid "Ordering" +msgstr "Сортування" + +#: ../lib/modules/eduPerson.inc:126 ../lib/modules/eduPerson.inc:200 +#: ../lib/modules/eduPerson.inc:227 ../lib/modules/eduPerson.inc:245 +#: ../lib/modules/eduPerson.inc:346 ../lib/modules/eduPerson.inc:587 +#: ../lib/modules/inetOrgPerson.inc:223 ../lib/modules/inetOrgPerson.inc:499 +#: ../lib/modules/inetOrgPerson.inc:608 ../lib/modules/inetOrgPerson.inc:824 +#: ../lib/modules/inetOrgPerson.inc:828 ../lib/modules/inetOrgPerson.inc:1499 +#: ../lib/modules/inetOrgPerson.inc:1502 ../lib/modules/inetOrgPerson.inc:1916 +#: ../lib/modules/inetOrgPerson.inc:3553 ../lib/modules/inetOrgPerson.inc:3588 +msgid "Organisation" +msgstr "Організація" + +#: ../lib/modules/inetOrgPerson.inc:163 ../lib/modules/inetOrgPerson.inc:220 +#: ../lib/modules/inetOrgPerson.inc:491 ../lib/modules/inetOrgPerson.inc:611 +#: ../lib/modules/inetOrgPerson.inc:816 ../lib/modules/inetOrgPerson.inc:820 +#: ../lib/modules/inetOrgPerson.inc:1490 ../lib/modules/inetOrgPerson.inc:1493 +#: ../lib/modules/inetOrgPerson.inc:1915 ../lib/modules/inetOrgPerson.inc:2753 +#: ../lib/modules/inetOrgPerson.inc:3551 ../lib/modules/inetOrgPerson.inc:3588 +msgid "Organisational unit" +msgstr "Організаційна одиниця" + +#: ../lib/modules/eduPerson.inc:134 ../lib/modules/eduPerson.inc:138 +#: ../lib/modules/eduPerson.inc:212 ../lib/modules/eduPerson.inc:228 +#: ../lib/modules/eduPerson.inc:350 ../lib/modules/eduPerson.inc:589 +msgid "Organisational units" +msgstr "Організаційні одиниці" + +#: ../lib/modules/eduPerson.inc:249 +msgid "Organisational units contains an invalid entry." +msgstr "Організаційні одиниці містять неправильний запис." + +#: ../templates/multiEdit.php:98 ../templates/config/confmain.php:328 +msgid "Other" +msgstr "Інші" + +#: ../lib/modules/windowsUser.inc:144 ../lib/modules/windowsUser.inc:148 +#: ../lib/modules/windowsUser.inc:368 ../lib/modules/windowsUser.inc:507 +#: ../lib/modules/windowsUser.inc:603 ../lib/modules/windowsUser.inc:719 +#: ../lib/modules/windowsUser.inc:1595 +msgid "Other telephone numbers" +msgstr "Інші телефонні номери" + +#: ../lib/modules/windowsUser.inc:180 ../lib/modules/windowsUser.inc:184 +#: ../lib/modules/windowsUser.inc:380 ../lib/modules/windowsUser.inc:515 +#: ../lib/modules/windowsUser.inc:721 ../lib/modules/windowsUser.inc:1603 +msgid "Other web sites" +msgstr "Інші веб-сайти" + +#: ../lib/modules/customScripts.inc:84 ../lib/modules/customScripts.inc:100 +#: ../lib/modules/customScripts.inc:110 +msgid "Output may contain HTML" +msgstr "Вивід може містити HTML" + +#: ../lib/modules/customScripts.inc:264 ../lib/modules/customScripts.inc:554 +#, php-format +msgid "Output of command \"%s\" with return code %s" +msgstr "Вивід команди \"%s\" з кодом виходу %s" + +#: ../lib/modules/pykotaUser.inc:144 ../lib/modules/pykotaUser.inc:171 +#: ../lib/modules/pykotaUser.inc:253 ../lib/modules/pykotaUser.inc:263 +#: ../lib/modules/pykotaUser.inc:324 ../lib/modules/pykotaUser.inc:402 +#: ../lib/modules/pykotaUser.inc:899 +msgid "Overcharge factor" +msgstr "Фактор перевантаження" + +#: ../lib/modules/pykotaUser.inc:145 +msgid "" +"Overcharge factor that is applied when computing the cost of a print job. " +"The number of pages is not changed." +msgstr "" +"Фактор перевантаження, який застосовується при підрахунку вартості роботи " +"друку. Кількість сторінок не змінюється." + +#: ../templates/serverInfo.php:168 +msgid "Overlays" +msgstr "Оверлеї" + +#: ../lib/modules/zarafaUser.inc:89 +msgid "Override default quota settings." +msgstr "Перевизначити типову квоту." + +#: ../templates/config/confmain.php:320 ../lib/types/asteriskExt.inc:96 +#: ../lib/types/asteriskExt.inc:158 +msgid "Owner" +msgstr "Власник" + +#: ../lib/types/gon.inc:108 ../lib/modules/device.inc:69 +#: ../lib/modules/device.inc:73 ../lib/modules/device.inc:103 +#: ../lib/modules/device.inc:128 ../lib/modules/device.inc:180 +#: ../lib/modules/device.inc:424 ../lib/modules/groupOfNames.inc:93 +#: ../lib/modules/groupOfNames.inc:97 ../lib/modules/groupOfNames.inc:143 +#: ../lib/modules/groupOfNames.inc:174 ../lib/modules/groupOfNames.inc:197 +#: ../lib/modules/groupOfNames.inc:240 ../lib/modules/groupOfNames.inc:398 +#: ../lib/modules/groupOfNames.inc:702 +msgid "Owners" +msgstr "Власники" + +#: ../lib/modules/dhcp_settings.inc:97 +msgid "P-Node (0x02)" +msgstr "P-Node (0x02)" + +#: ../lib/modules/fixed_ip.inc:98 ../lib/modules/fixed_ip.inc:425 +#: ../lib/modules/fixed_ip.inc:740 +msgid "PC name" +msgstr "назва ПК" + +#: ../lib/modules/windowsHost.inc:96 +msgid "PC01" +msgstr "PC01" + +#: ../templates/pdfedit/pdfpage.php:445 ../templates/pdfedit/pdfmain.php:84 +#: ../lib/tools/pdfEdit.inc:44 +msgid "PDF editor" +msgstr "PDF редактор" + +#: ../templates/masscreate.php:275 ../templates/pdfedit/pdfmain.php:310 +#: ../lib/lists.inc:688 ../help/help.inc:204 +msgid "PDF structure" +msgstr "PDF структура" + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "PDF structure name not valid" +msgstr "Назва PDF структури неправильна" + +#: ../templates/pdfedit/pdfmain.php:168 +msgid "PDF structure was successfully saved." +msgstr "PDF структура успішно збережена." + +#: ../templates/pdfedit/pdfmain.php:277 +msgid "PDF structures" +msgstr "PDF структури" + +#: ../templates/serverInfo.php:264 +msgid "PDUs sent" +msgstr "передано PDU" + +#: ../templates/config/mainmanage.php:432 ../help/help.inc:158 +msgid "PHP error reporting" +msgstr "Звіт РНР помилок" + +#: ../templates/config/mainmanage.php:428 +msgid "PHP system setting" +msgstr "Системні налаштування РНР" + +#: ../lib/modules/zarafaUser.inc:306 ../lib/modules/zarafaUser.inc:645 +#: ../lib/modules/zarafaUser.inc:1334 +msgid "POP3" +msgstr "POP3" + +#: ../templates/lists/changePassword.php:406 +#: ../templates/lists/changePassword.php:437 ../lib/types/user.inc:376 +#: ../lib/types/user.inc:408 +msgid "PPolicy" +msgstr "PPolicy" + +#: ../lib/modules/bindDLZ.inc:108 ../lib/modules/bindDLZ.inc:294 +#: ../lib/modules/bindDLZ.inc:300 ../lib/modules/bindDLZ.inc:478 +msgid "PTR record" +msgstr "Запис PTR" + +#: ../lib/modules/bindDLZ.inc:415 ../lib/modules/bindDLZ.inc:434 +#: ../lib/modules/bindDLZ.inc:1489 +msgid "PTR records" +msgstr "Записи PTR" + +#: ../lib/modules/sambaSamAccount.inc:556 +msgid "Pacific Time (US & Canada)" +msgstr "Pacific Time (US & Canada)" + +#: ../lib/modules/dhcp_settings.inc:166 +msgid "" +"Packets are sent to the default gateway if the receiver does not reside in " +"the same network. The default gateway routes them to the target network." +msgstr "" +"Пакети типово надсилаються в шлюз, якщо оримувач не в цій мережі. Шлюз " +"перенаправляє їх в потрібну мережу." + +#: ../lib/types/pykotaBillingCodeType.inc:94 +#: ../lib/modules/pykotaBillingCode.inc:89 +#: ../lib/modules/pykotaBillingCode.inc:118 +#: ../lib/modules/pykotaBillingCode.inc:151 +#: ../lib/modules/pykotaBillingCode.inc:264 +msgid "Page count" +msgstr "Кількість сторінок" + +#: ../templates/selfService/adminMain.php:521 ../help/help.inc:234 +msgid "Page header" +msgstr "Заголовок сторінки" + +#: ../templates/selfService/adminMain.php:434 +msgid "Page layout" +msgstr "Макет сторінки" + +#: ../lib/modules/asteriskVoicemail.inc:111 +#: ../lib/modules/asteriskVoicemail.inc:141 +#: ../lib/modules/asteriskVoicemail.inc:184 +#: ../lib/modules/asteriskVoicemail.inc:256 +#: ../lib/modules/asteriskVoicemail.inc:373 +msgid "Pager" +msgstr "Пейджер" + +#: ../lib/modules/asteriskVoicemail.inc:112 +msgid "Pager number for Asterisk voicemail." +msgstr "Номер пейджера для голосової пошти Asterisk." + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:35 +msgid "Parent DN" +msgstr "Батьківський DN" + +#: ../lib/modules/puppetClient.inc:88 ../lib/modules/puppetClient.inc:134 +#: ../lib/modules/puppetClient.inc:154 ../lib/modules/puppetClient.inc:265 +#: ../lib/modules/puppetClient.inc:431 ../lib/modules/puppetClient.inc:466 +msgid "Parent node" +msgstr "Батьківський вузол" + +#: ../lib/modules/puppetClient.inc:190 +msgid "Parent node not found." +msgstr "Батьківський вузол не знайдено." + +#: ../templates/schema/schema.php:366 +msgid "Parent to" +msgstr "Головний до" + +#: ../templates/3rdParty/pla/htdocs/import.php:98 +msgid "Parse error" +msgstr "Помилка парсингу" + +#: ../lib/modules/pykotaPrinter.inc:107 ../lib/modules/pykotaPrinter.inc:166 +#: ../lib/modules/pykotaPrinter.inc:196 ../lib/modules/pykotaPrinter.inc:243 +#: ../lib/modules/pykotaPrinter.inc:595 +msgid "Passthrough" +msgstr "Passthrough" + +#: ../templates/lists/changePassword.php:356 ../templates/login.php:379 +#: ../templates/selfService/selfServiceLogin.php:323 +#: ../lib/selfService.inc:393 ../lib/modules/mitKerberos.inc:156 +#: ../lib/modules/mitKerberos.inc:242 ../lib/modules/mitKerberos.inc:257 +#: ../lib/modules/mitKerberos.inc:795 ../lib/modules/mitKerberos.inc:798 +#: ../lib/modules/selfRegistration.inc:407 +#: ../lib/modules/selfRegistration.inc:533 +#: ../lib/modules/selfRegistration.inc:536 +#: ../lib/modules/selfRegistration.inc:539 +#: ../lib/modules/asteriskAccount.inc:115 +#: ../lib/modules/asteriskAccount.inc:325 ../lib/modules/posixGroup.inc:205 +#: ../lib/modules/posixGroup.inc:598 ../lib/modules/sambaSamAccount.inc:105 +#: ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:250 +#: ../lib/modules/sambaSamAccount.inc:425 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/posixAccount.inc:110 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:332 ../lib/modules/posixAccount.inc:418 +#: ../lib/modules/posixAccount.inc:522 ../lib/modules/posixAccount.inc:1496 +#: ../lib/modules/posixAccount.inc:1868 ../lib/modules/posixAccount.inc:1871 +#: ../lib/modules/windowsUser.inc:223 ../lib/modules/windowsUser.inc:272 +#: ../lib/modules/windowsUser.inc:524 ../lib/modules/windowsUser.inc:549 +#: ../lib/modules/windowsUser.inc:615 ../lib/modules/windowsUser.inc:616 +#: ../lib/modules/windowsUser.inc:1638 ../lib/modules/windowsUser.inc:1641 +#: ../lib/modules/inetOrgPerson.inc:840 ../lib/modules/inetOrgPerson.inc:1556 +#: ../lib/modules/inetOrgPerson.inc:2052 ../lib/modules/inetOrgPerson.inc:3590 +#: ../lib/modules/asteriskVoicemail.inc:99 +#: ../lib/modules/asteriskVoicemail.inc:165 +#: ../lib/modules/customFields.inc:2444 ../lib/modules/heimdalKerberos.inc:124 +#: ../lib/modules/heimdalKerberos.inc:211 +#: ../lib/modules/heimdalKerberos.inc:223 +#: ../lib/modules/heimdalKerberos.inc:695 +#: ../lib/modules/heimdalKerberos.inc:698 ../lib/modules.inc:1043 +#: ../help/help.inc:202 +msgid "Password" +msgstr "Пароль" + +#: ../lib/modules/sambaSamAccount.inc:294 +#: ../lib/modules/sambaSamAccount.inc:1155 ../lib/modules/windowsUser.inc:214 +#: ../lib/modules/windowsUser.inc:410 ../lib/modules/windowsUser.inc:522 +#: ../lib/modules/windowsUser.inc:1626 +msgid "Password change at next login" +msgstr "Зміна пароля при наступному вході" + +#: ../lib/modules/mitKerberos.inc:148 ../lib/modules/mitKerberos.inc:261 +#: ../lib/modules/heimdalKerberos.inc:118 +#: ../lib/modules/heimdalKerberos.inc:227 +msgid "Password change command" +msgstr "Команда для зміни пароля" + +#: ../templates/lists/changePassword.php:295 +msgid "Password change options" +msgstr "Опції зміни пароля" + +#: ../lib/modules/ppolicyUser.inc:59 ../lib/modules/ppolicyUser.inc:74 +#: ../lib/modules/ppolicyUser.inc:132 ../lib/modules/ppolicyUser.inc:265 +msgid "Password change required" +msgstr "Потрібна зміна пароля" + +#: ../lib/types/ppolicyType.inc:91 ../lib/modules/ppolicy.inc:136 +#: ../lib/modules/ppolicy.inc:156 ../lib/modules/ppolicy.inc:300 +#: ../lib/modules/ppolicy.inc:510 +msgid "Password change requires old password" +msgstr "Потрібен старий пароль для зміни пароля" + +#: ../lib/modules/mitKerberos.inc:189 ../lib/modules/mitKerberos.inc:467 +#: ../lib/modules/heimdalKerberos.inc:154 +#: ../lib/modules/heimdalKerberos.inc:393 +msgid "Password change service" +msgstr "Сервіс зміни пароля" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:30 +msgid "Password check" +msgstr "Перевірка пароля" + +#: ../lib/modules/mitKerberos.inc:297 ../lib/modules/selfRegistration.inc:536 +#: ../lib/modules/posixGroup.inc:598 ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:107 ../lib/modules/posixAccount.inc:110 +#: ../lib/modules/posixAccount.inc:111 ../lib/modules/windowsUser.inc:616 +#: ../lib/modules/inetOrgPerson.inc:105 +msgid "Password contains invalid characters. Valid characters are:" +msgstr "Пароль містить неприпустимі символи. Допускається:" + +#: ../lib/modules/sambaSamAccount.inc:279 +#: ../lib/modules/sambaSamAccount.inc:282 +#: ../lib/modules/sambaSamAccount.inc:447 +#: ../lib/modules/sambaSamAccount.inc:1145 +#: ../lib/modules/sambaSamAccount.inc:1737 ../lib/modules/windowsUser.inc:198 +#: ../lib/modules/windowsUser.inc:394 ../lib/modules/windowsUser.inc:518 +#: ../lib/modules/windowsUser.inc:747 ../lib/modules/windowsUser.inc:1616 +msgid "Password does not expire" +msgstr "Пароль не застаріває" + +#: ../lib/types/user.inc:103 ../lib/modules/shadowAccount.inc:61 +#: ../lib/modules/shadowAccount.inc:113 ../lib/modules/shadowAccount.inc:170 +#: ../lib/modules/shadowAccount.inc:181 ../lib/modules/shadowAccount.inc:215 +#: ../lib/modules/shadowAccount.inc:324 ../lib/modules/shadowAccount.inc:502 +msgid "Password expiration" +msgstr "Застарівання пароля" + +#: ../lib/modules/shadowAccount.inc:61 ../lib/modules/shadowAccount.inc:62 +msgid "Password expiration must be are natural number or -1." +msgstr "Термін застарівання пароля повинен бути цілим числом або -1." + +#: ../templates/selfService/adminMain.php:505 ../help/help.inc:238 +msgid "Password field label" +msgstr "Мітка поля пароля" + +#: ../lib/modules/asteriskVoicemail.inc:100 +msgid "Password for voicemail mailbox." +msgstr "Пароль для скриньки голосової пошти." + +#: ../lib/modules/posixGroup.inc:504 ../lib/modules/posixGroup.inc:557 +#: ../lib/modules/posixAccount.inc:191 ../lib/modules/posixAccount.inc:247 +#: ../lib/modules/posixAccount.inc:457 ../lib/modules/inetOrgPerson.inc:812 +#: ../lib/modules/inetOrgPerson.inc:3500 ../lib/modules/customFields.inc:136 +#: ../lib/modules/customFields.inc:2458 +msgid "Password hash type" +msgstr "Тип хеша пароля" + +#: ../lib/types/ppolicyType.inc:80 ../lib/modules/ppolicy.inc:92 +#: ../lib/modules/ppolicy.inc:145 ../lib/modules/ppolicy.inc:169 +#: ../lib/modules/ppolicy.inc:230 ../lib/modules/ppolicy.inc:474 +#: ../lib/modules/sambaDomain.inc:105 ../lib/modules/sambaDomain.inc:191 +#: ../lib/modules/sambaDomain.inc:283 ../lib/modules/sambaDomain.inc:606 +msgid "Password history length" +msgstr "Довжина історії пароля" + +#: ../templates/config/confmain.php:367 +msgid "Password mail settings" +msgstr "Налаштування листів з паролями" + +#: ../lib/modules/shadowAccount.inc:59 ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/ppolicy.inc:167 ../lib/modules/sambaDomain.inc:222 +msgid "Password maximum age must be are natural number." +msgstr "Максимальний термін життя пароля повинен бути цілим числом." + +#: ../lib/modules/shadowAccount.inc:66 +msgid "Password maximum age must be bigger as password minimum age." +msgstr "" +"Максимальний термін життя пароля повинен бути більше мінімального терміну." + +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/ppolicy.inc:168 +#: ../lib/modules/sambaDomain.inc:220 +msgid "Password maximum age must be bigger than password minimum age." +msgstr "" +"Максимальний термін життя пароля повинен бути більше мінімального терміну." + +#: ../lib/modules/shadowAccount.inc:57 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/ppolicy.inc:166 ../lib/modules/sambaDomain.inc:221 +msgid "Password minimum age must be are natural number." +msgstr "Мінімальний термін життя пароля повинен бути цілим числом." + +#: ../templates/config/mainmanage.php:401 ../help/help.inc:166 +msgid "Password must not contain part of user/first/last name" +msgstr "" +"Пароль не повинен містити як частину логін, ім’я або прізвище користувача" + +#: ../templates/config/mainmanage.php:399 ../help/help.inc:164 +msgid "Password must not contain user name" +msgstr "Пароль не повинен містити псевдоімені користувача" + +#: ../lib/modules/imapAccess.inc:94 ../lib/modules/imapAccess.inc:290 +msgid "Password of IMAP admin user" +msgstr "Пароль адміністратора IMAP" + +#: ../lib/types/ppolicyType.inc:39 +msgid "Password policies" +msgstr "Політика паролей" + +#: ../lib/types/ppolicyType.inc:48 +msgid "Password policies (ppolicy)" +msgstr "Політика паролей (ppolicy)" + +#: ../templates/config/mainmanage.php:382 ../lib/types/user.inc:284 +#: ../lib/types/user.inc:837 ../lib/modules/ppolicyUser.inc:45 +#: ../lib/modules/ppolicyUser.inc:55 ../lib/modules/ppolicyUser.inc:67 +#: ../lib/modules/ppolicyUser.inc:83 ../lib/modules/ppolicyUser.inc:123 +#: ../lib/modules/ppolicyUser.inc:260 ../lib/modules/ppolicyUser.inc:293 +#: ../lib/modules/ppolicy.inc:62 ../lib/modules/sambaDomain.inc:266 +#: ../help/help.inc:154 +msgid "Password policy" +msgstr "Політика паролей" + +#: ../lib/types/ppolicyType.inc:81 ../lib/modules/ppolicy.inc:96 +#: ../lib/modules/ppolicy.inc:146 ../lib/modules/ppolicy.inc:242 +#: ../lib/modules/ppolicy.inc:490 +msgid "Password quality check" +msgstr "Перевірка якості пароля" + +#: ../lib/modules/passwordSelfReset.inc:539 +msgid "Password reset confirmation" +msgstr "Підтвердження скидання пароля" + +#: ../lib/modules/passwordSelfReset.inc:559 +msgid "Password reset notification" +msgstr "Повідомлення про скидання пароля" + +#: ../lib/modules/passwordSelfReset.inc:66 +#: ../lib/modules/passwordSelfReset.inc:875 +#: ../lib/modules/passwordSelfReset.inc:1097 +msgid "Password self reset" +msgstr "Самостійне скидання пароля" + +#: ../lib/modules/passwordSelfReset.inc:1607 +msgid "Password successfully reset." +msgstr "Пароль успішно скинуто." + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:108 +#: ../lib/modules/shadowAccount.inc:168 ../lib/modules/shadowAccount.inc:177 +#: ../lib/modules/shadowAccount.inc:209 ../lib/modules/shadowAccount.inc:316 +#: ../lib/modules/shadowAccount.inc:501 +msgid "Password warning" +msgstr "Попередження про застарівання пароля" + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:64 +msgid "Password warning must be are natural number." +msgstr "Попередження про застарівання пароля повинно бути цілим числом." + +#: ../templates/config/confmain.php:610 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:61 +#: ../lib/modules/passwordSelfReset.inc:1174 ../lib/modules.inc:1125 +msgid "Passwords are different!" +msgstr "Паролі не співпадають!" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:59 +msgid "Passwords match." +msgstr "Паролі співпадають." + +#: ../lib/types/nisObjectType.inc:77 +msgid "Path" +msgstr "Шлях" + +#: ../lib/modules/windowsUser.inc:205 +msgid "" +"Path of the user profile (UNC-path, e.g. \\\\server\\share\\user). $user is " +"replaced with user name." +msgstr "" +"Шлях до профіля користувача (UNC-шлях, наприклад, \\\\server\\share\\user). " +"Замість $user буде вставлено псевдоім’я користувача." + +#: ../lib/modules/sambaSamAccount.inc:358 +msgid "Path of the user profile." +msgstr "Шлях до профіля користуача." + +#: ../lib/modules/sambaSamAccount.inc:309 +msgid "" +"Path of the user profile. Can be a local absolute path or a UNC-path (\\" +"\\server\\share). $user and $group are replaced with user and group name." +msgstr "" +"Шлях до профіля користуача. Повинен бути заданим локально - абсолютний шлях " +"або UNC-шлях (\\\\server\\share). Замість $user та $group буде підставлено " +"ім’я користувача та групи." + +#: ../lib/modules/imapAccess.inc:112 ../lib/modules/imapAccess.inc:146 +msgid "Path separator" +msgstr "Розділювач шляху" + +#: ../templates/config/confmain.php:311 +msgid "Path to external script" +msgstr "Шлях до зовнішнього скрипта" + +#: ../lib/modules/ddns.inc:93 ../lib/modules/ddns.inc:371 +msgid "Path to key for DNS updates" +msgstr "Шлях до ключа для DNS оновлень" + +#: ../lib/modules/qmailGroup.inc:140 +msgid "" +"Path to the maildir/mbox on the mail system for sender confirmation and " +"moderation." +msgstr "" +"Шлях до maildir/mbox на поштовій системі для підтвердження модерації " +"відправника." + +#: ../lib/modules/qmailUser.inc:248 +msgid "Path to the maildir/mbox on the mail system." +msgstr "Шлях до maildir/mbox на поштовій системі." + +#: ../lib/modules/pykotaUser.inc:152 ../lib/modules/pykotaUser.inc:326 +#: ../lib/modules/pykotaUser.inc:369 +msgid "Payment" +msgstr "Оплата" + +#: ../lib/modules/pykotaUser.inc:148 +msgid "Payment and job history" +msgstr "Історія оплат та роботи" + +#: ../lib/modules/pykotaUser.inc:149 +msgid "Payment and job history for this user." +msgstr "Історія оплат та роботи для цього користувача." + +#: ../lib/modules/pykotaUser.inc:265 ../lib/modules/pykotaUser.inc:283 +#: ../lib/modules/pykotaUser.inc:384 ../lib/modules/pykotaUser.inc:591 +#: ../lib/modules/pykotaUser.inc:983 +msgid "Payment history" +msgstr "Історія оплат" + +#: ../lib/tools/multiEdit.inc:53 +msgid "Performs modifications on multiple LDAP entries." +msgstr "ВИконує модифікації для багатьох записів LDAP." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:41 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:64 +msgid "Permanently delete all children also?" +msgstr "Також повністю вилучити всі дочірні?" + +#: ../lib/modules/asteriskAccount.inc:171 +#: ../lib/modules/asteriskAccount.inc:281 +#: ../lib/modules/asteriskAccount.inc:422 +#: ../lib/modules/asteriskAccount.inc:678 +#: ../lib/modules/asteriskAccount.inc:997 +#: ../lib/modules/asteriskAccount.inc:1263 +msgid "Permit" +msgstr "Дозволити" + +#: ../lib/modules/inetOrgPerson.inc:130 +msgid "Personal" +msgstr "Personal" + +#: ../lib/selfService.inc:389 +msgid "Personal data" +msgstr "Персональні дані" + +#: ../lib/types/user.inc:102 ../lib/types/user.inc:620 +#: ../lib/modules/inetOrgPerson.inc:159 ../lib/modules/inetOrgPerson.inc:2650 +#: ../lib/modules/inetOrgPerson.inc:2657 ../lib/modules/inetOrgPerson.inc:3563 +#: ../lib/modules/inetOrgPerson.inc:3590 ../lib/modules/inetOrgPerson.inc:3609 +msgid "Photo" +msgstr "Фото" + +#: ../lib/modules/inetOrgPerson.inc:1664 +msgid "Photo file" +msgstr "Фото файл" + +#: ../lib/modules/inetOrgPerson.inc:1662 +msgid "Photo file (JPG format)" +msgstr "Фото файл (JPG формат)" + +#: ../lib/modules/asteriskAccount.inc:175 +#: ../lib/modules/asteriskAccount.inc:282 +#: ../lib/modules/asteriskAccount.inc:429 +#: ../lib/modules/asteriskAccount.inc:682 +#: ../lib/modules/asteriskAccount.inc:998 +#: ../lib/modules/asteriskAccount.inc:1265 +msgid "Pickup group" +msgstr "Група перехвату виклику" + +#: ../lib/modules/ldapPublicKey.inc:77 +msgid "Please a comma separated list of your public SSH keys." +msgstr "Список ваших публічних ключів SSH (розділений комами)." + +#: ../lib/modules/nisMailAliasUser.inc:131 +msgid "Please activate the mail aliases type for this server profile." +msgstr "" +"Будь ласка, активуйте тип псевдоніму ел.пошти для цього профілю сервера." + +#: ../lib/modules/customScripts.inc:85 +msgid "" +"Please activate this option if your scripts may generate HTML output. " +"Otherwise, the output is treated as plain text." +msgstr "" +"Будь ласка, активуйте цю опцію, якщо ваші скрипти можуть віддавати HTML на " +"виході. Інакше, вивід буде сприйматися як текстовий." + +#: ../lib/modules/asteriskExtension.inc:193 +msgid "Please add at least one extension owner." +msgstr "Будь ласка, додайте хоча б одного власника розширень." + +#: ../help/help.inc:157 +msgid "" +"Please change this setting only if you experience problems in receiving " +"emails from LAM. This defines the line ending of emails." +msgstr "" +"Будь ласка, змінюйте це налаштування тільки, якщо у вас виникли проблеми при " +"отриманні листів від LAM. Це визначає закінчення рядків листа." + +#: ../lib/modules/qmailGroup.inc:331 +msgid "Please check if this email should be sent." +msgstr "Перевірте, чи повинен бути відправленим цей лист." + +#: ../lib/modules/sambaSamAccount.inc:1093 +msgid "Please check your settings on the Unix page!" +msgstr "Перевірте свої налаштування на Unix сторінці!" + +#: ../lib/modules/imapAccess.inc:104 +msgid "" +"Please choose the attribute to get the IMAP user name. The default is \"mail" +"\" but you can also use \"uid\"." +msgstr "" +"Виберіть атрибут для отримання псевдоімені користувача IMAP. Типово " +"використовується \"mail\", але ви також можете використовувати \"uid\"." + +#: ../lib/modules/passwordSelfReset.inc:543 +msgid "Please click here to continue: @@resetLink@@" +msgstr "Клацніть тут для продовження: @@resetLink@@" + +#: ../lib/types/user.inc:298 +msgid "Please click to lock/unlock this account." +msgstr "Клацніть для блокування / розблокування цього акаунта." + +#: ../lib/modules/pykotaPrinter.inc:219 +msgid "Please enter \"Yes\" or \"No\"." +msgstr "Будь ласка, вкажіть \"Так\" або \"Ні\"." + +#: ../lib/modules/sambaSamAccount.inc:108 +msgid "Please enter a RID number or the name of a special account!" +msgstr "Введіть RID або ім’я спеціального облікового запису!" + +#: ../lib/modules/asteriskAccount.inc:555 +msgid "Please enter a caller ID." +msgstr "Будь ласка, вкажіть гостювий ID." + +#: ../lib/modules/imapAccess.inc:101 +msgid "" +"Please enter a comma separated list of domain names (e.g. \"company.com," +"example.com\"). LAM will only manage mailboxes from these domains." +msgstr "" +"Будь ласка, вкажіть список доменів, розділений комами (наприклад, \"company." +"com,example.com\"). LAM буде керувати поштовими скриньками лише з цих " +"доменів." + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +msgid "Please enter a comma separated list of host names!" +msgstr "Вкажіть список хостів (розділений комами)!" + +#: ../lib/modules/asteriskExtension.inc:185 +msgid "Please enter a common name." +msgstr "Будь ласка, вкажіть CN." + +#: ../lib/modules/imapAccess.inc:178 +msgid "Please enter a correct list of valid mail domains." +msgstr "Будь ласка, вкажіть коректний списокреальних поштових доменів." + +#: ../lib/modules/sudoRole.inc:130 ../lib/modules/sudoRole.inc:135 +#: ../lib/modules/sudoRole.inc:281 ../lib/modules/sudoRole.inc:282 +#: ../lib/modules/sudoRole.inc:283 ../lib/modules/sudoRole.inc:284 +msgid "Please enter a date in format \"DD.MM.YYYY HH:MM\" or \"DD.MM.YYYY\"." +msgstr "" +"Будь ласка, вкажіть дату у форматі \"DD.MM.YYYY HH:MM\" або \"DD.MM.YYYY\"." + +#: ../lib/modules/customFields.inc:89 +msgid "Please enter a descriptive label for this field." +msgstr "Будь ласка, вкажіть опис для цього поля." + +#: ../lib/modules/nisObject.inc:62 ../lib/modules/automount.inc:65 +#: ../lib/modules/sudoRole.inc:67 ../lib/modules/oracleService.inc:62 +msgid "Please enter a descriptive name for this entry." +msgstr "Будь ласка, вкажіть описову назву для цього запису." + +#: ../lib/modules/windowsGroup.inc:119 +msgid "Please enter a descriptive text for this group." +msgstr "Будь ласка, вкажіть опис для цієї групи." + +#: ../lib/modules/windowsHost.inc:79 +msgid "Please enter a descriptive text for this host." +msgstr "Будь ласка, вкажіть опис для цього хоста." + +#: ../lib/modules/windowsUser.inc:120 +msgid "Please enter a descriptive text for this user." +msgstr "Будь ласка, вкажіть опис для цього користувача." + +#: ../lib/modules/organizationalRole.inc:173 +#: ../lib/modules/groupOfNames.inc:209 +msgid "Please enter a group name!" +msgstr "Будь ласка, введіть назву групи!" + +#: ../lib/modules/windowsUser.inc:241 +msgid "" +"Please enter a list of Windows domains that can be selected for your user " +"accounts." +msgstr "" +"Будь ласка, введіть список Windows доменів, які можуть бути вибраними для " +"ваших акаунтів." + +#: ../lib/modules/selfRegistration.inc:120 +msgid "Please enter a list of object classes for the new accounts." +msgstr "Будь ласка, вкажіть список класів об’єктів для нових акаунтів." + +#: ../lib/modules/asteriskVoicemail.inc:209 +msgid "Please enter a mailbox." +msgstr "Будь ласка, вкажіть поштову скриньку." + +#: ../lib/modules/device.inc:62 +msgid "Please enter a name for this device." +msgstr "Будь ласка, вкажіть назву для цього пристрою." + +#: ../lib/modules/kolabSharedFolder.inc:113 +msgid "Please enter a name for this folder." +msgstr "Будь ласка, вкажіть назву цього каталогу." + +#: ../lib/modules/ppolicy.inc:165 +msgid "Please enter a name for this policy." +msgstr "Будь ласка, вкажіть назву для цієї політики." + +#: ../lib/modules/kolabSharedFolder.inc:261 +msgid "Please enter a name." +msgstr "Будь ласка, вкажіть назву." + +#: ../lib/modules/customFields.inc:2626 +msgid "Please enter a natural number for column count." +msgstr "Будь ласка, вкажіть натуральне число для кількості колонок." + +#: ../lib/modules/customFields.inc:2636 +msgid "Please enter a natural number for row count." +msgstr "Будь ласка, вкажіть натуральне число для кількості рядків." + +#: ../lib/modules/qmailUser.inc:465 ../lib/modules/qmailUser.inc:467 +msgid "Please enter a number for GID number." +msgstr "Будь ласка, вкажіть число для GID." + +#: ../lib/modules/qmailUser.inc:462 ../lib/modules/qmailUser.inc:464 +msgid "Please enter a number for UID number." +msgstr "Будь ласка, вкажіть число для UID." + +#: ../lib/modules/qmailUser.inc:458 ../lib/modules/qmailUser.inc:459 +msgid "Please enter a number for message count limit." +msgstr "Будь ласка, вкажіть число для ліміта кількості повідомлень." + +#: ../lib/modules/qmailUser.inc:460 ../lib/modules/qmailUser.inc:461 +msgid "Please enter a number for message size limit." +msgstr "Будь ласка, вкажіть число для максимального розміру повідомлень." + +#: ../lib/modules/qmailUser.inc:456 ../lib/modules/qmailUser.inc:457 +msgid "Please enter a number for quota size." +msgstr "Будь ласка, вкажіть число для квоти." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:51 +#: ../templates/lib/141_jquery-validationEngine-lang.php:55 +#: ../lib/modules/mitKerberos.inc:298 ../lib/modules/zarafaUser.inc:408 +#: ../lib/modules/zarafaUser.inc:409 ../lib/modules/zarafaUser.inc:410 +#: ../lib/modules/zarafaUser.inc:411 ../lib/modules/zarafaUser.inc:412 +#: ../lib/modules/zarafaUser.inc:413 ../lib/modules/zarafaUser.inc:415 +#: ../lib/modules/zarafaUser.inc:416 ../lib/modules/bindDLZ.inc:469 +#: ../lib/modules/kolabUser.inc:257 ../lib/modules/kolabUser.inc:258 +#: ../lib/modules/sudoRole.inc:285 ../lib/modules/sudoRole.inc:286 +msgid "Please enter a number." +msgstr "Будь ласка, вкажіть число." + +#: ../lib/modules/ppolicy.inc:174 +msgid "Please enter a numeric value for the expire warning." +msgstr "Будь ласка, вкажіть число для попередження про застарівання." + +#: ../lib/modules/ppolicy.inc:173 +msgid "Please enter a numeric value for the failure count interval." +msgstr "Будь ласка, вкажіть числове значення для інтервалу підрахунку помилок." + +#: ../lib/modules/ppolicy.inc:170 +msgid "Please enter a numeric value for the grace authentication limit." +msgstr "" +"Будь ласка, вкажіть числове значення для межі відстрочки аутентифікації." + +#: ../lib/modules/freeRadius.inc:259 ../lib/modules/freeRadius.inc:260 +msgid "Please enter a numeric value for the idle timeout." +msgstr "Будь ласка, вкажіть число для тайм-аута по бездіяльності." + +#: ../lib/modules/ppolicy.inc:171 +msgid "Please enter a numeric value for the lockout duration." +msgstr "Будь ласка, вкажіть число для терміну блокування." + +#: ../lib/modules/ppolicy.inc:172 +msgid "Please enter a numeric value for the maximum failure count." +msgstr "Будь ласка, вкажіть число для максимальної кількості відмов." + +#: ../lib/modules/ppolicy.inc:175 +msgid "Please enter a numeric value for the minimum password length." +msgstr "Будь ласка, вкажіть число для мінімальної довжини пароля." + +#: ../lib/modules/ppolicy.inc:169 +msgid "Please enter a numeric value for the password history length." +msgstr "Будь ласка, вкажіть число для глибиниісторії паролей." + +#: ../lib/modules/sudoRole.inc:267 +msgid "Please enter a role name." +msgstr "Будь ласка, вкажіть назву ролі." + +#: ../lib/modules/passwordSelfReset.inc:1203 +msgid "Please enter a security answer." +msgstr "Будь ласка, вкажіть відповідь на секретне питання." + +#: ../lib/modules/selfRegistration.inc:118 +msgid "Please enter a subject for the confirmation mails." +msgstr "Будь ласка, вкажіть тему листа для листів з підтвердженням." + +#: ../lib/modules/kolabSharedFolder.inc:262 +msgid "Please enter a target folder." +msgstr "Будь ласка, вкажіть цільовий каталог." + +#: ../lib/modules/selfRegistration.inc:119 +msgid "" +"Please enter a text for the confirmation mails that includes the creation " +"link." +msgstr "" +"Будь ласка, вкажіть текст для листів з підтвердженням, який буде включати " +"посилання на створення. " + +#: ../lib/modules/customFields.inc:85 +msgid "Please enter a unique name for this field." +msgstr "Будь ласка, вкажіть унікальну назву для цього поля." + +#: ../lib/modules/ppolicy.inc:81 +msgid "Please enter a unique name for this password policy." +msgstr "Будь ласка, вкажіть унікальну назву для цієї політики паролів." + +#: ../lib/modules/kolabUser.inc:274 ../lib/modules/kolabUser.inc:280 +msgid "Please enter a user password." +msgstr "Будь ласка, вкажіть пароль користувача." + +#: ../lib/modules/zarafaDynamicGroup.inc:198 ../lib/modules/eduPerson.inc:245 +#: ../lib/modules/eduPerson.inc:247 ../lib/modules/zarafaAddressList.inc:169 +msgid "Please enter a valid DN in the field:" +msgstr "Будь ласка, вкажіть правильний DN в рядку:" + +#: ../lib/types/bind.inc:205 +msgid "Please enter a valid DNS name." +msgstr "Будь ласка, вкажіть правильне DNS ім’я." + +#: ../lib/modules/customFields.inc:1189 ../lib/modules/customFields.inc:1746 +msgid "" +"Please enter a valid LDAP attribute name. Allowed characters are a-z, 0-9, _ " +"and -." +msgstr "" +"Будь ласка, вкажіть коректну назву атрибута LDAP. Допустимі символи: a-z, " +"0-9, _ та -." + +#: ../templates/selfService/adminMain.php:221 +msgid "Please enter a valid LDAP suffix." +msgstr "Будь ласка, вкажіть правильний LDAP суфікс." + +#: ../templates/selfService/adminMain.php:225 +msgid "" +"Please enter a valid LDAP user if you want to use it for all operations." +msgstr "" +"Будь ласка, вкажіть правильного LDAP користувача, якого ви хочете " +"використовувати для всіх операцій." + +#: ../lib/modules/qmailUser.inc:454 +msgid "Please enter a valid account status." +msgstr "Будь ласка, вкажіть коректний статус акаунта." + +#: ../lib/modules/bindDLZ.inc:522 ../lib/modules/bindDLZ.inc:523 +msgid "Please enter a valid admin email address." +msgstr "Будь ласка, вкажіть правильну ел.пошту адміністратора." + +#: ../templates/config/confmain.php:554 +msgid "Please enter a valid bind user." +msgstr "" +"Будь ласка, вкажіть коректного користувача для зв’язку з LDAP сервером." + +#: ../lib/modules/inetOrgPerson.inc:103 ../lib/modules/inetOrgPerson.inc:104 +msgid "Please enter a valid business category!" +msgstr "Будь ласка, вкажіть правильну бізнес категорію!" + +#: ../lib/modules/posixAccount.inc:129 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/windowsUser.inc:591 ../lib/modules/windowsUser.inc:592 +#: ../lib/modules/inetOrgPerson.inc:93 ../lib/modules/inetOrgPerson.inc:94 +msgid "Please enter a valid common name!" +msgstr "Будь ласка, вкажіть правильне CN!" + +#: ../lib/modules/qmailUser.inc:471 +msgid "Please enter a valid configuration type." +msgstr "Будь ласка, вкажіть коректний тип конфігурації." + +#: ../lib/modules/mitKerberos.inc:291 ../lib/modules/mitKerberos.inc:292 +#: ../lib/modules/qmailUser.inc:470 ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/heimdalKerberos.inc:255 +#: ../lib/modules/heimdalKerberos.inc:256 +msgid "Please enter a valid date in format DD-MM-YYYY." +msgstr "Будь ласка, вкажіть правильну дату у форматі DD-MM-YYYY." + +#: ../lib/modules/asteriskAccount.inc:576 +#: ../lib/modules/asteriskAccount.inc:577 +msgid "Please enter a valid default user." +msgstr "Будь ласка, вкажіть коректного типового користувача." + +#: ../lib/modules/qmailUser.inc:455 +msgid "Please enter a valid delivery mode." +msgstr "Будь ласка, вкажіть коректний режим доставки." + +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:111 ../lib/modules/windowsUser.inc:595 +#: ../lib/modules/windowsUser.inc:596 +msgid "Please enter a valid display name!" +msgstr "Будь ласка, вкажіть правильне ім’я для відображення!" + +#: ../lib/modules/sambaSamAccount.inc:117 ../lib/modules/windowsUser.inc:617 +msgid "Please enter a valid drive letter." +msgstr "Будь ласка, вкажіть правильну букву диска." + +#: ../lib/modules/kolabGroup.inc:177 ../lib/modules/kolabGroup.inc:178 +#: ../lib/modules/selfRegistration.inc:122 +#: ../lib/modules/selfRegistration.inc:482 +#: ../lib/modules/zarafaDynamicGroup.inc:200 +#: ../lib/modules/zarafaDynamicGroup.inc:201 ../lib/modules/qmailUser.inc:448 +#: ../lib/modules/qmailUser.inc:449 ../lib/modules/qmailUser.inc:450 +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:453 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:216 ../lib/modules/windowsUser.inc:607 +#: ../lib/modules/windowsUser.inc:608 ../lib/modules/pykotaUser.inc:319 +#: ../lib/modules/pykotaUser.inc:320 ../lib/modules/inetOrgPerson.inc:78 +#: ../lib/modules/inetOrgPerson.inc:80 +#: ../lib/modules/kolabSharedFolder.inc:259 +#: ../lib/modules/kolabSharedFolder.inc:260 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:421 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:425 +#: ../lib/modules/qmailGroup.inc:426 ../lib/modules/qmailGroup.inc:427 +#: ../lib/modules/qmailGroup.inc:428 ../lib/modules/qmailGroup.inc:429 +#: ../lib/modules/qmailGroup.inc:430 ../lib/modules/qmailGroup.inc:431 +#: ../lib/modules/qmailGroup.inc:432 ../lib/modules/passwordSelfReset.inc:232 +#: ../lib/modules/passwordSelfReset.inc:233 +#: ../lib/modules/passwordSelfReset.inc:900 +#: ../lib/modules/passwordSelfReset.inc:1122 +#: ../lib/modules/windowsGroup.inc:285 ../lib/modules/windowsGroup.inc:286 +#: ../lib/modules.inc:1170 +msgid "Please enter a valid email address!" +msgstr "Будь ласка, вкажіть коректну адресу ел.пошти!" + +#: ../lib/modules/zarafaDynamicGroup.inc:202 +#: ../lib/modules/zarafaDynamicGroup.inc:203 +#: ../lib/modules/zarafaGroup.inc:217 ../lib/modules/zarafaGroup.inc:218 +msgid "Please enter a valid email alias." +msgstr "Будь ласка, вкажіть коректний поштовий псевдонім." + +#: ../lib/modules/passwordSelfReset.inc:907 +#: ../lib/modules/passwordSelfReset.inc:1129 +msgid "Please enter a valid employee number." +msgstr "Будь ласка, вкажіть коректний номер працівника." + +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:92 +msgid "Please enter a valid employee type!" +msgstr "Будь ласка, вкажіть правильну посаду!" + +#: ../lib/modules/inetOrgPerson.inc:76 ../lib/modules/inetOrgPerson.inc:77 +msgid "Please enter a valid fax number!" +msgstr "Будь ласка, вкажіть правильний номер факсу!" + +#: ../lib/modules/customFields.inc:187 +msgid "" +"Please enter a valid field name. Only letters, numbers, dash and underline " +"are allowed." +msgstr "" +"Будь ласка, вкажіть коректну назву поля. Допускається лише літери, цифри, " +"дефіз та підкреслення." + +#: ../lib/lists.inc:229 +msgid "" +"Please enter a valid filter. Only letters, numbers and \" _*$.@-\" are " +"allowed." +msgstr "" +"Будь ласка, вкажіть коректний фільтр. Допускаються лише літери, числа, та \" " +"_*$.@-\" ." + +#: ../lib/modules/selfRegistration.inc:83 +#: ../lib/modules/selfRegistration.inc:218 +msgid "Please enter a valid first name." +msgstr "Будь ласка, вкажіть коректне ім’я." + +#: ../lib/modules/asteriskAccount.inc:570 +#: ../lib/modules/asteriskAccount.inc:571 +msgid "Please enter a valid from domain." +msgstr "Будь ласка, вкажіть коректний домен \"від\"." + +#: ../lib/modules/asteriskAccount.inc:568 +#: ../lib/modules/asteriskAccount.inc:569 +msgid "Please enter a valid from user." +msgstr "Будь ласка, вкажіть коректного користувача \"від\"." + +#: ../lib/modules/sambaSamAccount.inc:121 +msgid "Please enter a valid group name!" +msgstr "Будь ласка, вкажіть правильну назву групи!" + +#: ../lib/modules/windowsGroup.inc:287 +msgid "Please enter a valid group scope." +msgstr "Будь ласка, вкажіть коректну область видимості групи." + +#: ../lib/modules/windowsGroup.inc:288 +msgid "Please enter a valid group type." +msgstr "Будь ласка, вкажіть коректний тип групи." + +#: ../lib/modules/pykotaUser.inc:327 +msgid "Please enter a valid job suffix." +msgstr "Будь ласка, вкажіть правильний суфікс роботи." + +#: ../lib/modules/inetOrgPerson.inc:89 ../lib/modules/inetOrgPerson.inc:90 +msgid "Please enter a valid job title!" +msgstr "Будь ласка, вкажіть правильну назву посади!" + +#: ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:219 +msgid "Please enter a valid last name." +msgstr "Будь ласка, вкажіть коректне прізвище." + +#: ../lib/modules/pykotaGroup.inc:205 ../lib/modules/pykotaUser.inc:321 +msgid "Please enter a valid limit type." +msgstr "Будь ласка, вкажіть правильний тип ліміту." + +#: ../lib/modules/eduPerson.inc:253 +msgid "Please enter a valid list of affiliations." +msgstr "Будь ласка, вкажіть правильний список приналежності." + +#: ../lib/modules/freeRadius.inc:255 ../lib/modules/freeRadius.inc:256 +msgid "Please enter a valid list of group names." +msgstr "Будь ласка, вкажіть коректний список назв груп." + +#: ../lib/modules/hostObject.inc:111 +msgid "Please enter a valid list of host names." +msgstr "Будь ласка, вкажіть коректний список наз хостів." + +#: ../lib/modules/authorizedServiceObject.inc:130 +msgid "Please enter a valid list of service names." +msgstr "Будь ласка, вкажіть коректний список наз серверів." + +#: ../lib/modules/inetOrgPerson.inc:74 ../lib/modules/inetOrgPerson.inc:75 +msgid "Please enter a valid mobile number!" +msgstr "Будь ласка, вкажіть правильний номер мобільного телефону!" + +#: ../lib/modules/pykotaPrinter.inc:215 ../lib/modules/pykotaPrinter.inc:216 +#: ../lib/modules/pykotaPrinter.inc:217 ../lib/modules/pykotaPrinter.inc:218 +#: ../lib/modules/pykotaUser.inc:322 ../lib/modules/pykotaUser.inc:323 +#: ../lib/modules/pykotaUser.inc:324 ../lib/modules/pykotaUser.inc:325 +#: ../lib/modules/pykotaUser.inc:326 +msgid "Please enter a valid number (e.g. \"1.5\")." +msgstr "Будь ласка, вкажіть правильне число (наприклад, \"1.5\")." + +#: ../lib/modules/pykotaPrinter.inc:213 ../lib/modules/pykotaPrinter.inc:214 +msgid "Please enter a valid number." +msgstr "Будь ласка, вкажіть правильне число." + +#: ../lib/modules/customFields.inc:190 +msgid "Please enter a valid object class." +msgstr "Будь ласка, вкажіть коректний клас об’єкту." + +#: ../lib/modules/dhcp_settings.inc:331 +msgid "Please enter a valid option." +msgstr "Будь ласка, вкажіть коректну опцію." + +#: ../lib/modules/zarafaServer.inc:177 ../lib/modules/zarafaServer.inc:178 +msgid "Please enter a valid path." +msgstr "Будь ласка, вкажіть коректний шлях." + +#: ../lib/modules/asteriskAccount.inc:572 +#: ../lib/modules/asteriskAccount.inc:573 ../lib/modules/zarafaServer.inc:173 +#: ../lib/modules/zarafaServer.inc:174 ../lib/modules/zarafaServer.inc:175 +#: ../lib/modules/zarafaServer.inc:176 +msgid "Please enter a valid port number." +msgstr "Будь ласка, вкажіть коректний номер порту." + +#: ../lib/modules/inetOrgPerson.inc:83 ../lib/modules/inetOrgPerson.inc:84 +msgid "Please enter a valid postal address!" +msgstr "Будь ласка, вкажіть правильну поштову адресу!" + +#: ../lib/modules/windowsUser.inc:605 ../lib/modules/windowsUser.inc:606 +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:88 +msgid "Please enter a valid postal code!" +msgstr "Будь ласка, вкажіть правильний поштовий індекс!" + +#: ../lib/modules/eduPerson.inc:251 +msgid "Please enter a valid primary affiliation." +msgstr "Будь ласка, вкажіть правильну основну приналежність." + +#: ../lib/modules/freeRadius.inc:253 ../lib/modules/freeRadius.inc:254 +msgid "Please enter a valid realm." +msgstr "Будь ласка, вкажіть правильну область." + +#: ../lib/modules/kolabGroup.inc:181 ../lib/modules/kolabGroup.inc:182 +#: ../lib/modules/kolabUser.inc:253 ../lib/modules/kolabUser.inc:254 +#: ../lib/modules/kolabSharedFolder.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:251 +msgid "Please enter a valid recipient expression." +msgstr "Будь ласка, введіть припустимий вираз отримувача." + +#: ../lib/modules/inetOrgPerson.inc:85 ../lib/modules/inetOrgPerson.inc:86 +msgid "Please enter a valid registered address." +msgstr "Будь ласка, вкажіть коректну зареєстровану адресу." + +#: ../lib/modules/eduPerson.inc:252 +msgid "Please enter a valid scoped affiliation." +msgstr "Будь ласка, вкажіть правильну область приналежності." + +#: ../lib/modules/kolabGroup.inc:183 ../lib/modules/kolabGroup.inc:184 +#: ../lib/modules/kolabUser.inc:255 ../lib/modules/kolabUser.inc:256 +#: ../lib/modules/kolabSharedFolder.inc:252 +#: ../lib/modules/kolabSharedFolder.inc:253 +msgid "Please enter a valid sender expression." +msgstr "Будь ласка, вкажіть коректний вираз для відравника." + +#: ../lib/modules/qmailUser.inc:468 ../lib/modules/qmailUser.inc:469 +#: ../lib/modules/imapAccess.inc:177 +msgid "Please enter a valid server name where the mailboxes reside." +msgstr "" +"Будь ласка, вкажіть коректну назву сервера, де знаходяться поштові скриньки." + +#: ../lib/modules/inetOrgPerson.inc:81 ../lib/modules/inetOrgPerson.inc:82 +msgid "Please enter a valid street name!" +msgstr "Будь ласка, вкажіть правильну назву вулиці!" + +#: ../lib/modules/windowsUser.inc:601 ../lib/modules/windowsUser.inc:602 +#: ../lib/modules/windowsUser.inc:603 ../lib/modules/windowsUser.inc:604 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:71 +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:73 +msgid "Please enter a valid telephone number!" +msgstr "Будь ласка, вкажіть правильний номер телефона!" + +#: ../lib/modules/passwordSelfReset.inc:921 +#: ../lib/modules/passwordSelfReset.inc:1143 +msgid "Please enter a valid user name or email address." +msgstr "" +"Будь ласка, вкажіть правильне псевдоім’я користувача та адресу ел.пошти." + +#: ../lib/modules/posixGroup.inc:724 ../lib/modules/posixAccount.inc:1160 +#: ../lib/modules/posixAccount.inc:1165 +#, php-format +msgid "Please enter a value between %s and %s!" +msgstr "Будь ласка, вкажіть значення між %s та %s!" + +#: ../lib/modules/customFields.inc:2780 +msgid "Please enter a value for status \"checked\"." +msgstr "Будь ласка, вкажіть значення для статуса \"відмічено\"." + +#: ../lib/modules/customFields.inc:2787 +msgid "Please enter a value for status \"unchecked\"." +msgstr "Будь ласка, вкажіть значення для статуса \"не відмічено\"." + +#: ../templates/multiEdit.php:140 +msgid "Please enter a value to add." +msgstr "Будь ласка, вкажіть значення для додавання." + +#: ../templates/multiEdit.php:143 +msgid "Please enter a value to modify." +msgstr "Будь ласка, вкажіть значення для модифікації." + +#: ../lib/modules/customFields.inc:77 +msgid "Please enter an alias for this group." +msgstr "Будь ласка, вкажіть псевдонім для цієї групи." + +#: ../lib/modules/customFields.inc:189 +msgid "Please enter an alias name." +msgstr "Будь ласка, вкажіть назву псевдоніма." + +#: ../lib/modules/kolabUser.inc:286 ../lib/modules/imapAccess.inc:208 +#, php-format +msgid "Please enter an email address on this page: %s" +msgstr "Будь ласка, вкажіть ел.поштову адресу на цій сторінці: %s" + +#: ../lib/modules/pykotaUser.inc:353 +#, php-format +msgid "Please enter an user name on this page: %s" +msgstr "Будь ласка, вкажіть псевдоім’я користувача на цій сторінці: %s" + +#: ../lib/modules/windowsUser.inc:1352 ../lib/modules/windowsUser.inc:1361 +#: ../lib/modules/windowsUser.inc:1370 ../lib/modules/windowsUser.inc:1381 +msgid "Please enter either yes or no." +msgstr "Будь ласка, вкажіть \"так\" або \"ні\"." + +#: ../lib/modules/sudoRole.inc:273 ../lib/modules/sudoRole.inc:274 +msgid "Please enter only ASCII characters for the commands." +msgstr "Будь ласка, використовуйте тільки символи ASCII для команд." + +#: ../lib/modules/sudoRole.inc:271 ../lib/modules/sudoRole.inc:272 +msgid "Please enter only ASCII characters for the host names." +msgstr "Будь ласка, використовуйте тільки символи ASCII для імен хостів." + +#: ../lib/modules/sudoRole.inc:279 ../lib/modules/sudoRole.inc:280 +msgid "Please enter only ASCII characters for the options." +msgstr "Будь ласка, використовуйте тільки символи ASCII для опцій." + +#: ../lib/modules/sudoRole.inc:277 ../lib/modules/sudoRole.inc:278 +msgid "Please enter only ASCII characters for the run groups." +msgstr "Будь ласка, використовуйте тільки символи ASCII для груп запуску." + +#: ../lib/modules/sudoRole.inc:275 ../lib/modules/sudoRole.inc:276 +msgid "Please enter only ASCII characters for the run users." +msgstr "" +"Будь ласка, використовуйте тільки символи ASCII для користувачів запуску." + +#: ../lib/modules/device.inc:140 ../lib/modules/device.inc:141 +msgid "Please enter only ASCII characters for the serial number." +msgstr "Будь ласка, використовуйте тільки символи ASCII для серійного номера." + +#: ../lib/modules/sudoRole.inc:269 ../lib/modules/sudoRole.inc:270 +msgid "Please enter only ASCII characters for the user names." +msgstr "" +"Будь ласка, використовуйте тільки символи ASCII для псевдоімен користувачів." + +#: ../lib/modules/passwordSelfReset.inc:231 +msgid "" +"Please enter the DN and password of the administrative password self reset " +"account." +msgstr "" +"Будь ласка, вкажіть DN та пароль адміністративного акаунта для самостійного " +"скидання пароля." + +#: ../lib/modules/selfRegistration.inc:117 +msgid "" +"Please enter the DN and password of the administrative self registration " +"account." +msgstr "" +"Будь ласка, вкажіть DN та пароль адміністративного акаунта для самостійної " +"реєстрації." + +#: ../lib/modules/posixGroup.inc:525 ../lib/modules/posixAccount.inc:502 +msgid "" +"Please enter the DN of the LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "" +"Будь ласка, вкажіть DN запису LDAP з класом об’єкта \"sambaUnixIdPool\"." + +#: ../lib/modules/bindDLZ.inc:86 ../lib/modules/bindDLZ.inc:90 +msgid "Please enter the IP address for this entry." +msgstr "Будь ласка, вкажіть ІР адресу для цього запису." + +#: ../lib/modules/ddns.inc:99 +msgid "Please enter the IP address of your DNS server." +msgstr "Будь ласка, вкажіть ІР-адресу вашого DNS." + +#: ../lib/modules/selfRegistration.inc:62 +msgid "Please enter the LDAP DN that should be used to create new users." +msgstr "" +"Будь ласка, вкажіть LDAP DN, який потрібно використовувати для створення " +"нових користувачів." + +#: ../lib/modules/passwordSelfReset.inc:105 +msgid "Please enter the LDAP DN that should be used to reset passwords." +msgstr "" +"Будь ласка, вкажіть LDAP DN, яке повинно використовуватися для скидання " +"паролей." + +#: ../lib/modules/customFields.inc:93 +msgid "Please enter the LDAP attribute name for this field." +msgstr "Будь ласка, вкажіть назву атрибута LDAP для цього поля." + +#: ../help/help.inc:123 +msgid "" +"Please enter the LDAP suffix where LAM should start to search for users. The " +"LDAP filter needs to match the given user name to exactly one DN. The value " +"\"%USER%\" will be replaced by the user name from the login page." +msgstr "" +"Будь ласка, вкажіть LDAP суфікс, де LAM повинен шукати користувачів. В " +"результатів застосування фільтра LDAP цьому псевдоімені користувача повинно " +"відповідати точно одне DN. Значення \"%USER%\" буде замінено псевдоіменем " +"користувача зі сторінки входу в систему." + +#: ../lib/modules/pykotaUser.inc:157 +msgid "" +"Please enter the LDAP suffix where the PyKota job entries are stored " +"(configuration option \"jobbase\")." +msgstr "" +"Будь ласка, вкажіть LDAP суфікс, де зберігаються записи роботи PyKota (опція " +"конфігурації \"jobbase\")." + +#: ../lib/modules/asteriskExtension.inc:188 +#: ../lib/modules/asteriskVoicemail.inc:214 +msgid "Please enter the account context." +msgstr "Будь ласка, вкажіть контекст акаунта." + +#: ../lib/modules.inc:928 +msgid "Please enter the account information on the other pages first." +msgstr "Будь ласка, вкажіть інформацію про акаунт спочатку на інших сторінках." + +#: ../lib/modules/asteriskAccount.inc:565 +msgid "Please enter the account type." +msgstr "Будь ласка, вкажіть тип акаунта." + +#: ../lib/modules/asteriskAccount.inc:120 +msgid "Please enter the account's type (e.g. \"friend\")." +msgstr "Будь ласка, вкажіть тип акаунта (наприклад, \"друг\")." + +#: ../lib/modules/asteriskExtension.inc:187 +msgid "Please enter the application data." +msgstr "Будь ласка, вкажіть дані застосунку." + +#: ../lib/modules/asteriskExtension.inc:186 +msgid "Please enter the application." +msgstr "Будь ласка, вкажіть застосунок." + +#: ../lib/modules/automount.inc:69 +msgid "" +"Please enter the automount entry (e.g. \"-fstype=nfs,rw server:/home\")." +msgstr "" +"Будь ласка, вкажіть запис автомонтування (наприклад, \"-fstype=nfs,rw " +"server:/home\")." + +#: ../templates/login.php:292 +msgid "Please enter the configuration and create a server profile." +msgstr "Будь ласка, вкажіть конфігурацію та створіть профіль сервера." + +#: ../help/help.inc:57 +msgid "" +"Please enter the configuration password. This is NOT your LDAP password. It " +"is stored in your .conf-file. If this is the first time you log in, enter " +"\"lam\"." +msgstr "" +"Будь ласка, вкажіть пароль конфігурації. Це не LDAP пароль! Цей пароль " +"зберігається у вашому .conf файлі. Якщо ви входите вперше, наберіть \"lam\"." + +#: ../lib/modules/oracleService.inc:66 +msgid "" +"Please enter the connection string (e.g. \"(DESCRIPTION=(ADDRESS=" +"(PROTOCOL=TCP)(HOST=server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db." +"example.com)))\")." +msgstr "" +"Будь ласка, введіть рядок з’єднання (наприклад, \"(DESCRIPTION=(ADDRESS=" +"(PROTOCOL=TCP)(HOST=server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db." +"example.com)))\")." + +#: ../lib/modules/puppetClient.inc:81 ../lib/modules/puppetClient.inc:85 +msgid "Please enter the environment name for this node (e.g. production)." +msgstr "" +"Будь ласка, вкажіть ім’я оточення для цього вузла (наприклад, production). " + +#: ../lib/modules/asteriskAccount.inc:559 +msgid "Please enter the extension context." +msgstr "Будь ласка, вкажіть контекст розширення." + +#: ../lib/modules/asteriskExtension.inc:189 +msgid "Please enter the extension name." +msgstr "Будь ласка, вкажіть назву розширення." + +#: ../lib/modules/windowsGroup.inc:115 +msgid "Please enter the group name." +msgstr "Будь ласка, вкажіть назву групи." + +#: ../lib/modules/asteriskAccount.inc:562 ../lib/modules/windowsHost.inc:75 +msgid "Please enter the host name." +msgstr "Будь ласка, вкажіть ім’я хоста." + +#: ../lib/modules/customScripts.inc:60 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [account type] [action] [script and arguments]" +msgstr "" +"Будь ласка, вкажіть список скриптів, які ви хочете запустити. Кожен рядок " +"має такий формат: [тип акаунта] [дія] [скрипт та аргументи]" + +#: ../lib/modules/customScripts.inc:74 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [action] [script and arguments]" +msgstr "" +"Будь ласка, вкажіть список скриптів, які повинні бути запущеними. Кожен " +"рядок має такий формат: [дія] [скрипт та аргументи]" + +#: ../lib/modules/nisObject.inc:66 +msgid "" +"Please enter the mapping entry (e.g. \"-fstype=nfs,rw server:/projects\")." +msgstr "" +"Будь ласка, вкажіть запис відповідності (наприклад, \"-fstype=nfs,rw server:/" +"projects\")." + +#: ../lib/modules/nisObject.inc:70 +msgid "Please enter the mapping name for this entry (e.g. auto.home)." +msgstr "" +"Будь ласка, вкажіть назву відповідності для цього запису (наприклад, auto." +"home)." + +#: ../help/help.inc:143 +msgid "" +"Please enter the master configuration password. This is NOT your LDAP " +"password. It is stored in your config.cfg file. If this is the first time " +"you log in, enter \"lam\"." +msgstr "" +"Будь ласка, вкажіть майстер-пароль. Це не LDAP пароль! Цей пароль " +"зберігаєтьсяв config.cfg файлі. Якщо ви входите вперше, наберіть \"lam\"." + +#: ../templates/config/mainlogin.php:145 +msgid "Please enter the master password to change the general preferences:" +msgstr "Будь ласка, вкажіть майстер-пароль для зміни основних налаштувань:" + +#: ../lib/modules/qmailGroup.inc:424 +msgid "Please enter the message store." +msgstr "Будь ласка, вкажіть сховище повідомлень." + +#: ../help/help.inc:131 +msgid "" +"Please enter the name of the new profile and the password to change its " +"settings. Profile names may contain letters, numbers and -/_." +msgstr "" +"Будь ласка, вкажіть назву нового профіля та пароль. Назва нового профіля " +"може містити літери, цифри та -/_." + +#: ../help/help.inc:133 +msgid "" +"Please enter the new name of the profile. The name may contain letters, " +"numbers and -/_." +msgstr "" +"Будь ласка, вкажіть нову назву профіля.Назва профіля може містити літери, " +"цифри та -/_." + +#: ../lib/modules/selfRegistration.inc:66 +#: ../lib/modules/passwordSelfReset.inc:109 +msgid "" +"Please enter the password for the admin DN. Please note that this is saved " +"as clear-text in the self service profile." +msgstr "" +"Будь ласка, вкажіть пароль для DN адміністратора. Зверніть увагу, що він " +"зберігається в текстовому виді в профілі самообслуговування." + +#: ../lib/modules/asteriskAccount.inc:116 ../lib/modules/posixAccount.inc:523 +#: ../lib/modules/windowsUser.inc:224 ../lib/modules/inetOrgPerson.inc:841 +msgid "Please enter the password which you want to set for this account." +msgstr "Будь ласка, вкажіть пароль для цього акаунта." + +#: ../help/help.inc:203 +msgid "" +"Please enter the password which you want to set for this account. You may " +"also generate a random password (12 characters) which will be displayed on " +"your screen." +msgstr "" +"Будь ласка, вкажіть пароль для цього акаунта. Ви також можете згенерувати " +"випадковий пароль (12 символів), який буде показано на екрані." + +#: ../lib/modules/posixAccount.inc:474 +msgid "Please enter the path to the user's home directory." +msgstr "Будь ласка, вкажіть шлях до домашнього каталогу користувача." + +#: ../lib/modules/zarafaServer.inc:69 +msgid "Please enter the port number for (unencrypted) HTTP connections." +msgstr "Будь ласка, вкажіть номер порта для (нешифрованих) HTTP з’єднань." + +#: ../lib/modules/zarafaServer.inc:73 +msgid "Please enter the port number for encrypted connections." +msgstr "Будь ласка, вкажіть номер порта для шифрованих з’єднань." + +#: ../lib/modules/passwordSelfReset.inc:81 +msgid "" +"Please enter the possible security questions for the password self reset." +msgstr "" +"Будь ласка, вкажіть можливі секретні питання для самостійного скидання " +"пароля." + +#: ../lib/modules/asteriskExtension.inc:191 +msgid "Please enter the priority." +msgstr "Будь ласка, вкажіть пріоритет." + +#: ../lib/modules/imapAccess.inc:110 +msgid "Please enter the quota limit of this mailbox in kilobytes." +msgstr "Будь ласка, вкажіть квоту в кілобайтахдля цієї поштової скриньки." + +#: ../lib/modules/quota.inc:154 +msgid "" +"Please enter the quota settings for this mount point. The syntax is: {soft " +"block limit},{hard block limit},{soft inode limit},{hard inode limit}" +msgstr "" +"Будь ласка, вкажіть квоту для цієї точки монтування. Синтаксис {м’яке " +"обмеження на використовуване місце}{жорстке обмеження на використовуване " +"місце}{М’яке обмеження на кількість inode}{Жорстке обмеження на кількість " +"inode}" + +#: ../lib/modules/systemQuotas.inc:69 +msgid "" +"Please enter the quota settings for this user. The syntax is: {mount point}," +"{soft block limit},{hard block limit},{soft inode limit},{hard inode limit}." +msgstr "" +"Будь ласка, вкажіть квоту для цього користувача. Синтаксис: {точка " +"монтування}{м’яке обмеження на використовуване місце} {жорстке обмеження на " +"використовуване місце} {М’яке обмеження на кількість inode} {Жорстке " +"обмеження на кількість inode}" + +#: ../lib/modules/nisMailAlias.inc:86 +msgid "Please enter the recipients for this alias." +msgstr "Будь ласка, вкажіть отримувача для цього псевдоніма." + +#: ../lib/modules/customFields.inc:109 +#, php-format +msgid "" +"Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") to validate " +"this field. For a syntax description see here." +msgstr "" +"Будь ласка, вкажіть регулярний вираз (наприклад, \"/^[0-9a-zA-Z]+$/\") для " +"перевірки цього поля. Для опису синтаксису див.тут." + +#: ../templates/lists/changePassword.php:517 +#: ../lib/modules/selfRegistration.inc:533 +#: ../lib/modules/sambaSamAccount.inc:105 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/windowsUser.inc:615 ../lib/modules/customFields.inc:2533 +msgid "Please enter the same password in both password fields." +msgstr "Будь ласка, вкажіть однаковий пароль в обох полях." + +#: ../lib/modules/passwordSelfReset.inc:77 +msgid "Please enter the security question for the password self reset." +msgstr "Будь ласка, вкажіть секретне питання для самостійного скидання пароля." + +#: ../lib/modules/sambaSamAccount.inc:370 +msgid "Please enter the time limit in minutes. 0 means unlimited." +msgstr "Будь ласка, вкажіть ліміт часу в хвилинах. 0 - без обмежень." + +#: ../lib/modules/windowsUser.inc:108 ../lib/modules/windowsUser.inc:116 +msgid "Please enter the user's name." +msgstr "Будь ласка, вкажіть ім’я користувача." + +#: ../lib/modules/puppetClient.inc:101 ../lib/modules/puppetClient.inc:105 +msgid "" +"Please enter your Puppet variables for this node (e.g. config_exim=true)." +msgstr "" +"Будь ласка, вкажіть ваші змінні Puppet для цього вузла (наприклад, " +"config_exim=true)." + +#: ../templates/selfService/adminLogin.php:133 +msgid "" +"Please enter your master configuration password to change the self service " +"profile:" +msgstr "" +"Будь ласка, вкажіть ваш майстер-пароль для зміни профіля сервіса " +"самообслуговування:" + +#: ../templates/config/conflogin.php:132 +msgid "Please enter your password to change the server preferences:" +msgstr "Будь ласка, вкажіть пароль для змін налаштувань сервера:" + +#: ../lib/modules/ldapPublicKey.inc:73 +msgid "Please enter your public SSH key." +msgstr "Будь ласка, вкажіть ваш публічний SSH ключ." + +#: ../lib/modules/range.inc:402 ../lib/modules/fixed_ip.inc:404 +msgid "Please fill out the DHCP settings first." +msgstr "Будь ласка, вкажіть спочатку DHCP налаштування." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "Please go back and try again." +msgstr "Будь ласка, поверніться та спробуйте ще раз." + +#: ../templates/masscreate.php:246 +msgid "" +"Please provide a CSV formated file with your account data. The cells in the " +"first row must be filled with the column identifiers. The following rows " +"represent one account for each row." +msgstr "" +"Будь ласка, підготуйте CSV файл з даними акаунтів. Значення першого рядка " +"повинні містити назви колонок. Наступні рядки містять дані: один акаунт - " +"один рядок." + +#: ../lib/config.inc:1768 +msgid "Please provide a file in DER or PEM format." +msgstr "Будь ласка, надайте файл в DER або PEM форматі." + +#: ../templates/massBuildAccounts.php:256 +msgid "Please provide a file to upload." +msgstr "Будь ласка, надайте файл для завантаження." + +#: ../lib/modules/inetOrgPerson.inc:749 +msgid "" +"Please select an image file to upload. It must be in JPG format (.jpg/.jpeg)." +msgstr "" +"Будь ласка, виберіть файл зображення для завантаження. Повинен бути JPEG " +"формат (.jpg/.jpeg)." + +#: ../lib/modules/customFields.inc:101 +msgid "Please select the field type (e.g. text field)." +msgstr "Будь ласка, виберіть тип поля (наприклад, текстове)." + +#: ../help/help.inc:270 +msgid "Please select the suffix where changes should be done." +msgstr "" +"Будь ласка, виберіть суфікс, для якого будуть застосовуватися всі зміни." + +#: ../help/help.inc:149 +msgid "" +"Please select your prefered log level. Messages with a lower level will not " +"be logged." +msgstr "" +"Будь ласка, виберіть рівень виведення інформації в журнал подій. " +"Повідомлення з нижчим рівнем не буде реєструватися." + +#: ../lib/modules/asteriskVoicemail.inc:228 +msgid "Please set the voicemail password with \"Set password\" before saving." +msgstr "" +"Будь ласка, перед збереженням встановіть парольна скриньку голосової пошти " +"за допомогою \"Установити пароль\"." + +#: ../lib/modules.inc:877 +#, php-format +msgid "Please set up all required attributes on page: %s" +msgstr "Будь ласка, налаштуйте всі необхідні атрибути на сторінці: %s" + +#: ../templates/config/profmanage.php:220 +#: ../templates/selfService/profManage.php:160 +msgid "Please set up your master configuration file (config/config.cfg) first!" +msgstr "" +"Будь ласка, налаштуйте основний конфігураційний файл (config/config.cfg)!" + +#: ../lib/modules/dhcp_settings.inc:551 ../lib/modules/ddns.inc:362 +msgid "" +"Please set your LDAP suffix to an LDAP entry with object class \"dhcpService" +"\" or \"dhcpServer\"." +msgstr "" +"Будь ласка, налаштуйте LDAP суфіксна запис LDAP з класом об’єкту " +"\"dhcpService\" або \"dhcpServer\"." + +#: ../templates/multiEdit.php:213 +msgid "Please specify at least one operation." +msgstr "Будь ласка, сформулюйте принаймні, одну операцію." + +#: ../lib/modules/passwordSelfReset.inc:145 +msgid "Please specify how your users need to identify themselves." +msgstr "Будь ласка, вкажіть, як ваші користувачі повинні себе ідентифікувати." + +#: ../lib/modules/windowsGroup.inc:143 +msgid "Please specify the group scope." +msgstr "Будь ласка, вкажіть область видимості групи." + +#: ../lib/modules/customFields.inc:141 +msgid "" +"Please specify the possible values for this field. Each value can have a " +"descriptive label that is displayed to the user." +msgstr "" +"Будь ласка, вкажіть можливі значення для цього поля. Кожне значення може " +"мати мітку-опис, яка буде показана користувачу." + +#: ../help/help.inc:274 +msgid "" +"Please specify which attributes should be changed. The modify operation will " +"also add an value if the attribute does not yet exist. To delete all values " +"of an attribute please leave the value field empty." +msgstr "" +"Будь ласка, вкажіть, які атрибути потрібно змінити. При операції модифікації " +"буде також додано значення, якщо атрибут ще не існує. Для вилучення всіх " +"значень атрибута, залиште його порожнім." + +#: ../lib/modules/inetOrgPerson.inc:100 +msgid "Please upload a .jpg/.jpeg file." +msgstr "Будь ласка, завантажте .jpg/.jpeg файл." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:172 +msgid "Please wait" +msgstr "Будь ласка, зачекайте" + +#: ../lib/types/ppolicyType.inc:149 +#, php-format +msgid "Policy count: %s" +msgstr "Кількість політик: %s" + +#: ../lib/modules/kolabUser.inc:246 +msgid "Policy list has invalid format!" +msgstr "Список політик має неправильний формат!" + +#: ../lib/modules/asteriskAccount.inc:179 +#: ../lib/modules/asteriskAccount.inc:283 +#: ../lib/modules/asteriskAccount.inc:436 +#: ../lib/modules/asteriskAccount.inc:686 +#: ../lib/modules/asteriskAccount.inc:999 +#: ../lib/modules/asteriskAccount.inc:1267 ../lib/modules/bindDLZ.inc:188 +#: ../lib/modules/bindDLZ.inc:192 ../lib/modules/bindDLZ.inc:392 +#: ../lib/modules/bindDLZ.inc:505 ../lib/modules/bindDLZ.inc:1358 +#: ../lib/modules/bindDLZ.inc:1601 +msgid "Port" +msgstr "Порт" + +#: ../lib/modules/asteriskAccount.inc:180 +msgid "Port number." +msgstr "Номер порта" + +#: ../templates/pdfedit/pdfpage.php:592 ../templates/pdfedit/pdfpage.php:602 +#: ../templates/pdfedit/pdfpage.php:612 ../templates/pdfedit/pdfpage.php:627 +msgid "Position" +msgstr "Позиція" + +#: ../templates/masscreate.php:310 ../templates/masscreate.php:384 +#: ../lib/modules/customScripts.inc:125 ../lib/modules/customScripts.inc:127 +#: ../lib/modules/customScripts.inc:129 +#: ../lib/modules/sambaGroupMapping.inc:604 +msgid "Possible values" +msgstr "Можливі значення" + +#: ../lib/modules/pykotaPrinter.inc:130 ../lib/modules/posixGroup.inc:530 +#: ../lib/modules/sambaGroupMapping.inc:172 +#: ../lib/modules/organizationalRole.inc:103 +#: ../lib/modules/groupOfNames.inc:115 +msgid "" +"Possible wildcards are: \"*\" = any character, \"^\" = line start, \"$\" = " +"line end" +msgstr "" +"Можливі маски: \"*\" = будь-який символ, \"^\" = початок рядка, \"$\" = " +"кінець рядка" + +#: ../lib/modules/windowsUser.inc:160 ../lib/modules/windowsUser.inc:320 +#: ../lib/modules/windowsUser.inc:510 ../lib/modules/windowsUser.inc:547 +#: ../lib/modules/windowsUser.inc:709 ../lib/modules/windowsUser.inc:1598 +#: ../lib/modules/windowsUser.inc:1735 ../lib/modules/inetOrgPerson.inc:159 +#: ../lib/modules/inetOrgPerson.inc:181 ../lib/modules/inetOrgPerson.inc:409 +#: ../lib/modules/inetOrgPerson.inc:548 ../lib/modules/inetOrgPerson.inc:672 +#: ../lib/modules/inetOrgPerson.inc:676 ../lib/modules/inetOrgPerson.inc:1234 +#: ../lib/modules/inetOrgPerson.inc:1237 ../lib/modules/inetOrgPerson.inc:1896 +#: ../lib/modules/inetOrgPerson.inc:2566 ../lib/modules/inetOrgPerson.inc:3513 +#: ../lib/modules/inetOrgPerson.inc:3578 +msgid "Post office box" +msgstr "Поштова скринька" + +#: ../lib/modules/inetOrgPerson.inc:83 ../lib/modules/inetOrgPerson.inc:158 +#: ../lib/modules/inetOrgPerson.inc:193 ../lib/modules/inetOrgPerson.inc:393 +#: ../lib/modules/inetOrgPerson.inc:560 ../lib/modules/inetOrgPerson.inc:688 +#: ../lib/modules/inetOrgPerson.inc:1278 ../lib/modules/inetOrgPerson.inc:1898 +#: ../lib/modules/inetOrgPerson.inc:2533 ../lib/modules/inetOrgPerson.inc:3521 +#: ../lib/modules/inetOrgPerson.inc:3580 +msgid "Postal address" +msgstr "Поштова адреса" + +#: ../lib/modules/inetOrgPerson.inc:689 +msgid "Postal address, city" +msgstr "Поштова адреса, місто" + +#: ../lib/modules/windowsUser.inc:156 ../lib/modules/windowsUser.inc:326 +#: ../lib/modules/windowsUser.inc:509 ../lib/modules/windowsUser.inc:548 +#: ../lib/modules/windowsUser.inc:605 ../lib/modules/windowsUser.inc:710 +#: ../lib/modules/windowsUser.inc:1597 ../lib/modules/windowsUser.inc:1736 +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:159 +#: ../lib/modules/inetOrgPerson.inc:184 ../lib/modules/inetOrgPerson.inc:385 +#: ../lib/modules/inetOrgPerson.inc:551 ../lib/modules/inetOrgPerson.inc:680 +#: ../lib/modules/inetOrgPerson.inc:684 ../lib/modules/inetOrgPerson.inc:1243 +#: ../lib/modules/inetOrgPerson.inc:1246 ../lib/modules/inetOrgPerson.inc:1897 +#: ../lib/modules/inetOrgPerson.inc:2555 ../lib/modules/inetOrgPerson.inc:3515 +#: ../lib/modules/inetOrgPerson.inc:3578 +msgid "Postal code" +msgstr "Поштовий індекс" + +#: ../lib/modules/puppetClient.inc:112 +msgid "Predefined classes" +msgstr "Стандартні класи" + +#: ../lib/modules/puppetClient.inc:116 ../lib/modules/puppetClient.inc:122 +msgid "Predefined environments" +msgstr "Стандартне оточення" + +#: ../lib/modules/authorizedServiceObject.inc:93 +#: ../lib/modules/authorizedServiceObject.inc:99 +msgid "Predefined services" +msgstr "Стандартні сервіси" + +#: ../help/help.inc:91 +msgid "Predefined values" +msgstr "Стандартні значення" + +#: ../lib/modules/bindDLZ.inc:196 ../lib/modules/bindDLZ.inc:200 +#: ../lib/modules/bindDLZ.inc:280 ../lib/modules/bindDLZ.inc:495 +#: ../lib/modules/bindDLZ.inc:916 ../lib/modules/bindDLZ.inc:1513 +msgid "Preference" +msgstr "Уподобання" + +#: ../lib/modules/imapAccess.inc:97 ../lib/modules/imapAccess.inc:143 +msgid "Prefix for mailboxes" +msgstr "Префікси для поштових скриньок" + +#: ../lib/modules/inetOrgPerson.inc:339 +msgid "President" +msgstr "Президент" + +#: ../lib/modules/pykotaUser.inc:650 ../lib/modules/pykotaUser.inc:999 +msgid "Price" +msgstr "Вартість" + +#: ../lib/types/pykotaPrinterType.inc:94 ../lib/modules/pykotaPrinter.inc:111 +#: ../lib/modules/pykotaPrinter.inc:174 ../lib/modules/pykotaPrinter.inc:197 +#: ../lib/modules/pykotaPrinter.inc:215 ../lib/modules/pykotaPrinter.inc:235 +#: ../lib/modules/pykotaPrinter.inc:587 +msgid "Price per job" +msgstr "Вартість роботи" + +#: ../lib/types/pykotaPrinterType.inc:93 ../lib/modules/pykotaPrinter.inc:115 +#: ../lib/modules/pykotaPrinter.inc:180 ../lib/modules/pykotaPrinter.inc:198 +#: ../lib/modules/pykotaPrinter.inc:217 ../lib/modules/pykotaPrinter.inc:237 +#: ../lib/modules/pykotaPrinter.inc:588 +msgid "Price per page" +msgstr "Вартість сторінки" + +#: ../lib/modules/eduPerson.inc:88 ../lib/modules/eduPerson.inc:168 +#: ../lib/modules/eduPerson.inc:229 ../lib/modules/eduPerson.inc:283 +#: ../lib/modules/eduPerson.inc:581 +msgid "Primary affiliation" +msgstr "Основна приналежність" + +#: ../lib/modules/posixAccount.inc:297 ../lib/modules/posixAccount.inc:389 +#: ../lib/modules/posixAccount.inc:414 ../lib/modules/posixAccount.inc:465 +#: ../lib/modules/posixAccount.inc:514 ../lib/modules/posixAccount.inc:552 +#: ../lib/modules/posixAccount.inc:1446 ../lib/modules/posixAccount.inc:1735 +#: ../lib/modules/posixAccount.inc:1781 ../lib/modules/posixAccount.inc:1847 +msgid "Primary group" +msgstr "Основна група" + +#: ../lib/modules/bindDLZ.inc:229 +msgid "Primary master DNS server for this zone (e.g. \"ns1.example.com.\")." +msgstr "" +"Основний майстер сервер DNS для цієї зони (наприклад, \"ns1.example.com.\")." + +#: ../lib/modules/bindDLZ.inc:228 ../lib/modules/bindDLZ.inc:338 +#: ../lib/modules/bindDLZ.inc:422 ../lib/modules/bindDLZ.inc:524 +#: ../lib/modules/bindDLZ.inc:1040 ../lib/modules/bindDLZ.inc:1547 +msgid "Primary name server" +msgstr "Первинний сервер імен" + +#: ../lib/modules/eduPerson.inc:130 ../lib/modules/eduPerson.inc:206 +#: ../lib/modules/eduPerson.inc:232 ../lib/modules/eduPerson.inc:247 +#: ../lib/modules/eduPerson.inc:348 ../lib/modules/eduPerson.inc:588 +msgid "Primary organisational unit" +msgstr "Основна організаційна одиниця" + +#: ../lib/modules/eduPerson.inc:114 ../lib/modules/eduPerson.inc:161 +#: ../lib/modules/eduPerson.inc:230 ../lib/modules/eduPerson.inc:277 +#: ../lib/modules/eduPerson.inc:583 +msgid "Principal name" +msgstr "Головне ім’я" + +#: ../lib/modules/eduPerson.inc:243 ../lib/modules/eduPerson.inc:244 +msgid "Principal name is invalid!" +msgstr "Головне ім’я неправильне!" + +#: ../lib/modules/pykotaUser.inc:648 ../lib/modules/pykotaUser.inc:997 +msgid "Printer" +msgstr "Принтер" + +#: ../lib/types/pykotaPrinterType.inc:164 +#, php-format +msgid "Printer count: %s" +msgstr "Кількість принтерів: %s" + +#: ../lib/modules/pykotaPrinter.inc:100 +msgid "Printer description." +msgstr "Опис принтера." + +#: ../lib/modules/pykotaPrinter.inc:200 ../lib/modules/pykotaPrinter.inc:258 +#: ../lib/modules/pykotaPrinter.inc:621 +msgid "Printer groups" +msgstr "Групи принтерів" + +#: ../lib/types/pykotaPrinterType.inc:91 ../lib/modules/pykotaPrinter.inc:95 +#: ../lib/modules/pykotaPrinter.inc:146 ../lib/modules/pykotaPrinter.inc:193 +#: ../lib/modules/pykotaPrinter.inc:209 ../lib/modules/pykotaPrinter.inc:211 +#: ../lib/modules/pykotaPrinter.inc:231 ../lib/modules/pykotaPrinter.inc:584 +#: ../lib/modules/pykotaBillingCode.inc:101 +msgid "Printer name" +msgstr "Назва принтера" + +#: ../lib/modules/pykotaPrinter.inc:211 ../lib/modules/pykotaPrinter.inc:212 +msgid "Printer name already exists!" +msgstr "Така назва принтера вже існує!" + +#: ../lib/modules/pykotaPrinter.inc:209 ../lib/modules/pykotaPrinter.inc:210 +msgid "" +"Printer name contains invalid characters. Valid characters are: a-z, A-Z, " +"0-9 and .-_ !" +msgstr "" +"Назва принтера містить неприпустимі символи. Допускається: a-z, A-Z, 0-9 " +"та .-_ !" + +#: ../lib/modules/pykotaPrinter.inc:96 +msgid "" +"Printer name of the printer which should be created. Valid characters are: a-" +"z, A-Z, 0-9 and .-_ ." +msgstr "" +"Назва принтера для принтера, який створюєте. Можливі символи: a-z, A-Z, 0-9 " +"та .-_ ." + +#: ../lib/types/pykotaPrinterType.inc:53 +msgid "Printers" +msgstr "Принтери" + +#: ../lib/modules/bindDLZ.inc:172 ../lib/modules/bindDLZ.inc:176 +#: ../lib/modules/bindDLZ.inc:382 ../lib/modules/bindDLZ.inc:501 +#: ../lib/modules/bindDLZ.inc:1348 ../lib/modules/bindDLZ.inc:1599 +#: ../lib/modules/asteriskExtension.inc:106 +#: ../lib/modules/asteriskExtension.inc:825 +msgid "Priority" +msgstr "Пріоритет" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1537 +#: ../templates/3rdParty/pla/htdocs/import_form.php:44 +#: ../templates/3rdParty/pla/htdocs/export_form.php:135 +msgid "Proceed" +msgstr "Продовжити" + +#: ../templates/config/profmanage.php:112 +#: ../templates/selfService/profManage.php:85 +msgid "Profile deleted." +msgstr "Профіль вилучено." + +#: ../templates/profedit/profilepage.php:182 +#: ../templates/profedit/profilemain.php:94 ../lib/tools/profileEditor.inc:44 +msgid "Profile editor" +msgstr "Редактор профілів" + +#: ../templates/config/profmanage.php:159 +#: ../templates/config/profmanage.php:236 +#: ../templates/selfService/profManage.php:101 +#: ../templates/selfService/profManage.php:199 ../help/help.inc:130 +#: ../help/help.inc:132 ../help/help.inc:134 ../help/help.inc:136 +#: ../help/help.inc:138 +msgid "Profile management" +msgstr "Керування профілями" + +#: ../templates/config/profmanage.php:240 +#: ../templates/config/profmanage.php:260 +#: ../templates/config/profmanage.php:272 +#: ../templates/config/profmanage.php:281 +#: ../templates/config/profmanage.php:301 +#: ../templates/selfService/profManage.php:203 +#: ../templates/selfService/profManage.php:217 +#: ../templates/selfService/profManage.php:233 +#: ../templates/profedit/profilepage.php:186 +#: ../templates/profedit/profilemain.php:277 +#: ../templates/profedit/profilemain.php:321 ../help/help.inc:188 +msgid "Profile name" +msgstr "Назва профіля" + +#: ../templates/config/profmanage.php:88 +#: ../templates/config/profmanage.php:107 +#: ../templates/config/profmanage.php:137 +#: ../templates/config/profmanage.php:148 +#: ../templates/selfService/profManage.php:61 +#: ../templates/selfService/profManage.php:76 +msgid "Profile name is invalid!" +msgstr "Назва профіля неправильна!" + +#: ../templates/config/profmanage.php:243 +#: ../templates/config/profmanage.php:282 +msgid "Profile password" +msgstr "Пароль профіля" + +#: ../templates/config/profmanage.php:86 +#: ../templates/config/profmanage.php:135 +msgid "Profile passwords are different or empty!" +msgstr "Паролі профіля не співпадають або порожні!" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:98 +#: ../lib/modules/sambaSamAccount.inc:220 +#: ../lib/modules/sambaSamAccount.inc:232 +#: ../lib/modules/sambaSamAccount.inc:308 +#: ../lib/modules/sambaSamAccount.inc:357 +#: ../lib/modules/sambaSamAccount.inc:502 +#: ../lib/modules/sambaSamAccount.inc:598 +#: ../lib/modules/sambaSamAccount.inc:1218 +#: ../lib/modules/sambaSamAccount.inc:1511 +#: ../lib/modules/sambaSamAccount.inc:1580 +#: ../lib/modules/sambaSamAccount.inc:1758 +#: ../lib/modules/sambaSamAccount.inc:1903 +#: ../lib/modules/sambaSamAccount.inc:1918 ../lib/modules/windowsUser.inc:204 +#: ../lib/modules/windowsUser.inc:418 ../lib/modules/windowsUser.inc:478 +#: ../lib/modules/windowsUser.inc:520 ../lib/modules/windowsUser.inc:611 +#: ../lib/modules/windowsUser.inc:754 ../lib/modules/windowsUser.inc:1627 +msgid "Profile path" +msgstr "Шлях до профіля" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/windowsUser.inc:611 ../lib/modules/windowsUser.inc:612 +msgid "Profile path is invalid!" +msgstr "Шлях до профіля неправильний!" + +#: ../templates/profedit/profilemain.php:149 +msgid "Profile was saved." +msgstr "Профіль збережено." + +#: ../templates/profedit/profilemain.php:244 +msgid "Profiles" +msgstr "Профілі" + +#: ../lib/modules/qmailUser.inc:252 +msgid "Program to execute for all incoming mails." +msgstr "Програма, яка виконуватиметься для всіх вхідних листів." + +#: ../templates/multiEdit.php:231 +msgid "Progress" +msgstr "Прогрес" + +#: ../lib/modules/zarafaServer.inc:84 ../lib/modules/zarafaServer.inc:128 +#: ../lib/modules/zarafaServer.inc:141 ../lib/modules/zarafaServer.inc:163 +#: ../lib/modules/zarafaServer.inc:212 ../lib/modules/zarafaServer.inc:357 +msgid "Proxy URL" +msgstr "URL проксі" + +#: ../lib/modules/zarafaServer.inc:80 ../lib/modules/zarafaServer.inc:118 +#: ../lib/modules/zarafaServer.inc:138 ../lib/modules/zarafaServer.inc:225 +#: ../lib/modules/zarafaServer.inc:362 +msgid "Public store" +msgstr "Публічне сховище" + +#: ../lib/modules/puppetClient.inc:70 +msgid "Puppet" +msgstr "Puppet" + +#: ../lib/modules/pykotaPrinter.inc:79 ../lib/modules/pykotaGroup.inc:93 +#: ../lib/modules/pykotaUser.inc:93 ../lib/modules/pykotaBillingCode.inc:61 +msgid "PyKota" +msgstr "PyKota" + +#: ../lib/types/pykotaBillingCodeType.inc:62 +msgid "PyKota billing codes" +msgstr "Коди оплати PyKota" + +#: ../lib/modules/pykotaGroup.inc:121 ../lib/modules/pykotaGroup.inc:148 +#: ../lib/modules/pykotaGroup.inc:181 ../lib/modules/pykotaGroup.inc:201 +#: ../lib/modules/pykotaGroup.inc:203 ../lib/modules/pykotaGroup.inc:467 +msgid "PyKota group name" +msgstr "Назва групи PyKota" + +#: ../lib/types/pykotaPrinterType.inc:62 +msgid "PyKota printers" +msgstr "Принтери PyKota" + +#: ../lib/modules/pykotaUser.inc:124 ../lib/modules/pykotaUser.inc:190 +#: ../lib/modules/pykotaUser.inc:260 ../lib/modules/pykotaUser.inc:315 +#: ../lib/modules/pykotaUser.inc:317 ../lib/modules/pykotaUser.inc:891 +msgid "PyKota user name" +msgstr "Псевдоім’я користувача PyKota" + +#: ../lib/modules/pykotaGroup.inc:221 +msgid "Pykota group name" +msgstr "Назва групи Pykota" + +#: ../lib/modules/pykotaUser.inc:359 +msgid "Pykota user name" +msgstr "Псевдоім’я користувача PyKota" + +#: ../lib/modules/qmailUser.inc:87 ../lib/modules/qmailGroup.inc:56 +msgid "Qmail" +msgstr "Qmail" + +#: ../lib/modules/asteriskAccount.inc:183 +#: ../lib/modules/asteriskAccount.inc:284 +#: ../lib/modules/asteriskAccount.inc:443 +#: ../lib/modules/asteriskAccount.inc:691 +#: ../lib/modules/asteriskAccount.inc:1000 +#: ../lib/modules/asteriskAccount.inc:1269 +msgid "Qualify" +msgstr "Кваліфікувати" + +#: ../lib/modules/passwordSelfReset.inc:76 +#: ../lib/modules/passwordSelfReset.inc:170 +#: ../lib/modules/passwordSelfReset.inc:177 +#: ../lib/modules/passwordSelfReset.inc:197 +#: ../lib/modules/passwordSelfReset.inc:218 +#: ../lib/modules/passwordSelfReset.inc:258 +#: ../lib/modules/passwordSelfReset.inc:381 +#: ../lib/modules/passwordSelfReset.inc:658 +#: ../lib/modules/passwordSelfReset.inc:1043 +msgid "Question" +msgstr "Питання" + +#: ../lib/modules/qmailUser.inc:668 ../lib/modules/quota.inc:87 +#: ../lib/modules/quota.inc:100 ../lib/modules/quota.inc:153 +#: ../lib/modules/pykotaGroup.inc:61 ../lib/modules/pykotaGroup.inc:175 +#: ../lib/modules/pykotaGroup.inc:176 ../lib/modules/zarafaUser.inc:481 +#: ../lib/modules/pykotaUser.inc:61 ../lib/modules/pykotaUser.inc:235 +#: ../lib/modules/pykotaUser.inc:236 ../lib/modules/systemQuotas.inc:58 +#: ../lib/modules/systemQuotas.inc:68 ../lib/modules/systemQuotas.inc:75 +#: ../lib/modules/systemQuotas.inc:81 ../lib/modules/systemQuotas.inc:88 +#: ../lib/modules/imapAccess.inc:109 ../lib/modules/imapAccess.inc:164 +msgid "Quota" +msgstr "Квота" + +#: ../lib/modules/quota.inc:698 +#, php-format +msgid "Quota for %s on %s" +msgstr "Квота для %s на %s" + +#: ../lib/modules/zarafaUser.inc:100 ../lib/modules/zarafaUser.inc:230 +#: ../lib/modules/zarafaUser.inc:352 ../lib/modules/zarafaUser.inc:412 +#: ../lib/modules/zarafaUser.inc:516 ../lib/modules/zarafaUser.inc:1231 +#: ../lib/modules/zarafaUser.inc:1314 ../lib/modules/zarafaUser.inc:1791 +msgid "Quota hard limit" +msgstr "Жорсткий ліміт квоти" + +#: ../lib/modules/quota.inc:63 +msgid "Quota has wrong format!" +msgstr "Квота має неправильний формат!" + +#: ../lib/modules/imapAccess.inc:319 ../lib/modules/imapAccess.inc:328 +msgid "Quota limit (kB)" +msgstr "Ліміт квоти (кБт)" + +#: ../lib/modules/zarafaUser.inc:88 ../lib/modules/zarafaUser.inc:204 +#: ../lib/modules/zarafaUser.inc:343 ../lib/modules/zarafaUser.inc:488 +#: ../lib/modules/zarafaUser.inc:1242 ../lib/modules/zarafaUser.inc:1305 +#: ../lib/modules/zarafaUser.inc:1785 +msgid "Quota override" +msgstr "Скасування квоти" + +#: ../lib/modules/qmailUser.inc:106 ../lib/modules/qmailUser.inc:133 +#: ../lib/modules/qmailUser.inc:219 ../lib/modules/qmailUser.inc:308 +#: ../lib/modules/qmailUser.inc:409 ../lib/modules/qmailUser.inc:675 +#: ../lib/modules/qmailUser.inc:1144 +msgid "Quota size" +msgstr "Розмір квоти" + +#: ../lib/modules/zarafaUser.inc:96 ../lib/modules/zarafaUser.inc:222 +#: ../lib/modules/zarafaUser.inc:349 ../lib/modules/zarafaUser.inc:410 +#: ../lib/modules/zarafaUser.inc:506 ../lib/modules/zarafaUser.inc:1230 +#: ../lib/modules/zarafaUser.inc:1311 ../lib/modules/zarafaUser.inc:1789 +msgid "Quota soft limit" +msgstr "М’який ліміт квоти" + +#: ../lib/modules/zarafaUser.inc:92 ../lib/modules/zarafaUser.inc:214 +#: ../lib/modules/zarafaUser.inc:346 ../lib/modules/zarafaUser.inc:408 +#: ../lib/modules/zarafaUser.inc:496 ../lib/modules/zarafaUser.inc:1229 +#: ../lib/modules/zarafaUser.inc:1308 ../lib/modules/zarafaUser.inc:1787 +msgid "Quota warning limit" +msgstr "Ліміт попереджень про перевищення квоти" + +#: ../templates/masscreate.php:334 ../templates/profedit/profilepage.php:213 +#: ../lib/modules/selfRegistration.inc:98 +#: ../lib/modules/selfRegistration.inc:210 ../lib/modules.inc:1004 +#: ../help/help.inc:186 +msgid "RDN identifier" +msgstr "Ідентифікатор RDN" + +#: ../lib/types/host.inc:93 +msgid "RID (Windows UID)" +msgstr "RID (Windows UID)" + +#: ../lib/modules/sambaDomain.inc:97 ../lib/modules/sambaDomain.inc:158 +#: ../lib/modules/sambaDomain.inc:189 ../lib/modules/sambaDomain.inc:383 +#: ../lib/modules/sambaDomain.inc:389 ../lib/modules/sambaDomain.inc:604 +msgid "RID base" +msgstr "RID base" + +#: ../lib/modules/sambaDomain.inc:352 +msgid "RID settings" +msgstr "Налаштування RID" + +#: ../lib/modules/asteriskAccount.inc:195 +#: ../lib/modules/asteriskAccount.inc:287 +#: ../lib/modules/asteriskAccount.inc:465 +#: ../lib/modules/asteriskAccount.inc:704 +#: ../lib/modules/asteriskAccount.inc:1003 +#: ../lib/modules/asteriskAccount.inc:1275 +msgid "RTP hold timeout" +msgstr "Тайм-аут утримання RTP" + +#: ../lib/modules/asteriskAccount.inc:191 +#: ../lib/modules/asteriskAccount.inc:286 +#: ../lib/modules/asteriskAccount.inc:458 +#: ../lib/modules/asteriskAccount.inc:699 +#: ../lib/modules/asteriskAccount.inc:1002 +#: ../lib/modules/asteriskAccount.inc:1273 +msgid "RTP timeout" +msgstr "Тайм-аут RTP" + +#: ../lib/modules/customFields.inc:2928 +msgid "Radio buttons" +msgstr "Радіокнопки" + +#: ../lib/modules/range.inc:92 ../lib/modules/range.inc:427 +msgid "Range from" +msgstr "Діапазон від" + +#: ../lib/modules/range.inc:95 ../lib/modules/range.inc:440 +msgid "Range to" +msgstr "Діапазон до" + +#: ../lib/types/dhcp.inc:95 ../lib/modules/range.inc:74 +#: ../lib/modules/range.inc:106 ../lib/modules/range.inc:495 +msgid "Ranges" +msgstr "Діапазони" + +#: ../templates/config/confmain.php:317 +msgid "Read" +msgstr "Читати" + +#: ../templates/config/confmain.php:262 ../templates/config/conftypes.php:290 +#: ../lib/modules/customFields.inc:104 ../lib/modules/customFields.inc:1722 +#: ../help/help.inc:182 +msgid "Read-only" +msgstr "Тільки читання" + +#: ../lib/modules/inetOrgPerson.inc:3574 +msgid "Read-only fields" +msgstr "Поля тільки читання" + +#: ../lib/modules/customFields.inc:105 +msgid "" +"Read-only fields cannot be changed by the user. Use this if you want to show " +"an attribute just for information." +msgstr "" +"Поля тільки для читання не можуть змінюватися користувачами. Використовуйте " +"це, якщо ви хочете показати атрибут тільки для інформації." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2289 +msgid "Really delete value from this attribute?" +msgstr "Дійсно вилучити значення цього атрибуту?" + +#: ../lib/modules/mitKerberos.inc:120 ../lib/modules/mitKerberos.inc:152 +#: ../lib/modules/mitKerberos.inc:194 ../lib/modules/freeRadius.inc:92 +#: ../lib/modules/freeRadius.inc:126 ../lib/modules/freeRadius.inc:146 +#: ../lib/modules/freeRadius.inc:177 ../lib/modules/freeRadius.inc:231 +#: ../lib/modules/freeRadius.inc:273 ../lib/modules/freeRadius.inc:539 +#: ../lib/modules/heimdalKerberos.inc:98 +#: ../lib/modules/heimdalKerberos.inc:157 +#: ../lib/modules/heimdalKerberos.inc:163 +msgid "Realm" +msgstr "Область" + +#: ../lib/modules/nisMailAliasUser.inc:355 ../lib/modules/nisMailAlias.inc:181 +msgid "Recipient" +msgstr "Отримувач" + +#: ../lib/modules/nisMailAlias.inc:127 ../lib/modules/nisMailAlias.inc:128 +msgid "Recipient is invalid!" +msgstr "Отримувач неправильний!" + +#: ../lib/types/mailAlias.inc:92 ../lib/modules/nisMailAlias.inc:89 +#: ../lib/modules/nisMailAlias.inc:108 ../lib/modules/nisMailAlias.inc:116 +#: ../lib/modules/nisMailAlias.inc:476 +msgid "Recipient list" +msgstr "Список отримувачів" + +#: ../lib/modules/nisMailAlias.inc:85 ../lib/modules/nisMailAlias.inc:184 +#: ../lib/modules/nisMailAlias.inc:202 +msgid "Recipients" +msgstr "Отримувачі" + +#: ../lib/modules/sambaSamAccount.inc:244 +#: ../lib/modules/sambaSamAccount.inc:387 +#: ../lib/modules/sambaSamAccount.inc:1560 +#: ../lib/modules/sambaSamAccount.inc:1970 +msgid "Reconnect if disconnected" +msgstr "Перепідключатися при роз’єднання" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:63 +msgid "Recursive copy" +msgstr "Рекурсивна копія" + +#: ../templates/3rdParty/pla/htdocs/copy.php:49 +msgid "Recursive copy progress" +msgstr "Прогрес рекурсивного копіювання" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:31 +msgid "Recursive delete progress" +msgstr "Прогрес рекурсивного видалення" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:65 +msgid "Recursively copy all children of this object as well." +msgstr "Також рекурсивно скопіювати всіх нащадків цього об’єкту." + +#: ../templates/config/profmanage.php:247 +#: ../templates/config/profmanage.php:286 +#: ../templates/config/mainmanage.php:459 ../templates/config/confmain.php:453 +#: ../lib/modules/selfRegistration.inc:415 +#: ../lib/modules/sambaSamAccount.inc:2268 +#: ../lib/modules/posixAccount.inc:2533 ../lib/modules/windowsUser.inc:1714 +msgid "Reenter password" +msgstr "Повторити пароль" + +#: ../templates/serverInfo.php:187 +msgid "Referrals" +msgstr "Реферали" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1051 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1054 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:249 +#: ../lib/modules/asteriskExtension.inc:454 ../lib/lists.inc:788 +msgid "Refresh" +msgstr "Оновити" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +msgid "Refresh this entry" +msgstr "Оновити цей запис" + +#: ../lib/modules/bindDLZ.inc:208 ../lib/modules/bindDLZ.inc:313 +#: ../lib/modules/bindDLZ.inc:417 ../lib/modules/bindDLZ.inc:514 +#: ../lib/modules/bindDLZ.inc:1019 ../lib/modules/bindDLZ.inc:1542 +msgid "Refresh time" +msgstr "Час оновлення" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:247 +msgid "Refreshing tree" +msgstr "Оновлення дерева" + +#: ../lib/modules/selfRegistration.inc:340 +msgid "Register new account" +msgstr "Реєструвати новий акаунт" + +#: ../lib/modules/inetOrgPerson.inc:85 ../lib/modules/inetOrgPerson.inc:158 +#: ../lib/modules/inetOrgPerson.inc:196 ../lib/modules/inetOrgPerson.inc:401 +#: ../lib/modules/inetOrgPerson.inc:563 ../lib/modules/inetOrgPerson.inc:692 +#: ../lib/modules/inetOrgPerson.inc:1322 ../lib/modules/inetOrgPerson.inc:1899 +#: ../lib/modules/inetOrgPerson.inc:2544 ../lib/modules/inetOrgPerson.inc:3523 +#: ../lib/modules/inetOrgPerson.inc:3580 +msgid "Registered address" +msgstr "Зареєстрована адреса" + +#: ../lib/modules/inetOrgPerson.inc:693 +msgid "Registered address, city" +msgstr "Зареєстрована адреса, місто" + +#: ../lib/modules/asteriskAccount.inc:215 +#: ../lib/modules/asteriskAccount.inc:292 +#: ../lib/modules/asteriskAccount.inc:501 +#: ../lib/modules/asteriskAccount.inc:725 +#: ../lib/modules/asteriskAccount.inc:1008 +#: ../lib/modules/asteriskAccount.inc:1285 +msgid "Registration context" +msgstr "Контекст реєстрації" + +#: ../lib/modules/asteriskAccount.inc:219 +#: ../lib/modules/asteriskAccount.inc:293 +#: ../lib/modules/asteriskAccount.inc:508 +#: ../lib/modules/asteriskAccount.inc:729 +#: ../lib/modules/asteriskAccount.inc:1009 +#: ../lib/modules/asteriskAccount.inc:1287 +msgid "Registration extension" +msgstr "Розширення реєстрації" + +#: ../lib/modules/asteriskAccount.inc:235 +#: ../lib/modules/asteriskAccount.inc:297 +#: ../lib/modules/asteriskAccount.inc:537 +#: ../lib/modules/asteriskAccount.inc:754 +#: ../lib/modules/asteriskAccount.inc:1013 +#: ../lib/modules/asteriskAccount.inc:1295 +msgid "Registration server" +msgstr "Сервер реєстрації" + +#: ../lib/modules/kolabUser.inc:53 +msgid "Reject if conflicts" +msgstr "Відхилити, якщо конфлікти" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +msgid "Reloading" +msgstr "Перезавантаження" + +#: ../templates/login.php:427 +msgid "Remember user name" +msgstr "Запам’ятати псевдоім’я користувача" + +#: ../templates/config/confmodules.php:310 +#: ../templates/pdfedit/pdfpage.php:477 ../lib/modules/mitKerberos.inc:688 +#: ../lib/modules/qmailUser.inc:919 ../lib/modules/windowsHost.inc:158 +#: ../lib/modules/sambaSamAccount.inc:1479 ../lib/modules/kolabUser.inc:871 +#: ../lib/modules/shadowAccount.inc:476 ../lib/modules/freeRadius.inc:429 +#: ../lib/modules/sudoRole.inc:318 ../lib/modules/sudoRole.inc:345 +#: ../lib/modules/sudoRole.inc:372 ../lib/modules/sudoRole.inc:399 +#: ../lib/modules/sudoRole.inc:426 ../lib/modules/sudoRole.inc:453 +#: ../lib/modules/heimdalKerberos.inc:598 ../lib/modules/windowsGroup.inc:364 +msgid "Remove" +msgstr "Вилучити" + +#: ../lib/modules/asteriskVoicemail.inc:263 +msgid "Remove Asterisk voicemail extension" +msgstr "Вилучити розширення голосової пошти Asterisk" + +#: ../lib/modules/authorizedServiceObject.inc:170 +msgid "Remove Authorized Service extension" +msgstr "Вилучити розширення Authorized Service" + +#: ../lib/modules/eduPerson.inc:355 +msgid "Remove EDU person extension" +msgstr "Вилучити розширення EDU person" + +#: ../lib/modules/freeRadius.inc:307 +msgid "Remove FreeRadius extension" +msgstr "Вилучити розширення FreeRadius" + +#: ../lib/modules/ipHost.inc:160 +msgid "Remove IP address extension" +msgstr "Вилучити розширення ІР-адреси" + +#: ../lib/modules/mitKerberos.inc:472 ../lib/modules/heimdalKerberos.inc:397 +msgid "Remove Kerberos extension" +msgstr "Вилучити розширення Kerberos" + +#: ../lib/modules/puppetClient.inc:280 +msgid "Remove Puppet extension" +msgstr "Вилучити розширення Puppet" + +#: ../lib/modules/pykotaGroup.inc:238 ../lib/modules/pykotaUser.inc:418 +msgid "Remove PyKota extension" +msgstr "Вилучити розширення PyKota" + +#: ../lib/modules/sambaSamAccount.inc:1306 +#: ../lib/modules/sambaGroupMapping.inc:423 +msgid "Remove Samba 3 extension" +msgstr "Вилучити розширення Samba 3" + +#: ../lib/modules/shadowAccount.inc:375 +msgid "Remove Shadow account extension" +msgstr "Вилучити розширення Shadow account" + +#: ../lib/modules/posixGroup.inc:246 ../lib/modules/posixAccount.inc:1511 +msgid "Remove Unix extension" +msgstr "Вилучити розширення Unix" + +#: ../lib/modules/zarafaContact.inc:258 ../lib/modules/zarafaGroup.inc:307 +#: ../lib/modules/zarafaUser.inc:655 ../lib/modules/zarafaServer.inc:232 +msgid "Remove Zarafa extension" +msgstr "Вилучити розширення Zarafa" + +#: ../lib/modules/customFields.inc:457 +msgid "Remove extension" +msgstr "Вилучити розширення" + +#: ../lib/types/user.inc:384 +msgid "Remove from all Unix groups" +msgstr "Вилучити зі всіх Unix груп" + +#: ../lib/types/user.inc:388 +msgid "Remove from all group of (unique) names" +msgstr "Вилучити зі всіх груп (унікальних) імен" + +#: ../lib/modules/hostObject.inc:147 +msgid "Remove host extension" +msgstr "Вилучити розширення host" + +#: ../lib/modules/posixGroup.inc:213 ../lib/modules/posixAccount.inc:1504 +#: ../lib/modules/inetOrgPerson.inc:1564 +msgid "Remove password" +msgstr "Вилучити пароль" + +#: ../lib/modules/passwordSelfReset.inc:281 +msgid "Remove password self reset extension" +msgstr "Вилучити розширення самостійного скидання пароля" + +#: ../lib/modules/qmailUser.inc:706 ../lib/modules/qmailGroup.inc:627 +msgid "Remove qmail extension" +msgstr "Вилучити розширення qmail" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:147 +#: ../lib/modules/zarafaContact.inc:418 ../lib/modules/zarafaGroup.inc:478 +#: ../lib/modules/device.inc:281 ../lib/modules/zarafaUser.inc:902 +#: ../lib/modules/inetOrgPerson.inc:1737 ../lib/modules/qmailGroup.inc:850 +#: ../lib/modules/organizationalRole.inc:383 +#: ../lib/modules/windowsGroup.inc:584 ../lib/modules/groupOfNames.inc:440 +#: ../lib/modules/groupOfNames.inc:595 +msgid "Remove selected entries" +msgstr "Вилучити вибрані записи" + +#: ../templates/config/conftypes.php:248 +msgid "Remove this account type" +msgstr "Вилучити цей тип акаунта" + +#: ../lib/modules/nisMailAliasUser.inc:153 +#: ../lib/modules/nisMailAliasUser.inc:192 +msgid "Remove user from alias entry." +msgstr "Вилучити користувача із запису псевдоніма." + +#: ../lib/modules/inetOrgPerson.inc:2646 +msgid "Remove/replace photo" +msgstr "Вилучити / перемістити фото" + +#: ../templates/config/profmanage.php:264 +#: ../templates/selfService/profManage.php:225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1152 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1155 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:24 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:35 +#: ../templates/3rdParty/pla/htdocs/rename.php:53 +msgid "Rename" +msgstr "Перейменувати" + +#: ../templates/3rdParty/pla/htdocs/rename_form.php:28 +#, php-format +msgid "Rename %s to a new object." +msgstr "Перейменувати %s в новий об’єкт" + +#: ../templates/config/profmanage.php:259 +#: ../templates/config/profmanage.php:265 +#: ../templates/selfService/profManage.php:216 +#: ../templates/selfService/profManage.php:226 ../help/help.inc:132 +msgid "Rename profile" +msgstr "Перейменувати профіль" + +#: ../templates/3rdParty/pla/htdocs/rename.php:48 +msgid "Rename successful!" +msgstr "Успішно перейменовано!" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +msgid "Rename this entry" +msgstr "Перейменувати цей запис" + +#: ../templates/config/profmanage.php:98 +#: ../templates/selfService/profManage.php:72 +msgid "Renamed profile." +msgstr "Перейменований профіль." + +#: ../templates/3rdParty/pla/htdocs/import.php:30 +#: ../templates/3rdParty/pla/htdocs/import.php:31 +msgid "Renaming" +msgstr "Перейменування" + +#: ../lib/modules/mitKerberos.inc:132 ../lib/modules/mitKerberos.inc:196 +#: ../lib/modules/mitKerberos.inc:236 ../lib/modules/mitKerberos.inc:253 +#: ../lib/modules/mitKerberos.inc:366 ../lib/modules/mitKerberos.inc:771 +#: ../lib/modules/heimdalKerberos.inc:114 +#: ../lib/modules/heimdalKerberos.inc:165 +#: ../lib/modules/heimdalKerberos.inc:205 +#: ../lib/modules/heimdalKerberos.inc:222 +#: ../lib/modules/heimdalKerberos.inc:313 +#: ../lib/modules/heimdalKerberos.inc:691 +msgid "Renewable lifetime" +msgstr "Оновлюваний час життя" + +#: ../lib/modules/mitKerberos.inc:295 ../lib/modules/mitKerberos.inc:296 +#: ../lib/modules/heimdalKerberos.inc:259 +#: ../lib/modules/heimdalKerberos.inc:260 +msgid "Renewable lifetime must be a number." +msgstr "Онвлюваний час життя повинен бути числом." + +#: ../templates/lists/changePassword.php:359 +#: ../lib/modules/passwordSelfReset.inc:1067 ../lib/modules.inc:1048 +msgid "Repeat password" +msgstr "Повторіть пароль" + +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:1199 +msgid "Replaced $user or $group in homedir." +msgstr "Замінено $user або $group в домашньому каталозі." + +#: ../templates/config/confmain.php:346 ../help/help.inc:257 +msgid "Reply-to address" +msgstr "Адреса Reply-to" + +#: ../templates/config/confmain.php:523 +msgid "Reply-to address for password mails is invalid." +msgstr "Неправильна адреса Reply-to для листів з паролями." + +#: ../lib/types/ppolicyType.inc:89 ../lib/modules/ppolicy.inc:128 +#: ../lib/modules/ppolicy.inc:154 ../lib/modules/ppolicy.inc:288 +#: ../lib/modules/ppolicy.inc:500 +msgid "Require password change on first login" +msgstr " Потрібна зміна пароля при першому вході в систему" + +#: ../lib/modules/windowsUser.inc:201 ../lib/modules/windowsUser.inc:402 +#: ../lib/modules/windowsUser.inc:519 ../lib/modules/windowsUser.inc:750 +#: ../lib/modules/windowsUser.inc:1621 +msgid "Require smartcard" +msgstr "Потрібна смарткартка" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 +msgid "Required attribute for object classes" +msgstr "Потрібний атрибут для класів об’єктів" + +#: ../templates/schema/schema.php:383 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1567 +msgid "Required attributes" +msgstr "Потрібні атрибути" + +#: ../lib/modules/mitKerberos.inc:180 ../lib/modules/mitKerberos.inc:462 +msgid "Requires hardware authentication" +msgstr "Потрібна апаратна аутентифікація" + +#: ../lib/modules/mitKerberos.inc:177 ../lib/modules/mitKerberos.inc:457 +#: ../lib/modules/heimdalKerberos.inc:151 +#: ../lib/modules/heimdalKerberos.inc:388 +msgid "Requires preauthentication" +msgstr "Потрібна попередня аутентифікація" + +#: ../lib/modules/sambaSamAccount.inc:1300 +#: ../lib/modules/pykotaBillingCode.inc:93 +#: ../lib/modules/pykotaBillingCode.inc:163 +msgid "Reset" +msgstr "Скинути" + +#: ../lib/modules.inc:1212 +msgid "Reset changes" +msgstr "Скинути зміни" + +#: ../lib/modules/sambaSamAccount.inc:264 +#: ../lib/modules/sambaSamAccount.inc:1299 +msgid "Reset password" +msgstr "Скинути пароль" + +#: ../lib/modules/sambaDomain.inc:137 ../lib/modules/sambaDomain.inc:199 +#: ../lib/modules/sambaDomain.inc:224 ../lib/modules/sambaDomain.inc:348 +#: ../lib/modules/sambaDomain.inc:611 +msgid "Reset time after lockout" +msgstr "Час скидання після блокування" + +#: ../lib/modules/sambaDomain.inc:224 +msgid "Reset time after lockout must be are natural number." +msgstr "Час скидання після блокування повинно бути натуральним числом." + +#: ../lib/modules/pykotaBillingCode.inc:94 +msgid "Resets the billing code's balance and page counter to 0." +msgstr "Скинути баланс коду оплати та лічильник сторінок в 0." + +#: ../lib/modules/zarafaUser.inc:523 +msgid "Resource settings" +msgstr "Налаштування ресурса" + +#: ../lib/modules/asteriskAccount.inc:187 +#: ../lib/modules/asteriskAccount.inc:285 +#: ../lib/modules/asteriskAccount.inc:450 +#: ../lib/modules/asteriskAccount.inc:695 +#: ../lib/modules/asteriskAccount.inc:1001 +#: ../lib/modules/asteriskAccount.inc:1271 +msgid "Restrict caller ID" +msgstr "Обмежити caller ID" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:113 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:118 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:550 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:587 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:198 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:84 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:122 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +msgid "Retrieving DN" +msgstr "Отримуємо DN" + +#: ../lib/modules/bindDLZ.inc:212 ../lib/modules/bindDLZ.inc:325 +#: ../lib/modules/bindDLZ.inc:418 ../lib/modules/bindDLZ.inc:516 +#: ../lib/modules/bindDLZ.inc:1030 ../lib/modules/bindDLZ.inc:1543 +msgid "Retry time" +msgstr "Час повтору" + +#: ../lib/modules/bindDLZ.inc:748 +msgid "Reverse DNS entries (\"PTR\" records)" +msgstr "Зворотні записи DNS (\"PTR\" записи)" + +#: ../lib/modules/ddns.inc:106 ../lib/modules/ddns.inc:114 +#: ../lib/modules/ddns.inc:135 ../lib/modules/ddns.inc:397 +#: ../lib/modules/ddns.inc:426 +msgid "Reverse zone name" +msgstr "Назва оберненої зони" + +#: ../templates/config/confmain.php:313 ../help/help.inc:118 +msgid "Rights for the home directory" +msgstr "Права для домашнього каталогу" + +#: ../lib/modules/organizationalRole.inc:65 +msgid "Role" +msgstr "Роль" + +#: ../lib/types/gon.inc:209 ../lib/types/group.inc:247 +#, php-format +msgid "Role count: %s" +msgstr "Кількість ролей: %s" + +#: ../lib/types/gon.inc:107 ../lib/types/group.inc:110 +msgid "Role member DNs" +msgstr "DN членів ролі" + +#: ../lib/types/gon.inc:112 ../lib/types/group.inc:116 +#: ../lib/types/sudo.inc:77 ../lib/modules/sudoRole.inc:66 +#: ../lib/modules/sudoRole.inc:146 ../lib/modules/sudoRole.inc:214 +#: ../lib/modules/sudoRole.inc:299 ../lib/modules/sudoRole.inc:804 +msgid "Role name" +msgstr "Назва ролі" + +#: ../lib/types/gon.inc:63 ../lib/types/group.inc:64 +#: ../lib/modules/organizationalRoleUser.inc:54 +#: ../lib/modules/organizationalRoleUser.inc:56 +#: ../lib/modules/organizationalRoleUser.inc:60 +#: ../lib/modules/organizationalRoleUser.inc:64 +#: ../lib/modules/organizationalRoleUser.inc:71 +#: ../lib/modules/organizationalRoleUser.inc:270 +#: ../lib/modules/organizationalRoleUser.inc:306 +msgid "Roles" +msgstr "Ролі" + +#: ../lib/modules/zarafaUser.inc:528 ../lib/modules/zarafaUser.inc:1246 +msgid "Room" +msgstr "Кімната" + +#: ../lib/modules/inetOrgPerson.inc:160 ../lib/modules/inetOrgPerson.inc:202 +#: ../lib/modules/inetOrgPerson.inc:475 ../lib/modules/inetOrgPerson.inc:569 +#: ../lib/modules/inetOrgPerson.inc:760 ../lib/modules/inetOrgPerson.inc:1366 +#: ../lib/modules/inetOrgPerson.inc:1369 ../lib/modules/inetOrgPerson.inc:1906 +#: ../lib/modules/inetOrgPerson.inc:2577 ../lib/modules/inetOrgPerson.inc:3527 +#: ../lib/modules/inetOrgPerson.inc:3581 +msgid "Room number" +msgstr "Номер офісу" + +#: ../lib/modules/inetLocalMailRecipient.inc:68 +#: ../lib/modules/inetLocalMailRecipient.inc:100 +#: ../lib/modules/inetLocalMailRecipient.inc:119 +#: ../lib/modules/inetLocalMailRecipient.inc:146 +#: ../lib/modules/inetLocalMailRecipient.inc:292 +msgid "Routing address" +msgstr "Адреса перенаправлення" + +#: ../lib/modules/customFields.inc:132 ../lib/modules/customFields.inc:2607 +msgid "Rows" +msgstr "Рядки" + +#: ../lib/modules/asteriskExtension.inc:139 +#: ../lib/modules/asteriskExtension.inc:311 +msgid "Rules" +msgstr "Правила" + +#: ../lib/modules/customScripts.inc:187 +msgid "Run" +msgstr "Запуск" + +#: ../lib/types/sudo.inc:82 +msgid "Run group" +msgstr "Група запуску" + +#: ../lib/modules/sudoRole.inc:90 ../lib/modules/sudoRole.inc:118 +#: ../lib/modules/sudoRole.inc:183 ../lib/modules/sudoRole.inc:220 +#: ../lib/modules/sudoRole.inc:232 ../lib/modules/sudoRole.inc:424 +#: ../lib/modules/sudoRole.inc:810 +msgid "Run groups" +msgstr "Групи запуску" + +#: ../lib/types/sudo.inc:81 +msgid "Run user" +msgstr "Користувач запуску" + +#: ../lib/modules/sudoRole.inc:86 ../lib/modules/sudoRole.inc:113 +#: ../lib/modules/sudoRole.inc:177 ../lib/modules/sudoRole.inc:219 +#: ../lib/modules/sudoRole.inc:231 ../lib/modules/sudoRole.inc:397 +#: ../lib/modules/sudoRole.inc:809 +msgid "Run users" +msgstr "Користувачі запуску" + +#: ../lib/modules/windowsUser.inc:304 +msgid "S.M." +msgstr "S.M." + +#: ../templates/serverInfo.php:129 +msgid "SASL mechanisms" +msgstr "Механізми SASL" + +#: ../lib/modules/asteriskAccount.inc:152 +msgid "SIP URI for a realtime peer." +msgstr "SIP URI для пира реального часу" + +#: ../lib/modules/asteriskAccount.inc:128 +msgid "SIP user agent identification." +msgstr "Ідентифікація агенту користувача SIP." + +#: ../lib/modules/bindDLZ.inc:307 ../lib/modules/bindDLZ.inc:313 +#: ../lib/modules/bindDLZ.inc:319 ../lib/modules/bindDLZ.inc:325 +#: ../lib/modules/bindDLZ.inc:331 ../lib/modules/bindDLZ.inc:338 +#: ../lib/modules/bindDLZ.inc:344 ../lib/modules/bindDLZ.inc:350 +#: ../lib/modules/bindDLZ.inc:416 ../lib/modules/bindDLZ.inc:417 +#: ../lib/modules/bindDLZ.inc:418 ../lib/modules/bindDLZ.inc:419 +#: ../lib/modules/bindDLZ.inc:420 ../lib/modules/bindDLZ.inc:421 +#: ../lib/modules/bindDLZ.inc:422 ../lib/modules/bindDLZ.inc:423 +#: ../lib/modules/bindDLZ.inc:480 ../lib/modules/bindDLZ.inc:512 +#: ../lib/modules/bindDLZ.inc:514 ../lib/modules/bindDLZ.inc:516 +#: ../lib/modules/bindDLZ.inc:518 ../lib/modules/bindDLZ.inc:520 +#: ../lib/modules/bindDLZ.inc:522 +msgid "SOA record" +msgstr "Запис SOA" + +#: ../lib/modules/bindDLZ.inc:123 ../lib/modules/bindDLZ.inc:382 +#: ../lib/modules/bindDLZ.inc:387 ../lib/modules/bindDLZ.inc:392 +#: ../lib/modules/bindDLZ.inc:397 ../lib/modules/bindDLZ.inc:402 +#: ../lib/modules/bindDLZ.inc:486 +msgid "SRV record" +msgstr "Запис SRV" + +#: ../lib/modules/bindDLZ.inc:426 ../lib/modules/bindDLZ.inc:436 +#: ../lib/modules/bindDLZ.inc:1596 +msgid "SRV records" +msgstr "Записи SRV" + +#: ../templates/tests/lamdaemonTest.php:243 +msgid "SSH connection" +msgstr "SSH підключення" + +#: ../templates/tests/lamdaemonTest.php:256 +msgid "SSH connection could be established." +msgstr "SSH з’єднання не може бути встановлено." + +#: ../lib/modules/ldapPublicKey.inc:62 ../lib/modules/ldapPublicKey.inc:72 +#: ../lib/modules/ldapPublicKey.inc:76 ../lib/modules/ldapPublicKey.inc:88 +#: ../lib/modules/ldapPublicKey.inc:119 +msgid "SSH public key" +msgstr "Публічний ключ SSH" + +#: ../lib/modules/ldapPublicKey.inc:95 ../lib/modules/ldapPublicKey.inc:99 +#: ../lib/modules/ldapPublicKey.inc:197 ../lib/modules/ldapPublicKey.inc:237 +msgid "SSH public keys" +msgstr "Публічні ключі SSH" + +#: ../help/help.inc:83 +msgid "SSL certificate" +msgstr "SSL сертифікат" + +#: ../templates/config/mainmanage.php:308 +msgid "SSL certificates" +msgstr "SSL сертифікати" + +#: ../lib/modules/zarafaServer.inc:72 ../lib/modules/zarafaServer.inc:106 +#: ../lib/modules/zarafaServer.inc:136 ../lib/modules/zarafaServer.inc:175 +#: ../lib/modules/zarafaServer.inc:203 ../lib/modules/zarafaServer.inc:355 +msgid "SSL port" +msgstr "SSL порт" + +#: ../templates/lists/changePassword.php:402 +#: ../templates/lists/changePassword.php:433 +msgid "Samba" +msgstr "Samba" + +#: ../lib/types/user.inc:276 ../lib/types/user.inc:372 +#: ../lib/types/user.inc:404 ../lib/types/user.inc:829 +#: ../lib/modules/sambaSamAccount.inc:146 +#: ../lib/modules/sambaGroupMapping.inc:101 +msgid "Samba 3" +msgstr "Samba 3" + +#: ../lib/modules/sambaDomain.inc:210 ../lib/modules/sambaDomain.inc:211 +msgid "Samba 3 domain SID is invalid!" +msgstr "Неправильний SID домену Samba 3" + +#: ../lib/types/smbDomain.inc:62 +msgid "Samba 3 domain entries" +msgstr "Записи домену Samba 3" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:228 +msgid "Samba ID pool" +msgstr "Пул Samba ID" + +#: ../lib/modules/posixGroup.inc:413 ../lib/modules/posixGroup.inc:524 +#: ../lib/modules/posixGroup.inc:613 ../lib/modules/posixAccount.inc:131 +#: ../lib/modules/posixAccount.inc:215 ../lib/modules/posixAccount.inc:233 +#: ../lib/modules/posixAccount.inc:501 +msgid "Samba ID pool DN" +msgstr "DN пула Samba ID" + +#: ../lib/modules/sambaSamAccount.inc:329 +#: ../lib/modules/sambaSamAccount.inc:333 +#: ../lib/modules/sambaSamAccount.inc:477 +#: ../lib/modules/sambaSamAccount.inc:543 +msgid "Samba RID" +msgstr "Samba RID" + +#: ../lib/modules/sambaGroupMapping.inc:129 +#: ../lib/modules/sambaGroupMapping.inc:154 +msgid "Samba RID number" +msgstr "Номер Samba RID" + +#: ../lib/modules/sambaGroupMapping.inc:123 +msgid "Samba display name" +msgstr "Відображувана назва в Samba" + +#: ../lib/modules/sambaDomain.inc:58 +msgid "Samba domain" +msgstr "Домен Samba" + +#: ../lib/modules/sambaGroupMapping.inc:245 +msgid "Samba domain name" +msgstr "Назва домену Samba" + +#: ../lib/types/smbDomain.inc:53 +msgid "Samba domains" +msgstr "Домени Samba" + +#: ../lib/modules/sambaGroupMapping.inc:113 +#: ../lib/modules/sambaGroupMapping.inc:135 +#: ../lib/modules/sambaGroupMapping.inc:162 +#: ../lib/modules/sambaGroupMapping.inc:541 +msgid "Samba group type" +msgstr "Тип групи Samba" + +#: ../lib/modules/sambaSamAccount.inc:261 +msgid "Samba password" +msgstr "Пароль Samba" + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:226 +#: ../lib/modules/sambaSamAccount.inc:314 +#: ../lib/modules/sambaSamAccount.inc:317 +#: ../lib/modules/sambaSamAccount.inc:518 +#: ../lib/modules/sambaSamAccount.inc:604 +#: ../lib/modules/sambaSamAccount.inc:1240 +#: ../lib/modules/sambaSamAccount.inc:1766 +#: ../lib/modules/sambaSamAccount.inc:1904 +msgid "Samba workstations" +msgstr "Робочі станції Samba" + +#: ../lib/modules/sambaSamAccount.inc:1376 +msgid "Saturday" +msgstr "Субота" + +#: ../templates/config/confmodules.php:224 +#: ../templates/config/confmain.php:468 +#: ../templates/config/moduleSettings.php:238 +#: ../templates/config/conftypes.php:338 +#: ../templates/selfService/selfServiceMain.php:416 +#: ../templates/selfService/adminMain.php:745 +#: ../templates/pdfedit/pdfpage.php:636 +#: ../templates/profedit/profilepage.php:238 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1243 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1247 +#: ../lib/modules/inetOrgPerson.inc:2801 ../lib/modules/customFields.inc:3456 +#: ../lib/modules.inc:1206 +msgid "Save" +msgstr "Зберегти" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +msgid "Save a dump of this object" +msgstr "Зберегти дамп цього об’єкта" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1244 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Save a dump of this object and all of its children" +msgstr "Зберегти дамп цього об’єкта та всіх його нащадків" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:90 +msgid "Save as file" +msgstr "Зберегти як файл" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:172 +msgid "Save changes" +msgstr "Зберегти зміни" + +#: ../lib/tools/schemaBrowser.inc:44 +msgid "Schema browser" +msgstr "Оглядач схеми" + +#: ../templates/serverInfo.php:119 +msgid "Schema suffix" +msgstr "Суфікс схеми" + +#: ../templates/tests/schemaTest.php:55 ../templates/tests/index.php:58 +#: ../lib/tools/tests.inc:116 +msgid "Schema test" +msgstr "Перевірка схеми" + +#: ../lib/modules/eduPerson.inc:92 ../lib/modules/eduPerson.inc:96 +#: ../lib/modules/eduPerson.inc:175 ../lib/modules/eduPerson.inc:233 +#: ../lib/modules/eduPerson.inc:285 ../lib/modules/eduPerson.inc:582 +msgid "Scoped affiliations" +msgstr "Сфера приналежності" + +#: ../help/help.inc:101 +msgid "Script path" +msgstr "Шлях до скрипта" + +#: ../templates/config/confmain.php:573 +msgid "Script path is invalid!" +msgstr "Шлях до скрипта неправильний!" + +#: ../templates/config/confmain.php:592 +msgid "Script rights are invalid!" +msgstr "Некоректні права на скрипт!" + +#: ../templates/config/confmain.php:576 +msgid "Script server is invalid!" +msgstr "Сервер скрипта неправильний!" + +#: ../help/help.inc:114 +msgid "Script servers" +msgstr "Сервера скрипта" + +#: ../templates/serverInfo.php:300 ../templates/serverInfo.php:380 +#: ../templates/3rdParty/pla/lib/QueryRender.php:75 +#: ../templates/3rdParty/pla/lib/QueryRender.php:180 +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:619 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:235 +msgid "Search" +msgstr "Пошук" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +#: ../templates/3rdParty/pla/lib/QueryRender.php:190 +msgid "Search Results" +msgstr "Результати пошуку" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +#: ../templates/3rdParty/pla/lib/export_functions.php:201 +#: ../templates/3rdParty/pla/htdocs/export_form.php:81 +msgid "Search filter" +msgstr "Фільтр пошуку" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:293 +msgid "Search returned no results" +msgstr "Нічого не знайдено" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +#: ../templates/3rdParty/pla/lib/export_functions.php:200 +#: ../templates/3rdParty/pla/htdocs/export_form.php:67 +msgid "Search scope" +msgstr "Область пошуку" + +#: ../lib/modules/asteriskExtension.inc:457 +msgid "Search tree suffix for users" +msgstr "Суфікс користуачів для пошуку в дереві" + +#: ../templates/pdfedit/pdfpage.php:608 +msgid "Section" +msgstr "Секція" + +#: ../lib/modules/windowsGroup.inc:60 +msgid "Security" +msgstr "Безпека" + +#: ../templates/3rdParty/pla/lib/Template.php:397 +#: ../templates/3rdParty/pla/lib/Template.php:422 +#: ../templates/3rdParty/pla/lib/Template.php:427 +#: ../templates/3rdParty/pla/lib/Template.php:484 +#: ../templates/3rdParty/pla/lib/Template.php:509 +#: ../templates/3rdParty/pla/lib/Template.php:514 +msgid "Security error: The file being uploaded may be malicious." +msgstr "Помилка безпеки. Завантажуваний файл може бути небезпечним." + +#: ../lib/modules/zarafaGroup.inc:81 ../lib/modules/zarafaGroup.inc:178 +#: ../lib/modules/zarafaGroup.inc:203 ../lib/modules/zarafaGroup.inc:285 +#: ../lib/modules/zarafaGroup.inc:655 +msgid "Security group" +msgstr "Група безпеки" + +#: ../lib/modules/windowsGroup.inc:139 +msgid "" +"Security groups are used for permission management and distribution groups " +"as email lists." +msgstr "" +"Групи безпеки використовуються для керування та розподілення дозволів груп " +"як списків розсилання." + +#: ../lib/modules/passwordSelfReset.inc:80 +#: ../lib/modules/passwordSelfReset.inc:205 +#: ../lib/modules/passwordSelfReset.inc:527 +msgid "Security questions" +msgstr "Секретні питання" + +#: ../templates/config/mainmanage.php:295 ../templates/config/confmain.php:458 +msgid "Security settings" +msgstr "Налаштування безпеки" + +#: ../templates/help.php:94 +msgid "See also" +msgstr "Див. також" + +#: ../lib/account.inc:790 +msgid "See the manual for instructions to solve this problem." +msgstr "Дивіться інструкцію користувача для вирішення цієї проблеми." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:494 +msgid "Select a template for the creation process" +msgstr "Виберіть шаблон для створення" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:498 +msgid "Select a template to edit the entry" +msgstr "Виберіть шаблон для редагування цього запису" + +#: ../lib/lists.inc:354 ../lib/lists.inc:471 +msgid "Select all" +msgstr "Вибрати все" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:31 +msgid "Select an LDIF file" +msgstr "Виберіть LDIF файл" + +#: ../lib/modules/nisnetgroup.inc:240 ../lib/modules/nisnetgroup.inc:269 +msgid "Select host" +msgstr "Виберіть хост" + +#: ../lib/modules/customFields.inc:3126 +msgid "Select list" +msgstr "Виберіть список" + +#: ../lib/modules/nisMailAlias.inc:194 ../lib/modules/nisMailAlias.inc:215 +msgid "Select mail" +msgstr "Виберіть пошту" + +#: ../lib/modules/nisMailAliasUser.inc:101 +msgid "Select one or more alias entries from the list to add the recipient." +msgstr "" +"Виберіть один або кілька записів псевдонімів зі списку, щоб додати " +"одержувача." + +#: ../lib/modules/nisnetgroup.inc:246 ../lib/modules/nisnetgroup.inc:275 +#: ../lib/modules/nisMailAlias.inc:195 ../lib/modules/nisMailAlias.inc:216 +msgid "Select user" +msgstr "Виберіть користувача" + +#: ../lib/modules/posixAccount.inc:1567 ../lib/modules/posixAccount.inc:1600 +#: ../lib/modules/windowsUser.inc:1030 ../lib/modules/nisnetgroup.inc:384 +#: ../lib/modules/groupOfNamesUser.inc:131 +msgid "Selected groups" +msgstr "Виберіть групи" + +#: ../templates/masscreate.php:159 ../templates/config/confmodules.php:299 +msgid "Selected modules" +msgstr "Вибрані модулі" + +#: ../lib/modules/organizationalRoleUser.inc:116 +msgid "Selected roles" +msgstr "Вибрані ролі" + +#: ../lib/modules/posixGroup.inc:295 ../lib/modules/asteriskExtension.inc:461 +msgid "Selected users" +msgstr "Вибрані користувачі" + +#: ../templates/selfService/adminMain.php:336 +msgid "Self service configuration" +msgstr "Конфігурація сервісу самообслуговування" + +#: ../templates/selfService/adminMain.php:389 +msgid "Self service configuration editor" +msgstr "Редактор конфігурації сервісу самообслуговування." + +#: ../templates/selfService/adminMain.php:395 +msgid "Self service login" +msgstr "Вхід до сервісу самообслуговування" + +#: ../lib/modules/passwordSelfReset.inc:504 +msgid "Self service login attribute" +msgstr "Атрибут, що використовується для входу в сервіс самообслуговування" + +#: ../templates/selfService/adminMain.php:381 +msgid "Self service profile" +msgstr "Профіль сервісу самообслуговування" + +#: ../lib/modules/passwordSelfReset.inc:130 +#: ../lib/modules/passwordSelfReset.inc:531 +msgid "Send confirmation mail" +msgstr "Надіслати листа з підтвердженням" + +#: ../lib/modules/passwordSelfReset.inc:112 +#: ../lib/modules/passwordSelfReset.inc:551 +msgid "Send notification mail" +msgstr "Надіслати листа з повідомленням" + +#: ../lib/modules/inetOrgPerson.inc:456 ../lib/modules/inetOrgPerson.inc:729 +msgid "Send password via mail" +msgstr "Надіслати пароль поштою" + +#: ../templates/lists/changePassword.php:319 +#: ../templates/lists/changePassword.php:364 ../lib/modules.inc:1066 +#: ../help/help.inc:208 +msgid "Send via mail" +msgstr "Надіслати поштою" + +#: ../lib/modules/qmailGroup.inc:90 ../lib/modules/qmailGroup.inc:220 +#: ../lib/modules/qmailGroup.inc:224 ../lib/modules/qmailGroup.inc:353 +#: ../lib/modules/qmailGroup.inc:408 ../lib/modules/qmailGroup.inc:429 +#: ../lib/modules/qmailGroup.inc:519 ../lib/modules/qmailGroup.inc:1068 +msgid "Sender email addresses" +msgstr "Адреса ел.пошти відправника" + +#: ../lib/modules/qmailGroup.inc:88 ../lib/modules/qmailGroup.inc:172 +#: ../lib/modules/qmailGroup.inc:176 ../lib/modules/qmailGroup.inc:295 +#: ../lib/modules/qmailGroup.inc:387 ../lib/modules/qmailGroup.inc:521 +#: ../lib/modules/qmailGroup.inc:790 ../lib/modules/qmailGroup.inc:1067 +msgid "Sender entries" +msgstr "Записи відправника" + +#: ../lib/modules/qmailGroup.inc:92 ../lib/modules/qmailGroup.inc:188 +#: ../lib/modules/qmailGroup.inc:192 ../lib/modules/qmailGroup.inc:311 +#: ../lib/modules/qmailGroup.inc:393 ../lib/modules/qmailGroup.inc:520 +#: ../lib/modules/qmailGroup.inc:1069 +msgid "Sender filter" +msgstr "Фільтр відправника" + +#: ../lib/modules/passwordSelfReset.inc:113 +msgid "Sends a mail to the user to inform him about the password change." +msgstr "Надсилає листа користувачу для повідомлення його про зміну пароля." + +#: ../lib/modules/passwordSelfReset.inc:131 +msgid "" +"Sends a mail to the user to validate his email address before the password " +"change." +msgstr "" +"Надсилає листа користувачу для перевірки його адреси ел.пошти перед зміною " +"пароля." + +#: ../lib/modules/inetOrgPerson.inc:730 ../help/help.inc:209 +msgid "" +"Sends the password to the user via mail. Please edit your LAM server profile " +"to setup the mail settings." +msgstr "" +"Надсилає пароль поштою. Будь ласка, зміність профіль вашого LAM сервера та " +"вкажіть налаштування пошти. " + +#: ../templates/config/mainmanage.php:358 ../lib/modules/device.inc:65 +#: ../lib/modules/device.inc:97 ../lib/modules/device.inc:127 +#: ../lib/modules/device.inc:175 ../lib/modules/device.inc:420 +#: ../lib/modules/bindDLZ.inc:220 ../lib/modules/bindDLZ.inc:350 +#: ../lib/modules/bindDLZ.inc:416 ../lib/modules/bindDLZ.inc:520 +#: ../lib/modules/bindDLZ.inc:1048 ../lib/modules/bindDLZ.inc:1541 +msgid "Serial number" +msgstr "Серійний номер" + +#: ../templates/tests/lamdaemonTest.php:72 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:166 +#: ../templates/3rdParty/pla/htdocs/import.php:47 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:110 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +#: ../templates/3rdParty/pla/htdocs/export_form.php:56 +#: ../lib/modules/kolabGroup.inc:289 ../lib/modules/bindDLZ.inc:164 +#: ../lib/modules/bindDLZ.inc:168 ../lib/modules/bindDLZ.inc:397 +#: ../lib/modules/bindDLZ.inc:507 ../lib/modules/bindDLZ.inc:1366 +#: ../lib/modules/bindDLZ.inc:1602 ../lib/modules/kolabSharedFolder.inc:429 +msgid "Server" +msgstr "Сервер" + +#: ../templates/config/confmain.php:238 +#: ../templates/selfService/adminMain.php:446 ../lib/modules/qmailUser.inc:118 +#: ../lib/modules/qmailUser.inc:163 ../lib/modules/qmailUser.inc:243 +#: ../lib/modules/qmailUser.inc:358 ../lib/modules/qmailUser.inc:427 +#: ../lib/modules/qmailUser.inc:592 ../lib/modules/qmailUser.inc:1148 +#: ../lib/modules/imapAccess.inc:77 ../lib/modules/imapAccess.inc:117 +#: ../help/help.inc:58 +msgid "Server address" +msgstr "Адреса сервера" + +#: ../templates/config/confmain.php:501 +#: ../templates/selfService/adminMain.php:217 +msgid "Server address is invalid!" +msgstr "Неправильна адреса сервера!" + +#: ../templates/serverInfo.php:103 ../lib/tools/serverInfo.inc:44 +msgid "Server information" +msgstr "Інформація про сервер" + +#: ../templates/config/confmain.php:310 +msgid "Server list" +msgstr "Список серверів" + +#: ../templates/login.php:468 ../templates/config/confmodules.php:137 +#: ../templates/config/confmain.php:167 +#: ../templates/config/moduleSettings.php:136 +#: ../templates/config/conftypes.php:155 ../lib/modules/imapAccess.inc:130 +msgid "Server profile" +msgstr "Профіль сервера" + +#: ../templates/config/confmain.php:280 +#: ../templates/selfService/adminMain.php:491 +msgid "Server settings" +msgstr "Налаштування сервера" + +#: ../templates/serverInfo.php:180 +msgid "Server statistics" +msgstr "Статистика сервера" + +#: ../templates/serverInfo.php:205 ../templates/serverInfo.php:211 +msgid "Server time" +msgstr "Час сервера" + +#: ../lib/modules/zarafaServer.inc:145 +msgid "Servers" +msgstr "Сервери" + +#: ../lib/modules/authorizedServiceObject.inc:82 +msgid "Service name (e.g. sshd, imap, ftp). Enter one service per entry." +msgstr "Назва сервісу (наприклад, sshd, imap, ftp). Один сервіс на запис." + +#: ../lib/modules/bindDLZ.inc:1340 +msgid "Services (\"SRV\" records)" +msgstr "Сервіси (\"SRV\" записи)" + +#: ../templates/config/mainmanage.php:298 ../help/help.inc:146 +msgid "Session timeout" +msgstr "Тайм-аут сесії" + +#: ../lib/modules/aliasEntry.inc:108 +msgid "Set" +msgstr "Встановити" + +#: ../lib/modules/sambaSamAccount.inc:1467 +#: ../lib/modules/sambaSamAccount.inc:1470 +#: ../lib/modules/sambaSamAccount.inc:1473 +#: ../lib/modules/shadowAccount.inc:464 ../lib/modules/shadowAccount.inc:467 +#: ../lib/modules/shadowAccount.inc:470 +msgid "Set also for Kerberos" +msgstr "Також вставновити для Kerberos" + +#: ../lib/modules/mitKerberos.inc:682 ../lib/modules/shadowAccount.inc:461 +#: ../lib/modules/heimdalKerberos.inc:592 +msgid "Set also for Samba 3" +msgstr "Також вставновити для Samba 3" + +#: ../lib/modules/mitKerberos.inc:679 ../lib/modules/sambaSamAccount.inc:1464 +#: ../lib/modules/heimdalKerberos.inc:589 +msgid "Set also for Shadow" +msgstr "Також вставновити для Shadow" + +#: ../lib/modules.inc:1219 ../lib/modules.inc:1221 +msgid "Set password" +msgstr "Встановити пароль" + +#: ../lib/modules/posixAccount.inc:269 ../lib/modules/posixAccount.inc:445 +msgid "Set primary group as memberUid" +msgstr "Встановити основну групу як memberUid" + +#: ../templates/config/profmanage.php:280 +#: ../templates/config/profmanage.php:291 +#: ../templates/config/profmanage.php:292 ../help/help.inc:136 +msgid "Set profile password" +msgstr "Встановити пароль профіля" + +#: ../lib/modules.inc:1222 +msgid "Set random password" +msgstr "Встановити випадковий пароль" + +#: ../templates/lists/changePassword.php:347 +msgid "Set specific password" +msgstr "Встановити вибраний пароль" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +msgid "Set the search results to 0 to retrieve all available records." +msgstr "Вкажіть 0 в результатах пошуку, щоб отримати всі можливі записи." + +#: ../templates/selfService/adminMain.php:593 +msgid "Set this field read-only." +msgstr "Зробити це поле тільки для читання" + +#: ../lib/modules/groupOfNames.inc:110 +msgid "" +"Set this only if your LDAP schema allows that groups may not have any " +"members (e.g. if you use OpenDJ)." +msgstr "" +"Включайте це тільки, якщо ваша схема LDAP дозволяє мати групи без учасників " +"(наприклад, якщо ви використовуєте OpenDJ)" + +#: ../lib/modules/nisMailAliasUser.inc:77 +#: ../lib/modules/nisMailAliasUser.inc:81 +msgid "Sets the alias names linked to the current user name." +msgstr "Встановлює псевдоніми, пов'язані з поточним іменем користувача." + +#: ../lib/modules/nisMailAliasUser.inc:85 +#: ../lib/modules/nisMailAliasUser.inc:89 +msgid "Sets the alias names linked to the user's email address." +msgstr "Встановлює псевдоніми, пов'язані з поточною ел.поштою користувача." + +#: ../lib/modules/bindDLZ.inc:217 +msgid "" +"Sets the default timeout (in seconds) for entries without explicit timeout " +"value." +msgstr "" +"Встановлює типовий тайм-аут (в секундах) для записів без явного значення " +"тайм-ауту." + +#: ../lib/modules/qmailUser.inc:216 +msgid "Sets the delivery mode (e.g. disable mail forwarding)." +msgstr "Встановлює режим відправки (наприклад, заборонити пересилання пошти)." + +#: ../lib/modules/posixGroup.inc:497 +msgid "Sets the group password." +msgstr "Встановлення пароля групи." + +#: ../lib/modules/bindDLZ.inc:197 ../lib/modules/bindDLZ.inc:201 +msgid "" +"Sets the preference for the mail server. Lower values have higher priority." +msgstr "" +"Встановлює уподобання для поштового серверу. Більш низькі значення мають " +"вищий пріоритет." + +#: ../help/help.inc:183 +msgid "Sets this account type to read-only." +msgstr "Зробити цей тип акаунта тільки для читання." + +#: ../lib/modules/shadowAccount.inc:91 +msgid "Shadow" +msgstr "Shadow" + +#: ../lib/modules/sambaSamAccount.inc:242 +#: ../lib/modules/sambaSamAccount.inc:381 +#: ../lib/modules/sambaSamAccount.inc:1544 +#: ../lib/modules/sambaSamAccount.inc:1954 +msgid "Shadowing" +msgstr "Shadowing" + +#: ../lib/types/kolabSharedFolderType.inc:141 +#, php-format +msgid "Shared folder count: %s" +msgstr "Кількість загальних каталогів: %s" + +#: ../lib/modules/kolabSharedFolder.inc:57 +msgid "Shared mail folder" +msgstr "Загальний поштовий каталог" + +#: ../lib/modules/zarafaUser.inc:112 ../lib/modules/zarafaUser.inc:265 +#: ../lib/modules/zarafaUser.inc:358 ../lib/modules/zarafaUser.inc:585 +#: ../lib/modules/zarafaUser.inc:1268 ../lib/modules/zarafaUser.inc:1795 +msgid "Shared store only" +msgstr "Тільки відкриті сховища" + +#: ../lib/modules/ddns.inc:82 +msgid "Should DDNS (Dynamic DNS) be activated?" +msgstr "Потрібно активувати DDNS (Dynamic DNS)?" + +#: ../lib/modules/ddns.inc:86 +msgid "Should fix IP addresses be added to the DNS server?" +msgstr "Потрібно додати фіксовані IP адреси в DNS?" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1121 +msgid "Show" +msgstr "Показати" + +#: ../templates/massBuildAccounts.php:243 +msgid "Show LDIF file" +msgstr "Показати LDIF файл" + +#: ../lib/types/user.inc:683 +msgid "Show account status" +msgstr "Показати статус акаунта" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +#: ../templates/3rdParty/pla/htdocs/export_form.php:84 +msgid "Show attributes" +msgstr "Показати атрибути" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1122 +msgid "Show internal attributes" +msgstr "Показати службові акаунти" + +#: ../lib/modules/asteriskExtension.inc:453 +msgid "Show only Asterisk accounts" +msgstr "Показати тільки акаунти Asterisk" + +#: ../lib/types/group.inc:423 +msgid "Show primary group members as normal group members" +msgstr "Показати головних членів групи, як звичайних учасників" + +#: ../templates/schema/schema.php:194 +msgid "Single valued" +msgstr "Одне значення" + +#: ../lib/modules/pykotaUser.inc:652 ../lib/modules/pykotaUser.inc:1001 +msgid "Size" +msgstr "Розмір" + +#: ../lib/modules/qmailUser.inc:228 +msgid "Size limit in bytes for a single mail. Larger mails will be bounced." +msgstr "Максимальний розмір листа. Листи більшого розміру будуть відхилятися." + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Skip" +msgstr "Пропустити" + +#: ../lib/modules/quota.inc:634 ../lib/modules/systemQuotas.inc:383 +msgid "Soft block" +msgstr "Soft block" + +#: ../lib/modules/quota.inc:113 ../lib/modules/quota.inc:401 +#: ../lib/modules/quota.inc:507 ../lib/modules/systemQuotas.inc:124 +msgid "Soft block limit" +msgstr "М’який ліміт на використання місця" + +#: ../lib/modules/quota.inc:114 +msgid "Soft block limit." +msgstr "М’який ліміт на використання місця." + +#: ../lib/modules/quota.inc:636 ../lib/modules/systemQuotas.inc:385 +msgid "Soft inode" +msgstr "Soft inode" + +#: ../lib/modules/quota.inc:136 +msgid "Soft inode (files) limit." +msgstr "М’який ліміт на кількість файлів (inode)/" + +#: ../lib/modules/quota.inc:135 ../lib/modules/quota.inc:405 +#: ../lib/modules/quota.inc:509 ../lib/modules/systemQuotas.inc:128 +msgid "Soft inode limit" +msgstr "М’який ліміт кількості inodes" + +#: ../lib/modules/imapAccess.inc:98 +msgid "" +"Some IMAP servers store mailboxes with a prefix (e.g. \"user\" for Cyrus " +"which results in \"user.username\")." +msgstr "" +"Деякі IMAP сервера зберігають поштові скриньки з префіксами (наприклад, " +"\"user\" для Cyrus - виходить \"user.username\")." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1019 +#, php-format +msgid "Some attributes (%s) were modified and are highlighted below." +msgstr "Деякі атрибути (%s) було змінено та виділено далі." + +#: ../lib/modules.inc:876 +msgid "Some required information is missing" +msgstr "Відсутня частина необхідної інформації" + +#: ../templates/help.php:123 +#, php-format +msgid "" +"Sorry this help id ({bold}%s{endbold}) is not available for this module " +"({bold}%s{endbold})." +msgstr "" +"Перепрошуємо, але цей код допомоги ({bold}%s{endbold}) не доступний для " +"цього модуля ({bold}%s{endbold})." + +#: ../templates/help.php:136 +#, php-format +msgid "Sorry this help number ({bold}%s{endbold}) is not available." +msgstr "Перепрошуємо, але цей номер допомоги ({bold}%s{endbold}) не доступний." + +#: ../lib/modules/sambaSamAccount.inc:326 +#: ../lib/modules/sambaSamAccount.inc:1277 +msgid "Special user" +msgstr "Спеціальний користувач" + +#: ../lib/modules/zarafaDynamicGroup.inc:92 +#: ../lib/modules/zarafaAddressList.inc:80 +msgid "" +"Specifies a filter that matches the members (e.g. \"(mail=*@zarafa.nl)\")." +msgstr "" +"Задає фільтр, якому повинні відповідати учасники (наприклад, (mail=*@zarafa." +"nl))." + +#: ../lib/modules/groupOfNames.inc:119 +msgid "Specifies how members and owners are displayed." +msgstr "Визначає як члени та власники показуються." + +#: ../lib/modules/organizationalRole.inc:107 +msgid "Specifies how members are displayed." +msgstr "Визначає як учасники показуються." + +#: ../help/help.inc:86 +msgid "" +"Specifies if LAM should automatically follow referrals. Activate if you use " +"referrals in your LDAP directory." +msgstr "" +"Визначає, чи повинен LAM автоматично переходити за посиланнями. Активуйте у " +"разі, якщо ви використовуєте перенаправлення у вашому LDAP каталозі." + +#: ../help/help.inc:260 +msgid "" +"Specifies if password mails may be sent to mail addresses other than the " +"user's LDAP mail address." +msgstr "" +"Визначає електронні адреси, на які може бути надісланий пароль, які можуть " +"бути інакшими ніж адреси LDAP користувача." + +#: ../help/help.inc:256 +msgid "Specifies if the mail should be sent as text or HTML." +msgstr "Вказує, чи повинна пошта надсилатися як текст чи як HTML." + +#: ../help/help.inc:167 +msgid "" +"Specifies if the password must not contain 3 or more characters of the user/" +"first/last name." +msgstr "" +"Вказує, якщо пароль не повинен містити 3 або більше символів з логіну, імені " +"або прізвища користувача." + +#: ../help/help.inc:165 +msgid "Specifies if the password must not contain the user name." +msgstr "Вказує, що пароль не повинен містити псевдоім’я (логін) користувача." + +#: ../lib/modules/asteriskAccount.inc:224 +msgid "Specifies if the user can call forward." +msgstr "Вказує, чи може користувач робити переадресацію дзвінка." + +#: ../lib/modules/zarafaGroup.inc:82 +msgid "Specifies if this group has security possibilities." +msgstr "Вказує, чи має ця група можливість безпеки." + +#: ../lib/modules/zarafaServer.inc:81 +msgid "" +"Specifies if this server contains the public store. This may be changed only " +"for new entries." +msgstr "" +"Вказує, чи містить цей сервіс публічне сховище. Це може бути змінено тільки " +"для нових записів." + +#: ../lib/modules/dhcp_settings.inc:202 +msgid "Specifies if unknown clients are allowed." +msgstr "Вказує, чи дозволені невідомі клієнти." + +#: ../lib/modules/ppolicy.inc:133 +msgid "Specifies if users are allowed to change their own passwords or not." +msgstr "Визначає, чи дозволено користувачам змінювати свої паролі чи ні." + +#: ../lib/modules/zarafaDynamicGroup.inc:88 +#: ../lib/modules/zarafaAddressList.inc:76 +msgid "" +"Specifies the LDAP base where to search for members (e.g. \"ou=zarafa," +"dc=company,dc=com\")." +msgstr "" +"Вказує базу LDAP для пошуку учасників (наприклад, \"ou=zarafa,dc=company," +"dc=com\")." + +#: ../lib/modules/customFields.inc:161 +msgid "Specifies the allowed file extension. This is checked at upload time." +msgstr "" +"Вказує допустиме розширення файлу. Це перевіряється під час завантаження " +"файлу." + +#: ../lib/modules/zarafaContact.inc:96 ../lib/modules/zarafaGroup.inc:98 +#: ../lib/modules/zarafaUser.inc:145 +msgid "" +"Specifies the attribute that should be used to reference the entries. If you " +"would like to reference also groups then this must be set to \"dn\"." +msgstr "" +"Визначає атрибут, який потрібно використати для посилання на посилань на " +"записи. Якщо ви також хочете посилатися на групи, тоді тут повинно бути \"dn" +"\"." + +#: ../lib/modules/zarafaUser.inc:121 +msgid "Specifies the capacity of this resource." +msgstr "Задає ємність цього ресурсу." + +#: ../lib/modules/kolabSharedFolder.inc:163 +msgid "Specifies the folder type (e.g. shared mail folder)." +msgstr "Визначає тип каталогу (наприклад, загальний поштовий каталог)." + +#: ../lib/modules/customFields.inc:157 +msgid "Specifies the maximum allowed file size in bytes." +msgstr "Вказує максимально можливий розмір файлу в байтах." + +#: ../lib/modules/mitKerberos.inc:137 ../lib/modules/heimdalKerberos.inc:111 +msgid "Specifies the maximum lifetime of a ticket in days." +msgstr "Вказує максимальний час життя квитка в днях." + +#: ../lib/modules/ppolicy.inc:117 +msgid "" +"Specifies the maximum number of seconds before a password is due to expire " +"that expiration warning messages will be returned to a user." +msgstr "" +"Визначає, за яку максимальну кількість секунд до закінчення терміну дії " +"паролю користувачу почнуть показуватися попередження." + +#: ../lib/modules/freeRadius.inc:109 +msgid "" +"Specifies the maximum number of seconds that a connection can be idle before " +"the session is terminated." +msgstr "Вказує максимальну кількість секунд тайм-ауту сесії перед розривом." + +#: ../lib/modules/mitKerberos.inc:133 ../lib/modules/heimdalKerberos.inc:115 +msgid "Specifies the maximum renewable lifetime of a ticket in days." +msgstr "Вказує максимально оновлюваний час життя квитка в днях. " + +#: ../lib/modules/ppolicy.inc:121 +msgid "" +"Specifies the minimum number of characters that will be accepted in a " +"password." +msgstr "Вказує мінімальну кількість символів для пароля користувача." + +#: ../help/help.inc:163 +msgid "Specifies the number of above password rules that must be fulfilled." +msgstr "" +"Визначає кількість вищевказаних правил паролів, які повинні бути виконані." + +#: ../lib/modules/ppolicy.inc:109 +msgid "" +"Specifies the number of consecutive failed login attempts after which the " +"password may not be used to login." +msgstr "" +"Вказує максимальну кількість послідовних невдалих спроб вводу пароля, після " +"якого пароль стає недійсним для входу в систему." + +#: ../lib/modules/ppolicy.inc:93 +msgid "" +"Specifies the number of previously used passwords which should be saved in " +"the password history. New passwords can only be set if they are not in the " +"password history." +msgstr "" +"Вказує кількість паролів, які використовувалися раніше, і які потрібно " +"зберігати в історії паролів. Новий пароль може бути використано тільки, якщо " +"його не має в історії паролів." + +#: ../lib/modules/ppolicy.inc:113 +msgid "" +"Specifies the number of seconds after which old consecutive failed login " +"attempts are purged from the failure counter, even though no successful " +"authentication has occurred." +msgstr "" +"Вказує кількість секун, після яких скидається лічильник невдалих послідовних " +"спроб входу в систему, навіть якщо не вдалося аутентифікуватися." + +#: ../lib/modules/ppolicy.inc:105 +msgid "" +"Specifies the number of seconds during which the password cannot be used to " +"login due to too many consecutive failed bind attempts." +msgstr "" +"Визначає кількість секунд, протягом яких пароль не може використовуватися " +"для входу через велику кількість невдалих послідовних спроб зв’язку." + +#: ../lib/modules/eduPerson.inc:93 ../lib/modules/eduPerson.inc:97 +msgid "" +"Specifies the person's affiliation within a particular security domain in " +"broad categories such as student, faculty, staff, alum, etc." +msgstr "" +"Визначає приналежність персони в межах конкретного security domain до таких " +"категорій як student, faculty, staff, alum, тощо." + +#: ../lib/modules/eduPerson.inc:89 +msgid "" +"Specifies the person's primary relationship to the institution in broad " +"categories such as student, faculty, staff, alum, etc." +msgstr "" +"Визначає основну приналежність персони в межах закладу до таких категорій як " +"student, faculty, staff, alum, тощо." + +#: ../lib/modules/eduPerson.inc:106 ../lib/modules/eduPerson.inc:110 +msgid "" +"Specifies the person's relationships to the institution in broad categories " +"such as student, faculty, staff, alum, etc." +msgstr "" +"Визначає відношення персони до закладу в широкому сенсі: наприклад, student, " +"faculty, staff, alum, тощо." + +#: ../lib/modules/bindDLZ.inc:173 ../lib/modules/bindDLZ.inc:177 +msgid "" +"Specifies the priority of this entry (lower value means more preferred)." +msgstr "" +"Визначає пріоритет цього запису (менше значення означає більший пріоритет)." + +#: ../lib/modules/pykotaGroup.inc:126 ../lib/modules/pykotaUser.inc:129 +msgid "" +"Specifies the type of limit for printing if any. Please note that in " +"contrast to \"Free printing\" the option \"No quota\" includes accounting." +msgstr "" +"Визначає тип обмеження для друку, якшо такий є. Зверніть увагу, що на " +"відміну від \"Вільного друку\" варіант \"Без обмеження\" не включає облік." + +#: ../lib/modules/bindDLZ.inc:189 ../lib/modules/bindDLZ.inc:193 +msgid "Specifies the used port for this entry." +msgstr "Визначає використаний порт для цього запису." + +#: ../lib/modules/asteriskAccount.inc:176 +msgid "Specifies the user's pickup group." +msgstr "Визначає групу перехвату виклику користувача." + +#: ../lib/modules/bindDLZ.inc:181 ../lib/modules/bindDLZ.inc:185 +msgid "Specifies the weight of this entry (relative value)." +msgstr "Визначає вагу цього запису (відносна величина)." + +#: ../lib/modules/zarafaUser.inc:109 +msgid "" +"Specifies whether the user is an admin. System administrators may " +"additionally create, modify and delete companies." +msgstr "" +"Вказує, чи є користувач адміністратором. Системні адміністратори також " +"можуть створювати, змінювати та видаляти компанії." + +#: ../lib/modules/ppolicy.inc:137 +msgid "" +"Specifies whether the user's existing password must be sent along with their " +"new password when changing a password. Attention, LAM does not support " +"password changes which require the old password." +msgstr "" +"Визначає чи повинен при зміні пароля існуючий пароль користувача " +"надсилатися разом з новим паролем. Увага, LAM не підтримує зміну пароля, яка " +"потребує старий пароль." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1460 +msgid "Specify attributes and values" +msgstr "Визначає атрибути та значення" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +msgid "Standard LDAP search filter. Example: (&(sn=Smith)(givenName=David))" +msgstr "" +"Стандартний пошуковий фільтр LDAP. Наприклад, (&(sn=Smith)(givenName=David))" + +#: ../templates/serverInfo.php:193 ../templates/serverInfo.php:199 +msgid "Start time" +msgstr "Час початку" + +#: ../lib/modules/windowsUser.inc:168 ../lib/modules/windowsUser.inc:338 +#: ../lib/modules/windowsUser.inc:512 ../lib/modules/windowsUser.inc:545 +#: ../lib/modules/windowsUser.inc:712 ../lib/modules/windowsUser.inc:1600 +#: ../lib/modules/windowsUser.inc:1733 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:190 ../lib/modules/inetOrgPerson.inc:515 +#: ../lib/modules/inetOrgPerson.inc:557 ../lib/modules/inetOrgPerson.inc:780 +#: ../lib/modules/inetOrgPerson.inc:784 ../lib/modules/inetOrgPerson.inc:1261 +#: ../lib/modules/inetOrgPerson.inc:1264 ../lib/modules/inetOrgPerson.inc:1910 +#: ../lib/modules/inetOrgPerson.inc:2599 ../lib/modules/inetOrgPerson.inc:3519 +#: ../lib/modules/inetOrgPerson.inc:3579 +msgid "State" +msgstr "Область" + +#: ../templates/pdfedit/pdfpage.php:538 ../templates/pdfedit/pdfpage.php:540 +msgid "Static text" +msgstr "Текст" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1455 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1467 +#, php-format +msgid "Step %s of %s" +msgstr "Крок %s з %s" + +#: ../lib/modules/windowsUser.inc:280 ../lib/modules/inetOrgPerson.inc:308 +msgid "Steve" +msgstr "Steve" + +#: ../lib/modules/sambaSamAccount.inc:421 ../lib/modules/posixAccount.inc:350 +#: ../lib/modules/windowsUser.inc:292 ../lib/modules/windowsUser.inc:298 +#: ../lib/modules/pykotaUser.inc:201 ../lib/modules/inetOrgPerson.inc:2037 +#: ../lib/modules/asteriskVoicemail.inc:174 +msgid "Steve Miller" +msgstr "Steve Miller" + +#: ../lib/modules/posixAccount.inc:358 +msgid "Steve Miller,Room 2.14,123-123-1234,123-123-1234" +msgstr "Steve Miller,Room 2.14,123-123-1234,123-123-1234" + +#: ../lib/modules/eduPerson.inc:190 +msgid "Steve, Stevo" +msgstr "Steve, Stevo" + +#: ../lib/modules/imapAccess.inc:91 +msgid "" +"Storing the password in your server profile is also possible but not " +"recommended." +msgstr "" +"Зберігання пароль у вашому профілі сервера також можливо, але " +"нерекомендується." + +#: ../lib/modules/windowsUser.inc:172 ../lib/modules/windowsUser.inc:314 +#: ../lib/modules/windowsUser.inc:513 ../lib/modules/windowsUser.inc:544 +#: ../lib/modules/windowsUser.inc:708 ../lib/modules/windowsUser.inc:1601 +#: ../lib/modules/windowsUser.inc:1732 ../lib/modules/inetOrgPerson.inc:81 +#: ../lib/modules/inetOrgPerson.inc:158 ../lib/modules/inetOrgPerson.inc:178 +#: ../lib/modules/inetOrgPerson.inc:377 ../lib/modules/inetOrgPerson.inc:545 +#: ../lib/modules/inetOrgPerson.inc:664 ../lib/modules/inetOrgPerson.inc:668 +#: ../lib/modules/inetOrgPerson.inc:1225 ../lib/modules/inetOrgPerson.inc:1228 +#: ../lib/modules/inetOrgPerson.inc:1895 ../lib/modules/inetOrgPerson.inc:2522 +#: ../lib/modules/inetOrgPerson.inc:3511 ../lib/modules/inetOrgPerson.inc:3576 +msgid "Street" +msgstr "Вулиця" + +#: ../templates/pdfedit/pdfpage.php:449 ../templates/pdfedit/pdfmain.php:353 +msgid "Structure name" +msgstr "Назва структури" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:136 +#: ../templates/3rdParty/pla/htdocs/export_form.php:33 +msgid "Sub (entire subtree)" +msgstr "Підлеглі (все піддерево)" + +#: ../lib/types/netgroup.inc:93 ../lib/modules/nisnetgroup.inc:91 +#: ../lib/modules/nisnetgroup.inc:126 ../lib/modules/nisnetgroup.inc:141 +#: ../lib/modules/nisnetgroup.inc:209 ../lib/modules/nisnetgroup.inc:383 +#: ../lib/modules/nisnetgroup.inc:581 +msgid "Subgroups" +msgstr "Підгрупи" + +#: ../templates/config/confmain.php:349 ../lib/modules/selfRegistration.inc:94 +#: ../lib/modules/selfRegistration.inc:231 +#: ../lib/modules/passwordSelfReset.inc:120 +#: ../lib/modules/passwordSelfReset.inc:539 +#: ../lib/modules/passwordSelfReset.inc:559 ../help/help.inc:248 +msgid "Subject" +msgstr "Тема" + +#: ../lib/types/dhcp.inc:94 ../lib/modules/dhcp_settings.inc:149 +#: ../lib/modules/dhcp_settings.inc:207 ../lib/modules/dhcp_settings.inc:222 +#: ../lib/modules/dhcp_settings.inc:242 ../lib/modules/dhcp_settings.inc:561 +#: ../lib/modules/dhcp_settings.inc:685 +msgid "Subnet" +msgstr "Підмережа" + +#: ../lib/modules/dhcp_settings.inc:189 ../lib/modules/dhcp_settings.inc:215 +#: ../lib/modules/dhcp_settings.inc:233 ../lib/modules/dhcp_settings.inc:300 +#: ../lib/modules/dhcp_settings.inc:606 ../lib/modules/dhcp_settings.inc:681 +msgid "Subnet mask" +msgstr "Маска підмережі" + +#: ../templates/schema/schema.php:176 +msgid "Substring Rule" +msgstr "Підправило" + +#: ../templates/3rdParty/pla/htdocs/import.php:63 +#: ../templates/3rdParty/pla/htdocs/copy.php:56 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:68 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:85 +msgid "Success" +msgstr "Вдало" + +#: ../templates/3rdParty/pla/htdocs/delete.php:32 +#, php-format +msgid "Successfully deleted DN %s" +msgstr "Успішно видалено DN %s" + +#: ../lib/modules/sudoRole.inc:48 +msgid "Sudo role" +msgstr "Роль sudo" + +#: ../lib/types/sudo.inc:159 +#, php-format +msgid "Sudo role count: %s" +msgstr "Кількість ролей sudo: %s" + +#: ../lib/types/sudo.inc:48 +msgid "Sudo role management" +msgstr "Керування ролями sudo" + +#: ../lib/types/sudo.inc:39 +msgid "Sudo roles" +msgstr "Ролі sudo" + +#: ../lib/modules/sudoRole.inc:139 +msgid "Sudo roles with higher order numbers are used if multiple roles match." +msgstr "" +"Ролі Sudo з номерами вищого порядку використовуються, якщо кілька ролей " +"збігаються." + +#: ../lib/modules/nisMailAliasUser.inc:92 +#: ../lib/modules/nisMailAliasUser.inc:362 ../lib/modules.inc:988 +msgid "Suffix" +msgstr "Суфікс" + +#: ../lib/modules/posixGroup.inc:416 ../lib/modules/posixGroup.inc:516 +msgid "Suffix for GID/group name check" +msgstr "Суфікс для перевірки GID/назви групи" + +#: ../lib/modules/posixAccount.inc:224 ../lib/modules/posixAccount.inc:242 +#: ../lib/modules/posixAccount.inc:489 +msgid "Suffix for UID/user name check" +msgstr "Суфікс для перевірки UID/псевдоімені користувача" + +#: ../lib/modules/selfRegistration.inc:102 +#: ../lib/modules/selfRegistration.inc:212 +msgid "Suffix for new users" +msgstr "Суфікс для нових користувачів" + +#: ../lib/modules/sambaSamAccount.inc:1376 +msgid "Sunday" +msgstr "Неділя" + +#: ../templates/selfService/adminMain.php:602 +msgid "Switch back to default label." +msgstr "Повернути до типової мітки." + +#: ../templates/3rdParty/pla/htdocs/compare.php:72 +msgid "Switch entries" +msgstr "Перемикнути записи" + +#: ../lib/modules/asteriskAccount.inc:96 +#: ../lib/modules/asteriskVoicemail.inc:84 +msgid "Sync Asterisk password with Unix password" +msgstr "Синхронізувати пароль Asterisk з паролем Unix" + +#: ../lib/modules/heimdalKerberos.inc:242 +msgid "Sync Heimdal Kerberos password with Unix password" +msgstr "Синхронізувати пароль Heimdal Kerberos з паролем Unix" + +#: ../lib/modules/mitKerberos.inc:277 +msgid "Sync MIT Kerberos password with Unix password" +msgstr "Синхронізувати пароль MIT Kerberos з паролем Unix" + +#: ../lib/modules/passwordSelfReset.inc:148 +#: ../lib/modules/passwordSelfReset.inc:529 +msgid "Sync Samba 3 password" +msgstr "Синхронізувати пароль Samba 3" + +#: ../lib/modules/sambaSamAccount.inc:248 +msgid "Sync Samba LM password with Unix password" +msgstr "Синхронізувати пароль Samba LM з паролем Unix" + +#: ../lib/modules/sambaSamAccount.inc:247 +msgid "Sync Samba NT password with Unix password" +msgstr "Синхронізувати пароль Samba NT з паролем Unix" + +#: ../lib/modules/customFields.inc:1111 +msgid "Sync fields with page layout" +msgstr "Синхронізувати поля з макетом сторінки" + +#: ../templates/schema/schema.php:181 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:142 +msgid "Syntax" +msgstr "Синтаксис" + +#: ../templates/schema/schema.php:89 +msgid "Syntax OID" +msgstr "Синтаксис OID" + +#: ../templates/schema/schema.php:73 ../templates/schema/schema.php:74 +msgid "Syntaxes" +msgstr "Синтаксиси" + +#: ../lib/modules/zarafaUser.inc:602 ../lib/modules/zarafaUser.inc:1259 +msgid "System administrator" +msgstr "Системний адміністратор" + +#: ../templates/config/mainmanage.php:412 +msgid "System logging" +msgstr "Запис до системного логу" + +#: ../help/help.inc:60 +msgid "TLS cannot be combined with ldaps://." +msgstr "TLS не може бути використана разом з ldaps://." + +#: ../lib/modules/bindDLZ.inc:118 ../lib/modules/bindDLZ.inc:370 +#: ../lib/modules/bindDLZ.inc:375 ../lib/modules/bindDLZ.inc:484 +msgid "TXT record" +msgstr "Запис TXT" + +#: ../lib/modules/bindDLZ.inc:425 ../lib/modules/bindDLZ.inc:435 +#: ../lib/modules/bindDLZ.inc:1569 +msgid "TXT records" +msgstr "Записи TXT" + +#: ../lib/modules/kolabSharedFolder.inc:158 +#: ../lib/modules/kolabSharedFolder.inc:194 +#: ../lib/modules/kolabSharedFolder.inc:240 +#: ../lib/modules/kolabSharedFolder.inc:262 +#: ../lib/modules/kolabSharedFolder.inc:292 +#: ../lib/modules/kolabSharedFolder.inc:560 +msgid "Target IMAP folder" +msgstr "Цільовий каталог IMAP" + +#: ../lib/modules/kolabUser.inc:245 +msgid "Target of invitation policy is invalid!" +msgstr "Ціль політики запрошення недійсна!" + +#: ../templates/pdfedit/pdfmain.php:317 +#: ../templates/profedit/profilemain.php:284 +msgid "Target server profile" +msgstr "Профіль цільового сервера" + +#: ../templates/help.php:89 ../lib/modules.inc:660 +msgid "Technical name" +msgstr "Технічна назва" + +#: ../templates/lists/changePassword.php:285 ../lib/types/user.inc:203 +#: ../lib/modules/windowsUser.inc:176 ../lib/modules/windowsUser.inc:362 +#: ../lib/modules/windowsUser.inc:514 ../lib/modules/windowsUser.inc:542 +#: ../lib/modules/windowsUser.inc:601 ../lib/modules/windowsUser.inc:718 +#: ../lib/modules/windowsUser.inc:1602 ../lib/modules/windowsUser.inc:1726 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:157 +#: ../lib/modules/inetOrgPerson.inc:205 ../lib/modules/inetOrgPerson.inc:417 +#: ../lib/modules/inetOrgPerson.inc:572 ../lib/modules/inetOrgPerson.inc:696 +#: ../lib/modules/inetOrgPerson.inc:700 ../lib/modules/inetOrgPerson.inc:1382 +#: ../lib/modules/inetOrgPerson.inc:1385 ../lib/modules/inetOrgPerson.inc:1900 +#: ../lib/modules/inetOrgPerson.inc:2478 ../lib/modules/inetOrgPerson.inc:3529 +#: ../lib/modules/inetOrgPerson.inc:3582 +msgid "Telephone number" +msgstr "Номер телефону" + +#: ../lib/modules/inetOrgPerson.inc:355 +msgid "Temp" +msgstr "Тимчасово" + +#: ../lib/modules/windowsUser.inc:310 ../lib/modules/pykotaUser.inc:228 +#: ../lib/modules/inetOrgPerson.inc:331 +msgid "Temp, contract till December" +msgstr "Тимчасово, контракт до Грудня" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +msgid "Template" +msgstr "Шаблон" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:520 +msgid "Templates" +msgstr "Шаблони" + +#: ../lib/modules/sambaSamAccount.inc:390 +#: ../lib/modules/sambaSamAccount.inc:608 +#: ../lib/modules/sambaSamAccount.inc:1289 +msgid "Terminal server options" +msgstr "Налаштування сервера терміналів" + +#: ../lib/tools/tests.inc:44 +msgid "Tests" +msgstr "Тести" + +#: ../templates/config/confmain.php:364 ../lib/modules/selfRegistration.inc:69 +#: ../lib/modules/selfRegistration.inc:238 ../lib/modules/bindDLZ.inc:156 +#: ../lib/modules/bindDLZ.inc:160 ../lib/modules/bindDLZ.inc:370 +#: ../lib/modules/bindDLZ.inc:1238 ../lib/modules/bindDLZ.inc:1572 +#: ../lib/modules/passwordSelfReset.inc:124 +#: ../lib/modules/passwordSelfReset.inc:134 +#: ../lib/modules/passwordSelfReset.inc:543 +#: ../lib/modules/passwordSelfReset.inc:563 ../help/help.inc:250 +msgid "Text" +msgstr "Текст" + +#: ../lib/modules/bindDLZ.inc:1235 +msgid "Text (\"TXT\" records)" +msgstr "Текст (\"TXT\" записи)" + +#: ../lib/modules/customFields.inc:2587 +msgid "Text area" +msgstr "Блок тексту" + +#: ../templates/pdfedit/pdfpage.php:617 ../lib/modules/customFields.inc:1885 +msgid "Text field" +msgstr "Текстове поле" + +#: ../lib/modules/eduPerson.inc:115 +msgid "" +"The \"NetID\" of the person for the purposes of inter-institutional " +"authentication. It should be represented in the form \"user@scope\" where " +"scope defines a local security domain." +msgstr "" +"\"NetID\" персони для цілей аутентифікації між закладами. Повинно бути " +"надано у формі \"user@scope\", де scope визначає локальний security domain." + +#: ../lib/modules/dhcp_settings.inc:336 +msgid "The DHCP ranges were changed to fit for the new subnet." +msgstr "DHCP діапазон змінено відповідно до нової підмережі." + +#: ../lib/modules/eduPerson.inc:127 +msgid "" +"The DN of the directory entry representing the institution with which the " +"person is associated." +msgstr "" +"DN записи каталогу, який представляє заклад, з яким пов’язується людина." + +#: ../lib/modules/eduPerson.inc:131 +msgid "" +"The DN of the directory entry representing the person's primary " +"organisational unit." +msgstr "" +"DN запису каталогу, який відповідає основній організаційній одиниці (OU) " +"персони." + +#: ../lib/modules/eduPerson.inc:135 ../lib/modules/eduPerson.inc:139 +msgid "" +"The DNs of the directory entries representing the person's organisational " +"units." +msgstr "" +"DN запису каталогу, який відповідає організаційній одиниці (OU) персони." + +#: ../lib/modules/posixGroup.inc:513 +msgid "" +"The ID of this group was changed. You can update all user and host entries " +"to the new group ID." +msgstr "" +"ID цієї групи було змінено. Ви можете оновити ID групи в усіх записах " +"користувачів та хостів на новий." + +#: ../lib/modules/imapAccess.inc:179 +msgid "The IMAP admin password is empty." +msgstr "Адміністративний пароль IMAP порожній." + +#: ../templates/config/mainmanage.php:100 +#: ../templates/config/mainmanage.php:122 ../lib/modules/bindDLZ.inc:488 +#: ../lib/modules/bindDLZ.inc:489 +#, php-format +msgid "The IP address %s is invalid!" +msgstr "IP адреса %s неправильна!" + +#: ../lib/modules/fixed_ip.inc:498 +msgid "The IP address does not match the subnet." +msgstr "IP адреса не відповідає підмережі." + +#: ../lib/modules/fixed_ip.inc:501 +msgid "The IP address is already in use." +msgstr "IP адреса вже використовується." + +#: ../lib/modules/ipHost.inc:115 ../lib/modules/ipHost.inc:116 +#: ../lib/modules/asteriskAccount.inc:574 +#: ../lib/modules/asteriskAccount.inc:575 ../lib/modules/ppolicyUser.inc:96 +#: ../lib/modules/range.inc:418 ../lib/modules/range.inc:435 +#: ../lib/modules/freeRadius.inc:249 ../lib/modules/freeRadius.inc:250 +#: ../lib/modules/fixed_ip.inc:493 +msgid "The IP address is invalid." +msgstr "IP адреса не правильна." + +#: ../lib/modules/fixed_ip.inc:107 +msgid "The IP address of the PC." +msgstr "IP адреса комп’ютера." + +#: ../lib/modules/dhcp_settings.inc:162 +msgid "" +"The IP addresses of the DNS servers. Multiple addresses are separated by \"," +"\". Example: 192.168.0.10, 192.168.0.11" +msgstr "" +"IP адреси DNS серверів. Кілька адрес розділяються комами. Наприклад, " +"192.168.0.10, 192.168.0.11" + +#: ../lib/modules/dhcp_settings.inc:170 +msgid "" +"The IP addresses of the Netbios name servers (e.g. \"123.123.123.123, " +"123.123.123.124\")." +msgstr "" +"IP адреси серверів імен Netbios (наприклад, \"123.123.123.123, " +"123.123.123.124\")" + +#: ../lib/modules/range.inc:422 ../lib/modules/range.inc:437 +msgid "The IP does not match the subnet." +msgstr "IP адреса не відповідає підмережі." + +#: ../lib/modules/mitKerberos.inc:153 ../lib/modules/heimdalKerberos.inc:158 +msgid "The Kerberos realm for this account." +msgstr "Область Kerberos для цього акаунта." + +#: ../lib/modules/heimdalKerberos.inc:99 +msgid "The Kerberos realm of this user." +msgstr "Область Kerberos для цього користувача." + +#: ../lib/modules/fixed_ip.inc:103 +msgid "The MAC address of the PC. Example: 11:22:33:44:55:aa" +msgstr "MAC адреса комп’ютера. Наприклад, 11:22:33:44:55:aa" + +#: ../lib/modules/dhcp_settings.inc:328 ../lib/modules/dhcp_settings.inc:329 +msgid "The Netbios server is invalid." +msgstr "Сервер Netbios неправильний." + +#: ../lib/modules/fixed_ip.inc:456 +msgid "The PC name may not be longer than 20 characters." +msgstr "Назва комп’ютера може бути не довше 20 символів" + +#: ../lib/modules/fixed_ip.inc:465 +msgid "The PC name may only contain A-Z, a-z and 0-9." +msgstr "Назва комп’ютера може містити лише A-Z, a-z та 0-9." + +#: ../lib/modules/fixed_ip.inc:459 +msgid "The PC name needs to be at least 2 characters long." +msgstr "Назва комп’ютера повинна містити хоча б 2 символа." + +#: ../help/help.inc:205 +msgid "" +"The PDF structure defines what information is exported as PDF file and how " +"the pages are structured. You can manage the PDF structures in the PDF " +"editor (under \"Tools\")." +msgstr "" +"Структура PDF визначає, яка інформація буде експортуватися як файл PDF та як " +"будуть будуватися сторінки. Ви можете працювати з PDF-структурами в PDF " +"редакторі (в \"Інструменти\")." + +#: ../templates/3rdParty/pla/htdocs/create.php:44 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:38 +#: ../lib/modules/selfRegistration.inc:571 +msgid "The RDN field is empty." +msgstr "Поле RDN порожнє." + +#: ../lib/modules/freeRadius.inc:93 +msgid "The Radius realm of this account." +msgstr "Область Radius цього акаунта." + +#: ../lib/modules/sambaDomain.inc:82 +msgid "The SID of your Samba server. Get it with \"net getlocalsid\"." +msgstr "" +"SID вашого Samba сервера. Дізнатися можна виконавши: \"net getlocalsid\"." + +#: ../templates/selfService/selfServiceLogin.php:141 +#: ../templates/selfService/selfServiceMain.php:168 +msgid "The TLS encryption could not be started." +msgstr "Не вдається використати TLS шифрування." + +#: ../lib/modules/posixAccount.inc:99 +msgid "" +"The UID ranges for users and hosts overlap! This is a problem because LAM " +"uses the highest UID in use + 1 for new accounts. Please set the minimum UID " +"to equal values or use independent ranges." +msgstr "" +"Діапазони UID для користувачів та комп’ютерів перекриваються! Це проблема, " +"тому що для нових акаунтів LAM використовує найбільший з використовуваних UID" +"+1. Виставіть мінімальний UID в однакове значення або використовуйте " +"діапазони, які не перетинаються." + +#: ../lib/modules/zarafaServer.inc:77 +msgid "The Unix socket or named pipe to the server." +msgstr "Unix socket або іменований канал до сервера." + +#: ../lib/modules/asteriskVoicemail.inc:215 +#: ../lib/modules/asteriskVoicemail.inc:216 +msgid "The account context is invalid." +msgstr "Контекст акаунта неправильний." + +#: ../lib/modules/asteriskAccount.inc:112 +#: ../lib/modules/asteriskExtension.inc:99 +#: ../lib/modules/asteriskVoicemail.inc:92 +msgid "The account context stores information about the dial plan." +msgstr "Контекст акаунта зберігає інформацію про план набору." + +#: ../lib/modules/asteriskAccount.inc:566 +#: ../lib/modules/asteriskAccount.inc:567 +msgid "The account type is invalid." +msgstr "Тип акаунта неправильний." + +#: ../lib/modules/freeRadius.inc:105 +msgid "The account will be locked after this date." +msgstr "Акаунт буде заблокований після цієї дати." + +#: ../help/help.inc:191 +msgid "The account will be saved under this LDAP suffix." +msgstr "Акаунт буде збережено під цим суфіксом LDAP." + +#: ../lib/modules/bindDLZ.inc:490 ../lib/modules/bindDLZ.inc:491 +#, php-format +msgid "The alias name \"%s\" is invalid." +msgstr "Назва псевдоніма \"%s\" неправильна." + +#: ../lib/modules/bindDLZ.inc:129 +msgid "The alias name for this entry." +msgstr "Назва псевдоніма для цього запису." + +#: ../lib/modules/passwordSelfReset.inc:230 +#, php-format +msgid "The answer needs to be at least %s characters long." +msgstr "Відповідь повинна бути довжиною не менше %s символів." + +#: ../lib/modules/passwordSelfReset.inc:1211 +msgid "The answer to the security question is wrong." +msgstr "Неправильна відповідь на секретне питання." + +#: ../templates/tests/schemaTest.php:128 +#, php-format +msgid "" +"The attribute %s is not supported for the object class %s by your LDAP " +"server." +msgstr "Атрибут %s не підтримується для класу об’єкта %s вашим LDAP сервером." + +#: ../templates/3rdParty/pla/lib/import_functions.php:531 +#, php-format +msgid "The attribute to modify doesn't match the one specified by %s." +msgstr "Змінний атрибут не відповідає вказаному в %s." + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:31 +msgid "The attribute value does not exist" +msgstr "Значення атрибута не існує" + +#: ../lib/modules/asteriskAccount.inc:556 +#: ../lib/modules/asteriskAccount.inc:558 +msgid "The caller ID format is invalid." +msgstr "Неправильний формат caller ID." + +#: ../lib/modules/puppetClient.inc:186 ../lib/modules/puppetClient.inc:187 +msgid "The class names may only contain ASCII characters." +msgstr "Назви класів можуть містити тільки ASCII символи." + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:404 +msgid "The config file is not writable." +msgstr "Не вдається записати конфігураційний файл." + +#: ../templates/3rdParty/pla/htdocs/create.php:29 +#: ../templates/3rdParty/pla/htdocs/copy.php:34 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:23 +#, php-format +msgid "The container you specified (%s) does not exist. Please try again." +msgstr "Вказаний контейнер (%s) не існує. Спробуйте ще раз." + +#: ../lib/modules/dhcp_settings.inc:326 ../lib/modules/dhcp_settings.inc:327 +msgid "The default gateway is invalid." +msgstr "Типовий шлюз неправильний." + +#: ../lib/modules/qmailUser.inc:260 +msgid "The default interpretation of .qmail files." +msgstr "Типова інтерпретація файлів .qmail." + +#: ../templates/3rdParty/pla/htdocs/copy.php:31 +#, php-format +msgid "The destination entry (%s) already exists." +msgstr "Цільовий запис (%s) вже існує." + +#: ../lib/modules/dhcp_settings.inc:338 ../lib/modules/dhcp_settings.inc:339 +msgid "" +"The domain name includes invalid characters. Valid characters are A-Z, a-z, " +"0-9, \".\", \"_\",\"-\"." +msgstr "" +"Назва домену існує неприпустимі символи. Можна використовувати: A-Z, a-z, " +"0-9, \".\", \"_\",\"-\"." + +#: ../lib/modules/dhcp_settings.inc:146 +msgid "The domain name of the subnet." +msgstr "Назва домену підмережі." + +#: ../lib/modules/asteriskVoicemail.inc:220 +#: ../lib/modules/asteriskVoicemail.inc:221 +msgid "The email address is invalid." +msgstr "Адреса ел.пошти неправильна." + +#: ../lib/modules/range.inc:96 +msgid "The ending IP address of the range." +msgstr "Остання IP адреса діапазону." + +#: ../lib/modules/dhcp_settings.inc:330 +msgid "The entered Netbios node type does not exist." +msgstr "Введений тип одиниці Netbios не існує." + +#: ../templates/3rdParty/pla/htdocs/update.php:27 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:22 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:21 +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:24 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:23 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:20 +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:24 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:20 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:27 +#, php-format +msgid "The entry (%s) does not exist." +msgstr "Запис (%s) не існує." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:27 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:28 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:34 +msgid "The entry does not exist and will be ignored" +msgstr "Запис не існує та буде проігнорована" + +#: ../lib/modules/puppetClient.inc:184 ../lib/modules/puppetClient.inc:185 +msgid "The environment name may only contain ASCII characters." +msgstr "Назва оточення може містити тільки ASCII символи." + +#: ../lib/modules/shadowAccount.inc:67 +msgid "The expiration date is invalid." +msgstr "Дата закінчення дії має неправильний формат." + +#: ../lib/modules/freeRadius.inc:257 ../lib/modules/freeRadius.inc:258 +msgid "The expiration date must be in format DD.MM.YYYY HH:MM." +msgstr "Дата закінчення діє повинна бути у форматі DD.MM.YYYY HH:MM." + +#: ../lib/modules/bindDLZ.inc:512 ../lib/modules/bindDLZ.inc:513 +#, php-format +msgid "The expiration time \"%s\" must be a number." +msgstr "Термін дії \"%s\" повинен бути числом." + +#: ../lib/modules/asteriskAccount.inc:560 +#: ../lib/modules/asteriskAccount.inc:561 +msgid "The extension context is invalid." +msgstr "Контекст розширення неправильний." + +#: ../lib/pdfstruct.inc:262 +msgid "The file must not exeed 2000x300px." +msgstr "Файл повинен бути не більше 2000x300px." + +#: ../lib/pdfstruct.inc:249 +msgid "The file name must end with \".png\" or \".jpg\"." +msgstr "Назва файлу повинна закінчуватися \".png\" або \".jpg\"." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "The file you chose is either empty or does not exist." +msgstr "Вибраний вами файл порожній або не існує." + +#: ../templates/3rdParty/pla/lib/Template.php:412 +#: ../templates/3rdParty/pla/lib/Template.php:499 +msgid "" +"The file you selected was only partially uploaded, likley due to a network " +"error." +msgstr "Вибраний файл було завантажено частково, можливо через помилки мережі." + +#: ../templates/3rdParty/pla/lib/Template.php:402 +#: ../templates/3rdParty/pla/lib/Template.php:407 +#: ../templates/3rdParty/pla/lib/Template.php:489 +#: ../templates/3rdParty/pla/lib/Template.php:494 +msgid "" +"The file you uploaded is too large. Please check php.ini, upload_max_size " +"setting" +msgstr "" +"Завантажений файл занадто великий. Будь ласка, перевірте php.ini " +"налаштування upload_max_size." + +#: ../lib/modules/kolabSharedFolder.inc:159 +msgid "" +"The folder on the server where the shared folder is located (e.g. user/" +"myfolder@example.com)." +msgstr "" +"Каталог на сервері загальних каталогів (наприиклад, user/myfolder@example." +"com)" + +#: ../lib/modules/kolabSharedFolder.inc:117 +msgid "The folder's email address." +msgstr "Електронна адреса каталогу." + +#: ../templates/initsuff.php:180 +msgid "" +"The following suffixes are missing in LDAP. LAM can create them for you." +msgstr "Наступні суфікси не знайдено в LDAP. LAM може створити їх для вас. " + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:120 +msgid "The format of the logon hours field is invalid!" +msgstr "Формат часу для входу неправильний!" + +#: ../lib/modules/customScripts.inc:123 +msgid "The format of this custom script setting is invalid." +msgstr "Формат налаштувань для цього скрипта неправильний." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +msgid "The format to show the query results" +msgstr "Формат для відображення результатів запиту" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "" +"The full DN of the new entry to be created when copying the source entry" +msgstr "" +"Повний DN для нового запису, який створюється при копіюванні вихідного " +"запису." + +#: ../lib/modules/asteriskVoicemail.inc:218 +#: ../lib/modules/asteriskVoicemail.inc:219 +msgid "The full name is invalid." +msgstr "Повне ім’я неправильне." + +#: ../templates/login.php:583 +msgid "The given user name matches multiple LDAP entries." +msgstr "Це псевдоім’я користувача відповідає кільком записам LDAP." + +#: ../lib/modules/ppolicy.inc:101 +msgid "" +"The grace authentication limit specifies the number of times that an expired " +"password may be used to login." +msgstr "" +"Межа відтермінування для аутентифікації вказує, скільки разів пароль із " +"закінченим терміном використання може використовуватися для входу в систему." + +#: ../lib/modules/windowsGroup.inc:147 +msgid "The group is managed by this contact person." +msgstr "Група керується цією персоною." + +#: ../lib/modules/freeRadius.inc:97 ../lib/modules/freeRadius.inc:101 +msgid "The group names for this account." +msgstr "Назви груп для цього акаунта." + +#: ../lib/modules/windowsUser.inc:221 +msgid "The groups for this account. You can insert a group name or DN." +msgstr "Групи для цього акаунта. Ви можете вказати назву групи або DN." + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "The headline for a new section must contain at least one character." +msgstr "Заголовок для нової секції повинен містити хоча б один смвол." + +#: ../lib/modules/sambaSamAccount.inc:303 ../lib/modules/windowsUser.inc:245 +msgid "The home directory will be connected under this drive letter." +msgstr "Домашній каталог буде підключено як диск з використанням цієї букви." + +#: ../lib/modules/windowsHost.inc:87 +msgid "The host is managed by this contact person." +msgstr "Хост керується цією персоною." + +#: ../lib/modules/bindDLZ.inc:497 ../lib/modules/bindDLZ.inc:498 +#: ../lib/modules/bindDLZ.inc:524 ../lib/modules/bindDLZ.inc:525 +#, php-format +msgid "The host name \"%s\" is invalid." +msgstr "Назва хоста \"%s\" неправильна." + +#: ../lib/modules/bindDLZ.inc:82 ../lib/modules/bindDLZ.inc:141 +#: ../lib/modules/bindDLZ.inc:145 +msgid "The host name for this entry." +msgstr "Назва хоста для цього запису." + +#: ../lib/modules/asteriskAccount.inc:563 +#: ../lib/modules/asteriskAccount.inc:564 ../lib/modules/bindDLZ.inc:470 +#: ../lib/modules/bindDLZ.inc:471 +msgid "The host name is invalid." +msgstr "Назва хоста неправильна." + +#: ../lib/modules/windowsUser.inc:133 ../lib/modules/inetOrgPerson.inc:837 +msgid "The initials of the user's first names." +msgstr "Ініціали користувача" + +#: ../lib/modules/ddns.inc:94 +msgid "" +"The key enables the DHCP server to perform DNS updates. The key is generated " +"with \"genDDNSkey\"." +msgstr "" +"Ключ використовується DHCP сервером для оновлення динамічної зони DNS. Ключ " +"генерується за допомогою \"genDDNSkey\"." + +#: ../lib/modules/dhcp_settings.inc:324 ../lib/modules/dhcp_settings.inc:325 +msgid "The lease time is invalid." +msgstr "Час аренди неправильний." + +#: ../lib/modules/dhcp_settings.inc:154 +msgid "" +"The lease time specifies after how many seconds the client should request a " +"new IP address." +msgstr "" +"Час аренди визначає, через скільки секунд клієнт повинен запросити нову IP " +"адресу." + +#: ../lib/modules/sudoRole.inc:83 ../lib/modules/sudoRole.inc:109 +msgid "The list of commands which may be run." +msgstr "Список можливих команд." + +#: ../lib/modules/puppetClient.inc:93 ../lib/modules/puppetClient.inc:97 +msgid "The list of configured Puppet classes for this node (e.g. ntp)." +msgstr "Список налаштованих класів Puppet для цього вузла (наприклад, ntp)." + +#: ../lib/modules/sudoRole.inc:79 ../lib/modules/sudoRole.inc:104 +msgid "The list of hosts from which the user may run the commands." +msgstr "Список хостів, з яких користувач може запускати команди." + +#: ../lib/modules/customFields.inc:3013 +msgid "The list of labels contains duplicates." +msgstr "Список підписів містить дублікати." + +#: ../lib/modules/sudoRole.inc:75 ../lib/modules/sudoRole.inc:99 +msgid "The list of users who own this sudo role and may run the commands." +msgstr "" +"Список користувачів, які володіють ціє роллю sudo та можуть виконувати " +"команди." + +#: ../lib/modules/customFields.inc:3010 +msgid "The list of values contains duplicates." +msgstr "Список значень містить дублікати." + +#: ../lib/modules/qmailGroup.inc:132 ../lib/modules/qmailGroup.inc:136 +msgid "The list's alternate email address." +msgstr "Альтернативні адреси списку" + +#: ../lib/modules/kolabGroup.inc:88 ../lib/modules/kolabGroup.inc:92 +#: ../lib/modules/qmailGroup.inc:124 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/windowsGroup.inc:127 +msgid "The list's email address." +msgstr "Ел.адреси списку." + +#: ../templates/config/mainmanage.php:147 +msgid "" +"The log file is empty or contains invalid characters! Valid characters are: " +"a-z, A-Z, 0-9, /, \\, ., :, _ and -." +msgstr "" +"Лог файл порожній або містить неправильні символи! Допустимі символи: a-z, A-" +"Z, 0-9, /, \\, ., :, _ та -." + +#: ../lib/modules/imapAccess.inc:87 +msgid "" +"The login name of your IMAP user who has rights to create/delete mailboxes." +msgstr "" +"Ім’я користувача IMAP, який може створювати / вилучати поштові скриньки." + +#: ../lib/modules/bindDLZ.inc:133 ../lib/modules/bindDLZ.inc:137 +msgid "The mail server for this entry." +msgstr "Поштовий сервер для цього запису." + +#: ../lib/modules/qmailUser.inc:244 +msgid "The mail server that contains the message store." +msgstr "Поштовий сервер, на якому розміщено сховище повідомлень." + +#: ../lib/modules/passwordSelfReset.inc:234 +msgid "" +"The mail text for confirmation mails must include the wildcard @@resetLink@@." +msgstr "Текст для листів підтвердження повинен включати шаблон @@resetLink@@." + +#: ../help/help.inc:251 +msgid "The mail text of all password mails." +msgstr "Текст листа для всіх листів з паролями." + +#: ../lib/modules/selfRegistration.inc:70 +msgid "The mail text of the confirmation mail." +msgstr "Текст листа для всіх листів з підтвердженнями." + +#: ../lib/modules/passwordSelfReset.inc:125 +#: ../lib/modules/passwordSelfReset.inc:135 +msgid "The mail text of the mails." +msgstr "Текст листів" + +#: ../lib/modules/asteriskVoicemail.inc:210 +#: ../lib/modules/asteriskVoicemail.inc:212 +msgid "The mailbox format is invalid." +msgstr "Неправильний формат поштової скриньки." + +#: ../lib/modules/dhcp_settings.inc:332 ../lib/modules/dhcp_settings.inc:333 +msgid "The maximum lease time is invalid." +msgstr "Неправильний максимальний час аренди." + +#: ../lib/modules/dhcp_settings.inc:158 +msgid "" +"The maximum lease time specifies after how many seconds the client must " +"request a new IP address." +msgstr "" +"Максимальний час оренди визначає, через скільки секунд клієнт зобов’язаний " +"запросити нову IP адресу." + +#: ../lib/modules/kolabUser.inc:175 +msgid "The maximum mailbox size in MB." +msgstr "Максимальний розмір скриньки в Мб." + +#: ../lib/modules/qmailUser.inc:224 +msgid "The maximum number of mails that can be stored in the user's mailbox." +msgstr "Максимальна кількість повідомлень в поштовій скриньці користувача." + +#: ../lib/modules/pykotaPrinter.inc:104 +msgid "" +"The maximum number of pages per job allowed on the printer. 0 means " +"unlimited." +msgstr "" +"Максимальна кількість сторінок на одну роботу на принтері. 0 означає без " +"обмежень." + +#: ../lib/modules/bindDLZ.inc:518 ../lib/modules/bindDLZ.inc:519 +#, php-format +msgid "The minimum time \"%s\" must be a number." +msgstr "Мінімальний час \"%s\" повинен бути числом." + +#: ../lib/modules.inc:927 +#, php-format +msgid "The module %s is not yet ready." +msgstr "Модуль %s ще не готовий." + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "" +"The name for that PDF-structure you submitted is not valid. A valid name " +"must consist of the following characters: 'a-z','A-Z','0-9','_','-'." +msgstr "" +"Назва відправленої вами PDF структури некоректне. Для назви допустимі такі " +"символи: 'a-z','A-Z','0-9','_','-'." + +#: ../lib/modules/asteriskExtension.inc:111 +msgid "" +"The name of a command to execute. The available commands may be listed at " +"the Asterisk command line by executing \"core show applications\"." +msgstr "" +"Назва команди для запуска. Допустимі команди можна побачити, запустивши " +"\"core show applications\" в командному рядку Asterisk." + +#: ../lib/modules/fixed_ip.inc:99 +msgid "The name of the PC." +msgstr "Назва комп’ютера" + +#: ../lib/modules/asteriskExtension.inc:103 +msgid "The name of the extension (e.g. voicemail or sip)." +msgstr "Назва розширення (наприклад, voicemail або sip)." + +#: ../lib/modules/kolabUser.inc:149 ../lib/modules/kolabSharedFolder.inc:155 +msgid "The name of the server where the mailbox is located." +msgstr "Назва сервера, де знаходиться поштова скринька." + +#: ../lib/modules/dhcp_settings.inc:150 +msgid "The name of the subnet. Example: 192.168.10.0" +msgstr "Назва підмірежі. Наприкалад, 192.168.10.0" + +#: ../lib/modules/sambaDomain.inc:78 +msgid "The name of your Windows domain or workgroup." +msgstr "Назва Windows домену або робочої групи." + +#: ../lib/modules/bindDLZ.inc:499 ../lib/modules/bindDLZ.inc:500 +#, php-format +msgid "The name server \"%s\" is invalid." +msgstr "Назва серверу \"%s\" неправильна." + +#: ../lib/modules/bindDLZ.inc:149 ../lib/modules/bindDLZ.inc:153 +msgid "The name server for this zone." +msgstr "Назва серверу для цієї зони." + +#: ../lib/modules/freeRadius.inc:89 +msgid "The net mask for the IP address." +msgstr "Мережева маска IP адреси." + +#: ../lib/modules/dhcp_settings.inc:194 +msgid "" +"The net mask is derived from the subnet mask. LAM will calculate it " +"automatically." +msgstr "" +"Маска мережі визначається маскою підмережі. LAM підрахує її автоматично." + +#: ../lib/modules/freeRadius.inc:251 ../lib/modules/freeRadius.inc:252 +msgid "The net mask is invalid." +msgstr "Макс мережі неправильна." + +#: ../lib/modules.inc:1177 +msgid "" +"The new password will be stored in the directory after you save this account." +msgstr "Новий пароль буде збережено в каталозі після збереження цього акаунта." + +#: ../lib/modules/asteriskAccount.inc:240 +msgid "The number of milliseconds for the last qualify." +msgstr "Кількість мілісекунд для last qualify." + +#: ../lib/modules/bindDLZ.inc:509 +msgid "The number of priority, weight, port and server entries must be equal." +msgstr "" +"Кількість записів пріоритету, ваги, портів та серверів повинні бути рівними." + +#: ../help/help.inc:121 +msgid "" +"The number of users who may login to LAM is restricted. This can be either a " +"fixed list of DNs or LAM can search LDAP to find a DN which matches the " +"given user name." +msgstr "" +"Можна обмежити доступ на підключення до LAM. Це може бути список DN записів " +"або LAM зможе знайти в LDAP запис DN, що відповідає даному псевдоімені " +"користувача." + +#: ../templates/tests/schemaTest.php:114 +#, php-format +msgid "The object class %s is not supported by your LDAP server." +msgstr "Клас об’єктів %s не підтримується вашим LDAP сервером." + +#: ../lib/modules/windowsUser.inc:153 ../lib/modules/inetOrgPerson.inc:793 +#: ../lib/modules/inetOrgPerson.inc:797 +msgid "The office name of the user (e.g. YourCompany, Human Resources)." +msgstr "Назва офісу користувача (наприклад, YourCompany, Human Resources)." + +#: ../templates/selfService/selfServiceMain.php:331 ../lib/modules.inc:1803 +msgid "The operation was stopped because of the above errors." +msgstr "Операція була зупинена через вказані помилки." + +#: ../lib/modules/asteriskVoicemail.inc:224 +#: ../lib/modules/asteriskVoicemail.inc:225 +msgid "The options have bad format." +msgstr "Неправильний формат опцій." + +#: ../lib/modules/device.inc:70 ../lib/modules/device.inc:74 +msgid "The owners of this device." +msgstr "Власники цього пристрою." + +#: ../lib/modules/groupOfNames.inc:94 ../lib/modules/groupOfNames.inc:98 +msgid "The owners of this group." +msgstr "Власники цієї групи." + +#: ../lib/modules/asteriskVoicemail.inc:222 +#: ../lib/modules/asteriskVoicemail.inc:223 +msgid "The pager number has bad format." +msgstr "Неправильний формат намера сторінки." + +#: ../lib/modules/heimdalKerberos.inc:121 +msgid "The parameter @@password@@ will be replaced with the new password." +msgstr "Параметр @@password@@ буде замінено новим паролем." + +#: ../lib/modules/heimdalKerberos.inc:120 +msgid "The parameter @@principal@@ will be replaced with the principal name." +msgstr "Параметр @@principal@@ буде змінено на Основне ім’я." + +#: ../templates/config/confsave.php:71 ../templates/config/confmain.php:73 +#: ../templates/config/mainlogin.php:61 +#: ../templates/selfService/adminLogin.php:54 +msgid "The password is invalid! Please try again." +msgstr "Пароль неправильний! Спробуйте ще." + +#: ../lib/security.inc:335 +#, php-format +msgid "The password is too short. You have to enter at least %s characters." +msgstr "Пароль занадто короткий. Вам потрібно вказати як мінімум %s символів." + +#: ../lib/security.inc:423 +#, php-format +msgid "" +"The password is too weak. It needs to match at least %s password complexity " +"rules." +msgstr "" +"Пароль занадто простий. Вам потрібно використати принаймні %s правил " +"складності пароля." + +#: ../lib/security.inc:413 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s different character " +"classes (upper/lower case, numbers and symbols)." +msgstr "" +"Пароль занадто простий. Вам потрібно використати як мінімум %s різних " +"класів символів (великі/малі літери, числа та службові знаки)." + +#: ../lib/security.inc:360 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s lower case " +"characters." +msgstr "" +"Пароль занадто простий. Вам потрібно використати як мінімум %s малих літер." + +#: ../lib/security.inc:380 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s numeric characters." +msgstr "Пароль занадто простий. Вам потрібно використати як мінімум %s цифр." + +#: ../lib/security.inc:390 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s symbolic characters." +msgstr "" +"Пароль занадто простий. Вам потрібно використати як мінімум %s службових " +"символів." + +#: ../lib/security.inc:370 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s upper case " +"characters." +msgstr "" +"Пароль занадто простий. Вам потрібно використати як мінімум %s велику(і) " +"літеру(и)." + +#: ../lib/security.inc:442 +msgid "" +"The password is too weak. You may not use parts of the user name for the " +"password." +msgstr "" +"Пароль занадто простий. Вам потрібно не використовувати псевдоім’я (логін) в " +"якості пароля." + +#: ../lib/security.inc:452 +msgid "" +"The password is too weak. You may not use parts of user attributes for the " +"password." +msgstr "" +"Пароль занадто простий. Вам не потрібно використовувати атрибути користувача " +"в якості пароля." + +#: ../lib/security.inc:430 +msgid "" +"The password is too weak. You may not use the user name as part of the " +"password." +msgstr "" +"Пароль занадто простий. Вам не потрібно використовувати псевдоім’я (логін) як " +"частину " +"пароля." + +#: ../lib/modules/imapAccess.inc:95 +msgid "" +"The password of your IMAP admin user. The login name for the IMAP admin user " +"is stored in the LAM server profile." +msgstr "" +"Пароль адміністратора IMAP. Логін адміністратора IMAP збережено в профілі " +"сервера LAM." + +#: ../templates/lists/changePassword.php:600 ../lib/modules.inc:1120 +msgid "The password was set to:" +msgstr "Пароль встановлено в:" + +#: ../lib/modules/bindDLZ.inc:505 ../lib/modules/bindDLZ.inc:506 +#, php-format +msgid "The port \"%s\" is invalid." +msgstr "Порт \"%s\" неправильний." + +#: ../lib/modules/windowsUser.inc:161 ../lib/modules/inetOrgPerson.inc:673 +#: ../lib/modules/inetOrgPerson.inc:677 +msgid "The post office box of the user's address." +msgstr "Поштова скринька адреси користувача." + +#: ../lib/modules/windowsUser.inc:157 ../lib/modules/inetOrgPerson.inc:681 +#: ../lib/modules/inetOrgPerson.inc:685 +msgid "The postal code of the user's address." +msgstr "Поштовий індекс адреси користувача." + +#: ../lib/modules/bindDLZ.inc:495 ../lib/modules/bindDLZ.inc:496 +#, php-format +msgid "The preference \"%s\" must be a number." +msgstr "Уподобання \"%s\" повинно бути числом." + +#: ../lib/modules/pykotaPrinter.inc:116 +msgid "The price for each page of a print job." +msgstr "Вартість для кожної сторінки друку." + +#: ../lib/modules/pykotaPrinter.inc:112 +msgid "The price for each print job." +msgstr "Вартість для кожної роботи друку." + +#: ../lib/modules/posixAccount.inc:466 +msgid "" +"The primary group for this account. You can insert a GID number or a group " +"name." +msgstr "" +"Основна група для цього обліковог озапису. Потрібно ввести GID або назву " +"групи." + +#: ../lib/modules/posixAccount.inc:553 +msgid "The primary group the host should be member of." +msgstr "Основна група хоста." + +#: ../lib/modules/posixAccount.inc:515 +msgid "The primary group the user should be member of." +msgstr "Основна група користувача." + +#: ../lib/modules/bindDLZ.inc:501 ../lib/modules/bindDLZ.inc:502 +#, php-format +msgid "The priority \"%s\" is invalid." +msgstr "Пріоритет \"%s\" неправильний." + +#: ../lib/modules/asteriskExtension.inc:107 +msgid "" +"The priority is a sequence number used to order the execution of commands. " +"Commands are executed beginning with the lowest sequence number." +msgstr "" +"Приорітет це число з послідовності, яке використовується для впорядкування " +"виконання команд. Команди виконуються починаючи з найменшого числа." + +#: ../lib/modules/range.inc:424 +msgid "The range conflicts with another range." +msgstr "Діапазон перетинається з іншим діапазоном." + +#: ../lib/modules/range.inc:420 +msgid "The range end needs to be greater than the range start." +msgstr "Кінець діапазона повинен бути більше ніж початок діапазону." + +#: ../lib/modules/bindDLZ.inc:514 ../lib/modules/bindDLZ.inc:515 +#, php-format +msgid "The refresh time \"%s\" must be a number." +msgstr "Час оновлення \"%s\" повинен бути числом." + +#: ../lib/modules/bindDLZ.inc:516 ../lib/modules/bindDLZ.inc:517 +#, php-format +msgid "The retry time \"%s\" must be a number." +msgstr "Час повтору \"%s\" повинен бути числом." + +#: ../lib/modules/inetOrgPerson.inc:761 +msgid "The room number of the employee's office." +msgstr "Номер кабінету працівника в офісі." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +msgid "The scope in which to search" +msgstr "Область пошуку" + +#: ../lib/modules/customScripts.inc:64 ../lib/modules/customScripts.inc:77 +msgid "" +"The scripts will be run on your web server in the user context of your web " +"server (e.g. apache/www-data)." +msgstr "" +"Скрипти будуть виконані на вашому веб-сервері в контексті користувача вашого " +"веб-сервера (нарпиклад, apache/www-data)." + +#: ../lib/modules/nisMailAliasUser.inc:105 +#: ../lib/modules/asteriskAccount.inc:244 ../lib/modules/qmailUser.inc:196 +#: ../lib/modules/zarafaGroup.inc:109 ../lib/modules/sambaSamAccount.inc:400 +#: ../lib/modules/posixAccount.inc:442 ../lib/modules/zarafaUser.inc:133 +#: ../lib/modules/windowsUser.inc:237 ../lib/modules/inetOrgPerson.inc:809 +#: ../lib/modules/freeRadius.inc:113 ../lib/modules/zarafaServer.inc:89 +#: ../lib/modules/qmailGroup.inc:120 ../lib/modules/organizationalRole.inc:82 +#: ../lib/modules/passwordSelfReset.inc:161 +#: ../lib/modules/windowsGroup.inc:111 ../lib/modules/groupOfNames.inc:82 +msgid "" +"The selected options will not be managed inside LAM. You can use this to " +"reduce the number of displayed input fields." +msgstr "" +"Вибрані опції не будуть доступні в LAM. Ви можете використати це для " +"зменшення полів вводу." + +#: ../lib/modules/bindDLZ.inc:520 ../lib/modules/bindDLZ.inc:521 +#, php-format +msgid "The serial number \"%s\" must be a number." +msgstr "Серійний номер \"%s\" повинен бути числом." + +#: ../lib/modules/bindDLZ.inc:221 +msgid "The serial number should be updated after each zone change." +msgstr "Серійний номер повинен оновлюватися після кожної зміни в зоні." + +#: ../lib/modules/bindDLZ.inc:493 ../lib/modules/bindDLZ.inc:494 +#: ../lib/modules/bindDLZ.inc:507 ../lib/modules/bindDLZ.inc:508 +#, php-format +msgid "The server name \"%s\" is invalid." +msgstr "Назва серверу \"%s\" неправильна." + +#: ../templates/3rdParty/pla/htdocs/copy.php:38 +msgid "The source and destination DN are the same." +msgstr "Вихідна та цільва DN співпадають." + +#: ../lib/modules/range.inc:93 +msgid "The starting IP address of the range." +msgstr "Початкова IP адреса діапазону." + +#: ../lib/modules/windowsUser.inc:169 ../lib/modules/inetOrgPerson.inc:781 +#: ../lib/modules/inetOrgPerson.inc:785 +msgid "The state where the user resides or works." +msgstr "Місцезнаходження користувача." + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "The static text must contain at least one character." +msgstr "Статичний текст повинен містити хоча б один символ." + +#: ../lib/modules/windowsUser.inc:173 ../lib/modules/inetOrgPerson.inc:665 +#: ../lib/modules/inetOrgPerson.inc:669 +msgid "The street name of the user's address." +msgstr "Вулиця адреси користувача." + +#: ../help/help.inc:249 +msgid "The subject of all password mails." +msgstr "Тема для всіх поштових повідомлень з паролями." + +#: ../lib/modules/selfRegistration.inc:95 +#: ../lib/modules/passwordSelfReset.inc:121 +msgid "The subject of the mails." +msgstr "Тама для листів." + +#: ../lib/modules/dhcp_settings.inc:319 +msgid "The subnet is already in use." +msgstr "Підмережа вже викорситовується." + +#: ../lib/modules/dhcp_settings.inc:320 ../lib/modules/dhcp_settings.inc:321 +msgid "The subnet is invalid." +msgstr "Підмережа неправильна." + +#: ../lib/modules/dhcp_settings.inc:334 ../lib/modules/dhcp_settings.inc:335 +msgid "The subnet mask is invalid." +msgstr "Маска підмережі неправильна." + +#: ../lib/modules/dhcp_settings.inc:190 +msgid "The subnet mask of the network." +msgstr "Маска підмережі." + +#: ../lib/modules/sudoRole.inc:134 +msgid "The sudo command is not valid after this date." +msgstr "Команда sudo буде заблокована після цієї дати." + +#: ../lib/modules/sudoRole.inc:129 +msgid "The sudo command is not valid before this date." +msgstr "Команда sudo буде заблокована до цієї дати." + +#: ../lib/modules/sudoRole.inc:91 ../lib/modules/sudoRole.inc:119 +msgid "The sudo commands are executed with these group memberships." +msgstr "Команди sudo виконуються з цими членствами у групах." + +#: ../lib/modules/sudoRole.inc:87 ../lib/modules/sudoRole.inc:114 +msgid "The sudo commands may be run as these users (e.g. root)." +msgstr "" +"Команди sudo можуть бути виконанимивід імені цих користувачів (наприклад, " +"root)." + +#: ../lib/modules/bindDLZ.inc:213 +msgid "" +"The time (in seconds) a secondary server should wait before retrying a zone " +"refresh." +msgstr "" +"Час (в секундах), через який вторинний сервер повинен спробувати оновлення " +"зони." + +#: ../lib/modules/bindDLZ.inc:209 +msgid "" +"The time (in seconds) that a secondary server should wait before checking " +"for zone updates." +msgstr "" +"Час (в секундах), через який вторинний сервер повинен перевірити оновлення " +"зони." + +#: ../lib/modules/bindDLZ.inc:205 +msgid "" +"The time (in seconds) that zone data is kept on a secondary server without " +"receiving a zone refresh." +msgstr "" +"Час (в секундах), протягом якого дані зони зберігаються на вторинному " +"сервері без отримання оновлення зони." + +#: ../lib/modules/bindDLZ.inc:472 ../lib/modules/bindDLZ.inc:473 +#: ../lib/modules/bindDLZ.inc:474 ../lib/modules/bindDLZ.inc:475 +#: ../lib/modules/bindDLZ.inc:476 ../lib/modules/bindDLZ.inc:477 +#: ../lib/modules/bindDLZ.inc:478 ../lib/modules/bindDLZ.inc:479 +#: ../lib/modules/bindDLZ.inc:480 ../lib/modules/bindDLZ.inc:481 +#: ../lib/modules/bindDLZ.inc:482 ../lib/modules/bindDLZ.inc:483 +#: ../lib/modules/bindDLZ.inc:484 ../lib/modules/bindDLZ.inc:485 +#: ../lib/modules/bindDLZ.inc:486 ../lib/modules/bindDLZ.inc:487 +#, php-format +msgid "The timeout \"%s\" must be a number." +msgstr "Тайм-аут \"%s\" повинен бути числом." + +#: ../lib/modules/bindDLZ.inc:95 ../lib/modules/bindDLZ.inc:99 +#: ../lib/modules/bindDLZ.inc:104 ../lib/modules/bindDLZ.inc:109 +#: ../lib/modules/bindDLZ.inc:114 ../lib/modules/bindDLZ.inc:119 +#: ../lib/modules/bindDLZ.inc:124 +msgid "" +"The timeout specifies how long (in seconds) a record can be cached by " +"caching DNS servers." +msgstr "" +"Тайм-аут визначає, як довго (в секундах) запис буде зберігатися в кеші DNS " +"серверів." + +#: ../lib/modules/customFields.inc:3562 ../lib/modules/customFields.inc:3649 +#, php-format +msgid "The uploaded file does not have the correct file extension (%s)." +msgstr "У завантаженого файлу некоректне розширення (%s)." + +#: ../lib/modules/customFields.inc:3558 ../lib/modules/customFields.inc:3645 +#, php-format +msgid "The uploaded file is too large (> %s bytes)." +msgstr "Завантажений файл занадто великий (> %s байт)." + +#: ../templates/3rdParty/pla/lib/import_functions.php:396 +msgid "The url attribute value should begin with file://." +msgstr "Значення атрибута url повинно починатися з file://." + +#: ../lib/modules/zarafaUser.inc:113 +msgid "The user account is non-active and login is disabled." +msgstr "Акаунт користувача неактивний, вхід відключено." + +#: ../lib/modules/windowsUser.inc:202 +msgid "The user must log on using a smart card." +msgstr "Користувач повинен увійти використовуючи смарт карту." + +#: ../lib/modules/zarafaUser.inc:93 +msgid "The user will get warned when his mailbox reaches this limit." +msgstr "" +"Розмір поштової скриньки, при досягненні якого користувача буде попереджено." + +#: ../lib/modules/qmailUser.inc:204 +msgid "The user's alternate email address." +msgstr "Альтернативна адреса електронної їпошти користувача." + +#: ../lib/modules/asteriskAccount.inc:136 +msgid "The user's call groups." +msgstr "Групи викликів користувача." + +#: ../lib/modules/qmailUser.inc:200 ../lib/modules/windowsUser.inc:141 +#: ../lib/modules/pykotaUser.inc:117 ../lib/modules/inetOrgPerson.inc:721 +#: ../lib/modules/inetOrgPerson.inc:725 +msgid "The user's email address." +msgstr "Адреса електронної пошти користувача." + +#: ../lib/modules/inetOrgPerson.inc:713 ../lib/modules/inetOrgPerson.inc:717 +msgid "The user's fax number." +msgstr "Номер факсу користувача." + +#: ../lib/modules/inetOrgPerson.inc:705 ../lib/modules/inetOrgPerson.inc:709 +msgid "The user's mobile number." +msgstr "Мобільний телефон користувача." + +#: ../lib/modules/inetOrgPerson.inc:825 ../lib/modules/inetOrgPerson.inc:829 +msgid "The user's organisation name." +msgstr "Назва організації користувача." + +#: ../lib/modules/inetOrgPerson.inc:817 ../lib/modules/inetOrgPerson.inc:821 +msgid "The user's organisational unit." +msgstr "Організаційна одиниця користувача." + +#: ../lib/modules/inetOrgPerson.inc:753 ../lib/modules/inetOrgPerson.inc:757 +msgid "The user's private telephone number." +msgstr "Домашній телефон користувача." + +#: ../lib/modules/windowsUser.inc:177 ../lib/modules/inetOrgPerson.inc:697 +#: ../lib/modules/inetOrgPerson.inc:701 +msgid "The user's telephone number." +msgstr "Телефонний номер користувача." + +#: ../lib/modules/inetOrgPerson.inc:833 +msgid "The user's unique employee number." +msgstr "Унікальний номер найманого працівника." + +#: ../lib/modules/windowsUser.inc:189 ../lib/modules/inetOrgPerson.inc:733 +#: ../lib/modules/inetOrgPerson.inc:737 +msgid "The user's web site (e.g. http://www.company.com)." +msgstr "Веб-сайт користувача (наприклад, http://www.company.com)." + +#: ../lib/modules/sambaSamAccount.inc:122 +msgid "" +"The value for the Samba 3 field \"User can/must change password\" needs to " +"be a number." +msgstr "" +"Значення поля \"Користувач може / повинен змінити пароль\" встановлюється " +"числом." + +#: ../lib/modules/puppetClient.inc:188 ../lib/modules/puppetClient.inc:189 +msgid "The variables may only contain ASCII characters." +msgstr "Змінні можуть містити тільки ASCII символи." + +#: ../lib/modules/asteriskVoicemail.inc:226 +#: ../lib/modules/asteriskVoicemail.inc:227 +msgid "The voicemail context name is invalid." +msgstr "Назва контексту голосової поштової скриньки некоректна." + +#: ../lib/modules/bindDLZ.inc:503 ../lib/modules/bindDLZ.inc:504 +#, php-format +msgid "The weight \"%s\" is invalid." +msgstr "Вага \"%s\" неправильна." + +#: ../templates/3rdParty/pla/htdocs/create.php:42 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:36 +msgid "The were no attributes marked as an RDN attribute." +msgstr "Немає атрибутів помічених як атрибут RDN." + +#: ../lib/modules/selfRegistration.inc:71 +msgid "The wildcard for the account creation link is @@creationLink@@." +msgstr "Шаблон для посилання на створення акаунта: @@creationLink@@." + +#: ../lib/modules/passwordSelfReset.inc:127 ../help/help.inc:254 +msgid "The wildcard for the new password is @@newPassword@@." +msgstr "Шаблон для нового пароля: @@newPassword@@." + +#: ../lib/modules/passwordSelfReset.inc:137 +msgid "The wildcard for the reset link is @@resetLink@@." +msgstr "Шаблон для посилання на скидання: @@resetLink@@." + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:60 +#, php-format +msgid "There are %s members in group %s:" +msgstr "%s учасників у групі %s:" + +#: ../lib/modules/posixGroup.inc:612 ../lib/modules/sambaGroupMapping.inc:605 +msgid "There are still users who have this group as their primary group." +msgstr "Ще є користувачі, які використовують цю групу як основну." + +#: ../lib/modules/sambaGroupMapping.inc:602 +msgid "There can be only one group of this type." +msgstr "Може бути тільки одна група цього типу." + +#: ../lib/modules/asteriskAccount.inc:557 +msgid "There is already another user with this caller ID." +msgstr "Вже є користувач з таким caller ID." + +#: ../lib/modules/asteriskVoicemail.inc:211 +msgid "There is already another user with this mailbox name." +msgstr "Вже існує інший користувач з такою назвою поштової скриньки." + +#: ../templates/massDoUpload.php:258 +msgid "There were errors while uploading:" +msgstr "При завантаженні виникла помилка:" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:80 +#, php-format +msgid "There will be %s updates done with this mass update" +msgstr "Цією гуртовою зміною буде проведено %s змін" + +#: ../lib/modules/posixGroup.inc:501 +msgid "" +"These are the minimum and maximum numbers to use for group IDs when creating " +"new group accounts. New group accounts will always get the highest number in " +"use plus one." +msgstr "" +"Мін. та Макс. числа для використання в якості GID при створенні нових " +"облікових записів для груп. Нові акаунти груп будуть створені з найбільшим " +"числом, яке використовується, плюс один." + +#: ../lib/modules/posixAccount.inc:454 +msgid "" +"These are the minimum and maximum numbers to use for machine IDs when " +"creating new accounts for hosts. The range should be different from that of " +"users. New host accounts will always get the highest number in use plus one." +msgstr "" +"Діапазон чисел, які використовуються в якості ID комп’ютера при створенні " +"нових облікових записів для хоста. Діапазон повинен відрізнятися від " +"діапазона ID для користувачів. Нові акаунти хостів будуть завжди отримувати " +"найбільше отримуване ID плюс один." + +#: ../lib/modules/posixAccount.inc:450 +msgid "" +"These are the minimum and maximum numbers to use for user IDs when creating " +"new user accounts. The range should be different from that of machines. New " +"user accounts will always get the highest number in use plus one." +msgstr "" +"Діапазон чисел, які використовуються як ID користувача при створенні нових " +"акаунтів користувача. Діапазон повинен відрізнятися від діапазона ID для " +"комп’ютерів. Нові акаунти користувачів будуть завжди отримувати найбільше " +"використовуване ID плюс один." + +#: ../lib/modules/inetOrgPerson.inc:845 +msgid "These are the user's certificates." +msgstr "Це сертифікати користувача." + +#: ../lib/modules/puppetClient.inc:113 +msgid "" +"These classes will be available as autocompletion hints when adding new " +"classes." +msgstr "" +"Ці класи будуть показані як підказки автодоповнення при додаванні нових " +"класів." + +#: ../lib/modules/nisnetgroup.inc:96 ../lib/modules/nisnetgroup.inc:100 +msgid "" +"These entries specify the members of the netgroup. You can limit the set to " +"a host name, a user name, a domain name or any combination of them." +msgstr "" +"Ці записи визначають членів netgroup. Ви можете ввести обмеження встановивши " +"назву хоста, псевдоім’я користувача, назву домену або будь-якої їх комбінації." + +#: ../lib/modules/puppetClient.inc:117 +msgid "" +"These environments will be available as autocompletion hints when setting " +"the environment." +msgstr "" +"Це оточення буде показано як підказки автодоповнення при налаштуванні " +"оточення." + +#: ../lib/modules/asteriskExtension.inc:123 +msgid "" +"These options change the list of potential extension owners below. You can " +"select to show Asterisk accounts or all users. It is also possible to search " +"the tree suffix if you have users which are not in the standard user suffix." +msgstr "" +"Ці опції змінюють список потенційних власників розширень показаних нижче. Ви " +"можете вибрати показувати акаунти Asterisk всіх користувачів. Також можна " +"пошукати суфікс дерева, якщо є користувачі, які знаходяться не в " +"стандартному сіфіксі користувача." + +#: ../lib/modules/authorizedServiceObject.inc:94 +msgid "These services will show up as hint if you enter a new service." +msgstr "Ці сервіси будуть показані як підказкапри створенні нового сервісу." + +#: ../lib/modules/posixAccount.inc:124 +msgid "" +"This GID number is invalid! Please provide either a number or a group name." +msgstr "GID неправильний! Повинно бути число або назва групи." + +#: ../help/help.inc:235 +msgid "" +"This HTML code will be placed on top of all self service pages. E.g. you can " +"use this to place your custom logo. Any HTML code is permitted." +msgstr "" +"Цей HTML код буде розміщено зверху всіх сторінок сервісів " +"самообслуговування. Це можна використати, наприклад, для розміщення свого " +"логотипу. Можна використовувати будь-який HTML код." + +#: ../lib/modules/fixed_ip.inc:462 +msgid "This PC name already exists." +msgstr "Така назва комп’ютера вже існує." + +#: ../lib/modules/kolabGroup.inc:197 ../lib/modules/kolabUser.inc:292 +#: ../lib/modules/kolabSharedFolder.inc:274 +msgid "This account is marked for deletion." +msgstr "Цей акаунт відмічено для видалення." + +#: ../lib/modules/sambaSamAccount.inc:327 +msgid "" +"This allows you to define this account as a special user like administrator " +"or guest." +msgstr "" +"Це дозволяє визначити цей акаунт як спеціального користувача, наприклад, " +"адміністратора або гостя." + +#: ../templates/3rdParty/pla/lib/PageRender.php:376 +msgid "This attribute is not defined in the LDAP schema" +msgstr "Цей атрибут е визначено в схемі LDAP" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1988 +msgid "This attribute is required" +msgstr "Цей атрибут обов’язковий." + +#: ../templates/3rdParty/pla/lib/PageRender.php:458 +msgid "This attribute is required for the RDN." +msgstr "Цей атрибут обов’язковий для RDN." + +#: ../lib/modules/inetOrgPerson.inc:789 +msgid "This can be used to specify if the user has a car license." +msgstr "" +"Це може бути використано для зберігання відомостей про наявність водійського " +"посвідчення у користувача." + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:64 +msgid "This change requires to add new attributes." +msgstr "Ця зміна потребує додавання нових атрибутів." + +#: ../help/help.inc:137 +msgid "This changes the password of the selected profile." +msgstr "Це змінює пароль вибраного профіля." + +#: ../help/help.inc:139 +msgid "This changes the profile which is selected by default at login." +msgstr "Це змінює профіль вибраний як типовий при вході." + +#: ../templates/massBuildAccounts.php:177 +msgid "" +"This column is defined to include unique entries but duplicates were found:" +msgstr "" +"Ця колонка була визначена для зберігання унікальних записів, але в ній " +"знайдено дублікати:" + +#: ../lib/modules/heimdalKerberos.inc:119 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -K /etc/heimdal/apache.keytab -p " +"admin/admin passwd -p @@password@@ @@principal@@\"." +msgstr "" +"Ця команда буде використана для зміни пароля Kerberos. Зазвичай вона повинна " +"виглядати як \"/usr/sbin/kadmin -K /etc/heimdal/apache.keytab -p admin/admin " +"passwd -p @@password@@ @@principal@@\"." + +#: ../lib/modules/mitKerberos.inc:149 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -k -t /home/www-data/apache.keytab " +"-p realm/changepwd\"." +msgstr "" +"Ця команда буде використана для зміни пароля Kerberos. Зазвичай вона повинна " +"виглядати як \"/usr/sbin/kadmin -k -t /home/www-data/apache.keytab -p realm/" +"changepwd\"." + +#: ../lib/modules/customScripts.inc:124 +msgid "This custom script setting includes an invalid account type." +msgstr "" +"Це налаштування скрипта використовує неправильний тип облікового запису." + +#: ../lib/modules/customScripts.inc:126 ../lib/modules/customScripts.inc:128 +msgid "This custom script setting includes an invalid action type." +msgstr "Це налаштування скрипта використовує неправильний тип дії." + +#: ../help/help.inc:100 +msgid "" +"This defines the language of the login window and sets this language as the " +"default language. Users can change the language at login." +msgstr "" +"Це визначає мову вікна запрошення входу в систему та встановлює цю мову, як " +"типову мову. Користувачі можуть змінити мову після входу в систему." + +#: ../help/help.inc:119 +msgid "" +"This defines the rights for the home directories which are created by " +"lamdaemon." +msgstr "Це визначає права для домашніх каталогів, які були створені lamdaemon." + +#: ../lib/modules/asteriskExtension.inc:95 +msgid "" +"This defines what application Asterisk has to start for this user (e.g. SIP/" +"user1)." +msgstr "" +"Це визначає, який застосунок повинен запустити Asterisk для цього " +"користувача (наприклад, SIP/user1)." + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:85 +#, php-format +msgid "This deletion request also includes %s child entries." +msgstr "Запит на видалення також видалить %s дочірніх елементів." + +#: ../lib/modules/device.inc:78 +msgid "This describes the location of the device." +msgstr "Це описує розташування пристрою." + +#: ../lib/modules/ipHost.inc:74 +msgid "This describes the location of the host." +msgstr "Це описує розташування хоста." + +#: ../lib/modules/windowsUser.inc:137 ../lib/modules/inetOrgPerson.inc:773 +#: ../lib/modules/inetOrgPerson.inc:777 +msgid "This describes the location of the user." +msgstr "Це описує розташування користувача." + +#: ../lib/lamPDF.inc:126 +msgid "This document was automatically created by LDAP Account Manager" +msgstr "Цей документ було створено автоматично LDAP Account Manager" + +#: ../help/help.inc:258 +msgid "" +"This email address will be set as reply-to address of all password mails." +msgstr "" +"Ця адреса електронної пошти буде вказана як адреса reply-to для всіх листів " +"з паролями." + +#: ../help/help.inc:247 +msgid "" +"This email address will be set as sender address of all password mails. If " +"empty the system default (php.ini) will be used." +msgstr "" +"Ця адреса електронної пошти буде вказана як адреса відправника для всіх " +"листів з паролями. Якщо порожнє, то буде використовуватися типовий системний " +"(php.ini)." + +#: ../lib/modules/selfRegistration.inc:91 +#: ../lib/modules/passwordSelfReset.inc:117 +msgid "" +"This email address will be set as sender address of the mails. If empty the " +"system default (php.ini) will be used." +msgstr "" +"Ця адреса електронної пошти буде вказана як адреса відправника листів. Якщо " +"порожнє, то буде використовуватися типовий системний (php.ini)." + +#: ../lib/modules/passwordSelfReset.inc:97 +msgid "This enables the password self reset function." +msgstr "Це включає функцію самостійного скидання пароля." + +#: ../lib/modules/selfRegistration.inc:54 +msgid "This enables the self registration function." +msgstr "Це включає функцію самореєстрації." + +#: ../templates/3rdParty/pla/htdocs/compare.php:79 +msgid "This entry has no attributes" +msgstr "Цей запис не має атрибутів" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:57 +#, php-format +msgid "This entry is the root of a sub-tree containing %s entries." +msgstr "Цей запис є кореневим для дерева з %s записів." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:47 +#: ../lib/modules/selfRegistration.inc:512 +msgid "This field is required." +msgstr "Це поле обов’язкове." + +#: ../lib/modules/customFields.inc:188 +msgid "This field name already exists. Please choose a different one." +msgstr "Така назва поля вже використовується. Виберіть іншу." + +#: ../lib/modules/posixAccount.inc:126 +msgid "This gecos value is invalid!" +msgstr "Цей gecos неправильний!" + +#: ../lib/modules/ipHost.inc:70 +msgid "This is a comma separated list of IP addresses." +msgstr "Це розділений комами список IP-адрес." + +#: ../lib/modules/ieee802device.inc:73 +msgid "This is a comma separated list of MAC addresses." +msgstr "Це розділений комами список MAC-адрес." + +#: ../lib/modules/kolabUser.inc:137 ../lib/modules/kolabSharedFolder.inc:143 +msgid "This is a comma separated list of delegates." +msgstr "Це розділений комами список делегатів." + +#: ../lib/modules/kolabUser.inc:145 ../lib/modules/kolabSharedFolder.inc:151 +msgid "This is a comma separated list of eMail aliases." +msgstr "Це розділений комами список поштових псевдонімів." + +#: ../lib/modules/kolabUser.inc:129 +msgid "This is a comma separated list of invitation policies." +msgstr "Це розділений комами список політик запрошення." + +#: ../lib/modules/nisMailAlias.inc:90 +msgid "This is a comma separated list of recipients." +msgstr "Це розділений комами список отримувачів." + +#: ../lib/modules/inetLocalMailRecipient.inc:77 +msgid "This is a comma separated list of the users public email addresses." +msgstr "Це розділений комами список публічних адрес ел.пошти користувачів." + +#: ../help/help.inc:153 +msgid "" +"This is a list of IP addresses from hosts who may access LAM. You can use \"*" +"\" as wildcard (e.g. 192.168.0.*)." +msgstr "" +"Список IP-адрес комп’ютерів, з яких є доступ до LAM. Ви можете " +"використовувати \"*\" як маску (наприклад, 192.168.0.*)." + +#: ../lib/modules/selfRegistration.inc:79 +msgid "" +"This is a list of additional attributes that the user can enter. Please note " +"that user name, password and email address are mandatory anyway and need not " +"be specified." +msgstr "" +"Це список додаткових атрибутів доступних користувачу. Зверніть увагу, що " +"псевдоім’я користувача, пароль та адреса ел.пошти обов’язкові, їх не потрібно " +"сюди " +"вносити." + +#: ../lib/modules/organizationalRole.inc:94 +#: ../lib/modules/windowsGroup.inc:131 ../lib/modules/groupOfNames.inc:102 +msgid "This is a list of members of this group." +msgstr "Це список учасників цієї групи." + +#: ../lib/modules/organizationalRole.inc:98 +#: ../lib/modules/windowsGroup.inc:135 ../lib/modules/groupOfNames.inc:106 +msgid "" +"This is a list of members of this group. Multiple members are separated by " +"semicolons." +msgstr "" +"Це список учасників цієї групи. Кілька користувачів розділяються крапкою з " +"комою (;)." + +#: ../lib/modules/eduPerson.inc:102 +msgid "This is a list of nick names for this user." +msgstr "Список скорочених імен для цього користувача." + +#: ../lib/modules/selfRegistration.inc:75 +msgid "" +"This is a list of object classes that are used to build the new user " +"accounts. Please enter one object class in each line." +msgstr "" +"Це список класів об’єктів, які використовуються для створення нових акаунтів " +"користувачів. Будь ласка, вказуйте тільки один клас об’єкта в кожному рядку." + +#: ../help/help.inc:115 +msgid "" +"This is a list of the servers where the lamdaemon scripts are stored. LDAP " +"Account Manager will make a SSH connection to the servers with the user name " +"and password provided at login. Multiple servers are separated by " +"semicolons. You can append a descriptive name after a colon." +msgstr "" +"Це список серверів, на яких знаходиться скрипт lamdaemon. LAM з’єднується з " +"ними по SSH з псевдоіменем користувача та паролем, які використовуються для " +"входу " +"в LAM. Кілька серверів в списку розділяють крапкою з комою (;). Ви можете " +"додавати опис після двокрапки (:)." + +#: ../help/help.inc:93 +msgid "" +"This is a list of valid DN entries of all users that are allowed to login to " +"LDAP Account Manager. Please enter one DN per line." +msgstr "" +"Це список DN записів всіх користувачів, кому дозволено входити в LAM. Один " +"рядок повинен мати один DN запис." + +#: ../templates/3rdParty/pla/lib/PageRender.php:881 +msgid "This is a structural ObjectClass and cannot be removed." +msgstr "Це структурний ObjectClass - його не можна видалити." + +#: ../lib/modules/nisObject.inc:74 ../lib/modules/automount.inc:73 +#: ../lib/modules/oracleService.inc:70 +msgid "This is an optional description for this entry." +msgstr "Це додатковий опис для цього запису." + +#: ../help/help.inc:223 +msgid "" +"This is needed to find the LDAP DNs of your user accounts. E.g. if you use " +"\"uid\" and your user inputs \"miller\" then LAM will search for an account " +"with uid=miller." +msgstr "" +"Це потрібно для пошуку в LDAP DN-акаунтів ваших користувачів. Наприклад, " +"якщо ви використовуєте \"uid\" та ваш користувач набере \"miller\", LAM буде " +"шукати обліковий запис з uid=miller." + +#: ../lib/modules/zarafaDynamicGroup.inc:199 ../lib/modules/ipHost.inc:117 +#: ../lib/modules/posixGroup.inc:613 ../lib/modules/device.inc:142 +#: ../lib/modules/eduPerson.inc:246 ../lib/modules/eduPerson.inc:248 +#: ../lib/modules/zarafaAddressList.inc:170 +#: ../lib/modules/posixAccount.inc:131 ../lib/modules/inetOrgPerson.inc:98 +#: ../lib/modules/aliasEntry.inc:86 ../lib/modules/qmailGroup.inc:433 +#: ../lib/modules/qmailGroup.inc:434 ../lib/modules/qmailGroup.inc:435 +msgid "This is not a valid DN!" +msgstr "Це неправильний DN!" + +#: ../lib/modules/sambaSamAccount.inc:109 +msgid "This is not a valid RID number!" +msgstr "Це неправильний RID!" + +#: ../lib/modules/sambaGroupMapping.inc:604 +msgid "This is not a valid Samba 3 group type!" +msgstr "Це неправильний тип групи Samba 3!" + +#: ../lib/modules/eduPerson.inc:250 +msgid "This is not a valid list of DNs!" +msgstr "Це неправильний список DN!" + +#: ../lib/modules/qmailGroup.inc:436 ../lib/modules/qmailGroup.inc:437 +msgid "This is not a valid option." +msgstr "Це неправильна опція." + +#: ../lib/modules/inetLocalMailRecipient.inc:73 +msgid "This is one of the users public email addresses." +msgstr "Це одна з публічних адрес ел.пошти користувача." + +#: ../help/help.inc:84 +msgid "" +"This is only needed for TLS/SSL connections. By default, LAM will use the " +"certificate authorities installed on your system. If you have a private CA " +"in your company you can upload your CA certificates here and override the " +"system certificates." +msgstr "" +"Це потрібно тільки для TLS/SSL з’єднань. Типово LAM буде використовувати " +"центри сертифікації, встановлені у вашій системі. Якщо у вашої компанії " +"використовується власний CA, ви можете завантажити сертифікати вашого CA тут " +"та перекрити сертифікати системи." + +#: ../lib/modules/asteriskAccount.inc:104 +msgid "" +"This is the ID of the user in the Asterisk database. It may contain digits " +"and letters (e.g. user1 or 200134)." +msgstr "" +"Це ID користувача в базі даних Asterisk. Він може містити цифри та букви " +"(наприклад, user1 or 200134)." + +#: ../lib/modules/freeRadius.inc:85 +msgid "This is the IP address for the user (e.g. 123.123.123.123)." +msgstr "Це IP адреса користувача (наприклад, 123.123.123.123)." + +#: ../lib/modules/ipHost.inc:66 +msgid "" +"This is the IP address of the network card of the device (e.g. " +"123.123.123.123)." +msgstr "Це IP адреса мережевої карти пристрою (наприклад, 123.123.123.123)." + +#: ../lib/modules/ipHost.inc:78 +msgid "This is the LDAP DN of the host's manager." +msgstr "Це LDAP DN керуючого хоста." + +#: ../lib/modules/inetOrgPerson.inc:657 ../lib/modules/inetOrgPerson.inc:661 +msgid "" +"This is the LDAP DN of the user's manager. Use this property to represent " +"hierarchies in your company." +msgstr "" +"Це DN менеджера користувача. Використовується для надання ієрархії у вашій " +"компанії." + +#: ../lib/modules/customFields.inc:117 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an activated " +"state. The value is case-insensitive." +msgstr "" +"Це значення атрибута LDAP, при якому чекбокс буде включено. Значення " +"регістронезалежне." + +#: ../lib/modules/customFields.inc:121 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an deactivated " +"state. The value is case-insensitive." +msgstr "" +"Це значення атрибута LDAP, при якому чекбокс буде виключено. Значення " +"регістронезалежне." + +#: ../lib/modules/ieee802device.inc:69 +msgid "" +"This is the MAC address of the network card of the device (e.g. 00:01:02:DE:" +"EF:18)." +msgstr "Це MAC адреса мережевого адаптера (наприклад, 00:01:02:DE:EF:18)." + +#: ../lib/modules/sambaSamAccount.inc:324 +msgid "This is the SID of the user's primary Windows group." +msgstr "Це SID основної Windows групи користувача." + +#: ../help/help.inc:102 +msgid "" +"This is the absolute path to an external script for setting quotas and " +"creating home directories." +msgstr "" +"Це абстрактний шлях до зовнішнього скрипта для встановлення квоти та " +"створення домашнього каталогу." + +#: ../lib/modules/mitKerberos.inc:157 ../lib/modules/heimdalKerberos.inc:125 +msgid "This is the account's Kerberos password." +msgstr "Це Kerberos пароль акаунта." + +#: ../lib/modules/sambaSamAccount.inc:262 +msgid "This is the account's Windows password." +msgstr "Це Windows пароль акаунта." + +#: ../lib/modules/sambaSamAccount.inc:259 ../lib/modules/windowsUser.inc:124 +msgid "This is the account's full name on Windows systems." +msgstr "Це повне ім’я акаунта на Windows системах." + +#: ../lib/modules/ppolicyUser.inc:56 +msgid "This is the active password policy for this account." +msgstr "Це активна політика паролів для цього акаунта." + +#: ../lib/modules/passwordSelfReset.inc:85 +msgid "" +"This is the answer to the security question. It allows users to reset their " +"password." +msgstr "" +"Це відповідь на секретне питання. За його допомогою користувачі можуть " +"скидати свої паролі." + +#: ../lib/modules/mitKerberos.inc:145 +msgid "This is the date of the user's last login." +msgstr "Це дата останнього успішного входу в систему." + +#: ../lib/modules/mitKerberos.inc:125 ../lib/modules/heimdalKerberos.inc:103 +msgid "This is the date when the account will expire." +msgstr "Це дата, коли строк дії акаунта закінчиться." + +#: ../lib/modules/sambaSamAccount.inc:346 ../lib/modules/shadowAccount.inc:194 +msgid "This is the date when the account will expire. Format: DD-MM-YYYY" +msgstr "Дата, до якої цей акаунт активний. Формат: DD-MM-YYYY" + +#: ../lib/modules/mitKerberos.inc:141 ../lib/modules/sambaSamAccount.inc:397 +msgid "This is the date when the user changed his password." +msgstr "Це дата, коли користувач змінив свій пароль." + +#: ../lib/modules/shadowAccount.inc:202 +msgid "" +"This is the date when the user changed his password. If you specify a " +"maximum password age then you can force a password change here." +msgstr "" +"Це дата зміни користувачем свого пароля. Якщо ви вкажете максимальний термін " +"дії пароля, тоді тут ви можете форсувати зміну пароля." + +#: ../lib/modules/sambaGroupMapping.inc:147 +msgid "This is the group name which will be shown in Windows." +msgstr "Це назва групи, яка показується у Windows." + +#: ../lib/modules/windowsHost.inc:83 +msgid "This is the host's location (e.g. Munich, server room 3)." +msgstr "Це розташування хоста (наприклад, Київ, серверна №3)." + +#: ../help/help.inc:187 +msgid "" +"This is the identifier for the relative DN value. It must be one of the " +"given allowed LDAP attributes (e.g. user accounts usually use \"uid\" while " +"groups use \"cn\")." +msgstr "" +"Це ідентифікатор для відповідного значення DN. Він повинен бути одним з " +"дозволених атрибутів LDAP (наприклад, акаунти користувача використовують " +"\"uid\", а групові - \"cn\")." + +#: ../lib/modules/selfRegistration.inc:99 +msgid "" +"This is the identifier for the relative DN value. LAM will use \"uid\" by " +"default." +msgstr "" +"Це ідентифікатор для відносного значення DN. LAM буде типово використовувати " +"\"uid\"." + +#: ../lib/modules/passwordSelfReset.inc:101 +msgid "" +"This is the label for the link to the password self reset. If empty \"Forgot " +"password?\" will be used." +msgstr "" +"Це текст для посилання на самостійне скидання пароля. Якщо порожньо, то буде " +"використано \"Забули пароль?\"." + +#: ../lib/modules/selfRegistration.inc:58 +msgid "" +"This is the label for the link to the self registration. If empty \"Register " +"new account\" will be used." +msgstr "" +"Це текст для посилання на самореєстрацію. Якщо порожньо, то буде показано " +"\"Створити новий акаунт.\"" + +#: ../help/help.inc:88 +msgid "" +"This is the list of attributes to show in the account list. The entries can " +"either be predefined values, \"#attribute\", or individual ones, \"attribute:" +"description\". Several entries are separated by semicolons." +msgstr "" +"Це список атрибутів, які показуються у списку акаунтів. Ці записи можуть " +"бути попередньо встановленими: \"#attribute\", або налаштованими вручну: " +"\"attribute:description\". Кілька записів повинні відокремлюватися крапкою з " +"комою (;)." + +#: ../lib/modules/posixAccount.inc:494 +msgid "This is the list of valid login shells." +msgstr "Це список коректних оболочок входу в систему." + +#: ../lib/modules/asteriskAccount.inc:108 +msgid "" +"This is the machine id (e.g. IP address or host name) from which the user " +"can call/receive calls." +msgstr "" +"Це ідентифікатор комп’ютера (наприклад, IP адреса або назва хоста), з якого " +"користувач може дзвонити / отримувати дзвінки." + +#: ../lib/modules/inetLocalMailRecipient.inc:81 +msgid "This is the mail server for the user." +msgstr "Це поштовий сервер для цього користувача." + +#: ../lib/modules/qmailUser.inc:220 +msgid "This is the mailbox size limit in bytes." +msgstr "Це максимальний розмір скриньки в байтах." + +#: ../lib/modules/passwordSelfReset.inc:93 +msgid "This is the minimum length for answers to the security question." +msgstr "Це мінімальна довжина відповіді на секретне запитання." + +#: ../lib/modules/nisnetgroup.inc:84 ../lib/modules/organizationalRole.inc:86 +#: ../lib/modules/groupOfNames.inc:86 +msgid "This is the name of this group." +msgstr "Це назва для цієї групи." + +#: ../lib/modules/posixAccount.inc:561 +msgid "" +"This is the natural name of the host. If empty, the host name will be used." +msgstr "" +"Це справжня назва комп’ютера. Якщо не вказано, то використовуватиметься " +"назва комп’ютера." + +#: ../lib/modules/pykotaUser.inc:109 +msgid "This is the natural name of the user." +msgstr "Це справжнє ім’я користувача." + +#: ../lib/modules/inetOrgPerson.inc:741 +msgid "" +"This is the natural name of the user. If empty, the first and last name is " +"used." +msgstr "" +"Це справжнє ім’я користувача. Якщо порожньо, то буде використано ім’я та " +"прізвище." + +#: ../lib/modules/posixAccount.inc:539 ../lib/modules/windowsUser.inc:103 +msgid "" +"This is the natural name of the user. If empty, the first and last name or " +"user name is used." +msgstr "" +"Це справжнє ім’я користувача. Якщо порожньо, то буде використано ім’я та " +"прізвище або псевдоім’я користувача." + +#: ../lib/modules/sambaDomain.inc:122 +msgid "" +"This is the number of bad logon attempts (0 - 999) before the account is " +"deactivated. 0 means unlimited attempts." +msgstr "" +"Кількість неправильних спроб входу (0-999) до того, як акаунт користувача " +"буде відключено. 0 - кількість спроб необмежено." + +#: ../lib/modules/sambaDomain.inc:106 +msgid "" +"This is the number of passwords which are saved to prevent that users reuse " +"old passwords." +msgstr "" +"Це кількість збережених паролей користувача, для попередження повторного їх " +"використання." + +#: ../help/help.inc:98 +msgid "" +"This is the number of rows to show in the account list. If more entries are " +"found the list will be split into several pages." +msgstr "" +"Кількість рядків у списку акаунтів. Якщо записів більше, то список буде " +"поділено на кілька сторінок." + +#: ../lib/modules/sambaSamAccount.inc:355 +msgid "This is the path to the user's home directory." +msgstr "Шлях до домашнього каталогу користувача." + +#: ../lib/modules/sambaGroupMapping.inc:155 +msgid "" +"This is the relative ID (similar to UID on Unix) for Windows accounts. If " +"you leave this empty LAM will calculate the RID from the UID. This can be " +"either a number or the name of a special group:" +msgstr "" +"Це ID (як UID у Unix) для акаунтів Windows, Якщо залишити поле порожнім, LAM " +"вирахує RID з UID. Може бути числом або назвою спеціальної групи:" + +#: ../lib/modules/sambaSamAccount.inc:330 +msgid "" +"This is the relative ID number for your Windows account. You can either " +"enter a number or one of these special accounts: " +msgstr "" +"Це ID для вашого Window акаунта. Можна ввести число або одиниці зі " +"спеціальних облікових записів." + +#: ../lib/modules/sambaSamAccount.inc:334 +msgid "" +"This is the relative ID number for your host account. If you leave this " +"empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "" +"Це ID для вашого акаунта хоста. Якщо залишити поле порожнім, то LAM " +"використає: uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../lib/modules/imapAccess.inc:113 +msgid "" +"This is the separator for the mailbox path. Usually, this is \".\" but e.g. " +"Cyrus with \"unixhierarchysep\" will require \"/\"." +msgstr "" +"Це розділювач для шляху до поштової скриньки. Зазвичай це \".\" але, " +"наприклад, \"unixhierarchysep\" потребує \"/\"." + +#: ../help/help.inc:59 +msgid "" +"This is the server address of your LDAP server. Use ldap:// for unencrypted " +"LDAP connections or TLS encrypted connections. LDAP+SSL (LDAPS) encrypted " +"connections are specified with ldaps://. The port value is optional." +msgstr "" +"Адреса LDAP сервера. Використовуйте ldap:// для незахищених або TLS " +"захищених з’єднань. ldaps:// для захищених з’єднань LDAP+SSL (LDAPS). Порт " +"вказувати не обов’язково." + +#: ../help/help.inc:78 +msgid "This is the suffix for the LDAP tree viewer." +msgstr "Це суфікс для перегляду дерева LDAP." + +#: ../help/help.inc:72 +msgid "" +"This is the suffix of the LDAP tree from where to search for LDAP entries. " +"Only entries in this subtree will be displayed in the account list. When " +"creating a new accont this will be the DN where it is saved." +msgstr "" +"Це суфікс, від якого буде відбуватися пошук в LDAP. Тільки записи в цій " +"гілці будуть показані у списку акаунтів. Нові акаунти зберігаються з цим DN." + +#: ../lib/modules/inetLocalMailRecipient.inc:69 +msgid "This is the target email address for the user's mails." +msgstr "Адреса електронної пошти для прийому листів користувача." + +#: ../lib/modules/customScripts.inc:53 ../lib/modules/uidObject.inc:60 +#: ../lib/modules/aliasEntry.inc:62 +msgid "This is the target of this alias entry." +msgstr "Ім’я для якого використовується цей псевдонім." + +#: ../lib/modules/sambaDomain.inc:134 +msgid "" +"This is the time (in minutes) for which the user may not log in after the " +"account was locked. -1 means forever." +msgstr "" +"Це час (в хвилинах) , після якого користувач не зможе зайти в систему, після " +"того, як акаунт буде заблоковано. -1 завжди." + +#: ../help/help.inc:147 +msgid "" +"This is the time (in minutes) of inactivity after which a user is " +"automatically logged off." +msgstr "" +"Це час (в хвилинах) неактивності користувача, після якого користувач " +"автоматично вийде з системи." + +#: ../help/help.inc:108 +msgid "" +"This is the time in minutes which LAM caches its LDAP searches. Shorter " +"times will stress LDAP more but decrease the possibility that changes are " +"not identified." +msgstr "" +"Це час (в хвилинах), протягом якого LAM кешує записи, знайдені при пошуку в " +"LDAP. Менший час збільшує навантаження на LDAP, але зменшує ймовірність, що " +"зміни не будуть помічені." + +#: ../lib/modules/sambaSamAccount.inc:349 +msgid "" +"This is the time zone of your Samba server. LAM needs this information to " +"display the logon hours correctly." +msgstr "" +"Часовий пояс вашого Samba сервера. Ця інформація потрібна для правильного " +"налаштування інтервалу часу для дозволеного входу." + +#: ../lib/modules/sambaSamAccount.inc:321 +msgid "This is the user's primary Windows group." +msgstr "Це основна Windows група користувача." + +#: ../lib/modules/puppetClient.inc:89 +msgid "" +"This is this node's parent. All classes and variables are inherited from " +"this node." +msgstr "Це батьківський елемент. Всі класи та змінні успадковуються від нього." + +#: ../lib/modules/asteriskAccount.inc:156 +msgid "" +"This is typically used to allow incoming calls (e.g. from FWD) while having " +"a type=friend entry defined with username and password." +msgstr "" +"Це зазвичай використовуєтьсядля дозволу вхідних викликів ( наприклад, від " +"FWD) у випадку, якщо єзапис type=friend з паролем та іменем користувача." + +#: ../lib/modules/zarafaUser.inc:117 +msgid "This is used to mark this account as resource." +msgstr "Це використовується, щоб помітити цей акаунт як ресурс." + +#: ../lib/modules/posixAccount.inc:127 +msgid "This login shell is invalid!" +msgstr "Ця оболонка для входу неправильна!" + +#: ../lib/modules/inetLocalMailRecipient.inc:232 +msgid "This mail address is already in use:" +msgstr "Ця поштова адреса вже викорситовується:" + +#: ../lib/modules/imapAccess.inc:107 +msgid "This mailbox will be created/deleted." +msgstr "Цю поштову скриньку буде створено / видалено." + +#: ../lib/modules.inc:1237 +msgid "This may overwrite existing values with profile data. Continue?" +msgstr "Це може перезаписати існуючі значення з даними профілю. Продовжити?" + +#: ../lib/modules/customFields.inc:113 +msgid "" +"This message is shown when the field value does not match the validation " +"expression." +msgstr "" +"Це повідомлення показується у випадку, якщо значення поля не відповідає " +"виразу перевірки." + +#: ../templates/schema/schema.php:350 +msgid "This object class is obsolete." +msgstr "Цей клас об’єкту застарів." + +#: ../lib/modules/imapAccess.inc:84 +msgid "" +"This option allows you to disable the certificate check of your IMAP server " +"certificate. Disabling the certificate check is not recommended." +msgstr "" +"Ця опція дозволяє відключити перевірку сертифікату вашого IMAP сервера. " +"Відключення перевірки не рекомендується." + +#: ../lib/modules/sambaSamAccount.inc:340 +msgid "This option defines the allowed logon hours for this account." +msgstr "Ця опція встановлює дозволений час входу для цього акаунта." + +#: ../lib/modules/sambaSamAccount.inc:343 +msgid "" +"This option defines the allowed logon hours for this account. The format is " +"the same as for the LDAP attribute. The 24*7 hours are represented as 168 " +"bit which are saved as 21 hex (21*8 = 168) values. The first bit represents " +"Sunday 0:00 - 0:59 in GMT." +msgstr "" +"Ця опція встановлює дозволений час входу для цього акаунта.. Формат такий " +"же, як для атрибута LDAP/ Весь час (24*7) - це 168 біт, які зберігаються як " +"21 hex (21*8 = 168) значення.Перший біт представляє 0:00 - 0:59 GTM неділя." + +#: ../lib/modules/asteriskExtension.inc:192 +msgid "This pair of extension name and priority already exists." +msgstr "Така пара назви розширення та пріоритету вже існує." + +#: ../lib/modules/sambaSamAccount.inc:364 +msgid "This program is run after the login." +msgstr "Програма, що запускатиметься після входу." + +#: ../lib/modules/sambaSamAccount.inc:388 +msgid "This specifies the reconnect policy." +msgstr "Визначає політику перепідключення." + +#: ../lib/modules/zarafaDynamicGroup.inc:96 +#: ../lib/modules/zarafaContact.inc:107 ../lib/modules/zarafaGroup.inc:113 +#: ../lib/modules/zarafaAddressList.inc:84 ../lib/modules/zarafaUser.inc:172 +#: ../lib/modules/zarafaServer.inc:93 +msgid "" +"This specifies the used Zarafa LDAP schema. Select LDAP for e.g. OpenLDAP, " +"Apache Directory, OpenDJ and other non-Windows based LDAP servers. If you " +"run Zarafa against Samba 4 or Active Directory please select Active " +"Directory." +msgstr "" +"Це вказує використовувану в LDAP схему Zarafa. Виберіть LDAP для OpenLDAP, " +"Apache Directory, OpenDJ та інших LDAP серверів, які працюють на платформі " +"Windows. У випадку, якщо Zarafa працює з Samba 4 або Active Directory, " +"виберіть Active Directory." + +#: ../lib/modules/sambaSamAccount.inc:385 +msgid "This specifies what to do when the client connection is broken." +msgstr "Це визначає, що робити, якщо підключення клієта розірвалося." + +#: ../help/help.inc:227 +msgid "" +"This text is displayed on top of the self service login page. You can also " +"input HTML code here." +msgstr "" +"Цей текст буде нагорі вхідної сторінки сервісу самообслуговування. " +"Допускається HTML код." + +#: ../help/help.inc:229 +msgid "" +"This text is displayed on top of the self service main page. You can also " +"input HTML code here." +msgstr "" +"Цей текст буде нагорі головної сторінки сервісу самообслуговування. " +"Допускається HTML код." + +#: ../help/help.inc:239 +msgid "" +"This text is placed as label for the password field on the login page. LAM " +"will use \"Password\" if you do not enter any text." +msgstr "" +"Цей текст показується як мітка для поля введення пароля на сторінці входу. " +"LAM буде використовувати \"Пароль\", якщо ви не ввели ніякого тексту." + +#: ../help/help.inc:225 +msgid "" +"This text should shortly describe your selected LDAP search attribute (e.g. " +"email or user name)." +msgstr "" +"Цей текст коротко описує вибраний арибут для пошуку в LDAP (наприклад, " +"електронна пошта або псевдоім’я користувача)." + +#: ../lib/modules/selfRegistration.inc:107 +#: ../lib/modules/passwordSelfReset.inc:157 +msgid "This text will be printed on top of the page." +msgstr "Це текст буде розташовуватися вгорі сторінки." + +#: ../lib/modules/qmailUser.inc:240 +msgid "" +"This text will be sent as reply to all incoming mails if the delivery mode " +"is set to autoreply." +msgstr "" +"Цей текст буде надіслано як відповідь на всі вхідні повідомлення, у випадку, " +"якщо режим відправки встановлено у автовідповідач." + +#: ../lib/tools/pdfEdit.inc:53 +msgid "This tool allows you to customize the PDF pages." +msgstr "Ця утиліта дозволяє вам редагувати містиме PDF сторінок." + +#: ../templates/lists/changePassword.php:46 +#: ../templates/lists/changePassword.php:243 +msgid "This user is not supported or was not found." +msgstr "Такий користувач не підтримується або не знаходиться." + +#: ../lib/modules/windowsUser.inc:116 +msgid "This user name is only used for old Windows versions (e.g. NT4, W98)." +msgstr "" +"Це ім’я користувача буде використовуватися тільки для старих версій Windows " +"(наприклад, NT4, W98)." + +#: ../templates/lists/userlink.php:61 +msgid "This user was not found!" +msgstr "Такого користувача не знайдено!" + +#: ../lib/modules/zarafaUser.inc:414 +msgid "This value can only be \"Room\" or \"Equipment\"." +msgstr "Це значення може бути лише \"Кімната\" або \"Обладнання\"." + +#: ../lib/modules/zarafaDynamicGroup.inc:204 +#: ../lib/modules/zarafaDynamicGroup.inc:205 +#: ../lib/modules/zarafaContact.inc:189 ../lib/modules/zarafaContact.inc:190 +#: ../lib/modules/zarafaGroup.inc:219 ../lib/modules/zarafaGroup.inc:220 +#: ../lib/modules/zarafaGroup.inc:221 ../lib/modules/zarafaAddressList.inc:171 +#: ../lib/modules/zarafaAddressList.inc:172 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 ../lib/modules/posixAccount.inc:128 +#: ../lib/modules/zarafaUser.inc:421 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:424 ../lib/modules/zarafaUser.inc:425 +#: ../lib/modules/zarafaUser.inc:426 ../lib/modules/zarafaUser.inc:427 +#: ../lib/modules/ppolicyUser.inc:97 ../lib/modules/inetOrgPerson.inc:106 +#: ../lib/modules/zarafaServer.inc:179 +msgid "This value can only be \"true\" or \"false\"." +msgstr "Це значення може бути лише \"true\" або \"false\"." + +#: ../lib/modules/zarafaUser.inc:422 +msgid "This value can only be \"true\", \"false\" or \"system\"." +msgstr "Це значення може бути лише \"true\", \"false\" або \"system\"." + +#: ../lib/modules/posixGroup.inc:611 +msgid "This value must be a list of user names separated by semicolons." +msgstr "" +"Цей запис повинен бути списком псевдоімен користувачів, розділених крапкою з " +"комою." + +#: ../help/help.inc:264 +msgid "This will create a new organisational unit under the selected one." +msgstr "Це створить нову організаційну одиницю, що входить у вибрану." + +#: ../lib/modules/posixAccount.inc:482 +msgid "This will create the user's home directory on the specified server." +msgstr "Це створить домашній каталог користувача на вказаному сервері." + +#: ../help/help.inc:266 +msgid "" +"This will delete the selected organisational unit. The OU has to be empty." +msgstr "Це вилучить вибрану організаційну одиницю. OU повинна бути порожня." + +#: ../help/help.inc:135 +msgid "This will delete the selected profile." +msgstr "Це вилучить вибраний профіль." + +#: ../lib/modules/kolabGroup.inc:118 ../lib/modules/puppetClient.inc:109 +#: ../lib/modules/qmailUser.inc:264 ../lib/modules/zarafaContact.inc:88 +#: ../lib/modules/posixGroup.inc:538 ../lib/modules/eduPerson.inc:151 +#: ../lib/modules/pykotaGroup.inc:130 ../lib/modules/sambaSamAccount.inc:403 +#: ../lib/modules/posixAccount.inc:433 ../lib/modules/zarafaUser.inc:137 +#: ../lib/modules/pykotaUser.inc:161 ../lib/modules/shadowAccount.inc:198 +#: ../lib/modules/qmailGroup.inc:233 +#: ../lib/modules/authorizedServiceObject.inc:90 +#: ../lib/modules/passwordSelfReset.inc:153 ../lib/modules/hostObject.inc:84 +msgid "This will enable the extension automatically if this profile is loaded." +msgstr "Це включить розширення автоматично, якщо завантажено цей профіль." + +#: ../lib/modules/customScripts.inc:93 +msgid "" +"This will hide the custom scripts tab when you edit an account. Manual " +"actions are not possible when the tab is not visible." +msgstr "" +"Це буде приховувати вкладку користувацьких скриптів при редагуванні акаунта. " +"Інструкція до дії неможлива, коли вкладки не видно." + +#: ../lib/modules/sambaSamAccount.inc:265 +msgid "This will reset the host's password to a default value." +msgstr "Це скине пароль хоста в типове значення." + +#: ../templates/lists/changePassword.php:311 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail." +msgstr "" +"Це становить випадковий пароль та покаже його на екрані або надішле його " +"користувачу на пошту." + +#: ../help/help.inc:245 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail. Please edit your LAM server profile to setup the mail " +"settings." +msgstr "" +"Це встановить випадковий пароль та покаже його на екрані або надішле його " +"користувачу поштою. Будь ласка, відредагуйте профайл вашого сервера LAM, щоб " +"налаштувати пошту." + +#: ../lib/modules/kolabGroup.inc:114 ../lib/modules/kolabUser.inc:179 +#: ../lib/modules/kolabSharedFolder.inc:167 +msgid "" +"This will set a special flag on the account which tells Kolabd to remove it. " +"Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes)." +msgstr "" +"Це встановлює спеціальний прапорець, який призначає Kolabd вилучити цей " +"акаунт. Використовуйте це для повного вилучення Kolab акаунтів (наприклад, " +"це видаляє поштові скриньки)." + +#: ../lib/modules/qmailUser.inc:212 +msgid "" +"This will set the user's account status. You may disable the mail account " +"here." +msgstr "" +"Тут можна задати стату акаунта користувача. Ви можете вимкнути тут поштовий " +"акаунт." + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Thursday" +msgstr "Четвер" + +#: ../lib/modules/mitKerberos.inc:136 ../lib/modules/mitKerberos.inc:195 +#: ../lib/modules/mitKerberos.inc:230 ../lib/modules/mitKerberos.inc:254 +#: ../lib/modules/mitKerberos.inc:355 ../lib/modules/mitKerberos.inc:775 +#: ../lib/modules/heimdalKerberos.inc:110 +#: ../lib/modules/heimdalKerberos.inc:164 +#: ../lib/modules/heimdalKerberos.inc:199 +#: ../lib/modules/heimdalKerberos.inc:221 +#: ../lib/modules/heimdalKerberos.inc:302 +#: ../lib/modules/heimdalKerberos.inc:687 +msgid "Ticket lifetime" +msgstr "Час життя квитка" + +#: ../lib/modules/mitKerberos.inc:293 ../lib/modules/mitKerberos.inc:294 +#: ../lib/modules/heimdalKerberos.inc:257 +#: ../lib/modules/heimdalKerberos.inc:258 +msgid "Ticket lifetime must be a number." +msgstr "Час життя квитка повинен бути числом." + +#: ../lib/modules/sambaSamAccount.inc:1397 +msgid "Time" +msgstr "Час" + +#: ../lib/modules/sambaSamAccount.inc:369 +msgid "Time limit" +msgstr "Ліміт часу" + +#: ../lib/modules/sambaSamAccount.inc:348 +#: ../lib/modules/sambaSamAccount.inc:579 +msgid "Time zone" +msgstr "Часовий пояс" + +#: ../lib/modules/bindDLZ.inc:94 ../lib/modules/bindDLZ.inc:98 +#: ../lib/modules/bindDLZ.inc:103 ../lib/modules/bindDLZ.inc:108 +#: ../lib/modules/bindDLZ.inc:113 ../lib/modules/bindDLZ.inc:118 +#: ../lib/modules/bindDLZ.inc:123 ../lib/modules/bindDLZ.inc:254 +#: ../lib/modules/bindDLZ.inc:267 ../lib/modules/bindDLZ.inc:287 +#: ../lib/modules/bindDLZ.inc:300 ../lib/modules/bindDLZ.inc:331 +#: ../lib/modules/bindDLZ.inc:363 ../lib/modules/bindDLZ.inc:375 +#: ../lib/modules/bindDLZ.inc:402 ../lib/modules/bindDLZ.inc:423 +#: ../lib/modules/bindDLZ.inc:469 ../lib/modules/bindDLZ.inc:472 +#: ../lib/modules/bindDLZ.inc:474 ../lib/modules/bindDLZ.inc:476 +#: ../lib/modules/bindDLZ.inc:478 ../lib/modules/bindDLZ.inc:480 +#: ../lib/modules/bindDLZ.inc:482 ../lib/modules/bindDLZ.inc:484 +#: ../lib/modules/bindDLZ.inc:486 ../lib/modules/bindDLZ.inc:651 +#: ../lib/modules/bindDLZ.inc:754 ../lib/modules/bindDLZ.inc:833 +#: ../lib/modules/bindDLZ.inc:922 ../lib/modules/bindDLZ.inc:1034 +#: ../lib/modules/bindDLZ.inc:1166 ../lib/modules/bindDLZ.inc:1244 +#: ../lib/modules/bindDLZ.inc:1370 ../lib/modules/bindDLZ.inc:1473 +#: ../lib/modules/bindDLZ.inc:1493 ../lib/modules/bindDLZ.inc:1514 +#: ../lib/modules/bindDLZ.inc:1548 ../lib/modules/bindDLZ.inc:1573 +#: ../lib/modules/bindDLZ.inc:1603 +msgid "Timeout" +msgstr "Тайм-аут" + +#: ../lib/modules/bindDLZ.inc:430 +msgid "Timeouts" +msgstr "Тайм-аути" + +#: ../lib/modules/pykotaUser.inc:654 ../lib/modules/pykotaUser.inc:1003 +msgid "Title" +msgstr "Заголовок" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:45 +msgid "To" +msgstr "Кому" + +#: ../lib/modules/posixAccount.inc:531 +msgid "To disable login use /bin/false." +msgstr "Для відключення можливості входу в систему використовуйте /bin/false." + +#: ../lib/modules/sambaSamAccount.inc:573 +msgid "Tokyo, Seoul, Osaka, Yakutsk" +msgstr "Tokyo, Seoul, Osaka, Yakutsk" + +#: ../templates/config/confmain.php:406 +msgid "Tool settings" +msgstr "Налаштування утиліт" + +#: ../templates/tools.php:63 ../templates/main_header.php:147 +msgid "Tools" +msgstr "Утиліти" + +#: ../templates/serverInfo.php:357 +msgid "Total" +msgstr "Всього" + +#: ../templates/serverInfo.php:242 ../templates/serverInfo.php:247 +msgid "Total connections" +msgstr "Всього підключень" + +#: ../templates/3rdParty/pla/lib/export_functions.php:202 +msgid "Total entries" +msgstr "Всього записів" + +#: ../lib/modules/pykotaUser.inc:141 +msgid "Total money paid by the user." +msgstr "Всього грошей, сплачених користувачем." + +#: ../lib/modules/pykotaUser.inc:140 ../lib/modules/pykotaUser.inc:264 +#: ../lib/modules/pykotaUser.inc:586 ../lib/modules/pykotaUser.inc:901 +#: ../lib/modules/pykotaUser.inc:954 +msgid "Total paid" +msgstr "Всього сплачено" + +#: ../lib/modules/pykotaUser.inc:282 +msgid "Total paid (read-only)" +msgstr "Всього сплачено (тільки чатання)" + +#: ../lib/types/user.inc:682 +msgid "Translate GID number to group name" +msgstr "Перетворити GID в назву групи" + +#: ../templates/config/confmain.php:247 ../help/help.inc:77 +msgid "Tree suffix" +msgstr "Суфікс дерева" + +#: ../templates/multiEdit.php:92 ../templates/main_header.php:178 +msgid "Tree view" +msgstr "Перегляд дерева" + +#: ../templates/config/confmain.php:567 +msgid "TreeSuffix is invalid!" +msgstr "Суфікс дерева неправильний!" + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Tuesday" +msgstr "Вівторок" + +#: ../templates/multiEdit.php:118 ../templates/selfService/profManage.php:206 +#: ../templates/schema/schema.php:348 ../lib/modules/zarafaUser.inc:116 +#: ../lib/modules/zarafaUser.inc:238 ../lib/modules/zarafaUser.inc:361 +#: ../lib/modules/zarafaUser.inc:535 ../lib/modules/zarafaUser.inc:1251 +#: ../lib/modules/zarafaUser.inc:1797 ../lib/modules/kolabSharedFolder.inc:162 +#: ../lib/modules/kolabSharedFolder.inc:201 +#: ../lib/modules/kolabSharedFolder.inc:241 +#: ../lib/modules/kolabSharedFolder.inc:302 +#: ../lib/modules/kolabSharedFolder.inc:571 +#: ../lib/modules/customFields.inc:100 ../lib/modules/customFields.inc:1070 +#: ../lib/modules/customFields.inc:1702 +msgid "Type" +msgstr "Тип" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:210 ../lib/modules/posixAccount.inc:228 +#: ../lib/modules/posixAccount.inc:497 +msgid "UID generator" +msgstr "Генератор UID" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID has changed. Do you want to change home directory?" +msgstr "UID змінено. Хочете змінити домашній каталог?" + +#: ../lib/modules/posixAccount.inc:107 +msgid "" +"UID must be a number. It has to be inside the UID range which is defined in " +"your configuration profile." +msgstr "" +"UID повинен бути числом. UID повинен бути в діапазоні, визначеному в " +"конфігураційному профілі." + +#: ../lib/types/host.inc:95 ../lib/types/user.inc:92 +#: ../lib/modules/qmailUser.inc:112 ../lib/modules/qmailUser.inc:231 +#: ../lib/modules/qmailUser.inc:332 ../lib/modules/qmailUser.inc:418 +#: ../lib/modules/qmailUser.inc:570 ../lib/modules/qmailUser.inc:1142 +#: ../lib/modules/posixAccount.inc:108 ../lib/modules/posixAccount.inc:291 +#: ../lib/modules/posixAccount.inc:383 ../lib/modules/posixAccount.inc:412 +#: ../lib/modules/posixAccount.inc:449 ../lib/modules/posixAccount.inc:453 +#: ../lib/modules/posixAccount.inc:461 ../lib/modules/posixAccount.inc:1433 +#: ../lib/modules/posixAccount.inc:1852 +msgid "UID number" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:108 +#, php-format +msgid "" +"UID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -uid %s -exec chown %s {} \\;'" +msgstr "" +"UID змінено. Щоб не втратити власника файлів необхідно виконати з під root: " +"'find / -uid %s -exec chown %s {} \\;'" + +#: ../lib/modules/qmailUser.inc:463 +msgid "UID number is already in use." +msgstr "Такий UID вже використовується." + +#: ../lib/modules/posixAccount.inc:99 +msgid "UID ranges for Unix accounts" +msgstr "Діапазон UID для Unix акаунтів" + +#: ../lib/modules/sambaSamAccount.inc:306 +msgid "" +"UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced " +"with user and group name." +msgstr "" +"UNC-шлях (\\\\server\\share) для домашнього каталогу. Замість $user та " +"$group буде підставлено ім’я користувача та групи." + +#: ../lib/modules/windowsUser.inc:248 +msgid "" +"UNC-path (\\\\server\\share\\) of home directory. If no home drive is set " +"then this directory must start with a drive letter (e.g. \"c:\\dir\\user\")." +msgstr "" +"UNC-шлях (\\\\server\\share\\) до домашнього каталогу. Якщо домашній диск " +"не встановлено, то цей каталог повинен починатися з літери диску (наприклад, " +"\"c:\\dir\\user\")." + +#: ../lib/modules/eduPerson.inc:119 ../lib/modules/eduPerson.inc:123 +msgid "" +"URI (either URN or URL) that indicates a set of rights to specific resources." +msgstr "URI ( URN або URL), що показує права на визначені ресурси." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1883 +msgid "URL" +msgstr "URL" + +#: ../lib/modules/bindDLZ.inc:1687 ../lib/modules/bindDLZ.inc:2302 +msgid "Unable to add DNS record." +msgstr "Не вдається додати запис DNS." + +#: ../lib/modules/imapAccess.inc:180 +msgid "Unable to change ACL on IMAP server for mailbox deletion." +msgstr "" +"Не вдається змінити ACL на сервері IMAP для вилучення поштової скриньки." + +#: ../lib/modules/mitKerberos.inc:1155 ../lib/modules/mitKerberos.inc:1159 +#: ../lib/modules/heimdalKerberos.inc:1024 +msgid "Unable to change Kerberos password." +msgstr "Не вдається змінити пароль Kerberos." + +#: ../lib/modules/windowsUser.inc:1847 ../lib/modules/windowsUser.inc:1873 +msgid "Unable to change password." +msgstr "Не вдається змінити пароль." + +#: ../templates/selfService/selfServiceMain.php:338 +msgid "" +"Unable to change your account. Maybe you do not have enough rights to change " +"the settings." +msgstr "" +"Не вдається змінити Ваш акаунт. Можливо у вас недостатньо прав для змін." + +#: ../templates/selfService/selfServiceMain.php:335 +msgid "" +"Unable to change your account. Your changes might violate the password " +"policy." +msgstr "" +"Не вдається змінити Ваш акаунт. Ваші зміни можуть не відповідати політиці " +"паролів." + +#: ../templates/tests/lamdaemonTest.php:261 ../lib/lamdaemon.inc:76 +#: ../lib/lamdaemon.inc:81 +msgid "Unable to connect to remote server!" +msgstr "Не вдається підключитися до віддаленого сервера!" + +#: ../templates/massDoUpload.php:193 +msgid "Unable to create ZIP file for PDF export." +msgstr "Не вдаєтьсяс творити ZIP файл для експорта PDF." + +#: ../lib/modules/selfRegistration.inc:699 +#: ../lib/modules/selfRegistration.inc:703 +msgid "Unable to create account." +msgstr "Не вдається створити акаунт." + +#: ../lib/modules/imapAccess.inc:182 +msgid "Unable to create mailbox on IMAP server." +msgstr "Не вдається створити поштову скриньку на сервері IMAP." + +#: ../templates/ou_edit.php:80 +msgid "Unable to create new OU!" +msgstr "Не вдається створити нову OU!" + +#: ../lib/types/automountType.inc:270 +msgid "Unable to create new automount map." +msgstr "Не вдається створити нову карту автомонтування." + +#: ../templates/config/profmanage.php:82 +#: ../templates/selfService/profManage.php:59 +msgid "Unable to create new profile!" +msgstr "Не вдається створити новий профіль!" + +#: ../lib/types/bind.inc:215 +msgid "Unable to create new zone." +msgstr "Не вдається створити нову зону." + +#: ../lib/modules/bindDLZ.inc:1677 +#, php-format +msgid "Unable to delete DNS record \"%s\"." +msgstr "Не вдається вилучити запис DNS \"%s\"." + +#: ../templates/ou_edit.php:97 +msgid "Unable to delete OU!" +msgstr "Не вдається вилучити OU!" + +#: ../templates/pdfedit/pdfmain.php:94 +msgid "Unable to delete PDF structure!" +msgstr "Не вдається вилучити PDF структуру!" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:25 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:57 +msgid "Unable to delete entry, it does not exist" +msgstr "Не вдається вилучити запис, його не існує" + +#: ../lib/pdfstruct.inc:291 ../lib/pdfstruct.inc:303 +msgid "Unable to delete logo file." +msgstr "Не вдається вилучити файл логотипу." + +#: ../lib/modules/imapAccess.inc:181 +msgid "Unable to delete mailbox from IMAP server." +msgstr "Не вдається вилучити поштову скриньку з вервера IMAP." + +#: ../templates/config/profmanage.php:123 +#: ../templates/selfService/profManage.php:87 +#: ../templates/profedit/profilemain.php:108 ../lib/config.inc:154 +#: ../lib/config.inc:166 ../lib/config.inc:173 ../lib/config.inc:181 +msgid "Unable to delete profile!" +msgstr "Не вдається вилучити профіль!" + +#: ../lib/modules/pykotaPrinter.inc:220 +#, php-format +msgid "Unable to find a printer with name \"%s\"." +msgstr "Не вдається знайти принтер з назвою \"%s\"." + +#: ../lib/modules/posixAccount.inc:2072 ../lib/modules/posixAccount.inc:2081 +#: ../lib/modules/posixAccount.inc:2347 ../lib/modules/nisnetgroup.inc:543 +#: ../lib/modules/groupOfNamesUser.inc:388 +msgid "Unable to find group in LDAP." +msgstr "Не вдається знайти групу в LDAP." + +#: ../lib/modules/passwordSelfReset.inc:950 +msgid "Unable to find password security answer for this account." +msgstr "Не вдається знайти парольну секретну відповідь для цього акаунта." + +#: ../lib/modules/passwordSelfReset.inc:942 +#: ../lib/modules/passwordSelfReset.inc:1161 +msgid "Unable to find password security question for this account." +msgstr "Не вдається знайти парольне секретне питання для цього акаунта." + +#: ../lib/modules/organizationalRoleUser.inc:334 +msgid "Unable to find role in LDAP." +msgstr "Не вдається знайти роль в LDAP." + +#: ../templates/login.php:591 ../templates/login.php:597 +msgid "Unable to find the user name in LDAP." +msgstr "Не вдається знайти псевдоім’я користувача в LDAP." + +#: ../lib/modules/passwordSelfReset.inc:933 +#: ../lib/modules/passwordSelfReset.inc:1242 +msgid "Unable to find user account." +msgstr "Не вдається знайти акаунт користувача." + +#: ../templates/config/mainmanage.php:194 +msgid "Unable to import server certificate. Please use the upload function." +msgstr "" +"Не вдається імпортувати сертифікат сервера. Будь ласка, використайте функцію " +"завантаження." + +#: ../lib/modules.inc:1521 ../lib/modules.inc:1525 +msgid "Unable to load LDAP entry:" +msgstr "Не вдається завантажити запис LDAP:" + +#: ../lib/profiles.inc:98 ../lib/profiles.inc:102 ../lib/selfService.inc:196 +#: ../lib/selfService.inc:200 +msgid "Unable to load profile!" +msgstr "Не вдається завантажити профіль!" + +#: ../lib/modules/imapAccess.inc:183 +msgid "Unable to locate mailbox on IMAP." +msgstr "Не вдається знайти проштову скриньку IMAP." + +#: ../lib/modules/inetOrgPerson.inc:101 +msgid "Unable to process this file." +msgstr "Не вдається обробити цей файл." + +#: ../templates/3rdParty/pla/lib/import_functions.php:388 +#: ../templates/3rdParty/pla/lib/import_functions.php:393 +msgid "Unable to read file." +msgstr "Не вдається прочитати файл." + +#: ../lib/modules/selfRegistration.inc:692 +msgid "Unable to register your new account. Please try again." +msgstr "Не вдається зареєструвати ваш новий акаунт. Спробуйте ще раз." + +#: ../lib/modules/passwordSelfReset.inc:1440 +#: ../lib/modules/passwordSelfReset.inc:1449 +#: ../lib/modules/passwordSelfReset.inc:1455 +#: ../lib/modules/passwordSelfReset.inc:1464 +msgid "Unable to reset password." +msgstr "Не вдається скинути пароль." + +#: ../templates/3rdParty/pla/lib/functions.php:1945 +msgid "Unable to retrieve image" +msgstr "Не вдається отримати зображення" + +#: ../templates/tests/schemaTest.php:61 ../templates/schema/schema.php:93 +#: ../templates/schema/schema.php:111 ../templates/schema/schema.php:272 +#: ../templates/schema/schema.php:306 +msgid "Unable to retrieve schema!" +msgstr "Не вдається отримати схему!" + +#: ../templates/selfService/adminMain.php:283 +#: ../templates/profedit/profilepage.php:124 +msgid "Unable to save profile!" +msgstr "Не вдається зберегти профайл!" + +#: ../lib/account.inc:999 ../lib/account.inc:1037 +msgid "Unable to send mail!" +msgstr "Не вдається надіслати листа!" + +#: ../lib/modules/bindDLZ.inc:1712 +#, php-format +msgid "Unable to update DNS record \"%s\"." +msgstr "Не вдається оновити запис DNS \"%s\"." + +#: ../lib/pdfstruct.inc:249 ../lib/pdfstruct.inc:259 ../lib/pdfstruct.inc:262 +msgid "Unable to upload logo file." +msgstr "Не вдається завантажити файл логотипу." + +#: ../lib/modules/passwordSelfReset.inc:999 +#: ../lib/modules/passwordSelfReset.inc:1254 +msgid "Unable to verify your password reset request. Please try again." +msgstr "Не вдається перевірити ваш запис на скидання пароля. Спробуйте ще раз." + +#: ../lib/modules/selfRegistration.inc:726 +msgid "Unable to verify your user creation request. Please try again." +msgstr "" +"Не вдається перевірити ваш запит на створення користувача. Спробуйте ще раз." + +#: ../templates/serverInfo.php:293 +msgid "Unbind" +msgstr "Відв’язати" + +#: ../lib/modules/windowsGroup.inc:66 +msgid "Universal" +msgstr "Універсальний" + +#: ../templates/lists/changePassword.php:398 +#: ../templates/lists/changePassword.php:429 ../lib/types/user.inc:268 +#: ../lib/types/user.inc:368 ../lib/types/user.inc:400 +#: ../lib/types/user.inc:821 ../lib/modules/posixGroup.inc:373 +#: ../lib/modules/posixAccount.inc:168 +msgid "Unix" +msgstr "Unix" + +#: ../templates/tests/lamdaemonTest.php:214 +msgid "Unix account" +msgstr "Unix акаунт" + +#: ../lib/modules/posixAccount.inc:263 ../lib/modules/posixAccount.inc:1566 +msgid "Unix groups" +msgstr "Unix групи" + +#: ../lib/modules/dhcp_settings.inc:201 ../lib/modules/dhcp_settings.inc:218 +#: ../lib/modules/dhcp_settings.inc:294 ../lib/modules/dhcp_settings.inc:602 +#: ../lib/modules/dhcp_settings.inc:682 +msgid "Unknown clients" +msgstr "Невідомі клієнти" + +#: ../lib/modules/kolabUser.inc:252 ../lib/modules/kolabSharedFolder.inc:256 +#, php-format +msgid "Unknown delegate address: %s" +msgstr "Невідома адреса делегата: %s" + +#: ../templates/3rdParty/pla/lib/import_functions.php:233 +msgid "Unkown change type" +msgstr "Невідомий тип для зміни" + +#: ../lib/types/user.inc:349 ../lib/types/user.inc:354 +#: ../lib/modules/windowsUser.inc:732 +msgid "Unlock" +msgstr "Розблокувати" + +#: ../templates/lists/changePassword.php:205 +#: ../templates/lists/changePassword.php:395 +#: ../templates/lists/changePassword.php:415 +#: ../templates/lists/changePassword.php:417 +#: ../lib/modules/ppolicyUser.inc:146 +msgid "Unlock account" +msgstr "Розблокувати акаунт" + +#: ../templates/lists/changePassword.php:265 +msgid "Unlock account?" +msgstr "Розблокувати акаунт?" + +#: ../lib/modules/posixGroup.inc:211 ../lib/modules/posixAccount.inc:1502 +#: ../lib/modules/inetOrgPerson.inc:1562 +msgid "Unlock password" +msgstr "Розблокувати пароль" + +#: ../templates/masscreate.php:107 ../templates/config/confmodules.php:386 +msgid "Unsolved dependency:" +msgstr "Недозволена залежність:" + +#: ../templates/pdfedit/pdfpage.php:473 +msgid "Up" +msgstr "Нагору" + +#: ../templates/lists/changePassword.php:220 +msgid "Update Samba password timestamp" +msgstr "Оновити timestamp пароля Samba" + +#: ../lib/modules/sambaSamAccount.inc:249 +msgid "Update attribute \"sambaPwdLastSet\" on password change" +msgstr "Оновити атрибут \"sambaPwdLastSet\" при зміні пароля" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1440 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:194 +msgid "Update object" +msgstr "Оновити об’єкт" + +#: ../lib/modules/imapAccess.inc:322 ../lib/modules/imapAccess.inc:331 +msgid "Update quota" +msgstr "Оновити квоту" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:165 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:129 +msgid "Update values" +msgstr "Оновити значення" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:118 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:118 +msgid "Updating object" +msgstr "Оновлення об’єкту" + +#: ../templates/config/mainmanage.php:334 ../templates/pdfedit/pdfmain.php:247 +#: ../lib/modules/ldapPublicKey.inc:126 ../lib/modules/inetOrgPerson.inc:1830 +msgid "Upload" +msgstr "Завантажити" + +#: ../templates/config/mainmanage.php:336 +msgid "Upload CA certificate in DER/PEM format." +msgstr "Завантажити сертифікат CA у форматі DER/PEM." + +#: ../lib/modules/ldapPublicKey.inc:81 +msgid "Upload a file with one or more keys. Each line contains one key." +msgstr "" +"Завантажити файл з одним або більше ключами. Кожен рядок містить один ключ." + +#: ../templates/massBuildAccounts.php:242 +msgid "Upload accounts to LDAP" +msgstr "Завантажити акаунти в LDAP" + +#: ../lib/modules/ldapPublicKey.inc:122 ../lib/modules/customFields.inc:164 +#: ../lib/modules/customFields.inc:3428 +msgid "Upload file" +msgstr "Завантажити файл" + +#: ../templates/masscreate.php:277 +msgid "Upload file and create accounts" +msgstr "Завантажити файл та створити акаунти" + +#: ../templates/massDoUpload.php:254 ../lib/lists.inc:1071 +msgid "Upload has finished" +msgstr "Завантаження завершено" + +#: ../lib/modules.inc:504 +#, php-format +msgid "Upload was stopped after errors in %s module!" +msgstr "Завантаження зупинено після помилок в %s модулі!" + +#: ../lib/pdfstruct.inc:256 +msgid "Uploaded logo file." +msgstr "Завантажений файл логотипу." + +#: ../templates/serverInfo.php:222 +msgid "Uptime" +msgstr "Час роботи" + +#: ../templates/schema/schema.php:209 +msgid "Usage" +msgstr "Використання" + +#: ../lib/modules/authorizedServiceObject.inc:82 +#: ../lib/modules/authorizedServiceObject.inc:86 +msgid "Use * for all services." +msgstr "Використовуйте * для всіх сервісів." + +#: ../lib/modules/sambaSamAccount.inc:267 +#: ../lib/modules/sambaSamAccount.inc:270 +#: ../lib/modules/sambaSamAccount.inc:431 +msgid "Use Unix password" +msgstr "Використати Unix пароль" + +#: ../templates/selfService/adminMain.php:469 ../help/help.inc:242 +msgid "Use for all operations" +msgstr "Використовувати для всіх операцій" + +#: ../lib/modules/sambaSamAccount.inc:273 +#: ../lib/modules/sambaSamAccount.inc:276 +#: ../lib/modules/sambaSamAccount.inc:439 +#: ../lib/modules/sambaSamAccount.inc:1143 +#: ../lib/modules/sambaSamAccount.inc:1733 +msgid "Use no password" +msgstr "Не використовувати пароль" + +#: ../help/help.inc:272 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of entries to modify." +msgstr "" +"Використовуйте це, щоб ввести додатковий фільтр LDAP (наприклад, \"(cn! = " +"admin)\"), щоб зменшити кількість записів при зміні." + +#: ../help/help.inc:171 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of visible elements for this account type." +msgstr "" +"Використовуйте це для визначення додаткового фільтру LDAP (наприклад, \"(cn!" +"=admin)\") для зменшення кількості видимих елементів цього типу акаунта." + +#: ../help/help.inc:241 +msgid "" +"Use this to enter an additional LDAP filter (e.g. " +"\"(objectClass=passwordSelfReset)\") to reduce the number of accounts who " +"may use self service." +msgstr "" +"Використовуйте це для визначення додаткового фільтру LDAP (наприклад, " +"\"(objectClass=passwordSelfReset)\") для зменшення кількості акаутів, яким " +"дозволено використовувати сервіс самообслуговування." + +#: ../lib/modules/asteriskAccount.inc:188 +msgid "Use this to hide the caller ID." +msgstr "Використовуйте це для приховування caller ID." + +#: ../lib/modules/zarafaDynamicGroup.inc:80 +#: ../lib/modules/zarafaContact.inc:72 ../lib/modules/zarafaGroup.inc:86 +#: ../lib/modules/zarafaAddressList.inc:68 ../lib/modules/zarafaUser.inc:81 +msgid "Use this to hide this entry from the address book." +msgstr "Використовуйте це для приховування цього запису з адресної книги." + +#: ../lib/modules/sambaGroupMapping.inc:167 +msgid "" +"Use this to specify other groups or accounts from other domains as group " +"members." +msgstr "" +"Використовуйте це, щоб визначити групи або акаунти з інших доменів як " +"учасників групи." + +#: ../lib/modules/imapAccess.inc:87 +msgid "" +"Use wildcards like $uid$ for LDAP attributes of the current LAM admin user." +msgstr "" +"Використовуйте шаблон $uid$ для підстановки LDAP атрибутів поточного LAM " +"адміністратора." + +#: ../lib/modules/pykotaBillingCode.inc:86 +msgid "Used balance for the billing code." +msgstr "Використано баланс для коду оплати." + +#: ../lib/modules/quota.inc:109 ../lib/modules/quota.inc:400 +msgid "Used blocks" +msgstr "Зайнято блоків" + +#: ../lib/modules/quota.inc:110 +msgid "Used blocks. 1000 blocks are usually 1MB" +msgstr "" +"Зайнято блоків, що використовуються користувачем. 1000 блоків - це зазвичай " +"1 Мб." + +#: ../templates/schema/schema.php:268 +msgid "Used by attributes" +msgstr "Використано атрибутами" + +#: ../templates/schema/schema.php:237 +msgid "Used by object classes" +msgstr "Використано класами об’єктів" + +#: ../lib/modules/sambaDomain.inc:98 +msgid "Used for calculating RIDs from UID/GID. Do not change if unsure." +msgstr "" +"Використано для обрахування RID з UID/GID. Не змінюйте, якщо не впевнені." + +#: ../lib/modules/asteriskAccount.inc:220 +msgid "Used for registration context." +msgstr "Використовується для контексту реєстрації." + +#: ../lib/modules/quota.inc:131 ../lib/modules/quota.inc:404 +msgid "Used inodes" +msgstr "inodes використано" + +#: ../lib/modules/quota.inc:132 +msgid "Used inodes (files)" +msgstr "inodes (files) використано" + +#: ../lib/modules/asteriskAccount.inc:192 +msgid "Used to automatically hangup the call if no RTP traffic is received." +msgstr "" +"Викорситовується для автоматичного скидання дзвінка у випадку відсутності " +"трафіка RTP." + +#: ../lib/modules/asteriskAccount.inc:168 +#: ../lib/modules/asteriskAccount.inc:172 +msgid "" +"Used to limit SIP traffic to and from this peer to a certain IP or network." +msgstr "" +"Використовується для обмеження вхідного / вихідного SIP трафіка цього " +"учасника до конкретного IP або мережі." + +#: ../lib/modules/asteriskAccount.inc:184 +msgid "Used to regularly check that a device is still online." +msgstr "Використовується для регулярної перевірки роботоздатності пристрою." + +#: ../lib/types/sudo.inc:78 ../lib/modules/nisnetgroup.inc:220 +#: ../lib/modules/nisnetgroup.inc:586 ../lib/modules/nisMailAlias.inc:350 +msgid "User" +msgstr "Користувач" + +#: ../lib/types/user.inc:62 +msgid "User accounts (e.g. Unix, Samba and Kolab)" +msgstr "Акаунт користувача (наприклад, Unix, Samba та Kolab)" + +#: ../lib/modules/asteriskAccount.inc:127 +#: ../lib/modules/asteriskAccount.inc:270 +#: ../lib/modules/asteriskAccount.inc:340 +#: ../lib/modules/asteriskAccount.inc:598 +#: ../lib/modules/asteriskAccount.inc:986 +#: ../lib/modules/asteriskAccount.inc:1241 +msgid "User agent" +msgstr "User agent" + +#: ../lib/modules/sambaSamAccount.inc:297 +#: ../lib/modules/sambaSamAccount.inc:1167 +msgid "User can change password" +msgstr "Користувач може змінювати пароль" + +#: ../lib/modules/inetOrgPerson.inc:163 ../lib/modules/inetOrgPerson.inc:844 +#: ../lib/modules/inetOrgPerson.inc:1507 ../lib/modules/inetOrgPerson.inc:2719 +#: ../lib/modules/inetOrgPerson.inc:3561 +msgid "User certificates" +msgstr "Сертифікати користувача" + +#: ../lib/types/user.inc:529 +#, php-format +msgid "User count: %s" +msgstr "Кількість користувачів: %s" + +#: ../lib/modules/pykotaUser.inc:121 +msgid "User description." +msgstr "Опис користувача." + +#: ../lib/modules/posixAccount.inc:511 +msgid "User description. If left empty first and last name will be used." +msgstr "" +"Опис користувача. Якщо не задано, використовуватимуться ім’я та прізвище." + +#: ../lib/modules/inetOrgPerson.inc:633 +msgid "User description. If left empty sur- and give name will be used." +msgstr "" +"Опис користувача. Якщо не задано, використовуватимуться ім’я та прізвище." + +#: ../lib/modules/account.inc:106 +msgid "User description. If left empty user name will be used." +msgstr "" +"Опис користувача. Якщо не задано, використовуватимуться псевдоім’я " +"користувача." + +#: ../templates/schema/schema.php:204 +msgid "User modification" +msgstr "Зміни користувача" + +#: ../lib/modules/mitKerberos.inc:224 ../lib/modules/mitKerberos.inc:250 +#: ../lib/modules/mitKerberos.inc:374 ../lib/modules/mitKerberos.inc:639 +#: ../lib/modules/mitKerberos.inc:779 ../lib/modules/sambaSamAccount.inc:299 +#: ../lib/modules/sambaSamAccount.inc:1173 ../lib/modules/windowsUser.inc:741 +#: ../lib/modules/heimdalKerberos.inc:106 +#: ../lib/modules/heimdalKerberos.inc:193 +#: ../lib/modules/heimdalKerberos.inc:220 +#: ../lib/modules/heimdalKerberos.inc:332 +#: ../lib/modules/heimdalKerberos.inc:549 +#: ../lib/modules/heimdalKerberos.inc:683 +msgid "User must change password" +msgstr "Користувач повинен змінити пароль" + +#: ../templates/lists/changePassword.php:276 ../templates/login.php:334 +#: ../lib/types/alias.inc:91 ../lib/types/user.inc:91 +#: ../lib/selfService.inc:385 ../lib/modules/mitKerberos.inc:116 +#: ../lib/modules/mitKerberos.inc:211 ../lib/modules/mitKerberos.inc:249 +#: ../lib/modules/mitKerberos.inc:343 ../lib/modules/mitKerberos.inc:766 +#: ../lib/modules/selfRegistration.inc:393 +#: ../lib/modules/selfRegistration.inc:467 +#: ../lib/modules/selfRegistration.inc:475 ../lib/modules/account.inc:85 +#: ../lib/modules/account.inc:101 ../lib/modules/account.inc:124 +#: ../lib/modules/account.inc:126 ../lib/modules/account.inc:127 +#: ../lib/modules/account.inc:210 ../lib/modules/account.inc:230 +#: ../lib/modules/account.inc:254 ../lib/modules/uidObject.inc:45 +#: ../lib/modules/uidObject.inc:67 ../lib/modules/uidObject.inc:76 +#: ../lib/modules/uidObject.inc:85 ../lib/modules/uidObject.inc:100 +#: ../lib/modules/uidObject.inc:161 ../lib/modules/posixAccount.inc:113 +#: ../lib/modules/posixAccount.inc:114 ../lib/modules/posixAccount.inc:117 +#: ../lib/modules/posixAccount.inc:283 ../lib/modules/posixAccount.inc:409 +#: ../lib/modules/posixAccount.inc:506 ../lib/modules/posixAccount.inc:1420 +#: ../lib/modules/posixAccount.inc:1842 ../lib/modules/windowsUser.inc:107 +#: ../lib/modules/windowsUser.inc:264 ../lib/modules/windowsUser.inc:498 +#: ../lib/modules/windowsUser.inc:589 ../lib/modules/windowsUser.inc:689 +#: ../lib/modules/windowsUser.inc:1585 ../lib/modules/pykotaUser.inc:112 +#: ../lib/modules/pykotaUser.inc:208 ../lib/modules/pykotaUser.inc:268 +#: ../lib/modules/pykotaUser.inc:311 ../lib/modules/pykotaUser.inc:313 +#: ../lib/modules/pykotaUser.inc:340 ../lib/modules/pykotaUser.inc:889 +#: ../lib/modules/nisnetgroup.inc:152 ../lib/modules/nisnetgroup.inc:482 +#: ../lib/modules/inetOrgPerson.inc:95 ../lib/modules/inetOrgPerson.inc:163 +#: ../lib/modules/inetOrgPerson.inc:624 ../lib/modules/inetOrgPerson.inc:744 +#: ../lib/modules/inetOrgPerson.inc:1161 ../lib/modules/inetOrgPerson.inc:1164 +#: ../lib/modules/inetOrgPerson.inc:1908 ../lib/modules/inetOrgPerson.inc:2043 +#: ../lib/modules/inetOrgPerson.inc:2777 ../lib/modules/inetOrgPerson.inc:3569 +#: ../lib/modules/inetOrgPerson.inc:3594 +#: ../lib/modules/passwordSelfReset.inc:499 +#: ../lib/modules/passwordSelfReset.inc:843 +#: ../lib/modules/passwordSelfReset.inc:1015 +#: ../lib/modules/heimdalKerberos.inc:94 +#: ../lib/modules/heimdalKerberos.inc:180 +#: ../lib/modules/heimdalKerberos.inc:218 +#: ../lib/modules/heimdalKerberos.inc:293 +#: ../lib/modules/heimdalKerberos.inc:676 +msgid "User name" +msgstr "Псевдоім’я користувача" + +#: ../lib/modules/windowsUser.inc:115 ../lib/modules/windowsUser.inc:449 +#: ../lib/modules/windowsUser.inc:529 ../lib/modules/windowsUser.inc:565 +#: ../lib/modules/windowsUser.inc:593 ../lib/modules/windowsUser.inc:698 +#: ../lib/modules/windowsUser.inc:1587 +msgid "User name (pre W2K)" +msgstr "Ім’я користувача (до W2K)" + +#: ../lib/modules/selfRegistration.inc:475 ../lib/modules/posixAccount.inc:121 +#: ../lib/modules/pykotaUser.inc:313 ../lib/modules/pykotaUser.inc:314 +#: ../lib/modules/pykotaUser.inc:317 ../lib/modules/pykotaUser.inc:318 +#: ../lib/modules/inetOrgPerson.inc:97 +msgid "User name already exists!" +msgstr "Таке псевдоім’я користувача вже існує!" + +#: ../lib/modules/passwordSelfReset.inc:501 +msgid "User name and email address" +msgstr "Псевдоім’я користувача та ел.адреса" + +#: ../lib/modules/imapAccess.inc:103 ../lib/modules/imapAccess.inc:144 +msgid "User name attribute" +msgstr "Атрибут псевдоімені користувача" + +#: ../lib/modules/mitKerberos.inc:289 ../lib/modules/mitKerberos.inc:290 +#: ../lib/modules/selfRegistration.inc:467 ../lib/modules/account.inc:124 +#: ../lib/modules/account.inc:125 ../lib/modules/account.inc:127 +#: ../lib/modules/zarafaContact.inc:187 ../lib/modules/zarafaContact.inc:188 +#: ../lib/modules/uidObject.inc:85 ../lib/modules/zarafaGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:223 ../lib/modules/posixAccount.inc:114 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/zarafaUser.inc:419 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/windowsUser.inc:589 +#: ../lib/modules/windowsUser.inc:590 ../lib/modules/windowsUser.inc:593 +#: ../lib/modules/windowsUser.inc:594 ../lib/modules/pykotaUser.inc:311 +#: ../lib/modules/pykotaUser.inc:312 ../lib/modules/pykotaUser.inc:315 +#: ../lib/modules/pykotaUser.inc:316 ../lib/modules/nisnetgroup.inc:152 +#: ../lib/modules/inetOrgPerson.inc:95 ../lib/modules/inetOrgPerson.inc:96 +#: ../lib/modules/passwordSelfReset.inc:893 +#: ../lib/modules/passwordSelfReset.inc:1115 +#: ../lib/modules/heimdalKerberos.inc:253 +#: ../lib/modules/heimdalKerberos.inc:254 +msgid "" +"User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "" +"Псевдоім’я користувача містить недопустимі символи. Допустимі: a-z, A-Z, 0-9 " +"and .-_ !" + +#: ../lib/modules/windowsUser.inc:253 +msgid "User name for NIS." +msgstr "Ім’я користувача для NIS." + +#: ../lib/modules/posixAccount.inc:117 +msgid "User name in use. Selected next free user name." +msgstr "" +"Таке псевдоім’я користувача вже використовується. Виберіть наступне вільне." + +#: ../lib/modules/mitKerberos.inc:117 ../lib/modules/account.inc:102 +#: ../lib/modules/pykotaUser.inc:113 ../lib/modules/inetOrgPerson.inc:745 +#: ../lib/modules/heimdalKerberos.inc:95 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_." +msgstr "" +"Псевдоім’я створюваного користувача. Допустимі символи: a-z,A-Z,0-9, @.-_." + +#: ../lib/modules/posixAccount.inc:507 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_. If user name is already used user name will be expanded with a " +"number. The next free number will be used." +msgstr "" +"Псевдоім’я для створюваного користувача. Допустимі символи: a-z,A-Z,0-9, " +"@.-_. " +"Якщо таке псевдо вже використовується, до імені буде додано число. " +"Буде використано наступне вільне число." + +#: ../lib/modules/passwordSelfReset.inc:502 +#: ../lib/modules/passwordSelfReset.inc:867 +#: ../lib/modules/passwordSelfReset.inc:1035 +msgid "User name or email address" +msgstr "Псевдоім’я користувача або ел.пошта" + +#: ../lib/modules/posixAccount.inc:270 ../lib/modules/posixAccount.inc:436 +msgid "User name suggestion" +msgstr "Варіант псевдоімені користувача" + +#: ../lib/modules/pykotaUser.inc:125 +msgid "User name that is used for PyKota." +msgstr "Псевдоім’я користувача, яке використовується для PyKota." + +#: ../lib/modules/windowsUser.inc:752 +msgid "User profile" +msgstr "Профіль користувача" + +#: ../lib/modules/selfRegistration.inc:45 +msgid "User self registration" +msgstr "Самореєстрація користувача" + +#: ../lib/modules/zarafaUser.inc:128 ../lib/modules/zarafaUser.inc:275 +#: ../lib/modules/zarafaUser.inc:373 ../lib/modules/zarafaUser.inc:614 +#: ../lib/modules/zarafaUser.inc:1233 ../lib/modules/zarafaUser.inc:1322 +#: ../lib/modules/zarafaUser.inc:1805 +msgid "User server" +msgstr "Сервер користувача" + +#: ../lib/types/user.inc:53 ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:97 +#: ../lib/modules/posixAccount.inc:209 ../lib/modules/zarafaUser.inc:1779 +#: ../lib/modules/sudoRole.inc:74 ../lib/modules/sudoRole.inc:98 +#: ../lib/modules/sudoRole.inc:159 ../lib/modules/sudoRole.inc:216 +#: ../lib/modules/sudoRole.inc:228 ../lib/modules/sudoRole.inc:316 +#: ../lib/modules/sudoRole.inc:806 +msgid "Users" +msgstr "Користувачі" + +#: ../lib/modules/zarafaContact.inc:80 ../lib/modules/zarafaGroup.inc:94 +#: ../lib/modules/zarafaUser.inc:105 +msgid "Users or groups that may directly send email as this user." +msgstr "" +"Користувачі або групи, які можуть напряму відсилати ел.пошту від імені цього " +"користувача." + +#: ../lib/modules/posixGroup.inc:489 +msgid "" +"Users who are member of the current group. Users who have set their primary " +"group to this group will not be shown." +msgstr "" +"Користувачі, які є учасниками цієї групи. Користувачі, які встановили цю " +"групу, як первинну, не будуть показуватися." + +#: ../lib/modules/posixGroup.inc:493 +msgid "" +"Users who will become member of the current group. User names are separated " +"by semicolons." +msgstr "" +"Користувачі, які будуть членами цієї групи. Псевдоімена користувачів " +"розділені " +"крапкою з комою." + +#: ../templates/tests/lamdaemonTest.php:207 +#, php-format +msgid "Using %s as lamdaemon remote server." +msgstr "Використовується %s як віддалений сервер lamdaemon." + +#: ../templates/tests/lamdaemonTest.php:229 +#, php-format +msgid "Using %s to connect to remote server." +msgstr "Використовується %s для підключення до віддаленого сервера." + +#: ../lib/modules/posixAccount.inc:446 +msgid "" +"Usually, users are not added to groups as memberUid if they have this group " +"as primary group. If your application ignores primary groups then you can " +"select this option to override this behaviour." +msgstr "" +"Зазвичай користувачі не додаються до груп як memberUid, якщо ця група для " +"них первинна. Якщо ваш застосунок ігнорує первинні групи, тоді ви можете " +"вибрати цю опцію, щоб відмінити цю поведінку." + +#: ../templates/3rdParty/pla/lib/export_functions.php:543 +msgid "VCARD 2.1 Export" +msgstr "Експорт VCARD 2.1" + +#: ../templates/config/mainmanage.php:360 +msgid "Valid to" +msgstr "Дійсно до" + +#: ../help/help.inc:92 +msgid "Valid users" +msgstr "Дійсні користувачі" + +#: ../lib/modules/imapAccess.inc:83 ../lib/modules/imapAccess.inc:121 +msgid "Validate server certificate" +msgstr "Перевірити сертифікат сервера" + +#: ../lib/modules/customFields.inc:108 ../lib/modules/customFields.inc:1899 +msgid "Validation expression" +msgstr "Вираз для перевірки" + +#: ../lib/modules/customFields.inc:112 ../lib/modules/customFields.inc:1904 +msgid "Validation message" +msgstr "Повідомлення перевірки" + +#: ../templates/multiEdit.php:120 ../lib/modules/customFields.inc:2959 +msgid "Value" +msgstr "Значення" + +#: ../lib/modules/customFields.inc:116 ../lib/modules/customFields.inc:2749 +msgid "Value for \"checked\"" +msgstr "Значення для \"відмічено\"" + +#: ../lib/modules/customFields.inc:120 ../lib/modules/customFields.inc:2755 +msgid "Value for \"unchecked\"" +msgstr "Значення для \"скинуто\"" + +#: ../lib/modules/customFields.inc:140 ../lib/modules/customFields.inc:2955 +msgid "Value mapping" +msgstr "Відповідність значення" + +#: ../templates/3rdParty/pla/lib/import_functions.php:512 +msgid "Value to delete does not exist in DN" +msgstr "Значення, яке ви видаляєте, не існує в DN" + +#: ../lib/modules/puppetClient.inc:100 ../lib/modules/puppetClient.inc:104 +#: ../lib/modules/puppetClient.inc:146 ../lib/modules/puppetClient.inc:156 +#: ../lib/modules/puppetClient.inc:169 ../lib/modules/puppetClient.inc:277 +#: ../lib/modules/puppetClient.inc:439 +msgid "Variables" +msgstr "Змінні" + +#: ../templates/serverInfo.php:134 +msgid "Vendor name" +msgstr "Назва виробника" + +#: ../templates/serverInfo.php:140 +msgid "Vendor version" +msgstr "Версія виробника" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +#, php-format +msgid "View %s children" +msgstr "Переглянути %s нащадків" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +msgid "View 1 child" +msgstr "Переглянути 1 нащадка" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1230 +msgid "View the children of this object" +msgstr "Переглянути нащадків цього об’єкту" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1028 +msgid "Viewing entry in read-only mode." +msgstr "Перегляд запису в режимі тільки читання" + +#: ../lib/modules/asteriskVoicemail.inc:119 +#: ../lib/modules/asteriskVoicemail.inc:126 +#: ../lib/modules/asteriskVoicemail.inc:143 +#: ../lib/modules/asteriskVoicemail.inc:196 +#: ../lib/modules/asteriskVoicemail.inc:260 +#: ../lib/modules/asteriskVoicemail.inc:372 +msgid "Voicemail context" +msgstr "Контекст скриньки голосової пошти" + +#: ../lib/modules/asteriskVoicemail.inc:96 +msgid "Voicemail mailbox for this account." +msgstr "Скринька голосової пошти для цього акаунта" + +#: ../templates/login.php:496 +msgid "Want more features? Get LAM Pro!" +msgstr "Бажаєте більше можливостей? Використовуйте LAM Pro!" + +#: ../templates/config/mainmanage.php:408 +#: ../templates/3rdParty/pla/lib/page.php:76 +msgid "Warning" +msgstr "Увага" + +#: ../templates/delete.php:234 ../lib/modules/nisMailAliasUser.inc:505 +#: ../lib/modules/posixAccount.inc:850 ../lib/modules/posixAccount.inc:903 +#: ../lib/modules/organizationalRoleUser.inc:201 +#: ../lib/modules/organizationalRoleUser.inc:218 +#: ../lib/modules/windowsUser.inc:1123 ../lib/modules/groupOfNamesUser.inc:217 +#: ../lib/modules/groupOfNamesUser.inc:264 ../lib/modules.inc:1900 +#, php-format +msgid "Was unable to add attributes to DN: %s." +msgstr "Не вдається додати атрибути до DN: %s." + +#: ../lib/modules/nisMailAliasUser.inc:494 ../lib/modules.inc:1863 +#, php-format +msgid "Was unable to create DN: %s." +msgstr "Не вдається створити DN: %s." + +#: ../templates/delete.php:344 ../templates/delete.php:353 +#: ../lib/modules/nisMailAliasUser.inc:471 +#, php-format +msgid "Was unable to delete DN: %s." +msgstr "Не вдається вилучити DN: %s." + +#: ../templates/lists/changePassword.php:749 +#: ../templates/lists/changePassword.php:787 +#: ../templates/lists/changePassword.php:833 ../templates/delete.php:225 +#, php-format +msgid "Was unable to modify attributes from DN: %s." +msgstr "Не вдається змінити атрибути з DN: %s." + +#: ../lib/modules/posixAccount.inc:888 ../lib/modules/windowsUser.inc:1149 +#: ../lib/modules/windowsUser.inc:1558 ../lib/modules/groupOfNamesUser.inc:249 +#: ../lib/modules.inc:1882 +#, php-format +msgid "Was unable to modify attributes of DN: %s." +msgstr "Не вдається змінити атрибути DN: %s." + +#: ../templates/delete.php:243 ../lib/modules/nisMailAliasUser.inc:482 +#: ../lib/modules/posixAccount.inc:858 ../lib/modules/posixAccount.inc:920 +#: ../lib/modules/organizationalRoleUser.inc:206 +#: ../lib/modules/organizationalRoleUser.inc:229 +#: ../lib/modules/windowsUser.inc:1136 ../lib/modules/groupOfNamesUser.inc:222 +#: ../lib/modules/groupOfNamesUser.inc:278 ../lib/modules.inc:1913 +#, php-format +msgid "Was unable to remove attributes from DN: %s." +msgstr "Не вдається вилучити атрибути з DN: %s." + +#: ../lib/modules/asteriskExtension.inc:905 ../lib/modules.inc:1843 +#, php-format +msgid "Was unable to rename DN: %s." +msgstr "Не вдається перейменувати DN: %s." + +#: ../lib/modules/windowsUser.inc:188 ../lib/modules/windowsUser.inc:374 +#: ../lib/modules/windowsUser.inc:516 ../lib/modules/windowsUser.inc:543 +#: ../lib/modules/windowsUser.inc:720 ../lib/modules/windowsUser.inc:1604 +#: ../lib/modules/windowsUser.inc:1727 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:214 ../lib/modules/inetOrgPerson.inc:467 +#: ../lib/modules/inetOrgPerson.inc:587 ../lib/modules/inetOrgPerson.inc:732 +#: ../lib/modules/inetOrgPerson.inc:736 ../lib/modules/inetOrgPerson.inc:1422 +#: ../lib/modules/inetOrgPerson.inc:1425 ../lib/modules/inetOrgPerson.inc:1918 +#: ../lib/modules/inetOrgPerson.inc:2467 ../lib/modules/inetOrgPerson.inc:3559 +#: ../lib/modules/inetOrgPerson.inc:3584 +msgid "Web site" +msgstr "Веб-сайт" + +#: ../lib/modules/sambaSamAccount.inc:1375 +msgid "Wednesday" +msgstr "Середа" + +#: ../lib/modules/bindDLZ.inc:180 ../lib/modules/bindDLZ.inc:184 +#: ../lib/modules/bindDLZ.inc:387 ../lib/modules/bindDLZ.inc:503 +#: ../lib/modules/bindDLZ.inc:1353 ../lib/modules/bindDLZ.inc:1600 +msgid "Weight" +msgstr "Вага" + +#: ../lib/selfService.inc:384 +msgid "Welcome to LAM self service. Please enter your user name and password." +msgstr "" +"Ласкаво просимо до сервісу самообслуговування LAM. Будь ласка, вкажіть свої " +"псевдо користувача та пароль." + +#: ../lib/modules/sambaSamAccount.inc:564 +msgid "Western Europe Time, London, Lisbon" +msgstr "Western Europe Time, London, Lisbon" + +#: ../lib/modules/passwordSelfReset.inc:179 +msgid "What is the name of your favourite pet?" +msgstr "Ім’я вашого домашнього улюбленця?" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +msgid "" +"When performing a recursive copy, only copy those entries which match this " +"filter." +msgstr "" +"Копіювати тільки запити, які відповідають цьому фільтру, при виконанні " +"рекурсивного копіювання " + +#: ../lib/modules/zarafaUser.inc:101 +msgid "" +"When the hard quota limit is reached, email can not be delivered to that " +"user anymore." +msgstr "" +"Електронна пошта не буде доставлятися користувачу у випадку перевищення " +"жорсткої квоти." + +#: ../help/help.inc:70 +msgid "" +"When using ldaps:// or TLS be sure to use exactly the same IP/domain name as " +"in your certificate!" +msgstr "" +"Використовуючи ldaps:// або TLS потрібно переконатися, що IP адреса / назва " +"домену відповідає тому, що використовується в сертифікаті!" + +#: ../templates/lists/changePassword.php:410 +#: ../templates/lists/changePassword.php:441 ../lib/types/user.inc:292 +#: ../lib/types/user.inc:380 ../lib/types/user.inc:412 +#: ../lib/types/user.inc:845 ../lib/modules/windowsHost.inc:64 +#: ../lib/modules/windowsUser.inc:89 ../lib/modules/windowsGroup.inc:99 +msgid "Windows" +msgstr "Windows" + +#: ../lib/modules/sambaSamAccount.inc:337 ../lib/modules/windowsUser.inc:112 +msgid "Windows domain name of account." +msgstr "Назва домену Windows акаунта." + +#: ../lib/modules/sambaSamAccount.inc:211 +#: ../lib/modules/sambaSamAccount.inc:470 +#: ../lib/modules/sambaSamAccount.inc:1261 +#: ../lib/modules/sambaSamAccount.inc:1781 +#: ../lib/modules/sambaSamAccount.inc:1906 +#: ../lib/modules/sambaGroupMapping.inc:111 +#: ../lib/modules/sambaGroupMapping.inc:374 +#: ../lib/modules/sambaGroupMapping.inc:539 +msgid "Windows group" +msgstr "Windows група" + +#: ../lib/modules/sambaGroupMapping.inc:150 +msgid "Windows group name" +msgstr "Назва Windows групи" + +#: ../lib/modules/sambaGroupMapping.inc:163 +msgid "Windows group type." +msgstr "Тип Windows групи" + +#: ../lib/modules/sambaSamAccount.inc:394 +msgid "" +"Windows password hashes are saved by default as NT and LM hashes. LM hashes " +"are insecure and only needed for old versions of Windows. You should disable " +"them unless you really need them." +msgstr "" +"Хеши Windows паролей типово зберігаються як NT та LM хеш. LM хеші не є " +"безпечними та використовуються тільки зі старими версіями Windows, тому вони " +"повинні бути відключеними. Включайте, лише якщо це дійсно необхідно." + +#: ../lib/modules/sambaSamAccount.inc:320 +msgid "Windows primary group" +msgstr "Основна Windows група" + +#: ../lib/modules/sambaSamAccount.inc:323 +msgid "Windows primary group SID" +msgstr "SID основної Windows групи" + +#: ../lib/modules/sambaGroupMapping.inc:159 +msgid "Windows-Domain name of group." +msgstr "Назва групи у Windows домені." + +#: ../lib/modules/inetOrgPerson.inc:1433 +msgid "Work details" +msgstr "Деталі роботи" + +#: ../lib/modules/sambaDomain.inc:146 +msgid "Workgroup" +msgstr "Робоча група" + +#: ../lib/modules/sambaSamAccount.inc:235 +#: ../lib/modules/sambaSamAccount.inc:366 +#: ../lib/modules/sambaSamAccount.inc:1517 +#: ../lib/modules/sambaSamAccount.inc:1925 +msgid "Working directory" +msgstr "Робочий каталог" + +#: ../lib/modules/sambaSamAccount.inc:367 +msgid "Working directory of initial program." +msgstr "Робочий каталог початкової програми" + +#: ../templates/config/confmain.php:318 +msgid "Write" +msgstr "Записувати" + +#: ../templates/config/confmain.php:260 +msgid "Write access" +msgstr "Доступ на запис" + +#: ../templates/login.php:579 ../templates/login.php:637 +#: ../templates/selfService/selfServiceLogin.php:160 +#: ../templates/selfService/selfServiceLogin.php:186 +msgid "Wrong password/user name combination. Please try again." +msgstr "Неправильні псевдоім’я / пароль. Спробуйте ще раз." + +#: ../lib/modules/imapAccess.inc:188 +msgid "Wrong quota format. Quota must be numeric." +msgstr "Неправильний формат квоти. Квота повинна бути числом." + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/pykotaPrinter.inc:51 +#: ../lib/modules/pykotaPrinter.inc:170 ../lib/modules/qmailGroup.inc:322 +#: ../lib/modules/qmailGroup.inc:364 ../lib/modules/qmailGroup.inc:1030 +#: ../lib/modules/qmailGroup.inc:1031 ../lib/modules/qmailGroup.inc:1073 +#: ../lib/modules/qmailGroup.inc:1079 ../lib/modules/imapAccess.inc:121 +msgid "Yes" +msgstr "Так" + +#: ../templates/lists/changePassword.php:528 +#: ../lib/modules/ppolicyUser.inc:344 ../lib/modules/ppolicyUser.inc:421 +msgid "You are reusing an old password. Please choose a different password." +msgstr "" +"Ви повторно використовуєте старий пароль. Будь ласка, виберіть інший пароль." + +#: ../lib/modules/account.inc:126 ../lib/modules/posixGroup.inc:607 +#: ../lib/modules/posixAccount.inc:113 ../lib/modules/posixAccount.inc:115 +msgid "" +"You are using capital letters. This can cause problems because Windows is " +"not case-sensitive." +msgstr "" +"Ви використовуєте великі літери. Це може викликати проблеми, оскільки " +"Windows нечуттєвий до регістру." + +#: ../lib/lists.inc:1073 +#, php-format +msgid "" +"You can download your PDF files {link=%s}{color=#d2131a}here{endcolor}" +"{endlink}." +msgstr "" +"Ви можете скачати ваші PDF файли {link=%s}{color=#d2131a}here{endcolor}" +"{endlink}." + +#: ../templates/initsuff.php:181 +msgid "" +"You can setup the LDAP suffixes for all account types in your LAM server " +"profile on tab \"Account types\"." +msgstr "" +"В профілі вашого сервера LAM на вкладці \"Типи акаунтів\" ви можете " +"визначити суфікси LDAP для всіх типів акаунтів." + +#: ../help/help.inc:110 +msgid "" +"You can specify if LAM allows full write access, password changes or only " +"read access." +msgstr "" +"Ви можете вказати, що дозволяє LAM: повний доступ на запис, зміни паролей " +"або тільки читання." + +#: ../lib/modules/windowsUser.inc:104 ../lib/modules/windowsUser.inc:125 +#: ../lib/modules/windowsUser.inc:141 ../lib/modules/windowsUser.inc:206 +#: ../lib/modules/windowsUser.inc:211 ../lib/modules/windowsUser.inc:228 +#: ../lib/modules/windowsUser.inc:233 ../lib/modules/windowsUser.inc:249 +#: ../lib/modules/inetOrgPerson.inc:721 ../lib/modules/inetOrgPerson.inc:726 +msgid "" +"You can use \"$user\", \"$firstname\" and \"$lastname\" as wildcards for " +"user name, first and last name." +msgstr "" +"Ви можете використати \"$user\", \"$firstname\" та \"$lastname\" як шаблон " +"підстановки для псевдоімені користувача, прізвища та власного імені." + +#: ../help/help.inc:172 +msgid "" +"You can use the wildcard @@LOGIN_DN@@ which will be substituted with the DN " +"of the user who is currently logged in to LAM." +msgstr "" +"Ви можете використати макрос @@LOGIN_DN@@, який буде змінено на DN " +"користувача, що зайшов у LAM." + +#: ../lib/modules/zarafaDynamicGroup.inc:84 +#: ../lib/modules/zarafaContact.inc:76 ../lib/modules/zarafaGroup.inc:90 +#: ../lib/modules/zarafaAddressList.inc:72 ../lib/modules/zarafaUser.inc:85 +msgid "You can use this to temporarily deactivate the Zarafa extension." +msgstr "" +"Ви можете використовувати це для тимчасового відключення розширення Zarafa." + +#: ../lib/modules/passwordSelfReset.inc:126 +#: ../lib/modules/passwordSelfReset.inc:136 ../help/help.inc:253 +msgid "" +"You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. " +"@@uid@@ for the user name)." +msgstr "" +"Ви можете використовувати шаблон для LDAP атрибутів у формі @@attribute@@ " +"(наприклад, @@uid@@ для псевдоімені користувача)." + +#: ../lib/modules/customScripts.inc:65 ../lib/modules/customScripts.inc:78 +msgid "" +"You can use wildcards in the format $wildcard$ which are replaced by the " +"LDAP attribute with the same name. For multi-value attributes the values " +"will be separated by commas." +msgstr "" +"Ви можете використовувати шаблони у форматі $wildcard$, який буде змінено " +"LDAP атрибутом з такоюж назвою. Для багатозначних атрибутів значення будуть " +"розділятися комами." + +#: ../lib/modules/zarafaContact.inc:191 +msgid "" +"You cannot add the Zarafa and Zarafa contact extension at the same time." +msgstr "" +"Ви не можете використовувати розширення Zarafa та Zarafa contact одночасно." + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:52 +msgid "You cannot perform updates while server is in read-only mode" +msgstr "" +"Ви не можете виконувати оновлення доки сервер в режимі \"тільки читання\"" + +#: ../templates/3rdParty/pla/htdocs/rename.php:26 +msgid "You cannot rename an entry which has child entries." +msgstr "Ви не можете перейменовувати запис, який має нащадків." + +#: ../templates/config/confmain.php:505 +msgid "" +"You cannot use SSL and TLS encryption at the same time. Please use either " +"\"ldaps://\" or TLS." +msgstr "" +"Ви не можете використовувати SSL та TLS шифрування одночасно. Будь ласка, " +"використовуйте або ldaps:// або TLS." + +#: ../templates/3rdParty/pla/htdocs/rename.php:32 +msgid "You did not change the RDN" +msgstr "Ви не змінили RDN" + +#: ../templates/tests/schemaTest.php:61 +msgid "" +"You do not have the required access rights or the LDAP schema is not " +"published by your server." +msgstr "" +"Ви не маєте відповідних прав доступу або LDAP схема не підключена до сервера." + +#: ../lib/modules/dhcp_settings.inc:322 ../lib/modules/dhcp_settings.inc:323 +msgid "You entered one or more invalid DNS servers." +msgstr "Ви вказали один або більше неправильних DNS серверів." + +#: ../templates/3rdParty/pla/lib/Template.php:417 +#: ../templates/3rdParty/pla/lib/Template.php:504 +msgid "You left the attribute value blank. Please go back and try again." +msgstr "" +"Ви залишили значення атрибута порожнім. Будь ласка, поверніться назад та " +"спробуйте ще раз." + +#: ../templates/3rdParty/pla/htdocs/create.php:51 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:45 +#, php-format +msgid "You left the value blank for required attribute (%s)." +msgstr "Ви залишили порожнім значення обов’язкового атрибута (%s)." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:171 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:209 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:133 +msgid "You made no changes" +msgstr "Ви не зробили ніяких змін" + +#: ../templates/config/mainmanage.php:172 +#: ../templates/config/mainmanage.php:178 +#: ../templates/config/mainmanage.php:190 +msgid "You might need to restart your webserver for changes to take effect." +msgstr "" +"Можливо потрібен перезапуск веб-сервера для того, щоб зміни вступили в силу." + +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#, php-format +msgid "You might want to use %s instead of %s." +msgstr "Можливо ви хотіли використати %s замість %s." + +#: ../templates/3rdParty/pla/lib/import_functions.php:95 +msgid "You must either upload a file or provide an import in the text box." +msgstr "" +"Ви повинні або завантажити файл або внести інформацію імпортуваня в текстове " +"поле." + +#: ../lib/modules/groupOfNames.inc:210 ../lib/modules/groupOfNames.inc:211 +msgid "You need to add at least one member to this group." +msgstr "Вам потрібно додати принаймні одного члена цієї групи." + +#: ../lib/modules/passwordSelfReset.inc:229 +msgid "You specified an answer but no security question." +msgstr "Ви вказали відповідь без секретного питання." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1136 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "You will be prompted to confirm this decision" +msgstr "Вам запропонують підтвердити це рішення" + +#: ../lib/modules/imapAccess.inc:184 +msgid "Your IMAP domains and email address domain do not match." +msgstr "Ваші домени IMAP та домен ел.пошти не співпадають." + +#: ../templates/tests/lamdaemonTest.php:234 +#, php-format +msgid "" +"Your LAM admin user (%s) must be a valid Unix account to work with lamdaemon!" +msgstr "" +"Для роботи з lamdaemon ваш LAM адміністратор (%s) повинен мати дійсний " +"акаунт Unix!" + +#: ../lib/lamdaemon.inc:61 ../lib/lamdaemon.inc:66 +msgid "" +"Your LAM admin user must be a valid Unix account to work with lamdaemon!" +msgstr "" +"Для роботи з lamdaemon ваш LAM адміністратор повинен мати дійсний акаунт " +"Unix!" + +#: ../lib/modules/imapAccess.inc:186 +msgid "Your LAM login password was not accepted by the IMAP server." +msgstr "Ваші LAM ім’я та пароль не прийняті IMAP сервером." + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:125 +msgid "" +"Your PHP configuration has disabled file uploads. Please check php.ini " +"before proceeding." +msgstr "Конфігурація PHP не дозволяє завантажувати файли. Перевірте php.ini." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:16 +msgid "" +"Your PHP.INI does not have file_uploads = ON. Please enable file uploads in " +"PHP." +msgstr "" +"У вашому php.ini відсутній file_uploads = ON. Увімкніть підтримку " +"завантаження файлів." + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:404 +msgid "" +"Your changes cannot be saved until you make the file writable for the " +"webserver user." +msgstr "" +"Ваші зміни не будуть збережені, поки ви не дозволите запис файлу для " +"облікового запису, під яким працює веб-сервер." + +#: ../lib/modules/selfRegistration.inc:721 +msgid "" +"Your new account was created but post processing failed. Please contact your " +"local administrator." +msgstr "" +"Ваш новий акаунт створено, але додатковий обробіток після створення " +"закінчився невдало. Будь ласка, зв’яжіться зі своїм адміністратором." + +#: ../lib/modules/selfRegistration.inc:718 +msgid "" +"Your new account was successfully created. Please return to login to change " +"your user data." +msgstr "" +"Ваш новий акаунт успішно створено. Будь ласка, поверність до входу для зміни " +"ваших даних." + +#: ../lib/account.inc:1202 ../lib/modules/windowsUser.inc:1870 +msgid "" +"Your password does not meet the password strength qualifications. Please " +"retry with another one." +msgstr "" +"Ваш пароль не відповідає вимогам надійності пароля. Будь ласка,виберіть " +"інший пароль." + +#: ../lib/modules/passwordSelfReset.inc:563 +msgid "Your password was changed to @@newPassword@@." +msgstr "Ваш пароль змінено на @@newPassword@@." + +#: ../lib/security.inc:192 +msgid "Your session expired, click here to go back to the login page." +msgstr "Сесія застаріла, натисніть тут для повернення на сторінку входу." + +#: ../templates/login.php:296 +#: ../templates/selfService/selfServiceLogin.php:113 +msgid "Your session expired, please log in again." +msgstr "Сесія застаріла, будь ласка, зайдіть знову." + +#: ../templates/login.php:301 ../templates/login.php:306 +#: ../templates/login.php:315 +msgid "Your settings were successfully saved." +msgstr "Ваші налаштування успішно збережено." + +#: ../lib/modules/windowsUser.inc:346 ../lib/modules/inetOrgPerson.inc:501 +#: ../lib/modules/inetOrgPerson.inc:533 +msgid "YourCompany" +msgstr "YourCompany" + +#: ../lib/modules/zarafaGroup.inc:56 ../lib/modules/zarafaUser.inc:61 +#: ../lib/modules/zarafaServer.inc:56 +msgid "Zarafa" +msgstr "Zarafa" + +#: ../lib/modules/zarafaAddressList.inc:51 +msgid "Zarafa address list" +msgstr "Список адрес Zarafa" + +#: ../lib/types/zarafaAddressListType.inc:53 +#: ../lib/types/zarafaAddressListType.inc:62 +msgid "Zarafa address lists" +msgstr "Списки адрес Zarafa" + +#: ../lib/modules/zarafaContact.inc:56 +msgid "Zarafa contact" +msgstr "Контакт Zarafa" + +#: ../lib/modules/zarafaDynamicGroup.inc:51 +msgid "Zarafa dynamic group" +msgstr "Динамічна група Zarafa" + +#: ../lib/types/zarafaDynamicGroupType.inc:53 +#: ../lib/types/zarafaDynamicGroupType.inc:62 +msgid "Zarafa dynamic groups" +msgstr "Динамічні групи Zarafa" + +#: ../lib/modules/zarafaDynamicGroup.inc:95 +#: ../lib/modules/zarafaDynamicGroup.inc:183 +#: ../lib/modules/zarafaContact.inc:106 ../lib/modules/zarafaContact.inc:123 +#: ../lib/modules/zarafaGroup.inc:112 ../lib/modules/zarafaGroup.inc:127 +#: ../lib/modules/zarafaAddressList.inc:83 +#: ../lib/modules/zarafaAddressList.inc:156 ../lib/modules/zarafaUser.inc:171 +#: ../lib/modules/zarafaUser.inc:394 ../lib/modules/zarafaUser.inc:1773 +#: ../lib/modules/zarafaServer.inc:92 ../lib/modules/zarafaServer.inc:153 +msgid "Zarafa schema" +msgstr "Схема Zarafa" + +#: ../lib/modules/zarafaUser.inc:160 ../lib/modules/zarafaUser.inc:164 +msgid "Zarafa will store the user's archives on these servers." +msgstr "Zarafa буде зберігати архіви користувача на цих серверах." + +#: ../lib/types/bind.inc:78 ../lib/modules/ddns.inc:102 +#: ../lib/modules/ddns.inc:113 ../lib/modules/ddns.inc:128 +#: ../lib/modules/ddns.inc:394 ../lib/modules/ddns.inc:425 +msgid "Zone name" +msgstr "Назва зони" + +#: ../lib/modules/ddns.inc:103 +msgid "Zone name for the DNS server (e.g. company.local)." +msgstr "Назва зони для DNS сервера (наприклад, company.local)." + +#: ../lib/modules/sambaSamAccount.inc:496 ../lib/modules/windowsUser.inc:438 +msgid "\\\\server\\homes\\smiller" +msgstr "\\\\server\\homes\\smiller" + +#: ../lib/modules/sambaSamAccount.inc:504 ../lib/modules/windowsUser.inc:420 +msgid "\\\\server\\profiles\\smiller" +msgstr "\\\\server\\profiles\\smiller" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "add value" +msgstr "додати значення" + +#: ../lib/modules/zarafaDynamicGroup.inc:118 ../lib/modules/posixGroup.inc:461 +#: ../lib/modules/zarafaAddressList.inc:106 ../lib/modules/pykotaGroup.inc:150 +#: ../lib/modules/pykotaGroup.inc:159 ../lib/modules/nisnetgroup.inc:114 +#: ../lib/modules/organizationalRole.inc:116 +#: ../lib/modules/windowsGroup.inc:237 ../lib/modules/groupOfNames.inc:128 +msgid "adminstrators" +msgstr "адміністратори" + +#: ../templates/config/mainmanage.php:394 +#: ../templates/config/mainmanage.php:430 +msgid "all" +msgstr "все" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:112 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:95 +msgid "attribute deleted" +msgstr "атрибут вилучено" + +#: ../lib/modules/sudoRole.inc:148 +msgid "backupRootFileSystem" +msgstr "backupRootFileSystem" + +#: ../lib/modules/pykotaBillingCode.inc:103 +msgid "billingCode01" +msgstr "billingCode01" + +#: ../templates/3rdParty/pla/lib/functions.php:2298 +msgid "browse" +msgstr "огляд" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "bytes" +msgstr "байтів" + +#: ../templates/schema/schema.php:220 +msgid "character" +msgstr "символ" + +#: ../templates/schema/schema.php:219 +msgid "characters" +msgstr "символів" + +#: ../lib/modules/freeRadius.inc:179 +msgid "company.com" +msgstr "company.com" + +#: ../templates/3rdParty/pla/lib/PageRender.php:619 +#: ../templates/3rdParty/pla/lib/PageRender.php:988 +msgid "confirm" +msgstr "підтвердіть" + +#: ../help/help.inc:82 +msgid "dc=yourcompany,dc=com" +msgstr "dc=yourcompany,dc=com" + +#: ../templates/config/mainmanage.php:429 ../lib/modules/ppolicyUser.inc:122 +msgid "default" +msgstr "типово" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:205 +msgid "delete" +msgstr "вилучити" + +#: ../templates/3rdParty/pla/lib/PageRender.php:677 +msgid "delete attribute" +msgstr "вилучити атрибут" + +#: ../lib/modules/sambaSamAccount.inc:1538 +#: ../lib/modules/sambaSamAccount.inc:1945 ../lib/modules/zarafaUser.inc:619 +#: ../lib/modules/zarafaUser.inc:1285 ../lib/modules/zarafaUser.inc:1326 +msgid "disabled" +msgstr "відключено" + +#: ../lib/modules/sambaSamAccount.inc:1549 +#: ../lib/modules/sambaSamAccount.inc:1956 +msgid "disconnect" +msgstr "від’єднати" + +#: ../lib/modules/windowsUser.inc:468 ../lib/modules/windowsGroup.inc:245 +msgid "domain" +msgstr "domain" + +#: ../templates/3rdParty/pla/lib/PageRender.php:664 +msgid "download value" +msgstr "завантажити значення" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:206 +msgid "edit" +msgstr "редагувати" + +#: ../lib/modules/zarafaUser.inc:619 ../lib/modules/zarafaUser.inc:1280 +#: ../lib/modules/zarafaUser.inc:1326 +msgid "enabled" +msgstr "включено" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:481 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:307 +msgid "export" +msgstr "експорт" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:123 +msgid "false" +msgstr "хибно" + +#: ../lib/modules/ppolicy.inc:37 +msgid "force" +msgstr "примусово" + +#: ../lib/modules/sambaSamAccount.inc:1557 +#: ../lib/modules/sambaSamAccount.inc:1964 +msgid "from any client" +msgstr "з будь-якого клієнта" + +#: ../lib/modules/sambaSamAccount.inc:1558 +#: ../lib/modules/sambaSamAccount.inc:1965 +msgid "from previous client only" +msgstr "тільки з попереднього клієнта" + +#: ../lib/modules/posixAccount.inc:306 ../lib/modules/posixAccount.inc:366 +#: ../lib/modules/nisnetgroup.inc:128 ../lib/modules/groupOfNamesUser.inc:73 +msgid "group01,group02" +msgstr "group01,group02" + +#: ../lib/modules/freeRadius.inc:187 +msgid "group01;group02" +msgstr "group01;group02" + +#: ../lib/modules/zarafaDynamicGroup.inc:132 +#: ../lib/modules/zarafaGroup.inc:164 +msgid "group1@company.com,group2@company.com" +msgstr "group1@company.com,group2@company.com" + +#: ../lib/modules/zarafaDynamicGroup.inc:126 +#: ../lib/modules/zarafaGroup.inc:172 ../lib/modules/windowsGroup.inc:221 +msgid "group@company.com" +msgstr "group@company.com" + +#: ../templates/3rdParty/pla/lib/PageRender.php:471 +msgid "hint" +msgstr "підказка" + +#: ../lib/modules/quota.inc:198 ../lib/modules/quota.inc:200 +msgid "hours" +msgstr "години" + +#: ../lib/modules/windowsUser.inc:376 ../lib/modules/windowsUser.inc:382 +#: ../lib/modules/inetOrgPerson.inc:469 +msgid "http://www.company.com" +msgstr "http://www.company.com" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:294 +msgid "import" +msgstr "імпорт" + +#: ../lib/modules/sambaSamAccount.inc:1542 +#: ../lib/modules/sambaSamAccount.inc:1949 +msgid "input off, notify off" +msgstr "введення відключено, нагадування відключено" + +#: ../lib/modules/sambaSamAccount.inc:1541 +#: ../lib/modules/sambaSamAccount.inc:1948 +msgid "input off, notify on" +msgstr "введення відключено, нагадування включено" + +#: ../lib/modules/sambaSamAccount.inc:1540 +#: ../lib/modules/sambaSamAccount.inc:1947 +msgid "input on, notify off" +msgstr "введення включено, нагадування відключено" + +#: ../lib/modules/sambaSamAccount.inc:1539 +#: ../lib/modules/sambaSamAccount.inc:1946 +msgid "input on, notify on" +msgstr "введення включено, нагадування включено" + +#: ../help/help.inc:64 +msgid "" +"ldap://localhost:389 connects to localhost using a standard LDAP connection " +"on port 389" +msgstr "" +"ldap://localhost:389 під’єднується до localhost використовуючи незахищене " +"з’єднання на порт 389" + +#: ../help/help.inc:66 +msgid "" +"ldaps://ldap.domain.com connects to ldap.domain.com using an encrypted LDAP " +"connection." +msgstr "" +"ldaps://ldap.domain.com під’єднується до ldap.domain.com використовуючи " +"захищене LDAP з’єднання." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:100 +msgid "list" +msgstr "список" + +#: ../templates/3rdParty/pla/lib/config_default.php:494 +#: ../templates/3rdParty/pla/lib/ds.php:318 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:529 +msgid "login" +msgstr "вхід" + +#: ../lib/modules/posixAccount.inc:391 +msgid "machines" +msgstr "комп’ютери" + +#: ../lib/modules/inetLocalMailRecipient.inc:114 +msgid "mail.yourdomain.org" +msgstr "mail.yourdomain.org" + +#: ../lib/modules/sambaSamAccount.inc:415 +#: ../lib/modules/sambaSamAccount.inc:539 +msgid "mydomain" +msgstr "mydomain" + +#: ../lib/modules/sambaSamAccount.inc:472 +msgid "mygroup" +msgstr "mygroup" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:504 +msgid "new" +msgstr "новий" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:454 +#: ../lib/modules/zarafaDynamicGroup.inc:457 +#: ../lib/modules/zarafaContact.inc:568 ../lib/modules/zarafaGroup.inc:651 +#: ../lib/modules/zarafaGroup.inc:658 ../lib/modules/zarafaGroup.inc:661 +#: ../lib/modules/zarafaAddressList.inc:336 +#: ../lib/modules/zarafaAddressList.inc:339 +#: ../lib/modules/sambaSamAccount.inc:583 +#: ../lib/modules/sambaSamAccount.inc:1913 +#: ../lib/modules/sambaSamAccount.inc:1921 +#: ../lib/modules/sambaSamAccount.inc:1931 +#: ../lib/modules/sambaSamAccount.inc:1936 +#: ../lib/modules/sambaSamAccount.inc:1941 ../lib/modules/zarafaUser.inc:602 +#: ../lib/modules/zarafaUser.inc:1238 ../lib/modules/zarafaUser.inc:1253 +#: ../lib/modules/zarafaUser.inc:1264 ../lib/modules/zarafaUser.inc:1270 +#: ../lib/modules/windowsUser.inc:388 ../lib/modules/windowsUser.inc:389 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:396 +#: ../lib/modules/windowsUser.inc:397 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:404 ../lib/modules/windowsUser.inc:405 +#: ../lib/modules/windowsUser.inc:406 ../lib/modules/windowsUser.inc:412 +#: ../lib/modules/windowsUser.inc:413 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:1173 ../lib/modules/windowsUser.inc:1607 +#: ../lib/modules/windowsUser.inc:1612 ../lib/modules/windowsUser.inc:1617 +#: ../lib/modules/windowsUser.inc:1622 ../lib/modules/ppolicy.inc:35 +#: ../lib/modules/ppolicy.inc:481 ../lib/modules/ppolicy.inc:491 +#: ../lib/modules/ppolicy.inc:496 ../lib/modules/ppolicy.inc:503 +#: ../lib/modules/ppolicy.inc:506 ../lib/modules/generalInformation.inc:100 +#: ../lib/modules/zarafaServer.inc:358 ../lib/modules/customFields.inc:2890 +#: ../lib/modules/fixed_ip.inc:752 +msgid "no" +msgstr "ні" + +#: ../templates/3rdParty/pla/lib/functions.php:1902 +msgid "no description available" +msgstr "опис відсутній" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:68 +msgid "no entries" +msgstr "немає записів" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:84 +msgid "no new attributes available for this entry" +msgstr "немає новий доступних атрибутів для цього запису" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:135 +msgid "no new binary attributes available for this entry" +msgstr "немає нових доступних бінарних атрибутів для цього запису" + +#: ../templates/schema/schema.php:160 ../templates/schema/schema.php:229 +#: ../templates/schema/schema.php:240 ../templates/schema/schema.php:289 +#: ../templates/schema/schema.php:355 ../templates/schema/schema.php:370 +#: ../templates/schema/schema.php:404 ../templates/schema/schema.php:426 +#: ../templates/3rdParty/pla/lib/functions.php:2612 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1573 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1581 +msgid "none" +msgstr "ні" + +#: ../templates/3rdParty/pla/lib/PageRender.php:1109 +msgid "none, remove value" +msgstr "ні, видалити значення" + +#: ../templates/schema/schema.php:216 +msgid "not applicable" +msgstr "не застосовується" + +#: ../templates/schema/schema.php:167 ../templates/schema/schema.php:172 +#: ../templates/schema/schema.php:177 ../templates/schema/schema.php:210 +msgid "not specified" +msgstr "не визначено" + +#: ../help/help.inc:76 +msgid "" +"ou=People,dc=yourcompany,dc=com will read and store all accounts in this " +"subtree." +msgstr "" +"ou=People,dc=yourcompany,dc=com - в цьому піддереві будуть читатися та " +"зберігатися всі акаунти." + +#: ../lib/modules/eduPerson.inc:202 ../lib/modules/eduPerson.inc:208 +#: ../lib/modules/eduPerson.inc:214 +msgid "ou=accounts,dc=yourdomain,dc=org" +msgstr "ou=accounts,dc=yourdomain,dc=org" + +#: ../lib/modules/posixAccount.inc:377 +msgid "pc01$" +msgstr "pc01$" + +#: ../lib/modules/posixAccount.inc:400 +msgid "pc01,Room 2.34" +msgstr "pc01,Room 2.34" + +#: ../lib/modules/hostObject.inc:93 +msgid "pc01,pc02" +msgstr "pc01,pc02" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +msgid "pixels" +msgstr "пікселі" + +#: ../lib/modules/pykotaPrinter.inc:148 +msgid "printer01" +msgstr "printer01" + +#: ../lib/modules/pykotaPrinter.inc:188 +msgid "printergroup1" +msgstr "printergroup1" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:54 +msgid "read only" +msgstr "тільки читання" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:251 +msgid "refresh" +msgstr "оновити" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2126 +msgid "rename" +msgstr "перейменувати" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 ../lib/html.inc:797 +#: ../lib/html.inc:1708 ../lib/html.inc:2285 +msgid "required" +msgstr "обов’язкове" + +#: ../lib/modules/sambaSamAccount.inc:1550 +#: ../lib/modules/sambaSamAccount.inc:1957 +msgid "reset" +msgstr "скинути" + +#: ../lib/modules/organizationalRoleUser.inc:73 +msgid "role01,role02" +msgstr "role01,role02" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:237 +msgid "search" +msgstr "пошук" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:472 +msgid "seconds" +msgstr "секунд" + +#: ../lib/modules/mitKerberos.inc:244 ../lib/modules/asteriskAccount.inc:327 +#: ../lib/modules/posixGroup.inc:444 ../lib/modules/sambaSamAccount.inc:427 +#: ../lib/modules/posixAccount.inc:334 ../lib/modules/windowsUser.inc:274 +#: ../lib/modules/inetOrgPerson.inc:2054 +#: ../lib/modules/asteriskVoicemail.inc:167 +#: ../lib/modules/heimdalKerberos.inc:213 +msgid "secret" +msgstr "secret" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1263 +msgid "select the rdn attribute" +msgstr "виберіть атрибут rdn" + +#: ../lib/modules/mitKerberos.inc:213 ../lib/modules/uidObject.inc:69 +#: ../lib/modules/posixAccount.inc:285 ../lib/modules/windowsUser.inc:266 +#: ../lib/modules/windowsUser.inc:451 ../lib/modules/windowsUser.inc:460 +#: ../lib/modules/pykotaUser.inc:192 ../lib/modules/pykotaUser.inc:210 +#: ../lib/modules/inetOrgPerson.inc:2045 +#: ../lib/modules/heimdalKerberos.inc:182 ../lib/modules/nisMailAlias.inc:110 +msgid "smiller" +msgstr "smiller" + +#: ../lib/modules/inetLocalMailRecipient.inc:102 +msgid "smiller@otherdomain.org" +msgstr "smiller@otherdomain.org" + +#: ../lib/modules/inetLocalMailRecipient.inc:108 +msgid "smiller@yourdomain.org" +msgstr "smiller@yourdomain.org" + +#: ../lib/modules/ldapPublicKey.inc:90 +msgid "ssh-dss 234234 user@host" +msgstr "ssh-dss 234234 user@host" + +#: ../templates/3rdParty/pla/lib/PageRender.php:882 +msgid "structural" +msgstr "структурний" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:102 +msgid "table" +msgstr "таблиця" + +#: ../lib/modules/asteriskExtension.inc:154 +msgid "test" +msgstr "тест" + +#: ../lib/modules/asteriskExtension.inc:174 +msgid "test-start" +msgstr "тестовий запуск" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:122 +msgid "true" +msgstr "істинно" + +#: ../lib/modules/ipHost.inc:99 ../lib/modules/inetOrgPerson.inc:363 +#: ../lib/modules/aliasEntry.inc:71 ../lib/modules/qmailGroup.inc:281 +#: ../lib/modules/qmailGroup.inc:289 ../lib/modules/qmailGroup.inc:297 +msgid "uid=smiller,ou=People,dc=company,dc=com" +msgstr "uid=smiller,ou=People,dc=company,dc=com" + +#: ../templates/config/mainmanage.php:312 +msgid "use custom CA certificates" +msgstr "використовувати користувацькі сертифікати CA" + +#: ../templates/config/mainmanage.php:309 +msgid "use system certificates" +msgstr "використовувати системні сертифікати" + +#: ../lib/modules/posixGroup.inc:452 +msgid "user01,user02,user03" +msgstr "user01,user02,user03" + +#: ../lib/modules/qmailUser.inc:273 ../lib/modules/qmailUser.inc:279 +#: ../lib/modules/qmailUser.inc:301 ../lib/modules/eduPerson.inc:163 +#: ../lib/modules/windowsUser.inc:352 ../lib/modules/windowsUser.inc:358 +#: ../lib/modules/pykotaUser.inc:220 ../lib/modules/inetOrgPerson.inc:451 +#: ../lib/modules/kolabSharedFolder.inc:183 +#: ../lib/modules/asteriskVoicemail.inc:180 ../lib/modules/qmailGroup.inc:339 +#: ../lib/modules/qmailGroup.inc:347 ../lib/modules/qmailGroup.inc:355 +msgid "user@company.com" +msgstr "user@company.com" + +#: ../lib/modules/posixAccount.inc:299 +msgid "users" +msgstr "користувачі" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:59 +msgid "view entries" +msgstr "перегляд записів" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +msgid "with " +msgstr "з" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:452 +#: ../lib/modules/zarafaDynamicGroup.inc:459 +#: ../lib/modules/zarafaContact.inc:570 ../lib/modules/zarafaGroup.inc:653 +#: ../lib/modules/zarafaGroup.inc:656 ../lib/modules/zarafaGroup.inc:663 +#: ../lib/modules/zarafaAddressList.inc:334 +#: ../lib/modules/zarafaAddressList.inc:341 +#: ../lib/modules/sambaSamAccount.inc:583 +#: ../lib/modules/sambaSamAccount.inc:1911 +#: ../lib/modules/sambaSamAccount.inc:1919 +#: ../lib/modules/sambaSamAccount.inc:1929 +#: ../lib/modules/sambaSamAccount.inc:1934 +#: ../lib/modules/sambaSamAccount.inc:1939 ../lib/modules/zarafaUser.inc:602 +#: ../lib/modules/zarafaUser.inc:1240 ../lib/modules/zarafaUser.inc:1256 +#: ../lib/modules/zarafaUser.inc:1266 ../lib/modules/zarafaUser.inc:1272 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:406 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:1173 ../lib/modules/windowsUser.inc:1512 +#: ../lib/modules/windowsUser.inc:1609 ../lib/modules/windowsUser.inc:1614 +#: ../lib/modules/windowsUser.inc:1619 ../lib/modules/windowsUser.inc:1624 +#: ../lib/modules/ppolicy.inc:36 ../lib/modules/ppolicy.inc:493 +#: ../lib/modules/ppolicy.inc:498 ../lib/modules/ppolicy.inc:501 +#: ../lib/modules/ppolicy.inc:508 ../lib/modules/inetOrgPerson.inc:525 +#: ../lib/modules/generalInformation.inc:102 +#: ../lib/modules/zarafaServer.inc:360 ../lib/modules/customFields.inc:2890 +#: ../lib/modules/fixed_ip.inc:750 +msgid "yes" +msgstr "так" + +#~ msgid "Mycity" +#~ msgstr "Mycity" + +#~ msgid "The IP address \"%s\" is invalid." +#~ msgstr "IP адреса \"%s\" неправильна." + +#~ msgid "" +#~ "You cannot add the Kolab group and shared folder extension at the same " +#~ "time." +#~ msgstr "" +#~ "Ви можете додати групу Kolab та розширення загальних каталогів одночасно." diff --git a/lam/locale/zh_CN/LC_MESSAGES/messages.mo b/lam/locale/zh_CN/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..44635d65 Binary files /dev/null and b/lam/locale/zh_CN/LC_MESSAGES/messages.mo differ diff --git a/lam/locale/zh_CN/LC_MESSAGES/messages.po b/lam/locale/zh_CN/LC_MESSAGES/messages.po new file mode 100644 index 00000000..3865214c --- /dev/null +++ b/lam/locale/zh_CN/LC_MESSAGES/messages.po @@ -0,0 +1,17232 @@ +# $Id$ +# +# +# LDAP Account Manager +# +msgid "" +msgstr "" +"Project-Id-Version: LAM 1.3\n" +"Report-Msgid-Bugs-To: post@rolandgruber.de\n" +"POT-Creation-Date: 2004-01-14 17:45+0200\n" +"PO-Revision-Date: 2014-09-14 11:59+0800\n" +"Last-Translator: Alan Needham \n" +"Language-Team: Chinese(Simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Generator: Poedit 1.6.4\n" + +#: ../lib/modules/zarafaContact.inc:95 ../lib/modules/zarafaContact.inc:98 +#: ../lib/modules/zarafaContact.inc:101 ../lib/modules/zarafaContact.inc:126 +#: ../lib/modules/zarafaGroup.inc:97 ../lib/modules/zarafaGroup.inc:100 +#: ../lib/modules/zarafaGroup.inc:103 ../lib/modules/zarafaGroup.inc:130 +#: ../lib/modules/zarafaUser.inc:144 ../lib/modules/zarafaUser.inc:147 +#: ../lib/modules/zarafaUser.inc:150 ../lib/modules/zarafaUser.inc:1812 +msgid "\"Send as\" attribute" +msgstr "\"Send as\"属性" + +#: ../lib/modules/zarafaContact.inc:79 ../lib/modules/zarafaContact.inc:150 +#: ../lib/modules/zarafaContact.inc:173 ../lib/modules/zarafaContact.inc:187 +#: ../lib/modules/zarafaContact.inc:226 ../lib/modules/zarafaContact.inc:355 +#: ../lib/modules/zarafaContact.inc:565 ../lib/modules/zarafaGroup.inc:93 +#: ../lib/modules/zarafaGroup.inc:138 ../lib/modules/zarafaGroup.inc:188 +#: ../lib/modules/zarafaGroup.inc:206 ../lib/modules/zarafaGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:263 ../lib/modules/zarafaGroup.inc:415 +#: ../lib/modules/zarafaGroup.inc:650 ../lib/modules/zarafaUser.inc:104 +#: ../lib/modules/zarafaUser.inc:196 ../lib/modules/zarafaUser.inc:355 +#: ../lib/modules/zarafaUser.inc:382 ../lib/modules/zarafaUser.inc:419 +#: ../lib/modules/zarafaUser.inc:463 ../lib/modules/zarafaUser.inc:839 +#: ../lib/modules/zarafaUser.inc:1234 ../lib/modules/zarafaUser.inc:1465 +#: ../lib/modules/zarafaUser.inc:1793 +msgid "\"Send as\" privileges" +msgstr "\"做为..发送\"权限" + +#: ../lib/modules/posixAccount.inc:519 +msgid "" +"$user and $group will be replaced with user name and primary group name." +msgstr "$usert和$group会被用户名或主要组名替代 " + +#: ../lib/modules/nisnetgroup.inc:134 +msgid "(host1,user1,example.com);(host2,user2,example.com)" +msgstr "(主机1,用户1,example.com);(主机2,用户2,example.com)" + +#: ../lib/modules/qmailUser.inc:368 ../lib/modules/posixAccount.inc:312 +msgid "/home/smiller" +msgstr "/home/smiller" + +#: ../lib/modules/inetOrgPerson.inc:422 +#: ../lib/modules/asteriskVoicemail.inc:186 +msgid "123-123-1234" +msgstr "123-123-1234" + +#: ../lib/modules/inetOrgPerson.inc:438 +msgid "123-123-1235" +msgstr "123-123-1235" + +#: ../lib/modules/inetOrgPerson.inc:446 ../lib/modules/inetOrgPerson.inc:454 +msgid "123-123-1236" +msgstr "123-123-1236" + +#: ../lib/modules/windowsUser.inc:364 ../lib/modules/windowsUser.inc:370 +#: ../lib/modules/inetOrgPerson.inc:430 +msgid "123-124-1234" +msgstr "123-124-1234" + +#: ../lib/modules/windowsUser.inc:322 ../lib/modules/inetOrgPerson.inc:414 +msgid "12345" +msgstr "12345" + +#: ../lib/modules/dhcp_settings.inc:174 +msgid "" +"B-Node (0x01): Broadcast.
    The client tries to find other " +"workstations via broadcasting\n" +"(works only inside the same collision domain, viz. the same subnet).

    \n" +"\n" +"P-Node (0x02): Point-To-Point
    \n" +"The client contacts a Netbios name server (NBNS) from Microsoft Windows Name " +"Service (WINS) for name resolution.

    \n" +"\n" +"M-Node (0x04): Mixed
    \n" +"The node tries broadcasting first. If that fails then it tries WINS.

    \n" +"\n" +"H-Node (0x08): Hybrid
    \n" +"The node tries WINS first. If that fails it tries broadcasting.

    \n" +"\n" +"By default, the nodes are configured as H-Nodes which fits for small " +"networks. In large networks Point-to-Point (0x02) should be used." +msgstr "" +"B-节点 (0x01): 广播.
    客户机尝试通过广播来发现其它的工作站\n" +"(仅工作在同一个冲突域中,就是同一个子网).

    \n" +"\n" +"P-节点 (0x02): 点到点
    \n" +"客户机通过WINS提供的NBNS服务进行名字解析.

    \n" +"\n" +"M-节点 (0x04): 混合
    \n" +"节点先尝试进行广播,如果失败则使用WINS.

    \n" +"\n" +"H-节点 (0x08): 混杂
    \n" +"节点先尝试使用WINS,如果失败则使用广播.

    \n" +"\n" +"缺省情况下,小型网络中节点被配置成H-节点模式,大型网络使用点到点模式." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:145 +#, php-format +msgid "Maximum length: %s characters" +msgstr "最大长度: %s 字符" + +#: ../lib/modules/bindDLZ.inc:499 +msgid "A CNAME record allows no other records." +msgstr "CNAME条目不允许其他的条目" + +#: ../lib/modules/bindDLZ.inc:533 +msgid "A NS record allows no other records except SOA/MX/A records." +msgstr "一条NS记录中除了 SOA/MX/A 记录外不允许其他记录" + +#: ../lib/modules/bindDLZ.inc:517 +msgid "A SOA record allows no other records except NS/MX/A records." +msgstr "SOA条目除了NS/MX/A条目外不允许其他条目" + +#: ../lib/modules/bindDLZ.inc:518 +msgid "A SOA record requires that the host name is set to \"@\"." +msgstr "SOA记录需要主机名前设置\"@\"." + +#: ../lib/modules/selfRegistration.inc:631 +#: ../lib/modules/passwordSelfReset.inc:1590 +msgid "" +"A confirmation mail was sent. Please click on the link in the mail to " +"proceed." +msgstr "确认邮件已经发送,请点击邮件中的链接来处理." + +#: ../lib/modules/device.inc:82 +msgid "A description for this device." +msgstr "设备描述." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +msgid "A list of attributes to display in the results (comma-separated)" +msgstr "在结果中显示的属性列表(以逗号分隔)" + +#: ../lib/modules/sudoRole.inc:95 ../lib/modules/sudoRole.inc:124 +msgid "A list of options (e.g. !authenticate)." +msgstr "选项列表(比如:!authenticate)." + +#: ../templates/massBuildAccounts.php:135 +msgid "A required column is missing in your CSV file." +msgstr "您的CSV文件中缺少一个必要的列." + +#: ../lib/modules/bindDLZ.inc:172 ../lib/modules/bindDLZ.inc:176 +msgid "A server name for this service (e.g. \"ldap.example.com.\")." +msgstr "这个服务的服务器名字(比如 \"ldap.example.com.\")." + +#: ../lib/modules/bindDLZ.inc:164 ../lib/modules/bindDLZ.inc:168 +msgid "A text value for this host." +msgstr "此主机的文本值" + +#: ../lib/modules/kolabUser.inc:133 +msgid "" +"A user may define who is allowed to act on behalf of herself. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"使用者可以同意由某人来代表自己,在 Kolab smtp 服务器(Postfix)发送电子邮件时会" +"检查这个属性." + +#: ../templates/3rdParty/pla/lib/import_functions.php:593 +msgid "A valid deleteoldrdn attribute should be specified" +msgstr "必须指定一个合法的deleteoldrnd属性" + +#: ../templates/3rdParty/pla/lib/import_functions.php:237 +msgid "A valid dn line is required" +msgstr "需要一个合法的dn行" + +#: ../templates/3rdParty/pla/lib/import_functions.php:596 +msgid "A valid newrdn attribute should be specified" +msgstr "必须指定一个合法的newrdn属性" + +#: ../templates/3rdParty/pla/lib/import_functions.php:587 +msgid "A valid newsuperior attribute should be specified" +msgstr "必须指定一个合法的newsuperior属性" + +#: ../lib/modules/bindDLZ.inc:96 ../lib/modules/bindDLZ.inc:105 +#: ../lib/modules/bindDLZ.inc:255 ../lib/modules/bindDLZ.inc:261 +#: ../lib/modules/bindDLZ.inc:479 +msgid "A/AAAA record" +msgstr "A/AAAAA条目" + +#: ../lib/modules/bindDLZ.inc:418 ../lib/modules/bindDLZ.inc:438 +#: ../lib/modules/bindDLZ.inc:1476 +msgid "A/AAAA records" +msgstr "A/AAAAA条目" + +#: ../lib/modules/asteriskAccount.inc:131 +#: ../lib/modules/asteriskAccount.inc:271 +#: ../lib/modules/asteriskAccount.inc:347 +#: ../lib/modules/asteriskAccount.inc:610 +#: ../lib/modules/asteriskAccount.inc:987 +#: ../lib/modules/asteriskAccount.inc:1243 +msgid "AMA flags" +msgstr "AMA标志" + +#: ../templates/serverInfo.php:342 +msgid "Abandon" +msgstr "终止" + +#: ../templates/lists/changePassword.php:723 +msgid "Aborted password change." +msgstr "中断密码更改" + +#: ../lib/modules/sambaSamAccount.inc:569 +msgid "Abu Dhabi, Muscat, Baku" +msgstr "阿布达比, 马斯凯特, 巴库" + +#: ../templates/config/confmain.php:264 ../help/help.inc:109 +msgid "Access level" +msgstr "访问级别" + +#: ../lib/modules/account.inc:65 +msgid "Account" +msgstr "帐号" + +#: ../templates/massBuildAccounts.php:201 ../lib/modules/kolabGroup.inc:178 +#: ../lib/modules/kolabGroup.inc:180 ../lib/modules/kolabGroup.inc:182 +#: ../lib/modules/kolabGroup.inc:184 ../lib/modules/pykotaPrinter.inc:210 +#: ../lib/modules/pykotaPrinter.inc:212 ../lib/modules/pykotaPrinter.inc:214 +#: ../lib/modules/pykotaPrinter.inc:216 ../lib/modules/pykotaPrinter.inc:218 +#: ../lib/modules/pykotaPrinter.inc:219 ../lib/modules/pykotaPrinter.inc:220 +#: ../lib/modules/mitKerberos.inc:290 ../lib/modules/mitKerberos.inc:291 +#: ../lib/modules/mitKerberos.inc:292 ../lib/modules/mitKerberos.inc:294 +#: ../lib/modules/mitKerberos.inc:296 ../lib/modules/mitKerberos.inc:297 +#: ../lib/modules/zarafaDynamicGroup.inc:197 +#: ../lib/modules/zarafaDynamicGroup.inc:199 +#: ../lib/modules/zarafaDynamicGroup.inc:201 +#: ../lib/modules/zarafaDynamicGroup.inc:203 +#: ../lib/modules/zarafaDynamicGroup.inc:204 +#: ../lib/modules/zarafaDynamicGroup.inc:205 ../lib/modules/ipHost.inc:116 +#: ../lib/modules/ipHost.inc:117 ../lib/modules/asteriskAccount.inc:558 +#: ../lib/modules/asteriskAccount.inc:561 +#: ../lib/modules/asteriskAccount.inc:564 +#: ../lib/modules/asteriskAccount.inc:567 +#: ../lib/modules/asteriskAccount.inc:569 +#: ../lib/modules/asteriskAccount.inc:571 +#: ../lib/modules/asteriskAccount.inc:573 +#: ../lib/modules/asteriskAccount.inc:575 +#: ../lib/modules/asteriskAccount.inc:577 ../lib/modules/account.inc:125 +#: ../lib/modules/ieee802device.inc:96 ../lib/modules/puppetClient.inc:185 +#: ../lib/modules/puppetClient.inc:187 ../lib/modules/puppetClient.inc:189 +#: ../lib/modules/puppetClient.inc:190 ../lib/modules/qmailUser.inc:449 +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:453 +#: ../lib/modules/qmailUser.inc:454 ../lib/modules/qmailUser.inc:455 +#: ../lib/modules/qmailUser.inc:457 ../lib/modules/qmailUser.inc:459 +#: ../lib/modules/qmailUser.inc:461 ../lib/modules/qmailUser.inc:464 +#: ../lib/modules/qmailUser.inc:467 ../lib/modules/qmailUser.inc:469 +#: ../lib/modules/qmailUser.inc:470 ../lib/modules/qmailUser.inc:471 +#: ../lib/modules/zarafaContact.inc:186 ../lib/modules/zarafaContact.inc:188 +#: ../lib/modules/zarafaContact.inc:189 ../lib/modules/zarafaContact.inc:190 +#: ../lib/modules/zarafaContact.inc:191 ../lib/modules/windowsHost.inc:132 +#: ../lib/modules/posixGroup.inc:601 ../lib/modules/posixGroup.inc:605 +#: ../lib/modules/posixGroup.inc:606 ../lib/modules/zarafaGroup.inc:216 +#: ../lib/modules/zarafaGroup.inc:218 ../lib/modules/zarafaGroup.inc:219 +#: ../lib/modules/zarafaGroup.inc:220 ../lib/modules/zarafaGroup.inc:221 +#: ../lib/modules/zarafaGroup.inc:223 ../lib/modules/device.inc:141 +#: ../lib/modules/device.inc:142 ../lib/modules/dhcp_settings.inc:321 +#: ../lib/modules/dhcp_settings.inc:323 ../lib/modules/dhcp_settings.inc:325 +#: ../lib/modules/dhcp_settings.inc:327 ../lib/modules/dhcp_settings.inc:329 +#: ../lib/modules/dhcp_settings.inc:330 ../lib/modules/dhcp_settings.inc:331 +#: ../lib/modules/dhcp_settings.inc:333 ../lib/modules/dhcp_settings.inc:335 +#: ../lib/modules/dhcp_settings.inc:339 ../lib/modules/eduPerson.inc:244 +#: ../lib/modules/eduPerson.inc:246 ../lib/modules/eduPerson.inc:248 +#: ../lib/modules/eduPerson.inc:250 ../lib/modules/eduPerson.inc:251 +#: ../lib/modules/eduPerson.inc:252 ../lib/modules/eduPerson.inc:253 +#: ../lib/modules/quota.inc:52 ../lib/modules/quota.inc:54 +#: ../lib/modules/quota.inc:56 ../lib/modules/quota.inc:58 +#: ../lib/modules/quota.inc:60 ../lib/modules/quota.inc:62 +#: ../lib/modules/quota.inc:63 ../lib/modules/zarafaAddressList.inc:170 +#: ../lib/modules/zarafaAddressList.inc:171 +#: ../lib/modules/zarafaAddressList.inc:172 ../lib/modules/pykotaGroup.inc:198 +#: ../lib/modules/pykotaGroup.inc:200 ../lib/modules/pykotaGroup.inc:202 +#: ../lib/modules/pykotaGroup.inc:204 ../lib/modules/pykotaGroup.inc:205 +#: ../lib/modules/sambaSamAccount.inc:96 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:102 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:107 +#: ../lib/modules/sambaSamAccount.inc:108 +#: ../lib/modules/sambaSamAccount.inc:109 +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 +#: ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/sambaSamAccount.inc:117 +#: ../lib/modules/sambaSamAccount.inc:118 +#: ../lib/modules/sambaSamAccount.inc:120 +#: ../lib/modules/sambaSamAccount.inc:121 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/posixAccount.inc:107 ../lib/modules/posixAccount.inc:111 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/posixAccount.inc:124 +#: ../lib/modules/posixAccount.inc:126 ../lib/modules/posixAccount.inc:127 +#: ../lib/modules/posixAccount.inc:128 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/zarafaUser.inc:409 ../lib/modules/zarafaUser.inc:411 +#: ../lib/modules/zarafaUser.inc:413 ../lib/modules/zarafaUser.inc:414 +#: ../lib/modules/zarafaUser.inc:416 ../lib/modules/zarafaUser.inc:418 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/zarafaUser.inc:421 +#: ../lib/modules/zarafaUser.inc:422 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:424 ../lib/modules/zarafaUser.inc:425 +#: ../lib/modules/zarafaUser.inc:426 ../lib/modules/zarafaUser.inc:427 +#: ../lib/modules/ppolicyUser.inc:97 ../lib/modules/bindDLZ.inc:478 +#: ../lib/modules/bindDLZ.inc:480 ../lib/modules/bindDLZ.inc:482 +#: ../lib/modules/bindDLZ.inc:484 ../lib/modules/bindDLZ.inc:486 +#: ../lib/modules/bindDLZ.inc:488 ../lib/modules/bindDLZ.inc:490 +#: ../lib/modules/bindDLZ.inc:492 ../lib/modules/bindDLZ.inc:494 +#: ../lib/modules/bindDLZ.inc:496 ../lib/modules/bindDLZ.inc:498 +#: ../lib/modules/bindDLZ.inc:499 ../lib/modules/bindDLZ.inc:501 +#: ../lib/modules/bindDLZ.inc:503 ../lib/modules/bindDLZ.inc:505 +#: ../lib/modules/bindDLZ.inc:507 ../lib/modules/bindDLZ.inc:509 +#: ../lib/modules/bindDLZ.inc:511 ../lib/modules/bindDLZ.inc:513 +#: ../lib/modules/bindDLZ.inc:515 ../lib/modules/bindDLZ.inc:516 +#: ../lib/modules/bindDLZ.inc:517 ../lib/modules/bindDLZ.inc:518 +#: ../lib/modules/bindDLZ.inc:520 ../lib/modules/bindDLZ.inc:522 +#: ../lib/modules/bindDLZ.inc:524 ../lib/modules/bindDLZ.inc:526 +#: ../lib/modules/bindDLZ.inc:528 ../lib/modules/bindDLZ.inc:530 +#: ../lib/modules/bindDLZ.inc:532 ../lib/modules/bindDLZ.inc:533 +#: ../lib/modules/windowsUser.inc:590 ../lib/modules/windowsUser.inc:592 +#: ../lib/modules/windowsUser.inc:594 ../lib/modules/windowsUser.inc:596 +#: ../lib/modules/windowsUser.inc:598 ../lib/modules/windowsUser.inc:600 +#: ../lib/modules/windowsUser.inc:602 ../lib/modules/windowsUser.inc:604 +#: ../lib/modules/windowsUser.inc:606 ../lib/modules/windowsUser.inc:608 +#: ../lib/modules/windowsUser.inc:610 ../lib/modules/windowsUser.inc:612 +#: ../lib/modules/windowsUser.inc:614 ../lib/modules/windowsUser.inc:617 +#: ../lib/modules/windowsUser.inc:619 ../lib/modules/windowsUser.inc:621 +#: ../lib/modules/windowsUser.inc:1360 ../lib/modules/windowsUser.inc:1369 +#: ../lib/modules/windowsUser.inc:1378 ../lib/modules/windowsUser.inc:1389 +#: ../lib/modules/windowsUser.inc:1456 ../lib/modules/kolabUser.inc:246 +#: ../lib/modules/kolabUser.inc:248 ../lib/modules/kolabUser.inc:250 +#: ../lib/modules/kolabUser.inc:252 ../lib/modules/kolabUser.inc:254 +#: ../lib/modules/kolabUser.inc:256 ../lib/modules/kolabUser.inc:258 +#: ../lib/modules/ddns.inc:152 ../lib/modules/nisObject.inc:124 +#: ../lib/modules/sambaGroupMapping.inc:603 +#: ../lib/modules/sambaGroupMapping.inc:604 ../lib/modules/pykotaUser.inc:312 +#: ../lib/modules/pykotaUser.inc:314 ../lib/modules/pykotaUser.inc:316 +#: ../lib/modules/pykotaUser.inc:318 ../lib/modules/pykotaUser.inc:320 +#: ../lib/modules/pykotaUser.inc:321 ../lib/modules/pykotaUser.inc:323 +#: ../lib/modules/pykotaUser.inc:325 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/shadowAccount.inc:60 ../lib/modules/shadowAccount.inc:62 +#: ../lib/modules/shadowAccount.inc:64 ../lib/modules/shadowAccount.inc:66 +#: ../lib/modules/shadowAccount.inc:67 ../lib/modules/automount.inc:115 +#: ../lib/modules/sambaDomain.inc:209 ../lib/modules/sambaDomain.inc:211 +#: ../lib/modules/sambaDomain.inc:213 ../lib/modules/sambaDomain.inc:215 +#: ../lib/modules/sambaDomain.inc:217 ../lib/modules/sambaDomain.inc:219 +#: ../lib/modules/inetOrgPerson.inc:67 ../lib/modules/inetOrgPerson.inc:69 +#: ../lib/modules/inetOrgPerson.inc:71 ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:75 ../lib/modules/inetOrgPerson.inc:77 +#: ../lib/modules/inetOrgPerson.inc:79 ../lib/modules/inetOrgPerson.inc:82 +#: ../lib/modules/inetOrgPerson.inc:84 ../lib/modules/inetOrgPerson.inc:86 +#: ../lib/modules/inetOrgPerson.inc:88 ../lib/modules/inetOrgPerson.inc:90 +#: ../lib/modules/inetOrgPerson.inc:92 ../lib/modules/inetOrgPerson.inc:94 +#: ../lib/modules/inetOrgPerson.inc:96 ../lib/modules/inetOrgPerson.inc:98 +#: ../lib/modules/inetOrgPerson.inc:99 ../lib/modules/inetOrgPerson.inc:100 +#: ../lib/modules/inetOrgPerson.inc:106 ../lib/modules/inetOrgPerson.inc:107 +#: ../lib/modules/inetOrgPerson.inc:108 ../lib/modules/systemQuotas.inc:98 +#: ../lib/modules/systemQuotas.inc:100 ../lib/modules/systemQuotas.inc:102 +#: ../lib/modules/systemQuotas.inc:104 ../lib/modules/systemQuotas.inc:106 +#: ../lib/modules/systemQuotas.inc:108 ../lib/modules/systemQuotas.inc:110 +#: ../lib/modules/freeRadius.inc:250 ../lib/modules/freeRadius.inc:252 +#: ../lib/modules/freeRadius.inc:254 ../lib/modules/freeRadius.inc:256 +#: ../lib/modules/freeRadius.inc:258 ../lib/modules/freeRadius.inc:260 +#: ../lib/modules/sudoRole.inc:270 ../lib/modules/sudoRole.inc:272 +#: ../lib/modules/sudoRole.inc:274 ../lib/modules/sudoRole.inc:276 +#: ../lib/modules/sudoRole.inc:278 ../lib/modules/sudoRole.inc:280 +#: ../lib/modules/sudoRole.inc:282 ../lib/modules/sudoRole.inc:284 +#: ../lib/modules/sudoRole.inc:286 ../lib/modules/kolabSharedFolder.inc:251 +#: ../lib/modules/kolabSharedFolder.inc:253 +#: ../lib/modules/kolabSharedFolder.inc:255 +#: ../lib/modules/kolabSharedFolder.inc:256 +#: ../lib/modules/kolabSharedFolder.inc:258 +#: ../lib/modules/kolabSharedFolder.inc:260 +#: ../lib/modules/zarafaServer.inc:174 ../lib/modules/zarafaServer.inc:176 +#: ../lib/modules/zarafaServer.inc:178 ../lib/modules/zarafaServer.inc:179 +#: ../lib/modules/asteriskVoicemail.inc:212 +#: ../lib/modules/asteriskVoicemail.inc:216 +#: ../lib/modules/asteriskVoicemail.inc:219 +#: ../lib/modules/asteriskVoicemail.inc:221 +#: ../lib/modules/asteriskVoicemail.inc:223 +#: ../lib/modules/asteriskVoicemail.inc:225 +#: ../lib/modules/asteriskVoicemail.inc:227 +#: ../lib/modules/inetLocalMailRecipient.inc:131 +#: ../lib/modules/inetLocalMailRecipient.inc:133 +#: ../lib/modules/inetLocalMailRecipient.inc:135 +#: ../lib/modules/aliasEntry.inc:86 ../lib/modules/qmailGroup.inc:421 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:426 +#: ../lib/modules/qmailGroup.inc:428 ../lib/modules/qmailGroup.inc:430 +#: ../lib/modules/qmailGroup.inc:432 ../lib/modules/qmailGroup.inc:433 +#: ../lib/modules/qmailGroup.inc:434 ../lib/modules/qmailGroup.inc:435 +#: ../lib/modules/qmailGroup.inc:436 ../lib/modules/qmailGroup.inc:437 +#: ../lib/modules/authorizedServiceObject.inc:130 +#: ../lib/modules/passwordSelfReset.inc:233 +#: ../lib/modules/heimdalKerberos.inc:254 +#: ../lib/modules/heimdalKerberos.inc:255 +#: ../lib/modules/heimdalKerberos.inc:256 +#: ../lib/modules/heimdalKerberos.inc:258 +#: ../lib/modules/heimdalKerberos.inc:260 +#: ../lib/modules/pykotaBillingCode.inc:128 +#: ../lib/modules/pykotaBillingCode.inc:130 +#: ../lib/modules/windowsGroup.inc:284 ../lib/modules/windowsGroup.inc:286 +#: ../lib/modules/windowsGroup.inc:287 ../lib/modules/windowsGroup.inc:288 +#: ../lib/modules/windowsGroup.inc:290 ../lib/modules/nisMailAlias.inc:126 +#: ../lib/modules/nisMailAlias.inc:128 ../lib/modules/hostObject.inc:111 +#, php-format +msgid "Account %s:" +msgstr "帐号 %s:" + +#: ../lib/types/asteriskExt.inc:95 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskAccount.inc:111 +#: ../lib/modules/asteriskAccount.inc:255 +#: ../lib/modules/asteriskAccount.inc:267 +#: ../lib/modules/asteriskAccount.inc:311 +#: ../lib/modules/asteriskAccount.inc:593 +#: ../lib/modules/asteriskAccount.inc:983 +#: ../lib/modules/asteriskExtension.inc:98 +#: ../lib/modules/asteriskExtension.inc:129 +#: ../lib/modules/asteriskExtension.inc:136 +#: ../lib/modules/asteriskExtension.inc:152 +#: ../lib/modules/asteriskExtension.inc:306 +#: ../lib/modules/asteriskExtension.inc:812 +#: ../lib/modules/asteriskVoicemail.inc:91 +#: ../lib/modules/asteriskVoicemail.inc:127 +#: ../lib/modules/asteriskVoicemail.inc:137 +#: ../lib/modules/asteriskVoicemail.inc:151 +#: ../lib/modules/asteriskVoicemail.inc:247 +#: ../lib/modules/asteriskVoicemail.inc:370 +msgid "Account context" +msgstr "帐号语境" + +#: ../lib/modules/selfRegistration.inc:449 +msgid "Account creation" +msgstr "帐号建立" + +#: ../lib/modules/selfRegistration.inc:231 +msgid "Account creation confirmation" +msgstr "建立帐号确认" + +#: ../templates/masscreate.php:125 +msgid "Account creation via file upload" +msgstr "通过上传文件建立帐号" + +#: ../lib/modules/posixAccount.inc:526 +msgid "Account deactivated" +msgstr "帐号已停用" + +#: ../templates/lists/changePassword.php:280 +msgid "Account details" +msgstr "帐号详细信息" + +#: ../lib/types/user.inc:104 ../lib/modules/mitKerberos.inc:124 +#: ../lib/modules/mitKerberos.inc:218 ../lib/modules/mitKerberos.inc:251 +#: ../lib/modules/mitKerberos.inc:385 ../lib/modules/mitKerberos.inc:634 +#: ../lib/modules/mitKerberos.inc:783 ../lib/modules/sambaSamAccount.inc:346 +#: ../lib/modules/sambaSamAccount.inc:464 +#: ../lib/modules/sambaSamAccount.inc:1194 +#: ../lib/modules/sambaSamAccount.inc:1452 +#: ../lib/modules/sambaSamAccount.inc:1746 +#: ../lib/modules/shadowAccount.inc:128 ../lib/modules/shadowAccount.inc:193 +#: ../lib/modules/shadowAccount.inc:233 ../lib/modules/shadowAccount.inc:352 +#: ../lib/modules/shadowAccount.inc:453 ../lib/modules/shadowAccount.inc:499 +#: ../lib/modules/heimdalKerberos.inc:102 +#: ../lib/modules/heimdalKerberos.inc:187 +#: ../lib/modules/heimdalKerberos.inc:219 +#: ../lib/modules/heimdalKerberos.inc:321 +#: ../lib/modules/heimdalKerberos.inc:544 +#: ../lib/modules/heimdalKerberos.inc:679 +msgid "Account expiration date" +msgstr "帐号过期日期" + +#: ../lib/modules/shadowAccount.inc:169 +msgid "Account inactive" +msgstr "帐号停用(inactive)" + +#: ../lib/modules/sambaSamAccount.inc:286 +#: ../lib/modules/sambaSamAccount.inc:292 +#: ../lib/modules/sambaSamAccount.inc:456 +#: ../lib/modules/sambaSamAccount.inc:1152 +#: ../lib/modules/sambaSamAccount.inc:1742 ../lib/modules/windowsUser.inc:192 +#: ../lib/modules/windowsUser.inc:386 ../lib/modules/windowsUser.inc:517 +#: ../lib/modules/windowsUser.inc:744 ../lib/modules/windowsUser.inc:1619 +msgid "Account is deactivated" +msgstr "帐号已经停用" + +#: ../lib/modules/sambaSamAccount.inc:289 +#: ../lib/modules/sambaSamAccount.inc:1158 ../lib/modules/windowsUser.inc:195 +#: ../lib/modules/windowsUser.inc:725 +msgid "Account is locked" +msgstr "帐号锁定" + +#: ../templates/delete.php:99 +msgid "Account name:" +msgstr "帐号名" + +#: ../lib/types/user.inc:305 ../lib/types/user.inc:714 +#: ../lib/types/user.inc:848 ../lib/modules/qmailUser.inc:211 +#: ../lib/modules/qmailUser.inc:283 ../lib/modules/qmailUser.inc:402 +#: ../lib/modules/qmailUser.inc:609 ../lib/modules/qmailUser.inc:1157 +msgid "Account status" +msgstr "帐号状态" + +#: ../templates/masscreate.php:152 ../lib/modules/asteriskAccount.inc:119 +#: ../lib/modules/asteriskAccount.inc:256 +#: ../lib/modules/asteriskAccount.inc:269 +#: ../lib/modules/asteriskAccount.inc:331 +#: ../lib/modules/asteriskAccount.inc:595 +#: ../lib/modules/asteriskAccount.inc:985 ../lib/modules/customFields.inc:524 +#: ../lib/modules/customFields.inc:566 +msgid "Account type" +msgstr "帐号类型" + +#: ../templates/config/confmodules.php:168 +#: ../templates/config/confmain.php:209 +#: ../templates/config/moduleSettings.php:167 +#: ../templates/config/conftypes.php:186 +msgid "Account types" +msgstr "帐号类型" + +#: ../help/help.inc:111 +msgid "Account types and modules" +msgstr "帐号类型和模块" + +#: ../help/help.inc:113 +msgid "" +"Account types define which sorts of LDAP entries (e.g. users and groups) " +"should be managed. The account modules define which properties (e.g. Unix " +"and Samba) can be edited." +msgstr "" +"LDAP条目类型中的帐号类型定义必须是可管理的(比如user和group),帐号模块定义中的" +"属性(例如 UNIX 和SAMBA)必须是可编辑的。" + +#: ../lib/modules.inc:1315 +msgid "Account was created successfully." +msgstr "新增帐号成功" + +#: ../templates/lists/changePassword.php:753 +#: ../templates/lists/changePassword.php:805 +#: ../templates/lists/changePassword.php:851 ../lib/modules.inc:1318 +msgid "Account was modified successfully." +msgstr "帐号修改成功" + +#: ../lib/modules/customScripts.inc:168 +msgid "Action type" +msgstr "动作类型" + +#: ../lib/modules/ddns.inc:81 ../lib/modules/ddns.inc:368 +msgid "Activate DynDNS" +msgstr "活动的动态DNS" + +#: ../templates/config/confmain.php:243 +#: ../templates/selfService/adminMain.php:419 +msgid "Activate TLS" +msgstr "激活TLS" + +#: ../lib/modules/sambaSamAccount.inc:353 +msgid "Activate this checkbox to allow this user to use the terminal service." +msgstr "激活这个选项允许用户使用终端服务。" + +#: ../lib/modules/sambaSamAccount.inc:374 +msgid "Activate this checkbox to connect drives from the client machine." +msgstr "激活这个选项将从客户机上连接驱动器。" + +#: ../lib/modules/sambaSamAccount.inc:377 +msgid "Activate this checkbox to connect printers from the client machine." +msgstr "激活这个选项将从客户机上连接打印机。" + +#: ../lib/modules/sambaSamAccount.inc:362 +msgid "" +"Activate this checkbox to inherit the initial program and working directory " +"from the client machine." +msgstr "激活这个选项将从客户机上继承初始化程序和工作目录。" + +#: ../lib/modules/sambaSamAccount.inc:380 +msgid "Activate this checkbox to set the client's printer as default printer." +msgstr "激活这个选项将会设置客户打印机为缺省打印机。" + +#: ../lib/modules/posixAccount.inc:478 +msgid "Activating this checkbox will remove the user's home directory." +msgstr "激活这个选项将会删除用户的主目录." + +#: ../lib/types/zarafaAddressListType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:93 +#: ../lib/modules/zarafaDynamicGroup.inc:83 +#: ../lib/modules/zarafaDynamicGroup.inc:144 +#: ../lib/modules/zarafaDynamicGroup.inc:168 +#: ../lib/modules/zarafaDynamicGroup.inc:281 +#: ../lib/modules/zarafaDynamicGroup.inc:456 ../lib/modules/qmailUser.inc:41 +#: ../lib/modules/qmailUser.inc:285 ../lib/modules/zarafaContact.inc:75 +#: ../lib/modules/zarafaContact.inc:156 ../lib/modules/zarafaContact.inc:254 +#: ../lib/modules/zarafaGroup.inc:89 ../lib/modules/zarafaGroup.inc:154 +#: ../lib/modules/zarafaGroup.inc:195 ../lib/modules/zarafaGroup.inc:302 +#: ../lib/modules/zarafaGroup.inc:660 ../lib/modules/zarafaAddressList.inc:71 +#: ../lib/modules/zarafaAddressList.inc:120 +#: ../lib/modules/zarafaAddressList.inc:142 +#: ../lib/modules/zarafaAddressList.inc:222 +#: ../lib/modules/zarafaAddressList.inc:338 ../lib/modules/zarafaUser.inc:84 +#: ../lib/modules/zarafaUser.inc:255 ../lib/modules/zarafaUser.inc:594 +#: ../lib/modules/zarafaUser.inc:1801 ../lib/modules/fixed_ip.inc:114 +#: ../lib/modules/fixed_ip.inc:438 ../lib/modules/fixed_ip.inc:743 +msgid "Active" +msgstr "激活" + +#: ../templates/config/conftypes.php:233 +msgid "Active account types" +msgstr "激活帐号类型" + +#: ../templates/serverInfo.php:307 ../templates/serverInfo.php:384 +#: ../templates/multiEdit.php:126 ../templates/config/profmanage.php:252 +#: ../templates/config/confmodules.php:305 +#: ../templates/config/conftypes.php:223 +#: ../templates/selfService/profManage.php:209 +#: ../templates/pdfedit/pdfpage.php:596 ../templates/pdfedit/pdfpage.php:606 +#: ../templates/pdfedit/pdfpage.php:616 ../templates/pdfedit/pdfpage.php:630 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1206 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1210 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:78 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:121 +#: ../lib/modules/pykotaPrinter.inc:269 ../lib/modules/pykotaPrinter.inc:430 +#: ../lib/modules/nisMailAliasUser.inc:162 +#: ../lib/modules/nisMailAliasUser.inc:201 +#: ../lib/modules/nisMailAliasUser.inc:387 +#: ../lib/modules/zarafaContact.inc:390 ../lib/modules/zarafaGroup.inc:450 +#: ../lib/modules/device.inc:253 ../lib/modules/zarafaUser.inc:874 +#: ../lib/modules/zarafaUser.inc:1462 ../lib/modules/zarafaUser.inc:1494 +#: ../lib/modules/bindDLZ.inc:675 ../lib/modules/bindDLZ.inc:767 +#: ../lib/modules/bindDLZ.inc:847 ../lib/modules/bindDLZ.inc:951 +#: ../lib/modules/bindDLZ.inc:1067 ../lib/modules/bindDLZ.inc:1179 +#: ../lib/modules/bindDLZ.inc:1275 ../lib/modules/bindDLZ.inc:1389 +#: ../lib/modules/kolabUser.inc:835 ../lib/modules/kolabUser.inc:883 +#: ../lib/modules/sambaGroupMapping.inc:392 +#: ../lib/modules/sambaGroupMapping.inc:489 ../lib/modules/pykotaUser.inc:377 +#: ../lib/modules/ldapPublicKey.inc:267 ../lib/modules/ldapPublicKey.inc:277 +#: ../lib/modules/nisnetgroup.inc:282 ../lib/modules/inetOrgPerson.inc:1742 +#: ../lib/modules/sudoRole.inc:321 ../lib/modules/sudoRole.inc:348 +#: ../lib/modules/sudoRole.inc:375 ../lib/modules/sudoRole.inc:402 +#: ../lib/modules/sudoRole.inc:429 ../lib/modules/sudoRole.inc:456 +#: ../lib/modules/customFields.inc:1083 ../lib/modules/customFields.inc:2091 +#: ../lib/modules/customFields.inc:2101 ../lib/modules/qmailGroup.inc:822 +#: ../lib/modules/organizationalRole.inc:317 ../lib/modules/fixed_ip.inc:586 +#: ../lib/modules/windowsGroup.inc:556 ../lib/modules/groupOfNames.inc:374 +#: ../lib/modules/groupOfNames.inc:529 +msgid "Add" +msgstr "增加" + +#: ../lib/modules/asteriskAccount.inc:762 +msgid "Add Asterisk account" +msgstr "增加 Asterisk 帐号" + +#: ../lib/modules/asteriskVoicemail.inc:269 +msgid "Add Asterisk voicemail extension" +msgstr "增加Asterisk语音邮件扩展" + +#: ../lib/modules/authorizedServiceObject.inc:175 +msgid "Add Authorized Service extension" +msgstr "增加授权服务扩展" + +#: ../lib/modules/eduPerson.inc:360 +msgid "Add EDU person extension" +msgstr "增加EDU用户扩展" + +#: ../lib/modules/freeRadius.inc:312 +msgid "Add FreeRadius extension" +msgstr "增加FreeRadius扩展" + +#: ../lib/modules/ipHost.inc:165 +msgid "Add IP address extension" +msgstr "增加IP地址扩展" + +#: ../lib/modules/mitKerberos.inc:478 ../lib/modules/heimdalKerberos.inc:402 +msgid "Add Kerberos extension" +msgstr "增加 Kerberos 扩展" + +#: ../lib/modules/kolabGroup.inc:121 ../lib/modules/kolabGroup.inc:133 +#: ../lib/modules/kolabGroup.inc:220 ../lib/modules/kolabUser.inc:394 +msgid "Add Kolab extension" +msgstr "增加 Kolab 扩展" + +#: ../lib/modules/puppetClient.inc:224 +msgid "Add Puppet extension" +msgstr "增加 Puppet 扩展" + +#: ../lib/modules/pykotaGroup.inc:245 ../lib/modules/pykotaUser.inc:425 +msgid "Add PyKota extension" +msgstr "增加 PyKota 扩展" + +#: ../lib/modules/sambaSamAccount.inc:1316 +#: ../lib/modules/sambaGroupMapping.inc:428 +msgid "Add Samba 3 extension" +msgstr "增加 Samba 3 扩展" + +#: ../lib/modules/shadowAccount.inc:380 +msgid "Add Shadow account extension" +msgstr "增加 Shadow 帐号扩展" + +#: ../lib/modules/posixGroup.inc:253 ../lib/modules/posixAccount.inc:1518 +msgid "Add Unix extension" +msgstr "增加Unix扩展" + +#: ../lib/modules/zarafaContact.inc:134 ../lib/modules/zarafaContact.inc:202 +msgid "Add Zarafa contact extension" +msgstr "增加Zarafa联系人扩展" + +#: ../lib/modules/zarafaContact.inc:110 ../lib/modules/zarafaContact.inc:111 +#: ../lib/modules/zarafaGroup.inc:312 ../lib/modules/zarafaUser.inc:167 +#: ../lib/modules/zarafaUser.inc:168 ../lib/modules/zarafaUser.inc:179 +#: ../lib/modules/zarafaUser.inc:438 ../lib/modules/zarafaServer.inc:237 +msgid "Add Zarafa extension" +msgstr "增加Zarafa扩展" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add all" +msgstr "增加所有" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2073 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2091 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "Add an additional value to attribute" +msgstr "给属性新增一个值." + +#: ../lib/modules/asteriskExtension.inc:350 +msgid "Add another rule" +msgstr "增加另外一个规则" + +#: ../lib/modules/inetOrgPerson.inc:1777 +#: ../lib/modules/organizationalRole.inc:322 +#: ../lib/modules/groupOfNames.inc:379 ../lib/modules/groupOfNames.inc:534 +msgid "Add entries" +msgstr "增加条目" + +#: ../lib/modules/zarafaContact.inc:429 ../lib/modules/zarafaGroup.inc:489 +#: ../lib/modules/device.inc:296 ../lib/modules/zarafaUser.inc:913 +#: ../lib/modules/sambaGroupMapping.inc:504 ../lib/modules/qmailGroup.inc:858 +#: ../lib/modules/organizationalRole.inc:333 +#: ../lib/modules/windowsGroup.inc:599 ../lib/modules/groupOfNames.inc:390 +#: ../lib/modules/groupOfNames.inc:545 +msgid "Add entries of this type:" +msgstr "增加类型条目" + +#: ../lib/modules/fixed_ip.inc:544 +msgid "Add existing host" +msgstr "增加已有主机" + +#: ../lib/modules/customFields.inc:439 +msgid "Add extension" +msgstr "增加扩展" + +#: ../lib/modules/ddns.inc:369 +msgid "Add fix IP addresses to DNS" +msgstr "为DNS增加一个固定的IP地址" + +#: ../lib/modules/hostObject.inc:152 +msgid "Add host extension" +msgstr "增加 host 扩展" + +#: ../templates/selfService/adminMain.php:599 ../help/help.inc:232 +msgid "Add input field" +msgstr "增加输入栏目" + +#: ../templates/multiEdit.php:148 +msgid "Add more fields" +msgstr "增加更多的域" + +#: ../lib/modules/customFields.inc:2973 +msgid "Add more mapping fields" +msgstr "增加更多的映射域" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:37 +#, php-format +msgid "Add new %s value to %s" +msgstr "增加新的%s 值到 %s" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1208 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:29 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:48 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:166 +msgid "Add new attribute" +msgstr "新增属性" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1207 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1211 +msgid "Add new attribute to this object" +msgstr "给对象新增属性" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:89 +msgid "Add new binary attribute" +msgstr "新增binary属性." + +#: ../lib/modules/customFields.inc:1082 ../lib/modules/customFields.inc:1083 +msgid "Add new field" +msgstr "增加新域" + +#: ../templates/selfService/adminMain.php:591 ../help/help.inc:230 +msgid "Add new group" +msgstr "新增组" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:117 +msgid "Add new object class" +msgstr "增加一个新的对象类" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:60 +#, php-format +msgid "Add new object class to %s" +msgstr "增加新的对象类到%s" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:94 +msgid "Add object class and attributes" +msgstr "增加对象类和属性" + +#: ../lib/modules/passwordSelfReset.inc:245 +msgid "Add password self reset extension" +msgstr "增加密码自助复位扩展" + +#: ../lib/modules/inetOrgPerson.inc:770 ../lib/modules/inetOrgPerson.inc:1618 +#: ../lib/modules/inetOrgPerson.inc:1701 ../lib/modules/inetOrgPerson.inc:2714 +msgid "Add photo" +msgstr "新增照片" + +#: ../templates/config/profmanage.php:239 +#: ../templates/config/profmanage.php:253 +#: ../templates/selfService/profManage.php:202 +#: ../templates/selfService/profManage.php:210 ../help/help.inc:130 +msgid "Add profile" +msgstr "增加配置文件" + +#: ../lib/modules/qmailUser.inc:712 ../lib/modules/qmailGroup.inc:633 +msgid "Add qmail extension" +msgstr "增加qmail扩展" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:143 +msgid "Add selected" +msgstr "增加被选项" + +#: ../lib/modules/nisMailAliasUser.inc:374 +msgid "Add to existing alias" +msgstr "加入到已有别名中" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:149 +msgid "Add value" +msgstr "增加值" + +#: ../templates/3rdParty/pla/htdocs/import.php:28 +msgid "Adding" +msgstr "添加中" + +#: ../lib/modules/range.inc:136 +msgid "Adding the range failed because errors occured." +msgstr "因为发生了错误致使增加范围失败" + +#: ../templates/selfService/adminMain.php:495 ../help/help.inc:236 +msgid "Additional CSS links" +msgstr "附加的CSS连接" + +#: ../templates/config/conftypes.php:289 +#: ../templates/selfService/adminMain.php:440 ../help/help.inc:170 +#: ../help/help.inc:240 +msgid "Additional LDAP filter" +msgstr "附加的LDAP过滤表达式" + +#: ../lib/modules/zarafaDynamicGroup.inc:72 +#: ../lib/modules/zarafaDynamicGroup.inc:76 ../lib/modules/zarafaGroup.inc:74 +#: ../lib/modules/zarafaGroup.inc:78 +msgid "Additional email addresses for this entry." +msgstr "本条目的附加邮件地址" + +#: ../lib/modules/posixAccount.inc:304 ../lib/modules/posixAccount.inc:415 +#: ../lib/modules/posixAccount.inc:469 ../lib/modules/posixAccount.inc:534 +#: ../lib/modules/posixAccount.inc:1453 ../lib/modules/posixAccount.inc:1737 +#: ../lib/modules/posixAccount.inc:1853 +msgid "Additional groups" +msgstr "附加组" + +#: ../lib/modules/windowsGroup.inc:123 +msgid "Additional notes to describe this entry." +msgstr "描述这个条目的附加备注" + +#: ../templates/config/mainmanage.php:440 +msgid "Additional options" +msgstr "附加选项" + +#: ../templates/massDoUpload.php:160 +msgid "Additional tasks for module:" +msgstr "模块的附加任务:" + +#: ../lib/modules/windowsUser.inc:707 ../lib/modules/inetOrgPerson.inc:1244 +msgid "Address" +msgstr "地址" + +#: ../lib/types/zarafaAddressListType.inc:144 +#, php-format +msgid "Address list count: %s" +msgstr "地址列表总计:%s" + +#: ../lib/modules/imapAccess.inc:78 +msgid "Address of IMAP server (e.g. mail.example.org)." +msgstr "IMAP服务器地址(比如:mail.example.org)" + +#: ../help/help.inc:231 +msgid "" +"Adds a new group element to the list of self service options. Use this to " +"structure the input fields." +msgstr "为自助服务选项列表新增组元素.利用它建立输入栏目." + +#: ../lib/modules/range.inc:114 +msgid "Adds a new range pool." +msgstr "增加一个新范围的地址池." + +#: ../help/help.inc:233 +msgid "Adds a new self service option to the selected group element." +msgstr "为选定的组元素增加新的自助服务选项." + +#: ../lib/modules/range.inc:110 +msgid "Adds input fields for a new IP range." +msgstr "为新IP范围增加输入域" + +#: ../lib/modules/pykotaUser.inc:153 +msgid "Adds the amount to the user's balance. You can also specify a comment." +msgstr "增加用户账目的总和,可以输入一条备注." + +#: ../lib/modules/kolabUser.inc:171 +msgid "Adds the object class \"mailrecipient\" to all user accounts." +msgstr "为所有的用户账号增加目标类 \"mailrecipient\" " + +#: ../lib/modules/kolabGroup.inc:122 +msgid "Adds this Kolab extension." +msgstr "增加 这个 Kolab 扩展" + +#: ../lib/modules/zarafaUser.inc:108 ../lib/modules/zarafaUser.inc:282 +#: ../lib/modules/zarafaUser.inc:340 ../lib/modules/zarafaUser.inc:603 +#: ../lib/modules/zarafaUser.inc:1262 +msgid "Admin" +msgstr "管理" + +#: ../lib/modules/selfRegistration.inc:61 +#: ../lib/modules/selfRegistration.inc:199 +#: ../lib/modules/passwordSelfReset.inc:104 +#: ../lib/modules/passwordSelfReset.inc:518 +msgid "Admin DN" +msgstr "管理DN" + +#: ../lib/modules/bindDLZ.inc:231 ../lib/modules/bindDLZ.inc:351 +#: ../lib/modules/bindDLZ.inc:428 ../lib/modules/bindDLZ.inc:529 +#: ../lib/modules/bindDLZ.inc:1051 ../lib/modules/bindDLZ.inc:1553 +msgid "Admin email" +msgstr "管理员邮件" + +#: ../lib/modules/selfRegistration.inc:65 +#: ../lib/modules/selfRegistration.inc:204 ../lib/modules/imapAccess.inc:136 +#: ../lib/modules/passwordSelfReset.inc:108 +#: ../lib/modules/passwordSelfReset.inc:522 +msgid "Admin password" +msgstr "管理密码" + +#: ../lib/modules/inetOrgPerson.inc:374 ../lib/modules/inetOrgPerson.inc:496 +#: ../lib/modules/inetOrgPerson.inc:504 +msgid "Administration" +msgstr "管理者" + +#: ../lib/modules/posixGroup.inc:473 ../lib/modules/pykotaGroup.inc:168 +#: ../lib/modules/nisnetgroup.inc:122 +#: ../lib/modules/organizationalRole.inc:125 +#: ../lib/modules/groupOfNames.inc:137 +msgid "Administrators group" +msgstr "管理员组" + +#: ../templates/config/confmain.php:276 ../templates/config/conftypes.php:335 +#: ../lib/modules/posixAccount.inc:271 ../lib/modules/inetOrgPerson.inc:3686 +msgid "Advanced options" +msgstr "高级选项" + +#: ../lib/modules/eduPerson.inc:105 ../lib/modules/eduPerson.inc:109 +#: ../lib/modules/eduPerson.inc:181 ../lib/modules/eduPerson.inc:225 +#: ../lib/modules/eduPerson.inc:328 ../lib/modules/eduPerson.inc:585 +msgid "Affiliations" +msgstr "联系" + +#: ../lib/modules/sambaSamAccount.inc:556 +msgid "Alaska" +msgstr "阿拉斯加" + +#: ../lib/modules/sambaDomain.inc:218 ../lib/modules/sambaDomain.inc:219 +msgid "Algorithmic RID base is not a number!" +msgstr "RID算法的基数不是一个数字!" + +#: ../lib/modules/customFields.inc:76 ../lib/modules/customFields.inc:528 +#: ../lib/modules/customFields.inc:569 ../lib/modules/aliasEntry.inc:45 +msgid "Alias" +msgstr "别名" + +#: ../lib/types/mailAlias.inc:141 ../lib/types/alias.inc:141 +#, php-format +msgid "Alias count: %s" +msgstr "别名总计: %s" + +#: ../lib/types/alias.inc:62 +msgid "Alias entries" +msgstr "别名条目" + +#: ../lib/modules/nisMailAlias.inc:125 ../lib/modules/nisMailAlias.inc:126 +msgid "Alias is empty or invalid!" +msgstr "别名为空或错误." + +#: ../lib/types/mailAlias.inc:91 ../lib/modules/nisMailAliasUser.inc:96 +#: ../lib/modules/nisMailAliasUser.inc:364 ../lib/modules/bindDLZ.inc:135 +#: ../lib/modules/bindDLZ.inc:268 ../lib/modules/bindDLZ.inc:419 +#: ../lib/modules/bindDLZ.inc:497 ../lib/modules/bindDLZ.inc:836 +#: ../lib/modules/bindDLZ.inc:1538 ../lib/modules/nisMailAlias.inc:81 +#: ../lib/modules/nisMailAlias.inc:101 ../lib/modules/nisMailAlias.inc:115 +#: ../lib/modules/nisMailAlias.inc:163 ../lib/modules/nisMailAlias.inc:475 +msgid "Alias name" +msgstr "别名" + +#: ../lib/modules/bindDLZ.inc:834 +msgid "Alias name (\"CNAME\" record)" +msgstr "别名(\"CNAME\"条目)" + +#: ../lib/modules/nisMailAliasUser.inc:120 +msgid "Alias name already exists." +msgstr "别名已经存在!" + +#: ../lib/modules/nisMailAliasUser.inc:119 +msgid "Alias name is invalid." +msgstr "别名非法." + +#: ../lib/modules/nisMailAliasUser.inc:100 +#: ../lib/modules/nisMailAliasUser.inc:110 +#: ../lib/modules/nisMailAliasUser.inc:382 +#: ../lib/modules/nisMailAliasUser.inc:541 +msgid "Alias names" +msgstr "别名" + +#: ../lib/modules/nisMailAliasUser.inc:84 +#: ../lib/modules/nisMailAliasUser.inc:88 +msgid "Alias names with email address" +msgstr "带用户邮件地址的别名." + +#: ../lib/modules/nisMailAliasUser.inc:76 +#: ../lib/modules/nisMailAliasUser.inc:80 +msgid "Alias names with user name" +msgstr "带用户名的别名." + +#: ../lib/modules/bindDLZ.inc:420 ../lib/modules/bindDLZ.inc:1539 +msgid "Alias timeout" +msgstr "别名超时" + +#: ../lib/types/alias.inc:92 ../lib/modules/customScripts.inc:52 +#: ../lib/modules/uidObject.inc:59 ../lib/modules/aliasEntry.inc:61 +#: ../lib/modules/aliasEntry.inc:69 ../lib/modules/aliasEntry.inc:77 +#: ../lib/modules/aliasEntry.inc:98 ../lib/modules/aliasEntry.inc:107 +#: ../lib/modules/aliasEntry.inc:228 +msgid "Aliased entry" +msgstr "已有别名条目" + +#: ../templates/schema/schema.php:226 ../lib/types/alias.inc:53 +msgid "Aliases" +msgstr "别名" + +#: ../lib/modules/nisMailAliasUser.inc:169 +#: ../lib/modules/nisMailAliasUser.inc:569 +msgid "Aliases for email" +msgstr "邮件的别名" + +#: ../lib/modules/nisMailAliasUser.inc:139 +#: ../lib/modules/nisMailAliasUser.inc:567 +msgid "Aliases for user name" +msgstr "用户名的别名" + +#: ../lib/lists.inc:702 +#, php-format +msgid "All accounts (%s)" +msgstr "所有帐号 %s:" + +#: ../templates/selfService/selfServiceMain.php:368 +#: ../templates/initsuff.php:158 +msgid "All changes were successful." +msgstr "修改成功." + +#: ../lib/lists.inc:701 +#, php-format +msgid "All selected accounts (%s)" +msgstr "所有选中的帐号(%s)" + +#: ../lib/modules/dhcp_settings.inc:103 +msgid "Allow" +msgstr "允许" + +#: ../templates/config/confmain.php:362 ../help/help.inc:259 +msgid "Allow alternate address" +msgstr "允许另外的地址" + +#: ../lib/modules/sambaDomain.inc:117 ../lib/modules/sambaDomain.inc:194 +#: ../lib/modules/sambaDomain.inc:308 ../lib/modules/sambaDomain.inc:626 +msgid "Allow machine password changes" +msgstr "允许改变主机密码" + +#: ../lib/modules/customFields.inc:144 ../lib/modules/customFields.inc:148 +#: ../lib/modules/customFields.inc:3140 +msgid "Allow multiple values" +msgstr "允许多值" + +#: ../lib/types/ppolicyType.inc:90 ../lib/modules/ppolicy.inc:132 +#: ../lib/modules/ppolicy.inc:155 ../lib/modules/ppolicy.inc:294 +#: ../lib/modules/ppolicy.inc:505 +msgid "Allow password change" +msgstr "允许改变密码" + +#: ../lib/modules/sambaSamAccount.inc:230 +#: ../lib/modules/sambaSamAccount.inc:352 +#: ../lib/modules/sambaSamAccount.inc:1504 +#: ../lib/modules/sambaSamAccount.inc:1922 +msgid "Allow terminal server login" +msgstr "允许终端服务登录" + +#: ../templates/selfService/adminMain.php:557 +msgid "Allow user input for this field." +msgstr "允许用户在此域输入。" + +#: ../lib/modules/asteriskAccount.inc:203 +#: ../lib/modules/asteriskAccount.inc:289 +#: ../lib/modules/asteriskAccount.inc:479 +#: ../lib/modules/asteriskAccount.inc:713 +#: ../lib/modules/asteriskAccount.inc:1005 +#: ../lib/modules/asteriskAccount.inc:1279 +msgid "Allowed codec" +msgstr "允许的编码" + +#: ../templates/config/mainmanage.php:299 ../lib/types/user.inc:95 +#: ../help/help.inc:152 +msgid "Allowed hosts" +msgstr "允许的主机" + +#: ../templates/config/mainmanage.php:301 +msgid "Allowed hosts (self service)" +msgstr "允许主机(自助服务)" + +#: ../lib/modules/kolabGroup.inc:95 ../lib/modules/kolabGroup.inc:99 +#: ../lib/modules/kolabGroup.inc:141 ../lib/modules/kolabGroup.inc:164 +#: ../lib/modules/kolabGroup.inc:181 ../lib/modules/kolabGroup.inc:205 +#: ../lib/modules/kolabGroup.inc:424 ../lib/modules/kolabUser.inc:152 +#: ../lib/modules/kolabUser.inc:156 ../lib/modules/kolabUser.inc:217 +#: ../lib/modules/kolabUser.inc:235 ../lib/modules/kolabUser.inc:253 +#: ../lib/modules/kolabUser.inc:381 ../lib/modules/kolabUser.inc:766 +#: ../lib/modules/kolabSharedFolder.inc:120 +#: ../lib/modules/kolabSharedFolder.inc:124 +#: ../lib/modules/kolabSharedFolder.inc:208 +#: ../lib/modules/kolabSharedFolder.inc:234 +#: ../lib/modules/kolabSharedFolder.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:307 +#: ../lib/modules/kolabSharedFolder.inc:561 +msgid "Allowed recipients" +msgstr "允许的接收者" + +#: ../lib/modules/kolabGroup.inc:104 ../lib/modules/kolabGroup.inc:108 +#: ../lib/modules/kolabGroup.inc:147 ../lib/modules/kolabGroup.inc:165 +#: ../lib/modules/kolabGroup.inc:183 ../lib/modules/kolabGroup.inc:207 +#: ../lib/modules/kolabGroup.inc:425 ../lib/modules/kolabUser.inc:161 +#: ../lib/modules/kolabUser.inc:165 ../lib/modules/kolabUser.inc:223 +#: ../lib/modules/kolabUser.inc:236 ../lib/modules/kolabUser.inc:255 +#: ../lib/modules/kolabUser.inc:383 ../lib/modules/kolabUser.inc:767 +#: ../lib/modules/kolabSharedFolder.inc:129 +#: ../lib/modules/kolabSharedFolder.inc:133 +#: ../lib/modules/kolabSharedFolder.inc:214 +#: ../lib/modules/kolabSharedFolder.inc:235 +#: ../lib/modules/kolabSharedFolder.inc:252 +#: ../lib/modules/kolabSharedFolder.inc:309 +#: ../lib/modules/kolabSharedFolder.inc:562 +msgid "Allowed senders" +msgstr "允许的发送者" + +#: ../lib/modules/sambaSamAccount.inc:1342 +#: ../lib/modules/sambaSamAccount.inc:1343 +msgid "Allowed workstations" +msgstr "允许的工作站" + +#: ../lib/modules/customFields.inc:149 +msgid "Allows to enter multiple values for this attribute." +msgstr "这个属性允许输入多值." + +#: ../lib/modules/customFields.inc:145 +msgid "Allows to select multiple values from the list." +msgstr "这个列表允许多选." + +#: ../lib/modules/sambaSamAccount.inc:571 +msgid "Almaty, Dhaka, Colombo" +msgstr "阿尔迈迪,达卡,科伦坡" + +#: ../templates/lists/changePassword.php:343 +#: ../templates/lists/changePassword.php:379 ../lib/modules/qmailUser.inc:203 +#: ../lib/modules/qmailUser.inc:271 ../lib/modules/qmailUser.inc:400 +#: ../lib/modules/qmailUser.inc:450 ../lib/modules/qmailUser.inc:520 +#: ../lib/modules/qmailUser.inc:1140 ../lib/modules/qmailGroup.inc:131 +#: ../lib/modules/qmailGroup.inc:135 ../lib/modules/qmailGroup.inc:247 +#: ../lib/modules/qmailGroup.inc:370 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:484 ../lib/modules/qmailGroup.inc:1057 +msgid "Alternate address" +msgstr "变更地址" + +#: ../lib/modules.inc:1079 ../lib/modules.inc:1178 ../help/help.inc:214 +msgid "Alternate recipient" +msgstr "另外的接收者" + +#: ../lib/modules/kolabUser.inc:50 +msgid "Always accept" +msgstr "总会接受" + +#: ../lib/modules/kolabUser.inc:51 +msgid "Always reject" +msgstr "总是拒绝" + +#: ../lib/modules/pykotaUser.inc:372 ../lib/modules/pykotaUser.inc:597 +#: ../lib/modules/pykotaUser.inc:906 ../lib/modules/pykotaUser.inc:965 +msgid "Amount" +msgstr "总额" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1018 +#, php-format +msgid "An attribute (%s) was modified and is highlighted below." +msgstr "下面高亮的属性(%s)已经被修改." + +#: ../lib/modules/sudoRole.inc:268 +msgid "An sudo role with this name already exists. Please choose another name." +msgstr "这个名字的 sudo 角色已经存在, 请选择另外一个名字." + +#: ../lib/modules/passwordSelfReset.inc:84 +#: ../lib/modules/passwordSelfReset.inc:183 +#: ../lib/modules/passwordSelfReset.inc:198 +#: ../lib/modules/passwordSelfReset.inc:219 +#: ../lib/modules/passwordSelfReset.inc:265 +#: ../lib/modules/passwordSelfReset.inc:384 +#: ../lib/modules/passwordSelfReset.inc:663 +#: ../lib/modules/passwordSelfReset.inc:1046 +msgid "Answer" +msgstr "回答" + +#: ../lib/modules/kolabUser.inc:331 ../lib/modules/kolabUser.inc:756 +#: ../lib/modules/kolabUser.inc:858 ../lib/modules/kolabUser.inc:861 +msgid "Anyone" +msgstr "任何人" + +#: ../lib/modules/customFields.inc:506 +msgid "Appearance" +msgstr "外观" + +#: ../lib/modules/asteriskExtension.inc:110 +#: ../lib/modules/asteriskExtension.inc:165 +#: ../lib/modules/asteriskExtension.inc:366 +#: ../lib/modules/asteriskExtension.inc:823 +msgid "Application" +msgstr "应用" + +#: ../lib/modules/asteriskExtension.inc:94 +#: ../lib/modules/asteriskExtension.inc:172 +#: ../lib/modules/asteriskExtension.inc:374 +#: ../lib/modules/asteriskExtension.inc:824 +msgid "Application data" +msgstr "应用数据" + +#: ../templates/multiEdit.php:166 +msgid "Apply changes" +msgstr "应用更改" + +#: ../lib/modules/zarafaUser.inc:159 ../lib/modules/zarafaUser.inc:163 +#: ../lib/modules/zarafaUser.inc:315 ../lib/modules/zarafaUser.inc:379 +#: ../lib/modules/zarafaUser.inc:554 ../lib/modules/zarafaUser.inc:957 +#: ../lib/modules/zarafaUser.inc:1236 ../lib/modules/zarafaUser.inc:1317 +#: ../lib/modules/zarafaUser.inc:1803 +msgid "Archive servers" +msgstr "归档服务器" + +#: ../lib/modules/zarafaUser.inc:552 +msgid "Archiving" +msgstr "正在归档中" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:53 +msgid "Are you sure you want to permanently delete these objects?" +msgstr "确认永久删除这个对象?" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:107 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:51 +msgid "Are you sure you want to permanently delete this object?" +msgstr "确认永久删除这个对象?" + +#: ../lib/modules/imapAccess.inc:129 +msgid "Ask" +msgstr "问" + +#: ../lib/modules/eduPerson.inc:142 ../lib/modules/eduPerson.inc:146 +#: ../lib/modules/eduPerson.inc:218 ../lib/modules/eduPerson.inc:234 +#: ../lib/modules/eduPerson.inc:352 ../lib/modules/eduPerson.inc:590 +msgid "Assurance profiles" +msgstr "断言配置" + +#: ../lib/modules/eduPerson.inc:143 ../lib/modules/eduPerson.inc:147 +msgid "" +"Assurance profiles are the set of standards that are met by an identity " +"assertion." +msgstr "断言配置是一个身份断言提出的标准的集合" + +#: ../lib/modules/asteriskAccount.inc:73 +msgid "Asterisk" +msgstr "Asterisk" + +#: ../lib/modules/asteriskAccount.inc:132 +msgid "Asterisk AMA (Automated Message Accounting) flags." +msgstr "Asterisk AMA(自动消息账号)标志" + +#: ../lib/modules/asteriskExtension.inc:79 +msgid "Asterisk extension" +msgstr "Asterisk 扩展" + +#: ../lib/types/asteriskExt.inc:56 +msgid "Asterisk extensions" +msgstr "Asterisk 扩展" + +#: ../lib/types/asteriskExt.inc:65 +msgid "Asterisk extensions entries" +msgstr "Asterisk 扩展条目" + +#: ../lib/modules/asteriskAccount.inc:123 +#: ../lib/modules/asteriskAccount.inc:249 +#: ../lib/modules/asteriskAccount.inc:1233 +msgid "Asterisk realm" +msgstr "Asterisk域" + +#: ../lib/modules/asteriskVoicemail.inc:71 +msgid "Asterisk voicemail" +msgstr "Asterisk语音邮件" + +#: ../lib/modules/asteriskVoicemail.inc:120 +msgid "Asterisk voicemail context." +msgstr "Asterisk语音邮件的语境." + +#: ../lib/modules/sambaSamAccount.inc:561 +msgid "Atlantic time (Canada), Caracas" +msgstr "大西洋时间(加拿大),卡拉卡斯" + +#: ../templates/3rdParty/pla/lib/import_functions.php:455 +msgid "Attempting to delete a non existent attribute" +msgstr "试图删除一个不存在的属性" + +#: ../templates/3rdParty/pla/lib/import_functions.php:466 +msgid "Attempting to replace a non existant attribute" +msgstr "试图更换一个不存在的属性" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Attribute" +msgstr "属性" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:137 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:72 +msgid "Attribute doesn't exist" +msgstr "属性不存在" + +#: ../templates/multiEdit.php:119 ../lib/modules/customFields.inc:92 +#: ../lib/modules/customFields.inc:1060 ../lib/modules/customFields.inc:1710 +msgid "Attribute name" +msgstr "属性名" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:117 +msgid "Attribute not available" +msgstr "属性不可用" + +#: ../templates/3rdParty/pla/lib/import_functions.php:535 +msgid "Attribute not valid" +msgstr "属性不合法" + +#: ../templates/schema/schema.php:69 ../templates/schema/schema.php:70 +msgid "Attribute types" +msgstr "属性类型" + +#: ../lib/modules/selfRegistration.inc:78 +#: ../lib/modules/selfRegistration.inc:220 +msgid "Attributes" +msgstr "属性" + +#: ../lib/modules/sambaSamAccount.inc:577 +msgid "Auckland, Fiji, Kamchatka" +msgstr "奥克兰,斐济,堪察加" + +#: ../lib/modules/asteriskAccount.inc:124 +msgid "" +"Authentication realm for Asterisk server (default: asterisk). This value set " +"in sip.conf (option: \"realm\")." +msgstr "" +"Asterisk的认证域(缺少值:asterisk).这个值设置在sip.conf中(选项:\"realm\")." + +#: ../lib/modules/asteriskAccount.inc:232 +msgid "Authentication user for outbound proxies." +msgstr "边界代理的认证用户" + +#: ../lib/modules/bindDLZ.inc:1020 +msgid "Authoritative information (\"SOA\" record)" +msgstr "认证信息 (\"SOA\" 记录)" + +#: ../lib/modules/authorizedServiceObject.inc:71 +#: ../lib/modules/authorizedServiceObject.inc:81 +#: ../lib/modules/authorizedServiceObject.inc:85 +#: ../lib/modules/authorizedServiceObject.inc:105 +#: ../lib/modules/authorizedServiceObject.inc:112 +#: ../lib/modules/authorizedServiceObject.inc:116 +#: ../lib/modules/authorizedServiceObject.inc:168 +#: ../lib/modules/authorizedServiceObject.inc:243 +msgid "Authorized Services" +msgstr "授权的服务" + +#: ../lib/modules/authorizedServiceObject.inc:129 +msgid "Authorized services are invalid." +msgstr "授权服务不合法" + +#: ../lib/modules/customFields.inc:152 ../lib/modules/customFields.inc:1917 +msgid "Auto-completion" +msgstr "自动填充" + +#: ../lib/modules/bindDLZ.inc:239 ../lib/modules/bindDLZ.inc:2563 +msgid "Automatic PTR changes" +msgstr "自动 PTR 修改" + +#: ../lib/modules/customScripts.inc:167 +msgid "Automatical scripts" +msgstr "自动脚本" + +#: ../lib/modules/kolabGroup.inc:117 ../lib/modules/kolabGroup.inc:127 +#: ../lib/modules/puppetClient.inc:108 ../lib/modules/puppetClient.inc:160 +#: ../lib/modules/qmailUser.inc:131 ../lib/modules/qmailUser.inc:263 +#: ../lib/modules/zarafaContact.inc:87 ../lib/modules/zarafaContact.inc:583 +#: ../lib/modules/posixGroup.inc:396 ../lib/modules/posixGroup.inc:537 +#: ../lib/modules/eduPerson.inc:150 ../lib/modules/eduPerson.inc:155 +#: ../lib/modules/pykotaGroup.inc:129 ../lib/modules/pykotaGroup.inc:140 +#: ../lib/modules/sambaSamAccount.inc:165 +#: ../lib/modules/sambaSamAccount.inc:403 ../lib/modules/posixAccount.inc:432 +#: ../lib/modules/posixAccount.inc:1784 ../lib/modules/zarafaUser.inc:136 +#: ../lib/modules/zarafaUser.inc:1303 ../lib/modules/pykotaUser.inc:160 +#: ../lib/modules/pykotaUser.inc:173 ../lib/modules/shadowAccount.inc:106 +#: ../lib/modules/shadowAccount.inc:197 ../lib/modules/customFields.inc:856 +#: ../lib/modules/qmailGroup.inc:101 ../lib/modules/qmailGroup.inc:232 +#: ../lib/modules/authorizedServiceObject.inc:89 +#: ../lib/modules/authorizedServiceObject.inc:117 +#: ../lib/modules/passwordSelfReset.inc:152 +#: ../lib/modules/passwordSelfReset.inc:167 ../lib/modules/hostObject.inc:83 +#: ../lib/modules/hostObject.inc:101 +msgid "Automatically add this extension" +msgstr "自动增加这个扩展项" + +#: ../lib/modules/bindDLZ.inc:240 +msgid "" +"Automatically adds and removes PTR entries when A/AAAA records are created " +"or deleted." +msgstr "在 A/AAAA 记录被建立或删除的时候,自动建立或删除 PTR 记录。" + +#: ../lib/types/automountType.inc:48 ../lib/types/automountType.inc:57 +msgid "Automount entries" +msgstr "自动挂接条目" + +#: ../lib/types/automountType.inc:87 ../lib/modules/automount.inc:50 +#: ../lib/modules/automount.inc:68 ../lib/modules/automount.inc:88 +#: ../lib/modules/automount.inc:104 ../lib/modules/automount.inc:114 +#: ../lib/modules/automount.inc:131 ../lib/modules/automount.inc:182 +msgid "Automount entry" +msgstr "自动安装条目" + +#: ../lib/modules/automount.inc:114 ../lib/modules/automount.inc:115 +msgid "" +"Automount entry contains invalid characters. Only ASCII characters are " +"allowed." +msgstr "自动挂接条目包含非法字符,只能使用 ASCII 字符." + +#: ../lib/types/automountType.inc:215 +#, php-format +msgid "Automount entry count: %s" +msgstr "自动安装条目总计:%s" + +#: ../lib/modules/qmailUser.inc:51 +msgid "Autoreply" +msgstr "自动回复" + +#: ../lib/modules/qmailUser.inc:116 ../lib/modules/qmailUser.inc:239 +#: ../lib/modules/qmailUser.inc:350 ../lib/modules/qmailUser.inc:424 +#: ../lib/modules/qmailUser.inc:639 ../lib/modules/qmailUser.inc:1147 +msgid "Autoreply text" +msgstr "自动回复文本" + +#: ../templates/config/conftypes.php:215 ../lib/modules/customScripts.inc:61 +msgid "Available account types" +msgstr "有效的帐号类型" + +#: ../lib/modules/customScripts.inc:62 ../lib/modules/customScripts.inc:75 +msgid "Available actions" +msgstr "可选动作" + +#: ../lib/modules/posixAccount.inc:1569 ../lib/modules/posixAccount.inc:1602 +#: ../lib/modules/windowsUser.inc:1036 ../lib/modules/nisnetgroup.inc:386 +#: ../lib/modules/groupOfNamesUser.inc:133 +msgid "Available groups" +msgstr "可选组" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:93 +msgid "Available members" +msgstr "可用的用户" + +#: ../templates/config/confmodules.php:314 +msgid "Available modules" +msgstr "可选模块" + +#: ../lib/modules/organizationalRoleUser.inc:118 +msgid "Available roles" +msgstr "可选角色" + +#: ../lib/modules/posixGroup.inc:297 ../lib/modules/asteriskExtension.inc:463 +msgid "Available users" +msgstr "可选用户" + +#: ../lib/modules/sambaSamAccount.inc:1345 +msgid "Available workstations" +msgstr "可选工作站" + +#: ../lib/modules/sambaSamAccount.inc:564 +msgid "Azores, Cape Verde Islands" +msgstr "亚速尔,维德角岛" + +#: ../lib/modules/dhcp_settings.inc:96 +msgid "B-Node (0x01)" +msgstr "B-节点 (0x01)" + +#: ../templates/massBuildAccounts.php:276 ../lib/modules/zarafaContact.inc:436 +#: ../lib/modules/posixGroup.inc:342 ../lib/modules/zarafaGroup.inc:496 +#: ../lib/modules/device.inc:303 ../lib/modules/sambaSamAccount.inc:1362 +#: ../lib/modules/sambaSamAccount.inc:1646 +#: ../lib/modules/posixAccount.inc:1642 ../lib/modules/posixAccount.inc:1716 +#: ../lib/modules/zarafaUser.inc:920 ../lib/modules/zarafaUser.inc:969 +#: ../lib/modules/windowsUser.inc:1080 +#: ../lib/modules/sambaGroupMapping.inc:511 ../lib/modules/pykotaUser.inc:618 +#: ../lib/modules/pykotaUser.inc:675 ../lib/modules/nisnetgroup.inc:400 +#: ../lib/modules/inetOrgPerson.inc:1702 ../lib/modules/inetOrgPerson.inc:1778 +#: ../lib/modules/inetOrgPerson.inc:1868 ../lib/modules/qmailGroup.inc:865 +#: ../lib/modules/organizationalRole.inc:389 +#: ../lib/modules/windowsGroup.inc:606 ../lib/modules/groupOfNames.inc:447 +#: ../lib/modules/groupOfNames.inc:601 +msgid "Back" +msgstr "返回" + +#: ../lib/types/dhcp.inc:47 +msgid "Back to DHCP list" +msgstr "返回到DHCP列表" + +#: ../lib/types/bind.inc:30 +msgid "Back to DNS list" +msgstr "返回DNS列表" + +#: ../lib/types/nisObjectType.inc:30 +msgid "Back to NIS object list" +msgstr "返回到 NIS 对象列表" + +#: ../lib/baseType.inc:48 +msgid "Back to account list" +msgstr "返回到帐号列表" + +#: ../lib/types/zarafaAddressListType.inc:44 +msgid "Back to address list" +msgstr "返回到地址列表" + +#: ../lib/types/mailAlias.inc:44 ../lib/types/alias.inc:44 +msgid "Back to alias list" +msgstr "返回到别名列表" + +#: ../lib/types/automountType.inc:35 +msgid "Back to automount list" +msgstr "返回到自动挂接列表" + +#: ../lib/types/pykotaBillingCodeType.inc:44 +msgid "Back to billing code list" +msgstr "返回到账单列表" + +#: ../lib/types/oracleContextType.inc:30 +msgid "Back to database list" +msgstr "返回到数据库列表" + +#: ../lib/types/smbDomain.inc:44 +msgid "Back to domain list" +msgstr "返回到域列表" + +#: ../lib/types/asteriskExt.inc:47 +msgid "Back to extensions list" +msgstr "返回到扩展列表" + +#: ../templates/lists/userlink.php:63 ../lib/types/gon.inc:44 +#: ../lib/types/zarafaDynamicGroupType.inc:44 ../lib/types/group.inc:45 +#: ../lib/types/netgroup.inc:44 +msgid "Back to group list" +msgstr "返回到组列表" + +#: ../lib/types/host.inc:44 +msgid "Back to host list" +msgstr "返回到主机列表" + +#: ../templates/delete.php:289 +msgid "Back to list" +msgstr "返回列表" + +#: ../templates/config/mainmanage.php:257 ../templates/config/index.php:79 +#: ../templates/config/index.php:133 ../templates/config/conflogin.php:117 +#: ../templates/config/conflogin.php:201 ../templates/config/mainlogin.php:124 +#: ../templates/config/mainlogin.php:178 +#: ../templates/selfService/selfServiceSP.php:139 +#: ../templates/selfService/adminLogin.php:114 +#: ../templates/selfService/adminLogin.php:191 +msgid "Back to login" +msgstr "返回到登录界面" + +#: ../lib/types/ppolicyType.inc:30 +msgid "Back to policy list" +msgstr "返回到策略列表" + +#: ../lib/types/pykotaPrinterType.inc:44 +msgid "Back to printer list" +msgstr "返回到打印机列表" + +#: ../templates/config/profmanage.php:188 +#: ../templates/config/profmanage.php:326 +#: ../templates/selfService/profManage.php:144 +#: ../templates/selfService/profManage.php:262 +msgid "Back to profile login" +msgstr "返回到配置文件登录" + +#: ../lib/types/gon.inc:49 ../lib/types/group.inc:50 +msgid "Back to role list" +msgstr "返回到角色列表" + +#: ../lib/types/kolabSharedFolderType.inc:44 +msgid "Back to shared folder list" +msgstr "返回到共享文件夹列表" + +#: ../lib/types/sudo.inc:30 +msgid "Back to sudo role list" +msgstr "返回到sudo角色列表" + +#: ../lib/types/user.inc:44 +msgid "Back to user list" +msgstr "返回到用户列表" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:64 +msgid "Back up" +msgstr "备份" + +#: ../templates/serverInfo.php:163 +msgid "Backends" +msgstr "后端" + +#: ../templates/lists/changePassword.php:291 +#: ../lib/modules/passwordSelfReset.inc:88 +#: ../lib/modules/passwordSelfReset.inc:191 +#: ../lib/modules/passwordSelfReset.inc:201 +#: ../lib/modules/passwordSelfReset.inc:213 +#: ../lib/modules/passwordSelfReset.inc:220 +#: ../lib/modules/passwordSelfReset.inc:276 +#: ../lib/modules/passwordSelfReset.inc:387 +#: ../lib/modules/passwordSelfReset.inc:675 +msgid "Backup email" +msgstr "备份邮件" + +#: ../lib/modules/passwordSelfReset.inc:89 +msgid "" +"Backup email address for password reset mails. Useful if user password " +"grants access to standard mailbox." +msgstr "用于密码恢复的备份邮件地址.在用户密码授权访问标准邮箱时使用." + +#: ../lib/modules/sudoRole.inc:155 +msgid "Backup script" +msgstr "备份脚本" + +#: ../lib/modules/sambaSamAccount.inc:568 +msgid "Baghdad, Riyadh, Moscow" +msgstr "巴格达,利雅得,莫斯科" + +#: ../lib/types/pykotaBillingCodeType.inc:93 ../lib/modules/pykotaGroup.inc:62 +#: ../lib/modules/pykotaUser.inc:62 ../lib/modules/pykotaUser.inc:132 +#: ../lib/modules/pykotaUser.inc:170 ../lib/modules/pykotaUser.inc:241 +#: ../lib/modules/pykotaUser.inc:262 ../lib/modules/pykotaUser.inc:322 +#: ../lib/modules/pykotaUser.inc:365 ../lib/modules/pykotaUser.inc:900 +#: ../lib/modules/pykotaUser.inc:947 ../lib/modules/pykotaBillingCode.inc:85 +#: ../lib/modules/pykotaBillingCode.inc:117 +#: ../lib/modules/pykotaBillingCode.inc:143 +#: ../lib/modules/pykotaBillingCode.inc:263 +msgid "Balance" +msgstr "账目" + +#: ../lib/modules/pykotaUser.inc:281 +msgid "Balance (read-only)" +msgstr "账目(只读)" + +#: ../lib/modules/pykotaUser.inc:136 ../lib/modules/pykotaUser.inc:247 +msgid "Balance comment" +msgstr "账目备注" + +#: ../lib/modules/sambaSamAccount.inc:572 +msgid "Bangkok, Hanoi, Jakarta" +msgstr "曼谷,河内,安卡拉" + +#: ../lib/types/zarafaAddressListType.inc:93 +#: ../lib/types/zarafaDynamicGroupType.inc:94 +#: ../lib/modules/zarafaDynamicGroup.inc:87 +#: ../lib/modules/zarafaDynamicGroup.inc:101 +#: ../lib/modules/zarafaDynamicGroup.inc:152 +#: ../lib/modules/zarafaDynamicGroup.inc:170 +#: ../lib/modules/zarafaDynamicGroup.inc:198 +#: ../lib/modules/zarafaDynamicGroup.inc:231 +#: ../lib/modules/zarafaDynamicGroup.inc:449 +#: ../lib/modules/zarafaAddressList.inc:75 +#: ../lib/modules/zarafaAddressList.inc:89 +#: ../lib/modules/zarafaAddressList.inc:128 +#: ../lib/modules/zarafaAddressList.inc:144 +#: ../lib/modules/zarafaAddressList.inc:169 +#: ../lib/modules/zarafaAddressList.inc:198 +#: ../lib/modules/zarafaAddressList.inc:332 +msgid "Base" +msgstr "基本DN" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:142 +#: ../templates/3rdParty/pla/htdocs/export_form.php:31 +msgid "Base (base dn only)" +msgstr "Base (只有基本DN)" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:121 +#: ../templates/3rdParty/pla/lib/QueryRender.php:506 +#: ../templates/3rdParty/pla/htdocs/export_form.php:59 +msgid "Base DN" +msgstr "基本DN" + +#: ../templates/config/confmodules.php:212 ../help/help.inc:144 +msgid "Base module" +msgstr "基本模块" + +#: ../templates/pdfedit/pdfpage.php:441 +msgid "Beginning" +msgstr "开始" + +#: ../lib/modules/sambaSamAccount.inc:573 +msgid "Beijing, Perth, Singapore" +msgstr "北京,佩斯,新加坡" + +#: ../lib/types/pykotaBillingCodeType.inc:91 +#: ../lib/modules/pykotaBillingCode.inc:77 +#: ../lib/modules/pykotaBillingCode.inc:115 +#: ../lib/modules/pykotaBillingCode.inc:127 +#: ../lib/modules/pykotaBillingCode.inc:129 +#: ../lib/modules/pykotaBillingCode.inc:141 +#: ../lib/modules/pykotaBillingCode.inc:261 +msgid "Billing code" +msgstr "账单号" + +#: ../lib/modules/pykotaBillingCode.inc:129 +#: ../lib/modules/pykotaBillingCode.inc:130 +msgid "Billing code already exists!" +msgstr "账单已经存在. " + +#: ../lib/modules/pykotaBillingCode.inc:127 +#: ../lib/modules/pykotaBillingCode.inc:128 +msgid "" +"Billing code contains invalid characters. Valid characters are: a-z, A-Z, " +"0-9 and .-_ !" +msgstr "账单号包含非法字符,合法字符包括 a-z, A-Z, 0-9 和 .-_!" + +#: ../lib/types/pykotaBillingCodeType.inc:163 +#, php-format +msgid "Billing code count: %s" +msgstr "账单总和: %s" + +#: ../lib/modules/pykotaBillingCode.inc:82 +msgid "Billing code description." +msgstr "账单号描述" + +#: ../lib/modules/pykotaBillingCode.inc:78 +msgid "" +"Billing code name which should be created. Valid characters are: a-z, A-Z, " +"0-9 and .-_ ." +msgstr "将要建立的账单号名字,可用字符为: a-z, A-Z, 0-9,及 -或_ " + +#: ../lib/types/pykotaBillingCodeType.inc:53 +msgid "Billing codes" +msgstr "账单号" + +#: ../templates/3rdParty/pla/lib/PageRender.php:644 +#: ../templates/3rdParty/pla/lib/PageRender.php:648 +msgid "Binary value" +msgstr "二进制值" + +#: ../templates/serverInfo.php:286 ../templates/serverInfo.php:375 +msgid "Bind" +msgstr "绑定" + +#: ../lib/types/bind.inc:39 +msgid "Bind DNS" +msgstr "绑定 DNS" + +#: ../lib/types/bind.inc:48 +msgid "Bind DNS entries" +msgstr "绑定DNS条目" + +#: ../templates/config/confmain.php:444 +msgid "Bind password" +msgstr "绑定密码" + +#: ../templates/config/confmain.php:442 +msgid "Bind user" +msgstr "绑定用户" + +#: ../help/help.inc:128 +msgid "Bind user and password" +msgstr "绑定用户名和密码" + +#: ../lib/modules/quota.inc:53 ../lib/modules/systemQuotas.inc:101 +msgid "Block hard quota" +msgstr "块数硬性限额" + +#: ../lib/modules/quota.inc:53 ../lib/modules/quota.inc:54 +#: ../lib/modules/systemQuotas.inc:101 ../lib/modules/systemQuotas.inc:102 +msgid "" +"Block hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "块数硬性限额包含非法字符,只能使用自然数." + +#: ../lib/modules/quota.inc:59 ../lib/modules/systemQuotas.inc:107 +msgid "Block quota" +msgstr "块数限额" + +#: ../lib/modules/quota.inc:51 ../lib/modules/systemQuotas.inc:99 +msgid "Block soft quota" +msgstr "块数软性限额" + +#: ../lib/modules/quota.inc:51 ../lib/modules/quota.inc:52 +#: ../lib/modules/systemQuotas.inc:99 ../lib/modules/systemQuotas.inc:100 +msgid "" +"Block soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "块数软性限额包含非法字符,只能使用自然数." + +#: ../lib/modules/quota.inc:59 ../lib/modules/quota.inc:60 +#: ../lib/modules/systemQuotas.inc:107 ../lib/modules/systemQuotas.inc:108 +msgid "Block soft quota must be smaller than block hard quota." +msgstr "块数软性限额必须小于硬性限额." + +#: ../lib/modules/qmailGroup.inc:72 ../lib/modules/qmailGroup.inc:143 +#: ../lib/modules/qmailGroup.inc:147 ../lib/modules/qmailGroup.inc:263 +#: ../lib/modules/qmailGroup.inc:375 ../lib/modules/qmailGroup.inc:431 +#: ../lib/modules/qmailGroup.inc:522 ../lib/modules/qmailGroup.inc:1059 +msgid "Bounce admin email" +msgstr "反弹管理邮件" + +#: ../lib/modules/sambaSamAccount.inc:562 +msgid "Brazil, Buenos Aires" +msgstr "巴西,布宜诺斯艾利斯" + +#: ../templates/3rdParty/pla/htdocs/copy.php:53 +msgid "Building snapshot of tree to copy" +msgstr "建立树的快照用来拷贝" + +#: ../lib/modules/sambaGroupMapping.inc:73 +msgid "Builtin group" +msgstr "内置组" + +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:63 +msgid "Bulk edit the following DNs" +msgstr "块编辑以下DN" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:48 +msgid "Bulk update the following DNs" +msgstr "块更新以下DN" + +#: ../lib/modules/inetOrgPerson.inc:105 ../lib/modules/inetOrgPerson.inc:164 +#: ../lib/modules/inetOrgPerson.inc:235 ../lib/modules/inetOrgPerson.inc:372 +#: ../lib/modules/inetOrgPerson.inc:613 ../lib/modules/inetOrgPerson.inc:786 +#: ../lib/modules/inetOrgPerson.inc:790 ../lib/modules/inetOrgPerson.inc:1506 +#: ../lib/modules/inetOrgPerson.inc:1509 ../lib/modules/inetOrgPerson.inc:1941 +#: ../lib/modules/inetOrgPerson.inc:2690 ../lib/modules/inetOrgPerson.inc:3614 +#: ../lib/modules/inetOrgPerson.inc:3656 +msgid "Business category" +msgstr "商业种类" + +#: ../lib/modules/inetOrgPerson.inc:787 ../lib/modules/inetOrgPerson.inc:791 +msgid "Business category (e.g. Administration, IT-Services, Manangement, ...)" +msgstr "商业种类(比如:行政部门,IT服务部门,管理部门,...)" + +#: ../help/help.inc:173 +msgid "" +"By default LAM will show all accounts that match the selected account " +"modules." +msgstr "缺省地,LAM将显示与所选帐号模块匹配的所有账号." + +#: ../help/help.inc:243 +msgid "" +"By default all modifications are done as the user that authenticated in self " +"service. If active then LAM will use the connection user for all LDAP " +"modifications and searches." +msgstr "" +"默认情况下,以在自助服务中认证用户身份完成所有修改. 如果激活此项,LAM将使用连接" +"用户(connection user)来做LDAP修改和搜索." + +#: ../lib/modules/selfRegistration.inc:103 +msgid "" +"By default all users are created in the self service LDAP suffix. You can " +"enter an alternative suffix here." +msgstr "" +"缺省情况下,在自助服务的LDAP后缀中建立用户. 可以在这里输入一个其他的后缀名." + +#: ../lib/modules/customScripts.inc:89 +msgid "" +"By default, LAM will show the executed command along with any output of it. " +"If you want to hide the command and only show the output then activate this " +"option." +msgstr "" +"缺省情况下,LAM显示运行命令及其输出.如果您想隐藏命令而仅显示输出,请激活这个选" +"项." + +#: ../templates/serverInfo.php:253 ../templates/serverInfo.php:259 +msgid "Bytes sent" +msgstr "字节已发送" + +#: ../lib/modules/bindDLZ.inc:268 ../lib/modules/bindDLZ.inc:274 +#: ../lib/modules/bindDLZ.inc:481 ../lib/modules/bindDLZ.inc:497 +msgid "CNAME record" +msgstr "CNAME条目" + +#: ../lib/modules/bindDLZ.inc:439 +msgid "CNAME records" +msgstr "CNAME条目" + +#: ../templates/masscreate.php:253 +msgid "CSV file" +msgstr "CSV 文件" + +#: ../help/help.inc:107 +msgid "Cache timeout" +msgstr "缓存超时" + +#: ../lib/modules/asteriskAccount.inc:135 +#: ../lib/modules/asteriskAccount.inc:272 +#: ../lib/modules/asteriskAccount.inc:355 +#: ../lib/modules/asteriskAccount.inc:615 +#: ../lib/modules/asteriskAccount.inc:988 +#: ../lib/modules/asteriskAccount.inc:1245 +msgid "Call groups" +msgstr "呼叫组" + +#: ../lib/modules/asteriskAccount.inc:103 +#: ../lib/modules/asteriskAccount.inc:266 +#: ../lib/modules/asteriskAccount.inc:304 +#: ../lib/modules/asteriskAccount.inc:589 +#: ../lib/modules/asteriskAccount.inc:982 +msgid "Caller ID" +msgstr "拨号 ID号" + +#: ../lib/modules/sambaSamAccount.inc:307 +#: ../lib/modules/sambaSamAccount.inc:310 +#: ../lib/modules/sambaSamAccount.inc:313 +#: ../lib/modules/sambaSamAccount.inc:319 ../lib/modules/posixAccount.inc:535 +#: ../lib/modules/organizationalRoleUser.inc:61 +#: ../lib/modules/windowsUser.inc:205 ../lib/modules/windowsUser.inc:210 +#: ../lib/modules/sambaGroupMapping.inc:159 +#: ../lib/modules/shadowAccount.inc:178 ../lib/modules/shadowAccount.inc:182 +#: ../lib/modules/shadowAccount.inc:186 ../lib/modules/shadowAccount.inc:190 +#: ../lib/modules/groupOfNamesUser.inc:61 +msgid "Can be left empty." +msgstr "可以置空" + +#: ../lib/modules/asteriskAccount.inc:223 +#: ../lib/modules/asteriskAccount.inc:294 +#: ../lib/modules/asteriskAccount.inc:515 +#: ../lib/modules/asteriskAccount.inc:741 +#: ../lib/modules/asteriskAccount.inc:1010 +#: ../lib/modules/asteriskAccount.inc:1289 +msgid "Can call forward" +msgstr "可能呼叫转移" + +#: ../templates/lists/changePassword.php:349 +#: ../templates/lists/changePassword.php:386 +#: ../templates/lists/changePassword.php:427 +#: ../templates/lists/changePassword.php:458 ../templates/ou_edit.php:121 +#: ../templates/config/profmanage.php:254 +#: ../templates/config/profmanage.php:266 +#: ../templates/config/profmanage.php:275 +#: ../templates/config/profmanage.php:293 +#: ../templates/config/profmanage.php:304 +#: ../templates/config/mainmanage.php:470 +#: ../templates/config/confmodules.php:227 +#: ../templates/config/confmain.php:471 +#: ../templates/config/moduleSettings.php:241 +#: ../templates/config/conftypes.php:362 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminMain.php:716 +#: ../templates/pdfedit/pdfpage.php:638 ../templates/pdfedit/pdfmain.php:210 +#: ../templates/pdfedit/pdfmain.php:217 ../templates/pdfedit/pdfmain.php:223 +#: ../templates/delete.php:121 ../templates/profedit/profilepage.php:241 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/profedit/profilemain.php:205 +#: ../templates/profedit/profilemain.php:211 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:197 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:83 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:136 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:121 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:119 +#: ../templates/initsuff.php:191 ../lib/types/automountType.inc:234 +#: ../lib/types/user.inc:303 ../lib/types/bind.inc:175 +#: ../lib/modules/kolabGroup.inc:294 ../lib/modules/pykotaPrinter.inc:431 +#: ../lib/modules/mitKerberos.inc:690 ../lib/modules/qmailUser.inc:921 +#: ../lib/modules/zarafaContact.inc:391 ../lib/modules/windowsHost.inc:226 +#: ../lib/modules/zarafaGroup.inc:451 ../lib/modules/device.inc:254 +#: ../lib/modules/sambaSamAccount.inc:1437 +#: ../lib/modules/sambaSamAccount.inc:1486 +#: ../lib/modules/sambaSamAccount.inc:1572 ../lib/modules/zarafaUser.inc:875 +#: ../lib/modules/kolabUser.inc:520 ../lib/modules/sambaGroupMapping.inc:490 +#: ../lib/modules/shadowAccount.inc:478 ../lib/modules/nisnetgroup.inc:490 +#: ../lib/modules/inetOrgPerson.inc:1743 ../lib/modules/freeRadius.inc:431 +#: ../lib/modules/kolabSharedFolder.inc:434 +#: ../lib/modules/customFields.inc:1084 ../lib/modules/aliasEntry.inc:147 +#: ../lib/modules/aliasEntry.inc:167 ../lib/modules/qmailGroup.inc:823 +#: ../lib/modules/organizationalRole.inc:318 ../lib/modules/fixed_ip.inc:587 +#: ../lib/modules/heimdalKerberos.inc:600 ../lib/modules/windowsGroup.inc:505 +#: ../lib/modules/windowsGroup.inc:557 ../lib/modules/groupOfNames.inc:375 +#: ../lib/modules/groupOfNames.inc:530 ../lib/modules/nisMailAlias.inc:385 +#: ../lib/lists.inc:711 ../lib/lists.inc:792 ../lib/modules.inc:1230 +msgid "Cancel" +msgstr "取消" + +#: ../templates/login.php:569 ../templates/login.php:627 +#: ../templates/login.php:632 +#: ../templates/selfService/selfServiceLogin.php:141 +#: ../templates/selfService/selfServiceLogin.php:190 +#: ../templates/selfService/selfServiceLogin.php:195 +#: ../templates/selfService/selfServiceMain.php:168 +#: ../templates/selfService/selfServiceMain.php:189 +#: ../lib/modules/selfRegistration.inc:699 +msgid "Cannot connect to specified LDAP server. Please try again." +msgstr "无法连接指定的LDAP服务器,请再试一次." + +#: ../templates/login.php:310 ../lib/config.inc:1683 +msgid "Cannot open config file!" +msgstr "无法打开配置文件!" + +#: ../lib/modules/imapAccess.inc:187 +msgid "Cannot update quota." +msgstr "不能修改配额" + +#: ../lib/config.inc:1695 ../lib/config.inc:1703 +msgid "" +"Cannot write certificate file. Please check the permissions of config/" +"serverCerts.pem." +msgstr "不能写入证书文件. 请检查config/serverCerts.pem的权限." + +#: ../lib/modules/zarafaUser.inc:120 ../lib/modules/zarafaUser.inc:247 +#: ../lib/modules/zarafaUser.inc:364 ../lib/modules/zarafaUser.inc:415 +#: ../lib/modules/zarafaUser.inc:545 ../lib/modules/zarafaUser.inc:1232 +#: ../lib/modules/zarafaUser.inc:1799 +msgid "Capacity" +msgstr "容量" + +#: ../templates/selfService/adminMain.php:496 +msgid "Captions and labels" +msgstr "标题和标签" + +#: ../lib/modules/inetOrgPerson.inc:163 ../lib/modules/inetOrgPerson.inc:534 +#: ../lib/modules/inetOrgPerson.inc:607 ../lib/modules/inetOrgPerson.inc:810 +#: ../lib/modules/inetOrgPerson.inc:1479 ../lib/modules/inetOrgPerson.inc:1482 +#: ../lib/modules/inetOrgPerson.inc:1943 ../lib/modules/inetOrgPerson.inc:2668 +#: ../lib/modules/inetOrgPerson.inc:3610 ../lib/modules/inetOrgPerson.inc:3655 +msgid "Car license" +msgstr "汽车执照" + +#: ../lib/modules/sambaSamAccount.inc:566 +msgid "Central Europe Time, Paris, Berlin" +msgstr "欧洲中央时间,巴黎,柏林" + +#: ../lib/modules/sambaSamAccount.inc:559 +msgid "Central Time (US & Canada), Mexico City" +msgstr "中央时间(美国和加拿大),墨西哥市 " + +#: ../templates/selfService/adminMain.php:514 +#: ../lib/modules/mitKerberos.inc:377 ../lib/modules/mitKerberos.inc:388 +#: ../lib/modules/mitKerberos.inc:686 ../lib/modules/qmailUser.inc:661 +#: ../lib/modules/qmailUser.inc:917 ../lib/modules/zarafaContact.inc:229 +#: ../lib/modules/windowsHost.inc:155 ../lib/modules/windowsHost.inc:225 +#: ../lib/modules/zarafaGroup.inc:266 ../lib/modules/device.inc:181 +#: ../lib/modules/sambaSamAccount.inc:1197 +#: ../lib/modules/sambaSamAccount.inc:1482 ../lib/modules/zarafaUser.inc:466 +#: ../lib/modules/zarafaUser.inc:557 ../lib/modules/shadowAccount.inc:355 +#: ../lib/modules/shadowAccount.inc:474 ../lib/modules/inetOrgPerson.inc:1566 +#: ../lib/modules/freeRadius.inc:301 ../lib/modules/freeRadius.inc:427 +#: ../lib/modules/asteriskExtension.inc:236 ../lib/modules/aliasEntry.inc:100 +#: ../lib/modules/qmailGroup.inc:572 ../lib/modules/organizationalRole.inc:194 +#: ../lib/modules/passwordSelfReset.inc:271 +#: ../lib/modules/heimdalKerberos.inc:324 +#: ../lib/modules/heimdalKerberos.inc:335 +#: ../lib/modules/heimdalKerberos.inc:596 ../lib/modules/windowsGroup.inc:361 +#: ../lib/modules/windowsGroup.inc:504 ../lib/modules/groupOfNames.inc:241 +#: ../lib/modules/groupOfNames.inc:248 +msgid "Change" +msgstr "更改" + +#: ../templates/lists/changePassword.php:228 +msgid "Change Asterisk password" +msgstr "更改 Asterisk 密码" + +#: ../templates/lists/changePassword.php:231 +msgid "Change Asterisk voicemail password" +msgstr "更改 Asterisk 语音邮件密码" + +#: ../lib/modules/posixGroup.inc:218 ../lib/modules/posixGroup.inc:512 +msgid "Change GID number of users and hosts" +msgstr "更改用户和主机的GID号" + +#: ../templates/lists/changePassword.php:234 +#: ../templates/lists/changePassword.php:237 +msgid "Change Kerberos password" +msgstr "更改 Kerberos 密码" + +#: ../templates/lists/changePassword.php:221 +msgid "Change Samba LM password" +msgstr "更改 Samba LM 密码" + +#: ../templates/lists/changePassword.php:219 +msgid "Change Samba NT password" +msgstr "更改 Samba NT 密码" + +#: ../templates/lists/changePassword.php:213 +msgid "Change Unix password" +msgstr "更改 Unix 密码" + +#: ../templates/lists/changePassword.php:240 +msgid "Change Windows password" +msgstr "更改Windows 密码" + +#: ../lib/types/user.inc:303 +msgid "Change account status" +msgstr "改变帐号状态" + +#: ../templates/config/profmanage.php:300 +#: ../templates/config/profmanage.php:303 ../help/help.inc:138 +msgid "Change default profile" +msgstr "更改缺省的配置文件" + +#: ../templates/selfService/adminMain.php:575 +msgid "Change field label." +msgstr "修改域标识" + +#: ../lib/lists.inc:792 +msgid "Change list settings" +msgstr "改变列表设置" + +#: ../templates/config/mainmanage.php:454 ../help/help.inc:140 +msgid "Change master password" +msgstr "更改管理员密码" + +#: ../templates/lists/changePassword.php:216 +#: ../templates/lists/changePassword.php:261 +#: ../templates/lists/changePassword.php:346 +#: ../templates/lists/changePassword.php:348 +#: ../templates/lists/changePassword.php:383 +#: ../templates/lists/changePassword.php:385 ../lib/types/user.inc:669 +#: ../help/help.inc:105 +msgid "Change password" +msgstr "更改密码" + +#: ../templates/lists/changePassword.php:268 +#: ../templates/lists/changePassword.php:269 +msgid "Change password now?" +msgstr "现在更改密码?" + +#: ../templates/config/confmain.php:261 +msgid "Change passwords" +msgstr "更改密码 " + +#: ../lib/lists.inc:793 +msgid "Change settings" +msgstr "修改设置" + +#: ../lib/modules/posixAccount.inc:1225 +msgid "Changed value because only ASCII characters are allowed." +msgstr "值已改变,因为只能使用ASCII字符." + +#: ../lib/modules/passwordSelfReset.inc:185 +msgid "Charlie" +msgstr "Charlie" + +#: ../lib/modules/posixAccount.inc:1485 +msgid "Check home directories" +msgstr "检查主目录" + +#: ../templates/tests/index.php:54 ../lib/tools/tests.inc:112 +msgid "Check if quotas and homedirectories can be managed." +msgstr "请检查是否可能管理限额和主目录" + +#: ../templates/tests/index.php:60 ../lib/tools/tests.inc:118 +msgid "" +"Check if the LDAP schema fits the requirements of the selected account " +"modules." +msgstr "检查LDAP的架构是否符合选中的帐号模块需求" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2401 +msgid "Check password" +msgstr "检查密码" + +#: ../templates/tests/lamdaemonTest.php:87 +msgid "Check quotas" +msgstr "检查限额" + +#: ../templates/masscreate.php:247 +msgid "" +"Check your input carefully. LAM will only do some basic checks on the upload " +"data." +msgstr "请仔细检查输入,上传前程序仅做基本检查." + +#: ../lib/modules/customFields.inc:2735 +msgid "Checkbox" +msgstr "复选框" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1224 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1229 +msgid "Children" +msgstr "儿童" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:23 +msgid "Choose entry" +msgstr "选择的条目" + +#: ../lib/modules/imapAccess.inc:90 +msgid "" +"Choose the way how to provide the IMAP admin password. You can use the same " +"password as for the LAM login or LAM will ask you for a password when it is " +"required." +msgstr "" +"选择IMAP管理密码的输入方法。可以使用与LAM登录相同的密码,也可以在需要时再输" +"入。" + +#: ../lib/modules/puppetClient.inc:92 ../lib/modules/puppetClient.inc:96 +#: ../lib/modules/puppetClient.inc:140 ../lib/modules/puppetClient.inc:155 +#: ../lib/modules/puppetClient.inc:168 ../lib/modules/puppetClient.inc:271 +#: ../lib/modules/puppetClient.inc:433 +msgid "Classes" +msgstr "类" + +#: ../lib/lists.inc:384 +msgid "Clear filter" +msgstr "清除过滤表达式" + +#: ../lib/config.inc:266 +msgid "Click here if you are not directed to the next page." +msgstr "如果没有自动跳转到下一页请点此处." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2349 +msgid "Click to popup a dialog to select a date graphically" +msgstr "点击弹出的对话框来选择一个图形化的日期" + +#: ../templates/3rdParty/pla/lib/functions.php:2293 +msgid "Click to popup a dialog to select an entry (DN) graphically" +msgstr "点击弹出的对话框来选择一个图形化的DN条目" + +#: ../lib/types/user.inc:619 +msgid "Click to switch between thumbnail and original size." +msgstr "点击在缩略图与原来的大小间切换" + +#: ../lib/modules/sambaSamAccount.inc:242 +#: ../lib/modules/sambaSamAccount.inc:379 +#: ../lib/modules/sambaSamAccount.inc:1540 +#: ../lib/modules/sambaSamAccount.inc:1950 +msgid "Client printer is default" +msgstr "缺省为客户打印机" + +#: ../templates/schema/schema.php:199 +msgid "Collective" +msgstr "集合(Collective)" + +#: ../lib/modules/pykotaPrinter.inc:155 +msgid "Color laser printer" +msgstr "彩色打印机" + +#: ../templates/masscreate.php:284 ../lib/modules/customFields.inc:128 +#: ../lib/modules/customFields.inc:2601 +msgid "Columns" +msgstr "列" + +#: ../lib/modules/sambaSamAccount.inc:319 +msgid "" +"Comma separated list of Samba workstations the user is allowed to login. " +"Empty means every workstation." +msgstr "用户可以登录的Samba工作站,用逗号分隔,空值表示所有工作站." + +#: ../lib/modules/authorizedServiceObject.inc:86 +msgid "Comma separated list of services (e.g. sshd, imap, ftp)." +msgstr "以逗号间隔的服务列表(比如:sshd,imap,ftp)." + +#: ../lib/types/sudo.inc:80 ../lib/modules/customScripts.inc:169 +msgid "Command" +msgstr "命令" + +#: ../lib/modules/sudoRole.inc:82 ../lib/modules/sudoRole.inc:108 +#: ../lib/modules/sudoRole.inc:171 ../lib/modules/sudoRole.inc:218 +#: ../lib/modules/sudoRole.inc:230 ../lib/modules/sudoRole.inc:370 +#: ../lib/modules/sudoRole.inc:808 +msgid "Commands" +msgstr "命令" + +#: ../lib/modules/pykotaUser.inc:375 ../lib/modules/pykotaUser.inc:599 +#: ../lib/modules/pykotaUser.inc:907 ../lib/modules/pykotaUser.inc:967 +msgid "Comment" +msgstr "备注" + +#: ../lib/modules/pykotaUser.inc:137 +msgid "Comment for initial balance." +msgstr "初使化账目的备注" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:117 +msgid "Commit" +msgstr "提交" + +#: ../lib/modules/posixAccount.inc:438 +msgid "Common examples are \"@givenname@%sn%\" or \"%givenname%.%sn%\"." +msgstr "普通的例子是 \"@givenname@%sn%\" 或 \"%givenname%.%sn%\"." + +#: ../templates/config/mainmanage.php:362 ../lib/types/user.inc:94 +#: ../lib/modules/pykotaGroup.inc:113 ../lib/modules/pykotaGroup.inc:157 +#: ../lib/modules/pykotaGroup.inc:185 ../lib/modules/pykotaGroup.inc:466 +#: ../lib/modules/posixAccount.inc:129 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:348 ../lib/modules/posixAccount.inc:421 +#: ../lib/modules/posixAccount.inc:538 ../lib/modules/posixAccount.inc:560 +#: ../lib/modules/posixAccount.inc:1429 ../lib/modules/posixAccount.inc:1856 +#: ../lib/modules/posixAccount.inc:2558 ../lib/modules/windowsUser.inc:102 +#: ../lib/modules/windowsUser.inc:290 ../lib/modules/windowsUser.inc:473 +#: ../lib/modules/windowsUser.inc:499 ../lib/modules/windowsUser.inc:591 +#: ../lib/modules/windowsUser.inc:702 ../lib/modules/windowsUser.inc:1594 +#: ../lib/modules/pykotaUser.inc:108 ../lib/modules/pykotaUser.inc:199 +#: ../lib/modules/pykotaUser.inc:271 ../lib/modules/pykotaUser.inc:405 +#: ../lib/modules/pykotaUser.inc:888 ../lib/modules/inetOrgPerson.inc:95 +#: ../lib/modules/inetOrgPerson.inc:640 ../lib/modules/inetOrgPerson.inc:762 +#: ../lib/modules/inetOrgPerson.inc:1222 ../lib/modules/inetOrgPerson.inc:1225 +#: ../lib/modules/inetOrgPerson.inc:1938 ../lib/modules/inetOrgPerson.inc:2069 +#: ../lib/modules/inetOrgPerson.inc:3665 +#: ../lib/modules/asteriskExtension.inc:118 +msgid "Common name" +msgstr "全名" + +#: ../lib/modules/asteriskExtension.inc:119 +msgid "Common name of the Asterisk extension." +msgstr "Asterisk 扩展的一般命名" + +#: ../templates/serverInfo.php:335 ../templates/serverInfo.php:396 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1172 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:60 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:39 +msgid "Compare" +msgstr "比较" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:28 +#, php-format +msgid "Compare another DN with %s" +msgstr "与%s比较DN" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1169 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +msgid "Compare this DN with another" +msgstr "与另外一个DN条目进行比较" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1173 +msgid "Compare with another entry" +msgstr "与另外一个条目进行比较" + +#: ../templates/3rdParty/pla/htdocs/compare.php:42 +msgid "Comparing the following DNs" +msgstr "比较如下DN条目" + +#: ../templates/serverInfo.php:284 ../templates/serverInfo.php:371 +msgid "Completed" +msgstr "完成" + +#: ../templates/serverInfo.php:114 +msgid "Config suffix" +msgstr "配置后缀" + +#: ../templates/config/index.php:50 +msgid "Configuration overview" +msgstr "配置总览" + +#: ../lib/modules/qmailUser.inc:126 ../lib/modules/qmailUser.inc:179 +#: ../lib/modules/qmailUser.inc:259 ../lib/modules/qmailUser.inc:392 +#: ../lib/modules/qmailUser.inc:439 ../lib/modules/qmailUser.inc:619 +#: ../lib/modules/qmailUser.inc:1178 +msgid "Configuration type" +msgstr "配置类型" + +#: ../lib/modules/qmailGroup.inc:96 ../lib/modules/qmailGroup.inc:228 +#: ../lib/modules/qmailGroup.inc:361 ../lib/modules/qmailGroup.inc:411 +#: ../lib/modules/qmailGroup.inc:623 ../lib/modules/qmailGroup.inc:1081 +msgid "Confirm sender" +msgstr "确认发送者" + +#: ../lib/modules/selfRegistration.inc:228 +msgid "Confirmation mail settings" +msgstr "确认邮件的设置" + +#: ../lib/modules/qmailGroup.inc:74 ../lib/modules/qmailGroup.inc:103 +#: ../lib/modules/qmailGroup.inc:152 ../lib/modules/qmailGroup.inc:271 +#: ../lib/modules/qmailGroup.inc:378 ../lib/modules/qmailGroup.inc:591 +#: ../lib/modules/qmailGroup.inc:1060 +msgid "Confirmation text" +msgstr "确认文本" + +#: ../lib/modules/qmailGroup.inc:153 +msgid "" +"Confirmation text that is used if sender-confirmation is used. The usual " +"%HEADER% magic of qmail-reply etc. can be used here." +msgstr "" +"在确认发送者时使用的确认文本。可以使用 qmail 回复中的通常的%HEADER%等标签" + +#: ../templates/config/confmodules.php:394 +msgid "Conflicting module:" +msgstr "冲突的模块:" + +#: ../lib/modules/sambaSamAccount.inc:240 +#: ../lib/modules/sambaSamAccount.inc:373 +#: ../lib/modules/sambaSamAccount.inc:1536 +#: ../lib/modules/sambaSamAccount.inc:1940 +msgid "Connect client drives" +msgstr "连接客户驱动器" + +#: ../lib/modules/sambaSamAccount.inc:241 +#: ../lib/modules/sambaSamAccount.inc:376 +#: ../lib/modules/sambaSamAccount.inc:1538 +#: ../lib/modules/sambaSamAccount.inc:1945 +msgid "Connect client printers" +msgstr "连接客户打印机" + +#: ../templates/serverInfo.php:230 +msgid "Connection statistics" +msgstr "连接统计" + +#: ../lib/types/oracleContextType.inc:78 ../lib/modules/oracleService.inc:65 +#: ../lib/modules/oracleService.inc:85 ../lib/modules/oracleService.inc:99 +#: ../lib/modules/oracleService.inc:123 ../lib/modules/oracleService.inc:171 +msgid "Connection string" +msgstr "连接字符串" + +#: ../lib/modules/sambaSamAccount.inc:237 +#: ../lib/modules/sambaSamAccount.inc:1524 +#: ../lib/modules/sambaSamAccount.inc:1933 +msgid "Connection time limit" +msgstr "连接时间限制" + +#: ../lib/modules/bindDLZ.inc:232 +msgid "Contact address for this zone (e.g. \"root.example.com.\")." +msgstr "这个域的联系邮箱(比如 \"root.example.com.\")." + +#: ../lib/modules/windowsUser.inc:715 ../lib/modules/inetOrgPerson.inc:1402 +msgid "Contact data" +msgstr "联系数据" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:721 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1301 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +msgid "Container" +msgstr "容器" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1458 +msgid "Container and object classes" +msgstr "容器和对象类" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:27 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:88 +#: ../templates/3rdParty/pla/htdocs/copy.php:108 +msgid "Copy" +msgstr "复制" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:32 +#, php-format +msgid "Copy %s to a new object." +msgstr "复制 %s 到新的对象" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1098 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1102 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1103 +msgid "Copy or move this entry" +msgstr "复制或移动这个条目" + +#: ../templates/3rdParty/pla/htdocs/copy.php:130 +#, php-format +msgid "Copy successful. DN %s has been created." +msgstr "复制成功。%s已经建立。" + +#: ../templates/3rdParty/pla/htdocs/copy.php:48 +msgid "Copying" +msgstr "复制中" + +#: ../templates/3rdParty/pla/htdocs/import.php:37 +msgid "Could not add object" +msgstr "不能增加对象" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:370 +msgid "Could not add the object to the LDAP server." +msgstr "无法在LDAP服务器中增加对象" + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:30 +msgid "Could not delete attribute value." +msgstr "无法删除属性值" + +#: ../templates/3rdParty/pla/htdocs/import.php:38 +msgid "Could not delete object" +msgstr "无法删除对象" + +#: ../templates/3rdParty/pla/htdocs/delete.php:37 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:47 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:73 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:90 +msgid "Could not delete the entry." +msgstr "无法删除条目!" + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:37 +#, php-format +msgid "Could not fetch binary data from LDAP server for attribute [%s]." +msgstr "无法从LDAP服务器中为属性[%s]获取二进制数据" + +#: ../templates/3rdParty/pla/lib/functions.php:1946 +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:60 +#, php-format +msgid "Could not fetch jpeg data from LDAP server for attribute [%s]." +msgstr "无法从LDAP服务器中为属性[%s]获取jpeg数据" + +#: ../templates/3rdParty/pla/htdocs/import.php:41 +msgid "Could not modify object" +msgstr "无法修改对象" + +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:528 +msgid "Could not perform ldap_modify operation." +msgstr "无法执行ldap_modify命令" + +#: ../templates/config/profmanage.php:100 +#: ../templates/selfService/profManage.php:74 +msgid "Could not rename file!" +msgstr "不能更改文件名" + +#: ../templates/3rdParty/pla/htdocs/import.php:39 +#: ../templates/3rdParty/pla/htdocs/import.php:40 +#: ../templates/3rdParty/pla/htdocs/rename.php:60 +msgid "Could not rename the entry." +msgstr "不能重命名条目." + +#: ../templates/pdfedit/pdfpage.php:117 +msgid "Could not save PDF structure, access denied." +msgstr "无法保存PDF结构,存取拒绝." + +#: ../templates/pdfedit/pdfmain.php:182 +#: ../templates/profedit/profilemain.php:168 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1185 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1189 +#: ../templates/initsuff.php:190 ../lib/modules/nisMailAliasUser.inc:366 +#: ../lib/modules/sambaSamAccount.inc:1625 +#: ../lib/modules/posixAccount.inc:1695 +msgid "Create" +msgstr "建立" + +#: ../lib/lists.inc:500 ../lib/lists.inc:686 ../lib/modules.inc:1349 +#: ../help/help.inc:200 +msgid "Create PDF file" +msgstr "建立PDF文件" + +#: ../templates/massDoUpload.php:202 ../templates/masscreate.php:264 +msgid "Create PDF files" +msgstr "建立PDF文件" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1186 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1190 +msgid "Create a child entry" +msgstr "新建子条目" + +#: ../templates/pdfedit/pdfmain.php:175 +msgid "Create a new PDF structure" +msgstr "建立新的PDF架构" + +#: ../templates/profedit/profilemain.php:156 +msgid "Create a new profile" +msgstr "建立新的配置文件" + +#: ../lib/types/dhcp.inc:46 +msgid "Create another DHCP entry" +msgstr "新建另外一个DHCP条目" + +#: ../lib/types/bind.inc:29 +msgid "Create another DNS entry" +msgstr "新建另外一个DNS条目" + +#: ../lib/types/nisObjectType.inc:29 +msgid "Create another NIS object" +msgstr "建立另外一个 NIS 对象." + +#: ../lib/baseType.inc:47 +msgid "Create another account" +msgstr "建立另外一个帐号" + +#: ../lib/types/zarafaAddressListType.inc:43 +msgid "Create another address list" +msgstr "建立另外一个地址列表" + +#: ../lib/types/mailAlias.inc:43 ../lib/types/alias.inc:43 +msgid "Create another alias" +msgstr "建立另外一个别名" + +#: ../lib/types/automountType.inc:34 +msgid "Create another automount entry" +msgstr "建立另外自动挂接帐号" + +#: ../lib/types/pykotaBillingCodeType.inc:43 +msgid "Create another billing code" +msgstr "建立另外一个账单号" + +#: ../lib/types/oracleContextType.inc:29 +msgid "Create another database entry" +msgstr "新建另外一个数据库条目" + +#: ../lib/types/smbDomain.inc:43 +msgid "Create another domain" +msgstr "建立另外一个域" + +#: ../templates/3rdParty/pla/htdocs/create.php:100 +msgid "Create another entry" +msgstr "新建另外一个条目" + +#: ../lib/types/asteriskExt.inc:46 +msgid "Create another extension" +msgstr "建立另外一个扩展" + +#: ../lib/types/gon.inc:43 ../lib/types/zarafaDynamicGroupType.inc:43 +#: ../lib/types/group.inc:44 ../lib/types/netgroup.inc:43 +msgid "Create another group" +msgstr "建立另外一个组" + +#: ../lib/types/host.inc:43 +msgid "Create another host" +msgstr "建立另外一个主机" + +#: ../lib/types/ppolicyType.inc:29 +msgid "Create another policy" +msgstr "建立另外一个策略" + +#: ../lib/types/pykotaPrinterType.inc:43 +msgid "Create another printer" +msgstr "新建另外一个打印机" + +#: ../lib/types/gon.inc:48 ../lib/types/group.inc:49 +msgid "Create another role" +msgstr "建立另外一个角色" + +#: ../lib/types/kolabSharedFolderType.inc:43 +msgid "Create another shared folder" +msgstr "建立另外一个共享文件夹" + +#: ../lib/types/sudo.inc:29 +msgid "Create another sudo role" +msgstr "建立另外一个sudo角色" + +#: ../lib/types/user.inc:43 +msgid "Create another user" +msgstr "建立另外一个用户" + +#: ../lib/lists.inc:691 +msgid "Create for" +msgstr "建立" + +#: ../lib/modules/posixAccount.inc:317 ../lib/modules/posixAccount.inc:1471 +#: ../lib/modules/posixAccount.inc:1760 +msgid "Create home directory" +msgstr "建立主目录" + +#: ../lib/modules/imapAccess.inc:263 +msgid "Create mailbox" +msgstr "建立邮箱" + +#: ../lib/modules/nisMailAliasUser.inc:359 +msgid "Create new alias" +msgstr "建立新的别名" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:278 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:281 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:283 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:506 +msgid "Create new entry here" +msgstr "在这儿新建条目" + +#: ../lib/modules/customFields.inc:72 ../lib/modules/customFields.inc:519 +#: ../lib/modules/customFields.inc:532 +msgid "Create new group" +msgstr "建立新组" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:698 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1541 +#: ../templates/3rdParty/pla/htdocs/create.php:84 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:52 +msgid "Create object" +msgstr "对立对象" + +#: ../lib/modules/generalInformation.inc:76 +msgid "Created by" +msgstr "创建者:" + +#: ../lib/types/automountType.inc:273 +msgid "Created new automount map." +msgstr "建立新的自动挂接映射." + +#: ../templates/config/profmanage.php:77 +#: ../templates/selfService/profManage.php:55 +msgid "Created new profile." +msgstr "新增配置文件" + +#: ../lib/types/bind.inc:240 +msgid "Created new zone." +msgstr "新增域" + +#: ../lib/modules/customFields.inc:73 +msgid "" +"Creates a new group for the given account type. Groups build a container for " +"object classes and attributes." +msgstr "为给定的帐号类型建立新组。组建立一个对象类和属性的容器。" + +#: ../lib/tools/fileUpload.inc:53 +msgid "Creates accounts by uploading a CSV formated file." +msgstr "上传一个CSV格式文件批量建立帐号" + +#: ../templates/3rdParty/pla/htdocs/create.php:77 +#, php-format +msgid "Creation successful. DN %s has been created." +msgstr "成功建立.DN%s已经建立." + +#: ../lib/modules/generalInformation.inc:80 +msgid "Creation time" +msgstr "创建时间" + +#: ../lib/modules/pykotaUser.inc:133 +msgid "Current account balance for the user." +msgstr "为用户建立账单" + +#: ../templates/serverInfo.php:232 ../templates/serverInfo.php:237 +msgid "Current connections" +msgstr "当前连接" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:65 +#, php-format +msgid "Current list of %s values for attribute %s:" +msgstr "当前 %s个属性 %s值的列表: " + +#: ../lib/modules/imapAccess.inc:317 +msgid "Current usage (kB)" +msgstr "当前使用量(kB)" + +#: ../lib/modules/customFields.inc:1097 ../lib/modules/customFields.inc:1420 +msgid "Custom fields" +msgstr "自定义域" + +#: ../lib/modules/customFields.inc:172 +msgid "Custom icon" +msgstr "自定义图标" + +#: ../templates/config/conftypes.php:315 ../lib/modules/customFields.inc:168 +#: ../help/help.inc:180 +msgid "Custom label" +msgstr "自定义标签" + +#: ../lib/modules/customScripts.inc:48 ../lib/modules/customScripts.inc:59 +#: ../lib/modules/customScripts.inc:73 ../lib/modules/customScripts.inc:98 +#: ../lib/modules/customScripts.inc:108 +msgid "Custom scripts" +msgstr "自定义脚本" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1097 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1101 +msgid "Cut" +msgstr "剪切" + +#: ../lib/modules/ddns.inc:63 +msgid "DDNS" +msgstr "DDNS" + +#: ../lib/modules/ddns.inc:377 +msgid "" +"DDNS ist not activated. You can activate it in the DHCP settings (DDNS)." +msgstr "DDNS没有激活.可以DHCP设置中激活(DDNS)" + +#: ../lib/types/dhcp.inc:56 +msgid "DHCP" +msgstr "DHCP" + +#: ../lib/types/dhcp.inc:65 +msgid "DHCP administration" +msgstr "DHCP管理者" + +#: ../lib/types/dhcp.inc:170 +#, php-format +msgid "DHCP count: %s" +msgstr "DHCP总计: %s" + +#: ../lib/types/dhcp.inc:173 ../lib/modules/dhcp_settings.inc:127 +msgid "DHCP settings" +msgstr "DHCP 设置" + +#: ../templates/delete.php:100 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:734 +#: ../templates/3rdParty/pla/lib/PageRender.php:110 +#: ../templates/3rdParty/pla/htdocs/compare.php:52 +#: ../templates/3rdParty/pla/htdocs/compare.php:58 +#: ../templates/3rdParty/pla/htdocs/create.php:92 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:35 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:112 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:57 ../lib/modules.inc:410 +#: ../lib/modules.inc:1964 +msgid "DN" +msgstr "DN" + +#: ../templates/3rdParty/pla/lib/import_functions.php:210 +#: ../templates/3rdParty/pla/lib/import_functions.php:222 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1866 +msgid "DN does not exist" +msgstr "DN不存在" + +#: ../templates/masscreate.php:288 +msgid "DN settings" +msgstr "DN 设置" + +#: ../templates/masscreate.php:317 ../help/help.inc:190 +msgid "DN suffix" +msgstr "DN 后缀" + +#: ../lib/modules/dhcp_settings.inc:211 ../lib/modules/dhcp_settings.inc:226 +#: ../lib/modules/dhcp_settings.inc:268 ../lib/modules/dhcp_settings.inc:577 +#: ../lib/modules/dhcp_settings.inc:677 +msgid "DNS" +msgstr "DNS" + +#: ../lib/modules/dhcp_settings.inc:161 +msgid "DNS (Domain Name System)" +msgstr "DNS(域名解析系统)" + +#: ../lib/modules/bindDLZ.inc:74 +msgid "DNS entry" +msgstr "DNS条目" + +#: ../lib/types/bind.inc:159 +#, php-format +msgid "DNS entry count: %s" +msgstr "DNS条目总数: %s" + +#: ../lib/modules/asteriskExtension.inc:115 +msgid "DNs of the extension owners" +msgstr "扩展属主的DN名" + +#: ../templates/3rdParty/pla/lib/export_functions.php:343 +msgid "DSML V.1 Export" +msgstr "DSML V.1 导出" + +#: ../lib/modules/asteriskAccount.inc:273 +#: ../lib/modules/asteriskAccount.inc:362 +#: ../lib/modules/asteriskAccount.inc:627 +#: ../lib/modules/asteriskAccount.inc:1247 +msgid "DTFM flags" +msgstr "DTFM标志" + +#: ../lib/modules/asteriskAccount.inc:139 +#: ../lib/modules/asteriskAccount.inc:989 +msgid "DTMF mode" +msgstr "DTMF模式" + +#: ../lib/modules/asteriskAccount.inc:140 +msgid "DTMF mode for SIP client configuration." +msgstr "SIP客户端的DTMF模式配置" + +#: ../templates/3rdParty/pla/htdocs/import.php:103 +msgid "Data" +msgstr "数据" + +#: ../lib/types/oracleContextType.inc:186 +#, php-format +msgid "Database count: %s" +msgstr "数据库总计: %s" + +#: ../lib/modules/pykotaUser.inc:595 ../lib/modules/pykotaUser.inc:646 +#: ../lib/modules/pykotaUser.inc:905 ../lib/modules/pykotaUser.inc:963 +#: ../lib/modules/pykotaUser.inc:995 +msgid "Date" +msgstr "日期" + +#: ../lib/modules/sambaSamAccount.inc:299 +msgid "Date after the user is able to change his password." +msgstr "多少天后用户才能修改密码。" + +#: ../lib/modules/mitKerberos.inc:121 ../lib/modules/sambaSamAccount.inc:301 +#: ../lib/modules/heimdalKerberos.inc:107 +msgid "Date after the user must change his password." +msgstr "多少天后用户必须修改密码" + +#: ../lib/modules/shadowAccount.inc:178 +msgid "" +"Days before password is to expire that user is warned of pending password " +"expiration. If set value must be >0." +msgstr "在密码过期前提醒用户的天数,若设其值,必大于0." + +#: ../templates/config/mainmanage.php:408 +msgid "Debug" +msgstr "调试" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:592 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +#: ../lib/modules/qmailUser.inc:47 ../lib/modules/qmailUser.inc:292 +#: ../lib/modules/qmailUser.inc:1060 +msgid "Default" +msgstr "缺省" + +#: ../templates/config/mainmanage.php:443 +msgid "Default (\\r\\n)" +msgstr "缺省 (\\r\\n)" + +#: ../lib/modules/dhcp_settings.inc:165 ../lib/modules/dhcp_settings.inc:212 +#: ../lib/modules/dhcp_settings.inc:227 ../lib/modules/dhcp_settings.inc:274 +#: ../lib/modules/dhcp_settings.inc:579 ../lib/modules/dhcp_settings.inc:678 +msgid "Default gateway" +msgstr "缺省网关" + +#: ../templates/config/confmain.php:297 +#: ../templates/selfService/adminMain.php:453 ../help/help.inc:99 +msgid "Default language" +msgstr "缺省语言" + +#: ../lib/modules/asteriskAccount.inc:231 +#: ../lib/modules/asteriskAccount.inc:296 +#: ../lib/modules/asteriskAccount.inc:530 +#: ../lib/modules/asteriskAccount.inc:750 +#: ../lib/modules/asteriskAccount.inc:1012 +#: ../lib/modules/asteriskAccount.inc:1293 +msgid "Default user" +msgstr "缺省用户" + +#: ../templates/masscreate.php:306 ../templates/masscreate.php:380 +#: ../lib/modules/customFields.inc:124 ../lib/modules/customFields.inc:2761 +msgid "Default value" +msgstr "缺省值" + +#: ../help/help.inc:159 +msgid "" +"Defines if the PHP error reporting setting from php.ini is used or the " +"setting preferred by LAM (\"E_ALL & ~E_NOTICE\"). If you do not develop LAM " +"modules please use the default. This will prevent displaying messages that " +"are useful only for developers." +msgstr "" +"设置是否在PHP.INI文件中使用 error reporting ,或LAM的 (\"E_ALL & ~E_NOTICE\")" +"的配置. 如果不再LAM模块开发,请使用默认值. 这会防止显示一些仅对开发者有用的信" +"息." + +#: ../lib/modules/sambaDomain.inc:118 +msgid "Defines if workstations may change their passwords." +msgstr "定义工作站是否更改密码." + +#: ../lib/modules/asteriskAccount.inc:160 +msgid "" +"Defines the mailbox to check for message waiting indication (MWI) for this " +"peer." +msgstr "为此端检查消息等待信号(MWI)来定义邮箱" + +#: ../lib/types/kolabSharedFolderType.inc:91 ../lib/modules/kolabUser.inc:116 +#: ../lib/modules/kolabUser.inc:132 ../lib/modules/kolabUser.inc:136 +#: ../lib/modules/kolabUser.inc:211 ../lib/modules/kolabUser.inc:234 +#: ../lib/modules/kolabUser.inc:359 ../lib/modules/kolabUser.inc:765 +#: ../lib/modules/kolabUser.inc:837 ../lib/modules/kolabSharedFolder.inc:138 +#: ../lib/modules/kolabSharedFolder.inc:142 +#: ../lib/modules/kolabSharedFolder.inc:226 +#: ../lib/modules/kolabSharedFolder.inc:237 +#: ../lib/modules/kolabSharedFolder.inc:320 +#: ../lib/modules/kolabSharedFolder.inc:564 +msgid "Delegates" +msgstr "代理(Delegates)" + +#: ../lib/modules/kolabSharedFolder.inc:139 +msgid "" +"Delegates are allowed to act on behalf of the shared folder. This property " +"is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "" +"在使用共享文件夹时允许使用委托. 在 Kolab smtp 服务器(Postfix)时会使用这个属" +"性." + +#: ../templates/serverInfo.php:321 ../templates/serverInfo.php:390 +#: ../templates/multiEdit.php:126 ../templates/ou_edit.php:120 +#: ../templates/config/profmanage.php:273 +#: ../templates/selfService/profManage.php:238 +#: ../templates/pdfedit/pdfmain.php:209 ../templates/pdfedit/pdfmain.php:210 +#: ../templates/pdfedit/pdfmain.php:243 ../templates/delete.php:120 +#: ../templates/profedit/profilemain.php:198 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:33 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:124 +#: ../lib/modules/pykotaPrinter.inc:281 +#: ../lib/modules/sambaSamAccount.inc:1618 +#: ../lib/modules/posixAccount.inc:1688 ../lib/modules/zarafaUser.inc:1434 +#: ../lib/modules/zarafaUser.inc:1486 ../lib/modules/bindDLZ.inc:1062 +#: ../lib/modules/bindDLZ.inc:1383 ../lib/modules/kolabUser.inc:827 +#: ../lib/modules/sambaGroupMapping.inc:405 +#: ../lib/modules/ldapPublicKey.inc:262 ../lib/modules/nisnetgroup.inc:253 +#: ../lib/modules/inetOrgPerson.inc:2863 ../lib/modules/customFields.inc:2086 +#: ../lib/modules/customFields.inc:3462 ../lib/lists.inc:494 +msgid "Delete" +msgstr "删除" + +#: ../templates/3rdParty/pla/htdocs/delete.php:31 +msgid "Delete DN" +msgstr "删除DN" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:30 +msgid "Delete LDAP entries" +msgstr "删除LDAP条目" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:77 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:84 +msgid "Delete after copy (move):" +msgstr "在拷贝(移动)后删除:" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:72 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:110 +#, php-format +msgid "Delete all %s objects" +msgstr "删除全部 %s 个对象" + +#: ../templates/config/mainmanage.php:324 +msgid "Delete all CA certificates" +msgstr "删除全部 CA 证书" + +#: ../lib/modules/customFields.inc:624 +msgid "Delete group" +msgstr "删除组" + +#: ../lib/modules/posixAccount.inc:1532 +msgid "Delete home directory" +msgstr "删除主目录" + +#: ../lib/modules/imapAccess.inc:256 +msgid "Delete mailbox" +msgstr "删除邮箱" + +#: ../templates/ou_edit.php:199 ../help/help.inc:265 +msgid "Delete organisational unit" +msgstr "删除组织单元" + +#: ../templates/3rdParty/pla/lib/functions.php:2014 +#: ../lib/modules/inetOrgPerson.inc:1621 +msgid "Delete photo" +msgstr "删除照片" + +#: ../lib/modules/range.inc:556 +msgid "Delete pool" +msgstr "删除地址池" + +#: ../templates/config/profmanage.php:271 +#: ../templates/config/profmanage.php:274 +#: ../templates/selfService/profManage.php:232 +#: ../templates/selfService/profManage.php:239 ../help/help.inc:134 +msgid "Delete profile" +msgstr "删除配置文件" + +#: ../lib/modules/range.inc:105 ../lib/modules/range.inc:137 +#: ../lib/modules/range.inc:532 ../lib/modules/range.inc:607 +msgid "Delete range" +msgstr "删除范围" + +#: ../lib/modules/asteriskExtension.inc:316 +#: ../lib/modules/asteriskExtension.inc:339 +msgid "Delete rule" +msgstr "删除规则" + +#: ../lib/types/dhcp.inc:174 +msgid "Delete selected DHCP entries" +msgstr "删除所选DHCP条目" + +#: ../lib/types/bind.inc:162 +msgid "Delete selected DNS entries" +msgstr "删除所选DHCP条目" + +#: ../lib/types/nisObjectType.inc:158 +msgid "Delete selected NIS objects" +msgstr "删除选中的 NIS 对象" + +#: ../lib/types/zarafaAddressListType.inc:147 +msgid "Delete selected address lists" +msgstr "删除选中的地址列表" + +#: ../lib/types/mailAlias.inc:144 ../lib/types/alias.inc:144 +msgid "Delete selected aliases" +msgstr "删除选中的别名" + +#: ../lib/types/automountType.inc:218 +msgid "Delete selected automount entries" +msgstr "删除选中的自动挂接条目" + +#: ../lib/types/pykotaBillingCodeType.inc:166 +msgid "Delete selected billing codes" +msgstr "删除选中的账单号" + +#: ../lib/types/oracleContextType.inc:189 +msgid "Delete selected database entries" +msgstr "删除所选数据库条目" + +#: ../lib/types/smbDomain.inc:170 +msgid "Delete selected domains" +msgstr "删除选中的域" + +#: ../lib/types/asteriskExt.inc:146 +msgid "Delete selected extensions" +msgstr "删除选中的扩展" + +#: ../lib/types/gon.inc:205 ../lib/types/zarafaDynamicGroupType.inc:168 +#: ../lib/types/group.inc:243 ../lib/types/netgroup.inc:172 +msgid "Delete selected groups" +msgstr "删除已选择的组" + +#: ../lib/types/host.inc:196 +msgid "Delete selected hosts" +msgstr "删除选中的主机" + +#: ../lib/lists.inc:115 +msgid "Delete selected objects" +msgstr "删除选中的对象" + +#: ../lib/types/ppolicyType.inc:152 +msgid "Delete selected policies" +msgstr "删除选中的策略" + +#: ../lib/types/pykotaPrinterType.inc:167 +msgid "Delete selected printers" +msgstr "删除选中的打印机" + +#: ../lib/types/gon.inc:212 ../lib/types/group.inc:250 +msgid "Delete selected roles" +msgstr "删除选中的角色" + +#: ../lib/types/kolabSharedFolderType.inc:144 +msgid "Delete selected shared folders" +msgstr "删除选中的共享文件夹" + +#: ../lib/types/sudo.inc:162 +msgid "Delete selected sudo roles" +msgstr "删除选中的sudo角色" + +#: ../lib/types/user.inc:532 +msgid "Delete selected users" +msgstr "删除选中的用户" + +#: ../templates/3rdParty/pla/htdocs/copy.php:146 +#, php-format +msgid "Delete successful: %s" +msgstr "删除成功:%s" + +#: ../lib/modules/posixAccount.inc:485 ../lib/modules/posixAccount.inc:1538 +msgid "Delete sudo rights" +msgstr "删除sudo权限" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "Delete this entry" +msgstr "删除这个条目" + +#: ../lib/modules/nisMailAliasUser.inc:156 +#: ../lib/modules/nisMailAliasUser.inc:195 +#, php-format +msgid "Delete whole alias entry which includes %s recipients." +msgstr "删除所有包括%s接收者的别名条目" + +#: ../lib/modules/qmailUser.inc:44 +msgid "Deleted" +msgstr "已删除" + +#: ../templates/delete.php:272 +#, php-format +msgid "Deleted DN: %s" +msgstr "删除的DN: %s" + +#: ../templates/pdfedit/pdfmain.php:89 +msgid "Deleted PDF structure." +msgstr "删除的PDF结构." + +#: ../templates/profedit/profilemain.php:103 +msgid "Deleted profile." +msgstr "已删除的配置文件." + +#: ../lib/modules/range.inc:106 +msgid "Deletes an IP range." +msgstr "删除一个IP范围" + +#: ../lib/modules/posixAccount.inc:486 +msgid "Deletes the user from all existing sudo rights." +msgstr "删除所有已有sodo权限的用户" + +#: ../templates/3rdParty/pla/htdocs/import.php:29 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:65 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:82 +msgid "Deleting" +msgstr "正在删除" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:73 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:125 +msgid "Deleting objects" +msgstr "正在删除对象" + +#: ../lib/modules/qmailUser.inc:124 ../lib/modules/qmailUser.inc:255 +#: ../lib/modules/qmailUser.inc:382 ../lib/modules/qmailUser.inc:436 +#: ../lib/modules/qmailUser.inc:658 ../lib/modules/qmailUser.inc:899 +#: ../lib/modules/qmailUser.inc:1170 +msgid "Deletion date" +msgstr "删除日期" + +#: ../lib/lists.inc:1068 +msgid "Deletion was successful." +msgstr "删除操作成功." + +#: ../lib/modules/qmailUser.inc:215 ../lib/modules/qmailUser.inc:290 +#: ../lib/modules/qmailUser.inc:403 ../lib/modules/qmailUser.inc:629 +#: ../lib/modules/qmailUser.inc:1164 +msgid "Delivery mode" +msgstr "分发模式" + +#: ../lib/modules/qmailUser.inc:122 ../lib/modules/qmailUser.inc:175 +#: ../lib/modules/qmailUser.inc:251 ../lib/modules/qmailUser.inc:374 +#: ../lib/modules/qmailUser.inc:433 ../lib/modules/qmailUser.inc:648 +#: ../lib/modules/qmailUser.inc:1150 +msgid "Delivery program" +msgstr "分发程序" + +#: ../lib/modules/asteriskAccount.inc:167 +#: ../lib/modules/asteriskAccount.inc:280 +#: ../lib/modules/asteriskAccount.inc:414 +#: ../lib/modules/asteriskAccount.inc:674 +#: ../lib/modules/asteriskAccount.inc:996 +#: ../lib/modules/asteriskAccount.inc:1261 +#: ../lib/modules/dhcp_settings.inc:104 +msgid "Deny" +msgstr "拒绝" + +#: ../lib/modules/pykotaGroup.inc:65 ../lib/modules/pykotaUser.inc:65 +msgid "Deny printing" +msgstr "阻止打印" + +#: ../lib/modules/inetOrgPerson.inc:165 ../lib/modules/inetOrgPerson.inc:220 +#: ../lib/modules/inetOrgPerson.inc:494 ../lib/modules/inetOrgPerson.inc:616 +#: ../lib/modules/inetOrgPerson.inc:822 ../lib/modules/inetOrgPerson.inc:826 +#: ../lib/modules/inetOrgPerson.inc:1514 ../lib/modules/inetOrgPerson.inc:1517 +#: ../lib/modules/inetOrgPerson.inc:1953 ../lib/modules/inetOrgPerson.inc:2728 +#: ../lib/modules/inetOrgPerson.inc:3616 ../lib/modules/inetOrgPerson.inc:3657 +msgid "Department" +msgstr "部门" + +#: ../lib/modules/kolabGroup.inc:105 ../lib/modules/kolabGroup.inc:109 +#: ../lib/modules/kolabUser.inc:162 ../lib/modules/kolabUser.inc:166 +#: ../lib/modules/kolabSharedFolder.inc:130 +#: ../lib/modules/kolabSharedFolder.inc:134 +msgid "" +"Describes the allowed or disallowed SMTP addresses sending mail to this " +"account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "" +"描述是否允许SMTP向这个地址发送邮件(比如 \"domain.tld\" 或 \"-user@domain.tld" +"\")。" + +#: ../lib/modules/kolabGroup.inc:96 ../lib/modules/kolabGroup.inc:100 +#: ../lib/modules/kolabUser.inc:153 ../lib/modules/kolabUser.inc:157 +#: ../lib/modules/kolabSharedFolder.inc:121 +#: ../lib/modules/kolabSharedFolder.inc:125 +msgid "" +"Describes the allowed or disallowed SMTP recipient addresses for mail sent " +"by this account (e.g. \"domain.tld\" or \"-user@domain.tld\")." +msgstr "" +"描述是否允许SMTP接收这个地址发来的邮件(比如: \"domain.tld\" 或 \"-" +"user@domain.tld\")." + +#: ../templates/schema/schema.php:89 ../templates/schema/schema.php:143 +#: ../templates/schema/schema.php:346 +#: ../templates/3rdParty/pla/lib/functions.php:1898 +#: ../templates/3rdParty/pla/lib/functions.php:1902 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:139 +#: ../templates/3rdParty/pla/htdocs/import.php:101 +#: ../lib/types/automountType.inc:88 ../lib/types/nisObjectType.inc:80 +#: ../lib/types/oracleContextType.inc:79 +#: ../lib/types/pykotaBillingCodeType.inc:92 ../lib/types/user.inc:101 +#: ../lib/types/pykotaPrinterType.inc:92 ../lib/types/sudo.inc:84 +#: ../lib/types/dhcp.inc:96 ../lib/types/netgroup.inc:92 +#: ../lib/modules/pykotaPrinter.inc:99 ../lib/modules/pykotaPrinter.inc:153 +#: ../lib/modules/pykotaPrinter.inc:194 ../lib/modules/pykotaPrinter.inc:248 +#: ../lib/modules/pykotaPrinter.inc:585 ../lib/modules/account.inc:82 +#: ../lib/modules/account.inc:95 ../lib/modules/account.inc:105 +#: ../lib/modules/account.inc:113 ../lib/modules/account.inc:218 +#: ../lib/modules/account.inc:229 ../lib/modules/windowsHost.inc:78 +#: ../lib/modules/windowsHost.inc:101 ../lib/modules/windowsHost.inc:120 +#: ../lib/modules/windowsHost.inc:143 ../lib/modules/windowsHost.inc:289 +#: ../lib/modules/posixGroup.inc:201 ../lib/modules/posixGroup.inc:430 +#: ../lib/modules/posixGroup.inc:484 ../lib/modules/posixGroup.inc:572 +#: ../lib/modules/device.inc:81 ../lib/modules/device.inc:115 +#: ../lib/modules/device.inc:130 ../lib/modules/device.inc:173 +#: ../lib/modules/device.inc:421 ../lib/modules/dhcp_settings.inc:197 +#: ../lib/modules/dhcp_settings.inc:217 ../lib/modules/dhcp_settings.inc:307 +#: ../lib/modules/dhcp_settings.inc:620 ../lib/modules/dhcp_settings.inc:684 +#: ../lib/modules/pykotaGroup.inc:117 ../lib/modules/pykotaGroup.inc:166 +#: ../lib/modules/pykotaGroup.inc:188 ../lib/modules/pykotaGroup.inc:233 +#: ../lib/modules/pykotaGroup.inc:468 ../lib/modules/posixAccount.inc:556 +#: ../lib/modules/windowsUser.inc:119 ../lib/modules/windowsUser.inc:308 +#: ../lib/modules/windowsUser.inc:500 ../lib/modules/windowsUser.inc:705 +#: ../lib/modules/windowsUser.inc:1596 ../lib/modules/nisObject.inc:73 +#: ../lib/modules/nisObject.inc:103 ../lib/modules/nisObject.inc:114 +#: ../lib/modules/nisObject.inc:155 ../lib/modules/nisObject.inc:212 +#: ../lib/modules/sambaGroupMapping.inc:114 +#: ../lib/modules/sambaGroupMapping.inc:542 ../lib/modules/pykotaUser.inc:120 +#: ../lib/modules/pykotaUser.inc:226 ../lib/modules/pykotaUser.inc:277 +#: ../lib/modules/pykotaUser.inc:413 ../lib/modules/pykotaUser.inc:892 +#: ../lib/modules/automount.inc:72 ../lib/modules/automount.inc:95 +#: ../lib/modules/automount.inc:105 ../lib/modules/automount.inc:132 +#: ../lib/modules/automount.inc:183 ../lib/modules/nisnetgroup.inc:87 +#: ../lib/modules/nisnetgroup.inc:140 ../lib/modules/nisnetgroup.inc:199 +#: ../lib/modules/nisnetgroup.inc:580 ../lib/modules/inetOrgPerson.inc:166 +#: ../lib/modules/inetOrgPerson.inc:178 ../lib/modules/inetOrgPerson.inc:332 +#: ../lib/modules/inetOrgPerson.inc:553 ../lib/modules/inetOrgPerson.inc:646 +#: ../lib/modules/inetOrgPerson.inc:1232 ../lib/modules/inetOrgPerson.inc:1235 +#: ../lib/modules/inetOrgPerson.inc:1923 ../lib/modules/inetOrgPerson.inc:2823 +#: ../lib/modules/inetOrgPerson.inc:3576 ../lib/modules/inetOrgPerson.inc:3645 +#: ../lib/modules/sudoRole.inc:70 ../lib/modules/sudoRole.inc:153 +#: ../lib/modules/sudoRole.inc:215 ../lib/modules/sudoRole.inc:305 +#: ../lib/modules/sudoRole.inc:805 ../lib/modules/oracleService.inc:69 +#: ../lib/modules/oracleService.inc:92 ../lib/modules/oracleService.inc:100 +#: ../lib/modules/oracleService.inc:122 ../lib/modules/oracleService.inc:172 +#: ../lib/modules/organizationalRole.inc:89 +#: ../lib/modules/organizationalRole.inc:123 +#: ../lib/modules/organizationalRole.inc:141 +#: ../lib/modules/organizationalRole.inc:163 +#: ../lib/modules/organizationalRole.inc:189 +#: ../lib/modules/organizationalRole.inc:453 ../lib/modules/fixed_ip.inc:110 +#: ../lib/modules/fixed_ip.inc:433 ../lib/modules/fixed_ip.inc:744 +#: ../lib/modules/pykotaBillingCode.inc:81 +#: ../lib/modules/pykotaBillingCode.inc:109 +#: ../lib/modules/pykotaBillingCode.inc:116 +#: ../lib/modules/pykotaBillingCode.inc:159 +#: ../lib/modules/pykotaBillingCode.inc:262 +#: ../lib/modules/windowsGroup.inc:118 ../lib/modules/windowsGroup.inc:183 +#: ../lib/modules/windowsGroup.inc:258 ../lib/modules/windowsGroup.inc:301 +#: ../lib/modules/windowsGroup.inc:746 ../lib/modules/groupOfNames.inc:89 +#: ../lib/modules/groupOfNames.inc:135 ../lib/modules/groupOfNames.inc:171 +#: ../lib/modules/groupOfNames.inc:199 ../lib/modules/groupOfNames.inc:235 +#: ../lib/modules/groupOfNames.inc:694 +msgid "Description" +msgstr "描述" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:49 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "Destination DN" +msgstr "目标DN" + +#: ../lib/modules/device.inc:45 +msgid "Device" +msgstr "设备" + +#: ../lib/modules/sambaSamAccount.inc:394 +#: ../lib/modules/sambaSamAccount.inc:585 +msgid "Disable LM hashes" +msgstr "屏蔽LM哈希方法" + +#: ../lib/modules/ddns.inc:89 ../lib/modules/ddns.inc:370 +msgid "Disable client updates" +msgstr "禁止客户端更新" + +#: ../lib/modules/posixGroup.inc:417 ../lib/modules/posixGroup.inc:533 +msgid "Disable membership management" +msgstr "关闭成员管理功能" + +#: ../lib/modules/qmailUser.inc:43 +msgid "Disabled" +msgstr "关闭" + +#: ../lib/modules/ddns.inc:90 +msgid "Disables the client to update DNS entries." +msgstr "禁止客户端更新DNS条目." + +#: ../lib/modules/posixGroup.inc:534 +msgid "Disables the group membership management." +msgstr "关闭组成员管理功能" + +#: ../lib/modules/mitKerberos.inc:172 +msgid "" +"Disables user-to-user authentication for this principal by prohibiting this " +"principal from obtaining a session key for another user." +msgstr "" +"关闭这个策略的用户到用户的认证功能,防止策略从其他用户那里得到会话密钥。" + +#: ../lib/modules/heimdalKerberos.inc:130 +#: ../lib/modules/heimdalKerberos.inc:378 +msgid "Disallow TGT-based tickets" +msgstr "不允许基于TGT的票据" + +#: ../lib/modules/mitKerberos.inc:174 ../lib/modules/mitKerberos.inc:452 +#: ../lib/modules/heimdalKerberos.inc:148 +#: ../lib/modules/heimdalKerberos.inc:383 +msgid "Disallow all tickets" +msgstr "不允许所有的编码" + +#: ../templates/config/conftypes.php:332 ../help/help.inc:178 +msgid "Disallow delete" +msgstr "不允许删除" + +#: ../lib/modules/mitKerberos.inc:162 ../lib/modules/mitKerberos.inc:422 +#: ../lib/modules/heimdalKerberos.inc:133 +#: ../lib/modules/heimdalKerberos.inc:353 +msgid "Disallow forwardable tickets" +msgstr "不允许转发的票据." + +#: ../lib/modules/mitKerberos.inc:159 ../lib/modules/mitKerberos.inc:437 +#: ../lib/modules/heimdalKerberos.inc:142 +#: ../lib/modules/heimdalKerberos.inc:368 +msgid "Disallow post-dated tickets" +msgstr "不允许过期的票据" + +#: ../lib/modules/mitKerberos.inc:168 ../lib/modules/mitKerberos.inc:427 +#: ../lib/modules/heimdalKerberos.inc:136 +#: ../lib/modules/heimdalKerberos.inc:358 +msgid "Disallow proxiable tickets" +msgstr "不允许代理的票据" + +#: ../lib/modules/mitKerberos.inc:165 ../lib/modules/mitKerberos.inc:432 +#: ../lib/modules/heimdalKerberos.inc:139 +#: ../lib/modules/heimdalKerberos.inc:363 +msgid "Disallow renewable tickets" +msgstr "不允许刷新的票据" + +#: ../lib/modules/mitKerberos.inc:186 ../lib/modules/mitKerberos.inc:442 +#: ../lib/modules/heimdalKerberos.inc:145 +#: ../lib/modules/heimdalKerberos.inc:373 +msgid "Disallow service tickets" +msgstr "不允许服务票据" + +#: ../lib/modules/mitKerberos.inc:171 ../lib/modules/mitKerberos.inc:447 +msgid "Disallow user-to-user authentication" +msgstr "不允许用户到用户认证." + +#: ../lib/modules/asteriskAccount.inc:199 +#: ../lib/modules/asteriskAccount.inc:288 +#: ../lib/modules/asteriskAccount.inc:472 +#: ../lib/modules/asteriskAccount.inc:709 +#: ../lib/modules/asteriskAccount.inc:1004 +#: ../lib/modules/asteriskAccount.inc:1277 +msgid "Disallowed codec" +msgstr "不允许的编码" + +#: ../lib/modules/sambaDomain.inc:113 ../lib/modules/sambaDomain.inc:193 +#: ../lib/modules/sambaDomain.inc:299 ../lib/modules/sambaDomain.inc:621 +msgid "Disconnect users outside logon hours" +msgstr "切断连接前用户登录小时数" + +#: ../lib/modules/sambaSamAccount.inc:238 +#: ../lib/modules/sambaSamAccount.inc:1528 +#: ../lib/modules/sambaSamAccount.inc:1934 +msgid "Disconnection time limit" +msgstr "断开连接时间限制" + +#: ../lib/modules/sambaDomain.inc:114 +msgid "Disconnects users if they are logged in outside logon hours." +msgstr "如果用户登录限制时间到则断开连接." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +#: ../lib/modules/organizationalRole.inc:106 +#: ../lib/modules/organizationalRole.inc:153 +#: ../lib/modules/groupOfNames.inc:118 ../lib/modules/groupOfNames.inc:187 +msgid "Display format" +msgstr "显示格式" + +#: ../lib/modules/customFields.inc:176 ../lib/modules/customFields.inc:509 +msgid "Display multiple groups as accordion" +msgstr "将多个组显示成堆叠式" + +#: ../lib/modules/sambaSamAccount.inc:111 +#: ../lib/modules/sambaSamAccount.inc:210 +#: ../lib/modules/sambaSamAccount.inc:259 +#: ../lib/modules/sambaSamAccount.inc:420 +#: ../lib/modules/sambaSamAccount.inc:1143 +#: ../lib/modules/sambaSamAccount.inc:1738 +#: ../lib/modules/sambaSamAccount.inc:1906 ../lib/modules/windowsUser.inc:123 +#: ../lib/modules/windowsUser.inc:296 ../lib/modules/windowsUser.inc:474 +#: ../lib/modules/windowsUser.inc:501 ../lib/modules/windowsUser.inc:595 +#: ../lib/modules/windowsUser.inc:703 ../lib/modules/windowsUser.inc:1597 +#: ../lib/modules/sambaGroupMapping.inc:112 +#: ../lib/modules/sambaGroupMapping.inc:146 +#: ../lib/modules/sambaGroupMapping.inc:359 +#: ../lib/modules/sambaGroupMapping.inc:540 +msgid "Display name" +msgstr "显示名" + +#: ../templates/lists/changePassword.php:326 +msgid "Display on screen" +msgstr "屏幕显示" + +#: ../templates/3rdParty/pla/htdocs/create.php:97 +msgid "Display the created entry" +msgstr "显示创建的条目" + +#: ../lib/modules.inc:503 +msgid "" +"Displayed account numbers start at \"0\". Add 2 to get the row in your " +"spreadsheet." +msgstr "显示的帐号数以\"0\"开始,加2才是您的电子表格的行数." + +#: ../lib/modules/windowsGroup.inc:61 +msgid "Distribution" +msgstr "分发" + +#: ../lib/modules/passwordSelfReset.inc:140 +#: ../lib/modules/passwordSelfReset.inc:545 +msgid "Do not ask security question" +msgstr "不需要安全提问" + +#: ../templates/ou_edit.php:112 +msgid "Do you really want to delete this OU?" +msgstr "确认删除这个OU?" + +#: ../templates/pdfedit/pdfmain.php:351 +msgid "Do you really want to delete this PDF structure?" +msgstr "确认删除这个PDF结构?" + +#: ../templates/profedit/profilemain.php:319 +msgid "Do you really want to delete this profile?" +msgstr "确认删除这个配置文件?" + +#: ../lib/modules/kolabGroup.inc:285 ../lib/modules/kolabUser.inc:515 +#: ../lib/modules/kolabSharedFolder.inc:425 +msgid "Do you really want to mark this account for deletion?" +msgstr "确认将此帐号打上删除标记?" + +#: ../lib/modules/qmailGroup.inc:273 +msgid "Do you really want to post to this mailinglist?" +msgstr "确认发送到这个邮件列表?" + +#: ../templates/delete.php:94 +msgid "Do you really want to remove the following accounts?" +msgstr "确认删除下列帐号?" + +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:59 +msgid "Do you want to create this entry?" +msgstr "确认创建这个条目?" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:36 +msgid "Do you want to make these changes?" +msgstr "确认如下更改?" + +#: ../lib/modules/sambaSamAccount.inc:211 +#: ../lib/modules/sambaSamAccount.inc:337 +#: ../lib/modules/sambaSamAccount.inc:413 +#: ../lib/modules/sambaSamAccount.inc:537 +#: ../lib/modules/sambaSamAccount.inc:1285 +#: ../lib/modules/sambaSamAccount.inc:1781 +#: ../lib/modules/sambaSamAccount.inc:1803 +#: ../lib/modules/sambaSamAccount.inc:1912 ../lib/modules/windowsUser.inc:111 +#: ../lib/modules/windowsUser.inc:1664 +#: ../lib/modules/sambaGroupMapping.inc:158 +#: ../lib/modules/sambaGroupMapping.inc:386 +#: ../lib/modules/sambaGroupMapping.inc:576 ../lib/modules/nisnetgroup.inc:223 +#: ../lib/modules/nisnetgroup.inc:587 +msgid "Domain" +msgstr "域" + +#: ../lib/modules/sambaSamAccount.inc:84 +msgid "Domain KRBTGT" +msgstr "域KRBTGT" + +#: ../lib/types/smbDomain.inc:91 ../lib/modules/sambaDomain.inc:81 +#: ../lib/modules/sambaDomain.inc:151 ../lib/modules/sambaDomain.inc:185 +#: ../lib/modules/sambaDomain.inc:256 ../lib/modules/sambaDomain.inc:261 +#: ../lib/modules/sambaDomain.inc:600 +msgid "Domain SID" +msgstr "域SID" + +#: ../lib/modules/sambaGroupMapping.inc:125 +#: ../lib/modules/windowsGroup.inc:178 ../lib/modules/windowsGroup.inc:185 +#: ../lib/modules/windowsGroup.inc:191 +msgid "Domain administrators" +msgstr "域管理员" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:60 +#: ../lib/modules/sambaGroupMapping.inc:131 +msgid "Domain admins" +msgstr "域管理员" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:65 +msgid "Domain certificate admins" +msgstr "域认证管理员" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaSamAccount.inc:812 +#: ../lib/modules/sambaGroupMapping.inc:63 +msgid "Domain computers" +msgstr "域内计算机" + +#: ../lib/modules/sambaSamAccount.inc:80 +#: ../lib/modules/sambaGroupMapping.inc:64 +msgid "Domain controllers" +msgstr "域控制器" + +#: ../lib/types/smbDomain.inc:167 +#, php-format +msgid "Domain count: %s" +msgstr "域总计:%s" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:67 +msgid "Domain enterprise admins" +msgstr "域企业管理员" + +#: ../lib/modules/sambaGroupMapping.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:377 +msgid "Domain group" +msgstr "域内组" + +#: ../lib/modules/sambaSamAccount.inc:79 ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaGroupMapping.inc:62 +msgid "Domain guests" +msgstr "域内来宾" + +#: ../lib/modules/windowsGroup.inc:64 +msgid "Domain local" +msgstr "本地域" + +#: ../lib/types/smbDomain.inc:92 ../lib/modules/dhcp_settings.inc:145 +#: ../lib/modules/dhcp_settings.inc:208 ../lib/modules/dhcp_settings.inc:223 +#: ../lib/modules/dhcp_settings.inc:250 ../lib/modules/dhcp_settings.inc:567 +#: ../lib/modules/dhcp_settings.inc:674 ../lib/modules/nisnetgroup.inc:154 +#: ../lib/modules/sambaDomain.inc:77 ../lib/modules/sambaDomain.inc:144 +#: ../lib/modules/sambaDomain.inc:184 ../lib/modules/sambaDomain.inc:241 +#: ../lib/modules/sambaDomain.inc:246 ../lib/modules/sambaDomain.inc:599 +msgid "Domain name" +msgstr "域名" + +#: ../lib/modules/nisnetgroup.inc:154 ../lib/modules/sambaDomain.inc:208 +#: ../lib/modules/sambaDomain.inc:209 +msgid "Domain name is invalid!" +msgstr "域名非法!" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:68 +msgid "Domain policy admins" +msgstr "域策略管理员" + +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaGroupMapping.inc:66 +msgid "Domain schema admins" +msgstr "域架构管理员" + +#: ../lib/modules/sambaSamAccount.inc:79 +#: ../lib/modules/sambaSamAccount.inc:2175 +#: ../lib/modules/sambaGroupMapping.inc:61 +msgid "Domain users" +msgstr "域内用户" + +#: ../lib/modules/windowsUser.inc:240 ../lib/modules/windowsUser.inc:557 +msgid "Domains" +msgstr "域" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:43 +msgid "Don't stop on errors" +msgstr "发生错误时不停止" + +#: ../templates/pdfedit/pdfpage.php:475 +msgid "Down" +msgstr "向下" + +#: ../templates/config/mainmanage.php:321 +msgid "Download CA certificates" +msgstr "下载 CA 证书" + +#: ../templates/masscreate.php:256 +msgid "Download sample CSV file" +msgstr "下载CSV示例文件" + +#: ../templates/multiEdit.php:162 +msgid "Dry run" +msgstr "排练" + +#: ../templates/multiEdit.php:437 +msgid "DryRun finished." +msgstr "排练结束" + +#: ../templates/serverInfo.php:124 +msgid "Dynamic subtrees" +msgstr "动态子树" + +#: ../lib/modules/eduPerson.inc:72 +msgid "EDU person" +msgstr "EDU用户" + +#: ../lib/modules/selfRegistration.inc:80 +msgid "" +"Each line represents one LDAP attribute. Please see the manual for a syntax " +"description." +msgstr "每一行代表一个LDAP属性. 请参考语法手册." + +#: ../lib/modules/sambaSamAccount.inc:575 +msgid "East Australian Standard, Guam" +msgstr "澳东标准时间,关岛" + +#: ../lib/modules/sambaSamAccount.inc:567 +msgid "Eastern Europe Time, South Africa" +msgstr "东欧时间,南非" + +#: ../lib/modules/sambaSamAccount.inc:560 +msgid "Eastern Time (US & Canada), Bogota" +msgstr "美国东部时间(美国和加拿大),波哥大" + +#: ../templates/pdfedit/pdfmain.php:206 +#: ../templates/profedit/profilemain.php:195 +#: ../lib/modules/sambaSamAccount.inc:1290 +#: ../lib/modules/sambaSamAccount.inc:1295 ../lib/lists.inc:488 +msgid "Edit" +msgstr "编辑" + +#: ../lib/modules.inc:1357 +msgid "Edit again" +msgstr "再次编辑" + +#: ../templates/config/mainmanage.php:228 ../templates/config/index.php:99 +msgid "Edit general settings" +msgstr "编辑通用设置" + +#: ../lib/modules/posixAccount.inc:1454 ../lib/modules/windowsUser.inc:786 +msgid "Edit groups" +msgstr "编辑组" + +#: ../lib/modules/posixGroup.inc:223 ../lib/modules/windowsGroup.inc:382 +msgid "Edit members" +msgstr "编辑成员" + +#: ../templates/config/index.php:125 +msgid "Edit self service" +msgstr "编辑自动服务功能" + +#: ../templates/config/index.php:111 +msgid "Edit server profiles" +msgstr "编辑服务器配置文件" + +#: ../lib/modules/nisnetgroup.inc:208 +msgid "Edit subgroups" +msgstr "编辑分组" + +#: ../lib/modules/sambaSamAccount.inc:1246 +msgid "Edit workstations" +msgstr "编辑工作站" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1872 +#: ../lib/types/zarafaDynamicGroupType.inc:92 ../lib/types/user.inc:100 +#: ../lib/modules/zarafaDynamicGroup.inc:243 +#: ../lib/modules/zarafaDynamicGroup.inc:248 +#: ../lib/modules/zarafaGroup.inc:234 ../lib/modules/zarafaGroup.inc:241 +#: ../lib/modules/passwordSelfReset.inc:500 +#: ../lib/modules/nisMailAlias.inc:344 +msgid "Email" +msgstr "电子邮件" + +#: ../lib/modules/inetOrgPerson.inc:81 +#, php-format +msgid "Email \"%s\" already in use." +msgstr "邮件 \"%s\" 已经被使用" + +#: ../templates/lists/changePassword.php:288 ../lib/modules/kolabGroup.inc:87 +#: ../lib/modules/kolabGroup.inc:91 ../lib/modules/kolabGroup.inc:155 +#: ../lib/modules/kolabGroup.inc:168 ../lib/modules/kolabGroup.inc:177 +#: ../lib/modules/kolabGroup.inc:179 ../lib/modules/kolabGroup.inc:202 +#: ../lib/modules/kolabGroup.inc:423 ../lib/modules/selfRegistration.inc:400 +#: ../lib/modules/selfRegistration.inc:482 +#: ../lib/modules/zarafaDynamicGroup.inc:67 +#: ../lib/modules/zarafaDynamicGroup.inc:68 +#: ../lib/modules/zarafaDynamicGroup.inc:124 +#: ../lib/modules/zarafaDynamicGroup.inc:166 +#: ../lib/modules/zarafaDynamicGroup.inc:200 +#: ../lib/modules/zarafaDynamicGroup.inc:448 ../lib/modules/qmailUser.inc:199 +#: ../lib/modules/qmailUser.inc:299 ../lib/modules/qmailUser.inc:406 +#: ../lib/modules/qmailUser.inc:448 ../lib/modules/qmailUser.inc:492 +#: ../lib/modules/qmailUser.inc:1139 ../lib/modules/zarafaGroup.inc:69 +#: ../lib/modules/zarafaGroup.inc:70 ../lib/modules/zarafaGroup.inc:170 +#: ../lib/modules/zarafaGroup.inc:200 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:648 ../lib/modules/windowsUser.inc:140 +#: ../lib/modules/windowsUser.inc:350 ../lib/modules/windowsUser.inc:475 +#: ../lib/modules/windowsUser.inc:505 ../lib/modules/windowsUser.inc:607 +#: ../lib/modules/windowsUser.inc:716 ../lib/modules/windowsUser.inc:1601 +#: ../lib/modules/pykotaUser.inc:116 ../lib/modules/pykotaUser.inc:218 +#: ../lib/modules/pykotaUser.inc:274 ../lib/modules/pykotaUser.inc:319 +#: ../lib/modules/pykotaUser.inc:409 ../lib/modules/pykotaUser.inc:890 +#: ../lib/modules/inetOrgPerson.inc:80 ../lib/modules/inetOrgPerson.inc:81 +#: ../lib/modules/inetOrgPerson.inc:160 ../lib/modules/inetOrgPerson.inc:214 +#: ../lib/modules/inetOrgPerson.inc:460 ../lib/modules/inetOrgPerson.inc:598 +#: ../lib/modules/inetOrgPerson.inc:742 ../lib/modules/inetOrgPerson.inc:746 +#: ../lib/modules/inetOrgPerson.inc:1447 ../lib/modules/inetOrgPerson.inc:1450 +#: ../lib/modules/inetOrgPerson.inc:1937 ../lib/modules/inetOrgPerson.inc:2503 +#: ../lib/modules/inetOrgPerson.inc:3606 ../lib/modules/inetOrgPerson.inc:3653 +#: ../lib/modules/kolabSharedFolder.inc:116 +#: ../lib/modules/kolabSharedFolder.inc:181 +#: ../lib/modules/kolabSharedFolder.inc:239 +#: ../lib/modules/kolabSharedFolder.inc:259 +#: ../lib/modules/kolabSharedFolder.inc:281 +#: ../lib/modules/kolabSharedFolder.inc:558 +#: ../lib/modules/asteriskVoicemail.inc:107 +#: ../lib/modules/asteriskVoicemail.inc:140 +#: ../lib/modules/asteriskVoicemail.inc:178 +#: ../lib/modules/asteriskVoicemail.inc:254 +#: ../lib/modules/asteriskVoicemail.inc:374 ../lib/modules/qmailGroup.inc:123 +#: ../lib/modules/qmailGroup.inc:127 ../lib/modules/qmailGroup.inc:240 +#: ../lib/modules/qmailGroup.inc:371 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:457 ../lib/modules/qmailGroup.inc:1056 +#: ../lib/modules/imapAccess.inc:232 ../lib/modules/passwordSelfReset.inc:849 +#: ../lib/modules/passwordSelfReset.inc:1020 +#: ../lib/modules/windowsGroup.inc:126 ../lib/modules/windowsGroup.inc:165 +#: ../lib/modules/windowsGroup.inc:219 ../lib/modules/windowsGroup.inc:265 +#: ../lib/modules/windowsGroup.inc:285 ../lib/modules/windowsGroup.inc:303 +#: ../lib/modules/windowsGroup.inc:748 +msgid "Email address" +msgstr "电子邮件地址" + +#: ../lib/modules/kolabGroup.inc:179 ../lib/modules/kolabGroup.inc:180 +msgid "Email address already exists." +msgstr "邮件地址已经存在. " + +#: ../lib/modules/asteriskVoicemail.inc:108 +msgid "Email address for this voicemail account." +msgstr "此语音邮件帐号的电子邮件地址" + +#: ../lib/modules/qmailGroup.inc:221 ../lib/modules/qmailGroup.inc:225 +msgid "Email addresses that are allowed to send to this list." +msgstr "不能发送到这个列表的电子邮件地址" + +#: ../lib/modules/qmailGroup.inc:205 ../lib/modules/qmailGroup.inc:209 +msgid "Email addresses that are member of this list." +msgstr "这个地址列表的邮件地址" + +#: ../lib/modules/qmailGroup.inc:213 ../lib/modules/qmailGroup.inc:217 +msgid "Email addresses that moderate this list (e.g. approve mails)." +msgstr "主持此列表的电子邮件地址(例如,批准邮件)。" + +#: ../lib/modules/zarafaContact.inc:83 ../lib/modules/zarafaUser.inc:124 +#: ../lib/modules/windowsUser.inc:227 ../lib/modules/windowsUser.inc:231 +#: ../lib/modules/windowsUser.inc:356 ../lib/modules/windowsUser.inc:476 +#: ../lib/modules/windowsUser.inc:506 ../lib/modules/windowsUser.inc:609 +#: ../lib/modules/windowsUser.inc:717 ../lib/modules/windowsUser.inc:1602 +#: ../lib/modules/kolabUser.inc:140 ../lib/modules/kolabSharedFolder.inc:146 +msgid "Email alias" +msgstr "电子邮件别名" + +#: ../lib/modules/zarafaContact.inc:84 ../lib/modules/zarafaUser.inc:125 +#: ../lib/modules/windowsUser.inc:228 ../lib/modules/windowsUser.inc:232 +#: ../lib/modules/kolabUser.inc:141 ../lib/modules/kolabSharedFolder.inc:147 +msgid "Email alias for this account." +msgstr "此帐号的电子邮件别名" + +#: ../lib/modules/zarafaContact.inc:185 ../lib/modules/zarafaContact.inc:186 +#: ../lib/modules/zarafaUser.inc:417 ../lib/modules/zarafaUser.inc:418 +#: ../lib/modules/windowsUser.inc:609 ../lib/modules/windowsUser.inc:610 +#: ../lib/modules/kolabUser.inc:247 ../lib/modules/kolabSharedFolder.inc:254 +msgid "Email alias is invalid!" +msgstr "电子邮件别名非法!" + +#: ../lib/modules/kolabUser.inc:144 ../lib/modules/kolabSharedFolder.inc:150 +msgid "Email alias list" +msgstr "电子邮件别名列表" + +#: ../lib/modules/kolabUser.inc:248 ../lib/modules/kolabSharedFolder.inc:255 +msgid "Email alias list has invalid format!" +msgstr "电子邮件别名列表格式非法!" + +#: ../lib/types/kolabSharedFolderType.inc:92 +#: ../lib/types/zarafaDynamicGroupType.inc:97 +#: ../lib/modules/zarafaDynamicGroup.inc:71 +#: ../lib/modules/zarafaDynamicGroup.inc:75 +#: ../lib/modules/zarafaDynamicGroup.inc:130 +#: ../lib/modules/zarafaDynamicGroup.inc:167 +#: ../lib/modules/zarafaDynamicGroup.inc:258 +#: ../lib/modules/zarafaDynamicGroup.inc:451 +#: ../lib/modules/zarafaContact.inc:143 ../lib/modules/zarafaContact.inc:176 +#: ../lib/modules/zarafaContact.inc:207 ../lib/modules/zarafaContact.inc:566 +#: ../lib/modules/zarafaGroup.inc:73 ../lib/modules/zarafaGroup.inc:77 +#: ../lib/modules/zarafaGroup.inc:162 ../lib/modules/zarafaGroup.inc:197 +#: ../lib/modules/zarafaGroup.inc:252 ../lib/modules/zarafaGroup.inc:649 +#: ../lib/modules/zarafaUser.inc:188 ../lib/modules/zarafaUser.inc:370 +#: ../lib/modules/zarafaUser.inc:385 ../lib/modules/zarafaUser.inc:443 +#: ../lib/modules/zarafaUser.inc:1235 ../lib/modules/zarafaUser.inc:1497 +#: ../lib/modules/zarafaUser.inc:1809 ../lib/modules/kolabUser.inc:205 +#: ../lib/modules/kolabUser.inc:233 ../lib/modules/kolabUser.inc:351 +#: ../lib/modules/kolabUser.inc:764 ../lib/modules/kolabSharedFolder.inc:220 +#: ../lib/modules/kolabSharedFolder.inc:236 +#: ../lib/modules/kolabSharedFolder.inc:312 +#: ../lib/modules/kolabSharedFolder.inc:563 +msgid "Email aliases" +msgstr "电子邮件别名" + +#: ../templates/config/mainmanage.php:446 ../help/help.inc:156 +msgid "Email format" +msgstr "邮件格式" + +#: ../lib/modules/inetOrgPerson.inc:348 ../lib/modules/inetOrgPerson.inc:628 +#: ../lib/modules/inetOrgPerson.inc:854 ../lib/modules/inetOrgPerson.inc:1488 +#: ../lib/modules/inetOrgPerson.inc:1491 ../lib/modules/inetOrgPerson.inc:1948 +#: ../lib/modules/inetOrgPerson.inc:3624 ../lib/modules/inetOrgPerson.inc:3659 +#: ../lib/modules/passwordSelfReset.inc:503 +#: ../lib/modules/passwordSelfReset.inc:855 +#: ../lib/modules/passwordSelfReset.inc:1025 +msgid "Employee number" +msgstr "雇员号" + +#: ../lib/modules/inetOrgPerson.inc:93 ../lib/modules/inetOrgPerson.inc:232 +#: ../lib/modules/inetOrgPerson.inc:356 ../lib/modules/inetOrgPerson.inc:610 +#: ../lib/modules/inetOrgPerson.inc:666 ../lib/modules/inetOrgPerson.inc:1497 +#: ../lib/modules/inetOrgPerson.inc:1500 ../lib/modules/inetOrgPerson.inc:1946 +#: ../lib/modules/inetOrgPerson.inc:3612 ../lib/modules/inetOrgPerson.inc:3655 +msgid "Employee type" +msgstr "雇员类型" + +#: ../lib/modules/inetOrgPerson.inc:667 +msgid "Employee type: Contractor, Employee, Intern, Temp, External, ..." +msgstr "雇员类型: 承包商,雇员,实习生,临时工,外部员工,..." + +#: ../templates/lists/changePassword.php:514 +#: ../templates/lists/changePassword.php:521 ../templates/login.php:543 +msgid "Empty password submitted. Please try again." +msgstr "提交了空密码,请重试." + +#: ../lib/modules/passwordSelfReset.inc:96 +#: ../lib/modules/passwordSelfReset.inc:490 +msgid "Enable password self reset link" +msgstr "打开密码自助复位链接" + +#: ../lib/modules/selfRegistration.inc:53 +#: ../lib/modules/selfRegistration.inc:190 +msgid "Enable self registration link" +msgstr "打开自助注册链接" + +#: ../lib/modules/customFields.inc:153 +msgid "" +"Enables auto-completion for this field. All existing values of this " +"attribute will be offered as auto-complete values." +msgstr "打开这个域的自动完成功能. 这个属性已有值会做为自动完成的参考值." + +#: ../lib/modules/ppolicy.inc:97 +msgid "" +"Enables quality checking (e.g. password length) of passwords. If set to " +"\"force\" then you need to disable password hashing in your LAM server " +"profile to change passwords with LAM." +msgstr "" +"打开密码质量(比如密码长度)检查。如果设置为“强制”,则必须在LAM的服务器配置中" +"关闭密码哈希,才能用LAM更改密码。" + +#: ../templates/multiEdit.php:312 +#: ../templates/3rdParty/pla/lib/export_functions.php:160 +msgid "Encountered an error while performing search." +msgstr "检索时发生错误." + +#: ../templates/config/mainmanage.php:304 ../help/help.inc:160 +msgid "Encrypt session" +msgstr "加密会话" + +#: ../lib/modules/imapAccess.inc:80 ../lib/modules/imapAccess.inc:120 +msgid "Encryption protocol" +msgstr "加密协议" + +#: ../lib/modules/imapAccess.inc:81 +msgid "" +"Encryption protocol for connecting to IMAP server. LAM requires an encrypted " +"connection." +msgstr "连接到IMAP的加密协议。LAM需要加密的连接。" + +#: ../help/help.inc:161 +msgid "" +"Encrypts sensitive data like passwords in your session. This requires the " +"PHP MCrypt extension." +msgstr "类似密码等在会话中对加密敏感的数据.这项功能需要PHP MCrypt扩展." + +#: ../templates/selfService/adminMain.php:457 ../help/help.inc:103 +msgid "Enforce language" +msgstr "强制语言" + +#: ../lib/modules/sambaSamAccount.inc:553 +msgid "Eniwetok, Kwajalein" +msgstr "埃尼威托克,瓜加林" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:91 +msgid "Enter the values you would like to add:" +msgstr "输入想增加的值:" + +#: ../lib/modules/eduPerson.inc:118 ../lib/modules/eduPerson.inc:122 +#: ../lib/modules/eduPerson.inc:194 ../lib/modules/eduPerson.inc:231 +#: ../lib/modules/eduPerson.inc:344 ../lib/modules/eduPerson.inc:586 +msgid "Entitlements" +msgstr "授权" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:471 +msgid "Entries found" +msgstr "个条目被发现" + +#: ../templates/serverInfo.php:269 +msgid "Entries sent" +msgstr "条已经被发送" + +#: ../templates/3rdParty/pla/lib/export_functions.php:473 +msgid "Entry" +msgstr "条目" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:43 +#, php-format +msgid "Entry %s and sub-tree deleted successfully." +msgstr "条目 %s 及其子树删除成功" + +#: ../templates/3rdParty/pla/htdocs/create.php:90 +msgid "Entry created" +msgstr "条目建立" + +#: ../templates/delete.php:330 +#: ../templates/3rdParty/pla/htdocs/mass_update.php:26 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:26 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:27 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:24 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:56 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:33 +msgid "Entry does not exist" +msgstr "条目不存在" + +#: ../lib/modules/puppetClient.inc:80 ../lib/modules/puppetClient.inc:84 +#: ../lib/modules/puppetClient.inc:128 ../lib/modules/puppetClient.inc:153 +#: ../lib/modules/puppetClient.inc:161 ../lib/modules/puppetClient.inc:239 +#: ../lib/modules/puppetClient.inc:430 +msgid "Environment" +msgstr "环境" + +#: ../templates/schema/schema.php:166 +msgid "Equality" +msgstr "相等" + +#: ../lib/modules/zarafaUser.inc:529 ../lib/modules/zarafaUser.inc:1249 +msgid "Equipment" +msgstr "设备" + +#: ../templates/config/mainmanage.php:408 +#: ../templates/3rdParty/pla/lib/Template.php:430 +#: ../templates/3rdParty/pla/lib/Template.php:473 +#: ../templates/3rdParty/pla/lib/Template.php:517 +#: ../templates/3rdParty/pla/lib/functions.php:511 +#: ../templates/3rdParty/pla/lib/functions.php:513 +#: ../templates/3rdParty/pla/lib/ds_myldap.php:219 +#: ../templates/3rdParty/pla/htdocs/import.php:79 +msgid "Error" +msgstr "错误" + +#: ../templates/3rdParty/pla/lib/functions.php:1897 +#: ../templates/3rdParty/pla/lib/functions.php:1901 +msgid "Error number" +msgstr "错误号" + +#: ../lib/modules/mitKerberos.inc:1173 ../lib/modules/heimdalKerberos.inc:1038 +msgid "Error while changing Kerberos password." +msgstr "在修改Kerberos密码时发生错误." + +#: ../templates/delete.php:280 +#, php-format +msgid "Error while deleting DN: %s" +msgstr "删除DN: %s时发生错误" + +#: ../help/help.inc:145 +msgid "" +"Every account type needs exactly one base module. This module provides a " +"structural object class." +msgstr "每个帐号类型都需要一个基本模块,这个模块提供一个结构化对象类" + +#: ../lib/modules/customScripts.inc:67 ../lib/modules/customScripts.inc:80 +#: ../lib/modules/selfRegistration.inc:82 ../lib/modules/zarafaContact.inc:97 +#: ../lib/modules/zarafaGroup.inc:99 ../lib/modules/dhcp_settings.inc:564 +#: ../lib/modules/zarafaUser.inc:146 ../help/help.inc:74 ../help/help.inc:80 +#: ../help/help.inc:90 ../help/help.inc:95 ../help/help.inc:117 +msgid "Example" +msgstr "示例" + +#: ../templates/masscreate.php:302 ../templates/masscreate.php:376 +msgid "Example value" +msgstr "示例值" + +#: ../help/help.inc:62 +msgid "Examples" +msgstr "示例" + +#: ../templates/config/confmain.php:319 +msgid "Execute" +msgstr "运行" + +#: ../templates/tests/lamdaemonTest.php:269 +msgid "Execute lamdaemon" +msgstr "运行 lamdaemon" + +#: ../lib/modules/freeRadius.inc:104 ../lib/modules/freeRadius.inc:130 +#: ../lib/modules/freeRadius.inc:209 ../lib/modules/freeRadius.inc:237 +#: ../lib/modules/freeRadius.inc:385 ../lib/modules/freeRadius.inc:543 +msgid "Expiration date" +msgstr "过期时间" + +#: ../lib/modules/bindDLZ.inc:211 ../lib/modules/bindDLZ.inc:314 +#: ../lib/modules/bindDLZ.inc:426 ../lib/modules/bindDLZ.inc:519 +#: ../lib/modules/bindDLZ.inc:1022 ../lib/modules/bindDLZ.inc:1551 +msgid "Expiration time" +msgstr "过期时间" + +#: ../lib/modules/asteriskAccount.inc:211 +#: ../lib/modules/asteriskAccount.inc:291 +#: ../lib/modules/asteriskAccount.inc:494 +#: ../lib/modules/asteriskAccount.inc:721 +#: ../lib/modules/asteriskAccount.inc:1007 +#: ../lib/modules/asteriskAccount.inc:1283 +msgid "Expiration timestamp" +msgstr "过期时间戳" + +#: ../lib/modules/asteriskAccount.inc:212 +msgid "Expiration timestamp (\"regseconds\" option)." +msgstr "过期时间戳(\"regseconds\"选项)" + +#: ../lib/types/ppolicyType.inc:86 ../lib/modules/ppolicy.inc:116 +#: ../lib/modules/ppolicy.inc:148 ../lib/modules/ppolicy.inc:174 +#: ../lib/modules/ppolicy.inc:214 ../lib/modules/ppolicy.inc:479 +msgid "Expire warning" +msgstr "密码过期告警" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1081 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1084 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:305 +#: ../templates/3rdParty/pla/htdocs/export_form.php:37 +#: ../templates/3rdParty/pla/htdocs/export_form.php:53 +msgid "Export" +msgstr "导出" + +#: ../templates/pdfedit/pdfmain.php:221 ../templates/pdfedit/pdfmain.php:222 +#: ../help/help.inc:212 +msgid "Export PDF structure" +msgstr "导出PDF结构" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:105 +msgid "Export format" +msgstr "导出格式" + +#: ../templates/profedit/profilemain.php:209 +#: ../templates/profedit/profilemain.php:210 ../help/help.inc:194 +msgid "Export profile" +msgstr "导出配置文件" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Export subtree" +msgstr "导出子树" + +#: ../templates/pdfedit/pdfmain.php:117 +#: ../templates/profedit/profilemain.php:132 +msgid "Export successful" +msgstr "导出成功." + +#: ../templates/serverInfo.php:349 +msgid "Extended" +msgstr "扩展" + +#: ../lib/types/asteriskExt.inc:143 +#, php-format +msgid "Extension count: %s" +msgstr "扩展总计:%s" + +#: ../lib/types/asteriskExt.inc:94 ../lib/types/asteriskExt.inc:158 +#: ../lib/modules/asteriskExtension.inc:102 +#: ../lib/modules/asteriskExtension.inc:137 +#: ../lib/modules/asteriskExtension.inc:145 +#: ../lib/modules/asteriskExtension.inc:289 +#: ../lib/modules/asteriskExtension.inc:293 +#: ../lib/modules/asteriskExtension.inc:813 +msgid "Extension name" +msgstr "扩展名" + +#: ../lib/modules/asteriskExtension.inc:114 +#: ../lib/modules/asteriskExtension.inc:138 +#: ../lib/modules/asteriskExtension.inc:159 +#: ../lib/modules/asteriskExtension.inc:233 +#: ../lib/modules/asteriskExtension.inc:481 +#: ../lib/modules/asteriskExtension.inc:814 +msgid "Extension owners" +msgstr "扩展属主" + +#: ../lib/modules/asteriskExtension.inc:190 +msgid "Extension with this name already exists." +msgstr "扩展名已经存在!" + +#: ../templates/3rdParty/pla/htdocs/import.php:66 +msgid "Failed" +msgstr "失败" + +#: ../lib/modules/mitKerberos.inc:128 ../lib/modules/mitKerberos.inc:252 +#: ../lib/modules/mitKerberos.inc:298 ../lib/modules/mitKerberos.inc:345 +#: ../lib/modules/mitKerberos.inc:768 +msgid "Failed logins" +msgstr "登录失败." + +#: ../templates/initsuff.php:152 +msgid "Failed to create entry!" +msgstr "新增条目失败!" + +#: ../lib/profiles.inc:190 ../lib/pdfstruct.inc:224 +msgid "Failed to export!" +msgstr "导出失败!" + +#: ../lib/profiles.inc:197 ../lib/pdfstruct.inc:231 +msgid "Failed to import!" +msgstr "导入失败!" + +#: ../lib/modules/range.inc:121 ../lib/modules/range.inc:567 +msgid "Failover peer" +msgstr "失效恢复节点" + +#: ../lib/types/ppolicyType.inc:85 ../lib/modules/ppolicy.inc:112 +#: ../lib/modules/ppolicy.inc:153 ../lib/modules/ppolicy.inc:173 +#: ../lib/modules/ppolicy.inc:280 ../lib/modules/ppolicy.inc:478 +msgid "Failure count interval" +msgstr "失败记录间隔" + +#: ../lib/modules/inetOrgPerson.inc:76 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:211 ../lib/modules/inetOrgPerson.inc:444 +#: ../lib/modules/inetOrgPerson.inc:592 ../lib/modules/inetOrgPerson.inc:726 +#: ../lib/modules/inetOrgPerson.inc:730 ../lib/modules/inetOrgPerson.inc:1431 +#: ../lib/modules/inetOrgPerson.inc:1434 ../lib/modules/inetOrgPerson.inc:1939 +#: ../lib/modules/inetOrgPerson.inc:2558 ../lib/modules/inetOrgPerson.inc:3602 +#: ../lib/modules/inetOrgPerson.inc:3652 +msgid "Fax number" +msgstr "传真号" + +#: ../lib/modules/zarafaUser.inc:155 ../lib/modules/zarafaUser.inc:376 +#: ../lib/modules/zarafaUser.inc:638 ../lib/modules/zarafaUser.inc:1288 +#: ../lib/modules/zarafaUser.inc:1327 ../lib/modules/zarafaUser.inc:1807 +msgid "Features" +msgstr "功能" + +#: ../templates/config/mainmanage.php:412 +#: ../templates/3rdParty/pla/lib/functions.php:533 +#: ../templates/3rdParty/pla/tools/unserialize.php:14 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "File" +msgstr "文件" + +#: ../lib/pdfstruct.inc:282 +msgid "File does not exist." +msgstr "文件不存在" + +#: ../lib/modules/customFields.inc:160 ../lib/modules/customFields.inc:3294 +msgid "File extension" +msgstr "文件扩展名" + +#: ../lib/modules/inetOrgPerson.inc:104 +#, php-format +msgid "File is too large. Maximum allowed size is %s kB." +msgstr "文件太大,最大字节数不能超过 %s kB." + +#: ../lib/modules/sambaSamAccount.inc:313 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user and $group are replaced with user and group name." +msgstr "" +"用户登录时自动运行的文件名和网络登录共享相对路径,$user和$group会被用户名和组" +"名替换" + +#: ../lib/modules/windowsUser.inc:210 +msgid "" +"File name and path relative to netlogon-share which should be executed on " +"logon. $user is replaced with user name." +msgstr "登录时自动运行的文件名和网络共享路径,$user会被用户名替换" + +#: ../lib/modules/zarafaServer.inc:76 ../lib/modules/zarafaServer.inc:112 +#: ../lib/modules/zarafaServer.inc:137 ../lib/modules/zarafaServer.inc:177 +#: ../lib/modules/zarafaServer.inc:219 ../lib/modules/zarafaServer.inc:356 +msgid "File path" +msgstr "文件路径" + +#: ../templates/masscreate.php:243 ../lib/tools/fileUpload.inc:44 +#: ../lib/modules/ldapPublicKey.inc:80 ../lib/modules/customFields.inc:3280 +#: ../lib/lists.inc:777 +msgid "File upload" +msgstr "文件上传" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +#: ../lib/types/zarafaAddressListType.inc:94 +#: ../lib/types/zarafaDynamicGroupType.inc:95 +#: ../lib/modules/pykotaPrinter.inc:128 ../lib/modules/pykotaPrinter.inc:425 +#: ../lib/modules/zarafaDynamicGroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:158 +#: ../lib/modules/zarafaDynamicGroup.inc:171 +#: ../lib/modules/zarafaDynamicGroup.inc:239 +#: ../lib/modules/zarafaDynamicGroup.inc:450 +#: ../lib/modules/zarafaContact.inc:91 ../lib/modules/posixGroup.inc:335 +#: ../lib/modules/posixGroup.inc:528 ../lib/modules/zarafaAddressList.inc:79 +#: ../lib/modules/zarafaAddressList.inc:134 +#: ../lib/modules/zarafaAddressList.inc:145 +#: ../lib/modules/zarafaAddressList.inc:206 +#: ../lib/modules/zarafaAddressList.inc:333 ../lib/modules/zarafaUser.inc:140 +#: ../lib/modules/sambaGroupMapping.inc:170 +#: ../lib/modules/sambaGroupMapping.inc:483 ../lib/modules/nisnetgroup.inc:104 +#: ../lib/modules/nisnetgroup.inc:477 +#: ../lib/modules/organizationalRole.inc:101 +#: ../lib/modules/organizationalRole.inc:282 +#: ../lib/modules/organizationalRole.inc:372 +#: ../lib/modules/groupOfNames.inc:113 ../lib/modules/groupOfNames.inc:339 +#: ../lib/modules/groupOfNames.inc:429 ../lib/modules/groupOfNames.inc:494 +#: ../lib/modules/groupOfNames.inc:584 ../lib/modules/nisMailAlias.inc:93 +#: ../lib/modules/nisMailAlias.inc:373 ../lib/lists.inc:379 +#: ../help/help.inc:168 +msgid "Filter" +msgstr "过滤器" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:509 +msgid "Filter performed" +msgstr "进行过滤" + +#: ../templates/multiEdit.php:514 +msgid "Finished all operations." +msgstr "完成所有操作." + +#: ../lib/types/user.inc:96 ../lib/modules/selfRegistration.inc:83 +#: ../lib/modules/selfRegistration.inc:218 ../lib/modules/windowsUser.inc:128 +#: ../lib/modules/windowsUser.inc:278 ../lib/modules/windowsUser.inc:502 +#: ../lib/modules/windowsUser.inc:597 ../lib/modules/windowsUser.inc:700 +#: ../lib/modules/windowsUser.inc:1598 ../lib/modules/inetOrgPerson.inc:66 +#: ../lib/modules/inetOrgPerson.inc:159 ../lib/modules/inetOrgPerson.inc:309 +#: ../lib/modules/inetOrgPerson.inc:549 ../lib/modules/inetOrgPerson.inc:658 +#: ../lib/modules/inetOrgPerson.inc:1195 ../lib/modules/inetOrgPerson.inc:1198 +#: ../lib/modules/inetOrgPerson.inc:1925 ../lib/modules/inetOrgPerson.inc:2481 +#: ../lib/modules/inetOrgPerson.inc:3646 +msgid "First name" +msgstr "名字" + +#: ../lib/modules/windowsUser.inc:597 ../lib/modules/windowsUser.inc:598 +#: ../lib/modules/inetOrgPerson.inc:66 ../lib/modules/inetOrgPerson.inc:67 +msgid "First name contains invalid characters!" +msgstr "名字包含非法字符" + +#: ../lib/modules/windowsUser.inc:129 ../lib/modules/inetOrgPerson.inc:659 +msgid "First name of user. Only letters, - and spaces are allowed." +msgstr "用户名字只允许字母,-和空格" + +#: ../lib/modules/ddns.inc:85 +msgid "Fix IP addresses" +msgstr "固定IP地址" + +#: ../templates/config/confmain.php:414 +msgid "Fixed list" +msgstr "固定列表" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:228 +msgid "Fixed range" +msgstr "固定的范围" + +#: ../templates/pdfedit/pdfpage.php:461 +msgid "Folding marks" +msgstr "折叠记号" + +#: ../templates/config/confmain.php:273 ../help/help.inc:85 +msgid "Follow referrals" +msgstr "追随引荐的服务器" + +#: ../lib/modules/kolabUser.inc:125 +msgid "For automatic invitation handling." +msgstr "自动处理邀请." + +#: ../lib/modules/nisnetgroup.inc:101 +msgid "" +"For the upload please specify the entries in the format \"(HOST,USER," +"DOMAIN)\". Multiple entries are separated by semicolon." +msgstr "上传请使用\"(主机,用户,域)\"格式来编写条目.多条目请用分号隔开." + +#: ../templates/lists/changePassword.php:243 +#: ../lib/modules/mitKerberos.inc:183 ../lib/modules/mitKerberos.inc:417 +#: ../lib/modules/shadowAccount.inc:369 ../lib/modules/heimdalKerberos.inc:127 +#: ../lib/modules/heimdalKerberos.inc:348 ../lib/modules.inc:1062 +#: ../help/help.inc:206 +msgid "Force password change" +msgstr "强制改变密码" + +#: ../lib/modules/passwordSelfReset.inc:787 +msgid "Forgot password?" +msgstr "忘记密码?" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:484 ../help/help.inc:252 +msgid "Format" +msgstr "格式" + +#: ../lib/modules/qmailUser.inc:207 ../lib/modules/qmailUser.inc:277 +#: ../lib/modules/qmailUser.inc:401 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:546 ../lib/modules/qmailUser.inc:1141 +msgid "Forwarding address" +msgstr "转发地址" + +#: ../lib/modules/qmailUser.inc:208 +msgid "Forwards all incoming messages for this user to this address." +msgstr "把这个用户的所有来信转发到这个地址." + +#: ../lib/modules/pykotaGroup.inc:64 ../lib/modules/pykotaUser.inc:64 +msgid "Free printing" +msgstr "自由打印" + +#: ../lib/modules/freeRadius.inc:74 +msgid "FreeRadius" +msgstr "FreeRadius" + +#: ../lib/modules/sambaSamAccount.inc:1381 +msgid "Friday" +msgstr "星期五" + +#: ../templates/config/confmain.php:343 ../lib/modules/selfRegistration.inc:90 +#: ../lib/modules/selfRegistration.inc:229 +#: ../lib/modules/passwordSelfReset.inc:116 +#: ../lib/modules/passwordSelfReset.inc:537 +#: ../lib/modules/passwordSelfReset.inc:557 ../help/help.inc:246 +msgid "From address" +msgstr "收件人地址" + +#: ../templates/config/confmain.php:520 +msgid "From address for password mails is invalid." +msgstr "密码邮件的发件人地址非法" + +#: ../lib/modules/asteriskAccount.inc:147 +#: ../lib/modules/asteriskAccount.inc:275 +#: ../lib/modules/asteriskAccount.inc:377 +#: ../lib/modules/asteriskAccount.inc:636 +#: ../lib/modules/asteriskAccount.inc:991 +#: ../lib/modules/asteriskAccount.inc:1251 +msgid "From domain" +msgstr "来自域" + +#: ../lib/modules/asteriskAccount.inc:148 +msgid "From domain setting for this account." +msgstr "此帐号的来自域设置" + +#: ../lib/modules/asteriskAccount.inc:143 +#: ../lib/modules/asteriskAccount.inc:274 +#: ../lib/modules/asteriskAccount.inc:370 +#: ../lib/modules/asteriskAccount.inc:632 +#: ../lib/modules/asteriskAccount.inc:990 +#: ../lib/modules/asteriskAccount.inc:1249 +msgid "From user" +msgstr "来自用户" + +#: ../lib/modules/asteriskAccount.inc:144 +msgid "From user setting for this account." +msgstr "此帐号的来自用户设置" + +#: ../lib/modules/asteriskAccount.inc:151 +#: ../lib/modules/asteriskAccount.inc:276 +#: ../lib/modules/asteriskAccount.inc:384 +#: ../lib/modules/asteriskAccount.inc:640 +#: ../lib/modules/asteriskAccount.inc:992 +#: ../lib/modules/asteriskAccount.inc:1253 +msgid "Full contact" +msgstr "联系人全称" + +#: ../templates/lists/changePassword.php:286 +#: ../lib/modules/asteriskVoicemail.inc:103 +#: ../lib/modules/asteriskVoicemail.inc:139 +#: ../lib/modules/asteriskVoicemail.inc:172 +#: ../lib/modules/asteriskVoicemail.inc:252 +#: ../lib/modules/asteriskVoicemail.inc:371 +msgid "Full name" +msgstr "全名" + +#: ../lib/modules/asteriskVoicemail.inc:104 +msgid "Full name for Asterisk voicemail mailbox." +msgstr "Asterisk语音邮箱的全名." + +#: ../templates/3rdParty/pla/lib/functions.php:537 +#: ../templates/3rdParty/pla/tools/unserialize.php:17 +msgid "Function" +msgstr "功能" + +#: ../lib/modules/windowsUser.inc:328 ../lib/modules/inetOrgPerson.inc:390 +msgid "GB-12345" +msgstr "GB-12345" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixGroup.inc:520 +msgid "GID generator" +msgstr "GID生成器" + +#: ../lib/types/host.inc:96 ../lib/types/group.inc:106 +#: ../lib/types/user.inc:93 ../lib/modules/qmailUser.inc:114 +#: ../lib/modules/qmailUser.inc:235 ../lib/modules/qmailUser.inc:341 +#: ../lib/modules/qmailUser.inc:421 ../lib/modules/qmailUser.inc:581 +#: ../lib/modules/qmailUser.inc:1143 ../lib/modules/posixGroup.inc:191 +#: ../lib/modules/posixGroup.inc:421 ../lib/modules/posixGroup.inc:436 +#: ../lib/modules/posixGroup.inc:480 ../lib/modules/posixGroup.inc:500 +#: ../lib/modules/posixGroup.inc:571 ../lib/modules/posixGroup.inc:594 +#: ../lib/modules/posixAccount.inc:125 ../lib/modules/posixAccount.inc:413 +#: ../lib/modules/posixAccount.inc:1858 +#: ../lib/modules/sambaGroupMapping.inc:110 +#: ../lib/modules/sambaGroupMapping.inc:538 +msgid "GID number" +msgstr "GID编号" + +#: ../lib/modules/posixGroup.inc:594 +msgid "" +"GID number has changed. Please select checkbox to change GID number of users " +"and hosts." +msgstr "GID的编号已经更改,请点击选择框来改变用户GID号" + +#: ../lib/modules/posixAccount.inc:125 +#, php-format +msgid "" +"GID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" +msgstr "" +"GID已经更改,要保持文件属性一,你必须以root身份运行以下命令: 'find / -gid %s -" +"uid %s -exec chgrp %s {} \\;'" + +#: ../lib/modules/posixGroup.inc:601 +msgid "GID number has to be a numeric value!" +msgstr "GID号必须使用数字" + +#: ../lib/modules/qmailUser.inc:466 +msgid "GID number is already in use." +msgstr "GID号已经被使用" + +#: ../lib/modules/posixAccount.inc:256 ../lib/modules/posixAccount.inc:356 +#: ../lib/modules/posixAccount.inc:398 ../lib/modules/posixAccount.inc:424 +#: ../lib/modules/posixAccount.inc:510 ../lib/modules/posixAccount.inc:548 +#: ../lib/modules/posixAccount.inc:1440 ../lib/modules/posixAccount.inc:1861 +msgid "Gecos" +msgstr "备注(Gecos)" + +#: ../lib/modules/windowsUser.inc:673 +msgid "General" +msgstr "通用" + +#: ../lib/modules/generalInformation.inc:58 +msgid "General information" +msgstr "一般信息" + +#: ../templates/config/mainmanage.php:477 +#: ../templates/config/confmodules.php:164 +#: ../templates/config/confmain.php:205 +#: ../templates/config/moduleSettings.php:163 +#: ../templates/config/conftypes.php:182 +#: ../templates/selfService/adminMain.php:401 +#: ../templates/profedit/profilepage.php:215 +msgid "General settings" +msgstr "通用设置" + +#: ../templates/lists/changePassword.php:317 ../help/help.inc:244 +msgid "Generate random password" +msgstr "生成随机密码" + +#: ../templates/3rdParty/pla/lib/functions.php:63 +#: ../templates/3rdParty/pla/lib/functions.php:595 +msgid "Generic Error" +msgstr "一般性错误" + +#: ../lib/modules/windowsGroup.inc:65 +msgid "Global" +msgstr "全球" + +#: ../templates/pdfedit/pdfmain.php:322 +#: ../templates/profedit/profilemain.php:289 +msgid "Global templates" +msgstr "全局模板" + +#: ../templates/schema/schema.php:128 ../templates/schema/schema.php:265 +#: ../templates/schema/schema.php:296 ../templates/schema/schema.php:321 +msgid "Go" +msgstr "开始" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:215 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:139 +msgid "Go back" +msgstr "回退" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1864 +msgid "Go to" +msgstr "到" + +#: ../lib/types/ppolicyType.inc:82 ../lib/modules/ppolicy.inc:100 +#: ../lib/modules/ppolicy.inc:149 ../lib/modules/ppolicy.inc:170 +#: ../lib/modules/ppolicy.inc:222 ../lib/modules/ppolicy.inc:475 +msgid "Grace authentication limit" +msgstr "缓期认证限制" + +#: ../lib/modules/quota.inc:125 ../lib/modules/quota.inc:403 +msgid "Grace block period" +msgstr "块限制宽限周期" + +#: ../lib/modules/quota.inc:126 +msgid "" +"Grace block period. Most filesystems use a fixed maximum value of 7 days." +msgstr "块限制宽限周期,大部分文件系统都使用最大值7天." + +#: ../lib/modules/quota.inc:148 +msgid "" +"Grace inode (files) period. Most filesystems use a fixed maximum value of 7 " +"days." +msgstr "节点限制的宽限期,大部分文件系统都使用最大值7天." + +#: ../lib/modules/quota.inc:147 ../lib/modules/quota.inc:407 +msgid "Grace inode period" +msgstr "节点限制宽限期" + +#: ../templates/config/confmain.php:324 +#: ../templates/selfService/adminMain.php:638 +msgid "Group" +msgstr "组" + +#: ../lib/types/group.inc:76 +msgid "Group accounts (e.g. Unix and Samba)" +msgstr "组帐号(比如unix和samba)" + +#: ../lib/types/gon.inc:202 ../lib/types/zarafaDynamicGroupType.inc:165 +#: ../lib/types/group.inc:240 ../lib/types/netgroup.inc:169 +#, php-format +msgid "Group count: %s" +msgstr "帐号总计:%s" + +#: ../lib/types/group.inc:111 ../lib/modules/posixGroup.inc:471 +#: ../lib/modules/nisnetgroup.inc:120 +msgid "Group description" +msgstr "组说明" + +#: ../lib/modules/pykotaGroup.inc:118 +msgid "Group description." +msgstr "组描述" + +#: ../lib/modules/posixGroup.inc:485 +msgid "Group description. If left empty group name will be used." +msgstr "组说明,若空则会使用组名来替代." + +#: ../lib/types/gon.inc:105 ../lib/types/gon.inc:106 +#: ../lib/types/group.inc:108 ../lib/types/group.inc:109 +msgid "Group member DNs" +msgstr "组成员DN" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:94 +#: ../lib/types/group.inc:107 ../lib/modules/pykotaPrinter.inc:119 +#: ../lib/modules/pykotaPrinter.inc:123 ../lib/modules/pykotaPrinter.inc:186 +#: ../lib/modules/pykotaPrinter.inc:199 ../lib/modules/pykotaPrinter.inc:265 +#: ../lib/modules/pykotaPrinter.inc:607 ../lib/modules/posixGroup.inc:222 +#: ../lib/modules/posixGroup.inc:293 ../lib/modules/posixGroup.inc:424 +#: ../lib/modules/posixGroup.inc:450 ../lib/modules/posixGroup.inc:488 +#: ../lib/modules/posixGroup.inc:492 ../lib/modules/posixGroup.inc:569 +#: ../lib/modules/windowsGroup.inc:381 +msgid "Group members" +msgstr "组成员" + +#: ../lib/types/gon.inc:104 ../lib/types/zarafaDynamicGroupType.inc:91 +#: ../lib/types/group.inc:105 ../lib/types/netgroup.inc:91 +#: ../lib/modules/zarafaDynamicGroup.inc:63 +#: ../lib/modules/zarafaDynamicGroup.inc:116 +#: ../lib/modules/zarafaDynamicGroup.inc:165 +#: ../lib/modules/zarafaDynamicGroup.inc:195 +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:220 +#: ../lib/modules/zarafaDynamicGroup.inc:447 ../lib/modules/posixGroup.inc:181 +#: ../lib/modules/posixGroup.inc:427 ../lib/modules/posixGroup.inc:459 +#: ../lib/modules/posixGroup.inc:508 ../lib/modules/posixGroup.inc:570 +#: ../lib/modules/posixGroup.inc:602 ../lib/modules/posixGroup.inc:603 +#: ../lib/modules/posixGroup.inc:604 ../lib/modules/pykotaGroup.inc:197 +#: ../lib/modules/pykotaGroup.inc:199 ../lib/modules/pykotaGroup.inc:218 +#: ../lib/modules/nisnetgroup.inc:83 ../lib/modules/nisnetgroup.inc:112 +#: ../lib/modules/nisnetgroup.inc:139 ../lib/modules/nisnetgroup.inc:151 +#: ../lib/modules/nisnetgroup.inc:193 ../lib/modules/nisnetgroup.inc:579 +#: ../lib/modules/organizationalRole.inc:85 +#: ../lib/modules/organizationalRole.inc:114 +#: ../lib/modules/organizationalRole.inc:137 +#: ../lib/modules/organizationalRole.inc:452 +#: ../lib/modules/windowsGroup.inc:114 ../lib/modules/windowsGroup.inc:176 +#: ../lib/modules/windowsGroup.inc:257 ../lib/modules/windowsGroup.inc:283 +#: ../lib/modules/windowsGroup.inc:300 ../lib/modules/windowsGroup.inc:745 +#: ../lib/modules/groupOfNames.inc:85 ../lib/modules/groupOfNames.inc:126 +#: ../lib/modules/groupOfNames.inc:167 ../lib/modules/groupOfNames.inc:693 +msgid "Group name" +msgstr "组名" + +#: ../lib/modules/pykotaGroup.inc:199 ../lib/modules/pykotaGroup.inc:200 +#: ../lib/modules/pykotaGroup.inc:203 ../lib/modules/pykotaGroup.inc:204 +msgid "Group name already exists!" +msgstr "组名已经存在!" + +#: ../lib/modules/zarafaDynamicGroup.inc:195 +msgid "Group name already in use." +msgstr "组名已经被使用" + +#: ../lib/modules/zarafaDynamicGroup.inc:196 +#: ../lib/modules/zarafaDynamicGroup.inc:197 ../lib/modules/posixGroup.inc:604 +#: ../lib/modules/posixGroup.inc:605 ../lib/modules/pykotaGroup.inc:197 +#: ../lib/modules/pykotaGroup.inc:198 ../lib/modules/pykotaGroup.inc:201 +#: ../lib/modules/pykotaGroup.inc:202 ../lib/modules/nisnetgroup.inc:151 +#: ../lib/modules/windowsGroup.inc:283 ../lib/modules/windowsGroup.inc:284 +msgid "" +"Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "组名包含非法字符,可用字符为: a-z, A-Z, 0-9,及 -或_ !" + +#: ../lib/modules/windowsGroup.inc:151 +msgid "Group name for NIS." +msgstr "NIS的组名" + +#: ../lib/modules/posixGroup.inc:603 +msgid "Group name in use. Selected next free group name." +msgstr "组名已被使用,请选择可用的组名." + +#: ../lib/modules/zarafaDynamicGroup.inc:64 ../lib/modules/pykotaGroup.inc:114 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ ." +msgstr "将要建立的组名,可用字符为: a-z, A-Z, 0-9,及 -或_ " + +#: ../lib/modules/posixGroup.inc:509 +msgid "" +"Group name of the group which should be created. Valid characters are: a-z, " +"A-Z, 0-9 and .-_ . If group name is already used group name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"将要建立的组名,可用字符为:a-z,A-Z,0-9,.-_ .如果该组名存在,会在组名末尾增加下" +"一个可以使用的数字。" + +#: ../lib/modules/pykotaGroup.inc:122 +msgid "Group name that is used for PyKota." +msgstr "在PyKota中使用的组名" + +#: ../lib/modules/freeRadius.inc:96 ../lib/modules/freeRadius.inc:100 +#: ../lib/modules/freeRadius.inc:128 ../lib/modules/freeRadius.inc:154 +#: ../lib/modules/freeRadius.inc:185 ../lib/modules/freeRadius.inc:234 +#: ../lib/modules/freeRadius.inc:277 ../lib/modules/freeRadius.inc:540 +msgid "Group names" +msgstr "组名" + +#: ../lib/modules/groupOfNames.inc:65 +msgid "Group of names" +msgstr "组名" + +#: ../lib/types/gon.inc:75 +msgid "Group of names accounts" +msgstr "帐号的组名" + +#: ../lib/modules/groupOfUniqueNames.inc:42 +msgid "Group of unique names" +msgstr "组的唯一名" + +#: ../lib/modules/posixGroup.inc:442 ../lib/modules/posixGroup.inc:496 +msgid "Group password" +msgstr "组密码" + +#: ../lib/modules/windowsGroup.inc:142 ../lib/modules/windowsGroup.inc:195 +#: ../lib/modules/windowsGroup.inc:262 ../lib/modules/windowsGroup.inc:338 +#: ../lib/modules/windowsGroup.inc:775 +msgid "Group scope" +msgstr "组范围" + +#: ../lib/modules/sambaGroupMapping.inc:382 +#: ../lib/modules/windowsGroup.inc:138 ../lib/modules/windowsGroup.inc:203 +#: ../lib/modules/windowsGroup.inc:261 ../lib/modules/windowsGroup.inc:341 +#: ../lib/modules/windowsGroup.inc:776 +msgid "Group type" +msgstr "组类型" + +#: ../lib/types/group.inc:67 ../lib/modules/posixGroup.inc:401 +#: ../lib/modules/zarafaGroup.inc:119 ../lib/modules/windowsUser.inc:217 +#: ../lib/modules/windowsUser.inc:220 ../lib/modules/windowsUser.inc:442 +#: ../lib/modules/windowsUser.inc:523 ../lib/modules/windowsUser.inc:785 +#: ../lib/modules/windowsUser.inc:1643 ../lib/modules/windowsUser.inc:1671 +#: ../lib/modules/generalInformation.inc:110 +msgid "Groups" +msgstr "组" + +#: ../lib/types/gon.inc:66 ../lib/modules/posixAccount.inc:261 +#: ../lib/modules/posixAccount.inc:364 ../lib/modules/posixAccount.inc:427 +#: ../lib/modules/posixAccount.inc:1599 ../lib/modules/posixAccount.inc:1748 +#: ../lib/modules/posixAccount.inc:1871 ../lib/modules/windowsUser.inc:1033 +#: ../lib/modules/groupOfNamesUser.inc:54 +#: ../lib/modules/groupOfNamesUser.inc:56 +#: ../lib/modules/groupOfNamesUser.inc:60 +#: ../lib/modules/groupOfNamesUser.inc:64 +#: ../lib/modules/groupOfNamesUser.inc:71 +#: ../lib/modules/groupOfNamesUser.inc:324 +#: ../lib/modules/groupOfNamesUser.inc:361 +msgid "Groups of names" +msgstr "组名" + +#: ../lib/modules/dhcp_settings.inc:99 +msgid "H-Node (0x08)" +msgstr "H-节点 (0x08)" + +#: ../templates/config/confmain.php:356 +#: ../lib/modules/selfRegistration.inc:235 +#: ../lib/modules/passwordSelfReset.inc:541 +#: ../lib/modules/passwordSelfReset.inc:561 ../help/help.inc:255 +msgid "HTML format" +msgstr "HTML格式" + +#: ../templates/config/confmain.php:448 +#: ../templates/selfService/adminMain.php:442 ../help/help.inc:126 +msgid "HTTP authentication" +msgstr "HTTP认证" + +#: ../lib/modules/zarafaServer.inc:68 ../lib/modules/zarafaServer.inc:100 +#: ../lib/modules/zarafaServer.inc:135 ../lib/modules/zarafaServer.inc:173 +#: ../lib/modules/zarafaServer.inc:195 ../lib/modules/zarafaServer.inc:354 +msgid "HTTP port" +msgstr "HTTP端口" + +#: ../lib/modules/quota.inc:635 ../lib/modules/systemQuotas.inc:384 +msgid "Hard block" +msgstr "块的硬性限制" + +#: ../lib/modules/quota.inc:119 ../lib/modules/quota.inc:120 +#: ../lib/modules/quota.inc:402 ../lib/modules/quota.inc:508 +#: ../lib/modules/systemQuotas.inc:126 +msgid "Hard block limit" +msgstr "块的硬性限制" + +#: ../lib/modules/quota.inc:637 ../lib/modules/systemQuotas.inc:386 +msgid "Hard inode" +msgstr "节点的硬性限制" + +#: ../lib/modules/quota.inc:142 +msgid "Hard inode (files) limit" +msgstr "节点的硬性限制" + +#: ../lib/modules/quota.inc:141 ../lib/modules/quota.inc:406 +#: ../lib/modules/quota.inc:510 ../lib/modules/systemQuotas.inc:130 +msgid "Hard inode limit" +msgstr "节点硬性限制" + +#: ../lib/modules/generalInformation.inc:104 +msgid "Has subentries" +msgstr "有子条目" + +#: ../lib/modules/sambaSamAccount.inc:555 +msgid "Hawaii" +msgstr "夏威夷" + +#: ../lib/modules/selfRegistration.inc:106 +#: ../lib/modules/selfRegistration.inc:224 +#: ../lib/modules/passwordSelfReset.inc:156 +#: ../lib/modules/passwordSelfReset.inc:567 +msgid "Header" +msgstr "标题" + +#: ../templates/pdfedit/pdfpage.php:452 ../templates/pdfedit/pdfpage.php:591 +#: ../templates/pdfedit/pdfpage.php:598 +msgid "Headline" +msgstr "标题" + +#: ../lib/modules/heimdalKerberos.inc:235 +msgid "Heimdal Kerberos password change command" +msgstr "Heimdal Kerberos密码修改命令" + +#: ../templates/main_header.php:140 ../lib/modules.inc:667 +msgid "Help" +msgstr "帮助" + +#: ../lib/modules/customFields.inc:96 ../lib/modules/customFields.inc:1716 +msgid "Help text" +msgstr "帮助文本" + +#: ../lib/tools/schemaBrowser.inc:53 +msgid "Here you can browse LDAP object classes and attributes." +msgstr "这是你可浏览的LDAP对象类和属性." + +#: ../lib/modules/sambaSamAccount.inc:392 +msgid "Here you can change the settings for the terminal server access." +msgstr "这里可以改变终端服务访问的设置。" + +#: ../lib/selfService.inc:387 +msgid "Here you can change your personal settings." +msgstr "这里您可以修改用户设置." + +#: ../templates/masscreate.php:130 +msgid "Here you can create multiple accounts by providing a CSV file." +msgstr "您可以上传CSV文件来建立多个帐号" + +#: ../lib/modules/dhcp_settings.inc:198 +msgid "Here you can enter a description for this DHCP entry." +msgstr "可以输入此DHCP条目的描述" + +#: ../lib/modules/nisnetgroup.inc:88 ../lib/modules/organizationalRole.inc:90 +#: ../lib/modules/groupOfNames.inc:90 +msgid "Here you can enter a description for this group." +msgstr "在这输入组的描述." + +#: ../lib/modules/sudoRole.inc:71 +msgid "Here you can enter a description for this role." +msgstr "在这输入这个角色的描述." + +#: ../lib/modules/pykotaPrinter.inc:129 ../lib/modules/zarafaContact.inc:92 +#: ../lib/modules/posixGroup.inc:529 ../lib/modules/zarafaUser.inc:141 +#: ../lib/modules/sambaGroupMapping.inc:171 ../lib/modules/nisnetgroup.inc:105 +#: ../lib/modules/organizationalRole.inc:102 +#: ../lib/modules/groupOfNames.inc:114 ../lib/modules/nisMailAlias.inc:94 +msgid "" +"Here you can enter a filter value. Only entries which contain the filter " +"text will be shown." +msgstr "这里您可以输入过滤条件,只显示符合过滤条件的条目." + +#: ../lib/modules/posixAccount.inc:470 ../lib/modules/groupOfNamesUser.inc:65 +msgid "" +"Here you can enter a list of additional group memberships. The group names " +"are separated by commas." +msgstr "您可以在此输入附加的组成员,组名以逗号分隔." + +#: ../lib/modules/organizationalRoleUser.inc:65 +msgid "" +"Here you can enter a list of roles. The role names are separated by commas." +msgstr "您可以在此输入角色列表,以逗号分隔." + +#: ../lib/modules/device.inc:66 +msgid "Here you can enter a serial number for this device." +msgstr "在这输入这个设备的序列号." + +#: ../lib/modules/windowsUser.inc:181 ../lib/modules/windowsUser.inc:185 +msgid "Here you can enter additional web sites for the user." +msgstr "在这可以为用户输入一个附加的web网站." + +#: ../help/help.inc:215 +msgid "" +"Here you can enter an alternative mail address for the password. To use the " +"user's primary email address please leave the field blank." +msgstr "" +"这儿你可以为密码事宜输入一个其他的邮箱地址。如果使用用户的主要邮箱地址,请留" +"空。" + +#: ../lib/modules/customFields.inc:81 +msgid "" +"Here you can enter one or more object classes (separated by comma). This " +"will allow you to add/remove the group's attributes including their object " +"classes." +msgstr "" +"在这输入一个或多个对象类(以逗号分隔),这将可以增加或删除这些对象类的组属性." + +#: ../lib/modules/inetOrgPerson.inc:823 ../lib/modules/inetOrgPerson.inc:827 +msgid "Here you can enter the user's department." +msgstr "这里可以输入用户的部门." + +#: ../lib/modules/zarafaUser.inc:156 +msgid "Here you can explicitly enable and disable Zarafa features." +msgstr "你可以在这里打开或关闭Zarafa功能." + +#: ../help/help.inc:213 +msgid "" +"Here you can export PDF structures to other server profiles (overwrite " +"existing). You may also export a structure to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"structure with this name." +msgstr "" +"可以导出PDF架构到其他服务器配置文件(覆盖已有).也可以导出一个架构到全局模板,将" +"这个架构拷贝到所有还不存在这个名字的服务器模板." + +#: ../help/help.inc:195 +msgid "" +"Here you can export account profiles to other server profiles (overwrite " +"existing). You may also export a profile to the global templates. In this " +"case it will always be copied to all server profiles that do not yet have a " +"profile with this name." +msgstr "" +"可以导出账号配置到其他服务器配置文件(覆盖已有).也可以输出一个配置文件到全局模" +"板,将这个配置文件拷贝到所有还不存在这个名字的服务器模板." + +#: ../help/help.inc:211 +msgid "" +"Here you can import PDF structures from other server profiles (overwrite " +"existing)." +msgstr "可以导入其他服务器配置文件的PDF架构(覆盖已有)." + +#: ../help/help.inc:193 +msgid "" +"Here you can import account profiles from other server profiles (overwrite " +"existing)." +msgstr "可以导入其他服务器配置文件的账号配置文件(覆盖已有)." + +#: ../help/help.inc:169 +msgid "" +"Here you can input simple filter expressions (e.g. 'value' or 'v*'). The " +"filter is case-sensitive." +msgstr "在此输入简单的过滤语法(例如'value'或'v*'),系统在过滤时区分大小写." + +#: ../help/help.inc:199 +msgid "" +"Here you can load an account profile to set default settings for your " +"account. The \"default\" profile is automatically loaded for new accounts." +msgstr "" +"您可以指定一个帐号配置文件做为缺省的配置文件,缺省的配置文件会自动做为新帐号的" +"配置文件." + +#: ../lib/tools/profileEditor.inc:53 +msgid "Here you can manage your account profiles." +msgstr "您可以管理您的帐号配置文件." + +#: ../help/help.inc:181 +msgid "Here you can overwrite the display name for this account type." +msgstr "这里可以设置一个新的这个账号类型显示的名字" + +#: ../help/help.inc:201 +msgid "" +"Here you can select a PDF structure and export the account to a PDF file." +msgstr "您可以选择一个PDF结构,您可以在此選擇一個PDF架構,然後將帳號滙出成PDF檔." + +#: ../help/help.inc:151 +msgid "" +"Here you can select where LAM should save its log messages. System logging " +"will go to Syslog on Unix systems and event log on Windows. You can also " +"select an extra file." +msgstr "" +"您在此选择系统日志的存入位置,系统日志记录可以记录在UNIX 系统或WINDOWS 日志系" +"统,您也可以选择文件" + +#: ../help/help.inc:112 +msgid "" +"Here you can select which plugins you want to use for account management." +msgstr "在此您可以选择一些选择帐号管理的插件" + +#: ../lib/modules/customFields.inc:169 +msgid "Here you can set a custom display name for this module." +msgstr "设置模块的自定义显示名字" + +#: ../lib/modules/customFields.inc:97 +msgid "Here you can set a describing text for your custom field." +msgstr "在这输入自定义域的描述." + +#: ../help/help.inc:125 +msgid "" +"Here you can set a limit for LDAP searches. This will restrict the number of " +"results for LDAP searches. Please use this if LAM's LDAP queries produce too " +"much load." +msgstr "" +"设置LDAP查询结果条目数量的限制。如果服务器查询负载较重,可以使用这个设置来限" +"制LDAP查询返回结果的条目数量。" + +#: ../lib/modules/customFields.inc:173 +msgid "Here you can set the URL to a custom icon (32x32px) for this module." +msgstr "设置这个模块图标 (32x32像素)的URL" + +#: ../help/help.inc:237 +msgid "" +"Here you can specify additional CSS links to change the layout of the self " +"service pages. This is useful to adapt them to your corporate design. Please " +"enter one link per line." +msgstr "" +"这里可以指定附加的CSS链接来改变自助服务页的布局.这样做有利于采用公司的统一设" +"计.每行添加一个CSS连接." + +#: ../help/help.inc:155 +msgid "" +"Here you can specify minimum requirements for passwords. The character " +"classes are: lowercase, uppercase, numeric and symbols." +msgstr "在此指定用户密码的最小需求.字符类别包括:小写,大写,数字和标点符号." + +#: ../lib/modules/nisnetgroup.inc:92 +msgid "" +"Here you can specify subgroups which are included in this NIS netgroup. All " +"members of the subgroups will be treated as members of this group." +msgstr "" +"这里可以指定一个包含在NIS网络组中的分组.此分组中所有用户都会认同为这个网络组" +"中的成员." + +#: ../help/help.inc:129 +msgid "" +"Here you can specify the DN and password of the bind user that will be used " +"for the LDAP search. This is required if your LDAP server does not allow " +"anonymous access." +msgstr "" +"输入搜索LDAP时所需要的DN和绑定用户的密码.如果LDAP不支持匿名访问,这些信息是必" +"须的." + +#: ../lib/modules/hostObject.inc:80 +msgid "" +"Here you can specify the list of host names where this account has login " +"privileges. The wildcard \"*\" represents all hosts. You may also use \"!\" " +"in front of a host name to deny access to a host." +msgstr "" +"在这儿您可以指定这个账号有登录权的主机列表.通配符\"*\"代表所有的主机.您可以在" +"主机名前加\"!\"来拒绝对主机的访问." + +#: ../lib/modules/sambaDomain.inc:102 +msgid "" +"Here you can specify the minimum number of characters for a user password." +msgstr "在此指定用户密码的最小长度." + +#: ../templates/lists/changePassword.php:359 +msgid "Here you can specify the new password yourself." +msgstr "这里可以设置自己的新密码。" + +#: ../lib/modules/sambaSamAccount.inc:383 +msgid "Here you can specify the shadowing mode." +msgstr "这里可以指定遮蔽(shadow)模型。" + +#: ../lib/tools/tests.inc:53 +msgid "Here you can test if certain LAM features work on your installation." +msgstr "测试您安装的系统功能是否正确." + +#: ../lib/modules/customFields.inc:165 +msgid "Here you can upload a new file." +msgstr "您可以上传一个新的文件. " + +#: ../templates/config/conftypes.php:298 +#: ../lib/types/zarafaAddressListType.inc:95 +#: ../lib/types/zarafaDynamicGroupType.inc:96 +#: ../lib/modules/zarafaDynamicGroup.inc:79 +#: ../lib/modules/zarafaDynamicGroup.inc:136 +#: ../lib/modules/zarafaDynamicGroup.inc:169 +#: ../lib/modules/zarafaDynamicGroup.inc:273 +#: ../lib/modules/zarafaDynamicGroup.inc:461 +#: ../lib/modules/zarafaContact.inc:71 ../lib/modules/zarafaContact.inc:164 +#: ../lib/modules/zarafaContact.inc:172 ../lib/modules/zarafaContact.inc:247 +#: ../lib/modules/zarafaContact.inc:572 ../lib/modules/zarafaGroup.inc:85 +#: ../lib/modules/zarafaGroup.inc:146 ../lib/modules/zarafaGroup.inc:196 +#: ../lib/modules/zarafaGroup.inc:294 ../lib/modules/zarafaGroup.inc:665 +#: ../lib/modules/zarafaAddressList.inc:67 +#: ../lib/modules/zarafaAddressList.inc:112 +#: ../lib/modules/zarafaAddressList.inc:143 +#: ../lib/modules/zarafaAddressList.inc:214 +#: ../lib/modules/zarafaAddressList.inc:343 ../lib/modules/zarafaUser.inc:80 +#: ../lib/modules/zarafaUser.inc:290 ../lib/modules/zarafaUser.inc:339 +#: ../lib/modules/zarafaUser.inc:367 ../lib/modules/zarafaUser.inc:577 +#: ../lib/modules/zarafaUser.inc:1274 ../help/help.inc:174 +msgid "Hidden" +msgstr "隐藏" + +#: ../help/help.inc:175 +msgid "" +"Hidden account types will not show up in LAM. This is useful if you want to " +"display e.g. only groups but still need to manage their members." +msgstr "" +"在LAM中,隐藏的账户类型将不会显示.如果你要只显示群组,但仍然需要管理他们的成" +"员。这是非常有用的," + +#: ../lib/modules/nisMailAliasUser.inc:104 +#: ../lib/modules/nisMailAliasUser.inc:563 +#: ../lib/modules/asteriskAccount.inc:243 +#: ../lib/modules/asteriskAccount.inc:1237 ../lib/modules/qmailUser.inc:102 +#: ../lib/modules/qmailUser.inc:195 ../lib/modules/zarafaGroup.inc:108 +#: ../lib/modules/zarafaGroup.inc:134 ../lib/modules/sambaSamAccount.inc:400 +#: ../lib/modules/sambaSamAccount.inc:590 ../lib/modules/posixAccount.inc:252 +#: ../lib/modules/posixAccount.inc:441 ../lib/modules/zarafaUser.inc:132 +#: ../lib/modules/zarafaUser.inc:1781 ../lib/modules/windowsUser.inc:236 +#: ../lib/modules/windowsUser.inc:561 ../lib/modules/inetOrgPerson.inc:830 +#: ../lib/modules/inetOrgPerson.inc:3572 ../lib/modules/freeRadius.inc:112 +#: ../lib/modules/freeRadius.inc:118 ../lib/modules/zarafaServer.inc:88 +#: ../lib/modules/zarafaServer.inc:159 ../lib/modules/qmailGroup.inc:68 +#: ../lib/modules/qmailGroup.inc:119 ../lib/modules/organizationalRole.inc:81 +#: ../lib/modules/organizationalRole.inc:159 +#: ../lib/modules/passwordSelfReset.inc:160 +#: ../lib/modules/passwordSelfReset.inc:209 +#: ../lib/modules/windowsGroup.inc:110 ../lib/modules/windowsGroup.inc:161 +#: ../lib/modules/groupOfNames.inc:81 ../lib/modules/groupOfNames.inc:193 +msgid "Hidden options" +msgstr "隐藏的选项" + +#: ../templates/config/confmain.php:375 +msgid "Hidden tools" +msgstr "隐藏的工具" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1115 +msgid "Hide" +msgstr "隐藏" + +#: ../lib/modules/customScripts.inc:88 ../lib/modules/customScripts.inc:102 +#: ../lib/modules/customScripts.inc:112 +msgid "Hide command in messages" +msgstr "在消息中隐藏命令." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1116 +msgid "Hide internal attributes" +msgstr "隐藏内部属性" + +#: ../lib/modules/customScripts.inc:92 ../lib/modules/customScripts.inc:104 +msgid "Hide tab" +msgstr "隐藏标签" + +#: ../templates/3rdParty/pla/lib/page.php:407 +msgid "Hide/Unhide the tree" +msgstr "隐藏/显示目录树" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:58 +msgid "Hint" +msgstr "提示" + +#: ../templates/masscreate.php:249 +msgid "" +"Hint: Format all cells as text in your spreadsheet program and turn off auto " +"correction." +msgstr "提示:将电子表格的格式设定为文字,然后关闭自动更正功能" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1005 +msgid "Hint: To delete an attribute, empty the text field and click save." +msgstr "提示:要删除一个属性,先清空文本区然后保存." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1342 +msgid "" +"Hint: You must choose exactly one structural object class (shown in bold " +"above)" +msgstr "提示:必须选择精确的结构化对象类(上述加粗项)" + +#: ../lib/modules/posixAccount.inc:535 ../lib/modules/windowsUser.inc:218 +#: ../lib/modules/groupOfNamesUser.inc:61 +msgid "Hold the CTRL-key to (de)select multiple groups." +msgstr "按住CTRL键可以多选组." + +#: ../lib/modules/organizationalRoleUser.inc:61 +msgid "Hold the CTRL-key to (de)select multiple roles." +msgstr "按住CTRL键可以多选角色." + +#: ../lib/types/user.inc:98 ../lib/modules/sambaSamAccount.inc:231 +#: ../lib/modules/sambaSamAccount.inc:355 +#: ../lib/modules/sambaSamAccount.inc:1506 +#: ../lib/modules/sambaSamAccount.inc:1923 ../lib/modules/posixAccount.inc:100 +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:103 +#: ../lib/modules/posixAccount.inc:310 ../lib/modules/posixAccount.inc:416 +#: ../lib/modules/posixAccount.inc:473 ../lib/modules/posixAccount.inc:477 +#: ../lib/modules/posixAccount.inc:481 ../lib/modules/posixAccount.inc:518 +#: ../lib/modules/posixAccount.inc:1199 ../lib/modules/posixAccount.inc:1459 +#: ../lib/modules/posixAccount.inc:1655 ../lib/modules/posixAccount.inc:1755 +#: ../lib/modules/posixAccount.inc:1859 ../lib/modules/windowsUser.inc:247 +#: ../lib/modules/windowsUser.inc:436 ../lib/modules/windowsUser.inc:479 +#: ../lib/modules/windowsUser.inc:526 ../lib/modules/windowsUser.inc:618 +#: ../lib/modules/windowsUser.inc:768 ../lib/modules/windowsUser.inc:1637 +msgid "Home directory" +msgstr "个人目录" + +#: ../lib/modules/posixAccount.inc:103 +#, php-format +msgid "" +"Home directory changed. To keep home directory you have to run the following " +"command as root: 'mv %s %s'" +msgstr "" +"使用者目录已经改变,要操持一致需要在系统以ROOT用户运行如下命令:'mv %s %s'" + +#: ../lib/modules/sambaSamAccount.inc:215 +#: ../lib/modules/sambaSamAccount.inc:232 +#: ../lib/modules/sambaSamAccount.inc:303 +#: ../lib/modules/sambaSamAccount.inc:487 +#: ../lib/modules/sambaSamAccount.inc:595 +#: ../lib/modules/sambaSamAccount.inc:1208 +#: ../lib/modules/sambaSamAccount.inc:1514 +#: ../lib/modules/sambaSamAccount.inc:1757 +#: ../lib/modules/sambaSamAccount.inc:1908 +#: ../lib/modules/sambaSamAccount.inc:1924 ../lib/modules/windowsUser.inc:244 +#: ../lib/modules/windowsUser.inc:430 ../lib/modules/windowsUser.inc:525 +#: ../lib/modules/windowsUser.inc:766 ../lib/modules/windowsUser.inc:1638 +msgid "Home drive" +msgstr "个人驱动器" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:95 +#: ../lib/modules/sambaSamAccount.inc:218 +#: ../lib/modules/sambaSamAccount.inc:306 +#: ../lib/modules/sambaSamAccount.inc:495 +#: ../lib/modules/sambaSamAccount.inc:597 +#: ../lib/modules/sambaSamAccount.inc:1216 +#: ../lib/modules/sambaSamAccount.inc:1761 +#: ../lib/modules/sambaSamAccount.inc:1907 +msgid "Home path" +msgstr "个人目录路径" + +#: ../lib/modules/sambaSamAccount.inc:94 ../lib/modules/sambaSamAccount.inc:96 +msgid "Home path is invalid." +msgstr "个人目录路径无效" + +#: ../lib/modules/zarafaUser.inc:129 +msgid "Home server for the user." +msgstr "用户的宿主服务器." + +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:163 +#: ../lib/modules/inetOrgPerson.inc:428 ../lib/modules/inetOrgPerson.inc:586 +#: ../lib/modules/inetOrgPerson.inc:774 ../lib/modules/inetOrgPerson.inc:778 +#: ../lib/modules/inetOrgPerson.inc:1415 ../lib/modules/inetOrgPerson.inc:1418 +#: ../lib/modules/inetOrgPerson.inc:1934 ../lib/modules/inetOrgPerson.inc:2536 +#: ../lib/modules/inetOrgPerson.inc:3598 ../lib/modules/inetOrgPerson.inc:3651 +msgid "Home telephone number" +msgstr "宅电" + +#: ../lib/modules/posixAccount.inc:100 ../lib/modules/posixAccount.inc:102 +#: ../lib/modules/windowsUser.inc:618 ../lib/modules/windowsUser.inc:619 +msgid "Homedirectory contains invalid characters." +msgstr "个人目录包含非法字符" + +#: ../lib/types/sudo.inc:79 ../lib/modules/asteriskAccount.inc:107 +#: ../lib/modules/asteriskAccount.inc:254 +#: ../lib/modules/asteriskAccount.inc:268 +#: ../lib/modules/asteriskAccount.inc:318 +#: ../lib/modules/asteriskAccount.inc:591 +#: ../lib/modules/asteriskAccount.inc:984 ../lib/modules/nisnetgroup.inc:217 +#: ../lib/modules/nisnetgroup.inc:585 ../lib/modules/fixed_ip.inc:580 +#: ../lib/modules/hostObject.inc:145 +msgid "Host" +msgstr "主机" + +#: ../lib/types/host.inc:62 +msgid "Host accounts (e.g. Samba)" +msgstr "主机帐号(比如 Samba)" + +#: ../lib/types/host.inc:193 +#, php-format +msgid "Host count: %s" +msgstr "主机总计: %s" + +#: ../lib/types/host.inc:94 +msgid "Host description" +msgstr "主机描述" + +#: ../lib/modules/account.inc:96 ../lib/modules/posixAccount.inc:549 +#: ../lib/modules/posixAccount.inc:557 +msgid "Host description. If left empty host name will be used." +msgstr "主机描述.如果留空会使用主机名." + +#: ../lib/modules/hostObject.inc:91 ../lib/modules/hostObject.inc:98 +#: ../lib/modules/hostObject.inc:217 +msgid "Host list" +msgstr "主机列表" + +#: ../lib/types/host.inc:91 ../lib/types/host.inc:92 ../lib/types/bind.inc:77 +#: ../lib/modules/account.inc:91 ../lib/modules/account.inc:212 +#: ../lib/modules/windowsHost.inc:74 ../lib/modules/windowsHost.inc:94 +#: ../lib/modules/windowsHost.inc:119 ../lib/modules/windowsHost.inc:131 +#: ../lib/modules/windowsHost.inc:142 ../lib/modules/windowsHost.inc:288 +#: ../lib/modules/posixAccount.inc:115 ../lib/modules/posixAccount.inc:116 +#: ../lib/modules/posixAccount.inc:118 ../lib/modules/posixAccount.inc:375 +#: ../lib/modules/posixAccount.inc:406 ../lib/modules/posixAccount.inc:544 +#: ../lib/modules/posixAccount.inc:1422 ../lib/modules/posixAccount.inc:1844 +#: ../lib/modules/bindDLZ.inc:88 ../lib/modules/bindDLZ.inc:147 +#: ../lib/modules/bindDLZ.inc:151 ../lib/modules/bindDLZ.inc:247 +#: ../lib/modules/bindDLZ.inc:301 ../lib/modules/bindDLZ.inc:417 +#: ../lib/modules/bindDLZ.inc:477 ../lib/modules/bindDLZ.inc:504 +#: ../lib/modules/bindDLZ.inc:549 ../lib/modules/bindDLZ.inc:553 +#: ../lib/modules/bindDLZ.inc:757 ../lib/modules/bindDLZ.inc:1471 +#: ../lib/modules/bindDLZ.inc:1499 ../lib/modules/nisnetgroup.inc:153 +#: ../lib/modules/nisnetgroup.inc:481 +msgid "Host name" +msgstr "主机名" + +#: ../lib/modules/posixAccount.inc:122 +msgid "Host name already exists!" +msgstr "主机名已经存在!" + +#: ../lib/modules/windowsHost.inc:131 ../lib/modules/windowsHost.inc:132 +#: ../lib/modules/posixAccount.inc:116 ../lib/modules/posixAccount.inc:120 +#: ../lib/modules/nisnetgroup.inc:153 +msgid "" +"Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "主机名包含非法字符,合法字符包括 a-z, A-Z, 0-9 和 .-_" + +#: ../lib/modules/posixAccount.inc:118 +msgid "Host name in use. Selected next free host name." +msgstr "主机名已被使用, 请选择其它的主机名." + +#: ../lib/modules/sambaSamAccount.inc:1098 +msgid "Host name must end with $!" +msgstr "主机名必须使用$结尾!" + +#: ../lib/modules/account.inc:92 ../lib/modules/posixAccount.inc:545 +msgid "" +"Host name of the host which should be created. Valid characters are: a-z,A-" +"Z,0-9, .-_$. Host names are always ending with $. If last character is not $ " +"it will be added. If host name is already used host name will be expanded " +"with a number. The next free number will be used." +msgstr "" +"将要建立的主机名.合法字符为:a-z,A-Z,0-9,_$..主机名总是以$结尾.如果最后一个字" +"符不是$,会自动填加.如果主机名已经存在,会在主机名后自动增加下一个可用的数字." + +#: ../lib/types/host.inc:53 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:96 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:227 ../lib/modules/sudoRole.inc:78 +#: ../lib/modules/sudoRole.inc:103 ../lib/modules/sudoRole.inc:165 +#: ../lib/modules/sudoRole.inc:217 ../lib/modules/sudoRole.inc:229 +#: ../lib/modules/sudoRole.inc:343 ../lib/modules/sudoRole.inc:807 +#: ../lib/modules/fixed_ip.inc:80 ../lib/modules/hostObject.inc:69 +#: ../lib/modules/hostObject.inc:79 +msgid "Hosts" +msgstr "主机" + +#: ../lib/modules/qmailUser.inc:352 +msgid "I am out of office." +msgstr "我辞职了." + +#: ../lib/modules/posixGroup.inc:597 ../lib/modules/posixAccount.inc:106 +#: ../lib/modules/posixAccount.inc:1169 +msgid "ID is already in use" +msgstr "ID已经被使用" + +#: ../lib/modules/posixGroup.inc:595 ../lib/modules/posixGroup.inc:596 +#: ../lib/modules/posixGroup.inc:597 ../lib/modules/posixGroup.inc:719 +#: ../lib/modules/posixAccount.inc:104 ../lib/modules/posixAccount.inc:105 +#: ../lib/modules/posixAccount.inc:106 ../lib/modules/posixAccount.inc:1160 +#: ../lib/modules/posixAccount.inc:1165 ../lib/modules/posixAccount.inc:1169 +msgid "ID-Number" +msgstr "ID号" + +#: ../lib/modules/zarafaUser.inc:299 ../lib/modules/zarafaUser.inc:642 +#: ../lib/modules/zarafaUser.inc:1331 +msgid "IMAP" +msgstr "IMAP" + +#: ../lib/modules/imapAccess.inc:86 ../lib/modules/imapAccess.inc:124 +msgid "IMAP admin user" +msgstr "IMAP管理员用户" + +#: ../lib/modules/imapAccess.inc:89 ../lib/modules/imapAccess.inc:131 +msgid "IMAP password input" +msgstr "输入IMAP 密码" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ipHost.inc:55 +#: ../lib/modules/ipHost.inc:65 ../lib/modules/ipHost.inc:128 +#: ../lib/modules/asteriskAccount.inc:227 +#: ../lib/modules/asteriskAccount.inc:295 +#: ../lib/modules/asteriskAccount.inc:522 +#: ../lib/modules/asteriskAccount.inc:746 +#: ../lib/modules/asteriskAccount.inc:1011 +#: ../lib/modules/asteriskAccount.inc:1291 ../lib/modules/bindDLZ.inc:92 +#: ../lib/modules/bindDLZ.inc:96 ../lib/modules/bindDLZ.inc:255 +#: ../lib/modules/bindDLZ.inc:495 ../lib/modules/bindDLZ.inc:652 +#: ../lib/modules/bindDLZ.inc:1479 ../lib/modules/freeRadius.inc:84 +#: ../lib/modules/freeRadius.inc:122 ../lib/modules/freeRadius.inc:193 +#: ../lib/modules/freeRadius.inc:225 ../lib/modules/freeRadius.inc:281 +#: ../lib/modules/freeRadius.inc:537 ../lib/modules/fixed_ip.inc:106 +#: ../lib/modules/fixed_ip.inc:421 ../lib/modules/fixed_ip.inc:741 +msgid "IP address" +msgstr "IP地址" + +#: ../lib/modules/ddns.inc:98 ../lib/modules/ddns.inc:112 +#: ../lib/modules/ddns.inc:121 ../lib/modules/ddns.inc:381 +#: ../lib/modules/ddns.inc:424 +msgid "IP address of the DNS server" +msgstr "DNS服务器IP地址" + +#: ../lib/modules/asteriskAccount.inc:228 +msgid "IP address of the peer. Valid only for realtime peers." +msgstr "此端的IP地址.只有realtime端才是合法的." + +#: ../lib/modules/asteriskAccount.inc:236 +msgid "IP address or domain name of the registration server." +msgstr "注册服务器的IP地址或域名" + +#: ../lib/modules/ipHost.inc:69 ../lib/modules/ipHost.inc:84 +#: ../lib/modules/ipHost.inc:104 ../lib/modules/ipHost.inc:251 +msgid "IP addresses" +msgstr "IP地址" + +#: ../lib/modules/bindDLZ.inc:649 +msgid "IP addresses (\"A/AAAA\" records)" +msgstr "IP地址 (\"A/AAAA\" 记录)" + +#: ../lib/modules/fixed_ip.inc:119 +msgid "IP list" +msgstr "IP列表" + +#: ../lib/modules/customFields.inc:514 +msgid "Icon" +msgstr "图标" + +#: ../lib/modules/passwordSelfReset.inc:144 +#: ../lib/modules/passwordSelfReset.inc:506 +msgid "Identification method" +msgstr "标识方法" + +#: ../templates/masscreate.php:298 ../templates/masscreate.php:372 +msgid "Identifier" +msgstr "标识" + +#: ../lib/modules/sambaSamAccount.inc:239 +#: ../lib/modules/sambaSamAccount.inc:1532 +#: ../lib/modules/sambaSamAccount.inc:1935 +msgid "Idle time limit" +msgstr "空闲时间限制" + +#: ../lib/modules/freeRadius.inc:108 ../lib/modules/freeRadius.inc:132 +#: ../lib/modules/freeRadius.inc:157 ../lib/modules/freeRadius.inc:217 +#: ../lib/modules/freeRadius.inc:240 ../lib/modules/freeRadius.inc:289 +#: ../lib/modules/freeRadius.inc:541 +msgid "Idle timeout" +msgstr "空闲超时" + +#: ../lib/modules/qmailUser.inc:256 +msgid "" +"If account status is set to deleted, the earliest date when the mail message " +"store including all remaining content will be deleted from the filesystem." +msgstr "如果账号状态设置为删除,以前的邮件,包括邮件内容都会被从文件系统删除." + +#: ../lib/modules/customFields.inc:177 +msgid "" +"If activated then LAM will show an accordion view if there is more than one " +"group per account type." +msgstr "如果激活此项,如果帐号类型有多个组,LAM将显示成堆叠式。" + +#: ../lib/modules/ppolicyUser.inc:60 +msgid "" +"If activated then the user is forced to change his password at the next " +"login." +msgstr "如果您选中此项,用户在下次登录时必须修改密码。" + +#: ../lib/modules/sambaSamAccount.inc:269 +msgid "If checked Unix password will also be used as Samba password." +msgstr "如果选中将使用UNIX密码作为SAMBA密码." + +#: ../lib/modules/posixAccount.inc:527 +msgid "" +"If checked account will be deactivated by putting a \"!\" before the " +"encrypted password." +msgstr "在密码前加\"!\",此帐号会被停用." + +#: ../lib/modules/sambaSamAccount.inc:275 +msgid "If checked no password will be used." +msgstr "如果选中,不需要密码." + +#: ../lib/modules/windowsUser.inc:199 +msgid "If checked password does not expire." +msgstr "如果选中,密码不会过期." + +#: ../lib/modules/sambaSamAccount.inc:281 +msgid "If checked password does not expire. (Setting X-Flag)" +msgstr "密码不过期.(设置X标志)" + +#: ../lib/modules/windowsUser.inc:196 +msgid "" +"If checked then the account is locked. You may only unlock accounts but not " +"lock them." +msgstr "如果选中,用户被锁定。你仅能解锁但不能锁定。" + +#: ../lib/modules/windowsUser.inc:193 +msgid "If checked then the account will be deactivated." +msgstr "如果选中,用户账号将被停用." + +#: ../lib/modules/sambaSamAccount.inc:287 +msgid "If checked then the account will be deactivated. (Setting D-Flag)" +msgstr "密码停用(设置D标志)" + +#: ../lib/modules/sambaSamAccount.inc:290 +msgid "" +"If checked then the account will be locked (setting L-Flag). You usually " +"want to use this setting to unlock user accounts which were locked because " +"of failed login attempts." +msgstr "帐号被锁定(设置L标志).多次登录失败后帐号会被锁定.在此可以解除锁定." + +#: ../help/help.inc:177 +msgid "" +"If checked then the user will not be able to create new entries of this " +"account type." +msgstr "如果选中,用户不能建立新的帐户条目。" + +#: ../help/help.inc:179 +msgid "" +"If checked then the user will not be able to delete entries of this account " +"type." +msgstr "如果选中,用户不能删除账号类型这个条目。" + +#: ../lib/modules/posixGroup.inc:481 +msgid "" +"If empty GID number will be generated automaticly depending on your " +"configuration settings." +msgstr "如果为空,视配置而定,GID号自动产生." + +#: ../lib/modules/qmailUser.inc:236 +msgid "If empty GID number will be generated automaticly." +msgstr "如果为空,GID号会自动生成." + +#: ../lib/modules/qmailUser.inc:232 ../lib/modules/posixAccount.inc:462 +msgid "If empty UID number will be generated automaticly." +msgstr "如果为空,UID号会自动生成." + +#: ../lib/modules/ppolicy.inc:125 +msgid "" +"If enabled the user will not be allowed to login after there have been a " +"specified number of consecutive failed login attempts." +msgstr "此项如果设置,用户在连续特定数量的登录失败后,将不允许再登录。" + +#: ../help/help.inc:127 +msgid "" +"If enabled then LAM will use user and password that is provided by the web " +"server via HTTP authentication." +msgstr "如果打开,LAM将使用通过HTTP认证的web服务器提供的用户名和密码." + +#: ../help/help.inc:104 +msgid "" +"If enabled then the default language will be enforced and cannot be chosen " +"by the user." +msgstr "如果打个这个选项,缺省语言是强制性的,用户不能改变." + +#: ../lib/modules/ppolicy.inc:129 +msgid "" +"If enabled users must change their passwords when they first login after a " +"password is set or reset by the administrator." +msgstr "" +"如果此项设置,用户在设置密码或管理员复位密码后第一次登录时,必须要更改密码。" + +#: ../lib/modules/asteriskAccount.inc:216 +msgid "" +"If registration context is specified, Asterisk will dynamically create and " +"destroy a NoOp priority 1 extension for a given peer who registers or " +"unregisters with Asterisk." +msgstr "" +"如果指定了注册语境,Asterisk将为一个特定端在注册或注销时,动态地建立或销毁NoOP" +"优先级1扩展." + +#: ../lib/modules/sambaDomain.inc:110 +msgid "If set then users need to login to change their password." +msgstr "如果设置,用户需要密码才能登录." + +#: ../lib/modules/sambaSamAccount.inc:272 +msgid "If set to \"true\" Unix password will also be used as Samba password." +msgstr "如果设为\"true\",会用UNIX用户密码做为SAMBA密码." + +#: ../lib/modules/sambaSamAccount.inc:293 +msgid "If set to \"true\" account will be deactivated. (Setting D-Flag)" +msgstr "如果设为\"true\",帐号会被停用(设置D标志)." + +#: ../lib/modules/sambaSamAccount.inc:278 +msgid "If set to \"true\" no password will be used." +msgstr "如果设为\"true\",则不需要密码." + +#: ../lib/modules/sambaSamAccount.inc:284 +msgid "If set to \"true\" password does not expire. (Setting X-Flag)" +msgstr "如果设为\"true\",密码不会过期(设为X标志)." + +#: ../lib/modules/qmailGroup.inc:197 +msgid "" +"If set to true then all incomming mails needs to come from a member of the " +"list." +msgstr "此处如果设置为真,所有进来的邮件都需要来自于列表中的用户" + +#: ../lib/modules/customFields.inc:125 +msgid "" +"If the LDAP attribute has no value then the checkbox is set to this value." +msgstr "如果LDAP属性值为空,则此复选框被设为此值." + +#: ../lib/modules/zarafaUser.inc:97 +msgid "" +"If the mailbox size reaches the soft quota limit, the user will not be able " +"to send email until the size of the mailbox is reduced." +msgstr "如果邮箱达到软限额极限,用户将不能发送邮件,除非邮箱占用空间减小." + +#: ../lib/modules/passwordSelfReset.inc:149 +msgid "" +"If the user has a Samba 3 extension then the Samba password will also be " +"set. Otherwise, no action is taken." +msgstr "" +"如果用户有一个Samba 3 扩展模块, 会设置Samba的密码. 如果没有,就不会有任何动作." + +#: ../lib/modules/windowsUser.inc:145 ../lib/modules/windowsUser.inc:149 +msgid "If the user has multiple telephone numbers then please enter it here." +msgstr "如果用户有多个电话号码,可以在这儿输入." + +#: ../lib/modules/pykotaPrinter.inc:120 ../lib/modules/pykotaPrinter.inc:124 +msgid "" +"If this entry should be a printer group then you can set the member names " +"here." +msgstr "如果本条目是个打印机组,你可以在这里设置成员名单." + +#: ../lib/modules/qmailGroup.inc:229 +msgid "" +"If this is set to true then an incomming mail needs to be approved by the " +"sender." +msgstr "此处如果设置为真,所有进来的邮件必须被发送者批准" + +#: ../lib/modules/qmailGroup.inc:144 ../lib/modules/qmailGroup.inc:148 +msgid "" +"If you enter one or more email addresses then mail delivery errors are " +"forwarded to these addresses instead of the sender of the original mail." +msgstr "" +"如果你设置一个或多个邮件地址,邮件发送错误信息将会被转发到这些邮件地址中,以替" +"代原来邮件中的发件人地址." + +#: ../lib/modules/sambaSamAccount.inc:332 +msgid "" +"If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "如果留空,LAM会用如下算法:uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../lib/modules/zarafaServer.inc:85 +msgid "" +"If you run Zarafa behind a reverse proxy then you can specify the server URL " +"here (e.g. \"https://zproxy.example.com:237/z1\")." +msgstr "" +"如果为Zarafa使用了反向代理,则在此指定服务器的URL.(比如:\"https://zproxy." +"example.com:237/z1\")." + +#: ../lib/modules/passwordSelfReset.inc:141 +msgid "" +"If you select this option then the user is only authenticated by his email " +"address. LAM Pro will not ask for the answer to the security question. " +"Please handle with care." +msgstr "" +"如果此项选中,用户仅通过email地址进行认证.LAM PRO不会询问安全问题的答案.请谨慎" +"处理." + +#: ../lib/modules/heimdalKerberos.inc:131 +msgid "If you set this option then the user cannot request TGT-based tickets." +msgstr "如果您选中此项,用户不能请求一个基于TGT的票据." + +#: ../lib/modules/mitKerberos.inc:175 ../lib/modules/heimdalKerberos.inc:149 +msgid "If you set this option then the user cannot request any tickets." +msgstr "如果您选中此项,用户不能请求任何票据." + +#: ../lib/modules/mitKerberos.inc:163 ../lib/modules/heimdalKerberos.inc:134 +msgid "" +"If you set this option then the user cannot request forwardable tickets." +msgstr "如果您选中此项,用户不能请求可转发的票据." + +#: ../lib/modules/mitKerberos.inc:160 ../lib/modules/heimdalKerberos.inc:143 +msgid "If you set this option then the user cannot request post-dated tickets." +msgstr "如果您选中此项,用户不能请求过期的票据." + +#: ../lib/modules/mitKerberos.inc:169 ../lib/modules/heimdalKerberos.inc:137 +msgid "If you set this option then the user cannot request proxiable tickets." +msgstr "如果您选中此项,用户不能请求可代理的票据." + +#: ../lib/modules/mitKerberos.inc:166 ../lib/modules/heimdalKerberos.inc:140 +msgid "If you set this option then the user cannot request renewable tickets." +msgstr "如果您选中此项,用户不能请求可更新的票据." + +#: ../lib/modules/mitKerberos.inc:187 ../lib/modules/heimdalKerberos.inc:146 +msgid "If you set this option then the user cannot request service tickets." +msgstr "如果您选中此项,用户不能请求服务票据." + +#: ../lib/modules/mitKerberos.inc:184 ../lib/modules/sambaSamAccount.inc:296 +#: ../lib/modules/windowsUser.inc:215 ../lib/modules/heimdalKerberos.inc:128 +#: ../help/help.inc:207 +msgid "" +"If you set this option then the user has to change his password at the next " +"login." +msgstr "如果您选中此项,用户在下次登录时必须修改密码。" + +#: ../lib/modules/mitKerberos.inc:181 +msgid "" +"If you set this option then the user must preauthenticate himself using a " +"hardware device." +msgstr "如果您选中此项,用户必须通过硬件设备预认证." + +#: ../lib/modules/mitKerberos.inc:178 ../lib/modules/heimdalKerberos.inc:152 +msgid "If you set this option then the user must preauthenticate himself." +msgstr "如果您选中此项,用户必须预认证." + +#: ../lib/modules/mitKerberos.inc:190 ../lib/modules/heimdalKerberos.inc:155 +msgid "" +"If you set this option then this account is marked as password change " +"service." +msgstr "如果您选中此项,账号被标记为密码修改服务." + +#: ../lib/modules/selfRegistration.inc:87 +msgid "" +"If you use the object class \"inetOrgPerson\" and do not provide the \"cn\" " +"attribute then LAM will set it to the user name value." +msgstr "" +"如果使用\"inetOrgPerson\" 对象类,并且没有提供 \"cn\"属性,LAM会把它设为用户名." + +#: ../help/help.inc:106 +msgid "" +"If you want to change the current preferences password, please enter it here." +msgstr "在此设置当前管理密码." + +#: ../help/help.inc:141 +msgid "" +"If you want to change your master configuration password, please enter it " +"here." +msgstr "在此变更管理配置密码." + +#: ../lib/modules/sambaGroupMapping.inc:151 +msgid "If you want to use a well known RID you can select a well known group." +msgstr "如果想用知名的RID,需要选择知名的组。 " + +#: ../help/help.inc:116 +msgid "" +"If your server runs on another port then add a comma and the port number " +"after the server." +msgstr "如果服务器运行在其它端口,需要在服务器后加一个逗号和端口号." + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:49 +msgid "Image not available" +msgstr "图像不可用" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:292 +#: ../templates/3rdParty/pla/htdocs/import.php:45 +#: ../templates/3rdParty/pla/htdocs/import_form.php:19 +msgid "Import" +msgstr "导入" + +#: ../templates/pdfedit/pdfmain.php:215 ../templates/pdfedit/pdfmain.php:216 +#: ../help/help.inc:210 +msgid "Import PDF structures" +msgstr "导入PDF架构" + +#: ../templates/config/mainmanage.php:344 +msgid "Import from server" +msgstr "从服务器导入" + +#: ../templates/profedit/profilemain.php:203 +#: ../templates/profedit/profilemain.php:204 ../help/help.inc:192 +msgid "Import profiles" +msgstr "导出配置文件" + +#: ../templates/pdfedit/pdfmain.php:109 +#: ../templates/profedit/profilemain.php:124 +msgid "Import successful" +msgstr "导入成功!" + +#: ../templates/config/mainmanage.php:189 +msgid "Imported certificate from server." +msgstr "从服务器导入证书" + +#: ../templates/config/mainmanage.php:346 +msgid "Imports the certificate directly from your LDAP server." +msgstr "从LDAP服务器直接导入证书" + +#: ../lib/modules/pykotaPrinter.inc:108 +msgid "" +"In passthrough mode, users are allowed to print without any impact on their " +"quota or account balance." +msgstr "In passthrough 模式, 用户可以自由打印,不论他们的限额和帐目余额如何." + +#: ../lib/modules/fixed_ip.inc:115 +msgid "Inactive hosts will not be able to get an address from the DHCP server." +msgstr "非激活的主机不会从DHCP服务器获取到地址." + +#: ../templates/3rdParty/pla/htdocs/export_form.php:87 +msgid "Include system attributes" +msgstr "包括系统属性" + +#: ../lib/tools/serverInfo.inc:53 +msgid "Information about the LDAP server." +msgstr "有关LDAP服务器的信息" + +#: ../lib/modules/sambaSamAccount.inc:234 +#: ../lib/modules/sambaSamAccount.inc:361 +#: ../lib/modules/sambaSamAccount.inc:1518 +#: ../lib/modules/sambaSamAccount.inc:1930 +msgid "Inherit client startup configuration" +msgstr "继承客户初始配置" + +#: ../templates/schema/schema.php:396 ../templates/schema/schema.php:417 +msgid "Inherited from" +msgstr "继承自" + +#: ../templates/schema/schema.php:157 ../templates/schema/schema.php:353 +msgid "Inherits from" +msgstr "继承自" + +#: ../lib/modules/pykotaUser.inc:249 +msgid "Initial payment" +msgstr "初始化账单" + +#: ../lib/modules/sambaSamAccount.inc:235 +#: ../lib/modules/sambaSamAccount.inc:364 +#: ../lib/modules/sambaSamAccount.inc:1520 +#: ../lib/modules/sambaSamAccount.inc:1931 +msgid "Initial program" +msgstr "初始化程序" + +#: ../lib/modules/windowsUser.inc:132 ../lib/modules/windowsUser.inc:302 +#: ../lib/modules/windowsUser.inc:503 ../lib/modules/windowsUser.inc:704 +#: ../lib/modules/windowsUser.inc:1599 ../lib/modules/inetOrgPerson.inc:165 +#: ../lib/modules/inetOrgPerson.inc:175 ../lib/modules/inetOrgPerson.inc:324 +#: ../lib/modules/inetOrgPerson.inc:631 ../lib/modules/inetOrgPerson.inc:858 +#: ../lib/modules/inetOrgPerson.inc:1212 ../lib/modules/inetOrgPerson.inc:1215 +#: ../lib/modules/inetOrgPerson.inc:1951 ../lib/modules/inetOrgPerson.inc:2739 +#: ../lib/modules/inetOrgPerson.inc:3626 ../lib/modules/inetOrgPerson.inc:3659 +msgid "Initials" +msgstr "初始化" + +#: ../templates/serverInfo.php:282 ../templates/serverInfo.php:368 +msgid "Initiated" +msgstr "初始化完毕" + +#: ../lib/modules/quota.inc:57 ../lib/modules/systemQuotas.inc:105 +msgid "Inode hard quota" +msgstr "inode硬配额" + +#: ../lib/modules/quota.inc:57 ../lib/modules/quota.inc:58 +#: ../lib/modules/systemQuotas.inc:105 ../lib/modules/systemQuotas.inc:106 +msgid "" +"Inode hard quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "inode硬配额包含非法字符,只允许使用自然数." + +#: ../lib/modules/quota.inc:61 ../lib/modules/systemQuotas.inc:109 +msgid "Inode quota" +msgstr "inode配额" + +#: ../lib/modules/quota.inc:55 ../lib/modules/systemQuotas.inc:103 +msgid "Inode soft quota" +msgstr "inode软配额" + +#: ../lib/modules/quota.inc:55 ../lib/modules/quota.inc:56 +#: ../lib/modules/systemQuotas.inc:103 ../lib/modules/systemQuotas.inc:104 +msgid "" +"Inode soft quota contains invalid characters. Only natural numbers are " +"allowed." +msgstr "inode软配额包含非法字符,只能使用自然数." + +#: ../lib/modules/quota.inc:61 ../lib/modules/quota.inc:62 +#: ../lib/modules/systemQuotas.inc:109 ../lib/modules/systemQuotas.inc:110 +msgid "Inode soft quota must be smaller than inode hard quota." +msgstr "inode软配额必须小于硬配额." + +#: ../templates/selfService/adminMain.php:653 +msgid "Input fields" +msgstr "输入框" + +#: ../lib/modules/asteriskAccount.inc:155 +#: ../lib/modules/asteriskAccount.inc:277 +#: ../lib/modules/asteriskAccount.inc:391 +#: ../lib/modules/asteriskAccount.inc:652 +#: ../lib/modules/asteriskAccount.inc:993 +#: ../lib/modules/asteriskAccount.inc:1255 +msgid "Insecure" +msgstr "不安全" + +#: ../lib/modules/sambaSamAccount.inc:95 +msgid "Inserted user or group name in home path." +msgstr "在主目录中插入用户名或组名." + +#: ../lib/modules/sambaSamAccount.inc:101 +msgid "Inserted user or group name in logon script." +msgstr "在登录脚本中插入用户名或组名." + +#: ../lib/modules/sambaSamAccount.inc:98 +msgid "Inserted user or group name in profile path." +msgstr "在配置路径中插入用户名或组名." + +#: ../lib/modules/fixed_ip.inc:475 +msgid "Invalid MAC address." +msgstr "非法的MAC地址" + +#: ../templates/massBuildAccounts.php:201 +msgid "Invalid RDN attribute!" +msgstr "错误的RDN属性!" + +#: ../templates/3rdParty/pla/htdocs/rename.php:42 +msgid "Invalid RDN value" +msgstr "非法的RDN值" + +#: ../lib/modules/fixed_ip.inc:484 +msgid "Invalid description." +msgstr "非法的描述" + +#: ../templates/3rdParty/pla/lib/import_functions.php:560 +msgid "Invalid entry" +msgstr "无效的条目" + +#: ../lib/modules/selfRegistration.inc:121 +msgid "Invalid format for the specification of additional attributes." +msgstr "不符合附加属性规范的格式" + +#: ../lib/modules/imapAccess.inc:185 +msgid "Invalid password for IMAP admin or other problem occured." +msgstr "非法的IMAP管理员密码或者发生了其它问题。" + +#: ../lib/modules/ldapPublicKey.inc:546 ../lib/modules/inetOrgPerson.inc:3354 +#: ../lib/modules/customFields.inc:1403 +msgid "Invalid request" +msgstr "无效请求" + +#: ../templates/config/mainmanage.php:198 +msgid "Invalid server name. Please enter \"server\" or \"server:port\"." +msgstr "不合法的服务器名. 请输入 \"服务器名\" or \"服务器名:端口\"." + +#: ../lib/modules/passwordSelfReset.inc:914 +#: ../lib/modules/passwordSelfReset.inc:1136 +#, php-format +msgid "Invalid value in field \"%s\"." +msgstr "在\"%s\"域有非法字符." + +#: ../lib/modules/kolabUser.inc:117 ../lib/modules/kolabUser.inc:124 +#: ../lib/modules/kolabUser.inc:186 ../lib/modules/kolabUser.inc:230 +#: ../lib/modules/kolabUser.inc:315 ../lib/modules/kolabUser.inc:756 +#: ../lib/modules/kolabUser.inc:885 +msgid "Invitation policy" +msgstr "邀请原则" + +#: ../lib/modules/kolabUser.inc:128 +msgid "Invitation policy list" +msgstr "邀请原则列表" + +#: ../lib/modules/sambaSamAccount.inc:570 +msgid "Islamabad, Karachi" +msgstr "伊斯兰堡,卡拉奇" + +#: ../lib/modules/range.inc:137 +msgid "It is not possible to delete all ranges." +msgstr "不能删除所有范围" + +#: ../lib/modules/posixGroup.inc:595 ../lib/modules/posixAccount.inc:105 +msgid "" +"It is possible that this ID-number is reused. This can cause several " +"problems because files with old permissions might still exist. To avoid this " +"warning set maxUID to a higher value." +msgstr "" +"UID可能被重用,因为旧的权限有可能仍然存在,所以会带来一些问题.要避免本警告消息," +"请把最大UID设得高一点." + +#: ../lib/modules/pykotaUser.inc:284 ../lib/modules/pykotaUser.inc:387 +#: ../lib/modules/pykotaUser.inc:1021 +msgid "Job history" +msgstr "任务经历" + +#: ../lib/modules/pykotaUser.inc:156 ../lib/modules/pykotaUser.inc:289 +#: ../lib/modules/pykotaUser.inc:295 ../lib/modules/pykotaUser.inc:327 +msgid "Job suffix" +msgstr "任务后缀" + +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:165 +#: ../lib/modules/inetOrgPerson.inc:229 ../lib/modules/inetOrgPerson.inc:340 +#: ../lib/modules/inetOrgPerson.inc:604 ../lib/modules/inetOrgPerson.inc:650 +#: ../lib/modules/inetOrgPerson.inc:654 ../lib/modules/inetOrgPerson.inc:1471 +#: ../lib/modules/inetOrgPerson.inc:1474 ../lib/modules/inetOrgPerson.inc:1924 +#: ../lib/modules/inetOrgPerson.inc:2750 ../lib/modules/inetOrgPerson.inc:3608 +#: ../lib/modules/inetOrgPerson.inc:3654 +msgid "Job title" +msgstr "头衔" + +#: ../lib/modules/inetOrgPerson.inc:651 ../lib/modules/inetOrgPerson.inc:655 +msgid "Job title of user: President, department manager, ..." +msgstr "用户头衔:如总裁,部门经理..." + +#: ../lib/lists.inc:297 +msgid "Jump 10 pages backward" +msgstr "向后跳转10页" + +#: ../lib/lists.inc:317 +msgid "Jump 10 pages forward" +msgstr "向前跳转10页" + +#: ../templates/schema/schema.php:255 +msgid "Jump to a matching rule" +msgstr "选择一个匹配规则" + +#: ../templates/schema/schema.php:114 +msgid "Jump to an attribute type" +msgstr "选择一个属性类型" + +#: ../templates/schema/schema.php:308 ../templates/schema/schema.php:358 +#: ../templates/schema/schema.php:373 +msgid "Jump to an object class" +msgstr "选择一个对象类" + +#: ../lib/lists.inc:292 +msgid "Jump to first page" +msgstr "跳转到首页" + +#: ../lib/lists.inc:322 +msgid "Jump to last page" +msgstr "跳转到末页" + +#: ../lib/modules/mitKerberos.inc:94 ../lib/modules/heimdalKerberos.inc:81 +msgid "Kerberos" +msgstr "Kerberos" + +#: ../lib/modules/kolabGroup.inc:74 ../lib/modules/kolabUser.inc:80 +msgid "Kolab" +msgstr "Kolab" + +#: ../lib/modules/kolabSharedFolder.inc:82 +msgid "Kolab shared folder" +msgstr "Kolab共享文件夹" + +#: ../lib/types/kolabSharedFolderType.inc:53 +msgid "Kolab shared folders" +msgstr "Kolab共享文件夹" + +#: ../lib/types/kolabSharedFolderType.inc:62 +msgid "Kolab shared folders (e.g. mail folders)" +msgstr "Kolab共享文件夹(比如邮箱文件夹)" + +#: ../lib/modules/posixGroup.inc:517 +msgid "" +"LAM checks if the entered group name and GID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique group names or " +"GIDs." +msgstr "" +"LAM会检查输入的组名和GID是否唯一。这里您可以输入做重复性搜索的LDAP后缀。缺省" +"会使用账号类型的后缀。如果你使用了多个不同OU的服务器配置而且需要组名或GID唯" +"一,在此处修改。" + +#: ../lib/modules/posixAccount.inc:490 +msgid "" +"LAM checks if the entered user name and UID are unique. Here you can enter " +"the LDAP suffix that is used to search for duplicates. By default the " +"account type suffix is used. You only need to change this if you use " +"multiple server profiles with different OUs but need unique user names or " +"UIDs." +msgstr "" +"LAM会检查输入的用户名和UID是否唯一。这里您可以输入做重复性搜索的LDAP后缀。缺" +"省会使用账号类型的后缀。如果你需要使用多个不同OU的服务器配置而且需要用户名或" +"UID唯一,在此处修改。" + +#: ../templates/login.php:265 ../templates/config/index.php:85 +msgid "LAM configuration" +msgstr "LAM 配置" + +#: ../templates/massBuildAccounts.php:239 +msgid "LAM has checked your input and is now ready to create the accounts." +msgstr "您的输入检查完毕,即将建立帐号" + +#: ../lib/modules/posixGroup.inc:505 ../lib/modules/posixAccount.inc:458 +#: ../lib/modules/inetOrgPerson.inc:835 ../lib/modules/customFields.inc:137 +msgid "" +"LAM supports CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 and SMD5 to generate the " +"hash value of passwords. SSHA and CRYPT are the most common but CRYPT does " +"not support passwords greater than 8 letters. We do not recommend to use " +"plain text passwords." +msgstr "" +"LAM支持CRYPT, CRYPT-SHA512, SHA, SSHA, MD5 和 SMD5 等HASH算法生成密码的HASH" +"值.SSHA 和 CRYPT是最常用的,但CRYPT 不支持8个字符以上的密码.不建议使用明文密" +"码." + +#: ../templates/tests/index.php:50 +msgid "LAM tests" +msgstr "LAM 测试" + +#: ../lib/modules/imapAccess.inc:128 +msgid "LAM user password" +msgstr "LAM用户密码" + +#: ../templates/massDoUpload.php:132 +#, php-format +msgid "LAM was unable to create account %s! An LDAP error occured." +msgstr "LAM无法建立%s帐号,LDAP发生错误." + +#: ../lib/modules/sambaGroupMapping.inc:603 +msgid "LAM was unable to find a Samba 3 domain with this name!" +msgstr "系统找不到这个Samba域!" + +#: ../lib/modules/sambaSamAccount.inc:118 +msgid "LAM was unable to find a domain with this name!" +msgstr "LAM找不到这个域!" + +#: ../lib/modules/posixAccount.inc:123 ../lib/modules/windowsUser.inc:1457 +msgid "LAM was unable to find a group with this name!" +msgstr "LAM找不到这个组" + +#: ../lib/modules/posixAccount.inc:2336 ../lib/modules/posixAccount.inc:2397 +#: ../lib/modules/windowsUser.inc:1543 ../lib/modules/groupOfNamesUser.inc:455 +#, php-format +msgid "LAM was unable to modify group memberships for group: %s" +msgstr "LAM无法修改 %s组成员" + +#: ../lib/modules/organizationalRoleUser.inc:397 +#, php-format +msgid "LAM was unable to modify memberships for role: %s" +msgstr "LAM无法修改 %s角色成员" + +#: ../lib/modules/posixGroup.inc:521 ../lib/modules/posixAccount.inc:498 +msgid "" +"LAM will automatically suggest UID/GID numbers. You can either use a fixed " +"range of numbers or an LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "" +"LAM将自动提供UID/GID数字. 也可以指定一个固定的范围或在LDAP中指定目标类 " +"\"sambaUnixIdPool\"." + +#: ../help/help.inc:219 +msgid "LAM will search for accounts in this part of the LDAP tree." +msgstr "LAM将在这部分LDAP树搜索帐号." + +#: ../lib/modules/posixAccount.inc:437 +msgid "" +"LAM will suggest a user name based on e.g. first and last name. Here you can " +"specify the suggestion. %sn% will be replaced by the last name. @givenname@ " +"will be replaced by the first character of first name. Only attributes of " +"tab Personal may be used." +msgstr "" +"LAM将基于姓名建议一个用户名.您可以指定这个建议值, %sn%被姓来替换 @givenname@" +"被名字的第一个字符来替换.仅一些Person 的tab属性可能被使用。" + +#: ../help/help.inc:221 +msgid "" +"LAM will use this LDAP DN and password to search for accounts. It is " +"sufficient to specify an account with read rights. If nothing is inserted " +"then LAM will try to connect anonymously." +msgstr "" +"LAM将会这个使用 LDAP DN 和密码搜索帐号.这个帐号需要有读权限.如果留空,LAM将匿" +"名登录LDAP." + +#: ../lib/modules/qmailUser.inc:57 +msgid "LDAP + program" +msgstr "LDAP + 程序" + +#: ../templates/config/confmodules.php:97 ../templates/config/confmain.php:127 +#: ../templates/config/moduleSettings.php:96 +#: ../templates/config/conftypes.php:115 +msgid "LDAP Account Manager Configuration" +msgstr "LDAP帐号管理配置" + +#: ../templates/multiEdit.php:198 ../templates/config/conftypes.php:407 +msgid "LDAP Suffix is invalid!" +msgstr "LDAP后缀无效!" + +#: ../templates/serverInfo.php:182 +msgid "LDAP entries" +msgstr "LDAP条目" + +#: ../lib/modules/qmailGroup.inc:173 ../lib/modules/qmailGroup.inc:177 +msgid "LDAP entries that are allowed to send to this list." +msgstr "允许发送到这个列表的LDAP条目" + +#: ../lib/modules/qmailGroup.inc:157 ../lib/modules/qmailGroup.inc:161 +msgid "LDAP entries that are member of this list." +msgstr "这个列表中的用户的LDAP条目" + +#: ../lib/modules/qmailGroup.inc:165 ../lib/modules/qmailGroup.inc:169 +msgid "LDAP entries that moderate this list (e.g. approve mails)." +msgstr "主持这个列表(比如批准邮件)的LDAP条目" + +#: ../templates/login.php:642 ../lib/account.inc:1204 +msgid "LDAP error, server says:" +msgstr "LDAP错误,服务器错误消息:" + +#: ../templates/multiEdit.php:115 ../templates/config/confmain.php:438 +#: ../help/help.inc:271 +msgid "LDAP filter" +msgstr "LDAP过滤条件" + +#: ../lib/modules/qmailGroup.inc:189 ../lib/modules/qmailGroup.inc:193 +msgid "" +"LDAP filter to specify allowed senders of this list (e.g. " +"\"((objectclass=qmailUser)(employeeType=manager))\")." +msgstr "" +"指定这个列表的发送者的LDAP过滤表达式(比如\"((objectclass=qmailUser)" +"(employeeType=manager))\")." + +#: ../lib/modules/qmailGroup.inc:181 ../lib/modules/qmailGroup.inc:185 +msgid "" +"LDAP filter to specify members of this list (e.g. \"((objectclass=qmailUser)" +"(employeeType=accountant))\")." +msgstr "" +"指定列表用户的LDAP过滤表达式(比如\"((objectclass=qmailUser)" +"(employeeType=accountant))\")." + +#: ../lib/modules.inc:1336 +msgid "LDAP operation successful." +msgstr "LDAP操作成功." + +#: ../templates/selfService/adminMain.php:432 +msgid "LDAP password" +msgstr "LDAP 密码" + +#: ../templates/3rdParty/pla/lib/functions.php:1894 +msgid "LDAP said" +msgstr "LDAP说" + +#: ../templates/config/confmain.php:415 ../help/help.inc:122 +msgid "LDAP search" +msgstr "LDAP搜索" + +#: ../templates/selfService/adminMain.php:427 ../help/help.inc:222 +msgid "LDAP search attribute" +msgstr "LDAP搜索属性" + +#: ../lib/account.inc:796 +msgid "LDAP search failed! Please check your preferences." +msgstr "LDAP搜索失败,请检查配置。" + +#: ../templates/config/confmain.php:253 ../help/help.inc:124 +msgid "LDAP search limit" +msgstr "LDAP搜索限制" + +#: ../templates/login.php:460 +msgid "LDAP server" +msgstr "LDAP服务器" + +#: ../lib/account.inc:787 +msgid "LDAP sizelimit exceeded, not all entries are shown." +msgstr "超过LDAP限制的大小,无法显示所有条目." + +#: ../templates/multiEdit.php:82 ../templates/config/confmain.php:434 +#: ../templates/config/conftypes.php:253 +#: ../templates/selfService/adminMain.php:421 +#: ../templates/profedit/profilepage.php:202 ../help/help.inc:71 +#: ../help/help.inc:218 ../help/help.inc:269 +msgid "LDAP suffix" +msgstr "LDAP后缀" + +#: ../templates/massDoUpload.php:86 +msgid "LDAP upload in progress. Please wait." +msgstr "LDAP上传中,请稍等..." + +#: ../templates/selfService/adminMain.php:429 +msgid "LDAP user" +msgstr "LDAP用户" + +#: ../help/help.inc:220 +msgid "LDAP user and password" +msgstr "LDAP用户名和密码" + +#: ../templates/serverInfo.php:109 +msgid "LDAP version" +msgstr "LDAP版本" + +#: ../templates/3rdParty/pla/lib/export_functions.php:442 +msgid "LDIF Export" +msgstr "LDIF导出" + +#: ../templates/multiEdit.php:443 +msgid "LDIF file" +msgstr "LDIF文件" + +#: ../templates/3rdParty/pla/lib/import_functions.php:149 +#: ../templates/3rdParty/pla/htdocs/import.php:71 +msgid "LDIF import" +msgstr "LDIF导入" + +#: ../templates/3rdParty/pla/lib/import_functions.php:170 +msgid "LDIF import only supports version 1" +msgstr "LDIF导入功能只支持版本1" + +#: ../lib/modules/customFields.inc:88 ../lib/modules/customFields.inc:513 +#: ../lib/modules/customFields.inc:1051 ../lib/modules/customFields.inc:1705 +#: ../lib/modules/customFields.inc:2960 +msgid "Label" +msgstr "标签" + +#: ../templates/tests/lamdaemonTest.php:201 +msgid "" +"Lamdaemon path does not end with \".pl\". Did you enter the full path to the " +"script?" +msgstr "lamdaemon 路径没有以 \".pl\"结尾,你需要输入这个脚本的全路径吗?" + +#: ../templates/tests/lamdaemonTest.php:185 +msgid "Lamdaemon server and path" +msgstr "Lamdaemon 服务器和路径" + +#: ../templates/config/confmain.php:334 +msgid "Lamdaemon settings" +msgstr "Lamdaemon设置" + +#: ../templates/tests/lamdaemonTest.php:135 +msgid "Lamdaemon successfully run." +msgstr "Lamdaemon成功执行." + +#: ../templates/tests/index.php:52 ../templates/tests/lamdaemonTest.php:52 +#: ../lib/tools/tests.inc:110 +msgid "Lamdaemon test" +msgstr "Lamdaemon测试" + +#: ../templates/tests/lamdaemonTest.php:291 +msgid "Lamdaemon test finished." +msgstr "Lamdaemon 测试结束." + +#: ../templates/tests/lamdaemonTest.php:273 +msgid "Lamdaemon version" +msgstr "Lamdaemon版本" + +#: ../templates/tests/lamdaemonTest.php:283 +msgid "Lamdaemon: Quota module installed" +msgstr "Lamdaemon: 配额模块已安装." + +#: ../templates/tests/lamdaemonTest.php:279 +msgid "Lamdaemon: check NSS LDAP" +msgstr "Lamdaemon: 检查 NSS LDAP" + +#: ../templates/tests/lamdaemonTest.php:286 +msgid "Lamdaemon: read quotas" +msgstr "Lamdaemon: 读取配额" + +#: ../templates/login.php:397 +#: ../templates/selfService/selfServiceLogin.php:344 +msgid "Language" +msgstr "语言" + +#: ../templates/config/confmain.php:570 +msgid "Language is not defined!" +msgstr "尚未定义语言" + +#: ../templates/config/confmain.php:304 +msgid "Language settings" +msgstr "语言设定" + +#: ../lib/modules/mitKerberos.inc:144 ../lib/modules/mitKerberos.inc:256 +#: ../lib/modules/mitKerberos.inc:404 ../lib/modules/mitKerberos.inc:791 +msgid "Last login" +msgstr "上次登录" + +#: ../lib/types/user.inc:97 ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:219 ../lib/modules/windowsUser.inc:164 +#: ../lib/modules/windowsUser.inc:284 ../lib/modules/windowsUser.inc:511 +#: ../lib/modules/windowsUser.inc:599 ../lib/modules/windowsUser.inc:701 +#: ../lib/modules/windowsUser.inc:1607 ../lib/modules/inetOrgPerson.inc:68 +#: ../lib/modules/inetOrgPerson.inc:159 ../lib/modules/inetOrgPerson.inc:315 +#: ../lib/modules/inetOrgPerson.inc:550 ../lib/modules/inetOrgPerson.inc:662 +#: ../lib/modules/inetOrgPerson.inc:1203 ../lib/modules/inetOrgPerson.inc:1206 +#: ../lib/modules/inetOrgPerson.inc:1926 ../lib/modules/inetOrgPerson.inc:2492 +#: ../lib/modules/inetOrgPerson.inc:3646 +msgid "Last name" +msgstr "姓" + +#: ../lib/modules/windowsUser.inc:599 ../lib/modules/windowsUser.inc:600 +#: ../lib/modules/inetOrgPerson.inc:68 ../lib/modules/inetOrgPerson.inc:69 +msgid "Last name contains invalid characters or is empty!" +msgstr "姓包含非法字符或为空!" + +#: ../lib/modules/windowsUser.inc:165 ../lib/modules/inetOrgPerson.inc:663 +msgid "Last name of user. Only letters, - and spaces are allowed." +msgstr "用户姓.只允许字符,-和空格." + +#: ../lib/modules/mitKerberos.inc:140 ../lib/modules/mitKerberos.inc:255 +#: ../lib/modules/mitKerberos.inc:396 ../lib/modules/mitKerberos.inc:787 +#: ../lib/modules/sambaSamAccount.inc:397 +#: ../lib/modules/sambaSamAccount.inc:603 +#: ../lib/modules/sambaSamAccount.inc:1167 +#: ../lib/modules/sambaSamAccount.inc:2289 ../lib/modules/ppolicyUser.inc:87 +#: ../lib/modules/ppolicyUser.inc:136 ../lib/modules/ppolicyUser.inc:395 +#: ../lib/modules/shadowAccount.inc:167 ../lib/modules/shadowAccount.inc:201 +#: ../lib/modules/shadowAccount.inc:365 ../lib/modules/shadowAccount.inc:498 +#: ../lib/modules/shadowAccount.inc:668 +msgid "Last password change" +msgstr "最后密码变更" + +#: ../lib/modules/sambaSamAccount.inc:252 ../lib/modules/shadowAccount.inc:239 +msgid "Last password change (read-only)" +msgstr "最后密码变更(只读)" + +#: ../lib/modules/asteriskAccount.inc:239 +#: ../lib/modules/asteriskAccount.inc:298 +#: ../lib/modules/asteriskAccount.inc:544 +#: ../lib/modules/asteriskAccount.inc:758 +#: ../lib/modules/asteriskAccount.inc:1014 +#: ../lib/modules/asteriskAccount.inc:1297 +msgid "Last qualify milliseconds" +msgstr "最后的限定毫秒" + +#: ../lib/modules/dhcp_settings.inc:153 ../lib/modules/dhcp_settings.inc:209 +#: ../lib/modules/dhcp_settings.inc:224 ../lib/modules/dhcp_settings.inc:256 +#: ../lib/modules/dhcp_settings.inc:569 ../lib/modules/dhcp_settings.inc:675 +msgid "Lease time" +msgstr "释放时间" + +#: ../lib/modules/pykotaGroup.inc:125 ../lib/modules/pykotaGroup.inc:135 +#: ../lib/modules/pykotaGroup.inc:173 ../lib/modules/pykotaGroup.inc:182 +#: ../lib/modules/pykotaGroup.inc:227 ../lib/modules/pykotaGroup.inc:474 +#: ../lib/modules/pykotaUser.inc:128 ../lib/modules/pykotaUser.inc:166 +#: ../lib/modules/pykotaUser.inc:233 ../lib/modules/pykotaUser.inc:261 +#: ../lib/modules/pykotaUser.inc:397 ../lib/modules/pykotaUser.inc:898 +msgid "Limit type" +msgstr "限制类型" + +#: ../templates/3rdParty/pla/htdocs/import.php:102 +msgid "Line" +msgstr "行" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:121 +msgid "Line ends" +msgstr "行结尾" + +#: ../lib/modules/selfRegistration.inc:57 +#: ../lib/modules/selfRegistration.inc:197 +#: ../lib/modules/passwordSelfReset.inc:100 +#: ../lib/modules/passwordSelfReset.inc:516 +msgid "Link text" +msgstr "链接文本" + +#: ../templates/selfService/adminMain.php:362 +msgid "Link to self service login page for your users" +msgstr "对用户自助服务登录界面的链接." + +#: ../templates/config/conftypes.php:264 ../help/help.inc:87 +msgid "List attributes" +msgstr "属性列表" + +#: ../templates/config/conftypes.php:415 +msgid "List attributes are invalid!" +msgstr "属性列表非法!" + +#: ../lib/types/zarafaAddressListType.inc:91 +#: ../lib/modules/zarafaAddressList.inc:63 +#: ../lib/modules/zarafaAddressList.inc:104 +#: ../lib/modules/zarafaAddressList.inc:141 +#: ../lib/modules/zarafaAddressList.inc:168 +#: ../lib/modules/zarafaAddressList.inc:187 +#: ../lib/modules/zarafaAddressList.inc:331 +msgid "List name" +msgstr "列表名" + +#: ../lib/modules/zarafaAddressList.inc:168 +msgid "List name already in use." +msgstr "列表名已经被使用" + +#: ../lib/modules/sambaSamAccount.inc:316 +msgid "" +"List of Samba workstations the user is allowed to login. Empty means every " +"workstation." +msgstr "允许用户登录的Samba工作站,留空表示所有工作站." + +#: ../templates/config/confmain.php:564 +msgid "List of admin users is empty or invalid!" +msgstr "管理员清单为空或非法." + +#: ../lib/modules/asteriskAccount.inc:204 +msgid "List of allowed codecs." +msgstr "合法编码列表" + +#: ../lib/modules/asteriskAccount.inc:200 +msgid "List of disallowed codecs." +msgstr "不合法编码列表" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:94 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:88 +msgid "List of entries to be deleted:" +msgstr "将被删除的条目列表:" + +#: ../templates/config/confmain.php:430 +msgid "List of valid users" +msgstr "合法用户列表" + +#: ../templates/serverInfo.php:152 +msgid "Listeners" +msgstr "监听" + +#: ../lib/modules.inc:1241 ../help/help.inc:198 +msgid "Load profile" +msgstr "调入配置文件" + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:279 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1099 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1137 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1170 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1187 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1226 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1245 +msgid "Loading" +msgstr "调用" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:303 +msgid "Loading export" +msgstr "正调用导出功能" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:290 +msgid "Loading import" +msgstr "正调用导入功能" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:497 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:233 +msgid "Loading search" +msgstr "调用搜索" + +#: ../lib/modules/inetLocalMailRecipient.inc:72 +#: ../lib/modules/inetLocalMailRecipient.inc:154 +msgid "Local address" +msgstr "本机邮件" + +#: ../lib/modules/inetLocalMailRecipient.inc:76 +#: ../lib/modules/inetLocalMailRecipient.inc:106 +#: ../lib/modules/inetLocalMailRecipient.inc:120 +#: ../lib/modules/inetLocalMailRecipient.inc:293 +msgid "Local address list" +msgstr "本机邮递列表" + +#: ../lib/modules/sambaGroupMapping.inc:72 +msgid "Local group" +msgstr "本地组" + +#: ../lib/modules/sambaGroupMapping.inc:115 +#: ../lib/modules/sambaGroupMapping.inc:166 +#: ../lib/modules/sambaGroupMapping.inc:388 +#: ../lib/modules/sambaGroupMapping.inc:555 +msgid "Local members" +msgstr "本地成员" + +#: ../lib/types/host.inc:97 ../lib/modules/ipHost.inc:73 +#: ../lib/modules/ipHost.inc:91 ../lib/modules/ipHost.inc:105 +#: ../lib/modules/ipHost.inc:130 ../lib/modules/ipHost.inc:252 +#: ../lib/modules/windowsHost.inc:82 ../lib/modules/windowsHost.inc:106 +#: ../lib/modules/windowsHost.inc:121 ../lib/modules/windowsHost.inc:144 +#: ../lib/modules/windowsHost.inc:290 ../lib/modules/device.inc:77 +#: ../lib/modules/device.inc:109 ../lib/modules/device.inc:129 +#: ../lib/modules/device.inc:178 ../lib/modules/device.inc:419 +#: ../lib/modules/windowsUser.inc:136 ../lib/modules/windowsUser.inc:332 +#: ../lib/modules/windowsUser.inc:504 ../lib/modules/windowsUser.inc:546 +#: ../lib/modules/windowsUser.inc:711 ../lib/modules/windowsUser.inc:1600 +#: ../lib/modules/windowsUser.inc:1742 ../lib/modules/inetOrgPerson.inc:164 +#: ../lib/modules/inetOrgPerson.inc:190 ../lib/modules/inetOrgPerson.inc:518 +#: ../lib/modules/inetOrgPerson.inc:565 ../lib/modules/inetOrgPerson.inc:794 +#: ../lib/modules/inetOrgPerson.inc:798 ../lib/modules/inetOrgPerson.inc:1277 +#: ../lib/modules/inetOrgPerson.inc:1280 ../lib/modules/inetOrgPerson.inc:1947 +#: ../lib/modules/inetOrgPerson.inc:2646 ../lib/modules/inetOrgPerson.inc:3584 +#: ../lib/modules/inetOrgPerson.inc:3648 +msgid "Location" +msgstr "地点" + +#: ../lib/modules/nisMailAliasUser.inc:93 +msgid "Location where new alias is stored." +msgstr "新别名的存放位置." + +#: ../lib/types/user.inc:349 ../lib/types/user.inc:354 +msgid "Lock" +msgstr "锁" + +#: ../templates/lists/changePassword.php:435 +#: ../templates/lists/changePassword.php:455 +#: ../templates/lists/changePassword.php:457 +#: ../lib/modules/ppolicyUser.inc:150 +msgid "Lock account" +msgstr "锁定帐号" + +#: ../templates/lists/changePassword.php:271 +msgid "Lock account?" +msgstr "锁定帐号?" + +#: ../lib/modules/posixGroup.inc:208 ../lib/modules/posixAccount.inc:338 +#: ../lib/modules/posixAccount.inc:1499 ../lib/modules/inetOrgPerson.inc:1592 +msgid "Lock password" +msgstr "锁定密码" + +#: ../lib/types/ppolicyType.inc:83 ../lib/modules/ppolicy.inc:104 +#: ../lib/modules/ppolicy.inc:151 ../lib/modules/ppolicy.inc:171 +#: ../lib/modules/ppolicy.inc:264 ../lib/modules/ppolicy.inc:476 +#: ../lib/modules/sambaDomain.inc:133 ../lib/modules/sambaDomain.inc:198 +#: ../lib/modules/sambaDomain.inc:223 ../lib/modules/sambaDomain.inc:340 +#: ../lib/modules/sambaDomain.inc:610 +msgid "Lockout duration" +msgstr "帐号锁定期" + +#: ../lib/modules/sambaDomain.inc:223 +msgid "Lockout duration must be are natural number." +msgstr "帐号锁定期必须是自然数." + +#: ../lib/modules/ppolicyUser.inc:142 +msgid "Lockout time" +msgstr "锁定的时间" + +#: ../lib/types/ppolicyType.inc:88 ../lib/modules/ppolicy.inc:124 +#: ../lib/modules/ppolicy.inc:150 ../lib/modules/ppolicy.inc:258 +#: ../lib/modules/ppolicy.inc:495 +msgid "Lockout users" +msgstr "锁定的用户" + +#: ../lib/modules/sambaDomain.inc:121 ../lib/modules/sambaDomain.inc:195 +#: ../lib/modules/sambaDomain.inc:225 ../lib/modules/sambaDomain.inc:316 +#: ../lib/modules/sambaDomain.inc:607 +msgid "Lockout users after bad logon attempts" +msgstr "在多次错误登录后锁定用户." + +#: ../lib/modules/sambaDomain.inc:225 +msgid "Lockout users after bad logon attempts must be between 0 and 999." +msgstr "用户锁定前错误的登录次数必须在0-999之间。" + +#: ../templates/config/mainmanage.php:423 ../help/help.inc:150 +msgid "Log destination" +msgstr "日志存储位置" + +#: ../templates/config/mainmanage.php:409 ../help/help.inc:148 +msgid "Log level" +msgstr "日志等级" + +#: ../templates/multiEdit.php:448 +msgid "Log output" +msgstr "日志输出" + +#: ../templates/main_header.php:128 +#, php-format +msgid "Logged in as: %s" +msgstr "以%s 的身份登录. " + +#: ../templates/config/mainmanage.php:406 +msgid "Logging" +msgstr "日志" + +#: ../templates/login.php:433 ../templates/config/conflogin.php:62 +#: ../templates/config/mainlogin.php:72 +#: ../templates/selfService/selfServiceLogin.php:227 +#: ../templates/selfService/selfServiceLogin.php:366 +#: ../templates/selfService/adminLogin.php:64 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:530 ../help/help.inc:56 +msgid "Login" +msgstr "登录" + +#: ../templates/selfService/adminMain.php:468 ../help/help.inc:224 +msgid "Login attribute label" +msgstr "登录属性标签" + +#: ../templates/selfService/adminMain.php:477 ../help/help.inc:226 +msgid "Login caption" +msgstr "登录标题" + +#: ../templates/config/confmain.php:417 ../help/help.inc:120 +msgid "Login method" +msgstr "登录方法" + +#: ../lib/types/user.inc:99 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:324 ../lib/modules/posixAccount.inc:417 +#: ../lib/modules/posixAccount.inc:530 ../lib/modules/posixAccount.inc:1492 +#: ../lib/modules/posixAccount.inc:1757 ../lib/modules/posixAccount.inc:1860 +#: ../lib/modules/posixAccount.inc:2570 +msgid "Login shell" +msgstr "登录shell" + +#: ../lib/modules/posixAccount.inc:193 ../lib/modules/posixAccount.inc:248 +#: ../lib/modules/posixAccount.inc:493 +msgid "Login shells" +msgstr "登录shells" + +#: ../templates/pdfedit/pdfpage.php:453 +msgid "Logo" +msgstr "标志" + +#: ../lib/pdfstruct.inc:300 +msgid "Logo file deleted." +msgstr "徽标文件已删除." + +#: ../lib/pdfstruct.inc:292 +#, php-format +msgid "Logo is still in use by PDF structure \"%s\" in account type \"%s\"." +msgstr "标识用于在PDF结构\"%s\"中 ,属于账号类型 \"%s\"." + +#: ../lib/modules/sambaDomain.inc:109 ../lib/modules/sambaDomain.inc:192 +#: ../lib/modules/sambaDomain.inc:290 ../lib/modules/sambaDomain.inc:616 +msgid "Logon for password change" +msgstr "密码修改登录" + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:340 +#: ../lib/modules/sambaSamAccount.inc:343 +#: ../lib/modules/sambaSamAccount.inc:527 +#: ../lib/modules/sambaSamAccount.inc:607 +#: ../lib/modules/sambaSamAccount.inc:1289 +#: ../lib/modules/sambaSamAccount.inc:1793 +msgid "Logon hours" +msgstr "可登录时间" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:224 +#: ../lib/modules/sambaSamAccount.inc:312 +#: ../lib/modules/sambaSamAccount.inc:511 +#: ../lib/modules/sambaSamAccount.inc:601 +#: ../lib/modules/sambaSamAccount.inc:1242 +#: ../lib/modules/sambaSamAccount.inc:1769 +#: ../lib/modules/sambaSamAccount.inc:1909 ../lib/modules/windowsUser.inc:209 +#: ../lib/modules/windowsUser.inc:424 ../lib/modules/windowsUser.inc:477 +#: ../lib/modules/windowsUser.inc:521 ../lib/modules/windowsUser.inc:613 +#: ../lib/modules/windowsUser.inc:756 ../lib/modules/windowsUser.inc:1636 +msgid "Logon script" +msgstr "登录脚本" + +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:102 ../lib/modules/windowsUser.inc:613 +#: ../lib/modules/windowsUser.inc:614 +msgid "Logon script is invalid!" +msgstr "登录脚本非法!" + +#: ../templates/selfService/selfServiceMain.php:63 +#: ../templates/selfService/selfServiceMain.php:419 +#: ../templates/main_header.php:135 +msgid "Logout" +msgstr "退出" + +#: ../lib/modules/dhcp_settings.inc:98 +msgid "M-Node (0x04)" +msgstr "M-节点 (0x04)" + +#: ../lib/types/dhcp.inc:96 ../lib/modules/ieee802device.inc:58 +#: ../lib/modules/ieee802device.inc:68 ../lib/modules/ieee802device.inc:79 +#: ../lib/modules/ieee802device.inc:106 ../lib/modules/fixed_ip.inc:102 +#: ../lib/modules/fixed_ip.inc:429 ../lib/modules/fixed_ip.inc:742 +msgid "MAC address" +msgstr "MAC地址" + +#: ../lib/modules/ieee802device.inc:72 +msgid "MAC address list" +msgstr "MAC地址列表" + +#: ../lib/modules/ieee802device.inc:86 ../lib/modules/ieee802device.inc:162 +msgid "MAC addresses" +msgstr "MAC地址" + +#: ../lib/modules/mitKerberos.inc:268 +msgid "MIT Kerberos password change command" +msgstr "MIT Kerberos 密码修改命令" + +#: ../lib/modules/bindDLZ.inc:110 ../lib/modules/bindDLZ.inc:281 +#: ../lib/modules/bindDLZ.inc:287 ../lib/modules/bindDLZ.inc:294 +#: ../lib/modules/bindDLZ.inc:483 ../lib/modules/bindDLZ.inc:502 +msgid "MX record" +msgstr "MX记录" + +#: ../lib/modules/bindDLZ.inc:421 ../lib/modules/bindDLZ.inc:440 +#: ../lib/modules/bindDLZ.inc:1516 +msgid "MX records" +msgstr "MX记录" + +#: ../lib/modules/sambaSamAccount.inc:576 +msgid "Magadan, Solomon Islands" +msgstr "马加丹,所罗门群岛" + +#: ../lib/types/mailAlias.inc:53 ../lib/modules/nisMailAliasUser.inc:70 +#: ../lib/modules/nisMailAlias.inc:69 +msgid "Mail aliases" +msgstr "邮件别名" + +#: ../lib/modules/imapAccess.inc:100 ../lib/modules/imapAccess.inc:140 +msgid "Mail domains" +msgstr "邮箱域" + +#: ../lib/modules/inetLocalMailRecipient.inc:58 +msgid "Mail routing" +msgstr "邮件路由" + +#: ../lib/modules/selfRegistration.inc:615 +#: ../lib/modules/selfRegistration.inc:635 +#: ../lib/modules/passwordSelfReset.inc:1546 +#: ../lib/modules/passwordSelfReset.inc:1561 +#: ../lib/modules/passwordSelfReset.inc:1594 +msgid "Mail sending failed." +msgstr "邮件发送失败." + +#: ../lib/modules/bindDLZ.inc:139 ../lib/modules/bindDLZ.inc:143 +#: ../lib/modules/bindDLZ.inc:281 ../lib/modules/bindDLZ.inc:500 +#: ../lib/modules/bindDLZ.inc:917 ../lib/modules/bindDLZ.inc:1519 +#: ../lib/modules/kolabUser.inc:98 ../lib/modules/kolabSharedFolder.inc:98 +#: ../lib/modules/inetLocalMailRecipient.inc:80 +#: ../lib/modules/inetLocalMailRecipient.inc:85 +#: ../lib/modules/inetLocalMailRecipient.inc:112 +#: ../lib/modules/inetLocalMailRecipient.inc:121 +#: ../lib/modules/inetLocalMailRecipient.inc:148 +#: ../lib/modules/inetLocalMailRecipient.inc:294 +msgid "Mail server" +msgstr "邮件服务器" + +#: ../lib/modules/bindDLZ.inc:914 +msgid "Mail servers (\"MX\" records)" +msgstr "邮件服务 (\"MX\" 记录)" + +#: ../lib/account.inc:1031 +#, php-format +msgid "Mail successfully sent to %s." +msgstr "邮件已经成功发送到%s." + +#: ../lib/modules/asteriskAccount.inc:159 +#: ../lib/modules/asteriskAccount.inc:278 +#: ../lib/modules/asteriskAccount.inc:399 +#: ../lib/modules/asteriskAccount.inc:657 +#: ../lib/modules/asteriskAccount.inc:994 +#: ../lib/modules/asteriskAccount.inc:1257 +#: ../lib/modules/asteriskVoicemail.inc:95 +#: ../lib/modules/asteriskVoicemail.inc:138 +#: ../lib/modules/asteriskVoicemail.inc:158 +#: ../lib/modules/asteriskVoicemail.inc:245 +#: ../lib/modules/asteriskVoicemail.inc:369 ../lib/modules/imapAccess.inc:63 +#: ../lib/modules/imapAccess.inc:106 ../lib/modules/imapAccess.inc:243 +msgid "Mailbox" +msgstr "邮箱" + +#: ../lib/modules/imapAccess.inc:252 +msgid "Mailbox already exists on IMAP server." +msgstr "在IMAP服务器上这个邮箱已经存在。" + +#: ../lib/modules/imapAccess.inc:259 +msgid "Mailbox does not exist on IMAP server." +msgstr "在IMAP服务器上不存在这个邮箱。" + +#: ../lib/modules/kolabUser.inc:148 ../lib/modules/kolabUser.inc:192 +#: ../lib/modules/kolabUser.inc:231 ../lib/modules/kolabUser.inc:297 +#: ../lib/modules/kolabUser.inc:300 ../lib/modules/kolabUser.inc:745 +#: ../lib/modules/kolabSharedFolder.inc:154 +#: ../lib/modules/kolabSharedFolder.inc:188 +#: ../lib/modules/kolabSharedFolder.inc:238 +#: ../lib/modules/kolabSharedFolder.inc:284 +#: ../lib/modules/kolabSharedFolder.inc:287 +#: ../lib/modules/kolabSharedFolder.inc:559 +msgid "Mailbox home server" +msgstr "邮件宿主服务器" + +#: ../lib/modules/kolabUser.inc:251 +msgid "Mailbox home server name is empty!" +msgstr "邮件宿主服务器为空 !" + +#: ../lib/modules/kolabUser.inc:249 ../lib/modules/kolabUser.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:257 +#: ../lib/modules/kolabSharedFolder.inc:258 +msgid "Mailbox home server name is invalid!" +msgstr "邮件宿主服务器非法!" + +#: ../lib/modules/kolabUser.inc:99 ../lib/modules/kolabUser.inc:174 +#: ../lib/modules/kolabUser.inc:199 ../lib/modules/kolabUser.inc:232 +#: ../lib/modules/kolabUser.inc:257 ../lib/modules/kolabUser.inc:310 +#: ../lib/modules/kolabUser.inc:772 +msgid "Mailbox quota" +msgstr "邮箱限额" + +#: ../lib/types/mailAlias.inc:62 +msgid "Mailing aliases (e.g. NIS mail aliases)" +msgstr "邮件别名(例如:NIS邮件别名)" + +#: ../lib/modules/nisMailAlias.inc:82 +msgid "Mails to this name are forwarded to the recipients." +msgstr "邮件转发." + +#: ../templates/pdfedit/pdfpage.php:367 ../templates/pdfedit/pdfpage.php:678 +msgid "Main" +msgstr "主要设置" + +#: ../templates/selfService/adminMain.php:483 ../help/help.inc:228 +msgid "Main page caption" +msgstr "主页标题" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:79 +msgid "Make sure your filter (above) will select all child records." +msgstr "确认您的上述过滤器将选定所有的子记录" + +#: ../lib/modules/inetOrgPerson.inc:1549 +msgid "Manage" +msgstr "管理" + +#: ../templates/pdfedit/pdfmain.php:190 +msgid "Manage existing PDF structures" +msgstr "管理已有的PDF架构" + +#: ../templates/profedit/profilemain.php:175 +msgid "Manage existing profiles" +msgstr "管理已有的设置" + +#: ../templates/pdfedit/pdfmain.php:232 +msgid "Manage logos" +msgstr "管理徽标" + +#: ../lib/modules/kolabUser.inc:112 ../lib/modules/kolabUser.inc:170 +msgid "Manage object class \"mailrecipient\"" +msgstr "管理目标类\"mailrecipient\"" + +#: ../lib/modules/sambaSamAccount.inc:1229 +msgid "Manage profile directory" +msgstr "管理配置所在的目录" + +#: ../templates/selfService/adminLogin.php:182 +msgid "Manage self service profiles" +msgstr "管理自助服务设置" + +#: ../templates/config/conflogin.php:192 +msgid "Manage server profiles" +msgstr "管理服务器设置" + +#: ../lib/modules/windowsHost.inc:86 ../lib/modules/windowsHost.inc:112 +#: ../lib/modules/windowsHost.inc:122 ../lib/modules/windowsHost.inc:146 +#: ../lib/modules/windowsHost.inc:295 ../lib/modules/windowsGroup.inc:146 +#: ../lib/modules/windowsGroup.inc:167 ../lib/modules/windowsGroup.inc:227 +#: ../lib/modules/windowsGroup.inc:268 ../lib/modules/windowsGroup.inc:352 +#: ../lib/modules/windowsGroup.inc:781 +msgid "Managed by" +msgstr "管理:" + +#: ../templates/serverInfo.php:105 +msgid "Managed suffixes" +msgstr "管理后缀" + +#: ../lib/modules/ipHost.inc:77 ../lib/modules/ipHost.inc:97 +#: ../lib/modules/ipHost.inc:106 ../lib/modules/ipHost.inc:154 +#: ../lib/modules/ipHost.inc:253 ../lib/modules/inetOrgPerson.inc:364 +#: ../lib/modules/inetOrgPerson.inc:619 ../lib/modules/inetOrgPerson.inc:670 +#: ../lib/modules/inetOrgPerson.inc:674 ../lib/modules/inetOrgPerson.inc:1561 +#: ../lib/modules/inetOrgPerson.inc:1927 ../lib/modules/inetOrgPerson.inc:3618 +#: ../lib/modules/inetOrgPerson.inc:3657 +msgid "Manager" +msgstr "管理员" + +#: ../lib/tools/ouEditor.inc:53 +msgid "Manages OU objects in your LDAP tree." +msgstr "管理LDAP树OU对象." + +#: ../lib/modules/kolabUser.inc:52 +msgid "Manual" +msgstr "手动" + +#: ../lib/modules/kolabUser.inc:54 +msgid "Manual if conflicts" +msgstr "如果冲突使用手动" + +#: ../lib/modules/customScripts.inc:172 +msgid "Manual scripts" +msgstr "手动脚本" + +#: ../lib/types/nisObjectType.inc:78 ../lib/modules/nisObject.inc:65 +#: ../lib/modules/nisObject.inc:96 ../lib/modules/nisObject.inc:112 +#: ../lib/modules/nisObject.inc:123 ../lib/modules/nisObject.inc:149 +#: ../lib/modules/nisObject.inc:210 +msgid "Mapping entry" +msgstr "映射条目" + +#: ../lib/modules/nisObject.inc:123 ../lib/modules/nisObject.inc:124 +msgid "" +"Mapping entry contains invalid characters. Only ASCII characters are allowed." +msgstr "映射条目包含非法字符,只能使用 ASCII 字符." + +#: ../lib/types/nisObjectType.inc:79 ../lib/modules/nisObject.inc:69 +#: ../lib/modules/nisObject.inc:89 ../lib/modules/nisObject.inc:113 +#: ../lib/modules/nisObject.inc:143 ../lib/modules/nisObject.inc:211 +msgid "Mapping name" +msgstr "映射的名字" + +#: ../lib/modules/kolabGroup.inc:213 ../lib/modules/kolabGroup.inc:293 +#: ../lib/modules/kolabUser.inc:388 ../lib/modules/kolabUser.inc:519 +#: ../lib/modules/kolabSharedFolder.inc:345 +#: ../lib/modules/kolabSharedFolder.inc:433 +msgid "Mark account for deletion" +msgstr "将此帐号标记为删除" + +#: ../lib/modules/kolabGroup.inc:113 ../lib/modules/kolabUser.inc:178 +#: ../lib/modules/kolabSharedFolder.inc:166 +msgid "Mark for deletion" +msgstr "标记为删除" + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:44 +msgid "Mass delete" +msgstr "批量删除" + +#: ../templates/config/profmanage.php:311 +#: ../templates/config/mainlogin.php:158 +#: ../templates/selfService/profManage.php:247 +#: ../templates/pdfedit/pdfmain.php:290 ../templates/pdfedit/pdfmain.php:337 +#: ../templates/profedit/profilemain.php:257 +#: ../templates/profedit/profilemain.php:305 ../help/help.inc:142 +msgid "Master password" +msgstr "管理员密码" + +#: ../templates/config/profmanage.php:54 +#: ../templates/selfService/profManage.php:40 +#: ../templates/pdfedit/pdfmain.php:106 ../templates/pdfedit/pdfmain.php:114 +#: ../templates/profedit/profilemain.php:121 +#: ../templates/profedit/profilemain.php:129 +msgid "Master password is wrong!" +msgstr "系统管理员密码错误!" + +#: ../templates/config/mainmanage.php:82 +msgid "Master passwords are different or empty!" +msgstr "管理员密码不同或为空!" + +#: ../templates/schema/schema.php:268 +msgid "Matching rule OID" +msgstr "匹配规则OID" + +#: ../templates/schema/schema.php:77 ../templates/schema/schema.php:78 +msgid "Matching rules" +msgstr "匹配规则" + +#: ../templates/serverInfo.php:173 +msgid "Max. file descriptors" +msgstr "最大的文件描述符" + +#: ../lib/modules/posixGroup.inc:410 ../lib/modules/posixGroup.inc:599 +#: ../lib/modules/posixGroup.inc:600 +msgid "Maximum GID number" +msgstr "最大GID号" + +#: ../lib/modules/posixGroup.inc:599 +msgid "Maximum GID number is invalid or empty!" +msgstr "最大的GID非法或为空!" + +#: ../lib/modules/posixGroup.inc:600 +msgid "Maximum GID number must be greater than minimum GID number!" +msgstr "最大GID必须大于最小GID!" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +#: ../lib/modules/posixAccount.inc:221 ../lib/modules/posixAccount.inc:239 +msgid "Maximum UID number" +msgstr "最大UID号" + +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:96 +msgid "Maximum UID number is invalid!" +msgstr "最大UID号非法" + +#: ../lib/modules/posixAccount.inc:97 ../lib/modules/posixAccount.inc:98 +msgid "Maximum UID number must be greater than minimum UID number!" +msgstr "最大UID号必须大于最小UID号!" + +#: ../lib/types/ppolicyType.inc:84 ../lib/modules/ppolicy.inc:108 +#: ../lib/modules/ppolicy.inc:152 ../lib/modules/ppolicy.inc:172 +#: ../lib/modules/ppolicy.inc:272 ../lib/modules/ppolicy.inc:477 +msgid "Maximum failure count" +msgstr "最大失败次数" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:128 +#: ../templates/3rdParty/pla/htdocs/import_form.php:36 +#: ../lib/modules/customFields.inc:156 ../lib/modules/customFields.inc:3299 +msgid "Maximum file size" +msgstr "最大文件大小" + +#: ../lib/modules/inetOrgPerson.inc:3684 +msgid "Maximum file size (kB)" +msgstr "最大文件大小(kB)" + +#: ../lib/modules/customFields.inc:3331 +msgid "Maximum file size must be a number. Please enter 0 for no limit." +msgstr "文件大小的最大值必须是一个数字. 输入0表示无限制." + +#: ../lib/modules/inetOrgPerson.inc:3683 +msgid "Maximum height (px)" +msgstr "最大高度(px)" + +#: ../lib/types/pykotaPrinterType.inc:95 ../lib/modules/pykotaPrinter.inc:103 +#: ../lib/modules/pykotaPrinter.inc:135 ../lib/modules/pykotaPrinter.inc:159 +#: ../lib/modules/pykotaPrinter.inc:195 ../lib/modules/pykotaPrinter.inc:213 +#: ../lib/modules/pykotaPrinter.inc:233 ../lib/modules/pykotaPrinter.inc:586 +msgid "Maximum job size" +msgstr "最大的任务量" + +#: ../lib/modules/dhcp_settings.inc:157 ../lib/modules/dhcp_settings.inc:210 +#: ../lib/modules/dhcp_settings.inc:225 ../lib/modules/dhcp_settings.inc:262 +#: ../lib/modules/dhcp_settings.inc:573 ../lib/modules/dhcp_settings.inc:676 +msgid "Maximum lease time" +msgstr "最大释放时间" + +#: ../templates/schema/schema.php:214 +msgid "Maximum length" +msgstr "最大长度" + +#: ../lib/lists.inc:1011 ../help/help.inc:97 +msgid "Maximum list entries" +msgstr "最大列表条目" + +#: ../lib/modules/asteriskAccount.inc:196 +msgid "" +"Maximum number of seconds of inactivity before terminating a call on hold." +msgstr "在中断一个通话之前的非活动秒数最大值" + +#: ../lib/types/ppolicyType.inc:79 ../lib/modules/shadowAccount.inc:59 +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/shadowAccount.inc:123 +#: ../lib/modules/shadowAccount.inc:172 ../lib/modules/shadowAccount.inc:189 +#: ../lib/modules/shadowAccount.inc:227 ../lib/modules/shadowAccount.inc:340 +#: ../lib/modules/shadowAccount.inc:504 ../lib/modules/ppolicy.inc:88 +#: ../lib/modules/ppolicy.inc:144 ../lib/modules/ppolicy.inc:167 +#: ../lib/modules/ppolicy.inc:168 ../lib/modules/ppolicy.inc:206 +#: ../lib/modules/ppolicy.inc:473 ../lib/modules/sambaDomain.inc:129 +#: ../lib/modules/sambaDomain.inc:197 ../lib/modules/sambaDomain.inc:220 +#: ../lib/modules/sambaDomain.inc:222 ../lib/modules/sambaDomain.inc:332 +#: ../lib/modules/sambaDomain.inc:609 +msgid "Maximum password age" +msgstr "密码最长生命" + +#: ../lib/modules/inetOrgPerson.inc:3682 +msgid "Maximum width (px)" +msgstr "最大宽度(px)" + +#: ../lib/modules/qmailGroup.inc:80 ../lib/modules/qmailGroup.inc:204 +#: ../lib/modules/qmailGroup.inc:208 ../lib/modules/qmailGroup.inc:337 +#: ../lib/modules/qmailGroup.inc:402 ../lib/modules/qmailGroup.inc:425 +#: ../lib/modules/qmailGroup.inc:514 ../lib/modules/qmailGroup.inc:1063 +msgid "Member email addresses" +msgstr "用户邮件的地址." + +#: ../lib/modules/qmailGroup.inc:78 ../lib/modules/qmailGroup.inc:156 +#: ../lib/modules/qmailGroup.inc:160 ../lib/modules/qmailGroup.inc:279 +#: ../lib/modules/qmailGroup.inc:381 ../lib/modules/qmailGroup.inc:516 +#: ../lib/modules/qmailGroup.inc:783 ../lib/modules/qmailGroup.inc:1062 +msgid "Member entries" +msgstr "用户条目" + +#: ../lib/modules/qmailGroup.inc:82 ../lib/modules/qmailGroup.inc:180 +#: ../lib/modules/qmailGroup.inc:184 ../lib/modules/qmailGroup.inc:303 +#: ../lib/modules/qmailGroup.inc:390 ../lib/modules/qmailGroup.inc:515 +#: ../lib/modules/qmailGroup.inc:1064 +msgid "Member filter" +msgstr "用户过滤表达式" + +#: ../lib/types/netgroup.inc:94 ../lib/modules/nisnetgroup.inc:95 +#: ../lib/modules/nisnetgroup.inc:99 ../lib/modules/nisnetgroup.inc:132 +#: ../lib/modules/nisnetgroup.inc:142 ../lib/modules/nisnetgroup.inc:286 +#: ../lib/modules/nisnetgroup.inc:583 ../lib/modules/organizationalRole.inc:93 +#: ../lib/modules/organizationalRole.inc:97 +#: ../lib/modules/organizationalRole.inc:130 +#: ../lib/modules/organizationalRole.inc:138 +#: ../lib/modules/organizationalRole.inc:193 +#: ../lib/modules/organizationalRole.inc:341 +#: ../lib/modules/organizationalRole.inc:461 +#: ../lib/modules/windowsGroup.inc:130 ../lib/modules/windowsGroup.inc:134 +#: ../lib/modules/windowsGroup.inc:211 ../lib/modules/windowsGroup.inc:260 +#: ../lib/modules/windowsGroup.inc:790 ../lib/modules/groupOfNames.inc:101 +#: ../lib/modules/groupOfNames.inc:105 ../lib/modules/groupOfNames.inc:151 +#: ../lib/modules/groupOfNames.inc:159 ../lib/modules/groupOfNames.inc:168 +#: ../lib/modules/groupOfNames.inc:247 ../lib/modules/groupOfNames.inc:553 +#: ../lib/modules/groupOfNames.inc:714 +msgid "Members" +msgstr "组成员" + +#: ../lib/modules/groupOfNames.inc:109 ../lib/modules/groupOfNames.inc:179 +msgid "Members are optional" +msgstr "组员是可选的" + +#: ../lib/modules/qmailGroup.inc:94 ../lib/modules/qmailGroup.inc:196 +#: ../lib/modules/qmailGroup.inc:319 ../lib/modules/qmailGroup.inc:396 +#: ../lib/modules/qmailGroup.inc:617 ../lib/modules/qmailGroup.inc:1075 +msgid "Members only" +msgstr "仅成员" + +#: ../lib/modules/qmailUser.inc:108 ../lib/modules/qmailUser.inc:143 +#: ../lib/modules/qmailUser.inc:223 ../lib/modules/qmailUser.inc:316 +#: ../lib/modules/qmailUser.inc:412 ../lib/modules/qmailUser.inc:686 +#: ../lib/modules/qmailUser.inc:1145 +msgid "Message count limit" +msgstr "信息总和的限制" + +#: ../lib/modules/qmailUser.inc:110 ../lib/modules/qmailUser.inc:153 +#: ../lib/modules/qmailUser.inc:227 ../lib/modules/qmailUser.inc:324 +#: ../lib/modules/qmailUser.inc:415 ../lib/modules/qmailUser.inc:697 +#: ../lib/modules/qmailUser.inc:1146 +msgid "Message size limit" +msgstr "邮件大小限制" + +#: ../lib/modules/qmailUser.inc:120 ../lib/modules/qmailUser.inc:171 +#: ../lib/modules/qmailUser.inc:247 ../lib/modules/qmailUser.inc:366 +#: ../lib/modules/qmailUser.inc:430 ../lib/modules/qmailUser.inc:601 +#: ../lib/modules/qmailUser.inc:1149 ../lib/modules/qmailGroup.inc:139 +#: ../lib/modules/qmailGroup.inc:254 ../lib/modules/qmailGroup.inc:372 +#: ../lib/modules/qmailGroup.inc:508 ../lib/modules/qmailGroup.inc:1058 +msgid "Message store" +msgstr "邮件存储" + +#: ../lib/modules/sambaSamAccount.inc:563 +msgid "Mid-Atlantic" +msgstr "大西洋地区中部" + +#: ../lib/modules/sambaSamAccount.inc:554 +msgid "Midway Island, Samoa" +msgstr "中途岛,萨摩亚" + +#: ../lib/modules/windowsUser.inc:286 ../lib/modules/inetOrgPerson.inc:317 +msgid "Miller" +msgstr "米勒" + +#: ../lib/modules/sambaDomain.inc:101 ../lib/modules/sambaDomain.inc:190 +#: ../lib/modules/sambaDomain.inc:276 ../lib/modules/sambaDomain.inc:605 +msgid "Minimal password length" +msgstr "最短密码长度" + +#: ../lib/modules/posixGroup.inc:407 ../lib/modules/posixGroup.inc:598 +msgid "Minimum GID number" +msgstr "最小GID号" + +#: ../lib/modules/posixGroup.inc:598 +msgid "Minimum GID number is invalid or empty!" +msgstr "最小GID错误或为空" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +#: ../lib/modules/posixAccount.inc:218 ../lib/modules/posixAccount.inc:236 +msgid "Minimum UID number" +msgstr "最小UID号" + +#: ../lib/modules/posixAccount.inc:93 ../lib/modules/posixAccount.inc:95 +msgid "Minimum UID number is invalid!" +msgstr "最小UID非法!" + +#: ../lib/modules/passwordSelfReset.inc:92 +#: ../lib/modules/passwordSelfReset.inc:514 +msgid "Minimum answer length" +msgstr "最短答案的长度" + +#: ../templates/config/mainmanage.php:392 +msgid "Minimum character classes" +msgstr "最少字符类别" + +#: ../templates/config/mainmanage.php:388 +msgid "Minimum lowercase characters" +msgstr "最少小写字母字符数" + +#: ../templates/config/mainmanage.php:390 +msgid "Minimum numeric characters" +msgstr "最少数字字符数" + +#: ../lib/types/ppolicyType.inc:78 ../lib/modules/shadowAccount.inc:57 +#: ../lib/modules/shadowAccount.inc:118 ../lib/modules/shadowAccount.inc:171 +#: ../lib/modules/shadowAccount.inc:185 ../lib/modules/shadowAccount.inc:221 +#: ../lib/modules/shadowAccount.inc:332 ../lib/modules/shadowAccount.inc:503 +#: ../lib/modules/ppolicy.inc:84 ../lib/modules/ppolicy.inc:143 +#: ../lib/modules/ppolicy.inc:166 ../lib/modules/ppolicy.inc:198 +#: ../lib/modules/ppolicy.inc:472 ../lib/modules/sambaDomain.inc:125 +#: ../lib/modules/sambaDomain.inc:196 ../lib/modules/sambaDomain.inc:221 +#: ../lib/modules/sambaDomain.inc:324 ../lib/modules/sambaDomain.inc:608 +msgid "Minimum password age" +msgstr "密码最短生命" + +#: ../templates/config/mainmanage.php:386 ../lib/types/ppolicyType.inc:87 +#: ../lib/modules/ppolicy.inc:120 ../lib/modules/ppolicy.inc:147 +#: ../lib/modules/ppolicy.inc:175 ../lib/modules/ppolicy.inc:250 +#: ../lib/modules/ppolicy.inc:480 +msgid "Minimum password length" +msgstr "最短密码长度" + +#: ../templates/config/mainmanage.php:391 +msgid "Minimum symbolic characters" +msgstr "最少标点符号字符数" + +#: ../lib/modules/bindDLZ.inc:223 ../lib/modules/bindDLZ.inc:326 +#: ../lib/modules/bindDLZ.inc:427 ../lib/modules/bindDLZ.inc:525 +#: ../lib/modules/bindDLZ.inc:1030 ../lib/modules/bindDLZ.inc:1552 +msgid "Minimum time" +msgstr "最小时间" + +#: ../templates/config/mainmanage.php:389 +msgid "Minimum uppercase characters" +msgstr "最少的大字字母字符数" + +#: ../templates/3rdParty/pla/lib/import_functions.php:429 +msgid "Missing attributes for" +msgstr "缺失属性" + +#: ../templates/3rdParty/pla/lib/import_functions.php:443 +msgid "Missing modify command add, delete or replace" +msgstr "取消了增,删,改等修改命令" + +#: ../lib/types/user.inc:207 ../lib/modules/inetOrgPerson.inc:74 +#: ../lib/modules/inetOrgPerson.inc:160 ../lib/modules/inetOrgPerson.inc:436 +#: ../lib/modules/inetOrgPerson.inc:589 ../lib/modules/inetOrgPerson.inc:718 +#: ../lib/modules/inetOrgPerson.inc:722 ../lib/modules/inetOrgPerson.inc:1423 +#: ../lib/modules/inetOrgPerson.inc:1426 ../lib/modules/inetOrgPerson.inc:1935 +#: ../lib/modules/inetOrgPerson.inc:3600 ../lib/modules/inetOrgPerson.inc:3652 +msgid "Mobile number" +msgstr "手机号码" + +#: ../lib/modules/inetOrgPerson.inc:2547 +msgid "Mobile telephone number" +msgstr "手机号码" + +#: ../lib/modules/qmailGroup.inc:86 ../lib/modules/qmailGroup.inc:212 +#: ../lib/modules/qmailGroup.inc:216 ../lib/modules/qmailGroup.inc:345 +#: ../lib/modules/qmailGroup.inc:405 ../lib/modules/qmailGroup.inc:427 +#: ../lib/modules/qmailGroup.inc:517 ../lib/modules/qmailGroup.inc:1066 +msgid "Moderator email addresses" +msgstr "主持用户的邮件地址" + +#: ../lib/modules/qmailGroup.inc:84 ../lib/modules/qmailGroup.inc:164 +#: ../lib/modules/qmailGroup.inc:168 ../lib/modules/qmailGroup.inc:287 +#: ../lib/modules/qmailGroup.inc:384 ../lib/modules/qmailGroup.inc:518 +#: ../lib/modules/qmailGroup.inc:786 ../lib/modules/qmailGroup.inc:1065 +msgid "Moderator entries" +msgstr "主持条目" + +#: ../lib/modules/qmailGroup.inc:76 ../lib/modules/qmailGroup.inc:106 +#: ../lib/modules/qmailGroup.inc:200 ../lib/modules/qmailGroup.inc:329 +#: ../lib/modules/qmailGroup.inc:399 ../lib/modules/qmailGroup.inc:603 +#: ../lib/modules/qmailGroup.inc:1061 +msgid "Moderator text" +msgstr "主持文本" + +#: ../lib/modules/qmailGroup.inc:201 +msgid "" +"Moderator text that is used to specify an own approval text used if the list " +"is moderated. The usual %HEADER% magic of qmail-reply etc. can be used here." +msgstr "" +"主持文本用来指定各自列表的批准文本. qmail中通常的%HEADER%标志可以在这里使用." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:61 +msgid "Modification not successful!" +msgstr "修改不成功!" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:59 +msgid "Modification successful!" +msgstr "修改成功!" + +#: ../lib/modules/generalInformation.inc:92 +msgid "Modification time" +msgstr "修改时间" + +#: ../lib/modules/generalInformation.inc:88 +msgid "Modified by" +msgstr "修改者" + +#: ../templates/serverInfo.php:314 ../templates/serverInfo.php:387 +#: ../templates/multiEdit.php:126 +msgid "Modify" +msgstr "修改" + +#: ../templates/serverInfo.php:328 ../templates/serverInfo.php:393 +msgid "Modify RDN" +msgstr "修改RDN" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:57 +msgid "Modify group" +msgstr "修改组" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2110 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2111 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2114 +msgid "Modify group members" +msgstr "修改组号" + +#: ../templates/3rdParty/pla/htdocs/import.php:32 +msgid "Modifying" +msgstr "修改中" + +#: ../templates/config/confmodules.php:176 +#: ../templates/config/confmain.php:217 +#: ../templates/config/moduleSettings.php:175 +#: ../templates/config/conftypes.php:194 +#: ../templates/selfService/adminMain.php:403 +msgid "Module settings" +msgstr "模块设置" + +#: ../templates/config/confmodules.php:172 +#: ../templates/config/confmain.php:213 +#: ../templates/config/moduleSettings.php:171 +#: ../templates/config/conftypes.php:190 +msgid "Modules" +msgstr "模块" + +#: ../lib/modules/sambaSamAccount.inc:1380 +msgid "Monday" +msgstr "星期一" + +#: ../lib/modules/sambaSamAccount.inc:558 +msgid "Mountain Time (US & Canada)" +msgstr "时区(美国和加拿大)" + +#: ../lib/modules/quota.inc:105 ../lib/modules/quota.inc:399 +#: ../lib/modules/quota.inc:506 ../lib/modules/quota.inc:633 +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:122 +#: ../lib/modules/systemQuotas.inc:382 +msgid "Mountpoint" +msgstr "挂接点" + +#: ../lib/modules/systemQuotas.inc:97 ../lib/modules/systemQuotas.inc:98 +msgid "Mountpoint contains invalid characters." +msgstr "装配点包含非法字符" + +#: ../lib/modules/quota.inc:106 +msgid "Mountpoint of device with enabled quotas." +msgstr "可限制配额设备挂接点" + +#: ../lib/modules/customFields.inc:636 +msgid "Move down" +msgstr "向下移动" + +#: ../lib/modules/customFields.inc:630 +msgid "Move up" +msgstr "向上移动" + +#: ../templates/multiEdit.php:78 ../lib/tools/multiEdit.inc:44 +msgid "Multi edit" +msgstr "多次编辑" + +#: ../lib/modules/customFields.inc:1910 ../lib/modules/customFields.inc:3304 +msgid "Multi value" +msgstr "多值" + +#: ../lib/modules/customFields.inc:3162 +msgid "Multi-select fields must not contain empty values." +msgstr "多选域不能包含空值." + +#: ../lib/modules/pykotaPrinter.inc:125 +#: ../lib/modules/zarafaDynamicGroup.inc:76 ../lib/modules/zarafaGroup.inc:78 +#: ../lib/modules/eduPerson.inc:98 ../lib/modules/eduPerson.inc:111 +#: ../lib/modules/eduPerson.inc:123 ../lib/modules/eduPerson.inc:139 +#: ../lib/modules/eduPerson.inc:147 ../lib/modules/zarafaUser.inc:164 +#: ../lib/modules/sudoRole.inc:100 ../lib/modules/sudoRole.inc:105 +#: ../lib/modules/sudoRole.inc:110 ../lib/modules/sudoRole.inc:115 +#: ../lib/modules/sudoRole.inc:120 ../lib/modules/sudoRole.inc:125 +msgid "Multiple values are separated by comma." +msgstr "用逗号分隔多值." + +#: ../lib/modules/kolabGroup.inc:92 ../lib/modules/kolabGroup.inc:101 +#: ../lib/modules/kolabGroup.inc:110 ../lib/modules/nisMailAliasUser.inc:81 +#: ../lib/modules/nisMailAliasUser.inc:89 ../lib/modules/puppetClient.inc:85 +#: ../lib/modules/puppetClient.inc:97 ../lib/modules/puppetClient.inc:105 +#: ../lib/modules/device.inc:74 ../lib/modules/bindDLZ.inc:98 +#: ../lib/modules/bindDLZ.inc:107 ../lib/modules/bindDLZ.inc:112 +#: ../lib/modules/bindDLZ.inc:117 ../lib/modules/bindDLZ.inc:122 +#: ../lib/modules/bindDLZ.inc:127 ../lib/modules/bindDLZ.inc:132 +#: ../lib/modules/bindDLZ.inc:144 ../lib/modules/bindDLZ.inc:152 +#: ../lib/modules/bindDLZ.inc:160 ../lib/modules/bindDLZ.inc:168 +#: ../lib/modules/bindDLZ.inc:176 ../lib/modules/bindDLZ.inc:184 +#: ../lib/modules/bindDLZ.inc:192 ../lib/modules/bindDLZ.inc:200 +#: ../lib/modules/bindDLZ.inc:208 ../lib/modules/windowsUser.inc:149 +#: ../lib/modules/windowsUser.inc:185 ../lib/modules/windowsUser.inc:221 +#: ../lib/modules/windowsUser.inc:232 ../lib/modules/kolabUser.inc:158 +#: ../lib/modules/kolabUser.inc:167 ../lib/modules/inetOrgPerson.inc:655 +#: ../lib/modules/inetOrgPerson.inc:675 ../lib/modules/inetOrgPerson.inc:683 +#: ../lib/modules/inetOrgPerson.inc:691 ../lib/modules/inetOrgPerson.inc:699 +#: ../lib/modules/inetOrgPerson.inc:715 ../lib/modules/inetOrgPerson.inc:723 +#: ../lib/modules/inetOrgPerson.inc:731 ../lib/modules/inetOrgPerson.inc:739 +#: ../lib/modules/inetOrgPerson.inc:747 ../lib/modules/inetOrgPerson.inc:759 +#: ../lib/modules/inetOrgPerson.inc:779 ../lib/modules/inetOrgPerson.inc:791 +#: ../lib/modules/inetOrgPerson.inc:799 ../lib/modules/inetOrgPerson.inc:807 +#: ../lib/modules/inetOrgPerson.inc:819 ../lib/modules/inetOrgPerson.inc:827 +#: ../lib/modules/inetOrgPerson.inc:843 ../lib/modules/inetOrgPerson.inc:851 +#: ../lib/modules/inetOrgPerson.inc:859 ../lib/modules/systemQuotas.inc:70 +#: ../lib/modules/freeRadius.inc:101 ../lib/modules/kolabSharedFolder.inc:126 +#: ../lib/modules/kolabSharedFolder.inc:135 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/qmailGroup.inc:136 ../lib/modules/qmailGroup.inc:149 +#: ../lib/modules/qmailGroup.inc:161 ../lib/modules/qmailGroup.inc:169 +#: ../lib/modules/qmailGroup.inc:177 ../lib/modules/qmailGroup.inc:185 +#: ../lib/modules/qmailGroup.inc:193 ../lib/modules/qmailGroup.inc:209 +#: ../lib/modules/qmailGroup.inc:217 ../lib/modules/qmailGroup.inc:225 +#: ../lib/modules/groupOfNames.inc:98 +msgid "Multiple values are separated by semicolon." +msgstr "用逗号分隔多值." + +#: ../lib/modules/asteriskAccount.inc:207 +#: ../lib/modules/asteriskAccount.inc:290 +#: ../lib/modules/asteriskAccount.inc:486 +#: ../lib/modules/asteriskAccount.inc:717 +#: ../lib/modules/asteriskAccount.inc:1006 +#: ../lib/modules/asteriskAccount.inc:1281 +msgid "Music on hold" +msgstr "彩铃" + +#: ../lib/modules/asteriskAccount.inc:208 +msgid "Music to play on hold." +msgstr "彩铃" + +#: ../lib/modules/ipHost.inc:93 ../lib/modules/windowsHost.inc:108 +#: ../lib/modules/device.inc:111 ../lib/modules/windowsUser.inc:334 +#: ../lib/modules/inetOrgPerson.inc:398 ../lib/modules/inetOrgPerson.inc:406 +#: ../lib/modules/inetOrgPerson.inc:520 +msgid "MyCity" +msgstr "城市" + +#: ../lib/modules/windowsUser.inc:316 ../lib/modules/inetOrgPerson.inc:382 +msgid "Mystreetname 42" +msgstr "街道42号" + +#: ../lib/modules/asteriskAccount.inc:163 +#: ../lib/modules/asteriskAccount.inc:279 +#: ../lib/modules/asteriskAccount.inc:406 +#: ../lib/modules/asteriskAccount.inc:669 +#: ../lib/modules/asteriskAccount.inc:995 +#: ../lib/modules/asteriskAccount.inc:1259 +msgid "NAT" +msgstr "NAT" + +#: ../lib/modules/asteriskAccount.inc:164 +msgid "NAT setting for this account." +msgstr "此帐号的NAT设置" + +#: ../lib/modules/windowsUser.inc:772 ../lib/modules/windowsGroup.inc:370 +msgid "NIS" +msgstr "NIS" + +#: ../lib/modules/windowsUser.inc:256 ../lib/modules/windowsUser.inc:466 +#: ../lib/modules/windowsUser.inc:481 ../lib/modules/windowsUser.inc:535 +#: ../lib/modules/windowsUser.inc:567 ../lib/modules/windowsUser.inc:777 +#: ../lib/modules/windowsUser.inc:1614 ../lib/modules/windowsGroup.inc:154 +#: ../lib/modules/windowsGroup.inc:169 ../lib/modules/windowsGroup.inc:243 +#: ../lib/modules/windowsGroup.inc:251 ../lib/modules/windowsGroup.inc:274 +#: ../lib/modules/windowsGroup.inc:375 ../lib/modules/windowsGroup.inc:750 +msgid "NIS domain" +msgstr "NIS域" + +#: ../lib/modules/windowsUser.inc:257 ../lib/modules/windowsGroup.inc:155 +msgid "NIS domain name." +msgstr "NIS 域名" + +#: ../lib/modules/windowsUser.inc:252 ../lib/modules/windowsUser.inc:458 +#: ../lib/modules/windowsUser.inc:532 ../lib/modules/windowsUser.inc:566 +#: ../lib/modules/windowsUser.inc:620 ../lib/modules/windowsUser.inc:774 +#: ../lib/modules/windowsUser.inc:1613 ../lib/modules/windowsGroup.inc:150 +#: ../lib/modules/windowsGroup.inc:168 ../lib/modules/windowsGroup.inc:235 +#: ../lib/modules/windowsGroup.inc:271 ../lib/modules/windowsGroup.inc:289 +#: ../lib/modules/windowsGroup.inc:372 ../lib/modules/windowsGroup.inc:749 +msgid "NIS name" +msgstr "NIS名" + +#: ../lib/modules/windowsUser.inc:620 ../lib/modules/windowsUser.inc:621 +#: ../lib/modules/windowsGroup.inc:289 ../lib/modules/windowsGroup.inc:290 +msgid "" +"NIS name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "NIS名包含非法字符,合法字符包括 a-z, A-Z, 0-9 和 .-_!" + +#: ../lib/modules/nisnetgroup.inc:67 +msgid "NIS net group" +msgstr "NIS网络组" + +#: ../lib/types/netgroup.inc:62 +msgid "NIS netgroup entries" +msgstr "NIS网络组条目" + +#: ../lib/types/netgroup.inc:53 +msgid "NIS netgroups" +msgstr "NIS网络组" + +#: ../lib/modules/nisObject.inc:47 +msgid "NIS object" +msgstr "NIS 对象" + +#: ../lib/types/nisObjectType.inc:155 +#, php-format +msgid "NIS object count: %s" +msgstr "NIS 对象总计:%s" + +#: ../lib/types/nisObjectType.inc:48 +msgid "NIS object entries" +msgstr "NIS 对象条目" + +#: ../lib/types/nisObjectType.inc:39 +msgid "NIS objects" +msgstr "NIS 对象" + +#: ../lib/modules/bindDLZ.inc:120 ../lib/modules/bindDLZ.inc:364 +#: ../lib/modules/bindDLZ.inc:370 ../lib/modules/bindDLZ.inc:489 +msgid "NS record" +msgstr "NS条目" + +#: ../templates/serverInfo.php:147 ../templates/masscreate.php:294 +#: ../templates/masscreate.php:368 ../templates/schema/schema.php:268 +#: ../lib/types/automountType.inc:86 ../lib/types/automountType.inc:249 +#: ../lib/types/oracleContextType.inc:77 ../lib/types/ppolicyType.inc:77 +#: ../lib/types/bind.inc:190 ../lib/modules/device.inc:61 +#: ../lib/modules/device.inc:89 ../lib/modules/device.inc:120 +#: ../lib/modules/device.inc:170 ../lib/modules/device.inc:418 +#: ../lib/modules/range.inc:117 ../lib/modules/range.inc:138 +#: ../lib/modules/range.inc:553 ../lib/modules/nisObject.inc:61 +#: ../lib/modules/nisObject.inc:81 ../lib/modules/nisObject.inc:111 +#: ../lib/modules/nisObject.inc:137 ../lib/modules/nisObject.inc:209 +#: ../lib/modules/ppolicy.inc:80 ../lib/modules/ppolicy.inc:142 +#: ../lib/modules/ppolicy.inc:165 ../lib/modules/ppolicy.inc:190 +#: ../lib/modules/ppolicy.inc:471 ../lib/modules/automount.inc:64 +#: ../lib/modules/automount.inc:80 ../lib/modules/automount.inc:103 +#: ../lib/modules/automount.inc:128 ../lib/modules/automount.inc:181 +#: ../lib/modules/kolabSharedFolder.inc:112 +#: ../lib/modules/kolabSharedFolder.inc:174 +#: ../lib/modules/kolabSharedFolder.inc:233 +#: ../lib/modules/kolabSharedFolder.inc:261 +#: ../lib/modules/kolabSharedFolder.inc:279 +#: ../lib/modules/kolabSharedFolder.inc:557 +#: ../lib/modules/asteriskExtension.inc:822 +#: ../lib/modules/oracleService.inc:61 ../lib/modules/oracleService.inc:77 +#: ../lib/modules/oracleService.inc:98 ../lib/modules/oracleService.inc:121 +#: ../lib/modules/oracleService.inc:170 ../lib/modules/customFields.inc:84 +#: ../lib/modules/customFields.inc:1041 ../lib/modules/customFields.inc:1688 +#: ../lib/modules/organizationalRole.inc:186 +#: ../lib/modules/groupOfNames.inc:232 +msgid "Name" +msgstr "名" + +#: ../lib/modules/nisMailAliasUser.inc:97 +msgid "Name of new alias entry." +msgstr "新别名条目的名字" + +#: ../lib/modules/zarafaAddressList.inc:64 +msgid "Name of the address list which should be created." +msgstr "将要建立的地址列表名" + +#: ../lib/modules/bindDLZ.inc:155 ../lib/modules/bindDLZ.inc:159 +#: ../lib/modules/bindDLZ.inc:364 ../lib/modules/bindDLZ.inc:506 +#: ../lib/modules/bindDLZ.inc:1169 +msgid "Name server" +msgstr "DNS服务器" + +#: ../lib/modules/bindDLZ.inc:431 ../lib/modules/bindDLZ.inc:1569 +msgid "Name servers" +msgstr "域名服务器" + +#: ../lib/modules/bindDLZ.inc:1167 +msgid "Name servers (\"NS\" records)" +msgstr "DNS服务器 (\"NS\" 记录)" + +#: ../help/help.inc:189 +msgid "" +"Name under which the profile will be saved. If a profile with the same name " +"exists, it will be overwritten." +msgstr "将来保存的配置名,如果配置名存在,会被覆盖." + +#: ../lib/modules/namedObject.inc:45 +msgid "Named object" +msgstr "已命名对象" + +#: ../lib/modules/dhcp_settings.inc:193 ../lib/modules/dhcp_settings.inc:216 +#: ../lib/modules/dhcp_settings.inc:610 ../lib/modules/dhcp_settings.inc:686 +#: ../lib/modules/freeRadius.inc:88 ../lib/modules/freeRadius.inc:124 +#: ../lib/modules/freeRadius.inc:138 ../lib/modules/freeRadius.inc:201 +#: ../lib/modules/freeRadius.inc:228 ../lib/modules/freeRadius.inc:285 +#: ../lib/modules/freeRadius.inc:538 +msgid "Net mask" +msgstr "子网掩码" + +#: ../lib/modules/dhcp_settings.inc:169 ../lib/modules/dhcp_settings.inc:213 +#: ../lib/modules/dhcp_settings.inc:228 ../lib/modules/dhcp_settings.inc:280 +#: ../lib/modules/dhcp_settings.inc:581 ../lib/modules/dhcp_settings.inc:679 +msgid "Netbios name servers" +msgstr "Netbios命名服务器" + +#: ../lib/modules/dhcp_settings.inc:173 ../lib/modules/dhcp_settings.inc:214 +#: ../lib/modules/dhcp_settings.inc:230 ../lib/modules/dhcp_settings.inc:286 +#: ../lib/modules/dhcp_settings.inc:591 ../lib/modules/dhcp_settings.inc:680 +msgid "Netbios node type" +msgstr "Netbios 节点类型" + +#: ../lib/types/dhcp.inc:118 ../lib/types/dhcp.inc:172 +msgid "New DHCP" +msgstr "新DHCP" + +#: ../lib/types/bind.inc:100 ../lib/types/bind.inc:161 +msgid "New DNS entry" +msgstr "新DNS条目" + +#: ../lib/types/nisObjectType.inc:102 ../lib/types/nisObjectType.inc:157 +msgid "New NIS object" +msgstr "新 NIS 对象" + +#: ../templates/ou_edit.php:77 +msgid "New OU created successfully." +msgstr "新OU建立成功." + +#: ../lib/modules/windowsUser.inc:340 ../lib/modules/inetOrgPerson.inc:528 +msgid "New York" +msgstr "纽约" + +#: ../lib/types/zarafaAddressListType.inc:117 +#: ../lib/types/zarafaAddressListType.inc:146 +msgid "New address list" +msgstr "新地址列表" + +#: ../lib/types/mailAlias.inc:114 ../lib/types/mailAlias.inc:143 +#: ../lib/types/alias.inc:114 ../lib/types/alias.inc:143 +msgid "New alias" +msgstr "新别名" + +#: ../lib/types/automountType.inc:110 ../lib/types/automountType.inc:217 +msgid "New automount entry" +msgstr "新自动安装条目" + +#: ../lib/types/automountType.inc:233 ../lib/types/automountType.inc:234 +msgid "New automount map" +msgstr "新自动装配图" + +#: ../lib/types/pykotaBillingCodeType.inc:116 +#: ../lib/types/pykotaBillingCodeType.inc:165 +msgid "New billing code" +msgstr "新账单号" + +#: ../lib/types/oracleContextType.inc:101 +#: ../lib/types/oracleContextType.inc:188 +msgid "New database entry" +msgstr "新数据库条目" + +#: ../templates/config/profmanage.php:146 +msgid "New default profile set successfully." +msgstr "新缺省配置设置成功." + +#: ../lib/types/smbDomain.inc:114 ../lib/types/smbDomain.inc:169 +msgid "New domain" +msgstr "新域" + +#: ../lib/types/asteriskExt.inc:117 ../lib/types/asteriskExt.inc:145 +msgid "New extension" +msgstr "新扩展" + +#: ../templates/pdfedit/pdfpage.php:620 +msgid "New field" +msgstr "新字段" + +#: ../lib/types/gon.inc:140 ../lib/types/gon.inc:204 +#: ../lib/types/zarafaDynamicGroupType.inc:119 +#: ../lib/types/zarafaDynamicGroupType.inc:167 ../lib/types/group.inc:163 +#: ../lib/types/group.inc:242 ../lib/types/netgroup.inc:116 +#: ../lib/types/netgroup.inc:171 +msgid "New group" +msgstr "新组" + +#: ../lib/types/host.inc:128 ../lib/types/host.inc:195 +msgid "New host" +msgstr "新主机" + +#: ../lib/modules/inetLocalMailRecipient.inc:167 +msgid "New local address" +msgstr "新本地邮件地址" + +#: ../templates/config/mainmanage.php:456 +msgid "New master password" +msgstr "新管理员密码" + +#: ../templates/config/mainmanage.php:79 +msgid "New master password set successfully." +msgstr "新管理员密码设置成功." + +#: ../lib/lists.inc:114 +msgid "New object" +msgstr "新对象" + +#: ../templates/ou_edit.php:185 ../help/help.inc:263 +msgid "New organisational unit" +msgstr "新组织单元" + +#: ../templates/config/confmain.php:451 +#: ../lib/modules/sambaSamAccount.inc:2272 +#: ../lib/modules/posixAccount.inc:2536 ../lib/modules/windowsUser.inc:1719 +#: ../lib/modules/passwordSelfReset.inc:1059 +msgid "New password" +msgstr "新密码" + +#: ../templates/config/profmanage.php:133 +msgid "New password set successfully." +msgstr "新密码设置成功." + +#: ../lib/types/ppolicyType.inc:122 ../lib/types/ppolicyType.inc:151 +msgid "New policy" +msgstr "新策略" + +#: ../lib/modules/range.inc:113 ../lib/modules/range.inc:627 +msgid "New pool" +msgstr "新地址池" + +#: ../lib/types/pykotaPrinterType.inc:117 +#: ../lib/types/pykotaPrinterType.inc:166 +msgid "New printer" +msgstr "新打印机" + +#: ../templates/config/profmanage.php:261 +#: ../templates/selfService/profManage.php:222 +msgid "New profile name" +msgstr "新配置文件名" + +#: ../lib/modules/range.inc:109 ../lib/modules/range.inc:136 +#: ../lib/modules/range.inc:542 ../lib/modules/range.inc:616 +msgid "New range" +msgstr "新范围" + +#: ../lib/modules/nisMailAlias.inc:208 +msgid "New recipient" +msgstr "新收信者" + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:81 +msgid "New required attributes" +msgstr "新必要属性" + +#: ../lib/types/gon.inc:211 ../lib/types/group.inc:249 +msgid "New role" +msgstr "新角色" + +#: ../templates/pdfedit/pdfpage.php:588 +msgid "New section" +msgstr "新节" + +#: ../lib/types/kolabSharedFolderType.inc:114 +#: ../lib/types/kolabSharedFolderType.inc:143 +msgid "New shared folder" +msgstr "新共享文件夹" + +#: ../lib/types/sudo.inc:106 ../lib/types/sudo.inc:161 +msgid "New sudo role" +msgstr "新sudo角色" + +#: ../lib/types/user.inc:172 ../lib/types/user.inc:531 +msgid "New user" +msgstr "新用户" + +#: ../lib/modules/inetOrgPerson.inc:1859 +msgid "New user certificate" +msgstr "新用户认证" + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "New value" +msgstr "新值" + +#: ../lib/types/bind.inc:174 ../lib/types/bind.inc:175 +msgid "New zone" +msgstr "新域" + +#: ../lib/modules/sambaDomain.inc:85 ../lib/modules/sambaDomain.inc:165 +#: ../lib/modules/sambaDomain.inc:186 ../lib/modules/sambaDomain.inc:361 +#: ../lib/modules/sambaDomain.inc:601 +msgid "Next RID" +msgstr "下一个RID" + +#: ../lib/modules/sambaDomain.inc:212 ../lib/modules/sambaDomain.inc:213 +msgid "Next RID is not a number!" +msgstr "下一个RID不是一个数字!" + +#: ../lib/modules/sambaDomain.inc:86 +msgid "Next RID to use when creating accounts (only used by Winbind)." +msgstr "建立帐号时使用的下一下RID(Winbind)." + +#: ../lib/modules/sambaDomain.inc:94 +msgid "Next RID to use when creating group accounts (only used by Winbind)." +msgstr "建立组帐号时使用的下一下RID(Winbind)." + +#: ../lib/modules/sambaDomain.inc:90 +msgid "Next RID to use when creating user accounts (only used by Winbind)." +msgstr "建立用户帐号使用的下一个RID(Winbind)." + +#: ../lib/modules/sambaDomain.inc:93 ../lib/modules/sambaDomain.inc:177 +#: ../lib/modules/sambaDomain.inc:188 ../lib/modules/sambaDomain.inc:377 +#: ../lib/modules/sambaDomain.inc:603 +msgid "Next group RID" +msgstr "下一个组的RID" + +#: ../lib/modules/sambaDomain.inc:216 ../lib/modules/sambaDomain.inc:217 +msgid "Next group RID is not a number!" +msgstr "下一个组的RID不是数字!" + +#: ../lib/modules/sambaDomain.inc:89 ../lib/modules/sambaDomain.inc:171 +#: ../lib/modules/sambaDomain.inc:187 ../lib/modules/sambaDomain.inc:369 +#: ../lib/modules/sambaDomain.inc:602 +msgid "Next user RID" +msgstr "下一个用户的RID" + +#: ../lib/modules/sambaDomain.inc:214 ../lib/modules/sambaDomain.inc:215 +msgid "Next user RID is not a number!" +msgstr "下一个用户的RID不是数字!" + +#: ../lib/modules/eduPerson.inc:101 ../lib/modules/eduPerson.inc:188 +#: ../lib/modules/eduPerson.inc:226 ../lib/modules/eduPerson.inc:342 +#: ../lib/modules/eduPerson.inc:584 +msgid "Nick names" +msgstr "昵称" + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/pykotaPrinter.inc:52 +#: ../lib/modules/pykotaPrinter.inc:168 ../lib/modules/pykotaPrinter.inc:169 +#: ../lib/modules/pykotaPrinter.inc:170 ../lib/modules/qmailGroup.inc:321 +#: ../lib/modules/qmailGroup.inc:322 ../lib/modules/qmailGroup.inc:323 +#: ../lib/modules/qmailGroup.inc:363 ../lib/modules/qmailGroup.inc:364 +#: ../lib/modules/qmailGroup.inc:365 ../lib/modules/qmailGroup.inc:1030 +#: ../lib/modules/qmailGroup.inc:1071 ../lib/modules/qmailGroup.inc:1077 +#: ../lib/modules/imapAccess.inc:121 +msgid "No" +msgstr "否" + +#: ../lib/types/asteriskExt.inc:144 +msgid "No Asterisk extensions found." +msgstr "没有发现Asterisk 扩展." + +#: ../lib/types/dhcp.inc:171 +msgid "No DHCPs found!" +msgstr "没有发现DHCP主机!" + +#: ../lib/types/bind.inc:160 +msgid "No DNS entries found!" +msgstr "未发现DNS条目!" + +#: ../lib/types/nisObjectType.inc:156 +msgid "No NIS objects found!" +msgstr "未发现 NIS 对象!" + +#: ../templates/3rdParty/pla/lib/Template.php:558 +#: ../templates/3rdParty/pla/lib/Template.php:559 +msgid "No RDN attribute was selected." +msgstr "没有选中RDN属性" + +#: ../lib/modules/sambaSamAccount.inc:1108 +#: ../lib/modules/sambaGroupMapping.inc:341 +msgid "No Samba 3 domains found in LDAP! Please create one first." +msgstr "在LDAP中没有发现Samba域,请先建立一个." + +#: ../lib/modules/posixAccount.inc:581 ../lib/modules/posixAccount.inc:1367 +msgid "No Unix groups found in LDAP! Please create one first." +msgstr "在LDAP中没有发现Unix组,请先建立一个." + +#: ../lib/modules/qmailUser.inc:42 +msgid "No access" +msgstr "不能访问" + +#: ../lib/types/zarafaAddressListType.inc:145 +msgid "No address list found!" +msgstr "没有发现地址列表!" + +#: ../lib/types/mailAlias.inc:142 ../lib/types/alias.inc:142 +msgid "No aliases found!" +msgstr "没有发现别名!" + +#: ../lib/types/automountType.inc:216 +msgid "No automount entries found!" +msgstr "未发现自动挂接条目!" + +#: ../lib/types/pykotaBillingCodeType.inc:164 +msgid "No billing codes found!" +msgstr "没有发现账单号!" + +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:36 +msgid "No binary data available" +msgstr "没有可用的二进制数据" + +#: ../templates/initsuff.php:164 +msgid "No changes were made." +msgstr "未做任何修改." + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:83 +#, php-format +msgid "No current value for attribute %s." +msgstr "属性%s没有当前值." + +#: ../lib/types/oracleContextType.inc:187 +msgid "No database entries found!" +msgstr "未发现数据库条目!" + +#: ../templates/login.php:104 +msgid "" +"No default profile set. Please set it in the server profile configuration." +msgstr "没有指定缺省的配置文件. 请在服务器配置中指定." + +#: ../templates/schema/schema.php:144 +msgid "No description" +msgstr "没有描述" + +#: ../lib/types/smbDomain.inc:168 +msgid "No domains found!" +msgstr "没有发现域!" + +#: ../lib/modules/passwordSelfReset.inc:1546 +msgid "No email address found." +msgstr "没有发现邮件地址. " + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:20 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:21 +msgid "No entry was selected to delete" +msgstr "没有选中要删除的条目" + +#: ../lib/modules/ldapPublicKey.inc:483 ../lib/modules/inetOrgPerson.inc:3288 +#: ../lib/modules/customFields.inc:3642 +msgid "No file received." +msgstr "没有收到文件." + +#: ../templates/config/mainmanage.php:161 ../lib/modules/ldapPublicKey.inc:109 +#: ../lib/modules/inetOrgPerson.inc:101 ../lib/modules/customFields.inc:3577 +msgid "No file selected." +msgstr "没有选择文件!" + +#: ../lib/modules/qmailUser.inc:48 +msgid "No forwarding" +msgstr "不能转发" + +#: ../lib/modules/posixGroup.inc:596 ../lib/modules/posixAccount.inc:104 +msgid "No free ID-Number!" +msgstr "没有可用的ID号!" + +#: ../lib/types/gon.inc:203 ../lib/types/zarafaDynamicGroupType.inc:166 +#: ../lib/types/group.inc:241 ../lib/types/netgroup.inc:170 +msgid "No groups found!" +msgstr "没有发现组!" + +#: ../lib/types/host.inc:194 +msgid "No hosts found!" +msgstr "没有发现主机!" + +#: ../templates/3rdParty/pla/htdocs/view_jpeg_photo.php:59 +msgid "No image available" +msgstr "没有可用的图像" + +#: ../templates/3rdParty/pla/lib/import_functions.php:94 +msgid "No import input" +msgstr "没有导入的来源" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1354 +msgid "No internal attributes" +msgstr "没有内部属性" + +#: ../templates/tests/lamdaemonTest.php:195 +msgid "No lamdaemon path set, please update your LAM configuration settings." +msgstr "没有设定lamdaemon路径设置,请更改LAM配置." + +#: ../templates/tests/lamdaemonTest.php:97 +#: ../templates/tests/lamdaemonTest.php:190 +msgid "No lamdaemon server set, please update your LAM configuration settings." +msgstr "没有设置lamdaemon服务器,请先设置LAM配置." + +#: ../lib/modules/qmailUser.inc:49 +msgid "No local delivery" +msgstr "没有本地发送" + +#: ../templates/config/mainmanage.php:412 +msgid "No logging" +msgstr "无日志" + +#: ../templates/pdfedit/pdfpage.php:429 +msgid "No logo" +msgstr "无标志" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:157 +msgid "No new attributes available for this entry" +msgstr "本条目没有新的可用属性" + +#: ../templates/config/conftypes.php:325 ../help/help.inc:176 +msgid "No new entries" +msgstr "没有新条目" + +#: ../templates/multiEdit.php:315 ../lib/lists.inc:113 +msgid "No objects found!" +msgstr "未发现对象!" + +#: ../templates/config/confmodules.php:406 +msgid "No or more than one base module selected!" +msgstr "未选择基本模块或选择多于一个!" + +#: ../templates/config/confsave.php:53 ../templates/config/confmain.php:55 +#: ../lib/modules/passwordSelfReset.inc:1169 +msgid "No password was entered!" +msgstr "没有输入密码!" + +#: ../lib/types/ppolicyType.inc:150 +msgid "No policies found!" +msgstr "没有发现策略!" + +#: ../lib/types/pykotaPrinterType.inc:165 +msgid "No printers found!" +msgstr "未发现打印机!" + +#: ../templates/tests/schemaTest.php:70 +msgid "No problems found." +msgstr "未发现问题!" + +#: ../lib/modules/qmailUser.inc:50 +msgid "No program delivery" +msgstr "没有程序发送" + +#: ../lib/modules/pykotaGroup.inc:63 ../lib/modules/pykotaUser.inc:63 +msgid "No quota" +msgstr "无限额" + +#: ../lib/types/gon.inc:210 ../lib/types/group.inc:248 +msgid "No roles found!" +msgstr "未发现角色!" + +#: ../lib/modules/customScripts.inc:215 +msgid "No scripts to run." +msgstr "没有运行的脚本" + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "No section text specified" +msgstr "没有指定段文本" + +#: ../lib/modules/passwordSelfReset.inc:1199 +msgid "No security answer found." +msgstr "没有发现安全问题." + +#: ../templates/config/conflogin.php:137 +msgid "No server profiles found. Please create one." +msgstr "没有服务器设置,请先建立一个." + +#: ../lib/types/kolabSharedFolderType.inc:142 +msgid "No shared folders found!" +msgstr "未发现共享文件夹!" + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "No static text specified" +msgstr "没有指定静态文本" + +#: ../lib/modules/dhcp_settings.inc:318 +msgid "No subnet entered." +msgstr "没有输入子网掩码!" + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:45 +msgid "No such entry" +msgstr "没有这个条目" + +#: ../templates/3rdParty/pla/htdocs/compare.php:24 +#: ../templates/3rdParty/pla/htdocs/compare.php:27 +#: ../templates/3rdParty/pla/htdocs/delete.php:19 +msgid "No such entry." +msgstr "没有这个条目." + +#: ../templates/schema/schema.php:438 +#, php-format +msgid "No such schema item: \"%s\"" +msgstr "没有这个schema项:\"%s\"" + +#: ../lib/types/sudo.inc:160 +msgid "No sudo roles found!" +msgstr "未发现sudo角色!" + +#: ../lib/types/user.inc:530 +msgid "No users found!" +msgstr "未发现用户!" + +#: ../templates/config/mainmanage.php:444 +msgid "Non-standard (\\n)" +msgstr "非标准 (\\n)" + +#: ../lib/modules/qmailUser.inc:58 +msgid "None" +msgstr "无" + +#: ../lib/modules/sudoRole.inc:133 ../lib/modules/sudoRole.inc:195 +#: ../lib/modules/sudoRole.inc:222 ../lib/modules/sudoRole.inc:281 +#: ../lib/modules/sudoRole.inc:481 ../lib/modules/sudoRole.inc:822 +msgid "Not after" +msgstr "有效终止日期" + +#: ../lib/modules/sudoRole.inc:128 ../lib/modules/sudoRole.inc:201 +#: ../lib/modules/sudoRole.inc:223 ../lib/modules/sudoRole.inc:283 +#: ../lib/modules/sudoRole.inc:474 ../lib/modules/sudoRole.inc:817 +msgid "Not before" +msgstr "在此之前" + +#: ../help/help.inc:68 +msgid "Note" +msgstr "备注" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:125 +msgid "" +"Note: You may be required to enter new attributes that these object classes " +"require" +msgstr "注意:您必须输入这些对象类所需的新属性" + +#: ../lib/modules/windowsGroup.inc:122 ../lib/modules/windowsGroup.inc:189 +#: ../lib/modules/windowsGroup.inc:259 ../lib/modules/windowsGroup.inc:349 +#: ../lib/modules/windowsGroup.inc:747 +msgid "Notes" +msgstr "备注" + +#: ../templates/3rdParty/pla/lib/export_functions.php:450 +msgid "Nothing to export" +msgstr "导出结果为空" + +#: ../templates/config/mainmanage.php:408 +msgid "Notice" +msgstr "注意" + +#: ../templates/delete.php:103 +msgid "Number of child entries" +msgstr "子条目的数量" + +#: ../lib/modules/customFields.inc:129 +msgid "Number of columns in text area." +msgstr "文本区中列的数量." + +#: ../lib/modules/shadowAccount.inc:182 +msgid "" +"Number of days a user can login even his password has expired. -1=always." +msgstr "用户密码过期后允许登录的天数,-1为不限制." + +#: ../lib/modules/shadowAccount.inc:186 +msgid "" +"Number of days a user has to wait until he is allowed to change his password " +"again. If set value must be >0." +msgstr "允许用户修改密码的最短间隔天数,如果设置一定要大于0." + +#: ../lib/modules/shadowAccount.inc:190 +msgid "" +"Number of days after a user has to change his password again. If set value " +"must be >0." +msgstr "用户必须再次修改密码的天数.如果设置一定要大于0." + +#: ../lib/modules/mitKerberos.inc:129 +msgid "Number of failed logins." +msgstr "登录失败的次数" + +#: ../lib/modules/sambaDomain.inc:138 +msgid "Number of minutes after which the bad logon attempts are reset." +msgstr "重置错误登录次数的分钟数." + +#: ../lib/modules/pykotaBillingCode.inc:90 +msgid "Number of pages printed with this billing code." +msgstr "这个账单号的页码数" + +#: ../lib/modules/customFields.inc:133 +msgid "Number of rows in text area." +msgstr "文本区中行的数量" + +#: ../templates/config/mainmanage.php:395 ../help/help.inc:162 +msgid "Number of rules that must match" +msgstr "必须匹配的规则数量" + +#: ../lib/modules/ppolicy.inc:85 ../lib/modules/sambaDomain.inc:126 +msgid "" +"Number of seconds after the user is allowed to change his password again." +msgstr "允许用户再次修改密码的秒数." + +#: ../lib/modules/ppolicy.inc:89 ../lib/modules/sambaDomain.inc:130 +msgid "Number of seconds after which the user must change his password." +msgstr "多後之後使用者必須更改密碼.(密碼到期),以秒為單位" + +#: ../templates/schema/schema.php:147 ../templates/schema/schema.php:344 +msgid "OID" +msgstr "OID" + +#: ../templates/ou_edit.php:83 +msgid "OU already exists!" +msgstr "OU已经存在!" + +#: ../templates/ou_edit.php:94 +msgid "OU deleted successfully." +msgstr "OU删除成功." + +#: ../templates/ou_edit.php:152 ../lib/tools/ouEditor.inc:44 +msgid "OU editor" +msgstr "OU编辑器" + +#: ../templates/ou_edit.php:87 +msgid "OU is invalid!" +msgstr "OU无效!" + +#: ../templates/ou_edit.php:131 +msgid "OU is not empty or invalid!" +msgstr "OU不为空或非法!" + +#: ../help/help.inc:263 ../help/help.inc:265 +msgid "OU-Editor" +msgstr "OU编辑器" + +#: ../templates/schema/schema.php:65 ../templates/schema/schema.php:66 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1324 +#: ../lib/modules/selfRegistration.inc:74 +#: ../lib/modules/selfRegistration.inc:214 ../lib/modules/customFields.inc:80 +#: ../lib/modules/customFields.inc:574 +msgid "Object classes" +msgstr "对象类" + +#: ../lib/lists.inc:112 +#, php-format +msgid "Object count: %s" +msgstr "对象总计: %s" + +#: ../templates/schema/schema.php:152 ../templates/schema/schema.php:283 +msgid "Obsolete" +msgstr "已过时的" + +#: ../lib/modules/sambaDomain.inc:289 ../lib/modules/sambaDomain.inc:298 +#: ../lib/modules/sambaDomain.inc:307 ../lib/modules/sambaDomain.inc:614 +#: ../lib/modules/sambaDomain.inc:619 ../lib/modules/sambaDomain.inc:624 +msgid "Off" +msgstr "关闭" + +#: ../lib/modules/windowsUser.inc:152 ../lib/modules/windowsUser.inc:344 +#: ../lib/modules/windowsUser.inc:508 ../lib/modules/windowsUser.inc:541 +#: ../lib/modules/windowsUser.inc:713 ../lib/modules/windowsUser.inc:1604 +#: ../lib/modules/windowsUser.inc:1733 ../lib/modules/inetOrgPerson.inc:164 +#: ../lib/modules/inetOrgPerson.inc:202 ../lib/modules/inetOrgPerson.inc:542 +#: ../lib/modules/inetOrgPerson.inc:577 ../lib/modules/inetOrgPerson.inc:814 +#: ../lib/modules/inetOrgPerson.inc:818 ../lib/modules/inetOrgPerson.inc:1383 +#: ../lib/modules/inetOrgPerson.inc:1386 ../lib/modules/inetOrgPerson.inc:1945 +#: ../lib/modules/inetOrgPerson.inc:2679 ../lib/modules/inetOrgPerson.inc:3592 +#: ../lib/modules/inetOrgPerson.inc:3650 +msgid "Office name" +msgstr "办公室名" + +#: ../templates/lists/changePassword.php:349 +#: ../templates/lists/changePassword.php:386 +#: ../templates/lists/changePassword.php:427 +#: ../templates/lists/changePassword.php:458 +#: ../templates/tests/lamdaemonTest.php:92 ../templates/ou_edit.php:193 +#: ../templates/ou_edit.php:207 ../templates/masscreate.php:211 +#: ../templates/config/profmanage.php:254 +#: ../templates/config/profmanage.php:266 +#: ../templates/config/profmanage.php:275 +#: ../templates/config/profmanage.php:293 +#: ../templates/config/profmanage.php:302 +#: ../templates/config/profmanage.php:304 +#: ../templates/config/mainmanage.php:469 +#: ../templates/config/conflogin.php:177 ../templates/config/mainlogin.php:165 +#: ../templates/selfService/profManage.php:211 +#: ../templates/selfService/profManage.php:227 +#: ../templates/selfService/profManage.php:240 +#: ../templates/selfService/adminLogin.php:165 +#: ../templates/selfService/adminMain.php:594 +#: ../templates/selfService/adminMain.php:647 +#: ../templates/pdfedit/pdfmain.php:210 ../templates/pdfedit/pdfmain.php:217 +#: ../templates/pdfedit/pdfmain.php:223 +#: ../templates/profedit/profilemain.php:199 +#: ../templates/profedit/profilemain.php:205 +#: ../templates/profedit/profilemain.php:211 +#: ../lib/types/automountType.inc:234 ../lib/types/user.inc:303 +#: ../lib/types/bind.inc:175 ../lib/modules/selfRegistration.inc:446 +#: ../lib/modules/zarafaContact.inc:433 ../lib/modules/zarafaGroup.inc:493 +#: ../lib/modules/device.inc:300 ../lib/modules/sambaSamAccount.inc:1436 +#: ../lib/modules/sambaSamAccount.inc:1571 ../lib/modules/zarafaUser.inc:917 +#: ../lib/modules/zarafaUser.inc:968 ../lib/modules/sambaGroupMapping.inc:508 +#: ../lib/modules/nisnetgroup.inc:479 ../lib/modules/nisnetgroup.inc:489 +#: ../lib/modules/asteriskExtension.inc:484 ../lib/modules/aliasEntry.inc:146 +#: ../lib/modules/aliasEntry.inc:166 ../lib/modules/qmailGroup.inc:862 +#: ../lib/modules/imapAccess.inc:295 ../lib/modules/organizationalRole.inc:337 +#: ../lib/modules/passwordSelfReset.inc:872 +#: ../lib/modules/passwordSelfReset.inc:1094 +#: ../lib/modules/windowsGroup.inc:603 ../lib/modules/groupOfNames.inc:394 +#: ../lib/modules/groupOfNames.inc:549 ../lib/modules/nisMailAlias.inc:375 +#: ../lib/modules/nisMailAlias.inc:384 ../lib/lists.inc:710 +#: ../lib/lists.inc:792 ../lib/modules.inc:1229 +msgid "Ok" +msgstr "确定" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:98 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +msgid "Old value" +msgstr "旧值" + +#: ../lib/modules/sambaDomain.inc:289 ../lib/modules/sambaDomain.inc:298 +#: ../lib/modules/sambaDomain.inc:307 ../lib/modules/sambaDomain.inc:615 +#: ../lib/modules/sambaDomain.inc:620 ../lib/modules/sambaDomain.inc:625 +msgid "On" +msgstr "On" + +#: ../lib/modules/sambaSamAccount.inc:244 +#: ../lib/modules/sambaSamAccount.inc:385 +#: ../lib/modules/sambaSamAccount.inc:1557 +#: ../lib/modules/sambaSamAccount.inc:1969 +msgid "On broken or timed out connection" +msgstr "中断或超时连接" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:139 +#: ../templates/3rdParty/pla/htdocs/export_form.php:32 +msgid "One (one level beneath base)" +msgstr "One (基类下第一层)" + +#: ../lib/modules/range.inc:135 ../lib/modules/fixed_ip.inc:127 +msgid "One or more errors occured. The invalid fields are marked." +msgstr "发生了错误,非法域已经被标记." + +#: ../templates/3rdParty/pla/htdocs/copy.php:98 +#: ../templates/3rdParty/pla/htdocs/copy.php:155 +#, php-format +msgid "Operation not successful. DN %s has not been created." +msgstr "操作不成功,DN %s没有建立" + +#: ../templates/serverInfo.php:277 ../templates/serverInfo.php:367 +msgid "Operation statistics" +msgstr "操作统计" + +#: ../templates/3rdParty/pla/htdocs/copy.php:95 +#: ../templates/3rdParty/pla/htdocs/copy.php:153 +#, php-format +msgid "Operation successful. DN %s has been created." +msgstr "操作成功. DN %s 已经建立" + +#: ../templates/multiEdit.php:117 ../help/help.inc:273 +msgid "Operations" +msgstr "操作者" + +#: ../templates/schema/schema.php:384 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1575 +msgid "Optional attributes" +msgstr "可选属性" + +#: ../lib/modules/fixed_ip.inc:111 +msgid "Optional description for the PC." +msgstr "PC的描述(可选)" + +#: ../lib/types/sudo.inc:83 ../lib/modules/mitKerberos.inc:408 +#: ../lib/modules/zarafaDynamicGroup.inc:267 +#: ../lib/modules/zarafaContact.inc:241 ../lib/modules/zarafaGroup.inc:278 +#: ../lib/modules/posixAccount.inc:245 ../lib/modules/zarafaUser.inc:571 +#: ../lib/modules/windowsUser.inc:723 ../lib/modules/kolabUser.inc:379 +#: ../lib/modules/sudoRole.inc:94 ../lib/modules/sudoRole.inc:123 +#: ../lib/modules/sudoRole.inc:189 ../lib/modules/sudoRole.inc:221 +#: ../lib/modules/sudoRole.inc:233 ../lib/modules/sudoRole.inc:451 +#: ../lib/modules/sudoRole.inc:811 ../lib/modules/asteriskExtension.inc:122 +#: ../lib/modules/asteriskVoicemail.inc:115 +#: ../lib/modules/asteriskVoicemail.inc:125 +#: ../lib/modules/asteriskVoicemail.inc:142 +#: ../lib/modules/asteriskVoicemail.inc:190 +#: ../lib/modules/asteriskVoicemail.inc:258 +#: ../lib/modules/asteriskVoicemail.inc:375 ../lib/modules/qmailGroup.inc:611 +#: ../lib/modules/heimdalKerberos.inc:339 +msgid "Options" +msgstr "选项" + +#: ../lib/modules/asteriskVoicemail.inc:116 +msgid "Options for Asterisk voicemail account (e.g. sendvoicemail=yes)." +msgstr "Asterisk语音邮件账号的选项(比如:sendvoicemail=yes)." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:39 +msgid "Or paste your LDIF here" +msgstr "或者在这儿粘贴您的LDIF文件" + +#: ../lib/modules/oracleService.inc:47 +msgid "Oracle database" +msgstr "Oracle数据库" + +#: ../lib/types/oracleContextType.inc:48 +msgid "Oracle database entries" +msgstr "Oracle数据库条目" + +#: ../lib/types/oracleContextType.inc:39 +msgid "Oracle databases" +msgstr "Oracle数据库" + +#: ../lib/modules/sudoRole.inc:138 ../lib/modules/sudoRole.inc:207 +#: ../lib/modules/sudoRole.inc:224 ../lib/modules/sudoRole.inc:285 +#: ../lib/modules/sudoRole.inc:484 ../lib/modules/sudoRole.inc:812 +msgid "Order" +msgstr "排序" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:166 +msgid "Order by" +msgstr "排序列" + +#: ../templates/schema/schema.php:171 +msgid "Ordering" +msgstr "排序" + +#: ../lib/modules/eduPerson.inc:126 ../lib/modules/eduPerson.inc:200 +#: ../lib/modules/eduPerson.inc:227 ../lib/modules/eduPerson.inc:245 +#: ../lib/modules/eduPerson.inc:346 ../lib/modules/eduPerson.inc:587 +#: ../lib/modules/inetOrgPerson.inc:226 ../lib/modules/inetOrgPerson.inc:510 +#: ../lib/modules/inetOrgPerson.inc:622 ../lib/modules/inetOrgPerson.inc:846 +#: ../lib/modules/inetOrgPerson.inc:850 ../lib/modules/inetOrgPerson.inc:1532 +#: ../lib/modules/inetOrgPerson.inc:1535 ../lib/modules/inetOrgPerson.inc:1950 +#: ../lib/modules/inetOrgPerson.inc:3622 ../lib/modules/inetOrgPerson.inc:3658 +msgid "Organisation" +msgstr "组织" + +#: ../lib/modules/inetOrgPerson.inc:166 ../lib/modules/inetOrgPerson.inc:223 +#: ../lib/modules/inetOrgPerson.inc:502 ../lib/modules/inetOrgPerson.inc:625 +#: ../lib/modules/inetOrgPerson.inc:838 ../lib/modules/inetOrgPerson.inc:842 +#: ../lib/modules/inetOrgPerson.inc:1523 ../lib/modules/inetOrgPerson.inc:1526 +#: ../lib/modules/inetOrgPerson.inc:1949 ../lib/modules/inetOrgPerson.inc:2811 +#: ../lib/modules/inetOrgPerson.inc:3620 ../lib/modules/inetOrgPerson.inc:3658 +msgid "Organisational unit" +msgstr "组织单元" + +#: ../lib/modules/eduPerson.inc:134 ../lib/modules/eduPerson.inc:138 +#: ../lib/modules/eduPerson.inc:212 ../lib/modules/eduPerson.inc:228 +#: ../lib/modules/eduPerson.inc:350 ../lib/modules/eduPerson.inc:589 +msgid "Organisational units" +msgstr "组织单元" + +#: ../lib/modules/eduPerson.inc:249 +msgid "Organisational units contains an invalid entry." +msgstr "组织单元中有一个非法条目" + +#: ../templates/multiEdit.php:98 ../templates/config/confmain.php:328 +msgid "Other" +msgstr "其它" + +#: ../lib/modules/windowsUser.inc:144 ../lib/modules/windowsUser.inc:148 +#: ../lib/modules/windowsUser.inc:368 ../lib/modules/windowsUser.inc:507 +#: ../lib/modules/windowsUser.inc:603 ../lib/modules/windowsUser.inc:719 +#: ../lib/modules/windowsUser.inc:1603 +msgid "Other telephone numbers" +msgstr "其它的电话号码" + +#: ../lib/modules/windowsUser.inc:180 ../lib/modules/windowsUser.inc:184 +#: ../lib/modules/windowsUser.inc:380 ../lib/modules/windowsUser.inc:515 +#: ../lib/modules/windowsUser.inc:721 ../lib/modules/windowsUser.inc:1611 +msgid "Other web sites" +msgstr "其他web网站" + +#: ../lib/modules/customScripts.inc:84 ../lib/modules/customScripts.inc:100 +#: ../lib/modules/customScripts.inc:110 +msgid "Output may contain HTML" +msgstr "输出可以包含HTML语句" + +#: ../lib/modules/customScripts.inc:264 ../lib/modules/customScripts.inc:554 +#, php-format +msgid "Output of command \"%s\" with return code %s" +msgstr "\"%s\"命令的输出和返回值%s" + +#: ../lib/modules/pykotaUser.inc:144 ../lib/modules/pykotaUser.inc:171 +#: ../lib/modules/pykotaUser.inc:253 ../lib/modules/pykotaUser.inc:263 +#: ../lib/modules/pykotaUser.inc:324 ../lib/modules/pykotaUser.inc:402 +#: ../lib/modules/pykotaUser.inc:899 +msgid "Overcharge factor" +msgstr "过载因子" + +#: ../lib/modules/pykotaUser.inc:145 +msgid "" +"Overcharge factor that is applied when computing the cost of a print job. " +"The number of pages is not changed." +msgstr "过载因子用于记录打印机工作的耗材. 页数不变." + +#: ../templates/serverInfo.php:168 +msgid "Overlays" +msgstr "覆盖物" + +#: ../lib/modules/zarafaUser.inc:89 +msgid "Override default quota settings." +msgstr "覆盖缺少的限制设置" + +#: ../templates/config/confmain.php:320 ../lib/types/asteriskExt.inc:96 +#: ../lib/types/asteriskExt.inc:158 +msgid "Owner" +msgstr "拥有者" + +#: ../lib/types/gon.inc:108 ../lib/modules/device.inc:69 +#: ../lib/modules/device.inc:73 ../lib/modules/device.inc:103 +#: ../lib/modules/device.inc:128 ../lib/modules/device.inc:180 +#: ../lib/modules/device.inc:424 ../lib/modules/groupOfNames.inc:93 +#: ../lib/modules/groupOfNames.inc:97 ../lib/modules/groupOfNames.inc:143 +#: ../lib/modules/groupOfNames.inc:174 ../lib/modules/groupOfNames.inc:197 +#: ../lib/modules/groupOfNames.inc:240 ../lib/modules/groupOfNames.inc:398 +#: ../lib/modules/groupOfNames.inc:702 +msgid "Owners" +msgstr "拥有者" + +#: ../lib/modules/dhcp_settings.inc:97 +msgid "P-Node (0x02)" +msgstr "P-节点 (0x02)" + +#: ../lib/modules/fixed_ip.inc:98 ../lib/modules/fixed_ip.inc:425 +#: ../lib/modules/fixed_ip.inc:740 +msgid "PC name" +msgstr "PC机器名" + +#: ../lib/modules/windowsHost.inc:96 +msgid "PC01" +msgstr "PC01" + +#: ../templates/pdfedit/pdfpage.php:445 ../templates/pdfedit/pdfmain.php:84 +#: ../lib/tools/pdfEdit.inc:44 +msgid "PDF editor" +msgstr "PDF编辑器" + +#: ../templates/masscreate.php:275 ../templates/pdfedit/pdfmain.php:310 +#: ../lib/lists.inc:688 ../help/help.inc:204 +msgid "PDF structure" +msgstr "PDF架构" + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "PDF structure name not valid" +msgstr "PDF架构名无效" + +#: ../templates/pdfedit/pdfmain.php:168 +msgid "PDF structure was successfully saved." +msgstr "PDF架构成功保存." + +#: ../templates/pdfedit/pdfmain.php:277 +msgid "PDF structures" +msgstr "PDF架构" + +#: ../templates/serverInfo.php:264 +msgid "PDUs sent" +msgstr "个PDU被发送" + +#: ../templates/config/mainmanage.php:432 ../help/help.inc:158 +msgid "PHP error reporting" +msgstr "PHP错误报告" + +#: ../templates/config/mainmanage.php:428 +msgid "PHP system setting" +msgstr "PHP系统设置" + +#: ../lib/modules/zarafaUser.inc:306 ../lib/modules/zarafaUser.inc:645 +#: ../lib/modules/zarafaUser.inc:1334 +msgid "POP3" +msgstr "POP3" + +#: ../templates/lists/changePassword.php:415 +#: ../templates/lists/changePassword.php:446 ../lib/types/user.inc:376 +#: ../lib/types/user.inc:408 +msgid "PPolicy" +msgstr "P策略" + +#: ../lib/modules/bindDLZ.inc:115 ../lib/modules/bindDLZ.inc:301 +#: ../lib/modules/bindDLZ.inc:307 ../lib/modules/bindDLZ.inc:485 +msgid "PTR record" +msgstr "PTR记录" + +#: ../lib/modules/bindDLZ.inc:422 ../lib/modules/bindDLZ.inc:441 +#: ../lib/modules/bindDLZ.inc:1496 +msgid "PTR records" +msgstr "PTR记录" + +#: ../lib/modules/sambaSamAccount.inc:557 +msgid "Pacific Time (US & Canada)" +msgstr "太平洋时间(美国和加拿大)" + +#: ../lib/modules/dhcp_settings.inc:166 +msgid "" +"Packets are sent to the default gateway if the receiver does not reside in " +"the same network. The default gateway routes them to the target network." +msgstr "" +"如果数据包的接收者不在同一个网络,数据包将会发往缺省网关.缺省网关将数据包转向" +"目标网络." + +#: ../lib/types/pykotaBillingCodeType.inc:94 +#: ../lib/modules/pykotaBillingCode.inc:89 +#: ../lib/modules/pykotaBillingCode.inc:118 +#: ../lib/modules/pykotaBillingCode.inc:151 +#: ../lib/modules/pykotaBillingCode.inc:264 +msgid "Page count" +msgstr "页数总和" + +#: ../templates/selfService/adminMain.php:489 ../help/help.inc:234 +msgid "Page header" +msgstr "页首" + +#: ../templates/selfService/adminMain.php:402 +msgid "Page layout" +msgstr "页布局" + +#: ../lib/modules/inetOrgPerson.inc:78 ../lib/modules/inetOrgPerson.inc:163 +#: ../lib/modules/inetOrgPerson.inc:452 ../lib/modules/inetOrgPerson.inc:595 +#: ../lib/modules/inetOrgPerson.inc:734 ../lib/modules/inetOrgPerson.inc:738 +#: ../lib/modules/inetOrgPerson.inc:1439 ../lib/modules/inetOrgPerson.inc:1442 +#: ../lib/modules/inetOrgPerson.inc:1936 ../lib/modules/inetOrgPerson.inc:2569 +#: ../lib/modules/inetOrgPerson.inc:3604 ../lib/modules/inetOrgPerson.inc:3653 +#: ../lib/modules/asteriskVoicemail.inc:111 +#: ../lib/modules/asteriskVoicemail.inc:141 +#: ../lib/modules/asteriskVoicemail.inc:184 +#: ../lib/modules/asteriskVoicemail.inc:256 +#: ../lib/modules/asteriskVoicemail.inc:373 +msgid "Pager" +msgstr "呼号" + +#: ../lib/modules/asteriskVoicemail.inc:112 +msgid "Pager number for Asterisk voicemail." +msgstr "Asterisk语音邮件的呼号" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:35 +msgid "Parent DN" +msgstr "父DN" + +#: ../lib/modules/puppetClient.inc:88 ../lib/modules/puppetClient.inc:134 +#: ../lib/modules/puppetClient.inc:154 ../lib/modules/puppetClient.inc:265 +#: ../lib/modules/puppetClient.inc:431 ../lib/modules/puppetClient.inc:466 +msgid "Parent node" +msgstr "父节点" + +#: ../lib/modules/puppetClient.inc:190 +msgid "Parent node not found." +msgstr "没有发现父节点." + +#: ../templates/schema/schema.php:366 +msgid "Parent to" +msgstr "继承于" + +#: ../templates/3rdParty/pla/htdocs/import.php:98 +msgid "Parse error" +msgstr "解析错误" + +#: ../lib/modules/pykotaPrinter.inc:107 ../lib/modules/pykotaPrinter.inc:166 +#: ../lib/modules/pykotaPrinter.inc:196 ../lib/modules/pykotaPrinter.inc:243 +#: ../lib/modules/pykotaPrinter.inc:595 +msgid "Passthrough" +msgstr "Passthrough" + +#: ../templates/lists/changePassword.php:365 ../templates/login.php:379 +#: ../templates/selfService/selfServiceLogin.php:323 +#: ../lib/selfService.inc:393 ../lib/modules/mitKerberos.inc:156 +#: ../lib/modules/mitKerberos.inc:242 ../lib/modules/mitKerberos.inc:257 +#: ../lib/modules/mitKerberos.inc:795 ../lib/modules/mitKerberos.inc:798 +#: ../lib/modules/selfRegistration.inc:407 +#: ../lib/modules/selfRegistration.inc:533 +#: ../lib/modules/selfRegistration.inc:536 +#: ../lib/modules/selfRegistration.inc:539 +#: ../lib/modules/asteriskAccount.inc:115 +#: ../lib/modules/asteriskAccount.inc:325 ../lib/modules/posixGroup.inc:205 +#: ../lib/modules/posixGroup.inc:593 ../lib/modules/sambaSamAccount.inc:105 +#: ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:251 +#: ../lib/modules/sambaSamAccount.inc:426 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/posixAccount.inc:110 ../lib/modules/posixAccount.inc:185 +#: ../lib/modules/posixAccount.inc:332 ../lib/modules/posixAccount.inc:418 +#: ../lib/modules/posixAccount.inc:522 ../lib/modules/posixAccount.inc:1496 +#: ../lib/modules/posixAccount.inc:1874 ../lib/modules/posixAccount.inc:1877 +#: ../lib/modules/windowsUser.inc:223 ../lib/modules/windowsUser.inc:272 +#: ../lib/modules/windowsUser.inc:524 ../lib/modules/windowsUser.inc:549 +#: ../lib/modules/windowsUser.inc:615 ../lib/modules/windowsUser.inc:616 +#: ../lib/modules/windowsUser.inc:1646 ../lib/modules/windowsUser.inc:1649 +#: ../lib/modules/inetOrgPerson.inc:862 ../lib/modules/inetOrgPerson.inc:1589 +#: ../lib/modules/inetOrgPerson.inc:2086 ../lib/modules/inetOrgPerson.inc:3660 +#: ../lib/modules/asteriskVoicemail.inc:99 +#: ../lib/modules/asteriskVoicemail.inc:165 +#: ../lib/modules/customFields.inc:2444 ../lib/modules/heimdalKerberos.inc:124 +#: ../lib/modules/heimdalKerberos.inc:211 +#: ../lib/modules/heimdalKerberos.inc:223 +#: ../lib/modules/heimdalKerberos.inc:695 +#: ../lib/modules/heimdalKerberos.inc:698 ../lib/modules.inc:1043 +#: ../help/help.inc:202 +msgid "Password" +msgstr "密码" + +#: ../lib/modules/sambaSamAccount.inc:295 +#: ../lib/modules/sambaSamAccount.inc:1160 ../lib/modules/windowsUser.inc:214 +#: ../lib/modules/windowsUser.inc:410 ../lib/modules/windowsUser.inc:522 +#: ../lib/modules/windowsUser.inc:1634 +msgid "Password change at next login" +msgstr "下次登录时修改密码" + +#: ../lib/modules/mitKerberos.inc:148 ../lib/modules/mitKerberos.inc:261 +#: ../lib/modules/heimdalKerberos.inc:118 +#: ../lib/modules/heimdalKerberos.inc:227 +msgid "Password change command" +msgstr "密码修改命令" + +#: ../templates/lists/changePassword.php:304 +msgid "Password change options" +msgstr "密码修改选项" + +#: ../lib/modules/ppolicyUser.inc:59 ../lib/modules/ppolicyUser.inc:74 +#: ../lib/modules/ppolicyUser.inc:132 ../lib/modules/ppolicyUser.inc:265 +msgid "Password change required" +msgstr "需要修改密码" + +#: ../lib/types/ppolicyType.inc:91 ../lib/modules/ppolicy.inc:136 +#: ../lib/modules/ppolicy.inc:156 ../lib/modules/ppolicy.inc:300 +#: ../lib/modules/ppolicy.inc:510 +msgid "Password change requires old password" +msgstr "修改密码时需要旧密码" + +#: ../lib/modules/mitKerberos.inc:189 ../lib/modules/mitKerberos.inc:467 +#: ../lib/modules/heimdalKerberos.inc:154 +#: ../lib/modules/heimdalKerberos.inc:393 +msgid "Password change service" +msgstr "密码修改服务" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:30 +msgid "Password check" +msgstr "密码检查" + +#: ../lib/modules/mitKerberos.inc:297 ../lib/modules/selfRegistration.inc:536 +#: ../lib/modules/posixGroup.inc:593 ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:107 ../lib/modules/posixAccount.inc:110 +#: ../lib/modules/posixAccount.inc:111 ../lib/modules/windowsUser.inc:616 +#: ../lib/modules/inetOrgPerson.inc:107 +msgid "Password contains invalid characters. Valid characters are:" +msgstr "密码名包含非法字符,只能使用:" + +#: ../lib/modules/sambaSamAccount.inc:280 +#: ../lib/modules/sambaSamAccount.inc:283 +#: ../lib/modules/sambaSamAccount.inc:448 +#: ../lib/modules/sambaSamAccount.inc:1150 +#: ../lib/modules/sambaSamAccount.inc:1744 ../lib/modules/windowsUser.inc:198 +#: ../lib/modules/windowsUser.inc:394 ../lib/modules/windowsUser.inc:518 +#: ../lib/modules/windowsUser.inc:747 ../lib/modules/windowsUser.inc:1624 +msgid "Password does not expire" +msgstr "密码永不过期" + +#: ../lib/types/user.inc:103 ../lib/modules/shadowAccount.inc:61 +#: ../lib/modules/shadowAccount.inc:113 ../lib/modules/shadowAccount.inc:170 +#: ../lib/modules/shadowAccount.inc:181 ../lib/modules/shadowAccount.inc:215 +#: ../lib/modules/shadowAccount.inc:324 ../lib/modules/shadowAccount.inc:502 +msgid "Password expiration" +msgstr "密码超期" + +#: ../lib/modules/shadowAccount.inc:61 ../lib/modules/shadowAccount.inc:62 +msgid "Password expiration must be are natural number or -1." +msgstr "密码超期必须是自然数或-1." + +#: ../templates/selfService/adminMain.php:473 ../help/help.inc:238 +msgid "Password field label" +msgstr "密码文本框标签" + +#: ../lib/modules/asteriskVoicemail.inc:100 +msgid "Password for voicemail mailbox." +msgstr "语音邮箱的密码." + +#: ../lib/modules/posixGroup.inc:504 ../lib/modules/posixGroup.inc:557 +#: ../lib/modules/posixAccount.inc:191 ../lib/modules/posixAccount.inc:247 +#: ../lib/modules/posixAccount.inc:457 ../lib/modules/inetOrgPerson.inc:834 +#: ../lib/modules/inetOrgPerson.inc:3567 ../lib/modules/customFields.inc:136 +#: ../lib/modules/customFields.inc:2458 +msgid "Password hash type" +msgstr "密码哈希类型" + +#: ../lib/types/ppolicyType.inc:80 ../lib/modules/ppolicy.inc:92 +#: ../lib/modules/ppolicy.inc:145 ../lib/modules/ppolicy.inc:169 +#: ../lib/modules/ppolicy.inc:230 ../lib/modules/ppolicy.inc:474 +#: ../lib/modules/sambaDomain.inc:105 ../lib/modules/sambaDomain.inc:191 +#: ../lib/modules/sambaDomain.inc:283 ../lib/modules/sambaDomain.inc:606 +msgid "Password history length" +msgstr "历史密码长度" + +#: ../templates/config/confmain.php:367 +msgid "Password mail settings" +msgstr "密码邮件设置" + +#: ../lib/modules/shadowAccount.inc:59 ../lib/modules/shadowAccount.inc:60 +#: ../lib/modules/ppolicy.inc:167 ../lib/modules/sambaDomain.inc:222 +msgid "Password maximum age must be are natural number." +msgstr "密码最长生命期必须是自然数." + +#: ../lib/modules/shadowAccount.inc:66 +msgid "Password maximum age must be bigger as password minimum age." +msgstr "密码最长生命期必须小于最短生命期." + +#: ../lib/modules/shadowAccount.inc:65 ../lib/modules/ppolicy.inc:168 +#: ../lib/modules/sambaDomain.inc:220 +msgid "Password maximum age must be bigger than password minimum age." +msgstr "密码最长生命期必须大于最短生命期." + +#: ../lib/modules/shadowAccount.inc:57 ../lib/modules/shadowAccount.inc:58 +#: ../lib/modules/ppolicy.inc:166 ../lib/modules/sambaDomain.inc:221 +msgid "Password minimum age must be are natural number." +msgstr "密码最短生命期必须是自然数." + +#: ../templates/config/mainmanage.php:401 ../help/help.inc:166 +msgid "Password must not contain part of user/first/last name" +msgstr "密码不允许包含姓名或姓名的一部分" + +#: ../templates/config/mainmanage.php:399 ../help/help.inc:164 +msgid "Password must not contain user name" +msgstr "密码不允许包含用户名" + +#: ../lib/modules/imapAccess.inc:94 ../lib/modules/imapAccess.inc:290 +msgid "Password of IMAP admin user" +msgstr "IMAP管理员用户的密码" + +#: ../lib/types/ppolicyType.inc:39 +msgid "Password policies" +msgstr "密码策略" + +#: ../lib/types/ppolicyType.inc:48 +msgid "Password policies (ppolicy)" +msgstr "密码策略" + +#: ../templates/config/mainmanage.php:382 ../lib/types/user.inc:284 +#: ../lib/types/user.inc:837 ../lib/modules/ppolicyUser.inc:45 +#: ../lib/modules/ppolicyUser.inc:55 ../lib/modules/ppolicyUser.inc:67 +#: ../lib/modules/ppolicyUser.inc:83 ../lib/modules/ppolicyUser.inc:123 +#: ../lib/modules/ppolicyUser.inc:260 ../lib/modules/ppolicyUser.inc:293 +#: ../lib/modules/ppolicy.inc:62 ../lib/modules/sambaDomain.inc:266 +#: ../help/help.inc:154 +msgid "Password policy" +msgstr "密码策略" + +#: ../lib/types/ppolicyType.inc:81 ../lib/modules/ppolicy.inc:96 +#: ../lib/modules/ppolicy.inc:146 ../lib/modules/ppolicy.inc:242 +#: ../lib/modules/ppolicy.inc:490 +msgid "Password quality check" +msgstr "密码质量检查" + +#: ../lib/modules/passwordSelfReset.inc:539 +msgid "Password reset confirmation" +msgstr "密码重置确认" + +#: ../lib/modules/passwordSelfReset.inc:559 +msgid "Password reset notification" +msgstr "密码重置提示" + +#: ../lib/modules/passwordSelfReset.inc:66 +#: ../lib/modules/passwordSelfReset.inc:875 +#: ../lib/modules/passwordSelfReset.inc:1097 +msgid "Password self reset" +msgstr "密码复位" + +#: ../lib/modules/passwordSelfReset.inc:1607 +msgid "Password successfully reset." +msgstr "密码被成功复位." + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:108 +#: ../lib/modules/shadowAccount.inc:168 ../lib/modules/shadowAccount.inc:177 +#: ../lib/modules/shadowAccount.inc:209 ../lib/modules/shadowAccount.inc:316 +#: ../lib/modules/shadowAccount.inc:501 +msgid "Password warning" +msgstr "密码提醒日期" + +#: ../lib/modules/shadowAccount.inc:63 ../lib/modules/shadowAccount.inc:64 +msgid "Password warning must be are natural number." +msgstr "密码提醒日期必须是自然数." + +#: ../templates/config/confmain.php:610 +#: ../templates/3rdParty/pla/htdocs/password_checker.php:61 +#: ../lib/modules/passwordSelfReset.inc:1174 ../lib/modules.inc:1133 +msgid "Passwords are different!" +msgstr "密码不同!" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:59 +msgid "Passwords match." +msgstr "密码匹配" + +#: ../lib/types/nisObjectType.inc:77 +msgid "Path" +msgstr "路径" + +#: ../lib/modules/windowsUser.inc:205 +msgid "" +"Path of the user profile (UNC-path, e.g. \\\\server\\share\\user). $user is " +"replaced with user name." +msgstr "" +"用户配置文件的路径(使用UNC-path,比如\\\\server\\share\\user).$user被用户名代" +"替." + +#: ../lib/modules/sambaSamAccount.inc:359 +msgid "Path of the user profile." +msgstr "用户配置文件所在路径。" + +#: ../lib/modules/sambaSamAccount.inc:310 +msgid "" +"Path of the user profile. Can be a local absolute path or a UNC-path (\\" +"\\server\\share). $user and $group are replaced with user and group name." +msgstr "" +"用户配置文件路径. 可以是本地绝对路径或UNC路径(\\\\server\\share).$user和" +"$group会被用户名和组名代替." + +#: ../lib/modules/imapAccess.inc:112 ../lib/modules/imapAccess.inc:146 +msgid "Path separator" +msgstr "路径分隔符" + +#: ../templates/config/confmain.php:311 +msgid "Path to external script" +msgstr "外部脚本路径" + +#: ../lib/modules/ddns.inc:93 ../lib/modules/ddns.inc:371 +msgid "Path to key for DNS updates" +msgstr "DNS更新的KEY文件所有路径" + +#: ../lib/modules/qmailGroup.inc:140 +msgid "" +"Path to the maildir/mbox on the mail system for sender confirmation and " +"moderation." +msgstr "邮件系统中用于发信人确认和主持的maildir/mbox的路径." + +#: ../lib/modules/qmailUser.inc:248 +msgid "Path to the maildir/mbox on the mail system." +msgstr "邮件系统的maildir/mbox的路径." + +#: ../lib/modules/pykotaUser.inc:152 ../lib/modules/pykotaUser.inc:326 +#: ../lib/modules/pykotaUser.inc:369 +msgid "Payment" +msgstr "付款" + +#: ../lib/modules/pykotaUser.inc:148 +msgid "Payment and job history" +msgstr "付款和任务记录" + +#: ../lib/modules/pykotaUser.inc:149 +msgid "Payment and job history for this user." +msgstr "本用户的付费和任务列表." + +#: ../lib/modules/pykotaUser.inc:265 ../lib/modules/pykotaUser.inc:283 +#: ../lib/modules/pykotaUser.inc:384 ../lib/modules/pykotaUser.inc:591 +#: ../lib/modules/pykotaUser.inc:983 +msgid "Payment history" +msgstr "付费列表" + +#: ../lib/tools/multiEdit.inc:53 +msgid "Performs modifications on multiple LDAP entries." +msgstr "修改多条LDAP条目时." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:41 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:64 +msgid "Permanently delete all children also?" +msgstr "也要永久删除所有子集?" + +#: ../lib/modules/asteriskAccount.inc:171 +#: ../lib/modules/asteriskAccount.inc:281 +#: ../lib/modules/asteriskAccount.inc:422 +#: ../lib/modules/asteriskAccount.inc:678 +#: ../lib/modules/asteriskAccount.inc:997 +#: ../lib/modules/asteriskAccount.inc:1263 +msgid "Permit" +msgstr "允许" + +#: ../lib/modules/inetOrgPerson.inc:132 +msgid "Personal" +msgstr "个人信息" + +#: ../lib/selfService.inc:389 +msgid "Personal data" +msgstr "个人数据" + +#: ../lib/types/user.inc:102 ../lib/types/user.inc:620 +#: ../lib/modules/inetOrgPerson.inc:162 ../lib/modules/inetOrgPerson.inc:2708 +#: ../lib/modules/inetOrgPerson.inc:2715 ../lib/modules/inetOrgPerson.inc:3632 +#: ../lib/modules/inetOrgPerson.inc:3660 ../lib/modules/inetOrgPerson.inc:3679 +msgid "Photo" +msgstr "照片" + +#: ../lib/modules/inetOrgPerson.inc:1697 +msgid "Photo file" +msgstr "照片文件" + +#: ../lib/modules/inetOrgPerson.inc:1695 +msgid "Photo file (JPG format)" +msgstr "照片文件(JPG格式)" + +#: ../lib/modules/asteriskAccount.inc:175 +#: ../lib/modules/asteriskAccount.inc:282 +#: ../lib/modules/asteriskAccount.inc:429 +#: ../lib/modules/asteriskAccount.inc:682 +#: ../lib/modules/asteriskAccount.inc:998 +#: ../lib/modules/asteriskAccount.inc:1265 +msgid "Pickup group" +msgstr "接听组" + +#: ../lib/modules/ldapPublicKey.inc:77 +msgid "Please a comma separated list of your public SSH keys." +msgstr "您的公钥列表,以逗号分隔." + +#: ../lib/modules/nisMailAliasUser.inc:131 +msgid "Please activate the mail aliases type for this server profile." +msgstr "请为这个服务器配置激活邮件别名" + +#: ../lib/modules/customScripts.inc:85 +msgid "" +"Please activate this option if your scripts may generate HTML output. " +"Otherwise, the output is treated as plain text." +msgstr "如果你的脚本中会生成HTML输出,请激活这个选项.如果不激活,输出为文本文件." + +#: ../lib/modules/asteriskExtension.inc:193 +msgid "Please add at least one extension owner." +msgstr "至少需要增加一个扩展属主." + +#: ../help/help.inc:157 +msgid "" +"Please change this setting only if you experience problems in receiving " +"emails from LAM. This defines the line ending of emails." +msgstr "如果从LAM中接收邮件时发生了问题,请修改这个选项。 这定义了邮件的末尾。" + +#: ../lib/modules/qmailGroup.inc:331 +msgid "Please check if this email should be sent." +msgstr "如果这封邮件必须要发送请检查" + +#: ../lib/modules/sambaSamAccount.inc:1098 +msgid "Please check your settings on the Unix page!" +msgstr "请在UNIX中检查设置" + +#: ../lib/modules/imapAccess.inc:104 +msgid "" +"Please choose the attribute to get the IMAP user name. The default is \"mail" +"\" but you can also use \"uid\"." +msgstr "请选择IMAP用户属性。缺省值为\"mail\",也可以使用\"uid\"." + +#: ../lib/modules/passwordSelfReset.inc:543 +msgid "Please click here to continue: @@resetLink@@" +msgstr "请点击这儿继续: @@resetLink@@" + +#: ../lib/types/user.inc:298 +msgid "Please click to lock/unlock this account." +msgstr "点击以锁定/解锁此账号." + +#: ../lib/modules/pykotaPrinter.inc:219 +msgid "Please enter \"Yes\" or \"No\"." +msgstr "请输入 \"Yes\" 或 \"No\"." + +#: ../lib/modules/sambaSamAccount.inc:108 +msgid "Please enter a RID number or the name of a special account!" +msgstr "请输入RID或特殊账号名!" + +#: ../lib/modules/asteriskAccount.inc:555 +msgid "Please enter a caller ID." +msgstr "请输入一个拨号ID." + +#: ../lib/modules/imapAccess.inc:101 +msgid "" +"Please enter a comma separated list of domain names (e.g. \"company.com," +"example.com\"). LAM will only manage mailboxes from these domains." +msgstr "" +"请输入域名列表,用逗号分隔(比如:\"company.com,example.com\").LAM只为这些域名" +"管理邮箱。" + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +msgid "Please enter a comma separated list of host names!" +msgstr "请输入以逗号分隔的主机名!" + +#: ../lib/modules/asteriskExtension.inc:185 +msgid "Please enter a common name." +msgstr "请输入一个一般命名!" + +#: ../lib/modules/imapAccess.inc:178 +msgid "Please enter a correct list of valid mail domains." +msgstr "请输入正确有效的邮箱域列表" + +#: ../lib/modules/sudoRole.inc:130 ../lib/modules/sudoRole.inc:135 +#: ../lib/modules/sudoRole.inc:281 ../lib/modules/sudoRole.inc:282 +#: ../lib/modules/sudoRole.inc:283 ../lib/modules/sudoRole.inc:284 +msgid "Please enter a date in format \"DD.MM.YYYY HH:MM\" or \"DD.MM.YYYY\"." +msgstr "请输入日期,格式为 \"DD.MM.YYYY HH:MM\" 或 \"DD.MM.YYYY\"." + +#: ../lib/modules/customFields.inc:89 +msgid "Please enter a descriptive label for this field." +msgstr "输入此域的描述标签." + +#: ../lib/modules/nisObject.inc:62 ../lib/modules/automount.inc:65 +#: ../lib/modules/sudoRole.inc:67 ../lib/modules/oracleService.inc:62 +msgid "Please enter a descriptive name for this entry." +msgstr "输入此条目的描述" + +#: ../lib/modules/windowsGroup.inc:119 +msgid "Please enter a descriptive text for this group." +msgstr "输入此组的描述信息" + +#: ../lib/modules/windowsHost.inc:79 +msgid "Please enter a descriptive text for this host." +msgstr "输入此主机的描述信息" + +#: ../lib/modules/windowsUser.inc:120 +msgid "Please enter a descriptive text for this user." +msgstr "输入此用户的描述信息." + +#: ../lib/modules/organizationalRole.inc:173 +#: ../lib/modules/groupOfNames.inc:209 +msgid "Please enter a group name!" +msgstr "请输入组名!" + +#: ../lib/modules/windowsUser.inc:241 +msgid "" +"Please enter a list of Windows domains that can be selected for your user " +"accounts." +msgstr "请输入所有用户账号可选的windows 域名为新账号输入一个对象类列表." + +#: ../lib/modules/selfRegistration.inc:120 +msgid "Please enter a list of object classes for the new accounts." +msgstr "请为新账号输入一个对象类列表." + +#: ../lib/modules/asteriskVoicemail.inc:209 +msgid "Please enter a mailbox." +msgstr "请输入一个邮箱." + +#: ../lib/modules/device.inc:62 +msgid "Please enter a name for this device." +msgstr "请输入设备名" + +#: ../lib/modules/kolabSharedFolder.inc:113 +msgid "Please enter a name for this folder." +msgstr "请输入文件夹名" + +#: ../lib/modules/ppolicy.inc:165 +msgid "Please enter a name for this policy." +msgstr "请为这个密码策略输入一个名字." + +#: ../lib/modules/kolabSharedFolder.inc:261 +msgid "Please enter a name." +msgstr "请输入一个名字" + +#: ../lib/modules/customFields.inc:2626 +msgid "Please enter a natural number for column count." +msgstr "请为列的数量输入一个自然数。" + +#: ../lib/modules/customFields.inc:2636 +msgid "Please enter a natural number for row count." +msgstr "请为行的数量输入一个自然数." + +#: ../lib/modules/qmailUser.inc:465 ../lib/modules/qmailUser.inc:467 +msgid "Please enter a number for GID number." +msgstr "请为GID输入一个数字" + +#: ../lib/modules/qmailUser.inc:462 ../lib/modules/qmailUser.inc:464 +msgid "Please enter a number for UID number." +msgstr "请为UID输入一个数字" + +#: ../lib/modules/qmailUser.inc:458 ../lib/modules/qmailUser.inc:459 +msgid "Please enter a number for message count limit." +msgstr "请输入邮件的数量限制" + +#: ../lib/modules/qmailUser.inc:460 ../lib/modules/qmailUser.inc:461 +msgid "Please enter a number for message size limit." +msgstr "请输入邮件大小的限制" + +#: ../lib/modules/qmailUser.inc:456 ../lib/modules/qmailUser.inc:457 +msgid "Please enter a number for quota size." +msgstr "请输入磁盘限额" + +#: ../templates/lib/141_jquery-validationEngine-lang.php:51 +#: ../templates/lib/141_jquery-validationEngine-lang.php:55 +#: ../lib/modules/mitKerberos.inc:298 ../lib/modules/zarafaUser.inc:408 +#: ../lib/modules/zarafaUser.inc:409 ../lib/modules/zarafaUser.inc:410 +#: ../lib/modules/zarafaUser.inc:411 ../lib/modules/zarafaUser.inc:412 +#: ../lib/modules/zarafaUser.inc:413 ../lib/modules/zarafaUser.inc:415 +#: ../lib/modules/zarafaUser.inc:416 ../lib/modules/bindDLZ.inc:476 +#: ../lib/modules/kolabUser.inc:257 ../lib/modules/kolabUser.inc:258 +#: ../lib/modules/sudoRole.inc:285 ../lib/modules/sudoRole.inc:286 +msgid "Please enter a number." +msgstr "请输入一个数字" + +#: ../lib/modules/ppolicy.inc:174 +msgid "Please enter a numeric value for the expire warning." +msgstr "请为过期告警输入一个数值。" + +#: ../lib/modules/ppolicy.inc:173 +msgid "Please enter a numeric value for the failure count interval." +msgstr "请失败记录间隔输入一个数值。" + +#: ../lib/modules/ppolicy.inc:170 +msgid "Please enter a numeric value for the grace authentication limit." +msgstr "请为缓期认证限制次数提供一个数值" + +#: ../lib/modules/freeRadius.inc:259 ../lib/modules/freeRadius.inc:260 +msgid "Please enter a numeric value for the idle timeout." +msgstr "请为空闲超时长输入一个数值。" + +#: ../lib/modules/ppolicy.inc:171 +msgid "Please enter a numeric value for the lockout duration." +msgstr "请为锁定周期输入一个数值。" + +#: ../lib/modules/ppolicy.inc:172 +msgid "Please enter a numeric value for the maximum failure count." +msgstr "请为最大失败次数记录输入一个数值" + +#: ../lib/modules/ppolicy.inc:175 +msgid "Please enter a numeric value for the minimum password length." +msgstr "请为密码最小长度输入一个数值" + +#: ../lib/modules/ppolicy.inc:169 +msgid "Please enter a numeric value for the password history length." +msgstr "请为密码历史长度输入一个数值" + +#: ../lib/modules/range.inc:138 +msgid "Please enter a pool name." +msgstr "请输入地址池名." + +#: ../lib/modules/sudoRole.inc:267 +msgid "Please enter a role name." +msgstr "请输入角色名." + +#: ../lib/modules/passwordSelfReset.inc:1203 +msgid "Please enter a security answer." +msgstr "请输入安全问题." + +#: ../lib/modules/selfRegistration.inc:118 +msgid "Please enter a subject for the confirmation mails." +msgstr "请为确认邮件输入一个标题." + +#: ../lib/modules/kolabSharedFolder.inc:262 +msgid "Please enter a target folder." +msgstr "请输入一个目的文件夹" + +#: ../lib/modules/selfRegistration.inc:119 +msgid "" +"Please enter a text for the confirmation mails that includes the creation " +"link." +msgstr "请为含建立链接的确认邮件输入文本." + +#: ../lib/modules/customFields.inc:85 +msgid "Please enter a unique name for this field." +msgstr "请这个域输入一个唯一的名字." + +#: ../lib/modules/ppolicy.inc:81 +msgid "Please enter a unique name for this password policy." +msgstr "请为这个密码策略输入一个唯一的名字" + +#: ../lib/modules/kolabUser.inc:274 ../lib/modules/kolabUser.inc:280 +msgid "Please enter a user password." +msgstr "请输入用户密码." + +#: ../lib/modules/zarafaDynamicGroup.inc:198 ../lib/modules/eduPerson.inc:245 +#: ../lib/modules/eduPerson.inc:247 ../lib/modules/zarafaAddressList.inc:169 +msgid "Please enter a valid DN in the field:" +msgstr "请输入有效的DN!" + +#: ../lib/types/bind.inc:205 +msgid "Please enter a valid DNS name." +msgstr "请输入有效的DNS名称!" + +#: ../lib/modules/customFields.inc:1189 ../lib/modules/customFields.inc:1746 +msgid "" +"Please enter a valid LDAP attribute name. Allowed characters are a-z, 0-9, _ " +"and -." +msgstr "请输入合法的LDAP属性名,只能使用 a-z,0-9,_和-." + +#: ../templates/selfService/adminMain.php:221 +msgid "Please enter a valid LDAP suffix." +msgstr "请输入有效的LDAP后缀." + +#: ../templates/selfService/adminMain.php:225 +msgid "" +"Please enter a valid LDAP user if you want to use it for all operations." +msgstr "请为所有的操作输入一个合法的LDAP帐号." + +#: ../lib/modules/qmailUser.inc:454 +msgid "Please enter a valid account status." +msgstr "请输入有效的用户状态." + +#: ../lib/modules/bindDLZ.inc:529 ../lib/modules/bindDLZ.inc:530 +msgid "Please enter a valid admin email address." +msgstr "请输入有效的管理员邮件地址!" + +#: ../templates/config/confmain.php:554 +msgid "Please enter a valid bind user." +msgstr "请输入有效的绑定账号." + +#: ../lib/modules/inetOrgPerson.inc:105 ../lib/modules/inetOrgPerson.inc:106 +msgid "Please enter a valid business category!" +msgstr "请输入有效的商业种类!" + +#: ../lib/modules/posixAccount.inc:129 ../lib/modules/posixAccount.inc:130 +#: ../lib/modules/windowsUser.inc:591 ../lib/modules/windowsUser.inc:592 +#: ../lib/modules/inetOrgPerson.inc:95 ../lib/modules/inetOrgPerson.inc:96 +msgid "Please enter a valid common name!" +msgstr "请输入有效的全名!" + +#: ../lib/modules/qmailUser.inc:471 +msgid "Please enter a valid configuration type." +msgstr "请输入有效的配置类型!" + +#: ../lib/modules/mitKerberos.inc:291 ../lib/modules/mitKerberos.inc:292 +#: ../lib/modules/qmailUser.inc:470 ../lib/modules/sambaSamAccount.inc:116 +#: ../lib/modules/heimdalKerberos.inc:255 +#: ../lib/modules/heimdalKerberos.inc:256 +msgid "Please enter a valid date in format DD-MM-YYYY." +msgstr "请输入日期,格式为(DD-MM-YYYY)." + +#: ../lib/modules/asteriskAccount.inc:576 +#: ../lib/modules/asteriskAccount.inc:577 +msgid "Please enter a valid default user." +msgstr "请输入有效的缺省用户." + +#: ../lib/modules/qmailUser.inc:455 +msgid "Please enter a valid delivery mode." +msgstr "请输入有效的发送模式." + +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/sambaSamAccount.inc:111 ../lib/modules/windowsUser.inc:595 +#: ../lib/modules/windowsUser.inc:596 +msgid "Please enter a valid display name!" +msgstr "请输入有效的显示名!" + +#: ../lib/modules/sambaSamAccount.inc:117 ../lib/modules/windowsUser.inc:617 +msgid "Please enter a valid drive letter." +msgstr "请输入有效的盘符." + +#: ../lib/modules/kolabGroup.inc:177 ../lib/modules/kolabGroup.inc:178 +#: ../lib/modules/selfRegistration.inc:122 +#: ../lib/modules/selfRegistration.inc:482 +#: ../lib/modules/zarafaDynamicGroup.inc:200 +#: ../lib/modules/zarafaDynamicGroup.inc:201 ../lib/modules/qmailUser.inc:448 +#: ../lib/modules/qmailUser.inc:449 ../lib/modules/qmailUser.inc:450 +#: ../lib/modules/qmailUser.inc:451 ../lib/modules/qmailUser.inc:452 +#: ../lib/modules/qmailUser.inc:453 ../lib/modules/zarafaGroup.inc:215 +#: ../lib/modules/zarafaGroup.inc:216 ../lib/modules/windowsUser.inc:607 +#: ../lib/modules/windowsUser.inc:608 ../lib/modules/pykotaUser.inc:319 +#: ../lib/modules/pykotaUser.inc:320 ../lib/modules/inetOrgPerson.inc:80 +#: ../lib/modules/inetOrgPerson.inc:82 +#: ../lib/modules/kolabSharedFolder.inc:259 +#: ../lib/modules/kolabSharedFolder.inc:260 ../lib/modules/qmailGroup.inc:420 +#: ../lib/modules/qmailGroup.inc:421 ../lib/modules/qmailGroup.inc:422 +#: ../lib/modules/qmailGroup.inc:423 ../lib/modules/qmailGroup.inc:425 +#: ../lib/modules/qmailGroup.inc:426 ../lib/modules/qmailGroup.inc:427 +#: ../lib/modules/qmailGroup.inc:428 ../lib/modules/qmailGroup.inc:429 +#: ../lib/modules/qmailGroup.inc:430 ../lib/modules/qmailGroup.inc:431 +#: ../lib/modules/qmailGroup.inc:432 ../lib/modules/passwordSelfReset.inc:232 +#: ../lib/modules/passwordSelfReset.inc:233 +#: ../lib/modules/passwordSelfReset.inc:900 +#: ../lib/modules/passwordSelfReset.inc:1122 +#: ../lib/modules/windowsGroup.inc:285 ../lib/modules/windowsGroup.inc:286 +#: ../lib/modules.inc:1178 +msgid "Please enter a valid email address!" +msgstr "请输入有效的邮件地址!" + +#: ../lib/modules/zarafaDynamicGroup.inc:202 +#: ../lib/modules/zarafaDynamicGroup.inc:203 +#: ../lib/modules/zarafaGroup.inc:217 ../lib/modules/zarafaGroup.inc:218 +msgid "Please enter a valid email alias." +msgstr "请输入有效的邮件地址." + +#: ../lib/modules/passwordSelfReset.inc:907 +#: ../lib/modules/passwordSelfReset.inc:1129 +msgid "Please enter a valid employee number." +msgstr "请输入有效的员工号." + +#: ../lib/modules/inetOrgPerson.inc:93 ../lib/modules/inetOrgPerson.inc:94 +msgid "Please enter a valid employee type!" +msgstr "请输入有效的雇员类别!" + +#: ../lib/modules/inetOrgPerson.inc:76 ../lib/modules/inetOrgPerson.inc:77 +msgid "Please enter a valid fax number!" +msgstr "请输入有效的传真号!" + +#: ../lib/modules/customFields.inc:187 +msgid "" +"Please enter a valid field name. Only letters, numbers, dash and underline " +"are allowed." +msgstr "请输入合法的域名.只允许字母,数字和下划线." + +#: ../lib/lists.inc:229 +msgid "" +"Please enter a valid filter. Only letters, numbers and \" _*$.@-\" are " +"allowed." +msgstr "请输入合法的过滤器.只允许字母,数字和\" _*$.@-\" ." + +#: ../lib/modules/selfRegistration.inc:83 +#: ../lib/modules/selfRegistration.inc:218 +msgid "Please enter a valid first name." +msgstr "请输入有效的名字!" + +#: ../lib/modules/asteriskAccount.inc:570 +#: ../lib/modules/asteriskAccount.inc:571 +msgid "Please enter a valid from domain." +msgstr "请输入有效的来自域." + +#: ../lib/modules/asteriskAccount.inc:568 +#: ../lib/modules/asteriskAccount.inc:569 +msgid "Please enter a valid from user." +msgstr "请输入有效的来自账号!" + +#: ../lib/modules/sambaSamAccount.inc:121 +msgid "Please enter a valid group name!" +msgstr "请输入有效的组名!" + +#: ../lib/modules/windowsGroup.inc:287 +msgid "Please enter a valid group scope." +msgstr "请输入有效的组范围." + +#: ../lib/modules/windowsGroup.inc:288 +msgid "Please enter a valid group type." +msgstr "请输入有效的组类型." + +#: ../lib/modules/pykotaUser.inc:327 +msgid "Please enter a valid job suffix." +msgstr "请输入有效的任务后缀!" + +#: ../lib/modules/inetOrgPerson.inc:91 ../lib/modules/inetOrgPerson.inc:92 +msgid "Please enter a valid job title!" +msgstr "请输入有效的头衔!" + +#: ../lib/modules/selfRegistration.inc:84 +#: ../lib/modules/selfRegistration.inc:219 +msgid "Please enter a valid last name." +msgstr "请输入有效的姓!" + +#: ../lib/modules/pykotaGroup.inc:205 ../lib/modules/pykotaUser.inc:321 +msgid "Please enter a valid limit type." +msgstr "请输入有效的限制类型." + +#: ../lib/modules/eduPerson.inc:253 +msgid "Please enter a valid list of affiliations." +msgstr "请输入有效的联系列表." + +#: ../lib/modules/freeRadius.inc:255 ../lib/modules/freeRadius.inc:256 +msgid "Please enter a valid list of group names." +msgstr "请输入有效的组列表名." + +#: ../lib/modules/hostObject.inc:111 +msgid "Please enter a valid list of host names." +msgstr "请输入有效的主机列表." + +#: ../lib/modules/authorizedServiceObject.inc:130 +msgid "Please enter a valid list of service names." +msgstr "请输入有效的服务列表名." + +#: ../lib/modules/inetOrgPerson.inc:74 ../lib/modules/inetOrgPerson.inc:75 +msgid "Please enter a valid mobile number!" +msgstr "请输入有效的手机号!" + +#: ../lib/modules/pykotaPrinter.inc:215 ../lib/modules/pykotaPrinter.inc:216 +#: ../lib/modules/pykotaPrinter.inc:217 ../lib/modules/pykotaPrinter.inc:218 +#: ../lib/modules/pykotaUser.inc:322 ../lib/modules/pykotaUser.inc:323 +#: ../lib/modules/pykotaUser.inc:324 ../lib/modules/pykotaUser.inc:325 +#: ../lib/modules/pykotaUser.inc:326 +msgid "Please enter a valid number (e.g. \"1.5\")." +msgstr "请输入有效的数字 (比如 \"1.5\")." + +#: ../lib/modules/pykotaPrinter.inc:213 ../lib/modules/pykotaPrinter.inc:214 +msgid "Please enter a valid number." +msgstr "请输入有效的数字" + +#: ../lib/modules/customFields.inc:190 +msgid "Please enter a valid object class." +msgstr "请输入有效的目标类." + +#: ../lib/modules/dhcp_settings.inc:331 +msgid "Please enter a valid option." +msgstr "请输入有效的选项." + +#: ../lib/modules/zarafaServer.inc:177 ../lib/modules/zarafaServer.inc:178 +msgid "Please enter a valid path." +msgstr "请输入有效的路径." + +#: ../lib/modules/asteriskAccount.inc:572 +#: ../lib/modules/asteriskAccount.inc:573 ../lib/modules/zarafaServer.inc:173 +#: ../lib/modules/zarafaServer.inc:174 ../lib/modules/zarafaServer.inc:175 +#: ../lib/modules/zarafaServer.inc:176 +msgid "Please enter a valid port number." +msgstr "请输入有效的端口号!" + +#: ../lib/modules/inetOrgPerson.inc:85 ../lib/modules/inetOrgPerson.inc:86 +msgid "Please enter a valid postal address!" +msgstr "请输入有效的邮政地址." + +#: ../lib/modules/windowsUser.inc:605 ../lib/modules/windowsUser.inc:606 +#: ../lib/modules/inetOrgPerson.inc:89 ../lib/modules/inetOrgPerson.inc:90 +msgid "Please enter a valid postal code!" +msgstr "请输入有效的邮政编码!" + +#: ../lib/modules/eduPerson.inc:251 +msgid "Please enter a valid primary affiliation." +msgstr "请输入有效的主要联系." + +#: ../lib/modules/freeRadius.inc:253 ../lib/modules/freeRadius.inc:254 +msgid "Please enter a valid realm." +msgstr "请输入有效的域." + +#: ../lib/modules/kolabGroup.inc:181 ../lib/modules/kolabGroup.inc:182 +#: ../lib/modules/kolabUser.inc:253 ../lib/modules/kolabUser.inc:254 +#: ../lib/modules/kolabSharedFolder.inc:250 +#: ../lib/modules/kolabSharedFolder.inc:251 +msgid "Please enter a valid recipient expression." +msgstr "请输入有效的接收者表达式。" + +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:88 +msgid "Please enter a valid registered address." +msgstr "请输入有效的注册地址!" + +#: ../lib/modules/eduPerson.inc:252 +msgid "Please enter a valid scoped affiliation." +msgstr "请输入有效的有限联系." + +#: ../lib/modules/kolabGroup.inc:183 ../lib/modules/kolabGroup.inc:184 +#: ../lib/modules/kolabUser.inc:255 ../lib/modules/kolabUser.inc:256 +#: ../lib/modules/kolabSharedFolder.inc:252 +#: ../lib/modules/kolabSharedFolder.inc:253 +msgid "Please enter a valid sender expression." +msgstr "请输入有效的发送者表达式." + +#: ../lib/modules/qmailUser.inc:468 ../lib/modules/qmailUser.inc:469 +#: ../lib/modules/imapAccess.inc:177 +msgid "Please enter a valid server name where the mailboxes reside." +msgstr "输入正确的即将建立邮箱的邮件服务器." + +#: ../lib/modules/inetOrgPerson.inc:83 ../lib/modules/inetOrgPerson.inc:84 +msgid "Please enter a valid street name!" +msgstr "请输入有效的街道名!" + +#: ../lib/modules/windowsUser.inc:601 ../lib/modules/windowsUser.inc:602 +#: ../lib/modules/windowsUser.inc:603 ../lib/modules/windowsUser.inc:604 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:71 +#: ../lib/modules/inetOrgPerson.inc:72 ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:78 ../lib/modules/inetOrgPerson.inc:79 +msgid "Please enter a valid telephone number!" +msgstr "请输入有效的电话号码!" + +#: ../lib/modules/passwordSelfReset.inc:921 +#: ../lib/modules/passwordSelfReset.inc:1143 +msgid "Please enter a valid user name or email address." +msgstr "请输入有效的用户名或邮件地址." + +#: ../lib/modules/posixGroup.inc:719 ../lib/modules/posixAccount.inc:1160 +#: ../lib/modules/posixAccount.inc:1165 +#, php-format +msgid "Please enter a value between %s and %s!" +msgstr "请输入有效值(介于%s和%s之间)!" + +#: ../lib/modules/customFields.inc:2780 +msgid "Please enter a value for status \"checked\"." +msgstr "请为状态\"选中\"输入一个值." + +#: ../lib/modules/customFields.inc:2787 +msgid "Please enter a value for status \"unchecked\"." +msgstr "请为状态\"未选中\"输入一个值." + +#: ../templates/multiEdit.php:140 +msgid "Please enter a value to add." +msgstr "请输入一个值加上去." + +#: ../templates/multiEdit.php:143 +msgid "Please enter a value to modify." +msgstr "请输入修改后的值." + +#: ../lib/modules/customFields.inc:77 +msgid "Please enter an alias for this group." +msgstr "请为这个账号输入一个别名." + +#: ../lib/modules/customFields.inc:189 +msgid "Please enter an alias name." +msgstr "请输入有效的别名!" + +#: ../lib/modules/kolabUser.inc:286 ../lib/modules/imapAccess.inc:208 +#, php-format +msgid "Please enter an email address on this page: %s" +msgstr "请在本页面输入邮件地址:%s" + +#: ../lib/modules/pykotaUser.inc:353 +#, php-format +msgid "Please enter an user name on this page: %s" +msgstr "请在本页面输入用户名:%s" + +#: ../lib/modules/range.inc:139 +#, php-format +msgid "Please enter at least one range for pool \"%s\"." +msgstr "请为 \"%s\".地址池至少输入一个地址范围." + +#: ../lib/modules/windowsUser.inc:1360 ../lib/modules/windowsUser.inc:1369 +#: ../lib/modules/windowsUser.inc:1378 ../lib/modules/windowsUser.inc:1389 +msgid "Please enter either yes or no." +msgstr "请输入yes或no." + +#: ../lib/modules/sudoRole.inc:273 ../lib/modules/sudoRole.inc:274 +msgid "Please enter only ASCII characters for the commands." +msgstr "输入命令行只能使用ASCII字符." + +#: ../lib/modules/sudoRole.inc:271 ../lib/modules/sudoRole.inc:272 +msgid "Please enter only ASCII characters for the host names." +msgstr "输入主机名只能使用ASCII字符" + +#: ../lib/modules/sudoRole.inc:279 ../lib/modules/sudoRole.inc:280 +msgid "Please enter only ASCII characters for the options." +msgstr "这个选项只能使用ASCII字符." + +#: ../lib/modules/sudoRole.inc:277 ../lib/modules/sudoRole.inc:278 +msgid "Please enter only ASCII characters for the run groups." +msgstr "输入运行的组只能使用ASCII字符." + +#: ../lib/modules/sudoRole.inc:275 ../lib/modules/sudoRole.inc:276 +msgid "Please enter only ASCII characters for the run users." +msgstr "输入运行用户只能使用ASCII字符." + +#: ../lib/modules/device.inc:140 ../lib/modules/device.inc:141 +msgid "Please enter only ASCII characters for the serial number." +msgstr "输入序列名只能使用ASCII字符." + +#: ../lib/modules/sudoRole.inc:269 ../lib/modules/sudoRole.inc:270 +msgid "Please enter only ASCII characters for the user names." +msgstr "输入用户名只能使用ASCII字符." + +#: ../lib/modules/passwordSelfReset.inc:231 +msgid "" +"Please enter the DN and password of the administrative password self reset " +"account." +msgstr "请输入DN和管理员级密码自助复位的帐号的密码." + +#: ../lib/modules/selfRegistration.inc:117 +msgid "" +"Please enter the DN and password of the administrative self registration " +"account." +msgstr "请输入管理员级密码自助复位的帐号和密码." + +#: ../lib/modules/posixGroup.inc:525 ../lib/modules/posixAccount.inc:502 +msgid "" +"Please enter the DN of the LDAP entry with object class \"sambaUnixIdPool\"." +msgstr "请输入目标类为\"sambaUnixIdPool\"的 LDAP 条目的DN" + +#: ../lib/modules/bindDLZ.inc:93 ../lib/modules/bindDLZ.inc:97 +msgid "Please enter the IP address for this entry." +msgstr "请为这个条目输入IP地址" + +#: ../lib/modules/ddns.inc:99 +msgid "Please enter the IP address of your DNS server." +msgstr "请输入DNS服务器IP地址" + +#: ../lib/modules/selfRegistration.inc:62 +msgid "Please enter the LDAP DN that should be used to create new users." +msgstr "请输入用于建立新用户的LDAP DN." + +#: ../lib/modules/passwordSelfReset.inc:105 +msgid "Please enter the LDAP DN that should be used to reset passwords." +msgstr "请输入用于复位密码的LDAP DN." + +#: ../lib/modules/customFields.inc:93 +msgid "Please enter the LDAP attribute name for this field." +msgstr "请为此域输入LDAP属性." + +#: ../help/help.inc:123 +msgid "" +"Please enter the LDAP suffix where LAM should start to search for users. The " +"LDAP filter needs to match the given user name to exactly one DN. The value " +"\"%USER%\" will be replaced by the user name from the login page." +msgstr "" +"请输入LAM开始搜索用户的LDAP后缀.所给用户名经LDAP过滤器后需要精确匹配到一个DN." +"\"%USER%\"将在登录页替换为用户名." + +#: ../lib/modules/pykotaUser.inc:157 +msgid "" +"Please enter the LDAP suffix where the PyKota job entries are stored " +"(configuration option \"jobbase\")." +msgstr "请输入PyKota保存任务的LDAP后缀. (配置选项 \"jobbase\")." + +#: ../lib/modules/asteriskExtension.inc:188 +#: ../lib/modules/asteriskVoicemail.inc:214 +msgid "Please enter the account context." +msgstr "请输入账号的语境. " + +#: ../lib/modules.inc:928 +msgid "Please enter the account information on the other pages first." +msgstr "请先在另一个页面输入帐号信息." + +#: ../lib/modules/asteriskAccount.inc:565 +msgid "Please enter the account type." +msgstr "请输入账号的类型. " + +#: ../lib/modules/asteriskAccount.inc:120 +msgid "Please enter the account's type (e.g. \"friend\")." +msgstr "请输入账号的类型(比如\"friend\"). " + +#: ../lib/modules/asteriskExtension.inc:187 +msgid "Please enter the application data." +msgstr "请输入应用数据." + +#: ../lib/modules/asteriskExtension.inc:186 +msgid "Please enter the application." +msgstr "请输入应用名." + +#: ../lib/modules/automount.inc:69 +msgid "" +"Please enter the automount entry (e.g. \"-fstype=nfs,rw server:/home\")." +msgstr "请输入自动挂接条目(比如:\"-fstype=nfs,rw server:/home\")" + +#: ../templates/login.php:292 +msgid "Please enter the configuration and create a server profile." +msgstr "请输入配置名称并新建一个服务器配置" + +#: ../help/help.inc:57 +msgid "" +"Please enter the configuration password. This is NOT your LDAP password. It " +"is stored in your .conf-file. If this is the first time you log in, enter " +"\"lam\"." +msgstr "" +"请输入配置文件的密码,不是LDAP中的密码,这个密码存放在配置文件中,第一次登录的" +"话,请输入\"lam\"." + +#: ../lib/modules/oracleService.inc:66 +msgid "" +"Please enter the connection string (e.g. " +"\"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=server)(PORT=1521))" +"(CONNECT_DATA=(SERVICE_NAME=db.example.com)))\")." +msgstr "" +"请输入连接字符串(比如:\"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=server)" +"(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db.example.com)))\")." + +#: ../lib/modules/puppetClient.inc:81 ../lib/modules/puppetClient.inc:85 +msgid "Please enter the environment name for this node (e.g. production)." +msgstr "请为本节点输入环境名(比如:production)." + +#: ../lib/modules/asteriskAccount.inc:559 +msgid "Please enter the extension context." +msgstr "请输入扩展的语境." + +#: ../lib/modules/asteriskExtension.inc:189 +msgid "Please enter the extension name." +msgstr "请输入扩展的名字." + +#: ../lib/modules/windowsGroup.inc:115 +msgid "Please enter the group name." +msgstr "请输入组名." + +#: ../lib/modules/asteriskAccount.inc:562 ../lib/modules/windowsHost.inc:75 +msgid "Please enter the host name." +msgstr "请输入主机名." + +#: ../lib/modules/customScripts.inc:60 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [account type] [action] [script and arguments]" +msgstr "" +"请输入运行的脚本列表。每一行遵循如下格式:[帐号类型] [动作] [脚本和参数]" + +#: ../lib/modules/customScripts.inc:74 +msgid "" +"Please enter the list of scripts which should be run. Each line has the " +"following format: [action] [script and arguments]" +msgstr "请输入运行的脚本列表。每一行遵循如下格式:[动作] [脚本和参数]" + +#: ../lib/modules/nisObject.inc:66 +msgid "" +"Please enter the mapping entry (e.g. \"-fstype=nfs,rw server:/projects\")." +msgstr "请输入映射条目(比如:\"-fstype=nfs,rw server:/projects\")" + +#: ../lib/modules/nisObject.inc:70 +msgid "Please enter the mapping name for this entry (e.g. auto.home)." +msgstr "请输入本条目的映射名(比如:auto.home)." + +#: ../help/help.inc:143 +msgid "" +"Please enter the master configuration password. This is NOT your LDAP " +"password. It is stored in your config.cfg file. If this is the first time " +"you log in, enter \"lam\"." +msgstr "" +"请输入本系统管理配置密码,不是LDAP密码,存在在config.cfg文件中,如果第一次登录," +"请输入\"lam\"." + +#: ../templates/config/mainlogin.php:145 +msgid "Please enter the master password to change the general preferences:" +msgstr "更改一般配置,请输入管理密码:" + +#: ../lib/modules/qmailGroup.inc:424 +msgid "Please enter the message store." +msgstr "请输入消息的存储空间" + +#: ../help/help.inc:131 +msgid "" +"Please enter the name of the new profile and the password to change its " +"settings. Profile names may contain letters, numbers and -/_." +msgstr "请输入新配置文件名和密码.配置文件名可以包含字符和-/_ ." + +#: ../help/help.inc:133 +msgid "" +"Please enter the new name of the profile. The name may contain letters, " +"numbers and -/_." +msgstr "請輸入新的設定檔名稱.可以包含字母,數字和 -/_ ." + +#: ../lib/modules/selfRegistration.inc:66 +#: ../lib/modules/passwordSelfReset.inc:109 +msgid "" +"Please enter the password for the admin DN. Please note that this is saved " +"as clear-text in the self service profile." +msgstr "请输入管理DN的密码.请注意密码将在自助服务配置中以明文存放." + +#: ../lib/modules/asteriskAccount.inc:116 ../lib/modules/posixAccount.inc:523 +#: ../lib/modules/windowsUser.inc:224 ../lib/modules/inetOrgPerson.inc:863 +msgid "Please enter the password which you want to set for this account." +msgstr "请输入这个帐号的密码." + +#: ../help/help.inc:203 +msgid "" +"Please enter the password which you want to set for this account. You may " +"also generate a random password (12 characters) which will be displayed on " +"your screen." +msgstr "请输入本帐号的密码.可以生成一个12个字符长的随机密码,显示在屏幕上." + +#: ../lib/modules/posixAccount.inc:474 +msgid "Please enter the path to the user's home directory." +msgstr "请输入用户主目录路径." + +#: ../lib/modules/zarafaServer.inc:69 +msgid "Please enter the port number for (unencrypted) HTTP connections." +msgstr "请输入非加密的HTTP连接端口号" + +#: ../lib/modules/zarafaServer.inc:73 +msgid "Please enter the port number for encrypted connections." +msgstr "请输入加密连接的端口号" + +#: ../lib/modules/passwordSelfReset.inc:81 +msgid "" +"Please enter the possible security questions for the password self reset." +msgstr "请为密码复位设置安全提问." + +#: ../lib/modules/asteriskExtension.inc:191 +msgid "Please enter the priority." +msgstr "请输入优先级." + +#: ../lib/modules/imapAccess.inc:110 +msgid "Please enter the quota limit of this mailbox in kilobytes." +msgstr "请输入邮箱的限额(kB)" + +#: ../lib/modules/quota.inc:154 +msgid "" +"Please enter the quota settings for this mount point. The syntax is: {soft " +"block limit},{hard block limit},{soft inode limit},{hard inode limit}" +msgstr "" +"请输入本挂接点的配额设置.语法为:(软块限制},{硬块限制},{软件节点限制},{硬节点" +"限制}." + +#: ../lib/modules/systemQuotas.inc:69 +msgid "" +"Please enter the quota settings for this user. The syntax is: {mount point}," +"{soft block limit},{hard block limit},{soft inode limit},{hard inode limit}." +msgstr "" +"请输入本用户的配额设置.语法为:{装配点},{软块限制},{硬块限制},{软件节点限制}," +"{硬节点限制}." + +#: ../lib/modules/nisMailAlias.inc:86 +msgid "Please enter the recipients for this alias." +msgstr "请为这个别名输入收件人." + +#: ../lib/modules/customFields.inc:109 +#, php-format +msgid "" +"Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") to validate " +"this field. For a syntax description see here." +msgstr "" +"请输入正则表达式 (比如:\"/^[0-9a-zA-Z]+$/\")来校验这个域 .语法的描述 看这里." + +#: ../templates/lists/changePassword.php:526 +#: ../lib/modules/selfRegistration.inc:533 +#: ../lib/modules/sambaSamAccount.inc:105 ../lib/modules/posixAccount.inc:109 +#: ../lib/modules/windowsUser.inc:615 ../lib/modules/customFields.inc:2533 +msgid "Please enter the same password in both password fields." +msgstr "在两个密码输入框请输入相同的密码." + +#: ../lib/modules/passwordSelfReset.inc:77 +msgid "Please enter the security question for the password self reset." +msgstr "请为密码自复位输入安全提问." + +#: ../lib/modules/sambaSamAccount.inc:371 +msgid "Please enter the time limit in minutes. 0 means unlimited." +msgstr "请输入时间限制(分钟)。0代表不限制。" + +#: ../lib/modules/windowsUser.inc:108 ../lib/modules/windowsUser.inc:116 +msgid "Please enter the user's name." +msgstr "请输入用户名." + +#: ../lib/modules/puppetClient.inc:101 ../lib/modules/puppetClient.inc:105 +msgid "" +"Please enter your Puppet variables for this node (e.g. config_exim=true)." +msgstr "请为本节点输入您的Puppet变量(比如:config_exim=true)." + +#: ../templates/selfService/adminLogin.php:133 +msgid "" +"Please enter your master configuration password to change the self service " +"profile:" +msgstr "请输入主配置密码来修改用户自助服务配置文件." + +#: ../templates/config/conflogin.php:132 +msgid "Please enter your password to change the server preferences:" +msgstr "改变服务器配置,请输入密码:" + +#: ../lib/modules/ldapPublicKey.inc:73 +msgid "Please enter your public SSH key." +msgstr "请输入您的SSH公钥." + +#: ../lib/modules/range.inc:489 ../lib/modules/fixed_ip.inc:404 +msgid "Please fill out the DHCP settings first." +msgstr "请先填写DHCP设置" + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "Please go back and try again." +msgstr "请返回重试." + +#: ../templates/masscreate.php:246 +msgid "" +"Please provide a CSV formated file with your account data. The cells in the " +"first row must be filled with the column identifiers. The following rows " +"represent one account for each row." +msgstr "请提供帐号数据CSV格式文件.第一行必须为栏目标识,以下每行表示一个帐号." + +#: ../lib/config.inc:1810 +msgid "Please provide a file in DER or PEM format." +msgstr "请提供 DER 或 PEM 格式的文件。" + +#: ../templates/massBuildAccounts.php:256 +msgid "Please provide a file to upload." +msgstr "请提供上传的文件。" + +#: ../lib/modules/inetOrgPerson.inc:771 +msgid "" +"Please select an image file to upload. It must be in JPG format (.jpg/.jpeg)." +msgstr "请选择图像文件上传,必须是JPG格式(.jpg/.jpeg)." + +#: ../lib/modules/customFields.inc:101 +msgid "Please select the field type (e.g. text field)." +msgstr "请输入域的类型(比如:文本框). " + +#: ../help/help.inc:270 +msgid "Please select the suffix where changes should be done." +msgstr "请选择修改的后缀" + +#: ../help/help.inc:149 +msgid "" +"Please select your prefered log level. Messages with a lower level will not " +"be logged." +msgstr "请选择日志等级,在此等级以下的日志不会被记录." + +#: ../lib/modules/asteriskVoicemail.inc:228 +msgid "Please set the voicemail password with \"Set password\" before saving." +msgstr "在保存前请设置语音邮件的密码." + +#: ../lib/modules.inc:877 +#, php-format +msgid "Please set up all required attributes on page: %s" +msgstr "请在页面%s上输入必须的属性." + +#: ../templates/config/profmanage.php:220 +#: ../templates/selfService/profManage.php:160 +msgid "Please set up your master configuration file (config/config.cfg) first!" +msgstr "请先主配置文件(config/config.cfg)!" + +#: ../lib/modules/dhcp_settings.inc:551 ../lib/modules/ddns.inc:362 +msgid "" +"Please set your LDAP suffix to an LDAP entry with object class \"dhcpService" +"\" or \"dhcpServer\"." +msgstr "" +"请设置LDAP后缀为一个目标类为\"dhcpService\" 或者 \"dhcpServer\"的 LDAP 条目." + +#: ../templates/multiEdit.php:213 +msgid "Please specify at least one operation." +msgstr "请至少指定一个操作" + +#: ../lib/modules/passwordSelfReset.inc:145 +msgid "Please specify how your users need to identify themselves." +msgstr "请指定你的用户需要怎样标识自己." + +#: ../lib/modules/windowsGroup.inc:143 +msgid "Please specify the group scope." +msgstr "请指定组的范围" + +#: ../lib/modules/customFields.inc:141 +msgid "" +"Please specify the possible values for this field. Each value can have a " +"descriptive label that is displayed to the user." +msgstr "请指定这个域的可能的值.每个值有一个显示给用户的描述标签." + +#: ../help/help.inc:274 +msgid "" +"Please specify which attributes should be changed. The modify operation will " +"also add an value if the attribute does not yet exist. To delete all values " +"of an attribute please leave the value field empty." +msgstr "" +"请指定要改变的属性. 当属性不存在的时候,这个修改操作也会增加新的属性. 要删除一" +"个属性,请保留空白." + +#: ../lib/modules/inetOrgPerson.inc:102 +msgid "Please upload a .jpg/.jpeg file." +msgstr "请上传 .jpg/.jpeg文件. " + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:172 +msgid "Please wait" +msgstr "请稍等" + +#: ../lib/types/ppolicyType.inc:149 +#, php-format +msgid "Policy count: %s" +msgstr "策略总计: %s" + +#: ../lib/modules/kolabUser.inc:246 +msgid "Policy list has invalid format!" +msgstr "策略列表含有非法格式!" + +#: ../lib/modules/range.inc:550 +msgid "Pools" +msgstr "地址池" + +#: ../lib/modules/asteriskAccount.inc:179 +#: ../lib/modules/asteriskAccount.inc:283 +#: ../lib/modules/asteriskAccount.inc:436 +#: ../lib/modules/asteriskAccount.inc:686 +#: ../lib/modules/asteriskAccount.inc:999 +#: ../lib/modules/asteriskAccount.inc:1267 ../lib/modules/bindDLZ.inc:195 +#: ../lib/modules/bindDLZ.inc:199 ../lib/modules/bindDLZ.inc:399 +#: ../lib/modules/bindDLZ.inc:512 ../lib/modules/bindDLZ.inc:1365 +#: ../lib/modules/bindDLZ.inc:1608 +msgid "Port" +msgstr "端口" + +#: ../lib/modules/asteriskAccount.inc:180 +msgid "Port number." +msgstr "端口号" + +#: ../templates/pdfedit/pdfpage.php:592 ../templates/pdfedit/pdfpage.php:602 +#: ../templates/pdfedit/pdfpage.php:612 ../templates/pdfedit/pdfpage.php:627 +msgid "Position" +msgstr "位置" + +#: ../templates/masscreate.php:310 ../templates/masscreate.php:384 +#: ../lib/modules/customScripts.inc:125 ../lib/modules/customScripts.inc:127 +#: ../lib/modules/customScripts.inc:129 +#: ../lib/modules/sambaGroupMapping.inc:604 +msgid "Possible values" +msgstr "可能的值" + +#: ../lib/modules/pykotaPrinter.inc:130 ../lib/modules/posixGroup.inc:530 +#: ../lib/modules/sambaGroupMapping.inc:172 +#: ../lib/modules/organizationalRole.inc:103 +#: ../lib/modules/groupOfNames.inc:115 +msgid "" +"Possible wildcards are: \"*\" = any character, \"^\" = line start, \"$\" = " +"line end" +msgstr "可能的通配符是: \"*\" = 任意字符, \"^\" = 行的开头, \"$\" = 行的末尾." + +#: ../lib/modules/windowsUser.inc:160 ../lib/modules/windowsUser.inc:320 +#: ../lib/modules/windowsUser.inc:510 ../lib/modules/windowsUser.inc:547 +#: ../lib/modules/windowsUser.inc:709 ../lib/modules/windowsUser.inc:1606 +#: ../lib/modules/windowsUser.inc:1743 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:184 ../lib/modules/inetOrgPerson.inc:412 +#: ../lib/modules/inetOrgPerson.inc:559 ../lib/modules/inetOrgPerson.inc:686 +#: ../lib/modules/inetOrgPerson.inc:690 ../lib/modules/inetOrgPerson.inc:1259 +#: ../lib/modules/inetOrgPerson.inc:1262 ../lib/modules/inetOrgPerson.inc:1929 +#: ../lib/modules/inetOrgPerson.inc:2624 ../lib/modules/inetOrgPerson.inc:3580 +#: ../lib/modules/inetOrgPerson.inc:3647 +msgid "Post office box" +msgstr "邮政信箱" + +#: ../lib/modules/inetOrgPerson.inc:85 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:196 ../lib/modules/inetOrgPerson.inc:396 +#: ../lib/modules/inetOrgPerson.inc:571 ../lib/modules/inetOrgPerson.inc:702 +#: ../lib/modules/inetOrgPerson.inc:1303 ../lib/modules/inetOrgPerson.inc:1931 +#: ../lib/modules/inetOrgPerson.inc:2591 ../lib/modules/inetOrgPerson.inc:3588 +#: ../lib/modules/inetOrgPerson.inc:3649 +msgid "Postal address" +msgstr "邮政地址" + +#: ../lib/modules/inetOrgPerson.inc:703 +msgid "Postal address, city" +msgstr "邮政地址,城市" + +#: ../lib/modules/windowsUser.inc:156 ../lib/modules/windowsUser.inc:326 +#: ../lib/modules/windowsUser.inc:509 ../lib/modules/windowsUser.inc:548 +#: ../lib/modules/windowsUser.inc:605 ../lib/modules/windowsUser.inc:710 +#: ../lib/modules/windowsUser.inc:1605 ../lib/modules/windowsUser.inc:1744 +#: ../lib/modules/inetOrgPerson.inc:89 ../lib/modules/inetOrgPerson.inc:162 +#: ../lib/modules/inetOrgPerson.inc:187 ../lib/modules/inetOrgPerson.inc:388 +#: ../lib/modules/inetOrgPerson.inc:562 ../lib/modules/inetOrgPerson.inc:694 +#: ../lib/modules/inetOrgPerson.inc:698 ../lib/modules/inetOrgPerson.inc:1268 +#: ../lib/modules/inetOrgPerson.inc:1271 ../lib/modules/inetOrgPerson.inc:1930 +#: ../lib/modules/inetOrgPerson.inc:2613 ../lib/modules/inetOrgPerson.inc:3582 +#: ../lib/modules/inetOrgPerson.inc:3647 +msgid "Postal code" +msgstr "邮政编码" + +#: ../lib/modules/puppetClient.inc:112 +msgid "Predefined classes" +msgstr "预定义类" + +#: ../lib/modules/puppetClient.inc:116 ../lib/modules/puppetClient.inc:122 +msgid "Predefined environments" +msgstr "预定义环境" + +#: ../lib/modules/authorizedServiceObject.inc:93 +#: ../lib/modules/authorizedServiceObject.inc:99 +msgid "Predefined services" +msgstr "预定义服务" + +#: ../help/help.inc:91 +msgid "Predefined values" +msgstr "预订值" + +#: ../lib/modules/bindDLZ.inc:203 ../lib/modules/bindDLZ.inc:207 +#: ../lib/modules/bindDLZ.inc:287 ../lib/modules/bindDLZ.inc:502 +#: ../lib/modules/bindDLZ.inc:923 ../lib/modules/bindDLZ.inc:1520 +msgid "Preference" +msgstr "优先" + +#: ../lib/modules/imapAccess.inc:97 ../lib/modules/imapAccess.inc:143 +msgid "Prefix for mailboxes" +msgstr "邮箱前缀" + +#: ../lib/modules/inetOrgPerson.inc:342 +msgid "President" +msgstr "总裁" + +#: ../lib/modules/pykotaUser.inc:650 ../lib/modules/pykotaUser.inc:999 +msgid "Price" +msgstr "价格" + +#: ../lib/types/pykotaPrinterType.inc:94 ../lib/modules/pykotaPrinter.inc:111 +#: ../lib/modules/pykotaPrinter.inc:174 ../lib/modules/pykotaPrinter.inc:197 +#: ../lib/modules/pykotaPrinter.inc:215 ../lib/modules/pykotaPrinter.inc:235 +#: ../lib/modules/pykotaPrinter.inc:587 +msgid "Price per job" +msgstr "每任务价格" + +#: ../lib/types/pykotaPrinterType.inc:93 ../lib/modules/pykotaPrinter.inc:115 +#: ../lib/modules/pykotaPrinter.inc:180 ../lib/modules/pykotaPrinter.inc:198 +#: ../lib/modules/pykotaPrinter.inc:217 ../lib/modules/pykotaPrinter.inc:237 +#: ../lib/modules/pykotaPrinter.inc:588 +msgid "Price per page" +msgstr "每页价格" + +#: ../lib/modules/eduPerson.inc:88 ../lib/modules/eduPerson.inc:168 +#: ../lib/modules/eduPerson.inc:229 ../lib/modules/eduPerson.inc:283 +#: ../lib/modules/eduPerson.inc:581 +msgid "Primary affiliation" +msgstr "主要联系" + +#: ../lib/modules/posixAccount.inc:297 ../lib/modules/posixAccount.inc:389 +#: ../lib/modules/posixAccount.inc:414 ../lib/modules/posixAccount.inc:465 +#: ../lib/modules/posixAccount.inc:514 ../lib/modules/posixAccount.inc:552 +#: ../lib/modules/posixAccount.inc:1446 ../lib/modules/posixAccount.inc:1735 +#: ../lib/modules/posixAccount.inc:1781 ../lib/modules/posixAccount.inc:1852 +msgid "Primary group" +msgstr "主要组" + +#: ../lib/modules/bindDLZ.inc:236 +msgid "Primary master DNS server for this zone (e.g. \"ns1.example.com.\")." +msgstr "这个域的主DNS服务器(比如 \"ns1.example.com.\")." + +#: ../lib/modules/bindDLZ.inc:235 ../lib/modules/bindDLZ.inc:345 +#: ../lib/modules/bindDLZ.inc:429 ../lib/modules/bindDLZ.inc:531 +#: ../lib/modules/bindDLZ.inc:1047 ../lib/modules/bindDLZ.inc:1554 +msgid "Primary name server" +msgstr "主DNS服务器" + +#: ../lib/modules/eduPerson.inc:130 ../lib/modules/eduPerson.inc:206 +#: ../lib/modules/eduPerson.inc:232 ../lib/modules/eduPerson.inc:247 +#: ../lib/modules/eduPerson.inc:348 ../lib/modules/eduPerson.inc:588 +msgid "Primary organisational unit" +msgstr "主要组织单元" + +#: ../lib/modules/eduPerson.inc:114 ../lib/modules/eduPerson.inc:161 +#: ../lib/modules/eduPerson.inc:230 ../lib/modules/eduPerson.inc:277 +#: ../lib/modules/eduPerson.inc:583 +msgid "Principal name" +msgstr "主要的名字" + +#: ../lib/modules/eduPerson.inc:243 ../lib/modules/eduPerson.inc:244 +msgid "Principal name is invalid!" +msgstr "主要的名字非法!" + +#: ../lib/modules/pykotaUser.inc:648 ../lib/modules/pykotaUser.inc:997 +msgid "Printer" +msgstr "打印机" + +#: ../lib/types/pykotaPrinterType.inc:164 +#, php-format +msgid "Printer count: %s" +msgstr "打印机总计: %s" + +#: ../lib/modules/pykotaPrinter.inc:100 +msgid "Printer description." +msgstr "打印机描述" + +#: ../lib/modules/pykotaPrinter.inc:200 ../lib/modules/pykotaPrinter.inc:258 +#: ../lib/modules/pykotaPrinter.inc:621 +msgid "Printer groups" +msgstr "打印机组" + +#: ../lib/types/pykotaPrinterType.inc:91 ../lib/modules/pykotaPrinter.inc:95 +#: ../lib/modules/pykotaPrinter.inc:146 ../lib/modules/pykotaPrinter.inc:193 +#: ../lib/modules/pykotaPrinter.inc:209 ../lib/modules/pykotaPrinter.inc:211 +#: ../lib/modules/pykotaPrinter.inc:231 ../lib/modules/pykotaPrinter.inc:584 +#: ../lib/modules/pykotaBillingCode.inc:101 +msgid "Printer name" +msgstr "打印机名" + +#: ../lib/modules/pykotaPrinter.inc:211 ../lib/modules/pykotaPrinter.inc:212 +msgid "Printer name already exists!" +msgstr "打印机名已经存在!" + +#: ../lib/modules/pykotaPrinter.inc:209 ../lib/modules/pykotaPrinter.inc:210 +msgid "" +"Printer name contains invalid characters. Valid characters are: a-z, A-Z, " +"0-9 and .-_ !" +msgstr "打印机名包含非法字符,只能使用a-z,A-Z,0-9,和 .-_!" + +#: ../lib/modules/pykotaPrinter.inc:96 +msgid "" +"Printer name of the printer which should be created. Valid characters are: a-" +"z, A-Z, 0-9 and .-_ ." +msgstr "将要建立这台打印机的打印机名,可用字符为: a-z, A-Z, 0-9,及 -或_ " + +#: ../lib/types/pykotaPrinterType.inc:53 +msgid "Printers" +msgstr "打印机" + +#: ../lib/modules/bindDLZ.inc:179 ../lib/modules/bindDLZ.inc:183 +#: ../lib/modules/bindDLZ.inc:389 ../lib/modules/bindDLZ.inc:508 +#: ../lib/modules/bindDLZ.inc:1355 ../lib/modules/bindDLZ.inc:1606 +#: ../lib/modules/asteriskExtension.inc:106 +#: ../lib/modules/asteriskExtension.inc:825 +msgid "Priority" +msgstr "优先级" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1537 +#: ../templates/3rdParty/pla/htdocs/import_form.php:44 +#: ../templates/3rdParty/pla/htdocs/export_form.php:135 +msgid "Proceed" +msgstr "处理完毕" + +#: ../templates/config/profmanage.php:112 +#: ../templates/selfService/profManage.php:85 +msgid "Profile deleted." +msgstr "配置文件被删除." + +#: ../templates/profedit/profilepage.php:182 +#: ../templates/profedit/profilemain.php:94 ../lib/tools/profileEditor.inc:44 +msgid "Profile editor" +msgstr "配置文件编辑器" + +#: ../templates/config/profmanage.php:159 +#: ../templates/config/profmanage.php:236 +#: ../templates/selfService/profManage.php:101 +#: ../templates/selfService/profManage.php:199 ../help/help.inc:130 +#: ../help/help.inc:132 ../help/help.inc:134 ../help/help.inc:136 +#: ../help/help.inc:138 +msgid "Profile management" +msgstr "配置文件管理" + +#: ../templates/config/profmanage.php:240 +#: ../templates/config/profmanage.php:260 +#: ../templates/config/profmanage.php:272 +#: ../templates/config/profmanage.php:281 +#: ../templates/config/profmanage.php:301 +#: ../templates/selfService/profManage.php:203 +#: ../templates/selfService/profManage.php:217 +#: ../templates/selfService/profManage.php:233 +#: ../templates/profedit/profilepage.php:186 +#: ../templates/profedit/profilemain.php:277 +#: ../templates/profedit/profilemain.php:321 ../help/help.inc:188 +msgid "Profile name" +msgstr "配置文件名" + +#: ../templates/config/profmanage.php:88 +#: ../templates/config/profmanage.php:107 +#: ../templates/config/profmanage.php:137 +#: ../templates/config/profmanage.php:148 +#: ../templates/selfService/profManage.php:61 +#: ../templates/selfService/profManage.php:76 +msgid "Profile name is invalid!" +msgstr "配置文件名非法!" + +#: ../templates/config/profmanage.php:243 +#: ../templates/config/profmanage.php:282 +msgid "Profile password" +msgstr "配置文件密码" + +#: ../templates/config/profmanage.php:86 +#: ../templates/config/profmanage.php:135 +msgid "Profile passwords are different or empty!" +msgstr "配置文件密码不同或为空!" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:98 +#: ../lib/modules/sambaSamAccount.inc:221 +#: ../lib/modules/sambaSamAccount.inc:233 +#: ../lib/modules/sambaSamAccount.inc:309 +#: ../lib/modules/sambaSamAccount.inc:358 +#: ../lib/modules/sambaSamAccount.inc:503 +#: ../lib/modules/sambaSamAccount.inc:599 +#: ../lib/modules/sambaSamAccount.inc:1223 +#: ../lib/modules/sambaSamAccount.inc:1516 +#: ../lib/modules/sambaSamAccount.inc:1585 +#: ../lib/modules/sambaSamAccount.inc:1765 +#: ../lib/modules/sambaSamAccount.inc:1910 +#: ../lib/modules/sambaSamAccount.inc:1925 ../lib/modules/windowsUser.inc:204 +#: ../lib/modules/windowsUser.inc:418 ../lib/modules/windowsUser.inc:478 +#: ../lib/modules/windowsUser.inc:520 ../lib/modules/windowsUser.inc:611 +#: ../lib/modules/windowsUser.inc:754 ../lib/modules/windowsUser.inc:1635 +msgid "Profile path" +msgstr "配置文件路径" + +#: ../lib/modules/sambaSamAccount.inc:97 ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/windowsUser.inc:611 ../lib/modules/windowsUser.inc:612 +msgid "Profile path is invalid!" +msgstr "配置文件路径非法!" + +#: ../templates/profedit/profilemain.php:149 +msgid "Profile was saved." +msgstr "配置文件已保存." + +#: ../templates/profedit/profilemain.php:244 +msgid "Profiles" +msgstr "配置文件" + +#: ../lib/modules/qmailUser.inc:252 +msgid "Program to execute for all incoming mails." +msgstr "所有收件要运行的程序." + +#: ../templates/multiEdit.php:231 +msgid "Progress" +msgstr "处理" + +#: ../lib/modules/zarafaServer.inc:84 ../lib/modules/zarafaServer.inc:128 +#: ../lib/modules/zarafaServer.inc:141 ../lib/modules/zarafaServer.inc:163 +#: ../lib/modules/zarafaServer.inc:212 ../lib/modules/zarafaServer.inc:357 +msgid "Proxy URL" +msgstr "代理URL" + +#: ../lib/modules/zarafaServer.inc:80 ../lib/modules/zarafaServer.inc:118 +#: ../lib/modules/zarafaServer.inc:138 ../lib/modules/zarafaServer.inc:225 +#: ../lib/modules/zarafaServer.inc:362 +msgid "Public store" +msgstr "公用存储" + +#: ../lib/modules/puppetClient.inc:70 +msgid "Puppet" +msgstr "Puppet" + +#: ../lib/modules/pykotaPrinter.inc:79 ../lib/modules/pykotaGroup.inc:93 +#: ../lib/modules/pykotaUser.inc:93 ../lib/modules/pykotaBillingCode.inc:61 +msgid "PyKota" +msgstr "PyKota" + +#: ../lib/types/pykotaBillingCodeType.inc:62 +msgid "PyKota billing codes" +msgstr "PyKota 账单号" + +#: ../lib/modules/pykotaGroup.inc:121 ../lib/modules/pykotaGroup.inc:148 +#: ../lib/modules/pykotaGroup.inc:181 ../lib/modules/pykotaGroup.inc:201 +#: ../lib/modules/pykotaGroup.inc:203 ../lib/modules/pykotaGroup.inc:467 +msgid "PyKota group name" +msgstr "PyKota 组名" + +#: ../lib/types/pykotaPrinterType.inc:62 +msgid "PyKota printers" +msgstr "PyKota打印机" + +#: ../lib/modules/pykotaUser.inc:124 ../lib/modules/pykotaUser.inc:190 +#: ../lib/modules/pykotaUser.inc:260 ../lib/modules/pykotaUser.inc:315 +#: ../lib/modules/pykotaUser.inc:317 ../lib/modules/pykotaUser.inc:891 +msgid "PyKota user name" +msgstr "PyKota 用户名" + +#: ../lib/modules/pykotaGroup.inc:221 +msgid "Pykota group name" +msgstr "PyKota 组名" + +#: ../lib/modules/pykotaUser.inc:359 +msgid "Pykota user name" +msgstr "PyKota 用户名" + +#: ../lib/modules/qmailUser.inc:87 ../lib/modules/qmailGroup.inc:56 +msgid "Qmail" +msgstr "Qmail" + +#: ../lib/modules/asteriskAccount.inc:183 +#: ../lib/modules/asteriskAccount.inc:284 +#: ../lib/modules/asteriskAccount.inc:443 +#: ../lib/modules/asteriskAccount.inc:691 +#: ../lib/modules/asteriskAccount.inc:1000 +#: ../lib/modules/asteriskAccount.inc:1269 +msgid "Qualify" +msgstr "合格" + +#: ../lib/modules/passwordSelfReset.inc:76 +#: ../lib/modules/passwordSelfReset.inc:170 +#: ../lib/modules/passwordSelfReset.inc:177 +#: ../lib/modules/passwordSelfReset.inc:197 +#: ../lib/modules/passwordSelfReset.inc:218 +#: ../lib/modules/passwordSelfReset.inc:258 +#: ../lib/modules/passwordSelfReset.inc:381 +#: ../lib/modules/passwordSelfReset.inc:658 +#: ../lib/modules/passwordSelfReset.inc:1043 +msgid "Question" +msgstr "提问" + +#: ../lib/modules/qmailUser.inc:668 ../lib/modules/quota.inc:87 +#: ../lib/modules/quota.inc:100 ../lib/modules/quota.inc:153 +#: ../lib/modules/pykotaGroup.inc:61 ../lib/modules/pykotaGroup.inc:175 +#: ../lib/modules/pykotaGroup.inc:176 ../lib/modules/zarafaUser.inc:481 +#: ../lib/modules/pykotaUser.inc:61 ../lib/modules/pykotaUser.inc:235 +#: ../lib/modules/pykotaUser.inc:236 ../lib/modules/systemQuotas.inc:58 +#: ../lib/modules/systemQuotas.inc:68 ../lib/modules/systemQuotas.inc:75 +#: ../lib/modules/systemQuotas.inc:81 ../lib/modules/systemQuotas.inc:88 +#: ../lib/modules/imapAccess.inc:109 ../lib/modules/imapAccess.inc:164 +msgid "Quota" +msgstr "配额" + +#: ../lib/modules/quota.inc:698 +#, php-format +msgid "Quota for %s on %s" +msgstr "%s 在 %s 的硬盘配额:" + +#: ../lib/modules/zarafaUser.inc:100 ../lib/modules/zarafaUser.inc:230 +#: ../lib/modules/zarafaUser.inc:352 ../lib/modules/zarafaUser.inc:412 +#: ../lib/modules/zarafaUser.inc:516 ../lib/modules/zarafaUser.inc:1231 +#: ../lib/modules/zarafaUser.inc:1314 ../lib/modules/zarafaUser.inc:1791 +msgid "Quota hard limit" +msgstr "硬限额." + +#: ../lib/modules/quota.inc:63 +msgid "Quota has wrong format!" +msgstr "磁盘配额格式错误!" + +#: ../lib/modules/imapAccess.inc:319 ../lib/modules/imapAccess.inc:328 +msgid "Quota limit (kB)" +msgstr "限额(kB)." + +#: ../lib/modules/zarafaUser.inc:88 ../lib/modules/zarafaUser.inc:204 +#: ../lib/modules/zarafaUser.inc:343 ../lib/modules/zarafaUser.inc:488 +#: ../lib/modules/zarafaUser.inc:1242 ../lib/modules/zarafaUser.inc:1305 +#: ../lib/modules/zarafaUser.inc:1785 +msgid "Quota override" +msgstr "限制覆盖" + +#: ../lib/modules/qmailUser.inc:106 ../lib/modules/qmailUser.inc:133 +#: ../lib/modules/qmailUser.inc:219 ../lib/modules/qmailUser.inc:308 +#: ../lib/modules/qmailUser.inc:409 ../lib/modules/qmailUser.inc:675 +#: ../lib/modules/qmailUser.inc:1144 +msgid "Quota size" +msgstr "限制大小" + +#: ../lib/modules/zarafaUser.inc:96 ../lib/modules/zarafaUser.inc:222 +#: ../lib/modules/zarafaUser.inc:349 ../lib/modules/zarafaUser.inc:410 +#: ../lib/modules/zarafaUser.inc:506 ../lib/modules/zarafaUser.inc:1230 +#: ../lib/modules/zarafaUser.inc:1311 ../lib/modules/zarafaUser.inc:1789 +msgid "Quota soft limit" +msgstr "软限额" + +#: ../lib/modules/zarafaUser.inc:92 ../lib/modules/zarafaUser.inc:214 +#: ../lib/modules/zarafaUser.inc:346 ../lib/modules/zarafaUser.inc:408 +#: ../lib/modules/zarafaUser.inc:496 ../lib/modules/zarafaUser.inc:1229 +#: ../lib/modules/zarafaUser.inc:1308 ../lib/modules/zarafaUser.inc:1787 +msgid "Quota warning limit" +msgstr "限制告警点." + +#: ../templates/masscreate.php:334 ../templates/profedit/profilepage.php:213 +#: ../lib/modules/selfRegistration.inc:98 +#: ../lib/modules/selfRegistration.inc:210 ../lib/modules.inc:1004 +#: ../help/help.inc:186 +msgid "RDN identifier" +msgstr "RDN标志" + +#: ../lib/types/host.inc:93 +msgid "RID (Windows UID)" +msgstr "RID (Windows UID)" + +#: ../lib/modules/sambaDomain.inc:97 ../lib/modules/sambaDomain.inc:158 +#: ../lib/modules/sambaDomain.inc:189 ../lib/modules/sambaDomain.inc:383 +#: ../lib/modules/sambaDomain.inc:389 ../lib/modules/sambaDomain.inc:604 +msgid "RID base" +msgstr "RID 基类" + +#: ../lib/modules/sambaDomain.inc:352 +msgid "RID settings" +msgstr "RID设置" + +#: ../lib/modules/asteriskAccount.inc:195 +#: ../lib/modules/asteriskAccount.inc:287 +#: ../lib/modules/asteriskAccount.inc:465 +#: ../lib/modules/asteriskAccount.inc:704 +#: ../lib/modules/asteriskAccount.inc:1003 +#: ../lib/modules/asteriskAccount.inc:1275 +msgid "RTP hold timeout" +msgstr "RTP保持超时" + +#: ../lib/modules/asteriskAccount.inc:191 +#: ../lib/modules/asteriskAccount.inc:286 +#: ../lib/modules/asteriskAccount.inc:458 +#: ../lib/modules/asteriskAccount.inc:699 +#: ../lib/modules/asteriskAccount.inc:1002 +#: ../lib/modules/asteriskAccount.inc:1273 +msgid "RTP timeout" +msgstr "RTP超时" + +#: ../lib/modules/customFields.inc:2928 +msgid "Radio buttons" +msgstr "单选按钮" + +#: ../lib/modules/range.inc:97 ../lib/modules/range.inc:514 +#: ../lib/modules/range.inc:574 +msgid "Range from" +msgstr "范围起始自" + +#: ../lib/modules/range.inc:101 ../lib/modules/range.inc:527 +#: ../lib/modules/range.inc:576 +msgid "Range to" +msgstr "范围到" + +#: ../lib/types/dhcp.inc:95 ../lib/modules/range.inc:79 +#: ../lib/modules/range.inc:127 ../lib/modules/range.inc:773 +msgid "Ranges" +msgstr "范围" + +#: ../templates/config/confmain.php:317 +msgid "Read" +msgstr "读" + +#: ../templates/config/confmain.php:262 ../templates/config/conftypes.php:305 +#: ../lib/modules/customFields.inc:104 ../lib/modules/customFields.inc:1722 +#: ../help/help.inc:182 +msgid "Read-only" +msgstr "只读" + +#: ../lib/modules/inetOrgPerson.inc:3643 +msgid "Read-only fields" +msgstr "只读域" + +#: ../lib/modules/customFields.inc:105 +msgid "" +"Read-only fields cannot be changed by the user. Use this if you want to show " +"an attribute just for information." +msgstr "用户不能更改的只读域.用此来显示不能更改的选项." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2289 +msgid "Really delete value from this attribute?" +msgstr "确定删除这些属性的值?" + +#: ../lib/modules/mitKerberos.inc:120 ../lib/modules/mitKerberos.inc:152 +#: ../lib/modules/mitKerberos.inc:194 ../lib/modules/freeRadius.inc:92 +#: ../lib/modules/freeRadius.inc:126 ../lib/modules/freeRadius.inc:146 +#: ../lib/modules/freeRadius.inc:177 ../lib/modules/freeRadius.inc:231 +#: ../lib/modules/freeRadius.inc:273 ../lib/modules/freeRadius.inc:539 +#: ../lib/modules/heimdalKerberos.inc:98 +#: ../lib/modules/heimdalKerberos.inc:157 +#: ../lib/modules/heimdalKerberos.inc:163 +msgid "Realm" +msgstr "域" + +#: ../lib/modules/nisMailAliasUser.inc:355 ../lib/modules/nisMailAlias.inc:181 +msgid "Recipient" +msgstr "收件人" + +#: ../lib/modules/nisMailAlias.inc:127 ../lib/modules/nisMailAlias.inc:128 +msgid "Recipient is invalid!" +msgstr "接收者非法!" + +#: ../lib/types/mailAlias.inc:92 ../lib/modules/nisMailAlias.inc:89 +#: ../lib/modules/nisMailAlias.inc:108 ../lib/modules/nisMailAlias.inc:116 +#: ../lib/modules/nisMailAlias.inc:476 +msgid "Recipient list" +msgstr "收件人列表" + +#: ../lib/modules/nisMailAlias.inc:85 ../lib/modules/nisMailAlias.inc:184 +#: ../lib/modules/nisMailAlias.inc:202 +msgid "Recipients" +msgstr "收件人" + +#: ../lib/modules/sambaSamAccount.inc:245 +#: ../lib/modules/sambaSamAccount.inc:388 +#: ../lib/modules/sambaSamAccount.inc:1565 +#: ../lib/modules/sambaSamAccount.inc:1977 +msgid "Reconnect if disconnected" +msgstr "如果中断重新连接" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:63 +msgid "Recursive copy" +msgstr "递归拷贝" + +#: ../templates/3rdParty/pla/htdocs/copy.php:49 +msgid "Recursive copy progress" +msgstr "递归拷贝过程" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:31 +msgid "Recursive delete progress" +msgstr "递归删除过程" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:65 +msgid "Recursively copy all children of this object as well." +msgstr "此对象的所有子集递归拷贝完毕" + +#: ../templates/config/profmanage.php:247 +#: ../templates/config/profmanage.php:286 +#: ../templates/config/mainmanage.php:459 ../templates/config/confmain.php:453 +#: ../lib/modules/selfRegistration.inc:415 +#: ../lib/modules/sambaSamAccount.inc:2275 +#: ../lib/modules/posixAccount.inc:2539 ../lib/modules/windowsUser.inc:1722 +msgid "Reenter password" +msgstr "再次输入密码" + +#: ../templates/serverInfo.php:187 +msgid "Referrals" +msgstr "转交" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1051 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1054 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:249 +#: ../lib/modules/asteriskExtension.inc:454 ../lib/lists.inc:788 +msgid "Refresh" +msgstr "刷新" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1055 +msgid "Refresh this entry" +msgstr "刷新本条目" + +#: ../lib/modules/bindDLZ.inc:215 ../lib/modules/bindDLZ.inc:320 +#: ../lib/modules/bindDLZ.inc:424 ../lib/modules/bindDLZ.inc:521 +#: ../lib/modules/bindDLZ.inc:1026 ../lib/modules/bindDLZ.inc:1549 +msgid "Refresh time" +msgstr "刷新时间" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:247 +msgid "Refreshing tree" +msgstr "树刷新中" + +#: ../lib/modules/selfRegistration.inc:340 +msgid "Register new account" +msgstr "注册新帐号" + +#: ../lib/modules/inetOrgPerson.inc:87 ../lib/modules/inetOrgPerson.inc:161 +#: ../lib/modules/inetOrgPerson.inc:199 ../lib/modules/inetOrgPerson.inc:404 +#: ../lib/modules/inetOrgPerson.inc:574 ../lib/modules/inetOrgPerson.inc:706 +#: ../lib/modules/inetOrgPerson.inc:1347 ../lib/modules/inetOrgPerson.inc:1932 +#: ../lib/modules/inetOrgPerson.inc:2602 ../lib/modules/inetOrgPerson.inc:3590 +#: ../lib/modules/inetOrgPerson.inc:3649 +msgid "Registered address" +msgstr "注册地址" + +#: ../lib/modules/inetOrgPerson.inc:707 +msgid "Registered address, city" +msgstr "注册地址,城市" + +#: ../lib/modules/asteriskAccount.inc:215 +#: ../lib/modules/asteriskAccount.inc:292 +#: ../lib/modules/asteriskAccount.inc:501 +#: ../lib/modules/asteriskAccount.inc:725 +#: ../lib/modules/asteriskAccount.inc:1008 +#: ../lib/modules/asteriskAccount.inc:1285 +msgid "Registration context" +msgstr "注册语境" + +#: ../lib/modules/asteriskAccount.inc:219 +#: ../lib/modules/asteriskAccount.inc:293 +#: ../lib/modules/asteriskAccount.inc:508 +#: ../lib/modules/asteriskAccount.inc:729 +#: ../lib/modules/asteriskAccount.inc:1009 +#: ../lib/modules/asteriskAccount.inc:1287 +msgid "Registration extension" +msgstr "注册扩展" + +#: ../lib/modules/asteriskAccount.inc:235 +#: ../lib/modules/asteriskAccount.inc:297 +#: ../lib/modules/asteriskAccount.inc:537 +#: ../lib/modules/asteriskAccount.inc:754 +#: ../lib/modules/asteriskAccount.inc:1013 +#: ../lib/modules/asteriskAccount.inc:1295 +msgid "Registration server" +msgstr "注册服务器" + +#: ../lib/modules/kolabUser.inc:53 +msgid "Reject if conflicts" +msgstr "如果冲突会被拒绝" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1052 +msgid "Reloading" +msgstr "重新载入" + +#: ../templates/login.php:427 +msgid "Remember user name" +msgstr "记住用户的名字" + +#: ../templates/config/confmodules.php:310 +#: ../templates/pdfedit/pdfpage.php:477 ../lib/modules/mitKerberos.inc:688 +#: ../lib/modules/qmailUser.inc:919 ../lib/modules/windowsHost.inc:158 +#: ../lib/modules/sambaSamAccount.inc:1484 ../lib/modules/kolabUser.inc:871 +#: ../lib/modules/shadowAccount.inc:476 ../lib/modules/freeRadius.inc:429 +#: ../lib/modules/sudoRole.inc:318 ../lib/modules/sudoRole.inc:345 +#: ../lib/modules/sudoRole.inc:372 ../lib/modules/sudoRole.inc:399 +#: ../lib/modules/sudoRole.inc:426 ../lib/modules/sudoRole.inc:453 +#: ../lib/modules/heimdalKerberos.inc:598 ../lib/modules/windowsGroup.inc:364 +msgid "Remove" +msgstr "删除" + +#: ../lib/modules/asteriskVoicemail.inc:263 +msgid "Remove Asterisk voicemail extension" +msgstr "删除Asterisk语音邮件扩展" + +#: ../lib/modules/authorizedServiceObject.inc:170 +msgid "Remove Authorized Service extension" +msgstr "删除授权服务扩展" + +#: ../lib/modules/eduPerson.inc:355 +msgid "Remove EDU person extension" +msgstr "删除EDU用户扩展" + +#: ../lib/modules/freeRadius.inc:307 +msgid "Remove FreeRadius extension" +msgstr "删除FreeRadius扩展" + +#: ../lib/modules/ipHost.inc:160 +msgid "Remove IP address extension" +msgstr "删除 IP 地址扩展" + +#: ../lib/modules/mitKerberos.inc:472 ../lib/modules/heimdalKerberos.inc:397 +msgid "Remove Kerberos extension" +msgstr "删除Kerberos扩展" + +#: ../lib/modules/puppetClient.inc:280 +msgid "Remove Puppet extension" +msgstr "删除Puppet扩展" + +#: ../lib/modules/pykotaGroup.inc:238 ../lib/modules/pykotaUser.inc:418 +msgid "Remove PyKota extension" +msgstr "删除PyKota扩展" + +#: ../lib/modules/sambaSamAccount.inc:1311 +#: ../lib/modules/sambaGroupMapping.inc:423 +msgid "Remove Samba 3 extension" +msgstr "删除 Samba 3 扩展" + +#: ../lib/modules/shadowAccount.inc:375 +msgid "Remove Shadow account extension" +msgstr "删除 Shadow 帐号扩展" + +#: ../lib/modules/posixGroup.inc:246 ../lib/modules/posixAccount.inc:1511 +msgid "Remove Unix extension" +msgstr "删除 Unix 扩展" + +#: ../lib/modules/zarafaContact.inc:258 ../lib/modules/zarafaGroup.inc:307 +#: ../lib/modules/zarafaUser.inc:655 ../lib/modules/zarafaServer.inc:232 +msgid "Remove Zarafa extension" +msgstr "删除Zarafa扩展" + +#: ../lib/modules/customFields.inc:457 +msgid "Remove extension" +msgstr "删除扩展" + +#: ../lib/types/user.inc:384 +msgid "Remove from all Unix groups" +msgstr "从所有的Unix组中删除" + +#: ../lib/types/user.inc:388 +msgid "Remove from all group of (unique) names" +msgstr "从所有的(唯一)名字组中删除." + +#: ../lib/modules/hostObject.inc:147 +msgid "Remove host extension" +msgstr "删除主机扩展" + +#: ../lib/modules/posixGroup.inc:213 ../lib/modules/posixAccount.inc:1504 +#: ../lib/modules/inetOrgPerson.inc:1597 +msgid "Remove password" +msgstr "删除密码" + +#: ../lib/modules/passwordSelfReset.inc:281 +msgid "Remove password self reset extension" +msgstr "删除密码自助复位扩展" + +#: ../lib/modules/qmailUser.inc:706 ../lib/modules/qmailGroup.inc:627 +msgid "Remove qmail extension" +msgstr "删除Qmail扩展" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:147 +#: ../lib/modules/zarafaContact.inc:418 ../lib/modules/zarafaGroup.inc:478 +#: ../lib/modules/device.inc:281 ../lib/modules/zarafaUser.inc:902 +#: ../lib/modules/inetOrgPerson.inc:1770 ../lib/modules/qmailGroup.inc:850 +#: ../lib/modules/organizationalRole.inc:383 +#: ../lib/modules/windowsGroup.inc:584 ../lib/modules/groupOfNames.inc:440 +#: ../lib/modules/groupOfNames.inc:595 +msgid "Remove selected entries" +msgstr "删除所选条目" + +#: ../templates/config/conftypes.php:249 +msgid "Remove this account type" +msgstr "删除这个帐号类型" + +#: ../lib/modules/nisMailAliasUser.inc:153 +#: ../lib/modules/nisMailAliasUser.inc:192 +msgid "Remove user from alias entry." +msgstr "从别名条目删除用户。" + +#: ../lib/modules/inetOrgPerson.inc:2704 +msgid "Remove/replace photo" +msgstr "删除/更改照片" + +#: ../templates/config/profmanage.php:264 +#: ../templates/selfService/profManage.php:225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1152 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1155 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:24 +#: ../templates/3rdParty/pla/htdocs/rename_form.php:35 +#: ../templates/3rdParty/pla/htdocs/rename.php:53 +msgid "Rename" +msgstr "重命名" + +#: ../templates/3rdParty/pla/htdocs/rename_form.php:28 +#, php-format +msgid "Rename %s to a new object." +msgstr "将%s 重新命名到新的对象" + +#: ../templates/config/profmanage.php:259 +#: ../templates/config/profmanage.php:265 +#: ../templates/selfService/profManage.php:216 +#: ../templates/selfService/profManage.php:226 ../help/help.inc:132 +msgid "Rename profile" +msgstr "配置文件重命名" + +#: ../templates/3rdParty/pla/htdocs/rename.php:48 +msgid "Rename successful!" +msgstr "重命名操作成功!" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1153 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1156 +msgid "Rename this entry" +msgstr "重命名这个条目" + +#: ../templates/config/profmanage.php:98 +#: ../templates/selfService/profManage.php:72 +msgid "Renamed profile." +msgstr "已更名的配置文件." + +#: ../templates/3rdParty/pla/htdocs/import.php:30 +#: ../templates/3rdParty/pla/htdocs/import.php:31 +msgid "Renaming" +msgstr "重命名中" + +#: ../lib/modules/mitKerberos.inc:132 ../lib/modules/mitKerberos.inc:196 +#: ../lib/modules/mitKerberos.inc:236 ../lib/modules/mitKerberos.inc:253 +#: ../lib/modules/mitKerberos.inc:366 ../lib/modules/mitKerberos.inc:771 +#: ../lib/modules/heimdalKerberos.inc:114 +#: ../lib/modules/heimdalKerberos.inc:165 +#: ../lib/modules/heimdalKerberos.inc:205 +#: ../lib/modules/heimdalKerberos.inc:222 +#: ../lib/modules/heimdalKerberos.inc:313 +#: ../lib/modules/heimdalKerberos.inc:691 +msgid "Renewable lifetime" +msgstr "可重建生命周期" + +#: ../lib/modules/mitKerberos.inc:295 ../lib/modules/mitKerberos.inc:296 +#: ../lib/modules/heimdalKerberos.inc:259 +#: ../lib/modules/heimdalKerberos.inc:260 +msgid "Renewable lifetime must be a number." +msgstr "可重建寿命必须是数字!" + +#: ../templates/lists/changePassword.php:368 +#: ../lib/modules/passwordSelfReset.inc:1067 ../lib/modules.inc:1048 +msgid "Repeat password" +msgstr "确认密码" + +#: ../lib/modules/posixAccount.inc:101 ../lib/modules/posixAccount.inc:1199 +msgid "Replaced $user or $group in homedir." +msgstr "在homedir中已更改$user和$group. " + +#: ../templates/config/confmain.php:346 ../help/help.inc:257 +msgid "Reply-to address" +msgstr "回复地址" + +#: ../templates/config/confmain.php:523 +msgid "Reply-to address for password mails is invalid." +msgstr "密码邮件的回复地址非法" + +#: ../lib/types/ppolicyType.inc:89 ../lib/modules/ppolicy.inc:128 +#: ../lib/modules/ppolicy.inc:154 ../lib/modules/ppolicy.inc:288 +#: ../lib/modules/ppolicy.inc:500 +msgid "Require password change on first login" +msgstr "第一次登录时需要修改密码" + +#: ../lib/modules/windowsUser.inc:201 ../lib/modules/windowsUser.inc:402 +#: ../lib/modules/windowsUser.inc:519 ../lib/modules/windowsUser.inc:750 +#: ../lib/modules/windowsUser.inc:1629 +msgid "Require smartcard" +msgstr "需要智能卡" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 +msgid "Required attribute for object classes" +msgstr "对象类的所需属性" + +#: ../templates/schema/schema.php:383 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1567 +msgid "Required attributes" +msgstr "必选属性" + +#: ../lib/modules/mitKerberos.inc:180 ../lib/modules/mitKerberos.inc:462 +msgid "Requires hardware authentication" +msgstr "需要硬件认证" + +#: ../lib/modules/mitKerberos.inc:177 ../lib/modules/mitKerberos.inc:457 +#: ../lib/modules/heimdalKerberos.inc:151 +#: ../lib/modules/heimdalKerberos.inc:388 +msgid "Requires preauthentication" +msgstr "需要预认证" + +#: ../lib/modules/sambaSamAccount.inc:1305 +#: ../lib/modules/pykotaBillingCode.inc:93 +#: ../lib/modules/pykotaBillingCode.inc:163 +msgid "Reset" +msgstr "复位" + +#: ../lib/modules.inc:1220 +msgid "Reset changes" +msgstr "复位设定" + +#: ../lib/modules/sambaSamAccount.inc:265 +#: ../lib/modules/sambaSamAccount.inc:1304 +msgid "Reset password" +msgstr "复位密码" + +#: ../lib/modules/sambaDomain.inc:137 ../lib/modules/sambaDomain.inc:199 +#: ../lib/modules/sambaDomain.inc:224 ../lib/modules/sambaDomain.inc:348 +#: ../lib/modules/sambaDomain.inc:611 +msgid "Reset time after lockout" +msgstr "在锁定后复位时间" + +#: ../lib/modules/sambaDomain.inc:224 +msgid "Reset time after lockout must be are natural number." +msgstr "锁定帐号后复位时间必须是自然数." + +#: ../lib/modules/pykotaBillingCode.inc:94 +msgid "Resets the billing code's balance and page counter to 0." +msgstr "重置账单余额和打印数量为0" + +#: ../lib/modules/zarafaUser.inc:523 +msgid "Resource settings" +msgstr "资源设置" + +#: ../lib/modules/asteriskAccount.inc:187 +#: ../lib/modules/asteriskAccount.inc:285 +#: ../lib/modules/asteriskAccount.inc:450 +#: ../lib/modules/asteriskAccount.inc:695 +#: ../lib/modules/asteriskAccount.inc:1001 +#: ../lib/modules/asteriskAccount.inc:1271 +msgid "Restrict caller ID" +msgstr "受限拨号ID." + +#: ../templates/3rdParty/pla/lib/AJAXTree.php:113 +#: ../templates/3rdParty/pla/lib/AJAXTree.php:118 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:550 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:587 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:198 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:213 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:84 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:137 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:122 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:137 +msgid "Retrieving DN" +msgstr "获取DN" + +#: ../lib/modules/bindDLZ.inc:219 ../lib/modules/bindDLZ.inc:332 +#: ../lib/modules/bindDLZ.inc:425 ../lib/modules/bindDLZ.inc:523 +#: ../lib/modules/bindDLZ.inc:1037 ../lib/modules/bindDLZ.inc:1550 +msgid "Retry time" +msgstr "重试时间" + +#: ../lib/modules/bindDLZ.inc:755 +msgid "Reverse DNS entries (\"PTR\" records)" +msgstr "反DNS条目Reverse DNS entries (\"PTR\" 记录)" + +#: ../lib/modules/ddns.inc:106 ../lib/modules/ddns.inc:114 +#: ../lib/modules/ddns.inc:135 ../lib/modules/ddns.inc:397 +#: ../lib/modules/ddns.inc:426 +msgid "Reverse zone name" +msgstr "反向区域名" + +#: ../templates/config/confmain.php:313 ../help/help.inc:118 +msgid "Rights for the home directory" +msgstr "个人目录的权限" + +#: ../lib/modules/organizationalRole.inc:65 +msgid "Role" +msgstr "角色" + +#: ../lib/types/gon.inc:209 ../lib/types/group.inc:247 +#, php-format +msgid "Role count: %s" +msgstr "角色总计: %s" + +#: ../lib/types/gon.inc:107 ../lib/types/group.inc:110 +msgid "Role member DNs" +msgstr "角色成员DN" + +#: ../lib/types/gon.inc:112 ../lib/types/group.inc:116 +#: ../lib/types/sudo.inc:77 ../lib/modules/sudoRole.inc:66 +#: ../lib/modules/sudoRole.inc:146 ../lib/modules/sudoRole.inc:214 +#: ../lib/modules/sudoRole.inc:299 ../lib/modules/sudoRole.inc:804 +msgid "Role name" +msgstr "角色名" + +#: ../lib/types/gon.inc:63 ../lib/types/group.inc:64 +#: ../lib/modules/organizationalRoleUser.inc:54 +#: ../lib/modules/organizationalRoleUser.inc:56 +#: ../lib/modules/organizationalRoleUser.inc:60 +#: ../lib/modules/organizationalRoleUser.inc:64 +#: ../lib/modules/organizationalRoleUser.inc:71 +#: ../lib/modules/organizationalRoleUser.inc:270 +#: ../lib/modules/organizationalRoleUser.inc:306 +msgid "Roles" +msgstr "角色" + +#: ../lib/modules/zarafaUser.inc:528 ../lib/modules/zarafaUser.inc:1246 +msgid "Room" +msgstr "房间" + +#: ../lib/modules/inetOrgPerson.inc:163 ../lib/modules/inetOrgPerson.inc:205 +#: ../lib/modules/inetOrgPerson.inc:486 ../lib/modules/inetOrgPerson.inc:580 +#: ../lib/modules/inetOrgPerson.inc:782 ../lib/modules/inetOrgPerson.inc:1391 +#: ../lib/modules/inetOrgPerson.inc:1394 ../lib/modules/inetOrgPerson.inc:1940 +#: ../lib/modules/inetOrgPerson.inc:2635 ../lib/modules/inetOrgPerson.inc:3594 +#: ../lib/modules/inetOrgPerson.inc:3650 +msgid "Room number" +msgstr "房间号" + +#: ../lib/modules/inetLocalMailRecipient.inc:68 +#: ../lib/modules/inetLocalMailRecipient.inc:100 +#: ../lib/modules/inetLocalMailRecipient.inc:119 +#: ../lib/modules/inetLocalMailRecipient.inc:146 +#: ../lib/modules/inetLocalMailRecipient.inc:292 +msgid "Routing address" +msgstr "邮寄地址" + +#: ../lib/modules/customFields.inc:132 ../lib/modules/customFields.inc:2607 +msgid "Rows" +msgstr "行" + +#: ../lib/modules/asteriskExtension.inc:139 +#: ../lib/modules/asteriskExtension.inc:311 +msgid "Rules" +msgstr "规则" + +#: ../lib/modules/customScripts.inc:187 +msgid "Run" +msgstr "运行" + +#: ../lib/types/sudo.inc:82 +msgid "Run group" +msgstr "运行组" + +#: ../lib/modules/sudoRole.inc:90 ../lib/modules/sudoRole.inc:118 +#: ../lib/modules/sudoRole.inc:183 ../lib/modules/sudoRole.inc:220 +#: ../lib/modules/sudoRole.inc:232 ../lib/modules/sudoRole.inc:424 +#: ../lib/modules/sudoRole.inc:810 +msgid "Run groups" +msgstr "运行组" + +#: ../lib/types/sudo.inc:81 +msgid "Run user" +msgstr "运行用户" + +#: ../lib/modules/sudoRole.inc:86 ../lib/modules/sudoRole.inc:113 +#: ../lib/modules/sudoRole.inc:177 ../lib/modules/sudoRole.inc:219 +#: ../lib/modules/sudoRole.inc:231 ../lib/modules/sudoRole.inc:397 +#: ../lib/modules/sudoRole.inc:809 +msgid "Run users" +msgstr "运行用户" + +#: ../lib/modules/windowsUser.inc:304 +msgid "S.M." +msgstr "S.M." + +#: ../templates/serverInfo.php:129 +msgid "SASL mechanisms" +msgstr "SASL机制" + +#: ../lib/modules/asteriskAccount.inc:152 +msgid "SIP URI for a realtime peer." +msgstr "实时端的SIP URI" + +#: ../lib/modules/asteriskAccount.inc:128 +msgid "SIP user agent identification." +msgstr "SIP用户代理标识" + +#: ../lib/modules/bindDLZ.inc:314 ../lib/modules/bindDLZ.inc:320 +#: ../lib/modules/bindDLZ.inc:326 ../lib/modules/bindDLZ.inc:332 +#: ../lib/modules/bindDLZ.inc:338 ../lib/modules/bindDLZ.inc:345 +#: ../lib/modules/bindDLZ.inc:351 ../lib/modules/bindDLZ.inc:357 +#: ../lib/modules/bindDLZ.inc:423 ../lib/modules/bindDLZ.inc:424 +#: ../lib/modules/bindDLZ.inc:425 ../lib/modules/bindDLZ.inc:426 +#: ../lib/modules/bindDLZ.inc:427 ../lib/modules/bindDLZ.inc:428 +#: ../lib/modules/bindDLZ.inc:429 ../lib/modules/bindDLZ.inc:430 +#: ../lib/modules/bindDLZ.inc:487 ../lib/modules/bindDLZ.inc:519 +#: ../lib/modules/bindDLZ.inc:521 ../lib/modules/bindDLZ.inc:523 +#: ../lib/modules/bindDLZ.inc:525 ../lib/modules/bindDLZ.inc:527 +#: ../lib/modules/bindDLZ.inc:529 +msgid "SOA record" +msgstr "SOA记录" + +#: ../lib/modules/bindDLZ.inc:130 ../lib/modules/bindDLZ.inc:389 +#: ../lib/modules/bindDLZ.inc:394 ../lib/modules/bindDLZ.inc:399 +#: ../lib/modules/bindDLZ.inc:404 ../lib/modules/bindDLZ.inc:409 +#: ../lib/modules/bindDLZ.inc:493 +msgid "SRV record" +msgstr "SRV 条目" + +#: ../lib/modules/bindDLZ.inc:433 ../lib/modules/bindDLZ.inc:443 +#: ../lib/modules/bindDLZ.inc:1603 +msgid "SRV records" +msgstr "SRV 记录" + +#: ../templates/tests/lamdaemonTest.php:243 +msgid "SSH connection" +msgstr "SSH连接" + +#: ../templates/tests/lamdaemonTest.php:256 +msgid "SSH connection could be established." +msgstr "SSH连接可以建立." + +#: ../lib/modules/ldapPublicKey.inc:62 ../lib/modules/ldapPublicKey.inc:72 +#: ../lib/modules/ldapPublicKey.inc:76 ../lib/modules/ldapPublicKey.inc:88 +#: ../lib/modules/ldapPublicKey.inc:119 +msgid "SSH public key" +msgstr "SSH公钥" + +#: ../lib/modules/ldapPublicKey.inc:95 ../lib/modules/ldapPublicKey.inc:99 +#: ../lib/modules/ldapPublicKey.inc:197 ../lib/modules/ldapPublicKey.inc:237 +msgid "SSH public keys" +msgstr "SSH公钥" + +#: ../help/help.inc:83 +msgid "SSL certificate" +msgstr "SSL 数字证书" + +#: ../templates/config/mainmanage.php:308 +msgid "SSL certificates" +msgstr "SSL 数字证书" + +#: ../lib/modules/zarafaServer.inc:72 ../lib/modules/zarafaServer.inc:106 +#: ../lib/modules/zarafaServer.inc:136 ../lib/modules/zarafaServer.inc:175 +#: ../lib/modules/zarafaServer.inc:203 ../lib/modules/zarafaServer.inc:355 +msgid "SSL port" +msgstr "SSL端口" + +#: ../templates/lists/changePassword.php:411 +#: ../templates/lists/changePassword.php:442 +msgid "Samba" +msgstr "Samba" + +#: ../lib/types/user.inc:276 ../lib/types/user.inc:372 +#: ../lib/types/user.inc:404 ../lib/types/user.inc:829 +#: ../lib/modules/sambaSamAccount.inc:146 +#: ../lib/modules/sambaGroupMapping.inc:101 +msgid "Samba 3" +msgstr "Samba 3" + +#: ../lib/modules/sambaDomain.inc:210 ../lib/modules/sambaDomain.inc:211 +msgid "Samba 3 domain SID is invalid!" +msgstr "Samba 3 域SID非法!" + +#: ../lib/types/smbDomain.inc:62 +msgid "Samba 3 domain entries" +msgstr "Samba 3 域条目" + +#: ../lib/modules/posixGroup.inc:402 ../lib/modules/posixAccount.inc:210 +#: ../lib/modules/posixAccount.inc:228 +msgid "Samba ID pool" +msgstr "Samba ID 池" + +#: ../lib/modules/posixGroup.inc:413 ../lib/modules/posixGroup.inc:524 +#: ../lib/modules/posixGroup.inc:608 ../lib/modules/posixAccount.inc:131 +#: ../lib/modules/posixAccount.inc:215 ../lib/modules/posixAccount.inc:233 +#: ../lib/modules/posixAccount.inc:501 +msgid "Samba ID pool DN" +msgstr "Samba ID 池的DN" + +#: ../lib/modules/sambaSamAccount.inc:330 +#: ../lib/modules/sambaSamAccount.inc:334 +#: ../lib/modules/sambaSamAccount.inc:478 +#: ../lib/modules/sambaSamAccount.inc:544 +msgid "Samba RID" +msgstr "Samba RID" + +#: ../lib/modules/sambaGroupMapping.inc:129 +#: ../lib/modules/sambaGroupMapping.inc:154 +msgid "Samba RID number" +msgstr "Samba RID号" + +#: ../lib/modules/sambaGroupMapping.inc:123 +msgid "Samba display name" +msgstr "Samba 显示名" + +#: ../lib/modules/sambaDomain.inc:58 +msgid "Samba domain" +msgstr "Samba 域" + +#: ../lib/modules/sambaGroupMapping.inc:245 +msgid "Samba domain name" +msgstr "Samba 域名" + +#: ../lib/types/smbDomain.inc:53 +msgid "Samba domains" +msgstr "Samba 域" + +#: ../lib/modules/sambaGroupMapping.inc:113 +#: ../lib/modules/sambaGroupMapping.inc:135 +#: ../lib/modules/sambaGroupMapping.inc:162 +#: ../lib/modules/sambaGroupMapping.inc:541 +msgid "Samba group type" +msgstr "Samba 组类型" + +#: ../lib/modules/sambaSamAccount.inc:262 +msgid "Samba password" +msgstr "Samba密码" + +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:227 +#: ../lib/modules/sambaSamAccount.inc:315 +#: ../lib/modules/sambaSamAccount.inc:318 +#: ../lib/modules/sambaSamAccount.inc:519 +#: ../lib/modules/sambaSamAccount.inc:605 +#: ../lib/modules/sambaSamAccount.inc:1245 +#: ../lib/modules/sambaSamAccount.inc:1773 +#: ../lib/modules/sambaSamAccount.inc:1911 +msgid "Samba workstations" +msgstr "Samba工作站" + +#: ../lib/modules/sambaSamAccount.inc:1381 +msgid "Saturday" +msgstr "星期六" + +#: ../templates/config/confmodules.php:224 +#: ../templates/config/confmain.php:468 +#: ../templates/config/moduleSettings.php:238 +#: ../templates/config/conftypes.php:359 +#: ../templates/selfService/selfServiceMain.php:416 +#: ../templates/selfService/adminMain.php:713 +#: ../templates/pdfedit/pdfpage.php:636 +#: ../templates/profedit/profilepage.php:238 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1243 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1247 +#: ../lib/modules/inetOrgPerson.inc:2859 ../lib/modules/customFields.inc:3456 +#: ../lib/modules.inc:1214 +msgid "Save" +msgstr "保存" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1082 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1085 +msgid "Save a dump of this object" +msgstr "保存这个对象的转储" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1244 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1248 +msgid "Save a dump of this object and all of its children" +msgstr "保存这个对象及其所有子集的转储" + +#: ../templates/3rdParty/pla/htdocs/export_form.php:90 +msgid "Save as file" +msgstr "保存为文件" + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:172 +msgid "Save changes" +msgstr "保存更改" + +#: ../lib/tools/schemaBrowser.inc:44 +msgid "Schema browser" +msgstr "Schema浏览器" + +#: ../templates/serverInfo.php:119 +msgid "Schema suffix" +msgstr "Schema 后缀" + +#: ../templates/tests/schemaTest.php:55 ../templates/tests/index.php:58 +#: ../lib/tools/tests.inc:116 +msgid "Schema test" +msgstr "Schema测试" + +#: ../lib/modules/eduPerson.inc:92 ../lib/modules/eduPerson.inc:96 +#: ../lib/modules/eduPerson.inc:175 ../lib/modules/eduPerson.inc:233 +#: ../lib/modules/eduPerson.inc:285 ../lib/modules/eduPerson.inc:582 +msgid "Scoped affiliations" +msgstr "作用域关系" + +#: ../help/help.inc:101 +msgid "Script path" +msgstr "脚本路径" + +#: ../templates/config/confmain.php:573 +msgid "Script path is invalid!" +msgstr "脚本路径非法!" + +#: ../templates/config/confmain.php:592 +msgid "Script rights are invalid!" +msgstr "脚本权限非法!" + +#: ../templates/config/confmain.php:576 +msgid "Script server is invalid!" +msgstr "脚本服务器非法!" + +#: ../help/help.inc:114 +msgid "Script servers" +msgstr "脚本服务器" + +#: ../templates/serverInfo.php:300 ../templates/serverInfo.php:380 +#: ../templates/3rdParty/pla/lib/QueryRender.php:75 +#: ../templates/3rdParty/pla/lib/QueryRender.php:180 +#: ../templates/3rdParty/pla/lib/ds_ldap_pla.php:619 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:235 +msgid "Search" +msgstr "搜索" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +#: ../templates/3rdParty/pla/lib/QueryRender.php:190 +msgid "Search Results" +msgstr "搜索结果" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +#: ../templates/3rdParty/pla/lib/export_functions.php:201 +#: ../templates/3rdParty/pla/htdocs/export_form.php:81 +msgid "Search filter" +msgstr "搜索过滤器" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:293 +msgid "Search returned no results" +msgstr "搜索无结果" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +#: ../templates/3rdParty/pla/lib/export_functions.php:200 +#: ../templates/3rdParty/pla/htdocs/export_form.php:67 +msgid "Search scope" +msgstr "搜索范围" + +#: ../lib/modules/asteriskExtension.inc:457 +msgid "Search tree suffix for users" +msgstr "查询用户的树后缀" + +#: ../templates/pdfedit/pdfpage.php:608 +msgid "Section" +msgstr "节" + +#: ../lib/modules/windowsGroup.inc:60 +msgid "Security" +msgstr "安全" + +#: ../templates/3rdParty/pla/lib/Template.php:397 +#: ../templates/3rdParty/pla/lib/Template.php:422 +#: ../templates/3rdParty/pla/lib/Template.php:427 +#: ../templates/3rdParty/pla/lib/Template.php:484 +#: ../templates/3rdParty/pla/lib/Template.php:509 +#: ../templates/3rdParty/pla/lib/Template.php:514 +msgid "Security error: The file being uploaded may be malicious." +msgstr "安全错误:正在上传的文件可能有错误." + +#: ../lib/modules/zarafaGroup.inc:81 ../lib/modules/zarafaGroup.inc:178 +#: ../lib/modules/zarafaGroup.inc:203 ../lib/modules/zarafaGroup.inc:285 +#: ../lib/modules/zarafaGroup.inc:655 +msgid "Security group" +msgstr "安全组" + +#: ../lib/modules/windowsGroup.inc:139 +msgid "" +"Security groups are used for permission management and distribution groups " +"as email lists." +msgstr "安全组用于权限管理,分发组用于email用户列表." + +#: ../lib/modules/passwordSelfReset.inc:80 +#: ../lib/modules/passwordSelfReset.inc:205 +#: ../lib/modules/passwordSelfReset.inc:527 +msgid "Security questions" +msgstr "安全提问" + +#: ../templates/config/mainmanage.php:295 ../templates/config/confmain.php:458 +msgid "Security settings" +msgstr "安全设定" + +#: ../templates/help.php:94 +msgid "See also" +msgstr "同时参考" + +#: ../lib/account.inc:790 +msgid "See the manual for instructions to solve this problem." +msgstr "参考手册来解决本问题." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:494 +msgid "Select a template for the creation process" +msgstr "为新建处理选择模板" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:498 +msgid "Select a template to edit the entry" +msgstr "为编辑这个条目选择模板" + +#: ../lib/lists.inc:354 ../lib/lists.inc:471 +msgid "Select all" +msgstr "全选" + +#: ../templates/3rdParty/pla/htdocs/import_form.php:31 +msgid "Select an LDIF file" +msgstr "选择LDIF文件" + +#: ../lib/modules/nisnetgroup.inc:240 ../lib/modules/nisnetgroup.inc:269 +msgid "Select host" +msgstr "选择主机" + +#: ../lib/modules/customFields.inc:3126 +msgid "Select list" +msgstr "选项列表" + +#: ../lib/modules/nisMailAlias.inc:194 ../lib/modules/nisMailAlias.inc:215 +msgid "Select mail" +msgstr "选择邮件" + +#: ../lib/modules/nisMailAliasUser.inc:101 +msgid "Select one or more alias entries from the list to add the recipient." +msgstr "从列表中选择一个或多个别名条目加入到接收列表中." + +#: ../lib/modules/nisnetgroup.inc:246 ../lib/modules/nisnetgroup.inc:275 +#: ../lib/modules/nisMailAlias.inc:195 ../lib/modules/nisMailAlias.inc:216 +msgid "Select user" +msgstr "选择用户" + +#: ../lib/modules/posixAccount.inc:1567 ../lib/modules/posixAccount.inc:1600 +#: ../lib/modules/windowsUser.inc:1034 ../lib/modules/nisnetgroup.inc:384 +#: ../lib/modules/groupOfNamesUser.inc:131 +msgid "Selected groups" +msgstr "已选择的组" + +#: ../templates/masscreate.php:159 ../templates/config/confmodules.php:299 +msgid "Selected modules" +msgstr "已选择的模块" + +#: ../lib/modules/organizationalRoleUser.inc:116 +msgid "Selected roles" +msgstr "已选中的角色" + +#: ../lib/modules/posixGroup.inc:295 ../lib/modules/asteriskExtension.inc:461 +msgid "Selected users" +msgstr "已选择的用户" + +#: ../templates/selfService/adminMain.php:304 +msgid "Self service configuration" +msgstr "自助服务配置" + +#: ../templates/selfService/adminMain.php:357 +msgid "Self service configuration editor" +msgstr "自助服务配置编辑器" + +#: ../templates/selfService/adminMain.php:363 +msgid "Self service login" +msgstr "自助服务登录" + +#: ../lib/modules/passwordSelfReset.inc:504 +msgid "Self service login attribute" +msgstr "自助服务登录属性" + +#: ../templates/selfService/adminMain.php:349 +msgid "Self service profile" +msgstr "自助服务配置" + +#: ../lib/modules/passwordSelfReset.inc:130 +#: ../lib/modules/passwordSelfReset.inc:531 +msgid "Send confirmation mail" +msgstr "发送确认邮件" + +#: ../lib/modules/passwordSelfReset.inc:112 +#: ../lib/modules/passwordSelfReset.inc:551 +msgid "Send notification mail" +msgstr "发送提示邮件" + +#: ../lib/modules/inetOrgPerson.inc:467 ../lib/modules/inetOrgPerson.inc:751 +msgid "Send password via mail" +msgstr "通过邮件发送密码" + +#: ../templates/lists/changePassword.php:328 +#: ../templates/lists/changePassword.php:373 ../lib/modules.inc:1066 +#: ../help/help.inc:208 +msgid "Send via mail" +msgstr "通过邮件发送" + +#: ../lib/modules/qmailGroup.inc:90 ../lib/modules/qmailGroup.inc:220 +#: ../lib/modules/qmailGroup.inc:224 ../lib/modules/qmailGroup.inc:353 +#: ../lib/modules/qmailGroup.inc:408 ../lib/modules/qmailGroup.inc:429 +#: ../lib/modules/qmailGroup.inc:519 ../lib/modules/qmailGroup.inc:1068 +msgid "Sender email addresses" +msgstr "发信人的邮件地址" + +#: ../lib/modules/qmailGroup.inc:88 ../lib/modules/qmailGroup.inc:172 +#: ../lib/modules/qmailGroup.inc:176 ../lib/modules/qmailGroup.inc:295 +#: ../lib/modules/qmailGroup.inc:387 ../lib/modules/qmailGroup.inc:521 +#: ../lib/modules/qmailGroup.inc:790 ../lib/modules/qmailGroup.inc:1067 +msgid "Sender entries" +msgstr "发送者条目" + +#: ../lib/modules/qmailGroup.inc:92 ../lib/modules/qmailGroup.inc:188 +#: ../lib/modules/qmailGroup.inc:192 ../lib/modules/qmailGroup.inc:311 +#: ../lib/modules/qmailGroup.inc:393 ../lib/modules/qmailGroup.inc:520 +#: ../lib/modules/qmailGroup.inc:1069 +msgid "Sender filter" +msgstr "发送者过滤表达式" + +#: ../lib/modules/passwordSelfReset.inc:113 +msgid "Sends a mail to the user to inform him about the password change." +msgstr "发一封邮件来通知用户有关密码修改事宜." + +#: ../lib/modules/passwordSelfReset.inc:131 +msgid "" +"Sends a mail to the user to validate his email address before the password " +"change." +msgstr "在密码修改前,给用户发一封邮件来确认邮件地址." + +#: ../lib/modules/inetOrgPerson.inc:752 ../help/help.inc:209 +msgid "" +"Sends the password to the user via mail. Please edit your LAM server profile " +"to setup the mail settings." +msgstr "把密码通过邮件发送给用户。请编辑LAM服务器配置文件来设定邮件的配置." + +#: ../templates/config/mainmanage.php:358 ../lib/modules/device.inc:65 +#: ../lib/modules/device.inc:97 ../lib/modules/device.inc:127 +#: ../lib/modules/device.inc:175 ../lib/modules/device.inc:420 +#: ../lib/modules/bindDLZ.inc:227 ../lib/modules/bindDLZ.inc:357 +#: ../lib/modules/bindDLZ.inc:423 ../lib/modules/bindDLZ.inc:527 +#: ../lib/modules/bindDLZ.inc:1055 ../lib/modules/bindDLZ.inc:1548 +msgid "Serial number" +msgstr "序列号" + +#: ../templates/tests/lamdaemonTest.php:72 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:166 +#: ../templates/3rdParty/pla/htdocs/import.php:47 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:110 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:54 +#: ../templates/3rdParty/pla/htdocs/export_form.php:56 +#: ../lib/modules/kolabGroup.inc:289 ../lib/modules/bindDLZ.inc:171 +#: ../lib/modules/bindDLZ.inc:175 ../lib/modules/bindDLZ.inc:404 +#: ../lib/modules/bindDLZ.inc:514 ../lib/modules/bindDLZ.inc:1373 +#: ../lib/modules/bindDLZ.inc:1609 ../lib/modules/kolabSharedFolder.inc:429 +msgid "Server" +msgstr "服务器" + +#: ../templates/config/confmain.php:238 +#: ../templates/selfService/adminMain.php:414 ../lib/modules/qmailUser.inc:118 +#: ../lib/modules/qmailUser.inc:163 ../lib/modules/qmailUser.inc:243 +#: ../lib/modules/qmailUser.inc:358 ../lib/modules/qmailUser.inc:427 +#: ../lib/modules/qmailUser.inc:592 ../lib/modules/qmailUser.inc:1148 +#: ../lib/modules/imapAccess.inc:77 ../lib/modules/imapAccess.inc:117 +#: ../help/help.inc:58 +msgid "Server address" +msgstr "服务器地址" + +#: ../templates/config/confmain.php:501 +#: ../templates/selfService/adminMain.php:217 +msgid "Server address is invalid!" +msgstr "服务器地址非法!" + +#: ../templates/serverInfo.php:103 ../lib/tools/serverInfo.inc:44 +msgid "Server information" +msgstr "服务器信息" + +#: ../templates/config/confmain.php:310 +msgid "Server list" +msgstr "服务器列表" + +#: ../templates/login.php:468 ../templates/config/confmodules.php:137 +#: ../templates/config/confmain.php:167 +#: ../templates/config/moduleSettings.php:136 +#: ../templates/config/conftypes.php:155 ../lib/modules/imapAccess.inc:130 +msgid "Server profile" +msgstr "服务器设置文件" + +#: ../templates/config/confmain.php:280 +#: ../templates/selfService/adminMain.php:459 +msgid "Server settings" +msgstr "服务器设置" + +#: ../templates/serverInfo.php:180 +msgid "Server statistics" +msgstr "服务器统计" + +#: ../templates/serverInfo.php:205 ../templates/serverInfo.php:211 +msgid "Server time" +msgstr "服务器时间" + +#: ../lib/modules/zarafaServer.inc:145 +msgid "Servers" +msgstr "服务器" + +#: ../lib/modules/authorizedServiceObject.inc:82 +msgid "Service name (e.g. sshd, imap, ftp). Enter one service per entry." +msgstr "服务名(比如:sshd,imap,ftp).每个条目输入一个服务." + +#: ../lib/modules/bindDLZ.inc:1347 +msgid "Services (\"SRV\" records)" +msgstr "服务 (\"SRV\" 记录)" + +#: ../templates/config/mainmanage.php:298 ../help/help.inc:146 +msgid "Session timeout" +msgstr "会话超时" + +#: ../lib/modules/aliasEntry.inc:108 +msgid "Set" +msgstr "设置" + +#: ../lib/modules/sambaSamAccount.inc:1472 +#: ../lib/modules/sambaSamAccount.inc:1475 +#: ../lib/modules/sambaSamAccount.inc:1478 +#: ../lib/modules/shadowAccount.inc:464 ../lib/modules/shadowAccount.inc:467 +#: ../lib/modules/shadowAccount.inc:470 +msgid "Set also for Kerberos" +msgstr "同时也为Kerberos设置" + +#: ../lib/modules/mitKerberos.inc:682 ../lib/modules/shadowAccount.inc:461 +#: ../lib/modules/heimdalKerberos.inc:592 +msgid "Set also for Samba 3" +msgstr "同时也为Samba 3设置" + +#: ../lib/modules/mitKerberos.inc:679 ../lib/modules/sambaSamAccount.inc:1469 +#: ../lib/modules/heimdalKerberos.inc:589 +msgid "Set also for Shadow" +msgstr "同时也为Shadow设置" + +#: ../lib/modules.inc:1227 ../lib/modules.inc:1229 +msgid "Set password" +msgstr "设置密码" + +#: ../lib/modules/posixAccount.inc:269 ../lib/modules/posixAccount.inc:445 +msgid "Set primary group as memberUid" +msgstr "为主组设置memberUid" + +#: ../templates/config/profmanage.php:280 +#: ../templates/config/profmanage.php:291 +#: ../templates/config/profmanage.php:292 ../help/help.inc:136 +msgid "Set profile password" +msgstr "设置文件密码" + +#: ../lib/modules.inc:1230 +msgid "Set random password" +msgstr "设置随机密码" + +#: ../templates/lists/changePassword.php:356 +msgid "Set specific password" +msgstr "设置特定的密码" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:171 +msgid "Set the search results to 0 to retrieve all available records." +msgstr "设置搜索条件为0,来获取所有的记录" + +#: ../templates/selfService/adminMain.php:561 +msgid "Set this field read-only." +msgstr "将此域设为只读。" + +#: ../lib/modules/groupOfNames.inc:110 +msgid "" +"Set this only if your LDAP schema allows that groups may not have any " +"members (e.g. if you use OpenDJ)." +msgstr "仅在LDAP模板允许组不含组员时再设置(比如使用OpenDJ)." + +#: ../lib/modules/nisMailAliasUser.inc:77 +#: ../lib/modules/nisMailAliasUser.inc:81 +msgid "Sets the alias names linked to the current user name." +msgstr "设置连接到当前用户的别名." + +#: ../lib/modules/nisMailAliasUser.inc:85 +#: ../lib/modules/nisMailAliasUser.inc:89 +msgid "Sets the alias names linked to the user's email address." +msgstr "设置连接到用户邮件地址的别名。" + +#: ../lib/modules/bindDLZ.inc:224 +msgid "" +"Sets the default timeout (in seconds) for entries without explicit timeout " +"value." +msgstr "如果在没有明确的超时值时,缺省的超时(秒数)" + +#: ../lib/modules/qmailUser.inc:216 +msgid "Sets the delivery mode (e.g. disable mail forwarding)." +msgstr "设置发送模式(比如 关闭邮件转发)." + +#: ../lib/modules/posixGroup.inc:497 +msgid "Sets the group password." +msgstr "设置组密码" + +#: ../lib/modules/bindDLZ.inc:204 ../lib/modules/bindDLZ.inc:208 +msgid "" +"Sets the preference for the mail server. Lower values have higher priority." +msgstr "设置邮件服务器的优先级,越小的值具备更高的优先级." + +#: ../help/help.inc:183 +msgid "Sets this account type to read-only." +msgstr "将此账号类型设为只读。" + +#: ../lib/modules/shadowAccount.inc:91 +msgid "Shadow" +msgstr "Shadow" + +#: ../lib/modules/sambaSamAccount.inc:243 +#: ../lib/modules/sambaSamAccount.inc:382 +#: ../lib/modules/sambaSamAccount.inc:1549 +#: ../lib/modules/sambaSamAccount.inc:1961 +msgid "Shadowing" +msgstr "遮蔽化(shadow)" + +#: ../lib/types/kolabSharedFolderType.inc:141 +#, php-format +msgid "Shared folder count: %s" +msgstr "共享文件夹总计:%s" + +#: ../lib/modules/kolabSharedFolder.inc:57 +msgid "Shared mail folder" +msgstr "共享邮件文件夹" + +#: ../lib/modules/zarafaUser.inc:112 ../lib/modules/zarafaUser.inc:265 +#: ../lib/modules/zarafaUser.inc:358 ../lib/modules/zarafaUser.inc:585 +#: ../lib/modules/zarafaUser.inc:1268 ../lib/modules/zarafaUser.inc:1795 +msgid "Shared store only" +msgstr "仅共享存储" + +#: ../lib/modules/ddns.inc:82 +msgid "Should DDNS (Dynamic DNS) be activated?" +msgstr "DDNS(动态DNS)是否已经激活?" + +#: ../lib/modules/ddns.inc:86 +msgid "Should fix IP addresses be added to the DNS server?" +msgstr "增加一个固定IP地址到DNS服务器吗?" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1121 +msgid "Show" +msgstr "显示" + +#: ../templates/massBuildAccounts.php:243 +msgid "Show LDIF file" +msgstr "显示LDIF文件" + +#: ../lib/types/user.inc:683 +msgid "Show account status" +msgstr "显示帐号状态" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:159 +#: ../templates/3rdParty/pla/htdocs/export_form.php:84 +msgid "Show attributes" +msgstr "显示属性" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1122 +msgid "Show internal attributes" +msgstr "显示内部属性" + +#: ../lib/modules/asteriskExtension.inc:453 +msgid "Show only Asterisk accounts" +msgstr "只显示 Asterisk 帐号" + +#: ../lib/types/group.inc:424 +msgid "Show primary group members as normal group members" +msgstr "主组用户显示为普通组用户" + +#: ../templates/schema/schema.php:194 +msgid "Single valued" +msgstr "单值" + +#: ../lib/modules/pykotaUser.inc:652 ../lib/modules/pykotaUser.inc:1001 +msgid "Size" +msgstr "大小" + +#: ../lib/modules/qmailUser.inc:228 +msgid "Size limit in bytes for a single mail. Larger mails will be bounced." +msgstr "单封邮件的大小限额(字节数).更大的邮件会被退回." + +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:55 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:81 +msgid "Skip" +msgstr "跳过" + +#: ../lib/modules/quota.inc:634 ../lib/modules/systemQuotas.inc:383 +msgid "Soft block" +msgstr "软块" + +#: ../lib/modules/quota.inc:113 ../lib/modules/quota.inc:401 +#: ../lib/modules/quota.inc:507 ../lib/modules/systemQuotas.inc:124 +msgid "Soft block limit" +msgstr "软块限制" + +#: ../lib/modules/quota.inc:114 +msgid "Soft block limit." +msgstr "软块限制." + +#: ../lib/modules/quota.inc:636 ../lib/modules/systemQuotas.inc:385 +msgid "Soft inode" +msgstr "软节点" + +#: ../lib/modules/quota.inc:136 +msgid "Soft inode (files) limit." +msgstr "软节点限制." + +#: ../lib/modules/quota.inc:135 ../lib/modules/quota.inc:405 +#: ../lib/modules/quota.inc:509 ../lib/modules/systemQuotas.inc:128 +msgid "Soft inode limit" +msgstr "软节点限制." + +#: ../lib/modules/imapAccess.inc:98 +msgid "" +"Some IMAP servers store mailboxes with a prefix (e.g. \"user\" for Cyrus " +"which results in \"user.username\")." +msgstr "" +"有些IMAP服务器在存储邮件时使用前缀(比如:在Cyrus中\"user\"的邮箱是\"user." +"username\")." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1019 +#, php-format +msgid "Some attributes (%s) were modified and are highlighted below." +msgstr "下面被选中的属性(%s)已经被修改." + +#: ../lib/modules.inc:876 +msgid "Some required information is missing" +msgstr "缺少一些必要的信息" + +#: ../templates/help.php:123 +#, php-format +msgid "" +"Sorry this help id ({bold}%s{endbold}) is not available for this module " +"({bold}%s{endbold})." +msgstr "" +"对不起,本模块({bold}%s{endbold}) 尚无帮助说明 (help id {bold}%s{endbold})." + +#: ../templates/help.php:136 +#, php-format +msgid "Sorry this help number ({bold}%s{endbold}) is not available." +msgstr "对不起,本帮助号({bold}%s{endbold})并不存在." + +#: ../lib/modules/sambaSamAccount.inc:327 +#: ../lib/modules/sambaSamAccount.inc:1282 +msgid "Special user" +msgstr "特殊用户" + +#: ../lib/modules/zarafaDynamicGroup.inc:92 +#: ../lib/modules/zarafaAddressList.inc:80 +msgid "" +"Specifies a filter that matches the members (e.g. \"(mail=*@zarafa.nl)\")." +msgstr "指定用户匹配的过滤规则.(比如:\"(mail=*@zarafa.nl)\")." + +#: ../lib/modules/groupOfNames.inc:119 +msgid "Specifies how members and owners are displayed." +msgstr "设置显示用户和属主的数量" + +#: ../lib/modules/organizationalRole.inc:107 +msgid "Specifies how members are displayed." +msgstr "设置成员显示方法" + +#: ../help/help.inc:86 +msgid "" +"Specifies if LAM should automatically follow referrals. Activate if you use " +"referrals in your LDAP directory." +msgstr "" +"指定LAM是否自动追随引荐的LDAP服务器.如果在LDAP目录中使用了引荐功能请打开此项." + +#: ../help/help.inc:260 +msgid "" +"Specifies if password mails may be sent to mail addresses other than the " +"user's LDAP mail address." +msgstr "指定密码邮件是否发送到邮箱地址而不是用户LDAP中的邮箱地址." + +#: ../help/help.inc:256 +msgid "Specifies if the mail should be sent as text or HTML." +msgstr "指定发送邮件用文本方式还是HTML方式" + +#: ../help/help.inc:167 +msgid "" +"Specifies if the password must not contain 3 or more characters of the user/" +"first/last name." +msgstr "指定是否密码不允许包含姓名中3个或更多的字符。" + +#: ../help/help.inc:165 +msgid "Specifies if the password must not contain the user name." +msgstr "指定密码不允许包含用户姓名" + +#: ../lib/modules/asteriskAccount.inc:224 +msgid "Specifies if the user can call forward." +msgstr "指定用户是否可以呼叫转移" + +#: ../lib/modules/zarafaGroup.inc:82 +msgid "Specifies if this group has security possibilities." +msgstr "指定本组是否具备安全可能性." + +#: ../lib/modules/zarafaServer.inc:81 +msgid "" +"Specifies if this server contains the public store. This may be changed only " +"for new entries." +msgstr "指定本服务器是否公用存储.仅在新条目可更改." + +#: ../lib/modules/dhcp_settings.inc:202 +msgid "Specifies if unknown clients are allowed." +msgstr "指定是否允许未知的客户端" + +#: ../lib/modules/ppolicy.inc:133 +msgid "Specifies if users are allowed to change their own passwords or not." +msgstr "指定用户是否允许修改自己的密码。" + +#: ../lib/modules/zarafaDynamicGroup.inc:88 +#: ../lib/modules/zarafaAddressList.inc:76 +msgid "" +"Specifies the LDAP base where to search for members (e.g. \"ou=zarafa," +"dc=company,dc=com\")." +msgstr "指定LDAP搜索用户的基础DN(比如: \"ou=zarafa,dc=company,dc=com\")." + +#: ../lib/modules/customFields.inc:161 +msgid "Specifies the allowed file extension. This is checked at upload time." +msgstr "指定允许的文件扩展名. 会在上传的时候检查." + +#: ../lib/modules/zarafaContact.inc:96 ../lib/modules/zarafaGroup.inc:98 +#: ../lib/modules/zarafaUser.inc:145 +msgid "" +"Specifies the attribute that should be used to reference the entries. If you " +"would like to reference also groups then this must be set to \"dn\"." +msgstr "指定引用条目时使用的属性.如果你引用组,这里必须为\"dn\"." + +#: ../lib/modules/zarafaUser.inc:121 +msgid "Specifies the capacity of this resource." +msgstr "指定资源容量" + +#: ../lib/modules/kolabSharedFolder.inc:163 +msgid "Specifies the folder type (e.g. shared mail folder)." +msgstr "指定文件夹类型(比如 共享邮件文件夹)." + +#: ../lib/modules/customFields.inc:157 +msgid "Specifies the maximum allowed file size in bytes." +msgstr "指定允许的文件最大字节数." + +#: ../lib/modules/mitKerberos.inc:137 ../lib/modules/heimdalKerberos.inc:111 +msgid "Specifies the maximum lifetime of a ticket in days." +msgstr "指定票证的最大生命周期天数." + +#: ../lib/modules/ppolicy.inc:117 +msgid "" +"Specifies the maximum number of seconds before a password is due to expire " +"that expiration warning messages will be returned to a user." +msgstr "在密码过期前,对用户提示密码过期警告的最长时间(秒数)。" + +#: ../lib/modules/freeRadius.inc:109 +msgid "" +"Specifies the maximum number of seconds that a connection can be idle before " +"the session is terminated." +msgstr "指定在会话中断前,一条连接空闲的最长时间-秒数." + +#: ../lib/modules/mitKerberos.inc:133 ../lib/modules/heimdalKerberos.inc:115 +msgid "Specifies the maximum renewable lifetime of a ticket in days." +msgstr "指定票证的最大重建生命期天数." + +#: ../lib/modules/ppolicy.inc:121 +msgid "" +"Specifies the minimum number of characters that will be accepted in a " +"password." +msgstr "指定在密码中的字符的最少个数" + +#: ../help/help.inc:163 +msgid "Specifies the number of above password rules that must be fulfilled." +msgstr "指定上述密码规则必须满足的数量" + +#: ../lib/modules/ppolicy.inc:109 +msgid "" +"Specifies the number of consecutive failed login attempts after which the " +"password may not be used to login." +msgstr "指定锁定帐号前连续登录失败的次数。" + +#: ../lib/modules/ppolicy.inc:93 +msgid "" +"Specifies the number of previously used passwords which should be saved in " +"the password history. New passwords can only be set if they are not in the " +"password history." +msgstr "指定用户旧密码的历史记录个数。新密码不能与历史记录中的旧密码相同。" + +#: ../lib/modules/ppolicy.inc:113 +msgid "" +"Specifies the number of seconds after which old consecutive failed login " +"attempts are purged from the failure counter, even though no successful " +"authentication has occurred." +msgstr "指定从失败记录器中清除原来的连续登录失败记录的最长时间(秒数)。" + +#: ../lib/modules/ppolicy.inc:105 +msgid "" +"Specifies the number of seconds during which the password cannot be used to " +"login due to too many consecutive failed bind attempts." +msgstr "指定在连续登录失败后,用户不能登录的最长时间(秒数)。" + +#: ../lib/modules/eduPerson.inc:93 ../lib/modules/eduPerson.inc:97 +msgid "" +"Specifies the person's affiliation within a particular security domain in " +"broad categories such as student, faculty, staff, alum, etc." +msgstr "" +"指定一个用户的联系,要求是公开目录中明确的安全域,比如学生,教职员工,校友等等." + +#: ../lib/modules/eduPerson.inc:89 +msgid "" +"Specifies the person's primary relationship to the institution in broad " +"categories such as student, faculty, staff, alum, etc." +msgstr "指定用户的主要关系,要求是公开目录的惯例,比如学生,教职员工,校友等等" + +#: ../lib/modules/eduPerson.inc:106 ../lib/modules/eduPerson.inc:110 +msgid "" +"Specifies the person's relationships to the institution in broad categories " +"such as student, faculty, staff, alum, etc." +msgstr "指定用户的关系,要求是公开目录中的惯例,比如学生,教职员工,校友等等." + +#: ../lib/modules/bindDLZ.inc:180 ../lib/modules/bindDLZ.inc:184 +msgid "" +"Specifies the priority of this entry (lower value means more preferred)." +msgstr "指定这个条目的优先级(值越低,优先权越高)" + +#: ../lib/modules/pykotaGroup.inc:126 ../lib/modules/pykotaUser.inc:129 +msgid "" +"Specifies the type of limit for printing if any. Please note that in " +"contrast to \"Free printing\" the option \"No quota\" includes accounting." +msgstr "指定打印机限制类型. 请注意 \"Free printing\"和 \"No quota\" 的区别" + +#: ../lib/modules/bindDLZ.inc:196 ../lib/modules/bindDLZ.inc:200 +msgid "Specifies the used port for this entry." +msgstr "指定这个条目的使用的端口" + +#: ../lib/modules/asteriskAccount.inc:176 +msgid "Specifies the user's pickup group." +msgstr "指定用户的接听组." + +#: ../lib/modules/bindDLZ.inc:188 ../lib/modules/bindDLZ.inc:192 +msgid "Specifies the weight of this entry (relative value)." +msgstr "指定这个条目的权重(相对值)" + +#: ../lib/modules/zarafaUser.inc:109 +msgid "" +"Specifies whether the user is an admin. System administrators may " +"additionally create, modify and delete companies." +msgstr "指定用户是否是管理员.系统管理员可以建立,修改,删除附加的伙伴." + +#: ../lib/modules/ppolicy.inc:137 +msgid "" +"Specifies whether the user's existing password must be sent along with their " +"new password when changing a password. Attention, LAM does not support " +"password changes which require the old password." +msgstr "" +"在用户更改密码时是否需要输入旧密码。注意,LAM不支持更改密码时需要旧密码。" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1460 +msgid "Specify attributes and values" +msgstr "指定属性和属性值" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:150 +msgid "Standard LDAP search filter. Example: (&(sn=Smith)(givenName=David))" +msgstr "标准的LDAP搜索表达式,比如 (&(sn=Smith)(givenName=David))" + +#: ../templates/serverInfo.php:193 ../templates/serverInfo.php:199 +msgid "Start time" +msgstr "开始时间" + +#: ../lib/modules/windowsUser.inc:168 ../lib/modules/windowsUser.inc:338 +#: ../lib/modules/windowsUser.inc:512 ../lib/modules/windowsUser.inc:545 +#: ../lib/modules/windowsUser.inc:712 ../lib/modules/windowsUser.inc:1608 +#: ../lib/modules/windowsUser.inc:1741 ../lib/modules/inetOrgPerson.inc:164 +#: ../lib/modules/inetOrgPerson.inc:193 ../lib/modules/inetOrgPerson.inc:526 +#: ../lib/modules/inetOrgPerson.inc:568 ../lib/modules/inetOrgPerson.inc:802 +#: ../lib/modules/inetOrgPerson.inc:806 ../lib/modules/inetOrgPerson.inc:1286 +#: ../lib/modules/inetOrgPerson.inc:1289 ../lib/modules/inetOrgPerson.inc:1944 +#: ../lib/modules/inetOrgPerson.inc:2657 ../lib/modules/inetOrgPerson.inc:3586 +#: ../lib/modules/inetOrgPerson.inc:3648 +msgid "State" +msgstr "地点" + +#: ../templates/pdfedit/pdfpage.php:538 ../templates/pdfedit/pdfpage.php:540 +msgid "Static text" +msgstr "静态文本" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1455 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1467 +#, php-format +msgid "Step %s of %s" +msgstr "第 %s步,共 %s步" + +#: ../lib/modules/windowsUser.inc:280 ../lib/modules/inetOrgPerson.inc:311 +msgid "Steve" +msgstr "Steve" + +#: ../lib/modules/sambaSamAccount.inc:422 ../lib/modules/posixAccount.inc:350 +#: ../lib/modules/windowsUser.inc:292 ../lib/modules/windowsUser.inc:298 +#: ../lib/modules/pykotaUser.inc:201 ../lib/modules/inetOrgPerson.inc:2071 +#: ../lib/modules/asteriskVoicemail.inc:174 +msgid "Steve Miller" +msgstr "Steve Miller" + +#: ../lib/modules/posixAccount.inc:358 +msgid "Steve Miller,Room 2.14,123-123-1234,123-123-1234" +msgstr "Steve Miller,Room 2.14,123-123-1234,123-123-1234" + +#: ../lib/modules/eduPerson.inc:190 +msgid "Steve, Stevo" +msgstr "Steve,Stevo" + +#: ../lib/modules/imapAccess.inc:91 +msgid "" +"Storing the password in your server profile is also possible but not " +"recommended." +msgstr "可以将密码存放在服务器配置文件中,但不推荐这么做." + +#: ../lib/modules/windowsUser.inc:172 ../lib/modules/windowsUser.inc:314 +#: ../lib/modules/windowsUser.inc:513 ../lib/modules/windowsUser.inc:544 +#: ../lib/modules/windowsUser.inc:708 ../lib/modules/windowsUser.inc:1609 +#: ../lib/modules/windowsUser.inc:1740 ../lib/modules/inetOrgPerson.inc:83 +#: ../lib/modules/inetOrgPerson.inc:161 ../lib/modules/inetOrgPerson.inc:181 +#: ../lib/modules/inetOrgPerson.inc:380 ../lib/modules/inetOrgPerson.inc:556 +#: ../lib/modules/inetOrgPerson.inc:678 ../lib/modules/inetOrgPerson.inc:682 +#: ../lib/modules/inetOrgPerson.inc:1250 ../lib/modules/inetOrgPerson.inc:1253 +#: ../lib/modules/inetOrgPerson.inc:1928 ../lib/modules/inetOrgPerson.inc:2580 +#: ../lib/modules/inetOrgPerson.inc:3578 ../lib/modules/inetOrgPerson.inc:3645 +msgid "Street" +msgstr "街道" + +#: ../templates/pdfedit/pdfpage.php:449 ../templates/pdfedit/pdfmain.php:353 +msgid "Structure name" +msgstr "结构名" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:136 +#: ../templates/3rdParty/pla/htdocs/export_form.php:33 +msgid "Sub (entire subtree)" +msgstr "Sub (条目的子树)" + +#: ../lib/types/netgroup.inc:93 ../lib/modules/nisnetgroup.inc:91 +#: ../lib/modules/nisnetgroup.inc:126 ../lib/modules/nisnetgroup.inc:141 +#: ../lib/modules/nisnetgroup.inc:209 ../lib/modules/nisnetgroup.inc:383 +#: ../lib/modules/nisnetgroup.inc:581 +msgid "Subgroups" +msgstr "分组" + +#: ../templates/config/confmain.php:349 ../lib/modules/selfRegistration.inc:94 +#: ../lib/modules/selfRegistration.inc:231 +#: ../lib/modules/passwordSelfReset.inc:120 +#: ../lib/modules/passwordSelfReset.inc:539 +#: ../lib/modules/passwordSelfReset.inc:559 ../help/help.inc:248 +msgid "Subject" +msgstr "标题" + +#: ../lib/types/dhcp.inc:94 ../lib/modules/dhcp_settings.inc:149 +#: ../lib/modules/dhcp_settings.inc:207 ../lib/modules/dhcp_settings.inc:222 +#: ../lib/modules/dhcp_settings.inc:242 ../lib/modules/dhcp_settings.inc:561 +#: ../lib/modules/dhcp_settings.inc:685 +msgid "Subnet" +msgstr "子网" + +#: ../lib/modules/dhcp_settings.inc:189 ../lib/modules/dhcp_settings.inc:215 +#: ../lib/modules/dhcp_settings.inc:233 ../lib/modules/dhcp_settings.inc:300 +#: ../lib/modules/dhcp_settings.inc:606 ../lib/modules/dhcp_settings.inc:681 +msgid "Subnet mask" +msgstr "子网掩码" + +#: ../templates/schema/schema.php:176 +msgid "Substring Rule" +msgstr "子字符串规则" + +#: ../templates/3rdParty/pla/htdocs/import.php:63 +#: ../templates/3rdParty/pla/htdocs/copy.php:56 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:68 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:85 +msgid "Success" +msgstr "成功" + +#: ../templates/3rdParty/pla/htdocs/delete.php:32 +#, php-format +msgid "Successfully deleted DN %s" +msgstr "成功删除DN %s" + +#: ../lib/modules/sudoRole.inc:48 +msgid "Sudo role" +msgstr "Sudo角色" + +#: ../lib/types/sudo.inc:159 +#, php-format +msgid "Sudo role count: %s" +msgstr "Sudo角色总计:%s" + +#: ../lib/types/sudo.inc:48 +msgid "Sudo role management" +msgstr "Sudo角色管理" + +#: ../lib/types/sudo.inc:39 +msgid "Sudo roles" +msgstr "Sudo角色" + +#: ../lib/modules/sudoRole.inc:139 +msgid "Sudo roles with higher order numbers are used if multiple roles match." +msgstr "如果多角色匹配,就使用更高排序的Sudo角色" + +#: ../lib/modules/nisMailAliasUser.inc:92 +#: ../lib/modules/nisMailAliasUser.inc:362 ../lib/modules.inc:988 +msgid "Suffix" +msgstr "后缀" + +#: ../lib/modules/posixGroup.inc:416 ../lib/modules/posixGroup.inc:516 +msgid "Suffix for GID/group name check" +msgstr "GID/组名的后缀检查" + +#: ../lib/modules/posixAccount.inc:224 ../lib/modules/posixAccount.inc:242 +#: ../lib/modules/posixAccount.inc:489 +msgid "Suffix for UID/user name check" +msgstr "UID/用户名的后缀检查" + +#: ../lib/modules/selfRegistration.inc:102 +#: ../lib/modules/selfRegistration.inc:212 +msgid "Suffix for new users" +msgstr "新用户的后缀" + +#: ../lib/modules/sambaSamAccount.inc:1381 +msgid "Sunday" +msgstr "星期日" + +#: ../templates/selfService/adminMain.php:570 +msgid "Switch back to default label." +msgstr "换回到缺省值." + +#: ../templates/3rdParty/pla/htdocs/compare.php:72 +msgid "Switch entries" +msgstr "切换条目" + +#: ../lib/modules/asteriskAccount.inc:96 +#: ../lib/modules/asteriskVoicemail.inc:84 +msgid "Sync Asterisk password with Unix password" +msgstr "同步Asterisk和Unix的密码" + +#: ../lib/modules/heimdalKerberos.inc:242 +msgid "Sync Heimdal Kerberos password with Unix password" +msgstr " Heimdal Kerberos密码与Unix的密码同步" + +#: ../lib/modules/mitKerberos.inc:277 +msgid "Sync MIT Kerberos password with Unix password" +msgstr "MIT Kerberos 密码与Unix的密码同步" + +#: ../lib/modules/passwordSelfReset.inc:148 +#: ../lib/modules/passwordSelfReset.inc:529 +msgid "Sync Samba 3 password" +msgstr "同步 Samba 3 密码" + +#: ../lib/modules/sambaSamAccount.inc:249 +msgid "Sync Samba LM password with Unix password" +msgstr "同步 Samba LM 密码和Unix的密码" + +#: ../lib/modules/sambaSamAccount.inc:248 +msgid "Sync Samba NT password with Unix password" +msgstr "同步Samba NT的密码和 Unix的密码" + +#: ../lib/modules/customFields.inc:1111 +msgid "Sync fields with page layout" +msgstr "页面布局的同步域" + +#: ../templates/schema/schema.php:181 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:142 +msgid "Syntax" +msgstr "语法" + +#: ../templates/schema/schema.php:89 +msgid "Syntax OID" +msgstr "OID语法" + +#: ../templates/schema/schema.php:73 ../templates/schema/schema.php:74 +msgid "Syntaxes" +msgstr "语法" + +#: ../lib/modules/zarafaUser.inc:602 ../lib/modules/zarafaUser.inc:1259 +msgid "System administrator" +msgstr "系统管理员" + +#: ../templates/config/mainmanage.php:412 +msgid "System logging" +msgstr "系统日志" + +#: ../help/help.inc:60 +msgid "TLS cannot be combined with ldaps://." +msgstr "TLS不能与ldaps://结合" + +#: ../lib/modules/bindDLZ.inc:125 ../lib/modules/bindDLZ.inc:377 +#: ../lib/modules/bindDLZ.inc:382 ../lib/modules/bindDLZ.inc:491 +msgid "TXT record" +msgstr "TXT记录" + +#: ../lib/modules/bindDLZ.inc:432 ../lib/modules/bindDLZ.inc:442 +#: ../lib/modules/bindDLZ.inc:1576 +msgid "TXT records" +msgstr "TXT记录" + +#: ../lib/modules/kolabSharedFolder.inc:158 +#: ../lib/modules/kolabSharedFolder.inc:194 +#: ../lib/modules/kolabSharedFolder.inc:240 +#: ../lib/modules/kolabSharedFolder.inc:262 +#: ../lib/modules/kolabSharedFolder.inc:292 +#: ../lib/modules/kolabSharedFolder.inc:560 +msgid "Target IMAP folder" +msgstr "目标IMAP文件夹" + +#: ../lib/modules/kolabUser.inc:245 +msgid "Target of invitation policy is invalid!" +msgstr "邀请策略的目标非法 !" + +#: ../templates/pdfedit/pdfmain.php:317 +#: ../templates/profedit/profilemain.php:284 +msgid "Target server profile" +msgstr "目标服务器设置" + +#: ../templates/help.php:89 ../lib/modules.inc:660 +msgid "Technical name" +msgstr "技术名字" + +#: ../templates/lists/changePassword.php:294 ../lib/types/user.inc:203 +#: ../lib/modules/windowsUser.inc:176 ../lib/modules/windowsUser.inc:362 +#: ../lib/modules/windowsUser.inc:514 ../lib/modules/windowsUser.inc:542 +#: ../lib/modules/windowsUser.inc:601 ../lib/modules/windowsUser.inc:718 +#: ../lib/modules/windowsUser.inc:1610 ../lib/modules/windowsUser.inc:1734 +#: ../lib/modules/inetOrgPerson.inc:70 ../lib/modules/inetOrgPerson.inc:160 +#: ../lib/modules/inetOrgPerson.inc:208 ../lib/modules/inetOrgPerson.inc:420 +#: ../lib/modules/inetOrgPerson.inc:583 ../lib/modules/inetOrgPerson.inc:710 +#: ../lib/modules/inetOrgPerson.inc:714 ../lib/modules/inetOrgPerson.inc:1407 +#: ../lib/modules/inetOrgPerson.inc:1410 ../lib/modules/inetOrgPerson.inc:1933 +#: ../lib/modules/inetOrgPerson.inc:2525 ../lib/modules/inetOrgPerson.inc:3596 +#: ../lib/modules/inetOrgPerson.inc:3651 +msgid "Telephone number" +msgstr "电话号码" + +#: ../lib/modules/inetOrgPerson.inc:358 +msgid "Temp" +msgstr "临时" + +#: ../lib/modules/windowsUser.inc:310 ../lib/modules/pykotaUser.inc:228 +#: ../lib/modules/inetOrgPerson.inc:334 +msgid "Temp, contract till December" +msgstr "临时, 合同到12月份" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:725 +msgid "Template" +msgstr "模板" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:520 +msgid "Templates" +msgstr "模板" + +#: ../lib/modules/sambaSamAccount.inc:391 +#: ../lib/modules/sambaSamAccount.inc:609 +#: ../lib/modules/sambaSamAccount.inc:1294 +msgid "Terminal server options" +msgstr "终端服务选项" + +#: ../lib/tools/tests.inc:44 +msgid "Tests" +msgstr "测试" + +#: ../templates/config/confmain.php:364 ../lib/modules/selfRegistration.inc:69 +#: ../lib/modules/selfRegistration.inc:238 ../lib/modules/bindDLZ.inc:163 +#: ../lib/modules/bindDLZ.inc:167 ../lib/modules/bindDLZ.inc:377 +#: ../lib/modules/bindDLZ.inc:1245 ../lib/modules/bindDLZ.inc:1579 +#: ../lib/modules/passwordSelfReset.inc:124 +#: ../lib/modules/passwordSelfReset.inc:134 +#: ../lib/modules/passwordSelfReset.inc:543 +#: ../lib/modules/passwordSelfReset.inc:563 ../help/help.inc:250 +msgid "Text" +msgstr "文本" + +#: ../lib/modules/bindDLZ.inc:1242 +msgid "Text (\"TXT\" records)" +msgstr "文本(\"TXT\" 记录)" + +#: ../lib/modules/customFields.inc:2587 +msgid "Text area" +msgstr "文本区" + +#: ../templates/pdfedit/pdfpage.php:617 ../lib/modules/customFields.inc:1885 +msgid "Text field" +msgstr "输入框" + +#: ../lib/modules/eduPerson.inc:115 +msgid "" +"The \"NetID\" of the person for the purposes of inter-institutional " +"authentication. It should be represented in the form \"user@scope\" where " +"scope defines a local security domain." +msgstr "" +"用户用来进行机构间认证的\"NetID\".格式是\"user@scope\",其中scope是本地安全域." + +#: ../lib/modules/dhcp_settings.inc:336 +msgid "The DHCP ranges were changed to fit for the new subnet." +msgstr "为适应新子网的变化,DHCP范围已经更改." + +#: ../lib/modules/eduPerson.inc:127 +msgid "" +"The DN of the directory entry representing the institution with which the " +"person is associated." +msgstr "代表用户的机构的目录条目的DN." + +#: ../lib/modules/eduPerson.inc:131 +msgid "" +"The DN of the directory entry representing the person's primary " +"organisational unit." +msgstr "代表用户主要组织单元的目录条目的DN." + +#: ../lib/modules/eduPerson.inc:135 ../lib/modules/eduPerson.inc:139 +msgid "" +"The DNs of the directory entries representing the person's organisational " +"units." +msgstr "代表用户组织单元的目录条目的DN." + +#: ../lib/modules/posixGroup.inc:513 +msgid "" +"The ID of this group was changed. You can update all user and host entries " +"to the new group ID." +msgstr "组ID已经改变.你可以更新所有的用户和主机条目到新的组ID." + +#: ../lib/modules/imapAccess.inc:179 +msgid "The IMAP admin password is empty." +msgstr "IMAP管理密码为空" + +#: ../templates/config/mainmanage.php:100 +#: ../templates/config/mainmanage.php:122 ../lib/modules/bindDLZ.inc:495 +#: ../lib/modules/bindDLZ.inc:496 +#, php-format +msgid "The IP address %s is invalid!" +msgstr "IP地址 %s非法 !" + +#: ../lib/modules/fixed_ip.inc:498 +msgid "The IP address does not match the subnet." +msgstr "IP地址与子网不匹配." + +#: ../lib/modules/fixed_ip.inc:501 +msgid "The IP address is already in use." +msgstr "IP地址已被使用: " + +#: ../lib/modules/ipHost.inc:115 ../lib/modules/ipHost.inc:116 +#: ../lib/modules/asteriskAccount.inc:574 +#: ../lib/modules/asteriskAccount.inc:575 ../lib/modules/ppolicyUser.inc:96 +#: ../lib/modules/range.inc:505 ../lib/modules/range.inc:522 +#: ../lib/modules/range.inc:582 ../lib/modules/range.inc:599 +#: ../lib/modules/freeRadius.inc:249 ../lib/modules/freeRadius.inc:250 +#: ../lib/modules/fixed_ip.inc:493 +msgid "The IP address is invalid." +msgstr "IP地址非法 !" + +#: ../lib/modules/fixed_ip.inc:107 +msgid "The IP address of the PC." +msgstr "PC机的IP地址." + +#: ../lib/modules/dhcp_settings.inc:162 +msgid "" +"The IP addresses of the DNS servers. Multiple addresses are separated by \"," +"\". Example: 192.168.0.10, 192.168.0.11" +msgstr "DNS服务器IP地址,多地址用\",\"隔离. 例如: 192.168.0.10, 192.168.0.11" + +#: ../lib/modules/dhcp_settings.inc:170 +msgid "" +"The IP addresses of the Netbios name servers (e.g. \"123.123.123.123, " +"123.123.123.124\")." +msgstr "Netbios命名服务器的IP地址(比如: \"123.123.123.123, 123.123.123.124\")." + +#: ../lib/modules/range.inc:509 ../lib/modules/range.inc:524 +#: ../lib/modules/range.inc:588 ../lib/modules/range.inc:602 +msgid "The IP does not match the subnet." +msgstr "IP与子网掩码不匹配." + +#: ../lib/modules/mitKerberos.inc:153 ../lib/modules/heimdalKerberos.inc:158 +msgid "The Kerberos realm for this account." +msgstr "此帐号的Kerberos域" + +#: ../lib/modules/heimdalKerberos.inc:99 +msgid "The Kerberos realm of this user." +msgstr "此帐号的Kerberos域" + +#: ../lib/modules/fixed_ip.inc:103 +msgid "The MAC address of the PC. Example: 11:22:33:44:55:aa" +msgstr "PC机的 MAC 地址.比如: 11:22:33:44:55:aa" + +#: ../lib/modules/dhcp_settings.inc:328 ../lib/modules/dhcp_settings.inc:329 +msgid "The Netbios server is invalid." +msgstr "Netbios服务器非法." + +#: ../lib/modules/fixed_ip.inc:456 +msgid "The PC name may not be longer than 20 characters." +msgstr "PC机器名的长度不能超过20个字符." + +#: ../lib/modules/fixed_ip.inc:465 +msgid "The PC name may only contain A-Z, a-z and 0-9." +msgstr "PC机的机器名只能包含 A-Z, a-z 和 0-9." + +#: ../lib/modules/fixed_ip.inc:459 +msgid "The PC name needs to be at least 2 characters long." +msgstr "PC机器名的长度最短需要两个字符." + +#: ../help/help.inc:205 +msgid "" +"The PDF structure defines what information is exported as PDF file and how " +"the pages are structured. You can manage the PDF structures in the PDF " +"editor (under \"Tools\")." +msgstr "" +"PDF结构定义了输出到PDF文件的信息和页面的结构.可以在PDF编辑器中管理PDF结构(在" +"\"工具\"中)." + +#: ../templates/3rdParty/pla/htdocs/create.php:44 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:38 +#: ../lib/modules/selfRegistration.inc:571 +msgid "The RDN field is empty." +msgstr "RDN域是空的." + +#: ../lib/modules/freeRadius.inc:93 +msgid "The Radius realm of this account." +msgstr "此帐号的Radius域" + +#: ../lib/modules/sambaDomain.inc:82 +msgid "The SID of your Samba server. Get it with \"net getlocalsid\"." +msgstr "您的Samba服务器的SID,可以通过使用\"net getlocalsid\"命令获取." + +#: ../templates/selfService/selfServiceLogin.php:141 +#: ../templates/selfService/selfServiceMain.php:168 +msgid "The TLS encryption could not be started." +msgstr "TLS加密失败." + +#: ../lib/modules/posixAccount.inc:99 +msgid "" +"The UID ranges for users and hosts overlap! This is a problem because LAM " +"uses the highest UID in use + 1 for new accounts. Please set the minimum UID " +"to equal values or use independent ranges." +msgstr "" +"用户UID范围与主机帐号重叠,因为LAM用户使用最高UID+1做为新帐号的UID.请将最小的" +"UID设为相等或使用独立的范围." + +#: ../lib/modules/zarafaServer.inc:77 +msgid "The Unix socket or named pipe to the server." +msgstr "到服务器的Unix socket(Unix套接字)或命名管道" + +#: ../lib/modules/asteriskVoicemail.inc:215 +#: ../lib/modules/asteriskVoicemail.inc:216 +msgid "The account context is invalid." +msgstr "账号语境非法." + +#: ../lib/modules/asteriskAccount.inc:112 +#: ../lib/modules/asteriskExtension.inc:99 +#: ../lib/modules/asteriskVoicemail.inc:92 +msgid "The account context stores information about the dial plan." +msgstr "帐号的语境存储有关拨号模板的信息" + +#: ../lib/modules/asteriskAccount.inc:566 +#: ../lib/modules/asteriskAccount.inc:567 +msgid "The account type is invalid." +msgstr "账号类型非法." + +#: ../lib/modules/freeRadius.inc:105 +msgid "The account will be locked after this date." +msgstr "帐号将在这一天之后锁定." + +#: ../help/help.inc:191 +msgid "The account will be saved under this LDAP suffix." +msgstr "帐号将会保存在此后缀下." + +#: ../lib/modules/bindDLZ.inc:497 ../lib/modules/bindDLZ.inc:498 +#, php-format +msgid "The alias name \"%s\" is invalid." +msgstr "别名 \"%s\"非法." + +#: ../lib/modules/bindDLZ.inc:136 +msgid "The alias name for this entry." +msgstr "此条目的别名" + +#: ../lib/modules/passwordSelfReset.inc:230 +#, php-format +msgid "The answer needs to be at least %s characters long." +msgstr "答案的最短长度为%s个字符." + +#: ../lib/modules/passwordSelfReset.inc:1211 +msgid "The answer to the security question is wrong." +msgstr "安全问题的答案是错误的." + +#: ../templates/tests/schemaTest.php:128 +#, php-format +msgid "" +"The attribute %s is not supported for the object class %s by your LDAP " +"server." +msgstr "在你的LDAP服务器中%s属性(属于%s对象类)不被支持。" + +#: ../templates/3rdParty/pla/lib/import_functions.php:531 +#, php-format +msgid "The attribute to modify doesn't match the one specified by %s." +msgstr "修改的属性与%s指定的属性不匹配" + +#: ../templates/3rdParty/pla/htdocs/delete_attr.php:31 +msgid "The attribute value does not exist" +msgstr "属性值不存在" + +#: ../lib/modules/asteriskAccount.inc:556 +#: ../lib/modules/asteriskAccount.inc:558 +msgid "The caller ID format is invalid." +msgstr "拨号ID格式不合法." + +#: ../lib/modules/puppetClient.inc:186 ../lib/modules/puppetClient.inc:187 +msgid "The class names may only contain ASCII characters." +msgstr "类名仅包含ASCII字符." + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:372 +msgid "The config file is not writable." +msgstr "配置文件不可写." + +#: ../templates/3rdParty/pla/htdocs/create.php:29 +#: ../templates/3rdParty/pla/htdocs/copy.php:34 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:23 +#, php-format +msgid "The container you specified (%s) does not exist. Please try again." +msgstr "您指定的容器%s不存在,请重试." + +#: ../lib/modules/dhcp_settings.inc:326 ../lib/modules/dhcp_settings.inc:327 +msgid "The default gateway is invalid." +msgstr "缺省网关非法." + +#: ../lib/modules/qmailUser.inc:260 +msgid "The default interpretation of .qmail files." +msgstr ".qmail文件的缺省解释." + +#: ../templates/3rdParty/pla/htdocs/copy.php:31 +#, php-format +msgid "The destination entry (%s) already exists." +msgstr "目标条目(%s)已经存在." + +#: ../lib/modules/dhcp_settings.inc:338 ../lib/modules/dhcp_settings.inc:339 +msgid "" +"The domain name includes invalid characters. Valid characters are A-Z, a-z, " +"0-9, \".\", \"_\",\"-\"." +msgstr "域名包含非法字符,只能使用A-Z, a-z, 0-9, \".\", \"_\",\"-\"." + +#: ../lib/modules/dhcp_settings.inc:146 +msgid "The domain name of the subnet." +msgstr "域名的子网掩码." + +#: ../lib/modules/asteriskVoicemail.inc:220 +#: ../lib/modules/asteriskVoicemail.inc:221 +msgid "The email address is invalid." +msgstr "邮件地址非法 !" + +#: ../lib/modules/range.inc:102 +msgid "The ending IP address of the range." +msgstr "范围的最高IP地址." + +#: ../lib/modules/dhcp_settings.inc:330 +msgid "The entered Netbios node type does not exist." +msgstr "输入的Netbios节点类型不存在." + +#: ../templates/3rdParty/pla/htdocs/update.php:27 +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:22 +#: ../templates/3rdParty/pla/htdocs/compare_form.php:21 +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:24 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:23 +#: ../templates/3rdParty/pla/htdocs/copy_form.php:20 +#: ../templates/3rdParty/pla/htdocs/download_binary_attr.php:24 +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:20 +#: ../templates/3rdParty/pla/htdocs/delete_form.php:27 +#, php-format +msgid "The entry (%s) does not exist." +msgstr "条目(%s)不存在." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:27 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:28 +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:34 +msgid "The entry does not exist and will be ignored" +msgstr "条目不存在,被忽略" + +#: ../lib/modules/puppetClient.inc:184 ../lib/modules/puppetClient.inc:185 +msgid "The environment name may only contain ASCII characters." +msgstr "环境名仅包含ASCII字符." + +#: ../lib/modules/shadowAccount.inc:67 +msgid "The expiration date is invalid." +msgstr "过期日期非法." + +#: ../lib/modules/freeRadius.inc:257 ../lib/modules/freeRadius.inc:258 +msgid "The expiration date must be in format DD.MM.YYYY HH:MM." +msgstr "过期日期的格式为 DD.MM.YYYY HH:MM." + +#: ../lib/modules/bindDLZ.inc:519 ../lib/modules/bindDLZ.inc:520 +#, php-format +msgid "The expiration time \"%s\" must be a number." +msgstr "过期时间 \"%s\" 必须是数字!" + +#: ../lib/modules/asteriskAccount.inc:560 +#: ../lib/modules/asteriskAccount.inc:561 +msgid "The extension context is invalid." +msgstr "扩展的语境非法." + +#: ../lib/pdfstruct.inc:262 +msgid "The file must not exeed 2000x300px." +msgstr "文件不能超过 2000x300像素." + +#: ../lib/pdfstruct.inc:249 +msgid "The file name must end with \".png\" or \".jpg\"." +msgstr "文件必须以\".png\" 或 \".jpg\"结尾." + +#: ../templates/3rdParty/pla/lib/Template.php:474 +msgid "The file you chose is either empty or does not exist." +msgstr "您选择的文件为空或不存在." + +#: ../templates/3rdParty/pla/lib/Template.php:412 +#: ../templates/3rdParty/pla/lib/Template.php:499 +msgid "" +"The file you selected was only partially uploaded, likley due to a network " +"error." +msgstr "您选择的文件仅有部分上传,可能发生了网络错误" + +#: ../templates/3rdParty/pla/lib/Template.php:402 +#: ../templates/3rdParty/pla/lib/Template.php:407 +#: ../templates/3rdParty/pla/lib/Template.php:489 +#: ../templates/3rdParty/pla/lib/Template.php:494 +msgid "" +"The file you uploaded is too large. Please check php.ini, upload_max_size " +"setting" +msgstr "您上传的文件太大,请检查PHP.INI文件中upload_max_size的设置" + +#: ../lib/modules/kolabSharedFolder.inc:159 +msgid "" +"The folder on the server where the shared folder is located (e.g. user/" +"myfolder@example.com)." +msgstr "服务器上共享文件夹所在位置(比如 user/myfolder@example.com)." + +#: ../lib/modules/kolabSharedFolder.inc:117 +msgid "The folder's email address." +msgstr "文件夹的邮件地址." + +#: ../templates/initsuff.php:180 +msgid "" +"The following suffixes are missing in LDAP. LAM can create them for you." +msgstr "LDAP中没有下列后缀,LAM会自动建立." + +#: ../lib/modules/sambaSamAccount.inc:119 +#: ../lib/modules/sambaSamAccount.inc:120 +msgid "The format of the logon hours field is invalid!" +msgstr "登录时间列的格式非法!" + +#: ../lib/modules/customScripts.inc:123 +msgid "The format of this custom script setting is invalid." +msgstr "自定义脚本设置的格式非法!" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:95 +msgid "The format to show the query results" +msgstr "显示查询结果的格式" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:48 +msgid "" +"The full DN of the new entry to be created when copying the source entry" +msgstr "在拷贝源条目时建立的新条目的全DN" + +#: ../lib/modules/asteriskVoicemail.inc:218 +#: ../lib/modules/asteriskVoicemail.inc:219 +msgid "The full name is invalid." +msgstr "全名非法." + +#: ../templates/login.php:583 +msgid "The given user name matches multiple LDAP entries." +msgstr "给定的用户名匹配了多条LDAP条目." + +#: ../lib/modules/ppolicy.inc:101 +msgid "" +"The grace authentication limit specifies the number of times that an expired " +"password may be used to login." +msgstr "缓期认证限量指定了密码过期后还能认证的次数。" + +#: ../lib/modules/windowsGroup.inc:147 +msgid "The group is managed by this contact person." +msgstr "本组的管理者是这位联系人." + +#: ../lib/modules/freeRadius.inc:97 ../lib/modules/freeRadius.inc:101 +msgid "The group names for this account." +msgstr "此帐号的组名" + +#: ../lib/modules/windowsUser.inc:221 +msgid "The groups for this account. You can insert a group name or DN." +msgstr "本帐号的所属组,您可以输入一个组名或DN名." + +#: ../templates/pdfedit/pdfpage.php:137 +msgid "The headline for a new section must contain at least one character." +msgstr "新段的标题最少要有一个字符." + +#: ../lib/modules/sambaSamAccount.inc:304 ../lib/modules/windowsUser.inc:245 +msgid "The home directory will be connected under this drive letter." +msgstr "将会从这个驱动器号上连接用户目录。" + +#: ../lib/modules/windowsHost.inc:87 +msgid "The host is managed by this contact person." +msgstr "这台主机的管理者是这位联系人." + +#: ../lib/modules/bindDLZ.inc:504 ../lib/modules/bindDLZ.inc:505 +#: ../lib/modules/bindDLZ.inc:531 ../lib/modules/bindDLZ.inc:532 +#, php-format +msgid "The host name \"%s\" is invalid." +msgstr "主机名 \"%s\" 非法" + +#: ../lib/modules/bindDLZ.inc:89 ../lib/modules/bindDLZ.inc:148 +#: ../lib/modules/bindDLZ.inc:152 +msgid "The host name for this entry." +msgstr "此条目的主机名" + +#: ../lib/modules/asteriskAccount.inc:563 +#: ../lib/modules/asteriskAccount.inc:564 ../lib/modules/bindDLZ.inc:477 +#: ../lib/modules/bindDLZ.inc:478 +msgid "The host name is invalid." +msgstr "主机名非法" + +#: ../lib/modules/windowsUser.inc:133 ../lib/modules/inetOrgPerson.inc:859 +msgid "The initials of the user's first names." +msgstr "用户名字的初始化值" + +#: ../lib/modules/ddns.inc:94 +msgid "" +"The key enables the DHCP server to perform DNS updates. The key is generated " +"with \"genDDNSkey\"." +msgstr "使DHCP服务器能够进行DNS更新的KEY. 产生KEY的命令是 \"genDDNSkey\"." + +#: ../lib/modules/dhcp_settings.inc:324 ../lib/modules/dhcp_settings.inc:325 +msgid "The lease time is invalid." +msgstr "释放时间非法." + +#: ../lib/modules/dhcp_settings.inc:154 +msgid "" +"The lease time specifies after how many seconds the client should request a " +"new IP address." +msgstr "指定客户端必须重新申请新IP地址的释放时间(秒数)." + +#: ../lib/modules/sudoRole.inc:83 ../lib/modules/sudoRole.inc:109 +msgid "The list of commands which may be run." +msgstr "可以运行的命令列表" + +#: ../lib/modules/puppetClient.inc:93 ../lib/modules/puppetClient.inc:97 +msgid "The list of configured Puppet classes for this node (e.g. ntp)." +msgstr "这个节点的配置好的Puppet类列表(比如:ntp)." + +#: ../lib/modules/sudoRole.inc:79 ../lib/modules/sudoRole.inc:104 +msgid "The list of hosts from which the user may run the commands." +msgstr "用户可以运行命令的主机列表." + +#: ../lib/modules/customFields.inc:3013 +msgid "The list of labels contains duplicates." +msgstr "这个标签列表包含重复值." + +#: ../lib/modules/sudoRole.inc:75 ../lib/modules/sudoRole.inc:99 +msgid "The list of users who own this sudo role and may run the commands." +msgstr "具备sudo角色并可以运行命令的用户列表." + +#: ../lib/modules/customFields.inc:3010 +msgid "The list of values contains duplicates." +msgstr "这个值列表包含重复值." + +#: ../lib/modules/qmailGroup.inc:132 ../lib/modules/qmailGroup.inc:136 +msgid "The list's alternate email address." +msgstr "用户列表的另一个地址." + +#: ../lib/modules/kolabGroup.inc:88 ../lib/modules/kolabGroup.inc:92 +#: ../lib/modules/qmailGroup.inc:124 ../lib/modules/qmailGroup.inc:128 +#: ../lib/modules/windowsGroup.inc:127 +msgid "The list's email address." +msgstr "用户列表的邮件地址." + +#: ../templates/config/mainmanage.php:147 +msgid "" +"The log file is empty or contains invalid characters! Valid characters are: " +"a-z, A-Z, 0-9, /, \\, ., :, _ and -." +msgstr "日志文件为空或包含非法字符.合法字符为a-z, A-Z, 0-9, /, \\, ., :, _和-." + +#: ../lib/modules/imapAccess.inc:87 +msgid "" +"The login name of your IMAP user who has rights to create/delete mailboxes." +msgstr "有权限来建立或删除邮箱的IMAP登录名." + +#: ../lib/modules/bindDLZ.inc:140 ../lib/modules/bindDLZ.inc:144 +msgid "The mail server for this entry." +msgstr "此条目的邮件服务器." + +#: ../lib/modules/qmailUser.inc:244 +msgid "The mail server that contains the message store." +msgstr "邮件存储所在的邮件服务器." + +#: ../lib/modules/passwordSelfReset.inc:234 +msgid "" +"The mail text for confirmation mails must include the wildcard @@resetLink@@." +msgstr "确认信的文本必须包含通配符 @@resetLink@@." + +#: ../help/help.inc:251 +msgid "The mail text of all password mails." +msgstr "密码邮寄时的邮件文本" + +#: ../lib/modules/selfRegistration.inc:70 +msgid "The mail text of the confirmation mail." +msgstr "确认邮件的文本" + +#: ../lib/modules/passwordSelfReset.inc:125 +#: ../lib/modules/passwordSelfReset.inc:135 +msgid "The mail text of the mails." +msgstr "邮件文本" + +#: ../lib/modules/asteriskVoicemail.inc:210 +#: ../lib/modules/asteriskVoicemail.inc:212 +msgid "The mailbox format is invalid." +msgstr "邮箱格式不合法." + +#: ../lib/modules/dhcp_settings.inc:332 ../lib/modules/dhcp_settings.inc:333 +msgid "The maximum lease time is invalid." +msgstr "最长释放时间非法." + +#: ../lib/modules/dhcp_settings.inc:158 +msgid "" +"The maximum lease time specifies after how many seconds the client must " +"request a new IP address." +msgstr "指定客户端必须重新申请新IP地址的最长释放时间." + +#: ../lib/modules/kolabUser.inc:175 +msgid "The maximum mailbox size in MB." +msgstr "最大邮箱空间(MB)." + +#: ../lib/modules/qmailUser.inc:224 +msgid "The maximum number of mails that can be stored in the user's mailbox." +msgstr "用户邮箱可存储的最多邮件数量" + +#: ../lib/modules/pykotaPrinter.inc:104 +msgid "" +"The maximum number of pages per job allowed on the printer. 0 means " +"unlimited." +msgstr "此打印机每项任务最大的用纸页数, 0意味着不限制." + +#: ../lib/modules/bindDLZ.inc:525 ../lib/modules/bindDLZ.inc:526 +#, php-format +msgid "The minimum time \"%s\" must be a number." +msgstr "最短时间 \"%s\" 必须是数字!" + +#: ../lib/modules.inc:927 +#, php-format +msgid "The module %s is not yet ready." +msgstr "%s模块未启动." + +#: ../templates/pdfedit/pdfpage.php:108 +msgid "" +"The name for that PDF-structure you submitted is not valid. A valid name " +"must consist of the following characters: 'a-z','A-Z','0-9','_','-'." +msgstr "" +"您提供的PDF架构名非法,一个合法的命令由下列字符组成: 'a-z','A-" +"Z','0-9','_','-'." + +#: ../lib/modules/asteriskExtension.inc:111 +msgid "" +"The name of a command to execute. The available commands may be listed at " +"the Asterisk command line by executing \"core show applications\"." +msgstr "" +"将要运行的命令的名字.在Asterisk 命令行运行\"core show applications\"将列出所" +"有有效的命令" + +#: ../lib/modules/fixed_ip.inc:99 +msgid "The name of the PC." +msgstr "PC机器名." + +#: ../lib/modules/asteriskExtension.inc:103 +msgid "The name of the extension (e.g. voicemail or sip)." +msgstr "扩展的名字(比如:voicemail 或 sip)." + +#: ../lib/modules/kolabUser.inc:149 ../lib/modules/kolabSharedFolder.inc:155 +msgid "The name of the server where the mailbox is located." +msgstr "邮箱所在服务器名." + +#: ../lib/modules/dhcp_settings.inc:150 +msgid "The name of the subnet. Example: 192.168.10.0" +msgstr "子网名称.比如: 192.168.10.0" + +#: ../lib/modules/sambaDomain.inc:78 +msgid "The name of your Windows domain or workgroup." +msgstr "WINDOWS域名或工作组名." + +#: ../lib/modules/bindDLZ.inc:506 ../lib/modules/bindDLZ.inc:507 +#, php-format +msgid "The name server \"%s\" is invalid." +msgstr "DNS服务器 \"%s\"非法." + +#: ../lib/modules/bindDLZ.inc:156 ../lib/modules/bindDLZ.inc:160 +msgid "The name server for this zone." +msgstr "此域的域名服务器" + +#: ../lib/modules/freeRadius.inc:89 +msgid "The net mask for the IP address." +msgstr "IP地址的网络掩码." + +#: ../lib/modules/dhcp_settings.inc:194 +msgid "" +"The net mask is derived from the subnet mask. LAM will calculate it " +"automatically." +msgstr "网络掩码与子网掩码密切相关,LAM将会计算得出." + +#: ../lib/modules/freeRadius.inc:251 ../lib/modules/freeRadius.inc:252 +msgid "The net mask is invalid." +msgstr "子网掩码非法." + +#: ../lib/modules.inc:1185 +msgid "" +"The new password will be stored in the directory after you save this account." +msgstr "保存帐号后新密码同时保存到目录服务器." + +#: ../lib/modules/asteriskAccount.inc:240 +msgid "The number of milliseconds for the last qualify." +msgstr "上一次合格的微秒数" + +#: ../lib/modules/bindDLZ.inc:516 +msgid "The number of priority, weight, port and server entries must be equal." +msgstr "优先级,权重,端口号等数字跟服务器的配置必须一致." + +#: ../help/help.inc:121 +msgid "" +"The number of users who may login to LAM is restricted. This can be either a " +"fixed list of DNs or LAM can search LDAP to find a DN which matches the " +"given user name." +msgstr "" +"可以登录LAM的用户数量受限,或是DN的固定列表数量受限,还可能是LAM在LDAP中搜索给" +"定用户名的DN数量受限." + +#: ../templates/tests/schemaTest.php:114 +#, php-format +msgid "The object class %s is not supported by your LDAP server." +msgstr "在你的LDAP服务器中对象类%s不被支持。" + +#: ../lib/modules/windowsUser.inc:153 ../lib/modules/inetOrgPerson.inc:815 +#: ../lib/modules/inetOrgPerson.inc:819 +msgid "The office name of the user (e.g. YourCompany, Human Resources)." +msgstr "用户的办公室名(比如:某某公司,人力资源部)" + +#: ../templates/selfService/selfServiceMain.php:331 ../lib/modules.inc:1811 +msgid "The operation was stopped because of the above errors." +msgstr "由于发生了以上错误,操作中止." + +#: ../lib/modules/asteriskVoicemail.inc:224 +#: ../lib/modules/asteriskVoicemail.inc:225 +msgid "The options have bad format." +msgstr "选项的格式不正确." + +#: ../lib/modules/device.inc:70 ../lib/modules/device.inc:74 +msgid "The owners of this device." +msgstr "设备所有者" + +#: ../lib/modules/groupOfNames.inc:94 ../lib/modules/groupOfNames.inc:98 +msgid "The owners of this group." +msgstr "此组的拥有者." + +#: ../lib/modules/asteriskVoicemail.inc:222 +#: ../lib/modules/asteriskVoicemail.inc:223 +msgid "The pager number has bad format." +msgstr "呼号的格式不正确." + +#: ../lib/modules/heimdalKerberos.inc:121 +msgid "The parameter @@password@@ will be replaced with the new password." +msgstr "参数 @@password@@ 将会被新密码代替" + +#: ../lib/modules/heimdalKerberos.inc:120 +msgid "The parameter @@principal@@ will be replaced with the principal name." +msgstr "参数 @@principal@@ 会被主要的名字代替." + +#: ../templates/config/confsave.php:71 ../templates/config/confmain.php:73 +#: ../templates/config/mainlogin.php:61 +#: ../templates/selfService/adminLogin.php:54 +msgid "The password is invalid! Please try again." +msgstr "密码无效,请重试!" + +#: ../lib/security.inc:335 +#, php-format +msgid "The password is too short. You have to enter at least %s characters." +msgstr "密码太短,至少需要%s个字符." + +#: ../lib/security.inc:423 +#, php-format +msgid "" +"The password is too weak. It needs to match at least %s password complexity " +"rules." +msgstr "弱密码,最少需要符合%s个密码复杂性规则。" + +#: ../lib/security.inc:413 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s different character " +"classes (upper/lower case, numbers and symbols)." +msgstr "密码弱度不够.最少需要输入%s个字符类别(大/小写,数字和符号)." + +#: ../lib/security.inc:360 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s lower case " +"characters." +msgstr "密码强度不够,最少需要%s个小写字母." + +#: ../lib/security.inc:380 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s numeric characters." +msgstr "密码强度不够,最少需要%s个数字字符." + +#: ../lib/security.inc:390 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s symbolic characters." +msgstr "密码强度不够.最少需要%s个标点符号字符." + +#: ../lib/security.inc:370 +#, php-format +msgid "" +"The password is too weak. You have to enter at least %s upper case " +"characters." +msgstr "密码强度不够.最少需要%s个大写字母字符." + +#: ../lib/security.inc:442 +msgid "" +"The password is too weak. You may not use parts of the user name for the " +"password." +msgstr "弱密码,不能在密码里使用用户名的一部分。" + +#: ../lib/security.inc:452 +msgid "" +"The password is too weak. You may not use parts of user attributes for the " +"password." +msgstr "弱密码,不能在密码中使用用户属性的一部分。" + +#: ../lib/security.inc:430 +msgid "" +"The password is too weak. You may not use the user name as part of the " +"password." +msgstr "弱密码,密码中不能使用用户名的一部分。" + +#: ../lib/modules/imapAccess.inc:95 +msgid "" +"The password of your IMAP admin user. The login name for the IMAP admin user " +"is stored in the LAM server profile." +msgstr "IMAP管理员用户的密码.IMAP管理员用户登录名保存在LAM服务器的配置中." + +#: ../templates/lists/changePassword.php:609 ../lib/modules.inc:1128 +msgid "The password was set to:" +msgstr "密码被设置为:" + +#: ../lib/modules/range.inc:122 +msgid "The pool's failover peer." +msgstr "地址池的失效恢复节点" + +#: ../lib/modules/range.inc:118 +msgid "The pool's name." +msgstr "地址池名" + +#: ../lib/modules/bindDLZ.inc:512 ../lib/modules/bindDLZ.inc:513 +#, php-format +msgid "The port \"%s\" is invalid." +msgstr "端口 \"%s\" 非法" + +#: ../lib/modules/windowsUser.inc:161 ../lib/modules/inetOrgPerson.inc:687 +#: ../lib/modules/inetOrgPerson.inc:691 +msgid "The post office box of the user's address." +msgstr "用户地址的邮箱." + +#: ../lib/modules/windowsUser.inc:157 ../lib/modules/inetOrgPerson.inc:695 +#: ../lib/modules/inetOrgPerson.inc:699 +msgid "The postal code of the user's address." +msgstr "用户地址的邮政编码" + +#: ../lib/modules/bindDLZ.inc:502 ../lib/modules/bindDLZ.inc:503 +#, php-format +msgid "The preference \"%s\" must be a number." +msgstr "此项 \"%s\" 必须是数字!" + +#: ../lib/modules/pykotaPrinter.inc:116 +msgid "The price for each page of a print job." +msgstr "打印任务每页价格" + +#: ../lib/modules/pykotaPrinter.inc:112 +msgid "The price for each print job." +msgstr "每次打印价格" + +#: ../lib/modules/posixAccount.inc:466 +msgid "" +"The primary group for this account. You can insert a GID number or a group " +"name." +msgstr "本帐号的主组名,您可以输入一个GID号或组名." + +#: ../lib/modules/posixAccount.inc:553 +msgid "The primary group the host should be member of." +msgstr "该主机所属的主组名." + +#: ../lib/modules/posixAccount.inc:515 +msgid "The primary group the user should be member of." +msgstr "该用户所属的主组名." + +#: ../lib/modules/bindDLZ.inc:508 ../lib/modules/bindDLZ.inc:509 +#, php-format +msgid "The priority \"%s\" is invalid." +msgstr "优先级 \"%s\" 非法" + +#: ../lib/modules/asteriskExtension.inc:107 +msgid "" +"The priority is a sequence number used to order the execution of commands. " +"Commands are executed beginning with the lowest sequence number." +msgstr "" +"优先级是一个序号,用来表示运行命令的顺序.最小的序号代表的命令会最先运行." + +#: ../lib/modules/range.inc:511 ../lib/modules/range.inc:591 +msgid "The range conflicts with another range." +msgstr "此范围与其它范围冲突." + +#: ../lib/modules/range.inc:507 ../lib/modules/range.inc:585 +msgid "The range end needs to be greater than the range start." +msgstr "范围的终止地址需要大于起始地址." + +#: ../lib/modules/bindDLZ.inc:521 ../lib/modules/bindDLZ.inc:522 +#, php-format +msgid "The refresh time \"%s\" must be a number." +msgstr "刷新时间 \"%s\" 必须是数字!" + +#: ../lib/modules/bindDLZ.inc:523 ../lib/modules/bindDLZ.inc:524 +#, php-format +msgid "The retry time \"%s\" must be a number." +msgstr "重试时间 \"%s\"必须是数字!" + +#: ../lib/modules/inetOrgPerson.inc:783 +msgid "The room number of the employee's office." +msgstr "雇员办公室房间号码" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:130 +msgid "The scope in which to search" +msgstr "搜索范围" + +#: ../lib/modules/customScripts.inc:64 ../lib/modules/customScripts.inc:77 +msgid "" +"The scripts will be run on your web server in the user context of your web " +"server (e.g. apache/www-data)." +msgstr "在web服务器中运行的与用户语境相关的脚本(比如:apache/www-data)." + +#: ../lib/modules/nisMailAliasUser.inc:105 +#: ../lib/modules/asteriskAccount.inc:244 ../lib/modules/qmailUser.inc:196 +#: ../lib/modules/zarafaGroup.inc:109 ../lib/modules/sambaSamAccount.inc:401 +#: ../lib/modules/posixAccount.inc:442 ../lib/modules/zarafaUser.inc:133 +#: ../lib/modules/windowsUser.inc:237 ../lib/modules/inetOrgPerson.inc:831 +#: ../lib/modules/freeRadius.inc:113 ../lib/modules/zarafaServer.inc:89 +#: ../lib/modules/qmailGroup.inc:120 ../lib/modules/organizationalRole.inc:82 +#: ../lib/modules/passwordSelfReset.inc:161 +#: ../lib/modules/windowsGroup.inc:111 ../lib/modules/groupOfNames.inc:82 +msgid "" +"The selected options will not be managed inside LAM. You can use this to " +"reduce the number of displayed input fields." +msgstr "选中项将不被LAM所管理,可以用此来减少所显示的输入框个数." + +#: ../lib/modules/bindDLZ.inc:527 ../lib/modules/bindDLZ.inc:528 +#, php-format +msgid "The serial number \"%s\" must be a number." +msgstr "序列号 \"%s\"必须是数字!" + +#: ../lib/modules/bindDLZ.inc:228 +msgid "The serial number should be updated after each zone change." +msgstr "在每次更改后,序列号应该更新" + +#: ../lib/modules/bindDLZ.inc:500 ../lib/modules/bindDLZ.inc:501 +#: ../lib/modules/bindDLZ.inc:514 ../lib/modules/bindDLZ.inc:515 +#, php-format +msgid "The server name \"%s\" is invalid." +msgstr "服务器名 \"%s\"非法" + +#: ../templates/3rdParty/pla/htdocs/copy.php:38 +msgid "The source and destination DN are the same." +msgstr "源DN与目标DN相同" + +#: ../lib/modules/range.inc:98 +msgid "The starting IP address of the range." +msgstr "范围的起始IP地址." + +#: ../lib/modules/windowsUser.inc:169 ../lib/modules/inetOrgPerson.inc:803 +#: ../lib/modules/inetOrgPerson.inc:807 +msgid "The state where the user resides or works." +msgstr "用户居住或工作地点." + +#: ../templates/pdfedit/pdfpage.php:125 +msgid "The static text must contain at least one character." +msgstr "静态文本至少包含一个字符." + +#: ../lib/modules/windowsUser.inc:173 ../lib/modules/inetOrgPerson.inc:679 +#: ../lib/modules/inetOrgPerson.inc:683 +msgid "The street name of the user's address." +msgstr "用户地址的街道名" + +#: ../help/help.inc:249 +msgid "The subject of all password mails." +msgstr "密码邮件的主题." + +#: ../lib/modules/selfRegistration.inc:95 +#: ../lib/modules/passwordSelfReset.inc:121 +msgid "The subject of the mails." +msgstr "邮件主题." + +#: ../lib/modules/dhcp_settings.inc:319 +msgid "The subnet is already in use." +msgstr "子网掩码已经被占用." + +#: ../lib/modules/dhcp_settings.inc:320 ../lib/modules/dhcp_settings.inc:321 +msgid "The subnet is invalid." +msgstr "子网非法" + +#: ../lib/modules/dhcp_settings.inc:334 ../lib/modules/dhcp_settings.inc:335 +msgid "The subnet mask is invalid." +msgstr "子网掩码非法" + +#: ../lib/modules/dhcp_settings.inc:190 +msgid "The subnet mask of the network." +msgstr "网络的子网掩码." + +#: ../lib/modules/sudoRole.inc:134 +msgid "The sudo command is not valid after this date." +msgstr "在这一天之后不能使用sudo命令。" + +#: ../lib/modules/sudoRole.inc:129 +msgid "The sudo command is not valid before this date." +msgstr "在这一天之前不能使用sudo命令。" + +#: ../lib/modules/sudoRole.inc:91 ../lib/modules/sudoRole.inc:119 +msgid "The sudo commands are executed with these group memberships." +msgstr "sudo命令以这些组员的身份运行." + +#: ../lib/modules/sudoRole.inc:87 ../lib/modules/sudoRole.inc:114 +msgid "The sudo commands may be run as these users (e.g. root)." +msgstr "sudo命令以这个用户的身份运行(比如:root)." + +#: ../lib/modules/bindDLZ.inc:220 +msgid "" +"The time (in seconds) a secondary server should wait before retrying a zone " +"refresh." +msgstr "辅助服务器在重试区域更新前要等待的时间(秒)" + +#: ../lib/modules/bindDLZ.inc:216 +msgid "" +"The time (in seconds) that a secondary server should wait before checking " +"for zone updates." +msgstr "辅助服务器在检查域更新前等待的时间(秒)" + +#: ../lib/modules/bindDLZ.inc:212 +msgid "" +"The time (in seconds) that zone data is kept on a secondary server without " +"receiving a zone refresh." +msgstr "如果更新消息,域数据在辅助服务器中保留的时间(秒)" + +#: ../lib/modules/bindDLZ.inc:479 ../lib/modules/bindDLZ.inc:480 +#: ../lib/modules/bindDLZ.inc:481 ../lib/modules/bindDLZ.inc:482 +#: ../lib/modules/bindDLZ.inc:483 ../lib/modules/bindDLZ.inc:484 +#: ../lib/modules/bindDLZ.inc:485 ../lib/modules/bindDLZ.inc:486 +#: ../lib/modules/bindDLZ.inc:487 ../lib/modules/bindDLZ.inc:488 +#: ../lib/modules/bindDLZ.inc:489 ../lib/modules/bindDLZ.inc:490 +#: ../lib/modules/bindDLZ.inc:491 ../lib/modules/bindDLZ.inc:492 +#: ../lib/modules/bindDLZ.inc:493 ../lib/modules/bindDLZ.inc:494 +#, php-format +msgid "The timeout \"%s\" must be a number." +msgstr "超时时间 \"%s\"必须是数字!" + +#: ../lib/modules/bindDLZ.inc:102 ../lib/modules/bindDLZ.inc:106 +#: ../lib/modules/bindDLZ.inc:111 ../lib/modules/bindDLZ.inc:116 +#: ../lib/modules/bindDLZ.inc:121 ../lib/modules/bindDLZ.inc:126 +#: ../lib/modules/bindDLZ.inc:131 +msgid "" +"The timeout specifies how long (in seconds) a record can be cached by " +"caching DNS servers." +msgstr "在缓冲服务器中指定一条缓冲记录可以保留的时间(秒)" + +#: ../lib/modules/customFields.inc:3562 ../lib/modules/customFields.inc:3649 +#, php-format +msgid "The uploaded file does not have the correct file extension (%s)." +msgstr "上传文件没有正确的扩展名 (%s)." + +#: ../lib/modules/customFields.inc:3558 ../lib/modules/customFields.inc:3645 +#, php-format +msgid "The uploaded file is too large (> %s bytes)." +msgstr "上传的文件太大了 (> %s 字节)." + +#: ../templates/3rdParty/pla/lib/import_functions.php:396 +msgid "The url attribute value should begin with file://." +msgstr "URL属性值必须以file://开始" + +#: ../lib/modules/zarafaUser.inc:113 +msgid "The user account is non-active and login is disabled." +msgstr "用户帐号被锁定,不能登录." + +#: ../lib/modules/windowsUser.inc:202 +msgid "The user must log on using a smart card." +msgstr "用户必须使用智能卡登录." + +#: ../lib/modules/zarafaUser.inc:93 +msgid "The user will get warned when his mailbox reaches this limit." +msgstr "当邮箱到达这个权限值时,用户会收到告警." + +#: ../lib/modules/qmailUser.inc:204 +msgid "The user's alternate email address." +msgstr "用户另外的邮件地址." + +#: ../lib/modules/asteriskAccount.inc:136 +msgid "The user's call groups." +msgstr "用户呼叫组" + +#: ../lib/modules/qmailUser.inc:200 ../lib/modules/windowsUser.inc:141 +#: ../lib/modules/pykotaUser.inc:117 ../lib/modules/inetOrgPerson.inc:743 +#: ../lib/modules/inetOrgPerson.inc:747 +msgid "The user's email address." +msgstr "用户邮件的地址." + +#: ../lib/modules/inetOrgPerson.inc:727 ../lib/modules/inetOrgPerson.inc:731 +msgid "The user's fax number." +msgstr "用户的传真号." + +#: ../lib/modules/inetOrgPerson.inc:719 ../lib/modules/inetOrgPerson.inc:723 +msgid "The user's mobile number." +msgstr "用户的手机号." + +#: ../lib/modules/inetOrgPerson.inc:847 ../lib/modules/inetOrgPerson.inc:851 +msgid "The user's organisation name." +msgstr "用户的组织名." + +#: ../lib/modules/inetOrgPerson.inc:839 ../lib/modules/inetOrgPerson.inc:843 +msgid "The user's organisational unit." +msgstr "用户的组织单元." + +#: ../lib/modules/inetOrgPerson.inc:735 ../lib/modules/inetOrgPerson.inc:739 +msgid "The user's pager number." +msgstr "用户的传呼号." + +#: ../lib/modules/inetOrgPerson.inc:775 ../lib/modules/inetOrgPerson.inc:779 +msgid "The user's private telephone number." +msgstr "用户的个人电话号码." + +#: ../lib/modules/windowsUser.inc:177 ../lib/modules/inetOrgPerson.inc:711 +#: ../lib/modules/inetOrgPerson.inc:715 +msgid "The user's telephone number." +msgstr "用户的电话" + +#: ../lib/modules/inetOrgPerson.inc:855 +msgid "The user's unique employee number." +msgstr "用户的唯一雇员号" + +#: ../lib/modules/windowsUser.inc:189 ../lib/modules/inetOrgPerson.inc:755 +#: ../lib/modules/inetOrgPerson.inc:759 +msgid "The user's web site (e.g. http://www.company.com)." +msgstr "用户的web网站(比如,http://www.company.com)." + +#: ../lib/modules/sambaSamAccount.inc:122 +msgid "" +"The value for the Samba 3 field \"User can/must change password\" needs to " +"be a number." +msgstr "Samba 3 的 \"用户可以/必须修改密码\" 的取值必须是一个数字." + +#: ../lib/modules/puppetClient.inc:188 ../lib/modules/puppetClient.inc:189 +msgid "The variables may only contain ASCII characters." +msgstr "变量仅能包含ASCII字符." + +#: ../lib/modules/asteriskVoicemail.inc:226 +#: ../lib/modules/asteriskVoicemail.inc:227 +msgid "The voicemail context name is invalid." +msgstr "语音邮件的语境名非法." + +#: ../lib/modules/bindDLZ.inc:510 ../lib/modules/bindDLZ.inc:511 +#, php-format +msgid "The weight \"%s\" is invalid." +msgstr "权重 \"%s\" 非法" + +#: ../templates/3rdParty/pla/htdocs/create.php:42 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:36 +msgid "The were no attributes marked as an RDN attribute." +msgstr "没有被标记为RDN的属性" + +#: ../lib/modules/selfRegistration.inc:71 +msgid "The wildcard for the account creation link is @@creationLink@@." +msgstr "账号建立连接的通配符 @@resetLink@@." + +#: ../lib/modules/passwordSelfReset.inc:127 ../help/help.inc:254 +msgid "The wildcard for the new password is @@newPassword@@." +msgstr "新密码的通配符为@@newPassword@@." + +#: ../lib/modules/passwordSelfReset.inc:137 +msgid "The wildcard for the reset link is @@resetLink@@." +msgstr "复位连接的通配符 @@resetLink@@." + +#: ../templates/3rdParty/pla/htdocs/modify_member_form.php:60 +#, php-format +msgid "There are %s members in group %s:" +msgstr "共有%s个用户中在组%s中:" + +#: ../lib/modules/posixGroup.inc:607 ../lib/modules/sambaGroupMapping.inc:605 +msgid "There are still users who have this group as their primary group." +msgstr "仍有用户的主组为本组." + +#: ../lib/modules/sambaGroupMapping.inc:602 +msgid "There can be only one group of this type." +msgstr "只能有一种本类型组." + +#: ../lib/modules/asteriskAccount.inc:557 +msgid "There is already another user with this caller ID." +msgstr "已经有其他的帐号使用这个拨号ID." + +#: ../lib/modules/asteriskVoicemail.inc:211 +msgid "There is already another user with this mailbox name." +msgstr "已经有其他的帐号使用这个邮箱名." + +#: ../templates/massDoUpload.php:258 +msgid "There were errors while uploading:" +msgstr "上传时发生错误." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:80 +#, php-format +msgid "There will be %s updates done with this mass update" +msgstr "在这次批量更新中将有%s个更新" + +#: ../lib/modules/posixGroup.inc:501 +msgid "" +"These are the minimum and maximum numbers to use for group IDs when creating " +"new group accounts. New group accounts will always get the highest number in " +"use plus one." +msgstr "新建立新组帐号时,最大和最小的GID号.新组号自动在已用最大号加1." + +#: ../lib/modules/posixAccount.inc:454 +msgid "" +"These are the minimum and maximum numbers to use for machine IDs when " +"creating new accounts for hosts. The range should be different from that of " +"users. New host accounts will always get the highest number in use plus one." +msgstr "" +"这是为主机新建账号时机器ID号的最小值和最大值.这个范围不同于用户数量.新主机帐" +"号的ID总是得到当前最高值加1." + +#: ../lib/modules/posixAccount.inc:450 +msgid "" +"These are the minimum and maximum numbers to use for user IDs when creating " +"new user accounts. The range should be different from that of machines. New " +"user accounts will always get the highest number in use plus one." +msgstr "" +"建立新用户帐号时所使用的最大和最小UID号,UID范围不能与机器ID号一致.新帐号使用" +"已用最大号加1." + +#: ../lib/modules/inetOrgPerson.inc:867 +msgid "These are the user's certificates." +msgstr "这是用户的证书." + +#: ../lib/modules/puppetClient.inc:113 +msgid "" +"These classes will be available as autocompletion hints when adding new " +"classes." +msgstr "在增加类时,这些类是自动完成的提示选项。" + +#: ../lib/modules/nisnetgroup.inc:96 ../lib/modules/nisnetgroup.inc:100 +msgid "" +"These entries specify the members of the netgroup. You can limit the set to " +"a host name, a user name, a domain name or any combination of them." +msgstr "" +"这些条目指定了网络组的成员.您可以指定一个主机名集,或一个用户名集,或一个域名" +"集,或上述的任意组合." + +#: ../lib/modules/puppetClient.inc:117 +msgid "" +"These environments will be available as autocompletion hints when setting " +"the environment." +msgstr "在设置变量时,这些变量是自动完成的提示选项。" + +#: ../lib/modules/asteriskExtension.inc:123 +msgid "" +"These options change the list of potential extension owners below. You can " +"select to show Asterisk accounts or all users. It is also possible to search " +"the tree suffix if you have users which are not in the standard user suffix." +msgstr "" +"这个选项改变以下其它的扩展属主列表。你可以选择来显示 Asterisk 帐号或所有用" +"户。在标准用户后缀树以外的后缀树中,查询用户也是可以的。" + +#: ../lib/modules/authorizedServiceObject.inc:94 +msgid "These services will show up as hint if you enter a new service." +msgstr "在输入新服务时,这个列表会被提示。" + +#: ../lib/modules/posixAccount.inc:124 +msgid "" +"This GID number is invalid! Please provide either a number or a group name." +msgstr "GID号非法!请提供新号或组名." + +#: ../help/help.inc:235 +msgid "" +"This HTML code will be placed on top of all self service pages. E.g. you can " +"use this to place your custom logo. Any HTML code is permitted." +msgstr "" +"这些HTML代码将显示在自助服务主页的上端,比如可以在此放在贵公司标志,可以输入任" +"何HTML代码." + +#: ../lib/modules/fixed_ip.inc:462 +msgid "This PC name already exists." +msgstr "PC机器名已经存在!" + +#: ../lib/modules/kolabGroup.inc:197 ../lib/modules/kolabUser.inc:292 +#: ../lib/modules/kolabSharedFolder.inc:274 +msgid "This account is marked for deletion." +msgstr "本帐号标记为删除." + +#: ../lib/modules/sambaSamAccount.inc:328 +msgid "" +"This allows you to define this account as a special user like administrator " +"or guest." +msgstr "您可以指定本帐号为特殊帐号,比如管理员或来宾." + +#: ../templates/3rdParty/pla/lib/PageRender.php:376 +msgid "This attribute is not defined in the LDAP schema" +msgstr "在LDAP架构中没有定义此属性" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1988 +msgid "This attribute is required" +msgstr "必要的属性" + +#: ../templates/3rdParty/pla/lib/PageRender.php:458 +msgid "This attribute is required for the RDN." +msgstr "RDN的必要的属性." + +#: ../lib/modules/inetOrgPerson.inc:811 +msgid "This can be used to specify if the user has a car license." +msgstr "用来指定用户是否拥有汽车执照." + +#: ../templates/3rdParty/pla/htdocs/add_oclass_form.php:64 +msgid "This change requires to add new attributes." +msgstr "这次修改需要增加新的属性." + +#: ../help/help.inc:137 +msgid "This changes the password of the selected profile." +msgstr "改变设置文件的密码." + +#: ../help/help.inc:139 +msgid "This changes the profile which is selected by default at login." +msgstr "改变缺省登录使用的配置文件." + +#: ../templates/massBuildAccounts.php:177 +msgid "" +"This column is defined to include unique entries but duplicates were found:" +msgstr "本列不能有重复的条目,但发现了下列重复条目:" + +#: ../lib/modules/heimdalKerberos.inc:119 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -K /etc/heimdal/apache.keytab -p " +"admin/admin passwd -p @@password@@ @@principal@@\"." +msgstr "" +"修改Kerberos密码的命令,很有可能是\"/usr/sbin/kadmin -K /etc/heimdal/apache." +"keytab -p admin/admin passwd -p @@password@@ @@principal@@\"." + +#: ../lib/modules/mitKerberos.inc:149 +msgid "" +"This command will be called to change the Kerberos password. Usually, it " +"should look similar to \"/usr/sbin/kadmin -k -t /home/www-data/apache.keytab " +"-p realm/changepwd\"." +msgstr "" +"修改Kerberos密码的命令,一般来说看起来像 \"/usr/sbin/kadmin -k -t /home/www-" +"data/apache.keytab -p realm/changepwd\"." + +#: ../lib/modules/customScripts.inc:124 +msgid "This custom script setting includes an invalid account type." +msgstr "自定义脚本设置中包含一个非法的帐号类型." + +#: ../lib/modules/customScripts.inc:126 ../lib/modules/customScripts.inc:128 +msgid "This custom script setting includes an invalid action type." +msgstr "自定义脚本设置中包含一个非法的动作类型" + +#: ../help/help.inc:100 +msgid "" +"This defines the language of the login window and sets this language as the " +"default language. Users can change the language at login." +msgstr "设置登录语言和默认语言.用户可以在登录时更改." + +#: ../help/help.inc:119 +msgid "" +"This defines the rights for the home directories which are created by " +"lamdaemon." +msgstr "设置lamdaemon建立的用户目录的权限." + +#: ../lib/modules/asteriskExtension.inc:95 +msgid "" +"This defines what application Asterisk has to start for this user (e.g. SIP/" +"user1)." +msgstr "定义为这个用户启动的Asterisk 应用(比如:SIP/user1)." + +#: ../templates/3rdParty/pla/htdocs/mass_delete.php:85 +#, php-format +msgid "This deletion request also includes %s child entries." +msgstr "这次删除请求包括了%s个子条目" + +#: ../lib/modules/device.inc:78 +msgid "This describes the location of the device." +msgstr "描述设备所在地点." + +#: ../lib/modules/ipHost.inc:74 +msgid "This describes the location of the host." +msgstr "描述主机所在地点." + +#: ../lib/modules/windowsUser.inc:137 ../lib/modules/inetOrgPerson.inc:795 +#: ../lib/modules/inetOrgPerson.inc:799 +msgid "This describes the location of the user." +msgstr "描述用户所在地点." + +#: ../lib/lamPDF.inc:126 +msgid "This document was automatically created by LDAP Account Manager" +msgstr "本文件由本系统自动产生." + +#: ../help/help.inc:258 +msgid "" +"This email address will be set as reply-to address of all password mails." +msgstr "这个邮件地址会被设定为密码邮件的发件人地址." + +#: ../help/help.inc:247 +msgid "" +"This email address will be set as sender address of all password mails. If " +"empty the system default (php.ini) will be used." +msgstr "" +"这个邮件地址会被设定为密码邮件的发件人地址.如果为空,刚使用phi.ini指定的缺省" +"值." + +#: ../lib/modules/selfRegistration.inc:91 +#: ../lib/modules/passwordSelfReset.inc:117 +msgid "" +"This email address will be set as sender address of the mails. If empty the " +"system default (php.ini) will be used." +msgstr "" +"这个邮件地址会被设定为邮件的发件人地址.如果为空,刚使用phi.ini指定的缺省值." + +#: ../lib/modules/passwordSelfReset.inc:97 +msgid "This enables the password self reset function." +msgstr "打开密码自助复位功能." + +#: ../lib/modules/selfRegistration.inc:54 +msgid "This enables the self registration function." +msgstr "打开自注册功能." + +#: ../templates/3rdParty/pla/htdocs/compare.php:79 +msgid "This entry has no attributes" +msgstr "本条目没有任何属性." + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:57 +#, php-format +msgid "This entry is the root of a sub-tree containing %s entries." +msgstr "本条目是一个包含%s 子条目的子树的根." + +#: ../templates/lib/141_jquery-validationEngine-lang.php:47 +#: ../lib/modules/selfRegistration.inc:512 +msgid "This field is required." +msgstr "必要的属性" + +#: ../lib/modules/customFields.inc:188 +msgid "This field name already exists. Please choose a different one." +msgstr "这个域的名字的已经存在, 请选择另外一个名字." + +#: ../lib/modules/posixAccount.inc:126 +msgid "This gecos value is invalid!" +msgstr "备注值非法!" + +#: ../lib/modules/ipHost.inc:70 +msgid "This is a comma separated list of IP addresses." +msgstr "这是以逗号分隔的IP地址列表." + +#: ../lib/modules/ieee802device.inc:73 +msgid "This is a comma separated list of MAC addresses." +msgstr "这是以逗号分隔的MAC地址列表." + +#: ../lib/modules/kolabUser.inc:137 ../lib/modules/kolabSharedFolder.inc:143 +msgid "This is a comma separated list of delegates." +msgstr "这是以逗号分隔的代表列表." + +#: ../lib/modules/kolabUser.inc:145 ../lib/modules/kolabSharedFolder.inc:151 +msgid "This is a comma separated list of eMail aliases." +msgstr "这是以逗号分隔的电子邮件别名列表." + +#: ../lib/modules/kolabUser.inc:129 +msgid "This is a comma separated list of invitation policies." +msgstr "这是逗号分隔的约会策略列表." + +#: ../lib/modules/nisMailAlias.inc:90 +msgid "This is a comma separated list of recipients." +msgstr "这是以逗号分隔的收件人列表." + +#: ../lib/modules/inetLocalMailRecipient.inc:77 +msgid "This is a comma separated list of the users public email addresses." +msgstr "这是逗号分隔的用户公开邮件地址." + +#: ../help/help.inc:153 +msgid "" +"This is a list of IP addresses from hosts who may access LAM. You can use \"*" +"\" as wildcard (e.g. 192.168.0.*)." +msgstr "" +"这是可以访问本系统的IP地址列表,你可以使用\"*\" 代表多台主机,(例如192.168.0." +"*)." + +#: ../lib/modules/selfRegistration.inc:79 +msgid "" +"This is a list of additional attributes that the user can enter. Please note " +"that user name, password and email address are mandatory anyway and need not " +"be specified." +msgstr "" +"这是一个用户可以输入的附加属性列表.请注意用户名,密码和邮箱地址是强制性的." + +#: ../lib/modules/organizationalRole.inc:94 +#: ../lib/modules/windowsGroup.inc:131 ../lib/modules/groupOfNames.inc:102 +msgid "This is a list of members of this group." +msgstr "这是该组用户列表." + +#: ../lib/modules/organizationalRole.inc:98 +#: ../lib/modules/windowsGroup.inc:135 ../lib/modules/groupOfNames.inc:106 +msgid "" +"This is a list of members of this group. Multiple members are separated by " +"semicolons." +msgstr "这是以分号分隔的本组用户列表." + +#: ../lib/modules/eduPerson.inc:102 +msgid "This is a list of nick names for this user." +msgstr "这是该用户的昵称列表." + +#: ../lib/modules/selfRegistration.inc:75 +msgid "" +"This is a list of object classes that are used to build the new user " +"accounts. Please enter one object class in each line." +msgstr "这是用来建立新账号的对象类列表.每行输入一个对象类." + +#: ../help/help.inc:115 +msgid "" +"This is a list of the servers where the lamdaemon scripts are stored. LDAP " +"Account Manager will make a SSH connection to the servers with the user name " +"and password provided at login. Multiple servers are separated by " +"semicolons. You can append a descriptive name after a colon." +msgstr "" +"这是lamdaemon指令所在的服务器列表.本系统将用户登录时提供的用户名和密码,通过" +"SSH连接这台服务器.服务器列表以分号分隔.可以在冒号号添加一些说明." + +#: ../help/help.inc:93 +msgid "" +"This is a list of valid DN entries of all users that are allowed to login to " +"LDAP Account Manager. Please enter one DN per line." +msgstr "这是允许登录本系统的DN列表,每行输入一个DN." + +#: ../templates/3rdParty/pla/lib/PageRender.php:881 +msgid "This is a structural ObjectClass and cannot be removed." +msgstr "这是一个不能被删除的结构化对象类" + +#: ../lib/modules/nisObject.inc:74 ../lib/modules/automount.inc:73 +#: ../lib/modules/oracleService.inc:70 +msgid "This is an optional description for this entry." +msgstr "可以输入此条目的描述(可选)" + +#: ../help/help.inc:223 +msgid "" +"This is needed to find the LDAP DNs of your user accounts. E.g. if you use " +"\"uid\" and your user inputs \"miller\" then LAM will search for an account " +"with uid=miller." +msgstr "" +"用于搜索用户帐号的LDAP DN.比如您输入\"uid\" 而用户输入\"miller\" ,系统会使用" +"uid=miller这个条件来搜索帐号." + +#: ../lib/modules/zarafaDynamicGroup.inc:199 ../lib/modules/ipHost.inc:117 +#: ../lib/modules/posixGroup.inc:608 ../lib/modules/device.inc:142 +#: ../lib/modules/eduPerson.inc:246 ../lib/modules/eduPerson.inc:248 +#: ../lib/modules/zarafaAddressList.inc:170 +#: ../lib/modules/posixAccount.inc:131 ../lib/modules/inetOrgPerson.inc:100 +#: ../lib/modules/aliasEntry.inc:86 ../lib/modules/qmailGroup.inc:433 +#: ../lib/modules/qmailGroup.inc:434 ../lib/modules/qmailGroup.inc:435 +msgid "This is not a valid DN!" +msgstr "不是一个有效的DN!" + +#: ../lib/modules/sambaSamAccount.inc:109 +msgid "This is not a valid RID number!" +msgstr "不是一个有效的RID号!" + +#: ../lib/modules/sambaGroupMapping.inc:604 +msgid "This is not a valid Samba 3 group type!" +msgstr "不是一个有效的Samba 3 组类型!" + +#: ../lib/modules/eduPerson.inc:250 +msgid "This is not a valid list of DNs!" +msgstr "这不是一个有效的DN列表!" + +#: ../lib/modules/qmailGroup.inc:436 ../lib/modules/qmailGroup.inc:437 +msgid "This is not a valid option." +msgstr "不是一个有效的选项." + +#: ../lib/modules/inetLocalMailRecipient.inc:73 +msgid "This is one of the users public email addresses." +msgstr "用户公开邮件地址之一." + +#: ../help/help.inc:84 +msgid "" +"This is only needed for TLS/SSL connections. By default, LAM will use the " +"certificate authorities installed on your system. If you have a private CA " +"in your company you can upload your CA certificates here and override the " +"system certificates." +msgstr "" +"仅TLS/SSL连接时需要. 缺省情况是, LAM将使用安装在你系统的证书认证. 如果在公司" +"里你有私用的CA认证中心, 你在这里可以上传CA证书, 覆盖系统中的证书. " + +#: ../lib/modules/asteriskAccount.inc:104 +msgid "" +"This is the ID of the user in the Asterisk database. It may contain digits " +"and letters (e.g. user1 or 200134)." +msgstr "" +"这是在Asterisk数据库中的用户ID,可以包含数字或字母(比如:user1 或 200134)." + +#: ../lib/modules/freeRadius.inc:85 +msgid "This is the IP address for the user (e.g. 123.123.123.123)." +msgstr "用户的IP地址(比如:123.123.123.123)." + +#: ../lib/modules/ipHost.inc:66 +msgid "" +"This is the IP address of the network card of the device (e.g. " +"123.123.123.123)." +msgstr "设备的网卡的IP地址(比如:123.123.123.123)." + +#: ../lib/modules/ipHost.inc:78 +msgid "This is the LDAP DN of the host's manager." +msgstr "主机管理员的LDAP DB" + +#: ../lib/modules/inetOrgPerson.inc:671 ../lib/modules/inetOrgPerson.inc:675 +msgid "" +"This is the LDAP DN of the user's manager. Use this property to represent " +"hierarchies in your company." +msgstr "用户管理员的LDAP DN.显示您在公司的阶层." + +#: ../lib/modules/customFields.inc:117 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an activated " +"state. The value is case-insensitive." +msgstr "这个令复选框处于激活状态的LDAP的属性值.这个值是大小写敏感的." + +#: ../lib/modules/customFields.inc:121 +msgid "" +"This is the LDAP attribute's value that puts the checkbox in an deactivated " +"state. The value is case-insensitive." +msgstr "这个令复选框处于非激活状态的LDAP的属性值.这个值是大小写敏感的." + +#: ../lib/modules/ieee802device.inc:69 +msgid "" +"This is the MAC address of the network card of the device (e.g. 00:01:02:DE:" +"EF:18)." +msgstr "网卡的MAC地址(比如:00:01:02:DE:EF:18)." + +#: ../lib/modules/sambaSamAccount.inc:325 +msgid "This is the SID of the user's primary Windows group." +msgstr "用户Windows主组的SID." + +#: ../help/help.inc:102 +msgid "" +"This is the absolute path to an external script for setting quotas and " +"creating home directories." +msgstr "这是设置硬盘配额和建立主目录的外部脚本所在的绝对路径." + +#: ../lib/modules/mitKerberos.inc:157 ../lib/modules/heimdalKerberos.inc:125 +msgid "This is the account's Kerberos password." +msgstr "帐号在Kerberos中的密码." + +#: ../lib/modules/sambaSamAccount.inc:263 +msgid "This is the account's Windows password." +msgstr "帐号在Windows中的密码." + +#: ../lib/modules/sambaSamAccount.inc:260 ../lib/modules/windowsUser.inc:124 +msgid "This is the account's full name on Windows systems." +msgstr "用户在Windows系统中的全名." + +#: ../lib/modules/ppolicyUser.inc:56 +msgid "This is the active password policy for this account." +msgstr "本帐号正在使用的帐号策略。" + +#: ../lib/modules/passwordSelfReset.inc:85 +msgid "" +"This is the answer to the security question. It allows users to reset their " +"password." +msgstr "用户的安全提问,用于用户复位密码." + +#: ../lib/modules/mitKerberos.inc:145 +msgid "This is the date of the user's last login." +msgstr "这是用户上次登录日期." + +#: ../lib/modules/mitKerberos.inc:125 ../lib/modules/heimdalKerberos.inc:103 +msgid "This is the date when the account will expire." +msgstr "这是帐号过期日期" + +#: ../lib/modules/sambaSamAccount.inc:347 ../lib/modules/shadowAccount.inc:194 +msgid "This is the date when the account will expire. Format: DD-MM-YYYY" +msgstr "帐号过期日期: DD-MM-YYYY" + +#: ../lib/modules/mitKerberos.inc:141 ../lib/modules/sambaSamAccount.inc:398 +msgid "This is the date when the user changed his password." +msgstr "后用户必须修改密码的日期" + +#: ../lib/modules/shadowAccount.inc:202 +msgid "" +"This is the date when the user changed his password. If you specify a " +"maximum password age then you can force a password change here." +msgstr "这是用户更改密码的日期.如果指定了密码最长有效期,这儿可以强制密码修改." + +#: ../lib/modules/sambaGroupMapping.inc:147 +msgid "This is the group name which will be shown in Windows." +msgstr "显示在Windows系统中的组名." + +#: ../lib/modules/windowsHost.inc:83 +msgid "This is the host's location (e.g. Munich, server room 3)." +msgstr "这是主机的放置地点(比如慕尼黑,服务器室3号)" + +#: ../help/help.inc:187 +msgid "" +"This is the identifier for the relative DN value. It must be one of the " +"given allowed LDAP attributes (e.g. user accounts usually use \"uid\" while " +"groups use \"cn\")." +msgstr "" +"RDN值的标志.必须是您LDAP属性中的一个值(比如,用户帐号经常使用\"uid\",而组名经" +"常使用\"cn\"))" + +#: ../lib/modules/selfRegistration.inc:99 +msgid "" +"This is the identifier for the relative DN value. LAM will use \"uid\" by " +"default." +msgstr "这是关系DN值的标识, 缺省中LAM使用\"uid\" ." + +#: ../lib/modules/passwordSelfReset.inc:101 +msgid "" +"This is the label for the link to the password self reset. If empty \"Forgot " +"password?\" will be used." +msgstr "连接到密码自助复位的标志.留空使用\"密码遗忘?\"." + +#: ../lib/modules/selfRegistration.inc:58 +msgid "" +"This is the label for the link to the self registration. If empty \"Register " +"new account\" will be used." +msgstr "连接到自注册服务的标签.留空使用\"注册新账号\"." + +#: ../help/help.inc:88 +msgid "" +"This is the list of attributes to show in the account list. The entries can " +"either be predefined values, \"#attribute\", or individual ones, \"attribute:" +"description\". Several entries are separated by semicolons." +msgstr "" +"帐号列表所显示的属性列表.可以是预定义值\"#attribute\",或者独立的值," +"\"attribute:description\".用分号隔离多个条目." + +#: ../lib/modules/posixAccount.inc:494 +msgid "This is the list of valid login shells." +msgstr "这是有效的登录shell的列表" + +#: ../lib/modules/asteriskAccount.inc:108 +msgid "" +"This is the machine id (e.g. IP address or host name) from which the user " +"can call/receive calls." +msgstr "这是用户可以拨打或接听的机器ID(比如:IP地址或主机名)" + +#: ../lib/modules/inetLocalMailRecipient.inc:81 +msgid "This is the mail server for the user." +msgstr "用户的邮件服务器." + +#: ../lib/modules/qmailUser.inc:220 +msgid "This is the mailbox size limit in bytes." +msgstr "用户的邮箱限额的大小(字节数)." + +#: ../lib/modules/passwordSelfReset.inc:93 +msgid "This is the minimum length for answers to the security question." +msgstr "安全问题的答案的最小长度." + +#: ../lib/modules/nisnetgroup.inc:84 ../lib/modules/organizationalRole.inc:86 +#: ../lib/modules/groupOfNames.inc:86 +msgid "This is the name of this group." +msgstr "组名." + +#: ../lib/modules/posixAccount.inc:561 +msgid "" +"This is the natural name of the host. If empty, the host name will be used." +msgstr "主机帐号的自然名(natural name).留空使用主机名." + +#: ../lib/modules/pykotaUser.inc:109 +msgid "This is the natural name of the user." +msgstr "用户原名." + +#: ../lib/modules/inetOrgPerson.inc:763 +msgid "" +"This is the natural name of the user. If empty, the first and last name is " +"used." +msgstr "用户自然名,留空会使用姓名." + +#: ../lib/modules/posixAccount.inc:539 ../lib/modules/windowsUser.inc:103 +msgid "" +"This is the natural name of the user. If empty, the first and last name or " +"user name is used." +msgstr "用户的自然名.留空会使用姓名." + +#: ../lib/modules/sambaDomain.inc:122 +msgid "" +"This is the number of bad logon attempts (0 - 999) before the account is " +"deactivated. 0 means unlimited attempts." +msgstr "在帐号被锁定前失败的登录次数(0-999),0代表不限制。" + +#: ../lib/modules/sambaDomain.inc:106 +msgid "" +"This is the number of passwords which are saved to prevent that users reuse " +"old passwords." +msgstr "为防止用户使用旧的密码而保存的历史密码数量." + +#: ../help/help.inc:98 +msgid "" +"This is the number of rows to show in the account list. If more entries are " +"found the list will be split into several pages." +msgstr "显示帐号中的行数,如果搜索到更多的行数会分页显示." + +#: ../lib/modules/sambaSamAccount.inc:356 +msgid "This is the path to the user's home directory." +msgstr "这是用户的主目录路径." + +#: ../lib/modules/sambaGroupMapping.inc:155 +msgid "" +"This is the relative ID (similar to UID on Unix) for Windows accounts. If " +"you leave this empty LAM will calculate the RID from the UID. This can be " +"either a number or the name of a special group:" +msgstr "" +"Windows帐号的关联ID(有点象Unix中的UID).留空系统会从UID计算RID.可以是一个数字" +"或一个特殊组名." + +#: ../lib/modules/sambaSamAccount.inc:331 +msgid "" +"This is the relative ID number for your Windows account. You can either " +"enter a number or one of these special accounts: " +msgstr "Windows帐号的关联ID.可以输入一个数字或以下特殊帐号:" + +#: ../lib/modules/sambaSamAccount.inc:335 +msgid "" +"This is the relative ID number for your host account. If you leave this " +"empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "主机帐号的关联ID号.留空系统使用:uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../lib/modules/imapAccess.inc:113 +msgid "" +"This is the separator for the mailbox path. Usually, this is \".\" but e.g. " +"Cyrus with \"unixhierarchysep\" will require \"/\"." +msgstr "" +"邮箱路径的分隔符.一般来说,是\".\"但Cyrus系统的 \"unixhierarchysep\" UNIX路径" +"分隔需要使用\"/\"." + +#: ../help/help.inc:59 +msgid "" +"This is the server address of your LDAP server. Use ldap:// for unencrypted " +"LDAP connections or TLS encrypted connections. LDAP+SSL (LDAPS) encrypted " +"connections are specified with ldaps://. The port value is optional." +msgstr "" +"LDAP服务器地址,使用ldap://的格式用于非加密LDAP连接或TLS加密连接,LDAP" +"+SSL(LDAPS)加密连接使用特殊的ldap://格式.端口号可选." + +#: ../help/help.inc:78 +msgid "This is the suffix for the LDAP tree viewer." +msgstr "LDAP树状显示的后缀." + +#: ../help/help.inc:72 +msgid "" +"This is the suffix of the LDAP tree from where to search for LDAP entries. " +"Only entries in this subtree will be displayed in the account list. When " +"creating a new accont this will be the DN where it is saved." +msgstr "" +"搜索LDAP时的LDAP树后缀.只有在这个子树下的条目被显示.当建立一个新帐号时,这是新" +"帐号存在的DN位置." + +#: ../lib/modules/inetLocalMailRecipient.inc:69 +msgid "This is the target email address for the user's mails." +msgstr "用户邮件的最终地址." + +#: ../lib/modules/customScripts.inc:53 ../lib/modules/uidObject.inc:60 +#: ../lib/modules/aliasEntry.inc:62 +msgid "This is the target of this alias entry." +msgstr "此别名条件的实际名." + +#: ../lib/modules/sambaDomain.inc:134 +msgid "" +"This is the time (in minutes) for which the user may not log in after the " +"account was locked. -1 means forever." +msgstr "用户帐号被锁定后用户不能登录的时间(分钟),-1表示永久." + +#: ../help/help.inc:147 +msgid "" +"This is the time (in minutes) of inactivity after which a user is " +"automatically logged off." +msgstr "在自动退出前,用户不活动时间(分钟)." + +#: ../help/help.inc:108 +msgid "" +"This is the time in minutes which LAM caches its LDAP searches. Shorter " +"times will stress LDAP more but decrease the possibility that changes are " +"not identified." +msgstr "" +"LAM缓存有效时间(分钟),较短的时间会增加LDAP压力,但减少了数据不一致的可能." + +#: ../lib/modules/sambaSamAccount.inc:350 +msgid "" +"This is the time zone of your Samba server. LAM needs this information to " +"display the logon hours correctly." +msgstr "这是Samba服务器的时区.LAM用此信息显示正确的登录时间." + +#: ../lib/modules/sambaSamAccount.inc:322 +msgid "This is the user's primary Windows group." +msgstr "用户的Windows主要组." + +#: ../lib/modules/puppetClient.inc:89 +msgid "" +"This is this node's parent. All classes and variables are inherited from " +"this node." +msgstr "这是该节点的父节点,所有的类和变量都是从此节点继承。" + +#: ../lib/modules/asteriskAccount.inc:156 +msgid "" +"This is typically used to allow incoming calls (e.g. from FWD) while having " +"a type=friend entry defined with username and password." +msgstr "当使用账号和密码定义type=friend时,此项设置用来允许呼入." + +#: ../lib/modules/zarafaUser.inc:117 +msgid "This is used to mark this account as resource." +msgstr "用来标识此账号是一个资源" + +#: ../lib/modules/posixAccount.inc:127 +msgid "This login shell is invalid!" +msgstr "登录shell非法!" + +#: ../lib/modules/inetLocalMailRecipient.inc:232 +msgid "This mail address is already in use:" +msgstr "邮件地址已被使用: " + +#: ../lib/modules/imapAccess.inc:107 +msgid "This mailbox will be created/deleted." +msgstr "这个邮箱将会被建立或删除." + +#: ../lib/modules.inc:1245 +msgid "This may overwrite existing values with profile data. Continue?" +msgstr "将覆盖已有值,继续?" + +#: ../lib/modules/customFields.inc:113 +msgid "" +"This message is shown when the field value does not match the validation " +"expression." +msgstr "域值与检验表达式不匹配时显示这条消息." + +#: ../templates/schema/schema.php:350 +msgid "This object class is obsolete." +msgstr "这个对象类是陈旧的." + +#: ../lib/modules/imapAccess.inc:84 +msgid "" +"This option allows you to disable the certificate check of your IMAP server " +"certificate. Disabling the certificate check is not recommended." +msgstr "" +"这个选项允许你关闭IMAP服务器数字证书检查功能.不建议关闭数字证书检查功能." + +#: ../lib/modules/sambaSamAccount.inc:341 +msgid "This option defines the allowed logon hours for this account." +msgstr "允许帐号登录的时间." + +#: ../lib/modules/sambaSamAccount.inc:344 +msgid "" +"This option defines the allowed logon hours for this account. The format is " +"the same as for the LDAP attribute. The 24*7 hours are represented as 168 " +"bit which are saved as 21 hex (21*8 = 168) values. The first bit represents " +"Sunday 0:00 - 0:59 in GMT." +msgstr "" +"帐号可以登录的时间.格式与LDAP属性一致.使用168位代理24*7,168位以21个16进制字节" +"表示.第一位代表GMT时间星期天0:00-0.59." + +#: ../lib/modules/asteriskExtension.inc:192 +msgid "This pair of extension name and priority already exists." +msgstr "扩展名和优先级的配对已经存在!" + +#: ../lib/modules/sambaSamAccount.inc:365 +msgid "This program is run after the login." +msgstr "登录后运行的程序。" + +#: ../lib/modules/sambaSamAccount.inc:389 +msgid "This specifies the reconnect policy." +msgstr "这里指定断开连接的策略。" + +#: ../lib/modules/zarafaDynamicGroup.inc:96 +#: ../lib/modules/zarafaContact.inc:107 ../lib/modules/zarafaGroup.inc:113 +#: ../lib/modules/zarafaAddressList.inc:84 ../lib/modules/zarafaUser.inc:172 +#: ../lib/modules/zarafaServer.inc:93 +msgid "" +"This specifies the used Zarafa LDAP schema. Select LDAP for e.g. OpenLDAP, " +"Apache Directory, OpenDJ and other non-Windows based LDAP servers. If you " +"run Zarafa against Samba 4 or Active Directory please select Active " +"Directory." +msgstr "" +"使用Zarafa LDAP 架构的特殊之处。请选择如OpenLDAP, Apache Directory,OpenDJ 或" +"其它非基于Windows的LDAP服务器。 如果在Zarafa上使用Samba4 或活动目录,请选择" +"Active Directory." + +#: ../lib/modules/sambaSamAccount.inc:386 +msgid "This specifies what to do when the client connection is broken." +msgstr "这里指定客户连接中断的动作。" + +#: ../help/help.inc:227 +msgid "" +"This text is displayed on top of the self service login page. You can also " +"input HTML code here." +msgstr "这些文本显示在自助服务登录面的上端.你可以在此输入HTML代码." + +#: ../help/help.inc:229 +msgid "" +"This text is displayed on top of the self service main page. You can also " +"input HTML code here." +msgstr "这些文本显示在自助服务主页的上端,可以在此输入HTML代码." + +#: ../help/help.inc:239 +msgid "" +"This text is placed as label for the password field on the login page. LAM " +"will use \"Password\" if you do not enter any text." +msgstr "在登录界面将做为密码输入框的标记. 如果没有输入,LAM使用\"Password\"" + +#: ../help/help.inc:225 +msgid "" +"This text should shortly describe your selected LDAP search attribute (e.g. " +"email or user name)." +msgstr "这些文本简短描述了您所选的LDAP搜索属性(比如邮件或用户名)." + +#: ../lib/modules/selfRegistration.inc:107 +#: ../lib/modules/passwordSelfReset.inc:157 +msgid "This text will be printed on top of the page." +msgstr "这些文本会打印在纸的上端。" + +#: ../lib/modules/qmailUser.inc:240 +msgid "" +"This text will be sent as reply to all incoming mails if the delivery mode " +"is set to autoreply." +msgstr "如果发送模式设置了自动回复,将为所有来信发送如下回复." + +#: ../lib/tools/pdfEdit.inc:53 +msgid "This tool allows you to customize the PDF pages." +msgstr "本工具可以让用户自定义PDF页面." + +#: ../templates/lists/changePassword.php:46 +#: ../templates/lists/changePassword.php:248 +msgid "This user is not supported or was not found." +msgstr "用户不支持或未找到." + +#: ../lib/modules/windowsUser.inc:116 +msgid "This user name is only used for old Windows versions (e.g. NT4, W98)." +msgstr "这个用户名仅在老Windows版本(比如NT4,W98)中使用." + +#: ../templates/lists/userlink.php:61 +msgid "This user was not found!" +msgstr "用户未找到!" + +#: ../lib/modules/zarafaUser.inc:414 +msgid "This value can only be \"Room\" or \"Equipment\"." +msgstr "此值只能设为 \"Room\" 或 \"Equipment\"." + +#: ../lib/modules/zarafaDynamicGroup.inc:204 +#: ../lib/modules/zarafaDynamicGroup.inc:205 +#: ../lib/modules/zarafaContact.inc:189 ../lib/modules/zarafaContact.inc:190 +#: ../lib/modules/zarafaGroup.inc:219 ../lib/modules/zarafaGroup.inc:220 +#: ../lib/modules/zarafaGroup.inc:221 ../lib/modules/zarafaAddressList.inc:171 +#: ../lib/modules/zarafaAddressList.inc:172 +#: ../lib/modules/sambaSamAccount.inc:112 +#: ../lib/modules/sambaSamAccount.inc:113 +#: ../lib/modules/sambaSamAccount.inc:114 +#: ../lib/modules/sambaSamAccount.inc:115 ../lib/modules/posixAccount.inc:128 +#: ../lib/modules/zarafaUser.inc:421 ../lib/modules/zarafaUser.inc:423 +#: ../lib/modules/zarafaUser.inc:424 ../lib/modules/zarafaUser.inc:425 +#: ../lib/modules/zarafaUser.inc:426 ../lib/modules/zarafaUser.inc:427 +#: ../lib/modules/ppolicyUser.inc:97 ../lib/modules/inetOrgPerson.inc:108 +#: ../lib/modules/zarafaServer.inc:179 +msgid "This value can only be \"true\" or \"false\"." +msgstr "此值只能设为 \"true\" 或 \"false\"." + +#: ../lib/modules/zarafaUser.inc:422 +msgid "This value can only be \"true\", \"false\" or \"system\"." +msgstr "此值只能设为\"true\", \"false\" or \"system\"." + +#: ../lib/modules/posixGroup.inc:606 +msgid "This value must be a list of user names separated by semicolons." +msgstr "此值必须是用分号分开的用户名列表." + +#: ../help/help.inc:264 +msgid "This will create a new organisational unit under the selected one." +msgstr "在所选的节点下建立新的组织单元." + +#: ../lib/modules/posixAccount.inc:482 +msgid "This will create the user's home directory on the specified server." +msgstr "将在指定的服务器上建立用户的主目录." + +#: ../help/help.inc:266 +msgid "" +"This will delete the selected organisational unit. The OU has to be empty." +msgstr "将删除所选的组织单元.组织单元必须为空." + +#: ../help/help.inc:135 +msgid "This will delete the selected profile." +msgstr "将删除所选的配置文件." + +#: ../lib/modules/kolabGroup.inc:118 ../lib/modules/puppetClient.inc:109 +#: ../lib/modules/qmailUser.inc:264 ../lib/modules/zarafaContact.inc:88 +#: ../lib/modules/posixGroup.inc:538 ../lib/modules/eduPerson.inc:151 +#: ../lib/modules/pykotaGroup.inc:130 ../lib/modules/sambaSamAccount.inc:404 +#: ../lib/modules/posixAccount.inc:433 ../lib/modules/zarafaUser.inc:137 +#: ../lib/modules/pykotaUser.inc:161 ../lib/modules/shadowAccount.inc:198 +#: ../lib/modules/qmailGroup.inc:233 +#: ../lib/modules/authorizedServiceObject.inc:90 +#: ../lib/modules/passwordSelfReset.inc:153 ../lib/modules/hostObject.inc:84 +msgid "This will enable the extension automatically if this profile is loaded." +msgstr "在配置文件调入时,将自动打开扩展项。" + +#: ../lib/modules/customScripts.inc:93 +msgid "" +"This will hide the custom scripts tab when you edit an account. Manual " +"actions are not possible when the tab is not visible." +msgstr "" +"在修改账号的时候隐藏自定义脚本标签. 这个标签被隐藏后不能做任何手工修改." + +#: ../lib/modules/sambaSamAccount.inc:266 +msgid "This will reset the host's password to a default value." +msgstr "将主机密码复位到缺省值." + +#: ../templates/lists/changePassword.php:320 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail." +msgstr "将会生成一个随机的密码并在屏幕上显示或通过邮件发送给用户." + +#: ../help/help.inc:245 +msgid "" +"This will set a random password and display it on the screen or send it to " +"the user via mail. Please edit your LAM server profile to setup the mail " +"settings." +msgstr "" +"将会生成一个随机的密码并在屏幕上显示或通过邮件发送给用户。请编辑LAM服务器配置" +"文件来设定邮件的配置." + +#: ../lib/modules/kolabGroup.inc:114 ../lib/modules/kolabUser.inc:179 +#: ../lib/modules/kolabSharedFolder.inc:167 +msgid "" +"This will set a special flag on the account which tells Kolabd to remove it. " +"Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes)." +msgstr "" +"将为用户设定特殊的标记,以通知Kolabd删除帐号.用来完全删除Kolab帐号(比如删除邮" +"箱)." + +#: ../lib/modules/qmailUser.inc:212 +msgid "" +"This will set the user's account status. You may disable the mail account " +"here." +msgstr "设置用户账号状态.可以在这里关闭邮箱." + +#: ../lib/modules/sambaSamAccount.inc:1380 +msgid "Thursday" +msgstr "星期四" + +#: ../lib/modules/mitKerberos.inc:136 ../lib/modules/mitKerberos.inc:195 +#: ../lib/modules/mitKerberos.inc:230 ../lib/modules/mitKerberos.inc:254 +#: ../lib/modules/mitKerberos.inc:355 ../lib/modules/mitKerberos.inc:775 +#: ../lib/modules/heimdalKerberos.inc:110 +#: ../lib/modules/heimdalKerberos.inc:164 +#: ../lib/modules/heimdalKerberos.inc:199 +#: ../lib/modules/heimdalKerberos.inc:221 +#: ../lib/modules/heimdalKerberos.inc:302 +#: ../lib/modules/heimdalKerberos.inc:687 +msgid "Ticket lifetime" +msgstr "票证寿命" + +#: ../lib/modules/mitKerberos.inc:293 ../lib/modules/mitKerberos.inc:294 +#: ../lib/modules/heimdalKerberos.inc:257 +#: ../lib/modules/heimdalKerberos.inc:258 +msgid "Ticket lifetime must be a number." +msgstr "票证寿命必须是数字!" + +#: ../lib/modules/sambaSamAccount.inc:1402 +msgid "Time" +msgstr "时间" + +#: ../lib/modules/sambaSamAccount.inc:370 +msgid "Time limit" +msgstr "时间限制" + +#: ../lib/modules/sambaSamAccount.inc:349 +#: ../lib/modules/sambaSamAccount.inc:580 +msgid "Time zone" +msgstr "时区" + +#: ../lib/modules/bindDLZ.inc:101 ../lib/modules/bindDLZ.inc:105 +#: ../lib/modules/bindDLZ.inc:110 ../lib/modules/bindDLZ.inc:115 +#: ../lib/modules/bindDLZ.inc:120 ../lib/modules/bindDLZ.inc:125 +#: ../lib/modules/bindDLZ.inc:130 ../lib/modules/bindDLZ.inc:261 +#: ../lib/modules/bindDLZ.inc:274 ../lib/modules/bindDLZ.inc:294 +#: ../lib/modules/bindDLZ.inc:307 ../lib/modules/bindDLZ.inc:338 +#: ../lib/modules/bindDLZ.inc:370 ../lib/modules/bindDLZ.inc:382 +#: ../lib/modules/bindDLZ.inc:409 ../lib/modules/bindDLZ.inc:430 +#: ../lib/modules/bindDLZ.inc:476 ../lib/modules/bindDLZ.inc:479 +#: ../lib/modules/bindDLZ.inc:481 ../lib/modules/bindDLZ.inc:483 +#: ../lib/modules/bindDLZ.inc:485 ../lib/modules/bindDLZ.inc:487 +#: ../lib/modules/bindDLZ.inc:489 ../lib/modules/bindDLZ.inc:491 +#: ../lib/modules/bindDLZ.inc:493 ../lib/modules/bindDLZ.inc:658 +#: ../lib/modules/bindDLZ.inc:761 ../lib/modules/bindDLZ.inc:840 +#: ../lib/modules/bindDLZ.inc:929 ../lib/modules/bindDLZ.inc:1041 +#: ../lib/modules/bindDLZ.inc:1173 ../lib/modules/bindDLZ.inc:1251 +#: ../lib/modules/bindDLZ.inc:1377 ../lib/modules/bindDLZ.inc:1480 +#: ../lib/modules/bindDLZ.inc:1500 ../lib/modules/bindDLZ.inc:1521 +#: ../lib/modules/bindDLZ.inc:1555 ../lib/modules/bindDLZ.inc:1580 +#: ../lib/modules/bindDLZ.inc:1610 +msgid "Timeout" +msgstr "超时" + +#: ../lib/modules/bindDLZ.inc:437 +msgid "Timeouts" +msgstr "超时" + +#: ../lib/modules/pykotaUser.inc:654 ../lib/modules/pykotaUser.inc:1003 +msgid "Title" +msgstr "标题" + +#: ../templates/3rdParty/pla/htdocs/password_checker.php:45 +msgid "To" +msgstr "到" + +#: ../lib/modules/posixAccount.inc:531 +msgid "To disable login use /bin/false." +msgstr "使用/bin/false来禁止登录" + +#: ../lib/modules/sambaSamAccount.inc:574 +msgid "Tokyo, Seoul, Osaka, Yakutsk" +msgstr "东京,首尔,大孤,雅库茨克" + +#: ../templates/config/confmain.php:406 +msgid "Tool settings" +msgstr "工具设置" + +#: ../templates/tools.php:63 ../templates/main_header.php:147 +msgid "Tools" +msgstr "工具" + +#: ../templates/serverInfo.php:357 +msgid "Total" +msgstr "共" + +#: ../templates/serverInfo.php:242 ../templates/serverInfo.php:247 +msgid "Total connections" +msgstr "所有连接数" + +#: ../templates/3rdParty/pla/lib/export_functions.php:202 +msgid "Total entries" +msgstr "所有条目" + +#: ../lib/modules/pykotaUser.inc:141 +msgid "Total money paid by the user." +msgstr "用户付款总额." + +#: ../lib/modules/pykotaUser.inc:140 ../lib/modules/pykotaUser.inc:264 +#: ../lib/modules/pykotaUser.inc:586 ../lib/modules/pykotaUser.inc:901 +#: ../lib/modules/pykotaUser.inc:954 +msgid "Total paid" +msgstr "总额" + +#: ../lib/modules/pykotaUser.inc:282 +msgid "Total paid (read-only)" +msgstr "支付总额(只读)" + +#: ../lib/types/user.inc:682 +msgid "Translate GID number to group name" +msgstr "将GID号改为组名" + +#: ../templates/config/confmain.php:247 ../help/help.inc:77 +msgid "Tree suffix" +msgstr "树状结构后缀" + +#: ../templates/multiEdit.php:92 ../templates/main_header.php:178 +msgid "Tree view" +msgstr "树状结构" + +#: ../templates/config/confmain.php:567 +msgid "TreeSuffix is invalid!" +msgstr "树状结构后缀非法!" + +#: ../lib/modules/sambaSamAccount.inc:1380 +msgid "Tuesday" +msgstr "星期二" + +#: ../templates/multiEdit.php:118 ../templates/selfService/profManage.php:206 +#: ../templates/schema/schema.php:348 ../lib/modules/zarafaUser.inc:116 +#: ../lib/modules/zarafaUser.inc:238 ../lib/modules/zarafaUser.inc:361 +#: ../lib/modules/zarafaUser.inc:535 ../lib/modules/zarafaUser.inc:1251 +#: ../lib/modules/zarafaUser.inc:1797 ../lib/modules/kolabSharedFolder.inc:162 +#: ../lib/modules/kolabSharedFolder.inc:201 +#: ../lib/modules/kolabSharedFolder.inc:241 +#: ../lib/modules/kolabSharedFolder.inc:302 +#: ../lib/modules/kolabSharedFolder.inc:571 +#: ../lib/modules/customFields.inc:100 ../lib/modules/customFields.inc:1070 +#: ../lib/modules/customFields.inc:1702 +msgid "Type" +msgstr "类型" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:210 ../lib/modules/posixAccount.inc:228 +#: ../lib/modules/posixAccount.inc:497 +msgid "UID generator" +msgstr "UID生成器" + +#: ../lib/modules/posixAccount.inc:112 +msgid "UID has changed. Do you want to change home directory?" +msgstr "UID已经改变,想改变主目录吗?" + +#: ../lib/modules/posixAccount.inc:107 +msgid "" +"UID must be a number. It has to be inside the UID range which is defined in " +"your configuration profile." +msgstr "UID必须是一个数字,必须在配置文件中所定的UID范围内." + +#: ../lib/types/host.inc:95 ../lib/types/user.inc:92 +#: ../lib/modules/qmailUser.inc:112 ../lib/modules/qmailUser.inc:231 +#: ../lib/modules/qmailUser.inc:332 ../lib/modules/qmailUser.inc:418 +#: ../lib/modules/qmailUser.inc:570 ../lib/modules/qmailUser.inc:1142 +#: ../lib/modules/posixAccount.inc:108 ../lib/modules/posixAccount.inc:291 +#: ../lib/modules/posixAccount.inc:383 ../lib/modules/posixAccount.inc:412 +#: ../lib/modules/posixAccount.inc:449 ../lib/modules/posixAccount.inc:453 +#: ../lib/modules/posixAccount.inc:461 ../lib/modules/posixAccount.inc:1433 +#: ../lib/modules/posixAccount.inc:1857 +msgid "UID number" +msgstr "UID编号" + +#: ../lib/modules/posixAccount.inc:108 +#, php-format +msgid "" +"UID number has changed. To keep file ownership you have to run the following " +"command as root: 'find / -uid %s -exec chown %s {} \\;'" +msgstr "" +"UID号已经改变.为保持文件属主,必须用root身份运行如下命令: 'find / -uid %s -" +"exec chown %s {} \\;'" + +#: ../lib/modules/qmailUser.inc:463 +msgid "UID number is already in use." +msgstr "UID已经被使用" + +#: ../lib/modules/posixAccount.inc:99 +msgid "UID ranges for Unix accounts" +msgstr "Unix帐号的UID范围" + +#: ../lib/modules/sambaSamAccount.inc:307 +msgid "" +"UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced " +"with user and group name." +msgstr "用户主目录(\\\\server\\share).$user和$group会使用用户和组名来替代." + +#: ../lib/modules/windowsUser.inc:248 +msgid "" +"UNC-path (\\\\server\\share\\) of home directory. If no home drive is set " +"then this directory must start with a drive letter (e.g. \"c:\\dir\\user\")." +msgstr "" +"宿主目录的UNC路径. 如果没有指定宿主驱动器,请以驱动器字母开头 (比如 \"c:\\dir" +"\\user\")." + +#: ../lib/modules/eduPerson.inc:119 ../lib/modules/eduPerson.inc:123 +msgid "" +"URI (either URN or URL) that indicates a set of rights to specific resources." +msgstr "表示指定资源的权限集的URI(或是URN,或是URL)" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1883 +msgid "URL" +msgstr "URL" + +#: ../lib/modules/bindDLZ.inc:1705 ../lib/modules/bindDLZ.inc:1714 +#: ../lib/modules/bindDLZ.inc:1747 ../lib/modules/bindDLZ.inc:2339 +msgid "Unable to add DNS record." +msgstr "无法加入DNS条目:" + +#: ../lib/modules/imapAccess.inc:180 +msgid "Unable to change ACL on IMAP server for mailbox deletion." +msgstr "在邮箱删除时无法改变IMAP服务器的ACL." + +#: ../lib/modules/mitKerberos.inc:1155 ../lib/modules/mitKerberos.inc:1159 +#: ../lib/modules/heimdalKerberos.inc:1024 +msgid "Unable to change Kerberos password." +msgstr "无法修改kerberos密码" + +#: ../lib/modules/windowsUser.inc:1855 ../lib/modules/windowsUser.inc:1881 +msgid "Unable to change password." +msgstr "无法修改密码" + +#: ../templates/selfService/selfServiceMain.php:338 +msgid "" +"Unable to change your account. Maybe you do not have enough rights to change " +"the settings." +msgstr "无法改变您的帐号,可以没有足够的权限改变设置." + +#: ../templates/selfService/selfServiceMain.php:335 +msgid "" +"Unable to change your account. Your changes might violate the password " +"policy." +msgstr "无法修改您的帐号,可能是您违反了密码策略." + +#: ../templates/tests/lamdaemonTest.php:261 ../lib/lamdaemon.inc:76 +#: ../lib/lamdaemon.inc:81 +msgid "Unable to connect to remote server!" +msgstr "无法连接远端服务器 !" + +#: ../templates/massDoUpload.php:193 +msgid "Unable to create ZIP file for PDF export." +msgstr "无法为PDF导出工作建立ZIP文件." + +#: ../lib/modules/selfRegistration.inc:699 +#: ../lib/modules/selfRegistration.inc:703 +msgid "Unable to create account." +msgstr "无法建立新账号." + +#: ../lib/modules/imapAccess.inc:182 +msgid "Unable to create mailbox on IMAP server." +msgstr "无法在IMAP服务器上建立邮箱." + +#: ../templates/ou_edit.php:80 +msgid "Unable to create new OU!" +msgstr "无法建立新OU!" + +#: ../lib/types/automountType.inc:270 +msgid "Unable to create new automount map." +msgstr "无法建立新的自动映射" + +#: ../templates/config/profmanage.php:82 +#: ../templates/selfService/profManage.php:59 +msgid "Unable to create new profile!" +msgstr "无法建立新的配置文件!" + +#: ../lib/types/bind.inc:215 +msgid "Unable to create new zone." +msgstr "无法建立新域!" + +#: ../lib/modules/bindDLZ.inc:1684 +#, php-format +msgid "Unable to delete DNS record \"%s\"." +msgstr "无法删除DNS记录: \"%s\"." + +#: ../lib/modules/bindDLZ.inc:1693 ../lib/modules/bindDLZ.inc:1743 +msgid "Unable to delete DNS record." +msgstr "无法删除DNS记录." + +#: ../templates/ou_edit.php:97 +msgid "Unable to delete OU!" +msgstr "无法删除OU!" + +#: ../templates/pdfedit/pdfmain.php:94 +msgid "Unable to delete PDF structure!" +msgstr "无法删除PDF结构!" + +#: ../templates/3rdParty/pla/htdocs/rdelete.php:25 +#: ../templates/3rdParty/pla/htdocs/rdelete.php:57 +msgid "Unable to delete entry, it does not exist" +msgstr "删除条目失败,它不存在!" + +#: ../lib/pdfstruct.inc:291 ../lib/pdfstruct.inc:303 +msgid "Unable to delete logo file." +msgstr "无法删除徽标文件!" + +#: ../lib/modules/imapAccess.inc:181 +msgid "Unable to delete mailbox from IMAP server." +msgstr "无法在IMAP服务器上删除邮箱." + +#: ../templates/config/profmanage.php:123 +#: ../templates/selfService/profManage.php:87 +#: ../templates/profedit/profilemain.php:108 ../lib/config.inc:154 +#: ../lib/config.inc:166 ../lib/config.inc:173 ../lib/config.inc:181 +msgid "Unable to delete profile!" +msgstr "无法删除配置文件!" + +#: ../lib/modules/pykotaPrinter.inc:220 +#, php-format +msgid "Unable to find a printer with name \"%s\"." +msgstr "找不到打印机: \"%s\"" + +#: ../lib/modules/posixAccount.inc:2078 ../lib/modules/posixAccount.inc:2087 +#: ../lib/modules/posixAccount.inc:2353 ../lib/modules/nisnetgroup.inc:543 +#: ../lib/modules/groupOfNamesUser.inc:389 +msgid "Unable to find group in LDAP." +msgstr "LDAP中找不到组." + +#: ../lib/modules/passwordSelfReset.inc:950 +msgid "Unable to find password security answer for this account." +msgstr "找不到这个帐号的密码安全提问." + +#: ../lib/modules/passwordSelfReset.inc:942 +#: ../lib/modules/passwordSelfReset.inc:1161 +msgid "Unable to find password security question for this account." +msgstr "找不到这个帐号的密码安全提问." + +#: ../lib/modules/organizationalRoleUser.inc:334 +msgid "Unable to find role in LDAP." +msgstr "LDAP中找不到角色." + +#: ../templates/login.php:591 ../templates/login.php:597 +msgid "Unable to find the user name in LDAP." +msgstr "LDAP中找不到用户名." + +#: ../lib/modules/passwordSelfReset.inc:933 +#: ../lib/modules/passwordSelfReset.inc:1242 +msgid "Unable to find user account." +msgstr "找不到用户账号." + +#: ../templates/config/mainmanage.php:194 +msgid "Unable to import server certificate. Please use the upload function." +msgstr "不能导入服务器证书. 请使用上传功能." + +#: ../lib/modules.inc:1529 ../lib/modules.inc:1533 +msgid "Unable to load LDAP entry:" +msgstr "无法调入LDAP条目:" + +#: ../lib/profiles.inc:98 ../lib/profiles.inc:102 ../lib/selfService.inc:196 +#: ../lib/selfService.inc:200 +msgid "Unable to load profile!" +msgstr "无法调入配置文件!" + +#: ../lib/modules/imapAccess.inc:183 +msgid "Unable to locate mailbox on IMAP." +msgstr "无法在IMAP服务器上找到邮箱." + +#: ../lib/modules/inetOrgPerson.inc:103 +msgid "Unable to process this file." +msgstr "无法处理文件" + +#: ../templates/3rdParty/pla/lib/import_functions.php:388 +#: ../templates/3rdParty/pla/lib/import_functions.php:393 +msgid "Unable to read file." +msgstr "无法读入文件" + +#: ../lib/modules/selfRegistration.inc:692 +msgid "Unable to register your new account. Please try again." +msgstr "无法注册新帐号, 请重试." + +#: ../lib/modules/passwordSelfReset.inc:1440 +#: ../lib/modules/passwordSelfReset.inc:1449 +#: ../lib/modules/passwordSelfReset.inc:1455 +#: ../lib/modules/passwordSelfReset.inc:1464 +msgid "Unable to reset password." +msgstr "不能复位密码" + +#: ../templates/3rdParty/pla/lib/functions.php:1945 +msgid "Unable to retrieve image" +msgstr "无法获取图像" + +#: ../templates/tests/schemaTest.php:61 ../templates/schema/schema.php:93 +#: ../templates/schema/schema.php:111 ../templates/schema/schema.php:272 +#: ../templates/schema/schema.php:306 +msgid "Unable to retrieve schema!" +msgstr "无法获取schema!" + +#: ../templates/selfService/adminMain.php:251 +#: ../templates/profedit/profilepage.php:124 +msgid "Unable to save profile!" +msgstr "无法存储配置文件!" + +#: ../lib/account.inc:999 ../lib/account.inc:1037 +msgid "Unable to send mail!" +msgstr "无法发送邮件!" + +#: ../lib/modules/bindDLZ.inc:1734 +#, php-format +msgid "Unable to update DNS record \"%s\"." +msgstr "无法更新DNS记录: \"%s\"" + +#: ../lib/pdfstruct.inc:249 ../lib/pdfstruct.inc:259 ../lib/pdfstruct.inc:262 +msgid "Unable to upload logo file." +msgstr "无法上传徽标文件!" + +#: ../lib/modules/passwordSelfReset.inc:999 +#: ../lib/modules/passwordSelfReset.inc:1254 +msgid "Unable to verify your password reset request. Please try again." +msgstr "无法确认您的密码复位请求,请重试." + +#: ../lib/modules/selfRegistration.inc:726 +msgid "Unable to verify your user creation request. Please try again." +msgstr "无法确认您的用户建立请求,请重试." + +#: ../templates/serverInfo.php:293 +msgid "Unbind" +msgstr "解除绑定" + +#: ../lib/modules/windowsGroup.inc:66 +msgid "Universal" +msgstr "通用的" + +#: ../templates/lists/changePassword.php:407 +#: ../templates/lists/changePassword.php:438 ../lib/types/user.inc:268 +#: ../lib/types/user.inc:368 ../lib/types/user.inc:400 +#: ../lib/types/user.inc:821 ../lib/modules/posixGroup.inc:373 +#: ../lib/modules/posixAccount.inc:168 +msgid "Unix" +msgstr "unix" + +#: ../templates/tests/lamdaemonTest.php:214 +msgid "Unix account" +msgstr "Unix帐号" + +#: ../lib/modules/posixAccount.inc:263 ../lib/modules/posixAccount.inc:1566 +msgid "Unix groups" +msgstr "Unix组" + +#: ../lib/modules/dhcp_settings.inc:201 ../lib/modules/dhcp_settings.inc:218 +#: ../lib/modules/dhcp_settings.inc:294 ../lib/modules/dhcp_settings.inc:602 +#: ../lib/modules/dhcp_settings.inc:682 +msgid "Unknown clients" +msgstr "未知的客户端" + +#: ../lib/modules/kolabUser.inc:252 ../lib/modules/kolabSharedFolder.inc:256 +#, php-format +msgid "Unknown delegate address: %s" +msgstr "不明的代表地址:%s" + +#: ../templates/3rdParty/pla/lib/import_functions.php:233 +msgid "Unkown change type" +msgstr "未知的改变类型" + +#: ../lib/types/user.inc:349 ../lib/types/user.inc:354 +#: ../lib/modules/windowsUser.inc:732 +msgid "Unlock" +msgstr "解锁" + +#: ../templates/lists/changePassword.php:210 +#: ../templates/lists/changePassword.php:404 +#: ../templates/lists/changePassword.php:424 +#: ../templates/lists/changePassword.php:426 +#: ../lib/modules/ppolicyUser.inc:146 +msgid "Unlock account" +msgstr "解锁账号." + +#: ../templates/lists/changePassword.php:270 +msgid "Unlock account?" +msgstr "解锁账号?" + +#: ../lib/modules/posixGroup.inc:211 ../lib/modules/posixAccount.inc:1502 +#: ../lib/modules/inetOrgPerson.inc:1595 +msgid "Unlock password" +msgstr "解除密码锁定" + +#: ../templates/masscreate.php:107 ../templates/config/confmodules.php:386 +msgid "Unsolved dependency:" +msgstr "未解决的依赖性问题:" + +#: ../templates/pdfedit/pdfpage.php:473 +msgid "Up" +msgstr "向上" + +#: ../templates/lists/changePassword.php:225 +msgid "Update Samba password timestamp" +msgstr "修改 Samba 密码时间戳。" + +#: ../lib/modules/sambaSamAccount.inc:250 +msgid "Update attribute \"sambaPwdLastSet\" on password change" +msgstr "在密码修改时修改 \"sambaPwdLastSet\"属性" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1440 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:194 +msgid "Update object" +msgstr "修改对象" + +#: ../lib/modules/imapAccess.inc:322 ../lib/modules/imapAccess.inc:331 +msgid "Update quota" +msgstr "修改配额" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:165 +#: ../templates/3rdParty/pla/htdocs/mass_edit.php:129 +msgid "Update values" +msgstr "修改值" + +#: ../templates/3rdParty/pla/htdocs/add_value_form.php:118 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:118 +msgid "Updating object" +msgstr "对象升级中" + +#: ../templates/config/mainmanage.php:334 ../templates/pdfedit/pdfmain.php:247 +#: ../lib/modules/ldapPublicKey.inc:126 ../lib/modules/inetOrgPerson.inc:1863 +msgid "Upload" +msgstr "上传" + +#: ../templates/config/mainmanage.php:336 +msgid "Upload CA certificate in DER/PEM format." +msgstr "上传DEF/PEM格式的CA证书" + +#: ../lib/modules/ldapPublicKey.inc:81 +msgid "Upload a file with one or more keys. Each line contains one key." +msgstr "上传包含一个或多个密钥的文件. 一行一个密钥." + +#: ../templates/massBuildAccounts.php:242 +msgid "Upload accounts to LDAP" +msgstr "上传帐号到LDAP" + +#: ../lib/modules/ldapPublicKey.inc:122 ../lib/modules/customFields.inc:164 +#: ../lib/modules/customFields.inc:3428 +msgid "Upload file" +msgstr "上传文件" + +#: ../templates/masscreate.php:277 +msgid "Upload file and create accounts" +msgstr "开始上传,建立帐号" + +#: ../templates/massDoUpload.php:254 ../lib/lists.inc:1071 +msgid "Upload has finished" +msgstr "上传完毕" + +#: ../lib/modules.inc:504 +#, php-format +msgid "Upload was stopped after errors in %s module!" +msgstr "因为在%s模块中有错,上传停止." + +#: ../lib/pdfstruct.inc:256 +msgid "Uploaded logo file." +msgstr "上传徽标文件" + +#: ../templates/serverInfo.php:222 +msgid "Uptime" +msgstr "运行时间" + +#: ../templates/schema/schema.php:209 +msgid "Usage" +msgstr "用法" + +#: ../lib/modules/authorizedServiceObject.inc:82 +#: ../lib/modules/authorizedServiceObject.inc:86 +msgid "Use * for all services." +msgstr "为所有的服务使用*." + +#: ../lib/modules/sambaSamAccount.inc:268 +#: ../lib/modules/sambaSamAccount.inc:271 +#: ../lib/modules/sambaSamAccount.inc:432 +msgid "Use Unix password" +msgstr "使用unix的密码" + +#: ../templates/selfService/adminMain.php:437 ../help/help.inc:242 +msgid "Use for all operations" +msgstr "用于所有操作" + +#: ../lib/modules/sambaSamAccount.inc:274 +#: ../lib/modules/sambaSamAccount.inc:277 +#: ../lib/modules/sambaSamAccount.inc:440 +#: ../lib/modules/sambaSamAccount.inc:1148 +#: ../lib/modules/sambaSamAccount.inc:1740 +msgid "Use no password" +msgstr "无需密码" + +#: ../help/help.inc:272 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of entries to modify." +msgstr "" +"在这儿输入一个附加的LDAP过滤表达式(比如 \"(cn!=admin)\") 来减少被修改条目的" +"数量." + +#: ../help/help.inc:171 +msgid "" +"Use this to enter an additional LDAP filter (e.g. \"(cn!=admin)\") to reduce " +"the number of visible elements for this account type." +msgstr "" +"在这儿输入一个附加的LDAP过滤表达式( \"(cn!=admin)\") 来减少这个账号类型的可" +"显示元素数量." + +#: ../help/help.inc:241 +msgid "" +"Use this to enter an additional LDAP filter (e.g. " +"\"(objectClass=passwordSelfReset)\") to reduce the number of accounts who " +"may use self service." +msgstr "" +"在这儿输入一个附加的LDAP过滤表达式(比如 " +"\"(objectClass=passwordSelfReset)\" ) 来减少使用自助服务的账号数量." + +#: ../lib/modules/asteriskAccount.inc:188 +msgid "Use this to hide the caller ID." +msgstr "使用此项来隐藏呼叫者ID." + +#: ../lib/modules/zarafaDynamicGroup.inc:80 +#: ../lib/modules/zarafaContact.inc:72 ../lib/modules/zarafaGroup.inc:86 +#: ../lib/modules/zarafaAddressList.inc:68 ../lib/modules/zarafaUser.inc:81 +msgid "Use this to hide this entry from the address book." +msgstr "使用此项来隐藏地址簿的条目" + +#: ../lib/modules/sambaGroupMapping.inc:167 +msgid "" +"Use this to specify other groups or accounts from other domains as group " +"members." +msgstr "用此来指定从其他域来的组或帐号的组成员." + +#: ../lib/modules/imapAccess.inc:87 +msgid "" +"Use wildcards like $uid$ for LDAP attributes of the current LAM admin user." +msgstr "使用$uid$ 这样的通配符,表示当前LAM管理用户的LDAP属性." + +#: ../lib/modules/pykotaBillingCode.inc:86 +msgid "Used balance for the billing code." +msgstr "帐单号的使用额度" + +#: ../lib/modules/quota.inc:109 ../lib/modules/quota.inc:400 +msgid "Used blocks" +msgstr "已使用的块数" + +#: ../lib/modules/quota.inc:110 +msgid "Used blocks. 1000 blocks are usually 1MB" +msgstr "已经使用的块数,1000块约等于1MB" + +#: ../templates/schema/schema.php:268 +msgid "Used by attributes" +msgstr "被属性使用" + +#: ../templates/schema/schema.php:237 +msgid "Used by object classes" +msgstr "被对象类使用" + +#: ../lib/modules/sambaDomain.inc:98 +msgid "Used for calculating RIDs from UID/GID. Do not change if unsure." +msgstr "用来从UID/GID计算RID,不确定的话请不用修改." + +#: ../lib/modules/asteriskAccount.inc:220 +msgid "Used for registration context." +msgstr "在注册语境中使用" + +#: ../lib/modules/quota.inc:131 ../lib/modules/quota.inc:404 +msgid "Used inodes" +msgstr "已经使用的节点" + +#: ../lib/modules/quota.inc:132 +msgid "Used inodes (files)" +msgstr "已经使用的节点(文件)" + +#: ../lib/modules/asteriskAccount.inc:192 +msgid "Used to automatically hangup the call if no RTP traffic is received." +msgstr "如果没有收到RTP信号,此项设置用来自动挂断呼叫" + +#: ../lib/modules/asteriskAccount.inc:168 +#: ../lib/modules/asteriskAccount.inc:172 +msgid "" +"Used to limit SIP traffic to and from this peer to a certain IP or network." +msgstr "用来限制SIP通讯的主叫或被叫只能来自于某个IP地址或网段" + +#: ../lib/modules/asteriskAccount.inc:184 +msgid "Used to regularly check that a device is still online." +msgstr "用来定期检查一个设备是否在线" + +#: ../lib/types/sudo.inc:78 ../lib/modules/nisnetgroup.inc:220 +#: ../lib/modules/nisnetgroup.inc:586 ../lib/modules/nisMailAlias.inc:350 +msgid "User" +msgstr "用户" + +#: ../lib/types/user.inc:62 +msgid "User accounts (e.g. Unix, Samba and Kolab)" +msgstr "用户帐号(例如 Unix, Samba和Kolab)" + +#: ../lib/modules/asteriskAccount.inc:127 +#: ../lib/modules/asteriskAccount.inc:270 +#: ../lib/modules/asteriskAccount.inc:340 +#: ../lib/modules/asteriskAccount.inc:598 +#: ../lib/modules/asteriskAccount.inc:986 +#: ../lib/modules/asteriskAccount.inc:1241 +msgid "User agent" +msgstr "用户代理" + +#: ../lib/modules/sambaSamAccount.inc:298 +#: ../lib/modules/sambaSamAccount.inc:1172 +msgid "User can change password" +msgstr "用户可以修改密码" + +#: ../lib/modules/inetOrgPerson.inc:166 ../lib/modules/inetOrgPerson.inc:866 +#: ../lib/modules/inetOrgPerson.inc:1540 ../lib/modules/inetOrgPerson.inc:2777 +#: ../lib/modules/inetOrgPerson.inc:3630 +msgid "User certificates" +msgstr "用户数字证书" + +#: ../lib/types/user.inc:529 +#, php-format +msgid "User count: %s" +msgstr "帐号总计: %s" + +#: ../lib/modules/pykotaUser.inc:121 +msgid "User description." +msgstr "用户描述" + +#: ../lib/modules/posixAccount.inc:511 +msgid "User description. If left empty first and last name will be used." +msgstr "用户描述,如果留空将会使用用户姓名." + +#: ../lib/modules/inetOrgPerson.inc:647 +msgid "User description. If left empty sur- and give name will be used." +msgstr "用户描述,如果留空将会使用用户姓名" + +#: ../lib/modules/account.inc:106 +msgid "User description. If left empty user name will be used." +msgstr "用户的描述,如果留空将会使用用户名." + +#: ../templates/schema/schema.php:204 +msgid "User modification" +msgstr "用户修改" + +#: ../lib/modules/mitKerberos.inc:224 ../lib/modules/mitKerberos.inc:250 +#: ../lib/modules/mitKerberos.inc:374 ../lib/modules/mitKerberos.inc:639 +#: ../lib/modules/mitKerberos.inc:779 ../lib/modules/sambaSamAccount.inc:300 +#: ../lib/modules/sambaSamAccount.inc:1178 ../lib/modules/windowsUser.inc:741 +#: ../lib/modules/heimdalKerberos.inc:106 +#: ../lib/modules/heimdalKerberos.inc:193 +#: ../lib/modules/heimdalKerberos.inc:220 +#: ../lib/modules/heimdalKerberos.inc:332 +#: ../lib/modules/heimdalKerberos.inc:549 +#: ../lib/modules/heimdalKerberos.inc:683 +msgid "User must change password" +msgstr "用户必须修改密码" + +#: ../templates/lists/changePassword.php:281 ../templates/login.php:334 +#: ../lib/types/alias.inc:91 ../lib/types/user.inc:91 +#: ../lib/selfService.inc:385 ../lib/modules/mitKerberos.inc:116 +#: ../lib/modules/mitKerberos.inc:211 ../lib/modules/mitKerberos.inc:249 +#: ../lib/modules/mitKerberos.inc:343 ../lib/modules/mitKerberos.inc:766 +#: ../lib/modules/selfRegistration.inc:393 +#: ../lib/modules/selfRegistration.inc:467 +#: ../lib/modules/selfRegistration.inc:475 ../lib/modules/account.inc:85 +#: ../lib/modules/account.inc:101 ../lib/modules/account.inc:124 +#: ../lib/modules/account.inc:126 ../lib/modules/account.inc:127 +#: ../lib/modules/account.inc:210 ../lib/modules/account.inc:230 +#: ../lib/modules/account.inc:254 ../lib/modules/uidObject.inc:45 +#: ../lib/modules/uidObject.inc:67 ../lib/modules/uidObject.inc:76 +#: ../lib/modules/uidObject.inc:85 ../lib/modules/uidObject.inc:100 +#: ../lib/modules/uidObject.inc:161 ../lib/modules/posixAccount.inc:113 +#: ../lib/modules/posixAccount.inc:114 ../lib/modules/posixAccount.inc:117 +#: ../lib/modules/posixAccount.inc:283 ../lib/modules/posixAccount.inc:409 +#: ../lib/modules/posixAccount.inc:506 ../lib/modules/posixAccount.inc:1420 +#: ../lib/modules/posixAccount.inc:1842 ../lib/modules/windowsUser.inc:107 +#: ../lib/modules/windowsUser.inc:264 ../lib/modules/windowsUser.inc:498 +#: ../lib/modules/windowsUser.inc:589 ../lib/modules/windowsUser.inc:689 +#: ../lib/modules/windowsUser.inc:1593 ../lib/modules/pykotaUser.inc:112 +#: ../lib/modules/pykotaUser.inc:208 ../lib/modules/pykotaUser.inc:268 +#: ../lib/modules/pykotaUser.inc:311 ../lib/modules/pykotaUser.inc:313 +#: ../lib/modules/pykotaUser.inc:340 ../lib/modules/pykotaUser.inc:889 +#: ../lib/modules/nisnetgroup.inc:152 ../lib/modules/nisnetgroup.inc:482 +#: ../lib/modules/inetOrgPerson.inc:97 ../lib/modules/inetOrgPerson.inc:166 +#: ../lib/modules/inetOrgPerson.inc:638 ../lib/modules/inetOrgPerson.inc:766 +#: ../lib/modules/inetOrgPerson.inc:1186 ../lib/modules/inetOrgPerson.inc:1189 +#: ../lib/modules/inetOrgPerson.inc:1942 ../lib/modules/inetOrgPerson.inc:2077 +#: ../lib/modules/inetOrgPerson.inc:2835 ../lib/modules/inetOrgPerson.inc:3638 +#: ../lib/modules/inetOrgPerson.inc:3664 +#: ../lib/modules/passwordSelfReset.inc:499 +#: ../lib/modules/passwordSelfReset.inc:843 +#: ../lib/modules/passwordSelfReset.inc:1015 +#: ../lib/modules/heimdalKerberos.inc:94 +#: ../lib/modules/heimdalKerberos.inc:180 +#: ../lib/modules/heimdalKerberos.inc:218 +#: ../lib/modules/heimdalKerberos.inc:293 +#: ../lib/modules/heimdalKerberos.inc:676 +msgid "User name" +msgstr "用户名" + +#: ../lib/modules/windowsUser.inc:115 ../lib/modules/windowsUser.inc:449 +#: ../lib/modules/windowsUser.inc:529 ../lib/modules/windowsUser.inc:565 +#: ../lib/modules/windowsUser.inc:593 ../lib/modules/windowsUser.inc:698 +#: ../lib/modules/windowsUser.inc:1595 +msgid "User name (pre W2K)" +msgstr "用户名(W2K以前)" + +#: ../lib/modules/selfRegistration.inc:475 ../lib/modules/posixAccount.inc:121 +#: ../lib/modules/pykotaUser.inc:313 ../lib/modules/pykotaUser.inc:314 +#: ../lib/modules/pykotaUser.inc:317 ../lib/modules/pykotaUser.inc:318 +#: ../lib/modules/inetOrgPerson.inc:99 +msgid "User name already exists!" +msgstr "用户名已经存在!" + +#: ../lib/modules/passwordSelfReset.inc:501 +msgid "User name and email address" +msgstr "用户名和用户的电子邮件地址" + +#: ../lib/modules/imapAccess.inc:103 ../lib/modules/imapAccess.inc:144 +msgid "User name attribute" +msgstr "用户名属性" + +#: ../lib/modules/mitKerberos.inc:289 ../lib/modules/mitKerberos.inc:290 +#: ../lib/modules/selfRegistration.inc:467 ../lib/modules/account.inc:124 +#: ../lib/modules/account.inc:125 ../lib/modules/account.inc:127 +#: ../lib/modules/zarafaContact.inc:187 ../lib/modules/zarafaContact.inc:188 +#: ../lib/modules/uidObject.inc:85 ../lib/modules/zarafaGroup.inc:222 +#: ../lib/modules/zarafaGroup.inc:223 ../lib/modules/posixAccount.inc:114 +#: ../lib/modules/posixAccount.inc:119 ../lib/modules/zarafaUser.inc:419 +#: ../lib/modules/zarafaUser.inc:420 ../lib/modules/windowsUser.inc:589 +#: ../lib/modules/windowsUser.inc:590 ../lib/modules/windowsUser.inc:593 +#: ../lib/modules/windowsUser.inc:594 ../lib/modules/pykotaUser.inc:311 +#: ../lib/modules/pykotaUser.inc:312 ../lib/modules/pykotaUser.inc:315 +#: ../lib/modules/pykotaUser.inc:316 ../lib/modules/nisnetgroup.inc:152 +#: ../lib/modules/inetOrgPerson.inc:97 ../lib/modules/inetOrgPerson.inc:98 +#: ../lib/modules/passwordSelfReset.inc:893 +#: ../lib/modules/passwordSelfReset.inc:1115 +#: ../lib/modules/heimdalKerberos.inc:253 +#: ../lib/modules/heimdalKerberos.inc:254 +msgid "" +"User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +"and .-_ !" +msgstr "用户名包含非法字符,只能使用a-z,A-Z,0-9,和 .-_!" + +#: ../lib/modules/windowsUser.inc:253 +msgid "User name for NIS." +msgstr "NIS中的用户名" + +#: ../lib/modules/posixAccount.inc:117 +msgid "User name in use. Selected next free user name." +msgstr "用户名存在,请选择其他的用户名." + +#: ../lib/modules/mitKerberos.inc:117 ../lib/modules/account.inc:102 +#: ../lib/modules/pykotaUser.inc:113 ../lib/modules/inetOrgPerson.inc:767 +#: ../lib/modules/heimdalKerberos.inc:95 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_." +msgstr "将要建立的用户名,可用字符为: a-z,A-Z,0-9, @.-_." + +#: ../lib/modules/posixAccount.inc:507 +msgid "" +"User name of the user who should be created. Valid characters are: a-z,A-" +"Z,0-9, @.-_. If user name is already used user name will be expanded with a " +"number. The next free number will be used." +msgstr "" +"将要建立的用户名,可用字符为:a-z,A-Z,0-9, @.-_..如果该组名存在,会在组名末尾增" +"加下一个可以使用的数字。" + +#: ../lib/modules/passwordSelfReset.inc:502 +#: ../lib/modules/passwordSelfReset.inc:867 +#: ../lib/modules/passwordSelfReset.inc:1035 +msgid "User name or email address" +msgstr "用户名或用户邮件地址." + +#: ../lib/modules/posixAccount.inc:270 ../lib/modules/posixAccount.inc:436 +msgid "User name suggestion" +msgstr "用户名建议" + +#: ../lib/modules/pykotaUser.inc:125 +msgid "User name that is used for PyKota." +msgstr "在PyKota中使用的用户名" + +#: ../lib/modules/windowsUser.inc:752 +msgid "User profile" +msgstr "用户配置文件" + +#: ../lib/modules/selfRegistration.inc:45 +msgid "User self registration" +msgstr "用户自注册" + +#: ../lib/modules/zarafaUser.inc:128 ../lib/modules/zarafaUser.inc:275 +#: ../lib/modules/zarafaUser.inc:373 ../lib/modules/zarafaUser.inc:614 +#: ../lib/modules/zarafaUser.inc:1233 ../lib/modules/zarafaUser.inc:1322 +#: ../lib/modules/zarafaUser.inc:1805 +msgid "User server" +msgstr "用户服务器" + +#: ../lib/types/user.inc:53 ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/posixAccount.inc:94 ../lib/modules/posixAccount.inc:97 +#: ../lib/modules/posixAccount.inc:209 ../lib/modules/zarafaUser.inc:1779 +#: ../lib/modules/sudoRole.inc:74 ../lib/modules/sudoRole.inc:98 +#: ../lib/modules/sudoRole.inc:159 ../lib/modules/sudoRole.inc:216 +#: ../lib/modules/sudoRole.inc:228 ../lib/modules/sudoRole.inc:316 +#: ../lib/modules/sudoRole.inc:806 +msgid "Users" +msgstr "用户" + +#: ../lib/modules/zarafaContact.inc:80 ../lib/modules/zarafaGroup.inc:94 +#: ../lib/modules/zarafaUser.inc:105 +msgid "Users or groups that may directly send email as this user." +msgstr "可以用这个用户直接发送邮件的用户或组." + +#: ../lib/modules/posixGroup.inc:489 +msgid "" +"Users who are member of the current group. Users who have set their primary " +"group to this group will not be shown." +msgstr "当前组成员,这里不会显示将此组设为主要组的用户" + +#: ../lib/modules/posixGroup.inc:493 +msgid "" +"Users who will become member of the current group. User names are separated " +"by semicolons." +msgstr "属于当前组的用户,以分号隔开." + +#: ../templates/tests/lamdaemonTest.php:207 +#, php-format +msgid "Using %s as lamdaemon remote server." +msgstr "使用%s做为lamdeamon的远程服务器." + +#: ../templates/tests/lamdaemonTest.php:229 +#, php-format +msgid "Using %s to connect to remote server." +msgstr "使用%s连接远程服务器." + +#: ../lib/modules/posixAccount.inc:446 +msgid "" +"Usually, users are not added to groups as memberUid if they have this group " +"as primary group. If your application ignores primary groups then you can " +"select this option to override this behaviour." +msgstr "" +"通常,用户不作为memberUid加入主组.如果你的应用程序不支持主组,你可以选择此项修" +"改原来的选项." + +#: ../templates/3rdParty/pla/lib/export_functions.php:543 +msgid "VCARD 2.1 Export" +msgstr "VCARD 2.1 导出" + +#: ../templates/config/mainmanage.php:360 +msgid "Valid to" +msgstr "下列是有效的" + +#: ../help/help.inc:92 +msgid "Valid users" +msgstr "合法用户" + +#: ../lib/modules/imapAccess.inc:83 ../lib/modules/imapAccess.inc:121 +msgid "Validate server certificate" +msgstr "校验服务器数字证书." + +#: ../lib/modules/customFields.inc:108 ../lib/modules/customFields.inc:1899 +msgid "Validation expression" +msgstr "合法性检查表达式" + +#: ../lib/modules/customFields.inc:112 ../lib/modules/customFields.inc:1904 +msgid "Validation message" +msgstr "合法性检查消息" + +#: ../templates/multiEdit.php:120 ../lib/modules/customFields.inc:2959 +msgid "Value" +msgstr "值" + +#: ../lib/modules/customFields.inc:116 ../lib/modules/customFields.inc:2749 +msgid "Value for \"checked\"" +msgstr "\"选定\"时的值" + +#: ../lib/modules/customFields.inc:120 ../lib/modules/customFields.inc:2755 +msgid "Value for \"unchecked\"" +msgstr "\"未选定\"时的值" + +#: ../lib/modules/customFields.inc:140 ../lib/modules/customFields.inc:2955 +msgid "Value mapping" +msgstr "值映射" + +#: ../templates/3rdParty/pla/lib/import_functions.php:512 +msgid "Value to delete does not exist in DN" +msgstr "DN中被删除值不存在" + +#: ../lib/modules/puppetClient.inc:100 ../lib/modules/puppetClient.inc:104 +#: ../lib/modules/puppetClient.inc:146 ../lib/modules/puppetClient.inc:156 +#: ../lib/modules/puppetClient.inc:169 ../lib/modules/puppetClient.inc:277 +#: ../lib/modules/puppetClient.inc:439 +msgid "Variables" +msgstr "变量" + +#: ../templates/serverInfo.php:134 +msgid "Vendor name" +msgstr "生产商" + +#: ../templates/serverInfo.php:140 +msgid "Vendor version" +msgstr "生产商版本" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +#, php-format +msgid "View %s children" +msgstr "查看%s子集" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1227 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1231 +msgid "View 1 child" +msgstr "查看1个子集" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1225 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1230 +msgid "View the children of this object" +msgstr "查看对象的子集" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1028 +msgid "Viewing entry in read-only mode." +msgstr "以只读方式显示条目" + +#: ../lib/modules/asteriskVoicemail.inc:119 +#: ../lib/modules/asteriskVoicemail.inc:126 +#: ../lib/modules/asteriskVoicemail.inc:143 +#: ../lib/modules/asteriskVoicemail.inc:196 +#: ../lib/modules/asteriskVoicemail.inc:260 +#: ../lib/modules/asteriskVoicemail.inc:372 +msgid "Voicemail context" +msgstr "语音邮件的语境." + +#: ../lib/modules/asteriskVoicemail.inc:96 +msgid "Voicemail mailbox for this account." +msgstr "此帐号的语音邮箱." + +#: ../templates/login.php:496 +msgid "Want more features? Get LAM Pro!" +msgstr "需要更多的功能吗? 参见系统专业版! " + +#: ../templates/config/mainmanage.php:408 +#: ../templates/3rdParty/pla/lib/page.php:76 +msgid "Warning" +msgstr "警告" + +#: ../templates/delete.php:234 ../lib/modules/nisMailAliasUser.inc:505 +#: ../lib/modules/posixAccount.inc:850 ../lib/modules/posixAccount.inc:903 +#: ../lib/modules/organizationalRoleUser.inc:201 +#: ../lib/modules/organizationalRoleUser.inc:218 +#: ../lib/modules/windowsUser.inc:1127 ../lib/modules/groupOfNamesUser.inc:217 +#: ../lib/modules/groupOfNamesUser.inc:264 ../lib/modules.inc:1908 +#, php-format +msgid "Was unable to add attributes to DN: %s." +msgstr "无法为DN: %s增加属性." + +#: ../lib/modules/nisMailAliasUser.inc:494 ../lib/modules/range.inc:665 +#: ../lib/modules.inc:1871 +#, php-format +msgid "Was unable to create DN: %s." +msgstr "无法创建DN: %s." + +#: ../templates/delete.php:344 ../templates/delete.php:353 +#: ../lib/modules/nisMailAliasUser.inc:471 ../lib/modules/range.inc:732 +#, php-format +msgid "Was unable to delete DN: %s." +msgstr "无法删除DN: %s." + +#: ../templates/lists/changePassword.php:758 +#: ../templates/lists/changePassword.php:796 +#: ../templates/lists/changePassword.php:842 ../templates/delete.php:225 +#, php-format +msgid "Was unable to modify attributes from DN: %s." +msgstr "无法修改DN: %s的属性" + +#: ../lib/modules/posixAccount.inc:888 ../lib/modules/windowsUser.inc:1153 +#: ../lib/modules/windowsUser.inc:1566 ../lib/modules/range.inc:709 +#: ../lib/modules/groupOfNamesUser.inc:249 ../lib/modules.inc:1890 +#, php-format +msgid "Was unable to modify attributes of DN: %s." +msgstr "不能修改DN: %s的属性" + +#: ../templates/delete.php:243 ../lib/modules/nisMailAliasUser.inc:482 +#: ../lib/modules/posixAccount.inc:858 ../lib/modules/posixAccount.inc:920 +#: ../lib/modules/organizationalRoleUser.inc:206 +#: ../lib/modules/organizationalRoleUser.inc:229 +#: ../lib/modules/windowsUser.inc:1140 ../lib/modules/groupOfNamesUser.inc:222 +#: ../lib/modules/groupOfNamesUser.inc:278 ../lib/modules.inc:1921 +#, php-format +msgid "Was unable to remove attributes from DN: %s." +msgstr "无法删除DN: %s的属性." + +#: ../lib/modules/asteriskExtension.inc:905 ../lib/modules.inc:1851 +#, php-format +msgid "Was unable to rename DN: %s." +msgstr "无法重命名DN: %s." + +#: ../lib/modules/windowsUser.inc:188 ../lib/modules/windowsUser.inc:374 +#: ../lib/modules/windowsUser.inc:516 ../lib/modules/windowsUser.inc:543 +#: ../lib/modules/windowsUser.inc:720 ../lib/modules/windowsUser.inc:1612 +#: ../lib/modules/windowsUser.inc:1735 ../lib/modules/inetOrgPerson.inc:165 +#: ../lib/modules/inetOrgPerson.inc:217 ../lib/modules/inetOrgPerson.inc:478 +#: ../lib/modules/inetOrgPerson.inc:601 ../lib/modules/inetOrgPerson.inc:754 +#: ../lib/modules/inetOrgPerson.inc:758 ../lib/modules/inetOrgPerson.inc:1455 +#: ../lib/modules/inetOrgPerson.inc:1458 ../lib/modules/inetOrgPerson.inc:1952 +#: ../lib/modules/inetOrgPerson.inc:2514 ../lib/modules/inetOrgPerson.inc:3628 +#: ../lib/modules/inetOrgPerson.inc:3654 +msgid "Web site" +msgstr "网站" + +#: ../lib/modules/sambaSamAccount.inc:1380 +msgid "Wednesday" +msgstr "星期三" + +#: ../lib/modules/bindDLZ.inc:187 ../lib/modules/bindDLZ.inc:191 +#: ../lib/modules/bindDLZ.inc:394 ../lib/modules/bindDLZ.inc:510 +#: ../lib/modules/bindDLZ.inc:1360 ../lib/modules/bindDLZ.inc:1607 +msgid "Weight" +msgstr "权重" + +#: ../lib/selfService.inc:384 +msgid "Welcome to LAM self service. Please enter your user name and password." +msgstr "欢迎来到LAM自助服务.请输入用户名和密码." + +#: ../lib/modules/sambaSamAccount.inc:565 +msgid "Western Europe Time, London, Lisbon" +msgstr "西欧时间,伦敦,里斯本" + +#: ../lib/modules/passwordSelfReset.inc:179 +msgid "What is the name of your favourite pet?" +msgstr "你最喜欢的宠物名字?" + +#: ../templates/3rdParty/pla/htdocs/copy_form.php:71 +msgid "" +"When performing a recursive copy, only copy those entries which match this " +"filter." +msgstr "当进行递归拷贝时,只拷贝匹配这些过滤器的条目." + +#: ../lib/modules/zarafaUser.inc:101 +msgid "" +"When the hard quota limit is reached, email can not be delivered to that " +"user anymore." +msgstr "如果达到硬限额,用户再也收不到邮件." + +#: ../help/help.inc:70 +msgid "" +"When using ldaps:// or TLS be sure to use exactly the same IP/domain name as " +"in your certificate!" +msgstr "当使用ldaps://或TLS协议时确认在证书中使用相同的ip/domain!" + +#: ../templates/lists/changePassword.php:419 +#: ../templates/lists/changePassword.php:450 ../lib/types/user.inc:292 +#: ../lib/types/user.inc:380 ../lib/types/user.inc:412 +#: ../lib/types/user.inc:845 ../lib/modules/windowsHost.inc:64 +#: ../lib/modules/windowsUser.inc:89 ../lib/modules/windowsGroup.inc:99 +msgid "Windows" +msgstr "Windows" + +#: ../lib/modules/sambaSamAccount.inc:338 ../lib/modules/windowsUser.inc:112 +msgid "Windows domain name of account." +msgstr "帐号所属的windows域" + +#: ../lib/modules/sambaSamAccount.inc:212 +#: ../lib/modules/sambaSamAccount.inc:471 +#: ../lib/modules/sambaSamAccount.inc:1266 +#: ../lib/modules/sambaSamAccount.inc:1788 +#: ../lib/modules/sambaSamAccount.inc:1913 +#: ../lib/modules/sambaGroupMapping.inc:111 +#: ../lib/modules/sambaGroupMapping.inc:374 +#: ../lib/modules/sambaGroupMapping.inc:539 +msgid "Windows group" +msgstr "Windows组" + +#: ../lib/modules/sambaGroupMapping.inc:150 +msgid "Windows group name" +msgstr "Windows组名" + +#: ../lib/modules/sambaGroupMapping.inc:163 +msgid "Windows group type." +msgstr "Windows组类型" + +#: ../lib/modules/sambaSamAccount.inc:395 +msgid "" +"Windows password hashes are saved by default as NT and LM hashes. LM hashes " +"are insecure and only needed for old versions of Windows. You should disable " +"them unless you really need them." +msgstr "" +"windows密码的哈希方法缺少设置为NT和LM方法.LM哈希方法是不安全的,只用于旧版本的" +"Windows系统.除非必要,一般需要屏蔽之." + +#: ../lib/modules/sambaSamAccount.inc:321 +msgid "Windows primary group" +msgstr "Windows主组" + +#: ../lib/modules/sambaSamAccount.inc:324 +msgid "Windows primary group SID" +msgstr "Windows主组的SID" + +#: ../lib/modules/sambaGroupMapping.inc:159 +msgid "Windows-Domain name of group." +msgstr "组的windows域名." + +#: ../lib/modules/inetOrgPerson.inc:1466 +msgid "Work details" +msgstr "工作详细信息" + +#: ../lib/modules/sambaDomain.inc:146 +msgid "Workgroup" +msgstr "工作组" + +#: ../lib/modules/sambaSamAccount.inc:236 +#: ../lib/modules/sambaSamAccount.inc:367 +#: ../lib/modules/sambaSamAccount.inc:1522 +#: ../lib/modules/sambaSamAccount.inc:1932 +msgid "Working directory" +msgstr "工作目录" + +#: ../lib/modules/sambaSamAccount.inc:368 +msgid "Working directory of initial program." +msgstr "初始化程序的工作目录。" + +#: ../templates/config/confmain.php:318 +msgid "Write" +msgstr "写入" + +#: ../templates/config/confmain.php:260 +msgid "Write access" +msgstr "写权限" + +#: ../templates/login.php:579 ../templates/login.php:637 +#: ../templates/selfService/selfServiceLogin.php:160 +#: ../templates/selfService/selfServiceLogin.php:186 +msgid "Wrong password/user name combination. Please try again." +msgstr "错误的密码和用户组合,请重试!" + +#: ../lib/modules/imapAccess.inc:188 +msgid "Wrong quota format. Quota must be numeric." +msgstr "错误的配额类型.配额必须为数字." + +#: ../templates/schema/schema.php:153 ../templates/schema/schema.php:195 +#: ../templates/schema/schema.php:200 ../templates/schema/schema.php:205 +#: ../templates/pdfedit/pdfpage.php:460 ../lib/modules/pykotaPrinter.inc:51 +#: ../lib/modules/pykotaPrinter.inc:170 ../lib/modules/qmailGroup.inc:322 +#: ../lib/modules/qmailGroup.inc:364 ../lib/modules/qmailGroup.inc:1030 +#: ../lib/modules/qmailGroup.inc:1031 ../lib/modules/qmailGroup.inc:1073 +#: ../lib/modules/qmailGroup.inc:1079 ../lib/modules/imapAccess.inc:121 +msgid "Yes" +msgstr "是" + +#: ../templates/lists/changePassword.php:537 +#: ../lib/modules/ppolicyUser.inc:344 ../lib/modules/ppolicyUser.inc:421 +msgid "You are reusing an old password. Please choose a different password." +msgstr "重复使用了旧密码. 请输入与原来密码不同的新密码. " + +#: ../lib/modules/account.inc:126 ../lib/modules/posixGroup.inc:602 +#: ../lib/modules/posixAccount.inc:113 ../lib/modules/posixAccount.inc:115 +msgid "" +"You are using capital letters. This can cause problems because Windows is " +"not case-sensitive." +msgstr "您正在使用大写字符,这会造成一些问题,因为windows大小写不敏感." + +#: ../lib/lists.inc:1073 +#, php-format +msgid "" +"You can download your PDF files {link=%s}{color=#d2131a}here{endcolor}" +"{endlink}." +msgstr "你可以下载你的PDF文件 {link=%s}{color=#d2131a}这里{endcolor}{endlink}." + +#: ../templates/initsuff.php:181 +msgid "" +"You can setup the LDAP suffixes for all account types in your LAM server " +"profile on tab \"Account types\"." +msgstr "" +"可以为在LAM服务器配备文件中的\" 帐号类型 \"中为所有的帐号类型设置LDAP后缀." + +#: ../help/help.inc:110 +msgid "" +"You can specify if LAM allows full write access, password changes or only " +"read access." +msgstr "您可以指定LAM是否允许全部权限,只能更改密码,或是只读." + +#: ../lib/modules/windowsUser.inc:104 ../lib/modules/windowsUser.inc:125 +#: ../lib/modules/windowsUser.inc:141 ../lib/modules/windowsUser.inc:206 +#: ../lib/modules/windowsUser.inc:211 ../lib/modules/windowsUser.inc:228 +#: ../lib/modules/windowsUser.inc:233 ../lib/modules/windowsUser.inc:249 +#: ../lib/modules/inetOrgPerson.inc:743 ../lib/modules/inetOrgPerson.inc:748 +msgid "" +"You can use \"$user\", \"$firstname\" and \"$lastname\" as wildcards for " +"user name, first and last name." +msgstr "" +"提及用户名、姓氏、名字时可以使用 \"$user\", \"$firstname\" 和 \"$lastname\" " +"做为通配符." + +#: ../help/help.inc:172 +msgid "" +"You can use the wildcard @@LOGIN_DN@@ which will be substituted with the DN " +"of the user who is currently logged in to LAM." +msgstr "你可以使用掩码@@LOGIN_DN@@来替代登录到LAM的用户的DN" + +#: ../lib/modules/zarafaDynamicGroup.inc:84 +#: ../lib/modules/zarafaContact.inc:76 ../lib/modules/zarafaGroup.inc:90 +#: ../lib/modules/zarafaAddressList.inc:72 ../lib/modules/zarafaUser.inc:85 +msgid "You can use this to temporarily deactivate the Zarafa extension." +msgstr "可以使用它来临时解除Zarafa扩展项" + +#: ../lib/modules/passwordSelfReset.inc:126 +#: ../lib/modules/passwordSelfReset.inc:136 ../help/help.inc:253 +msgid "" +"You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. " +"@@uid@@ for the user name)." +msgstr "" +"您可以用@@attribute@@的通配符形式代表LDAP属性(比如@@uid@@代表用户名)。" + +#: ../lib/modules/customScripts.inc:65 ../lib/modules/customScripts.inc:78 +msgid "" +"You can use wildcards in the format $wildcard$ which are replaced by the " +"LDAP attribute with the same name. For multi-value attributes the values " +"will be separated by commas." +msgstr "" +"可以按照$wildcard$的格式来利用通配符,该内容将会被相同内容的LDAP属性所替代.多" +"值的属性值用逗号隔离." + +#: ../lib/modules/zarafaContact.inc:191 +msgid "" +"You cannot add the Zarafa and Zarafa contact extension at the same time." +msgstr "你可以同时增加 Zarafa 和 Zarafa 联系人扩展." + +#: ../templates/3rdParty/pla/htdocs/template_engine.php:52 +msgid "You cannot perform updates while server is in read-only mode" +msgstr "在服务器只读方式下不能更新" + +#: ../templates/3rdParty/pla/htdocs/rename.php:26 +msgid "You cannot rename an entry which has child entries." +msgstr "不能为一个有子条目的条目重新命名" + +#: ../templates/config/confmain.php:505 +msgid "" +"You cannot use SSL and TLS encryption at the same time. Please use either " +"\"ldaps://\" or TLS." +msgstr "不能同时使用SSL和TLS加密.请使用\"ldaps://\" 或 TLS." + +#: ../templates/3rdParty/pla/htdocs/rename.php:32 +msgid "You did not change the RDN" +msgstr "您没有对RDN做任何修改." + +#: ../templates/tests/schemaTest.php:61 +msgid "" +"You do not have the required access rights or the LDAP schema is not " +"published by your server." +msgstr "您无权访问或LDAP架构未发布到LDAP服务器。" + +#: ../lib/modules/dhcp_settings.inc:322 ../lib/modules/dhcp_settings.inc:323 +msgid "You entered one or more invalid DNS servers." +msgstr "您输入了一个或多个非常的DNS服务器." + +#: ../templates/3rdParty/pla/lib/Template.php:417 +#: ../templates/3rdParty/pla/lib/Template.php:504 +msgid "You left the attribute value blank. Please go back and try again." +msgstr "属性值有空白,请返回重试." + +#: ../templates/3rdParty/pla/htdocs/create.php:51 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:45 +#, php-format +msgid "You left the value blank for required attribute (%s)." +msgstr "%s是必填项目,您留下了空白." + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:171 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:209 +#: ../templates/3rdParty/pla/htdocs/create_confirm.php:133 +msgid "You made no changes" +msgstr "您没有做任何修改." + +#: ../templates/config/mainmanage.php:172 +#: ../templates/config/mainmanage.php:178 +#: ../templates/config/mainmanage.php:190 +msgid "You might need to restart your webserver for changes to take effect." +msgstr "必须要重启WEB服务器,以使修改生效." + +#: ../lib/modules/posixAccount.inc:121 ../lib/modules/posixAccount.inc:122 +#, php-format +msgid "You might want to use %s instead of %s." +msgstr "你可能想用 %s来代替%s." + +#: ../templates/3rdParty/pla/lib/import_functions.php:95 +msgid "You must either upload a file or provide an import in the text box." +msgstr "在文本框中必须上传一个文件或提供一种导入方式." + +#: ../lib/modules/groupOfNames.inc:210 ../lib/modules/groupOfNames.inc:211 +msgid "You need to add at least one member to this group." +msgstr "您至少需要为这个组增加一个成员." + +#: ../lib/modules/passwordSelfReset.inc:229 +msgid "You specified an answer but no security question." +msgstr "您指定了一个没有安全问题的答案." + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1136 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1140 +msgid "You will be prompted to confirm this decision" +msgstr "您将会提示来确认这个操作" + +#: ../lib/modules/imapAccess.inc:184 +msgid "Your IMAP domains and email address domain do not match." +msgstr "您的IMAP域名与邮箱域名不匹配. " + +#: ../templates/tests/lamdaemonTest.php:234 +#, php-format +msgid "" +"Your LAM admin user (%s) must be a valid Unix account to work with lamdaemon!" +msgstr "系统管理者(%s)必须有一个合法的UNIX帐号才能运行lamdaemon !" + +#: ../lib/lamdaemon.inc:61 ../lib/lamdaemon.inc:66 +msgid "" +"Your LAM admin user must be a valid Unix account to work with lamdaemon!" +msgstr "系统管理者必须有一个合法的UNIX帐号才能运行lamdaemon !" + +#: ../lib/modules/imapAccess.inc:186 +msgid "Your LAM login password was not accepted by the IMAP server." +msgstr "你的LAM登录密码不被IMAP服务器接受" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:125 +msgid "" +"Your PHP configuration has disabled file uploads. Please check php.ini " +"before proceeding." +msgstr "PHP设置已经关闭了文件上传,请检查PHP.INI ." + +#: ../templates/3rdParty/pla/htdocs/import_form.php:16 +msgid "" +"Your PHP.INI does not have file_uploads = ON. Please enable file uploads in " +"PHP." +msgstr "您的PHP.INI没有file_uploads = on,在PHP中打开文件上传." + +#: ../templates/config/confmain.php:176 +#: ../templates/selfService/adminMain.php:372 +msgid "" +"Your changes cannot be saved until you make the file writable for the " +"webserver user." +msgstr "你的修改只能在web服务器有权写文件的条件下保存." + +#: ../lib/modules/selfRegistration.inc:721 +msgid "" +"Your new account was created but post processing failed. Please contact your " +"local administrator." +msgstr "您的新帐号已经建立, 但后续处理工作失败. 请联系本地管理员." + +#: ../lib/modules/selfRegistration.inc:718 +msgid "" +"Your new account was successfully created. Please return to login to change " +"your user data." +msgstr "你的新账号已经成功建立.请返回后登录并修改用户数据." + +#: ../lib/account.inc:1202 ../lib/modules/windowsUser.inc:1878 +msgid "" +"Your password does not meet the password strength qualifications. Please " +"retry with another one." +msgstr "密码达不到强度要求,请重试。" + +#: ../lib/modules/passwordSelfReset.inc:563 +msgid "Your password was changed to @@newPassword@@." +msgstr "新密码为@@newPassword@@." + +#: ../lib/security.inc:192 +msgid "Your session expired, click here to go back to the login page." +msgstr "超时,请点此外返回到登录界面." + +#: ../templates/login.php:296 +#: ../templates/selfService/selfServiceLogin.php:113 +msgid "Your session expired, please log in again." +msgstr "超时,请重新登录." + +#: ../templates/login.php:301 ../templates/login.php:306 +#: ../templates/login.php:315 +msgid "Your settings were successfully saved." +msgstr "设置保存成功." + +#: ../lib/modules/windowsUser.inc:346 ../lib/modules/inetOrgPerson.inc:512 +#: ../lib/modules/inetOrgPerson.inc:544 +msgid "YourCompany" +msgstr "您的公司" + +#: ../lib/modules/zarafaGroup.inc:56 ../lib/modules/zarafaUser.inc:61 +#: ../lib/modules/zarafaServer.inc:56 +msgid "Zarafa" +msgstr "Zarafa" + +#: ../lib/modules/zarafaAddressList.inc:51 +msgid "Zarafa address list" +msgstr "Zarafa地址列表" + +#: ../lib/types/zarafaAddressListType.inc:53 +#: ../lib/types/zarafaAddressListType.inc:62 +msgid "Zarafa address lists" +msgstr "Zarafa地址列表" + +#: ../lib/modules/zarafaContact.inc:56 +msgid "Zarafa contact" +msgstr "Zarafa联系人" + +#: ../lib/modules/zarafaDynamicGroup.inc:51 +msgid "Zarafa dynamic group" +msgstr "Zarafa动态组" + +#: ../lib/types/zarafaDynamicGroupType.inc:53 +#: ../lib/types/zarafaDynamicGroupType.inc:62 +msgid "Zarafa dynamic groups" +msgstr "Zarafa动态组" + +#: ../lib/modules/zarafaDynamicGroup.inc:95 +#: ../lib/modules/zarafaDynamicGroup.inc:183 +#: ../lib/modules/zarafaContact.inc:106 ../lib/modules/zarafaContact.inc:123 +#: ../lib/modules/zarafaGroup.inc:112 ../lib/modules/zarafaGroup.inc:127 +#: ../lib/modules/zarafaAddressList.inc:83 +#: ../lib/modules/zarafaAddressList.inc:156 ../lib/modules/zarafaUser.inc:171 +#: ../lib/modules/zarafaUser.inc:394 ../lib/modules/zarafaUser.inc:1773 +#: ../lib/modules/zarafaServer.inc:92 ../lib/modules/zarafaServer.inc:153 +msgid "Zarafa schema" +msgstr "Zarafa架构" + +#: ../lib/modules/zarafaUser.inc:160 ../lib/modules/zarafaUser.inc:164 +msgid "Zarafa will store the user's archives on these servers." +msgstr "将在这些服务器上建立用户的归档." + +#: ../lib/types/bind.inc:78 ../lib/modules/ddns.inc:102 +#: ../lib/modules/ddns.inc:113 ../lib/modules/ddns.inc:128 +#: ../lib/modules/ddns.inc:394 ../lib/modules/ddns.inc:425 +msgid "Zone name" +msgstr "区域名" + +#: ../lib/modules/ddns.inc:103 +msgid "Zone name for the DNS server (e.g. company.local)." +msgstr "DNS服务器的区域名(比如: company.local)." + +#: ../lib/modules/sambaSamAccount.inc:497 ../lib/modules/windowsUser.inc:438 +msgid "\\\\server\\homes\\smiller" +msgstr "\\\\server\\homes\\smiller" + +#: ../lib/modules/sambaSamAccount.inc:505 ../lib/modules/windowsUser.inc:420 +msgid "\\\\server\\profiles\\smiller" +msgstr "\\\\server\\profiles\\smiller" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2074 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2077 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2092 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2095 +msgid "add value" +msgstr "增加值" + +#: ../lib/modules/zarafaDynamicGroup.inc:118 ../lib/modules/posixGroup.inc:461 +#: ../lib/modules/zarafaAddressList.inc:106 ../lib/modules/pykotaGroup.inc:150 +#: ../lib/modules/pykotaGroup.inc:159 ../lib/modules/nisnetgroup.inc:114 +#: ../lib/modules/organizationalRole.inc:116 +#: ../lib/modules/windowsGroup.inc:237 ../lib/modules/groupOfNames.inc:128 +msgid "adminstrators" +msgstr "管理员" + +#: ../templates/config/mainmanage.php:394 +#: ../templates/config/mainmanage.php:430 +msgid "all" +msgstr "所有" + +#: ../templates/3rdParty/pla/htdocs/mass_update.php:112 +#: ../templates/3rdParty/pla/htdocs/update_confirm.php:95 +msgid "attribute deleted" +msgstr "属性已经删除" + +#: ../lib/modules/sudoRole.inc:148 +msgid "backupRootFileSystem" +msgstr "备份根文件系统" + +#: ../lib/modules/pykotaBillingCode.inc:103 +msgid "billingCode01" +msgstr "billingCode01" + +#: ../templates/3rdParty/pla/lib/functions.php:2298 +msgid "browse" +msgstr "浏览" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +#: ../templates/3rdParty/pla/htdocs/import.php:48 +msgid "bytes" +msgstr "子节" + +#: ../templates/schema/schema.php:220 +msgid "character" +msgstr "字符" + +#: ../templates/schema/schema.php:219 +msgid "characters" +msgstr "字符" + +#: ../lib/modules/freeRadius.inc:179 +msgid "company.com" +msgstr "company.com" + +#: ../templates/3rdParty/pla/lib/PageRender.php:619 +#: ../templates/3rdParty/pla/lib/PageRender.php:988 +msgid "confirm" +msgstr "确认" + +#: ../help/help.inc:82 +msgid "dc=yourcompany,dc=com" +msgstr "dc=yourcompany,dc=com" + +#: ../templates/config/mainmanage.php:429 ../lib/modules/ppolicyUser.inc:122 +msgid "default" +msgstr "缺省" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:205 +msgid "delete" +msgstr "删除" + +#: ../templates/3rdParty/pla/lib/PageRender.php:677 +msgid "delete attribute" +msgstr "删除属性" + +#: ../lib/modules/sambaSamAccount.inc:1543 +#: ../lib/modules/sambaSamAccount.inc:1952 ../lib/modules/zarafaUser.inc:619 +#: ../lib/modules/zarafaUser.inc:1285 ../lib/modules/zarafaUser.inc:1326 +msgid "disabled" +msgstr "关闭" + +#: ../lib/modules/sambaSamAccount.inc:1554 +#: ../lib/modules/sambaSamAccount.inc:1963 +msgid "disconnect" +msgstr "中断连接" + +#: ../lib/modules/windowsUser.inc:468 ../lib/modules/windowsGroup.inc:245 +msgid "domain" +msgstr "域" + +#: ../templates/3rdParty/pla/lib/PageRender.php:664 +msgid "download value" +msgstr "下载值" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:206 +msgid "edit" +msgstr "编辑" + +#: ../lib/modules/zarafaUser.inc:619 ../lib/modules/zarafaUser.inc:1280 +#: ../lib/modules/zarafaUser.inc:1326 +msgid "enabled" +msgstr "使能" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:481 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:307 +msgid "export" +msgstr "导出" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:123 +msgid "false" +msgstr "失败" + +#: ../lib/modules/ppolicy.inc:37 +msgid "force" +msgstr "强制" + +#: ../lib/modules/sambaSamAccount.inc:1562 +#: ../lib/modules/sambaSamAccount.inc:1971 +msgid "from any client" +msgstr "从任何客户端" + +#: ../lib/modules/sambaSamAccount.inc:1563 +#: ../lib/modules/sambaSamAccount.inc:1972 +msgid "from previous client only" +msgstr "仅从以前的客户端" + +#: ../lib/modules/posixAccount.inc:306 ../lib/modules/posixAccount.inc:366 +#: ../lib/modules/nisnetgroup.inc:128 ../lib/modules/groupOfNamesUser.inc:73 +msgid "group01,group02" +msgstr "group01,group02" + +#: ../lib/modules/freeRadius.inc:187 +msgid "group01;group02" +msgstr "group01;group02" + +#: ../lib/modules/zarafaDynamicGroup.inc:132 +#: ../lib/modules/zarafaGroup.inc:164 +msgid "group1@company.com,group2@company.com" +msgstr "group1@company.com,group2@company.com" + +#: ../lib/modules/zarafaDynamicGroup.inc:126 +#: ../lib/modules/zarafaGroup.inc:172 ../lib/modules/windowsGroup.inc:221 +msgid "group@company.com" +msgstr "groupr@company.com" + +#: ../templates/3rdParty/pla/lib/PageRender.php:471 +msgid "hint" +msgstr "提示" + +#: ../lib/modules/quota.inc:198 ../lib/modules/quota.inc:200 +msgid "hours" +msgstr "小时" + +#: ../lib/modules/windowsUser.inc:376 ../lib/modules/windowsUser.inc:382 +#: ../lib/modules/inetOrgPerson.inc:480 +msgid "http://www.company.com" +msgstr "http://www.company.com" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:294 +msgid "import" +msgstr "导入" + +#: ../lib/modules/sambaSamAccount.inc:1547 +#: ../lib/modules/sambaSamAccount.inc:1956 +msgid "input off, notify off" +msgstr "输入关,提醒关" + +#: ../lib/modules/sambaSamAccount.inc:1546 +#: ../lib/modules/sambaSamAccount.inc:1955 +msgid "input off, notify on" +msgstr "输入关,提醒开" + +#: ../lib/modules/sambaSamAccount.inc:1545 +#: ../lib/modules/sambaSamAccount.inc:1954 +msgid "input on, notify off" +msgstr "输入开,提醒关" + +#: ../lib/modules/sambaSamAccount.inc:1544 +#: ../lib/modules/sambaSamAccount.inc:1953 +msgid "input on, notify on" +msgstr "输入开,提醒开" + +#: ../help/help.inc:64 +msgid "" +"ldap://localhost:389 connects to localhost using a standard LDAP connection " +"on port 389" +msgstr "ldap://localhost:389 表示使用标准的LDAP连接端口389连接到localhost." + +#: ../help/help.inc:66 +msgid "" +"ldaps://ldap.domain.com connects to ldap.domain.com using an encrypted LDAP " +"connection." +msgstr "连接到ldap.domain.com的ldaps://ldap.domain.com连接使用加密的LDAP连接." + +#: ../templates/3rdParty/pla/lib/QueryRender.php:100 +msgid "list" +msgstr "列表" + +#: ../templates/3rdParty/pla/lib/config_default.php:494 +#: ../templates/3rdParty/pla/lib/ds.php:318 +#: ../templates/3rdParty/pla/lib/HTMLTree.php:529 +msgid "login" +msgstr "登录" + +#: ../lib/modules/posixAccount.inc:391 +msgid "machines" +msgstr "机器" + +#: ../lib/modules/inetLocalMailRecipient.inc:114 +msgid "mail.yourdomain.org" +msgstr "mail.yourdomain.org" + +#: ../lib/modules/sambaSamAccount.inc:416 +#: ../lib/modules/sambaSamAccount.inc:540 +msgid "mydomain" +msgstr "我的域" + +#: ../lib/modules/sambaSamAccount.inc:473 +msgid "mygroup" +msgstr "我的组" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:504 +msgid "new" +msgstr "新" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:454 +#: ../lib/modules/zarafaDynamicGroup.inc:457 +#: ../lib/modules/zarafaContact.inc:568 ../lib/modules/zarafaGroup.inc:651 +#: ../lib/modules/zarafaGroup.inc:658 ../lib/modules/zarafaGroup.inc:661 +#: ../lib/modules/zarafaAddressList.inc:336 +#: ../lib/modules/zarafaAddressList.inc:339 +#: ../lib/modules/sambaSamAccount.inc:584 +#: ../lib/modules/sambaSamAccount.inc:1920 +#: ../lib/modules/sambaSamAccount.inc:1928 +#: ../lib/modules/sambaSamAccount.inc:1938 +#: ../lib/modules/sambaSamAccount.inc:1943 +#: ../lib/modules/sambaSamAccount.inc:1948 ../lib/modules/zarafaUser.inc:602 +#: ../lib/modules/zarafaUser.inc:1238 ../lib/modules/zarafaUser.inc:1253 +#: ../lib/modules/zarafaUser.inc:1264 ../lib/modules/zarafaUser.inc:1270 +#: ../lib/modules/windowsUser.inc:388 ../lib/modules/windowsUser.inc:389 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:396 +#: ../lib/modules/windowsUser.inc:397 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:404 ../lib/modules/windowsUser.inc:405 +#: ../lib/modules/windowsUser.inc:406 ../lib/modules/windowsUser.inc:412 +#: ../lib/modules/windowsUser.inc:413 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:1177 ../lib/modules/windowsUser.inc:1615 +#: ../lib/modules/windowsUser.inc:1620 ../lib/modules/windowsUser.inc:1625 +#: ../lib/modules/windowsUser.inc:1630 ../lib/modules/ppolicy.inc:35 +#: ../lib/modules/ppolicy.inc:481 ../lib/modules/ppolicy.inc:491 +#: ../lib/modules/ppolicy.inc:496 ../lib/modules/ppolicy.inc:503 +#: ../lib/modules/ppolicy.inc:506 ../lib/modules/generalInformation.inc:100 +#: ../lib/modules/zarafaServer.inc:358 ../lib/modules/customFields.inc:2890 +#: ../lib/modules/fixed_ip.inc:752 +msgid "no" +msgstr "否" + +#: ../templates/3rdParty/pla/lib/functions.php:1902 +msgid "no description available" +msgstr "没有可用的描述" + +#: ../templates/3rdParty/pla/htdocs/entry_chooser.php:68 +msgid "no entries" +msgstr "没有条目" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:84 +msgid "no new attributes available for this entry" +msgstr "本条目没有新的可用属性" + +#: ../templates/3rdParty/pla/htdocs/add_attr_form.php:135 +msgid "no new binary attributes available for this entry" +msgstr "本条目没有新的可用二进制属性" + +#: ../templates/schema/schema.php:160 ../templates/schema/schema.php:229 +#: ../templates/schema/schema.php:240 ../templates/schema/schema.php:289 +#: ../templates/schema/schema.php:355 ../templates/schema/schema.php:370 +#: ../templates/schema/schema.php:404 ../templates/schema/schema.php:426 +#: ../templates/3rdParty/pla/lib/functions.php:2612 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1573 +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1581 +msgid "none" +msgstr "空" + +#: ../templates/3rdParty/pla/lib/PageRender.php:1109 +msgid "none, remove value" +msgstr "空,删除值" + +#: ../templates/schema/schema.php:216 +msgid "not applicable" +msgstr "不可用" + +#: ../templates/schema/schema.php:167 ../templates/schema/schema.php:172 +#: ../templates/schema/schema.php:177 ../templates/schema/schema.php:210 +msgid "not specified" +msgstr "未指定" + +#: ../help/help.inc:76 +msgid "" +"ou=People,dc=yourcompany,dc=com will read and store all accounts in this " +"subtree." +msgstr "ou=People,dc=yourcompany,dc=com 表示将会在此子树下读取和保存所有帐号" + +#: ../lib/modules/eduPerson.inc:202 ../lib/modules/eduPerson.inc:208 +#: ../lib/modules/eduPerson.inc:214 +msgid "ou=accounts,dc=yourdomain,dc=org" +msgstr "ou=accounts,dc=yourdomain,dc=org" + +#: ../lib/modules/posixAccount.inc:377 +msgid "pc01$" +msgstr "pc01$" + +#: ../lib/modules/posixAccount.inc:400 +msgid "pc01,Room 2.34" +msgstr "pc01,Room 2.34" + +#: ../lib/modules/hostObject.inc:93 +msgid "pc01,pc02" +msgstr "pc01,pc02" + +#: ../templates/3rdParty/pla/lib/functions.php:2000 +msgid "pixels" +msgstr "像素" + +#: ../lib/modules/pykotaPrinter.inc:148 +msgid "printer01" +msgstr "printer01" + +#: ../lib/modules/pykotaPrinter.inc:188 +msgid "printergroup1" +msgstr "printergroup1" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:54 +msgid "read only" +msgstr "只读" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:251 +msgid "refresh" +msgstr "刷新" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:2126 +msgid "rename" +msgstr "重命名" + +#: ../templates/3rdParty/pla/lib/PageRender.php:445 ../lib/html.inc:797 +#: ../lib/html.inc:1708 ../lib/html.inc:2285 +msgid "required" +msgstr "必选项" + +#: ../lib/modules/sambaSamAccount.inc:1555 +#: ../lib/modules/sambaSamAccount.inc:1964 +msgid "reset" +msgstr "复位" + +#: ../lib/modules/organizationalRoleUser.inc:73 +msgid "role01,role02" +msgstr "role01,role02" + +#: ../templates/3rdParty/pla/lib/HTMLTree.php:237 +msgid "search" +msgstr "搜索" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:472 +msgid "seconds" +msgstr "秒" + +#: ../lib/modules/mitKerberos.inc:244 ../lib/modules/asteriskAccount.inc:327 +#: ../lib/modules/posixGroup.inc:444 ../lib/modules/sambaSamAccount.inc:428 +#: ../lib/modules/posixAccount.inc:334 ../lib/modules/windowsUser.inc:274 +#: ../lib/modules/inetOrgPerson.inc:2088 +#: ../lib/modules/asteriskVoicemail.inc:167 +#: ../lib/modules/heimdalKerberos.inc:213 +msgid "secret" +msgstr "secret" + +#: ../templates/3rdParty/pla/lib/TemplateRender.php:1263 +msgid "select the rdn attribute" +msgstr "选择RDN属性" + +#: ../lib/modules/mitKerberos.inc:213 ../lib/modules/uidObject.inc:69 +#: ../lib/modules/posixAccount.inc:285 ../lib/modules/windowsUser.inc:266 +#: ../lib/modules/windowsUser.inc:451 ../lib/modules/windowsUser.inc:460 +#: ../lib/modules/pykotaUser.inc:192 ../lib/modules/pykotaUser.inc:210 +#: ../lib/modules/inetOrgPerson.inc:2079 +#: ../lib/modules/heimdalKerberos.inc:182 ../lib/modules/nisMailAlias.inc:110 +msgid "smiller" +msgstr "smiller" + +#: ../lib/modules/inetLocalMailRecipient.inc:102 +msgid "smiller@otherdomain.org" +msgstr "smiller@otherdomain.org" + +#: ../lib/modules/inetLocalMailRecipient.inc:108 +msgid "smiller@yourdomain.org" +msgstr "smiller@yourdomain.org" + +#: ../lib/modules/ldapPublicKey.inc:90 +msgid "ssh-dss 234234 user@host" +msgstr "ssh-dss 234234 user@host" + +#: ../templates/3rdParty/pla/lib/PageRender.php:882 +msgid "structural" +msgstr "结构" + +#: ../templates/3rdParty/pla/lib/QueryRender.php:102 +msgid "table" +msgstr "表格" + +#: ../lib/modules/asteriskExtension.inc:154 +msgid "test" +msgstr "测试" + +#: ../lib/modules/asteriskExtension.inc:174 +msgid "test-start" +msgstr "测试-开始" + +#: ../templates/3rdParty/pla/lib/AttributeFactory.php:122 +msgid "true" +msgstr "true" + +#: ../lib/modules/ipHost.inc:99 ../lib/modules/inetOrgPerson.inc:366 +#: ../lib/modules/aliasEntry.inc:71 ../lib/modules/qmailGroup.inc:281 +#: ../lib/modules/qmailGroup.inc:289 ../lib/modules/qmailGroup.inc:297 +msgid "uid=smiller,ou=People,dc=company,dc=com" +msgstr "uid=smiller,ou=People,dc=company,dc=com" + +#: ../templates/config/mainmanage.php:312 +msgid "use custom CA certificates" +msgstr "使用自定义 CA 数字证书" + +#: ../templates/config/mainmanage.php:309 +msgid "use system certificates" +msgstr "使用系统的数字证书" + +#: ../lib/modules/posixGroup.inc:452 +msgid "user01,user02,user03" +msgstr "user01,user02,user03" + +#: ../lib/modules/qmailUser.inc:273 ../lib/modules/qmailUser.inc:279 +#: ../lib/modules/qmailUser.inc:301 ../lib/modules/eduPerson.inc:163 +#: ../lib/modules/windowsUser.inc:352 ../lib/modules/windowsUser.inc:358 +#: ../lib/modules/pykotaUser.inc:220 ../lib/modules/inetOrgPerson.inc:462 +#: ../lib/modules/kolabSharedFolder.inc:183 +#: ../lib/modules/asteriskVoicemail.inc:180 ../lib/modules/qmailGroup.inc:339 +#: ../lib/modules/qmailGroup.inc:347 ../lib/modules/qmailGroup.inc:355 +msgid "user@company.com" +msgstr "user@company.com" + +#: ../lib/modules/posixAccount.inc:299 +msgid "users" +msgstr "用户" + +#: ../templates/3rdParty/pla/htdocs/delete_form.php:59 +msgid "view entries" +msgstr "查看条目" + +#: ../templates/3rdParty/pla/htdocs/compare_form.php:33 +msgid "with " +msgstr "和" + +#: ../templates/config/confmain.php:242 +#: ../lib/modules/zarafaDynamicGroup.inc:452 +#: ../lib/modules/zarafaDynamicGroup.inc:459 +#: ../lib/modules/zarafaContact.inc:570 ../lib/modules/zarafaGroup.inc:653 +#: ../lib/modules/zarafaGroup.inc:656 ../lib/modules/zarafaGroup.inc:663 +#: ../lib/modules/zarafaAddressList.inc:334 +#: ../lib/modules/zarafaAddressList.inc:341 +#: ../lib/modules/sambaSamAccount.inc:584 +#: ../lib/modules/sambaSamAccount.inc:1918 +#: ../lib/modules/sambaSamAccount.inc:1926 +#: ../lib/modules/sambaSamAccount.inc:1936 +#: ../lib/modules/sambaSamAccount.inc:1941 +#: ../lib/modules/sambaSamAccount.inc:1946 ../lib/modules/zarafaUser.inc:602 +#: ../lib/modules/zarafaUser.inc:1240 ../lib/modules/zarafaUser.inc:1256 +#: ../lib/modules/zarafaUser.inc:1266 ../lib/modules/zarafaUser.inc:1272 +#: ../lib/modules/windowsUser.inc:390 ../lib/modules/windowsUser.inc:398 +#: ../lib/modules/windowsUser.inc:406 ../lib/modules/windowsUser.inc:414 +#: ../lib/modules/windowsUser.inc:1177 ../lib/modules/windowsUser.inc:1520 +#: ../lib/modules/windowsUser.inc:1617 ../lib/modules/windowsUser.inc:1622 +#: ../lib/modules/windowsUser.inc:1627 ../lib/modules/windowsUser.inc:1632 +#: ../lib/modules/ppolicy.inc:36 ../lib/modules/ppolicy.inc:493 +#: ../lib/modules/ppolicy.inc:498 ../lib/modules/ppolicy.inc:501 +#: ../lib/modules/ppolicy.inc:508 ../lib/modules/inetOrgPerson.inc:536 +#: ../lib/modules/generalInformation.inc:102 +#: ../lib/modules/zarafaServer.inc:360 ../lib/modules/customFields.inc:2890 +#: ../lib/modules/fixed_ip.inc:750 +msgid "yes" +msgstr "是" + +#~ msgid "Mycity" +#~ msgstr "城市" + +#~ msgid "The IP address \"%s\" is invalid." +#~ msgstr "IP地址 %s非法 !" + +#~ msgid "" +#~ "You cannot add the Kolab group and shared folder extension at the same " +#~ "time." +#~ msgstr "你可以同时增加 Kolab组和共享文件夹扩展" + +#~ msgid "" +#~ "Each line represents one LDAP attribute. The options are separated by \"::" +#~ "\". The first option specifies if the attribute is mandatory. It can have " +#~ "the values \"optional\" and \"required\"." +#~ msgstr "" +#~ "每一行代表一个LDAP属性.选择用 \"::\"来分隔,第一个选项指定这是否是一个强制" +#~ "选项,它的值是\"可选\"或\"必选\"." + +#~ msgid "New Authorized Service" +#~ msgstr "新授权服务" + +#~ msgid "New IP address" +#~ msgstr "新IP地址" + +#~ msgid "New MAC address" +#~ msgstr "新MAC地址" + +#~ msgid "New SSH public key" +#~ msgstr "新SSH公钥" + +#~ msgid "Options four and five are used for input validation." +#~ msgstr "第四和第五选项用来检查输入的合法性." + +#~ msgid "" +#~ "Please enter the regular expression (e.g. \"/^[0-9a-zA-Z]+$/\") and an " +#~ "error message if the value does not match it. For a syntax description " +#~ "see here." +#~ msgstr "" +#~ "请输入正则表达式 (比如:\"/^[0-9a-zA-Z]+$/\") ,如果值不匹配,则会显示错误信" +#~ "息.语法的描述 看这里." + +#~ msgid "" +#~ "The second option is the LDAP attribute name and the third one is a " +#~ "descriptive label for it." +#~ msgstr "第二个选项是LDAP属性名,第三个选项是描述标签." + +#~ msgid "User ID" +#~ msgstr "用户ID" + +#~ msgid "Deleted account" +#~ msgstr "已删除的帐号" + +#~ msgid "Invalid account" +#~ msgstr "无效的帐号" + +#~ msgid "" +#~ "Password contains invalid characters. Valid characters are: a-z, A-Z, 0-9 " +#~ "and #*,.;:_-+!%&/|?{[()]}=@$ !" +#~ msgstr "" +#~ "密码包括无效字符,合法字符为a-z, A-Z, 0-9 和 #*,.;:_-+!%&/|?{[()]}=@$ !" + +#~ msgid "Sync Asterisk voicemail password with Unix password" +#~ msgstr "同步Asterisk语音邮件和Unix的密码" + +#~ msgid "Sync Kerberos password with Unix password" +#~ msgstr "同步Asterisk和Unix的密码" + +#~ msgid "The domain name needs to have at least 3 characters." +#~ msgstr "域名最少需要3个字符." + +#~ msgid "" +#~ "To disable login use /bin/false. The list of shells is read from lam/" +#~ "config/shells" +#~ msgstr "使用/bin/false来禁止用户登录.shells列表来自/lam/config/shells." + +#~ msgid "Unable to read sambaSID attribute." +#~ msgstr "读取sambaSID属性失败." + +#~ msgid "" +#~ "Unable to sync the time when the user can/must change his password " +#~ "because no domain was found." +#~ msgstr "用户可以/必须修改密码时,因域名未发现而不能同步时间." + +#~ msgid "" +#~ "You are using a capital letters. This can cause problems because Windows " +#~ "isn't case-sensitive." +#~ msgstr "您使用了大写字符,这会造成一些问题,因为windows大小写不敏感." + +#~ msgid "" +#~ "You are using a capital letters. This can cause problems because windows " +#~ "isn't case-sensitive." +#~ msgstr "您使用了大写字符,这会造成一些问题,因为windows大小写不敏感." + +#~ msgid "Country" +#~ msgstr "国家" + +#~ msgid "Country name is invalid!" +#~ msgstr "国家名称非法!" + +#~ msgid "Free/Busy interval" +#~ msgstr "空闲/忙碌 间隔" + +#~ msgid "Free/Busy interval must be a number!" +#~ msgstr "空闲/忙碌间隔必须是一个数字!" + +#~ msgid "Germany" +#~ msgstr "德国" + +#~ msgid "Mail quota must be a number!" +#~ msgstr "邮件限额必须是数字!" + +#~ msgid "" +#~ "The Cyrus mail quota for users in MBytes, leave blank for unlimited space." +#~ msgstr "用户Cyrus邮件限制(MB),留空意味着不限制." + +#~ msgid "" +#~ "This is the time limit (in days) for other users who want to check future " +#~ "appointments. If you leave this blank the default (60 days) will be set." +#~ msgstr "其它用户检查未来约会的天数.如果留空,默认值为60天." + +#~ msgid "YourCompany, Human Resources" +#~ msgstr "某某公司,人力资源部" + +#~ msgid "%s DHCP(s) found" +#~ msgstr "发现 %s DHCP" + +#~ msgid "%s NIS object(s) found" +#~ msgstr "找到 %s 个 NIS 对象" + +#~ msgid "%s address list(s) found" +#~ msgstr "找到 %s 个地址列表" + +#~ msgid "%s alias(es) found" +#~ msgstr "找到 %s 个別名" + +#~ msgid "%s automount entry(ies) found" +#~ msgstr "找到 %s 个自动挂接条目" + +#~ msgid "%s domain(s) found" +#~ msgstr "找到 %s 个域" + +#~ msgid "%s extension(s) found" +#~ msgstr "找到 %s 个扩展" + +#~ msgid "%s group(s) found" +#~ msgstr "找到 %s 个组" + +#~ msgid "%s host(s) found" +#~ msgstr "找到 %s 个主机" + +#~ msgid "%s object(s) found" +#~ msgstr "找到 %s 个对象" + +#~ msgid "%s policy(ies) found" +#~ msgstr "找到 %s 个策略" + +#~ msgid "%s sudo role(s) found" +#~ msgstr "找到 %s 个sudo角色" + +#~ msgid "%s user(s) found" +#~ msgstr "找到 %s 个用户" + +#~ msgid "Add phpGroupWare extension" +#~ msgstr "增加 phpGroupWare 扩展" + +#~ msgid "Delete DHCP(s)" +#~ msgstr "删除DHCP" + +#~ msgid "Delete host(s)" +#~ msgstr "删除主机" + +#~ msgid "Delete object" +#~ msgstr "删除对象" + +#~ msgid "Delete user(s)" +#~ msgstr "删除用户" + +#~ msgid "Here you can specify if the account is active or inactive." +#~ msgstr "这里可以指定用户的激活状态." + +#~ msgid "Host(s)" +#~ msgstr "主机" + +#~ msgid "" +#~ "If you set this to \"true\" then the phpGroupware extension will be added." +#~ msgstr "如果设为\"true\",则会增加 phpGroupWare 扩展." + +#~ msgid "" +#~ "In order to add these objectClass(es) to this entry, you must specify " +#~ "%s new attributes that this object class requires." +#~ msgstr "为把这些对象类加入到条目中,您必须指定%s 对象类需要的新属性" + +#~ msgid "Last login from" +#~ msgstr "上一次登录地" + +#~ msgid "No extension(s) found!" +#~ msgstr "没有发现扩展!" + +#~ msgid "Please enter \"active\" or \"inactive\"." +#~ msgstr "请输入 \"active\" 或 \"inactive\"." + +#~ msgid "Reenter new master password" +#~ msgstr "请重新输入管理密码" + +#~ msgid "Reenter profile password" +#~ msgstr "再次输入配置文件密码" + +#~ msgid "Remove phpGroupWare extension" +#~ msgstr "删除 phpGroupWare 扩展" + +#~ msgid "Run group(s)" +#~ msgstr "运行组" + +#~ msgid "SSH public key(s)" +#~ msgstr "SSH 公钥" + +#~ msgid "The password(s) were set to:" +#~ msgstr "密码被设置为:" + +#~ msgid "Unlock Samba account" +#~ msgstr "解锁Samba账号." + +#~ msgid "" +#~ "User name of the user who should be created. Valid characters are: a-z,A-" +#~ "Z,0-9, .-_. If user name is already used user name will be expanded with " +#~ "a number. The next free number will be used. Warning: Older systems have " +#~ "problems with user names longer than 8 characters. You can not log in to " +#~ "Windows if user name is longer than 16 characters." +#~ msgstr "" +#~ "将要建立的用户名,合法字符为:a-z,A-Z,,0-9.-_. 如果用户名已经存在,系统会在用" +#~ "户名后面增加一个数字.警告:超过8个字符的帐号在旧的系统中会产生问题,如果超过" +#~ "16个字符,无法登录Windows。" + +#~ msgid "User(s)" +#~ msgstr "用户" + +#~ msgid "active" +#~ msgstr "激活" + +#~ msgid "inactive" +#~ msgstr "停用" + +#~ msgid "(example: cn=MyNewPerson)" +#~ msgstr "(例如:cn=MyNewPerson)" + +#~ msgid "(hint: do not include \"ou=\")" +#~ msgstr "(提示:不要包含 \"ou=\")" + +#~ msgid "Container DN" +#~ msgstr "容器的DN" + +#~ msgid "Data field for RDN is empty!" +#~ msgstr "RDN数据文件是空的" + +#~ msgid "Next" +#~ msgstr "下一步" + +#~ msgid "Optional binary attributes" +#~ msgstr "可选二进制属性" + +#~ msgid "Organizational unit" +#~ msgstr "组织单元" + +#~ msgid "RDN" +#~ msgstr "RDN" + +#~ msgid "Really create this new OU?" +#~ msgstr "确认增加新的OU?" + +#~ msgid "Relative distinguished name" +#~ msgstr "相对区别名称(RDN)" + +#~ msgid "Search Scope" +#~ msgstr "搜索范围" + +#~ msgid "Specifies whether the user is an admin." +#~ msgstr "指定用户是否是一名管理员" + +#~ msgid "Step 1 of 2: Name and object class(es)" +#~ msgstr "步骤1/2:名称和对象类" + +#~ msgid "Step 2 of 2: Specify attributes and values" +#~ msgstr "步骤2/2:指定的属性和属性值" + +#~ msgid "" +#~ "You did not select any object classes for this object. Please go back and " +#~ "do so." +#~ msgstr "您没有为此对象选择对象类,请返回重新选择." + +#~ msgid "Adding attribute failed!" +#~ msgstr "增加属性失败!" + +#~ msgid "All following lines form the mail body." +#~ msgstr "邮件主体的所有行" + +#~ msgid "Choose a server for the home directory!" +#~ msgstr "请选择主目录所在服务器!" + +#~ msgid "Delete %s" +#~ msgstr "删除 %s" + +#~ msgid "Entry %s deleted successfully." +#~ msgstr "条目%s删除成功" + +#~ msgid "File upload failed!" +#~ msgstr "文件上传失败!" + +#~ msgid "Home directory server" +#~ msgstr "主目录服务器" + +#~ msgid "I am sure" +#~ msgstr "确认" + +#~ msgid "" +#~ "If you decide to send the password via mail then the mail template " +#~ "\"config/passwordMailTemplate.txt\" will be used." +#~ msgstr "" +#~ "如果您决定通过邮件发送密码,将会使用\"config/passwordMailTemplate.txt\"邮" +#~ "件模板。" + +#~ msgid "" +#~ "LAM can recursively delete this entry and all of its children. See below " +#~ "for a list of all the entries that this action will delete. Do you want " +#~ "to do this?" +#~ msgstr "" +#~ "LAM会递归删除本条目及所有子条目,下面列表中所有条目都会被删除,确定吗?" + +#~ msgid "" +#~ "Note: You will get an \"inappropriate matching\" error if you have not " +#~ "setup an EQUALITY rule on your LDAP server for this attribute." +#~ msgstr "" +#~ "注意:如果在LDAP中没有为这个发生设置EQUALITY规则,会产生\"inappropriate " +#~ "matching\"错误." + +#~ msgid "The first line is the subject." +#~ msgstr "第一行是对象。" + +#~ msgid "" +#~ "The mail text of all password mails. If empty the content of \"config/" +#~ "passwordMailTemplate.txt\" starting at the second line will be used." +#~ msgstr "" +#~ "密码邮件的文本.如果为空,将使用\"config/passwordMailTemplate.txt\"(从第二行" +#~ "开始)。" + +#~ msgid "" +#~ "The subject of all password mails. If empty the first line of \"config/" +#~ "passwordMailTemplate.txt\" will be used." +#~ msgstr "" +#~ "密码邮件标题,如果如空,将会使用\"config/passwordMailTemplate.txt\"的第一行." + +#~ msgid "There are new required attributes which need to be set." +#~ msgstr "必须设置的新属性" + +#~ msgid "Using template:" +#~ msgstr "使用模板:" + +#~ msgid "Was unable to modify attribtues from DN: %s." +#~ msgstr "无法修改DN: %s的属性" + +#~ msgid "You have to activate the \"I am sure\" checkbox." +#~ msgstr "您必须激活\"我确认\"选项。" + +#~ msgid "jpegPhoto contains errors" +#~ msgstr "jpeg照片有误" + +#~ msgid "This module requires the PHP ssh2 extension." +#~ msgstr "本模块需要PHP ssh2 扩展支持" + +#~ msgid "Timeout while executing lamdaemon commands!" +#~ msgstr "运行lamdaemon命令超时!" + +#~ msgid "Cache timeout is invalid!" +#~ msgstr "缓存超时非法" + +#~ msgid "Deleting. Please stand by ..." +#~ msgstr "正在删除,请稍等..." + +#~ msgid "" +#~ "Here is a list of possible columns. The red columns must be included in " +#~ "the CSV file and filled with data for all accounts." +#~ msgstr "" +#~ "这是可能的列的列表,红色的列必须包含在CSV文件中,在帐号中属于必填项目." + +#~ msgid "LDAP" +#~ msgstr "LDAP" + +#~ msgid "Text for user PDF" +#~ msgstr "用户PDF的文本" + +#~ msgid "" +#~ "Unable to load available languages. Setting English as default language. " +#~ "For further instructions please contact the Admin of this site." +#~ msgstr "" +#~ "无法调入语言配置文件,将使用英语做为缺省语言,请联系网络管理员获取进一步的信" +#~ "息." + +#~ msgid "" +#~ "Attention: The DHCP service needs to be restarted after changes in DDNS." +#~ msgstr "注意:如果DDNS发生改变,DHCP服务需要重启." + +#~ msgid "Back to Login" +#~ msgstr "返回到登录界面" + +#~ msgid "Delegates has invalid format!" +#~ msgstr "代理(Delegates)格式错误" + +#~ msgid "Delete Kolab account" +#~ msgstr "删除Kolab帐号" + +#~ msgid "Fixed IP" +#~ msgstr "固定IP" + +#~ msgid "Please select your user name and enter your password to log in." +#~ msgstr "请输入用户名和密码登录." + +#~ msgid "The domain name needs to be shorter than 15 characters." +#~ msgstr "域名的长度不能超过15个字符." + +#~ msgid "" +#~ "This is an example how it would look in your spreadsheet program before " +#~ "you convert to CSV:" +#~ msgstr "电子表格未存成CSV格式的样例:" + +#~ msgid "This value can only be \\\"true\\\" or \\\"false\\\"!" +#~ msgstr "此值只能设为 \\\"true\\\" 或 \\\"false\\\"!" + +#~ msgid "Back to OU-Editor" +#~ msgstr "返回到OU编辑器" + +#~ msgid "Back to PDF Editor" +#~ msgstr "返回到PDF编辑器" + +#~ msgid "Back to profile editor" +#~ msgstr "返回到配置文件编辑器" + +#~ msgid "Delete operation canceled." +#~ msgstr "取消删除动作" + +#~ msgid "Link to login page for this self service profile" +#~ msgstr "自助服务登录界面." + +#~ msgid "Mode" +#~ msgstr "模式" + +#~ msgid "" +#~ "Please enter a comma separated list of host names where this user is " +#~ "allowed to log in. If you enable host restrictions for your servers then " +#~ "\"*\" means every host and an empty field means no host." +#~ msgstr "" +#~ "请输入允许用户登录的主机名(以逗号分隔).如果已经启用主机限制,\"*\"号代表所" +#~ "有主机,留空意味没有主机." + +#~ msgid "" +#~ "Please install the SSH2 module for PHP and activate it in your php.ini!" +#~ msgstr "请在PHP中安装SSH2模块并在php.ini中启用!" + +#~ msgid "SSH2 module" +#~ msgstr "SSH2模块" + +#~ msgid "SSH2 module is installed." +#~ msgstr "SSH2模块已安装." + +#~ msgid "Scope" +#~ msgstr "范围" + +#~ msgid "Sudo is not setup correctly!" +#~ msgstr "Sudo的设置不正确 !" + +#~ msgid "Unix workstations" +#~ msgstr "unix工作站" + +#~ msgid "Unix workstations are invalid!" +#~ msgstr "unix工作站无效!" + +#~ msgid "You have been logged off from LDAP Account Manager." +#~ msgstr "您已经从系统退出" + +#~ msgid "Add Samba 3 account" +#~ msgstr "增加Samba3帐号" + +#~ msgid "Change suffix" +#~ msgstr "更改后缀" + +#~ msgid "Delete PDF structure" +#~ msgstr "删除PDF结构" + +#~ msgid "Donate" +#~ msgstr "捐赠" + +#~ msgid "Please enter the same password in both password-fields." +#~ msgstr "请在两个密码输入框输入相同的密码." + +#~ msgid "Please select your account type:" +#~ msgstr "请选择帐号类型:" + +#~ msgid "Update attribute \"sambaPwdCanChange\" on password change" +#~ msgstr "在密码修改时修改 \"sambaPwdCanChange\"属性" + +#~ msgid "Update attribute \"sambaPwdMustChange\" on password change" +#~ msgstr "在密码修改时修改 \"sambaPwdMustChange\"属性" + +#~ msgid "User can/must change password" +#~ msgstr "用户可以/必须修改密码" + +#~ msgid "The net mask was invalid and was corrected." +#~ msgstr "网络掩码非法,已经进行修正." + +#~ msgid "The netmask was set." +#~ msgstr "网络掩码已经设置." + +#~ msgid "Drive letter assigned on windows workstations as homedirectory." +#~ msgstr "Windows分配给用户个人目录的网络驱动器号." + +#~ msgid "" +#~ "File name and path relative to the netlogon-share which should be " +#~ "executed on logon. $user and $group are replaced with user and group name." +#~ msgstr "" +#~ "用户登录时自行运行的文件名和网络登录共享相对路径,$user和$group会被用户名和" +#~ "组名替换." + +#~ msgid "If checked account will be deactivated. (Setting D-Flag)" +#~ msgstr "如果选中,帐号会停用(设定D标志)" + +#~ msgid "" +#~ "If you want to create domain administrators or other special users use " +#~ "this option." +#~ msgstr "使用这个选项,建立域管理员或其它特殊帐号." + +#~ msgid "Please enter a valid special user name." +#~ msgstr "请输入有效的特殊用户名." + +#~ msgid "Samba 2" +#~ msgstr "Samba 2" + +#~ msgid "This is the RID of the user's primary Windows group." +#~ msgstr "用户主Windows组的RID号." + +#~ msgid "Windows group RID" +#~ msgstr "Windows组的RID" + +#~ msgid "Account type selection" +#~ msgstr "帐号类型选择" + +#~ msgid "Adding of a fixed IP failed because of errors." +#~ msgstr "因为发生了错误致使增加固定IP失败" + +#~ msgid "Adds input fields for a new fixed IP address." +#~ msgstr "为新IP地址增加新输入域" + +#~ msgid "Delete IP" +#~ msgstr "删除IP" + +#~ msgid "Edit account types" +#~ msgstr "编辑帐号类型" + +#~ msgid "Edit modules" +#~ msgstr "编辑模块" + +#~ msgid "Account lists - Filters" +#~ msgstr "帐号清单 - 过滤器" + +#~ msgid "Configuration wizard" +#~ msgstr "配置向导" + +#~ msgid "" +#~ "Host name contains invalid characters. Valid characters are: a-z, A-Z, " +#~ "0-9 and .-_ ! Host name must end with $ !" +#~ msgstr "" +#~ "主机名包含无效字符,可用字符为 a-z, A-Z, 0-9 和 .-_ ! 主机名必须以$结束!" + +#~ msgid "Account suffix" +#~ msgstr "帐号后缀" + +#~ msgid "" +#~ "LDAP DN (e.g. dc=company,dc=com) of accounts. This is used to find " +#~ "possible delegation candidates." +#~ msgstr "帐号的LDAP DN(比如: dc=complay,dc=com).用来查找可能的委托候选人." + +#~ msgid "Create PDF for all aliases" +#~ msgstr "为所有别名建立PDF" + +#~ msgid "Create PDF for all domains" +#~ msgstr "为所有域建立PDF" + +#~ msgid "Create PDF for all hosts" +#~ msgstr "为所有主机建立PDF" + +#~ msgid "Create PDF for all objects" +#~ msgstr "为所有对象建立PDF" + +#~ msgid "Create PDF for selected alias(es)" +#~ msgstr "为所选的别名建立PDF" + +#~ msgid "Create PDF for selected domain(s)" +#~ msgstr "为所选的域建立PDF" + +#~ msgid "Create PDF for selected group(s)" +#~ msgstr "为所选的组建立PDF" + +#~ msgid "Create PDF for selected object(s)" +#~ msgstr "为所选的对象建立PDF" + +#~ msgid "Create PDF for selected user(s)" +#~ msgstr "为所选的用户建立PDF" + +#~ msgid "Add Neofonie attributes" +#~ msgstr "新增Neofonie属性" + +#~ msgid "Add section or static text" +#~ msgstr "增加节或静态文本" + +#~ msgid "Available PDF fields" +#~ msgstr "有效的PDF栏目" + +#~ msgid "Birth date" +#~ msgstr "生日" + +#~ msgid "ComBots IDs" +#~ msgstr "ComBots ID号" + +#~ msgid "Date when the employee was initially employed." +#~ msgstr "雇员被雇用日期" + +#~ msgid "Employee skills" +#~ msgstr "雇员技能" + +#~ msgid "Employment date" +#~ msgstr "雇用日期" + +#~ msgid "Group 1, Group 2" +#~ msgstr "组1,组2" + +#~ msgid "IT" +#~ msgstr "IT" + +#~ msgid "Job position of this user (e.g. developer, temp, ...)." +#~ msgstr "用户岗位(比如:开发人员,临时工,...)" + +#~ msgid "List of ComBots IDs." +#~ msgstr "ComBots ID号列表" + +#~ msgid "List of Jabber IDs." +#~ msgstr "Jabber ID号列表." + +#~ msgid "List of project groups of this user." +#~ msgstr "用户工程组列表" + +#~ msgid "List of projects the user is working on." +#~ msgstr "用户当前工程列表" + +#~ msgid "List of special skills that the user has." +#~ msgstr "用户技能列表" + +#~ msgid "Page settings" +#~ msgstr "页面设置" + +#~ msgid "Please enter a valid date (format DD.MM.YYYY)!" +#~ msgstr "请输入合法的日期,格式为(DD-MM-YYYY)." + +#~ msgid "Project 1, Project 2" +#~ msgstr "工程1,工程2" + +#~ msgid "Project groups" +#~ msgstr "工程组" + +#~ msgid "Quake ID" +#~ msgstr "Quake ID号" + +#~ msgid "The department where the employee is employed." +#~ msgstr "雇员所在部门" + +#~ msgid "This is the user's Quake ID." +#~ msgstr "这是用的Quake ID." + +#~ msgid "This is the user's login name for the wiki." +#~ msgstr "这是wiki系统中用户的登录名." + +#~ msgid "required for Samba 3 accounts" +#~ msgstr "Samba3帐号的必选项" + +#~ msgid "Apply" +#~ msgstr "应用" + +#~ msgid "Create account" +#~ msgstr "建立帐号" + +#~ msgid "Max list entries is invalid!" +#~ msgstr "条目最大数非法!" + +#~ msgid "Save account" +#~ msgstr "保存帐号" + +#~ msgid "This saves your account to the LDAP database." +#~ msgstr "把您的帐号保存到LDAP数据库中." + +#~ msgid "Edit logon hours" +#~ msgstr "编辑可登录时间" + +#~ msgid "Here you can define to deactivate accounts after bad logon attempts." +#~ msgstr "您可以设定多少次错误登录后锁定该帐号." + +#~ msgid "Please select page:" +#~ msgstr "请选择页面:" diff --git a/lam/locale/zh_TW/LC_MESSAGES/messages.mo b/lam/locale/zh_TW/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..37899bf9 Binary files /dev/null and b/lam/locale/zh_TW/LC_MESSAGES/messages.mo differ diff --git a/lam/locale/zh_TW/LC_MESSAGES/messages.po b/lam/locale/zh_TW/LC_MESSAGES/messages.po new file mode 100644 index 00000000..b8d1c64a --- /dev/null +++ b/lam/locale/zh_TW/LC_MESSAGES/messages.po @@ -0,0 +1,6888 @@ +# $Id$ +# +# +# LDAP Account Manager +# +msgid "" +msgstr "" +"Project-Id-Version: LAM 2.3.0\n" +"Report-Msgid-Bugs-To: post@rolandgruber.de\n" +"POT-Creation-Date: 2004-01-14 17:45+0200\n" +"PO-Revision-Date: 2008-04-18 19:40+0800\n" +"Last-Translator: 洪志明 \n" +"Language-Team: Chinese (Traditional) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Country: TAIWAN\n" + +#: ../lib/modules/posixAccount.inc:385 +msgid "$user and $group are replaced with user name or primary group name." +msgstr "$user 和 $group 會被使用者名稱及主要群組名稱所取代" + +#: ../lib/types/mailAlias.inc:108 +#, php-format +msgid "%s alias(es) found" +msgstr "找到 %s 個使用者別名" + +#: ../lib/types/smbDomain.inc:108 +#, php-format +msgid "%s domain(s) found" +msgstr "找到 %s 個 Samba 網域" + +#: ../lib/types/gon.inc:110 +#: ../lib/types/group.inc:122 +#, php-format +msgid "%s group(s) found" +msgstr "找到 %s 個群組" + +#: ../lib/types/host.inc:112 +#, php-format +msgid "%s host(s) found" +msgstr "找到 %s 個主機帳號" + +#: ../lib/lists.inc:103 +#, php-format +msgid "%s object(s) found" +msgstr "找到 %s 個物件" + +#: ../lib/types/user.inc:126 +#, php-format +msgid "%s user(s) found" +msgstr "找到 %s 位使用者" + +#: ../templates/tree/templates/creation/custom.php:63 +msgid "(example: cn=MyNewPerson)" +msgstr "(例如:cn=MyNewPerson)" + +#: ../templates/tree/templates/creation/new_ou_template.php:60 +msgid "(hint: do not include \"ou=\")" +msgstr "(提示:不包含 \"ou=\")" + +#: ../templates/tree/add_attr_form.php:136 +msgid "(no new attributes available for this entry)" +msgstr "(這個項目沒有新的屬性)" + +#: ../templates/tree/add_attr_form.php:174 +msgid "(no new binary attributes available for this entry)" +msgstr "(這個項目沒有新的binary屬性)" + +#: ../lib/modules/posixAccount.inc:232 +msgid "/home/smiller" +msgstr "/home/smiller" + +#: ../lib/modules/inetOrgPerson.inc:265 +msgid "123-123-1234" +msgstr "123-123-1234" + +#: ../lib/modules/inetOrgPerson.inc:277 +msgid "123-123-1235" +msgstr "123-123-1235" + +#: ../lib/modules/inetOrgPerson.inc:283 +msgid "123-123-1236" +msgstr "123-123-1236" + +#: ../lib/modules/inetOrgPerson.inc:271 +msgid "123-124-1234" +msgstr "123-124-1234" + +#: ../lib/modules/inetOrgPerson.inc:259 +msgid "12345" +msgstr "12345" + +#: ../templates/massBuildAccounts.php:117 +msgid "A required column is missing in your CSV file." +msgstr "您的CSV檔中缺少一個必要欄位." + +#: ../lib/modules/kolabUser.inc:154 +msgid "A user may define who is allowed to act on behalf of herself. This property is checked when using the Kolab smtp daemon (Postfix) to send emails." +msgstr "使用者可以同意由某人來代表自已, 在 Kolab smtp 伺服器(Postfix)寄出電子郵件時會檢查這個屬性." + +#: ../lib/modules/sambaSamAccount.inc:494 +msgid "Abu Dhabi, Muscat, Baku" +msgstr "阿布達比, 馬斯喀特, 巴庫" + +#: ../templates/config/confmain.php:201 +msgid "Access level" +msgstr "存取等級" + +#: ../lib/modules/account.inc:58 +msgid "Account" +msgstr "帳號" + +#: ../templates/massBuildAccounts.php:170 +#: ../lib/modules/account.inc:136 +#: ../lib/modules/ieee802device.inc:89 +#: ../lib/modules/posixGroup.inc:477 +#: ../lib/modules/posixGroup.inc:481 +#: ../lib/modules/posixGroup.inc:482 +#: ../lib/modules/quota.inc:46 +#: ../lib/modules/quota.inc:48 +#: ../lib/modules/quota.inc:50 +#: ../lib/modules/quota.inc:52 +#: ../lib/modules/quota.inc:54 +#: ../lib/modules/quota.inc:56 +#: ../lib/modules/quota.inc:57 +#: ../lib/modules/sambaAccount.inc:63 +#: ../lib/modules/sambaAccount.inc:66 +#: ../lib/modules/sambaAccount.inc:69 +#: ../lib/modules/sambaAccount.inc:71 +#: ../lib/modules/sambaAccount.inc:73 +#: ../lib/modules/sambaAccount.inc:76 +#: ../lib/modules/sambaAccount.inc:77 +#: ../lib/modules/sambaAccount.inc:79 +#: ../lib/modules/sambaAccount.inc:80 +#: ../lib/modules/sambaAccount.inc:81 +#: ../lib/modules/sambaAccount.inc:82 +#: ../lib/modules/sambaAccount.inc:83 +#: ../lib/modules/sambaAccount.inc:84 +#: ../lib/modules/sambaAccount.inc:85 +#: ../lib/modules/sambaAccount.inc:86 +#: ../lib/modules/sambaAccount.inc:87 +#: ../lib/modules/sambaSamAccount.inc:83 +#: ../lib/modules/sambaSamAccount.inc:86 +#: ../lib/modules/sambaSamAccount.inc:89 +#: ../lib/modules/sambaSamAccount.inc:91 +#: ../lib/modules/sambaSamAccount.inc:94 +#: ../lib/modules/sambaSamAccount.inc:95 +#: ../lib/modules/sambaSamAccount.inc:96 +#: ../lib/modules/sambaSamAccount.inc:97 +#: ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:102 +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:105 +#: ../lib/modules/sambaSamAccount.inc:106 +#: ../lib/modules/sambaSamAccount.inc:107 +#: ../lib/modules/sambaSamAccount.inc:109 +#: ../lib/modules/sambaSamAccount.inc:110 +#: ../lib/modules/posixAccount.inc:65 +#: ../lib/modules/posixAccount.inc:70 +#: ../lib/modules/posixAccount.inc:74 +#: ../lib/modules/posixAccount.inc:82 +#: ../lib/modules/posixAccount.inc:83 +#: ../lib/modules/posixAccount.inc:84 +#: ../lib/modules/posixAccount.inc:85 +#: ../lib/modules/posixAccount.inc:86 +#: ../lib/modules/posixAccount.inc:87 +#: ../lib/modules/posixAccount.inc:89 +#: ../lib/modules/posixAccount.inc:90 +#: ../lib/modules/posixAccount.inc:91 +#: ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/kolabUser.inc:246 +#: ../lib/modules/kolabUser.inc:248 +#: ../lib/modules/kolabUser.inc:250 +#: ../lib/modules/kolabUser.inc:252 +#: ../lib/modules/kolabUser.inc:254 +#: ../lib/modules/kolabUser.inc:256 +#: ../lib/modules/kolabUser.inc:258 +#: ../lib/modules/phpGroupwareUser.inc:124 +#: ../lib/modules/phpGroupwareUser.inc:125 +#: ../lib/modules/sambaGroupMapping.inc:398 +#: ../lib/modules/sambaGroupMapping.inc:399 +#: ../lib/modules/shadowAccount.inc:47 +#: ../lib/modules/shadowAccount.inc:49 +#: ../lib/modules/shadowAccount.inc:51 +#: ../lib/modules/shadowAccount.inc:53 +#: ../lib/modules/shadowAccount.inc:55 +#: ../lib/modules/shadowAccount.inc:56 +#: ../lib/modules/sambaDomain.inc:189 +#: ../lib/modules/sambaDomain.inc:191 +#: ../lib/modules/sambaDomain.inc:193 +#: ../lib/modules/sambaDomain.inc:195 +#: ../lib/modules/sambaDomain.inc:197 +#: ../lib/modules/sambaDomain.inc:199 +#: ../lib/modules/inetOrgPerson.inc:72 +#: ../lib/modules/inetOrgPerson.inc:74 +#: ../lib/modules/inetOrgPerson.inc:76 +#: ../lib/modules/inetOrgPerson.inc:78 +#: ../lib/modules/inetOrgPerson.inc:80 +#: ../lib/modules/inetOrgPerson.inc:82 +#: ../lib/modules/inetOrgPerson.inc:84 +#: ../lib/modules/inetOrgPerson.inc:86 +#: ../lib/modules/inetOrgPerson.inc:88 +#: ../lib/modules/inetOrgPerson.inc:90 +#: ../lib/modules/inetOrgPerson.inc:92 +#: ../lib/modules/inetOrgPerson.inc:94 +#: ../lib/modules/inetOrgPerson.inc:96 +#: ../lib/modules/inetOrgPerson.inc:98 +#: ../lib/modules/inetOrgPerson.inc:100 +#: ../lib/modules/inetOrgPerson.inc:101 +#: ../lib/modules/inetOrgPerson.inc:102 +#: ../lib/modules/inetOrgPerson.inc:105 +#: ../lib/modules/inetOrgPerson.inc:108 +#: ../lib/modules/inetLocalMailRecipient.inc:125 +#: ../lib/modules/inetLocalMailRecipient.inc:127 +#: ../lib/modules/inetLocalMailRecipient.inc:129 +#: ../lib/modules/nisMailAlias.inc:106 +#: ../lib/modules/nisMailAlias.inc:108 +#, php-format +msgid "Account %s:" +msgstr "帳號 %s:" + +#: ../templates/masscreate.php:86 +msgid "Account creation via file upload" +msgstr "使用上傳檔案建立帳號" + +#: ../lib/modules/posixAccount.inc:392 +msgid "Account deactivated" +msgstr "帳號已停用" + +#: ../templates/lists/changePassword.php:120 +msgid "Account details" +msgstr "帳號細節" + +#: ../lib/modules/sambaSamAccount.inc:277 +#: ../lib/modules/sambaSamAccount.inc:397 +#: ../lib/modules/sambaSamAccount.inc:1028 +#: ../lib/modules/sambaSamAccount.inc:1261 +#: ../lib/modules/sambaSamAccount.inc:1451 +#: ../lib/modules/phpGroupwareUser.inc:82 +#: ../lib/modules/phpGroupwareUser.inc:111 +#: ../lib/modules/phpGroupwareUser.inc:142 +#: ../lib/modules/phpGroupwareUser.inc:225 +#: ../lib/modules/phpGroupwareUser.inc:378 +#: ../lib/modules/shadowAccount.inc:109 +#: ../lib/modules/shadowAccount.inc:174 +#: ../lib/modules/shadowAccount.inc:206 +#: ../lib/modules/shadowAccount.inc:294 +#: ../lib/modules/shadowAccount.inc:339 +msgid "Account expiration date" +msgstr "帳號過期日期" + +#: ../lib/modules/shadowAccount.inc:367 +msgid "Account inactive" +msgstr "帳號停用(inactive)" + +#: ../lib/modules/sambaAccount.inc:142 +#: ../lib/modules/sambaAccount.inc:259 +#: ../lib/modules/sambaAccount.inc:371 +#: ../lib/modules/sambaAccount.inc:374 +#: ../lib/modules/sambaAccount.inc:762 +#: ../lib/modules/sambaSamAccount.inc:220 +#: ../lib/modules/sambaSamAccount.inc:226 +#: ../lib/modules/sambaSamAccount.inc:375 +#: ../lib/modules/sambaSamAccount.inc:971 +#: ../lib/modules/sambaSamAccount.inc:1439 +msgid "Account is deactivated" +msgstr "帳號停用" + +#: ../lib/modules/sambaSamAccount.inc:223 +#: ../lib/modules/sambaSamAccount.inc:979 +msgid "Account is locked" +msgstr "帳號鎖住" + +#: ../help/help.inc:139 +msgid "Account lists - Filters" +msgstr "帳號清單 - 搜尋過濾器" + +#: ../templates/delete.php:94 +msgid "Account name:" +msgstr "帳號名稱" + +#: ../lib/modules/phpGroupwareUser.inc:78 +#: ../lib/modules/phpGroupwareUser.inc:104 +#: ../lib/modules/phpGroupwareUser.inc:149 +#: ../lib/modules/phpGroupwareUser.inc:373 +msgid "Account status" +msgstr "帳號狀態" + +#: ../lib/modules/kolabUser.inc:134 +#: ../lib/modules/kolabUser.inc:141 +msgid "Account suffix" +msgstr "帳號尾綴字元" + +#: ../templates/pdfedit/pdfdelete.php:87 +#: ../lib/modules/groupOfNames.inc:225 +msgid "Account type" +msgstr "帳號類型" + +#: ../templates/config/conftypes.php:169 +msgid "Account type selection" +msgstr "帳號類型選擇" + +#: ../templates/config/confmain.php:235 +#: ../help/help.inc:105 +msgid "Account types and modules" +msgstr "帳號類型和模組" + +#: ../help/help.inc:107 +msgid "Account types define which sorts of LDAP entries (e.g. users and groups) should be managed. The account modules define which properties (e.g. Unix and Samba) can be edited." +msgstr "帳號類型定義要管理那一類的LDAP項目(如 users 和 groups). 帳號模組定義要編修那一些屬性 (如 Unix 和 Samba)" + +#: ../lib/modules.inc:1205 +msgid "Account was created successfully." +msgstr "帳號新增成功" + +#: ../templates/lists/changePassword.php:358 +#: ../lib/modules.inc:1208 +msgid "Account was modified successfully." +msgstr "帳號修改成功" + +#: ../lib/modules/sambaSamAccount.inc:284 +msgid "Activate this checkbox to allow this user to use the terminal service." +msgstr "選取此核取方塊以允許該使用者使用終端伺服器.." + +#: ../lib/modules/sambaSamAccount.inc:305 +msgid "Activate this checkbox to connect drives from the client machine." +msgstr "選取此核取方塊以連結來自客戶端機器的裝置." + +#: ../lib/modules/sambaSamAccount.inc:308 +msgid "Activate this checkbox to connect printers from the client machine." +msgstr "選取此核取方塊以連結客戶端的印表機." + +#: ../lib/modules/sambaSamAccount.inc:293 +msgid "Activate this checkbox to inherit the initial program and working directory from the client machine." +msgstr "選取此核取方塊以繼承來自客戶端機器的初始程式及工作目錄." + +#: ../lib/modules/sambaSamAccount.inc:311 +msgid "Activate this checkbox to set the client's printer as default printer." +msgstr "選取此核取方塊將以客戶端的印表機為預設的印表機." + +#: ../lib/modules/posixAccount.inc:364 +msgid "Activating this checkbox will remove the user's home directory." +msgstr "設定這個核取方塊將會刪除使用者個人目錄." + +#: ../templates/config/conftypes.php:191 +msgid "Active account types" +msgstr "啟用的(active)帳號類型" + +#: ../templates/tree/add_value_form.php:157 +#: ../templates/tree/add_value_form.php:182 +#: ../templates/tree/add_oclass_form.php:144 +#: ../templates/tree/add_attr_form.php:130 +#: ../templates/tree/add_attr_form.php:162 +#: ../templates/config/conftypes.php:180 +#: ../templates/pdfedit/pdfpage.php:574 +#: ../templates/pdfedit/pdfpage.php:591 +#: ../templates/pdfedit/pdfpage.php:621 +#: ../templates/pdfedit/pdfpage.php:659 +#: ../lib/modules/ieee802device.inc:111 +#: ../lib/modules/kolabUser.inc:370 +#: ../lib/modules/kolabUser.inc:387 +#: ../lib/modules/kolabUser.inc:413 +#: ../lib/modules/kolabUser.inc:878 +#: ../lib/modules/kolabUser.inc:918 +#: ../lib/modules/ldapPublicKey.inc:105 +#: ../lib/modules/inetLocalMailRecipient.inc:167 +#: ../lib/modules/groupOfNames.inc:168 +#: ../lib/modules/groupOfNames.inc:310 +#: ../lib/modules/nisMailAlias.inc:154 +msgid "Add" +msgstr "新增" + +#: ../lib/modules/sambaSamAccount.inc:1138 +#: ../lib/modules/sambaGroupMapping.inc:239 +msgid "Add Samba 3 account" +msgstr "新增 Samba 3 的帳號" + +#: ../lib/modules/groupOfNames.inc:342 +msgid "Add entries of this type:" +msgstr "新增此類型的項目 ; " + +#: ../templates/selfService/adminMain.php:483 +#: ../help/help.inc:173 +msgid "Add input field" +msgstr "新增設定輸入欄位" + +#: ../templates/tree/edit.php:130 +#: ../templates/tree/add_value_form.php:95 +#: ../templates/tree/add_attr_form.php:72 +#: ../templates/tree/add_attr_form.php:109 +#, php-format +msgid "Add new attribute" +msgstr "新增屬性" + +#: ../templates/tree/add_attr_form.php:142 +msgid "Add new binary attribute" +msgstr "新增binary的屬性." + +#: ../templates/selfService/adminMain.php:466 +#: ../help/help.inc:171 +msgid "Add new group" +msgstr "新增群組" + +#: ../lib/modules/inetOrgPerson.inc:462 +#: ../lib/modules/inetOrgPerson.inc:939 +#: ../lib/modules/inetOrgPerson.inc:1030 +#: ../lib/modules/inetOrgPerson.inc:1492 +msgid "Add photo" +msgstr "新增相片" + +#: ../lib/modules/phpGroupwareGroup.inc:73 +#: ../lib/modules/phpGroupwareGroup.inc:83 +#: ../lib/modules/phpGroupwareGroup.inc:106 +#: ../lib/modules/phpGroupwareUser.inc:74 +#: ../lib/modules/phpGroupwareUser.inc:97 +#: ../lib/modules/phpGroupwareUser.inc:183 +msgid "Add phpGroupWare extension" +msgstr "新增 phpGroup Ware 延伸功能" + +#: ../templates/config/profmanage.php:163 +#: ../templates/selfService/profManage.php:138 +#: ../help/help.inc:113 +msgid "Add profile" +msgstr "新增設定檔" + +#: ../templates/tree/add_value.php:97 +msgid "Adding attribute failed!" +msgstr "新增屬性失敗!" + +#: ../lib/modules/posixAccount.inc:224 +#: ../lib/modules/posixAccount.inc:355 +#: ../lib/modules/posixAccount.inc:400 +#: ../lib/modules/posixAccount.inc:995 +#: ../lib/modules/posixAccount.inc:1088 +#: ../lib/modules/posixAccount.inc:1160 +#: ../lib/modules/posixAccount.inc:1220 +msgid "Additional groups" +msgstr "附加的群組" + +#: ../templates/massDoUpload.php:106 +msgid "Additional tasks for module:" +msgstr "模組的其他任務:" + +#: ../help/help.inc:172 +msgid "Adds a new group element to the list of self service options. Use this to structure the input fields." +msgstr "新增一個新的群組元件到自助服務的選項. 使用這個功能來建構輸入欄位." + +#: ../help/help.inc:174 +msgid "Adds a new self service option to the selected group element." +msgstr "新增一個新的自助服務選項到所選定的群組元件." + +#: ../lib/modules/inetOrgPerson.inc:235 +msgid "Administration" +msgstr "管理 (Administration)" + +#: ../lib/modules/posixGroup.inc:364 +#: ../lib/modules/groupOfNames.inc:93 +msgid "Administrators group" +msgstr "管理者群組" + +#: ../lib/modules/sambaSamAccount.inc:481 +msgid "Alaska" +msgstr "阿拉斯加" + +#: ../lib/modules/sambaDomain.inc:198 +#: ../lib/modules/sambaDomain.inc:199 +msgid "Algorithmic RID base is not a number!" +msgstr "填入RID的演算法基數不是一個數字!" + +#: ../lib/types/mailAlias.inc:82 +#: ../lib/modules/nisMailAlias.inc:67 +#: ../lib/modules/nisMailAlias.inc:82 +#: ../lib/modules/nisMailAlias.inc:139 +#: ../lib/modules/nisMailAlias.inc:276 +msgid "Alias name" +msgstr "別名" + +#: ../templates/schema/schema.php:231 +msgid "Aliases" +msgstr "別名" + +#: ../lib/lists.inc:659 +#, php-format +msgid "All accounts (%s)" +msgstr "所有帳號 %s:" + +#: ../templates/selfService/selfServiceMain.php:146 +#: ../templates/initsuff.php:160 +msgid "All changes were successful." +msgstr "更改成功." + +#: ../help/help.inc:180 +msgid "All following lines form the mail body." +msgstr "下文來自郵件本文" + +#: ../lib/lists.inc:658 +#, php-format +msgid "All selected accounts (%s)" +msgstr "所有被選取的帳號 (%s)" + +#: ../lib/modules/sambaDomain.inc:110 +#: ../lib/modules/sambaDomain.inc:299 +#: ../lib/modules/sambaDomain.inc:669 +msgid "Allow machine password changes" +msgstr "容許改變主機密碼" + +#: ../lib/modules/sambaSamAccount.inc:283 +#: ../lib/modules/sambaSamAccount.inc:1304 +#: ../lib/modules/sambaSamAccount.inc:1668 +msgid "Allow terminal server login" +msgstr "允許由終端伺服器登入" + +#: ../templates/config/mainmanage.php:188 +#: ../lib/types/user.inc:86 +#: ../help/help.inc:135 +msgid "Allowed hosts" +msgstr "允許連線的主機" + +#: ../lib/modules/sambaAccount.inc:867 +#: ../lib/modules/sambaAccount.inc:868 +#: ../lib/modules/sambaSamAccount.inc:1161 +#: ../lib/modules/sambaSamAccount.inc:1162 +msgid "Allowed workstations" +msgstr "允許的工作站" + +#: ../lib/modules/sambaSamAccount.inc:496 +msgid "Almaty, Dhaka, Colombo" +msgstr "Almaty(哈薩克首都), 達卡, 可倫坡" + +#: ../lib/modules/kolabUser.inc:48 +msgid "Always accept" +msgstr "都接受" + +#: ../lib/modules/kolabUser.inc:49 +msgid "Always reject" +msgstr "都拒絕" + +#: ../templates/tree/edit.php:143 +#, php-format +msgid "An attribute (%s) was modified and is highlighted below." +msgstr "下列反白的屬性(%s)已被修改." + +#: ../lib/modules/kolabUser.inc:352 +#: ../lib/modules/kolabUser.inc:797 +#: ../lib/modules/kolabUser.inc:899 +msgid "Anyone" +msgstr "任何人" + +#: ../templates/tree/delete_form.php:149 +msgid "Are you sure you want to permanently delete this object?" +msgstr "確定永久刪除這個物件 ?" + +#: ../lib/modules/sambaSamAccount.inc:486 +msgid "Atlantic time (Canada), Caracas" +msgstr "大西洋時間(加拿大), 卡拉卡斯" + +#: ../templates/tree/update_confirm.php:152 +msgid "Attribute" +msgstr "屬性" + +#: ../templates/schema/schema.php:74 +#: ../templates/schema/schema.php:75 +msgid "Attribute types" +msgstr "屬性類型" + +#: ../lib/modules/sambaSamAccount.inc:502 +msgid "Auckland, Fiji, Kamchatka" +msgstr "奧克蘭, 斐濟, 堪察加半島" + +#: ../templates/config/conftypes.php:173 +msgid "Available account types" +msgstr "有效的帳號類型" + +#: ../lib/modules/posixAccount.inc:1100 +msgid "Available groups" +msgstr "可選用的群組" + +#: ../templates/config/confmodules.php:211 +msgid "Available modules" +msgstr "可選用的模組" + +#: ../lib/modules/posixGroup.inc:246 +msgid "Available users" +msgstr "可選的使用者" + +#: ../lib/modules/sambaAccount.inc:873 +#: ../lib/modules/sambaSamAccount.inc:1167 +msgid "Available workstations" +msgstr "可選的工作站" + +#: ../lib/modules/sambaSamAccount.inc:489 +msgid "Azores, Cape Verde Islands" +msgstr "亞速爾群島, 維德角" + +#: ../templates/tree/update_confirm.php:255 +#: ../lib/modules/posixGroup.inc:252 +#: ../lib/modules/posixGroup.inc:275 +#: ../lib/modules/sambaAccount.inc:878 +#: ../lib/modules/sambaSamAccount.inc:1171 +#: ../lib/modules/posixAccount.inc:1106 +#: ../lib/modules/inetOrgPerson.inc:1031 +#: ../lib/modules/groupOfNames.inc:352 +msgid "Back" +msgstr "返回" + +#: ../templates/config/index.php:114 +#: ../templates/config/confmain.php:605 +#: ../templates/config/conflogin.php:153 +#: ../templates/config/mainlogin.php:138 +#: ../templates/selfService/adminLogin.php:150 +#: ../templates/selfService/adminMain.php:114 +#: ../templates/logout.php:78 +msgid "Back to Login" +msgstr "回登入畫面" + +#: ../templates/ou_edit.php:131 +#: ../templates/ou_edit.php:135 +msgid "Back to OU-Editor" +msgstr "返回OU編輯器" + +#: ../templates/pdfedit/pdfdelete.php:67 +#: ../templates/pdfedit/pdfdelete.php:75 +#: ../templates/pdfedit/pdfpage.php:106 +msgid "Back to PDF Editor" +msgstr "返回PDF編輯器" + +#: ../lib/modules.inc:1216 +msgid "Back to account list" +msgstr "返回帳號列表" + +#: ../templates/lists/userlink.php:66 +msgid "Back to group list" +msgstr "返回群組列表" + +#: ../templates/delete.php:242 +msgid "Back to list" +msgstr "返叵列表" + +#: ../templates/config/mainmanage.php:141 +#: ../templates/config/mainmanage.php:384 +msgid "Back to login" +msgstr "回登入畫面" + +#: ../templates/profedit/profiledelete.php:67 +#: ../templates/profedit/profiledelete.php:75 +#: ../templates/profedit/profilepage.php:126 +msgid "Back to profile editor" +msgstr "返回設定檔編輯器" + +#: ../templates/config/profmanage.php:368 +#: ../templates/selfService/profManage.php:268 +msgid "Back to profile login" +msgstr "回設定檔登入畫面" + +#: ../lib/modules/sambaSamAccount.inc:493 +msgid "Baghdad, Riyadh, Moscow" +msgstr "巴格達, 利雅德, 莫斯科" + +#: ../lib/modules/sambaSamAccount.inc:497 +msgid "Bangkok, Hanoi, Jakarta" +msgstr "曼谷, 河內, 雅加達" + +#: ../templates/tree/export_form.php:74 +msgid "Base (base DN only)" +msgstr "Base (只有基礎識別名稱)" + +#: ../templates/tree/export_form.php:99 +msgid "Base DN" +msgstr "基礎識別名稱" + +#: ../templates/config/confmodules.php:120 +#: ../help/help.inc:127 +msgid "Base module" +msgstr "基本模組" + +#: ../templates/pdfedit/pdfpage.php:406 +msgid "Beginning" +msgstr "開頭" + +#: ../lib/modules/sambaSamAccount.inc:498 +msgid "Beijing, Perth, Singapore" +msgstr "北京, 柏斯, 新加坡" + +#: ../templates/tree/edit.php:176 +#: ../templates/tree/edit.php:305 +msgid "Binary value" +msgstr "二進位值" + +#: ../lib/modules/quota.inc:47 +msgid "Block hard quota" +msgstr "區塊硬性配額" + +#: ../lib/modules/quota.inc:47 +#: ../lib/modules/quota.inc:48 +msgid "Block hard quota contains invalid characters. Only natural numbers are allowed." +msgstr "區塊硬性配額包含無效字元.只能使用自然數." + +#: ../lib/modules/quota.inc:53 +msgid "Block quota" +msgstr "區塊配額" + +#: ../lib/modules/quota.inc:45 +msgid "Block soft quota" +msgstr "區塊軟性配額" + +#: ../lib/modules/quota.inc:45 +#: ../lib/modules/quota.inc:46 +msgid "Block soft quota contains invalid characters. Only natural numbers are allowed." +msgstr "區塊軟性配額包含無效字元.只能使用自然數." + +#: ../lib/modules/quota.inc:53 +#: ../lib/modules/quota.inc:54 +msgid "Block soft quota must be smaller than block hard quota." +msgstr "區塊軟性配額必須比硬性配額小." + +#: ../lib/modules/sambaSamAccount.inc:487 +msgid "Brazil, Buenos Aires" +msgstr "巴西, 布宜若斯艾利斯" + +#: ../lib/modules/sambaGroupMapping.inc:70 +msgid "Builtin group" +msgstr "內建群組" + +#: ../lib/modules/inetOrgPerson.inc:107 +#: ../lib/modules/inetOrgPerson.inc:233 +#: ../lib/modules/inetOrgPerson.inc:474 +#: ../lib/modules/inetOrgPerson.inc:892 +#: ../lib/modules/inetOrgPerson.inc:1061 +msgid "Business category" +msgstr "行業類別" + +#: ../lib/modules/inetOrgPerson.inc:475 +msgid "Business category (e.g. Administration, IT-Services, Manangement, ...)" +msgstr "公司類別 (例如: 政府機構, 資訊服務, 管理業...)" + +#: ../templates/masscreate.php:137 +msgid "CSV file:" +msgstr "CSV 檔:" + +#: ../templates/config/confmain.php:178 +#: ../help/help.inc:101 +msgid "Cache timeout" +msgstr "快取期限" + +#: ../templates/config/confmain.php:497 +msgid "Cache timeout is invalid!" +msgstr "快取期限設定錯誤!" + +#: ../lib/modules/sambaAccount.inc:386 +#: ../lib/modules/sambaAccount.inc:389 +#: ../lib/modules/sambaAccount.inc:392 +#: ../lib/modules/sambaAccount.inc:398 +#: ../lib/modules/sambaAccount.inc:410 +#: ../lib/modules/sambaSamAccount.inc:238 +#: ../lib/modules/sambaSamAccount.inc:241 +#: ../lib/modules/sambaSamAccount.inc:244 +#: ../lib/modules/sambaSamAccount.inc:250 +#: ../lib/modules/posixAccount.inc:401 +#: ../lib/modules/sambaGroupMapping.inc:327 +#: ../lib/modules/shadowAccount.inc:159 +#: ../lib/modules/shadowAccount.inc:163 +#: ../lib/modules/shadowAccount.inc:167 +#: ../lib/modules/shadowAccount.inc:171 +msgid "Can be left empty." +msgstr "可以留空白" + +#: ../templates/tree/update_confirm.php:241 +#: ../templates/tree/delete_form.php:119 +#: ../templates/tree/delete_form.php:168 +#: ../templates/ou_edit.php:110 +#: ../templates/config/confmodules.php:116 +#: ../templates/config/confmain.php:457 +#: ../templates/config/conftypes.php:239 +#: ../templates/selfService/adminMain.php:547 +#: ../templates/pdfedit/pdfdelete.php:97 +#: ../templates/pdfedit/pdfpage.php:705 +#: ../templates/pdfedit/pdfmain.php:156 +#: ../templates/delete.php:117 +#: ../templates/profedit/profiledelete.php:86 +#: ../templates/profedit/profilepage.php:262 +#: ../templates/profedit/profilemain.php:169 +#: ../templates/initsuff.php:193 +#: ../lib/modules/sambaSamAccount.inc:1236 +#: ../lib/modules/sambaSamAccount.inc:1284 +#: ../lib/modules/sambaSamAccount.inc:1407 +#: ../lib/modules/posixAccount.inc:1135 +#: ../lib/modules/kolabUser.inc:589 +#: ../lib/modules/phpGroupwareUser.inc:248 +#: ../lib/modules/shadowAccount.inc:352 +#: ../lib/modules/inetOrgPerson.inc:994 +#: ../lib/modules/groupOfNames.inc:231 +#: ../lib/modules/groupOfNames.inc:258 +#: ../lib/modules/groupOfNames.inc:311 +#: ../lib/lists.inc:669 +#: ../lib/lists.inc:900 +msgid "Cancel" +msgstr "取消" + +#: ../templates/login.php:430 +#: ../templates/login.php:435 +#: ../templates/selfService/selfServiceLogin.php:105 +#: ../templates/selfService/selfServiceLogin.php:109 +msgid "Cannot connect to specified LDAP server. Please try again." +msgstr "無法連結所指定的LDAP伺服器,請再試一次." + +#: ../lib/config.inc:392 +#: ../lib/config.inc:1016 +msgid "Cannot open config file!" +msgstr "無法開啟設定檔!" + +#: ../templates/selfService/adminMain.php:348 +msgid "Captions and labels" +msgstr "標題和標籤" + +#: ../lib/modules/inetOrgPerson.inc:155 +#: ../lib/modules/inetOrgPerson.inc:311 +#: ../lib/modules/inetOrgPerson.inc:486 +#: ../lib/modules/inetOrgPerson.inc:878 +#: ../lib/modules/inetOrgPerson.inc:1063 +#: ../lib/modules/inetOrgPerson.inc:1453 +msgid "Car license" +msgstr "駕駛執 照號碼" + +#: ../lib/modules/sambaSamAccount.inc:491 +msgid "Central Europe Time, Paris, Berlin" +msgstr "歐洲中央時間, 巴黎, 柏林" + +#: ../lib/modules/sambaSamAccount.inc:484 +msgid "Central Time (US & Canada), Mexico City" +msgstr "中央時間(美國和加拿大), 墨西哥市 " + +#: ../templates/selfService/adminMain.php:409 +#: ../templates/pdfedit/pdfpage.php:453 +#: ../templates/pdfedit/pdfpage.php:459 +#: ../lib/modules/sambaSamAccount.inc:997 +#: ../lib/modules/sambaSamAccount.inc:1014 +#: ../lib/modules/sambaSamAccount.inc:1031 +#: ../lib/modules/sambaSamAccount.inc:1280 +#: ../lib/modules/phpGroupwareUser.inc:145 +#: ../lib/modules/phpGroupwareUser.inc:244 +#: ../lib/modules/shadowAccount.inc:297 +#: ../lib/modules/shadowAccount.inc:348 +#: ../lib/modules/groupOfNames.inc:157 +#: ../lib/modules/groupOfNames.inc:174 +msgid "Change" +msgstr "更改" + +#: ../lib/modules/posixGroup.inc:198 +msgid "Change GID number of users and hosts" +msgstr "更改使用者和主機的 GIDi編號" + +#: ../templates/config/profmanage.php:327 +#: ../help/help.inc:121 +msgid "Change default profile" +msgstr "變更預設的伺服器設定檔" + +#: ../lib/lists.inc:885 +msgid "Change list settings" +msgstr "更改清單設定" + +#: ../templates/config/mainmanage.php:338 +#: ../help/help.inc:123 +msgid "Change master password" +msgstr "變更系統管理者密碼" + +#: ../templates/lists/changePassword.php:113 +#: ../templates/lists/changePassword.php:185 +#: ../templates/lists/changePassword.php:212 +#: ../lib/types/user.inc:236 +#: ../lib/modules/posixGroup.inc:188 +#: ../lib/modules/posixAccount.inc:1041 +#: ../lib/modules/inetOrgPerson.inc:765 +#: ../help/help.inc:99 +msgid "Change password" +msgstr "更改密碼" + +#: ../templates/config/confmain.php:210 +#: ../templates/config/confmain.php:213 +msgid "Change passwords" +msgstr "更改密碼" + +#: ../templates/login.php:356 +msgid "Change profile" +msgstr "變更伺服器設定檔" + +#: ../lib/lists.inc:723 +#: ../lib/lists.inc:724 +msgid "Change settings" +msgstr "更改設定" + +#: ../lib/lists.inc:698 +msgid "Change suffix" +msgstr "更改尾碼" + +#: ../lib/modules/posixAccount.inc:860 +msgid "Changed value because only ASCII characters are allowed." +msgstr "值己被改變,因為只能使用ASCII字元." + +#: ../templates/tests/index.php:59 +msgid "Check if quotas and homedirectories can be managed." +msgstr "檢查是否可以管理磁碟配額和使用者個人目錄" + +#: ../templates/tests/index.php:62 +msgid "Check if the LDAP schema fits the requirements of the selected account modules." +msgstr "檢查LDAP綱要是否符合該帳號模組的要求" + +#: ../templates/tests/lamdaemonTest.php:98 +msgid "Check quotas" +msgstr "檢查配額" + +#: ../templates/masscreate.php:128 +msgid "Check your input carefully. LAM will only do some basic checks on the upload data." +msgstr "請仔細檢查您的輸入. LAM 對上傳的資料只做基本的檢查." + +#: ../lib/modules/posixAccount.inc:94 +msgid "Choose a server for the home directory!" +msgstr "請選擇個人目錄所在的伺服器 !" + +#: ../templates/tree/create_form.php:76 +msgid "Choose a template" +msgstr "選擇一種樣版" + +#: ../templates/tree/create.php:169 +#: ../lib/config.inc:152 +msgid "Click here if you are not directed to the next page." +msgstr "如果沒有自動跳頁的話,請按這裡前往." + +#: ../lib/modules/sambaSamAccount.inc:310 +#: ../lib/modules/sambaSamAccount.inc:1370 +#: ../lib/modules/sambaSamAccount.inc:1696 +msgid "Client printer is default" +msgstr "客戶端印表機為預設" + +#: ../templates/schema/schema.php:204 +msgid "Collective" +msgstr "集合(Collective)" + +#: ../templates/masscreate.php:147 +msgid "Columns:" +msgstr "欄位說明:" + +#: ../lib/modules/sambaAccount.inc:398 +#: ../lib/modules/sambaSamAccount.inc:250 +msgid "Comma separated list of Samba workstations the user is allowed to login. Empty means every workstation." +msgstr "使用者可以登入的samba工作站,可逗點分隔.留空白表示任何工作站都可以登入." + +#: ../templates/tree/update_confirm.php:234 +msgid "Commit" +msgstr "送出" + +#: ../lib/modules/posixAccount.inc:92 +#: ../lib/modules/posixAccount.inc:205 +#: ../lib/modules/posixAccount.inc:404 +#: ../lib/modules/posixAccount.inc:426 +#: ../lib/modules/posixAccount.inc:968 +#: ../lib/modules/posixAccount.inc:1215 +#: ../lib/modules/inetOrgPerson.inc:97 +#: ../lib/modules/inetOrgPerson.inc:328 +#: ../lib/modules/inetOrgPerson.inc:446 +#: ../lib/modules/inetOrgPerson.inc:733 +#: ../lib/modules/inetOrgPerson.inc:1059 +msgid "Common name" +msgstr "使用者全名" + +#: ../templates/config/index.php:48 +msgid "Configuration overview" +msgstr "設定總覽" + +#: ../help/help.inc:57 +#: ../help/help.inc:59 +#: ../help/help.inc:71 +#: ../help/help.inc:77 +#: ../help/help.inc:83 +#: ../help/help.inc:88 +#: ../help/help.inc:95 +#: ../help/help.inc:97 +#: ../help/help.inc:99 +#: ../help/help.inc:101 +#: ../help/help.inc:103 +#: ../help/help.inc:105 +#: ../help/help.inc:108 +#: ../help/help.inc:111 +#: ../help/help.inc:127 +msgid "Configuration wizard" +msgstr "設定精靈" + +#: ../templates/config/confmodules.php:252 +msgid "Conflicting module:" +msgstr "衝突的模組:" + +#: ../lib/modules/sambaSamAccount.inc:304 +#: ../lib/modules/sambaSamAccount.inc:1360 +#: ../lib/modules/sambaSamAccount.inc:1686 +msgid "Connect client drives" +msgstr "連結客戶端的裝置" + +#: ../lib/modules/sambaSamAccount.inc:307 +#: ../lib/modules/sambaSamAccount.inc:1365 +#: ../lib/modules/sambaSamAccount.inc:1691 +msgid "Connect client printers" +msgstr "連結客戶端印表機" + +#: ../lib/modules/sambaSamAccount.inc:1345 +#: ../lib/modules/sambaSamAccount.inc:1679 +msgid "Connection time limit" +msgstr "連結時間限制" + +#: ../templates/tree/templates/creation/custom.php:66 +#: ../templates/tree/templates/creation/new_ou_template.php:105 +msgid "Container" +msgstr "容器節點" + +#: ../templates/tree/templates/creation/new_ou_template.php:64 +msgid "Container DN" +msgstr "上層容器節點的DN" + +#: ../templates/tree/delete_attr.php:82 +msgid "Could not perform ldap_modify operation." +msgstr "無法執行ldap_modify指令" + +#: ../templates/config/profmanage.php:100 +#: ../templates/selfService/profManage.php:86 +msgid "Could not rename file!" +msgstr "無法更改檔名" + +#: ../templates/pdfedit/pdfpage.php:103 +msgid "Could not save PDF profile, access denied." +msgstr "無法儲存PDF設定檔,拒絕存取." + +#: ../lib/modules/kolabUser.inc:89 +#: ../lib/modules/kolabUser.inc:169 +#: ../lib/modules/kolabUser.inc:198 +#: ../lib/modules/kolabUser.inc:312 +#: ../lib/modules/kolabUser.inc:773 +msgid "Country" +msgstr "國籍" + +#: ../lib/modules/kolabUser.inc:249 +#: ../lib/modules/kolabUser.inc:250 +msgid "Country name is invalid!" +msgstr "國籍名稱錯誤!" + +#: ../templates/tree/templates/creation/custom.php:234 +#: ../templates/tree/templates/creation/new_ou_template.php:107 +#: ../templates/initsuff.php:192 +msgid "Create" +msgstr "建立" + +#: ../templates/tree/creation_template.php:85 +#: ../templates/tree/create_form.php:75 +msgid "Create Object" +msgstr "建立物件" + +#: ../lib/lists.inc:471 +#: ../lib/lists.inc:633 +#: ../lib/modules.inc:1223 +#: ../help/help.inc:154 +msgid "Create PDF file" +msgstr "建立PDF檔" + +#: ../lib/types/mailAlias.inc:113 +msgid "Create PDF for all aliases" +msgstr "將所有Email別名匯出成PDF檔" + +#: ../lib/types/smbDomain.inc:113 +msgid "Create PDF for all domains" +msgstr "將所有的網域匯出成PDF檔" + +#: ../lib/types/gon.inc:115 +#: ../lib/types/group.inc:127 +msgid "Create PDF for all groups" +msgstr "將所有的群組匯出成PDF檔" + +#: ../lib/types/host.inc:117 +msgid "Create PDF for all hosts" +msgstr "將所有主機帳號匯出成PDF檔" + +#: ../lib/lists.inc:108 +msgid "Create PDF for all objects" +msgstr "將全所有物件匯出成PDF檔" + +#: ../lib/types/user.inc:131 +msgid "Create PDF for all users" +msgstr "將所有使用者帳號匯出成PDF檔" + +#: ../lib/types/mailAlias.inc:112 +msgid "Create PDF for selected alias(es)" +msgstr "將所選擇的別名匯出成PDF檔" + +#: ../lib/types/smbDomain.inc:112 +msgid "Create PDF for selected domain(s)" +msgstr "將所選擇的網域匯出成PDF檔" + +#: ../lib/types/gon.inc:114 +#: ../lib/types/group.inc:126 +msgid "Create PDF for selected group(s)" +msgstr "將所選擇的群組匯出成PDF檔" + +#: ../lib/types/host.inc:116 +msgid "Create PDF for selected host(s)" +msgstr "將所選擇的主機帳號匯出成PDF檔" + +#: ../lib/lists.inc:107 +msgid "Create PDF for selected object(s)" +msgstr "將所選擇的物件匯出成PDF檔" + +#: ../lib/types/user.inc:130 +msgid "Create PDF for selected user(s)" +msgstr "將所選擇的使用者帳號匯出成PDF檔" + +#: ../templates/pdfedit/pdfmain.php:123 +msgid "Create a new PDF structure for scope: " +msgstr "為所選的範圍(scope)建立新的PDF架構:" + +#: ../templates/profedit/profilemain.php:131 +msgid "Create a new profile" +msgstr "建立新的設定檔" + +#: ../lib/modules.inc:1215 +msgid "Create another account" +msgstr "新增另一個帳號" + +#: ../lib/lists.inc:653 +msgid "Create for" +msgstr "建立" + +#: ../lib/modules/posixAccount.inc:237 +#: ../lib/modules/posixAccount.inc:1011 +msgid "Create home directory" +msgstr "建立個人目錄" + +#: ../templates/tree/edit.php:128 +#: ../templates/tree/tree.php:189 +#: ../templates/tree/tree.php:191 +#: ../templates/tree/tree.php:192 +#: ../lib/tree.inc:92 +#: ../lib/tree.inc:93 +#: ../lib/tree.inc:157 +#: ../lib/tree.inc:159 +#: ../lib/tree.inc:160 +msgid "Create new entry" +msgstr "新增項目" + +#: ../templates/config/profmanage.php:85 +#: ../templates/selfService/profManage.php:69 +msgid "Created new profile." +msgstr "新增系統設定檔" + +#: ../templates/tools.php:65 +msgid "Creates accounts by uploading a CSV formated file." +msgstr "上傳CSV檔案以建立大量帳號" + +#: ../templates/tree/add_value_form.php:101 +msgid "Current list of values for attribute:" +msgstr "目前屬性所有的值 : " + +#: ../templates/tree/templates/templates.inc:51 +msgid "Custom" +msgstr "自定" + +#: ../templates/tree/edit.php:92 +#: ../templates/tree/add_value_form.php:99 +#: ../templates/tree/add_oclass_form.php:124 +#: ../templates/tree/update_confirm.php:79 +#: ../templates/tree/add_attr_form.php:73 +#: ../templates/tree/delete_form.php:77 +#: ../templates/tree/delete_form.php:151 +#: ../templates/delete.php:95 +#: ../lib/modules.inc:1308 +#: ../lib/modules.inc:1748 +msgid "DN" +msgstr "DN" + +#: ../templates/masscreate.php:150 +msgid "DN settings" +msgstr "DN 設定" + +#: ../templates/masscreate.php:154 +#: ../help/help.inc:148 +msgid "DN suffix" +msgstr "DN 尾碼" + +#: ../lib/export.inc:511 +#, php-format +msgid "DSML Export for: %s" +msgstr "DSML輸出 %s" + +#: ../templates/tree/templates/creation/custom.php:96 +msgid "Data field for RDN is empty!" +msgstr "RDN資料欄位是空的" + +#: ../lib/modules/sambaAccount.inc:378 +#: ../lib/modules/sambaSamAccount.inc:230 +msgid "Date after the user is able to change his password. Format: DD-MM-YYYY" +msgstr "在這個日期之後,使用者才可以更改密碼, 格式: DD-MM-YYYY" + +#: ../lib/modules/sambaAccount.inc:380 +#: ../lib/modules/sambaSamAccount.inc:232 +msgid "Date after the user must change his password. Format: DD-MM-YYYY" +msgstr "在這個日期之前,使用者必須更改密碼.(密碼到期時間) 格式: DD-MM-YYYY" + +#: ../lib/modules/shadowAccount.inc:159 +msgid "Days before password is to expire that user is warned of pending password expiration. If set value must be >0." +msgstr "在密碼過期前幾天會警告使用者,若有設定的話, 其值必需大於0." + +#: ../templates/config/confmain.php:298 +#: ../help/help.inc:95 +msgid "Default language" +msgstr "預設語言" + +#: ../templates/masscreate.php:163 +#: ../templates/masscreate.php:325 +msgid "Default value" +msgstr "預設值" + +#: ../lib/modules/sambaDomain.inc:111 +msgid "Defines if workstations may change their passwords." +msgstr "定義工作站是否可以更改其密碼." + +#: ../lib/modules/kolabUser.inc:128 +#: ../lib/modules/kolabUser.inc:153 +#: ../lib/modules/kolabUser.inc:157 +#: ../lib/modules/kolabUser.inc:217 +#: ../lib/modules/kolabUser.inc:416 +#: ../lib/modules/kolabUser.inc:811 +#: ../lib/modules/kolabUser.inc:881 +msgid "Delegates" +msgstr "代理人(Delegates)" + +#: ../lib/modules/kolabUser.inc:254 +msgid "Delegates has invalid format!" +msgstr "代理人(Delegates)的格式錯誤" + +#: ../templates/tree/edit.php:115 +#: ../templates/tree/delete_form.php:159 +#: ../templates/ou_edit.php:109 +#: ../templates/pdfedit/pdfdelete.php:96 +#: ../templates/delete.php:116 +#: ../lib/tree.inc:1178 +#: ../lib/modules/kolabUser.inc:872 +#: ../lib/lists.inc:467 +msgid "Delete" +msgstr "刪除" + +#: ../templates/tree/delete_form.php:76 +#, php-format +msgid "Delete %s" +msgstr "刪除 %s" + +#: ../lib/modules/kolabUser.inc:425 +msgid "Delete Kolab account" +msgstr "刪除Kolab帳號" + +#: ../templates/pdfedit/pdfdelete.php:53 +#: ../templates/pdfedit/pdfmain.php:145 +msgid "Delete PDF structure" +msgstr "刪除PDF架構" + +#: ../lib/types/mailAlias.inc:111 +msgid "Delete alias(es)" +msgstr "刪除別名" + +#: ../templates/tree/delete_form.php:111 +#, php-format +msgid "Delete all %s objects" +msgstr "刪除全部 %s 個物件" + +#: ../lib/types/smbDomain.inc:111 +msgid "Delete domain(s)" +msgstr "刪除網域" + +#: ../lib/types/gon.inc:113 +#: ../lib/types/group.inc:125 +msgid "Delete group(s)" +msgstr "刪除群組" + +#: ../lib/modules/posixAccount.inc:1060 +msgid "Delete home directory" +msgstr "刪除使用者個人目錄" + +#: ../lib/types/host.inc:115 +msgid "Delete host(s)" +msgstr "刪除主機" + +#: ../lib/lists.inc:106 +msgid "Delete object" +msgstr "刪除物件" + +#: ../templates/pdfedit/pdfdelete.php:74 +#: ../templates/profedit/profiledelete.php:74 +msgid "Delete operation canceled." +msgstr "已取消刪除動作" + +#: ../templates/ou_edit.php:183 +#: ../help/help.inc:188 +msgid "Delete organizational unit" +msgstr "刪除organizational unit" + +#: ../lib/modules/inetOrgPerson.inc:942 +msgid "Delete photo" +msgstr "刪除相片" + +#: ../templates/config/profmanage.php:249 +#: ../templates/selfService/profManage.php:228 +#: ../templates/profedit/profiledelete.php:56 +#: ../templates/profedit/profilemain.php:157 +#: ../help/help.inc:117 +msgid "Delete profile" +msgstr "刪除設定檔" + +#: ../lib/types/user.inc:129 +msgid "Delete user(s)" +msgstr "刪除使用者" + +#: ../templates/delete.php:230 +#, php-format +msgid "Deleted DN: %s" +msgstr "刪除的 DN: %s" + +#: ../templates/pdfedit/pdfdelete.php:65 +msgid "Deleted PDF structure:" +msgstr "刪除的 PDF 結構:" + +#: ../lib/modules/sambaGroupMapping.inc:71 +msgid "Deleted account" +msgstr "已刪除的帳號" + +#: ../templates/profedit/profiledelete.php:66 +msgid "Deleted profile:" +msgstr "刪除的設定檔:" + +#: ../templates/tree/rdelete.php:74 +#: ../templates/tree/rdelete.php:136 +#: ../templates/tree/rdelete.php:148 +#, php-format +msgid "Deleting %s" +msgstr "正在刪除 %s" + +#: ../templates/delete.php:139 +msgid "Deleting. Please stand by ..." +msgstr "正在刪除..." + +#: ../templates/tree/add_value_form.php:186 +#: ../templates/schema/schema.php:94 +#: ../templates/schema/schema.php:148 +#: ../templates/schema/schema.php:351 +#: ../lib/types/user.inc:92 +#: ../lib/modules/account.inc:88 +#: ../lib/modules/account.inc:98 +#: ../lib/modules/account.inc:122 +#: ../lib/modules/account.inc:226 +#: ../lib/modules/account.inc:240 +#: ../lib/modules/posixGroup.inc:164 +#: ../lib/modules/posixGroup.inc:390 +#: ../lib/modules/posixGroup.inc:452 +#: ../lib/modules/sambaAccount.inc:898 +#: ../lib/modules/posixAccount.inc:310 +#: ../lib/modules/posixAccount.inc:422 +#: ../lib/modules/sambaGroupMapping.inc:349 +#: ../lib/modules/inetOrgPerson.inc:209 +#: ../lib/modules/inetOrgPerson.inc:390 +#: ../lib/modules/inetOrgPerson.inc:741 +#: ../lib/modules/inetOrgPerson.inc:1043 +#: ../lib/modules/groupOfNames.inc:64 +#: ../lib/modules/groupOfNames.inc:91 +#: ../lib/modules/groupOfNames.inc:143 +#: ../lib/modules/groupOfNames.inc:443 +msgid "Description" +msgstr "說明" + +#: ../lib/modules/sambaDomain.inc:106 +#: ../lib/modules/sambaDomain.inc:288 +#: ../lib/modules/sambaDomain.inc:664 +msgid "Disconnect users outside logon hours" +msgstr "超過可登入時間則中斷使用者連結" + +#: ../lib/modules/sambaSamAccount.inc:1350 +#: ../lib/modules/sambaSamAccount.inc:1680 +msgid "Disconnection time limit" +msgstr "中斷時間限制" + +#: ../lib/modules/sambaDomain.inc:107 +msgid "Disconnects users if they are logged in outside logon hours." +msgstr "如果使用者在可登入時間之外已登入, 則中斷其連結." + +#: ../lib/modules/sambaAccount.inc:78 +#: ../lib/modules/sambaAccount.inc:223 +#: ../lib/modules/sambaAccount.inc:344 +#: ../lib/modules/sambaAccount.inc:728 +#: ../lib/modules/sambaAccount.inc:891 +#: ../lib/modules/sambaSamAccount.inc:98 +#: ../lib/modules/sambaSamAccount.inc:193 +#: ../lib/modules/sambaSamAccount.inc:339 +#: ../lib/modules/sambaSamAccount.inc:943 +#: ../lib/modules/sambaSamAccount.inc:1637 +#: ../lib/modules/sambaGroupMapping.inc:197 +#: ../lib/modules/sambaGroupMapping.inc:314 +#: ../lib/modules/sambaGroupMapping.inc:347 +msgid "Display name" +msgstr "顯示名稱" + +#: ../lib/modules.inc:449 +msgid "Displayed account numbers start at \"0\". Add 2 to get the row in your spreadsheet." +msgstr "顯示的帳號編號從\"0\"開始. 要加上2才是您的試算表上的列數." + +#: ../templates/ou_edit.php:102 +msgid "Do you really want to delete this OU?" +msgstr "確定刪除這個OU?" + +#: ../templates/pdfedit/pdfdelete.php:82 +msgid "Do you really want to delete this PDF structure?" +msgstr "確定刪除這個PDF架構?" + +#: ../templates/profedit/profiledelete.php:81 +msgid "Do you really want to delete this profile?" +msgstr "確定刪除這個設定檔?" + +#: ../lib/modules/kolabUser.inc:584 +msgid "Do you really want to mark this account for deletion?" +msgstr "確定將這個帳號標示為刪除?" + +#: ../templates/delete.php:89 +msgid "Do you really want to remove the following accounts?" +msgstr "確定刪除下列帳號?" + +#: ../templates/tree/update_confirm.php:146 +msgid "Do you want to make these changes?" +msgstr "確定更改?" + +#: ../lib/modules/sambaAccount.inc:181 +#: ../lib/modules/sambaAccount.inc:325 +#: ../lib/modules/sambaAccount.inc:335 +#: ../lib/modules/sambaAccount.inc:409 +#: ../lib/modules/sambaAccount.inc:839 +#: ../lib/modules/sambaAccount.inc:897 +#: ../lib/modules/sambaSamAccount.inc:268 +#: ../lib/modules/sambaSamAccount.inc:332 +#: ../lib/modules/sambaSamAccount.inc:458 +#: ../lib/modules/sambaSamAccount.inc:1112 +#: ../lib/modules/sambaSamAccount.inc:1499 +#: ../lib/modules/sambaSamAccount.inc:1529 +#: ../lib/modules/sambaSamAccount.inc:1655 +#: ../lib/modules/sambaGroupMapping.inc:68 +#: ../lib/modules/sambaGroupMapping.inc:232 +#: ../lib/modules/sambaGroupMapping.inc:326 +#: ../lib/modules/sambaGroupMapping.inc:369 +msgid "Domain" +msgstr "網域" + +#: ../lib/types/smbDomain.inc:82 +#: ../lib/modules/sambaDomain.inc:74 +#: ../lib/modules/sambaDomain.inc:144 +#: ../lib/modules/sambaDomain.inc:231 +#: ../lib/modules/sambaDomain.inc:237 +#: ../lib/modules/sambaDomain.inc:636 +msgid "Domain SID" +msgstr "網域 SID" + +#: ../lib/modules/sambaGroupMapping.inc:293 +msgid "Domain administrators" +msgstr "網域管理者" + +#: ../lib/modules/sambaAccount.inc:48 +#: ../lib/modules/sambaAccount.inc:320 +#: ../lib/modules/sambaSamAccount.inc:69 +#: ../lib/modules/sambaGroupMapping.inc:55 +#: ../lib/modules/sambaGroupMapping.inc:299 +msgid "Domain admins" +msgstr "網域管理者群組" + +#: ../lib/modules/sambaAccount.inc:50 +#: ../lib/modules/sambaSamAccount.inc:70 +#: ../lib/modules/sambaGroupMapping.inc:60 +msgid "Domain certificate admins" +msgstr "網域憑證管理者" + +#: ../lib/modules/sambaAccount.inc:49 +#: ../lib/modules/sambaAccount.inc:570 +#: ../lib/modules/sambaSamAccount.inc:70 +#: ../lib/modules/sambaSamAccount.inc:646 +#: ../lib/modules/sambaGroupMapping.inc:58 +msgid "Domain computers" +msgstr "網域電腦" + +#: ../lib/modules/sambaAccount.inc:50 +#: ../lib/modules/sambaSamAccount.inc:70 +#: ../lib/modules/sambaGroupMapping.inc:59 +msgid "Domain controllers" +msgstr "網域控制器" + +#: ../lib/modules/sambaAccount.inc:51 +#: ../lib/modules/sambaSamAccount.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:62 +msgid "Domain enterprise admins" +msgstr "網域企業管理者" + +#: ../lib/modules/sambaGroupMapping.inc:67 +#: ../lib/modules/sambaGroupMapping.inc:222 +msgid "Domain group" +msgstr "網域群組" + +#: ../lib/modules/sambaAccount.inc:49 +#: ../lib/modules/sambaSamAccount.inc:69 +#: ../lib/modules/sambaGroupMapping.inc:57 +msgid "Domain guests" +msgstr "網域來賓" + +#: ../lib/types/smbDomain.inc:83 +#: ../lib/modules/sambaAccount.inc:72 +#: ../lib/modules/sambaDomain.inc:70 +#: ../lib/modules/sambaDomain.inc:137 +#: ../lib/modules/sambaDomain.inc:218 +#: ../lib/modules/sambaDomain.inc:224 +#: ../lib/modules/sambaDomain.inc:633 +msgid "Domain name" +msgstr "網域名稱" + +#: ../lib/modules/sambaAccount.inc:72 +#: ../lib/modules/sambaAccount.inc:73 +msgid "Domain name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and -." +msgstr "網域名稱包含無效字元,只能使用 a-z, A-Z, 0-9 和 -" + +#: ../lib/modules/sambaDomain.inc:188 +#: ../lib/modules/sambaDomain.inc:189 +msgid "Domain name is invalid!" +msgstr "網域名稱無效!" + +#: ../lib/modules/sambaAccount.inc:52 +#: ../lib/modules/sambaSamAccount.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:63 +msgid "Domain policy admins" +msgstr "網域原則管理者" + +#: ../lib/modules/sambaAccount.inc:51 +#: ../lib/modules/sambaSamAccount.inc:71 +#: ../lib/modules/sambaGroupMapping.inc:61 +msgid "Domain schema admins" +msgstr "網域 Schema 管理者" + +#: ../lib/modules/sambaAccount.inc:48 +#: ../lib/modules/sambaSamAccount.inc:69 +#: ../lib/modules/sambaSamAccount.inc:1981 +#: ../lib/modules/sambaGroupMapping.inc:56 +msgid "Domain users" +msgstr "網域使用者" + +#: ../templates/main_header.php:60 +msgid "Donate" +msgstr "捐 贈" + +#: ../templates/pdfedit/pdfpage.php:420 +msgid "Down" +msgstr "往下" + +#: ../templates/masscreate.php:280 +msgid "Download sample CSV file" +msgstr "下載CSV檔範例" + +#: ../lib/modules/sambaAccount.inc:383 +msgid "Drive letter assigned on windows workstations as homedirectory." +msgstr "Windows 分配給使用者個人目錄使用的網路磁碟機編號." + +#: ../lib/types/user.inc:91 +msgid "E-Mail" +msgstr "電子信箱" + +#: ../lib/modules/kolabUser.inc:161 +msgid "EMail alias" +msgstr "電子信箱別名" + +#: ../lib/modules/kolabUser.inc:162 +msgid "EMail alias for this account." +msgstr "這個帳號的電子信箱別名" + +#: ../lib/modules/kolabUser.inc:247 +msgid "EMail alias is invalid!" +msgstr "電子信箱別名無效!" + +#: ../lib/modules/kolabUser.inc:165 +msgid "EMail alias list" +msgstr "電子信箱別名清單" + +#: ../lib/modules/kolabUser.inc:248 +msgid "EMail alias list has invalid format!" +msgstr "電子信箱別名清單的格式錯誤!" + +#: ../lib/modules/kolabUser.inc:211 +#: ../lib/modules/kolabUser.inc:390 +#: ../lib/modules/kolabUser.inc:807 +msgid "EMail aliases" +msgstr "電子信箱別名" + +#: ../lib/modules/sambaSamAccount.inc:500 +msgid "East Australian Standard, Guam" +msgstr "東澳標準時間, 關島" + +#: ../lib/modules/sambaSamAccount.inc:492 +msgid "Eastern Europe Time, South Africa" +msgstr "東歐時間, 南非" + +#: ../lib/modules/sambaSamAccount.inc:485 +msgid "Eastern Time (US & Canada), Bogota" +msgstr "美東時間(美國和加拿大), 波哥大" + +#: ../lib/modules/sambaSamAccount.inc:1119 +#: ../lib/modules/sambaSamAccount.inc:1123 +#: ../lib/lists.inc:462 +msgid "Edit" +msgstr "編輯" + +#: ../templates/pdfedit/pdfmain.php:134 +msgid "Edit PDF structure" +msgstr "編輯PDF架構" + +#: ../templates/config/confmain.php:245 +msgid "Edit account types" +msgstr "編輯帳號類型" + +#: ../templates/config/mainmanage.php:58 +#: ../templates/config/index.php:77 +msgid "Edit general settings" +msgstr "編輯一般環境設定" + +#: ../lib/modules/posixAccount.inc:996 +msgid "Edit groups" +msgstr "設定群組" + +#: ../lib/modules/posixGroup.inc:169 +msgid "Edit members" +msgstr "設定成員" + +#: ../templates/config/confmain.php:247 +msgid "Edit modules" +msgstr "編輯模組" + +#: ../templates/profedit/profilemain.php:144 +msgid "Edit profile" +msgstr "編輯設定檔" + +#: ../templates/config/index.php:103 +msgid "Edit self service" +msgstr "編修自助服務功能" + +#: ../templates/config/index.php:89 +msgid "Edit server profiles" +msgstr "編輯伺服器設定檔" + +#: ../lib/modules/sambaAccount.inc:798 +#: ../lib/modules/sambaSamAccount.inc:1071 +msgid "Edit workstations" +msgstr "設定工作站" + +#: ../lib/modules/inetOrgPerson.inc:95 +#: ../lib/modules/inetOrgPerson.inc:172 +#: ../lib/modules/inetOrgPerson.inc:221 +#: ../lib/modules/inetOrgPerson.inc:406 +#: ../lib/modules/inetOrgPerson.inc:885 +#: ../lib/modules/inetOrgPerson.inc:1048 +msgid "Employee type" +msgstr "受雇類別" + +#: ../lib/modules/inetOrgPerson.inc:407 +msgid "Employee type: Contractor, Employee, Intern, Temp, External, ..." +msgstr "受雇類別:包商,雇員,實習者,臨時員工,外部員工, ..." + +#: ../templates/lists/changePassword.php:249 +#: ../templates/lists/changePassword.php:255 +#: ../templates/login.php:398 +msgid "Empty password submitted. Please try again." +msgstr "密碼空白,請重試." + +#: ../templates/tree/download_binary_attr.php:71 +msgid "Encountered an error while performing search." +msgstr "搜尋時發生錯誤." + +#: ../lib/modules/sambaSamAccount.inc:478 +msgid "Eniwetok, Kwajalein" +msgstr "埃尼威托克島, 瓜加林島" + +#: ../templates/tree/add_value_form.php:137 +msgid "Enter the value you would like to add:" +msgstr "輸入想增加的值:" + +#: ../lib/export.inc:407 +msgid "Entry" +msgstr "項目" + +#: ../templates/tree/rdelete.php:118 +#, php-format +msgid "Entry %s and sub-tree deleted successfully." +msgstr "項目 %s 及其子樹刪除成功" + +#: ../templates/tree/delete.php:107 +#, php-format +msgid "Entry %s deleted successfully." +msgstr "項目 %s 刪除成功" + +#: ../templates/schema/schema.php:171 +msgid "Equality" +msgstr "相等比對規則" + +#: ../templates/config/mainmanage.php:256 +msgid "Error" +msgstr "錯誤" + +#: ../templates/delete.php:235 +#, php-format +msgid "Error while deleting DN: %s" +msgstr "刪除DN: %s 時發生錯誤" + +#: ../help/help.inc:128 +msgid "Every account type needs exactly one base module. This module provides a structural object class." +msgstr "每個帳號類型都一定要有一個基本模組.這個模組提供一個結構性(structural)的物件類別." + +#: ../help/help.inc:74 +#: ../help/help.inc:80 +#: ../help/help.inc:86 +#: ../help/help.inc:91 +#: ../help/help.inc:110 +msgid "Example" +msgstr "範例" + +#: ../templates/masscreate.php:162 +#: ../templates/masscreate.php:321 +msgid "Example value" +msgstr "範例值" + +#: ../help/help.inc:62 +msgid "Examples" +msgstr "範例" + +#: ../templates/config/confmain.php:386 +msgid "Execute" +msgstr "執行" + +#: ../templates/tests/lamdaemonTest.php:292 +msgid "Execute lamdaemon" +msgstr "執行 lamdaemon" + +#: ../templates/tree/edit.php:119 +#: ../templates/tree/export_form.php:88 +#: ../templates/tree/export_form.php:96 +msgid "Export" +msgstr "匯出" + +#: ../templates/tree/export_form.php:135 +msgid "Export format" +msgstr "匯出格式" + +#: ../templates/tree/add_attr.php:132 +msgid "Failed to add the attribute." +msgstr "新增屬性值失敗!" + +#: ../templates/initsuff.php:154 +msgid "Failed to create entry!" +msgstr "新增項目失敗!" + +#: ../templates/tree/rdelete.php:121 +#: ../templates/tree/rdelete.php:142 +#: ../templates/tree/rdelete.php:154 +#, php-format +msgid "Failed to delete entry %s" +msgstr "刪除 %s 項目失敗!" + +#: ../lib/modules/inetOrgPerson.inc:83 +#: ../lib/modules/inetOrgPerson.inc:153 +#: ../lib/modules/inetOrgPerson.inc:281 +#: ../lib/modules/inetOrgPerson.inc:438 +#: ../lib/modules/inetOrgPerson.inc:439 +#: ../lib/modules/inetOrgPerson.inc:854 +#: ../lib/modules/inetOrgPerson.inc:1057 +#: ../lib/modules/inetOrgPerson.inc:1389 +msgid "Fax number" +msgstr "傳真號碼" + +#: ../templates/config/mainmanage.php:329 +msgid "File" +msgstr "檔案" + +#: ../lib/modules/sambaSamAccount.inc:244 +msgid "File name and path relative to netlogon-share which should be executed on logon. $user and $group are replaced with user and group name." +msgstr "在使用者登入時會自動執行的指令檔檔名及其相對路徑. $user 和$group 會以使用者及群組名稱來置換" + +#: ../lib/modules/sambaAccount.inc:392 +msgid "File name and path relative to the netlogon-share which should be executed on logon. $user and $group are replaced with user and group name." +msgstr "登入時自動執行的檔案名稱及其相對路徑.$user 會$group 會以使用者及群組名稱所置換." + +#: ../templates/tools.php:64 +#: ../templates/masscreate.php:124 +msgid "File upload" +msgstr "檔案上傳" + +#: ../templates/tree/add_attr.php:95 +msgid "File upload failed!" +msgstr "上傳檔案失敗!" + +#: ../lib/lists.inc:389 +msgid "Filter" +msgstr "搜尋過濾器" + +#: ../lib/types/user.inc:87 +#: ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:151 +#: ../lib/modules/inetOrgPerson.inc:196 +#: ../lib/modules/inetOrgPerson.inc:398 +#: ../lib/modules/inetOrgPerson.inc:718 +#: ../lib/modules/inetOrgPerson.inc:1046 +#: ../lib/modules/inetOrgPerson.inc:1341 +msgid "First name" +msgstr "名字" + +#: ../lib/modules/inetOrgPerson.inc:73 +#: ../lib/modules/inetOrgPerson.inc:74 +msgid "First name contains invalid characters!" +msgstr "名字包含無效字元" + +#: ../lib/modules/inetOrgPerson.inc:399 +msgid "First name of user. Only letters, - and spaces are allowed." +msgstr "使用者的名字(first name),只容許使用字母,-(減號)和空白" + +#: ../lib/modules/kolabUser.inc:146 +msgid "For automatic invitation handling." +msgstr "如何自動化處理邀請事件." + +#: ../help/help.inc:178 +msgid "Format" +msgstr "格式" + +#: ../lib/modules/kolabUser.inc:93 +#: ../lib/modules/kolabUser.inc:127 +#: ../lib/modules/kolabUser.inc:177 +#: ../lib/modules/kolabUser.inc:223 +#: ../lib/modules/kolabUser.inc:335 +#: ../lib/modules/kolabUser.inc:785 +#: ../lib/modules/kolabUser.inc:837 +msgid "Free/Busy interval" +msgstr "空閒/忙碌 間隔時間" + +#: ../lib/modules/kolabUser.inc:255 +#: ../lib/modules/kolabUser.inc:256 +msgid "Free/Busy interval must be a number!" +msgstr "空閒/忙碌 間隔時間必須是一個數字!" + +#: ../lib/modules/sambaSamAccount.inc:1189 +msgid "Friday" +msgstr "星期五" + +#: ../templates/lists/changePassword.php:139 +msgid "Full name" +msgstr "全名" + +#: ../lib/modules/inetOrgPerson.inc:247 +msgid "GB-12345" +msgstr "GB-12345" + +#: ../lib/types/host.inc:87 +#: ../lib/types/group.inc:84 +#: ../lib/types/user.inc:84 +#: ../lib/modules/posixGroup.inc:160 +#: ../lib/modules/posixGroup.inc:356 +#: ../lib/modules/posixGroup.inc:386 +#: ../lib/modules/posixGroup.inc:406 +#: ../lib/modules/posixGroup.inc:450 +#: ../lib/modules/posixGroup.inc:470 +#: ../lib/modules/posixAccount.inc:88 +#: ../lib/modules/posixAccount.inc:1217 +#: ../lib/modules/sambaGroupMapping.inc:345 +msgid "GID number" +msgstr "GID 編號" + +#: ../lib/modules/posixGroup.inc:470 +msgid "GID number has changed. Please select checkbox to change GID number of users and hosts." +msgstr "GID的編號已經更改,請選擇核取方塊來改變使用者帳號和主機帳號的GID" + +#: ../lib/modules/posixAccount.inc:88 +#, php-format +msgid "GID number has changed. To keep file ownership you have to run the following command as root: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" +msgstr "GID的編號已經更改,要保持正確的檔案擁有群組,您必須以root的身分執行以下命令: 'find / -gid %s -uid %s -exec chgrp %s {} \\;'" + +#: ../lib/modules/posixGroup.inc:477 +msgid "GID number has to be a numeric value!" +msgstr "GID必須使用數字" + +#: ../lib/modules/posixAccount.inc:266 +#: ../lib/modules/posixAccount.inc:298 +#: ../lib/modules/posixAccount.inc:376 +#: ../lib/modules/posixAccount.inc:414 +#: ../lib/modules/posixAccount.inc:980 +#: ../lib/modules/posixAccount.inc:1218 +msgid "Gecos" +msgstr "備註資料(Gecos)" + +#: ../templates/lists/changePassword.php:170 +#: ../help/help.inc:175 +msgid "Generate random password" +msgstr "產生隨機密碼" + +#: ../lib/modules/kolabUser.inc:200 +msgid "Germany" +msgstr "德國" + +#: ../templates/schema/schema.php:133 +#: ../templates/schema/schema.php:270 +#: ../templates/schema/schema.php:301 +#: ../templates/schema/schema.php:326 +msgid "Go" +msgstr "開始" + +#: ../lib/modules/quota.inc:112 +#: ../lib/modules/quota.inc:360 +msgid "Grace block period" +msgstr "區塊配額的寬限期" + +#: ../lib/modules/quota.inc:113 +msgid "Grace block period. Most filesystems use a fixed maximum value of 7 days." +msgstr "區塊配額的寬限期,大部分的檔案系統都設定最大為7天." + +#: ../lib/modules/quota.inc:135 +msgid "Grace inode (files) period. Most filesystems use a fixed maximum value of 7 days." +msgstr "inode(檔案數目)配額的寬限期,大部分的檔案系統都設定最大為7天." + +#: ../lib/modules/quota.inc:134 +#: ../lib/modules/quota.inc:364 +msgid "Grace inode period" +msgstr "檔案數目配額的寬限期" + +#: ../templates/config/confmain.php:391 +#: ../templates/selfService/adminMain.php:498 +msgid "Group" +msgstr "群組" + +#: ../lib/types/group.inc:54 +msgid "Group accounts (e.g. Unix and Samba)" +msgstr "群組帳號(例如:Unix和Samba)" + +#: ../lib/types/group.inc:87 +#: ../lib/modules/posixGroup.inc:362 +msgid "Group description" +msgstr "群組說明" + +#: ../lib/modules/posixGroup.inc:391 +msgid "Group description. If left empty group name will be used." +msgstr "群組的說明,若留空白,則預設值是群組名稱." + +#: ../lib/types/gon.inc:83 +#: ../lib/types/gon.inc:84 +#: ../lib/types/group.inc:86 +msgid "Group member DNs" +msgstr "群組成員的DN" + +#: ../lib/types/group.inc:85 +#: ../lib/modules/posixGroup.inc:168 +#: ../lib/modules/posixGroup.inc:234 +#: ../lib/modules/posixGroup.inc:368 +#: ../lib/modules/posixGroup.inc:394 +#: ../lib/modules/posixGroup.inc:398 +#: ../lib/modules/posixGroup.inc:451 +msgid "Group members" +msgstr "群組成員" + +#: ../lib/types/gon.inc:82 +#: ../lib/types/group.inc:83 +#: ../lib/modules/posixGroup.inc:156 +#: ../lib/modules/posixGroup.inc:348 +#: ../lib/modules/posixGroup.inc:382 +#: ../lib/modules/posixGroup.inc:449 +#: ../lib/modules/posixGroup.inc:478 +#: ../lib/modules/posixGroup.inc:479 +#: ../lib/modules/posixGroup.inc:480 +#: ../lib/modules/groupOfNames.inc:60 +#: ../lib/modules/groupOfNames.inc:84 +#: ../lib/modules/groupOfNames.inc:439 +msgid "Group name" +msgstr "群組名稱" + +#: ../lib/modules/posixGroup.inc:480 +#: ../lib/modules/posixGroup.inc:481 +msgid "Group name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !" +msgstr "群組名稱包含無效字元,可用的字元為: a-z, A-Z, 0-9, 及 -(減號)_(底線) !" + +#: ../lib/modules/posixGroup.inc:479 +msgid "Group name in use. Selected next free group name." +msgstr "群組名稱已被使用,請選擇可用的群組名稱." + +#: ../lib/modules/posixGroup.inc:383 +msgid "Group name of the group which should be created. Valid characters are: a-z, A-Z, 0-9 and .-_ . LAM does not allow a number as first character because groupadd also does not allow it. If group name is already used group name will be expanded with a number. The next free number will be used." +msgstr "將要建立的群組名稱. 可用的字元為: a-z, A-Z, 0-9, .-_ . 因為groupadd指令不允許以數字開頭的群組名稱, 所以 LAM 也不允許. 如果該群組名稱已經存在, 則會在結尾自動加上下一個可用的數字" + +#: ../lib/types/gon.inc:44 +#: ../lib/modules/groupOfNames.inc:44 +msgid "Group of names" +msgstr "名稱的群組" + +#: ../lib/types/gon.inc:53 +msgid "Group of names accounts" +msgstr "Group of names accounts" + +#: ../lib/modules/groupOfUniqueNames.inc:42 +msgid "Group of unique names" +msgstr "獨特名稱的群組" + +#: ../lib/modules/posixGroup.inc:374 +#: ../lib/modules/posixGroup.inc:402 +msgid "Group password" +msgstr "群組密碼" + +#: ../lib/modules/sambaGroupMapping.inc:227 +msgid "Group type" +msgstr "群組類型" + +#: ../lib/types/group.inc:45 +#: ../lib/modules/posixGroup.inc:312 +msgid "Groups" +msgstr "群組帳號" + +#: ../lib/modules/quota.inc:553 +msgid "Hard block" +msgstr "區塊配碩" + +#: ../lib/modules/quota.inc:106 +#: ../lib/modules/quota.inc:107 +#: ../lib/modules/quota.inc:359 +#: ../lib/modules/quota.inc:444 +msgid "Hard block limit" +msgstr "硬性區塊配額限制" + +#: ../lib/modules/quota.inc:555 +msgid "Hard inode" +msgstr "硬性檔案數目" + +#: ../lib/modules/quota.inc:129 +msgid "Hard inode (files) limit" +msgstr "硬性檔案數目限制" + +#: ../lib/modules/quota.inc:128 +#: ../lib/modules/quota.inc:363 +#: ../lib/modules/quota.inc:446 +msgid "Hard inode limit" +msgstr "硬性檔案數目限制" + +#: ../lib/modules/sambaSamAccount.inc:480 +msgid "Hawaii" +msgstr "夏威夷" + +#: ../templates/pdfedit/pdfpage.php:396 +#: ../templates/pdfedit/pdfpage.php:565 +#: ../templates/pdfedit/pdfpage.php:579 +msgid "Headline" +msgstr "標題" + +#: ../templates/lists/changePassword.php:182 +#: ../templates/ou_edit.php:177 +#: ../templates/ou_edit.php:192 +#: ../templates/masscreate.php:157 +#: ../templates/masscreate.php:170 +#: ../templates/masscreate.php:308 +#: ../templates/config/profmanage.php:174 +#: ../templates/config/profmanage.php:226 +#: ../templates/config/profmanage.php:256 +#: ../templates/config/profmanage.php:290 +#: ../templates/config/profmanage.php:335 +#: ../templates/config/profmanage.php:359 +#: ../templates/config/mainmanage.php:180 +#: ../templates/config/mainmanage.php:197 +#: ../templates/config/mainmanage.php:236 +#: ../templates/config/mainmanage.php:273 +#: ../templates/config/mainmanage.php:289 +#: ../templates/config/mainmanage.php:353 +#: ../templates/config/confmodules.php:123 +#: ../templates/config/confmain.php:154 +#: ../templates/config/confmain.php:168 +#: ../templates/config/confmain.php:190 +#: ../templates/config/confmain.php:225 +#: ../templates/config/confmain.php:249 +#: ../templates/config/confmain.php:330 +#: ../templates/config/confmain.php:349 +#: ../templates/config/confmain.php:358 +#: ../templates/config/confmain.php:403 +#: ../templates/config/confmain.php:422 +#: ../templates/config/confmain.php:436 +#: ../templates/config/conftypes.php:204 +#: ../templates/config/conftypes.php:220 +#: ../templates/config/conflogin.php:129 +#: ../templates/config/mainlogin.php:120 +#: ../templates/selfService/profManage.php:160 +#: ../templates/selfService/profManage.php:200 +#: ../templates/selfService/profManage.php:235 +#: ../templates/selfService/profManage.php:259 +#: ../templates/selfService/adminLogin.php:126 +#: ../templates/selfService/adminMain.php:273 +#: ../templates/selfService/adminMain.php:287 +#: ../templates/selfService/adminMain.php:301 +#: ../templates/selfService/adminMain.php:315 +#: ../templates/selfService/adminMain.php:338 +#: ../templates/selfService/adminMain.php:358 +#: ../templates/selfService/adminMain.php:373 +#: ../templates/selfService/adminMain.php:388 +#: ../templates/selfService/adminMain.php:472 +#: ../templates/selfService/adminMain.php:506 +#: ../templates/pdfedit/pdfpage.php:682 +#: ../templates/profedit/profilepage.php:198 +#: ../templates/profedit/profilepage.php:218 +#: ../templates/profedit/profilepage.php:255 +#: ../lib/lists.inc:385 +#: ../lib/modules.inc:831 +#: ../lib/modules.inc:1168 +#: ../lib/modules.inc:1224 +#: ../lib/modules.inc:1341 +msgid "Help" +msgstr "說明" + +#: ../templates/masscreate.php:145 +msgid "Here is a list of possible columns. The red columns must be included in the CSV file and filled with data for all accounts." +msgstr "這裡有一些可能的欄位.紅色的欄位必須包含在 CSV檔內,而且填上用所有帳號的資料." + +#: ../templates/tools.php:89 +msgid "Here you can browse LDAP object classes and attributes." +msgstr "可以瀏覽LDAP中的物件類別及屬性." + +#: ../lib/modules/sambaSamAccount.inc:323 +msgid "Here you can change the settings for the terminal server access." +msgstr "您可以在此更改終端伺服器的存取設定." + +#: ../templates/masscreate.php:91 +msgid "Here you can create multiple accounts by providing a CSV file." +msgstr "您可以上傳CSV檔來建立大量帳號" + +#: ../lib/modules/groupOfNames.inc:65 +msgid "Here you can enter a description for this group." +msgstr "在此輸入這個群組的說明." + +#: ../lib/modules/posixAccount.inc:356 +msgid "Here you can enter a list of additional group memberships. The group names are separated by commas." +msgstr "您可以在此輸入一些額外的群組成員.群組名稱以逗點分隔." + +#: ../help/help.inc:140 +msgid "Here you can input small filter expressions (e.g. 'value' or 'v*'). LAM will filter case-insensitive." +msgstr "在此輸入簡單的過濾語法(例如 'value' 或 'v*'). LAM在過濾時不分大小寫." + +#: ../help/help.inc:153 +msgid "Here you can load an account profile to set default settings for your account. The \"default\" profile is automatically loaded for new accounts." +msgstr "您可以指定一個帳號設定檔來設定此帳號的預設值.新增的帳號會自動使用\"default\"設定檔." + +#: ../templates/tools.php:57 +msgid "Here you can manage your account profiles." +msgstr "您可以在此編輯帳號設定檔." + +#: ../help/help.inc:155 +msgid "Here you can select a PDF structure and export the account to a PDF file." +msgstr "您可以在此選擇一個PDF架構,然後將帳號滙出成PDF檔." + +#: ../help/help.inc:134 +msgid "Here you can select where LAM should save its log messages. System logging will go to Syslog on Unix systems and event log on Windows. You can also select an extra file." +msgstr "您可以在此選擇 LAM 要將記錄檔存放在何處. \"系統記錄\"在Unix系統上表示Syslog,在Windows系統上表示事件記錄簿.您也可以選擇一個其他檔案." + +#: ../help/help.inc:106 +msgid "Here you can select which plugins you want to use for account management." +msgstr "您可以選擇一些帳號管理的額外功能(plugins)" + +#: ../lib/modules/phpGroupwareUser.inc:79 +msgid "Here you can specify if the account is active or inactive." +msgstr "您可以在此設定帳號的啟用或停用." + +#: ../help/help.inc:138 +msgid "Here you can specify minimum requirements for passwords. The character classes are: lowercase, uppercase, numeric and symbols." +msgstr "您可以在此指定使用者密碼的最低條件. 字元類型包含: 小寫字母, 大寫字母, 數字和符號." + +#: ../lib/modules/sambaDomain.inc:95 +msgid "Here you can specify the minimum number of characters for a user password." +msgstr "您可以在此指定使用者密碼的最小長度." + +#: ../templates/lists/changePassword.php:192 +msgid "Here you can specify the new password yourself." +msgstr "您可以在此設定新的密碼." + +#: ../lib/modules/sambaSamAccount.inc:314 +msgid "Here you can specify the shadowing mode." +msgstr "您可以在此指定shadow的模式." + +#: ../templates/tools.php:96 +msgid "Here you can test if certain LAM features work on your installation." +msgstr "測試您所安裝的LAM系統的功能是否正確執行." + +#: ../templates/tree/edit.php:104 +msgid "Hide internal attributes" +msgstr "隱藏內部屬性" + +#: ../templates/masscreate.php:130 +msgid "Hint: Format all cells as text in your spreadsheet program and turn off auto correction." +msgstr "提示: 將試算表的表格格式設定為文字,然後關閉自動修正的功能" + +#: ../templates/tree/edit.php:124 +msgid "Hint: To delete an attribute, empty the text field and click save." +msgstr "提示:要刪除一個屬性,只要將其欄位值清空然後按儲存." + +#: ../lib/modules/posixAccount.inc:401 +msgid "Hold the CTRL-key to (de)select multiple groups." +msgstr "按CTRL鍵可以複選群組." + +#: ../lib/types/user.inc:89 +#: ../lib/modules/sambaSamAccount.inc:286 +#: ../lib/modules/sambaSamAccount.inc:1309 +#: ../lib/modules/sambaSamAccount.inc:1669 +#: ../lib/modules/posixAccount.inc:63 +#: ../lib/modules/posixAccount.inc:64 +#: ../lib/modules/posixAccount.inc:66 +#: ../lib/modules/posixAccount.inc:94 +#: ../lib/modules/posixAccount.inc:230 +#: ../lib/modules/posixAccount.inc:359 +#: ../lib/modules/posixAccount.inc:363 +#: ../lib/modules/posixAccount.inc:367 +#: ../lib/modules/posixAccount.inc:384 +#: ../lib/modules/posixAccount.inc:785 +#: ../lib/modules/posixAccount.inc:999 +#: ../lib/modules/posixAccount.inc:1166 +#: ../lib/modules/posixAccount.inc:1221 +msgid "Home directory" +msgstr "個人目錄" + +#: ../lib/modules/posixAccount.inc:66 +#, php-format +msgid "Home directory changed. To keep home directory you have to run the following command as root: 'mv %s %s'" +msgstr "使用者目錄已被改變. 要維持一致性, 您應該以root的身分執行以下命令:'mv %s %s'" + +#: ../lib/modules/sambaAccount.inc:150 +#: ../lib/modules/sambaAccount.inc:281 +#: ../lib/modules/sambaAccount.inc:382 +#: ../lib/modules/sambaAccount.inc:785 +#: ../lib/modules/sambaAccount.inc:893 +#: ../lib/modules/sambaSamAccount.inc:234 +#: ../lib/modules/sambaSamAccount.inc:404 +#: ../lib/modules/sambaSamAccount.inc:1042 +#: ../lib/modules/sambaSamAccount.inc:1320 +#: ../lib/modules/sambaSamAccount.inc:1464 +#: ../lib/modules/sambaSamAccount.inc:1643 +#: ../lib/modules/sambaSamAccount.inc:1670 +msgid "Home drive" +msgstr "個人目錄網路磁碟" + +#: ../lib/modules/sambaAccount.inc:61 +#: ../lib/modules/sambaAccount.inc:62 +#: ../lib/modules/sambaAccount.inc:156 +#: ../lib/modules/sambaAccount.inc:287 +#: ../lib/modules/sambaAccount.inc:385 +#: ../lib/modules/sambaAccount.inc:788 +#: ../lib/modules/sambaAccount.inc:892 +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaSamAccount.inc:82 +#: ../lib/modules/sambaSamAccount.inc:237 +#: ../lib/modules/sambaSamAccount.inc:410 +#: ../lib/modules/sambaSamAccount.inc:1050 +#: ../lib/modules/sambaSamAccount.inc:1470 +#: ../lib/modules/sambaSamAccount.inc:1640 +msgid "Home path" +msgstr "個人目錄的路徑" + +#: ../lib/modules/sambaAccount.inc:61 +#: ../lib/modules/sambaSamAccount.inc:81 +#: ../lib/modules/sambaSamAccount.inc:83 +msgid "Home path is invalid." +msgstr "個人目錄路徑無效" + +#: ../lib/modules/inetOrgPerson.inc:79 +#: ../lib/modules/inetOrgPerson.inc:155 +#: ../lib/modules/inetOrgPerson.inc:269 +#: ../lib/modules/inetOrgPerson.inc:466 +#: ../lib/modules/inetOrgPerson.inc:840 +#: ../lib/modules/inetOrgPerson.inc:1055 +#: ../lib/modules/inetOrgPerson.inc:1373 +msgid "Home telephone number" +msgstr "住宅電話號碼" + +#: ../lib/modules/posixAccount.inc:63 +#: ../lib/modules/posixAccount.inc:65 +msgid "Homedirectory contains invalid characters." +msgstr "個人目錄包含無效字元" + +#: ../lib/types/host.inc:53 +msgid "Host accounts (e.g. Samba)" +msgstr "主機帳號(例如 Samba)" + +#: ../lib/types/host.inc:85 +msgid "Host description" +msgstr "主機說明" + +#: ../lib/modules/account.inc:89 +#: ../lib/modules/posixAccount.inc:415 +#: ../lib/modules/posixAccount.inc:423 +msgid "Host description. If left empty host name will be used." +msgstr "此主機帳號的說明,若留空白,預設使用主機帳號名稱." + +#: ../lib/modules/account.inc:108 +msgid "Host list" +msgstr "主機清單" + +#: ../lib/types/host.inc:82 +#: ../lib/types/host.inc:83 +#: ../lib/modules/account.inc:84 +#: ../lib/modules/posixAccount.inc:78 +#: ../lib/modules/posixAccount.inc:79 +#: ../lib/modules/posixAccount.inc:81 +#: ../lib/modules/posixAccount.inc:277 +#: ../lib/modules/posixAccount.inc:410 +msgid "Host name" +msgstr "主機帳號名稱" + +#: ../lib/modules/posixAccount.inc:85 +msgid "Host name already exists!" +msgstr "主機名稱已經存在!" + +#: ../lib/modules/posixAccount.inc:83 +msgid "Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !" +msgstr "主機名稱包含無效字元,可用的字元包含 a-z, A-Z, 0-9 及 .-_" + +#: ../lib/modules/posixAccount.inc:79 +msgid "Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ ! Host name must end with $ !" +msgstr "主機名稱包含無效字元,可用的字元包含 a-z, A-Z, 0-9 及 .-_ ! 主機名稱必須以 $ 結束!" + +#: ../lib/modules/posixAccount.inc:81 +msgid "Host name in use. Selected next free host name." +msgstr "主機名稱已被使用,請選擇可用的主機名稱." + +#: ../lib/modules/account.inc:85 +#: ../lib/modules/posixAccount.inc:411 +msgid "Host name of the host which should be created. Valid characters are: a-z,A-Z,0-9, .-_$. LAM does not allow a number as first character because useradd also does not allow it. Host names are always ending with $. If last character is not $ it will be added. If host name is already used host name will be expanded with a number. The next free number will be used." +msgstr "將要建立的主機名稱, 可用的字元為: a-z, A-Z, 0-9, .-_$ . 因為 useradd 指令不允許以數字開頭的名稱, 所以LAM也不允許. 主機名稱必須以 $ 結尾. 如果不是,系統會自動加上. 如果該主機名稱已經存在,則會在結尾自動加上下一個可用的數字." + +#: ../lib/types/host.inc:44 +#: ../lib/modules/posixAccount.inc:58 +#: ../lib/modules/posixAccount.inc:59 +#: ../lib/modules/posixAccount.inc:61 +#: ../lib/modules/posixAccount.inc:166 +msgid "Hosts" +msgstr "主機帳號" + +#: ../templates/lists/changePassword.php:179 +msgid "I am sure" +msgstr "確定" + +#: ../lib/modules/posixGroup.inc:473 +#: ../lib/modules/posixGroup.inc:581 +#: ../lib/modules/posixAccount.inc:69 +#: ../lib/modules/posixAccount.inc:767 +msgid "ID is already in use" +msgstr "ID已經存在" + +#: ../lib/modules/posixGroup.inc:471 +#: ../lib/modules/posixGroup.inc:472 +#: ../lib/modules/posixGroup.inc:473 +#: ../lib/modules/posixGroup.inc:573 +#: ../lib/modules/posixGroup.inc:581 +#: ../lib/modules/posixAccount.inc:67 +#: ../lib/modules/posixAccount.inc:68 +#: ../lib/modules/posixAccount.inc:69 +#: ../lib/modules/posixAccount.inc:763 +#: ../lib/modules/posixAccount.inc:767 +msgid "ID-Number" +msgstr "ID編號" + +#: ../templates/masscreate.php:161 +#: ../templates/masscreate.php:174 +#: ../templates/masscreate.php:313 +msgid "Identifier" +msgstr "名稱" + +#: ../lib/modules/sambaSamAccount.inc:1355 +#: ../lib/modules/sambaSamAccount.inc:1681 +msgid "Idle time limit" +msgstr "連線不動作的時間限制" + +#: ../lib/modules/sambaAccount.inc:354 +#: ../lib/modules/sambaSamAccount.inc:203 +msgid "If checked Unix password will also be used as Samba password." +msgstr "使用Unix的密碼當smaba的密碼." + +#: ../lib/modules/posixAccount.inc:393 +msgid "If checked account will be deactivated by putting a \"!\" before the encrypted password." +msgstr "這個帳號將會被停用,就是在加密的密碼前放上!號." + +#: ../lib/modules/sambaAccount.inc:372 +msgid "If checked account will be deactivated. (Setting D-Flag)" +msgstr "帳號會被關閉(設定 D 旗標)" + +#: ../lib/modules/sambaAccount.inc:360 +#: ../lib/modules/sambaSamAccount.inc:209 +msgid "If checked no password will be used." +msgstr "該帳號不需密碼" + +#: ../lib/modules/sambaAccount.inc:366 +#: ../lib/modules/sambaSamAccount.inc:215 +msgid "If checked password does not expire. (Setting X-Flag)" +msgstr "該帳號的密碼不會過期(設定 X 旗標)" + +#: ../lib/modules/sambaSamAccount.inc:221 +msgid "If checked then the account will be deactivated. (Setting D-Flag)" +msgstr "如果選取的話,帳號會被停用.(被設定 D 旗標)" + +#: ../lib/modules/sambaSamAccount.inc:224 +msgid "If checked then the account will be locked (setting L-Flag). You usually want to use this setting to unlock user accounts which were locked because of failed login attempts." +msgstr "如果選取的話, 帳號就會被鎖住(被設定 L 旗標). 通常帳號會因為多次嘗試登入錯誤而被鎖住, 需要在此處解除鎖定. " + +#: ../lib/modules/posixGroup.inc:387 +msgid "If empty GID number will be generated automaticly depending on your configuration settings." +msgstr "若留空白,依則會自動產生,端視於您的環境設定." + +#: ../lib/modules/posixAccount.inc:348 +msgid "If empty UID number will be generated automaticly." +msgstr "若留空白,則會自動產生." + +#: ../lib/modules/sambaDomain.inc:103 +msgid "If set then users need to login to change their password." +msgstr "若被設定,則使用者必須先更改其密碼才能登入." + +#: ../lib/modules/sambaAccount.inc:357 +#: ../lib/modules/sambaSamAccount.inc:206 +msgid "If set to \"true\" Unix password will also be used as Samba password." +msgstr "如果設為真,則會以Unix的密碼做為Samba的密碼" + +#: ../lib/modules/sambaAccount.inc:375 +#: ../lib/modules/sambaSamAccount.inc:227 +msgid "If set to \"true\" account will be deactivated. (Setting D-Flag)" +msgstr "如果設為真,帳號將會被停用(設定 D 旗標)" + +#: ../lib/modules/sambaAccount.inc:363 +#: ../lib/modules/sambaSamAccount.inc:212 +msgid "If set to \"true\" no password will be used." +msgstr "如果設為真,則不需密碼." + +#: ../lib/modules/sambaAccount.inc:369 +#: ../lib/modules/sambaSamAccount.inc:218 +msgid "If set to \"true\" password does not expire. (Setting X-Flag)" +msgstr "如果設為真,則這個密碼不會過期(設定 X 旗標)" + +#: ../help/help.inc:177 +msgid "If you decide to send the password via mail then the mail template \"config/passwordMailTemplate.txt\" will be used." +msgstr "如果您決定要經由電子郵件傳送密碼, 該郵件格式會使用 \"config/passwordMailTemplate.txt\" 這個mail樣版." + +#: ../lib/modules/sambaSamAccount.inc:263 +msgid "If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "若留空白,則預設使用的演算法為:uidNumber*2 + sambaAlgorithmicRidBase." + +#: ../lib/modules/phpGroupwareGroup.inc:74 +#: ../lib/modules/phpGroupwareUser.inc:75 +msgid "If you set this to \"true\" then the phpGroupware extension will be added." +msgstr "如果設為真,則該 phpGroupware 延伸功能會被加入." + +#: ../help/help.inc:100 +msgid "If you want to change the current preferences password, please enter it here." +msgstr "您可以在這裡更改這個系統設定檔的管理密碼." + +#: ../help/help.inc:124 +msgid "If you want to change your master configuration password, please enter it here." +msgstr "在此變更系統管理者的密碼." + +#: ../lib/modules/sambaAccount.inc:407 +msgid "If you want to create domain administrators or other special users use this option." +msgstr "建立網域管理者或其他特殊帳號." + +#: ../lib/modules/sambaAccount.inc:401 +#: ../lib/modules/sambaGroupMapping.inc:319 +msgid "If you want to use a well known RID you can selcet a well known group." +msgstr "如果您想要使用公開的(well-known)的RID,您可以選擇一個公開的(well-known)群組." + +#: ../templates/tree/export_form.php:120 +msgid "Include system attributes" +msgstr "包含系統屬性" + +#: ../lib/modules/sambaSamAccount.inc:292 +#: ../lib/modules/sambaSamAccount.inc:1330 +#: ../lib/modules/sambaSamAccount.inc:1676 +msgid "Inherit client startup configuration" +msgstr "繼承客戶端的啟動設定" + +#: ../templates/schema/schema.php:401 +#: ../templates/schema/schema.php:422 +msgid "Inherited from" +msgstr "繼承自" + +#: ../templates/schema/schema.php:162 +#: ../templates/schema/schema.php:358 +msgid "Inherits from" +msgstr "繼承自" + +#: ../lib/modules/sambaSamAccount.inc:295 +#: ../lib/modules/sambaSamAccount.inc:1335 +#: ../lib/modules/sambaSamAccount.inc:1677 +msgid "Initial program" +msgstr "初始程式" + +#: ../lib/modules/quota.inc:51 +msgid "Inode hard quota" +msgstr "inode硬性配額" + +#: ../lib/modules/quota.inc:51 +#: ../lib/modules/quota.inc:52 +msgid "Inode hard quota contains invalid characters. Only natural numbers are allowed." +msgstr "inode硬性配額包含無效字元.只能使用自然數." + +#: ../lib/modules/quota.inc:55 +msgid "Inode quota" +msgstr "inode配額" + +#: ../lib/modules/quota.inc:49 +msgid "Inode soft quota" +msgstr "inode軟性配額" + +#: ../lib/modules/quota.inc:49 +#: ../lib/modules/quota.inc:50 +msgid "Inode soft quota contains invalid characters. Only natural numbers are allowed." +msgstr "inode軟性配額包含無效字元.只能使用自然數." + +#: ../lib/modules/quota.inc:55 +#: ../lib/modules/quota.inc:56 +msgid "Inode soft quota must be smaller than inode hard quota." +msgstr "inode軟性配額必須小於硬性配額." + +#: ../templates/selfService/adminMain.php:400 +msgid "Input fields" +msgstr "輸入欄位" + +#: ../lib/modules/sambaAccount.inc:62 +#: ../lib/modules/sambaAccount.inc:63 +#: ../lib/modules/sambaSamAccount.inc:82 +msgid "Inserted user or group name in home path." +msgstr "在 home 路徑中已插入的使用者和和群組名稱." + +#: ../lib/modules/sambaAccount.inc:68 +#: ../lib/modules/sambaSamAccount.inc:88 +msgid "Inserted user or group name in logon script." +msgstr "在登入指令檔中已插入的使用者和群組名稱." + +#: ../lib/modules/sambaAccount.inc:65 +#: ../lib/modules/sambaAccount.inc:66 +#: ../lib/modules/sambaSamAccount.inc:85 +msgid "Inserted user or group name in profile path." +msgstr "在原則設定檔路徑中已插入的使用者和群組名稱." + +#: ../templates/massBuildAccounts.php:170 +msgid "Invalid RDN attribute!" +msgstr "錯誤的 RDN 屬性!" + +#: ../lib/modules/sambaGroupMapping.inc:72 +msgid "Invalid account" +msgstr "無效的帳號" + +#: ../lib/modules/kolabUser.inc:129 +#: ../lib/modules/kolabUser.inc:145 +#: ../lib/modules/kolabUser.inc:192 +#: ../lib/modules/kolabUser.inc:373 +#: ../lib/modules/kolabUser.inc:797 +#: ../lib/modules/kolabUser.inc:920 +msgid "Invitation policy" +msgstr "邀請的原則" + +#: ../lib/modules/kolabUser.inc:149 +msgid "Invitation policy list" +msgstr "邀請原則列表" + +#: ../lib/modules/sambaSamAccount.inc:495 +msgid "Islamabad, Karachi" +msgstr "伊斯蘭馬巴德, 喀拉蚩港市" + +#: ../lib/modules/posixGroup.inc:471 +#: ../lib/modules/posixAccount.inc:68 +msgid "It is possible that this ID-number is reused. This can cause several problems because files with old permissions might still exist. To avoid this warning set maxUID to a higher value." +msgstr "這個UID可能會被重覆使用.這會造成一些問題. 因為可能會存在屬於該ID權限的舊檔案.要避免這個警告訊息,請將最大的UID設高一點." + +#: ../lib/modules/inetOrgPerson.inc:93 +#: ../lib/modules/inetOrgPerson.inc:168 +#: ../lib/modules/inetOrgPerson.inc:215 +#: ../lib/modules/inetOrgPerson.inc:394 +#: ../lib/modules/inetOrgPerson.inc:871 +#: ../lib/modules/inetOrgPerson.inc:1045 +msgid "Job title" +msgstr "職稱" + +#: ../lib/modules/inetOrgPerson.inc:395 +msgid "Job title of user: President, department manager, ..." +msgstr "使用者的職稱.如總裁,部長...." + +#: ../templates/schema/schema.php:260 +msgid "Jump to a matching rule" +msgstr "選擇一個比對規則" + +#: ../templates/schema/schema.php:119 +msgid "Jump to an attribute type" +msgstr "選擇一個屬性類型" + +#: ../templates/schema/schema.php:313 +#: ../templates/schema/schema.php:363 +#: ../templates/schema/schema.php:378 +msgid "Jump to an object class" +msgstr "選擇一個物件類別" + +#: ../lib/modules/kolabUser.inc:72 +msgid "Kolab" +msgstr "Kolab" + +#: ../templates/tree/delete_form.php:100 +#, php-format +msgid "LAM can recursively delete this entry and all of its children. See below for a list of all the entries that this action will delete. Do you want to do this?" +msgstr "LAM能遞迴地刪除這個項目及其所有子項目檢視下列將被刪除的所有項目. 下列是將被刪除的項目清單. 確定刪除?" + +#: ../templates/login.php:212 +#: ../templates/config/index.php:61 +msgid "LAM configuration" +msgstr "LAM 系統設定" + +#: ../templates/massBuildAccounts.php:194 +msgid "LAM has checked your input and is now ready to create the accounts." +msgstr "LAM已經檢查您的輸入,現在準備建立帳號." + +#: ../lib/modules/posixGroup.inc:411 +#: ../lib/modules/posixAccount.inc:344 +msgid "LAM supports CRYPT, SHA, SSHA, MD5 and SMD5 to generate the hash value of passwords. SSHA and CRYPT are the most common but CRYPT does not support passwords greater than 8 letters. We do not recommend to use plain text passwords." +msgstr "LAM支援 CRYPT, SHA, SSHA, MD5 和 SMD5 的雜湊演算法, 用來產生密碼的雜湊值. SSHA 和 CRYPT 是最常用的. 但 CRYPT 並不支援超過 8 個字元的密碼. 我們不建議使用明文的密碼." + +#: ../templates/tests/index.php:54 +msgid "LAM tests" +msgstr "LAM 測試" + +#: ../templates/tree/create.php:184 +#: ../templates/massDoUpload.php:90 +#, php-format +msgid "LAM was unable to create account %s! An LDAP error occured." +msgstr "LAM無法建立 %s 帳號,LDAP發生錯誤." + +#: ../lib/modules/sambaGroupMapping.inc:398 +msgid "LAM was unable to find a Samba 3 domain with this name!" +msgstr "LAM找不到這個名稱的Samba3網域!" + +#: ../lib/modules/sambaSamAccount.inc:107 +msgid "LAM was unable to find a domain with this name!" +msgstr "LAM找不到這個網域!" + +#: ../lib/modules/posixAccount.inc:86 +msgid "LAM was unable to find a group with this name!" +msgstr "LAM找不到這個群組" + +#: ../lib/modules/posixAccount.inc:1613 +#, php-format +msgid "LAM was unable to modify group memberships for group: %s" +msgstr "LAM無法修改 %s 群組的成員" + +#: ../help/help.inc:160 +msgid "LAM will search for accounts in this part of the LDAP tree." +msgstr "LAM將在LDAP樹的此處開始搜尋帳號." + +#: ../help/help.inc:162 +msgid "LAM will use this LDAP DN and password to search for accounts. It is sufficient to specify an account with read rights. If nothing is inserted then LAM will try to connect anonymously." +msgstr "LAM將會使用這個LDAP DN及密碼來搜尋帳號. 這個帳號只需擁有讀取的權限即可. 如果未輸入任何內容,則LAM將會以匿名的方式連結LDAP." + +#: ../templates/profedit/profilepage.php:179 +msgid "LDAP" +msgstr "LDAP" + +#: ../templates/config/confmodules.php:76 +#: ../templates/config/confmain.php:121 +#: ../templates/config/confmain.php:597 +#: ../templates/config/conftypes.php:154 +#: ../templates/selfService/adminMain.php:107 +msgid "LDAP Account Manager Configuration" +msgstr "LDAP Account Manager設定" + +#: ../lib/modules/kolabUser.inc:142 +msgid "LDAP DN (e.g. dc=company,dc=com) of accounts. This is used to find possible delegation candidates." +msgstr "帳號的LDAP DN(例如: dc=compant,dc=com). 這被用來尋找可能的授權者." + +#: ../lib/lists.inc:854 +msgid "LDAP Search failed! Please check your preferences." +msgstr "LDAP搜尋失敗! 請檢查您的設定." + +#: ../templates/config/conftypes.php:79 +msgid "LDAP Suffix is invalid!" +msgstr "LDAP的尾碼無效!" + +#: ../templates/login.php:445 +msgid "LDAP error, server says:" +msgstr "LDAP錯誤, 伺服器訊息:" + +#: ../lib/modules.inc:1210 +msgid "LDAP operation successful." +msgstr "LDAP操作成功." + +#: ../templates/selfService/adminMain.php:311 +msgid "LDAP password" +msgstr "LDAP 密碼" + +#: ../templates/selfService/adminMain.php:324 +#: ../help/help.inc:163 +msgid "LDAP search attribute" +msgstr "LDAP搜尋屬性" + +#: ../templates/login.php:330 +msgid "LDAP server" +msgstr "LDAP伺服器" + +#: ../lib/types/group.inc:240 +#: ../lib/lists.inc:837 +msgid "LDAP sizelimit exceeded, not all entries are shown." +msgstr "超過LDAP限制的大小,無法顯示全部項目." + +#: ../templates/config/conftypes.php:200 +#: ../templates/selfService/adminMain.php:283 +#: ../templates/profedit/profilepage.php:183 +#: ../help/help.inc:71 +#: ../help/help.inc:159 +msgid "LDAP suffix" +msgstr "LDAP的尾碼" + +#: ../templates/massDoUpload.php:126 +msgid "LDAP upload has finished" +msgstr "LDAP上載完成" + +#: ../templates/massDoUpload.php:74 +msgid "LDAP upload in progress. Please wait." +msgstr "LDAP上載中,請稍候." + +#: ../templates/selfService/adminMain.php:297 +msgid "LDAP user" +msgstr "LDAP 使用者" + +#: ../help/help.inc:161 +msgid "LDAP user and password" +msgstr "LDAP 使用者及密碼" + +#: ../lib/export.inc:441 +#, php-format +msgid "LDIF Export for: %s" +msgstr "匯出節點 %s 的LDIF檔" + +#: ../templates/tests/lamdaemonTest.php:205 +msgid "Lamdaemon server and path" +msgstr "Lamdaemon 伺服器和路徑" + +#: ../templates/tests/lamdaemonTest.php:169 +msgid "Lamdaemon successfully run." +msgstr "Lamdaemon成功執行." + +#: ../templates/tests/index.php:58 +#: ../templates/tests/lamdaemonTest.php:55 +#: ../templates/tests/lamdaemonTest.php:76 +msgid "Lamdaemon test" +msgstr "Lamdaemon 測試" + +#: ../templates/tests/lamdaemonTest.php:300 +msgid "Lamdaemon test finished." +msgstr "Lamdaemon 測試結束." + +#: ../templates/tests/lamdaemonTest.php:294 +msgid "Lamdaemon: Quota module installed" +msgstr "Lamdaemon: 磁碟配額模組已安裝" + +#: ../templates/tests/lamdaemonTest.php:295 +msgid "Lamdaemon: read quotas" +msgstr "Lamdaemon: 讀取磁碟配額" + +#: ../templates/login.php:279 +msgid "Language" +msgstr "語言" + +#: ../templates/config/confmain.php:516 +msgid "Language is not defined!" +msgstr "尚未定義語言!" + +#: ../templates/config/confmain.php:293 +msgid "Language settings" +msgstr "語言設定" + +#: ../lib/modules/phpGroupwareUser.inc:160 +#: ../lib/modules/phpGroupwareUser.inc:386 +msgid "Last login" +msgstr "上次登入" + +#: ../lib/modules/phpGroupwareUser.inc:168 +#: ../lib/modules/phpGroupwareUser.inc:381 +msgid "Last login from" +msgstr "最後登入位置" + +#: ../lib/types/user.inc:88 +#: ../lib/modules/inetOrgPerson.inc:75 +#: ../lib/modules/inetOrgPerson.inc:151 +#: ../lib/modules/inetOrgPerson.inc:202 +#: ../lib/modules/inetOrgPerson.inc:402 +#: ../lib/modules/inetOrgPerson.inc:725 +#: ../lib/modules/inetOrgPerson.inc:1047 +#: ../lib/modules/inetOrgPerson.inc:1349 +msgid "Last name" +msgstr "姓氏" + +#: ../lib/modules/inetOrgPerson.inc:75 +#: ../lib/modules/inetOrgPerson.inc:76 +msgid "Last name contains invalid characters or is empty!" +msgstr "姓氏包含錯誤字元或是空白!" + +#: ../lib/modules/inetOrgPerson.inc:403 +msgid "Last name of user. Only letters, - and spaces are allowed." +msgstr "使用者的姓氏,只能使用字母, - 和空白." + +#: ../lib/modules/shadowAccount.inc:365 +msgid "Last password change" +msgstr "最後密碼變更" + +#: ../templates/tree/export_form.php:148 +msgid "Line ends" +msgstr "每一行結尾的格式" + +#: ../templates/selfService/adminMain.php:254 +msgid "Link to login page for this self service profile" +msgstr "連結到此自助服務設定檔的登入頁面." + +#: ../templates/config/conftypes.php:216 +#: ../help/help.inc:83 +msgid "List attributes" +msgstr "列出屬性" + +#: ../templates/config/conftypes.php:86 +msgid "List attributes are invalid!" +msgstr "清單上的屬性設定錯誤!" + +#: ../lib/modules/sambaAccount.inc:395 +#: ../lib/modules/sambaSamAccount.inc:247 +msgid "List of Samba workstations the user is allowed to login. Empty means every workstation." +msgstr "容許這個使用者可登入的Samba工作站清單.空白表示任何工作站都可以登入." + +#: ../templates/config/confmain.php:510 +msgid "List of admin users is empty or invalid!" +msgstr "管理者清單是空的或是無效的." + +#: ../templates/tree/delete_form.php:130 +msgid "List of entries to be deleted:" +msgstr "將被刪除的項目清單:" + +#: ../templates/config/confmain.php:418 +msgid "List of valid users" +msgstr "有效使用者列表" + +#: ../lib/modules.inc:1166 +#: ../help/help.inc:152 +msgid "Load profile" +msgstr "載入設定檔" + +#: ../lib/modules/inetLocalMailRecipient.inc:65 +#: ../lib/modules/inetLocalMailRecipient.inc:158 +msgid "Local address" +msgstr "本機郵件信箱" + +#: ../lib/modules/inetLocalMailRecipient.inc:69 +#: ../lib/modules/inetLocalMailRecipient.inc:102 +#: ../lib/modules/inetLocalMailRecipient.inc:316 +msgid "Local address list" +msgstr "本機郵件信箱的清單" + +#: ../lib/modules/sambaGroupMapping.inc:69 +msgid "Local group" +msgstr "本機群組" + +#: ../lib/modules/inetOrgPerson.inc:156 +#: ../lib/modules/inetOrgPerson.inc:160 +#: ../lib/modules/inetOrgPerson.inc:299 +#: ../lib/modules/inetOrgPerson.inc:478 +#: ../lib/modules/inetOrgPerson.inc:795 +#: ../lib/modules/inetOrgPerson.inc:1064 +#: ../lib/modules/inetOrgPerson.inc:1437 +msgid "Location" +msgstr "位置" + +#: ../lib/modules/posixGroup.inc:178 +#: ../lib/modules/posixAccount.inc:258 +#: ../lib/modules/posixAccount.inc:1032 +msgid "Lock password" +msgstr "鎖定密碼" + +#: ../lib/modules/sambaDomain.inc:126 +#: ../lib/modules/sambaDomain.inc:203 +#: ../lib/modules/sambaDomain.inc:337 +#: ../lib/modules/sambaDomain.inc:681 +msgid "Lockout duration" +msgstr "帳號鎖住期間" + +#: ../lib/modules/sambaDomain.inc:203 +msgid "Lockout duration must be are natural number." +msgstr "帳號鎖住期間必須是自然數." + +#: ../lib/modules/sambaDomain.inc:114 +#: ../lib/modules/sambaDomain.inc:205 +#: ../lib/modules/sambaDomain.inc:310 +#: ../lib/modules/sambaDomain.inc:672 +msgid "Lockout users after bad logon attempts" +msgstr "在多次錯誤登入嘗試之後鎖住帳號." + +#: ../lib/modules/sambaDomain.inc:205 +msgid "Lockout users after bad logon attempts must be between 0 and 999." +msgstr "在幾次錯誤登入嘗試之後鎖住帳號. 必須在0-999之間." + +#: ../templates/config/mainmanage.php:282 +#: ../help/help.inc:133 +msgid "Log destination" +msgstr "記錄檔位置" + +#: ../templates/config/mainmanage.php:253 +#: ../help/help.inc:131 +msgid "Log level" +msgstr "記錄層級" + +#: ../templates/config/mainmanage.php:247 +msgid "Logging" +msgstr "記錄" + +#: ../templates/login.php:305 +#: ../templates/config/conflogin.php:59 +#: ../templates/config/mainlogin.php:67 +#: ../templates/selfService/selfServiceLogin.php:129 +#: ../templates/selfService/adminLogin.php:61 +#: ../templates/selfService/adminMain.php:255 +#: ../help/help.inc:57 +msgid "Login" +msgstr "登入" + +#: ../templates/selfService/adminMain.php:352 +#: ../help/help.inc:165 +msgid "Login attribute label" +msgstr "登入屬性標籤" + +#: ../templates/selfService/adminMain.php:367 +#: ../help/help.inc:167 +msgid "Login caption" +msgstr "登入標題" + +#: ../lib/types/user.inc:90 +#: ../lib/modules/posixAccount.inc:244 +#: ../lib/modules/posixAccount.inc:396 +#: ../lib/modules/posixAccount.inc:1020 +#: ../lib/modules/posixAccount.inc:1171 +#: ../lib/modules/posixAccount.inc:1222 +msgid "Login shell" +msgstr "登入的shell" + +#: ../templates/pdfedit/pdfpage.php:399 +msgid "Logo" +msgstr "標誌" + +#: ../lib/modules/sambaDomain.inc:102 +#: ../lib/modules/sambaDomain.inc:277 +#: ../lib/modules/sambaDomain.inc:659 +msgid "Logon for password change" +msgstr "登入密碼變更" + +#: ../lib/modules/sambaSamAccount.inc:108 +#: ../lib/modules/sambaSamAccount.inc:271 +#: ../lib/modules/sambaSamAccount.inc:274 +#: ../lib/modules/sambaSamAccount.inc:448 +#: ../lib/modules/sambaSamAccount.inc:1118 +#: ../lib/modules/sambaSamAccount.inc:1516 +msgid "Logon hours" +msgstr "可登入時間" + +#: ../lib/modules/sambaAccount.inc:67 +#: ../lib/modules/sambaAccount.inc:68 +#: ../lib/modules/sambaAccount.inc:168 +#: ../lib/modules/sambaAccount.inc:299 +#: ../lib/modules/sambaAccount.inc:391 +#: ../lib/modules/sambaAccount.inc:794 +#: ../lib/modules/sambaAccount.inc:894 +#: ../lib/modules/sambaSamAccount.inc:87 +#: ../lib/modules/sambaSamAccount.inc:88 +#: ../lib/modules/sambaSamAccount.inc:243 +#: ../lib/modules/sambaSamAccount.inc:422 +#: ../lib/modules/sambaSamAccount.inc:1066 +#: ../lib/modules/sambaSamAccount.inc:1482 +#: ../lib/modules/sambaSamAccount.inc:1646 +msgid "Logon script" +msgstr "登入指令檔" + +#: ../lib/modules/sambaAccount.inc:67 +#: ../lib/modules/sambaAccount.inc:69 +#: ../lib/modules/sambaSamAccount.inc:87 +#: ../lib/modules/sambaSamAccount.inc:89 +msgid "Logon script is invalid!" +msgstr "登入指令檔無效!" + +#: ../templates/selfService/selfServiceMain.php:233 +#: ../templates/main_header.php:69 +#: ../templates/logout.php:67 +msgid "Logout" +msgstr "登出" + +#: ../lib/modules/ieee802device.inc:51 +#: ../lib/modules/ieee802device.inc:61 +#: ../lib/modules/ieee802device.inc:72 +#: ../lib/modules/ieee802device.inc:102 +msgid "MAC address" +msgstr "MAC位址" + +#: ../lib/modules/ieee802device.inc:65 +msgid "MAC address list" +msgstr "MAC位址清單" + +#: ../lib/modules/ieee802device.inc:197 +msgid "MAC address(es)" +msgstr "MAC位址" + +#: ../lib/modules/sambaSamAccount.inc:501 +msgid "Magadan, Solomon Islands" +msgstr "馬加丹, 所羅門群島" + +#: ../lib/types/mailAlias.inc:44 +#: ../lib/modules/nisMailAlias.inc:55 +msgid "Mail aliases" +msgstr "郵件別名" + +#: ../lib/modules/kolabUser.inc:97 +#: ../lib/modules/kolabUser.inc:181 +#: ../lib/modules/kolabUser.inc:229 +#: ../lib/modules/kolabUser.inc:330 +#: ../lib/modules/kolabUser.inc:781 +msgid "Mail quota" +msgstr "郵件大小限制" + +#: ../lib/modules/kolabUser.inc:257 +#: ../lib/modules/kolabUser.inc:258 +msgid "Mail quota must be a number!" +msgstr "郵件大小限制值必須是一個數字" + +#: ../lib/modules/inetLocalMailRecipient.inc:51 +msgid "Mail routing" +msgstr "郵件寄送" + +#: ../lib/modules/kolabUser.inc:85 +#: ../lib/modules/inetLocalMailRecipient.inc:73 +#: ../lib/modules/inetLocalMailRecipient.inc:79 +#: ../lib/modules/inetLocalMailRecipient.inc:108 +#: ../lib/modules/inetLocalMailRecipient.inc:150 +#: ../lib/modules/inetLocalMailRecipient.inc:319 +msgid "Mail server" +msgstr "郵件伺服器" + +#: ../templates/lists/changePassword.php:319 +#, php-format +msgid "Mail successfully sent to %s." +msgstr "電子郵件已成功寄給 %s." + +#: ../lib/modules/kolabUser.inc:173 +#: ../lib/modules/kolabUser.inc:204 +#: ../lib/modules/kolabUser.inc:318 +#: ../lib/modules/kolabUser.inc:324 +#: ../lib/modules/kolabUser.inc:777 +msgid "Mailbox home server" +msgstr "郵件檔案(mailbox)伺服器" + +#: ../lib/modules/kolabUser.inc:253 +msgid "Mailbox home server name is empty!" +msgstr "郵件檔案伺服器的名稱是空的 !" + +#: ../lib/modules/kolabUser.inc:251 +#: ../lib/modules/kolabUser.inc:252 +msgid "Mailbox home server name is invalid!" +msgstr "郵件檔案伺服器名稱錯誤 !" + +#: ../lib/types/mailAlias.inc:53 +msgid "Mailing aliases (e.g. NIS mail aliases)" +msgstr "電子郵件郵寄的別名(例如: NIS 郵件別名)" + +#: ../lib/modules/nisMailAlias.inc:68 +msgid "Mails to this name are forwarded to the recipients." +msgstr "寄到這個名稱的郵件會被轉寄到這些收件人." + +#: ../templates/pdfedit/pdfpage.php:645 +msgid "Main" +msgstr "主設定頁" + +#: ../templates/selfService/adminMain.php:382 +#: ../help/help.inc:169 +msgid "Main page caption" +msgstr "主頁標題" + +#: ../templates/selfService/adminLogin.php:137 +msgid "Manage self service profiles" +msgstr "管理自助服務設定檔" + +#: ../templates/config/conflogin.php:140 +msgid "Manage server profiles" +msgstr "管理伺服器設定檔" + +#: ../lib/modules/inetOrgPerson.inc:227 +#: ../lib/modules/inetOrgPerson.inc:410 +#: ../lib/modules/inetOrgPerson.inc:921 +#: ../lib/modules/inetOrgPerson.inc:1049 +msgid "Manager" +msgstr "管理者(上司)" + +#: ../templates/tools.php:73 +msgid "Manages OU objects in your LDAP tree." +msgstr "管理LDAP中的OU物件." + +#: ../lib/modules/kolabUser.inc:50 +msgid "Manual" +msgstr "手動" + +#: ../lib/modules/kolabUser.inc:52 +msgid "Manual if conflicts" +msgstr "如果衝突的話使用手動" + +#: ../lib/modules/kolabUser.inc:422 +#: ../lib/modules/kolabUser.inc:588 +msgid "Mark account for deletion" +msgstr "將此帳號標示為刪除" + +#: ../lib/modules/kolabUser.inc:185 +msgid "Mark for deletion" +msgstr "標示為刪除" + +#: ../templates/config/profmanage.php:349 +#: ../templates/selfService/profManage.php:249 +#: ../help/help.inc:125 +msgid "Master password" +msgstr "系統管理者密碼" + +#: ../templates/config/profmanage.php:69 +#: ../templates/selfService/profManage.php:57 +msgid "Master password is wrong!" +msgstr "系統管理者密碼錯誤!" + +#: ../templates/config/mainmanage.php:89 +msgid "Master passwords are different or empty!" +msgstr "管理者密碼不同或空白!" + +#: ../templates/schema/schema.php:273 +msgid "Matching rule OID" +msgstr "比對規則的OID代號" + +#: ../templates/schema/schema.php:82 +#: ../templates/schema/schema.php:83 +msgid "Matching rules" +msgstr "比對規則" + +#: ../lib/modules/posixGroup.inc:315 +#: ../lib/modules/posixGroup.inc:475 +#: ../lib/modules/posixGroup.inc:476 +msgid "Maximum GID number" +msgstr "最大GID編號" + +#: ../lib/modules/posixGroup.inc:475 +msgid "Maximum GID number is invalid or empty!" +msgstr "最大的GID錯誤或空白" + +#: ../lib/modules/posixGroup.inc:476 +msgid "Maximum GID number must be greater than minimum GID number!" +msgstr "最大的GID必須大於最小的GID!" + +#: ../lib/modules/posixAccount.inc:57 +#: ../lib/modules/posixAccount.inc:59 +#: ../lib/modules/posixAccount.inc:60 +#: ../lib/modules/posixAccount.inc:61 +#: ../lib/modules/posixAccount.inc:160 +#: ../lib/modules/posixAccount.inc:169 +msgid "Maximum UID number" +msgstr "最大UID編號" + +#: ../lib/modules/posixAccount.inc:57 +#: ../lib/modules/posixAccount.inc:59 +msgid "Maximum UID number is invalid!" +msgstr "最大UID錯誤" + +#: ../lib/modules/posixAccount.inc:60 +#: ../lib/modules/posixAccount.inc:61 +msgid "Maximum UID number must be greater than minimum UID number!" +msgstr "最大的UID必須大於最小的UID!" + +#: ../templates/tree/add_attr_form.php:167 +#, php-format +msgid "Maximum file size: %s" +msgstr "最大檔案大小: %s" + +#: ../templates/tree/add_value_form.php:194 +#: ../templates/schema/schema.php:219 +msgid "Maximum length" +msgstr "最大長度" + +#: ../lib/lists.inc:875 +#: ../help/help.inc:93 +msgid "Maximum list entries" +msgstr "最大的清單項目" + +#: ../lib/modules/shadowAccount.inc:48 +#: ../lib/modules/shadowAccount.inc:54 +#: ../lib/modules/shadowAccount.inc:104 +#: ../lib/modules/shadowAccount.inc:170 +#: ../lib/modules/shadowAccount.inc:200 +#: ../lib/modules/shadowAccount.inc:283 +#: ../lib/modules/sambaDomain.inc:122 +#: ../lib/modules/sambaDomain.inc:200 +#: ../lib/modules/sambaDomain.inc:202 +#: ../lib/modules/sambaDomain.inc:328 +#: ../lib/modules/sambaDomain.inc:678 +msgid "Maximum password age" +msgstr "密碼最長生命期" + +#: ../lib/modules/groupOfNames.inc:72 +#: ../lib/modules/groupOfNames.inc:76 +#: ../lib/modules/groupOfNames.inc:103 +#: ../lib/modules/groupOfNames.inc:173 +#: ../lib/modules/groupOfNames.inc:451 +msgid "Members" +msgstr "群組成員" + +#: ../lib/modules/sambaSamAccount.inc:488 +msgid "Mid-Atlantic" +msgstr "美國中部大西洋沿岸(Mid-Atlantic)" + +#: ../lib/modules/sambaSamAccount.inc:479 +msgid "Midway Island, Samoa" +msgstr "中途島, 薩摩亞" + +#: ../lib/modules/inetOrgPerson.inc:204 +msgid "Miller" +msgstr "Miller" + +#: ../lib/modules/sambaDomain.inc:94 +#: ../lib/modules/sambaDomain.inc:255 +#: ../lib/modules/sambaDomain.inc:651 +msgid "Minimal password length" +msgstr "最短密碼長度" + +#: ../lib/modules/posixGroup.inc:312 +#: ../lib/modules/posixGroup.inc:474 +msgid "Minimum GID number" +msgstr "最小的GID編號" + +#: ../lib/modules/posixGroup.inc:474 +msgid "Minimum GID number is invalid or empty!" +msgstr "最小GID錯誤或空白!" + +#: ../lib/modules/posixAccount.inc:56 +#: ../lib/modules/posixAccount.inc:58 +#: ../lib/modules/posixAccount.inc:157 +#: ../lib/modules/posixAccount.inc:166 +msgid "Minimum UID number" +msgstr "最小UID編號" + +#: ../lib/modules/posixAccount.inc:56 +#: ../lib/modules/posixAccount.inc:58 +msgid "Minimum UID number is invalid!" +msgstr "最小UID錯誤!" + +#: ../templates/config/mainmanage.php:216 +msgid "Minimum character classes" +msgstr "最少字元類型" + +#: ../templates/config/mainmanage.php:212 +msgid "Minimum lowercase characters" +msgstr "最少小寫字母數目" + +#: ../templates/config/mainmanage.php:214 +msgid "Minimum numeric characters" +msgstr "最少的數字字元數目" + +#: ../lib/modules/shadowAccount.inc:46 +#: ../lib/modules/shadowAccount.inc:99 +#: ../lib/modules/shadowAccount.inc:166 +#: ../lib/modules/shadowAccount.inc:194 +#: ../lib/modules/shadowAccount.inc:278 +#: ../lib/modules/sambaDomain.inc:118 +#: ../lib/modules/sambaDomain.inc:201 +#: ../lib/modules/sambaDomain.inc:319 +#: ../lib/modules/sambaDomain.inc:675 +msgid "Minimum password age" +msgstr "密碼最短的生命期" + +#: ../templates/config/mainmanage.php:211 +msgid "Minimum password length" +msgstr "最短密碼長度" + +#: ../templates/config/mainmanage.php:215 +msgid "Minimum symbolic characters" +msgstr "最少符號數目" + +#: ../templates/config/mainmanage.php:213 +msgid "Minimum uppercase characters" +msgstr "最少大寫字母數目" + +#: ../lib/modules/inetOrgPerson.inc:81 +#: ../lib/modules/inetOrgPerson.inc:152 +#: ../lib/modules/inetOrgPerson.inc:275 +#: ../lib/modules/inetOrgPerson.inc:434 +#: ../lib/modules/inetOrgPerson.inc:435 +#: ../lib/modules/inetOrgPerson.inc:847 +#: ../lib/modules/inetOrgPerson.inc:1056 +msgid "Mobile number" +msgstr "手機號碼" + +#: ../lib/modules/inetOrgPerson.inc:1381 +msgid "Mobile telephone number" +msgstr "手機號碼" + +#: ../templates/lists/changePassword.php:172 +msgid "Mode" +msgstr "模式" + +#: ../templates/config/confmodules.php:88 +msgid "Module selection" +msgstr "模組選擇" + +#: ../lib/modules/sambaSamAccount.inc:1188 +msgid "Monday" +msgstr "星期一" + +#: ../lib/modules/sambaSamAccount.inc:483 +msgid "Mountain Time (US & Canada)" +msgstr "Mountain Time(美國和加拿大)" + +#: ../lib/modules/quota.inc:92 +#: ../lib/modules/quota.inc:356 +#: ../lib/modules/quota.inc:442 +#: ../lib/modules/quota.inc:551 +msgid "Mountpoint" +msgstr "掛載點" + +#: ../lib/modules/quota.inc:93 +msgid "Mountpoint of device with enabled quotas." +msgstr "啟動磁碟配額的裝置所掛載的位置." + +#: ../lib/modules/inetOrgPerson.inc:301 +msgid "MyCity" +msgstr "居住的城市" + +#: ../lib/modules/inetOrgPerson.inc:253 +msgid "Mycity" +msgstr "居住的城市" + +#: ../lib/modules/inetOrgPerson.inc:241 +msgid "Mystreetname 42" +msgstr "居住的街道 42號" + +#: ../templates/tree/templates/creation/new_ou_template.php:59 +#: ../templates/tree/templates/creation/new_ou_template.php:104 +#: ../templates/schema/schema.php:273 +#: ../templates/pdfedit/pdfdelete.php:62 +#: ../templates/pdfedit/pdfdelete.php:65 +#: ../templates/pdfedit/pdfdelete.php:90 +#: ../lib/modules/groupOfNames.inc:138 +msgid "Name" +msgstr "名稱" + +#: ../help/help.inc:147 +msgid "Name under which the profile will be saved. If a profile with the same name exists, it will be overwritten." +msgstr "這個設定檔的名稱,如果相同的設定檔名稱已存在,則會直接覆蓋." + +#: ../lib/modules/ieee802device.inc:109 +msgid "New MAC address" +msgstr "新增MAC位址" + +#: ../templates/ou_edit.php:67 +msgid "New OU created successfully." +msgstr "新增OU成功." + +#: ../lib/modules/ldapPublicKey.inc:103 +msgid "New SSH public key" +msgstr "新增 SSH 公開金鑰" + +#: ../lib/modules/inetOrgPerson.inc:307 +msgid "New York" +msgstr "紐約" + +#: ../lib/types/mailAlias.inc:110 +msgid "New alias" +msgstr "新的別名" + +#: ../templates/config/profmanage.php:126 +msgid "New default profile set successfully." +msgstr "設定預設設定檔成功." + +#: ../lib/types/smbDomain.inc:110 +msgid "New domain" +msgstr "新增網域" + +#: ../templates/pdfedit/pdfpage.php:636 +msgid "New field" +msgstr "新增欄位" + +#: ../lib/types/gon.inc:112 +#: ../lib/types/group.inc:124 +msgid "New group" +msgstr "新增群組" + +#: ../lib/types/host.inc:114 +msgid "New host" +msgstr "新增主機" + +#: ../lib/modules/inetLocalMailRecipient.inc:165 +msgid "New local address" +msgstr "新增本機郵件信箱" + +#: ../templates/config/mainmanage.php:345 +msgid "New master password" +msgstr "系統管理者的新密碼" + +#: ../templates/config/mainmanage.php:86 +msgid "New master password set successfully." +msgstr "新密碼設定成功." + +#: ../lib/lists.inc:105 +msgid "New object" +msgstr "新增物件" + +#: ../templates/tree/templates/creation/new_ou_template.php:47 +#: ../templates/ou_edit.php:168 +#: ../help/help.inc:186 +msgid "New organizational unit" +msgstr "新增organizational unit物件" + +#: ../lib/modules/groupOfNames.inc:252 +msgid "New owner" +msgstr "新增擁有者" + +#: ../templates/config/confmain.php:431 +#: ../lib/modules/posixAccount.inc:1740 +msgid "New password" +msgstr "新密碼" + +#: ../templates/config/profmanage.php:117 +msgid "New password set successfully." +msgstr "新密碼設定成功." + +#: ../lib/modules/nisMailAlias.inc:152 +msgid "New recipient" +msgstr "新增收信者" + +#: ../templates/tree/add_oclass_form.php:134 +msgid "New required attributes:" +msgstr "新增的必要屬性" + +#: ../templates/pdfedit/pdfpage.php:553 +msgid "New section" +msgstr "新增section" + +#: ../lib/types/user.inc:128 +msgid "New user" +msgstr "新增使用者" + +#: ../templates/tree/update_confirm.php:154 +msgid "New value" +msgstr "新的值" + +#: ../templates/tree/create_form.php:138 +#: ../templates/tree/templates/creation/custom.php:86 +#: ../templates/tree/templates/creation/new_ou_template.php:69 +msgid "Next" +msgstr "下一步" + +#: ../lib/modules/sambaDomain.inc:78 +#: ../lib/modules/sambaDomain.inc:158 +#: ../lib/modules/sambaDomain.inc:359 +#: ../lib/modules/sambaDomain.inc:639 +msgid "Next RID" +msgstr "下一個RID" + +#: ../lib/modules/sambaDomain.inc:192 +#: ../lib/modules/sambaDomain.inc:193 +msgid "Next RID is not a number!" +msgstr "填入的下一個RID不是一個數字!" + +#: ../lib/modules/sambaDomain.inc:79 +msgid "Next RID to use when creating accounts (only used by Winbind)." +msgstr "建立帳號時所使用的下一個RID(只有Winbind才會用到)." + +#: ../lib/modules/sambaDomain.inc:87 +msgid "Next RID to use when creating group accounts (only used by Winbind)." +msgstr "建立群組時所使用的下一個RID(只有Winbind才會用到)." + +#: ../lib/modules/sambaDomain.inc:83 +msgid "Next RID to use when creating user accounts (only used by Winbind)." +msgstr "建立使用者帳號時使用的下一個RID(只有Winbind才會用到)." + +#: ../lib/modules/sambaDomain.inc:86 +#: ../lib/modules/sambaDomain.inc:170 +#: ../lib/modules/sambaDomain.inc:369 +#: ../lib/modules/sambaDomain.inc:645 +msgid "Next group RID" +msgstr "下一個群組的RID" + +#: ../lib/modules/sambaDomain.inc:196 +#: ../lib/modules/sambaDomain.inc:197 +msgid "Next group RID is not a number!" +msgstr "下一個群組RID不是一個數字!" + +#: ../lib/modules/sambaDomain.inc:82 +#: ../lib/modules/sambaDomain.inc:164 +#: ../lib/modules/sambaDomain.inc:364 +#: ../lib/modules/sambaDomain.inc:642 +msgid "Next user RID" +msgstr "下一個使用者的RID" + +#: ../lib/modules/sambaDomain.inc:194 +#: ../lib/modules/sambaDomain.inc:195 +msgid "Next user RID is not a number!" +msgstr "下一個使用者RID不是數字!" + +#: ../templates/schema/schema.php:158 +#: ../templates/schema/schema.php:200 +#: ../templates/schema/schema.php:205 +#: ../templates/schema/schema.php:210 +msgid "No" +msgstr "否" + +#: ../lib/modules/sambaSamAccount.inc:525 +#: ../lib/modules/sambaSamAccount.inc:593 +#: ../lib/modules/sambaSamAccount.inc:918 +#: ../lib/modules/sambaGroupMapping.inc:89 +#: ../lib/modules/sambaGroupMapping.inc:180 +#: ../lib/modules/sambaGroupMapping.inc:429 +msgid "No Samba 3 domains found in LDAP! Please create one first." +msgstr "在LDAP沒有任何Samba 3網域,請先建立一個." + +#: ../lib/modules/posixAccount.inc:448 +#: ../lib/modules/posixAccount.inc:651 +#: ../lib/modules/posixAccount.inc:954 +msgid "No Unix groups found in LDAP! Please create one first." +msgstr "在LDAP中沒有Unix群組,請先建立." + +#: ../lib/types/mailAlias.inc:109 +msgid "No aliases found!" +msgstr "沒有任何別名!" + +#: ../templates/initsuff.php:166 +msgid "No changes were made." +msgstr "沒有做任何修改." + +#: ../templates/schema/schema.php:149 +msgid "No description" +msgstr "沒有說明" + +#: ../lib/types/smbDomain.inc:109 +msgid "No domains found!" +msgstr "找不到網域!" + +#: ../lib/modules/inetOrgPerson.inc:106 +msgid "No file selected." +msgstr "沒有選擇檔案" + +#: ../lib/modules/posixGroup.inc:472 +#: ../lib/modules/posixAccount.inc:67 +msgid "No free ID-Number!" +msgstr "沒有可用的ID編號!" + +#: ../lib/types/gon.inc:111 +#: ../lib/types/group.inc:123 +msgid "No groups found!" +msgstr "找不到群組!" + +#: ../lib/types/host.inc:113 +msgid "No hosts found!" +msgstr "找不到主機帳號!" + +#: ../templates/tree/edit.php:193 +msgid "No internal attributes" +msgstr "沒有隱藏屬性" + +#: ../templates/tests/lamdaemonTest.php:212 +msgid "No lamdaemon path set, please update your LAM configuration settings." +msgstr "沒有設定 lamdaemon 的路徑, 請更新您的 LAM 系統設定." + +#: ../templates/tests/lamdaemonTest.php:113 +#: ../templates/tests/lamdaemonTest.php:208 +msgid "No lamdaemon server set, please update your LAM configuration settings." +msgstr "沒有設定 lamdaemon 伺服器, 請更新您的 LAM 系統設定." + +#: ../templates/config/mainmanage.php:301 +msgid "No logging" +msgstr "不記錄" + +#: ../templates/pdfedit/pdfpage.php:371 +msgid "No logo" +msgstr "沒有標誌" + +#: ../lib/lists.inc:104 +msgid "No objects found!" +msgstr "找不到物件!" + +#: ../templates/config/confmodules.php:268 +msgid "No or more than one base module selected!" +msgstr "沒有選擇任何一個基本模組或選擇超過一個!" + +#: ../templates/config/confmain.php:52 +msgid "No password was entered!" +msgstr "沒有輸入密碼!" + +#: ../templates/tests/schemaTest.php:80 +msgid "No problems found." +msgstr "找不到任何問題!" + +#: ../templates/pdfedit/pdfpage.php:126 +msgid "No section text specified" +msgstr "沒有指定區段文字" + +#: ../templates/config/conflogin.php:95 +msgid "No server profiles found. Please create one." +msgstr "沒有伺服器設定檔,請先建立一個." + +#: ../templates/pdfedit/pdfpage.php:114 +msgid "No static text specified" +msgstr "沒有指定靜態文字" + +#: ../templates/tree/edit.php:81 +msgid "No such entry!" +msgstr "沒有這個項目" + +#: ../templates/schema/schema.php:442 +#, php-format +msgid "No such schema item: \"%s\"" +msgstr "沒有這個schema項目 \"%s\"" + +#: ../lib/types/user.inc:127 +msgid "No users found!" +msgstr "找不到使用者!" + +#: ../help/help.inc:68 +msgid "Note" +msgstr "注意" + +#: ../templates/tree/add_value_form.php:115 +msgid "Note: You will get an \"inappropriate matching\" error if you have not setup an EQUALITY rule on your LDAP server for this attribute." +msgstr "注意:如果您沒有在LDAP伺服器為這個屬性設定一個EQUALITY規則,就會發生\"inappropriate matching\"的錯誤訊息." + +#: ../templates/config/mainmanage.php:256 +msgid "Notice" +msgstr "注意" + +#: ../templates/delete.php:98 +msgid "Number of child entries" +msgstr "子項目的數量" + +#: ../lib/modules/shadowAccount.inc:163 +msgid "Number of days a user can login even his password has expired. -1=always." +msgstr "使用者密碼過期後還允許登入的日數.-1表示不限制." + +#: ../lib/modules/shadowAccount.inc:167 +msgid "Number of days a user has to wait until he is allowed to change his password again. If set value must be >0." +msgstr "使用者必須等待多少天才能更改密碼. 若有設定,其值必須>0." + +#: ../lib/modules/shadowAccount.inc:171 +msgid "Number of days after a user has to change his password again. If set value must be >0." +msgstr "幾天之後, 密碼必須更改. 若有設定, 其值必須>0." + +#: ../lib/modules/sambaDomain.inc:131 +msgid "Number of minutes after which the bad logon attempts are reset." +msgstr "幾分鐘之後,錯誤登入嘗試次數會被重設." + +#: ../lib/modules/sambaDomain.inc:119 +msgid "Number of seconds after the user is allowed to change his password again." +msgstr "容許使用者再度更改密碼的間隔時間,以秒為單位." + +#: ../lib/modules/sambaDomain.inc:123 +msgid "Number of seconds after which the user must change his password." +msgstr "多後之後使用者必須更改密碼.(密碼到期),以秒為單位" + +#: ../templates/schema/schema.php:152 +#: ../templates/schema/schema.php:349 +msgid "OID" +msgstr "OID" + +#: ../templates/ou_edit.php:73 +msgid "OU already exists!" +msgstr "OU已經存在!" + +#: ../templates/ou_edit.php:84 +msgid "OU deleted successfully." +msgstr "OU刪除成功." + +#: ../templates/ou_edit.php:155 +#: ../templates/tools.php:72 +msgid "OU editor" +msgstr "OU編輯器" + +#: ../templates/ou_edit.php:77 +msgid "OU is invalid!" +msgstr "OU 無效!" + +#: ../templates/ou_edit.php:114 +msgid "OU is not empty or invalid!" +msgstr "OU 不是空的或者是無效的!" + +#: ../help/help.inc:186 +#: ../help/help.inc:188 +msgid "OU-Editor" +msgstr "OU編輯器" + +#: ../templates/tree/templates/creation/custom.php:70 +#: ../templates/schema/schema.php:70 +#: ../templates/schema/schema.php:71 +msgid "Object classes" +msgstr "物件類別" + +#: ../templates/schema/schema.php:157 +#: ../templates/schema/schema.php:288 +msgid "Obsolete" +msgstr "已過時(Obsolete)" + +#: ../lib/modules/sambaDomain.inc:279 +#: ../lib/modules/sambaDomain.inc:290 +#: ../lib/modules/sambaDomain.inc:301 +#: ../lib/modules/sambaDomain.inc:657 +#: ../lib/modules/sambaDomain.inc:662 +#: ../lib/modules/sambaDomain.inc:667 +msgid "Off" +msgstr "Off" + +#: ../lib/modules/inetOrgPerson.inc:156 +#: ../lib/modules/inetOrgPerson.inc:317 +#: ../lib/modules/inetOrgPerson.inc:490 +#: ../lib/modules/inetOrgPerson.inc:816 +#: ../lib/modules/inetOrgPerson.inc:1066 +#: ../lib/modules/inetOrgPerson.inc:1461 +msgid "Office name" +msgstr "辦公室名稱名稱" + +#: ../templates/tree/export_form.php:165 +#: ../templates/tests/lamdaemonTest.php:108 +#: ../templates/ou_edit.php:200 +#: ../templates/masscreate.php:110 +#: ../templates/config/profmanage.php:354 +#: ../templates/config/mainmanage.php:374 +#: ../templates/config/confmodules.php:110 +#: ../templates/config/confmodules.php:113 +#: ../templates/config/confmain.php:454 +#: ../templates/config/conftypes.php:238 +#: ../templates/config/conflogin.php:125 +#: ../templates/config/conflogin.php:126 +#: ../templates/config/mainlogin.php:118 +#: ../templates/selfService/selfServiceLogin.php:203 +#: ../templates/selfService/profManage.php:254 +#: ../templates/selfService/adminLogin.php:122 +#: ../templates/selfService/adminLogin.php:123 +#: ../templates/selfService/adminMain.php:470 +#: ../templates/selfService/adminMain.php:504 +#: ../templates/selfService/adminMain.php:544 +#: ../templates/pdfedit/pdfmain.php:155 +#: ../templates/profedit/profiledelete.php:85 +#: ../templates/profedit/profilemain.php:168 +#: ../lib/modules/posixGroup.inc:274 +#: ../lib/modules/sambaSamAccount.inc:1235 +#: ../lib/modules/sambaSamAccount.inc:1406 +#: ../lib/modules/posixAccount.inc:1134 +#: ../lib/modules/inetOrgPerson.inc:993 +#: ../lib/modules/groupOfNames.inc:230 +#: ../lib/modules/groupOfNames.inc:257 +#: ../lib/modules/groupOfNames.inc:344 +#: ../lib/lists.inc:668 +#: ../lib/lists.inc:899 +msgid "Ok" +msgstr "確定" + +#: ../templates/tree/update_confirm.php:153 +msgid "Old value" +msgstr "舊的值" + +#: ../lib/modules/sambaDomain.inc:279 +#: ../lib/modules/sambaDomain.inc:290 +#: ../lib/modules/sambaDomain.inc:301 +#: ../lib/modules/sambaDomain.inc:658 +#: ../lib/modules/sambaDomain.inc:663 +#: ../lib/modules/sambaDomain.inc:668 +msgid "On" +msgstr "On" + +#: ../lib/modules/sambaSamAccount.inc:316 +#: ../lib/modules/sambaSamAccount.inc:1391 +#: ../lib/modules/sambaSamAccount.inc:1715 +msgid "On broken or timed out connection" +msgstr "在中斷或逾時的連結" + +#: ../templates/tree/export_form.php:75 +msgid "One (one level beneath base)" +msgstr "One (基礎識別名稱的單一階層內)" + +#: ../templates/tree/templates/creation/custom.php:209 +#: ../templates/schema/schema.php:389 +msgid "Optional attributes" +msgstr "選擇性的屬性" + +#: ../templates/tree/templates/creation/custom.php:225 +msgid "Optional binary attributes" +msgstr "選擇性的binary屬性" + +#: ../templates/lists/changePassword.php:124 +msgid "Options" +msgstr "選項" + +#: ../templates/schema/schema.php:176 +msgid "Ordering" +msgstr "排序規則" + +#: ../templates/tree/templates/templates.inc:46 +msgid "Organizational unit" +msgstr "Organizational unit" + +#: ../templates/config/confmain.php:395 +msgid "Other" +msgstr "其他" + +#: ../templates/config/confmain.php:387 +#: ../lib/types/gon.inc:85 +#: ../lib/modules/groupOfNames.inc:68 +#: ../lib/modules/groupOfNames.inc:97 +#: ../lib/modules/groupOfNames.inc:149 +#: ../lib/modules/groupOfNames.inc:167 +#: ../lib/modules/groupOfNames.inc:447 +msgid "Owner" +msgstr "擁有者" + +#: ../templates/tools.php:80 +msgid "PDF editor" +msgstr "PDF編輯器" + +#: ../lib/lists.inc:640 +msgid "PDF structure" +msgstr "PDF的架構" + +#: ../templates/pdfedit/pdfpage.php:100 +msgid "PDF structure was successfully saved." +msgstr "PDF架構儲存成功." + +#: ../templates/pdfedit/pdfmain.php:115 +msgid "PDF structures" +msgstr "PDF架構" + +#: ../templates/pdfedit/pdfpage.php:95 +msgid "PDF-structure name not valid" +msgstr "PDF架構名稱無效" + +#: ../lib/modules/sambaSamAccount.inc:482 +msgid "Pacific Time (US & Canada)" +msgstr "太平洋時間(美國和加拿大)" + +#: ../templates/schema/schema.php:371 +msgid "Parent to" +msgstr "子代" + +#: ../templates/lists/changePassword.php:196 +#: ../templates/login.php:269 +#: ../templates/selfService/selfServiceLogin.php:189 +#: ../lib/modules/posixGroup.inc:173 +#: ../lib/modules/posixGroup.inc:185 +#: ../lib/modules/posixGroup.inc:265 +#: ../lib/modules/posixGroup.inc:468 +#: ../lib/modules/posixGroup.inc:469 +#: ../lib/modules/sambaAccount.inc:74 +#: ../lib/modules/sambaAccount.inc:75 +#: ../lib/modules/sambaAccount.inc:229 +#: ../lib/modules/sambaSamAccount.inc:92 +#: ../lib/modules/sambaSamAccount.inc:93 +#: ../lib/modules/sambaSamAccount.inc:345 +#: ../lib/modules/posixAccount.inc:72 +#: ../lib/modules/posixAccount.inc:73 +#: ../lib/modules/posixAccount.inc:136 +#: ../lib/modules/posixAccount.inc:252 +#: ../lib/modules/posixAccount.inc:388 +#: ../lib/modules/posixAccount.inc:1027 +#: ../lib/modules/posixAccount.inc:1038 +#: ../lib/modules/posixAccount.inc:1119 +#: ../lib/modules/posixAccount.inc:1225 +#: ../lib/modules/inetOrgPerson.inc:103 +#: ../lib/modules/inetOrgPerson.inc:104 +#: ../lib/modules/inetOrgPerson.inc:458 +#: ../lib/modules/inetOrgPerson.inc:753 +#: ../lib/modules/inetOrgPerson.inc:764 +#: ../lib/modules/inetOrgPerson.inc:984 +msgid "Password" +msgstr "密碼" + +#: ../lib/modules/posixGroup.inc:469 +#: ../lib/modules/sambaAccount.inc:75 +#: ../lib/modules/sambaAccount.inc:76 +#: ../lib/modules/sambaSamAccount.inc:93 +#: ../lib/modules/sambaSamAccount.inc:94 +#: ../lib/modules/posixAccount.inc:73 +#: ../lib/modules/posixAccount.inc:74 +#: ../lib/modules/inetOrgPerson.inc:104 +#: ../lib/modules/inetOrgPerson.inc:105 +msgid "Password contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and #*,.;:_-+!%&/|?{[()]}=@$ !" +msgstr "密碼包含無效字元, 有效的字元包含 a-z, A-Z, 0-9, 以及 #*,.;:_-+!%&/|?{[()]}=@$ !" + +#: ../lib/modules/sambaAccount.inc:136 +#: ../lib/modules/sambaAccount.inc:251 +#: ../lib/modules/sambaAccount.inc:365 +#: ../lib/modules/sambaAccount.inc:368 +#: ../lib/modules/sambaAccount.inc:759 +#: ../lib/modules/sambaSamAccount.inc:214 +#: ../lib/modules/sambaSamAccount.inc:217 +#: ../lib/modules/sambaSamAccount.inc:367 +#: ../lib/modules/sambaSamAccount.inc:967 +#: ../lib/modules/sambaSamAccount.inc:1445 +msgid "Password does not expire" +msgstr "密碼不會過期" + +#: ../lib/modules/shadowAccount.inc:50 +#: ../lib/modules/shadowAccount.inc:94 +#: ../lib/modules/shadowAccount.inc:162 +#: ../lib/modules/shadowAccount.inc:188 +#: ../lib/modules/shadowAccount.inc:273 +#: ../lib/modules/shadowAccount.inc:368 +msgid "Password expiration" +msgstr "密碼寬限期" + +#: ../lib/modules/shadowAccount.inc:50 +#: ../lib/modules/shadowAccount.inc:51 +msgid "Password expiration must be are natural number or -1." +msgstr "密碼寬限期必須是自然數或-1." + +#: ../lib/modules/posixGroup.inc:410 +#: ../lib/modules/posixGroup.inc:429 +#: ../lib/modules/posixAccount.inc:140 +#: ../lib/modules/posixAccount.inc:175 +#: ../lib/modules/posixAccount.inc:343 +msgid "Password hash type" +msgstr "密碼雜湊類型" + +#: ../lib/modules/sambaDomain.inc:98 +#: ../lib/modules/sambaDomain.inc:266 +#: ../lib/modules/sambaDomain.inc:654 +msgid "Password history length" +msgstr "歷史密碼的次數" + +#: ../lib/modules/shadowAccount.inc:48 +#: ../lib/modules/shadowAccount.inc:49 +#: ../lib/modules/sambaDomain.inc:202 +msgid "Password maximum age must be are natural number." +msgstr "密碼最大生命期必須是一個自然數." + +#: ../lib/modules/shadowAccount.inc:54 +#: ../lib/modules/shadowAccount.inc:55 +#: ../lib/modules/sambaDomain.inc:200 +msgid "Password maximum age must be bigger as password minimum age." +msgstr "密碼最大生命期必須大於密碼最小生命期." + +#: ../lib/modules/shadowAccount.inc:46 +#: ../lib/modules/shadowAccount.inc:47 +#: ../lib/modules/sambaDomain.inc:201 +msgid "Password minimum age must be are natural number." +msgstr "密碼最小生命期必須是一個自然數." + +#: ../templates/config/mainmanage.php:206 +#: ../help/help.inc:137 +msgid "Password policy" +msgstr "密碼原則" + +#: ../lib/modules/shadowAccount.inc:52 +#: ../lib/modules/shadowAccount.inc:89 +#: ../lib/modules/shadowAccount.inc:158 +#: ../lib/modules/shadowAccount.inc:182 +#: ../lib/modules/shadowAccount.inc:268 +#: ../lib/modules/shadowAccount.inc:366 +msgid "Password warning" +msgstr "密碼警告日期" + +#: ../lib/modules/shadowAccount.inc:52 +#: ../lib/modules/shadowAccount.inc:53 +msgid "Password warning must be are natural number." +msgstr "密碼警告日期必須是自然數." + +#: ../templates/config/confmain.php:543 +msgid "Passwords are different!" +msgstr "密碼不同!" + +#: ../lib/modules/sambaSamAccount.inc:290 +msgid "Path of the user profile." +msgstr "使用者設定檔的路徑." + +#: ../lib/modules/sambaAccount.inc:389 +#: ../lib/modules/sambaSamAccount.inc:241 +msgid "Path of the user profile. Can be a local absolute path or a UNC-path (\\\\server\\share). $user and $group are replaced with user and group name." +msgstr "使用者設定檔的路徑,可以是絕對路徑或UNC路徑(\\\\server\\share).$user和$group會以使用者及群組名稱來置換." + +#: ../templates/config/confmain.php:353 +msgid "Path to external script" +msgstr "外部指令檔的路徑" + +#: ../templates/tree/delete_form.php:81 +msgid "Permanently delete all children, too?" +msgstr "也要刪除所有子項目?" + +#: ../lib/modules/inetOrgPerson.inc:125 +msgid "Personal" +msgstr "個人資訊" + +#: ../lib/types/user.inc:93 +#: ../lib/types/user.inc:211 +#: ../lib/modules/inetOrgPerson.inc:154 +#: ../lib/modules/inetOrgPerson.inc:937 +#: ../lib/modules/inetOrgPerson.inc:1473 +#: ../lib/modules/inetOrgPerson.inc:1476 +#: ../lib/modules/inetOrgPerson.inc:1490 +msgid "Photo" +msgstr "相片" + +#: ../lib/modules/inetOrgPerson.inc:1024 +msgid "Photo file (JPG format)" +msgstr "相片檔 (JPG格式)" + +#: ../lib/modules/ldapPublicKey.inc:67 +msgid "Please a comma separated list of your public SSH keys." +msgstr "您的公開ssh金鑰清單,以逗點分隔." + +#: ../templates/delete.php:86 +msgid "Please confirm:" +msgstr "請確認:" + +#: ../lib/modules/phpGroupwareUser.inc:124 +msgid "Please enter \"active\" or \"inactive\"." +msgstr "請輸入\"active\" 或 \"inactive\"." + +#: ../lib/modules/sambaSamAccount.inc:95 +msgid "Please enter a RID number or the name of a special account!" +msgstr "請輸入特殊帳號的名稱或RID!" + +#: ../lib/modules/inetOrgPerson.inc:455 +msgid "Please enter a comma separated list of host names where this user is allowed to log in. If you enable host restrictions for your servers then \"*\" means every host and an empty field means no host." +msgstr "請輸入允許使用者登入的主機清單,以逗點分隔. 如果您的伺服器已使用主機限制功能,則星號(*)表示所有主機,空白表示沒有任何主機." + +#: ../lib/modules/sambaAccount.inc:70 +#: ../lib/modules/sambaAccount.inc:71 +#: ../lib/modules/sambaSamAccount.inc:90 +#: ../lib/modules/sambaSamAccount.inc:91 +msgid "Please enter a comma separated list of host names!" +msgstr "請輸入以逗點分隔的主機清單!" + +#: ../lib/modules/groupOfNames.inc:120 +msgid "Please enter a group name!" +msgstr "請輸入一個群組名稱!" + +#: ../lib/modules/kolabUser.inc:291 +#: ../lib/modules/kolabUser.inc:296 +#, php-format +msgid "Please enter a user password on this page: %s" +msgstr "請先在這個頁面輸入使用者密碼: %s" + +#: ../lib/modules/inetOrgPerson.inc:107 +#: ../lib/modules/inetOrgPerson.inc:108 +msgid "Please enter a valid business category!" +msgstr "請輸入有效的行業類別 !" + +#: ../lib/modules/posixAccount.inc:92 +#: ../lib/modules/posixAccount.inc:93 +#: ../lib/modules/inetOrgPerson.inc:97 +#: ../lib/modules/inetOrgPerson.inc:98 +msgid "Please enter a valid common name!" +msgstr "請輸入有效的全名!" + +#: ../lib/modules/sambaAccount.inc:83 +#: ../lib/modules/sambaAccount.inc:84 +#: ../lib/modules/sambaSamAccount.inc:103 +#: ../lib/modules/sambaSamAccount.inc:104 +#: ../lib/modules/sambaSamAccount.inc:105 +msgid "Please enter a valid date in format DD-MM-YYYY." +msgstr "請輸入有效的日期,格式:DD-MM-YYYY." + +#: ../lib/modules/sambaAccount.inc:77 +#: ../lib/modules/sambaAccount.inc:78 +#: ../lib/modules/sambaSamAccount.inc:97 +#: ../lib/modules/sambaSamAccount.inc:98 +msgid "Please enter a valid display name!" +msgstr "請輸入有效的顯示名稱(display name)" + +#: ../lib/modules/sambaAccount.inc:85 +#: ../lib/modules/sambaSamAccount.inc:106 +msgid "Please enter a valid drive letter." +msgstr "請輸入有效的磁碟代號." + +#: ../lib/modules/inetOrgPerson.inc:85 +#: ../lib/modules/inetOrgPerson.inc:86 +msgid "Please enter a valid eMail address!" +msgstr "請輸入有效的電子信箱!" + +#: ../lib/modules/inetOrgPerson.inc:95 +#: ../lib/modules/inetOrgPerson.inc:96 +msgid "Please enter a valid employee type!" +msgstr "請輸入有效的受雇類別!" + +#: ../lib/modules/inetOrgPerson.inc:83 +#: ../lib/modules/inetOrgPerson.inc:84 +msgid "Please enter a valid fax number!" +msgstr "請輸入有效的傳真號碼!" + +#: ../lib/modules/sambaAccount.inc:86 +msgid "Please enter a valid group RID." +msgstr "請輸入有效的群組RID." + +#: ../lib/modules/sambaSamAccount.inc:110 +msgid "Please enter a valid group name!" +msgstr "請輸入有效的群組名稱!" + +#: ../lib/modules/inetOrgPerson.inc:93 +#: ../lib/modules/inetOrgPerson.inc:94 +msgid "Please enter a valid job title!" +msgstr "請輸入有效的職稱!" + +#: ../lib/modules/inetOrgPerson.inc:81 +#: ../lib/modules/inetOrgPerson.inc:82 +msgid "Please enter a valid mobile number!" +msgstr "請輸入有效的手機號碼!" + +#: ../lib/modules/inetOrgPerson.inc:89 +#: ../lib/modules/inetOrgPerson.inc:90 +msgid "Please enter a valid postal address!" +msgstr "請輸入有效的居住地址." + +#: ../lib/modules/inetOrgPerson.inc:91 +#: ../lib/modules/inetOrgPerson.inc:92 +msgid "Please enter a valid postal code!" +msgstr "請輸入有效的郵遞區號!" + +#: ../lib/modules/sambaAccount.inc:87 +msgid "Please enter a valid special user name." +msgstr "請輸入有效的特殊使用者名稱." + +#: ../lib/modules/inetOrgPerson.inc:87 +#: ../lib/modules/inetOrgPerson.inc:88 +msgid "Please enter a valid street name!" +msgstr "請輸入有效的街道名稱!" + +#: ../lib/modules/inetOrgPerson.inc:77 +#: ../lib/modules/inetOrgPerson.inc:78 +#: ../lib/modules/inetOrgPerson.inc:79 +#: ../lib/modules/inetOrgPerson.inc:80 +msgid "Please enter a valid telephone number!" +msgstr "請輸入有效的電話號碼!" + +#: ../lib/modules/posixGroup.inc:573 +#: ../lib/modules/posixAccount.inc:763 +#, php-format +msgid "Please enter a value between %s and %s!" +msgstr "請輸入一個位於 %s 和 %s 之間的值.!" + +#: ../lib/modules/kolabUser.inc:301 +#, php-format +msgid "Please enter an email address on this page: %s" +msgstr "請在這個頁面輸入電子信箱:%s" + +#: ../lib/modules.inc:1088 +msgid "Please enter the account information on the other pages first." +msgstr "請先在另一頁輸入帳號資訊." + +#: ../help/help.inc:58 +msgid "Please enter the configuration password. This is NOT your LDAP password. It is stored in your .conf-file. If this is the first time you log in, enter \"lam\"." +msgstr "請輸入這個設定檔的密碼.這不是您的LDAP密碼. 這個密碼儲存在您的 .conf檔內.如果您是第一次登入,請輸入\"lam\"." + +#: ../help/help.inc:126 +msgid "Please enter the master configuration password. This is NOT your LDAP password. It is stored in your config.cfg file. If this is the first time you log in, enter \"lam\"." +msgstr "請輸入這個系統管理者的密碼.這不是您的LDAP密碼. 這個密碼儲存在您的 config.conf 檔內.如果您是第一次登入,請輸入\"lam\"." + +#: ../templates/config/mainlogin.php:98 +msgid "Please enter the master password to change the general preferences:" +msgstr "請輸入管理者密碼以更改一般設定:" + +#: ../help/help.inc:114 +msgid "Please enter the name of the new profile and the password to change its settings. Profile names may contain letters, numbers and -/_." +msgstr "請輸入新的設定檔名稱和密碼.名稱可以包含字母,數字和 -/_ ." + +#: ../help/help.inc:116 +msgid "Please enter the new name of the profile. The name may contain letters, numbers and -/_." +msgstr "請輸入新的設定檔名稱.可以包含字母,數字和 -/_ ." + +#: ../lib/modules/posixAccount.inc:389 +#: ../lib/modules/inetOrgPerson.inc:459 +msgid "Please enter the password which you want to set for this account." +msgstr "請輸入這個帳號的密碼." + +#: ../lib/modules/posixAccount.inc:360 +msgid "Please enter the path to the user's home directory." +msgstr "請輸入使用者個人目錄的路徑." + +#: ../lib/modules/quota.inc:141 +msgid "Please enter the quota settings for this mount point. The syntax is: {soft block limit},{hard block limit},{soft inode limit},{hard inode limit}" +msgstr "請設定這個掛載點的磁碟配額.語法是:{軟性區塊配額},{強制區塊配額},{軟性檔案數目配額},{強制檔案數目配額}" + +#: ../lib/modules/posixAccount.inc:72 +#: ../lib/modules/inetOrgPerson.inc:103 +msgid "Please enter the same password in both password fields." +msgstr "二個密碼欄位請輸入相同的密碼." + +#: ../templates/lists/changePassword.php:259 +#: ../lib/modules/posixGroup.inc:468 +#: ../lib/modules/sambaAccount.inc:74 +#: ../lib/modules/sambaSamAccount.inc:92 +msgid "Please enter the same password in both password-fields." +msgstr "二個密碼欄位請輸入相同的密碼." + +#: ../lib/modules/sambaSamAccount.inc:302 +msgid "Please enter the time limit in minutes. 0 means unlimited." +msgstr "請輸入限制時間, 以分為單位. 0表示不限制." + +#: ../templates/selfService/adminLogin.php:97 +msgid "Please enter your master configuration password to change the self service profile:" +msgstr "請輸入您的管理密碼以更改自助服務的設定:" + +#: ../templates/config/conflogin.php:90 +msgid "Please enter your password to change the server preferences:" +msgstr "請輸入您的密碼以更改伺服器的設定:" + +#: ../lib/modules/ldapPublicKey.inc:63 +msgid "Please enter your public SSH key." +msgstr "請輸入您的 SSH 公開金鑰." + +#: ../templates/tests/lamdaemonTest.php:259 +msgid "Please install the SSH2 module for PHP and activate it in your php.ini!" +msgstr "請安裝 PHP 的 SSH2 模組, 並且在 php.ini 檔中啟動該模組!" + +#: ../templates/masscreate.php:126 +msgid "Please provide a CSV formated file with your account data. The cells in the first row must be filled with the column identifiers. The following rows represent one account for each row." +msgstr "請上傳一個包含帳號資料的 CSV 檔, 檔案中的第一列必須是欄位名稱, 第二列開始每一列表示一個帳號." + +#: ../lib/modules/inetOrgPerson.inc:463 +msgid "Please select an image file to upload. It must be in JPG format (.jpg/.jpeg)." +msgstr "請選擇一個圖形檔.它必須是JPG格式(.jpg/.jpeg)." + +#: ../templates/masscreate.php:97 +msgid "Please select your account type:" +msgstr "請選擇帳號類型:" + +#: ../help/help.inc:132 +msgid "Please select your prefered log level. Messages with a lower level will not be logged." +msgstr "請選擇您喜好的記錄層級. 比此層級低的訊息不會被記錄." + +#: ../templates/login.php:242 +msgid "Please select your user name and enter your password to log in." +msgstr "請選擇使用者帳號並輸入密碼." + +#: ../lib/modules.inc:1043 +#, php-format +msgid "Please set up all required attributes on page: %s" +msgstr "請設定好在 %s 頁面的所有必要資訊" + +#: ../templates/config/profmanage.php:139 +#: ../templates/selfService/profManage.php:114 +msgid "Please set up your master configuration file (config/config.cfg) first!" +msgstr "請先設定您的系統管理者設定檔(config/config.cfg)!" + +#: ../lib/modules/kolabUser.inc:246 +msgid "Policy list has invalid format!" +msgstr "原則清單包含無效的格式!" + +#: ../templates/pdfedit/pdfpage.php:568 +#: ../templates/pdfedit/pdfpage.php:585 +#: ../templates/pdfedit/pdfpage.php:615 +#: ../templates/pdfedit/pdfpage.php:655 +msgid "Position" +msgstr "位置" + +#: ../templates/masscreate.php:175 +#: ../templates/masscreate.php:317 +#: ../lib/modules/sambaGroupMapping.inc:399 +msgid "Possible values" +msgstr "可能的值" + +#: ../lib/modules/inetOrgPerson.inc:154 +#: ../lib/modules/inetOrgPerson.inc:257 +#: ../lib/modules/inetOrgPerson.inc:418 +#: ../lib/modules/inetOrgPerson.inc:419 +#: ../lib/modules/inetOrgPerson.inc:781 +#: ../lib/modules/inetOrgPerson.inc:1051 +#: ../lib/modules/inetOrgPerson.inc:1421 +msgid "Post office box" +msgstr "郵政信箱" + +#: ../lib/modules/inetOrgPerson.inc:89 +#: ../lib/modules/inetOrgPerson.inc:153 +#: ../lib/modules/inetOrgPerson.inc:251 +#: ../lib/modules/inetOrgPerson.inc:426 +#: ../lib/modules/inetOrgPerson.inc:809 +#: ../lib/modules/inetOrgPerson.inc:1053 +#: ../lib/modules/inetOrgPerson.inc:1405 +msgid "Postal address" +msgstr "居住地址" + +#: ../lib/modules/inetOrgPerson.inc:427 +msgid "Postal address, city" +msgstr "居住地址." + +#: ../lib/modules/inetOrgPerson.inc:91 +#: ../lib/modules/inetOrgPerson.inc:154 +#: ../lib/modules/inetOrgPerson.inc:245 +#: ../lib/modules/inetOrgPerson.inc:422 +#: ../lib/modules/inetOrgPerson.inc:423 +#: ../lib/modules/inetOrgPerson.inc:788 +#: ../lib/modules/inetOrgPerson.inc:1052 +#: ../lib/modules/inetOrgPerson.inc:1413 +msgid "Postal code" +msgstr "郵遞區號" + +#: ../help/help.inc:87 +msgid "Predefined values" +msgstr "已定義的值" + +#: ../lib/modules/inetOrgPerson.inc:217 +msgid "President" +msgstr "President" + +#: ../lib/modules/posixGroup.inc:483 +#: ../lib/modules/posixAccount.inc:217 +#: ../lib/modules/posixAccount.inc:291 +#: ../lib/modules/posixAccount.inc:351 +#: ../lib/modules/posixAccount.inc:380 +#: ../lib/modules/posixAccount.inc:418 +#: ../lib/modules/posixAccount.inc:989 +#: ../lib/modules/posixAccount.inc:1155 +#: ../lib/modules/posixAccount.inc:1178 +#: ../lib/modules/posixAccount.inc:1219 +msgid "Primary group" +msgstr "主要群組" + +#: ../lib/modules/inetOrgPerson.inc:467 +msgid "Private telephone number" +msgstr "私人電話號碼" + +#: ../templates/config/profmanage.php:107 +#: ../templates/selfService/profManage.php:97 +msgid "Profile deleted." +msgstr "設定檔已刪除." + +#: ../templates/tools.php:56 +msgid "Profile editor" +msgstr "設定檔編輯器" + +#: ../templates/config/profmanage.php:50 +#: ../templates/config/profmanage.php:152 +#: ../templates/selfService/profManage.php:36 +#: ../templates/selfService/profManage.php:127 +#: ../help/help.inc:113 +#: ../help/help.inc:115 +#: ../help/help.inc:117 +#: ../help/help.inc:119 +#: ../help/help.inc:121 +msgid "Profile management" +msgstr "設定檔管理" + +#: ../templates/config/profmanage.php:167 +#: ../templates/config/profmanage.php:219 +#: ../templates/selfService/profManage.php:142 +#: ../templates/selfService/profManage.php:193 +#: ../templates/profedit/profilepage.php:250 +#: ../help/help.inc:146 +msgid "Profile name" +msgstr "設定檔名稱" + +#: ../templates/config/profmanage.php:91 +#: ../templates/config/profmanage.php:102 +#: ../templates/selfService/profManage.php:73 +#: ../templates/selfService/profManage.php:88 +msgid "Profile name is invalid!" +msgstr "設定檔名稱錯誤!" + +#: ../templates/config/profmanage.php:183 +#: ../templates/config/profmanage.php:283 +msgid "Profile password" +msgstr "設定檔密碼" + +#: ../templates/config/profmanage.php:89 +#: ../templates/config/profmanage.php:119 +msgid "Profile passwords are different or empty!" +msgstr "設定檔的二次新密碼不同或空白!" + +#: ../lib/modules/sambaAccount.inc:64 +#: ../lib/modules/sambaAccount.inc:65 +#: ../lib/modules/sambaAccount.inc:162 +#: ../lib/modules/sambaAccount.inc:293 +#: ../lib/modules/sambaAccount.inc:388 +#: ../lib/modules/sambaAccount.inc:791 +#: ../lib/modules/sambaAccount.inc:895 +#: ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaSamAccount.inc:85 +#: ../lib/modules/sambaSamAccount.inc:240 +#: ../lib/modules/sambaSamAccount.inc:289 +#: ../lib/modules/sambaSamAccount.inc:416 +#: ../lib/modules/sambaSamAccount.inc:1058 +#: ../lib/modules/sambaSamAccount.inc:1325 +#: ../lib/modules/sambaSamAccount.inc:1476 +#: ../lib/modules/sambaSamAccount.inc:1649 +#: ../lib/modules/sambaSamAccount.inc:1671 +msgid "Profile path" +msgstr "設定檔路徑" + +#: ../lib/modules/sambaAccount.inc:64 +#: ../lib/modules/sambaSamAccount.inc:84 +#: ../lib/modules/sambaSamAccount.inc:86 +msgid "Profile path is invalid!" +msgstr "設定檔路徑無效!" + +#: ../templates/profedit/profilepage.php:125 +msgid "Profile was saved." +msgstr "設定檔已儲存." + +#: ../lib/modules/quota.inc:74 +#: ../lib/modules/quota.inc:140 +msgid "Quota" +msgstr "磁碟配額" + +#: ../lib/modules/quota.inc:608 +#, php-format +msgid "Quota for %s on %s" +msgstr "%s 在 %s 的磁碟配額:" + +#: ../lib/modules/quota.inc:57 +msgid "Quota has wrong format!" +msgstr "磁碟配額的格式錯誤!" + +#: ../templates/tree/templates/creation/custom.php:62 +msgid "RDN" +msgstr "RDN" + +#: ../templates/masscreate.php:167 +#: ../templates/profedit/profilepage.php:203 +#: ../lib/modules.inc:1330 +#: ../help/help.inc:144 +msgid "RDN identifier" +msgstr "RDN屬性" + +#: ../lib/types/host.inc:84 +msgid "RID (Windows UID)" +msgstr "RID (Windows UID)" + +#: ../lib/modules/sambaDomain.inc:90 +#: ../lib/modules/sambaDomain.inc:151 +#: ../lib/modules/sambaDomain.inc:376 +#: ../lib/modules/sambaDomain.inc:382 +#: ../lib/modules/sambaDomain.inc:648 +msgid "RID base" +msgstr "RID 基數" + +#: ../templates/config/confmain.php:384 +msgid "Read" +msgstr "讀取" + +#: ../templates/config/confmain.php:216 +#: ../templates/config/confmain.php:219 +msgid "Read only" +msgstr "唯讀" + +#: ../templates/tree/templates/creation/new_ou_template.php:99 +msgid "Really create this new OU?" +msgstr "確定新增此OU?" + +#: ../templates/tree/edit.php:527 +msgid "Really delete attribute?" +msgstr "確定刪除屬性?" + +#: ../lib/modules/nisMailAlias.inc:71 +#: ../lib/modules/nisMailAlias.inc:145 +msgid "Recipient" +msgstr "收件者" + +#: ../lib/types/mailAlias.inc:83 +#: ../lib/modules/nisMailAlias.inc:75 +#: ../lib/modules/nisMailAlias.inc:89 +#: ../lib/modules/nisMailAlias.inc:279 +msgid "Recipient list" +msgstr "收件者清單" + +#: ../lib/modules/sambaSamAccount.inc:319 +#: ../lib/modules/sambaSamAccount.inc:1400 +#: ../lib/modules/sambaSamAccount.inc:1723 +msgid "Reconnect if disconnected" +msgstr "中斷則自動重連" + +#: ../templates/tree/rdelete.php:75 +msgid "Recursive delete progress" +msgstr "遞迴刪除" + +#: ../templates/config/mainmanage.php:361 +msgid "Reenter new master password" +msgstr "再次輸入系統管理者新密碼" + +#: ../templates/config/confmain.php:441 +#: ../lib/modules/posixAccount.inc:1742 +msgid "Reenter password" +msgstr "確認密碼" + +#: ../templates/config/profmanage.php:192 +#: ../templates/config/profmanage.php:299 +msgid "Reenter profile password" +msgstr "再次輸入設定檔密碼" + +#: ../templates/tree/edit.php:101 +#: ../lib/tree.inc:88 +#: ../lib/tree.inc:89 +#: ../lib/lists.inc:325 +msgid "Refresh" +msgstr "重新整理" + +#: ../lib/modules/kolabUser.inc:51 +msgid "Reject if conflicts" +msgstr "如果衝突則拒絕" + +#: ../templates/tree/templates/creation/custom.php:62 +msgid "Relative distinguished name" +msgstr "相對識別名稱(RDN)" + +#: ../templates/pdfedit/pdfpage.php:425 +#: ../lib/modules/ieee802device.inc:104 +#: ../lib/modules/sambaSamAccount.inc:1282 +#: ../lib/modules/kolabUser.inc:362 +#: ../lib/modules/kolabUser.inc:381 +#: ../lib/modules/kolabUser.inc:407 +#: ../lib/modules/kolabUser.inc:910 +#: ../lib/modules/phpGroupwareUser.inc:246 +#: ../lib/modules/shadowAccount.inc:350 +#: ../lib/modules/ldapPublicKey.inc:98 +#: ../lib/modules/inetLocalMailRecipient.inc:160 +#: ../lib/modules/groupOfNames.inc:158 +#: ../lib/modules/nisMailAlias.inc:147 +msgid "Remove" +msgstr "刪除" + +#: ../lib/modules/posixGroup.inc:192 +#: ../lib/modules/posixAccount.inc:1045 +msgid "Remove password" +msgstr "刪除密碼" + +#: ../lib/modules/phpGroupwareGroup.inc:101 +#: ../lib/modules/phpGroupwareUser.inc:178 +msgid "Remove phpGroupWare extension" +msgstr "移除 phpGroup Ware 延伸功能" + +#: ../lib/modules/groupOfNames.inc:328 +msgid "Remove selected entries" +msgstr "刪除所選的項目" + +#: ../templates/config/conftypes.php:227 +msgid "Remove this account type" +msgstr "刪除這個帳號類型" + +#: ../lib/modules/inetOrgPerson.inc:1481 +msgid "Remove/replace photo" +msgstr "移除/更換相片" + +#: ../templates/config/profmanage.php:215 +#: ../templates/selfService/profManage.php:189 +#: ../help/help.inc:115 +msgid "Rename profile" +msgstr "更改設定檔名稱" + +#: ../templates/config/profmanage.php:98 +#: ../templates/selfService/profManage.php:84 +msgid "Renamed profile." +msgstr "已更名的設定檔." + +#: ../templates/lists/changePassword.php:204 +#: ../lib/modules/posixGroup.inc:269 +#: ../lib/modules/sambaAccount.inc:748 +#: ../lib/modules/sambaSamAccount.inc:954 +#: ../lib/modules/posixAccount.inc:1123 +#: ../lib/modules/inetOrgPerson.inc:757 +#: ../lib/modules/inetOrgPerson.inc:988 +msgid "Repeat password" +msgstr "確認密碼" + +#: ../lib/modules/posixAccount.inc:64 +#: ../lib/modules/posixAccount.inc:785 +msgid "Replaced $user or $group in homedir." +msgstr "已更改 homedir 中的 $user 或 $group. " + +#: ../templates/tree/edit.php:246 +#, php-format +msgid "Required attribute for objectClass(es) %s" +msgstr "%s 物件類別的必要屬性" + +#: ../templates/tree/templates/creation/custom.php:187 +#: ../templates/schema/schema.php:388 +msgid "Required attributes" +msgstr "必要的屬性" + +#: ../templates/profedit/profilepage.php:260 +#: ../lib/modules/sambaAccount.inc:845 +#: ../lib/modules/sambaSamAccount.inc:1131 +msgid "Reset" +msgstr "重設" + +#: ../lib/modules.inc:1149 +msgid "Reset changes" +msgstr "重新設定" + +#: ../lib/modules/sambaAccount.inc:350 +#: ../lib/modules/sambaAccount.inc:844 +#: ../lib/modules/sambaSamAccount.inc:199 +#: ../lib/modules/sambaSamAccount.inc:1130 +msgid "Reset password" +msgstr "重設密碼" + +#: ../lib/modules/sambaDomain.inc:130 +#: ../lib/modules/sambaDomain.inc:204 +#: ../lib/modules/sambaDomain.inc:346 +#: ../lib/modules/sambaDomain.inc:684 +msgid "Reset time after lockout" +msgstr "停權後重設時間" + +#: ../lib/modules/sambaDomain.inc:204 +msgid "Reset time after lockout must be are natural number." +msgstr "鎖定密碼後的重設時間必須是一個自然數." + +#: ../templates/config/confmain.php:361 +#: ../help/help.inc:111 +msgid "Rights for the home directory" +msgstr "個人目錄的權限" + +#: ../lib/modules/inetOrgPerson.inc:155 +#: ../lib/modules/inetOrgPerson.inc:293 +#: ../lib/modules/inetOrgPerson.inc:470 +#: ../lib/modules/inetOrgPerson.inc:823 +#: ../lib/modules/inetOrgPerson.inc:1060 +#: ../lib/modules/inetOrgPerson.inc:1429 +msgid "Room number" +msgstr "辦公室編號" + +#: ../lib/modules/inetLocalMailRecipient.inc:61 +#: ../lib/modules/inetLocalMailRecipient.inc:96 +#: ../lib/modules/inetLocalMailRecipient.inc:143 +#: ../lib/modules/inetLocalMailRecipient.inc:313 +msgid "Routing address" +msgstr "寄送的地址" + +#: ../templates/tests/lamdaemonTest.php:269 +msgid "SSH connection" +msgstr "SSH 連結" + +#: ../templates/tests/lamdaemonTest.php:280 +msgid "SSH connection could be established." +msgstr "可以建立 SSH 連結." + +#: ../lib/modules/ldapPublicKey.inc:52 +#: ../lib/modules/ldapPublicKey.inc:62 +#: ../lib/modules/ldapPublicKey.inc:66 +#: ../lib/modules/ldapPublicKey.inc:74 +#: ../lib/modules/ldapPublicKey.inc:96 +msgid "SSH public key" +msgstr "SSH 公開金鑰" + +#: ../lib/modules/ldapPublicKey.inc:167 +msgid "SSH public key(s)" +msgstr "SSH 公開金鑰(組)" + +#: ../templates/tests/lamdaemonTest.php:252 +msgid "SSH2 module" +msgstr "SSH2 模組" + +#: ../templates/tests/lamdaemonTest.php:255 +msgid "SSH2 module is installed." +msgstr "SSH2模組已安裝." + +#: ../lib/modules/sambaAccount.inc:109 +msgid "Samba 2" +msgstr "Samba 2" + +#: ../lib/modules/sambaSamAccount.inc:131 +#: ../lib/modules/sambaGroupMapping.inc:259 +msgid "Samba 3" +msgstr "Samba 3" + +#: ../lib/modules/sambaDomain.inc:190 +#: ../lib/modules/sambaDomain.inc:191 +msgid "Samba 3 domain SID is invalid!" +msgstr "Samba 3 網域 SID 錯誤!" + +#: ../lib/types/smbDomain.inc:53 +msgid "Samba 3 domain entries" +msgstr "Samba 3 的網域項目" + +#: ../lib/modules/sambaSamAccount.inc:261 +#: ../lib/modules/sambaSamAccount.inc:265 +#: ../lib/modules/sambaSamAccount.inc:441 +#: ../lib/modules/sambaSamAccount.inc:465 +msgid "Samba RID" +msgstr "Samba RID" + +#: ../lib/modules/sambaGroupMapping.inc:297 +#: ../lib/modules/sambaGroupMapping.inc:322 +msgid "Samba RID number" +msgstr "Samba RID編號" + +#: ../lib/modules/sambaGroupMapping.inc:291 +msgid "Samba display name" +msgstr "Samba 顯示的名稱" + +#: ../lib/modules/sambaDomain.inc:51 +msgid "Samba domain" +msgstr "Samba 網域" + +#: ../lib/modules/sambaGroupMapping.inc:283 +msgid "Samba domain name" +msgstr "Samba 網域名稱" + +#: ../lib/types/smbDomain.inc:44 +msgid "Samba domains" +msgstr "Samba 網域" + +#: ../lib/modules/sambaGroupMapping.inc:303 +#: ../lib/modules/sambaGroupMapping.inc:330 +#: ../lib/modules/sambaGroupMapping.inc:348 +msgid "Samba group type" +msgstr "Samba 群組類型" + +#: ../lib/modules/sambaAccount.inc:347 +#: ../lib/modules/sambaAccount.inc:745 +#: ../lib/modules/sambaSamAccount.inc:196 +#: ../lib/modules/sambaSamAccount.inc:950 +msgid "Samba password" +msgstr "Samba的密碼" + +#: ../lib/modules/sambaAccount.inc:70 +#: ../lib/modules/sambaAccount.inc:174 +#: ../lib/modules/sambaAccount.inc:305 +#: ../lib/modules/sambaAccount.inc:394 +#: ../lib/modules/sambaAccount.inc:397 +#: ../lib/modules/sambaAccount.inc:797 +#: ../lib/modules/sambaAccount.inc:896 +#: ../lib/modules/sambaSamAccount.inc:90 +#: ../lib/modules/sambaSamAccount.inc:246 +#: ../lib/modules/sambaSamAccount.inc:249 +#: ../lib/modules/sambaSamAccount.inc:428 +#: ../lib/modules/sambaSamAccount.inc:1070 +#: ../lib/modules/sambaSamAccount.inc:1488 +#: ../lib/modules/sambaSamAccount.inc:1652 +msgid "Samba workstations" +msgstr "Samba工作站" + +#: ../lib/modules/sambaSamAccount.inc:1189 +msgid "Saturday" +msgstr "星期六" + +#: ../templates/tree/edit.php:512 +#: ../templates/selfService/selfServiceMain.php:230 +#: ../templates/pdfedit/pdfpage.php:668 +#: ../templates/pdfedit/pdfpage.php:702 +#: ../templates/profedit/profilepage.php:258 +#: ../lib/modules.inc:1146 +msgid "Save" +msgstr "儲存" + +#: ../templates/tree/export_form.php:124 +msgid "Save as file" +msgstr "儲存成檔案" + +#: ../templates/tools.php:88 +msgid "Schema browser" +msgstr "Schema瀏覽器" + +#: ../templates/tests/schemaTest.php:61 +#: ../templates/tests/index.php:61 +msgid "Schema test" +msgstr "綱要測試" + +#: ../templates/pdfedit/pdfdelete.php:62 +#: ../templates/pdfedit/pdfdelete.php:65 +msgid "Scope" +msgstr "領域(Scope)" + +#: ../help/help.inc:97 +msgid "Script path" +msgstr "指令檔的路徑" + +#: ../templates/config/confmain.php:519 +msgid "Script path is invalid!" +msgstr "所指定指令檔路徑錯誤 !" + +#: ../templates/config/confmain.php:538 +msgid "Script rights are invalid!" +msgstr "指令檔權限錯誤!" + +#: ../templates/config/confmain.php:522 +msgid "Script server is invalid!" +msgstr "指令檔伺服器無效!" + +#: ../help/help.inc:108 +msgid "Script servers" +msgstr "指令檔伺服器" + +#: ../templates/config/confmain.php:340 +msgid "Script settings" +msgstr "指令檔設定" + +#: ../templates/tree/export_form.php:115 +#: ../lib/export.inc:443 +#: ../lib/export.inc:513 +msgid "Search filter" +msgstr "搜尋過濾器" + +#: ../templates/tree/export_form.php:103 +#: ../lib/export.inc:442 +#: ../lib/export.inc:512 +msgid "Search scope" +msgstr "搜尋範圍" + +#: ../templates/pdfedit/pdfpage.php:560 +msgid "Section" +msgstr "區段" + +#: ../templates/config/mainmanage.php:153 +#: ../templates/config/confmain.php:413 +msgid "Security settings" +msgstr "安全性設定" + +#: ../lib/types/group.inc:240 +#: ../lib/lists.inc:837 +msgid "See README.openldap.txt to solve this problem." +msgstr "參考 README.openldap.txt 來解決此問題." + +#: ../templates/help.php:91 +msgid "See also" +msgstr "也參考" + +#: ../templates/tree/create_form.php:77 +msgid "Select a template for the creation process" +msgstr "為所要新增的物件選擇一種樣版" + +#: ../lib/lists.inc:448 +msgid "Select all" +msgstr "全選" + +#: ../lib/modules/posixAccount.inc:1090 +msgid "Selected groups" +msgstr "已選擇的群組" + +#: ../templates/config/confmodules.php:183 +msgid "Selected modules" +msgstr "已選擇的模組" + +#: ../lib/modules/posixGroup.inc:236 +msgid "Selected users" +msgstr "已選擇的使用者" + +#: ../templates/selfService/adminMain.php:225 +msgid "Self service configuration" +msgstr "自助服務 設定" + +#: ../templates/selfService/adminMain.php:238 +msgid "Self service configuration editor" +msgstr "自助服務設定編輯器" + +#: ../templates/tests/lamdaemonTest.php:80 +msgid "Server" +msgstr "伺服器" + +#: ../templates/config/confmain.php:148 +#: ../templates/selfService/adminMain.php:267 +#: ../help/help.inc:59 +msgid "Server address" +msgstr "伺服器位址" + +#: ../templates/config/confmain.php:494 +#: ../templates/selfService/adminMain.php:60 +msgid "Server address is invalid!" +msgstr "伺服器位址錯誤!" + +#: ../templates/config/confmain.php:344 +msgid "Server list" +msgstr "伺服器清單" + +#: ../templates/login.php:338 +msgid "Server profile" +msgstr "伺服器設定檔" + +#: ../templates/config/confmain.php:145 +#: ../templates/selfService/adminMain.php:264 +msgid "Server settings" +msgstr "伺服器設定" + +#: ../templates/config/mainmanage.php:159 +#: ../help/help.inc:129 +msgid "Session timeout" +msgstr "連結(Session)期限" + +#: ../lib/modules/posixGroup.inc:174 +#: ../lib/modules/posixAccount.inc:1028 +msgid "Set password" +msgstr "設定密碼" + +#: ../lib/modules/posixAccount.inc:183 +#: ../lib/modules/posixAccount.inc:331 +msgid "Set primary group as memberUid" +msgstr "Set primary group as memberUid" + +#: ../templates/config/profmanage.php:279 +#: ../help/help.inc:119 +msgid "Set profile password" +msgstr "更改設定檔管理密碼" + +#: ../lib/modules/posixAccount.inc:1137 +msgid "Set random password" +msgstr "設定隨機的密碼" + +#: ../templates/lists/changePassword.php:191 +msgid "Set specific password" +msgstr "設定特定的密碼" + +#: ../lib/modules/posixGroup.inc:403 +msgid "Sets the group password." +msgstr "設定這個群組的密碼." + +#: ../lib/modules/shadowAccount.inc:73 +msgid "Shadow" +msgstr "Shadow" + +#: ../lib/modules/sambaSamAccount.inc:313 +#: ../lib/modules/sambaSamAccount.inc:1382 +#: ../lib/modules/sambaSamAccount.inc:1707 +msgid "Shadowing" +msgstr "Shadowing" + +#: ../templates/massBuildAccounts.php:202 +msgid "Show LDIF file" +msgstr "顯示 LDIF 檔" + +#: ../templates/tree/edit.php:107 +msgid "Show internal attributes" +msgstr "顯示內部屬性" + +#: ../lib/types/group.inc:262 +msgid "Show primary group members as normal group members" +msgstr "將主要的群組成員以一般的群組成員來顯示" + +#: ../templates/schema/schema.php:199 +msgid "Single valued" +msgstr "只含單一值" + +#: ../lib/modules/quota.inc:552 +msgid "Soft block" +msgstr "軟性區塊配額" + +#: ../lib/modules/quota.inc:100 +#: ../lib/modules/quota.inc:358 +#: ../lib/modules/quota.inc:443 +msgid "Soft block limit" +msgstr "軟性區塊配額限制" + +#: ../lib/modules/quota.inc:101 +msgid "Soft block limit." +msgstr "軟性區塊配額限制." + +#: ../lib/modules/quota.inc:554 +msgid "Soft inode" +msgstr "軟性檔案數目配額" + +#: ../lib/modules/quota.inc:123 +msgid "Soft inode (files) limit." +msgstr "軟性檔案數目配額限制." + +#: ../lib/modules/quota.inc:122 +#: ../lib/modules/quota.inc:362 +#: ../lib/modules/quota.inc:445 +msgid "Soft inode limit" +msgstr "軟性檔案數目配額限制." + +#: ../templates/tree/edit.php:141 +#, php-format +msgid "Some attributes (%s) were modified and are highlighted below." +msgstr "以下反白的屬性( %s )已被修改." + +#: ../lib/modules.inc:1042 +msgid "Some required information is missing" +msgstr "缺少一些必要的資訊" + +#: ../templates/help.php:121 +#, php-format +msgid "Sorry this help id ({bold}%s{endbold}) is not available for this module ({bold}%s{endbold})." +msgstr "抱歉,({bold}%s{endbold}) 模組並沒有說明檔 (help id {bold}%s{endbold})." + +#: ../templates/help.php:135 +#, php-format +msgid "Sorry this help number ({bold}%d{endbold}) is not available." +msgstr "抱歉,這個說明檔 ({bold}%d{endbold})並不存在." + +#: ../lib/modules/sambaAccount.inc:318 +#: ../lib/modules/sambaAccount.inc:406 +#: ../lib/modules/sambaAccount.inc:835 +#: ../lib/modules/sambaSamAccount.inc:258 +#: ../lib/modules/sambaSamAccount.inc:1107 +msgid "Special user" +msgstr "特殊群組" + +#: ../lib/modules/inetOrgPerson.inc:156 +#: ../lib/modules/inetOrgPerson.inc:164 +#: ../lib/modules/inetOrgPerson.inc:305 +#: ../lib/modules/inetOrgPerson.inc:482 +#: ../lib/modules/inetOrgPerson.inc:802 +#: ../lib/modules/inetOrgPerson.inc:1065 +#: ../lib/modules/inetOrgPerson.inc:1445 +msgid "State" +msgstr "State" + +#: ../templates/pdfedit/pdfpage.php:493 +#: ../templates/pdfedit/pdfpage.php:497 +msgid "Static text" +msgstr "靜態文字" + +#: ../templates/tree/templates/creation/custom.php:54 +msgid "Step 1 of 2: Name and object class(es)" +msgstr "步驟1: 名稱和物件類別" + +#: ../templates/tree/templates/creation/custom.php:177 +msgid "Step 2 of 2: Specify attributes and values" +msgstr "步驟2:指定屬性及屬性值" + +#: ../lib/modules/inetOrgPerson.inc:198 +msgid "Steve" +msgstr "Steve" + +#: ../lib/modules/sambaAccount.inc:225 +#: ../lib/modules/sambaSamAccount.inc:341 +#: ../lib/modules/posixAccount.inc:207 +#: ../lib/modules/inetOrgPerson.inc:330 +msgid "Steve Miller" +msgstr "Steve Miller" + +#: ../lib/modules/posixAccount.inc:268 +msgid "Steve Miller,Room 2.14,123-123-1234,123-123-1234" +msgstr "Steve Miller,Room 2.14,123-123-1234,123-123-1234" + +#: ../lib/modules/inetOrgPerson.inc:87 +#: ../lib/modules/inetOrgPerson.inc:153 +#: ../lib/modules/inetOrgPerson.inc:239 +#: ../lib/modules/inetOrgPerson.inc:414 +#: ../lib/modules/inetOrgPerson.inc:415 +#: ../lib/modules/inetOrgPerson.inc:774 +#: ../lib/modules/inetOrgPerson.inc:1050 +#: ../lib/modules/inetOrgPerson.inc:1397 +msgid "Street" +msgstr "街道" + +#: ../templates/pdfedit/pdfpage.php:676 +msgid "Structure name" +msgstr "架構名稱" + +#: ../templates/tree/export_form.php:76 +msgid "Sub (entire subtree)" +msgstr "Sub (含基礎識別名稱的所有子樹)" + +#: ../templates/schema/schema.php:181 +msgid "Substring Rule" +msgstr "子字串比對規則" + +#: ../templates/tree/rdelete.php:139 +#: ../templates/tree/rdelete.php:151 +msgid "Success" +msgstr "成功" + +#: ../templates/tests/lamdaemonTest.php:159 +msgid "Sudo is not setup correctly!" +msgstr "Sudo的設定不正確 !" + +#: ../lib/lists.inc:689 +#: ../lib/modules.inc:1312 +msgid "Suffix" +msgstr "尾碼" + +#: ../lib/modules/sambaSamAccount.inc:1189 +msgid "Sunday" +msgstr "星期日" + +#: ../templates/lists/changePassword.php:95 +#: ../lib/modules/sambaSamAccount.inc:188 +msgid "Sync Samba LM password with Unix password" +msgstr "同步 Samba LM 密碼和 Unix 密碼" + +#: ../templates/lists/changePassword.php:94 +#: ../lib/modules/sambaSamAccount.inc:187 +msgid "Sync Samba NT password with Unix password" +msgstr "同步 Samba NT 密碼和 Unix 密碼" + +#: ../templates/tree/add_value_form.php:190 +#: ../templates/schema/schema.php:186 +msgid "Syntax" +msgstr "語法" + +#: ../templates/schema/schema.php:94 +msgid "Syntax OID" +msgstr "OID語法" + +#: ../templates/schema/schema.php:78 +#: ../templates/schema/schema.php:79 +msgid "Syntaxes" +msgstr "語法" + +#: ../templates/config/mainmanage.php:314 +msgid "System logging" +msgstr "系統記錄" + +#: ../lib/modules/kolabUser.inc:245 +msgid "Target of invitation policy is invalid!" +msgstr "Target of invitation policy 錯誤 !" + +#: ../templates/lists/changePassword.php:157 +#: ../lib/modules/inetOrgPerson.inc:77 +#: ../lib/modules/inetOrgPerson.inc:152 +#: ../lib/modules/inetOrgPerson.inc:263 +#: ../lib/modules/inetOrgPerson.inc:430 +#: ../lib/modules/inetOrgPerson.inc:431 +#: ../lib/modules/inetOrgPerson.inc:833 +#: ../lib/modules/inetOrgPerson.inc:1054 +#: ../lib/modules/inetOrgPerson.inc:1365 +msgid "Telephone number" +msgstr "電話號碼" + +#: ../lib/modules/inetOrgPerson.inc:223 +msgid "Temp" +msgstr "臨時雇員" + +#: ../lib/modules/inetOrgPerson.inc:211 +msgid "Temp, contract until december" +msgstr "臨時雇員, 合約到年底" + +#: ../templates/tree/create_form.php:83 +msgid "Template" +msgstr "樣版" + +#: ../lib/modules/sambaSamAccount.inc:322 +#: ../lib/modules/sambaSamAccount.inc:1122 +msgid "Terminal server options" +msgstr "終端伺服器選項" + +#: ../templates/tools.php:95 +msgid "Tests" +msgstr "測試" + +#: ../templates/pdfedit/pdfpage.php:607 +msgid "Text field" +msgstr "文字表單" + +#: ../help/help.inc:103 +msgid "Text for user PDF" +msgstr "Text for user PDF" + +#: ../lib/modules/kolabUser.inc:182 +msgid "The Cyrus mail quota for users in MBytes, leave blank for unlimited space." +msgstr "使用者的 Cyrus 郵件空間配額, 以MBytes為單位, 若留空白表示沒有限制." + +#: ../templates/config/mainmanage.php:107 +#, php-format +msgid "The IP address %s is invalid!" +msgstr "IP位址: %s 錯誤!" + +#: ../lib/modules/sambaDomain.inc:75 +msgid "The SID of your Samba server. Get it with \"net getlocalsid\"." +msgstr "您的Samba伺服器的SID,使用\"net getlocalsid\"指令可以取得." + +#: ../lib/modules/posixAccount.inc:62 +msgid "The UID ranges for users and hosts overlap! This is a problem because LAM uses the highest UID in use + 1 for new accounts. Please set the minimum UID to equal values or use independent ranges." +msgstr "使用者帳號和主機帳號的UID重疊!這個問題是因為 LAM 使用目前被使用的最高UID+1來配發UID給新的帳號.請將最小的UID值設為相等或使用各自獨立的UID範圍." + +#: ../help/help.inc:149 +msgid "The account will be saved under this LDAP suffix." +msgstr "該帳號會被儲存在這個LDAP 尾綴(suffix) 節點之下." + +#: ../templates/tests/schemaTest.php:133 +#, php-format +msgid "The attribute %s is not supported for the object class(es) %s by your LDAP server." +msgstr "%s 這個屬性不被您的 LDAP 伺服器的 %s 物件類別所支援." + +#: ../templates/tree/templates/creation/custom.php:99 +#, php-format +msgid "The container you specified (%s) does not exist. Please try again." +msgstr "您所指定的%s容器節點並不存在,請重試." + +#: ../lib/modules/kolabUser.inc:170 +msgid "The country name of the user." +msgstr "使用者的國籍." + +#: ../lib/modules/phpGroupwareUser.inc:125 +#: ../lib/modules/shadowAccount.inc:56 +msgid "The expiration date is invalid." +msgstr "到期日(有效期間)無效." + +#: ../help/help.inc:179 +msgid "The first line is the subject." +msgstr "第一行為主題." + +#: ../templates/initsuff.php:183 +msgid "The following suffix(es) are missing in LDAP. LAM can create them for you." +msgstr "下列節點不存在於LDAP中,LAM可以為您建立." + +#: ../lib/modules/sambaSamAccount.inc:108 +#: ../lib/modules/sambaSamAccount.inc:109 +msgid "The format of the logon hours field is invalid!" +msgstr "可登入時間的格式錯誤!" + +#: ../templates/pdfedit/pdfpage.php:126 +msgid "The headline for a new section must contain at least one character." +msgstr "區段標題不能空白." + +#: ../lib/modules/sambaSamAccount.inc:235 +msgid "The home directory will be connected under this drive letter." +msgstr "使用者目錄將被連結在此磁碟機." + +#: ../templates/config/mainmanage.php:123 +msgid "The log file is empty or contains invalid characters! Valid characters are: a-z, A-Z, 0-9, /, \\, ., :, _ and -." +msgstr "記錄檔是空的或包含無效字元,有效字元包含 a-z, A-Z, 0-9, /, \\, ., :, _ 和 -." + +#: ../lib/modules.inc:1087 +#, php-format +msgid "The module %s is not yet ready." +msgstr "%s模組未啟動." + +#: ../templates/pdfedit/pdfpage.php:95 +msgid "The name for that PDF-structure you submitted is not valid. A valid name must constist at least of one of the following characters 'a-z','A-Z','0-9','_','-','.'." +msgstr "PDF架構名稱無效.有效的名稱至少要包含一個下列字元:a-z,A-Z,0-9,_,- ." + +#: ../lib/modules/kolabUser.inc:174 +msgid "The name of the server where the mailbox is located." +msgstr "郵件檔案所在的伺服器名稱." + +#: ../lib/modules/sambaDomain.inc:71 +msgid "The name of your Windows domain or workgroup." +msgstr "您的windows網域或群組的名稱." + +#: ../templates/tests/schemaTest.php:122 +#, php-format +msgid "The object class %s is not supported by your LDAP server." +msgstr "您的 LDAP 伺服器不支援 %s 物件類別." + +#: ../lib/modules/inetOrgPerson.inc:491 +msgid "The office name of the user (e.g. YourCompany, Human Resources)." +msgstr "使用者服務部門(例:公司名稱 ,人事部門)." + +#: ../lib/modules/groupOfNames.inc:69 +msgid "The owner of this group." +msgstr "這個群組的擁有者." + +#: ../templates/config/confmain.php:70 +#: ../templates/config/mainlogin.php:56 +#: ../templates/selfService/adminLogin.php:51 +msgid "The password is invalid! Please try again." +msgstr "密碼無效,請重試!" + +#: ../lib/security.inc:226 +#, php-format +msgid "The password is too short. You have to enter at least %s characters." +msgstr "密碼太短, 至少要 %s 字元." + +#: ../lib/security.inc:278 +#, php-format +msgid "The password is too weak. You have to enter at least %s different character classes (upper/lower case, numbers and symbols)." +msgstr "密碼太過簡單, 您必須輸入至少 %s 不同字元類型(大/小寫字母, 數字和符號)." + +#: ../lib/security.inc:249 +#, php-format +msgid "The password is too weak. You have to enter at least %s lower case characters." +msgstr "密碼太過簡單, 您必須輸入至少 %s 小寫字母." + +#: ../lib/security.inc:257 +#, php-format +msgid "The password is too weak. You have to enter at least %s numeric characters." +msgstr "密碼太過簡單, 您必須輸入至少 %s 數字." + +#: ../lib/security.inc:261 +#, php-format +msgid "The password is too weak. You have to enter at least %s symbolic characters." +msgstr "密碼太過簡單, 您必須輸入至少 %s 符號.." + +#: ../lib/security.inc:253 +#, php-format +msgid "The password is too weak. You have to enter at least %s upper case characters." +msgstr "密碼太過簡單, 您必須輸入至少 %s 大寫字母." + +#: ../templates/lists/changePassword.php:326 +msgid "The password(s) were set to:" +msgstr "密碼被設為: " + +#: ../lib/modules/posixAccount.inc:352 +msgid "The primary group for this account. You can insert a GID number or a group name." +msgstr "這個帳號所隸屬的主要群組.可以使用群組GID或群組名稱." + +#: ../lib/modules/posixAccount.inc:419 +msgid "The primary group the host should be member of." +msgstr "該主機所隸屬的主要群組." + +#: ../lib/modules/posixAccount.inc:381 +msgid "The primary group the user should be member of." +msgstr "該使用者隸屬的主要群組." + +#: ../lib/modules/inetOrgPerson.inc:471 +msgid "The room number of the employee's office." +msgstr "員工辦公室的編號." + +#: ../lib/modules/inetOrgPerson.inc:483 +msgid "The state where the user resides or works." +msgstr "使用者居住或工作所在州(省)名." + +#: ../templates/pdfedit/pdfpage.php:114 +msgid "The static text must contain at least one character." +msgstr "靜態文字至少要包含一個字元." + +#: ../help/help.inc:182 +msgid "The wildcard for the new password is @@newPasssword@@." +msgstr "新密碼使用的萬用字元格式是 @@新密碼@@" + +#: ../templates/tree/add_oclass_form.php:125 +msgid "There are new required attributes which need to be set." +msgstr "必須設定一些新的必要屬性." + +#: ../lib/modules/posixGroup.inc:483 +msgid "There are still users who have this group as their primary group." +msgstr "仍有使用者以這個群組為其主要群組." + +#: ../lib/modules/sambaGroupMapping.inc:397 +msgid "There can be only one group of this type." +msgstr "只能有一個此類型的群組." + +#: ../templates/massDoUpload.php:128 +msgid "There were errors while uploading:" +msgstr "上傳發生錯誤." + +#: ../lib/modules/posixGroup.inc:407 +msgid "These are the minimum and maximum numbers to use for group IDs when creating new group accounts. New group accounts will always get the highest number in use plus one." +msgstr "當新增群組帳號時,所能配發的最小及最大的GID編號.新的群組帳號會配發目前已被使用的最大GID編號加1的號碼." + +#: ../lib/modules/posixAccount.inc:340 +msgid "These are the minimum and maximum numbers to use for machine IDs when creating new accounts for Samba hosts. The range should be different from that of users. New host accounts will always get the highest number in use plus one." +msgstr "當新增 Samba 主機帳號時,可以配發的最小及最大UID,這個範圍應該和使用者帳號的UID有所區隔.新的主機帳號會配發目前已被使用的UID編號加1的號碼." + +#: ../lib/modules/posixAccount.inc:336 +msgid "These are the minimum and maximum numbers to use for user IDs when creating new user accounts. The range should be different from that of machines. New user accounts will always get the highest number in use plus one." +msgstr "新增使用者帳號時,所能配發的最小及最大UID,其範圍應該和主機帳號不同.新的使用者帳號會配發目前已被使用的最大編號加1的UID號碼." + +#: ../lib/modules/posixAccount.inc:87 +msgid "This GID number is invalid! Please provide either a number or a group name." +msgstr "GID無效,請提供編號或群組名稱" + +#: ../lib/modules/kolabUser.inc:307 +msgid "This account is marked for deletion." +msgstr "這個帳號被標示為刪除." + +#: ../lib/modules/sambaSamAccount.inc:259 +msgid "This allows you to define this account as a special user like administrator or guest." +msgstr "您可以將這個帳號設為特殊的使用者, 類似 管理者(administrator) 或 來賓(guest)" + +#: ../lib/modules/inetOrgPerson.inc:487 +msgid "This can be used to specify if the user has a car license." +msgstr "如果使用者有駕照, 可以填寫." + +#: ../help/help.inc:120 +msgid "This changes the password of the selected profile." +msgstr "改變設定檔的管理密碼" + +#: ../help/help.inc:122 +msgid "This changes the profile which is selected by default at login." +msgstr "改變登入時預設選定的伺服器設定檔." + +#: ../templates/massBuildAccounts.php:152 +msgid "This column is defined to include unique entries but duplicates were found:" +msgstr "這個欄位不能有重覆的項目:" + +#: ../help/help.inc:96 +msgid "This defines the language of the login window and sets this language as the default language. Users can change the language at login." +msgstr "設定登入畫面的預設語言,使用者也可以在登入畫面中更改." + +#: ../help/help.inc:112 +msgid "This defines the rights for the home directories which are created by lamdaemon." +msgstr "此處定義 lamdaemon 所建立的使用者目錄的權限設定." + +#: ../lib/modules/inetOrgPerson.inc:479 +msgid "This describes the location of the user." +msgstr "這是描述使用者所在的位置." + +#: ../lib/lamPDF.inc:126 +msgid "This document was automatically created by LDAP Account Manager" +msgstr "本文件由LDAP Account Manager自動產生" + +#: ../templates/tree/edit.php:210 +msgid "This entry has no attributes" +msgstr "這個項目沒有任何屬性" + +#: ../templates/tree/delete_form.php:96 +#, php-format +msgid "This entry is the root of a sub-tree containing %s entries." +msgstr "這個項目是一個包含 %s 個項目的子樹的根." + +#: ../lib/modules/posixAccount.inc:89 +msgid "This gecos value is invalid!" +msgstr "備註(gecos)欄位的內容無效" + +#: ../lib/modules/ieee802device.inc:66 +msgid "This is a comma separated list of MAC addresses." +msgstr "這是以逗點分隔的MAC位址清單." + +#: ../lib/modules/kolabUser.inc:158 +msgid "This is a comma separated list of delegates." +msgstr "這是以逗點分隔的delegate清單." + +#: ../lib/modules/kolabUser.inc:166 +msgid "This is a comma separated list of eMail aliases." +msgstr "這是以逗點分隔的郵件別名清單." + +#: ../lib/modules/kolabUser.inc:150 +msgid "This is a comma separated list of invitation policies." +msgstr "這是以逗點分隔的MAC位址清單." + +#: ../lib/modules/nisMailAlias.inc:76 +msgid "This is a comma separated list of recipients." +msgstr "這是以逗點分隔的收件者清單." + +#: ../lib/modules/inetLocalMailRecipient.inc:70 +msgid "This is a comma separated list of the users public email addresses." +msgstr "這是以逗點分隔的使用者公開的email清單." + +#: ../help/help.inc:136 +msgid "This is a list of IP addresses from hosts who may access LAM. You can use \"*\" as wildcard (e.g. 192.168.0.*)." +msgstr "這是一組可以存取LAM系統的主機位址清單. 可以使用\"*\" 當萬用字元(例如 192.168.0.*)." + +#: ../lib/modules/groupOfNames.inc:73 +msgid "This is a list of members of this group." +msgstr "這是該群組的成員清單." + +#: ../lib/modules/groupOfNames.inc:77 +msgid "This is a list of members of this group. Multiple members are separated by semicolons." +msgstr "這是隸屬於這個群組的成員清單.以分號隔開." + +#: ../help/help.inc:109 +msgid "This is a list of the servers where the lamdaemon scripts are stored. LDAP Account Manager will make a SSH connection to the servers with the user name and password provided at login. Multiple servers are separated by semicolons. You can append a descriptive name after a colon." +msgstr "這是一份 lamdaemon 指令檔所在的伺服器清單. LAM 會以使用者登入 時所輸入的帳號密碼, 使用 SSH 來連結這些伺服器, 伺服器之間以分號隔開, 您也可以在冒號後面加上一些說明." + +#: ../help/help.inc:89 +msgid "This is a list of valid DN entries of all users that are allowed to login to LDAP Account Manager. Please enter one DN per line." +msgstr "這是所有容許登入 LAM 的使用者的 DN 清單,每行輸入一個DN." + +#: ../templates/masscreate.php:227 +msgid "This is an example how it would look in your spreadsheet program before you convert to CSV:" +msgstr "以下是一個未儲存成CSV檔前的試算表可能的樣子:" + +#: ../help/help.inc:164 +msgid "This is needed to find the LDAP DNs of your user accounts. E.g. if you use \"uid\" and your user inputs \"miller\" then LAM will search for an account with uid=miller." +msgstr "這是用來搜尋使用者帳號的 LDAP DN. 例如,若您使用\"uid\" 而使用者輸入 \"miller\" ,則LAM將會使用 uid=miller 這個條件來搜尋帳號." + +#: ../lib/modules/inetOrgPerson.inc:102 +msgid "This is not a valid DN!" +msgstr "這不是有效的DN!" + +#: ../lib/modules/sambaSamAccount.inc:96 +msgid "This is not a valid RID number!" +msgstr "這不是有效的RID!" + +#: ../lib/modules/sambaGroupMapping.inc:399 +msgid "This is not a valid Samba 3 group type!" +msgstr "這不是有效的samba 3群組類型!" + +#: ../lib/modules/inetLocalMailRecipient.inc:66 +msgid "This is one of the users public email addresses." +msgstr "這是一個使用者公開的 email信箱." + +#: ../lib/modules/nisMailAlias.inc:72 +msgid "This is one recipient for this alias." +msgstr "這是這個別名所屬的收件者." + +#: ../lib/modules/inetOrgPerson.inc:411 +msgid "This is the LDAP DN of the user's manager. Use this property to represent hierarchies in your company." +msgstr "這是指該使用者的管理員的LDAP DN.這個設定可以顯示出公司的階級." + +#: ../lib/modules/ieee802device.inc:62 +msgid "This is the MAC address of the network card of the device (e.g. 00:01:02:DE:EF:18)." +msgstr "指網路卡的MAC位址(例如:00:01:02:DE:EF:18)." + +#: ../lib/modules/sambaAccount.inc:404 +msgid "This is the RID of the user's primary Windows group." +msgstr "這是該使用者windows主要群組的RID." + +#: ../lib/modules/sambaSamAccount.inc:256 +msgid "This is the SID of the user's primary Windows group." +msgstr "這是該使用者windows主要群組的SID." + +#: ../help/help.inc:98 +msgid "This is the absolute path to an external script for setting quotas and creating home directories." +msgstr "這是外部指令檔的絕對路徑,這個指令檔用來設定磁碟配額及建立使用者個人目錄." + +#: ../lib/modules/sambaAccount.inc:348 +#: ../lib/modules/sambaSamAccount.inc:197 +msgid "This is the account's Windows password." +msgstr "該帳號在windows系統的密碼" + +#: ../lib/modules/sambaAccount.inc:345 +#: ../lib/modules/sambaSamAccount.inc:194 +msgid "This is the account's full name on Windows systems." +msgstr "該帳號在windows系統的完整名稱" + +#: ../lib/modules/sambaSamAccount.inc:278 +#: ../lib/modules/phpGroupwareUser.inc:83 +#: ../lib/modules/shadowAccount.inc:175 +msgid "This is the date when the account will expire. Format: DD-MM-YYYY" +msgstr "帳號過期的時間,格式: DD-MM-YYYY" + +#: ../lib/modules/sambaGroupMapping.inc:315 +msgid "This is the group name which will be shown in Windows." +msgstr "會顯示在windows的群組名稱." + +#: ../help/help.inc:145 +msgid "This is the identifier for the relative DN value. It must be one of the given allowed LDAP attributes (e.g. user accounts usually use \"uid\" while groups use \"cn\")." +msgstr "指定那一個屬性做為該項目的相對識別名稱(RDN).您必需從下拉式表單中選擇其一(例如,使者帳號通常使用\"uid\",而群組通常使用\"cn\"))" + +#: ../help/help.inc:84 +msgid "This is the list of attributes to show in the account list. The entries can either be predefined values, \"#attribute\", or individual ones, \"attribute:description\". Several entries are separated by semicolons." +msgstr "這是要顯示在使用者/群組/主機帳號列表中的屬性欄位,這些屬性欄位的名稱可以事先以變數來定義,如\"#屬性名稱變數\",或是是直接指定,如\"attribute:屬性欄位名稱\".多個屬位欄位要以分號來分隔." + +#: ../lib/modules/inetLocalMailRecipient.inc:74 +msgid "This is the mail server for the user." +msgstr "這是使用者所使用的郵件伺服器." + +#: ../lib/modules/groupOfNames.inc:61 +msgid "This is the name of this group." +msgstr "這是該群組名稱." + +#: ../lib/modules/posixAccount.inc:427 +msgid "This is the natural name of the host. If empty, the host name will be used." +msgstr "這是主機帳號的全名(natural name). 若未填寫, 則會使用主機名稱(host name)." + +#: ../lib/modules/inetOrgPerson.inc:447 +msgid "This is the natural name of the user. If empty, the first and last name is used." +msgstr "這是使用者的natural name. 若未填寫, 則會使用first 和 last name." + +#: ../lib/modules/posixAccount.inc:405 +msgid "This is the natural name of the user. If empty, the first and last name or user name is used." +msgstr "這是使用者的natural name.若留空白,會使用first and last name或user name." + +#: ../lib/modules/sambaDomain.inc:115 +msgid "This is the number of bad logon attempts (0 - 999) before the accounts is deactivated. 0 means unlimited attempts." +msgstr "指帳號被停用之前可嘗試登入錯誤的次數. 0表示不限制." + +#: ../lib/modules/sambaDomain.inc:99 +msgid "This is the number of passwords which are saved to prevent that users reuse old passwords." +msgstr "這是指要儲存歷史密碼的次數,以防止使用者重覆使用舊密碼." + +#: ../help/help.inc:94 +msgid "This is the number of rows to show in the account list. If more entries are found the list will be split into several pages." +msgstr "顯示在每一頁帳號清單中的列數. 若搜尋到的項目超過此數, 將會以分頁來顯示." + +#: ../lib/modules/sambaSamAccount.inc:287 +msgid "This is the path to the user's home directory." +msgstr "此處為使用者個人目錄的路徑." + +#: ../lib/modules/sambaGroupMapping.inc:323 +msgid "This is the relative ID (similar to UID on Unix) for Windows accounts. If you leave this empty LAM will calculate the RID from the UID. This can be either a number or the name of a special group:" +msgstr "這個群組帳號的RID(relative ID,類似於Unix的UID).若留空白,系統將會依據UID來自動計算出RID.可以設一個數字或是特殊群組的名稱之一:" + +#: ../lib/modules/sambaSamAccount.inc:262 +msgid "This is the relative ID number for your Windows account. You can either enter a number or one of these special accounts: " +msgstr "這是您的windows帳號的RID(relative ID),您可以輸入數字或者是以下特殊帳號的其中之一:" + +#: ../lib/modules/sambaSamAccount.inc:266 +msgid "This is the relative ID number for your host account. If you leave this empty LAM will use: uidNumber*2 + sambaAlgorithmicRidBase." +msgstr "這個主機帳號的RID,若留空白,則會使用uidNumber*2 + sambaAlgorithmicRidBase演算法來自動計算." + +#: ../help/help.inc:60 +msgid "This is the server address of your LDAP server. Use ldap:// for standard LDAP connections and ldaps:// for encrypted (require server certificates) connections. The port value is optional." +msgstr "這是指您的LDAP伺服器位址.ldap:// 的格式表示標準的LDAP連結, ldaps:// 表示加密(需要伺服器憑證)連結.連接埠號是選填的." + +#: ../help/help.inc:78 +msgid "This is the suffix for the LDAP tree viewer." +msgstr "設定LDAP樹狀瀏覽器的尾碼(根節點)." + +#: ../help/help.inc:72 +msgid "This is the suffix of the LDAP tree from where to search for LDAP entries. Only entries in this subtree will be displayed in the account list. When creating a new accont this will be the DN where it is saved." +msgstr "LDAP會從這個尾碼子樹開始搜尋使用者/群組/主機 項目.只有位於這個尾碼節點以下的項目,才會顯示在使用者/群組/主機 的清單中.在建立新帳號時,這就是它的DN尾碼,就是它所儲存的位置所在." + +#: ../lib/modules/inetLocalMailRecipient.inc:62 +msgid "This is the target email address for the user's mails." +msgstr "指定該使用者的電子郵件要送去哪個郵件地址." + +#: ../lib/modules/sambaDomain.inc:127 +msgid "This is the time (in minutes) for which the user may not log in after the account was locked. -1 means forever." +msgstr "這是指使用者在停權以後多久時間(分鐘為單位)不能再登入.-1表示永遠." + +#: ../help/help.inc:130 +msgid "This is the time (in minutes) of inactivity after which a user is automatically logged off." +msgstr "這是指使用者登入後多久時間(分鐘)沒有動作就會被自動登出." + +#: ../help/help.inc:102 +msgid "This is the time in minutes which LAM caches its LDAP searches. Shorter times will stress LDAP more but decrease the possibility that changes are not identified." +msgstr "LAM會快取LDAP的搜尋結果,這裡設定快取的有效時間,以分為單位,設定較短的時間,會占用LDAP較多的效能,但能減少因為改變而造成的資料不一致的問題." + +#: ../lib/modules/kolabUser.inc:178 +msgid "This is the time limit (in days) for other users who want to check future appointments. If you leave this blank the default (60 days) will be set." +msgstr "對於想要檢查未來約會的其他使用者的時間期限(以日為單位). 如果留空白, 預設值為60天." + +#: ../lib/modules/sambaSamAccount.inc:281 +msgid "This is the time zone of your Samba server. LAM needs this information to display the logon hours correctly." +msgstr "這是指 Samba 伺服器所在位置的時區. LAM依據此資訊來正確顯示使用者可登入時間." + +#: ../lib/modules/sambaSamAccount.inc:253 +msgid "This is the user's primary Windows group." +msgstr "這是該使用者隸屬的主要windodws群組." + +#: ../lib/modules/posixAccount.inc:90 +msgid "This login shell is invalid!" +msgstr "登入shell錯誤!" + +#: ../lib/modules/inetLocalMailRecipient.inc:233 +msgid "This mail address is already in use:" +msgstr "這個 Email 已經存在: " + +#: ../templates/schema/schema.php:355 +msgid "This object class is obsolete." +msgstr "這個物件類別是舊式的." + +#: ../lib/modules/sambaSamAccount.inc:272 +msgid "This option defines the allowed logon hours for this account." +msgstr "設定這個帳號可以登入的時間" + +#: ../lib/modules/sambaSamAccount.inc:275 +msgid "This option defines the allowed logon hours for this account. The format is the same as for the LDAP attribute. The 24*7 hours are represented as 168 bit which are saved as 21 hex (21*8 = 168) values. The first bit represents Sunday 0:00 - 0:59 in GMT." +msgstr "設定這個帳號可以登入的時間.The format is the same as for the LDAP attribute. 使用168(24*7)個位元來表示,這168個位元以21個位元組來儲存(21*8=168).第一個位元表示格林威治時間星期日0:00-0:59." + +#: ../lib/modules/sambaSamAccount.inc:296 +msgid "This program is run after the login." +msgstr "此程式將在登入後被執行." + +#: ../lib/modules/sambaSamAccount.inc:320 +msgid "This specifies the reconnect policy." +msgstr "此處設定重新連結的原則." + +#: ../lib/modules/sambaSamAccount.inc:317 +msgid "This specifies what to do when the client connection is broken." +msgstr "此處設定當客戶端連結被中斷時該如何處理." + +#: ../help/help.inc:168 +msgid "This text is displayed on top of the self service login page. You can also input HTML code here." +msgstr "這些文字會顯示在自助服務登入頁的上方. 您也可以輸入 HTML 語法." + +#: ../help/help.inc:170 +msgid "This text is displayed on top of the self service main page. You can also input HTML code here." +msgstr "這些文字會顯示在自助服務主頁的上方. 您也可以輸入 HTML 語法." + +#: ../help/help.inc:166 +msgid "This text should shortly describe your selected LDAP search attribute (e.g. email or user name)." +msgstr "這些文字用來簡短描述您所選擇的LDAP搜尋屬性(例如 email 或 使用者名稱)." + +#: ../help/help.inc:104 +msgid "This text will appear on top of every user PDF file." +msgstr "這些文字會出現在每個使用者PDF檔的上方." + +#: ../templates/tools.php:81 +msgid "This tool allows you to customize the PDF pages." +msgstr "這個工具可以自定PDF頁面." + +#: ../templates/lists/userlink.php:64 +#: ../templates/lists/changePassword.php:50 +msgid "This user was not found!" +msgstr "找不到這個使用者!" + +#: ../lib/modules/sambaAccount.inc:79 +#: ../lib/modules/sambaAccount.inc:80 +#: ../lib/modules/sambaAccount.inc:81 +#: ../lib/modules/sambaAccount.inc:82 +#: ../lib/modules/sambaSamAccount.inc:99 +#: ../lib/modules/sambaSamAccount.inc:100 +#: ../lib/modules/sambaSamAccount.inc:101 +#: ../lib/modules/sambaSamAccount.inc:102 +msgid "This value can only be \\\"true\\\" or \\\"false\\\"!" +msgstr "這個值只能是true或false." + +#: ../lib/modules/posixAccount.inc:91 +msgid "This value can only be \\\"true\\\" or \\\"false\\\"." +msgstr "這個值只能是true或false." + +#: ../lib/modules/posixGroup.inc:482 +msgid "This value must be a list of user names separated by semicolons." +msgstr "這個值是以分號分隔的使用者名稱清單." + +#: ../help/help.inc:187 +msgid "This will create a new organizational unit under the selected one." +msgstr "在所選擇的節點下建立一個ou物件" + +#: ../lib/modules/posixAccount.inc:368 +msgid "This will create the user's home directory on the specified server." +msgstr "這將會在指定的伺服器上建立使用者個人目錄." + +#: ../help/help.inc:189 +msgid "This will delete the selected organizational unit. The OU has to be empty." +msgstr "刪除所選擇的ou物件,這個ou物件必需是空的." + +#: ../help/help.inc:118 +msgid "This will delete the selected profile." +msgstr "刪除選定的設定檔." + +#: ../lib/modules/sambaAccount.inc:351 +#: ../lib/modules/sambaSamAccount.inc:200 +msgid "This will reset the host's password to a default value." +msgstr "會將主機密碼回復為預設值." + +#: ../templates/lists/changePassword.php:171 +#: ../help/help.inc:176 +msgid "This will set a random password and display it on the screen or send it the user via mail." +msgstr "這會產生一個隨機的新密碼, 並顯示在螢幕上或經由電子郵件寄送給使用者." + +#: ../lib/modules/kolabUser.inc:186 +msgid "This will set a special flag on the account which tells Kolabd to remove it. Use this to cleanly delete Kolab accounts (e.g. this removes mail boxes)." +msgstr "這會在這個帳號設定一些特殊旗標.以通知Kolabd刪除這個帳號.這麼做可以完全刪除 Kolab帳號 (包含其郵件檔案)." + +#: ../lib/modules/sambaSamAccount.inc:1188 +msgid "Thursday" +msgstr "星期四" + +#: ../lib/modules/sambaSamAccount.inc:1229 +msgid "Time" +msgstr "時間" + +#: ../lib/modules/sambaSamAccount.inc:301 +msgid "Time limit" +msgstr "時間限制" + +#: ../lib/modules/sambaSamAccount.inc:280 +#: ../lib/modules/sambaSamAccount.inc:475 +msgid "Time zone" +msgstr "時區" + +#: ../templates/tests/lamdaemonTest.php:147 +#: ../lib/lamdaemon.inc:121 +msgid "Timeout while executing lamdaemon commands!" +msgstr "執行lamdaemon命令的時間已超過 !" + +#: ../lib/modules/posixAccount.inc:397 +msgid "To disable login use /bin/false. The list of shells is read from lam/config/shells" +msgstr "設定為/bin/false表示該使用者無法使用shell登入. 這裡的shell清單取自lam/config/shells檔案中." + +#: ../lib/modules/sambaSamAccount.inc:499 +msgid "Tokyo, Seoul, Osaka, Yakutsk" +msgstr "東京, 首爾, 大阪, 亞庫次克" + +#: ../templates/main_header.php:64 +msgid "Tools" +msgstr "工具" + +#: ../lib/export.inc:444 +#: ../lib/export.inc:514 +msgid "Total entries" +msgstr "所有項目" + +#: ../lib/types/user.inc:249 +msgid "Translate GID number to group name" +msgstr "將GID編號轉換為群組名稱" + +#: ../templates/config/confmain.php:164 +#: ../help/help.inc:77 +msgid "Tree suffix" +msgstr "樹狀結構的尾碼" + +#: ../templates/main_header.php:76 +msgid "Tree view" +msgstr "樹狀結構" + +#: ../templates/config/confmain.php:513 +msgid "TreeSuffix is invalid!" +msgstr "樹狀結構的尾碼無效!" + +#: ../lib/modules/sambaSamAccount.inc:1188 +msgid "Tuesday" +msgstr "星期二" + +#: ../templates/selfService/profManage.php:145 +#: ../templates/schema/schema.php:353 +msgid "Type" +msgstr "類型" + +#: ../lib/modules/posixAccount.inc:75 +msgid "UID" +msgstr "UID" + +#: ../lib/modules/posixAccount.inc:75 +msgid "UID has changed. Do you want to change home directory?" +msgstr "UID已經改變,要改變個人目錄嗎 ?" + +#: ../lib/modules/posixAccount.inc:70 +msgid "UID must be a number. It has to be inside the UID range which is defined in your configuration profile." +msgstr "UID必須是一個數字,位於您所設定的範圍內." + +#: ../lib/types/host.inc:86 +#: ../lib/types/user.inc:83 +#: ../lib/modules/posixAccount.inc:71 +#: ../lib/modules/posixAccount.inc:211 +#: ../lib/modules/posixAccount.inc:285 +#: ../lib/modules/posixAccount.inc:335 +#: ../lib/modules/posixAccount.inc:339 +#: ../lib/modules/posixAccount.inc:347 +#: ../lib/modules/posixAccount.inc:974 +#: ../lib/modules/posixAccount.inc:1216 +msgid "UID number" +msgstr "UID編號" + +#: ../lib/modules/posixAccount.inc:71 +#, php-format +msgid "UID number has changed. To keep file ownership you have to run the following command as root: 'find / -uid %s -exec chown %s {} \\;'" +msgstr "使用者的UID已經變更.要維持所屬檔案的使用者,您必須以root的身分執行以下命令: 'find / -uid %s -exec chown %s {} \\;'" + +#: ../lib/modules/posixAccount.inc:62 +msgid "UID ranges for Unix accounts" +msgstr "Unix帳號使用的的UID範圍" + +#: ../lib/modules/sambaAccount.inc:386 +#: ../lib/modules/sambaSamAccount.inc:238 +msgid "UNC-path (\\\\server\\share) of homedirectory. $user and $group are replaced with user and group name." +msgstr "使用者個人目錄的UNC路徑(\\\\server\\share).$user和$group會以使用者及群組名稱來置換." + +#: ../templates/selfService/selfServiceMain.php:136 +msgid "Unable to change your account. Maybe you do not have enough rights to change the settings." +msgstr "無法改變您的帳號. 可能是因為您沒有足夠的權限更改這些設定." + +#: ../templates/tests/lamdaemonTest.php:284 +#: ../lib/lamdaemon.inc:134 +#: ../lib/lamdaemon.inc:139 +msgid "Unable to connect to remote server!" +msgstr "無法連結遠端伺服器 !" + +#: ../templates/ou_edit.php:70 +msgid "Unable to create new OU!" +msgstr "無法建立新的OU!" + +#: ../templates/config/profmanage.php:87 +#: ../templates/selfService/profManage.php:71 +msgid "Unable to create new profile!" +msgstr "無法建立新的設定檔!" + +#: ../templates/ou_edit.php:87 +msgid "Unable to delete OU!" +msgstr "無法刪除OU!" + +#: ../templates/pdfedit/pdfdelete.php:62 +msgid "Unable to delete PDF structure!" +msgstr "無法刪除PDF架構!" + +#: ../templates/config/profmanage.php:109 +#: ../templates/selfService/profManage.php:99 +#: ../templates/profedit/profiledelete.php:64 +msgid "Unable to delete profile!" +msgstr "無法刪除設定檔!" + +#: ../lib/modules/posixAccount.inc:1395 +#: ../lib/modules/posixAccount.inc:1630 +msgid "Unable to find group in LDAP." +msgstr "LDAP中找不到群組." + +#: ../lib/modules.inc:1440 +#: ../lib/modules.inc:1444 +msgid "Unable to load LDAP entry:" +msgstr "無法載入 LDAP 項目 :" + +#: ../templates/config/confmain.php:325 +msgid "Unable to load available languages. Setting English as default language. For further instructions please contact the Admin of this site." +msgstr "無法載入語言設定檔,將使用英語為預設語言.請洽網站管理員取得更進一步的訊息." + +#: ../lib/profiles.inc:91 +#: ../lib/profiles.inc:95 +#: ../lib/selfService.inc:174 +#: ../lib/selfService.inc:178 +msgid "Unable to load profile!" +msgstr "無法載入設定檔!" + +#: ../templates/tests/schemaTest.php:67 +#: ../templates/schema/schema.php:98 +#: ../templates/schema/schema.php:116 +#: ../templates/schema/schema.php:277 +#: ../templates/schema/schema.php:311 +msgid "Unable to retrieve schema!" +msgstr "無法取得shcema資料!" + +#: ../templates/selfService/adminMain.php:124 +#: ../templates/profedit/profilepage.php:130 +msgid "Unable to save profile!" +msgstr "無法儲存設定檔!" + +#: ../templates/lists/changePassword.php:322 +msgid "Unable to send mail!" +msgstr "無法寄出電子郵件 !" + +#: ../lib/modules/posixGroup.inc:298 +#: ../lib/modules/posixAccount.inc:122 +msgid "Unix" +msgstr "unix" + +#: ../templates/tests/lamdaemonTest.php:225 +msgid "Unix account" +msgstr "Unix 帳號" + +#: ../lib/modules/inetOrgPerson.inc:71 +#: ../lib/modules/inetOrgPerson.inc:348 +#: ../lib/modules/inetOrgPerson.inc:454 +#: ../lib/modules/inetOrgPerson.inc:902 +#: ../lib/modules/inetOrgPerson.inc:1044 +msgid "Unix workstations" +msgstr "unix工作站" + +#: ../lib/modules/inetOrgPerson.inc:71 +#: ../lib/modules/inetOrgPerson.inc:72 +msgid "Unix workstations are invalid!" +msgstr "unix工作站無效!" + +#: ../templates/tests/lamdaemonTest.php:162 +msgid "Unknown error" +msgstr "未知的錯誤" + +#: ../lib/modules/posixGroup.inc:181 +#: ../lib/modules/posixAccount.inc:1035 +msgid "Unlock password" +msgstr "解除密碼鎖定" + +#: ../templates/config/confmodules.php:240 +msgid "Unsolved dependency:" +msgstr "未解決的相依性問題:" + +#: ../templates/pdfedit/pdfpage.php:415 +msgid "Up" +msgstr "往上" + +#: ../templates/massBuildAccounts.php:199 +msgid "Upload accounts to LDAP" +msgstr "上傳帳號至LDAP" + +#: ../templates/masscreate.php:138 +msgid "Upload file and create accounts" +msgstr "開始上傳" + +#: ../lib/modules.inc:450 +#, php-format +msgid "Upload was stopped after errors in %s module!" +msgstr "因為 %s 模組錯誤,上傳停止." + +#: ../templates/schema/schema.php:214 +msgid "Usage" +msgstr "用法" + +#: ../lib/modules/sambaAccount.inc:124 +#: ../lib/modules/sambaAccount.inc:235 +#: ../lib/modules/sambaAccount.inc:353 +#: ../lib/modules/sambaAccount.inc:356 +#: ../lib/modules/sambaAccount.inc:752 +#: ../lib/modules/sambaSamAccount.inc:202 +#: ../lib/modules/sambaSamAccount.inc:205 +#: ../lib/modules/sambaSamAccount.inc:351 +#: ../lib/modules/sambaSamAccount.inc:958 +#: ../lib/modules/sambaSamAccount.inc:1427 +msgid "Use Unix password" +msgstr "使用unix的密碼" + +#: ../lib/modules/sambaAccount.inc:130 +#: ../lib/modules/sambaAccount.inc:243 +#: ../lib/modules/sambaAccount.inc:359 +#: ../lib/modules/sambaAccount.inc:362 +#: ../lib/modules/sambaAccount.inc:756 +#: ../lib/modules/sambaSamAccount.inc:208 +#: ../lib/modules/sambaSamAccount.inc:211 +#: ../lib/modules/sambaSamAccount.inc:359 +#: ../lib/modules/sambaSamAccount.inc:963 +#: ../lib/modules/sambaSamAccount.inc:1433 +msgid "Use no password" +msgstr "不需密碼" + +#: ../lib/modules/quota.inc:96 +#: ../lib/modules/quota.inc:357 +msgid "Used blocks" +msgstr "已使用的區塊" + +#: ../lib/modules/quota.inc:97 +msgid "Used blocks. 1000 blocks are usually 1MB" +msgstr "已使用的區塊數. 1000個區塊約等於1MB" + +#: ../templates/schema/schema.php:273 +msgid "Used by attributes" +msgstr "被那些屬性使用" + +#: ../templates/schema/schema.php:242 +msgid "Used by object classes" +msgstr "有使用的物件類別" + +#: ../lib/modules/sambaDomain.inc:91 +msgid "Used for calculating RIDs from UID/GID. Do not change if unsure." +msgstr "利用此基數,可以由UID/GID來計算RID,不了解的話請不要更動." + +#: ../lib/modules/quota.inc:118 +#: ../lib/modules/quota.inc:361 +msgid "Used inodes" +msgstr "已使用的檔案數目" + +#: ../lib/modules/quota.inc:119 +msgid "Used inodes (files)" +msgstr "已使用的inodes(檔案)" + +#: ../lib/modules/sambaGroupMapping.inc:66 +msgid "User" +msgstr "使用者" + +#: ../lib/types/user.inc:82 +msgid "User ID" +msgstr "使用者帳號" + +#: ../lib/types/user.inc:53 +msgid "User accounts (e.g. Unix, Samba and Kolab)" +msgstr "使用者帳號(例如 Unix, Samba及Kolab)" + +#: ../lib/modules/sambaAccount.inc:267 +#: ../lib/modules/sambaAccount.inc:377 +#: ../lib/modules/sambaAccount.inc:768 +#: ../lib/modules/sambaSamAccount.inc:229 +#: ../lib/modules/sambaSamAccount.inc:383 +#: ../lib/modules/sambaSamAccount.inc:994 +#: ../lib/modules/sambaSamAccount.inc:1251 +msgid "User can change password" +msgstr "使用者可以更改密碼的日期" + +#: ../lib/modules/posixAccount.inc:377 +msgid "User description. If left empty first and last name will be used." +msgstr "該使用者的描述,若留空白則使用姓氏 名字." + +#: ../lib/modules/inetOrgPerson.inc:391 +msgid "User description. If left empty sur- and give name will be used." +msgstr "該使用者的描述,若留空白則使用姓氏 名字" + +#: ../lib/modules/account.inc:99 +msgid "User description. If left empty user name will be used." +msgstr "關於使用者的描述, 若留空白,預設為使用者姓名." + +#: ../templates/schema/schema.php:209 +msgid "User modification" +msgstr "使用者修正" + +#: ../lib/modules/sambaAccount.inc:274 +#: ../lib/modules/sambaAccount.inc:379 +#: ../lib/modules/sambaAccount.inc:776 +#: ../lib/modules/sambaSamAccount.inc:231 +#: ../lib/modules/sambaSamAccount.inc:390 +#: ../lib/modules/sambaSamAccount.inc:1011 +#: ../lib/modules/sambaSamAccount.inc:1256 +msgid "User must change password" +msgstr "使用者必須更改密碼的日期" + +#: ../templates/lists/changePassword.php:130 +#: ../templates/login.php:248 +#: ../lib/types/user.inc:85 +#: ../lib/modules/account.inc:94 +#: ../lib/modules/account.inc:115 +#: ../lib/modules/account.inc:135 +#: ../lib/modules/account.inc:137 +#: ../lib/modules/account.inc:138 +#: ../lib/modules/account.inc:220 +#: ../lib/modules/account.inc:241 +#: ../lib/modules/posixAccount.inc:76 +#: ../lib/modules/posixAccount.inc:77 +#: ../lib/modules/posixAccount.inc:80 +#: ../lib/modules/posixAccount.inc:197 +#: ../lib/modules/posixAccount.inc:372 +#: ../lib/modules/posixAccount.inc:962 +#: ../lib/modules/posixAccount.inc:1214 +#: ../lib/modules/inetOrgPerson.inc:99 +#: ../lib/modules/inetOrgPerson.inc:335 +#: ../lib/modules/inetOrgPerson.inc:450 +#: ../lib/modules/inetOrgPerson.inc:710 +#: ../lib/modules/inetOrgPerson.inc:1062 +msgid "User name" +msgstr "使用者名稱" + +#: ../lib/modules/posixAccount.inc:84 +#: ../lib/modules/inetOrgPerson.inc:101 +msgid "User name already exists!" +msgstr "使用者名稱已經存在!" + +#: ../lib/modules/account.inc:135 +#: ../lib/modules/account.inc:136 +#: ../lib/modules/account.inc:138 +#: ../lib/modules/posixAccount.inc:77 +#: ../lib/modules/posixAccount.inc:82 +#: ../lib/modules/inetOrgPerson.inc:99 +#: ../lib/modules/inetOrgPerson.inc:100 +msgid "User name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !" +msgstr "使用者名稱包含無效字元.只能使用a-z,A-Z,0-9,及 .-_!" + +#: ../lib/modules/posixAccount.inc:80 +msgid "User name in use. Selected next free user name." +msgstr "使用者名稱已存在,請選擇可用的名稱." + +#: ../lib/modules/account.inc:95 +#: ../lib/modules/posixAccount.inc:373 +#: ../lib/modules/inetOrgPerson.inc:451 +msgid "User name of the user who should be created. Valid characters are: a-z,A-Z,0-9, .-_. LAM does not allow a number as first character because useradd also does not allow it. If user name is already used user name will be expanded with a number. The next free number will be used. Warning: Older systems have problems with user names longer than 8 characters. You can not log in to Windows if user name is longer than 16 characters." +msgstr "該使用者的帳號.有效的字元為:a-z, A-Z, 0-9, .-_. LAM 和 useradd 命令一樣都不容許以數字開頭的帳號. 如果指定的帳號已經存在,則會自動在帳號後面加上下一個可用的數字. 警告: 超過8個字元的帳號在舊的系統上會造成問題. 如果超過16個字元就不能登入Windows." + +#: ../lib/types/user.inc:44 +#: ../lib/modules/posixAccount.inc:56 +#: ../lib/modules/posixAccount.inc:57 +#: ../lib/modules/posixAccount.inc:60 +#: ../lib/modules/posixAccount.inc:157 +msgid "Users" +msgstr "使用者" + +#: ../lib/modules/posixGroup.inc:395 +msgid "Users who are member of the current group. Users who have set their primary group to this group will not be shown." +msgstr "目前群組的成員. 這裡不會顯示將此群組設為主要群組的使用者" + +#: ../lib/modules/posixGroup.inc:399 +msgid "Users who will become member of the current group. User names are separated by semicolons." +msgstr "隸屬於這個群組的使用者.以分號隔開." + +#: ../templates/tests/lamdaemonTest.php:217 +#, php-format +msgid "Using %s as lamdaemon remote server." +msgstr "使用 %s 做為遠端伺服器." + +#: ../templates/tests/lamdaemonTest.php:238 +#, php-format +msgid "Using %s to connect to remote server." +msgstr "使用 %s 連結遠端伺服器." + +#: ../templates/tree/creation_template.php:86 +msgid "Using template:" +msgstr "套用的樣版:" + +#: ../lib/modules/posixAccount.inc:332 +msgid "Usually, users are not added to groups as memberUid if they have this group as primary group. If your application ignores primary groups then you can select this option to override this behaviour." +msgstr "通常使用者帳號不會出現在其主群組的 memberUId 欄位中, 如果應用程式忽略主群組而造成問題, 那麼您可以選取這個選項來解決." + +#: ../help/help.inc:88 +msgid "Valid users" +msgstr "有效的使用者" + +#: ../templates/login.php:207 +msgid "Want more features? Get LAM Pro!" +msgstr "需要更多的功能嗎 ? 參考 LAM 專業版 ! " + +#: ../templates/config/mainmanage.php:256 +msgid "Warning" +msgstr "警告" + +#: ../templates/delete.php:204 +#: ../lib/modules.inc:1705 +#, php-format +msgid "Was unable to add attribtues to DN: %s." +msgstr "無法增加屬性到 %s 這個DN中." + +#: ../lib/modules.inc:1676 +#, php-format +msgid "Was unable to create DN: %s." +msgstr "無法建立這個DN: %s." + +#: ../templates/tree/delete.php:113 +#: ../templates/delete.php:284 +#: ../templates/delete.php:292 +#, php-format +msgid "Was unable to delete DN: %s." +msgstr "無法刪除DN: %s." + +#: ../templates/tree/update.php:109 +#: ../templates/tree/add_oclass.php:93 +#: ../templates/tree/add_oclass_form.php:162 +#: ../templates/delete.php:196 +#: ../lib/modules.inc:1693 +#, php-format +msgid "Was unable to modify attribtues from DN: %s." +msgstr "無法變更DN: %s 的屬性" + +#: ../templates/lists/changePassword.php:352 +#, php-format +msgid "Was unable to modify attributes from DN: %s." +msgstr "無法修改 %s 這個 DN 的屬性." + +#: ../templates/delete.php:212 +#: ../lib/modules/phpGroupwareGroup.inc:173 +#: ../lib/modules/phpGroupwareUser.inc:333 +#: ../lib/modules/phpGroupwareUser.inc:353 +#: ../lib/modules.inc:1717 +#, php-format +msgid "Was unable to remove attribtues from DN: %s." +msgstr "無法刪除DN: %s 的屬性." + +#: ../lib/modules.inc:1663 +#, php-format +msgid "Was unable to rename DN: %s." +msgstr "無法更名這個 DN: %s." + +#: ../lib/modules/sambaSamAccount.inc:1188 +msgid "Wednesday" +msgstr "星期三" + +#: ../lib/modules/sambaSamAccount.inc:490 +msgid "Western Europe Time, London, Lisbon" +msgstr "西歐時間, 倫敦, 里斯本" + +#: ../help/help.inc:70 +msgid "When using ldaps:// be sure to use exactly the same IP/domain name as in your certificate!" +msgstr "當您使用ldaps:// 時必須使用和您的憑證完全相同的 ip/domain!" + +#: ../lib/modules/sambaAccount.inc:410 +#: ../lib/modules/sambaSamAccount.inc:269 +msgid "Windows domain name of account." +msgstr "帳號所屬的windows網域" + +#: ../lib/modules/sambaAccount.inc:311 +#: ../lib/modules/sambaAccount.inc:820 +#: ../lib/modules/sambaSamAccount.inc:434 +#: ../lib/modules/sambaSamAccount.inc:1088 +#: ../lib/modules/sambaSamAccount.inc:1510 +#: ../lib/modules/sambaSamAccount.inc:1658 +#: ../lib/modules/sambaGroupMapping.inc:217 +#: ../lib/modules/sambaGroupMapping.inc:346 +msgid "Windows group" +msgstr "Windows群組" + +#: ../lib/modules/sambaAccount.inc:403 +msgid "Windows group RID" +msgstr "Windows 群組的 RID" + +#: ../lib/modules/sambaAccount.inc:400 +#: ../lib/modules/sambaGroupMapping.inc:318 +msgid "Windows group name" +msgstr "Windows群組名稱" + +#: ../lib/modules/sambaGroupMapping.inc:331 +msgid "Windows group type." +msgstr "Windows群組類型" + +#: ../lib/modules/sambaSamAccount.inc:252 +msgid "Windows primary group" +msgstr "Windows主群組" + +#: ../lib/modules/sambaSamAccount.inc:255 +msgid "Windows primary group SID" +msgstr "Windows主群組的SID" + +#: ../lib/modules/sambaGroupMapping.inc:327 +msgid "Windows-Domain name of group." +msgstr "這個群組所屬的windows網域名稱." + +#: ../lib/modules/sambaDomain.inc:139 +msgid "Workgroup" +msgstr "工作群組" + +#: ../lib/modules/sambaSamAccount.inc:298 +#: ../lib/modules/sambaSamAccount.inc:1340 +#: ../lib/modules/sambaSamAccount.inc:1678 +msgid "Working directory" +msgstr "工作目錄" + +#: ../lib/modules/sambaSamAccount.inc:299 +msgid "Working directory of initial program." +msgstr "初始程式的工作目錄." + +#: ../templates/config/confmain.php:385 +msgid "Write" +msgstr "寫入" + +#: ../templates/config/confmain.php:204 +#: ../templates/config/confmain.php:207 +msgid "Write access" +msgstr "寫入" + +#: ../templates/login.php:440 +#: ../templates/selfService/selfServiceLogin.php:89 +#: ../templates/selfService/selfServiceLogin.php:101 +msgid "Wrong password/user name combination. Please try again." +msgstr "密碼/使用者 錯誤,請重試!" + +#: ../templates/schema/schema.php:158 +#: ../templates/schema/schema.php:200 +#: ../templates/schema/schema.php:205 +#: ../templates/schema/schema.php:210 +msgid "Yes" +msgstr "是" + +#: ../lib/modules/posixGroup.inc:478 +msgid "You are using a capital letters. This can cause problems because Windows isn't case-sensitive." +msgstr "您使用了大寫字元,這會造成一些問題,因為windows不區分大小寫." + +#: ../lib/modules/account.inc:137 +#: ../lib/modules/posixAccount.inc:76 +#: ../lib/modules/posixAccount.inc:78 +msgid "You are using a capital letters. This can cause problems because windows isn't case-sensitive." +msgstr "您使用了大寫字元,這會造成一些問題,因為windows不區分大小寫." + +#: ../help/help.inc:181 +msgid "You can use wildcards for LDAP attributes in the form @@attribute@@ (e.g. @@uid@@ for the user name)." +msgstr "您能使用 @@屬性名稱@@ 的萬用字元格式來表示 LDAP 屬性. (例如: @@uid@@ 表示使用者帳號.)" + +#: ../templates/tree/templates/creation/custom.php:106 +msgid "You did not select any object classes for this object. Please go back and do so." +msgstr "您尚未選擇任何物件類別.請重新選擇." + +#: ../templates/tests/schemaTest.php:67 +msgid "You do not have the required access rights or the LDAP schema is not published by your server." +msgstr "您沒有足夠的權限或您的 LDAP 伺服器並沒有公開 LDAP 綱要." + +#: ../templates/logout.php:77 +msgid "You have been logged off from LDAP Account Manager." +msgstr "您已經從LAM登出" + +#: ../templates/lists/changePassword.php:283 +msgid "You have to activate the \"I am sure\" checkbox." +msgstr "您必須選取 \"確定\" 的核取方塊." + +#: ../templates/tree/add_attr.php:79 +msgid "You left the attribute value blank. Please go back and try again." +msgstr "屬性值空白,請重試." + +#: ../templates/tree/create.php:85 +#, php-format +msgid "You left the value blank for required attribute: %s." +msgstr "%s必要屬性,值不能空白." + +#: ../templates/tree/update_confirm.php:254 +msgid "You made no changes." +msgstr "沒有做任何修改." + +#: ../lib/modules/groupOfNames.inc:121 +#: ../lib/modules/groupOfNames.inc:122 +msgid "You need to add at least one member to this group." +msgstr "您至少需要加入一個成員到這個群組中." + +#: ../templates/tests/lamdaemonTest.php:242 +#, php-format +msgid "Your LAM admin user (%s) must be a valid Unix account to work with lamdaemon!" +msgstr "LAM 系統管理者 (%s) 必須是一個有效的 Unix 帳號, 才能執行 lamdaemon !" + +#: ../lib/lamdaemon.inc:105 +#: ../lib/lamdaemon.inc:111 +msgid "Your LAM admin user must be a valid Unix account to work with lamdaemon!" +msgstr "LAM 系統管理者必須是一個有效的 Unix 帳號, 才能執行 lamdaemon !" + +#: ../templates/tree/add_attr_form.php:165 +msgid "Your PHP configuration has disabled file uploads. Please check php.ini before proceeding." +msgstr "PHP設定無法上傳檔案,請檢查php.ini ." + +#: ../lib/security.inc:134 +msgid "Your session expired, click here to go back to the login page." +msgstr "您的連線已過期, 請按此重新登入." + +#: ../templates/login.php:228 +msgid "Your session expired, please log in again." +msgstr "您的連線已過期, 請重新登入." + +#: ../templates/config/mainmanage.php:139 +#: ../templates/selfService/adminMain.php:113 +#: ../lib/config.inc:389 +msgid "Your settings were successfully saved." +msgstr "設定儲存成功." + +#: ../lib/modules/inetOrgPerson.inc:319 +msgid "YourCompany, Human Resources" +msgstr "公司名稱,人事部門" + +#: ../templates/tree/update_confirm.php:192 +#: ../templates/tree/update_confirm.php:204 +msgid "[attribute deleted]" +msgstr "[屬性刪除]" + +#: ../lib/modules/sambaAccount.inc:289 +#: ../lib/modules/sambaSamAccount.inc:412 +msgid "\\\\server\\homes\\smiller" +msgstr "\\\\server\\homes\\smiller" + +#: ../lib/modules/sambaAccount.inc:295 +#: ../lib/modules/sambaSamAccount.inc:418 +msgid "\\\\server\\profiles\\smiller" +msgstr "\\\\server\\profiles\\smiller" + +#: ../lib/modules/phpGroupwareUser.inc:151 +#: ../lib/modules/phpGroupwareUser.inc:368 +msgid "active" +msgstr "啟用(active)" + +#: ../templates/tree/edit.php:494 +msgid "add value" +msgstr "新增屬性值" + +#: ../lib/modules/posixGroup.inc:350 +#: ../lib/modules/groupOfNames.inc:86 +msgid "adminstrators" +msgstr "管理者" + +#: ../templates/schema/schema.php:225 +msgid "character" +msgstr "字元" + +#: ../templates/schema/schema.php:224 +msgid "characters" +msgstr "字元" + +#: ../help/help.inc:82 +msgid "dc=yourcompany,dc=com" +msgstr "dc=yourcompany,dc=com" + +#: ../templates/tree/edit.php:314 +msgid "delete attribute" +msgstr "刪除屬性" + +#: ../lib/modules/sambaSamAccount.inc:1375 +#: ../lib/modules/sambaSamAccount.inc:1698 +msgid "disabled" +msgstr "已停用" + +#: ../lib/modules/sambaSamAccount.inc:1387 +#: ../lib/modules/sambaSamAccount.inc:1709 +msgid "disconnect" +msgstr "中斷" + +#: ../templates/lists/changePassword.php:174 +msgid "display on screen" +msgstr "在螢幕上顯示" + +#: ../templates/tree/edit.php:179 +#: ../templates/tree/edit.php:181 +#: ../templates/tree/edit.php:308 +#: ../templates/tree/edit.php:310 +#: ../templates/tree/add_value_form.php:107 +#: ../templates/tree/add_value_form.php:110 +msgid "download value" +msgstr "下載值" + +#: ../templates/lists/changePassword.php:148 +#: ../lib/modules/inetOrgPerson.inc:85 +#: ../lib/modules/inetOrgPerson.inc:152 +#: ../lib/modules/inetOrgPerson.inc:287 +#: ../lib/modules/inetOrgPerson.inc:442 +#: ../lib/modules/inetOrgPerson.inc:443 +#: ../lib/modules/inetOrgPerson.inc:861 +#: ../lib/modules/inetOrgPerson.inc:1058 +#: ../lib/modules/inetOrgPerson.inc:1357 +msgid "eMail address" +msgstr "電子郵件地址" + +#: ../templates/tree/edit.php:391 +msgid "false" +msgstr "失敗" + +#: ../lib/modules/sambaSamAccount.inc:1396 +#: ../lib/modules/sambaSamAccount.inc:1717 +msgid "from any client" +msgstr "從任何客戶端" + +#: ../lib/modules/sambaSamAccount.inc:1397 +#: ../lib/modules/sambaSamAccount.inc:1718 +msgid "from previous client only" +msgstr "只從前一個客戶端" + +#: ../lib/modules/posixAccount.inc:226 +msgid "group01,group02" +msgstr "group01,group02" + +#: ../lib/modules/quota.inc:180 +#: ../lib/modules/quota.inc:182 +msgid "hours" +msgstr "時(hours)" + +#: ../lib/modules/phpGroupwareUser.inc:151 +#: ../lib/modules/phpGroupwareUser.inc:371 +msgid "inactive" +msgstr "停用(inactive)" + +#: ../lib/modules/sambaSamAccount.inc:1379 +#: ../lib/modules/sambaSamAccount.inc:1702 +msgid "input off, notify off" +msgstr "關閉輸入, 關閉通知." + +#: ../lib/modules/sambaSamAccount.inc:1378 +#: ../lib/modules/sambaSamAccount.inc:1701 +msgid "input off, notify on" +msgstr "關閉輸入, 開啟通知." + +#: ../lib/modules/sambaSamAccount.inc:1377 +#: ../lib/modules/sambaSamAccount.inc:1700 +msgid "input on, notify off" +msgstr "開啟輸入, 關閉通知." + +#: ../lib/modules/sambaSamAccount.inc:1376 +#: ../lib/modules/sambaSamAccount.inc:1699 +msgid "input on, notify on" +msgstr "開啟輸入, 開啟通知." + +#: ../lib/tree.inc:1177 +msgid "jpegPhoto contains errors" +msgstr "jpeg的相片有錯誤" + +#: ../help/help.inc:64 +msgid "ldap://localhost:389 connects to localhost using a standard LDAP connection on port 389" +msgstr "ldap://localhost:389 表示使用標準的LDAP連結到本機的389通訊埠." + +#: ../help/help.inc:66 +msgid "ldaps://141.40.146.133 connects to 141.40.146.133 using an encrypted LDAP connection." +msgstr "ldaps://141.40.146.133 表示使用加密的LDAP連結到141.40.146.133" + +#: ../lib/modules/posixAccount.inc:293 +msgid "machines" +msgstr "機器" + +#: ../lib/modules/inetLocalMailRecipient.inc:110 +msgid "mail.yourdomain.org" +msgstr "mail.yourdomain.org" + +#: ../lib/modules/sambaAccount.inc:327 +#: ../lib/modules/sambaAccount.inc:337 +#: ../lib/modules/sambaSamAccount.inc:335 +#: ../lib/modules/sambaSamAccount.inc:461 +msgid "mydomain" +msgstr "我的網域" + +#: ../lib/modules/sambaSamAccount.inc:436 +msgid "mygroup" +msgstr "我的群組" + +#: ../lib/modules/sambaSamAccount.inc:1666 +#: ../lib/modules/sambaSamAccount.inc:1674 +#: ../lib/modules/sambaSamAccount.inc:1684 +#: ../lib/modules/sambaSamAccount.inc:1689 +#: ../lib/modules/sambaSamAccount.inc:1694 +msgid "no" +msgstr "否" + +#: ../templates/tree/templates/creation/custom.php:189 +#: ../templates/tree/templates/creation/custom.php:212 +#: ../templates/schema/schema.php:165 +#: ../templates/schema/schema.php:234 +#: ../templates/schema/schema.php:245 +#: ../templates/schema/schema.php:294 +#: ../templates/schema/schema.php:360 +#: ../templates/schema/schema.php:375 +#: ../templates/schema/schema.php:409 +#: ../templates/schema/schema.php:431 +msgid "none" +msgstr "無" + +#: ../templates/tree/edit.php:392 +msgid "none, remove value" +msgstr "無, 刪除值" + +#: ../templates/schema/schema.php:221 +msgid "not applicable" +msgstr "不適用" + +#: ../templates/schema/schema.php:172 +#: ../templates/schema/schema.php:177 +#: ../templates/schema/schema.php:182 +#: ../templates/schema/schema.php:215 +msgid "not specified" +msgstr "未指定" + +#: ../help/help.inc:76 +msgid "ou=People,dc=yourcompany,dc=com will read and store all accounts in this subtree." +msgstr "ou=People,dc=yourcompany,dc=com 表示將會讀取這個子樹下的帳號或將帳號儲存在這個子樹下." + +#: ../templates/masscreate.php:162 +msgid "ou=accounts,dc=yourdomain,dc=org" +msgstr "ou=accounts,dc=yourdomain,dc=org" + +#: ../lib/modules/posixAccount.inc:279 +msgid "pc01$" +msgstr "pc01$" + +#: ../lib/modules/posixAccount.inc:300 +msgid "pc01,Room 2.34" +msgstr "pc01,Room 2.34" + +#: ../lib/modules/inetOrgPerson.inc:350 +msgid "pc01,pc02" +msgstr "pc01,pc02" + +#: ../templates/tree/edit.php:246 +#: ../templates/config/confmain.php:466 +#: ../templates/selfService/adminMain.php:554 +#: ../lib/modules.inc:1134 +msgid "required" +msgstr "必填的選項" + +#: ../lib/modules/sambaSamAccount.inc:1388 +#: ../lib/modules/sambaSamAccount.inc:1710 +msgid "reset" +msgstr "重設" + +#: ../lib/modules/posixGroup.inc:376 +#: ../lib/modules/sambaAccount.inc:231 +#: ../lib/modules/sambaSamAccount.inc:347 +#: ../lib/modules/posixAccount.inc:254 +msgid "secret" +msgstr "secret" + +#: ../templates/lists/changePassword.php:176 +msgid "send via mail" +msgstr "經由電子郵件傳送." + +#: ../lib/modules/posixAccount.inc:199 +#: ../lib/modules/inetOrgPerson.inc:337 +#: ../lib/modules/nisMailAlias.inc:91 +msgid "smiller" +msgstr "smiller" + +#: ../lib/modules/inetLocalMailRecipient.inc:98 +msgid "smiller@otherdomain.org" +msgstr "smiller@otherdomain.org" + +#: ../lib/modules/inetLocalMailRecipient.inc:104 +msgid "smiller@yourdomain.org" +msgstr "smiller@yourdomain.org" + +#: ../lib/modules/ldapPublicKey.inc:76 +msgid "ssh-dss 234234 user@host" +msgstr "ssh-dss 234234 user@host" + +#: ../templates/tree/edit.php:437 +msgid "structural" +msgstr "結構性物件" + +#: ../templates/tree/edit.php:389 +msgid "true" +msgstr "true" + +#: ../lib/modules/inetOrgPerson.inc:229 +msgid "uid=smiller,ou=People,dc=company,dc=com" +msgstr "uid=smiller,ou=People,dc=company,dc=com" + +#: ../lib/modules/posixGroup.inc:370 +msgid "user01,user02,user03" +msgstr "user01,user02,user03" + +#: ../lib/modules/inetOrgPerson.inc:289 +msgid "user@company.com" +msgstr "user@company.com" + +#: ../lib/modules/posixAccount.inc:219 +msgid "users" +msgstr "使用者" + +#: ../lib/modules/sambaSamAccount.inc:1664 +#: ../lib/modules/sambaSamAccount.inc:1672 +#: ../lib/modules/sambaSamAccount.inc:1682 +#: ../lib/modules/sambaSamAccount.inc:1687 +#: ../lib/modules/sambaSamAccount.inc:1692 +#: ../lib/modules/inetOrgPerson.inc:313 +msgid "yes" +msgstr "是" + +#~ msgid "AIM account" +#~ msgstr "AIM 帳號" +#~ msgid "Add Neofonie attributes" +#~ msgstr "新增 Neofonie 屬性" +#~ msgid "Add section or static text" +#~ msgstr "增加區段或靜態文字" +#~ msgid "Available PDF fields" +#~ msgstr "有效的PDF欄位" +#~ msgid "Birth date" +#~ msgstr "出生日期" +#~ msgid "ComBots IDs" +#~ msgstr "ComBots 帳號" +#~ msgid "Current projects" +#~ msgstr "目前的專案" +#~ msgid "Date when the employee was initially employed." +#~ msgstr "任職日." +#~ msgid "Department" +#~ msgstr "部門" +#~ msgid "Employee skills" +#~ msgstr "員工技能" +#~ msgid "Employment date" +#~ msgstr "雇用日期" +#~ msgid "Group 1, Group 2" +#~ msgstr "群組 01,群組 02" +#~ msgid "IT" +#~ msgstr "資訊科技" +#~ msgid "Jabber IDs" +#~ msgstr "Jabber 帳號" +#~ msgid "Job position" +#~ msgstr "工作場所" +#~ msgid "Job position of this user (e.g. developer, temp, ...)." +#~ msgstr "使用者的工作職稱 (例如 開發者, 臨時員工, ...)." +#~ msgid "List of ComBots IDs." +#~ msgstr "ComBots 帳號清單." +#~ msgid "List of Jabber IDs." +#~ msgstr "Jabber 帳號清單." +#~ msgid "List of project groups of this user." +#~ msgstr "使用者專案群組清單." +#~ msgid "List of projects the user is working on." +#~ msgstr "使用者目前參與的專案清單." +#~ msgid "List of special skills that the user has." +#~ msgstr "使用者的專長項目." +#~ msgid "Page settings" +#~ msgstr "頁面設定" +#~ msgid "Please enter a valid date (format DD.MM.YYYY)!" +#~ msgstr "請輸入有效的日期, (格式:DD.MM.YYYY) !" +#~ msgid "Project 1, Project 2" +#~ msgstr "專案 1, 專案 2" +#~ msgid "Project groups" +#~ msgstr "專案群組" +#~ msgid "Quake ID" +#~ msgstr "Quake 帳號" +#~ msgid "The department where the employee is employed." +#~ msgstr "雇用此員工的部門." +#~ msgid "The user's birth date." +#~ msgstr "使用者的出生日期." +#~ msgid "This is the user's AIM account name" +#~ msgstr "使用者的 AIM 帳號名稱" +#~ msgid "This is the user's Quake ID." +#~ msgstr "這是該使用者的 Quake 帳號." +#~ msgid "This is the user's login name for the wiki." +#~ msgstr "這是使用者登入 wiki 的帳號." +#~ msgid "Use default" +#~ msgstr "使用預設值" +#~ msgid "Wiki name" +#~ msgstr "Wiki 名稱" +#~ msgid "required for Samba 3 accounts" +#~ msgstr "對Samba 3的帳號來說是必要的選項" +#~ msgid "Apply" +#~ msgstr "套用" +#~ msgid "Create account" +#~ msgstr "建立帳號" +#~ msgid "Max list entries is invalid!" +#~ msgstr "列出最多項目值無效!" +#~ msgid "Modify account" +#~ msgstr "修改帳號" +#~ msgid "Save account" +#~ msgstr "儲存帳號" +#~ msgid "This saves your account to the LDAP database." +#~ msgstr "將帳號的設定儲存到LDAP資料庫中" +#~ msgid "Edit logon hours" +#~ msgstr "設定可登入時間" +#~ msgid "Here you can define to deactivate accounts after bad logon attempts." +#~ msgstr "您可以在這裡定義錯誤登入嘗試多次後即停用帳號." +#~ msgid "Please select page:" +#~ msgstr "請選擇頁面:" +#~ msgid "Delete domain" +#~ msgstr "刪除網域" +#~ msgid "Delete host" +#~ msgstr "刪除主機" +#~ msgid "Server of external script" +#~ msgstr "外部指令檔所在的伺服器位置" +#~ msgid "" +#~ "Use it at your own risk and read the documentation for lamdaemon before " +#~ "you use it!" +#~ msgstr "在使用之前要讀取lamdaemon的說明文件,並且後果自負!" +#~ msgid "Create new Account" +#~ msgstr "新增帳號" +#~ msgid "Delete Account" +#~ msgstr "刪除帳號" +#~ msgid "GID ranges for Unix groups" +#~ msgstr "unix群組使用的GID範圍" +#~ msgid "Maximum GID number for Unix groups" +#~ msgstr "Unix群組的最大GID編號" +#~ msgid "Maximum UID number for Unix accounts (hosts)" +#~ msgstr "Unix帳號(主機)的最大UID編號" +#~ msgid "Maximum UID number for Unix accounts (users)" +#~ msgstr "Unix帳號(使用者)的最大UID編號" +#~ msgid "Minimum GID number for Unix groups" +#~ msgstr "Unix群組的最小GID編號" +#~ msgid "Minimum UID number for Unix accounts (hosts)" +#~ msgstr "unix帳號(主機)的最小UID" +#~ msgid "Password hash type for Unix accounts" +#~ msgstr "unix帳號的密碼雜湊類型" +#~ msgid "Password hash type for Unix groups" +#~ msgstr "unix群組的密碼雜湊類型" +#~ msgid "Samba 3 settings" +#~ msgstr "Samba3的環境設定" +#~ msgid "This will set no password which prevents logins with this account." +#~ msgstr "這不會設定密碼,以防止這個帳號登入." +#~ msgid "Use unix password" +#~ msgstr "使用unix的密碼" +#~ msgid "You cannot use these password options at the same time." +#~ msgstr "無法同時使用這些密碼選項." +#~ msgid "You cannot use this password options at the same time." +#~ msgstr "無法同時使用這些密碼選項." +#~ msgid "A required PHP extension is missing!" +#~ msgstr "缺少一些必要的php延伸功能模組" +#~ msgid "Invalid password" +#~ msgstr "無效的密碼" +#~ msgid "Invalid/Missing Message type" +#~ msgstr "無效的或遺漏的訊息類型" +#~ msgid "Password maxage" +#~ msgstr "密碼最大生命期" +#~ msgid "Password minage" +#~ msgstr "密碼最小生命期" +#~ msgid "" +#~ "Please report this error to the Bug-Tracker at {link=http://lam." +#~ "sourceforge.net}LDAP Account Manager Development Team{endlink}. The error " +#~ "number is {bold}0001:Invalid/Missing Message type.{endbold} Thank you." +#~ msgstr "" +#~ "請向{link=http://lam.sourceforge.net}LDAP Account Manager開發團隊{endlink}" +#~ "回報這個錯誤.這個錯誤編號是{bold}0001:無效或遺漏的訊息類型.{endbold}. 感謝" +#~ "您." +#~ msgid "Server Address is empty!" +#~ msgstr "伺服器位址空白!" +#~ msgid "Abort" +#~ msgstr "放棄" +#~ msgid "Back to preferences..." +#~ msgstr "返回設定畫面..." +#~ msgid "Master Password:" +#~ msgstr "系統管理者密碼:" +#~ msgid "ObjectClass %s required but not defined in LDAP." +#~ msgstr "%s物件類別是必要的,但卻沒有在定義在LDAP中." +#~ msgid "Password changed!" +#~ msgstr "密碼更改成功!" +#~ msgid "Submit" +#~ msgstr "送出" +#~ msgid "User/Group/Host suffix" +#~ msgstr "使用者/群組/主機 的尾碼" +#~ msgid "Users who are member of the current group." +#~ msgstr "目前群組的成員." +#~ msgid "Algorithmic RID Base" +#~ msgstr "RID的演算法基數" +#~ msgid "Attributes in Group List" +#~ msgstr "群組清單的屬性" +#~ msgid "Attributes in Host List" +#~ msgstr "主機清單中的屬性" +#~ msgid "Attributes in User List" +#~ msgstr "使用者清單的屬性" +#~ msgid "Back to domain list" +#~ msgstr "返回網域列表" +#~ msgid "Create group accounts" +#~ msgstr "建立群組帳號" +#~ msgid "Create host accounts" +#~ msgstr "建立主機帳號" +#~ msgid "Create user accounts" +#~ msgstr "建立使用者帳號" +#~ msgid "Do you really want to delete domain(s):" +#~ msgstr "確定刪除模組:" +#~ msgid "Domain Settings" +#~ msgstr "網域設定" +#~ msgid "Domain deleted successfully." +#~ msgstr "刪除網域成功" +#~ msgid "Domain has been modified." +#~ msgstr "網域已經更改" +#~ msgid "DomainSuffix" +#~ msgstr "網域尾碼" +#~ msgid "Domains" +#~ msgstr "網域" +#~ msgid "Failed to add domain!" +#~ msgstr "新增網域失敗!" +#~ msgid "Failed to modify domain!" +#~ msgstr "修改網域失敗!" +#~ msgid "Group modules" +#~ msgstr "群組模組" +#~ msgid "Group profiles" +#~ msgstr "群組設定檔" +#~ msgid "GroupSuffix" +#~ msgstr "群組尾碼" +#~ msgid "GroupSuffix is invalid!" +#~ msgstr "群組尾碼無效!" +#~ msgid "Host profiles" +#~ msgstr "主機設定檔" +#~ msgid "HostSuffix" +#~ msgstr "主機尾碼" +#~ msgid "HostSuffix is invalid!" +#~ msgstr "主機尾碼錯誤!" +#~ msgid "LAM Internal Error" +#~ msgstr "LAM內部錯誤" +#~ msgid "Manages Samba 3 domain accounts." +#~ msgstr "管理Samba 3 網域帳號" +#~ msgid "Module settings" +#~ msgstr "模組設定" +#~ msgid "Next RID to use when creating groups." +#~ msgstr "建立群組時使用的下一個RID." +#~ msgid "Samba Hosts" +#~ msgstr "Samba主機" +#~ msgid "Saving group modules failed!" +#~ msgstr "儲存群組模組失敗!" +#~ msgid "Saving host modules failed!" +#~ msgstr "儲存主機模組失敗!" +#~ msgid "Saving user modules failed!" +#~ msgstr "儲存使用者模組失敗!" +#~ msgid "The following settings were saved to profile:" +#~ msgstr "下列設定已被儲存在設定檔:" +#~ msgid "This Samba 3 domain is already present!" +#~ msgstr "這個網域已經存在" +#~ msgid "TreeSuffix" +#~ msgstr "樹狀結構的尾碼" +#~ msgid "Unable to delete domain!" +#~ msgstr "無法刪除網域!" +#~ msgid "User modules" +#~ msgstr "使用者模組" +#~ msgid "UserSuffix" +#~ msgstr "使用者尾碼" +#~ msgid "UserSuffix is invalid!" +#~ msgstr "無效的使用者尾碼!" +#~ msgid "Wrong or missing type!" +#~ msgstr "錯誤或遺漏的類型!" +#~ msgid "Account expiration date. Format: DD-MM-YYYY" +#~ msgstr "帳號過期時間: DD-MM-YYYY" +#~ msgid "" +#~ "This will make a profile of the current account. The saved values are the " +#~ "same as in the profile editor. Profile names may contain the letters a-z, " +#~ "0-9 and -_." +#~ msgstr "" +#~ "這會產生目前帳號的設定檔,這儲存的值會和設定檔編輯器中所看到的相同.設定檔名" +#~ "稱只能包含字母a-z,0-9和 -_ ." +#~ msgid "Windows clients will show display name as group description." +#~ msgstr "Windows的客戶端會以顯示名稱做為群組描述的內容" +#~ msgid "Windows domain" +#~ msgstr "Windows網域" +#~ msgid "Windows domain of host." +#~ msgstr "主機所在的Windows網域" +#~ msgid "Windows groupname" +#~ msgstr "Windows群組名稱" + diff --git a/lam/phpdoc.sh b/lam/phpdoc.sh new file mode 100755 index 00000000..66b781e1 --- /dev/null +++ b/lam/phpdoc.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +rm -rf docs/devel/phpdoc +mkdir docs/devel/phpdoc +phpdoc -d ./ -t docs/devel/phpdoc --title "LDAP Account Manager" --template old-ocean --defaultpackagename main -e php,inc diff --git a/lam/po/make_all b/lam/po/make_all new file mode 100755 index 00000000..80422b73 --- /dev/null +++ b/lam/po/make_all @@ -0,0 +1,92 @@ +#!/bin/bash +# $Id$ +# +# Copyright (C) 2004 - 2011 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run to create archives of all messages.po files. + +echo "Generating POT" +./make_po +mv messages.po messages.pot +tar -czf messages.pot.tar.gz messages.pot +rm messages.pot +echo " " + +echo "Generating Catalan translation template" +./make_po_ca +tar -czf messages.po_ca.tar.gz messages.po +echo " " + +echo "Generating Chinese (Traditional) translation template" +./make_po_zh_TW +tar -czf messages.po_zh_TW.tar.gz messages.po +echo " " + +echo "Generating Chinese (Simplified) translation template" +./make_po_zh_CN +tar -czf messages.po_zh_CN.tar.gz messages.po +echo " " + +echo "Generating Czech translation template" +./make_po_cs +tar -czf messages.po_cs.tar.gz messages.po +echo " " + +echo "Generating Dutch translation template" +./make_po_nl +tar -czf messages.po_nl.tar.gz messages.po +echo " " + +echo "Generating Spanish translation template" +./make_po_es +tar -czf messages.po_es.tar.gz messages.po +echo " " + +echo "Generating French translation template" +./make_po_fr +tar -czf messages.po_fr.tar.gz messages.po +echo " " + +echo "Generating Hungarian translation template" +./make_po_hu +tar -czf messages.po_hu.tar.gz messages.po +echo " " + +echo "Generating Italian translation template" +./make_po_it +tar -czf messages.po_it.tar.gz messages.po +echo " " + +echo "Generating Japanese translation template" +./make_po_jp +tar -czf messages.po_jp.tar.gz messages.po +echo " " + +echo "Generating Polish translation template" +./make_po_pl +tar -czf messages.po_pl.tar.gz messages.po +echo " " + +echo "Generating Portuguese translation template" +./make_po_pt +tar -czf messages.po_pt.tar.gz messages.po +echo " " + +echo "Generating Russian translation template" +./make_po_ru +tar -czf messages.po_ru.tar.gz messages.po + +echo "Generating Slovakian translation template" +./make_po_sk +tar -czf messages.po_sk.tar.gz messages.po + +echo "Generating Turkish translation template" +./make_po_tr +tar -czf messages.po_tr.tar.gz messages.po + +echo "Generating Ukrainian translation template" +./make_po_uk +tar -czf messages.po_uk.tar.gz messages.po + +rm messages.po diff --git a/lam/po/make_mo b/lam/po/make_mo new file mode 100755 index 00000000..7cf58a53 --- /dev/null +++ b/lam/po/make_mo @@ -0,0 +1,10 @@ +#!/bin/bash +# $Id$ +# +# Copyright (C) 2003 - 2006 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script generates a messages.mo file from the translated messages.po file. + +rm -f messages.mo +msgfmt -v -c --statistics messages.po -o messages.mo diff --git a/lam/po/make_po b/lam/po/make_po new file mode 100755 index 00000000..3c68398a --- /dev/null +++ b/lam/po/make_po @@ -0,0 +1,11 @@ +#!/bin/bash +# $Id$ +# +# Copyright (C) 2003 - 2006 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script generates a messages.po file for translation from all .inc and .php files. + +cp messages.header messages.po +find -L ../ -name *.php -exec xgettext --keyword=_ -L PHP -j --omit-header -s {} \; +find -L ../ -name *.inc -exec xgettext --keyword=_ -L PHP -j --omit-header -s {} \; diff --git a/lam/po/make_po_ca b/lam/po/make_po_ca new file mode 100755 index 00000000..03275e2f --- /dev/null +++ b/lam/po/make_po_ca @@ -0,0 +1,10 @@ +#!/bin/bash +# $Id$ +# +# Copyright (C) 2003 - 2006 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run after make_po to merge the existing Catalan translations to messages.po + +./make_po +msgmerge -v ../locale/ca_ES/LC_MESSAGES/messages.po messages.po -o messages.po \ No newline at end of file diff --git a/lam/po/make_po_cs b/lam/po/make_po_cs new file mode 100755 index 00000000..41415cfe --- /dev/null +++ b/lam/po/make_po_cs @@ -0,0 +1,10 @@ +#!/bin/bash +# $Id$ +# +# Copyright (C) 2003 - 2006 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run after make_po to merge the existing Czech translations to messages.po + +./make_po +msgmerge -v ../locale/cs_CZ/LC_MESSAGES/messages.po messages.po -o messages.po \ No newline at end of file diff --git a/lam/po/make_po_de b/lam/po/make_po_de new file mode 100755 index 00000000..b06cd8d3 --- /dev/null +++ b/lam/po/make_po_de @@ -0,0 +1,10 @@ +#!/bin/bash +# $Id$ +# +# Copyright (C) 2003 - 2006 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run after make_po to merge the existing German translations to messages.po + +./make_po +msgmerge -v ../locale/de_DE/LC_MESSAGES/messages.po messages.po -o messages.po \ No newline at end of file diff --git a/lam/po/make_po_en_US b/lam/po/make_po_en_US new file mode 100755 index 00000000..9ff95c8a --- /dev/null +++ b/lam/po/make_po_en_US @@ -0,0 +1,13 @@ +#!/bin/bash +# $Id: make_po_it 5135 2013-11-29 19:47:29Z gruberroland $ +# +# Copyright (C) 2013 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run after make_po to merge the existing US English translations to messages.po + +./make_po +msgen messages.po | msgattrib --set-fuzzy -o messages2.po +rm messages.po +mv messages2.po messages.po +msgmerge -N -v ../locale/en_US/LC_MESSAGES/messages.po messages.po -o messages.po \ No newline at end of file diff --git a/lam/po/make_po_es b/lam/po/make_po_es new file mode 100755 index 00000000..69610ca6 --- /dev/null +++ b/lam/po/make_po_es @@ -0,0 +1,10 @@ +#!/bin/bash +# $Id$ +# +# Copyright (C) 2004 - 2006 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run to update the existing Spanish translations in messages.po + +./make_po +msgmerge -v ../locale/es_ES/LC_MESSAGES/messages.po messages.po -o messages.po diff --git a/lam/po/make_po_fr b/lam/po/make_po_fr new file mode 100755 index 00000000..096b9a8b --- /dev/null +++ b/lam/po/make_po_fr @@ -0,0 +1,10 @@ +#!/bin/bash +# $Id$ +# +# Copyright (C) 2003 - 2006 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run after make_po to merge the existing French translations to messages.po + +./make_po +msgmerge -v ../locale/fr_FR/LC_MESSAGES/messages.po messages.po -o messages.po diff --git a/lam/po/make_po_hu b/lam/po/make_po_hu new file mode 100755 index 00000000..e5fc2b60 --- /dev/null +++ b/lam/po/make_po_hu @@ -0,0 +1,10 @@ +#!/bin/bash +# $Id$ +# +# Copyright (C) 2004 - 2006 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run after make_po to merge the existing Hungarian translations to messages.po + +./make_po +msgmerge -v ../locale/hu_HU/LC_MESSAGES/messages.po messages.po -o messages.po diff --git a/lam/po/make_po_it b/lam/po/make_po_it new file mode 100755 index 00000000..06585b4a --- /dev/null +++ b/lam/po/make_po_it @@ -0,0 +1,10 @@ +#!/bin/bash +# $Id$ +# +# Copyright (C) 2003 - 2006 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run after make_po to merge the existing Italian translations to messages.po + +./make_po +msgmerge -v ../locale/it_IT/LC_MESSAGES/messages.po messages.po -o messages.po \ No newline at end of file diff --git a/lam/po/make_po_jp b/lam/po/make_po_jp new file mode 100755 index 00000000..52c7999a --- /dev/null +++ b/lam/po/make_po_jp @@ -0,0 +1,10 @@ +#!/bin/bash +# $Id$ +# +# Copyright (C) 2004 - 2006 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run after make_po to merge the existing Japanese translations to messages.po + +./make_po +msgmerge -v ../locale/ja_JP/LC_MESSAGES/messages.po messages.po -o messages.po diff --git a/lam/po/make_po_nl b/lam/po/make_po_nl new file mode 100755 index 00000000..d5fb0086 --- /dev/null +++ b/lam/po/make_po_nl @@ -0,0 +1,10 @@ +#!/bin/bash +# $Id$ +# +# Copyright (C) 2006 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run after make_po to merge the existing Dutch translations to messages.po + +./make_po +msgmerge -v ../locale/nl_NL/LC_MESSAGES/messages.po messages.po -o messages.po \ No newline at end of file diff --git a/lam/po/make_po_pl b/lam/po/make_po_pl new file mode 100755 index 00000000..e2b6fac3 --- /dev/null +++ b/lam/po/make_po_pl @@ -0,0 +1,10 @@ +#!/bin/bash +# $Id$ +# +# Copyright (C) 2008 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run after make_po to merge the existing Polish translations to messages.po + +./make_po +msgmerge -v ../locale/pl_PL/LC_MESSAGES/messages.po messages.po -o messages.po \ No newline at end of file diff --git a/lam/po/make_po_pt b/lam/po/make_po_pt new file mode 100755 index 00000000..7cac2296 --- /dev/null +++ b/lam/po/make_po_pt @@ -0,0 +1,10 @@ +#!/bin/bash +# $Id$ +# +# Copyright (C) 2007 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run after make_po to merge the existing Portugues translations to messages.po + +./make_po +msgmerge -v ../locale/pt_BR/LC_MESSAGES/messages.po messages.po -o messages.po \ No newline at end of file diff --git a/lam/po/make_po_ru b/lam/po/make_po_ru new file mode 100755 index 00000000..2ff44d06 --- /dev/null +++ b/lam/po/make_po_ru @@ -0,0 +1,10 @@ +#!/bin/bash +# $Id$ +# +# Copyright (C) 2006 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run after make_po to merge the existing Russian translations to messages.po + +./make_po +msgmerge -v ../locale/ru_RU/LC_MESSAGES/messages.po messages.po -o messages.po diff --git a/lam/po/make_po_sk b/lam/po/make_po_sk new file mode 100755 index 00000000..49856cce --- /dev/null +++ b/lam/po/make_po_sk @@ -0,0 +1,10 @@ +#!/bin/bash +# $Id$ +# +# Copyright (C) 2011 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run after make_po to merge the existing Slovak translations to messages.po + +./make_po +msgmerge -v ../locale/sk_SK/LC_MESSAGES/messages.po messages.po -o messages.po \ No newline at end of file diff --git a/lam/po/make_po_tr b/lam/po/make_po_tr new file mode 100755 index 00000000..33c47903 --- /dev/null +++ b/lam/po/make_po_tr @@ -0,0 +1,10 @@ +#!/bin/bash +# $Id: make_po_it 3354 2009-11-09 18:49:17Z gruberroland $ +# +# Copyright (C) 2013 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run after make_po to merge the existing Turkish translations to messages.po + +./make_po +msgmerge -v ../locale/tr_TR/LC_MESSAGES/messages.po messages.po -o messages.po \ No newline at end of file diff --git a/lam/po/make_po_uk b/lam/po/make_po_uk new file mode 100755 index 00000000..cdd24236 --- /dev/null +++ b/lam/po/make_po_uk @@ -0,0 +1,10 @@ +#!/bin/bash +# $Id: make_po_it 3354 2009-11-09 18:49:17Z gruberroland $ +# +# Copyright (C) 2013 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run after make_po to merge the existing Ukrainian translations to messages.po + +./make_po +msgmerge -v ../locale/uk_UA/LC_MESSAGES/messages.po messages.po -o messages.po \ No newline at end of file diff --git a/lam/po/make_po_zh_CN b/lam/po/make_po_zh_CN new file mode 100755 index 00000000..ba05dafe --- /dev/null +++ b/lam/po/make_po_zh_CN @@ -0,0 +1,10 @@ +#!/bin/bash +# $Id$ +# +# Copyright (C) 2007 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run after make_po to merge the existing Chinese translations to messages.po + +./make_po +msgmerge -v ../locale/zh_CN/LC_MESSAGES/messages.po messages.po -o messages.po diff --git a/lam/po/make_po_zh_TW b/lam/po/make_po_zh_TW new file mode 100755 index 00000000..35154675 --- /dev/null +++ b/lam/po/make_po_zh_TW @@ -0,0 +1,10 @@ +#!/bin/bash +# $Id$ +# +# Copyright (C) 2006 Roland Gruber +# This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + +# This script is run after make_po to merge the existing Chinese translations to messages.po + +./make_po +msgmerge -v ../locale/zh_TW/LC_MESSAGES/messages.po messages.po -o messages.po diff --git a/lam/po/messages.header b/lam/po/messages.header new file mode 100644 index 00000000..92a0ae30 --- /dev/null +++ b/lam/po/messages.header @@ -0,0 +1,15 @@ +# +# LDAP Account Manager +# + +msgid "" +msgstr "" +"Project-Id-Version: LAM\n" +"Report-Msgid-Bugs-To: post@rolandgruber.de \n" +"PO-Revision-Date: 2011-11-04 17:45+0200\n" +"Last-Translator: Roland Gruber \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + diff --git a/lam/sess/.htaccess b/lam/sess/.htaccess new file mode 100644 index 00000000..8334f2cd --- /dev/null +++ b/lam/sess/.htaccess @@ -0,0 +1,9 @@ + + + Order allow,deny + Deny from all + + = 2.3> + Require all denied + + diff --git a/lam/style/.htaccess b/lam/style/.htaccess new file mode 100644 index 00000000..5a928f6d --- /dev/null +++ b/lam/style/.htaccess @@ -0,0 +1 @@ +Options -Indexes diff --git a/lam/style/120_jquery-ui-1.10.1.custom.css b/lam/style/120_jquery-ui-1.10.1.custom.css new file mode 100644 index 00000000..c12612f7 --- /dev/null +++ b/lam/style/120_jquery-ui-1.10.1.custom.css @@ -0,0 +1,1173 @@ +/*! jQuery UI - v1.10.1 - 2013-02-20 +* http://jqueryui.com +* Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px +* Copyright (c) 2013 jQuery Foundation and other contributors Licensed MIT */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { + display: none; +} +.ui-helper-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.ui-helper-reset { + margin: 0; + padding: 0; + border: 0; + outline: 0; + line-height: 1.3; + text-decoration: none; + font-size: 100%; + list-style: none; +} +.ui-helper-clearfix:before, +.ui-helper-clearfix:after { + content: ""; + display: table; + border-collapse: collapse; +} +.ui-helper-clearfix:after { + clear: both; +} +.ui-helper-clearfix { + min-height: 0; /* support: IE7 */ +} +.ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + opacity: 0; + filter:Alpha(Opacity=0); +} + +.ui-front { + z-index: 100; +} + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { + cursor: default !important; +} + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + display: block; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; +} + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.ui-resizable { + position: relative; +} +.ui-resizable-handle { + position: absolute; + font-size: 0.1px; + display: block; +} +.ui-resizable-disabled .ui-resizable-handle, +.ui-resizable-autohide .ui-resizable-handle { + display: none; +} +.ui-resizable-n { + cursor: n-resize; + height: 7px; + width: 100%; + top: -5px; + left: 0; +} +.ui-resizable-s { + cursor: s-resize; + height: 7px; + width: 100%; + bottom: -5px; + left: 0; +} +.ui-resizable-e { + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; +} +.ui-resizable-w { + cursor: w-resize; + width: 7px; + left: -5px; + top: 0; + height: 100%; +} +.ui-resizable-se { + cursor: se-resize; + width: 12px; + height: 12px; + right: 1px; + bottom: 1px; +} +.ui-resizable-sw { + cursor: sw-resize; + width: 9px; + height: 9px; + left: -5px; + bottom: -5px; +} +.ui-resizable-nw { + cursor: nw-resize; + width: 9px; + height: 9px; + left: -5px; + top: -5px; +} +.ui-resizable-ne { + cursor: ne-resize; + width: 9px; + height: 9px; + right: -5px; + top: -5px; +} +.ui-selectable-helper { + position: absolute; + z-index: 100; + border: 1px dotted black; +} +.ui-accordion .ui-accordion-header { + display: block; + cursor: pointer; + position: relative; + margin-top: 2px; + padding: .5em .5em .5em .7em; + min-height: 0; /* support: IE7 */ +} +.ui-accordion .ui-accordion-icons { + padding-left: 2.2em; +} +.ui-accordion .ui-accordion-noicons { + padding-left: .7em; +} +.ui-accordion .ui-accordion-icons .ui-accordion-icons { + padding-left: 2.2em; +} +.ui-accordion .ui-accordion-header .ui-accordion-header-icon { + position: absolute; + left: .5em; + top: 50%; + margin-top: -8px; +} +.ui-accordion .ui-accordion-content { + padding: 1em 2.2em; + border-top: 0; + overflow: auto; +} +.ui-autocomplete { + position: absolute; + top: 0; + left: 0; + cursor: default; +} +.ui-button { + display: inline-block; + position: relative; + padding: 0; + line-height: normal; + margin-right: .1em; + cursor: pointer; + vertical-align: middle; + text-align: center; + overflow: visible; /* removes extra width in IE */ +} +.ui-button, +.ui-button:link, +.ui-button:visited, +.ui-button:hover, +.ui-button:active { + text-decoration: none; +} +/* to make room for the icon, a width needs to be set here */ +.ui-button-icon-only { + width: 2.2em; +} +/* button elements seem to need a little more width */ +button.ui-button-icon-only { + width: 2.4em; +} +.ui-button-icons-only { + width: 3.4em; +} +button.ui-button-icons-only { + width: 3.7em; +} + +/* button text element */ +.ui-button .ui-button-text { + display: block; + line-height: normal; +} +.ui-button-text-only .ui-button-text { + padding: .4em 1em; +} +.ui-button-icon-only .ui-button-text, +.ui-button-icons-only .ui-button-text { + padding: .4em; + text-indent: -9999999px; +} +.ui-button-text-icon-primary .ui-button-text, +.ui-button-text-icons .ui-button-text { + padding: .4em 1em .4em 2.1em; +} +.ui-button-text-icon-secondary .ui-button-text, +.ui-button-text-icons .ui-button-text { + padding: .4em 2.1em .4em 1em; +} +.ui-button-text-icons .ui-button-text { + padding-left: 2.1em; + padding-right: 2.1em; +} +/* no icon support for input elements, provide padding by default */ +input.ui-button { + padding: .4em 1em; +} + +/* button icon element(s) */ +.ui-button-icon-only .ui-icon, +.ui-button-text-icon-primary .ui-icon, +.ui-button-text-icon-secondary .ui-icon, +.ui-button-text-icons .ui-icon, +.ui-button-icons-only .ui-icon { + position: absolute; + top: 50%; + margin-top: -8px; +} +.ui-button-icon-only .ui-icon { + left: 50%; + margin-left: -8px; +} +.ui-button-text-icon-primary .ui-button-icon-primary, +.ui-button-text-icons .ui-button-icon-primary, +.ui-button-icons-only .ui-button-icon-primary { + left: .5em; +} +.ui-button-text-icon-secondary .ui-button-icon-secondary, +.ui-button-text-icons .ui-button-icon-secondary, +.ui-button-icons-only .ui-button-icon-secondary { + right: .5em; +} + +/* button sets */ +.ui-buttonset { + margin-right: 7px; +} +.ui-buttonset .ui-button { + margin-left: 0; + margin-right: -.3em; +} + +/* workarounds */ +/* reset extra padding in Firefox, see h5bp.com/l */ +input.ui-button::-moz-focus-inner, +button.ui-button::-moz-focus-inner { + border: 0; + padding: 0; +} +.ui-datepicker { + width: 17em; + padding: .2em .2em 0; + display: none; +} +.ui-datepicker .ui-datepicker-header { + position: relative; + padding: .2em 0; +} +.ui-datepicker .ui-datepicker-prev, +.ui-datepicker .ui-datepicker-next { + position: absolute; + top: 2px; + width: 1.8em; + height: 1.8em; +} +.ui-datepicker .ui-datepicker-prev-hover, +.ui-datepicker .ui-datepicker-next-hover { + top: 1px; +} +.ui-datepicker .ui-datepicker-prev { + left: 2px; +} +.ui-datepicker .ui-datepicker-next { + right: 2px; +} +.ui-datepicker .ui-datepicker-prev-hover { + left: 1px; +} +.ui-datepicker .ui-datepicker-next-hover { + right: 1px; +} +.ui-datepicker .ui-datepicker-prev span, +.ui-datepicker .ui-datepicker-next span { + display: block; + position: absolute; + left: 50%; + margin-left: -8px; + top: 50%; + margin-top: -8px; +} +.ui-datepicker .ui-datepicker-title { + margin: 0 2.3em; + line-height: 1.8em; + text-align: center; +} +.ui-datepicker .ui-datepicker-title select { + margin: 1px 0; +} +.ui-datepicker select.ui-datepicker-month-year { + width: 100%; +} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { + width: 49%; +} +.ui-datepicker table { + width: 100%; + font-size: .9em; + border-collapse: collapse; + margin: 0 0 .4em; +} +.ui-datepicker th { + padding: .7em .3em; + text-align: center; + font-weight: bold; + border: 0; +} +.ui-datepicker td { + border: 0; + padding: 1px; +} +.ui-datepicker td span, +.ui-datepicker td a { + display: block; + padding: .2em; + text-align: right; + text-decoration: none; +} +.ui-datepicker .ui-datepicker-buttonpane { + background-image: none; + margin: .7em 0 0 0; + padding: 0 .2em; + border-left: 0; + border-right: 0; + border-bottom: 0; +} +.ui-datepicker .ui-datepicker-buttonpane button { + float: right; + margin: .5em .2em .4em; + cursor: pointer; + padding: .2em .6em .3em .6em; + width: auto; + overflow: visible; +} +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { + float: left; +} + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { + width: auto; +} +.ui-datepicker-multi .ui-datepicker-group { + float: left; +} +.ui-datepicker-multi .ui-datepicker-group table { + width: 95%; + margin: 0 auto .4em; +} +.ui-datepicker-multi-2 .ui-datepicker-group { + width: 50%; +} +.ui-datepicker-multi-3 .ui-datepicker-group { + width: 33.3%; +} +.ui-datepicker-multi-4 .ui-datepicker-group { + width: 25%; +} +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { + border-left-width: 0; +} +.ui-datepicker-multi .ui-datepicker-buttonpane { + clear: left; +} +.ui-datepicker-row-break { + clear: both; + width: 100%; + font-size: 0; +} + +/* RTL support */ +.ui-datepicker-rtl { + direction: rtl; +} +.ui-datepicker-rtl .ui-datepicker-prev { + right: 2px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next { + left: 2px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-prev:hover { + right: 1px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next:hover { + left: 1px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane { + clear: right; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button { + float: left; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, +.ui-datepicker-rtl .ui-datepicker-group { + float: right; +} +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { + border-right-width: 0; + border-left-width: 1px; +} +.ui-dialog { + position: absolute; + top: 0; + left: 0; + padding: .2em; + outline: 0; +} +.ui-dialog .ui-dialog-titlebar { + padding: .4em 1em; + position: relative; +} +.ui-dialog .ui-dialog-title { + float: left; + margin: .1em 0; + white-space: nowrap; + width: 90%; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-dialog .ui-dialog-titlebar-close { + position: absolute; + right: .3em; + top: 50%; + width: 21px; + margin: -10px 0 0 0; + padding: 1px; + height: 20px; +} +.ui-dialog .ui-dialog-content { + position: relative; + border: 0; + padding: .5em 1em; + background: none; + overflow: auto; +} +.ui-dialog .ui-dialog-buttonpane { + text-align: left; + border-width: 1px 0 0 0; + background-image: none; + background-color: #F5F5F5; + margin-top: .5em; + padding: .3em 1em .5em .4em; +} +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { + float: right; +} +.ui-dialog .ui-dialog-buttonpane button { + margin: .5em .4em .5em 0; + cursor: pointer; +} +.ui-dialog .ui-resizable-se { + width: 12px; + height: 12px; + right: -5px; + bottom: -5px; + background-position: 16px 16px; +} +.ui-draggable .ui-dialog-titlebar { + cursor: move; +} +.ui-menu { + list-style: none; + padding: 2px; + margin: 0; + display: block; + outline: none; + background: #E6E6E6; +} +.ui-menu .ui-menu { + margin-top: -3px; + position: absolute; +} +.ui-menu .ui-menu-item { + margin: 0; + padding: 0; + width: 100%; +} + +.ui-menu .ui-menu-divider { + margin: 5px -2px 5px -2px; + height: 0; + font-size: 0; + line-height: 0; + border-width: 1px 0 0 0; +} +.ui-menu .ui-menu-item a { + text-decoration: none; + display: block; + padding: 2px .4em; + line-height: 1.5; + min-height: 0; /* support: IE7 */ + font-weight: normal; +} +.ui-menu .ui-menu-item a.ui-state-focus, +.ui-menu .ui-menu-item a.ui-state-active { + font-weight: normal; + margin: -1px; +} + +.ui-menu .ui-state-disabled { + font-weight: normal; + margin: .4em 0 .2em; + line-height: 1.5; +} +.ui-menu .ui-state-disabled a { + cursor: default; +} + +/* icon support */ +.ui-menu-icons { + position: relative; +} +.ui-menu-icons .ui-menu-item a { + position: relative; + padding-left: 2em; +} + +/* left-aligned */ +.ui-menu .ui-icon { + position: absolute; + top: .2em; + left: .2em; +} + +/* right-aligned */ +.ui-menu .ui-menu-icon { + position: static; + float: right; +} +.ui-progressbar { + height: 2em; + text-align: left; + overflow: hidden; +} +.ui-progressbar .ui-progressbar-value { + margin: -1px; + height: 100%; +} +.ui-progressbar .ui-progressbar-overlay { + background: url("images/animated-overlay.gif"); + height: 100%; + filter: alpha(opacity=25); + opacity: 0.25; +} +.ui-progressbar-indeterminate .ui-progressbar-value { + background-image: none; +} +.ui-slider { + position: relative; + text-align: left; +} +.ui-slider .ui-slider-handle { + position: absolute; + z-index: 2; + width: 1.2em; + height: 1.2em; + cursor: default; +} +.ui-slider .ui-slider-range { + position: absolute; + z-index: 1; + font-size: .7em; + display: block; + border: 0; + background-position: 0 0; +} + +/* For IE8 - See #6727 */ +.ui-slider.ui-state-disabled .ui-slider-handle, +.ui-slider.ui-state-disabled .ui-slider-range { + filter: inherit; +} + +.ui-slider-horizontal { + height: .8em; +} +.ui-slider-horizontal .ui-slider-handle { + top: -.3em; + margin-left: -.6em; +} +.ui-slider-horizontal .ui-slider-range { + top: 0; + height: 100%; +} +.ui-slider-horizontal .ui-slider-range-min { + left: 0; +} +.ui-slider-horizontal .ui-slider-range-max { + right: 0; +} + +.ui-slider-vertical { + width: .8em; + height: 100px; +} +.ui-slider-vertical .ui-slider-handle { + left: -.3em; + margin-left: 0; + margin-bottom: -.6em; +} +.ui-slider-vertical .ui-slider-range { + left: 0; + width: 100%; +} +.ui-slider-vertical .ui-slider-range-min { + bottom: 0; +} +.ui-slider-vertical .ui-slider-range-max { + top: 0; +} +.ui-spinner { + position: relative; + display: inline-block; + overflow: hidden; + padding: 0; + vertical-align: middle; +} +.ui-spinner-input { + border: none; + background: none; + color: inherit; + padding: 0; + margin: .2em 0; + vertical-align: middle; + margin-left: .4em; + margin-right: 22px; +} +.ui-spinner-button { + width: 16px; + height: 50%; + font-size: .5em; + padding: 0; + margin: 0; + text-align: center; + position: absolute; + cursor: default; + display: block; + overflow: hidden; + right: 0; +} +/* more specificity required here to overide default borders */ +.ui-spinner a.ui-spinner-button { + border-top: none; + border-bottom: none; + border-right: none; +} +/* vertical centre icon */ +.ui-spinner .ui-icon { + position: absolute; + margin-top: -8px; + top: 50%; + left: 0; +} +.ui-spinner-up { + top: 0; +} +.ui-spinner-down { + bottom: 0; +} + +/* TR overrides */ +.ui-spinner .ui-icon-triangle-1-s { + /* need to fix icons sprite */ + background-position: -65px -16px; +} +.ui-tabs { + position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ + padding: .2em; +} +.ui-tabs .ui-tabs-nav { + margin: 0; + padding: .2em .2em 0; +} +.ui-tabs .ui-tabs-nav li { + list-style: none; + float: left; + position: relative; + top: 0; + margin: 1px .2em 0 0; + border-bottom: 0; + padding: 0; + white-space: nowrap; +} +.ui-tabs .ui-tabs-nav li a { + float: left; + padding: .5em 1em; + text-decoration: none; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-active { + margin-bottom: -1px; + padding-bottom: 1px; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-active a, +.ui-tabs .ui-tabs-nav li.ui-state-disabled a, +.ui-tabs .ui-tabs-nav li.ui-tabs-loading a { + cursor: text; +} +.ui-tabs .ui-tabs-nav li a, /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { + cursor: pointer; +} +.ui-tabs .ui-tabs-panel { + display: block; + border-width: 0; + padding: 1em 1.4em; + background: none; +} +.ui-tooltip { + padding: 8px; + position: absolute; + z-index: 9999; + max-width: 600px; + -webkit-box-shadow: 0 0 5px #aaa; + box-shadow: 0 0 5px #aaa; + background-color: #F5F5F5 !important; +} +body .ui-tooltip { + border-width: 2px; +} + +/* Component containers +----------------------------------*/ +.ui-widget { + font-family: Verdana,Arial,sans-serif; +} +.ui-widget input, +.ui-widget select, +.ui-widget textarea, +.ui-widget button { + font-family: Verdana,Arial,sans-serif; +} +.ui-widget-content { + border: 1px solid #aaaaaa; + /* background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; */ + color: #222222; +} +.ui-widget-content a { + color: #222222; +} +.ui-widget-header { + border: 1px solid #aaaaaa; + background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; + color: #222222; + font-weight: bold; +} +.ui-widget-header a { + color: #222222; +} + +/* Interaction states +----------------------------------*/ +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default { + border: 1px solid #d3d3d3; + background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; + font-weight: normal; + color: #555555; +} +.ui-state-default a, +.ui-state-default a:link, +.ui-state-default a:visited { + color: #555555; + text-decoration: none; +} +.ui-state-hover, +.ui-widget-content .ui-state-hover, +.ui-widget-header .ui-state-hover, +.ui-state-focus, +.ui-widget-content .ui-state-focus, +.ui-widget-header .ui-state-focus { + border: 1px solid #999999; + background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; + font-weight: normal; + color: #212121; +} +.ui-state-hover a, +.ui-state-hover a:hover, +.ui-state-hover a:link, +.ui-state-hover a:visited { + color: #212121; + text-decoration: none; +} +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active { + border: 1px solid #aaaaaa; + background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; + font-weight: normal; + color: #212121; +} +.ui-state-active a, +.ui-state-active a:link, +.ui-state-active a:visited { + color: #212121; + text-decoration: none; +} + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, +.ui-widget-content .ui-state-highlight, +.ui-widget-header .ui-state-highlight { + border: 1px solid #fcefa1; + background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; + color: #363636; +} +.ui-state-highlight a, +.ui-widget-content .ui-state-highlight a, +.ui-widget-header .ui-state-highlight a { + color: #363636; +} +.ui-state-error, +.ui-widget-content .ui-state-error, +.ui-widget-header .ui-state-error { + border: 1px solid #cd0a0a; + background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; + color: #cd0a0a; +} +.ui-state-error a, +.ui-widget-content .ui-state-error a, +.ui-widget-header .ui-state-error a { + color: #cd0a0a; +} +.ui-state-error-text, +.ui-widget-content .ui-state-error-text, +.ui-widget-header .ui-state-error-text { + color: #cd0a0a; +} +.ui-priority-primary, +.ui-widget-content .ui-priority-primary, +.ui-widget-header .ui-priority-primary { + font-weight: bold; +} +.ui-priority-secondary, +.ui-widget-content .ui-priority-secondary, +.ui-widget-header .ui-priority-secondary { + opacity: .7; + filter:Alpha(Opacity=70); + font-weight: normal; +} +.ui-state-disabled, +.ui-widget-content .ui-state-disabled, +.ui-widget-header .ui-state-disabled { + opacity: .35; + filter:Alpha(Opacity=35); + background-image: none; +} +.ui-state-disabled .ui-icon { + filter:Alpha(Opacity=35); /* For IE8 - See #6059 */ +} + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + width: 16px; + height: 16px; + background-position: 16px 16px; +} +.ui-icon, +.ui-widget-content .ui-icon { + background-image: url(images/ui-icons_222222_256x240.png); +} +.ui-widget-header .ui-icon { + background-image: url(images/ui-icons_222222_256x240.png); +} +.ui-state-default .ui-icon { + background-image: url(images/ui-icons_888888_256x240.png); +} +.ui-state-hover .ui-icon, +.ui-state-focus .ui-icon { + background-image: url(images/ui-icons_454545_256x240.png); +} +.ui-state-active .ui-icon { + background-image: url(images/ui-icons_454545_256x240.png); +} +.ui-state-highlight .ui-icon { + background-image: url(images/ui-icons_2e83ff_256x240.png); +} +.ui-state-error .ui-icon, +.ui-state-error-text .ui-icon { + background-image: url(images/ui-icons_cd0a0a_256x240.png); +} + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-on { background-position: -96px -144px; } +.ui-icon-radio-off { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, +.ui-corner-top, +.ui-corner-left, +.ui-corner-tl { + border-top-left-radius: 4px; +} +.ui-corner-all, +.ui-corner-top, +.ui-corner-right, +.ui-corner-tr { + border-top-right-radius: 4px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-left, +.ui-corner-bl { + border-bottom-left-radius: 4px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-right, +.ui-corner-br { + border-bottom-right-radius: 4px; +} + +/* Overlays */ +.ui-widget-overlay { + background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; + opacity: .3; + filter: Alpha(Opacity=30); +} +.ui-widget-shadow { + margin: -8px 0 0 -8px; + padding: 8px; + background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; + opacity: .3; + filter: Alpha(Opacity=30); + border-radius: 8px; +} diff --git a/lam/style/150_jquery-dropmenu.css b/lam/style/150_jquery-dropmenu.css new file mode 100644 index 00000000..99a286a5 --- /dev/null +++ b/lam/style/150_jquery-dropmenu.css @@ -0,0 +1,32 @@ +/* --------------------------------------------------------- + + Essentials +*/ +.dropmenu { + margin: 0; + padding: 0; + height: 30px; +} + +/* All items */ +.dropmenu li a { + text-decoration: none; +} +.dropmenu li a, +.dropmenu li span { + padding: 9px; + text-align: left; +} + + + +.dropmenu .sublevel { + background: #E6E6E6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) repeat-x scroll 50% 50%; + border-bottom: 1px solid #888; + border-right: 1px solid #888; + border-left: 1px solid #888; +} + +.dropmenu .sublevel.hover { + background: #E6E6E6 url(images/ui-bg_glass_75_dadada_1x400.png) repeat-x scroll 50% 50%; +} diff --git a/lam/style/150_jquery-fineuploader.css b/lam/style/150_jquery-fineuploader.css new file mode 100644 index 00000000..4d335e44 --- /dev/null +++ b/lam/style/150_jquery-fineuploader.css @@ -0,0 +1,143 @@ +/* + * Original version: 1.0 © 2010 Andrew Valums ( andrew(at)valums.com ) + * Current Maintainer (2.0+): 2012, Ray Nicholus ( fineuploader(at)garstasio.com ) + * + * Licensed under MIT license, GNU GPL 2 or later, GNU LGPL 2 or later, see license.txt. + */ +.qq-uploader { + position: relative; + width: 100%; +} +.qq-upload-button { + display: block; + /*or inline-block*/ + width: 105px; + padding: 7px 0; + text-align: center; + background: url("images/ui-bg_glass_75_e6e6e6_1x400.png") repeat-x #ededed; + border: 1px solid #d6d6d6; + color: #555555; + border-radius: 4px 4px 4px 4px; +} +.qq-upload-button-hover { + background: url("images/ui-bg_glass_75_dadada_1x400.png") #dadada; + border: 1px solid #999999; +} +.qq-upload-button-focus { + outline: 1px dotted #000000; +} +.qq-upload-drop-area, .qq-upload-extra-drop-area { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + min-height: 30px; + z-index: 2; + background: #FF9797; + text-align: center; +} +.qq-upload-drop-area span { + display: block; + position: absolute; + top: 50%; + width: 100%; + margin-top: -8px; + font-size: 16px; +} +.qq-upload-extra-drop-area { + position: relative; + margin-top: 50px; + font-size: 16px; + padding-top: 30px; + height: 20px; + min-height: 40px; +} +.qq-upload-drop-area-active { + background: #FF7171; +} +.qq-upload-list { + margin: 0; + padding: 0; + list-style: none; + border-radius: 4px 4px 4px 4px; +} +.qq-upload-list li { + margin: 0; + padding: 9px; + line-height: 15px; + font-size: 16px; + background-color: #FFF0BD; + border-radius: 4px 4px 4px 4px; +} +.qq-upload-file, .qq-upload-spinner, .qq-upload-size, .qq-upload-cancel, .qq-upload-retry, .qq-upload-failed-text, .qq-upload-finished { + margin-right: 12px; +} +.qq-upload-file { +} +.qq-upload-spinner { + display: inline-block; + background: url("loading.gif"); + width: 15px; + height: 15px; + vertical-align: text-bottom; +} +.qq-upload-finished { + display:none; + width:15px; + height:15px; + vertical-align:text-bottom; +} +.qq-upload-retry { + display: none; + color: #000000; +} +.qq-upload-cancel { + color: #000000; +} +.qq-upload-retryable .qq-upload-retry { + display: inline; +} +.qq-upload-size, .qq-upload-cancel, .qq-upload-retry { + font-size: 12px; + font-weight: normal; +} +.qq-upload-failed-text { + display: none; + font-style: italic; + font-weight: bold; +} +.qq-upload-failed-icon { + display:none; + width:15px; + height:15px; + vertical-align:text-bottom; +} +.qq-upload-fail .qq-upload-failed-text { + display: inline; +} +.qq-upload-retrying .qq-upload-failed-text { + display: inline; + color: #D60000; +} +.qq-upload-list li.qq-upload-success { + background-color: #5DA30C; + color: #FFFFFF; +} +.qq-upload-list li.qq-upload-fail { + background-color: #D60000; + color: #FFFFFF; +} +.qq-progress-bar { + background: -moz-linear-gradient(top, rgba(30,87,153,1) 0%, rgba(41,137,216,1) 50%, rgba(32,124,202,1) 51%, rgba(125,185,232,1) 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(30,87,153,1)), color-stop(50%,rgba(41,137,216,1)), color-stop(51%,rgba(32,124,202,1)), color-stop(100%,rgba(125,185,232,1))); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, rgba(30,87,153,1) 0%,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, rgba(30,87,153,1) 0%,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, rgba(30,87,153,1) 0%,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%); /* IE10+ */ + background: linear-gradient(to bottom, rgba(30,87,153,1) 0%,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%); /* W3C */ + width: 0%; + height: 15px; + border-radius: 6px; + margin-bottom: 3px; + display: none; +} diff --git a/lam/style/150_jquery-validationEngine.css b/lam/style/150_jquery-validationEngine.css new file mode 100644 index 00000000..c2a94f5a --- /dev/null +++ b/lam/style/150_jquery-validationEngine.css @@ -0,0 +1,165 @@ +/* +$Id$ + + This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + Copyright (C) 2010 Cedric Dugas and Olivier Refalo + 2011 Roland Gruber + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +*/ + + +.inputContainer { + position: relative; + float: left; +} + +.formError { + position: absolute; + top: 300px; + left: 300px; + display: block; + z-index: 5000; + cursor: pointer; +} + +.ajaxSubmit { + padding: 20px; + background: #55ea55; + border: 1px solid #999; + display: none +} + +.formError .formErrorContent { + width: 100%; + background: #ee4f01; + position:relative; + z-index:5001; + color: #fff; + font-family: tahoma; + font-size: 12px; + border: 2px solid #ddd; + box-shadow: 0 0 6px #000; + -moz-box-shadow: 0 0 6px #000; + -webkit-box-shadow: 0 0 6px #000; + padding: 4px 10px 4px 10px; + border-radius: 6px; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; +} + +.greenPopup .formErrorContent { + background: #33be40; +} + +.blackPopup .formErrorContent { + background: #393939; + color: #FFF; +} + +.formError .formErrorArrow { + width: 15px; + margin: -2px 0 0 13px; + position:relative; + z-index: 5006; +} + +.formError .formErrorArrowBottom { + box-shadow: none; + -moz-box-shadow: none; + -webkit-box-shadow: none; + margin: 0px 0 0 12px; + top:2px; +} + +.formError .formErrorArrow div { + border-left: 2px solid #ddd; + border-right: 2px solid #ddd; + box-shadow: 0 2px 3px #444; + -moz-box-shadow: 0 2px 3px #444; + -webkit-box-shadow: 0 2px 3px #444; + font-size: 0px; + height: 1px; + background: #ee4f01; + margin: 0 auto; + line-height: 0; + font-size: 0; + display: block; +} + +.formError .formErrorArrowBottom div { + box-shadow: none; + -moz-box-shadow: none; + -webkit-box-shadow: none; +} + +.greenPopup .formErrorArrow div { + background: #33be40; +} + +.blackPopup .formErrorArrow div { + background: #393939; + color: #FFF; +} + +.formError .formErrorArrow .line10 { + width: 15px; + border: none; +} + +.formError .formErrorArrow .line9 { + width: 13px; + border: none; +} + +.formError .formErrorArrow .line8 { + width: 11px; +} + +.formError .formErrorArrow .line7 { + width: 9px; +} + +.formError .formErrorArrow .line6 { + width: 7px; +} + +.formError .formErrorArrow .line5 { + width: 5px; +} + +.formError .formErrorArrow .line4 { + width: 3px; +} + +.formError .formErrorArrow .line3 { + width: 1px; + border-left: 2px solid #ddd; + border-right: 2px solid #ddd; + border-bottom: 0 solid #ddd; +} + +.formError .formErrorArrow .line2 { + width: 3px; + border: none; + background: #ddd; +} + +.formError .formErrorArrow .line1 { + width: 1px; + border: none; + background: #ddd; +} diff --git a/lam/style/500_layout.css b/lam/style/500_layout.css new file mode 100644 index 00000000..ddc21612 --- /dev/null +++ b/lam/style/500_layout.css @@ -0,0 +1,617 @@ +/* +$Id$ + + This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) + Copyright (C) 2003 Leonhard Walchshaeusl + Copyright (C) 2005 - 2014 Roland Gruber + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more detaexils. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +*/ + +/* CSS layout for LAM */ + + +/** + * global page layout + * + */ + +h1,h2,h3,h4,p,ul,ol,li,div,td,th,address,blockquote,b,i { + font-family:Arial,Tahoma,Verdana,sans-serif; +} + +h1,h2,h3 { color:black; } + +body { + background-color:#F5F5F5; +} + +.defaultBackground { + background: #F5F5F5 !important; +} + +/* links */ +a { +color: #222222; +text-decoration: none; +} + +a:link { +color: #222222; +text-decoration: none; +} + +a:visited { +color: #222222; +text-decoration: none; +} + +a:hover { +color: red; +text-decoration: none; +} + +a:active { +color: red; +text-decoration: none; +} + +a img { + border: 0px; +} + +a.classicBold { + color: blue; + text-decoration: none; + font-weight: bold; +} + +fieldset { +background-color:#fff3c8; +border:1px solid #af8800; +padding:10px; +} + +div.filled { +background-color:#fff3c8; +border:1px solid #af8800; +padding:10px; +} + +legend { +color:black; +} + +/* color for active page digit */ +td.activepage { + color:red; +} + +select { + background:#F5F5F5 none repeat-x scroll 50% 50%; + border:1px solid #AAAAAA; + color:#222222; + margin: 1px; +} + +input { + margin: 1px; +} + +.margin2 { + margin: 2px; +} + +.align-middle { + vertical-align: middle; +} + +table.lamHeader { + background-image: url(lam-images/headerLine.png); + padding: 0px; + margin: 0px; + height: 35px; +} + +/* table preferences */ +table.accountlist { + border-width:1px; + border-style:solid; +} + +table.collapse { + border-collapse:collapse; +} + +.rightToLeftText { + text-align: right; +} + +/** buttons */ +.saveButton { + background-image: url(../graphics/save.png) !important; + background-position: 0px 0px !important; +} + +.cancelButton { + background-image: url(../graphics/del.png) !important; + background-position: 0px 0px !important; +} + +.logoutButton { + background-image: url(../graphics/exit.png) !important; + background-position: 0px 0px !important; +} + +.undoButton { + background-image: url(../graphics/undo.png) !important; + background-position: 0px 0px !important; +} + +.passwordButton { + background-image: url(../graphics/key.png) !important; + background-position: 0px 0px !important; +} + +.loadProfileButton { + background-image: url(../graphics/loadProfile.png) !important; + background-position: 0px 0px !important; +} + +.deleteButton { + background-image: url(../graphics/del.png) !important; + background-position: 0px 0px !important; +} + +.createButton { + background-image: url(../graphics/add.png) !important; + background-position: 0px 0px !important; +} + +.editButton { + background-image: url(../graphics/edit.png) !important; + background-position: 0px 0px !important; +} + +.settingsButton { + background-image: url(../graphics/tools.png) !important; + background-position: 0px 0px !important; +} + +.upButton { + background-image: url(../graphics/up.gif) !important; + background-position: 0px 0px !important; +} + +.downButton { + background-image: url(../graphics/down.gif) !important; + background-position: 0px 0px !important; +} + +.backButton { + background-image: url(../graphics/back.gif) !important; + background-position: 0px 0px !important; +} + +.pdfButton { + background-image: url(../graphics/pdf.png) !important; + background-position: 0px 0px !important; +} + +.dryRunButton { + background-image: url(../graphics/dryRun.png) !important; + background-position: 0px 0px !important; +} + +.trashButton { + background-image: url(../graphics/trash.png) !important; + background-position: 0px 0px !important; +} + +.smallPadding span { + padding: 0.1em 0.4em !important; +} + +.smallPaddingContent { + padding: 0.5em; +} + +/** titles */ +.titleText { + color: black; +} + +/** subtitles */ +.subTitle { + margin: 20px 0px 15px 0px; + border-bottom: 1px dotted black; +} + +.subTitleText { + margin: 0px 0px 0px 10px; + color: black; +} + +.hidden { + display: none; +} + +.nowrap { + white-space: nowrap; +} + +hr.dotted { + border-bottom: 1px dotted black; + border-top: none; + border-right: none; + border-left: none; +} + +div.ui-progressbar-value { + background-image: url(images/pbar-ani.gif); +} + +.fullwidth { + width: 100%; +} + +.halfwidth { + width: 50%; +} + +td.loginLogo { + background-image: url(../graphics/lam.png); + background-repeat:no-repeat; + background-position: center; + margin: 5px; + height: 320px; + width: 65px; +} + +a.lamLogo { + background-image: url(../graphics/logo24.png); + background-repeat: no-repeat; + background-position: left; + line-height: 24px; + display: block; + text-indent:32px; + vertical-align: middle; + white-space: nowrap; + margin-left: 5px; +} + +input.markFail { + background-color: #ffc4ba; +} +input.markOk { + background-color: #abebaa; +} + +.sortableList { list-style-type: none; margin: 0; padding: 0; } +.sortableList li { margin: 0 3px 3px 3px; padding: 0.4em; padding-left: 1.5em; } +.sortableList li span { position: absolute; margin-left: -1.3em; } + + +/** + * table style for delete.php + * + */ + +/* table preferences */ +table.account { + border-width:0px; + border-style:solid; + border-color:#000000; +} + +/* color of entry rows */ +tr.account { + background-color:#FFFFEE; +} + +/* --- workaround for vertical tabs --- */ + +#lamVerticalTabs .ui-tabs-nav li { + margin: 0 -1px .2em 0; + clear: left; + width: 100%; + border-bottom-width: 1px !important; + border-right-width: 0 !important; + border-bottom: 1px solid #AAAAAA !important; +} + +#lamVerticalTabs .ui-tabs-nav li.ui-tabs-selected { + border-right-width: 1px; + border-right-width: 1px; + padding-bottom: 0; + padding-right: .1em; +} + +#lamVerticalTabs .ui-tabs-nav { + float: left; + padding: .2em .1em .2em .2em !IMPORTANT; +} + +#lamVerticalTabs .ui-tabs-panel { + padding: 1em; + float: left; +} + +#lamVerticalTabs .ui-widget-header { + background: #CCCCCC url(images/ui-bg_highlight-soft_75_cccccc_1x150-vertical.png) repeat-y; +} + +#lamVerticalTabs .ui-tabs-nav li button { + width: 100%; + text-align: left; + display:block; + color: #555555; +} + +/* --- end of workaround for vertical tabs --- */ + +.tabs-hover { + background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x !important; +} + +/* title bar */ +.titleBar { + background: #AAAAAA url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) repeat-x scroll 50% 50%; + border-top: 1px solid #AAAAAA; + border-left: 1px solid #AAAAAA; + border-right: 1px solid #AAAAAA; + padding: 5px 5px 5px 15px; +} + +.titleBarTitle { + font: bold 1em Arial,Tahoma,Verdana,sans-serif; +} + +.titleBarSubtitle { +/* font-style: italic;*/ + padding: 0px 5px 0px 10px; +} + +/** + * Color and font definitions for templates/status.php + * + */ + +/* Background olor for the different Status Messages */ +div.statusInfo { + background-color:#a8c3ff; + border: 1px solid blue; +} + +div.statusWarn { + background-color:#fff2a3; + border: 1px solid #f59d00; +} + +div.statusError { + background-color:#ffc4ba; + border: 1px solid red; +} + +/* H2 (MessageHeadline) font size, family, color, and some more settings for the different Status Messages */ +div.statusTitle { + font-size: 12pt; + font-weight: bold; + margin: 3px 3px 3px 15px; +} + +/* P (MessageText) font size, family, color, and some more settings for the different Status Messages */ +p.statusText { + font-size: 10pt; + margin: 3px 3px 3px 25px; +} + +input.smallImageButton { + background-position: 2px center; + background-repeat: no-repeat; + height:24px; + border: 0px; + background-color: transparent; + cursor:pointer; +} + +/* help tooltip */ +th.help { + text-align: left; + padding-bottom: 10px; + font-size: 9pt; +} +td.help { + font-size: 10pt; +} + + +/* schema browser */ + +table.schema_oclasses { + border-left: 1px solid black; + border-right: 1px solid black; + border-bottom: 1px solid black; + border-top: 0; + margin-bottom: 10px; + background-color: #eee; +} + +table.schema_oclasses td { + vertical-align: top; + text-align: left; + padding-left: 5px; +} + +table.schema_attr { + border: 1px solid black; +} + +table.schema_attr th { + background-color: #F3F3F3; + padding: 5px; + color: black; + font-weight: bold; + font-size: 125%; +} + +table.schema_attr td { + padding: 5px; + vertical-align: top; +} + +table.schema_attr tr.even { + background-color: #eee; +} + +table.schema_attr tr.odd { + background-color: #ccc; +} + +table.schema_attr tr.highlight{ + background-color: #bcd; + font-weight: Bold; +} + +ul.schema { + margin: 5px; + margin-left: 0px; + padding-left: 20px; +} + +ul.schema li { + margin-left: 0px; + padding-left: 0px; +} + +ul.schema li small { + font-size: 75%; + color: #777; +} + +ul.schema li small a { + color: #77c; +} + +h4.schema_oclass { + background: #F3F3F3; + padding: 5px; + margin: 0px; + margin-top: 8px; + font-weight: normal; + border: 1px solid black; + font-size: 140%; + color: black; +} + +h4.schema_oclass_sub { + background: #dde; + border: 1px solid black; + border-top: 0px; + font-weight: normal; + margin: 0px; + padding: 2px; + padding-left: 5px; + font-size: 80%; +} + + +/** colors for account types */ + +.alias-border { border-color:#af8800; } +.alias-bright { background:#fff3c8 !important; } +.alias-dark { background-color:#ffe27f !important; } + +.asteriskExt-border { border-color:#af8800; } +.asteriskExt-bright { background:#fff3c8 !important; } +.asteriskExt-dark { background-color:#ffe27f !important; } + +.automountType-border { border-color:#7167bf; } +.automountType-bright { background:#d6e3ff !important; } +.automountType-dark { background-color:#a8c3ff !important; } + +.dhcp-border { border-color:#527510; } +.dhcp-bright { background:#d4f19b !important; } +.dhcp-dark { background-color:#9fc653 !important; } + +.gon-border { border-color:#7167bf; } +.gon-bright { background:#d6e3ff !important; } +.gon-dark { background-color:#a8c3ff !important; } + +.group-border { border-color:#7167bf; } +.group-bright { background:#d6e3ff !important; } +.group-dark { background-color:#a8c3ff !important; } + +.host-border { border-color:#911a1a; } +.host-bright { background:#ffe2dd !important; } +.host-dark { background-color:#ffc4ba !important; } + +.mailAlias-border { border-color:#af8800; } +.mailAlias-bright { background:#fff3c8 !important; } +.mailAlias-dark { background-color:#ffe27f !important; } + +.netgroup-border { border-color:#7167bf; } +.netgroup-bright { background:#d6e3ff !important; } +.netgroup-dark { background-color:#a8c3ff !important; } + +.nisObjectType-border { border-color:#7167bf; } +.nisObjectType-bright { background:#d6e3ff !important; } +.nisObjectType-dark { background-color:#a8c3ff !important; } + +.ppolicyType-border { border-color:#af8800; } +.ppolicyType-bright { background:#fff3c8 !important; } +.ppolicyType-dark { background-color:#ffe27f !important; } + +.smbDomain-border { border-color:#1d993e; } +.smbDomain-bright { background:#c9ddd2 !important; } +.smbDomain-dark { background-color:#a8ddbf !important; } + +.sudo-border { border-color:#9b8523; } +.sudo-bright { background:#fffde2 !important; } +.sudo-dark { background-color:#fff2a3 !important; } + +.user-border { border-color:#9b8523; } +.user-bright { background: #fffde2 !important; } +.user-dark { background-color:#fff2a3 !important; } + +.zarafaAddressListType-border { border-color:#7167bf; } +.zarafaAddressListType-bright { background:#d6e3ff !important; } +.zarafaAddressListType-dark { background-color:#a8c3ff !important; } + +.zarafaDynamicGroupType-border { border-color:#7167bf; } +.zarafaDynamicGroupType-bright { background:#d6e3ff !important; } +.zarafaDynamicGroupType-dark { background-color:#a8c3ff !important; } + +.pykotaPrinterType-border { border-color:#911a1a; } +.pykotaPrinterType-bright { background:#ffe2dd !important; } +.pykotaPrinterType-dark { background-color:#ffc4ba !important; } + +.pykotaBillingCodeType-border { border-color:#527510; } +.pykotaBillingCodeType-bright { background:#d4f19b !important; } +.pykotaBillingCodeType-dark { background-color:#9fc653 !important; } + +.bind-border { border-color:#32768b; } +.bind-bright { background:#b6eeff !important; } +.bind-dark { background-color:#80e0e1 !important; } + +.kolabSharedFolderType-border { border-color:#32768b; } +.kolabSharedFolderType-bright { background:#b6eeff !important; } +.kolabSharedFolderType-dark { background-color:#80e0e1 !important; } + +.oracleContextType-border { border-color:#32768b; } +.oracleContextType-bright { background:#b6eeff !important; } +.oracleContextType-dark { background-color:#80e0e1 !important; } + diff --git a/lam/style/images/animated-overlay.gif b/lam/style/images/animated-overlay.gif new file mode 100644 index 00000000..d441f75e Binary files /dev/null and b/lam/style/images/animated-overlay.gif differ diff --git a/lam/style/images/pbar-ani.gif b/lam/style/images/pbar-ani.gif new file mode 100644 index 00000000..cb59a04f Binary files /dev/null and b/lam/style/images/pbar-ani.gif differ diff --git a/lam/style/images/ui-anim_basic_16x16.gif b/lam/style/images/ui-anim_basic_16x16.gif new file mode 100644 index 00000000..085ccaec Binary files /dev/null and b/lam/style/images/ui-anim_basic_16x16.gif differ diff --git a/lam/style/images/ui-bg_flat_0_aaaaaa_40x100.png b/lam/style/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 00000000..9e5261a1 Binary files /dev/null and b/lam/style/images/ui-bg_flat_0_aaaaaa_40x100.png differ diff --git a/lam/style/images/ui-bg_flat_75_ffffff_40x100.png b/lam/style/images/ui-bg_flat_75_ffffff_40x100.png new file mode 100644 index 00000000..262b9f46 Binary files /dev/null and b/lam/style/images/ui-bg_flat_75_ffffff_40x100.png differ diff --git a/lam/style/images/ui-bg_glass_55_fbf9ee_1x400.png b/lam/style/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 00000000..8c0697cb Binary files /dev/null and b/lam/style/images/ui-bg_glass_55_fbf9ee_1x400.png differ diff --git a/lam/style/images/ui-bg_glass_65_ffffff_1x400.png b/lam/style/images/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 00000000..314778ea Binary files /dev/null and b/lam/style/images/ui-bg_glass_65_ffffff_1x400.png differ diff --git a/lam/style/images/ui-bg_glass_75_dadada_1x400.png b/lam/style/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 00000000..785165ee Binary files /dev/null and b/lam/style/images/ui-bg_glass_75_dadada_1x400.png differ diff --git a/lam/style/images/ui-bg_glass_75_e6e6e6_1x400.png b/lam/style/images/ui-bg_glass_75_e6e6e6_1x400.png new file mode 100644 index 00000000..1367a16c Binary files /dev/null and b/lam/style/images/ui-bg_glass_75_e6e6e6_1x400.png differ diff --git a/lam/style/images/ui-bg_glass_95_fef1ec_1x400.png b/lam/style/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 00000000..c8203d83 Binary files /dev/null and b/lam/style/images/ui-bg_glass_95_fef1ec_1x400.png differ diff --git a/lam/style/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/lam/style/images/ui-bg_highlight-soft_75_cccccc_1x100.png new file mode 100644 index 00000000..e1bc1e9f Binary files /dev/null and b/lam/style/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ diff --git a/lam/style/images/ui-bg_highlight-soft_75_cccccc_1x150-vertical.png b/lam/style/images/ui-bg_highlight-soft_75_cccccc_1x150-vertical.png new file mode 100644 index 00000000..69ae6eaf Binary files /dev/null and b/lam/style/images/ui-bg_highlight-soft_75_cccccc_1x150-vertical.png differ diff --git a/lam/style/images/ui-icons_222222_256x240.png b/lam/style/images/ui-icons_222222_256x240.png new file mode 100644 index 00000000..0de62932 Binary files /dev/null and b/lam/style/images/ui-icons_222222_256x240.png differ diff --git a/lam/style/images/ui-icons_2e83ff_256x240.png b/lam/style/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 00000000..513a241d Binary files /dev/null and b/lam/style/images/ui-icons_2e83ff_256x240.png differ diff --git a/lam/style/images/ui-icons_454545_256x240.png b/lam/style/images/ui-icons_454545_256x240.png new file mode 100644 index 00000000..95032e44 Binary files /dev/null and b/lam/style/images/ui-icons_454545_256x240.png differ diff --git a/lam/style/images/ui-icons_888888_256x240.png b/lam/style/images/ui-icons_888888_256x240.png new file mode 100644 index 00000000..8449bebc Binary files /dev/null and b/lam/style/images/ui-icons_888888_256x240.png differ diff --git a/lam/style/images/ui-icons_cd0a0a_256x240.png b/lam/style/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 00000000..e28c9249 Binary files /dev/null and b/lam/style/images/ui-icons_cd0a0a_256x240.png differ diff --git a/lam/style/lam-images/headerLine.png b/lam/style/lam-images/headerLine.png new file mode 100644 index 00000000..0653673e Binary files /dev/null and b/lam/style/lam-images/headerLine.png differ diff --git a/lam/style/loading.gif b/lam/style/loading.gif new file mode 100644 index 00000000..6fba7760 Binary files /dev/null and b/lam/style/loading.gif differ diff --git a/lam/templates/.htaccess b/lam/templates/.htaccess new file mode 100644 index 00000000..5a928f6d --- /dev/null +++ b/lam/templates/.htaccess @@ -0,0 +1 @@ +Options -Indexes diff --git a/lam/templates/3rdParty/pla/config/config.php b/lam/templates/3rdParty/pla/config/config.php new file mode 100644 index 00000000..d7a3cea1 --- /dev/null +++ b/lam/templates/3rdParty/pla/config/config.php @@ -0,0 +1,74 @@ +decrypt_login(); + +$servers = new Datastore(); +$servers->newServer('ldap_pla'); +$servers->setValue('server','name',null); +$servers->setValue('server','host',$lamConfig->get_ServerURL()); +$servers->setValue('server','base',array($lamConfig->get_Suffix('tree'))); +$servers->setValue('login','auth_type','config'); +$servers->setValue('login','bind_id',$lamLogin[0]); +$servers->setValue('login','bind_pass',$lamLogin[1]); +if ($lamConfig->getUseTLS() == 'yes') { + $servers->setValue('server','tls',true); +} +$config->custom->commands['cmd'] = array( + 'entry_internal_attributes_show' => true, + 'entry_refresh' => true, + 'oslinks' => false, + 'switch_template' => false +); +$config->custom->commands['script'] = array( + 'add_attr_form' => true, + 'add_oclass_form' => true, + 'add_value_form' => true, + 'collapse' => true, + 'compare' => true, + 'compare_form' => true, + 'copy' => true, + 'copy_form' => true, + 'create' => true, + 'create_confirm' => true, + 'delete' => true, + 'delete_attr' => true, + 'delete_form' => true, + 'draw_tree_node' => true, + 'expand' => true, + 'export' => true, + 'export_form' => true, + 'import' => true, + 'import_form' => true, + 'login' => true, + 'logout' => true, + 'login_form' => true, + 'mass_delete' => true, + 'mass_edit' => true, + 'mass_update' => true, + 'modify_member_form' => true, + 'monitor' => false, + 'purge_cache' => false, + 'query_engine' => true, + 'rename' => true, + 'rename_form' => true, + 'rdelete' => true, + 'refresh' => true, + 'schema' => false, + 'server_info' => false, + 'show_cache' => false, + 'template_engine' => true, + 'update_confirm' => true, + 'update' => true +); +$config->custom->appearance['show_schema_link'] = false; +if (!checkIfWriteAccessIsAllowed()) { + $servers->setValue('server','read_only',true); +} +$servers->setValue('unique','attrs',array()); +$servers->setValue('server','custom_sys_attrs', array('creatorsName', 'createTimestamp', 'modifiersName', + 'modifyTimestamp', 'hasSubordinates', 'pwdChangedTime')); +$config->custom->confirm['copy'] = false; +?> diff --git a/lam/templates/3rdParty/pla/htdocs/add_attr_form.php b/lam/templates/3rdParty/pla/htdocs/add_attr_form.php new file mode 100644 index 00000000..a0a2996a --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/add_attr_form.php @@ -0,0 +1,185 @@ +dnExists($request['dn'])) + error(sprintf(_('The entry (%s) does not exist.'),$request['dn']),'error','index.php'); + +$request['page'] = new TemplateRender($app['server']->getIndex(),get_request('template','REQUEST',false,null)); +$request['page']->setDN($request['dn']); +$request['page']->accept(true); +$request['template'] = $request['page']->getTemplate(); + +# Render the form +if (get_request('meth','REQUEST') != 'ajax') { + $request['page']->drawTitle(sprintf('%s %s',_('Add new attribute'),get_rdn($request['dn']))); + $request['page']->drawSubTitle(); + + echo '
    '; + if (count($request['template']->getAvailAttrs())) { + # If we have more than the configured entries, we'll separate our input to the old ways. + if (count($request['template']->getAvailAttrs()) > $_SESSION[APPCONFIG]->getValue('appearance','max_add_attrs')) { + $attr = array(); + $attr['avail'] = array(); + $attr['binary'] = array(); + + foreach ($request['template']->getAvailAttrs() as $attribute) + if ($app['server']->isAttrBinary($attribute->getName())) + array_push($attr['binary'],$attribute); + else + array_push($attr['avail'],$attribute); + + if (count($attr['avail']) > 0) { + echo '
    '; + echo _('Add new attribute'); + echo '
    '; + echo '
    '; + + echo '
    '; + echo '
    '; + + if ($_SESSION[APPCONFIG]->getValue('confirm','update')) + echo ''; + else + echo ''; + + printf('',$app['server']->getIndex()); + printf('',htmlspecialchars($request['dn'])); + + echo ''; + + echo ''; + printf('',_('Add')); + echo '
    '; + echo '
    '; + + } else { + echo '
    '; + printf('(%s)',_('no new attributes available for this entry')); + } + + if (count($attr['binary']) > 0) { + echo '
    '; + echo _('Add new binary attribute'); + echo '
    '; + echo '
    '; + + echo ''; + echo '
    '; + echo '
    '; + + if ($_SESSION[APPCONFIG]->getValue('confirm','update')) + echo ''; + else + echo ''; + + printf('',$app['server']->getIndex()); + printf('',$request['dn']); + echo ''; + + echo ''; + + echo ''; + printf('',_('Add')); + + if (! ini_get('file_uploads')) + printf('
    %s
    ', + _('Your PHP configuration has disabled file uploads. Please check php.ini before proceeding.')); + + else + printf('
    %s: %s
    ',_('Maximum file size'),ini_get('upload_max_filesize')); + + echo '
    '; + echo '
    '; + + } else { + echo '
    '; + printf('(%s)',_('no new binary attributes available for this entry')); + } + + } else { + echo '
    '; + + $request['page']->drawFormStart(); + printf('',$app['server']->getIndex()); + printf('',htmlspecialchars($request['dn'])); + + echo ''; + + foreach ($request['template']->getAvailAttrs() as $attribute) + $request['page']->draw('Template',$attribute); + + $request['page']->drawFormSubmitButton(); + echo '
    '; + + $request['page']->drawFormEnd(); + } + + } else { + printf('(%s)',_('No new attributes available for this entry')); + } + + echo '
    '; + +# The ajax addition (it is going into an existing TemplateRendered page +} else { + # Put our DIV there for the callback + echo '
    '; + printf('%s',_('Add new attribute')); + echo '
    '; + echo ''; + echo ''; + echo '
    '; + + printf(''; + + echo '
    '; + echo '
    '; + echo '
    '; +} +?> diff --git a/lam/templates/3rdParty/pla/htdocs/add_oclass_form.php b/lam/templates/3rdParty/pla/htdocs/add_oclass_form.php new file mode 100644 index 00000000..87d61c5f --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/add_oclass_form.php @@ -0,0 +1,113 @@ +dnExists($request['dn'])) + error(sprintf(_('The entry (%s) does not exist.'),$request['dn']),'error','index.php'); + +$request['page'] = new TemplateRender($app['server']->getIndex(),get_request('template','REQUEST',false,null)); +$request['page']->setDN($request['dn']); +$request['page']->accept(true); +$request['template'] = $request['page']->getTemplate(); + +$attribute_factory = new AttributeFactory(); + +# Grab the required attributes for the new objectClass +$ldap = array(); +$ldap['attrs']['must'] = array(); + +foreach ($request['template']->getAttribute('objectclass')->getValues() as $oclass_name) { + # Exclude "top" if its there. + if (! strcasecmp('top',$oclass_name)) + continue; + + if ($soc = $app['server']->getSchemaObjectClass($oclass_name)) + $ldap['attrs']['must'] = array_merge($ldap['attrs']['must'],$soc->getMustAttrNames(true)); +} + +$ldap['attrs']['must'] = array_unique($ldap['attrs']['must']); + +/* Build a list of the attributes that this new objectClass requires, + * but that the object does not currently contain */ +$ldap['attrs']['need'] = array(); +foreach ($ldap['attrs']['must'] as $attr) + if (is_null($request['template']->getAttribute($attr))) + array_push($ldap['attrs']['need'],$attribute_factory->newAttribute($attr,array('values'=>array()),$app['server']->getIndex())); + +# Mark all the need attributes as shown +foreach ($ldap['attrs']['need'] as $index => $values) + $ldap['attrs']['need'][$index]->show(); + +if (count($ldap['attrs']['need']) > 0) { + $request['page']->drawTitle(sprintf(_('Add new object class to %s'),get_rdn($request['dn']))); + $request['page']->drawSubTitle(); + + echo '
    '; + echo '' . _('This change requires to add new attributes.') . ''; + + echo '

    '; + + echo '
    '; + echo '
    '; + + if ($_SESSION[APPCONFIG]->getValue('confirm','update')) + echo ''; + else + echo ''; + + printf('',$app['server']->getIndex()); + printf('',htmlspecialchars($request['dn'])); + echo '
    '; + + echo ''; + printf('',_('New required attributes')); + + $counter = 0; + echo ''; + + foreach ($ldap['attrs']['need'] as $count => $attr) + $request['page']->draw('Template',$attr); + + echo '
    %s
    '; + foreach ($request['template']->getAttribute('objectclass')->getValues() as $value) + $request['page']->draw('HiddenValue',$request['template']->getAttribute('objectclass'),$counter++); + echo '
    '; + + printf('

    ',_('Add object class and attributes')); + echo '
    '; + echo '
    '; + +# There are no other required attributes, so we just need to add the objectclass to the DN. +} else { + $result = $app['server']->modify($request['dn'],$request['template']->getLDAPmodify()); + + if ($result) { + $href = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s&modified_attrs[]=objectclass', + $app['server']->getIndex(),rawurlencode($request['dn'])); + + if (get_request('meth','REQUEST') == 'ajax') + $href .= '&meth=ajax'; + + header(sprintf('Location: %s',$href)); + die(); + } +} +?> diff --git a/lam/templates/3rdParty/pla/htdocs/add_value_form.php b/lam/templates/3rdParty/pla/htdocs/add_value_form.php new file mode 100644 index 00000000..66d9757d --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/add_value_form.php @@ -0,0 +1,173 @@ +dnExists($request['dn'])) + error(sprintf(_('The entry (%s) does not exist.'),$request['dn']),'error','index.php'); + +$request['page'] = new TemplateRender($app['server']->getIndex(),get_request('template','REQUEST',false,null)); +$request['page']->setDN($request['dn']); +$request['page']->accept(true); +$request['template'] = $request['page']->getTemplate(); + +/* +if ($request['attribute']->isReadOnly()) + error(sprintf(_('The attribute (%s) is in readonly mode.'),$request['attr']),'error','index.php'); +*/ + +# Render the form +if (! strcasecmp($request['attr'],'objectclass') || get_request('meth','REQUEST') != 'ajax') { + # Render the form. + $request['page']->drawTitle(sprintf(_('Add new %s value to %s'), htmlspecialchars($request['attr']),htmlspecialchars(get_rdn($request['dn'])))); + $request['page']->drawSubTitle(); + + if (! strcasecmp($request['attr'],'objectclass')) { + echo '
    '; + echo '
    '; + echo ''; + + } else { + echo ''; + echo '
    '; + if ($_SESSION[APPCONFIG]->getValue('confirm','update')) + echo ''; + else + echo ''; + } + + printf('',$app['server']->getIndex()); + printf('',htmlspecialchars($request['dn'])); + echo '
    '; + + echo ''; + echo ''; + + $request['attribute'] = $request['template']->getAttribute($request['attr']); + $request['count'] = $request['attribute']->getValueCount(); + + if ($request['count']) { + printf('', + $request['count'],$request['attribute']->getFriendlyName()); + + echo ''; + + } else { + printf('', + $request['attribute']->getFriendlyName()); + echo ''; + } + + echo ''; + + echo ''; + printf('',_('Enter the values you would like to add:')); + echo ''; + echo ''; + + if ($_SESSION[APPCONFIG]->getValue('appearance','show_hints')) + printf('', + IMGDIR,_('Note: You may be required to enter new attributes that these object classes require')); + + echo '
    ' . _('Current list of %s values for attribute %s:') . ''; + + # Display current attribute values + echo '
    '; + for ($i=0;$i<$request['count'];$i++) { + if ($i > 0) + echo '
    '; + $request['page']->draw('CurrentValue',$request['attribute'],$i); + $request['page']->draw('HiddenValue',$request['attribute'],$i); + } + echo '
    '; + + echo '
    ' . _('No current value for attribute %s.') . '

    %s'; + + if (! strcasecmp($request['attr'],'objectclass')) { + # If our attr is an objectClass, fetch all available objectClasses and remove those from the list that are already defined in the entry + $socs = $app['server']->SchemaObjectClasses(); + + foreach ($request['attribute']->getValues() as $oclass) + unset($socs[strtolower($oclass)]); + + # Draw objectClass selection + echo ''; + echo '
    '; + echo ''; + echo '
    '; + + echo '
    '; + printf('', + _('Add new object class'), + (isAjaxEnabled() ? sprintf('onclick="return ajSUBMIT(\'BODY\',document.getElementById(\'entry_form\'),\'%s\');"',_('Updating object')) : '')); + echo '
    '; + echo '

    Hint%s
    '; + echo ''; + + } else { + # Draw a blank field + echo '
    '; + $request['page']->draw('FormValue',$request['attribute'],$request['count']); + echo '
    '; + + $sattr = $app['server']->getSchemaAttribute($request['attr']); + + if ($sattr->getDescription()) + printf('%s: %s
    ',_('Description'),$sattr->getDescription()); + + if ($sattr->getType()) + printf('%s: %s
    ',_('Syntax'),$sattr->getType()); + + if ($sattr->getMaxLength()) + printf('' . _('Maximum length: %s characters') . '
    ', + number_format($sattr->getMaxLength())); + + echo '
    '; + printf('',_('Add value')); + echo '
    '; + + echo ''; + echo ''; + echo ''; + } + +} else { + if (is_null($attribute = $request['template']->getAttribute($request['attr']))) { + $request['template']->addAttribute($request['attr'],array('values'=>array())); + $attribute = $request['template']->getAttribute($request['attr']); + $attribute->show(); + + echo ''; + $request['page']->draw('Template',$attribute); + $request['page']->draw('Javascript',$attribute); + echo '
    '; + + } else { + $request['count'] = $attribute->getValueCount(); + $request['page']->draw('FormReadWriteValue',$attribute,$request['count']); + } +} +?> diff --git a/lam/templates/3rdParty/pla/htdocs/cmd.php b/lam/templates/3rdParty/pla/htdocs/cmd.php new file mode 100644 index 00000000..d4d0a0f3 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/cmd.php @@ -0,0 +1,76 @@ +getIndex()); + +# See if we can render the command +if (trim($www['cmd'])) { + # If this is a READ-WRITE operation, the LDAP server must not be in READ-ONLY mode. + if ($app['server']->isReadOnly() && ! in_array(get_request('cmd','REQUEST'),$app['readwrite_cmds'])) + error(('You cannot perform updates while server is in read-only mode'),'error','index.php'); + + # If this command has been disabled by the config. + if (! $_SESSION[APPCONFIG]->isCommandAvailable('script',$www['cmd'])) { + system_message(array('title'=>('Command disabled by the server configuration'), + ('Error'),'body'=>sprintf('%s: %s.',('The command could not be run'),htmlspecialchars($www['cmd'])),'type'=>'error'),'index.php'); + + $app['script_cmd'] = null; + } +} + +if ($app['script_cmd']) + include $app['script_cmd']; + +# Refresh a frame - this is so that one frame can trigger another frame to be refreshed. +if (isAjaxEnabled() && get_request('refresh','REQUEST') && get_request('refresh','REQUEST') != get_request('frame','REQUEST')) { + echo ''; +} + +# Capture the output and put into the body of the page. +$www['body'] = new block(); +$www['body']->SetBody(ob_get_contents()); +$www['page']->block_add('body',$www['body']); +ob_end_clean(); + +if ($www['meth'] == 'ajax') + $www['page']->show(get_request('frame','REQUEST',false,'BODY'),true,get_request('raw','REQUEST',false,false)); +else + $www['page']->display(); +?> diff --git a/lam/templates/3rdParty/pla/htdocs/collapse.php b/lam/templates/3rdParty/pla/htdocs/collapse.php new file mode 100644 index 00000000..1eb4ced4 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/collapse.php @@ -0,0 +1,27 @@ +getIndex(),'tree'); +$entry = $tree->getEntry($dn); +$entry->close(); +set_cached_item($app['server']->getIndex(),'tree','null',$tree); + +header(sprintf('Location:index.php?server_id=%s&junk=%s#%s', + $app['server']->getIndex(),random_junk(),htmlid($app['server']->getIndex(),$dn))); +die(); +?> diff --git a/lam/templates/3rdParty/pla/htdocs/common.php b/lam/templates/3rdParty/pla/htdocs/common.php new file mode 100644 index 00000000..de4122c5 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/common.php @@ -0,0 +1,14 @@ + diff --git a/lam/templates/3rdParty/pla/htdocs/compare.php b/lam/templates/3rdParty/pla/htdocs/compare.php new file mode 100644 index 00000000..ec204e1b --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/compare.php @@ -0,0 +1,188 @@ +getServer(get_request('server_id_src')); +$ldap['DST'] = $_SESSION[APPCONFIG]->getServer(get_request('server_id_dst')); + +if (! $ldap['SRC']->dnExists($request['dnSRC'])) + error(sprintf('%s (%s)',_('No such entry.'),pretty_print_dn($request['dnSRC'])),'error','index.php'); + +if (! $ldap['DST']->dnExists($request['dnDST'])) + error(sprintf('%s (%s)',_('No such entry.'),pretty_print_dn($request['dnDST'])),'error','index.php'); + +$request['pageSRC'] = new PageRender($ldap['SRC']->getIndex(),get_request('template','REQUEST',false,'none')); +$request['pageSRC']->setDN($request['dnSRC']); +$request['pageSRC']->accept(); +$request['templateSRC'] = $request['pageSRC']->getTemplate(); + +$request['pageDST'] = new PageRender($ldap['DST']->getIndex(),get_request('template','REQUEST',false,'none')); +$request['pageDST']->setDN($request['dnDST']); +$request['pageDST']->accept(); +$request['templateDST'] = $request['pageDST']->getTemplate(); + +# Get a list of all attributes. +$attrs_all = array_unique(array_merge($request['templateSRC']->getAttributeNames(),$request['templateDST']->getAttributeNames())); + +$request['pageSRC']->drawTitle(_('Comparing the following DNs')); + +echo '
    '; + +echo ''; +echo ''; + +$href = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s', + $ldap['SRC']->getIndex(),rawurlencode($request['dnSRC'])); +printf('', + _('DN'), + htmlspecialchars($href),$request['dnSRC']); + +$href = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s', + $ldap['DST']->getIndex(),rawurlencode($request['dnDST'])); +printf('', + _('DN'), + htmlspecialchars($href),$request['dnDST']); + +echo ''; + +echo ''; +echo ''; +echo ''; + +if (! is_array($attrs_all) || ! count($attrs_all)) { + printf('',_('This entry has no attributes')); + print '
    %s: %s%s: %s
    '; +echo '
    '; +echo '
    '; +printf('',$app['server']->getIndex()); +printf('',$ldap['DST']->getIndex()); +printf('',$ldap['SRC']->getIndex()); +printf('',htmlspecialchars($request['dnDST'])); +printf('',htmlspecialchars($request['dnSRC'])); +printf('',_('Switch entries')); +echo '
    '; +echo '
    '; +echo '
    (%s)
    '; + + return; +} + +sort($attrs_all); + +# Work through each of the attributes. +foreach ($attrs_all as $attr) { + # Has the config.php specified that this attribute is to be hidden or shown? + if ($ldap['SRC']->isAttrHidden($attr) || $ldap['DST']->isAttrHidden($attr)) + continue; + + $attributeSRC = $request['templateSRC']->getAttribute($attr); + $attributeDST = $request['templateDST']->getAttribute($attr); + + # Get the values and see if they are the same. + if ($attributeSRC && $attributeDST && ($attributeSRC->getValues() == $attributeDST->getValues())) + echo ''; + else + echo ''; + + foreach (array('src','dst') as $side) { + # If we are on the source side, show the attribute name. + switch ($side) { + case 'src': + if ($attributeSRC) { + echo ''; + $request['pageSRC']->draw('Name',$attributeSRC); + echo ''; + + if ($request['pageSRC']->getServerID() == $request['pageDST']->getServerID()) + echo ' '; + + else { + echo ''; + $request['pageSRC']->draw('Notes',$attributeSRC); + echo ''; + } + + } else { + echo ' '; + } + + break; + + case 'dst': + if ($attributeDST) { + if ($attributeSRC && ($request['pageSRC']->getServerID() == $request['pageDST']->getServerID())) + echo ' '; + + else { + echo ''; + $request['pageDST']->draw('Name',$attributeDST); + echo ''; + } + + echo ''; + $request['pageDST']->draw('Notes',$attributeDST); + echo ''; + + } else { + echo ' '; + } + + break; + } + } + + echo ''; + echo "\n\n"; + + # Get the values and see if they are the same. + if ($attributeSRC && $attributeDST && ($attributeSRC->getValues() == $attributeDST->getValues())) + echo ''; + else + echo ''; + + foreach (array('src','dst') as $side) { + echo ''; + echo ''; + echo '
    '; + + switch ($side) { + case 'src': + + if ($attributeSRC && count($attributeSRC->getValues())) + $request['pageSRC']->draw('CurrentValues',$attributeSRC); + else + echo ' '; + + break; + + case 'dst': + if ($attributeDST && count($attributeDST->getValues())) + $request['pageDST']->draw('CurrentValues',$attributeDST); + else + echo ' '; + + break; + } + + echo '
    '; + } + + echo ''; +} +echo ''; +?> diff --git a/lam/templates/3rdParty/pla/htdocs/compare_form.php b/lam/templates/3rdParty/pla/htdocs/compare_form.php new file mode 100644 index 00000000..e519c965 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/compare_form.php @@ -0,0 +1,65 @@ +dnExists($request['dn'])) + error(sprintf(_('The entry (%s) does not exist.'),$request['dn']),'error','index.php'); + +$request['page'] = new PageRender($app['server']->getIndex(),get_request('template','REQUEST',false,'none')); +$request['page']->setDN($request['dn']); +$request['page']->accept(); + +# Render the form +$request['page']->drawTitle(sprintf(_('Compare another DN with %s'),get_rdn($request['dn']))); +$request['page']->drawSubTitle(); + +printf('',JSDIR); +echo '
    '; +printf('%s %s %s
    ',_('Compare'),get_rdn($request['dn']),_('with ')); +echo '
    '; + +echo '
    '; +echo '
    '; +echo ''; +printf('',$app['server']->getIndex()); +printf('',$app['server']->getIndex()); +printf('',htmlspecialchars($request['dn'])); +echo '
    '; +echo "\n"; + +echo ''; + +echo ''; +printf('', + _('Compare this DN with another'),_('Destination DN')); +echo ''; +echo ''; +echo "\n"; + +printf('',server_select_list($app['server']->getIndex(),true,'server_id_dst')); +echo "\n"; + +printf('',_('Compare')); +echo "\n"; + +echo '
    %s:'; +echo ''; +draw_chooser_link('compare_form','dn_dst','true',''); +echo '
    %s
    '; +echo '
    '; +?> diff --git a/lam/templates/3rdParty/pla/htdocs/copy.php b/lam/templates/3rdParty/pla/htdocs/copy.php new file mode 100644 index 00000000..ba83507c --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/copy.php @@ -0,0 +1,203 @@ +getServer(get_request('server_id_src')); +$ldap['DST'] = $_SESSION[APPCONFIG]->getServer(get_request('server_id_dst')); + +# Error checking +if (! trim($request['dnDST'])) + error(('You left the destination DN blank.'),'error','index.php'); + +if ($ldap['DST']->isReadOnly()) + error(('Destination server is currently READ-ONLY.'),'error','index.php'); + +if ($ldap['DST']->dnExists($request['dnDST'])) + error(sprintf(_('The destination entry (%s) already exists.'),pretty_print_dn($request['dnDST'])),'error','index.php'); + +if (! $ldap['DST']->dnExists($ldap['DST']->getContainer($request['dnDST']))) + error(sprintf(_('The container you specified (%s) does not exist. Please try again.'), + pretty_print_dn($ldap['DST']->getContainer($request['dnDST']))),'error','index.php'); + +if (pla_compare_dns($request['dnSRC'],$request['dnDST']) == 0 && $ldap['SRC']->getIndex() == $ldap['DST']->getIndex()) + error(_('The source and destination DN are the same.'),'error','index.php'); + +$request['recursive'] = (get_request('recursive') == 'on') ? true : false; +$request['remove'] = (get_request('remove') == 'yes') ? true : false; + +if ($request['recursive']) { + $filter = get_request('filter','POST',false,'(objectClass=*)'); + + # Build a tree similar to that of the tree browser to give to r_copy_dn + $ldap['tree'] = array(); + printf('

    %s %s

    ',_('Copying'),$request['dnSRC']); + printf('

    %s

    ',_('Recursive copy progress')); + print '

    '; + + print ''; + printf ('%s...',_('Building snapshot of tree to copy')); + + $ldap['tree'] = build_tree($ldap['SRC'],$request['dnSRC'],array(),$filter); + printf('%s
    ',_('Success')); + + # Prevent script from bailing early on a long delete + @set_time_limit(0); + + $copy_result = r_copy_dn($ldap['SRC'],$ldap['DST'],$ldap['tree'],$request['dnSRC'],$request['dnDST'],$request['remove']); + $copy_message = $copy_result; + print '
    '; + +} else { + if ($_SESSION[APPCONFIG]->getValue('confirm','copy')) { + $request['pageSRC'] = new TemplateRender($app['server']->getIndex(),get_request('template','REQUEST',false,null)); + $request['pageSRC']->setDN($request['dnSRC']); + $request['pageSRC']->accept(true); + + $request['pageDST'] = new TemplateRender($app['server']->getIndex(),get_request('template','REQUEST',false,'none')); + $request['pageDST']->setContainer($app['server']->getContainer($request['dnDST'])); + $request['pageDST']->accept(true); + + $request['templateSRC'] = $request['pageSRC']->getTemplate(); + $request['templateDST'] = $request['pageDST']->getTemplate(); + + $request['templateDST']->copy($request['templateSRC'],get_rdn($request['dnDST']),true); + + # Set all attributes with a values as shown, and remove the add value options + foreach ($request['templateDST']->getAttributes(true) as $sattribute) + if ($sattribute->getValues() && ! $sattribute->isInternal()) { + $sattribute->show(); + $sattribute->setMaxValueCount(count($sattribute->getValues())); + } + + $request['pageDST']->accept(); + + return; + + } else { + $copy_result = copy_dn($ldap['SRC'],$ldap['DST'],$request['dnSRC'],$request['dnDST'],$request['remove']); + + if ($copy_result) + $copy_message = sprintf(_('Operation successful. DN %s has been created.'), + $request['dnDST']); + else + $copy_message = sprintf(_('Operation not successful. DN %s has not been created.'), + $request['dnDST']); + } +} + +if ($copy_result) { + $redirect_url = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s&refresh=SID_%s_nodes&noheader=1', + $ldap['DST']->getIndex(),rawurlencode($request['dnDST']),$ldap['DST']->getIndex()); + + system_message(array( + 'title'=>_('Copy'), + 'body'=>$copy_message, + 'type'=>'info'), + $redirect_url); +} + +function r_copy_dn($serverSRC,$serverDST,$snapshottree,$dnSRC,$dnDST,$remove) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $copy_message = array(); + + $children = isset($snapshottree[$dnSRC]) ? $snapshottree[$dnSRC] : null; + + # If we have children, then we need to copy, then delete for a move + if (is_array($children) && count($children)) { + + $copy_result = copy_dn($serverSRC,$serverDST,$dnSRC,$dnDST,false); + + if (! $copy_result) + return false; + + array_push($copy_message,sprintf(_('Copy successful. DN %s has been created.'),$dnDST)); + + $hadError = false; + foreach ($children as $child_dn) { + $dnDST_new = sprintf('%s,%s',get_rdn($child_dn),$dnDST); + $copy_result = r_copy_dn($serverSRC,$serverDST,$snapshottree,$child_dn,$dnDST_new,$remove); + $copy_message = array_merge($copy_message,array_values($copy_result)); + + if (! $copy_result) + $hadError = true; + } + + if (! $hadError && $remove) { + $delete_result = $serverSRC->delete($dnSRC); + + if ($delete_result) + array_push($copy_message,sprintf(_('Delete successful: %s'),$dnSRC)); + } + + } else { + $copy_result = copy_dn($serverSRC,$serverDST,$dnSRC,$dnDST,$remove); + + if ($copy_result) + array_push($copy_message,sprintf(_('Operation successful. DN %s has been created.'),$dnDST)); + else + array_push($copy_message,sprintf(_('Operation not successful. DN %s has not been created.'),$dnDST)); + } + + return $copy_message; +} + +function copy_dn($serverSRC,$serverDST,$dnSRC,$dnDST,$remove) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $request = array(); + $request['pageSRC'] = new PageRender($serverSRC->getIndex(),get_request('template','REQUEST',false,'none')); + $request['pageSRC']->setDN($dnSRC); + $request['pageSRC']->accept(); + + $request['pageDST'] = new PageRender($serverDST->getIndex(),get_request('template','REQUEST',false,'none')); + $request['pageDST']->setContainer($serverDST->getContainer($dnDST)); + $request['pageDST']->accept(); + + $request['templateSRC'] = $request['pageSRC']->getTemplate(); + $request['templateDST'] = $request['pageDST']->getTemplate(); + $request['templateDST']->copy($request['pageSRC']->getTemplate(),get_rdn($dnDST,0)); + + # Create of move the entry + if ($remove) + return $serverDST->rename($request['templateSRC']->getDN(),$request['templateDST']->getRDN(),$serverDST->getContainer($dnDST),true); + else + return $serverDST->add($request['templateDST']->getDN(),$request['templateDST']->getLDAPadd()); +} + +function build_tree($server,$dn,$buildtree) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # We search all children, not only the visible children in the tree + $children = $server->getContainerContents($dn,null,0); + + if (count($children)) { + $buildtree[$dn] = $children; + foreach ($children as $child_dn) + $buildtree = build_tree($server,$child_dn,$buildtree); + } + + if (DEBUG_ENABLED) + debug_log('Returning (%s)',1,0,__FILE__,__LINE__,__METHOD__,$buildtree); + + return $buildtree; +} +?> diff --git a/lam/templates/3rdParty/pla/htdocs/copy_form.php b/lam/templates/3rdParty/pla/htdocs/copy_form.php new file mode 100644 index 00000000..cc77429a --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/copy_form.php @@ -0,0 +1,97 @@ +dnExists($request['dn'])) + error(sprintf(_('The entry (%s) does not exist.'),$request['dn']),'error','index.php'); + +$request['page'] = new PageRender($app['server']->getIndex(),get_request('template','REQUEST',false,'none')); +$request['page']->setDN($request['dn']); +$request['page']->accept(); + +# Render the form +$request['page']->drawTitle(sprintf('%s %s',_('Copy'),get_rdn($request['dn']))); +$request['page']->drawSubTitle(); + +printf('',JSDIR); +echo '
    '; +printf(_('Copy %s to a new object.') . '

    ',get_rdn($request['dn'])); +echo '
    '; + +echo '
    '; +echo '
    '; +echo ''; +printf('',$app['server']->getIndex()); +printf('',$app['server']->getIndex()); +printf('',htmlspecialchars($request['dn'])); +echo '
    '; +echo "\n"; + +echo ''; + +echo ''; +printf('', + _('The full DN of the new entry to be created when copying the source entry'),_('Destination DN')); +echo ''; +echo ''; +echo "\n"; + +echo "\n"; + +# We search all children, not only the visible children in the tree +$request['children'] = $app['server']->getContainerContents($request['dn']); + +if (count($request['children']) > 0) { + echo ''; + printf('',_('Recursive copy')); + echo '',_('Recursively copy all children of this object as well.')); + echo ''; + echo "\n"; + + echo ''; + printf('', + _('When performing a recursive copy, only copy those entries which match this filter.'),_('Filter')); + echo ''; + echo "\n"; + + echo ''; + printf('',_('Delete after copy (move):')); + echo ''; + echo "\n"; + +} else { + printf('',_('Delete after copy (move):')); +} +echo "\n"; + +printf('',_('Copy')); +echo "\n"; + +echo '
    %s:'; +printf('',htmlspecialchars($request['dn'])); +draw_chooser_link('copy_form','dn_dst','true',get_rdn($request['dn'])); +echo '
    :'; + printf('(%s)
    %s:'; + echo '
    %s'; + printf('(%s)',_('Make sure your filter (above) will select all child records.')); + echo '
    %s
    '; +echo '
    '; + +# Draw the javascrpt to enable/disable the filter field if this may be a recursive copy +if (count($request['children']) > 0) + printf('',JSDIR); +?> diff --git a/lam/templates/3rdParty/pla/htdocs/create.php b/lam/templates/3rdParty/pla/htdocs/create.php new file mode 100644 index 00000000..34142f06 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/create.php @@ -0,0 +1,104 @@ +getIndex(),get_request('template','REQUEST',false,'none')); +$request['page']->setContainer(get_request('container','REQUEST',true)); +$request['page']->accept(); +$request['template'] = $request['page']->getTemplate(); + +if ((! $request['template']->getContainer() || ! $app['server']->dnExists($request['template']->getContainer())) && ! get_request('create_base')) + error(sprintf(_('The container you specified (%s) does not exist. Please try again.'),$request['template']->getContainer()),'error','index.php'); + +# Check if the container is a leaf - we shouldnt really return a hit here, the template engine shouldnt have allowed a user to attempt to create an entry... +$tree = get_cached_item($app['server']->getIndex(),'tree'); + +$request['container'] = $tree->getEntry($request['template']->getContainer()); +if (! $request['container'] && ! get_request('create_base')) { + $tree->addEntry($request['template']->getContainer()); + $request['container'] = $tree->getEntry($request['template']->getContainer()); +} + +# Check our RDN +if (! count($request['template']->getRDNAttrs())) + error(_('The were no attributes marked as an RDN attribute.'),'error','index.php'); +if (! $request['template']->getRDN()) + error(_('The RDN field is empty.'),'error','index.php'); + +# Some other attribute checking... +foreach ($request['template']->getAttributes() as $attribute) { + # Check that our Required Attributes have a value - we shouldnt really return a hit here, the template engine shouldnt have allowed this to slip through. + # @todo this isIgnoredAttr() function is missing? + if ($attribute->isRequired() && ! count($attribute->getValues()) && ! $app['server']->isIgnoredAttr($attr->getName())) + error(sprintf(_('You left the value blank for required attribute (%s).'), + $attribute->getName(false)),'error','index.php'); +} + +# Create the entry +$add_result = $app['server']->add($request['template']->getDN(),$request['template']->getLDAPadd()); + +if ($add_result) { + $action_number = $_SESSION[APPCONFIG]->getValue('appearance','action_after_creation'); + $href = sprintf('cmd=template_engine&server_id=%s',$app['server']->getIndex()); + + if ($request['redirect']) + $redirect_url = $request['redirect']; + + else if ($action_number == 2) + $redirect_url = sprintf('cmd.php?%s&template=%s&container=%s', + $href,'default',$request['template']->getContainerEncode()); + + else + $redirect_url = sprintf('cmd.php?%s&template=%s&dn=%s', + $href,'default',$request['template']->getDNEncode()); + + if ($action_number == 1 || $action_number == 2) + printf('',$redirect_url); + + if ($action_number == 1 || $action_number == 2) { + $create_message = sprintf(_('Creation successful. DN %s has been created.'), + $request['template']->getDN()); + + if (isAjaxEnabled()) + $redirect_url .= sprintf('&refresh=SID_%s_nodes&noheader=1',$app['server']->getIndex()); + + system_message(array( + 'title'=>_('Create object'), + 'body'=>$create_message, + 'type'=>'info'), + $redirect_url); + + } else { + $request['page']->drawTitle(_('Entry created')); + $request['page']->drawSubTitle(sprintf('%s: %s', + _('DN'),$request['template']->getDN())); + + echo '
    '; + echo '
    '; + printf('%s.', + htmlspecialchars($href),rawurlencode($request['template']->getDN()),_('Display the created entry')); + echo '
    '; + printf('%s.', + htmlspecialchars($href),rawurlencode($request['template']->getContainer()),_('Create another entry')); + echo '
    '; + } +} +?> diff --git a/lam/templates/3rdParty/pla/htdocs/create_confirm.php b/lam/templates/3rdParty/pla/htdocs/create_confirm.php new file mode 100644 index 00000000..225addf4 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/create_confirm.php @@ -0,0 +1,143 @@ +getIndex(),get_request('template','REQUEST',false,'none')); +$request['page']->setContainer(get_request('container','REQUEST',true)); +$request['page']->accept(); +$request['template'] = $request['page']->getTemplate(); + +if (! $request['template']->getContainer() || ! $app['server']->dnExists($request['template']->getContainer())) + error(sprintf(_('The container you specified (%s) does not exist. Please try again.'),$request['template']->getContainer()),'error','index.php'); + +# Check if the container is a leaf - we shouldnt really return a hit here, the template engine shouldnt have allowed a user to attempt to create an entry... +$tree = get_cached_item($app['server']->getIndex(),'tree'); + +$request['container'] = $tree->getEntry($request['template']->getContainer()); +if (! $request['container']) { + $tree->addEntry($request['template']->getContainer()); + $request['container'] = $tree->getEntry($request['template']->getContainer()); +} + +# Check our RDN +if (! count($request['template']->getRDNAttrs())) + error(_('The were no attributes marked as an RDN attribute.'),'error','index.php'); +if (! $request['template']->getRDN()) + error(_('The RDN field is empty.'),'error','index.php'); + +# Some other attribute checking... +foreach ($request['template']->getAttributes() as $attribute) { + # Check that our Required Attributes have a value - we shouldnt really return a hit here, the template engine shouldnt have allowed this to slip through. + # @todo this isIgnoredAttr() function is missing? + if ($attribute->isRequired() && ! count($attribute->getValues()) && ! $app['server']->isIgnoredAttr($attr->getName())) + error(sprintf(_('You left the value blank for required attribute (%s).'), + $attribute->getName(false)),'error','index.php'); +} + +# Check for unique attributes +$app['server']->checkUniqueAttrs($request['template']->getDN(),$request['template']->getLDAPadd()); + +$request['page']->drawTitle(_('Create object')); +$request['page']->drawSubTitle(sprintf('%s: %s   %s: %s', + _('Server'),$app['server']->getName(),_('Container'),$request['template']->getContainer())); + +# Confirm the creation +if (count($request['template']->getLDAPadd(true))) { + echo '
    '; + echo _('Do you want to create this entry?'); + echo '

    '; + echo '
    '; + + echo "\n\n"; + echo '
    '; + echo '
    '; + echo ''; + printf('',$app['server']->getIndex()); + printf('',$request['template']->getContainerEncode(false)); + printf('',$request['template']->getID()); + foreach ($request['template']->getRDNAttrs() as $rdn) + printf('',htmlspecialchars($rdn)); + echo "\n"; + + $request['page']->drawHiddenAttributes(); + echo '
    '; + + echo ''; + echo "\n"; + + printf('', + _('Attribute'),_('New value'),_('Skip')); + echo "\n\n"; + + $counter = 0; + printf('',$counter%2 ? 'even' : 'odd',htmlspecialchars($request['template']->getDN())); + + foreach ($request['template']->getLDAPadd(true) as $attribute) { + $counter++; + + printf('',$counter%2 ? 'even' : 'odd'); + printf('',$attribute->getFriendlyName()); + + # Show NEW Values + echo ''; + + # Show SKIP Option + $input_disabled = ''; + $input_onclick = ''; + + if ($attribute->isRequired()) + $input_disabled = 'disabled="disabled"'; + + printf('', + htmlspecialchars($attribute->getName()),htmlspecialchars($attribute->getName()),$input_disabled,$input_onclick); + echo ''; + echo "\n\n"; + } + + echo '
    %s%s%s
    %s
    %s'; + $request['page']->draw('CurrentValues',$attribute); + echo '
    '; + + echo '
    '; + echo '
    '; + + printf('', + _('Commit'), + (isAjaxEnabled() ? sprintf('onclick="return ajSUBMIT(\'BODY\',document.getElementById(\'create_form\'),\'%s\');"',_('Updating object')) : '')); + + printf('', + _('Cancel'), + (isAjaxEnabled() ? sprintf('onclick="return ajDISPLAY(\'BODY\',\'cmd=template_engine&server_id=%s&container=%s\',\'%s\');"',$app['server']->getIndex(),$request['template']->getContainer(),_('Retrieving DN')) : '')); + + echo '
    '; + echo '
    '; + echo '
    '; + +} else { + $href = sprintf('cmd=template_engine&server_id=%s&dn=%s', + $app['server']->getIndex(),$request['template']->getDNEncode()); + + echo '
    '; + echo _('You made no changes'); + + if (isAjaxEnabled()) + printf(' %s.', + htmlspecialchars($href),htmlspecialchars($href),_('Retrieving DN'),_('Go back')); + else + printf(' %s.',htmlspecialchars($href),_('Go back')); + + echo '
    '; +} +?> diff --git a/lam/templates/3rdParty/pla/htdocs/css/default/style.css b/lam/templates/3rdParty/pla/htdocs/css/default/style.css new file mode 100644 index 00000000..d1cfa4a8 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/css/default/style.css @@ -0,0 +1,915 @@ +/* $Header$ */ + +/* Global Page */ +table.page { + font-weight: normal; + color: #000000; + + font-family: "bitstream vera sans","luxi sans",verdana,geneva,arial,helvetica,sans-serif; + background-color: #F5F5F5; + font-size: 13px; + empty-cells: hide; +} + +/* Global Page - Defaults */ +/* A HREF Links */ +table.page a { + color: #0000AA; + text-decoration: none; +} + +table.page a:hover { + text-decoration: none; +} + +table.page a img { + border: 0px; +} + +/* Global Page - Logo & Title */ +table.page tr.head { + text-align: center; + color: #FFFFFF; + background-color: #001188; + font-weight: bold; + font-size: 11px; + height: 25px; +} + +table.page tr.head img.logo { + vertical-align: middle; + text-align: center; + + width: 100px; + height: 60px; +} + +table.page tr.pagehead { +} + +table.page tr.pagehead td.imagetop { + width: 100%; + vertical-align: bottom; + text-align: right; +} + +/* Global Page - Control Line */ +table.page tr.control td { + border-top: 1px solid #AAAACC; + border-bottom: 1px solid #AAAACC; +} + +/* Global Page - Control Line Menu Items */ +table.page table.control { + table-layout: fixed; + width: 100%; +} + +table.page table.control td { + border-top: 0px; + border-bottom: 0px; + padding: 0px; + padding-top: 2px; + padding-bottom: 2px; + text-align: left; + vertical-align: top; + font-size: 11px; + font-weight: bold; +} + +table.page table.control img { + width: 24px; + height: 24px; +} + +table.page table.control a { + color: #000000; +} + +table.page table.control a:hover { + text-decoration: none; + background-color: #FFFFFF; + color: #0000AA; +} + +table.page table.control td.spacer { + width: 20%; +} + +table.page table.control td.logo { + text-align: right; + width: 10%; +} + +table.page table.control td.logo img.logo { + vertical-align: middle; + text-align: right; + + width: 100px; + height: 50px; +} + +/* Global Page - LDAP Tree */ +table.page td.tree { + border-right: 1px solid #AAAACC; + vertical-align: top; + background-color: #F5F5F5; + width: 10%; +} + +/* Global Page - Main Body */ +table.page td.body { + vertical-align: top; + width: 100%; + background-color: #F5F5F5; +} + +/* Global Page - Main Body System Message */ +table.page table.sysmsg { + border-bottom: 2px solid #AAAACC; + width: 100%; +} + +table.page table.sysmsg td.head { + font-size: small; + text-align: left; + font-weight: bold; +} + +table.page table.sysmsg td.body { + font-weight: normal; +} + +table.page table.sysmsg td.icon { + text-align: center; + vertical-align: top; +} + +/* Global Page - Main Body */ +table.page table.body { + font-weight: normal; + background-color: #F5F5F5; + width: 100%; +} + +table.page table.body h3.title { + text-align: center; + margin: 0px; + padding: 10px; + color: black; + background-color: #F3F3F3; + border: 1px solid #CCCCCC; + font-weight: normal; + font-size: 150%; +} + +table.page table.body h3.subtitle { + text-align: center; + margin: 0px; + margin-bottom: 15px; + font-size: 13px; + color: black; + border-bottom: 1px solid #CCCCCC; + border-left: 1px solid #CCCCCC; + border-right: 1px solid #CCCCCC; + background: #F3F3F3; + padding: 4px; + font-weight: normal; +} + +table.page table.body td.spacer { + border-top: 2px solid #AAAACC; + padding: 0px; + font-size: 5px; +} + +table.page table.body td.head { + font-weight: bold; +} + +table.page table.body td.foot { + font-size: small; + border-top: 1px solid #AAAACC; + border-bottom: 1px solid #AAAACC; +} + +/* Global Page Footer */ +table.page tr.foot td { + border-top: 1px solid #AAAACC; + font-weight: bold; + font-size: 12px; + text-align: right; +} + +/* Global Page - Other Layouts */ +/* Server Select */ +table.page table.server_select { + font-weight: bold; + font-size: 13px; + color: #000000; +} + +/* Individual table layouts */ +/* LDAP Tree */ +table.tree { +} + +table.tree tr.server td.icon { + vertical-align: top; +} + +table.tree tr.server td.name { + padding-right: 10px; + vertical-align: top; +} + +table.tree tr.server td { + padding-top: 5px; + font-size: 18px; + text-align: left; + padding-right: 0px; + white-space: nowrap; +} + +table.tree td { + white-space: nowrap; +} + +table.tree td.server_links { + vertical-align: top; + text-align: center; + padding-top: 0px; + padding-bottom: 0px; + padding-left: 3px; + padding-right: 3px; +} + +table.tree td.server_links a { + color: #000000; + text-decoration: none; + font-size: 11px; +} + +table.tree td.server_links a:hover { + text-decoration: none; + background-color: #FFFFFF; + color: #000000; +} + +table.tree tr.option td.expander { + text-align: center; + width: 22px; + max-width: 22px; + min-width: 22px; + white-space: nowrap; +} + +table.tree tr.option td.icon { + text-align: center; + width: 22px; + max-width: 22px; + min-width: 22px; + white-space: nowrap; +} + +table.tree td.rdn a { + font-size: 13px; + color: #000000; +} + +table.tree td.rdn a:hover { + font-size: 13px; + color: #841212; + background-color: #FFF0C0; + text-decoration: none; +} + +table.tree td.rdn span.count { + font-size: 13px; + color: #000000; +} + +table.tree td.links a { + color: #0000AA; + text-align: center; +} + +table.tree td.link a { + font-size: 13px; + color: #000000; +} + +table.tree td.link a:hover { + font-size: 13px; + color: #841212; + background-color: #FFF0C0; + text-decoration: none; +} + +table.tree td.links a:hover { + text-decoration: none; + color: blue; +} + +table.tree td.blank { + font-size: 1px; +} + +table.tree td.spacer { + width: 22px; +} + +table.tree td.logged_in { + font-size: 10px; + white-space: nowrap; +} + +table.tree td.logged_in a { + font-size: 11px; +} + +table.tree td.logged_in a:hover { + color: #841212; + background-color: #FFF0C0; + text-decoration: none; +} + +/* Tree Global Defaults */ +table.tree tr td { + padding: 0px; +} + +table.tree a { + text-decoration: none; + color: #000000; +} + +table.tree a:hover { + text-decoration: underline; + color: blue; +} + +table.tree span.dnicon img { + width: 16px; + padding-bottom: 0px; +} + +/* Tree */ +table.tree .treemenudiv { + display: block; + white-space: nowrap; + padding-top: 1px; + padding-bottom: 1px; +} + +table.tree .phplmnormal { + font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif; + font-size: 13px; + color: #000000; + text-decoration: none; +} + +table.tree a.phplmnormal:hover { + font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif; + font-size: 13px; + color: #000000; + background-color: #fff0c0; + text-decoration: none; +} + +table.tree a.phplm:link { + font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif; + font-size: 13px; + color: #000000; + text-decoration: none; +} + +table.tree a.phplm:visited { + font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif; + font-size: 13px; + color: #000000; + text-decoration: none; +} + +table.tree a.phplm:hover { + font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif; + font-size: 13px; + color: #841212; + background-color: #fff0c0; + text-decoration: none; +} + +table.tree a.phplm:active { + font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif; + font-size: 13px; + color: #ff0000; + text-decoration: none; +} + +table.tree a.phplmselected:link { + font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif; + font-size: 13px; + color: #dd0000; + background-color: #ffdd76; + text-decoration: none; +} + +table.tree a.phplmselected:visited { + font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif; + font-size: 13px; + color: #dd0000; + background-color: #ffdd76; + text-decoration: none; +} + +table.tree a.phplmselected:hover { + font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif; + font-size: 13px; + color: #841212; + background-color: #fff0c0; + text-decoration: none; +} + +table.tree a.phplmselected:active { + font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif; + font-size: 13px; + color: #ff0000; + text-decoration: none; +} + +/* Standard Form */ +table.forminput { + background-color: #F9F9FA; + padding: 10px; + border: 1px solid #AAAACC; +} + +table.forminput td.title { + text-align: center; + font-weight: bold; +} + +table.forminput td.subtitle { + text-align: center; + font-weight: normal; + font-size: small; +} + +table.forminput tr td.heading { + font-weight: bold; +} + +table.forminput td.small { + font-size: 80%; +} + +table.forminput td.top { + vertical-align: top; +} + +table.forminput input.val { + width: 350px; + border: 1px solid #AAAACC; +} + +table.forminput input.roval { + width: 350px; + border: none; +} + +table.forminput td.icon { + width: 16px; + text-align: center; +} + +table.forminput td.icon img { + border: 0px; +} + +table.forminput td.label { + text-align: left; + font-size: 13px; +} + +/* Menu on top of entry form */ +table.menu { + font-size: 14px; +} + +table.menu td.icon { + width: 16px; + text-align: center; +} + +/* Edit DN */ +div.add_value { + font-size: 12px; + margin: 0px; + padding: 0px; +} + +/* Edit Entry */ +table.entry { + border-collapse: collapse; + border-spacing: 0px; + empty-cells: show; +} + +table.entry input { + margin: 1px; +} + +table.entry input.value { + color: #000000; + font-size: 14px; + width: 350px; + background-color: #FFFFFF; +} + +table.entry div.helper { + text-align: left; + white-space: nowrap; + background-color: #FFFFFF; + color: #888; + font-size: 14px; + font-weight: normal; +} + +table.entry input.roval { + font-size: 14px; + width: 350px; + background-color: #FFFFFF; + color: #000000; + border: none; +} + +table.entry textarea.value { + font-size: 14px; + width: 350px; + background-color: #FFFFFF; + color: #000000; +} + +table.entry textarea.roval { + font-size: 14px; + width: 350px; + background-color: #FFFFFF; + color: #000000; + border: none; +} + +table.entry tr td { + padding: 4px; + padding-right: 0px; +} + +table.entry tr td.heading { + border-top: 3px solid #C0C0C0; + font-weight: bold; +} + +table.entry tr td.note { + text-align: right; + background-color: #E0E0E0; +} + +table.entry tr td.title { + background-color: #E0E0E0; + vertical-align: top; + font-weight: bold; +} + +table.entry tr td.title a { + text-decoration: none; + color: #000000; +} + +table.entry tr td.title a:hover { + text-decoration: underline; + color: #016; +} + +table.entry tr td.value { + text-align: left; + vertical-align: middle; + padding-bottom: 10px; + padding-left: 50px; +} + +/** When an attr is updated, it is highlighted to indicate such */ +table.entry tr.updated td.title { + border-top: 1px dashed #AAAA88; + border-left: 1px dashed #AAAA88; + background-color: #999988; +} + +table.entry tr.updated td.note { + border-top: 1px dashed #AAAA88; + border-right: 1px dashed #AAAA88; + background-color: #999988; +} + +/** An extra row that sits at the bottom of recently modified attrs to encase them in dashes */ +table.entry tr.updated td.bottom { + border-top: 1px dashed #AAAA88; +} + +/** Formatting for the value cell when it is the attribute that has been recently modified */ +table.entry tr.updated td.value { + border-left: 1px dashed #AAAA88; + border-right: 1px dashed #AAAA88; +} + +/* Need to prevent sub-tables (like the one in which jpegPhotos are displayed) + * from drawing borders as well. */ +table.entry tr.updated td table td { + border: 0px; +} + +table.entry tr.noinput { + background: #E0E0E0; +} + +span.hint { + font-size: small; + font-weight: normal; + color: #888; +} + +/* Login Box */ +#login { + background: url('../../images/default/ldap-uid.png') no-repeat 0 1px; + background-color: #FAFAFF; + color: #000000; + padding-left: 17px; +} + +#login:focus { + background-color: #F0F0FF; + color: #000000; +} + +#login:disabled { + background-color: #DDDDFF; + color: #000000; +} + +#password { + background: url('../../images/default/key.png') no-repeat 0 1px; + background-color: #FAFAFF; + color: #000000; + padding-left: 17px; +} + +#password:focus { + background-color: #F0F0FF; + color: #000000; +} + +#password:disabled { + background-color: #DDDDFF; + color: #000000; +} + +#generic { + background-color: #FAFAFF; + color: #000000; + padding-left: 17px; +} +#generic:focus { + background-color: #F0F0FF; + color: #000000; +} + +#generic:disabled { + background-color: #DDDDFF; + color: #000000; +} + +/* After input results */ +div.execution_time { + font-size: 13px; + font-weight: normal; + text-align: left; +} + +table.result { + width: 100%; + vertical-align: top; + empty-cells: show; + border: 1px solid #AAAACC; + border-spacing: 0px; + background-color: #F2F2FF; +} + +table.result tr.heading { + vertical-align: top; +} + +table.result tr.list_title { + background-color: #FFFFFF; +} + +table.result tr.list_title td.icon { + text-align: center; + vertical-align: top; +} + +table.result tr.list_item { + background-color: #FFFFFF; +} + +table.result tr.list_item td.blank { + width: 25px; +} + +table.result tr.list_item td.heading { + vertical-align: top; + color: gray; + width: 10%; + font-size: 12px; +} + +table.result tr.list_item td.value { + color: #000000; + font-size: 12px; +} + +table.result_box { + border: 1px solid #AAAACC; + border-collapse: collapse; + empty-cells: show; +} + +table.result_table { + border: 1px solid #AAAACC; + border-collapse: collapse; + empty-cells: show; +} + +table.result_table td { + font-size: 12px; + vertical-align: top; + border: 1px solid #AAAACC; + padding: 4px; +} + +table.result_table th { + border: 1px solid #AAAACC; + padding: 10px; + padding-left: 20px; + padding-right: 20px; +} + +table.result_table tr.highlight { + background-color: #EEEBBB; +} + +table.result_table tr.highlight td { + border: 1px solid #AAAACC; + font-weight: bold; + padding-top: 5px; + padding-bottom: 5px; + padding-left: 10px; + padding-right: 10px; +} + +table.result_table td.heading { + color: black; + background-color: #F3F3F3; + font-size: 12px; +} + +table.result_table td.value { + color: #000000; + background-color: #E0E0E0; +} + +table.result_table tr.heading { + color: black; + background-color: #F3F3F3; + font-size: 12px; + font-weight: bold; +} + +table.result_table tr.heading a { + color: #FFFFFF; + font-size: 12px; + font-weight: bold; +} + +table.result_table tr.heading td { + border: 1px solid #AAAACC; + font-weight: normal; + padding-top: 5px; + padding-bottom: 5px; + padding-left: 10px; + padding-right: 10px; +} + +table.result_table tr.even { + background-color: #E0E0E0; +} + +table.result_table tr.even td { + border: 1px solid #AAAACC; + font-weight: normal; + padding-top: 5px; + padding-bottom: 5px; + padding-left: 10px; + padding-right: 10px; +} + +table.result_table tr.even td.title { + font-weight: bold; +} + +table.result_table tr.odd { + background-color: #F0F0F0; +} + +table.result_table tr.odd td { + border: 1px solid #AAAACC; + font-weight: normal; + padding-top: 5px; + padding-bottom: 5px; + padding-left: 10px; + padding-right: 10px; +} + +table.result_table tr.odd td.title { + font-weight: bold; +} + +table.result_table ul.list { + margin: 5px; + margin-left: 0px; + padding-left: 20px; +} + +table.result_table ul.list li { + margin-left: 0px; + padding-left: 0px; +} + +table.result_table ul.list li small { + font-size: 13px; + color: #707070; +} + +table.result_table ul.list li small a { + color: #7070C0; +} + +/* Error Dialog Box */ +table.error { + width: 500px; + border: 1px solid #AA0000; + background-color: #FFF0F0; +} + +table.error th { + background-color: #AA0000; + border: 0px; + color: #FFFFFF; + font-size: 14px; + font-weight: bold; + text-align: center; + vertical-align: middle; + width: 100%; +} + +table.error th.img { + vertical-align: middle; + text-align: center; +} + +table.error td { + border: 0px; + background-color: #FFF0F0; + padding: 2px; + text-align: left; + vertical-align: top; +} + +/* Popup Window */ +div.popup h3.subtitle { + text-align: center; + margin: 0px; + margin-bottom: 15px; + color: black; + border-bottom: 1px solid #CCCCCC; + border-left: 1px solid #CCCCCC; + border-right: 1px solid #CCCCCC; + background: #F3F3F3; + padding: 4px; + font-weight: normal; +} + +span.good { + color: green; +} + +span.bad { + color: red; +} diff --git a/lam/templates/3rdParty/pla/htdocs/delete.php b/lam/templates/3rdParty/pla/htdocs/delete.php new file mode 100644 index 00000000..73d7f7fb --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/delete.php @@ -0,0 +1,40 @@ +dnExists($request['dn'])) + error(sprintf('%s (%s)',_('No such entry.'),''.pretty_print_dn($request['dn']).''),'error','index.php'); + +# Delete the entry. +$result = $app['server']->delete($request['dn']); + +if ($result) { + $redirect_url = ''; + + if (isAjaxEnabled()) + $redirect_url .= sprintf('&refresh=SID_%s_nodes&noheader=1',$app['server']->getIndex()); + + system_message(array( + 'title'=>_('Delete DN'), + 'body'=>sprintf('' . _('Successfully deleted DN %s') . '',$request['dn']), + 'type'=>'info'), + sprintf('index.php?server_id=%s%s',$app['server']->getIndex(),$redirect_url)); +} else + system_message(array( + 'title'=>_('Could not delete the entry.').sprintf(' (%s)',pretty_print_dn($request['dn'])), + 'body'=>ldap_error_msg($app['server']->getErrorMessage(null),$app['server']->getErrorNum(null)), + 'type'=>'error')); +?> diff --git a/lam/templates/3rdParty/pla/htdocs/delete_attr.php b/lam/templates/3rdParty/pla/htdocs/delete_attr.php new file mode 100644 index 00000000..c33c5e7a --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/delete_attr.php @@ -0,0 +1,49 @@ +isAttrReadOnly($request['attr'])) + error(sprintf(('The attribute "%s" is flagged as read-only in the phpLDAPadmin configuration.'),$request['attr']),'error','index.php'); + +$update_array = array(); +$update_array[$request['attr']] = $app['server']->getDNAttrValue($request['dn'],$request['attr']); + +$redirect_url = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s', + $app['server']->getIndex(),rawurlencode($request['dn'])); + +if (! isset($update_array[$request['attr']][$request['index']])) + system_message(array( + 'title'=>_('Could not delete attribute value.'), + 'body'=>sprintf('%s. %s/%s',_('The attribute value does not exist'),$request['attr'],$request['index']), + 'type'=>'warn'),$redirect_url); + +else { + unset($update_array[$request['attr']][$request['index']]); + foreach ($update_array as $key => $values) + $update_array[$key] = array_values($values); + + $result = $app['server']->modify($request['dn'],$update_array); + + if ($result) { + foreach ($update_array as $attr => $junk) + $redirect_url .= sprintf('&modified_attrs[]=%s',$attr); + + header("Location: $redirect_url"); + die(); + } +} +?> diff --git a/lam/templates/3rdParty/pla/htdocs/delete_form.php b/lam/templates/3rdParty/pla/htdocs/delete_form.php new file mode 100644 index 00000000..e3be6389 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/delete_form.php @@ -0,0 +1,148 @@ +getIndex(),get_request('template','REQUEST',false,'none')); +$request['page']->setDN($request['dn']); +$request['page']->accept(); +$request['template'] = $request['page']->getTemplate(); + +# Check if the entry exists. +if (! $request['dn'] || ! $app['server']->dnExists($request['dn'])) + system_message(array( + 'title'=>_('Entry does not exist'), + 'body'=>sprintf(_('The entry (%s) does not exist.'),$request['dn']), + 'type'=>'error'),'index.php'); + +# We search all children, not only the visible children in the tree +$request['children'] = $app['server']->getContainerContents($request['dn'],null,0,'(objectClass=*)',LDAP_DEREF_NEVER); + +printf('

    %s %s

    ',_('Delete'),htmlspecialchars(get_rdn($request['dn']))); +printf('

    %s: %s

    ', + _('DN'),$request['dn']); +echo "\n"; + +echo '
    '; + +if (count($request['children'])) { + printf('%s

    ',_('Permanently delete all children also?')); + + $search['href'] = htmlspecialchars(sprintf('cmd.php?cmd=query_engine&server_id=%s&filter=%s&base=%s&scope=sub&query=none&format=list&search=true', + $app['server']->getIndex(),rawurlencode('objectClass=*'),rawurlencode($request['dn']))); + + $query = array(); + $query['base'] = $request['dn']; + $query['scope'] = 'sub'; + $query['attrs'] = array('dn'); + $query['size_limit'] = 0; + $query['deref'] = LDAP_DEREF_NEVER; + $request['search'] = $app['server']->query($query,null); + + echo ''; + echo ''; + echo ''; + + echo ''; + + echo ''; + echo ''; + + echo ''; + echo ''; + echo "\n"; + + echo '
    '; + printf(_('This entry is the root of a sub-tree containing %s entries.'),count($request['search'])); + printf(' (%s)', + $search['href'],_('view entries')); + echo '
     
    '; + echo '
    '; + echo ''; + printf('',$app['server']->getIndex()); + printf('',$request['template']->getDNEncode(false)); + //@todo need to refresh the tree after a delete + printf('', + sprintf(_('Delete all %s objects'),count($request['search'])), + (isAjaxEnabled() ? sprintf('onclick="return ajSUBMIT(\'BODY\',document.getElementById(\'delete_form\'),\'%s\');"',_('Deleting objects')) : '')); + echo '
    '; + echo '
    '; + echo '
    '; + echo ''; + printf('',$app['server']->getIndex()); + printf('',$request['template']->getDNEncode(false)); + printf('', + _('Cancel'), + (isAjaxEnabled() ? sprintf('onclick="return ajDISPLAY(\'BODY\',\'cmd=template_engine&server_id=%s&dn=%s\',\'%s\');"',$app['server']->getIndex(),$request['template']->getDNEncode(),_('Retrieving DN')) : '')); + echo '
    '; + echo '
    '; + echo "\n"; + + echo '

    '; + echo _('List of entries to be deleted:'); + echo '
    '; + + $i = 0; + printf(''; + echo "\n"; + +} else { + echo ''; + + printf('',_('Are you sure you want to permanently delete this object?')); + echo ''; + + printf('',_('Server'),$app['server']->getName()); + printf('', + _('DN'),_('DN'),$request['dn']); + echo ''; + echo "\n"; + + echo ''; + echo ''; + echo ''; + echo ''; + echo '
    %s
     
    %s:%s
    %s%s
     
    '; + echo '
    '; + echo ''; + printf('',$app['server']->getIndex()); + printf('',$request['template']->getDNEncode(false)); + //@todo need to refresh the tree after a delete + printf('', + _('Delete'), + (isAjaxEnabled() ? sprintf('onclick="return ajSUBMIT(\'BODY\',document.getElementById(\'delete_form\'),\'%s\');"',_('Deleting objects')) : '')); + echo '
    '; + + echo '
    '; + + echo '
    '; + echo ''; + printf('',$app['server']->getIndex()); + printf('',$request['template']->getDNEncode(false)); + printf('', + _('Cancel'), + (isAjaxEnabled() ? sprintf('onclick="return ajDISPLAY(\'BODY\',\'cmd=template_engine&server_id=%s&dn=%s\',\'%s\');"',$app['server']->getIndex(),$request['template']->getDNEncode(),_('Retrieving DN')) : '')); + echo '
    '; + + echo '
    '; + echo "\n"; +} + +echo '
    '; +echo '
    '; +?> diff --git a/lam/templates/3rdParty/pla/htdocs/download_binary_attr.php b/lam/templates/3rdParty/pla/htdocs/download_binary_attr.php new file mode 100644 index 00000000..251f2deb --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/download_binary_attr.php @@ -0,0 +1,49 @@ +dnExists($request['dn'])) + error(sprintf(_('The entry (%s) does not exist.'),$request['dn']),'error','index.php'); + +$search = $app['server']->getDNAttrValues($request['dn'],null,LDAP_DEREF_NEVER,array($request['attr'])); + +# Dump the binary data to the browser +$obStatus = ob_get_status(); +if (isset($obStatus['type']) && $obStatus['type'] && $obStatus['status']) + ob_end_clean(); + +if (! isset($search[$request['attr']][$request['index']])) { + # We cant display an error, but we can set a system message, which will be display on the next page render. + system_message(array( + 'title'=>_('No binary data available'), + 'body'=>sprintf(_('Could not fetch binary data from LDAP server for attribute [%s].'),$request['attr']), + 'type'=>'warn')); + + die(); +} + +header(sprintf('Content-type: %s',$request['type'])); +header(sprintf('Content-disposition: attachment; filename="%s"',$request['filename'])); +header(sprintf('Expires: Mon, 26 Jul 1997 05:00:00 GMT',gmdate('r'))); +header(sprintf('Last-Modified: %s',gmdate('r'))); +echo $search[$request['attr']][$request['index']]; +die(); +?> diff --git a/lam/templates/3rdParty/pla/htdocs/draw_tree_node.php b/lam/templates/3rdParty/pla/htdocs/draw_tree_node.php new file mode 100644 index 00000000..7311e2dc --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/draw_tree_node.php @@ -0,0 +1,61 @@ +getEntry($request['dn']); + + if (! $dnentry) { + $tree->addEntry($request['dn']); + $dnentry = $tree->getEntry($request['dn']); + $treesave = true; + } + + switch ($request['action']) { + case 0: + $dnentry->close(); + + break; + + case 2: + default: + if ($dnentry->isSizeLimited()) { + $tree->readChildren($request['dn'],true); + + $treesave = true; + } + + $dnentry->open(); + } +} + +if ($treesave) + set_cached_item($app['server']->getIndex(),'tree','null',$tree); + +if ($request['dn']) + echo $tree->draw_children($dnentry,$request['code']); +else + $tree->draw($request['noheader']); + +die(); +?> diff --git a/lam/templates/3rdParty/pla/htdocs/entry_chooser.php b/lam/templates/3rdParty/pla/htdocs/entry_chooser.php new file mode 100644 index 00000000..d66ded9e --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/entry_chooser.php @@ -0,0 +1,121 @@ +'; +printf('

    %s

    ',_('Choose entry')); + +echo ''; + +echo ''; +if ($request['container']) { + printf('',_('Parent DN'),$request['container']); + echo ''; +} + +# Has the user already begun to descend into a specific server tree? +if (isset($app['server']) && ! is_null($request['container'])) { + + $request['children'] = $app['server']->getContainerContents($request['container'],null,0,'(objectClass=*)',$_SESSION[APPCONFIG]->getValue('deref','tree')); + sort($request['children']); + + foreach ($app['server']->getBaseDN() as $base) { + if (DEBUG_ENABLED) + debug_log('Comparing BaseDN [%s] with container [%s]',64,0,__FILE__,__LINE__,__METHOD__,$base,$request['container']); + + if (! pla_compare_dns($request['container'],$base)) { + $parent_container = false; + $href['up'] = sprintf('entry_chooser.php?form=%s&element=%s&rdn=%s',$request['form'],$request['element'],rawurlencode($request['rdn'])); + break; + + } else { + $parent_container = $app['server']->getContainer($request['container']); + $href['up'] = sprintf('entry_chooser.php?form=%s&element=%s&rdn=%s&server_id=%s&container=%s', + $request['form'],$request['element'],$request['rdn'],$app['server']->getIndex(),rawurlencode($parent_container)); + } + } + + echo ''; + echo ''; + printf('',$href['up'],IMGDIR); + printf('',$href['up'],_('Back up')); + echo ''; + + if (! count($request['children'])) + printf('',_('no entries')); + + else + foreach ($request['children'] as $dn) { + $href['return'] = sprintf("javascript:returnDN('%s%s')",($request['rdn'] ? sprintf('%s,',$request['rdn']) : ''),str_replace('\\','\\\\',$dn)); + $href['expand'] = sprintf('entry_chooser.php?server_id=%s&form=%s&element=%s&rdn=%s&container=%s', + $app['server']->getIndex(),$request['form'],$request['element'],$request['rdn'],rawurlencode($dn)); + + echo ''; + echo ''; + printf('',$href['expand'],IMGDIR); + + printf('',$href['return'],$dn); + echo ''; + echo "\n\n"; + } + +# Draw the root of the selection tree (ie, list all the servers) +} else { + foreach ($_SESSION[APPCONFIG]->getServerList() as $index => $server) { + if ($server->isLoggedIn(null)) { + foreach ($server->getBaseDN() as $dn) { + if (! $dn) { + printf('',('Could not determine base DN')); + + } else { + $href['return'] = sprintf("javascript:returnDN('%s%s')",($request['rdn'] ? sprintf('%s,',$request['rdn']) : ''),rawurlencode($dn)); + $href['expand'] = htmlspecialchars(sprintf('entry_chooser.php?server_id=%s&form=%s&element=%s&rdn=%s&container=%s', + $server->getIndex(),$request['form'],$request['element'],$request['rdn'],rawurlencode($dn))); + + echo ''; + echo ''; + printf('',$href['expand'],IMGDIR); + printf('',$href['return'],$dn); + } + } + + echo ''; + } + } +} + +echo '
    %s:%s
     
     Up%s...
     (%s)
     Plus%s
     (%s)
     Plus%s
     
    '; +echo '
    '; + +# Capture the output and put into the body of the page. +$www['body'] = new block(); +$www['body']->SetBody(ob_get_contents()); +$www['page']->block_add('body',$www['body']); +ob_end_clean(); + +# Render the popup. +$www['page']->display(array('CONTROL'=>false,'FOOT'=>false,'HEAD'=>false,'TREE'=>false)); +?> diff --git a/lam/templates/3rdParty/pla/htdocs/expand.php b/lam/templates/3rdParty/pla/htdocs/expand.php new file mode 100644 index 00000000..0eed2422 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/expand.php @@ -0,0 +1,27 @@ +getIndex(),'tree'); +$entry = $tree->getEntry($dn); +$entry->open(); +set_cached_item($app['server']->getIndex(),'tree','null',$tree); + +header(sprintf('Location:index.php?server_id=%s&junk=%s#%s', + $app['server']->getIndex(),random_junk(),htmlid($app['server']->getIndex(),$dn))); +die(); +?> diff --git a/lam/templates/3rdParty/pla/htdocs/export.php b/lam/templates/3rdParty/pla/htdocs/export.php new file mode 100644 index 00000000..cc1096b5 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/export.php @@ -0,0 +1,40 @@ +getIndex(),get_request('exporter_id','REQUEST')); +$request['export'] = $request['exporter']->getTemplate(); +$types = $request['export']->getType(); + +# send the header +if ($request['file']) { + $obStatus = ob_get_status(); + if (isset($obStatus['type']) && $obStatus['type'] && $obStatus['status']) + ob_end_clean(); + + header('Content-type: application/download'); + header(sprintf('Content-Disposition: inline; filename="%s.%s"','export',$types['extension'].($request['export']->isCompressed() ? '.gz' : ''))); + echo $request['export']->export(); + die(); + +} else { + print '
    ';
    +	echo htmlspecialchars($request['export']->export());
    +	print '
    '; +} +?> diff --git a/lam/templates/3rdParty/pla/htdocs/export_form.php b/lam/templates/3rdParty/pla/htdocs/export_form.php new file mode 100644 index 00000000..341ee133 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/export_form.php @@ -0,0 +1,210 @@ + 'Macintosh', + 'unix' => 'UNIX (Linux, BSD)', + 'win' => 'Windows' +); + +$available_scopes = array( + 'base' => _('Base (base dn only)'), + 'one' => _('One (one level beneath base)'), + 'sub' => _('Sub (entire subtree)') +); + +$request['page'] = new PageRender($app['server']->getIndex(),get_request('template','REQUEST',false,'none')); +$request['page']->drawTitle(sprintf('%s',_('Export'))); + +printf('',JSDIR); +printf('',JSDIR); + +echo '
    '; +echo '
    '; +echo '
    '; +echo ''; +printf('',$app['server']->getIndex()); + +echo ''; +echo ''; +echo ''; +echo ''; +echo ''; +echo ''; + +echo ''; + +printf('', + htmlspecialchars(_('Proceed'))); + +echo '
    '; + +echo '
    '; +printf('%s',_('Export')); + +echo ''; +printf('',_('Server'),$app['server']->getName()); + +echo ''; +printf('',_('Base DN')); +echo ''; +echo ''; + +echo ''; +printf('',_('Search scope')); + +echo ''; + +echo ''; + +printf('', + _('Search filter'),htmlspecialchars($request['filter'])); + +printf('', + _('Show attributes'),htmlspecialchars($request['attr'])); + +printf('', + $request['sys_attr'] ? 'checked="checked" ' : '',_('Include system attributes')); + +printf('', + _('Save as file')); + +echo '
    %s%s
    %s'; +printf(' ',htmlspecialchars($request['dn'])); +draw_chooser_link('export_form','dn'); +echo '
    %s'; + +foreach ($available_scopes as $id => $desc) + printf('
    ', + htmlspecialchars($id),$id,($id == $request['scope']) ? 'checked="checked"' : '', + htmlspecialchars($id),$desc); + +echo '
    %s
    %s
     
     
    '; +echo '
    '; +echo '
    '; + +echo ''; +echo ''; + +echo ''; + +echo ''; +echo '
    '; +echo '
    '; + +printf('%s',_('Export format')); + +foreach (Exporter::types() as $index => $exporter) { + printf('', + htmlspecialchars($exporter['type']),htmlspecialchars($exporter['type']),($exporter['type'] === $request['exporter_id']) ? ' checked="checked"' : ''); + + printf('
    ', + htmlspecialchars($exporter['type']),$exporter['type']); +} + +echo '
    '; +echo '
    '; +echo '
    '; + +printf('%s',_('Line ends')); +foreach ($available_formats as $id => $desc) + printf('
    ', + htmlspecialchars($id),htmlspecialchars($id),($request['format']==$id) ? ' checked="checked"' : '', + htmlspecialchars($id),$desc); + +echo '
    '; +echo '
    '; +echo '
    '; + +echo '
    '; +echo '
    '; + +/** + * Helper function for fetching the line end format. + * + * @return String 'win', 'unix', or 'mac' based on the user's browser.. + */ +function get_line_end_format() { + if (is_browser('win')) + return 'win'; + elseif (is_browser('unix')) + return 'unix'; + elseif (is_browser('mac')) + return 'mac'; + else + return 'unix'; +} + +/** + * Gets the USER_AGENT string from the $_SERVER array, all in lower case in + * an E_NOTICE safe manner. + * + * @return string|false The user agent string as reported by the browser. + */ +function get_user_agent_string() { + if (isset($_SERVER['HTTP_USER_AGENT'])) + return strtolower($_SERVER['HTTP_USER_AGENT']); + else + return ''; +} + +/** + * Determine the OS for the browser + */ +function is_browser($type) { + $agents = array(); + + $agents['unix'] = array( + 'sunos','sunos 4','sunos 5', + 'i86', + 'irix','irix 5','irix 6','irix6', + 'hp-ux','09.','10.', + 'aix','aix 1','aix 2','aix 3','aix 4', + 'inux', + 'sco', + 'unix_sv','unix_system_v','ncr','reliant','dec','osf1', + 'dec_alpha','alphaserver','ultrix','alphastation', + 'sinix', + 'freebsd','bsd', + 'x11','vax','openvms' + ); + + $agents['win'] = array( + 'win','win95','windows 95', + 'win16','windows 3.1','windows 16-bit','windows','win31','win16','winme', + 'win2k','winxp', + 'win98','windows 98','win9x', + 'winnt','windows nt','win32', + '32bit' + ); + + $agents['mac'] = array( + 'mac','68000','ppc','powerpc' + ); + + if (isset($agents[$type])) + return in_array(get_user_agent_string(),$agents[$type]); + else + return false; +} +?> diff --git a/lam/templates/3rdParty/pla/htdocs/images/ajax-progress.gif b/lam/templates/3rdParty/pla/htdocs/images/ajax-progress.gif new file mode 100644 index 00000000..994bfab6 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/ajax-progress.gif differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/ajax-spinner.gif b/lam/templates/3rdParty/pla/htdocs/images/ajax-spinner.gif new file mode 100644 index 00000000..1ed786f2 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/ajax-spinner.gif differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/af.png b/lam/templates/3rdParty/pla/htdocs/images/countries/af.png new file mode 100644 index 00000000..cda88b08 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/af.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/al.png b/lam/templates/3rdParty/pla/htdocs/images/countries/al.png new file mode 100644 index 00000000..5925b279 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/al.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/am.png b/lam/templates/3rdParty/pla/htdocs/images/countries/am.png new file mode 100644 index 00000000..45cd7495 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/am.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/an.png b/lam/templates/3rdParty/pla/htdocs/images/countries/an.png new file mode 100644 index 00000000..2d4d3a75 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/an.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ao.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ao.png new file mode 100644 index 00000000..9463d243 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ao.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ar.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ar.png new file mode 100644 index 00000000..bd733826 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ar.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/at.png b/lam/templates/3rdParty/pla/htdocs/images/countries/at.png new file mode 100644 index 00000000..2a58c49b Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/at.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/au.png b/lam/templates/3rdParty/pla/htdocs/images/countries/au.png new file mode 100644 index 00000000..b20b0480 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/au.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/aw.png b/lam/templates/3rdParty/pla/htdocs/images/countries/aw.png new file mode 100644 index 00000000..411977eb Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/aw.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/az.png b/lam/templates/3rdParty/pla/htdocs/images/countries/az.png new file mode 100644 index 00000000..ced5af01 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/az.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ba.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ba.png new file mode 100644 index 00000000..fb7d1905 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ba.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/bb.png b/lam/templates/3rdParty/pla/htdocs/images/countries/bb.png new file mode 100644 index 00000000..9c07e144 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/bb.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/bd.png b/lam/templates/3rdParty/pla/htdocs/images/countries/bd.png new file mode 100644 index 00000000..56bba0b9 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/bd.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/be.png b/lam/templates/3rdParty/pla/htdocs/images/countries/be.png new file mode 100644 index 00000000..9312218f Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/be.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/bf.png b/lam/templates/3rdParty/pla/htdocs/images/countries/bf.png new file mode 100644 index 00000000..1019379a Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/bf.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/bg.png b/lam/templates/3rdParty/pla/htdocs/images/countries/bg.png new file mode 100644 index 00000000..0f64f7db Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/bg.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/bh.png b/lam/templates/3rdParty/pla/htdocs/images/countries/bh.png new file mode 100644 index 00000000..236693dc Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/bh.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/bi.png b/lam/templates/3rdParty/pla/htdocs/images/countries/bi.png new file mode 100644 index 00000000..7fa236af Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/bi.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/bj.png b/lam/templates/3rdParty/pla/htdocs/images/countries/bj.png new file mode 100644 index 00000000..290016a5 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/bj.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/bm.png b/lam/templates/3rdParty/pla/htdocs/images/countries/bm.png new file mode 100644 index 00000000..96fb4dcd Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/bm.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/bn.png b/lam/templates/3rdParty/pla/htdocs/images/countries/bn.png new file mode 100644 index 00000000..53460dc3 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/bn.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/bo.png b/lam/templates/3rdParty/pla/htdocs/images/countries/bo.png new file mode 100644 index 00000000..5025e7fb Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/bo.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/br.png b/lam/templates/3rdParty/pla/htdocs/images/countries/br.png new file mode 100644 index 00000000..734ace94 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/br.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/bs.png b/lam/templates/3rdParty/pla/htdocs/images/countries/bs.png new file mode 100644 index 00000000..36c4cbe0 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/bs.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/bt.png b/lam/templates/3rdParty/pla/htdocs/images/countries/bt.png new file mode 100644 index 00000000..3e10663a Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/bt.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/bw.png b/lam/templates/3rdParty/pla/htdocs/images/countries/bw.png new file mode 100644 index 00000000..bd8e2931 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/bw.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/by.png b/lam/templates/3rdParty/pla/htdocs/images/countries/by.png new file mode 100644 index 00000000..8f5b8499 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/by.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/bz.png b/lam/templates/3rdParty/pla/htdocs/images/countries/bz.png new file mode 100644 index 00000000..fb1bd5ae Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/bz.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ca.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ca.png new file mode 100644 index 00000000..d06843f5 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ca.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/cf.png b/lam/templates/3rdParty/pla/htdocs/images/countries/cf.png new file mode 100644 index 00000000..35e6b47a Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/cf.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/cg.png b/lam/templates/3rdParty/pla/htdocs/images/countries/cg.png new file mode 100644 index 00000000..f2db5185 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/cg.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ch.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ch.png new file mode 100644 index 00000000..9899d788 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ch.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ci.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ci.png new file mode 100644 index 00000000..d536e9ba Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ci.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ck.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ck.png new file mode 100644 index 00000000..271f568b Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ck.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/cl.png b/lam/templates/3rdParty/pla/htdocs/images/countries/cl.png new file mode 100644 index 00000000..97db9ec0 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/cl.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/cm.png b/lam/templates/3rdParty/pla/htdocs/images/countries/cm.png new file mode 100644 index 00000000..febecadf Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/cm.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/cn.png b/lam/templates/3rdParty/pla/htdocs/images/countries/cn.png new file mode 100644 index 00000000..f3f36da7 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/cn.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/co.png b/lam/templates/3rdParty/pla/htdocs/images/countries/co.png new file mode 100644 index 00000000..2781663b Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/co.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/cr.png b/lam/templates/3rdParty/pla/htdocs/images/countries/cr.png new file mode 100644 index 00000000..09bb72dc Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/cr.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/cu.png b/lam/templates/3rdParty/pla/htdocs/images/countries/cu.png new file mode 100644 index 00000000..9be2138e Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/cu.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/cv.png b/lam/templates/3rdParty/pla/htdocs/images/countries/cv.png new file mode 100644 index 00000000..6204e60b Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/cv.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/cy.png b/lam/templates/3rdParty/pla/htdocs/images/countries/cy.png new file mode 100644 index 00000000..14b2deb7 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/cy.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/cz.png b/lam/templates/3rdParty/pla/htdocs/images/countries/cz.png new file mode 100644 index 00000000..36313b47 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/cz.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/de.png b/lam/templates/3rdParty/pla/htdocs/images/countries/de.png new file mode 100644 index 00000000..67e1bd53 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/de.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/dk.png b/lam/templates/3rdParty/pla/htdocs/images/countries/dk.png new file mode 100644 index 00000000..9404cf0b Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/dk.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/dz.png b/lam/templates/3rdParty/pla/htdocs/images/countries/dz.png new file mode 100644 index 00000000..26919b18 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/dz.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ec.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ec.png new file mode 100644 index 00000000..961e5cdc Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ec.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ee.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ee.png new file mode 100644 index 00000000..e0a902ee Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ee.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/eg.png b/lam/templates/3rdParty/pla/htdocs/images/countries/eg.png new file mode 100644 index 00000000..f81b2769 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/eg.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/er.png b/lam/templates/3rdParty/pla/htdocs/images/countries/er.png new file mode 100644 index 00000000..f96b315c Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/er.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/es.png b/lam/templates/3rdParty/pla/htdocs/images/countries/es.png new file mode 100644 index 00000000..c85447dc Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/es.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/et.png b/lam/templates/3rdParty/pla/htdocs/images/countries/et.png new file mode 100644 index 00000000..48ff7b13 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/et.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/fi.png b/lam/templates/3rdParty/pla/htdocs/images/countries/fi.png new file mode 100644 index 00000000..d408743d Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/fi.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/fj.png b/lam/templates/3rdParty/pla/htdocs/images/countries/fj.png new file mode 100644 index 00000000..6818444f Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/fj.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/fo.png b/lam/templates/3rdParty/pla/htdocs/images/countries/fo.png new file mode 100644 index 00000000..1e123760 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/fo.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/fr.png b/lam/templates/3rdParty/pla/htdocs/images/countries/fr.png new file mode 100644 index 00000000..39bed1ab Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/fr.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ga.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ga.png new file mode 100644 index 00000000..8337ab9e Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ga.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/gb.png b/lam/templates/3rdParty/pla/htdocs/images/countries/gb.png new file mode 100644 index 00000000..30035dd8 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/gb.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ge.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ge.png new file mode 100644 index 00000000..da1ab413 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ge.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/gi.png b/lam/templates/3rdParty/pla/htdocs/images/countries/gi.png new file mode 100644 index 00000000..afb539b3 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/gi.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/gl.png b/lam/templates/3rdParty/pla/htdocs/images/countries/gl.png new file mode 100644 index 00000000..66cd000e Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/gl.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/gp.png b/lam/templates/3rdParty/pla/htdocs/images/countries/gp.png new file mode 100644 index 00000000..e4a6159d Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/gp.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/gr.png b/lam/templates/3rdParty/pla/htdocs/images/countries/gr.png new file mode 100644 index 00000000..1fb9d523 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/gr.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/gt.png b/lam/templates/3rdParty/pla/htdocs/images/countries/gt.png new file mode 100644 index 00000000..7d63cb83 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/gt.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/gu.png b/lam/templates/3rdParty/pla/htdocs/images/countries/gu.png new file mode 100644 index 00000000..42824383 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/gu.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/gy.png b/lam/templates/3rdParty/pla/htdocs/images/countries/gy.png new file mode 100644 index 00000000..a5d0e8e5 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/gy.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/hk.png b/lam/templates/3rdParty/pla/htdocs/images/countries/hk.png new file mode 100644 index 00000000..e5fa24f6 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/hk.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/hr.png b/lam/templates/3rdParty/pla/htdocs/images/countries/hr.png new file mode 100644 index 00000000..fda73281 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/hr.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ht.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ht.png new file mode 100644 index 00000000..d058c3bc Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ht.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/hu.png b/lam/templates/3rdParty/pla/htdocs/images/countries/hu.png new file mode 100644 index 00000000..dc4eef1c Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/hu.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/id.png b/lam/templates/3rdParty/pla/htdocs/images/countries/id.png new file mode 100644 index 00000000..95e9ce39 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/id.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ie.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ie.png new file mode 100644 index 00000000..1943e6b8 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ie.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/il.png b/lam/templates/3rdParty/pla/htdocs/images/countries/il.png new file mode 100644 index 00000000..a9161bbb Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/il.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/in.png b/lam/templates/3rdParty/pla/htdocs/images/countries/in.png new file mode 100644 index 00000000..1e404ac2 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/in.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/iq.png b/lam/templates/3rdParty/pla/htdocs/images/countries/iq.png new file mode 100644 index 00000000..1374301a Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/iq.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ir.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ir.png new file mode 100644 index 00000000..a6f49031 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ir.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/is.png b/lam/templates/3rdParty/pla/htdocs/images/countries/is.png new file mode 100644 index 00000000..9ce98644 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/is.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/it.png b/lam/templates/3rdParty/pla/htdocs/images/countries/it.png new file mode 100644 index 00000000..4a4ba953 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/it.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/jm.png b/lam/templates/3rdParty/pla/htdocs/images/countries/jm.png new file mode 100644 index 00000000..42741192 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/jm.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/jo.png b/lam/templates/3rdParty/pla/htdocs/images/countries/jo.png new file mode 100644 index 00000000..17e44819 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/jo.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/jp.png b/lam/templates/3rdParty/pla/htdocs/images/countries/jp.png new file mode 100644 index 00000000..8b52fa89 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/jp.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ke.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ke.png new file mode 100644 index 00000000..7bc38588 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ke.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/kg.png b/lam/templates/3rdParty/pla/htdocs/images/countries/kg.png new file mode 100644 index 00000000..b176e4f6 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/kg.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/kh.png b/lam/templates/3rdParty/pla/htdocs/images/countries/kh.png new file mode 100644 index 00000000..9c941931 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/kh.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ki.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ki.png new file mode 100644 index 00000000..fdc58fe8 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ki.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/kp.png b/lam/templates/3rdParty/pla/htdocs/images/countries/kp.png new file mode 100644 index 00000000..405332c8 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/kp.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/kr.png b/lam/templates/3rdParty/pla/htdocs/images/countries/kr.png new file mode 100644 index 00000000..0df561a9 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/kr.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ky.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ky.png new file mode 100644 index 00000000..ae2ba3e0 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ky.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/kz.png b/lam/templates/3rdParty/pla/htdocs/images/countries/kz.png new file mode 100644 index 00000000..eb7b9bef Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/kz.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/lb.png b/lam/templates/3rdParty/pla/htdocs/images/countries/lb.png new file mode 100644 index 00000000..44f9e1bf Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/lb.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/lc.png b/lam/templates/3rdParty/pla/htdocs/images/countries/lc.png new file mode 100644 index 00000000..6b0389ae Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/lc.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/lk.png b/lam/templates/3rdParty/pla/htdocs/images/countries/lk.png new file mode 100644 index 00000000..2f2c48bc Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/lk.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/lt.png b/lam/templates/3rdParty/pla/htdocs/images/countries/lt.png new file mode 100644 index 00000000..c6252cea Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/lt.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/lu.png b/lam/templates/3rdParty/pla/htdocs/images/countries/lu.png new file mode 100644 index 00000000..6a80e6ed Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/lu.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/lv.png b/lam/templates/3rdParty/pla/htdocs/images/countries/lv.png new file mode 100644 index 00000000..925ae281 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/lv.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ly.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ly.png new file mode 100644 index 00000000..8741c4c7 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ly.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ma.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ma.png new file mode 100644 index 00000000..a5d9234e Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ma.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/mc.png b/lam/templates/3rdParty/pla/htdocs/images/countries/mc.png new file mode 100644 index 00000000..8dd6d290 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/mc.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/md.png b/lam/templates/3rdParty/pla/htdocs/images/countries/md.png new file mode 100644 index 00000000..9d9d2780 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/md.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/mg.png b/lam/templates/3rdParty/pla/htdocs/images/countries/mg.png new file mode 100644 index 00000000..e93f20e0 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/mg.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/mn.png b/lam/templates/3rdParty/pla/htdocs/images/countries/mn.png new file mode 100644 index 00000000..9ce7bc90 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/mn.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/mo.png b/lam/templates/3rdParty/pla/htdocs/images/countries/mo.png new file mode 100644 index 00000000..21497e92 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/mo.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/mp.png b/lam/templates/3rdParty/pla/htdocs/images/countries/mp.png new file mode 100644 index 00000000..9523df6e Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/mp.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ms.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ms.png new file mode 100644 index 00000000..f92b84d5 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ms.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/mt.png b/lam/templates/3rdParty/pla/htdocs/images/countries/mt.png new file mode 100644 index 00000000..7f35e820 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/mt.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/mx.png b/lam/templates/3rdParty/pla/htdocs/images/countries/mx.png new file mode 100644 index 00000000..5d481f06 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/mx.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/my.png b/lam/templates/3rdParty/pla/htdocs/images/countries/my.png new file mode 100644 index 00000000..9fa6f816 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/my.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/mz.png b/lam/templates/3rdParty/pla/htdocs/images/countries/mz.png new file mode 100644 index 00000000..5e6e87b4 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/mz.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/na.png b/lam/templates/3rdParty/pla/htdocs/images/countries/na.png new file mode 100644 index 00000000..83d63cfc Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/na.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/nc.png b/lam/templates/3rdParty/pla/htdocs/images/countries/nc.png new file mode 100644 index 00000000..32eb1906 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/nc.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/nf.png b/lam/templates/3rdParty/pla/htdocs/images/countries/nf.png new file mode 100644 index 00000000..efdc438f Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/nf.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/nl.png b/lam/templates/3rdParty/pla/htdocs/images/countries/nl.png new file mode 100644 index 00000000..99b5e139 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/nl.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/no.png b/lam/templates/3rdParty/pla/htdocs/images/countries/no.png new file mode 100644 index 00000000..0199b306 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/no.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/np.png b/lam/templates/3rdParty/pla/htdocs/images/countries/np.png new file mode 100644 index 00000000..254744a2 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/np.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/nr.png b/lam/templates/3rdParty/pla/htdocs/images/countries/nr.png new file mode 100644 index 00000000..7f452297 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/nr.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/nz.png b/lam/templates/3rdParty/pla/htdocs/images/countries/nz.png new file mode 100644 index 00000000..841bb973 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/nz.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/om.png b/lam/templates/3rdParty/pla/htdocs/images/countries/om.png new file mode 100644 index 00000000..ad114e31 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/om.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/pa.png b/lam/templates/3rdParty/pla/htdocs/images/countries/pa.png new file mode 100644 index 00000000..26d5b1a0 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/pa.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/pe.png b/lam/templates/3rdParty/pla/htdocs/images/countries/pe.png new file mode 100644 index 00000000..41794a01 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/pe.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/pf.png b/lam/templates/3rdParty/pla/htdocs/images/countries/pf.png new file mode 100644 index 00000000..cf744fae Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/pf.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ph.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ph.png new file mode 100644 index 00000000..24007ab8 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ph.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/pk.png b/lam/templates/3rdParty/pla/htdocs/images/countries/pk.png new file mode 100644 index 00000000..ff220ee2 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/pk.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/pl.png b/lam/templates/3rdParty/pla/htdocs/images/countries/pl.png new file mode 100644 index 00000000..e275d902 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/pl.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/pm.png b/lam/templates/3rdParty/pla/htdocs/images/countries/pm.png new file mode 100644 index 00000000..6f9bf907 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/pm.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/pr.png b/lam/templates/3rdParty/pla/htdocs/images/countries/pr.png new file mode 100644 index 00000000..0671638e Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/pr.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/pt.png b/lam/templates/3rdParty/pla/htdocs/images/countries/pt.png new file mode 100644 index 00000000..8d32759e Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/pt.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/py.png b/lam/templates/3rdParty/pla/htdocs/images/countries/py.png new file mode 100644 index 00000000..bac89487 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/py.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/qa.png b/lam/templates/3rdParty/pla/htdocs/images/countries/qa.png new file mode 100644 index 00000000..6cf12f14 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/qa.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ro.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ro.png new file mode 100644 index 00000000..8d36c045 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ro.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ru.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ru.png new file mode 100644 index 00000000..2b7093c1 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ru.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/sa.png b/lam/templates/3rdParty/pla/htdocs/images/countries/sa.png new file mode 100644 index 00000000..f7982cc0 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/sa.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/sb.png b/lam/templates/3rdParty/pla/htdocs/images/countries/sb.png new file mode 100644 index 00000000..37f5c89a Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/sb.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/sd.png b/lam/templates/3rdParty/pla/htdocs/images/countries/sd.png new file mode 100644 index 00000000..32398df2 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/sd.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/se.png b/lam/templates/3rdParty/pla/htdocs/images/countries/se.png new file mode 100644 index 00000000..df1775d3 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/se.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/sg.png b/lam/templates/3rdParty/pla/htdocs/images/countries/sg.png new file mode 100644 index 00000000..51dc5a83 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/sg.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/si.png b/lam/templates/3rdParty/pla/htdocs/images/countries/si.png new file mode 100644 index 00000000..e8f87430 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/si.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/sk.png b/lam/templates/3rdParty/pla/htdocs/images/countries/sk.png new file mode 100644 index 00000000..d6052718 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/sk.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/sl.png b/lam/templates/3rdParty/pla/htdocs/images/countries/sl.png new file mode 100644 index 00000000..beafb9ff Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/sl.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/so.png b/lam/templates/3rdParty/pla/htdocs/images/countries/so.png new file mode 100644 index 00000000..d0875126 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/so.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/sr.png b/lam/templates/3rdParty/pla/htdocs/images/countries/sr.png new file mode 100644 index 00000000..e06354f7 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/sr.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/sy.png b/lam/templates/3rdParty/pla/htdocs/images/countries/sy.png new file mode 100644 index 00000000..be08e92c Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/sy.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/tc.png b/lam/templates/3rdParty/pla/htdocs/images/countries/tc.png new file mode 100644 index 00000000..e24e1ff8 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/tc.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/tg.png b/lam/templates/3rdParty/pla/htdocs/images/countries/tg.png new file mode 100644 index 00000000..74ed93c6 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/tg.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/th.png b/lam/templates/3rdParty/pla/htdocs/images/countries/th.png new file mode 100644 index 00000000..5e15d0e2 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/th.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/tn.png b/lam/templates/3rdParty/pla/htdocs/images/countries/tn.png new file mode 100644 index 00000000..f05f1342 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/tn.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/to.png b/lam/templates/3rdParty/pla/htdocs/images/countries/to.png new file mode 100644 index 00000000..b53e46f1 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/to.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/tp.png b/lam/templates/3rdParty/pla/htdocs/images/countries/tp.png new file mode 100644 index 00000000..f8b4dca6 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/tp.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/tr.png b/lam/templates/3rdParty/pla/htdocs/images/countries/tr.png new file mode 100644 index 00000000..0ecd06c9 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/tr.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/tt.png b/lam/templates/3rdParty/pla/htdocs/images/countries/tt.png new file mode 100644 index 00000000..927700c0 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/tt.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/tv.png b/lam/templates/3rdParty/pla/htdocs/images/countries/tv.png new file mode 100644 index 00000000..433deecc Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/tv.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/tw.png b/lam/templates/3rdParty/pla/htdocs/images/countries/tw.png new file mode 100644 index 00000000..2e82e66c Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/tw.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/tz.png b/lam/templates/3rdParty/pla/htdocs/images/countries/tz.png new file mode 100644 index 00000000..c6683356 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/tz.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ua.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ua.png new file mode 100644 index 00000000..db85d97e Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ua.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ug.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ug.png new file mode 100644 index 00000000..5c87b921 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ug.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/us.png b/lam/templates/3rdParty/pla/htdocs/images/countries/us.png new file mode 100644 index 00000000..652cb3ec Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/us.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/uy.png b/lam/templates/3rdParty/pla/htdocs/images/countries/uy.png new file mode 100644 index 00000000..aec19793 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/uy.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/va.png b/lam/templates/3rdParty/pla/htdocs/images/countries/va.png new file mode 100644 index 00000000..0fc5b5fe Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/va.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ve.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ve.png new file mode 100644 index 00000000..0a90e473 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ve.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/vg.png b/lam/templates/3rdParty/pla/htdocs/images/countries/vg.png new file mode 100644 index 00000000..1ff7ca11 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/vg.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/vi.png b/lam/templates/3rdParty/pla/htdocs/images/countries/vi.png new file mode 100644 index 00000000..c7e85728 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/vi.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/vn.png b/lam/templates/3rdParty/pla/htdocs/images/countries/vn.png new file mode 100644 index 00000000..31af3d54 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/vn.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ws.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ws.png new file mode 100644 index 00000000..654b8420 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ws.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/ye.png b/lam/templates/3rdParty/pla/htdocs/images/countries/ye.png new file mode 100644 index 00000000..4c547ccc Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/ye.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/yu.png b/lam/templates/3rdParty/pla/htdocs/images/countries/yu.png new file mode 100644 index 00000000..9947f62d Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/yu.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/za.png b/lam/templates/3rdParty/pla/htdocs/images/countries/za.png new file mode 100644 index 00000000..f9745fa7 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/za.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/countries/zw.png b/lam/templates/3rdParty/pla/htdocs/images/countries/zw.png new file mode 100644 index 00000000..7e69c9e7 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/countries/zw.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/add.png b/lam/templates/3rdParty/pla/htdocs/images/default/add.png new file mode 100644 index 00000000..fe07994c Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/add.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/calendar.png b/lam/templates/3rdParty/pla/htdocs/images/default/calendar.png new file mode 100644 index 00000000..0524cb37 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/calendar.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/catalog.png b/lam/templates/3rdParty/pla/htdocs/images/default/catalog.png new file mode 100644 index 00000000..907d939a Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/catalog.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/children.png b/lam/templates/3rdParty/pla/htdocs/images/default/children.png new file mode 100644 index 00000000..cb4448b0 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/children.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/compare.png b/lam/templates/3rdParty/pla/htdocs/images/default/compare.png new file mode 100644 index 00000000..457b2d28 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/compare.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/country.png b/lam/templates/3rdParty/pla/htdocs/images/default/country.png new file mode 100644 index 00000000..7640da3a Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/country.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/create.png b/lam/templates/3rdParty/pla/htdocs/images/default/create.png new file mode 100644 index 00000000..458c7304 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/create.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/cut.png b/lam/templates/3rdParty/pla/htdocs/images/default/cut.png new file mode 100644 index 00000000..3c21b9bd Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/cut.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/delete.gif b/lam/templates/3rdParty/pla/htdocs/images/default/delete.gif new file mode 100644 index 00000000..82128aa4 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/delete.gif differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/device.png b/lam/templates/3rdParty/pla/htdocs/images/default/device.png new file mode 100644 index 00000000..eb153a33 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/device.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/disabled.png b/lam/templates/3rdParty/pla/htdocs/images/default/disabled.png new file mode 100644 index 00000000..1c427c04 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/disabled.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/document.png b/lam/templates/3rdParty/pla/htdocs/images/default/document.png new file mode 100644 index 00000000..62ea2ee5 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/document.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/door.png b/lam/templates/3rdParty/pla/htdocs/images/default/door.png new file mode 100644 index 00000000..67209657 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/door.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/error-big.png b/lam/templates/3rdParty/pla/htdocs/images/default/error-big.png new file mode 100644 index 00000000..1de7a6fd Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/error-big.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/error.png b/lam/templates/3rdParty/pla/htdocs/images/default/error.png new file mode 100644 index 00000000..5437824d Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/error.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/export-big.png b/lam/templates/3rdParty/pla/htdocs/images/default/export-big.png new file mode 100644 index 00000000..41b3f436 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/export-big.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/export.png b/lam/templates/3rdParty/pla/htdocs/images/default/export.png new file mode 100644 index 00000000..41b3f436 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/export.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/files.png b/lam/templates/3rdParty/pla/htdocs/images/default/files.png new file mode 100644 index 00000000..ccb1d321 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/files.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/find.png b/lam/templates/3rdParty/pla/htdocs/images/default/find.png new file mode 100644 index 00000000..bee286ab Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/find.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/folder.png b/lam/templates/3rdParty/pla/htdocs/images/default/folder.png new file mode 100644 index 00000000..60b09f50 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/folder.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/hard-drive.png b/lam/templates/3rdParty/pla/htdocs/images/default/hard-drive.png new file mode 100644 index 00000000..f3da3d2c Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/hard-drive.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/help.png b/lam/templates/3rdParty/pla/htdocs/images/default/help.png new file mode 100644 index 00000000..674a8e92 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/help.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/home-big.png b/lam/templates/3rdParty/pla/htdocs/images/default/home-big.png new file mode 100644 index 00000000..d40900d9 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/home-big.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/host.png b/lam/templates/3rdParty/pla/htdocs/images/default/host.png new file mode 100644 index 00000000..87426e70 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/host.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/import-big.png b/lam/templates/3rdParty/pla/htdocs/images/default/import-big.png new file mode 100644 index 00000000..36e35b7d Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/import-big.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/info-big.png b/lam/templates/3rdParty/pla/htdocs/images/default/info-big.png new file mode 100644 index 00000000..0d826bbf Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/info-big.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/invalid.png b/lam/templates/3rdParty/pla/htdocs/images/default/invalid.png new file mode 100644 index 00000000..1c427c04 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/invalid.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/key.png b/lam/templates/3rdParty/pla/htdocs/images/default/key.png new file mode 100644 index 00000000..ccf8497e Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/key.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/ldap-alias.png b/lam/templates/3rdParty/pla/htdocs/images/default/ldap-alias.png new file mode 100644 index 00000000..7eebfdce Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/ldap-alias.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/ldap-dc.png b/lam/templates/3rdParty/pla/htdocs/images/default/ldap-dc.png new file mode 100644 index 00000000..2769a479 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/ldap-dc.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/ldap-default.png b/lam/templates/3rdParty/pla/htdocs/images/default/ldap-default.png new file mode 100644 index 00000000..7de3f48b Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/ldap-default.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/ldap-o.png b/lam/templates/3rdParty/pla/htdocs/images/default/ldap-o.png new file mode 100644 index 00000000..5acff48d Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/ldap-o.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/ldap-ou.png b/lam/templates/3rdParty/pla/htdocs/images/default/ldap-ou.png new file mode 100644 index 00000000..60b09f50 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/ldap-ou.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/ldap-server.png b/lam/templates/3rdParty/pla/htdocs/images/default/ldap-server.png new file mode 100644 index 00000000..d40900d9 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/ldap-server.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/ldap-uid.png b/lam/templates/3rdParty/pla/htdocs/images/default/ldap-uid.png new file mode 100644 index 00000000..7be48fb8 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/ldap-uid.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/ldap-uniquegroup.png b/lam/templates/3rdParty/pla/htdocs/images/default/ldap-uniquegroup.png new file mode 100644 index 00000000..8f69e2b9 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/ldap-uniquegroup.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/ldap-user.png b/lam/templates/3rdParty/pla/htdocs/images/default/ldap-user.png new file mode 100644 index 00000000..83e5b318 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/ldap-user.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/light.png b/lam/templates/3rdParty/pla/htdocs/images/default/light.png new file mode 100644 index 00000000..88598999 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/light.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/locality.png b/lam/templates/3rdParty/pla/htdocs/images/default/locality.png new file mode 100644 index 00000000..c80540b0 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/locality.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/lock.png b/lam/templates/3rdParty/pla/htdocs/images/default/lock.png new file mode 100644 index 00000000..04a05c1c Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/lock.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/mail.png b/lam/templates/3rdParty/pla/htdocs/images/default/mail.png new file mode 100644 index 00000000..6079a528 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/mail.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/minus.png b/lam/templates/3rdParty/pla/htdocs/images/default/minus.png new file mode 100644 index 00000000..6ff90668 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/minus.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/monitorserver-big.png b/lam/templates/3rdParty/pla/htdocs/images/default/monitorserver-big.png new file mode 100644 index 00000000..d40900d9 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/monitorserver-big.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/move.png b/lam/templates/3rdParty/pla/htdocs/images/default/move.png new file mode 100644 index 00000000..9542d516 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/move.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/n.png b/lam/templates/3rdParty/pla/htdocs/images/default/n.png new file mode 100644 index 00000000..a035c343 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/n.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/network.png b/lam/templates/3rdParty/pla/htdocs/images/default/network.png new file mode 100644 index 00000000..008b03fb Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/network.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/nogo.png b/lam/templates/3rdParty/pla/htdocs/images/default/nogo.png new file mode 100644 index 00000000..cf1a2034 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/nogo.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/nt_machine.png b/lam/templates/3rdParty/pla/htdocs/images/default/nt_machine.png new file mode 100644 index 00000000..4d3737a7 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/nt_machine.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/nt_user.png b/lam/templates/3rdParty/pla/htdocs/images/default/nt_user.png new file mode 100644 index 00000000..b69a641e Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/nt_user.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/phone.png b/lam/templates/3rdParty/pla/htdocs/images/default/phone.png new file mode 100644 index 00000000..f319d1a6 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/phone.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/photo.png b/lam/templates/3rdParty/pla/htdocs/images/default/photo.png new file mode 100644 index 00000000..f9574048 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/photo.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/plus.png b/lam/templates/3rdParty/pla/htdocs/images/default/plus.png new file mode 100644 index 00000000..f66b1a80 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/plus.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/process.png b/lam/templates/3rdParty/pla/htdocs/images/default/process.png new file mode 100644 index 00000000..e3495ebe Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/process.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/refresh-big.png b/lam/templates/3rdParty/pla/htdocs/images/default/refresh-big.png new file mode 100644 index 00000000..e0021413 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/refresh-big.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/refresh.png b/lam/templates/3rdParty/pla/htdocs/images/default/refresh.png new file mode 100644 index 00000000..e0021413 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/refresh.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/rename.png b/lam/templates/3rdParty/pla/htdocs/images/default/rename.png new file mode 100644 index 00000000..320d2e5f Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/rename.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/rfc.png b/lam/templates/3rdParty/pla/htdocs/images/default/rfc.png new file mode 100644 index 00000000..531caeef Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/rfc.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/save.png b/lam/templates/3rdParty/pla/htdocs/images/default/save.png new file mode 100644 index 00000000..41b3f436 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/save.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/search-big.png b/lam/templates/3rdParty/pla/htdocs/images/default/search-big.png new file mode 100644 index 00000000..bee286ab Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/search-big.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/server-settings.png b/lam/templates/3rdParty/pla/htdocs/images/default/server-settings.png new file mode 100644 index 00000000..4d8f1a1e Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/server-settings.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/server-small.png b/lam/templates/3rdParty/pla/htdocs/images/default/server-small.png new file mode 100644 index 00000000..3d1e0f6f Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/server-small.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/server.png b/lam/templates/3rdParty/pla/htdocs/images/default/server.png new file mode 100644 index 00000000..4f6c2a4d Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/server.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/switch.png b/lam/templates/3rdParty/pla/htdocs/images/default/switch.png new file mode 100644 index 00000000..907d939a Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/switch.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/terminal.png b/lam/templates/3rdParty/pla/htdocs/images/default/terminal.png new file mode 100644 index 00000000..896498a8 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/terminal.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/tools-no.png b/lam/templates/3rdParty/pla/htdocs/images/default/tools-no.png new file mode 100644 index 00000000..aef3e052 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/tools-no.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/tools.png b/lam/templates/3rdParty/pla/htdocs/images/default/tools.png new file mode 100644 index 00000000..95bd319c Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/tools.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/trash.png b/lam/templates/3rdParty/pla/htdocs/images/default/trash.png new file mode 100644 index 00000000..3b146e29 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/trash.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/tree_collapse.png b/lam/templates/3rdParty/pla/htdocs/images/default/tree_collapse.png new file mode 100644 index 00000000..1c9be759 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/tree_collapse.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/tree_collapse_corner.png b/lam/templates/3rdParty/pla/htdocs/images/default/tree_collapse_corner.png new file mode 100644 index 00000000..b3328adc Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/tree_collapse_corner.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/tree_collapse_corner_first.png b/lam/templates/3rdParty/pla/htdocs/images/default/tree_collapse_corner_first.png new file mode 100644 index 00000000..122b980d Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/tree_collapse_corner_first.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/tree_collapse_first.png b/lam/templates/3rdParty/pla/htdocs/images/default/tree_collapse_first.png new file mode 100644 index 00000000..5c438761 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/tree_collapse_first.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/tree_corner.png b/lam/templates/3rdParty/pla/htdocs/images/default/tree_corner.png new file mode 100644 index 00000000..541c5b3b Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/tree_corner.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/tree_expand.png b/lam/templates/3rdParty/pla/htdocs/images/default/tree_expand.png new file mode 100644 index 00000000..e94aecf5 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/tree_expand.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/tree_expand_corner.png b/lam/templates/3rdParty/pla/htdocs/images/default/tree_expand_corner.png new file mode 100644 index 00000000..4293f768 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/tree_expand_corner.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/tree_expand_corner_first.png b/lam/templates/3rdParty/pla/htdocs/images/default/tree_expand_corner_first.png new file mode 100644 index 00000000..5de11a6b Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/tree_expand_corner_first.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/tree_expand_first.png b/lam/templates/3rdParty/pla/htdocs/images/default/tree_expand_first.png new file mode 100644 index 00000000..034b88ec Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/tree_expand_first.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/tree_space.png b/lam/templates/3rdParty/pla/htdocs/images/default/tree_space.png new file mode 100644 index 00000000..fbdfa6a8 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/tree_space.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/tree_split.png b/lam/templates/3rdParty/pla/htdocs/images/default/tree_split.png new file mode 100644 index 00000000..1a49fab4 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/tree_split.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/tree_split_first.png b/lam/templates/3rdParty/pla/htdocs/images/default/tree_split_first.png new file mode 100644 index 00000000..e915d03e Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/tree_split_first.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/tree_vertline.png b/lam/templates/3rdParty/pla/htdocs/images/default/tree_vertline.png new file mode 100644 index 00000000..261ff13e Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/tree_vertline.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/unknown.png b/lam/templates/3rdParty/pla/htdocs/images/default/unknown.png new file mode 100644 index 00000000..2164ac14 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/unknown.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/up.png b/lam/templates/3rdParty/pla/htdocs/images/default/up.png new file mode 100644 index 00000000..865ec155 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/up.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/default/warn-big.png b/lam/templates/3rdParty/pla/htdocs/images/default/warn-big.png new file mode 100644 index 00000000..d83f3491 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/default/warn-big.png differ diff --git a/lam/templates/3rdParty/pla/htdocs/images/favicon.ico b/lam/templates/3rdParty/pla/htdocs/images/favicon.ico new file mode 100644 index 00000000..1134d0c2 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/images/favicon.ico differ diff --git a/lam/templates/3rdParty/pla/htdocs/import.php b/lam/templates/3rdParty/pla/htdocs/import.php new file mode 100644 index 00000000..5f4a22ff --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/import.php @@ -0,0 +1,111 @@ +getIndex(),'LDIF'); +$request['import'] = $request['importer']->getTemplate(); + +$request['continuous_mode'] = get_request('continuous_mode') ? true : false; + +$type = $request['import']->getType(); + +# Set our timelimit in case we have a lot of importing to do +@set_time_limit(0); + +# String associated to the operation on the ldap server +$actionString = array( + 'add' => _('Adding'), + 'delete' => _('Deleting'), + 'modrdn' => _('Renaming'), + 'moddn' => _('Renaming'), + 'modify' => _('Modifying') + ); + +# String associated with error +$actionErrorMsg = array( + 'add' => _('Could not add object'), + 'delete' => _('Could not delete object'), + 'modrdn' => _('Could not rename the entry.'), + 'moddn' => _('Could not rename the entry.'), + 'modify' => _('Could not modify object') + ); + +$request['page'] = new PageRender($app['server']->getIndex(),get_request('template','REQUEST',false,'none')); +$request['page']->drawTitle(sprintf('%s',_('Import'))); +$request['page']->drawSubTitle(sprintf('%s: %s %s: %s %s %s (%s)', + _('Server'),$app['server']->getName(), + _('File'),$request['import']->getSource('name'),number_format($request['import']->getSource('size')),_('bytes'),$type['description'])); + +echo '
    '; + +# @todo When renaming DNs, the hotlink should point to the new entry on success, or the old entry on failure. +while (! $request['import']->eof()) { + while ($request['template'] = $request['import']->readEntry()) { + + $edit_href = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s',$app['server']->getIndex(), + rawurlencode($request['template']->getDN())); + + $changetype = $request['template']->getType(); + printf('%s %s',$actionString[$changetype],$edit_href,$request['template']->getDN()); + + if ($request['import']->LDAPimport()) + printf(' %s
    ',_('Success')); + + else { + printf(' %s

    ',_('Failed')); + $errormsg = sprintf('%s %s',$actionErrorMsg[$changetype],$request['template']->getDN()); + $errormsg .= ldap_error_msg($app['server']->getErrorMessage(null),$app['server']->getErrorNum(null)); + + system_message(array( + 'title'=>_('LDIF import'), + 'body'=>$errormsg, + 'type'=>'warn')); + } + } + + if ($request['import']->error) { + printf('%s: %s
    ', + _('Error'),$request['import']->error['message']); + + echo '
    '; + + display_pla_parse_error($request['import']); + } + + if (! $request['continuous_mode']) + break; +} + +function display_pla_parse_error($request) { + $type = $request->getType(); + + echo '
    '; + echo ''; + echo ''; + printf('',IMGDIR,'error-big.png'); + + printf('',$type['description'],_('Parse error')); + echo ''; + + printf('',_('Description'),$request->error['message']); + printf('',_('Line'),$request->error['line']); + printf('',_('Data')); + + foreach ($request->error['data'] as $line) + printf('',$line); + + echo '

    %s %s

    %s:%s
    %s:%s
    %s:
     %s
    '; + echo '
    '; +} +?> diff --git a/lam/templates/3rdParty/pla/htdocs/import_form.php b/lam/templates/3rdParty/pla/htdocs/import_form.php new file mode 100644 index 00000000..52f5c3a8 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/import_form.php @@ -0,0 +1,47 @@ +getIndex(),get_request('template','REQUEST',false,'none')); +$request['page']->drawTitle(sprintf('%s',_('Import'))); + +echo '
    '; +echo '
    '; +printf('',$app['server']->getIndex()); +echo ''; +echo '
    '; + +echo ''; + +echo ''; +echo ''; +printf('',_('Select an LDIF file')); +echo ''; + +printf('',_('Maximum file size'),ini_get('upload_max_filesize')); + +echo ''; +printf('',_('Or paste your LDIF here')); +echo ''; +echo ''; +printf('', + _("Don't stop on errors")); +printf('',_('Proceed')); +echo '
     
    %s'; +echo ''; +echo '
     %s %s
     
    %s
     
     %s
     
    '; +echo '
    '; +?> diff --git a/lam/templates/3rdParty/pla/htdocs/index.php b/lam/templates/3rdParty/pla/htdocs/index.php new file mode 100644 index 00000000..6e782d27 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/index.php @@ -0,0 +1,147 @@ + + +If you are seeing this in your browser, +PHP is not installed on your web server!!! + + +*******************************************/ + +/** + * We will perform some sanity checking here, since this file is normally loaded first when users + * first access the application. + */ + +# The index we will store our config in $_SESSION +define('APPCONFIG','plaConfig'); + +define('LIBDIR',sprintf('%s/',realpath('../lib/'))); +ini_set('display_errors',1); +error_reporting(E_ALL); + +# General functions needed to proceed. +ob_start(); +if (! file_exists(LIBDIR.'functions.php')) { + if (ob_get_level()) ob_end_clean(); + die(sprintf("Fatal error: Required file '%sfunctions.php' does not exist.",LIBDIR)); +} + +if (! is_readable(LIBDIR.'functions.php')) { + if (ob_get_level()) ob_end_clean(); + die(sprintf("Cannot read the file '%sfunctions.php' its permissions may be too strict.",LIBDIR)); +} + +if (ob_get_level()) + ob_end_clean(); + +# Make sure this PHP install has pcre +if (! extension_loaded('pcre')) + die('

    Your install of PHP appears to be missing PCRE support.

    Please install PCRE support before using phpLDAPadmin.
    (Dont forget to restart your web server afterwards)

    '); + +require LIBDIR.'functions.php'; + +# Define the path to our configuration file. +if (defined('CONFDIR')) + $app['config_file'] = CONFDIR.'config.php'; +else + $app['config_file'] = 'config.php'; + +# Make sure this PHP install has session support +if (! extension_loaded('session')) + error('

    Your install of PHP appears to be missing php-session support.

    Please install php-session support before using phpLDAPadmin.
    (Dont forget to restart your web server afterwards)

    ','error',null,true); + +# Make sure this PHP install has gettext, we use it for language translation +if (! extension_loaded('gettext')) + system_message(array( + 'title'=>('Missing required extension'), + 'body'=>'Your install of PHP appears to be missing GETTEXT support.

    GETTEXT is used for language translation.

    Please install GETTEXT support before using phpLDAPadmin.
    (Dont forget to restart your web server afterwards)', + 'type'=>'error')); + +# Make sure this PHP install has all our required extensions +if (! extension_loaded('ldap')) + system_message(array( + 'title'=>('Missing required extension'), + 'body'=>'Your install of PHP appears to be missing LDAP support.

    Please install LDAP support before using phpLDAPadmin.
    (Dont forget to restart your web server afterwards)', + 'type'=>'error')); + +# Make sure that we have php-xml loaded. +if (! function_exists('xml_parser_create')) + system_message(array( + 'title'=>('Missing required extension'), + 'body'=>'Your install of PHP appears to be missing XML support.

    Please install XML support before using phpLDAPadmin.
    (Dont forget to restart your web server afterwards)', + 'type'=>'error')); + +/** + * Helper functions. + * Our required helper functions are defined in functions.php + */ +if (isset($app['function_files']) && is_array($app['function_files'])) + foreach ($app['function_files'] as $file_name ) { + if (! file_exists($file_name)) + error(sprintf('Fatal error: Required file "%s" does not exist.',$file_name),'error',null,true); + + if (! is_readable($file_name)) + error(sprintf('Fatal error: Cannot read the file "%s", its permissions may be too strict.',$file_name),'error',null,true); + + ob_start(); + require $file_name; + if (ob_get_level()) ob_end_clean(); + } + +# Configuration File check +if (! file_exists($app['config_file'])) { + error(sprintf(('You need to configure %s. Edit the file "%s" to do so. An example config file is provided in "%s.example".'),app_name(),$app['config_file'],$app['config_file']),'error',null,true); + +} elseif (! is_readable($app['config_file'])) { + error(sprintf('Fatal error: Cannot read your configuration file "%s", its permissions may be too strict.',$app['config_file']),'error',null,true); +} + +# If our config file fails the sanity check, then stop now. +if (! $config = check_config($app['config_file'])) { + $www['page'] = new page(); + $www['body'] = new block(); + $www['page']->block_add('body',$www['body']); + $www['page']->display(); + exit; + +} else { + app_session_start(); + $_SESSION[APPCONFIG] = $config; +} + +if ($uri = get_request('URI','GET')) + header(sprintf('Location: cmd.php?%s',base64_decode($uri))); + +if (! preg_match('/^([0-9]+\.?)+/',app_version())) { + system_message(array( + 'title'=>('This is a development version of phpLDAPadmin'), + 'body'=>'This is a development version of phpLDAPadmin! You should NOT use it in a production environment (although we dont think it should do any damage).', + 'type'=>'info','special'=>true)); + + if (count($_SESSION[APPCONFIG]->untested())) + system_message(array( + 'title'=>'Untested configuration paramaters', + 'body'=>sprintf('The following parameters have not been tested. If you have configured these parameters, and they are working as expected, please let the developers know, so that they can be removed from this message.
    %s',implode(', ',$_SESSION[APPCONFIG]->untested())), + 'type'=>'info','special'=>true)); + + $server = $_SESSION[APPCONFIG]->getServer(get_request('server_id','REQUEST')); + if (count($server->untested())) + system_message(array( + 'title'=>'Untested server configuration paramaters', + 'body'=>sprintf('The following parameters have not been tested. If you have configured these parameters, and they are working as expected, please let the developers know, so that they can be removed from this message.
    %s',implode(', ',$server->untested())), + 'type'=>'info','special'=>true)); +} + +include './cmd.php'; +?> diff --git a/lam/templates/3rdParty/pla/htdocs/js/CheckAll.js b/lam/templates/3rdParty/pla/htdocs/js/CheckAll.js new file mode 100644 index 00000000..0f91f105 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/CheckAll.js @@ -0,0 +1,22 @@ +function CheckAll(setbgcolor,form,index) { + htmlform = document.getElementById(form+index); + + for (var i=0;i= 0) return component.options[component.selectedIndex].value; + } else if (component.type == "select-multiple") { + if (component.selectedIndex >= 0) return component.options[component.selectedIndex].value; + } else if (component.type == undefined) { // option + if (component.selected) return component.value; + } else { + return component.value; + } + return ""; +} + +function pla_setComponentValue(component,value) { + if (component.type == "checkbox") { + if (component.value == value) component.checked = true; + else component.checked = false; + } else if (component.type == "select-one") { + for (var i = 0; i < component.options.length; i++) { + if (component.options[i].value == value) component.options[i].selected = true; + } + } else if (component.type == "select-multiple") { + for (var i = 0; i < component.options.length; i++) { + if (component.options[i].value == value) component.options[i].selected = true; + } + } else if (component.type == undefined) { // option + if (component.value == value) component.selected = true; + else component.selected = false; + } else { + component.value = value; + } +} + +function getAttributeComponents(prefix,name) { + var components = new Array(); + var i = 0; + var j = 0; + var c = pla_getComponentsByName(prefix + "_values[" + name + "][" + j + "]"); + while (c && (c.length > 0)) { + for (var k = 0; k < c.length; k++) { + components[i++] = c[k]; + } + ++j; + c = pla_getComponentsByName(prefix + "_values[" + name + "][" + j + "]"); + } + c = pla_getComponentsByName(prefix + "_values[" + name + "][]"); + if (c && (c.length > 0)) { + for (var k = 0; k < c.length; k++) { + components[i++] = c[k]; + } + } + return components; +} + +function getAttributeValues(prefix,name) { + var components = getAttributeComponents(prefix,name); + var values = new Array(); + for (var k = 0; k < components.length; k++) { + var val = pla_getComponentValue(components[k]); + if (val) values[values.length] = val; + } + return values; +} + +function submitForm(form) { + for (var i = 0; i < form.elements.length; i++) { + form.elements[i].blur(); + } + return validateForm(true); +} + +function alertError(err,silence) { + if (!silence) alert(err); +} diff --git a/lam/templates/3rdParty/pla/htdocs/js/ajax_functions.js b/lam/templates/3rdParty/pla/htdocs/js/ajax_functions.js new file mode 100644 index 00000000..4a0b7c4f --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/ajax_functions.js @@ -0,0 +1,253 @@ +/** + * @package phpLDAPadmin + * @author The phpLDAPadmin development team + * @author Xavier Bruyet + */ + +// current request +var http_div = ''; +var http_request = null; +var http_request_success_callback = ''; +var http_request_error_callback = ''; + +function ajSUBMIT(div,obj,display) { + var pageDiv = getDiv(div); + + window.scrollTo(0,0); + + makeHttpRequest('cmd.php',getParameters(obj.parentNode)+'meth=ajax','POST','alertAJ','cancelAJ',div); + + if (pageDiv) + includeHTML(pageDiv,'
    '+display+'...'); + else + return true; + + return false; +} + +function ajDISPLAY(div,urlParameters,display,ns) { + var pageDiv = getDiv(div); + + if (! ns) + window.scrollTo(0,0); + + makeHttpRequest('cmd.php',urlParameters+'&meth=ajax','GET','alertAJ','cancelAJ',div); + + if (pageDiv) + includeHTML(pageDiv,'
    '+display+'...'); + else + return true; + + return false; +} + +function ajJUMP(url,title,index,prefix) { + var attr = prefix ? document.getElementById(prefix+index).value : index; + + if (attr) + url += '&viewvalue='+attr; + + return ajDISPLAY('BODY',url,'Loading '+title); +} + +function ajSHOWTHIS(key,except,ctl) { + select = document.getElementById(key+except); + + if (select.style.display == '') + return false; + + hideall(key,except,ctl); + + return false; +}; + +function ajSHOWSCHEMA(type,key,value) { + select = document.getElementById(type); + + if (value != null) { + except = value; + select.value = value; + } else { + except = select.value; + } + + if (! except) { + showall(key); + } else { + objectclass = document.getElementById(key+except); + objectclass.style.display = ''; + hideall(key,except); + }; + + return false; +}; + +function hideall(key,except,ctl) { + items = items(); + + for (x in items) { + if (! isNaN(x) && except != items[x]) { + item = document.getElementById(key+items[x]); + item.style.display = 'none'; + + if (ctl && (item = document.getElementById(ctl+items[x]))) { + item.style.background = '#E0E0E0'; + } + + } else if (! isNaN(x) && except == items[x]) { + item = document.getElementById(key+items[x]); + item.style.display = ''; + + if (ctl && (item = document.getElementById(ctl+items[x]))) { + item.style.background = '#F0F0F0'; + } + } + } +} + +function showall(key) { + items = items(); + + for (x in items) { + if (! isNaN(x)) { + item = document.getElementById(key+items[x]); + item.style.display = ''; + } + } +} + +// include html into a component +function includeHTML(component,html) { + if (typeof(component) != 'object' || typeof(html) != 'string') return; + component.innerHTML = html; + + var scripts = component.getElementsByTagName('script'); + if (!scripts) return; + + // load scripts + for (var i = 0; i < scripts.length; i++) { + var scriptclone = document.createElement('script'); + if (scripts[i].attributes.length > 0) { + for (var j in scripts[i].attributes) { + if (typeof(scripts[i].attributes[j]) != 'undefined' + && typeof(scripts[i].attributes[j].nodeName) != 'undefined' + && scripts[i].attributes[j].nodeValue != null + && scripts[i].attributes[j].nodeValue != '') { + scriptclone.setAttribute(scripts[i].attributes[j].nodeName,scripts[i].attributes[j].nodeValue); + } + } + } + scriptclone.text = scripts[i].text; + scripts[i].parentNode.replaceChild(scriptclone,scripts[i]); + eval(scripts[i].innerHTML); + } +} + +// callback function +function alertHttpRequest() { + if (http_request && (http_request.readyState == 4)) { + if (http_request.status == 200 || http_request.status == 401) { + response = http_request.responseText; + http_request = null; + //alert(response); + if (http_request_success_callback) { + eval(http_request_success_callback + '(response,http_div)'); + } + } else { + alert('There was a problem with the request.'); + cancelHttpRequest(); + } + } +} + +function cancelHttpRequest() { + if (http_request) { + http_request = null; + if (http_request_error_callback) { + eval(http_request_error_callback + '(http_div)'); + } + } +} + +function makeHttpRequest(url,parameters,meth,successCallbackFunctionName,errorCallbackFunctionName,div) { + cancelHttpRequest(div); + + http_request_success_callback = successCallbackFunctionName; + http_request_error_callback = errorCallbackFunctionName; + http_div = div; + + if (window.XMLHttpRequest) { // Mozilla, Safari,... + http_request = new XMLHttpRequest(); + if (http_request.overrideMimeType) { + http_request.overrideMimeType('text/html'); + } + + } else if (window.ActiveXObject) { // IE + try { + http_request = new ActiveXObject('Msxml2.XMLHTTP'); + } catch (e) { + try { + http_request = new ActiveXObject('Microsoft.XMLHTTP'); + } catch (e) {} + } + } + + if (!http_request) { + alert('Cannot create XMLHTTP instance.'); + return false; + } + + http_request.onreadystatechange = window['alertHttpRequest']; + if (meth == 'GET') url = url + '?' + parameters; + http_request.open(meth,url,true); + + http_request.setRequestHeader('Content-type','application/x-www-form-urlencoded'); + http_request.setRequestHeader('Content-length',parameters.length); + http_request.setRequestHeader('Connection','close'); + + if (meth == 'GET') parameters = null; + http_request.send(parameters); +} + +function getParameters(obj) { + var elements = ['input','select','textarea']; + var getstr = ''; + + for (var j in elements) { + for (i=0; i expand ; (action = 2) => collapse + if (oldimg.indexOf(imgdir+'/tree_expand.png') > -1) { + newimg = imgdir+'/tree_collapse.png'; + action = 1; + } else if (oldimg.indexOf(imgdir+'/tree_expand_first.png') > -1) { + newimg = imgdir+'/tree_collapse_first.png'; + action = 1; + } else if (oldimg.indexOf(imgdir+'/tree_expand_corner.png') > -1) { + newimg = imgdir+'/tree_collapse_corner.png'; + action = 1; + } else if (oldimg.indexOf(imgdir+'/tree_expand_corner_first.png') > -1) { + newimg = imgdir+'/tree_collapse_corner_first.png'; + action = 1; + } else if (oldimg.indexOf(imgdir+'/tree_collapse.png') > -1) { + newimg = imgdir+'/tree_expand.png'; + action = 2; + } else if (oldimg.indexOf(imgdir+'/tree_collapse_first.png') > -1) { + newimg = imgdir+'/tree_expand_first.png'; + action = 2; + } else if (oldimg.indexOf(imgdir+'/tree_collapse_corner.png') > -1) { + newimg = imgdir+'/tree_expand_corner.png'; + action = 2; + } else if (oldimg.indexOf(imgdir+'/tree_collapse_corner_first.png') > -1) { + newimg = imgdir+'/tree_expand_corner_first.png'; + action = 2; + } + nodeLayer.src = 'images/ajax-spinner.gif'; + + // perform action + if (action == 2) { + newstyle = 'none'; + updateNewStyle(); + addCollapsedNode(nodeid); + } else if (action == 1) { + newstyle = 'block'; + if (sonLayer.innerHTML == '') { + makeHttpRequest('cmd.php',params+'&cmd=draw_tree_node&action=1','GET','alertTreeNodeContents','cancelNewStyle'); + } else { + updateNewStyle(); + } + delCollapsedNode(nodeid); + } + return false; +} + +function getDiv(div) { + if (!IE4) { + return document.getElementById('aj'+div); + } else { + return document.all('aj'+div); + } +} + +function alertAJ(html,div) { + var pageDiv = getDiv(div); + if (pageDiv) includeHTML(pageDiv, html); +} + +function cancelAJ(div) { + var pageDiv = getDiv(div); + if (pageDiv) includeHTML(pageDiv, ''); +} + +// close initial collapsed nodes +// Cant figure out why, but this runs twice in AJAX mode when using "refresh". +// Causing the collapsedNodes to be incorrect. +readCollapsedNodes(); +for (k = 0; k < collapsedNodes.length; k++) { + opencloseTreeNode(collapsedNodes[k],'#','images/default'); +} + +var current; + +function tree_unhide(whichLayer,old) { + if (current == null) current = old; + + var oldtree = document.getElementById('ajSID_'+current).style; + oldtree.display = 'none'; + + if (document.getElementById) { + // this is the way the standards work + var newtree = document.getElementById(whichLayer).value; + var newtree_div = document.getElementById('ajSID_'+newtree).style; + newtree_div.display = 'block'; + } + + current = newtree; +} diff --git a/lam/templates/3rdParty/pla/htdocs/js/date_selector.js b/lam/templates/3rdParty/pla/htdocs/js/date_selector.js new file mode 100644 index 00000000..eed89d68 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/date_selector.js @@ -0,0 +1,75 @@ +function dateSelector(id) { + var el = document.getElementById('new_values_'+id); + var format = gettype(el.id); + var epoch; + var parse = false; + + var cal = new Calendar(0, null, onSelect, onClose); + + if (defaults['f_time_'+id]) { + cal.showsTime = true; + } else { + cal.showsTime = false; + } + + cal.weekNumbers = true; + cal.showsOtherMonths = true; + cal.create(); + + // convert to milliseconds (Epoch is usually expressed in seconds, but Javascript uses Milliseconds) + switch (format) { + case '%es' : epoch = el.value * 86400 * 1000; + format = '%s'; + parse = true; + break; + case '%s' : epoch = el.value * 1000; + parse = true; + break; + } + + // Convert the value to the date so that the calendar will display it + if (parse) { + var dDate = new Date(); + dDate.setTime(epoch); + cal.setDateFormat('%a, %d %b %Y'); // set the specified date format + cal.parseDate(dDate.toString()); // try to parse the text in field + cal.setDateFormat(format); // set the specified date format + } else { + cal.setDateFormat(format); // set the specified date format + cal.parseDate(el.value); // try to parse the text in field + } + + cal.sel = el; // inform it what input field we use + cal.showAtElement(el, 'BR'); // show the calendar +} + +function onSelect(calendar,date) { + switch (gettype(calendar.sel.id)) { + case '%es' : date = Math.round(date / 86400); + break; + } + + calendar.sel.value = date; + if (calendar.dateClicked) + onClose(calendar); +} + +function onClose(calendar,date) { + calendar.hide(); +} + +function gettype(attr) { + if (typeof defaults == "undefined") { + return '%s'; + } + + if (typeof defaults[attr] == "undefined") { + if (typeof default_date_format == "undefined") { + return '%s'; + } else { + return default_date_format; + } + } else { + return defaults[attr]; + } +} diff --git a/lam/templates/3rdParty/pla/htdocs/js/dnChooserPopup.js b/lam/templates/3rdParty/pla/htdocs/js/dnChooserPopup.js new file mode 100644 index 00000000..d95b48ad --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/dnChooserPopup.js @@ -0,0 +1,6 @@ +function dnChooserPopup(form,element,rdn) +{ + mywindow=open('entry_chooser.php','myname','resizable=no,width=600,height=370,scrollbars=1'); + mywindow.location.href = 'entry_chooser.php?form=' + form + '&element=' + element + '&rdn=' + rdn; + if (mywindow.opener == null) mywindow.opener = self; +} diff --git a/lam/templates/3rdParty/pla/htdocs/js/form_field_toggle_enable.js b/lam/templates/3rdParty/pla/htdocs/js/form_field_toggle_enable.js new file mode 100644 index 00000000..f26d1ebc --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/form_field_toggle_enable.js @@ -0,0 +1,51 @@ +/** + * This function will provide a enable/disable toggle for a HTML form field + */ +function form_field_toggle_enable(field,disable,focus,rev) { + var i; + var result; + var element; + + switch (field.type) { + case 'checkbox': + if (field.checked) + result = rev ? false : true; + else + result = rev ? true : false; + + for (i=0;i", ">>" buttons have this class */ + text-align: center; /* They are the navigation buttons */ + padding: 2px; /* Make the buttons seem like they're pressing */ +} + +.calendar .nav { + background: #778 url(menuarrow.gif) no-repeat 100% 100%; +} + +.calendar thead .title { /* This holds the current "month, year" */ + font-weight: bold; /* Pressing it will take you to the current date */ + text-align: center; + background: #fff; + color: #000; + padding: 2px; +} + +.calendar thead .headrow { /* Row containing navigation buttons */ + background: #778; + color: #fff; +} + +.calendar thead .daynames { /* Row containing the day names */ + background: #bdf; +} + +.calendar thead .name { /* Cells containing the day names */ + border-bottom: 1px solid #556; + padding: 2px; + text-align: center; + color: #000; +} + +.calendar thead .weekend { /* How a weekend day name shows in header */ + color: #a66; +} + +.calendar thead .hilite { /* How do the buttons in header appear when hover */ + background-color: #aaf; + color: #000; + border: 1px solid #04f; + padding: 1px; +} + +.calendar thead .active { /* Active (pressed) buttons in header */ + background-color: #77c; + padding: 2px 0px 0px 2px; +} + +/* The body part -- contains all the days in month. */ + +.calendar tbody .day { /* Cells containing month days dates */ + width: 2em; + color: #456; + text-align: right; + padding: 2px 4px 2px 2px; +} +.calendar tbody .day.othermonth { + font-size: 80%; + color: #bbb; +} +.calendar tbody .day.othermonth.oweekend { + color: #fbb; +} + +.calendar table .wn { + padding: 2px 3px 2px 2px; + border-right: 1px solid #000; + background: #bdf; +} + +.calendar tbody .rowhilite td { + background: #def; +} + +.calendar tbody .rowhilite td.wn { + background: #eef; +} + +.calendar tbody td.hilite { /* Hovered cells */ + background: #def; + padding: 1px 3px 1px 1px; + border: 1px solid #bbb; +} + +.calendar tbody td.active { /* Active (pressed) cells */ + background: #cde; + padding: 2px 2px 0px 2px; +} + +.calendar tbody td.selected { /* Cell showing today date */ + font-weight: bold; + border: 1px solid #000; + padding: 1px 3px 1px 1px; + background: #fff; + color: #000; +} + +.calendar tbody td.weekend { /* Cells showing weekend days */ + color: #a66; +} + +.calendar tbody td.today { /* Cell showing selected date */ + font-weight: bold; + color: #00f; +} + +.calendar tbody .disabled { color: #999; } + +.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */ + visibility: hidden; +} + +.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */ + display: none; +} + +/* The footer part -- status bar and "Close" button */ + +.calendar tfoot .footrow { /* The in footer (only one right now) */ + text-align: center; + background: #556; + color: #fff; +} + +.calendar tfoot .ttip { /* Tooltip (status bar) cell */ + background: #fff; + color: #445; + border-top: 1px solid #556; + padding: 1px; +} + +.calendar tfoot .hilite { /* Hover style for buttons in footer */ + background: #aaf; + border: 1px solid #04f; + color: #000; + padding: 1px; +} + +.calendar tfoot .active { /* Active (pressed) style for buttons in footer */ + background: #77c; + padding: 2px 0px 0px 2px; +} + +/* Combo boxes (menus that display months/years for direct selection) */ + +.calendar .combo { + position: absolute; + display: none; + top: 0px; + left: 0px; + width: 4em; + cursor: default; + border: 1px solid #655; + background: #def; + color: #000; + font-size: 90%; + z-index: 100; +} + +.calendar .combo .label, +.calendar .combo .label-IEfix { + text-align: center; + padding: 1px; +} + +.calendar .combo .label-IEfix { + width: 4em; +} + +.calendar .combo .hilite { + background: #acf; +} + +.calendar .combo .active { + border-top: 1px solid #46a; + border-bottom: 1px solid #46a; + background: #eef; + font-weight: bold; +} + +.calendar td.time { + border-top: 1px solid #000; + padding: 1px 0px; + text-align: center; + background-color: #f4f0e8; +} + +.calendar td.time .hour, +.calendar td.time .minute, +.calendar td.time .ampm { + padding: 0px 3px 0px 4px; + border: 1px solid #889; + font-weight: bold; + background-color: #fff; +} + +.calendar td.time .ampm { + text-align: center; +} + +.calendar td.time .colon { + padding: 0px 2px 0px 3px; + font-weight: bold; +} + +.calendar td.time span.hilite { + border-color: #000; + background-color: #667; + color: #fff; +} + +.calendar td.time span.active { + border-color: #f00; + background-color: #000; + color: #0f0; +} diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/calendar-setup.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/calendar-setup.js new file mode 100644 index 00000000..c269f7dd --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/calendar-setup.js @@ -0,0 +1,200 @@ +/* Copyright Mihai Bazon, 2002, 2003 | http://dynarch.com/mishoo/ + * --------------------------------------------------------------------------- + * + * The DHTML Calendar + * + * Details and latest version at: + * http://dynarch.com/mishoo/calendar.epl + * + * This script is distributed under the GNU Lesser General Public License. + * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html + * + * This file defines helper functions for setting up the calendar. They are + * intended to help non-programmers get a working calendar on their site + * quickly. This script should not be seen as part of the calendar. It just + * shows you what one can do with the calendar, while in the same time + * providing a quick and simple method for setting it up. If you need + * exhaustive customization of the calendar creation process feel free to + * modify this code to suit your needs (this is recommended and much better + * than modifying calendar.js itself). + */ + +// $Id$ + +/** + * This function "patches" an input field (or other element) to use a calendar + * widget for date selection. + * + * The "params" is a single object that can have the following properties: + * + * prop. name | description + * ------------------------------------------------------------------------------------------------- + * inputField | the ID of an input field to store the date + * displayArea | the ID of a DIV or other element to show the date + * button | ID of a button or other element that will trigger the calendar + * eventName | event that will trigger the calendar, without the "on" prefix (default: "click") + * ifFormat | date format that will be stored in the input field + * daFormat | the date format that will be used to display the date in displayArea + * singleClick | (true/false) wether the calendar is in single click mode or not (default: true) + * firstDay | numeric: 0 to 6. "0" means display Sunday first, "1" means display Monday first, etc. + * align | alignment (default: "Br"); if you don't know what's this see the calendar documentation + * range | array with 2 elements. Default: [1900, 2999] -- the range of years available + * weekNumbers | (true/false) if it's true (default) the calendar will display week numbers + * flat | null or element ID; if not null the calendar will be a flat calendar having the parent with the given ID + * flatCallback | function that receives a JS Date object and returns an URL to point the browser to (for flat calendar) + * disableFunc | function that receives a JS Date object and should return true if that date has to be disabled in the calendar + * onSelect | function that gets called when a date is selected. You don't _have_ to supply this (the default is generally okay) + * onClose | function that gets called when the calendar is closed. [default] + * onUpdate | function that gets called after the date is updated in the input field. Receives a reference to the calendar. + * date | the date that the calendar will be initially displayed to + * showsTime | default: false; if true the calendar will include a time selector + * timeFormat | the time format; can be "12" or "24", default is "12" + * electric | if true (default) then given fields/date areas are updated for each move; otherwise they're updated only on close + * step | configures the step of the years in drop-down boxes; default: 2 + * position | configures the calendar absolute position; default: null + * cache | if "true" (but default: "false") it will reuse the same calendar object, where possible + * showOthers | if "true" (but default: "false") it will show days from other months too + * + * None of them is required, they all have default values. However, if you + * pass none of "inputField", "displayArea" or "button" you'll get a warning + * saying "nothing to setup". + */ +Calendar.setup = function (params) { + function param_default(pname, def) { if (typeof params[pname] == "undefined") { params[pname] = def; } }; + + param_default("inputField", null); + param_default("displayArea", null); + param_default("button", null); + param_default("eventName", "click"); + param_default("ifFormat", "%Y/%m/%d"); + param_default("daFormat", "%Y/%m/%d"); + param_default("singleClick", true); + param_default("disableFunc", null); + param_default("dateStatusFunc", params["disableFunc"]); // takes precedence if both are defined + param_default("dateText", null); + param_default("firstDay", null); + param_default("align", "Br"); + param_default("range", [1900, 2999]); + param_default("weekNumbers", true); + param_default("flat", null); + param_default("flatCallback", null); + param_default("onSelect", null); + param_default("onClose", null); + param_default("onUpdate", null); + param_default("date", null); + param_default("showsTime", false); + param_default("timeFormat", "24"); + param_default("electric", true); + param_default("step", 2); + param_default("position", null); + param_default("cache", false); + param_default("showOthers", false); + param_default("multiple", null); + + var tmp = ["inputField", "displayArea", "button"]; + for (var i in tmp) { + if (typeof params[tmp[i]] == "string") { + params[tmp[i]] = document.getElementById(params[tmp[i]]); + } + } + if (!(params.flat || params.multiple || params.inputField || params.displayArea || params.button)) { + alert("Calendar.setup:\n Nothing to setup (no fields found). Please check your code"); + return false; + } + + function onSelect(cal) { + var p = cal.params; + var update = (cal.dateClicked || p.electric); + if (update && p.inputField) { + p.inputField.value = cal.date.print(p.ifFormat); + if (typeof p.inputField.onchange == "function") + p.inputField.onchange(); + } + if (update && p.displayArea) + p.displayArea.innerHTML = cal.date.print(p.daFormat); + if (update && typeof p.onUpdate == "function") + p.onUpdate(cal); + if (update && p.flat) { + if (typeof p.flatCallback == "function") + p.flatCallback(cal); + } + if (update && p.singleClick && cal.dateClicked) + cal.callCloseHandler(); + }; + + if (params.flat != null) { + if (typeof params.flat == "string") + params.flat = document.getElementById(params.flat); + if (!params.flat) { + alert("Calendar.setup:\n Flat specified but can't find parent."); + return false; + } + var cal = new Calendar(params.firstDay, params.date, params.onSelect || onSelect); + cal.showsOtherMonths = params.showOthers; + cal.showsTime = params.showsTime; + cal.time24 = (params.timeFormat == "24"); + cal.params = params; + cal.weekNumbers = params.weekNumbers; + cal.setRange(params.range[0], params.range[1]); + cal.setDateStatusHandler(params.dateStatusFunc); + cal.getDateText = params.dateText; + if (params.ifFormat) { + cal.setDateFormat(params.ifFormat); + } + if (params.inputField && typeof params.inputField.value == "string") { + cal.parseDate(params.inputField.value); + } + cal.create(params.flat); + cal.show(); + return false; + } + + var triggerEl = params.button || params.displayArea || params.inputField; + triggerEl["on" + params.eventName] = function() { + var dateEl = params.inputField || params.displayArea; + var dateFmt = params.inputField ? params.ifFormat : params.daFormat; + var mustCreate = false; + var cal = window.calendar; + if (dateEl) + params.date = Date.parseDate(dateEl.value || dateEl.innerHTML, dateFmt); + if (!(cal && params.cache)) { + window.calendar = cal = new Calendar(params.firstDay, + params.date, + params.onSelect || onSelect, + params.onClose || function(cal) { cal.hide(); }); + cal.showsTime = params.showsTime; + cal.time24 = (params.timeFormat == "24"); + cal.weekNumbers = params.weekNumbers; + mustCreate = true; + } else { + if (params.date) + cal.setDate(params.date); + cal.hide(); + } + if (params.multiple) { + cal.multiple = {}; + for (var i = params.multiple.length; --i >= 0;) { + var d = params.multiple[i]; + var ds = d.print("%Y%m%d"); + cal.multiple[ds] = d; + } + } + cal.showsOtherMonths = params.showOthers; + cal.yearStep = params.step; + cal.setRange(params.range[0], params.range[1]); + cal.params = params; + cal.setDateStatusHandler(params.dateStatusFunc); + cal.getDateText = params.dateText; + cal.setDateFormat(dateFmt); + if (mustCreate) + cal.create(); + cal.refresh(); + if (!params.position) + cal.showAtElement(params.button || params.displayArea || params.inputField, params.align); + else + cal.showAt(params.position[0], params.position[1]); + return false; + }; + + return cal; +}; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/calendar.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/calendar.js new file mode 100644 index 00000000..f6c13981 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/calendar.js @@ -0,0 +1,1806 @@ +/* Copyright Mihai Bazon, 2002-2005 | www.bazon.net/mishoo + * ----------------------------------------------------------- + * + * The DHTML Calendar, version 1.0 "It is happening again" + * + * Details and latest version at: + * www.dynarch.com/projects/calendar + * + * This script is developed by Dynarch.com. Visit us at www.dynarch.com. + * + * This script is distributed under the GNU Lesser General Public License. + * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html + */ + +// $Id$ + +/** The Calendar object constructor. */ +Calendar = function (firstDayOfWeek, dateStr, onSelected, onClose) { + // member variables + this.activeDiv = null; + this.currentDateEl = null; + this.getDateStatus = null; + this.getDateToolTip = null; + this.getDateText = null; + this.timeout = null; + this.onSelected = onSelected || null; + this.onClose = onClose || null; + this.dragging = false; + this.hidden = false; + this.minYear = 1970; + this.maxYear = 2050; + this.dateFormat = Calendar._TT["DEF_DATE_FORMAT"]; + this.ttDateFormat = Calendar._TT["TT_DATE_FORMAT"]; + this.isPopup = true; + this.weekNumbers = true; + this.firstDayOfWeek = typeof firstDayOfWeek == "number" ? firstDayOfWeek : Calendar._FD; // 0 for Sunday, 1 for Monday, etc. + this.showsOtherMonths = false; + this.dateStr = dateStr; + this.ar_days = null; + this.showsTime = false; + this.time24 = true; + this.yearStep = 2; + this.hiliteToday = true; + this.multiple = null; + // HTML elements + this.table = null; + this.element = null; + this.tbody = null; + this.firstdayname = null; + // Combo boxes + this.monthsCombo = null; + this.yearsCombo = null; + this.hilitedMonth = null; + this.activeMonth = null; + this.hilitedYear = null; + this.activeYear = null; + // Information + this.dateClicked = false; + + // one-time initializations + if (typeof Calendar._SDN == "undefined") { + // table of short day names + if (typeof Calendar._SDN_len == "undefined") + Calendar._SDN_len = 3; + var ar = new Array(); + for (var i = 8; i > 0;) { + ar[--i] = Calendar._DN[i].substr(0, Calendar._SDN_len); + } + Calendar._SDN = ar; + // table of short month names + if (typeof Calendar._SMN_len == "undefined") + Calendar._SMN_len = 3; + ar = new Array(); + for (var i = 12; i > 0;) { + ar[--i] = Calendar._MN[i].substr(0, Calendar._SMN_len); + } + Calendar._SMN = ar; + } +}; + +// ** constants + +/// "static", needed for event handlers. +Calendar._C = null; + +/// detect a special case of "web browser" +Calendar.is_ie = ( /msie/i.test(navigator.userAgent) && + !/opera/i.test(navigator.userAgent) ); + +Calendar.is_ie5 = ( Calendar.is_ie && /msie 5\.0/i.test(navigator.userAgent) ); + +/// detect Opera browser +Calendar.is_opera = /opera/i.test(navigator.userAgent); + +/// detect KHTML-based browsers +Calendar.is_khtml = /Konqueror|Safari|KHTML/i.test(navigator.userAgent); + +// BEGIN: UTILITY FUNCTIONS; beware that these might be moved into a separate +// library, at some point. + +Calendar.getAbsolutePos = function(el) { + var SL = 0, ST = 0; + var is_div = /^div$/i.test(el.tagName); + if (is_div && el.scrollLeft) + SL = el.scrollLeft; + if (is_div && el.scrollTop) + ST = el.scrollTop; + var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST }; + if (el.offsetParent) { + var tmp = this.getAbsolutePos(el.offsetParent); + r.x += tmp.x; + r.y += tmp.y; + } + return r; +}; + +Calendar.isRelated = function (el, evt) { + var related = evt.relatedTarget; + if (!related) { + var type = evt.type; + if (type == "mouseover") { + related = evt.fromElement; + } else if (type == "mouseout") { + related = evt.toElement; + } + } + while (related) { + if (related == el) { + return true; + } + related = related.parentNode; + } + return false; +}; + +Calendar.removeClass = function(el, className) { + if (!(el && el.className)) { + return; + } + var cls = el.className.split(" "); + var ar = new Array(); + for (var i = cls.length; i > 0;) { + if (cls[--i] != className) { + ar[ar.length] = cls[i]; + } + } + el.className = ar.join(" "); +}; + +Calendar.addClass = function(el, className) { + Calendar.removeClass(el, className); + el.className += " " + className; +}; + +// FIXME: the following 2 functions totally suck, are useless and should be replaced immediately. +Calendar.getElement = function(ev) { + var f = Calendar.is_ie ? window.event.srcElement : ev.currentTarget; + while (f.nodeType != 1 || /^div$/i.test(f.tagName)) + f = f.parentNode; + return f; +}; + +Calendar.getTargetElement = function(ev) { + var f = Calendar.is_ie ? window.event.srcElement : ev.target; + while (f.nodeType != 1) + f = f.parentNode; + return f; +}; + +Calendar.stopEvent = function(ev) { + ev || (ev = window.event); + if (Calendar.is_ie) { + ev.cancelBubble = true; + ev.returnValue = false; + } else { + ev.preventDefault(); + ev.stopPropagation(); + } + return false; +}; + +Calendar.addEvent = function(el, evname, func) { + if (el.attachEvent) { // IE + el.attachEvent("on" + evname, func); + } else if (el.addEventListener) { // Gecko / W3C + el.addEventListener(evname, func, true); + } else { + el["on" + evname] = func; + } +}; + +Calendar.removeEvent = function(el, evname, func) { + if (el.detachEvent) { // IE + el.detachEvent("on" + evname, func); + } else if (el.removeEventListener) { // Gecko / W3C + el.removeEventListener(evname, func, true); + } else { + el["on" + evname] = null; + } +}; + +Calendar.createElement = function(type, parent) { + var el = null; + if (document.createElementNS) { + // use the XHTML namespace; IE won't normally get here unless + // _they_ "fix" the DOM2 implementation. + el = document.createElementNS("http://www.w3.org/1999/xhtml", type); + } else { + el = document.createElement(type); + } + if (typeof parent != "undefined") { + parent.appendChild(el); + } + return el; +}; + +// END: UTILITY FUNCTIONS + +// BEGIN: CALENDAR STATIC FUNCTIONS + +/** Internal -- adds a set of events to make some element behave like a button. */ +Calendar._add_evs = function(el) { + with (Calendar) { + addEvent(el, "mouseover", dayMouseOver); + addEvent(el, "mousedown", dayMouseDown); + addEvent(el, "mouseout", dayMouseOut); + if (is_ie) { + addEvent(el, "dblclick", dayMouseDblClick); + el.setAttribute("unselectable", true); + } + } +}; + +Calendar.findMonth = function(el) { + if (typeof el.month != "undefined") { + return el; + } else if (typeof el.parentNode.month != "undefined") { + return el.parentNode; + } + return null; +}; + +Calendar.findYear = function(el) { + if (typeof el.year != "undefined") { + return el; + } else if (typeof el.parentNode.year != "undefined") { + return el.parentNode; + } + return null; +}; + +Calendar.showMonthsCombo = function () { + var cal = Calendar._C; + if (!cal) { + return false; + } + var cal = cal; + var cd = cal.activeDiv; + var mc = cal.monthsCombo; + if (cal.hilitedMonth) { + Calendar.removeClass(cal.hilitedMonth, "hilite"); + } + if (cal.activeMonth) { + Calendar.removeClass(cal.activeMonth, "active"); + } + var mon = cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()]; + Calendar.addClass(mon, "active"); + cal.activeMonth = mon; + var s = mc.style; + s.display = "block"; + if (cd.navtype < 0) + s.left = cd.offsetLeft + "px"; + else { + var mcw = mc.offsetWidth; + if (typeof mcw == "undefined") + // Konqueror brain-dead techniques + mcw = 50; + s.left = (cd.offsetLeft + cd.offsetWidth - mcw) + "px"; + } + s.top = (cd.offsetTop + cd.offsetHeight) + "px"; +}; + +Calendar.showYearsCombo = function (fwd) { + var cal = Calendar._C; + if (!cal) { + return false; + } + var cal = cal; + var cd = cal.activeDiv; + var yc = cal.yearsCombo; + if (cal.hilitedYear) { + Calendar.removeClass(cal.hilitedYear, "hilite"); + } + if (cal.activeYear) { + Calendar.removeClass(cal.activeYear, "active"); + } + cal.activeYear = null; + var Y = cal.date.getFullYear() + (fwd ? 1 : -1); + var yr = yc.firstChild; + var show = false; + for (var i = 12; i > 0; --i) { + if (Y >= cal.minYear && Y <= cal.maxYear) { + yr.innerHTML = Y; + yr.year = Y; + yr.style.display = "block"; + show = true; + } else { + yr.style.display = "none"; + } + yr = yr.nextSibling; + Y += fwd ? cal.yearStep : -cal.yearStep; + } + if (show) { + var s = yc.style; + s.display = "block"; + if (cd.navtype < 0) + s.left = cd.offsetLeft + "px"; + else { + var ycw = yc.offsetWidth; + if (typeof ycw == "undefined") + // Konqueror brain-dead techniques + ycw = 50; + s.left = (cd.offsetLeft + cd.offsetWidth - ycw) + "px"; + } + s.top = (cd.offsetTop + cd.offsetHeight) + "px"; + } +}; + +// event handlers + +Calendar.tableMouseUp = function(ev) { + var cal = Calendar._C; + if (!cal) { + return false; + } + if (cal.timeout) { + clearTimeout(cal.timeout); + } + var el = cal.activeDiv; + if (!el) { + return false; + } + var target = Calendar.getTargetElement(ev); + ev || (ev = window.event); + Calendar.removeClass(el, "active"); + if (target == el || target.parentNode == el) { + Calendar.cellClick(el, ev); + } + var mon = Calendar.findMonth(target); + var date = null; + if (mon) { + date = new Date(cal.date); + if (mon.month != date.getMonth()) { + date.setMonth(mon.month); + cal.setDate(date); + cal.dateClicked = false; + cal.callHandler(); + } + } else { + var year = Calendar.findYear(target); + if (year) { + date = new Date(cal.date); + if (year.year != date.getFullYear()) { + date.setFullYear(year.year); + cal.setDate(date); + cal.dateClicked = false; + cal.callHandler(); + } + } + } + with (Calendar) { + removeEvent(document, "mouseup", tableMouseUp); + removeEvent(document, "mouseover", tableMouseOver); + removeEvent(document, "mousemove", tableMouseOver); + cal._hideCombos(); + _C = null; + return stopEvent(ev); + } +}; + +Calendar.tableMouseOver = function (ev) { + var cal = Calendar._C; + if (!cal) { + return; + } + var el = cal.activeDiv; + var target = Calendar.getTargetElement(ev); + if (target == el || target.parentNode == el) { + Calendar.addClass(el, "hilite active"); + Calendar.addClass(el.parentNode, "rowhilite"); + } else { + if (typeof el.navtype == "undefined" || (el.navtype != 50 && (el.navtype == 0 || Math.abs(el.navtype) > 2))) + Calendar.removeClass(el, "active"); + Calendar.removeClass(el, "hilite"); + Calendar.removeClass(el.parentNode, "rowhilite"); + } + ev || (ev = window.event); + if (el.navtype == 50 && target != el) { + var pos = Calendar.getAbsolutePos(el); + var w = el.offsetWidth; + var x = ev.clientX; + var dx; + var decrease = true; + if (x > pos.x + w) { + dx = x - pos.x - w; + decrease = false; + } else + dx = pos.x - x; + + if (dx < 0) dx = 0; + var range = el._range; + var current = el._current; + var count = Math.floor(dx / 10) % range.length; + for (var i = range.length; --i >= 0;) + if (range[i] == current) + break; + while (count-- > 0) + if (decrease) { + if (--i < 0) + i = range.length - 1; + } else if ( ++i >= range.length ) + i = 0; + var newval = range[i]; + el.innerHTML = newval; + + cal.onUpdateTime(); + } + var mon = Calendar.findMonth(target); + if (mon) { + if (mon.month != cal.date.getMonth()) { + if (cal.hilitedMonth) { + Calendar.removeClass(cal.hilitedMonth, "hilite"); + } + Calendar.addClass(mon, "hilite"); + cal.hilitedMonth = mon; + } else if (cal.hilitedMonth) { + Calendar.removeClass(cal.hilitedMonth, "hilite"); + } + } else { + if (cal.hilitedMonth) { + Calendar.removeClass(cal.hilitedMonth, "hilite"); + } + var year = Calendar.findYear(target); + if (year) { + if (year.year != cal.date.getFullYear()) { + if (cal.hilitedYear) { + Calendar.removeClass(cal.hilitedYear, "hilite"); + } + Calendar.addClass(year, "hilite"); + cal.hilitedYear = year; + } else if (cal.hilitedYear) { + Calendar.removeClass(cal.hilitedYear, "hilite"); + } + } else if (cal.hilitedYear) { + Calendar.removeClass(cal.hilitedYear, "hilite"); + } + } + return Calendar.stopEvent(ev); +}; + +Calendar.tableMouseDown = function (ev) { + if (Calendar.getTargetElement(ev) == Calendar.getElement(ev)) { + return Calendar.stopEvent(ev); + } +}; + +Calendar.calDragIt = function (ev) { + var cal = Calendar._C; + if (!(cal && cal.dragging)) { + return false; + } + var posX; + var posY; + if (Calendar.is_ie) { + posY = window.event.clientY + document.body.scrollTop; + posX = window.event.clientX + document.body.scrollLeft; + } else { + posX = ev.pageX; + posY = ev.pageY; + } + cal.hideShowCovered(); + var st = cal.element.style; + st.left = (posX - cal.xOffs) + "px"; + st.top = (posY - cal.yOffs) + "px"; + return Calendar.stopEvent(ev); +}; + +Calendar.calDragEnd = function (ev) { + var cal = Calendar._C; + if (!cal) { + return false; + } + cal.dragging = false; + with (Calendar) { + removeEvent(document, "mousemove", calDragIt); + removeEvent(document, "mouseup", calDragEnd); + tableMouseUp(ev); + } + cal.hideShowCovered(); +}; + +Calendar.dayMouseDown = function(ev) { + var el = Calendar.getElement(ev); + if (el.disabled) { + return false; + } + var cal = el.calendar; + cal.activeDiv = el; + Calendar._C = cal; + if (el.navtype != 300) with (Calendar) { + if (el.navtype == 50) { + el._current = el.innerHTML; + addEvent(document, "mousemove", tableMouseOver); + } else + addEvent(document, Calendar.is_ie5 ? "mousemove" : "mouseover", tableMouseOver); + addClass(el, "hilite active"); + addEvent(document, "mouseup", tableMouseUp); + } else if (cal.isPopup) { + cal._dragStart(ev); + } + if (el.navtype == -1 || el.navtype == 1) { + if (cal.timeout) clearTimeout(cal.timeout); + cal.timeout = setTimeout("Calendar.showMonthsCombo()", 250); + } else if (el.navtype == -2 || el.navtype == 2) { + if (cal.timeout) clearTimeout(cal.timeout); + cal.timeout = setTimeout((el.navtype > 0) ? "Calendar.showYearsCombo(true)" : "Calendar.showYearsCombo(false)", 250); + } else { + cal.timeout = null; + } + return Calendar.stopEvent(ev); +}; + +Calendar.dayMouseDblClick = function(ev) { + Calendar.cellClick(Calendar.getElement(ev), ev || window.event); + if (Calendar.is_ie) { + document.selection.empty(); + } +}; + +Calendar.dayMouseOver = function(ev) { + var el = Calendar.getElement(ev); + if (Calendar.isRelated(el, ev) || Calendar._C || el.disabled) { + return false; + } + if (el.ttip) { + if (el.ttip.substr(0, 1) == "_") { + el.ttip = el.caldate.print(el.calendar.ttDateFormat) + el.ttip.substr(1); + } + el.calendar.tooltips.innerHTML = el.ttip; + } + if (el.navtype != 300) { + Calendar.addClass(el, "hilite"); + if (el.caldate) { + Calendar.addClass(el.parentNode, "rowhilite"); + } + } + return Calendar.stopEvent(ev); +}; + +Calendar.dayMouseOut = function(ev) { + with (Calendar) { + var el = getElement(ev); + if (isRelated(el, ev) || _C || el.disabled) + return false; + removeClass(el, "hilite"); + if (el.caldate) + removeClass(el.parentNode, "rowhilite"); + if (el.calendar) + el.calendar.tooltips.innerHTML = _TT["SEL_DATE"]; + return stopEvent(ev); + } +}; + +/** + * A generic "click" handler :) handles all types of buttons defined in this + * calendar. + */ +Calendar.cellClick = function(el, ev) { + var cal = el.calendar; + var closing = false; + var newdate = false; + var date = null; + if (typeof el.navtype == "undefined") { + if (cal.currentDateEl) { + Calendar.removeClass(cal.currentDateEl, "selected"); + Calendar.addClass(el, "selected"); + closing = (cal.currentDateEl == el); + if (!closing) { + cal.currentDateEl = el; + } + } + cal.date.setDateOnly(el.caldate); + date = cal.date; + var other_month = !(cal.dateClicked = !el.otherMonth); + if (!other_month && !cal.currentDateEl) + cal._toggleMultipleDate(new Date(date)); + else + newdate = !el.disabled; + // a date was clicked + if (other_month) + cal._init(cal.firstDayOfWeek, date); + } else { + if (el.navtype == 200) { + Calendar.removeClass(el, "hilite"); + cal.callCloseHandler(); + return; + } + date = new Date(cal.date); + if (el.navtype == 0) + date.setDateOnly(new Date()); // TODAY + // unless "today" was clicked, we assume no date was clicked so + // the selected handler will know not to close the calenar when + // in single-click mode. + // cal.dateClicked = (el.navtype == 0); + cal.dateClicked = false; + var year = date.getFullYear(); + var mon = date.getMonth(); + function setMonth(m) { + var day = date.getDate(); + var max = date.getMonthDays(m); + if (day > max) { + date.setDate(max); + } + date.setMonth(m); + }; + switch (el.navtype) { + case 400: + Calendar.removeClass(el, "hilite"); + var text = Calendar._TT["ABOUT"]; + if (typeof text != "undefined") { + text += cal.showsTime ? Calendar._TT["ABOUT_TIME"] : ""; + } else { + // FIXME: this should be removed as soon as lang files get updated! + text = "Help and about box text is not translated into this language.\n" + + "If you know this language and you feel generous please update\n" + + "the corresponding file in \"lang\" subdir to match calendar-en.js\n" + + "and send it back to to get it into the distribution ;-)\n\n" + + "Thank you!\n" + + "http://dynarch.com/mishoo/calendar.epl\n"; + } + alert(text); + return; + case -2: + if (year > cal.minYear) { + date.setFullYear(year - 1); + } + break; + case -1: + if (mon > 0) { + setMonth(mon - 1); + } else if (year-- > cal.minYear) { + date.setFullYear(year); + setMonth(11); + } + break; + case 1: + if (mon < 11) { + setMonth(mon + 1); + } else if (year < cal.maxYear) { + date.setFullYear(year + 1); + setMonth(0); + } + break; + case 2: + if (year < cal.maxYear) { + date.setFullYear(year + 1); + } + break; + case 100: + cal.setFirstDayOfWeek(el.fdow); + return; + case 50: + var range = el._range; + var current = el.innerHTML; + for (var i = range.length; --i >= 0;) + if (range[i] == current) + break; + if (ev && ev.shiftKey) { + if (--i < 0) + i = range.length - 1; + } else if ( ++i >= range.length ) + i = 0; + var newval = range[i]; + el.innerHTML = newval; + cal.onUpdateTime(); + return; + case 0: + // TODAY will bring us here + if ((typeof cal.getDateStatus == "function") && + cal.getDateStatus(date, date.getFullYear(), date.getMonth(), date.getDate())) { + return false; + } + break; + } + if (!date.equalsTo(cal.date)) { + cal.setDate(date); + newdate = true; + } else if (el.navtype == 0) + newdate = closing = true; + } + if (newdate) { + ev && cal.callHandler(); + } + if (closing) { + Calendar.removeClass(el, "hilite"); + ev && cal.callCloseHandler(); + } +}; + +// END: CALENDAR STATIC FUNCTIONS + +// BEGIN: CALENDAR OBJECT FUNCTIONS + +/** + * This function creates the calendar inside the given parent. If _par is + * null than it creates a popup calendar inside the BODY element. If _par is + * an element, be it BODY, then it creates a non-popup calendar (still + * hidden). Some properties need to be set before calling this function. + */ +Calendar.prototype.create = function (_par) { + var parent = null; + if (! _par) { + // default parent is the document body, in which case we create + // a popup calendar. + parent = document.getElementsByTagName("body")[0]; + this.isPopup = true; + } else { + parent = _par; + this.isPopup = false; + } + this.date = this.dateStr ? new Date(this.dateStr) : new Date(); + + var table = Calendar.createElement("table"); + this.table = table; + table.cellSpacing = 0; + table.cellPadding = 0; + table.calendar = this; + Calendar.addEvent(table, "mousedown", Calendar.tableMouseDown); + + var div = Calendar.createElement("div"); + this.element = div; + div.className = "calendar"; + if (this.isPopup) { + div.style.position = "absolute"; + div.style.display = "none"; + } + div.appendChild(table); + + var thead = Calendar.createElement("thead", table); + var cell = null; + var row = null; + + var cal = this; + var hh = function (text, cs, navtype) { + cell = Calendar.createElement("td", row); + cell.colSpan = cs; + cell.className = "button"; + if (navtype != 0 && Math.abs(navtype) <= 2) + cell.className += " nav"; + Calendar._add_evs(cell); + cell.calendar = cal; + cell.navtype = navtype; + cell.innerHTML = "

    " + text + "
    "; + return cell; + }; + + row = Calendar.createElement("tr", thead); + var title_length = 6; + (this.isPopup) && --title_length; + (this.weekNumbers) && ++title_length; + + hh("?", 1, 400).ttip = Calendar._TT["INFO"]; + this.title = hh("", title_length, 300); + this.title.className = "title"; + if (this.isPopup) { + this.title.ttip = Calendar._TT["DRAG_TO_MOVE"]; + this.title.style.cursor = "move"; + hh("×", 1, 200).ttip = Calendar._TT["CLOSE"]; + } + + row = Calendar.createElement("tr", thead); + row.className = "headrow"; + + this._nav_py = hh("«", 1, -2); + this._nav_py.ttip = Calendar._TT["PREV_YEAR"]; + + this._nav_pm = hh("‹", 1, -1); + this._nav_pm.ttip = Calendar._TT["PREV_MONTH"]; + + this._nav_now = hh(Calendar._TT["TODAY"], this.weekNumbers ? 4 : 3, 0); + this._nav_now.ttip = Calendar._TT["GO_TODAY"]; + + this._nav_nm = hh("›", 1, 1); + this._nav_nm.ttip = Calendar._TT["NEXT_MONTH"]; + + this._nav_ny = hh("»", 1, 2); + this._nav_ny.ttip = Calendar._TT["NEXT_YEAR"]; + + // day names + row = Calendar.createElement("tr", thead); + row.className = "daynames"; + if (this.weekNumbers) { + cell = Calendar.createElement("td", row); + cell.className = "name wn"; + cell.innerHTML = Calendar._TT["WK"]; + } + for (var i = 7; i > 0; --i) { + cell = Calendar.createElement("td", row); + if (!i) { + cell.navtype = 100; + cell.calendar = this; + Calendar._add_evs(cell); + } + } + this.firstdayname = (this.weekNumbers) ? row.firstChild.nextSibling : row.firstChild; + this._displayWeekdays(); + + var tbody = Calendar.createElement("tbody", table); + this.tbody = tbody; + + for (i = 6; i > 0; --i) { + row = Calendar.createElement("tr", tbody); + if (this.weekNumbers) { + cell = Calendar.createElement("td", row); + } + for (var j = 7; j > 0; --j) { + cell = Calendar.createElement("td", row); + cell.calendar = this; + Calendar._add_evs(cell); + } + } + + if (this.showsTime) { + row = Calendar.createElement("tr", tbody); + row.className = "time"; + + cell = Calendar.createElement("td", row); + cell.className = "time"; + cell.colSpan = 2; + cell.innerHTML = Calendar._TT["TIME"] || " "; + + cell = Calendar.createElement("td", row); + cell.className = "time"; + cell.colSpan = this.weekNumbers ? 4 : 3; + + (function(){ + function makeTimePart(className, init, range_start, range_end) { + var part = Calendar.createElement("span", cell); + part.className = className; + part.innerHTML = init; + part.calendar = cal; + part.ttip = Calendar._TT["TIME_PART"]; + part.navtype = 50; + part._range = []; + if (typeof range_start != "number") + part._range = range_start; + else { + for (var i = range_start; i <= range_end; ++i) { + var txt; + if (i < 10 && range_end >= 10) txt = '0' + i; + else txt = '' + i; + part._range[part._range.length] = txt; + } + } + Calendar._add_evs(part); + return part; + }; + var hrs = cal.date.getHours(); + var mins = cal.date.getMinutes(); + var t12 = !cal.time24; + var pm = (hrs > 12); + if (t12 && pm) hrs -= 12; + var H = makeTimePart("hour", hrs, t12 ? 1 : 0, t12 ? 12 : 23); + var span = Calendar.createElement("span", cell); + span.innerHTML = ":"; + span.className = "colon"; + var M = makeTimePart("minute", mins, 0, 59); + var AP = null; + cell = Calendar.createElement("td", row); + cell.className = "time"; + cell.colSpan = 2; + if (t12) + AP = makeTimePart("ampm", pm ? "pm" : "am", ["am", "pm"]); + else + cell.innerHTML = " "; + + cal.onSetTime = function() { + var pm, hrs = this.date.getHours(), + mins = this.date.getMinutes(); + if (t12) { + pm = (hrs >= 12); + if (pm) hrs -= 12; + if (hrs == 0) hrs = 12; + AP.innerHTML = pm ? "pm" : "am"; + } + H.innerHTML = (hrs < 10) ? ("0" + hrs) : hrs; + M.innerHTML = (mins < 10) ? ("0" + mins) : mins; + }; + + cal.onUpdateTime = function() { + var date = this.date; + var h = parseInt(H.innerHTML, 10); + if (t12) { + if (/pm/i.test(AP.innerHTML) && h < 12) + h += 12; + else if (/am/i.test(AP.innerHTML) && h == 12) + h = 0; + } + var d = date.getDate(); + var m = date.getMonth(); + var y = date.getFullYear(); + date.setHours(h); + date.setMinutes(parseInt(M.innerHTML, 10)); + date.setFullYear(y); + date.setMonth(m); + date.setDate(d); + this.dateClicked = false; + this.callHandler(); + }; + })(); + } else { + this.onSetTime = this.onUpdateTime = function() {}; + } + + var tfoot = Calendar.createElement("tfoot", table); + + row = Calendar.createElement("tr", tfoot); + row.className = "footrow"; + + cell = hh(Calendar._TT["SEL_DATE"], this.weekNumbers ? 8 : 7, 300); + cell.className = "ttip"; + if (this.isPopup) { + cell.ttip = Calendar._TT["DRAG_TO_MOVE"]; + cell.style.cursor = "move"; + } + this.tooltips = cell; + + div = Calendar.createElement("div", this.element); + this.monthsCombo = div; + div.className = "combo"; + for (i = 0; i < Calendar._MN.length; ++i) { + var mn = Calendar.createElement("div"); + mn.className = Calendar.is_ie ? "label-IEfix" : "label"; + mn.month = i; + mn.innerHTML = Calendar._SMN[i]; + div.appendChild(mn); + } + + div = Calendar.createElement("div", this.element); + this.yearsCombo = div; + div.className = "combo"; + for (i = 12; i > 0; --i) { + var yr = Calendar.createElement("div"); + yr.className = Calendar.is_ie ? "label-IEfix" : "label"; + div.appendChild(yr); + } + + this._init(this.firstDayOfWeek, this.date); + parent.appendChild(this.element); +}; + +/** keyboard navigation, only for popup calendars */ +Calendar._keyEvent = function(ev) { + var cal = window._dynarch_popupCalendar; + if (!cal || cal.multiple) + return false; + (Calendar.is_ie) && (ev = window.event); + var act = (Calendar.is_ie || ev.type == "keypress"), + K = ev.keyCode; + if (ev.ctrlKey) { + switch (K) { + case 37: // KEY left + act && Calendar.cellClick(cal._nav_pm); + break; + case 38: // KEY up + act && Calendar.cellClick(cal._nav_py); + break; + case 39: // KEY right + act && Calendar.cellClick(cal._nav_nm); + break; + case 40: // KEY down + act && Calendar.cellClick(cal._nav_ny); + break; + default: + return false; + } + } else switch (K) { + case 32: // KEY space (now) + Calendar.cellClick(cal._nav_now); + break; + case 27: // KEY esc + act && cal.callCloseHandler(); + break; + case 37: // KEY left + case 38: // KEY up + case 39: // KEY right + case 40: // KEY down + if (act) { + var prev, x, y, ne, el, step; + prev = K == 37 || K == 38; + step = (K == 37 || K == 39) ? 1 : 7; + function setVars() { + el = cal.currentDateEl; + var p = el.pos; + x = p & 15; + y = p >> 4; + ne = cal.ar_days[y][x]; + };setVars(); + function prevMonth() { + var date = new Date(cal.date); + date.setDate(date.getDate() - step); + cal.setDate(date); + }; + function nextMonth() { + var date = new Date(cal.date); + date.setDate(date.getDate() + step); + cal.setDate(date); + }; + while (1) { + switch (K) { + case 37: // KEY left + if (--x >= 0) + ne = cal.ar_days[y][x]; + else { + x = 6; + K = 38; + continue; + } + break; + case 38: // KEY up + if (--y >= 0) + ne = cal.ar_days[y][x]; + else { + prevMonth(); + setVars(); + } + break; + case 39: // KEY right + if (++x < 7) + ne = cal.ar_days[y][x]; + else { + x = 0; + K = 40; + continue; + } + break; + case 40: // KEY down + if (++y < cal.ar_days.length) + ne = cal.ar_days[y][x]; + else { + nextMonth(); + setVars(); + } + break; + } + break; + } + if (ne) { + if (!ne.disabled) + Calendar.cellClick(ne); + else if (prev) + prevMonth(); + else + nextMonth(); + } + } + break; + case 13: // KEY enter + if (act) + Calendar.cellClick(cal.currentDateEl, ev); + break; + default: + return false; + } + return Calendar.stopEvent(ev); +}; + +/** + * (RE)Initializes the calendar to the given date and firstDayOfWeek + */ +Calendar.prototype._init = function (firstDayOfWeek, date) { + var today = new Date(), + TY = today.getFullYear(), + TM = today.getMonth(), + TD = today.getDate(); + this.table.style.visibility = "hidden"; + var year = date.getFullYear(); + if (year < this.minYear) { + year = this.minYear; + date.setFullYear(year); + } else if (year > this.maxYear) { + year = this.maxYear; + date.setFullYear(year); + } + this.firstDayOfWeek = firstDayOfWeek; + this.date = new Date(date); + var month = date.getMonth(); + var mday = date.getDate(); + var no_days = date.getMonthDays(); + + // calendar voodoo for computing the first day that would actually be + // displayed in the calendar, even if it's from the previous month. + // WARNING: this is magic. ;-) + date.setDate(1); + var day1 = (date.getDay() - this.firstDayOfWeek) % 7; + if (day1 < 0) + day1 += 7; + date.setDate(-day1); + date.setDate(date.getDate() + 1); + + var row = this.tbody.firstChild; + var MN = Calendar._SMN[month]; + var ar_days = this.ar_days = new Array(); + var weekend = Calendar._TT["WEEKEND"]; + var dates = this.multiple ? (this.datesCells = {}) : null; + for (var i = 0; i < 6; ++i, row = row.nextSibling) { + var cell = row.firstChild; + if (this.weekNumbers) { + cell.className = "day wn"; + cell.innerHTML = date.getWeekNumber(); + cell = cell.nextSibling; + } + row.className = "daysrow"; + var hasdays = false, iday, dpos = ar_days[i] = []; + for (var j = 0; j < 7; ++j, cell = cell.nextSibling, date.setDate(iday + 1)) { + iday = date.getDate(); + var wday = date.getDay(); + cell.className = "day"; + cell.pos = i << 4 | j; + dpos[j] = cell; + var current_month = (date.getMonth() == month); + if (!current_month) { + if (this.showsOtherMonths) { + cell.className += " othermonth"; + cell.otherMonth = true; + } else { + cell.className = "emptycell"; + cell.innerHTML = " "; + cell.disabled = true; + continue; + } + } else { + cell.otherMonth = false; + hasdays = true; + } + cell.disabled = false; + cell.innerHTML = this.getDateText ? this.getDateText(date, iday) : iday; + if (dates) + dates[date.print("%Y%m%d")] = cell; + if (this.getDateStatus) { + var status = this.getDateStatus(date, year, month, iday); + if (this.getDateToolTip) { + var toolTip = this.getDateToolTip(date, year, month, iday); + if (toolTip) + cell.title = toolTip; + } + if (status === true) { + cell.className += " disabled"; + cell.disabled = true; + } else { + if (/disabled/i.test(status)) + cell.disabled = true; + cell.className += " " + status; + } + } + if (!cell.disabled) { + cell.caldate = new Date(date); + cell.ttip = "_"; + if (!this.multiple && current_month + && iday == mday && this.hiliteToday) { + cell.className += " selected"; + this.currentDateEl = cell; + } + if (date.getFullYear() == TY && + date.getMonth() == TM && + iday == TD) { + cell.className += " today"; + cell.ttip += Calendar._TT["PART_TODAY"]; + } + if (weekend.indexOf(wday.toString()) != -1) + cell.className += cell.otherMonth ? " oweekend" : " weekend"; + } + } + if (!(hasdays || this.showsOtherMonths)) + row.className = "emptyrow"; + } + this.title.innerHTML = Calendar._MN[month] + ", " + year; + this.onSetTime(); + this.table.style.visibility = "visible"; + this._initMultipleDates(); + // PROFILE + // this.tooltips.innerHTML = "Generated in " + ((new Date()) - today) + " ms"; +}; + +Calendar.prototype._initMultipleDates = function() { + if (this.multiple) { + for (var i in this.multiple) { + var cell = this.datesCells[i]; + var d = this.multiple[i]; + if (!d) + continue; + if (cell) + cell.className += " selected"; + } + } +}; + +Calendar.prototype._toggleMultipleDate = function(date) { + if (this.multiple) { + var ds = date.print("%Y%m%d"); + var cell = this.datesCells[ds]; + if (cell) { + var d = this.multiple[ds]; + if (!d) { + Calendar.addClass(cell, "selected"); + this.multiple[ds] = date; + } else { + Calendar.removeClass(cell, "selected"); + delete this.multiple[ds]; + } + } + } +}; + +Calendar.prototype.setDateToolTipHandler = function (unaryFunction) { + this.getDateToolTip = unaryFunction; +}; + +/** + * Calls _init function above for going to a certain date (but only if the + * date is different than the currently selected one). + */ +Calendar.prototype.setDate = function (date) { + if (!date.equalsTo(this.date)) { + this._init(this.firstDayOfWeek, date); + } +}; + +/** + * Refreshes the calendar. Useful if the "disabledHandler" function is + * dynamic, meaning that the list of disabled date can change at runtime. + * Just * call this function if you think that the list of disabled dates + * should * change. + */ +Calendar.prototype.refresh = function () { + this._init(this.firstDayOfWeek, this.date); +}; + +/** Modifies the "firstDayOfWeek" parameter (pass 0 for Synday, 1 for Monday, etc.). */ +Calendar.prototype.setFirstDayOfWeek = function (firstDayOfWeek) { + this._init(firstDayOfWeek, this.date); + this._displayWeekdays(); +}; + +/** + * Allows customization of what dates are enabled. The "unaryFunction" + * parameter must be a function object that receives the date (as a JS Date + * object) and returns a boolean value. If the returned value is true then + * the passed date will be marked as disabled. + */ +Calendar.prototype.setDateStatusHandler = Calendar.prototype.setDisabledHandler = function (unaryFunction) { + this.getDateStatus = unaryFunction; +}; + +/** Customization of allowed year range for the calendar. */ +Calendar.prototype.setRange = function (a, z) { + this.minYear = a; + this.maxYear = z; +}; + +/** Calls the first user handler (selectedHandler). */ +Calendar.prototype.callHandler = function () { + if (this.onSelected) { + this.onSelected(this, this.date.print(this.dateFormat)); + } +}; + +/** Calls the second user handler (closeHandler). */ +Calendar.prototype.callCloseHandler = function () { + if (this.onClose) { + this.onClose(this); + } + this.hideShowCovered(); +}; + +/** Removes the calendar object from the DOM tree and destroys it. */ +Calendar.prototype.destroy = function () { + var el = this.element.parentNode; + el.removeChild(this.element); + Calendar._C = null; + window._dynarch_popupCalendar = null; +}; + +/** + * Moves the calendar element to a different section in the DOM tree (changes + * its parent). + */ +Calendar.prototype.reparent = function (new_parent) { + var el = this.element; + el.parentNode.removeChild(el); + new_parent.appendChild(el); +}; + +// This gets called when the user presses a mouse button anywhere in the +// document, if the calendar is shown. If the click was outside the open +// calendar this function closes it. +Calendar._checkCalendar = function(ev) { + var calendar = window._dynarch_popupCalendar; + if (!calendar) { + return false; + } + var el = Calendar.is_ie ? Calendar.getElement(ev) : Calendar.getTargetElement(ev); + for (; el != null && el != calendar.element; el = el.parentNode); + if (el == null) { + // calls closeHandler which should hide the calendar. + window._dynarch_popupCalendar.callCloseHandler(); + return Calendar.stopEvent(ev); + } +}; + +/** Shows the calendar. */ +Calendar.prototype.show = function () { + var rows = this.table.getElementsByTagName("tr"); + for (var i = rows.length; i > 0;) { + var row = rows[--i]; + Calendar.removeClass(row, "rowhilite"); + var cells = row.getElementsByTagName("td"); + for (var j = cells.length; j > 0;) { + var cell = cells[--j]; + Calendar.removeClass(cell, "hilite"); + Calendar.removeClass(cell, "active"); + } + } + this.element.style.display = "block"; + this.hidden = false; + if (this.isPopup) { + window._dynarch_popupCalendar = this; + Calendar.addEvent(document, "keydown", Calendar._keyEvent); + Calendar.addEvent(document, "keypress", Calendar._keyEvent); + Calendar.addEvent(document, "mousedown", Calendar._checkCalendar); + } + this.hideShowCovered(); +}; + +/** + * Hides the calendar. Also removes any "hilite" from the class of any TD + * element. + */ +Calendar.prototype.hide = function () { + if (this.isPopup) { + Calendar.removeEvent(document, "keydown", Calendar._keyEvent); + Calendar.removeEvent(document, "keypress", Calendar._keyEvent); + Calendar.removeEvent(document, "mousedown", Calendar._checkCalendar); + } + this.element.style.display = "none"; + this.hidden = true; + this.hideShowCovered(); +}; + +/** + * Shows the calendar at a given absolute position (beware that, depending on + * the calendar element style -- position property -- this might be relative + * to the parent's containing rectangle). + */ +Calendar.prototype.showAt = function (x, y) { + var s = this.element.style; + s.left = x + "px"; + s.top = y + "px"; + this.show(); +}; + +/** Shows the calendar near a given element. */ +Calendar.prototype.showAtElement = function (el, opts) { + var self = this; + var p = Calendar.getAbsolutePos(el); + if (!opts || typeof opts != "string") { + this.showAt(p.x, p.y + el.offsetHeight); + return true; + } + function fixPosition(box) { + if (box.x < 0) + box.x = 0; + if (box.y < 0) + box.y = 0; + var cp = document.createElement("div"); + var s = cp.style; + s.position = "absolute"; + s.right = s.bottom = s.width = s.height = "0px"; + document.body.appendChild(cp); + var br = Calendar.getAbsolutePos(cp); + document.body.removeChild(cp); + if (Calendar.is_ie) { + br.y += document.body.scrollTop; + br.x += document.body.scrollLeft; + } else { + br.y += window.scrollY; + br.x += window.scrollX; + } + var tmp = box.x + box.width - br.x; + if (tmp > 0) box.x -= tmp; + tmp = box.y + box.height - br.y; + if (tmp > 0) box.y -= tmp; + }; + this.element.style.display = "block"; + Calendar.continuation_for_the_fucking_khtml_browser = function() { + var w = self.element.offsetWidth; + var h = self.element.offsetHeight; + self.element.style.display = "none"; + var valign = opts.substr(0, 1); + var halign = "l"; + if (opts.length > 1) { + halign = opts.substr(1, 1); + } + // vertical alignment + switch (valign) { + case "T": p.y -= h; break; + case "B": p.y += el.offsetHeight; break; + case "C": p.y += (el.offsetHeight - h) / 2; break; + case "t": p.y += el.offsetHeight - h; break; + case "b": break; // already there + } + // horizontal alignment + switch (halign) { + case "L": p.x -= w; break; + case "R": p.x += el.offsetWidth; break; + case "C": p.x += (el.offsetWidth - w) / 2; break; + case "l": p.x += el.offsetWidth - w; break; + case "r": break; // already there + } + p.width = w; + p.height = h + 40; + self.monthsCombo.style.display = "none"; + fixPosition(p); + self.showAt(p.x, p.y); + }; + if (Calendar.is_khtml) + setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()", 10); + else + Calendar.continuation_for_the_fucking_khtml_browser(); +}; + +/** Customizes the date format. */ +Calendar.prototype.setDateFormat = function (str) { + this.dateFormat = str; +}; + +/** Customizes the tooltip date format. */ +Calendar.prototype.setTtDateFormat = function (str) { + this.ttDateFormat = str; +}; + +/** + * Tries to identify the date represented in a string. If successful it also + * calls this.setDate which moves the calendar to the given date. + */ +Calendar.prototype.parseDate = function(str, fmt) { + if (!fmt) + fmt = this.dateFormat; + this.setDate(Date.parseDate(str, fmt)); +}; + +Calendar.prototype.hideShowCovered = function () { + if (!Calendar.is_ie && !Calendar.is_opera) + return; + function getVisib(obj){ + var value = obj.style.visibility; + if (!value) { + if (document.defaultView && typeof (document.defaultView.getComputedStyle) == "function") { // Gecko, W3C + if (!Calendar.is_khtml) + value = document.defaultView. + getComputedStyle(obj, "").getPropertyValue("visibility"); + else + value = ''; + } else if (obj.currentStyle) { // IE + value = obj.currentStyle.visibility; + } else + value = ''; + } + return value; + }; + + var tags = new Array("applet", "iframe", "select"); + var el = this.element; + + var p = Calendar.getAbsolutePos(el); + var EX1 = p.x; + var EX2 = el.offsetWidth + EX1; + var EY1 = p.y; + var EY2 = el.offsetHeight + EY1; + + for (var k = tags.length; k > 0; ) { + var ar = document.getElementsByTagName(tags[--k]); + var cc = null; + + for (var i = ar.length; i > 0;) { + cc = ar[--i]; + + p = Calendar.getAbsolutePos(cc); + var CX1 = p.x; + var CX2 = cc.offsetWidth + CX1; + var CY1 = p.y; + var CY2 = cc.offsetHeight + CY1; + + if (this.hidden || (CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 < EY1)) { + if (!cc.__msh_save_visibility) { + cc.__msh_save_visibility = getVisib(cc); + } + cc.style.visibility = cc.__msh_save_visibility; + } else { + if (!cc.__msh_save_visibility) { + cc.__msh_save_visibility = getVisib(cc); + } + cc.style.visibility = "hidden"; + } + } + } +}; + +/** Internal function; it displays the bar with the names of the weekday. */ +Calendar.prototype._displayWeekdays = function () { + var fdow = this.firstDayOfWeek; + var cell = this.firstdayname; + var weekend = Calendar._TT["WEEKEND"]; + for (var i = 0; i < 7; ++i) { + cell.className = "day name"; + var realday = (i + fdow) % 7; + if (i) { + cell.ttip = Calendar._TT["DAY_FIRST"].replace("%s", Calendar._DN[realday]); + cell.navtype = 100; + cell.calendar = this; + cell.fdow = realday; + Calendar._add_evs(cell); + } + if (weekend.indexOf(realday.toString()) != -1) { + Calendar.addClass(cell, "weekend"); + } + cell.innerHTML = Calendar._SDN[(i + fdow) % 7]; + cell = cell.nextSibling; + } +}; + +/** Internal function. Hides all combo boxes that might be displayed. */ +Calendar.prototype._hideCombos = function () { + this.monthsCombo.style.display = "none"; + this.yearsCombo.style.display = "none"; +}; + +/** Internal function. Starts dragging the element. */ +Calendar.prototype._dragStart = function (ev) { + if (this.dragging) { + return; + } + this.dragging = true; + var posX; + var posY; + if (Calendar.is_ie) { + posY = window.event.clientY + document.body.scrollTop; + posX = window.event.clientX + document.body.scrollLeft; + } else { + posY = ev.clientY + window.scrollY; + posX = ev.clientX + window.scrollX; + } + var st = this.element.style; + this.xOffs = posX - parseInt(st.left); + this.yOffs = posY - parseInt(st.top); + with (Calendar) { + addEvent(document, "mousemove", calDragIt); + addEvent(document, "mouseup", calDragEnd); + } +}; + +// BEGIN: DATE OBJECT PATCHES + +/** Adds the number of days array to the Date object. */ +Date._MD = new Array(31,28,31,30,31,30,31,31,30,31,30,31); + +/** Constants used for time computations */ +Date.SECOND = 1000 /* milliseconds */; +Date.MINUTE = 60 * Date.SECOND; +Date.HOUR = 60 * Date.MINUTE; +Date.DAY = 24 * Date.HOUR; +Date.WEEK = 7 * Date.DAY; + +Date.parseDate = function(str, fmt) { + var today = new Date(); + var y = 0; + var m = -1; + var d = 0; + var a = str.split(/\W+/); + var b = fmt.match(/%./g); + var i = 0, j = 0; + var hr = 0; + var min = 0; + for (i = 0; i < a.length; ++i) { + if (!a[i]) + continue; + switch (b[i]) { + case "%d": + case "%e": + d = parseInt(a[i], 10); + break; + + case "%m": + m = parseInt(a[i], 10) - 1; + break; + + case "%Y": + case "%y": + y = parseInt(a[i], 10); + (y < 100) && (y += (y > 29) ? 1900 : 2000); + break; + + case "%b": + case "%B": + for (j = 0; j < 12; ++j) { + if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { m = j; break; } + } + break; + + case "%H": + case "%I": + case "%k": + case "%l": + hr = parseInt(a[i], 10); + break; + + case "%P": + case "%p": + if (/pm/i.test(a[i]) && hr < 12) + hr += 12; + else if (/am/i.test(a[i]) && hr >= 12) + hr -= 12; + break; + + case "%M": + min = parseInt(a[i], 10); + break; + } + } + if (isNaN(y)) y = today.getFullYear(); + if (isNaN(m)) m = today.getMonth(); + if (isNaN(d)) d = today.getDate(); + if (isNaN(hr)) hr = today.getHours(); + if (isNaN(min)) min = today.getMinutes(); + if (y != 0 && m != -1 && d != 0) + return new Date(y, m, d, hr, min, 0); + y = 0; m = -1; d = 0; + for (i = 0; i < a.length; ++i) { + if (a[i].search(/[a-zA-Z]+/) != -1) { + var t = -1; + for (j = 0; j < 12; ++j) { + if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { t = j; break; } + } + if (t != -1) { + if (m != -1) { + d = m+1; + } + m = t; + } + } else if (parseInt(a[i], 10) <= 12 && m == -1) { + m = a[i]-1; + } else if (parseInt(a[i], 10) > 31 && y == 0) { + y = parseInt(a[i], 10); + (y < 100) && (y += (y > 29) ? 1900 : 2000); + } else if (d == 0) { + d = a[i]; + } + } + if (y == 0) + y = today.getFullYear(); + if (m != -1 && d != 0) + return new Date(y, m, d, hr, min, 0); + return today; +}; + +/** Returns the number of days in the current month */ +Date.prototype.getMonthDays = function(month) { + var year = this.getFullYear(); + if (typeof month == "undefined") { + month = this.getMonth(); + } + if (((0 == (year%4)) && ( (0 != (year%100)) || (0 == (year%400)))) && month == 1) { + return 29; + } else { + return Date._MD[month]; + } +}; + +/** Returns the number of day in the year. */ +Date.prototype.getDayOfYear = function() { + var now = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0); + var then = new Date(this.getFullYear(), 0, 0, 0, 0, 0); + var time = now - then; + return Math.floor(time / Date.DAY); +}; + +/** Returns the number of the week in year, as defined in ISO 8601. */ +Date.prototype.getWeekNumber = function() { + var d = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0); + var DoW = d.getDay(); + d.setDate(d.getDate() - (DoW + 6) % 7 + 3); // Nearest Thu + var ms = d.valueOf(); // GMT + d.setMonth(0); + d.setDate(4); // Thu in Week 1 + return Math.round((ms - d.valueOf()) / (7 * 864e5)) + 1; +}; + +/** Checks date and time equality */ +Date.prototype.equalsTo = function(date) { + return ((this.getFullYear() == date.getFullYear()) && + (this.getMonth() == date.getMonth()) && + (this.getDate() == date.getDate()) && + (this.getHours() == date.getHours()) && + (this.getMinutes() == date.getMinutes())); +}; + +/** Set only the year, month, date parts (keep existing time) */ +Date.prototype.setDateOnly = function(date) { + var tmp = new Date(date); + this.setDate(1); + this.setFullYear(tmp.getFullYear()); + this.setMonth(tmp.getMonth()); + this.setDate(tmp.getDate()); +}; + +/** Prints the date in a string according to the given format. */ +Date.prototype.print = function (str) { + var m = this.getMonth(); + var d = this.getDate(); + var y = this.getFullYear(); + var wn = this.getWeekNumber(); + var w = this.getDay(); + var s = {}; + var hr = this.getHours(); + var pm = (hr >= 12); + var ir = (pm) ? (hr - 12) : hr; + var dy = this.getDayOfYear(); + if (ir == 0) + ir = 12; + var min = this.getMinutes(); + var sec = this.getSeconds(); + s["%a"] = Calendar._SDN[w]; // abbreviated weekday name [FIXME: I18N] + s["%A"] = Calendar._DN[w]; // full weekday name + s["%b"] = Calendar._SMN[m]; // abbreviated month name [FIXME: I18N] + s["%B"] = Calendar._MN[m]; // full month name + // FIXME: %c : preferred date and time representation for the current locale + s["%C"] = 1 + Math.floor(y / 100); // the century number + s["%d"] = (d < 10) ? ("0" + d) : d; // the day of the month (range 01 to 31) + s["%e"] = d; // the day of the month (range 1 to 31) + // FIXME: %D : american date style: %m/%d/%y + // FIXME: %E, %F, %G, %g, %h (man strftime) + s["%H"] = (hr < 10) ? ("0" + hr) : hr; // hour, range 00 to 23 (24h format) + s["%I"] = (ir < 10) ? ("0" + ir) : ir; // hour, range 01 to 12 (12h format) + s["%j"] = (dy < 100) ? ((dy < 10) ? ("00" + dy) : ("0" + dy)) : dy; // day of the year (range 001 to 366) + s["%k"] = hr; // hour, range 0 to 23 (24h format) + s["%l"] = ir; // hour, range 1 to 12 (12h format) + s["%m"] = (m < 9) ? ("0" + (1+m)) : (1+m); // month, range 01 to 12 + s["%M"] = (min < 10) ? ("0" + min) : min; // minute, range 00 to 59 + s["%n"] = "\n"; // a newline character + s["%p"] = pm ? "PM" : "AM"; + s["%P"] = pm ? "pm" : "am"; + // FIXME: %r : the time in am/pm notation %I:%M:%S %p + // FIXME: %R : the time in 24-hour notation %H:%M + s["%s"] = Math.floor(this.getTime() / 1000); + s["%S"] = (sec < 10) ? ("0" + sec) : sec; // seconds, range 00 to 59 + s["%t"] = "\t"; // a tab character + // FIXME: %T : the time in 24-hour notation (%H:%M:%S) + s["%U"] = s["%W"] = s["%V"] = (wn < 10) ? ("0" + wn) : wn; + s["%u"] = w + 1; // the day of the week (range 1 to 7, 1 = MON) + s["%w"] = w; // the day of the week (range 0 to 6, 0 = SUN) + // FIXME: %x : preferred date representation for the current locale without the time + // FIXME: %X : preferred time representation for the current locale without the date + s["%y"] = ('' + y).substr(2, 2); // year without the century (range 00 to 99) + s["%Y"] = y; // year with the century + s["%%"] = "%"; // a literal '%' character + + var re = /%./g; + if (!Calendar.is_ie5 && !Calendar.is_khtml) + return str.replace(re, function (par) { return s[par] || par; }); + + var a = str.match(re); + for (var i = 0; i < a.length; i++) { + var tmp = s[a[i]]; + if (tmp) { + re = new RegExp(a[i], 'g'); + str = str.replace(re, tmp); + } + } + + return str; +}; + +Date.prototype.__msh_oldSetFullYear = Date.prototype.setFullYear; +Date.prototype.setFullYear = function(y) { + var d = new Date(this); + d.__msh_oldSetFullYear(y); + if (d.getMonth() != this.getMonth()) + this.setDate(28); + this.__msh_oldSetFullYear(y); +}; + +// END: DATE OBJECT PATCHES + + +// global object that remembers the calendar +window._dynarch_popupCalendar = null; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-af.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-af.js new file mode 100644 index 00000000..aeda5819 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-af.js @@ -0,0 +1,39 @@ +// ** I18N Afrikaans +Calendar._DN = new Array +("Sondag", + "Maandag", + "Dinsdag", + "Woensdag", + "Donderdag", + "Vrydag", + "Saterdag", + "Sondag"); +Calendar._MN = new Array +("Januarie", + "Februarie", + "Maart", + "April", + "Mei", + "Junie", + "Julie", + "Augustus", + "September", + "Oktober", + "November", + "Desember"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["TOGGLE"] = "Verander eerste dag van die week"; +Calendar._TT["PREV_YEAR"] = "Vorige jaar (hou vir keuselys)"; +Calendar._TT["PREV_MONTH"] = "Vorige maand (hou vir keuselys)"; +Calendar._TT["GO_TODAY"] = "Gaan na vandag"; +Calendar._TT["NEXT_MONTH"] = "Volgende maand (hou vir keuselys)"; +Calendar._TT["NEXT_YEAR"] = "Volgende jaar (hou vir keuselys)"; +Calendar._TT["SEL_DATE"] = "Kies datum"; +Calendar._TT["DRAG_TO_MOVE"] = "Sleep om te skuif"; +Calendar._TT["PART_TODAY"] = " (vandag)"; +Calendar._TT["MON_FIRST"] = "Vertoon Maandag eerste"; +Calendar._TT["SUN_FIRST"] = "Display Sunday first"; +Calendar._TT["CLOSE"] = "Close"; +Calendar._TT["TODAY"] = "Today"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-al.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-al.js new file mode 100644 index 00000000..4f701cf7 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-al.js @@ -0,0 +1,101 @@ +// Calendar ALBANIAN language +//author Rigels Gordani rige@hotmail.com + +// ditet +Calendar._DN = new Array +("E Diele", +"E Hene", +"E Marte", +"E Merkure", +"E Enjte", +"E Premte", +"E Shtune", +"E Diele"); + +//ditet shkurt +Calendar._SDN = new Array +("Die", +"Hen", +"Mar", +"Mer", +"Enj", +"Pre", +"Sht", +"Die"); + +// muajt +Calendar._MN = new Array +("Janar", +"Shkurt", +"Mars", +"Prill", +"Maj", +"Qeshor", +"Korrik", +"Gusht", +"Shtator", +"Tetor", +"Nentor", +"Dhjetor"); + +// muajte shkurt +Calendar._SMN = new Array +("Jan", +"Shk", +"Mar", +"Pri", +"Maj", +"Qes", +"Kor", +"Gus", +"Sht", +"Tet", +"Nen", +"Dhj"); + +// ndihmesa +Calendar._TT = {}; +Calendar._TT["INFO"] = "Per kalendarin"; + +Calendar._TT["ABOUT"] = +"Zgjedhes i ores/dates ne DHTML \n" + +"\n\n" +"Zgjedhja e Dates:\n" + +"- Perdor butonat \xab, \xbb per te zgjedhur vitin\n" + +"- Perdor butonat" + String.fromCharCode(0x2039) + ", " + +String.fromCharCode(0x203a) + +" per te zgjedhur muajin\n" + +"- Mbani shtypur butonin e mousit per nje zgjedje me te shpejte."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Zgjedhja e kohes:\n" + +"- Kliko tek ndonje nga pjeset e ores per ta rritur ate\n" + +"- ose kliko me Shift per ta zvogeluar ate\n" + +"- ose cliko dhe terhiq per zgjedhje me te shpejte."; + +Calendar._TT["PREV_YEAR"] = "Viti i shkuar (prit per menune)"; +Calendar._TT["PREV_MONTH"] = "Muaji i shkuar (prit per menune)"; +Calendar._TT["GO_TODAY"] = "Sot"; +Calendar._TT["NEXT_MONTH"] = "Muaji i ardhshem (prit per menune)"; +Calendar._TT["NEXT_YEAR"] = "Viti i ardhshem (prit per menune)"; +Calendar._TT["SEL_DATE"] = "Zgjidh daten"; +Calendar._TT["DRAG_TO_MOVE"] = "Terhiqe per te levizur"; +Calendar._TT["PART_TODAY"] = " (sot)"; + +// "%s" eshte dita e pare e javes +// %s do te zevendesohet me emrin e dite +Calendar._TT["DAY_FIRST"] = "Trego te %s te paren"; + + +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = "Mbyll"; +Calendar._TT["TODAY"] = "Sot"; +Calendar._TT["TIME_PART"] = "Kliko me (Shift-)ose terhiqe per te ndryshuar +vleren"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; +Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e"; + +Calendar._TT["WK"] = "Java"; +Calendar._TT["TIME"] = "Koha:"; + diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-bg.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-bg.js new file mode 100644 index 00000000..4f4fd863 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-bg.js @@ -0,0 +1,124 @@ +// ** I18N + +// Calendar BG language +// Author: Mihai Bazon, +// Translator: Valentin Sheiretsky, +// Encoding: Windows-1251 +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("", + "", + "", + "", + "", + "", + "", + ""); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("", + "", + "", + "", + "", + "", + "", + ""); + +// full month names +Calendar._MN = new Array +("", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + ""); + +// short month names +Calendar._SMN = new Array +("", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + ""); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = " "; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"For latest version visit: http://www.dynarch.com/projects/calendar/\n" + +"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." + +"\n\n" + +"Date selection:\n" + +"- Use the \xab, \xbb buttons to select year\n" + +"- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" + +"- Hold mouse button on any of the above buttons for faster selection."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Time selection:\n" + +"- Click on any of the time parts to increase it\n" + +"- or Shift-click to decrease it\n" + +"- or click and drag for faster selection."; + +Calendar._TT["PREV_YEAR"] = " ( )"; +Calendar._TT["PREV_MONTH"] = " ( )"; +Calendar._TT["GO_TODAY"] = " "; +Calendar._TT["NEXT_MONTH"] = " ( )"; +Calendar._TT["NEXT_YEAR"] = " ( )"; +Calendar._TT["SEL_DATE"] = " "; +Calendar._TT["DRAG_TO_MOVE"] = ""; +Calendar._TT["PART_TODAY"] = " ()"; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "%s "; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = ""; +Calendar._TT["TODAY"] = ""; +Calendar._TT["TIME_PART"] = "(Shift-)Click drag "; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; +Calendar._TT["TT_DATE_FORMAT"] = "%A - %e %B %Y"; + +Calendar._TT["WK"] = ""; +Calendar._TT["TIME"] = ":"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-big5-utf8.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-big5-utf8.js new file mode 100644 index 00000000..14e0d5dd --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-big5-utf8.js @@ -0,0 +1,123 @@ +// ** I18N + +// Calendar big5-utf8 language +// Author: Gary Fu, +// Encoding: utf8 +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("星期日", + "星期一", + "星期二", + "星期三", + "星期四", + "星期五", + "星期六", + "星期日"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("日", + "一", + "二", + "三", + "四", + "五", + "六", + "日"); + +// full month names +Calendar._MN = new Array +("一月", + "二月", + "三月", + "四月", + "五月", + "六月", + "七月", + "八月", + "九月", + "十月", + "十一月", + "十二月"); + +// short month names +Calendar._SMN = new Array +("一月", + "二月", + "三月", + "四月", + "五月", + "六月", + "七月", + "八月", + "九月", + "十月", + "十一月", + "十二月"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "關於"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"For latest version visit: http://www.dynarch.com/projects/calendar/\n" + +"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." + +"\n\n" + +"日期選擇方法:\n" + +"- 使用 \xab, \xbb 按鈕可選擇年份\n" + +"- 使用 " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " 按鈕可選擇月份\n" + +"- 按住上面的按鈕可以加快選取"; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"時間選擇方法:\n" + +"- 點擊任何的時間部份可增加其值\n" + +"- 同時按Shift鍵再點擊可減少其值\n" + +"- 點擊並拖曳可加快改變的值"; + +Calendar._TT["PREV_YEAR"] = "上一年 (按住選單)"; +Calendar._TT["PREV_MONTH"] = "下一年 (按住選單)"; +Calendar._TT["GO_TODAY"] = "到今日"; +Calendar._TT["NEXT_MONTH"] = "上一月 (按住選單)"; +Calendar._TT["NEXT_YEAR"] = "下一月 (按住選單)"; +Calendar._TT["SEL_DATE"] = "選擇日期"; +Calendar._TT["DRAG_TO_MOVE"] = "拖曳"; +Calendar._TT["PART_TODAY"] = " (今日)"; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "將 %s 顯示在前"; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = "關閉"; +Calendar._TT["TODAY"] = "今日"; +Calendar._TT["TIME_PART"] = "點擊or拖曳可改變時間(同時按Shift為減)"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; +Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e"; + +Calendar._TT["WK"] = "週"; +Calendar._TT["TIME"] = "Time:"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-big5.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-big5.js new file mode 100644 index 00000000..a5893587 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-big5.js @@ -0,0 +1,123 @@ +// ** I18N + +// Calendar big5 language +// Author: Gary Fu, +// Encoding: big5 +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("P", + "P@", + "PG", + "PT", + "P|", + "P", + "P", + "P"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("", + "@", + "G", + "T", + "|", + "", + "", + ""); + +// full month names +Calendar._MN = new Array +("@", + "G", + "T", + "|", + "", + "", + "C", + "K", + "E", + "Q", + "Q@", + "QG"); + +// short month names +Calendar._SMN = new Array +("@", + "G", + "T", + "|", + "", + "", + "C", + "K", + "E", + "Q", + "Q@", + "QG"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = ""; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"For latest version visit: http://www.dynarch.com/projects/calendar/\n" + +"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." + +"\n\n" + +"ܤk:\n" + +"- ϥ \xab, \xbb siܦ~\n" + +"- ϥ " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " siܤ\n" + +"- WsiH[ֿ"; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"ɶܤk:\n" + +"- I󪺮ɶiW[\n" + +"- PɫShiftAIi֨\n" + +"- Ié즲i[֧ܪ"; + +Calendar._TT["PREV_YEAR"] = "W@~ ()"; +Calendar._TT["PREV_MONTH"] = "U@~ ()"; +Calendar._TT["GO_TODAY"] = "줵"; +Calendar._TT["NEXT_MONTH"] = "W@ ()"; +Calendar._TT["NEXT_YEAR"] = "U@ ()"; +Calendar._TT["SEL_DATE"] = "ܤ"; +Calendar._TT["DRAG_TO_MOVE"] = "즲"; +Calendar._TT["PART_TODAY"] = " ()"; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "N %s ܦbe"; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = ""; +Calendar._TT["TODAY"] = ""; +Calendar._TT["TIME_PART"] = "Ior즲iܮɶ(PɫShift)"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; +Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e"; + +Calendar._TT["WK"] = "g"; +Calendar._TT["TIME"] = "Time:"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-br.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-br.js new file mode 100644 index 00000000..bfb07471 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-br.js @@ -0,0 +1,108 @@ +// ** I18N + +// Calendar pt-BR language +// Author: Fernando Dourado, +// Encoding: any +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("Domingo", + "Segunda", + "Terça", + "Quarta", + "Quinta", + "Sexta", + "Sabádo", + "Domingo"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +// [No changes using default values] + +// full month names +Calendar._MN = new Array +("Janeiro", + "Fevereiro", + "Março", + "Abril", + "Maio", + "Junho", + "Julho", + "Agosto", + "Setembro", + "Outubro", + "Novembro", + "Dezembro"); + +// short month names +// [No changes using default values] + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "Sobre o calendário"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"For latest version visit: http://www.dynarch.com/projects/calendar/\n" + +"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." + +"\n\n" + +"Translate to portuguese Brazil (pt-BR) by Fernando Dourado (fernando.dourado@ig.com.br)\n" + +"Tradução para o português Brasil (pt-BR) por Fernando Dourado (fernando.dourado@ig.com.br)" + +"\n\n" + +"Selecionar data:\n" + +"- Use as teclas \xab, \xbb para selecionar o ano\n" + +"- Use as teclas " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para selecionar o mês\n" + +"- Clique e segure com o mouse em qualquer botão para selecionar rapidamente."; + +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Selecionar hora:\n" + +"- Clique em qualquer uma das partes da hora para aumentar\n" + +"- ou Shift-clique para diminuir\n" + +"- ou clique e arraste para selecionar rapidamente."; + +Calendar._TT["PREV_YEAR"] = "Ano anterior (clique e segure para menu)"; +Calendar._TT["PREV_MONTH"] = "Mês anterior (clique e segure para menu)"; +Calendar._TT["GO_TODAY"] = "Ir para a data atual"; +Calendar._TT["NEXT_MONTH"] = "Próximo mês (clique e segure para menu)"; +Calendar._TT["NEXT_YEAR"] = "Próximo ano (clique e segure para menu)"; +Calendar._TT["SEL_DATE"] = "Selecione uma data"; +Calendar._TT["DRAG_TO_MOVE"] = "Clique e segure para mover"; +Calendar._TT["PART_TODAY"] = " (hoje)"; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "Exibir %s primeiro"; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = "Fechar"; +Calendar._TT["TODAY"] = "Hoje"; +Calendar._TT["TIME_PART"] = "(Shift-)Clique ou arraste para mudar o valor"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%d/%m/%Y"; +Calendar._TT["TT_DATE_FORMAT"] = "%d de %B de %Y"; + +Calendar._TT["WK"] = "sem"; +Calendar._TT["TIME"] = "Hora:"; + diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-ca.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-ca.js new file mode 100644 index 00000000..a2121bcb --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-ca.js @@ -0,0 +1,123 @@ +// ** I18N + +// Calendar CA language +// Author: Mihai Bazon, +// Encoding: any +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("Diumenge", + "Dilluns", + "Dimarts", + "Dimecres", + "Dijous", + "Divendres", + "Dissabte", + "Diumenge"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("Diu", + "Dil", + "Dmt", + "Dmc", + "Dij", + "Div", + "Dis", + "Diu"); + +// full month names +Calendar._MN = new Array +("Gener", + "Febrer", + "Mar", + "Abril", + "Maig", + "Juny", + "Juliol", + "Agost", + "Setembre", + "Octubre", + "Novembre", + "Desembre"); + +// short month names +Calendar._SMN = new Array +("Gen", + "Feb", + "Mar", + "Abr", + "Mai", + "Jun", + "Jul", + "Ago", + "Set", + "Oct", + "Nov", + "Des"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "Sobre el calendari"; + +Calendar._TT["ABOUT"] = +"DHTML Selector de Data/Hora\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"For latest version visit: http://www.dynarch.com/projects/calendar/\n" + +"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." + +"\n\n" + +"Sel.lecci de Dates:\n" + +"- Fes servir els botons \xab, \xbb per sel.leccionar l'any\n" + +"- Fes servir els botons " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " per se.lecciconar el mes\n" + +"- Mant el ratol apretat en qualsevol dels anteriors per sel.lecci rpida."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Time selection:\n" + +"- claca en qualsevol de les parts de la hora per augmentar-les\n" + +"- o Shift-click per decrementar-la\n" + +"- or click and arrastra per sel.lecci rpida."; + +Calendar._TT["PREV_YEAR"] = "Any anterior (Mantenir per menu)"; +Calendar._TT["PREV_MONTH"] = "Mes anterior (Mantenir per menu)"; +Calendar._TT["GO_TODAY"] = "Anar a avui"; +Calendar._TT["NEXT_MONTH"] = "Mes segent (Mantenir per menu)"; +Calendar._TT["NEXT_YEAR"] = "Any segent (Mantenir per menu)"; +Calendar._TT["SEL_DATE"] = "Sel.leccionar data"; +Calendar._TT["DRAG_TO_MOVE"] = "Arrastrar per moure"; +Calendar._TT["PART_TODAY"] = " (avui)"; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "Mostra %s primer"; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = "Tanca"; +Calendar._TT["TODAY"] = "Avui"; +Calendar._TT["TIME_PART"] = "(Shift-)Click a arrastra per canviar el valor"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; +Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e"; + +Calendar._TT["WK"] = "st"; +Calendar._TT["TIME"] = "Hora:"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-cs-utf8.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-cs-utf8.js new file mode 100644 index 00000000..f6bbbeba --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-cs-utf8.js @@ -0,0 +1,65 @@ +/* + calendar-cs-win.js + language: Czech + encoding: windows-1250 + author: Lubos Jerabek (xnet@seznam.cz) + Jan Uhlir (espinosa@centrum.cz) +*/ + +// ** I18N +Calendar._DN = new Array('Neděle','Pondělí','Úterý','Středa','Čtvrtek','Pátek','Sobota','Neděle'); +Calendar._SDN = new Array('Ne','Po','Út','St','Čt','Pá','So','Ne'); +Calendar._MN = new Array('Leden','Únor','Březen','Duben','Květen','Červen','Červenec','Srpen','Září','Říjen','Listopad','Prosinec'); +Calendar._SMN = new Array('Led','Úno','Bře','Dub','Kvě','Črv','Čvc','Srp','Zář','Říj','Lis','Pro'); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "O komponentě kalendář"; +Calendar._TT["TOGGLE"] = "Změna prvního dne v týdnu"; +Calendar._TT["PREV_YEAR"] = "Předchozí rok (přidrž pro menu)"; +Calendar._TT["PREV_MONTH"] = "Předchozí měsíc (přidrž pro menu)"; +Calendar._TT["GO_TODAY"] = "Dnešní datum"; +Calendar._TT["NEXT_MONTH"] = "Další měsíc (přidrž pro menu)"; +Calendar._TT["NEXT_YEAR"] = "Další rok (přidrž pro menu)"; +Calendar._TT["SEL_DATE"] = "Vyber datum"; +Calendar._TT["DRAG_TO_MOVE"] = "Chyť a táhni, pro přesun"; +Calendar._TT["PART_TODAY"] = " (dnes)"; +Calendar._TT["MON_FIRST"] = "Ukaž jako první Pondělí"; +//Calendar._TT["SUN_FIRST"] = "Ukaž jako první Neděli"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"For latest version visit: http://www.dynarch.com/projects/calendar/\n" + +"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." + +"\n\n" + +"Výběr datumu:\n" + +"- Use the \xab, \xbb buttons to select year\n" + +"- Použijte tlačítka " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " k výběru měsíce\n" + +"- Podržte tlačítko myši na jakémkoliv z těch tlačítek pro rychlejší výběr."; + +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Výběr času:\n" + +"- Klikněte na jakoukoliv z částí výběru času pro zvýšení.\n" + +"- nebo Shift-click pro snížení\n" + +"- nebo klikněte a táhněte pro rychlejší výběr."; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "Zobraz %s první"; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = "Zavřít"; +Calendar._TT["TODAY"] = "Dnes"; +Calendar._TT["TIME_PART"] = "(Shift-)Klikni nebo táhni pro změnu hodnoty"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "d.m.yy"; +Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e"; + +Calendar._TT["WK"] = "wk"; +Calendar._TT["TIME"] = "Čas:"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-cs-win.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-cs-win.js new file mode 100644 index 00000000..140dff31 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-cs-win.js @@ -0,0 +1,65 @@ +/* + calendar-cs-win.js + language: Czech + encoding: windows-1250 + author: Lubos Jerabek (xnet@seznam.cz) + Jan Uhlir (espinosa@centrum.cz) +*/ + +// ** I18N +Calendar._DN = new Array('Nedle','Pondl','ter','Steda','tvrtek','Ptek','Sobota','Nedle'); +Calendar._SDN = new Array('Ne','Po','t','St','t','P','So','Ne'); +Calendar._MN = new Array('Leden','nor','Bezen','Duben','Kvten','erven','ervenec','Srpen','Z','jen','Listopad','Prosinec'); +Calendar._SMN = new Array('Led','no','Be','Dub','Kv','rv','vc','Srp','Z','j','Lis','Pro'); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "O komponent kalend"; +Calendar._TT["TOGGLE"] = "Zmna prvnho dne v tdnu"; +Calendar._TT["PREV_YEAR"] = "Pedchoz rok (pidr pro menu)"; +Calendar._TT["PREV_MONTH"] = "Pedchoz msc (pidr pro menu)"; +Calendar._TT["GO_TODAY"] = "Dnen datum"; +Calendar._TT["NEXT_MONTH"] = "Dal msc (pidr pro menu)"; +Calendar._TT["NEXT_YEAR"] = "Dal rok (pidr pro menu)"; +Calendar._TT["SEL_DATE"] = "Vyber datum"; +Calendar._TT["DRAG_TO_MOVE"] = "Chy a thni, pro pesun"; +Calendar._TT["PART_TODAY"] = " (dnes)"; +Calendar._TT["MON_FIRST"] = "Uka jako prvn Pondl"; +//Calendar._TT["SUN_FIRST"] = "Uka jako prvn Nedli"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"For latest version visit: http://www.dynarch.com/projects/calendar/\n" + +"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." + +"\n\n" + +"Vbr datumu:\n" + +"- Use the \xab, \xbb buttons to select year\n" + +"- Pouijte tlatka " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " k vbru msce\n" + +"- Podrte tlatko myi na jakmkoliv z tch tlatek pro rychlej vbr."; + +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Vbr asu:\n" + +"- Kliknte na jakoukoliv z st vbru asu pro zven.\n" + +"- nebo Shift-click pro snen\n" + +"- nebo kliknte a thnte pro rychlej vbr."; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "Zobraz %s prvn"; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = "Zavt"; +Calendar._TT["TODAY"] = "Dnes"; +Calendar._TT["TIME_PART"] = "(Shift-)Klikni nebo thni pro zmnu hodnoty"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "d.m.yy"; +Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e"; + +Calendar._TT["WK"] = "wk"; +Calendar._TT["TIME"] = "as:"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-da.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-da.js new file mode 100644 index 00000000..a99b598f --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-da.js @@ -0,0 +1,123 @@ +// ** I18N + +// Calendar DA language +// Author: Michael Thingmand Henriksen, +// Encoding: any +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("Søndag", +"Mandag", +"Tirsdag", +"Onsdag", +"Torsdag", +"Fredag", +"Lørdag", +"Søndag"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("Søn", +"Man", +"Tir", +"Ons", +"Tor", +"Fre", +"Lør", +"Søn"); + +// full month names +Calendar._MN = new Array +("Januar", +"Februar", +"Marts", +"April", +"Maj", +"Juni", +"Juli", +"August", +"September", +"Oktober", +"November", +"December"); + +// short month names +Calendar._SMN = new Array +("Jan", +"Feb", +"Mar", +"Apr", +"Maj", +"Jun", +"Jul", +"Aug", +"Sep", +"Okt", +"Nov", +"Dec"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "Om Kalenderen"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"For den seneste version besøg: http://www.dynarch.com/projects/calendar/\n"; + +"Distribueret under GNU LGPL. Se http://gnu.org/licenses/lgpl.html for detajler." + +"\n\n" + +"Valg af dato:\n" + +"- Brug \xab, \xbb knapperne for at vælge år\n" + +"- Brug " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " knapperne for at vælge måned\n" + +"- Hold knappen på musen nede på knapperne ovenfor for hurtigere valg."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Valg af tid:\n" + +"- Klik på en vilkårlig del for større værdi\n" + +"- eller Shift-klik for for mindre værdi\n" + +"- eller klik og træk for hurtigere valg."; + +Calendar._TT["PREV_YEAR"] = "Ét år tilbage (hold for menu)"; +Calendar._TT["PREV_MONTH"] = "Én måned tilbage (hold for menu)"; +Calendar._TT["GO_TODAY"] = "Gå til i dag"; +Calendar._TT["NEXT_MONTH"] = "Én måned frem (hold for menu)"; +Calendar._TT["NEXT_YEAR"] = "Ét år frem (hold for menu)"; +Calendar._TT["SEL_DATE"] = "Vælg dag"; +Calendar._TT["DRAG_TO_MOVE"] = "Træk vinduet"; +Calendar._TT["PART_TODAY"] = " (i dag)"; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "Vis %s først"; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = "Luk"; +Calendar._TT["TODAY"] = "I dag"; +Calendar._TT["TIME_PART"] = "(Shift-)klik eller træk for at ændre værdi"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y"; +Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e"; + +Calendar._TT["WK"] = "Uge"; +Calendar._TT["TIME"] = "Tid:"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-de.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-de.js new file mode 100644 index 00000000..4bc1137c --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-de.js @@ -0,0 +1,124 @@ +// ** I18N + +// Calendar DE language +// Author: Jack (tR), +// Encoding: any +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("Sonntag", + "Montag", + "Dienstag", + "Mittwoch", + "Donnerstag", + "Freitag", + "Samstag", + "Sonntag"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("So", + "Mo", + "Di", + "Mi", + "Do", + "Fr", + "Sa", + "So"); + +// full month names +Calendar._MN = new Array +("Januar", + "Februar", + "M\u00e4rz", + "April", + "Mai", + "Juni", + "Juli", + "August", + "September", + "Oktober", + "November", + "Dezember"); + +// short month names +Calendar._SMN = new Array +("Jan", + "Feb", + "M\u00e4r", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Okt", + "Nov", + "Dez"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "\u00DCber dieses Kalendarmodul"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this ;-) +"For latest version visit: http://www.dynarch.com/projects/calendar/\n" + +"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." + +"\n\n" + +"Datum ausw\u00e4hlen:\n" + +"- Benutzen Sie die \xab, \xbb Buttons um das Jahr zu w\u00e4hlen\n" + +"- Benutzen Sie die " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " Buttons um den Monat zu w\u00e4hlen\n" + +"- F\u00fcr eine Schnellauswahl halten Sie die Maustaste \u00fcber diesen Buttons fest."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Zeit ausw\u00e4hlen:\n" + +"- Klicken Sie auf die Teile der Uhrzeit, um diese zu erh\u00F6hen\n" + +"- oder klicken Sie mit festgehaltener Shift-Taste um diese zu verringern\n" + +"- oder klicken und festhalten f\u00fcr Schnellauswahl."; + +Calendar._TT["TOGGLE"] = "Ersten Tag der Woche w\u00e4hlen"; +Calendar._TT["PREV_YEAR"] = "Voriges Jahr (Festhalten f\u00fcr Schnellauswahl)"; +Calendar._TT["PREV_MONTH"] = "Voriger Monat (Festhalten f\u00fcr Schnellauswahl)"; +Calendar._TT["GO_TODAY"] = "Heute ausw\u00e4hlen"; +Calendar._TT["NEXT_MONTH"] = "N\u00e4chst. Monat (Festhalten f\u00fcr Schnellauswahl)"; +Calendar._TT["NEXT_YEAR"] = "N\u00e4chst. Jahr (Festhalten f\u00fcr Schnellauswahl)"; +Calendar._TT["SEL_DATE"] = "Datum ausw\u00e4hlen"; +Calendar._TT["DRAG_TO_MOVE"] = "Zum Bewegen festhalten"; +Calendar._TT["PART_TODAY"] = " (Heute)"; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "Woche beginnt mit %s "; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = "Schlie\u00dfen"; +Calendar._TT["TODAY"] = "Heute"; +Calendar._TT["TIME_PART"] = "(Shift-)Klick oder Festhalten und Ziehen um den Wert zu \u00e4ndern"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%d.%m.%Y"; +Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e"; + +Calendar._TT["WK"] = "wk"; +Calendar._TT["TIME"] = "Zeit:"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-du.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-du.js new file mode 100644 index 00000000..22004480 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-du.js @@ -0,0 +1,45 @@ +// ** I18N +Calendar._DN = new Array +("Zondag", + "Maandag", + "Dinsdag", + "Woensdag", + "Donderdag", + "Vrijdag", + "Zaterdag", + "Zondag"); +Calendar._MN = new Array +("Januari", + "Februari", + "Maart", + "April", + "Mei", + "Juni", + "Juli", + "Augustus", + "September", + "Oktober", + "November", + "December"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["TOGGLE"] = "Toggle startdag van de week"; +Calendar._TT["PREV_YEAR"] = "Vorig jaar (indrukken voor menu)"; +Calendar._TT["PREV_MONTH"] = "Vorige month (indrukken voor menu)"; +Calendar._TT["GO_TODAY"] = "Naar Vandaag"; +Calendar._TT["NEXT_MONTH"] = "Volgende Maand (indrukken voor menu)"; +Calendar._TT["NEXT_YEAR"] = "Volgend jaar (indrukken voor menu)"; +Calendar._TT["SEL_DATE"] = "Selecteer datum"; +Calendar._TT["DRAG_TO_MOVE"] = "Sleep om te verplaatsen"; +Calendar._TT["PART_TODAY"] = " (vandaag)"; +Calendar._TT["MON_FIRST"] = "Toon Maandag eerst"; +Calendar._TT["SUN_FIRST"] = "Toon Zondag eerst"; +Calendar._TT["CLOSE"] = "Sluiten"; +Calendar._TT["TODAY"] = "Vandaag"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd"; +Calendar._TT["TT_DATE_FORMAT"] = "D, M d"; + +Calendar._TT["WK"] = "wk"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-el.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-el.js new file mode 100644 index 00000000..fee5575e --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-el.js @@ -0,0 +1,89 @@ +// ** I18N +Calendar._DN = new Array +("Κυριακή", + "Δευτέρα", + "Τρίτη", + "Τετάρτη", + "Πέμπτη", + "Παρασκευή", + "Σάββατο", + "Κυριακή"); + +Calendar._SDN = new Array +("Κυ", + "Δε", + "Tρ", + "Τε", + "Πε", + "Πα", + "Σα", + "Κυ"); + +Calendar._MN = new Array +("Ιανουάριος", + "Φεβρουάριος", + "Μάρτιος", + "Απρίλιος", + "Μάϊος", + "Ιούνιος", + "Ιούλιος", + "Αύγουστος", + "Σεπτέμβριος", + "Οκτώβριος", + "Νοέμβριος", + "Δεκέμβριος"); + +Calendar._SMN = new Array +("Ιαν", + "Φεβ", + "Μαρ", + "Απρ", + "Μαι", + "Ιουν", + "Ιουλ", + "Αυγ", + "Σεπ", + "Οκτ", + "Νοε", + "Δεκ"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "Για το ημερολόγιο"; + +Calendar._TT["ABOUT"] = +"Επιλογέας ημερομηνίας/ώρας σε DHTML\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"Για τελευταία έκδοση: http://www.dynarch.com/projects/calendar/\n" + +"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." + +"\n\n" + +"Επιλογή ημερομηνίας:\n" + +"- Χρησιμοποιείστε τα κουμπιά \xab, \xbb για επιλογή έτους\n" + +"- Χρησιμοποιείστε τα κουμπιά " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " για επιλογή μήνα\n" + +"- Κρατήστε κουμπί ποντικού πατημένο στα παραπάνω κουμπιά για πιο γρήγορη επιλογή."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Επιλογή ώρας:\n" + +"- Κάντε κλικ σε ένα από τα μέρη της ώρας για αύξηση\n" + +"- ή Shift-κλικ για μείωση\n" + +"- ή κλικ και μετακίνηση για πιο γρήγορη επιλογή."; +Calendar._TT["TOGGLE"] = "Μπάρα πρώτης ημέρας της εβδομάδας"; +Calendar._TT["PREV_YEAR"] = "Προηγ. έτος (κρατήστε για το μενού)"; +Calendar._TT["PREV_MONTH"] = "Προηγ. μήνας (κρατήστε για το μενού)"; +Calendar._TT["GO_TODAY"] = "Σήμερα"; +Calendar._TT["NEXT_MONTH"] = "Επόμενος μήνας (κρατήστε για το μενού)"; +Calendar._TT["NEXT_YEAR"] = "Επόμενο έτος (κρατήστε για το μενού)"; +Calendar._TT["SEL_DATE"] = "Επιλέξτε ημερομηνία"; +Calendar._TT["DRAG_TO_MOVE"] = "Σύρτε για να μετακινήσετε"; +Calendar._TT["PART_TODAY"] = " (σήμερα)"; +Calendar._TT["MON_FIRST"] = "Εμφάνιση Δευτέρας πρώτα"; +Calendar._TT["SUN_FIRST"] = "Εμφάνιση Κυριακής πρώτα"; +Calendar._TT["CLOSE"] = "Κλείσιμο"; +Calendar._TT["TODAY"] = "Σήμερα"; +Calendar._TT["TIME_PART"] = "(Shift-)κλικ ή μετακίνηση για αλλαγή"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y"; +Calendar._TT["TT_DATE_FORMAT"] = "D, d M"; + +Calendar._TT["WK"] = "εβδ"; + diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-en.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-en.js new file mode 100644 index 00000000..0dbde793 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-en.js @@ -0,0 +1,127 @@ +// ** I18N + +// Calendar EN language +// Author: Mihai Bazon, +// Encoding: any +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Sunday"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("Sun", + "Mon", + "Tue", + "Wed", + "Thu", + "Fri", + "Sat", + "Sun"); + +// First day of the week. "0" means display Sunday first, "1" means display +// Monday first, etc. +Calendar._FD = 0; + +// full month names +Calendar._MN = new Array +("January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December"); + +// short month names +Calendar._SMN = new Array +("Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "About the calendar"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"For latest version visit: http://www.dynarch.com/projects/calendar/\n" + +"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." + +"\n\n" + +"Date selection:\n" + +"- Use the \xab, \xbb buttons to select year\n" + +"- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" + +"- Hold mouse button on any of the above buttons for faster selection."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Time selection:\n" + +"- Click on any of the time parts to increase it\n" + +"- or Shift-click to decrease it\n" + +"- or click and drag for faster selection."; + +Calendar._TT["PREV_YEAR"] = "Prev. year (hold for menu)"; +Calendar._TT["PREV_MONTH"] = "Prev. month (hold for menu)"; +Calendar._TT["GO_TODAY"] = "Go Today"; +Calendar._TT["NEXT_MONTH"] = "Next month (hold for menu)"; +Calendar._TT["NEXT_YEAR"] = "Next year (hold for menu)"; +Calendar._TT["SEL_DATE"] = "Select date"; +Calendar._TT["DRAG_TO_MOVE"] = "Drag to move"; +Calendar._TT["PART_TODAY"] = " (today)"; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "Display %s first"; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = "Close"; +Calendar._TT["TODAY"] = "Today"; +Calendar._TT["TIME_PART"] = "(Shift-)Click or drag to change value"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; +Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e"; + +Calendar._TT["WK"] = "wk"; +Calendar._TT["TIME"] = "Time:"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-es.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-es.js new file mode 100644 index 00000000..19c1b30b --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-es.js @@ -0,0 +1,129 @@ +// ** I18N + +// Calendar ES (spanish) language +// Author: Mihai Bazon, +// Updater: Servilio Afre Puentes +// Updated: 2004-06-03 +// Encoding: utf-8 +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("Domingo", + "Lunes", + "Martes", + "Mircoles", + "Jueves", + "Viernes", + "Sbado", + "Domingo"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("Dom", + "Lun", + "Mar", + "Mi", + "Jue", + "Vie", + "Sb", + "Dom"); + +// First day of the week. "0" means display Sunday first, "1" means display +// Monday first, etc. +Calendar._FD = 1; + +// full month names +Calendar._MN = new Array +("Enero", + "Febrero", + "Marzo", + "Abril", + "Mayo", + "Junio", + "Julio", + "Agosto", + "Septiembre", + "Octubre", + "Noviembre", + "Diciembre"); + +// short month names +Calendar._SMN = new Array +("Ene", + "Feb", + "Mar", + "Abr", + "May", + "Jun", + "Jul", + "Ago", + "Sep", + "Oct", + "Nov", + "Dic"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "Acerca del calendario"; + +Calendar._TT["ABOUT"] = +"Selector DHTML de Fecha/Hora\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"Para conseguir la ltima versin visite: http://www.dynarch.com/projects/calendar/\n" + +"Distribuido bajo licencia GNU LGPL. Visite http://gnu.org/licenses/lgpl.html para ms detalles." + +"\n\n" + +"Seleccin de fecha:\n" + +"- Use los botones \xab, \xbb para seleccionar el ao\n" + +"- Use los botones " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para seleccionar el mes\n" + +"- Mantenga pulsado el ratn en cualquiera de estos botones para una seleccin rpida."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Seleccin de hora:\n" + +"- Pulse en cualquiera de las partes de la hora para incrementarla\n" + +"- o pulse las maysculas mientras hace clic para decrementarla\n" + +"- o haga clic y arrastre el ratn para una seleccin ms rpida."; + +Calendar._TT["PREV_YEAR"] = "Ao anterior (mantener para men)"; +Calendar._TT["PREV_MONTH"] = "Mes anterior (mantener para men)"; +Calendar._TT["GO_TODAY"] = "Ir a hoy"; +Calendar._TT["NEXT_MONTH"] = "Mes siguiente (mantener para men)"; +Calendar._TT["NEXT_YEAR"] = "Ao siguiente (mantener para men)"; +Calendar._TT["SEL_DATE"] = "Seleccionar fecha"; +Calendar._TT["DRAG_TO_MOVE"] = "Arrastrar para mover"; +Calendar._TT["PART_TODAY"] = " (hoy)"; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "Hacer %s primer da de la semana"; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = "Cerrar"; +Calendar._TT["TODAY"] = "Hoy"; +Calendar._TT["TIME_PART"] = "(Mayscula-)Clic o arrastre para cambiar valor"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%d/%m/%Y"; +Calendar._TT["TT_DATE_FORMAT"] = "%A, %e de %B de %Y"; + +Calendar._TT["WK"] = "sem"; +Calendar._TT["TIME"] = "Hora:"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-fi.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-fi.js new file mode 100644 index 00000000..328eabb3 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-fi.js @@ -0,0 +1,98 @@ +// ** I18N + +// Calendar FI language (Finnish, Suomi) +// Author: Jarno Käyhkö, +// Encoding: UTF-8 +// Distributed under the same terms as the calendar itself. + +// full day names +Calendar._DN = new Array +("Sunnuntai", + "Maanantai", + "Tiistai", + "Keskiviikko", + "Torstai", + "Perjantai", + "Lauantai", + "Sunnuntai"); + +// short day names +Calendar._SDN = new Array +("Su", + "Ma", + "Ti", + "Ke", + "To", + "Pe", + "La", + "Su"); + +// full month names +Calendar._MN = new Array +("Tammikuu", + "Helmikuu", + "Maaliskuu", + "Huhtikuu", + "Toukokuu", + "Kesäkuu", + "Heinäkuu", + "Elokuu", + "Syyskuu", + "Lokakuu", + "Marraskuu", + "Joulukuu"); + +// short month names +Calendar._SMN = new Array +("Tam", + "Hel", + "Maa", + "Huh", + "Tou", + "Kes", + "Hei", + "Elo", + "Syy", + "Lok", + "Mar", + "Jou"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "Tietoja kalenterista"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"Uusin versio osoitteessa: http://www.dynarch.com/projects/calendar/\n" + +"Julkaistu GNU LGPL lisenssin alaisuudessa. Lisätietoja osoitteessa http://gnu.org/licenses/lgpl.html" + +"\n\n" + +"Päivämäärä valinta:\n" + +"- Käytä \xab, \xbb painikkeita valitaksesi vuosi\n" + +"- Käytä " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " painikkeita valitaksesi kuukausi\n" + +"- Pitämällä hiiren painiketta minkä tahansa yllä olevan painikkeen kohdalla, saat näkyviin valikon nopeampaan siirtymiseen."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Ajan valinta:\n" + +"- Klikkaa kellonajan numeroita lisätäksesi aikaa\n" + +"- tai pitämällä Shift-näppäintä pohjassa saat aikaa taaksepäin\n" + +"- tai klikkaa ja pidä hiiren painike pohjassa sekä liikuta hiirtä muuttaaksesi aikaa nopeasti eteen- ja taaksepäin."; + +Calendar._TT["PREV_YEAR"] = "Edell. vuosi (paina hetki, näet valikon)"; +Calendar._TT["PREV_MONTH"] = "Edell. kuukausi (paina hetki, näet valikon)"; +Calendar._TT["GO_TODAY"] = "Siirry tähän päivään"; +Calendar._TT["NEXT_MONTH"] = "Seur. kuukausi (paina hetki, näet valikon)"; +Calendar._TT["NEXT_YEAR"] = "Seur. vuosi (paina hetki, näet valikon)"; +Calendar._TT["SEL_DATE"] = "Valitse päivämäärä"; +Calendar._TT["DRAG_TO_MOVE"] = "Siirrä kalenterin paikkaa"; +Calendar._TT["PART_TODAY"] = " (tänään)"; +Calendar._TT["MON_FIRST"] = "Näytä maanantai ensimmäisenä"; +Calendar._TT["SUN_FIRST"] = "Näytä sunnuntai ensimmäisenä"; +Calendar._TT["CLOSE"] = "Sulje"; +Calendar._TT["TODAY"] = "Tänään"; +Calendar._TT["TIME_PART"] = "(Shift-) Klikkaa tai liikuta muuttaaksesi aikaa"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%d.%m.%Y"; +Calendar._TT["TT_DATE_FORMAT"] = "%d.%m.%Y"; + +Calendar._TT["WK"] = "Vko"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-fr.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-fr.js new file mode 100644 index 00000000..2a9e0b20 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-fr.js @@ -0,0 +1,125 @@ +// ** I18N + +// Calendar EN language +// Author: Mihai Bazon, +// Encoding: any +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// Translator: David Duret, from previous french version + +// full day names +Calendar._DN = new Array +("Dimanche", + "Lundi", + "Mardi", + "Mercredi", + "Jeudi", + "Vendredi", + "Samedi", + "Dimanche"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("Dim", + "Lun", + "Mar", + "Mar", + "Jeu", + "Ven", + "Sam", + "Dim"); + +// full month names +Calendar._MN = new Array +("Janvier", + "Fvrier", + "Mars", + "Avril", + "Mai", + "Juin", + "Juillet", + "Aot", + "Septembre", + "Octobre", + "Novembre", + "Dcembre"); + +// short month names +Calendar._SMN = new Array +("Jan", + "Fev", + "Mar", + "Avr", + "Mai", + "Juin", + "Juil", + "Aout", + "Sep", + "Oct", + "Nov", + "Dec"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "A propos du calendrier"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Heure Selecteur\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"Pour la derniere version visitez : http://www.dynarch.com/projects/calendar/\n" + +"Distribu par GNU LGPL. Voir http://gnu.org/licenses/lgpl.html pour les details." + +"\n\n" + +"Selection de la date :\n" + +"- Utiliser les bouttons \xab, \xbb pour selectionner l\'annee\n" + +"- Utiliser les bouttons " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " pour selectionner les mois\n" + +"- Garder la souris sur n'importe quels boutons pour une selection plus rapide"; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Selection de l\'heure :\n" + +"- Cliquer sur heures ou minutes pour incrementer\n" + +"- ou Maj-clic pour decrementer\n" + +"- ou clic et glisser-deplacer pour une selection plus rapide"; + +Calendar._TT["PREV_YEAR"] = "Anne prc. (maintenir pour menu)"; +Calendar._TT["PREV_MONTH"] = "Mois prc. (maintenir pour menu)"; +Calendar._TT["GO_TODAY"] = "Atteindre la date du jour"; +Calendar._TT["NEXT_MONTH"] = "Mois suiv. (maintenir pour menu)"; +Calendar._TT["NEXT_YEAR"] = "Anne suiv. (maintenir pour menu)"; +Calendar._TT["SEL_DATE"] = "Slectionner une date"; +Calendar._TT["DRAG_TO_MOVE"] = "Dplacer"; +Calendar._TT["PART_TODAY"] = " (Aujourd'hui)"; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "Afficher %s en premier"; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = "Fermer"; +Calendar._TT["TODAY"] = "Aujourd'hui"; +Calendar._TT["TIME_PART"] = "(Maj-)Clic ou glisser pour modifier la valeur"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%d/%m/%Y"; +Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e"; + +Calendar._TT["WK"] = "Sem."; +Calendar._TT["TIME"] = "Heure :"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-he-utf8.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-he-utf8.js new file mode 100644 index 00000000..7861217b --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-he-utf8.js @@ -0,0 +1,123 @@ +// ** I18N + +// Calendar EN language +// Author: Idan Sofer, +// Encoding: UTF-8 +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("ראשון", + "שני", + "שלישי", + "רביעי", + "חמישי", + "שישי", + "שבת", + "ראשון"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("א", + "ב", + "ג", + "ד", + "ה", + "ו", + "ש", + "א"); + +// full month names +Calendar._MN = new Array +("ינואר", + "פברואר", + "מרץ", + "אפריל", + "מאי", + "יוני", + "יולי", + "אוגוסט", + "ספטמבר", + "אוקטובר", + "נובמבר", + "דצמבר"); + +// short month names +Calendar._SMN = new Array +("ינא", + "פבר", + "מרץ", + "אפר", + "מאי", + "יונ", + "יול", + "אוג", + "ספט", + "אוק", + "נוב", + "דצמ"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "אודות השנתון"; + +Calendar._TT["ABOUT"] = +"בחרן תאריך/שעה DHTML\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"הגירסא האחרונה זמינה ב: http://www.dynarch.com/projects/calendar/\n" + +"מופץ תחת זיכיון ה GNU LGPL. עיין ב http://gnu.org/licenses/lgpl.html לפרטים נוספים." + +"\n\n" + +בחירת תאריך:\n" + +"- השתמש בכפתורים \xab, \xbb לבחירת שנה\n" + +"- השתמש בכפתורים " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " לבחירת חודש\n" + +"- החזק העכבר לחוץ מעל הכפתורים המוזכרים לעיל לבחירה מהירה יותר."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"בחירת זמן:\n" + +"- לחץ על כל אחד מחלקי הזמן כדי להוסיף\n" + +"- או shift בשילוב עם לחיצה כדי להחסיר\n" + +"- או לחץ וגרור לפעולה מהירה יותר."; + +Calendar._TT["PREV_YEAR"] = "שנה קודמת - החזק לקבלת תפריט"; +Calendar._TT["PREV_MONTH"] = "חודש קודם - החזק לקבלת תפריט"; +Calendar._TT["GO_TODAY"] = "עבור להיום"; +Calendar._TT["NEXT_MONTH"] = "חודש הבא - החזק לתפריט"; +Calendar._TT["NEXT_YEAR"] = "שנה הבאה - החזק לתפריט"; +Calendar._TT["SEL_DATE"] = "בחר תאריך"; +Calendar._TT["DRAG_TO_MOVE"] = "גרור להזזה"; +Calendar._TT["PART_TODAY"] = " )היום("; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "הצג %s קודם"; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "6"; + +Calendar._TT["CLOSE"] = "סגור"; +Calendar._TT["TODAY"] = "היום"; +Calendar._TT["TIME_PART"] = "(שיפט-)לחץ וגרור כדי לשנות ערך"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; +Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e"; + +Calendar._TT["WK"] = "wk"; +Calendar._TT["TIME"] = "שעה::"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-hr-utf8.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-hr-utf8.js new file mode 100644 index 00000000..baf01b17 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-hr-utf8.js @@ -0,0 +1,49 @@ +/* Croatian language file for the DHTML Calendar version 0.9.2 +* Author Krunoslav Zubrinic , June 2003. +* Feel free to use this script under the terms of the GNU Lesser General +* Public License, as long as you do not remove or alter this notice. +*/ +Calendar._DN = new Array +("Nedjelja", + "Ponedjeljak", + "Utorak", + "Srijeda", + "Četvrtak", + "Petak", + "Subota", + "Nedjelja"); +Calendar._MN = new Array +("Siječanj", + "Veljača", + "Ožujak", + "Travanj", + "Svibanj", + "Lipanj", + "Srpanj", + "Kolovoz", + "Rujan", + "Listopad", + "Studeni", + "Prosinac"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["TOGGLE"] = "Promjeni dan s kojim počinje tjedan"; +Calendar._TT["PREV_YEAR"] = "Prethodna godina (dugi pritisak za meni)"; +Calendar._TT["PREV_MONTH"] = "Prethodni mjesec (dugi pritisak za meni)"; +Calendar._TT["GO_TODAY"] = "Idi na tekući dan"; +Calendar._TT["NEXT_MONTH"] = "Slijedeći mjesec (dugi pritisak za meni)"; +Calendar._TT["NEXT_YEAR"] = "Slijedeća godina (dugi pritisak za meni)"; +Calendar._TT["SEL_DATE"] = "Izaberite datum"; +Calendar._TT["DRAG_TO_MOVE"] = "Pritisni i povuci za promjenu pozicije"; +Calendar._TT["PART_TODAY"] = " (today)"; +Calendar._TT["MON_FIRST"] = "Prikaži ponedjeljak kao prvi dan"; +Calendar._TT["SUN_FIRST"] = "Prikaži nedjelju kao prvi dan"; +Calendar._TT["CLOSE"] = "Zatvori"; +Calendar._TT["TODAY"] = "Danas"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y"; +Calendar._TT["TT_DATE_FORMAT"] = "DD, dd.mm.y"; + +Calendar._TT["WK"] = "Tje"; \ No newline at end of file diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-hr.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-hr.js new file mode 100644 index 00000000..be9a021b Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-hr.js differ diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-hu.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-hu.js new file mode 100644 index 00000000..f5bf057e --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-hu.js @@ -0,0 +1,124 @@ +// ** I18N + +// Calendar HU language +// Author: ??? +// Modifier: KARASZI Istvan, +// Encoding: any +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("Vasrnap", + "Htf", + "Kedd", + "Szerda", + "Cstrtk", + "Pntek", + "Szombat", + "Vasrnap"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("v", + "h", + "k", + "sze", + "cs", + "p", + "szo", + "v"); + +// full month names +Calendar._MN = new Array +("janur", + "februr", + "mrcius", + "prilis", + "mjus", + "jnius", + "jlius", + "augusztus", + "szeptember", + "oktber", + "november", + "december"); + +// short month names +Calendar._SMN = new Array +("jan", + "feb", + "mr", + "pr", + "mj", + "jn", + "jl", + "aug", + "sze", + "okt", + "nov", + "dec"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "A kalendriumrl"; + +Calendar._TT["ABOUT"] = +"DHTML dtum/id kivlaszt\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"a legfrissebb verzi megtallhat: http://www.dynarch.com/projects/calendar/\n" + +"GNU LGPL alatt terjesztve. Lsd a http://gnu.org/licenses/lgpl.html oldalt a rszletekhez." + +"\n\n" + +"Dtum vlaszts:\n" + +"- hasznlja a \xab, \xbb gombokat az v kivlasztshoz\n" + +"- hasznlja a " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " gombokat a hnap kivlasztshoz\n" + +"- tartsa lenyomva az egrgombot a gyors vlasztshoz."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Id vlaszts:\n" + +"- kattintva nvelheti az idt\n" + +"- shift-tel kattintva cskkentheti\n" + +"- lenyomva tartva s hzva gyorsabban kivlaszthatja."; + +Calendar._TT["PREV_YEAR"] = "Elz v (tartsa nyomva a menhz)"; +Calendar._TT["PREV_MONTH"] = "Elz hnap (tartsa nyomva a menhz)"; +Calendar._TT["GO_TODAY"] = "Mai napra ugrs"; +Calendar._TT["NEXT_MONTH"] = "Kv. hnap (tartsa nyomva a menhz)"; +Calendar._TT["NEXT_YEAR"] = "Kv. v (tartsa nyomva a menhz)"; +Calendar._TT["SEL_DATE"] = "Vlasszon dtumot"; +Calendar._TT["DRAG_TO_MOVE"] = "Hzza a mozgatshoz"; +Calendar._TT["PART_TODAY"] = " (ma)"; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "%s legyen a ht els napja"; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = "Bezr"; +Calendar._TT["TODAY"] = "Ma"; +Calendar._TT["TIME_PART"] = "(Shift-)Klikk vagy hzs az rtk vltoztatshoz"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; +Calendar._TT["TT_DATE_FORMAT"] = "%b %e, %a"; + +Calendar._TT["WK"] = "ht"; +Calendar._TT["TIME"] = "id:"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-it.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-it.js new file mode 100644 index 00000000..7f84cde0 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-it.js @@ -0,0 +1,124 @@ +// ** I18N + +// Calendar EN language +// Author: Mihai Bazon, +// Translator: Fabio Di Bernardini, +// Encoding: any +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("Domenica", + "Lunedì", + "Martedì", + "Mercoledì", + "Giovedì", + "Venerdì", + "Sabato", + "Domenica"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("Dom", + "Lun", + "Mar", + "Mer", + "Gio", + "Ven", + "Sab", + "Dom"); + +// full month names +Calendar._MN = new Array +("Gennaio", + "Febbraio", + "Marzo", + "Aprile", + "Maggio", + "Giugno", + "Luglio", + "Augosto", + "Settembre", + "Ottobre", + "Novembre", + "Dicembre"); + +// short month names +Calendar._SMN = new Array +("Gen", + "Feb", + "Mar", + "Apr", + "Mag", + "Giu", + "Lug", + "Ago", + "Set", + "Ott", + "Nov", + "Dic"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "Informazioni sul calendario"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"Per gli aggiornamenti: http://www.dynarch.com/projects/calendar/\n" + +"Distribuito sotto licenza GNU LGPL. Vedi http://gnu.org/licenses/lgpl.html per i dettagli." + +"\n\n" + +"Selezione data:\n" + +"- Usa \xab, \xbb per selezionare l'anno\n" + +"- Usa " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " per i mesi\n" + +"- Tieni premuto a lungo il mouse per accedere alle funzioni di selezione veloce."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Selezione orario:\n" + +"- Clicca sul numero per incrementarlo\n" + +"- o Shift+click per decrementarlo\n" + +"- o click e sinistra o destra per variarlo."; + +Calendar._TT["PREV_YEAR"] = "Anno prec.(clicca a lungo per il menù)"; +Calendar._TT["PREV_MONTH"] = "Mese prec. (clicca a lungo per il menù)"; +Calendar._TT["GO_TODAY"] = "Oggi"; +Calendar._TT["NEXT_MONTH"] = "Pross. mese (clicca a lungo per il menù)"; +Calendar._TT["NEXT_YEAR"] = "Pross. anno (clicca a lungo per il menù)"; +Calendar._TT["SEL_DATE"] = "Seleziona data"; +Calendar._TT["DRAG_TO_MOVE"] = "Trascina per spostarlo"; +Calendar._TT["PART_TODAY"] = " (oggi)"; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "Mostra prima %s"; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = "Chiudi"; +Calendar._TT["TODAY"] = "Oggi"; +Calendar._TT["TIME_PART"] = "(Shift-)Click o trascina per cambiare il valore"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y"; +Calendar._TT["TT_DATE_FORMAT"] = "%a:%b:%e"; + +Calendar._TT["WK"] = "set"; +Calendar._TT["TIME"] = "Ora:"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-jp.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-jp.js new file mode 100644 index 00000000..3bca7ebf --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-jp.js @@ -0,0 +1,45 @@ +// ** I18N +Calendar._DN = new Array +("", + "", + "", + "", + "", + "", + "y", + ""); +Calendar._MN = new Array +("1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["TOGGLE"] = "T̍ŏ̗j؂ւ"; +Calendar._TT["PREV_YEAR"] = "ON"; +Calendar._TT["PREV_MONTH"] = "O"; +Calendar._TT["GO_TODAY"] = ""; +Calendar._TT["NEXT_MONTH"] = ""; +Calendar._TT["NEXT_YEAR"] = "N"; +Calendar._TT["SEL_DATE"] = "tI"; +Calendar._TT["DRAG_TO_MOVE"] = "EBhËړ"; +Calendar._TT["PART_TODAY"] = " ()"; +Calendar._TT["MON_FIRST"] = "j擪"; +Calendar._TT["SUN_FIRST"] = "j擪"; +Calendar._TT["CLOSE"] = "‚"; +Calendar._TT["TODAY"] = ""; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd"; +Calendar._TT["TT_DATE_FORMAT"] = "%m %d (%a)"; + +Calendar._TT["WK"] = "T"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-ko-utf8.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-ko-utf8.js new file mode 100644 index 00000000..035dd748 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-ko-utf8.js @@ -0,0 +1,120 @@ +// ** I18N + +// Calendar EN language +// Author: Mihai Bazon, +// Translation: Yourim Yi +// Encoding: EUC-KR +// lang : ko +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names + +Calendar._DN = new Array +("일요일", + "월요일", + "화요일", + "수요일", + "목요일", + "금요일", + "토요일", + "일요일"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("일", + "월", + "화", + "수", + "목", + "금", + "토", + "일"); + +// full month names +Calendar._MN = new Array +("1월", + "2월", + "3월", + "4월", + "5월", + "6월", + "7월", + "8월", + "9월", + "10월", + "11월", + "12월"); + +// short month names +Calendar._SMN = new Array +("1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "calendar 에 대해서"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"\n"+ +"최신 버전을 받으시려면 http://www.dynarch.com/projects/calendar/ 에 방문하세요\n" + +"\n"+ +"GNU LGPL 라이센스로 배포됩니다. \n"+ +"라이센스에 대한 자세한 내용은 http://gnu.org/licenses/lgpl.html 을 읽으세요." + +"\n\n" + +"날짜 선택:\n" + +"- 연도를 선택하려면 \xab, \xbb 버튼을 사용합니다\n" + +"- 달을 선택하려면 " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " 버튼을 누르세요\n" + +"- 계속 누르고 있으면 위 값들을 빠르게 선택하실 수 있습니다."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"시간 선택:\n" + +"- 마우스로 누르면 시간이 증가합니다\n" + +"- Shift 키와 함께 누르면 감소합니다\n" + +"- 누른 상태에서 마우스를 움직이면 좀 더 빠르게 값이 변합니다.\n"; + +Calendar._TT["PREV_YEAR"] = "지난 해 (길게 누르면 목록)"; +Calendar._TT["PREV_MONTH"] = "지난 달 (길게 누르면 목록)"; +Calendar._TT["GO_TODAY"] = "오늘 날짜로"; +Calendar._TT["NEXT_MONTH"] = "다음 달 (길게 누르면 목록)"; +Calendar._TT["NEXT_YEAR"] = "다음 해 (길게 누르면 목록)"; +Calendar._TT["SEL_DATE"] = "날짜를 선택하세요"; +Calendar._TT["DRAG_TO_MOVE"] = "마우스 드래그로 이동 하세요"; +Calendar._TT["PART_TODAY"] = " (오늘)"; +Calendar._TT["MON_FIRST"] = "월요일을 한 주의 시작 요일로"; +Calendar._TT["SUN_FIRST"] = "일요일을 한 주의 시작 요일로"; +Calendar._TT["CLOSE"] = "닫기"; +Calendar._TT["TODAY"] = "오늘"; +Calendar._TT["TIME_PART"] = "(Shift-)클릭 또는 드래그 하세요"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; +Calendar._TT["TT_DATE_FORMAT"] = "%b/%e [%a]"; + +Calendar._TT["WK"] = "주"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-ko.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-ko.js new file mode 100644 index 00000000..8cddf586 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-ko.js @@ -0,0 +1,120 @@ +// ** I18N + +// Calendar EN language +// Author: Mihai Bazon, +// Translation: Yourim Yi +// Encoding: EUC-KR +// lang : ko +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names + +Calendar._DN = new Array +("Ͽ", + "", + "ȭ", + "", + "", + "ݿ", + "", + "Ͽ"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("", + "", + "ȭ", + "", + "", + "", + "", + ""); + +// full month names +Calendar._MN = new Array +("1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12"); + +// short month names +Calendar._SMN = new Array +("1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "calendar ؼ"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"\n"+ +"ֽ ÷ http://www.dynarch.com/projects/calendar/ 湮ϼ\n" + +"\n"+ +"GNU LGPL ̼ ˴ϴ. \n"+ +"̼ ڼ http://gnu.org/licenses/lgpl.html ." + +"\n\n" + +"¥ :\n" + +"- Ϸ \xab, \xbb ư մϴ\n" + +"- Ϸ " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " ư \n" + +"- Ͻ ֽϴ."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"ð :\n" + +"- 콺 ð մϴ\n" + +"- Shift Ű Բ մϴ\n" + +"- ¿ 콺 ̸ մϴ.\n"; + +Calendar._TT["PREV_YEAR"] = " ( )"; +Calendar._TT["PREV_MONTH"] = " ( )"; +Calendar._TT["GO_TODAY"] = " ¥"; +Calendar._TT["NEXT_MONTH"] = " ( )"; +Calendar._TT["NEXT_YEAR"] = " ( )"; +Calendar._TT["SEL_DATE"] = "¥ ϼ"; +Calendar._TT["DRAG_TO_MOVE"] = "콺 巡׷ ̵ ϼ"; +Calendar._TT["PART_TODAY"] = " ()"; +Calendar._TT["MON_FIRST"] = " Ϸ"; +Calendar._TT["SUN_FIRST"] = "Ͽ Ϸ"; +Calendar._TT["CLOSE"] = "ݱ"; +Calendar._TT["TODAY"] = ""; +Calendar._TT["TIME_PART"] = "(Shift-)Ŭ Ǵ 巡 ϼ"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; +Calendar._TT["TT_DATE_FORMAT"] = "%b/%e [%a]"; + +Calendar._TT["WK"] = ""; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-lt-utf8.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-lt-utf8.js new file mode 100644 index 00000000..d39653be --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-lt-utf8.js @@ -0,0 +1,114 @@ +// ** I18N + +// Calendar LT language +// Author: Martynas Majeris, +// Encoding: UTF-8 +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("Sekmadienis", + "Pirmadienis", + "Antradienis", + "Trečiadienis", + "Ketvirtadienis", + "Pentadienis", + "Šeštadienis", + "Sekmadienis"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("Sek", + "Pir", + "Ant", + "Tre", + "Ket", + "Pen", + "Šeš", + "Sek"); + +// full month names +Calendar._MN = new Array +("Sausis", + "Vasaris", + "Kovas", + "Balandis", + "Gegužė", + "Birželis", + "Liepa", + "Rugpjūtis", + "Rugsėjis", + "Spalis", + "Lapkritis", + "Gruodis"); + +// short month names +Calendar._SMN = new Array +("Sau", + "Vas", + "Kov", + "Bal", + "Geg", + "Bir", + "Lie", + "Rgp", + "Rgs", + "Spa", + "Lap", + "Gru"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "Apie kalendorių"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"Naujausią versiją rasite: http://www.dynarch.com/projects/calendar/\n" + +"Platinamas pagal GNU LGPL licenciją. Aplankykite http://gnu.org/licenses/lgpl.html" + +"\n\n" + +"Datos pasirinkimas:\n" + +"- Metų pasirinkimas: \xab, \xbb\n" + +"- Mėnesio pasirinkimas: " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + "\n" + +"- Nuspauskite ir laikykite pelės klavišą greitesniam pasirinkimui."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Laiko pasirinkimas:\n" + +"- Spustelkite ant valandų arba minučių - skaičius padidės vienetu.\n" + +"- Jei spausite kartu su Shift, skaičius sumažės.\n" + +"- Greitam pasirinkimui spustelkite ir pajudinkite pelę."; + +Calendar._TT["PREV_YEAR"] = "Ankstesni metai (laikykite, jei norite meniu)"; +Calendar._TT["PREV_MONTH"] = "Ankstesnis mėnuo (laikykite, jei norite meniu)"; +Calendar._TT["GO_TODAY"] = "Pasirinkti šiandieną"; +Calendar._TT["NEXT_MONTH"] = "Kitas mėnuo (laikykite, jei norite meniu)"; +Calendar._TT["NEXT_YEAR"] = "Kiti metai (laikykite, jei norite meniu)"; +Calendar._TT["SEL_DATE"] = "Pasirinkite datą"; +Calendar._TT["DRAG_TO_MOVE"] = "Tempkite"; +Calendar._TT["PART_TODAY"] = " (šiandien)"; +Calendar._TT["MON_FIRST"] = "Pirma savaitės diena - pirmadienis"; +Calendar._TT["SUN_FIRST"] = "Pirma savaitės diena - sekmadienis"; +Calendar._TT["CLOSE"] = "Uždaryti"; +Calendar._TT["TODAY"] = "Šiandien"; +Calendar._TT["TIME_PART"] = "Spustelkite arba tempkite jei norite pakeisti"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; +Calendar._TT["TT_DATE_FORMAT"] = "%A, %Y-%m-%d"; + +Calendar._TT["WK"] = "sav"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-lt.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-lt.js new file mode 100644 index 00000000..43b93d68 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-lt.js @@ -0,0 +1,114 @@ +// ** I18N + +// Calendar LT language +// Author: Martynas Majeris, +// Encoding: Windows-1257 +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("Sekmadienis", + "Pirmadienis", + "Antradienis", + "Treiadienis", + "Ketvirtadienis", + "Pentadienis", + "etadienis", + "Sekmadienis"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("Sek", + "Pir", + "Ant", + "Tre", + "Ket", + "Pen", + "e", + "Sek"); + +// full month names +Calendar._MN = new Array +("Sausis", + "Vasaris", + "Kovas", + "Balandis", + "Gegu", + "Birelis", + "Liepa", + "Rugpjtis", + "Rugsjis", + "Spalis", + "Lapkritis", + "Gruodis"); + +// short month names +Calendar._SMN = new Array +("Sau", + "Vas", + "Kov", + "Bal", + "Geg", + "Bir", + "Lie", + "Rgp", + "Rgs", + "Spa", + "Lap", + "Gru"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "Apie kalendori"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"Naujausi versij rasite: http://www.dynarch.com/projects/calendar/\n" + +"Platinamas pagal GNU LGPL licencij. Aplankykite http://gnu.org/licenses/lgpl.html" + +"\n\n" + +"Datos pasirinkimas:\n" + +"- Met pasirinkimas: \xab, \xbb\n" + +"- Mnesio pasirinkimas: " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + "\n" + +"- Nuspauskite ir laikykite pels klavi greitesniam pasirinkimui."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Laiko pasirinkimas:\n" + +"- Spustelkite ant valand arba minui - skaius padids vienetu.\n" + +"- Jei spausite kartu su Shift, skaiius sumas.\n" + +"- Greitam pasirinkimui spustelkite ir pajudinkite pel."; + +Calendar._TT["PREV_YEAR"] = "Ankstesni metai (laikykite, jei norite meniu)"; +Calendar._TT["PREV_MONTH"] = "Ankstesnis mnuo (laikykite, jei norite meniu)"; +Calendar._TT["GO_TODAY"] = "Pasirinkti iandien"; +Calendar._TT["NEXT_MONTH"] = "Kitas mnuo (laikykite, jei norite meniu)"; +Calendar._TT["NEXT_YEAR"] = "Kiti metai (laikykite, jei norite meniu)"; +Calendar._TT["SEL_DATE"] = "Pasirinkite dat"; +Calendar._TT["DRAG_TO_MOVE"] = "Tempkite"; +Calendar._TT["PART_TODAY"] = " (iandien)"; +Calendar._TT["MON_FIRST"] = "Pirma savaits diena - pirmadienis"; +Calendar._TT["SUN_FIRST"] = "Pirma savaits diena - sekmadienis"; +Calendar._TT["CLOSE"] = "Udaryti"; +Calendar._TT["TODAY"] = "iandien"; +Calendar._TT["TIME_PART"] = "Spustelkite arba tempkite jei norite pakeisti"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; +Calendar._TT["TT_DATE_FORMAT"] = "%A, %Y-%m-%d"; + +Calendar._TT["WK"] = "sav"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-lv.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-lv.js new file mode 100644 index 00000000..407699d3 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-lv.js @@ -0,0 +1,123 @@ +// ** I18N + +// Calendar LV language +// Author: Juris Valdovskis, +// Encoding: cp1257 +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("Svtdiena", + "Pirmdiena", + "Otrdiena", + "Trediena", + "Ceturdiena", + "Piektdiena", + "Sestdiena", + "Svtdiena"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("Sv", + "Pr", + "Ot", + "Tr", + "Ce", + "Pk", + "Se", + "Sv"); + +// full month names +Calendar._MN = new Array +("Janvris", + "Februris", + "Marts", + "Aprlis", + "Maijs", + "Jnijs", + "Jlijs", + "Augusts", + "Septembris", + "Oktobris", + "Novembris", + "Decembris"); + +// short month names +Calendar._SMN = new Array +("Jan", + "Feb", + "Mar", + "Apr", + "Mai", + "Jn", + "Jl", + "Aug", + "Sep", + "Okt", + "Nov", + "Dec"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "Par kalendru"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"For latest version visit: http://www.dynarch.com/projects/calendar/\n" + +"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." + +"\n\n" + +"Datuma izvle:\n" + +"- Izmanto \xab, \xbb pogas, lai izvltos gadu\n" + +"- Izmanto " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + "pogas, lai izvltos mnesi\n" + +"- Turi nospiestu peles pogu uz jebkuru no augstk mintajm pogm, lai patrintu izvli."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Laika izvle:\n" + +"- Uzklikini uz jebkuru no laika dam, lai palielintu to\n" + +"- vai Shift-klikis, lai samazintu to\n" + +"- vai noklikini un velc uz attiecgo virzienu lai maintu trk."; + +Calendar._TT["PREV_YEAR"] = "Iepr. gads (turi izvlnei)"; +Calendar._TT["PREV_MONTH"] = "Iepr. mnesis (turi izvlnei)"; +Calendar._TT["GO_TODAY"] = "odien"; +Calendar._TT["NEXT_MONTH"] = "Nkoais mnesis (turi izvlnei)"; +Calendar._TT["NEXT_YEAR"] = "Nkoais gads (turi izvlnei)"; +Calendar._TT["SEL_DATE"] = "Izvlies datumu"; +Calendar._TT["DRAG_TO_MOVE"] = "Velc, lai prvietotu"; +Calendar._TT["PART_TODAY"] = " (odien)"; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "Attlot %s k pirmo"; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "1,7"; + +Calendar._TT["CLOSE"] = "Aizvrt"; +Calendar._TT["TODAY"] = "odien"; +Calendar._TT["TIME_PART"] = "(Shift-)Klikis vai prvieto, lai maintu"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y"; +Calendar._TT["TT_DATE_FORMAT"] = "%a, %e %b"; + +Calendar._TT["WK"] = "wk"; +Calendar._TT["TIME"] = "Laiks:"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-nl.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-nl.js new file mode 100644 index 00000000..a1dea94b --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-nl.js @@ -0,0 +1,73 @@ +// ** I18N +Calendar._DN = new Array +("Zondag", + "Maandag", + "Dinsdag", + "Woensdag", + "Donderdag", + "Vrijdag", + "Zaterdag", + "Zondag"); + +Calendar._SDN_len = 2; + +Calendar._MN = new Array +("Januari", + "Februari", + "Maart", + "April", + "Mei", + "Juni", + "Juli", + "Augustus", + "September", + "Oktober", + "November", + "December"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "Info"; + +Calendar._TT["ABOUT"] = +"DHTML Datum/Tijd Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + +"Ga voor de meest recente versie naar: http://www.dynarch.com/projects/calendar/\n" + +"Verspreid onder de GNU LGPL. Zie http://gnu.org/licenses/lgpl.html voor details." + +"\n\n" + +"Datum selectie:\n" + +"- Gebruik de \xab \xbb knoppen om een jaar te selecteren\n" + +"- Gebruik de " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " knoppen om een maand te selecteren\n" + +"- Houd de muis ingedrukt op de genoemde knoppen voor een snellere selectie."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Tijd selectie:\n" + +"- Klik op een willekeurig onderdeel van het tijd gedeelte om het te verhogen\n" + +"- of Shift-klik om het te verlagen\n" + +"- of klik en sleep voor een snellere selectie."; + +//Calendar._TT["TOGGLE"] = "Selecteer de eerste week-dag"; +Calendar._TT["PREV_YEAR"] = "Vorig jaar (ingedrukt voor menu)"; +Calendar._TT["PREV_MONTH"] = "Vorige maand (ingedrukt voor menu)"; +Calendar._TT["GO_TODAY"] = "Ga naar Vandaag"; +Calendar._TT["NEXT_MONTH"] = "Volgende maand (ingedrukt voor menu)"; +Calendar._TT["NEXT_YEAR"] = "Volgend jaar (ingedrukt voor menu)"; +Calendar._TT["SEL_DATE"] = "Selecteer datum"; +Calendar._TT["DRAG_TO_MOVE"] = "Klik en sleep om te verplaatsen"; +Calendar._TT["PART_TODAY"] = " (vandaag)"; +//Calendar._TT["MON_FIRST"] = "Toon Maandag eerst"; +//Calendar._TT["SUN_FIRST"] = "Toon Zondag eerst"; + +Calendar._TT["DAY_FIRST"] = "Toon %s eerst"; + +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = "Sluiten"; +Calendar._TT["TODAY"] = "(vandaag)"; +Calendar._TT["TIME_PART"] = "(Shift-)Klik of sleep om de waarde te veranderen"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y"; +Calendar._TT["TT_DATE_FORMAT"] = "%a, %e %b %Y"; + +Calendar._TT["WK"] = "wk"; +Calendar._TT["TIME"] = "Tijd:"; \ No newline at end of file diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-no.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-no.js new file mode 100644 index 00000000..d9297d17 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-no.js @@ -0,0 +1,114 @@ +// ** I18N + +// Calendar NO language +// Author: Daniel Holmen, +// Encoding: UTF-8 +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("Søndag", + "Mandag", + "Tirsdag", + "Onsdag", + "Torsdag", + "Fredag", + "Lørdag", + "Søndag"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("Søn", + "Man", + "Tir", + "Ons", + "Tor", + "Fre", + "Lør", + "Søn"); + +// full month names +Calendar._MN = new Array +("Januar", + "Februar", + "Mars", + "April", + "Mai", + "Juni", + "Juli", + "August", + "September", + "Oktober", + "November", + "Desember"); + +// short month names +Calendar._SMN = new Array +("Jan", + "Feb", + "Mar", + "Apr", + "Mai", + "Jun", + "Jul", + "Aug", + "Sep", + "Okt", + "Nov", + "Des"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "Om kalenderen"; + +Calendar._TT["ABOUT"] = +"DHTML Dato-/Tidsvelger\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"For nyeste versjon, gå til: http://www.dynarch.com/projects/calendar/\n" + +"Distribuert under GNU LGPL. Se http://gnu.org/licenses/lgpl.html for detaljer." + +"\n\n" + +"Datovalg:\n" + +"- Bruk knappene \xab og \xbb for å velge år\n" + +"- Bruk knappene " + String.fromCharCode(0x2039) + " og " + String.fromCharCode(0x203a) + " for å velge måned\n" + +"- Hold inne musknappen eller knappene over for raskere valg."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Tidsvalg:\n" + +"- Klikk på en av tidsdelene for å øke den\n" + +"- eller Shift-klikk for å senke verdien\n" + +"- eller klikk-og-dra for raskere valg.."; + +Calendar._TT["PREV_YEAR"] = "Forrige. år (hold for meny)"; +Calendar._TT["PREV_MONTH"] = "Forrige. måned (hold for meny)"; +Calendar._TT["GO_TODAY"] = "Gå til idag"; +Calendar._TT["NEXT_MONTH"] = "Neste måned (hold for meny)"; +Calendar._TT["NEXT_YEAR"] = "Neste år (hold for meny)"; +Calendar._TT["SEL_DATE"] = "Velg dato"; +Calendar._TT["DRAG_TO_MOVE"] = "Dra for å flytte"; +Calendar._TT["PART_TODAY"] = " (idag)"; +Calendar._TT["MON_FIRST"] = "Vis mandag først"; +Calendar._TT["SUN_FIRST"] = "Vis søndag først"; +Calendar._TT["CLOSE"] = "Lukk"; +Calendar._TT["TODAY"] = "Idag"; +Calendar._TT["TIME_PART"] = "(Shift-)Klikk eller dra for å endre verdi"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%d.%m.%Y"; +Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e"; + +Calendar._TT["WK"] = "uke"; \ No newline at end of file diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-pl-utf8.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-pl-utf8.js new file mode 100644 index 00000000..6b8ca67a --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-pl-utf8.js @@ -0,0 +1,93 @@ +// ** I18N + +// Calendar PL language +// Author: Dariusz Pietrzak, +// Author: Janusz Piwowarski, +// Encoding: utf-8 +// Distributed under the same terms as the calendar itself. + +Calendar._DN = new Array +("Niedziela", + "Poniedziałek", + "Wtorek", + "Środa", + "Czwartek", + "Piątek", + "Sobota", + "Niedziela"); +Calendar._SDN = new Array +("Nie", + "Pn", + "Wt", + "Śr", + "Cz", + "Pt", + "So", + "Nie"); +Calendar._MN = new Array +("Styczeń", + "Luty", + "Marzec", + "Kwiecień", + "Maj", + "Czerwiec", + "Lipiec", + "Sierpień", + "Wrzesień", + "Październik", + "Listopad", + "Grudzień"); +Calendar._SMN = new Array +("Sty", + "Lut", + "Mar", + "Kwi", + "Maj", + "Cze", + "Lip", + "Sie", + "Wrz", + "Paź", + "Lis", + "Gru"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "O kalendarzu"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"Aby pobrać najnowszą wersję, odwiedź: http://www.dynarch.com/projects/calendar/\n" + +"Dostępny na licencji GNU LGPL. Zobacz szczegóły na http://gnu.org/licenses/lgpl.html." + +"\n\n" + +"Wybór daty:\n" + +"- Użyj przycisków \xab, \xbb by wybrać rok\n" + +"- Użyj przycisków " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " by wybrać miesiąc\n" + +"- Przytrzymaj klawisz myszy nad jednym z powyższych przycisków dla szybszego wyboru."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Wybór czasu:\n" + +"- Kliknij na jednym z pól czasu by zwiększyć jego wartość\n" + +"- lub kliknij trzymając Shift by zmiejszyć jego wartość\n" + +"- lub kliknij i przeciągnij dla szybszego wyboru."; + +//Calendar._TT["TOGGLE"] = "Zmień pierwszy dzień tygodnia"; +Calendar._TT["PREV_YEAR"] = "Poprzedni rok (przytrzymaj dla menu)"; +Calendar._TT["PREV_MONTH"] = "Poprzedni miesiąc (przytrzymaj dla menu)"; +Calendar._TT["GO_TODAY"] = "Idź do dzisiaj"; +Calendar._TT["NEXT_MONTH"] = "Następny miesiąc (przytrzymaj dla menu)"; +Calendar._TT["NEXT_YEAR"] = "Następny rok (przytrzymaj dla menu)"; +Calendar._TT["SEL_DATE"] = "Wybierz datę"; +Calendar._TT["DRAG_TO_MOVE"] = "Przeciągnij by przesunąć"; +Calendar._TT["PART_TODAY"] = " (dzisiaj)"; +Calendar._TT["MON_FIRST"] = "Wyświetl poniedziałek jako pierwszy"; +Calendar._TT["SUN_FIRST"] = "Wyświetl niedzielę jako pierwszą"; +Calendar._TT["CLOSE"] = "Zamknij"; +Calendar._TT["TODAY"] = "Dzisiaj"; +Calendar._TT["TIME_PART"] = "(Shift-)Kliknij lub przeciągnij by zmienić wartość"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; +Calendar._TT["TT_DATE_FORMAT"] = "%e %B, %A"; + +Calendar._TT["WK"] = "ty"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-pl.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-pl.js new file mode 100644 index 00000000..76e0551a --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-pl.js @@ -0,0 +1,56 @@ +// ** I18N +// Calendar PL language +// Author: Artur Filipiak, +// January, 2004 +// Encoding: UTF-8 +Calendar._DN = new Array +("Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota", "Niedziela"); + +Calendar._SDN = new Array +("N", "Pn", "Wt", "Śr", "Cz", "Pt", "So", "N"); + +Calendar._MN = new Array +("Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"); + +Calendar._SMN = new Array +("Sty", "Lut", "Mar", "Kwi", "Maj", "Cze", "Lip", "Sie", "Wrz", "Paź", "Lis", "Gru"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "O kalendarzu"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"For latest version visit: http://www.dynarch.com/projects/calendar/\n" + +"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." + +"\n\n" + +"Wybór daty:\n" + +"- aby wybrać rok użyj przycisków \xab, \xbb\n" + +"- aby wybrać miesiąc użyj przycisków " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + "\n" + +"- aby przyspieszyć wybór przytrzymaj wciśnięty przycisk myszy nad ww. przyciskami."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Wybór czasu:\n" + +"- aby zwiększyć wartość kliknij na dowolnym elemencie selekcji czasu\n" + +"- aby zmniejszyć wartość użyj dodatkowo klawisza Shift\n" + +"- możesz również poruszać myszkę w lewo i prawo wraz z wciśniętym lewym klawiszem."; + +Calendar._TT["PREV_YEAR"] = "Poprz. rok (przytrzymaj dla menu)"; +Calendar._TT["PREV_MONTH"] = "Poprz. miesiąc (przytrzymaj dla menu)"; +Calendar._TT["GO_TODAY"] = "Pokaż dziś"; +Calendar._TT["NEXT_MONTH"] = "Nast. miesiąc (przytrzymaj dla menu)"; +Calendar._TT["NEXT_YEAR"] = "Nast. rok (przytrzymaj dla menu)"; +Calendar._TT["SEL_DATE"] = "Wybierz datę"; +Calendar._TT["DRAG_TO_MOVE"] = "Przesuń okienko"; +Calendar._TT["PART_TODAY"] = " (dziś)"; +Calendar._TT["MON_FIRST"] = "Pokaż Poniedziałek jako pierwszy"; +Calendar._TT["SUN_FIRST"] = "Pokaż Niedzielę jako pierwszą"; +Calendar._TT["CLOSE"] = "Zamknij"; +Calendar._TT["TODAY"] = "Dziś"; +Calendar._TT["TIME_PART"] = "(Shift-)klik | drag, aby zmienić wartość"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%Y.%m.%d"; +Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e"; + +Calendar._TT["WK"] = "wk"; \ No newline at end of file diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-pt.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-pt.js new file mode 100644 index 00000000..deee8a19 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-pt.js @@ -0,0 +1,123 @@ +// ** I18N + +// Calendar pt_BR language +// Author: Adalberto Machado, +// Encoding: any +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("Domingo", + "Segunda", + "Terca", + "Quarta", + "Quinta", + "Sexta", + "Sabado", + "Domingo"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("Dom", + "Seg", + "Ter", + "Qua", + "Qui", + "Sex", + "Sab", + "Dom"); + +// full month names +Calendar._MN = new Array +("Janeiro", + "Fevereiro", + "Marco", + "Abril", + "Maio", + "Junho", + "Julho", + "Agosto", + "Setembro", + "Outubro", + "Novembro", + "Dezembro"); + +// short month names +Calendar._SMN = new Array +("Jan", + "Fev", + "Mar", + "Abr", + "Mai", + "Jun", + "Jul", + "Ago", + "Set", + "Out", + "Nov", + "Dez"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "Sobre o calendario"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"Ultima versao visite: http://www.dynarch.com/projects/calendar/\n" + +"Distribuido sobre GNU LGPL. Veja http://gnu.org/licenses/lgpl.html para detalhes." + +"\n\n" + +"Selecao de data:\n" + +"- Use os botoes \xab, \xbb para selecionar o ano\n" + +"- Use os botoes " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para selecionar o mes\n" + +"- Segure o botao do mouse em qualquer um desses botoes para selecao rapida."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Selecao de hora:\n" + +"- Clique em qualquer parte da hora para incrementar\n" + +"- ou Shift-click para decrementar\n" + +"- ou clique e segure para selecao rapida."; + +Calendar._TT["PREV_YEAR"] = "Ant. ano (segure para menu)"; +Calendar._TT["PREV_MONTH"] = "Ant. mes (segure para menu)"; +Calendar._TT["GO_TODAY"] = "Hoje"; +Calendar._TT["NEXT_MONTH"] = "Prox. mes (segure para menu)"; +Calendar._TT["NEXT_YEAR"] = "Prox. ano (segure para menu)"; +Calendar._TT["SEL_DATE"] = "Selecione a data"; +Calendar._TT["DRAG_TO_MOVE"] = "Arraste para mover"; +Calendar._TT["PART_TODAY"] = " (hoje)"; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "Mostre %s primeiro"; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = "Fechar"; +Calendar._TT["TODAY"] = "Hoje"; +Calendar._TT["TIME_PART"] = "(Shift-)Click ou arraste para mudar valor"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%d/%m/%Y"; +Calendar._TT["TT_DATE_FORMAT"] = "%a, %e %b"; + +Calendar._TT["WK"] = "sm"; +Calendar._TT["TIME"] = "Hora:"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-ro.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-ro.js new file mode 100644 index 00000000..116e358b --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-ro.js @@ -0,0 +1,66 @@ +// ** I18N +Calendar._DN = new Array +("Duminică", + "Luni", + "Marţi", + "Miercuri", + "Joi", + "Vineri", + "Sâmbătă", + "Duminică"); +Calendar._SDN_len = 2; +Calendar._MN = new Array +("Ianuarie", + "Februarie", + "Martie", + "Aprilie", + "Mai", + "Iunie", + "Iulie", + "August", + "Septembrie", + "Octombrie", + "Noiembrie", + "Decembrie"); + +// tooltips +Calendar._TT = {}; + +Calendar._TT["INFO"] = "Despre calendar"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"Pentru ultima versiune vizitaţi: http://www.dynarch.com/projects/calendar/\n" + +"Distribuit sub GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." + +"\n\n" + +"Selecţia datei:\n" + +"- Folosiţi butoanele \xab, \xbb pentru a selecta anul\n" + +"- Folosiţi butoanele " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " pentru a selecta luna\n" + +"- Tineţi butonul mouse-ului apăsat pentru selecţie mai rapidă."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Selecţia orei:\n" + +"- Click pe ora sau minut pentru a mări valoarea cu 1\n" + +"- Sau Shift-Click pentru a micşora valoarea cu 1\n" + +"- Sau Click şi drag pentru a selecta mai repede."; + +Calendar._TT["PREV_YEAR"] = "Anul precedent (lung pt menu)"; +Calendar._TT["PREV_MONTH"] = "Luna precedentă (lung pt menu)"; +Calendar._TT["GO_TODAY"] = "Data de azi"; +Calendar._TT["NEXT_MONTH"] = "Luna următoare (lung pt menu)"; +Calendar._TT["NEXT_YEAR"] = "Anul următor (lung pt menu)"; +Calendar._TT["SEL_DATE"] = "Selectează data"; +Calendar._TT["DRAG_TO_MOVE"] = "Trage pentru a mişca"; +Calendar._TT["PART_TODAY"] = " (astăzi)"; +Calendar._TT["DAY_FIRST"] = "Afişează %s prima zi"; +Calendar._TT["WEEKEND"] = "0,6"; +Calendar._TT["CLOSE"] = "Închide"; +Calendar._TT["TODAY"] = "Astăzi"; +Calendar._TT["TIME_PART"] = "(Shift-)Click sau drag pentru a selecta"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y"; +Calendar._TT["TT_DATE_FORMAT"] = "%A, %d %B"; + +Calendar._TT["WK"] = "spt"; +Calendar._TT["TIME"] = "Ora:"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-ru.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-ru.js new file mode 100644 index 00000000..9f75a6a4 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-ru.js @@ -0,0 +1,123 @@ +// ** I18N + +// Calendar RU language +// Translation: Sly Golovanov, http://golovanov.net, +// Encoding: any +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("воскресенье", + "понедельник", + "вторник", + "среда", + "четверг", + "пятница", + "суббота", + "воскресенье"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("вск", + "пон", + "втр", + "срд", + "чет", + "пят", + "суб", + "вск"); + +// full month names +Calendar._MN = new Array +("январь", + "февраль", + "март", + "апрель", + "май", + "июнь", + "июль", + "август", + "сентябрь", + "октябрь", + "ноябрь", + "декабрь"); + +// short month names +Calendar._SMN = new Array +("янв", + "фев", + "мар", + "апр", + "май", + "июн", + "июл", + "авг", + "сен", + "окт", + "ноя", + "дек"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "О календаре..."; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"For latest version visit: http://www.dynarch.com/projects/calendar/\n" + +"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." + +"\n\n" + +"Как выбрать дату:\n" + +"- При помощи кнопок \xab, \xbb можно выбрать год\n" + +"- При помощи кнопок " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " можно выбрать месяц\n" + +"- Подержите эти кнопки нажатыми, чтобы появилось меню быстрого выбора."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Как выбрать время:\n" + +"- При клике на часах или минутах они увеличиваются\n" + +"- при клике с нажатой клавишей Shift они уменьшаются\n" + +"- если нажать и двигать мышкой влево/вправо, они будут меняться быстрее."; + +Calendar._TT["PREV_YEAR"] = "На год назад (удерживать для меню)"; +Calendar._TT["PREV_MONTH"] = "На месяц назад (удерживать для меню)"; +Calendar._TT["GO_TODAY"] = "Сегодня"; +Calendar._TT["NEXT_MONTH"] = "На месяц вперед (удерживать для меню)"; +Calendar._TT["NEXT_YEAR"] = "На год вперед (удерживать для меню)"; +Calendar._TT["SEL_DATE"] = "Выберите дату"; +Calendar._TT["DRAG_TO_MOVE"] = "Перетаскивайте мышкой"; +Calendar._TT["PART_TODAY"] = " (сегодня)"; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "Первый день недели будет %s"; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = "Закрыть"; +Calendar._TT["TODAY"] = "Сегодня"; +Calendar._TT["TIME_PART"] = "(Shift-)клик или нажать и двигать"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; +Calendar._TT["TT_DATE_FORMAT"] = "%e %b, %a"; + +Calendar._TT["WK"] = "нед"; +Calendar._TT["TIME"] = "Время:"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-ru_win_.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-ru_win_.js new file mode 100644 index 00000000..de455afa --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-ru_win_.js @@ -0,0 +1,123 @@ +// ** I18N + +// Calendar RU language +// Translation: Sly Golovanov, http://golovanov.net, +// Encoding: any +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("", + "", + "", + "", + "", + "", + "", + ""); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("", + "", + "", + "", + "", + "", + "", + ""); + +// full month names +Calendar._MN = new Array +("", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + ""); + +// short month names +Calendar._SMN = new Array +("", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + ""); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = " ..."; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"For latest version visit: http://www.dynarch.com/projects/calendar/\n" + +"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." + +"\n\n" + +" :\n" + +"- \xab, \xbb \n" + +"- " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " \n" + +"- , ."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +" :\n" + +"- \n" + +"- Shift \n" + +"- /, ."; + +Calendar._TT["PREV_YEAR"] = " ( )"; +Calendar._TT["PREV_MONTH"] = " ( )"; +Calendar._TT["GO_TODAY"] = ""; +Calendar._TT["NEXT_MONTH"] = " ( )"; +Calendar._TT["NEXT_YEAR"] = " ( )"; +Calendar._TT["SEL_DATE"] = " "; +Calendar._TT["DRAG_TO_MOVE"] = " "; +Calendar._TT["PART_TODAY"] = " ()"; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = " %s"; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = ""; +Calendar._TT["TODAY"] = ""; +Calendar._TT["TIME_PART"] = "(Shift-) "; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; +Calendar._TT["TT_DATE_FORMAT"] = "%e %b, %a"; + +Calendar._TT["WK"] = ""; +Calendar._TT["TIME"] = ":"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-si.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-si.js new file mode 100644 index 00000000..100c522e --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-si.js @@ -0,0 +1,94 @@ +/* Slovenian language file for the DHTML Calendar version 0.9.2 +* Author David Milost , January 2004. +* Feel free to use this script under the terms of the GNU Lesser General +* Public License, as long as you do not remove or alter this notice. +*/ + // full day names +Calendar._DN = new Array +("Nedelja", + "Ponedeljek", + "Torek", + "Sreda", + "Četrtek", + "Petek", + "Sobota", + "Nedelja"); + // short day names + Calendar._SDN = new Array +("Ned", + "Pon", + "Tor", + "Sre", + "Čet", + "Pet", + "Sob", + "Ned"); +// short month names +Calendar._SMN = new Array +("Jan", + "Feb", + "Mar", + "Apr", + "Maj", + "Jun", + "Jul", + "Avg", + "Sep", + "Okt", + "Nov", + "Dec"); + // full month names +Calendar._MN = new Array +("Januar", + "Februar", + "Marec", + "April", + "Maj", + "Junij", + "Julij", + "Avgust", + "September", + "Oktober", + "November", + "December"); + +// tooltips +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "O koledarju"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"Za zadnjo verzijo pojdine na naslov: http://www.dynarch.com/projects/calendar/\n" + +"Distribuirano pod GNU LGPL. Poglejte http://gnu.org/licenses/lgpl.html za podrobnosti." + +"\n\n" + +"Izbor datuma:\n" + +"- Uporabite \xab, \xbb gumbe za izbor leta\n" + +"- Uporabite " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " gumbe za izbor meseca\n" + +"- Zadržite klik na kateremkoli od zgornjih gumbov za hiter izbor."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Izbor ćasa:\n" + +"- Kliknite na katerikoli del ćasa za poveć. le-tega\n" + +"- ali Shift-click za zmanj. le-tega\n" + +"- ali kliknite in povlecite za hiter izbor."; + +Calendar._TT["TOGGLE"] = "Spremeni dan s katerim se prićne teden"; +Calendar._TT["PREV_YEAR"] = "Predhodnje leto (dolg klik za meni)"; +Calendar._TT["PREV_MONTH"] = "Predhodnji mesec (dolg klik za meni)"; +Calendar._TT["GO_TODAY"] = "Pojdi na tekoći dan"; +Calendar._TT["NEXT_MONTH"] = "Naslednji mesec (dolg klik za meni)"; +Calendar._TT["NEXT_YEAR"] = "Naslednje leto (dolg klik za meni)"; +Calendar._TT["SEL_DATE"] = "Izberite datum"; +Calendar._TT["DRAG_TO_MOVE"] = "Pritisni in povleci za spremembo pozicije"; +Calendar._TT["PART_TODAY"] = " (danes)"; +Calendar._TT["MON_FIRST"] = "Prikaži ponedeljek kot prvi dan"; +Calendar._TT["SUN_FIRST"] = "Prikaži nedeljo kot prvi dan"; +Calendar._TT["CLOSE"] = "Zapri"; +Calendar._TT["TODAY"] = "Danes"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; +Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e"; + +Calendar._TT["WK"] = "Ted"; \ No newline at end of file diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-sk.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-sk.js new file mode 100644 index 00000000..4fe6a3c8 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-sk.js @@ -0,0 +1,99 @@ +// ** I18N + +// Calendar SK language +// Author: Peter Valach (pvalach@gmx.net) +// Encoding: utf-8 +// Last update: 2003/10/29 +// Distributed under the same terms as the calendar itself. + +// full day names +Calendar._DN = new Array +("NedeÄľa", + "Pondelok", + "Utorok", + "Streda", + "Ĺ tvrtok", + "Piatok", + "Sobota", + "NedeÄľa"); + +// short day names +Calendar._SDN = new Array +("Ned", + "Pon", + "Uto", + "Str", + "Ĺ tv", + "Pia", + "Sob", + "Ned"); + +// full month names +Calendar._MN = new Array +("Január", + "Február", + "Marec", + "AprĂ­l", + "Máj", + "JĂşn", + "JĂşl", + "August", + "September", + "OktĂłber", + "November", + "December"); + +// short month names +Calendar._SMN = new Array +("Jan", + "Feb", + "Mar", + "Apr", + "Máj", + "JĂşn", + "JĂşl", + "Aug", + "Sep", + "Okt", + "Nov", + "Dec"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "O kalendári"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + +"PoslednĂş verziu nájdete na: http://www.dynarch.com/projects/calendar/\n" + +"DistribuovanĂ© pod GNU LGPL. ViÄŹ http://gnu.org/licenses/lgpl.html pre detaily." + +"\n\n" + +"VĂ˝ber dátumu:\n" + +"- PouĹľite tlaÄŤidlá \xab, \xbb pre vĂ˝ber roku\n" + +"- PouĹľite tlaÄŤidlá " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " pre vĂ˝ber mesiaca\n" + +"- Ak ktorĂ©koÄľvek z tĂ˝chto tlaÄŤidiel podržíte dlhšie, zobrazĂ­ sa rĂ˝chly vĂ˝ber."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"VĂ˝ber ÄŤasu:\n" + +"- Kliknutie na niektorĂş poloĹľku ÄŤasu ju zvýši\n" + +"- Shift-klik ju znĂ­Ĺľi\n" + +"- Ak podržíte tlaÄŤĂ­tko stlaÄŤenĂ©, posĂşvanĂ­m menĂ­te hodnotu."; + +Calendar._TT["PREV_YEAR"] = "PredošlĂ˝ rok (podrĹľte pre menu)"; +Calendar._TT["PREV_MONTH"] = "PredošlĂ˝ mesiac (podrĹľte pre menu)"; +Calendar._TT["GO_TODAY"] = "PrejsĹĄ na dnešok"; +Calendar._TT["NEXT_MONTH"] = "Nasl. mesiac (podrĹľte pre menu)"; +Calendar._TT["NEXT_YEAR"] = "Nasl. rok (podrĹľte pre menu)"; +Calendar._TT["SEL_DATE"] = "ZvoÄľte dátum"; +Calendar._TT["DRAG_TO_MOVE"] = "PodrĹľanĂ­m tlaÄŤĂ­tka zmenĂ­te polohu"; +Calendar._TT["PART_TODAY"] = " (dnes)"; +Calendar._TT["MON_FIRST"] = "ZobraziĹĄ pondelok ako prvĂ˝"; +Calendar._TT["SUN_FIRST"] = "ZobraziĹĄ nedeÄľu ako prvĂş"; +Calendar._TT["CLOSE"] = "ZavrieĹĄ"; +Calendar._TT["TODAY"] = "Dnes"; +Calendar._TT["TIME_PART"] = "(Shift-)klik/ĹĄahanie zmenĂ­ hodnotu"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "$d. %m. %Y"; +Calendar._TT["TT_DATE_FORMAT"] = "%a, %e. %b"; + +Calendar._TT["WK"] = "týž"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-sp.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-sp.js new file mode 100644 index 00000000..239d1b3b --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-sp.js @@ -0,0 +1,110 @@ +// ** I18N + +// Calendar SP language +// Author: Rafael Velasco +// Encoding: any +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("Domingo", + "Lunes", + "Martes", + "Miercoles", + "Jueves", + "Viernes", + "Sabado", + "Domingo"); + +Calendar._SDN = new Array +("Dom", + "Lun", + "Mar", + "Mie", + "Jue", + "Vie", + "Sab", + "Dom"); + +// full month names +Calendar._MN = new Array +("Enero", + "Febrero", + "Marzo", + "Abril", + "Mayo", + "Junio", + "Julio", + "Agosto", + "Septiembre", + "Octubre", + "Noviembre", + "Diciembre"); + +// short month names +Calendar._SMN = new Array +("Ene", + "Feb", + "Mar", + "Abr", + "May", + "Jun", + "Jul", + "Ago", + "Sep", + "Oct", + "Nov", + "Dic"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "Informacin del Calendario"; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"Nuevas versiones en: http://www.dynarch.com/projects/calendar/\n" + +"Distribuida bajo licencia GNU LGPL. Para detalles vea http://gnu.org/licenses/lgpl.html ." + +"\n\n" + +"Seleccin de Fechas:\n" + +"- Use \xab, \xbb para seleccionar el ao\n" + +"- Use " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para seleccionar el mes\n" + +"- Mantenga presionado el botn del ratn en cualquiera de las opciones superiores para un acceso rapido ."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Seleccin del Reloj:\n" + +"- Seleccione la hora para cambiar el reloj\n" + +"- o presione Shift-click para disminuirlo\n" + +"- o presione click y arrastre del ratn para una seleccin rapida."; + +Calendar._TT["PREV_YEAR"] = "Ao anterior (Presione para menu)"; +Calendar._TT["PREV_MONTH"] = "Mes Anterior (Presione para menu)"; +Calendar._TT["GO_TODAY"] = "Ir a Hoy"; +Calendar._TT["NEXT_MONTH"] = "Mes Siguiente (Presione para menu)"; +Calendar._TT["NEXT_YEAR"] = "Ao Siguiente (Presione para menu)"; +Calendar._TT["SEL_DATE"] = "Seleccione fecha"; +Calendar._TT["DRAG_TO_MOVE"] = "Arrastre y mueva"; +Calendar._TT["PART_TODAY"] = " (Hoy)"; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "Mostrar %s primero"; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = "Cerrar"; +Calendar._TT["TODAY"] = "Hoy"; +Calendar._TT["TIME_PART"] = "(Shift-)Click o arrastra para cambar el valor"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%dd-%mm-%yy"; +Calendar._TT["TT_DATE_FORMAT"] = "%A, %e de %B de %Y"; + +Calendar._TT["WK"] = "Sm"; +Calendar._TT["TIME"] = "Hora:"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-sv.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-sv.js new file mode 100644 index 00000000..db1f4b84 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-sv.js @@ -0,0 +1,93 @@ +// ** I18N + +// Calendar SV language (Swedish, svenska) +// Author: Mihai Bazon, +// Translation team: +// Translator: Leonard Norrgrd +// Last translator: Leonard Norrgrd +// Encoding: iso-latin-1 +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("sndag", + "mndag", + "tisdag", + "onsdag", + "torsdag", + "fredag", + "lrdag", + "sndag"); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. +Calendar._SDN_len = 2; +Calendar._SMN_len = 3; + +// full month names +Calendar._MN = new Array +("januari", + "februari", + "mars", + "april", + "maj", + "juni", + "juli", + "augusti", + "september", + "oktober", + "november", + "december"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "Om kalendern"; + +Calendar._TT["ABOUT"] = +"DHTML Datum/tid-vljare\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"Fr senaste version g till: http://www.dynarch.com/projects/calendar/\n" + +"Distribueras under GNU LGPL. Se http://gnu.org/licenses/lgpl.html fr detaljer." + +"\n\n" + +"Val av datum:\n" + +"- Anvnd knapparna \xab, \xbb fr att vlja r\n" + +"- Anvnd knapparna " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " fr att vlja mnad\n" + +"- Hll musknappen nedtryckt p ngon av ovanstende knappar fr snabbare val."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"Val av tid:\n" + +"- Klicka p en del av tiden fr att ka den delen\n" + +"- eller skift-klicka fr att minska den\n" + +"- eller klicka och drag fr snabbare val."; + +Calendar._TT["PREV_YEAR"] = "Fregende r (hll fr menu)"; +Calendar._TT["PREV_MONTH"] = "Fregende mnad (hll fr menu)"; +Calendar._TT["GO_TODAY"] = "G till dagens datum"; +Calendar._TT["NEXT_MONTH"] = "Fljande mnad (hll fr menu)"; +Calendar._TT["NEXT_YEAR"] = "Fljande r (hll fr menu)"; +Calendar._TT["SEL_DATE"] = "Vlj datum"; +Calendar._TT["DRAG_TO_MOVE"] = "Drag fr att flytta"; +Calendar._TT["PART_TODAY"] = " (idag)"; +Calendar._TT["MON_FIRST"] = "Visa mndag frst"; +Calendar._TT["SUN_FIRST"] = "Visa sndag frst"; +Calendar._TT["CLOSE"] = "Stng"; +Calendar._TT["TODAY"] = "Idag"; +Calendar._TT["TIME_PART"] = "(Skift-)klicka eller drag fr att ndra tid"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; +Calendar._TT["TT_DATE_FORMAT"] = "%A %d %b %Y"; + +Calendar._TT["WK"] = "vecka"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-tr.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-tr.js new file mode 100644 index 00000000..f2c906c4 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-tr.js @@ -0,0 +1,58 @@ +////////////////////////////////////////////////////////////////////////////////////////////// +// Turkish Translation by Nuri AKMAN +// Location: Ankara/TURKEY +// e-mail : nuriakman@hotmail.com +// Date : April, 9 2003 +// +// Note: if Turkish Characters does not shown on you screen +// please include falowing line your html code: +// +// +// +////////////////////////////////////////////////////////////////////////////////////////////// + +// ** I18N +Calendar._DN = new Array +("Pazar", + "Pazartesi", + "Sal", + "aramba", + "Perembe", + "Cuma", + "Cumartesi", + "Pazar"); +Calendar._MN = new Array +("Ocak", + "ubat", + "Mart", + "Nisan", + "Mays", + "Haziran", + "Temmuz", + "Austos", + "Eyll", + "Ekim", + "Kasm", + "Aralk"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["TOGGLE"] = "Haftann ilk gnn kaydr"; +Calendar._TT["PREV_YEAR"] = "nceki Yl (Men iin basl tutunuz)"; +Calendar._TT["PREV_MONTH"] = "nceki Ay (Men iin basl tutunuz)"; +Calendar._TT["GO_TODAY"] = "Bugn'e git"; +Calendar._TT["NEXT_MONTH"] = "Sonraki Ay (Men iin basl tutunuz)"; +Calendar._TT["NEXT_YEAR"] = "Sonraki Yl (Men iin basl tutunuz)"; +Calendar._TT["SEL_DATE"] = "Tarih seiniz"; +Calendar._TT["DRAG_TO_MOVE"] = "Tamak iin srkleyiniz"; +Calendar._TT["PART_TODAY"] = " (bugn)"; +Calendar._TT["MON_FIRST"] = "Takvim Pazartesi gnnden balasn"; +Calendar._TT["SUN_FIRST"] = "Takvim Pazar gnnden balasn"; +Calendar._TT["CLOSE"] = "Kapat"; +Calendar._TT["TODAY"] = "Bugn"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y"; +Calendar._TT["TT_DATE_FORMAT"] = "d MM y, DD"; + +Calendar._TT["WK"] = "Hafta"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-zh.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-zh.js new file mode 100644 index 00000000..4a0feb6b --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/calendar-zh.js @@ -0,0 +1,119 @@ +// ** I18N + +// Calendar ZH language +// Author: muziq, +// Encoding: GB2312 or GBK +// Distributed under the same terms as the calendar itself. + +// full day names +Calendar._DN = new Array +("", + "һ", + "ڶ", + "", + "", + "", + "", + ""); + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("", + "һ", + "", + "", + "", + "", + "", + ""); + +// full month names +Calendar._MN = new Array +("һ", + "", + "", + "", + "", + "", + "", + "", + "", + "ʮ", + "ʮһ", + "ʮ"); + +// short month names +Calendar._SMN = new Array +("һ", + "", + "", + "", + "", + "", + "", + "", + "", + "ʮ", + "ʮһ", + "ʮ"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = ""; + +Calendar._TT["ABOUT"] = +"DHTML Date/Time Selector\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"For latest version visit: http://www.dynarch.com/projects/calendar/\n" + +"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." + +"\n\n" + +"ѡ:\n" + +"- \xab, \xbb ťѡ\n" + +"- " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " ťѡ·\n" + +"- ϰťɴӲ˵пѡݻ·"; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"ѡʱ:\n" + +"- Сʱӿʹֵһ\n" + +"- סShiftСʱӿʹֵһ\n" + +"- ϶ɽпѡ"; + +Calendar._TT["PREV_YEAR"] = "һ (ס˵)"; +Calendar._TT["PREV_MONTH"] = "һ (ס˵)"; +Calendar._TT["GO_TODAY"] = "ת"; +Calendar._TT["NEXT_MONTH"] = "һ (ס˵)"; +Calendar._TT["NEXT_YEAR"] = "һ (ס˵)"; +Calendar._TT["SEL_DATE"] = "ѡ"; +Calendar._TT["DRAG_TO_MOVE"] = "϶"; +Calendar._TT["PART_TODAY"] = " ()"; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "ʾ%s"; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = "ر"; +Calendar._TT["TODAY"] = ""; +Calendar._TT["TIME_PART"] = "(Shift-)϶ıֵ"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; +Calendar._TT["TT_DATE_FORMAT"] = "%A, %b %e"; + +Calendar._TT["WK"] = ""; +Calendar._TT["TIME"] = "ʱ:"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/cn_utf8.js b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/cn_utf8.js new file mode 100644 index 00000000..de61b461 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/lang/cn_utf8.js @@ -0,0 +1,123 @@ +// ** I18N + +// Calendar EN language +// Author: Mihai Bazon, +// Encoding: any +// Translator : Niko +// Distributed under the same terms as the calendar itself. + +// For translators: please use UTF-8 if possible. We strongly believe that +// Unicode is the answer to a real internationalized world. Also please +// include your contact information in the header, as can be seen above. + +// full day names +Calendar._DN = new Array +("\u5468\u65e5",//\u5468\u65e5 + "\u5468\u4e00",//\u5468\u4e00 + "\u5468\u4e8c",//\u5468\u4e8c + "\u5468\u4e09",//\u5468\u4e09 + "\u5468\u56db",//\u5468\u56db + "\u5468\u4e94",//\u5468\u4e94 + "\u5468\u516d",//\u5468\u516d + "\u5468\u65e5");//\u5468\u65e5 + +// Please note that the following array of short day names (and the same goes +// for short month names, _SMN) isn't absolutely necessary. We give it here +// for exemplification on how one can customize the short day names, but if +// they are simply the first N letters of the full name you can simply say: +// +// Calendar._SDN_len = N; // short day name length +// Calendar._SMN_len = N; // short month name length +// +// If N = 3 then this is not needed either since we assume a value of 3 if not +// present, to be compatible with translation files that were written before +// this feature. + +// short day names +Calendar._SDN = new Array +("\u5468\u65e5", + "\u5468\u4e00", + "\u5468\u4e8c", + "\u5468\u4e09", + "\u5468\u56db", + "\u5468\u4e94", + "\u5468\u516d", + "\u5468\u65e5"); + +// full month names +Calendar._MN = new Array +("\u4e00\u6708", + "\u4e8c\u6708", + "\u4e09\u6708", + "\u56db\u6708", + "\u4e94\u6708", + "\u516d\u6708", + "\u4e03\u6708", + "\u516b\u6708", + "\u4e5d\u6708", + "\u5341\u6708", + "\u5341\u4e00\u6708", + "\u5341\u4e8c\u6708"); + +// short month names +Calendar._SMN = new Array +("\u4e00\u6708", + "\u4e8c\u6708", + "\u4e09\u6708", + "\u56db\u6708", + "\u4e94\u6708", + "\u516d\u6708", + "\u4e03\u6708", + "\u516b\u6708", + "\u4e5d\u6708", + "\u5341\u6708", + "\u5341\u4e00\u6708", + "\u5341\u4e8c\u6708"); + +// tooltips +Calendar._TT = {}; +Calendar._TT["INFO"] = "\u5173\u4e8e"; + +Calendar._TT["ABOUT"] = +" DHTML \u65e5\u8d77/\u65f6\u95f4\u9009\u62e9\u63a7\u4ef6\n" + +"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-) +"For latest version visit: \u6700\u65b0\u7248\u672c\u8bf7\u767b\u9646http://www.dynarch.com/projects/calendar/\u5bdf\u770b\n" + +"\u9075\u5faaGNU LGPL. \u7ec6\u8282\u53c2\u9605 http://gnu.org/licenses/lgpl.html" + +"\n\n" + +"\u65e5\u671f\u9009\u62e9:\n" + +"- \u70b9\u51fb\xab(\xbb)\u6309\u94ae\u9009\u62e9\u4e0a(\u4e0b)\u4e00\u5e74\u5ea6.\n" + +"- \u70b9\u51fb" + String.fromCharCode(0x2039) + "(" + String.fromCharCode(0x203a) + ")\u6309\u94ae\u9009\u62e9\u4e0a(\u4e0b)\u4e2a\u6708\u4efd.\n" + +"- \u957f\u65f6\u95f4\u6309\u7740\u6309\u94ae\u5c06\u51fa\u73b0\u66f4\u591a\u9009\u62e9\u9879."; +Calendar._TT["ABOUT_TIME"] = "\n\n" + +"\u65f6\u95f4\u9009\u62e9:\n" + +"-\u5728\u65f6\u95f4\u90e8\u5206(\u5206\u6216\u8005\u79d2)\u4e0a\u5355\u51fb\u9f20\u6807\u5de6\u952e\u6765\u589e\u52a0\u5f53\u524d\u65f6\u95f4\u90e8\u5206(\u5206\u6216\u8005\u79d2)\n" + +"-\u5728\u65f6\u95f4\u90e8\u5206(\u5206\u6216\u8005\u79d2)\u4e0a\u6309\u4f4fShift\u952e\u540e\u5355\u51fb\u9f20\u6807\u5de6\u952e\u6765\u51cf\u5c11\u5f53\u524d\u65f6\u95f4\u90e8\u5206(\u5206\u6216\u8005\u79d2)."; + +Calendar._TT["PREV_YEAR"] = "\u4e0a\u4e00\u5e74"; +Calendar._TT["PREV_MONTH"] = "\u4e0a\u4e2a\u6708"; +Calendar._TT["GO_TODAY"] = "\u5230\u4eca\u5929"; +Calendar._TT["NEXT_MONTH"] = "\u4e0b\u4e2a\u6708"; +Calendar._TT["NEXT_YEAR"] = "\u4e0b\u4e00\u5e74"; +Calendar._TT["SEL_DATE"] = "\u9009\u62e9\u65e5\u671f"; +Calendar._TT["DRAG_TO_MOVE"] = "\u62d6\u52a8"; +Calendar._TT["PART_TODAY"] = " (\u4eca\u5929)"; + +// the following is to inform that "%s" is to be the first day of week +// %s will be replaced with the day name. +Calendar._TT["DAY_FIRST"] = "%s\u4e3a\u8fd9\u5468\u7684\u7b2c\u4e00\u5929"; + +// This may be locale-dependent. It specifies the week-end days, as an array +// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1 +// means Monday, etc. +Calendar._TT["WEEKEND"] = "0,6"; + +Calendar._TT["CLOSE"] = "\u5173\u95ed"; +Calendar._TT["TODAY"] = "\u4eca\u5929"; +Calendar._TT["TIME_PART"] = "(\u6309\u7740Shift\u952e)\u5355\u51fb\u6216\u62d6\u52a8\u6539\u53d8\u503c"; + +// date formats +Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d"; +Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e\u65e5"; + +Calendar._TT["WK"] = "\u5468"; +Calendar._TT["TIME"] = "\u65f6\u95f4:"; diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/menuarrow.gif b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/menuarrow.gif new file mode 100644 index 00000000..ed2dee0e Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/menuarrow.gif differ diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/active-bg.gif b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/active-bg.gif new file mode 100644 index 00000000..d608c546 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/active-bg.gif differ diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/dark-bg.gif b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/dark-bg.gif new file mode 100644 index 00000000..1dea48a8 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/dark-bg.gif differ diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/hover-bg.gif b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/hover-bg.gif new file mode 100644 index 00000000..fbf94fc2 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/hover-bg.gif differ diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/menuarrow.gif b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/menuarrow.gif new file mode 100644 index 00000000..40c0aadf Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/menuarrow.gif differ diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/normal-bg.gif b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/normal-bg.gif new file mode 100644 index 00000000..bdb50686 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/normal-bg.gif differ diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/rowhover-bg.gif b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/rowhover-bg.gif new file mode 100644 index 00000000..77153424 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/rowhover-bg.gif differ diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/status-bg.gif b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/status-bg.gif new file mode 100644 index 00000000..857108c4 Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/status-bg.gif differ diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/theme.css b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/theme.css new file mode 100644 index 00000000..18dd6cf6 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/theme.css @@ -0,0 +1,236 @@ +/* Distributed as part of The Coolest DHTML Calendar + Author: Mihai Bazon, www.bazon.net/mishoo + Copyright Dynarch.com 2005, www.dynarch.com +*/ + +/* The main calendar widget. DIV containing a table. */ + +div.calendar { position: relative; } + +.calendar, .calendar table { + border: 1px solid #bdb2bf; + font-size: 11px; + color: #000; + cursor: default; + background: url("normal-bg.gif"); + font-family: "trebuchet ms",verdana,tahoma,sans-serif; +} + +.calendar { + border-color: #797979; +} + +/* Header part -- contains navigation buttons and day names. */ + +.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */ + text-align: center; /* They are the navigation buttons */ + padding: 2px; /* Make the buttons seem like they're pressing */ + background: url("title-bg.gif") repeat-x 0 100%; color: #000; + font-weight: bold; +} + +.calendar .nav { + font-family: verdana,tahoma,sans-serif; +} + +.calendar .nav div { + background: transparent url("menuarrow.gif") no-repeat 100% 100%; +} + +.calendar thead tr { background: url("title-bg.gif") repeat-x 0 100%; color: #000; } + +.calendar thead .title { /* This holds the current "month, year" */ + font-weight: bold; /* Pressing it will take you to the current date */ + text-align: center; + padding: 2px; + background: url("title-bg.gif") repeat-x 0 100%; color: #000; +} + +.calendar thead .headrow { /* Row containing navigation buttons */ +} + +.calendar thead .name { /* Cells containing the day names */ + border-bottom: 1px solid #797979; + padding: 2px; + text-align: center; + color: #000; +} + +.calendar thead .weekend { /* How a weekend day name shows in header */ + color: #c44; +} + +.calendar thead .hilite { /* How do the buttons in header appear when hover */ + background: url("hover-bg.gif"); + border-bottom: 1px solid #797979; + padding: 2px 2px 1px 2px; +} + +.calendar thead .active { /* Active (pressed) buttons in header */ + background: url("active-bg.gif"); color: #fff; + padding: 3px 1px 0px 3px; + border-bottom: 1px solid #797979; +} + +.calendar thead .daynames { /* Row containing the day names */ + background: url("dark-bg.gif"); +} + +/* The body part -- contains all the days in month. */ + +.calendar tbody .day { /* Cells containing month days dates */ + font-family: verdana,tahoma,sans-serif; + width: 2em; + color: #000; + text-align: right; + padding: 2px 4px 2px 2px; +} +.calendar tbody .day.othermonth { + font-size: 80%; + color: #999; +} +.calendar tbody .day.othermonth.oweekend { + color: #f99; +} + +.calendar table .wn { + padding: 2px 3px 2px 2px; + border-right: 1px solid #797979; + background: url("dark-bg.gif"); +} + +.calendar tbody .rowhilite td, +.calendar tbody .rowhilite td.wn { + background: url("rowhover-bg.gif"); +} + +.calendar tbody td.today { font-weight: bold; /* background: url("today-bg.gif") no-repeat 70% 50%; */ } + +.calendar tbody td.hilite { /* Hovered cells */ + background: url("hover-bg.gif"); + padding: 1px 3px 1px 1px; + border: 1px solid #bbb; +} + +.calendar tbody td.active { /* Active (pressed) cells */ + padding: 2px 2px 0px 2px; +} + +.calendar tbody td.weekend { /* Cells showing weekend days */ + color: #c44; +} + +.calendar tbody td.selected { /* Cell showing selected date */ + font-weight: bold; + border: 1px solid #797979; + padding: 1px 3px 1px 1px; + background: url("active-bg.gif"); color: #fff; +} + +.calendar tbody .disabled { color: #999; } + +.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */ + visibility: hidden; +} + +.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */ + display: none; +} + +/* The footer part -- status bar and "Close" button */ + +.calendar tfoot .footrow { /* The in footer (only one right now) */ + text-align: center; + background: #565; + color: #fff; +} + +.calendar tfoot .ttip { /* Tooltip (status bar) cell */ + padding: 2px; + background: url("status-bg.gif") repeat-x 0 0; color: #000; +} + +.calendar tfoot .hilite { /* Hover style for buttons in footer */ + background: #afa; + border: 1px solid #084; + color: #000; + padding: 1px; +} + +.calendar tfoot .active { /* Active (pressed) style for buttons in footer */ + background: #7c7; + padding: 2px 0px 0px 2px; +} + +/* Combo boxes (menus that display months/years for direct selection) */ + +.calendar .combo { + position: absolute; + display: none; + top: 0px; + left: 0px; + width: 4em; + cursor: default; + border-width: 0 1px 1px 1px; + border-style: solid; + border-color: #797979; + background: url("normal-bg.gif"); color: #000; + z-index: 100; + font-size: 90%; +} + +.calendar .combo .label, +.calendar .combo .label-IEfix { + text-align: center; + padding: 1px; +} + +.calendar .combo .label-IEfix { + width: 4em; +} + +.calendar .combo .hilite { + background: url("hover-bg.gif"); color: #000; +} + +.calendar .combo .active { + background: url("active-bg.gif"); color: #fff; + font-weight: bold; +} + +.calendar td.time { + border-top: 1px solid #797979; + padding: 1px 0px; + text-align: center; + background: url("dark-bg.gif"); +} + +.calendar td.time .hour, +.calendar td.time .minute, +.calendar td.time .ampm { + padding: 0px 5px 0px 6px; + font-weight: bold; + background: url("normal-bg.gif"); color: #000; +} + +.calendar td.time .hour, +.calendar td.time .minute { + font-family: monospace; +} + +.calendar td.time .ampm { + text-align: center; +} + +.calendar td.time .colon { + padding: 0px 2px 0px 3px; + font-weight: bold; +} + +.calendar td.time span.hilite { + background: url("hover-bg.gif"); color: #000; +} + +.calendar td.time span.active { + background: url("active-bg.gif"); color: #fff; +} diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/title-bg.gif b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/title-bg.gif new file mode 100644 index 00000000..6a541b3b Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/title-bg.gif differ diff --git a/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/today-bg.gif b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/today-bg.gif new file mode 100644 index 00000000..7161538c Binary files /dev/null and b/lam/templates/3rdParty/pla/htdocs/js/jscalendar/skins/aqua/today-bg.gif differ diff --git a/lam/templates/3rdParty/pla/htdocs/js/layersmenu-browser_detection.js b/lam/templates/3rdParty/pla/htdocs/js/layersmenu-browser_detection.js new file mode 100644 index 00000000..55a5f793 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/layersmenu-browser_detection.js @@ -0,0 +1,46 @@ +// PHP Layers Menu 3.2.0-rc (C) 2001-2004 Marco Pratesi - http://www.marcopratesi.it/ +// PHPLM v. 4.0.0 (C) 2007 Andreas Kasenides andreas@kasenides.org +// PHPLM v. 4.0.4 (C) 2008 Andreas Kasenides andreas@kasenides.org, Brett Zamir +/** + * @version 4.0.4 + * @author PHPLM v. 4.0.4 (C) 2008 Andreas Kasenides andreas@kasenides.org + * @author PHP Layers Menu 3.2.0-rc (C) 2001-2004 Marco Pratesi - http://www.marcopratesi.it/ +* @author Brett Zamir + */ + +var DOM = (document.getElementById) ? 1 : 0; +var NS4 = (document.layers) ? 1 : 0; + +// We need to explicitly detect Konqueror +// because Konqueror 3 sets IE = 1 ... AAAAAAAAAARGHHH!!! +var Konqueror = (navigator.userAgent.indexOf('Konqueror') > -1) ? 1 : 0; +// We need to detect Konqueror 2.2 as it does not handle the window.onresize event +var Konqueror22 = (navigator.userAgent.indexOf('Konqueror 2.2') > -1 || navigator.userAgent.indexOf('Konqueror/2.2') > -1) ? 1 : 0; +var Konqueror30 = + ( + navigator.userAgent.indexOf('Konqueror 3.0') > -1 + || navigator.userAgent.indexOf('Konqueror/3.0') > -1 + || navigator.userAgent.indexOf('Konqueror 3;') > -1 + || navigator.userAgent.indexOf('Konqueror/3;') > -1 + || navigator.userAgent.indexOf('Konqueror 3)') > -1 + || navigator.userAgent.indexOf('Konqueror/3)') > -1 + ) + ? 1 : 0; +var Konqueror31 = (navigator.userAgent.indexOf('Konqueror 3.1') > -1 || navigator.userAgent.indexOf('Konqueror/3.1') > -1) ? 1 : 0; +// We need to detect Konqueror 3.2 and 3.3 as they are affected by the see-through effect only for 2 form elements +var Konqueror32 = (navigator.userAgent.indexOf('Konqueror 3.2') > -1 || navigator.userAgent.indexOf('Konqueror/3.2') > -1) ? 1 : 0; +var Konqueror33 = (navigator.userAgent.indexOf('Konqueror 3.3') > -1 || navigator.userAgent.indexOf('Konqueror/3.3') > -1) ? 1 : 0; + +var Opera = (navigator.userAgent.indexOf('Opera') > -1) ? 1 : 0; +var Opera5 = (navigator.userAgent.indexOf('Opera 5') > -1 || navigator.userAgent.indexOf('Opera/5') > -1) ? 1 : 0; +var Opera6 = (navigator.userAgent.indexOf('Opera 6') > -1 || navigator.userAgent.indexOf('Opera/6') > -1) ? 1 : 0; +var Opera56 = Opera5 || Opera6; +var Opera7 = (navigator.userAgent.indexOf('Opera 7') > -1 || navigator.userAgent.indexOf('Opera/7') > -1) ? 1 : 0; +var Opera8 = (navigator.userAgent.indexOf('Opera 8') > -1 || navigator.userAgent.indexOf('Opera/8') > -1) ? 1 : 0; +var Opera9 = (navigator.userAgent.indexOf('Opera 9') > -1 || navigator.userAgent.indexOf('Opera/9') > -1) ? 1 : 0; + +var IE = (navigator.userAgent.indexOf('MSIE') > -1) ? 1 : 0; +IE = IE && !Opera; +var IE5 = IE && DOM; +var IE4 = (document.all) ? 1 : 0; +IE4 = IE4 && IE && !DOM; diff --git a/lam/templates/3rdParty/pla/htdocs/js/modify_member.js b/lam/templates/3rdParty/pla/htdocs/js/modify_member.js new file mode 100644 index 00000000..a601ccb7 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/modify_member.js @@ -0,0 +1,89 @@ +var m1 = document.getElementById('member').notmembers; +var m2 = document.getElementById('member').members; + +/* This function generates hidden input array from new group members + * when submit button is pressed. + * see modify_member_form.php +*/ +function update_new_values(memberattr) { + el = document.getElementById("dnu"); + + for (i=0;i"; + } +} + + +/* This function moves members from left select box to right one + * see modify_member_form.php + */ +function one2two() { + m1len = m1.length ; + + for (i=0;i=0;i--){ + if (m1.options[i].selected == true) { + m1.options[i] = null; + } + } +} + +/* This function moves members from right select box to left one + * see modify_member_form.php + */ +function two2one() { + m2len = m2.length ; + + for (i=0;i=0;i--) { + if (m2.options[i].selected == true) { + m2.options[i] = null; + } + } +} + +/* This function moves all members from left select box to right one + * see modify_member_form.php + */ +function all2two() { + m1len = m1.length ; + + for (i=0;i=0;i--) { + m1.options[i] = null; + } +} + +/* This function moves all members from right select box to left one + * see modify_member_form.php + */ +function all2one() { + m2len = m2.length ; + + for (i=0;i=0;i--) { + m2.options[i] = null; + } +} diff --git a/lam/templates/3rdParty/pla/htdocs/js/toAscii.js b/lam/templates/3rdParty/pla/htdocs/js/toAscii.js new file mode 100644 index 00000000..287ff659 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/js/toAscii.js @@ -0,0 +1,80 @@ +// +// Purpose of this file is to remap characters as ASCII characters +// +// + +var to_ascii_array = new Array(); +to_ascii_array['à'] = 'a'; +to_ascii_array['á'] = 'a'; +to_ascii_array['â'] = 'a'; +to_ascii_array['À'] = 'a'; +to_ascii_array['ã'] = 'a'; +to_ascii_array['Ã¥'] = 'a'; +to_ascii_array['À'] = 'A'; +to_ascii_array['Á'] = 'A'; +to_ascii_array['Ä'] = 'A'; +to_ascii_array['Â'] = 'A'; +to_ascii_array['Ã'] = 'A'; +to_ascii_array['Å'] = 'A'; +to_ascii_array['é'] = 'e'; +to_ascii_array['Ú'] = 'e'; +to_ascii_array['ë'] = 'e'; +to_ascii_array['ê'] = 'e'; +to_ascii_array['€'] = 'E'; +to_ascii_array['ï'] = 'i'; +to_ascii_array['î'] = 'i'; +to_ascii_array['ì'] = 'i'; +to_ascii_array['í'] = 'i'; +to_ascii_array['Ï'] = 'I'; +to_ascii_array['Î'] = 'I'; +to_ascii_array['Ì'] = 'I'; +to_ascii_array['Í'] = 'I'; +to_ascii_array['ò'] = 'o'; +to_ascii_array['ó'] = 'o'; +to_ascii_array['ÃŽ'] = 'o'; +to_ascii_array['õ'] = 'o'; +to_ascii_array['ö'] = 'o'; +to_ascii_array['Þ'] = 'o'; +to_ascii_array['Ò'] = 'O'; +to_ascii_array['Ó'] = 'O'; +to_ascii_array['Ô'] = 'O'; +to_ascii_array['Õ'] = 'O'; +to_ascii_array['Ö'] = 'O'; +to_ascii_array['Ø'] = 'O'; +to_ascii_array['ù'] = 'u'; +to_ascii_array['ú'] = 'u'; +to_ascii_array['ÃŒ'] = 'u'; +to_ascii_array['û'] = 'u'; +to_ascii_array['Ù'] = 'U'; +to_ascii_array['Ú'] = 'U'; +to_ascii_array['Ü'] = 'U'; +to_ascii_array['Û'] = 'U'; +to_ascii_array['Ê'] = 'ae'; +to_ascii_array['Æ'] = 'AE'; +to_ascii_array['Ãœ'] = 'y'; +to_ascii_array['ÿ'] = 'y'; +to_ascii_array['ß'] = 'SS'; +to_ascii_array['Ç'] = 'C'; +to_ascii_array['ç'] = 'c'; +to_ascii_array['Ñ'] = 'N'; +to_ascii_array['ñ'] = 'n'; +to_ascii_array['¢'] = 'c'; +to_ascii_array['©'] = '(C)'; +to_ascii_array['®'] = '(R)'; +to_ascii_array['«'] = '<<'; +to_ascii_array['»'] = '>>'; + +function toAscii(text) { + //var text = field.value; + var position = 0; + var output = ""; + for (position = 0 ; position < text.length ; position++) { + var tmp = text.substring(position,position+1); + if (to_ascii_array[tmp] != undefined) { + tmp = to_ascii_array[tmp]; + } + output = output + tmp; + } + return output; +} + diff --git a/lam/templates/3rdParty/pla/htdocs/mass_delete.php b/lam/templates/3rdParty/pla/htdocs/mass_delete.php new file mode 100644 index 00000000..0cb9d7a3 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/mass_delete.php @@ -0,0 +1,130 @@ +_('No entry was selected to delete'), + 'body'=>_('No entry was selected to delete'), + 'type'=>'warn'),'index.php'); + +if (! is_array($request['dn'])) + $request['dn'] = array($request['dn']); + +$request['children'] = array(); +$request['parent'] = array(); +foreach ($request['dn'] as $dn) { + # Check if the entry exists. + if (! $dn || ! $app['server']->dnExists($dn)) + system_message(array( + 'title'=>_('Entry does not exist'), + 'body'=>sprintf('%s (%s/%s)',_('The entry does not exist and will be ignored'),$dn), + 'type'=>'error')); + + # We search all children, not only the visible children in the tree + if (! in_array_ignore_case($dn,$request['children'])) { + $request['children'] = array_merge($request['children'],$app['server']->getContainerContents($dn,null,0,'(objectClass=*)',LDAP_DEREF_NEVER)); + array_push($request['parent'],$dn); + } +} + +printf('

    %s

    ',_('Mass delete')); +echo "\n"; + +echo '
    '; +echo ''; + +if (count($request['parent']) == 1) + printf('',_('Are you sure you want to permanently delete this object?')); +else + printf('',_('Are you sure you want to permanently delete these objects?')); + +foreach ($request['parent'] as $dn) + printf('', + _('DN'),_('DN'),$dn); + +echo ''; + +$request['delete'] = $request['parent']; + +if (count($request['children'])) { + printf('',_('Permanently delete all children also?')); + echo ''; + + # We need to see if the children have children + $query = array(); + $query['scope'] = 'sub'; + $query['attrs'] = array('dn'); + $query['size_limit'] = 0; + $query['deref'] = LDAP_DEREF_NEVER; + + $request['search'] = array(); + foreach ($request['children'] as $dn) { + $query['base'] = $dn; + $request['search'] = array_merge($request['search'],$app['server']->query($query,null)); + } + + foreach ($request['search'] as $value) + array_push($request['delete'],$value['dn']); + + echo ''; + echo ''; + + printf('',_('List of entries to be deleted:')); + echo ''; + + $i = 0; + echo ''; + echo "\n"; + + echo ''; +} + +echo ''; +echo ''; + +echo ''; +echo ''; +echo "\n"; + +echo '
    %s
    %s
    %s%s
     
    %s
     
    '; + printf(_('This deletion request also includes %s child entries.'),count($request['children'])); + echo '
    %s
     
    '; + printf(''; + echo '
     
    '; +echo '
    '; +echo ''; +printf('',$app['server']->getIndex()); +foreach ($request['parent'] as $dn) + printf('',htmlspecialchars($dn)); +printf('',sprintf(_('Delete all %s objects'),count($request['delete']))); +echo '
    '; +echo '
    '; + +echo '
    '; +echo ''; +printf('',$app['server']->getIndex()); +printf('',_('Cancel')); +echo '
    '; + +echo '
    '; +echo '
    '; + +echo '
    '; +?> diff --git a/lam/templates/3rdParty/pla/htdocs/mass_edit.php b/lam/templates/3rdParty/pla/htdocs/mass_edit.php new file mode 100644 index 00000000..cece6ce7 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/mass_edit.php @@ -0,0 +1,132 @@ +dnExists($dn)) { + system_message(array( + 'title'=>_('Entry does not exist'), + 'body'=>sprintf('%s (%s/%s)',_('The entry does not exist and will be ignored'),$dn), + 'type'=>'error')); + + continue; + } + + $request['page'][$counter] = new MassRender($app['server']->getIndex(),'none'); + $request['page'][$counter]->setDN($dn); + $request['page'][$counter]->accept(true); + + $template = $request['page'][$counter]->getTemplate(); + + # Mark our attributes to edit as shown. + foreach ($template->getAttributes(true) as $attribute) { + if ($attribute->isInternal()) + continue; + + if (in_array_ignore_case($attribute->getName(),$request['attrs']) || in_array('*',$request['attrs'])) { + $attribute->show(); + + # Get a list of our columns (we are not interested in these attribute values) + if (! isset($attrcols[$attribute->getName()])) + $attrcols[$attribute->getName()] = $attribute; + } + } + + $counter++; +} + +usort($attrcols,'sortAttrs'); + +if (! count($request['page'])) + header('Location: index.php'); + +# We'll render this forms Title with the first DN's object. +$request['page'][0]->drawTitle(_('Bulk edit the following DNs')); + +echo '
    '; +echo '
    '; +echo ''; +printf('',$app['server']->getIndex()); + +foreach ($request['page'] as $j => $page) + printf('',$j,$page->getTemplate()->getDN()); + +echo '
    '; + +echo ''; +echo ''; +echo ''; + +foreach ($attrcols as $attribute) { + echo ''; +} + +echo ''; + +$counter = 0; +foreach ($request['page'] as $j => $page) { + $template = $page->getTemplate(); + + printf('',$counter++%2==0?'even':'odd'); + printf('', + $template->getDN(),substr($template->getDN(),0,20)); + + foreach ($attrcols as $attrcol) { + $attribute = $template->getAttribute($attrcol->getName()); + + echo ''; + } + + echo ''; +} + +echo '
    DN'; + $request['page'][0]->draw('Name',$attribute); + echo '
    %s...'; + if ($attribute) { + foreach ($attribute->getValues() as $i => $val) + $page->draw('MassFormReadWriteValue',$attribute,$i,$j); + + # The attribute doesnt exist. If it is available by the shema, we can draw an empty input box. + } else { + $match = false; + + foreach ($template->getAvailAttrs() as $attribute) { + if ($attrcol->getName() == $attribute->getName()) { + $page->draw('MassFormReadWriteValue',$attribute,0,$j); + $match = true; + + break; + } + } + + if (! $match) + printf('
    %s
    ', _('Attribute not available')); + } + + echo '
    '; +echo '
    '; +echo '
    '; +printf('',_('Update values')); +echo '
    '; +echo '
    '; +?> diff --git a/lam/templates/3rdParty/pla/htdocs/mass_update.php b/lam/templates/3rdParty/pla/htdocs/mass_update.php new file mode 100644 index 00000000..b44a8a47 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/mass_update.php @@ -0,0 +1,174 @@ + $dn) { + # Check if the entry exists. + if (! $dn || ! $app['server']->dnExists($dn)) { + system_message(array( + 'title'=>_('Entry does not exist'), + 'body'=>sprintf('%s (%s/%s)',_('The entry does not exist and will be ignored'),$dn), + 'type'=>'error')); + + continue; + } + + # Simulate the requirements for *Render->accept() + if (! isset($request['mass_values'][$index])) + continue; + + $_REQUEST['new_values'] = $request['mass_values'][$index]; + + $render = new MassRender($app['server']->getIndex(),'none'); + $render->setDN($dn); + $render->accept(true); + + if ($render->getTemplate()->getLDAPmodify(false,$index)) + $request['update'][$index] = $render; +} + +# We can use the $render to give us a title +$render->drawTitle(_('Bulk update the following DNs')); + +if (count($request['update'])) { + if (get_request('confirm','REQUEST')) { + foreach ($request['update'] as $index => $page) { + $template = $page->getTemplate(); + + # Perform the modification + $result = $app['server']->modify($template->getDN(),$template->getLDAPmodify(false,$index)); + + if ($result) + printf('%s: %s
    ',$template->getDN(),_('Modification successful!')); + else + printf('%s: %s
    ',$template->getDN(),_('Modification not successful!')); + } + + } else { + echo '
    '; + echo ''; + printf('',$app['server']->getIndex()); + echo ''; + + foreach ($request['update'] as $j => $page) + printf('',$j,$page->getTemplate()->getDN()); + + echo ''; + echo ''; + echo '
    '; + + echo '
    '; + + echo ''; + echo ''; + echo '
    '; + printf(_('There will be %s updates done with this mass update'),sprintf('%s',count($request['update']))); + echo '
    '; + + echo '
    '; + + foreach ($request['update'] as $index => $page) { + $template = $page->getTemplate(); + + echo ''; + echo ''; + printf('',IMGDIR,get_icon($app['server']->getIndex(),$template->getDN())); + + printf('', + $app['server']->getIndex(),rawurlencode(dn_unescape($template->getDN())),htmlspecialchars(get_rdn($template->getDN()))); + echo ''; + + printf('', + htmlspecialchars(dn_unescape($template->getDN())),_('Old value')); + + foreach ($template->getLDAPmodify(true,$index) as $attribute) { + echo ''; + echo ''; + + echo ''; + + # Show NEW Values + echo ''; + + # Show OLD Values + echo ''; + + echo ''; + } + + echo '
    icon%s
     dn%s%s
     '; + $page->draw('Name',$attribute); + echo ''; + + if (! $attribute->getValueCount() || $attribute->isForceDelete()) { + printf('[%s]',_('attribute deleted')); + printf('',$index,$attribute->getName(),0,''); + } + + foreach ($attribute->getValues() as $key => $value) { + # For multiple values, we'll highlight the changed ones + if ((count($attribute->getValues()) > 5) && in_array($value,$attribute->getAddedValues())) + echo ''; + + $page->draw('CurrentValue',$attribute,$key); + + # For multiple values, close the highlighting + if ((count($attribute->getValues()) > 5) && in_array($value,$attribute->getAddedValues())) + echo ''; + + echo '
    '; + printf('',$index,$attribute->getName(),$key,$value); + } + + echo '
    '; + + if (! $attribute->getOldValues()) + printf('[%s]',_('Attribute doesn\'t exist')); + + foreach ($attribute->getOldValues() as $key => $value) { + # For multiple values, we'll highlight the changed ones + if ((count($attribute->getOldValues()) > 5) && in_array($value,$attribute->getRemovedValues()) && count($attribute->getValues())) + echo ''; + + $page->draw('OldValue',$attribute,$key); + + # For multiple values, close the highlighting + if ((count($attribute->getOldValues()) > 5) && in_array($value,$attribute->getRemovedValues()) && count($attribute->getValues())) + echo ''; + + echo '
    '; + } + + echo '
    '; + + echo '
    '; + } + + echo '
    '; + printf('',_('Update values')); + echo '
    '; + } + +} else { + echo '
    '; + echo _('You made no changes'); + echo '
    '; +} +?> diff --git a/lam/templates/3rdParty/pla/htdocs/modify_member_form.php b/lam/templates/3rdParty/pla/htdocs/modify_member_form.php new file mode 100644 index 00000000..213a0e78 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/modify_member_form.php @@ -0,0 +1,178 @@ +getIndex(),get_request('template','REQUEST',false,null)); +$request['page']->setDN($request['dn']); +$request['page']->accept(true); +$request['template'] = $request['page']->getTemplate(); + +if (! is_null($request['dn'])) + $rdn = get_rdn($request['dn']); +else + $rdn = null; + +# Get all current group members +$current_members = $app['server']->getDNAttrValue($request['dn'],$request['attr']); +usort($current_members,'pla_compare_dns'); + +# Loop through all base dn's and search possible member entries +$query = array(); + +# Get all entries that can be added to the group +if (preg_match("/^".$request['attr']."$/i",$_SESSION[APPCONFIG]->getValue('modify_member','posixgroupattr'))) { + $query['filter'] = $_SESSION[APPCONFIG]->getValue('modify_member','posixfilter'); + $attr = $_SESSION[APPCONFIG]->getValue('modify_member','posixattr'); + +} else { + $query['filter'] = $_SESSION[APPCONFIG]->getValue('modify_member','filter'); + $attr = $_SESSION[APPCONFIG]->getValue('modify_member','attr'); +} + +$query['attrs'] = array($attr); + +$possible_values = array(); +foreach ($app['server']->getBaseDN() as $base) { + $query['base'] = $base; + + $possible_values = array_merge($possible_values,$app['server']->query($query,null)); +} + +usort($possible_values,'pla_compare_dns'); + +$request['page']->drawTitle(sprintf('%s %s',_('Modify group'),get_rdn($request['dn']))); +$request['page']->drawSubTitle(); + +printf(_('There are %s members in group %s:'), + count($current_members),htmlspecialchars(get_rdn($request['dn']))); + +$possible_members = array(); +for ($i=0;$igetValue('modify_member','posixgroupattr'))) + $possible_members[$i] = $possible_values[$i][$_SESSION[APPCONFIG]->getValue('modify_member','posixattr')][0]; + else + $possible_members[$i] = $possible_values[$i][$_SESSION[APPCONFIG]->getValue('modify_member','attr')]; +} + +# Show only user that are not already in group. +$possible_members = array_diff($possible_members,$current_members); +usort($possible_members,'pla_compare_dns'); + +/* Draw form with select boxes, left for all possible members and + * right one for those that belong to group */ + +# Modifications will be sent to update_confirm which takes care of rest of the processing +echo '
    '; +echo '
    '; + +echo '
    '; +echo '
    '; +if ($_SESSION[APPCONFIG]->getValue('confirm','update')) + echo ''; +else + echo ''; +echo '
    '; + +echo ''; + +echo ''; +printf('',IMGDIR,_('Available members')); +printf('',IMGDIR,_('Group members')); +echo ''; + +# Generate select box from all possible members +echo ''; +echo ''; + +# Generate select box from all current members +echo ''; + +echo ''; + +# Show buttons which move users from left to right and vice versa +echo ''; +echo ''; +echo ''; +echo ''; + +echo ''; + +echo '
    Users %sMembers %s
    '; +echo ''; +echo ''; +echo ''; +echo '
    '; +printf(' ', + _('Add selected'),_('Add all')); +echo ''; +printf(' ', + _('Remove selected entries'),('Remove all')); +echo '
    '; + +# Hidden attributes for update_confirm.php +printf('',$app['server']->getIndex()); +printf('',rawurlencode($request['dn'])); +printf('',$request['attr']); + +/* Generate array of input text boxes from current members. + * update_confirm.php will see this as old_values[member-attribute][item] */ +for ($i=0; $i', + htmlspecialchars($request['attr']),$i,htmlspecialchars($current_members[$i])); + +/* Javascript generates array of input text boxes from new members. + * update_confirm.php will see this as new_values[member-attribute][item] + * Input text boxes will be generated to div=dnu */ +echo '
    '; +printf('',htmlspecialchars($request['attr'])); +echo '
    '; + +# Submit values to update_confirm.php and when clicked, run addSelected +printf('',_('Save changes'),$request['attr']); +echo '
    '; +echo '
    '; +printf('',JSDIR); +?> diff --git a/lam/templates/3rdParty/pla/htdocs/password_checker.php b/lam/templates/3rdParty/pla/htdocs/password_checker.php new file mode 100644 index 00000000..3375196f --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/password_checker.php @@ -0,0 +1,88 @@ +%s',_('Password check')); + +echo '
    '; +echo ''; +printf('',$request['attribute']); + +echo ''; + +echo ''; +printf('',_('Compare')); +printf('', + (obfuscate_password_display($request['enc_type']) ? 'password' : 'text'),htmlspecialchars($request['hash'])); +echo ''; + +echo ''; +printf('',_('To')); +printf('', + htmlspecialchars($request['password'])); +echo ''; + +echo ''; +echo ''; + +echo ''; +echo ''; +echo '
    %s
    %s
     '; + +if ($request['action'] == 'compare') { + echo '    '; + + if (password_check($request['hash'],$request['password'],$request['attribute'])) + printf('%s',_('Passwords match.')); + else + printf('%s',_('Passwords are different!')); + + echo ''; +} + +echo '
    '; +echo '
    '; + +# Pull our password from the form that opened this window. +if ($request['componentid']) { + echo ''; +} + +# Capture the output and put into the body of the page. +$www['body'] = new block(); +$www['body']->SetBody(ob_get_contents()); +$www['page']->block_add('body',$www['body']); +ob_end_clean(); + +# Render the popup. +$www['page']->display(array('CONTROL'=>false,'FOOT'=>false,'HEAD'=>false,'TREE'=>false)); +?> diff --git a/lam/templates/3rdParty/pla/htdocs/query_engine.php b/lam/templates/3rdParty/pla/htdocs/query_engine.php new file mode 100644 index 00000000..a94feddd --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/query_engine.php @@ -0,0 +1,19 @@ +getIndex(),get_request('query','REQUEST',false,null)); +$request['page']->accept(); +?> diff --git a/lam/templates/3rdParty/pla/htdocs/rdelete.php b/lam/templates/3rdParty/pla/htdocs/rdelete.php new file mode 100644 index 00000000..5a40a5c5 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/rdelete.php @@ -0,0 +1,96 @@ +dnExists($dn)) + system_message(array( + 'title'=>_('Entry does not exist'), + 'body'=>sprintf('%s (%s)',_('Unable to delete entry, it does not exist'),$dn), + 'type'=>'error')); + else + array_push($request['parent'],$dn); + +printf('

    %s

    ',_('Delete LDAP entries')); +printf('

    %s

    ',_('Recursive delete progress')); + +# Prevent script from bailing early on a long delete +@set_time_limit(0); + +foreach ($request['parent'] as $dn) { + echo '

    '; + echo ''; + $result = pla_rdelete($app['server'],$dn); + echo '
    '; + + if ($result) { + printf(_('Entry %s and sub-tree deleted successfully.'),''.$dn.''); + + } else { + system_message(array( + 'title'=>_('Could not delete the entry.').sprintf(' (%s)',pretty_print_dn($request['dn'])), + 'body'=>ldap_error_msg($app['server']->getErrorMessage(null),$app['server']->getErrorNum(null)), + 'type'=>'error')); + } +} + +function pla_rdelete($server,$dn) { + if (($dn == null) || ($dn == '')) { + system_message(array( + 'title'=>_('Entry does not exist'), + 'body'=>sprintf('%s (%s)',_('Unable to delete entry, it does not exist'),$dn), + 'type'=>'error')); + return false; + } + # We delete all children, not only the visible children in the tree + $children = $server->getContainerContents($dn,null,0,'(objectClass=*)',LDAP_DEREF_NEVER); + + if (! is_array($children) || count($children) == 0) { + printf('%s %s...',_('Deleting'),$dn); + + if ($server->delete($dn)) { + printf(' %s
    ',_('Success')); + return true; + + } else { + system_message(array( + 'title'=>_('Could not delete the entry.').sprintf(' (%s)',pretty_print_dn($dn)), + 'body'=>ldap_error_msg($server->getErrorMessage(null),$server->getErrorNum(null)), + 'type'=>'error')); + } + + } else { + foreach ($children as $child_dn) + pla_rdelete($server,$child_dn); + + printf('%s %s...',_('Deleting'),$dn); + + if ($server->delete($dn)) { + printf(' %s
    ',_('Success')); + return true; + + } else { + system_message(array( + 'title'=>_('Could not delete the entry.').sprintf(' (%s)',pretty_print_dn($dn)), + 'body'=>ldap_error_msg($server->getErrorMessage(null),$server->getErrorNum(null)), + 'type'=>'error')); + } + } +} +?> diff --git a/lam/templates/3rdParty/pla/htdocs/refresh.php b/lam/templates/3rdParty/pla/htdocs/refresh.php new file mode 100644 index 00000000..385c4c6e --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/refresh.php @@ -0,0 +1,46 @@ +getIndex(),'tree'); + del_cached_item($app['server']->getIndex(),'tree'); + + if ($tree) + $openDNs = $tree->listOpenItems(); + else + $openDNs = array(); + + $tree = Tree::getInstance($app['server']->getIndex()); + + foreach ($openDNs as $value) { + $entry = $tree->getEntry($value); + if (! $entry) { + $tree->addEntry($value); + $entry = $tree->getEntry($value); + } + + $tree->readChildren($value,true); + $entry->open(); + } + + set_cached_item($app['server']->getIndex(),'tree','null',$tree); +} + +if (get_request('meth','REQUEST') == 'ajax') + header(sprintf('Location: cmd.php?cmd=draw_tree_node&noheader=%s&server_id=%s&meth=ajax&frame=TREE',get_request('noheader','REQUEST',false,0),$app['server']->getIndex())); +else + header(sprintf('Location: cmd.php?server_id=%s',$app['server']->getIndex())); + +die(); +?> diff --git a/lam/templates/3rdParty/pla/htdocs/rename.php b/lam/templates/3rdParty/pla/htdocs/rename.php new file mode 100644 index 00000000..e3c3acb0 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/rename.php @@ -0,0 +1,64 @@ +getContainer($request['dnSRC']); + +# Error checking +if (! $app['server']->isBranchRenameEnabled()) { + # We search all children, not only the visible children in the tree + $children = $app['server']->getContainerContents($request['dnSRC'],null,0,'(objectClass=*)',LDAP_DEREF_NEVER); + + if (count($children) > 0) + error(_('You cannot rename an entry which has child entries.'),'error','index.php'); +} + +$request['dnDST'] = sprintf('%s,%s',$request['rdnDST'],$request['container']); + +if ($request['dnDST'] == $request['dnSRC']) + error(_('You did not change the RDN'),'error','index.php'); + +$rdnattr = array(); +$rdnattr['SRC'] = explode('=',$request['dnSRC']); +$rdnattr['SRC'] = $rdnattr['SRC'][0]; + +$new_dn_value = explode('=',$request['rdnDST'],2); +$rdnattr['DST'] = $new_dn_value[0]; + +if (count($new_dn_value) != 2 || ! isset($new_dn_value[1])) + error(_('Invalid RDN value'),'error','index.php'); + +$deleteoldrdn = $rdnattr['SRC'] == $rdnattr['DST']; +$success = $app['server']->rename($request['dnSRC'],$request['rdnDST'],$request['container'],$deleteoldrdn); + +if ($success) { + $rename_message = sprintf('%s',_('Rename successful!')); + $redirect_url = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s&template=%s', + $app['server']->getIndex(),rawurlencode($request['dnDST']),get_request('template','REQUEST')); + + system_message(array( + 'title'=>_('Rename'), + 'body'=>$rename_message, + 'type'=>'info'), + $redirect_url); + +} else { + system_message(array( + 'title'=>_('Could not rename the entry.'), + 'body'=>ldap_error_msg($app['server']->getErrorMessage(null),$app['server']->getErrorNum(null)), + 'type'=>'error')); +} +?> diff --git a/lam/templates/3rdParty/pla/htdocs/rename_form.php b/lam/templates/3rdParty/pla/htdocs/rename_form.php new file mode 100644 index 00000000..8ed78c11 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/rename_form.php @@ -0,0 +1,40 @@ +getIndex(),get_request('template','REQUEST',false,'none')); +$request['page']->setDN($request['dn']); +$request['page']->accept(); + +# Render the form +$request['page']->drawTitle(sprintf('%s %s',_('Rename'),get_rdn($request['dn']))); +$request['page']->drawSubTitle(); + +echo '
    '; +printf(_('Rename %s to a new object.') . '

    ',get_rdn($request['dn'])); + +echo '
    '; +printf('',$app['server']->getIndex()); +printf('',rawurlencode($request['dn'])); +printf('',$request['template']); +printf('',get_rdn($request['dn'])); +printf('',_('Rename')); +echo '
    '; + +echo '
    '; +echo "\n"; +?> diff --git a/lam/templates/3rdParty/pla/htdocs/template_engine.php b/lam/templates/3rdParty/pla/htdocs/template_engine.php new file mode 100644 index 00000000..1cfaba98 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/template_engine.php @@ -0,0 +1,57 @@ +getIndex(),get_request('template','REQUEST',false,null)); + +# If we have a DN, then this is to edit the entry. +if ($request['dn']) { + $app['server']->dnExists($request['dn']) + or error(sprintf('%s (%s)',_('No such entry'),pretty_print_dn($request['dn'])),'error','index.php'); + + $request['page']->setDN($request['dn']); + $request['page']->accept(); + +} else { + if ($app['server']->isReadOnly()) + error(_('You cannot perform updates while server is in read-only mode'),'error','index.php'); + + $request['page']->setContainer(get_request('container','REQUEST')); + $request['page']->accept(); +} +?> diff --git a/lam/templates/3rdParty/pla/htdocs/update.php b/lam/templates/3rdParty/pla/htdocs/update.php new file mode 100644 index 00000000..5f31f28a --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/update.php @@ -0,0 +1,64 @@ +getIndex(),rawurlencode($request['dn']))); + + die(); +} + +if (! $request['dn'] || ! $app['server']->dnExists($request['dn'])) + error(sprintf(_('The entry (%s) does not exist.'),$request['dn']),'error','index.php'); + +$request['page'] = new PageRender($app['server']->getIndex(),get_request('template','REQUEST',false,'none')); +$request['page']->setDN($request['dn']); +$request['page']->accept(); +$request['template'] = $request['page']->getTemplate(); + +# Perform the modification +$result = $app['server']->modify($request['dn'],$request['template']->getLDAPmodify()); + +if ($result) { + # Fire the post modification event to the user's custom callback function. + $mustRelogin = false; + + foreach ($request['template']->getLDAPmodify() as $attr_name => $val) { + /* Was this a user's password modification who is currently + * logged in? If so, they need to logout and log back in + * with the new password. */ + if (($attr_name == 'userpassword') && + in_array($app['server']->getValue('login','auth_type'),array('cookie','session')) && + pla_compare_dns($app['server']->getLogin(),$request['dn']) === 0) + + $mustRelogin = true; + } + + $redirect_url = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s', + $app['server']->getIndex(),$request['template']->getDNEncode()); + + foreach ($request['template']->getLDAPmodify() as $attr => $junk) + $redirect_url .= sprintf('&modified_attrs[]=%s',$attr); + + if (get_request('meth','REQUEST') == 'ajax') + $redirect_url .= '&meth=ajax'; + + header("Location: $redirect_url"); + die(); +} +?> diff --git a/lam/templates/3rdParty/pla/htdocs/update_confirm.php b/lam/templates/3rdParty/pla/htdocs/update_confirm.php new file mode 100644 index 00000000..69735e22 --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/update_confirm.php @@ -0,0 +1,235 @@ +dnExists($request['dn'])) + error(sprintf(_('The entry (%s) does not exist.'),$request['dn']),'error','index.php'); + +$request['page'] = new PageRender($app['server']->getIndex(),get_request('template','REQUEST',false,'none')); +$request['page']->setDN($request['dn']); +$request['page']->accept(); +$request['template'] = $request['page']->getTemplate(); + +$request['page']->drawTitle(get_rdn($request['template']->getDN())); +$request['page']->drawSubTitle(); + +# Confirm the updates +if (count($request['template']->getLDAPmodify(true))) { + echo '
    '; + echo _('Do you want to make these changes?'); + echo '

    '; + echo '
    '; + + echo "\n\n"; + echo '
    '; + echo '
    '; + echo ''; + printf('',$app['server']->getIndex()); + printf('',$request['template']->getDNEncode(false)); + echo "\n"; + + $request['page']->drawHiddenAttributes(); + echo '
    '; + + echo ''; + echo "\n"; + + printf('', + _('Attribute'),_('Old value'),_('New value'),_('Skip')); + echo "\n\n"; + + # If we skip objectclass changes, but there are new must/may attrs provided by the new objectclass, they need to be skip. + $mustattrs = getMustAttrs($request['template']->getAttribute('objectclass')->getValues()); + + $counter = 0; + foreach ($request['template']->getLDAPmodify(true) as $attribute) { + $counter++; + + printf('',$counter%2 ? 'even' : 'odd'); + printf('',$attribute->getFriendlyName()); + + # Show OLD Values + echo ''; + + # Show NEW Values + echo ''; + + # Show SKIP Option + $input_disabled = ''; + $input_onclick = ''; + + if ($attribute->isForceDelete() || (in_array($attribute->getName(),$mustattrs)) && $request['template']->getAttribute('objectclass')->justModified()) + $input_disabled = 'disabled="disabled"'; + + if ($attribute->getName() == 'objectclass') { + $input_onclick = ''; + + # If there are attributes being force deleted... + if (count($request['template']->getForceDeleteAttrs()) > 0) { + $input_onclick = 'onclick="if (this.checked) {'; + + # And this OC is being skipped, then these attributes can be optionally deleted. + foreach ($request['template']->getForceDeleteAttrs() as $ad_name) { + # Only if it is not a must attr by this objectclass now staying + if (! in_array($ad_name->getName(),getMustAttrs($attribute->getOldValues()))) + $input_onclick .= sprintf("document.getElementById('skip_array_%s').disabled = false;",$ad_name->getName()); + + $input_onclick .= sprintf("document.getElementById('skip_array_%s').checked = true;",$ad_name->getName()); + $input_onclick .= "\n"; + } + + $input_onclick .= '} else {'; + + # Otherwise the attributes must be deleted. + foreach ($request['template']->getForceDeleteAttrs() as $ad_name) { + $input_onclick .= sprintf("document.getElementById('skip_array_%s').checked = false;",$ad_name->getName()); + $input_onclick .= sprintf("document.getElementById('skip_array_%s').disabled = true;",$ad_name->getName()); + $input_onclick .= "\n"; + } + + $input_onclick .= '};'; + } + + # If the attributes arent force deleted... + if ($input_onclick) + $input_onclick .= 'if (this.checked) {'; + else + $input_onclick = 'onclick="if (this.checked) {'; + + # IE: There are new objectclasses that result in new values. + foreach ($request['template']->getLDAPmodify(true) as $skipattr) { + if (! $skipattr->getOldValues()) { + if (! in_array($skipattr->getName(),$mustattrs)) + $input_onclick .= sprintf("document.getElementById('skip_array_%s').disabled = true;",$skipattr->getName()); + + $input_onclick .= sprintf("document.getElementById('skip_array_%s').checked = true;",$skipattr->getName()); + $input_onclick .= "\n"; + } + } + + $input_onclick .= '} else {'; + + foreach ($request['template']->getLDAPmodify(true) as $skipattr) { + if (! $skipattr->getOldValues()) { + if (! in_array($skipattr->getName(),$mustattrs)) + $input_onclick .= sprintf("document.getElementById('skip_array_%s').disabled = false;",$skipattr->getName()); + + $input_onclick .= sprintf("document.getElementById('skip_array_%s').checked = false;",$skipattr->getName()); + $input_onclick .= "\n"; + } + } + + $input_onclick .= '};"'; + } + + printf('', + htmlspecialchars($attribute->getName()),htmlspecialchars($attribute->getName()),$input_disabled,$input_onclick); + echo ''; + echo "\n\n"; + } + + echo '
    %s%s%s%s
    %s'; + + if (! $attribute->getOldValues()) + printf('[%s]',_('Attribute doesn\'t exist')); + + $dv = $attribute->getRemovedValues(); + foreach ($attribute->getOldValues() as $key => $value) { + # For multiple values, we'll highlight the changed ones + if ($x = ((count($attribute->getOldValues()) > 5) && count($attribute->getValues()) && in_array($value,$dv))) + echo ''; + + $request['page']->draw('OldValue',$attribute,$key); + + # For multiple values, close the highlighting + if ($x) + echo ''; + + echo '
    '; + } + + echo '
    '; + + if (! $attribute->getValueCount() || $attribute->isForceDelete()) + printf('[%s]',_('attribute deleted')); + + $dv = $attribute->getAddedValues(); + foreach ($attribute->getValues() as $key => $value) { + # For multiple values, we'll highlight the changed ones + if ($x = ((count($attribute->getValues()) > 5) && count($attribute->getOldValues()) && in_array($value,$dv))) + echo ''; + + $request['page']->draw('CurrentValue',$attribute,$key); + + # For multiple values, close the highlighting + if ($x) + echo ''; + + echo '
    '; + } + + echo '
    '; + + echo '
    '; + echo '
    '; + // @todo cant use AJAX here, it affects file uploads. + printf('', + _('Update object')); + + printf('', + _('Cancel'), + (isAjaxEnabled() ? sprintf('onclick="return ajDISPLAY(\'BODY\',\'cmd=template_engine&dn=%s\',\'%s\');"',htmlspecialchars($request['dn']),_('Retrieving DN')) : '')); + + echo '
    '; + echo '
    '; + echo '
    '; + +} else { + $href = sprintf('cmd=template_engine&server_id=%s&dn=%s', + $app['server']->getIndex(),$request['template']->getDNEncode()); + + echo '
    '; + echo _('You made no changes'); + + if (isAjaxEnabled()) + printf(' %s.', + htmlspecialchars($href),htmlspecialchars($href),_('Retrieving DN'),_('Go back')); + else + printf(' %s.',htmlspecialchars($href),_('Go back')); + + echo '
    '; +} + +function getMustAttrs($oclasses) { + global $app; + + $mustattrs = array(); + + foreach ($oclasses as $value) { + $soc = $app['server']->getSchemaObjectClass($value); + + if ($soc) + foreach ($soc->getMustAttrs() as $sma) + array_push($mustattrs,$sma->getName()); + } + + return $mustattrs; +} +?> diff --git a/lam/templates/3rdParty/pla/htdocs/view_jpeg_photo.php b/lam/templates/3rdParty/pla/htdocs/view_jpeg_photo.php new file mode 100644 index 00000000..d52501cc --- /dev/null +++ b/lam/templates/3rdParty/pla/htdocs/view_jpeg_photo.php @@ -0,0 +1,77 @@ +getDNAttrValues($request['dn'],null,LDAP_DEREF_NEVER,array($request['attr'])); + + break; +} + +if (! isset($jpeg_data[$request['attr']][$request['index']])) { + if (function_exists('imagecreate')) { + $im = imagecreate(160,30); + if (is_resource($im)) { + header('Content-type: image/png'); + + # Set the background + imagecolorallocatealpha($im,0xFC,0xFC,0xFE,127); + $text_color = imagecolorallocate($im,0,0,0); + imagestring($im,4,3,5,_('Image not available'),$text_color); + imagepng($im); + imagedestroy($im); + + die(); + } + } + + # We cant display an error, but we can set a system message, which will be display on the next page render. + system_message(array( + 'title'=>_('No image available'), + 'body'=>sprintf(_('Could not fetch jpeg data from LDAP server for attribute [%s].'),$request['attr']), + 'type'=>'warn')); + + die(); +} + +if (! is_array($jpeg_data[$request['attr']])) + $jpeg_data[$request['attr']] = array($jpeg_data[$request['attr']]); + +$obStatus = ob_get_status(); +if (isset($obStatus['type']) && $obStatus['type'] && $obStatus['status']) + ob_end_clean(); + +header(sprintf('Content-type: %s',$request['type'])); +header(sprintf('Content-disposition: inline; filename="%s"',$request['filename'])); +echo $jpeg_data[$request['attr']][$request['index']]; +die(); +?> diff --git a/lam/templates/3rdParty/pla/index.php b/lam/templates/3rdParty/pla/index.php new file mode 100644 index 00000000..716e6072 --- /dev/null +++ b/lam/templates/3rdParty/pla/index.php @@ -0,0 +1,11 @@ + diff --git a/lam/templates/3rdParty/pla/lib/AJAXTree.php b/lam/templates/3rdParty/pla/lib/AJAXTree.php new file mode 100644 index 00000000..300a9764 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/AJAXTree.php @@ -0,0 +1,307 @@ +" + * @param boolean $first_child is the first child entry, which is normally the "Create New Entry" option + * @param boolean $last_child is the last child entry, which is normally the "Create New Entry" option + */ + protected function draw_item($item,$level,$first_child=true,$last_child=true) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $server = $this->getServer(); + + # Level pre-treatment + $code = ''; + if (is_string($level)) { + for ($i=0; $i 0) + $code = '0' * $level; + + $level = strlen($code); + + # Get entry to display as node + $entry = $this->getEntry($item); + + # If the entry doesnt exist, we'll add it. + if (! $entry) { + $this->addEntry($item); + $entry = $this->getEntry($item); + } + + # If the entry doesnt exist in the server, then return here with an empty string. + if (! $entry) + return ''; + + # Get our children. + $child_count = $this->readChildrenNumber($entry->getDN()); + + $nb = 0; + if ($first_child) + $nb += 1; + if ($last_child) + $nb += 2; + + $imgs['expand'] = array('tree_expand.png','tree_expand.png','tree_expand_corner.png', + ($level > 0) ? 'tree_expand_corner.png' : 'tree_expand_corner_first.png'); + + $imgs['collapse'] = array('tree_collapse.png','tree_collapse.png','tree_collapse_corner.png', + ($level > 0) ? 'tree_collapse_corner.png' : 'tree_collapse_corner_first.png'); + + $imgs['tree'] = array('tree_split.png','tree_split.png','tree_corner.png','tree_corner.png'); + + /** Information on array[$nb] + * nb == 1 => the node is the first child + * nb == 2 => the node is the last child + * nb == 3 => the node is the unique child + * nb == 0 => the node is a child */ + $new_code = array('1','1','0','0'); + + # Links + $parms['openclose'] = htmlspecialchars(sprintf('server_id=%s&dn=%s&code=%s%s',$this->getServerID(),$entry->getDNEncode(),$code,$new_code[$nb])); + $parms['edit'] = htmlspecialchars(sprintf('cmd=template_engine&server_id=%s&dn=%s',$this->getServerID(),$entry->getDNEncode())); + $href = sprintf('cmd.php?%s',$parms['edit']); + + # Each node has a unique id based on dn + $node_id = sprintf('node%s',base64_encode(sprintf('%s-%s',$server->getIndex(),$entry->getDN()))); + $node_id = str_replace('=','_',$node_id); + + if ($level == 0) + printf('',$this->getDepth()+3-1); + + printf(''; + + printf('
    ',$node_id,($entry->isOpened() ? 'block' : 'none')); + if ($entry->isOpened()) + $this->draw_children($entry,$code.$new_code[$nb]); + + echo '
    '; + + if ($level == 0) + echo ''; + } + + /** + * Expand and draw a child entry, when it is clicked on. This is using AJAX just to render this section of the tree. + */ + public function draw_children($parent_entry,$code) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $children = array(); + + foreach ($parent_entry->getChildren() as $child) { + if (! $this->getEntry($child)) + $this->addEntry($child); + + array_push($children,$this->getEntry($child)); + } + + $first_child = $this->create_before_child($parent_entry,$code); + $last_child = $this->create_after_child($parent_entry,$code); + + # If compression is on, we need to compress this output - but only if called by draw_tree_node + if (function_exists('isCompress') && isCompress() && get_request('cmd','REQUEST') == 'draw_tree_node') + ob_start(); + + echo $first_child; + + for ($i=0; $idraw_item($children[$i]->getDN(),$code,$first,$last); + else + echo '
    problem getting DN entry from ldap'; + + echo "\n"; + } + + echo $last_child; + + # If compression is on, we need to compress this output + if (function_exists('isCompress') && isCompress() && get_request('cmd','REQUEST') == 'draw_tree_node') { + $output = ob_get_clean(); + echo gzencode($output); + } + } + + /** + * Return the indentation before a node + * + * @param $code a string of 0 and 1 ; $code == "000101" will return " | |" + */ + protected function get_indentation($code) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $indent = ''; + + for ($i=0; $i',IMGDIR); + break; + + case '1': + $indent .= sprintf('| ',IMGDIR); + break; + } + } + + return $indent; + } + + /** + * Draw the javascript to support the tree. + */ + protected function draw_javascript() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + parent::draw_javascript(); + printf('',JSDIR); + printf('',JSDIR); + } + + /** + * Draw the "Create New Entry" item before the children. + */ + private function create_before_child($entry,$level) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (strlen($level) == 0) + return ''; + + $server = $this->getServer(); + $output = ''; + + if (! $server->isReadOnly() && ! $entry->isLeaf() && (count($entry->getChildren()) > 10) && $this->getServer()->isShowCreateEnabled() + && $_SESSION[APPCONFIG]->getValue('appearance','show_top_create')) + $output = $this->draw_create_new_entry($entry,$level,IMGDIR.'/tree_split.png'); + + return $output; + } + + /** + * Draw the "Create New Entry" item after the children. + */ + private function create_after_child($entry,$level) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (strlen($level) == 0) + return ''; + + $server = $this->getServer(); + $output = ''; + + if (! $server->isReadOnly() && ! $entry->isLeaf() && $this->getServer()->isShowCreateEnabled()) + $output = $this->draw_create_new_entry($entry,$level,IMGDIR.'/tree_corner.png'); + + return $output; + } + + /** + * Draw the "Create New Entry" item. + */ + private function draw_create_new_entry($entry,$level,$img) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $output = ''; + + $href = sprintf('cmd=template_engine&server_id=%s&container=%s',$this->getServerID(),$entry->getDNEncode()); + + $output .= $this->get_indentation($level); + $output .= sprintf('--',$img); + $output .= sprintf('',htmlspecialchars($href),$entry->getDN()); + $output .= sprintf('->',IMGDIR); + $output .= ''; + $output .= ' '; + + if (isAjaxEnabled()) + $output .= sprintf('', + htmlspecialchars($href),_('Create new entry here'), + htmlspecialchars($href),_('Loading')); + else + $output .= sprintf('',htmlspecialchars($href),_('Create new entry here')); + + $output .= _('Create new entry here'); + $output .= ''; + + return $output; + } + + /** + * List the items in the tree that are open + * + * @return array List of open nodes + */ + public function listOpenItems() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $result = array(); + + foreach ($this->entries as $dn => $value) + if ($value->isOpened()) + array_push($result,$value->getDN()); + + return $result; + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/Attribute.php b/lam/templates/3rdParty/pla/lib/Attribute.php new file mode 100644 index 00000000..e1da5838 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/Attribute.php @@ -0,0 +1,917 @@ +getServer($server_id); + + $sattr = $server->getSchemaAttribute($name); + if ($sattr) { + $this->name = $sattr->getName(false); + $this->setLDAPdetails($sattr); + + } else + $this->name = $name; + + $this->source = $source; + + # XML attributes are shown by default + switch ($source) { + case 'XML': $this->show(); + $this->setXML($values); + + break; + + default: + if (! isset($values['values'])) + debug_dump_backtrace('no index "values"',1); + + $this->initValue($values['values']); + } + + # Should this attribute be hidden + if ($server->isAttrHidden($this->name)) + $this->forcehide = true; + + # Should this attribute value be read only + if ($server->isAttrReadOnly($this->name)) + $this->readonly = true; + + # Should this attribute value be unique + if ($server->isAttrUnique($this->name)) + $this->unique = true; + } + + /** + * Return the name of the attribute. + * + * @param boolean $lower - Return the attribute in normal or lower case (default lower) + * @param boolean $real - Return the real attribute name (with ;binary, or just the name) + * @return string Attribute name + */ + public function getName($lower=true,$real=false) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs,$this->name); + + if ($real) + return $lower ? strtolower($this->name) : $this->name; + else + return $lower ? strtolower($this->real_attr_name()) : $this->real_attr_name(); + } + + public function getValues() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->values); + + return $this->values; + } + + public function getOldValues() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->oldvalues); + + return $this->oldvalues; + } + + public function getValueCount() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs,$this->values); + + return count($this->values); + } + + public function getSource() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->source); + + return $this->source; + } + + /** + * Autovalue is called after the attribute is initialised, and thus the values from the ldap server will be set. + */ + public function autoValue($new_val) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($this->values) + return; + + $this->values = $new_val; + } + + public function initValue($new_val) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($this->values || $this->oldvalues) { + debug_dump(array('new_val'=>$new_val,'this'=>$this)); + debug_dump_backtrace('new and/or old values are set',1); + } + + $this->values = $new_val; + } + + public function clearValue() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->values = array(); + } + + public function setOldValue($val) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->oldvalues = $val; + } + + public function setValue($new_val) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($this->values) { + if ($this->values == $new_val) + return; + + if ($this->oldvalues) { + debug_dump($this); + debug_dump_backtrace('old values are set',1); + } else + $this->oldvalues = $this->values; + } + + if ($new_val == $this->values) + return; + + $this->values = $new_val; + $this->justModified(); + } + + public function addValue($new_val,$i=-1) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($i < 0) + $i = $this->getValueCount(); + + $old_val = $this->getValue($i); + if (is_null($old_val) || ($old_val != $new_val)) + $this->justModified(); + + $this->values[$i] = $new_val; + } + + public function delValue($i=-1) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($i < 0) + $this->setValue(array()); + + if (! $this->hasBeenModified()) + $this->oldvalues = $this->values; + + if (isset($this->values[$i])) { + unset($this->values[$i]); + $this->values = array_values($this->values); + $this->justModified(); + } + } + + public function getValue($i) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (isset($this->values[$i])) + return $this->values[$i]; + else + return null; + } + + public function getOldValue($i) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (isset($this->oldvalues[$i])) + return $this->oldvalues[$i]; + else + return null; + } + + public function getMinValueCount() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->min_value_count); + + return $this->min_value_count; + } + + public function setMinValueCount($min) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->min_value_count = $min; + } + + public function getMaxValueCount() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->max_value_count); + + return $this->max_value_count; + } + + public function setMaxValueCount($max) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->max_value_count = $max; + } + + public function haveMoreValues() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($this->getMaxValueCount() < 0 || ($this->getValueCount() < $this->getMaxValueCount())) + return true; + else + return false; + } + + public function justModified() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->modified = true; + } + + public function hasBeenModified() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->modified); + + return $this->modified; + } + + public function isForceDelete() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->forcedelete); + + return $this->forcedelete; + } + + public function setForceDelete() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->forcedelete = true; + $this->oldvalues = $this->values; + $this->values = array(); + $this->justModified(); + } + + public function isInternal() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->internal); + + return $this->internal; + } + + public function setInternal() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->internal = true; + } + + public function isRequired() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($this->getMinValueCount() > 0) + return true; + elseif ($this->ldaptype == 'must') + return true; + elseif ($this->isRDN()) + return true; + else + return false; + } + + public function isMay() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (($this->ldaptype == 'may') && ! $this->isRequired()) + return true; + else + return false; + } + + public function setType($type) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->type = strtolower($type); + } + + public function getType() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->type); + + return $this->type; + } + + public function setLDAPtype($type) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->ldaptype = strtolower($type); + } + + public function getLDAPtype() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->ldaptype); + + return $this->ldaptype; + } + + public function setProperties($properties) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + foreach ($properties as $index => $value) { + if ($index == 'maxvalnb') { + $this->setMaxValueCount($value); + continue; + + } elseif ($index == 'minvalnb') { + $this->setMinValueCount($value); + continue; + + } elseif ($index == 'maxlength') { + $this->setMinValueCount($value); + continue; + + } elseif ($index == 'hidden') { + $this->visible = $value; + continue; + + } elseif (in_array($index,array('cols','rows'))) { + # @todo To be implemented + continue; + } + + if (isset($this->$index)) + $this->$index = $value; + else { + debug_dump($this); + debug_dump_backtrace(sprintf('Unknown property (%s) with value (%s) for (%s)',$index,$value,$this->getName()),1); + } + } + } + + public function setRequired() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($this->getMinValueCount() <= 0) + $this->setMinValueCount(1); + } + + public function setOptional() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->setMinValueCount(0); + } + + public function isReadOnly() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->readonly); + + return $this->readonly; + } + + public function setReadOnly() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->readonly = true; + } + + public function isMultiple() { + return false; + } + + public function isVisible() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return $this->visible && (! $this->forcehide); + } + + public function hide() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->visible = false; + } + + public function show() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->visible = true; + } + + public function haveFriendlyName() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return $_SESSION[APPCONFIG]->haveFriendlyName($this); + } + + public function getFriendlyName() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->display); + + if ($this->display) + return $this->display; + else + return $_SESSION[APPCONFIG]->getFriendlyName($this); + } + + public function setDescription($description) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->description = $description; + } + + public function getDescription() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->description); + + return $this->description; + } + + public function setIcon($icon) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->icon = $icon; + } + + public function getIcon() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->icon); + + return $this->icon ? sprintf('%s/%s',IMGDIR,$this->icon) : ''; + } + + public function getHint() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->hint); + + return $this->hint; + } + + public function setHint($hint) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->hint = $hint; + } + + public function getMaxLength() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->maxlength); + + return $this->maxlength; + } + + public function setMaxLength($maxlength) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->maxlength = $maxlength; + } + + public function getSize() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->size); + + return $this->size; + } + + public function setSize($size) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->size = $size; + } + + public function getSpacer() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->spacer); + + return $this->spacer; + } + + public function getPage() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->page); + + return $this->page; + } + public function setPage($page) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->page = $page; + } + + public function getOnChange() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->onchange); + + return $this->onchange; + } + + public function getHelper() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->helper); + + return $this->helper; + } + + public function getHelperValue() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->helpervalue); + + return $this->helpervalue; + } + + public function getVerify() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->verify); + + return $this->verify; + } + + public function setRDN($rdn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->rdn = $rdn; + } + + /** + * Return if this attribute is an RDN attribute + * + * @return boolean + */ + public function isRDN() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs,$this->rdn); + + return $this->rdn; + } + + /** + * Capture all the LDAP details we are interested in + * + * @param sattr Schema Attribute + */ + private function setLDAPdetails($sattr) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # By default, set this as a MAY attribute, later processing should make it a MUST attribute if it is. + if (! $this->ldaptype) + $this->ldaptype = 'may'; + + # Store our Aliases + foreach ($sattr->getAliases() as $alias) + array_push($this->aliases,strtolower($alias)); + + if ($sattr->getIsSingleValue()) + $this->setMaxValueCount(1); + } + + /** + * Return a list of aliases for this Attribute (as defined by the schema) + * This list will be lowercase. + */ + public function getAliases() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->aliases); + + return $this->aliases; + } + + public function getAutoValue() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->autovalue); + + return $this->autovalue; + } + + public function getPostValue() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->postvalue); + + return $this->postvalue; + } + + public function setPostValue($postvalue) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->postvalue = $postvalue; + } + + public function setXML($values) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # Mostly all the time, this should be an array + if (is_array($values)) + foreach ($values as $index => $value) + switch ($index) { + # Helpers should be accompanied with a attribute. + case 'helper': + if (! isset($values['post']) && ! $_SESSION[APPCONFIG]->getValue('appearance','hide_template_warning')) + system_message(array( + 'title'=>sprintf('%s [%s]',('Missing [post] setting in XML file'),$index), + 'body'=>('[helper] needs an accompanying [post] action.'), + 'type'=>'warn')); + + if (isset($value['value']) && ! is_array($value['value']) && preg_match('/^=php\.(\w+)\((.*)\)$/',$value['value'],$matches)) { + $this->helpervalue['function'] = $matches[1]; + $this->helpervalue['args'] = $matches[2]; + + unset ($value['value']); + } + + foreach ($value as $i => $detail) { + if (! in_array($i,array('default','display','id','value'))) { + if (! $_SESSION[APPCONFIG]->getValue('appearance','hide_template_warning')) + system_message(array( + 'title'=>sprintf('%s [%s]',('Unknown XML setting'),$i), + 'body'=>sprintf('%s [%s]',('Unknown XML type setting for helper will be ignored.'),$detail), + 'type'=>'warn')); + + unset($value[$i]); + } + } + + $this->$index = $value; + + break; + + case 'hidden': $value ? $this->visible = false : $this->visible = true; + break; + + case 'spacer': $value ? $this->$index = true : $this->$index = false; + break; + + # Essentially, we ignore type, it is used to select an Attribute type in the Factory. But we'll generated a warning if there is an unknown type. + case 'type': + if (! in_array($value,array('password','multiselect','select','textarea')) && ! $_SESSION[APPCONFIG]->getValue('appearance','hide_template_warning')) + system_message(array( + 'title'=>sprintf('%s [%s]',('Unknown XML setting'),$index), + 'body'=>sprintf('%s [%s]',('Unknown XML type setting will be ignored.'),$value), + 'type'=>'warn')); + + break; + + case 'post': + if (preg_match('/^=php\.(\w+)\((.*)\)$/',$value,$matches)) { + $this->postvalue['function'] = $matches[1]; + $this->postvalue['args'] = $matches[2]; + + } else + if (! $_SESSION[APPCONFIG]->getValue('appearance','hide_template_warning')) + system_message(array( + 'title'=>sprintf('%s [%s]',('Unknown XML setting'),$index), + 'body'=>sprintf('%s [%s]',('Unknown XML type setting will be ignored.'),$value), + 'type'=>'warn')); + + case 'value': + if (is_array($value)) + foreach ($value as $y) { + if (! $this->haveMoreValues()) { + system_message(array( + 'title'=>('Automatically removed attribute values from template'), + 'body'=>sprintf('%s [%s]',('Template defines more values than can be accepted by attribute.'),$this->getName(true)), + 'type'=>'warn')); + + $this->clearValue(); + + break; + + } else + $this->addValue($y); + } + + else + # Check to see if the value is auto generated. + if (preg_match('/^=php\.(\w+)\((.*)\)$/',$value,$matches)) { + $this->autovalue['function'] = $matches[1]; + $this->autovalue['args'] = $matches[2]; + + # We'll add a hint too + if (! $this->hint) + $this->hint = ('Automatically determined'); + + } else + $this->addValue($value); + + break; + + # Queries + case 'ordersort': + + # Creation/Editing Templates + case 'cols': + case 'default': + case 'display': + case 'hint': + case 'icon': + case 'maxlength': + case 'onchange': + case 'order': + case 'page': + case 'readonly': + case 'rows': + case 'size': + case 'values': + case 'verify': $this->$index = $value; + break; + + case 'max': + if ($this->getMaxValueCount() == -1) + $this->setMaxValueCount($value); + + default: + if (! $_SESSION[APPCONFIG]->getValue('appearance','hide_template_warning')) + system_message(array( + 'title'=>sprintf('%s [%s]',('Unknown XML setting'),$index), + 'body'=>sprintf('%s [%s]',('Unknown attribute setting will be ignored.'),serialize($value)), + 'type'=>'warn')); + } + + elseif (is_string($values) && (strlen($values) > 0)) + $this->values = array($values); + } + + /** + * Display the values removed in an attribute. + */ + public function getRemovedValues() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return array_diff($this->getOldValues(),$this->getValues()); + } + + /** + * Display the values removed in an attribute. + */ + public function getAddedValues() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return array_diff($this->getValues(),$this->getOldValues()); + } + + /** + * Prunes off anything after the ";" in an attr name. This is useful for + * attributes that may have ";binary" appended to their names. With + * real_attr_name(), you can more easily fetch these attributes' schema + * with their "real" attribute name. + * + * @param string $attr_name The name of the attribute to examine. + * @return string + */ + private function real_attr_name() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->name); + + return preg_replace('/;.*$/U','',$this->name); + } + + /** + * Does this attribute need supporting JS + */ + public function needJS($type=null) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (is_null($type)) { + foreach (array('focus','blur','validate') as $type) + if ($this->needJS($type)) + return true; + + return false; + + } elseif ($type == 'focus') { + # We dont have any focus javascript routines. + return false; + + } elseif ($type == 'blur') { + if ($this->onchange || $this->isRequired()) + return true; + else + return false; + + } elseif ($type == 'validate') { + if ($this->isRequired()) + return true; + else + return false; + + } else + debug_dump_backtrace(sprintf('Unknown JS request %s',$type),1); + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/AttributeFactory.php b/lam/templates/3rdParty/pla/lib/AttributeFactory.php new file mode 100644 index 00000000..c1211e2d --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/AttributeFactory.php @@ -0,0 +1,188 @@ +getValue('appearance','hide_template_warning')) + system_message(array( + 'title'=>sprintf('%s [%s]',('Unknown template [post] function'),$matches[1]), + 'body'=>sprintf('%s [%s]',('The template function is not known and will be ignored.'),$values['post']), + 'type'=>'warn')); + + unset($values['post']); + } + } + } + + # Check our helper functions exists + if (isset($values['helper']['value']) && ! is_array($values['helper']['value'])) + if (preg_match('/^=php\.(\w+)\((.*)\)$/',$values['helper']['value'],$matches)) + if (! in_array($matches[1],array('GetNextNumber','PasswordEncryptionTypes'))) { + if (! $_SESSION[APPCONFIG]->getValue('appearance','hide_template_warning')) + system_message(array( + 'title'=>sprintf('%s [%s]',('Unknown template helper function'),$matches[1]), + 'body'=>sprintf('%s [%s]',('The template helper function is not known and will be ignored.'),$values['helper']['value']), + 'type'=>'warn')); + + unset($values['helper']['value']); + } + + # Check to see if the value is auto generated, our attribute type is dependant on the function called. + if (isset($values['value']) && ! is_array($values['value'])) { + if (preg_match('/^=php\.(\w+)\((.*)\)$/',$values['value'],$matches)) { + switch ($matches[1]) { + case 'MultiList': + if (! isset($values['type'])) + $values['type'] = 'multiselect'; + + case 'PickList': + return $this->newSelectionAttribute($name,$values,$server_id,$source); + + case 'RandomPassword': + return $this->newRandomPasswordAttribute($name,$values,$server_id,$source); + + # Fall through and determine the attribute using other methods. + case 'GetNextNumber': + case 'Function' : + break; + + default: + if (! $_SESSION[APPCONFIG]->getValue('appearance','hide_template_warning')) + system_message(array( + 'title'=>sprintf('%s [%s]',('Unknown template function'),$matches[1]), + 'body'=>sprintf('%s [%s]',('The template function is not known and will be ignored.'),$values['value']), + 'type'=>'warn')); + + unset($values['value']); + } + } + } + + if (isset($values['type'])) + switch ($values['type']) { + case 'password': + if (! strcasecmp($name,'sambaLMPassword') || ! strcasecmp($name,'sambaNTPassword')) + return $this->newSambaPasswordAttribute($name,$values,$server_id,$source); + else + return $this->newPasswordAttribute($name,$values,$server_id,$source); + + case 'multiselect': + case 'select': + return $this->newSelectionAttribute($name,$values,$server_id,$source); + + case 'textarea': + return $this->newMultiLineAttribute($name,$values,$server_id,$source); + } + + if (! strcasecmp($name,'objectClass')) { + return $this->newObjectClassAttribute($name,$values,$server_id,$source); + + } elseif ($app['server']->isJpegPhoto($name) || in_array($name,$app['server']->getValue('server','jpeg_attributes'))) { + return $this->newJpegAttribute($name,$values,$server_id,$source); + + } elseif ($app['server']->isAttrBinary($name)) { + return $this->newBinaryAttribute($name,$values,$server_id,$source); + + } elseif (! strcasecmp($name,'userPassword')) { + return $this->newPasswordAttribute($name,$values,$server_id,$source); + + } elseif (! strcasecmp($name,'sambaLMPassword') || ! strcasecmp($name,'sambaNTPassword')) { + return $this->newSambaPasswordAttribute($name,$values,$server_id,$source); + + } elseif (in_array(strtolower($name),array_keys(array_change_key_case($_SESSION[APPCONFIG]->getValue('appearance','date_attrs'))))) { + return $this->newDateAttribute($name,$values,$server_id,$source); + + } elseif (in_array(strtolower($name),array('shadowlastchange','shadowmin','shadowmax','shadowexpire','shadowwarning','shadowinactive'))) { + return $this->newShadowAttribute($name,$values,$server_id,$source); + + } elseif ($app['server']->isAttrBoolean($name)) { + $attribute = $this->newSelectionAttribute($name,$values,$server_id,$source); + $attribute->addOption('TRUE',_('true')); + $attribute->addOption('FALSE',_('false')); + return $attribute; + + } elseif ($app['server']->isDNAttr($name)) { + return $this->newDnAttribute($name,$values,$server_id,$source); + + } elseif ($app['server']->isMultiLineAttr($name)) { + return $this->newMultiLineAttribute($name,$values,$server_id,$source); + + } elseif (! strcasecmp($name,'gidNumber')) { + return $this->newGidAttribute($name,$values,$server_id,$source); + + } else { + return new Attribute($name,$values,$server_id,$source); + } + } + + private function newJpegAttribute($name,$values,$server_id,$source) { + return new JpegAttribute($name,$values,$server_id,$source); + } + + private function newBinaryAttribute($name,$values,$server_id,$source) { + return new BinaryAttribute($name,$values,$server_id,$source); + } + + private function newPasswordAttribute($name,$values,$server_id,$source) { + return new PasswordAttribute($name,$values,$server_id,$source); + } + + private function newSambaPasswordAttribute($name,$values,$server_id,$source) { + return new SambaPasswordAttribute($name,$values,$server_id,$source); + } + + private function newRandomPasswordAttribute($name,$values,$server_id,$source) { + return new RandomPasswordAttribute($name,$values,$server_id,$source); + } + + private function newShadowAttribute($name,$values,$server_id,$source) { + return new ShadowAttribute($name,$values,$server_id,$source); + } + + private function newSelectionAttribute($name,$values,$server_id,$source) { + return new SelectionAttribute($name,$values,$server_id,$source); + } + + private function newMultiLineAttribute($name,$values,$server_id,$source) { + return new MultiLineAttribute($name,$values,$server_id,$source); + } + + private function newDateAttribute($name,$values,$server_id,$source) { + return new DateAttribute($name,$values,$server_id,$source); + } + + private function newObjectClassAttribute($name,$values,$server_id,$source) { + return new ObjectClassAttribute($name,$values,$server_id,$source); + } + + private function newDnAttribute($name,$values,$server_id,$source) { + return new DnAttribute($name,$values,$server_id,$source); + } + + private function newGidAttribute($name,$values,$server_id,$source) { + return new GidAttribute($name,$values,$server_id,$source); + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/BinaryAttribute.php b/lam/templates/3rdParty/pla/lib/BinaryAttribute.php new file mode 100644 index 00000000..6b5053be --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/BinaryAttribute.php @@ -0,0 +1,60 @@ +filepaths = array(); + $this->filenames = array(); + } + + public function getFileNames() { + return $this->filenames; + } + + public function getFileName($i) { + if (isset($this->filenames[$i])) return $this->filenames[$i]; + else return null; + } + + public function addFileName($name, $i = -1) { + if ($i < 0) { + $this->filenames[] = $name; + } else { + $this->filenames[$i] = $name; + } + } + + public function getFilePaths() { + return $this->filepaths; + } + + public function getFilePath($i) { + if (isset($this->filepaths[$i])) return $this->filepaths[$i]; + else return null; + } + + public function addFilePath($path, $i = -1) { + if ($i < 0) { + $this->filepaths[] = $path; + } else { + $this->filepaths[$i] = $path; + } + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/DateAttribute.php b/lam/templates/3rdParty/pla/lib/DateAttribute.php new file mode 100644 index 00000000..e1a687f2 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/DateAttribute.php @@ -0,0 +1,17 @@ + diff --git a/lam/templates/3rdParty/pla/lib/DnAttribute.php b/lam/templates/3rdParty/pla/lib/DnAttribute.php new file mode 100644 index 00000000..1f5c02f4 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/DnAttribute.php @@ -0,0 +1,17 @@ + diff --git a/lam/templates/3rdParty/pla/lib/GidAttribute.php b/lam/templates/3rdParty/pla/lib/GidAttribute.php new file mode 100644 index 00000000..7442a079 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/GidAttribute.php @@ -0,0 +1,17 @@ + diff --git a/lam/templates/3rdParty/pla/lib/HTMLTree.php b/lam/templates/3rdParty/pla/lib/HTMLTree.php new file mode 100644 index 00000000..f331d2c6 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/HTMLTree.php @@ -0,0 +1,588 @@ +getServer(); + + echo ''; + if (! $onlytree) + $this->draw_server_name(); + + $this->javascript = ''; + $javascript_id = 0; + + /* Do we have what it takes to authenticate here, or do we need to + * present the user with a login link (for 'cookie' and 'session' auth_types)? + */ + if ($server->isLoggedIn(null)) { + if (! $onlytree) { + $this->draw_menu(); + + if ($server->getAuthType() != 'config') + $this->draw_logged_in_user(); + else + printf('',$this->getDepth()+3); + + if ($server->isReadOnly()) + printf('',$this->getDepth()+3-1,_('read only')); + else + printf('',$this->getDepth()+3); + + printf(''; + + echo '
     
    (%s)
     
     
    ', + $_SESSION[APPCONFIG]->getValue('appearance','tree_width') ? sprintf('width: %spx; ',$_SESSION[APPCONFIG]->getValue('appearance','tree_width')) : '', + $_SESSION[APPCONFIG]->getValue('appearance','tree_height') ? sprintf('height: %spx; ',$_SESSION[APPCONFIG]->getValue('appearance','tree_height')) : '', + $server->getIndex()); + } + + echo ''; + + if (! count($this->getBaseEntries())) { + # We didnt get any baseDN entries in our tree? + printf('', + $this->getDepth()+3-2, + ('Could not determine the root of your LDAP tree.'), + ('It appears that the LDAP server has been configured to not reveal its root.'), + ('Please specify it in config.php')); + + echo '
    %s
    %s
    %s
    '; + + if (! $onlytree) + echo '
    '; + return; + } + + /** + * Check if the LDAP server is not yet initialized + * (ie, the base DN configured in config.php does not exist) + */ + foreach ($this->getBaseEntries() as $base) { + if (! $base->isInLDAP()) { + $js_drawn = false; + $javascript_id++; + + $rdn = explode('=',get_rdn($base->getDN())); + printf('%s', + IMGDIR,$this->getDepth()+3-3,pretty_print_dn($base->getDN())); + + $this->javascript .= sprintf('
    ',$server->getIndex(),$javascript_id); + $this->javascript .= '
    '; + $this->javascript .= ''; + $this->javascript .= sprintf('',$server->getIndex()); + $this->javascript .= sprintf('',htmlspecialchars($server->getContainer($base->getDN()))); + $this->javascript .= sprintf('',get_rdn($base->getDN())); + $this->javascript .= sprintf('',$rdn[0]); + $this->javascript .= sprintf('',$rdn[0],$rdn[1]); + $this->javascript .= ''; + $this->javascript .= ''; + $this->javascript .= '
    '; + $this->javascript .= sprintf('
    '); + + if (preg_match('/,/',$base->getDN())) + printf('%s', + $this->getDepth()+3-3,('This base cannot be created with PLA.')); + else + printf('%s %s', + $this->getDepth()+3-3,('This base entry does not exist.'),$server->getIndex(),$javascript_id,('Create it?')); + + } else { + $this->draw_item($base->getDN(),-1); + } + } + + echo ''; + + if (! $onlytree) + echo '
    '; + + # We are not logged in, draw a login... link. + } else { + switch ($server->getAuthType()) { + case 'cookie': + case 'http': + case 'session': + $this->draw_login_link(); + break; + + case 'config': + case 'proxy': + case 'sasl': + break; + + default: + die(sprintf('Error: %s hasnt been configured for auth_type %s',__METHOD__,$server->getAuthType())); + } + } + + # Tree Footer. + echo ''; + echo "\n\n"; + + if (! $js_drawn) { + $this->draw_javascript(); + $js_drawn = true; + } + } + + /** + * Draw the server name + */ + protected function draw_server_name() { + return; + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $server = $this->getServer(); + + echo ''; + printf('%s',IMGDIR,_('Server')); + printf('',$this->getDepth()+3-1); + printf('%s',$server->getName()); + + if (! is_null($server->inactivityTime())) { + $m = sprintf(('Inactivity will log you off at %s'), + strftime('%H:%M',$server->inactivityTime())); + printf(' %s',IMGDIR,$m,'Timeout'); + } + echo ''; + } + + /** + * Draw the tree menu options + */ + protected function draw_menu() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $links = ''; + + if (is_array($_SESSION[APPCONFIG]->getValue('menu','session'))) + foreach ($_SESSION[APPCONFIG]->getValue('menu','session') as $link => $title) { + if ($this->get_menu_item($link)) + $links .= sprintf('%s',$this->get_menu_item($link)); + } + + # Finally add our logout link. + $links .= sprintf('%s',$this->get_logout_menu_item()); + + # Draw the quick-links below the server name: + if ($links) { + printf('',$this->getDepth()+3-1); + printf('%s
    ',$links); + echo ''; + } + } + + /** + * Get the HTML for each tree menu option + */ + protected function get_menu_item($item) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $server = $this->getServer(); + $menu = array(); + + switch($item) { + case 'schema': + if (! $_SESSION[APPCONFIG]->isCommandAvailable('script','schema')) + return ''; + + $menu['cmd'] = 'schema'; + $menu['ajax'] = ('Loading Schema'); + $menu['div'] = 'BODY'; + $menu['title'] = ('View schema for'); + $menu['img'] = 'schema-big.png'; + $menu['name'] = ('schema'); + + break; + + case 'search': + if (! $_SESSION[APPCONFIG]->isCommandAvailable('script','query_engine')) + return ''; + + $menu['cmd'] = 'query_engine'; + $menu['ajax'] = _('Loading search'); + $menu['div'] = 'BODY'; + $menu['title'] = _('Search'); + $menu['img'] = 'search-big.png'; + $menu['name'] = _('search'); + + break; + + case 'refresh': + if (! $_SESSION[APPCONFIG]->isCommandAvailable('script','refresh')) + return ''; + + $menu['cmd'] = 'refresh'; + $menu['href'] = '&noheader=1&purge=1'; + $menu['ajax'] = _('Refreshing tree'); + $menu['div'] = sprintf('SID_%s_nodes',$server->getIndex()); + $menu['title'] = _('Refresh'); + $menu['img'] = 'refresh-big.png'; + $menu['name'] = _('refresh'); + + break; + + case 'server_info': + if (! $_SESSION[APPCONFIG]->isCommandAvailable('script','server_info')) + return ''; + + $menu['cmd'] = 'server_info'; + $menu['ajax'] = ('Loading Info'); + $menu['div'] = 'BODY'; + $menu['title'] = ('Info'); + $menu['img'] = 'info-big.png'; + $menu['name'] = ('info'); + + break; + + case 'monitor': + if (! $_SESSION[APPCONFIG]->isCommandAvailable('script','monitor')) + return ''; + + $attrs = $server->getRootDSE(); + if (! $attrs || ! isset($attrs['monitorcontext'])) + return ''; + + $menu['cmd'] = 'monitor'; + $menu['ajax'] = ('Loading Monitor Info'); + $menu['div'] = 'BODY'; + $menu['title'] = ('Monitor'); + $menu['img'] = 'monitorserver-big.png'; + $menu['name'] = ('monitor'); + + break; + + case 'import': + if (! $_SESSION[APPCONFIG]->isCommandAvailable('script','import_form') || ! $_SESSION[APPCONFIG]->isCommandAvailable('script','import') || $server->isReadOnly()) + return ''; + + $menu['cmd'] = 'import_form'; + $menu['ajax'] = _('Loading import'); + $menu['div'] = 'BODY'; + $menu['title'] = _('Import'); + $menu['img'] = 'import-big.png'; + $menu['name'] = _('import'); + + break; + + case 'export': + if (! $_SESSION[APPCONFIG]->isCommandAvailable('script','export_form') || ! $_SESSION[APPCONFIG]->isCommandAvailable('script','export')) + return ''; + + $menu['cmd'] = 'export_form'; + $menu['ajax'] = _('Loading export'); + $menu['div'] = 'BODY'; + $menu['title'] = _('Export'); + $menu['img'] = 'export-big.png'; + $menu['name'] = _('export'); + + break; + + default: + return false; + } + + $href_parms = htmlspecialchars(sprintf('cmd=%s&server_id=%s%s',$menu['cmd'],$server->getIndex(),isset($menu['href']) ? $menu['href'] : '')); + + if (isAjaxEnabled()) + return sprintf('%s
    %s
    ', + $href_parms,$menu['div'],$href_parms,$menu['ajax'],$menu['title'],$server->getName(),IMGDIR,$menu['img'],$menu['name'],$menu['name']); + else + return sprintf('%s
    %s
    ', + $href_parms,$menu['title'],$server->getName(),IMGDIR,$menu['img'],$menu['name'],$menu['name']); + } + + protected function get_logout_menu_item() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $server = $this->getServer(); + $href = sprintf('cmd.php?cmd=logout&server_id=%s',$server->getIndex()); + + if (! $_SESSION[APPCONFIG]->isCommandAvailable('script','logout') || in_array($server->getAuthType(),array('config','http','proxy'))) + return ''; + else + return sprintf('%s
    %s
    ', + htmlspecialchars($href),('Logout of this server'),IMGDIR,'logout-big.png',('logout'),('logout')); + } + + /** + * Draw the Logged in User + */ + protected function draw_logged_in_user() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $server = $this->getServer(); + + $logged_in_dn = $server->getLogin(null); + echo ''; + echo ''; + printf('%s: ',$this->getDepth()+3-1,('Logged in as')); + + if ($server->getContainerTop($logged_in_dn) == $logged_in_dn) { + $logged_in_branch = ''; + $logged_in_dn_array = array(); + + } else { + $logged_in_branch = preg_replace('/,'.$server->getContainerTop($logged_in_dn).'$/','',$logged_in_dn); + $logged_in_dn_array = pla_explode_dn($logged_in_branch); + } + + $bases = $server->getContainerTop($logged_in_dn); + if (is_array($bases) && count($bases)) + array_push($logged_in_dn_array,$bases); + + $rdn = $logged_in_dn; + + # Some sanity checking here, in case our DN doesnt look like a DN + if (! is_array($logged_in_dn_array)) + $logged_in_dn_array = array($logged_in_dn); + + if (trim($logged_in_dn)) { + if ($server->dnExists($logged_in_dn)) + foreach ($logged_in_dn_array as $rdn_piece) { + $href = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s',$server->getIndex(),rawurlencode($rdn)); + printf('%s',htmlspecialchars($href),pretty_print_dn($rdn_piece)); + + if ($rdn_piece != end($logged_in_dn_array)) + echo ','; + + $rdn = substr($rdn,(1 + strpos($rdn,','))); + } + + else + echo $logged_in_dn; + + } else { + echo 'Anonymous'; + } + + echo ''; + echo ''; + } + + /** + * Recursively descend on the given dn and draw the tree in html + * + * @param dn $dn Current dn. + * @param int $level Level to start drawing (start to -1) + */ + protected function draw_item($item,$level) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $server = $this->getServer(); + + # Get entry to display as node + $entry = $this->getEntry($item); + + # If the entry doesnt exist, we'll add it. + if (! $entry) { + $this->addEntry($item); + $entry = $this->getEntry($item); + } + + # If the entry doesnt exist in the server, then return here with an empty string. + if (! $entry) + return; + + # Get our children. + $child_count = $this->readChildrenNumber($item); + + $rdn = get_rdn($item); + $dnENCODE = rawurlencode($item); + $href['expand'] = htmlspecialchars(sprintf('cmd.php?cmd=expand&server_id=%s&dn=%s',$server->getIndex(),$dnENCODE)); + $href['collapse'] = htmlspecialchars(sprintf('cmd.php?cmd=collapse&server_id=%s&dn=%s',$server->getIndex(),$dnENCODE)); + $href['edit'] = htmlspecialchars(sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s',$server->getIndex(),$dnENCODE)); + + echo ''; + printf('',$level+2); + + # Is this node expanded? (deciding whether to draw "+" or "-") + if ($entry->isOpened()) + if (! $child_count && ! $this->getServer()->isShowCreateEnabled()) + printf('-',IMGDIR); + else + printf('-',$href['collapse'],IMGDIR); + else + if (($child_count !== false) && (! $child_count) && (! $this->getServer()->isShowCreateEnabled())) + printf('-',IMGDIR); + else + printf('+',$href['expand'],IMGDIR); + + printf('img', + $href['edit'],$server->getIndex(),preg_replace('/=/','_',base64_encode($item)),IMGDIR,$entry->getIcon()); + + printf('',$this->getDepth()+3-$level); + printf('%s',$href['edit'],$this->get_formatted_dn($entry,$level)); + + if ($child_count) + printf(' (%s)',$child_count); + + echo ''; + + if ($entry->isOpened()) { + /* Draw the "create new" link at the top of the tree list if there are more than 10 + * entries in the listing for this node. + */ + if (!$server->isReadOnly() && (count($entry->getChildren()) > 10) + && $this->getServer()->isShowCreateEnabled()) { + + $this->draw_create_link($rdn,$level,$dnENCODE); + } + + foreach ($entry->getChildren() as $dnChildEntry) + $this->draw_item($dnChildEntry,$level+1); + + # Always draw the "create new" link at the bottom of the listing + if (! $server->isReadOnly() && ! $entry->isLeaf() && $this->getServer()->isShowCreateEnabled()) { + $this->draw_create_link($rdn,$level,$dnENCODE); + } + } + + if (DEBUG_ENABLED) + debug_log('Leaving (%s,%s)',33,0,__FILE__,__LINE__,__METHOD__,$item,$level); + } + + protected function get_formatted_dn($entry,$level) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($level < 0) + return pretty_print_dn($entry->getDN()); + else + return draw_formatted_dn($this->getServer(),$entry); + } + + /** + * Print the HTML to show the "create new entry here". + * + * @param dn $rdn + * @param int $level + * @param dn $encoded_dn + */ + protected function draw_create_link($rdn,$level,$encoded_dn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # print the "Create New object" link. + $href = htmlspecialchars(sprintf('cmd.php?cmd=template_engine&server_id=%s&container=%s',$this->getServerID(),$encoded_dn)); + + echo ''; + printf('',$level+3); + printf('%s',$href,IMGDIR,_('new')); + printf('%s', + $this->getDepth()+3-$level,$href,_('Create new entry here'),_('Create new entry here')); + echo ''; + } + + /** + * Draw login link + */ + protected function draw_login_link() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $server = $this->getServer(); + $href_parm = htmlspecialchars(sprintf('cmd=%s&server_id=%s',get_custom_file($server->getIndex(),'login_form',''),$server->getIndex())); + + echo ''; + + if (isAjaxEnabled()) { + printf('%s', + $href_parm,$href_parm,('Loading Login'),('Login to'),$server->getName(),IMGDIR,'login.png',('login')); + printf('%s', + $this->getDepth()+3-2,$href_parm,$href_parm,('Loading Login'),('Login to'),$server->getName(),('login')); + + } else { + printf('%s',$href_parm,IMGDIR,'login.png',_('login')); + printf('%s...',$this->getDepth()+3-2,$href_parm,_('Login')); + } + + echo ''; + + printf(' ',$this->getDepth()+3); + printf(' ',$this->getDepth()+3); + } + + /** + * If there is javascript, draw it + */ + protected function draw_javascript() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($this->javascript) { + echo "\n"; + echo $this->javascript; + echo "\n"; + $this->javascript = ''; + } + } + + /** + * Work out how deep the "opened" tree is. + */ + public function getDepth() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $server = $this->getServer(); + + # If we are not logged in + if (! $server->isLoggedIn(null)) + return 0; + + static $depths = array(); + + if (! isset($depths[$server->getIndex()])) { + $max = 0; # BaseDN are open, so we start at 1. + + foreach ($this->entries as $dn) { + $basedepth = count(pla_explode_dn($server->getContainerPath($dn->getDN(),'/'))); + $depth = 0; + + $depth = count(pla_explode_dn($dn->getDN()))+1-$basedepth; + + if ($depth > $max) + $max = $depth; + } + + $depths[$server->getIndex()] = $max; + } + + return $depths[$server->getIndex()]; + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/JpegAttribute.php b/lam/templates/3rdParty/pla/lib/JpegAttribute.php new file mode 100644 index 00000000..d4400480 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/JpegAttribute.php @@ -0,0 +1,17 @@ + diff --git a/lam/templates/3rdParty/pla/lib/MassRender.php b/lam/templates/3rdParty/pla/lib/MassRender.php new file mode 100644 index 00000000..f0bf67e5 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/MassRender.php @@ -0,0 +1,48 @@ +%s
    ',__METHOD__); + + $val = $attribute->getValue($i); + + if ($attribute->getHelper()) + echo '
    '; + + printf('', + $j,htmlspecialchars($attribute->getName()),$i, + $j,htmlspecialchars($attribute->getName()),$i, + htmlspecialchars($val), + $attribute->needJS('focus') ? sprintf('onfocus="focus_%s(this);" ',$attribute->getName()) : '', + $attribute->needJS('blur') ? sprintf('onblur="blur_%s(this);" ',$attribute->getName()) : '', + ($attribute->getSize() > 0) ? sprintf('size="%s"',$attribute->getSize()) : '', + ($attribute->getMaxLength() > 0) ? sprintf('maxlength="%s"',$attribute->getMaxLength()) : ''); + + if ($attribute->getHelper()) { + echo ''; + $this->draw('AttributeHelper',$attribute,$i); + echo '
    '; + } + } + + protected function drawMassFormReadWriteValueBinaryAttribute($attribute,$i,$j) { + $this->drawFormReadWriteValueBinaryAttribute($attribute,$i); + } + + protected function drawMassFormReadWriteValueJpegAttribute($attribute,$i,$j) { + $this->drawFormReadOnlyValueJpegAttribute($attribute,$i); + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/MultiLineAttribute.php b/lam/templates/3rdParty/pla/lib/MultiLineAttribute.php new file mode 100644 index 00000000..b6d0eb52 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/MultiLineAttribute.php @@ -0,0 +1,35 @@ +rows; + } + + public function setRows($rows) { + $this->rows = $rows; + } + + public function getCols() { + return $this->cols; + } + + public function setCols($cols) { + $this->cols = $cols; + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/ObjectClassAttribute.php b/lam/templates/3rdParty/pla/lib/ObjectClassAttribute.php new file mode 100644 index 00000000..939094dc --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/ObjectClassAttribute.php @@ -0,0 +1,17 @@ + diff --git a/lam/templates/3rdParty/pla/lib/PageRender.php b/lam/templates/3rdParty/pla/lib/PageRender.php new file mode 100644 index 00000000..66dd177b --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/PageRender.php @@ -0,0 +1,1209 @@ +server_id = $server_id; + $this->template_id = $template_id; + } + + /** + * Dummy method... + */ + protected function visitAttribute() {} + + /** + * Get our templates applicable for this object + */ + protected function getTemplates() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return new Templates($this->server_id); + } + + public function getTemplate() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return $this->template; + } + + public function getTemplateID() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return $this->template->getID(); + } + + /** + * Initialise the PageRender + */ + public function accept() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s:%s
    ',time(),__METHOD__); + + if ($this->template_id) { + $templates = $this->getTemplates(); + $this->template = $templates->getTemplate($this->template_id); + + if ($this->dn) + $this->template->setDN($this->dn); + elseif ($this->container) + $this->template->setContainer($this->container); + + $this->template->accept(); + + # Process our actions + if (get_request('post_value','REQUEST')) + foreach (get_request('post_value','REQUEST') as $attr => $values) { + $attribute = $this->template->getAttribute($attr); + + if (! $attribute) + debug_dump_backtrace(sprintf('There was a post_value for an attribute [%s], but it doesnt exist?',$attr),1); + + foreach ($values as $index) + if ($attribute->getPostValue()) + $this->get('Post',$attribute,$index); + else + $this->get('AutoPost',$attribute,$index); + } + + foreach ($this->template->getAttributes(true) as $attribute) { + if (DEBUGTMP||DEBUGTMPSUB) printf('* %s [Accept:%s]
    ',__METHOD__,get_class($attribute)); + + $this->visit('',$attribute); + } + } + } + + public function drawTitle($title='Title') { + printf('

    %s

    ',$title); + } + + public function drawSubTitle($subtitle=null) { + if (is_null($subtitle)) + $subtitle = sprintf('%s: %s', + _('DN'),$this->dn); + + printf('

    %s

    ',$subtitle); + } + + public function setDN($dn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($this->container) + system_message(array( + 'title'=>__METHOD__, + 'body'=>'CONTAINER set while setting DN', + 'type'=>'info')); + + $this->dn = $dn; + } + + public function setContainer($dn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($this->dn) + system_message(array( + 'title'=>__METHOD__, + 'body'=>'DN set while setting CONTAINER', + 'type'=>'info')); + + $this->container = $dn; + } + + /** + * May be overloaded in other classes + */ + protected function getMode() {} + protected function getModeContainer() {} + + /** + * Process our arguments from the templates + */ + protected function getPostAttribute($attribute,$i) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $autovalue = $attribute->getPostValue(); + $args = explode(';',$autovalue['args']); + $server = $this->getServer(); + $vals = $attribute->getValues(); + + switch ($autovalue['function']) { + /** + * Join will concatenate values with a string, similiar to explode() + * eg: =php.Join(-;%sambaSID%,%sidsuffix%) + * + * * arg 0 + * - character to use when joining the attributes + * + * * arg 1 + * - values to concatenate together. we'll explode %attr% values. + */ + case 'Join': + preg_match_all('/%(\w+)(\|.+)?(\/[lU])?%/U',$args[1],$matchall); + $matchattrs = $matchall[1]; + $char = $args[0]; + + $values = array(); + $blank = 0; + foreach ($matchattrs as $joinattr) { + $attribute2 = $this->template->getAttribute($joinattr); + + if (! $attribute2) { + if (($pv = get_request(strtolower($joinattr),'REQUEST')) && isset($pv[$attribute->getName()][$i])) { + array_push($values,$pv[$attribute->getName()][$i]); + + if (! $pv[$attribute->getName()][$i]) + $blank++; + + } else { + array_push($values,''); + $blank++; + } + + } elseif (count($attribute2->getValues()) == 0) { + return; + + } elseif (count($attribute2->getValues()) != 1) { + array_push($values,''); + $blank++; + + system_message(array( + 'title'=>('Invalid value count for [post] processing'), + 'body'=>sprintf('%s (%s [%s])',('Function() variable expansion can only handle 1 value'), + $attribute->getName(false),count($attribute->getValues())), + 'type'=>'warn')); + + } else + array_push($values,$attribute2->getValue(0)); + } + + # If all our value expansion results in blanks, we'll return no value + if (count($matchattrs) == $blank) + if (count($vals) > 1) + $vals[$i] = null; + else + $vals = null; + + else + $vals[$i] = implode($char,$values); + + break; + + /** + * PasswordEncrypt will encrypt a password + * eg: =php.PasswordEncrypt(%enc%;%userPassword%) + * + * This function will encrypt the users password "userPassword" using the "enc" method. + */ + case 'PasswordEncrypt': + if (count($args) != 2) { + system_message(array( + 'title'=>('Invalid argument count for PasswordEncrypt'), + 'body'=>sprintf('%s (%s)',('PasswordEncrypt() only accepts two arguments'),$autovalue['args']), + 'type'=>'warn')); + + return; + } + + if (! $attribute->hasBeenModified()) + return; + + # Get the attribute. + if (preg_match_all('/%(\w+)(\|.+)?(\/[lU])?%/U',strtolower($args[1]),$matchall)) { + if (count($matchall[1]) != 1) + system_message(array( + 'title'=>('Invalid value count for PasswordEncrypt'), + 'body'=>sprintf('%s (%s)',('Unable to get the attribute value for PasswordEncrypt()'),count($matchall[1])), + 'type'=>'warn')); + + $passwordattr = $matchall[1][0]; + $passwordvalue = $_REQUEST['new_values'][$passwordattr][$i]; + + } else + $passwordvalue = $args[1]; + + if (! trim($passwordvalue) || in_array($passwordvalue,$attribute->getOldValues())) + return; + + # Get the encoding + if ($passwordattr && preg_match_all('/%(\w+)(\|.+)?(\/[lU])?%/U',strtolower($args[0]),$matchall)) { + if (count($matchall[1]) != 1) + system_message(array( + 'title'=>('Invalid value count for PasswordEncrypt'), + 'body'=>sprintf('%s (%s)',('Unable to get the attribute value for PasswordEncrypt()'),count($matchall[1])), + 'type'=>'warn')); + + $enc = $_REQUEST[$matchall[1][0]][$passwordattr][$i]; + + } else + $enc = $args[0]; + + $enc = strtolower($enc); + + switch ($enc) { + case 'lm': + $sambapassword = new smbHash; + $vals[$i] = $sambapassword->lmhash($passwordvalue); + + break; + + case 'nt': + $sambapassword = new smbHash; + $vals[$i] = $sambapassword->nthash($passwordvalue); + + break; + + default: + $vals[$i] = pla_password_hash($passwordvalue,$enc); + } + + $vals = array_unique($vals); + + break; + + default: + $vals = $this->get('AutoPost',$attribute,$i); + } + + if (! $vals || $vals == $attribute->getValues()) + return; + + $attribute->clearValue(); + + if (! is_array($vals)) + $attribute->setValue(array($vals)); + else + $attribute->setValue($vals); + } + + /** + * This function is invoked if we dont know which template we should be using. + * + * @return string Template ID to be used or null if the user was presented with a list. + */ + protected function getTemplateChoice() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + # First work out our template + $templates = $this->getTemplates(); + $template = $templates->getTemplate($this->template_id); + + # If the template we asked for is available + if ($this->template_id === $template->getID()) { + if (DEBUGTMP) printf('%s:%s
    ',__METHOD__,'Choosing the SELECTED template'); + + return $this->template_id; + + # If there are no defined templates + } elseif (count($templates->getTemplates($this->getMode(),$this->getModeContainer(),false)) <= 0) { + if (DEBUGTMP) printf('%s:%s
    ',__METHOD__,'Choosing the DEFAULT template, no other template applicable'); + + # Since getTemplate() returns a default template if the one we want doesnt exist, we can return $templates->getID(), it should be the default. + return $template->getID(); + + # If there is only 1 defined template, and no default available, then that is our template. + } elseif ((count($templates->getTemplates($this->getMode(),$this->getModeContainer(),true)) == 1) && ! $this->haveDefaultTemplate()) { + if (DEBUGTMP) printf('%s:%s
    ',__METHOD__,'AUTOMATIC choosing a template, only 1 template applicable'); + + $template = $templates->getTemplates($this->getMode(),$this->getModeContainer(),true); + $template = array_shift($template); + + # Dont render the only available template if it is invalid. + if (! $template->isInvalid()) + return $template->getID(); + else + $this->drawTemplateChoice(); + + } else { + if (DEBUGTMP) printf('%s:%s
    ',__METHOD__,'SELECT a template to use.'); + + # Propose the template choice + $this->drawTemplateChoice(); + } + + # If we got here, then there wasnt a template. + return null; + } + + /** DRAW ATTRIBUTE NAME **/ + + final protected function drawNameAttribute($attribute) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $href = sprintf('cmd.php?cmd=schema&server_id=%s&view=attributes&viewvalue=%s', + $this->getServerID(),$attribute->getName()); + + if (! $_SESSION[APPCONFIG]->getValue('appearance','show_schema_link')) + printf('%s',_($attribute->getFriendlyName())); + + elseif ($attribute->getLDAPtype()) + printf('%s', + htmlspecialchars($href), + ('Click to view the schema definition for attribute type'),$attribute->getName(false),_($attribute->getFriendlyName())); + else + printf('%s',_('This attribute is not defined in the LDAP schema'),_($attribute->getFriendlyName())); + + if (DEBUGTMPSUB) printf(' [%s]',get_class($attribute)); + } + + /** ATTRIBUTE NOTES */ + + protected function drawNotesAttribute($attribute) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $attr_note = ''; + + foreach (array('NoteAlias','NoteRequired','NoteRDN','NoteHint','NoteRO') as $note) { + $alias_note = $this->get($note,$attribute); + + if ($alias_note) { + if (trim($attr_note)) + $attr_note .= ', '; + + $attr_note .= $alias_note; + } + } + + if ($attr_note) + printf('%s',$attr_note); + } + + protected function getNoteAliasAttribute($attribute) { + return ''; + } + + #@todo this function shouldnt re-calculate requiredness, it should be known in the template already - need to set the ldaptype when initiating the attribute. + protected function getNoteRequiredAttribute($attribute) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $required_by = ''; + $sattr_required = ''; + + # Is this attribute required by an objectClass ? + $sattr = $this->getServer()->getSchemaAttribute($attribute->getName()); + if ($sattr) + $sattr_required = $sattr->getRequiredByObjectClasses(); + + if ($sattr_required) { + $oc = $this->template->getAttribute('objectclass'); + + if ($oc) + foreach ($oc->getValues() as $objectclass) { + # If this objectclass is in our required list + if (in_array_ignore_case($objectclass,$sattr_required)) { + $required_by .= sprintf('%s ',$objectclass); + continue; + } + + # If not, see if it is in our parent. + $sattr = $this->getServer()->getSchemaObjectClass($objectclass); + + if (array_intersect($sattr->getParents(),$sattr_required)) + $required_by .= sprintf('%s ',$objectclass); + } + + else + debug_dump_backtrace('How can there be no objectclasses?',1); + } + + if ($required_by) + return sprintf('%s',_('Required attribute for object classes'),$required_by,_('required')); + else + return ''; + } + + protected function getNoteRDNAttribute($attribute) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + # Is this attribute required because its the RDN + if ($attribute->isRDN()) + return sprintf('rdn',_('This attribute is required for the RDN.')); + else + return ''; + } + + protected function getNoteHintAttribute($attribute) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + # Is there a hint for this attribute + if ($attribute->getHint()) + return sprintf('%s',_($attribute->getHint()),_('hint')); + else + return ''; + } + + protected function getNoteROAttribute($attribute) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + return ''; + } + /** DRAW HIDDEN VALUES **/ + + /** + * Draw all hidden attributes + */ + final public function drawHiddenAttributes() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + foreach ($this->template->getAttributes(true) as $attribute) + if ($attribute->hasbeenModified()) { + if ($attribute->getValues()) + foreach ($attribute->getValues() as $index => $details) + $this->draw('HiddenValue',$attribute,$index); + + # We are deleting this attribute, so we need to display an empty value + else + $this->draw('HiddenValue',$attribute,0); + } + } + + /** + * Draw specific hidden attribute + */ + final protected function drawHiddenValueAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $val = $attribute->getValue($i); + + printf('', + htmlspecialchars($attribute->getName()),$i,htmlspecialchars($attribute->getName()),$i, + htmlspecialchars($val)); + } + + /** DRAW DISPLAYED OLD VALUES **/ + protected function drawOldValuesAttribute($attribute) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + foreach ($attribute->getValues() as $index => $details) + $this->draw('OldValue',$attribute,$index); + } + + final protected function drawOldValueAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + echo $attribute->getOldValue($i); + } + + /** DRAW DISPLAYED CURRENT VALUES **/ + + protected function drawCurrentValuesAttribute($attribute) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + for ($i=0;$i<$attribute->getValueCount();$i++) { + if ($i > 0) + echo '
    '; + + $this->draw('CurrentValue',$attribute,$i); + } + } + + /** + * Draw the current specific value of an attribute + */ + final protected function drawCurrentValueAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + if (DEBUGTMPSUB) printf(' [%s]',__METHOD__); + + echo htmlspecialchars($attribute->getValue($i)); + } + + /** + * Draw a input value for an attribute - used in a form. + */ + protected function drawFormValueAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + if (DEBUGTMPSUB) printf(' [%s]',__METHOD__); + + if ($this->getServer()->isReadOnly() || $attribute->isReadOnly() + || ($attribute->isRDN() && $this->template->getType() != 'creation' && $i < count($attribute->getValues()))) + + $this->draw('FormReadOnlyValue',$attribute,$i); + else + $this->draw('FormReadWriteValue',$attribute,$i); + + # Show the ADDVALUE DIV if the attribute can have more values, and we have rendered the last value + if ($attribute->haveMoreValues() && $attribute->getValueCount() == $i+1) + printf('
    ',$attribute->getName()); + + if ($attribute->getPostValue()) + printf('',$attribute->getName(),$i); + } + + protected function drawFormReadOnlyValueAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $val = $attribute->getValue($i); + + printf('', + htmlspecialchars($attribute->getName()),$i,htmlspecialchars($attribute->getName()),$i,htmlspecialchars($val)); + } + + protected function drawFormReadWriteValueAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $val = $attribute->getValue($i); + + if ($attribute->getHelper() || $attribute->getVerify()) + echo ''; + + } elseif ($attribute->getVerify()) + echo ''; + + if ($attribute->getVerify()) { + printf(''; + } + + if ($attribute->getHelper() || $attribute->getVerify()) + echo '
    '; + + printf('', + htmlspecialchars($attribute->getName()),$i, + htmlspecialchars($attribute->getName()),$i, + htmlspecialchars($val), + $attribute->needJS('focus') ? sprintf('onfocus="focus_%s(this);" ',$attribute->getName()) : '', + $attribute->needJS('blur') ? sprintf('onblur="blur_%s(this);" ',$attribute->getName()) : '', + ($attribute->getSize() > 0) ? sprintf('size="%s"',$attribute->getSize()) : '', + ($attribute->getMaxLength() > 0) ? sprintf('maxlength="%s"',$attribute->getMaxLength()) : ''); + + if ($attribute->getHelper()) { + echo ''; + $this->draw('AttributeHelper',$attribute,$i); + echo '
    ', + htmlspecialchars($attribute->getName()),$i, + htmlspecialchars($attribute->getName()),$i, + ($attribute->getSize() > 0) ? sprintf('size="%s"',$attribute->getSize()) : '', + ($attribute->getMaxLength() > 0) ? sprintf('maxlength="%s"',$attribute->getMaxLength()) : ''); + + echo ''; + printf('(%s)',_('confirm')); + echo '
    '; + } + + /** + * Draw specific hidden binary attribute + */ + final protected function drawHiddenValueBinaryAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $val = $attribute->getValue($i); + + printf('', + htmlspecialchars($attribute->getName()),$i,base64_encode($val)); + } + + final protected function drawOldValueBinaryAttribute($attribute,$i) { + # If we dont have a value, we'll just return; + if (! $attribute->getOldValue($i)) + return; + + printf('[%s]',_('Binary value')); + } + + final protected function drawCurrentValueBinaryAttribute($attribute,$i) { + printf('[%s]',_('Binary value')); + + if (in_array($attribute->getName(),array('objectsid'))) + printf(' (%s)', binSIDtoText($attribute->getValue(0))); + } + + protected function drawFormReadOnlyValueBinaryAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $this->draw('CurrentValue',$attribute,$i); + echo '

    '; + + $href = sprintf('download_binary_attr.php?server_id=%s&dn=%s&attr=%s&index=%s', + $this->getServerID(),rawurlencode($this->template->getDN()),$attribute->getName(),$i); + + printf('Save %s', + htmlspecialchars($href),IMGDIR,_('download value')); + + echo '
    '; + } + + protected function drawFormReadWriteValueBinaryAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + if ($attribute->getValue($i)) { + $this->draw('FormReadOnlyValue',$attribute,$i); + + if (! $attribute->isReadOnly() && $_SESSION[APPCONFIG]->isCommandAvailable('script','delete_attr')) + printf('Trash %s', + $attribute->getName(),$attribute->getFriendlyName(),$i,IMGDIR,_('delete attribute')); + + } else { + printf('
    ', + htmlspecialchars($attribute->getName()),$i, + htmlspecialchars($attribute->getName()),$i, + $attribute->needJS('focus') ? sprintf('onfocus="focus_%s(this);" ',$attribute->getName()) : '', + $attribute->needJS('blur') ? sprintf('onblur="blur_%s(this);" ',$attribute->getName()) : '', + ($attribute->getSize() > 0) ? 'size="'.$attribute->getSize().'"' : '', + ($attribute->getMaxLength() > 0) ? 'maxlength="'.$attribute->getMaxLength().'"' : ''); + } + } + + protected function drawFormReadWriteValueDateAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $val = $attribute->getValue($i); + + echo ''; + printf(' ', + $attribute->getName(),$i, + htmlspecialchars($attribute->getName()),$i,htmlspecialchars($val), + $attribute->needJS('focus') ? sprintf('onfocus="focus_%s(this);" ',$attribute->getName()) : '', + $attribute->needJS('blur') ? sprintf('onblur="blur_%s(this);" ',$attribute->getName()) : '', + ($attribute->getSize() > 0) ? sprintf('size="%s"',$attribute->getSize()) : '', + ($attribute->getMaxLength() > 0) ? sprintf('maxlength="%s"',$attribute->getMaxLength()) : ''); + + $this->draw('SelectorPopup',$attribute,$i); + echo ''."\n"; + } + + protected function drawFormReadWriteValueDnAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $val = $attribute->getValue($i); + + if ($attribute->getHelper()) + echo '
    '; + + $input_name = sprintf('new_values[%s][%s]',htmlspecialchars($attribute->getName()),$i); + $id = sprintf('new_values_%s_%s',htmlspecialchars($attribute->getName()),$i); + + printf(' ', + $input_name,$id,htmlspecialchars($val), + $attribute->needJS('focus') ? sprintf('onfocus="focus_%s(this);" ',$attribute->getName()) : '', + $attribute->needJS('blur') ? sprintf('onblur="blur_%s(this);" ',$attribute->getName()) : '', + ($attribute->getSize() > 0) ? 'size="'.$attribute->getSize().'"' : '', + ($attribute->getMaxLength() > 0) ? 'maxlength="'.$attribute->getMaxLength().'"' : ''); + + # Draw a link for popping up the entry browser if this is the type of attribute that houses DNs. + draw_chooser_link('entry_form',$id,false); + echo ''; + + if ($attribute->getHelper()) { + echo ''; + $this->draw('Helper',$attribute,$i); + echo '
    '; + } + + echo "\n"; + } + + protected function drawFormReadWriteValueGidAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $this->drawFormReadWriteValueAttribute($attribute,$i); + + $server = $this->getServer(); + $val = $attribute->getValue($i); + + # If this is a gidNumber on a non-PosixGroup entry, lookup its name and description for convenience + if ($this->template->getDN() && ! in_array_ignore_case('posixGroup',$this->getServer()->getDNAttrValue($this->template->getDN(),'objectclass'))) { + $query['filter'] = sprintf('(&(objectClass=posixGroup)(gidNumber=%s))',$val); + $query['attrs'] = array('dn','description'); + + # Reorganise our base, so that our base is first + $bases = array_unique(array_merge(array($server->getContainerTop($this->template->getDN())),$server->getBaseDN())); + + # Search our bases, until we find a match. + foreach ($bases as $base) { + $query['base'] = $base; + $group = $this->getServer()->query($query,null); + + if (count($group) > 0) { + echo '
    '; + + $group = array_pop($group); + $group_dn = $group['dn']; + $group_name = explode('=',get_rdn($group_dn)); + $group_name = $group_name[1]; + $href = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s', + $this->getServerID(),rawurlencode($group_dn)); + + echo ''; + printf('%s',htmlspecialchars($href),$group_name); + + $description = isset($group['description']) ? $group['description'] : null; + + if (is_array($description)) + foreach ($description as $item) + printf(' (%s)',$item); + else + printf(' (%s)',$description); + + echo ''; + + break; + } + } + } + } + + /** + * Draw a Jpeg Attribute + */ + final protected function drawOldValueJpegAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + if (DEBUGTMPSUB) printf(' [%s]',__METHOD__); + + # If we dont have a value, we'll just return; + if (! $attribute->getOldValue($i)) + return; + + draw_jpeg_photo($this->getServer(),$this->template->getDN(),$attribute->getName(),$i,false,false); + } + + /** + * Draw a Jpeg Attribute + */ + final protected function drawCurrentValueJpegAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + if (DEBUGTMPSUB) printf(' [%s]',__METHOD__); + + # If we dont have a value, we'll just return; + if (! $attribute->getValue($i)) + return; + + # If the attribute is modified, the new value needs to be stored in a session variable for the draw_jpeg_photo callback. + if ($attribute->hasBeenModified()) { + $_SESSION['tmp'][$attribute->getName()][$i] = $attribute->getValue($i); + draw_jpeg_photo(null,$this->template->getDN(),$attribute->getName(),$i,false,false); + } else + draw_jpeg_photo($this->getServer(),$this->template->getDN(),$attribute->getName(),$i,false,false); + } + + protected function drawFormReadOnlyValueJpegAttribute($attribute,$i) { + $this->draw('HiddenValue',$attribute,$i); + $_SESSION['tmp'][$attribute->getName()][$i] = $attribute->getValue($i); + + draw_jpeg_photo(null,$this->template->getDN(),$attribute->getName(),$i,false,false); + } + + protected function drawFormReadOnlyValueMultiLineAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $val = $attribute->getValue($i); + + printf('', + ($attribute->getRows() > 0) ? $attribute->getRows() : 5, + ($attribute->getCols() > 0) ? $attribute->getCols() : 100, + htmlspecialchars($attribute->getName()),$i, + htmlspecialchars($attribute->getName()),$i, + $val); + } + + protected function drawFormReadWriteValueMultiLineAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $val = $attribute->getValue($i); + + printf('', + ($attribute->getRows() > 0) ? $attribute->getRows() : 5, + ($attribute->getCols() > 0) ? $attribute->getCols() : 100, + htmlspecialchars($attribute->getName()),$i, + htmlspecialchars($attribute->getName()),$i, + $attribute->needJS('focus') ? sprintf('onfocus="focus_%s(this);" ',$attribute->getName()) : '', + $attribute->needJS('blur') ? sprintf('onblur="blur_%s(this);" ',$attribute->getName()) : '', + $val); + } + + protected function drawFormValueObjectClassAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $val = $attribute->getValue($i); + + /* It seems that openLDAP allows us to remove additional structural objectclasses + however other LDAP servers, dont remove them (even if we ask them to). */ + # Do we have our internal attributes. + $internal = $this->template->getAttribute('structuralobjectclass'); + + if ($internal) { + $structural = in_array_ignore_case($val,$internal->getValues()); + + # We'll work it out the traditional way. + } else { + # If this schema structural? + $schema_object = ($val) ? $this->getServer()->getSchemaObjectClass($val) : false; + $structural = (is_object($schema_object) && $schema_object->getType() == 'structural'); + } + + if ($structural) { + $this->draw('FormReadOnlyValue',$attribute,$i); + + printf(' (%s)', + _('This is a structural ObjectClass and cannot be removed.'), + _('structural')); + + } else + $this->draw('FormReadWriteValue',$attribute,$i); + } + + protected function getAutoPostPasswordAttribute($attribute,$i) { + # If the password is already encoded, then we'll return + if (preg_match('/^\{.+\}.+/',$attribute->getValue($i))) + return; + + $attribute->setPostValue(array('function'=>'PasswordEncrypt','args'=>sprintf('%%enc%%;%%%s%%',$attribute->getName()))); + $this->get('Post',$attribute,$i); + } + + protected function drawOldValuePasswordAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + if (DEBUGTMPSUB) printf(' [%s]',__METHOD__); + + $val = $attribute->getOldValue($i); + + if (obfuscate_password_display(get_enc_type($val))) + echo str_repeat('*',16); + else + echo nl2br(htmlspecialchars($attribute->getOldValue($i))); + } + + final protected function drawCurrentValuePasswordAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + if (DEBUGTMPSUB) printf(' [%s]',__METHOD__); + + $val = $attribute->getValue($i); + + if (obfuscate_password_display(get_enc_type($val))) + echo str_repeat('*',16); + else + echo nl2br(htmlspecialchars($attribute->getValue($i))); + } + + protected function drawFormReadOnlyValuePasswordAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $server = $this->getServer(); + $val = $attribute->getValue($i); + + if (trim($val)) + $enc_type = get_enc_type($val); + else + $enc_type = $server->getValue('appearance','password_hash'); + + $obfuscate_password = obfuscate_password_display($enc_type); + + printf('
    ', + ($obfuscate_password ? 'password' : 'text'), + htmlspecialchars($attribute->getName()),$i,htmlspecialchars($attribute->getName()), + $i,htmlspecialchars($val),($attribute->getSize() > 0) ? 'size="'.$attribute->getSize().'"' : ''); + + if (trim($val)) + $this->draw('CheckLink',$attribute,'new_values_'.htmlspecialchars($attribute->getName()).'_'.$i); + } + + protected function drawFormReadWriteValuePasswordAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $server = $this->getServer(); + $val = $attribute->getValue($i); + + $enc_type = get_enc_type($val); + + # Set the default hashing type if the password is blank (must be newly created) + if (trim($val)) + $enc_type = get_enc_type($val); + else + $enc_type = $server->getValue('appearance','password_hash'); + + echo '
    '; + + $obfuscate_password = obfuscate_password_display($enc_type); + $id = sprintf('new_values_%s_%s',htmlspecialchars($attribute->getName()),$i); + + printf('', + ($obfuscate_password ? 'password' : 'text'), + htmlspecialchars($attribute->getName()),$i,$id, + htmlspecialchars($val), + $attribute->needJS('focus') ? sprintf('onfocus="focus_%s(this);" ',$attribute->getName()) : '', + $attribute->needJS('blur') ? sprintf('onblur="blur_%s(this);" ',$attribute->getName()) : '', + ($attribute->getSize() > 0) ? sprintf('size="%s"',$attribute->getSize()) : '', + ($attribute->getMaxLength() > 0) ? sprintf('maxlength="%s"',$attribute->getMaxLength()) : ''); + + echo ''; + + if ($attribute->getHelper()) + $this->draw('Helper',$attribute,$i); + else + $this->draw('DefaultHelper',$attribute,$i); + + echo '
    '; + + if ($attribute->getVerify() && $obfuscate_password) { + printf('', + htmlspecialchars($attribute->getName()),$i, + htmlspecialchars($attribute->getName()),$i, + ($attribute->getSize() > 0) ? sprintf('size="%s"',$attribute->getSize()) : '', + ($attribute->getMaxLength() > 0) ? sprintf('maxlength="%s"',$attribute->getMaxLength()) : ''); + + echo ''; + printf('(%s)',_('confirm')); + echo '
    '; + } + + $this->draw('CheckLink',$attribute,$id); + echo '
    '; + } + + protected function drawFormReadWriteValueSelectionAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + if ($attribute->isMultiple()) { + # For multiple selection, we draw the component only one time + if ($i > 0) + return; + + $selected = array(); + $vals = $attribute->getValues(); + $j = 0; + + if (! $vals && ! is_null($attribute->getDefault()) && ! is_array($vals = $attribute->getDefault())) + $vals = array($attribute->getDefault()); + + if (($attribute->getSize() > 0) && ($attribute->getSize() < $attribute->getOptionCount())) { + + printf(''; + + } else { + echo ''; + + foreach ($attribute->getSelection() as $value => $description) { + if (in_array($value,$vals)) + $selected[$value] = true; + + printf('', + htmlspecialchars($attribute->getName()),$j++, + htmlspecialchars($attribute->getName()),$value, + $attribute->needJS('focus') ? sprintf('onfocus="focus_%s(this);" ',$attribute->getName()) : '', + $attribute->needJS('blur') ? sprintf('onblur="blur_%s(this);" ',$attribute->getName()) : '', + isset($selected[$value]) ? 'checked="checked"' : '', + $description); + } + + foreach ($vals as $val) + if (! isset($selected[$val])) + printf('', + htmlspecialchars($attribute->getName()),$j++, + htmlspecialchars($attribute->getName()),$val, + $attribute->needJS('focus') ? sprintf('onfocus="focus_%s(this);" ',$attribute->getName()) : '', + $attribute->needJS('blur') ? sprintf('onblur="blur_%s(this);" ',$attribute->getName()) : '', + $val); + + echo '
     %s
     %s
    '; + } + + # This is a single value attribute + } else { + $val = $attribute->getValue($i) ? $attribute->getValue($i) : $attribute->getDefault(); + + if ($attribute->getHelper()) + echo '
    '; + + $found = false; + $empty_value = false; + + # If we are a required attribute, and the selection is blank, then the user cannot submit this form. + if ($attribute->isRequired() && ! count($attribute->getSelection())) + system_message(array( + 'title'=>('Template Value Error'), + 'body'=>sprintf('This template uses a selection list for attribute [%s], however the selection list is empty.
    You may need to create some dependancy entries in your LDAP server so that this attribute renders with values. Alternatively, you may be able to define the appropriate selection values in the template file.',$attribute->getName(false)), + 'type'=>'warn')); + + printf(''; + + if ($attribute->getHelper()) { + echo '
    '; + $this->draw('Helper',$attribute,$i); + echo '
    '; + } + } + } + + /** + * Takes a shadow* attribute and returns the date as an integer. + * + * @param array Attribute objects + * @param string A shadow attribute name + */ + private function shadow_date($attribute) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $shadowattr = array(); + $shadowattr['lastchange'] = $this->template->getAttribute('shadowlastchange'); + $shadowattr['max'] = $this->template->getAttribute('shadowmax'); + + $shadow = array(); + $shadow['lastchange'] = $shadowattr['lastchange'] ? $shadowattr['lastchange']->getValue(0) : null; + $shadow['max'] = $shadowattr['max'] ? $shadowattr['max']->getValue(0) : null; + + if (($attribute->getName() == 'shadowlastchange') && $shadow['lastchange']) + $shadow_date = $shadow['lastchange']; + + elseif (($attribute->getName() == 'shadowmax') && ($shadow['max'] > 0) && $shadow['lastchange']) + $shadow_date = $shadow['lastchange']+$shadow['max']; + + elseif (($attribute->getName() == 'shadowwarning') && ($attribute->getValue(0) > 0) + && $shadow['lastchange'] && $shadow['max'] && $shadow['max'] > 0) + $shadow_date = $shadow['lastchange']+$shadow['max']-$attribute->getValue(0); + + elseif (($attribute->getName() == 'shadowinactive') && ($attribute->getValue(0) > 0) + && $shadow['lastchange'] && $shadow['max'] && $shadow['max'] > 0) + $shadow_date = $shadow['lastchange']+$shadow['max']+$attribute->getValue(0); + + elseif (($attribute->getName() == 'shadowmin') && ($attribute->getValue(0) > 0) && $shadow['lastchange']) + $shadow_date = $shadow['lastchange']+$attribute->getValue(0); + + elseif (($attribute->getName() == 'shadowexpire') && ($attribute->getValue(0) > 0)) + $shadow_date = $shadowattr->getValue(0); + + # Couldn't interpret the shadow date (could be 0 or -1 or something) + else + return false; + + return $shadow_date*24*3600; + } + + protected function drawShadowDateShadowAttribute($attribute) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $shadow_before_today_attrs = arrayLower($attribute->shadow_before_today_attrs); + $shadow_after_today_attrs = arrayLower($attribute->shadow_after_today_attrs); + $shadow_date = $this->shadow_date($attribute); + + if (! $shadow_date) + return; + + $today = date('U'); + + echo '
    '; + if (($today < $shadow_date) && in_array(strtolower($attribute->getName()),$shadow_before_today_attrs)) + printf('(%s)', + strftime($_SESSION[APPCONFIG]->getValue('appearance','date'),$shadow_date)); + + elseif (($today > $shadow_date) && in_array(strtolower($attribute->getName()),$shadow_after_today_attrs)) + printf('(%s)', + strftime($_SESSION[APPCONFIG]->getValue('appearance','date'),$shadow_date)); + + else + printf('(%s)', + strftime($_SESSION[APPCONFIG]->getValue('appearance','date'),$shadow_date)); + + echo '
    '; + } + + protected function drawFormReadOnlyValueShadowAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $this->drawFormReadOnlyValueAttribute($attribute,$i); + $this->draw('ShadowDate',$attribute); + } + + protected function drawFormReadWriteValueShadowAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $this->drawFormReadWriteValueAttribute($attribute,$i); + $this->draw('ShadowDate',$attribute); + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/PasswordAttribute.php b/lam/templates/3rdParty/pla/lib/PasswordAttribute.php new file mode 100644 index 00000000..2667197d --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/PasswordAttribute.php @@ -0,0 +1,17 @@ + diff --git a/lam/templates/3rdParty/pla/lib/Query.php b/lam/templates/3rdParty/pla/lib/Query.php new file mode 100644 index 00000000..3260de24 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/Query.php @@ -0,0 +1,283 @@ +getServer(); + + foreach ($xmldata['query'] as $xml_key => $xml_value) { + if (DEBUG_ENABLED) + debug_log('Foreach loop Key [%s] Value [%s]',4,0,__FILE__,__LINE__,__METHOD__,$xml_key,is_array($xml_value)); + + switch ($xml_key) { + + # Build our attribute list from the DN and Template. + case ('attributes'): + if (DEBUG_ENABLED) + debug_log('Case [%s]',4,0,__FILE__,__LINE__,__METHOD__,$xml_key); + + if (is_array($xmldata['query'][$xml_key])) { + foreach ($xmldata['query'][$xml_key] as $tattrs) { + foreach ($tattrs as $index => $details) { + + if (DEBUG_ENABLED) + debug_log('Foreach tattrs Key [%s] Value [%s]',4,0,__FILE__,__LINE__,__METHOD__, + $index,$details); + + # If there is no schema definition for the attribute, it will be ignored. + if ($sattr = $server->getSchemaAttribute($index)) { + if (is_null($attribute = $this->getAttribute($sattr->getName()))) + $attribute = $this->addAttribute($sattr->getName(false),array('values'=>array())); + + $attribute->show(); + $attribute->setXML($details); + } + } + } + } + + break; + + # Build our bases list from the DN and Template. + case ('bases'): + if (isset($xmldata['query'][$xml_key]['base'])) + if (is_array($xmldata['query'][$xml_key]['base'])) + $this->base = $xmldata['query'][$xml_key]['base']; + else + $this->base = array($xmldata['query'][$xml_key]['base']); + else + error(sprintf(('In the XML file (%s), [%s] contains an unknown key.'), + $this->filename,$xml_key),'error','index.php'); + + $this->base = array_unique($this->base); + break; + + default: + if (DEBUG_ENABLED) + debug_log('Case [%s]',4,0,__FILE__,__LINE__,__METHOD__,$xml_key); + + # Some key definitions need to be an array, some must not be: + $allowed_arrays = array(''); + $storelower = array(''); + $storearray = array(''); + + # Items that must be stored lowercase + if (in_array($xml_key,$storelower)) + if (is_array($xml_value)) + foreach ($xml_value as $index => $value) + $xml_value[$index] = strtolower($value); + else + $xml_value = strtolower($xml_value); + + # Items that must be stored as arrays + if (in_array($xml_key,$storearray) && ! is_array($xml_value)) + $xml_value = array($xml_value); + + # Items that should not be an array + if (! in_array($xml_key,$allowed_arrays) && is_array($xml_value)) { + debug_dump(array(__METHOD__,'key'=>$xml_key,'value'=>$xml_value)); + error(sprintf(('In the XML file (%s), [%s] is an array, it must be a string.'), + $this->filename,$xml_key),'error'); + } + + $this->$xml_key = $xml_value; + } + } + + # Check we have some manditory items. + foreach (array() as $key) { + if (! isset($this->$key) + || (! is_array($this->$key) && ! trim($this->$key))) { + + $this->setInvalid(sprintf(('Missing %s in the XML file.'),$key)); + break; + } + } + } + + /** + * Accept will run the query and store the results in results() + */ + public function accept() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $server = $this->getServer(); + + $query = array(); + $query['size_limit'] = get_request('size_limit','REQUEST',false,$_SESSION[APPCONFIG]->getValue('search','size_limit')); + $query['format'] = get_request('format','REQUEST',false,$_SESSION[APPCONFIG]->getValue('search','display')); + $query['orderby'] = get_request('orderby','REQUEST',false,'dn'); + + # If this is a custom search, we need to populate are paramters + if ($this->getID() == 'none') { + $bases = get_request('base','REQUEST',false,null); + $query['filter'] = get_request('filter','REQUEST',false,'objectClass=*'); + $query['scope'] = get_request('scope','REQUEST',false,'sub'); + $attrs = get_request('display_attrs','REQUEST'); + + $attrs = preg_replace('/\s+/','',$attrs); + if ($attrs) + $query['attrs'] = explode(',',$attrs); + else + $query['attrs'] = array('*'); + + } else { + $bases = $this->base; + $query['filter'] = $this->filter; + $query['scope'] = $this->scope; + $query['attrs'] = $this->getAttributeNames(); + } + + if (! $bases) + $bases = $server->getBaseDN(); + elseif (! is_array($bases)) + $bases = explode('|',$bases); + + foreach ($bases as $base) { + $query['base'] = $base; + + $time_start = utime(); + $this->results[$base] = $server->query($query,null); + $time_end = utime(); + + $this->resultsdata[$base]['time'] = round($time_end-$time_start,2); + $this->resultsdata[$base]['scope'] = $query['scope']; + $this->resultsdata[$base]['filter'] = $query['filter']; + $this->resultsdata[$base]['attrs'] = $query['attrs']; + + if ($this->getAttrSortOrder() == 'dn') + usort($this->results[$base],'pla_compare_dns'); + elseif ($this->getAttrSortOrder()) + masort($this->results[$base],$this->getAttrSortOrder()); + } + } + + /** + * This is temporary to get around objects that use a DN for rendering, for example jpegPhoto + */ + public function setDN($dn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->dn = $dn; + } + + /** + * This is temporary to get around objects that use a DN for rendering, for example jpegPhoto + */ + public function getDN() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->dn); + + return $this->dn; + } + + public function getDNEncode($url=true) { + // @todo Be nice to do all this in 1 location + if ($url) + return urlencode(preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->dn)); + else + return preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->dn); + } + + public function getAttrSortOrder() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $result = array(); + + if (count($this->attributes)) { + masort($this->attributes,'ordersort'); + + foreach ($this->attributes as $attribute) + array_push($result,$attribute->getName()); + + } else { + $display = preg_replace('/,\s+/',',',get_request('orderby','REQUEST',false,'dn')); + + if (trim($display)) + $result = explode(',',$display); + } + + return implode(',',$result); + } + + public function getAttrDisplayOrder() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $result = array(); + + if (count($this->attributes)) { + masort($this->attributes,'order'); + + foreach ($this->attributes as $attribute) + array_push($result,$attribute->getName()); + + } else { + $display = preg_replace('/,\s+/',',',get_request('display_attrs','REQUEST',false,'')); + + if (trim($display)) + $result = explode(',',$display); + } + + # If our display order is empty, then dynamically build it + if (! count($result)) { + foreach ($this->results as $details) + foreach ($details as $attrs) + $result = array_merge($result,array_keys(array_change_key_case($attrs))); + + $result = array_unique($result); + sort($result); + } + + # Put the DN first + array_unshift($result,'dn'); + $result = array_unique($result); + + return implode(',',$result); + } + + /** + * Test if the template is visible + * + * @return boolean + */ + public function isVisible() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->visible); + + return $this->visible; + } + + public function getDescription() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->description); + + return $this->description; + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/QueryRender.php b/lam/templates/3rdParty/pla/lib/QueryRender.php new file mode 100644 index 00000000..db1c4f9d --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/QueryRender.php @@ -0,0 +1,516 @@ +%s
    ',__METHOD__); + if (DEBUGTMP||DEBUGTMPSUB) printf('* %s [GETquery:%s]
    ',__METHOD__,get_request('query','REQUEST')); + if (DEBUGTMP||DEBUGTMPSUB) printf('* %s [Page:%s]
    ',__METHOD__,get_request('page','REQUEST')); + + $this->template_id = $this->getTemplateChoice(); + $this->page = get_request('page','REQUEST',false,1); + + # If we are the default template, make sure we pressed search + if ($this->template_id == 'none' && ! get_request('search','REQUEST')) + $this->drawTemplateChoice(); + + elseif ($this->template_id) { + $templates = $this->getTemplates(); + $this->template = $templates->getTemplate($this->template_id); + $this->template->accept(); + + $this->visitStart(); + $this->visitEnd(); + } + } + + /** + * Get our templates applicable for this object + */ + protected function getTemplates() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return new Queries($this->server_id); + } + + /** + * Are default queries enabled? + */ + protected function haveDefaultTemplate() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $server = $this->getServer(); + + if ($server->getValue('query','disable_default')) + return false; + else + return true; + } + + protected function drawTemplateChoice() { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $server = $this->getServer(); + + $this->drawTitle(_('Search')); + $this->drawSubTitle(); + + echo "\n"; + + $baseDNs = $server->getBaseDN(); + + printf('',JSDIR); + echo '
    '; + echo '
    '; + echo ''; + printf('',$server->getIndex()); + echo '
    '; + + echo ''; + echo ''; + + $templates = $this->getTemplates(); + + echo ''; + printf('',_('The format to show the query results'),_('Display format')); + echo ''; + echo ''; + + echo ''; + echo ''; + echo ''; + echo ''; + + echo ''; + + echo ''; + echo ''; + + printf('',_('Search')); + + echo '
     
    %s'; + echo ''; + echo '
    '; + echo '
    '; + printf('
    ','block'); + echo '
    '; + echo ''; + + printf('',_('Base DN')); + printf(''; + echo ''; + + echo ''; + printf('',_('The scope in which to search'),_('Search scope')); + + echo ''; + echo ''; + + echo ''; + printf('', + htmlspecialchars(_('Standard LDAP search filter. Example: (&(sn=Smith)(givenName=David))')),_('Search filter')); + + printf('', + 'objectClass=*'); + + echo ''; + + echo ''; + printf('', + _('A list of attributes to display in the results (comma-separated)'),_('Show attributes')); + + printf('', + implode(', ',$_SESSION[APPCONFIG]->getValue('search','result_attributes'))); + echo ''; + + echo ''; + printf('',_('Order by'),_('Order by')); + printf('',''); + echo ''; + + echo ''; + printf('',_('Set the search results to 0 to retrieve all available records.'),_('Search Results')); + printf('',$_SESSION[APPCONFIG]->getValue('search','size_limit')); + echo ''; + + echo '
    %s',count($baseDNs) == 1 ? $baseDNs[0] : ''); + + draw_chooser_link('advanced_search_form','base'); + + echo '
    %s'; + echo ''; + echo '
    %s
    %s
    %s
    %s
    '; + echo '
    '; + echo '

    '; + echo '
    '; + } + + private function visitStart() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->drawTitle(_('Search Results')); + $this->drawSubTitle(); + echo '
    '; + } + + private function visitEnd() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $server = $this->getServer(); + $afattrs = $this->getAFAttrs(); + + # If Mass Actions Enabled + if ($_SESSION[APPCONFIG]->getValue('mass','enabled')) { + $mass_actions = array( + _('delete') => 'mass_delete', + _('edit') => 'mass_edit' + ); + } + + $this->drawBaseTabs(); + $ado = $this->template->getAttrDisplayOrder(); + $counter = 0; + $j = 0; + + foreach ($this->template->results as $base => $results) { + $counter++; + + if (! $show = get_request('show','REQUEST')) + $show = ($counter === 1 ? $this->getAjaxRef($base) : null); + + printf('
    ', + $this->getAjaxRef($base), ($show == $this->getAjaxRef($base) ? 'block' : 'none')); + + echo ''; + echo ''; + echo '
    '; + echo '
    '; + echo '
    '; + + $this->drawResultsTable($base,count($results)); + + echo '
    '; + echo '
    '; + + switch(get_request('format','REQUEST',false,$_SESSION[APPCONFIG]->getValue('search','display'))) { + case 'list': + foreach ($results as $dndetails) { + $dndetails = array_change_key_case($dndetails); + + # Temporarily set our DN, for rendering that leverages our DN (eg: JpegPhoto) + $this->template->setDN($dndetails['dn']); + + echo ''; + + echo ''; + printf('',IMGDIR,get_icon($server->getIndex(),$dndetails['dn'])); + + printf('', + $server->getIndex(),$this->template->getDNEncode(),htmlspecialchars(get_rdn($dndetails['dn']))); + echo ''; + + printf('', + htmlspecialchars(dn_unescape($dndetails['dn']))); + + # Iterate over each attribute for this entry + foreach (explode(',',$ado) as $attr) { + # Ignore DN, we've already displayed it. + if ($attr == 'dn') + continue; + + if (! isset($dndetails[$attr])) + continue; + + # Set our object with our values + $afattrs[$attr]->clearValue(); + + if (is_array($dndetails[$attr])) + $afattrs[$attr]->initValue($dndetails[$attr]); + else + $afattrs[$attr]->initValue(array($dndetails[$attr])); + + echo ''; + echo ''; + + echo ''; + + echo ''; + echo ''; + } + + echo '
    icon%s
     dn%s
     '; + $this->draw('Name',$afattrs[$attr]); + echo ''; + $this->draw('CurrentValues',$afattrs[$attr]); + echo '
    '; + echo '
    '; + } + + break; + + # Display the results. + case 'table': + if (! $results) { + echo _('Search returned no results'); + + continue; + } + + printf('
    ',$counter); + echo '
    '; + printf('',$server->getIndex()); + + foreach ($this->template->resultsdata[$base]['attrs'] as $attr) + printf('',$attr); + + echo '
    '; + + echo ''; + + echo ''; + echo ''; + echo ''; + echo ''; + + foreach (explode(',',$ado) as $attr) { + echo ''; + } + + echo ''; + echo ''; + + echo ''; + foreach ($results as $dndetails) { + $j++; + $dndetails = array_change_key_case($dndetails); + + # Temporarily set our DN, for rendering that leverages our DN (eg: JpegPhoto) + $this->template->setDN($dndetails['dn']); + + printf('', + $j%2 ? 'even' : 'odd',$j,$j); + + # Is mass action enabled. + if ($_SESSION[APPCONFIG]->getValue('mass','enabled')) + printf('',$j,$dndetails['dn']); + + $href = sprintf('cmd=template_engine&server_id=%s&dn=%s',$server->getIndex(),$this->template->getDNEncode()); + printf('', + htmlspecialchars($href), + IMGDIR,get_icon($server->getIndex(),$dndetails['dn'])); + + # We'll clone our attribute factory attributes, since we need to add the values to them for rendering. + foreach (explode(',',$ado) as $attr) { + # If the entry is blank, we'll draw an empty box and continue. + if (! isset($dndetails[$attr])) { + echo ''; + continue; + } + + # Special case for DNs + if ($attr == 'dn') { + $dn_display = strlen($dndetails['dn']) > 40 + ? sprintf('%s...',htmlspecialchars($dndetails['dn']),htmlspecialchars(substr($dndetails['dn'],0,40))) + : htmlspecialchars($dndetails['dn']); + + printf('',htmlspecialchars($href),$dn_display); + continue; + } + + # Set our object with our values + $afattrs[$attr]->clearValue(); + if (is_array($dndetails[$attr])) + $afattrs[$attr]->initValue($dndetails[$attr]); + else + $afattrs[$attr]->initValue(array($dndetails[$attr])); + + echo ''; + } + + echo ''; + } + + # Is mass action enabled. + if ($_SESSION[APPCONFIG]->getValue('mass','enabled')) { + printf('',++$j%2 ? 'odd' : 'even'); + printf('',$counter); + printf(''; + echo ''; + } + + echo ''; + echo '
      '; + $this->draw('Name',$afattrs[$attr]); + echo '
    icon %s'; + $this->draw('CurrentValues',$afattrs[$attr]); + echo '
    ',2+count(explode(',',$ado))); + + foreach ($mass_actions as $display => $action) { + echo '  '; + } + + echo '
    '; + echo '
    '; + echo "\n\n"; + + break; + + default: + printf('Have ID [%s], run this query for page [%s]',$this->template_id,$this->page); + } + + echo '
    '; + echo '
    '; + echo "\n\n"; + } + + if (get_request('format','REQUEST',false,'table') == 'table') + printf('',JSDIR); + } + + public function drawSubTitle($subtitle=null) { + return; + } + + private function getAFattrs() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $attribute_factory = new AttributeFactory(); + $results = array(); + + foreach (explode(',',$this->template->getAttrDisplayOrder()) as $attr) + $results[$attr] = $attribute_factory->newAttribute($attr,array('values'=>array()),$this->getServerID()); + + return $results; + } + + private function getAjaxRef($dn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return preg_replace('/=/','.',base64_encode($dn)); + } + + private function drawBaseTabs() { + # Setup the Javascript to show/hide our DIVs. + echo ''; + echo "\n\n"; + + echo ''; + echo ''; + $counter = 0; + foreach ($this->template->results as $base => $results) { + if (! $show = get_request('show','REQUEST')) + $show = ($counter++ === 0 ? $this->getAjaxRef($base) : null); + + printf('', + $this->getAjaxRef($base), + $this->getAjaxRef($base), + ($show == $this->getAjaxRef($base) ? '#F0F0F0' : '#E0E0E0'), + htmlspecialchars($base)); + } + echo ''; + echo '
    %s
    '; + echo "\n\n"; + } + + private function drawResultsTable($base,$results) { + $server = $this->getServer(); + + echo ''; + + echo ''; + printf('',_('Entries found'), + number_format($results),$this->template->resultsdata[$base]['time'],_('seconds')); + + if ($_SESSION[APPCONFIG]->isCommandAvailable('script','export') && $_SESSION[APPCONFIG]->isCommandAvailable('script','export_form')) { + $href = htmlspecialchars(sprintf('cmd.php?cmd=export_form&server_id=%s&scope=%s&dn=%s&filter=%s&attributes=%s', + $server->getIndex(),$this->template->resultsdata[$base]['scope'], + $base,rawurlencode($this->template->resultsdata[$base]['filter']), + rawurlencode(implode(', ',$this->template->resultsdata[$base]['attrs'])))); + + printf(''; + echo ''; + echo '
    %s: %s

    (%s %s)
    [ Save %s ]', + $href,IMGDIR,_('export')); + } + + printf('[ rename %s:',IMGDIR,_('Format')); + + foreach (array('list','table') as $f) { + echo ' '; + + if (get_request('format','REQUEST',false,$_SESSION[APPCONFIG]->getValue('search','display')) == $f) { + printf('%s',_($f)); + + } else { + $query_string = htmlspecialchars(sprintf('%s&format=%s&show=%s&focusbase=%s',array_to_query_string($_GET,array('format','meth')),$f,$this->getAjaxRef($base),$base)); + + if (isAjaxEnabled()) + printf('%s', + $query_string,$query_string,_('Loading search'),_($f)); + else + printf('%s',$query_string,_($f)); + } + } + + echo ' ]'; + + echo '
    '; + printf('%s: %s',_('Base DN'), htmlspecialchars($base)); + + echo '
    '; + printf('%s: %s',_('Filter performed'),htmlspecialchars($this->template->resultsdata[$base]['filter'])); + + echo '
    '; + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/RandomPasswordAttribute.php b/lam/templates/3rdParty/pla/lib/RandomPasswordAttribute.php new file mode 100644 index 00000000..ca11f8db --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/RandomPasswordAttribute.php @@ -0,0 +1,17 @@ + diff --git a/lam/templates/3rdParty/pla/lib/SambaPasswordAttribute.php b/lam/templates/3rdParty/pla/lib/SambaPasswordAttribute.php new file mode 100644 index 00000000..35c1a088 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/SambaPasswordAttribute.php @@ -0,0 +1,17 @@ + diff --git a/lam/templates/3rdParty/pla/lib/SelectionAttribute.php b/lam/templates/3rdParty/pla/lib/SelectionAttribute.php new file mode 100644 index 00000000..deb1f11d --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/SelectionAttribute.php @@ -0,0 +1,71 @@ +source == 'XML' && $this->values) { + $this->selection = $this->values; + $this->values = array(); + } + + if (isset($values['type']) && $values['type'] == 'multiselect') + $this->multiple = true; + else + $this->multiple = false; + } + + public function addOption($value,$description) { + $this->selection[$value] = $description; + } + + public function addValue($new_val,$i=-1) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->addOption($new_val,$new_val); + } + + public function getOptionCount() { + return count($this->selection); + } + + public function getSelection() { + return $this->selection; + } + + public function autoValue($value) { + $this->selection = $value; + } + + public function getDefault() { + return $this->default; + } + + public function isMultiple() { + return $this->multiple; + } + + public function setMultiple() { + $this->multiple = true; + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/ShadowAttribute.php b/lam/templates/3rdParty/pla/lib/ShadowAttribute.php new file mode 100644 index 00000000..eeb7cd18 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/ShadowAttribute.php @@ -0,0 +1,19 @@ + diff --git a/lam/templates/3rdParty/pla/lib/Template.php b/lam/templates/3rdParty/pla/lib/Template.php new file mode 100644 index 00000000..7cdb2b1a --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/Template.php @@ -0,0 +1,1567 @@ +noleaf = $_SESSION[APPCONFIG]->getValue('appearance','disable_default_leaf'); + } + + public function __clone() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # We need to clone our attributes, when passing back a template with getTemplate + foreach ($this->attributes as $key => $value) + $this->attributes[$key] = clone $value; + } + + /** + * Main processing to store the template. + * + * @param xmldata Parsed xmldata from xml2array object + */ + protected function storeTemplate($xmldata) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $server = $this->getServer(); + $objectclasses = array(); + + foreach ($xmldata['template'] as $xml_key => $xml_value) { + if (DEBUG_ENABLED) + debug_log('Foreach loop Key [%s] Value [%s]',4,0,__FILE__,__LINE__,__METHOD__,$xml_key,is_array($xml_value)); + + switch ($xml_key) { + # Build our object Classes from the DN and Template. + case ('objectclasses'): + if (DEBUG_ENABLED) + debug_log('Case [%s]',4,0,__FILE__,__LINE__,__METHOD__,$xml_key); + + if (isset($xmldata['template'][$xml_key]['objectclass'])) + if (is_array($xmldata['template'][$xml_key]['objectclass'])) { + foreach ($xmldata['template'][$xml_key]['objectclass'] as $index => $details) { + + # XML files with only 1 objectClass dont have a numeric index. + $soc = $server->getSchemaObjectClass(strtolower($details)); + + # If we havent recorded this objectclass already, do so now. + if (is_object($soc) && ! in_array($soc->getName(),$objectclasses)) + array_push($objectclasses,$soc->getName(false)); + + elseif (! is_object($soc) && ! $_SESSION[APPCONFIG]->getValue('appearance','hide_template_warning')) + system_message(array( + 'title'=>('Automatically removed objectClass from template'), + 'body'=>sprintf('%s: %s %s',$this->getTitle(),$details,('removed from template as it is not defined in the schema')), + 'type'=>'warn')); + } + + } else { + # XML files with only 1 objectClass dont have a numeric index. + $soc = $server->getSchemaObjectClass(strtolower($xmldata['template'][$xml_key]['objectclass'])); + + # If we havent recorded this objectclass already, do so now. + if (is_object($soc) && ! in_array($soc->getName(),$objectclasses)) + array_push($objectclasses,$soc->getName(false)); + } + + break; + + # Build our attribute list from the DN and Template. + case ('attributes'): + if (DEBUG_ENABLED) + debug_log('Case [%s]',4,0,__FILE__,__LINE__,__METHOD__,$xml_key); + + if (is_array($xmldata['template'][$xml_key])) { + foreach ($xmldata['template'][$xml_key] as $tattrs) + foreach ($tattrs as $index => $details) { + if (DEBUG_ENABLED) + debug_log('Foreach tattrs Key [%s] Value [%s]',4,0,__FILE__,__LINE__,__METHOD__, + $index,$details); + + # If there is no schema definition for the attribute, it will be ignored. + if ($sattr = $server->getSchemaAttribute($index)) + if (is_null($this->getAttribute($sattr->getName()))) + $this->addAttribute($sattr->getName(),$details,'XML'); + } + + masort($this->attributes,'order'); + } + + break; + + default: + if (DEBUG_ENABLED) + debug_log('Case [%s]',4,0,__FILE__,__LINE__,__METHOD__,$xml_key); + + # Some key definitions need to be an array, some must not be: + $allowed_arrays = array('rdn'); + $storelower = array('rdn'); + $storearray = array('rdn'); + + # Items that must be stored lowercase + if (in_array($xml_key,$storelower)) + if (is_array($xml_value)) + foreach ($xml_value as $index => $value) + $xml_value[$index] = strtolower($value); + else + $xml_value = strtolower($xml_value); + + # Items that must be stored as arrays + if (in_array($xml_key,$storearray) && ! is_array($xml_value)) + $xml_value = array($xml_value); + + # Items that should not be an array + if (! in_array($xml_key,$allowed_arrays) && is_array($xml_value)) { + debug_dump(array(__METHOD__,'key'=>$xml_key,'value'=>$xml_value)); + error(sprintf(('In the XML file (%s), [%s] is an array, it must be a string.'), + $this->filename,$xml_key),'error'); + } + + $this->$xml_key = $xml_value; + + if ($xml_key == 'invalid' && $xml_value) + $this->setInvalid(('Disabled by XML configuration'),true); + } + } + + if (! count($objectclasses)) { + $this->setInvalid(('ObjectClasses in XML dont exist in LDAP server.')); + return; + + } else { + $attribute = $this->addAttribute('objectClass',array('values'=>$objectclasses),'XML'); + $attribute->justModified(); + $attribute->setRequired(); + $attribute->hide(); + } + + $this->rebuildTemplateAttrs(); + + # Check we have some manditory items. + foreach (array('rdn','structural_oclass','visible') as $key) { + if (! isset($this->$key) + || (! is_array($this->$key) && ! trim($this->$key))) { + + $this->setInvalid(sprintf(('Missing %s in the XML file.'),$key)); + break; + } + } + + # Mark our RDN attributes as RDN + $counter = 1; + foreach ($this->rdn as $key) { + if ((is_null($attribute = $this->getAttribute($key))) && (in_array_ignore_case('extensibleobject',$this->getObjectClasses()))) { + $attribute = $this->addAttribute($key,array('values'=>array())); + $attribute->show(); + } + + if (! is_null($attribute)) + $attribute->setRDN($counter++); + elseif ($this->isType('creation')) + $this->setInvalid(sprintf(('Missing RDN attribute %s in the XML file.'),$key)); + } + } + + /** + * Is default templates enabled? + * This will disable the default template from the engine. + * + * @return boolean + */ + protected function hasDefaultTemplate() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($_SESSION[APPCONFIG]->getValue('appearance','disable_default_template')) + return false; + else + return true; + } + + /** + * Return the templates of type (creation/modification) + * + * @param $string type - creation/modification + * @return array - Array of templates of that type + */ + protected function readTemplates($type) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $template_xml = new Templates($this->server_id); + return $template_xml->getTemplates($type); + } + + /** + * This function will perform the following intialisation steps: + * + If a DN is set, query the ldap and load the object + * + Read our $_REQUEST variable and set the values + * After this action, the template should self describe as to whether it is an update, create + * or delete. + * (OLD values are IGNORED, we will have got them when we build this object from the LDAP server DN.) + */ + public function accept($makeVisible=false) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $server = $this->getServer(); + + # If a DN is set, then query the LDAP server for the details. + if ($this->dn) { + if (! $server->dnExists($this->dn)) + system_message(array( + 'title'=>__METHOD__, + 'body'=>sprintf('DN (%s) didnt exist in LDAP?',$this->dn), + 'type'=>'info')); + + $rdnarray = rdn_explode(strtolower(get_rdn(dn_escape($this->dn)))); + + $counter = 1; + foreach ($server->getDNAttrValues($this->dn,null,LDAP_DEREF_NEVER,array_merge(array('*'),$server->getValue('server','custom_attrs'))) as $attr => $values) { + # We ignore DNs. + if ($attr == 'dn') + continue; + + $attribute = $this->getAttribute($attr); + + if (is_null($attribute)) + $attribute = $this->addAttribute($attr,array('values'=>$values)); + else + if ($attribute->getValues()) { + # Override values to those that are defined in the XML file. + if ($attribute->getSource() != 'XML') + $attribute->setValue(array_values($values)); + else + $attribute->setOldValue(array_values($values)); + + } else + $attribute->initValue(array_values($values)); + + # Work out the RDN attributes + foreach ($attribute->getValues() as $index => $value) + if (in_array(sprintf('%s=%s', + $attribute->getName(),strtolower($attribute->getValue($index))),$rdnarray)) + $attribute->setRDN($counter++); + + if ($makeVisible) + $attribute->show(); + } + + # Get the Internal Attributes + foreach ($server->getDNAttrValues($this->dn,null,LDAP_DEREF_NEVER,array_merge(array('+'),$server->getValue('server','custom_sys_attrs'))) as $attr => $values) { + $attribute = $this->getAttribute($attr); + + if (is_null($attribute)) + $attribute = $this->addAttribute($attr,array('values'=>$values)); + else + if ($attribute->getValues()) + $attribute->setValue(array_values($values)); + else + $attribute->initValue(array_values($values)); + + if (! in_array_ignore_case($attribute->getName(),$server->getValue('server','custom_attrs'))) + $attribute->setInternal(); + } + + # If this is the default template, and our $_REQUEST has defined our objectclass, then query the schema to get the attributes + } elseif ($this->container) { + if ($this->isType('default') && ! count($this->getAttributes(true)) && isset($_REQUEST['new_values']['objectclass'])) { + $attribute = $this->addAttribute('objectclass',array('values'=>$_REQUEST['new_values']['objectclass'])); + $attribute->justModified(); + $this->rebuildTemplateAttrs(); + unset($_REQUEST['new_values']['objectclass']); + } + + } elseif (get_request('create_base')) { + if (get_request('rdn')) { + $rdn = explode('=',get_request('rdn')); + $attribute = $this->addAttribute($rdn[0],array('values'=>array($rdn[1]))); + $attribute->setRDN(1); + } + + } else { + debug_dump_backtrace('No DN or CONTAINER?',1); + } + + # Read in our new values. + foreach (array('new_values') as $key) { + if (isset($_REQUEST[$key])) + foreach ($_REQUEST[$key] as $attr => $values) { + # If it isnt an array, silently ignore it. + if (! is_array($values)) + continue; + + # If _REQUEST['skip_array'] with this attr set, we'll ignore this new_value + if (isset($_REQUEST['skip_array'][$attr]) && $_REQUEST['skip_array'][$attr] == 'on') + continue; + + # Prune out entries with a blank value. + foreach ($values as $index => $value) + if (! strlen(trim($value))) + unset($values[$index]); + + $attribute = $this->getAttribute($attr); + # If the attribute is null, then no attribute exists, silently ignore it (unless this is the default template) + if (is_null($attribute) && (! $this->isType('default') && ! $this->isType(null))) + continue; + + # If it is a binary attribute, the post should have base64 encoded the value, we'll need to reverse that + if ($server->isAttrBinary($attr)) + foreach ($values as $index => $value) + $values[$index] = base64_decode($value); + + if (is_null($attribute)) { + $attribute = $this->addAttribute($attr,array('values'=>$values)); + + if (count($values)) + $attribute->justModified(); + + } else + $attribute->setValue(array_values($values)); + } + + # Read in our new binary values + if (isset($_FILES[$key]['name'])) + foreach ($_FILES[$key]['name'] as $attr => $values) { + $new_values = array(); + + foreach ($values as $index => $details) { + # Ignore empty files + if (! $_FILES[$key]['size'][$attr][$index]) + continue; + + if (! is_uploaded_file($_FILES[$key]['tmp_name'][$attr][$index])) { + if (isset($_FILES[$key]['error'][$attr][$index])) + switch($_FILES[$key]['error'][$attr][$index]) { + + # No error; possible file attack! + case 0: + $msg = _('Security error: The file being uploaded may be malicious.'); + break; + + # Uploaded file exceeds the upload_max_filesize directive in php.ini + case 1: + $msg = _('The file you uploaded is too large. Please check php.ini, upload_max_size setting'); + break; + + # Uploaded file exceeds the MAX_FILE_SIZE directive specified in the html form + case 2: + $msg = _('The file you uploaded is too large. Please check php.ini, upload_max_size setting'); + break; + + # Uploaded file was only partially uploaded + case 3: + $msg = _('The file you selected was only partially uploaded, likley due to a network error.'); + break; + + # No file was uploaded + case 4: + $msg = _('You left the attribute value blank. Please go back and try again.'); + break; + + # A default error, just in case! :) + default: + $msg = _('Security error: The file being uploaded may be malicious.'); + break; + } + + else + $msg = _('Security error: The file being uploaded may be malicious.'); + + system_message(array( + 'title'=>_('Error'),'body'=>$msg,'type'=>'warn')); + + } else { + $binaryfile = array(); + $binaryfile['name'] = $_FILES[$key]['tmp_name'][$attr][$index]; + $binaryfile['handle'] = fopen($binaryfile['name'],'r'); + $binaryfile['data'] = fread($binaryfile['handle'],filesize($binaryfile['name'])); + fclose($binaryfile['handle']); + + $new_values[$index] = $binaryfile['data']; + } + } + + if (count($new_values)) { + $attribute = $this->getAttribute($attr); + + if (is_null($attribute)) + $attribute = $this->addAttribute($attr,array('values'=>$new_values)); + else + foreach ($new_values as $value) + $attribute->addValue($value); + + $attribute->justModified(); + } + } + } + + # If there are any single item additions (from the add_attr form for example) + if (isset($_REQUEST['single_item_attr'])) { + if (isset($_REQUEST['single_item_value'])) { + if (! is_array($_REQUEST['single_item_value'])) + $values = array($_REQUEST['single_item_value']); + else + $values = $_REQUEST['single_item_value']; + + } elseif (isset($_REQUEST['binary'])) { + /* Special case for binary attributes (like jpegPhoto and userCertificate): + * we must go read the data from the file and override $_REQUEST['single_item_value'] with the + * binary data. Secondly, we must check if the ";binary" option has to be appended to the name + * of the attribute. */ + + if ($_FILES['single_item_value']['size'] === 0) + system_message(array( + 'title'=>_('Error'), + 'body'=>sprintf('%s %s',_('The file you chose is either empty or does not exist.'),_('Please go back and try again.')), + 'type'=>'warn')); + + else { + if (! is_uploaded_file($_FILES['single_item_value']['tmp_name'])) { + if (isset($_FILES['single_item_value']['error'])) + switch($_FILES['single_item_value']['error']) { + + # No error; possible file attack! + case 0: + $msg = _('Security error: The file being uploaded may be malicious.'); + break; + + # Uploaded file exceeds the upload_max_filesize directive in php.ini + case 1: + $msg = _('The file you uploaded is too large. Please check php.ini, upload_max_size setting'); + break; + + # Uploaded file exceeds the MAX_FILE_SIZE directive specified in the html form + case 2: + $msg = _('The file you uploaded is too large. Please check php.ini, upload_max_size setting'); + break; + + # Uploaded file was only partially uploaded + case 3: + $msg = _('The file you selected was only partially uploaded, likley due to a network error.'); + break; + + # No file was uploaded + case 4: + $msg = _('You left the attribute value blank. Please go back and try again.'); + break; + + # A default error, just in case! :) + default: + $msg = _('Security error: The file being uploaded may be malicious.'); + break; + } + + else + $msg = _('Security error: The file being uploaded may be malicious.'); + + system_message(array( + 'title'=>_('Error'),'body'=>$msg,'type'=>'warn'),'index.php'); + } + + $binaryfile = array(); + $binaryfile['name'] = $_FILES['single_item_value']['tmp_name']; + $binaryfile['handle'] = fopen($binaryfile['name'],'r'); + $binaryfile['data'] = fread($binaryfile['handle'],filesize($binaryfile['name'])); + fclose($binaryfile['handle']); + + $values = array($binaryfile['data']); + } + } + + if (count($values)) { + $attribute = $this->getAttribute($_REQUEST['single_item_attr']); + + if (is_null($attribute)) + $attribute = $this->addAttribute($_REQUEST['single_item_attr'],array('values'=>$values)); + else + $attribute->setValue(array_values($values)); + + $attribute->justModified(); + } + } + + # If this is the default creation template, we need to set some additional values + if ($this->isType('default') && $this->getContext() == 'create') { + # Load our schema, based on the objectclasses that may have already been defined. + if (! get_request('create_base')) + $this->rebuildTemplateAttrs(); + + # Set the RDN attribute + $counter = 1; + foreach (get_request('rdn_attribute','REQUEST',false,array()) as $key => $value) { + $attribute = $this->getAttribute($value); + + if (! is_null($attribute)) + $attribute->setRDN($counter++); + + else { + system_message(array( + 'title'=>_('No RDN attribute was selected.'), + 'body'=>_('No RDN attribute was selected.'), + 'type'=>'warn'),'index.php'); + + die(); + } + } + } + } + + /** + * Set the DN for this template, if we are editing entries + * + * @param dn The DN of the entry + */ + public function setDN($dn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (isset($this->container)) + system_message(array( + 'title'=>__METHOD__, + 'body'=>'CONTAINER set while setting DN', + 'type'=>'info')); + + $this->dn = $dn; + } + + /** + * Set the RDN attributes + * Given an RDN, mark the attributes as RDN attributes. If there is no defined attribute, + * then the remaining RDNs will be returned. + * + * @param RDN + * @return RDN attributes not processed + */ + public function setRDNAttributes($rdn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # Setup to work out our RDN. + $rdnarray = rdn_explode($rdn); + + $counter = 1; + foreach ($this->getAttributes(true) as $attribute) + foreach ($rdnarray as $index => $rdnattr) { + list($attr,$value) = explode('=',$rdnattr); + + if (strtolower($attr) == $attribute->getName()) { + $attribute->setRDN($counter++); + unset($rdnarray[$index]); + } + } + + return $rdnarray; + } + + /** + * Display the DN for this template entry. If the DN is not set (creating a new entry), then + * a generated DN will be produced, taken from the RDN and the CONTAINER details. + * + * @return dn + */ + public function getDN() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs,$this->dn); + + if ($this->dn) + return $this->dn; + + # If DN is not set, our DN will be made from our RDN and Container. + elseif ($this->getRDN() && $this->getContainer()) + return sprintf('%s,%s',$this->getRDN(),$this->GetContainer()); + + # If container is not set, we're probably creating the base + elseif ($this->getRDN() && get_request('create_base')) + return $this->getRDN(); + } + + public function getDNEncode($url=true) { + // @todo Be nice to do all this in 1 location + if ($url) + return urlencode(preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->getDN())); + else + return preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->getDN()); + } + + /** + * Set the container for this template, if we are creating entries + * + * @param dn The DN of the container + * @todo Trigger a query to the LDAP server and generate an error if the container doesnt exist + */ + public function setContainer($container) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (isset($this->dn)) + system_message(array( + 'title'=>__METHOD__, + 'body'=>'DN set while setting CONTAINER', + 'type'=>'info')); + + $this->container = $container; + } + + /** + * Get the DN of the container for this entry + * + * @return dn DN of the container + */ + public function getContainer() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->container); + + return $this->container; + } + + public function getContainerEncode($url=true) { + // @todo Be nice to do all this in 1 location + if ($url) + return urlencode(preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->container)); + else + return preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->container); + } + + /** + * Copy a DN + */ + public function copy($template,$rdn,$asnew=false) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $rdnarray = rdn_explode($rdn); + + $counter = 1; + foreach ($template->getAttributes(true) as $sattribute) { + $attribute = $this->addAttribute($sattribute->getName(false),array('values'=>$sattribute->getValues())); + + # Set our new RDN, and its values + if (is_null($attribute)) { + debug_dump_backtrace('Attribute is null, it probably doesnt exist in the destination server?'); + + } else { + + # Mark our internal attributes. + if ($sattribute->isInternal()) + $attribute->setInternal(); + + $modified = false; + foreach ($rdnarray as $index => $rdnattr) { + list($attr,$value) = explode('=',$rdnattr); + if (strtolower($attr) == $attribute->getName()) { + + # If this is already marked as an RDN, then this multivalue RDN was updated on a previous loop + if (! $modified) { + $attribute->setValue(array($value)); + $attribute->setRDN($counter++); + $modified = true; + + } else { + $attribute->addValue($value); + } + + # This attribute has been taken care of, we'll drop it from our list. + unset($rdnarray[$index]); + } + } + } + + // @todo If this is a Jpeg Attribute, we need to mark it read only, since it cant be deleted like text attributes can + if (strcasecmp(get_class($attribute),'jpegAttribute') == 0) + $attribute->setReadOnly(); + } + + # If we have any RDN values left over, there werent in the original entry and need to be added. + foreach ($rdnarray as $rdnattr) { + list($attr,$value) = explode('=',$rdnattr); + + $attribute = $this->addAttribute($attr,array('values'=>array($value))); + + if (is_null($attribute)) + debug_dump_backtrace('Attribute is null, it probably doesnt exist in the destination server?'); + else + $attribute->setRDN($counter++); + } + + # If we are copying into a new entry, we need to discard all the "old values" + if ($asnew) + foreach ($this->getAttributes(true) as $sattribute) + $sattribute->setOldValue(array()); + } + + /** + * Get Attributes by LDAP type + * This function will return a list of attributes by LDAP type (MUST,MAY). + * + * @return array Array of attributes. + */ + function getAttrbyLdapType($type) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $result = array(); + + foreach ($this->attributes as $index => $attribute) { + if ($attribute->getLDAPtype() == strtolower($type)) + array_push($result,$attribute->getName()); + } + + return $result; + } + + /** + * Return true if this is a MUST,MAY attribute + */ + function isAttrType($attr,$type) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (in_array(strtolower($attr),$this->getAttrbyLdapType($type))) + return true; + else + return false; + } + + /** + * Return the attributes that comprise the RDN. + * + * @return array Array of RDN objects + */ + private function getRDNObjects() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $return = array(); + + foreach ($this->attributes as $attribute) + if ($attribute->isRDN()) + array_push($return,$attribute); + + masort($return,'rdn'); + return $return; + } + + /** + * Get all the RDNs for this template, in RDN order. + * + * @return array RDNs in order. + */ + public function getRDNAttrs() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $return = array(); + + foreach ($this->getRDNObjects() as $attribute) { + # We'll test if two RDN's have the same number (we cant test anywhere else) + if (isset($return[$attribute->isRDN()]) && $this->getType() == 'creation') + system_message(array( + 'title'=>('RDN attribute sequence already defined'), + 'body'=>sprintf('%s %s', + sprintf(('There is a problem in template [%s].'),$this->getName()), + sprintf(('RDN attribute sequence [%s] is already used by attribute [%s] and cant be used by attribute [%s] also.'), + $attribute->isRDN(),$return[$attribute->isRDN()],$attribute->getName())), + 'type'=>'error'),'index.php'); + + $return[$attribute->isRDN()] = $attribute->getName(); + } + + return $return; + } + + /** + * Return the RDN for this template. If the DN is already defined, then the RDN will be calculated from it. + * If the DN is not set, then the RDN will be calcuated from the template attribute definitions + * + * @return rdn RDN for this template + */ + public function getRDN() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # If the DN is set, then the RDN will be calculated from it. + if ($this->dn) + return get_rdn($this->dn); + + $rdn = ''; + + foreach ($this->getRDNObjects() as $attribute) { + $vals = $attribute->getValues(); + + # If an RDN attribute has no values, return with an empty string. The calling script should handle this. + if (! count($vals)) + return ''; + + foreach ($vals as $val) + $rdn .= sprintf('%s=%s+',$attribute->getName(false),$val); + } + + # Chop the last plus sign off when returning + return preg_replace('/\+$/','',$rdn); + } + + /** + * Return the attribute name part of the RDN + */ + public function getRDNAttributeName() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $attr = array(); + + if ($this->getDN()) { + $i = strpos($this->getDN(),','); + if ($i !== false) { + $attrs = explode('\+',substr($this->getDN(),0,$i)); + foreach ($attrs as $id => $attr) { + list ($name,$value) = explode('=',$attr); + $attrs[$id] = $name; + } + + $attr = array_unique($attrs); + } + } + + return $attr; + } + + /** + * Determine the type of template this is + */ + public function getContext() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($this->getContainer() && get_request('cmd','REQUEST') == 'copy') + return 'copyasnew'; + elseif ($this->getContainer() || get_request('create_base')) + return 'create'; + elseif ($this->getDN()) + return 'edit'; + else + return 'unknown'; + } + + /** + * Test if the template is visible + * + * @return boolean + */ + public function isVisible() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->visible); + + return $this->visible; + } + + public function setVisible() { + $this->visible = true; + } + + public function setInvisible() { + $this->visible = false; + } + + public function getRegExp() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->regexp); + + return $this->regexp; + } + + /** + * Test if this template has been marked as a read-only template + */ + public function isReadOnly() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ((($this->getContext() == 'edit') && $this->readonly) || $this->getServer()->isReadOnly()) + return true; + else + return false; + } + + /** + * Get the attribute entries + * + * @param boolean Include the optional attributes + * @return array Array of attributes + */ + public function getAttributes($optional=false) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($optional) + return $this->attributes; + + $result = array(); + foreach ($this->attributes as $attribute) { + if (! $attribute->isRequired()) + continue; + + array_push($result,$attribute); + } + + return $result; + } + + /** + * Return a list of attributes that should be shown + */ + public function getAttributesShown() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $result = array(); + + foreach ($this->attributes as $attribute) + if ($attribute->isVisible()) + array_push($result,$attribute); + + return $result; + } + + /** + * Return a list of the internal attributes + */ + public function getAttributesInternal() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $result = array(); + + foreach ($this->attributes as $attribute) + if ($attribute->isInternal()) + array_push($result,$attribute); + + return $result; + } + + /** + * Return the objectclasses defined in this template + * + * @return array Array of Objects + */ + public function getObjectClasses() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $attribute = $this->getAttribute('objectclass'); + if ($attribute) + return $attribute->getValues(); + else + return array(); + } + + /** + * Get template icon + */ + public function getIcon() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->icon); + + return isset($this->icon) ? sprintf('%s/%s',IMGDIR,$this->icon) : ''; + } + + /** + * Return the template description + * + * @return string Description + */ + public function getDescription() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->description); + + return $this->description; + } + + /** + * Set a template as invalid + * + * @param string Message indicating the reason the template has been invalidated + */ + public function setInvalid($msg,$admin=false) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->invalid = true; + $this->invalid_reason = $msg; + $this->invalid_admin = $admin; + } + + /** + * Get the template validity or the reason it is invalid + * + * @return string Invalid reason, or false if not invalid + */ + public function isInValid() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($this->invalid) + return $this->invalid_reason; + else + return false; + } + + public function isAdminDisabled() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->invalid_admin); + + return $this->invalid_admin; + } + + /** + * Set the minimum number of values for an attribute + * + * @param object Attribute + * @param int + */ + private function setMinValueCount($attr,$value) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $attribute = $this->getAttribute($attr); + + if (! is_null($attribute)) + $attribute->setMinValueCount($value); + } + + /** + * Set the LDAP type property for an attribute + * + * @param object Attribute + * @param string (MUST,MAY,OPTIONAL) + */ + private function setAttrLDAPtype($attr,$value) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $attribute = $this->getAttribute($attr); + + if (is_null($attribute)) + $attribute = $this->addAttribute($attr,array('values'=>array())); + + $attribute->setLDAPtype($value); + } + + /** + * OnChangeAdd javascript processing + */ + public function OnChangeAdd($origin,$value) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $attribute = $this->getAttribute($origin); + + if (preg_match('/^=(\w+)\((.*)\)$/',$value,$matches)) { + $command = $matches[1]; + $arg = $matches[2]; + } else + return; + + switch ($command) { + /* + autoFill:string + string is a literal string, and may contain many fields like %attr|start-end/flags% + to substitute values read from other fields. + |start-end is optional, but must be present if the k flag is used. + /flags is optional. + + flags may be: + T: Read display text from selection item (drop-down list), otherwise, read the value of the field + For fields that aren't selection items, /T shouldn't be used, and the field value will always be read. + k: Tokenize: + If the "k" flag is not given: + A |start-end instruction will perform a sub-string operation upon + the value of the attr, passing character positions start-end through. + start can be 0 for first character, or any other integer. + end can be 0 for last character, or any other integer for a specific position. + If the "k" flag is given: + The string read will be split into fields, using : as a delimiter + "start" indicates which field number to pass through. + K: The string read will be split into fields, using ' ' as a delimiter "start" indicates which field number to pass through. + l: Make the result lower case. + U: Make the result upper case. + */ + case 'autoFill': + if (! preg_match('/;/',$arg)) { + system_message(array( + 'title'=>('Problem with autoFill() in template'), + 'body'=>sprintf('%s (%s)',('There is only 1 argument, when there should be two'),$attribute->getName(false)), + 'type'=>'warn')); + + return; + } + + list($attr,$string) = preg_split('(([^,]+);(.*))',$arg,-1,PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY); + preg_match_all('/%(\w+)(\|[0-9]*-[0-9]*)?(\/[KklTUA]+)?%/U',$string,$matchall); + //print"
    ";print_r($matchall); //0 = highlevel match, 1 = attr, 2 = subst, 3 = mod
    +
    +				if (! isset($attribute->js['autoFill']))
    +					$attribute->js['autoFill'] = '';
    +
    +				$formula = $string;
    +				$formula = preg_replace('/^([^%])/','\'$1',$formula);
    +				$formula = preg_replace('/([^%])$/','$1\'',$formula);
    +
    +				# Check that our attributes match our schema attributes.
    +				foreach ($matchall[1] as $index => $checkattr) {
    +					$sattr = $this->getServer()->getSchemaAttribute($checkattr);
    +
    +					# If the attribute is the same as in the XML file, then dont need to do anything.
    +					if (! $sattr || ! strcasecmp($sattr->getName(),$checkattr))
    +						continue;
    +
    +					$formula = preg_replace("/$checkattr/",$sattr->getName(),$formula);
    +					$matchall[1][$index] = $sattr->getName();
    +				}
    +
    +				$elem_id = 0;
    +
    +				foreach ($matchall[0] as $index => $null) {
    +					$match_attr = strtolower($matchall[1][$index]);
    +					$match_subst = $matchall[2][$index];
    +					$match_mod = $matchall[3][$index];
    +
    +					$substrarray = array();
    +
    +					if (! isset($varcount[$match_attr]))
    +						$varcount[$match_attr] = 0;
    +					else
    +						$varcount[$match_attr]++;
    +
    +					$js_match_attr = $match_attr;
    +					$match_attr = $js_match_attr.'xx'.$varcount[$match_attr];
    +
    +					$formula = preg_replace('/%'.$js_match_attr.'([|\/%])/i','%'.$match_attr.'$1',$formula,1);
    +
    +					$attribute->js['autoFill'] .= sprintf("  var %s;\n",$match_attr);
    +					$attribute->js['autoFill'] .= sprintf(
    +							"  var elem$elem_id = document.getElementById(pre+'%s'+suf);\n".
    +							"  if (!elem$elem_id) return;\n", $js_match_attr);
    +
    +					if (strstr($match_mod,'T')) {
    +						$attribute->js['autoFill'] .= sprintf("  %s = elem$elem_id.options[elem$elem_id.selectedIndex].text;\n",
    +							$match_attr);
    +					} else {
    +						$attribute->js['autoFill'] .= sprintf("  %s = elem$elem_id.value;\n",$match_attr);
    +					}
    +
    +					$elem_id++;
    +
    +					if (strstr($match_mod,'k')) {
    +						preg_match_all('/([0-9]+)/',trim($match_subst),$substrarray);
    +						if (isset($substrarray[1][0])) {
    +							$tok_idx = $substrarray[1][0];
    +						} else {
    +							$tok_idx = '0';
    +						}
    +						$attribute->js['autoFill'] .= sprintf("   %s = %s.split(':')[%s];\n",$match_attr,$match_attr,$tok_idx);
    +
    +					} elseif (strstr($match_mod,'K')) {
    +						preg_match_all('/([0-9]+)/',trim($match_subst),$substrarray); 
    +						if (isset($substrarray[1][0])) { 
    +							$tok_idx = $substrarray[1][0]; 
    +						} else { 
    +							$tok_idx = '0'; 
    +						} 
    +						$attribute->js['autoFill'] .= sprintf("   %s = %s.split(' ')[%s];\n",$match_attr,$match_attr,$tok_idx); 
    +
    +					} else {
    +						preg_match_all('/([0-9]*)-([0-9]*)/',trim($match_subst),$substrarray);
    +						if ((isset($substrarray[1][0]) && $substrarray[1][0]) || (isset($substrarray[2][0]) && $substrarray[2][0])) {
    +							$attribute->js['autoFill'] .= sprintf("   %s = %s.substr(%s,%s);\n",
    +								$match_attr,$match_attr,
    +								$substrarray[1][0] ? $substrarray[1][0] : '0',
    +								$substrarray[2][0] ? $substrarray[2][0] : sprintf('%s.length',$match_attr));
    +						}
    +					}
    +
    +					if (strstr($match_mod,'l')) {
    +						$attribute->js['autoFill'] .= sprintf("   %s = %s.toLowerCase();\n",$match_attr,$match_attr);
    +					}
    +					if (strstr($match_mod,'U')) {
    +						$attribute->js['autoFill'] .= sprintf("   %s = %s.toUpperCase();\n",$match_attr,$match_attr);
    +					}
    +					if (strstr($match_mod,'A')) {
    +						$attribute->js['autoFill'] .= sprintf("   %s = toAscii(%s);\n",$match_attr,$match_attr);
    +					}
    +
    +					# Matchfor only entry without modifiers.
    +					$formula = preg_replace('/^%('.$match_attr.')%$/U','$1 + \'\'',$formula);
    +					# Matchfor only entry with modifiers.
    +					$formula = preg_replace('/^%('.$match_attr.')(\|[0-9]*-[0-9]*)?(\/[KklTUA]+)?%$/U','$1 + \'\'',$formula);
    +					# Matchfor begining entry.
    +					$formula = preg_replace('/^%('.$match_attr.')(\|[0-9]*-[0-9]*)?(\/[KklTUA]+)?%/U','$1 + \'',$formula);
    +					# Matchfor ending entry.
    +					$formula = preg_replace('/%('.$match_attr.')(\|[0-9]*-[0-9]*)?(\/[KklTUA]+)?%$/U','\' + $1 ',$formula);
    +					# Match for entries not at begin/end.
    +					$formula = preg_replace('/%('.$match_attr.')(\|[0-9]*-[0-9]*)?(\/[:lTUA]+)?%/U','\' + $1 + \'',$formula);
    +					$attribute->js['autoFill'] .= "\n";
    +				}
    +
    +				$attribute->js['autoFill'] .= sprintf(" fillRec(pre+'%s'+suf, %s); // %s\n",strtolower($attr),$formula,$string);
    +				$attribute->js['autoFill'] .= "\n";
    +				break;
    +
    +			default: $return = '';
    +		}
    +	}
    +
    +	/**
    +	 * This functions main purpose is to discover our MUST attributes based on objectclass
    +	 * definitions in the template file and to discover which of the objectclasses are
    +	 * STRUCTURAL - without one, creating an entry will just product an LDAP error.
    +	 */
    +	private function rebuildTemplateAttrs() {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		$server = $this->getServer();
    +
    +		# Collect our structural, MUST & MAY attributes.
    +		$oclass_processed = array();
    +		$superclasslist = array();
    +		$allattrs = array('objectclass');
    +
    +		foreach ($this->getObjectClasses() as $oclass) {
    +			# If we get some superclasses - then we'll need to go through them too.
    +			$supclass = true;
    +			$inherited = false;
    +
    +			while ($supclass) {
    +				$soc = $server->getSchemaObjectClass($oclass);
    +
    +				if ($soc->getType() == 'structural' && (! $inherited))
    +					array_push($this->structural_oclass,$oclass);
    +
    +				# Make sure our MUST attributes are marked as such for this template.
    +				if ($soc->getMustAttrs())
    +					foreach ($soc->getMustAttrs() as $index => $details) {
    +						$objectclassattr = $details->getName();
    +
    +						# We add the 'objectClass' attribute, only if it's explicitly in the template attribute list
    +						if ((strcasecmp('objectClass',$objectclassattr) != 0) ||
    +								((strcasecmp('objectClass',$objectclassattr) == 0) && (! is_null($this->getAttribute($objectclassattr))))) {
    +
    +							# Go through the aliases, and ignore any that are already defined.
    +							$ignore = false;
    +							$sattr = $server->getSchemaAttribute($objectclassattr);
    +							foreach ($sattr->getAliases() as $alias) {
    +								if ($this->isAttrType($alias,'must')) {
    +									$ignore = true;
    +									break;
    +								}
    +							}
    +
    +							if ($ignore)
    +								continue;
    +
    +							$this->setAttrLDAPtype($sattr->getName(),'must');
    +							$this->setMinValueCount($sattr->getName(),1);
    +
    +							# We need to mark the attributes as show, except for the objectclass attribute.
    +							if (strcasecmp('objectClass',$objectclassattr) != 0) {
    +								$attribute = $this->getAttribute($sattr->getName());
    +								$attribute->show();
    +							}
    +						}
    +
    +						if (! in_array($objectclassattr,$allattrs))
    +							array_push($allattrs,$objectclassattr);
    +					}
    +
    +				if ($soc->getMayAttrs())
    +					foreach ($soc->getMayAttrs() as $index => $details) {
    +						$objectclassattr = $details->getName();
    +						$sattr = $server->getSchemaAttribute($objectclassattr);
    +
    +						# If it is a MUST attribute, skip to the next one.
    +						if ($this->isAttrType($objectclassattr,'must'))
    +							continue;
    +
    +						if (! $this->isAttrType($objectclassattr,'may'))
    +							$this->setAttrLDAPtype($sattr->getName(false),'optional');
    +
    +						if (! in_array($objectclassattr,$allattrs))
    +							array_push($allattrs,$objectclassattr);
    +					}
    +
    +				# Keep a list to objectclasses we have processed, so we dont get into a loop.
    +				array_push($oclass_processed,$oclass);
    +				$supoclasses = $soc->getSupClasses();
    +
    +				if (count($supoclasses) || count($superclasslist)) {
    +					foreach ($supoclasses as $supoclass) {
    +						if (! in_array($supoclass,$oclass_processed))
    +							$superclasslist[] = $supoclass;
    +					}
    +
    +					$oclass = array_shift($superclasslist);
    +					if ($oclass)
    +						$inherited = true;
    +					else
    +						$supclass = false;
    +
    +				} else {
    +					$supclass = false;
    +				}
    +			}
    +		}
    +
    +		# Check that attributes are defined by an ObjectClass
    +		foreach ($this->getAttributes(true) as $index => $attribute)
    +			if (! in_array($attribute->getName(),$allattrs) && (! array_intersect($attribute->getAliases(),$allattrs))
    +				&& (! in_array_ignore_case('extensibleobject',$this->getObjectClasses()))
    +				&& (! in_array_ignore_case($attribute->getName(),$server->getValue('server','custom_attrs')))) {
    +				unset($this->attributes[$index]);
    +
    +				if (! $_SESSION[APPCONFIG]->getValue('appearance','hide_template_warning'))
    +					system_message(array(
    +						'title'=>('Automatically removed attribute from template'),
    +						'body'=>sprintf('%s: %s %s',$this->getTitle(),$attribute->getName(false),('removed from template as it is not defined by an ObjectClass')),
    +						'type'=>'warn'));
    +			}
    +	}
    +
    +	/**
    +	 * Return an array, that can be passed to ldap_add().
    +	 * Attributes with empty values will be excluded.
    +	 */
    +	public function getLDAPadd($attrsOnly=false) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		$return = array();
    +		$returnattrs = array();
    +
    +		if ($attrsOnly && count($returnattrs))
    +			return $returnattrs;
    +
    +		foreach ($this->getAttributes(true) as $attribute)
    +			if (! $attribute->isInternal() && count($attribute->getValues())) {
    +				$return[$attribute->getName()] = $attribute->getValues();
    +				$returnattrs[$attribute->getName()] = $attribute;
    +			}
    +
    +		# Ensure that our objectclasses has "top".
    +		if (isset($return['objectclass']) && ! in_array('top',$return['objectclass']))
    +			array_push($return['objectclass'],'top');
    +
    +		if ($attrsOnly)
    +			return $returnattrs;
    +
    +		return $return;
    +	}
    +
    +	/**
    +	 * Return an array, that can be passed to ldap_mod_replace().
    +	 * Only attributes that have changed their value will be returned.
    +	 *
    +	 * This function will cache its results, so that it can be called with count() to see
    +	 * if there are changes, and if they are, the 2nd call will just return the results
    +	 *
    +	 * @param boolean Return the attribute objects (useful for a confirmation process), or the modification array for ldap_modify()
    +	 */
    +	public function getLDAPmodify($attrsOnly=false,$index=0) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		static $return = array();
    +		static $returnattrs = array();
    +
    +		if ($attrsOnly && isset($returnattrs[$index]) && count($returnattrs[$index]))
    +			return $returnattrs[$index];
    +
    +		$returnattrs[$index] = array();
    +		$return[$index] = array();
    +
    +		# If an objectclass is being modified, we need to remove all the orphan attributes that would result.
    +		if ($this->getAttribute('objectclass')->hasBeenModified()) {
    +			$attr_to_keep = array();
    +			$server = $this->getServer();
    +
    +			# Make sure that there will be a structural object class remaining.
    +			$haveStructural = false;
    +			foreach ($this->getAttribute('objectclass')->getValues() as $value) {
    +				$soc = $server->getSchemaObjectClass($value);
    +
    +				if ($soc) {
    +					if ($soc->isStructural())
    +						$haveStructural = true;
    +
    +					# While we are looping, workout which attributes these objectclasses define.
    +					foreach ($soc->getMustAttrs(true) as $value)
    +						if (! in_array($value->getName(),$attr_to_keep))
    +							array_push($attr_to_keep,$value->getName());
    +
    +					foreach ($soc->getMayAttrs(true) as $value)
    +						if (! in_array($value->getName(),$attr_to_keep))
    +							array_push($attr_to_keep,$value->getName());
    +				}
    +			}
    +
    +			if (! $haveStructural)
    +				error(('An entry should have one structural objectClass.'),'error','index.php');
    +
    +			# Work out the attributes to delete.
    +			foreach ($this->getAttribute('objectclass')->getRemovedValues() as $value) {
    +				$soc = $server->getSchemaObjectClass($value);
    +
    +				foreach ($soc->getMustAttrs() as $value) {
    +					$attribute = $this->getAttribute($value->getName());
    +
    +					if ($attribute && (! in_array($value->getName(),$attr_to_keep)) && ($value->getName() != 'objectclass'))
    +						#array_push($attr_to_delete,$value->getName(false));
    +						$attribute->setForceDelete();
    +				}
    +
    +				foreach ($soc->getMayAttrs() as $value) {
    +					$attribute = $this->getAttribute($value->getName());
    +
    +					if ($attribute && (! in_array($value->getName(),$attr_to_keep)) && ($value->getName() != 'objectclass'))
    +						$attribute->setForceDelete();
    +				}
    +			}
    +		}
    +
    +		foreach ($this->getAttributes(true) as $attribute)
    +			if ($attribute->hasBeenModified()
    +				&& (count(array_diff($attribute->getValues(),$attribute->getOldValues())) || ! count($attribute->getValues())
    +					|| $attribute->isForceDelete() || (count($attribute->getValues()) != count($attribute->getOldValues()))))
    +				$returnattrs[$index][$attribute->getName()] = $attribute;
    +
    +		if ($attrsOnly)
    +			return $returnattrs[$index];
    +
    +		foreach ($returnattrs[$index] as $attribute)
    +			$return[$index][$attribute->getName()] = $attribute->getValues();
    +
    +		return $return[$index];
    +	}
    +
    +	/**
    +	 * Get the attributes that are marked as force delete
    +	 * We'll cache this result in the event of multiple calls.
    +	 */
    +	public function getForceDeleteAttrs() {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		static $result = array();
    +
    +		if (count($result))
    +			return $result;
    +
    +		foreach ($this->attributes as $attribute)
    +			if ($attribute->isForceDelete())
    +				array_push($result,$attribute);
    +
    +		return $result;
    +	}
    +
    +	/**
    +	 * Get available attributes
    +	 */
    +	public function getAvailAttrs() {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		$attributes = array();
    +		$server = $this->getServer();
    +
    +		# Initialise the Attribute Factory.
    +		$attribute_factory = new AttributeFactory();
    +
    +		if (in_array_ignore_case('extensibleobject',$this->getObjectClasses())) {
    +			foreach ($server->SchemaAttributes() as $sattr) {
    +				$attribute = $attribute_factory->newAttribute($sattr->getName(),array('values'=>array()),$server->getIndex(),null);
    +				array_push($attributes,$attribute);
    +			}
    +
    +		} else {
    +			$attrs = array();
    +
    +			foreach ($this->getObjectClasses() as $oc) {
    +				$soc = $server->getSchemaObjectClass($oc);
    +				$attrs = array_merge($attrs,$soc->getMustAttrNames(true),$soc->getMayAttrNames(true));
    +				$attrs = array_unique($attrs);
    +			}
    +
    +			foreach ($attrs as $attr)
    +				if (is_null($this->getAttribute($attr))) {
    +					$attribute = $attribute_factory->newAttribute($attr,array('values'=>array()),$server->getIndex(),null);
    +					array_push($attributes,$attribute);
    +				}
    +		}
    +
    +		masort($attributes,'name');
    +		return $attributes;
    +	}
    +
    +	public function isNoLeaf() {
    +		return $this->noleaf;
    +	}
    +}
    +?>
    diff --git a/lam/templates/3rdParty/pla/lib/TemplateRender.php b/lam/templates/3rdParty/pla/lib/TemplateRender.php
    new file mode 100644
    index 00000000..113dfda3
    --- /dev/null
    +++ b/lam/templates/3rdParty/pla/lib/TemplateRender.php
    @@ -0,0 +1,2514 @@
    +%s:%s
    ',time(),__METHOD__); + if (DEBUGTMP||DEBUGTMPSUB) printf('* %s [Visit-Start:%s]
    ',__METHOD__,get_class($this)); + + $tree = get_cached_item($this->server_id,'tree'); + if (! $tree) + $tree = Tree::getInstance($this->server_id); + + $treeitem = $tree->getEntry($this->dn); + + # If we have a DN, and no template_id, see if the tree has one from last time + if ($this->dn && is_null($this->template_id) && $treeitem && $treeitem->getTemplate()) + $this->template_id = $treeitem->getTemplate(); + + # Check that we have a valid template, or present a selection + # @todo change this so that the modification templates rendered are the ones for the objectclass of the dn. + if (! $this->template_id) + $this->template_id = $this->getTemplateChoice(); + + if ($treeitem) + $treeitem->setTemplate($this->template_id); + + $this->page = get_request('page','REQUEST',false,1); + + if ($this->template_id) { + if (! $this->template) + parent::accept(); + + $this->url_base = sprintf('server_id=%s&dn=%s', + $this->getServerID(),$this->template->getDNEncode()); + $this->layout['hint'] = sprintf('%s%%s', + IMGDIR,_('Hint')); + $this->layout['action'] = '%s%s'; + $this->layout['actionajax'] = '%s%s'; + + # If we dont want to render this template automatically, we'll return here. + if ($norender) + return; + + $this->visitStart(); + + foreach ($this->template->getAttributes(true) as $attribute) { + # Evaluate our defaults + if ($attribute->getAutoValue()) + $this->get('Default',$attribute, + $this->template->getContainer() ? $this->template->getContainer() : $this->getServer()->getContainerPath($this->template->getDN()), + 'autovalue'); + + # If this is the default template, we should mark all our attributes to show(). + if (($this->template->getID() == 'none') && (! $attribute->isInternal()) + && (($this->template->getContext() == 'edit' && $this->template->getID() == 'none') + || ($this->template->getContext() == 'create' && $attribute->getName() != 'objectclass'))) + $attribute->show(); + } + + if (DEBUGTMP||DEBUGTMPSUB) printf('* %s [Visit-End:%s]
    ',__METHOD__,get_class($this)); + + $this->visitEnd(); + } + } + + protected function getDefaultAttribute($attribute,$container,$type) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + switch ($type) { + case 'autovalue': + $autovalue = $attribute->getAutoValue(); + + break; + + case 'helpervalue': + $autovalue = $attribute->getHelperValue(); + + break; + + default: + system_message(array( + 'title'=>('Unknown Default Attribute context'), + 'body'=>sprintf('%s (%s)',('A call was made to getDefaultAttribute() with an unkown context'),$type), + 'type'=>'warn')); + + return; + } + + $args = explode(';',$autovalue['args']); + $server = $this->getServer(); + $vals = ''; + + switch ($autovalue['function']) { + /** + * Function enables normal PHP functions to be called to evaluate a value. + * eg: =php.Function(date;dmY) + * + * All arguments will be passed to the function, and its value returned. + * If this used used in a POST context, the attribute values can be used as arguments. + * + * Mandatory Arguments: + * * arg 0 + * - php Function to call + * + * Additional arguments will be passed to the function. + */ + case 'Function': + $function = array_shift($args); + + if (count($args) && count($args) > 1) { + system_message(array( + 'title'=>('Too many arguments'), + 'body'=>sprintf('%s (%s)',('Function() only takes two arguments and more than two were specified'),count($args)), + 'type'=>'warn')); + + return; + } + + $function_args = explode(',',$args[0]); + + if (function_exists($function)) + $vals = call_user_func_array($function,$function_args); + + else + system_message(array( + 'title'=>('Function doesnt exist'), + 'body'=>sprintf('%s (%s)',('An attempt was made to call a function that doesnt exist'),$function), + 'type'=>'warn')); + + break; + + /** + * GetNextNumber will query the LDAP server and calculate the next number based on the query + * eg: + * + * Mandatory Arguments: + * * arg 0 + * - "$" => 'auto_number','search_base' in config file + * - "/",".",".." => get container parent as usual + * + * * arg 1 + * - attribute to query for + * + * Optional Arguments: + * * arg 2 (pool mechanism only) + * - "true" increments attribute by 1 + * - "false" do nothing + * + * * arg 3 (pool mechanism only) + * - ldap filter (must match one entry only in container) + * + * * arg 4 + * - calculus on number, eg: + * - *2,+1000 => number = (2*number) + 1000 + * + * * arg 5 + * - Min number + */ + case 'GetNextNumber': + # If the attribute already has values, we'll return + if ($type == 'autovalue' && $attribute->getValues()) + return; + + if ($args[0] == '$') + $args[0] = $server->getValue($this->server_id,'auto_number','search_base'); + + $container = $server->getContainerPath($container,$args[0]); + + $vals = get_next_number($container,$args[1], + (! empty($args[2]) && ($args[2] == 'false')) ? false : true, + (! empty($args[3])) ? $args[3] : false, + (! empty($args[5])) ? $args[5] : null); + + # Operate calculus on next number. + if (! empty($args[4])) { + $mod = explode(',',$args[4]); + $next_number = $vals; + + foreach ($mod as $calc) { + $operand = $calc{0}; + $operator = substr ($calc,1); + + switch ($operand) { + case '*': + $next_number = $next_number * $operator; + break; + + case '+': + $next_number = $next_number + $operator; + break; + + case '-': + $next_number = $next_number - $operator; + break; + + case '/': + $next_number = $next_number / $operator; + break; + } + } + + $vals = $next_number; + } + + break; + + /** + * PickList will query the LDAP server and provide a select list of values + * MultiList will query the LDAP server and provide a multi select list of values + * eg: + * + * eg: cn=root,nobody => cn=nobody;gidNumber;10)]]> + * + * Mandatory Arguments: + * * arg 0 + * - container, to query from current position + * - "/",".",".." => get container parent as usual + * + * * arg 1 + * - LDAP filter. May include '%attr%', it will be expanded. + * + * * arg2 + * - list attribute key + * + * Optional Arguments: + * * arg3 + * - select display (plus modifier /C: Capitalize) + * - replaced by %arg 2% if not given + * + * * arg 4 + * - the value furnished in output - must be attribute id. replaced by arg 2 if not given + * + * * arg 5 + * - container override + * + * * arg 6 + * - csv list (, separator) of added values. syntax: key => display_attribute=value, key... + * + * * arg 7 + * - csv list (, separator) of sort attributes (less to more important) + * + * * arg 8 (for MultiList) + * - size of displayed list (default: 10 lines) + */ + case 'MultiList': + case 'PickList': + # arg5 overrides our container + if (empty($args[5])) + $container = $server->getContainerPath($container,$args[0]); + else + $container = $args[5]; + + # Process filter (arg 1), eventually replace %attr% by it's value set in a previous page. + preg_match_all('/%(\w+)(\|.+)?(\/[lUC])?%/U',$args[1],$filtermatchall); + //print_r($matchall); // -1 = highlevel match, 1 = attr, 2 = subst, 3 = mod + + if (isset($_REQUEST['form'])) { + $formvalues = array_change_key_case($_REQUEST['form']); + + foreach ($filtermatchall[1] as $arg) { + $value = $formvalues[strtolower($arg)]; + $args[1] = preg_replace("/%($arg)(\|.+)?(\/[lU])?%/U",$value,$args[1]); + } + } + + if (empty($args[3])) + $args[3] = "%{$args[2]}%"; + + preg_match_all('/%(\w+)(\|.+)?(\/[lUC])?%/U',$args[3],$matchall); + //print_r($matchall); // -1 = highlevel match, 1 = attr, 2 = subst, 3 = mod + + $attrs = array_unique(array_merge($matchall[1],array($args[2]))); + + # arg7 is sort attributes + if (isset($args[7])) { + $sort_attrs = explode(',',$args[7]); + $attrs = array_unique(array_merge($attrs,$sort_attrs)); + } + + $picklistvalues = return_ldap_hash($container,$args[1],$args[2],$attrs,(isset($args[7]) && ($args[7])) ? $sort_attrs : false); + + # arg6 is a set of fixed values to add to search result + if (isset($args[6])) { + $fixedvalues = explode(',',$args[6]); + + foreach ($fixedvalues as $fixedvalue) { + if (empty($fixedvalue)) + continue; + + $fixedvalue = preg_split('/=\>/',$fixedvalue); + $displayvalue = explode('=',$fixedvalue[1]); + + $newvalue[trim($fixedvalue[0])] = array($args[2]=>trim($fixedvalue[0]),trim($displayvalue[0])=>trim($displayvalue[1])); + + $picklistvalues = array_merge($picklistvalues,$newvalue); + } + } + + $vals = array(); + + foreach ($picklistvalues as $key => $values) { + $display = $args[3]; + + foreach ($matchall[1] as $key => $arg) { + if (isset($values[$arg])) + $disp_val = $values[$arg]; + else + $disp_val = ''; + + if (is_array($disp_val)) + $disp_val = $disp_val[0]; + + if ($matchall[3][$key]) + switch ($matchall[3][$key]) { + case '/l': + # lowercase + if (function_exists('mb_convert_case')) + $disp_val = mb_convert_case($disp_val,MB_CASE_LOWER,'utf-8'); + else + $disp_val = strtolower($disp_val); + + break; + + case '/U': + # uppercase + if (function_exists('mb_convert_case')) + $disp_val = mb_convert_case($disp_val,MB_CASE_UPPER,'utf-8'); + else + $disp_val = strtoupper($disp_val); + + break; + + case '/C': + # capitalize + if (function_exists('mb_convert_case')) + $disp_val = mb_convert_case($disp_val,MB_CASE_TITLE,'utf-8'); + else + $disp_val = ucfirst($disp_val); + + break; + + default: + break; + } + + # make value a substring of + preg_match_all('/^\|([0-9]*)-([0-9]*)$/',trim($matchall[2][$key]),$substrarray); + + if ((isset($substrarray[1][0]) && $substrarray[1][0]) || (isset($substrarray[2][0]) && $substrarray[2][0])) { + $begin = $substrarray[1][0] ? $substrarray[1][0] : '0'; + $end = $substrarray[2][0] ? $substrarray[2][0] : strlen($disp_val); + + if (function_exists('mb_substr')) + $disp_val = mb_substr($disp_val,$begin,$end,'utf-8'); + else + $disp_val = substr($disp_val,$begin,$end); + } + + $display = preg_replace("/%($arg)(\|.+)?(\/[lUC])?%/U",$disp_val,$display); + } + + if (! isset($picklist[$values[$args[2]]])) { + $vals[$values[$args[2]]] = $display; + $picklist[$values[$args[2]]] = true; + } + } + + break; + + /** + * PasswordEncryptionTypes will return a list of our support password encryption types + * eg: =php.PasswordEncryptionTypes() + * + * This function doesnt use any arguments + */ + case 'PasswordEncryptionTypes': + $vals = password_types(); + + break; + + /** + * RandomPassword will create a random password for the value. + * eg: =php.RandomPassword() + * + * When calling the attribute Javascript it will generate a random password. + * + * This function doesnt use any arguments + */ + case 'RandomPassword': + break; + } + + switch ($type) { + case 'autovalue': + if (! is_array($vals)) + $attribute->autoValue(array($vals)); + else + $attribute->autoValue($vals); + + break; + + case 'helpervalue': + return $vals; + } + } + + /** + * Set the mode of the TemplateRender + * Applicable modes are "create" or "edit" + */ + protected function getMode() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($this->dn) + return 'modification'; + elseif ($this->container) + return 'creation'; + elseif (get_request('create_base')) + return 'creation'; + else + debug_dump_backtrace(sprintf('Unknown mode for %s',__METHOD__),1); + } + + /** + * Return the container for this mode + */ + protected function getModeContainer() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + switch ($this->getMode()) { + case 'creation': + return $this->container; + break; + + case 'modification': + return $this->dn; + break; + + default: + return null; + } + } + + /** + * Is the default template enabled? + */ + protected function haveDefaultTemplate() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($_SESSION[APPCONFIG]->getValue('appearance','disable_default_template')) + return false; + else + return true; + } + + /** + * Present a list of available templates for creating and editing LDAP entries + */ + protected function drawTemplateChoice() { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $this->drawTitle(); + $this->drawSubTitle(); + echo "\n"; + + switch ($this->getMode()) { + case 'creation': + $msg = _('Select a template for the creation process'); + break; + + case 'modification': + $msg = _('Select a template to edit the entry'); + break; + } + + $avail_templates = $this->getTemplates(); + $templates = $avail_templates->getTemplates($this->getMode(),$this->getModeContainer()); + printf('

    %s

    ',$msg); + + $href_parms = array_to_query_string($_GET,array('meth')); + printf('
    ',htmlspecialchars($href_parms)); + echo "\n\n"; + + if (count($_POST)) { + echo '
    '; + foreach ($_POST as $p => $v) + printf('',$p,$v); + echo '
    '; + echo "\n\n"; + } + + echo ''; + echo ''; + printf('',_('Templates')); + echo ''; + + echo '
    %s:'; + echo ''; + + $i = -1; + $nb_templates = count($templates); + + if ($this->haveDefaultTemplate()) + $nb_templates++; + + foreach ($templates as $name => $details) { + $i++; + + $isInValid = $details->isInValid(); + + # Balance the columns properly + if (($nb_templates % 2 == 0 && $i == intval($nb_templates / 2)) || + ($nb_templates % 2 == 1 && $i == intval($nb_templates / 2) + 1)) { + echo '
    '; + } + + echo "\n"; + echo ''; + + if ($isInValid) + printf('',IMGDIR); + + else { + if (isAjaxEnabled()) + printf('', + htmlspecialchars($details->getID()),htmlspecialchars($details->getID()),htmlspecialchars($href_parms),$details->getID(),str_replace('\'','\\\'',_('Retrieving DN'))); + else + printf('', + htmlspecialchars($details->getID()),htmlspecialchars($details->getID())); + } + + printf('', + htmlspecialchars($details->getID()),$details->getIcon()); + printf(''; + echo ''; + } + echo "\n"; + + # Default template + if ($this->haveDefaultTemplate()) { + $i++; + + # Balance the columns properly + if (($nb_templates % 2 == 0 && $i == intval($nb_templates / 2)) || + ($nb_templates % 2 == 1 && $i == intval($nb_templates / 2) + 1)) { + echo '
    Disabled
    '; + } + + echo ''; + if (isAjaxEnabled()) + printf('', + htmlspecialchars($href_parms),'none',str_replace('\'','\\\'',_('Retrieving DN'))); + else + echo ''; + + printf('',IMGDIR); + printf('',_('Default')); + echo ''; + } + + echo '
    '; + echo '
    '; + echo '
    '; + } + + /** VISIT METHODS **/ + + /** + * This function will setup our template object (read LDAP for current values, read $_REQUEST for new values, etc) + * so that it can be rendered. + */ + private function visitStart() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + # If we have a DN, then we are an editing template + if ($this->dn) + $this->template->setDN($this->dn); + + # Else if we have a container, we are a creating template + elseif ($this->container || get_request('create_base')) + $this->template->setContainer($this->container); + + else + debug_dump_backtrace('Dont know what type of template we are - no DN or CONTAINER?',1); + + # Header + $this->drawHeader(); + } + + private function visitEnd() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + foreach ($this->template->getAttributesShown() as $attribute) + if ($attribute->getPage() > $this->pagelast) + $this->pagelast = $attribute->getPage(); + echo "\n\n"; + + if ($this->template->getContext() == 'create') { + $this->drawStepTitle($this->page); + $this->drawStepFormStart($this->page); + $this->drawStepForm($this->page); + $this->drawStepFormEnd(); + + } elseif ($this->template->getContext() == 'copyasnew') { + $this->drawStepFormStart($this->page); + printf('',$this->template->getContainer(false)); + echo '
    '; + $this->drawRDNChooser(); + echo '
    '; + $this->drawForm(true); + $this->drawStepFormSubmitButton($this->page); + + } else { + # Draw internal attributes + if (get_request('show_internal_attrs','REQUEST')) { + echo ''; + $this->drawInternalAttributes(); + echo '

    '; + echo "\n"; + } + + $this->drawFormStart(); + + # To support our AJAX add Attribute + printf('
    ','none'); + + $this->drawForm(); + $this->drawStepFormEnd(); + } + } + + /** PAGE DRAWING METHODS **/ + + private function drawHeader() { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + # Title + $this->drawTitle(); + if (get_request('create_base')) + $this->drawSubTitle(sprintf('%s: %s',('Creating Base DN'),$this->template->getDN())); + else + $this->drawSubTitle(); + echo "\n"; + + # Menu + $this->drawMenu(); + } + + public function drawTitle($title=null) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + if (is_null($title)) + switch ($this->getMode()) { + case 'creation': + $title = _('Create object'); + break; + + case 'modification': + $title = htmlspecialchars(get_rdn($this->dn)); + break; + + default: + $title = 'Title'; + } + + parent::drawTitle($title); + } + + public function drawSubTitle($subtitle=null) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + if ($subtitle) + return parent::drawSubTitle($subtitle); + + switch ($this->getMode()) { + case 'creation': + $subtitle = sprintf('%s: %s', + _('Container'),htmlspecialchars($this->container)); + + if ($this->template_id) { + $subtitle .= '
    '; + $subtitle .= sprintf('%s: %s',_('Template'),$this->template->getID() != 'none' ? $this->template->getTitle() : _('Default')); + if ($this->template->getName()) + $subtitle .= sprintf(' (%s)',$this->template->getName(false)); + } + + break; + + case 'modification': + $subtitle = sprintf('%s: %s', + _('DN'),htmlspecialchars($this->dn)); + + break; + } + + parent::drawSubTitle($subtitle); + } + + /** PAGE ENTRY MENU **/ + + private function drawMenu() { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + # We only have a menu for editing entries. + if ($this->template->getContext() == 'edit') { + + echo ''; + echo ''; + $menuitem_number = 0; + + foreach (array('entryrefresh','showinternal','switchtemplate','entryexport','entrycopy','entrydelete','entryrename','entrycompare','childcreate','addattr','msgdel','childview','childexport','msgschema','msgro','msgmodattr') as $item) { + $item = $this->getMenuItem($item); + + if ($item) { + $endofrow = false; + $start = true; + $it = ''; // menu item + $ms = ''; // item message + + if (is_array($item) && count($item) > 0) { + $it = $item[0]; + + if (count($item) > 1) + $ms = $item[1]; + + } else { + $it = $item; + } + + if ($it) { + $menuitem_number++; + echo $it; + + if ($ms) { + if (($menuitem_number % 2) == 1) { + $menuitem_number++; + echo ''; + $endofrow = false; + $start = false; + } + + if ($endofrow) + print $ms; + else + echo "$ms"; + + echo ''; + $endofrow = true; + $start = false; + + } else { + if ($menuitem_number > 1 && ($menuitem_number % 2) == 0) { + echo ''; + $endofrow = true; + $start = false; + } + } + + } elseif ($ms) { + if (($menuitem_number % 2) == 1) { + $menuitem_number++; + echo ''; + $endofrow = false; + $start = false; + } + + if ($endofrow || $start) + print $ms; + else + echo "$ms"; + + echo ''; + $endofrow = true; + $start = false; + } + + echo "\n"; + } + } + + if (($menuitem_number % 2) == 1) + echo ''; + else + echo ''; + + echo ''; + echo ''; + } + } + + /** PAGE ENTRY MENU ITEMS **/ + + private function getMenuItem($i) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s (%s)
    ',__METHOD__,$i); + + switch ($i) { + case 'entryrefresh': + if ($_SESSION[APPCONFIG]->isCommandAvailable('cmd','entry_refresh')) + return $this->getMenuItemRefresh(); + else + return ''; + + case 'switchtemplate': + if ($_SESSION[APPCONFIG]->isCommandAvailable('cmd','switch_template')) + return $this->getMenuItemSwitchTemplate(); + else + return ''; + + case 'entryexport': + if ($_SESSION[APPCONFIG]->isCommandAvailable('script','export_form') && $_SESSION[APPCONFIG]->isCommandAvailable('script','export')) + return $this->getMenuItemExportBase(); + else + return ''; + + case 'entrycopy': + if ($_SESSION[APPCONFIG]->isCommandAvailable('script','copy_form') && $_SESSION[APPCONFIG]->isCommandAvailable('script','copy') && ! $this->template->isReadOnly()) + return $this->getMenuItemMove(); + else + return ''; + + case 'showinternal': + if ($_SESSION[APPCONFIG]->isCommandAvailable('cmd','entry_internal_attributes_show')) + return $this->getMenuItemInternalAttributes(); + else + return ''; + + case 'entrydelete': + if ($_SESSION[APPCONFIG]->isCommandAvailable('script','delete_form') && $_SESSION[APPCONFIG]->isCommandAvailable('script','delete') && ! $this->template->isReadOnly()) + return $this->getMenuItemDelete(); + else + return ''; + + case 'entryrename': + if ($_SESSION[APPCONFIG]->isCommandAvailable('script','rename_form') && $_SESSION[APPCONFIG]->isCommandAvailable('script','rename') && ! $this->template->isReadOnly()) { + + # Check if any of the RDN's are read only. + $rdnro = false; + foreach ($this->template->getRDNAttributeName() as $attr) { + $attribute = $this->template->getAttribute($attr); + + if ($attribute && $attribute->isVisible() && ! $attribute->isReadOnly()) { + $rdnro = true; + break; + } + } + + if (! $rdnro) + return $this->getMenuItemRename(); + } + + return ''; + + case 'msgdel': + if ($_SESSION[APPCONFIG]->getValue('appearance','show_hints') + && $_SESSION[APPCONFIG]->isCommandAvailable('script','delete_form') && $_SESSION[APPCONFIG]->isCommandAvailable('script','delete') && ! $this->template->isReadOnly()) + return array('',$this->getDeleteAttributeMessage()); + else + return ''; + + case 'entrycompare': + if ($_SESSION[APPCONFIG]->isCommandAvailable('script','compare_form') && $_SESSION[APPCONFIG]->isCommandAvailable('script','compare') && ! $this->template->isReadOnly()) + return $this->getMenuItemCompare(); + else + return ''; + + case 'childcreate': + if ($_SESSION[APPCONFIG]->isCommandAvailable('script','create') && ! $this->template->isReadOnly() && ! $this->template->isNoLeaf()) + return $this->getMenuItemCreate(); + else + return ''; + + case 'addattr': + if ($_SESSION[APPCONFIG]->isCommandAvailable('script','add_attr_form') && ! $this->template->isReadOnly()) + return $this->getMenuItemAddAttribute(); + else + return ''; + + case 'childview': + case 'childexport': + static $children_count = false; + static $more_children = false; + + $tree = get_cached_item($this->getServerID(),'tree'); + $tree_item = $tree->getEntry($this->template->getDN()); + + if (! $tree_item) { + $tree->addEntry($this->template->getDN()); + $tree_item = $tree->getEntry($this->template->getDN()); + } + + if ($children_count === false) { + # Visible children in the tree + $children_count = count($tree_item->getChildren()); + # Is there filtered children ? + $more_children = $tree_item->isSizeLimited(); + + if (! $children_count || ! $more_children) { + # All children in ldap + $all_children = $this->getServer()->getContainerContents( + $this->template->getDN(),null,$children_count+1,'(objectClass=*)',$_SESSION[APPCONFIG]->getValue('deref','view'),null); + + $more_children = (count($all_children) > $children_count); + } + } + + if ($children_count > 0 || $more_children) { + if ($children_count <= 0) + $children_count = ''; + if ($more_children) + $children_count .= '+'; + + if ($i == 'childview') + return $this->getMenuItemShowChildren($children_count); + elseif ($i == 'childexport' && $_SESSION[APPCONFIG]->isCommandAvailable('script','export_form') && $_SESSION[APPCONFIG]->isCommandAvailable('script','export')) + return $this->getMenuItemExportSub(); + else + return ''; + + } else + return ''; + + case 'msgschema': + if ($_SESSION[APPCONFIG]->getValue('appearance','show_hints') && $_SESSION[APPCONFIG]->isCommandAvailable('script','schema')) + return array('',$this->getViewSchemaMessage()); + else + return array(); + + case 'msgro': + if ($this->template->isReadOnly()) + return array('',$this->getReadOnlyMessage()); + else + return array(); + + case 'msgmodattr': + $modified_attrs = array(); + $modified = get_request('modified_attrs','REQUEST',false,array()); + + foreach ($this->template->getAttributes(true) as $attribute) + if (in_array($attribute->getName(),$modified)) + array_push($modified_attrs,$attribute->getFriendlyName()); + + if (count($modified_attrs)) + return array('',$this->getModifiedAttributesMessage($modified_attrs)); + else + return array(); + + default: + return false; + } + } + + protected function getDeleteAttributeMessage() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + if ($_SESSION[APPCONFIG]->isCommandAvailable('script','delete_attr') && ! $this->template->isReadOnly()) + return sprintf($this->layout['hint'],_('Hint: To delete an attribute, empty the text field and click save.')); + else + return ''; + } + + protected function getModifiedAttributesMessage(&$modified_attributes) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + return sprintf($this->layout['hint'], + (count($modified_attributes) == 1) ? + sprintf(_('An attribute (%s) was modified and is highlighted below.'),implode('',$modified_attributes)) : + sprintf(_('Some attributes (%s) were modified and are highlighted below.'),implode(', ',$modified_attributes))); + } + + protected function getReadOnlyMessage() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + return sprintf($this->layout['hint'],_('Viewing entry in read-only mode.')); + } + + protected function getViewSchemaMessage() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + return sprintf($this->layout['hint'],('Hint: To view the schema for an attribute, click the attribute name.')); + } + + /** PAGE ENTRY MENU ITEMS DETAILS **/ + + private function getMenuItemRefresh() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $href = sprintf('cmd=template_engine&%s&junk=%s',$this->url_base,random_junk()); + + if (isAjaxEnabled()) + return sprintf($this->layout['actionajax'],IMGDIR,'refresh.png',_('Refresh'), + htmlspecialchars($href),_('Refresh this entry'),htmlspecialchars($href),str_replace('\'','\\\'',_('Reloading')),_('Refresh')); + else + return sprintf($this->layout['action'],IMGDIR,'refresh.png',_('Refresh'), + htmlspecialchars($href),_('Refresh this entry'),_('Refresh')); + } + + protected function getMenuItemSwitchTemplate() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $href = sprintf('cmd=template_engine&%s&template=',$this->url_base); + + if (isAjaxEnabled()) + return sprintf($this->layout['actionajax'],IMGDIR,'switch.png',('Switch Template'), + htmlspecialchars($href),('Change to another template'),htmlspecialchars($href),str_replace('\'','\\\'',('Loading')),('Switch Template')); + else + return sprintf($this->layout['action'],IMGDIR,'switch.png',('Switch Template'), + htmlspecialchars($href),('Change to another template'),('Switch Template')); + } + + protected function getMenuItemExportBase() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $href = sprintf('cmd=export_form&%s&scope=base',$this->url_base); + + if (isAjaxEnabled()) + return sprintf($this->layout['actionajax'],IMGDIR,'export.png',_('Export'), + htmlspecialchars($href),_('Save a dump of this object'),htmlspecialchars($href),str_replace('\'','\\\'',_('Loading')),_('Export')); + else + return sprintf($this->layout['action'],IMGDIR,'export.png',_('Export'), + htmlspecialchars($href),_('Save a dump of this object'),_('Export')); + } + + private function getMenuItemMove() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $href = sprintf('cmd=copy_form&%s',$this->url_base); + + if (isAjaxEnabled()) + return sprintf($this->layout['actionajax'],IMGDIR,'cut.png',_('Cut'), + htmlspecialchars($href),_('Copy or move this entry'), + htmlspecialchars($href),str_replace('\'','\\\'',_('Loading')),_('Copy or move this entry')); + else + return sprintf($this->layout['action'],IMGDIR,'cut.png',_('Cut'), + htmlspecialchars($href),_('Copy or move this entry'), + _('Copy or move this entry')); + } + + protected function getMenuItemInternalAttributes() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + if (get_request('show_internal_attrs','REQUEST')) { + $href = sprintf('cmd=template_engine&%s&junk=',$this->url_base,random_junk()); + + return sprintf($this->layout['action'],IMGDIR,'tools-no.png',_('Hide'), + htmlspecialchars($href),'',_('Hide internal attributes')); + + } else { + $href = sprintf('cmd=template_engine&show_internal_attrs=true&%s',$this->url_base); + + return sprintf($this->layout['action'],IMGDIR,'tools.png',_('Show'), + htmlspecialchars($href),'',_('Show internal attributes')); + } + } + + private function getMenuItemDelete() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $href = sprintf('cmd=delete_form&%s',$this->url_base); + + if (isAjaxEnabled()) + return sprintf($this->layout['actionajax'],IMGDIR,'trash.png',('Trash'), + htmlspecialchars($href),_('You will be prompted to confirm this decision'), + htmlspecialchars($href),str_replace('\'','\\\'',_('Loading')),_('Delete this entry')); + else + return sprintf($this->layout['action'],IMGDIR,'trash.png',('Trash'), + htmlspecialchars($href),_('You will be prompted to confirm this decision'),_('Delete this entry')); + } + + protected function getMenuItemRename() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $href = sprintf('cmd=rename_form&%s&template=%s',$this->url_base,$this->template->getID()); + + if (isAjaxEnabled()) + return sprintf($this->layout['actionajax'],IMGDIR,'rename.png',_('Rename'), + htmlspecialchars($href),_('Rename this entry'),htmlspecialchars($href),str_replace('\'','\\\'',_('Loading')),_('Rename')); + else + return sprintf($this->layout['action'],IMGDIR,'rename.png',_('Rename'), + htmlspecialchars($href),_('Rename this entry'),_('Rename')); + } + + protected function getMenuItemCompare() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $href = sprintf('cmd=compare_form&%s',$this->url_base); + + if (isAjaxEnabled()) + return sprintf($this->layout['actionajax'],IMGDIR,'compare.png',_('Compare'), + htmlspecialchars($href),_('Compare this DN with another'), + htmlspecialchars($href),str_replace('\'','\\\'',_('Loading')),_('Compare with another entry')); + else + return sprintf($this->layout['action'],IMGDIR,'compare.png',_('Compare'), + htmlspecialchars($href),_('Compare this DN with another'),_('Compare with another entry')); + } + + protected function getMenuItemCreate() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $href = sprintf('cmd=template_engine&server_id=%s&container=%s',$this->getServerID(),$this->template->getDNEncode()); + + if (isAjaxEnabled()) + return sprintf($this->layout['actionajax'],IMGDIR,'create.png',_('Create'), + htmlspecialchars($href),_('Create a child entry'), + htmlspecialchars($href),str_replace('\'','\\\'',_('Loading')),_('Create a child entry')); + else + return sprintf($this->layout['action'],IMGDIR,'create.png',_('Create'), + htmlspecialchars($href),_('Create a child entry'),_('Create a child entry')); + } + + protected function getMenuItemAddAttribute() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + if (! $this->template->getAvailAttrs()) + return ''; + + $href = sprintf('cmd=add_attr_form&%s',$this->url_base); + $layout = '%s%s'; + + if (isAjaxEnabled()) + return sprintf($layout,IMGDIR,'add.png',_('Add'), + htmlspecialchars($href),_('Add new attribute to this object'), + htmlspecialchars($href),str_replace('\'','\\\'',_('Add new attribute')),_('Add new attribute')); + else + return sprintf($this->layout['action'],IMGDIR,'add.png',_('Add'), + htmlspecialchars($href),_('Add new attribute to this object'),_('Add new attribute')); + } + + protected function getMenuItemShowChildren($children_count) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $href = sprintf('cmd=query_engine&server_id=%s&filter=%s&base=%s&scope=one&query=none&size_limit=0&search=true', + $this->getServerID(),rawurlencode('objectClass=*'),$this->template->getDNEncode()); + + if (isAjaxEnabled()) + return sprintf($this->layout['actionajax'],IMGDIR,'children.png',_('Children'), + htmlspecialchars($href),_('View the children of this object'), + htmlspecialchars($href),str_replace('\'','\\\'',_('Loading')), + ($children_count == 1) ? _('View 1 child') : sprintf(_('View %s children'),$children_count)); + else + return sprintf($this->layout['action'],IMGDIR,'children.png',_('Children'), + htmlspecialchars($href),_('View the children of this object'), + ($children_count == 1) ? _('View 1 child') : sprintf(_('View %s children'),$children_count)); + } + + protected function getMenuItemExportSub() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $href = sprintf('cmd=export_form&%s&scope=%s',$this->url_base,'sub'); + + if (isAjaxEnabled()) + return sprintf($this->layout['actionajax'],IMGDIR,'export.png',_('Save'), + htmlspecialchars($href),_('Save a dump of this object and all of its children'), + htmlspecialchars($href),str_replace('\'','\\\'',_('Loading')),_('Export subtree')); + else + return sprintf($this->layout['action'],IMGDIR,'export.png',_('Save'), + htmlspecialchars($href),_('Save a dump of this object and all of its children'),_('Export subtree')); + } + + /** CHOOSERS **/ + + /** + * RDN Chooser + */ + protected function drawRDNChooser() { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + if (! count($this->template->getRDNAttrs())) { + printf('%s','RDN'); + + echo ''; + + } else { + echo ''; + foreach ($this->template->getRDNAttrs() as $rdn) + printf('',htmlspecialchars($rdn)); + + if (get_request('create_base')) + echo ''; + + echo ''; + } + } + + /** + * Container Chooser + */ + protected function drawContainerChooser($default_container) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + echo ''; + printf('%s',_('Container')); + echo ''; + if (get_request('create_base')) + printf('%s',$default_container,htmlspecialchars($default_container)); + else { + printf('',htmlspecialchars($default_container)); + draw_chooser_link('entry_form','container'); + } + echo ''; + echo ''; + } + + /** + * Object Class Chooser + */ + protected function drawObjectClassChooser() { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $socs = $this->getServer()->SchemaObjectClasses(); + if (! $socs) + $socs = array(); + + echo ''; + printf('%s',_('Object classes')); + echo ''; + echo ''; + echo ''; + + if ($_SESSION[APPCONFIG]->getValue('appearance','show_hints')) { + printf(' Hint',IMGDIR); + echo _('Hint: You must choose exactly one structural object class (shown in bold above)'); + echo '
    '; + } + } + + /** INTERNAL ATTRIBUTES **/ + + protected function drawInternalAttributes() { + if ($this->template->getAttributesInternal()) + foreach ($this->template->getAttributesInternal() as $attribute) + $this->draw('Internal',$attribute); + else + printf('(%s)
    ',_('No internal attributes')); + + echo "\n"; + } + + protected function drawInternalAttribute($attribute) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $this->draw('Template',$attribute); + } + + /** FORM METHODS **/ + + public function drawFormStart() { + echo '
    '; + + echo '
    '; + if ($_SESSION[APPCONFIG]->getValue('confirm','update')) + echo ''; + else + echo ''; + echo '
    '; + } + + protected function drawForm($nosubmit=false) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + echo '
    '; + printf('',$this->getServerID()); + printf('',$this->template->getDNEncode(false)); + printf('',$this->template->getID()); + echo '
    '; + + echo ''; + + $this->drawShownAttributes(); + if (! $nosubmit) + $this->drawFormSubmitButton(); + + echo '
    '; + + echo '
     '; + $this->drawHiddenAttributes(); + echo '
    '; + } + + public function drawFormEnd() { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + # Include the RDN details to support creating the base + if (get_request('create_base')) { + if (get_request('rdn')) { + $rdn = explode('=',get_request('rdn')); + echo '
    '; + printf('',$rdn[0],$rdn[1]); + printf('',$rdn[0]); + echo '
    '; + } + } + + echo '
    '; + + # Javascript + $this->drawJavascript(); + + # For debugging, show the template object. + if (! $_SESSION[APPCONFIG]->getValue('appearance','hide_debug_info') && get_request('debug','GET')) { + echo "\n\n"; + printf('Plus',IMGDIR); + echo ''; + } + } + + public function drawFormSubmitButton() { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + if (! $this->template->isReadOnly()) + // @todo cant use AJAX here, it affects file uploads. + printf('', + _('Update object')); + } + + /** STEP FORM METHODS **/ + + private function drawStepTitle($page) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + if (DEBUGTMP||DEBUGTMPSUB) printf('* %s [templateNAME:%s]
    ',__METHOD__,$this->template->getName()); + + # The default template needs to ask the user for objectClasses. + if ($this->template->isType('default')) { + # The default template only uses 2 pages + $this->pagelast = 2; + + echo '

    '; + printf('%s: ',sprintf(_('Step %s of %s'),$page,$this->pagelast)); + + if ($page == 1) + echo _('Container and object classes'); + else + echo _('Specify attributes and values'); + + echo '

    '; + + } elseif ($this->template->getDescription()) + printf('

    %s (%s)

    ', + _($this->template->getDescription()), + sprintf(_('Step %s of %s'),$page,$this->pagelast)); + } + + private function drawStepFormStart($page) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + if (($this->template->isType('default') && $this->template->getContext() == 'create' && $page == 1) || $page < $this->pagelast) { + echo '
    '; + echo '
    '; + + } else { + echo ''; + echo '
    '; + + if ($_SESSION[APPCONFIG]->getValue('confirm','create') && ! get_request('create_base')) + echo ''; + else + echo ''; + } + } + + protected function drawStepForm($page) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + printf('',$this->getServerID()); + printf('',$this->template->getID()); + printf('',$page+1); + if (get_request('create_base')) + echo ''; + + $this->drawHiddenAttributes(); + + if ($this->template->isType('default') && $page == 1) { + echo '
    '; + + echo ''; + + $this->drawContainerChooser($this->template->getContainer()); + $this->drawObjectClassChooser(); + + } else { + printf('',$this->template->getContainerEncode(false)); + echo ''; + + echo '
    '; + + $this->drawRDNChooser(); + + if ($this->template->isType('default') && $this->template->getContext() == 'create') + $this->drawStepFormDefaultAttributes(); + else + $this->drawShownAttributes(); + } + + $this->drawStepFormSubmitButton($page); + + echo '
    '; + } + + private function drawStepFormEnd() { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $this->drawFormEnd(); + } + + private function drawStepFormSubmitButton($page) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + echo ''; + if ($page < $this->pagelast) + printf(' ',_('Proceed')); + else + // @todo cant use AJAX here, it affects file uploads. + printf('', + _('Create object')); + echo ''; + } + + /** + * Given our known objectClass in the template, this will render the required MAY and optional MUST attributes + */ + private function drawStepFormDefaultAttributes() { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + # Put required attributes first + $attrs = array(); + $attrs['required'] = array(); + $attrs['optional'] = array(); + foreach ($this->template->getAttributes(true) as $attribute) { + # Skip the objectclass attribute, we already know it in a default creation form. + if ($attribute->getName() == 'objectclass') + continue; + + if ($attribute->isRequired()) + array_push($attrs['required'],$attribute); + + elseif (! $attribute->getValues()) + array_push($attrs['optional'],$attribute); + } + + printf('%s',_('Required attributes')); + if (count($attrs['required'])) + foreach ($attrs['required'] as $attribute) + $this->draw('Template',$attribute); + + else + printf('(%s)',_('none')); + + printf('%s',_('Optional attributes')); + if (count($attrs['optional'])) + foreach ($attrs['optional'] as $attribute) + $this->draw('Template',$attribute); + + else + printf('(%s)',_('none')); + + echo "\n"; + } + + /** DRAW ATTRIBUTES **/ + + private function drawShownAttributes() { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + foreach ($this->template->getAttributesShown() as $attribute) + if (($attribute->getPage() == $this->page) && ($attribute->isRequired() || $attribute->isMay())) { + $this->draw('Template',$attribute); + echo "\n"; + } + } + + /** DRAW PAGE JAVACRIPT */ + + protected function drawJavascript() { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + echo "\n"; + printf('',__METHOD__); + echo "\n"; + + printf('',JSDIR); + printf('',JSDIR); + printf('',JSDIR); + echo "\n"; + + printf('',__METHOD__); + echo ' +'; + echo "\n"; + printf('',__METHOD__); + echo "\n"; + + $this->drawTemplateJavascript(); + + # For DateAttributes, we need to set some defaults for the js_calendar. + echo ''."\n"; + echo ''."\n"; + echo ''."\n"; + echo "\n"; + + foreach ($this->template->getAttributesShown() as $attribute) + $this->draw('Javascript',$attribute); + + // @todo We need to sleep here a little bit, because our JS may not have loaded yet. + echo ''."\n"; + printf('',__METHOD__); + echo "\n"; + } + + /** + * Javascript Functions + */ + private function drawTemplateJavascript() { + printf('',__METHOD__); + echo "\n"; + foreach ($this->template->getAttributes(true) as $attribute) + if ($onchange = $attribute->getOnChange()) + if (is_array($onchange)) + foreach ($onchange as $value) + $this->template->OnChangeAdd($attribute->getName(),$value); + else + $this->template->OnChangeAdd($attribute->getName(),$onchange); + printf('',__METHOD__); + echo "\n"; + + printf('',__METHOD__); + + echo ' +'; + echo "\n"; + printf('',__METHOD__); + echo "\n"; + } + + /** ATTRIBUTE TITLE **/ + + protected function drawTitleAttribute($attribute) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + if (($this->template->getContext() == 'edit') + && ($attribute->hasBeenModified() || in_array($attribute->getName(),get_request('modified_attrs','REQUEST',false,array())))) + echo ''; + else + echo ''; + + echo ''; + $this->draw('Name',$attribute); + echo ''; + + echo ''; + + # Setup the $attr_note, which will be displayed to the right of the attr name (if any) + if ($_SESSION[APPCONFIG]->getValue('appearance','show_attribute_notes')) + $this->draw('Notes',$attribute); + + echo ''; + echo ''; + } + + /** ATTRIBUTE LINE **/ + + protected function drawStartValueLineAttribute($attribute) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + if (($this->template->getContext() == 'edit') + && ($attribute->hasBeenModified() || in_array($attribute->getName(),get_request('modified_attrs','REQUEST',false,array())))) + echo ''; + else + echo ''; + + echo ''; + } + + protected function drawEndValueLineAttribute($attribute) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + echo ''; + echo ''; + + if ($attribute->getSpacer()) + echo ' '; + + if (($this->template->getContext() == 'edit') + && ($attribute->hasBeenModified() || in_array($attribute->getName(),get_request('modified_attrs','REQUEST',false,array())))) + echo ''; + } + + protected function drawTemplateAttribute($attribute) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $this->draw('Title',$attribute); + $this->draw('TemplateValues',$attribute); + } + + protected function drawTemplateValuesAttribute($attribute) { + if (DEBUGTMP) printf('%s:%s
    ',time(),__METHOD__); + + $this->draw('StartValueLine',$attribute); + + # Draws values + $value_count = $attribute->getValueCount(); + for ($i=0;$i<$value_count;$i++) + $this->draw('Value',$attribute,$i); + + if (! $attribute->isInternal()) { + $blankvalue_count = $attribute->getMaxValueCount(); + if ($blankvalue_count < 0) + $blankvalue_count = 1; + + $blankvalue_count -= $value_count; + + for ($j=0;$j<$blankvalue_count;$j++) + $this->draw('Value',$attribute,$i+$j); + + if (($value_count == $blankvalue_count) || ($value_count && $blankvalue_count < 1)) + $this->draw('Menu',$attribute); + } + + $this->draw('EndValueLine',$attribute); + echo "\n"; + } + + /** DRAW ICONS FOR ATTRIBUTES VALUES **/ + + protected function drawIconAttribute($attribute,$val) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + if (is_dn_string($val) || $this->getServer()->isDNAttr($attribute->getName())) + $this->draw('DnValueIcon',$attribute,$val); + elseif (is_mail_string($val)) + $this->draw('MailValueIcon',$attribute,$val); + elseif (is_url_string($val)) + $this->draw('UrlValueIcon',$attribute,$val); + + else { + if ($icon = $attribute->getIcon()) + printf('Icon ',$icon); + } + } + + protected function drawDnValueIconAttribute($attribute,$val) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + if (strlen($val) <= 0) + printf('Go ',IMGDIR); + elseif ($this->getServer()->dnExists($val)) + printf('Go ', + $this->getServerID(),rawurlencode($val),_('Go to'),$val,IMGDIR); + else + printf('Go ',_('DN does not exist'),$val,IMGDIR); + } + + protected function drawMailValueIconAttribute($attribute,$val) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $img = sprintf('%s',IMGDIR,_('Email')); + if (strlen($val) <= 0) + echo $img; + else + printf('%s',htmlspecialchars($val),$img); + echo ' '; + } + + protected function drawUrlValueIconAttribute($attribute,$val) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $img = sprintf('%s',IMGDIR,_('URL')); + $url = explode(' +',$val,2); + + if (strlen($val) <= 0) + echo $img; + else + printf('%s',htmlspecialchars($url[0]),$img); + echo ' '; + } + + /** DEFAULT ATTRIBUTE RENDERING **/ + + /** javacript */ + + protected function drawJavascriptAttribute($attribute) { + if (! $attribute->needJS()) { + printf('',$attribute->getName()); + echo "\n"; + return; + } + + printf('',__METHOD__,$attribute->getName()); + echo "\n"; + + echo ''."\n"; + + printf('',__METHOD__,$attribute->getName()); + echo "\n"; + } + + protected function getFocusJavascriptAttribute($attribute,$component) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + return ''; + } + + protected function getBlurJavascriptAttribute($attribute,$component) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $j = "\t".'fill('.$component.'.id,pla_getComponentValue('.$component.'));'."\n"; + $j .= "\t".'validate_'.$attribute->getName().'('.$component.',false);'."\n"; + + return $j; + } + + protected function drawFocusJavascriptAttribute($attribute,$component) { + echo $this->get('FocusJavascript',$attribute,$component); + } + + protected function drawBlurJavascriptAttribute($attribute,$component) { + echo $this->get('BlurJavascript',$attribute,$component); + } + + protected function drawFillJavascriptAttribute($attribute,$component_id,$component_value) { + if ($attribute->needJS('validate')) + printf("\tvalidate_%s(pla_getComponentById(%s),true);\n",$attribute->getName(),$component_id); + } + + protected function drawValidateJavascriptAttribute($attribute,$component,$silence,$var_valid) { + printf('var vals = getAttributeValues("new","%s");',$attribute->getName()); + echo 'if (vals.length <= 0) {'; + printf('%s = false;',$var_valid); + printf('alertError("%s: %s",%s);',_('This attribute is required'),$attribute->getFriendlyName(),$silence); + echo '}'; + echo "\n"; + + printf('var comp = getAttributeComponents("new","%s");',$attribute->getName()); + echo 'for (var i = 0; i < comp.length; i++) {'; + printf('comp[i].style.backgroundColor = "%s";',$var_valid ? 'white' : '#FFFFA0'); + echo '}'; + } + + /** ATTRIBUTE MENU **/ + + protected function drawMenuAttribute($attribute) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $result = ''; + $item = ''; + + foreach (array('add','modify','rename') as $action) + if ($item = $this->get('MenuItem',$attribute,$action)) + $result .= sprintf('
    %s
    ',$item); + + if (! $result) + return; + + echo ''; + printf('',$result); + echo ''; + echo '
     %s
    '; + } + + protected function getMenuItemAttribute($attribute,$action) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + # If there is no DN, then this is a creating entry. + if (($this->template->getContext() == 'create') || $this->template->isReadOnly()) + return false; + + switch ($action) { + case 'add': + if ($attribute->isVisible() && ! $attribute->isReadOnly() + && $_SESSION[APPCONFIG]->isCommandAvailable('script','add_value_form')) { + + if ($attribute->haveMoreValues()) + return $this->get('AddValueMenuItem',$attribute); + } + + return ''; + + case 'modify': + if (in_array($attribute->getName(),arrayLower($_SESSION[APPCONFIG]->getValue('modify_member','groupattr')))) { + if ($attribute->isVisible() && ! $attribute->isReadOnly() && ! $attribute->isRDN() + && $_SESSION[APPCONFIG]->isCommandAvailable('script','modify_member_form')) + return $this->get('ModifyMemberMenuItem',$attribute); + } + + return ''; + + case 'rename': + if ($attribute->isVisible() && $attribute->isRDN() && ! $attribute->isReadOnly() + && $_SESSION[APPCONFIG]->isCommandAvailable('script','rename_form') + && $_SESSION[APPCONFIG]->isCommandAvailable('script','rename')) + return $this->get('RenameMenuItem',$attribute); + + return ''; + + default: + return false; + } + } + + protected function getAddValueMenuItemAttribute($attribute) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $href_parm = htmlspecialchars(sprintf('cmd=add_value_form&server_id=%s&dn=%s&attr=%s', + $this->getServerID(),$this->template->getDNEncode(),rawurlencode($attribute->getName(false)))); + + if (isAjaxEnabled()) + return sprintf('(%s)', + $href_parm,_('Add an additional value to attribute'),$attribute->getName(false),$attribute->getName(), + $href_parm,str_replace('\'','\\\'',_('Add an additional value to attribute')),_('add value')); + else + return sprintf('(%s)', + $href_parm,_('Add an additional value to attribute'),$attribute->getName(false),_('add value')); + } + + protected function getAddValueMenuItemObjectClassAttribute($attribute) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $href_parm = htmlspecialchars(sprintf('cmd=add_value_form&server_id=%s&dn=%s&attr=%s', + $this->getServerID(),$this->template->getDNEncode(),rawurlencode($attribute->getName(false)))); + + if (isAjaxEnabled()) + return sprintf('(%s)', + $href_parm,_('Add an additional value to attribute'),$attribute->getName(false), + $href_parm,str_replace('\'','\\\'',_('Add an additional value to attribute')),_('add value')); + else + return sprintf('(%s)', + $href_parm,_('Add an additional value to attribute'),$attribute->getName(false),_('add value')); + } + + protected function getModifyMemberMenuItemAttribute($attribute) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $href = sprintf('cmd=modify_member_form&server_id=%s&dn=%s&attr=%s', + $this->getServerID(),$this->template->getDNEncode(),rawurlencode($attribute->getName())); + + if (isAjaxEnabled()) + return sprintf('(%s)', + htmlspecialchars($href), + htmlspecialchars($href),str_replace('\'','\\\'',_('Modify group members')), + _('Modify group members')); + else + return sprintf('(%s)', + htmlspecialchars($href),_('Modify group members')); + } + + protected function getRenameMenuItemAttribute($attribute) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $href = sprintf('cmd.php?cmd=rename_form&server_id=%s&dn=%s&template=%s', + $this->getServerID(),$this->template->getDNEncode(),$this->template->getID()); + + return sprintf('(%s)',htmlspecialchars($href),_('rename')); + } + + /** values **/ + + protected function drawValueAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + if ($attribute->isMultiple() && $i > 0) + return; + + $val = $attribute->getValue($i); + + if ($attribute->isVisible()) { + echo ''; + + echo ''; + + echo '
    '; + $this->draw('Icon',$attribute,$val); + echo ''; + } + + if ($attribute->isInternal()) + $this->draw('FormReadOnlyValue',$attribute,$i); + else + $this->draw('FormValue',$attribute,$i); + + if ($attribute->isVisible()) { + echo ''; + $this->draw('RequiredSymbol',$attribute); + echo '
    '; + } + echo "\n"; + } + + # @todo for userPasswords, we need to capture the default value of select lists, without specifying + protected function drawHelperAttribute($attribute,$i) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $params = $attribute->getHelper(); + + # We take the first only + $id = isset($params['id']) ? $params['id'] : ''; + if (is_array($id)) { + system_message(array( + 'title'=>('Too many arguments'), + 'body'=>sprintf('%s (%s)',('Helper attribute has too many ID values, only the first one is used'),count($id)), + 'type'=>'warn')); + + $id = $id[0]; + } + + # We take the first only + $display = isset($params['display']) ? $params['display'] : ''; + if (is_array($display)) { + system_message(array( + 'title'=>('Too many arguments'), + 'body'=>sprintf('%s (%s)',('Helper attribute has too many DISPLAY values, only the first one is used'),count($display)), + 'type'=>'warn')); + + $display = $display[0]; + } + + # We take the first only + $default = isset($params['default']) ? $params['default'] : ''; + if (is_array($default)) { + system_message(array( + 'title'=>('Too many arguments'), + 'body'=>sprintf('%s (%s)',('Helper attribute has too many DISPLAY values, only the first one is used'),count($default)), + 'type'=>'warn')); + + $default = $default[0]; + } + + if ($attribute->getHelperValue()) + $vals = $this->get('Default',$attribute, + $this->template->getContainer() ? $this->template->getContainer() : $this->getServer()->getContainerPath($this->template->getDN()), + 'helpervalue'); + else + $vals = isset($params['value']) ? $params['value'] : ''; + + if ($this->template->getContext() == 'create') + $dn = $this->template->getContainer(); + else + $dn = $this->template->getDN(); + + if (is_array($vals) && count($vals) > 0) { + $found = false; + + printf(''; + + } else { + # Vals must be an empty array. + if (is_array($vals)) + $vals = ''; + + printf('', + $id,htmlspecialchars($attribute->getName()),$i, + $id,htmlspecialchars($attribute->getName()),$i, + htmlspecialchars($vals)); + } + + if ($display) { + echo '
    '; + printf('%s',$display); + echo '
    '; + } + } + + protected function drawRequiredSymbolAttribute($attribute) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + if ($attribute->isRequired() && ! $attribute->isReadOnly()) + echo '*'; + } + + /** BINARY ATTRIBUTE RENDERING **/ + + #@todo do we need a $this->drawJavascriptAttribute($attribute) here too ? + protected function drawJavascriptBinaryAttribute($attribute) { + # If there are no values, then this javascript doesnt need to be drawn. + if (! $attribute->getValues()) + return; + + static $drawn = false; + + # This JS may have been rendered by multiple Binary attributes + if ($drawn) + return; + else + $drawn = true; + + printf('',__METHOD__,$attribute->getName()); + echo "\n"; + + echo ''; + echo ''; + printf('',$this->getServerID()); + printf('',$this->template->getDNEncode(false)); + printf('',$this->template->getID()); + echo ''; + echo ''; + echo ''; + + echo ' +'; + echo "\n"; + + printf('',__METHOD__,$attribute->getName()); + echo "\n"; + } + + /** DATE ATTRIBUTE RENDERING **/ + + protected function drawJavaScriptDateAttribute($attribute) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + printf('',__METHOD__,$attribute->getName()); + echo "\n"; + + $this->drawJavaScriptAttribute($attribute); + + static $drawn = false; + + # This JS may have been rendered by multiple Date attributes + if (! $drawn) { + printf('',JSDIR); + printf('',JSDIR); + printf('',JSDIR); + + $drawn = true; + } + + $config = array(); + $config['date'] = array_change_key_case($_SESSION[APPCONFIG]->getValue('appearance','date_attrs')); + $config['time'] = array_change_key_case($_SESSION[APPCONFIG]->getValue('appearance','date_attrs_showtime')); + $config['format'] = $_SESSION[APPCONFIG]->getValue('appearance','date'); + + if (isset($config['date'][$attribute->getName()])) + $config['format'] = $config['date'][$attribute->getName()]; + + for ($i=0;$i<=$attribute->getValueCount();$i++) { + printf('',$attribute->getName(),$i,$config['format']); + + if (in_array_ignore_case($attribute->getName(),array_keys($config['time'])) && ($config['time'][$attribute->getName()])) + printf('',$attribute->getName(),$i,'true'); + + echo "\n"; + } + + printf('',__METHOD__,$attribute->getName()); + echo "\n"; + } + + /** + * Draws an HTML date selector button which, when clicked, pops up a date selector dialog. + */ + protected function drawSelectorPopupDateAttribute($attribute,$i) { + printf('Calendar', + $attribute->getName(),$i,_('Click to popup a dialog to select a date graphically'),IMGDIR,$attribute->getName(),$i); + } + + /** DN ATTRIBUTES **/ + + protected function drawIconDnAttribute($attribute,$val) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + $this->draw('DnValueIcon',$attribute,$val); + } + + /** OBJECT CLASS ATTRIBUTE **/ + + protected function drawIconObjectClassAttribute($attribute,$val) { + return; + } + + /** PASSWORD ATTRIBUTES **/ + + protected function drawJavascriptPasswordAttribute($attribute) { + static $drawn = array(); + + # This JS may have been rendered by multiple Binary attributes + if (isset($drawn[$attribute->getName()]) && $drawn[$attribute->getName()]) + return; + else + $drawn[$attribute->getName()] = true; + + printf('',__METHOD__,$attribute->getName()); + echo "\n"; + + $this->drawJavascriptAttribute($attribute); + + # Add the javascript so we can call check password later. + echo ' +'; + echo "\n"; + + printf('',__METHOD__,$attribute->getName()); + echo "\n"; + } + + protected function drawCheckLinkPasswordAttribute($attribute,$component_id) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + printf('%s...
    ', + $component_id,$attribute->getName(),_('Check password')); + } + + /** RANDOM PASSWORD **/ + + /** + * This will draw the javascript that displays to the user the random password generated + * + * @todo This function doesnt work well if there are more than 1 RandomPasswordAttributes on the form for the same attribute (unlikely situation) + */ + protected function drawJavascriptRandomPasswordAttribute($attribute) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + printf("\n\n",__METHOD__); + $this->drawJavascriptPasswordAttribute($attribute); + + $pwd = password_generate(); + $pwd = str_replace("\\","\\\\",$pwd); + $pwd = str_replace("'","\\'",$pwd); + + printf("\n\n",__METHOD__); + echo ''; + printf("\n\n",__METHOD__); + } + + protected function drawDefaultHelperPasswordAttribute($attribute,$i) { + $id = 'enc'; + + if ($val = $attribute->getValue($i)) + $default = get_enc_type($val); + else + $default = $this->getServer()->getValue('appearance','password_hash'); + + if (! $attribute->getPostValue()) + printf('',$attribute->getName(),$i); + + printf(''; + } + + protected function drawDefaultHelperSambaPasswordAttribute($attribute,$i) { + $id = 'enc'; + + if (! $attribute->getPostValue()) + printf('',$attribute->getName(),$i); + + switch ($attribute->getName()) { + case 'sambalmpassword' : $enc = 'lm'; break; + case 'sambantpassword' : $enc = 'nt'; break; + + default: + return ''; + } + + printf('', + $id,htmlspecialchars($attribute->getName()),$i, + $id,htmlspecialchars($attribute->getName()),$i,$enc); + } + + /** SELECTION ATTRIBUTE RENDERING **/ + + protected function drawIconSelectionAttribute($attribute,$val) { + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + if (! $attribute->isMultiple() || $attribute->isReadOnly()) + $this->drawIconAttribute($attribute,$val); + } + + protected function getMenuItemSelectionAttribute($attribute,$i) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (DEBUGTMP) printf('%s
    ',__METHOD__); + + switch ($i) { + case 'add': + if (! $attribute->isMultiple()) + return $this->getMenuItemAttribute($attribute,$i); + else + return ''; + + case 'modify': + return ''; + + default: + return $this->getMenuItemAttribute($attribute,$i); + } + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/Tree.php b/lam/templates/3rdParty/pla/lib/Tree.php new file mode 100644 index 00000000..a9c53afc --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/Tree.php @@ -0,0 +1,347 @@ +server_id = $server_id; + } + + /** + * Create an instance of the tree - this is used when we call this class directly + * Tree::getInstance($index) + * + * @return object Tree + */ + static public function getInstance($server_id) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $tree = get_cached_item($server_id,'tree'); + + if (! $tree) { + $server = $_SESSION[APPCONFIG]->getServer($server_id); + + if (! $server) + return null; + + $treeclass = $_SESSION[APPCONFIG]->getValue('appearance','tree'); + $tree = new $treeclass($server_id); + + # If we are not logged in, just return the empty tree. + if (is_null($server->getLogin(null))) + return $tree; + + foreach ($server->getBaseDN(null) as $base) + if ($base) { + $tree->addEntry($base); + $baseEntry = $tree->getEntry($base); + $baseEntry->open(); + } + + set_cached_item($server_id,'tree','null',$tree); + } + + return $tree; + } + + /** + * Get the Server ID for this tree + * + * @return int Server ID that this tree is for + */ + protected function getServerID() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->server_id); + + return $this->server_id; + } + + /** + * Get the server Object for this tree + * + * @return object Server Object for this tree + */ + protected function getServer() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return $_SESSION[APPCONFIG]->getServer($this->server_id); + } + + /** + * Get the entries that are BaseDN entries. + * + * @return array Base DN entries + */ + public function getBaseEntries() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $return = array(); + + foreach ($this->entries as $details) + if ($details->isBaseDN()) + array_push($return,$details); + + return $return; + } + + /** + * This function will take the DN, convert it to lowercase and strip unnessary + * commas. This result will be used as the index for the tree object. + * Any display of a DN should use the object->dn entry, not the index. + * The reason we need to do this is because: + * uid=User A,ou=People,c=AU and + * uid=User B, ou=PeOpLe, c=au + * are infact in the same branch, but PLA will show them inconsistently. + * + * @param dn DN to clean + * @return dn Lowercase clean DN + */ + private function indexDN($dn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $index = strtolower(implode(',',pla_explode_dn($dn))); + + if (DEBUG_ENABLED) + debug_log('Result (%s)',1,0,__FILE__,__LINE__,__METHOD__,$index); + + return $index; + } + + /** + * Get a tree entry + * + * @param dn DN to retrieve + * @return object Tree DN object + */ + public function getEntry($dn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $dnlower = $this->indexDN($dn); + + if (isset($this->entries[$dnlower])) + return $this->entries[$dnlower]; + else + return null; + } + + /** + * Add an entry in the tree view ; the entry is added in the + * children array of its parent + * + * @param dn DN to add + * @param string $dn the dn of the entry to create + */ + public function addEntry($dn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $server = $this->getServer(); + $dnlower = $this->indexDN($dn); + + # @todo Temporarily removed, some non-ascii char DNs that do exist, fail here for some reason? + #if (! ($server->dnExists($dn))) + # return; + + if (isset($this->entries[$dnlower])) + debug_dump_backtrace('Calling add entry to an entry that ALREADY exists?',1); + + if (DEBUG_ENABLED) + debug_log('New ENTRY (%s).',64,0,__FILE__,__LINE__,__METHOD__,$dn); + + $tree_factory = new TreeItem($server->getIndex(),$dn); + $tree_factory->setObjectClasses($server->getDNAttrValue($dn,'objectClass')); + + if ((($isleaf = $server->getDNAttrValue($dn,'hassubordinates')) && ! strcasecmp($isleaf[0],'false'))) + $tree_factory->setLeaf(); + + $this->entries[$dnlower] = $tree_factory; + + # Is this entry in a base entry? + if (in_array_ignore_case($dn,$server->getBaseDN(null))) { + $this->entries[$dnlower]->setBase(); + + # If the parent entry is not in the tree, we add it. This routine will in itself + # recall this method until we get to the top of the tree (the base). + } else { + $parent_dn = $server->getContainer($dn); + + if (DEBUG_ENABLED) + debug_log('Parent DNs (%s)',64,0,__FILE__,__LINE__,__METHOD__,$parent_dn); + + if ($parent_dn) { + $parent_entry = $this->getEntry($parent_dn); + + if (! $parent_entry) { + $this->addEntry($parent_dn); + $parent_entry = $this->getEntry($parent_dn); + } + + # Update this DN's parent's children list as well. + $parent_entry->addChild($dn); + } + } + } + + /** + * Delete an entry from the tree view ; the entry is deleted from the + * children array of its parent + * + * @param dn DN to remote + */ + public function delEntry($dn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $server = $this->getServer(); + $dnlower = $this->indexDN($dn); + + if (isset($this->entries[$dnlower])) + unset($this->entries[$dnlower]); + + # Delete entry from parent's children as well. + $parent_dn = $server->getContainer($dn); + $parent_entry = $this->getEntry($parent_dn); + + if ($parent_entry) + $parent_entry->delChild($dn); + } + + /** + * Rename an entry in the tree + * + * @param dn Old DN + * @param dn New DN + */ + public function renameEntry($dnOLD,$dnNEW) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $server = $this->getServer(); + $dnlowerOLD = $this->indexDN($dnOLD); + $dnlowerNEW = $this->indexDN($dnNEW); + + $this->entries[$dnlowerNEW] = $this->entries[$dnlowerOLD]; + if ($dnlowerOLD != $dnlowerNEW) + unset($this->entries[$dnlowerOLD]); + $this->entries[$dnlowerNEW]->rename($dnNEW); + + # Update the parent's children + $parentNEW = $server->getContainer($dnNEW); + $parentOLD = $server->getContainer($dnOLD); + + $parent_entry = $this->getEntry($parentNEW); + if ($parent_entry) + $parent_entry->addChild($dnNEW); + + $parent_entry = $this->getEntry($parentOLD); + if ($parent_entry) + $parent_entry->delChild($dnOLD); + } + + /** + * Read the children of a tree entry + * + * @param dn DN of the entry + * @param boolean LDAP Size Limit + */ + public function readChildren($dn,$nolimit=false) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $server = $this->getServer(); + $dnlower = $this->indexDN($dn); + + if (! isset($this->entries[$dnlower])) + debug_dump_backtrace('Reading children on an entry that isnt set? '.$dnlower,true); + + $ldap['child_limit'] = $nolimit ? 0 : $_SESSION[APPCONFIG]->getValue('search','size_limit'); + $ldap['filter'] = $_SESSION[APPCONFIG]->getValue('appearance','tree_filter'); + $ldap['deref'] = $_SESSION[APPCONFIG]->getValue('deref','tree'); + + # Perform the query to get the children. + $ldap['children'] = $server->getContainerContents($dn,null,$ldap['child_limit'],$ldap['filter'],$ldap['deref']); + + if (! count($ldap['children'])) { + $this->entries[$dnlower]->unsetSizeLimited(); + + return; + } + + if (DEBUG_ENABLED) + debug_log('Children of (%s) are (%s)',64,0,__FILE__,__LINE__,__METHOD__,$dn,$ldap['children']); + + # Relax our execution time, it might take some time to load this + if ($nolimit) + @set_time_limit($_SESSION[APPCONFIG]->getValue('search','time_limit')); + + $this->entries[$dnlower]->readingChildren(true); + + foreach ($ldap['children'] as $child) { + if (DEBUG_ENABLED) + debug_log('Adding (%s)',64,0,__FILE__,__LINE__,__METHOD__,$child); + + if (! in_array($child,$this->entries[$dnlower]->getChildren())) + $this->entries[$dnlower]->addChild($child); + } + + $this->entries[$dnlower]->readingChildren(false); + + if (count($this->entries[$dnlower]->getChildren()) == $ldap['child_limit']) + $this->entries[$dnlower]->setSizeLimited(); + else + $this->entries[$dnlower]->unsetSizeLimited(); + } + + /** + * Return the number of children an entry has. Optionally autoread the child entry. + * + * @param dn DN of the entry + * @param boolean LDAP Size Limit + */ + protected function readChildrenNumber($dn,$nolimit=false) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $dnlower = $this->indexDN($dn); + + if (! isset($this->entries[$dnlower])) + debug_dump_backtrace('Reading children on an entry that isnt set?',true); + + # Read the entry if we havent got it yet. + if (! $this->entries[$dnlower]->isLeaf() && ! $this->entries[$dnlower]->getChildren()) + $this->readChildren($dn,$nolimit); + + return count($this->entries[$dnlower]->getChildren()); + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/TreeItem.php b/lam/templates/3rdParty/pla/lib/TreeItem.php new file mode 100644 index 00000000..8c95ad83 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/TreeItem.php @@ -0,0 +1,312 @@ +server_id = $server_id; + $this->dn = $dn; + } + + /** + * Get the DN of this tree item. + * + * @return DN The DN of this item. + */ + public function getDN() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->dn); + + return $this->dn; + } + + public function getDNEncode() { + return urlencode(preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->dn)); + } + + /** + * Get the RDN of this tree items DN. + * + * @return RDN The RDN of this items DN. + */ + public function getRDN() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return get_rdn($this->getDn(),0,true); + } + + /** + * Set this item as a LDAP base DN item. + */ + public function setBase() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->base_entry = true; + } + + /** + * Return if this item is a base DN item. + */ + public function isBaseDN() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->base_entry); + + return $this->base_entry; + } + + public function setObjectClasses($oc) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->objectclasses = $oc; + } + + public function getObjectClasses() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->objectclasses); + + return $this->objectclasses; + } + + public function isInLDAP() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return count($this->objectclasses) ? true : false; + } + + /** + * Returns null if the children have never be defined + * or an array of the dn of the children + */ + public function getChildren() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->children); + + if ($this->childsort && ! $this->reading_children) { + usort($this->children,'pla_compare_dns'); + $this->childsort = false; + } + + return $this->children; + } + + public function readingChildren($bool) { + $this->reading_children = $bool; + } + + /** + * Do the children require resorting + */ + public function isChildSorted() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->childsort); + + return $this->childsort; + } + + /** + * Mark the children as sorted + */ + public function childSorted() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->childsort = false; + } + + /** + * Add a child to this DN entry. + * + * @param DN The DN to add. + */ + public function addChild($dn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (in_array($dn,$this->children)) + return; + + array_push($this->children,$dn); + $this->childsort = true; + } + + /** + * Delete a child from this DN entry. + * + * @param DN The DN to add. + */ + public function delChild($dn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($this->children) { + # If the parent hasnt been opened in the tree, then there wont be any children. + $index = array_search($dn,$this->children); + + if ($index !== false) + unset($this->children[$index]); + } + } + + /** + * Rename this DN. + * + * @param DN The DN to rename to. + */ + public function rename($dn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->dn = $dn; + } + + /** + * Return if this item has been opened. + */ + public function isOpened() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->open); + + return $this->open; + } + + /** + * Mark this node as closed. + */ + public function close() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->open = false; + } + + /** + * Opens the node ; the children of the node must have been defined + */ + public function open() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->open = true; + } + + /** + * Mark this node as a leaf. + */ + public function setLeaf() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->leaf = true; + } + + /** + * Return if this node is a leaf. + */ + public function isLeaf() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->leaf); + + return $this->leaf; + } + + /** + * Returns the path of the icon file used to represent this node ; + * If the icon hasnt been set, it will call get_icon() + */ + public function getIcon() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->icon); + + if (! $this->icon) + $this->icon = get_icon($this->server_id,$this->dn,$this->objectclasses); + + return $this->icon; + } + + /** + * Mark this node as a size limited (it wont have all its children). + */ + public function setSizeLimited() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->size_limited = true; + } + + /** + * Clear the size limited flag. + */ + public function unsetSizeLimited() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->size_limited = false; + } + + /** + * Return if this node has hit an LDAP size limit (and thus doesnt have all its children). + */ + public function isSizeLimited() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return $this->size_limited; + } + + public function setTemplate($template) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->template = $template; + } + + public function getTemplate() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return $this->template; + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/Visitor.php b/lam/templates/3rdParty/pla/lib/Visitor.php new file mode 100644 index 00000000..5f50e423 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/Visitor.php @@ -0,0 +1,99 @@ +Class (%s): Method doesnt exist (%s,%s)
    ',$class,get_class($this),$call); + + $class = get_parent_class($class); + $call = "$method$fnct$class"; + array_push($methods,$call); + } + + if (defined('DEBUGTMP') && DEBUGTMP) + printf('Calling Methods: %s
    ',implode('|',$methods)); + + if (defined('DEBUGTMP') && DEBUGTMP && method_exists($this,$call)) + printf('Method Exists: %s::%s (%s)
    ',get_class($this),$call,$args); + + if (method_exists($this,$call)) { + $r = call_user_func_array(array($this, $call), $args); + + if (isset($r)) + return $r; + else + return; + + } elseif (DEBUG_ENABLED) { + debug_log('Doesnt exist param (%s,%s)',1,0,__FILE__,__LINE__,__METHOD__,$method,$fnct); + } + + printf('NO Methods: %s
    ',implode('|',$methods)); + } + + /** + * Return the LDAP server ID + * + * @return int Server ID + */ + public function getServerID() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->server_id); + + if (isset($this->server_id)) + return $this->server_id; + else + return null; + } + + /** + * Return this LDAP Server object + * + * @return object DataStore Server + */ + protected function getServer() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return $_SESSION[APPCONFIG]->getServer($this->getServerID()); + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/blowfish.php b/lam/templates/3rdParty/pla/lib/blowfish.php new file mode 100644 index 00000000..1c69aa9a --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/blowfish.php @@ -0,0 +1,480 @@ + + * + * See the enclosed file COPYING for license information (LGPL). If you + * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. + * + * @author Mike Cochrane + * @version $Revision$ + * @since Horde 2.2 + * @package horde.cipher + */ +/** + * @package horde.cipher + */ + +// Change for phpMyAdmin by lem9: +//class Horde_Cipher_blowfish extends Horde_Cipher { +class Horde_Cipher_blowfish { + + /* Pi Array */ + public $p = array( + 0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344, + 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89, + 0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C, + 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917, + 0x9216D5D9, 0x8979FB1B); + + /* S Boxes */ + public $s1 = array( + 0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7, + 0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99, + 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16, + 0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E, + 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE, + 0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013, + 0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF, + 0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E, + 0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60, + 0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440, + 0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE, + 0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A, + 0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E, + 0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677, + 0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193, + 0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032, + 0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88, + 0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239, + 0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E, + 0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0, + 0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3, + 0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98, + 0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88, + 0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE, + 0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6, + 0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D, + 0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B, + 0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7, + 0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA, + 0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463, + 0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F, + 0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09, + 0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3, + 0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB, + 0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279, + 0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8, + 0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB, + 0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82, + 0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB, + 0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573, + 0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0, + 0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B, + 0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790, + 0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8, + 0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4, + 0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0, + 0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7, + 0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C, + 0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD, + 0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1, + 0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299, + 0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9, + 0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477, + 0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF, + 0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49, + 0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF, + 0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA, + 0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5, + 0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41, + 0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915, + 0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400, + 0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915, + 0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664, + 0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A); + public $s2 = array( + 0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623, + 0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266, + 0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1, + 0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E, + 0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6, + 0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1, + 0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E, + 0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1, + 0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737, + 0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8, + 0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF, + 0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD, + 0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701, + 0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7, + 0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41, + 0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331, + 0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF, + 0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF, + 0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E, + 0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87, + 0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C, + 0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2, + 0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16, + 0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD, + 0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B, + 0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509, + 0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E, + 0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3, + 0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F, + 0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A, + 0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4, + 0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960, + 0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66, + 0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28, + 0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802, + 0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84, + 0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510, + 0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF, + 0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14, + 0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E, + 0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50, + 0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7, + 0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8, + 0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281, + 0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99, + 0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696, + 0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128, + 0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73, + 0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0, + 0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0, + 0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105, + 0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250, + 0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3, + 0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285, + 0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00, + 0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061, + 0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB, + 0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E, + 0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735, + 0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC, + 0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9, + 0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340, + 0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20, + 0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7); + public $s3 = array( + 0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934, + 0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068, + 0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF, + 0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840, + 0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45, + 0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504, + 0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A, + 0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB, + 0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE, + 0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6, + 0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42, + 0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B, + 0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2, + 0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB, + 0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527, + 0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B, + 0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33, + 0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C, + 0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3, + 0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC, + 0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17, + 0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564, + 0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B, + 0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115, + 0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922, + 0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728, + 0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0, + 0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E, + 0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37, + 0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D, + 0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804, + 0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B, + 0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3, + 0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB, + 0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D, + 0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C, + 0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350, + 0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9, + 0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A, + 0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE, + 0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D, + 0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC, + 0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F, + 0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61, + 0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2, + 0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9, + 0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2, + 0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C, + 0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E, + 0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633, + 0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10, + 0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169, + 0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52, + 0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027, + 0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5, + 0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62, + 0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634, + 0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76, + 0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24, + 0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC, + 0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4, + 0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C, + 0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837, + 0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0); + public $s4 = array( + 0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B, + 0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE, + 0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B, + 0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4, + 0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8, + 0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6, + 0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304, + 0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22, + 0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4, + 0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6, + 0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9, + 0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59, + 0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593, + 0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51, + 0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28, + 0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C, + 0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B, + 0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28, + 0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C, + 0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD, + 0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A, + 0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319, + 0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB, + 0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F, + 0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991, + 0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32, + 0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680, + 0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166, + 0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE, + 0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB, + 0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5, + 0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47, + 0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370, + 0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D, + 0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84, + 0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048, + 0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8, + 0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD, + 0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9, + 0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7, + 0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38, + 0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F, + 0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C, + 0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525, + 0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1, + 0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442, + 0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964, + 0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E, + 0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8, + 0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D, + 0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F, + 0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299, + 0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02, + 0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC, + 0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614, + 0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A, + 0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6, + 0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B, + 0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0, + 0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060, + 0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E, + 0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9, + 0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F, + 0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6); + + /* The number of rounds to do */ + public $_rounds = 16; + + /* Constructor */ + function Cipher_blowfish($params = null) + { + } + + /** + * Set the key to be used for en/decryption + * + * @param String $key The key to use + */ + function setKey($key) + { + $key = $this->_formatKey($key); + $keyPos = $keyXor = 0; + + $iMax = count($this->p); + $keyLen = count($key); + for ($i = 0; $i < $iMax; $i++) { + for ($t = 0; $t < 4; $t++) { + $keyXor = ($keyXor << 8) | (($key[$keyPos]) & 0x0ff); + if (++$keyPos == $keyLen) { + $keyPos = 0; + } + } + $this->p[$i] = $this->p[$i] ^ $keyXor; + } + + $encZero = array('L' => 0, 'R' => 0); + for ($i = 0; $i + 1 < $iMax; $i += 2) { + $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); + $this->p[$i] = $encZero['L']; + $this->p[$i + 1] = $encZero['R']; + } + + $iMax = count($this->s1); + for ($i = 0; $i < $iMax; $i += 2) { + $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); + $this->s1[$i] = $encZero['L']; + $this->s1[$i + 1] = $encZero['R']; + } + + $iMax = count($this->s2); + for ($i = 0; $i < $iMax; $i += 2) { + $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); + $this->s2[$i] = $encZero['L']; + $this->s2[$i + 1] = $encZero['R']; + } + + $iMax = count($this->s3); + for ($i = 0; $i < $iMax; $i += 2) { + $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); + $this->s3[$i] = $encZero['L']; + $this->s3[$i + 1] = $encZero['R']; + } + + $iMax = count($this->s4); + for ($i = 0; $i < $iMax; $i += 2) { + $encZero = $this->_encryptBlock($encZero['L'], $encZero['R']); + $this->s4[$i] = $encZero['L']; + $this->s4[$i + 1] = $encZero['R']; + } + + } + + /** + * Return the size of the blocks that this cipher needs + * + * @return Integer The number of characters per block + */ + function getBlockSize() + { + return 8; + } + + /** + * Encrypt a block on data. + * + * @param String $block The data to encrypt + * @param optional String $key The key to use + * + * @return String the encrypted output + */ + function encryptBlock($block, $key = null) + { + if (!is_null($key)) { + $this->setKey($key); + } + + list($L, $R) = array_values(unpack('N*', $block)); + $parts = $this->_encryptBlock($L, $R); + return pack("NN", $parts['L'], $parts['R']); + } + + /** + * Encrypt a block on data. + * + * @param String $L The data to encrypt. + * @param String $R The data to encrypt. + * + * @return String The encrypted output. + */ + function _encryptBlock($L, $R) + { + $L ^= $this->p[0]; + $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[1]; + $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[2]; + $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[3]; + $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[4]; + $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[5]; + $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[6]; + $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[7]; + $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[8]; + $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[9]; + $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[10]; + $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[11]; + $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[12]; + $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[13]; + $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[14]; + $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[15]; + $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[16]; + $R ^= $this->p[17]; + + return array('L' => $R, 'R' => $L); + } + + /** + * Decrypt a block on data. + * + * @param String $block The data to decrypt + * @param optional String $key The key to use + * + * @return String the decrypted output + */ + function decryptBlock($block, $key = null) + { + if (!is_null($key)) { + $this->setKey($key); + } + + $unpack = unpack('N*', $block); + + if (! is_array($unpack)) + error( + sprintf('BLOWFISH: decryptBock()
    We expected unpack to produce an array, but instead it produced [%s]. This function was entered with (%s,%s). If you think that this is a bug, then please tell the PLA developers how you got here. You are using PLA [%s,%s]', + serialize($unpack),$block,$key,app_version(),phpversion()),'error','index.php'); + + list($L, $R) = array_values($unpack); + + $L ^= $this->p[17]; + $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[16]; + $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[15]; + $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[14]; + $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[13]; + $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[12]; + $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[11]; + $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[10]; + $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[9]; + $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[8]; + $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[7]; + $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[6]; + $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[5]; + $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[4]; + $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[3]; + $R ^= ((($this->s1[($L >> 24) & 0xFF] + $this->s2[($L >> 16) & 0x0ff]) ^ $this->s3[($L >> 8) & 0x0ff]) + $this->s4[$L & 0x0ff]) ^ $this->p[2]; + $L ^= ((($this->s1[($R >> 24) & 0xFF] + $this->s2[($R >> 16) & 0x0ff]) ^ $this->s3[($R >> 8) & 0x0ff]) + $this->s4[$R & 0x0ff]) ^ $this->p[1]; + + $decrypted = pack("NN", $R ^ $this->p[0], $L); + return $decrypted; + } + + /** + * Converts a text key into an array. + * + * @return array The key. + */ + function _formatKey($key) + { + return array_values(unpack('C*', $key)); + } + +} +?> diff --git a/lam/templates/3rdParty/pla/lib/common.php b/lam/templates/3rdParty/pla/lib/common.php new file mode 100644 index 00000000..f6ae62e0 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/common.php @@ -0,0 +1,260 @@ +getValue('appearance','theme')))) + && is_file(realpath(sprintf('css/%s/%s',$_SESSION[APPCONFIG]->getValue('appearance','theme'),$_SESSION[APPCONFIG]->getValue('appearance','stylesheet'))))) + + $app['theme'] = $_SESSION[APPCONFIG]->getValue('appearance','theme'); + +define('CSSDIR',sprintf('css/%s',$app['theme'])); +define('IMGDIR',sprintf('images/%s',$app['theme'])); + +# Initialise the hooks +if (file_exists(LIBDIR.'hooks.php')) + require_once LIBDIR.'hooks.php'; + +# If we get here, and $_SESSION[APPCONFIG] is not set, then redirect the user to the index. +if (isset($_SERVER['SERVER_SOFTWARE']) && ! isset($_SESSION[APPCONFIG])) { + if ($_SERVER['QUERY_STRING']) + header(sprintf('Location: index.php?URI=%s',base64_encode($_SERVER['QUERY_STRING']))); + else + header('Location: index.php'); + + die(); + +} else { + # SF Bug #1903987 + if (! method_exists($_SESSION[APPCONFIG],'CheckCustom')) + error('Unknown situation, $_SESSION[APPCONFIG] exists, but method CheckCustom() does not','error',null,true,true); + + # Check our custom variables. + # @todo Change this so that we dont process a cached session. + $_SESSION[APPCONFIG]->CheckCustom(); +} + +# Set our timezone, if it is specified in config.php +if ($_SESSION[APPCONFIG]->getValue('appearance','timezone')) + date_default_timezone_set($_SESSION[APPCONFIG]->getValue('appearance','timezone')); + +# If we are here, $_SESSION is set - so enabled DEBUGing if it has been configured. +if (($_SESSION[APPCONFIG]->getValue('debug','syslog') || $_SESSION[APPCONFIG]->getValue('debug','file')) + && $_SESSION[APPCONFIG]->getValue('debug','level')) + define('DEBUG_ENABLED',1); +else + define('DEBUG_ENABLED',0); + +if (DEBUG_ENABLED) + debug_log('Application (%s) initialised and starting with (%s).',1,0,__FILE__,__LINE__,__METHOD__, + app_version(),$_REQUEST); + +# Set our PHP timelimit. +if ($_SESSION[APPCONFIG]->getValue('session','timelimit') && ! @ini_get('safe_mode')) + set_time_limit($_SESSION[APPCONFIG]->getValue('session','timelimit')); + +# If debug mode is set, increase the time_limit, since we probably need it. +if (DEBUG_ENABLED && $_SESSION[APPCONFIG]->getValue('session','timelimit') && ! @ini_get('safe_mode')) + set_time_limit($_SESSION[APPCONFIG]->getValue('session','timelimit') * 5); + +setlanguage(); + +/** + * Strip slashes from GET, POST, and COOKIE variables if this + * PHP install is configured to automatically addslashes() + */ +if (@get_magic_quotes_gpc() && (! isset($slashes_stripped) || ! $slashes_stripped)) { + array_stripslashes($_REQUEST); + array_stripslashes($_GET); + array_stripslashes($_POST); + array_stripslashes($_COOKIE); + $slashes_stripped = true; +} + +# Create our application repository variable. +$app['server'] = $_SESSION[APPCONFIG]->getServer(get_request('server_id','REQUEST')); + +/** + * Look/evaluate our timeout + */ +if (! $app['server']->isSessionValid()) { + system_message(array( + 'title'=>('Session Timed Out'), + 'body'=>sprintf('%s %s %s', + ('Your Session timed out after'),$app['server']->getValue('login','timeout'), + ('min. of inactivity. You have been automatically logged out.')), + 'type'=>'info'),sprintf('index.php?server_id=%s&refresh=SID_%s',$app['server']->getIndex(),$app['server']->getIndex())); + + die(); +} + +# If syslog is enabled, we need to include the supporting file. +if ($_SESSION[APPCONFIG]->getValue('debug','syslog')) + require LIBDIR.'syslog.php'; + +/** + * At this point we have read all our additional function PHP files and our configuration. + * If we are using hooks, run the session_init hook. + */ +if (function_exists('run_hook')) + run_hook('post_session_init',array()); +?> diff --git a/lam/templates/3rdParty/pla/lib/config_default.php b/lam/templates/3rdParty/pla/lib/config_default.php new file mode 100644 index 00000000..ad3ad96a --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/config_default.php @@ -0,0 +1,798 @@ +custom = new stdClass; + $this->default = new stdClass; + + /* + * What to do after entry creation : + * 2 : display the creation form again + * 1 : display the new created entry + * 0 : display the choice between 1 and 2 + */ + $this->default->appearance['action_after_creation'] = array( + 'desc'=>'Display the new created entry', + 'default'=>1); + + ## Appearance Attributes + /** Anonymous implies read only + * Set to true if you want LDAP data to be displayed read-only (without input fields) + * when a user logs in to a server anonymously + */ + $this->default->appearance['anonymous_bind_implies_read_only'] = array( + 'desc'=>'Display as read only if user logs in with anonymous bind', + 'default'=>true); + + $this->default->appearance['attr_display_order'] = array( + 'desc'=>'Custom order to display attributes', + 'default'=>array()); + + /* + * @todo Compression is not working, + * purge_cache shows blank, + * tree refresh shows blank - and if view_tree_node is modified to compress output, then previously opened items show up as compressed data. + */ + $this->default->appearance['compress'] = array( + 'desc'=>'Compress Output', + 'untested'=>true, + 'default'=>false); + + $this->default->appearance['control_icons'] = array( + 'desc'=>'Show the control as icons or text', + 'default'=>false); + + $this->default->appearance['custom_templates_only'] = array( + 'desc'=>'Only display the custom templates.', + 'default'=>false); + + $this->default->appearance['date'] = array( + 'desc'=>'Date format whenever dates are shown', + 'default'=>'%A %e %B %Y'); + + $this->default->appearance['date_attrs'] = array( + 'desc'=>'Array of attributes that should show a jscalendar', + 'default'=>array('shadowExpire'=>'%es','shadowLastChange'=>'%es')); + + $this->default->appearance['date_attrs_showtime'] = array( + 'desc'=>'Array of attributes that should show a the time when showing the jscalendar', + 'default'=>array('')); + + $this->default->appearance['disable_default_template'] = array( + 'desc'=>'Disabled the Default Template', + 'default'=>false); + + $this->default->appearance['disable_default_leaf'] = array( + 'desc'=>'Disabled creating leaf entries in the Default Template', + 'default'=>false); + + $this->default->appearance['friendly_attrs'] = array( + 'desc'=>'Friendly names for attributes', + 'default'=>array()); + + $this->default->appearance['hide_attrs'] = array( + 'desc'=>'Hide attributes from display', + 'default'=>array()); + + $this->default->appearance['hide_attrs_exempt'] = array( + 'desc'=>'Group DN, where membership will exempt the users from hide_attrs', + 'default'=>null); + + $this->default->appearance['hide_debug_info'] = array( + 'desc'=>'Hide the features that may provide sensitive debugging information to the browser', + 'default'=>true); + + $this->default->appearance['hide_template_regexp'] = array( + 'desc'=>'Templates that are disabled by their regex are not shown', + 'default'=>false); + + $this->default->appearance['hide_template_warning'] = array( + 'desc'=>'Hide template errors from being displayed', + 'default'=>false); + + /** Language + * The language setting. If you set this to 'auto', phpLDAPadmin will + * attempt to determine your language automatically. Otherwise, set + * this to your applicable language in xx_XX format. + * Localization is not complete yet, but most strings have been translated. + * Please help by writing language files. + */ + $this->default->appearance['language'] = array( + 'desc'=>'Language', + 'default'=>'auto'); + + $this->default->appearance['max_add_attrs'] = array( + 'desc'=>'Maximum number of attrs to show in the add attr form', + 'default'=>10); + + /** + * If you want certain attributes to be editable as multi-line, include them in this list + * A multi-line textarea will be drawn instead of a single-line text field + */ + $this->default->appearance['multi_line_attributes'] = array( + 'desc'=>'Attributes to show as multiline attributes', + 'default'=>array('postalAddress','homePostalAddress','personalSignature','description','mailReplyText')); + + /** + * A list of syntax OIDs which support multi-line attribute values: + */ + $this->default->appearance['multi_line_syntax_oids'] = array( + 'desc'=>'Attributes to show as multiline attributes', + 'default'=>array( + // octet string syntax OID: + '1.3.6.1.4.1.1466.115.121.1.40', + // postal address syntax OID: + '1.3.6.1.4.1.1466.115.121.1.41')); + + /** Obfuscate Password + * If true, display all password hash values as "******". Note that clear-text + * passwords will always be displayed as "******", regardless of this setting. + */ + $this->default->appearance['obfuscate_password_display'] = array( + 'desc'=>'Obfuscate the display of passwords', + 'default'=>true); + + $this->default->appearance['page_title'] = array( + 'desc'=>'Change the page title to this text', + 'default'=>''); + + $this->default->appearance['rdn_all_attrs'] = array( + 'desc'=>'Whether to show all attributes in the RDN chooser, or just the required ones', + 'default'=>true); + + $this->default->appearance['readonly_attrs'] = array( + 'desc'=>'Mark these attributes as readonly', + 'default'=>array()); + + $this->default->appearance['readonly_attrs_exempt'] = array( + 'desc'=>'Group DN, where membership will exempt the users from readonly attrs', + 'default'=>null); + + $this->default->appearance['remoteurls'] = array( + 'desc'=>'Whether to include renders for remote URLs', + 'default'=>true); + + $this->default->appearance['show_clear_password'] = array( + 'desc'=>'Whether to show clear passwords if we dont obfuscate them', + 'default'=>false); + + $this->default->appearance['show_hints'] = array( + 'desc'=>'Show helpful hints', + 'default'=>true); + + $this->default->appearance['show_top_create'] = array( + 'desc'=>'Show a additional create link on the top of the list if there are more than 10 entries', + 'default'=>true); + + $this->default->appearance['show_schema_link'] = array( + 'desc'=>'Show the schema link for each attribute', + 'default'=>true); + + $this->default->appearance['show_attribute_notes'] = array( + 'desc'=>'Show notes for each attribute', + 'default'=>true); + + $this->default->appearance['stylesheet'] = array( + 'desc'=>'Style sheet to use', + 'default'=>'style.css'); + + $this->default->appearance['theme'] = array( + 'desc'=>'Which theme to use', + 'default'=>'default'); + + $this->default->appearance['timezone'] = array( + 'desc'=>'Define our timezone, if not defined in php.ini', + 'default'=>null); + + $this->default->appearance['tree'] = array( + 'desc'=>'Class name which inherits from Tree class and implements the draw() method', + 'default'=>'AJAXTree'); + + /** Tree display + * An array of format strings used to display enties in the + * tree viewer (left-hand side). The first format string that + * is completely defined (i.e., does not reference attributes + * that are not defined the object). If there is no format + * string that is completely defined, the last one is used. + * + * You can use special tokens to draw the entries as you wish. + * You can even mix in HTML to format the string. + * Here are all the tokens you can use: + * %rdn - draw the RDN of the entry (ie, "cn=Dave") + * %dn - draw the DN of the entry (ie, "cn=Dave,ou=People,dc=example,dc=com" + * %rdnValue - draw the value of the RDN (ie, instead of "cn=Dave", just draw "Dave") + * %[attrname]- draw the value (or values) of the specified attribute. + * example: %gidNumber + * + * Any multivalued attributes will be displayed as a comma separated list. + * + * Examples: + * + * To draw the gidNumber and uidNumber to the right of the RDN in a small, gray font: + * '%rdn ( %gidNumber / %uidNumber )' + * To draw the full DN of each entry: + * '%dn' + * To draw the objectClasses to the right in parenthesis: + * '%rdn ( %objectClass )' + * To draw the user-friendly RDN value (ie, instead of "cn=Dave", just draw "Dave"): + * '%rdnValue' + */ + $this->default->appearance['tree_display_format'] = array( + 'desc'=>'LDAP attribute to show in the tree', + 'default'=>array('%rdn')); + + $this->default->appearance['tree_height'] = array( + 'desc'=>'Pixel height of the tree browser', + 'default'=>null); + + $this->default->appearance['tree_width'] = array( + 'desc'=>'Pixel width of the tree browser', + 'default'=>null); + + /** Tree display filter + * LDAP filter used to search entries for the tree viewer (left-hand side) + */ + $this->default->appearance['tree_filter'] = array( + 'desc'=>'LDAP search filter for the tree entries', + 'default'=>'(objectClass=*)'); + + ## Caching + $this->default->cache['schema'] = array( + 'desc'=>'Cache Schema Activity', + 'default'=>true); + + $this->default->cache['query'] = array( + 'desc'=>'Cache Query Configuration', + 'default'=>true); + + $this->default->cache['query_time'] = array( + 'desc'=>'Cache the query configuration for atleast this amount of time in seconds', + 'default'=>5); + + $this->default->cache['template'] = array( + 'desc'=>'Cache Template Configuration', + 'default'=>true); + + $this->default->cache['template_time'] = array( + 'desc'=>'Cache the template configuration for atleast this amount of time in seconds', + 'default'=>60); + + $this->default->cache['tree'] = array( + 'desc'=>'Cache Browser Tree', + 'default'=>true); + + /** Confirm actions + */ + $this->default->confirm['copy'] = array( + 'desc'=>'Confirm copy actions', + 'default'=>true); + + $this->default->confirm['create'] = array( + 'desc'=>'Confirm creation actions', + 'default'=>true); + + $this->default->confirm['update'] = array( + 'desc'=>'Confirm update actions', + 'default'=>true); + + /** Commands + * Define command availability ; if the value of a command is true, + * the command will be available. + */ + $this->default->commands['cmd'] = array( + 'desc'=>'Define command availability', + 'default'=> array( + 'entry_internal_attributes_show' => true, + 'entry_refresh' => true, + 'oslinks' => true, + 'switch_template' => true + )); + + $this->default->commands['script'] = array( + 'desc'=>'Define scripts availability', + 'default'=> array( + 'add_attr_form' => true, + 'add_oclass_form' => true, + 'add_value_form' => true, + 'collapse' => true, + 'compare' => true, + 'compare_form' => true, + 'copy' => true, + 'copy_form' => true, + 'create' => true, + 'create_confirm' => true, + 'delete' => true, + 'delete_attr' => true, + 'delete_form' => true, + 'draw_tree_node' => true, + 'expand' => true, + 'export' => true, + 'export_form' => true, + 'import' => true, + 'import_form' => true, + 'login' => true, + 'logout' => true, + 'login_form' => true, + 'mass_delete' => true, + 'mass_edit' => true, + 'mass_update' => true, + 'modify_member_form' => true, + 'monitor' => true, + 'purge_cache' => true, + 'query_engine' => true, + 'rename' => true, + 'rename_form' => true, + 'rdelete' => true, + 'refresh' => true, + 'schema' => true, + 'server_info' => true, + 'show_cache' => true, + 'template_engine' => true, + 'update_confirm' => true, + 'update' => true + )); + + /** Aliases and Referrrals + * Similar to ldapsearch's -a option, the following options allow you to configure + * how phpLDAPadmin will treat aliases and referrals in the LDAP tree. + * For the following four settings, avaialable options include: + * + * LDAP_DEREF_NEVER - aliases are never dereferenced (eg, the contents of + * the alias itself are shown and not the referenced entry). + * LDAP_DEREF_SEARCHING - aliases should be dereferenced during the search but + * not when locating the base object of the search. + * LDAP_DEREF_FINDING - aliases should be dereferenced when locating the base + * object but not during the search. + * LDAP_DEREF_ALWAYS - aliases should be dereferenced always (eg, the contents + * of the referenced entry is shown and not the aliasing entry) + * We superceed these definitions with @ to suppress the error if php-ldap is + * not installed. + */ + @$this->default->deref['export'] = array( + 'desc'=>'', + 'default'=>LDAP_DEREF_NEVER); + + @$this->default->deref['search'] = array( + 'desc'=>'', + 'default'=>LDAP_DEREF_ALWAYS); + + @$this->default->deref['tree'] = array( + 'desc'=>'', + 'default'=>LDAP_DEREF_NEVER); + + @$this->default->deref['view'] = array( + 'desc'=>'', + 'default'=>LDAP_DEREF_NEVER); + + ## Debug Attributes + $this->default->debug['level'] = array( + 'desc'=>'Debug level verbosity', + 'default'=>0); + + $this->default->debug['syslog'] = array( + 'desc'=>'Whether to send debug messages to syslog', + 'default'=>false); + + $this->default->debug['file'] = array( + 'desc'=>'Name of file to send debug output to', + 'default'=>null); + + $this->default->debug['addr'] = array( + 'desc'=>'IP address of client to provide debugging info.', + 'default'=>null); + + $this->default->debug['append'] = array( + 'desc'=>'Whether to append to the debug file, or create it fresh each time', + 'default'=>true); + + ## Temp Directories + /** JPEG TMPDir + * This directory must be readable and writable by your web server + */ + $this->default->jpeg['tmpdir'] = array( + 'desc'=>'Temporary directory for jpegPhoto data', + 'default'=>'/tmp'); + + ## Mass update commands + $this->default->mass['enabled'] = array( + 'desc'=>'Are mass update commands enabled', + 'default'=>true); + + ## Modify members feature + /** + * Search filter setting for new members. This is used to search possible members that can be added + * to the group. See modify_member_form.php + */ + $this->default->modify_member['filter'] = array( + 'desc'=>'Search filter for member searches', + 'default'=>'(objectclass=Person)'); + + /** + * Group attributes. When these attributes are seen in template_engine.php, add "modify group members" + * link to the attribute + * See template_engine.php + */ + $this->default->modify_member['groupattr'] = array( + 'desc'=>'Group member attributes', + 'default'=>array('member','uniqueMember','memberUid')); + + /** + * Attribute that is added to the group member attribute. For groupOfNames or groupOfUniqueNames this is dn, + * for posixGroup it's uid. See modify_member_form.php + */ + $this->default->modify_member['attr'] = array( + 'desc'=>'Default attribute that is added to the group member attribute', + 'default'=>'dn'); + + /** + * Attribute that is added to the group member attribute. + * For posixGroup it's uid. See modify_member_form.php + */ + $this->default->modify_member['posixattr'] = array( + 'desc'=>'Contents of the group member attribute', + 'default'=>'uid'); + + /** + * Search filter setting for new members to group. This is used to search possible members that can be added + * to the posixGroup. See modify_member_form.php + */ + $this->default->modify_member['posixfilter'] = array( + 'desc'=>'Search filter for posixmember searches', + 'default'=>'(uid=*)'); + + /** + * posixGroup attribute. When this attribute are seen in modify_member_form.php, only posixGroup members are shown + * See modify_member_form.php + */ + $this->default->modify_member['posixgroupattr'] = array( + 'desc'=>'posixGroup member attribute', + 'default'=>'memberUid'); + + ## Session Attributes + /** Cookie Encryption + * phpLDAPadmin can encrypt the content of sensitive cookies if you set this to a big random string. + */ + $this->default->session['blowfish'] = array( + 'desc'=>'Blowfish key to encrypt cookie details', + 'default'=>null); + + /** Cookie Time + * If you used auth_type 'form' in the servers list, you can adjust how long the cookie will last + * (default is 0 seconds, which expires when you close the browser) + */ + $this->default->session['cookie_time'] = array( + 'desc'=>'Time in seconds for the life of cookies', + 'default'=>0); + + $this->default->session['http_realm'] = array( + 'desc'=>'HTTP Authentication Realm', + 'default'=>sprintf('%s %s',app_name(),_('login'))); + + $this->default->session['memorylimit'] = array( + 'desc'=>'Set the PHP memorylimit warning threshold.', + 'default'=>24); + + $this->default->session['timelimit'] = array( + 'desc'=>'Set the PHP timelimit.', + 'default'=>30); + + /** + * Session Menu + */ + $this->default->menu['session'] = array( + 'desc'=>'Menu items when logged in.', + 'default'=>array( + 'schema'=>true, + 'search'=>true, + 'refresh'=>true, + 'server_info'=>true, + 'monitor'=>true, + 'import'=>true, + 'export'=>true + )); + + ## Password Generation + $this->default->password['length'] = array( + 'desc'=>'Length of autogenerated password', + 'default'=>8); + + $this->default->password['numbers'] = array( + 'desc'=>'Number of numbers required in the password', + 'default'=>2); + + $this->default->password['lowercase'] = array( + 'desc'=>'Number of lowercase letters required in the password', + 'default'=>2); + + $this->default->password['uppercase'] = array( + 'desc'=>'Number of uppercase letters required in the password', + 'default'=>2); + + $this->default->password['punctuation'] = array( + 'desc'=>'Number of punctuation letters required in the password', + 'default'=>2); + + $this->default->password['use_similar'] = array( + 'desc'=>'Whether to use similiar characters', + 'default'=>true); + + $this->default->password['no_random_crypt_salt'] = array( + 'desc'=>'Disable random salt for crypt()', + 'default'=>false); + + /** Search display + * By default, when searching you may display a list or a table of results. + * Set this to 'table' to see table formatted results. + * Set this to 'list' to see "Google" style formatted search results. + */ + $this->default->search['display'] = array( + 'desc'=>'Display a list or table of search results', + 'default'=>'list'); + + $this->default->search['size_limit'] = array( + 'desc'=>'Limit the size of searchs on the search page', + 'default'=>50); + + /** + * The list of attributes to display in each search result entry. + * Note that you can add * to the list to display all attributes + */ + $this->default->search['result_attributes'] = array( + 'desc'=>'List of attributes to display in each search result entry', + 'default'=>array('cn','sn','uid','postalAddress','telephoneNumber')); + + $this->default->search['time_limit'] = array( + 'desc'=>'Maximum time to allow unlimited size_limit searches to the ldap server', + 'default'=>120); + } + + /** + * Access the configuration, taking into account the defaults and the customisations + */ + private function getConfigArray($usecache=true) { + static $CACHE = array(); + + if ($usecache && count($CACHE)) + return $CACHE; + + foreach ($this->default as $key => $vals) + $CACHE[$key] = $vals; + + foreach ($this->custom as $key => $vals) + foreach ($vals as $index => $val) + $CACHE[$key][$index]['value'] = $val; + + return $CACHE; + } + + /** + * Get a configuration value. + */ + public function getValue($key,$index,$fatal=true) { + $config = $this->getConfigArray(); + + if (! isset($config[$key])) + if ($fatal) + error(sprintf('A call was made in [%s] to getValue requesting [%s] that isnt predefined.', + basename($_SERVER['PHP_SELF']),$key),'error',null,true); + else + return ''; + + if (! isset($config[$key][$index])) + if ($fatal) + error(sprintf('Requesting an index [%s] in key [%s] that isnt predefined.',$index,$key),'error',null,true); + else + return ''; + + return isset($config[$key][$index]['value']) ? $config[$key][$index]['value'] : $config[$key][$index]['default']; + } + + /** + * Return the untested config items + */ + public function untested() { + $result = array(); + + foreach ($this->default as $option => $details) + foreach ($details as $param => $values) + if (isset($values['untested']) && $values['untested']) + array_push($result,sprintf('%s.%s',$option,$param)); + + return $result; + } + + /** + * Function to check and warn about any unusual defined variables. + */ + public function CheckCustom() { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',3,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (isset($this->custom)) { + foreach ($this->custom as $masterkey => $masterdetails) { + + if (isset($this->default->$masterkey)) { + + if (! is_array($masterdetails)) + error(sprintf('Error in configuration file, [%s] should be an ARRAY.',$masterdetails),'error',null,true); + + foreach ($masterdetails as $key => $value) { + # Test that the key is correct. + if (! in_array($key,array_keys($this->default->$masterkey))) + error(sprintf('Error in configuration file, [%s] has not been defined as a configurable variable.',$key),'error',null,true); + + # Test if its should be an array or not. + if (is_array($this->default->{$masterkey}[$key]['default']) && ! is_array($value)) + error(sprintf('Error in configuration file, %s[\'%s\'] SHOULD be an array of values.',$masterkey,$key),'error',null,true); + + if (! is_array($this->default->{$masterkey}[$key]['default']) && is_array($value)) + error(sprintf('Error in configuration file, %s[\'%s\'] should NOT be an array of values.',$masterkey,$key),'error',null,true); + } + + } else { + error(sprintf('Error in configuration file, [%s] has not been defined as a MASTER configurable variable.',$masterkey),'error',null,true); + } + } + } + } + + /** + * Get a list of available commands. + */ + public function getCommandList() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',3,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $config = $this->getConfigArray(false); + + masort($config['command'],'summary'); + + if (isset($config['command']) && is_array($config['command'])) + return $config['command']; + else + return array(); + } + + /** + * Simple ACL to see if commands can be run + */ + public function isCommandAvailable($index='cmd') { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',3,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $a = func_get_args(); + array_shift($a); + $a = $a[0]; + + # Command availability list + $cmd = $this->getValue('commands',$index); + + if (! is_string($a) || ! isset($cmd[$a])) + return false; + else + return $cmd[$a]; + } + + public function configDefinition($key,$index,$config) { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',3,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (! is_array($config) || ! array_key_exists('desc',$config) || ! array_key_exists('default',$config)) + return; + + if (isset($this->default->$key)) + $definition = $this->default->$key; + + $definition[$index] = $config; + $this->default->$key = $definition; + } + + /** + * Return the friendly attributes names + */ + private function getFriendlyAttrs() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',3,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return array_change_key_case($this->getValue('appearance','friendly_attrs')); + } + + /** + * This function will return the friendly name of an attribute, if it exists. + * If the friendly name doesnt exist, the attribute name will be returned. + * + * @param attribute + * @return string friendly name|attribute + */ + public function getFriendlyName($attr) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',3,0,__FILE__,__LINE__,__METHOD__,$fargs); + + static $friendly_attrs; + + if (! $friendly_attrs) + $friendly_attrs = $this->getFriendlyAttrs(); + + if (! is_object($attr)) + if (isset($friendly_attrs[$attr])) + return $friendly_attrs[$attr]; + else + return $attr; + + if (isset($friendly_attrs[$attr->getName()])) + return $friendly_attrs[$attr->getName()]; + else + return $attr->getName(false); + } + + /** + * This function will return true if a friendly name exists for an attribute. + * If the friendly name doesnt exist, it will return false. + * + * @param attribute + * @return boolean true|false + */ + public function haveFriendlyName($attr) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',3,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return $attr->getName(false) != $this->getFriendlyName($attr); + } + + /** + * This function will return the html for a friendly name attribute. + * + * @param attribute + * @return string html for the friendly name. + */ + public function getFriendlyHTML($attr) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',3,0,__FILE__,__LINE__,__METHOD__,$fargs); + return $attr->getName(false); + } + + public function setServers($servers) { + $this->servers = $servers; + } + + public function getServer($index=null) { + return $this->servers->Instance($index); + } + + /** + * Return a list of our servers + * @param boolean $visible - Only return visible servers + */ + public function getServerList($visible=true) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',3,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return $this->servers->getServerList($visible); + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/createlm.php b/lam/templates/3rdParty/pla/lib/createlm.php new file mode 100644 index 00000000..433c1469 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/createlm.php @@ -0,0 +1,375 @@ +permute($key, $this->perm1, 56); + + $c = array(); + $d = array(); + for ($i = 0; $i < 28; $i++) { + $c[$i] = $pk1[$i]; + $d[$i] = $pk1[28 + $i]; + } + + for ($i = 0; $i < 16; $i++) { + $c = $this->lshift($this->sc[$i], $c); + $d = $this->lshift($this->sc[$i], $d); + + $cd = $c; + for ($k = 0; $k < sizeof($d); $k++) $cd[] = $d[$k]; + $ki[$i] = $this->permute($cd, $this->perm2, 48); + } + + $pd1 = $this->permute($in, $this->perm3, 64); + + $l = array(); + $r = array(); + for ($i = 0; $i < 32; $i++) { + $l[$i] = $pd1[$i]; + $r[$i] = $pd1[32 + $i]; + } + + for ($i = 0; $i < 16; $i++) { + $er = $this->permute($r, $this->perm4, 48); + if ($forw) $erk = $this->mxor($er, $ki[$i]); + else $erk = $this->mxor($er, $ki[15 - $i]); + + for ($j = 0; $j < 8; $j++) { + for ($k = 0; $k < 6; $k++) { + $b[$j][$k] = $erk[($j * 6) + $k]; + } + } + for ($j = 0; $j < 8; $j++) { + $m = array(); + $n = array(); + $m = ($b[$j][0] << 1) | $b[$j][5]; + $n = ($b[$j][1] << 3) | ($b[$j][2] << 2) | ($b[$j][3] << 1) | $b[$j][4]; + + for ($k = 0; $k < 4; $k++) { + $b[$j][$k]=($this->sbox[$j][$m][$n] & (1 << (3-$k)))?1:0; + } + } + + for ($j = 0; $j < 8; $j++) { + for ($k = 0; $k < 4; $k++) { + $cb[($j * 4) + $k] = $b[$j][$k]; + } + } + $pcb = $this->permute($cb, $this->perm5, 32); + $r2 = $this->mxor($l, $pcb); + for ($k = 0; $k < 32; $k++) $l[$k] = $r[$k]; + for ($k = 0; $k < 32; $k++) $r[$k] = $r2[$k]; + } + $rl = $r; + for ($i = 0; $i < sizeof($l); $i++) $rl[] = $l[$i]; + return $this->permute($rl, $this->perm6, 64); + } + + /** + * str_to_key + * + * @param string $str + * @return string key + */ + private function str_to_key($str) { + $key[0] = $this->unsigned_shift_r($str[0], 1); + $key[1] = (($str[0]&0x01)<<6) | $this->unsigned_shift_r($str[1], 2); + $key[2] = (($str[1]&0x03)<<5) | $this->unsigned_shift_r($str[2], 3); + $key[3] = (($str[2]&0x07)<<4) | $this->unsigned_shift_r($str[3], 4); + $key[4] = (($str[3]&0x0F)<<3) | $this->unsigned_shift_r($str[4], 5); + $key[5] = (($str[4]&0x1F)<<2) | $this->unsigned_shift_r($str[5], 6); + $key[6] = (($str[5]&0x3F)<<1) | $this->unsigned_shift_r($str[6], 7); + $key[7] = $str[6]&0x7F; + for ($i = 0; $i < 8; $i++) { + $key[$i] = ($key[$i] << 1); + } + return $key; + } + + /** + * smb_hash + * + * @param unknown_type $in + * @param unknown_type $key + * @param unknown_type $forw + * @return unknown + */ + private function smb_hash($in, $key, $forw){ + $key2 = $this->str_to_key($key); + + for ($i = 0; $i < 64; $i++) { + $inb[$i] = ($in[$i/8] & (1<<(7-($i%8)))) ? 1:0; + $keyb[$i] = ($key2[$i/8] & (1<<(7-($i%8)))) ? 1:0; + $outb[$i] = 0; + } + $outb = $this->doHash($inb, $keyb, $forw); + for ($i = 0; $i < 8; $i++) { + $out[$i] = 0; + } + for ($i = 0; $i < 64; $i++) { + if ( $outb[$i] ) { + $out[$i/8] |= (1<<(7-($i%8))); + } + } + return $out; + } + + /** + * E_P16 + * + * @param unknown_type $in + * @return unknown + */ + private function E_P16($in) { + $p14 = array_values(unpack("C*",$in)); + $sp8 = array(0x4b, 0x47, 0x53, 0x21, 0x40, 0x23, 0x24, 0x25); + $p14_1 = array(); + $p14_2 = array(); + for ($i = 0; $i < 7; $i++) { + $p14_1[$i] = $p14[$i]; + $p14_2[$i] = $p14[$i + 7]; + } + $p16_1 = $this->smb_hash($sp8, $p14_1, true); + $p16_2 = $this->smb_hash($sp8, $p14_2, true); + $p16 = $p16_1; + for ($i = 0; $i < sizeof($p16_2); $i++) { + $p16[] = $p16_2[$i]; + } + return $p16; + } + + /** + * Calculates the LM hash of a given password. + * + * @param string $password password + * @return string hash value + */ + public function lmhash($password = "") { + $password = strtoupper($password); + $password = substr($password,0,14); + $password = str_pad($password, 14, chr(0)); + $p16 = $this->E_P16($password); + for ($i = 0; $i < sizeof($p16); $i++) { + $p16[$i] = sprintf("%02X", $p16[$i]); + } + return join("", $p16); + } + + /** + * Calculates the NT hash of a given password. + * + * @param string $password password + * @return string hash value + */ + public function nthash($password = "") { + return strtoupper(hash('md4', iconv("UTF-8","UTF-16LE",$password))); + } + + /** + * Unsigned shift operation for 32bit values. + * + * PHP 4 only supports signed shifts by default. + */ + private function unsigned_shift_r($a, $b) { + $z = 0x80000000; + if ($z & $a) { + $a = ($a >> 1); + $a &= (~$z); + $a |= 0x40000000; + $a = ($a >> ($b - 1)); + } + else { + $a = ($a >> $b); + } + return $a; + } + +} + +?> diff --git a/lam/templates/3rdParty/pla/lib/ds.php b/lam/templates/3rdParty/pla/lib/ds.php new file mode 100644 index 00000000..f297fea6 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/ds.php @@ -0,0 +1,726 @@ +', any custom extra connection to ds. + */ + abstract public function login($user=null,$pass=null,$method=null); + + /** + * Query the datasource + */ + abstract public function query($query,$method,$index=null,$debug=false); + + /** + * Return error details from previous operation + */ + abstract protected function getErrorMessage(); + abstract protected function getErrorNum(); + + /** + * Functions that set and verify object configuration details + */ + public function setDefaults($defaults) { + foreach ($defaults as $key => $details) + foreach ($details as $setting => $value) + $this->default->{$key}[$setting] = $value; + } + + public function isDefaultKey($key) { + return isset($this->default->$key); + } + + public function isDefaultSetting($key,$setting) { + return array_key_exists($setting,$this->default->{$key}); + } + + /** + * Return a configuration value + */ + public function getValue($key,$setting,$fatal=true) { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,1,__FILE__,__LINE__,__METHOD__,$fargs); + + if (isset($this->custom->{$key}[$setting])) + return $this->custom->{$key}[$setting]; + + elseif (isset($this->default->{$key}[$setting]) && array_key_exists('default',$this->default->{$key}[$setting])) + return $this->default->{$key}[$setting]['default']; + + elseif ($fatal) + debug_dump_backtrace("Error trying to get a non-existant value ($key,$setting)",1); + + else + return null; + } + + /** + * Set a configuration value + */ + public function setValue($key,$setting,$value) { + if (isset($this->custom->{$key}[$setting])) + system_message(array( + 'title'=>('Configuration setting already defined.'), + 'body'=>sprintf('A call has been made to reset a configuration value (%s,%s,%s)', + $key,$setting,$value), + 'type'=>'info')); + + $this->custom->{$key}[$setting] = $value; + } + + /** + * Return the untested config items + */ + public function untested() { + $result = array(); + + foreach ($this->default as $option => $details) + foreach ($details as $param => $values) + if (isset($values['untested']) && $values['untested']) + array_push($result,sprintf('%s.%s',$option,$param)); + + return $result; + } + + /** + * Get the name of this datastore + */ + public function getName() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return $this->getValue('server','name'); + } + + /** + * Functions that enable login and logout of the application + */ + /** + * Return the authentication type for this object + */ + public function getAuthType() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + switch ($this->getValue('login','auth_type')) { + case 'cookie': + case 'config': + case 'http': + case 'proxy': + case 'session': + case 'sasl': + return $this->getValue('login','auth_type'); + + default: + die(sprintf('Error: %s hasnt been configured for auth_type %s',__METHOD__, + $this->getValue('login','auth_type'))); + } + } + + /** + * Get the login name of the user logged into this datastore's connection method + * If this returns null, we are not logged in. + * If this returns '', we are logged in with anonymous + */ + public function getLogin($method=null) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $method = $this->getMethod($method); + + # For anonymous binds + if ($method == 'anon') + if (isset($_SESSION['USER'][$this->index][$method]['name'])) + return ''; + else + return null; + + switch ($this->getAuthType()) { + case 'cookie': + if (! isset($_COOKIE[$method.'-USER'])) + # If our bind_id is set, we'll pass that back for logins. + return (! is_null($this->getValue('login','bind_id')) && $method == 'login') ? $this->getValue('login','bind_id') : null; + else + return blowfish_decrypt($_COOKIE[$method.'-USER']); + + case 'config': + if (! isset($_SESSION['USER'][$this->index][$method]['name'])) + return $this->getValue('login','bind_id'); + else + return blowfish_decrypt($_SESSION['USER'][$this->index][$method]['name']); + + case 'proxy': + if (! isset($_SESSION['USER'][$this->index][$method]['proxy'])) + return $this->getValue('login','bind_id'); + else + return blowfish_decrypt($_SESSION['USER'][$this->index][$method]['proxy']); + + case 'http': + case 'session': + case 'sasl': + if (! isset($_SESSION['USER'][$this->index][$method]['name'])) + # If our bind_id is set, we'll pass that back for logins. + return (! is_null($this->getValue('login','bind_id')) && $method == 'login') ? $this->getValue('login','bind_id') : null; + else + return blowfish_decrypt($_SESSION['USER'][$this->index][$method]['name']); + + default: + die(sprintf('Error: %s hasnt been configured for auth_type %s',__METHOD__,$this->getAuthType())); + } + } + + /** + * Set the login details of the user logged into this datastore's connection method + */ + protected function setLogin($user,$pass,$method=null) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $method = $this->getMethod($method); + + switch ($this->getAuthType()) { + case 'cookie': + set_cookie($method.'-USER',blowfish_encrypt($user),NULL,'/'); + set_cookie($method.'-PASS',blowfish_encrypt($pass),NULL,'/'); + return true; + + case 'config': + return true; + + case 'proxy': + if (isset($_SESSION['USER'][$this->index][$method]['proxy'])) + unset($_SESSION['USER'][$this->index][$method]['proxy']); + + case 'http': + case 'session': + case 'sasl': + $_SESSION['USER'][$this->index][$method]['name'] = blowfish_encrypt($user); + $_SESSION['USER'][$this->index][$method]['pass'] = blowfish_encrypt($pass); + + return true; + + default: + die(sprintf('Error: %s hasnt been configured for auth_type %s',__METHOD__,$this->getAuthType())); + } + } + + /** + * Get the login password of the user logged into this datastore's connection method + */ + protected function getPassword($method=null) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $method = $this->getMethod($method); + + # For anonymous binds + if ($method == 'anon') + if (isset($_SESSION['USER'][$this->index][$method]['name'])) + return ''; + else + return null; + + switch ($this->getAuthType()) { + case 'cookie': + if (! isset($_COOKIE[$method.'-PASS'])) + # If our bind_id is set, we'll pass that back for logins. + return (! is_null($this->getValue('login','bind_pass')) && $method == 'login') ? $this->getValue('login','bind_pass') : null; + else + return blowfish_decrypt($_COOKIE[$method.'-PASS']); + + case 'config': + case 'proxy': + if (! isset($_SESSION['USER'][$this->index][$method]['pass'])) + return $this->getValue('login','bind_pass'); + else + return blowfish_decrypt($_SESSION['USER'][$this->index][$method]['pass']); + + case 'http': + case 'session': + case 'sasl': + if (! isset($_SESSION['USER'][$this->index][$method]['pass'])) + # If our bind_pass is set, we'll pass that back for logins. + return (! is_null($this->getValue('login','bind_pass')) && $method == 'login') ? $this->getValue('login','bind_pass') : null; + else + return blowfish_decrypt($_SESSION['USER'][$this->index][$method]['pass']); + + default: + die(sprintf('Error: %s hasnt been configured for auth_type %s',__METHOD__,$this->getAuthType())); + } + } + + /** + * Return if this datastore's connection method has been logged into + */ + public function isLoggedIn($method=null) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + static $CACHE = array(); + + $method = $this->getMethod($method); + + if (isset($CACHE[$this->index][$method]) && ! is_null($CACHE[$this->index][$method])) + return $CACHE[$this->index][$method]; + + $CACHE[$this->index][$method] = null; + + # For some authentication types, we need to do the login here + switch ($this->getAuthType()) { + case 'config': + if (! $CACHE[$this->index][$method] = $this->login($this->getLogin($method),$this->getPassword($method),$method)) + system_message(array( + 'title'=>('Unable to login.'), + 'body'=>('Your configuration file has authentication set to CONFIG based authentication, however, the userid/password failed to login'), + 'type'=>'error')); + + break; + + case 'http': + # If our auth vars are not set, throw up a login box. + if (! isset($_SERVER['PHP_AUTH_USER'])) { + # If this server is not in focus, skip the basic auth prompt. + if (get_request('server_id','REQUEST') != $this->getIndex()) { + $CACHE[$this->index][$method] = false; + break; + } + + header(sprintf('WWW-Authenticate: Basic realm="%s %s"',app_name(),_('login'))); + + if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.0') + header('HTTP/1.0 401 Unauthorized'); // http 1.0 method + else + header('Status: 401 Unauthorized'); // http 1.1 method + + # If we still dont have login details... + if (! isset($_SERVER['PHP_AUTH_USER'])) { + system_message(array( + 'title'=>('Unable to login.'), + 'body'=>('Your configuration file has authentication set to HTTP based authentication, however, there was none presented'), + 'type'=>'error')); + + $CACHE[$this->index][$method] = false; + } + + # Check our auth vars are valid. + } else { + if (! $this->login($_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW'],$method)) { + system_message(array( + 'title'=>('Unable to login.'), + 'body'=>('Your HTTP based authentication is not accepted by the LDAP server'), + 'type'=>'error')); + + $CACHE[$this->index][$method] = false; + + } else + $CACHE[$this->index][$method] = true; + } + + break; + + case 'proxy': + $CACHE[$this->index][$method] = $this->login($this->getValue('login','bind_id'),$this->getValue('login','bind_pass'),$method); + + break; + + case 'sasl': + # Propogate any given Kerberos credential cache location + if (isset($_ENV['REDIRECT_KRB5CCNAME'])) + putenv(sprintf('KRB5CCNAME=%s',$_ENV['REDIRECT_KRB5CCNAME'])); + elseif (isset($_SERVER['KRB5CCNAME'])) + putenv(sprintf('KRB5CCNAME=%s',$_SERVER['KRB5CCNAME'])); + + # Map the SASL auth ID to a DN + $regex = $this->getValue('login', 'sasl_dn_regex'); + $replacement = $this->getValue('login', 'sasl_dn_replacement'); + + if ($regex && $replacement) { + $userDN = preg_replace($regex, $replacement, $_SERVER['REMOTE_USER']); + + $CACHE[$this->index][$method] = $this->login($userDN, '', $method); + } + # Otherwise, use the user name as is + else { + $CACHE[$this->index][$method] = $this->login($_SERVER['REMOTE_USER'], '', $method); + } + + break; + + default: + $CACHE[$this->index][$method] = is_null($this->getLogin($method)) ? false : true; + } + + return $CACHE[$this->index][$method]; + } + + /** + * Logout of this datastore's connection method + */ + public function logout($method=null) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $method = $this->getMethod($method); + + unset ($_SESSION['cache'][$this->index]); + + switch ($this->getAuthType()) { + case 'cookie': + set_cookie($method.'-USER','',time()-3600,'/'); + set_cookie($method.'-PASS','',time()-3600,'/'); + + case 'config': + return true; + + case 'http': + case 'proxy': + case 'session': + case 'sasl': + if (isset($_SESSION['USER'][$this->index][$method])) + unset($_SESSION['USER'][$this->index][$method]); + + return true; + + default: + die(sprintf('Error: %s hasnt been configured for auth_type %s',__METHOD__,$this->getAuthType())); + } + } + + /** + * Functions that return the condition of the datasource + */ + public function isVisible() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return $this->getValue('server','visible'); + } + + public function isReadOnly() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (! trim($this->getLogin(null)) && $_SESSION[APPCONFIG]->getValue('appearance','anonymous_bind_implies_read_only')) + return true; + else + return $this->getValue('server','read_only'); + } + + public function getIndex() { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->index); + + return $this->index; + } + + /** + * Work out which connection method to use. + * If a method is passed, then it will be passed back. If no method is passed, then we'll + * check to see if the user is logged in. If they are, then 'user' is used, otherwise + * 'anon' is used. + * + * @param int Server ID + * @return string Connection Method + */ + protected function getMethod($method=null) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + static $CACHE = array(); + + # Immediately return if method is set. + if (! is_null($method)) + return $method; + + # If we have been here already, then return our result + if (isset($CACHE[$this->index]) && ! is_null($CACHE)) + return $CACHE[$this->index]; + + $CACHE[$this->index] = 'anon'; + + if ($this->isLoggedIn('user')) + $CACHE[$this->index] = 'user'; + + return $CACHE[$this->index]; + } + + /** + * This method should be overridden in application specific ds files + */ + public function isSessionValid() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,1,__FILE__,__LINE__,__METHOD__,$fargs,true); + + return true; + } + + /** + * Return the time left in seconds until this connection times out. If there is not timeout, + * this function will return null. + */ + public function inactivityTime() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($this->isLoggedIn() && ! in_array($this->getAuthType(),array('config','http'))) + return time()+($this->getValue('login','timeout')*60); + else + return null; + } +} + +/** + * The list of database sources + * + * @package phpLDAPadmin + * @subpackage DataStore + */ +class Datastore { + # Out DS index id + private $index; + # List of all the objects + private $objects = array(); + # Default settings + private $default; + + public function __construct() { + $this->default = new StdClass; + + $this->default->server['id'] = array( + 'desc'=>'Server ID', + 'default'=>null); + + $this->default->server['name'] = array( + 'desc'=>'Server name', + 'default'=>null); + + # Connectivity Info + $this->default->server['host'] = array( + 'desc'=>'Host Name', + 'default'=>'127.0.0.1'); + + $this->default->server['port'] = array( + 'desc'=>'Port Number', + 'default'=>null); + + # Read or write only access + $this->default->server['read_only'] = array( + 'desc'=>'Server is in READ ONLY mode', + 'default'=>false); + + $this->default->server['visible'] = array( + 'desc'=>'Whether this server is visible', + 'default'=>true); + + # Authentication Information + $this->default->login['auth_type'] = array( + 'desc'=>'Authentication Type', + 'default'=>'session'); + +/* + /* ID to login to this application, this assumes that there is + * application authentication on top of authentication required to + * access the data source ** + $this->default->login['auth_id'] = array( + 'desc'=>'User Login ID to login to this DS', + 'untested'=>true, + 'default'=>null); + + $this->default->login['auth_pass'] = array( + 'desc'=>'User Login Password to login to this DS', + 'untested'=>true, + 'default'=>null); +*/ + + $this->default->login['auth_text'] = array( + 'desc'=>'Text to show at the login prompt', + 'default'=>null); + + $this->default->login['bind_id'] = array( + 'desc'=>'User Login ID to bind to this DS', + 'default'=>null); + + $this->default->login['bind_pass'] = array( + 'desc'=>'User Login Password to bind to this DS', + 'default'=>null); + + $this->default->login['timeout'] = array( + 'desc'=>'Session timout in seconds', + 'default'=>session_cache_expire()-1); + + $this->default->login['sasl_dn_regex'] = array( + 'desc'=>'SASL authorization id to user dn PCRE regular expression', + 'untested'=>true, + 'default'=>null); + + $this->default->login['sasl_dn_replacement'] = array( + 'desc'=>'SASL authorization id to user dn PCRE regular expression replacement string', + 'untested'=>true, + 'default'=>null); + + # Prefix for custom pages + $this->default->custom['pages_prefix'] = array( + 'desc'=>'Prefix name for custom pages', + 'default'=>'custom_'); + } + + /** + * Create a new database object + */ + public function newServer($type) { + if (class_exists($type)) { + $this->index = count($this->objects)+1; + $this->objects[$this->index] = new $type($this->index); + $this->objects[$this->index]->setDefaults($this->default); + return $this->index; + + } else { + printf('ERROR: Class [%s] doesnt exist',$type); + die(); + } + } + + /** + * Set values for a database object. + */ + public function setValue($key,$setting,$value) { + if (! $this->objects[$this->index]->isDefaultKey($key)) + error("ERROR: Setting a key [$key] that isnt predefined.",'error',true); + + if (! $this->objects[$this->index]->isDefaultSetting($key,$setting)) + error("ERROR: Setting a index [$key,$setting] that isnt predefined.",'error',true); + + # Test if its should be an array or not. + if (is_array($this->objects[$this->index]->getValue($key,$setting)) && ! is_array($value)) + error("Error in configuration file, {$key}['$setting'] SHOULD be an array of values.",'error',true); + + if (! is_array($this->objects[$this->index]->getValue($key,$setting)) && is_array($value)) + error("Error in configuration file, {$key}['$setting'] should NOT be an array of values.",'error',true); + + # Store the value in the object. + $this->objects[$this->index]->setValue($key,$setting,$value); + } + + /** + * Get a list of all the configured servers. + * + * @param boolean Only show visible servers. + * @return array list of all configured servers. + */ + public function getServerList($isVisible=true) { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + static $CACHE; + + if (isset($CACHE[$isVisible])) + return $CACHE[$isVisible]; + + $CACHE[$isVisible] = array(); + + # Debugging incase objects is not set. + if (! $this->objects) { + print "
    ";
    +			debug_print_backtrace();
    +			die();
    +		}
    +
    +		foreach ($this->objects as $id => $server)
    +			if (! $isVisible || ($isVisible && $server->getValue('server','visible')))
    +				$CACHE[$isVisible][$id] = $server;
    +
    +		masort($CACHE[$isVisible],'name');
    +
    +		return $CACHE[$isVisible];
    +	}
    +
    +	/**
    +	 * Return an object Instance of a configured database.
    +	 *
    +	 * @param int Index
    +	 * @return object Datastore instance object.
    +	 */
    +	public function Instance($index=null) {
    +		if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		# If no index defined, then pick the lowest one.
    +		if (is_null($index) || ! trim($index) || ! is_numeric($index))
    +			$index = min($this->GetServerList())->getIndex();
    +
    +		if (! isset($this->objects[$index]))
    +			debug_dump_backtrace(sprintf('Error: Datastore instance [%s] doesnt exist?',htmlspecialchars($index)),1);
    +
    +		if (defined('DEBUG_ENABLED') && DEBUG_ENABLED)
    +			debug_log('Returning instance of database (%s)',3,0,__FILE__,__LINE__,__METHOD__,$index);
    +
    +		return $this->objects[$index];
    +	}
    +
    +	/**
    +	 * Return an object Instance of a configured database.
    +	 *
    +	 * @param string Name of the instance to retrieve
    +	 * @return object Datastore instance object.
    +	 */
    +	public function InstanceName($name=null) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		foreach ($this->getServerList(false) as $index)
    +			if ($this->objects[$index]->getName() == $name)
    +				return $this->objects[$index];
    +
    +		# If we get here, then no object with the name exists.
    +		return null;
    +	}
    +
    +	/**
    +	 * Return an object Instance of a configured database.
    +	 *
    +	 * @param string ID of the instance to retrieve
    +	 * @return object Datastore instance object.
    +	 */
    +	public function InstanceId($id=null) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		foreach ($this->getServerList(false) as $index)
    +			if ($this->objects[$index->getIndex()]->getValue('server','id') == $id)
    +				return $this->objects[$index->getIndex()];
    +
    +		# If we get here, then no object with the name exists.
    +		return null;
    +	}
    +}
    +?>
    diff --git a/lam/templates/3rdParty/pla/lib/ds_ldap_pla.php b/lam/templates/3rdParty/pla/lib/ds_ldap_pla.php
    new file mode 100644
    index 00000000..e46a930f
    --- /dev/null
    +++ b/lam/templates/3rdParty/pla/lib/ds_ldap_pla.php
    @@ -0,0 +1,653 @@
    +default->appearance['password_hash'] = array(
    +			'desc'=>'Default HASH to use for passwords',
    +			'default'=>'md5');
    +
    +		$this->default->appearance['show_create'] = array(
    +			'desc'=>'Whether to show the "Create new Entry here" in the tree browser',
    +			'default'=>true);
    +
    +		$this->default->login['fallback_dn'] = array(
    +			'desc'=>'If the attribute base login fails, see if a DN was entered',
    +			'default'=>false);
    +
    +		$this->default->query['disable_default'] = array(
    +			'desc'=>'Configuration to disable the default query template',
    +			'default'=>false);
    +
    +		$this->default->query['custom_only'] = array(
    +			'desc'=>'Configuration to force the usage of custom query templates',
    +			'default'=>false);
    +
    +		$this->default->server['branch_rename'] = array(
    +			'desc'=>'Enable renaming of branches',
    +			'default'=>false);
    +
    +		$this->default->server['custom_attrs'] = array(
    +			'desc'=>'Custom operational attributes to be treated as regular attributes',
    +			'default'=>array(''));
    +
    +		$this->default->server['custom_sys_attrs'] = array(
    +			'desc'=>'Custom operational attributes to be treated as internal attributes',
    +			'default'=>array('+'));
    +
    +		$this->default->server['jpeg_attributes'] = array(
    +			'desc'=>'Additional attributes to treat as Jpeg Attributes',
    +			'default'=>array());
    +
    +		# This was added in case the LDAP server doesnt provide them with a base +,* query.
    +		$this->default->server['root_dse_attributes'] = array(
    +			'desc'=>'RootDSE attributes for use when displaying server info',
    +			'default'=>array(
    +				'namingContexts',
    +				'subschemaSubentry',
    +				'altServer',
    +				'supportedExtension',
    +				'supportedControl',
    +				'supportedSASLMechanisms',
    +				'supportedLDAPVersion',
    +				'currentTime',
    +				'dsServiceName',
    +				'defaultNamingContext',
    +				'schemaNamingContext',
    +				'configurationNamingContext',
    +				'rootDomainNamingContext',
    +				'supportedLDAPPolicies',
    +				'highestCommittedUSN',
    +				'dnsHostName',
    +				'ldapServiceName',
    +				'serverName',
    +				'supportedCapabilities',
    +				'changeLog',
    +				'tlsAvailableCipherSuites',
    +				'tlsImplementationVersion',
    +				'supportedSASLMechanisms',
    +				'dsaVersion',
    +				'myAccessPoint',
    +				'dseType',
    +				'+',
    +				'*'
    +			));
    +
    +		# Settings for auto_number
    +		$this->default->auto_number['enable'] = array(
    +			'desc'=>'Enable the AUTO UID feature',
    +			'default'=>true);
    +
    +		$this->default->auto_number['mechanism'] = array(
    +			'desc'=>'Mechanism to use to search for automatic numbers',
    +			'default'=>'search');
    +
    +		$this->default->auto_number['search_base'] = array(
    +			'desc'=>'Base DN to use for search mechanisms',
    +			'default'=>null);
    +
    +		$this->default->auto_number['min'] = array(
    +			'desc'=>'Minimum number to start with',
    +			'default'=>array('uidNumber'=>1000,'gidNumber'=>500));
    +
    +		$this->default->auto_number['dn'] = array(
    +			'desc'=>'DN to use when evaluating numbers',
    +			'default'=>null);
    +
    +		$this->default->auto_number['pass'] = array(
    +			'desc'=>'Password for DN to use when evaluating numbers',
    +			'default'=>null);
    +
    +		$this->default->unique['attrs'] = array(
    +			'desc'=>'Attributes to check for uniqueness before allowing updates',
    +			'default'=>array('mail','uid','uidNumber'));
    +
    +		$this->default->unique['dn'] = array(
    +			'desc'=>'DN to use when evaluating attribute uniqueness',
    +			'default'=>null);
    +
    +		$this->default->unique['pass'] = array(
    +			'desc'=>'Password for DN to use when evaluating attribute uniqueness',
    +			'default'=>null);
    +	}
    +
    +	public function __get($key) {
    +		switch ($key) {
    +			case 'name':
    +				return $this->getValue('server','name');
    +
    +			default:
    +				system_message(array(
    +					'title'=>('Unknown request for Object value.'),
    +					'body'=>sprintf(('Attempt to obtain value %s from %s'),$key,get_class($this)),
    +					'type'=>'error'));
    +		}
    +	}
    +
    +	/**
    +	 * Gets whether the admin has configured phpLDAPadmin to show the "Create New" link in the tree viewer.
    +	 * 
    +	 *	$servers->setValue('appearance','show_create',true|false);
    +	 * 
    +	 * If NOT set, then default to show the Create New item.
    +	 * If IS set, then return the value (it should be true or false).
    +	 *
    +	 * The entry creation command must be available.
    +	 * 
    +	 *	$config->custom->commands['script'] = array('create' => true);
    +	 * 
    +	 *
    +	 * @return boolean true if the feature is enabled and false otherwise.
    +	 */
    +	function isShowCreateEnabled() {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		if (! $_SESSION[APPCONFIG]->isCommandAvailable('script','create'))
    +			return false;
    +		else
    +			return $this->getValue('appearance','show_create');
    +	}
    +
    +	/**
    +	 * Fetch whether the user has configured a certain server login to be non anonymous
    +	 *
    +	 * 
    +	 *	$servers->setValue('login','anon_bind',true|false);
    +	 * 
    +	 *
    +	 * @return boolean
    +	 */
    +	public function isAnonBindAllowed() {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		# If only_login_allowed_dns is set, then we cant have anonymous.
    +		if (count($this->getValue('login','allowed_dns')) > 0)
    +			$return = false;
    +		else
    +			$return = $this->getValue('login','anon_bind');
    +
    +		if (DEBUG_ENABLED)
    +			debug_log('Returning (%s)',17,0,__FILE__,__LINE__,__METHOD__,$return);
    +
    +		return $return;
    +	}
    +
    +	/**
    +	 * Returns true if the user has configured the specified server to enable branch (non-leaf) renames.
    +	 *
    +	 * This is configured in config.php thus:
    +	 * 
    +	 *	$servers->setValue('server','branch_rename',true|false);
    +	 * 
    +	 *
    +	 * @return boolean
    +	 */
    +	function isBranchRenameEnabled() {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    + 		return $this->getValue('server','branch_rename');
    +	}
    +
    +	/**
    +	 * Determines if an attribute's value can contain multiple lines. Attributes that fall
    +	 * in this multi-line category may be configured in config.php. Hence, this function
    +	 * accesses the global variable $_SESSION[APPCONFIG]->custom->appearance['multi_line_attributes'];
    +	 *
    +	 * Usage example:
    +	 * 
    +	 *	if ($ldapserver->isMultiLineAttr('postalAddress'))
    +	 *		echo '';
    +	 *	else
    +	 *		echo '';
    +	 * 
    +	 *
    +	 * @param string The name of the attribute of interested (case insensivite)
    +	 * @param string (optional) The current value of the attribute (speeds up the process by searching for carriage returns already in the attribute value)
    +	 * @return boolean
    +	 */
    +	function isMultiLineAttr($attr_name,$val=null) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		# Set default return
    +		$return = false;
    +
    +		# First, check the optional val param for a \n or a \r
    +		if (! is_null($val) && (strpos($val,"\n") || strpos($val,"\r")))
    +			$return = true;
    +
    +		# Next, compare strictly by name first
    +		else
    +			foreach ($_SESSION[APPCONFIG]->getValue('appearance','multi_line_attributes') as $multi_line_attr_name)
    +				if (strcasecmp($multi_line_attr_name,$attr_name) == 0) {
    +					$return = true;
    +					break;
    +				}
    +
    +		# If unfound, compare by syntax OID
    +		if (! $return) {
    +			$sattr = $this->getSchemaAttribute($attr_name);
    +
    +			if ($sattr) {
    +				$syntax_oid = $sattr->getSyntaxOID();
    +
    +				if ($syntax_oid)
    +					foreach ($_SESSION[APPCONFIG]->getValue('appearance','multi_line_syntax_oids') as $multi_line_syntax_oid)
    +						if ($multi_line_syntax_oid == $syntax_oid) {
    +							$return = true;
    +							break;
    +						}
    +			}
    +		}
    +
    +		if (DEBUG_ENABLED)
    +			debug_log('Returning (%s)',17,0,__FILE__,__LINE__,__METHOD__,$return);
    +
    +		return $return;
    +	}
    +
    +	/**
    +	 * Returns true if the specified attribute is configured according to
    +	 * the test enabled in config.php
    +	 *
    +	 * @param string The name of the attribute to test.
    +	 * @param array The attributes to test against.
    +	 * @param dn A DN that is exempt from these tests.
    +	 * @return boolean
    +	 */
    +	private function isAttrTest($attr,$attrs,$except_dn) {
    +		$attr = trim($attr);
    +		if (! trim($attr) || ! count($attrs))
    +			return false;
    +
    +		# Is the user excluded?
    +		if ($except_dn && $this->userIsMember($this->getLogin(),$except_dn))
    +			return false;
    +
    +		foreach ($attrs as $attr_name)
    +			if (strcasecmp($attr,trim($attr_name)) == 0)
    +				return true;
    +
    +		return false;
    +	}
    +
    +	/**
    +	 * Returns true if the specified attribute is configured as read only
    +	 * in config.php.
    +	 * Attributes are configured as read-only in config.php thus:
    +	 * 
    +	 *	$config->custom->appearance['readonly_attrs'] = array('objectClass');
    +	 * 
    +	 *
    +	 * @param string The name of the attribute to test.
    +	 * @return boolean
    +	 */
    +	public function isAttrReadOnly($attr) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		$attrs = $_SESSION[APPCONFIG]->getValue('appearance','readonly_attrs');
    +		$except_dn = $_SESSION[APPCONFIG]->getValue('appearance','readonly_attrs_exempt');
    +
    +		return $this->isAttrTest($attr,$attrs,$except_dn);
    +	}
    +
    +	/**
    +	 * Returns true if the specified attribute is configured as hidden
    +	 * in config.php.
    +	 * Attributes are configured as hidden in config.php thus:
    +	 * 
    +	 *	$config->custom->appearance['hide_attrs'] = array('objectClass');
    +	 * 
    +	 *
    +	 * @param string The name of the attribute to test.
    +	 * @return boolean
    +	 */
    +	public function isAttrHidden($attr) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		$attrs = $_SESSION[APPCONFIG]->getValue('appearance','hide_attrs');
    +		$except_dn = $_SESSION[APPCONFIG]->getValue('appearance','hide_attrs_exempt');
    +
    +		return $this->isAttrTest($attr,$attrs,$except_dn);
    +	}
    +
    +	/**
    +	 * Add objects
    +	 */
    +	public function add($dn,$entry_array,$method=null) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		foreach ($entry_array as $attr => $val)
    +			$entry_array[$attr] = dn_unescape($val);
    +
    +		$result = false;
    +
    +		# Check our unique attributes.
    +		if (! $this->checkUniqueAttrs($dn,$entry_array))
    +			return false;
    +
    +		if (run_hook('pre_entry_create',array('server_id'=>$this->index,'method'=>$method,'dn'=>$dn,'attrs'=>$entry_array))) {
    +			$result = @ldap_add($this->connect($method),dn_escape($dn),$entry_array);
    +
    +			if ($result) {
    +				# Update the tree
    +				$tree = get_cached_item($this->index,'tree');
    +
    +				# If we created the base, delete it, then add it back
    +				if (get_request('create_base'))
    +					$tree->delEntry($dn);
    +
    +				$tree->addEntry($dn);
    +
    +				set_cached_item($this->index,'tree','null',$tree);
    +
    +				run_hook('post_entry_create',array('server_id'=>$this->index,'method'=>$method,'dn'=>$dn,'attrs'=>$entry_array));
    +
    +			} else {
    +				system_message(array(
    +					'title'=>_('Could not add the object to the LDAP server.'),
    +					'body'=>ldap_error_msg($this->getErrorMessage(null),$this->getErrorNum(null)),
    +					'type'=>'error'));
    +			}
    +		}
    +
    +		return $result;
    +	}
    +
    +	/**
    +	 * Delete objects
    +	 */
    +	public function delete($dn,$method=null) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		$result = false;
    +
    +		if (run_hook('pre_entry_delete',array('server_id'=>$this->index,'method'=>$method,'dn'=>$dn))) {
    +			$result = @ldap_delete($this->connect($method),dn_escape($dn));
    +
    +			if ($result) {
    +				# Update the tree
    +				$tree = get_cached_item($this->index,'tree');
    +				$tree->delEntry($dn);
    +
    +				set_cached_item($this->index,'tree','null',$tree);
    +
    +				run_hook('post_entry_delete',array('server_id'=>$this->index,'method'=>$method,'dn'=>$dn));
    +			}
    +		}
    +
    +		return $result;
    +	}
    +
    +	/**
    +	 * Rename objects
    +	 */
    +	public function rename($dn,$new_rdn,$container,$deleteoldrdn,$method=null) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		$result = false;
    +
    +		if (run_hook('pre_entry_rename',array('server_id'=>$this->index,'method'=>$method,'dn'=>$dn,'rdn'=>$new_rdn,'container'=>$container))) {
    +			$result = @ldap_rename($this->connect($method),$dn,$new_rdn,$container,$deleteoldrdn);
    +
    +			if ($result) {
    +				# Update the tree
    +				$tree = get_cached_item($this->index,'tree');
    +				$newdn = sprintf('%s,%s',$new_rdn,$container);
    +				$tree->renameEntry($dn,$newdn);
    +
    +				set_cached_item($this->index,'tree','null',$tree);
    +
    +				run_hook('post_entry_rename',array('server_id'=>$this->index,'method'=>$method,'dn'=>$dn,'rdn'=>$new_rdn,'container'=>$container));
    +			}
    +		}
    +
    +		return $result;
    +	}
    +
    +	/**
    +	 * Modify objects
    +	 */
    +	public function modify($dn,$attrs,$method=null) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		# Check our unique attributes.
    +		if (! $this->checkUniqueAttrs($dn,$attrs))
    +			return false;
    +
    +		$result = false;
    +		$summary = array();
    +		$current_attrs = $this->getDNAttrValues($dn,$method,LDAP_DEREF_NEVER,array('*'));
    +
    +		# Go through our attributes and call our hooks for each attribute changing its value
    +		foreach ($attrs as $attr => $values) {
    +			# For new attributes
    +			if (count($values) && ! isset($current_attrs[$attr])) {
    +				if (! run_hook('pre_attr_add',
    +					array('server_id'=>$this->index,'method'=>$method,'dn'=>$dn,'attr'=>$attr,'newvalue'=>$values))) {
    +
    +					unset($attrs[$attr]);
    +					system_message(array(
    +						'title'=>('Attribute not added'),
    +						'body'=>sprintf('%s (%s)',('Hook pre_attr_add prevented attribute from being added'),$attr),
    +						'type'=>'warn'));
    +
    +				} else
    +					$summary['add'][$attr]['new'] = $values;
    +
    +			# For modify attributes
    +			} elseif (count($values)) {
    +				if (! run_hook('pre_attr_modify',
    +					array('server_id'=>$this->index,'method'=>$method,'dn'=>$dn,'attr'=>$attr,'oldvalue'=>$current_attrs[$attr],'newvalue'=>$values))) {
    +
    +					unset($attrs[$attr]);
    +					system_message(array(
    +						'title'=>('Attribute not modified'),
    +						'body'=>sprintf('%s (%s)',('Hook pre_attr_modify prevented attribute from being modified'),$attr),
    +						'type'=>'warn'));
    +
    +				} else {
    +					$summary['modify'][$attr]['new'] = $values;
    +					$summary['modify'][$attr]['old'] = $current_attrs[$attr];
    +				}
    +
    +			# For delete attributes
    +			} else {
    +				if (! run_hook('pre_attr_delete',
    +					array('server_id'=>$this->index,'method'=>$method,'dn'=>$dn,'attr'=>$attr,'oldvalue'=>$current_attrs[$attr]))) {
    +
    +					unset($attrs[$attr]);
    +					system_message(array(
    +						'title'=>('Attribute not deleted'),
    +						'body'=>sprintf('%s (%s)',('Hook pre_attr_delete prevented attribute from being deleted'),$attr),
    +						'type'=>'warn'));
    +
    +				} else
    +					$summary['delete'][$attr]['old'] = $current_attrs[$attr];
    +			}
    +		}
    +
    +		if (! count($attrs))
    +			return false;
    +
    +		if (run_hook('pre_entry_modify',array('server_id'=>$this->index,'method'=>$method,'dn'=>$dn,'attrs'=>$attrs))) {
    +			$result = @ldap_modify($this->connect($method),$dn,$attrs);
    +
    +			if ($result) {
    +				run_hook('post_entry_modify',array('server_id'=>$this->index,'method'=>$method,'dn'=>$dn,'attrs'=>$attrs));
    +
    +				foreach (array('add','modify','delete') as $mode)
    +					if (isset($summary[$mode]))
    +						foreach ($summary[$mode] as $attr => $values)
    +							switch ($mode) {
    +								case 'add':
    +									run_hook(sprintf('post_attr_%s',$mode),
    +										array('server_id'=>$this->index,'method'=>$method,'dn'=>$dn,'attr'=>$attr,'newvalue'=>$values['new']));
    +									break;
    +
    +								case 'modify':
    +									run_hook(sprintf('post_attr_%s',$mode),
    +										array('server_id'=>$this->index,'method'=>$method,'dn'=>$dn,'attr'=>$attr,'oldvalue'=>$values['old'],'newvalue'=>$values['new']));
    +									break;
    +
    +								case 'delete':
    +									run_hook(sprintf('post_attr_%s',$mode),
    +										array('server_id'=>$this->index,'method'=>$method,'dn'=>$dn,'attr'=>$attr,'oldvalue'=>$values['old']));
    +									break;
    +
    +								default:
    +									debug_dump_backtrace(sprintf('Unkown mode %s',$mode),1);
    +							}
    +			} else {
    +				system_message(array(
    +					'title'=>_('Could not perform ldap_modify operation.'),
    +					'body'=>ldap_error_msg($this->getErrorMessage($method),$this->getErrorNum($method)),
    +					'type'=>'error'));
    +			}
    +		}
    +
    +		return $result;
    +	}
    +
    +	/**
    +	 * Returns true if the specified attribute is configured as unique
    +	 * in config.php.
    +	 * Attributes are configured as hidden in config.php thus:
    +	 * 
    +	 *	$servers->setValue('unique','attrs',array('mail','uid','uidNumber'));
    +	 * 
    +	 *
    +	 * @param string $attr The name of the attribute to test.
    +	 * @return boolean
    +	 */
    +	public function isAttrUnique($attr) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		# Should this attribute value be unique
    +		if (in_array_ignore_case($attr,$this->getValue('unique','attrs')))
    +			return true;
    +		else
    +			return false;
    +	}
    +
    +	/**
    +	 * This function will check whether the value for an attribute being changed
    +	 * is already assigned to another DN.
    +	 *
    +	 * Returns the bad value, or null if all values are OK
    +	 *
    +	 * @param dn DN that is being changed
    +	 * @param string Attribute being changed
    +	 * @param string|array New values for the attribute
    +	 */
    +	public function checkUniqueAttrs($dn,$attrs) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		# If none of the attributes are defined unique, we'll return immediately;
    +		if (! $checkattrs = array_intersect(arrayLower($this->getValue('unique','attrs')),array_keys(array_change_key_case($attrs))))
    +			return true;
    +
    +		# Check see and use our alternate uid_dn and password if we have it.
    +		if (! $this->login($this->getValue('unique','dn'),$this->getValue('unique','pass'),'unique')) {
    +			system_message(array(
    +				'title'=>('UNIQUE invalid login/password'),
    +				'body'=>sprintf('%s (%s)',('Unable to connect to LDAP server with the unique login/password, please check your configuration.'),
    +					$this->getName()),
    +				'type'=>'warn'));
    +
    +			return false;
    +		}
    +
    +		$query = array();
    +
    +		# Build our search filter to double check each attribute.
    +		$query['filter'] = '(|';
    +		foreach ($checkattrs as $attr)
    +			foreach ($attrs[$attr] as $val)
    +				if ($val)
    +					$query['filter'] .= sprintf('(%s=%s)',$attr,$val);
    +		$query['filter'] .= ')';
    +
    +		$query['attrs'] = $checkattrs;
    +
    +		# Search through our bases and see if we have match
    +		foreach ($this->getBaseDN() as $base) {
    +			$query['base'] = $base;
    +
    +			# Do the search
    +			$results = $this->query($query,'unique');
    +
    +			# If we have a match.
    +			if (count($results))
    +				foreach ($results as $values)
    +					# If one of the attributes is owned to somebody else, then we may as well die here.
    +					if ($values['dn'] != $dn) {
    +						$href = sprintf('cmd.php?cmd=query_engine&server_id=%s&filter=%s&scope=sub&query=none&format=list&search=true',$this->index,$query['filter']);
    +
    +						system_message(array(
    +							'title'=>('Attribute value would not be unique'),
    +							'body'=>sprintf('%s (%s)',
    +								('This update has been or will be cancelled, it would result in an attribute value not being unique. You might like to search the LDAP server for the offending entry.'),
    +								htmlspecialchars($href),
    +								_('Search')),
    +							'type'=>'warn'));
    +
    +						return false;
    +					}
    +		}
    +
    +		# If we get here, then it must be OK?
    +		return true;
    +	}
    +
    +	/**
    +	 * Check if the session timeout has occured for this LDAP server.
    +	 */
    +	public function isSessionValid() {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		# If inactiveTime() returns a value, we need to check that it has not expired.
    +		if (is_null($this->inactivityTime()) || ! $this->isLoggedIn())
    +			return true;
    +
    +		# If session has expired
    +		if ((isset($_SESSION['ACTIVITY'][$this->getIndex()])) && ($_SESSION['ACTIVITY'][$this->getIndex()] < time())) {
    +			$this->logout();
    +			unset($_SESSION['ACTIVITY'][$this->getIndex()]);
    +
    +			return false;
    +		}
    +
    +		$_SESSION['ACTIVITY'][$this->getIndex()] = $this->inactivityTime();
    +		return true;
    +	}
    +}
    +?>
    diff --git a/lam/templates/3rdParty/pla/lib/ds_myldap.php b/lam/templates/3rdParty/pla/lib/ds_myldap.php
    new file mode 100644
    index 00000000..8e23b575
    --- /dev/null
    +++ b/lam/templates/3rdParty/pla/lib/ds_myldap.php
    @@ -0,0 +1,2320 @@
    +index = $index;
    +		$this->type = 'ldap';
    +
    +		# Additional values that can go in our config.php
    +		$this->custom = new StdClass;
    +		$this->default = new StdClass;
    +
    +/*
    + * Not used by PLA
    +		# Database Server Variables
    +		$this->default->server['db'] = array(
    +			'desc'=>'Database Name',
    +			'untested'=>true,
    +			'default'=>null);
    +*/
    +
    +		/* This was created for IDS - since it doesnt present STRUCTURAL against objectClasses
    +		 * definitions when reading the schema.*/
    +		$this->default->server['schema_oclass_default'] = array(
    +			'desc'=>'When reading the schema, and it doesnt specify objectClass type, default it to this',
    +			'default'=>null);
    +
    +		$this->default->server['base'] = array(
    +			'desc'=>'LDAP Base DNs',
    +			'default'=>array());
    +
    +		$this->default->server['tls'] = array(
    +			'desc'=>'Connect using TLS',
    +			'default'=>false);
    +
    +		# Login Details
    +		$this->default->login['attr'] = array(
    +			'desc'=>'Attribute to use to find the users DN',
    +			'default'=>'dn');
    +
    +		$this->default->login['anon_bind'] = array(
    +			'desc'=>'Enable anonymous bind logins',
    +			'default'=>true);
    +
    +		$this->default->login['allowed_dns'] = array(
    +			'desc'=>'Limit logins to users who match any of the following LDAP filters',
    +			'default'=>array());
    +
    +		$this->default->login['base'] = array(
    +			'desc'=>'Limit logins to users who are in these base DNs',
    +			'default'=>array());
    +
    +		$this->default->login['class'] = array(
    +			'desc'=>'Strict login to users containing a specific objectClasses',
    +			'default'=>array());
    +
    +		$this->default->proxy['attr'] = array(
    +			'desc'=>'Attribute to use to find the users DN for proxy based authentication',
    +			'default'=>array());
    +
    +		# SASL configuration
    +		$this->default->server['sasl'] = array(
    +			'desc'=>'Use SASL authentication when binding LDAP server',
    +			'default'=>false);
    +
    +		$this->default->sasl['mech'] = array(
    +			'desc'=>'SASL mechanism used while binding LDAP server',
    +			'untested'=>true,
    +			'default'=>'PLAIN');
    +
    +		$this->default->sasl['realm'] = array(
    +			'desc'=>'SASL realm name',
    +			'untested'=>true,
    +			'default'=>null);
    +
    +		$this->default->sasl['authz_id'] = array(
    +			'desc'=>'SASL authorization id',
    +			'untested'=>true,
    +			'default'=>null);
    +
    +		$this->default->sasl['authz_id_regex'] = array(
    +			'desc'=>'SASL authorization id PCRE regular expression',
    +			'untested'=>true,
    +			'default'=>null);
    +
    +		$this->default->sasl['authz_id_replacement'] = array(
    +			'desc'=>'SASL authorization id PCRE regular expression replacement string',
    +			'untested'=>true,
    +			'default'=>null);
    +
    +		$this->default->sasl['props'] = array(
    +			'desc'=>'SASL properties',
    +			'untested'=>true,
    +			'default'=>null);
    +	}
    +
    +	/**
    +	 * Required ABSTRACT functions
    +	 */
    +	/**
    +	 * Connect and Bind to the Database
    +	 *
    +	 * @param string Which connection method resource to use
    +	 * @return resource|null Connection resource if successful, null if not.
    +	 */
    +	protected function connect($method,$debug=false,$new=false) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		static $CACHE = array();
    +
    +		$method = $this->getMethod($method);
    +		$bind = array();
    +
    +		if (isset($CACHE[$this->index][$method]) && $CACHE[$this->index][$method])
    +			return $CACHE[$this->index][$method];
    +
    +		# Check if we have logged in and therefore need to use those details as our bind.
    +		$bind['id'] = is_null($this->getLogin($method)) && $method != 'anon' ? $this->getLogin('user') : $this->getLogin($method);
    +		$bind['pass'] = is_null($this->getPassword($method)) && $method != 'anon' ? $this->getPassword('user') : $this->getPassword($method);
    +
    +		# If our bind id is still null, we are not logged in.
    +		if (is_null($bind['id']) && ! in_array($method,array('anon','login')))
    +			return null;
    +
    +		# If we bound to the LDAP server with these details for a different connection, return that resource
    +		if (isset($CACHE[$this->index]) && ! $new)
    +			foreach ($CACHE[$this->index] as $cachedmethod => $resource) {
    +				if (($this->getLogin($cachedmethod) == $bind['id']) && ($this->getPassword($cachedmethod) == $bind['pass'])) {
    +					$CACHE[$this->index][$method] = $resource;
    +
    +					return $CACHE[$this->index][$method];
    +				}
    +			}
    +
    +		$CACHE[$this->index][$method] = null;
    +
    +		# No identifiable connection exists, lets create a new one.
    +		if (DEBUG_ENABLED)
    +			debug_log('Creating NEW connection [%s] for index [%s]',16,0,__FILE__,__LINE__,__METHOD__,
    +				$method,$this->index);
    +
    +		if (function_exists('run_hook'))
    +			run_hook('pre_connect',array('server_id'=>$this->index,'method'=>$method));
    +
    +		if ($this->getValue('server','port'))
    +			$resource = ldap_connect($this->getValue('server','host'),$this->getValue('server','port'));
    +		else
    +			$resource = ldap_connect($this->getValue('server','host'));
    +
    +		$CACHE[$this->index][$method] = $resource;
    +
    +		if (DEBUG_ENABLED)
    +			debug_log('LDAP Resource [%s], Host [%s], Port [%s]',16,0,__FILE__,__LINE__,__METHOD__,
    +				$resource,$this->getValue('server','host'),$this->getValue('server','port'));
    +
    +		if (! is_resource($resource))
    +			debug_dump_backtrace('UNHANDLED, $resource is not a resource',1);
    +
    +		# Go with LDAP version 3 if possible (needed for renaming and Novell schema fetching)
    +		ldap_set_option($resource,LDAP_OPT_PROTOCOL_VERSION,3);
    +
    +		/* Disabling this makes it possible to browse the tree for Active Directory, and seems
    +		 * to not affect other LDAP servers (tested with OpenLDAP) as phpLDAPadmin explicitly
    +		 * specifies deref behavior for each ldap_search operation. */
    +		// TODO provide upstream patch if PLA gets active again
    +		$followReferrals = ($_SESSION['config']->getFollowReferrals() === 'true') ? 1 : 0;
    +		ldap_set_option($resource,LDAP_OPT_REFERRALS, $followReferrals);
    +
    +		# Try to fire up TLS is specified in the config
    +		if ($this->isTLSEnabled())
    +			$this->startTLS($resource);
    +
    +		# If SASL has been configured for binding, then start it now.
    +		if ($this->isSASLEnabled())
    +			$bind['result'] = $this->startSASL($resource,$method);
    +
    +		# Normal bind...
    +		else
    +			$bind['result'] = @ldap_bind($resource,$bind['id'],$bind['pass']);
    +
    +		if ($debug)
    +			debug_dump(array('method'=>$method,'bind'=>$bind,'USER'=>$_SESSION['USER']));
    +
    +		if (DEBUG_ENABLED)
    +			debug_log('Resource [%s], Bind Result [%s]',16,0,__FILE__,__LINE__,__METHOD__,$resource,$bind);
    +
    +		if (! $bind['result']) {
    +			if (DEBUG_ENABLED)
    +				debug_log('Leaving with FALSE, bind FAILed',16,0,__FILE__,__LINE__,__METHOD__);
    +
    +			$this->noconnect = true;
    +
    +			system_message(array(
    +				'title'=>sprintf('%s %s',('Unable to connect to LDAP server'),$this->getName()),
    +				'body'=>sprintf('%s: %s (%s) for %s',_('Error'),$this->getErrorMessage($method),$this->getErrorNum($method),$method),
    +				'type'=>'error'));
    +
    +			$CACHE[$this->index][$method] = null;
    +
    +		} else {
    +			$this->noconnect = false;
    +
    +			# If this is a proxy session, we need to switch to the proxy user
    +			if ($this->isProxyEnabled() && $bind['id'] && $method != 'anon')
    +				if (! $this->startProxy($resource,$method)) {
    +					$this->noconnect = true;
    +					$CACHE[$this->index][$method] = null;
    +				}
    +		}
    +
    +		if (function_exists('run_hook'))
    +			run_hook('post_connect',array('server_id'=>$this->index,'method'=>$method,'id'=>$bind['id']));
    +
    +		if ($debug)
    +			debug_dump(array($method=>$CACHE[$this->index][$method]));
    +
    +		return $CACHE[$this->index][$method];
    +	}
    +
    +	/**
    +	 * Login to the database with the application user/password
    +	 *
    +	 * @return boolean true|false for successful login.
    +	 */
    +	public function login($user=null,$pass=null,$method=null,$new=false) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		$userDN = null;
    +
    +		# Get the userDN from the username.
    +		if (! is_null($user)) {
    +			# If login,attr is set to DN, then user should be a DN
    +			if (($this->getValue('login','attr') == 'dn') || $method != 'user')
    +				$userDN = $user;
    +			else
    +				$userDN = $this->getLoginID($user,'login');
    +
    +			if (! $userDN && $this->getValue('login','fallback_dn'))
    +				$userDN = $user;
    +
    +			if (! $userDN)
    +				return false;
    +
    +		} else {
    +			if (in_array($method,array('user','anon'))) {
    +				$method = 'anon';
    +				$userDN = '';
    +				$pass = '';
    +
    +			} else {
    +				$userDN = $this->getLogin('user');
    +				$pass = $this->getPassword('user');
    +			}
    +		}
    +
    +		if (! $this->isAnonBindAllowed() && ! trim($userDN))
    +			return false;
    +
    +		# Temporarily set our user details
    +		$this->setLogin($userDN,$pass,$method);
    +
    +		$connect = $this->connect($method,false,$new);
    +
    +		# If we didnt log in...
    +		if (! is_resource($connect) || $this->noconnect || ! $this->userIsAllowedLogin($userDN)) {
    +			$this->logout($method);
    +
    +			return false;
    +
    +		} else
    +			return true;
    +	}
    +
    +	/**
    +	 * Perform a query to the Database
    +	 *
    +	 * @param string query to perform
    +	 *	$query['base']
    +	 *	$query['filter']
    +	 *	$query['scope']
    +	 *	$query['attrs'] = array();
    +	 *	$query['deref']
    +	 * @param string Which connection method resource to use
    +	 * @param string Index items according to this key
    +	 * @param boolean Enable debugging output
    +	 * @return array|null Results of query.
    +	 */
    +	public function query($query,$method,$index=null,$debug=false) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		$attrs_only = 0;
    +
    +		# Defaults
    +		if (! isset($query['attrs']))
    +			$query['attrs'] = array();
    +		else
    +			# Re-index the attrs, PHP throws an error if the keys are not sequential from 0.
    +			$query['attrs'] = array_values($query['attrs']);
    +
    +		if (! isset($query['base'])) {
    +			$bases = $this->getBaseDN();
    +			$query['base'] = array_shift($bases);
    +		}
    +
    +		if (! isset($query['deref']))
    +			$query['deref'] = $_SESSION[APPCONFIG]->getValue('deref','search');
    +		if (! isset($query['filter']))
    +			$query['filter'] = '(&(objectClass=*))';
    +		if (! isset($query['scope']))
    +			$query['scope'] = 'sub';
    +		if (! isset($query['size_limit']))
    +			$query['size_limit'] = 0;
    +		if (! isset($query['time_limit']))
    +			$query['time_limit'] = 0;
    +
    +		if ($query['scope'] == 'base' && ! isset($query['baseok']))
    +			system_message(array(
    +				'title'=>sprintf('Dont call %s',__METHOD__),
    +				'body'=>sprintf('Use getDNAttrValues for base queries [%s]',$query['base']),
    +				'type'=>'info'));
    +
    +		if (is_array($query['base'])) {
    +			system_message(array(
    +				'title'=>('Invalid BASE for query'),
    +				'body'=>('The query was cancelled because of an invalid base.'),
    +				'type'=>'error'));
    +
    +			return array();
    +		}
    +
    +		if (DEBUG_ENABLED)
    +			debug_log('%s search PREPARE.',16,0,__FILE__,__LINE__,__METHOD__,$query['scope']);
    +
    +		if ($debug)
    +			debug_dump(array('query'=>$query,'server'=>$this->getIndex(),'con'=>$this->connect($method)));
    +
    +		$resource = $this->connect($method,$debug);
    +
    +		switch ($query['scope']) {
    +			case 'base':
    +				$search = @ldap_read($resource,$query['base'],$query['filter'],$query['attrs'],$attrs_only,$query['size_limit'],$query['time_limit'],$query['deref']);
    +				break;
    +
    +			case 'one':
    +				$search = @ldap_list($resource,$query['base'],$query['filter'],$query['attrs'],$attrs_only,$query['size_limit'],$query['time_limit'],$query['deref']);
    +				break;
    +
    +			case 'sub':
    +			default:
    +				$search = @ldap_search($resource,$query['base'],$query['filter'],$query['attrs'],$attrs_only,$query['size_limit'],$query['time_limit'],$query['deref']);
    +				break;
    +		}
    +
    +		if ($debug)
    +			debug_dump(array('method'=>$method,'search'=>$search,'error'=>$this->getErrorMessage()));
    +
    +		if (DEBUG_ENABLED)
    +			debug_log('Search scope [%s] base [%s] filter [%s] attrs [%s] COMPLETE (%s).',16,0,__FILE__,__LINE__,__METHOD__,
    +				$query['scope'],$query['base'],$query['filter'],$query['attrs'],is_null($search));
    +
    +		if (! $search)
    +			return array();
    +
    +		$return = array();
    +
    +		# Get the first entry identifier
    +		if ($entries = ldap_get_entries($resource,$search)) {
    +			# Remove the count
    +			if (isset($entries['count']))
    +				unset($entries['count']);
    +
    +			# Iterate over the entries
    +			foreach ($entries as $a => $entry) {
    +				if (! isset($entry['dn']))
    +					debug_dump_backtrace('No DN?',1);
    +
    +				# Remove the none entry references.
    +				if (! is_array($entry)) {
    +					unset($entries[$a]);
    +					continue;
    +				}
    +
    +				$dn = $entry['dn'];
    +				unset($entry['dn']);
    +
    +				# Iterate over the attributes
    +				foreach ($entry as $b => $attrs) {
    +					# Remove the none entry references.
    +					if (! is_array($attrs)) {
    +						unset($entry[$b]);
    +						continue;
    +					}
    +
    +					# Remove the count
    +					if (isset($entry[$b]['count']))
    +						unset($entry[$b]['count']);
    +				}
    +
    +				# Our queries always include the DN (the only value not an array).
    +				$entry['dn'] = $dn;
    +				$return[$dn] = $entry;
    +			}
    +
    +			# Sort our results
    +			foreach ($return as $key=> $values)
    +				ksort($return[$key]);
    +		}
    +
    +		if (DEBUG_ENABLED)
    +			debug_log('Returning (%s)',17,0,__FILE__,__LINE__,__METHOD__,$return);
    +
    +		return $return;
    +	}
    +
    +	/**
    +	 * Get the last error string
    +	 *
    +	 * @param string Which connection method resource to use
    +	 */
    +	public function getErrorMessage($method=null) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		return ldap_error($this->connect($method));
    +	}
    +
    +	/**
    +	 * Get the last error number
    +	 *
    +	 * @param string Which connection method resource to use
    +	 */
    +	public function getErrorNum($method=null) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		return ldap_errno($this->connect($method));
    +	}
    +
    +	/**
    +	 * Additional functions
    +	 */
    +	/**
    +	 * Get a user ID
    +	 *
    +	 * @param string Which connection method resource to use
    +	 */
    +	public function getLoginID($user,$method=null) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		$query['filter'] = sprintf('(&(%s=%s)%s)',
    +			$this->getValue('login','attr'),$user,
    +			$this->getLoginClass() ? sprintf('(objectclass=%s)',join(')(objectclass=',$this->getLoginClass())) : '');
    +		$query['attrs'] = array('dn');
    +
    +		$result = array();
    +		foreach ($this->getLoginBaseDN() as $base) {
    +			$query['base'] = $base;
    +			$result = $this->query($query,$method);
    +
    +			if (count($result) == 1)
    +				break;
    +		}
    +
    +		if (count($result) != 1)
    +			return null;
    +
    +		$detail = array_shift($result);
    +
    +		if (! isset($detail['dn']))
    +			die('ERROR: DN missing?');
    +		else
    +			return $detail['dn'];
    +	}
    +
    +	/**
    +	 * Return the login base DNs
    +	 * If no login base DNs are defined, then the LDAP server Base DNs are used.
    +	 */
    +	private function getLoginBaseDN() {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,1,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		if ($this->getValue('login','base'))
    +			return $this->getValue('login','base');
    +		else
    +			return $this->getBaseDN();
    +	}
    +
    +	/**
    +	 * Return the login classes that a user must have to login
    +	 */
    +	private function getLoginClass() {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,1,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		return $this->getValue('login','class');
    +	}
    +
    +	/**
    +	 * Return if anonymous bind is allowed in the configuration
    +	 */
    +	public function isAnonBindAllowed() {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		return $this->getValue('login','anon_bind');
    +	}
    +
    +	/**
    +	 * Fetches whether TLS has been configured for use with a certain server.
    +	 *
    +	 * Users may configure phpLDAPadmin to use TLS in config,php thus:
    +	 * 
    +	 *	$servers->setValue('server','tls',true|false);
    +	 * 
    +	 *
    +	 * @return boolean
    +	 */
    +	private function isTLSEnabled() {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		if ($this->getValue('server','tls') && ! function_exists('ldap_start_tls')) {
    +				error(('TLS has been enabled in your config, but your PHP install does not support TLS. TLS will be disabled.'),'warn');
    +			return false;
    +
    +		} else
    +			return $this->getValue('server','tls');
    +	}
    +
    +	/**
    +	 * If TLS is configured, then start it
    +	 */
    +	private function startTLS($resource) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		if (! $this->getValue('server','tls') || (function_exists('ldap_start_tls') && ! @ldap_start_tls($resource))) {
    +			system_message(array(
    +				'title'=>sprintf('%s (%s)',('Could not start TLS.'),$this->getName()),
    +				'body'=>sprintf('%s: %s',('Error'),('Could not start TLS. Please check your LDAP server configuration.')),
    +				'type'=>'error'));
    +
    +			return false;
    +
    +		} else
    +			return true;
    +	}
    +
    +	/**
    +	 * Fetches whether SASL has been configured for use with a certain server.
    +	 *
    +	 * Users may configure phpLDAPadmin to use SASL in config,php thus:
    +	 * 
    +	 *	$servers->setValue('server','sasl',true|false);
    +	 * 
    +	 *
    +	 * @return boolean
    +	 */
    +	private function isSASLEnabled() {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		if ($this->getValue('server','sasl') && ! function_exists('ldap_sasl_bind')) {
    +				error(('SASL has been enabled in your config, but your PHP install does not support SASL. SASL will be disabled.'),'warn');
    +			return false;
    +
    +		} else
    +			return $this->getValue('server','sasl');
    +	}
    +
    +	/**
    +	 * If SASL is configured, then start it
    +	 * To be able to use SASL, PHP should have been compliled with --with-ldap-sasl=DIR
    +	 *
    +	 * @todo This has not been tested, please let the developers know if this function works as expected.
    +	 */
    +	private function startSASL($resource,$method) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		static $CACHE = array();
    +
    +		if (! $this->getValue('server','sasl') || ! function_exists('ldap_start_tls'))
    +			return false;
    +
    +		if (! isset($CACHE['login_dn'])) {
    +			$CACHE['login_dn'] = is_null($this->getLogin($method)) ? $this->getLogin('user') : $this->getLogin($method);
    +			$CACHE['login_pass'] = is_null($this->getPassword($method)) ? $this->getPassword('user') : $this->getPassword($method);
    +		}
    +
    +		$mech = strtolower($this->getValue('sasl','mech'));
    +
    +		# Do we need to rewrite authz_id?
    +		if (! isset($CACHE['authz_id']))
    +			if (! trim($this->getValue('sasl','authz_id')) && $mech != 'gssapi') {
    +
    +			if (DEBUG_ENABLED)
    +				debug_log('Rewriting bind DN [%s] -> authz_id with regex [%s] and replacement [%s].',9,0,__FILE__,__LINE__,__METHOD__,
    +					$CACHE['login_dn'],
    +					$this->getValue('sasl','authz_id_regex'),
    +					$this->getValue('sasl','authz_id_replacement'));
    +
    +			$CACHE['authz_id'] = @preg_replace($this->getValue('sasl','authz_id_regex'),
    +				$this->getValue('sasl','authz_id_replacement'),$CACHE['login_dn']);
    +
    +			# Invalid regex?
    +			if (is_null($CACHE['authz_id']))
    +				error(sprintf(('It seems that sasl_authz_id_regex "%s" contains invalid PCRE regular expression. The error is "%s".'),
    +					$this->getValue('sasl','authz_id_regex'),(isset($php_errormsg) ? $php_errormsg : '')),
    +					'error','index.php');
    +
    +			if (DEBUG_ENABLED)
    +				debug_log('Resource [%s], SASL OPTIONS: mech [%s], realm [%s], authz_id [%s], props [%s]',9,0,__FILE__,__LINE__,__METHOD__,
    +					$resource,
    +					$this->getValue('sasl','mech'),
    +					$this->getValue('sasl','realm'),
    +					$CACHE['authz_id'],
    +					$this->getValue('sasl','props'));
    +
    +			} else
    +				$CACHE['authz_id'] = $this->getValue('sasl','authz_id');
    +
    +		# @todo this function is different in PHP5.1 and PHP5.2
    +		return @ldap_sasl_bind($resource,$CACHE['login_dn'],$CACHE['login_pass'],
    +			$this->getValue('sasl','mech'),
    +			$this->getValue('sasl','realm'),
    +			$CACHE['authz_id'],
    +			$this->getValue('sasl','props'));
    +	}
    +
    +	/**
    +	 * Fetches whether PROXY AUTH has been configured for use with a certain server.
    +	 *
    +	 * Users may configure phpLDAPadmin to use PROXY AUTH in config,php thus:
    +	 * 
    +	 *	$servers->setValue('login','auth_type','proxy');
    +	 * 
    +	 *
    +	 * @return boolean
    +	 */
    +	private function isProxyEnabled() {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		return $this->getValue('login','auth_type') == 'proxy' ? true : false;
    +	}
    +
    +	/**
    +	 * If PROXY AUTH is configured, then start it
    +	 */
    +	private function startProxy($resource,$method) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		$rootdse = $this->getRootDSE();
    +
    +		if (! (isset($rootdse['supportedcontrol']) && in_array('2.16.840.1.113730.3.4.18',$rootdse['supportedcontrol']))) {
    +			system_message(array(
    +				'title'=>sprintf('%s %s',('Unable to start proxy connection'),$this->getName()),
    +				'body'=>sprintf('%s: %s',('Error'),('Your LDAP server doesnt seem to support this control')),
    +				'type'=>'error'));
    +
    +			return false;
    +		}
    +
    +		$filter = '(&';
    +		$dn = '';
    +
    +		$missing = false;
    +		foreach ($this->getValue('proxy','attr') as $attr => $var) {
    +			if (! isset($_SERVER[$var])) {
    +				system_message(array(
    +					'title'=>sprintf('%s %s',('Unable to start proxy connection'),$this->getName()),
    +					'body'=>sprintf('%s: %s (%s)',('Error'),('Attribute doesnt exist'),$var),
    +					'type'=>'error'));
    +
    +				$missing = true;
    +
    +			} else {
    +				if ($attr == 'dn') {
    +					$dn = $var;
    +
    +					break;
    +
    +				} else
    +					$filter .= sprintf('(%s=%s)',$attr,$_SERVER[$var]);
    +			}
    +		}
    +
    +		if ($missing)
    +			return false;
    +
    +		$filter .= ')';
    +
    +		if (! $dn) {
    +			$query['filter'] = $filter;
    +
    +			foreach ($this->getBaseDN() as $base) {
    +				$query['base'] = $base;
    +
    +				if ($search = $this->query($query,$method))
    +					break;
    +			}
    +
    +			if (count($search) != 1) {
    +				system_message(array(
    +					'title'=>sprintf('%s %s',('Unable to start proxy connection'),$this->getName()),
    +					'body'=>sprintf('%s: %s (%s)',('Error'),('Search for DN returned the incorrect number of results'),count($search)),
    +					'type'=>'error'));
    +
    +				return false;
    +			}
    +
    +			$search = array_pop($search);
    +			$dn = $search['dn'];
    +		}
    +
    +		$ctrl = array(
    +			'oid'=>'2.16.840.1.113730.3.4.18',
    +			'value'=>sprintf('dn:%s',$dn),
    +			'iscritical' => true);
    +
    +		if (! ldap_set_option($resource,LDAP_OPT_SERVER_CONTROLS,array($ctrl))) {
    +			system_message(array(
    +				'title'=>sprintf('%s %s',('Unable to start proxy connection'),$this->getName()),
    +				'body'=>sprintf('%s: %s (%s) for %s',('Error'),$this->getErrorMessage($method),$this->getErrorNum($method),$method),
    +				'type'=>'error'));
    +
    +			return false;
    +		}
    +
    +		$_SESSION['USER'][$this->index][$method]['proxy'] = blowfish_encrypt($dn);
    +
    +		return true;
    +	}
    +
    +	/**
    +	 * Modify attributes of a DN
    +	 */
    +	public function modify($dn,$attrs,$method=null) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		# We need to supress the error here - programming should detect and report it.
    +		return @ldap_mod_replace($this->connect($method),$dn,$attrs);
    +	}
    +
    +	/**
    +	 * Gets the root DN of the specified LDAPServer, or null if it
    +	 * can't find it (ie, the server won't give it to us, or it isnt
    +	 * specified in the configuration file).
    +	 *
    +	 * Tested with OpenLDAP 2.0, Netscape iPlanet, and Novell eDirectory 8.7 (nldap.com)
    +	 * Please report any and all bugs!!
    +	 *
    +	 * Please note: On FC systems, it seems that php_ldap uses /etc/openldap/ldap.conf in
    +	 * the search base if it is blank - so edit that file and comment out the BASE line.
    +	 *
    +	 * @param string Which connection method resource to use
    +	 * @return array dn|null The root DN of the server on success (string) or null on error.
    +	 * @todo Sort the entries, so that they are in the correct DN order.
    +	 */
    +	public function getBaseDN($method=null) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		static $CACHE;
    +
    +		$method = $this->getMethod($method);
    +		$result = array();
    +
    +		if (isset($CACHE[$this->index][$method]))
    +			return $CACHE[$this->index][$method];
    +
    +		# If the base is set in the configuration file, then just return that.
    +		if (count($this->getValue('server','base'))) {
    +			if (DEBUG_ENABLED)
    +				debug_log('Return BaseDN from Config [%s]',17,0,__FILE__,__LINE__,__METHOD__,implode('|',$this->getValue('server','base')));
    +
    +			$CACHE[$this->index][$method] = $this->getValue('server','base');
    +
    +		# We need to figure it out.
    +		} else {
    +			if (DEBUG_ENABLED)
    +				debug_log('Connect to LDAP to find BaseDN',80,0,__FILE__,__LINE__,__METHOD__);
    +
    +			# Set this to empty, in case we loop back here looking for the baseDNs
    +			$CACHE[$this->index][$method] = array();
    +
    +			$results = $this->getDNAttrValues('',$method);
    +
    +			if (isset($results['namingcontexts'])) {
    +				if (DEBUG_ENABLED)
    +					debug_log('LDAP Entries:%s',80,0,__FILE__,__LINE__,__METHOD__,implode('|',$results['namingcontexts']));
    +
    +				$result = $results['namingcontexts'];
    +			}
    +
    +			$CACHE[$this->index][$method] = $result;
    +		}
    +
    +		return $CACHE[$this->index][$method];
    +	}
    +
    +	/**
    +	 * Gets whether an entry exists based on its DN. If the entry exists,
    +	 * returns true. Otherwise returns false.
    +	 *
    +	 * @param string The DN of the entry of interest.
    +	 * @param string Which connection method resource to use
    +	 * @return boolean
    +	 */
    +	public function dnExists($dn,$method=null) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		$results = $this->getDNAttrValues($dn,$method);
    +
    +		if ($results)
    +			return $results;
    +		else
    +			return false;
    +	}
    +
    +	/**
    +	 * Given a DN string, this returns the top container portion of the string.
    +	 *
    +	 * @param string The DN whose container string to return.
    +	 * @return string The container
    +	 */
    +	public function getContainerTop($dn) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		$return = $dn;
    +
    +		foreach ($this->getBaseDN() as $base) {
    +			if (preg_match("/${base}$/i",$dn)) {
    +				$return = $base;
    +				break;
    +			}
    +		}
    +
    +		if (DEBUG_ENABLED)
    +			debug_log('Returning (%s)',17,0,__FILE__,__LINE__,__METHOD__,$return);
    +
    +		return $return;
    +	}
    +
    +	/**
    +	 * Given a DN string and a path like syntax, this returns the parent container portion of the string.
    +	 *
    +	 * @param string The DN whose container string to return.
    +	 * @param string Either '/', '.' or something like '../../'
    +	 * @return string The container
    +	 */
    +	public function getContainerPath($dn,$path='..') {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		$top = $this->getContainerTop($dn);
    +
    +		if ($path[0] == '/') {
    +			$dn = $top;
    +			$path = substr($path,1);
    +
    +		} elseif ($path == '.') {
    +			return $dn;
    +		}
    +
    +		$parenttree = explode('/',$path);
    +
    +		foreach ($parenttree as $key => $value) {
    +			if ($value == '..') {
    +				if ($this->getContainer($dn))
    +					$dn = $this->getContainer($dn);
    +
    +				if ($dn == $top)
    +					break;
    +
    +			} elseif($value)
    +				$dn = sprintf('%s,%s',$value,$dn);
    +
    +			else
    +				break;
    +		}
    +
    +		if (! $dn) {
    +			debug_dump(array(__METHOD__,'dn'=>$dn,'path'=>$path));
    +			debug_dump_backtrace('Container is empty?',1);
    +		}
    +
    +		return $dn;
    +	}
    +
    +	/**
    +	 * Given a DN string, this returns the parent container portion of the string.
    +	 * For example. given 'cn=Manager,dc=example,dc=com', this function returns
    +	 * 'dc=example,dc=com'.
    +	 *
    +	 * @param string The DN whose container string to return.
    +	 * @return string The container
    +	 */
    +	public function getContainer($dn) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		$parts = $this->explodeDN($dn);
    +
    +		if (count($parts) <= 1)
    +			$return = null;
    +
    +		else {
    +			$return = $parts[1];
    +
    +			for ($i=2;$i
    +	 *	dc=example,dc=com
    +	 *		ou=People
    +	 *			cn=Dave
    +	 *			cn=Fred
    +	 *			cn=Joe
    +	 *		ou=More People
    +	 *			cn=Mark
    +	 *			cn=Bob
    +	 * 
    +	 *
    +	 * Calling getContainerContents("ou=people,dc=example,dc=com")
    +	 * would return the following list:
    +	 *
    +	 * 
    +	 *	cn=Dave
    +	 *	cn=Fred
    +	 *	cn=Joe
    +	 *	ou=More People
    +	 * 
    +	 *
    +	 * @param string The DN of the entry whose children to return.
    +	 * @param string Which connection method resource to use
    +	 * @param int (optional) The maximum number of entries to return.
    +	 *            If unspecified, no limit is applied to the number of entries in the returned.
    +	 * @param string (optional) An LDAP filter to apply when fetching children, example: "(objectClass=inetOrgPerson)"
    +	 * @param constant (optional) The LDAP deref setting to use in the query
    +	 * @return array An array of DN strings listing the immediate children of the specified entry.
    +	 */
    +	public function getContainerContents($dn,$method=null,$size_limit=0,$filter='(objectClass=*)',$deref=LDAP_DEREF_NEVER) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		$return = array();
    +
    +		$query = array();
    +		$query['base'] = $this->escapeDN($dn);
    +		$query['attrs'] = array('dn');
    +		$query['filter'] = $filter;
    +		$query['deref'] = $deref;
    +		$query['scope'] = 'one';
    +		$query['size_limit'] = $size_limit;
    +		$results = $this->query($query,$method);
    +
    +		if ($results) {
    +			foreach ($results as $index => $entry) {
    +				$child_dn = $entry['dn'];
    +				array_push($return,$child_dn);
    +			}
    +		}
    +
    +		if (DEBUG_ENABLED)
    +			debug_log('Returning (%s)',17,0,__FILE__,__LINE__,__METHOD__,$return);
    +
    +		# Sort the results
    +		asort($return);
    +
    +		return $return;
    +	}
    +
    +	/**
    +	 * Explode a DN into an array of its RDN parts.
    +	 *
    +	 * @param string The DN to explode.
    +	 * @param int (optional) Whether to include attribute names (see http://php.net/ldap_explode_dn for details)
    +	 *
    +	 * @return array An array of RDN parts of this format:
    +	 * 
    +	 *	Array
    +	 *		(
    +	 *			[0] => uid=ppratt
    +	 *			[1] => ou=People
    +	 *			[2] => dc=example
    +	 *			[3] => dc=com
    +	 *		)
    +	 * 
    +	 *
    +	 * NOTE: When a multivalue RDN is passed to ldap_explode_dn, the results returns with 'value + value';
    +	 */
    +	private function explodeDN($dn,$with_attributes=0) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		static $CACHE;
    +
    +		if (isset($CACHE['explode'][$dn][$with_attributes])) {
    +			if (DEBUG_ENABLED)
    +				debug_log('Return CACHED result (%s) for (%s)',1,0,__FILE__,__LINE__,__METHOD__,
    +					$CACHE['explode'][$dn][$with_attributes],$dn);
    +
    +			return $CACHE['explode'][$dn][$with_attributes];
    +		}
    +
    +		$dn = addcslashes($dn,'<>+";');
    +
    +		# split the dn
    +		$result[0] = ldap_explode_dn($this->escapeDN($dn),0);
    +		$result[1] = ldap_explode_dn($this->escapeDN($dn),1);
    +		if (! $result[$with_attributes]) {
    +			if (DEBUG_ENABLED)
    +				debug_log('Returning NULL - NO result.',1,0,__FILE__,__LINE__,__METHOD__);
    +
    +			return array();
    +		}
    +
    +		# Remove our count value that ldap_explode_dn returns us.
    +		unset($result[0]['count']);
    +		unset($result[1]['count']);
    +
    +		# Record the forward and reverse entries in the cache.
    +		foreach ($result as $key => $value) {
    +			# translate hex code into ascii for display
    +			$result[$key] = dn_unescape($value);
    +
    +			$CACHE['explode'][implode(',',$result[0])][$key] = $result[$key];
    +			$CACHE['explode'][implode(',',array_reverse($result[0]))][$key] = array_reverse($result[$key]);
    +		}
    +
    +		if (DEBUG_ENABLED)
    +			debug_log('Returning (%s)',17,0,__FILE__,__LINE__,__METHOD__,$result[$with_attributes]);
    +
    +		return $result[$with_attributes];
    +	}
    +
    +	/**
    +	 * Parse a DN and escape any special characters
    +	 */
    +	protected function escapeDN($dn) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		if (! trim($dn))
    +			return $dn;
    +
    +		# Check if the RDN has a comma and escape it.
    +		while (preg_match('/([^\\\\]),(\s*[^=]*\s*),/',$dn))
    +			$dn = preg_replace('/([^\\\\]),(\s*[^=]*\s*),/','$1\\\\2C$2,',$dn);
    +
    +		$dn = preg_replace('/([^\\\\]),(\s*[^=]*\s*)([^,])$/','$1\\\\2C$2$3',$dn);
    +
    +		if (DEBUG_ENABLED)
    +			debug_log('Returning (%s)',17,0,__FILE__,__LINE__,__METHOD__,$dn);
    +
    +		return $dn;
    +	}
    +
    +	public function getRootDSE($method=null) {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		$query = array();
    +		$query['base'] = '';
    +		$query['scope'] = 'base';
    +		$query['attrs'] = $this->getValue('server','root_dse_attributes');
    +		$query['baseok'] = true;
    +		$results = $this->query($query,$method);
    +
    +		if (is_array($results) && count($results) == 1)
    +			return array_change_key_case(array_pop($results));
    +		else
    +			return array();
    +	}
    +
    +	/** Schema Methods **/
    +	/**
    +	 * This function will query the ldap server and request the subSchemaSubEntry which should be the Schema DN.
    +	 *
    +	 * If we cant connect to the LDAP server, we'll return false.
    +	 * If we can connect but cant get the entry, then we'll return null.
    +	 *
    +	 * @param string Which connection method resource to use
    +	 * @param dn The DN to use to obtain the schema
    +	 * @return array|false Schema if available, null if its not or false if we cant connect.
    +	 */
    +	private function getSchemaDN($method=null,$dn='') {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',25,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		# If we already got the SchemaDN, then return it.
    +		if ($this->_schemaDN)
    +			return $this->_schemaDN;
    +
    +		if (! $this->connect($method))
    +			return false;
    +
    +		$search = @ldap_read($this->connect($method),$dn,'objectclass=*',array('subschemaSubentry'),false,0,10,LDAP_DEREF_NEVER);
    +
    +		if (DEBUG_ENABLED)
    +			debug_log('Search returned (%s)',24,0,__FILE__,__LINE__,__METHOD__,is_resource($search));
    +
    +		# Fix for broken ldap.conf configuration.
    +		if (! $search && ! $dn) {
    +			if (DEBUG_ENABLED)
    +				debug_log('Trying to find the DN for "broken" ldap.conf',80,0,__FILE__,__LINE__,__METHOD__);
    +
    +			if (isset($this->_baseDN)) {
    +				foreach ($this->_baseDN as $base) {
    +					$search = @ldap_read($this->connect($method),$base,'objectclass=*',array('subschemaSubentry'),false,0,10,LDAP_DEREF_NEVER);
    +
    +					if (DEBUG_ENABLED)
    +						debug_log('Search returned (%s) for base (%s)',24,0,__FILE__,__LINE__,__METHOD__,
    +							is_resource($search),$base);
    +
    +					if ($search)
    +						break;
    +				}
    +			}
    +		}
    +
    +		if (! $search)
    +			return null;
    +
    +		if (! @ldap_count_entries($this->connect($method),$search)) {
    +			if (DEBUG_ENABLED)
    +				debug_log('Search returned 0 entries. Returning NULL',25,0,__FILE__,__LINE__,__METHOD__);
    +
    +			return null;
    +		}
    +
    +		$entries = @ldap_get_entries($this->connect($method),$search);
    +
    +		if (DEBUG_ENABLED)
    +			debug_log('Search returned [%s]',24,0,__FILE__,__LINE__,__METHOD__,$entries);
    +
    +		if (! $entries || ! is_array($entries))
    +			return null;
    +
    +		$entry = isset($entries[0]) ? $entries[0] : false;
    +		if (! $entry) {
    +			if (DEBUG_ENABLED)
    +				debug_log('Entry is false, Returning NULL',80,0,__FILE__,__LINE__,__METHOD__);
    +
    +			return null;
    +		}
    +
    +		$sub_schema_sub_entry = isset($entry[0]) ? $entry[0] : false;
    +		if (! $sub_schema_sub_entry) {
    +			if (DEBUG_ENABLED)
    +				debug_log('Sub Entry is false, Returning NULL',80,0,__FILE__,__LINE__,__METHOD__);
    +
    +			return null;
    +		}
    +
    +		$this->_schemaDN = isset($entry[$sub_schema_sub_entry][0]) ? $entry[$sub_schema_sub_entry][0] : false;
    +
    +		if (DEBUG_ENABLED)
    +			debug_log('Returning (%s)',25,0,__FILE__,__LINE__,__METHOD__,$this->_schemaDN);
    +
    +		return $this->_schemaDN;
    +	}
    +
    +	/**
    +	 * Fetches the raw schema array for the subschemaSubentry of the server. Note,
    +	 * this function has grown many hairs to accomodate more LDAP servers. It is
    +	 * needfully complicated as it now supports many popular LDAP servers that
    +	 * don't necessarily expose their schema "the right way".
    +	 *
    +	 * Please note: On FC systems, it seems that php_ldap uses /etc/openldap/ldap.conf in
    +	 * the search base if it is blank - so edit that file and comment out the BASE line.
    +	 *
    +	 * @param string Which connection method resource to use
    +	 * @param string A string indicating which type of schema to
    +	 *		fetch. Five valid values: 'objectclasses', 'attributetypes',
    +	 *		'ldapsyntaxes', 'matchingruleuse', or 'matchingrules'.
    +	 *		Case insensitive.
    +	 * @param dn (optional) This paremeter is the DN of the entry whose schema you
    +	 * 		would like to fetch. Entries have the option of specifying
    +	 * 		their own subschemaSubentry that points to the DN of the system
    +	 * 		schema entry which applies to this attribute. If unspecified,
    +	 *		this will try to retrieve the schema from the RootDSE subschemaSubentry.
    +	 *		Failing that, we use some commonly known schema DNs. Default
    +	 *		value is the Root DSE DN (zero-length string)
    +	 * @return array an array of strings of this form:
    +	 *	Array (
    +	 *		[0] => "(1.3.6.1.4.1.7165.1.2.2.4 NAME 'gidPool' DESC 'Pool ...
    +	 *		[1] => "(1.3.6.1.4.1.7165.2.2.3 NAME 'sambaAccount' DESC 'Sa ...
    +	 *	etc.
    +	 */
    +	private function getRawSchema($method,$schema_to_fetch,$dn='') {
    +		if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
    +			debug_log('Entered (%%)',25,0,__FILE__,__LINE__,__METHOD__,$fargs);
    +
    +		$valid_schema_to_fetch = array('objectclasses','attributetypes','ldapsyntaxes','matchingrules','matchingruleuse');
    +
    +		if (! $this->connect($method) || $this->noconnect)
    +			return false;
    +
    +		# error checking
    +		$schema_to_fetch = strtolower($schema_to_fetch);
    +
    +		if (! is_null($this->_schema_entries) && isset($this->_schema_entries[$schema_to_fetch])) {
    +			$schema = $this->_schema_entries[$schema_to_fetch];
    +
    +			if (DEBUG_ENABLED)
    +				debug_log('Returning CACHED (%s)',25,0,__FILE__,__LINE__,__METHOD__,$schema);
    +
    +			return $schema;
    +		}
    +
    +		# This error message is not localized as only developers should ever see it
    +		if (! in_array($schema_to_fetch,$valid_schema_to_fetch))
    +			error(sprintf('Bad parameter provided to function to %s::getRawSchema(). "%s" is not valid for the schema_to_fetch parameter.',
    +					get_class($this),$schema_to_fetch),'error','index.php');
    +
    +		# Try to get the schema DN from the specified entry.
    +		$schema_dn = $this->getSchemaDN($method,$dn);
    +
    +		# Do we need to try again with the Root DSE?
    +		if (! $schema_dn && trim($dn))
    +			$schema_dn = $this->getSchemaDN($method,'');
    +
    +		# Store the eventual schema retrieval in $schema_search
    +		$schema_search = null;
    +
    +		if ($schema_dn) {
    +			if (DEBUG_ENABLED)
    +				debug_log('Using Schema DN (%s)',24,0,__FILE__,__LINE__,__METHOD__,$schema_dn);
    +
    +			foreach (array('(objectClass=*)','(objectClass=subschema)') as $schema_filter) {
    +				if (DEBUG_ENABLED)
    +					debug_log('Looking for schema with Filter (%s)',24,0,__FILE__,__LINE__,__METHOD__,$schema_filter);
    +
    +				$schema_search = @ldap_read($this->connect($method),$schema_dn,$schema_filter,array($schema_to_fetch),false,0,10,LDAP_DEREF_NEVER);
    +
    +				if (is_null($schema_search))
    +					continue;
    +
    +				$schema_entries = @ldap_get_entries($this->connect($method),$schema_search);
    +
    +				if (DEBUG_ENABLED)
    +					debug_log('Search returned [%s]',24,0,__FILE__,__LINE__,__METHOD__,$schema_entries);
    +
    +				if (is_array($schema_entries) && isset($schema_entries['count']) && $schema_entries['count']) {
    +					if (DEBUG_ENABLED)
    +						debug_log('Found schema with (DN:%s) (FILTER:%s) (ATTR:%s)',24,0,__FILE__,__LINE__,__METHOD__,
    +							$schema_dn,$schema_filter,$schema_to_fetch);
    +
    +					break;
    +				}
    +
    +				if (DEBUG_ENABLED)
    +					debug_log('Didnt find schema with filter (%s)',24,0,__FILE__,__LINE__,__METHOD__,$schema_filter);
    +
    +				unset($schema_entries);
    +				$schema_search = null;
    +			}
    +		}
    +
    +		/* Second chance: If the DN or Root DSE didn't give us the subschemaSubentry, ie $schema_search
    +		 * is still null, use some common subSchemaSubentry DNs as a work-around. */
    +		if (is_null($schema_search)) {
    +			if (DEBUG_ENABLED)
    +				debug_log('Attempting work-arounds for "broken" LDAP servers...',24,0,__FILE__,__LINE__,__METHOD__);
    +
    +			foreach ($this->getBaseDN() as $base) {
    +				$ldap['W2K3 AD'][expand_dn_with_base($base,'cn=Aggregate,cn=Schema,cn=configuration,')] = '(objectClass=*)';
    +				$ldap['W2K AD'][expand_dn_with_base($base,'cn=Schema,cn=configuration,')] = '(objectClass=*)';
    +				$ldap['W2K AD'][expand_dn_with_base($base,'cn=Schema,ou=Admin,')] = '(objectClass=*)';
    +			}
    +
    +			# OpenLDAP and Novell
    +			$ldap['OpenLDAP']['cn=subschema'] = '(objectClass=*)';
    +
    +			foreach ($ldap as $ldap_server_name => $ldap_options) {
    +				foreach ($ldap_options as $ldap_dn => $ldap_filter) {
    +					if (DEBUG_ENABLED)
    +						debug_log('Attempting [%s] (%s) (%s)
    ',24,0,__FILE__,__LINE__,__METHOD__, + $ldap_server_name,$ldap_dn,$ldap_filter); + + $schema_search = @ldap_read($this->connect($method),$ldap_dn,$ldap_filter,array($schema_to_fetch),false,0,10,LDAP_DEREF_NEVER); + if (is_null($schema_search)) + continue; + + $schema_entries = @ldap_get_entries($this->connect($method),$schema_search); + + if (DEBUG_ENABLED) + debug_log('Search returned [%s]',24,0,__FILE__,__LINE__,__METHOD__,$schema_entries); + + if ($schema_entries && isset($schema_entries[0][$schema_to_fetch])) { + if (DEBUG_ENABLED) + debug_log('Found schema with filter of (%s)',24,0,__FILE__,__LINE__,__METHOD__,$ldap_filter); + + break; + } + + if (DEBUG_ENABLED) + debug_log('Didnt find schema with filter (%s)',24,0,__FILE__,__LINE__,__METHOD__,$ldap_filter); + + unset($schema_entries); + $schema_search = null; + } + if ($schema_search) + break; + } + } + + if (is_null($schema_search)) { + /* Still cant find the schema, try with the RootDSE + * Attempt to pull schema from Root DSE with scope "base", or + * Attempt to pull schema from Root DSE with scope "one" (work-around for Isode M-Vault X.500/LDAP) */ + foreach (array('base','one') as $ldap_scope) { + if (DEBUG_ENABLED) + debug_log('Attempting to find schema with scope (%s), filter (objectClass=*) and a blank base.',24,0,__FILE__,__LINE__,__METHOD__, + $ldap_scope); + + switch ($ldap_scope) { + case 'base': + $schema_search = @ldap_read($this->connect($method),'','(objectClass=*)',array($schema_to_fetch),false,0,10,LDAP_DEREF_NEVER); + break; + + case 'one': + $schema_search = @ldap_list($this->connect($method),'','(objectClass=*)',array($schema_to_fetch),false,0,10,LDAP_DEREF_NEVER); + break; + } + + if (is_null($schema_search)) + continue; + + $schema_entries = @ldap_get_entries($this->connect($method),$schema_search); + if (DEBUG_ENABLED) + debug_log('Search returned [%s]',24,0,__FILE__,__LINE__,__METHOD__,$schema_entries); + + if ($schema_entries && isset($schema_entries[0][$schema_to_fetch])) { + if (DEBUG_ENABLED) + debug_log('Found schema with filter of (%s)',24,0,__FILE__,__LINE__,__METHOD__,'(objectClass=*)'); + + break; + } + + if (DEBUG_ENABLED) + debug_log('Didnt find schema with filter (%s)',24,0,__FILE__,__LINE__,__METHOD__,'(objectClass=*)'); + + unset($schema_entries); + $schema_search = null; + } + } + + $schema_error_message = 'Please contact the phpLDAPadmin developers and let them know:
    • Which LDAP server you are running, including which version
    • What OS it is running on
    • Which version of PHP
    • As well as a link to some documentation that describes how to obtain the SCHEMA information

    We\'ll then add support for your LDAP server in an upcoming release.'; + $schema_error_message_array = array('objectclasses','attributetypes'); + + # Shall we just give up? + if (is_null($schema_search)) { + # We need to have objectclasses and attribues, so display an error, asking the user to get us this information. + if (in_array($schema_to_fetch,$schema_error_message_array)) + system_message(array( + 'title'=>sprintf('%s (%s)',('Our attempts to find your SCHEMA have failed'),$schema_to_fetch), + 'body'=>sprintf('%s: %s',('Error'),$schema_error_message), + 'type'=>'error')); + else + if (DEBUG_ENABLED) + debug_log('Returning because schema_search is NULL ()',25,0,__FILE__,__LINE__,__METHOD__); + + # We'll set this, so if we return here our cache will return the known false. + $this->_schema_entries[$schema_to_fetch] = false; + return false; + } + + if (! $schema_entries) { + $return = false; + if (DEBUG_ENABLED) + debug_log('Returning false since ldap_get_entries() returned false.',25,0,__FILE__,__LINE__,__METHOD__,$return); + + return $return; + } + + if(! isset($schema_entries[0][$schema_to_fetch])) { + if (in_array($schema_to_fetch,$schema_error_message_array)) { + error(sprintf('Our attempts to find your SCHEMA for "%s" has return UNEXPECTED results.

    (We expected a "%s" in the $schema array but it wasnt there.)

    %s

    Dump of $schema_search:
    %s
    ', + $schema_to_fetch,gettype($schema_search),$schema_error_message,serialize($schema_entries)),'error','index.php'); + + } else { + $return = false; + + if (DEBUG_ENABLED) + debug_log('Returning because (%s) isnt in the schema array. (%s)',25,0,__FILE__,__LINE__,__METHOD__,$schema_to_fetch,$return); + + return $return; + } + } + + /* Make a nice array of this form: + Array ( + [0] => "(1.3.6.1.4.1.7165.1.2.2.4 NAME 'gidPool' DESC 'Pool ...)" + [1] => "(1.3.6.1.4.1.7165.2.2.3 NAME 'sambaAccount' DESC 'Sa ...)" + etc.) */ + + $schema = $schema_entries[0][$schema_to_fetch]; + unset($schema['count']); + $this->_schema_entries[$schema_to_fetch] = $schema; + + if (DEBUG_ENABLED) + debug_log('Returning (%s)',25,0,__FILE__,__LINE__,__METHOD__,$schema); + + return $schema; + } + + /** + * Gets a single ObjectClass object specified by name. + * + * @param string $oclass_name The name of the objectClass to fetch. + * @param string $dn (optional) It is easier to fetch schema if a DN is provided + * which defines the subschemaSubEntry attribute (all entries should). + * + * @return ObjectClass The specified ObjectClass object or false on error. + * + * @see ObjectClass + * @see SchemaObjectClasses + */ + public function getSchemaObjectClass($oclass_name,$method=null,$dn='') { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',25,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $oclass_name = strtolower($oclass_name); + $socs = $this->SchemaObjectClasses($method,$dn); + + # Default return value + $return = false; + + if (isset($socs[$oclass_name])) + $return = $socs[$oclass_name]; + + if (DEBUG_ENABLED) + debug_log('Returning (%s)',25,0,__FILE__,__LINE__,__METHOD__,$return); + + return $return; + } + + /** + * Gets a single AttributeType object specified by name. + * + * @param string $oclass_name The name of the AttributeType to fetch. + * @param string $dn (optional) It is easier to fetch schema if a DN is provided + * which defines the subschemaSubEntry attribute (all entries should). + * + * @return AttributeType The specified AttributeType object or false on error. + * + * @see AttributeType + * @see SchemaAttributes + */ + public function getSchemaAttribute($attr_name,$method=null,$dn='') { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',25,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $attr_name = strtolower($attr_name); + $sattrs = $this->SchemaAttributes($method,$dn); + + # Default return value + $return = false; + + if (isset($sattrs[$attr_name])) + $return = $sattrs[$attr_name]; + + if (DEBUG_ENABLED) + debug_log('Returning (%s)',25,0,__FILE__,__LINE__,__METHOD__,$return); + + return $return; + } + + /** + * Gets an associative array of ObjectClass objects for the specified + * server. Each array entry's key is the name of the objectClass + * in lower-case and the value is an ObjectClass object. + * + * @param string $dn (optional) It is easier to fetch schema if a DN is provided + * which defines the subschemaSubEntry attribute (all entries should). + * + * @return array An array of ObjectClass objects. + * + * @see ObjectClass + * @see getSchemaObjectClass + */ + public function SchemaObjectClasses($method=null,$dn='') { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',25,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # Set default return + $return = null; + + if ($return = get_cached_item($this->index,'schema','objectclasses')) { + if (DEBUG_ENABLED) + debug_log('Returning CACHED [%s] (%s)',25,0,__FILE__,__LINE__,__METHOD__,$this->index,'objectclasses'); + + return $return; + } + + $raw = $this->getRawSchema($method,'objectclasses',$dn); + + if ($raw) { + # Build the array of objectClasses + $return = array(); + + foreach ($raw as $line) { + if (is_null($line) || ! strlen($line)) + continue; + + $object_class = new ObjectClass($line,$this); + $return[$object_class->getName()] = $object_class; + } + + # Now go through and reference the parent/child relationships + foreach ($return as $oclass) + foreach ($oclass->getSupClasses() as $parent_name) + if (isset($return[strtolower($parent_name)])) + $return[strtolower($parent_name)]->addChildObjectClass($oclass->getName(false)); + + ksort($return); + + # cache the schema to prevent multiple schema fetches from LDAP server + set_cached_item($this->index,'schema','objectclasses',$return); + } + + if (DEBUG_ENABLED) + debug_log('Returning (%s)',25,0,__FILE__,__LINE__,__METHOD__,$return); + + return $return; + } + + /** + * Gets an associative array of AttributeType objects for the specified + * server. Each array entry's key is the name of the attributeType + * in lower-case and the value is an AttributeType object. + * + * @param string $dn (optional) It is easier to fetch schema if a DN is provided + * which defines the subschemaSubEntry attribute (all entries should). + * + * @return array An array of AttributeType objects. + */ + public function SchemaAttributes($method=null,$dn='') { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',25,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # Set default return + $return = null; + + if ($return = get_cached_item($this->index,'schema','attributes')) { + if (DEBUG_ENABLED) + debug_log('(): Returning CACHED [%s] (%s)',25,0,__FILE__,__LINE__,__METHOD__,$this->index,'attributes'); + + return $return; + } + + $raw = $this->getRawSchema($method,'attributeTypes',$dn); + + if ($raw) { + # build the array of attribueTypes + $syntaxes = $this->SchemaSyntaxes($method,$dn); + $attrs = array(); + + /** + * bug 856832: create two arrays - one indexed by name (the standard + * $attrs array above) and one indexed by oid (the new $attrs_oid array + * below). This will help for directory servers, like IBM's, that use OIDs + * in their attribute definitions of SUP, etc + */ + $attrs_oid = array(); + foreach ($raw as $line) { + if (is_null($line) || ! strlen($line)) + continue; + + $attr = new AttributeType($line); + if (isset($syntaxes[$attr->getSyntaxOID()])) { + $syntax = $syntaxes[$attr->getSyntaxOID()]; + $attr->setType($syntax->getDescription()); + } + $attrs[$attr->getName()] = $attr; + + /** + * bug 856832: create an entry in the $attrs_oid array too. This + * will be a ref to the $attrs entry for maintenance and performance + * reasons + */ + $attrs_oid[$attr->getOID()] = &$attrs[$attr->getName()]; + } + + # go back and add data from aliased attributeTypes + foreach ($attrs as $name => $attr) { + $aliases = $attr->getAliases(); + + if (is_array($aliases) && count($aliases) > 0) { + /* foreach of the attribute's aliases, create a new entry in the attrs array + * with its name set to the alias name, and all other data copied.*/ + foreach ($aliases as $alias_attr_name) { + $new_attr = clone $attr; + + $new_attr->setName($alias_attr_name); + $new_attr->addAlias($attr->getName(false)); + $new_attr->removeAlias($alias_attr_name); + $new_attr_key = strtolower($alias_attr_name); + $attrs[$new_attr_key] = $new_attr; + } + } + } + + # go back and add any inherited descriptions from parent attributes (ie, cn inherits name) + foreach ($attrs as $key => $attr) { + $sup_attr_name = $attr->getSupAttribute(); + $sup_attr = null; + + if (trim($sup_attr_name)) { + + /* This loop really should traverse infinite levels of inheritance (SUP) for attributeTypes, + * but just in case we get carried away, stop at 100. This shouldn't happen, but for + * some weird reason, we have had someone report that it has happened. Oh well.*/ + $i = 0; + while ($i++<100 /** 100 == INFINITY ;) */) { + + if (isset($attrs_oid[$sup_attr_name])) { + $attr->setSupAttribute($attrs_oid[$sup_attr_name]->getName()); + $sup_attr_name = $attr->getSupAttribute(); + } + + if (! isset($attrs[strtolower($sup_attr_name)])){ + error(sprintf('Schema error: attributeType "%s" inherits from "%s", but attributeType "%s" does not exist.', + $attr->getName(),$sup_attr_name,$sup_attr_name),'error','index.php'); + return; + } + + $sup_attr = $attrs[strtolower($sup_attr_name)]; + $sup_attr_name = $sup_attr->getSupAttribute(); + + # Does this superior attributeType not have a superior attributeType? + if (is_null($sup_attr_name) || strlen(trim($sup_attr_name)) == 0) { + + /* Since this attribute's superior attribute does not have another superior + * attribute, clone its properties for this attribute. Then, replace + * those cloned values with those that can be explicitly set by the child + * attribute attr). Save those few properties which the child can set here:*/ + $tmp_name = $attr->getName(false); + $tmp_oid = $attr->getOID(); + $tmp_sup = $attr->getSupAttribute(); + $tmp_aliases = $attr->getAliases(); + $tmp_single_val = $attr->getIsSingleValue(); + $tmp_desc = $attr->getDescription(); + + /* clone the SUP attributeType and populate those values + * that were set by the child attributeType */ + $attr = clone $sup_attr; + + $attr->setOID($tmp_oid); + $attr->setName($tmp_name); + $attr->setSupAttribute($tmp_sup); + $attr->setAliases($tmp_aliases); + $attr->setDescription($tmp_desc); + + /* only overwrite the SINGLE-VALUE property if the child explicitly sets it + * (note: All LDAP attributes default to multi-value if not explicitly set SINGLE-VALUE) */ + if ($tmp_single_val) + $attr->setIsSingleValue(true); + + /* replace this attribute in the attrs array now that we have populated + new values therein */ + $attrs[$key] = $attr; + + # very important: break out after we are done with this attribute + $sup_attr_name = null; + $sup_attr = null; + break; + } + } + } + } + + ksort($attrs); + + # Add the used in and required_by values. + $socs = $this->SchemaObjectClasses($method); + if (! is_array($socs)) + return array(); + + foreach ($socs as $object_class) { + $must_attrs = $object_class->getMustAttrNames(); + $may_attrs = $object_class->getMayAttrNames(); + $oclass_attrs = array_unique(array_merge($must_attrs,$may_attrs)); + + # Add Used In. + foreach ($oclass_attrs as $attr_name) + if (isset($attrs[strtolower($attr_name)])) + $attrs[strtolower($attr_name)]->addUsedInObjectClass($object_class->getName(false)); + + # Add Required By. + foreach ($must_attrs as $attr_name) + if (isset($attrs[strtolower($attr_name)])) + $attrs[strtolower($attr_name)]->addRequiredByObjectClass($object_class->getName(false)); + + # Force May + foreach ($object_class->getForceMayAttrs() as $attr_name) + if (isset($attrs[strtolower($attr_name->name)])) + $attrs[strtolower($attr_name->name)]->setForceMay(); + } + + $return = $attrs; + + # cache the schema to prevent multiple schema fetches from LDAP server + set_cached_item($this->index,'schema','attributes',$return); + } + + if (DEBUG_ENABLED) + debug_log('Returning (%s)',25,0,__FILE__,__LINE__,__METHOD__,$return); + + return $return; + } + + /** + * Returns an array of MatchingRule objects for the specified server. + * The key of each entry is the OID of the matching rule. + */ + public function MatchingRules($method=null,$dn='') { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',25,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # Set default return + $return = null; + + if ($return = get_cached_item($this->index,'schema','matchingrules')) { + if (DEBUG_ENABLED) + debug_log('Returning CACHED [%s] (%s).',25,0,__FILE__,__LINE__,__METHOD__,$this->index,'matchingrules'); + + return $return; + } + + # build the array of MatchingRule objects + $raw = $this->getRawSchema($method,'matchingRules',$dn); + + if ($raw) { + $rules = array(); + + foreach ($raw as $line) { + if (is_null($line) || ! strlen($line)) + continue; + + $rule = new MatchingRule($line); + $key = $rule->getName(); + $rules[$key] = $rule; + } + + ksort($rules); + + /* For each MatchingRuleUse entry, add the attributes who use it to the + * MatchingRule in the $rules array.*/ + $raw = $this->getRawSchema($method,'matchingRuleUse'); + + if ($raw != false) { + foreach ($raw as $line) { + if (is_null($line) || ! strlen($line)) + continue; + + $rule_use = new MatchingRuleUse($line); + $key = $rule_use->getName(); + + if (isset($rules[$key])) + $rules[$key]->setUsedByAttrs($rule_use->getUsedByAttrs()); + } + + } else { + /* No MatchingRuleUse entry in the subschema, so brute-forcing + * the reverse-map for the "$rule->getUsedByAttrs()" data.*/ + $sattrs = $this->SchemaAttributes($method,$dn); + if (is_array($sattrs)) + foreach ($sattrs as $attr) { + $rule_key = strtolower($attr->getEquality()); + + if (isset($rules[$rule_key])) + $rules[$rule_key]->addUsedByAttr($attr->getName(false)); + } + } + + $return = $rules; + + # cache the schema to prevent multiple schema fetches from LDAP server + set_cached_item($this->index,'schema','matchingrules',$return); + } + + if (DEBUG_ENABLED) + debug_log('Returning (%s)',25,0,__FILE__,__LINE__,__METHOD__,$return); + + return $return; + } + + /** + * Returns an array of Syntax objects that this LDAP server uses mapped to + * their descriptions. The key of each entry is the OID of the Syntax. + */ + public function SchemaSyntaxes($method=null,$dn='') { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',25,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # Set default return + $return = null; + + if ($return = get_cached_item($this->index,'schema','syntaxes')) { + if (DEBUG_ENABLED) + debug_log('Returning CACHED [%s] (%s).',25,0,__FILE__,__LINE__,__METHOD__,$this->index,'syntaxes'); + + return $return; + } + + $raw = $this->getRawSchema($method,'ldapSyntaxes',$dn); + + if ($raw) { + # build the array of attributes + $return = array(); + + foreach ($raw as $line) { + if (is_null($line) || ! strlen($line)) + continue; + + $syntax = new Syntax($line); + $key = strtolower(trim($syntax->getOID())); + + if (! $key) + continue; + + $return[$key] = $syntax; + } + + ksort($return); + + # cache the schema to prevent multiple schema fetches from LDAP server + set_cached_item($this->index,'schema','syntaxes',$return); + } + + if (DEBUG_ENABLED) + debug_log('Returning (%s)',25,0,__FILE__,__LINE__,__METHOD__,$return); + + return $return; + } + + /** + * This function determines if the specified attribute is contained in the force_may list + * as configured in config.php. + * + * @return boolean True if the specified attribute is in the $force_may list and false + * otherwise. + */ + function isForceMay($attr_name) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return in_array($attr_name,$this->force_may); + } + + /** + * Much like getDNAttrValues(), but only returns the values for + * one attribute of an object. Example calls: + * + * + * print_r(getDNAttrValue('cn=Bob,ou=people,dc=example,dc=com','sn')); + * Array ( + * [0] => Smith + * ) + * + * print_r(getDNAttrValue('cn=Bob,ou=people,dc=example,dc=com','objectClass')); + * Array ( + * [0] => top + * [1] => person + * ) + * + * + * @param string The distinguished name (DN) of the entry whose attributes/values to fetch. + * @param string The attribute whose value(s) to return (ie, "objectClass", "cn", "userPassword") + * @param string Which connection method resource to use + * @param constant For aliases and referrals, this parameter specifies whether to + * follow references to the referenced DN or to fetch the attributes for + * the referencing DN. See http://php.net/ldap_search for the 4 valid + * options. + * @return array + * @see getDNAttrValues + * @todo Caching these values may be problematic with multiple calls and different deref values. + */ + public function getDNAttrValue($dn,$attr,$method=null,$deref=LDAP_DEREF_NEVER) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # Ensure our attr is in lowercase + $attr = strtolower($attr); + + $values = $this->getDNAttrValues($dn,$method,$deref); + + if (isset($values[$attr])) + return $values[$attr]; + else + return array(); + } + + /** + * Gets the attributes/values of an entry. Returns an associative array whose + * keys are attribute value names and whose values are arrays of values for + * said attribute. + * + * Optionally, callers may specify true for the parameter + * $lower_case_attr_names to force all keys in the associate array (attribute + * names) to be lower case. + * + * Example of its usage: + * + * print_r(getDNAttrValues('cn=Bob,ou=pepole,dc=example,dc=com') + * Array ( + * [objectClass] => Array ( + * [0] => person + * [1] => top + * ) + * [cn] => Array ( + * [0] => Bob + * ) + * [sn] => Array ( + * [0] => Jones + * ) + * [dn] => Array ( + * [0] => cn=Bob,ou=pepole,dc=example,dc=com + * ) + * ) + * + * + * @param string The distinguished name (DN) of the entry whose attributes/values to fetch. + * @param string Which connection method resource to use + * @param constant For aliases and referrals, this parameter specifies whether to + * follow references to the referenced DN or to fetch the attributes for + * the referencing DN. See http://php.net/ldap_search for the 4 valid + * options. + * @return array + * @see getDNSysAttrs + * @see getDNAttrValue + */ + public function getDNAttrValues($dn,$method=null,$deref=LDAP_DEREF_NEVER,$attrs=array('*','+')) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + static $CACHE; + + $cacheindex = null; + $method = $this->getMethod($method); + + if (in_array('*',$attrs) && in_array('+',$attrs)) + $cacheindex = '&'; + elseif (in_array('+',$attrs)) + $cacheindex = '+'; + elseif (in_array('*',$attrs)) + $cacheindex = '*'; + + if (! is_null($cacheindex) && isset($CACHE[$this->index][$method][$dn][$cacheindex])) { + $results = $CACHE[$this->index][$method][$dn][$cacheindex]; + + if (DEBUG_ENABLED) + debug_log('Returning (%s)',17,0,__FILE__,__LINE__,__METHOD__,$results); + + } else { + $query = array(); + $query['base'] = $this->escapeDN($dn); + $query['scope'] = 'base'; + $query['deref'] = $deref; + $query['attrs'] = $attrs; + $query['baseok'] = true; + $results = $this->query($query,$method); + + if (count($results)) + $results = array_pop($results); + + $results = array_change_key_case($results); + + # Covert all our result key values to an array + foreach ($results as $key => $values) + if (! is_array($results[$key])) + $results[$key] = array($results[$key]); + + # Finally sort the results + ksort($results); + + if (! is_null($cacheindex) && count($results)) + $CACHE[$this->index][$method][$dn][$cacheindex] = $results; + } + + return $results; + } + + /** + * Returns true if the attribute specified is required to take as input a DN. + * Some examples include 'distinguishedName', 'member' and 'uniqueMember'. + * + * @param string $attr_name The name of the attribute of interest (case insensitive) + * @return boolean + */ + function isDNAttr($attr_name,$method=null) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # Simple test first + $dn_attrs = array('aliasedObjectName'); + foreach ($dn_attrs as $dn_attr) + if (strcasecmp($attr_name,$dn_attr) == 0) + return true; + + # Now look at the schema OID + $sattr = $this->getSchemaAttribute($attr_name); + if (! $sattr) + return false; + + $syntax_oid = $sattr->getSyntaxOID(); + if ('1.3.6.1.4.1.1466.115.121.1.12' == $syntax_oid) + return true; + if ('1.3.6.1.4.1.1466.115.121.1.34' == $syntax_oid) + return true; + + $syntaxes = $this->SchemaSyntaxes($method); + if (! isset($syntaxes[$syntax_oid])) + return false; + + $syntax_desc = $syntaxes[ $syntax_oid ]->getDescription(); + if (strpos(strtolower($syntax_desc),'distinguished name')) + return true; + + return false; + } + + /** + * Used to determine if the specified attribute is indeed a jpegPhoto. If the + * specified attribute is one that houses jpeg data, true is returned. Otherwise + * this function returns false. + * + * @param string $attr_name The name of the attribute to test. + * @return boolean + * @see draw_jpeg_photo + */ + function isJpegPhoto($attr_name) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # easy quick check + if (! strcasecmp($attr_name,'jpegPhoto') || ! strcasecmp($attr_name,'photo')) + return true; + + # go to the schema and get the Syntax OID + $sattr = $this->getSchemaAttribute($attr_name); + if (! $sattr) + return false; + + $oid = $sattr->getSyntaxOID(); + $type = $sattr->getType(); + + if (! strcasecmp($type,'JPEG') || ($oid == '1.3.6.1.4.1.1466.115.121.1.28')) + return true; + + return false; + } + + /** + * Given an attribute name and server ID number, this function returns + * whether the attrbiute contains boolean data. This is useful for + * developers who wish to display the contents of a boolean attribute + * with a drop-down. + * + * @param string $attr_name The name of the attribute to test. + * @return boolean + */ + function isAttrBoolean($attr_name) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $type = ($sattr = $this->getSchemaAttribute($attr_name)) ? $sattr->getType() : null; + + if (! strcasecmp('boolean',$type) || + ! strcasecmp('isCriticalSystemObject',$attr_name) || + ! strcasecmp('showInAdvancedViewOnly',$attr_name)) + return true; + + else + return false; + } + + /** + * Given an attribute name and server ID number, this function returns + * whether the attribute may contain binary data. This is useful for + * developers who wish to display the contents of an arbitrary attribute + * but don't want to dump binary data on the page. + * + * @param string $attr_name The name of the attribute to test. + * @return boolean + * + * @see isJpegPhoto + */ + function isAttrBinary($attr_name) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + /** + * Determining if an attribute is binary can be an expensive operation. + * We cache the results for each attr name on each server in the $attr_cache + * to speed up subsequent calls. The $attr_cache looks like this: + * + * Array + * 0 => Array + * 'objectclass' => false + * 'cn' => false + * 'usercertificate' => true + * 1 => Array + * 'jpegphoto' => true + * 'cn' => false + */ + + static $attr_cache; + + $attr_name = strtolower($attr_name); + + if (isset($attr_cache[$this->index][$attr_name])) + return $attr_cache[$this->index][$attr_name]; + + if ($attr_name == 'userpassword') { + $attr_cache[$this->index][$attr_name] = false; + return false; + } + + # Quick check: If the attr name ends in ";binary", then it's binary. + if (strcasecmp(substr($attr_name,strlen($attr_name) - 7),';binary') == 0) { + $attr_cache[$this->index][$attr_name] = true; + return true; + } + + # See what the server schema says about this attribute + $sattr = $this->getSchemaAttribute($attr_name); + if (! is_object($sattr)) { + + /* Strangely, some attributeTypes may not show up in the server + * schema. This behavior has been observed in MS Active Directory.*/ + $type = null; + $syntax = null; + + } else { + $type = $sattr->getType(); + $syntax = $sattr->getSyntaxOID(); + } + + if (strcasecmp($type,'Certificate') == 0 || + strcasecmp($type,'Binary') == 0 || + strcasecmp($attr_name,'usercertificate') == 0 || + strcasecmp($attr_name,'usersmimecertificate') == 0 || + strcasecmp($attr_name,'networkaddress') == 0 || + strcasecmp($attr_name,'objectGUID') == 0 || + strcasecmp($attr_name,'objectSID') == 0 || + strcasecmp($attr_name,'auditingPolicy') == 0 || + strcasecmp($attr_name,'jpegPhoto') == 0 || + strcasecmp($attr_name,'krbExtraData') == 0 || + strcasecmp($attr_name,'krbPrincipalKey') == 0 || + $syntax == '1.3.6.1.4.1.1466.115.121.1.10' || + $syntax == '1.3.6.1.4.1.1466.115.121.1.28' || + $syntax == '1.3.6.1.4.1.1466.115.121.1.5' || + $syntax == '1.3.6.1.4.1.1466.115.121.1.8' || + $syntax == '1.3.6.1.4.1.1466.115.121.1.9' + ) { + + $attr_cache[$this->index][$attr_name] = true; + return true; + + } else { + $attr_cache[$this->index][$attr_name] = false; + return false; + } + } + + /** + * This function will test if a user is a member of a group. + * + * Inputs: + * @param string $user membership value that is being checked + * @param dn $group DN to see if user is a member + * @return bool true|false + */ + function userIsMember($user,$group) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $user = strtolower($user); + $group = $this->getDNAttrValues($group); + + # If you are using groupOfNames objectClass + if (array_key_exists('member',$group) && ! is_array($group['member'])) + $group['member'] = array($group['member']); + + if (array_key_exists('member',$group) && + in_array($user,arrayLower($group['member']))) + + return true; + + # If you are using groupOfUniqueNames objectClass + if (array_key_exists('uniquemember',$group) && ! is_array($group['uniquemember'])) + $group['uniquemember'] = array($group['uniquemember']); + + if (array_key_exists('uniquemember',$group) && + in_array($user,arrayLower($group['uniquemember']))) + + return true; + + return false; + } + + /** + * This function will determine if the user is allowed to login based on a filter + */ + protected function userIsAllowedLogin($dn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $dn = trim(strtolower($dn)); + + if (! $this->getValue('login','allowed_dns')) + return true; + + foreach ($this->getValue('login','allowed_dns') as $login_allowed_dn) { + if (DEBUG_ENABLED) + debug_log('Working through (%s)',80,0,__FILE__,__LINE__,__METHOD__,$login_allowed_dn); + + /* Check if $login_allowed_dn is an ldap search filter + * Is first occurence of 'filter=' (case ensitive) at position 0 ? */ + if (preg_match('/^\([&|]\(/',$login_allowed_dn)) { + $query = array(); + $query['filter'] = $login_allowed_dn; + $query['attrs'] = array('dn'); + + foreach($this->getBaseDN() as $base_dn) { + $query['base'] = $base_dn; + + $results = $this->query($query,null); + + if (DEBUG_ENABLED) + debug_log('Search, Filter [%s], BaseDN [%s] Results [%s]',16,0,__FILE__,__LINE__,__METHOD__, + $query['filter'],$query['base'],$results); + + if ($results) { + $dn_array = array(); + + foreach ($results as $result) + array_push($dn_array,$result['dn']); + + $dn_array = array_unique($dn_array); + + if (count($dn_array)) + foreach ($dn_array as $result_dn) { + if (DEBUG_ENABLED) + debug_log('Comparing with [%s]',80,0,__FILE__,__LINE__,__METHOD__,$result_dn); + + # Check if $result_dn is a user DN + if (strcasecmp($dn,trim(strtolower($result_dn))) == 0) + return true; + + # Check if $result_dn is a group DN + if ($this->userIsMember($dn,$result_dn)) + return true; + } + } + } + } + + # Check if $login_allowed_dn is a user DN + if (strcasecmp($dn,trim(strtolower($login_allowed_dn))) == 0) + return true; + + # Check if $login_allowed_dn is a group DN + if ($this->userIsMember($dn,$login_allowed_dn)) + return true; + } + + return false; + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/emuhash_functions.php b/lam/templates/3rdParty/pla/lib/emuhash_functions.php new file mode 100644 index 00000000..7818f7fb --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/emuhash_functions.php @@ -0,0 +1,112 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ******************************************************************************/ + +/******************************************************************************/ +/* Do we have builtin mhash support in this PHP version ? */ +/******************************************************************************/ + +if (! function_exists('mhash') && ! function_exists('mhash_keygen_s2k')) { + $emuhash_emu = array(); + + if (! isset($emuhash_emu['openssl'])) + $emuhash_emu['openssl'] = '/usr/bin/openssl'; + + # Don't create mhash functions if we don't have a working openssl + if (! file_exists($emuhash_emu['openssl'])) + unset($emuhash_emu['openssl']); + + elseif (function_exists('is_executable') && ! is_executable($emuhash_emu['openssl'])) + unset($emuhash_emu['openssl']); + + else { + if (! isset($emuhash_emu['tmpdir'])) + $emuhash_emu['tmpdir'] = '/tmp'; + +/******************************************************************************/ +/* Define constants used in the mhash emulation code. */ +/******************************************************************************/ + + define('MHASH_MD5','md5'); + define('MHASH_SHA1','sha1'); + define('MHASH_RIPEMD160','rmd160'); + +/******************************************************************************/ +/* Functions to emulate parts of php-mash. */ +/******************************************************************************/ + + function openssl_hash($openssl_hash_id,$password_clear) { + global $emuhash_emu; + + if (PHP_VERSION < 6) { + $current_magic_quotes = @get_magic_quotes_runtime(); + @set_magic_quotes_runtime(0); + } + + $tmpfile = tempnam($emuhash_emu['tmpdir'],'emuhash'); + $pwhandle = fopen($tmpfile,'w'); + + if (! $pwhandle) + error(sprintf('Unable to create a temporary file %s to create hashed password',$tmpfile) ,'error','index.php'); + + fwrite($pwhandle,$password_clear); + fclose($pwhandle); + $cmd = sprintf('%s %s -binary <%s',$emuhash_emu['openssl'],$openssl_hash_id,$tmpfile); + $prog = popen($cmd,'r'); + $pass = fread($prog,1024); + pclose($prog); + unlink($tmpfile); + + if (PHP_VERSION < 6) + @set_magic_quotes_runtime($current_magic_quotes); + + return $pass; + } + + function mhash($hash_id,$password_clear) { + switch($hash_id) { + case MHASH_MD5: + $emuhash = openssl_hash(MHASH_MD5,$password_clear); + break; + + case MHASH_SHA1: + $emuhash = openssl_hash(MHASH_SHA1,$password_clear); + break; + + case MHASH_RIPEMD160: + $emuhash = openssl_hash(MHASH_RIPEMD160,$password_clear); + break; + + default: + $emuhash = FALSE; + } + + return $emuhash; + } + + function mhash_keygen_s2k($hash_id,$password_clear,$salt,$bytes) { + return substr(pack('H*',bin2hex(mhash($hash_id,($salt.$password_clear)))),0,$bytes); + } + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/export_functions.php b/lam/templates/3rdParty/pla/lib/export_functions.php new file mode 100644 index 00000000..cb576047 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/export_functions.php @@ -0,0 +1,635 @@ +server_id = $server_id; + $this->template_id = $template_id; + + $this->accept(); + } + + static function types() { + $type = array(); + + $details = ExportCSV::getType(); + $type[$details['type']] = $details; + $details = ExportDSML::getType(); + $type[$details['type']] = $details; + $details = ExportLDIF::getType(); + $type[$details['type']] = $details; + $details = ExportVCARD::getType(); + $type[$details['type']] = $details; + + return $type; + } + + private function accept() { + switch($this->template_id) { + case 'CSV': + $this->template = new ExportCSV(); + break; + + case 'DSML': + $this->template = new ExportDSML(); + break; + + case 'LDIF': + $this->template = new ExportLDIF(); + break; + + case 'VCARD': + $this->template = new ExportVCARD(); + break; + + default: + die(); + } + + $this->template->accept(); + } + + public function getTemplate() { + return $this->template; + } +} + +/** + * Export Class + * + * This abstract classes provides all the common methods and variables for the + * custom export classes. + * + * @package phpLDAPadmin + * @subpackage Export + */ +abstract class Export { + # Line Break + protected $br; + # Compress the output + protected $compress; + # Export Results + protected $results; + protected $resultsdata; + protected $items = 0; + + /** + * Return this LDAP Server object + * + * @return object DataStore Server + */ + protected function getServer() { + return $_SESSION[APPCONFIG]->getServer($this->getServerID()); + } + + /** + * Return the LDAP server ID + * + * @return int Server ID + */ + protected function getServerID() { + return get_request('server_id','REQUEST'); + } + + public function accept() { + $server = $this->getServer(); + + # Get the data to be exported + $query = array(); + $base = get_request('dn','REQUEST'); + $query['baseok'] = true; + $query['filter'] = get_request('filter','REQUEST',false,'objectclass=*'); + $query['scope'] = get_request('scope','REQUEST',false,'base'); + $query['deref'] = $_SESSION[APPCONFIG]->getValue('deref','export'); + $query['size_limit'] = 0; + $attrs = get_request('attributes','REQUEST'); + + $attrs = preg_replace('/\s+/','',$attrs); + if ($attrs) + $query['attrs'] = explode(',',$attrs); + else + $query['attrs'] = array('*'); + + if (get_request('sys_attr')) { + if (! in_array('*',$query['attrs'])) + array_push($query['attrs'],'*'); + array_push($query['attrs'],'+'); + } + + if (! $base) + $bases = $server->getBaseDN(); + else + $bases = array($base); + + foreach ($bases as $base) { + $query['base'] = $base; + + $time_start = utime(); + $this->results[$base] = $server->query($query,null); + $time_end = utime(); + + usort($this->results[$base],'pla_compare_dns'); + $this->resultsdata[$base]['time'] = round($time_end-$time_start,2); + + # If no result, there is a something wrong + if (! $this->results[$base] && $server->getErrorNum(null)) + system_message(array( + 'title'=>_('Encountered an error while performing search.'), + 'body'=>ldap_error_msg($server->getErrorMessage(null),$server->getErrorNum(null)), + 'type'=>'error')); + + $this->items += count($this->results[$base]); + } + + $this->resultsdata['scope'] = $query['scope']; + $this->resultsdata['filter'] = $query['filter']; + $this->resultsdata['attrs'] = $query['attrs']; + + # Other settings + switch (get_request('format','POST',false,'unix')) { + case 'win': + $this->br = "\r\n"; + break; + + case 'mac': + $this->br = "\r"; + break; + + case 'unix': + default: + $this->br = "\n"; + } + + if (get_request('compress','REQUEST') == 'on') + $this->compress = true; + } + + public function isCompressed() { + return $this->compress; + } + + protected function getHeader() { + $server = $this->getServer(); + $type = $this->getType(); + + $output = ''; + + $output .= sprintf('# %s: %s%s',_('Search scope'),$this->resultsdata['scope'],$this->br); + $output .= sprintf('# %s: %s%s',_('Search filter'),$this->resultsdata['filter'],$this->br); + $output .= sprintf('# %s: %s%s',_('Total entries'),$this->items,$this->br); + $output .= sprintf('#%s',$this->br); + $output .= sprintf('# Generated by %s (%s) on %s%s',app_name(),get_href('web'),date('F j, Y g:i a'),$this->br); + $output .= sprintf('# Version: %s%s',app_version(),$this->br); + + $output .= $this->br; + + return $output; + } + + /** + * Helper method to check if the attribute value should be base 64 encoded. + * + * @param The string to check. + * @return boolean true if the string is safe ascii, false otherwise. + */ + protected function isSafeAscii($str) { + for ($i=0;$i 127) + return false; + + return true; + } +} + +/** + * Export entries to CSV + * + * @package phpLDAPadmin + * @subpackage Export + */ +class ExportCSV extends Export { + private $separator = ','; + private $qualifier = '"'; + private $multivalue_separator = ' | '; + private $escapeCode = '"'; + + static public function getType() { + return array('type'=>'CSV','description' => 'CSV (Spreadsheet)','extension'=>'csv'); + } + + function export() { + $server = $this->getServer(); + + /* Go thru and find all the attribute names first. This is needed, because, otherwise we have + * no idea as to which search attributes were actually populated with data */ + $headers = array('dn'); + $entries = array(); + foreach ($this->results as $base => $results) { + foreach ($results as $dndetails) { + array_push($entries,$dndetails); + + unset($dndetails['dn']); + foreach (array_keys($dndetails) as $key) + if (! in_array($key,$headers)) + array_push($headers,$key); + + } + } + + $output = ''; + $num_headers = count($headers); + + # Print out the headers + for ($i=0; $i<$num_headers; $i++) { + $output .= sprintf('%s%s%s',$this->qualifier,$headers[$i],$this->qualifier); + + if ($i < $num_headers-1) + $output .= $this->separator; + } + + # Drop out our DN header. + array_shift($headers); + $num_headers--; + + $output .= $this->br; + + # Loop on every entry + foreach ($entries as $index => $entry) { + $dn = $entry['dn']; + unset($entry['dn']); + $output .= sprintf('%s%s%s%s',$this->qualifier,$this->LdapEscape($dn),$this->qualifier,$this->separator); + + # Print the attributes + for ($j=0; $j<$num_headers; $j++) { + $attr = $headers[$j]; + $output .= $this->qualifier; + + if (array_key_exists($attr,$entry)) { + $binary_attribute = $server->isAttrBinary($attr) ? 1 : 0; + + if (! is_array($entry[$attr])) + $attr_values = array($entry[$attr]); + else + $attr_values = $entry[$attr]; + + $num_attr_values = count($attr_values); + + for ($i=0; $i<$num_attr_values; $i++) { + if ($binary_attribute) + $output .= base64_encode($attr_values[$i]); + else + $output .= $this->LdapEscape($attr_values[$i]); + + if ($i < $num_attr_values-1) + $output .= $this->multivalue_separator; + } + } + + $output .= $this->qualifier; + + if ($j < $num_headers-1) + $output .= $this->separator; + } + + $output .= $this->br; + } + + if ($this->compress) + return gzencode($output); + else + return $output; + } + + /** + * Function to escape data, where the qualifier happens to also + * be in the data. + */ + private function LdapEscape ($var) { + return str_replace($this->qualifier,$this->escapeCode.$this->qualifier,$var); + } +} + +/** + * Export entries to DSML v.1 + * + * @package phpLDAPadmin + * @subpackage Export + */ +class ExportDSML extends Export { + static public function getType() { + return array('type'=>'DSML','description' => _('DSML V.1 Export'),'extension'=>'xml'); + } + + /** + * Export entries to DSML format + */ + function export() { + $server = $this->getServer(); + + # Not very elegant, but do the job for the moment as we have just 4 level + $indent = array(); + $indent['dir'] = ' '; + $indent['ent'] = ' '; + $indent['att'] = ' '; + $indent['val'] = ' '; + + # Print declaration + $output = sprintf('%s',$this->br); + + # Print root element + $output .= sprintf('%s',$this->br); + + # Print info related to this export + $output .= sprintf('%s',$this->br); + $output .= $this->br; + + $output .= sprintf('%s%s',$indent['dir'],$this->br); + + # Sift through the entries. + $counter = 0; + foreach ($this->results as $base => $results) { + foreach ($results as $dndetails) { + $counter++; + + $dn = $dndetails['dn']; + unset($dndetails['dn']); + ksort($dndetails); + + # Display DN + $output .= sprintf('%s%s',$indent['ent'],htmlspecialchars($dn),$this->br); + + # Display the objectClass attributes first + if (isset($dndetails['objectClass'])) { + if (! is_array($dndetails['objectClass'])) + $dndetails['objectClass'] = array($dndetails['objectClass']); + + $output .= sprintf('%s%s',$indent['att'],$this->br); + + foreach ($dndetails['objectClass'] as $ocValue) + $output .= sprintf('%s%s%s',$indent['val'],$ocValue,$this->br); + + $output .= sprintf('%s%s',$indent['att'],$this->br); + unset($dndetails['objectClass']); + } + + # Display the attributes + foreach ($dndetails as $key => $attr) { + if (! is_array($attr)) + $attr = array($attr); + + $output .= sprintf('%s%s',$indent['att'],$key,$this->br); + + # If the attribute is binary, set the flag $binary_mode to true + $binary_mode = $server->isAttrBinary($key) ? 1 : 0; + + foreach ($attr as $value) + $output .= sprintf('%s%s%s', + $indent['val'],($binary_mode ? base64_encode($value) : htmlspecialchars($value)),$this->br); + + $output .= sprintf('%s%s',$indent['att'],$this->br); + } + + $output .= sprintf('%s%s',$indent['ent'],$this->br); + } + } + + $output .= sprintf('%s%s',$indent['dir'],$this->br); + $output .= sprintf('%s',$this->br); + + if ($this->compress) + return gzencode($output); + else + return $output; + } +} + +/** + * Export from LDAP using an LDIF format + * + * @package phpLDAPadmin + * @subpackage Export + */ +class ExportLDIF extends Export { + # The maximum length of the ldif line + private $line_length = 76; + + static public function getType() { + return array('type'=>'LDIF','description' => _('LDIF Export'),'extension'=>'ldif'); + } + + /** + * Export entries to LDIF format + */ + public function export() { + if (! $this->results) { + echo _('Nothing to export'); + return; + } + + $server = $this->getServer(); + + $output = $this->getHeader(); + + # Add our version. + $output .= 'version: 1'; + $output .= $this->br; + $output .= $this->br; + + # Sift through the entries. + $counter = 0; + foreach ($this->results as $base => $results) { + foreach ($results as $dndetails) { + $counter++; + + $dn = $dndetails['dn']; + unset($dndetails['dn']); + ksort($dndetails); + + $title_string = sprintf('# %s %s: %s%s',_('Entry'),$counter,$dn,$this->br); + + if (strlen($title_string) > $this->line_length-3) + $title_string = substr($title_string,0,$this->line_length-3).'...'.$this->br; + + $output .= $title_string; + + # Display dn + if ($this->isSafeAscii($dn)) + $output .= $this->multiLineDisplay(sprintf('dn: %s',$dn)); + else + $output .= $this->multiLineDisplay(sprintf('dn:: %s',base64_encode($dn))); + + # display the attributes + foreach ($dndetails as $key => $attr) { + if (! is_array($attr)) + $attr = array($attr); + + foreach ($attr as $value) + if (! $this->isSafeAscii($value) || $server->isAttrBinary($key)) + $output .= $this->multiLineDisplay(sprintf('%s:: %s',$key,base64_encode($value))); + else + $output .= $this->multiLineDisplay(sprintf('%s: %s',$key,$value)); + } + + $output .= $this->br; + } + } + + if ($this->compress) + return gzencode($output); + else + return $output; + } + + /** + * Helper method to wrap ldif lines + * + * @param The line to be wrapped if needed. + */ + private function multiLineDisplay($str) { + $length_string = strlen($str); + $length_max = $this->line_length; + + $output = ''; + while ($length_string > $length_max) { + $output .= substr($str,0,$length_max).$this->br.' '; + $str = substr($str,$length_max,$length_string); + $length_string = strlen($str); + + /* Need to do minus one to align on the right + * the first line with the possible following lines + * as these will have an extra space. */ + $length_max = $this->line_length-1; + } + + $output .= $str.$this->br; + + return $output; + } +} + +/** + * Export entries to VCARD v2.1 + * + * @package phpLDAPadmin + * @subpackage Export + */ +class ExportVCARD extends Export { + static public function getType() { + return array('type'=>'VCARD','description' => _('VCARD 2.1 Export'),'extension'=>'vcf'); + } + + # Mappping one to one attribute + private $mapping = array( + 'cn' => 'FN', + 'title' => 'TITLE', + 'homephone' => 'TEL;HOME', + 'mobile' => 'TEL;CELL', + 'mail' => 'EMAIL;Internet', + 'labeleduri' =>'URL', + 'o' => 'ORG', + 'audio' => 'SOUND', + 'facsmiletelephoneNumber' =>'TEL;WORK;HOME;VOICE;FAX', + 'jpegphoto' => 'PHOTO;ENCODING=BASE64', + 'businesscategory' => 'ROLE', + 'description' => 'NOTE' + ); + + private $deliveryAddress = array( + 'postofficebox', + 'street', + 'l', + 'st', + 'postalcode', + 'c'); + + /** + * Export entries to VCARD format + */ + function export() { + $server = $this->getServer(); + + # Sift through the entries. + foreach ($this->results as $base => $results) { + foreach ($results as $dndetails) { + $dndetails = array_change_key_case($dndetails); + + # Check the attributes needed for the delivery address field + $addr = 'ADR:'; + foreach ($this->deliveryAddress as $attr) { + if (isset($dndetails[$attr])) { + $addr .= $dndetails[$attr]; + unset($dndetails[$attr]); + } + $addr .= ';'; + } + + $output = sprintf('BEGIN:VCARD%s',$this->br); + + # Loop for the attributes + foreach ($dndetails as $key => $attr) { + if (! is_array($attr)) + $attr = array($attr); + + # If an attribute of the ldap entry exist in the mapping array for vcard + if (isset($this->mapping[$key])) { + + # Case of organisation. Need to append the possible ou attribute + if ($key == 'o') { + $output .= sprintf('%s:%s',$this->mapping[$key],$attr[0]); + + if (isset($entry['ou'])) + foreach ($entry['ou'] as $ou_value) + $output .= sprintf(';%s',$ou_value); + + # The attribute is binary. (to do : need to fold the line) + } elseif (in_array($key,array('audio','jpegphoto'))) { + $output .= $this->mapping[$key].':'.$this->br; + $output .= ' '.base64_encode($attr[0]); + + } else { + $output .= $this->mapping[$key].':'.$attr[0]; + } + + $output .= $this->br; + } + } + + $output .= sprintf('UID:%s%s',isset($dndetails['entryUUID']) ? $dndetails['entryUUID'] : $dndetails['dn'],$this->br); + $output .= sprintf('VERSION:2.1%s',$this->br); + $output .= sprintf('%s%s',$addr,$this->br); + $output .= sprintf('END:VCARD%s',$this->br); + } + } + + if ($this->compress) + return gzencode($output); + else + return $output; + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/functions.php b/lam/templates/3rdParty/pla/lib/functions.php new file mode 100644 index 00000000..3f46aedf --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/functions.php @@ -0,0 +1,2912 @@ +_('Generic Error'), + 'body'=>sprintf('%s: %s [%s]', + __METHOD__,('Called to load a class that cant be found'),$className), + 'type'=>'error')); +} + +/** + * Strips all slashes from the specified array in place (pass by ref). + * @param Array The array to strip slashes from, typically one of + * $_GET, $_POST, or $_COOKIE. + */ +function array_stripslashes(&$array) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (is_array($array)) + while (list($key) = each($array)) + if (is_array($array[$key]) && $key != $array) + array_stripslashes($array[$key]); + else + $array[$key] = stripslashes($array[$key]); +} + +/** + * Compatibility Functions + * These functions exist, so that a standard function can be used in new applications, and they + * map to already defined functions in older applications. + */ + +/** + * If gettext is not available in PHP, then this will provide compatibility for it. + */ +if (! function_exists('_')) { + function _($msg) { + return $msg; + } +} + +/** + * Generic Utility Functions + */ + +/** + * Custom error handling function. + * When a PHP error occurs, PHP will call this function rather than printing + * the typical PHP error string. This provides the application the ability to + * format an error message so that it looks better. + * Optionally, it can present a link so that a user can search/submit bugs. + * This function is not to be called directly. It is exclusively for the use of + * PHP internally. If this function is called by PHP from within a context + * where error handling has been disabled (ie, from within a function called + * with "@" prepended), then this function does nothing. + * + * @param int The PHP error number that occurred (ie, E_ERROR, E_WARNING, E_PARSE, etc). + * @param string The PHP error string provided (ie, "Warning index "foo" is undefined) + * @param string The file in which the PHP error ocurred. + * @param int The line number on which the PHP error ocurred + * @see set_error_handler + */ +function app_error_handler($errno,$errstr,$file,$lineno) { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + /** + * error_reporting will be 0 if the error context occurred + * within a function call with '@' preprended (ie, @ldap_bind() ); + * So, don't report errors if the caller has specifically + * disabled them with '@' + */ + if (ini_get('error_reporting') == 0 || error_reporting() == 0) + return; + + $file = basename($file); + $caller = basename($_SERVER['PHP_SELF']); + $errtype = ''; + + switch ($errno) { + case E_STRICT: $errtype = 'E_STRICT'; break; + case E_ERROR: $errtype = 'E_ERROR'; break; + case E_WARNING: $errtype = 'E_WARNING'; break; + case E_PARSE: $errtype = 'E_PARSE'; break; + case E_NOTICE: $errtype = 'E_NOTICE'; break; + case E_CORE_ERROR: $errtype = 'E_CORE_ERROR'; break; + case E_CORE_WARNING: $errtype = 'E_CORE_WARNING'; break; + case E_COMPILE_ERROR: $errtype = 'E_COMPILE_ERROR'; break; + case E_COMPILE_WARNING: $errtype = 'E_COMPILE_WARNING'; break; + case E_USER_ERROR: $errtype = 'E_USER_ERROR'; break; + case E_USER_WARNING: $errtype = 'E_USER_WARNING'; break; + case E_USER_NOTICE: $errtype = 'E_USER_NOTICE'; break; + case E_ALL: $errtype = 'E_ALL'; break; + + default: $errtype = sprintf('%s: %s',('Unrecognized error number'),$errno); + } + + # Take out extra spaces in error strings. + $errstr = preg_replace('/\s+/',' ',$errstr); + + # If this is a more serious error, call the error call. + error(sprintf('%s: %s',$errtype,$errstr),'error',null,true,true); +} + +/** + * Returns the application name. + */ +function app_name() { + return 'LDAP Account Manager'; +} + +/** + * Returns the application version currently running. The version + * is read from the file named VERSION. + * + * @return string The current version as read from the VERSION file. + */ +function app_version() { + return LAMVersion(); +} + +/** + * This function will convert the browser two character language into the + * default 5 character language, where the country portion should NOT be + * assumed to be upper case characters of the first two characters. + */ +function auto_lang($lang) { + switch ($lang) { + case 'ja': return 'ja_JP'; + case 'cs': return 'cs_CZ'; + default: return sprintf('%s_%s',$lang,strtoupper($lang)); + } +} + +/** + * Makes sure that the config file is properly setup. + */ +function check_config($config_file) { + # Read in config_default.php + require_once LIBDIR.'config_default.php'; + + # Make sure their PHP version is current enough + if (strcmp(phpversion(),REQUIRED_PHP_VERSION) < 0) + system_message(array( + 'title'=>('Incorrect version of PHP'), + 'body'=>sprintf('phpLDAPadmin requires PHP version %s or greater.
    (You are using %s)', + REQUIRED_PHP_VERSION,phpversion()), + 'type'=>'error')); + + $config = new Config; + + if (file_exists(LIBDIR.'config_custom.php') && is_readable(LIBDIR.'config_custom.php')) + include LIBDIR.'config_custom.php'; + + ob_start(); + require $config_file; + $str = ''; + if (ob_get_level()) { + $str = ob_get_contents(); + ob_end_clean(); + } + + if ($str) { + $str = strip_tags($str); + $matches = array(); + preg_match('/(.*):\s+(.*):.*\s+on line (\d+)/',$str,$matches); + + if (isset($matches[1]) && isset($matches[2]) && isset($matches[3])) { + $error_type = $matches[1]; + $error = $matches[2]; + $line_num = $matches[3]; + + $file = file($config_file); + + $body = '

    Config file ERROR

    '; + $body .= sprintf('

    %s (%s) on line %s

    ',$error_type,$error,$line_num); + + $body .= '
    '; + $body .= sprintf('Looks like your config file has an ERROR on line %s.
    ',$line_num); + $body .= 'Here is a snippet around that line
    '; + $body .= '
    '."\n"; + + $body .= '
    '; + + for ($i = $line_num-9; $i<$line_num+5; $i++) { + if ($i+1 == $line_num) + $body .= '
    '; + + if ($i < 0) + continue; + + $body .= sprintf('%s: %s
    ',$i+1,$file[$i]); + + if ($i+1 == $line_num) + $body .= '
    '; + } + + $body .= '
    '; + $body .= '
    '; + $body .= 'Hint: Sometimes these errors are caused by lines preceding the line reported.'; + $body .= '
    '; + + $block = new block(); + $block->SetBody($body); + $www['page'] = new page(); + $www['page']->block_add('body',$block); + $www['page']->display(); + + die(); + } + } + + # Check for server definitions. + if (! isset($servers) || count($servers->GetServerList()) == 0) + error(('Your config.php is missing Server Definitions. Please see the sample file config/config.php.example.'),'error','index.php',true); + + $config->setServers($servers); + + return $config; +} + +/** + * Commands available in the control_panel of the page + * + * @return array + */ +function cmd_control_pane($type) { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + switch ($type) { + case 'main' : + return array( + 'home'=>array( + 'title'=>('Home'), + 'enable'=>false, + 'link'=>sprintf('href="index.php" title="%s"',('Home')), + 'image'=>sprintf('%s',IMGDIR,('Home'))), + + 'purge'=>array( + 'title'=>('Purge caches'), + 'enable'=>isset($_SESSION[APPCONFIG]) ? $_SESSION[APPCONFIG]->isCommandAvailable('script','purge_cache') : false, + 'link'=>sprintf('href="cmd.php?cmd=purge_cache" onclick="return ajDISPLAY(\'BODY\',\'cmd=purge_cache\',\'%s\');" title="%s"', + ('Clearing cache'),('Purge caches')), + 'image'=>sprintf('%s',IMGDIR,('Purge caches'))), + + 'hide_debug_info'=>array( + 'title'=>('Show Cache'), + 'enable'=>isset($_SESSION[APPCONFIG]) ? $_SESSION[APPCONFIG]->isCommandAvailable('script','show_cache') : false, + 'link'=>sprintf('href="cmd.php?cmd=show_cache" onclick="return ajDISPLAY(\'BODY\',\'cmd=show_cache\',\'%s\');" title="%s"', + ('Loading'),('Show Cache'),('Show Cache')), + 'image'=>sprintf('%s',IMGDIR,('Show Cache'))), + ); + + break; + + case 'top' : + return array( + 'forum'=>array( + 'title'=>('Forum'), + 'enable'=>isset($_SESSION[APPCONFIG]) ? $_SESSION[APPCONFIG]->isCommandAvailable('cmd','oslinks') : true, + 'link'=>sprintf('href="%s" title="%s" onclick="target=\'_blank\';"',get_href('forum'),('Forum')), + 'image'=>sprintf('%s',IMGDIR,('Forum'))), + + 'feature'=>array( + 'title'=>('Request feature'), + 'enable'=>isset($_SESSION[APPCONFIG]) ? $_SESSION[APPCONFIG]->isCommandAvailable('cmd','oslinks') : true, + 'link'=>sprintf('href="%s" title="%s" onclick="target=\'_blank\';"',get_href('add_rfe'),('Request feature')), + 'image'=>sprintf('%s',IMGDIR,('Request feature'))), + + 'bug'=>array( + 'title'=>('Report a bug'), + 'enable'=>isset($_SESSION[APPCONFIG]) ? $_SESSION[APPCONFIG]->isCommandAvailable('cmd','oslinks') : true, + 'link'=>sprintf('href="%s" title="%s" onclick="target=\'_blank\';"',get_href('add_bug'),('Report a bug')), + 'image'=>sprintf('%s',IMGDIR,('Report a bug'))), + + 'donation'=>array( + 'title'=>('Donate'), + 'enable'=>isset($_SESSION[APPCONFIG]) ? $_SESSION[APPCONFIG]->isCommandAvailable('cmd','oslinks') : true, + 'link'=>sprintf('href="%s" title="%s" onclick="target=\'_blank\';"',get_href('donate'),('Donate')), + 'image'=>sprintf('%s',IMGDIR,('Donate'))), + + 'help'=>array( + 'title'=>('Help'), + 'enable'=>isset($_SESSION[APPCONFIG]) ? $_SESSION[APPCONFIG]->isCommandAvailable('cmd','oslinks') : true, + 'link'=>sprintf('href="%s" title="%s" onclick="target=\'_blank\';"',get_href('documentation'),('Help')), + 'image'=>sprintf('%s',IMGDIR,('Help'))) + ); + + break; + } +} + +/** + * This function dumps the $variable for debugging purposes + * + * @param string|array Variable to dump + * @param boolean Whether to stop execution or not. + */ +function debug_dump($variable,$die=false,$onlydebugaddr=false) { + if ($die) die(); +} + +/** + * This function generates a backtrace + * + * @param boolean Whether to stop execution or not. + */ +function debug_dump_backtrace($msg='Calling BackTrace',$die=false) { + error($msg,'note',null,$die,true); +} + +/** + * Send a debug as a sys message + */ +function debug_sysmsg($msg) { + system_message(array('title'=>('Debug'),'body'=>$msg,'type'=>'debug')); +} + +/** + * Debug Logging + * + * The global debug level is turned on in your configuration file by setting: + * + * $config->custom->debug['level'] = 255; + * + * together with atleast one output direction (currently file and syslog are supported). + * + * $config->custom->debug['file'] = '/tmp/app_debug.log'; + * $config->custom->debug['syslog'] = true; + * + * + * The debug level is turned into binary, then if the message levels bit is on + * the message will be sent to the debug log. (Thus setting your debug level to 255, + * all bits on, will results in all messages being printed.) + * + * The message level bits are defined here. + * 0( 1) = Entry/Return results from function calls. + * 1( 2) = Configuration Processing + * 2( 4) = Template Processing + * 3( 8) = Schema Processing + * 4( 16) = LDAP Server Communication + * 5( 32) = Tree Processing + * 7( 64) = Other non generic messages + * 8(128) = Page Processing + * 9(256) = Hooks Processing + * @param string Message to send to syslog + * @param int Log bit number for this message. + * @see syslog.php + */ +function debug_log($msg,$level,$indent) { + static $debug_file; + + # In case we are called before we are fully initialised or if debugging is not set. + if (! isset($_SESSION[APPCONFIG]) + || ! ($_SESSION[APPCONFIG]->getValue('debug','file') || $_SESSION[APPCONFIG]->getValue('debug','syslog'))) + return; + + $debug_level = $_SESSION[APPCONFIG]->getValue('debug','level'); + if (! $debug_level || (! ($level & $debug_level))) + return; + + if ($_SESSION[APPCONFIG]->getValue('debug','addr')) + if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] == $_SESSION[APPCONFIG]->getValue('debug','addr')) + $debugaddr = true; + elseif ($_SERVER['REMOTE_ADDR'] == $_SESSION[APPCONFIG]->getValue('debug','addr')) + $debugaddr = true; + else + $debugaddr = false; + + else + $debugaddr = true; + + if (! $debugaddr) + return; + + # If we are limiting debug to a browser, then check that + $caller = basename($_SERVER['PHP_SELF']); + + $args = func_get_args(); + # Discard our first three arguments. + array_shift($args); + array_shift($args); + array_shift($args); + + # Pull the file/line/method + if (is_string($args[0]) && preg_match('/.php$/',$args[0])) { + $file = preg_replace('/.php$/','',array_shift($args)); + $line = array_shift($args); + $method = array_shift($args); + + } else { + $file = 'UNKNOWN'; + $line = 'UNKNOWN'; + $method = 'UNKNOWN'; + } + + # TEMP: New debuglog format + if (preg_match('/%%/',$msg) && $args[0] != 'NOARGS') + $args = array_shift($args); + + $fargs = array(); + foreach ($args as $key) { + if (is_array($key)) + array_push($fargs,serialize($key)); + elseif (is_object($key)) + array_push($fargs,sprintf('OBJECT:%s',get_class($key))); + else + array_push($fargs,$key); + } + + if (preg_match('/%%/',$msg)) + $msg = preg_replace('/%%/',join('|',$fargs),$msg); + else + $msg = vsprintf($msg,array_values($fargs)); + + if (function_exists('stopwatch')) + $timer = stopwatch(); + else + $timer = null; + + $debug_message = sprintf('[%2.3f] %15s(%04s-%03s): %s%s: %s',$timer,basename($file),$line,$level,str_repeat('.',$indent),$method,substr($msg,0,200)); + + if ($debug_file || $_SESSION[APPCONFIG]->getValue('debug','file')) { + if (! $debug_file) + $debug_file = fopen($_SESSION[APPCONFIG]->getValue('debug','file'), + $_SESSION[APPCONFIG]->getValue('debug','append') ? 'a' : 'w'); + + fwrite($debug_file,$debug_message."\n"); + } + + if ($_SESSION[APPCONFIG]->getValue('debug','syslog') && function_exists('syslog_notice')) + syslog_notice($debug_message); +} + +/** + * Display an error message in the system message panel of the page. + */ +function error($msg,$type='note',$redirect=null,$fatal=false,$backtrace=false) { + global $www; + static $counter; + + # Just a check to see that we are called right. + if (! isset($www['page']) && ! $fatal) + die("Function error called incorrectly [$msg]"); + + # If the error is fatal, we'll need to stop here. + if (! isset($www['page'])) + $www['page'] = new page(); + + if ($fatal) + $www['page']->setsysmsg(array('title'=>_('Error'),'body'=>$msg,'type'=>$type)); + else + system_message(array('title'=>_('Error'),'body'=>$msg,'type'=>$type),$redirect); + + # Spin loop detection + if ($counter++ > 20) { + debug_dump('Spin loop detection.'); + debug_dump(array('msg'=>$msg,'session'=>$_SESSION['sysmsg'],'www'=>$www),1); + } + + # Do we have a backtrace to display? + if ($backtrace) { + $backtraceblock = new block(); + $backtraceblock->SetTitle('PHP Debug Backtrace'); + + $body = ''; + $body .= "\n"; + + foreach (debug_backtrace() as $error => $line) { + $_SESSION['backtrace'][$error]['file'] = isset($line['file']) ? $line['file'] : 'unknown'; + $_SESSION['backtrace'][$error]['line'] = isset($line['line']) ? $line['line'] : 'unknown'; + $body .= sprintf('', + _('File'),isset($line['file']) ? $line['file'] : $last['file'],isset($line['line']) ? $line['line'] : ''); + + $_SESSION['backtrace'][$error]['function'] = $line['function']; + $body .= sprintf(''; + $body .= "\n"; + + if (isset($line['file'])) + $last['file'] = $line['file']; + } + + $body .= '
    %s%s (%s)
     %s%s', + _('Function'),$line['function']); + + if (isset($line['args'])) { + $display = strlen(serialize($line['args'])) < 50 ? htmlspecialchars(serialize($line['args'])) : htmlspecialchars(substr(serialize($line['args']),0,50)).'...'; + $_SESSION['backtrace'][$error]['args'] = $line['args']; + if (file_exists(LIBDIR.'../tools/unserialize.php')) + $body .= sprintf(' (%s)', + '../tools/unserialize.php',$error,$display); + else + $body .= sprintf(' (%s)',$display); + } + $body .= '
    '; + $body .= "\n"; + $backtraceblock->SetBody($body); + + $www['page']->block_add('body',$backtraceblock); + } + + if ($fatal) { + $www['page']->display(array('tree'=>false)); + die(); + } +} + +/** + * Return the result of a form variable, with optional default + * + * @return The form GET/REQUEST/SESSION/POST variable value or its default + */ +function get_request($attr,$type='POST',$die=false,$default=null) { + switch($type) { + case 'GET': + $value = isset($_GET[$attr]) ? (is_array($_GET[$attr]) ? $_GET[$attr] : (trim(empty($_GET['nodecode'][$attr]) ? rawurldecode($_GET[$attr]) : $_GET[$attr]))) : $default; + break; + + case 'REQUEST': + $value = isset($_REQUEST[$attr]) ? (is_array($_REQUEST[$attr]) ? $_REQUEST[$attr] : trim(empty($_REQUEST['nodecode'][$attr]) ? rawurldecode($_REQUEST[$attr]) : $_REQUEST[$attr])) : $default; + break; + + case 'SESSION': + $value = isset($_SESSION[$attr]) ? (is_array($_SESSION[$attr]) ? $_SESSION[$attr] : (empty($_SESSION['nodecode'][$attr]) ? rawurldecode($_SESSION[$attr]) : $_SESSION[$attr])) : $default; + break; + + case 'POST': + default: + $value = isset($_POST[$attr]) ? (is_array($_POST[$attr]) ? $_POST[$attr] : trim(empty($_POST['nodecode'][$attr]) ? rawurldecode($_POST[$attr]) : $_POST[$attr])) : $default; + break; + } + + if ($die && is_null($value)) + system_message(array( + 'title'=>_('Generic Error'), + 'body'=>sprintf('%s: Called "%s" without "%s" using "%s"', + basename($_SERVER['PHP_SELF']),get_request('cmd','REQUEST'),$attr,$type), + 'type'=>'error'), + 'index.php'); + + return $value; +} + +/** + * Record a system message. + * This function can be used as an alternative to generate a system message, if page hasnt yet been defined. + */ +function system_message($msg,$redirect=null) { + if (! is_array($msg)) + return null; + + if (! isset($msg['title']) && ! isset($msg['body'])) + return null; + + if (! isset($msg['type'])) + $msg['type'] = 'info'; + + if (! isset($_SESSION['sysmsg']) || ! is_array($_SESSION['sysmsg'])) + $_SESSION['sysmsg'] = array(); + + # Try and detect if we are in a redirect loop + if (get_request('redirect','GET') && $msg['type'] != 'debug') { + foreach ($_SESSION['sysmsg'] as $detail) { + if ($msg == $detail && ! isset($detail['special'])) { + debug_dump(array('Incoming MSG'=>$msg,'existing'=>$_SESSION['sysmsg'])); + debug_dump_backtrace('Redirect Loop Detected',true); + } + } + } + + array_push($_SESSION['sysmsg'],$msg); + + if ($redirect) { + if (preg_match('/\?/',$redirect)) + $redirect .= '&'; + else + $redirect .= '?'; + $redirect .= 'redirect=true'; + + # Check if we were an ajax request, and only render the ajax message + if (get_request('meth','REQUEST') == 'ajax') + $redirect .= '&meth=ajax'; + + header("Location: $redirect"); + die(); + } +} + +/** + * Other Functions + */ + +/** + * Encryption using blowfish algorithm + * + * @param string Original data + * @param string The secret + * @return string The encrypted result + * @author lem9 (taken from the phpMyAdmin source) + */ +function blowfish_encrypt($data,$secret=null) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # If our secret is null or blank, get the default. + if ($secret === null || ! trim($secret)) + $secret = $_SESSION[APPCONFIG]->getValue('session','blowfish') ? $_SESSION[APPCONFIG]->getValue('session','blowfish') : session_id(); + + # If the secret isnt set, then just return the data. + if (! trim($secret)) + return $data; + + if (function_exists('mcrypt_module_open')) { + $td = mcrypt_module_open(MCRYPT_BLOWFISH,'',MCRYPT_MODE_ECB,''); + $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_DEV_URANDOM); + mcrypt_generic_init($td,substr($secret,0,mcrypt_enc_get_key_size($td)),$iv); + $encrypted_data = base64_encode(mcrypt_generic($td,$data)); + mcrypt_generic_deinit($td); + + return $encrypted_data; + } + + if (file_exists(LIBDIR.'blowfish.php')) + require_once LIBDIR.'blowfish.php'; + else + return $data; + + $pma_cipher = new Horde_Cipher_blowfish; + $encrypt = ''; + + for ($i=0; $iencryptBlock($block, $secret); + } + return base64_encode($encrypt); +} + +/** + * Decryption using blowfish algorithm + * + * @param string Encrypted data + * @param string The secret + * @return string Original data + * @author lem9 (taken from the phpMyAdmin source) + */ +function blowfish_decrypt($encdata,$secret=null) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # This cache gives major speed up for stupid callers :) + static $CACHE = array(); + + if (isset($CACHE[$encdata])) + return $CACHE[$encdata]; + + # If our secret is null or blank, get the default. + if ($secret === null || ! trim($secret)) + $secret = $_SESSION[APPCONFIG]->getValue('session','blowfish') ? $_SESSION[APPCONFIG]->getValue('session','blowfish') : session_id(); + + # If the secret isnt set, then just return the data. + if (! trim($secret)) + return $encdata; + + if (function_exists('mcrypt_module_open')) { + $td = mcrypt_module_open(MCRYPT_BLOWFISH,'',MCRYPT_MODE_ECB,''); + $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_DEV_URANDOM); + mcrypt_generic_init($td,substr($secret,0,mcrypt_enc_get_key_size($td)),$iv); + $decrypted_data = trim(mdecrypt_generic($td,base64_decode($encdata))); + mcrypt_generic_deinit($td); + + return $decrypted_data; + } + + if (file_exists(LIBDIR.'blowfish.php')) + require_once LIBDIR.'blowfish.php'; + else + return $encdata; + + $pma_cipher = new Horde_Cipher_blowfish; + $decrypt = ''; + $data = base64_decode($encdata); + + for ($i=0; $idecryptBlock(substr($data, $i, 8), $secret); + + $return = trim($decrypt); + $CACHE[$encdata] = $return; + return $return; +} + +/** + * String padding + * + * @param string Input string + * @param integer Length of the result + * @param string The filling string + * @param integer Padding mode + * @return string The padded string + */ +function full_str_pad($input,$pad_length,$pad_string='',$pad_type=0) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $str = ''; + $length = $pad_length - strlen($input); + + if ($length > 0) { // str_repeat doesn't like negatives + if ($pad_type == STR_PAD_RIGHT) { // STR_PAD_RIGHT == 1 + $str = $input.str_repeat($pad_string, $length); + } elseif ($pad_type == STR_PAD_BOTH) { // STR_PAD_BOTH == 2 + $str = str_repeat($pad_string, floor($length/2)); + $str .= $input; + $str .= str_repeat($pad_string, ceil($length/2)); + } else { // defaults to STR_PAD_LEFT == 0 + $str = str_repeat($pad_string, $length).$input; + } + + } else { // if $length is negative or zero we don't need to do anything + $str = $input; + } + return $str; +} + +/** + * Returns the cached array of LDAP resources. + * + * Note that internally, this function utilizes a two-layer cache, + * one in memory using a static variable for multiple calls within + * the same page load, and one in a session for multiple calls within + * the same user session (spanning multiple page loads). + * + * @return Returns the cached attributed requested, + * or null if there is nothing cached.. + */ +function get_cached_item($index,$item,$subitem='null') { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # Set default return + $return = null; + + # Check config to make sure session-based caching is enabled. + if ($_SESSION[APPCONFIG]->getValue('cache',$item) && isset($_SESSION['cache'][$index][$item][$subitem])) + $return = $_SESSION['cache'][$index][$item][$subitem]; + + if (DEBUG_ENABLED) + debug_log('Returning (%s)',1,0,__FILE__,__LINE__,__METHOD__,$return); + + return $return; +} + +/** + * Caches the specified $item for the specified $index. + * + * Returns true on success of false on failure. + */ +function set_cached_item($index,$item,$subitem='null',$data) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # Check config to make sure session-based caching is enabled. + if ($_SESSION[APPCONFIG]->getValue('cache',$item)) { + global $CACHE; + + $CACHE[$index][$item][$subitem] = $data; + $_SESSION['cache'][$index][$item][$subitem] = $data; + + return true; + + } else + return false; +} + +/** + * Deletes the cache for a specified $item for the specified $index + */ +function del_cached_item($index,$item,$subitem='null') { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + global $CACHE; + + # Check config to make sure session-based caching is enabled. + if (isset($_SESSION['cache'][$index][$item][$subitem])) + unset($_SESSION['cache'][$index][$item][$subitem]); + + if (isset($CACHE[$index][$item][$subitem])) + unset($CACHE[$index][$item][$subitem]); +} + +/** + * Utility wrapper for setting cookies, which takes into consideration + * application configuration values. On success, true is returned. On + * failure, false is returned. + * + * @param string The name of the cookie to set. + * @param string The value of the cookie to set. + * @param int (optional) The duration in seconds of this cookie. If unspecified, $cookie_time is used from config.php + * @param string (optional) The directory value of this cookie (see php.net/setcookie) + * @return boolean + */ +function set_cookie($name,$val,$expire=null,$dir=null) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # Set default return + $return = false; + + if ($expire == null) { + $cookie_time = $_SESSION[APPCONFIG]->getValue('session','cookie_time'); + $expire = $cookie_time == 0 ? null : time() + $cookie_time; + } + + if ($dir == null) + $dir = dirname($_SERVER['PHP_SELF']); + + if (@setcookie($name,$val,$expire,$dir)) { + $_COOKIE[$name] = $val; + $return = true; + } + + if (DEBUG_ENABLED) + debug_log('Returning (%s)',1,0,__FILE__,__LINE__,__METHOD__,$return); + + return $return; +} + +/** + * Get a customized file for a server + * We don't need any caching, because it's done by PHP + * + * @param int The ID of the server + * @param string The requested filename + * + * @return string The customized filename, if exists, or the standard one + */ +function get_custom_file($index,$filename,$path) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # Set default return + $return = $path.$filename; + $server = $_SESSION[APPCONFIG]->getServer($index); + + $custom = $server->getValue('custom','pages_prefix'); + if (! is_null($custom) && is_file(realpath($path.$custom.$filename))) + $return = $path.$custom.$filename; + + if (DEBUG_ENABLED) + debug_log('Returning (%s)',1,0,__FILE__,__LINE__,__METHOD__,$return); + + return $return; +} + +/** + * Sort a multi dimensional array. + * + * @param array Multi demension array passed by reference + * @param string Comma delimited string of sort keys. + * @param boolean Whether to reverse sort. + * @return array Sorted multi demension array. + */ +function masort(&$data,$sortby,$rev=0) { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # if the array to sort is null or empty + if (! $data) return; + + static $CACHE = array(); + + if (empty($CACHE[$sortby])) { + $code = "\$c=0;\n"; + + foreach (explode(',',$sortby) as $key) { + if (!preg_match('/^[a-zA-z0-9_]+$/', $key)) { + return; + } + $code .= "if (is_object(\$a) || is_object(\$b)) {\n"; + + $code .= " if (is_array(\$a->$key)) {\n"; + $code .= " asort(\$a->$key);\n"; + $code .= " \$aa = array_shift(\$a->$key);\n"; + $code .= " } else\n"; + $code .= " \$aa = \$a->$key;\n"; + + $code .= " if (is_array(\$b->$key)) {\n"; + $code .= " asort(\$b->$key);\n"; + $code .= " \$bb = array_shift(\$b->$key);\n"; + $code .= " } else\n"; + $code .= " \$bb = \$b->$key;\n"; + + $code .= " if (\$aa != \$bb)"; + if ($rev) + $code .= " return (\$aa < \$bb ? 1 : -1);\n"; + else + $code .= " return (\$aa > \$bb ? 1 : -1);\n"; + + $code .= "} else {\n"; + + $code .= " \$a = array_change_key_case(\$a);\n"; + $code .= " \$b = array_change_key_case(\$b);\n"; + + $key = strtolower($key); + + $code .= " if ((! isset(\$a['$key'])) && isset(\$b['$key'])) return 1;\n"; + $code .= " if (isset(\$a['$key']) && (! isset(\$b['$key']))) return -1;\n"; + + $code .= " if ((isset(\$a['$key'])) && (isset(\$b['$key']))) {\n"; + $code .= " if (is_array(\$a['$key'])) {\n"; + $code .= " asort(\$a['$key']);\n"; + $code .= " \$aa = array_shift(\$a['$key']);\n"; + $code .= " } else\n"; + $code .= " \$aa = \$a['$key'];\n"; + + $code .= " if (is_array(\$b['$key'])) {\n"; + $code .= " asort(\$b['$key']);\n"; + $code .= " \$bb = array_shift(\$b['$key']);\n"; + $code .= " } else\n"; + $code .= " \$bb = \$b['$key'];\n"; + + $code .= " if (\$aa != \$bb)\n"; + $code .= " if (is_numeric(\$aa) && is_numeric(\$bb)) {\n"; + + if ($rev) + $code .= " return (\$aa < \$bb ? 1 : -1);\n"; + else + $code .= " return (\$aa > \$bb ? 1 : -1);\n"; + + $code .= " } else {\n"; + + if ($rev) + $code .= " if ( (\$c = strcasecmp(\$bb,\$aa)) != 0 ) return \$c;\n"; + else + $code .= " if ( (\$c = strcasecmp(\$aa,\$bb)) != 0 ) return \$c;\n"; + + $code .= " }\n"; + $code .= " }\n"; + $code .= "}\n"; + } + + $code .= 'return $c;'; + + $CACHE[$sortby] = create_function('$a, $b',$code); + } + + uasort($data,$CACHE[$sortby]); +} + +/** + * Is compression enabled for output + */ +function isCompress() { + return (isset($_SESSION[APPCONFIG]) && $_SESSION[APPCONFIG]->getValue('appearance','compress') + && ! ini_get('zlib.output_compression') + && preg_match('/gzip/',$_SERVER['HTTP_ACCEPT_ENCODING'])); +} + +/** + * PLA specific Functions + */ + +/** + * Fetches whether the user has configured phpLDAPadmin to obfuscate passwords + * with "*********" when displaying them. + * + * This is configured in config.php thus: + * + * $config->custom->appearance['obfuscate_password_display'] = true; + * + * + * Or if it is OK to show encrypted passwords but not clear text passwords + * + * $config->custom->appearance['show_clear_password'] = false; + * + * + * @param string Password encoding type + * @return boolean + */ +function obfuscate_password_display($enc=null) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($_SESSION[APPCONFIG]->getValue('appearance','obfuscate_password_display')) + $return = true; + + elseif (! $_SESSION[APPCONFIG]->getValue('appearance','show_clear_password') && (is_null($enc) || $enc == 'clear')) + $return = true; + + else + $return = false; + + if (DEBUG_ENABLED) + debug_log('Returning (%s)',1,0,__FILE__,__LINE__,__METHOD__,$return); + + return $return; +} + +/** + * Returns an HTML-beautified version of a DN. + * Internally, this function makes use of pla_explode_dn() to break the + * the DN into its components. It then glues them back together with + * "pretty" HTML. The returned HTML is NOT to be used as a real DN, but + * simply displayed. + * + * @param string The DN to pretty-print. + * @return string + */ +function pretty_print_dn($dn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $dn_save = $dn; + $dn = pla_explode_dn($dn); + + if (! $dn) + return $dn_save; + + foreach ($dn as $i => $element) { + $element = htmlspecialchars($element); + $element = explode('=',$element,2); + $element = implode('=',$element); + $dn[$i] = $element; + } + + $dn = implode(',',$dn); + + return $dn; +} + +/** + * Given a string, this function returns true if the string has the format + * of a DN (ie, looks like "cn=Foo,dc=example,dc=com"). Returns false otherwise. + * The purpose of this function is so that developers can examine a string and + * know if it looks like a DN, and draw a hyperlink as needed. + * + * (See unit_test.php for test cases) + * + * @param string The attribute to examine for "DNness" + * @return boolean + */ +function is_dn_string($str) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + /* Try to break the string into its component parts if it can be done + ie, "uid=Manager" "dc=example" and "dc=com" */ + $parts = pla_explode_dn($str); + if (! is_array($parts) || ! count($parts)) + return false; + + /* Foreach of the "parts", look for an "=" character, + and make sure neither the left nor the right is empty */ + foreach ($parts as $part) { + if (! strpos($part,"=")) + return false; + + $sub_parts = explode('=',$part,2); + $left = $sub_parts[0]; + $right = $sub_parts[1]; + + if ( ! strlen(trim($left)) || ! strlen(trim($right))) + return false; + + if (strpos($left,'#') !== false) + return false; + } + + # We survived the above rigor. This is a bonified DN string. + return true; +} + +/** + * Get whether a string looks like an email address (user@example.com). + * + * @param string The string to analyze. + * @return boolean Returns true if the specified string looks like an email address or false otherwise. + */ +function is_mail_string($str) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $mail_regex = "/^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*$/"; + + if (preg_match($mail_regex,$str)) + return true; + else + return false; +} + +/** + * Get whether a string looks like a web URL (http://www.example.com/) + * + * @param string The string to analyze. + * @return boolean Returns true if the specified string looks like a web URL or false otherwise. + */ +function is_url_string($str) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $url_regex = '/^(ftp|https?):\/\/+[\w\.\-\/\?\=\&]*\w+/'; + + if (preg_match($url_regex,$str)) + return true; + else + return false; +} + +/** + * Compares 2 DNs. If they are equivelant, returns 0, otherwise, + * returns their sorting order (similar to strcmp()): + * Returns < 0 if dn1 is less than dn2. + * Returns > 0 if dn1 is greater than dn2. + * + * The comparison is performed starting with the top-most element + * of the DN. Thus, the following list: + * + * ou=people,dc=example,dc=com + * cn=Admin,ou=People,dc=example,dc=com + * cn=Joe,ou=people,dc=example,dc=com + * dc=example,dc=com + * cn=Fred,ou=people,dc=example,dc=org + * cn=Dave,ou=people,dc=example,dc=org + * + * Will be sorted thus using usort( $list, "pla_compare_dns" ): + * + * dc=com + * dc=example,dc=com + * ou=people,dc=example,dc=com + * cn=Admin,ou=People,dc=example,dc=com + * cn=Joe,ou=people,dc=example,dc=com + * cn=Dave,ou=people,dc=example,dc=org + * cn=Fred,ou=people,dc=example,dc=org + * + * + * @param string The first of two DNs to compare + * @param string The second of two DNs to compare + * @return int + */ +function pla_compare_dns($dn1,$dn2) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # If pla_compare_dns is passed via a tree, then we'll just get the DN part. + if (is_array($dn1)) + if (isset($dn1['dn'])) + $dn1 = $dn1['dn']; + else + $dn1 = implode('+',$dn1); + if (is_array($dn2)) + if (isset($dn2['dn'])) + $dn2 = $dn2['dn']; + else + $dn2 = implode('+',$dn2); + + # If they are obviously the same, return immediately + if (! strcasecmp($dn1,$dn2)) + return 0; + + $dn1_parts = pla_explode_dn(pla_reverse_dn($dn1)); + $dn2_parts = pla_explode_dn(pla_reverse_dn($dn2)); + assert(is_array($dn1_parts)); + assert(is_array($dn2_parts)); + + # Foreach of the "parts" of the smaller DN + for ($i=0; $i < count($dn1_parts) && $i < count($dn2_parts); $i++) { + /* dnX_part is of the form: "cn=joe" or "cn = joe" or "dc=example" + ie, one part of a multi-part DN. */ + $dn1_part = $dn1_parts[$i]; + $dn2_part = $dn2_parts[$i]; + + /* Each "part" consists of two sub-parts: + 1. the attribute (ie, "cn" or "o") + 2. the value (ie, "joe" or "example") */ + $dn1_sub_parts = explode('=',$dn1_part,2); + $dn2_sub_parts = explode('=',$dn2_part,2); + + $dn1_sub_part_attr = trim($dn1_sub_parts[0]); + $dn2_sub_part_attr = trim($dn2_sub_parts[0]); + + if (0 != ($cmp = strcasecmp($dn1_sub_part_attr,$dn2_sub_part_attr))) + return $cmp; + + $dn1_sub_part_val = trim($dn1_sub_parts[1]); + $dn2_sub_part_val = trim($dn2_sub_parts[1]); + if (0 != ($cmp = strcasecmp($dn1_sub_part_val,$dn2_sub_part_val))) + return $cmp; + } + + /* If we iterated through all entries in the smaller of the two DNs + (ie, the one with fewer parts), and the entries are different sized, + then, the smaller of the two must be "less than" than the larger. */ + if (count($dn1_parts) > count($dn2_parts)) { + return 1; + + } elseif (count($dn2_parts) > count($dn1_parts)) { + return -1; + + } else { + return 0; + } +} + +/** + * For LDAP servers with auto_number enabled, this function will get the next + * available number using the host's preferred mechanism (pool or search). + * + * This is configured in config.php by server: + * + * + * $servers->setValue('auto_number','enable',true|false); + * + * + * The available mechanisms are: + * pool: + * The pool mechanism uses a user-configured entry in the LDAP server to + * store the last used "number". This mechanism simply fetches and increments + * and returns that value. + * + * search: + * The search mechanism will search the LDAP server that has the attribute + * set. It will then find the smallest value and "fills in the gaps" by + * incrementing the smallest attribute until an unused value is found. + * + * NOTE: Both mechanisms do NOT prevent race conditions or toe-stomping, so + * care must be taken when actually creating the entry to check that the number + * returned here has not been used in the mean time. Note that the two different + * mechanisms may (will!) return different values as they use different algorithms + * to arrive at their result. Do not be alarmed if (when!) this is the case. + * + * See config.php.example for more notes on the two mechanisms. + * + * @param string Base to start the search from + * @param string Attribute to query + * @param boolean Increment the result (for pool searches) + * @param string LDAP filter to use (for pool searches) + * @return int + */ +function get_next_number($base,$attr,$increment=false,$filter=false,$startmin=null) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $server = $_SESSION[APPCONFIG]->getServer(get_request('server_id','REQUEST')); + $attr = strtolower($attr); + $query = array(); + + if (! $server->getValue('auto_number','enable')) { + system_message(array( + 'title'=>('AUTO_NUMBER is disabled for this server'), + 'body'=>sprintf('%s (%s)',('A call was made to get_next_number(), however, it is disabled for this server'),$attr), + 'type'=>'warn')); + + return false; + } + + # Check see and use our alternate uid_dn and password if we have it. + if (! $server->login($server->getValue('auto_number','dn'),$server->getValue('auto_number','pass'),'auto_number')) { + system_message(array( + 'title'=>('AUTO_NUMBER invalid login/password'), + 'body'=>sprintf('%s (%s)',('Unable to connect to LDAP server with the auto_number login/password, please check your configuration.'), + $server->getName()), + 'type'=>'warn')); + + return false; + } + + # Some error checking + if (! $base) { + $query['base'] = $server->getValue('auto_number','search_base'); + + if (! trim($query['base'])) { + system_message(array( + 'title'=>('No AUTO_NUMBER search_base configured for this server'), + 'body'=>('A call was made to get_next_number(), however, the base to search is empty.'), + 'type'=>'warn')); + + return false; + } + + } else + $query['base'] = $base; + + if (! $server->dnExists($query['base'])) { + system_message(array( + 'title'=>('No AUTO_NUMBER search_base exists for this server'), + 'body'=>sprintf('%s (%s)',('A call was made to get_next_number(), however, the base to search does not exist for this server.'),$query['base']), + 'type'=>'warn')); + + return false; + } + + if (! is_string($attr) || ! $server->getSchemaAttribute($attr)) { + system_message(array( + 'title'=>('AUTO_NUMBER search attribute invalid'), + 'body'=>sprintf('%s (%s)',('The search attribute for AUTO_NUMBER is invalid, expecting a single valid attribute.'),$attr), + 'type'=>'warn')); + + return false; + } + + $query['attrs'] = array($attr); + + # Based on the configured mechanism, go get the next available uidNumber! + switch ($server->getValue('auto_number','mechanism')) { + case 'search': + $query['filter'] = sprintf('(%s=*)',$attr); + $search = $server->query($query,'auto_number'); + + # Construct a list of used numbers + $autonum = array(0); + + foreach ($search as $dn => $values) { + $values = array_change_key_case($values); + foreach ($values[$attr] as $value) + array_push($autonum,$value); + } + + $autonum = array_unique($autonum); + sort($autonum); + + # Start with the least existing autoNumber and add 1 + $minNumber = is_null($startmin) ? intval($autonum[0])+1 : $startmin; + + # Override our minNumber by the configuration if it exists. + if (count($server->getValue('auto_number','min'))) { + $min = array_change_key_case($server->getValue('auto_number','min')); + + if (isset($min[$attr])) + $minNumber = $min[$attr] > $minNumber ? $min[$attr] : $minNumber; + } + + for ($i=0;$i $num+1) + return $autonum[$i] >= $num ? $num+1 : $num; + } + + # If we didnt find a suitable gap and are all above the minNumber, we'll just return the $minNumber + return $minNumber; + + break; + + case 'pool': + switch ($attr) { + case 'gidnumber': + $query['filter'] = '(objectClass=gidPool)'; + + break; + + case 'uidnumber': + $query['filter'] = '(objectClass=uidPool)'; + + break; + } + + # If we are called with a filter, we'll use the one from the configuration. + if (! empty($filter)) + $query['filter'] = $filter; + + $search = $server->query($query,'auto_number'); + + switch (count($search)) { + case '1': + break; + + case '0': + system_message(array( + 'title'=>('AUTO_NUMBER pool filter didnt return any DNs'), + 'body'=>sprintf('%s (%s)',('Please change your filter parameter, or check your auto_number,search_base configuration'),$query['filter']), + 'type'=>'warn')); + + return false; + + default: + system_message(array( + 'title'=>('AUTO_NUMBER pool filter returned too many DNs'), + 'body'=>sprintf('%s (%s)',('Please change your filter parameter, or check your auto_number,search_base configuration'),$query['filter']), + 'type'=>'warn')); + + return false; + } + + # This should only iterate once. + foreach ($search as $dn => $values) { + $values = array_change_key_case($values); + + $autonum = $values[$attr][0]; + $poolDN = $values['dn']; + } + + if ($increment) { + $updatedattr = array($attr=>$autonum+1); + $server->modify($poolDN,$updatedattr); + } + + return $autonum; + + # No other cases allowed. The user has an error in the configuration + default: + system_message(array( + 'title'=>('Invalid AUTO_NUMBER mechanism'), + 'body'=>sprintf('%s (%s)',('Your config file specifies an unknown AUTO_NUMBER search mechanism.'),$server->getValue('auto_number','mechanism')), + 'type'=>'warn')); + + return false; + } +} + +/** + * Given a DN and server ID, this function reads the DN's objectClasses and + * determines which icon best represents the entry. The results of this query + * are cached in a session variable so it is not run every time the tree + * browser changes, just when exposing new DNs that were not displayed + * previously. That means we can afford a little bit of inefficiency here + * in favor of coolness. :) + * + * This function returns a string like "country.png". All icon files are assumed + * to be contained in the /images/ directory of phpLDAPadmin. + * + * Developers are encouraged to add new icons to the images directory and modify + * this function as needed to suit their types of LDAP entries. If the modifications + * are general to an LDAP audience, the phpLDAPadmin team will gladly accept them + * as a patch. + * + * @param string The DN of the entry whose icon you wish to fetch. + * @return string + */ +function get_icon($server_id,$dn,$object_classes=array()) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $server = $_SESSION[APPCONFIG]->getServer($server_id); + + # Fetch and lowercase all the objectClasses in an array + if (! count($object_classes)) + $object_classes = $server->getDNAttrValue($dn,'objectClass'); + + foreach ($object_classes as $index => $value) + $object_classes[$index] = strtolower($value); + + $rdn = get_rdn($dn); + $rdn_parts = explode('=',$rdn,2); + $rdn_value = isset($rdn_parts[0]) ? $rdn_parts[0] : null; + $rdn_attr = isset($rdn_parts[1]) ? $rdn_parts[1] : null; + unset($rdn_parts); + + # Return icon filename based upon objectClass value + if (in_array('sambaaccount',$object_classes) && + '$' == $rdn{ strlen($rdn) - 1 }) + return 'nt_machine.png'; + + if (in_array('sambaaccount',$object_classes)) + return 'nt_user.png'; + + elseif (in_array('person',$object_classes) || + in_array('organizationalperson',$object_classes) || + in_array('inetorgperson',$object_classes) || + in_array('account',$object_classes) || + in_array('posixaccount',$object_classes)) + + return 'ldap-user.png'; + + elseif (in_array('organization',$object_classes)) + return 'ldap-o.png'; + + elseif (in_array('organizationalunit',$object_classes)) + return 'ldap-ou.png'; + + elseif (in_array('organizationalrole',$object_classes)) + return 'ldap-uid.png'; + + elseif (in_array('dcobject',$object_classes) || + in_array('domainrelatedobject',$object_classes) || + in_array('domain',$object_classes) || + in_array('builtindomain',$object_classes)) + + return 'ldap-dc.png'; + + elseif (in_array('alias',$object_classes)) + return 'ldap-alias.png'; + + elseif (in_array('room',$object_classes)) + return 'door.png'; + + elseif (in_array('document',$object_classes)) + return 'document.png'; + + elseif (in_array('country',$object_classes)) { + $tmp = pla_explode_dn($dn); + $cval = explode('=',$tmp[0],2); + $cval = isset($cval[1]) ? $cval[1] : false; + if ($cval && false === strpos($cval,'..') && + file_exists(realpath(sprintf('%s/../countries/%s.png',IMGDIR,strtolower($cval))))) + + return sprintf('../countries/%s.png',strtolower($cval)); + + else + return 'country.png'; + } + + elseif (in_array('jammvirtualdomain',$object_classes)) + return 'mail.png'; + + elseif (in_array('locality',$object_classes)) + return 'locality.png'; + + elseif (in_array('posixgroup',$object_classes) || + in_array('groupofnames',$object_classes) || + in_array('group',$object_classes)) + + return 'ldap-ou.png'; + + elseif (in_array('applicationprocess',$object_classes)) + return 'process.png'; + + elseif (in_array('groupofuniquenames',$object_classes)) + return 'ldap-uniquegroup.png'; + + elseif (in_array('iphost',$object_classes)) + return 'host.png'; + + elseif (in_array('device',$object_classes)) + return 'device.png'; + + elseif (in_array('nlsproductcontainer',$object_classes)) + return 'n.png'; + + elseif (in_array('ndspkikeymaterial',$object_classes)) + return 'lock.png'; + + elseif (in_array('server',$object_classes)) + return 'server-small.png'; + + elseif (in_array('volume',$object_classes)) + return 'hard-drive.png'; + + elseif (in_array('ndscatcatalog',$object_classes)) + return 'catalog.png'; + + elseif (in_array('resource',$object_classes)) + return 'n.png'; + + elseif (in_array('ldapgroup',$object_classes)) + return 'ldap-server.png'; + + elseif (in_array('ldapserver',$object_classes)) + return 'ldap-server.png'; + + elseif (in_array('nisserver',$object_classes)) + return 'ldap-server.png'; + + elseif (in_array('rbscollection',$object_classes)) + return 'ldap-ou.png'; + + elseif (in_array('dfsconfiguration',$object_classes)) + return 'nt_machine.png'; + + elseif (in_array('applicationsettings',$object_classes)) + return 'server-settings.png'; + + elseif (in_array('aspenalias',$object_classes)) + return 'mail.png'; + + elseif (in_array('container',$object_classes)) + return 'folder.png'; + + elseif (in_array('ipnetwork',$object_classes)) + return 'network.png'; + + elseif (in_array('samserver',$object_classes)) + return 'server-small.png'; + + elseif (in_array('lostandfound',$object_classes)) + return 'find.png'; + + elseif (in_array('infrastructureupdate',$object_classes)) + return 'server-small.png'; + + elseif (in_array('filelinktracking',$object_classes)) + return 'files.png'; + + elseif (in_array('automountmap',$object_classes) || + in_array('automount',$object_classes)) + + return 'hard-drive.png'; + + elseif (strpos($rdn_value,'ipsec') === 0 || + strcasecmp($rdn_value,'IP Security') == 0|| + strcasecmp($rdn_value,'MSRADIUSPRIVKEY Secret') == 0 || + strpos($rdn_value,'BCKUPKEY_') === 0) + + return 'lock.png'; + + elseif (strcasecmp($rdn_value,'MicrosoftDNS') == 0) + return 'ldap-dc.png'; + + # Oh well, I don't know what it is. Use a generic icon. + else + return 'ldap-default.png'; +} + +/** + * Appends a servers base to a "sub" dn or returns the base. + * + * @param string The baseDN to be added if the DN is relative + * @param string The DN to be made absolute + * @return string|null Returns null if both base is null and sub_dn is null or empty + */ +function expand_dn_with_base($base,$sub_dn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $empty_str = (is_null($sub_dn) || (($len=strlen(trim($sub_dn))) == 0)); + + if ($empty_str) + return $base; + + # If we have a string which doesn't need a base + elseif ($sub_dn[$len-1] != ',') + return $sub_dn; + + else + return sprintf('%s%s',$sub_dn,$base); +} + +/** + * Used to generate a random salt for crypt-style passwords. Salt strings are used + * to make pre-built hash cracking dictionaries difficult to use as the hash algorithm uses + * not only the user's password but also a randomly generated string. The string is + * stored as the first N characters of the hash for reference of hashing algorithms later. + * + * @param int The length of the salt string to generate. + * @return string The generated salt string. + */ +function random_salt($length) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $possible = '0123456789'. + 'abcdefghijklmnopqrstuvwxyz'. + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'. + './'; + $str = ''; + mt_srand((double)microtime() * 1000000); + + while (strlen($str) < $length) + $str .= substr($possible,(rand()%strlen($possible)),1); + + return $str; +} + +/** + * Given a DN string, this returns the 'RDN' portion of the string. + * For example. given 'cn=Manager,dc=example,dc=com', this function returns + * 'cn=Manager' (it is really the exact opposite of ds_ldap::getContainer()). + * + * @param string The DN whose RDN to return. + * @param boolean If true, include attributes in the RDN string. See http://php.net/ldap_explode_dn for details + * @return string The RDN + */ +function get_rdn($dn,$include_attrs=0,$decode=false) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (is_null($dn)) + return null; + + $rdn = pla_explode_dn($dn,$include_attrs); + if (! count($rdn) || ! isset($rdn[0])) + return $dn; + + if ($decode) + $rdn = dn_unescape($rdn[0]); + else + $rdn = $rdn[0]; + + return $rdn; +} + +/** + * Split an RDN into its attributes + */ +function rdn_explode($rdn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # Setup to work out our RDN. + $rdnarray = explode('\+',$rdn); + + # Capture items that have +, but are not an attribute + foreach ($rdnarray as $index => $val) { + if (preg_match('/=/',$val)) + $validindex = $index; + + if (! preg_match('/=/',$val)) { + $rdnarray[$validindex] .= '+'.$val; + unset($rdnarray[$index]); + } + } + + return $rdnarray; +} + +/** + * Given an LDAP error number, returns a verbose description of the error. + * This function parses ldap_error_codes.txt and looks up the specified + * ldap error number, and returns the verbose message defined in that file. + * + * + * Array ( + * [title] => "Invalid Credentials" + * [description] => "An invalid username and/or password was supplied to the LDAP server." + * ) + * + * + * @param string The hex error number (ie, "0x42") of the LDAP error of interest. + * @return array An associative array contianing the error title and description like so: + */ +function pla_verbose_error($key) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + static $CACHE = array(); + + if (! count($CACHE)) { + $source_file = LIBDIR.'ldap_error_codes.txt'; + + if (! file_exists($source_file) || ! is_readable($source_file) || ! ($f = fopen($source_file,'r'))) + return false; + + $contents = fread($f,filesize($source_file)); + fclose($f); + $entries = array(); + preg_match_all("/0x[A-Fa-f0-9][A-Za-z0-9]\s+[0-9A-Za-z_]+\s+\"[^\"]*\"\n/", + $contents,$entries); + + foreach ($entries[0] as $values) { + $entry = array(); + preg_match("/(0x[A-Za-z0-9][A-Za-z0-9])\s+([0-9A-Za-z_]+)\s+\"([^\"]*)\"/",$values,$entry); + + $hex_code = isset($entry[1]) ? $entry[1] : null; + $title = isset($entry[2]) ? $entry[2] : null; + $desc = isset($entry[3]) ? $entry[3] : null; + $desc = preg_replace('/\s+/',' ',$desc); + $CACHE[$hex_code] = array('title'=>$title,'desc'=>$desc); + } + } + + if (isset($CACHE[$key])) + return $CACHE[$key]; + else + return array('title' => null,'desc' => null); +} + +/** + * Given an LDAP OID number, returns a verbose description of the OID. + * This function parses ldap_supported_oids.txt and looks up the specified + * OID, and returns the verbose message defined in that file. + * + * + * Array ( + * [title] => All Operational Attribute + * [ref] => RFC 3673 + * [desc] => An LDAP extension which clients may use to request the return of all operational attributes. + * ) + * + * + * @param string The OID number (ie, "1.3.6.1.4.1.4203.1.5.1") of the OID of interest. + * @return array An associative array contianing the OID title and description like so: + */ +function support_oid_to_text($key) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + static $CACHE = array(); + + $unknown = array(); + $unknown['desc'] = 'We have no description for this OID, if you know what this OID provides, please let us know. Please also include an RFC reference if it is available.'; + $unknown['title'] = 'Can you help with this OID info?'; + + if (! count($CACHE)) { + $source_file = LIBDIR.'ldap_supported_oids.txt'; + + if (! file_exists($source_file) || ! is_readable($source_file) || ! ($f = fopen($source_file,'r'))) + return false; + + $contents = fread($f,filesize($source_file)); + fclose($f); + $entries = array(); + preg_match_all("/[0-9]\..+\s+\"[^\"]*\"\n/",$contents,$entries); + + foreach ($entries[0] as $values) { + $entry = array(); + preg_match("/([0-9]\.([0-9]+\.)*[0-9]+)(\s+\"([^\"]*)\")?(\s+\"([^\"]*)\")?(\s+\"([^\"]*)\")?/",$values,$entry); + $oid_id = isset($entry[1]) ? $entry[1] : null; + + if ($oid_id) { + $CACHE[$oid_id]['title'] = isset($entry[4]) ? $entry[4] : null; + $CACHE[$oid_id]['ref'] = isset($entry[6]) ? $entry[6] : null; + $desc = isset($entry[8]) ? $entry[8] : sprintf('%s',$unknown['desc'],$unknown['title']); + $CACHE[$oid_id]['desc'] = preg_replace('/\s+/',' ',$desc); + } + } + } + + if (isset($CACHE[$key])) + return $CACHE[$key]; + else + return array( + 'title'=>$key, + 'ref'=>null, + 'desc'=>sprintf('%s',$unknown['desc'],$unknown['title'])); +} + +/** + * Print an LDAP error message + */ +function ldap_error_msg($msg,$errnum) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $body = ''; + + $errnum = ('0x'.str_pad(dechex($errnum),2,0,STR_PAD_LEFT)); + $verbose_error = pla_verbose_error($errnum); + + $body .= sprintf('',_('LDAP said'),$msg); + + if ($verbose_error) { + $body .= sprintf('',_('Error number'),$errnum,$verbose_error['title']); + $body .= sprintf('',_('Description'),$verbose_error['desc']); + + } else { + $body .= sprintf('',_('Error number'),$errnum); + $body .= sprintf('',_('Description'),_('no description available')); + } + + $body .= '
    %s:%s
    %s:%s (%s)
    %s:%s
    %s:%s
    %s:(%s)
    '; + + return $body; +} + +/** + * Draw the jpegPhoto image(s) for an entry wrapped in HTML. Many options are available to + * specify how the images are to be displayed. + * + * Usage Examples: + * + * draw_jpeg_photo(0,'cn=Bob,ou=People,dc=example,dc=com',"jpegPhoto",0,true,array('img_opts'=>"border: 1px; width: 150px")); + * draw_jpeg_photo(1,'cn=Fred,ou=People,dc=example,dc=com',null,1); + * + * + * @param object The Server to get the image from. + * @param string The DN of the entry that contains the jpeg attribute you want to draw. + * @param string The name of the attribute containing the jpeg data (usually 'jpegPhoto'). + * @param int Index of the attribute to draw + * @param boolean If true, draws a button beneath the image titled 'Delete' allowing the user + * to delete the jpeg attribute by calling JavaScript function deleteAttribute() provided + * in the default modification template. + * @param array Specifies optional image and CSS style attributes for the table tag. Supported keys are + * fixed_width, fixed_height, img_opts. + */ +function draw_jpeg_photo($server,$dn,$attr_name='jpegphoto',$index,$draw_delete_buttons=false,$options=array()) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $fixed = array(); + $fixed['width'] = isset($options['fixed_width']) ? $options['fixed_width'] : false; + $fixed['height'] = isset($options['fixed_height']) ? $options['fixed_height'] : false; + + if (is_null($server)) + $jpeg_data = $_SESSION['tmp']; + else + $jpeg_data = $server->getDNAttrValues($dn,null,LDAP_DEREF_NEVER,array($attr_name)); + + if (! isset($jpeg_data[$attr_name][$index]) || ! $jpeg_data[$attr_name][$index]) { + system_message(array( + 'title'=>_('Unable to retrieve image'), + 'body'=>sprintf(_('Could not fetch jpeg data from LDAP server for attribute [%s].'), + $attr_name), + 'type'=>'warn')); + + # This should atleast generate some text that says "Image not available" + printf('Photo',$attr_name); + + return; + } + + $width = 0; + $height = 0; + + if (function_exists('getimagesize')) { + $jpeg_temp_dir = realpath($_SESSION[APPCONFIG]->getValue('jpeg','tmpdir').'/'); + if (! is_writable($jpeg_temp_dir)) + system_message(array( + 'title'=>('Unable to write to jpeg tmp directory'), + 'body'=>('Please set jpeg,tmpdir to a writable directory in the phpLDAPadmin config.php'), + 'type'=>'warn')); + + else { + # We have an image to display + $jpeg_filename = tempnam($jpeg_temp_dir.'/','pla'); + $outjpeg = @file_put_contents($jpeg_filename,$jpeg_data[$attr_name][$index]); + + if (! $outjpeg) { + system_message(array( + 'title'=>('Error writing to jpeg tmp directory'), + 'body'=>sprintf(('Please check jpeg,tmpdir is a writable directory in the phpLDAPadmin config.php'),$jpeg_temp_dir), + 'type'=>'warn')); + + } else { + $jpeg_dimensions = getimagesize($jpeg_filename); + $width = $jpeg_dimensions[0]; + $height = $jpeg_dimensions[1]; + } + + unlink($jpeg_filename); + } + } + + if ($width > 300) { + $scale_factor = 300 / $width; + $img_width = 300; + $img_height = intval($height * $scale_factor); + + } else { + $img_width = $width; + $img_height = $height; + } + + $href = sprintf('view_jpeg_photo.php?dn=%s&index=%s&attr=%s',rawurlencode($dn),$index,$attr_name); + + printf('',number_format($outjpeg),_('bytes'),$width,$height,_('pixels')); + + printf('Photo', + htmlspecialchars($href), + is_null($server) ? 'location=session' : sprintf('server_id=%s',$server->getIndex()), + (! $img_width || $fixed['width'] ? '' : sprintf('width="%s"',$img_width)), + (! $img_height || $fixed['height'] ? '' : sprintf('height="%s"',$img_height)), + (isset($options['img_opts']) ? $options['img_opts'] : '')); + + echo ''; + + if ($draw_delete_buttons) + # + printf('
    %s', + $attr_name,_('Delete photo')); +} + +/** + * Return the list of available password types + * + * @todo Dynamically work this list out so we only present hashes that we can encrypt + */ +function password_types() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return array( + ''=>'clear', + 'crypt'=>'crypt', + 'md5'=>'md5', + 'sha'=>'sha', + 'smd5'=>'smd5', + 'ssha'=>'ssha' + ); +} + +/** + * Hashes a password and returns the hash based on the specified enc_type. + * + * @param string The password to hash in clear text. + * @param string Standard LDAP encryption type which must be one of + * crypt, ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, or clear. + * @return string The hashed password. + */ +function pla_password_hash($password_clear,$enc_type) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $enc_type = strtolower($enc_type); + + switch($enc_type) { + case 'crypt': + if ($_SESSION[APPCONFIG]->getValue('password', 'no_random_crypt_salt')) + $new_value = sprintf('{CRYPT}%s',crypt($password_clear,substr($password_clear,0,2))); + else + $new_value = sprintf('{CRYPT}%s',crypt($password_clear,random_salt(2))); + + break; + + case 'md5': + $new_value = sprintf('{MD5}%s',base64_encode(pack('H*',md5($password_clear)))); + break; + + case 'sha': + $new_value = sprintf('{SHA}%s',base64_encode(pack('H*',sha1($password_clear)))); + break; + + case 'ssha': + mt_srand((double)microtime()*1000000); + $salt = mhash_keygen_s2k(MHASH_SHA1,$password_clear,substr(pack('h*',md5(mt_rand())),0,8),4); + $new_value = sprintf('{SSHA}%s',base64_encode(mhash(MHASH_SHA1,$password_clear.$salt).$salt)); + break; + + case 'smd5': + mt_srand((double)microtime()*1000000); + $salt = mhash_keygen_s2k(MHASH_MD5,$password_clear,substr(pack('h*',md5(mt_rand())),0,8),4); + $new_value = sprintf('{SMD5}%s',base64_encode(mhash(MHASH_MD5,$password_clear.$salt).$salt)); + break; + + case 'clear': + default: + $new_value = $password_clear; + } + + return $new_value; +} + +/** + * Given a clear-text password and a hash, this function determines if the clear-text password + * is the password that was used to generate the hash. This is handy to verify a user's password + * when all that is given is the hash and a "guess". + * @param String The hash. + * @param String The password in clear text to test. + * @return Boolean True if the clear password matches the hash, and false otherwise. + */ +function password_check($cryptedpassword,$plainpassword,$attribute='userpassword') { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (in_array($attribute,array('sambalmpassword','sambantpassword'))) { + $smb = new smbHash; + + switch($attribute) { + case 'sambalmpassword': + if (strcmp($smb->lmhash($plainpassword),$cryptedpassword) == 0) + return true; + else + return false; + + case 'sambantpassword': + if (strcmp($smb->nthash($plainpassword),$cryptedpassword) == 0) + return true; + else + return false; + } + + return false; + } + + if (preg_match('/{([^}]+)}(.*)/',$cryptedpassword,$matches)) { + $cryptedpassword = $matches[2]; + $cypher = strtolower($matches[1]); + + } else { + $cypher = null; + } + + switch($cypher) { + # SSHA crypted passwords + case 'ssha': + # Check php mhash support before using it + if (function_exists('mhash')) { + $hash = base64_decode($cryptedpassword); + + # OpenLDAP uses a 4 byte salt, SunDS uses an 8 byte salt - both from char 20. + $salt = substr($hash,20); + $new_hash = base64_encode(mhash(MHASH_SHA1,$plainpassword.$salt).$salt); + + if (strcmp($cryptedpassword,$new_hash) == 0) + return true; + else + return false; + + } else { + error(('Your PHP install does not have the mhash() function. Cannot do SHA hashes.'),'error','index.php'); + } + + break; + + # Salted MD5 + case 'smd5': + # Check php mhash support before using it + if (function_exists('mhash')) { + $hash = base64_decode($cryptedpassword); + $salt = substr($hash,16); + $new_hash = base64_encode(mhash(MHASH_MD5,$plainpassword.$salt).$salt); + + if (strcmp($cryptedpassword,$new_hash) == 0) + return true; + else + return false; + + } else { + error(('Your PHP install does not have the mhash() function. Cannot do SHA hashes.'),'error','index.php'); + } + + break; + + # SHA crypted passwords + case 'sha': + if (strcasecmp(pla_password_hash($plainpassword,'sha'),'{SHA}'.$cryptedpassword) == 0) + return true; + else + return false; + + break; + + # MD5 crypted passwords + case 'md5': + if( strcasecmp(pla_password_hash($plainpassword,'md5'),'{MD5}'.$cryptedpassword) == 0) + return true; + else + return false; + + break; + + # Crypt passwords + case 'crypt': + # Check if it's blowfish crypt + if (preg_match('/^\\$2+/',$cryptedpassword)) { + + list($version,$rounds,$salt_hash) = explode('$',$cryptedpassword); + + if (crypt($plainpassword,'$'.$version.'$'.$rounds.'$'.$salt_hash) == $cryptedpassword) + return true; + else + return false; + } + + # Check if it's an crypted md5 + elseif (strstr($cryptedpassword,'$1$')) { + + list($dummy,$type,$salt,$hash) = explode('$',$cryptedpassword); + + if (crypt($plainpassword,'$1$'.$salt) == $cryptedpassword) + return true; + else + return false; + } + + # Check if it's extended des crypt + elseif (strstr($cryptedpassword,'_')) { + + if (crypt($plainpassword,$cryptedpassword) == $cryptedpassword) + return true; + else + return false; + } + + # Password is plain crypt + else { + + if (crypt($plainpassword,$cryptedpassword) == $cryptedpassword) + return true; + else + return false; + } + + break; + + # No crypt is given assume plaintext passwords are used + default: + if ($plainpassword == $cryptedpassword) + return true; + else + return false; + } +} + +/** + * Detects password encryption type + * + * Returns crypto string listed in braces. If it is 'crypt' password, + * returns crypto detected in password hash. Function should detect + * md5crypt, blowfish and extended DES crypt. If function fails to detect + * encryption type, it returns NULL. + * @param string Hashed password + * @return string + */ +function get_enc_type($user_password) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # Capture the stuff in the { } to determine if this is crypt, md5, etc. + $enc_type = null; + + if (preg_match('/{([^}]+)}/',$user_password,$enc_type)) + $enc_type = strtolower($enc_type[1]); + else + return null; + + # Handle crypt types + if (strcasecmp($enc_type,'crypt') == 0) { + + # No need to check for standard crypt, because enc_type is already equal to 'crypt'. + if (preg_match('/{[^}]+}\\$1\\$+/',$user_password)) + $enc_type = 'md5crypt'; + + elseif (preg_match('/{[^}]+}\\$2+/',$user_password)) + $enc_type = 'blowfish'; + + elseif (preg_match('/{[^}]+}_+/',$user_password)) + $enc_type = 'ext_des'; + } + + return $enc_type; +} + +/** + * Draws an HTML browse button which, when clicked, pops up a DN chooser dialog. + * @param string The name of the form element to which this chooser + * dialog will publish the user's choice. The form element must be a member + * of a form with the "name" or "id" attribute set in the form tag, and the element + * must also define "name" or "id" for JavaScript to uniquely identify it. + * Example $form_element values may include "creation_form.container" or + * "edit_form.member_uid". See /templates/modification/default.php for example usage. + * @param boolean (optional) If true, the function draws the localized text "choose" to the right of the button. + */ +function draw_chooser_link($form,$element,$include_choose_text=true,$rdn='none') { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $href = sprintf("javascript:dnChooserPopup('%s','%s','%s');",$form,$element,$rdn == 'none' ? '' : rawurlencode($rdn)); + $title = _('Click to popup a dialog to select an entry (DN) graphically'); + + printf('Find',$href,$title,IMGDIR); + + if ($include_choose_text) + printf('%s',$href,$title,_('browse')); +} + +/** + * Explode a DN into an array of its RDN parts. + * + * NOTE: When a multivalue RDN is passed to ldap_explode_dn, the results returns with 'value + value'; + * + * + * Array ( + * [0] => uid=ppratt + * [1] => ou=People + * [2] => dc=example + * [3] => dc=com + * ) + * + * + * @param string The DN to explode. + * @param int (optional) Whether to include attribute names (see http://php.net/ldap_explode_dn for details) + * @return array An array of RDN parts of this format: + */ +function pla_explode_dn($dn,$with_attributes=0) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + global $CACHE; + + if (isset($CACHE['explode'][$dn][$with_attributes])) { + if (DEBUG_ENABLED) + debug_log('Return CACHED result (%s) for (%s)',1,0,__FILE__,__LINE__,__METHOD__, + $CACHE['explode'][$dn][$with_attributes],$dn); + + return $CACHE['explode'][$dn][$with_attributes]; + } + + $dn = addcslashes($dn,'<>+";'); + + # split the dn + $result[0] = ldap_explode_dn(dn_escape($dn),0); + $result[1] = ldap_explode_dn(dn_escape($dn),1); + if (! $result[$with_attributes]) { + if (DEBUG_ENABLED) + debug_log('Returning NULL - NO result.',1,0,__FILE__,__LINE__,__METHOD__); + + return array(); + } + + # Remove our count value that ldap_explode_dn returns us. + unset($result[0]['count']); + unset($result[1]['count']); + + # Record the forward and reverse entries in the cache. + foreach ($result as $key => $value) { + # translate hex code into ascii for display + $result[$key] = dn_unescape($value); + + $CACHE['explode'][implode(',',$result[0])][$key] = $result[$key]; + $CACHE['explode'][implode(',',array_reverse($result[0]))][$key] = array_reverse($result[$key]); + } + + if (DEBUG_ENABLED) + debug_log('Returning (%s)',1,0,__FILE__,__LINE__,__METHOD__,$result[$with_attributes]); + + return $result[$with_attributes]; +} + +/** + * Parse a DN and escape any special characters + */ +function dn_escape($dn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $olddn = $dn; + + # Check if the RDN has a comma and escape it. + while (preg_match('/([^\\\\]),(\s*[^=]*\s*),/',$dn)) + $dn = preg_replace('/([^\\\\]),(\s*[^=]*\s*),/','$1\\\\2C$2,',$dn); + + $dn = preg_replace('/([^\\\\]),(\s*[^=]*\s*)([^,])$/','$1\\\\2C$2$3',$dn); + + if (DEBUG_ENABLED) + debug_log('Returning (%s)',1,0,__FILE__,__LINE__,__METHOD__,$dn); + + return $dn; +} + +/** + * Parse a DN and unescape any special characters + */ +function dn_unescape($dn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (is_array($dn)) { + $a = array(); + + foreach ($dn as $key => $rdn) + $a[$key] = preg_replace_callback('/\\\([0-9A-Fa-f]{2})/', 'convertHexStringToCharCallback', $rdn); + + return $a; + + } else { + return preg_replace_callback('/\\\([0-9A-Fa-f]{2})/', 'convertHexStringToCharCallback', $dn); + } +} + +/** + * Converts a hex encoded string like \12 to the corresponding character. + * + * @param array $hex preg_replace_callback: matching hex string array + * @return String character + */ +function convertHexStringToCharCallback($hex) { + return chr(hexdec($hex[1])); +} + +/** + * Fetches the URL for the specified item. This is a convenience function for + * fetching project HREFs (like bugs) + * + * @param string One of "open_bugs", "add_bug", "donate", or "add_rfe" + * (rfe = request for enhancement) + * @return string The URL to the requested item. + */ +function get_href($type,$extra_info='') { + $sf = 'https://sourceforge.net'; + $pla = 'http://www.ldap-account-manager.org'; + $group_id = '61828'; + $bug_atid = '498546'; + $rfe_atid = '498549'; + $forum_id = 'phpldapadmin-users'; + + switch($type) { + case 'add_bug': + return sprintf('%s/tracker/?func=add&group_id=%s&atid=%s',$sf,$group_id,$bug_atid); + case 'add_rfe': + return sprintf('%s/tracker/?func=add&group_id=%s&atid=%s',$sf,$group_id,$rfe_atid); + case 'credits': + return sprintf('%s/Credits',$pla); + case 'documentation': + return sprintf('%s/Documentation',$pla); + case 'donate': + return sprintf('%s/donate/index.php?group_id=%s',$sf,$group_id); + case 'forum': + return sprintf('%s/mailarchive/forum.php?forum_name=%s',$sf,$forum_id); + case 'logo': + if (! isset($_SERVER['HTTPS']) || strtolower($_SERVER['HTTPS']) != 'on') + $proto = 'http'; + else + $proto = 'https'; + + return isset($_SESSION) && ! $_SESSION[APPCONFIG]->getValue('appearance','remoteurls') ? '' : sprintf('%s://sflogo.sourceforge.net/sflogo.php?group_id=%s&type=10',$proto,$group_id); + case 'sf': + return sprintf('%s/projects/phpldapadmin',$sf); + case 'web': + return sprintf('%s',$pla); + default: + return null; + } +} + +/** + * Returns the current time as a double (including micro-seconds). + * + * @return double The current time in seconds since the beginning of the UNIX epoch (Midnight Jan. 1, 1970) + */ +function utime() { + $time = explode(' ',microtime()); + $usec = (double)$time[0]; + $sec = (double)$time[1]; + return $sec + $usec; +} + +/** + * Converts an array to a query-string with the option to exclude certain variables + * from the returned query string. This is convenient if callers want to convert the + * current GET query string or POST array into a string and replace certain + * variables with their own. + * + * @param array The associate array to convert whose form is such that the keys are the + * names of the variables and the values are said variables' values like this: + * + * Array ( + * [server_id] = 0, + * [dn] = "dc=example,dc=com", + * [attr] = "sn" + * ) + * + * This will produce a string like this: "server_id=0&dn=dc=example,dc=com&attr=sn" + * @param array (optional) An array of variables to exclude in the resulting string + * @return string The string created from the array. + */ +function array_to_query_string($array,$exclude_vars=array()) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (! is_array($array) || ! count($array)) + return ''; + + $str = ''; + $i = 0; + foreach ($array as $name => $val) + if (! in_array($name,$exclude_vars)) + if (is_array($val)) + foreach ($val as $v) { + if ($i++ > 0) + $str .= '&'; + + $str .= sprintf('%s[]=%s',rawurlencode($name),rawurlencode($v)); + } + + else { + if ($i++ > 0) + $str .= '&'; + + $str .= sprintf('%s=%s',rawurlencode($name),rawurlencode($val)); + } + + return $str; +} + +/** + * Reverses a DN such that the top-level RDN is first and the bottom-level RDN is last + * For example: + * + * cn=Brigham,ou=People,dc=example,dc=com + * + * Becomes: + * + * dc=com,dc=example,ou=People,cn=Brigham + * + * This makes it possible to sort lists of DNs such that they are grouped by container. + * + * @param string The DN to reverse + * @return string The reversed DN + * + * @see pla_compare_dns + * @see pla_explode_dns + */ +function pla_reverse_dn($dn) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return (implode(',',array_reverse(pla_explode_dn($dn)))); +} + +/** + * Attribute sorting + */ +function sortAttrs($a,$b) { + if ($a == $b) + return 0; + + return strcasecmp($a->getName(),$b->getName()); +} + +/** + * Reads an array and returns the array values back in lower case + * + * @param array $array The array to convert the values to lowercase. + * @returns array Array with values converted to lowercase. + */ +function arrayLower($array) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (! is_array($array)) + return $array; + + $newarray = array(); + foreach ($array as $key => $value) + $newarray[$key] = strtolower($value); + + return $newarray; +} + +/** + * Gets a DN string using the user-configured tree_display_format string to format it. + */ +function draw_formatted_dn($server,$entry) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $dn = $entry->getDn(); + + $formats = $_SESSION[APPCONFIG]->getValue('appearance','tree_display_format'); + + foreach ($formats as $format) { + $has_none = false; + preg_match_all('/%[a-zA-Z_0-9]+/',$format,$tokens); + $tokens = $tokens[0]; + + if (DEBUG_ENABLED) + debug_log('The tokens are (%s)',1,0,__FILE__,__LINE__,__METHOD__,$tokens); + + foreach ($tokens as $token) { + if (strcasecmp($token,'%dn') == 0) + $format = str_replace($token,pretty_print_dn($dn),$format); + + elseif (strcasecmp($token,'%rdn') == 0) + $format = str_replace($token,pretty_print_dn($entry->getRDN()),$format); + + elseif (strcasecmp($token,'%rdnvalue') == 0) { + $rdn = get_rdn($dn,0,true); + $rdn_value = explode('=',$rdn,2); + $rdn_value = $rdn_value[1]; + $format = str_replace($token,$rdn_value,$format); + + } else { + $attr_name = str_replace('%','',$token); + $attr_values = $server->getDNAttrValue($dn,$attr_name); + + if (is_null($attr_values) || (count($attr_values) <= 0)) { + $display = '<'._('none').'>'; + $has_none = true; + + } elseif (is_array($attr_values)) + $display = implode(', ',$attr_values); + + else + $display = $attr_values; + + $format = str_replace($token,$display,$format); + } + } + + # If this format has all values available, use it. Otherwise, try the next one + if (!$has_none) + return $format; + } + + return $format; +} + +/** + * Server html select list + */ +function server_select_list($selected=null,$logged_on=false,$name='index',$isVisible=true,$js=null) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $count = 0; + $server_menu_html = sprintf(''; + + if ($count > 1) + return $server_menu_html; + + elseif ($count) + return sprintf('%s ', + $selected_server->getName(),$name,$selected_server->getIndex()); + + else + return ''; +} + +/** + * Converts a little-endian hex-number to one, that 'hexdec' can convert + */ +function littleEndian($hex) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $result = ''; + + for ($x=strlen($hex)-2;$x>= 0;$x=$x-2) + $result .= substr($hex,$x,2); + + return $result; +} + +function binSIDtoText($binsid) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $hex_sid = bin2hex($binsid); + $rev = hexdec(substr($hex_sid,0,2)); // Get revision-part of SID + $subcount = hexdec(substr($hex_sid,2,2)); // Get count of sub-auth entries + $auth = hexdec(substr($hex_sid,4,12)); // SECURITY_NT_AUTHORITY + + $result = "$rev-$auth"; + + for ($x=0;$x<$subcount;$x++) { + $subauth[$x] = hexdec(littleEndian(substr($hex_sid,16+($x*8),8))); // get all SECURITY_NT_AUTHORITY + $result .= sprintf('-%s',$subauth[$x]); + } + + return $result; +} + +/** + * Query LDAP and return a hash. + * + * @param string The base DN to use. + * @param string LDAP Query filter. + * @param string LDAP attribute to use as key. + * @param array Attributes to use as values. + * @param boolean Specify false to not sort results by DN + * or true to have the returned array sorted by DN (uses ksort) + * or an array of attribute names to sort by attribute values + * @return array Array of values keyed by $key. + */ +function return_ldap_hash($base,$filter,$key,$attrs,$sort=true) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $server = $_SESSION[APPCONFIG]->getServer(get_request('server_id','REQUEST')); + $key = strtolower($key); + + $query = array(); + $query['base'] = $base; + $query['filter'] = $filter; + $query['attrs'] = $attrs; + $search = $server->query($query,null); + + $results = array(); + + foreach ($search as $dn => $values) + if (isset($values[$key])) + if (is_array($values[$key])) + foreach ($values[$key] as $i => $k) + foreach ($attrs as $attr) { + $lattr = strtolower($attr); + if (isset($values[$lattr])) { + $v = ''; + + if (is_array($values[$lattr]) && isset($values[$lattr][$i])) + $v = $values[$lattr][$i]; + + if (is_string($v) && (strlen($v) > 0)) + $results[$k][$attr] = $v; + } + } + + else + foreach ($attrs as $attr) { + $lattr = strtolower($attr); + if (isset($values[$lattr])) + $results[$values[$key]][$attr] = $values[$lattr]; + } + + if ($sort) + masort($results,is_array($sort) ? implode(',',$sort) : 'dn'); + + return $results; +} + +/** + * This function returns a string automatically generated + * based on the criteria defined in the array $criteria in config.php + */ +function password_generate() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $no_use_similiar = ! $_SESSION[APPCONFIG]->getValue('password','use_similar'); + $lowercase = $_SESSION[APPCONFIG]->getValue('password','lowercase'); + $uppercase = $_SESSION[APPCONFIG]->getValue('password','uppercase'); + $digits = $_SESSION[APPCONFIG]->getValue('password','numbers'); + $punctuation = $_SESSION[APPCONFIG]->getValue('password','punctuation'); + $length = $_SESSION[APPCONFIG]->getValue('password','length'); + + $outarray = array(); + + if ($no_use_similiar) { + $raw_lower = 'a b c d e f g h k m n p q r s t u v w x y z'; + $raw_numbers = '2 3 4 5 6 7 8 9'; + $raw_punc = '# $ % ^ & * ( ) _ - + = . , [ ] { } :'; + + } else { + $raw_lower = 'a b c d e f g h i j k l m n o p q r s t u v w x y z'; + $raw_numbers = '1 2 3 4 5 6 7 8 9 0'; + $raw_punc = '# $ % ^ & * ( ) _ - + = . , [ ] { } : |'; + } + + $llower = explode(' ',$raw_lower); + shuffle($llower); + $lupper = explode(' ',strtoupper($raw_lower)); + shuffle($lupper); + $numbers = explode(' ',$raw_numbers); + shuffle($numbers); + $punc = explode(' ',$raw_punc); + shuffle($punc); + + if ($lowercase > 0) + $outarray = array_merge($outarray,a_array_rand($llower,$lowercase)); + + if ($uppercase > 0) + $outarray = array_merge($outarray,a_array_rand($lupper,$uppercase)); + + if ($digits > 0) + $outarray = array_merge($outarray,a_array_rand($numbers,$digits)); + + if ($punctuation > 0) + $outarray = array_merge($outarray,a_array_rand($punc,$punctuation)); + + $num_spec = $lowercase + $uppercase + $digits + $punctuation; + + if ($num_spec < $length) { + $leftover = array(); + if ($lowercase > 0) + $leftover = array_merge($leftover,$llower); + if ($uppercase > 0) + $leftover = array_merge($leftover,$lupper); + if ($digits > 0) + $leftover = array_merge($leftover,$numbers); + if ($punctuation > 0) + $leftover = array_merge($leftover,$punc); + + if (count($leftover) == 0) + $leftover = array_merge($leftover,$llower,$lupper,$numbers,$punc); + + shuffle($leftover); + $outarray = array_merge($outarray,a_array_rand($leftover,$length-$num_spec)); + } + + shuffle($outarray); + $return = implode('',$outarray); + + if (DEBUG_ENABLED) + debug_log('Returning (%s)',1,0,__FILE__,__LINE__,__METHOD__,$return); + + return $return; +} + +/** + * This function returns an array of $num_req values + * randomly picked from the $input array + * + * @param array Array of values + * @param integer Number of values in returned array + * @return string The padded string + */ +function a_array_rand($input,$num_req) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (count($input) == 0) + return array(); + + if ($num_req < 1) + return array(); + + $return = array(); + if ($num_req > count($input)) { + for($i = 0; $i < $num_req; $i++) { + $idx = array_rand($input,1); + $return[] = $input[$idx]; + } + + } else { + $idxlist = array_rand($input,$num_req); + if ($num_req == 1) + $idxlist = array($idxlist); + + for($i = 0; $i < count($idxlist); $i++) + $return[] = $input[$idxlist[$i]]; + } + + if (DEBUG_ENABLED) + debug_log('Returning (%s)',1,0,__FILE__,__LINE__,__METHOD__,$return); + + return $return; +} + +/** + * This is for Opera. By putting "random junk" in the query string, it thinks + * that it does not have a cached version of the page, and will thus + * fetch the page rather than display the cached version + */ +function random_junk() { + $time = gettimeofday(); + return md5(strtotime('now').$time['usec']); +} + +/** + * Returns a HTML id that can be used in the URL after the #. + * + * @param string The DN to pretty-print. + * @return string + */ +function htmlid($sid,$dn) { + return sprintf('SID%s:%s',$sid,preg_replace('/[\ =,]/','_',$dn)); +} + +/** + * Is PLA configured for AJAX display + */ +function isAjaxEnabled() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (isset($_SESSION[APPCONFIG])) + return ($_SESSION[APPCONFIG]->getValue('appearance','tree') == 'AJAXTree'); + else + return false; +} +?> diff --git a/lam/templates/3rdParty/pla/lib/hooks.php b/lam/templates/3rdParty/pla/lib/hooks.php new file mode 100644 index 00000000..d6ebb38a --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/hooks.php @@ -0,0 +1,201 @@ + and Alc�?ve + * @package phpLDAPadmin + */ + +/** + * Compares two arrays by numerically comparing their 'prority' + * value. Standard `cmp-like' function. + * + * @param a First element to compare. + * @param b Second element to compare. + * + * @return -1 if priority of first element is smaller than second + * element priority. 1 otherwise. + */ +function sort_array_by_priority($a,$b) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',257,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return (($a['priority'] < $b['priority']) ? -1 : 1 ); +} + +/** + * Runs procedures attached to a hook. + * + * @param hook_name Name of hook to run. + * @param args Array of optional arguments set by phpldapadmin. It is normally in a form known by call_user_func_array() : + * + *
    [ 'server_id' => 0,
    + * 'dn' => 'uid=epoussa,ou=tech,o=corp,o=fr' ]
    + * + * @return true if all procedures returned true, false otherwise. + */ +function run_hook($hook_name,$args) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',257,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $hooks = isset($_SESSION[APPCONFIG]) ? $_SESSION[APPCONFIG]->hooks : array(); + + if (! count($hooks) || ! array_key_exists($hook_name,$hooks)) { + if (DEBUG_ENABLED) + debug_log('Returning, HOOK not defined (%s)',257,0,__FILE__,__LINE__,__METHOD__,$hook_name); + + return true; + } + + $rollbacks = array(); + reset($hooks[$hook_name]); + + /* Execution of procedures attached is done using a numeric order + * since all procedures have been attached to the hook with a + * numerical weight. */ + while (list($key,$hook) = each($hooks[$hook_name])) { + if (DEBUG_ENABLED) + debug_log('Calling HOOK Function (%s)(%s)',257,0,__FILE__,__LINE__,__METHOD__, + $hook['hook_function'],$args); + + array_push($rollbacks,$hook['rollback_function']); + + $result = call_user_func_array($hook['hook_function'],$args); + if (DEBUG_ENABLED) + debug_log('Called HOOK Function (%s)',257,0,__FILE__,__LINE__,__METHOD__, + $hook['hook_function']); + + /* If a procedure fails (identified by a false return), its optional rollback is executed with + * the same arguments. After that, all rollbacks from + * previously executed procedures are executed in the reverse + * order. */ + if (! is_null($result) && $result == false) { + if (DEBUG_ENABLED) + debug_log('HOOK Function [%s] return (%s)',257,0,__FILE__,__LINE__,__METHOD__, + $hook['hook_function'],$result); + + while ($rollbacks) { + $rollback = array_pop($rollbacks); + + if ($rollback != false) { + if (DEBUG_ENABLED) + debug_log('HOOK Function Rollback (%s)',257,0,__FILE__,__LINE__,__METHOD__, + $rollback); + + call_user_func_array($rollback,$args); + } + } + + return false; + } + } + + return true; +} + +/** + * Adds a procedure to a hook for later execution. + * + * @param hook_name Name of the hook. + * @param hook_function Name of the php function called upon hook trigger. + * @param priority Numeric priority. Lowest means procedure will be executed before. + * @param rollback_function Name of the php rollback function called upon failure. + */ +function add_hook($hook_name,$hook_function,$priority=0,$rollback_function=null) { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',257,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # First, see if the hook function exists. + if (! function_exists($hook_function)) { + system_message(array( + 'title'=>('Hook function does not exist'), + 'body'=>sprintf('Hook name: %s
    Hook function: %s',$hook_name,$hook_function), + 'type'=>'warn')); + + return; + } + + if (! array_key_exists($hook_name,$_SESSION[APPCONFIG]->hooks)) + $_SESSION[APPCONFIG]->hooks[$hook_name] = array(); + + remove_hook($hook_name,$hook_function,-1,null); + + array_push($_SESSION[APPCONFIG]->hooks[$hook_name],array( + 'priority' => $priority, + 'hook_function' => $hook_function, + 'rollback_function' => $rollback_function)); + + uasort($_SESSION[APPCONFIG]->hooks[$hook_name],'sort_array_by_priority'); +} + +/** + * Removes a procedure from a hook, based on a filter. + * + * @param hook_name Name of the hook. + * @param priority Numeric priority. If set, all procedures of that priority will be removed. + * @param hook_function Name of the procedure function. If set, all procedures that call this function will be removed. + * @param rollback_function Name of the php rollback function called upon failure. If set, all + * procedures that call this function as a rollback will be removed. + */ +function remove_hook($hook_name,$hook_function,$priority,$rollback_function) { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',257,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (array_key_exists($hook_name,$_SESSION[APPCONFIG]->hooks)) { + reset($_SESSION[APPCONFIG]->hooks[$hook_name]); + + while (list($key,$hook) = each($_SESSION[APPCONFIG]->hooks[$hook_name])) { + if (($priority >= 0 && $priority == $hook['priority']) || + ($hook_function && $hook_function == $hook['hook_function']) || + ($rollback_function && $rollback_function == $hook['rollback_function'])) { + + unset($_SESSION[APPCONFIG]->hooks[$hook_name][$key]); + } + } + } +} + +/** + * Removes all procedures from a hook. + * + * @param hook_name Name of hook to clear. + */ +function clear_hooks($hook_name) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',257,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (array_key_exists($hook_name,$_SESSION[APPCONFIG]->hooks)) + unset($_SESSION[APPCONFIG]->hooks[$hook_name]); +} + +$hooks = array(); + +# Evaluating user-made hooks +if (is_dir(HOOKSDIR.'functions')) { + $hooks['dir'] = dir(HOOKSDIR.'functions'); + + while ($hooks['file'] = $hooks['dir']->read()) { + $script = sprintf('%s/%s/%s',HOOKSDIR,'functions',$hooks['file']); + + if (is_file($script) && preg_match('/php[0-9]?$/',$hooks['file'])) + require_once $script; + } + + $hooks['dir']->close(); +} +?> diff --git a/lam/templates/3rdParty/pla/lib/import_functions.php b/lam/templates/3rdParty/pla/lib/import_functions.php new file mode 100644 index 00000000..3770cb39 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/import_functions.php @@ -0,0 +1,604 @@ +server_id = $server_id; + $this->template_id = $template_id; + + $this->accept(); + } + + static function types() { + $type = array(); + + $details = ImportLDIF::getType(); + $type[$details['type']] = $details; + + return $type; + } + + private function accept() { + switch($this->template_id) { + case 'LDIF': + $this->template = new ImportLDIF($this->server_id); + break; + + default: + die(); + } + + $this->template->accept(); + } + + public function getTemplate() { + return $this->template; + } +} + +/** + * Import Class + * + * This abstract classes provides all the common methods and variables for the + * custom import classes. + * + * @package phpLDAPadmin + * @subpackage Import + */ +abstract class Import { + protected $server_id = null; + protected $input = null; + protected $source = array(); + + public function __construct($server_id) { + $this->server_id = $server_id; + } + + public function accept() { + if (get_request('ldif','REQUEST')) { + $this->input = explode("\n",get_request('ldif','REQUEST')); + $this->source['name'] = 'STDIN'; + $this->source['size'] = strlen(get_request('ldif','REQUEST')); + + } elseif (isset($_FILES['ldif_file']) && is_array($_FILES['ldif_file']) && ! $_FILES['ldif_file']['error']) { + $input = file_get_contents($_FILES['ldif_file']['tmp_name']); + $this->input = preg_split("/\n|\r\n|\r/",$input); + $this->source['name'] = $_FILES['ldif_file']['name']; + $this->source['size'] = $_FILES['ldif_file']['size']; + + } else { + system_message(array( + 'title'=>_('No import input'), + 'body'=>_('You must either upload a file or provide an import in the text box.'), + 'type'=>'error'),sprintf('cmd.php?cmd=import_form&server_id=%s',get_request('server_id','REQUEST'))); + + die(); + } + } + + public function getSource($attr) { + if (isset($this->source[$attr])) + return $this->source[$attr]; + else + return null; + } + + # @todo integrate hooks + public function LDAPimport() { + $template = $this->getTemplate(); + $server = $this->getServer(); + + switch ($template->getType()) { + case 'add': + return $server->add($template->getDN(),$template->getLDAPadd()); + + case 'modify': + return $server->modify($template->getDN(),$template->getLDAPmodify()); + + case 'moddn': + case 'modrdn': + return $server->rename($template->getDN(),$template->modrdn['newrdn'],$template->modrdn['newsuperior'],$template->modrdn['deleteoldrdn']); + + default: + debug_dump_backtrace(sprintf('Unknown template type %s',$template->getType()),1); + } + + return true; + } +} + +/** + * Import entries from LDIF + * + * The LDIF spec is described by RFC2849 + * http://www.ietf.org/rfc/rfc2849.txt + * + * @package phpLDAPadmin + * @subpackage Import + */ +class ImportLDIF extends Import { + private $_currentLineNumber = 0; + private $_currentLine = ''; + private $template; + public $error = array(); + + static public function getType() { + return array('type'=>'LDIF','description' => _('LDIF import'),'extension'=>'ldif'); + } + + protected function getTemplate() { + return $this->template; + } + + protected function getServer() { + return $_SESSION[APPCONFIG]->getServer($this->server_id); + } + + public function readEntry() { + static $haveVersion = false; + + if ($lines = $this->nextLines()) { + + # If we have a version line. + if (! $haveVersion && preg_match('/^version:/',$lines[0])) { + list($text,$version) = $this->getAttrValue(array_shift($lines)); + + if ($version != 1) + return $this->error(sprintf('%s %s',_('LDIF import only supports version 1'),$version),$lines); + + $haveVersion = true; + $lines = $this->nextLines(); + } + + $server = $this->getServer(); + + # The first line should be the DN + if (preg_match('/^dn:/',$lines[0])) { + list($text,$dn) = $this->getAttrValue(array_shift($lines)); + + # The second line should be our changetype + if (preg_match('/^changetype:[ ]*(delete|add|modrdn|moddn|modify)/i',$lines[0])) { + $attrvalue = $this->getAttrValue($lines[0]); + $changetype = $attrvalue[1]; + array_shift($lines); + + } else + $changetype = 'add'; + + $this->template = new Template($this->server_id,null,null,$changetype); + + switch ($changetype) { + case 'add': + $rdn = get_rdn($dn); + $container = $server->getContainer($dn); + + $this->template->setContainer($container); + $this->template->accept(); + + $this->getAddDetails($lines); + $this->template->setRDNAttributes($rdn); + + return $this->template; + + break; + + case 'modify': + if (! $server->dnExists($dn)) + return $this->error(sprintf('%s %s',_('DN does not exist'),$dn),$lines); + + $this->template->setDN($dn); + $this->template->accept(); + + return $this->getModifyDetails($lines); + + break; + + case 'moddn': + case 'modrdn': + if (! $server->dnExists($dn)) + return $this->error(sprintf('%s %s',_('DN does not exist'),$dn),$lines); + + $this->template->setDN($dn); + $this->template->accept(); + + return $this->getModRDNAttributes($lines); + + break; + + default: + if (! $server->dnExists($dn)) + return $this->error(_('Unkown change type'),$lines); + } + + } else + return $this->error(_('A valid dn line is required'),$lines); + + } else + return false; + } + + /** + * Get the Attribute and Decoded Value + */ + private function getAttrValue($line) { + list($attr,$value) = explode(':',$line,2); + + # Get the DN + if (substr($value,0,1) == ':') + $value = base64_decode(trim(substr($value,1))); + else + $value = trim($value); + + return array($attr,$value); + } + + /** + * Get the lines of the next entry + * + * @return The lines (unfolded) of the next entry + */ + private function nextLines() { + $current = array(); + $endEntryFound = false; + + if ($this->hasMoreEntries() && ! $this->eof()) { + # The first line is the DN one + $current[0]= trim($this->_currentLine); + + # While we end on a blank line, fetch the attribute lines + $count = 0; + while (! $this->eof() && ! $endEntryFound) { + # Fetch the next line + $this->nextLine(); + + /* If the next line begin with a space, we append it to the current row + * else we push it into the array (unwrap)*/ + if ($this->isWrappedLine()) + $current[$count] .= trim($this->_currentLine); + elseif ($this->isCommentLine()) {} + # Do nothing + elseif (! $this->isBlankLine()) + $current[++$count] = trim($this->_currentLine); + else + $endEntryFound = true; + } + + # Return the LDIF entry array + return $current; + + } else + return array(); + } + + /** + * Private method to check if there is more entries in the input. + * + * @return boolean true if an entry was found, false otherwise. + */ + private function hasMoreEntries() { + $entry_found = false; + + while (! $this->eof() && ! $entry_found) { + # If it's a comment or blank line, switch to the next line + if ($this->isCommentLine() || $this->isBlankLine()) { + # Do nothing + $this->nextLine(); + + } else { + $this->_currentDnLine = $this->_currentLine; + $this->dnLineNumber = $this->_currentLineNumber; + $entry_found = true; + } + } + + return $entry_found; + } + + /** + * Helper method to switch to the next line + */ + private function nextLine() { + $this->_currentLineNumber++; + $this->_currentLine = array_shift($this->input); + } + + /** + * Check if it's a comment line. + * + * @return boolean true if it's a comment line,false otherwise + */ + private function isCommentLine() { + return substr(trim($this->_currentLine),0,1) == '#' ? true : false; + } + + /** + * Check if it's a wrapped line. + * + * @return boolean true if it's a wrapped line,false otherwise + */ + private function isWrappedLine() { + return substr($this->_currentLine,0,1) == ' ' ? true : false; + } + + /** + * Check if is the current line is a blank line. + * + * @return boolean if it is a blank line,false otherwise. + */ + private function isBlankLine() { + return(trim($this->_currentLine) == '') ? true : false; + } + + /** + * Returns true if we reached the end of the input. + * + * @return boolean true if it's the end of file, false otherwise. + */ + public function eof() { + return count($this->input) > 0 ? false : true; + } + + private function error($msg,$data) { + $this->error['message'] = sprintf('%s [%s]',$msg,$this->template ? $this->template->getDN() : ''); + $this->error['line'] = $this->_currentLineNumber; + $this->error['data'] = $data; + $this->error['changetype'] = $this->template ? $this->template->getType() : 'Not set'; + + return false; + } + + /** + * Method to retrieve the attribute value of a ldif line, + * and get the base 64 decoded value if it is encoded + */ + private function getAttributeValue($value) { + $return = ''; + + if (substr($value,0,1) == '<') { + $url = trim(substr($value,1)); + + if (preg_match('^file://',$url)) { + $filename = substr(trim($url),7); + + if ($fh = @fopen($filename,'rb')) { + if (! $return = @fread($fh,filesize($filename))) + return $this->error(_('Unable to read file.'),$value); + + @fclose($fh); + + } else + return $this->error(_('Unable to read file.'),$value); + + } else + return $this->error(_('The url attribute value should begin with file://.'),$value); + + # It's a string + } else + $return = $value; + + return trim($return); + } + + /** + * Build the attributes array when the change type is add. + */ + private function getAddDetails($lines) { + foreach ($lines as $line) { + list($attr,$value) = $this->getAttrValue($line); + + if (is_null($attribute = $this->template->getAttribute($attr))) { + $attribute = $this->template->addAttribute($attr,array('values'=>array($value))); + $attribute->justModified(); + + } else + if ($attribute->hasBeenModified()) + $attribute->addValue($value); + else + $attribute->setValue(array($value)); + } + } + + /** + * Build the attributes array for the entry when the change type is modify + */ + private function getModifyDetails($lines) { + if (! count($lines)) + return $this->error(_('Missing attributes for'),$lines); + + # While the array is not empty + while (count($lines)) { + $processline = false; + $deleteattr = false; + + # Get the current line with the action + $currentLine = array_shift($lines); + $attrvalue = $this->getAttrValue($currentLine); + $action_attribute = $attrvalue[0]; + $action_attribute_value = $attrvalue[1]; + + if (! in_array($action_attribute,array('add','delete','replace'))) + return $this->error(_('Missing modify command add, delete or replace'),array_merge(array($currentLine),$lines)); + + $processline = true; + switch ($action_attribute) { + case 'add': + + break; + + case 'delete': + $attribute = $this->template->getAttribute($action_attribute_value); + + if (is_null($attribute)) + return $this->error(sprintf('%s %s',_('Attempting to delete a non existent attribute'),$action_attribute_value), + array_merge(array($currentLine),$lines)); + + $deleteattr = true; + + break; + + case 'replace': + $attribute = $this->template->getAttribute($action_attribute_value); + + if (is_null($attribute)) + return $this->error(sprintf('%s %s',_('Attempting to replace a non existant attribute'),$action_attribute_value), + array_merge(array($currentLine),$lines)); + + break; + + default: + debug_dump_backtrace(sprintf('Unknown action %s',$action_attribute),1); + } + + # Fetch the attribute for the following line + $currentLine = array_shift($lines); + + while ($processline && trim($currentLine) && (trim($currentLine) != '-')) { + $processline = false; + + # If there is a valid line + if (preg_match('/:/',$currentLine)) { + $attrvalue = $this->getAttrValue($currentLine); + $attr = $attrvalue[0]; + $attribute_value_part = $attrvalue[1]; + + # Check that it correspond to the one specified before + if ($attr == $action_attribute_value) { + # Get the value part of the attribute + $attribute_value = $this->getAttributeValue($attribute_value_part); + + $attribute = $this->template->getAttribute($attr); + + # This should be a add/replace operation + switch ($action_attribute) { + case 'add': + if (is_null($attribute)) + $attribute = $this->template->addAttribute($attr,array('values'=>array($attribute_value_part))); + else + $attribute->addValue($attribute_value_part,-1); + + $attribute->justModified(); + + break; + + case 'delete': + $deleteattr = false; + + if ($key = array_search($attribute_value_part,$attribute->getValues())) + $attribute->delValue($key); + else + return $this->error(sprintf('%s %s',_('Value to delete does not exist in DN'),$attribute_value_part), + array_merge(array($currentLine),$lines)); + + + break; + + case 'replace': + if ($attribute->hasBeenModified()) + $attribute->addValue($attribute_value_part,-1); + else + $attribute->setValue(array($attribute_value_part)); + + break; + + default: + debug_dump_backtrace(sprintf('Unexpected operation %s',$action_attribute)); + } + + } else + return $this->error(sprintf(_('The attribute to modify doesn\'t match the one specified by %s.'),$action_attribute), + array_merge(array($currentLine),$lines)); + + } else + return $this->error(sprintf('%s %s',_('Attribute not valid'),$currentLine), + array_merge(array($currentLine),$lines)); + + $currentLine = array_shift($lines); + if (trim($currentLine)) + $processline = true; + } + + if ($action_attribute == 'delete' && $deleteattr) + $attribute->setValue(array()); + + } + + return $this->template; + } + + /** + * Build the attributes for the entry when the change type is modrdn + */ + function getModRDNAttributes($lines) { + $server = $this->getServer(); + $attrs = array(); + + # MODRDN MODDN should only be 2 or 3 lines. + if (count($lines) != 2 && count($lines) !=3) + return $this->error(_('Invalid entry'),$lines); + + else { + $currentLine = array_shift($lines); + + # First we need to check if there is an new rdn specified + if (preg_match('/^newrdn:(:?)/',$currentLine)) { + + $attrvalue = $this->getAttrValue($currentLine); + $attrs['newrdn'] = $attrvalue[1]; + + $currentLine = array_shift($lines); + + if (preg_match('/^deleteoldrdn:[ ]*(0|1)/',$currentLine)) { + $attrvalue = $this->getAttrValue($currentLine); + $attrs['deleteoldrdn'] = $attrvalue[1]; + + # Switch to the possible new superior attribute + if (count($lines)) { + $currentLine = array_shift($lines); + + # then the possible new superior attribute + if (preg_match('/^newsuperior:/',$currentLine)) { + $attrvalue = $this->getAttrValue($currentLine); + $attrs['newsuperior'] = $attrvalue[1]; + + } else + return $this->error(_('A valid newsuperior attribute should be specified'),$lines); + + } else + $attrs['newsuperior'] = $server->getContainer($this->template->getDN()); + + } else + return $this->error(_('A valid deleteoldrdn attribute should be specified'),$lines); + + } else + return $this->error(_('A valid newrdn attribute should be specified'),$lines); + } + + # Well do something out of the ordinary here, since our template doesnt handle mod[r]dn yet. + $this->template->modrdn = $attrs; + return $this->template; + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/ldap_error_codes.txt b/lam/templates/3rdParty/pla/lib/ldap_error_codes.txt new file mode 100644 index 00000000..8d4a2cce --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/ldap_error_codes.txt @@ -0,0 +1,94 @@ +0x00 LDAP_SUCCESS "The operation completed successfully." +0x01 LDAP_OPERATIONS_ERROR "An operations error occurred. This is + typically the result of an internal error on your LDAP server." +0x02 LDAP_PROTOCOL_ERROR "A protocol violation was detected." +0x03 LDAP_TIMELIMIT_EXCEEDED "The operation timed out waiting to complete." +0x04 LDAP_SIZELIMIT_EXCEEDED "The LDAP server refused to serve such a large result set." +0x05 LDAP_COMPARE_FALSE "A compare operation returned false." +0x06 LDAP_COMPARE_TRUE "A compare operation returned true." +0x07 LDAP_AUTH_METHOD_NOT_SUPPORTED "The authentication method you specified is not supported by + the LDAP server." +0x08 LDAP_STRONG_AUTH_REQUIRED "This LDAP server requires strong (encrypted) authentication, + not clear text." +0x09 LDAP_PARTIAL_RESULTS "The result set received is a partial result set." +0x0a LDAP_REFERRAL "" +0x0b LDAP_ADMINLIMIT_EXCEEDED "" +0x0c LDAP_UNAVAILABLE_CRITICAL_EXTENSION "" +0x0d LDAP_CONFIDENTIALITY_REQUIRED "" +0x0e LDAP_SASL_BIND_INPROGRESS "" +0x10 LDAP_NO_SUCH_ATTRIBUTE "That entry does not contain the attribute specified." +0x11 LDAP_UNDEFINED_TYPE "The attribute type specified is invalid." +0x12 LDAP_INAPPROPRIATE_MATCHING "This usually means that your LDAP server has not defined an equality rule + for the attribute you are trying to alter. This is not phpLDAPadmin's fault as the + LDAP server has refused to perform the operation (as well it should if there is + no equality rule for it to use for the operation). This generally applies when + adding a new value to a binary attribute, or removing a single value from a + multi-valued binary attribute." +0x13 LDAP_CONSTRAINT_VIOLATION "Some constraint would be violated by performing the action. This can happen when + you try to add a second value to a single-valued attribute, for example." +0x14 LDAP_TYPE_OR_VALUE_EXISTS "An attribute type or attribute value + specified already exists in the entry" +0x15 LDAP_INVALID_SYNTAX "An invalid attribute value was specified." +0x20 LDAP_NO_SUCH_OBJECT "That object does not exist." +0x21 LDAP_ALIAS_PROBLEM "An alias in the directory points to a + non-existent entry." +0x22 LDAP_INVALID_DN_SYNTAX "You used an invalid syntax in the specified DN." +0x23 LDAP_IS_LEAF "The object specified is a leaf" +0x24 LDAP_ALIAS_DEREF_PROBLEM "A problem was encountereed when + dereferencing an alias" +0x30 LDAP_INAPPROPRIATE_AUTH "Inappropriate authentication was + specified (e.g. LDAP_AUTH_SIMPLE was + specified and the entry does not have + a userPassword attribute)." +0x31 LDAP_INVALID_CREDENTIALS "Incorrect login DN and/or password." +0x32 LDAP_INSUFFICIENT_ACCESS "You do not have sufficient permissions + to perform that operation." +0x33 LDAP_BUSY "The LDAP server is busy." +0x34 LDAP_UNAVAILABLE "The LDAP server is unavailable." +0x35 LDAP_UNWILLING_TO_PERFORM "The LDAP server refused to perform the operation." +0x36 LDAP_LOOP_DETECT "A loop was detected." +0x3C LDAP_SORT_CONTROL_MISSING "" +0x3D LDAP_INDEX_RANGE_ERROR "" +0x40 LDAP_NAMING_VIOLATION "A naming violation occurred. This usually + means that you tried to change the value of an attribute that is used in the + DN. For example, if you change the 'cn' value of an entry whose DN is 'cn=Bob + Jones,dc=example,dc=com', you must also rename the entry to reflect the + change." +0x41 LDAP_OBJECT_CLASS_VIOLATION "You tried to perform an operation that would cause an undefined attribute + to exist or that would remove a required attribute, given the current list + of ObjectClasses. This can also occur if you do not + specify a structural objectClass when creating an entry, or if you specify + more than one structural objectClass." +0x42 LDAP_NOT_ALLOWED_ON_NONLEAF "The entry you tried to operate on has children. Usually this means you + tried to delete or rename the entry, which you cannot do to an entry + with children." +0x43 LDAP_NOT_ALLOWED_ON_RDN "You cannot preform that operation on a the relative distinguished name + (RDN) of an object." +0x44 LDAP_ALREADY_EXISTS "The object already exists. Usually you are trying to create a new object + on top of an existing one." +0x45 LDAP_NO_OBJECT_CLASS_MODS "ObjectClass modifications are not allowed." +0x46 LDAP_RESULTS_TOO_LARGE "" +0x47 LDAP_AFFECTS_MULTIPLE_DSAS "" +0x50 LDAP_OTHER "" +0x51 LDAP_SERVER_DOWN "The LDAP server is down." +0x52 LDAP_LOCAL_ERROR "" +0x53 LDAP_ENCODING_ERROR "" +0x54 LDAP_DECODING_ERROR "" +0x55 LDAP_TIMEOUT "" +0x56 LDAP_AUTH_UNKNOWN "" +0x57 LDAP_FILTER_ERROR "The LDAP search filter specified is inavlid." +0x58 LDAP_USER_CANCELLED "The user cancelled the LDAP operation." +0x59 LDAP_PARAM_ERROR "An ldap routine was called with a bad + parameter." +0x5a LDAP_NO_MEMORY "A memory allocation (e.g., malloc(3) + or other dynamic memory allocator) + call failed in an ldap library rou- + tine." +0x5b LDAP_CONNECT_ERROR "" +0x5c LDAP_NOT_SUPPORTED "The requested operation is not supported by the LDAP server." +0x5d LDAP_CONTROL_NOT_FOUND "" +0x5e LDAP_NO_RESULTS_RETURNED "The search came back empty." +0x5f LDAP_MORE_RESULTS_TO_RETURN "The LDAP server has more results that it would like to return." +0x60 LDAP_CLIENT_LOOP "" +0x61 LDAP_REFERRAL_LIMIT_EXCEEDED "This means that a search was performed that required the LDAP + server to follow a chain of referrals that was too lengthy." diff --git a/lam/templates/3rdParty/pla/lib/ldap_supported_oids.txt b/lam/templates/3rdParty/pla/lib/ldap_supported_oids.txt new file mode 100644 index 00000000..9fc5a661 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/ldap_supported_oids.txt @@ -0,0 +1,187 @@ +# If you find some reliable and more meaningful descriptions to this OIDS, +# then please let the phpldapadmin development know so that this file can be +# more descriptive. + +1.2.826.0.1.334810.2.3 "LDAP_CONTROL_VALUESRETURNFILTER" +1.2.826.0.1.3344810.2.3 "Matched Values Control" "RFC 3876" "Describes a control for the LDAP v3 that is used to return a subset of attribute values from an entry. Specifically, only those values that match a 'values return' filter. Without support for this control, a client must retrieve all of an attribute's values and search for specific values locally." +1.2.826.0.1050.11.1.1 "Read-Only LDAP Server" +1.2.826.0.1050.11.2.1 "Read-Write LDAP Server" +1.2.826.0.1050.11.3.1 "White Pages Application LDAP Server" +1.2.826.0.1050.11.4.1 "Certificate Application LDAP Server" +1.2.826.0.1050.11.5.1 "Single Sign On Application LDAP Server" +1.2.840.113549.6.0.0 "Signed Operation" +1.2.840.113549.6.0.1 "Demand Signed Result" +1.2.840.113549.6.0.2 "Signed Result RFC 2649" +1.2.840.113556.1.4.319 "Simple Paged Results Manipulation Control Extension" "RFC 2696" "This control extension allows a client to control the rate at which an LDAP server returns the results of an LDAP search operation. This control may be useful when the LDAP client has limited resources and may not be able to process the entire result set from a given LDAP query, or when the LDAP client is connected over a low-bandwidth connection." +1.2.840.113556.1.4.417 "Show deleted control" "" "The LDAP_SERVER_SHOW_DELETED_OID control is used with an extended LDAP search function to specify that the search results include any deleted objects that match the search filter." +1.2.840.113556.1.4.473 "LDAP Server Sort Result extension" "draft-ietf-ldapext-sorting-01" "This control is included in the searchRequest message as part of the controls field of the LDAPMessage." +1.2.840.113556.1.4.474 "LDAP Server Sort Result extension response control" "" "This control is included in the searchResultDone message as part of the controls field of the LDAPMessage" +1.2.840.113556.1.4.521 "Cross-domain move control" "" "The LDAP_SERVER_CROSSDOM_MOVE_TARGET_OID control is used with an extended LDAP rename function to move an LDAP object from one domain to another. The control specifies the DNS hostname of the domain controller in the destination domain." +1.2.840.113556.1.4.528 "Server search notification control" "" "The LDAP_SERVER_NOTIFICATION_OID control is used with an extended LDAP asynchronous search function to register the client to be notified when changes are made to an object in Active Directory." +1.2.840.113556.1.4.529 "Extended DN control" "" "The LDAP_SERVER_EXTENDED_DN_OID control is used with an extended LDAP search function to request an extended form of an Active Directory object distinguished name. The extended form includes a string representation of the object objectGUID property. For security principal objects such as users, groups, and computers, the extended form also includes a string representation of the object objectSID property." +1.2.840.113556.1.4.616 "LDAP_CONTROL_REFERRALS" +1.2.840.113556.1.4.619 "Lazy commit control" "" "The LDAP_SERVER_LAZY_COMMIT_OID control is used to instruct the server to return the results of a DS modification command, such as add, delete, or replace, after it has been completed in memory, but before it has been committed to disk. The server can then return results quickly, and save the data to disk without holding the client." +1.2.840.113556.1.4.800 "LDAP_CAP_ACTIVE_DIRECTORY_OID" "" "This is an Actrive Directory Server (Win2k and later)." +1.2.840.113556.1.4.801 "Security descriptor flags control" "" "The LDAP_SERVER_SD_FLAGS_OID control is used to pass flags to the server to control various security descriptor results." +1.2.840.113556.1.4.802 "Attribute Range Option" "" "Server supports the Range property enabling clients to incremental retrieve values from multivalue attributes." +1.2.840.113556.1.4.803 "LDAP_MATCHING_RULE_BIT_AND" +1.2.840.113556.1.4.804 "LDAP_MATCHING_RULE_BIT_OR" +1.2.840.113556.1.4.805 "Tree Delete" "" "The LDAP_SERVER_TREE_DELETE_OID control is used with an extended LDAP delete function to delete an entire subtree in the directory." +1.2.840.113556.1.4.841 "Directory synchronization control" "" "The LDAP_SERVER_DIRSYNC_OID control enables an application to search the directory for objects changed from a previous state. It is also used with the extended LDAP search functions such as ldap_search_ext." +1.2.840.113556.1.4.906 "Microsoft Large Integer" +1.2.840.113556.1.4.970 "Get stats control (Stateless)" +1.2.840.113556.1.4.1302 "Microsoft OID used with DEN Attributes" +1.2.840.113556.1.4.1338 "Verify name control" "" "The LDAP_SERVER_VERIFY_NAME_OID control is used with extended LDAP add and modify requests to instruct the DC accepting the update which DC it should verify with, the existence of any DN attribute values." +1.2.840.113556.1.4.1339 "LDAP_SERVER_DOMAIN_SCOPE_OID" "" "The LDAP_SERVER_DOMAIN_SCOPE_OID control is used to instruct the LDAP server not to generate any referrals when completing a request. This control also limits any search using it to a single naming context." +1.2.840.113556.1.4.1340 "Search options control" "" " The LDAP_SERVER_SEARCH_OPTIONS_OID control is used to pass flags to the server to control various search behaviors." +1.2.840.113556.1.4.1413 "LDAP ease modify restrictions" "" "Allows an LDAP modify to work under less restrictive conditions. Without it, a delete will fail if an attribute does not exist, and an add will fail if an attribute already exists." +1.2.840.113556.1.4.1504 "Attribute scoped query control" "" "The LDAP_SERVER_ASQ_OID control is used with an extended LDAP search function to force the query to be based on a specific DN-valued attribute. Only one source attribute can be specified with this control and the search request is limited to base object scoped queries." +1.2.840.113556.1.4.1670 "LDAP_CAP_ACTIVE_DIRECTORY_V51_OID" "" "This server is a Whistler Active Directory server (Win2k3 and later)." +1.2.840.113556.1.4.1781 "Fast concurrent bind extended operation" "" "The Microsoft LDAP API will send an extended request with this name to Active Directory to request that all binds on this connection be processed as 'fast' binds." +1.2.840.113556.1.4.1791 "LDAP_CAP_ACTIVE_DIRECTORY_LDAP_INTEG_OID" "" "LDAP server is capable of doing signing and sealing on an NTLM authenticated connection, and that the server is capable of performing subsequent binds on a signed or sealed connection." +1.2.840.113556.1.4.1852 "LDAP_SERVER_QUOTA_CONTROL_OID" "" "The LDAP_SERVER_QUOTA_CONTROL_OID control is used to pass the SID of a security principal, whose quota is being queried, to the server in a LDAP search operation." +1.3.6.1.1.7.1 "LCUP Sync Request Control. RFC 3928 control" +1.3.6.1.1.7.2 "LCUP Sync Update Control. RFC 3928 control" +1.3.6.1.1.7.3 "LCUP Sync Done Control. RFC 3928 control" +1.3.6.1.1.8 "Cancel Operation. RFC 3909 extension" +1.3.6.1.1.12 "Assertion Control" "RFC 4511" "The assertion control allows the client to specify a condition that must be true for the operation to be processed normally." +1.3.6.1.1.13.1 "Pre-Read Controls" "" "The Pre-Read request control, indicates that a copy of the entry before application of update is to be returned." +1.3.6.1.1.13.2 "Post-Read Controls" "" "The Pre-Read request control, indicates that a copy of the entry before application of update is to be returned." +1.3.6.1.1.14 "Modify-Increment Extension" "RFC 4525" "An extension to the Lightweight Directory Access Protocol (LDAP) Modify operation to support an increment capability." +1.3.6.1.4.1.42.2.27.8.5.1 "passwordPolicyRequest" +1.3.6.1.4.1.42.2.27.9.5.2 "GetEffectiveRights control" "" "May be used to determine what operations a given user may perform on a specified entry." +1.3.6.1.4.1.1466.101.119.1 "Dynamic Directory Services Refresh Request" "RFC 2589" +1.3.6.1.4.1.1466.20036 "LDAP_NOTICE_OF_DISCONNECTION" +1.3.6.1.4.1.1466.20037 "Transport Layer Security Extension" "RFC 2830" "This operation provides for TLS establishment in an LDAP association and is defined in terms of an LDAP extended request." +1.3.6.1.4.1.1466.29539.1 "LDAP_CONTROL_ATTR_SIZELIMIT" +1.3.6.1.4.1.1466.29539.2 "LDAP_CONTROL_NO_COPY" +1.3.6.1.4.1.1466.29539.3 "LDAP_CONTROL_PARTIAL_COPY" +1.3.6.1.4.1.1466.29539.5 "LDAP_CONTROL_NO_CHAINING" +1.3.6.1.4.1.1466.29539.7 "LDAP_CONTROL_ALIAS_ON_UPDATE" +1.3.6.1.4.1.1466.29539.10 "LDAP_CONTROL_TRIGGER" +1.3.6.1.4.1.1466.29539.12 "nsTransmittedControl" +1.3.6.1.4.1.4203.1.5.1 "All Operational Attribute" "RFC 3673" "An LDAP extension which clients may use to request the return of all operational attributes." +1.3.6.1.4.1.4203.1.5.2 "Requesting Attributes by Object Class" "draft-zeilenga-ldap-adlist-10.txt" "Extends LDAP to support a mechanism that LDAP clients may use to request the return of all attributes of an object class." +1.3.6.1.4.1.4203.1.5.3 "LDAP Absolute True and False Filters" "draft-zeilenga-ldap-t-f-10.txt" "Implementations of this extension SHALL allow 'and' and 'or' choices with zero filter elements." +1.3.6.1.4.1.4203.1.5.4 "Language Tags" "RFC 3866" "Supports storing attributes with language tag options in the DIT" +1.3.6.1.4.1.4203.1.5.5 "Language Ranges" "RFC 3866" "Supports language range matching of attributes with language tag options stored in the DIT" +1.3.6.1.4.1.4203.1.9.1.1 "LDAP Content Synchronization Control" "draft=zeilenga-ldup-sync-06.txt" "The operation allows a client to maintain a copy of a fragment of directory information tree. It supports both polling for changes and listening for changes. The operation is defined as an extension of the LDAP Search Operation." +1.3.6.1.4.1.4203.1.10.1 "Subentries in LDAP" "RFC 3672" "The subentries control MAY be sent with a searchRequest to control the visibility of entries and subentries which are within scope. Non-visible entries or subentries are not returned in response to the request." +1.3.6.1.4.1.4203.1.10.2 "LDAP No-Op Control" "draft-zeilenga-ldap-noop-02.txt" "The No-Op control can be used to disable the normal effect of an operation. The control can be used to discover how a server might react to a particular update request without updating the directory." +1.3.6.1.4.1.4203.1.11.1 "LDAP Password Modify Extended Operation" "RFC 3062" "An LDAP extended operation to allow modification of user passwords which is not dependent upon the form of the authentication identity nor the password storage mechanism used." +1.3.6.1.4.1.4203.1.11.2 "LDAP Cancel Extended Operation" +1.3.6.1.4.1.4203.1.11.3 "Who Am I? Extended Operation" "draft-zeilenga-ldap-authzid-10.txt" "This specification provides a mechanism for Lightweight Directory Access Protocol (LDAP) clients to obtain the authorization identity which the server has associated with the user or application entity." +1.3.6.1.4.1.4203.666.5.1 "Subentries Control" +1.3.6.1.4.1.4203.666.5.2 "NO OP Control" +1.3.18.0.2.12.1 "The ACL credential controls provide a method to flow a subject's credentials associated with a bind." +1.3.18.0.2.12.5 "tranExtOpInit" +1.3.18.0.2.12.6 "tranExtOpInit" +2.16.840.1.113531.18.2.1 "LDAP_C_SETOPTIONS_OID" +2.16.840.1.113531.18.2.2 "LDAP_C_SETDONTUSECOPY_OID" +2.16.840.1.113531.18.2.3 "LDAP_C_SETLOCALSCOPE_OID" +2.16.840.1.113531.18.2.4 "Return operational attributes as well as user attributes" +2.16.840.1.113531.18.2.5 "Return only subentries" +2.16.840.1.113531.18.2.6 "LDAP_C_SETUSEALIAS_OID" +2.16.840.1.113531.18.2.7 "LDAP_C_SETPREFERCHAIN_OID" +2.16.840.1.113531.18.2.8 "LDAP_C_SETX500DN_OID" +2.16.840.1.113531.18.2.9 "LDAP_C_SETCOPYSHALLDO_OID" +2.16.840.1.113531.18.2.10 "LDAP_C_SETDONTMAPATTRS_OID" +2.16.840.1.113531.18.2.11 "Return normal entries as well as sub-entries" +2.16.840.1.113719.1.27.99.1 "Superior References" +2.16.840.1.113719.1.27.100.1 "ndsToLdapResponse" +2.16.840.1.113719.1.27.100.2 "ndsToLdapRequest" +2.16.840.1.113719.1.27.100.3 "createNamingContextRequest" +2.16.840.1.113719.1.27.100.4 "createNamingContextResponse" +2.16.840.1.113719.1.27.100.5 "mergeNamingContextRequest" +2.16.840.1.113719.1.27.100.6 "mergeNamingContextResponse" +2.16.840.1.113719.1.27.100.7 "addReplicaRequest" +2.16.840.1.113719.1.27.100.8 "addReplicaResponse" +2.16.840.1.113719.1.27.100.9 "refreshLDAPServerRequest" +2.16.840.1.113719.1.27.100.10 "refreshLDAPServerResponse" +2.16.840.1.113719.1.27.100.11 "removeReplicaRequest" +2.16.840.1.113719.1.27.100.12 "removeReplicaResponse" +2.16.840.1.113719.1.27.100.13 "namingContextEntryCountRequest" +2.16.840.1.113719.1.27.100.14 "namingContextEntryCountResponse" +2.16.840.1.113719.1.27.100.15 "changeReplicaTypeRequest" +2.16.840.1.113719.1.27.100.16 "changeReplicaTypeResponse" +2.16.840.1.113719.1.27.100.17 "getReplicaInfoRequest" +2.16.840.1.113719.1.27.100.18 "getReplicaInfoResponse" +2.16.840.1.113719.1.27.100.19 "listReplicaRequest" +2.16.840.1.113719.1.27.100.20 "listReplicaResponse" +2.16.840.1.113719.1.27.100.21 "receiveAllUpdatesRequest" +2.16.840.1.113719.1.27.100.22 "receiveAllUpdatesResponse" +2.16.840.1.113719.1.27.100.23 "sendAllUpdatesRequest" +2.16.840.1.113719.1.27.100.24 "sendAllUpdatesResponse" +2.16.840.1.113719.1.27.100.25 "requestNamingContextSyncRequest" +2.16.840.1.113719.1.27.100.26 "requestNamingContextSyncResponse" +2.16.840.1.113719.1.27.100.27 "requestSchemaSyncRequest" +2.16.840.1.113719.1.27.100.28 "requestSchemaSyncResponse" +2.16.840.1.113719.1.27.100.29 "abortNamingContextOperationRequest" +2.16.840.1.113719.1.27.100.30 "abortNamingContextOperationResponse" +2.16.840.1.113719.1.27.100.31 "Get Bind DN Request" +2.16.840.1.113719.1.27.100.32 "Get Bind DN Response" +2.16.840.1.113719.1.27.100.33 "Get Effective Privileges Request" +2.16.840.1.113719.1.27.100.34 "Get Effective Privileges Response" +2.16.840.1.113719.1.27.100.35 "Set Replication Filter Request" +2.16.840.1.113719.1.27.100.36 "Set Replication Filter Response" +2.16.840.1.113719.1.27.100.37 "Get Replication Filter Request" +2.16.840.1.113719.1.27.100.38 "Get Replication Filter Response" +2.16.840.1.113719.1.27.100.39 "Create Orphan Partition Request" +2.16.840.1.113719.1.27.100.40 "Create Orphan Partition Response" +2.16.840.1.113719.1.27.100.41 "Remove Orphan Partition Request" +2.16.840.1.113719.1.27.100.42 "Remove Orphan Partition Response" +2.16.840.1.113719.1.27.100.43 "Trigger Backlinker Request" +2.16.840.1.113719.1.27.100.44 "Trigger Backlinker Response" +2.16.840.1.113719.1.27.100.47 "Trigger Janitor Request" +2.16.840.1.113719.1.27.100.48 "Trigger Janitor Response" +2.16.840.1.113719.1.27.100.49 "Trigger Limber Request" +2.16.840.1.113719.1.27.100.50 "Trigger Limber Response" +2.16.840.1.113719.1.27.100.51 "Trigger Skulker Request" +2.16.840.1.113719.1.27.100.52 "Trigger Skulker Response" +2.16.840.1.113719.1.27.100.53 "Trigger Schema Synch Request" +2.16.840.1.113719.1.27.100.54 "Trigger Schema Synch Response" +2.16.840.1.113719.1.27.100.55 "Trigger Partition Purge Request" +2.16.840.1.113719.1.27.100.56 "Trigger Partition Purge Response" +2.16.840.1.113719.1.27.100.79 "Monitor Events Request" +2.16.840.1.113719.1.27.100.80 "Monitor Events Response" +2.16.840.1.113719.1.27.100.81 "Event Notification" +2.16.840.1.113719.1.27.101.1 "Duplicate Entry Request" +2.16.840.1.113719.1.27.101.2 "DuplicateSearchResult" +2.16.840.1.113719.1.27.101.3 "DuplicateEntryResponseDone" +2.16.840.1.113719.1.27.101.5 "Simple Password" +2.16.840.1.113719.1.27.101.6 "Forward Reference" +2.16.840.1.113719.1.142.100.1 "startFramedProtocolRequest" +2.16.840.1.113719.1.142.100.2 "startFramedProtocolResponse" +2.16.840.1.113719.1.142.100.3 "ReplicationUpdate" +2.16.840.1.113719.1.142.100.4 "endFramedProtocolRequest" +2.16.840.1.113719.1.142.100.5 "endFramedProtocolResponse" +2.16.840.1.113719.1.142.100.6 "lburpOperationRequest" +2.16.840.1.113719.1.142.100.7 "lburpOperationResponse" +2.16.840.1.113730.3.4 "Netscape LDAPv3 controls" +2.16.840.1.113730.3.4.2 "ManageDsaIT Control" "RFC 3296" "The client may provide the ManageDsaIT control with an operation to indicate that the operation is intended to manage objects within the DSA (server) Information Tree. The control causes Directory-specific entries (DSEs), regardless of type, to be treated as normal entries allowing clients to interrogate and update these entries using LDAP operations." +2.16.840.1.113730.3.4.3 "Persistent Search LDAPv3 control" +2.16.840.1.113730.3.4.4 "Netscape Password Expired LDAPv3 control" +2.16.840.1.113730.3.4.5 "Netscape Password Expiring LDAPv3 control" +2.16.840.1.113730.3.4.6 "Netscape NT Synchronization Client LDAPv3 control" +2.16.840.1.113730.3.4.7 "Entry Change Notification LDAPv3 control" +2.16.840.1.113730.3.4.8 "Transaction ID Request Control" +2.16.840.1.113730.3.4.9 "VLV Request LDAPv3 control" "" "As defined in the 'LDAPv3 Extensions for Virtual List View' IETF document." +2.16.840.1.113730.3.4.10 "VLV Response LDAPv3 control" "" "As defined in the 'LDAPv3 Extensions for Virtual List View' IETF document." +2.16.840.1.113730.3.4.11 "Transaction ID Response Control" +2.16.840.1.113730.3.4.12 "Proxied Authorization (version 1) control" "draft-weltman-ldapv3-proxy-05" "For assuming the identity of another entry for the duration of a request. This has been replaced by a new 'version 2' Proxied Authorization control." +2.16.840.1.113730.3.4.13 "iPlanet Directory Server Replication Update Information Control" +2.16.840.1.113730.3.4.14 "iPlanet Directory Server 'search on specific backend' control" +2.16.840.1.113730.3.4.15 "Authentication Response Control" +2.16.840.1.113730.3.4.16 "Authentication Request Control" +2.16.840.1.113730.3.4.17 "Real Attributes Only Request Control" +2.16.840.1.113730.3.4.18 "LDAP Proxied Authorization Control" "draft-weltman-ldapv3-proxy-06.txt" "The Proxied Authorization Control allows a client to request that an operation be processed under a provided authorization identity [AUTH] instead of as the current authorization identity associated with the connection." +2.16.840.1.113730.3.4.19 "Virtual Attributes Only Request Control" +2.16.840.1.113730.3.4.20 "Use One Backend" +2.16.840.1.113730.3.4.999 "iPlanet Replication Modrdn Extra Mods Control" +2.16.840.1.113730.3.5.3 "iPlanet Start Replication Request Extended Operation" +2.16.840.1.113730.3.5.4 "iPlanet Replication Response Extended Operation" +2.16.840.1.113730.3.5.5 "iPlanet End Replication Request Extended Operation" +2.16.840.1.113730.3.5.6 "iPlanet Replication Entry Request Extended Operation" +2.16.840.1.113730.3.5.7 "iPlanet Bulk Import Start Extended Operation" +2.16.840.1.113730.3.5.8 "iPlanet Bulk Import Finished Extended Operation" +2.16.840.1.113730.3.5.9 "iPlanet Digest authentication calculation" diff --git a/lam/templates/3rdParty/pla/lib/page.php b/lam/templates/3rdParty/pla/lib/page.php new file mode 100644 index 00000000..fa29c151 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/page.php @@ -0,0 +1,510 @@ + + protected $_head; + + # Settings for this application + protected $_app; + + # Default values array. + protected $_default; + + public function __construct($index=null) { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # If we done have a configuration, then our IMGDIR and CSS are not defined + if (! defined('IMGDIR')) + define('IMGDIR','images/default'); + if (! defined('CSSDIR')) + define('CSSDIR','css/default'); + + $this->index = $index; + + # To be defined in a configuration file. + $this->_app['title'] = app_name(); + $this->_app['logo'] = IMGDIR.'/logo-small.png'; + + if (! is_null($index)) + $this->_app['urlcss'] = sprintf('%s/%s',CSSDIR,$_SESSION[APPCONFIG]->getValue('appearance','stylesheet')); + else + $this->_app['urlcss'] = sprintf('%s/%s',CSSDIR,'style.css'); + + # Default Values for configurable items. + $this->_default['sysmsg']['error'] = IMGDIR.'/error-big.png'; + $this->_default['sysmsg']['warn'] = IMGDIR.'/warn-big.png'; + $this->_default['sysmsg']['info'] = IMGDIR.'/info-big.png'; + + # Capture any output so far (in case we send some headers below) - there shouldnt be any output anyway. + $preOutput = ''; + + # Try and work around if php compression is on, or the user has set compression in the config. + # type = 1 for user gzip, 0 for php.ini gzip. + $obStatus = ob_get_status(); + if (isset($obStatus['type']) && $obStatus['type'] && $obStatus['status']) { + $preOutput = ob_get_contents(); + ob_end_clean(); + } + + header('Content-type: text/html; charset="UTF-8"'); + if (isCompress()) { + header('Content-Encoding: gzip'); + + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED) + debug_log('Sent COMPRESSED header to browser and discarded (%s)',129,0,__FILE__,__LINE__,__METHOD__,$preOutput); + } + + if (isset($_SESSION[APPCONFIG]) + && $_SESSION[APPCONFIG]->getValue('appearance','compress') + && ini_get('zlib.output_compression')) + $this->setsysmsg(array('title'=>_('Warning'),'body'=>('WARNING: You cannot have PHP compression and application compression enabled at the same time. Please unset zlib.output_compression or set $config->custom->appearance[\'compress\']=false'),'type'=>'warn')); + + # Turn back on output buffering. + ob_start(); + + # Initial Values + $this->_pageheader[] = ''; + $this->_pageheader[] .= ''."\n"; + } + + /* Add to the HTML Header */ + public function head_add($html) { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->_head[] .= $html; + } + + /* Print out the HTML header */ + private function pageheader_print() { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # HTML prepage requirements. + foreach ($this->_pageheader as $line) + echo $line."\n"; + + # Page Title + echo ''; + printf(''); + + $DNs = get_request('dn','REQUEST'); + if (is_array($DNs)) + $DNs = ''; + + if (isset($_SESSION[APPCONFIG])) + printf('%s (%s) - %s%s', + $this->_app['title'], + app_version(), + $DNs ? htmlspecialchars($DNs).' ' : '', + $_SESSION[APPCONFIG]->getValue('appearance','page_title')); + else + printf('%s - %s',$this->_app['title'],app_version()); + + echo ''; + # Style sheet. + printf('',$this->_app['urlcss']); + + if (defined('JSDIR')) { + printf('',JSDIR); + echo "\n"; + printf('',JSDIR); + printf('',JSDIR); + echo "\n"; + } + + # HTML head requirements. + if (is_array($this->_head) && count($this->_head)) + foreach ($this->_head as $line) + echo $line."\n"; + + echo ''; + echo "\n"; + } + + private function head_print() { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (isset($_SESSION[APPCONFIG])) + $pagetitle = $_SESSION[APPCONFIG]->getValue('appearance','page_title') ? ' - '.$_SESSION[APPCONFIG]->getValue('appearance','page_title') : ''; + else + $pagetitle = ''; + + echo ''; + + echo '
    '; + printf('',get_href('sf'),$this->_app['logo']); + + echo ''; + echo '
    '; + $empty = true; + if (function_exists('cmd_control_pane')) + foreach (cmd_control_pane('top') as $cmddetails) + if ((isset($cmddetails['enable']) && $cmddetails['enable']) || ! isset($cmddetails['enable'])) { + if (! $empty) + echo ' '; + + printf('%s',$cmddetails['link'],$cmddetails['image']); + + $empty = false; + } + + if ($empty) + echo ' '; + + echo '
    '; + echo ''; + echo "\n"; + } + + private function control_print() { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + echo ''; + echo ''; + if ($empty) + echo ''; + + echo ''; + echo '
    '; + + $empty = true; + if (function_exists('cmd_control_pane')) + foreach (cmd_control_pane('main') as $cmddetails) + if ((isset($cmddetails['enable']) && trim($cmddetails['enable'])) || ! isset($cmddetails['enable'])) { + if (! $empty) + echo ' | '; + + printf('%s',$cmddetails['link'], + (isset($_SESSION[APPCONFIG]) && $_SESSION[APPCONFIG]->getValue('appearance','control_icons')) ? $cmddetails['image'] : $cmddetails['title']); + + $empty = false; + } + + echo ' 
    '; + } + + protected function tree() { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (! isset($_SESSION[APPCONFIG])) + return; + + if (is_null($this->index)) + $this->index = min(array_keys($_SESSION[APPCONFIG]->getServerList())); + + if (count($_SESSION[APPCONFIG]->getServerList()) > 1) { + echo '
    '; + echo '
    '; + printf('%s:
    %s',('Server Select'), + server_select_list($this->index,false,'index',true,sprintf("onchange=\"tree_unhide('index',%s)\"",$this->index))); + echo '
    '; + echo '
    '; + echo "\n\n"; + } + + foreach ($_SESSION[APPCONFIG]->getServerList() as $index => $server) { + printf('
    ',$server->getIndex(),($server->getIndex() == $this->index) ? 'block' : 'none'); + $tree = Tree::getInstance($server->getIndex()); + $tree->draw(); + echo '
    '; + echo "\n\n"; + } + } + + public function block_add($side,$object) { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (! is_object($object)) + error(sprintf('block_add called with [%s], but it is not an object',serialize($object))); + + $this->_block[$side][] = $object; + } + + private function block_print($side) { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (! isset($this->_block[$side])) + return; + + printf('',$side); + foreach ($this->_block[$side] as $object) + echo $object->draw($side); + echo ''; + } + + private function sysmsg() { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (isset($this->sysmsg)) { + foreach ($this->sysmsg as $index => $details) { + switch ($details['type']) { + case 'error': + $icon = $this->_default['sysmsg']['error']; + break; + + case 'warn': + $icon = $this->_default['sysmsg']['warn']; + break; + + case 'info': + default: + $icon = $this->_default['sysmsg']['info']; + break; + } + + if (isset($details['title'])) + printf('%s%s', + $icon,$details['type'],$details['title']); + + if (isset($details['body'])) + if (is_array($details['body'])) { + echo ''; + foreach ($details['body'] as $line) + printf('%s
    ',$line); + echo ''; + + } else + printf('%s',$details['body']); + } + } + } + + private function body($raw=false) { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # Add the Session System Messages + if (isset($_SESSION['sysmsg']) && is_array($_SESSION['sysmsg'])) { + foreach ($_SESSION['sysmsg'] as $msg) + $this->setsysmsg($msg); + + unset($_SESSION['sysmsg']); + } + + if (isset($this->sysmsg)) { + echo ''; + $this->sysmsg(); + echo '
    '; + echo "\n"; + } + + if (isset($this->_block['body'])) + foreach ($this->_block['body'] as $object) + echo $object->draw('body',$raw); + } + + private function footer_print() { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + printf('%s
    %s
    %s', + isCompress() ? '[C]' : ' ', + app_version(), + get_href('logo') ? sprintf('SourceForge.net Logo',get_href('sf'),get_href('logo')) : ' '); + } + + /** + * Only show a particular page frame - used by an AJAX call + */ + public function show($frame,$compress=false,$raw=false) { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # If the body is called via AJAX, and compression is enable, we need to compress the output + if ($compress && ob_get_level() && isCompress()) { + ob_end_clean(); + ob_start(); + } + + switch ($frame) { + case 'BODY': + $this->body($raw); + break; + + case 'TREE': + $this->tree(); + break; + + default: + error(sprintf('show called with unknown frame [%s]',$frame),'error','index.php'); + } + + if ($compress && ob_get_level() && isCompress()) { + $output = ob_get_contents(); + ob_end_clean(); + + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED) + debug_log('Sending COMPRESSED output to browser[(%s),%s]',129,0,__FILE__,__LINE__,__METHOD__, + strlen($output),$output); + + print gzencode($output); + } + } + + public function display($filter=array()) { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # Control what is displayed. + $display = array( + 'HEAD'=>false, + 'CONTROL'=>false, + 'TREE'=>true, + 'FOOT'=>false + ); + + $display = array_merge($display,$filter); + + # HTML Header + $this->pageheader_print(); + + # Start of body + # Page Header + echo ''; + echo "\n"; + echo ''; + + if ($display['HEAD']) + $this->head_print(); + + # Control Line + if ($display['CONTROL']) { + echo ''; + echo "\n"; + } + + # Left Block + echo ''; + + if ($display['TREE']) { + echo ''; + } + + echo ''; + echo ''; + echo "\n"; + + # Page Footer + if ($display['FOOT']) + $this->footer_print(); + + # Finish HTML + echo '
    '; + echo '
    '; + $this->control_print(); + echo '
    '; + printf('',_('Hide/Unhide the tree'),IMGDIR); + echo '
    '; + $this->tree(); + echo '
    '; + echo '
    '; + echo '
    '; + echo "\n"; + $this->body(); + echo '
    '; + echo '
    '; + echo ''; + echo ''; + + # compress output + if (ob_get_level() && isCompress()) { + $output = ob_get_contents(); + ob_end_clean(); + + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED) + debug_log('Sending COMPRESSED output to browser[(%s),%s]',129,0,__FILE__,__LINE__,__METHOD__, + strlen($output),$output); + + print gzencode($output); + } + } + + public function setsysmsg($data) { + if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (! is_array($data)) + return; + + if (isset($this->sysmsg)) + $msgnum = count($this->sysmsg) + 1; + else + $msgnum = 1; + + foreach (array('title','body','type') as $index) + if (isset($data[$index])) + $this->sysmsg[$msgnum][$index] = $data[$index]; + } +} + +/** + * This class draws a block. + * + * @package phpLDAPadmin + * @subpackage Page + */ +class block { + private $title; + private $body; + private $foot; + + public function setTitle($html) { + $this->title = $html; + } + + public function setBody($html) { + $this->body = $html; + } + + public function setFooter($html) { + $this->foot = $html; + } + + public function draw($side,$raw=false) { + $output = ''; + + if ($raw) + $output .= $this->body; + + else { + $output .= sprintf('',$side); + + if (isset($this->title)) + $output .= sprintf('',$this->title); + + if (isset($this->body)) + $output .= sprintf('',$this->body); + + if (isset($this->footer)) + $output .= sprintf('',$this->foot); + + $output .= '
    %s
    %s
    %s
    '; + } + + return $output; + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/query_functions.php b/lam/templates/3rdParty/pla/lib/query_functions.php new file mode 100644 index 00000000..de47630f --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/query_functions.php @@ -0,0 +1,22 @@ + diff --git a/lam/templates/3rdParty/pla/lib/schema_functions.php b/lam/templates/3rdParty/pla/lib/schema_functions.php new file mode 100644 index 00000000..efa0cbc2 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/schema_functions.php @@ -0,0 +1,1539 @@ +oid = $oid; + } + + public function setDescription($desc) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->description = $desc; + } + + public function getOID() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->oid); + + return $this->oid; + } + + public function getDescription() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->description); + + return $this->description; + } + + /** + * Gets whether this objectClass is flagged as obsolete by the LDAP server. + */ + public function getIsObsolete() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->is_obsolete); + + return $this->is_obsolete; + } + + /** + * Return the objects name. + * + * param boolean $lower Return the name in lower case (default) + * @return string The name + */ + public function getName($lower=true) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->name); + + return $lower ? strtolower($this->name) : $this->name; + } +} + +/** + * Represents an LDAP objectClass + * + * @package phpLDAPadmin + * @subpackage Schema + */ +class ObjectClass extends SchemaItem { + # The server ID that this objectclass belongs to. + private $server_id = null; + # Array of objectClass names from which this objectClass inherits + private $sup_classes = array(); + # One of STRUCTURAL, ABSTRACT, or AUXILIARY + private $type; + # Arrays of attribute names that this objectClass requires + private $must_attrs = array(); + # Arrays of attribute names that this objectClass allows, but does not require + private $may_attrs = array(); + # Arrays of attribute names that this objectClass has been forced to MAY attrs, due to configuration + private $force_may = array(); + # Array of objectClasses which inherit from this one (must be set at runtime explicitly by the caller) + private $children_objectclasses = array(); + # The objectclass hierarchy + private $hierarchy = array(); + + /** + * Creates a new ObjectClass object given a raw LDAP objectClass string. + */ + public function __construct($class,$server) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->server_id = $server->getIndex(); + $this->type = $server->getValue('server','schema_oclass_default'); + + $strings = preg_split('/[\s,]+/',$class,-1,PREG_SPLIT_DELIM_CAPTURE); + $str_count = count($strings); + + for ($i=0; $i < $str_count; $i++) { + + switch ($strings[$i]) { + case '(': + break; + + case 'NAME': + if ($strings[$i+1]!='(') { + do { + $i++; + if (strlen($this->name) == 0) + $this->name = $strings[$i]; + else + $this->name .= ' '.$strings[$i]; + + } while (! preg_match('/\'$/s',$strings[$i])); + + } else { + $i++; + do { + $i++; + if (strlen($this->name) == 0) + $this->name = $strings[$i]; + else + $this->name .= ' '.$strings[$i]; + + } while (! preg_match('/\'$/s',$strings[$i])); + + do { + $i++; + } while (! preg_match('/\)+\)?/',$strings[$i])); + } + + $this->name = preg_replace('/^\'/','',$this->name); + $this->name = preg_replace('/\'$/','',$this->name); + + if (DEBUG_ENABLED) + debug_log('Case NAME returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->name); + break; + + case 'DESC': + do { + $i++; + if (strlen($this->description) == 0) + $this->description=$this->description.$strings[$i]; + else + $this->description=$this->description.' '.$strings[$i]; + + } while (! preg_match('/\'$/s',$strings[$i])); + + if (DEBUG_ENABLED) + debug_log('Case DESC returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->description); + break; + + case 'OBSOLETE': + $this->is_obsolete = TRUE; + + if (DEBUG_ENABLED) + debug_log('Case OBSOLETE returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->is_obsolete); + break; + + case 'SUP': + if ($strings[$i+1] != '(') { + $i++; + array_push($this->sup_classes,preg_replace("/'/",'',$strings[$i])); + + } else { + $i++; + do { + $i++; + if ($strings[$i] != '$') + array_push($this->sup_classes,preg_replace("/'/",'',$strings[$i])); + + } while (! preg_match('/\)+\)?/',$strings[$i+1])); + } + + if (DEBUG_ENABLED) + debug_log('Case SUP returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->sup_classes); + break; + + case 'ABSTRACT': + $this->type = 'abstract'; + + if (DEBUG_ENABLED) + debug_log('Case ABSTRACT returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->type); + break; + + case 'STRUCTURAL': + $this->type = 'structural'; + + if (DEBUG_ENABLED) + debug_log('Case STRUCTURAL returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->type); + break; + + case 'AUXILIARY': + $this->type = 'auxiliary'; + + if (DEBUG_ENABLED) + debug_log('Case AUXILIARY returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->type); + break; + + case 'MUST': + $attrs = array(); + + $i = $this->parseList(++$i,$strings,$attrs); + + if (DEBUG_ENABLED) + debug_log('parseList returned %d (%s)',8,0,__FILE__,__LINE__,__METHOD__,$i,$attrs); + + foreach ($attrs as $string) { + $attr = new ObjectClass_ObjectClassAttribute($string,$this->name); + + if ($server->isForceMay($attr->getName())) { + array_push($this->force_may,$attr); + array_push($this->may_attrs,$attr); + + } else + array_push($this->must_attrs,$attr); + } + + if (DEBUG_ENABLED) + debug_log('Case MUST returned (%s) (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->must_attrs,$this->force_may); + break; + + case 'MAY': + $attrs = array(); + + $i = $this->parseList(++$i,$strings,$attrs); + + if (DEBUG_ENABLED) + debug_log('parseList returned %d (%s)',8,0,__FILE__,__LINE__,__METHOD__,$i,$attrs); + + foreach ($attrs as $string) { + $attr = new ObjectClass_ObjectClassAttribute($string,$this->name); + array_push($this->may_attrs,$attr); + } + + if (DEBUG_ENABLED) + debug_log('Case MAY returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->may_attrs); + break; + + default: + if (preg_match('/[\d\.]+/i',$strings[$i]) && $i == 1) { + $this->setOID($strings[$i]); + + if (DEBUG_ENABLED) + debug_log('Case default returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->getOID()); + } + break; + } + } + + $this->description = preg_replace("/^\'/",'',$this->description); + $this->description = preg_replace("/\'$/",'',$this->description); + + if (DEBUG_ENABLED) + debug_log('Returning () - NAME (%s), DESCRIPTION (%s), MUST (%s), MAY (%s), FORCE MAY (%s)',9,0,__FILE__,__LINE__,__METHOD__, + $this->name,$this->description,$this->must_attrs,$this->may_attrs,$this->force_may); + } + + /** + * Parse an LDAP schema list + */ + private function parseList($i,$strings,&$attrs) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + /* + * A list starts with a ( followed by a list of attributes separated by $ terminated by ) + * The first token can therefore be a ( or a (NAME or a (NAME) + * The last token can therefore be a ) or NAME) + * The last token may be terminate by more than one bracket + */ + + $string = $strings[$i]; + if (! preg_match('/^\(/',$string)) { + # A bareword only - can be terminated by a ) if the last item + if (preg_match('/\)+$/',$string)) + $string = preg_replace('/\)+$/','',$string); + + array_push($attrs,$string); + + } elseif (preg_match('/^\(.*\)$/',$string)) { + $string = preg_replace('/^\(/','',$string); + $string = preg_replace('/\)+$/','',$string); + array_push($attrs,$string); + + } else { + # Handle the opening cases first + if ($string == '(') { + $i++; + + } elseif (preg_match('/^\(./',$string)) { + $string = preg_replace('/^\(/','',$string); + array_push($attrs,$string); + $i++; + } + + # Token is either a name, a $ or a ')' + # NAME can be terminated by one or more ')' + while (! preg_match('/\)+$/',$strings[$i])) { + $string = $strings[$i]; + if ($string == '$') { + $i++; + continue; + } + + if (preg_match('/\)$/',$string)) + $string = preg_replace('/\)+$/','',$string); + else + $i++; + + array_push($attrs,$string); + } + } + + sort($attrs); + + if (DEBUG_ENABLED) + debug_log('Returning (%d,[%s],[%s])',9,0,__FILE__,__LINE__,__METHOD__,$i,$strings,$attrs); + + return $i; + } + + /** + * This will return all our parent ObjectClass Objects + */ + public function getParents() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ((count($this->sup_classes) == 1) && ($this->sup_classes[0] == 'top')) + return array(); + + $server = $_SESSION[APPCONFIG]->getServer($this->server_id); + $return = array(); + + foreach ($this->sup_classes as $object_class) { + array_push($return,$object_class); + + $oc = $server->getSchemaObjectClass($object_class); + + if ($oc) + $return = array_merge($return,$oc->getParents()); + } + + return $return; + } + + /** + * Gets an array of AttributeType objects that entries of this ObjectClass must define. + * This differs from getMustAttrNames in that it returns an array of AttributeType objects + * + * @param array $parents An array of ObjectClass objects to use when traversing + * the inheritance tree. This presents some what of a bootstrapping problem + * as we must fetch all objectClasses to determine through inheritance which + * attributes this objectClass requires. + * @return array The array of required AttributeType objects. + * + * @see getMustAttrNames + * @see getMayAttrs + * @see getMayAttrNames + */ + public function getMustAttrs($parents=false) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (! $parents) + return $this->must_attrs; + + $server = $_SESSION[APPCONFIG]->getServer($this->server_id); + $attrs = $this->must_attrs; + + foreach ($this->getParents() as $sup_class) { + $sc = $server->getSchemaObjectClass($sup_class); + $attrs = array_merge($attrs,$sc->getMustAttrs()); + } + + masort($attrs,'name,source'); + + # Remove any duplicates + foreach ($attrs as $index => $attr) + if (isset($allattr[$attr->getName()])) + unset($attrs[$index]); + else + $allattr[$attr->getName()] = 1; + + return $attrs; + } + + /** + * Gets an array of AttributeType objects that entries of this ObjectClass may define. + * This differs from getMayAttrNames in that it returns an array of AttributeType objects + * + * @param array $parents An array of ObjectClass objects to use when traversing + * the inheritance tree. This presents some what of a bootstrapping problem + * as we must fetch all objectClasses to determine through inheritance which + * attributes this objectClass provides. + * @return array The array of allowed AttributeType objects. + * + * @see getMustAttrNames + * @see getMustAttrs + * @see getMayAttrNames + * @see AttributeType + */ + public function getMayAttrs($parents=false) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (! $parents) + return $this->may_attrs; + + $server = $_SESSION[APPCONFIG]->getServer($this->server_id); + $attrs = $this->may_attrs; + + foreach ($this->getParents() as $sup_class) { + $sc = $server->getSchemaObjectClass($sup_class); + $attrs = array_merge($attrs,$sc->getMayAttrs()); + } + + masort($attrs,'name,source'); + + # Remove any duplicates + foreach ($attrs as $index => $attr) + if (isset($allattr[$attr->name])) + unset($attrs[$index]); + else + $allattr[$attr->name] = 1; + + return $attrs; + } + + public function getForceMayAttrs() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return $this->force_may; + } + + /** + * Gets an array of attribute names (strings) that entries of this ObjectClass must define. + * This differs from getMustAttrs in that it returns an array of strings rather than + * array of AttributeType objects + * + * @param array $parents An array of ObjectClass objects to use when traversing + * the inheritance tree. This presents some what of a bootstrapping problem + * as we must fetch all objectClasses to determine through inheritance which + * attributes this objectClass provides. + * @return array The array of allowed attribute names (strings). + * + * @see getMustAttrs + * @see getMayAttrs + * @see getMayAttrNames + */ + public function getMustAttrNames($parents=false) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $attr_names = array(); + + foreach ($this->getMustAttrs($parents) as $attr) + array_push($attr_names,$attr->getName()); + + return $attr_names; + } + + /** + * Gets an array of attribute names (strings) that entries of this ObjectClass must define. + * This differs from getMayAttrs in that it returns an array of strings rather than + * array of AttributeType objects + * + * @param array $parents An array of ObjectClass objects to use when traversing + * the inheritance tree. This presents some what of a bootstrapping problem + * as we must fetch all objectClasses to determine through inheritance which + * attributes this objectClass provides. + * @return array The array of allowed attribute names (strings). + * + * @see getMustAttrs + * @see getMayAttrs + * @see getMustAttrNames + */ + public function getMayAttrNames($parents=false) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $attr_names = array(); + + foreach ($this->getMayAttrs($parents) as $attr) + array_push($attr_names,$attr->getName()); + + return $attr_names; + } + + /** + * Adds an objectClass to the list of objectClasses that inherit + * from this objectClass. + * + * @param String $name The name of the objectClass to add + * @return boolean Returns true on success or false on failure (objectclass already existed for example) + */ + public function addChildObjectClass($name) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $name = trim($name); + + foreach ($this->children_objectclasses as $existing_objectclass) + if (strcasecmp($name,$existing_objectclass) == 0) + return false; + + array_push($this->children_objectclasses,$name); + } + + /** + * Returns the array of objectClass names which inherit from this objectClass. + * + * @return Array Names of objectClasses which inherit from this objectClass. + */ + public function getChildObjectClasses() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return $this->children_objectclasses; + } + + /** + * Gets the objectClass names from which this objectClass inherits. + * + * @return array An array of objectClass names (strings) + */ + public function getSupClasses() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + return $this->sup_classes; + } + + /** + * Return if this objectClass is related to $oclass + * + * @param array ObjectClasses that this attribute may be related to + */ + public function isRelated($oclass) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + # If I am in the array, we'll just return false + if (in_array_ignore_case($this->name,$oclass)) + return false; + + $server = $_SESSION[APPCONFIG]->getServer($this->server_id); + + foreach ($oclass as $object_class) { + $oc = $server->getSchemaObjectClass($object_class); + + if ($oc->isStructural() && in_array_ignore_case($this->getName(),$oc->getParents())) + return true; + } + + return false; + } + + /** + * Gets the type of this objectClass: STRUCTURAL, ABSTRACT, or AUXILIARY. + */ + public function getType() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->type); + + return $this->type; + } + + /** + * Adds the specified array of attributes to this objectClass' list of + * MUST attributes. The resulting array of must attributes will contain + * unique members. + * + * @param array $attr An array of attribute names (strings) to add. + */ + private function addMustAttrs($attr) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (! is_array($attr) || ! count($attr)) + return; + + $this->must_attrs = array_values(array_unique(array_merge($this->must_attrs,$attr))); + } + + /** + * Behaves identically to addMustAttrs, but it operates on the MAY + * attributes of this objectClass. + * + * @param array $attr An array of attribute names (strings) to add. + */ + private function addMayAttrs($attr) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (! is_array($attr) || ! count($attr)) + return; + + $this->may_attrs = array_values(array_unique(array_merge($this->may_attrs,$attr))); + } + + /** + * Determine if an array is listed in the force_may attrs + */ + public function isForceMay($attr) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + foreach ($this->force_may as $forcemay) + if ($forcemay->getName() == $attr) + return true; + + return false; + } + + public function isStructural() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if ($this->type == 'structural') + return true; + else + return false; + } +} + +/** + * A simple class for representing AttributeTypes used only by the ObjectClass class. + * Users should never instantiate this class. It represents an attribute internal to + * an ObjectClass. If PHP supported inner-classes and variable permissions, this would + * be interior to class ObjectClass and flagged private. The reason this class is used + * and not the "real" class AttributeType is because this class supports the notion of + * a "source" objectClass, meaning that it keeps track of which objectClass originally + * specified it. This class is therefore used by the class ObjectClass to determine + * inheritance. + * + * @package phpLDAPadmin + * @subpackage Schema + */ +class ObjectClass_ObjectClassAttribute { + # This Attribute's name (needs to be public, as we sort on it with masort). + public $name; + # This Attribute's root (needs to be public, as we sort on it with masort). + public $source; + + /** + * Creates a new ObjectClass_ObjectClassAttribute with specified name and source objectClass. + * + * @param string $name the name of the new attribute. + * @param string $source the name of the ObjectClass which specifies this attribute. + */ + public function __construct($name,$source) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->name = $name; + $this->source = $source; + } + + # Gets this attribute's name + public function getName($lower=true) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->name); + + return $lower ? strtolower($this->name) : $this->name; + } + + # Gets the name of the ObjectClass which originally specified this attribute. + public function getSource() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->source); + + return $this->source; + } +} + +/** + * Represents an LDAP AttributeType + * + * @package phpLDAPadmin + * @subpackage Schema + */ +class AttributeType extends SchemaItem { + # The attribute from which this attribute inherits (if any) + private $sup_attribute = null; + # The equality rule used + private $equality = null; + # The ordering of the attributeType + private $ordering = null; + # Boolean: supports substring matching? + private $sub_str = null; + # The full syntax string, ie 1.2.3.4{16} + private $syntax = null; + private $syntax_oid = null; + # boolean: is single valued only? + private $is_single_value = false; + # boolean: is collective? + private $is_collective = false; + # boolean: can use modify? + private $is_no_user_modification = false; + # The usage string set by the LDAP schema + private $usage = null; + # An array of alias attribute names, strings + private $aliases = array(); + # The max number of characters this attribute can be + private $max_length = null; + # A string description of the syntax type (taken from the LDAPSyntaxes) + private $type = null; + # An array of objectClasses which use this attributeType (must be set by caller) + private $used_in_object_classes = array(); + # A list of object class names that require this attribute type. + private $required_by_object_classes = array(); + # This attribute has been forced a MAY attribute by the configuration. + private $forced_as_may = false; + + /** + * Creates a new AttributeType object from a raw LDAP AttributeType string. + */ + public function __construct($attr) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $strings = preg_split('/[\s,]+/',$attr,-1,PREG_SPLIT_DELIM_CAPTURE); + + for($i=0; $iname)==0) + $this->name = $strings[$i]; + else + $this->name .= ' '.$strings[$i]; + + } while (! preg_match("/\'$/s",$strings[$i])); + + # This attribute has no aliases + $this->aliases = array(); + + } else { + $i++; + do { + # In case we came here becaues of a (' + if (preg_match('/^\(/',$strings[$i])) + $strings[$i] = preg_replace('/^\(/','',$strings[$i]); + else + $i++; + + if (strlen($this->name) == 0) + $this->name = $strings[$i]; + else + $this->name .= ' '.$strings[$i]; + + } while (! preg_match("/\'$/s",$strings[$i])); + + # Add alias names for this attribute + while ($strings[++$i] != ')') { + $alias = $strings[$i]; + $alias = preg_replace("/^\'/",'',$alias); + $alias = preg_replace("/\'$/",'',$alias); + $this->addAlias($alias); + } + } + + if (DEBUG_ENABLED) + debug_log('Case NAME returned (%s) (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->name,$this->aliases); + break; + + case 'DESC': + do { + $i++; + if (strlen($this->description)==0) + $this->description=$this->description.$strings[$i]; + else + $this->description=$this->description.' '.$strings[$i]; + } while (! preg_match("/\'$/s",$strings[$i])); + + if (DEBUG_ENABLED) + debug_log('Case DESC returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->description); + break; + + case 'OBSOLETE': + $this->is_obsolete = TRUE; + + if (DEBUG_ENABLED) + debug_log('Case OBSOLETE returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->is_obsolete); + break; + + case 'SUP': + $i++; + $this->sup_attribute = $strings[$i]; + + if (DEBUG_ENABLED) + debug_log('Case SUP returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->sup_attribute); + break; + + case 'EQUALITY': + $i++; + $this->equality = $strings[$i]; + + if (DEBUG_ENABLED) + debug_log('Case EQUALITY returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->equality); + break; + + case 'ORDERING': + $i++; + $this->ordering = $strings[$i]; + + if (DEBUG_ENABLED) + debug_log('Case ORDERING returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->ordering); + break; + + case 'SUBSTR': + $i++; + $this->sub_str = $strings[$i]; + + if (DEBUG_ENABLED) + debug_log('Case SUBSTR returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->sub_str); + break; + + case 'SYNTAX': + $i++; + $this->syntax = $strings[$i]; + $this->syntax_oid = preg_replace('/{\d+}$/','',$this->syntax); + + # Does this SYNTAX string specify a max length (ie, 1.2.3.4{16}) + if (preg_match('/{(\d+)}$/',$this->syntax,$this->max_length)) + $this->max_length = $this->max_length[1]; + else + $this->max_length = null; + + if ($i < count($strings) - 1 && $strings[$i+1] == '{') { + do { + $i++; + $this->name .= ' '.$strings[$i]; + } while ($strings[$i] != '}'); + } + + if (DEBUG_ENABLED) + debug_log('Case SYNTAX returned (%s) (%s) (%s)',8,0,__FILE__,__LINE__,__METHOD__, + $this->syntax,$this->syntax_oid,$this->max_length); + break; + + case 'SINGLE-VALUE': + $this->is_single_value = TRUE; + if (DEBUG_ENABLED) + debug_log('Case SINGLE-VALUE returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->is_single_value); + break; + + case 'COLLECTIVE': + $this->is_collective = TRUE; + + if (DEBUG_ENABLED) + debug_log('Case COLLECTIVE returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->is_collective); + break; + + case 'NO-USER-MODIFICATION': + $this->is_no_user_modification = TRUE; + + if (DEBUG_ENABLED) + debug_log('Case NO-USER-MODIFICATION returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->is_no_user_modification); + break; + + case 'USAGE': + $i++; + $this->usage = $strings[$i]; + + if (DEBUG_ENABLED) + debug_log('Case USAGE returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->usage); + break; + + default: + if (preg_match('/[\d\.]+/i',$strings[$i]) && $i == 1) { + $this->setOID($strings[$i]); + + if (DEBUG_ENABLED) + debug_log('Case default returned (%s)',8,0,__FILE__,__LINE__,__METHOD__,$this->getOID()); + } + } + } + + $this->name = preg_replace("/^\'/",'',$this->name); + $this->name = preg_replace("/\'$/",'',$this->name); + $this->description = preg_replace("/^\'/",'',$this->description); + $this->description = preg_replace("/\'$/",'',$this->description); + $this->syntax = preg_replace("/^\'/",'',$this->syntax); + $this->syntax = preg_replace("/\'$/",'',$this->syntax); + $this->syntax_oid = preg_replace("/^\'/",'',$this->syntax_oid); + $this->syntax_oid = preg_replace("/\'$/",'',$this->syntax_oid); + $this->sup_attribute = preg_replace("/^\'/",'',$this->sup_attribute); + $this->sup_attribute = preg_replace("/\'$/",'',$this->sup_attribute); + + if (DEBUG_ENABLED) + debug_log('Returning ()',9,0,__FILE__,__LINE__,__METHOD__); + } + + /** + * Gets this attribute's usage string as defined by the LDAP server + * + * @return string + */ + public function getUsage() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->usage); + + return $this->usage; + } + + /** + * Gets this attribute's parent attribute (if any). If this attribute does not + * inherit from another attribute, null is returned. + * + * @return string + */ + public function getSupAttribute() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->sup_attribute); + + return $this->sup_attribute; + } + + /** + * Gets this attribute's equality string + * + * @return string + */ + public function getEquality() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->equality); + + return $this->equality; + } + + /** + * Gets this attribute's ordering specification. + * + * @return string + */ + public function getOrdering() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->ordering); + + return $this->ordering; + } + + /** + * Gets this attribute's substring matching specification + * + * @return string + */ + public function getSubstr() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->sub_str); + + return $this->sub_str; + } + + /** + * Gets the names of attributes that are an alias for this attribute (if any). + * + * @return array An array of names of attributes which alias this attribute or + * an empty array if no attribute aliases this object. + */ + public function getAliases() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->aliases); + + return $this->aliases; + } + + /** + * Returns whether the specified attribute is an alias for this one (based on this attribute's alias list). + * + * @param string $attr_name The name of the attribute to check. + * @return boolean True if the specified attribute is an alias for this one, or false otherwise. + */ + public function isAliasFor($attr_name) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + foreach ($this->aliases as $alias_attr_name) + if (strcasecmp($alias_attr_name,$attr_name) == 0) + return true; + + return false; + } + + /** + * Gets this attribute's raw syntax string (ie: "1.2.3.4{16}"). + * + * @return string The raw syntax string + */ + public function getSyntaxString() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->syntax); + + return $this->syntax; + } + + /** + * Gets this attribute's syntax OID. Differs from getSyntaxString() in that this + * function only returns the actual OID with any length specification removed. + * Ie, if the syntax string is "1.2.3.4{16}", this function only retruns + * "1.2.3.4". + * + * @return string The syntax OID string. + */ + public function getSyntaxOID() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->syntax_oid); + + return $this->syntax_oid; + } + + /** + * Gets this attribute's the maximum length. If no maximum is defined by the LDAP server, null is returned. + * + * @return int The maximum length (in characters) of this attribute or null if no maximum is specified. + */ + public function getMaxLength() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->max_length); + + return $this->max_length; + } + + /** + * Gets whether this attribute is single-valued. If this attribute only supports single values, true + * is returned. If this attribute supports multiple values, false is returned. + * + * @return boolean Returns true if this attribute is single-valued or false otherwise. + */ + public function getIsSingleValue() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->is_single_value); + + return $this->is_single_value; + } + + /** + * Sets whether this attribute is single-valued. + * + * @param boolean $is + */ + public function setIsSingleValue($is) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->is_single_value = $is; + } + + /** + * Gets whether this attribute is collective. + * + * @return boolean Returns true if this attribute is collective and false otherwise. + */ + public function getIsCollective() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->is_collective); + + return $this->is_collective; + } + + /** + * Gets whether this attribute is not modifiable by users. + * + * @return boolean Returns true if this attribute is not modifiable by users. + */ + public function getIsNoUserModification() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->is_no_user_modification); + + return $this->is_no_user_modification; + } + + /** + * Gets this attribute's type + * + * @return string The attribute's type. + */ + public function getType() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->type); + + return $this->type; + } + + /** + * Removes an attribute name from this attribute's alias array. + * + * @param string $remove_alias_name The name of the attribute to remove. + * @return boolean true on success or false on failure (ie, if the specified + * attribute name is not found in this attribute's list of aliases) + */ + public function removeAlias($remove_alias_name) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + foreach ($this->aliases as $i => $alias_name) { + + if (strcasecmp($alias_name,$remove_alias_name) == 0) { + unset($this->aliases[$i]); + + $this->aliases = array_values($this->aliases); + return true; + } + } + return false; + } + + /** + * Adds an attribute name to the alias array. + * + * @param string $alias The name of a new attribute to add to this attribute's list of aliases. + */ + public function addAlias($alias) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + array_push($this->aliases,$alias); + } + + /** + * Sets this attriute's name. + * + * @param string $name The new name to give this attribute. + */ + public function setName($name) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->name = $name; + } + + /** + * Sets this attriute's SUP attribute (ie, the attribute from which this attribute inherits). + * + * @param string $attr The name of the new parent (SUP) attribute + */ + public function setSupAttribute($attr) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->sup_attribute = $attr; + } + + /** + * Sets this attribute's list of aliases. + * + * @param array $aliases The array of alias names (strings) + */ + public function setAliases($aliases) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->aliases = $aliases; + } + + /** + * Sets this attribute's type. + * + * @param string $type The new type. + */ + public function setType($type) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->type = $type; + } + + /** + * Adds an objectClass name to this attribute's list of "used in" objectClasses, + * that is the list of objectClasses which provide this attribute. + * + * @param string $name The name of the objectClass to add. + */ + public function addUsedInObjectClass($name) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + foreach ($this->used_in_object_classes as $used_in_object_class) { + if (DEBUG_ENABLED) + debug_log('Checking (%s) with (%s)',8,0,__FILE__,__LINE__,__METHOD__,$used_in_object_class,$name); + + if (strcasecmp($used_in_object_class,$name) == 0) + return false; + } + + array_push($this->used_in_object_classes,$name); + } + + /** + * Gets the list of "used in" objectClasses, that is the list of objectClasses + * which provide this attribute. + * + * @return array An array of names of objectclasses (strings) which provide this attribute + */ + public function getUsedInObjectClasses() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->used_in_object_classes); + + return $this->used_in_object_classes; + } + + /** + * Adds an objectClass name to this attribute's list of "required by" objectClasses, + * that is the list of objectClasses which must have this attribute. + * + * @param string $name The name of the objectClass to add. + */ + public function addRequiredByObjectClass($name) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + foreach ($this->required_by_object_classes as $required_by_object_class) + if (strcasecmp($required_by_object_class,$name) == 0) + return false; + + array_push($this->required_by_object_classes,$name); + } + + /** + * Gets the list of "required by" objectClasses, that is the list of objectClasses + * which provide must have attribute. + * + * @return array An array of names of objectclasses (strings) which provide this attribute + */ + public function getRequiredByObjectClasses() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->required_by_object_classes); + + return $this->required_by_object_classes; + } + + /** + * This function will mark this attribute as a forced MAY attribute + */ + public function setForceMay() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->forced_as_may = true; + } + + public function isForceMay() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->forced_as_may); + + return $this->forced_as_may; + } +} + +/** + * Represents an LDAP Syntax + * + * @package phpLDAPadmin + * @subpackage Schema + */ +class Syntax extends SchemaItem { + /** + * Creates a new Syntax object from a raw LDAP syntax string. + */ + public function __construct($class) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $strings = preg_split('/[\s,]+/',$class,-1,PREG_SPLIT_DELIM_CAPTURE); + + for($i=0; $idescription) == 0) + $this->description=$this->description.$strings[$i]; + else + $this->description=$this->description.' '.$strings[$i]; + } while (! preg_match("/\'$/s",$strings[$i])); + break; + + default: + if (preg_match('/[\d\.]+/i',$strings[$i]) && $i == 1) + $this->setOID($strings[$i]); + } + } + + $this->description = preg_replace("/^\'/",'',$this->description); + $this->description = preg_replace("/\'$/",'',$this->description); + } +} + +/** + * Represents an LDAP MatchingRule + * + * @package phpLDAPadmin + * @subpackage Schema + */ +class MatchingRule extends SchemaItem { + # This rule's syntax OID + private $syntax = null; + # An array of attribute names who use this MatchingRule + private $used_by_attrs = array(); + + /** + * Creates a new MatchingRule object from a raw LDAP MatchingRule string. + */ + function __construct($strings) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $strings = preg_split('/[\s,]+/',$strings,-1,PREG_SPLIT_DELIM_CAPTURE); + + for ($i=0; $iname) == 0) + $this->name = $strings[$i]; + else + $this->name .= ' '.$strings[$i]; + } while (! preg_match("/\'$/s",$strings[$i])); + + } else { + $i++; + do { + $i++; + if (strlen($this->name) == 0) + $this->name = $strings[$i]; + else + $this->name .= ' '.$strings[$i]; + } while (! preg_match("/\'$/s",$strings[$i])); + + do { + $i++; + } while (! preg_match('/\)+\)?/',$strings[$i])); + } + + $this->name = preg_replace("/^\'/",'',$this->name); + $this->name = preg_replace("/\'$/",'',$this->name); + break; + + case 'DESC': + do { + $i++; + if (strlen($this->description)==0) + $this->description=$this->description.$strings[$i]; + else + $this->description=$this->description.' '.$strings[$i]; + } while (! preg_match("/\'$/s",$strings[$i])); + break; + + case 'OBSOLETE': + $this->is_obsolete = TRUE; + break; + + case 'SYNTAX': + $this->syntax = $strings[++$i]; + break; + + default: + if (preg_match('/[\d\.]+/i',$strings[$i]) && $i == 1) + $this->setOID($strings[$i]); + } + } + $this->description = preg_replace("/^\'/",'',$this->description); + $this->description = preg_replace("/\'$/",'',$this->description); + } + + /** + * Sets the list of used_by_attrs to the array specified by $attrs; + * + * @param array $attrs The array of attribute names (strings) which use this MatchingRule + */ + public function setUsedByAttrs($attrs) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->used_by_attrs = $attrs; + } + + /** + * Adds an attribute name to the list of attributes who use this MatchingRule + * + * @return true if the attribute was added and false otherwise (already in the list) + */ + public function addUsedByAttr($attr) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + foreach ($this->used_by_attrs as $attr_name) + if (strcasecmp($attr_name,$attr) == 0) + return false; + + array_push($this->used_by_attrs,$attr); + + return true; + } + + /** + * Gets an array of attribute names (strings) which use this MatchingRule + * + * @return array The array of attribute names (strings). + */ + public function getUsedByAttrs() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->used_by_attrs); + + return $this->used_by_attrs; + } +} + +/** + * Represents an LDAP schema matchingRuleUse entry + * + * @package phpLDAPadmin + * @subpackage Schema + */ +class MatchingRuleUse extends SchemaItem { + # An array of attribute names who use this MatchingRule + private $used_by_attrs = array(); + + function __construct($strings) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $strings = preg_split('/[\s,]+/',$strings,-1,PREG_SPLIT_DELIM_CAPTURE); + + for($i=0; $iname) || strlen($this->name) == 0) + $this->name = $strings[$i]; + else + $this->name .= ' '.$strings[$i]; + + } while (! preg_match("/\'$/s",$strings[$i])); + + } else { + $i++; + do { + $i++; + if (strlen($this->name) == 0) + $this->name = $strings[$i]; + else + $this->name .= ' '.$strings[$i]; + } while (! preg_match("/\'$/s",$strings[$i])); + + do { + $i++; + } while (! preg_match('/\)+\)?/',$strings[$i])); + } + + $this->name = preg_replace("/^\'/",'',$this->name); + $this->name = preg_replace("/\'$/",'',$this->name); + break; + + case 'APPLIES': + if ($strings[$i+1] != '(') { + # Has a single attribute name + $i++; + $this->used_by_attrs = array($strings[$i]); + + } else { + # Has multiple attribute names + $i++; + while ($strings[$i] != ')') { + $i++; + $new_attr = $strings[$i]; + $new_attr = preg_replace("/^\'/",'',$new_attr); + $new_attr = preg_replace("/\'$/",'',$new_attr); + array_push($this->used_by_attrs,$new_attr); + $i++; + } + } + break; + + default: + if (preg_match('/[\d\.]+/i',$strings[$i]) && $i == 1) + $this->setOID($strings[$i]); + } + } + + sort($this->used_by_attrs); + } + + /** + * Gets an array of attribute names (strings) which use this MatchingRuleUse object. + * + * @return array The array of attribute names (strings). + */ + public function getUsedByAttrs() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',9,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->used_by_attrs); + + return $this->used_by_attrs; + } +} +?> diff --git a/lam/templates/3rdParty/pla/lib/session_functions.php b/lam/templates/3rdParty/pla/lib/session_functions.php new file mode 100644 index 00000000..809d8893 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/session_functions.php @@ -0,0 +1,31 @@ + diff --git a/lam/templates/3rdParty/pla/lib/syslog.php b/lam/templates/3rdParty/pla/lib/syslog.php new file mode 100644 index 00000000..25ca16c1 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/syslog.php @@ -0,0 +1,88 @@ + and Alcôve + * @package phpLDAPadmin + */ + +# If config_default.php hasnt been called yet, then return. +if (! defined('APPCONFIG') || ! isset($_SESSION[APPCONFIG])) + return; + +# Initialize syslog +if ($_SESSION[APPCONFIG]->getValue('debug','syslog') && function_exists('syslog')) { + openlog('phpldapadmin',LOG_ODELAY,LOG_DAEMON); +} + +/** + * Verify that syslog logging is activated in the config via the + * debug->syslog variable and does a call to the syslog() function is it + * is true. + * + * @param emergency Syslog emergency. + * @param log_string String to log. + */ +function syslog_msg($emergency,$log_string) { + if (! function_exists('syslog') || ! isset($_SESSION[APPCONFIG]) || ! $_SESSION[APPCONFIG]->getValue('debug','syslog')) + return; + + return syslog($emergency,$log_string); +} + +/** + * Issue an error message via syslog. + * + * @param log_string Log message to send to syslog. + * @return true on success. + */ +function syslog_err($log_string) { + return syslog_msg(LOG_ERR,$log_string); +} + +/** + * Issue a warning message via syslog. + * + * @param log_string Log message to send to syslog. + * @return true on success. + */ +function syslog_warning($log_string) { + return syslog_msg(LOG_WARNING,$log_string); +} + +/** + * Issue a notice message via syslog. + * + * @param log_string Log message to send to syslog. + * @return true on success. + */ +function syslog_notice($log_string) { + return syslog_msg(LOG_NOTICE,$log_string); +} + +/** + * Issue a debug message via syslog, only if $log_level is set to + * 'debug' from the config file. + * + * @param log_string Log message to send to syslog. + * @return true on success or if debug log is not activated. + */ +function syslog_debug($log_string) { + return syslog_msg(LOG_DEBUG,$log_string); +} +?> diff --git a/lam/templates/3rdParty/pla/lib/template_functions.php b/lam/templates/3rdParty/pla/lib/template_functions.php new file mode 100644 index 00000000..bb3b6069 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/template_functions.php @@ -0,0 +1,23 @@ + diff --git a/lam/templates/3rdParty/pla/lib/xml2array.php b/lam/templates/3rdParty/pla/lib/xml2array.php new file mode 100644 index 00000000..d260c9e4 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/xml2array.php @@ -0,0 +1,144 @@ +stack[count($this->stack)] = &$pos; + $this->stack_ref = &$pos; + } + + private function pop_pos() { + unset($this->stack[count($this->stack) - 1]); + $this->stack_ref = &$this->stack[count($this->stack) - 1]; + } + + public function parseXML($strInputXML,$filename) { + $this->resParser = xml_parser_create(); + xml_set_object($this->resParser,$this); + xml_set_element_handler($this->resParser,'tagOpen','tagClosed'); + + xml_set_character_data_handler($this->resParser,'tagData'); + + $this->push_pos($this->arrOutput); + + $this->strXmlData = xml_parse($this->resParser,$strInputXML); + + if (! $this->strXmlData) + die(sprintf('XML error: %s at line %d in file %s', + xml_error_string(xml_get_error_code($this->resParser)), + xml_get_current_line_number($this->resParser), + $filename)); + + xml_parser_free($this->resParser); + + $output = array(); + foreach ($this->arrOutput as $key => $values) + $output[$key] = $this->cleanXML($values); + + #return $this->arrOutput; + return $output; + } + + private function tagOpen($parser,$name,$attrs) { + $name = strtolower($name); + + if (isset($this->stack_ref[$name])) { + if (! isset($this->stack_ref[$name][0])) { + $tmp = $this->stack_ref[$name]; + unset($this->stack_ref[$name]); + $this->stack_ref[$name][0] = $tmp; + } + + $cnt = count($this->stack_ref[$name]); + $this->stack_ref[$name][$cnt] = array(); + if (isset($attrs)) + $this->stack_ref[$name][$cnt] = $attrs; + + $this->push_pos($this->stack_ref[$name][$cnt]); + + } else { + $this->stack_ref[$name]=array(); + + if (isset($attrs)) + $this->stack_ref[$name]=$attrs; + + $this->push_pos($this->stack_ref[$name]); + } + } + + private function tagData($parser,$tagData) { + if (trim($tagData) != '') { + + if (isset($this->stack_ref['#text'])) + $this->stack_ref['#text'] .= $tagData; + else + $this->stack_ref['#text'] = $tagData; + } + } + + private function tagClosed($parser,$name) { + $this->pop_pos(); + } + + /** + * This function will parse an XML array and make a normal array. + * + * @return array - Clean XML data + */ + private function cleanXML($details) { + # Quick processing for the final branch of the XML array. + if (is_array($details) && isset($details['#text'])) + return $details['#text']; + + elseif (is_array($details) && isset($details['ID']) && count($details) == 1) + return $details['ID']; + + $cleanXML = array(); + + # Quick processing for the final branch, when it holds the ID and values. + if (is_array($details) && isset($details['ID']) && count($details) > 1) { + $key = $details['ID']; + unset($details['ID']); + $cleanXML[$key] = $this->cleanXML($details); + $details = array(); + } + + # More detailed processing... + if (is_array($details)) + foreach ($details as $key => $values) + if (is_numeric($key) && isset($values['ID']) && count($values) > 1) { + $key = $values['ID']; + unset($values['ID']); + $cleanXML[$key] = $this->cleanXML($values); + + } elseif (isset($values['#text'])) + $cleanXML[$key] = $this->cleanXML($values); + + elseif (is_array($values)) + $cleanXML[$key] = $this->cleanXML($values); + + if (! $cleanXML) + return $details; + else + return $cleanXML; + } +} diff --git a/lam/templates/3rdParty/pla/lib/xmlTemplates.php b/lam/templates/3rdParty/pla/lib/xmlTemplates.php new file mode 100644 index 00000000..c3d5aea5 --- /dev/null +++ b/lam/templates/3rdParty/pla/lib/xmlTemplates.php @@ -0,0 +1,499 @@ +server_id = $server_id; + $server = $_SESSION[APPCONFIG]->getServer($this->server_id); + $custom_prefix = $server->getValue('custom','pages_prefix'); + $class = $this->getClassVars(); + $changed = false; + + # Try to get the templates from our CACHE. + if ($this->templates = get_cached_item($server_id,$class['item'])) { + if (DEBUG_ENABLED) + debug_log('Using CACHED templates',4,0,__FILE__,__LINE__,__METHOD__); + + # See if the template_time has expired to see if we should reload the templates. + foreach ($this->templates as $index => $template) { + # If the file no longer exists, we'll delete the template. + if (! file_exists($template->getFileName())) { + unset($this->templates[$index]); + $changed = true; + + system_message(array( + 'title'=>('Template XML file removed.'), + 'body'=>sprintf('%s %s (%s)',('Template XML file has removed'),$template->getName(false),$template->getType()), + 'type'=>'info','special'=>true)); + + continue; + } + + if (($template->getReadTime() < (time()-$class['cachetime'])) + && (filectime($template->getFileName()) > $template->getReadTime())) { + + system_message(array( + 'title'=>('Template XML file changed.'), + 'body'=>sprintf('%s %s (%s)',('Template XML file has changed and been reread'),$template->getName(false),$template->getType()), + 'type'=>'info','special'=>true)); + + $changed = true; + $className = $class['name']; + $this->templates[$index] = new $className($this->server_id,$template->getName(false),$template->getFileName(),$template->getType(),$index); + } + } + + if (DEBUG_ENABLED) + debug_log('Templates refreshed',4,0,__FILE__,__LINE__,__METHOD__); + + # See if there are any new template files + $index = max(array_keys($this->templates))+1; + foreach ($class['types'] as $type) { + $dir = $class['dir'].$type; + $dh = opendir($dir); + if (! $type) + $type = 'template'; + + while ($file = readdir($dh)) { + # Ignore any files that are not XML files. + if (! preg_match('/.xml$/',$file)) + continue; + + # Ignore any files that are not the predefined custom files. + if ($_SESSION[APPCONFIG]->getValue('appearance','custom_templates_only') + && ! preg_match("/^${custom_prefix}/",$file)) + continue; + + $filename = sprintf('%s/%s',$dir,$file); + + if (! in_array($filename,$this->getTemplateFiles())) { + $templatename = preg_replace('/.xml$/','',$file); + + $className = $class['name']; + $this->templates[$index] = new $className($this->server_id,$templatename,$filename,$type,$index); + $index++; + + $changed = true; + + system_message(array( + 'title'=>('New Template XML found.'), + 'body'=>sprintf('%s %s (%s)',('A new template XML file has been loaded'),$file,$type), + 'type'=>'info','special'=>true)); + } + } + } + + } else { + if (DEBUG_ENABLED) + debug_log('Parsing templates',4,0,__FILE__,__LINE__,__METHOD__); + + # Need to reset this, as get_cached_item() returns null if nothing cached. + $this->templates = array(); + $changed = true; + + $counter = 0; + foreach ($class['types'] as $type) { + $dir = $class['dir'].$type; + $dh = opendir($class['dir'].$type); + if (! $type) + $type = 'template'; + + while ($file = readdir($dh)) { + # Ignore any files that are not XML files. + if (! preg_match('/.xml$/',$file)) + continue; + + # Ignore any files that are not the predefined custom files. + if ($_SESSION[APPCONFIG]->getValue('appearance','custom_templates_only') + && ! preg_match("/^${custom_prefix}/",$file)) + continue; + + $filename = sprintf('%s/%s',$dir,$file); + + # Store the template + $templatename = preg_replace('/.xml$/','',$file); + $className = $class['name']; + $this->templates[$counter] = new $className($this->server_id,$templatename,$filename,$type,$counter); + $counter++; + } + } + } + + if (DEBUG_ENABLED) + debug_log('Templates loaded',4,0,__FILE__,__LINE__,__METHOD__); + + if ($changed) { + masort($this->templates,'title'); + set_cached_item($server_id,$class['item'],'null',$this->templates); + } + } + + /** + * This will return our custom class variables, used by the parent to create objects. + */ + private function getClassVars() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $class = array(); + + switch (get_class($this)) { + case 'Queries': + $class['item'] = 'query'; + $class['name'] = 'Query'; + $class['cachetime'] = $_SESSION[APPCONFIG]->getValue('cache','query_time'); + $class['types'] = array(''); + $class['dir'] = QUERYDIR; + + break; + + case 'Templates': + $class['item'] = 'template'; + $class['name'] = 'Template'; + $class['cachetime'] = $_SESSION[APPCONFIG]->getValue('cache','template_time'); + $class['types'] = array('creation','modification'); + $class['dir'] = TMPLDIR; + + break; + + default: + debug_dump_backtrace(sprintf('Unknown class %s',get_class($this)),1); + } + + return $class; + } + + /** + * Return a list of templates by their type + * This function should return a sorted list, as the array is built sorted. + * + * @param string Type of template, eg: creation, modification + * @param boolean Exclude templates purposely disabled. + * @return array List of templates of the type + */ + public function getTemplates($type=null,$container=null,$disabled=false) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $result = array(); + + if (is_array($this->templates)) + foreach ($this->templates as $details) { + + # Clone this, as we'll disable some templates, as a result of the container being requested. + $template = clone $details; + if (! is_null($container) && ($regexp = $template->getRegExp()) && (! @preg_match('/'.$regexp.'/i',$container))) { + $template->setInvalid(('This template is not valid in this container'),true); + + if ($_SESSION[APPCONFIG]->getValue('appearance','hide_template_regexp')) + $template->setInvisible(); + } + + if ($template->isVisible() && (! $disabled || ! $template->isAdminDisabled())) + if (is_null($type) || (! is_null($type) && $template->isType($type))) + array_push($result,$template); + } + + return $result; + } + + /** + * Return a template by its ID + * + * @param string The template ID as it was when it was generated (normally used in $_REQUEST vars). + * @return object Template (or default template if the ID doesnt exist) + */ + function getTemplate($templateid) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $class = $this->getClassVars(); + + foreach ($this->templates as $template) + if ($template->getID() === $templateid) + return clone $template; + + # If we get here, the template ID didnt exist, so return a blank template, which be interpreted as the default template + $className = $class['name']; + $object = new $className($this->server_id,null,null,"default"); + return $object; + } + + /** + * Get a list of template filenames. + */ + private function getTemplateFiles() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $result = array(); + + foreach ($this->templates as $template) + array_push($result,$template->getFileName()); + + return $result; + } +} + +/** + * XML Template Class + * + * @package phpLDAPadmin + * @subpackage Templates + */ +abstract class xmlTemplate { + # Server ID that the template is linked to + protected $server_id; + # Template unique ID + protected $id; + # Template name - as extracted from the filename + protected $name; + # Template type - creation/modification + protected $type; + # Time this object was created + protected $readtime; + # Template file name + protected $filename; + # The TEMPLATE attributes as per the template definition, or the DN entry + protected $attributes = array(); + + public function __construct($server_id,$name=null,$filename=null,$type=null,$id=null) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $this->server_id = $server_id; + $this->name = $name; + $this->type = $type; + $this->filename = $filename; + $this->readtime = time(); + $this->id = $id; + + # If there is no filename, then this template is a default template. + if (is_null($filename)) + return; + + # If we have a filename, parse the template file and build the object. + $objXML = new xml2array(); + $xmldata = $objXML->parseXML(file_get_contents($filename),$filename); + $this->storeTemplate($xmldata); + } + + /** + * Get an attribute ID + * + * @param string The Attribute being searched. + * @return int Attribute ID in the array + */ + protected function getAttrID($attr) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + foreach ($this->attributes as $index => $attribute) + if (strtolower($attr) == $attribute->getName() || in_array(strtolower($attr),$attribute->getAliases())) + return $index; + + return null; + } + + /** + * Get the Template filename. + */ + public function getFileName() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->filename); + + return $this->filename; + } + + /** + * Return the template by ID + */ + public function getID() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs,$this->id); + + if ($this->name) + return sprintf('%s:%s',$this->getName(false),$this->id); + else + return 'none'; + } + + /** + * Return the template name + * + * @param boolean Force the name to be lowercase (default) + */ + public function getName($lower=true) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->name); + + if ($lower) + return strtolower($this->name); + else + return $this->name; + } + + /** + * Get the Template read time. + */ + public function getReadTime() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->readtime); + + return $this->readtime; + } + + /** + * Return this LDAP Server object + * + * @return object DataStore Server + */ + protected function getServer() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs); + + return $_SESSION[APPCONFIG]->getServer($this->getServerID()); + } + + /** + * Return the LDAP server ID + * + * @return int Server ID + */ + protected function getServerID() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->server_id); + + return $this->server_id; + } + + /** + * Test if a template is of a type + * + * @return boolean + */ + public function isType($type) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs,$this->type); + + if ($this->type == $type) + return true; + else + return false; + } + + /** + * Return the template type + */ + public function getType() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->type); + + return $this->type; + } + + /** + * Get template title + */ + public function getTitle() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (! isset($this->title) && ! isset($this->description)) + return ''; + + return isset($this->title) ? $this->title : $this->description; + } + + /** + * Add another attribute to this template + * + * @return int Attribute ID + */ + public function addAttribute($name,$value,$source=null) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + if (! is_array($value)) + debug_dump_backtrace('Value should be an array()',1); + + $server = $this->getServer(); + + # Initialise the Attribute Factory. + $attribute_factory = new AttributeFactory(); + + # If there isnt a schema item for this attribute + $attribute = $attribute_factory->newAttribute($name,$value,$server->getIndex(),$source); + + $attrid = $this->getAttrID($attribute->getName(true, true)); + + if (is_null($attrid)) + array_push($this->attributes,$attribute); + else + debug_dump_backtrace(sprintf('There was a request to add an attribute (%s), but it was already defined? (%s)',$attrid,__METHOD__),true); + + if ($this->getID() == 'none') + usort($this->attributes,'sortAttrs'); + + return $attribute; + } + + /** + * Get the attribute names + * + * @return array Array of attributes Names + */ + public function getAttributeNames() { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + $result = array(); + + foreach ($this->attributes as $attribute) + array_push($result,$attribute->getName()); + + return $result; + } + + /** + * Get a specific Attribute + * + * @param string Name of attribute to retrieve + * @return object Attribute + */ + public function getAttribute($name) { + if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS')) + debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs); + + foreach ($this->attributes as $attribute) + if (($attribute->getName(true, true) == strtolower($name)) || in_array(strtolower($name),$attribute->getAliases())) + return $attribute; + + return null; + } + + /** + * May be overloaded in other classes + */ + public function isAdminDisabled() {} +} +?> diff --git a/lam/templates/3rdParty/pla/queries/.placeholder b/lam/templates/3rdParty/pla/queries/.placeholder new file mode 100644 index 00000000..8d1c8b69 --- /dev/null +++ b/lam/templates/3rdParty/pla/queries/.placeholder @@ -0,0 +1 @@ + diff --git a/lam/templates/3rdParty/pla/templates/creation/ou.xml b/lam/templates/3rdParty/pla/templates/creation/ou.xml new file mode 100644 index 00000000..6e0f45ac --- /dev/null +++ b/lam/templates/3rdParty/pla/templates/creation/ou.xml @@ -0,0 +1,27 @@ + + + + diff --git a/lam/templates/3rdParty/pla/templates/modification/.placeholder b/lam/templates/3rdParty/pla/templates/modification/.placeholder new file mode 100644 index 00000000..8d1c8b69 --- /dev/null +++ b/lam/templates/3rdParty/pla/templates/modification/.placeholder @@ -0,0 +1 @@ + diff --git a/lam/templates/3rdParty/pla/tools/unserialize.php b/lam/templates/3rdParty/pla/tools/unserialize.php new file mode 100644 index 00000000..2a35e609 --- /dev/null +++ b/lam/templates/3rdParty/pla/tools/unserialize.php @@ -0,0 +1,26 @@ +'; +echo ''."\n"; +$index = get_request('index','REQUEST'); +if (! isset($_SESSION['backtrace'][$index])) + die('No backtrace available...?'); + +$line = $_SESSION['backtrace'][$index]; +echo ''; +printf('', + _('File'),isset($line['file']) ? $line['file'] : $last['file'],isset($line['line']) ? $line['line'] : ''); + +printf('', + _('Function'),$line['function']); + +echo ''; + +echo ''; +echo '
    %s%s (%s)
     %s
    ';
    +print_r($line['args']);
    +echo '
    '; +echo ''; +?> diff --git a/lam/templates/account/edit.php b/lam/templates/account/edit.php new file mode 100644 index 00000000..0fb2490b --- /dev/null +++ b/lam/templates/account/edit.php @@ -0,0 +1,120 @@ +get_Suffix($type); + if (strpos($DN, $suffix) !== (strlen($DN) - strlen($suffix))) { + logNewMessage(LOG_ERR, 'User tried to access entry of type ' . $type . ' outside suffix ' . $suffix); + die(); + } + $_SESSION['account'] = new accountContainer($type, 'account'); + $result = $_SESSION['account']->load_account($DN); + if (sizeof($result) > 0) { + include '../main_header.php'; + for ($i=0; $i
    \n"; + ?> + + \n"; + echo "\n"; + echo "

    \n"; + echo "
    \n"; + + // Delete dns + $allOk = true; + $allErrors = array(); + for ($m=0; $mload_account($_SESSION['delete_dn'][$m]); + // get commands and changes of each attribute + $moduleNames = array_keys($_SESSION['account']->getAccountModules()); + $modules = $_SESSION['account']->getAccountModules(); + $attributes = array(); + $errors = array(); + // predelete actions + if (!$stopprocessing) { + foreach ($moduleNames as $singlemodule) { + $success = true; + $messages = $modules[$singlemodule]->preDeleteActions(); + for ($i = 0; $i < sizeof($messages); $i++) { + $errors[] = $messages[$i]; + if ($messages[$i][0] == 'ERROR') { + $success = false; + $allOk = false; + } + elseif ($messages[$i][0] == 'WARN') { + $allOk = false; + } + } + if (!$success) { + $stopprocessing = true; + break; + } + } + } + if (!$stopprocessing) { + // load attributes + foreach ($moduleNames as $singlemodule) { + // load changes + $temp = $modules[$singlemodule]->delete_attributes(); + if (is_array($temp)) { + // merge changes + $DNs = array_keys($temp); + $attributes = array_merge_recursive($temp, $attributes); + for ($i=0; $iserver(), $DNs[$i], $attributes[$DNs[$i]]['modify']); + if (!$success) { + $errors[] = array ('ERROR', sprintf(_('Was unable to modify attributes from DN: %s.'), $DNs[$i]), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + $stopprocessing = true; + $allOk = false; + } + } + // add attributes + if (isset($attributes[$DNs[$i]]['add']) && !$stopprocessing) { + $success = @ldap_mod_add($_SESSION['ldap']->server(), $DNs[$i], $attributes[$DNs[$i]]['add']); + if (!$success) { + $errors[] = array ('ERROR', sprintf(_('Was unable to add attributes to DN: %s.'), $DNs[$i]), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + $stopprocessing = true; + $allOk = false; + } + } + // remove attributes + if (isset($attributes[$DNs[$i]]['remove']) && !$stopprocessing) { + $success = @ldap_mod_del($_SESSION['ldap']->server(), $DNs[$i], $attributes[$DNs[$i]]['remove']); + if (!$success) { + $errors[] = array ('ERROR', sprintf(_('Was unable to remove attributes from DN: %s.'), $DNs[$i]), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + $stopprocessing = true; + $allOk = false; + } + } + } + } + } + if (!$stopprocessing) { + $messages = deleteDN($_SESSION['delete_dn'][$m]); + $errors = array_merge($errors, $messages); + if (sizeof($errors) > 0) { + $stopprocessing = true; + $allOk = false; + } + } + // post delete actions + if (!$stopprocessing) { + foreach ($moduleNames as $singlemodule) { + $messages = $modules[$singlemodule]->postDeleteActions(); + for ($i = 0; $i < sizeof($messages); $i++) { + $errors[] = $messages[$i]; + if (($messages[$i][0] == 'ERROR') || ($messages[$i][0] == 'WARN')) { + $allOk = false; + } + } + } + } + if (!$stopprocessing) { + echo sprintf(_('Deleted DN: %s'), $_SESSION['delete_dn'][$m]) . "
    \n"; + foreach ($errors as $error) { + call_user_func_array('StatusMessage', $error); + } + echo "
    \n"; + flush(); + } + else { + echo sprintf(_('Error while deleting DN: %s'), $_SESSION['delete_dn'][$m]) . "
    \n"; + foreach ($errors as $error) { + call_user_func_array('StatusMessage', $error); + } + echo "
    \n"; + } + $allErrors = array_merge($allErrors, $errors); + } + echo "
    \n"; + echo "
    \n"; + echo "
    \n"; + echo "
    \n"; + echo "\n"; + ?> + + server(), $dn, 'objectClass=*', array('dn'), 0, 0, 0, LDAP_DEREF_NEVER); + if ($sr) { + $entries = ldap_get_entries($_SESSION['ldap']->server(), $sr); + cleanLDAPResult($entries); + for ($i = 0; $i < sizeof($entries); $i++) { + // delete recursively + $subErrors = deleteDN($entries[$i]['dn']); + for ($e = 0; $e < sizeof($subErrors); $e++) $errors[] = $subErrors[$e]; + } + } + else { + $errors[] = array ('ERROR', sprintf(_('Was unable to delete DN: %s.'), $dn), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + return $errors; + } + // delete parent DN + $success = @ldap_delete($_SESSION['ldap']->server(), $dn); + $ldapUser = $_SESSION['ldap']->decrypt_login(); + $ldapUser = $ldapUser[0]; + if (!$success) { + logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to delete DN: ' . $dn . ' (' . ldap_error($_SESSION['ldap']->server()) . ').'); + $errors[] = array ('ERROR', sprintf(_('Was unable to delete DN: %s.'), $dn), getDefaultLDAPErrorString($_SESSION['ldap']->server())); + } + else { + logNewMessage(LOG_NOTICE, '[' . $ldapUser .'] Deleted DN: ' . $dn); + } + return $errors; +} + +?> diff --git a/lam/templates/help.php b/lam/templates/help.php new file mode 100644 index 00000000..b6e2ae13 --- /dev/null +++ b/lam/templates/help.php @@ -0,0 +1,162 @@ + + LDAP Account Manager Help Center + + + + + + + " . $helpEntry['Headline'] . "\n"; + $format = "

    " . $helpEntry['Text'] . "

    \n"; + if (isset($helpEntry['attr'])) { + $format .= '

    ' . _('Technical name') . ': ' . $helpEntry['attr'] . ''; + } + array_unshift($helpVariables,$format); + call_user_func_array("printf",$helpVariables); + if(isset($helpEntry['SeeAlso']) && is_array($helpEntry['SeeAlso'])) { + echo '

    ' . _('See also') . ': ' . $helpEntry['SeeAlso']['text'] . '

    '; + } + echoHTMLFoot(); +} + +/* If no help number was submitted print error message */ +if (!isset($_GET['HelpNumber'])) { + $errorMessage = "Sorry no help number submitted."; + echoHTMLHead(); + statusMessage("ERROR","",$errorMessage); + echoHTMLFoot(); + exit; +} + +$helpEntry = array(); + +// module help +if(isset($_GET['module']) && !($_GET['module'] == 'main') && !($_GET['module'] == '')) { + include_once("../lib/modules.inc"); + if (isset($_GET['scope'])) { + $helpEntry = getHelp($_GET['module'],$_GET['HelpNumber'],$_GET['scope']); + } + else { + $helpEntry = getHelp($_GET['module'],$_GET['HelpNumber']); + } + if (!$helpEntry) { + $variables = array(); + array_push($variables, htmlspecialchars($_GET['HelpNumber'])); + array_push($variables, htmlspecialchars($_GET['module'])); + $errorMessage = _("Sorry this help id ({bold}%s{endbold}) is not available for this module ({bold}%s{endbold})."); + echoHTMLHead(); + statusMessage("ERROR","",$errorMessage,$variables); + echoHTMLFoot(); + exit; + } +} +// help entry in help.inc +else { + /* If submitted help number is not in help/help.inc print error message */ + if (!array_key_exists($_GET['HelpNumber'],$helpArray)) { + $variables = array(); + array_push($variables, htmlspecialchars($_GET['HelpNumber'])); + $errorMessage = _("Sorry this help number ({bold}%s{endbold}) is not available."); + echoHTMLHead(); + statusMessage("ERROR","",$errorMessage,$variables); + echoHTMLFoot(); + exit; + } + else { + $helpEntry = $helpArray[$_GET['HelpNumber']]; + } +} + +$i = 1; +$moreVariables = true; +$helpVariables = array(); +while($moreVariables) { + if (isset($_GET['var' . $i])) { + array_push($helpVariables, htmlspecialchars($_GET['var' . $i])); + $i++; + } + else { + $moreVariables = false; + } +} + +displayHelp($helpEntry,$helpVariables); + +?> \ No newline at end of file diff --git a/lam/templates/initsuff.php b/lam/templates/initsuff.php new file mode 100644 index 00000000..878b7273 --- /dev/null +++ b/lam/templates/initsuff.php @@ -0,0 +1,201 @@ +server(), escapeDN($new_suff[$i]), "objectclass=*", array('dn'), 0, 0, 0, LDAP_DEREF_NEVER); + $res = @ldap_get_entries($_SESSION['ldap']->server(), $info); + if ($res) continue; + $suff = $new_suff[$i]; + // generate DN and attributes + $tmp = explode(",", $suff); + $name = explode("=", $tmp[0]); + array_shift($tmp); + $end = implode(",", $tmp); + if ($name[0] != "ou") { // add root entry + $attr = array(); + $attr[$name[0]] = $name[1]; + $attr['objectClass'] = 'organization'; + $dn = $suff; + if (!@ldap_add($_SESSION['ldap']->server(), $dn, $attr)) { + $fail[] = $suff; + $error[] = ldap_error($_SESSION['ldap']->server()); + continue; + } + } + else { // add organizational unit + $name = $name[1]; + $attr = array(); + $attr['objectClass'] = "organizationalunit"; + $attr['ou'] = $name; + $dn = $suff; + if (!@ldap_add($_SESSION['ldap']->server(), $dn, $attr)) { + // check if we have to add parent entries + if (ldap_errno($_SESSION['ldap']->server()) == 32) { + $temp = explode(",", $suff); + $subsuffs = array(); + // make list of subsuffixes + for ($k = 0; $k < sizeof($temp); $k++) { + $part = explode("=", $temp[$k]); + if ($part[0] == "ou") $subsuffs[] = implode(",", array_slice($temp, $k)); + else { + $subsuffs[] = implode(",", array_slice($temp, $k)); + break; + } + } + // create missing entries + for ($k = sizeof($subsuffs) - 1; $k >= 0; $k--) { + // check if subsuffix is present + $info = @ldap_read($_SESSION['ldap']->server(), escapeDN($subsuffs[$k]), "objectclass=*", array('dn'), 0, 0, 0, LDAP_DEREF_NEVER); + $res = @ldap_get_entries($_SESSION['ldap']->server(), $info); + if (!$res) { + $suffarray = explode(",", $subsuffs[$k]); + $headarray = explode("=", $suffarray[0]); + if ($headarray[0] == "ou") { // add ou entry + $attr = array(); + $attr['objectClass'] = 'organizationalunit'; + $attr['ou'] = $headarray[1]; + $dn = $subsuffs[$k]; + if (!@ldap_add($_SESSION['ldap']->server(), $dn, $attr)) { + $fail[] = $suff; + $error[] = ldap_error($_SESSION['ldap']->server()); + break; + } + } + else { // add root entry + $attr = array(); + $attr['objectClass'][] = 'organization'; + $attr[$headarray[0]] = $headarray[1]; + if ($headarray[0] == "dc") { + $attr['o'] = $headarray[1]; + $attr['objectClass'][] = 'dcObject'; + } + $dn = $subsuffs[$k]; + if (!@ldap_add($_SESSION['ldap']->server(), $dn, $attr)) { + $fail[] = $suff; + $error[] = ldap_error($_SESSION['ldap']->server()); + break; + } + } + } + } + } + else { + $fail[] = $suff; + $error[] = ldap_error($_SESSION['ldap']->server()); + } + } + } + } + } + include 'main_header.php'; + // print error/success messages + if (isset($_POST['add_suff'])) { + if (sizeof($fail) > 0) { + // print error messages + for ($i = 0; $i < sizeof($fail); $i++) { + StatusMessage("ERROR", _("Failed to create entry!") . "
    " . htmlspecialchars($error[$i]), htmlspecialchars($fail[$i])); + } + include 'main_footer.php'; + } + else { + // print success message + StatusMessage("INFO", "", _("All changes were successful.")); + include 'main_footer.php'; + } + } + else { + // no suffixes were created + StatusMessage("INFO", "", _("No changes were made.")); + include 'main_footer.php'; + } + exit; +} + +// first show of page +$new_suff = $_GET['suffs']; +$new_suff = str_replace("\\", "", $new_suff); +$new_suff = str_replace("'", "", $new_suff); +$new_suff = explode(";", $new_suff); + +include 'main_header.php'; + echo '
    '; + echo "
    \n"; + $container = new htmlTable(); + $container->addElement(new htmlOutputText(_("The following suffixes are missing in LDAP. LAM can create them for you.")), true); + $container->addElement(new htmlOutputText(_("You can setup the LDAP suffixes for all account types in your LAM server profile on tab \"Account types\".")), true); + $container->addElement(new htmlSpacer(null, '10px'), true); + // print missing suffixes + for ($i = 0; $i < sizeof($new_suff); $i++) { + $container->addElement(new htmlOutputText($new_suff[$i]), true); + } + $container->addElement(new htmlSpacer(null, '10px'), true); + + $buttonContainer = new htmlTable(); + $buttonContainer->addElement(new htmlButton('add_suff', _("Create"))); + $buttonContainer->addElement(new htmlButton('cancel', _("Cancel"))); + $buttonContainer->addElement(new htmlHiddenInput('new_suff', implode(";", $new_suff))); + $container->addElement($buttonContainer); + + $tabindex = 1; + parseHtml(null, $container, array(), false, $tabindex, 'user'); + + echo "

    \n"; + echo "
    \n"; +include 'main_footer.php'; +?> diff --git a/lam/templates/lib/100_jquery-1.9.1.js b/lam/templates/lib/100_jquery-1.9.1.js new file mode 100644 index 00000000..e2c203fe --- /dev/null +++ b/lam/templates/lib/100_jquery-1.9.1.js @@ -0,0 +1,9597 @@ +/*! + * jQuery JavaScript Library v1.9.1 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2005, 2012 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2013-2-4 + */ +(function( window, undefined ) { + +// Can't do this because several apps including ASP.NET trace +// the stack via arguments.caller.callee and Firefox dies if +// you try to trace through "use strict" call chains. (#13335) +// Support: Firefox 18+ +//"use strict"; +var + // The deferred used on DOM ready + readyList, + + // A central reference to the root jQuery(document) + rootjQuery, + + // Support: IE<9 + // For `typeof node.method` instead of `node.method !== undefined` + core_strundefined = typeof undefined, + + // Use the correct document accordingly with window argument (sandbox) + document = window.document, + location = window.location, + + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$, + + // [[Class]] -> type pairs + class2type = {}, + + // List of deleted data cache ids, so we can reuse them + core_deletedIds = [], + + core_version = "1.9.1", + + // Save a reference to some core methods + core_concat = core_deletedIds.concat, + core_push = core_deletedIds.push, + core_slice = core_deletedIds.slice, + core_indexOf = core_deletedIds.indexOf, + core_toString = class2type.toString, + core_hasOwn = class2type.hasOwnProperty, + core_trim = core_version.trim, + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }, + + // Used for matching numbers + core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + + // Used for splitting on whitespace + core_rnotwhite = /\S+/g, + + // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/, + + // Match a standalone tag + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, + + // JSON RegExp + rvalidchars = /^[\],:{}\s]*$/, + rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, + rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, + rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }, + + // The ready event handler + completed = function( event ) { + + // readyState === "complete" is good enough for us to call the dom ready in oldIE + if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { + detach(); + jQuery.ready(); + } + }, + // Clean-up method for dom ready events + detach = function() { + if ( document.addEventListener ) { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); + + } else { + document.detachEvent( "onreadystatechange", completed ); + window.detachEvent( "onload", completed ); + } + }; + +jQuery.fn = jQuery.prototype = { + // The current version of jQuery being used + jquery: core_version, + + constructor: jQuery, + init: function( selector, context, rootjQuery ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + + // scripts is true for back-compat + jQuery.merge( this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }, + + // Start with an empty selector + selector: "", + + // The default length of a jQuery object is 0 + length: 0, + + // The number of elements contained in the matched element set + size: function() { + return this.length; + }, + + toArray: function() { + return core_slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + ret.context = this.context; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + ready: function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; + }, + + slice: function() { + return this.pushStack( core_slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: core_push, + sort: [].sort, + splice: [].splice +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +jQuery.extend = jQuery.fn.extend = function() { + var src, copyIsArray, copy, name, options, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + noConflict: function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; + }, + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger("ready").off("ready"); + } + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + isWindow: function( obj ) { + return obj != null && obj == obj.window; + }, + + isNumeric: function( obj ) { + return !isNaN( parseFloat(obj) ) && isFinite( obj ); + }, + + type: function( obj ) { + if ( obj == null ) { + return String( obj ); + } + return typeof obj === "object" || typeof obj === "function" ? + class2type[ core_toString.call(obj) ] || "object" : + typeof obj; + }, + + isPlainObject: function( obj ) { + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + try { + // Not own constructor property must be Object + if ( obj.constructor && + !core_hasOwn.call(obj, "constructor") && + !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + } catch ( e ) { + // IE8,9 Will throw exceptions on certain host objects #9897 + return false; + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + + var key; + for ( key in obj ) {} + + return key === undefined || core_hasOwn.call( obj, key ); + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + error: function( msg ) { + throw new Error( msg ); + }, + + // data: string of html + // context (optional): If specified, the fragment will be created in this context, defaults to document + // keepScripts (optional): If true, will include scripts passed in the html string + parseHTML: function( data, context, keepScripts ) { + if ( !data || typeof data !== "string" ) { + return null; + } + if ( typeof context === "boolean" ) { + keepScripts = context; + context = false; + } + context = context || document; + + var parsed = rsingleTag.exec( data ), + scripts = !keepScripts && []; + + // Single tag + if ( parsed ) { + return [ context.createElement( parsed[1] ) ]; + } + + parsed = jQuery.buildFragment( [ data ], context, scripts ); + if ( scripts ) { + jQuery( scripts ).remove(); + } + return jQuery.merge( [], parsed.childNodes ); + }, + + parseJSON: function( data ) { + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + return window.JSON.parse( data ); + } + + if ( data === null ) { + return data; + } + + if ( typeof data === "string" ) { + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + if ( data ) { + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test( data.replace( rvalidescape, "@" ) + .replace( rvalidtokens, "]" ) + .replace( rvalidbraces, "")) ) { + + return ( new Function( "return " + data ) )(); + } + } + } + + jQuery.error( "Invalid JSON: " + data ); + }, + + // Cross-browser xml parsing + parseXML: function( data ) { + var xml, tmp; + if ( !data || typeof data !== "string" ) { + return null; + } + try { + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + } catch( e ) { + xml = undefined; + } + if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; + }, + + noop: function() {}, + + // Evaluates a script in a global context + // Workarounds based on findings by Jim Driscoll + // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context + globalEval: function( data ) { + if ( data && jQuery.trim( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + // args is for internal usage only + each: function( obj, callback, args ) { + var value, + i = 0, + length = obj.length, + isArray = isArraylike( obj ); + + if ( args ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } + } + + return obj; + }, + + // Use native String.trim function wherever possible + trim: core_trim && !core_trim.call("\uFEFF\xA0") ? + function( text ) { + return text == null ? + "" : + core_trim.call( text ); + } : + + // Otherwise use our own trimming functionality + function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArraylike( Object(arr) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + core_push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + var len; + + if ( arr ) { + if ( core_indexOf ) { + return core_indexOf.call( arr, elem, i ); + } + + len = arr.length; + i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; + + for ( ; i < len; i++ ) { + // Skip accessing in sparse arrays + if ( i in arr && arr[ i ] === elem ) { + return i; + } + } + } + + return -1; + }, + + merge: function( first, second ) { + var l = second.length, + i = first.length, + j = 0; + + if ( typeof l === "number" ) { + for ( ; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, inv ) { + var retVal, + ret = [], + i = 0, + length = elems.length; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, + i = 0, + length = elems.length, + isArray = isArraylike( elems ), + ret = []; + + // Go through the array, translating each of the items to their + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + } + + // Flatten any nested arrays + return core_concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var args, proxy, tmp; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = core_slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + // Multifunctional method to get and set values of a collection + // The value/s can optionally be executed if it's a function + access: function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + length = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < length; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + length ? fn( elems[0], key ) : emptyGet; + }, + + now: function() { + return ( new Date() ).getTime(); + } +}); + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // we once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + // Standards-based browsers support DOMContentLoaded + } else if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + + // If IE event model is used + } else { + // Ensure firing before onload, maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", completed ); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", completed ); + + // If IE and not a frame + // continually check to see if the document is ready + var top = false; + + try { + top = window.frameElement == null && document.documentElement; + } catch(e) {} + + if ( top && top.doScroll ) { + (function doScrollCheck() { + if ( !jQuery.isReady ) { + + try { + // Use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + top.doScroll("left"); + } catch(e) { + return setTimeout( doScrollCheck, 50 ); + } + + // detach all dom ready events + detach(); + + // and execute any waiting functions + jQuery.ready(); + } + })(); + } + } + } + return readyList.promise( obj ); +}; + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +function isArraylike( obj ) { + var length = obj.length, + type = jQuery.type( obj ); + + if ( jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.nodeType === 1 && length ) { + return true; + } + + return type === "array" || type !== "function" && + ( length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj ); +} + +// All jQuery objects should point back to these +rootjQuery = jQuery(document); +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + }); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // First callback to fire (used internally by add and fireWith) + firingStart, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); + }, + // Remove all callbacks from the list + empty: function() { + list = []; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( list && ( !fired || stack ) ) { + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var action = tuple[ 0 ], + fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = core_slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; + if( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // if we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); +jQuery.support = (function() { + + var support, all, a, + input, select, fragment, + opt, eventName, isSupported, i, + div = document.createElement("div"); + + // Setup + div.setAttribute( "className", "t" ); + div.innerHTML = "
    a"; + + // Support tests won't run in some limited or non-browser environments + all = div.getElementsByTagName("*"); + a = div.getElementsByTagName("a")[ 0 ]; + if ( !all || !a || !all.length ) { + return {}; + } + + // First batch of tests + select = document.createElement("select"); + opt = select.appendChild( document.createElement("option") ); + input = div.getElementsByTagName("input")[ 0 ]; + + a.style.cssText = "top:1px;float:left;opacity:.5"; + support = { + // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) + getSetAttribute: div.className !== "t", + + // IE strips leading whitespace when .innerHTML is used + leadingWhitespace: div.firstChild.nodeType === 3, + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + tbody: !div.getElementsByTagName("tbody").length, + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + htmlSerialize: !!div.getElementsByTagName("link").length, + + // Get the style information from getAttribute + // (IE uses .cssText instead) + style: /top/.test( a.getAttribute("style") ), + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + hrefNormalized: a.getAttribute("href") === "/a", + + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + opacity: /^0.5/.test( a.style.opacity ), + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + cssFloat: !!a.style.cssFloat, + + // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) + checkOn: !!input.value, + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + optSelected: opt.selected, + + // Tests for enctype support on a form (#6743) + enctype: !!document.createElement("form").enctype, + + // Makes sure cloning an html5 element does not cause problems + // Where outerHTML is undefined, this still works + html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>", + + // jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode + boxModel: document.compatMode === "CSS1Compat", + + // Will be defined later + deleteExpando: true, + noCloneEvent: true, + inlineBlockNeedsLayout: false, + shrinkWrapBlocks: false, + reliableMarginRight: true, + boxSizingReliable: true, + pixelPosition: false + }; + + // Make sure checked status is properly cloned + input.checked = true; + support.noCloneChecked = input.cloneNode( true ).checked; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as disabled) + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Support: IE<9 + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; + } + + // Check if we can trust getAttribute("value") + input = document.createElement("input"); + input.setAttribute( "value", "" ); + support.input = input.getAttribute( "value" ) === ""; + + // Check if an input maintains its value after becoming a radio + input.value = "t"; + input.setAttribute( "type", "radio" ); + support.radioValue = input.value === "t"; + + // #11217 - WebKit loses check when the name is after the checked attribute + input.setAttribute( "checked", "t" ); + input.setAttribute( "name", "t" ); + + fragment = document.createDocumentFragment(); + fragment.appendChild( input ); + + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + support.appendChecked = input.checked; + + // WebKit doesn't clone checked state correctly in fragments + support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE<9 + // Opera does not clone events (and typeof div.attachEvent === undefined). + // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() + if ( div.attachEvent ) { + div.attachEvent( "onclick", function() { + support.noCloneEvent = false; + }); + + div.cloneNode( true ).click(); + } + + // Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event) + // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP), test/csp.php + for ( i in { submit: true, change: true, focusin: true }) { + div.setAttribute( eventName = "on" + i, "t" ); + + support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false; + } + + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + // Run tests that need a body at doc ready + jQuery(function() { + var container, marginDiv, tds, + divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;", + body = document.getElementsByTagName("body")[0]; + + if ( !body ) { + // Return for frameset docs that don't have a body + return; + } + + container = document.createElement("div"); + container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"; + + body.appendChild( container ).appendChild( div ); + + // Support: IE8 + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + div.innerHTML = "
    t
    "; + tds = div.getElementsByTagName("td"); + tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; + isSupported = ( tds[ 0 ].offsetHeight === 0 ); + + tds[ 0 ].style.display = ""; + tds[ 1 ].style.display = "none"; + + // Support: IE8 + // Check if empty table cells still have offsetWidth/Height + support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); + + // Check box-sizing and margin behavior + div.innerHTML = ""; + div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"; + support.boxSizing = ( div.offsetWidth === 4 ); + support.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== 1 ); + + // Use window.getComputedStyle because jsdom on node.js will break without it. + if ( window.getComputedStyle ) { + support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; + support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; + + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. (#3333) + // Fails in WebKit before Feb 2011 nightlies + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + marginDiv = div.appendChild( document.createElement("div") ); + marginDiv.style.cssText = div.style.cssText = divReset; + marginDiv.style.marginRight = marginDiv.style.width = "0"; + div.style.width = "1px"; + + support.reliableMarginRight = + !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); + } + + if ( typeof div.style.zoom !== core_strundefined ) { + // Support: IE<8 + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + div.innerHTML = ""; + div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1"; + support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); + + // Support: IE6 + // Check if elements with layout shrink-wrap their children + div.style.display = "block"; + div.innerHTML = "
    "; + div.firstChild.style.width = "5px"; + support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); + + if ( support.inlineBlockNeedsLayout ) { + // Prevent IE 6 from affecting layout for positioned elements #11048 + // Prevent IE from shrinking the body in IE 7 mode #12869 + // Support: IE<8 + body.style.zoom = 1; + } + } + + body.removeChild( container ); + + // Null elements to avoid leaks in IE + container = div = tds = marginDiv = null; + }); + + // Null elements to avoid leaks in IE + all = select = fragment = opt = a = input = null; + + return support; +})(); + +var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, + rmultiDash = /([A-Z])/g; + +function internalData( elem, name, data, pvt /* Internal Use Only */ ){ + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, ret, + internalKey = jQuery.expando, + getByName = typeof name === "string", + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + elem[ internalKey ] = id = core_deletedIds.pop() || jQuery.guid++; + } else { + id = internalKey; + } + } + + if ( !cache[ id ] ) { + cache[ id ] = {}; + + // Avoids exposing jQuery metadata on plain JS objects when the object + // is serialized using JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ] = jQuery.extend( cache[ id ], name ); + } else { + cache[ id ].data = jQuery.extend( cache[ id ].data, name ); + } + } + + thisCache = cache[ id ]; + + // jQuery data() is stored in a separate object inside the object's internal data + // cache in order to avoid key collisions between internal data and user-defined + // data. + if ( !pvt ) { + if ( !thisCache.data ) { + thisCache.data = {}; + } + + thisCache = thisCache.data; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( getByName ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; +} + +function internalRemoveData( elem, name, pvt ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var i, l, thisCache, + isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + + thisCache = pvt ? cache[ id ] : cache[ id ].data; + + if ( thisCache ) { + + // Support array or space separated string names for data keys + if ( !jQuery.isArray( name ) ) { + + // try the string as a key before any manipulation + if ( name in thisCache ) { + name = [ name ]; + } else { + + // split the camel cased version by spaces unless a key with the spaces exists + name = jQuery.camelCase( name ); + if ( name in thisCache ) { + name = [ name ]; + } else { + name = name.split(" "); + } + } + } else { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = name.concat( jQuery.map( name, jQuery.camelCase ) ); + } + + for ( i = 0, l = name.length; i < l; i++ ) { + delete thisCache[ name[i] ]; + } + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( !pvt ) { + delete cache[ id ].data; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject( cache[ id ] ) ) { + return; + } + } + + // Destroy the cache + if ( isNode ) { + jQuery.cleanData( [ elem ], true ); + + // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) + } else if ( jQuery.support.deleteExpando || cache != cache.window ) { + delete cache[ id ]; + + // When all else fails, null + } else { + cache[ id ] = null; + } +} + +jQuery.extend({ + cache: {}, + + // Unique for each copy of jQuery on the page + // Non-digits removed to match rinlinejQuery + expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ), + + // The following elements throw uncatchable exceptions if you + // attempt to add expando properties to them. + noData: { + "embed": true, + // Ban all objects except for Flash (which handle expandos) + "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", + "applet": true + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data ) { + return internalData( elem, name, data ); + }, + + removeData: function( elem, name ) { + return internalRemoveData( elem, name ); + }, + + // For internal use only. + _data: function( elem, name, data ) { + return internalData( elem, name, data, true ); + }, + + _removeData: function( elem, name ) { + return internalRemoveData( elem, name, true ); + }, + + // A method for determining if a DOM node can handle the data expando + acceptData: function( elem ) { + // Do not set data on non-element because it will not be cleared (#8335). + if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) { + return false; + } + + var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; + + // nodes accept data unless otherwise specified; rejection can be conditional + return !noData || noData !== true && elem.getAttribute("classid") === noData; + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var attrs, name, + elem = this[0], + i = 0, + data = null; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = jQuery.data( elem ); + + if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { + attrs = elem.attributes; + for ( ; i < attrs.length; i++ ) { + name = attrs[i].name; + + if ( !name.indexOf( "data-" ) ) { + name = jQuery.camelCase( name.slice(5) ); + + dataAttr( elem, name, data[ name ] ); + } + } + jQuery._data( elem, "parsedAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + return jQuery.access( this, function( value ) { + + if ( value === undefined ) { + // Try to fetch any internally stored data first + return elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null; + } + + this.each(function() { + jQuery.data( this, key, value ); + }); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } +}); + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + + var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + +// checks a cache object for emptiness +function isEmptyDataObject( obj ) { + var name; + for ( name in obj ) { + + // if the public data object is empty, the private is still empty + if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { + continue; + } + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray(data) ) { + queue = jQuery._data( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + hooks.cur = fn; + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // not intended for public consumption - generates a queueHooks object, or returns the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return jQuery._data( elem, key ) || jQuery._data( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + jQuery._removeData( elem, type + "queue" ); + jQuery._removeData( elem, key ); + }) + }); + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + // Based off of the plugin by Clint Helfers, with permission. + // http://blindsignals.com/index.php/2009/07/jquery-delay/ + delay: function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = setTimeout( next, time ); + hooks.stop = function() { + clearTimeout( timeout ); + }; + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while( i-- ) { + tmp = jQuery._data( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +}); +var nodeHook, boolHook, + rclass = /[\t\r\n]/g, + rreturn = /\r/g, + rfocusable = /^(?:input|select|textarea|button|object)$/i, + rclickable = /^(?:a|area)$/i, + rboolean = /^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i, + ruseDefault = /^(?:checked|selected)$/i, + getSetAttribute = jQuery.support.getSetAttribute, + getSetInput = jQuery.support.input; + +jQuery.fn.extend({ + attr: function( name, value ) { + return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + }, + + prop: function( name, value ) { + return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} + }); + }, + + addClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call( this, j, this.className ) ); + }); + } + + if ( proceed ) { + // The disjunction here is for better compressibility (see removeClass) + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + " " + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + elem.className = jQuery.trim( cur ); + + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = arguments.length === 0 || typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call( this, j, this.className ) ); + }); + } + if ( proceed ) { + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + "" + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + elem.className = value ? jQuery.trim( cur ) : ""; + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isBool = typeof stateVal === "boolean"; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + state = stateVal, + classNames = value.match( core_rnotwhite ) || []; + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space separated list + state = isBool ? state : !self.hasClass( className ); + self[ state ? "addClass" : "removeClass" ]( className ); + } + + // Toggle whole class name + } else if ( type === core_strundefined || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // If the element has a class name or if we're passed "false", + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { + return true; + } + } + + return false; + }, + + val: function( value ) { + var ret, hooks, isFunction, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // handle most common string cases + ret.replace(rreturn, "") : + // handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var val, + self = jQuery(this); + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, self.val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map(val, function ( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + // attributes.value is undefined in Blackberry 4.7 but + // uses .value. See #6932 + var val = elem.attributes.value; + return !val || val.specified ? elem.value : elem.text; + } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one" || index < 0, + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + one ? index : 0; + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // oldIE doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + // Don't return options that are disabled or in a disabled optgroup + ( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && + ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var values = jQuery.makeArray( value ); + + jQuery(elem).find("option").each(function() { + this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; + }); + + if ( !values.length ) { + elem.selectedIndex = -1; + } + return values; + } + } + }, + + attr: function( elem, name, value ) { + var hooks, notxml, ret, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === core_strundefined ) { + return jQuery.prop( elem, name, value ); + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( notxml ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + + } else if ( hooks && notxml && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, value + "" ); + return value; + } + + } else if ( hooks && notxml && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + + // In IE9+, Flash objects don't have .getAttribute (#12945) + // Support: IE9+ + if ( typeof elem.getAttribute !== core_strundefined ) { + ret = elem.getAttribute( name ); + } + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? + undefined : + ret; + } + }, + + removeAttr: function( elem, value ) { + var name, propName, + i = 0, + attrNames = value && value.match( core_rnotwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( (name = attrNames[i++]) ) { + propName = jQuery.propFix[ name ] || name; + + // Boolean attributes get special treatment (#10870) + if ( rboolean.test( name ) ) { + // Set corresponding property to false for boolean attributes + // Also clear defaultChecked/defaultSelected (if appropriate) for IE<8 + if ( !getSetAttribute && ruseDefault.test( name ) ) { + elem[ jQuery.camelCase( "default-" + name ) ] = + elem[ propName ] = false; + } else { + elem[ propName ] = false; + } + + // See #9699 for explanation of this approach (setting first, then removal) + } else { + jQuery.attr( elem, name, "" ); + } + + elem.removeAttribute( getSetAttribute ? name : propName ); + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { + // Setting the type on a radio button after the value resets the value in IE6-9 + // Reset value to default in case type is set after value during creation + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + propFix: { + tabindex: "tabIndex", + readonly: "readOnly", + "for": "htmlFor", + "class": "className", + maxlength: "maxLength", + cellspacing: "cellSpacing", + cellpadding: "cellPadding", + rowspan: "rowSpan", + colspan: "colSpan", + usemap: "useMap", + frameborder: "frameBorder", + contenteditable: "contentEditable" + }, + + prop: function( elem, name, value ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + return ( elem[ name ] = value ); + } + + } else { + if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + return elem[ name ]; + } + } + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + var attributeNode = elem.getAttributeNode("tabindex"); + + return attributeNode && attributeNode.specified ? + parseInt( attributeNode.value, 10 ) : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + undefined; + } + } + } +}); + +// Hook for boolean attributes +boolHook = { + get: function( elem, name ) { + var + // Use .prop to determine if this attribute is understood as boolean + prop = jQuery.prop( elem, name ), + + // Fetch it accordingly + attr = typeof prop === "boolean" && elem.getAttribute( name ), + detail = typeof prop === "boolean" ? + + getSetInput && getSetAttribute ? + attr != null : + // oldIE fabricates an empty string for missing boolean attributes + // and conflates checked/selected into attroperties + ruseDefault.test( name ) ? + elem[ jQuery.camelCase( "default-" + name ) ] : + !!attr : + + // fetch an attribute node for properties not recognized as boolean + elem.getAttributeNode( name ); + + return detail && detail.value !== false ? + name.toLowerCase() : + undefined; + }, + set: function( elem, value, name ) { + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + // IE<8 needs the *property* name + elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); + + // Use defaultChecked and defaultSelected for oldIE + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; + } + + return name; + } +}; + +// fix oldIE value attroperty +if ( !getSetInput || !getSetAttribute ) { + jQuery.attrHooks.value = { + get: function( elem, name ) { + var ret = elem.getAttributeNode( name ); + return jQuery.nodeName( elem, "input" ) ? + + // Ignore the value *property* by using defaultValue + elem.defaultValue : + + ret && ret.specified ? ret.value : undefined; + }, + set: function( elem, value, name ) { + if ( jQuery.nodeName( elem, "input" ) ) { + // Does not return so that setAttribute is also used + elem.defaultValue = value; + } else { + // Use nodeHook if defined (#1954); otherwise setAttribute is fine + return nodeHook && nodeHook.set( elem, value, name ); + } + } + }; +} + +// IE6/7 do not support getting/setting some attributes with get/setAttribute +if ( !getSetAttribute ) { + + // Use this for any attribute in IE6/7 + // This fixes almost every IE6/7 issue + nodeHook = jQuery.valHooks.button = { + get: function( elem, name ) { + var ret = elem.getAttributeNode( name ); + return ret && ( name === "id" || name === "name" || name === "coords" ? ret.value !== "" : ret.specified ) ? + ret.value : + undefined; + }, + set: function( elem, value, name ) { + // Set the existing or create a new attribute node + var ret = elem.getAttributeNode( name ); + if ( !ret ) { + elem.setAttributeNode( + (ret = elem.ownerDocument.createAttribute( name )) + ); + } + + ret.value = value += ""; + + // Break association with cloned elements by also using setAttribute (#9646) + return name === "value" || value === elem.getAttribute( name ) ? + value : + undefined; + } + }; + + // Set contenteditable to false on removals(#10429) + // Setting to empty string throws an error as an invalid value + jQuery.attrHooks.contenteditable = { + get: nodeHook.get, + set: function( elem, value, name ) { + nodeHook.set( elem, value === "" ? false : value, name ); + } + }; + + // Set width and height to auto instead of 0 on empty string( Bug #8150 ) + // This is for removals + jQuery.each([ "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + set: function( elem, value ) { + if ( value === "" ) { + elem.setAttribute( name, "auto" ); + return value; + } + } + }); + }); +} + + +// Some attributes require a special call on IE +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !jQuery.support.hrefNormalized ) { + jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + get: function( elem ) { + var ret = elem.getAttribute( name, 2 ); + return ret == null ? undefined : ret; + } + }); + }); + + // href/src property should get the full normalized URL (#10299/#12915) + jQuery.each([ "href", "src" ], function( i, name ) { + jQuery.propHooks[ name ] = { + get: function( elem ) { + return elem.getAttribute( name, 4 ); + } + }; + }); +} + +if ( !jQuery.support.style ) { + jQuery.attrHooks.style = { + get: function( elem ) { + // Return undefined in the case of empty string + // Note: IE uppercases css property names, but if we were to .toLowerCase() + // .cssText, that would destroy case senstitivity in URL's, like in "background" + return elem.style.cssText || undefined; + }, + set: function( elem, value ) { + return ( elem.style.cssText = value + "" ); + } + }; +} + +// Safari mis-reports the default selected property of an option +// Accessing the parent's selectedIndex property fixes it +if ( !jQuery.support.optSelected ) { + jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { + get: function( elem ) { + var parent = elem.parentNode; + + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + return null; + } + }); +} + +// IE6/7 call enctype encoding +if ( !jQuery.support.enctype ) { + jQuery.propFix.enctype = "encoding"; +} + +// Radios and checkboxes getter/setter +if ( !jQuery.support.checkOn ) { + jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + get: function( elem ) { + // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified + return elem.getAttribute("value") === null ? "on" : elem.value; + } + }; + }); +} +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); + } + } + }); +}); +var rformElems = /^(?:input|select|textarea)$/i, + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + var tmp, events, t, handleObjIn, + special, eventHandle, handleObj, + handlers, type, namespaces, origType, + elemData = jQuery._data( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !(events = elemData.events) ) { + events = elemData.events = {}; + } + if ( !(eventHandle = elemData.handle) ) { + eventHandle = elemData.handle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ? + jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : + undefined; + }; + // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events + eventHandle.elem = elem; + } + + // Handle multiple events separated by a space + // jQuery(...).bind("mouseover mouseout", fn); + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !(handlers = events[ type ]) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener/attachEvent if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + var j, handleObj, tmp, + origCount, t, events, + special, handlers, type, + namespaces, origType, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + + // removeData also checks for emptiness and clears the expando if empty + // so use it instead of delete + jQuery._removeData( elem, "events" ); + } + }, + + trigger: function( event, data, elem, onlyHandlers ) { + var handle, ontype, cur, + bubbleType, special, tmp, i, + eventPath = [ elem || document ], + type = core_hasOwn.call( event, "type" ) ? event.type : event, + namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf(":") < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + event.isTrigger = true; + event.namespace = namespaces.join("."); + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) { + event.preventDefault(); + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) && + !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Can't use an .isFunction() check here because IE6/7 fails that test. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + try { + elem[ type ](); + } catch ( e ) { + // IE<9 dies on focus/blur to hidden element (#1486,#12518) + // only reproducible on winXP IE8 native, not IE9 in IE8 mode + } + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, ret, handleObj, matched, j, + handlerQueue = [], + args = core_slice.call( arguments ), + handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var sel, handleObj, matches, i, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + // Black-hole SVG instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { + + for ( ; cur != this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, handlers: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); + } + + return handlerQueue; + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: IE<9 + // Fix target property (#1925) + if ( !event.target ) { + event.target = originalEvent.srcElement || document; + } + + // Support: Chrome 23+, Safari? + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // Support: IE<9 + // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) + event.metaKey = !!event.metaKey; + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var body, eventDoc, doc, + button = original.button, + fromElement = original.fromElement; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && fromElement ) { + event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + special: { + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { + this.click(); + return false; + } + } + }, + focus: { + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== document.activeElement && this.focus ) { + try { + this.focus(); + return false; + } catch ( e ) { + // Support: IE<9 + // If we error on focus to hidden element (#1486, #12518), + // let .trigger() run the handlers + } + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === document.activeElement && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + + beforeunload: { + postDispatch: function( event ) { + + // Even when returnValue equals to undefined Firefox will still show alert + if ( event.result !== undefined ) { + event.originalEvent.returnValue = event.result; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + var name = "on" + type; + + if ( elem.detachEvent ) { + + // #8545, #7054, preventing memory leaks for custom events in IE6-8 + // detachEvent needed property on element, by name of that event, to properly expose it to GC + if ( typeof elem[ name ] === core_strundefined ) { + elem[ name ] = null; + } + + elem.detachEvent( name, handle ); + } + }; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + if ( !e ) { + return; + } + + // If preventDefault exists, run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // Support: IE + // Otherwise set the returnValue property of the original event to false + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + if ( !e ) { + return; + } + // If stopPropagation exists, run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + + // Support: IE + // Set the cancelBubble property of the original event to true + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + } +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// IE submit delegation +if ( !jQuery.support.submitBubbles ) { + + jQuery.event.special.submit = { + setup: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Lazy-add a submit handler when a descendant form may potentially be submitted + jQuery.event.add( this, "click._submit keypress._submit", function( e ) { + // Node name check avoids a VML-related crash in IE (#9807) + var elem = e.target, + form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; + if ( form && !jQuery._data( form, "submitBubbles" ) ) { + jQuery.event.add( form, "submit._submit", function( event ) { + event._submit_bubble = true; + }); + jQuery._data( form, "submitBubbles", true ); + } + }); + // return undefined since we don't need an event listener + }, + + postDispatch: function( event ) { + // If form was submitted by the user, bubble the event up the tree + if ( event._submit_bubble ) { + delete event._submit_bubble; + if ( this.parentNode && !event.isTrigger ) { + jQuery.event.simulate( "submit", this.parentNode, event, true ); + } + } + }, + + teardown: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Remove delegated handlers; cleanData eventually reaps submit handlers attached above + jQuery.event.remove( this, "._submit" ); + } + }; +} + +// IE change delegation and checkbox/radio fix +if ( !jQuery.support.changeBubbles ) { + + jQuery.event.special.change = { + + setup: function() { + + if ( rformElems.test( this.nodeName ) ) { + // IE doesn't fire change on a check/radio until blur; trigger it on click + // after a propertychange. Eat the blur-change in special.change.handle. + // This still fires onchange a second time for check/radio after blur. + if ( this.type === "checkbox" || this.type === "radio" ) { + jQuery.event.add( this, "propertychange._change", function( event ) { + if ( event.originalEvent.propertyName === "checked" ) { + this._just_changed = true; + } + }); + jQuery.event.add( this, "click._change", function( event ) { + if ( this._just_changed && !event.isTrigger ) { + this._just_changed = false; + } + // Allow triggered, simulated change events (#11500) + jQuery.event.simulate( "change", this, event, true ); + }); + } + return false; + } + // Delegated event; lazy-add a change handler on descendant inputs + jQuery.event.add( this, "beforeactivate._change", function( e ) { + var elem = e.target; + + if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { + jQuery.event.add( elem, "change._change", function( event ) { + if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { + jQuery.event.simulate( "change", this.parentNode, event, true ); + } + }); + jQuery._data( elem, "changeBubbles", true ); + } + }); + }, + + handle: function( event ) { + var elem = event.target; + + // Swallow native change events from checkbox/radio, we already triggered them above + if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { + return event.handleObj.handler.apply( this, arguments ); + } + }, + + teardown: function() { + jQuery.event.remove( this, "._change" ); + + return !rformElems.test( this.nodeName ); + } + }; +} + +// Create "bubbling" focus and blur events +if ( !jQuery.support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler while someone wants focusin/focusout + var attaches = 0, + handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + if ( attaches++ === 0 ) { + document.addEventListener( orig, handler, true ); + } + }, + teardown: function() { + if ( --attaches === 0 ) { + document.removeEventListener( orig, handler, true ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var type, origFn; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + bind: function( types, data, fn ) { + return this.on( types, null, data, fn ); + }, + unbind: function( types, fn ) { + return this.off( types, null, fn ); + }, + + delegate: function( selector, types, data, fn ) { + return this.on( types, selector, data, fn ); + }, + undelegate: function( selector, types, fn ) { + // ( namespace ) or ( selector, types [, fn] ) + return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2012 jQuery Foundation and other contributors + * Released under the MIT license + * http://sizzlejs.com/ + */ +(function( window, undefined ) { + +var i, + cachedruns, + Expr, + getText, + isXML, + compile, + hasDuplicate, + outermostContext, + + // Local document vars + setDocument, + document, + docElem, + documentIsXML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + sortOrder, + + // Instance-specific data + expando = "sizzle" + -(new Date()), + preferredDoc = window.document, + support = {}, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + + // General-purpose constants + strundefined = typeof undefined, + MAX_NEGATIVE = 1 << 31, + + // Array methods + arr = [], + pop = arr.pop, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf if we can't use a native one + indexOf = arr.indexOf || function( elem ) { + var i = 0, + len = this.length; + for ( ; i < len; i++ ) { + if ( this[i] === elem ) { + return i; + } + } + return -1; + }, + + + // Regular expressions + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors + operators = "([*^$|!~]?=)", + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + + "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", + + // Prefer arguments quoted, + // then not containing pseudos/brackets, + // then attribute selectors/non-parenthetical expressions, + // then anything else + // These preferences are here to reduce the number of selectors + // needing tokenize in the PSEUDO preFilter + pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ), + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rsibling = /[\x20\t\r\n\f]*[+~]/, + + rnative = /^[^{]+\{\s*\[native code/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rescape = /'|\\/g, + rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g, + funescape = function( _, escaped ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + return high !== high ? + escaped : + // BMP codepoint + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }; + +// Use a stripped-down slice if we can't use a native one +try { + slice.call( preferredDoc.documentElement.childNodes, 0 )[0].nodeType; +} catch ( e ) { + slice = function( i ) { + var elem, + results = []; + while ( (elem = this[i++]) ) { + results.push( elem ); + } + return results; + }; +} + +/** + * For feature detection + * @param {Function} fn The function to test for native support + */ +function isNative( fn ) { + return rnative.test( fn + "" ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var cache, + keys = []; + + return (cache = function( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key += " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key ] = value); + }); +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return fn( div ); + } catch (e) { + return false; + } finally { + // release memory in IE + div = null; + } +} + +function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + + context = context || document; + results = results || []; + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { + return []; + } + + if ( !documentIsXML && !seed ) { + + // Shortcuts + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getByClassName && context.getElementsByClassName ) { + push.apply( results, slice.call(context.getElementsByClassName( m ), 0) ); + return results; + } + } + + // QSA path + if ( support.qsa && !rbuggyQSA.test(selector) ) { + old = true; + nid = expando; + newContext = context; + newSelector = nodeType === 9 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && context.parentNode || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, slice.call( newContext.querySelectorAll( + newSelector + ), 0 ) ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Detect xml + * @param {Element|Object} elem An element or a document + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var doc = node ? node.ownerDocument || node : preferredDoc; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Set our document + document = doc; + docElem = doc.documentElement; + + // Support tests + documentIsXML = isXML( doc ); + + // Check if getElementsByTagName("*") returns only elements + support.tagNameNoComments = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Check if attributes should be retrieved by attribute nodes + support.attributes = assert(function( div ) { + div.innerHTML = ""; + var type = typeof div.lastChild.getAttribute("multiple"); + // IE8 returns a string for some attributes even when not present + return type !== "boolean" && type !== "string"; + }); + + // Check if getElementsByClassName can be trusted + support.getByClassName = assert(function( div ) { + // Opera can't find a second classname (in 9.6) + div.innerHTML = ""; + if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) { + return false; + } + + // Safari 3.2 caches class attributes and doesn't catch changes + div.lastChild.className = "e"; + return div.getElementsByClassName("e").length === 2; + }); + + // Check if getElementById returns elements by name + // Check if getElementsByName privileges form controls or returns elements by ID + support.getByName = assert(function( div ) { + // Inject content + div.id = expando + 0; + div.innerHTML = "
    "; + docElem.insertBefore( div, docElem.firstChild ); + + // Test + var pass = doc.getElementsByName && + // buggy browsers will return fewer than the correct 2 + doc.getElementsByName( expando ).length === 2 + + // buggy browsers will return more than the correct 0 + doc.getElementsByName( expando + 0 ).length; + support.getIdNotName = !doc.getElementById( expando ); + + // Cleanup + docElem.removeChild( div ); + + return pass; + }); + + // IE6/7 return modified attributes + Expr.attrHandle = assert(function( div ) { + div.innerHTML = ""; + return div.firstChild && typeof div.firstChild.getAttribute !== strundefined && + div.firstChild.getAttribute("href") === "#"; + }) ? + {} : + { + "href": function( elem ) { + return elem.getAttribute( "href", 2 ); + }, + "type": function( elem ) { + return elem.getAttribute("type"); + } + }; + + // ID find and filter + if ( support.getIdNotName ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && !documentIsXML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && !documentIsXML ) { + var m = context.getElementById( id ); + + return m ? + m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ? + [m] : + undefined : + []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.tagNameNoComments ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== strundefined ) { + return context.getElementsByTagName( tag ); + } + } : + function( tag, context ) { + var elem, + tmp = [], + i = 0, + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Name + Expr.find["NAME"] = support.getByName && function( tag, context ) { + if ( typeof context.getElementsByName !== strundefined ) { + return context.getElementsByName( name ); + } + }; + + // Class + Expr.find["CLASS"] = support.getByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== strundefined && !documentIsXML ) { + return context.getElementsByClassName( className ); + } + }; + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21), + // no need to also add to buggyMatches since matches checks buggyQSA + // A support test would require too much code (would include document ready) + rbuggyQSA = [ ":focus" ]; + + if ( (support.qsa = isNative(doc.querySelectorAll)) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explictly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + div.innerHTML = ""; + + // IE8 - Some boolean attributes are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + }); + + assert(function( div ) { + + // Opera 10-12/IE8 - ^= $= *= and empty values + // Should not select anything + div.innerHTML = ""; + if ( div.querySelectorAll("[i^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = isNative( (matches = docElem.matchesSelector || + docElem.mozMatchesSelector || + docElem.webkitMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = new RegExp( rbuggyMatches.join("|") ); + + // Element contains another + // Purposefully does not implement inclusive descendent + // As in, an element does not contain itself + contains = isNative(docElem.contains) || docElem.compareDocumentPosition ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + // Document order sorting + sortOrder = docElem.compareDocumentPosition ? + function( a, b ) { + var compare; + + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + if ( (compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b )) ) { + if ( compare & 1 || a.parentNode && a.parentNode.nodeType === 11 ) { + if ( a === doc || contains( preferredDoc, a ) ) { + return -1; + } + if ( b === doc || contains( preferredDoc, b ) ) { + return 1; + } + return 0; + } + return compare & 4 ? -1 : 1; + } + + return a.compareDocumentPosition ? -1 : 1; + } : + function( a, b ) { + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + + // Parentless nodes are either documents or disconnected + } else if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + // Always assume the presence of duplicates if sort doesn't + // pass them to our comparison function (as in Google Chrome). + hasDuplicate = false; + [0, 0].sort( sortOrder ); + support.detectDuplicates = hasDuplicate; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + // rbuggyQSA always contains :focus, so no need for an existence check + if ( support.matchesSelector && !documentIsXML && (!rbuggyMatches || !rbuggyMatches.test(expr)) && !rbuggyQSA.test(expr) ) { + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch(e) {} + } + + return Sizzle( expr, document, null, [elem] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + var val; + + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + if ( !documentIsXML ) { + name = name.toLowerCase(); + } + if ( (val = Expr.attrHandle[ name ]) ) { + return val( elem ); + } + if ( documentIsXML || support.attributes ) { + return elem.getAttribute( name ); + } + return ( (val = elem.getAttributeNode( name )) || elem.getAttribute( name ) ) && elem[ name ] === true ? + name : + val && val.specified ? val.value : null; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +// Document sorting and removing duplicates +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + i = 1, + j = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + results.sort( sortOrder ); + + if ( hasDuplicate ) { + for ( ; (elem = results[i]); i++ ) { + if ( elem === results[ i - 1 ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + return results; +}; + +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && ( ~b.sourceIndex || MAX_NEGATIVE ) - ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +// Returns a function to use in pseudos for input types +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +// Returns a function to use in pseudos for buttons +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +// Returns a function to use in pseudos for positionals +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + for ( ; (node = elem[i]); i++ ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (see #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[5] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[4] ) { + match[2] = match[4]; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeName ) { + if ( nodeName === "*" ) { + return function() { return true; }; + } + + nodeName = nodeName.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifider + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsXML ? + elem.getAttribute("xml:lang") || elem.getAttribute("lang") : + elem.lang) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), + // not comment, processing instructions, or others + // Thanks to Diego Perini for the nodeName shortcut + // Greater than "@" means alpha characters (specifically not starting with "#" or "?") + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( tokens = [] ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push( { + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + } ); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push( { + value: matched, + type: type, + matches: match + } ); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +} + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var data, cache, outerCache, + dirkey = dirruns + " " + doneName; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) { + if ( (data = cache[1]) === true || data === cachedruns ) { + return data === true; + } + } else { + cache = outerCache[ dir ] = [ dirkey ]; + cache[1] = matcher( elem, context, xml ) || cachedruns; + if ( cache[1] === true ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( tokens.slice( 0, i - 1 ) ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + // A counter to specify which element is currently being matched + var matcherCachedRuns = 0, + bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, expandContext ) { + var elem, j, matcher, + setMatched = [], + matchedCount = 0, + i = "0", + unmatched = seed && [], + outermost = expandContext != null, + contextBackup = outermostContext, + // We must always have either seed elements or context + elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1); + + if ( outermost ) { + outermostContext = context !== document && context; + cachedruns = matcherCachedRuns; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + for ( ; (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + cachedruns = ++matcherCachedRuns; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !group ) { + group = tokenize( selector ); + } + i = group.length; + while ( i-- ) { + cached = matcherFromTokens( group[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + } + return cached; +}; + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function select( selector, context, results, seed ) { + var i, tokens, token, type, find, + match = tokenize( selector ); + + if ( !seed ) { + // Try to minimize operations if there is only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && !documentIsXML && + Expr.relative[ tokens[1].type ] ) { + + context = Expr.find["ID"]( token.matches[0].replace( runescape, funescape ), context )[0]; + if ( !context ) { + return results; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && context.parentNode || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, slice.call( seed, 0 ) ); + return results; + } + + break; + } + } + } + } + } + + // Compile and execute a filtering function + // Provide `match` to avoid retokenization if we modified the selector above + compile( selector, match )( + seed, + context, + documentIsXML, + results, + rsibling.test( selector ) + ); + return results; +} + +// Deprecated +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Easy API for creating new setFilters +function setFilters() {} +Expr.filters = setFilters.prototype = Expr.pseudos; +Expr.setFilters = new setFilters(); + +// Initialize with the default document +setDocument(); + +// Override sizzle attribute retrieval +Sizzle.attr = jQuery.attr; +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + +})( window ); +var runtil = /Until$/, + rparentsprev = /^(?:parents|prev(?:Until|All))/, + isSimple = /^.[^:#\[\.,]*$/, + rneedsContext = jQuery.expr.match.needsContext, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend({ + find: function( selector ) { + var i, ret, self, + len = this.length; + + if ( typeof selector !== "string" ) { + self = this; + return this.pushStack( jQuery( selector ).filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }) ); + } + + ret = []; + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, this[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = ( this.selector ? this.selector + " " : "" ) + selector; + return ret; + }, + + has: function( target ) { + var i, + targets = jQuery( target, this ), + len = targets.length; + + return this.filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + not: function( selector ) { + return this.pushStack( winnow(this, selector, false) ); + }, + + filter: function( selector ) { + return this.pushStack( winnow(this, selector, true) ); + }, + + is: function( selector ) { + return !!selector && ( + typeof selector === "string" ? + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + rneedsContext.test( selector ) ? + jQuery( selector, this.context ).index( this[0] ) >= 0 : + jQuery.filter( selector, this ).length > 0 : + this.filter( selector ).length > 0 ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + ret = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + cur = this[i]; + + while ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) { + if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { + ret.push( cur ); + break; + } + cur = cur.parentNode; + } + } + + return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; + } + + // index in selector + if ( typeof elem === "string" ) { + return jQuery.inArray( this[0], jQuery( elem ) ); + } + + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, + + add: function( selector, context ) { + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( jQuery.unique(all) ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); + +jQuery.fn.andSelf = jQuery.fn.addBack; + +function sibling( cur, dir ) { + do { + cur = cur[ dir ]; + } while ( cur && cur.nodeType !== 1 ); + + return cur; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( this.length > 1 && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret ); + }; +}); + +jQuery.extend({ + filter: function( expr, elems, not ) { + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 ? + jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : + jQuery.find.matches(expr, elems); + }, + + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } +}); + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, keep ) { + + // Can't pass null or undefined to indexOf in Firefox 4 + // Set to 0 to skip string check + qualifier = qualifier || 0; + + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep(elements, function( elem, i ) { + var retVal = !!qualifier.call( elem, i, elem ); + return retVal === keep; + }); + + } else if ( qualifier.nodeType ) { + return jQuery.grep(elements, function( elem ) { + return ( elem === qualifier ) === keep; + }); + + } else if ( typeof qualifier === "string" ) { + var filtered = jQuery.grep(elements, function( elem ) { + return elem.nodeType === 1; + }); + + if ( isSimple.test( qualifier ) ) { + return jQuery.filter(qualifier, filtered, !keep); + } else { + qualifier = jQuery.filter( qualifier, filtered ); + } + } + + return jQuery.grep(elements, function( elem ) { + return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep; + }); +} +function createSafeFragment( document ) { + var list = nodeNames.split( "|" ), + safeFrag = document.createDocumentFragment(); + + if ( safeFrag.createElement ) { + while ( list.length ) { + safeFrag.createElement( + list.pop() + ); + } + } + return safeFrag; +} + +var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, + rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rtbody = /\s*$/g, + + // We have to close these tags to support XHTML (#13200) + wrapMap = { + option: [ 1, "" ], + legend: [ 1, "
    ", "
    " ], + area: [ 1, "", "" ], + param: [ 1, "", "" ], + thead: [ 1, "", "
    " ], + tr: [ 2, "", "
    " ], + col: [ 2, "", "
    " ], + td: [ 3, "", "
    " ], + + // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, + // unless wrapped in a div with non-breaking characters in front of it. + _default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X
    ", "
    " ] + }, + safeFragment = createSafeFragment( document ), + fragmentDiv = safeFragment.appendChild( document.createElement("div") ); + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +jQuery.fn.extend({ + text: function( value ) { + return jQuery.access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); + }, null, value, arguments.length ); + }, + + wrapAll: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapAll( html.call(this, i) ); + }); + } + + if ( this[0] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); + + if ( this[0].parentNode ) { + wrap.insertBefore( this[0] ); + } + + wrap.map(function() { + var elem = this; + + while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { + elem = elem.firstChild; + } + + return elem; + }).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapInner( html.call(this, i) ); + }); + } + + return this.each(function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + }); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each(function(i) { + jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); + }); + }, + + unwrap: function() { + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); + }, + + append: function() { + return this.domManip(arguments, true, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip(arguments, true, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.insertBefore( elem, this.firstChild ); + } + }); + }, + + before: function() { + return this.domManip( arguments, false, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + }); + }, + + after: function() { + return this.domManip( arguments, false, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + }); + }, + + // keepData is for internal use only--do not document + remove: function( selector, keepData ) { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + if ( !selector || jQuery.filter( selector, [ elem ] ).length > 0 ) { + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); + } + + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); + } + elem.parentNode.removeChild( elem ); + } + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + } + + // Remove any remaining nodes + while ( elem.firstChild ) { + elem.removeChild( elem.firstChild ); + } + + // If this is a select, ensure that it displays empty (#12336) + // Support: IE<9 + if ( elem.options && jQuery.nodeName( elem, "select" ) ) { + elem.options.length = 0; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function () { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return jQuery.access( this, function( value ) { + var elem = this[0] || {}, + i = 0, + l = this.length; + + if ( value === undefined ) { + return elem.nodeType === 1 ? + elem.innerHTML.replace( rinlinejQuery, "" ) : + undefined; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) && + ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && + !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1>" ); + + try { + for (; i < l; i++ ) { + // Remove element nodes and prevent memory leaks + elem = this[i] || {}; + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch(e) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function( value ) { + var isFunc = jQuery.isFunction( value ); + + // Make sure that the elements are removed from the DOM before they are inserted + // this can help fix replacing a parent with child elements + if ( !isFunc && typeof value !== "string" ) { + value = jQuery( value ).not( this ).detach(); + } + + return this.domManip( [ value ], true, function( elem ) { + var next = this.nextSibling, + parent = this.parentNode; + + if ( parent ) { + jQuery( this ).remove(); + parent.insertBefore( elem, next ); + } + }); + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, table, callback ) { + + // Flatten any nested arrays + args = core_concat.apply( [], args ); + + var first, node, hasScripts, + scripts, doc, fragment, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[0], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[0] = value.call( this, index, table ? self.html() : undefined ); + } + self.domManip( args, table, callback ); + }); + } + + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + table = table && jQuery.nodeName( first, "tr" ); + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( + table && jQuery.nodeName( this[i], "table" ) ? + findOrAppend( this[i], "tbody" ) : + this[i], + node, + i + ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { + + if ( node.src ) { + // Hope ajax is available... + jQuery.ajax({ + url: node.src, + type: "GET", + dataType: "script", + async: false, + global: false, + "throws": true + }); + } else { + jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); + } + } + } + } + + // Fix #11809: Avoid leaking memory + fragment = first = null; + } + } + + return this; + } +}); + +function findOrAppend( elem, tag ) { + return elem.getElementsByTagName( tag )[0] || elem.appendChild( elem.ownerDocument.createElement( tag ) ); +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + var attr = elem.getAttributeNode("type"); + elem.type = ( attr && attr.specified ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + if ( match ) { + elem.type = match[1]; + } else { + elem.removeAttribute("type"); + } + return elem; +} + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var elem, + i = 0; + for ( ; (elem = elems[i]) != null; i++ ) { + jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); + } +} + +function cloneCopyEvent( src, dest ) { + + if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { + return; + } + + var type, i, l, + oldData = jQuery._data( src ), + curData = jQuery._data( dest, oldData ), + events = oldData.events; + + if ( events ) { + delete curData.handle; + curData.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + + // make the cloned public data object a copy from the original + if ( curData.data ) { + curData.data = jQuery.extend( {}, curData.data ); + } +} + +function fixCloneNodeIssues( src, dest ) { + var nodeName, e, data; + + // We do not need to do anything for non-Elements + if ( dest.nodeType !== 1 ) { + return; + } + + nodeName = dest.nodeName.toLowerCase(); + + // IE6-8 copies events bound via attachEvent when using cloneNode. + if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) { + data = jQuery._data( dest ); + + for ( e in data.events ) { + jQuery.removeEvent( dest, e, data.handle ); + } + + // Event data gets referenced instead of copied if the expando gets copied too + dest.removeAttribute( jQuery.expando ); + } + + // IE blanks contents when cloning scripts, and tries to evaluate newly-set text + if ( nodeName === "script" && dest.text !== src.text ) { + disableScript( dest ).text = src.text; + restoreScript( dest ); + + // IE6-10 improperly clones children of object elements using classid. + // IE10 throws NoModificationAllowedError if parent is null, #12132. + } else if ( nodeName === "object" ) { + if ( dest.parentNode ) { + dest.outerHTML = src.outerHTML; + } + + // This path appears unavoidable for IE9. When cloning an object + // element in IE9, the outerHTML strategy above is not sufficient. + // If the src has innerHTML and the destination does not, + // copy the src.innerHTML into the dest.innerHTML. #10324 + if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { + dest.innerHTML = src.innerHTML; + } + + } else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) { + // IE6-8 fails to persist the checked state of a cloned checkbox + // or radio button. Worse, IE6-7 fail to give the cloned element + // a checked appearance if the defaultChecked value isn't also set + + dest.defaultChecked = dest.checked = src.checked; + + // IE6-7 get confused and end up setting the value of a cloned + // checkbox/radio button to an empty string instead of "on" + if ( dest.value !== src.value ) { + dest.value = src.value; + } + + // IE6-8 fails to return the selected option to the default selected + // state when cloning options + } else if ( nodeName === "option" ) { + dest.defaultSelected = dest.selected = src.defaultSelected; + + // IE6-8 fails to set the defaultValue to the correct value when + // cloning other types of input fields + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone(true); + jQuery( insert[i] )[ original ]( elems ); + + // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() + core_push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +}); + +function getAll( context, tag ) { + var elems, elem, + i = 0, + found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) : + typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) : + undefined; + + if ( !found ) { + for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { + if ( !tag || jQuery.nodeName( elem, tag ) ) { + found.push( elem ); + } else { + jQuery.merge( found, getAll( elem, tag ) ); + } + } + } + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], found ) : + found; +} + +// Used in buildFragment, fixes the defaultChecked property +function fixDefaultChecked( elem ) { + if ( manipulation_rcheckableType.test( elem.type ) ) { + elem.defaultChecked = elem.checked; + } +} + +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var destElements, node, clone, i, srcElements, + inPage = jQuery.contains( elem.ownerDocument, elem ); + + if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { + clone = elem.cloneNode( true ); + + // IE<=8 does not properly clone detached, unknown element nodes + } else { + fragmentDiv.innerHTML = elem.outerHTML; + fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); + } + + if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && + (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + // Fix all IE cloning issues + for ( i = 0; (node = srcElements[i]) != null; ++i ) { + // Ensure that the destination node is not null; Fixes #9587 + if ( destElements[i] ) { + fixCloneNodeIssues( node, destElements[i] ); + } + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0; (node = srcElements[i]) != null; i++ ) { + cloneCopyEvent( node, destElements[i] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + destElements = srcElements = node = null; + + // Return the cloned set + return clone; + }, + + buildFragment: function( elems, context, scripts, selection ) { + var j, elem, contains, + tmp, tag, tbody, wrap, + l = elems.length, + + // Ensure a safe fragment + safe = createSafeFragment( context ), + + nodes = [], + i = 0; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || safe.appendChild( context.createElement("div") ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + + tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[2]; + + // Descend through wrappers to the right content + j = wrap[0]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Manually add leading whitespace removed by IE + if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); + } + + // Remove IE's autoinserted from table fragments + if ( !jQuery.support.tbody ) { + + // String was a , *may* have spurious + elem = tag === "table" && !rtbody.test( elem ) ? + tmp.firstChild : + + // String was a bare or + wrap[1] === "
    " && !rtbody.test( elem ) ? + tmp : + 0; + + j = elem && elem.childNodes.length; + while ( j-- ) { + if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { + elem.removeChild( tbody ); + } + } + } + + jQuery.merge( nodes, tmp.childNodes ); + + // Fix #12392 for WebKit and IE > 9 + tmp.textContent = ""; + + // Fix #12392 for oldIE + while ( tmp.firstChild ) { + tmp.removeChild( tmp.firstChild ); + } + + // Remember the top-level container for proper cleanup + tmp = safe.lastChild; + } + } + } + + // Fix #11356: Clear elements from fragment + if ( tmp ) { + safe.removeChild( tmp ); + } + + // Reset defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + if ( !jQuery.support.appendChecked ) { + jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); + } + + i = 0; + while ( (elem = nodes[ i++ ]) ) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( safe.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + tmp = null; + + return safe; + }, + + cleanData: function( elems, /* internal */ acceptData ) { + var elem, type, id, data, + i = 0, + internalKey = jQuery.expando, + cache = jQuery.cache, + deleteExpando = jQuery.support.deleteExpando, + special = jQuery.event.special; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( acceptData || jQuery.acceptData( elem ) ) { + + id = elem[ internalKey ]; + data = id && cache[ id ]; + + if ( data ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Remove cache only if it was not already removed by jQuery.event.remove + if ( cache[ id ] ) { + + delete cache[ id ]; + + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( deleteExpando ) { + delete elem[ internalKey ]; + + } else if ( typeof elem.removeAttribute !== core_strundefined ) { + elem.removeAttribute( internalKey ); + + } else { + elem[ internalKey ] = null; + } + + core_deletedIds.push( id ); + } + } + } + } + } +}); +var iframe, getStyles, curCSS, + ralpha = /alpha\([^)]*\)/i, + ropacity = /opacity\s*=\s*([^)]*)/, + rposition = /^(top|right|bottom|left)$/, + // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" + // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rmargin = /^margin/, + rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ), + rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ), + rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ), + elemdisplay = { BODY: "block" }, + + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: 0, + fontWeight: 400 + }, + + cssExpand = [ "Top", "Right", "Bottom", "Left" ], + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; + +// return a css property mapped to a potentially vendor prefixed property +function vendorPropName( style, name ) { + + // shortcut for names that are not vendor prefixed + if ( name in style ) { + return name; + } + + // check for vendor prefixed names + var capName = name.charAt(0).toUpperCase() + name.slice(1), + origName = name, + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in style ) { + return name; + } + } + + return origName; +} + +function isHidden( elem, el ) { + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); +} + +function showHide( elements, show ) { + var display, elem, hidden, + values = [], + index = 0, + length = elements.length; + + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + values[ index ] = jQuery._data( elem, "olddisplay" ); + display = elem.style.display; + if ( show ) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && display === "none" ) { + elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); + } + } else { + + if ( !values[ index ] ) { + hidden = isHidden( elem ); + + if ( display && display !== "none" || !hidden ) { + jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); + } + } + } + } + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } + } + + return elements; +} + +jQuery.fn.extend({ + css: function( name, value ) { + return jQuery.access( this, function( elem, name, value ) { + var len, styles, + map = {}, + i = 0; + + if ( jQuery.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + }, + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + var bool = typeof state === "boolean"; + + return this.each(function() { + if ( bool ? state : isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + }); + } +}); + +jQuery.extend({ + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Exclude the following css properties to add px + cssNumber: { + "columnCount": true, + "fillOpacity": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + // normalize float css property + "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // convert relative number strings (+= or -=) to relative numbers. #7345 + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); + // Fixes bug #9237 + type = "number"; + } + + // Make sure that NaN and null values aren't set. See: #7116 + if ( value == null || type === "number" && isNaN( value ) ) { + return; + } + + // If a number was passed in, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } + + // Fixes #8908, it can be done more correctly by specifing setters in cssHooks, + // but it would mean to define eight (for every problematic property) identical functions + if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { + + // Wrapped to prevent IE from throwing errors when 'invalid' values are provided + // Fixes bug #5509 + try { + style[ name ] = value; + } catch(e) {} + } + + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var num, val, hooks, + origName = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + //convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Return, converting to number if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; + } + return val; + }, + + // A method for quickly swapping in/out CSS properties to get correct calculations + swap: function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; + } +}); + +// NOTE: we've included the "window" in window.getComputedStyle +// because jsdom on node.js will break without it. +if ( window.getComputedStyle ) { + getStyles = function( elem ) { + return window.getComputedStyle( elem, null ); + }; + + curCSS = function( elem, name, _computed ) { + var width, minWidth, maxWidth, + computed = _computed || getStyles( elem ), + + // getPropertyValue is only needed for .css('filter') in IE9, see #12537 + ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined, + style = elem.style; + + if ( computed ) { + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right + // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret; + }; +} else if ( document.documentElement.currentStyle ) { + getStyles = function( elem ) { + return elem.currentStyle; + }; + + curCSS = function( elem, name, _computed ) { + var left, rs, rsLeft, + computed = _computed || getStyles( elem ), + ret = computed ? computed[ name ] : undefined, + style = elem.style; + + // Avoid setting ret to empty string here + // so we don't default to auto + if ( ret == null && style && style[ name ] ) { + ret = style[ name ]; + } + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + // but not position css attributes, as those are proportional to the parent element instead + // and we can't measure the parent instead because it might trigger a "stacking dolls" problem + if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { + + // Remember the original values + left = style.left; + rs = elem.runtimeStyle; + rsLeft = rs && rs.left; + + // Put in the new values to get a computed value out + if ( rsLeft ) { + rs.left = elem.currentStyle.left; + } + style.left = name === "fontSize" ? "1em" : ret; + ret = style.pixelLeft + "px"; + + // Revert the changed values + style.left = left; + if ( rsLeft ) { + rs.left = rsLeft; + } + } + + return ret === "" ? "auto" : ret; + }; +} + +function setPositiveNumber( elem, value, subtract ) { + var matches = rnumsplit.exec( value ); + return matches ? + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + // If we already have the right measurement, avoid augmentation + 4 : + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + + val = 0; + + for ( ; i < 4; i += 2 ) { + // both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // at this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + // at this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // at this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with offset property, which is equivalent to the border-box value + var valueIsBorderBox = true, + val = name === "width" ? elem.offsetWidth : elem.offsetHeight, + styles = getStyles( elem ), + isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name, styles ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test(val) ) { + return val; + } + + // we need the check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] ); + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } + + // use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +// Try to determine the default display value of an element +function css_defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + // Use the already-created iframe if possible + iframe = ( iframe || + jQuery("' ); + + iframe.on( 'load', function( e ) { + e.removeListener(); + + var doc = iframe.getFrameDocument(); + doc.write( htmlToLoad ); + + editor.focusManager.add( doc.getBody() ); + + if ( CKEDITOR.env.air ) + onPasteFrameLoad.call( this, doc.getWindow().$ ); + }, dialog ); + + iframe.setCustomData( 'dialog', dialog ); + + var container = this.getElement(); + container.setHtml( '' ); + container.append( iframe ); + + // IE need a redirect on focus to make + // the cursor blinking inside iframe. (#5461) + if ( CKEDITOR.env.ie ) { + var focusGrabber = CKEDITOR.dom.element.createFromHtml( '' ); + focusGrabber.on( 'focus', function() { + // Since fixDomain is called in src attribute, + // IE needs some slight delay to correctly move focus. + setTimeout( function() { + iframe.$.contentWindow.focus(); + } ); + } ); + container.append( focusGrabber ); + + // Override focus handler on field. + this.focus = function() { + focusGrabber.focus(); + this.fire( 'focus' ); + }; + } + + this.getInputElement = function() { + return iframe; + }; + + // Force container to scale in IE. + if ( CKEDITOR.env.ie ) { + container.setStyle( 'display', 'block' ); + container.setStyle( 'height', ( iframe.$.offsetHeight + 2 ) + 'px' ); + } + }, + commit: function( data ) { + var editor = this.getDialog().getParentEditor(), + body = this.getInputElement().getFrameDocument().getBody(), + bogus = body.getBogus(), + html; + bogus && bogus.remove(); + + // Saving the contents so changes until paste is complete will not take place (#7500) + html = body.getHtml(); + + // Opera needs some time to think about what has happened and what it should do now. + setTimeout( function() { + editor.fire( 'pasteDialogCommit', html ); + }, 0 ); + } + } + ] + } + ] + }; +} ); + +/** + * Internal event to pass paste dialog's data to the listeners. + * + * @private + * @event pasteDialogCommit + * @member CKEDITOR.editor + * @param {CKEDITOR.editor} editor This editor instance. + */ diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/copy-rtl.png b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/copy-rtl.png new file mode 100644 index 00000000..ef724460 Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/copy-rtl.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/copy.png b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/copy.png new file mode 100644 index 00000000..ef724460 Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/copy.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/cut-rtl.png b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/cut-rtl.png new file mode 100644 index 00000000..0b719653 Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/cut-rtl.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/cut.png b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/cut.png new file mode 100644 index 00000000..0b719653 Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/cut.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/hidpi/copy-rtl.png b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/hidpi/copy-rtl.png new file mode 100644 index 00000000..29026cc0 Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/hidpi/copy-rtl.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/hidpi/copy.png b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/hidpi/copy.png new file mode 100644 index 00000000..29026cc0 Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/hidpi/copy.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/hidpi/cut-rtl.png b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/hidpi/cut-rtl.png new file mode 100644 index 00000000..bfec0cfb Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/hidpi/cut-rtl.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/hidpi/cut.png b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/hidpi/cut.png new file mode 100644 index 00000000..bfec0cfb Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/hidpi/cut.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/hidpi/paste-rtl.png b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/hidpi/paste-rtl.png new file mode 100644 index 00000000..f18dac37 Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/hidpi/paste-rtl.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/hidpi/paste.png b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/hidpi/paste.png new file mode 100644 index 00000000..f18dac37 Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/hidpi/paste.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/paste-rtl.png b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/paste-rtl.png new file mode 100644 index 00000000..b2bfef20 Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/paste-rtl.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/paste.png b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/paste.png new file mode 100644 index 00000000..b2bfef20 Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/clipboard/icons/paste.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/af.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/af.js new file mode 100644 index 00000000..af598099 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/af.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'af', { + copy: 'Kopiëer', + copyError: 'U blaaier se sekuriteitsinstelling belet die kopiëringsaksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+C).', + cut: 'Knip', + cutError: 'U blaaier se sekuriteitsinstelling belet die outomatiese knip-aksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+X).', + paste: 'Plak', + pasteArea: 'Plak-area', + pasteMsg: 'Plak die teks in die volgende teks-area met die sleutelbordkombinasie (Ctrl/Cmd+V) en druk OK.', + securityMsg: 'Weens u blaaier se sekuriteitsinstelling is data op die knipbord nie toeganklik nie. U kan dit eers weer in hierdie venster plak.', + title: 'Byvoeg' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ar.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ar.js new file mode 100644 index 00000000..e66eb230 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ar.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'ar', { + copy: 'نسخ', + copyError: 'الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع عمليات النسخ التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl/Cmd+C).', + cut: 'قص', + cutError: 'الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع القص التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl/Cmd+X).', + paste: 'لصق', + pasteArea: 'منطقة اللصق', + pasteMsg: 'الصق داخل الصندوق بإستخدام زرائر (Ctrl/Cmd+V) في لوحة المفاتيح، ثم اضغط زر موافق.', + securityMsg: 'نظراً لإعدادات الأمان الخاصة بمتصفحك، لن يتمكن هذا المحرر من الوصول لمحتوى حافظتك، لذلك يجب عليك لصق المحتوى مرة أخرى في هذه النافذة.', + title: 'لصق' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/bg.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/bg.js new file mode 100644 index 00000000..5979d8ff --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/bg.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'bg', { + copy: 'Копирай', + copyError: 'Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни запаметяването. За целта използвайте клавиатурата (Ctrl/Cmd+C).', + cut: 'Отрежи', + cutError: 'Настройките за сигурност на Вашия браузър не позволяват на редактора автоматично да изъплни действията за отрязване. Моля ползвайте клавиатурните команди за целта (ctrl+x).', + paste: 'Вмъкни', + pasteArea: 'Зона за вмъкване', + pasteMsg: 'Вмъкнете тук съдъжанието с клавиатуарата (Ctrl/Cmd+V) и натиснете OK.', + securityMsg: 'Заради настройките за сигурност на Вашия браузър, редакторът не може да прочете данните от клипборда коректно.', + title: 'Вмъкни' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/bn.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/bn.js new file mode 100644 index 00000000..9788cace --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/bn.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'bn', { + copy: 'কপি', + copyError: 'আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কপি করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl/Cmd+C)।', + cut: 'কাট', + cutError: 'আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কাট করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl/Cmd+X)।', + paste: 'পেস্ট', + pasteArea: 'Paste Area', // MISSING + pasteMsg: 'অনুগ্রহ করে নীচের বাক্সে কিবোর্ড ব্যবহার করে (Ctrl/Cmd+V) পেস্ট করুন এবং OK চাপ দিন', + securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING + title: 'পেস্ট' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/bs.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/bs.js new file mode 100644 index 00000000..b9fffd08 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/bs.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'bs', { + copy: 'Kopiraj', + copyError: 'Sigurnosne postavke Vašeg pretraživaèa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+C).', + cut: 'Izreži', + cutError: 'Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+X).', + paste: 'Zalijepi', + pasteArea: 'Paste Area', // MISSING + pasteMsg: 'Please paste inside the following box using the keyboard (Ctrl/Cmd+V) and hit OK', // MISSING + securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING + title: 'Zalijepi' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ca.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ca.js new file mode 100644 index 00000000..ac37e5de --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ca.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'ca', { + copy: 'Copiar', + copyError: 'La configuració de seguretat del vostre navegador no permet executar automàticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl/Cmd+C).', + cut: 'Retallar', + cutError: 'La configuració de seguretat del vostre navegador no permet executar automàticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl/Cmd+X).', + paste: 'Enganxar', + pasteArea: 'Àrea d\'enganxat', + pasteMsg: 'Si us plau, enganxi dins del següent camp utilitzant el teclat (Ctrl/Cmd+V) i premi OK.', + securityMsg: 'A causa de la configuració de seguretat del vostre navegador, l\'editor no pot accedir a les dades del porta-retalls directament. Enganxeu-ho un altre cop en aquesta finestra.', + title: 'Enganxar' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/cs.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/cs.js new file mode 100644 index 00000000..77d1bd09 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/cs.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'cs', { + copy: 'Kopírovat', + copyError: 'Bezpečnostní nastavení vašeho prohlížeče nedovolují editoru spustit funkci pro kopírování zvoleného textu do schránky. Prosím zkopírujte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+C).', + cut: 'Vyjmout', + cutError: 'Bezpečnostní nastavení vašeho prohlížeče nedovolují editoru spustit funkci pro vyjmutí zvoleného textu do schránky. Prosím vyjměte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+X).', + paste: 'Vložit', + pasteArea: 'Oblast vkládání', + pasteMsg: 'Do následujícího pole vložte požadovaný obsah pomocí klávesnice (Ctrl/Cmd+V) a stiskněte OK.', + securityMsg: 'Z důvodů nastavení bezpečnosti vašeho prohlížeče nemůže editor přistupovat přímo do schránky. Obsah schránky prosím vložte znovu do tohoto okna.', + title: 'Vložit' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/cy.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/cy.js new file mode 100644 index 00000000..75981c79 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/cy.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'cy', { + copy: 'Copïo', + copyError: '\'Dyw gosodiadau diogelwch eich porwr ddim yn caniatàu\'r golygydd i gynnal \'gweithredoedd copïo\' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+C).', + cut: 'Torri', + cutError: 'Nid yw gosodiadau diogelwch eich porwr yn caniatàu\'r golygydd i gynnal \'gweithredoedd torri\' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+X).', + paste: 'Gludo', + pasteArea: 'Ardal Gludo', + pasteMsg: 'Gludwch i mewn i\'r blwch canlynol gan ddefnyddio\'r bysellfwrdd (Ctrl/Cmd+V) a phwyso Iawn.', + securityMsg: 'Oherwydd gosodiadau diogelwch eich porwr, \'dyw\'r porwr ddim yn gallu ennill mynediad i\'r data ar y clipfwrdd yn uniongyrchol. Mae angen i chi ei ludo eto i\'r ffenestr hon.', + title: 'Gludo' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/da.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/da.js new file mode 100644 index 00000000..832758ac --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/da.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'da', { + copy: 'Kopiér', + copyError: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.

    Brug i stedet tastaturet til at kopiere teksten (Ctrl/Cmd+C).', + cut: 'Klip', + cutError: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.

    Brug i stedet tastaturet til at klippe teksten (Ctrl/Cmd+X).', + paste: 'Indsæt', + pasteArea: 'Indsæt område', + pasteMsg: 'Indsæt i feltet herunder (Ctrl/Cmd+V) og klik på OK.', + securityMsg: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.

    Du skal indsætte udklipsholderens indhold i dette vindue igen.', + title: 'Indsæt' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/de.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/de.js new file mode 100644 index 00000000..4426d084 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/de.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'de', { + copy: 'Kopieren', + copyError: 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).', + cut: 'Ausschneiden', + cutError: 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).', + paste: 'Einfügen', + pasteArea: 'Einfügebereich', + pasteMsg: 'Bitte fügen Sie den Text in der folgenden Box über die Tastatur (mit Strg+V) ein und bestätigen Sie mit OK.', + securityMsg: 'Aufgrund von Sicherheitsbeschränkungen Ihres Browsers kann der Editor nicht direkt auf die Zwischenablage zugreifen. Bitte fügen Sie den Inhalt erneut in diesem Fenster ein.', + title: 'Einfügen' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/el.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/el.js new file mode 100644 index 00000000..3d7116d4 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/el.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'el', { + copy: 'Αντιγραφή', + copyError: 'Οι ρυθμίσεις ασφαλείας του περιηγητή σας δεν επιτρέπουν την επιλεγμένη εργασία αντιγραφής. Παρακαλώ χρησιμοποιείστε το πληκτρολόγιο (Ctrl/Cmd+C).', + cut: 'Αποκοπή', + cutError: 'Οι ρυθμίσεις ασφαλείας του περιηγητή σας δεν επιτρέπουν την επιλεγμένη εργασία αποκοπής. Παρακαλώ χρησιμοποιείστε το πληκτρολόγιο (Ctrl/Cmd+X).', + paste: 'Επικόλληση', + pasteArea: 'Περιοχή Επικόλλησης', + pasteMsg: 'Παρακαλώ επικολλήστε στο ακόλουθο κουτί χρησιμοποιώντας το πληκτρολόγιο (Ctrl/Cmd+V) και πατήστε OK.', + securityMsg: 'Λόγων των ρυθμίσεων ασφάλειας του περιηγητή σας, ο επεξεργαστής δεν μπορεί να έχει πρόσβαση στην μνήμη επικόλλησης. Χρειάζεται να επικολλήσετε ξανά σε αυτό το παράθυρο.', + title: 'Επικόλληση' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/en-au.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/en-au.js new file mode 100644 index 00000000..501fe1e0 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/en-au.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'en-au', { + copy: 'Copy', + copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).', + cut: 'Cut', + cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', + paste: 'Paste', + pasteArea: 'Paste Area', // MISSING + pasteMsg: 'Please paste inside the following box using the keyboard (Ctrl/Cmd+V) and hit OK', + securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', + title: 'Paste' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/en-ca.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/en-ca.js new file mode 100644 index 00000000..9ea55e18 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/en-ca.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'en-ca', { + copy: 'Copy', + copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).', + cut: 'Cut', + cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', + paste: 'Paste', + pasteArea: 'Paste Area', // MISSING + pasteMsg: 'Please paste inside the following box using the keyboard (Ctrl/Cmd+V) and hit OK', + securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', + title: 'Paste' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/en-gb.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/en-gb.js new file mode 100644 index 00000000..e0d62349 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/en-gb.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'en-gb', { + copy: 'Copy', + copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).', + cut: 'Cut', + cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', + paste: 'Paste', + pasteArea: 'Paste Area', + pasteMsg: 'Please paste inside the following box using the keyboard (Ctrl/Cmd+V) and hit OK', + securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', + title: 'Paste' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/en.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/en.js new file mode 100644 index 00000000..24c263ba --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/en.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'en', { + copy: 'Copy', + copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).', + cut: 'Cut', + cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', + paste: 'Paste', + pasteArea: 'Paste Area', + pasteMsg: 'Please paste inside the following box using the keyboard (Ctrl/Cmd+V) and hit OK', + securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', + title: 'Paste' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/eo.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/eo.js new file mode 100644 index 00000000..8a983379 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/eo.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'eo', { + copy: 'Kopii', + copyError: 'La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-C).', + cut: 'Eltondi', + cutError: 'La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-X).', + paste: 'Interglui', + pasteArea: 'Intergluoareo', + pasteMsg: 'Bonvolu glui la tekston en la jenan areon per uzado de la klavaro (Ctrl/Cmd+V) kaj premu OK', + securityMsg: 'Pro la sekurecagordo de via TTT-legilo, la redaktilo ne povas rekte atingi viajn datenojn en la poŝo. Bonvolu denove interglui la datenojn en tiun fenestron.', + title: 'Interglui' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/es.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/es.js new file mode 100644 index 00000000..fad57908 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/es.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'es', { + copy: 'Copiar', + copyError: 'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado.\r\nPor favor use el teclado (Ctrl/Cmd+C).', + cut: 'Cortar', + cutError: 'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado.\r\nPor favor use el teclado (Ctrl/Cmd+X).', + paste: 'Pegar', + pasteArea: 'Zona de pegado', + pasteMsg: 'Por favor pegue dentro del cuadro utilizando el teclado (Ctrl/Cmd+V);\r\nluego presione Aceptar.', + securityMsg: 'Debido a la configuración de seguridad de su navegador, el editor no tiene acceso al portapapeles.\r\nEs necesario que lo pegue de nuevo en esta ventana.', + title: 'Pegar' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/et.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/et.js new file mode 100644 index 00000000..09a4bcec --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/et.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'et', { + copy: 'Kopeeri', + copyError: 'Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+C).', + cut: 'Lõika', + cutError: 'Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+X).', + paste: 'Aseta', + pasteArea: 'Asetamise ala', + pasteMsg: 'Palun aseta tekst järgnevasse kasti kasutades klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+V) ja vajuta seejärel OK.', + securityMsg: 'Sinu veebisirvija turvaseadete tõttu ei oma redaktor otsest ligipääsu lõikelaua andmetele. Sa pead asetama need uuesti siia aknasse.', + title: 'Asetamine' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/eu.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/eu.js new file mode 100644 index 00000000..037a21c7 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/eu.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'eu', { + copy: 'Kopiatu', + copyError: 'Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki kopiatzea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl/Cmd+C).', + cut: 'Ebaki', + cutError: 'Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki moztea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl/Cmd+X).', + paste: 'Itsatsi', + pasteArea: 'Itsasteko Area', + pasteMsg: 'Mesedez teklatua erabilita (Ctrl/Cmd+V) ondorego eremuan testua itsatsi eta OK sakatu.', + securityMsg: 'Nabigatzailearen segurtasun ezarpenak direla eta, editoreak ezin du arbela zuzenean erabili. Leiho honetan berriro itsatsi behar duzu.', + title: 'Itsatsi' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/fa.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/fa.js new file mode 100644 index 00000000..d894f686 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/fa.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'fa', { + copy: 'رونوشت', + copyError: 'تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای کپی کردن را انجام دهد. لطفا با دکمههای صفحه کلید این کار را انجام دهید (Ctrl/Cmd+C).', + cut: 'برش', + cutError: 'تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای برش را انجام دهد. لطفا با دکمههای صفحه کلید این کار را انجام دهید (Ctrl/Cmd+X).', + paste: 'چسباندن', + pasteArea: 'محل چسباندن', + pasteMsg: 'لطفا متن را با کلیدهای (Ctrl/Cmd+V) در این جعبهٴ متنی بچسبانید و پذیرش را بزنید.', + securityMsg: 'به خاطر تنظیمات امنیتی مرورگر شما، ویرایشگر نمیتواند دسترسی مستقیم به دادههای clipboard داشته باشد. شما باید دوباره آنرا در این پنجره بچسبانید.', + title: 'چسباندن' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/fi.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/fi.js new file mode 100644 index 00000000..9a068a32 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/fi.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'fi', { + copy: 'Kopioi', + copyError: 'Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl+C).', + cut: 'Leikkaa', + cutError: 'Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl+X).', + paste: 'Liitä', + pasteArea: 'Leikealue', + pasteMsg: 'Liitä painamalla (Ctrl+V) ja painamalla OK.', + securityMsg: 'Selaimesi turva-asetukset eivät salli editorin käyttää leikepöytää suoraan. Sinun pitää suorittaa liittäminen tässä ikkunassa.', + title: 'Liitä' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/fo.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/fo.js new file mode 100644 index 00000000..da436ea4 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/fo.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'fo', { + copy: 'Avrita', + copyError: 'Trygdaruppseting alnótskagans forðar tekstviðgeranum í at avrita tekstin. Vinarliga nýt knappaborðið til at avrita tekstin (Ctrl/Cmd+C).', + cut: 'Kvett', + cutError: 'Trygdaruppseting alnótskagans forðar tekstviðgeranum í at kvetta tekstin. Vinarliga nýt knappaborðið til at kvetta tekstin (Ctrl/Cmd+X).', + paste: 'Innrita', + pasteArea: 'Avritingarumráði', + pasteMsg: 'Vinarliga koyr tekstin í hendan rútin við knappaborðinum (Ctrl/Cmd+V) og klikk á Góðtak.', + securityMsg: 'Trygdaruppseting alnótskagans forðar tekstviðgeranum í beinleiðis atgongd til avritingarminnið. Tygum mugu royna aftur í hesum rútinum.', + title: 'Innrita' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/fr-ca.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/fr-ca.js new file mode 100644 index 00000000..e4e483cf --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/fr-ca.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'fr-ca', { + copy: 'Copier', + copyError: 'Les paramètres de sécurité de votre navigateur empêchent l\'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+C).', + cut: 'Couper', + cutError: 'Les paramètres de sécurité de votre navigateur empêchent l\'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+X).', + paste: 'Coller', + pasteArea: 'Coller la zone', + pasteMsg: 'Veuillez coller dans la zone ci-dessous en utilisant le clavier (Ctrl/Cmd+V) et appuyer sur OK.', + securityMsg: 'A cause des paramètres de sécurité de votre navigateur, l\'éditeur ne peut accéder au presse-papier directement. Vous devez coller à nouveau le contenu dans cette fenêtre.', + title: 'Coller' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/fr.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/fr.js new file mode 100644 index 00000000..ed17f8e6 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/fr.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'fr', { + copy: 'Copier', + copyError: 'Les paramètres de sécurité de votre navigateur ne permettent pas à l\'éditeur d\'exécuter automatiquement des opérations de copie. Veuillez utiliser le raccourci clavier (Ctrl/Cmd+C).', + cut: 'Couper', + cutError: 'Les paramètres de sécurité de votre navigateur ne permettent pas à l\'éditeur d\'exécuter automatiquement l\'opération "couper". Veuillez utiliser le raccourci clavier (Ctrl/Cmd+X).', + paste: 'Coller', + pasteArea: 'Coller la zone', + pasteMsg: 'Veuillez coller le texte dans la zone suivante en utilisant le raccourci clavier (Ctrl/Cmd+V) et cliquez sur OK.', + securityMsg: 'A cause des paramètres de sécurité de votre navigateur, l\'éditeur n\'est pas en mesure d\'accéder directement à vos données contenues dans le presse-papier. Vous devriez réessayer de coller les données dans la fenêtre.', + title: 'Coller' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/gl.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/gl.js new file mode 100644 index 00000000..cace10af --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/gl.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'gl', { + copy: 'Copiar', + copyError: 'Os axustes de seguranza do seu navegador non permiten que o editor realice automaticamente as tarefas de copia. Use o teclado para iso (Ctrl/Cmd+C).', + cut: 'Cortar', + cutError: 'Os axustes de seguranza do seu navegador non permiten que o editor realice automaticamente as tarefas de corte. Use o teclado para iso (Ctrl/Cmd+X).', + paste: 'Pegar', + pasteArea: 'Zona de pegado', + pasteMsg: 'Pegue dentro do seguinte cadro usando o teclado (Ctrl/Cmd+V) e prema en Aceptar', + securityMsg: 'Por mor da configuración de seguranza do seu navegador, o editor non ten acceso ao portapapeis. É necesario pegalo novamente nesta xanela.', + title: 'Pegar' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/gu.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/gu.js new file mode 100644 index 00000000..8bb5bcd2 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/gu.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'gu', { + copy: 'નકલ', + copyError: 'તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કોપી કરવાની પરવાનગી નથી આપતી. (Ctrl/Cmd+C) का प्रयोग करें।', + cut: 'કાપવું', + cutError: 'તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કટ કરવાની પરવાનગી નથી આપતી. (Ctrl/Cmd+X) નો ઉપયોગ કરો.', + paste: 'પેસ્ટ', + pasteArea: 'પેસ્ટ કરવાની જગ્યા', + pasteMsg: 'Ctrl/Cmd+V નો પ્રયોગ કરી પેસ્ટ કરો', + securityMsg: 'તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસના કારણે,એડિટર તમારા કિલ્પબોર્ડ ડેટા ને કોપી નથી કરી શકતો. તમારે આ વિન્ડોમાં ફરીથી પેસ્ટ કરવું પડશે.', + title: 'પેસ્ટ' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/he.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/he.js new file mode 100644 index 00000000..99d06565 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/he.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'he', { + copy: 'העתקה', + copyError: 'הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות העתקה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl/Cmd+C).', + cut: 'גזירה', + cutError: 'הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות גזירה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl/Cmd+X).', + paste: 'הדבקה', + pasteArea: 'איזור הדבקה', + pasteMsg: 'נא להדביק בתוך הקופסה באמצעות (Ctrl/Cmd+V) וללחוץ על אישור.', + securityMsg: 'עקב הגדרות אבטחה בדפדפן, לא ניתן לגשת אל לוח הגזירים (Clipboard) בצורה ישירה. נא להדביק שוב בחלון זה.', + title: 'הדבקה' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/hi.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/hi.js new file mode 100644 index 00000000..b3cb47b9 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/hi.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'hi', { + copy: 'कॉपी', + copyError: 'आपके ब्राआउज़र की सुरक्षा सॅटिन्ग्स ने कॉपी करने की अनुमति नहीं प्रदान की है। (Ctrl/Cmd+C) का प्रयोग करें।', + cut: 'कट', + cutError: 'आपके ब्राउज़र की सुरक्षा सॅटिन्ग्स ने कट करने की अनुमति नहीं प्रदान की है। (Ctrl/Cmd+X) का प्रयोग करें।', + paste: 'पेस्ट', + pasteArea: 'Paste Area', // MISSING + pasteMsg: 'Ctrl/Cmd+V का प्रयोग करके पेस्ट करें और ठीक है करें.', + securityMsg: 'आपके ब्राउज़र की सुरक्षा आपके ब्राउज़र की सुरKश सैटिंग के कारण, एडिटर आपके क्लिपबोर्ड डेटा को नहीं पा सकता है. आपको उसे इस विन्डो में दोबारा पेस्ट करना होगा.', + title: 'पेस्ट' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/hr.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/hr.js new file mode 100644 index 00000000..eacaeb3e --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/hr.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'hr', { + copy: 'Kopiraj', + copyError: 'Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+C).', + cut: 'Izreži', + cutError: 'Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+X).', + paste: 'Zalijepi', + pasteArea: 'Prostor za ljepljenje', + pasteMsg: 'Molimo zaljepite unutar doljnjeg okvira koristeći tipkovnicu (Ctrl/Cmd+V) i kliknite OK.', + securityMsg: 'Zbog sigurnosnih postavki Vašeg pretraživača, editor nema direktan pristup Vašem međuspremniku. Potrebno je ponovno zalijepiti tekst u ovaj prozor.', + title: 'Zalijepi' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/hu.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/hu.js new file mode 100644 index 00000000..50a9f2ce --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/hu.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'hu', { + copy: 'Másolás', + copyError: 'A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).', + cut: 'Kivágás', + cutError: 'A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).', + paste: 'Beillesztés', + pasteArea: 'Beszúrás mező', + pasteMsg: 'Másolja be az alábbi mezőbe a Ctrl/Cmd+V billentyűk lenyomásával, majd nyomjon Rendben-t.', + securityMsg: 'A böngésző biztonsági beállításai miatt a szerkesztő nem képes hozzáférni a vágólap adataihoz. Illeszd be újra ebben az ablakban.', + title: 'Beillesztés' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/id.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/id.js new file mode 100644 index 00000000..4cd777a1 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/id.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'id', { + copy: 'Salin', + copyError: 'Pengaturan keamanan peramban anda tidak mengizinkan editor untuk mengeksekusi operasi menyalin secara otomatis. Mohon gunakan papan tuts (Ctrl/Cmd+C)', + cut: 'Potong', + cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', // MISSING + paste: 'Tempel', + pasteArea: 'Area Tempel', + pasteMsg: 'Please paste inside the following box using the keyboard (Ctrl/Cmd+V) and hit OK', // MISSING + securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING + title: 'Tempel' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/is.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/is.js new file mode 100644 index 00000000..4f426a90 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/is.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'is', { + copy: 'Afrita', + copyError: 'Öryggisstillingar vafrans þíns leyfa ekki afritun texta með músaraðgerð. Notaðu lyklaborðið í afrita (Ctrl/Cmd+C).', + cut: 'Klippa', + cutError: 'Öryggisstillingar vafrans þíns leyfa ekki klippingu texta með músaraðgerð. Notaðu lyklaborðið í klippa (Ctrl/Cmd+X).', + paste: 'Líma', + pasteArea: 'Paste Area', // MISSING + pasteMsg: 'Límdu í svæðið hér að neðan og (Ctrl/Cmd+V) og smelltu á OK.', + securityMsg: 'Vegna öryggisstillinga í vafranum þínum fær ritillinn ekki beinan aðgang að klippuborðinu. Þú verður að líma innihaldið aftur inn í þennan glugga.', + title: 'Líma' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/it.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/it.js new file mode 100644 index 00000000..ae91498c --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/it.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'it', { + copy: 'Copia', + copyError: 'Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+C).', + cut: 'Taglia', + cutError: 'Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+X).', + paste: 'Incolla', + pasteArea: 'Incolla', + pasteMsg: 'Incolla il testo all\'interno dell\'area sottostante usando la scorciatoia di tastiere (Ctrl/Cmd+V) e premi OK.', + securityMsg: 'A causa delle impostazioni di sicurezza del browser,l\'editor non è in grado di accedere direttamente agli appunti. E\' pertanto necessario incollarli di nuovo in questa finestra.', + title: 'Incolla' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ja.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ja.js new file mode 100644 index 00000000..54091aff --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ja.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'ja', { + copy: 'コピー', + copyError: 'ブラウザーのセキュリティ設定によりエディタのコピー操作を自動で実行することができません。実行するには手動でキーボードの(Ctrl/Cmd+C)を使用してください。', + cut: '切り取り', + cutError: 'ブラウザーのセキュリティ設定によりエディタの切り取り操作を自動で実行することができません。実行するには手動でキーボードの(Ctrl/Cmd+X)を使用してください。', + paste: '貼り付け', + pasteArea: '貼り付け場所', + pasteMsg: 'キーボード(Ctrl/Cmd+V)を使用して、次の入力エリア内で貼り付けて、OKを押してください。', + securityMsg: 'ブラウザのセキュリティ設定により、エディタはクリップボードデータに直接アクセスすることができません。このウィンドウは貼り付け操作を行う度に表示されます。', + title: '貼り付け' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ka.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ka.js new file mode 100644 index 00000000..94f3d3d4 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ka.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'ka', { + copy: 'ასლი', + copyError: 'თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა ასლის ოპერაციის ავტომატურად განხორციელების საშუალებას. გამოიყენეთ კლავიატურა ამისთვის (Ctrl/Cmd+C).', + cut: 'ამოჭრა', + cutError: 'თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა ამოჭრის ოპერაციის ავტომატურად განხორციელების საშუალებას. გამოიყენეთ კლავიატურა ამისთვის (Ctrl/Cmd+X).', + paste: 'ჩასმა', + pasteArea: 'ჩასმის არე', + pasteMsg: 'ჩასვით ამ არის შიგნით კლავიატურის გამოყენებით (Ctrl/Cmd+V) და დააჭირეთ OK-ს', + securityMsg: 'თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა clipboard-ის მონაცემების წვდომის უფლებას. კიდევ უნდა ჩასვათ ტექსტი ამ ფანჯარაში.', + title: 'ჩასმა' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/km.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/km.js new file mode 100644 index 00000000..85c726c7 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/km.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'km', { + copy: 'ចម្លង', + copyError: 'ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ ចំលងអត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ (Ctrl/Cmd+C)។', + cut: 'កាត់យក', + cutError: 'ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ កាត់អត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ (Ctrl/Cmd+X) ។', + paste: 'បិទ​ភ្ជាប់', + pasteArea: 'តំបន់​បិទ​ភ្ជាប់', + pasteMsg: 'សូមចំលងអត្ថបទទៅដាក់ក្នុងប្រអប់ដូចខាងក្រោមដោយប្រើប្រាស់ ឃី ​(Ctrl/Cmd+V) ហើយចុច OK ។', + securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING + title: 'បិទ​ភ្ជាប់' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ko.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ko.js new file mode 100644 index 00000000..76d29433 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ko.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'ko', { + copy: '복사하기', + copyError: '브라우저의 보안설정때문에 복사하기 기능을 실행할 수 없습니다. 키보드 명령을 사용하십시요. (Ctrl/Cmd+C).', + cut: '잘라내기', + cutError: '브라우저의 보안설정때문에 잘라내기 기능을 실행할 수 없습니다. 키보드 명령을 사용하십시요. (Ctrl/Cmd+X).', + paste: '붙여넣기', + pasteArea: '범위 붙여넣기', + pasteMsg: '키보드의 (Ctrl/Cmd+V) 를 이용해서 상자안에 붙여넣고 OK 를 누르세요.', + securityMsg: '브러우저 보안 설정으로 인해, 클립보드의 자료를 직접 접근할 수 없습니다. 이 창에 다시 붙여넣기 하십시오.', + title: '붙여넣기' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ku.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ku.js new file mode 100644 index 00000000..ffe87c57 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ku.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'ku', { + copy: 'لەبەرگرتنەوە', + copyError: 'پارێزی وێبگەڕەکەت ڕێگەنادات بەسەرنووسەکە لە لکاندنی دەقی خۆکارارنە. تکایە لەبری ئەمە ئەم فەرمانە بەکاربهێنە بەداگرتنی کلیلی (Ctrl/Cmd+C).', + cut: 'بڕین', + cutError: 'پارێزی وێبگەڕەکەت ڕێگەنادات بە سەرنووسەکە لەبڕینی خۆکارانە. تکایە لەبری ئەمە ئەم فەرمانە بەکاربهێنە بەداگرتنی کلیلی (Ctrl/Cmd+X).', + paste: 'لکاندن', + pasteArea: 'ناوچەی لکاندن', + pasteMsg: 'تکایە بیلکێنە لەناوەوەی ئەم سنوقە لەڕێی تەختەکلیلەکەت بە بەکارهێنانی کلیلی (Ctrl/Cmd+V) دووای کلیکی باشە بکە.', + securityMsg: 'بەهۆی شێوەپێدانی پارێزی وێبگەڕەکەت، سەرنووسەکه ناتوانێت دەستبگەیەنێت بەهەڵگیراوەکە ڕاستەوخۆ. بۆیه پێویسته دووباره بیلکێنیت لەم پەنجەرەیه.', + title: 'لکاندن' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/lt.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/lt.js new file mode 100644 index 00000000..bd70e471 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/lt.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'lt', { + copy: 'Kopijuoti', + copyError: 'Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti kopijavimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl/Cmd+C).', + cut: 'Iškirpti', + cutError: 'Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti iškirpimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl/Cmd+X).', + paste: 'Įdėti', + pasteArea: 'Įkelti dalį', + pasteMsg: 'Žemiau esančiame įvedimo lauke įdėkite tekstą, naudodami klaviatūrą (Ctrl/Cmd+V) ir paspauskite mygtuką OK.', + securityMsg: 'Dėl jūsų naršyklės saugumo nustatymų, redaktorius negali tiesiogiai pasiekti laikinosios atminties. Jums reikia nukopijuoti dar kartą į šį langą.', + title: 'Įdėti' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/lv.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/lv.js new file mode 100644 index 00000000..40da76f6 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/lv.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'lv', { + copy: 'Kopēt', + copyError: 'Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj redaktoram automātiski veikt kopēšanas darbību. Lūdzu, izmantojiet (Ctrl/Cmd+C), lai veiktu šo darbību.', + cut: 'Izgriezt', + cutError: 'Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj redaktoram automātiski veikt izgriezšanas darbību. Lūdzu, izmantojiet (Ctrl/Cmd+X), lai veiktu šo darbību.', + paste: 'Ielīmēt', + pasteArea: 'Ielīmēšanas zona', + pasteMsg: 'Lūdzu, ievietojiet tekstu šajā laukumā, izmantojot klaviatūru (Ctrl/Cmd+V) un apstipriniet ar Darīts!.', + securityMsg: 'Jūsu pārlūka drošības uzstādījumu dēļ, nav iespējams tieši piekļūt jūsu starpliktuvei. Jums jāielīmē atkārtoti šajā logā.', + title: 'Ievietot' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/mk.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/mk.js new file mode 100644 index 00000000..bb8cafeb --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/mk.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'mk', { + copy: 'Copy', // MISSING + copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).', // MISSING + cut: 'Cut', // MISSING + cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', // MISSING + paste: 'Paste', // MISSING + pasteArea: 'Paste Area', // MISSING + pasteMsg: 'Please paste inside the following box using the keyboard (Ctrl/Cmd+V) and hit OK', // MISSING + securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING + title: 'Paste' // MISSING +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/mn.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/mn.js new file mode 100644 index 00000000..4c39990f --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/mn.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'mn', { + copy: 'Хуулах', + copyError: 'Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хуулах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl/Cmd+C) товчны хослолыг ашиглана уу.', + cut: 'Хайчлах', + cutError: 'Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хайчлах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl/Cmd+X) товчны хослолыг ашиглана уу.', + paste: 'Буулгах', + pasteArea: 'Paste Area', // MISSING + pasteMsg: '(Ctrl/Cmd+V) товчийг ашиглан paste хийнэ үү. Мөн OK дар.', + securityMsg: 'Таны үзүүлэгч/browser/-н хамгаалалтын тохиргооноос болоод editor clipboard өгөгдөлрүү шууд хандах боломжгүй. Энэ цонход дахин paste хийхийг оролд.', + title: 'Буулгах' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ms.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ms.js new file mode 100644 index 00000000..a0a37a6c --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ms.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'ms', { + copy: 'Salin', + copyError: 'Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+C).', + cut: 'Potong', + cutError: 'Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+X).', + paste: 'Tampal', + pasteArea: 'Paste Area', // MISSING + pasteMsg: 'Please paste inside the following box using the keyboard (Ctrl/Cmd+V) and hit OK', // MISSING + securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING + title: 'Tampal' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/nb.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/nb.js new file mode 100644 index 00000000..9c0d9333 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/nb.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'nb', { + copy: 'Kopier', + copyError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk tastatursnarveien (Ctrl/Cmd+C).', + cut: 'Klipp ut', + cutError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk tastatursnarveien (Ctrl/Cmd+X).', + paste: 'Lim inn', + pasteArea: 'Innlimingsområde', + pasteMsg: 'Vennligst lim inn i følgende boks med tastaturet (Ctrl/Cmd+V) og trykk OK.', + securityMsg: 'Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må derfor lime det inn på nytt i dette vinduet.', + title: 'Lim inn' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/nl.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/nl.js new file mode 100644 index 00000000..adc08d56 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/nl.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'nl', { + copy: 'Kopiëren', + copyError: 'De beveiligingsinstelling van de browser verhinderen het automatisch kopiëren. Gebruik de sneltoets Ctrl/Cmd+C van het toetsenbord.', + cut: 'Knippen', + cutError: 'De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl/Cmd+X van het toetsenbord.', + paste: 'Plakken', + pasteArea: 'Plakgebied', + pasteMsg: 'Plak de tekst in het volgende vak gebruikmakend van uw toetsenbord (Ctrl/Cmd+V) en klik op OK.', + securityMsg: 'Door de beveiligingsinstellingen van uw browser is het niet mogelijk om direct vanuit het klembord in de editor te plakken. Middels opnieuw plakken in dit venster kunt u de tekst alsnog plakken in de editor.', + title: 'Plakken' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/no.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/no.js new file mode 100644 index 00000000..7e3b815f --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/no.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'no', { + copy: 'Kopier', + copyError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snarveien (Ctrl/Cmd+C).', + cut: 'Klipp ut', + cutError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk snarveien (Ctrl/Cmd+X).', + paste: 'Lim inn', + pasteArea: 'Innlimingsområde', + pasteMsg: 'Vennligst lim inn i følgende boks med tastaturet (Ctrl/Cmd+V) og trykk OK.', + securityMsg: 'Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må derfor lime det inn på nytt i dette vinduet.', + title: 'Lim inn' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/pl.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/pl.js new file mode 100644 index 00000000..7ab465f5 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/pl.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'pl', { + copy: 'Kopiuj', + copyError: 'Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+C.', + cut: 'Wytnij', + cutError: 'Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+X.', + paste: 'Wklej', + pasteArea: 'Obszar wklejania', + pasteMsg: 'Wklej tekst w poniższym polu, używając skrótu klawiaturowego (Ctrl/Cmd+V), i kliknij OK.', + securityMsg: 'Zabezpieczenia przeglądarki uniemożliwiają wklejenie danych bezpośrednio do edytora. Proszę ponownie wkleić dane w tym oknie.', + title: 'Wklej' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/pt-br.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/pt-br.js new file mode 100644 index 00000000..15a323ed --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/pt-br.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'pt-br', { + copy: 'Copiar', + copyError: 'As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl/Cmd+C).', + cut: 'Recortar', + cutError: 'As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl/Cmd+X).', + paste: 'Colar', + pasteArea: 'Área para Colar', + pasteMsg: 'Transfira o link usado na caixa usando o teclado com (Ctrl/Cmd+V) e OK.', + securityMsg: 'As configurações de segurança do seu navegador não permitem que o editor acesse os dados da área de transferência diretamente. Por favor cole o conteúdo manualmente nesta janela.', + title: 'Colar' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/pt.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/pt.js new file mode 100644 index 00000000..cf4f5bc2 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/pt.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'pt', { + copy: 'Copiar', + copyError: 'A configuração de segurança do navegador não permite a execução automática de operações de copiar. Por favor use o teclado (Ctrl/Cmd+C).', + cut: 'Cortar', + cutError: 'A configuração de segurança do navegador não permite a execução automática de operações de cortar. Por favor use o teclado (Ctrl/Cmd+X).', + paste: 'Colar', + pasteArea: 'Colar Área', + pasteMsg: 'Por favor, cole dentro da seguinte caixa usando o teclado (Ctrl/Cmd+V) e prima OK.', + securityMsg: 'Devido ás definições de segurança do teu browser, o editor não pode aceder ao clipboard diretamente. É necessário que voltes a colar as informações nesta janela.', + title: 'Colar' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ro.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ro.js new file mode 100644 index 00000000..0fb7a200 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ro.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'ro', { + copy: 'Copiază', + copyError: 'Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de copiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+C).', + cut: 'Taie', + cutError: 'Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de tăiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+X).', + paste: 'Adaugă', + pasteArea: 'Suprafața de adăugare', + pasteMsg: 'Vă rugăm adăugaţi în căsuţa următoare folosind tastatura (Ctrl/Cmd+V) şi apăsaţi OK', + securityMsg: 'Din cauza setărilor de securitate ale programului dvs. cu care navigaţi pe internet (browser), editorul nu poate accesa direct datele din clipboard. Va trebui să adăugaţi din nou datele în această fereastră.', + title: 'Adaugă' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ru.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ru.js new file mode 100644 index 00000000..969a1b75 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ru.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'ru', { + copy: 'Копировать', + copyError: 'Настройки безопасности вашего браузера не разрешают редактору выполнять операции по копированию текста. Пожалуйста, используйте для этого клавиатуру (Ctrl/Cmd+C).', + cut: 'Вырезать', + cutError: 'Настройки безопасности вашего браузера не разрешают редактору выполнять операции по вырезке текста. Пожалуйста, используйте для этого клавиатуру (Ctrl/Cmd+X).', + paste: 'Вставить', + pasteArea: 'Зона для вставки', + pasteMsg: 'Пожалуйста, вставьте текст в зону ниже, используя клавиатуру (Ctrl/Cmd+V) и нажмите кнопку "OK".', + securityMsg: 'Настройки безопасности вашего браузера не разрешают редактору напрямую обращаться к буферу обмена. Вы должны вставить текст снова в это окно.', + title: 'Вставить' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/si.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/si.js new file mode 100644 index 00000000..2ae74f59 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/si.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'si', { + copy: 'පිටපත් කරන්න', + copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).', // MISSING + cut: 'කපාගන්න', + cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', // MISSING + paste: 'අලවන්න', + pasteArea: 'අලවන ප්‍රදේශ', + pasteMsg: 'Please paste inside the following box using the keyboard (Ctrl/Cmd+V) and hit OK', // MISSING + securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING + title: 'අලවන්න' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/sk.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/sk.js new file mode 100644 index 00000000..05acd5da --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/sk.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'sk', { + copy: 'Kopírovať', + copyError: 'Bezpečnostné nastavenia Vášho prehliadača nedovoľujú editoru automaticky spustiť operáciu kopírovania. Prosím, použite na to klávesnicu (Ctrl/Cmd+C).', + cut: 'Vystrihnúť', + cutError: 'Bezpečnostné nastavenia Vášho prehliadača nedovoľujú editoru automaticky spustiť operáciu vystrihnutia. Prosím, použite na to klávesnicu (Ctrl/Cmd+X).', + paste: 'Vložiť', + pasteArea: 'Miesto pre vloženie', + pasteMsg: 'Prosím, vložte nasledovný rámček použitím klávesnice (Ctrl/Cmd+V) a stlačte OK.', + securityMsg: 'Kvôli vašim bezpečnostným nastaveniam prehliadača editor nie je schopný pristupovať k vašej schránke na kopírovanie priamo. Vložte to preto do tohto okna.', + title: 'Vložiť' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/sl.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/sl.js new file mode 100644 index 00000000..c2334e39 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/sl.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'sl', { + copy: 'Kopiraj', + copyError: 'Varnostne nastavitve brskalnika ne dopuščajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+C).', + cut: 'Izreži', + cutError: 'Varnostne nastavitve brskalnika ne dopuščajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+X).', + paste: 'Prilepi', + pasteArea: 'Prilepi Prostor', + pasteMsg: 'Prosim prilepite v sleči okvir s pomočjo tipkovnice (Ctrl/Cmd+V) in pritisnite V redu.', + securityMsg: 'Zaradi varnostnih nastavitev vašega brskalnika urejevalnik ne more neposredno dostopati do odložišča. Vsebino odložišča ponovno prilepite v to okno.', + title: 'Prilepi' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/sq.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/sq.js new file mode 100644 index 00000000..eaec33e1 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/sq.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'sq', { + copy: 'Kopjo', + copyError: 'Të dhënat e sigurisë së shfletuesit tuaj nuk lejojnë që redaktuesi automatikisht të kryej veprimin e kopjimit. Ju lutemi shfrytëzoni tastierën për këtë veprim (Ctrl/Cmd+C).', + cut: 'Preje', + cutError: 'Të dhënat e sigurisë së shfletuesit tuaj nuk lejojnë që redaktuesi automatikisht të kryej veprimin e prerjes. Ju lutemi shfrytëzoni tastierën për këtë veprim (Ctrl/Cmd+X).', + paste: 'Hidhe', + pasteArea: 'Hapësira Hedhëse', + pasteMsg: 'Ju lutemi hidhni brenda kutizës në vijim duke shfrytëzuar tastierën (Ctrl/Cmd+V) dhe shtypni Mirë.', + securityMsg: 'Për shkak të dhënave të sigurisë së shfletuesit tuaj, redaktuesi nuk është në gjendje të i qaset drejtpërdrejtë të dhanve të tabelës suaj të punës. Ju duhet të hidhni atë përsëri në këtë dritare.', + title: 'Hidhe' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/sr-latn.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/sr-latn.js new file mode 100644 index 00000000..30238b0e --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/sr-latn.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'sr-latn', { + copy: 'Kopiraj', + copyError: 'Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl/Cmd+C).', + cut: 'Iseci', + cutError: 'Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog isecanja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl/Cmd+X).', + paste: 'Zalepi', + pasteArea: 'Prostor za lepljenje', + pasteMsg: 'Molimo Vas da zalepite unutar donje povrine koristeći tastaturnu prečicu (Ctrl/Cmd+V) i da pritisnete OK.', + securityMsg: 'Zbog sigurnosnih postavki vašeg pregledača, editor nije u mogućnosti da direktno pristupi podacima u klipbordu. Potrebno je da zalepite još jednom u ovom prozoru.', + title: 'Zalepi' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/sr.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/sr.js new file mode 100644 index 00000000..2a6d9604 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/sr.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'sr', { + copy: 'Копирај', + copyError: 'Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског копирања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl/Cmd+C).', + cut: 'Исеци', + cutError: 'Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског исецања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl/Cmd+X).', + paste: 'Залепи', + pasteArea: 'Залепи зону', + pasteMsg: 'Молимо Вас да залепите унутар доње површине користећи тастатурну пречицу (Ctrl/Cmd+V) и да притиснете OK.', + securityMsg: 'Због сигурносних подешавања претраживача, едитор не може да приступи оставу. Требате да га поново залепите у овом прозору.', + title: 'Залепи' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/sv.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/sv.js new file mode 100644 index 00000000..5b9489b6 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/sv.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'sv', { + copy: 'Kopiera', + copyError: 'Säkerhetsinställningar i Er webbläsare tillåter inte åtgärden kopiera. Använd (Ctrl/Cmd+C) istället.', + cut: 'Klipp ut', + cutError: 'Säkerhetsinställningar i Er webbläsare tillåter inte åtgärden klipp ut. Använd (Ctrl/Cmd+X) istället.', + paste: 'Klistra in', + pasteArea: 'Paste Area', + pasteMsg: 'Var god och klistra in Er text i rutan nedan genom att använda (Ctrl/Cmd+V) klicka sen på OK.', + securityMsg: 'På grund av din webbläsares säkerhetsinställningar kan verktyget inte få åtkomst till urklippsdatan. Var god och använd detta fönster istället.', + title: 'Klistra in' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/th.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/th.js new file mode 100644 index 00000000..111bf900 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/th.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'th', { + copy: 'สำเนา', + copyError: 'ไม่สามารถสำเนาข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl/Cmd และตัว C พร้อมกัน).', + cut: 'ตัด', + cutError: 'ไม่สามารถตัดข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl/Cmd และตัว X พร้อมกัน).', + paste: 'วาง', + pasteArea: 'Paste Area', // MISSING + pasteMsg: 'กรุณาใช้คีย์บอร์ดเท่านั้น โดยกดปุ๋ม (Ctrl/Cmd และ V)พร้อมๆกัน และกด OK.', + securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING + title: 'วาง' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/tr.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/tr.js new file mode 100644 index 00000000..739bd50f --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/tr.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'tr', { + copy: 'Kopyala', + copyError: 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kopyalama işlemine izin vermiyor. İşlem için (Ctrl/Cmd+C) tuşlarını kullanın.', + cut: 'Kes', + cutError: 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kesme işlemine izin vermiyor. İşlem için (Ctrl/Cmd+X) tuşlarını kullanın.', + paste: 'Yapıştır', + pasteArea: 'Yapıştırma Alanı', + pasteMsg: 'Lütfen aşağıdaki kutunun içine yapıştırın. (Ctrl/Cmd+V) ve Tamam butonunu tıklayın.', + securityMsg: 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin direkt olarak panoya erişimine izin vermiyor. Bu pencere içine tekrar yapıştırmalısınız..', + title: 'Yapıştır' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ug.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ug.js new file mode 100644 index 00000000..cbb3fea6 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/ug.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'ug', { + copy: 'نەشر ھوقۇقىغا ئىگە بەلگىسى', + copyError: 'تور كۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى تەھرىرلىگۈچنىڭ كۆچۈر مەشغۇلاتىنى ئۆزلۈكىدىن ئىجرا قىلىشىغا يول قويمايدۇ، ھەرپتاختا تېز كۇنۇپكا (Ctrl/Cmd+C) ئارقىلىق تاماملاڭ', + cut: 'كەس', + cutError: 'تور كۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى تەھرىرلىگۈچنىڭ كەس مەشغۇلاتىنى ئۆزلۈكىدىن ئىجرا قىلىشىغا يول قويمايدۇ، ھەرپتاختا تېز كۇنۇپكا (Ctrl/Cmd+X) ئارقىلىق تاماملاڭ', + paste: 'چاپلا', + pasteArea: 'چاپلاش دائىرىسى', + pasteMsg: 'ھەرپتاختا تېز كۇنۇپكا (Ctrl/Cmd+V) نى ئىشلىتىپ مەزمۇننى تۆۋەندىكى رامكىغا كۆچۈرۈڭ، ئاندىن جەزملەنى بېسىڭ', + securityMsg: 'توركۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى سەۋەبىدىن بۇ تەھرىرلىگۈچ چاپلاش تاختىسىدىكى مەزمۇننى بىۋاستە زىيارەت قىلالمايدۇ، بۇ كۆزنەكتە قايتا بىر قېتىم چاپلىشىڭىز كېرەك.', + title: 'چاپلا' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/uk.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/uk.js new file mode 100644 index 00000000..5013d3d6 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/uk.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'uk', { + copy: 'Копіювати', + copyError: 'Налаштування безпеки Вашого браузера не дозволяють редактору автоматично виконувати операції копіювання. Будь ласка, використовуйте клавіатуру для цього (Ctrl/Cmd+C).', + cut: 'Вирізати', + cutError: 'Налаштування безпеки Вашого браузера не дозволяють редактору автоматично виконувати операції вирізування. Будь ласка, використовуйте клавіатуру для цього (Ctrl/Cmd+X)', + paste: 'Вставити', + pasteArea: 'Область вставки', + pasteMsg: 'Будь ласка, вставте інформацію з буфера обміну в цю область, користуючись комбінацією клавіш (Ctrl/Cmd+V), та натисніть OK.', + securityMsg: 'Редактор не може отримати прямий доступ до буферу обміну у зв\'язку з налаштуваннями Вашого браузера. Вам потрібно вставити інформацію в це вікно.', + title: 'Вставити' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/vi.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/vi.js new file mode 100644 index 00000000..8ba0e82b --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/vi.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'vi', { + copy: 'Sao chép', + copyError: 'Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh sao chép. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+C).', + cut: 'Cắt', + cutError: 'Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh cắt. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+X).', + paste: 'Dán', + pasteArea: 'Khu vực dán', + pasteMsg: 'Hãy dán nội dung vào trong khung bên dưới, sử dụng tổ hợp phím (Ctrl/Cmd+V) và nhấn vào nút Đồng ý.', + securityMsg: 'Do thiết lập bảo mật của trình duyệt nên trình biên tập không thể truy cập trực tiếp vào nội dung đã sao chép. Bạn cần phải dán lại nội dung vào cửa sổ này.', + title: 'Dán' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/zh-cn.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/zh-cn.js new file mode 100644 index 00000000..7f676b63 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/zh-cn.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'zh-cn', { + copy: '复制', + copyError: '您的浏览器安全设置不允许编辑器自动执行复制操作,请使用键盘快捷键(Ctrl/Cmd+C)来完成。', + cut: '剪切', + cutError: '您的浏览器安全设置不允许编辑器自动执行剪切操作,请使用键盘快捷键(Ctrl/Cmd+X)来完成。', + paste: '粘贴', + pasteArea: '粘贴区域', + pasteMsg: '请使用键盘快捷键(Ctrl/Cmd+V)把内容粘贴到下面的方框里,再按 确定', + securityMsg: '因为您的浏览器的安全设置原因,本编辑器不能直接访问您的剪贴板内容,你需要在本窗口重新粘贴一次。', + title: '粘贴' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/zh.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/zh.js new file mode 100644 index 00000000..c2175ec3 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/lang/zh.js @@ -0,0 +1,15 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'clipboard', 'zh', { + copy: '複製', + copyError: '瀏覽器的安全性設定不允許編輯器自動執行複製動作。請使用鍵盤快捷鍵 (Ctrl/Cmd+C) 複製。', + cut: '剪下', + cutError: '瀏覽器的安全性設定不允許編輯器自動執行剪下動作。請使用鏐盤快捷鍵 (Ctrl/Cmd+X) 剪下。', + paste: '貼上', + pasteArea: '貼上區', + pasteMsg: '請使用鍵盤快捷鍵 (Ctrl/Cmd+V) 貼到下方區域中並按下「確定」。', + securityMsg: '因為瀏覽器的安全性設定,本編輯器無法直接存取您的剪貼簿資料,請您自行在本視窗進行貼上動作。', + title: '貼上' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/clipboard/plugin.js b/lam/templates/lib/extra/ckeditor/plugins/clipboard/plugin.js new file mode 100644 index 00000000..3118e3ac --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/clipboard/plugin.js @@ -0,0 +1,1229 @@ +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +/** + * @ignore + * File overview: Clipboard support. + */ + +// +// EXECUTION FLOWS: +// -- CTRL+C +// * browser's default behaviour +// -- CTRL+V +// * listen onKey (onkeydown) +// * simulate 'beforepaste' for non-IEs on editable +// * simulate 'paste' for Fx2/Opera on editable +// * listen 'onpaste' on editable ('onbeforepaste' for IE) +// * fire 'beforePaste' on editor +// * !canceled && getClipboardDataByPastebin +// * fire 'paste' on editor +// * !canceled && fire 'afterPaste' on editor +// -- CTRL+X +// * listen onKey (onkeydown) +// * fire 'saveSnapshot' on editor +// * browser's default behaviour +// * deferred second 'saveSnapshot' event +// -- Copy command +// * tryToCutCopy +// * execCommand +// * !success && alert +// -- Cut command +// * fixCut +// * tryToCutCopy +// * execCommand +// * !success && alert +// -- Paste command +// * fire 'paste' on editable ('beforepaste' for IE) +// * !canceled && execCommand 'paste' +// * !success && fire 'pasteDialog' on editor +// -- Paste from native context menu & menubar +// (Fx & Webkits are handled in 'paste' default listner. +// Opera cannot be handled at all because it doesn't fire any events +// Special treatment is needed for IE, for which is this part of doc) +// * listen 'onpaste' +// * cancel native event +// * fire 'beforePaste' on editor +// * !canceled && getClipboardDataByPastebin +// * execIECommand( 'paste' ) -> this fires another 'paste' event, so cancel it +// * fire 'paste' on editor +// * !canceled && fire 'afterPaste' on editor +// +// +// PASTE EVENT - PREPROCESSING: +// -- Possible dataValue types: auto, text, html. +// -- Possible dataValue contents: +// * text (possible \n\r) +// * htmlified text (text + br,div,p - no presentional markup & attrs - depends on browser) +// * html +// -- Possible flags: +// * htmlified - if true then content is a HTML even if no markup inside. This flag is set +// for content from editable pastebins, because they 'htmlify' pasted content. +// +// -- Type: auto: +// * content: htmlified text -> filter, unify text markup (brs, ps, divs), set type: text +// * content: html -> filter, set type: html +// -- Type: text: +// * content: htmlified text -> filter, unify text markup +// * content: html -> filter, strip presentional markup, unify text markup +// -- Type: html: +// * content: htmlified text -> filter, unify text markup +// * content: html -> filter +// +// -- Phases: +// * filtering (priorities 3-5) - e.g. pastefromword filters +// * content type sniffing (priority 6) +// * markup transformations for text (priority 6) +// + +'use strict'; + +( function() { + // Register the plugin. + CKEDITOR.plugins.add( 'clipboard', { + requires: 'dialog', + lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + icons: 'copy,copy-rtl,cut,cut-rtl,paste,paste-rtl', // %REMOVE_LINE_CORE% + hidpi: true, // %REMOVE_LINE_CORE% + init: function( editor ) { + var textificationFilter; + + initClipboard( editor ); + + CKEDITOR.dialog.add( 'paste', CKEDITOR.getUrl( this.path + 'dialogs/paste.js' ) ); + + editor.on( 'paste', function( evt ) { + var data = evt.data.dataValue, + blockElements = CKEDITOR.dtd.$block; + + // Filter webkit garbage. + if ( data.indexOf( 'Apple-' ) > -1 ) { + // Replace special webkit's   with simple space, because webkit + // produces them even for normal spaces. + data = data.replace( / <\/span>/gi, ' ' ); + + // Strip around white-spaces when not in forced 'html' content type. + // This spans are created only when pasting plain text into Webkit, + // but for safety reasons remove them always. + if ( evt.data.type != 'html' ) + data = data.replace( /]*>([^<]*)<\/span>/gi, function( all, spaces ) { + // Replace tabs with 4 spaces like Fx does. + return spaces.replace( /\t/g, '    ' ); + } ); + + // This br is produced only when copying & pasting HTML content. + if ( data.indexOf( '
    ' ) > -1 ) { + evt.data.startsWithEOL = 1; + evt.data.preSniffing = 'html'; // Mark as not text. + data = data.replace( /
    /, '' ); + } + + // Remove all other classes. + data = data.replace( /(<[^>]+) class="Apple-[^"]*"/gi, '$1' ); + } + + // Strip editable that was copied from inside. (#9534) + if ( data.match( /^<[^<]+cke_(editable|contents)/i ) ) { + var tmp, + editable_wrapper, + wrapper = new CKEDITOR.dom.element( 'div' ); + + wrapper.setHtml( data ); + // Verify for sure and check for nested editor UI parts. (#9675) + while ( wrapper.getChildCount() == 1 && + ( tmp = wrapper.getFirst() ) && + tmp.type == CKEDITOR.NODE_ELEMENT && // Make sure first-child is element. + ( tmp.hasClass( 'cke_editable' ) || tmp.hasClass( 'cke_contents' ) ) ) { + wrapper = editable_wrapper = tmp; + } + + // If editable wrapper was found strip it and bogus
    (added on FF). + if ( editable_wrapper ) + data = editable_wrapper.getHtml().replace( /
    $/i, '' ); + } + + if ( CKEDITOR.env.ie ) { + //  

    ->

    (br.cke-pasted-remove will be removed later) + data = data.replace( /^ (?: |\r\n)?<(\w+)/g, function( match, elementName ) { + if ( elementName.toLowerCase() in blockElements ) { + evt.data.preSniffing = 'html'; // Mark as not a text. + return '<' + elementName; + } + return match; + } ); + } else if ( CKEDITOR.env.webkit ) { + //


    ->


    + // We don't mark br, because this situation can happen for htmlified text too. + data = data.replace( /<\/(\w+)>

    <\/div>$/, function( match, elementName ) { + if ( elementName in blockElements ) { + evt.data.endsWithEOL = 1; + return ''; + } + return match; + } ); + } else if ( CKEDITOR.env.gecko ) { + // Firefox adds bogus
    when user pasted text followed by space(s). + data = data.replace( /(\s)
    $/, '$1' ); + } + + evt.data.dataValue = data; + }, null, null, 3 ); + + editor.on( 'paste', function( evt ) { + var dataObj = evt.data, + type = dataObj.type, + data = dataObj.dataValue, + trueType, + // Default is 'html'. + defaultType = editor.config.clipboard_defaultContentType || 'html'; + + // If forced type is 'html' we don't need to know true data type. + if ( type == 'html' || dataObj.preSniffing == 'html' ) + trueType = 'html'; + else + trueType = recogniseContentType( data ); + + // Unify text markup. + if ( trueType == 'htmlifiedtext' ) + data = htmlifiedTextHtmlification( editor.config, data ); + // Strip presentional markup & unify text markup. + else if ( type == 'text' && trueType == 'html' ) { + // Init filter only if needed and cache it. + data = htmlTextification( editor.config, data, textificationFilter || ( textificationFilter = getTextificationFilter( editor ) ) ); + } + + if ( dataObj.startsWithEOL ) + data = '
    ' + data; + if ( dataObj.endsWithEOL ) + data += '
    '; + + if ( type == 'auto' ) + type = ( trueType == 'html' || defaultType == 'html' ) ? 'html' : 'text'; + + dataObj.type = type; + dataObj.dataValue = data; + delete dataObj.preSniffing; + delete dataObj.startsWithEOL; + delete dataObj.endsWithEOL; + }, null, null, 6 ); + + // Inserts processed data into the editor at the end of the + // events chain. + editor.on( 'paste', function( evt ) { + var data = evt.data; + + editor.insertHtml( data.dataValue, data.type ); + + // Deferr 'afterPaste' so all other listeners for 'paste' will be fired first. + setTimeout( function() { + editor.fire( 'afterPaste' ); + }, 0 ); + }, null, null, 1000 ); + + editor.on( 'pasteDialog', function( evt ) { + // TODO it's possible that this setTimeout is not needed any more, + // because of changes introduced in the same commit as this comment. + // Editor.getClipboardData adds listner to the dialog's events which are + // fired after a while (not like 'showDialog'). + setTimeout( function() { + // Open default paste dialog. + editor.openDialog( 'paste', evt.data ); + }, 0 ); + } ); + } + } ); + + function initClipboard( editor ) { + var preventBeforePasteEvent = 0, + preventPasteEvent = 0, + inReadOnly = 0, + // Safari doesn't like 'beforepaste' event - it sometimes doesn't + // properly handles ctrl+c. Probably some race-condition between events. + // Chrome and Firefox works well with both events, so better to use 'paste' + // which will handle pasting from e.g. browsers' menu bars. + // IE7/8 doesn't like 'paste' event for which it's throwing random errors. + mainPasteEvent = CKEDITOR.env.ie ? 'beforepaste' : 'paste'; + + addListeners(); + addButtonsCommands(); + + /** + * Gets clipboard data by directly accessing the clipboard (IE only) or opening paste dialog. + * + * editor.getClipboardData( { title: 'Get my data' }, function( data ) { + * if ( data ) + * alert( data.type + ' ' + data.dataValue ); + * } ); + * + * @member CKEDITOR.editor + * @param {Object} options + * @param {String} [options.title] Title of paste dialog. + * @param {Function} callback Function that will be executed with `data.type` and `data.dataValue` + * or `null` if none of the capturing method succeeded. + */ + editor.getClipboardData = function( options, callback ) { + var beforePasteNotCanceled = false, + dataType = 'auto', + dialogCommited = false; + + // Options are optional - args shift. + if ( !callback ) { + callback = options; + options = null; + } + + // Listen with maximum priority to handle content before everyone else. + // This callback will handle paste event that will be fired if direct + // access to the clipboard succeed in IE. + editor.on( 'paste', onPaste, null, null, 0 ); + + // Listen at the end of listeners chain to see if event wasn't canceled + // and to retrieve modified data.type. + editor.on( 'beforePaste', onBeforePaste, null, null, 1000 ); + + // getClipboardDataDirectly() will fire 'beforePaste' synchronously, so we can + // check if it was canceled and if any listener modified data.type. + + // If command didn't succeed (only IE allows to access clipboard and only if + // user agrees) open and handle paste dialog. + if ( getClipboardDataDirectly() === false ) { + // Direct access to the clipboard wasn't successful so remove listener. + editor.removeListener( 'paste', onPaste ); + + // If beforePaste was canceled do not open dialog. + // Add listeners only if dialog really opened. 'pasteDialog' can be canceled. + if ( beforePasteNotCanceled && editor.fire( 'pasteDialog', onDialogOpen ) ) { + editor.on( 'pasteDialogCommit', onDialogCommit ); + + // 'dialogHide' will be fired after 'pasteDialogCommit'. + editor.on( 'dialogHide', function( evt ) { + evt.removeListener(); + evt.data.removeListener( 'pasteDialogCommit', onDialogCommit ); + + // Because Opera has to wait a while in pasteDialog we have to wait here. + setTimeout( function() { + // Notify even if user canceled dialog (clicked 'cancel', ESC, etc). + if ( !dialogCommited ) + callback( null ); + }, 10 ); + } ); + } else + callback( null ); + } + + function onPaste( evt ) { + evt.removeListener(); + evt.cancel(); + callback( evt.data ); + } + + function onBeforePaste( evt ) { + evt.removeListener(); + beforePasteNotCanceled = true; + dataType = evt.data.type; + } + + function onDialogCommit( evt ) { + evt.removeListener(); + // Cancel pasteDialogCommit so paste dialog won't automatically fire + // 'paste' evt by itself. + evt.cancel(); + dialogCommited = true; + callback( { type: dataType, dataValue: evt.data } ); + } + + function onDialogOpen() { + this.customTitle = ( options && options.title ); + } + }; + + function addButtonsCommands() { + addButtonCommand( 'Cut', 'cut', createCutCopyCmd( 'cut' ), 10, 1 ); + addButtonCommand( 'Copy', 'copy', createCutCopyCmd( 'copy' ), 20, 4 ); + addButtonCommand( 'Paste', 'paste', createPasteCmd(), 30, 8 ); + + function addButtonCommand( buttonName, commandName, command, toolbarOrder, ctxMenuOrder ) { + var lang = editor.lang.clipboard[ commandName ]; + + editor.addCommand( commandName, command ); + editor.ui.addButton && editor.ui.addButton( buttonName, { + label: lang, + command: commandName, + toolbar: 'clipboard,' + toolbarOrder + } ); + + // If the "menu" plugin is loaded, register the menu item. + if ( editor.addMenuItems ) { + editor.addMenuItem( commandName, { + label: lang, + command: commandName, + group: 'clipboard', + order: ctxMenuOrder + } ); + } + } + } + + function addListeners() { + editor.on( 'key', onKey ); + editor.on( 'contentDom', addListenersToEditable ); + + // For improved performance, we're checking the readOnly state on selectionChange instead of hooking a key event for that. + editor.on( 'selectionChange', function( evt ) { + inReadOnly = evt.data.selection.getRanges()[ 0 ].checkReadOnly(); + setToolbarStates(); + } ); + + // If the "contextmenu" plugin is loaded, register the listeners. + if ( editor.contextMenu ) { + editor.contextMenu.addListener( function( element, selection ) { + inReadOnly = selection.getRanges()[ 0 ].checkReadOnly(); + return { + cut: stateFromNamedCommand( 'cut' ), + copy: stateFromNamedCommand( 'copy' ), + paste: stateFromNamedCommand( 'paste' ) + }; + } ); + } + } + + // Add events listeners to editable. + function addListenersToEditable() { + var editable = editor.editable(); + + // We'll be catching all pasted content in one line, regardless of whether + // it's introduced by a document command execution (e.g. toolbar buttons) or + // user paste behaviors (e.g. CTRL+V). + editable.on( mainPasteEvent, function( evt ) { + if ( CKEDITOR.env.ie && preventBeforePasteEvent ) + return; + + // If you've just asked yourself why preventPasteEventNow() is not here, but + // in listener for CTRL+V and exec method of 'paste' command + // you've asked the same question we did. + // + // THE ANSWER: + // + // First thing to notice - this answer makes sense only for IE, + // because other browsers don't listen for 'paste' event. + // + // What would happen if we move preventPasteEventNow() here? + // For: + // * CTRL+V - IE fires 'beforepaste', so we prevent 'paste' and pasteDataFromClipboard(). OK. + // * editor.execCommand( 'paste' ) - we fire 'beforepaste', so we prevent + // 'paste' and pasteDataFromClipboard() and doc.execCommand( 'Paste' ). OK. + // * native context menu - IE fires 'beforepaste', so we prevent 'paste', but unfortunately + // on IE we fail with pasteDataFromClipboard() here, because of... we don't know why, but + // we just fail, so... we paste nothing. FAIL. + // * native menu bar - the same as for native context menu. + // + // But don't you know any way to distinguish first two cases from last two? + // Only one - special flag set in CTRL+V handler and exec method of 'paste' + // command. And that's what we did using preventPasteEventNow(). + + pasteDataFromClipboard( evt ); + } ); + + // It's not possible to clearly handle all four paste methods (ctrl+v, native menu bar + // native context menu, editor's command) in one 'paste/beforepaste' event in IE. + // + // For ctrl+v & editor's command it's easy to handle pasting in 'beforepaste' listener, + // so we do this. For another two methods it's better to use 'paste' event. + // + // 'paste' is always being fired after 'beforepaste' (except of weird one on opening native + // context menu), so for two methods handled in 'beforepaste' we're canceling 'paste' + // using preventPasteEvent state. + // + // 'paste' event in IE is being fired before getClipboardDataByPastebin executes its callback. + // + // QUESTION: Why didn't you handle all 4 paste methods in handler for 'paste'? + // Wouldn't this just be simpler? + // ANSWER: Then we would have to evt.data.preventDefault() only for native + // context menu and menu bar pastes. The same with execIECommand(). + // That would force us to mark CTRL+V and editor's paste command with + // special flag, other than preventPasteEvent. But we still would have to + // have preventPasteEvent for the second event fired by execIECommand. + // Code would be longer and not cleaner. + CKEDITOR.env.ie && editable.on( 'paste', function( evt ) { + if ( preventPasteEvent ) + return; + // Cancel next 'paste' event fired by execIECommand( 'paste' ) + // at the end of this callback. + preventPasteEventNow(); + + // Prevent native paste. + evt.data.preventDefault(); + + pasteDataFromClipboard( evt ); + + // Force IE to paste content into pastebin so pasteDataFromClipboard will work. + if ( !execIECommand( 'paste' ) ) + editor.openDialog( 'paste' ); + } ); + + // [IE] Dismiss the (wrong) 'beforepaste' event fired on context/toolbar menu open. (#7953) + if ( CKEDITOR.env.ie ) { + editable.on( 'contextmenu', preventBeforePasteEventNow, null, null, 0 ); + + editable.on( 'beforepaste', function( evt ) { + if ( evt.data && !evt.data.$.ctrlKey ) + preventBeforePasteEventNow(); + }, null, null, 0 ); + + } + + editable.on( 'beforecut', function() { + !preventBeforePasteEvent && fixCut( editor ); + } ); + + var mouseupTimeout; + + // Use editor.document instead of editable in non-IEs for observing mouseup + // since editable won't fire the event if selection process started within + // iframe and ended out of the editor (#9851). + editable.attachListener( CKEDITOR.env.ie ? editable : editor.document.getDocumentElement(), 'mouseup', function() { + mouseupTimeout = setTimeout( function() { + setToolbarStates(); + }, 0 ); + } ); + + // Make sure that deferred mouseup callback isn't executed after editor instance + // had been destroyed. This may happen when editor.destroy() is called in parallel + // with mouseup event (i.e. a button with onclick callback) (#10219). + editor.on( 'destroy', function() { + clearTimeout( mouseupTimeout ); + } ); + + editable.on( 'keyup', setToolbarStates ); + } + + // Create object representing Cut or Copy commands. + function createCutCopyCmd( type ) { + return { + type: type, + canUndo: type == 'cut', // We can't undo copy to clipboard. + startDisabled: true, + exec: function( data ) { + // Attempts to execute the Cut and Copy operations. + function tryToCutCopy( type ) { + if ( CKEDITOR.env.ie ) + return execIECommand( type ); + + // non-IEs part + try { + // Other browsers throw an error if the command is disabled. + return editor.document.$.execCommand( type, false, null ); + } catch ( e ) { + return false; + } + } + + this.type == 'cut' && fixCut(); + + var success = tryToCutCopy( this.type ); + + if ( !success ) + alert( editor.lang.clipboard[ this.type + 'Error' ] ); // Show cutError or copyError. + + return success; + } + }; + } + + function createPasteCmd() { + return { + // Snapshots are done manually by editable.insertXXX methods. + canUndo: false, + async: true, + + exec: function( editor, data ) { + var fire = function( data, withBeforePaste ) { + data && firePasteEvents( data.type, data.dataValue, !!withBeforePaste ); + + editor.fire( 'afterCommandExec', { + name: 'paste', + command: cmd, + returnValue: !!data + } ); + }, + cmd = this; + + // Check data precisely - don't open dialog on empty string. + if ( typeof data == 'string' ) + fire( { type: 'auto', dataValue: data }, 1 ); + else + editor.getClipboardData( fire ); + } + }; + } + + function preventPasteEventNow() { + preventPasteEvent = 1; + // For safety reason we should wait longer than 0/1ms. + // We don't know how long execution of quite complex getClipboardData will take + // and in for example 'paste' listner execCommand() (which fires 'paste') is called + // after getClipboardData finishes. + // Luckily, it's impossible to immediately fire another 'paste' event we want to handle, + // because we only handle there native context menu and menu bar. + setTimeout( function() { + preventPasteEvent = 0; + }, 100 ); + } + + function preventBeforePasteEventNow() { + preventBeforePasteEvent = 1; + setTimeout( function() { + preventBeforePasteEvent = 0; + }, 10 ); + } + + // Tries to execute any of the paste, cut or copy commands in IE. Returns a + // boolean indicating that the operation succeeded. + // @param {String} command *LOWER CASED* name of command ('paste', 'cut', 'copy'). + function execIECommand( command ) { + var doc = editor.document, + body = doc.getBody(), + enabled = false, + onExec = function() { + enabled = true; + }; + + // The following seems to be the only reliable way to detect that + // clipboard commands are enabled in IE. It will fire the + // onpaste/oncut/oncopy events only if the security settings allowed + // the command to execute. + body.on( command, onExec ); + + // IE6/7: document.execCommand has problem to paste into positioned element. + ( CKEDITOR.env.version > 7 ? doc.$ : doc.$.selection.createRange() )[ 'execCommand' ]( command ); + + body.removeListener( command, onExec ); + + return enabled; + } + + function firePasteEvents( type, data, withBeforePaste ) { + var eventData = { type: type }; + + if ( withBeforePaste ) { + // Fire 'beforePaste' event so clipboard flavor get customized + // by other plugins. + if ( editor.fire( 'beforePaste', eventData ) === false ) + return false; // Event canceled + } + + // The very last guard to make sure the paste has successfully happened. + // This check should be done after firing 'beforePaste' because for native paste + // 'beforePaste' is by default fired even for empty clipboard. + if ( !data ) + return false; + + // Reuse eventData.type because the default one could be changed by beforePaste listeners. + eventData.dataValue = data; + + return editor.fire( 'paste', eventData ); + } + + // Cutting off control type element in IE standards breaks the selection entirely. (#4881) + function fixCut() { + if ( !CKEDITOR.env.ie || CKEDITOR.env.quirks ) + return; + + var sel = editor.getSelection(), + control, range, dummy; + + if ( ( sel.getType() == CKEDITOR.SELECTION_ELEMENT ) && ( control = sel.getSelectedElement() ) ) { + range = sel.getRanges()[ 0 ]; + dummy = editor.document.createText( '' ); + dummy.insertBefore( control ); + range.setStartBefore( dummy ); + range.setEndAfter( control ); + sel.selectRanges( [ range ] ); + + // Clear up the fix if the paste wasn't succeeded. + setTimeout( function() { + // Element still online? + if ( control.getParent() ) { + dummy.remove(); + sel.selectElement( control ); + } + }, 0 ); + } + } + + // Allow to peek clipboard content by redirecting the + // pasting content into a temporary bin and grab the content of it. + function getClipboardDataByPastebin( evt, callback ) { + var doc = editor.document, + editable = editor.editable(), + cancel = function( evt ) { + evt.cancel(); + }, + ff3x = CKEDITOR.env.gecko && CKEDITOR.env.version <= 10902, + blurListener; + + // Avoid recursions on 'paste' event or consequent paste too fast. (#5730) + if ( doc.getById( 'cke_pastebin' ) ) + return; + + var sel = editor.getSelection(); + var bms = sel.createBookmarks(); + + // Create container to paste into. + // For rich content we prefer to use "body" since it holds + // the least possibility to be splitted by pasted content, while this may + // breaks the text selection on a frame-less editable, "div" would be + // the best one in that case. + // In another case on old IEs moving the selection into a "body" paste bin causes error panic. + // Body can't be also used for Opera which fills it with
    + // what is indistinguishable from pasted
    (copying
    in Opera isn't possible, + // but it can be copied from other browser). + var pastebin = new CKEDITOR.dom.element( + ( CKEDITOR.env.webkit || editable.is( 'body' ) ) && !( CKEDITOR.env.ie || CKEDITOR.env.opera ) ? 'body' : 'div', doc ); + + pastebin.setAttributes( { + id: 'cke_pastebin', + 'data-cke-temp': '1' + } ); + + // Append bogus to prevent Opera from doing this. (#9522) + if ( CKEDITOR.env.opera ) + pastebin.appendBogus(); + + var containerOffset = 0, + offsetParent, + win = doc.getWindow(); + + // Seems to be the only way to avoid page scroll in Fx 3.x. + if ( ff3x ) { + pastebin.insertAfter( bms[ 0 ].startNode ); + pastebin.setStyle( 'display', 'inline' ); + } else { + if ( CKEDITOR.env.webkit ) { + // It's better to paste close to the real paste destination, so inherited styles + // (which Webkits will try to compensate by styling span) differs less from the destination's one. + editable.append( pastebin ); + // Style pastebin like .cke_editable, to minimize differences between origin and destination. (#9754) + pastebin.addClass( 'cke_editable' ); + + // Compensate position of offsetParent. + if ( !editable.is( 'body' ) ) { + // We're not able to get offsetParent from pastebin (body element), so check whether + // its parent (editable) is positioned. + if ( editable.getComputedStyle( 'position' ) != 'static' ) + offsetParent = editable; + // And if not - safely get offsetParent from editable. + else + offsetParent = CKEDITOR.dom.element.get( editable.$.offsetParent ); + + containerOffset = offsetParent.getDocumentPosition().y; + } + } else { + // Opera and IE doesn't allow to append to html element. + editable.getAscendant( CKEDITOR.env.ie || CKEDITOR.env.opera ? 'body' : 'html', 1 ).append( pastebin ); + } + + pastebin.setStyles( { + position: 'absolute', + // Position the bin at the top (+10 for safety) of viewport to avoid any subsequent document scroll. + top: ( win.getScrollPosition().y - containerOffset + 10 ) + 'px', + width: '1px', + // Caret has to fit in that height, otherwise browsers like Chrome & Opera will scroll window to show it. + // Set height equal to viewport's height - 20px (safety gaps), minimum 1px. + height: Math.max( 1, win.getViewPaneSize().height - 20 ) + 'px', + overflow: 'hidden', + // Reset styles that can mess up pastebin position. + margin: 0, + padding: 0 + } ); + } + + // Check if the paste bin now establishes new editing host. + var isEditingHost = pastebin.getParent().isReadOnly(); + + if ( isEditingHost ) { + // Hide the paste bin. + pastebin.setOpacity( 0 ); + // And make it editable. + pastebin.setAttribute( 'contenteditable', true ); + } + // Transparency is not enough since positioned non-editing host always shows + // resize handler, pull it off the screen instead. + else + pastebin.setStyle( editor.config.contentsLangDirection == 'ltr' ? 'left' : 'right', '-1000px' ); + + editor.on( 'selectionChange', cancel, null, null, 0 ); + + // Webkit fill fire blur on editable when moving selection to + // pastebin (if body is used). Cancel it because it causes incorrect + // selection lock in case of inline editor (#10644). + // The same seems to apply to Firefox (#10787). + if ( CKEDITOR.env.webkit || CKEDITOR.env.gecko ) + blurListener = editable.once( 'blur', cancel, null, null, -100 ); + + // Temporarily move selection to the pastebin. + isEditingHost && pastebin.focus(); + var range = new CKEDITOR.dom.range( pastebin ); + range.selectNodeContents( pastebin ); + var selPastebin = range.select(); + + // If non-native paste is executed, IE will open security alert and blur editable. + // Editable will then lock selection inside itself and after accepting security alert + // this selection will be restored. We overwrite stored selection, so it's restored + // in pastebin. (#9552) + if ( CKEDITOR.env.ie ) { + blurListener = editable.once( 'blur', function( evt ) { + editor.lockSelection( selPastebin ); + } ); + } + + var scrollTop = CKEDITOR.document.getWindow().getScrollPosition().y; + + // Wait a while and grab the pasted contents. + setTimeout( function() { + // Restore main window's scroll position which could have been changed + // by browser in cases described in #9771. + if ( CKEDITOR.env.webkit || CKEDITOR.env.opera ) + CKEDITOR.document[ CKEDITOR.env.webkit ? 'getBody' : 'getDocumentElement' ]().$.scrollTop = scrollTop; + + // Blur will be fired only on non-native paste. In other case manually remove listener. + blurListener && blurListener.removeListener(); + + // Restore properly the document focus. (#8849) + if ( CKEDITOR.env.ie ) + editable.focus(); + + // IE7: selection must go before removing pastebin. (#8691) + sel.selectBookmarks( bms ); + pastebin.remove(); + + // Grab the HTML contents. + // We need to look for a apple style wrapper on webkit it also adds + // a div wrapper if you copy/paste the body of the editor. + // Remove hidden div and restore selection. + var bogusSpan; + if ( CKEDITOR.env.webkit && ( bogusSpan = pastebin.getFirst() ) && ( bogusSpan.is && bogusSpan.hasClass( 'Apple-style-span' ) ) ) + pastebin = bogusSpan; + + editor.removeListener( 'selectionChange', cancel ); + callback( pastebin.getHtml() ); + }, 0 ); + } + + // Try to get content directly from clipboard, without native event + // being fired before. In other words - synthetically get clipboard data + // if it's possible. + // mainPasteEvent will be fired, so if forced native paste: + // * worked, getClipboardDataByPastebin will grab it, + // * didn't work, pastebin will be empty and editor#paste won't be fired. + function getClipboardDataDirectly() { + if ( CKEDITOR.env.ie ) { + // Prevent IE from pasting at the begining of the document. + editor.focus(); + + // Command will be handled by 'beforepaste', but as + // execIECommand( 'paste' ) will fire also 'paste' event + // we're canceling it. + preventPasteEventNow(); + + // #9247: Lock focus to prevent IE from hiding toolbar for inline editor. + var focusManager = editor.focusManager; + focusManager.lock(); + + if ( editor.editable().fire( mainPasteEvent ) && !execIECommand( 'paste' ) ) { + focusManager.unlock(); + return false; + } + focusManager.unlock(); + } else { + try { + if ( editor.editable().fire( mainPasteEvent ) && !editor.document.$.execCommand( 'Paste', false, null ) ) + throw 0; + + } catch ( e ) { + return false; + } + } + + return true; + } + + // Listens for some clipboard related keystrokes, so they get customized. + // Needs to be bind to keydown event. + function onKey( event ) { + if ( editor.mode != 'wysiwyg' ) + return; + + switch ( event.data.keyCode ) { + // Paste + case CKEDITOR.CTRL + 86: // CTRL+V + case CKEDITOR.SHIFT + 45: // SHIFT+INS + var editable = editor.editable(); + + // Cancel 'paste' event because ctrl+v is for IE handled + // by 'beforepaste'. + preventPasteEventNow(); + + // Simulate 'beforepaste' event for all none-IEs. + !CKEDITOR.env.ie && editable.fire( 'beforepaste' ); + + // Simulate 'paste' event for Opera/Firefox2. + if ( CKEDITOR.env.opera || CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) + editable.fire( 'paste' ); + return; + + // Cut + case CKEDITOR.CTRL + 88: // CTRL+X + case CKEDITOR.SHIFT + 46: // SHIFT+DEL + // Save Undo snapshot. + editor.fire( 'saveSnapshot' ); // Save before cut + setTimeout( function() { + editor.fire( 'saveSnapshot' ); // Save after cut + }, 50 ); // OSX is slow (#11416). + } + } + + function pasteDataFromClipboard( evt ) { + // Default type is 'auto', but can be changed by beforePaste listeners. + var eventData = { type: 'auto' }; + // Fire 'beforePaste' event so clipboard flavor get customized by other plugins. + // If 'beforePaste' is canceled continue executing getClipboardDataByPastebin and then do nothing + // (do not fire 'paste', 'afterPaste' events). This way we can grab all - synthetically + // and natively pasted content and prevent its insertion into editor + // after canceling 'beforePaste' event. + var beforePasteNotCanceled = editor.fire( 'beforePaste', eventData ); + + getClipboardDataByPastebin( evt, function( data ) { + // Clean up. + data = data.replace( /]+data-cke-bookmark[^<]*?<\/span>/ig, '' ); + + // Fire remaining events (without beforePaste) + beforePasteNotCanceled && firePasteEvents( eventData.type, data, 0, 1 ); + } ); + } + + function setToolbarStates() { + if ( editor.mode != 'wysiwyg' ) + return; + + var pasteState = stateFromNamedCommand( 'paste' ); + + editor.getCommand( 'cut' ).setState( stateFromNamedCommand( 'cut' ) ); + editor.getCommand( 'copy' ).setState( stateFromNamedCommand( 'copy' ) ); + editor.getCommand( 'paste' ).setState( pasteState ); + editor.fire( 'pasteState', pasteState ); + } + + function stateFromNamedCommand( command ) { + if ( inReadOnly && command in { paste: 1, cut: 1 } ) + return CKEDITOR.TRISTATE_DISABLED; + + if ( command == 'paste' ) + return CKEDITOR.TRISTATE_OFF; + + // Cut, copy - check if the selection is not empty. + var sel = editor.getSelection(), + ranges = sel.getRanges(), + selectionIsEmpty = sel.getType() == CKEDITOR.SELECTION_NONE || ( ranges.length == 1 && ranges[ 0 ].collapsed ); + + return selectionIsEmpty ? CKEDITOR.TRISTATE_DISABLED : CKEDITOR.TRISTATE_OFF; + } + } + + // Returns: + // * 'htmlifiedtext' if content looks like transformed by browser from plain text. + // See clipboard/paste.html TCs for more info. + // * 'html' if it is not 'htmlifiedtext'. + function recogniseContentType( data ) { + if ( CKEDITOR.env.webkit ) { + // Plain text or (

    and text inside
    ). + if ( !data.match( /^[^<]*$/g ) && !data.match( /^(
    <\/div>|
    [^<]*<\/div>)*$/gi ) ) + return 'html'; + } else if ( CKEDITOR.env.ie ) { + // Text and
    or ( text and
    in

    - paragraphs can be separated by new \r\n ). + if ( !data.match( /^([^<]|)*$/gi ) && !data.match( /^(

    ([^<]|)*<\/p>|(\r\n))*$/gi ) ) + return 'html'; + } else if ( CKEDITOR.env.gecko || CKEDITOR.env.opera ) { + // Text or
    . + if ( !data.match( /^([^<]|)*$/gi ) ) + return 'html'; + } else + return 'html'; + + return 'htmlifiedtext'; + } + + // This function transforms what browsers produce when + // pasting plain text into editable element (see clipboard/paste.html TCs + // for more info) into correct HTML (similar to that produced by text2Html). + function htmlifiedTextHtmlification( config, data ) { + function repeatParagraphs( repeats ) { + // Repeat blocks floor((n+1)/2) times. + // Even number of repeats - add
    at the beginning of last

    . + return CKEDITOR.tools.repeat( '

    ', ~~ ( repeats / 2 ) ) + ( repeats % 2 == 1 ? '
    ' : '' ); + } + + // Replace adjacent white-spaces (EOLs too - Fx sometimes keeps them) with one space. + data = data.replace( /\s+/g, ' ' ) + // Remove spaces from between tags. + .replace( /> +<' ) + // Normalize XHTML syntax and upper cased
    tags. + .replace( /
    /gi, '
    ' ); + + // IE - lower cased tags. + data = data.replace( /<\/?[A-Z]+>/g, function( match ) { + return match.toLowerCase(); + } ); + + // Don't touch single lines (no ) - nothing to do here. + if ( data.match( /^[^<]$/ ) ) + return data; + + // Webkit. + if ( CKEDITOR.env.webkit && data.indexOf( '

    ' ) > -1 ) { + // One line break at the beginning - insert
    + data = data.replace( /^(
    (
    |)<\/div>)(?!$|(
    (
    |)<\/div>))/g, '
    ' ) + // Two or more - reduce number of new lines by one. + .replace( /^(
    (
    |)<\/div>){2}(?!$)/g, '
    ' ); + + // Two line breaks create one paragraph in Webkit. + if ( data.match( /
    (
    |)<\/div>/ ) ) { + data = '

    ' + data.replace( /(

    (
    |)<\/div>)+/g, function( match ) { + return repeatParagraphs( match.split( '
    ' ).length + 1 ); + } ) + '

    '; + } + + // One line break create br. + data = data.replace( /<\/div>
    /g, '
    ' ); + + // Remove remaining divs. + data = data.replace( /<\/?div>/g, '' ); + } + + // Opera and Firefox and enterMode != BR. + if ( ( CKEDITOR.env.gecko || CKEDITOR.env.opera ) && config.enterMode != CKEDITOR.ENTER_BR ) { + // Remove bogus
    - Fx generates two for one line break. + // For two line breaks it still produces two , but it's better to ignore this case than the first one. + if ( CKEDITOR.env.gecko ) + data = data.replace( /^

    $/, '
    ' ); + + // This line satisfy edge case when for Opera we have two line breaks + //data = data.replace( /) + + if ( data.indexOf( '

    ' ) > -1 ) { + // Two line breaks create one paragraph, three - 2, four - 3, etc. + data = '

    ' + data.replace( /(
    ){2,}/g, function( match ) { + return repeatParagraphs( match.length / 4 ); + } ) + '

    '; + } + } + + return switchEnterMode( config, data ); + } + + // Filter can be editor dependent. + function getTextificationFilter( editor ) { + var filter = new CKEDITOR.htmlParser.filter(); + + // Elements which creates vertical breaks (have vert margins) - took from HTML5 spec. + // http://dev.w3.org/html5/markup/Overview.html#toc + var replaceWithParaIf = { blockquote: 1, dl: 1, fieldset: 1, h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1, ol: 1, p: 1, table: 1, ul: 1 }, + + // All names except of
    . + stripInlineIf = CKEDITOR.tools.extend( { br: 0 }, CKEDITOR.dtd.$inline ), + + // What's finally allowed (cke:br will be removed later). + allowedIf = { p: 1, br: 1, 'cke:br': 1 }, + + knownIf = CKEDITOR.dtd, + + // All names that will be removed (with content). + removeIf = CKEDITOR.tools.extend( { area: 1, basefont: 1, embed: 1, iframe: 1, map: 1, object: 1, param: 1 }, CKEDITOR.dtd.$nonBodyContent, CKEDITOR.dtd.$cdata ); + + var flattenTableCell = function( element ) { + delete element.name; + element.add( new CKEDITOR.htmlParser.text( ' ' ) ); + }, + // Squash adjacent headers into one.

    A

    B

    ->

    A
    B

    + // Empty ones will be removed later. + squashHeader = function( element ) { + var next = element, + br, el; + + while ( ( next = next.next ) && next.name && next.name.match( /^h\d$/ ) ) { + // TODO shitty code - waitin' for htmlParse.element fix. + br = new CKEDITOR.htmlParser.element( 'cke:br' ); + br.isEmpty = true; + element.add( br ); + while ( ( el = next.children.shift() ) ) + element.add( el ); + } + }; + + filter.addRules( { + elements: { + h1: squashHeader, + h2: squashHeader, + h3: squashHeader, + h4: squashHeader, + h5: squashHeader, + h6: squashHeader, + + img: function( element ) { + var alt = CKEDITOR.tools.trim( element.attributes.alt || '' ), + txt = ' '; + + // Replace image with its alt if it doesn't look like an url or is empty. + if ( alt && !alt.match( /(^http|\.(jpe?g|gif|png))/i ) ) + txt = ' [' + alt + '] '; + + return new CKEDITOR.htmlParser.text( txt ); + }, + + td: flattenTableCell, + th: flattenTableCell, + + $: function( element ) { + var initialName = element.name, + br; + + // Remove entirely. + if ( removeIf[ initialName ] ) + return false; + + // Remove all attributes. + element.attributes = {}; + + // Pass brs. + if ( initialName == 'br' ) + return element; + + // Elements that we want to replace with paragraphs. + if ( replaceWithParaIf[ initialName ] ) + element.name = 'p'; + + // Elements that we want to strip (tags only, without the content). + else if ( stripInlineIf[ initialName ] ) + delete element.name; + + // Surround other known element with and strip tags. + else if ( knownIf[ initialName ] ) { + // TODO shitty code - waitin' for htmlParse.element fix. + br = new CKEDITOR.htmlParser.element( 'cke:br' ); + br.isEmpty = true; + + // Replace hrs (maybe sth else too?) with only one br. + if ( CKEDITOR.dtd.$empty[ initialName ] ) + return br; + + element.add( br, 0 ); + br = br.clone(); + br.isEmpty = true; + element.add( br ); + delete element.name; + } + + // Final cleanup - if we can still find some not allowed elements then strip their names. + if ( !allowedIf[ element.name ] ) + delete element.name; + + return element; + } + } + }, { + // Apply this filter to every element. + applyToAll: true + } ); + + return filter; + } + + function htmlTextification( config, data, filter ) { + var fragment = new CKEDITOR.htmlParser.fragment.fromHtml( data ), + writer = new CKEDITOR.htmlParser.basicWriter(); + + fragment.writeHtml( writer, filter ); + data = writer.getHtml(); + + // Cleanup cke:brs. + data = data.replace( /\s*(<\/?[a-z:]+ ?\/?>)\s*/g, '$1' ) // Remove spaces around tags. + .replace( /(){2,}/g, '' ) // Join multiple adjacent cke:brs + .replace( /()(<\/?p>|
    )/g, '$2' ) // Strip cke:brs adjacent to original brs or ps. + .replace( /(<\/?p>|
    )()/g, '$1' ) + .replace( /<(cke:)?br( \/)?>/g, '
    ' ) // Finally - rename cke:brs to brs and fix
    to
    . + .replace( /

    <\/p>/g, '' ); // Remove empty paragraphs. + + // Fix nested ps. E.g.: + //

    A

    B

    C

    D

    E

    F

    G + //

    A

    B

    C

    D

    E

    F

    G + var nested = 0; + data = data.replace( /<\/?p>/g, function( match ) { + if ( match == '

    ' ) { + if ( ++nested > 1 ) + return '

    '; + } else { + if ( --nested > 0 ) + return '

    '; + } + + return match; + } ).replace( /

    <\/p>/g, '' ); // Step before:

    ->

    . Fix this here. + + return switchEnterMode( config, data ); + } + + function switchEnterMode( config, data ) { + if ( config.enterMode == CKEDITOR.ENTER_BR ) { + data = data.replace( /(<\/p>

    )+/g, function( match ) { + return CKEDITOR.tools.repeat( '
    ', match.length / 7 * 2 ); + } ).replace( /<\/?p>/g, '' ); + } else if ( config.enterMode == CKEDITOR.ENTER_DIV ) + data = data.replace( /<(\/)?p>/g, '<$1div>' ); + + return data; + } +} )(); + +/** + * The default content type is used when pasted data cannot be clearly recognized as HTML or text. + * + * For example: `'foo'` may come from a plain text editor or a website. It isn't possible to recognize content + * type in this case, so default will be used. However, it's clear that `'example text'` is an HTML + * and its origin is webpage, email or other rich text editor. + * + * **Note:** If content type is text, then styles of context of paste are preserved. + * + * CKEDITOR.config.clipboard_defaultContentType = 'text'; + * + * @since 4.0 + * @cfg {'html'/'text'} [clipboard_defaultContentType='html'] + * @member CKEDITOR.config + */ + +/** + * Fired when a clipboard operation is about to be taken into the editor. + * Listeners can manipulate the data to be pasted before having it effectively + * inserted into the document. + * + * @since 3.1 + * @event paste + * @member CKEDITOR.editor + * @param {CKEDITOR.editor} editor This editor instance. + * @param data + * @param {String} data.type Type of data in `data.dataValue`. Usually `html` or `text`, but for listeners + * with priority less than 6 it may be also `auto`, what means that content type hasn't been recognised yet + * (this will be done by content type sniffer that listens with priority 6). + * @param {String} data.dataValue HTML to be pasted. + */ + +/** + * Internal event to open the Paste dialog. + * + * @private + * @event pasteDialog + * @member CKEDITOR.editor + * @param {CKEDITOR.editor} editor This editor instance. + * @param {Function} [data] Callback that will be passed to {@link CKEDITOR.editor#openDialog}. + */ diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/icons/bgcolor.png b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/icons/bgcolor.png new file mode 100644 index 00000000..a313938d Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/icons/bgcolor.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/icons/hidpi/bgcolor.png b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/icons/hidpi/bgcolor.png new file mode 100644 index 00000000..54b3e18c Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/icons/hidpi/bgcolor.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/icons/hidpi/textcolor.png b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/icons/hidpi/textcolor.png new file mode 100644 index 00000000..8fc56bcb Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/icons/hidpi/textcolor.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/icons/textcolor.png b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/icons/textcolor.png new file mode 100644 index 00000000..0d8e4590 Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/icons/textcolor.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/af.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/af.js new file mode 100644 index 00000000..0c66d0a5 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/af.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'af', { + auto: 'Outomaties', + bgColorTitle: 'Agtergrondkleur', + colors: { + '000': 'Swart', + '800000': 'Meroen', + '8B4513': 'Sjokoladebruin', + '2F4F4F': 'Donkerleisteengrys', + '008080': 'Blougroen', + '000080': 'Vlootblou', + '4B0082': 'Indigo', + '696969': 'Donkergrys', + B22222: 'Rooibaksteen', + A52A2A: 'Bruin', + DAA520: 'Donkergeel', + '006400': 'Donkergroen', + '40E0D0': 'Turkoois', + '0000CD': 'Middelblou', + '800080': 'Pers', + '808080': 'Grys', + F00: 'Rooi', + FF8C00: 'Donkeroranje', + FFD700: 'Goud', + '008000': 'Groen', + '0FF': 'Siaan', + '00F': 'Blou', + EE82EE: 'Viooltjieblou', + A9A9A9: 'Donkergrys', + FFA07A: 'Ligsalm', + FFA500: 'Oranje', + FFFF00: 'Geel', + '00FF00': 'Lemmetjie', + AFEEEE: 'Ligturkoois', + ADD8E6: 'Ligblou', + DDA0DD: 'Pruim', + D3D3D3: 'Liggrys', + FFF0F5: 'Linne', + FAEBD7: 'Ivoor', + FFFFE0: 'Liggeel', + F0FFF0: 'Heuningdou', + F0FFFF: 'Asuur', + F0F8FF: 'Ligte hemelsblou', + E6E6FA: 'Laventel', + FFF: 'Wit' + }, + more: 'Meer Kleure...', + panelTitle: 'Kleure', + textColorTitle: 'Tekskleur' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ar.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ar.js new file mode 100644 index 00000000..00737726 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ar.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'ar', { + auto: 'تلقائي', + bgColorTitle: 'لون الخلفية', + colors: { + '000': 'أسود', + '800000': 'كستنائي', + '8B4513': 'بني فاتح', + '2F4F4F': 'رمادي أردوازي غامق', + '008080': 'أزرق مخضر', + '000080': 'أزرق داكن', + '4B0082': 'كحلي', + '696969': 'رمادي داكن', + B22222: 'طوبي', + A52A2A: 'بني', + DAA520: 'ذهبي داكن', + '006400': 'أخضر داكن', + '40E0D0': 'فيروزي', + '0000CD': 'أزرق متوسط', + '800080': 'بنفسجي غامق', + '808080': 'رمادي', + F00: 'أحمر', + FF8C00: 'برتقالي داكن', + FFD700: 'ذهبي', + '008000': 'أخضر', + '0FF': 'تركواز', + '00F': 'أزرق', + EE82EE: 'بنفسجي', + A9A9A9: 'رمادي شاحب', + FFA07A: 'برتقالي وردي', + FFA500: 'برتقالي', + FFFF00: 'أصفر', + '00FF00': 'ليموني', + AFEEEE: 'فيروزي شاحب', + ADD8E6: 'أزرق فاتح', + DDA0DD: 'بنفسجي فاتح', + D3D3D3: 'رمادي فاتح', + FFF0F5: 'وردي فاتح', + FAEBD7: 'أبيض عتيق', + FFFFE0: 'أصفر فاتح', + F0FFF0: 'أبيض مائل للأخضر', + F0FFFF: 'سماوي', + F0F8FF: 'لبني', + E6E6FA: 'أرجواني', + FFF: 'أبيض' + }, + more: 'ألوان إضافية...', + panelTitle: 'Colors', + textColorTitle: 'لون النص' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/bg.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/bg.js new file mode 100644 index 00000000..a26d1c4c --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/bg.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'bg', { + auto: 'Автоматично', + bgColorTitle: 'Фонов цвят', + colors: { + '000': 'Черно', + '800000': 'Кестеняво', + '8B4513': 'Светлокафяво', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Индиго', + '696969': 'Тъмно сиво', + B22222: 'Огнено червено', + A52A2A: 'Кафяво', + DAA520: 'Златисто', + '006400': 'Тъмно зелено', + '40E0D0': 'Тюркуазено', + '0000CD': 'Средно синьо', + '800080': 'Пурпурно', + '808080': 'Сиво', + F00: 'Червено', + FF8C00: 'Тъмно оранжево', + FFD700: 'Златно', + '008000': 'Зелено', + '0FF': 'Светло синьо', + '00F': 'Blue', + EE82EE: 'Violet', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Orange', + FFFF00: 'Yellow', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'White' + }, + more: 'Още цветове', + panelTitle: 'Цветове', + textColorTitle: 'Цвят на шрифт' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/bn.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/bn.js new file mode 100644 index 00000000..30ebb5b9 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/bn.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'bn', { + auto: 'অটোমেটিক', + bgColorTitle: 'বেকগ্রাউন্ড রং', + colors: { + '000': 'Black', + '800000': 'Maroon', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Gray', + B22222: 'Fire Brick', + A52A2A: 'Brown', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Gray', + F00: 'Red', + FF8C00: 'Dark Orange', + FFD700: 'Gold', + '008000': 'Green', + '0FF': 'Cyan', + '00F': 'Blue', + EE82EE: 'Violet', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Orange', + FFFF00: 'Yellow', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'White' + }, + more: 'আরও রং...', + panelTitle: 'Colors', + textColorTitle: 'টেক্স্ট রং' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/bs.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/bs.js new file mode 100644 index 00000000..2211687a --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/bs.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'bs', { + auto: 'Automatska', + bgColorTitle: 'Boja pozadine', + colors: { + '000': 'Black', + '800000': 'Maroon', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Gray', + B22222: 'Fire Brick', + A52A2A: 'Brown', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Gray', + F00: 'Red', + FF8C00: 'Dark Orange', + FFD700: 'Gold', + '008000': 'Green', + '0FF': 'Cyan', + '00F': 'Blue', + EE82EE: 'Violet', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Orange', + FFFF00: 'Yellow', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'White' + }, + more: 'Više boja...', + panelTitle: 'Colors', + textColorTitle: 'Boja teksta' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ca.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ca.js new file mode 100644 index 00000000..df1de45a --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ca.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'ca', { + auto: 'Automàtic', + bgColorTitle: 'Color de Fons', + colors: { + '000': 'Negre', + '800000': 'Grana', + '8B4513': 'Marró sella', + '2F4F4F': 'Gris pissarra fosca', + '008080': 'Blau xarxet', + '000080': 'Blau marí', + '4B0082': 'Indi', + '696969': 'Gris Fosc', + B22222: 'Foc Maó', + A52A2A: 'Marró', + DAA520: 'Solidago', + '006400': 'Verd Fosc', + '40E0D0': 'Turquesa', + '0000CD': 'Blau 1/2', + '800080': 'Lila', + '808080': 'Gris', + F00: 'Vermell', + FF8C00: 'Taronja Fosc', + FFD700: 'Or', + '008000': 'Verd', + '0FF': 'Cian', + '00F': 'Blau', + EE82EE: 'Violat', + A9A9A9: 'Gris clar', + FFA07A: 'Salmó clar', + FFA500: 'Taronja', + FFFF00: 'Groc', + '00FF00': 'Verd Llima', + AFEEEE: 'Turquesa Pàl·lid', + ADD8E6: 'Blau Clar', + DDA0DD: 'Pruna', + D3D3D3: 'Gris Clar', + FFF0F5: 'Lavanda rosat', + FAEBD7: 'Blanc Antic', + FFFFE0: 'Groc Clar', + F0FFF0: 'Verd Pàl·lid', + F0FFFF: 'Atzur', + F0F8FF: 'Cian pàlid', + E6E6FA: 'Lavanda', + FFF: 'Blanc' + }, + more: 'Més Colors...', + panelTitle: 'Colors', + textColorTitle: 'Color del Text' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/cs.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/cs.js new file mode 100644 index 00000000..1ed796de --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/cs.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'cs', { + auto: 'Automaticky', + bgColorTitle: 'Barva pozadí', + colors: { + '000': 'Černá', + '800000': 'Kaštanová', + '8B4513': 'Sedlová hněď', + '2F4F4F': 'Tmavě bledě šedá', + '008080': 'Čírka', + '000080': 'Námořnická modř', + '4B0082': 'Inkoustová', + '696969': 'Tmavě šedá', + B22222: 'Pálená cihla', + A52A2A: 'Hnědá', + DAA520: 'Zlatý prut', + '006400': 'Tmavě zelená', + '40E0D0': 'Tyrkisová', + '0000CD': 'Středně modrá', + '800080': 'Purpurová', + '808080': 'Šedá', + F00: 'Červená', + FF8C00: 'Tmavě oranžová', + FFD700: 'Zlatá', + '008000': 'Zelená', + '0FF': 'Azurová', + '00F': 'Modrá', + EE82EE: 'Fialová', + A9A9A9: 'Kalně šedá', + FFA07A: 'Světle lososová', + FFA500: 'Oranžová', + FFFF00: 'Žlutá', + '00FF00': 'Limetková', + AFEEEE: 'Bledě tyrkisová', + ADD8E6: 'Světle modrá', + DDA0DD: 'Švestková', + D3D3D3: 'Světle šedá', + FFF0F5: 'Levandulově ruměnná', + FAEBD7: 'Antická bílá', + FFFFE0: 'Světle žlutá', + F0FFF0: 'Medová rosa', + F0FFFF: 'Azurová', + F0F8FF: 'Alenčina modrá', + E6E6FA: 'Levandulová', + FFF: 'Bílá' + }, + more: 'Více barev...', + panelTitle: 'Barvy', + textColorTitle: 'Barva textu' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/cy.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/cy.js new file mode 100644 index 00000000..d0e3dc2d --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/cy.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'cy', { + auto: 'Awtomatig', + bgColorTitle: 'Lliw Cefndir', + colors: { + '000': 'Du', + '800000': 'Marwn', + '8B4513': 'Brown Cyfrwy', + '2F4F4F': 'Llechen Tywyll', + '008080': 'Corhwyad', + '000080': 'Nefi', + '4B0082': 'Indigo', + '696969': 'Llwyd Tywyll', + B22222: 'Bric Tân', + A52A2A: 'Brown', + DAA520: 'Rhoden Aur', + '006400': 'Gwyrdd Tywyll', + '40E0D0': 'Gwyrddlas', + '0000CD': 'Glas Canolig', + '800080': 'Porffor', + '808080': 'Llwyd', + F00: 'Coch', + FF8C00: 'Oren Tywyll', + FFD700: 'Aur', + '008000': 'Gwyrdd', + '0FF': 'Cyan', + '00F': 'Glas', + EE82EE: 'Fioled', + A9A9A9: 'Llwyd Pwl', + FFA07A: 'Samwn Golau', + FFA500: 'Oren', + FFFF00: 'Melyn', + '00FF00': 'Leim', + AFEEEE: 'Gwyrddlas Golau', + ADD8E6: 'Glas Golau', + DDA0DD: 'Eirinen', + D3D3D3: 'Llwyd Golau', + FFF0F5: 'Gwrid Lafant', + FAEBD7: 'Gwyn Hynafol', + FFFFE0: 'Melyn Golau', + F0FFF0: 'Melwn Gwyrdd Golau', + F0FFFF: 'Aswr', + F0F8FF: 'Glas Alys', + E6E6FA: 'Lafant', + FFF: 'Gwyn' + }, + more: 'Mwy o Liwiau...', + panelTitle: 'Lliwiau', + textColorTitle: 'Lliw Testun' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/da.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/da.js new file mode 100644 index 00000000..7dafba67 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/da.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'da', { + auto: 'Automatisk', + bgColorTitle: 'Baggrundsfarve', + colors: { + '000': 'Sort', + '800000': 'Mørkerød', + '8B4513': 'Mørk orange', + '2F4F4F': 'Dark Slate Grå', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Mørkegrå', + B22222: 'Scarlet / Rød', + A52A2A: 'Brun', + DAA520: 'Guld', + '006400': 'Mørkegrøn', + '40E0D0': 'Tyrkis', + '0000CD': 'Mellemblå', + '800080': 'Lilla', + '808080': 'Grå', + F00: 'Rød', + FF8C00: 'Mørk orange', + FFD700: 'Guld', + '008000': 'Grøn', + '0FF': 'Cyan', + '00F': 'Blå', + EE82EE: 'Violet', + A9A9A9: 'Matgrå', + FFA07A: 'Laksefarve', + FFA500: 'Orange', + FFFF00: 'Gul', + '00FF00': 'Lime', + AFEEEE: 'Mat tyrkis', + ADD8E6: 'Lyseblå', + DDA0DD: 'Plum', + D3D3D3: 'Lysegrå', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antikhvid', + FFFFE0: 'Lysegul', + F0FFF0: 'Gul / Beige', + F0FFFF: 'Himmeblå', + F0F8FF: 'Alice blue', + E6E6FA: 'Lavendel', + FFF: 'Hvid' + }, + more: 'Flere farver...', + panelTitle: 'Farver', + textColorTitle: 'Tekstfarve' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/de.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/de.js new file mode 100644 index 00000000..1adeed59 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/de.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'de', { + auto: 'Automatisch', + bgColorTitle: 'Hintergrundfarbe', + colors: { + '000': 'Schwarz', + '800000': 'Kastanienbraun', + '8B4513': 'Braun', + '2F4F4F': 'Dunkles Schiefergrau', + '008080': 'Blaugrün', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dunkelgrau', + B22222: 'Ziegelrot', + A52A2A: 'Braun', + DAA520: 'Goldgelb', + '006400': 'Dunkelgrün', + '40E0D0': 'Türkis', + '0000CD': 'Medium Blau', + '800080': 'Lila', + '808080': 'Grau', + F00: 'Rot', + FF8C00: 'Dunkelorange', + FFD700: 'Gold', + '008000': 'Grün', + '0FF': 'Cyan', + '00F': 'Blau', + EE82EE: 'Hellviolett', + A9A9A9: 'Dunkelgrau', + FFA07A: 'Helles Lachsrosa', + FFA500: 'Orange', + FFFF00: 'Gelb', + '00FF00': 'Lime', + AFEEEE: 'Blaß-Türkis', + ADD8E6: 'Hellblau', + DDA0DD: 'Pflaumenblau', + D3D3D3: 'Hellgrau', + FFF0F5: 'Lavendel', + FAEBD7: 'Antik Weiß', + FFFFE0: 'Hellgelb', + F0FFF0: 'Honigtau', + F0FFFF: 'Azurblau', + F0F8FF: 'Alice Blau', + E6E6FA: 'Lavendel', + FFF: 'Weiß' + }, + more: 'Weitere Farben...', + panelTitle: 'Farben', + textColorTitle: 'Textfarbe' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/el.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/el.js new file mode 100644 index 00000000..284b300b --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/el.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'el', { + auto: 'Αυτόματα', + bgColorTitle: 'Χρώμα Φόντου', + colors: { + '000': 'Μαύρο', + '800000': 'Καστανέρυθρο', + '8B4513': 'Saddle Brown', // MISSING + '2F4F4F': 'Dark Slate Gray', // MISSING + '008080': 'Βαθυκύανο', + '000080': 'Μπλε μαρέν', + '4B0082': 'Ινδικό', + '696969': 'Σκούρο Γκρι', + B22222: 'Ανοικτό Κόκκινο', + A52A2A: 'Καφέ', + DAA520: 'Golden Rod', // MISSING + '006400': 'Σκούρο Πράσινο', + '40E0D0': 'Τυρκουάζ', + '0000CD': 'Medium Blue', // MISSING + '800080': 'Μοβ', + '808080': 'Γκρι', + F00: 'Κόκκινο', + FF8C00: 'Σκούρο Πορτοκαλί', + FFD700: 'Χρυσαφί', + '008000': 'Πράσινο', + '0FF': 'Κυανό', + '00F': 'Μπλε', + EE82EE: 'Μενεξεδί', + A9A9A9: 'Ποντικί', + FFA07A: 'Ανοικτό Σομόν', + FFA500: 'Πορτοκαλί', + FFFF00: 'Κίτρινο', + '00FF00': 'Μοσχολέμονο', + AFEEEE: 'Pale Turquoise', // MISSING + ADD8E6: 'Γαλάζιο', + DDA0DD: 'Plum', // MISSING + D3D3D3: 'Ανοικτό Γκρι', + FFF0F5: 'Lavender Blush', // MISSING + FAEBD7: 'Antique White', // MISSING + FFFFE0: 'Ανοικτό Κίτρινο', + F0FFF0: 'Honeydew', // MISSING + F0FFFF: 'Γαλανό', + F0F8FF: 'Alice Blue', // MISSING + E6E6FA: 'Ελαφρός Ιώδες', + FFF: 'Λευκό' + }, + more: 'Περισσότερα Χρώματα...', + panelTitle: 'Χρώματα', + textColorTitle: 'Χρώμα Κειμένου' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/en-au.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/en-au.js new file mode 100644 index 00000000..69f4e88b --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/en-au.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'en-au', { + auto: 'Automatic', + bgColorTitle: 'Background Colour', + colors: { + '000': 'Black', + '800000': 'Maroon', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Gray', + B22222: 'Fire Brick', + A52A2A: 'Brown', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Gray', + F00: 'Red', + FF8C00: 'Dark Orange', + FFD700: 'Gold', + '008000': 'Green', + '0FF': 'Cyan', + '00F': 'Blue', + EE82EE: 'Violet', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Orange', + FFFF00: 'Yellow', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'White' + }, + more: 'More Colours...', + panelTitle: 'Colors', + textColorTitle: 'Text Colour' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/en-ca.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/en-ca.js new file mode 100644 index 00000000..9b5d8089 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/en-ca.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'en-ca', { + auto: 'Automatic', + bgColorTitle: 'Background Colour', + colors: { + '000': 'Black', + '800000': 'Maroon', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Gray', + B22222: 'Fire Brick', + A52A2A: 'Brown', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Gray', + F00: 'Red', + FF8C00: 'Dark Orange', + FFD700: 'Gold', + '008000': 'Green', + '0FF': 'Cyan', + '00F': 'Blue', + EE82EE: 'Violet', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Orange', + FFFF00: 'Yellow', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'White' + }, + more: 'More Colours...', + panelTitle: 'Colors', + textColorTitle: 'Text Colour' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/en-gb.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/en-gb.js new file mode 100644 index 00000000..174922dd --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/en-gb.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'en-gb', { + auto: 'Automatic', + bgColorTitle: 'Background Colour', + colors: { + '000': 'Black', + '800000': 'Maroon', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Grey', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Grey', + B22222: 'Fire Brick', + A52A2A: 'Brown', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Grey', + F00: 'Red', + FF8C00: 'Dark Orange', + FFD700: 'Gold', + '008000': 'Green', + '0FF': 'Cyan', + '00F': 'Blue', + EE82EE: 'Violet', + A9A9A9: 'Dim Grey', + FFA07A: 'Light Salmon', + FFA500: 'Orange', + FFFF00: 'Yellow', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'White' + }, + more: 'More Colours...', + panelTitle: 'Colours', + textColorTitle: 'Text Colour' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/en.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/en.js new file mode 100644 index 00000000..3118ec86 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/en.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'en', { + auto: 'Automatic', + bgColorTitle: 'Background Color', + colors: { + '000': 'Black', + '800000': 'Maroon', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Gray', + B22222: 'Fire Brick', + A52A2A: 'Brown', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Gray', + F00: 'Red', + FF8C00: 'Dark Orange', + FFD700: 'Gold', + '008000': 'Green', + '0FF': 'Cyan', + '00F': 'Blue', + EE82EE: 'Violet', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Orange', + FFFF00: 'Yellow', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'White' + }, + more: 'More Colors...', + panelTitle: 'Colors', + textColorTitle: 'Text Color' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/eo.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/eo.js new file mode 100644 index 00000000..2041ae79 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/eo.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'eo', { + auto: 'Aŭtomata', + bgColorTitle: 'Fona Koloro', + colors: { + '000': 'Nigra', + '800000': 'Kaŝtankolora', + '8B4513': 'Mezbruna', + '2F4F4F': 'Ardezgriza', + '008080': 'Marĉanaskolora', + '000080': 'Maristblua', + '4B0082': 'Indigokolora', + '696969': 'Malhelgriza', + B22222: 'Brikruĝa', + A52A2A: 'Bruna', + DAA520: 'Senbrilorkolora', + '006400': 'Malhelverda', + '40E0D0': 'Turkisblua', + '0000CD': 'Reĝblua', + '800080': 'Purpura', + '808080': 'Griza', + F00: 'Ruĝa', + FF8C00: 'Malheloranĝkolora', + FFD700: 'Orkolora', + '008000': 'Verda', + '0FF': 'Verdblua', + '00F': 'Blua', + EE82EE: 'Viola', + A9A9A9: 'Mezgriza', + FFA07A: 'Salmokolora', + FFA500: 'Oranĝkolora', + FFFF00: 'Flava', + '00FF00': 'Limetkolora', + AFEEEE: 'Helturkiskolora', + ADD8E6: 'Helblua', + DDA0DD: 'Prunkolora', + D3D3D3: 'Helgriza', + FFF0F5: 'Lavendkolora vangoŝminko', + FAEBD7: 'Antikvablanka', + FFFFE0: 'Helflava', + F0FFF0: 'Vintromelonkolora', + F0FFFF: 'Lazura', + F0F8FF: 'Aliceblua', + E6E6FA: 'Lavendkolora', + FFF: 'Blanka' + }, + more: 'Pli da Koloroj...', + panelTitle: 'Koloroj', + textColorTitle: 'Teksta Koloro' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/es.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/es.js new file mode 100644 index 00000000..2437713f --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/es.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'es', { + auto: 'Automático', + bgColorTitle: 'Color de Fondo', + colors: { + '000': 'Negro', + '800000': 'Marrón oscuro', + '8B4513': 'Marrón tierra', + '2F4F4F': 'Pizarra Oscuro', + '008080': 'Azul verdoso', + '000080': 'Azul marino', + '4B0082': 'Añil', + '696969': 'Gris oscuro', + B22222: 'Ladrillo', + A52A2A: 'Marrón', + DAA520: 'Oro oscuro', + '006400': 'Verde oscuro', + '40E0D0': 'Turquesa', + '0000CD': 'Azul medio-oscuro', + '800080': 'Púrpura', + '808080': 'Gris', + F00: 'Rojo', + FF8C00: 'Naranja oscuro', + FFD700: 'Oro', + '008000': 'Verde', + '0FF': 'Cian', + '00F': 'Azul', + EE82EE: 'Violeta', + A9A9A9: 'Gris medio', + FFA07A: 'Salmón claro', + FFA500: 'Naranja', + FFFF00: 'Amarillo', + '00FF00': 'Lima', + AFEEEE: 'Turquesa claro', + ADD8E6: 'Azul claro', + DDA0DD: 'Violeta claro', + D3D3D3: 'Gris claro', + FFF0F5: 'Lavanda rojizo', + FAEBD7: 'Blanco antiguo', + FFFFE0: 'Amarillo claro', + F0FFF0: 'Miel', + F0FFFF: 'Azul celeste', + F0F8FF: 'Azul pálido', + E6E6FA: 'Lavanda', + FFF: 'Blanco' + }, + more: 'Más Colores...', + panelTitle: 'Colores', + textColorTitle: 'Color de Texto' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/et.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/et.js new file mode 100644 index 00000000..a7492f4c --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/et.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'et', { + auto: 'Automaatne', + bgColorTitle: 'Tausta värv', + colors: { + '000': 'Must', + '800000': 'Kastanpruun', + '8B4513': 'Sadulapruun', + '2F4F4F': 'Tume paehall', + '008080': 'Sinakasroheline', + '000080': 'Meresinine', + '4B0082': 'Indigosinine', + '696969': 'Tumehall', + B22222: 'Šamottkivi', + A52A2A: 'Pruun', + DAA520: 'Kuldkollane', + '006400': 'Tumeroheline', + '40E0D0': 'Türkiissinine', + '0000CD': 'Keskmine sinine', + '800080': 'Lilla', + '808080': 'Hall', + F00: 'Punanae', + FF8C00: 'Tumeoranž', + FFD700: 'Kuldne', + '008000': 'Roheline', + '0FF': 'Tsüaniidsinine', + '00F': 'Sinine', + EE82EE: 'Violetne', + A9A9A9: 'Tuhm hall', + FFA07A: 'Hele lõhe', + FFA500: 'Oranž', + FFFF00: 'Kollane', + '00FF00': 'Lubja hall', + AFEEEE: 'Kahvatu türkiis', + ADD8E6: 'Helesinine', + DDA0DD: 'Ploomililla', + D3D3D3: 'Helehall', + FFF0F5: 'Lavendlipunane', + FAEBD7: 'Antiikvalge', + FFFFE0: 'Helekollane', + F0FFF0: 'Meloniroheline', + F0FFFF: 'Taevasinine', + F0F8FF: 'Beebisinine', + E6E6FA: 'Lavendel', + FFF: 'Valge' + }, + more: 'Rohkem värve...', + panelTitle: 'Värvid', + textColorTitle: 'Teksti värv' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/eu.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/eu.js new file mode 100644 index 00000000..afeec68f --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/eu.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'eu', { + auto: 'Automatikoa', + bgColorTitle: 'Atzeko kolorea', + colors: { + '000': 'Black', + '800000': 'Maroon', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Gray', + B22222: 'Fire Brick', + A52A2A: 'Brown', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Gray', + F00: 'Red', + FF8C00: 'Dark Orange', + FFD700: 'Gold', + '008000': 'Green', + '0FF': 'Cyan', + '00F': 'Blue', + EE82EE: 'Violet', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Orange', + FFFF00: 'Yellow', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'White' + }, + more: 'Kolore gehiago...', + panelTitle: 'Colors', + textColorTitle: 'Testu Kolorea' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/fa.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/fa.js new file mode 100644 index 00000000..ed7c7687 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/fa.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'fa', { + auto: 'خودکار', + bgColorTitle: 'رنگ پس​زمینه', + colors: { + '000': 'سیاه', + '800000': 'خرمایی', + '8B4513': 'قهوه​ای شکلاتی', + '2F4F4F': 'ارغوانی مایل به خاکستری', + '008080': 'آبی مایل به خاکستری', + '000080': 'آبی سیر', + '4B0082': 'نیلی', + '696969': 'خاکستری تیره', + B22222: 'آتش آجری', + A52A2A: 'قهوه​ای', + DAA520: 'میله​ی طلایی', + '006400': 'سبز تیره', + '40E0D0': 'فیروزه​ای', + '0000CD': 'آبی روشن', + '800080': 'ارغوانی', + '808080': 'خاکستری', + F00: 'قرمز', + FF8C00: 'نارنجی پررنگ', + FFD700: 'طلایی', + '008000': 'سبز', + '0FF': 'آبی مایل به سبز', + '00F': 'آبی', + EE82EE: 'بنفش', + A9A9A9: 'خاکستری مات', + FFA07A: 'صورتی کدر روشن', + FFA500: 'نارنجی', + FFFF00: 'زرد', + '00FF00': 'فسفری', + AFEEEE: 'فیروزه​ای رنگ پریده', + ADD8E6: 'آبی کمرنگ', + DDA0DD: 'آلویی', + D3D3D3: 'خاکستری روشن', + FFF0F5: 'بنفش کمرنگ', + FAEBD7: 'عتیقه سفید', + FFFFE0: 'زرد روشن', + F0FFF0: 'عسلی', + F0FFFF: 'لاجوردی', + F0F8FF: 'آبی براق', + E6E6FA: 'بنفش کمرنگ', + FFF: 'سفید' + }, + more: 'رنگ​های بیشتر...', + panelTitle: 'رنگها', + textColorTitle: 'رنگ متن' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/fi.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/fi.js new file mode 100644 index 00000000..6fcf72ba --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/fi.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'fi', { + auto: 'Automaattinen', + bgColorTitle: 'Taustaväri', + colors: { + '000': 'Musta', + '800000': 'Kastanjanruskea', + '8B4513': 'Satulanruskea', + '2F4F4F': 'Tumma liuskekivenharmaa', + '008080': 'Sinivihreä', + '000080': 'Laivastonsininen', + '4B0082': 'Indigonsininen', + '696969': 'Tummanharmaa', + B22222: 'Tiili', + A52A2A: 'Ruskea', + DAA520: 'Kultapiisku', + '006400': 'Tummanvihreä', + '40E0D0': 'Turkoosi', + '0000CD': 'Keskisininen', + '800080': 'Purppura', + '808080': 'Harmaa', + F00: 'Punainen', + FF8C00: 'Tumma oranssi', + FFD700: 'Kulta', + '008000': 'Vihreä', + '0FF': 'Syaani', + '00F': 'Sininen', + EE82EE: 'Violetti', + A9A9A9: 'Tummanharmaa', + FFA07A: 'Vaaleanlohenpunainen', + FFA500: 'Oranssi', + FFFF00: 'Keltainen', + '00FF00': 'Limetin vihreä', + AFEEEE: 'Haalea turkoosi', + ADD8E6: 'Vaaleansininen', + DDA0DD: 'Luumu', + D3D3D3: 'Vaaleanharmaa', + FFF0F5: 'Laventelinpunainen', + FAEBD7: 'Antiikinvalkoinen', + FFFFE0: 'Vaaleankeltainen', + F0FFF0: 'Hunajameloni', + F0FFFF: 'Asurinsininen', + F0F8FF: 'Alice Blue -sininen', + E6E6FA: 'Lavanteli', + FFF: 'Valkoinen' + }, + more: 'Lisää värejä...', + panelTitle: 'Värit', + textColorTitle: 'Tekstiväri' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/fo.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/fo.js new file mode 100644 index 00000000..2a344681 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/fo.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'fo', { + auto: 'Automatiskt', + bgColorTitle: 'Bakgrundslitur', + colors: { + '000': 'Svart', + '800000': 'Maroon', + '8B4513': 'Saðilsbrúnt', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Myrkagrátt', + B22222: 'Fire Brick', + A52A2A: 'Brúnt', + DAA520: 'Gullstavur', + '006400': 'Myrkagrønt', + '40E0D0': 'Turquoise', + '0000CD': 'Meðal blátt', + '800080': 'Purple', + '808080': 'Grátt', + F00: 'Reytt', + FF8C00: 'Myrkt appelsingult', + FFD700: 'Gull', + '008000': 'Grønt', + '0FF': 'Cyan', + '00F': 'Blátt', + EE82EE: 'Violet', + A9A9A9: 'Døkt grátt', + FFA07A: 'Ljósur laksur', + FFA500: 'Appelsingult', + FFFF00: 'Gult', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Ljósablátt', + DDA0DD: 'Plum', + D3D3D3: 'Ljósagrátt', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Klassiskt hvítt', + FFFFE0: 'Ljósagult', + F0FFF0: 'Hunangsdøggur', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blátt', + E6E6FA: 'Lavender', + FFF: 'Hvítt' + }, + more: 'Fleiri litir...', + panelTitle: 'Litir', + textColorTitle: 'Tekstlitur' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/fr-ca.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/fr-ca.js new file mode 100644 index 00000000..87ffd44a --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/fr-ca.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'fr-ca', { + auto: 'Automatique', + bgColorTitle: 'Couleur de fond', + colors: { + '000': 'Noir', + '800000': 'Marron', + '8B4513': 'Brun foncé', + '2F4F4F': 'Gris ardoise foncé', + '008080': 'Sarcelle', + '000080': 'Marine', + '4B0082': 'Indigo', + '696969': 'Gris foncé', + B22222: 'Rouge brique', + A52A2A: 'Brun', + DAA520: 'Doré', + '006400': 'Vert foncé', + '40E0D0': 'Turquoise', + '0000CD': 'Bleu', + '800080': 'Mauve', + '808080': 'Gris', + F00: 'Rouge', + FF8C00: 'Orange foncé', + FFD700: 'Or', + '008000': 'Vert', + '0FF': 'Cyan', + '00F': 'Bleu', + EE82EE: 'Violet', + A9A9A9: 'Gris pâle', + FFA07A: 'Saumon clair', + FFA500: 'Orange', + FFFF00: 'Jaune', + '00FF00': 'Vert lime', + AFEEEE: 'Turquoise pâle', + ADD8E6: 'Bleu pâle', + DDA0DD: 'Prune', + D3D3D3: 'Gris pâle', + FFF0F5: 'Bleu lavande', + FAEBD7: 'Blanc antique', + FFFFE0: 'Jaune pâle', + F0FFF0: 'Miel doré', + F0FFFF: 'Azure', + F0F8FF: 'Bleu alice', + E6E6FA: 'Lavande', + FFF: 'Blanc' + }, + more: 'Plus de couleurs...', + panelTitle: 'Couleurs', + textColorTitle: 'Couleur de texte' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/fr.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/fr.js new file mode 100644 index 00000000..0da76ab1 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/fr.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'fr', { + auto: 'Automatique', + bgColorTitle: 'Couleur d\'arrière plan', + colors: { + '000': 'Noir', + '800000': 'Marron', + '8B4513': 'Brun moyen', + '2F4F4F': 'Vert sombre', + '008080': 'Canard', + '000080': 'Bleu marine', + '4B0082': 'Indigo', + '696969': 'Gris foncé', + B22222: 'Rouge brique', + A52A2A: 'Brun', + DAA520: 'Or terni', + '006400': 'Vert foncé', + '40E0D0': 'Turquoise', + '0000CD': 'Bleu royal', + '800080': 'Pourpre', + '808080': 'Gris', + F00: 'Rouge', + FF8C00: 'Orange foncé', + FFD700: 'Or', + '008000': 'Vert', + '0FF': 'Cyan', + '00F': 'Bleu', + EE82EE: 'Violet', + A9A9A9: 'Gris moyen', + FFA07A: 'Saumon', + FFA500: 'Orange', + FFFF00: 'Jaune', + '00FF00': 'Lime', + AFEEEE: 'Turquoise clair', + ADD8E6: 'Bleu clair', + DDA0DD: 'Prune', + D3D3D3: 'Gris clair', + FFF0F5: 'Fard Lavande', + FAEBD7: 'Blanc antique', + FFFFE0: 'Jaune clair', + F0FFF0: 'Honeydew', + F0FFFF: 'Azur', + F0F8FF: 'Bleu Alice', + E6E6FA: 'Lavande', + FFF: 'Blanc' + }, + more: 'Plus de couleurs...', + panelTitle: 'Couleurs', + textColorTitle: 'Couleur de texte' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/gl.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/gl.js new file mode 100644 index 00000000..a0138860 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/gl.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'gl', { + auto: 'Automático', + bgColorTitle: 'Cor do fondo', + colors: { + '000': 'Negro', + '800000': 'Marrón escuro', + '8B4513': 'Ocre', + '2F4F4F': 'Pizarra escuro', + '008080': 'Verde azulado', + '000080': 'Azul mariño', + '4B0082': 'Índigo', + '696969': 'Gris escuro', + B22222: 'Ladrillo', + A52A2A: 'Marrón', + DAA520: 'Dourado escuro', + '006400': 'Verde escuro', + '40E0D0': 'Turquesa', + '0000CD': 'Azul medio', + '800080': 'Púrpura', + '808080': 'Gris', + F00: 'Vermello', + FF8C00: 'Laranxa escuro', + FFD700: 'Dourado', + '008000': 'Verde', + '0FF': 'Cian', + '00F': 'Azul', + EE82EE: 'Violeta', + A9A9A9: 'Gris medio', + FFA07A: 'Salmón claro', + FFA500: 'Laranxa', + FFFF00: 'Amarelo', + '00FF00': 'Lima', + AFEEEE: 'Turquesa pálido', + ADD8E6: 'Azul claro', + DDA0DD: 'Violeta pálido', + D3D3D3: 'Verde claro', + FFF0F5: 'Lavanda vermello', + FAEBD7: 'Branco antigo', + FFFFE0: 'Amarelo claro', + F0FFF0: 'Mel', + F0FFFF: 'Azul celeste', + F0F8FF: 'Azul pálido', + E6E6FA: 'Lavanda', + FFF: 'Branco' + }, + more: 'Máis cores...', + panelTitle: 'Cores', + textColorTitle: 'Cor do texto' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/gu.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/gu.js new file mode 100644 index 00000000..f5b8b3a0 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/gu.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'gu', { + auto: 'સ્વચાલિત', + bgColorTitle: 'બૅકગ્રાઉન્ડ રંગ,', + colors: { + '000': 'કાળો', + '800000': 'મરુન', + '8B4513': 'છીક', + '2F4F4F': 'ડાર્ક સ્લેટ ગ્રે ', + '008080': 'ટીલ', + '000080': 'નેવી', + '4B0082': 'જામલી', + '696969': 'ડાર્ક ગ્રે', + B22222: 'ઈટ', + A52A2A: 'બ્રાઉન', + DAA520: 'ગોલ્ડન રોડ', + '006400': 'ડાર્ક લીલો', + '40E0D0': 'ટ્રકોઈસ', + '0000CD': 'મધ્યમ વાદળી', + '800080': 'પર્પલ', + '808080': 'ગ્રે', + F00: 'લાલ', + FF8C00: 'ડાર્ક ઓરંજ', + FFD700: 'ગોલ્ડ', + '008000': 'ગ્રીન', + '0FF': 'સાયન', + '00F': 'વાદળી', + EE82EE: 'વાયોલેટ', + A9A9A9: 'ડીમ ', + FFA07A: 'લાઈટ સાલમન', + FFA500: 'ઓરંજ', + FFFF00: 'પીળો', + '00FF00': 'લાઈમ', + AFEEEE: 'પેલ કોઈસ', + ADD8E6: 'લાઈટ બ્લુ', + DDA0DD: 'પલ્મ', + D3D3D3: 'લાઈટ ગ્રે', + FFF0F5: 'લવંડર ', + FAEBD7: 'એન્ટીક સફેદ', + FFFFE0: 'લાઈટ પીળો', + F0FFF0: 'હનીડઉય', + F0FFFF: 'અઝુરે', + F0F8FF: 'એલીસ બ્લુ', + E6E6FA: 'લવંડર', + FFF: 'સફેદ' + }, + more: 'ઔર રંગ...', + panelTitle: 'રંગ', + textColorTitle: 'શબ્દનો રંગ' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/he.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/he.js new file mode 100644 index 00000000..d2d39c7c --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/he.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'he', { + auto: 'אוטומטי', + bgColorTitle: 'צבע רקע', + colors: { + '000': 'שחור', + '800000': 'סגול כהה', + '8B4513': 'חום בהיר', + '2F4F4F': 'אפור צפחה', + '008080': 'כחול-ירוק', + '000080': 'כחול-סגול', + '4B0082': 'אינדיגו', + '696969': 'אפור מעומעם', + B22222: 'אדום-חום', + A52A2A: 'חום', + DAA520: 'כתום זהב', + '006400': 'ירוק כהה', + '40E0D0': 'טורקיז', + '0000CD': 'כחול בינוני', + '800080': 'סגול', + '808080': 'אפור', + F00: 'אדום', + FF8C00: 'כתום כהה', + FFD700: 'זהב', + '008000': 'ירוק', + '0FF': 'ציאן', + '00F': 'כחול', + EE82EE: 'סגלגל', + A9A9A9: 'אפור כהה', + FFA07A: 'כתום-וורוד', + FFA500: 'כתום', + FFFF00: 'צהוב', + '00FF00': 'ליים', + AFEEEE: 'טורקיז בהיר', + ADD8E6: 'כחול בהיר', + DDA0DD: 'שזיף', + D3D3D3: 'אפור בהיר', + FFF0F5: 'לבנדר מסמיק', + FAEBD7: 'לבן עתיק', + FFFFE0: 'צהוב בהיר', + F0FFF0: 'טל דבש', + F0FFFF: 'תכלת', + F0F8FF: 'כחול טיפת מים', + E6E6FA: 'לבנדר', + FFF: 'לבן' + }, + more: 'צבעים נוספים...', + panelTitle: 'צבעים', + textColorTitle: 'צבע טקסט' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/hi.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/hi.js new file mode 100644 index 00000000..b470e23f --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/hi.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'hi', { + auto: 'स्वचालित', + bgColorTitle: 'बैक्ग्राउन्ड रंग', + colors: { + '000': 'Black', + '800000': 'Maroon', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Gray', + B22222: 'Fire Brick', + A52A2A: 'Brown', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Gray', + F00: 'Red', + FF8C00: 'Dark Orange', + FFD700: 'Gold', + '008000': 'Green', + '0FF': 'Cyan', + '00F': 'Blue', + EE82EE: 'Violet', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Orange', + FFFF00: 'Yellow', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'White' + }, + more: 'और रंग...', + panelTitle: 'Colors', + textColorTitle: 'टेक्स्ट रंग' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/hr.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/hr.js new file mode 100644 index 00000000..41e430ef --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/hr.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'hr', { + auto: 'Automatski', + bgColorTitle: 'Boja pozadine', + colors: { + '000': 'Crna', + '800000': 'Kesten', + '8B4513': 'Smeđa', + '2F4F4F': 'Tamno siva', + '008080': 'Teal', + '000080': 'Mornarska', + '4B0082': 'Indigo', + '696969': 'Tamno siva', + B22222: 'Vatrena cigla', + A52A2A: 'Smeđa', + DAA520: 'Zlatna', + '006400': 'Tamno zelena', + '40E0D0': 'Tirkizna', + '0000CD': 'Srednje plava', + '800080': 'Ljubičasta', + '808080': 'Siva', + F00: 'Crvena', + FF8C00: 'Tamno naranđasta', + FFD700: 'Zlatna', + '008000': 'Zelena', + '0FF': 'Cijan', + '00F': 'Plava', + EE82EE: 'Ljubičasta', + A9A9A9: 'Mutno siva', + FFA07A: 'Svijetli losos', + FFA500: 'Naranđasto', + FFFF00: 'Žuto', + '00FF00': 'Limun', + AFEEEE: 'Blijedo tirkizna', + ADD8E6: 'Svijetlo plava', + DDA0DD: 'Šljiva', + D3D3D3: 'Svijetlo siva', + FFF0F5: 'Lavanda rumeno', + FAEBD7: 'Antikno bijela', + FFFFE0: 'Svijetlo žuta', + F0FFF0: 'Med', + F0FFFF: 'Azurna', + F0F8FF: 'Alice plava', + E6E6FA: 'Lavanda', + FFF: 'Bijela' + }, + more: 'Više boja...', + panelTitle: 'Boje', + textColorTitle: 'Boja teksta' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/hu.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/hu.js new file mode 100644 index 00000000..c02f196b --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/hu.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'hu', { + auto: 'Automatikus', + bgColorTitle: 'Háttérszín', + colors: { + '000': 'Fekete', + '800000': 'Bordó', + '8B4513': 'Barna', + '2F4F4F': 'Sötét türkiz', + '008080': 'Türkiz', + '000080': 'Király kék', + '4B0082': 'Indigó kék', + '696969': 'Szürke', + B22222: 'Tégla vörös', + A52A2A: 'Vörös', + DAA520: 'Arany sárga', + '006400': 'Sötét zöld', + '40E0D0': 'Türkiz', + '0000CD': 'Kék', + '800080': 'Lila', + '808080': 'Szürke', + F00: 'Piros', + FF8C00: 'Sötét narancs', + FFD700: 'Arany', + '008000': 'Zöld', + '0FF': 'Türkiz', + '00F': 'Kék', + EE82EE: 'Rózsaszín', + A9A9A9: 'Sötét szürke', + FFA07A: 'Lazac', + FFA500: 'Narancs', + FFFF00: 'Citromsárga', + '00FF00': 'Neon zöld', + AFEEEE: 'Világos türkiz', + ADD8E6: 'Világos kék', + DDA0DD: 'Világos lila', + D3D3D3: 'Világos szürke', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Törtfehér', + FFFFE0: 'Világos sárga', + F0FFF0: 'Menta', + F0FFFF: 'Azúr kék', + F0F8FF: 'Halvány kék', + E6E6FA: 'Lavender', + FFF: 'Fehér' + }, + more: 'További színek...', + panelTitle: 'Színek', + textColorTitle: 'Betűszín' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/id.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/id.js new file mode 100644 index 00000000..f017a40a --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/id.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'id', { + auto: 'Automatic', // MISSING + bgColorTitle: 'Warna Latar Belakang', + colors: { + '000': 'Black', // MISSING + '800000': 'Maroon', // MISSING + '8B4513': 'Saddle Brown', // MISSING + '2F4F4F': 'Dark Slate Gray', // MISSING + '008080': 'Teal', // MISSING + '000080': 'Navy', // MISSING + '4B0082': 'Indigo', // MISSING + '696969': 'Dark Gray', // MISSING + B22222: 'Fire Brick', // MISSING + A52A2A: 'Brown', // MISSING + DAA520: 'Golden Rod', // MISSING + '006400': 'Dark Green', // MISSING + '40E0D0': 'Turquoise', // MISSING + '0000CD': 'Medium Blue', // MISSING + '800080': 'Purple', // MISSING + '808080': 'Gray', // MISSING + F00: 'Red', // MISSING + FF8C00: 'Dark Orange', // MISSING + FFD700: 'Gold', // MISSING + '008000': 'Green', // MISSING + '0FF': 'Cyan', // MISSING + '00F': 'Blue', // MISSING + EE82EE: 'Violet', // MISSING + A9A9A9: 'Dim Gray', // MISSING + FFA07A: 'Light Salmon', // MISSING + FFA500: 'Orange', // MISSING + FFFF00: 'Yellow', // MISSING + '00FF00': 'Lime', // MISSING + AFEEEE: 'Pale Turquoise', // MISSING + ADD8E6: 'Light Blue', // MISSING + DDA0DD: 'Plum', // MISSING + D3D3D3: 'Light Grey', // MISSING + FFF0F5: 'Lavender Blush', // MISSING + FAEBD7: 'Antique White', // MISSING + FFFFE0: 'Light Yellow', // MISSING + F0FFF0: 'Honeydew', // MISSING + F0FFFF: 'Azure', // MISSING + F0F8FF: 'Alice Blue', // MISSING + E6E6FA: 'Lavender', // MISSING + FFF: 'White' // MISSING + }, + more: 'More Colors...', // MISSING + panelTitle: 'Warna', + textColorTitle: 'Text Color' // MISSING +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/is.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/is.js new file mode 100644 index 00000000..9c5ad7f3 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/is.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'is', { + auto: 'Sjálfval', + bgColorTitle: 'Bakgrunnslitur', + colors: { + '000': 'Black', + '800000': 'Maroon', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Gray', + B22222: 'Fire Brick', + A52A2A: 'Brown', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Gray', + F00: 'Red', + FF8C00: 'Dark Orange', + FFD700: 'Gold', + '008000': 'Green', + '0FF': 'Cyan', + '00F': 'Blue', + EE82EE: 'Violet', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Orange', + FFFF00: 'Yellow', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'White' + }, + more: 'Fleiri liti...', + panelTitle: 'Colors', + textColorTitle: 'Litur texta' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/it.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/it.js new file mode 100644 index 00000000..43753e78 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/it.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'it', { + auto: 'Automatico', + bgColorTitle: 'Colore sfondo', + colors: { + '000': 'Nero', + '800000': 'Marrone Castagna', + '8B4513': 'Marrone Cuoio', + '2F4F4F': 'Grigio Fumo di Londra', + '008080': 'Acquamarina', + '000080': 'Blu Oceano', + '4B0082': 'Indigo', + '696969': 'Grigio Scuro', + B22222: 'Giallo Fiamma', + A52A2A: 'Marrone', + DAA520: 'Giallo Mimosa', + '006400': 'Verde Scuro', + '40E0D0': 'Turchese', + '0000CD': 'Blue Scuro', + '800080': 'Viola', + '808080': 'Grigio', + F00: 'Rosso', + FF8C00: 'Arancio Scuro', + FFD700: 'Oro', + '008000': 'Verde', + '0FF': 'Ciano', + '00F': 'Blu', + EE82EE: 'Violetto', + A9A9A9: 'Grigio Scuro', + FFA07A: 'Salmone', + FFA500: 'Arancio', + FFFF00: 'Giallo', + '00FF00': 'Lime', + AFEEEE: 'Turchese Chiaro', + ADD8E6: 'Blu Chiaro', + DDA0DD: 'Rosso Ciliegia', + D3D3D3: 'Grigio Chiaro', + FFF0F5: 'Lavanda Chiara', + FAEBD7: 'Bianco Antico', + FFFFE0: 'Giallo Chiaro', + F0FFF0: 'Verde Mela', + F0FFFF: 'Azzurro', + F0F8FF: 'Celeste', + E6E6FA: 'Lavanda', + FFF: 'Bianco' + }, + more: 'Altri colori...', + panelTitle: 'Colori', + textColorTitle: 'Colore testo' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ja.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ja.js new file mode 100644 index 00000000..b0a0b032 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ja.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'ja', { + auto: '自動', + bgColorTitle: '背景色', + colors: { + '000': 'Black', + '800000': 'Maroon', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Gray', + B22222: 'Fire Brick', + A52A2A: 'Brown', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Gray', + F00: 'Red', + FF8C00: 'Dark Orange', + FFD700: 'Gold', + '008000': 'Green', + '0FF': 'Cyan', + '00F': 'Blue', + EE82EE: 'Violet', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Orange', + FFFF00: 'Yellow', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'White' + }, + more: 'その他の色...', + panelTitle: '色', + textColorTitle: '文字色' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ka.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ka.js new file mode 100644 index 00000000..6761c2f9 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ka.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'ka', { + auto: 'ავტომატური', + bgColorTitle: 'ფონის ფერი', + colors: { + '000': 'შავი', + '800000': 'მუქი შინდისფერი', + '8B4513': 'ყავისფერი', + '2F4F4F': 'მოლურჯო ნაცრისფერი', + '008080': 'ჩამქრალი ლურჯი', + '000080': 'მუქი ლურჯი', + '4B0082': 'იასამნისფერი', + '696969': 'მუქი ნაცრისფერი', + B22222: 'აგურისფერი', + A52A2A: 'მუქი ყავისფერი', + DAA520: 'მოყვითალო', + '006400': 'მუქი მწვანე', + '40E0D0': 'ცისფერი', + '0000CD': 'ზომიერად ლურჯი', + '800080': 'იისფერი', + '808080': 'ნაცრისფერი', + F00: 'წითელი', + FF8C00: 'მუქი სტაფილოსფერი', + FFD700: 'ოქროსფერი', + '008000': 'მწვანე', + '0FF': 'ღია ცისფერი', + '00F': 'ლურჯი', + EE82EE: 'იისფერი', + A9A9A9: 'ბაცი ნაცრისფერი', + FFA07A: 'ჩამქრალი ვარდისფერი', + FFA500: 'სტაფილოსფერი', + FFFF00: 'ყვითელი', + '00FF00': 'ლურჯი', + AFEEEE: 'ცისფერი', + ADD8E6: 'ღია ლურჯი', + DDA0DD: 'ღია იისფერი', + D3D3D3: 'ღია ნაცრისფერი', + FFF0F5: 'ღია ვარდისფერი', + FAEBD7: 'ღია ყავისფერი', + FFFFE0: 'ნათელი ყვითელი', + F0FFF0: 'ღია მწვანე', + F0FFFF: 'ღია ცისფერი 2', + F0F8FF: 'ღია ცისფერი 3', + E6E6FA: 'ღია იისფერი 2', + FFF: 'თეთრი' + }, + more: 'მეტი ფერი...', + panelTitle: 'ფერები', + textColorTitle: 'ტექსტის ფერი' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/km.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/km.js new file mode 100644 index 00000000..084a68dc --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/km.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'km', { + auto: 'ស្វ័យប្រវត្តិ', + bgColorTitle: 'ពណ៌ផ្ទៃខាងក្រោយ', + colors: { + '000': 'ខ្មៅ', + '800000': 'ត្នោត​ចាស់', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'ខៀវ​ចាស់', + '4B0082': 'ធ្លះ', + '696969': 'ប្រផេះ​ក្រាស់', + B22222: 'Fire Brick', + A52A2A: 'ត្នោត', + DAA520: 'Golden Rod', + '006400': 'បៃតង​ចាស់', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'ប្រផេះ', + F00: 'ក្រហម', + FF8C00: 'ទឹក​ក្រូច​ចាស់', + FFD700: 'មាស', + '008000': 'បៃតង', + '0FF': 'Cyan', + '00F': 'ខៀវ', + EE82EE: 'ស្វាយ', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'ទឹក​ក្រូច', + FFFF00: 'លឿង', + '00FF00': 'ក្រូច​ឆ្មារ', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'លឿង​ស្ដើង', + F0FFF0: 'Honeydew', + F0FFFF: 'ផ្ទៃមេឃ', + F0F8FF: 'Alice Blue', + E6E6FA: 'ឡាវិនដឺ', + FFF: 'ស' + }, + more: 'ពណ៌​ផ្សេង​ទៀត..', + panelTitle: 'ពណ៌', + textColorTitle: 'ពណ៌អក្សរ' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ko.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ko.js new file mode 100644 index 00000000..4f75867f --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ko.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'ko', { + auto: '기본색상', + bgColorTitle: '배경 색상', + colors: { + '000': 'Black', + '800000': 'Maroon', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Gray', + B22222: 'Fire Brick', + A52A2A: 'Brown', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Gray', + F00: 'Red', + FF8C00: 'Dark Orange', + FFD700: 'Gold', + '008000': 'Green', + '0FF': 'Cyan', + '00F': 'Blue', + EE82EE: 'Violet', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Orange', + FFFF00: 'Yellow', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'White' + }, + more: '색상선택...', + panelTitle: 'Colors', + textColorTitle: '글자 색상' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ku.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ku.js new file mode 100644 index 00000000..86b42ed6 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ku.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'ku', { + auto: 'خۆکار', + bgColorTitle: 'ڕەنگی پاشبنەما', + colors: { + '000': 'ڕەش', + '800000': 'سۆرو ماڕوونی', + '8B4513': 'ماڕوونی', + '2F4F4F': 'سەوزی تاریك', + '008080': 'سەوز و شین', + '000080': 'شینی تۆخ', + '4B0082': 'مۆری تۆخ', + '696969': 'ڕەساسی تۆخ', + B22222: 'سۆری تۆخ', + A52A2A: 'قاوەیی', + DAA520: 'قاوەیی بریسکەدار', + '006400': 'سەوزی تۆخ', + '40E0D0': 'شینی ناتۆخی بریسکەدار', + '0000CD': 'شینی مامناوەند', + '800080': 'پەمبەیی', + '808080': 'ڕەساسی', + F00: 'سۆر', + FF8C00: 'نارەنجی تۆخ', + FFD700: 'زەرد', + '008000': 'سەوز', + '0FF': 'شینی ئاسمانی', + '00F': 'شین', + EE82EE: 'پەمەیی', + A9A9A9: 'ڕەساسی ناتۆخ', + FFA07A: 'نارەنجی ناتۆخ', + FFA500: 'نارەنجی', + FFFF00: 'زەرد', + '00FF00': 'سەوز', + AFEEEE: 'شینی ناتۆخ', + ADD8E6: 'شینی زۆر ناتۆخ', + DDA0DD: 'پەمەیی ناتۆخ', + D3D3D3: 'ڕەساسی بریسکەدار', + FFF0F5: 'جەرگی زۆر ناتۆخ', + FAEBD7: 'جەرگی ناتۆخ', + FFFFE0: 'سپی ناتۆخ', + F0FFF0: 'هەنگوینی ناتۆخ', + F0FFFF: 'شینێکی زۆر ناتۆخ', + F0F8FF: 'شینێکی ئاسمانی زۆر ناتۆخ', + E6E6FA: 'شیری', + FFF: 'سپی' + }, + more: 'ڕەنگی زیاتر...', + panelTitle: 'ڕەنگەکان', + textColorTitle: 'ڕەنگی دەق' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/lt.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/lt.js new file mode 100644 index 00000000..72fa2ff7 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/lt.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'lt', { + auto: 'Automatinis', + bgColorTitle: 'Fono spalva', + colors: { + '000': 'Juoda', + '800000': 'Kaštoninė', + '8B4513': 'Tamsiai ruda', + '2F4F4F': 'Pilka tamsaus šiferio', + '008080': 'Teal', + '000080': 'Karinis', + '4B0082': 'Indigo', + '696969': 'Tamsiai pilka', + B22222: 'Ugnies', + A52A2A: 'Ruda', + DAA520: 'Aukso', + '006400': 'Tamsiai žalia', + '40E0D0': 'Turquoise', + '0000CD': 'Vidutinė mėlyna', + '800080': 'Violetinė', + '808080': 'Pilka', + F00: 'Raudona', + FF8C00: 'Tamsiai oranžinė', + FFD700: 'Auksinė', + '008000': 'Žalia', + '0FF': 'Žydra', + '00F': 'Mėlyna', + EE82EE: 'Violetinė', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Oranžinė', + FFFF00: 'Geltona', + '00FF00': 'Citrinų', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Šviesiai mėlyna', + DDA0DD: 'Plum', + D3D3D3: 'Šviesiai pilka', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Šviesiai geltona', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'Balta' + }, + more: 'Daugiau spalvų...', + panelTitle: 'Spalva', + textColorTitle: 'Teksto spalva' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/lv.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/lv.js new file mode 100644 index 00000000..e2e1304e --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/lv.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'lv', { + auto: 'Automātiska', + bgColorTitle: 'Fona krāsa', + colors: { + '000': 'Melns', + '800000': 'Sarkanbrūns', + '8B4513': 'Sedlu brūns', + '2F4F4F': 'Tumšas tāfeles pelēks', + '008080': 'Zili-zaļš', + '000080': 'Jūras', + '4B0082': 'Indigo', + '696969': 'Tumši pelēks', + B22222: 'Ķieģeļsarkans', + A52A2A: 'Brūns', + DAA520: 'Zelta', + '006400': 'Tumši zaļš', + '40E0D0': 'Tirkīzs', + '0000CD': 'Vidēji zils', + '800080': 'Purpurs', + '808080': 'Pelēks', + F00: 'Sarkans', + FF8C00: 'Tumši oranžs', + FFD700: 'Zelta', + '008000': 'Zaļš', + '0FF': 'Tumšzils', + '00F': 'Zils', + EE82EE: 'Violets', + A9A9A9: 'Pelēks', + FFA07A: 'Gaiši laškrāsas', + FFA500: 'Oranžs', + FFFF00: 'Dzeltens', + '00FF00': 'Laima', + AFEEEE: 'Gaiši tirkīza', + ADD8E6: 'Gaiši zils', + DDA0DD: 'Plūmju', + D3D3D3: 'Gaiši pelēks', + FFF0F5: 'Lavandas sārts', + FAEBD7: 'Antīki balts', + FFFFE0: 'Gaiši dzeltens', + F0FFF0: 'Meduspile', + F0FFFF: 'Debesszils', + F0F8FF: 'Alises zils', + E6E6FA: 'Lavanda', + FFF: 'Balts' + }, + more: 'Plašāka palete...', + panelTitle: 'Krāsa', + textColorTitle: 'Teksta krāsa' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/mk.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/mk.js new file mode 100644 index 00000000..82415c88 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/mk.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'mk', { + auto: 'Automatic', // MISSING + bgColorTitle: 'Background Color', + colors: { + '000': 'Black', + '800000': 'Maroon', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Gray', + B22222: 'Fire Brick', + A52A2A: 'Brown', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Gray', + F00: 'Red', + FF8C00: 'Dark Orange', + FFD700: 'Gold', + '008000': 'Green', + '0FF': 'Cyan', + '00F': 'Blue', + EE82EE: 'Violet', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Orange', + FFFF00: 'Yellow', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'White' + }, + more: 'More Colors...', // MISSING + panelTitle: 'Colors', + textColorTitle: 'Text Color' // MISSING +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/mn.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/mn.js new file mode 100644 index 00000000..0d0aa81c --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/mn.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'mn', { + auto: 'Автоматаар', + bgColorTitle: 'Дэвсгэр өнгө', + colors: { + '000': 'Хар', + '800000': 'Хүрэн', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Gray', + B22222: 'Fire Brick', + A52A2A: 'Brown', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Саарал', + F00: 'Улаан', + FF8C00: 'Dark Orange', + FFD700: 'Алт', + '008000': 'Ногоон', + '0FF': 'Цэнхэр', + '00F': 'Хөх', + EE82EE: 'Ягаан', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Улбар шар', + FFFF00: 'Шар', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Цайвар саарал', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'Цагаан' + }, + more: 'Нэмэлт өнгөнүүд...', + panelTitle: 'Өнгөнүүд', + textColorTitle: 'Бичвэрийн өнгө' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ms.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ms.js new file mode 100644 index 00000000..85cae5a5 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ms.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'ms', { + auto: 'Otomatik', + bgColorTitle: 'Warna Latarbelakang', + colors: { + '000': 'Black', + '800000': 'Maroon', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Gray', + B22222: 'Fire Brick', + A52A2A: 'Brown', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Gray', + F00: 'Red', + FF8C00: 'Dark Orange', + FFD700: 'Gold', + '008000': 'Green', + '0FF': 'Cyan', + '00F': 'Blue', + EE82EE: 'Violet', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Orange', + FFFF00: 'Yellow', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'White' + }, + more: 'Warna lain-lain...', + panelTitle: 'Colors', + textColorTitle: 'Warna Text' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/nb.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/nb.js new file mode 100644 index 00000000..c7ea2929 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/nb.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'nb', { + auto: 'Automatisk', + bgColorTitle: 'Bakgrunnsfarge', + colors: { + '000': 'Svart', + '800000': 'Rødbrun', + '8B4513': 'Salbrun', + '2F4F4F': 'Grønnsvart', + '008080': 'Blågrønn', + '000080': 'Marineblått', + '4B0082': 'Indigo', + '696969': 'Mørk grå', + B22222: 'Mørkerød', + A52A2A: 'Brun', + DAA520: 'Lys brun', + '006400': 'Mørk grønn', + '40E0D0': 'Turkis', + '0000CD': 'Medium blå', + '800080': 'Purpur', + '808080': 'Grå', + F00: 'Rød', + FF8C00: 'Mørk oransje', + FFD700: 'Gull', + '008000': 'Grønn', + '0FF': 'Cyan', + '00F': 'Blå', + EE82EE: 'Fiolett', + A9A9A9: 'Svak grå', + FFA07A: 'Rosa-oransje', + FFA500: 'Oransje', + FFFF00: 'Gul', + '00FF00': 'Lime', + AFEEEE: 'Svak turkis', + ADD8E6: 'Lys Blå', + DDA0DD: 'Plomme', + D3D3D3: 'Lys grå', + FFF0F5: 'Svak lavendelrosa', + FAEBD7: 'Antikk-hvit', + FFFFE0: 'Lys gul', + F0FFF0: 'Honningmelon', + F0FFFF: 'Svakt asurblått', + F0F8FF: 'Svak cyan', + E6E6FA: 'Lavendel', + FFF: 'Hvit' + }, + more: 'Flere farger...', + panelTitle: 'Farger', + textColorTitle: 'Tekstfarge' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/nl.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/nl.js new file mode 100644 index 00000000..0ef9a1cc --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/nl.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'nl', { + auto: 'Automatisch', + bgColorTitle: 'Achtergrondkleur', + colors: { + '000': 'Zwart', + '800000': 'Kastanjebruin', + '8B4513': 'Chocoladebruin', + '2F4F4F': 'Donkerleigrijs', + '008080': 'Blauwgroen', + '000080': 'Marine', + '4B0082': 'Indigo', + '696969': 'Donkergrijs', + B22222: 'Baksteen', + A52A2A: 'Bruin', + DAA520: 'Donkergeel', + '006400': 'Donkergroen', + '40E0D0': 'Turquoise', + '0000CD': 'Middenblauw', + '800080': 'Paars', + '808080': 'Grijs', + F00: 'Rood', + FF8C00: 'Donkeroranje', + FFD700: 'Goud', + '008000': 'Groen', + '0FF': 'Cyaan', + '00F': 'Blauw', + EE82EE: 'Violet', + A9A9A9: 'Donkergrijs', + FFA07A: 'Lichtzalm', + FFA500: 'Oranje', + FFFF00: 'Geel', + '00FF00': 'Felgroen', + AFEEEE: 'Lichtturquoise', + ADD8E6: 'Lichtblauw', + DDA0DD: 'Pruim', + D3D3D3: 'Lichtgrijs', + FFF0F5: 'Linnen', + FAEBD7: 'Ivoor', + FFFFE0: 'Lichtgeel', + F0FFF0: 'Honingdauw', + F0FFFF: 'Azuur', + F0F8FF: 'Licht hemelsblauw', + E6E6FA: 'Lavendel', + FFF: 'Wit' + }, + more: 'Meer kleuren...', + panelTitle: 'Kleuren', + textColorTitle: 'Tekstkleur' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/no.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/no.js new file mode 100644 index 00000000..1778df46 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/no.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'no', { + auto: 'Automatisk', + bgColorTitle: 'Bakgrunnsfarge', + colors: { + '000': 'Svart', + '800000': 'Rødbrun', + '8B4513': 'Salbrun', + '2F4F4F': 'Grønnsvart', + '008080': 'Blågrønn', + '000080': 'Marineblått', + '4B0082': 'Indigo', + '696969': 'Mørk grå', + B22222: 'Mørkerød', + A52A2A: 'Brun', + DAA520: 'Lys brun', + '006400': 'Mørk grønn', + '40E0D0': 'Turkis', + '0000CD': 'Medium blå', + '800080': 'Purpur', + '808080': 'Grå', + F00: 'Rød', + FF8C00: 'Mørk oransje', + FFD700: 'Gull', + '008000': 'Grønn', + '0FF': 'Cyan', + '00F': 'Blå', + EE82EE: 'Fiolett', + A9A9A9: 'Svak grå', + FFA07A: 'Rosa-oransje', + FFA500: 'Oransje', + FFFF00: 'Gul', + '00FF00': 'Lime', + AFEEEE: 'Svak turkis', + ADD8E6: 'Lys Blå', + DDA0DD: 'Plomme', + D3D3D3: 'Lys grå', + FFF0F5: 'Svak lavendelrosa', + FAEBD7: 'Antikk-hvit', + FFFFE0: 'Lys gul', + F0FFF0: 'Honningmelon', + F0FFFF: 'Svakt asurblått', + F0F8FF: 'Svak cyan', + E6E6FA: 'Lavendel', + FFF: 'Hvit' + }, + more: 'Flere farger...', + panelTitle: 'Farger', + textColorTitle: 'Tekstfarge' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/pl.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/pl.js new file mode 100644 index 00000000..61123a84 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/pl.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'pl', { + auto: 'Automatycznie', + bgColorTitle: 'Kolor tła', + colors: { + '000': 'Czarny', + '800000': 'Kasztanowy', + '8B4513': 'Czekoladowy', + '2F4F4F': 'Ciemnografitowy', + '008080': 'Morski', + '000080': 'Granatowy', + '4B0082': 'Indygo', + '696969': 'Ciemnoszary', + B22222: 'Czerwień żelazowa', + A52A2A: 'Brązowy', + DAA520: 'Ciemnozłoty', + '006400': 'Ciemnozielony', + '40E0D0': 'Turkusowy', + '0000CD': 'Ciemnoniebieski', + '800080': 'Purpurowy', + '808080': 'Szary', + F00: 'Czerwony', + FF8C00: 'Ciemnopomarańczowy', + FFD700: 'Złoty', + '008000': 'Zielony', + '0FF': 'Cyjan', + '00F': 'Niebieski', + EE82EE: 'Fioletowy', + A9A9A9: 'Przygaszony szary', + FFA07A: 'Łososiowy', + FFA500: 'Pomarańczowy', + FFFF00: 'Żółty', + '00FF00': 'Limonkowy', + AFEEEE: 'Bladoturkusowy', + ADD8E6: 'Jasnoniebieski', + DDA0DD: 'Śliwkowy', + D3D3D3: 'Jasnoszary', + FFF0F5: 'Jasnolawendowy', + FAEBD7: 'Kremowobiały', + FFFFE0: 'Jasnożółty', + F0FFF0: 'Bladozielony', + F0FFFF: 'Jasnolazurowy', + F0F8FF: 'Jasnobłękitny', + E6E6FA: 'Lawendowy', + FFF: 'Biały' + }, + more: 'Więcej kolorów...', + panelTitle: 'Kolory', + textColorTitle: 'Kolor tekstu' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/pt-br.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/pt-br.js new file mode 100644 index 00000000..c04c32e4 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/pt-br.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'pt-br', { + auto: 'Automático', + bgColorTitle: 'Cor do Plano de Fundo', + colors: { + '000': 'Preto', + '800000': 'Foquete', + '8B4513': 'Marrom 1', + '2F4F4F': 'Cinza 1', + '008080': 'Cerceta', + '000080': 'Azul Marinho', + '4B0082': 'Índigo', + '696969': 'Cinza 2', + B22222: 'Tijolo de Fogo', + A52A2A: 'Marrom 2', + DAA520: 'Vara Dourada', + '006400': 'Verde Escuro', + '40E0D0': 'Turquesa', + '0000CD': 'Azul Médio', + '800080': 'Roxo', + '808080': 'Cinza 3', + F00: 'Vermelho', + FF8C00: 'Laranja Escuro', + FFD700: 'Dourado', + '008000': 'Verde', + '0FF': 'Ciano', + '00F': 'Azul', + EE82EE: 'Violeta', + A9A9A9: 'Cinza Escuro', + FFA07A: 'Salmão Claro', + FFA500: 'Laranja', + FFFF00: 'Amarelo', + '00FF00': 'Lima', + AFEEEE: 'Turquesa Pálido', + ADD8E6: 'Azul Claro', + DDA0DD: 'Ameixa', + D3D3D3: 'Cinza Claro', + FFF0F5: 'Lavanda 1', + FAEBD7: 'Branco Antiguidade', + FFFFE0: 'Amarelo Claro', + F0FFF0: 'Orvalho', + F0FFFF: 'Azure', + F0F8FF: 'Azul Alice', + E6E6FA: 'Lavanda 2', + FFF: 'Branco' + }, + more: 'Mais Cores...', + panelTitle: 'Cores', + textColorTitle: 'Cor do Texto' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/pt.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/pt.js new file mode 100644 index 00000000..a1148e07 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/pt.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'pt', { + auto: 'Automático', + bgColorTitle: 'Cor de Fundo', + colors: { + '000': 'Black', + '800000': 'Maroon', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Gray', + B22222: 'Fire Brick', + A52A2A: 'Brown', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Gray', + F00: 'Red', + FF8C00: 'Dark Orange', + FFD700: 'Gold', + '008000': 'Green', + '0FF': 'Cyan', + '00F': 'Blue', + EE82EE: 'Violet', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Orange', + FFFF00: 'Yellow', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'White' + }, + more: 'Mais Cores...', + panelTitle: 'Colors', + textColorTitle: 'Cor do Texto' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ro.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ro.js new file mode 100644 index 00000000..83b2acab --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ro.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'ro', { + auto: 'Automatic', + bgColorTitle: 'Coloarea fundalului', + colors: { + '000': 'Black', + '800000': 'Maroon', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Gray', + B22222: 'Fire Brick', + A52A2A: 'Brown', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Gray', + F00: 'Red', + FF8C00: 'Dark Orange', + FFD700: 'Gold', + '008000': 'Green', + '0FF': 'Cyan', + '00F': 'Blue', + EE82EE: 'Violet', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Orange', + FFFF00: 'Yellow', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'White' + }, + more: 'Mai multe culori...', + panelTitle: 'Colors', + textColorTitle: 'Culoarea textului' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ru.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ru.js new file mode 100644 index 00000000..7e023abd --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ru.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'ru', { + auto: 'Автоматически', + bgColorTitle: 'Цвет фона', + colors: { + '000': 'Чёрный', + '800000': 'Бордовый', + '8B4513': 'Кожано-коричневый', + '2F4F4F': 'Темный синевато-серый', + '008080': 'Сине-зелёный', + '000080': 'Тёмно-синий', + '4B0082': 'Индиго', + '696969': 'Тёмно-серый', + B22222: 'Кирпичный', + A52A2A: 'Коричневый', + DAA520: 'Золотисто-берёзовый', + '006400': 'Темно-зелёный', + '40E0D0': 'Бирюзовый', + '0000CD': 'Умеренно синий', + '800080': 'Пурпурный', + '808080': 'Серый', + F00: 'Красный', + FF8C00: 'Темно-оранжевый', + FFD700: 'Золотистый', + '008000': 'Зелёный', + '0FF': 'Васильковый', + '00F': 'Синий', + EE82EE: 'Фиолетовый', + A9A9A9: 'Тускло-серый', + FFA07A: 'Светло-лососевый', + FFA500: 'Оранжевый', + FFFF00: 'Жёлтый', + '00FF00': 'Лайма', + AFEEEE: 'Бледно-синий', + ADD8E6: 'Свелто-голубой', + DDA0DD: 'Сливовый', + D3D3D3: 'Светло-серый', + FFF0F5: 'Розово-лавандовый', + FAEBD7: 'Античный белый', + FFFFE0: 'Светло-жёлтый', + F0FFF0: 'Медвяной росы', + F0FFFF: 'Лазурный', + F0F8FF: 'Бледно-голубой', + E6E6FA: 'Лавандовый', + FFF: 'Белый' + }, + more: 'Ещё цвета...', + panelTitle: 'Цвета', + textColorTitle: 'Цвет текста' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/si.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/si.js new file mode 100644 index 00000000..c897679c --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/si.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'si', { + auto: 'Automatic', // MISSING + bgColorTitle: 'පසුබිම් වර්ණය', + colors: { + '000': 'Black', // MISSING + '800000': 'Maroon', // MISSING + '8B4513': 'Saddle Brown', // MISSING + '2F4F4F': 'Dark Slate Gray', // MISSING + '008080': 'Teal', // MISSING + '000080': 'Navy', // MISSING + '4B0082': 'Indigo', // MISSING + '696969': 'Dark Gray', // MISSING + B22222: 'Fire Brick', // MISSING + A52A2A: 'Brown', // MISSING + DAA520: 'Golden Rod', // MISSING + '006400': 'Dark Green', // MISSING + '40E0D0': 'Turquoise', // MISSING + '0000CD': 'Medium Blue', // MISSING + '800080': 'Purple', // MISSING + '808080': 'Gray', // MISSING + F00: 'Red', // MISSING + FF8C00: 'Dark Orange', // MISSING + FFD700: 'Gold', // MISSING + '008000': 'Green', // MISSING + '0FF': 'Cyan', // MISSING + '00F': 'Blue', // MISSING + EE82EE: 'Violet', // MISSING + A9A9A9: 'Dim Gray', // MISSING + FFA07A: 'Light Salmon', // MISSING + FFA500: 'Orange', // MISSING + FFFF00: 'Yellow', // MISSING + '00FF00': 'Lime', // MISSING + AFEEEE: 'Pale Turquoise', // MISSING + ADD8E6: 'Light Blue', // MISSING + DDA0DD: 'Plum', // MISSING + D3D3D3: 'Light Grey', // MISSING + FFF0F5: 'Lavender Blush', // MISSING + FAEBD7: 'Antique White', // MISSING + FFFFE0: 'Light Yellow', // MISSING + F0FFF0: 'Honeydew', // MISSING + F0FFFF: 'Azure', // MISSING + F0F8FF: 'Alice Blue', // MISSING + E6E6FA: 'Lavender', // MISSING + FFF: 'White' // MISSING + }, + more: 'More Colors...', // MISSING + panelTitle: 'වර්ණය', + textColorTitle: 'අක්ෂර වර්ණ' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/sk.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/sk.js new file mode 100644 index 00000000..aabda1f6 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/sk.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'sk', { + auto: 'Automaticky', + bgColorTitle: 'Farba pozadia', + colors: { + '000': 'Čierna', + '800000': 'Maroon', + '8B4513': 'Sedlová hnedá', + '2F4F4F': 'Tmavo bridlicovo sivá', + '008080': 'Modrozelená', + '000080': 'Tmavomodrá', + '4B0082': 'Indigo', + '696969': 'Tmavá sivá', + B22222: 'Ohňová tehlová', + A52A2A: 'Hnedá', + DAA520: 'Zlatobyľ', + '006400': 'Tmavá zelená', + '40E0D0': 'Tyrkysová', + '0000CD': 'Stredná modrá', + '800080': 'Purpurová', + '808080': 'Sivá', + F00: 'Červená', + FF8C00: 'Tmavá oranžová', + FFD700: 'Zlatá', + '008000': 'Zelená', + '0FF': 'Azúrová', + '00F': 'Modrá', + EE82EE: 'Fialová', + A9A9A9: 'Tmavá sivá', + FFA07A: 'Svetlo lososová', + FFA500: 'Oranžová', + FFFF00: 'Žltá', + '00FF00': 'Vápenná', + AFEEEE: 'Svetlo tyrkysová', + ADD8E6: 'Svetlo modrá', + DDA0DD: 'Slivková', + D3D3D3: 'Svetlo sivá', + FFF0F5: 'Levanduľovo červená', + FAEBD7: 'Antická biela', + FFFFE0: 'Svetlo žltá', + F0FFF0: 'Medová', + F0FFFF: 'Azúrová', + F0F8FF: 'Alicovo modrá', + E6E6FA: 'Levanduľová', + FFF: 'Biela' + }, + more: 'Viac farieb...', + panelTitle: 'Farby', + textColorTitle: 'Farba textu' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/sl.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/sl.js new file mode 100644 index 00000000..6397c7a6 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/sl.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'sl', { + auto: 'Samodejno', + bgColorTitle: 'Barva ozadja', + colors: { + '000': 'Black', + '800000': 'Maroon', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Gray', + B22222: 'Fire Brick', + A52A2A: 'Brown', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Gray', + F00: 'Red', + FF8C00: 'Dark Orange', + FFD700: 'Gold', + '008000': 'Green', + '0FF': 'Cyan', + '00F': 'Blue', + EE82EE: 'Violet', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Orange', + FFFF00: 'Yellow', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'White' + }, + more: 'Več barv...', + panelTitle: 'Colors', + textColorTitle: 'Barva besedila' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/sq.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/sq.js new file mode 100644 index 00000000..dbe5f992 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/sq.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'sq', { + auto: 'Automatik', + bgColorTitle: 'Ngjyra e Prapavijës', + colors: { + '000': 'E zezë', + '800000': 'Ngjyrë gështenjë', + '8B4513': 'Ngjyrë Shale Kafe', + '2F4F4F': 'Ngjyrë Gri të errët ardëz', + '008080': 'Ngjyrë bajukë', + '000080': 'Ngjyrë Marine', + '4B0082': 'Indigo', + '696969': 'Gri e Errët', + B22222: 'Tullë në Flakë', + A52A2A: 'Ngjytë Kafe', + DAA520: 'Shkop i Artë', + '006400': 'E Gjelbër e Errët', + '40E0D0': 'Ngjyrë e Bruztë', + '0000CD': 'E Kaltër e Mesme', + '800080': 'Vjollcë', + '808080': 'Gri', + F00: 'E Kuqe', + FF8C00: 'E Portokalltë e Errët', + FFD700: 'Ngjyrë Ari', + '008000': 'E Gjelbërt', + '0FF': 'Cyan', + '00F': 'E Kaltër', + EE82EE: 'Vjollcë', + A9A9A9: 'Gri e Zbehtë', + FFA07A: 'Salmon i Ndritur', + FFA500: 'E Portokalltë', + FFFF00: 'E Verdhë', + '00FF00': 'Ngjyrë Gëlqere', + AFEEEE: 'Ngjyrë e Bruztë e Zbehtë', + ADD8E6: 'E Kaltër e Ndritur', + DDA0DD: 'Ngjyrë Llokumi', + D3D3D3: 'Gri e Ndritur', + FFF0F5: 'Ngjyrë Purpur e Skuqur', + FAEBD7: 'E Bardhë Antike', + FFFFE0: 'E verdhë e Ndritur', + F0FFF0: 'Ngjyrë Nektari', + F0FFFF: 'Ngjyrë Qielli', + F0F8FF: 'E Kaltër Alice', + E6E6FA: 'Ngjyrë Purpur e Zbetë', + FFF: 'E bardhë' + }, + more: 'Më Shumë Ngjyra...', + panelTitle: 'Ngjyrat', + textColorTitle: 'Ngjyra e Tekstit' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/sr-latn.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/sr-latn.js new file mode 100644 index 00000000..146bc6c7 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/sr-latn.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'sr-latn', { + auto: 'Automatski', + bgColorTitle: 'Boja pozadine', + colors: { + '000': 'Black', + '800000': 'Maroon', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Gray', + B22222: 'Fire Brick', + A52A2A: 'Brown', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Gray', + F00: 'Red', + FF8C00: 'Dark Orange', + FFD700: 'Gold', + '008000': 'Green', + '0FF': 'Cyan', + '00F': 'Blue', + EE82EE: 'Violet', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Orange', + FFFF00: 'Yellow', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'White' + }, + more: 'Više boja...', + panelTitle: 'Colors', + textColorTitle: 'Boja teksta' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/sr.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/sr.js new file mode 100644 index 00000000..f9c0f7ce --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/sr.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'sr', { + auto: 'Аутоматски', + bgColorTitle: 'Боја позадине', + colors: { + '000': 'Black', + '800000': 'Maroon', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Gray', + B22222: 'Fire Brick', + A52A2A: 'Brown', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Gray', + F00: 'Red', + FF8C00: 'Dark Orange', + FFD700: 'Gold', + '008000': 'Green', + '0FF': 'Cyan', + '00F': 'Blue', + EE82EE: 'Violet', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Orange', + FFFF00: 'Yellow', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'White' + }, + more: 'Више боја...', + panelTitle: 'Colors', + textColorTitle: 'Боја текста' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/sv.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/sv.js new file mode 100644 index 00000000..2275f5f3 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/sv.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'sv', { + auto: 'Automatisk', + bgColorTitle: 'Bakgrundsfärg', + colors: { + '000': 'Svart', + '800000': 'Rödbrun', + '8B4513': 'Mörkbrun', + '2F4F4F': 'Skiffergrå', + '008080': 'Kricka', + '000080': 'Marinblå', + '4B0082': 'Indigo', + '696969': 'Mörkgrå', + B22222: 'Tegelsten', + A52A2A: 'Brun', + DAA520: 'Mörk guld', + '006400': 'Mörkgrön', + '40E0D0': 'Turkos', + '0000CD': 'Medium blå', + '800080': 'Lila', + '808080': 'Grå', + F00: 'Röd', + FF8C00: 'Mörkorange', + FFD700: 'Guld', + '008000': 'Grön', + '0FF': 'Turkos', + '00F': 'Blå', + EE82EE: 'Violett', + A9A9A9: 'Matt grå', + FFA07A: 'Laxrosa', + FFA500: 'Orange', + FFFF00: 'Gul', + '00FF00': 'Lime', + AFEEEE: 'Ljusturkos', + ADD8E6: 'Ljusblå', + DDA0DD: 'Plommon', + D3D3D3: 'Ljusgrå', + FFF0F5: 'Ljus lavendel', + FAEBD7: 'Antikvit', + FFFFE0: 'Ljusgul', + F0FFF0: 'Honungsdagg', + F0FFFF: 'Azurblå', + F0F8FF: 'Aliceblå', + E6E6FA: 'Lavendel', + FFF: 'Vit' + }, + more: 'Fler färger...', + panelTitle: 'Färger', + textColorTitle: 'Textfärg' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/th.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/th.js new file mode 100644 index 00000000..5a0ab166 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/th.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'th', { + auto: 'สีอัตโนมัติ', + bgColorTitle: 'สีพื้นหลัง', + colors: { + '000': 'Black', + '800000': 'Maroon', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Gray', + B22222: 'Fire Brick', + A52A2A: 'Brown', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Gray', + F00: 'Red', + FF8C00: 'Dark Orange', + FFD700: 'Gold', + '008000': 'Green', + '0FF': 'Cyan', + '00F': 'Blue', + EE82EE: 'Violet', + A9A9A9: 'Dim Gray', + FFA07A: 'Light Salmon', + FFA500: 'Orange', + FFFF00: 'Yellow', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'White' + }, + more: 'เลือกสีอื่นๆ...', + panelTitle: 'Colors', + textColorTitle: 'สีตัวอักษร' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/tr.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/tr.js new file mode 100644 index 00000000..d32363c2 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/tr.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'tr', { + auto: 'Otomatik', + bgColorTitle: 'Arka Renk', + colors: { + '000': 'Siyah', + '800000': 'Kestane', + '8B4513': 'Koyu Kahverengi', + '2F4F4F': 'Koyu Kurşuni Gri', + '008080': 'Teal', + '000080': 'Mavi', + '4B0082': 'Çivit Mavisi', + '696969': 'Silik Gri', + B22222: 'Ateş Tuğlası', + A52A2A: 'Kahverengi', + DAA520: 'Altun Sırık', + '006400': 'Koyu Yeşil', + '40E0D0': 'Turkuaz', + '0000CD': 'Orta Mavi', + '800080': 'Pembe', + '808080': 'Gri', + F00: 'Kırmızı', + FF8C00: 'Koyu Portakal', + FFD700: 'Altın', + '008000': 'Yeşil', + '0FF': 'Ciyan', + '00F': 'Mavi', + EE82EE: 'Menekşe', + A9A9A9: 'Koyu Gri', + FFA07A: 'Açık Sarımsı', + FFA500: 'Portakal', + FFFF00: 'Sarı', + '00FF00': 'Açık Yeşil', + AFEEEE: 'Sönük Turkuaz', + ADD8E6: 'Açık Mavi', + DDA0DD: 'Mor', + D3D3D3: 'Açık Gri', + FFF0F5: 'Eflatun Pembe', + FAEBD7: 'Antik Beyaz', + FFFFE0: 'Açık Sarı', + F0FFF0: 'Balsarısı', + F0FFFF: 'Gök Mavisi', + F0F8FF: 'Reha Mavi', + E6E6FA: 'Eflatun', + FFF: 'Beyaz' + }, + more: 'Diğer renkler...', + panelTitle: 'Renkler', + textColorTitle: 'Yazı Rengi' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ug.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ug.js new file mode 100644 index 00000000..5c33474e --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/ug.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'ug', { + auto: 'ئۆزلۈكىدىن', + bgColorTitle: 'تەگلىك رەڭگى', + colors: { + '000': 'قارا', + '800000': 'قىزغۇچ سېرىق', + '8B4513': 'توق قوڭۇر', + '2F4F4F': 'قارامتۇل يېشىل', + '008080': 'كۆكۈش يېشىل', + '000080': 'قارامتۇل كۆك', + '4B0082': 'كۆكۈش كۈلرەڭ', + '696969': 'قارامتۇل كۈلرەڭ', + B22222: 'خىش قىزىل', + A52A2A: 'قوڭۇر', + DAA520: 'ئالتۇن سېرىق', + '006400': 'توق يېشىل', + '40E0D0': 'كۆكۈچ يېشىل', + '0000CD': 'ئوتتۇراھال كۆك', + '800080': 'بىنەپشە', + '808080': 'كۈلرەڭ', + F00: 'قىزىل', + FF8C00: 'توق قىزغۇچ سېرىق', + FFD700: 'ئالتۇن', + '008000': 'يېشىل', + '0FF': 'يېشىل كۆك', + '00F': 'كۆك', + EE82EE: 'قىزغۇچ بىنەپشە', + A9A9A9: 'توق كۈلرەڭ', + FFA07A: 'كاۋا چېچىكى سېرىق', + FFA500: 'قىزغۇچ سېرىق', + FFFF00: 'سېرىق', + '00FF00': 'Lime', + AFEEEE: 'سۇس ھاۋا رەڭ', + ADD8E6: 'ئوچۇق كۆك', + DDA0DD: 'قىزغۇچ بىنەپشە', + D3D3D3: 'سۇس كۆكۈچ كۈلرەڭ', + FFF0F5: 'سۇس قىزغۇچ بىنەپشە', + FAEBD7: 'Antique White', + FFFFE0: 'سۇس سېرىق', + F0FFF0: 'Honeydew', + F0FFFF: 'ئاسمان كۆكى', + F0F8FF: 'سۇس كۆك', + E6E6FA: 'سۇس بىنەپشە', + FFF: 'ئاق' + }, + more: 'باشقا رەڭ', + panelTitle: 'رەڭ', + textColorTitle: 'تېكىست رەڭگى' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/uk.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/uk.js new file mode 100644 index 00000000..af8990a6 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/uk.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'uk', { + auto: 'Авто', + bgColorTitle: 'Колір фону', + colors: { + '000': 'Чорний', + '800000': 'Бордовий', + '8B4513': 'Коричневий', + '2F4F4F': 'Темний сіро-зелений', + '008080': 'Морської хвилі', + '000080': 'Сливовий', + '4B0082': 'Індиго', + '696969': 'Темносірий', + B22222: 'Темночервоний', + A52A2A: 'Каштановий', + DAA520: 'Бежевий', + '006400': 'Темнозелений', + '40E0D0': 'Бірюзовий', + '0000CD': 'Темносиній', + '800080': 'Пурпурний', + '808080': 'Сірий', + F00: 'Червоний', + FF8C00: 'Темнооранжевий', + FFD700: 'Жовтий', + '008000': 'Зелений', + '0FF': 'Синьо-зелений', + '00F': 'Синій', + EE82EE: 'Фіолетовий', + A9A9A9: 'Світлосірий', + FFA07A: 'Рожевий', + FFA500: 'Оранжевий', + FFFF00: 'Яскравожовтий', + '00FF00': 'Салатовий', + AFEEEE: 'Світлобірюзовий', + ADD8E6: 'Блакитний', + DDA0DD: 'Світлофіолетовий', + D3D3D3: 'Сріблястий', + FFF0F5: 'Світлорожевий', + FAEBD7: 'Світлооранжевий', + FFFFE0: 'Світложовтий', + F0FFF0: 'Світлозелений', + F0FFFF: 'Світлий синьо-зелений', + F0F8FF: 'Світлоблакитний', + E6E6FA: 'Лавандовий', + FFF: 'Білий' + }, + more: 'Кольори...', + panelTitle: 'Кольори', + textColorTitle: 'Колір тексту' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/vi.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/vi.js new file mode 100644 index 00000000..95661b02 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/vi.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'vi', { + auto: 'Tự động', + bgColorTitle: 'Màu nền', + colors: { + '000': 'Đen', + '800000': 'Maroon', + '8B4513': 'Saddle Brown', + '2F4F4F': 'Dark Slate Gray', + '008080': 'Teal', + '000080': 'Navy', + '4B0082': 'Indigo', + '696969': 'Dark Gray', + B22222: 'Fire Brick', + A52A2A: 'Nâu', + DAA520: 'Golden Rod', + '006400': 'Dark Green', + '40E0D0': 'Turquoise', + '0000CD': 'Medium Blue', + '800080': 'Purple', + '808080': 'Xám', + F00: 'Đỏ', + FF8C00: 'Dark Orange', + FFD700: 'Vàng', + '008000': 'Xanh lá cây', + '0FF': 'Cyan', + '00F': 'Xanh da trời', + EE82EE: 'Tím', + A9A9A9: 'Xám tối', + FFA07A: 'Light Salmon', + FFA500: 'Màu cam', + FFFF00: 'Vàng', + '00FF00': 'Lime', + AFEEEE: 'Pale Turquoise', + ADD8E6: 'Light Blue', + DDA0DD: 'Plum', + D3D3D3: 'Light Grey', + FFF0F5: 'Lavender Blush', + FAEBD7: 'Antique White', + FFFFE0: 'Light Yellow', + F0FFF0: 'Honeydew', + F0FFFF: 'Azure', + F0F8FF: 'Alice Blue', + E6E6FA: 'Lavender', + FFF: 'Trắng' + }, + more: 'Màu khác...', + panelTitle: 'Màu sắc', + textColorTitle: 'Màu chữ' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/zh-cn.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/zh-cn.js new file mode 100644 index 00000000..4e6a7720 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/zh-cn.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'zh-cn', { + auto: '自动', + bgColorTitle: '背景颜色', + colors: { + '000': '黑', + '800000': '褐红', + '8B4513': '深褐', + '2F4F4F': '墨绿', + '008080': '绿松石', + '000080': '海军蓝', + '4B0082': '靛蓝', + '696969': '暗灰', + B22222: '砖红', + A52A2A: '褐', + DAA520: '金黄', + '006400': '深绿', + '40E0D0': '蓝绿', + '0000CD': '中蓝', + '800080': '紫', + '808080': '灰', + F00: '红', + FF8C00: '深橙', + FFD700: '金', + '008000': '绿', + '0FF': '青', + '00F': '蓝', + EE82EE: '紫罗兰', + A9A9A9: '深灰', + FFA07A: '亮橙', + FFA500: '橙', + FFFF00: '黄', + '00FF00': '水绿', + AFEEEE: '粉蓝', + ADD8E6: '亮蓝', + DDA0DD: '梅红', + D3D3D3: '淡灰', + FFF0F5: '淡紫红', + FAEBD7: '古董白', + FFFFE0: '淡黄', + F0FFF0: '蜜白', + F0FFFF: '天蓝', + F0F8FF: '淡蓝', + E6E6FA: '淡紫', + FFF: '白' + }, + more: '其它颜色...', + panelTitle: '颜色', + textColorTitle: '文本颜色' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/zh.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/zh.js new file mode 100644 index 00000000..5a287adf --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/lang/zh.js @@ -0,0 +1,53 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'colorbutton', 'zh', { + auto: '自動', + bgColorTitle: '背景顏色', + colors: { + '000': '黑色', + '800000': '栗色', + '8B4513': '鞍褐色', + '2F4F4F': '暗瓦灰色', + '008080': '水壓色', + '000080': '丈青澀', + '4B0082': '靛青', + '696969': '深灰色', + B22222: '磚紅色', + A52A2A: '褐色', + DAA520: '金黃色', + '006400': '深綠色', + '40E0D0': '青綠色', + '0000CD': '藍色', + '800080': '紫色', + '808080': '灰色', + F00: '紅色', + FF8C00: '深橘色', + FFD700: '金色', + '008000': '綠色', + '0FF': '藍綠色', + '00F': '藍色', + EE82EE: '紫色', + A9A9A9: '暗灰色', + FFA07A: '亮鮭紅', + FFA500: '橘色', + FFFF00: '黃色', + '00FF00': '鮮綠色', + AFEEEE: '綠松色', + ADD8E6: '淺藍色', + DDA0DD: '枚紅色', + D3D3D3: '淺灰色', + FFF0F5: '淺紫色', + FAEBD7: '骨董白', + FFFFE0: '淺黃色', + F0FFF0: '蜜瓜綠', + F0FFFF: '天藍色', + F0F8FF: '愛麗斯蘭', + E6E6FA: '淺紫色', + FFF: '白色' + }, + more: '更多顏色', + panelTitle: '顏色', + textColorTitle: '文字顏色' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/colorbutton/plugin.js b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/plugin.js new file mode 100644 index 00000000..b11f7660 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/colorbutton/plugin.js @@ -0,0 +1,286 @@ +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +/** + * @fileOverview The "colorbutton" plugin that makes it possible to assign + * text and background colors to editor contents. + * + */ +CKEDITOR.plugins.add( 'colorbutton', { + requires: 'panelbutton,floatpanel', + lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + icons: 'bgcolor,textcolor', // %REMOVE_LINE_CORE% + hidpi: true, // %REMOVE_LINE_CORE% + init: function( editor ) { + var config = editor.config, + lang = editor.lang.colorbutton; + + var clickFn; + + if ( !CKEDITOR.env.hc ) { + addButton( 'TextColor', 'fore', lang.textColorTitle, 10 ); + addButton( 'BGColor', 'back', lang.bgColorTitle, 20 ); + } + + function addButton( name, type, title, order ) { + var style = new CKEDITOR.style( config[ 'colorButton_' + type + 'Style' ] ), + colorBoxId = CKEDITOR.tools.getNextId() + '_colorBox'; + + editor.ui.add( name, CKEDITOR.UI_PANELBUTTON, { + label: title, + title: title, + modes: { wysiwyg: 1 }, + editorFocus: 0, + toolbar: 'colors,' + order, + allowedContent: style, + requiredContent: style, + + panel: { + css: CKEDITOR.skin.getPath( 'editor' ), + attributes: { role: 'listbox', 'aria-label': lang.panelTitle } + }, + + onBlock: function( panel, block ) { + block.autoSize = true; + block.element.addClass( 'cke_colorblock' ); + block.element.setHtml( renderColors( panel, type, colorBoxId ) ); + // The block should not have scrollbars (#5933, #6056) + block.element.getDocument().getBody().setStyle( 'overflow', 'hidden' ); + + CKEDITOR.ui.fire( 'ready', this ); + + var keys = block.keys; + var rtl = editor.lang.dir == 'rtl'; + keys[ rtl ? 37 : 39 ] = 'next'; // ARROW-RIGHT + keys[ 40 ] = 'next'; // ARROW-DOWN + keys[ 9 ] = 'next'; // TAB + keys[ rtl ? 39 : 37 ] = 'prev'; // ARROW-LEFT + keys[ 38 ] = 'prev'; // ARROW-UP + keys[ CKEDITOR.SHIFT + 9 ] = 'prev'; // SHIFT + TAB + keys[ 32 ] = 'click'; // SPACE + }, + + refresh: function() { + if ( !editor.activeFilter.check( style ) ) + this.setState( CKEDITOR.TRISTATE_DISABLED ); + }, + + // The automatic colorbox should represent the real color (#6010) + onOpen: function() { + + var selection = editor.getSelection(), + block = selection && selection.getStartElement(), + path = editor.elementPath( block ), + color; + + if ( !path ) + return; + + // Find the closest block element. + block = path.block || path.blockLimit || editor.document.getBody(); + + // The background color might be transparent. In that case, look up the color in the DOM tree. + do { + color = block && block.getComputedStyle( type == 'back' ? 'background-color' : 'color' ) || 'transparent'; + } + while ( type == 'back' && color == 'transparent' && block && ( block = block.getParent() ) ); + + // The box should never be transparent. + if ( !color || color == 'transparent' ) + color = '#ffffff'; + + this._.panel._.iframe.getFrameDocument().getById( colorBoxId ).setStyle( 'background-color', color ); + + return color; + } + } ); + } + + + function renderColors( panel, type, colorBoxId ) { + var output = [], + colors = config.colorButton_colors.split( ',' ); + + var clickFn = CKEDITOR.tools.addFunction( function( color, type ) { + if ( color == '?' ) { + var applyColorStyle = arguments.callee; + + function onColorDialogClose( evt ) { + this.removeListener( 'ok', onColorDialogClose ); + this.removeListener( 'cancel', onColorDialogClose ); + + evt.name == 'ok' && applyColorStyle( this.getContentElement( 'picker', 'selectedColor' ).getValue(), type ); + } + + editor.openDialog( 'colordialog', function() { + this.on( 'ok', onColorDialogClose ); + this.on( 'cancel', onColorDialogClose ); + } ); + + return; + } + + editor.focus(); + + panel.hide(); + + editor.fire( 'saveSnapshot' ); + + // Clean up any conflicting style within the range. + editor.removeStyle( new CKEDITOR.style( config[ 'colorButton_' + type + 'Style' ], { color: 'inherit' } ) ); + + if ( color ) { + var colorStyle = config[ 'colorButton_' + type + 'Style' ]; + + colorStyle.childRule = type == 'back' ? + function( element ) { + // It's better to apply background color as the innermost style. (#3599) + // Except for "unstylable elements". (#6103) + return isUnstylable( element ); + } : function( element ) { + // Fore color style must be applied inside links instead of around it. (#4772,#6908) + return !( element.is( 'a' ) || element.getElementsByTag( 'a' ).count() ) || isUnstylable( element ); + }; + + editor.applyStyle( new CKEDITOR.style( colorStyle, { color: color } ) ); + } + + editor.fire( 'saveSnapshot' ); + } ); + + // Render the "Automatic" button. + output.push( '' + + '

    ' + + '' + + '' + + '' + + '' + + '
    ' + + '' + + '', lang.auto, '
    ' + + '' + + '' ); + + // Render the color boxes. + for ( var i = 0; i < colors.length; i++ ) { + if ( ( i % 8 ) === 0 ) + output.push( '' ); + + var parts = colors[ i ].split( '/' ), + colorName = parts[ 0 ], + colorCode = parts[ 1 ] || colorName; + + // The data can be only a color code (without #) or colorName + color code + // If only a color code is provided, then the colorName is the color with the hash + // Convert the color from RGB to RRGGBB for better compatibility with IE and . See #5676 + if ( !parts[ 1 ] ) + colorName = '#' + colorName.replace( /^(.)(.)(.)$/, '$1$1$2$2$3$3' ); + + var colorLabel = editor.lang.colorbutton.colors[ colorCode ] || colorCode; + output.push( '' ); + } + + // Render the "More Colors" button. + if ( editor.plugins.colordialog && config.colorButton_enableMore === undefined || config.colorButton_enableMore ) { + output.push( '' + + '' + + '' ); // tr is later in the code. + } + + output.push( '
    ' + + '' + + '' + + '' + + '
    ' + + '', lang.more, '' + + '
    ' ); + + return output.join( '' ); + } + + function isUnstylable( ele ) { + return ( ele.getAttribute( 'contentEditable' ) == 'false' ) || ele.getAttribute( 'data-nostyle' ); + } + } +} ); + +/** + * Whether to enable the **More Colors*** button in the color selectors. + * + * config.colorButton_enableMore = false; + * + * @cfg {Boolean} [colorButton_enableMore=true] + * @member CKEDITOR.config + */ + +/** + * Defines the colors to be displayed in the color selectors. This is a string + * containing hexadecimal notation for HTML colors, without the `'#'` prefix. + * + * **Since 3.3:** A color name may optionally be defined by prefixing the entries with + * a name and the slash character. For example, `'FontColor1/FF9900'` will be + * displayed as the color `#FF9900` in the selector, but will be output as `'FontColor1'`. + * + * // Brazil colors only. + * config.colorButton_colors = '00923E,F8C100,28166F'; + * + * config.colorButton_colors = 'FontColor1/FF9900,FontColor2/0066CC,FontColor3/F00'; + * + * @cfg {String} [colorButton_colors=see source] + * @member CKEDITOR.config + */ +CKEDITOR.config.colorButton_colors = '000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,' + + 'B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,' + + 'F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,' + + 'FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,' + + 'FFF0F5,FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF'; + +/** + * Stores the style definition that applies the text foreground color. + * + * // This is actually the default value. + * config.colorButton_foreStyle = { + * element: 'span', + * styles: { color: '#(color)' } + * }; + * + * @cfg [colorButton_foreStyle=see source] + * @member CKEDITOR.config + */ +CKEDITOR.config.colorButton_foreStyle = { + element: 'span', + styles: { 'color': '#(color)' }, + overrides: [ { + element: 'font', attributes: { 'color': null } + } ] +}; + +/** + * Stores the style definition that applies the text background color. + * + * // This is actually the default value. + * config.colorButton_backStyle = { + * element: 'span', + * styles: { 'background-color': '#(color)' } + * }; + * + * @cfg [colorButton_backStyle=see source] + * @member CKEDITOR.config + */ +CKEDITOR.config.colorButton_backStyle = { + element: 'span', + styles: { 'background-color': '#(color)' } +}; diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/af.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/af.js new file mode 100644 index 00000000..35633514 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/af.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'af', { + options: 'Konteks Spyskaart-opsies' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ar.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ar.js new file mode 100644 index 00000000..62311fc4 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ar.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'ar', { + options: 'خصائص قائمة السياق' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/bg.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/bg.js new file mode 100644 index 00000000..ae0ceb0a --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/bg.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'bg', { + options: 'Опции на контекстното меню' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/bn.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/bn.js new file mode 100644 index 00000000..0c7dd357 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/bn.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'bn', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/bs.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/bs.js new file mode 100644 index 00000000..38e2aef5 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/bs.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'bs', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ca.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ca.js new file mode 100644 index 00000000..ed986085 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ca.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'ca', { + options: 'Opcions del menú contextual' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/cs.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/cs.js new file mode 100644 index 00000000..95692de7 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/cs.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'cs', { + options: 'Nastavení kontextové nabídky' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/cy.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/cy.js new file mode 100644 index 00000000..5e0da0fe --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/cy.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'cy', { + options: 'Opsiynau Dewislen Cyd-destun' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/da.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/da.js new file mode 100644 index 00000000..d6abf2e2 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/da.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'da', { + options: 'Muligheder for hjælpemenu' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/de.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/de.js new file mode 100644 index 00000000..e99dc995 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/de.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'de', { + options: 'Kontextmenü Optionen' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/el.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/el.js new file mode 100644 index 00000000..392a45eb --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/el.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'el', { + options: 'Επιλογές Αναδυόμενου Μενού' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/en-au.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/en-au.js new file mode 100644 index 00000000..6a1ca8a2 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/en-au.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'en-au', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/en-ca.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/en-ca.js new file mode 100644 index 00000000..1fcbdfbd --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/en-ca.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'en-ca', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/en-gb.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/en-gb.js new file mode 100644 index 00000000..aab3a770 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/en-gb.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'en-gb', { + options: 'Context Menu Options' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/en.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/en.js new file mode 100644 index 00000000..da42b758 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/en.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'en', { + options: 'Context Menu Options' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/eo.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/eo.js new file mode 100644 index 00000000..3182026c --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/eo.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'eo', { + options: 'Opcioj de Kunteksta Menuo' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/es.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/es.js new file mode 100644 index 00000000..f7212f6c --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/es.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'es', { + options: 'Opciones del menú contextual' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/et.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/et.js new file mode 100644 index 00000000..6fa3bf23 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/et.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'et', { + options: 'Kontekstimenüü valikud' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/eu.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/eu.js new file mode 100644 index 00000000..932ed2f5 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/eu.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'eu', { + options: 'Testuingurko Menuaren Aukerak' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/fa.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/fa.js new file mode 100644 index 00000000..686e63e9 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/fa.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'fa', { + options: 'گزینه​های منوی زمینه' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/fi.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/fi.js new file mode 100644 index 00000000..82806e47 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/fi.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'fi', { + options: 'Pikavalikon ominaisuudet' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/fo.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/fo.js new file mode 100644 index 00000000..9cfd8bd5 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/fo.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'fo', { + options: 'Context Menu Options' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/fr-ca.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/fr-ca.js new file mode 100644 index 00000000..399748f3 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/fr-ca.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'fr-ca', { + options: 'Options du menu contextuel' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/fr.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/fr.js new file mode 100644 index 00000000..8360eaca --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/fr.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'fr', { + options: 'Options du menu contextuel' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/gl.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/gl.js new file mode 100644 index 00000000..8aa09c32 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/gl.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'gl', { + options: 'Opcións do menú contextual' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/gu.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/gu.js new file mode 100644 index 00000000..e8b1fa8d --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/gu.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'gu', { + options: 'કોન્તેક્ષ્ત્ મેનુના વિકલ્પો' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/he.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/he.js new file mode 100644 index 00000000..6f4a0a3e --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/he.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'he', { + options: 'אפשרויות תפריט ההקשר' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/hi.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/hi.js new file mode 100644 index 00000000..38a54f4a --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/hi.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'hi', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/hr.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/hr.js new file mode 100644 index 00000000..11d3d9d8 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/hr.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'hr', { + options: 'Opcije izbornika' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/hu.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/hu.js new file mode 100644 index 00000000..b96c1627 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/hu.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'hu', { + options: 'Helyi menü opciók' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/id.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/id.js new file mode 100644 index 00000000..817c718c --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/id.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'id', { + options: 'Opsi Konteks Pilihan' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/is.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/is.js new file mode 100644 index 00000000..ab5b9e7e --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/is.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'is', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/it.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/it.js new file mode 100644 index 00000000..58475804 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/it.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'it', { + options: 'Opzioni del menù contestuale' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ja.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ja.js new file mode 100644 index 00000000..428caefa --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ja.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'ja', { + options: 'コンテキストメニューオプション' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ka.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ka.js new file mode 100644 index 00000000..44f859ff --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ka.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'ka', { + options: 'კონტექსტური მენიუს პარამეტრები' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/km.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/km.js new file mode 100644 index 00000000..a61ec6f7 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/km.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'km', { + options: 'ជម្រើស​ម៉ឺនុយ​បរិបទ' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ko.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ko.js new file mode 100644 index 00000000..d20281ac --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ko.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'ko', { + options: '컨텍스트 메뉴 옵션' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ku.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ku.js new file mode 100644 index 00000000..d5f4b28f --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ku.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'ku', { + options: 'هەڵبژاردەی لیستەی کلیکی دەستی ڕاست' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/lt.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/lt.js new file mode 100644 index 00000000..5584169d --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/lt.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'lt', { + options: 'Kontekstinio meniu parametrai' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/lv.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/lv.js new file mode 100644 index 00000000..a2ec78ac --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/lv.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'lv', { + options: 'Uznirstošās izvēlnes uzstādījumi' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/mk.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/mk.js new file mode 100644 index 00000000..b7d4f82e --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/mk.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'mk', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/mn.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/mn.js new file mode 100644 index 00000000..7c9303e1 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/mn.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'mn', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ms.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ms.js new file mode 100644 index 00000000..37afeb5f --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ms.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'ms', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/nb.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/nb.js new file mode 100644 index 00000000..0c5797b8 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/nb.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'nb', { + options: 'Alternativer for høyreklikkmeny' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/nl.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/nl.js new file mode 100644 index 00000000..43aa679c --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/nl.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'nl', { + options: 'Contextmenu opties' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/no.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/no.js new file mode 100644 index 00000000..96d02c58 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/no.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'no', { + options: 'Alternativer for høyreklikkmeny' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/pl.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/pl.js new file mode 100644 index 00000000..dfb51cd3 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/pl.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'pl', { + options: 'Opcje menu kontekstowego' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/pt-br.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/pt-br.js new file mode 100644 index 00000000..d28c764a --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/pt-br.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'pt-br', { + options: 'Opções Menu de Contexto' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/pt.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/pt.js new file mode 100644 index 00000000..90ad6ee8 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/pt.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'pt', { + options: 'Menu de opções de contexto' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ro.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ro.js new file mode 100644 index 00000000..264a84fb --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ro.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'ro', { + options: 'Opțiuni Meniu Contextual' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ru.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ru.js new file mode 100644 index 00000000..7703c8a2 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ru.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'ru', { + options: 'Параметры контекстного меню' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/si.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/si.js new file mode 100644 index 00000000..1731099a --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/si.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'si', { + options: 'අනතර්ග ලේඛණ විකල්ප' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/sk.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/sk.js new file mode 100644 index 00000000..c8df781c --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/sk.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'sk', { + options: 'Možnosti kontextového menu' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/sl.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/sl.js new file mode 100644 index 00000000..3bc5261e --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/sl.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'sl', { + options: 'Možnosti Kontekstnega Menija' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/sq.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/sq.js new file mode 100644 index 00000000..3ddf46f7 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/sq.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'sq', { + options: 'Mundësitë e Menysë së Kontekstit' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/sr-latn.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/sr-latn.js new file mode 100644 index 00000000..4afee2b3 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/sr-latn.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'sr-latn', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/sr.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/sr.js new file mode 100644 index 00000000..fb7f0d82 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/sr.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'sr', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/sv.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/sv.js new file mode 100644 index 00000000..fb94a7fa --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/sv.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'sv', { + options: 'Context Menu Options' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/th.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/th.js new file mode 100644 index 00000000..d18524d1 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/th.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'th', { + options: 'Context Menu Options' // MISSING +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/tr.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/tr.js new file mode 100644 index 00000000..3c755588 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/tr.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'tr', { + options: 'İçerik Menüsü Seçenekleri' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ug.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ug.js new file mode 100644 index 00000000..652c1305 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/ug.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'ug', { + options: 'قىسقا يول تىزىملىك تاللانمىسى' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/uk.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/uk.js new file mode 100644 index 00000000..316d858f --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/uk.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'uk', { + options: 'Опції контекстного меню' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/vi.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/vi.js new file mode 100644 index 00000000..f6264d14 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/vi.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'vi', { + options: 'Tùy chọn menu bổ xung' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/zh-cn.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/zh-cn.js new file mode 100644 index 00000000..b5943e00 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/zh-cn.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'zh-cn', { + options: '快捷菜单选项' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/zh.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/zh.js new file mode 100644 index 00000000..b92e49ef --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/lang/zh.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'contextmenu', 'zh', { + options: '內容功能表選項' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/contextmenu/plugin.js b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/plugin.js new file mode 100644 index 00000000..06cb74b2 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/contextmenu/plugin.js @@ -0,0 +1,143 @@ +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.plugins.add( 'contextmenu', { + requires: 'menu', + lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + + // Make sure the base class (CKEDITOR.menu) is loaded before it (#3318). + onLoad: function() { + /** + * Class replacing the non-configurable native context menu with configurable CKEditor's equivalent. + * + * @class + * @extends CKEDITOR.menu + */ + CKEDITOR.plugins.contextMenu = CKEDITOR.tools.createClass( { + base: CKEDITOR.menu, + + /** + * Creates the CKEDITOR.plugins.contextMenu class instance. + * + * @constructor + * @param {CKEDITOR.editor} editor + */ + $: function( editor ) { + this.base.call( this, editor, { + panel: { + className: 'cke_menu_panel', + attributes: { + 'aria-label': editor.lang.contextmenu.options + } + } + } ); + }, + + proto: { + /** + * Starts watching on native context menu triggers (option key, right click) on given element. + * + * @param {CKEDITOR.dom.element} element + * @param {Boolean} [nativeContextMenuOnCtrl] Whether to open native context menu if + * *Ctrl* key is hold on opening the context menu. See {@link CKEDITOR.config#browserContextMenuOnCtrl}. + */ + addTarget: function( element, nativeContextMenuOnCtrl ) { + element.on( 'contextmenu', function( event ) { + var domEvent = event.data, + isCtrlKeyDown = + // Safari on Windows always show 'ctrlKey' as true in 'contextmenu' event, + // which make this property unreliable. (#4826) + ( CKEDITOR.env.webkit ? holdCtrlKey : ( CKEDITOR.env.mac ? domEvent.$.metaKey : domEvent.$.ctrlKey ) ); + + if ( nativeContextMenuOnCtrl && isCtrlKeyDown ) + return; + + // Cancel the browser context menu. + domEvent.preventDefault(); + + var doc = domEvent.getTarget().getDocument(), + offsetParent = domEvent.getTarget().getDocument().getDocumentElement(), + fromFrame = !doc.equals( CKEDITOR.document ), + scroll = doc.getWindow().getScrollPosition(), + offsetX = fromFrame ? domEvent.$.clientX : domEvent.$.pageX || scroll.x + domEvent.$.clientX, + offsetY = fromFrame ? domEvent.$.clientY : domEvent.$.pageY || scroll.y + domEvent.$.clientY; + + CKEDITOR.tools.setTimeout( function() { + this.open( offsetParent, null, offsetX, offsetY ); + + // IE needs a short while to allow selection change before opening menu. (#7908) + }, CKEDITOR.env.ie ? 200 : 0, this ); + }, this ); + + if ( CKEDITOR.env.webkit ) { + var holdCtrlKey, + onKeyDown = function( event ) { + holdCtrlKey = CKEDITOR.env.mac ? event.data.$.metaKey : event.data.$.ctrlKey; + }, + resetOnKeyUp = function() { + holdCtrlKey = 0; + }; + + element.on( 'keydown', onKeyDown ); + element.on( 'keyup', resetOnKeyUp ); + element.on( 'contextmenu', resetOnKeyUp ); + } + }, + + /** + * Opens context menu in given location. See the {@link CKEDITOR.menu#show} method. + * + * @param {CKEDITOR.dom.element} offsetParent + * @param {Number} [corner] + * @param {Number} [offsetX] + * @param {Number} [offsetY] + */ + open: function( offsetParent, corner, offsetX, offsetY ) { + this.editor.focus(); + offsetParent = offsetParent || CKEDITOR.document.getDocumentElement(); + + // #9362: Force selection check to update commands' states in the new context. + this.editor.selectionChange( 1 ); + + this.show( offsetParent, corner, offsetX, offsetY ); + } + } + } ); + }, + + beforeInit: function( editor ) { + /** + * @readonly + * @property {CKEDITOR.plugins.contextMenu} contextMenu + * @member CKEDITOR.editor + */ + var contextMenu = editor.contextMenu = new CKEDITOR.plugins.contextMenu( editor ); + + editor.on( 'contentDom', function() { + contextMenu.addTarget( editor.editable(), editor.config.browserContextMenuOnCtrl !== false ); + } ); + + editor.addCommand( 'contextMenu', { + exec: function() { + editor.contextMenu.open( editor.document.getBody() ); + } + } ); + + editor.setKeystroke( CKEDITOR.SHIFT + 121 /*F10*/, 'contextMenu' ); + editor.setKeystroke( CKEDITOR.CTRL + CKEDITOR.SHIFT + 121 /*F10*/, 'contextMenu' ); + } +} ); + +/** + * Whether to show the browser native context menu when the *Ctrl* or + * *Meta* (Mac) key is pressed on opening the context menu with the + * right mouse button click or the *Menu* key. + * + * config.browserContextMenuOnCtrl = false; + * + * @since 3.0.2 + * @cfg {Boolean} [browserContextMenuOnCtrl=true] + * @member CKEDITOR.config + */ diff --git a/lam/templates/lib/extra/ckeditor/plugins/dialog/dialogDefinition.js b/lam/templates/lib/extra/ckeditor/plugins/dialog/dialogDefinition.js new file mode 100644 index 00000000..9d51fcf0 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/dialog/dialogDefinition.js @@ -0,0 +1,1006 @@ +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +/** + * @fileOverview Defines the "virtual" dialog, dialog content and dialog button + * definition classes. + */ + +/** + * The definition of a dialog window. + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create dialogs. + * + * // There is no constructor for this class, the user just has to define an + * // object with the appropriate properties. + * + * CKEDITOR.dialog.add( 'testOnly', function( editor ) { + * return { + * title: 'Test Dialog', + * resizable: CKEDITOR.DIALOG_RESIZE_BOTH, + * minWidth: 500, + * minHeight: 400, + * contents: [ + * { + * id: 'tab1', + * label: 'First Tab', + * title: 'First Tab Title', + * accessKey: 'Q', + * elements: [ + * { + * type: 'text', + * label: 'Test Text 1', + * id: 'testText1', + * 'default': 'hello world!' + * } + * ] + * } + * ] + * }; + * } ); + * + * @class CKEDITOR.dialog.definition + */ + +/** + * The dialog title, displayed in the dialog's header. Required. + * + * @property {String} title + */ + +/** + * How the dialog can be resized, must be one of the four contents defined below. + * + * * {@link CKEDITOR#DIALOG_RESIZE_NONE} + * * {@link CKEDITOR#DIALOG_RESIZE_WIDTH} + * * {@link CKEDITOR#DIALOG_RESIZE_HEIGHT} + * * {@link CKEDITOR#DIALOG_RESIZE_BOTH} + * + * @property {Number} [resizable=CKEDITOR.DIALOG_RESIZE_NONE] + */ + +/** + * The minimum width of the dialog, in pixels. + * + * @property {Number} [minWidth=600] + */ + +/** + * The minimum height of the dialog, in pixels. + * + * @property {Number} [minHeight=400] + */ + + +/** + * The initial width of the dialog, in pixels. + * + * @since 3.5.3 + * @property {Number} [width=CKEDITOR.dialog.definition#minWidth] + */ + +/** + * The initial height of the dialog, in pixels. + * + * @since 3.5.3 + * @property {Number} [height=CKEDITOR.dialog.definition.minHeight] + */ + +/** + * The buttons in the dialog, defined as an array of + * {@link CKEDITOR.dialog.definition.button} objects. + * + * @property {Array} [buttons=[ CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton ]] + */ + +/** + * The contents in the dialog, defined as an array of + * {@link CKEDITOR.dialog.definition.content} objects. Required. + * + * @property {Array} contents + */ + +/** + * The function to execute when OK is pressed. + * + * @property {Function} onOk + */ + +/** + * The function to execute when Cancel is pressed. + * + * @property {Function} onCancel + */ + +/** + * The function to execute when the dialog is displayed for the first time. + * + * @property {Function} onLoad + */ + +/** + * The function to execute when the dialog is loaded (executed every time the dialog is opened). + * + * @property {Function} onShow + */ + +/** + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create dialog content pages. + * + * @class CKEDITOR.dialog.definition.content. + */ + +/** + * The id of the content page. + * + * @property {String} id + */ + +/** + * The tab label of the content page. + * + * @property {String} label + */ + +/** + * The popup message of the tab label. + * + * @property {String} title + */ + +/** + * The CTRL hotkey for switching to the tab. + * + * contentDefinition.accessKey = 'Q'; // Switch to this page when CTRL-Q is pressed. + * + * @property {String} accessKey + */ + +/** + * The UI elements contained in this content page, defined as an array of + * {@link CKEDITOR.dialog.definition.uiElement} objects. + * + * @property {Array} elements + */ + +/** + * The definition of user interface element (textarea, radio etc). + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create dialog UI elements. + * + * @class CKEDITOR.dialog.definition.uiElement + * @see CKEDITOR.ui.dialog.uiElement + */ + +/** + * The id of the UI element. + * + * @property {String} id + */ + +/** + * The type of the UI element. Required. + * + * @property {String} type + */ + +/** + * The popup label of the UI element. + * + * @property {String} title + */ + +/** + * The content that needs to be allowed to enable this UI element. + * All formats accepted by {@link CKEDITOR.filter#check} may be used. + * + * When all UI elements in a tab are disabled, this tab will be disabled automatically. + * + * @property {String/Object/CKEDITOR.style} requiredContent + */ + +/** + * CSS class names to append to the UI element. + * + * @property {String} className + */ + +/** + * Inline CSS classes to append to the UI element. + * + * @property {String} style + */ + +/** + * Horizontal alignment (in container) of the UI element. + * + * @property {String} align + */ + +/** + * Function to execute the first time the UI element is displayed. + * + * @property {Function} onLoad + */ + +/** + * Function to execute whenever the UI element's parent dialog is displayed. + * + * @property {Function} onShow + */ + +/** + * Function to execute whenever the UI element's parent dialog is closed. + * + * @property {Function} onHide + */ + +/** + * Function to execute whenever the UI element's parent + * dialog's {@link CKEDITOR.dialog#setupContent} method is executed. + * It usually takes care of the respective UI element as a standalone element. + * + * @property {Function} setup + */ + +/** + * Function to execute whenever the UI element's parent + * dialog's {@link CKEDITOR.dialog#commitContent} method is executed. + * It usually takes care of the respective UI element as a standalone element. + * + * @property {Function} commit + */ + +// ----- hbox ----------------------------------------------------------------- + +/** + * Horizontal layout box for dialog UI elements, auto-expends to available width of container. + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create horizontal layouts. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.hbox} object and can be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * // There is no constructor for this class, the user just has to define an + * // object with the appropriate properties. + * + * // Example: + * { + * type: 'hbox', + * widths: [ '25%', '25%', '50%' ], + * children: [ + * { + * type: 'text', + * id: 'id1', + * width: '40px', + * }, + * { + * type: 'text', + * id: 'id2', + * width: '40px', + * }, + * { + * type: 'text', + * id: 'id3' + * } + * ] + * } + * + * @class CKEDITOR.dialog.definition.hbox + * @extends CKEDITOR.dialog.definition.uiElement + */ + +/** + * Array of {@link CKEDITOR.ui.dialog.uiElement} objects inside this container. + * + * @property {Array} children + */ + +/** + * (Optional) The widths of child cells. + * + * @property {Array} widths + */ + +/** + * (Optional) The height of the layout. + * + * @property {Number} height + */ + +/** + * The CSS styles to apply to this element. + * + * @property {String} styles + */ + +/** + * (Optional) The padding width inside child cells. Example: 0, 1. + * + * @property {Number} padding + */ + +/** + * (Optional) The alignment of the whole layout. Example: center, top. + * + * @property {String} align + */ + +// ----- vbox ----------------------------------------------------------------- + +/** + * Vertical layout box for dialog UI elements. + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create vertical layouts. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.vbox} object and can + * be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * // There is no constructor for this class, the user just has to define an + * // object with the appropriate properties. + * + * // Example: + * { + * type: 'vbox', + * align: 'right', + * width: '200px', + * children: [ + * { + * type: 'text', + * id: 'age', + * label: 'Age' + * }, + * { + * type: 'text', + * id: 'sex', + * label: 'Sex' + * }, + * { + * type: 'text', + * id: 'nationality', + * label: 'Nationality' + * } + * ] + * } + * + * @class CKEDITOR.dialog.definition.vbox + * @extends CKEDITOR.dialog.definition.uiElement + */ + +/** + * Array of {@link CKEDITOR.ui.dialog.uiElement} objects inside this container. + * + * @property {Array} children + */ + +/** + * (Optional) The width of the layout. + * + * @property {Array} width + */ + +/** + * (Optional) The heights of individual cells. + * + * @property {Number} heights + */ + +/** + * The CSS styles to apply to this element. + * + * @property {String} styles + */ + +/** + * (Optional) The padding width inside child cells. Example: 0, 1. + * + * @property {Number} padding + */ + +/** + * (Optional) The alignment of the whole layout. Example: center, top. + * + * @property {String} align + */ + +/** + * (Optional) Whether the layout should expand vertically to fill its container. + * + * @property {Boolean} expand + */ + +// ----- labeled element ------------------------------------------------------ + +/** + * The definition of labeled user interface element (textarea, textInput etc). + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create dialog UI elements. + * + * @class CKEDITOR.dialog.definition.labeledElement + * @extends CKEDITOR.dialog.definition.uiElement + * @see CKEDITOR.ui.dialog.labeledElement + */ + +/** + * The label of the UI element. + * + * { + * type: 'text', + * label: 'My Label' + * } + * + * @property {String} label + */ + +/** + * (Optional) Specify the layout of the label. Set to `'horizontal'` for horizontal layout. + * The default layout is vertical. + * + * { + * type: 'text', + * label: 'My Label', + * labelLayout: 'horizontal' + * } + * + * @property {String} labelLayout + */ + +/** + * (Optional) Applies only to horizontal layouts: a two elements array of lengths to specify the widths of the + * label and the content element. See also {@link CKEDITOR.dialog.definition.labeledElement#labelLayout}. + * + * { + * type: 'text', + * label: 'My Label', + * labelLayout: 'horizontal', + * widths: [100, 200] + * } + * + * @property {Array} widths + */ + +/** + * Specify the inline style of the uiElement label. + * + * { + * type: 'text', + * label: 'My Label', + * labelStyle: 'color: red' + * } + * + * @property {String} labelStyle + */ + + +/** + * Specify the inline style of the input element. + * + * { + * type: 'text', + * label: 'My Label', + * inputStyle: 'text-align: center' + * } + * + * @since 3.6.1 + * @property {String} inputStyle + */ + +/** + * Specify the inline style of the input element container. + * + * { + * type: 'text', + * label: 'My Label', + * controlStyle: 'width: 3em' + * } + * + * @since 3.6.1 + * @property {String} controlStyle + */ + +// ----- button --------------------------------------------------------------- + +/** + * The definition of a button. + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create buttons. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.button} object + * and can be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}. + * + * // There is no constructor for this class, the user just has to define an + * // object with the appropriate properties. + * + * // Example: + * { + * type: 'button', + * id: 'buttonId', + * label: 'Click me', + * title: 'My title', + * onClick: function() { + * // this = CKEDITOR.ui.dialog.button + * alert( 'Clicked: ' + this.id ); + * } + * } + * + * @class CKEDITOR.dialog.definition.button + * @extends CKEDITOR.dialog.definition.uiElement + */ + +/** + * Whether the button is disabled. + * + * @property {Boolean} disabled + */ + +/** + * The label of the UI element. + * + * @property {String} label + */ + +// ----- checkbox ------ +/** + * The definition of a checkbox element. + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create groups of checkbox buttons. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.checkbox} object + * and can be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}. + * + * // There is no constructor for this class, the user just has to define an + * // object with the appropriate properties. + * + * // Example: + * { + * type: 'checkbox', + * id: 'agree', + * label: 'I agree', + * 'default': 'checked', + * onClick: function() { + * // this = CKEDITOR.ui.dialog.checkbox + * alert( 'Checked: ' + this.getValue() ); + * } + * } + * + * @class CKEDITOR.dialog.definition.checkbox + * @extends CKEDITOR.dialog.definition.uiElement + */ + +/** + * (Optional) The validation function. + * + * @property {Function} validate + */ + +/** + * The label of the UI element. + * + * @property {String} label + */ + +/** + * The default state. + * + * @property {String} [default='' (unchecked)] + */ + +// ----- file ----------------------------------------------------------------- + +/** + * The definition of a file upload input. + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create file upload elements. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.file} object + * and can be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}. + * + * // There is no constructor for this class, the user just has to define an + * // object with the appropriate properties. + * + * // Example: + * { + * type: 'file', + * id: 'upload', + * label: 'Select file from your computer', + * size: 38 + * }, + * { + * type: 'fileButton', + * id: 'fileId', + * label: 'Upload file', + * 'for': [ 'tab1', 'upload' ], + * filebrowser: { + * onSelect: function( fileUrl, data ) { + * alert( 'Successfully uploaded: ' + fileUrl ); + * } + * } + * } + * + * @class CKEDITOR.dialog.definition.file + * @extends CKEDITOR.dialog.definition.labeledElement + */ + +/** + * (Optional) The validation function. + * + * @property {Function} validate + */ + +/** + * (Optional) The action attribute of the form element associated with this file upload input. + * If empty, CKEditor will use path to server connector for currently opened folder. + * + * @property {String} action + */ + +/** + * The size of the UI element. + * + * @property {Number} size + */ + +// ----- fileButton ----------------------------------------------------------- + +/** + * The definition of a button for submitting the file in a file upload input. + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create a button for submitting the file in a file upload input. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.fileButton} object + * and can be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}. + * + * @class CKEDITOR.dialog.definition.fileButton + * @extends CKEDITOR.dialog.definition.uiElement + */ + +/** + * (Optional) The validation function. + * + * @property {Function} validate + */ + +/** + * The label of the UI element. + * + * @property {String} label + */ + +/** + * The instruction for CKEditor how to deal with file upload. + * By default, the file and fileButton elements will not work "as expected" if this attribute is not set. + * + * // Update field with id 'txtUrl' in the 'tab1' tab when file is uploaded. + * filebrowser: 'tab1:txtUrl' + * + * // Call custom onSelect function when file is successfully uploaded. + * filebrowser: { + * onSelect: function( fileUrl, data ) { + * alert( 'Successfully uploaded: ' + fileUrl ); + * } + * } + * + * @property {String} filebrowser/Object + */ + +/** + * An array that contains pageId and elementId of the file upload input element for which this button is created. + * + * [ pageId, elementId ] + * + * @property {String} for + */ + +// ----- html ----------------------------------------------------------------- + +/** + * The definition of a raw HTML element. + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create elements made from raw HTML code. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.html} object + * and can be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}. + * To access HTML elements use {@link CKEDITOR.dom.document#getById}. + * + * // There is no constructor for this class, the user just has to define an + * // object with the appropriate properties. + * + * // Example 1: + * { + * type: 'html', + * html: '

    This is some sample HTML content.

    ' + * } + * + * // Example 2: + * // Complete sample with document.getById() call when the "Ok" button is clicked. + * var dialogDefinition = { + * title: 'Sample dialog', + * minWidth: 300, + * minHeight: 200, + * onOk: function() { + * // "this" is now a CKEDITOR.dialog object. + * var document = this.getElement().getDocument(); + * // document = CKEDITOR.dom.document + * var element = document.getById( 'myDiv' ); + * if ( element ) + * alert( element.getHtml() ); + * }, + * contents: [ + * { + * id: 'tab1', + * label: '', + * title: '', + * elements: [ + * { + * type: 'html', + * html: '
    Sample text.
    Another div.
    ' + * } + * ] + * } + * ], + * buttons: [ CKEDITOR.dialog.cancelButton, CKEDITOR.dialog.okButton ] + * }; + * + * @class CKEDITOR.dialog.definition.html + * @extends CKEDITOR.dialog.definition.uiElement + */ + +/** + * (Required) HTML code of this element. + * + * @property {String} html + */ + +// ----- radio ---------------------------------------------------------------- + +/** + * The definition of a radio group. + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create groups of radio buttons. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.radio} object + * and can be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}. + * + * // There is no constructor for this class, the user just has to define an + * // object with the appropriate properties. + * + * // Example: + * { + * type: 'radio', + * id: 'country', + * label: 'Which country is bigger', + * items: [ [ 'France', 'FR' ], [ 'Germany', 'DE' ] ], + * style: 'color: green', + * 'default': 'DE', + * onClick: function() { + * // this = CKEDITOR.ui.dialog.radio + * alert( 'Current value: ' + this.getValue() ); + * } + * } + * + * @class CKEDITOR.dialog.definition.radio + * @extends CKEDITOR.dialog.definition.labeledElement + */ + +/** + * The default value. + * + * @property {String} default + */ + +/** + * (Optional) The validation function. + * + * @property {Function} validate + */ + +/** + * An array of options. Each option is a 1- or 2-item array of format `[ 'Description', 'Value' ]`. + * If `'Value'` is missing, then the value would be assumed to be the same as the description. + * + * @property {Array} items + */ + +// ----- selectElement -------------------------------------------------------- + +/** + * The definition of a select element. + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create select elements. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.select} object + * and can be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}. + * + * // There is no constructor for this class, the user just has to define an + * // object with the appropriate properties. + * + * // Example: + * { + * type: 'select', + * id: 'sport', + * label: 'Select your favourite sport', + * items: [ [ 'Basketball' ], [ 'Baseball' ], [ 'Hockey' ], [ 'Football' ] ], + * 'default': 'Football', + * onChange: function( api ) { + * // this = CKEDITOR.ui.dialog.select + * alert( 'Current value: ' + this.getValue() ); + * } + * } + * + * @class CKEDITOR.dialog.definition.select + * @extends CKEDITOR.dialog.definition.labeledElement + */ + +/** + * The default value. + * + * @property {String} default + */ + +/** + * (Optional) The validation function. + * + * @property {Function} validate + */ + +/** + * An array of options. Each option is a 1- or 2-item array of format `[ 'Description', 'Value' ]`. + * If `'Value'` is missing, then the value would be assumed to be the same as the description. + * + * @property {Array} items + */ + +/** + * (Optional) Set this to true if you'd like to have a multiple-choice select box. + * + * @property {Boolean} [multiple=false] + */ + +/** + * (Optional) The number of items to display in the select box. + * + * @property {Number} size + */ + +// ----- textInput ------------------------------------------------------------ + +/** + * The definition of a text field (single line). + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create text fields. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.textInput} object + * and can be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}. + * + * // There is no constructor for this class, the user just has to define an + * // object with the appropriate properties. + * + * { + * type: 'text', + * id: 'name', + * label: 'Your name', + * 'default': '', + * validate: function() { + * if ( !this.getValue() ) { + * api.openMsgDialog( '', 'Name cannot be empty.' ); + * return false; + * } + * } + * } + * + * @class CKEDITOR.dialog.definition.textInput + * @extends CKEDITOR.dialog.definition.labeledElement + */ + +/** + * The default value. + * + * @property {String} default + */ + +/** + * (Optional) The maximum length. + * + * @property {Number} maxLength + */ + +/** + * (Optional) The size of the input field. + * + * @property {Number} size + */ + +/** + * (Optional) The validation function. + * + * @property {Function} validate + */ + +// ----- textarea ------------------------------------------------------------- + +/** + * The definition of a text field (multiple lines). + * + * This class is not really part of the API. It just illustrates the properties + * that developers can use to define and create textarea. + * + * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.textarea} object + * and can be accessed with {@link CKEDITOR.dialog#getContentElement}. + * + * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}. + * +* // There is no constructor for this class, the user just has to define an +* // object with the appropriate properties. +* +* // Example: +* { +* type: 'textarea', +* id: 'message', +* label: 'Your comment', +* 'default': '', +* validate: function() { +* if ( this.getValue().length < 5 ) { +* api.openMsgDialog( 'The comment is too short.' ); +* return false; +* } +* } +* } + * + * @class CKEDITOR.dialog.definition.textarea + * @extends CKEDITOR.dialog.definition.labeledElement + */ + +/** + * The number of rows. + * + * @property {Number} rows + */ + +/** + * The number of columns. + * + * @property {Number} cols + */ + +/** + * (Optional) The validation function. + * + * @property {Function} validate + */ + +/** + * The default value. + * + * @property {String} default + */ diff --git a/lam/templates/lib/extra/ckeditor/plugins/dialog/plugin.js b/lam/templates/lib/extra/ckeditor/plugins/dialog/plugin.js new file mode 100644 index 00000000..c848eb38 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/dialog/plugin.js @@ -0,0 +1,3267 @@ +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +/** + * @fileOverview The floating dialog plugin. + */ + +/** + * No resize for this dialog. + * + * @readonly + * @property {Number} [=0] + * @member CKEDITOR + */ +CKEDITOR.DIALOG_RESIZE_NONE = 0; + +/** + * Only allow horizontal resizing for this dialog, disable vertical resizing. + * + * @readonly + * @property {Number} [=1] + * @member CKEDITOR + */ +CKEDITOR.DIALOG_RESIZE_WIDTH = 1; + +/** + * Only allow vertical resizing for this dialog, disable horizontal resizing. + * + * @readonly + * @property {Number} [=2] + * @member CKEDITOR + */ +CKEDITOR.DIALOG_RESIZE_HEIGHT = 2; + +/** + * Allow the dialog to be resized in both directions. + * + * @readonly + * @property {Number} [=3] + * @member CKEDITOR + */ +CKEDITOR.DIALOG_RESIZE_BOTH = 3; + +( function() { + var cssLength = CKEDITOR.tools.cssLength; + + function isTabVisible( tabId ) { + return !!this._.tabs[ tabId ][ 0 ].$.offsetHeight; + } + + function getPreviousVisibleTab() { + var tabId = this._.currentTabId, + length = this._.tabIdList.length, + tabIndex = CKEDITOR.tools.indexOf( this._.tabIdList, tabId ) + length; + + for ( var i = tabIndex - 1; i > tabIndex - length; i-- ) { + if ( isTabVisible.call( this, this._.tabIdList[ i % length ] ) ) + return this._.tabIdList[ i % length ]; + } + + return null; + } + + function getNextVisibleTab() { + var tabId = this._.currentTabId, + length = this._.tabIdList.length, + tabIndex = CKEDITOR.tools.indexOf( this._.tabIdList, tabId ); + + for ( var i = tabIndex + 1; i < tabIndex + length; i++ ) { + if ( isTabVisible.call( this, this._.tabIdList[ i % length ] ) ) + return this._.tabIdList[ i % length ]; + } + + return null; + } + + + function clearOrRecoverTextInputValue( container, isRecover ) { + var inputs = container.$.getElementsByTagName( 'input' ); + for ( var i = 0, length = inputs.length; i < length; i++ ) { + var item = new CKEDITOR.dom.element( inputs[ i ] ); + + if ( item.getAttribute( 'type' ).toLowerCase() == 'text' ) { + if ( isRecover ) { + item.setAttribute( 'value', item.getCustomData( 'fake_value' ) || '' ); + item.removeCustomData( 'fake_value' ); + } else { + item.setCustomData( 'fake_value', item.getAttribute( 'value' ) ); + item.setAttribute( 'value', '' ); + } + } + } + } + + // Handle dialog element validation state UI changes. + function handleFieldValidated( isValid, msg ) { + var input = this.getInputElement(); + if ( input ) + isValid ? input.removeAttribute( 'aria-invalid' ) : input.setAttribute( 'aria-invalid', true ); + + if ( !isValid ) { + if ( this.select ) + this.select(); + else + this.focus(); + } + + msg && alert( msg ); + + this.fire( 'validated', { valid: isValid, msg: msg } ); + } + + function resetField() { + var input = this.getInputElement(); + input && input.removeAttribute( 'aria-invalid' ); + } + + var templateSource = ''; + + function buildDialog( editor ) { + var element = CKEDITOR.dom.element.createFromHtml( CKEDITOR.addTemplate( 'dialog', templateSource ).output( { + id: CKEDITOR.tools.getNextNumber(), + editorId: editor.id, + langDir: editor.lang.dir, + langCode: editor.langCode, + editorDialogClass: 'cke_editor_' + editor.name.replace( /\./g, '\\.' ) + '_dialog', + closeTitle: editor.lang.common.close, + hidpi: CKEDITOR.env.hidpi ? 'cke_hidpi' : '' + } ) ); + + // TODO: Change this to getById(), so it'll support custom templates. + var body = element.getChild( [ 0, 0, 0, 0, 0 ] ), + title = body.getChild( 0 ), + close = body.getChild( 1 ); + + // IFrame shim for dialog that masks activeX in IE. (#7619) + if ( CKEDITOR.env.ie && !CKEDITOR.env.ie6Compat ) { + var src = 'javascript:void(function(){' + encodeURIComponent( 'document.open();(' + CKEDITOR.tools.fixDomain + ')();document.close();' ) + '}())', + iframe = CKEDITOR.dom.element.createFromHtml( '' ); + iframe.appendTo( body.getParent() ); + } + + // Make the Title and Close Button unselectable. + title.unselectable(); + close.unselectable(); + + return { + element: element, + parts: { + dialog: element.getChild( 0 ), + title: title, + close: close, + tabs: body.getChild( 2 ), + contents: body.getChild( [ 3, 0, 0, 0 ] ), + footer: body.getChild( [ 3, 0, 1, 0 ] ) + } + }; + } + + /** + * This is the base class for runtime dialog objects. An instance of this + * class represents a single named dialog for a single editor instance. + * + * var dialogObj = new CKEDITOR.dialog( editor, 'smiley' ); + * + * @class + * @constructor Creates a dialog class instance. + * @param {Object} editor The editor which created the dialog. + * @param {String} dialogName The dialog's registered name. + */ + CKEDITOR.dialog = function( editor, dialogName ) { + // Load the dialog definition. + var definition = CKEDITOR.dialog._.dialogDefinitions[ dialogName ], + defaultDefinition = CKEDITOR.tools.clone( defaultDialogDefinition ), + buttonsOrder = editor.config.dialog_buttonsOrder || 'OS', + dir = editor.lang.dir, + tabsToRemove = {}, + i, processed, stopPropagation; + + if ( ( buttonsOrder == 'OS' && CKEDITOR.env.mac ) || // The buttons in MacOS Apps are in reverse order (#4750) + ( buttonsOrder == 'rtl' && dir == 'ltr' ) || ( buttonsOrder == 'ltr' && dir == 'rtl' ) ) + defaultDefinition.buttons.reverse(); + + + // Completes the definition with the default values. + definition = CKEDITOR.tools.extend( definition( editor ), defaultDefinition ); + + // Clone a functionally independent copy for this dialog. + definition = CKEDITOR.tools.clone( definition ); + + // Create a complex definition object, extending it with the API + // functions. + definition = new definitionObject( this, definition ); + + var doc = CKEDITOR.document; + + var themeBuilt = buildDialog( editor ); + + // Initialize some basic parameters. + this._ = { + editor: editor, + element: themeBuilt.element, + name: dialogName, + contentSize: { width: 0, height: 0 }, + size: { width: 0, height: 0 }, + contents: {}, + buttons: {}, + accessKeyMap: {}, + + // Initialize the tab and page map. + tabs: {}, + tabIdList: [], + currentTabId: null, + currentTabIndex: null, + pageCount: 0, + lastTab: null, + tabBarMode: false, + + // Initialize the tab order array for input widgets. + focusList: [], + currentFocusIndex: 0, + hasFocus: false + }; + + this.parts = themeBuilt.parts; + + CKEDITOR.tools.setTimeout( function() { + editor.fire( 'ariaWidget', this.parts.contents ); + }, 0, this ); + + // Set the startup styles for the dialog, avoiding it enlarging the + // page size on the dialog creation. + var startStyles = { + position: CKEDITOR.env.ie6Compat ? 'absolute' : 'fixed', + top: 0, + visibility: 'hidden' + }; + + startStyles[ dir == 'rtl' ? 'right' : 'left' ] = 0; + this.parts.dialog.setStyles( startStyles ); + + + // Call the CKEDITOR.event constructor to initialize this instance. + CKEDITOR.event.call( this ); + + // Fire the "dialogDefinition" event, making it possible to customize + // the dialog definition. + this.definition = definition = CKEDITOR.fire( 'dialogDefinition', { + name: dialogName, + definition: definition + }, editor ).definition; + + // Cache tabs that should be removed. + if ( !( 'removeDialogTabs' in editor._ ) && editor.config.removeDialogTabs ) { + var removeContents = editor.config.removeDialogTabs.split( ';' ); + + for ( i = 0; i < removeContents.length; i++ ) { + var parts = removeContents[ i ].split( ':' ); + if ( parts.length == 2 ) { + var removeDialogName = parts[ 0 ]; + if ( !tabsToRemove[ removeDialogName ] ) + tabsToRemove[ removeDialogName ] = []; + tabsToRemove[ removeDialogName ].push( parts[ 1 ] ); + } + } + editor._.removeDialogTabs = tabsToRemove; + } + + // Remove tabs of this dialog. + if ( editor._.removeDialogTabs && ( tabsToRemove = editor._.removeDialogTabs[ dialogName ] ) ) { + for ( i = 0; i < tabsToRemove.length; i++ ) + definition.removeContents( tabsToRemove[ i ] ); + } + + // Initialize load, show, hide, ok and cancel events. + if ( definition.onLoad ) + this.on( 'load', definition.onLoad ); + + if ( definition.onShow ) + this.on( 'show', definition.onShow ); + + if ( definition.onHide ) + this.on( 'hide', definition.onHide ); + + if ( definition.onOk ) { + this.on( 'ok', function( evt ) { + // Dialog confirm might probably introduce content changes (#5415). + editor.fire( 'saveSnapshot' ); + setTimeout( function() { + editor.fire( 'saveSnapshot' ); + }, 0 ); + if ( definition.onOk.call( this, evt ) === false ) + evt.data.hide = false; + } ); + } + + if ( definition.onCancel ) { + this.on( 'cancel', function( evt ) { + if ( definition.onCancel.call( this, evt ) === false ) + evt.data.hide = false; + } ); + } + + var me = this; + + // Iterates over all items inside all content in the dialog, calling a + // function for each of them. + var iterContents = function( func ) { + var contents = me._.contents, + stop = false; + + for ( var i in contents ) { + for ( var j in contents[ i ] ) { + stop = func.call( this, contents[ i ][ j ] ); + if ( stop ) + return; + } + } + }; + + this.on( 'ok', function( evt ) { + iterContents( function( item ) { + if ( item.validate ) { + var retval = item.validate( this ), + invalid = typeof( retval ) == 'string' || retval === false; + + if ( invalid ) { + evt.data.hide = false; + evt.stop(); + } + + handleFieldValidated.call( item, !invalid, typeof retval == 'string' ? retval : undefined ); + return invalid; + } + } ); + }, this, null, 0 ); + + this.on( 'cancel', function( evt ) { + iterContents( function( item ) { + if ( item.isChanged() ) { + if ( !editor.config.dialog_noConfirmCancel && !confirm( editor.lang.common.confirmCancel ) ) + evt.data.hide = false; + return true; + } + } ); + }, this, null, 0 ); + + this.parts.close.on( 'click', function( evt ) { + if ( this.fire( 'cancel', { hide: true } ).hide !== false ) + this.hide(); + evt.data.preventDefault(); + }, this ); + + // Sort focus list according to tab order definitions. + function setupFocus() { + var focusList = me._.focusList; + focusList.sort( function( a, b ) { + // Mimics browser tab order logics; + if ( a.tabIndex != b.tabIndex ) + return b.tabIndex - a.tabIndex; + // Sort is not stable in some browsers, + // fall-back the comparator to 'focusIndex'; + else + return a.focusIndex - b.focusIndex; + } ); + + var size = focusList.length; + for ( var i = 0; i < size; i++ ) + focusList[ i ].focusIndex = i; + } + + function changeFocus( offset ) { + var focusList = me._.focusList; + offset = offset || 0; + + if ( focusList.length < 1 ) + return; + + var current = me._.currentFocusIndex; + + // Trigger the 'blur' event of any input element before anything, + // since certain UI updates may depend on it. + try { + focusList[ current ].getInputElement().$.blur(); + } catch ( e ) {} + + var startIndex = ( current + offset + focusList.length ) % focusList.length, + currentIndex = startIndex; + while ( offset && !focusList[ currentIndex ].isFocusable() ) { + currentIndex = ( currentIndex + offset + focusList.length ) % focusList.length; + if ( currentIndex == startIndex ) + break; + } + + focusList[ currentIndex ].focus(); + + // Select whole field content. + if ( focusList[ currentIndex ].type == 'text' ) + focusList[ currentIndex ].select(); + } + + this.changeFocus = changeFocus; + + + function keydownHandler( evt ) { + // If I'm not the top dialog, ignore. + if ( me != CKEDITOR.dialog._.currentTop ) + return; + + var keystroke = evt.data.getKeystroke(), + rtl = editor.lang.dir == 'rtl', + button; + + processed = stopPropagation = 0; + + if ( keystroke == 9 || keystroke == CKEDITOR.SHIFT + 9 ) { + var shiftPressed = ( keystroke == CKEDITOR.SHIFT + 9 ); + + // Handling Tab and Shift-Tab. + if ( me._.tabBarMode ) { + // Change tabs. + var nextId = shiftPressed ? getPreviousVisibleTab.call( me ) : getNextVisibleTab.call( me ); + me.selectPage( nextId ); + me._.tabs[ nextId ][ 0 ].focus(); + } else { + // Change the focus of inputs. + changeFocus( shiftPressed ? -1 : 1 ); + } + + processed = 1; + } else if ( keystroke == CKEDITOR.ALT + 121 && !me._.tabBarMode && me.getPageCount() > 1 ) { + // Alt-F10 puts focus into the current tab item in the tab bar. + me._.tabBarMode = true; + me._.tabs[ me._.currentTabId ][ 0 ].focus(); + processed = 1; + } else if ( ( keystroke == 37 || keystroke == 39 ) && me._.tabBarMode ) { + // Arrow keys - used for changing tabs. + nextId = ( keystroke == ( rtl ? 39 : 37 ) ? getPreviousVisibleTab.call( me ) : getNextVisibleTab.call( me ) ); + me.selectPage( nextId ); + me._.tabs[ nextId ][ 0 ].focus(); + processed = 1; + } else if ( ( keystroke == 13 || keystroke == 32 ) && me._.tabBarMode ) { + this.selectPage( this._.currentTabId ); + this._.tabBarMode = false; + this._.currentFocusIndex = -1; + changeFocus( 1 ); + processed = 1; + } + // If user presses enter key in a text box, it implies clicking OK for the dialog. + else if ( keystroke == 13 /*ENTER*/ ) { + // Don't do that for a target that handles ENTER. + var target = evt.data.getTarget(); + if ( !target.is( 'a', 'button', 'select', 'textarea' ) && ( !target.is( 'input' ) || target.$.type != 'button' ) ) { + button = this.getButton( 'ok' ); + button && CKEDITOR.tools.setTimeout( button.click, 0, button ); + processed = 1; + } + stopPropagation = 1; // Always block the propagation (#4269) + } else if ( keystroke == 27 /*ESC*/ ) { + button = this.getButton( 'cancel' ); + + // If there's a Cancel button, click it, else just fire the cancel event and hide the dialog. + if ( button ) + CKEDITOR.tools.setTimeout( button.click, 0, button ); + else { + if ( this.fire( 'cancel', { hide: true } ).hide !== false ) + this.hide(); + } + stopPropagation = 1; // Always block the propagation (#4269) + } else + return; + + keypressHandler( evt ); + } + + function keypressHandler( evt ) { + if ( processed ) + evt.data.preventDefault( 1 ); + else if ( stopPropagation ) + evt.data.stopPropagation(); + } + + var dialogElement = this._.element; + + editor.focusManager.add( dialogElement, 1 ); + + // Add the dialog keyboard handlers. + this.on( 'show', function() { + dialogElement.on( 'keydown', keydownHandler, this ); + + // Some browsers instead, don't cancel key events in the keydown, but in the + // keypress. So we must do a longer trip in those cases. (#4531,#8985) + if ( CKEDITOR.env.opera || CKEDITOR.env.gecko ) + dialogElement.on( 'keypress', keypressHandler, this ); + + } ); + this.on( 'hide', function() { + dialogElement.removeListener( 'keydown', keydownHandler ); + if ( CKEDITOR.env.opera || CKEDITOR.env.gecko ) + dialogElement.removeListener( 'keypress', keypressHandler ); + + // Reset fields state when closing dialog. + iterContents( function( item ) { + resetField.apply( item ); + } ); + } ); + this.on( 'iframeAdded', function( evt ) { + var doc = new CKEDITOR.dom.document( evt.data.iframe.$.contentWindow.document ); + doc.on( 'keydown', keydownHandler, this, null, 0 ); + } ); + + // Auto-focus logic in dialog. + this.on( 'show', function() { + // Setup tabIndex on showing the dialog instead of on loading + // to allow dynamic tab order happen in dialog definition. + setupFocus(); + + if ( editor.config.dialog_startupFocusTab && me._.pageCount > 1 ) { + me._.tabBarMode = true; + me._.tabs[ me._.currentTabId ][ 0 ].focus(); + } else if ( !this._.hasFocus ) { + this._.currentFocusIndex = -1; + + // Decide where to put the initial focus. + if ( definition.onFocus ) { + var initialFocus = definition.onFocus.call( this ); + // Focus the field that the user specified. + initialFocus && initialFocus.focus(); + } + // Focus the first field in layout order. + else + changeFocus( 1 ); + } + }, this, null, 0xffffffff ); + + // IE6 BUG: Text fields and text areas are only half-rendered the first time the dialog appears in IE6 (#2661). + // This is still needed after [2708] and [2709] because text fields in hidden TR tags are still broken. + if ( CKEDITOR.env.ie6Compat ) { + this.on( 'load', function( evt ) { + var outer = this.getElement(), + inner = outer.getFirst(); + inner.remove(); + inner.appendTo( outer ); + }, this ); + } + + initDragAndDrop( this ); + initResizeHandles( this ); + + // Insert the title. + ( new CKEDITOR.dom.text( definition.title, CKEDITOR.document ) ).appendTo( this.parts.title ); + + // Insert the tabs and contents. + for ( i = 0; i < definition.contents.length; i++ ) { + var page = definition.contents[ i ]; + page && this.addPage( page ); + } + + this.parts[ 'tabs' ].on( 'click', function( evt ) { + var target = evt.data.getTarget(); + // If we aren't inside a tab, bail out. + if ( target.hasClass( 'cke_dialog_tab' ) ) { + // Get the ID of the tab, without the 'cke_' prefix and the unique number suffix. + var id = target.$.id; + this.selectPage( id.substring( 4, id.lastIndexOf( '_' ) ) ); + + if ( this._.tabBarMode ) { + this._.tabBarMode = false; + this._.currentFocusIndex = -1; + changeFocus( 1 ); + } + evt.data.preventDefault(); + } + }, this ); + + // Insert buttons. + var buttonsHtml = [], + buttons = CKEDITOR.dialog._.uiElementBuilders.hbox.build( this, { + type: 'hbox', + className: 'cke_dialog_footer_buttons', + widths: [], + children: definition.buttons + }, buttonsHtml ).getChild(); + this.parts.footer.setHtml( buttonsHtml.join( '' ) ); + + for ( i = 0; i < buttons.length; i++ ) + this._.buttons[ buttons[ i ].id ] = buttons[ i ]; + }; + + // Focusable interface. Use it via dialog.addFocusable. + function Focusable( dialog, element, index ) { + this.element = element; + this.focusIndex = index; + // TODO: support tabIndex for focusables. + this.tabIndex = 0; + this.isFocusable = function() { + return !element.getAttribute( 'disabled' ) && element.isVisible(); + }; + this.focus = function() { + dialog._.currentFocusIndex = this.focusIndex; + this.element.focus(); + }; + // Bind events + element.on( 'keydown', function( e ) { + if ( e.data.getKeystroke() in { 32: 1, 13: 1 } ) + this.fire( 'click' ); + } ); + element.on( 'focus', function() { + this.fire( 'mouseover' ); + } ); + element.on( 'blur', function() { + this.fire( 'mouseout' ); + } ); + } + + // Re-layout the dialog on window resize. + function resizeWithWindow( dialog ) { + var win = CKEDITOR.document.getWindow(); + function resizeHandler() { dialog.layout(); } + win.on( 'resize', resizeHandler ); + dialog.on( 'hide', function() { win.removeListener( 'resize', resizeHandler ); } ); + } + + CKEDITOR.dialog.prototype = { + destroy: function() { + this.hide(); + this._.element.remove(); + }, + + /** + * Resizes the dialog. + * + * dialogObj.resize( 800, 640 ); + * + * @method + * @param {Number} width The width of the dialog in pixels. + * @param {Number} height The height of the dialog in pixels. + */ + resize: ( function() { + return function( width, height ) { + if ( this._.contentSize && this._.contentSize.width == width && this._.contentSize.height == height ) + return; + + CKEDITOR.dialog.fire( 'resize', { + dialog: this, + width: width, + height: height + }, this._.editor ); + + this.fire( 'resize', { + width: width, + height: height + }, this._.editor ); + + var contents = this.parts.contents; + contents.setStyles( { + width: width + 'px', + height: height + 'px' + } ); + + // Update dialog position when dimension get changed in RTL. + if ( this._.editor.lang.dir == 'rtl' && this._.position ) + this._.position.x = CKEDITOR.document.getWindow().getViewPaneSize().width - this._.contentSize.width - parseInt( this._.element.getFirst().getStyle( 'right' ), 10 ); + + this._.contentSize = { width: width, height: height }; + }; + } )(), + + /** + * Gets the current size of the dialog in pixels. + * + * var width = dialogObj.getSize().width; + * + * @returns {Object} + * @returns {Number} return.width + * @returns {Number} return.height + */ + getSize: function() { + var element = this._.element.getFirst(); + return { width: element.$.offsetWidth || 0, height: element.$.offsetHeight || 0 }; + }, + + /** + * Moves the dialog to an `(x, y)` coordinate relative to the window. + * + * dialogObj.move( 10, 40 ); + * + * @method + * @param {Number} x The target x-coordinate. + * @param {Number} y The target y-coordinate. + * @param {Boolean} save Flag indicate whether the dialog position should be remembered on next open up. + */ + move: function( x, y, save ) { + + // The dialog may be fixed positioned or absolute positioned. Ask the + // browser what is the current situation first. + var element = this._.element.getFirst(), rtl = this._.editor.lang.dir == 'rtl'; + var isFixed = element.getComputedStyle( 'position' ) == 'fixed'; + + // (#8888) In some cases of a very small viewport, dialog is incorrectly + // positioned in IE7. It also happens that it remains sticky and user cannot + // scroll down/up to reveal dialog's content below/above the viewport; this is + // cumbersome. + // The only way to fix this is to move mouse out of the browser and + // go back to see that dialog position is automagically fixed. No events, + // no style change - pure magic. This is a IE7 rendering issue, which can be + // fixed with dummy style redraw on each move. + if ( CKEDITOR.env.ie ) + element.setStyle( 'zoom', '100%' ); + + if ( isFixed && this._.position && this._.position.x == x && this._.position.y == y ) + return; + + // Save the current position. + this._.position = { x: x, y: y }; + + // If not fixed positioned, add scroll position to the coordinates. + if ( !isFixed ) { + var scrollPosition = CKEDITOR.document.getWindow().getScrollPosition(); + x += scrollPosition.x; + y += scrollPosition.y; + } + + // Translate coordinate for RTL. + if ( rtl ) { + var dialogSize = this.getSize(), viewPaneSize = CKEDITOR.document.getWindow().getViewPaneSize(); + x = viewPaneSize.width - dialogSize.width - x; + } + + var styles = { 'top': ( y > 0 ? y : 0 ) + 'px' }; + styles[ rtl ? 'right' : 'left' ] = ( x > 0 ? x : 0 ) + 'px'; + + element.setStyles( styles ); + + save && ( this._.moved = 1 ); + }, + + /** + * Gets the dialog's position in the window. + * + * var dialogX = dialogObj.getPosition().x; + * + * @returns {Object} + * @returns {Number} return.x + * @returns {Number} return.y + */ + getPosition: function() { + return CKEDITOR.tools.extend( {}, this._.position ); + }, + + /** + * Shows the dialog box. + * + * dialogObj.show(); + */ + show: function() { + // Insert the dialog's element to the root document. + var element = this._.element; + var definition = this.definition; + if ( !( element.getParent() && element.getParent().equals( CKEDITOR.document.getBody() ) ) ) + element.appendTo( CKEDITOR.document.getBody() ); + else + element.setStyle( 'display', 'block' ); + + // FIREFOX BUG: Fix vanishing caret for Firefox 2 or Gecko 1.8. + if ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) { + var dialogElement = this.parts.dialog; + dialogElement.setStyle( 'position', 'absolute' ); + setTimeout( function() { + dialogElement.setStyle( 'position', 'fixed' ); + }, 0 ); + } + + + // First, set the dialog to an appropriate size. + this.resize( this._.contentSize && this._.contentSize.width || definition.width || definition.minWidth, this._.contentSize && this._.contentSize.height || definition.height || definition.minHeight ); + + // Reset all inputs back to their default value. + this.reset(); + + // Select the first tab by default. + this.selectPage( this.definition.contents[ 0 ].id ); + + // Set z-index. + if ( CKEDITOR.dialog._.currentZIndex === null ) + CKEDITOR.dialog._.currentZIndex = this._.editor.config.baseFloatZIndex; + this._.element.getFirst().setStyle( 'z-index', CKEDITOR.dialog._.currentZIndex += 10 ); + + // Maintain the dialog ordering and dialog cover. + if ( CKEDITOR.dialog._.currentTop === null ) { + CKEDITOR.dialog._.currentTop = this; + this._.parentDialog = null; + showCover( this._.editor ); + + } else { + this._.parentDialog = CKEDITOR.dialog._.currentTop; + var parentElement = this._.parentDialog.getElement().getFirst(); + parentElement.$.style.zIndex -= Math.floor( this._.editor.config.baseFloatZIndex / 2 ); + CKEDITOR.dialog._.currentTop = this; + } + + element.on( 'keydown', accessKeyDownHandler ); + element.on( CKEDITOR.env.opera ? 'keypress' : 'keyup', accessKeyUpHandler ); + + // Reset the hasFocus state. + this._.hasFocus = false; + + for ( var i in definition.contents ) { + if ( !definition.contents[ i ] ) + continue; + + var content = definition.contents[ i ], + tab = this._.tabs[ content.id ], + requiredContent = content.requiredContent, + enableElements = 0; + + if ( !tab ) + continue; + + for ( var j in this._.contents[ content.id ] ) { + var elem = this._.contents[ content.id ][ j ]; + + if ( elem.type == 'hbox' || elem.type == 'vbox' || !elem.getInputElement() ) + continue; + + if ( elem.requiredContent && !this._.editor.activeFilter.check( elem.requiredContent ) ) + elem.disable(); + else { + elem.enable(); + enableElements++; + } + } + + if ( !enableElements || ( requiredContent && !this._.editor.activeFilter.check( requiredContent ) ) ) + tab[ 0 ].addClass( 'cke_dialog_tab_disabled' ); + else + tab[ 0 ].removeClass( 'cke_dialog_tab_disabled' ); + } + + CKEDITOR.tools.setTimeout( function() { + this.layout(); + resizeWithWindow( this ); + + this.parts.dialog.setStyle( 'visibility', '' ); + + // Execute onLoad for the first show. + this.fireOnce( 'load', {} ); + CKEDITOR.ui.fire( 'ready', this ); + + this.fire( 'show', {} ); + this._.editor.fire( 'dialogShow', this ); + + if ( !this._.parentDialog ) + this._.editor.focusManager.lock(); + + // Save the initial values of the dialog. + this.foreach( function( contentObj ) { + contentObj.setInitValue && contentObj.setInitValue(); + } ); + + }, 100, this ); + }, + + /** + * Rearrange the dialog to its previous position or the middle of the window. + * + * @since 3.5 + */ + layout: function() { + var el = this.parts.dialog; + var dialogSize = this.getSize(); + var win = CKEDITOR.document.getWindow(), + viewSize = win.getViewPaneSize(); + + var posX = ( viewSize.width - dialogSize.width ) / 2, + posY = ( viewSize.height - dialogSize.height ) / 2; + + // Switch to absolute position when viewport is smaller than dialog size. + if ( !CKEDITOR.env.ie6Compat ) { + if ( dialogSize.height + ( posY > 0 ? posY : 0 ) > viewSize.height || + dialogSize.width + ( posX > 0 ? posX : 0 ) > viewSize.width ) + el.setStyle( 'position', 'absolute' ); + else + el.setStyle( 'position', 'fixed' ); + } + + this.move( this._.moved ? this._.position.x : posX, + this._.moved ? this._.position.y : posY ); + }, + + /** + * Executes a function for each UI element. + * + * @param {Function} fn Function to execute for each UI element. + * @returns {CKEDITOR.dialog} The current dialog object. + */ + foreach: function( fn ) { + for ( var i in this._.contents ) { + for ( var j in this._.contents[ i ] ) + fn.call( this, this._.contents[ i ][ j ] ); + } + return this; + }, + + /** + * Resets all input values in the dialog. + * + * dialogObj.reset(); + * + * @method + * @chainable + */ + reset: ( function() { + var fn = function( widget ) { + if ( widget.reset ) + widget.reset( 1 ); + }; + return function() { + this.foreach( fn ); + return this; + }; + } )(), + + + /** + * Calls the {@link CKEDITOR.dialog.definition.uiElement#setup} method of each + * of the UI elements, with the arguments passed through it. + * It is usually being called when the dialog is opened, to put the initial value inside the field. + * + * dialogObj.setupContent(); + * + * var timestamp = ( new Date() ).valueOf(); + * dialogObj.setupContent( timestamp ); + */ + setupContent: function() { + var args = arguments; + this.foreach( function( widget ) { + if ( widget.setup ) + widget.setup.apply( widget, args ); + } ); + }, + + /** + * Calls the {@link CKEDITOR.dialog.definition.uiElement#commit} method of each + * of the UI elements, with the arguments passed through it. + * It is usually being called when the user confirms the dialog, to process the values. + * + * dialogObj.commitContent(); + * + * var timestamp = ( new Date() ).valueOf(); + * dialogObj.commitContent( timestamp ); + */ + commitContent: function() { + var args = arguments; + this.foreach( function( widget ) { + // Make sure IE triggers "change" event on last focused input before closing the dialog. (#7915) + if ( CKEDITOR.env.ie && this._.currentFocusIndex == widget.focusIndex ) + widget.getInputElement().$.blur(); + + if ( widget.commit ) + widget.commit.apply( widget, args ); + } ); + }, + + /** + * Hides the dialog box. + * + * dialogObj.hide(); + */ + hide: function() { + if ( !this.parts.dialog.isVisible() ) + return; + + this.fire( 'hide', {} ); + this._.editor.fire( 'dialogHide', this ); + // Reset the tab page. + this.selectPage( this._.tabIdList[ 0 ] ); + var element = this._.element; + element.setStyle( 'display', 'none' ); + this.parts.dialog.setStyle( 'visibility', 'hidden' ); + // Unregister all access keys associated with this dialog. + unregisterAccessKey( this ); + + // Close any child(top) dialogs first. + while ( CKEDITOR.dialog._.currentTop != this ) + CKEDITOR.dialog._.currentTop.hide(); + + // Maintain dialog ordering and remove cover if needed. + if ( !this._.parentDialog ) + hideCover( this._.editor ); + else { + var parentElement = this._.parentDialog.getElement().getFirst(); + parentElement.setStyle( 'z-index', parseInt( parentElement.$.style.zIndex, 10 ) + Math.floor( this._.editor.config.baseFloatZIndex / 2 ) ); + } + CKEDITOR.dialog._.currentTop = this._.parentDialog; + + // Deduct or clear the z-index. + if ( !this._.parentDialog ) { + CKEDITOR.dialog._.currentZIndex = null; + + // Remove access key handlers. + element.removeListener( 'keydown', accessKeyDownHandler ); + element.removeListener( CKEDITOR.env.opera ? 'keypress' : 'keyup', accessKeyUpHandler ); + + var editor = this._.editor; + editor.focus(); + + // Give a while before unlock, waiting for focus to return to the editable. (#172) + setTimeout( function() { editor.focusManager.unlock(); }, 0 ); + + } else + CKEDITOR.dialog._.currentZIndex -= 10; + + delete this._.parentDialog; + // Reset the initial values of the dialog. + this.foreach( function( contentObj ) { + contentObj.resetInitValue && contentObj.resetInitValue(); + } ); + }, + + /** + * Adds a tabbed page into the dialog. + * + * @param {Object} contents Content definition. + */ + addPage: function( contents ) { + if ( contents.requiredContent && !this._.editor.filter.check( contents.requiredContent ) ) + return; + + var pageHtml = [], + titleHtml = contents.label ? ' title="' + CKEDITOR.tools.htmlEncode( contents.label ) + '"' : '', + elements = contents.elements, + vbox = CKEDITOR.dialog._.uiElementBuilders.vbox.build( this, { + type: 'vbox', + className: 'cke_dialog_page_contents', + children: contents.elements, + expand: !!contents.expand, + padding: contents.padding, + style: contents.style || 'width: 100%;' + }, pageHtml ); + + var contentMap = this._.contents[ contents.id ] = {}, + cursor, + children = vbox.getChild(), + enabledFields = 0; + + while ( ( cursor = children.shift() ) ) { + // Count all allowed fields. + if ( !cursor.notAllowed && cursor.type != 'hbox' && cursor.type != 'vbox' ) + enabledFields++; + + contentMap[ cursor.id ] = cursor; + if ( typeof( cursor.getChild ) == 'function' ) + children.push.apply( children, cursor.getChild() ); + } + + // If all fields are disabled (because they are not allowed) hide this tab. + if ( !enabledFields ) + contents.hidden = true; + + // Create the HTML for the tab and the content block. + var page = CKEDITOR.dom.element.createFromHtml( pageHtml.join( '' ) ); + page.setAttribute( 'role', 'tabpanel' ); + + var env = CKEDITOR.env; + var tabId = 'cke_' + contents.id + '_' + CKEDITOR.tools.getNextNumber(), + tab = CKEDITOR.dom.element.createFromHtml( [ + ' 0 ? ' cke_last' : 'cke_first' ), + titleHtml, + ( !!contents.hidden ? ' style="display:none"' : '' ), + ' id="', tabId, '"', + env.gecko && env.version >= 10900 && !env.hc ? '' : ' href="javascript:void(0)"', + ' tabIndex="-1"', + ' hidefocus="true"', + ' role="tab">', + contents.label, + '' + ].join( '' ) ); + + page.setAttribute( 'aria-labelledby', tabId ); + + // Take records for the tabs and elements created. + this._.tabs[ contents.id ] = [ tab, page ]; + this._.tabIdList.push( contents.id ); + !contents.hidden && this._.pageCount++; + this._.lastTab = tab; + this.updateStyle(); + + // Attach the DOM nodes. + + page.setAttribute( 'name', contents.id ); + page.appendTo( this.parts.contents ); + + tab.unselectable(); + this.parts.tabs.append( tab ); + + // Add access key handlers if access key is defined. + if ( contents.accessKey ) { + registerAccessKey( this, this, 'CTRL+' + contents.accessKey, tabAccessKeyDown, tabAccessKeyUp ); + this._.accessKeyMap[ 'CTRL+' + contents.accessKey ] = contents.id; + } + }, + + /** + * Activates a tab page in the dialog by its id. + * + * dialogObj.selectPage( 'tab_1' ); + * + * @param {String} id The id of the dialog tab to be activated. + */ + selectPage: function( id ) { + if ( this._.currentTabId == id ) + return; + + if ( this._.tabs[ id ][ 0 ].hasClass( 'cke_dialog_tab_disabled' ) ) + return; + + // If event was canceled - do nothing. + if ( this.fire( 'selectPage', { page: id, currentPage: this._.currentTabId } ) === false ) + return; + + // Hide the non-selected tabs and pages. + for ( var i in this._.tabs ) { + var tab = this._.tabs[ i ][ 0 ], + page = this._.tabs[ i ][ 1 ]; + if ( i != id ) { + tab.removeClass( 'cke_dialog_tab_selected' ); + page.hide(); + } + page.setAttribute( 'aria-hidden', i != id ); + } + + var selected = this._.tabs[ id ]; + selected[ 0 ].addClass( 'cke_dialog_tab_selected' ); + + // [IE] an invisible input[type='text'] will enlarge it's width + // if it's value is long when it shows, so we clear it's value + // before it shows and then recover it (#5649) + if ( CKEDITOR.env.ie6Compat || CKEDITOR.env.ie7Compat ) { + clearOrRecoverTextInputValue( selected[ 1 ] ); + selected[ 1 ].show(); + setTimeout( function() { + clearOrRecoverTextInputValue( selected[ 1 ], 1 ); + }, 0 ); + } else + selected[ 1 ].show(); + + this._.currentTabId = id; + this._.currentTabIndex = CKEDITOR.tools.indexOf( this._.tabIdList, id ); + }, + + /** + * Dialog state-specific style updates. + */ + updateStyle: function() { + // If only a single page shown, a different style is used in the central pane. + this.parts.dialog[ ( this._.pageCount === 1 ? 'add' : 'remove' ) + 'Class' ]( 'cke_single_page' ); + }, + + /** + * Hides a page's tab away from the dialog. + * + * dialog.hidePage( 'tab_3' ); + * + * @param {String} id The page's Id. + */ + hidePage: function( id ) { + var tab = this._.tabs[ id ] && this._.tabs[ id ][ 0 ]; + if ( !tab || this._.pageCount == 1 || !tab.isVisible() ) + return; + // Switch to other tab first when we're hiding the active tab. + else if ( id == this._.currentTabId ) + this.selectPage( getPreviousVisibleTab.call( this ) ); + + tab.hide(); + this._.pageCount--; + this.updateStyle(); + }, + + /** + * Unhides a page's tab. + * + * dialog.showPage( 'tab_2' ); + * + * @param {String} id The page's Id. + */ + showPage: function( id ) { + var tab = this._.tabs[ id ] && this._.tabs[ id ][ 0 ]; + if ( !tab ) + return; + tab.show(); + this._.pageCount++; + this.updateStyle(); + }, + + /** + * Gets the root DOM element of the dialog. + * + * var dialogElement = dialogObj.getElement().getFirst(); + * dialogElement.setStyle( 'padding', '5px' ); + * + * @returns {CKEDITOR.dom.element} The `` element containing this dialog. + */ + getElement: function() { + return this._.element; + }, + + /** + * Gets the name of the dialog. + * + * var dialogName = dialogObj.getName(); + * + * @returns {String} The name of this dialog. + */ + getName: function() { + return this._.name; + }, + + /** + * Gets a dialog UI element object from a dialog page. + * + * dialogObj.getContentElement( 'tabId', 'elementId' ).setValue( 'Example' ); + * + * @param {String} pageId id of dialog page. + * @param {String} elementId id of UI element. + * @returns {CKEDITOR.ui.dialog.uiElement} The dialog UI element. + */ + getContentElement: function( pageId, elementId ) { + var page = this._.contents[ pageId ]; + return page && page[ elementId ]; + }, + + /** + * Gets the value of a dialog UI element. + * + * alert( dialogObj.getValueOf( 'tabId', 'elementId' ) ); + * + * @param {String} pageId id of dialog page. + * @param {String} elementId id of UI element. + * @returns {Object} The value of the UI element. + */ + getValueOf: function( pageId, elementId ) { + return this.getContentElement( pageId, elementId ).getValue(); + }, + + /** + * Sets the value of a dialog UI element. + * + * dialogObj.setValueOf( 'tabId', 'elementId', 'Example' ); + * + * @param {String} pageId id of the dialog page. + * @param {String} elementId id of the UI element. + * @param {Object} value The new value of the UI element. + */ + setValueOf: function( pageId, elementId, value ) { + return this.getContentElement( pageId, elementId ).setValue( value ); + }, + + /** + * Gets the UI element of a button in the dialog's button row. + * + * @returns {CKEDITOR.ui.dialog.button} The button object. + * + * @param {String} id The id of the button. + */ + getButton: function( id ) { + return this._.buttons[ id ]; + }, + + /** + * Simulates a click to a dialog button in the dialog's button row. + * + * @returns The return value of the dialog's `click` event. + * + * @param {String} id The id of the button. + */ + click: function( id ) { + return this._.buttons[ id ].click(); + }, + + /** + * Disables a dialog button. + * + * @param {String} id The id of the button. + */ + disableButton: function( id ) { + return this._.buttons[ id ].disable(); + }, + + /** + * Enables a dialog button. + * + * @param {String} id The id of the button. + */ + enableButton: function( id ) { + return this._.buttons[ id ].enable(); + }, + + /** + * Gets the number of pages in the dialog. + * + * @returns {Number} Page count. + */ + getPageCount: function() { + return this._.pageCount; + }, + + /** + * Gets the editor instance which opened this dialog. + * + * @returns {CKEDITOR.editor} Parent editor instances. + */ + getParentEditor: function() { + return this._.editor; + }, + + /** + * Gets the element that was selected when opening the dialog, if any. + * + * @returns {CKEDITOR.dom.element} The element that was selected, or `null`. + */ + getSelectedElement: function() { + return this.getParentEditor().getSelection().getSelectedElement(); + }, + + /** + * Adds element to dialog's focusable list. + * + * @param {CKEDITOR.dom.element} element + * @param {Number} [index] + */ + addFocusable: function( element, index ) { + if ( typeof index == 'undefined' ) { + index = this._.focusList.length; + this._.focusList.push( new Focusable( this, element, index ) ); + } else { + this._.focusList.splice( index, 0, new Focusable( this, element, index ) ); + for ( var i = index + 1; i < this._.focusList.length; i++ ) + this._.focusList[ i ].focusIndex++; + } + } + }; + + CKEDITOR.tools.extend( CKEDITOR.dialog, { + /** + * Registers a dialog. + * + * // Full sample plugin, which does not only register a dialog window but also adds an item to the context menu. + * // To open the dialog window, choose "Open dialog" in the context menu. + * CKEDITOR.plugins.add( 'myplugin', { + * init: function( editor ) { + * editor.addCommand( 'mydialog',new CKEDITOR.dialogCommand( 'mydialog' ) ); + * + * if ( editor.contextMenu ) { + * editor.addMenuGroup( 'mygroup', 10 ); + * editor.addMenuItem( 'My Dialog', { + * label: 'Open dialog', + * command: 'mydialog', + * group: 'mygroup' + * } ); + * editor.contextMenu.addListener( function( element ) { + * return { 'My Dialog': CKEDITOR.TRISTATE_OFF }; + * } ); + * } + * + * CKEDITOR.dialog.add( 'mydialog', function( api ) { + * // CKEDITOR.dialog.definition + * var dialogDefinition = { + * title: 'Sample dialog', + * minWidth: 390, + * minHeight: 130, + * contents: [ + * { + * id: 'tab1', + * label: 'Label', + * title: 'Title', + * expand: true, + * padding: 0, + * elements: [ + * { + * type: 'html', + * html: '

    This is some sample HTML content.

    ' + * }, + * { + * type: 'textarea', + * id: 'textareaId', + * rows: 4, + * cols: 40 + * } + * ] + * } + * ], + * buttons: [ CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton ], + * onOk: function() { + * // "this" is now a CKEDITOR.dialog object. + * // Accessing dialog elements: + * var textareaObj = this.getContentElement( 'tab1', 'textareaId' ); + * alert( "You have entered: " + textareaObj.getValue() ); + * } + * }; + * + * return dialogDefinition; + * } ); + * } + * } ); + * + * CKEDITOR.replace( 'editor1', { extraPlugins: 'myplugin' } ); + * + * @static + * @param {String} name The dialog's name. + * @param {Function/String} dialogDefinition + * A function returning the dialog's definition, or the URL to the `.js` file holding the function. + * The function should accept an argument `editor` which is the current editor instance, and + * return an object conforming to {@link CKEDITOR.dialog.definition}. + * @see CKEDITOR.dialog.definition + */ + add: function( name, dialogDefinition ) { + // Avoid path registration from multiple instances override definition. + if ( !this._.dialogDefinitions[ name ] || typeof dialogDefinition == 'function' ) + this._.dialogDefinitions[ name ] = dialogDefinition; + }, + + /** + * @static + * @todo + */ + exists: function( name ) { + return !!this._.dialogDefinitions[ name ]; + }, + + /** + * @static + * @todo + */ + getCurrent: function() { + return CKEDITOR.dialog._.currentTop; + }, + + /** + * Check whether tab wasn't removed by {@link CKEDITOR.config#removeDialogTabs}. + * + * @since 4.1 + * @static + * @param {CKEDITOR.editor} editor + * @param {String} dialogName + * @param {String} tabName + * @returns {Boolean} + */ + isTabEnabled: function( editor, dialogName, tabName ) { + var cfg = editor.config.removeDialogTabs; + + return !( cfg && cfg.match( new RegExp( '(?:^|;)' + dialogName + ':' + tabName + '(?:$|;)', 'i' ) ) ); + }, + + /** + * The default OK button for dialogs. Fires the `ok` event and closes the dialog if the event succeeds. + * + * @static + * @method + */ + okButton: ( function() { + var retval = function( editor, override ) { + override = override || {}; + return CKEDITOR.tools.extend( { + id: 'ok', + type: 'button', + label: editor.lang.common.ok, + 'class': 'cke_dialog_ui_button_ok', + onClick: function( evt ) { + var dialog = evt.data.dialog; + if ( dialog.fire( 'ok', { hide: true } ).hide !== false ) + dialog.hide(); + } + }, override, true ); + }; + retval.type = 'button'; + retval.override = function( override ) { + return CKEDITOR.tools.extend( function( editor ) { + return retval( editor, override ); + }, { type: 'button' }, true ); + }; + return retval; + } )(), + + /** + * The default cancel button for dialogs. Fires the `cancel` event and + * closes the dialog if no UI element value changed. + * + * @static + * @method + */ + cancelButton: ( function() { + var retval = function( editor, override ) { + override = override || {}; + return CKEDITOR.tools.extend( { + id: 'cancel', + type: 'button', + label: editor.lang.common.cancel, + 'class': 'cke_dialog_ui_button_cancel', + onClick: function( evt ) { + var dialog = evt.data.dialog; + if ( dialog.fire( 'cancel', { hide: true } ).hide !== false ) + dialog.hide(); + } + }, override, true ); + }; + retval.type = 'button'; + retval.override = function( override ) { + return CKEDITOR.tools.extend( function( editor ) { + return retval( editor, override ); + }, { type: 'button' }, true ); + }; + return retval; + } )(), + + /** + * Registers a dialog UI element. + * + * @static + * @param {String} typeName The name of the UI element. + * @param {Function} builder The function to build the UI element. + */ + addUIElement: function( typeName, builder ) { + this._.uiElementBuilders[ typeName ] = builder; + } + } ); + + CKEDITOR.dialog._ = { + uiElementBuilders: {}, + + dialogDefinitions: {}, + + currentTop: null, + + currentZIndex: null + }; + + // "Inherit" (copy actually) from CKEDITOR.event. + CKEDITOR.event.implementOn( CKEDITOR.dialog ); + CKEDITOR.event.implementOn( CKEDITOR.dialog.prototype ); + + var defaultDialogDefinition = { + resizable: CKEDITOR.DIALOG_RESIZE_BOTH, + minWidth: 600, + minHeight: 400, + buttons: [ CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton ] + }; + + // Tool function used to return an item from an array based on its id + // property. + var getById = function( array, id, recurse ) { + for ( var i = 0, item; + ( item = array[ i ] ); i++ ) { + if ( item.id == id ) + return item; + if ( recurse && item[ recurse ] ) { + var retval = getById( item[ recurse ], id, recurse ); + if ( retval ) + return retval; + } + } + return null; + }; + + // Tool function used to add an item into an array. + var addById = function( array, newItem, nextSiblingId, recurse, nullIfNotFound ) { + if ( nextSiblingId ) { + for ( var i = 0, item; + ( item = array[ i ] ); i++ ) { + if ( item.id == nextSiblingId ) { + array.splice( i, 0, newItem ); + return newItem; + } + + if ( recurse && item[ recurse ] ) { + var retval = addById( item[ recurse ], newItem, nextSiblingId, recurse, true ); + if ( retval ) + return retval; + } + } + + if ( nullIfNotFound ) + return null; + } + + array.push( newItem ); + return newItem; + }; + + // Tool function used to remove an item from an array based on its id. + var removeById = function( array, id, recurse ) { + for ( var i = 0, item; + ( item = array[ i ] ); i++ ) { + if ( item.id == id ) + return array.splice( i, 1 ); + if ( recurse && item[ recurse ] ) { + var retval = removeById( item[ recurse ], id, recurse ); + if ( retval ) + return retval; + } + } + return null; + }; + + /** + * This class is not really part of the API. It is the `definition` property value + * passed to `dialogDefinition` event handlers. + * + * CKEDITOR.on( 'dialogDefinition', function( evt ) { + * var definition = evt.data.definition; + * var content = definition.getContents( 'page1' ); + * // ... + * } ); + * + * @private + * @class CKEDITOR.dialog.definitionObject + * @extends CKEDITOR.dialog.definition + * @constructor Creates a definitionObject class instance. + */ + var definitionObject = function( dialog, dialogDefinition ) { + // TODO : Check if needed. + this.dialog = dialog; + + // Transform the contents entries in contentObjects. + var contents = dialogDefinition.contents; + for ( var i = 0, content; + ( content = contents[ i ] ); i++ ) + contents[ i ] = content && new contentObject( dialog, content ); + + CKEDITOR.tools.extend( this, dialogDefinition ); + }; + + definitionObject.prototype = { + /** + * Gets a content definition. + * + * @param {String} id The id of the content definition. + * @returns {CKEDITOR.dialog.definition.content} The content definition matching id. + */ + getContents: function( id ) { + return getById( this.contents, id ); + }, + + /** + * Gets a button definition. + * + * @param {String} id The id of the button definition. + * @returns {CKEDITOR.dialog.definition.button} The button definition matching id. + */ + getButton: function( id ) { + return getById( this.buttons, id ); + }, + + /** + * Adds a content definition object under this dialog definition. + * + * @param {CKEDITOR.dialog.definition.content} contentDefinition The + * content definition. + * @param {String} [nextSiblingId] The id of an existing content + * definition which the new content definition will be inserted + * before. Omit if the new content definition is to be inserted as + * the last item. + * @returns {CKEDITOR.dialog.definition.content} The inserted content definition. + */ + addContents: function( contentDefinition, nextSiblingId ) { + return addById( this.contents, contentDefinition, nextSiblingId ); + }, + + /** + * Adds a button definition object under this dialog definition. + * + * @param {CKEDITOR.dialog.definition.button} buttonDefinition The + * button definition. + * @param {String} [nextSiblingId] The id of an existing button + * definition which the new button definition will be inserted + * before. Omit if the new button definition is to be inserted as + * the last item. + * @returns {CKEDITOR.dialog.definition.button} The inserted button definition. + */ + addButton: function( buttonDefinition, nextSiblingId ) { + return addById( this.buttons, buttonDefinition, nextSiblingId ); + }, + + /** + * Removes a content definition from this dialog definition. + * + * @param {String} id The id of the content definition to be removed. + * @returns {CKEDITOR.dialog.definition.content} The removed content definition. + */ + removeContents: function( id ) { + removeById( this.contents, id ); + }, + + /** + * Removes a button definition from the dialog definition. + * + * @param {String} id The id of the button definition to be removed. + * @returns {CKEDITOR.dialog.definition.button} The removed button definition. + */ + removeButton: function( id ) { + removeById( this.buttons, id ); + } + }; + + /** + * This class is not really part of the API. It is the template of the + * objects representing content pages inside the + * CKEDITOR.dialog.definitionObject. + * + * CKEDITOR.on( 'dialogDefinition', function( evt ) { + * var definition = evt.data.definition; + * var content = definition.getContents( 'page1' ); + * content.remove( 'textInput1' ); + * // ... + * } ); + * + * @private + * @class CKEDITOR.dialog.definition.contentObject + * @constructor Creates a contentObject class instance. + */ + function contentObject( dialog, contentDefinition ) { + this._ = { + dialog: dialog + }; + + CKEDITOR.tools.extend( this, contentDefinition ); + } + + contentObject.prototype = { + /** + * Gets a UI element definition under the content definition. + * + * @param {String} id The id of the UI element definition. + * @returns {CKEDITOR.dialog.definition.uiElement} + */ + get: function( id ) { + return getById( this.elements, id, 'children' ); + }, + + /** + * Adds a UI element definition to the content definition. + * + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition The + * UI elemnet definition to be added. + * @param {String} nextSiblingId The id of an existing UI element + * definition which the new UI element definition will be inserted + * before. Omit if the new button definition is to be inserted as + * the last item. + * @returns {CKEDITOR.dialog.definition.uiElement} The element definition inserted. + */ + add: function( elementDefinition, nextSiblingId ) { + return addById( this.elements, elementDefinition, nextSiblingId, 'children' ); + }, + + /** + * Removes a UI element definition from the content definition. + * + * @param {String} id The id of the UI element definition to be removed. + * @returns {CKEDITOR.dialog.definition.uiElement} The element definition removed. + */ + remove: function( id ) { + removeById( this.elements, id, 'children' ); + } + }; + + function initDragAndDrop( dialog ) { + var lastCoords = null, + abstractDialogCoords = null, + element = dialog.getElement().getFirst(), + editor = dialog.getParentEditor(), + magnetDistance = editor.config.dialog_magnetDistance, + margins = CKEDITOR.skin.margins || [ 0, 0, 0, 0 ]; + + if ( typeof magnetDistance == 'undefined' ) + magnetDistance = 20; + + function mouseMoveHandler( evt ) { + var dialogSize = dialog.getSize(), + viewPaneSize = CKEDITOR.document.getWindow().getViewPaneSize(), + x = evt.data.$.screenX, + y = evt.data.$.screenY, + dx = x - lastCoords.x, + dy = y - lastCoords.y, + realX, realY; + + lastCoords = { x: x, y: y }; + abstractDialogCoords.x += dx; + abstractDialogCoords.y += dy; + + if ( abstractDialogCoords.x + margins[ 3 ] < magnetDistance ) + realX = -margins[ 3 ]; + else if ( abstractDialogCoords.x - margins[ 1 ] > viewPaneSize.width - dialogSize.width - magnetDistance ) + realX = viewPaneSize.width - dialogSize.width + ( editor.lang.dir == 'rtl' ? 0 : margins[ 1 ] ); + else + realX = abstractDialogCoords.x; + + if ( abstractDialogCoords.y + margins[ 0 ] < magnetDistance ) + realY = -margins[ 0 ]; + else if ( abstractDialogCoords.y - margins[ 2 ] > viewPaneSize.height - dialogSize.height - magnetDistance ) + realY = viewPaneSize.height - dialogSize.height + margins[ 2 ]; + else + realY = abstractDialogCoords.y; + + dialog.move( realX, realY, 1 ); + + evt.data.preventDefault(); + } + + function mouseUpHandler( evt ) { + CKEDITOR.document.removeListener( 'mousemove', mouseMoveHandler ); + CKEDITOR.document.removeListener( 'mouseup', mouseUpHandler ); + + if ( CKEDITOR.env.ie6Compat ) { + var coverDoc = currentCover.getChild( 0 ).getFrameDocument(); + coverDoc.removeListener( 'mousemove', mouseMoveHandler ); + coverDoc.removeListener( 'mouseup', mouseUpHandler ); + } + } + + dialog.parts.title.on( 'mousedown', function( evt ) { + lastCoords = { x: evt.data.$.screenX, y: evt.data.$.screenY }; + + CKEDITOR.document.on( 'mousemove', mouseMoveHandler ); + CKEDITOR.document.on( 'mouseup', mouseUpHandler ); + abstractDialogCoords = dialog.getPosition(); + + if ( CKEDITOR.env.ie6Compat ) { + var coverDoc = currentCover.getChild( 0 ).getFrameDocument(); + coverDoc.on( 'mousemove', mouseMoveHandler ); + coverDoc.on( 'mouseup', mouseUpHandler ); + } + + evt.data.preventDefault(); + }, dialog ); + } + + function initResizeHandles( dialog ) { + var def = dialog.definition, + resizable = def.resizable; + + if ( resizable == CKEDITOR.DIALOG_RESIZE_NONE ) + return; + + var editor = dialog.getParentEditor(); + var wrapperWidth, wrapperHeight, viewSize, origin, startSize, dialogCover; + + var mouseDownFn = CKEDITOR.tools.addFunction( function( $event ) { + startSize = dialog.getSize(); + + var content = dialog.parts.contents, + iframeDialog = content.$.getElementsByTagName( 'iframe' ).length; + + // Shim to help capturing "mousemove" over iframe. + if ( iframeDialog ) { + dialogCover = CKEDITOR.dom.element.createFromHtml( '
    ' ); + content.append( dialogCover ); + } + + // Calculate the offset between content and chrome size. + wrapperHeight = startSize.height - dialog.parts.contents.getSize( 'height', !( CKEDITOR.env.gecko || CKEDITOR.env.opera || CKEDITOR.env.ie && CKEDITOR.env.quirks ) ); + wrapperWidth = startSize.width - dialog.parts.contents.getSize( 'width', 1 ); + + origin = { x: $event.screenX, y: $event.screenY }; + + viewSize = CKEDITOR.document.getWindow().getViewPaneSize(); + + CKEDITOR.document.on( 'mousemove', mouseMoveHandler ); + CKEDITOR.document.on( 'mouseup', mouseUpHandler ); + + if ( CKEDITOR.env.ie6Compat ) { + var coverDoc = currentCover.getChild( 0 ).getFrameDocument(); + coverDoc.on( 'mousemove', mouseMoveHandler ); + coverDoc.on( 'mouseup', mouseUpHandler ); + } + + $event.preventDefault && $event.preventDefault(); + } ); + + // Prepend the grip to the dialog. + dialog.on( 'load', function() { + var direction = ''; + if ( resizable == CKEDITOR.DIALOG_RESIZE_WIDTH ) + direction = ' cke_resizer_horizontal'; + else if ( resizable == CKEDITOR.DIALOG_RESIZE_HEIGHT ) + direction = ' cke_resizer_vertical'; + var resizer = CKEDITOR.dom.element.createFromHtml( + '' + + // BLACK LOWER RIGHT TRIANGLE (ltr) + // BLACK LOWER LEFT TRIANGLE (rtl) + ( editor.lang.dir == 'ltr' ? '\u25E2' : '\u25E3' ) + + '' ); + dialog.parts.footer.append( resizer, 1 ); + } ); + editor.on( 'destroy', function() { + CKEDITOR.tools.removeFunction( mouseDownFn ); + } ); + + function mouseMoveHandler( evt ) { + var rtl = editor.lang.dir == 'rtl', + dx = ( evt.data.$.screenX - origin.x ) * ( rtl ? -1 : 1 ), + dy = evt.data.$.screenY - origin.y, + width = startSize.width, + height = startSize.height, + internalWidth = width + dx * ( dialog._.moved ? 1 : 2 ), + internalHeight = height + dy * ( dialog._.moved ? 1 : 2 ), + element = dialog._.element.getFirst(), + right = rtl && element.getComputedStyle( 'right' ), + position = dialog.getPosition(); + + if ( position.y + internalHeight > viewSize.height ) + internalHeight = viewSize.height - position.y; + + if ( ( rtl ? right : position.x ) + internalWidth > viewSize.width ) + internalWidth = viewSize.width - ( rtl ? right : position.x ); + + // Make sure the dialog will not be resized to the wrong side when it's in the leftmost position for RTL. + if ( ( resizable == CKEDITOR.DIALOG_RESIZE_WIDTH || resizable == CKEDITOR.DIALOG_RESIZE_BOTH ) ) + width = Math.max( def.minWidth || 0, internalWidth - wrapperWidth ); + + if ( resizable == CKEDITOR.DIALOG_RESIZE_HEIGHT || resizable == CKEDITOR.DIALOG_RESIZE_BOTH ) + height = Math.max( def.minHeight || 0, internalHeight - wrapperHeight ); + + dialog.resize( width, height ); + + if ( !dialog._.moved ) + dialog.layout(); + + evt.data.preventDefault(); + } + + function mouseUpHandler() { + CKEDITOR.document.removeListener( 'mouseup', mouseUpHandler ); + CKEDITOR.document.removeListener( 'mousemove', mouseMoveHandler ); + + if ( dialogCover ) { + dialogCover.remove(); + dialogCover = null; + } + + if ( CKEDITOR.env.ie6Compat ) { + var coverDoc = currentCover.getChild( 0 ).getFrameDocument(); + coverDoc.removeListener( 'mouseup', mouseUpHandler ); + coverDoc.removeListener( 'mousemove', mouseMoveHandler ); + } + } + } + + var resizeCover; + // Caching resuable covers and allowing only one cover + // on screen. + var covers = {}, + currentCover; + + function cancelEvent( ev ) { + ev.data.preventDefault( 1 ); + } + + function showCover( editor ) { + var win = CKEDITOR.document.getWindow(); + var config = editor.config, + backgroundColorStyle = config.dialog_backgroundCoverColor || 'white', + backgroundCoverOpacity = config.dialog_backgroundCoverOpacity, + baseFloatZIndex = config.baseFloatZIndex, + coverKey = CKEDITOR.tools.genKey( backgroundColorStyle, backgroundCoverOpacity, baseFloatZIndex ), + coverElement = covers[ coverKey ]; + + if ( !coverElement ) { + var html = [ + '
    ' + ]; + + if ( CKEDITOR.env.ie6Compat ) { + // Support for custom document.domain in IE. + var iframeHtml = ''; + + html.push( '' + + '' ); + } + + html.push( '
    ' ); + + coverElement = CKEDITOR.dom.element.createFromHtml( html.join( '' ) ); + coverElement.setOpacity( backgroundCoverOpacity != undefined ? backgroundCoverOpacity : 0.5 ); + + coverElement.on( 'keydown', cancelEvent ); + coverElement.on( 'keypress', cancelEvent ); + coverElement.on( 'keyup', cancelEvent ); + + coverElement.appendTo( CKEDITOR.document.getBody() ); + covers[ coverKey ] = coverElement; + } else + coverElement.show(); + + // Makes the dialog cover a focus holder as well. + editor.focusManager.add( coverElement ); + + currentCover = coverElement; + var resizeFunc = function() { + var size = win.getViewPaneSize(); + coverElement.setStyles( { + width: size.width + 'px', + height: size.height + 'px' + } ); + }; + + var scrollFunc = function() { + var pos = win.getScrollPosition(), + cursor = CKEDITOR.dialog._.currentTop; + coverElement.setStyles( { + left: pos.x + 'px', + top: pos.y + 'px' + } ); + + if ( cursor ) { + do { + var dialogPos = cursor.getPosition(); + cursor.move( dialogPos.x, dialogPos.y ); + } while ( ( cursor = cursor._.parentDialog ) ); + } + }; + + resizeCover = resizeFunc; + win.on( 'resize', resizeFunc ); + resizeFunc(); + // Using Safari/Mac, focus must be kept where it is (#7027) + if ( !( CKEDITOR.env.mac && CKEDITOR.env.webkit ) ) + coverElement.focus(); + + if ( CKEDITOR.env.ie6Compat ) { + // IE BUG: win.$.onscroll assignment doesn't work.. it must be window.onscroll. + // So we need to invent a really funny way to make it work. + var myScrollHandler = function() { + scrollFunc(); + arguments.callee.prevScrollHandler.apply( this, arguments ); + }; + win.$.setTimeout( function() { + myScrollHandler.prevScrollHandler = window.onscroll || + function() {}; + window.onscroll = myScrollHandler; + }, 0 ); + scrollFunc(); + } + } + + function hideCover( editor ) { + if ( !currentCover ) + return; + + editor.focusManager.remove( currentCover ); + var win = CKEDITOR.document.getWindow(); + currentCover.hide(); + win.removeListener( 'resize', resizeCover ); + + if ( CKEDITOR.env.ie6Compat ) { + win.$.setTimeout( function() { + var prevScrollHandler = window.onscroll && window.onscroll.prevScrollHandler; + window.onscroll = prevScrollHandler || null; + }, 0 ); + } + resizeCover = null; + } + + function removeCovers() { + for ( var coverId in covers ) + covers[ coverId ].remove(); + covers = {}; + } + + var accessKeyProcessors = {}; + + var accessKeyDownHandler = function( evt ) { + var ctrl = evt.data.$.ctrlKey || evt.data.$.metaKey, + alt = evt.data.$.altKey, + shift = evt.data.$.shiftKey, + key = String.fromCharCode( evt.data.$.keyCode ), + keyProcessor = accessKeyProcessors[ ( ctrl ? 'CTRL+' : '' ) + ( alt ? 'ALT+' : '' ) + ( shift ? 'SHIFT+' : '' ) + key ]; + + if ( !keyProcessor || !keyProcessor.length ) + return; + + keyProcessor = keyProcessor[ keyProcessor.length - 1 ]; + keyProcessor.keydown && keyProcessor.keydown.call( keyProcessor.uiElement, keyProcessor.dialog, keyProcessor.key ); + evt.data.preventDefault(); + }; + + var accessKeyUpHandler = function( evt ) { + var ctrl = evt.data.$.ctrlKey || evt.data.$.metaKey, + alt = evt.data.$.altKey, + shift = evt.data.$.shiftKey, + key = String.fromCharCode( evt.data.$.keyCode ), + keyProcessor = accessKeyProcessors[ ( ctrl ? 'CTRL+' : '' ) + ( alt ? 'ALT+' : '' ) + ( shift ? 'SHIFT+' : '' ) + key ]; + + if ( !keyProcessor || !keyProcessor.length ) + return; + + keyProcessor = keyProcessor[ keyProcessor.length - 1 ]; + if ( keyProcessor.keyup ) { + keyProcessor.keyup.call( keyProcessor.uiElement, keyProcessor.dialog, keyProcessor.key ); + evt.data.preventDefault(); + } + }; + + var registerAccessKey = function( uiElement, dialog, key, downFunc, upFunc ) { + var procList = accessKeyProcessors[ key ] || ( accessKeyProcessors[ key ] = [] ); + procList.push( { + uiElement: uiElement, + dialog: dialog, + key: key, + keyup: upFunc || uiElement.accessKeyUp, + keydown: downFunc || uiElement.accessKeyDown + } ); + }; + + var unregisterAccessKey = function( obj ) { + for ( var i in accessKeyProcessors ) { + var list = accessKeyProcessors[ i ]; + for ( var j = list.length - 1; j >= 0; j-- ) { + if ( list[ j ].dialog == obj || list[ j ].uiElement == obj ) + list.splice( j, 1 ); + } + if ( list.length === 0 ) + delete accessKeyProcessors[ i ]; + } + }; + + var tabAccessKeyUp = function( dialog, key ) { + if ( dialog._.accessKeyMap[ key ] ) + dialog.selectPage( dialog._.accessKeyMap[ key ] ); + }; + + var tabAccessKeyDown = function( dialog, key ) {}; + + ( function() { + CKEDITOR.ui.dialog = { + /** + * The base class of all dialog UI elements. + * + * @class CKEDITOR.ui.dialog.uiElement + * @constructor Creates a uiElement class instance. + * @param {CKEDITOR.dialog} dialog Parent dialog object. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition Element + * definition. + * + * Accepted fields: + * + * * `id` (Required) The id of the UI element. See {@link CKEDITOR.dialog#getContentElement}. + * * `type` (Required) The type of the UI element. The + * value to this field specifies which UI element class will be used to + * generate the final widget. + * * `title` (Optional) The popup tooltip for the UI + * element. + * * `hidden` (Optional) A flag that tells if the element + * should be initially visible. + * * `className` (Optional) Additional CSS class names + * to add to the UI element. Separated by space. + * * `style` (Optional) Additional CSS inline styles + * to add to the UI element. A semicolon (;) is required after the last + * style declaration. + * * `accessKey` (Optional) The alphanumeric access key + * for this element. Access keys are automatically prefixed by CTRL. + * * `on*` (Optional) Any UI element definition field that + * starts with `on` followed immediately by a capital letter and + * probably more letters is an event handler. Event handlers may be further + * divided into registered event handlers and DOM event handlers. Please + * refer to {@link CKEDITOR.ui.dialog.uiElement#registerEvents} and + * {@link CKEDITOR.ui.dialog.uiElement#eventProcessors} for more information. + * + * @param {Array} htmlList + * List of HTML code to be added to the dialog's content area. + * @param {Function/String} [nodeNameArg='div'] + * A function returning a string, or a simple string for the node name for + * the root DOM node. + * @param {Function/Object} [stylesArg={}] + * A function returning an object, or a simple object for CSS styles applied + * to the DOM node. + * @param {Function/Object} [attributesArg={}] + * A fucntion returning an object, or a simple object for attributes applied + * to the DOM node. + * @param {Function/String} [contentsArg=''] + * A function returning a string, or a simple string for the HTML code inside + * the root DOM node. Default is empty string. + */ + uiElement: function( dialog, elementDefinition, htmlList, nodeNameArg, stylesArg, attributesArg, contentsArg ) { + if ( arguments.length < 4 ) + return; + + var nodeName = ( nodeNameArg.call ? nodeNameArg( elementDefinition ) : nodeNameArg ) || 'div', + html = [ '<', nodeName, ' ' ], + styles = ( stylesArg && stylesArg.call ? stylesArg( elementDefinition ) : stylesArg ) || {}, + attributes = ( attributesArg && attributesArg.call ? attributesArg( elementDefinition ) : attributesArg ) || {}, + innerHTML = ( contentsArg && contentsArg.call ? contentsArg.call( this, dialog, elementDefinition ) : contentsArg ) || '', + domId = this.domId = attributes.id || CKEDITOR.tools.getNextId() + '_uiElement', + id = this.id = elementDefinition.id, + i; + + if ( elementDefinition.requiredContent && !dialog.getParentEditor().filter.check( elementDefinition.requiredContent ) ) { + styles.display = 'none'; + this.notAllowed = true; + } + + // Set the id, a unique id is required for getElement() to work. + attributes.id = domId; + + // Set the type and definition CSS class names. + var classes = {}; + if ( elementDefinition.type ) + classes[ 'cke_dialog_ui_' + elementDefinition.type ] = 1; + if ( elementDefinition.className ) + classes[ elementDefinition.className ] = 1; + if ( elementDefinition.disabled ) + classes[ 'cke_disabled' ] = 1; + + var attributeClasses = ( attributes[ 'class' ] && attributes[ 'class' ].split ) ? attributes[ 'class' ].split( ' ' ) : []; + for ( i = 0; i < attributeClasses.length; i++ ) { + if ( attributeClasses[ i ] ) + classes[ attributeClasses[ i ] ] = 1; + } + var finalClasses = []; + for ( i in classes ) + finalClasses.push( i ); + attributes[ 'class' ] = finalClasses.join( ' ' ); + + // Set the popup tooltop. + if ( elementDefinition.title ) + attributes.title = elementDefinition.title; + + // Write the inline CSS styles. + var styleStr = ( elementDefinition.style || '' ).split( ';' ); + + // Element alignment support. + if ( elementDefinition.align ) { + var align = elementDefinition.align; + styles[ 'margin-left' ] = align == 'left' ? 0 : 'auto'; + styles[ 'margin-right' ] = align == 'right' ? 0 : 'auto'; + } + + for ( i in styles ) + styleStr.push( i + ':' + styles[ i ] ); + if ( elementDefinition.hidden ) + styleStr.push( 'display:none' ); + for ( i = styleStr.length - 1; i >= 0; i-- ) { + if ( styleStr[ i ] === '' ) + styleStr.splice( i, 1 ); + } + if ( styleStr.length > 0 ) + attributes.style = ( attributes.style ? ( attributes.style + '; ' ) : '' ) + styleStr.join( '; ' ); + + // Write the attributes. + for ( i in attributes ) + html.push( i + '="' + CKEDITOR.tools.htmlEncode( attributes[ i ] ) + '" ' ); + + // Write the content HTML. + html.push( '>', innerHTML, '' ); + + // Add contents to the parent HTML array. + htmlList.push( html.join( '' ) ); + + ( this._ || ( this._ = {} ) ).dialog = dialog; + + // Override isChanged if it is defined in element definition. + if ( typeof( elementDefinition.isChanged ) == 'boolean' ) + this.isChanged = function() { + return elementDefinition.isChanged; + }; + if ( typeof( elementDefinition.isChanged ) == 'function' ) + this.isChanged = elementDefinition.isChanged; + + // Overload 'get(set)Value' on definition. + if ( typeof( elementDefinition.setValue ) == 'function' ) { + this.setValue = CKEDITOR.tools.override( this.setValue, function( org ) { + return function( val ) { + org.call( this, elementDefinition.setValue.call( this, val ) ); + }; + } ); + } + + if ( typeof( elementDefinition.getValue ) == 'function' ) { + this.getValue = CKEDITOR.tools.override( this.getValue, function( org ) { + return function() { + return elementDefinition.getValue.call( this, org.call( this ) ); + }; + } ); + } + + // Add events. + CKEDITOR.event.implementOn( this ); + + this.registerEvents( elementDefinition ); + if ( this.accessKeyUp && this.accessKeyDown && elementDefinition.accessKey ) + registerAccessKey( this, dialog, 'CTRL+' + elementDefinition.accessKey ); + + var me = this; + dialog.on( 'load', function() { + var input = me.getInputElement(); + if ( input ) { + var focusClass = me.type in { 'checkbox': 1, 'ratio': 1 } && CKEDITOR.env.ie && CKEDITOR.env.version < 8 ? 'cke_dialog_ui_focused' : ''; + input.on( 'focus', function() { + dialog._.tabBarMode = false; + dialog._.hasFocus = true; + me.fire( 'focus' ); + focusClass && this.addClass( focusClass ); + + } ); + + input.on( 'blur', function() { + me.fire( 'blur' ); + focusClass && this.removeClass( focusClass ); + } ); + } + } ); + + // Completes this object with everything we have in the + // definition. + CKEDITOR.tools.extend( this, elementDefinition ); + + // Register the object as a tab focus if it can be included. + if ( this.keyboardFocusable ) { + this.tabIndex = elementDefinition.tabIndex || 0; + + this.focusIndex = dialog._.focusList.push( this ) - 1; + this.on( 'focus', function() { + dialog._.currentFocusIndex = me.focusIndex; + } ); + } + }, + + /** + * Horizontal layout box for dialog UI elements, auto-expends to available width of container. + * + * @class CKEDITOR.ui.dialog.hbox + * @extends CKEDITOR.ui.dialog.uiElement + * @constructor Creates a hbox class instance. + * @param {CKEDITOR.dialog} dialog Parent dialog object. + * @param {Array} childObjList + * Array of {@link CKEDITOR.ui.dialog.uiElement} objects inside this container. + * @param {Array} childHtmlList + * Array of HTML code that correspond to the HTML output of all the + * objects in childObjList. + * @param {Array} htmlList + * Array of HTML code that this element will output to. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition + * The element definition. Accepted fields: + * + * * `widths` (Optional) The widths of child cells. + * * `height` (Optional) The height of the layout. + * * `padding` (Optional) The padding width inside child cells. + * * `align` (Optional) The alignment of the whole layout. + */ + hbox: function( dialog, childObjList, childHtmlList, htmlList, elementDefinition ) { + if ( arguments.length < 4 ) + return; + + this._ || ( this._ = {} ); + + var children = this._.children = childObjList, + widths = elementDefinition && elementDefinition.widths || null, + height = elementDefinition && elementDefinition.height || null, + styles = {}, + i; + /** @ignore */ + var innerHTML = function() { + var html = [ '' ]; + for ( i = 0; i < childHtmlList.length; i++ ) { + var className = 'cke_dialog_ui_hbox_child', + styles = []; + if ( i === 0 ) + className = 'cke_dialog_ui_hbox_first'; + if ( i == childHtmlList.length - 1 ) + className = 'cke_dialog_ui_hbox_last'; + html.push( ' 0 ) + html.push( 'style="' + styles.join( '; ' ) + '" ' ); + html.push( '>', childHtmlList[ i ], '' ); + } + html.push( '' ); + return html.join( '' ); + }; + + var attribs = { role: 'presentation' }; + elementDefinition && elementDefinition.align && ( attribs.align = elementDefinition.align ); + + CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition || { type: 'hbox' }, htmlList, 'table', styles, attribs, innerHTML ); + }, + + /** + * Vertical layout box for dialog UI elements. + * + * @class CKEDITOR.ui.dialog.vbox + * @extends CKEDITOR.ui.dialog.hbox + * @constructor Creates a vbox class instance. + * @param {CKEDITOR.dialog} dialog Parent dialog object. + * @param {Array} childObjList + * Array of {@link CKEDITOR.ui.dialog.uiElement} objects inside this container. + * @param {Array} childHtmlList + * Array of HTML code that correspond to the HTML output of all the + * objects in childObjList. + * @param {Array} htmlList Array of HTML code that this element will output to. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition + * The element definition. Accepted fields: + * + * * `width` (Optional) The width of the layout. + * * `heights` (Optional) The heights of individual cells. + * * `align` (Optional) The alignment of the layout. + * * `padding` (Optional) The padding width inside child cells. + * * `expand` (Optional) Whether the layout should expand + * vertically to fill its container. + */ + vbox: function( dialog, childObjList, childHtmlList, htmlList, elementDefinition ) { + if ( arguments.length < 3 ) + return; + + this._ || ( this._ = {} ); + + var children = this._.children = childObjList, + width = elementDefinition && elementDefinition.width || null, + heights = elementDefinition && elementDefinition.heights || null; + /** @ignore */ + var innerHTML = function() { + var html = [ '' ); + for ( var i = 0; i < childHtmlList.length; i++ ) { + var styles = []; + html.push( '' ); + } + html.push( '
    0 ) + html.push( 'style="', styles.join( '; ' ), '" ' ); + html.push( ' class="cke_dialog_ui_vbox_child">', childHtmlList[ i ], '
    ' ); + return html.join( '' ); + }; + CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition || { type: 'vbox' }, htmlList, 'div', null, { role: 'presentation' }, innerHTML ); + } + }; + } )(); + + /** @class CKEDITOR.ui.dialog.uiElement */ + CKEDITOR.ui.dialog.uiElement.prototype = { + /** + * Gets the root DOM element of this dialog UI object. + * + * uiElement.getElement().hide(); + * + * @returns {CKEDITOR.dom.element} Root DOM element of UI object. + */ + getElement: function() { + return CKEDITOR.document.getById( this.domId ); + }, + + /** + * Gets the DOM element that the user inputs values. + * + * This function is used by {@link #setValue}, {@link #getValue} and {@link #focus}. It should + * be overrided in child classes where the input element isn't the root + * element. + * + * var rawValue = textInput.getInputElement().$.value; + * + * @returns {CKEDITOR.dom.element} The element where the user input values. + */ + getInputElement: function() { + return this.getElement(); + }, + + /** + * Gets the parent dialog object containing this UI element. + * + * var dialog = uiElement.getDialog(); + * + * @returns {CKEDITOR.dialog} Parent dialog object. + */ + getDialog: function() { + return this._.dialog; + }, + + /** + * Sets the value of this dialog UI object. + * + * uiElement.setValue( 'Dingo' ); + * + * @chainable + * @param {Object} value The new value. + * @param {Boolean} noChangeEvent Internal commit, to supress `change` event on this element. + */ + setValue: function( value, noChangeEvent ) { + this.getInputElement().setValue( value ); + !noChangeEvent && this.fire( 'change', { value: value } ); + return this; + }, + + /** + * Gets the current value of this dialog UI object. + * + * var myValue = uiElement.getValue(); + * + * @returns {Object} The current value. + */ + getValue: function() { + return this.getInputElement().getValue(); + }, + + /** + * Tells whether the UI object's value has changed. + * + * if ( uiElement.isChanged() ) + * confirm( 'Value changed! Continue?' ); + * + * @returns {Boolean} `true` if changed, `false` if not changed. + */ + isChanged: function() { + // Override in input classes. + return false; + }, + + /** + * Selects the parent tab of this element. Usually called by focus() or overridden focus() methods. + * + * focus : function() { + * this.selectParentTab(); + * // do something else. + * } + * + * @chainable + */ + selectParentTab: function() { + var element = this.getInputElement(), + cursor = element, + tabId; + while ( ( cursor = cursor.getParent() ) && cursor.$.className.search( 'cke_dialog_page_contents' ) == -1 ) { + /*jsl:pass*/ + } + + // Some widgets don't have parent tabs (e.g. OK and Cancel buttons). + if ( !cursor ) + return this; + + tabId = cursor.getAttribute( 'name' ); + // Avoid duplicate select. + if ( this._.dialog._.currentTabId != tabId ) + this._.dialog.selectPage( tabId ); + return this; + }, + + /** + * Puts the focus to the UI object. Switches tabs if the UI object isn't in the active tab page. + * + * uiElement.focus(); + * + * @chainable + */ + focus: function() { + this.selectParentTab().getInputElement().focus(); + return this; + }, + + /** + * Registers the `on*` event handlers defined in the element definition. + * + * The default behavior of this function is: + * + * 1. If the on* event is defined in the class's eventProcesors list, + * then the registration is delegated to the corresponding function + * in the eventProcessors list. + * 2. If the on* event is not defined in the eventProcessors list, then + * register the event handler under the corresponding DOM event of + * the UI element's input DOM element (as defined by the return value + * of {@link #getInputElement}). + * + * This function is only called at UI element instantiation, but can + * be overridded in child classes if they require more flexibility. + * + * @chainable + * @param {CKEDITOR.dialog.definition.uiElement} definition The UI element + * definition. + */ + registerEvents: function( definition ) { + var regex = /^on([A-Z]\w+)/, + match; + + var registerDomEvent = function( uiElement, dialog, eventName, func ) { + dialog.on( 'load', function() { + uiElement.getInputElement().on( eventName, func, uiElement ); + } ); + }; + + for ( var i in definition ) { + if ( !( match = i.match( regex ) ) ) + continue; + if ( this.eventProcessors[ i ] ) + this.eventProcessors[ i ].call( this, this._.dialog, definition[ i ] ); + else + registerDomEvent( this, this._.dialog, match[ 1 ].toLowerCase(), definition[ i ] ); + } + + return this; + }, + + /** + * The event processor list used by + * {@link CKEDITOR.ui.dialog.uiElement#getInputElement} at UI element + * instantiation. The default list defines three `on*` events: + * + * 1. `onLoad` - Called when the element's parent dialog opens for the + * first time. + * 2. `onShow` - Called whenever the element's parent dialog opens. + * 3. `onHide` - Called whenever the element's parent dialog closes. + * + * // This connects the 'click' event in CKEDITOR.ui.dialog.button to onClick + * // handlers in the UI element's definitions. + * CKEDITOR.ui.dialog.button.eventProcessors = CKEDITOR.tools.extend( {}, + * CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors, + * { onClick : function( dialog, func ) { this.on( 'click', func ); } }, + * true + * ); + * + * @property {Object} + */ + eventProcessors: { + onLoad: function( dialog, func ) { + dialog.on( 'load', func, this ); + }, + + onShow: function( dialog, func ) { + dialog.on( 'show', func, this ); + }, + + onHide: function( dialog, func ) { + dialog.on( 'hide', func, this ); + } + }, + + /** + * The default handler for a UI element's access key down event, which + * tries to put focus to the UI element. + * + * Can be overridded in child classes for more sophisticaed behavior. + * + * @param {CKEDITOR.dialog} dialog The parent dialog object. + * @param {String} key The key combination pressed. Since access keys + * are defined to always include the `CTRL` key, its value should always + * include a `'CTRL+'` prefix. + */ + accessKeyDown: function( dialog, key ) { + this.focus(); + }, + + /** + * The default handler for a UI element's access key up event, which + * does nothing. + * + * Can be overridded in child classes for more sophisticated behavior. + * + * @param {CKEDITOR.dialog} dialog The parent dialog object. + * @param {String} key The key combination pressed. Since access keys + * are defined to always include the `CTRL` key, its value should always + * include a `'CTRL+'` prefix. + */ + accessKeyUp: function( dialog, key ) {}, + + /** + * Disables a UI element. + */ + disable: function() { + var element = this.getElement(), + input = this.getInputElement(); + input.setAttribute( 'disabled', 'true' ); + element.addClass( 'cke_disabled' ); + }, + + /** + * Enables a UI element. + */ + enable: function() { + var element = this.getElement(), + input = this.getInputElement(); + input.removeAttribute( 'disabled' ); + element.removeClass( 'cke_disabled' ); + }, + + /** + * Determines whether an UI element is enabled or not. + * + * @returns {Boolean} Whether the UI element is enabled. + */ + isEnabled: function() { + return !this.getElement().hasClass( 'cke_disabled' ); + }, + + /** + * Determines whether an UI element is visible or not. + * + * @returns {Boolean} Whether the UI element is visible. + */ + isVisible: function() { + return this.getInputElement().isVisible(); + }, + + /** + * Determines whether an UI element is focus-able or not. + * Focus-able is defined as being both visible and enabled. + * + * @returns {Boolean} Whether the UI element can be focused. + */ + isFocusable: function() { + if ( !this.isEnabled() || !this.isVisible() ) + return false; + return true; + } + }; + + /** @class CKEDITOR.ui.dialog.hbox */ + CKEDITOR.ui.dialog.hbox.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.uiElement, { + /** + * Gets a child UI element inside this container. + * + * var checkbox = hbox.getChild( [0,1] ); + * checkbox.setValue( true ); + * + * @param {Array/Number} indices An array or a single number to indicate the child's + * position in the container's descendant tree. Omit to get all the children in an array. + * @returns {Array/CKEDITOR.ui.dialog.uiElement} Array of all UI elements in the container + * if no argument given, or the specified UI element if indices is given. + */ + getChild: function( indices ) { + // If no arguments, return a clone of the children array. + if ( arguments.length < 1 ) + return this._.children.concat(); + + // If indices isn't array, make it one. + if ( !indices.splice ) + indices = [ indices ]; + + // Retrieve the child element according to tree position. + if ( indices.length < 2 ) + return this._.children[ indices[ 0 ] ]; + else + return ( this._.children[ indices[ 0 ] ] && this._.children[ indices[ 0 ] ].getChild ) ? this._.children[ indices[ 0 ] ].getChild( indices.slice( 1, indices.length ) ) : null; + } + }, true ); + + CKEDITOR.ui.dialog.vbox.prototype = new CKEDITOR.ui.dialog.hbox(); + + ( function() { + var commonBuilder = { + build: function( dialog, elementDefinition, output ) { + var children = elementDefinition.children, + child, + childHtmlList = [], + childObjList = []; + for ( var i = 0; + ( i < children.length && ( child = children[ i ] ) ); i++ ) { + var childHtml = []; + childHtmlList.push( childHtml ); + childObjList.push( CKEDITOR.dialog._.uiElementBuilders[ child.type ].build( dialog, child, childHtml ) ); + } + return new CKEDITOR.ui.dialog[ elementDefinition.type ]( dialog, childObjList, childHtmlList, output, elementDefinition ); + } + }; + + CKEDITOR.dialog.addUIElement( 'hbox', commonBuilder ); + CKEDITOR.dialog.addUIElement( 'vbox', commonBuilder ); + } )(); + + /** + * Generic dialog command. It opens a specific dialog when executed. + * + * // Register the "link" command, which opens the "link" dialog. + * editor.addCommand( 'link', new CKEDITOR.dialogCommand( 'link' ) ); + * + * @class + * @constructor Creates a dialogCommand class instance. + * @extends CKEDITOR.commandDefinition + * @param {String} dialogName The name of the dialog to open when executing + * this command. + * @param {Object} [ext] Additional command definition's properties. + */ + CKEDITOR.dialogCommand = function( dialogName, ext ) { + this.dialogName = dialogName; + CKEDITOR.tools.extend( this, ext, true ); + }; + + CKEDITOR.dialogCommand.prototype = { + exec: function( editor ) { + // Special treatment for Opera. (#8031) + CKEDITOR.env.opera ? CKEDITOR.tools.setTimeout( function() { + editor.openDialog( this.dialogName ); + }, 0, this ) : editor.openDialog( this.dialogName ); + }, + + // Dialog commands just open a dialog ui, thus require no undo logic, + // undo support should dedicate to specific dialog implementation. + canUndo: false, + + editorFocus: 1 + }; + + ( function() { + var notEmptyRegex = /^([a]|[^a])+$/, + integerRegex = /^\d*$/, + numberRegex = /^\d*(?:\.\d+)?$/, + htmlLengthRegex = /^(((\d*(\.\d+))|(\d*))(px|\%)?)?$/, + cssLengthRegex = /^(((\d*(\.\d+))|(\d*))(px|em|ex|in|cm|mm|pt|pc|\%)?)?$/i, + inlineStyleRegex = /^(\s*[\w-]+\s*:\s*[^:;]+(?:;|$))*$/; + + CKEDITOR.VALIDATE_OR = 1; + CKEDITOR.VALIDATE_AND = 2; + + CKEDITOR.dialog.validate = { + functions: function() { + var args = arguments; + return function() { + /** + * It's important for validate functions to be able to accept the value + * as argument in addition to this.getValue(), so that it is possible to + * combine validate functions together to make more sophisticated + * validators. + */ + var value = this && this.getValue ? this.getValue() : args[ 0 ]; + + var msg = undefined, + relation = CKEDITOR.VALIDATE_AND, + functions = [], + i; + + for ( i = 0; i < args.length; i++ ) { + if ( typeof( args[ i ] ) == 'function' ) + functions.push( args[ i ] ); + else + break; + } + + if ( i < args.length && typeof( args[ i ] ) == 'string' ) { + msg = args[ i ]; + i++; + } + + if ( i < args.length && typeof( args[ i ] ) == 'number' ) + relation = args[ i ]; + + var passed = ( relation == CKEDITOR.VALIDATE_AND ? true : false ); + for ( i = 0; i < functions.length; i++ ) { + if ( relation == CKEDITOR.VALIDATE_AND ) + passed = passed && functions[ i ]( value ); + else + passed = passed || functions[ i ]( value ); + } + + return !passed ? msg : true; + }; + }, + + regex: function( regex, msg ) { + /* + * Can be greatly shortened by deriving from functions validator if code size + * turns out to be more important than performance. + */ + return function() { + var value = this && this.getValue ? this.getValue() : arguments[ 0 ]; + return !regex.test( value ) ? msg : true; + }; + }, + + notEmpty: function( msg ) { + return this.regex( notEmptyRegex, msg ); + }, + + integer: function( msg ) { + return this.regex( integerRegex, msg ); + }, + + 'number': function( msg ) { + return this.regex( numberRegex, msg ); + }, + + 'cssLength': function( msg ) { + return this.functions( function( val ) { + return cssLengthRegex.test( CKEDITOR.tools.trim( val ) ); + }, msg ); + }, + + 'htmlLength': function( msg ) { + return this.functions( function( val ) { + return htmlLengthRegex.test( CKEDITOR.tools.trim( val ) ); + }, msg ); + }, + + 'inlineStyle': function( msg ) { + return this.functions( function( val ) { + return inlineStyleRegex.test( CKEDITOR.tools.trim( val ) ); + }, msg ); + }, + + equals: function( value, msg ) { + return this.functions( function( val ) { + return val == value; + }, msg ); + }, + + notEqual: function( value, msg ) { + return this.functions( function( val ) { + return val != value; + }, msg ); + } + }; + + CKEDITOR.on( 'instanceDestroyed', function( evt ) { + // Remove dialog cover on last instance destroy. + if ( CKEDITOR.tools.isEmpty( CKEDITOR.instances ) ) { + var currentTopDialog; + while ( ( currentTopDialog = CKEDITOR.dialog._.currentTop ) ) + currentTopDialog.hide(); + removeCovers(); + } + + var dialogs = evt.editor._.storedDialogs; + for ( var name in dialogs ) + dialogs[ name ].destroy(); + + } ); + + } )(); + + // Extend the CKEDITOR.editor class with dialog specific functions. + CKEDITOR.tools.extend( CKEDITOR.editor.prototype, { + /** + * Loads and opens a registered dialog. + * + * CKEDITOR.instances.editor1.openDialog( 'smiley' ); + * + * @member CKEDITOR.editor + * @param {String} dialogName The registered name of the dialog. + * @param {Function} callback The function to be invoked after dialog instance created. + * @returns {CKEDITOR.dialog} The dialog object corresponding to the dialog displayed. + * `null` if the dialog name is not registered. + * @see CKEDITOR.dialog#add + */ + openDialog: function( dialogName, callback ) { + var dialog = null, dialogDefinitions = CKEDITOR.dialog._.dialogDefinitions[ dialogName ]; + + if ( CKEDITOR.dialog._.currentTop === null ) + showCover( this ); + + // If the dialogDefinition is already loaded, open it immediately. + if ( typeof dialogDefinitions == 'function' ) { + var storedDialogs = this._.storedDialogs || ( this._.storedDialogs = {} ); + + dialog = storedDialogs[ dialogName ] || ( storedDialogs[ dialogName ] = new CKEDITOR.dialog( this, dialogName ) ); + + callback && callback.call( dialog, dialog ); + dialog.show(); + + } else if ( dialogDefinitions == 'failed' ) { + hideCover( this ); + throw new Error( '[CKEDITOR.dialog.openDialog] Dialog "' + dialogName + '" failed when loading definition.' ); + } else if ( typeof dialogDefinitions == 'string' ) { + + CKEDITOR.scriptLoader.load( CKEDITOR.getUrl( dialogDefinitions ), + function() { + var dialogDefinition = CKEDITOR.dialog._.dialogDefinitions[ dialogName ]; + // In case of plugin error, mark it as loading failed. + if ( typeof dialogDefinition != 'function' ) + CKEDITOR.dialog._.dialogDefinitions[ dialogName ] = 'failed'; + + this.openDialog( dialogName, callback ); + }, this, 0, 1 ); + } + + CKEDITOR.skin.loadPart( 'dialog' ); + + return dialog; + } + } ); +} )(); + +CKEDITOR.plugins.add( 'dialog', { + requires: 'dialogui', + init: function( editor ) { + editor.on( 'doubleclick', function( evt ) { + if ( evt.data.dialog ) + editor.openDialog( evt.data.dialog ); + }, null, null, 999 ); + } +} ); + +// Dialog related configurations. + +/** + * The color of the dialog background cover. It should be a valid CSS color string. + * + * config.dialog_backgroundCoverColor = 'rgb(255, 254, 253)'; + * + * @cfg {String} [dialog_backgroundCoverColor='white'] + * @member CKEDITOR.config + */ + +/** + * The opacity of the dialog background cover. It should be a number within the + * range `[0.0, 1.0]`. + * + * config.dialog_backgroundCoverOpacity = 0.7; + * + * @cfg {Number} [dialog_backgroundCoverOpacity=0.5] + * @member CKEDITOR.config + */ + +/** + * If the dialog has more than one tab, put focus into the first tab as soon as dialog is opened. + * + * config.dialog_startupFocusTab = true; + * + * @cfg {Boolean} [dialog_startupFocusTab=false] + * @member CKEDITOR.config + */ + +/** + * The distance of magnetic borders used in moving and resizing dialogs, + * measured in pixels. + * + * config.dialog_magnetDistance = 30; + * + * @cfg {Number} [dialog_magnetDistance=20] + * @member CKEDITOR.config + */ + +/** + * The guideline to follow when generating the dialog buttons. There are 3 possible options: + * + * * `'OS'` - the buttons will be displayed in the default order of the user's OS; + * * `'ltr'` - for Left-To-Right order; + * * `'rtl'` - for Right-To-Left order. + * + * Example: + * + * config.dialog_buttonsOrder = 'rtl'; + * + * @since 3.5 + * @cfg {String} [dialog_buttonsOrder='OS'] + * @member CKEDITOR.config + */ + +/** + * The dialog contents to removed. It's a string composed by dialog name and tab name with a colon between them. + * + * Separate each pair with semicolon (see example). + * + * **Note:** All names are case-sensitive. + * + * **Note:** Be cautious when specifying dialog tabs that are mandatory, + * like `'info'`, dialog functionality might be broken because of this! + * + * config.removeDialogTabs = 'flash:advanced;image:Link'; + * + * @since 3.5 + * @cfg {String} [removeDialogTabs=''] + * @member CKEDITOR.config + */ + +/** + * Tells if user should not be asked to confirm close, if any dialog field was modified. + * By default it is set to `false` meaning that the confirmation dialog will be shown. + * + * config.dialog_noConfirmCancel = true; + * + * @since 4.3 + * @cfg {Boolean} [dialog_noConfirmCancel=false] + * @member CKEDITOR.config + */ + +/** + * Fired when a dialog definition is about to be used to create a dialog into + * an editor instance. This event makes it possible to customize the definition + * before creating it. + * + * Note that this event is called only the first time a specific dialog is + * opened. Successive openings will use the cached dialog, and this event will + * not get fired. + * + * @event dialogDefinition + * @member CKEDITOR + * @param {CKEDITOR.dialog.definition} data The dialog defination that + * is being loaded. + * @param {CKEDITOR.editor} editor The editor instance that will use the dialog. + */ + +/** + * Fired when a tab is going to be selected in a dialog. + * + * @event selectPage + * @member CKEDITOR.dialog + * @param data + * @param {String} data.page The id of the page that it's gonna be selected. + * @param {String} data.currentPage The id of the current page. + */ + +/** + * Fired when the user tries to dismiss a dialog. + * + * @event cancel + * @member CKEDITOR.dialog + * @param data + * @param {Boolean} data.hide Whether the event should proceed or not. + */ + +/** + * Fired when the user tries to confirm a dialog. + * + * @event ok + * @member CKEDITOR.dialog + * @param data + * @param {Boolean} data.hide Whether the event should proceed or not. + */ + +/** + * Fired when a dialog is shown. + * + * @event show + * @member CKEDITOR.dialog + */ + +/** + * Fired when a dialog is shown. + * + * @event dialogShow + * @member CKEDITOR.editor + * @param {CKEDITOR.editor} editor This editor instance. + * @param {CKEDITOR.dialog} data The opened dialog instance. + */ + +/** + * Fired when a dialog is hidden. + * + * @event hide + * @member CKEDITOR.dialog + */ + +/** + * Fired when a dialog is hidden. + * + * @event dialogHide + * @member CKEDITOR.editor + * @param {CKEDITOR.editor} editor This editor instance. + * @param {CKEDITOR.dialog} data The hidden dialog instance. + */ + +/** + * Fired when a dialog is being resized. The event is fired on + * both the {@link CKEDITOR.dialog} object and the dialog instance + * since 3.5.3, previously it's available only in the global object. + * + * @static + * @event resize + * @member CKEDITOR.dialog + * @param data + * @param {CKEDITOR.dialog} data.dialog The dialog being resized (if + * it's fired on the dialog itself, this parameter isn't sent). + * @param {String} data.skin The skin name. + * @param {Number} data.width The new width. + * @param {Number} data.height The new height. + */ + +/** + * Fired when a dialog is being resized. The event is fired on + * both the {@link CKEDITOR.dialog} object and the dialog instance + * since 3.5.3, previously it's available only in the global object. + * + * @since 3.5 + * @event resize + * @member CKEDITOR.dialog + * @param data + * @param {Number} data.width The new width. + * @param {Number} data.height The new height. + */ diff --git a/lam/templates/lib/extra/ckeditor/plugins/dialogui/plugin.js b/lam/templates/lib/extra/ckeditor/plugins/dialogui/plugin.js new file mode 100644 index 00000000..96568ce6 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/dialogui/plugin.js @@ -0,0 +1,1409 @@ +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +/** + * @fileOverview The "dialogui" plugin. + */ + +CKEDITOR.plugins.add( 'dialogui', { + onLoad: function() { + + var initPrivateObject = function( elementDefinition ) { + this._ || ( this._ = {} ); + this._[ 'default' ] = this._.initValue = elementDefinition[ 'default' ] || ''; + this._.required = elementDefinition[ 'required' ] || false; + var args = [ this._ ]; + for ( var i = 1; i < arguments.length; i++ ) + args.push( arguments[ i ] ); + args.push( true ); + CKEDITOR.tools.extend.apply( CKEDITOR.tools, args ); + return this._; + }, + textBuilder = { + build: function( dialog, elementDefinition, output ) { + return new CKEDITOR.ui.dialog.textInput( dialog, elementDefinition, output ); + } + }, + commonBuilder = { + build: function( dialog, elementDefinition, output ) { + return new CKEDITOR.ui.dialog[ elementDefinition.type ]( dialog, elementDefinition, output ); + } + }, + containerBuilder = { + build: function( dialog, elementDefinition, output ) { + var children = elementDefinition.children, + child, + childHtmlList = [], + childObjList = []; + for ( var i = 0; + ( i < children.length && ( child = children[ i ] ) ); i++ ) { + var childHtml = []; + childHtmlList.push( childHtml ); + childObjList.push( CKEDITOR.dialog._.uiElementBuilders[ child.type ].build( dialog, child, childHtml ) ); + } + return new CKEDITOR.ui.dialog[ elementDefinition.type ]( dialog, childObjList, childHtmlList, output, elementDefinition ); + } + }, + commonPrototype = { + isChanged: function() { + return this.getValue() != this.getInitValue(); + }, + + reset: function( noChangeEvent ) { + this.setValue( this.getInitValue(), noChangeEvent ); + }, + + setInitValue: function() { + this._.initValue = this.getValue(); + }, + + resetInitValue: function() { + this._.initValue = this._[ 'default' ]; + }, + + getInitValue: function() { + return this._.initValue; + } + }, + commonEventProcessors = CKEDITOR.tools.extend( {}, CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors, { + onChange: function( dialog, func ) { + if ( !this._.domOnChangeRegistered ) { + dialog.on( 'load', function() { + this.getInputElement().on( 'change', function() { + // Make sure 'onchange' doesn't get fired after dialog closed. (#5719) + if ( !dialog.parts.dialog.isVisible() ) + return; + + this.fire( 'change', { value: this.getValue() } ); + }, this ); + }, this ); + this._.domOnChangeRegistered = true; + } + + this.on( 'change', func ); + } + }, true ), + eventRegex = /^on([A-Z]\w+)/, + cleanInnerDefinition = function( def ) { + // An inner UI element should not have the parent's type, title or events. + for ( var i in def ) { + if ( eventRegex.test( i ) || i == 'title' || i == 'type' ) + delete def[ i ]; + } + return def; + }; + + CKEDITOR.tools.extend( CKEDITOR.ui.dialog, { + /** + * Base class for all dialog elements with a textual label on the left. + * + * @class CKEDITOR.ui.dialog.labeledElement + * @extends CKEDITOR.ui.dialog.uiElement + * @constructor Creates a labeledElement class instance. + * @param {CKEDITOR.dialog} dialog Parent dialog object. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition + * The element definition. Accepted fields: + * + * * `label` (Required) The label string. + * * `labelLayout` (Optional) Put 'horizontal' here if the + * label element is to be layed out horizontally. Otherwise a vertical + * layout will be used. + * * `widths` (Optional) This applies only for horizontal + * layouts - an 2-element array of lengths to specify the widths of the + * label and the content element. + * + * @param {Array} htmlList List of HTML code to output to. + * @param {Function} contentHtml + * A function returning the HTML code string to be added inside the content + * cell. + */ + labeledElement: function( dialog, elementDefinition, htmlList, contentHtml ) { + if ( arguments.length < 4 ) + return; + + var _ = initPrivateObject.call( this, elementDefinition ); + _.labelId = CKEDITOR.tools.getNextId() + '_label'; + var children = this._.children = []; + + var innerHTML = function() { + var html = [], + requiredClass = elementDefinition.required ? ' cke_required' : ''; + if ( elementDefinition.labelLayout != 'horizontal' ) { + html.push( + '', + '
    ', + contentHtml.call( this, dialog, elementDefinition ), + '
    ' ); + } else { + var hboxDefinition = { + type: 'hbox', + widths: elementDefinition.widths, + padding: 0, + children: [ + { + type: 'html', + html: '
    ' + }, + { + type: 'html', + html: '' + + contentHtml.call( this, dialog, elementDefinition ) + + '' + } + ] + }; + CKEDITOR.dialog._.uiElementBuilders.hbox.build( dialog, hboxDefinition, html ); + } + return html.join( '' ); + }; + CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition, htmlList, 'div', null, { role: 'presentation' }, innerHTML ); + }, + + /** + * A text input with a label. This UI element class represents both the + * single-line text inputs and password inputs in dialog boxes. + * + * @class CKEDITOR.ui.dialog.textInput + * @extends CKEDITOR.ui.dialog.labeledElement + * @constructor Creates a textInput class instance. + * @param {CKEDITOR.dialog} dialog Parent dialog object. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition + * The element definition. Accepted fields: + * + * * `default` (Optional) The default value. + * * `validate` (Optional) The validation function. + * * `maxLength` (Optional) The maximum length of text box contents. + * * `size` (Optional) The size of the text box. This is + * usually overridden by the size defined by the skin, however. + * + * @param {Array} htmlList List of HTML code to output to. + */ + textInput: function( dialog, elementDefinition, htmlList ) { + if ( arguments.length < 3 ) + return; + + initPrivateObject.call( this, elementDefinition ); + var domId = this._.inputId = CKEDITOR.tools.getNextId() + '_textInput', + attributes = { 'class': 'cke_dialog_ui_input_' + elementDefinition.type, id: domId, type: elementDefinition.type }, + i; + + // Set the validator, if any. + if ( elementDefinition.validate ) + this.validate = elementDefinition.validate; + + // Set the max length and size. + if ( elementDefinition.maxLength ) + attributes.maxlength = elementDefinition.maxLength; + if ( elementDefinition.size ) + attributes.size = elementDefinition.size; + + if ( elementDefinition.inputStyle ) + attributes.style = elementDefinition.inputStyle; + + // If user presses Enter in a text box, it implies clicking OK for the dialog. + var me = this, + keyPressedOnMe = false; + dialog.on( 'load', function() { + me.getInputElement().on( 'keydown', function( evt ) { + if ( evt.data.getKeystroke() == 13 ) + keyPressedOnMe = true; + } ); + + // Lower the priority this 'keyup' since 'ok' will close the dialog.(#3749) + me.getInputElement().on( 'keyup', function( evt ) { + if ( evt.data.getKeystroke() == 13 && keyPressedOnMe ) { + dialog.getButton( 'ok' ) && setTimeout( function() { + dialog.getButton( 'ok' ).click(); + }, 0 ); + keyPressedOnMe = false; + } + }, null, null, 1000 ); + } ); + + var innerHTML = function() { + // IE BUG: Text input fields in IE at 100% would exceed a or inline + // container's width, so need to wrap it inside a
    . + var html = [ '' ); + return html.join( '' ); + }; + CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML ); + }, + + /** + * A text area with a label on the top or left. + * + * @class CKEDITOR.ui.dialog.textarea + * @extends CKEDITOR.ui.dialog.labeledElement + * @constructor Creates a textarea class instance. + * @param {CKEDITOR.dialog} dialog Parent dialog object. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition + * + * The element definition. Accepted fields: + * + * * `rows` (Optional) The number of rows displayed. + * Defaults to 5 if not defined. + * * `cols` (Optional) The number of cols displayed. + * Defaults to 20 if not defined. Usually overridden by skins. + * * `default` (Optional) The default value. + * * `validate` (Optional) The validation function. + * + * @param {Array} htmlList List of HTML code to output to. + */ + textarea: function( dialog, elementDefinition, htmlList ) { + if ( arguments.length < 3 ) + return; + + initPrivateObject.call( this, elementDefinition ); + var me = this, + domId = this._.inputId = CKEDITOR.tools.getNextId() + '_textarea', + attributes = {}; + + if ( elementDefinition.validate ) + this.validate = elementDefinition.validate; + + // Generates the essential attributes for the textarea tag. + attributes.rows = elementDefinition.rows || 5; + attributes.cols = elementDefinition.cols || 20; + + attributes[ 'class' ] = 'cke_dialog_ui_input_textarea ' + ( elementDefinition[ 'class' ] || '' ); + + if ( typeof elementDefinition.inputStyle != 'undefined' ) + attributes.style = elementDefinition.inputStyle; + + if ( elementDefinition.dir ) + attributes.dir = elementDefinition.dir; + + var innerHTML = function() { + attributes[ 'aria-labelledby' ] = this._.labelId; + this._.required && ( attributes[ 'aria-required' ] = this._.required ); + var html = [ '' ); + return html.join( '' ); + }; + CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML ); + }, + + /** + * A single checkbox with a label on the right. + * + * @class CKEDITOR.ui.dialog.checkbox + * @extends CKEDITOR.ui.dialog.uiElement + * @constructor Creates a checkbox class instance. + * @param {CKEDITOR.dialog} dialog Parent dialog object. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition + * The element definition. Accepted fields: + * + * * `checked` (Optional) Whether the checkbox is checked + * on instantiation. Defaults to false. + * * `validate` (Optional) The validation function. + * * `label` (Optional) The checkbox label. + * + * @param {Array} htmlList List of HTML code to output to. + */ + checkbox: function( dialog, elementDefinition, htmlList ) { + if ( arguments.length < 3 ) + return; + + var _ = initPrivateObject.call( this, elementDefinition, { 'default': !!elementDefinition[ 'default' ] } ); + + if ( elementDefinition.validate ) + this.validate = elementDefinition.validate; + + var innerHTML = function() { + var myDefinition = CKEDITOR.tools.extend( {}, elementDefinition, { + id: elementDefinition.id ? elementDefinition.id + '_checkbox' : CKEDITOR.tools.getNextId() + '_checkbox' + }, true ), + html = []; + + var labelId = CKEDITOR.tools.getNextId() + '_label'; + var attributes = { 'class': 'cke_dialog_ui_checkbox_input', type: 'checkbox', 'aria-labelledby': labelId }; + cleanInnerDefinition( myDefinition ); + if ( elementDefinition[ 'default' ] ) + attributes.checked = 'checked'; + + if ( typeof myDefinition.inputStyle != 'undefined' ) + myDefinition.style = myDefinition.inputStyle; + + _.checkbox = new CKEDITOR.ui.dialog.uiElement( dialog, myDefinition, html, 'input', null, attributes ); + html.push( ' ' ); + return html.join( '' ); + }; + + CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition, htmlList, 'span', null, null, innerHTML ); + }, + + /** + * A group of radio buttons. + * + * @class CKEDITOR.ui.dialog.radio + * @extends CKEDITOR.ui.dialog.labeledElement + * @constructor Creates a radio class instance. + * @param {CKEDITOR.dialog} dialog Parent dialog object. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition + * The element definition. Accepted fields: + * + * * `default` (Required) The default value. + * * `validate` (Optional) The validation function. + * * `items` (Required) An array of options. Each option + * is a 1- or 2-item array of format `[ 'Description', 'Value' ]`. If `'Value'` + * is missing, then the value would be assumed to be the same as the description. + * + * @param {Array} htmlList List of HTML code to output to. + */ + radio: function( dialog, elementDefinition, htmlList ) { + if ( arguments.length < 3 ) + return; + + initPrivateObject.call( this, elementDefinition ); + + if ( !this._[ 'default' ] ) + this._[ 'default' ] = this._.initValue = elementDefinition.items[ 0 ][ 1 ]; + + if ( elementDefinition.validate ) + this.validate = elementDefinition.valdiate; + + var children = [], + me = this; + + var innerHTML = function() { + var inputHtmlList = [], + html = [], + commonName = ( elementDefinition.id ? elementDefinition.id : CKEDITOR.tools.getNextId() ) + '_radio'; + + for ( var i = 0; i < elementDefinition.items.length; i++ ) { + var item = elementDefinition.items[ i ], + title = item[ 2 ] !== undefined ? item[ 2 ] : item[ 0 ], + value = item[ 1 ] !== undefined ? item[ 1 ] : item[ 0 ], + inputId = CKEDITOR.tools.getNextId() + '_radio_input', + labelId = inputId + '_label', + + inputDefinition = CKEDITOR.tools.extend( {}, elementDefinition, { + id: inputId, + title: null, + type: null + }, true ), + + labelDefinition = CKEDITOR.tools.extend( {}, inputDefinition, { + title: title + }, true ), + + inputAttributes = { + type: 'radio', + 'class': 'cke_dialog_ui_radio_input', + name: commonName, + value: value, + 'aria-labelledby': labelId + }, + + inputHtml = []; + + if ( me._[ 'default' ] == value ) + inputAttributes.checked = 'checked'; + + cleanInnerDefinition( inputDefinition ); + cleanInnerDefinition( labelDefinition ); + + if ( typeof inputDefinition.inputStyle != 'undefined' ) + inputDefinition.style = inputDefinition.inputStyle; + + // Make inputs of radio type focusable (#10866). + inputDefinition.keyboardFocusable = true; + + children.push( new CKEDITOR.ui.dialog.uiElement( dialog, inputDefinition, inputHtml, 'input', null, inputAttributes ) ); + + inputHtml.push( ' ' ); + + new CKEDITOR.ui.dialog.uiElement( dialog, labelDefinition, inputHtml, 'label', null, { + id: labelId, + 'for': inputAttributes.id + }, item[ 0 ] ); + + inputHtmlList.push( inputHtml.join( '' ) ); + } + + new CKEDITOR.ui.dialog.hbox( dialog, children, inputHtmlList, html ); + + return html.join( '' ); + }; + + CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML ); + this._.children = children; + }, + + /** + * A button with a label inside. + * + * @class CKEDITOR.ui.dialog.button + * @extends CKEDITOR.ui.dialog.uiElement + * @constructor Creates a button class instance. + * @param {CKEDITOR.dialog} dialog Parent dialog object. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition + * The element definition. Accepted fields: + * + * * `label` (Required) The button label. + * * `disabled` (Optional) Set to true if you want the + * button to appear in disabled state. + * + * @param {Array} htmlList List of HTML code to output to. + */ + button: function( dialog, elementDefinition, htmlList ) { + if ( !arguments.length ) + return; + + if ( typeof elementDefinition == 'function' ) + elementDefinition = elementDefinition( dialog.getParentEditor() ); + + initPrivateObject.call( this, elementDefinition, { disabled: elementDefinition.disabled || false } ); + + // Add OnClick event to this input. + CKEDITOR.event.implementOn( this ); + + var me = this; + + // Register an event handler for processing button clicks. + dialog.on( 'load', function( eventInfo ) { + var element = this.getElement(); + + ( function() { + element.on( 'click', function( evt ) { + me.click(); + // #9958 + evt.data.preventDefault(); + } ); + + element.on( 'keydown', function( evt ) { + if ( evt.data.getKeystroke() in { 32: 1 } ) { + me.click(); + evt.data.preventDefault(); + } + } ); + } )(); + + element.unselectable(); + }, this ); + + var outerDefinition = CKEDITOR.tools.extend( {}, elementDefinition ); + delete outerDefinition.style; + + var labelId = CKEDITOR.tools.getNextId() + '_label'; + CKEDITOR.ui.dialog.uiElement.call( this, dialog, outerDefinition, htmlList, 'a', null, { + style: elementDefinition.style, + href: 'javascript:void(0)', + title: elementDefinition.label, + hidefocus: 'true', + 'class': elementDefinition[ 'class' ], + role: 'button', + 'aria-labelledby': labelId + }, '' + + CKEDITOR.tools.htmlEncode( elementDefinition.label ) + + '' ); + }, + + /** + * A select box. + * + * @class CKEDITOR.ui.dialog.select + * @extends CKEDITOR.ui.dialog.uiElement + * @constructor Creates a button class instance. + * @param {CKEDITOR.dialog} dialog Parent dialog object. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition + * The element definition. Accepted fields: + * + * * `default` (Required) The default value. + * * `validate` (Optional) The validation function. + * * `items` (Required) An array of options. Each option + * is a 1- or 2-item array of format `[ 'Description', 'Value' ]`. If `'Value'` + * is missing, then the value would be assumed to be the same as the + * description. + * * `multiple` (Optional) Set this to true if you'd like + * to have a multiple-choice select box. + * * `size` (Optional) The number of items to display in + * the select box. + * + * @param {Array} htmlList List of HTML code to output to. + */ + select: function( dialog, elementDefinition, htmlList ) { + if ( arguments.length < 3 ) + return; + + var _ = initPrivateObject.call( this, elementDefinition ); + + if ( elementDefinition.validate ) + this.validate = elementDefinition.validate; + + _.inputId = CKEDITOR.tools.getNextId() + '_select'; + + var innerHTML = function() { + var myDefinition = CKEDITOR.tools.extend( {}, elementDefinition, { + id: elementDefinition.id ? elementDefinition.id + '_select' : CKEDITOR.tools.getNextId() + '_select' + }, true ), + html = [], + innerHTML = [], + attributes = { 'id': _.inputId, 'class': 'cke_dialog_ui_input_select', 'aria-labelledby': this._.labelId }; + + html.push( '' ); + + return html.join( '' ); + }; + + CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML ); + }, + + /** + * A file upload input. + * + * @class CKEDITOR.ui.dialog.file + * @extends CKEDITOR.ui.dialog.labeledElement + * @constructor Creates a file class instance. + * @param {CKEDITOR.dialog} dialog Parent dialog object. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition + * The element definition. Accepted fields: + * + * * `validate` (Optional) The validation function. + * + * @param {Array} htmlList List of HTML code to output to. + */ + file: function( dialog, elementDefinition, htmlList ) { + if ( arguments.length < 3 ) + return; + + if ( elementDefinition[ 'default' ] === undefined ) + elementDefinition[ 'default' ] = ''; + + var _ = CKEDITOR.tools.extend( initPrivateObject.call( this, elementDefinition ), { definition: elementDefinition, buttons: [] } ); + + if ( elementDefinition.validate ) + this.validate = elementDefinition.validate; + + /** @ignore */ + var innerHTML = function() { + _.frameId = CKEDITOR.tools.getNextId() + '_fileInput'; + + var html = [ + '' + + '' ); + + return html.join( '' ); + }; + + // IE BUG: Parent container does not resize to contain the iframe automatically. + dialog.on( 'load', function() { + var iframe = CKEDITOR.document.getById( _.frameId ), + contentDiv = iframe.getParent(); + contentDiv.addClass( 'cke_dialog_ui_input_file' ); + } ); + + CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML ); + }, + + /** + * A button for submitting the file in a file upload input. + * + * @class CKEDITOR.ui.dialog.fileButton + * @extends CKEDITOR.ui.dialog.button + * @constructor Creates a fileButton class instance. + * @param {CKEDITOR.dialog} dialog Parent dialog object. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition + * The element definition. Accepted fields: + * + * * `for` (Required) The file input's page and element Id + * to associate to, in a 2-item array format: `[ 'page_id', 'element_id' ]`. + * * `validate` (Optional) The validation function. + * + * @param {Array} htmlList List of HTML code to output to. + */ + fileButton: function( dialog, elementDefinition, htmlList ) { + if ( arguments.length < 3 ) + return; + + var _ = initPrivateObject.call( this, elementDefinition ), + me = this; + + if ( elementDefinition.validate ) + this.validate = elementDefinition.validate; + + var myDefinition = CKEDITOR.tools.extend( {}, elementDefinition ); + var onClick = myDefinition.onClick; + myDefinition.className = ( myDefinition.className ? myDefinition.className + ' ' : '' ) + 'cke_dialog_ui_button'; + myDefinition.onClick = function( evt ) { + var target = elementDefinition[ 'for' ]; // [ pageId, elementId ] + if ( !onClick || onClick.call( this, evt ) !== false ) { + dialog.getContentElement( target[ 0 ], target[ 1 ] ).submit(); + this.disable(); + } + }; + + dialog.on( 'load', function() { + dialog.getContentElement( elementDefinition[ 'for' ][ 0 ], elementDefinition[ 'for' ][ 1 ] )._.buttons.push( me ); + } ); + + CKEDITOR.ui.dialog.button.call( this, dialog, myDefinition, htmlList ); + }, + + html: ( function() { + var myHtmlRe = /^\s*<[\w:]+\s+([^>]*)?>/, + theirHtmlRe = /^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/, + emptyTagRe = /\/$/; + /** + * A dialog element made from raw HTML code. + * + * @class CKEDITOR.ui.dialog.html + * @extends CKEDITOR.ui.dialog.uiElement + * @constructor Creates a html class instance. + * @param {CKEDITOR.dialog} dialog Parent dialog object. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition Element definition. + * Accepted fields: + * + * * `html` (Required) HTML code of this element. + * + * @param {Array} htmlList List of HTML code to be added to the dialog's content area. + */ + return function( dialog, elementDefinition, htmlList ) { + if ( arguments.length < 3 ) + return; + + var myHtmlList = [], + myHtml, + theirHtml = elementDefinition.html, + myMatch, theirMatch; + + // If the HTML input doesn't contain any tags at the beginning, add a tag around it. + if ( theirHtml.charAt( 0 ) != '<' ) + theirHtml = '' + theirHtml + ''; + + // Look for focus function in definition. + var focus = elementDefinition.focus; + if ( focus ) { + var oldFocus = this.focus; + this.focus = function() { + ( typeof focus == 'function' ? focus : oldFocus ).call( this ); + this.fire( 'focus' ); + }; + if ( elementDefinition.isFocusable ) { + var oldIsFocusable = this.isFocusable; + this.isFocusable = oldIsFocusable; + } + this.keyboardFocusable = true; + } + + CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition, myHtmlList, 'span', null, null, '' ); + + // Append the attributes created by the uiElement call to the real HTML. + myHtml = myHtmlList.join( '' ); + myMatch = myHtml.match( myHtmlRe ); + theirMatch = theirHtml.match( theirHtmlRe ) || [ '', '', '' ]; + + if ( emptyTagRe.test( theirMatch[ 1 ] ) ) { + theirMatch[ 1 ] = theirMatch[ 1 ].slice( 0, -1 ); + theirMatch[ 2 ] = '/' + theirMatch[ 2 ]; + } + + htmlList.push( [ theirMatch[ 1 ], ' ', myMatch[ 1 ] || '', theirMatch[ 2 ] ].join( '' ) ); + }; + } )(), + + /** + * Form fieldset for grouping dialog UI elements. + * + * @class CKEDITOR.ui.dialog.fieldset + * @extends CKEDITOR.ui.dialog.uiElement + * @constructor Creates a fieldset class instance. + * @param {CKEDITOR.dialog} dialog Parent dialog object. + * @param {Array} childObjList + * Array of {@link CKEDITOR.ui.dialog.uiElement} objects inside this container. + * @param {Array} childHtmlList Array of HTML code that correspond to the HTML output of all the + * objects in childObjList. + * @param {Array} htmlList Array of HTML code that this element will output to. + * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition + * The element definition. Accepted fields: + * + * * `label` (Optional) The legend of the this fieldset. + * * `children` (Required) An array of dialog field definitions which will be grouped inside this fieldset. + * + */ + fieldset: function( dialog, childObjList, childHtmlList, htmlList, elementDefinition ) { + var legendLabel = elementDefinition.label; + /** @ignore */ + var innerHTML = function() { + var html = []; + legendLabel && html.push( '' + legendLabel + '' ); + for ( var i = 0; i < childHtmlList.length; i++ ) + html.push( childHtmlList[ i ] ); + return html.join( '' ); + }; + + this._ = { children: childObjList }; + CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition, htmlList, 'fieldset', null, null, innerHTML ); + } + + }, true ); + + CKEDITOR.ui.dialog.html.prototype = new CKEDITOR.ui.dialog.uiElement; + + /** @class CKEDITOR.ui.dialog.labeledElement */ + CKEDITOR.ui.dialog.labeledElement.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.uiElement, { + /** + * Sets the label text of the element. + * + * @param {String} label The new label text. + * @returns {CKEDITOR.ui.dialog.labeledElement} The current labeled element. + */ + setLabel: function( label ) { + var node = CKEDITOR.document.getById( this._.labelId ); + if ( node.getChildCount() < 1 ) + ( new CKEDITOR.dom.text( label, CKEDITOR.document ) ).appendTo( node ); + else + node.getChild( 0 ).$.nodeValue = label; + return this; + }, + + /** + * Retrieves the current label text of the elment. + * + * @returns {String} The current label text. + */ + getLabel: function() { + var node = CKEDITOR.document.getById( this._.labelId ); + if ( !node || node.getChildCount() < 1 ) + return ''; + else + return node.getChild( 0 ).getText(); + }, + + /** + * Defines the onChange event for UI element definitions. + * @property {Object} + */ + eventProcessors: commonEventProcessors + }, true ); + + /** @class CKEDITOR.ui.dialog.button */ + CKEDITOR.ui.dialog.button.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.uiElement, { + /** + * Simulates a click to the button. + * + * @returns {Object} Return value of the `click` event. + */ + click: function() { + if ( !this._.disabled ) + return this.fire( 'click', { dialog: this._.dialog } ); + return false; + }, + + /** + * Enables the button. + */ + enable: function() { + this._.disabled = false; + var element = this.getElement(); + element && element.removeClass( 'cke_disabled' ); + }, + + /** + * Disables the button. + */ + disable: function() { + this._.disabled = true; + this.getElement().addClass( 'cke_disabled' ); + }, + + /** + * @todo + */ + isVisible: function() { + return this.getElement().getFirst().isVisible(); + }, + + /** + * @todo + */ + isEnabled: function() { + return !this._.disabled; + }, + + /** + * Defines the onChange event and onClick for button element definitions. + * + * @property {Object} + */ + eventProcessors: CKEDITOR.tools.extend( {}, CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors, { + onClick: function( dialog, func ) { + this.on( 'click', function() { + func.apply( this, arguments ); + } ); + } + }, true ), + + /** + * Handler for the element's access key up event. Simulates a click to + * the button. + */ + accessKeyUp: function() { + this.click(); + }, + + /** + * Handler for the element's access key down event. Simulates a mouse + * down to the button. + */ + accessKeyDown: function() { + this.focus(); + }, + + keyboardFocusable: true + }, true ); + + /** @class CKEDITOR.ui.dialog.textInput */ + CKEDITOR.ui.dialog.textInput.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.labeledElement, { + /** + * Gets the text input DOM element under this UI object. + * + * @returns {CKEDITOR.dom.element} The DOM element of the text input. + */ + getInputElement: function() { + return CKEDITOR.document.getById( this._.inputId ); + }, + + /** + * Puts focus into the text input. + */ + focus: function() { + var me = this.selectParentTab(); + + // GECKO BUG: setTimeout() is needed to workaround invisible selections. + setTimeout( function() { + var element = me.getInputElement(); + element && element.$.focus(); + }, 0 ); + }, + + /** + * Selects all the text in the text input. + */ + select: function() { + var me = this.selectParentTab(); + + // GECKO BUG: setTimeout() is needed to workaround invisible selections. + setTimeout( function() { + var e = me.getInputElement(); + if ( e ) { + e.$.focus(); + e.$.select(); + } + }, 0 ); + }, + + /** + * Handler for the text input's access key up event. Makes a `select()` + * call to the text input. + */ + accessKeyUp: function() { + this.select(); + }, + + /** + * Sets the value of this text input object. + * + * uiElement.setValue( 'Blamo' ); + * + * @param {Object} value The new value. + * @returns {CKEDITOR.ui.dialog.textInput} The current UI element. + */ + setValue: function( value ) { + !value && ( value = '' ); + return CKEDITOR.ui.dialog.uiElement.prototype.setValue.apply( this, arguments ); + }, + + keyboardFocusable: true + }, commonPrototype, true ); + + CKEDITOR.ui.dialog.textarea.prototype = new CKEDITOR.ui.dialog.textInput(); + + /** @class CKEDITOR.ui.dialog.select */ + CKEDITOR.ui.dialog.select.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.labeledElement, { + /** + * Gets the DOM element of the select box. + * + * @returns {CKEDITOR.dom.element} The `` element of this file input. + * + * @returns {CKEDITOR.dom.element} The file input element. + */ + getInputElement: function() { + var frameDocument = CKEDITOR.document.getById( this._.frameId ).getFrameDocument(); + return frameDocument.$.forms.length > 0 ? new CKEDITOR.dom.element( frameDocument.$.forms[ 0 ].elements[ 0 ] ) : this.getElement(); + }, + + /** + * Uploads the file in the file input. + * + * @returns {CKEDITOR.ui.dialog.file} This object. + */ + submit: function() { + this.getInputElement().getParent().$.submit(); + return this; + }, + + /** + * Get the action assigned to the form. + * + * @returns {String} The value of the action. + */ + getAction: function() { + return this.getInputElement().getParent().$.action; + }, + + /** + * The events must be applied on the inner input element, and + * that must be done when the iframe & form has been loaded. + */ + registerEvents: function( definition ) { + var regex = /^on([A-Z]\w+)/, + match; + + var registerDomEvent = function( uiElement, dialog, eventName, func ) { + uiElement.on( 'formLoaded', function() { + uiElement.getInputElement().on( eventName, func, uiElement ); + } ); + }; + + for ( var i in definition ) { + if ( !( match = i.match( regex ) ) ) + continue; + + if ( this.eventProcessors[ i ] ) + this.eventProcessors[ i ].call( this, this._.dialog, definition[ i ] ); + else + registerDomEvent( this, this._.dialog, match[ 1 ].toLowerCase(), definition[ i ] ); + } + + return this; + }, + + /** + * Redraws the file input and resets the file path in the file input. + * The redraw logic is necessary because non-IE browsers tend to clear + * the `' ); + + var frameDocTpl = CKEDITOR.addTemplate( 'panel-frame-inner', '' + + '' + + '{css}' + + '' + + '<\/html>' ); + + /** @class CKEDITOR.ui.panel */ + CKEDITOR.ui.panel.prototype = { + /** + * Renders the combo. + * + * @param {CKEDITOR.editor} editor The editor instance which this button is + * to be used by. + * @param {Array} [output] The output array to which append the HTML relative + * to this button. + */ + render: function( editor, output ) { + this.getHolderElement = function() { + var holder = this._.holder; + + if ( !holder ) { + if ( this.isFramed ) { + var iframe = this.document.getById( this.id + '_frame' ), + parentDiv = iframe.getParent(), + doc = iframe.getFrameDocument(); + + // Make it scrollable on iOS. (#8308) + CKEDITOR.env.iOS && parentDiv.setStyles( { + 'overflow': 'scroll', + '-webkit-overflow-scrolling': 'touch' + } ); + + var onLoad = CKEDITOR.tools.addFunction( CKEDITOR.tools.bind( function( ev ) { + this.isLoaded = true; + if ( this.onLoad ) + this.onLoad(); + }, this ) ); + + doc.write( frameDocTpl.output( CKEDITOR.tools.extend( { + css: CKEDITOR.tools.buildStyleHtml( this.css ), + onload: 'window.parent.CKEDITOR.tools.callFunction(' + onLoad + ');' + }, data ) ) ); + + var win = doc.getWindow(); + + // Register the CKEDITOR global. + win.$.CKEDITOR = CKEDITOR; + + // Arrow keys for scrolling is only preventable with 'keypress' event in Opera (#4534). + doc.on( 'key' + ( CKEDITOR.env.opera ? 'press' : 'down' ), function( evt ) { + var keystroke = evt.data.getKeystroke(), + dir = this.document.getById( this.id ).getAttribute( 'dir' ); + + // Delegate key processing to block. + if ( this._.onKeyDown && this._.onKeyDown( keystroke ) === false ) { + evt.data.preventDefault(); + return; + } + + // ESC/ARROW-LEFT(ltr) OR ARROW-RIGHT(rtl) + if ( keystroke == 27 || keystroke == ( dir == 'rtl' ? 39 : 37 ) ) { + if ( this.onEscape && this.onEscape( keystroke ) === false ) + evt.data.preventDefault(); + } + }, this ); + + holder = doc.getBody(); + holder.unselectable(); + CKEDITOR.env.air && CKEDITOR.tools.callFunction( onLoad ); + } else + holder = this.document.getById( this.id ); + + this._.holder = holder; + } + + return holder; + }; + + var data = { + editorId: editor.id, + id: this.id, + langCode: editor.langCode, + dir: editor.lang.dir, + cls: this.className, + frame: '', + env: CKEDITOR.env.cssClass, + 'z-index': editor.config.baseFloatZIndex + 1 + }; + + if ( this.isFramed ) { + // With IE, the custom domain has to be taken care at first, + // for other browers, the 'src' attribute should be left empty to + // trigger iframe's 'load' event. + var src = + CKEDITOR.env.air ? 'javascript:void(0)' : + CKEDITOR.env.ie ? 'javascript:void(function(){' + encodeURIComponent( + 'document.open();' + + // In IE, the document domain must be set any time we call document.open(). + '(' + CKEDITOR.tools.fixDomain + ')();' + + 'document.close();' + ) + '}())' : + ''; + + data.frame = frameTpl.output( { + id: this.id + '_frame', + src: src + } ); + } + + var html = panelTpl.output( data ); + + if ( output ) + output.push( html ); + + return html; + }, + + /** + * @todo + */ + addBlock: function( name, block ) { + block = this._.blocks[ name ] = block instanceof CKEDITOR.ui.panel.block ? block : new CKEDITOR.ui.panel.block( this.getHolderElement(), block ); + + if ( !this._.currentBlock ) + this.showBlock( name ); + + return block; + }, + + /** + * @todo + */ + getBlock: function( name ) { + return this._.blocks[ name ]; + }, + + /** + * @todo + */ + showBlock: function( name ) { + var blocks = this._.blocks, + block = blocks[ name ], + current = this._.currentBlock; + + // ARIA role works better in IE on the body element, while on the iframe + // for FF. (#8864) + var holder = !this.forceIFrame || CKEDITOR.env.ie ? this._.holder : this.document.getById( this.id + '_frame' ); + + if ( current ) + current.hide(); + + this._.currentBlock = block; + + CKEDITOR.fire( 'ariaWidget', holder ); + + // Reset the focus index, so it will always go into the first one. + block._.focusIndex = -1; + + this._.onKeyDown = block.onKeyDown && CKEDITOR.tools.bind( block.onKeyDown, block ); + + block.show(); + + return block; + }, + + /** + * @todo + */ + destroy: function() { + this.element && this.element.remove(); + } + }; + + /** + * @class + * + * @todo class and all methods + */ + CKEDITOR.ui.panel.block = CKEDITOR.tools.createClass( { + /** + * Creates a block class instances. + * + * @constructor + * @todo + */ + $: function( blockHolder, blockDefinition ) { + this.element = blockHolder.append( blockHolder.getDocument().createElement( 'div', { + attributes: { + 'tabindex': -1, + 'class': 'cke_panel_block' + }, + styles: { + display: 'none' + } + } ) ); + + // Copy all definition properties to this object. + if ( blockDefinition ) + CKEDITOR.tools.extend( this, blockDefinition ); + + // Set the a11y attributes of this element ... + this.element.setAttributes( { + 'role': this.attributes.role || 'presentation', + 'aria-label': this.attributes[ 'aria-label' ], + 'title': this.attributes.title || this.attributes[ 'aria-label' ] + } ); + + this.keys = {}; + + this._.focusIndex = -1; + + // Disable context menu for panels. + this.element.disableContextMenu(); + }, + + _: { + + /** + * Mark the item specified by the index as current activated. + */ + markItem: function( index ) { + if ( index == -1 ) + return; + var links = this.element.getElementsByTag( 'a' ); + var item = links.getItem( this._.focusIndex = index ); + + // Safari need focus on the iframe window first(#3389), but we need + // lock the blur to avoid hiding the panel. + if ( CKEDITOR.env.webkit || CKEDITOR.env.opera ) + item.getDocument().getWindow().focus(); + item.focus(); + + this.onMark && this.onMark( item ); + } + }, + + proto: { + show: function() { + this.element.setStyle( 'display', '' ); + }, + + hide: function() { + if ( !this.onHide || this.onHide.call( this ) !== true ) + this.element.setStyle( 'display', 'none' ); + }, + + onKeyDown: function( keystroke, noCycle ) { + var keyAction = this.keys[ keystroke ]; + switch ( keyAction ) { + // Move forward. + case 'next': + var index = this._.focusIndex, + links = this.element.getElementsByTag( 'a' ), + link; + + while ( ( link = links.getItem( ++index ) ) ) { + // Move the focus only if the element is marked with + // the _cke_focus and it it's visible (check if it has + // width). + if ( link.getAttribute( '_cke_focus' ) && link.$.offsetWidth ) { + this._.focusIndex = index; + link.focus(); + break; + } + } + + // If no link was found, cycle and restart from the top. (#11125) + if ( !link && !noCycle ) { + this._.focusIndex = -1; + return this.onKeyDown( keystroke, 1 ); + } + + return false; + + // Move backward. + case 'prev': + index = this._.focusIndex; + links = this.element.getElementsByTag( 'a' ); + + while ( index > 0 && ( link = links.getItem( --index ) ) ) { + // Move the focus only if the element is marked with + // the _cke_focus and it it's visible (check if it has + // width). + if ( link.getAttribute( '_cke_focus' ) && link.$.offsetWidth ) { + this._.focusIndex = index; + link.focus(); + break; + } + + // Make sure link is null when the loop ends and nothing was + // found (#11125). + link = null; + } + + // If no link was found, cycle and restart from the bottom. (#11125) + if ( !link && !noCycle ) { + this._.focusIndex = links.count(); + return this.onKeyDown( keystroke, 1 ); + } + + return false; + + case 'click': + case 'mouseup': + index = this._.focusIndex; + link = index >= 0 && this.element.getElementsByTag( 'a' ).getItem( index ); + + if ( link ) + link.$[ keyAction ] ? link.$[ keyAction ]() : link.$[ 'on' + keyAction ](); + + return false; + } + + return true; + } + } + } ); + +} )(); + +/** + * Fired when a panel is added to the document. + * + * @event ariaWidget + * @member CKEDITOR + * @param {Object} data The element wrapping the panel. + */ diff --git a/lam/templates/lib/extra/ckeditor/plugins/panelbutton/plugin.js b/lam/templates/lib/extra/ckeditor/plugins/panelbutton/plugin.js new file mode 100644 index 00000000..67a31237 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/panelbutton/plugin.js @@ -0,0 +1,138 @@ +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.plugins.add( 'panelbutton', { + requires: 'button', + onLoad: function() { + function clickFn( editor ) { + var _ = this._; + + if ( _.state == CKEDITOR.TRISTATE_DISABLED ) + return; + + this.createPanel( editor ); + + if ( _.on ) { + _.panel.hide(); + return; + } + + _.panel.showBlock( this._.id, this.document.getById( this._.id ), 4 ); + } + + /** + * @class + * @extends CKEDITOR.ui.button + * @todo class and methods + */ + CKEDITOR.ui.panelButton = CKEDITOR.tools.createClass( { + base: CKEDITOR.ui.button, + + /** + * Creates a panelButton class instance. + * + * @constructor + */ + $: function( definition ) { + // We don't want the panel definition in this object. + var panelDefinition = definition.panel || {}; + delete definition.panel; + + this.base( definition ); + + this.document = ( panelDefinition.parent && panelDefinition.parent.getDocument() ) || CKEDITOR.document; + + panelDefinition.block = { + attributes: panelDefinition.attributes + }; + panelDefinition.toolbarRelated = true; + + this.hasArrow = true; + + this.click = clickFn; + + this._ = { + panelDefinition: panelDefinition + }; + }, + + statics: { + handler: { + create: function( definition ) { + return new CKEDITOR.ui.panelButton( definition ); + } + } + }, + + proto: { + createPanel: function( editor ) { + var _ = this._; + + if ( _.panel ) + return; + + var panelDefinition = this._.panelDefinition, + panelBlockDefinition = this._.panelDefinition.block, + panelParentElement = panelDefinition.parent || CKEDITOR.document.getBody(), + panel = this._.panel = new CKEDITOR.ui.floatPanel( editor, panelParentElement, panelDefinition ), + block = panel.addBlock( _.id, panelBlockDefinition ), + me = this; + + panel.onShow = function() { + if ( me.className ) + this.element.addClass( me.className + '_panel' ); + + me.setState( CKEDITOR.TRISTATE_ON ); + + _.on = 1; + + me.editorFocus && editor.focus(); + + if ( me.onOpen ) + me.onOpen(); + }; + + panel.onHide = function( preventOnClose ) { + if ( me.className ) + this.element.getFirst().removeClass( me.className + '_panel' ); + + me.setState( me.modes && me.modes[ editor.mode ] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED ); + + _.on = 0; + + if ( !preventOnClose && me.onClose ) + me.onClose(); + }; + + panel.onEscape = function() { + panel.hide( 1 ); + me.document.getById( _.id ).focus(); + }; + + if ( this.onBlock ) + this.onBlock( panel, block ); + + block.onHide = function() { + _.on = 0; + me.setState( CKEDITOR.TRISTATE_OFF ); + }; + } + } + } ); + + }, + beforeInit: function( editor ) { + editor.ui.addHandler( CKEDITOR.UI_PANELBUTTON, CKEDITOR.ui.panelButton.handler ); + } +} ); + +/** + * Button UI element. + * + * @readonly + * @property {String} [='panelbutton'] + * @member CKEDITOR + */ +CKEDITOR.UI_PANELBUTTON = 'panelbutton'; diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/icons/hidpi/removeformat.png b/lam/templates/lib/extra/ckeditor/plugins/removeformat/icons/hidpi/removeformat.png new file mode 100644 index 00000000..910b0a3c Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/removeformat/icons/hidpi/removeformat.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/icons/removeformat.png b/lam/templates/lib/extra/ckeditor/plugins/removeformat/icons/removeformat.png new file mode 100644 index 00000000..1bc9b386 Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/removeformat/icons/removeformat.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/af.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/af.js new file mode 100644 index 00000000..dbb11de6 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/af.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'af', { + toolbar: 'Verwyder opmaak' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ar.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ar.js new file mode 100644 index 00000000..4957a1a9 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ar.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'ar', { + toolbar: 'إزالة التنسيقات' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/bg.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/bg.js new file mode 100644 index 00000000..819d11e3 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/bg.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'bg', { + toolbar: 'Премахване на форматирането' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/bn.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/bn.js new file mode 100644 index 00000000..f1ef920f --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/bn.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'bn', { + toolbar: 'ফরমেট সরাও' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/bs.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/bs.js new file mode 100644 index 00000000..ff4ff731 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/bs.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'bs', { + toolbar: 'Poništi format' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ca.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ca.js new file mode 100644 index 00000000..5dca3f95 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ca.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'ca', { + toolbar: 'Elimina Format' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/cs.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/cs.js new file mode 100644 index 00000000..adc1e4a8 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/cs.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'cs', { + toolbar: 'Odstranit formátování' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/cy.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/cy.js new file mode 100644 index 00000000..7933163d --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/cy.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'cy', { + toolbar: 'Tynnu Fformat' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/da.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/da.js new file mode 100644 index 00000000..cd25685f --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/da.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'da', { + toolbar: 'Fjern formatering' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/de.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/de.js new file mode 100644 index 00000000..cae33331 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/de.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'de', { + toolbar: 'Formatierungen entfernen' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/el.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/el.js new file mode 100644 index 00000000..202278b7 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/el.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'el', { + toolbar: 'Εκκαθάριση Μορφοποίησης' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/en-au.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/en-au.js new file mode 100644 index 00000000..7cc52fe6 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/en-au.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'en-au', { + toolbar: 'Remove Format' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/en-ca.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/en-ca.js new file mode 100644 index 00000000..1d87c1f4 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/en-ca.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'en-ca', { + toolbar: 'Remove Format' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/en-gb.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/en-gb.js new file mode 100644 index 00000000..86611a27 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/en-gb.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'en-gb', { + toolbar: 'Remove Format' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/en.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/en.js new file mode 100644 index 00000000..b3b515c1 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/en.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'en', { + toolbar: 'Remove Format' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/eo.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/eo.js new file mode 100644 index 00000000..b20da9cb --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/eo.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'eo', { + toolbar: 'Forigi Formaton' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/es.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/es.js new file mode 100644 index 00000000..51617145 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/es.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'es', { + toolbar: 'Eliminar Formato' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/et.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/et.js new file mode 100644 index 00000000..67ff9ae6 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/et.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'et', { + toolbar: 'Vormingu eemaldamine' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/eu.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/eu.js new file mode 100644 index 00000000..fedeea93 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/eu.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'eu', { + toolbar: 'Kendu Formatua' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/fa.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/fa.js new file mode 100644 index 00000000..190352c2 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/fa.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'fa', { + toolbar: 'برداشتن فرمت' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/fi.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/fi.js new file mode 100644 index 00000000..53611077 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/fi.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'fi', { + toolbar: 'Poista muotoilu' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/fo.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/fo.js new file mode 100644 index 00000000..edeec02f --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/fo.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'fo', { + toolbar: 'Strika sniðgeving' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/fr-ca.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/fr-ca.js new file mode 100644 index 00000000..0495e31c --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/fr-ca.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'fr-ca', { + toolbar: 'Supprimer le formatage' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/fr.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/fr.js new file mode 100644 index 00000000..e4fcf533 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/fr.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'fr', { + toolbar: 'Supprimer la mise en forme' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/gl.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/gl.js new file mode 100644 index 00000000..e3eb0ffb --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/gl.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'gl', { + toolbar: 'Retirar o formato' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/gu.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/gu.js new file mode 100644 index 00000000..ad227ecf --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/gu.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'gu', { + toolbar: 'ફૉર્મટ કાઢવું' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/he.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/he.js new file mode 100644 index 00000000..ffc2282e --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/he.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'he', { + toolbar: 'הסרת העיצוב' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/hi.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/hi.js new file mode 100644 index 00000000..4cc13c59 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/hi.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'hi', { + toolbar: 'फ़ॉर्मैट हटायें' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/hr.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/hr.js new file mode 100644 index 00000000..a6396dbf --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/hr.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'hr', { + toolbar: 'Ukloni formatiranje' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/hu.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/hu.js new file mode 100644 index 00000000..05875f0d --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/hu.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'hu', { + toolbar: 'Formázás eltávolítása' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/id.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/id.js new file mode 100644 index 00000000..a6cb0cd4 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/id.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'id', { + toolbar: 'Hapus Format' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/is.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/is.js new file mode 100644 index 00000000..b2b9a103 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/is.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'is', { + toolbar: 'Fjarlægja snið' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/it.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/it.js new file mode 100644 index 00000000..dd58043d --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/it.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'it', { + toolbar: 'Elimina formattazione' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ja.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ja.js new file mode 100644 index 00000000..620feb37 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ja.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'ja', { + toolbar: '書式を解除' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ka.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ka.js new file mode 100644 index 00000000..5d9ae41a --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ka.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'ka', { + toolbar: 'ფორმატირების მოხსნა' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/km.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/km.js new file mode 100644 index 00000000..6e5b027c --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/km.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'km', { + toolbar: 'ជម្រះ​ទ្រង់​ទ្រាយ' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ko.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ko.js new file mode 100644 index 00000000..4cc36b7e --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ko.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'ko', { + toolbar: '포맷 지우기' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ku.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ku.js new file mode 100644 index 00000000..f13753b9 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ku.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'ku', { + toolbar: 'لابردنی داڕشتەکە' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/lt.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/lt.js new file mode 100644 index 00000000..7efca219 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/lt.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'lt', { + toolbar: 'Panaikinti formatą' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/lv.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/lv.js new file mode 100644 index 00000000..effaa880 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/lv.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'lv', { + toolbar: 'Noņemt stilus' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/mk.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/mk.js new file mode 100644 index 00000000..f3ebcde6 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/mk.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'mk', { + toolbar: 'Remove Format' // MISSING +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/mn.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/mn.js new file mode 100644 index 00000000..561970e4 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/mn.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'mn', { + toolbar: 'Параргафын загварыг авч хаях' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ms.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ms.js new file mode 100644 index 00000000..5a551f81 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ms.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'ms', { + toolbar: 'Buang Format' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/nb.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/nb.js new file mode 100644 index 00000000..b95d2e45 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/nb.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'nb', { + toolbar: 'Fjern formatering' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/nl.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/nl.js new file mode 100644 index 00000000..9da709af --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/nl.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'nl', { + toolbar: 'Opmaak verwijderen' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/no.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/no.js new file mode 100644 index 00000000..a27cc4e9 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/no.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'no', { + toolbar: 'Fjern formatering' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/pl.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/pl.js new file mode 100644 index 00000000..8ff27abd --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/pl.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'pl', { + toolbar: 'Usuń formatowanie' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/pt-br.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/pt-br.js new file mode 100644 index 00000000..4ff665d1 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/pt-br.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'pt-br', { + toolbar: 'Remover Formatação' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/pt.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/pt.js new file mode 100644 index 00000000..0d53a155 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/pt.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'pt', { + toolbar: 'Eliminar Formato' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ro.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ro.js new file mode 100644 index 00000000..6094ac96 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ro.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'ro', { + toolbar: 'Înlătură formatarea' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ru.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ru.js new file mode 100644 index 00000000..9bc9689b --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ru.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'ru', { + toolbar: 'Убрать форматирование' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/si.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/si.js new file mode 100644 index 00000000..1231c0dc --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/si.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'si', { + toolbar: 'සැකසීම වෙනස් කරන්න' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/sk.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/sk.js new file mode 100644 index 00000000..7724d3e0 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/sk.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'sk', { + toolbar: 'Odstrániť formátovanie' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/sl.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/sl.js new file mode 100644 index 00000000..005487ad --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/sl.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'sl', { + toolbar: 'Odstrani oblikovanje' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/sq.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/sq.js new file mode 100644 index 00000000..ab4d1c51 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/sq.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'sq', { + toolbar: 'Largo Formatin' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/sr-latn.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/sr-latn.js new file mode 100644 index 00000000..9c451507 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/sr-latn.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'sr-latn', { + toolbar: 'Ukloni formatiranje' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/sr.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/sr.js new file mode 100644 index 00000000..b0791c86 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/sr.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'sr', { + toolbar: 'Уклони форматирање' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/sv.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/sv.js new file mode 100644 index 00000000..3a7b0f4e --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/sv.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'sv', { + toolbar: 'Radera formatering' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/th.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/th.js new file mode 100644 index 00000000..5f8afcf5 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/th.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'th', { + toolbar: 'ล้างรูปแบบ' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/tr.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/tr.js new file mode 100644 index 00000000..07ea8f1e --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/tr.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'tr', { + toolbar: 'Biçimi Kaldır' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ug.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ug.js new file mode 100644 index 00000000..8c9caaea --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/ug.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'ug', { + toolbar: 'پىچىمنى چىقىرىۋەت' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/uk.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/uk.js new file mode 100644 index 00000000..ba4b5b5a --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/uk.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'uk', { + toolbar: 'Очистити форматування' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/vi.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/vi.js new file mode 100644 index 00000000..7722d8cc --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/vi.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'vi', { + toolbar: 'Xoá định dạng' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/zh-cn.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/zh-cn.js new file mode 100644 index 00000000..58112abf --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/zh-cn.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'zh-cn', { + toolbar: '清除格式' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/zh.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/zh.js new file mode 100644 index 00000000..523dc423 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/lang/zh.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'removeformat', 'zh', { + toolbar: '移除格式' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/removeformat/plugin.js b/lam/templates/lib/extra/ckeditor/plugins/removeformat/plugin.js new file mode 100644 index 00000000..ef3c4d73 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/removeformat/plugin.js @@ -0,0 +1,174 @@ +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.plugins.add( 'removeformat', { + lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + icons: 'removeformat', // %REMOVE_LINE_CORE% + hidpi: true, // %REMOVE_LINE_CORE% + init: function( editor ) { + editor.addCommand( 'removeFormat', CKEDITOR.plugins.removeformat.commands.removeformat ); + editor.ui.addButton && editor.ui.addButton( 'RemoveFormat', { + label: editor.lang.removeformat.toolbar, + command: 'removeFormat', + toolbar: 'cleanup,10' + } ); + } +} ); + +CKEDITOR.plugins.removeformat = { + commands: { + removeformat: { + exec: function( editor ) { + var tagsRegex = editor._.removeFormatRegex || ( editor._.removeFormatRegex = new RegExp( '^(?:' + editor.config.removeFormatTags.replace( /,/g, '|' ) + ')$', 'i' ) ); + + var removeAttributes = editor._.removeAttributes || ( editor._.removeAttributes = editor.config.removeFormatAttributes.split( ',' ) ); + + var filter = CKEDITOR.plugins.removeformat.filter; + var ranges = editor.getSelection().getRanges( 1 ), + iterator = ranges.createIterator(), + range; + + while ( ( range = iterator.getNextRange() ) ) { + if ( !range.collapsed ) + range.enlarge( CKEDITOR.ENLARGE_ELEMENT ); + + // Bookmark the range so we can re-select it after processing. + var bookmark = range.createBookmark(), + // The style will be applied within the bookmark boundaries. + startNode = bookmark.startNode, + endNode = bookmark.endNode, + currentNode; + + // We need to check the selection boundaries (bookmark spans) to break + // the code in a way that we can properly remove partially selected nodes. + // For example, removing a style from + // This is [some text to show the] problem + // ... where [ and ] represent the selection, must result: + // This is [some text to show the] problem + // The strategy is simple, we just break the partial nodes before the + // removal logic, having something that could be represented this way: + // This is [some text to show the] problem + + var breakParent = function( node ) { + // Let's start checking the start boundary. + var path = editor.elementPath( node ), + pathElements = path.elements; + + for ( var i = 1, pathElement; pathElement = pathElements[ i ]; i++ ) { + if ( pathElement.equals( path.block ) || pathElement.equals( path.blockLimit ) ) + break; + + // If this element can be removed (even partially). + if ( tagsRegex.test( pathElement.getName() ) && filter( editor, pathElement ) ) + node.breakParent( pathElement ); + } + }; + + breakParent( startNode ); + if ( endNode ) { + breakParent( endNode ); + + // Navigate through all nodes between the bookmarks. + currentNode = startNode.getNextSourceNode( true, CKEDITOR.NODE_ELEMENT ); + + while ( currentNode ) { + // If we have reached the end of the selection, stop looping. + if ( currentNode.equals( endNode ) ) + break; + + // Cache the next node to be processed. Do it now, because + // currentNode may be removed. + var nextNode = currentNode.getNextSourceNode( false, CKEDITOR.NODE_ELEMENT ); + + // This node must not be a fake element. + if ( !( currentNode.getName() == 'img' && currentNode.data( 'cke-realelement' ) ) && filter( editor, currentNode ) ) { + // Remove elements nodes that match with this style rules. + if ( tagsRegex.test( currentNode.getName() ) ) + currentNode.remove( 1 ); + else { + currentNode.removeAttributes( removeAttributes ); + editor.fire( 'removeFormatCleanup', currentNode ); + } + } + + currentNode = nextNode; + } + } + + range.moveToBookmark( bookmark ); + } + + // The selection path may not changed, but we should force a selection + // change event to refresh command states, due to the above attribution change. (#9238) + editor.forceNextSelectionCheck(); + editor.getSelection().selectRanges( ranges ); + } + } + }, + + // Perform the remove format filters on the passed element. + // @param {CKEDITOR.editor} editor + // @param {CKEDITOR.dom.element} element + filter: function( editor, element ) { + // If editor#addRemoveFotmatFilter hasn't been executed yet value is not initialized. + var filters = editor._.removeFormatFilters || []; + for ( var i = 0; i < filters.length; i++ ) { + if ( filters[ i ]( element ) === false ) + return false; + } + return true; + } +}; + +/** + * Add to a collection of functions to decide whether a specific + * element should be considered as formatting element and thus + * could be removed during `removeFormat` command. + * + * **Note:** Only available with the existence of `removeformat` plugin. + * + * // Don't remove empty span. + * editor.addRemoveFormatFilter( function( element ) { + * return !( element.is( 'span' ) && CKEDITOR.tools.isEmpty( element.getAttributes() ) ); + * } ); + * + * @since 3.3 + * @member CKEDITOR.editor + * @param {Function} func The function to be called, which will be passed a {CKEDITOR.dom.element} element to test. + */ +CKEDITOR.editor.prototype.addRemoveFormatFilter = function( func ) { + if ( !this._.removeFormatFilters ) + this._.removeFormatFilters = []; + + this._.removeFormatFilters.push( func ); +}; + +/** + * A comma separated list of elements to be removed when executing the `remove + * format` command. Note that only inline elements are allowed. + * + * @cfg + * @member CKEDITOR.config + */ +CKEDITOR.config.removeFormatTags = 'b,big,code,del,dfn,em,font,i,ins,kbd,q,s,samp,small,span,strike,strong,sub,sup,tt,u,var'; + +/** + * A comma separated list of elements attributes to be removed when executing + * the `remove format` command. + * + * @cfg + * @member CKEDITOR.config + */ +CKEDITOR.config.removeFormatAttributes = 'class,style,lang,width,height,align,hspace,valign'; + +/** + * Fired after an element was cleaned by the removeFormat plugin. + * + * @event removeFormatCleanup + * @member CKEDITOR.editor + * @param {CKEDITOR.editor} editor This editor instance. + * @param data + * @param {CKEDITOR.dom.element} data.element The element that was cleaned up. + */ diff --git a/lam/templates/lib/extra/ckeditor/plugins/richcombo/plugin.js b/lam/templates/lib/extra/ckeditor/plugins/richcombo/plugin.js new file mode 100644 index 00000000..8ea5c12a --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/richcombo/plugin.js @@ -0,0 +1,441 @@ +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.plugins.add( 'richcombo', { + requires: 'floatpanel,listblock,button', + + beforeInit: function( editor ) { + editor.ui.addHandler( CKEDITOR.UI_RICHCOMBO, CKEDITOR.ui.richCombo.handler ); + } +} ); + +( function() { + var template = '' + + '{label}' + + '= 10900 && !CKEDITOR.env.hc ? '' : '" href="javascript:void(\'{titleJs}\')"' ) + + ' hidefocus="true"' + + ' role="button"' + + ' aria-labelledby="{id}_label"' + + ' aria-haspopup="true"'; + + // Some browsers don't cancel key events in the keydown but in the + // keypress. + // TODO: Check if really needed for Gecko+Mac. + if ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.mac ) ) + template += ' onkeypress="return false;"'; + + // With Firefox, we need to force the button to redraw, otherwise it + // will remain in the focus state. + if ( CKEDITOR.env.gecko ) + template += ' onblur="this.style.cssText = this.style.cssText;"'; + + template += + ' onkeydown="return CKEDITOR.tools.callFunction({keydownFn},event,this);"' + + ' onmousedown="return CKEDITOR.tools.callFunction({mousedownFn},event);" ' + + ' onfocus="return CKEDITOR.tools.callFunction({focusFn},event);" ' + + ( CKEDITOR.env.ie ? 'onclick="return false;" onmouseup' : 'onclick' ) + // #188 + '="CKEDITOR.tools.callFunction({clickFn},this);return false;">' + + '{label}' + + '' + + '' + + // BLACK DOWN-POINTING TRIANGLE + ( CKEDITOR.env.hc ? '▼' : CKEDITOR.env.air ? ' ' : '' ) + + '' + + '' + + '' + + ''; + + var rcomboTpl = CKEDITOR.addTemplate( 'combo', template ); + + /** + * Button UI element. + * + * @readonly + * @property {String} [='richcombo'] + * @member CKEDITOR + */ + CKEDITOR.UI_RICHCOMBO = 'richcombo'; + + /** + * @class + * @todo + */ + CKEDITOR.ui.richCombo = CKEDITOR.tools.createClass( { + $: function( definition ) { + // Copy all definition properties to this object. + CKEDITOR.tools.extend( this, definition, + // Set defaults. + { + // The combo won't participate in toolbar grouping. + canGroup: false, + title: definition.label, + modes: { wysiwyg: 1 }, + editorFocus: 1 + } ); + + // We don't want the panel definition in this object. + var panelDefinition = this.panel || {}; + delete this.panel; + + this.id = CKEDITOR.tools.getNextNumber(); + + this.document = ( panelDefinition.parent && panelDefinition.parent.getDocument() ) || CKEDITOR.document; + + panelDefinition.className = 'cke_combopanel'; + panelDefinition.block = { + multiSelect: panelDefinition.multiSelect, + attributes: panelDefinition.attributes + }; + panelDefinition.toolbarRelated = true; + + this._ = { + panelDefinition: panelDefinition, + items: {} + }; + }, + + proto: { + renderHtml: function( editor ) { + var output = []; + this.render( editor, output ); + return output.join( '' ); + }, + + /** + * Renders the combo. + * + * @param {CKEDITOR.editor} editor The editor instance which this button is + * to be used by. + * @param {Array} output The output array to which append the HTML relative + * to this button. + */ + render: function( editor, output ) { + var env = CKEDITOR.env; + + var id = 'cke_' + this.id; + var clickFn = CKEDITOR.tools.addFunction( function( el ) { + // Restore locked selection in Opera. + if ( selLocked ) { + editor.unlockSelection( 1 ); + selLocked = 0; + } + instance.execute( el ); + }, this ); + + var combo = this; + var instance = { + id: id, + combo: this, + focus: function() { + var element = CKEDITOR.document.getById( id ).getChild( 1 ); + element.focus(); + }, + execute: function( el ) { + var _ = combo._; + + if ( _.state == CKEDITOR.TRISTATE_DISABLED ) + return; + + combo.createPanel( editor ); + + if ( _.on ) { + _.panel.hide(); + return; + } + + combo.commit(); + var value = combo.getValue(); + if ( value ) + _.list.mark( value ); + else + _.list.unmarkAll(); + + _.panel.showBlock( combo.id, new CKEDITOR.dom.element( el ), 4 ); + }, + clickFn: clickFn + }; + + function updateState() { + var state = this.modes[ editor.mode ] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED; + + if ( editor.readOnly && !this.readOnly ) + state = CKEDITOR.TRISTATE_DISABLED; + + this.setState( state ); + this.setValue( '' ); + + // Let plugin to disable button. + if ( state != CKEDITOR.TRISTATE_DISABLED && this.refresh ) + this.refresh(); + } + + // Update status when activeFilter, mode, selection or readOnly changes. + editor.on( 'activeFilterChange', updateState, this ); + editor.on( 'mode', updateState, this ); + editor.on( 'selectionChange', updateState, this ); + // If this combo is sensitive to readOnly state, update it accordingly. + !this.readOnly && editor.on( 'readOnly', updateState, this ); + + var keyDownFn = CKEDITOR.tools.addFunction( function( ev, element ) { + ev = new CKEDITOR.dom.event( ev ); + + var keystroke = ev.getKeystroke(); + + // ARROW-DOWN + // This call is duplicated in plugins/toolbar/plugin.js in itemKeystroke(). + // Move focus to the first element after drop down was opened by the arrow down key. + if ( keystroke == 40 ) { + editor.once( 'panelShow', function( evt ) { + evt.data._.panel._.currentBlock.onKeyDown( 40 ); + } ); + } + + switch ( keystroke ) { + case 13: // ENTER + case 32: // SPACE + case 40: // ARROW-DOWN + // Show panel + CKEDITOR.tools.callFunction( clickFn, element ); + break; + default: + // Delegate the default behavior to toolbar button key handling. + instance.onkey( instance, keystroke ); + } + + // Avoid subsequent focus grab on editor document. + ev.preventDefault(); + } ); + + var focusFn = CKEDITOR.tools.addFunction( function() { + instance.onfocus && instance.onfocus(); + } ); + + var selLocked = 0; + var mouseDownFn = CKEDITOR.tools.addFunction( function() { + // Opera: lock to prevent loosing editable text selection when clicking on button. + if ( CKEDITOR.env.opera ) { + var edt = editor.editable(); + if ( edt.isInline() && edt.hasFocus ) { + editor.lockSelection(); + selLocked = 1; + } + } + } ); + + // For clean up + instance.keyDownFn = keyDownFn; + + var params = { + id: id, + name: this.name || this.command, + label: this.label, + title: this.title, + cls: this.className || '', + titleJs: env.gecko && env.version >= 10900 && !env.hc ? '' : ( this.title || '' ).replace( "'", '' ), + keydownFn: keyDownFn, + mousedownFn: mouseDownFn, + focusFn: focusFn, + clickFn: clickFn + }; + + rcomboTpl.output( params, output ); + + if ( this.onRender ) + this.onRender(); + + return instance; + }, + + createPanel: function( editor ) { + if ( this._.panel ) + return; + + var panelDefinition = this._.panelDefinition, + panelBlockDefinition = this._.panelDefinition.block, + panelParentElement = panelDefinition.parent || CKEDITOR.document.getBody(), + namedPanelCls = 'cke_combopanel__' + this.name, + panel = new CKEDITOR.ui.floatPanel( editor, panelParentElement, panelDefinition ), + list = panel.addListBlock( this.id, panelBlockDefinition ), + me = this; + + panel.onShow = function() { + this.element.addClass( namedPanelCls ); + + me.setState( CKEDITOR.TRISTATE_ON ); + + me._.on = 1; + + me.editorFocus && !editor.focusManager.hasFocus && editor.focus(); + + if ( me.onOpen ) + me.onOpen(); + + // The "panelShow" event is fired assinchronously, after the + // onShow method call. + editor.once( 'panelShow', function() { + list.focus( !list.multiSelect && me.getValue() ); + } ); + }; + + panel.onHide = function( preventOnClose ) { + this.element.removeClass( namedPanelCls ); + + me.setState( me.modes && me.modes[ editor.mode ] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED ); + + me._.on = 0; + + if ( !preventOnClose && me.onClose ) + me.onClose(); + }; + + panel.onEscape = function() { + // Hide drop-down with focus returned. + panel.hide( 1 ); + }; + + list.onClick = function( value, marked ) { + + if ( me.onClick ) + me.onClick.call( me, value, marked ); + + panel.hide(); + }; + + this._.panel = panel; + this._.list = list; + + panel.getBlock( this.id ).onHide = function() { + me._.on = 0; + me.setState( CKEDITOR.TRISTATE_OFF ); + }; + + if ( this.init ) + this.init(); + }, + + setValue: function( value, text ) { + this._.value = value; + + var textElement = this.document.getById( 'cke_' + this.id + '_text' ); + if ( textElement ) { + if ( !( value || text ) ) { + text = this.label; + textElement.addClass( 'cke_combo_inlinelabel' ); + } else + textElement.removeClass( 'cke_combo_inlinelabel' ); + + textElement.setText( typeof text != 'undefined' ? text : value ); + } + }, + + getValue: function() { + return this._.value || ''; + }, + + unmarkAll: function() { + this._.list.unmarkAll(); + }, + + mark: function( value ) { + this._.list.mark( value ); + }, + + hideItem: function( value ) { + this._.list.hideItem( value ); + }, + + hideGroup: function( groupTitle ) { + this._.list.hideGroup( groupTitle ); + }, + + showAll: function() { + this._.list.showAll(); + }, + + add: function( value, html, text ) { + this._.items[ value ] = text || value; + this._.list.add( value, html, text ); + }, + + startGroup: function( title ) { + this._.list.startGroup( title ); + }, + + commit: function() { + if ( !this._.committed ) { + this._.list.commit(); + this._.committed = 1; + CKEDITOR.ui.fire( 'ready', this ); + } + this._.committed = 1; + }, + + setState: function( state ) { + if ( this._.state == state ) + return; + + var el = this.document.getById( 'cke_' + this.id ); + el.setState( state, 'cke_combo' ); + + state == CKEDITOR.TRISTATE_DISABLED ? + el.setAttribute( 'aria-disabled', true ) : + el.removeAttribute( 'aria-disabled' ); + + this._.state = state; + }, + + getState: function() { + return this._.state; + }, + + enable: function() { + if ( this._.state == CKEDITOR.TRISTATE_DISABLED ) + this.setState( this._.lastState ); + }, + + disable: function() { + if ( this._.state != CKEDITOR.TRISTATE_DISABLED ) { + this._.lastState = this._.state; + this.setState( CKEDITOR.TRISTATE_DISABLED ); + } + } + }, + + /** + * Represents richCombo handler object. + * + * @class CKEDITOR.ui.richCombo.handler + * @singleton + * @extends CKEDITOR.ui.handlerDefinition + */ + statics: { + handler: { + /** + * Transforms a richCombo definition in a {@link CKEDITOR.ui.richCombo} instance. + * + * @param {Object} definition + * @returns {CKEDITOR.ui.richCombo} + */ + create: function( definition ) { + return new CKEDITOR.ui.richCombo( definition ); + } + } + } + } ); + + /** + * @param {String} name + * @param {Object} definition + * @member CKEDITOR.ui + * @todo + */ + CKEDITOR.ui.prototype.addRichCombo = function( name, definition ) { + this.add( name, CKEDITOR.UI_RICHCOMBO, definition ); + }; + +} )(); diff --git a/lam/templates/lib/extra/ckeditor/plugins/showborders/plugin.js b/lam/templates/lib/extra/ckeditor/plugins/showborders/plugin.js new file mode 100644 index 00000000..940d2c19 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/showborders/plugin.js @@ -0,0 +1,174 @@ +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +/** + * @fileOverview The "show border" plugin. The command display visible outline + * border line around all table elements if table doesn't have a none-zero 'border' attribute specified. + */ + +( function() { + var commandDefinition = { + preserveState: true, + editorFocus: false, + readOnly: 1, + + exec: function( editor ) { + this.toggleState(); + this.refresh( editor ); + }, + + refresh: function( editor ) { + if ( editor.document ) { + var funcName = ( this.state == CKEDITOR.TRISTATE_ON ) ? 'attachClass' : 'removeClass'; + editor.editable()[ funcName ]( 'cke_show_borders' ); + } + } + }; + + var showBorderClassName = 'cke_show_border'; + + CKEDITOR.plugins.add( 'showborders', { + modes: { 'wysiwyg': 1 }, + + onLoad: function() { + var cssStyleText, + cssTemplate = + // TODO: For IE6, we don't have child selector support, + // where nested table cells could be incorrect. + ( CKEDITOR.env.ie6Compat ? [ + '.%1 table.%2,', + '.%1 table.%2 td, .%1 table.%2 th', + '{', + 'border : #d3d3d3 1px dotted', + '}' + ] : [ + '.%1 table.%2,', + '.%1 table.%2 > tr > td, .%1 table.%2 > tr > th,', + '.%1 table.%2 > tbody > tr > td, .%1 table.%2 > tbody > tr > th,', + '.%1 table.%2 > thead > tr > td, .%1 table.%2 > thead > tr > th,', + '.%1 table.%2 > tfoot > tr > td, .%1 table.%2 > tfoot > tr > th', + '{', + 'border : #d3d3d3 1px dotted', + '}' + ] ).join( '' ); + + cssStyleText = cssTemplate.replace( /%2/g, showBorderClassName ).replace( /%1/g, 'cke_show_borders ' ); + + CKEDITOR.addCss( cssStyleText ); + }, + + init: function( editor ) { + + var command = editor.addCommand( 'showborders', commandDefinition ); + command.canUndo = false; + + if ( editor.config.startupShowBorders !== false ) + command.setState( CKEDITOR.TRISTATE_ON ); + + // Refresh the command on setData. + editor.on( 'mode', function() { + if ( command.state != CKEDITOR.TRISTATE_DISABLED ) + command.refresh( editor ); + }, null, null, 100 ); + + // Refresh the command on wysiwyg frame reloads. + editor.on( 'contentDom', function() { + if ( command.state != CKEDITOR.TRISTATE_DISABLED ) + command.refresh( editor ); + } ); + + editor.on( 'removeFormatCleanup', function( evt ) { + var element = evt.data; + if ( editor.getCommand( 'showborders' ).state == CKEDITOR.TRISTATE_ON && element.is( 'table' ) && ( !element.hasAttribute( 'border' ) || parseInt( element.getAttribute( 'border' ), 10 ) <= 0 ) ) + element.addClass( showBorderClassName ); + } ); + }, + + afterInit: function( editor ) { + var dataProcessor = editor.dataProcessor, + dataFilter = dataProcessor && dataProcessor.dataFilter, + htmlFilter = dataProcessor && dataProcessor.htmlFilter; + + if ( dataFilter ) { + dataFilter.addRules( { + elements: { + 'table': function( element ) { + var attributes = element.attributes, + cssClass = attributes[ 'class' ], + border = parseInt( attributes.border, 10 ); + + if ( ( !border || border <= 0 ) && ( !cssClass || cssClass.indexOf( showBorderClassName ) == -1 ) ) + attributes[ 'class' ] = ( cssClass || '' ) + ' ' + showBorderClassName; + } + } + } ); + } + + if ( htmlFilter ) { + htmlFilter.addRules( { + elements: { + 'table': function( table ) { + var attributes = table.attributes, + cssClass = attributes[ 'class' ]; + + cssClass && ( attributes[ 'class' ] = cssClass.replace( showBorderClassName, '' ).replace( /\s{2}/, ' ' ).replace( /^\s+|\s+$/, '' ) ); + } + } + } ); + } + } + } ); + + // Table dialog must be aware of it. + CKEDITOR.on( 'dialogDefinition', function( ev ) { + var dialogName = ev.data.name; + + if ( dialogName == 'table' || dialogName == 'tableProperties' ) { + var dialogDefinition = ev.data.definition, + infoTab = dialogDefinition.getContents( 'info' ), + borderField = infoTab.get( 'txtBorder' ), + originalCommit = borderField.commit; + + borderField.commit = CKEDITOR.tools.override( originalCommit, function( org ) { + return function( data, selectedTable ) { + org.apply( this, arguments ); + var value = parseInt( this.getValue(), 10 ); + selectedTable[ ( !value || value <= 0 ) ? 'addClass' : 'removeClass' ]( showBorderClassName ); + }; + } ); + + var advTab = dialogDefinition.getContents( 'advanced' ), + classField = advTab && advTab.get( 'advCSSClasses' ); + + if ( classField ) { + classField.setup = CKEDITOR.tools.override( classField.setup, function( originalSetup ) { + return function() { + originalSetup.apply( this, arguments ); + this.setValue( this.getValue().replace( /cke_show_border/, '' ) ); + }; + } ); + + classField.commit = CKEDITOR.tools.override( classField.commit, function( originalCommit ) { + return function( data, element ) { + originalCommit.apply( this, arguments ); + + if ( !parseInt( element.getAttribute( 'border' ), 10 ) ) + element.addClass( 'cke_show_border' ); + }; + } ); + } + } + } ); + +} )(); + +/** + * Whether to automatically enable the "show borders" command when the editor loads. + * + * config.startupShowBorders = false; + * + * @cfg {Boolean} [startupShowBorders=true] + * @member CKEDITOR.config + */ diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/icons/hidpi/source-rtl.png b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/icons/hidpi/source-rtl.png new file mode 100644 index 00000000..adf4af3c Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/icons/hidpi/source-rtl.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/icons/hidpi/source.png b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/icons/hidpi/source.png new file mode 100644 index 00000000..b4d0a15a Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/icons/hidpi/source.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/icons/source-rtl.png b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/icons/source-rtl.png new file mode 100644 index 00000000..27d1ba88 Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/icons/source-rtl.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/icons/source.png b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/icons/source.png new file mode 100644 index 00000000..e44db379 Binary files /dev/null and b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/icons/source.png differ diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/af.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/af.js new file mode 100644 index 00000000..461e346f --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/af.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'af', { + toolbar: 'Bron' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ar.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ar.js new file mode 100644 index 00000000..8aa9d649 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ar.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'ar', { + toolbar: 'المصدر' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/bg.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/bg.js new file mode 100644 index 00000000..e002a5e9 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/bg.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'bg', { + toolbar: 'Източник' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/bn.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/bn.js new file mode 100644 index 00000000..285c4204 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/bn.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'bn', { + toolbar: 'সোর্স' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/bs.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/bs.js new file mode 100644 index 00000000..28376e9d --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/bs.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'bs', { + toolbar: 'HTML kôd' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ca.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ca.js new file mode 100644 index 00000000..ba954340 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ca.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'ca', { + toolbar: 'Codi font' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/cs.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/cs.js new file mode 100644 index 00000000..2719d268 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/cs.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'cs', { + toolbar: 'Zdroj' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/cy.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/cy.js new file mode 100644 index 00000000..2ef63186 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/cy.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'cy', { + toolbar: 'HTML' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/da.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/da.js new file mode 100644 index 00000000..6ba626c8 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/da.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'da', { + toolbar: 'Kilde' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/de.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/de.js new file mode 100644 index 00000000..a138b390 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/de.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'de', { + toolbar: 'Quellcode' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/el.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/el.js new file mode 100644 index 00000000..862c2d8c --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/el.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'el', { + toolbar: 'Κώδικας' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/en-au.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/en-au.js new file mode 100644 index 00000000..45b556b6 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/en-au.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'en-au', { + toolbar: 'Source' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/en-ca.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/en-ca.js new file mode 100644 index 00000000..78866d42 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/en-ca.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'en-ca', { + toolbar: 'Source' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/en-gb.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/en-gb.js new file mode 100644 index 00000000..ec34397e --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/en-gb.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'en-gb', { + toolbar: 'Source' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/en.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/en.js new file mode 100644 index 00000000..11aab353 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/en.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'en', { + toolbar: 'Source' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/eo.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/eo.js new file mode 100644 index 00000000..d506792d --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/eo.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'eo', { + toolbar: 'Fonto' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/es.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/es.js new file mode 100644 index 00000000..a1ae1f5b --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/es.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'es', { + toolbar: 'Fuente HTML' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/et.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/et.js new file mode 100644 index 00000000..1c60bd83 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/et.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'et', { + toolbar: 'Lähtekood' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/eu.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/eu.js new file mode 100644 index 00000000..ccacf817 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/eu.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'eu', { + toolbar: 'HTML Iturburua' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/fa.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/fa.js new file mode 100644 index 00000000..b98960ca --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/fa.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'fa', { + toolbar: 'منبع' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/fi.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/fi.js new file mode 100644 index 00000000..d559d391 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/fi.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'fi', { + toolbar: 'Koodi' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/fo.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/fo.js new file mode 100644 index 00000000..3b22aca6 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/fo.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'fo', { + toolbar: 'Kelda' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/fr-ca.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/fr-ca.js new file mode 100644 index 00000000..93d716c0 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/fr-ca.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'fr-ca', { + toolbar: 'Source' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/fr.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/fr.js new file mode 100644 index 00000000..3335abf2 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/fr.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'fr', { + toolbar: 'Source' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/gl.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/gl.js new file mode 100644 index 00000000..023d7c5f --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/gl.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'gl', { + toolbar: 'Orixe' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/gu.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/gu.js new file mode 100644 index 00000000..edb0a5bf --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/gu.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'gu', { + toolbar: 'મૂળ કે પ્રાથમિક દસ્તાવેજ' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/he.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/he.js new file mode 100644 index 00000000..e187e7ed --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/he.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'he', { + toolbar: 'מקור' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/hi.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/hi.js new file mode 100644 index 00000000..2875d99f --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/hi.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'hi', { + toolbar: 'सोर्स' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/hr.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/hr.js new file mode 100644 index 00000000..a8f3e479 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/hr.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'hr', { + toolbar: 'Kôd' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/hu.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/hu.js new file mode 100644 index 00000000..15b77ef5 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/hu.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'hu', { + toolbar: 'Forráskód' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/id.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/id.js new file mode 100644 index 00000000..9fbc6984 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/id.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'id', { + toolbar: 'Sumber' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/is.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/is.js new file mode 100644 index 00000000..74575fef --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/is.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'is', { + toolbar: 'Kóði' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/it.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/it.js new file mode 100644 index 00000000..64c353d1 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/it.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'it', { + toolbar: 'Sorgente' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ja.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ja.js new file mode 100644 index 00000000..d9ff6517 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ja.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'ja', { + toolbar: 'ソース' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ka.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ka.js new file mode 100644 index 00000000..c3d65198 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ka.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'ka', { + toolbar: 'კოდები' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/km.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/km.js new file mode 100644 index 00000000..80acceba --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/km.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'km', { + toolbar: 'អក្សរ​កូដ' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ko.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ko.js new file mode 100644 index 00000000..149c1379 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ko.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'ko', { + toolbar: '소스' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ku.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ku.js new file mode 100644 index 00000000..2a951dfb --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ku.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'ku', { + toolbar: 'سەرچاوە' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/lt.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/lt.js new file mode 100644 index 00000000..4767ad0b --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/lt.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'lt', { + toolbar: 'Šaltinis' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/lv.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/lv.js new file mode 100644 index 00000000..bc62cc3a --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/lv.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'lv', { + toolbar: 'HTML kods' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/mk.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/mk.js new file mode 100644 index 00000000..e604e99c --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/mk.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'mk', { + toolbar: 'Source' // MISSING +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/mn.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/mn.js new file mode 100644 index 00000000..587b52cb --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/mn.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'mn', { + toolbar: 'Код' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ms.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ms.js new file mode 100644 index 00000000..d20b9cac --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ms.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'ms', { + toolbar: 'Sumber' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/nb.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/nb.js new file mode 100644 index 00000000..52dc34e6 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/nb.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'nb', { + toolbar: 'Kilde' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/nl.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/nl.js new file mode 100644 index 00000000..60641003 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/nl.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'nl', { + toolbar: 'Broncode' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/no.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/no.js new file mode 100644 index 00000000..e554129e --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/no.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'no', { + toolbar: 'Kilde' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/pl.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/pl.js new file mode 100644 index 00000000..00140712 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/pl.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'pl', { + toolbar: 'Źródło dokumentu' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/pt-br.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/pt-br.js new file mode 100644 index 00000000..703717a1 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/pt-br.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'pt-br', { + toolbar: 'Código-Fonte' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/pt.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/pt.js new file mode 100644 index 00000000..55d4c00f --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/pt.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'pt', { + toolbar: 'Fonte' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ro.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ro.js new file mode 100644 index 00000000..ea1bbc01 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ro.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'ro', { + toolbar: 'Sursa' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ru.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ru.js new file mode 100644 index 00000000..fa7f2b68 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ru.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'ru', { + toolbar: 'Источник' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/si.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/si.js new file mode 100644 index 00000000..03b1f040 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/si.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'si', { + toolbar: 'මුලාශ්‍රය' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/sk.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/sk.js new file mode 100644 index 00000000..d3fe90ff --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/sk.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'sk', { + toolbar: 'Zdroj' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/sl.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/sl.js new file mode 100644 index 00000000..b93993a4 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/sl.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'sl', { + toolbar: 'Izvorna koda' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/sq.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/sq.js new file mode 100644 index 00000000..20a39dc0 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/sq.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'sq', { + toolbar: 'Burimi' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/sr-latn.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/sr-latn.js new file mode 100644 index 00000000..81c706c7 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/sr-latn.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'sr-latn', { + toolbar: 'Kôd' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/sr.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/sr.js new file mode 100644 index 00000000..bfebd0e0 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/sr.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'sr', { + toolbar: 'Kôд' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/sv.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/sv.js new file mode 100644 index 00000000..ff99b6f8 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/sv.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'sv', { + toolbar: 'Källa' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/th.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/th.js new file mode 100644 index 00000000..e0ca6ad7 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/th.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'th', { + toolbar: 'ดูรหัส HTML' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/tr.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/tr.js new file mode 100644 index 00000000..8598eead --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/tr.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'tr', { + toolbar: 'Kaynak' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ug.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ug.js new file mode 100644 index 00000000..1734a6a8 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/ug.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'ug', { + toolbar: 'مەنبە' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/uk.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/uk.js new file mode 100644 index 00000000..a3a22577 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/uk.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'uk', { + toolbar: 'Джерело' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/vi.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/vi.js new file mode 100644 index 00000000..ea0ee362 --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/vi.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'vi', { + toolbar: 'Mã HTML' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/zh-cn.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/zh-cn.js new file mode 100644 index 00000000..e222ad6c --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/zh-cn.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'zh-cn', { + toolbar: '源码' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/zh.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/zh.js new file mode 100644 index 00000000..5f13f56a --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/lang/zh.js @@ -0,0 +1,7 @@ +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang( 'sourcearea', 'zh', { + toolbar: '原始碼' +} ); diff --git a/lam/templates/lib/extra/ckeditor/plugins/sourcearea/plugin.js b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/plugin.js new file mode 100644 index 00000000..6d7747ae --- /dev/null +++ b/lam/templates/lib/extra/ckeditor/plugins/sourcearea/plugin.js @@ -0,0 +1,154 @@ +/** + * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +/** + * @fileOverview The "sourcearea" plugin. It registers the "source" editing + * mode, which displays the raw data being edited in the editor. + */ + +( function() { + CKEDITOR.plugins.add( 'sourcearea', { + lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE% + icons: 'source,source-rtl', // %REMOVE_LINE_CORE% + hidpi: true, // %REMOVE_LINE_CORE% + init: function( editor ) { + // Source mode isn't available in inline mode yet. + if ( editor.elementMode == CKEDITOR.ELEMENT_MODE_INLINE ) + return; + + var sourcearea = CKEDITOR.plugins.sourcearea; + + editor.addMode( 'source', function( callback ) { + var contentsSpace = editor.ui.space( 'contents' ), + textarea = contentsSpace.getDocument().createElement( 'textarea' ); + + textarea.setStyles( + CKEDITOR.tools.extend( { + // IE7 has overflow the